Version 1.23.0-dev.1.0

Merge 7f83d9d173c7b90395579166f007a315704d1483 into dev
diff --git a/.packages b/.packages
index fdf45db..112a27d 100644
--- a/.packages
+++ b/.packages
@@ -62,6 +62,7 @@
 mime:third_party/pkg/mime/lib
 mustache4dart:third_party/pkg/mustache4dart/lib
 oauth2:third_party/pkg/oauth2/lib
+observable:third_party/pkg/observable/lib
 observatory:runtime/observatory/lib
 observe:third_party/pkg/observe/lib
 package_config:third_party/pkg_tested/package_config/lib
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 57fbfc4..7feb704 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@
 ### Core library changes
 * `dart:core`: Added `Uri.isScheme` function to check the scheme of a URI.
    Example: `uri.isScheme("http")`. Ignores case when comparing.
+* `dart:core`: Make `UriData.parse` validate its input better.
+  If the data is base-64 encoded, the data is normalized wrt.
+  alphabet and padding, and it contains invalid base-64 data,
+  parsing fails. Also normalizes non-base-64 data.
 * `dart:io`: Added functions `File.lastAccessed`, `File.lastAccessedSync`,
   `File.setLastModified`, `File.setLastModifiedSync`, `File.setLastAccessed`,
   and `File.setLastAccessedSync`.
diff --git a/DEPS b/DEPS
index 50498e5..b20d8b9 100644
--- a/DEPS
+++ b/DEPS
@@ -37,8 +37,8 @@
   "gperftools_revision": "@02eeed29df112728564a5dde6417fa4622b57a06",
 
   # Revisions of /third_party/* dependencies.
-  "args_tag": "@0.13.5",
-  "async_tag": "@1.11.3",
+  "args_tag": "@0.13.7",
+  "async_tag": "@1.13.0",
   "barback-0.13.0_rev": "@34853",
   "barback-0.14.0_rev": "@36398",
   "barback-0.14.1_rev": "@38525",
@@ -47,72 +47,73 @@
   "boolean_selector_tag" : "@1.0.2",
   "boringssl_gen_rev": "@1a810313a0290e1caace9da73fa3ab89995ad2c7",
   "boringssl_rev" : "@d519bf6be0b447fb80fbc539d4bff4479b5482a2",
-  "charcode_tag": "@1.1.0",
+  "charcode_tag": "@v1.1.1",
   "chrome_rev" : "@19997",
   "cli_util_tag" : "@0.0.1+3",
-  "code_transformers_tag": "@v0.4.2+3",
-  "collection_tag": "@1.10.1",
+  "code_transformers_tag": "@v0.5.1",
+  "collection_tag": "@1.13.0",
   "convert_tag": "@2.0.1",
   "crypto_tag" : "@2.0.1",
-  "csslib_tag" : "@0.13.2",
+  "csslib_tag" : "@0.13.3+1",
   "dart2js_info_tag" : "@0.5.3+1",
   "dart_services_rev" : "@7aea2574e6f3924bf409a80afb8ad52aa2be4f97",
   "dart_style_tag": "@0.2.16",
-  "dartdoc_tag" : "@v0.9.8+1",
+  "dartdoc_tag" : "@v0.9.12",
   "fixnum_tag": "@0.10.5",
-  "func_tag": "@0.1.0",
+  "func_tag": "@0.1.1",
   "glob_tag": "@1.1.3",
   "html_tag" : "@0.13.1",
-  "http_multi_server_tag" : "@2.0.2",
-  "http_parser_tag" : "@3.0.3",
+  "http_multi_server_tag" : "@2.0.3",
+  "http_parser_tag" : "@3.1.1",
   "http_tag" : "@0.11.3+9",
   "http_throttle_rev" : "@284344cd357e435c6c8ff9a4a21f02b9e384a541",
   "idl_parser_rev": "@7fbe68cab90c38147dee4f48c30ad0d496c17915",
-  "initialize_tag": "@v0.6.2+2",
+  "initialize_tag": "@v0.6.2+5",
   "intl_tag": "@0.14.0",
   "isolate_tag": "@1.0.0",
   "jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
-  "json_rpc_2_tag": "@2.0.2",
-  "linter_rev": "@89f93362c5b48ef5192d77e9a28cf9590542669b",
+  "json_rpc_2_tag": "@2.0.4",
+  "linter_rev": "@89f93362c5b48ef5192d77e9a28cf9590542669b", # prerelease 1.30
   "logging_tag": "@0.11.3+1",
-  "markdown_tag": "@0.11.0",
+  "markdown_tag": "@0.11.2",
   "matcher_tag": "@0.12.0+2",
-  "metatest_tag": "@0.2.2+2",
+  "metatest_tag": "@0.2.2+3",
   "mime_rev": "@75890811d4af5af080351ba8a2853ad4c8df98dd",
   "mustache4dart_tag" : "@v1.0.10",
   "oauth2_tag": "@1.0.2",
+  "observable_tag": "@0.17.0",
   "observatory_pub_packages_rev": "@26aad88f1c1915d39bbcbff3cad589e2402fdcf1",
-  "observe_tag": "@0.13.5",
+  "observe_tag": "@0.15.0",
   "package_config_tag": "@1.0.0",
   "package_resolver_tag": "@1.0.2+1",
   "path_tag": "@1.4.1",
   "plugin_tag": "@0.2.0",
   "ply_rev": "@604b32590ffad5cbb82e4afef1d305512d06ae93",
-  "pool_tag": "@1.2.4",
+  "pool_tag": "@1.3.0",
   "protobuf_tag": "@0.5.3",
   "pub_rev": "@53327f4a7ca2ddd20a40f6a94db61ac136371b03",
-  "pub_semver_tag": "@1.3.0",
+  "pub_semver_tag": "@1.3.2",
   "quiver_tag": "@0.22.0",
   "resource_rev":"@a49101ba2deb29c728acba6fb86000a8f730f4b1",
   "root_certificates_rev": "@0068d8911140e591ebb750af296e81940a9906f5",
-  "scheduled_test_tag": "@0.12.6",
+  "scheduled_test_tag": "@0.12.9",
   "shelf_static_tag": "@0.2.4",
   "shelf_packages_handler_tag": "@1.0.0",
-  "shelf_tag": "@0.6.5+3",
+  "shelf_tag": "@0.6.7+2",
   "shelf_web_socket_tag": "@0.2.1",
   "smoke_tag" : "@v0.3.6+2",
-  "source_map_stack_trace_tag": "@1.1.3",
+  "source_map_stack_trace_tag": "@1.1.4",
   "source_maps-0.9.4_rev": "@38524",
-  "source_maps_tag": "@0.10.1+2",
-  "source_span_tag": "@1.2.4",
-  "stack_trace_tag": "@1.6.6",
-  "stream_channel_tag": "@1.5.0",
-  "string_scanner_tag": "@1.0.0",
+  "source_maps_tag": "@0.10.2",
+  "source_span_tag": "@1.3.1",
+  "stack_trace_tag": "@1.7.1",
+  "stream_channel_tag": "@1.6.1",
+  "string_scanner_tag": "@1.0.1",
   "sunflower_rev": "@879b704933413414679396b129f5dfa96f7a0b1e",
   "test_reflective_loader_tag": "@0.1.0",
-  "test_tag": "@0.12.15+6",
+  "test_tag": "@0.12.18+1",
   "typed_data_tag": "@1.1.3",
-  "usage_tag": "@v2.2.2",
+  "usage_tag": "@v3.0.0+1",
   "utf_tag": "@0.9.0+3",
   "watcher_tag": "@0.9.7+3",
   "web_components_rev": "@6349e09f9118dce7ae1b309af5763745e25a9d61",
@@ -120,7 +121,7 @@
   "WebCore_rev": "@a86fe28efadcfc781f836037a80f27e22a5dad17",
   "when_tag": "@0.2.0+2",
   "which_tag": "@0.1.3+1",
-  "yaml_tag": "@2.1.11",
+  "yaml_tag": "@2.1.12",
   "zlib_rev": "@c3d0a6190f2f8c924a05ab6cc97b8f975bddd33f",
 }
 
@@ -252,6 +253,8 @@
       + Var("mustache4dart_tag"),
   Var("dart_root") + "/third_party/pkg/oauth2":
       (Var("github_mirror") % "oauth2") + Var("oauth2_tag"),
+  Var("dart_root") + "/third_party/pkg/observable":
+      (Var("github_dartlang") % "observable") + Var("observable_tag"),
   Var("dart_root") + "/third_party/pkg/observe":
       (Var("github_mirror") % "observe") + Var("observe_tag"),
   Var("dart_root") + "/third_party/observatory_pub_packages":
diff --git a/docs/language/informal/covariant-from-class.md b/docs/language/informal/covariant-from-class.md
new file mode 100644
index 0000000..b9f3afe
--- /dev/null
+++ b/docs/language/informal/covariant-from-class.md
@@ -0,0 +1,388 @@
+# Informal Specification: Parameters that are Covariant due to Class Type Parameters
+
+Owner: eernstg@.
+
+## Summary
+
+This document is an informal specification which specifies how to determine the
+reified type of a tear-off where one or more parameters has a type annotation in
+which a formal type parameter of the enclosing class occurs in a covariant
+position. This feature has no effect in Dart 1, it only affects strong mode and
+the upcoming Dart 2.
+
+## Motivation
+
+The main topic here is variance, so we will briefly introduce that
+concept.
+
+Consider the situation where a type is specified as an expression that contains
+another type as a subexpression. For instance, `List<int>` contains `int` as a
+subexpression. We may then consider `List<...>` as a function, and `int` as an
+argument which is passed to that function. With that, covariance is the property
+that this function is increasing, and contravariance is the property that it is
+decreasing, using the subtype relation for comparisons.
+
+Generic classes in Dart are covariant in all their arguments. For example
+`List<E>` is covariant in `E`. This then means that `List<...>` is an
+increasing function, i.e., whenever `S` is a subtype of `T`, `List<S>` will be a
+subtype of `List<T>`.
+
+The subtype rule for function types in Dart 1 is different from the one in
+strong mode and in the upcoming Dart 2. This difference is the main fact that
+motivates the feature described in this document.
+
+Concretely, the subtype rule for function types allows for covariant return
+types in all cases. For instance, assuming that two functions `f` and `g` have
+identical parameter types, the type of `f` will always be a subtype of the type
+of `g` if `f` returns `int` and `g` returns `num`.
+
+This is not true for parameter types. In Dart 1, the function type subtype rule
+allows for covariant parameter types as well as contravariant ones, but strong
+mode and the upcoming Dart 2 require contravariance for parameter types. For
+instance, we have the following cases (using `void` for the return type, because
+the return type is uninteresting, it should just be the same everywhere):
+
+```dart 
+typedef void F(num n);
+
+void f1(Object o) {}
+void f2(num n) {}
+void f3(int i) {}
+
+main() {
+  F myF;
+  myF = f1;  // Contravariance: Succeeds in Dart 1, and in strong mode.
+  myF = f2;  // Same type: Always succeeds.
+  myF = f3;  // Covariance: Succeeds in Dart 1, but fails in strong mode.
+}
+```
+
+In all cases, the variance is concerned with the relationship between the type
+of the parameter for `myF` and the type of the parameter for the function which
+is assigned to `myF`. Since Dart 1 subtyping makes both `f1` and `f3` subtypes
+of the type of `myF`, all assignments succeed at run time (and static analysis
+proceeds without warnings). In strong mode and Dart 2, `f3` does not have a
+subtype of the type of `myF`, so this is considered as a downcast at compile
+time, and it fails at runtime.
+
+Contravariance is the sound rule that most languages use, so this means that
+function calls in strong mode and in Dart 2 are subject to more tight type
+checking, and some run-time errors cannot occur.
+
+However, covariant parameter types can be quite natural and convenient, they
+just impose an obligation on developers to use ad-hoc reasoning in order to
+avoid the potential type errors at run time. The
+[covariant overrides](https://github.com/dart-lang/sdk/blob/master/docs/language/informal/covariant-overrides.md)
+feature was added exactly for this purpose: When developers want to use unsound
+covariance, they can get it by requesting it explicitly. In the (vast majority
+of) cases where the sound and more strict contravariant rule fits the intended
+design, there will be no such request, and parameter type covariance (which
+would then presumably only arise by mistake) will be flagged as a type error.
+
+In order to preserve a fundamental soundness property of Dart, the reified type
+of tear-offs of methods has parameter type `Object` for every parameter whose
+type is covariant. The desired property is that every expression with static
+type `T` must evaluate to a value whose dynamic type `S` which is a subtype of
+`T`. Here is an example why it would not work to reify the declared parameter
+type directly:
+
+```dart
+typedef void F(num n);
+
+class A {
+  // Assume the reified parameter type is `num`, directly as declared.
+  void f(covariant num n) {}
+}
+
+class B extends A {
+  // Assume the reified parameter type is `int`, directly as declared.
+  void f(int i) {}
+}
+
+main() {
+  A a = new B();
+  F myF = a.f; // Statically safe, yet fails at run time in strong mode and Dart 2!
+}
+```
+
+The problem is that `a.f` has static type `(num) -> void`, and if the
+reified type at run time is `(int) -> void` then `a.f` is an expression
+whose value at run time does _not_ conform to the statically known type.
+
+Even worse, there is no statically known type annotation that we can use in the
+declaration of `myF` which will make it safe&mdash;the value of `a` could be an
+instance of some other class `C` where the parameter type is `double`, and in
+general we cannot statically specify a function type where the parameter type is
+a subtype of the actual parameter type at runtime (as required for the
+initialization to succeed).
+
+_We could use the bottom type as the argument type, `(Null) -> void`, but that
+makes all invocations unsafe (except `myF(null)`). We believe that it is more
+useful to preserve the information that "it must be some kind of number", even
+though not all kinds of numbers will work. With `Null`, we just communicate that
+all invocations are unsafe, with no hints at all about which ones would be less
+unsafe than others._
+
+We do not want any such expressions where the value is not a subtype of the
+statically known type, and hence the reified type of `a.f` is `(Object) ->
+void`. In general, the type of each covariant parameter is reified as
+`Object`. In the example, this is how it works:
+
+```dart
+typedef void F(num n);
+
+class A {
+  // The reified parameter type is `Object` because `n` is covariant.
+  void f(covariant num n) {}
+}
+
+class B extends A {
+  // The reified parameter type is `Object` because `i` is covariant.
+  void f(int i) {}
+}
+
+main() {
+  A a = new B();
+  F myF = a.f; // Statically safe, and succeeds at runtime.
+}
+```
+
+_Note that an invocation of `myF` can be statically safe and yet fail at runtime,
+e.g., `myF(3.1)`, but this is exactly the same situation as with the torn-off
+method: `a.f(3.1)` is also considered statically safe, and yet it will fail at
+runtime._
+
+The purpose of this document is to cover one extra type of situation where the
+same typing situation arises.
+
+Parameters can have a covariant type because they are or contain a formal type
+parameter of an enclosing generic class. Here is an example using the core class
+`List` (which underscores that it is a common phenomenon, but any generic class
+would do):
+
+```dart
+// Here is the small part of the core List class that we need here.
+abstract class List<E> ... {
+  // The reified type is `(E) -> void` in all modes, as declared.
+  void add(E value);
+  // The reified type is `(Iterable<E>) -> void` in all modes, as declared.
+  void addAll(Iterable<E> iterable);
+  ...
+}
+
+typedef void F(num n);
+typedef void G(Iterable<num> n);
+
+main() {
+  List<num> xs = <int>[1, 2];
+  F myF = xs.add;    // Statically safe, yet fails at run time
+                     // in strong mode and Dart 2.
+  G myG = xs.addAll; // Same as above.
+}
+```
+
+The example illustrates that the exact same typing situation arises in the
+following two cases:
+
+- A covariant parameter type is induced by an overriding method declaration
+  (example: `int i` in `B.f`).
+- A Covariant parameter type is induced by the use of a formal type parameter of
+  the enclosing generic class in a covariant position in the parameter type
+  declaration (example: `E value` and `Iterable<E> iterable` in `List.add`
+  resp. `List.addAll`).
+
+This document specifies how to preserve the above mentioned expression soundness
+property of Dart, based on a modified rule for how to reify parameter types of
+tear-offs.
+
+## Informal specification
+
+### Syntax
+
+This feature does not give rise to any changes to the grammar of the language.
+
+### Standard mode
+
+This feature does not give rise to any changes to the static analysis nor the
+dynamic semantics of standard mode.
+
+### Strong mode
+
+In strong mode, this feature causes changes to the reified type of a function
+obtained by a closurizing property extraction in some cases, as specified
+below.
+
+#### Static types
+
+The static type of a property extraction remains unchanged.
+
+_The static type of a torn-off method is taken directly from the statically
+known declaration of that method, substituting actual type arguments for formal
+type parameters as usual. For instance, the static type of `xs.addAll` is
+`(Iterable<num>) -> void` when the static type of `xs` is `List<num>`._
+
+#### Reified types
+
+We need to introduce a new kind of covariant parameters, in addition to the
+notion of covariant parameters which is introduced in the informal
+specification of
+[covariant overrides](https://github.com/dart-lang/sdk/blob/master/docs/language/informal/covariant-overrides.md).
+
+Consider a class _T_ which is generic or has a generic supertype (directly or
+indirectly). Let _S_ be said generic class. Assume that there is a declaration
+of a method, setter, or operator `m` in _S_, that `X` is a formal type parameter
+declared by _S_, and that said declaration of `m` has a formal parameter `x`
+whose type contains `X` in a covariant position. In this situation we say that
+the parameter `x` is **covariant due to class covariance**.
+
+_The type of `x` is in a covariant position when the type is `X` itself, e.g.,
+when the parameter is declared as `X x`. It is also in a covariant position when
+it is declared like `List<X> x`, because generic classes are covariant in all
+their type arguments. An example where `X` does not occur in a covariant
+position is when `x` is a function typed parameter like `int x(X arg)`._
+
+In the remainder of this section, a parameter which is covariant according
+to the definition given in 
+[covariant overrides](https://github.com/dart-lang/sdk/blob/master/docs/language/informal/covariant-overrides.md)
+is treated the same as a parameter which is covariant due to class covariance as
+defined in this document; in both cases we just refer to the parameter as a
+_covariant parameter_.
+
+The reified type for a function _f_ obtained by a closurizing property
+extraction on an instance method, setter, or operator is determined as follows:
+
+Let `m` be the name of the method, operator, or setter which is being
+closurized, let _T_ be the dynamic type of the receiver, and let _D_ be
+the declaration of `m` in _T_ or inherited by _T_ which is being extracted.
+
+The reified return type of _f_ the is the static return type of _D_. For each
+parameter `p` declared in _D_ which is not covariant, the part in the dynamic
+type of _f_ which corresponds to `p` is the static type of `p` in _D_. For each
+covariant parameter `q`, the part in the dynamic type of _f_ which corresponds
+to `q` is `Object`.
+
+_The occurrences of type parameters in the types of non-covariant parameters
+(note that those occurrences must be in a non-covariant position in the
+parameter type) are used as-is. For instance, `<String>[].asMap()` will have the
+reified type `() -> Map<int, String>`._
+
+The dynamic checks associated with invocation of such a function are still
+needed, and they are unchanged.
+
+_That is, a dynamic error occurs if a method with a covariant parameter p is
+invoked, and the actual argument value bound to p has a run-time type which is
+not a subtype of the type declared for p._
+
+## Alternatives
+
+The "erasure" of the reified parameter type for each covariant parameter to
+`Object` may seem agressive.
+
+In particular, it ignores upper bounds on the formal type parameter which gives
+rise to the covariance due to class covariance, and it ignores the structure of
+the type where that formal type parameter is used. Here are two examples:
+
+```dart
+class C<X extends num> {
+  void foo(X x) {}
+  void bar(List<X> xs) {}
+}
+```
+
+With this declaration, the reified type of `new C<int>().foo` will be `(Object)
+-> void`, even though it would have been possible to use the type `(num) ->
+void` based on the upper bound of `X`, and still preserve the earlier mentioned
+expression soundness. This is because all supertypes of the dynamic type of the
+receiver that declare `foo` have an argument type for it which is a subtype of
+`num`.
+
+Similarly, the reified type of `new C<int>().bar` will be `(Object) -> void`,
+even though it would have been possible to use the type `(List<num>) -> void`.
+
+Note that the reified type is independent of the static type of the receiver, so
+it does not matter that we consider `new C<int>()` directly, rather than using
+an intermediate variable whose type annotation is some supertype, e.g.,
+`C<num>`.
+
+In the first example, `foo`, there is a loss of information because we are
+(dynamically) allowed to assign the function to a variable of type `(Object) ->
+void`. Even worse, we may assign it to a variable of type `(String) -> void`,
+because `(Object) -> void` (that is, the actual type that the function reports
+to have) is a subtype of `(String) -> void`. In that situation, every statically
+safe invocation will fail, because there are no values of type `String` which
+will satisfy the dynamic check in the function itself, which requires an
+argument of type `int` (except `null`, of course, but this is rarely sufficient
+to make the function useful).
+
+In the second example, `bar`, the same phenomenon is extended a little, because
+we may assign the given torn-off function to a variable of type `(String) ->
+void`, in addition to more reasonable ones like `(Object) -> void`,
+`(Iterable<Object>) -> void`, and `(Iterable<int>) -> void`.
+
+It is certainly possible to specify a more "tight" reified type like the ones
+mentioned above. In order to do this, we would need the least upper bound of all
+the statically known types in all supertypes of the dynamic type of the
+receiver. This would involve a least upper bound operation on a set of types,
+and it would involve an instantiate-to-bounds operation on the type parameters.
+
+The main problem with this approach is that some declarations do not allow for
+computation of a finite type which is the least upper bound of all possible
+instantiations, so we cannot instantiate-to-bound:
+
+```dart
+// There is no finite type `T` such that all possible values
+// for `X` are subtypes of `T`.
+class D<X extends D<X>> {}
+```
+
+Similarly, some finite sets of types do not have a denotable least upper bound:
+
+```dart
+class I {}
+class J {}
+
+class A implements I, J {}
+class B implements I, J {}
+```
+
+In this case both of `A` and `B` have the two immediate superinterfaces `I` and
+`J`, and there is no single type (that we can express in Dart) which is the
+least of all the supertypes of `A` and `B`.
+
+So in some cases we will have to error out when we compute the reified type of a
+tear-off of a given method, unless we introduce intersection types and infinite
+types, or unless we find some other way around this difficulty.
+
+On the other hand, it should be noted that the common usage of these torn-off
+functions would be guided by the statically known types, which do have the
+potential to keep them "within a safe domain".
+
+Here is an example:
+
+```dart
+main() {
+  List<int> xs = <int>[];
+  void Function(int) f1 = xs.add; // Same type statically, OK at runtime.
+  void Function(num) f2 = xs.add; // Statically a downcast, can warn, OK at runtime.
+  void Function(Object) f3 = xs.add; // A downcast, can warn, OK at runtime.
+  void Function(String) f4 = xs.add; // An unrelated type, error in strong mode.
+
+  List<num> ys = xs; // "Forget part of the type".
+  void Function(int) f5 = ys.add; // Statically an upcast, OK at runtime.
+  void Function(num) f6 = ys.add; // Statically same type, OK at runtime.
+  void Function(Object) f7 = ys.add; // Statically a downcast, OK at runtime.
+  void Function(String) f8 = ys.add; // An unrelated type, error in strong mode.
+  
+  List<Object> zs = ys;
+  void Function(int) f9 = zs.add; // Statically an upcast, OK at runtime.
+  void Function(num) fa = zs.add; // Statically an upcast, OK at runtime.
+  void Function(Object) fb = zs.add; // Statically a same type, OK at runtime.
+  void Function(String) fc = zs.add; // Finally we can go wrong silently!
+}
+```
+
+In other words, the static typing helps programmers to maintain the same level
+of knowledge (say, "this is a list of `num`") consistently, even though it is
+consistently incomplete ("it's actually a list of `int`"), and this helps a lot
+in avoiding those crazy assignments (to `List<String>`) where almost all method
+invocations will go wrong.
diff --git a/pkg/analysis_server/analysis_server.iml b/pkg/analysis_server/analysis_server.iml
index 2cf6a6c..02af3aa 100644
--- a/pkg/analysis_server/analysis_server.iml
+++ b/pkg/analysis_server/analysis_server.iml
@@ -15,6 +15,8 @@
       <excludeFolder url="file://$MODULE_DIR$/test/edit/packages" />
       <excludeFolder url="file://$MODULE_DIR$/test/integration/analysis/packages" />
       <excludeFolder url="file://$MODULE_DIR$/test/integration/completion/packages" />
+      <excludeFolder url="file://$MODULE_DIR$/test/integration/diagnostic/packages" />
+      <excludeFolder url="file://$MODULE_DIR$/test/integration/edit/packages" />
       <excludeFolder url="file://$MODULE_DIR$/test/integration/execution/packages" />
       <excludeFolder url="file://$MODULE_DIR$/test/integration/packages" />
       <excludeFolder url="file://$MODULE_DIR$/test/integration/search/packages" />
diff --git a/pkg/analysis_server/doc/api.html b/pkg/analysis_server/doc/api.html
index e6ad6ea..9756879c 100644
--- a/pkg/analysis_server/doc/api.html
+++ b/pkg/analysis_server/doc/api.html
@@ -108,7 +108,7 @@
 </style></head>
   <body>
     <h1>Analysis Server API Specification</h1>
-    <h1 style="color:#999999">Version 1.17.0</h1>
+    <h1 style="color:#999999">Version 1.18.0</h1>
     <p>
       This document contains a specification of the API provided by the
       analysis server.  The API in this document is currently under
@@ -2405,6 +2405,7 @@
         The diagnostic domain contains server diagnostics APIs.
       </p>
       
+      
     <h3>Requests</h3><dl><dt class="request"><a name="request_diagnostic.getDiagnostics">diagnostic.getDiagnostics</a> (<a href="#request_diagnostic.getDiagnostics">#</a>)</dt><dd><div class="box"><pre>request: {
   "id": String
   "method": "diagnostic.getDiagnostics"
@@ -2420,6 +2421,25 @@
       <h4>returns:</h4><dl><dt class="field"><b>contexts (List&lt;<a href="#type_ContextData">ContextData</a>&gt;)</b></dt><dd>
             
             <p>The list of analysis contexts.</p>
+          </dd></dl></dd><dt class="request"><a name="request_diagnostic.getServerPort">diagnostic.getServerPort</a> (<a href="#request_diagnostic.getServerPort">#</a>)</dt><dd><div class="box"><pre>request: {
+  "id": String
+  "method": "diagnostic.getServerPort"
+}</pre><br><pre>response: {
+  "id": String
+  "error": <span style="color:#999999">optional</span> <a href="#type_RequestError">RequestError</a>
+  "result": {
+    "<b>port</b>": int
+  }
+}</pre></div>
+        <p>
+          Return the port of the diagnostic web server. If the server is not running
+          this call will start the server. If unable to start the diagnostic web server,
+          this call will return an error of <tt>DEBUG_PORT_COULD_NOT_BE_OPENED</tt>.
+        </p>
+        
+      <h4>returns:</h4><dl><dt class="field"><b>port (int)</b></dt><dd>
+            
+            <p>The diagnostic server port.</p>
           </dd></dl></dd></dl>
     
       <h2 class="domain"><a name="types">Types</a></h2>
@@ -3781,6 +3801,11 @@
               not be satisfied because the content of the file changed before
               the requested results could be computed.
             </p>
+          </dd><dt class="value">DEBUG_PORT_COULD_NOT_BE_OPENED</dt><dd>
+            
+            <p>
+              The server was unable to open a port for the diagnostic server.
+            </p>
           </dd><dt class="value">FILE_NOT_ANALYZED</dt><dd>
             
             <p>
@@ -4504,7 +4529,7 @@
       TODO: TBD
     </p>
     <h2 class="domain"><a name="index">Index</a></h2>
-    <h3>Domains</h3><h4>server (<a href="#domain_server">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_server.getVersion">getVersion</a></li><li><a href="#request_server.shutdown">shutdown</a></li><li><a href="#request_server.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_server.connected">connected</a></li><li><a href="#notification_server.error">error</a></li><li><a href="#notification_server.status">status</a></li></ul></div></div><h4>analysis (<a href="#domain_analysis">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_analysis.getErrors">getErrors</a></li><li><a href="#request_analysis.getHover">getHover</a></li><li><a href="#request_analysis.getReachableSources">getReachableSources</a></li><li><a href="#request_analysis.getLibraryDependencies">getLibraryDependencies</a></li><li><a href="#request_analysis.getNavigation">getNavigation</a></li><li><a href="#request_analysis.reanalyze">reanalyze</a></li><li><a href="#request_analysis.setAnalysisRoots">setAnalysisRoots</a></li><li><a href="#request_analysis.setGeneralSubscriptions">setGeneralSubscriptions</a></li><li><a href="#request_analysis.setPriorityFiles">setPriorityFiles</a></li><li><a href="#request_analysis.setSubscriptions">setSubscriptions</a></li><li><a href="#request_analysis.updateContent">updateContent</a></li><li><a href="#request_analysis.updateOptions">updateOptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_analysis.analyzedFiles">analyzedFiles</a></li><li><a href="#notification_analysis.errors">errors</a></li><li><a href="#notification_analysis.flushResults">flushResults</a></li><li><a href="#notification_analysis.folding">folding</a></li><li><a href="#notification_analysis.highlights">highlights</a></li><li><a href="#notification_analysis.implemented">implemented</a></li><li><a href="#notification_analysis.invalidate">invalidate</a></li><li><a href="#notification_analysis.navigation">navigation</a></li><li><a href="#notification_analysis.occurrences">occurrences</a></li><li><a href="#notification_analysis.outline">outline</a></li><li><a href="#notification_analysis.overrides">overrides</a></li></ul></div></div><h4>completion (<a href="#domain_completion">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_completion.getSuggestions">getSuggestions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_completion.results">results</a></li></ul></div></div><h4>search (<a href="#domain_search">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_search.findElementReferences">findElementReferences</a></li><li><a href="#request_search.findMemberDeclarations">findMemberDeclarations</a></li><li><a href="#request_search.findMemberReferences">findMemberReferences</a></li><li><a href="#request_search.findTopLevelDeclarations">findTopLevelDeclarations</a></li><li><a href="#request_search.getTypeHierarchy">getTypeHierarchy</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_search.results">results</a></li></ul></div></div><h4>edit (<a href="#domain_edit">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_edit.format">format</a></li><li><a href="#request_edit.getAssists">getAssists</a></li><li><a href="#request_edit.getAvailableRefactorings">getAvailableRefactorings</a></li><li><a href="#request_edit.getFixes">getFixes</a></li><li><a href="#request_edit.getRefactoring">getRefactoring</a></li><li><a href="#request_edit.sortMembers">sortMembers</a></li><li><a href="#request_edit.organizeDirectives">organizeDirectives</a></li></ul></div><h4>execution (<a href="#domain_execution">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_execution.createContext">createContext</a></li><li><a href="#request_execution.deleteContext">deleteContext</a></li><li><a href="#request_execution.mapUri">mapUri</a></li><li><a href="#request_execution.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_execution.launchData">launchData</a></li></ul></div></div><h4>diagnostic (<a href="#domain_diagnostic">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_diagnostic.getDiagnostics">getDiagnostics</a></li></ul></div><h3>Types (<a href="#types">↑</a>)</h3><div class="subindex"><ul><li><a href="#type_AddContentOverlay">AddContentOverlay</a></li><li><a href="#type_AnalysisError">AnalysisError</a></li><li><a href="#type_AnalysisErrorFixes">AnalysisErrorFixes</a></li><li><a href="#type_AnalysisErrorSeverity">AnalysisErrorSeverity</a></li><li><a href="#type_AnalysisErrorType">AnalysisErrorType</a></li><li><a href="#type_AnalysisOptions">AnalysisOptions</a></li><li><a href="#type_AnalysisService">AnalysisService</a></li><li><a href="#type_AnalysisStatus">AnalysisStatus</a></li><li><a href="#type_ChangeContentOverlay">ChangeContentOverlay</a></li><li><a href="#type_CompletionId">CompletionId</a></li><li><a href="#type_CompletionSuggestion">CompletionSuggestion</a></li><li><a href="#type_CompletionSuggestionKind">CompletionSuggestionKind</a></li><li><a href="#type_ContextData">ContextData</a></li><li><a href="#type_Element">Element</a></li><li><a href="#type_ElementKind">ElementKind</a></li><li><a href="#type_ExecutableFile">ExecutableFile</a></li><li><a href="#type_ExecutableKind">ExecutableKind</a></li><li><a href="#type_ExecutionContextId">ExecutionContextId</a></li><li><a href="#type_ExecutionService">ExecutionService</a></li><li><a href="#type_FileKind">FileKind</a></li><li><a href="#type_FilePath">FilePath</a></li><li><a href="#type_FoldingKind">FoldingKind</a></li><li><a href="#type_FoldingRegion">FoldingRegion</a></li><li><a href="#type_GeneralAnalysisService">GeneralAnalysisService</a></li><li><a href="#type_HighlightRegion">HighlightRegion</a></li><li><a href="#type_HighlightRegionType">HighlightRegionType</a></li><li><a href="#type_HoverInformation">HoverInformation</a></li><li><a href="#type_ImplementedClass">ImplementedClass</a></li><li><a href="#type_ImplementedMember">ImplementedMember</a></li><li><a href="#type_LinkedEditGroup">LinkedEditGroup</a></li><li><a href="#type_LinkedEditSuggestion">LinkedEditSuggestion</a></li><li><a href="#type_LinkedEditSuggestionKind">LinkedEditSuggestionKind</a></li><li><a href="#type_Location">Location</a></li><li><a href="#type_NavigationRegion">NavigationRegion</a></li><li><a href="#type_NavigationTarget">NavigationTarget</a></li><li><a href="#type_Occurrences">Occurrences</a></li><li><a href="#type_Outline">Outline</a></li><li><a href="#type_Override">Override</a></li><li><a href="#type_OverriddenMember">OverriddenMember</a></li><li><a href="#type_Position">Position</a></li><li><a href="#type_PubStatus">PubStatus</a></li><li><a href="#type_RefactoringKind">RefactoringKind</a></li><li><a href="#type_RefactoringMethodParameter">RefactoringMethodParameter</a></li><li><a href="#type_RefactoringFeedback">RefactoringFeedback</a></li><li><a href="#type_RefactoringOptions">RefactoringOptions</a></li><li><a href="#type_RefactoringMethodParameterKind">RefactoringMethodParameterKind</a></li><li><a href="#type_RefactoringProblem">RefactoringProblem</a></li><li><a href="#type_RefactoringProblemSeverity">RefactoringProblemSeverity</a></li><li><a href="#type_RemoveContentOverlay">RemoveContentOverlay</a></li><li><a href="#type_RequestError">RequestError</a></li><li><a href="#type_RequestErrorCode">RequestErrorCode</a></li><li><a href="#type_SearchId">SearchId</a></li><li><a href="#type_SearchResult">SearchResult</a></li><li><a href="#type_SearchResultKind">SearchResultKind</a></li><li><a href="#type_ServerService">ServerService</a></li><li><a href="#type_SourceChange">SourceChange</a></li><li><a href="#type_SourceEdit">SourceEdit</a></li><li><a href="#type_SourceFileEdit">SourceFileEdit</a></li><li><a href="#type_TypeHierarchyItem">TypeHierarchyItem</a></li></ul></div><h3>Refactorings (<a href="#refactorings">↑</a>)</h3><div class="subindex"><ul><li><a href="#refactoring_CONVERT_GETTER_TO_METHOD">CONVERT_GETTER_TO_METHOD</a></li><li><a href="#refactoring_CONVERT_METHOD_TO_GETTER">CONVERT_METHOD_TO_GETTER</a></li><li><a href="#refactoring_EXTRACT_LOCAL_VARIABLE">EXTRACT_LOCAL_VARIABLE</a></li><li><a href="#refactoring_EXTRACT_METHOD">EXTRACT_METHOD</a></li><li><a href="#refactoring_INLINE_LOCAL_VARIABLE">INLINE_LOCAL_VARIABLE</a></li><li><a href="#refactoring_INLINE_METHOD">INLINE_METHOD</a></li><li><a href="#refactoring_MOVE_FILE">MOVE_FILE</a></li><li><a href="#refactoring_RENAME">RENAME</a></li></ul></div>
+    <h3>Domains</h3><h4>server (<a href="#domain_server">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_server.getVersion">getVersion</a></li><li><a href="#request_server.shutdown">shutdown</a></li><li><a href="#request_server.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_server.connected">connected</a></li><li><a href="#notification_server.error">error</a></li><li><a href="#notification_server.status">status</a></li></ul></div></div><h4>analysis (<a href="#domain_analysis">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_analysis.getErrors">getErrors</a></li><li><a href="#request_analysis.getHover">getHover</a></li><li><a href="#request_analysis.getReachableSources">getReachableSources</a></li><li><a href="#request_analysis.getLibraryDependencies">getLibraryDependencies</a></li><li><a href="#request_analysis.getNavigation">getNavigation</a></li><li><a href="#request_analysis.reanalyze">reanalyze</a></li><li><a href="#request_analysis.setAnalysisRoots">setAnalysisRoots</a></li><li><a href="#request_analysis.setGeneralSubscriptions">setGeneralSubscriptions</a></li><li><a href="#request_analysis.setPriorityFiles">setPriorityFiles</a></li><li><a href="#request_analysis.setSubscriptions">setSubscriptions</a></li><li><a href="#request_analysis.updateContent">updateContent</a></li><li><a href="#request_analysis.updateOptions">updateOptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_analysis.analyzedFiles">analyzedFiles</a></li><li><a href="#notification_analysis.errors">errors</a></li><li><a href="#notification_analysis.flushResults">flushResults</a></li><li><a href="#notification_analysis.folding">folding</a></li><li><a href="#notification_analysis.highlights">highlights</a></li><li><a href="#notification_analysis.implemented">implemented</a></li><li><a href="#notification_analysis.invalidate">invalidate</a></li><li><a href="#notification_analysis.navigation">navigation</a></li><li><a href="#notification_analysis.occurrences">occurrences</a></li><li><a href="#notification_analysis.outline">outline</a></li><li><a href="#notification_analysis.overrides">overrides</a></li></ul></div></div><h4>completion (<a href="#domain_completion">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_completion.getSuggestions">getSuggestions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_completion.results">results</a></li></ul></div></div><h4>search (<a href="#domain_search">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_search.findElementReferences">findElementReferences</a></li><li><a href="#request_search.findMemberDeclarations">findMemberDeclarations</a></li><li><a href="#request_search.findMemberReferences">findMemberReferences</a></li><li><a href="#request_search.findTopLevelDeclarations">findTopLevelDeclarations</a></li><li><a href="#request_search.getTypeHierarchy">getTypeHierarchy</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_search.results">results</a></li></ul></div></div><h4>edit (<a href="#domain_edit">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_edit.format">format</a></li><li><a href="#request_edit.getAssists">getAssists</a></li><li><a href="#request_edit.getAvailableRefactorings">getAvailableRefactorings</a></li><li><a href="#request_edit.getFixes">getFixes</a></li><li><a href="#request_edit.getRefactoring">getRefactoring</a></li><li><a href="#request_edit.sortMembers">sortMembers</a></li><li><a href="#request_edit.organizeDirectives">organizeDirectives</a></li></ul></div><h4>execution (<a href="#domain_execution">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_execution.createContext">createContext</a></li><li><a href="#request_execution.deleteContext">deleteContext</a></li><li><a href="#request_execution.mapUri">mapUri</a></li><li><a href="#request_execution.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_execution.launchData">launchData</a></li></ul></div></div><h4>diagnostic (<a href="#domain_diagnostic">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_diagnostic.getDiagnostics">getDiagnostics</a></li><li><a href="#request_diagnostic.getServerPort">getServerPort</a></li></ul></div><h3>Types (<a href="#types">↑</a>)</h3><div class="subindex"><ul><li><a href="#type_AddContentOverlay">AddContentOverlay</a></li><li><a href="#type_AnalysisError">AnalysisError</a></li><li><a href="#type_AnalysisErrorFixes">AnalysisErrorFixes</a></li><li><a href="#type_AnalysisErrorSeverity">AnalysisErrorSeverity</a></li><li><a href="#type_AnalysisErrorType">AnalysisErrorType</a></li><li><a href="#type_AnalysisOptions">AnalysisOptions</a></li><li><a href="#type_AnalysisService">AnalysisService</a></li><li><a href="#type_AnalysisStatus">AnalysisStatus</a></li><li><a href="#type_ChangeContentOverlay">ChangeContentOverlay</a></li><li><a href="#type_CompletionId">CompletionId</a></li><li><a href="#type_CompletionSuggestion">CompletionSuggestion</a></li><li><a href="#type_CompletionSuggestionKind">CompletionSuggestionKind</a></li><li><a href="#type_ContextData">ContextData</a></li><li><a href="#type_Element">Element</a></li><li><a href="#type_ElementKind">ElementKind</a></li><li><a href="#type_ExecutableFile">ExecutableFile</a></li><li><a href="#type_ExecutableKind">ExecutableKind</a></li><li><a href="#type_ExecutionContextId">ExecutionContextId</a></li><li><a href="#type_ExecutionService">ExecutionService</a></li><li><a href="#type_FileKind">FileKind</a></li><li><a href="#type_FilePath">FilePath</a></li><li><a href="#type_FoldingKind">FoldingKind</a></li><li><a href="#type_FoldingRegion">FoldingRegion</a></li><li><a href="#type_GeneralAnalysisService">GeneralAnalysisService</a></li><li><a href="#type_HighlightRegion">HighlightRegion</a></li><li><a href="#type_HighlightRegionType">HighlightRegionType</a></li><li><a href="#type_HoverInformation">HoverInformation</a></li><li><a href="#type_ImplementedClass">ImplementedClass</a></li><li><a href="#type_ImplementedMember">ImplementedMember</a></li><li><a href="#type_LinkedEditGroup">LinkedEditGroup</a></li><li><a href="#type_LinkedEditSuggestion">LinkedEditSuggestion</a></li><li><a href="#type_LinkedEditSuggestionKind">LinkedEditSuggestionKind</a></li><li><a href="#type_Location">Location</a></li><li><a href="#type_NavigationRegion">NavigationRegion</a></li><li><a href="#type_NavigationTarget">NavigationTarget</a></li><li><a href="#type_Occurrences">Occurrences</a></li><li><a href="#type_Outline">Outline</a></li><li><a href="#type_Override">Override</a></li><li><a href="#type_OverriddenMember">OverriddenMember</a></li><li><a href="#type_Position">Position</a></li><li><a href="#type_PubStatus">PubStatus</a></li><li><a href="#type_RefactoringKind">RefactoringKind</a></li><li><a href="#type_RefactoringMethodParameter">RefactoringMethodParameter</a></li><li><a href="#type_RefactoringFeedback">RefactoringFeedback</a></li><li><a href="#type_RefactoringOptions">RefactoringOptions</a></li><li><a href="#type_RefactoringMethodParameterKind">RefactoringMethodParameterKind</a></li><li><a href="#type_RefactoringProblem">RefactoringProblem</a></li><li><a href="#type_RefactoringProblemSeverity">RefactoringProblemSeverity</a></li><li><a href="#type_RemoveContentOverlay">RemoveContentOverlay</a></li><li><a href="#type_RequestError">RequestError</a></li><li><a href="#type_RequestErrorCode">RequestErrorCode</a></li><li><a href="#type_SearchId">SearchId</a></li><li><a href="#type_SearchResult">SearchResult</a></li><li><a href="#type_SearchResultKind">SearchResultKind</a></li><li><a href="#type_ServerService">ServerService</a></li><li><a href="#type_SourceChange">SourceChange</a></li><li><a href="#type_SourceEdit">SourceEdit</a></li><li><a href="#type_SourceFileEdit">SourceFileEdit</a></li><li><a href="#type_TypeHierarchyItem">TypeHierarchyItem</a></li></ul></div><h3>Refactorings (<a href="#refactorings">↑</a>)</h3><div class="subindex"><ul><li><a href="#refactoring_CONVERT_GETTER_TO_METHOD">CONVERT_GETTER_TO_METHOD</a></li><li><a href="#refactoring_CONVERT_METHOD_TO_GETTER">CONVERT_METHOD_TO_GETTER</a></li><li><a href="#refactoring_EXTRACT_LOCAL_VARIABLE">EXTRACT_LOCAL_VARIABLE</a></li><li><a href="#refactoring_EXTRACT_METHOD">EXTRACT_METHOD</a></li><li><a href="#refactoring_INLINE_LOCAL_VARIABLE">INLINE_LOCAL_VARIABLE</a></li><li><a href="#refactoring_INLINE_METHOD">INLINE_METHOD</a></li><li><a href="#refactoring_MOVE_FILE">MOVE_FILE</a></li><li><a href="#refactoring_RENAME">RENAME</a></li></ul></div>
   
 
 </body></html>
\ No newline at end of file
diff --git a/pkg/analysis_server/lib/plugin/protocol/generated_protocol.dart b/pkg/analysis_server/lib/plugin/protocol/generated_protocol.dart
index 9a11d6a..59b76b0 100644
--- a/pkg/analysis_server/lib/plugin/protocol/generated_protocol.dart
+++ b/pkg/analysis_server/lib/plugin/protocol/generated_protocol.dart
@@ -7759,6 +7759,109 @@
     return JenkinsSmiHash.finish(hash);
   }
 }
+/**
+ * diagnostic.getServerPort params
+ *
+ * Clients may not extend, implement or mix-in this class.
+ */
+class DiagnosticGetServerPortParams {
+  Request toRequest(String id) {
+    return new Request(id, "diagnostic.getServerPort", null);
+  }
+
+  @override
+  bool operator==(other) {
+    if (other is DiagnosticGetServerPortParams) {
+      return true;
+    }
+    return false;
+  }
+
+  @override
+  int get hashCode {
+    return 367508704;
+  }
+}
+
+/**
+ * diagnostic.getServerPort result
+ *
+ * {
+ *   "port": int
+ * }
+ *
+ * Clients may not extend, implement or mix-in this class.
+ */
+class DiagnosticGetServerPortResult implements HasToJson {
+  int _port;
+
+  /**
+   * The diagnostic server port.
+   */
+  int get port => _port;
+
+  /**
+   * The diagnostic server port.
+   */
+  void set port(int value) {
+    assert(value != null);
+    this._port = value;
+  }
+
+  DiagnosticGetServerPortResult(int port) {
+    this.port = port;
+  }
+
+  factory DiagnosticGetServerPortResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
+    if (json == null) {
+      json = {};
+    }
+    if (json is Map) {
+      int port;
+      if (json.containsKey("port")) {
+        port = jsonDecoder.decodeInt(jsonPath + ".port", json["port"]);
+      } else {
+        throw jsonDecoder.missingKey(jsonPath, "port");
+      }
+      return new DiagnosticGetServerPortResult(port);
+    } else {
+      throw jsonDecoder.mismatch(jsonPath, "diagnostic.getServerPort result", json);
+    }
+  }
+
+  factory DiagnosticGetServerPortResult.fromResponse(Response response) {
+    return new DiagnosticGetServerPortResult.fromJson(
+        new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response._result);
+  }
+
+  Map<String, dynamic> toJson() {
+    Map<String, dynamic> result = {};
+    result["port"] = port;
+    return result;
+  }
+
+  Response toResponse(String id) {
+    return new Response(id, result: toJson());
+  }
+
+  @override
+  String toString() => JSON.encode(toJson());
+
+  @override
+  bool operator==(other) {
+    if (other is DiagnosticGetServerPortResult) {
+      return port == other.port;
+    }
+    return false;
+  }
+
+  @override
+  int get hashCode {
+    int hash = 0;
+    hash = JenkinsSmiHash.combine(hash, port.hashCode);
+    return JenkinsSmiHash.finish(hash);
+  }
+}
 
 /**
  * AddContentOverlay
@@ -14204,6 +14307,7 @@
  *
  * enum {
  *   CONTENT_MODIFIED
+ *   DEBUG_PORT_COULD_NOT_BE_OPENED
  *   FILE_NOT_ANALYZED
  *   FORMAT_INVALID_FILE
  *   FORMAT_WITH_ERRORS
@@ -14240,6 +14344,11 @@
   static const RequestErrorCode CONTENT_MODIFIED = const RequestErrorCode._("CONTENT_MODIFIED");
 
   /**
+   * The server was unable to open a port for the diagnostic server.
+   */
+  static const RequestErrorCode DEBUG_PORT_COULD_NOT_BE_OPENED = const RequestErrorCode._("DEBUG_PORT_COULD_NOT_BE_OPENED");
+
+  /**
    * A request specified a FilePath which does not match a file in an analysis
    * root, or the requested operation is not available for the file.
    */
@@ -14386,7 +14495,7 @@
   /**
    * A list containing all of the enum values that are defined.
    */
-  static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[CONTENT_MODIFIED, FILE_NOT_ANALYZED, FORMAT_INVALID_FILE, FORMAT_WITH_ERRORS, GET_ERRORS_INVALID_FILE, GET_NAVIGATION_INVALID_FILE, GET_REACHABLE_SOURCES_INVALID_FILE, INVALID_ANALYSIS_ROOT, INVALID_EXECUTION_CONTEXT, INVALID_FILE_PATH_FORMAT, INVALID_OVERLAY_CHANGE, INVALID_PARAMETER, INVALID_REQUEST, NO_INDEX_GENERATED, ORGANIZE_DIRECTIVES_ERROR, REFACTORING_REQUEST_CANCELLED, SERVER_ALREADY_STARTED, SERVER_ERROR, SORT_MEMBERS_INVALID_FILE, SORT_MEMBERS_PARSE_ERRORS, UNANALYZED_PRIORITY_FILES, UNKNOWN_REQUEST, UNKNOWN_SOURCE, UNSUPPORTED_FEATURE];
+  static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[CONTENT_MODIFIED, DEBUG_PORT_COULD_NOT_BE_OPENED, FILE_NOT_ANALYZED, FORMAT_INVALID_FILE, FORMAT_WITH_ERRORS, GET_ERRORS_INVALID_FILE, GET_NAVIGATION_INVALID_FILE, GET_REACHABLE_SOURCES_INVALID_FILE, INVALID_ANALYSIS_ROOT, INVALID_EXECUTION_CONTEXT, INVALID_FILE_PATH_FORMAT, INVALID_OVERLAY_CHANGE, INVALID_PARAMETER, INVALID_REQUEST, NO_INDEX_GENERATED, ORGANIZE_DIRECTIVES_ERROR, REFACTORING_REQUEST_CANCELLED, SERVER_ALREADY_STARTED, SERVER_ERROR, SORT_MEMBERS_INVALID_FILE, SORT_MEMBERS_PARSE_ERRORS, UNANALYZED_PRIORITY_FILES, UNKNOWN_REQUEST, UNKNOWN_SOURCE, UNSUPPORTED_FEATURE];
 
   final String name;
 
@@ -14396,6 +14505,8 @@
     switch (name) {
       case "CONTENT_MODIFIED":
         return CONTENT_MODIFIED;
+      case "DEBUG_PORT_COULD_NOT_BE_OPENED":
+        return DEBUG_PORT_COULD_NOT_BE_OPENED;
       case "FILE_NOT_ANALYZED":
         return FILE_NOT_ANALYZED;
       case "FORMAT_INVALID_FILE":
diff --git a/pkg/analysis_server/lib/plugin/protocol/protocol.dart b/pkg/analysis_server/lib/plugin/protocol/protocol.dart
index 49e19c1..ea425cf 100644
--- a/pkg/analysis_server/lib/plugin/protocol/protocol.dart
+++ b/pkg/analysis_server/lib/plugin/protocol/protocol.dart
@@ -339,6 +339,14 @@
       : _result = result;
 
   /**
+   * Create and return the `DEBUG_PORT_COULD_NOT_BE_OPENED` error response.
+   */
+  Response.debugPortCouldNotBeOpened(Request request, dynamic error)
+      : this(request.id,
+      error: new RequestError(
+          RequestErrorCode.DEBUG_PORT_COULD_NOT_BE_OPENED, '$error'));
+
+  /**
    * Initialize a newly created instance to represent the FILE_NOT_ANALYZED
    * error condition.
    */
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 1ea9e8d..c46ca60 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -20,6 +20,7 @@
 import 'package:analysis_server/src/operation/operation_analysis.dart';
 import 'package:analysis_server/src/operation/operation_queue.dart';
 import 'package:analysis_server/src/plugin/server_plugin.dart';
+import 'package:analysis_server/src/server/diagnostic_server.dart';
 import 'package:analysis_server/src/services/correction/namespace.dart';
 import 'package:analysis_server/src/services/index/index.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
@@ -51,7 +52,6 @@
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/source_io.dart';
 import 'package:analyzer/src/generated/utilities_general.dart';
-import 'package:analyzer/src/summary/pub_summary.dart';
 import 'package:analyzer/src/task/dart.dart';
 import 'package:analyzer/src/util/glob.dart';
 import 'package:analyzer/task/dart.dart';
@@ -92,7 +92,7 @@
    * The version of the analysis server. The value should be replaced
    * automatically during the build.
    */
-  static final String VERSION = '1.17.0';
+  static final String VERSION = '1.18.0';
 
   /**
    * The number of milliseconds to perform operations before inserting
@@ -320,11 +320,6 @@
    */
   ResolverProvider packageResolverProvider;
 
-  /**
-   * The manager of pub package summaries.
-   */
-  PubSummaryManager pubSummaryManager;
-
   nd.PerformanceLog _analysisPerformanceLogger;
   ByteStore byteStore;
   nd.AnalysisDriverScheduler analysisDriverScheduler;
@@ -335,6 +330,13 @@
   final Set<String> priorityFiles = new Set<String>();
 
   /**
+   * The DiagnosticServer for this AnalysisServer. If available, it can be used
+   * to start an http diagnostics server or return the port for an existing
+   * server.
+   */
+  DiagnosticServer diagnosticServer;
+
+  /**
    * Initialize a newly created server to receive requests from and send
    * responses to the given [channel].
    *
@@ -352,7 +354,8 @@
       this.options,
       this.sdkManager,
       this.instrumentationService,
-      {ResolverProvider fileResolverProvider: null,
+      {this.diagnosticServer,
+      ResolverProvider fileResolverProvider: null,
       ResolverProvider packageResolverProvider: null,
       bool useSingleContextManager: false,
       this.rethrowExceptions: true}) {
@@ -380,15 +383,7 @@
       }
       _analysisPerformanceLogger = new nd.PerformanceLog(sink);
     }
-    if (resourceProvider is PhysicalResourceProvider) {
-      byteStore = new MemoryCachingByteStore(
-          new EvictingFileByteStore(
-              resourceProvider.getStateLocation('.analysis-driver').path,
-              1024 * 1024 * 1024 /*1 GiB*/),
-          64 * 1024 * 1024 /*64 MiB*/);
-    } else {
-      byteStore = new MemoryByteStore();
-    }
+    byteStore = _createByteStore();
     analysisDriverScheduler =
         new nd.AnalysisDriverScheduler(_analysisPerformanceLogger);
     analysisDriverScheduler.status.listen(sendStatusNotificationNew);
@@ -432,8 +427,6 @@
     } else if (index != null) {
       searchEngine = new SearchEngineImpl(index, getAstProvider);
     }
-    pubSummaryManager =
-        new PubSummaryManager(resourceProvider, '${io.pid}.temp');
     Notification notification = new ServerConnectedParams(VERSION, io.pid,
             sessionId: instrumentationService.sessionId)
         .toNotification();
@@ -837,23 +830,6 @@
     return null;
   }
 
-// TODO(brianwilkerson) Add the following method after 'prioritySources' has
-// been added to InternalAnalysisContext.
-//  /**
-//   * Return a list containing the full names of all of the sources that are
-//   * priority sources.
-//   */
-//  List<String> getPriorityFiles() {
-//    List<String> priorityFiles = new List<String>();
-//    folderMap.values.forEach((ContextDirectory directory) {
-//      InternalAnalysisContext context = directory.context;
-//      context.prioritySources.forEach((Source source) {
-//        priorityFiles.add(source.fullName);
-//      });
-//    });
-//    return priorityFiles;
-//  }
-
   /**
    * Return a [Future] that completes with the resolved [CompilationUnit] for
    * the Dart file with the given [path], or with `null` if the file is not a
@@ -879,6 +855,23 @@
     });
   }
 
+// TODO(brianwilkerson) Add the following method after 'prioritySources' has
+// been added to InternalAnalysisContext.
+//  /**
+//   * Return a list containing the full names of all of the sources that are
+//   * priority sources.
+//   */
+//  List<String> getPriorityFiles() {
+//    List<String> priorityFiles = new List<String>();
+//    folderMap.values.forEach((ContextDirectory directory) {
+//      InternalAnalysisContext context = directory.context;
+//      context.prioritySources.forEach((Source source) {
+//        priorityFiles.add(source.fullName);
+//      });
+//    });
+//    return priorityFiles;
+//  }
+
   /**
    * Handle a [request] that was read from the communication channel.
    */
@@ -1665,6 +1658,24 @@
   }
 
   /**
+   * If the state location can be accessed, return the file byte store,
+   * otherwise return the memory byte store.
+   */
+  ByteStore _createByteStore() {
+    const int M = 1024 * 1024 /*1 MiB*/;
+    const int G = 1024 * 1024 * 1024 /*1 GiB*/;
+    if (resourceProvider is PhysicalResourceProvider) {
+      Folder stateLocation =
+          resourceProvider.getStateLocation('.analysis-driver');
+      if (stateLocation != null) {
+        return new MemoryCachingByteStore(
+            new EvictingFileByteStore(stateLocation.path, G), 64 * M);
+      }
+    }
+    return new MemoryCachingByteStore(new NullByteStore(), 64 * M);
+  }
+
+  /**
    * Return a set of all contexts whose associated folder is contained within,
    * or equal to, one of the resources in the given list of [resources].
    */
@@ -1783,7 +1794,6 @@
   bool enableIncrementalResolutionApi = false;
   bool enableIncrementalResolutionValidation = false;
   bool enableNewAnalysisDriver = false;
-  bool enablePubSummaryManager = false;
   bool finerGrainedInvalidation = false;
   bool noErrorNotification = false;
   bool noIndex = false;
@@ -1965,9 +1975,6 @@
     builderOptions.defaultOptions = options;
     builderOptions.defaultPackageFilePath = defaultPackageFilePath;
     builderOptions.defaultPackagesDirectoryPath = defaultPackagesDirectoryPath;
-    if (analysisServer.options.enablePubSummaryManager) {
-      builderOptions.pubSummaryManager = analysisServer.pubSummaryManager;
-    }
     ContextBuilder builder = new ContextBuilder(resourceProvider,
         analysisServer.sdkManager, analysisServer.overlayState,
         options: builderOptions);
diff --git a/pkg/analysis_server/lib/src/constants.dart b/pkg/analysis_server/lib/src/constants.dart
index 5054f7b..519bbfe 100644
--- a/pkg/analysis_server/lib/src/constants.dart
+++ b/pkg/analysis_server/lib/src/constants.dart
@@ -97,6 +97,12 @@
 const String EDITS = 'edits';
 
 //
+// Diagnostics methods
+//
+const String DIAGNOSTIC_GET_DIAGNOSTICS = 'diagnostic.getDiagnostics';
+const String DIAGNOSTIC_GET_SERVER_PORT = 'diagnostic.getServerPort';
+
+//
 // Analysis option names
 //
 const String ELEMENT = 'element'; // boolean
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index 391f299..c8f2ec2 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -149,7 +149,7 @@
     String file = params.file;
 
     if (server.options.enableNewAnalysisDriver) {
-      AnalysisDriver driver = server.getContainingDriver(file);
+      AnalysisDriver driver = server.getAnalysisDriver(file);
       if (driver == null) {
         server.sendResponse(new Response.getNavigationInvalidFile(request));
       } else {
diff --git a/pkg/analysis_server/lib/src/domain_diagnostic.dart b/pkg/analysis_server/lib/src/domain_diagnostic.dart
index d91aacf..738f129 100644
--- a/pkg/analysis_server/lib/src/domain_diagnostic.dart
+++ b/pkg/analysis_server/lib/src/domain_diagnostic.dart
@@ -4,11 +4,13 @@
 
 library analysis_server.src.domain_diagnostic;
 
+import 'dart:async';
 import 'dart:collection';
 import 'dart:core';
 
 import 'package:analysis_server/plugin/protocol/protocol.dart';
 import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/constants.dart';
 import 'package:analyzer/src/context/cache.dart';
 import 'package:analyzer/src/context/context.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart' as nd;
@@ -27,9 +29,6 @@
 /// Instances of the class [DiagnosticDomainHandler] implement a
 /// [RequestHandler] that handles requests in the `diagnostic` domain.
 class DiagnosticDomainHandler implements RequestHandler {
-  /// The name of the request used to get diagnostic information.
-  static const String DIAGNOSTICS = 'diagnostic.getDiagnostics';
-
   /// The analysis server that is using this handler to process requests.
   final AnalysisServer server;
 
@@ -37,7 +36,7 @@
   /// [server].
   DiagnosticDomainHandler(this.server);
 
-  /// Answer the `diagnostic.diagnostics` request.
+  /// Answer the `diagnostic.getDiagnostics` request.
   Response computeDiagnostics(Request request) {
     List<ContextData> contexts = <ContextData>[];
     if (server.options.enableNewAnalysisDriver) {
@@ -101,12 +100,28 @@
   Response handleRequest(Request request) {
     try {
       String requestName = request.method;
-      if (requestName == DIAGNOSTICS) {
+      if (requestName == DIAGNOSTIC_GET_DIAGNOSTICS) {
         return computeDiagnostics(request);
+      } else if (requestName == DIAGNOSTIC_GET_SERVER_PORT) {
+        handleGetServerPort(request);
+        return Response.DELAYED_RESPONSE;
       }
     } on RequestFailure catch (exception) {
       return exception.response;
     }
     return null;
   }
+
+  /// Answer the `diagnostic.getServerPort` request.
+  Future handleGetServerPort(Request request) async {
+    try {
+      // Open a port (or return the existing one).
+      int port = await server.diagnosticServer.getServerPort();
+      server.sendResponse(
+          new DiagnosticGetServerPortResult(port).toResponse(request.id));
+    } catch (error) {
+      server
+          .sendResponse(new Response.debugPortCouldNotBeOpened(request, error));
+    }
+  }
 }
diff --git a/pkg/analysis_server/lib/src/plugin/notification_manager.dart b/pkg/analysis_server/lib/src/plugin/notification_manager.dart
new file mode 100644
index 0000000..7f15024
--- /dev/null
+++ b/pkg/analysis_server/lib/src/plugin/notification_manager.dart
@@ -0,0 +1,387 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:collection';
+
+import 'package:analysis_server/plugin/protocol/protocol.dart' as server;
+import 'package:analysis_server/src/channel/channel.dart';
+import 'package:analysis_server/src/plugin/result_collector.dart';
+import 'package:analysis_server/src/plugin/result_converter.dart';
+import 'package:analysis_server/src/plugin/result_merger.dart';
+import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
+import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
+import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
+
+/**
+ * The object used to coordinate the results of notifications from the analysis
+ * server and multiple plugins.
+ */
+class NotificationManager {
+  /**
+   * The identifier used to identify results from the server.
+   */
+  static const String serverId = 'server';
+
+  /**
+   * The channel used to send notifications to the client.
+   */
+  final ServerCommunicationChannel channel;
+
+  /**
+   * The resource provider used to get the path context.
+   */
+  final ResourceProvider provider;
+
+  /**
+   * A list of the paths of files and directories that are included for analysis.
+   */
+  List<String> includedPaths = <String>[];
+
+  /**
+   * A list of the paths of files and directories that are excluded from
+   * analysis.
+   */
+  List<String> excludedPaths = <String>[];
+
+  /**
+   * The current set of subscriptions to which the client has subscribed.
+   */
+  Map<server.AnalysisService, List<String>> currentSubscriptions =
+      <server.AnalysisService, List<String>>{};
+
+  /**
+   * The collector being used to collect the analysis errors from the plugins.
+   */
+  ResultCollector<List<server.AnalysisError>> errors;
+
+  /**
+   * The collector being used to collect the folding regions from the plugins.
+   */
+  ResultCollector<List<server.FoldingRegion>> folding;
+
+  /**
+   * The collector being used to collect the highlight regions from the plugins.
+   */
+  ResultCollector<List<server.HighlightRegion>> highlights;
+
+  /**
+   * The collector being used to collect the navigation parameters from the
+   * plugins.
+   */
+  ResultCollector<server.AnalysisNavigationParams> navigation;
+
+  /**
+   * The collector being used to collect the occurrences from the plugins.
+   */
+  ResultCollector<List<server.Occurrences>> occurrences;
+
+  /**
+   * The collector being used to collect the outlines from the plugins.
+   */
+  ResultCollector<List<server.Outline>> outlines;
+
+  /**
+   * The object used to convert results.
+   */
+  ResultConverter converter = new ResultConverter();
+
+  /**
+   * The object used to merge results.
+   */
+  ResultMerger merger = new ResultMerger();
+
+  /**
+   * Initialize a newly created notification manager.
+   */
+  NotificationManager(this.channel, this.provider) {
+    errors = new ResultCollector<List<server.AnalysisError>>(serverId,
+        predicate: _isIncluded);
+    folding = new ResultCollector<List<server.FoldingRegion>>(serverId);
+    highlights = new ResultCollector<List<server.HighlightRegion>>(serverId);
+    navigation = new ResultCollector<server.AnalysisNavigationParams>(serverId);
+    occurrences = new ResultCollector<List<server.Occurrences>>(serverId);
+    outlines = new ResultCollector<List<server.Outline>>(serverId);
+  }
+
+  /**
+   * Handle the given [notification] from the plugin with the given [pluginId].
+   */
+  void handlePluginNotification(
+      String pluginId, plugin.Notification notification) {
+    String event = notification.event;
+    switch (event) {
+      case plugin.ANALYSIS_NOTIFICATION_ERRORS:
+        plugin.AnalysisErrorsParams params =
+            new plugin.AnalysisErrorsParams.fromNotification(notification);
+        recordAnalysisErrors(
+            pluginId,
+            params.file,
+            params.errors
+                .map((plugin.AnalysisError error) =>
+                    converter.convertAnalysisError(error))
+                .toList());
+        break;
+      case plugin.ANALYSIS_NOTIFICATION_FOLDING:
+        plugin.AnalysisFoldingParams params =
+            new plugin.AnalysisFoldingParams.fromNotification(notification);
+        recordFoldingRegions(
+            pluginId,
+            params.file,
+            params.regions
+                .map((plugin.FoldingRegion region) =>
+                    converter.convertFoldingRegion(region))
+                .toList());
+        break;
+      case plugin.ANALYSIS_NOTIFICATION_HIGHLIGHTS:
+        plugin.AnalysisHighlightsParams params =
+            new plugin.AnalysisHighlightsParams.fromNotification(notification);
+        recordHighlightRegions(
+            pluginId,
+            params.file,
+            params.regions
+                .map((plugin.HighlightRegion region) =>
+                    converter.convertHighlightRegion(region))
+                .toList());
+        break;
+      case plugin.ANALYSIS_NOTIFICATION_NAVIGATION:
+        plugin.AnalysisNavigationParams params =
+            new plugin.AnalysisNavigationParams.fromNotification(notification);
+        recordNavigationParams(pluginId, params.file,
+            converter.convertAnalysisNavigationParams(params));
+        break;
+      case plugin.ANALYSIS_NOTIFICATION_OCCURRENCES:
+        plugin.AnalysisOccurrencesParams params =
+            new plugin.AnalysisOccurrencesParams.fromNotification(notification);
+        recordOccurrences(
+            pluginId,
+            params.file,
+            params.occurrences
+                .map((plugin.Occurrences occurrences) =>
+                    converter.convertOccurrences(occurrences))
+                .toList());
+        break;
+      case plugin.ANALYSIS_NOTIFICATION_OUTLINE:
+        plugin.AnalysisOutlineParams params =
+            new plugin.AnalysisOutlineParams.fromNotification(notification);
+        recordOutlines(
+            pluginId,
+            params.file,
+            params.outline
+                .map((plugin.Outline outline) =>
+                    converter.convertOutline(outline))
+                .toList());
+        break;
+    }
+  }
+
+  /**
+   * Record error information from the plugin with the given [pluginId] for the
+   * file with the given [filePath].
+   */
+  void recordAnalysisErrors(
+      String pluginId, String filePath, List<server.AnalysisError> errorData) {
+    if (errors.isCollectingFor(filePath)) {
+      errors.putResults(filePath, pluginId, errorData);
+      List<List<server.AnalysisError>> unmergedErrors =
+          errors.getResults(filePath);
+      List<server.AnalysisError> mergedErrors =
+          merger.mergeAnalysisErrors(unmergedErrors);
+      channel.sendNotification(
+          new server.AnalysisErrorsParams(filePath, mergedErrors)
+              .toNotification());
+    }
+  }
+
+  /**
+   * Record folding information from the plugin with the given [pluginId] for
+   * the file with the given [filePath].
+   */
+  void recordFoldingRegions(String pluginId, String filePath,
+      List<server.FoldingRegion> foldingData) {
+    if (folding.isCollectingFor(filePath)) {
+      folding.putResults(filePath, pluginId, foldingData);
+      List<List<server.FoldingRegion>> unmergedFolding =
+          folding.getResults(filePath);
+      List<server.FoldingRegion> mergedFolding =
+          merger.mergeFoldingRegions(unmergedFolding);
+      channel.sendNotification(
+          new server.AnalysisFoldingParams(filePath, mergedFolding)
+              .toNotification());
+    }
+  }
+
+  /**
+   * Record highlight information from the plugin with the given [pluginId] for
+   * the file with the given [filePath].
+   */
+  void recordHighlightRegions(String pluginId, String filePath,
+      List<server.HighlightRegion> highlightData) {
+    if (highlights.isCollectingFor(filePath)) {
+      highlights.putResults(filePath, pluginId, highlightData);
+      List<List<server.HighlightRegion>> unmergedHighlights =
+          highlights.getResults(filePath);
+      List<server.HighlightRegion> mergedHighlights =
+          merger.mergeHighlightRegions(unmergedHighlights);
+      channel.sendNotification(
+          new server.AnalysisHighlightsParams(filePath, mergedHighlights)
+              .toNotification());
+    }
+  }
+
+  /**
+   * Record navigation information from the plugin with the given [pluginId] for
+   * the file with the given [filePath].
+   */
+  void recordNavigationParams(String pluginId, String filePath,
+      server.AnalysisNavigationParams navigationData) {
+    if (navigation.isCollectingFor(filePath)) {
+      navigation.putResults(filePath, pluginId, navigationData);
+      List<server.AnalysisNavigationParams> unmergedNavigations =
+          navigation.getResults(filePath);
+      server.AnalysisNavigationParams mergedNavigations =
+          merger.mergeNavigation(unmergedNavigations);
+      channel.sendNotification(mergedNavigations.toNotification());
+    }
+  }
+
+  /**
+   * Record occurrences information from the plugin with the given [pluginId]
+   * for the file with the given [filePath].
+   */
+  void recordOccurrences(String pluginId, String filePath,
+      List<server.Occurrences> occurrencesData) {
+    if (occurrences.isCollectingFor(filePath)) {
+      occurrences.putResults(filePath, pluginId, occurrencesData);
+      List<List<server.Occurrences>> unmergedOccurrences =
+          occurrences.getResults(filePath);
+      List<server.Occurrences> mergedOccurrences =
+          merger.mergeOccurrences(unmergedOccurrences);
+      channel.sendNotification(
+          new server.AnalysisOccurrencesParams(filePath, mergedOccurrences)
+              .toNotification());
+    }
+  }
+
+  /**
+   * Record outline information from the plugin with the given [pluginId] for
+   * the file with the given [filePath].
+   */
+  void recordOutlines(
+      String pluginId, String filePath, List<server.Outline> outlineData) {
+    if (outlines.isCollectingFor(filePath)) {
+      outlines.putResults(filePath, pluginId, outlineData);
+      List<List<server.Outline>> unmergedOutlines =
+          outlines.getResults(filePath);
+      List<server.Outline> mergedOutlines =
+          merger.mergeOutline(unmergedOutlines);
+      channel.sendNotification(new server.AnalysisOutlineParams(
+              filePath, server.FileKind.LIBRARY, mergedOutlines[0])
+          .toNotification());
+    }
+  }
+
+  /**
+   * Set the lists of [included] and [excluded] files.
+   */
+  void setAnalysisRoots(List<String> included, List<String> excluded) {
+    includedPaths = included;
+    excludedPaths = excluded;
+  }
+
+  /**
+   * Set the current subscriptions to the given set of [newSubscriptions].
+   */
+  void setSubscriptions(
+      Map<server.AnalysisService, List<String>> newSubscriptions) {
+    /**
+     * Return the collector associated with the given service, or `null` if the
+     * service is not handled by this manager.
+     */
+    ResultCollector collectorFor(server.AnalysisService service) {
+      switch (service) {
+        case server.AnalysisService.FOLDING:
+          return folding;
+        case server.AnalysisService.HIGHLIGHTS:
+          return highlights;
+        case server.AnalysisService.NAVIGATION:
+          return navigation;
+        case server.AnalysisService.OCCURRENCES:
+          return occurrences;
+        case server.AnalysisService.OUTLINE:
+          return outlines;
+      }
+      return null;
+    }
+
+    Set<server.AnalysisService> services =
+        new HashSet<server.AnalysisService>();
+    services.addAll(currentSubscriptions.keys);
+    services.addAll(newSubscriptions.keys);
+    services.forEach((server.AnalysisService service) {
+      ResultCollector collector = collectorFor(service);
+      if (collector != null) {
+        List<String> currentPaths = currentSubscriptions[service];
+        List<String> newPaths = newSubscriptions[service];
+        if (currentPaths == null) {
+          if (newPaths == null) {
+            // This should not happen.
+            return;
+          }
+          // All of the [newPaths] need to be added.
+          newPaths.forEach((String filePath) {
+            collector.startCollectingFor(filePath);
+          });
+        } else if (newPaths == null) {
+          // All of the [currentPaths] need to be removed.
+          currentPaths.forEach((String filePath) {
+            collector.stopCollectingFor(filePath);
+          });
+        } else {
+          // Compute the difference of the two sets.
+          newPaths.forEach((String filePath) {
+            if (!currentPaths.contains(filePath)) {
+              collector.startCollectingFor(filePath);
+            }
+          });
+          currentPaths.forEach((String filePath) {
+            if (!newPaths.contains(filePath)) {
+              collector.stopCollectingFor(filePath);
+            }
+          });
+        }
+      }
+    });
+    currentSubscriptions = newSubscriptions;
+  }
+
+  /**
+   * Return `true` if errors should be collected for the file with the given
+   * [path] (because it is being analyzed).
+   */
+  bool _isIncluded(String path) {
+    bool isIncluded() {
+      for (String includedPath in includedPaths) {
+        if (provider.pathContext.isWithin(includedPath, path) ||
+            provider.pathContext.equals(includedPath, path)) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    bool isExcluded() {
+      for (String excludedPath in excludedPaths) {
+        if (provider.pathContext.isWithin(excludedPath, path)) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    // TODO(brianwilkerson) Return false if error notifications are globally
+    // disabled.
+    return isIncluded() && !isExcluded();
+  }
+}
diff --git a/pkg/analysis_server/lib/src/protocol_server.dart b/pkg/analysis_server/lib/src/protocol_server.dart
index 596b873..277c5b5 100644
--- a/pkg/analysis_server/lib/src/protocol_server.dart
+++ b/pkg/analysis_server/lib/src/protocol_server.dart
@@ -133,9 +133,7 @@
  * Create a Location based on an [engine.Element].
  */
 Location newLocation_fromElement(engine.Element element) {
-  engine.AnalysisContext context = element.context;
-  engine.Source source = element.source;
-  if (context == null || source == null) {
+  if (element == null || element.source == null) {
     return null;
   }
   int offset = element.nameOffset;
@@ -145,17 +143,17 @@
     offset = 0;
     length = 0;
   }
+  engine.CompilationUnitElement unitElement = _getUnitElement(element);
   engine.SourceRange range = new engine.SourceRange(offset, length);
-  return _locationForArgs(context, source, range);
+  return _locationForArgs(unitElement, range);
 }
 
 /**
  * Create a Location based on an [engine.SearchMatch].
  */
 Location newLocation_fromMatch(engine.SearchMatch match) {
-  engine.Element enclosingElement = match.element;
-  return _locationForArgs(
-      enclosingElement.context, enclosingElement.source, match.sourceRange);
+  engine.CompilationUnitElement unitElement = _getUnitElement(match.element);
+  return _locationForArgs(unitElement, match.sourceRange);
 }
 
 /**
@@ -165,10 +163,8 @@
   engine.CompilationUnit unit =
       node.getAncestor((node) => node is engine.CompilationUnit);
   engine.CompilationUnitElement unitElement = unit.element;
-  engine.AnalysisContext context = unitElement.context;
-  engine.Source source = unitElement.source;
   engine.SourceRange range = new engine.SourceRange(node.offset, node.length);
-  return _locationForArgs(context, source, range);
+  return _locationForArgs(unitElement, range);
 }
 
 /**
@@ -176,10 +172,7 @@
  */
 Location newLocation_fromUnit(
     engine.CompilationUnit unit, engine.SourceRange range) {
-  engine.CompilationUnitElement unitElement = unit.element;
-  engine.AnalysisContext context = unitElement.context;
-  engine.Source source = unitElement.source;
-  return _locationForArgs(context, source, range);
+  return _locationForArgs(unit.element, range);
 }
 
 /**
@@ -250,15 +243,33 @@
   return path;
 }
 
+engine.CompilationUnitElement _getUnitElement(engine.Element element) {
+  if (element is engine.CompilationUnitElement) {
+    return element;
+  }
+  if (element?.enclosingElement is engine.LibraryElement) {
+    element = element.enclosingElement;
+  }
+  if (element is engine.LibraryElement) {
+    return element.definingCompilationUnit;
+  }
+  for (; element != null; element = element.enclosingElement) {
+    if (element is engine.CompilationUnitElement) {
+      return element;
+    }
+  }
+  return null;
+}
+
 /**
  * Creates a new [Location].
  */
-Location _locationForArgs(engine.AnalysisContext context, engine.Source source,
-    engine.SourceRange range) {
+Location _locationForArgs(
+    engine.CompilationUnitElement unitElement, engine.SourceRange range) {
   int startLine = 0;
   int startColumn = 0;
   try {
-    engine.LineInfo lineInfo = context.computeLineInfo(source);
+    engine.LineInfo lineInfo = unitElement.lineInfo;
     if (lineInfo != null) {
       engine.LineInfo_Location offsetLocation =
           lineInfo.getLocation(range.offset);
@@ -266,6 +277,6 @@
       startColumn = offsetLocation.columnNumber;
     }
   } on AnalysisException {}
-  return new Location(
-      source.fullName, range.offset, range.length, startLine, startColumn);
+  return new Location(unitElement.source.fullName, range.offset, range.length,
+      startLine, startColumn);
 }
diff --git a/pkg/analysis_server/lib/src/server/diagnostic_server.dart b/pkg/analysis_server/lib/src/server/diagnostic_server.dart
new file mode 100644
index 0000000..b147a43
--- /dev/null
+++ b/pkg/analysis_server/lib/src/server/diagnostic_server.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+/**
+ * A handle to start, and return the current port of, a diagnostic server.
+ */
+abstract class DiagnosticServer {
+  /**
+   * Return the port of the diagnostic web server. If the server is not running
+   * this call will start the server.
+   */
+  Future<int> getServerPort();
+}
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart
index ea6074e..bc6baf2 100644
--- a/pkg/analysis_server/lib/src/server/driver.dart
+++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -11,6 +11,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/plugin/server_plugin.dart';
 import 'package:analysis_server/src/provisional/completion/dart/completion_plugin.dart';
+import 'package:analysis_server/src/server/diagnostic_server.dart';
 import 'package:analysis_server/src/server/http_server.dart';
 import 'package:analysis_server/src/server/stdio_server.dart';
 import 'package:analysis_server/src/socket_server.dart';
@@ -248,11 +249,6 @@
       'disable-new-analysis-driver';
 
   /**
-   * The name of the option used to enable using pub summary manager.
-   */
-  static const String ENABLE_PUB_SUMMARY_MANAGER = 'enable-pub-summary-manager';
-
-  /**
    * The name of the option used to enable fined grained invalidation.
    */
   static const String FINER_GRAINED_INVALIDATION = 'finer-grained-invalidation';
@@ -376,9 +372,9 @@
     int port;
     bool serve_http = false;
     if (results[PORT_OPTION] != null) {
-      serve_http = true;
       try {
         port = int.parse(results[PORT_OPTION]);
+        serve_http = true;
       } on FormatException {
         print('Invalid port number: ${results[PORT_OPTION]}');
         print('');
@@ -395,8 +391,6 @@
         results[INCREMENTAL_RESOLUTION_VALIDATION];
     analysisServerOptions.enableNewAnalysisDriver =
         !results[DISABLE_NEW_ANALYSIS_DRIVER];
-    analysisServerOptions.enablePubSummaryManager =
-        results[ENABLE_PUB_SUMMARY_MANAGER];
     analysisServerOptions.finerGrainedInvalidation =
         results[FINER_GRAINED_INVALIDATION];
     analysisServerOptions.noErrorNotification = results[NO_ERROR_NOTIFICATION];
@@ -451,11 +445,18 @@
               [instrumentationServer, fileBasedServer])
           : fileBasedServer;
     }
-    InstrumentationService service =
+    InstrumentationService instrumentationService =
         new InstrumentationService(instrumentationServer);
-    service.logVersion(_readUuid(service), results[CLIENT_ID],
-        results[CLIENT_VERSION], AnalysisServer.VERSION, defaultSdk.sdkVersion);
-    AnalysisEngine.instance.instrumentationService = service;
+    instrumentationService.logVersion(
+        _readUuid(instrumentationService),
+        results[CLIENT_ID],
+        results[CLIENT_VERSION],
+        AnalysisServer.VERSION,
+        defaultSdk.sdkVersion);
+    AnalysisEngine.instance.instrumentationService = instrumentationService;
+
+    _DiagnosticServerImpl diagnosticServer = new _DiagnosticServerImpl();
+
     //
     // Create the sockets and start listening for requests.
     //
@@ -463,7 +464,8 @@
         analysisServerOptions,
         new DartSdkManager(defaultSdkPath, useSummaries),
         defaultSdk,
-        service,
+        instrumentationService,
+        diagnosticServer,
         serverPlugin,
         fileResolverProvider,
         packageResolverProvider,
@@ -472,16 +474,17 @@
     stdioServer = new StdioAnalysisServer(socketServer);
     socketServer.userDefinedPlugins = _userDefinedPlugins;
 
+    diagnosticServer.httpServer = httpServer;
     if (serve_http) {
-      httpServer.serveHttp(port);
+      diagnosticServer.startOnPort(port);
     }
 
-    _captureExceptions(service, () {
+    _captureExceptions(instrumentationService, () {
       stdioServer.serveStdio().then((_) async {
         if (serve_http) {
           httpServer.close();
         }
-        await service.shutdown();
+        await instrumentationService.shutdown();
         exit(0);
       });
     },
@@ -548,10 +551,6 @@
         help: "disable using new analysis driver",
         defaultsTo: false,
         negatable: false);
-    parser.addFlag(ENABLE_PUB_SUMMARY_MANAGER,
-        help: "enable using summaries for pub cache packages",
-        defaultsTo: false,
-        negatable: false);
     parser.addFlag(FINER_GRAINED_INVALIDATION,
         help: "enable finer grained invalidation",
         defaultsTo: false,
@@ -662,3 +661,19 @@
     }
   }
 }
+
+/**
+ * Implements the [DiagnosticServer] class by wrapping an [HttpAnalysisServer].
+ */
+class _DiagnosticServerImpl extends DiagnosticServer {
+  HttpAnalysisServer httpServer;
+
+  _DiagnosticServerImpl();
+
+  Future startOnPort(int port) {
+    return httpServer.serveHttp(port);
+  }
+
+  @override
+  Future<int> getServerPort() => httpServer.serveHttp();
+}
diff --git a/pkg/analysis_server/lib/src/server/http_server.dart b/pkg/analysis_server/lib/src/server/http_server.dart
index 85c3557..48057fd 100644
--- a/pkg/analysis_server/lib/src/server/http_server.dart
+++ b/pkg/analysis_server/lib/src/server/http_server.dart
@@ -14,8 +14,10 @@
 
 /**
  * Instances of the class [HttpServer] implement a simple HTTP server. The
- * primary responsibility of this server is to listen for an UPGRADE request and
- * to start an analysis server.
+ * server:
+ *
+ * - listens for an UPGRADE request in order to start an analysis server
+ * - serves diagnostic information as html pages
  */
 class HttpAnalysisServer {
   /**
@@ -49,6 +51,11 @@
    */
   HttpAnalysisServer(this.socketServer);
 
+  /**
+   * Return the port this server is bound to.
+   */
+  Future<int> get boundPort async => (await _server)?.port;
+
   void close() {
     _server.then((HttpServer server) {
       server.close();
@@ -69,9 +76,20 @@
   /**
    * Begin serving HTTP requests over the given port.
    */
-  void serveHttp(int port) {
-    _server = HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, port);
-    _server.then(_handleServer).catchError((_) {/* Ignore errors. */});
+  Future<int> serveHttp([int initialPort]) async {
+    if (_server != null) {
+      return boundPort;
+    }
+
+    try {
+      _server =
+          HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, initialPort ?? 0);
+      HttpServer server = await _server;
+      _handleServer(server);
+      return server.port;
+    } catch (ignore) {
+      return null;
+    }
   }
 
   /**
@@ -111,6 +129,8 @@
    * running an analysis server on a [WebSocket]-based communication channel.
    */
   void _handleWebSocket(WebSocket socket) {
+    // TODO(devoncarew): This serves the analysis server over a websocket
+    // connection for historical reasons (and should probably be removed).
     socketServer.createAnalysisServer(new WebSocketServerChannel(
         socket, socketServer.instrumentationService));
   }
diff --git a/pkg/analysis_server/lib/src/services/correction/assist.dart b/pkg/analysis_server/lib/src/services/correction/assist.dart
index a1a5387..fe1a01b 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist.dart
@@ -119,6 +119,10 @@
       "Join 'if' statement with outer 'if' statement");
   static const JOIN_VARIABLE_DECLARATION = const AssistKind(
       'JOIN_VARIABLE_DECLARATION', 30, "Join variable declaration");
+  static const REPARENT_FLUTTER_LIST = const AssistKind(
+      "REPARENT_FLUTTER_LIST", 30, "Wrap widget list with new widget");
+  static const REPARENT_FLUTTER_WIDGET = const AssistKind(
+      "REPARENT_FLUTTER_WIDGET", 30, "Wrap new-expression with new widget");
   static const REMOVE_TYPE_ANNOTATION =
       const AssistKind('REMOVE_TYPE_ANNOTATION', 29, "Remove type annotation");
   static const REPLACE_CONDITIONAL_WITH_IF_ELSE = const AssistKind(
diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
index 28d6f8f..a313eb7 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -36,6 +36,10 @@
  * The computer for Dart assists.
  */
 class AssistProcessor {
+  static const FLUTTER_WIDGET_NAME = "Widget";
+  static const FLUTTER_WIDGET_URI =
+      "package:flutter/src/widgets/framework.dart";
+
   AnalysisContext analysisContext;
 
   Source source;
@@ -133,6 +137,8 @@
     _addProposal_joinVariableDeclaration_onAssignment();
     _addProposal_joinVariableDeclaration_onDeclaration();
     _addProposal_removeTypeAnnotation();
+    _addProposal_reparentFlutterList();
+    _addProposal_reparentFlutterWidget();
     _addProposal_replaceConditionalWithIfElse();
     _addProposal_replaceIfElseWithConditional();
     _addProposal_splitAndCondition();
@@ -1595,6 +1601,100 @@
     _addAssist(DartAssistKind.REMOVE_TYPE_ANNOTATION, []);
   }
 
+  void _addProposal_reparentFlutterList() {
+    if (node is! ListLiteral) {
+      return;
+    }
+    if ((node as ListLiteral).elements.any((Expression exp) =>
+        !(exp is InstanceCreationExpression &&
+            _isFlutterInstanceCreationExpression(exp)))) {
+      _coverageMarker();
+      return;
+    }
+    String literalSrc = utils.getNodeText(node);
+    SourceBuilder sb = new SourceBuilder(file, node.offset);
+    int newlineIdx = literalSrc.lastIndexOf(eol);
+    if (newlineIdx < 0 || newlineIdx == literalSrc.length - 1) {
+      _coverageMarker();
+      return; // Lists need to be in multi-line format already.
+    }
+    String indentOld = utils.getLinePrefix(node.offset + 1 + newlineIdx);
+    String indentArg = '$indentOld${utils.getIndent(1)}';
+    String indentList = '$indentOld${utils.getIndent(2)}';
+    sb.append('[');
+    sb.append(eol);
+    sb.append(indentArg);
+    sb.append('new ');
+    sb.startPosition('WIDGET');
+    sb.append('widget');
+    sb.endPosition();
+    sb.append('(');
+    sb.append(eol);
+    sb.append(indentList);
+    // Linked editing not needed since arg is always a list.
+    sb.append('children: ');
+    sb.append(literalSrc.replaceAll(
+        new RegExp("^$indentOld", multiLine: true), "$indentList"));
+    sb.append(',');
+    sb.append(eol);
+    sb.append(indentArg);
+    sb.append('),');
+    sb.append(eol);
+    sb.append(indentOld);
+    sb.append(']');
+    exitPosition = _newPosition(sb.offset + sb.length);
+    _insertBuilder(sb, literalSrc.length);
+    _addAssist(DartAssistKind.REPARENT_FLUTTER_LIST, []);
+  }
+
+  void _addProposal_reparentFlutterWidget() {
+    InstanceCreationExpression newExpr;
+    if (node is SimpleIdentifier) {
+      if (node.parent is ConstructorName &&
+          node.parent.parent is InstanceCreationExpression) {
+        newExpr = node.parent.parent;
+      } else if (node.parent?.parent is ConstructorName &&
+          node.parent.parent?.parent is InstanceCreationExpression) {
+        newExpr = node.parent.parent.parent;
+      }
+    } else if (node is InstanceCreationExpression) {
+      newExpr = node;
+    }
+    if (newExpr == null || !_isFlutterInstanceCreationExpression(newExpr)) {
+      _coverageMarker();
+      return;
+    }
+    String newExprSrc = utils.getNodeText(newExpr);
+    SourceBuilder sb = new SourceBuilder(file, newExpr.offset);
+    sb.append('new ');
+    sb.startPosition('WIDGET');
+    sb.append('widget');
+    sb.endPosition();
+    sb.append('(');
+    if (newExprSrc.contains(eol)) {
+      int newlineIdx = newExprSrc.lastIndexOf(eol);
+      if (newlineIdx == newExprSrc.length - 1) {
+        newlineIdx -= 1;
+      }
+      String indentOld = utils.getLinePrefix(newExpr.offset + 1 + newlineIdx);
+      String indentNew = '$indentOld${utils.getIndent(1)}';
+      sb.append(eol);
+      sb.append(indentNew);
+      newExprSrc = newExprSrc.replaceAll(
+          new RegExp("^$indentOld", multiLine: true), "$indentNew");
+      newExprSrc += ",$eol$indentOld";
+    }
+    sb.startPosition('CHILD');
+    sb.append('child');
+    sb.endPosition();
+    sb.append(': ');
+    sb.append(newExprSrc);
+    sb.append(')');
+    exitPosition = _newPosition(sb.offset + sb.length);
+    _insertBuilder(sb, newExpr.length);
+    _addAssist(DartAssistKind.REPARENT_FLUTTER_WIDGET, []);
+  }
+
   void _addProposal_replaceConditionalWithIfElse() {
     ConditionalExpression conditional = null;
     // may be on Statement with Conditional
@@ -2196,6 +2296,24 @@
     }
   }
 
+  bool _isFlutterInstanceCreationExpression(
+      InstanceCreationExpression newExpr) {
+    ClassElement classElement = newExpr.staticElement?.enclosingElement;
+    InterfaceType superType = classElement?.allSupertypes?.firstWhere(
+        (InterfaceType type) => FLUTTER_WIDGET_NAME == type.name,
+        orElse: () => null);
+    if (superType == null) {
+      _coverageMarker();
+      return false;
+    }
+    Uri uri = superType.element?.source?.uri;
+    if (uri.toString() != FLUTTER_WIDGET_URI) {
+      _coverageMarker();
+      return false;
+    }
+    return true;
+  }
+
   Position _newPosition(int offset) {
     return new Position(file, offset);
   }
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index 124621e..db04b8a 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -123,6 +123,8 @@
       "Add optional positional parameter");
   static const ADD_MISSING_PARAMETER_REQUIRED = const FixKind(
       'ADD_MISSING_PARAMETER_REQUIRED', 30, "Add required parameter");
+  static const ADD_MISSING_REQUIRED_ARGUMENT = const FixKind(
+      'ADD_MISSING_REQUIRED_ARGUMENT', 30, "Add required argument");
   static const ADD_NE_NULL = const FixKind('ADD_NE_NULL', 50, "Add != null");
   static const ADD_PACKAGE_DEPENDENCY = const FixKind(
       'ADD_PACKAGE_DEPENDENCY', 50, "Add dependency on package '{0}'");
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index c823e4e..eb45caf 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -267,6 +267,9 @@
       _addFix_createConstructor_insteadOfSyntheticDefault();
       await _addFix_addMissingParameter();
     }
+    if (errorCode == HintCode.MISSING_REQUIRED_PARAM) {
+      _addFix_addMissingRequiredArgument();
+    }
     if (errorCode == StaticWarningCode.FUNCTION_WITHOUT_CALL) {
       _addFix_addMissingMethodCall();
     }
@@ -549,6 +552,57 @@
     }
   }
 
+  void _addFix_addMissingRequiredArgument() {
+    Element targetElement;
+    ArgumentList argumentList;
+
+    if (node is SimpleIdentifier) {
+      AstNode invocation = node.parent;
+      if (invocation is MethodInvocation) {
+        targetElement = invocation.methodName.bestElement;
+        argumentList = invocation.argumentList;
+      } else {
+        AstNode ancestor =
+            invocation.getAncestor((p) => p is InstanceCreationExpression);
+        if (ancestor is InstanceCreationExpression) {
+          targetElement = ancestor.staticElement;
+          argumentList = ancestor.argumentList;
+        }
+      }
+    }
+
+    if (targetElement is ExecutableElement) {
+      List<Expression> args = argumentList.arguments;
+      List<String> namedArgs = args
+          .where((e) => e is NamedExpression)
+          .map((e) => (e as NamedExpression).name.label.name)
+          .toList(growable: false);
+
+      List<ParameterElement> missingParams = targetElement.parameters
+          .where((p) => p.isRequired && !namedArgs.contains(p.name))
+          .toList(growable: false);
+      if (missingParams.isEmpty) {
+        return;
+      }
+
+      // add proposal
+
+      SourceBuilder sb;
+
+      if (args.isEmpty) {
+        sb = new SourceBuilder(file, argumentList.leftParenthesis.end);
+      } else {
+        sb = new SourceBuilder(file, args.last.end);
+        sb.append(', ');
+      }
+
+      sb.append(missingParams.map((p) => '${p.name}: null').join(', '));
+
+      _insertBuilder(sb, targetElement);
+      _addFix(DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT, []);
+    }
+  }
+
   void _addFix_boolInsteadOfBoolean() {
     SourceRange range = rf.rangeError(error);
     _addReplaceEdit(range, 'bool');
diff --git a/pkg/analysis_server/lib/src/socket_server.dart b/pkg/analysis_server/lib/src/socket_server.dart
index 887e1b7..183b11d 100644
--- a/pkg/analysis_server/lib/src/socket_server.dart
+++ b/pkg/analysis_server/lib/src/socket_server.dart
@@ -8,6 +8,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/channel/channel.dart';
 import 'package:analysis_server/src/plugin/server_plugin.dart';
+import 'package:analysis_server/src/server/diagnostic_server.dart';
 import 'package:analysis_server/src/services/index/index.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
@@ -32,6 +33,7 @@
 
   final DartSdk defaultSdk;
   final InstrumentationService instrumentationService;
+  final DiagnosticServer diagnosticServer;
   final ServerPlugin serverPlugin;
   final ResolverProvider fileResolverProvider;
   final ResolverProvider packageResolverProvider;
@@ -53,6 +55,7 @@
       this.sdkManager,
       this.defaultSdk,
       this.instrumentationService,
+      this.diagnosticServer,
       this.serverPlugin,
       this.fileResolverProvider,
       this.packageResolverProvider,
@@ -98,6 +101,7 @@
         analysisServerOptions,
         sdkManager,
         instrumentationService,
+        diagnosticServer: diagnosticServer,
         fileResolverProvider: fileResolverProvider,
         packageResolverProvider: packageResolverProvider,
         useSingleContextManager: useSingleContextManager,
diff --git a/pkg/analysis_server/lib/src/status/get_handler2.dart b/pkg/analysis_server/lib/src/status/get_handler2.dart
index fc181055..78a3998 100644
--- a/pkg/analysis_server/lib/src/status/get_handler2.dart
+++ b/pkg/analysis_server/lib/src/status/get_handler2.dart
@@ -27,6 +27,7 @@
 import 'package:analyzer/src/generated/utilities_general.dart';
 import 'package:analyzer/src/services/lint.dart';
 import 'package:analyzer/task/model.dart';
+import 'package:path/path.dart' as path;
 import 'package:plugin/plugin.dart';
 
 /**
@@ -197,8 +198,7 @@
       return _returnFailure(request, 'Analysis server is not running');
     }
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Analysis Performance', [],
-          (StringBuffer buffer) {
+      _writePage(buffer, 'Analysis Performance', [], (StringBuffer buffer) {
         buffer.write('<h3>Analysis Performance</h3>');
         _writeTwoColumns(buffer, (StringBuffer buffer) {
           //
@@ -287,7 +287,7 @@
       return _returnFailure(request, 'Analysis server is not running');
     }
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Communication Performance', [],
+      _writePage(buffer, 'Communication Performance', [],
           (StringBuffer buffer) {
         buffer.write('<h3>Communication Performance</h3>');
         _writeTwoColumns(buffer, (StringBuffer buffer) {
@@ -353,8 +353,7 @@
     String value = request.requestedUri.queryParameters['index'];
     int index = value != null ? int.parse(value, onError: (_) => 0) : 0;
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Completion Stats', [],
-          (StringBuffer buffer) {
+      _writePage(buffer, 'Completion Stats', [], (StringBuffer buffer) {
         _writeCompletionPerformanceDetail(buffer, index);
         _writeCompletionPerformanceList(buffer);
       });
@@ -446,8 +445,8 @@
     }
 
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(
-          buffer, 'Analysis Server - Context', ['Context: $contextFilter'],
+      String contextName = path.basename(contextFilter);
+      _writePage(buffer, 'Context: $contextName', [contextFilter],
           (StringBuffer buffer) {
         buffer.write('<h3>Configuration</h3>');
 
@@ -539,8 +538,7 @@
 
   void _returnFailure(HttpRequest request, String message) {
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Failure', [],
-          (StringBuffer buffer) {
+      _writePage(buffer, 'Failure', [], (StringBuffer buffer) {
         buffer.write(HTML_ESCAPE.convert(message));
       });
     });
@@ -554,8 +552,7 @@
     String contents = _overlayContents[path];
 
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Overlay', [],
-          (StringBuffer buffer) {
+      _writePage(buffer, 'Overlay', [], (StringBuffer buffer) {
         buffer.write('<pre>${HTML_ESCAPE.convert(contents)}</pre>');
       });
     });
@@ -571,8 +568,7 @@
     }
 
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Overlays', [],
-          (StringBuffer buffer) {
+      _writePage(buffer, 'Overlay information', [], (StringBuffer buffer) {
         buffer.write('<table border="1">');
         _overlayContents.clear();
         ContentCache overlayState = analysisServer.overlayState;
@@ -585,7 +581,7 @@
           _overlayContents[fullName] = contents;
         });
         int count = _overlayContents.length;
-        buffer.write('<tr><td colspan="2">Total: $count entries.</td></tr>');
+        buffer.write('<tr><td colspan="2">Total: $count entries</td></tr>');
         buffer.write('</table>');
       });
     });
@@ -596,7 +592,7 @@
    */
   void _returnServerStatus(HttpRequest request) {
     _writeResponse(request, (StringBuffer buffer) {
-      _writePage(buffer, 'Analysis Server - Status', [], (StringBuffer buffer) {
+      _writePage(buffer, 'Status', [], (StringBuffer buffer) {
         if (_writeServerStatus(buffer)) {
           _writeAnalysisStatus(buffer);
           _writeEditStatus(buffer);
@@ -636,12 +632,7 @@
    * Return a two digit decimal representation of the given non-negative integer
    * [value].
    */
-  String _twoDigit(int value) {
-    if (value < 10) {
-      return '0$value';
-    }
-    return value.toString();
-  }
+  String _twoDigit(int value) => value.toString().padLeft(2, '0');
 
   /**
    * Write the status of the analysis domain (on the main status page) to the
@@ -659,12 +650,9 @@
       buffer.write('<p>Using package resolver provider: ');
       buffer.write(_server.packageResolverProvider != null);
       buffer.write('</p>');
-      buffer.write('<p>');
-      buffer.write(makeLink(OVERLAYS_PATH, {}, 'All overlay information'));
-      buffer.write('</p>');
+      buffer.write(makeLink(OVERLAYS_PATH, {}, 'Overlay information'));
 
       buffer.write('<p><b>Analysis Contexts</b></p>');
-      buffer.write('<p>');
       bool first = true;
       folders.forEach((Folder folder) {
         if (first) {
@@ -676,19 +664,19 @@
         buffer.write(makeLink(CONTEXT_PATH, {CONTEXT_QUERY_PARAM: folder.path},
             key, _hasException(driverMap[folder])));
         if (!folder.getChild('.packages').exists) {
-          buffer.write(' <small>[no .packages file]</small>');
+          buffer.write(' [no .packages file]');
         }
       });
-      buffer.write('</p>');
 
       int freq = AnalysisServer.performOperationDelayFrequency;
       String delay = freq > 0 ? '1 ms every $freq ms' : 'off';
 
       buffer.write('<p><b>Performance Data</b></p>');
-      buffer.write('<p>Perform operation delay: $delay</p>');
-      buffer.write('<p>');
-      buffer.write(makeLink(ANALYSIS_PERFORMANCE_PATH, {}, 'Task data'));
-      buffer.write('</p>');
+      buffer.write(
+          makeLink(ANALYSIS_PERFORMANCE_PATH, {}, 'Analysis performance'));
+      buffer.write('<br>');
+      buffer.write('Perform operation delay: $delay');
+      buffer.write('<br>');
     }, (StringBuffer buffer) {
       _writeSubscriptionMap(
           buffer, AnalysisService.VALUES, analysisServer.analysisServices);
@@ -821,10 +809,7 @@
   void _writeEditStatus(StringBuffer buffer) {
     buffer.write('<h3>Edit Domain</h3>');
     _writeTwoColumns(buffer, (StringBuffer buffer) {
-      buffer.write('<p><b>Performance Data</b></p>');
-      buffer.write('<p>');
-      buffer.write(makeLink(COMPLETION_PATH, {}, 'Completion data'));
-      buffer.write('</p>');
+      buffer.write(makeLink(COMPLETION_PATH, {}, 'Completion stats'));
     }, (StringBuffer buffer) {});
   }
 
@@ -879,8 +864,10 @@
     if (handler != null) {
       buffer.write('<h3>Execution Domain</h3>');
       _writeTwoColumns(buffer, (StringBuffer buffer) {
+        buffer.write('<br>');
+      }, (StringBuffer buffer) {
         _writeSubscriptionList(buffer, ExecutionService.VALUES, services);
-      }, (StringBuffer buffer) {});
+      });
     }
   }
 
@@ -939,7 +926,7 @@
     buffer.write('<meta charset="utf-8">');
     buffer.write(
         '<meta name="viewport" content="width=device-width, initial-scale=1.0">');
-    buffer.write('<title>$title</title>');
+    buffer.write('<title>Analysis Server</title>');
     buffer.write('<style>');
     buffer.write('a {color: #0000DD; text-decoration: none;}');
     buffer.write('a:link.error {background-color: #FFEEEE;}');
@@ -947,8 +934,10 @@
     buffer.write('a:hover.error {background-color: #FFEEEE;}');
     buffer.write('a:active.error {background-color: #FFEEEE;}');
     buffer.write(
-        'h3 {background-color: #DDDDDD; margin-top: 0em; margin-bottom: 0em;}');
-    buffer.write('p {margin-top: 0.5em; margin-bottom: 0.5em;}');
+        'div.subtitle {float: right; font-weight: normal; font-size: 1rem;}');
+    buffer.write('h2 {margin-top: 0;}');
+    buffer.write('h3 {border-bottom: 1px #DDD solid; margin-bottom: 0em;}');
+    buffer.write('p {margin-top: 0.5em; margin-bottom: 0;}');
     buffer.write(
         'p.commentary {margin-top: 1em; margin-bottom: 1em; margin-left: 2em; font-style: italic;}');
 //    response.write('span.error {text-decoration-line: underline; text-decoration-color: red; text-decoration-style: wavy;}');
@@ -962,10 +951,8 @@
     buffer.write('</head>');
 
     buffer.write('<body>');
-    buffer.write(
-        '<h2>$title <small><small>(as of $time on $date)</small></small></h2>');
+    buffer.write('<h2>$title <div class="subtitle">$date, $time</div></h2>');
     if (subtitles != null && subtitles.isNotEmpty) {
-      buffer.write('<blockquote>');
       bool first = true;
       for (String subtitle in subtitles) {
         if (first) {
@@ -977,7 +964,6 @@
         buffer.write(subtitle);
         buffer.write('</b>');
       }
-      buffer.write('</blockquote>');
     }
     try {
       body(buffer);
@@ -1069,7 +1055,11 @@
       } else {
         buffer.write('<td$classAttribute>');
       }
-      buffer.write(columns[i]);
+      if (columns[i] is int) {
+        buffer.write(_writeWithSeparators(columns[i]));
+      } else {
+        buffer.write(columns[i]);
+      }
       if (header) {
         buffer.write('</th>');
       } else {
@@ -1089,11 +1079,11 @@
 
     buffer.write('<h3>Server Domain</h3>');
     _writeTwoColumns(buffer, (StringBuffer buffer) {
+      buffer.write('<p><b>State</b></p>');
       if (analysisServer == null) {
         buffer.write('Status: <span style="color:red">Not running</span>');
         return;
       }
-      buffer.write('<p>');
       buffer.write('Status: Running<br>');
       buffer.write('New analysis driver: ');
       buffer.write(analysisServer.options.enableNewAnalysisDriver);
@@ -1105,23 +1095,17 @@
         buffer.write('Inactive');
       }
       buffer.write('<br>');
-      buffer.write('Server version: ');
-      buffer.write(AnalysisServer.VERSION);
-      buffer.write('<br>');
-      buffer.write('SDK: ');
-      buffer.write(Platform.version);
-      buffer.write('<br>');
       buffer.write('Process ID: ');
       buffer.write(pid);
-      buffer.write('</p>');
 
       buffer.write('<p><b>Performance Data</b></p>');
-      buffer.write('<p>');
       buffer.write(makeLink(
           COMMUNICATION_PERFORMANCE_PATH, {}, 'Communication performance'));
-      buffer.write('</p>');
     }, (StringBuffer buffer) {
       _writeSubscriptionList(buffer, ServerService.VALUES, services);
+      buffer.write('<p><b>Versions</b></p>');
+      buffer.write('Dart SDK: ${Platform.version}<br>');
+      buffer.write('Analysis server version: ${AnalysisServer.VERSION}<br>');
     });
     return analysisServer != null;
   }
@@ -1166,18 +1150,15 @@
       StringBuffer buffer, Enum service, Set<String> subscribedPaths) {
     buffer.write('<p>');
     buffer.write(service.name);
-    buffer.write('</p>');
-    if (subscribedPaths == null || subscribedPaths.isEmpty) {
-      buffer.write('none');
-    } else {
+    buffer.write('<br>');
+    if (subscribedPaths != null && subscribedPaths.isNotEmpty) {
       List<String> paths = subscribedPaths.toList();
       paths.sort();
       for (String path in paths) {
-        buffer.write('<p>');
-        buffer.write(path);
-        buffer.write('</p>');
+        buffer.write('$path<br>');
       }
     }
+    buffer.write('</p>');
   }
 
   /**
@@ -1189,11 +1170,10 @@
   void _writeSubscriptionList(StringBuffer buffer, List<Enum> allServices,
       Set<Enum> subscribedServices) {
     buffer.write('<p><b>Subscriptions</b></p>');
-    buffer.write('<p>');
     for (Enum service in allServices) {
       _writeSubscriptionInList(buffer, service, subscribedServices);
+      buffer.write('<br>');
     }
-    buffer.write('</p>');
   }
 
   /**
@@ -1238,6 +1218,18 @@
         : new Uri(path: path, queryParameters: params);
     String href = HTML_ESCAPE.convert(uri.toString());
     String classAttribute = hasError ? ' class="error"' : '';
-    return '<a href="$href"$classAttribute>$innerHtml</a>';
+    return '<a href="$href" $classAttribute>$innerHtml</a>';
   }
 }
+
+String _writeWithSeparators(int value) {
+  // TODO(devoncarew): Replace with the implementation from package:intl.
+  String str = value.toString();
+  int pos = 3;
+  while (str.length > pos) {
+    int len = str.length;
+    str = '${str.substring(0, len - pos)},${str.substring(len - pos)}';
+    pos += 4;
+  }
+  return str;
+}
diff --git a/pkg/analysis_server/pubspec.yaml b/pkg/analysis_server/pubspec.yaml
index 0387ddd..a06b946 100644
--- a/pkg/analysis_server/pubspec.yaml
+++ b/pkg/analysis_server/pubspec.yaml
@@ -21,4 +21,4 @@
   html: any
   test_reflective_loader: ^0.1.0
   typed_mock: '>=0.0.4 <1.0.0'
-  test: ^0.12.0
+  test: ^0.12.17
diff --git a/pkg/analysis_server/test/analysis/get_navigation_test.dart b/pkg/analysis_server/test/analysis/get_navigation_test.dart
index 085659e..f7558f1 100644
--- a/pkg/analysis_server/test/analysis/get_navigation_test.dart
+++ b/pkg/analysis_server/test/analysis/get_navigation_test.dart
@@ -49,18 +49,6 @@
     return _checkInvalid(file, -1, -1);
   }
 
-  test_fileWithoutContext() {
-    String file = '/outside.dart';
-    addFile(
-        file,
-        '''
-main() {
-  print(42);
-}
-''');
-    return _checkInvalid(file, -1, -1);
-  }
-
   test_importDirective() async {
     addTestFile('''
 import 'dart:math';
@@ -258,4 +246,17 @@
     generateSummaryFiles = true;
     super.setUp();
   }
+
+  test_fileOutsideOfRoot() async {
+    testFile = '/outside.dart';
+    addTestFile('''
+main() {
+  var test = 0;
+  print(test);
+}
+''');
+    await _getNavigation(testFile, testCode.indexOf('test);'), 0);
+    assertHasRegion('test);');
+    assertHasTarget('test = 0');
+  }
 }
diff --git a/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart b/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart
new file mode 100644
index 0000000..72fa597
--- /dev/null
+++ b/pkg/analysis_server/test/integration/analysis/get_navigation_test.dart
@@ -0,0 +1,69 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(GetNavigationTest);
+  });
+}
+
+@reflectiveTest
+class GetNavigationTest extends AbstractAnalysisServerIntegrationTest {
+  test_navigation() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+class Foo {}
+
+class Bar {
+  Foo foo;
+}
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    await analysisFinished;
+
+    AnalysisGetNavigationResult result =
+        await sendAnalysisGetNavigation(pathname, text.indexOf('Foo foo'), 0);
+    expect(result.targets, hasLength(1));
+    NavigationTarget target = result.targets.first;
+    expect(target.kind, ElementKind.CLASS);
+    expect(target.offset, text.indexOf('Foo {}'));
+    expect(target.length, 3);
+    expect(target.startLine, 1);
+    expect(target.startColumn, 7);
+  }
+
+  // This fails - it returns navigation results for a whitespace area (#28799).
+  @failingTest
+  test_navigation_no_result() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+//
+
+class Foo {}
+
+class Bar {
+  Foo foo;
+}
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    await analysisFinished;
+
+    AnalysisGetNavigationResult result =
+        await sendAnalysisGetNavigation(pathname, 0, 0);
+    expect(result.targets, isEmpty);
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/navigation_test.dart b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
index 2dcb074..e7f67eb 100644
--- a/pkg/analysis_server/test/integration/analysis/navigation_test.dart
+++ b/pkg/analysis_server/test/integration/analysis/navigation_test.dart
@@ -17,7 +17,7 @@
 
 class AbstractAnalysisNavigationTest
     extends AbstractAnalysisServerIntegrationTest {
-  test_navigation() {
+  test_navigation() async {
     String pathname1 = sourcePath('test1.dart');
     String text1 = r'''
 library foo;
@@ -67,71 +67,71 @@
       targets = params.targets;
       targetFiles = params.files;
     });
-    return analysisFinished.then((_) {
-      // There should be a single error, due to the fact that 'dart:async' is
-      // not used.
-      expect(currentAnalysisErrors[pathname1], hasLength(1));
-      expect(currentAnalysisErrors[pathname2], isEmpty);
-      NavigationTarget findTargetElement(int index) {
-        for (NavigationRegion region in regions) {
-          if (region.offset <= index && index < region.offset + region.length) {
-            expect(region.targets, hasLength(1));
-            int targetIndex = region.targets[0];
-            return targets[targetIndex];
-          }
+
+    await analysisFinished;
+
+    // There should be a single error, due to the fact that 'dart:async' is not
+    // used.
+    expect(currentAnalysisErrors[pathname1], hasLength(1));
+    expect(currentAnalysisErrors[pathname2], isEmpty);
+    NavigationTarget findTargetElement(int index) {
+      for (NavigationRegion region in regions) {
+        if (region.offset <= index && index < region.offset + region.length) {
+          expect(region.targets, hasLength(1));
+          int targetIndex = region.targets[0];
+          return targets[targetIndex];
         }
-        fail('No element found for index $index');
-        return null;
       }
+      fail('No element found for index $index');
+      return null;
+    }
 
-      void checkLocal(
-          String source, String expectedTarget, ElementKind expectedKind) {
-        int sourceIndex = text1.indexOf(source);
-        int targetIndex = text1.indexOf(expectedTarget);
-        NavigationTarget element = findTargetElement(sourceIndex);
-        expect(targetFiles[element.fileIndex], equals(pathname1));
-        expect(element.offset, equals(targetIndex));
-        expect(element.kind, equals(expectedKind));
-      }
+    void checkLocal(
+        String source, String expectedTarget, ElementKind expectedKind) {
+      int sourceIndex = text1.indexOf(source);
+      int targetIndex = text1.indexOf(expectedTarget);
+      NavigationTarget element = findTargetElement(sourceIndex);
+      expect(targetFiles[element.fileIndex], equals(pathname1));
+      expect(element.offset, equals(targetIndex));
+      expect(element.kind, equals(expectedKind));
+    }
 
-      void checkRemote(String source, String expectedTargetRegexp,
-          ElementKind expectedKind) {
-        int sourceIndex = text1.indexOf(source);
-        NavigationTarget element = findTargetElement(sourceIndex);
-        expect(targetFiles[element.fileIndex], matches(expectedTargetRegexp));
-        expect(element.kind, equals(expectedKind));
-      }
+    void checkRemote(
+        String source, String expectedTargetRegexp, ElementKind expectedKind) {
+      int sourceIndex = text1.indexOf(source);
+      NavigationTarget element = findTargetElement(sourceIndex);
+      expect(targetFiles[element.fileIndex], matches(expectedTargetRegexp));
+      expect(element.kind, equals(expectedKind));
+    }
 
-      // TODO(paulberry): will the element type 'CLASS_TYPE_ALIAS' ever appear
-      // as a navigation target?
-      checkLocal('Class<int>', 'Class<TypeParameter>', ElementKind.CLASS);
-      checkRemote(
-          "'test2.dart';", r'test2.dart$', ElementKind.COMPILATION_UNIT);
-      checkLocal(
-          'Class<int>.constructor',
-          'constructor(); /* constructor declaration */',
-          ElementKind.CONSTRUCTOR);
-      checkLocal(
-          'constructor(); // usage',
-          'constructor(); /* constructor declaration */',
-          ElementKind.CONSTRUCTOR);
-      checkLocal('field;', 'field;', ElementKind.FIELD);
-      checkLocal('function(() => localVariable.field)',
-          'function(FunctionTypeAlias parameter)', ElementKind.FUNCTION);
-      checkLocal('FunctionTypeAlias parameter', 'FunctionTypeAlias();',
-          ElementKind.FUNCTION_TYPE_ALIAS);
-      checkLocal('field)', 'field;', ElementKind.GETTER);
-      checkRemote("'dart:async'", r'async\.dart$', ElementKind.LIBRARY);
-      checkLocal(
-          'localVariable.field', 'localVariable =', ElementKind.LOCAL_VARIABLE);
-      checkLocal('method();', 'method() {', ElementKind.METHOD);
-      checkLocal('parameter());', 'parameter) {', ElementKind.PARAMETER);
-      checkLocal('field = 1', 'field;', ElementKind.SETTER);
-      checkLocal('topLevelVariable;', 'topLevelVariable;',
-          ElementKind.TOP_LEVEL_VARIABLE);
-      checkLocal(
-          'TypeParameter field;', 'TypeParameter>', ElementKind.TYPE_PARAMETER);
-    });
+    // TODO(paulberry): will the element type 'CLASS_TYPE_ALIAS' ever appear as
+    // a navigation target?
+    checkLocal('Class<int>', 'Class<TypeParameter>', ElementKind.CLASS);
+    checkRemote("'test2.dart';", r'test2.dart$', ElementKind.COMPILATION_UNIT);
+    checkLocal(
+        'Class<int>.constructor',
+        'constructor(); /* constructor declaration */',
+        ElementKind.CONSTRUCTOR);
+    checkLocal(
+        'constructor(); // usage',
+        'constructor(); /* constructor declaration */',
+        ElementKind.CONSTRUCTOR);
+    checkLocal('field;', 'field;', ElementKind.FIELD);
+    checkLocal('function(() => localVariable.field)',
+        'function(FunctionTypeAlias parameter)', ElementKind.FUNCTION);
+    checkLocal('FunctionTypeAlias parameter', 'FunctionTypeAlias();',
+        ElementKind.FUNCTION_TYPE_ALIAS);
+    checkLocal('field)', 'field;', ElementKind.GETTER);
+    checkRemote("'dart:async'", r'async\.dart$', ElementKind.LIBRARY);
+    checkLocal(
+        'localVariable.field', 'localVariable =', ElementKind.LOCAL_VARIABLE);
+    checkLocal('method();', 'method() {', ElementKind.METHOD);
+    checkLocal('parameter());', 'parameter) {', ElementKind.PARAMETER);
+    checkLocal('field = 1', 'field;', ElementKind.SETTER);
+    checkLocal('topLevelVariable;', 'topLevelVariable;',
+        ElementKind.TOP_LEVEL_VARIABLE);
+    checkLocal(
+        'TypeParameter field;', 'TypeParameter>', ElementKind.TYPE_PARAMETER);
   }
 }
 
diff --git a/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart b/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart
new file mode 100644
index 0000000..5174343
--- /dev/null
+++ b/pkg/analysis_server/test/integration/analysis/set_analysis_roots_test.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(SetAnalysisRootsTest);
+  });
+}
+
+@reflectiveTest
+class SetAnalysisRootsTest extends AbstractAnalysisServerIntegrationTest {
+  test_options() async {
+    String pathname = sourcePath('test.dart');
+    writeFile(
+        pathname,
+        '''
+class Foo {
+  void bar() {}
+}
+''');
+
+    // Calling this will call analysis.setAnalysisRoots.
+    standardAnalysisSetup();
+
+    await analysisFinished;
+    expect(currentAnalysisErrors[pathname], isEmpty);
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart
new file mode 100644
index 0000000..9c507b8
--- /dev/null
+++ b/pkg/analysis_server/test/integration/analysis/set_subscriptions_test.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(SetSubscriptionsTest);
+  });
+}
+
+@reflectiveTest
+class SetSubscriptionsTest extends AbstractAnalysisServerIntegrationTest {
+  test_options() async {
+    String pathname = sourcePath('test.dart');
+    writeFile(
+        pathname,
+        '''
+class Foo {
+  void bar() {}
+}
+''');
+
+    // Calling this will subscribe to ServerService.STATUS.
+    standardAnalysisSetup();
+
+    await analysisFinished;
+    expect(currentAnalysisErrors[pathname], isEmpty);
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/analysis/test_all.dart b/pkg/analysis_server/test/integration/analysis/test_all.dart
index a7eb871..d120e14 100644
--- a/pkg/analysis_server/test/integration/analysis/test_all.dart
+++ b/pkg/analysis_server/test/integration/analysis/test_all.dart
@@ -12,6 +12,7 @@
 import 'get_errors_nonStandard_sdk.dart' as get_errors_nonStandard_sdk;
 import 'get_errors_test.dart' as get_errors_test;
 import 'get_hover_test.dart' as get_hover_test;
+import 'get_navigation_test.dart' as get_navigation_test;
 import 'highlights_test.dart' as highlights_test;
 import 'highlights_test2.dart' as highlights_test2;
 import 'lint_driver_test.dart' as lint_driver_test;
@@ -23,9 +24,12 @@
 import 'package_root_test.dart' as package_root_test;
 import 'reanalyze_concurrent_test.dart' as reanalyze_concurrent_test;
 import 'reanalyze_test.dart' as reanalyze_test;
+import 'set_analysis_roots_test.dart' as set_analysis_roots_test;
+import 'set_subscriptions_test.dart' as set_subscriptions_test;
 import 'update_content_driver_test.dart' as update_content_driver_test;
 import 'update_content_list_test.dart' as update_content_list_test;
 import 'update_content_test.dart' as update_content_test;
+import 'update_options_test.dart' as update_options_test;
 
 /**
  * Utility for manually running all integration tests.
@@ -38,6 +42,7 @@
     get_errors_test.main();
     get_errors_nonStandard_sdk.main();
     get_hover_test.main();
+    get_navigation_test.main();
     highlights_test.main();
     highlights_test2.main();
     lint_driver_test.main();
@@ -49,8 +54,11 @@
     package_root_test.main();
     reanalyze_concurrent_test.main();
     reanalyze_test.main();
+    set_analysis_roots_test.main();
+    set_subscriptions_test.main();
     update_content_driver_test.main();
     update_content_test.main();
     update_content_list_test.main();
+    update_options_test.main();
   }, name: 'analysis');
 }
diff --git a/pkg/analysis_server/test/integration/analysis/update_options_test.dart b/pkg/analysis_server/test/integration/analysis/update_options_test.dart
new file mode 100644
index 0000000..af62538
--- /dev/null
+++ b/pkg/analysis_server/test/integration/analysis/update_options_test.dart
@@ -0,0 +1,48 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(UpdateOptionsTest);
+  });
+}
+
+@reflectiveTest
+class UpdateOptionsTest extends AbstractAnalysisServerIntegrationTest {
+  // We fail after the first analysis.updateOptions - we should not see a hint
+  // for the unused import (#28800).
+  @failingTest
+  test_options() async {
+    String pathname = sourcePath('test.dart');
+    writeFile(
+        pathname,
+        '''
+import 'dart:async'; // unused
+
+class Foo {
+  void bar() {}
+}
+''');
+    standardAnalysisSetup();
+
+    await sendAnalysisUpdateOptions(new AnalysisOptions()..generateHints = false);
+    await sendAnalysisReanalyze();
+    await analysisFinished;
+    expect(getErrors(pathname), isEmpty);
+
+    await sendAnalysisUpdateOptions(new AnalysisOptions()..generateHints = true);
+    await sendAnalysisReanalyze();
+    await analysisFinished;
+    expect(getErrors(pathname), hasLength(1));
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/coverage.md b/pkg/analysis_server/test/integration/coverage.md
index 0bf74f6..9dd2ed2 100644
--- a/pkg/analysis_server/test/integration/coverage.md
+++ b/pkg/analysis_server/test/integration/coverage.md
@@ -3,6 +3,8 @@
 
 This file is validated by `coverage_test.dart`.
 
+TODO(devoncarew): We should track analysis server notifications here as well.
+
 ## server domain
 - [x] server.getVersion
 - [x] server.shutdown
@@ -13,14 +15,14 @@
 - [x] analysis.getHover
 - [ ] analysis.getReachableSources
 - [ ] analysis.getLibraryDependencies
-- [ ] analysis.getNavigation
+- [x] analysis.getNavigation (failing - see #28799)
 - [x] analysis.reanalyze
-- [ ] analysis.setAnalysisRoots
+- [x] analysis.setAnalysisRoots
 - [ ] analysis.setGeneralSubscriptions
 - [ ] analysis.setPriorityFiles
-- [ ] analysis.setSubscriptions
+- [x] analysis.setSubscriptions
 - [x] analysis.updateContent
-- [ ] analysis.updateOptions
+- [x] analysis.updateOptions (failing - see #28800)
 
 ## completion domain
 - [x] completion.getSuggestions
@@ -33,19 +35,20 @@
 - [x] search.getTypeHierarchy
 
 ## edit domain
-- [ ] edit.format
+- [x] edit.format
 - [ ] edit.getAssists
 - [ ] edit.getAvailableRefactorings
 - [ ] edit.getFixes
 - [ ] edit.getRefactoring
-- [ ] edit.sortMembers
-- [ ] edit.organizeDirectives
+- [x] edit.sortMembers
+- [x] edit.organizeDirectives
 
 ## execution domain
 - [x] execution.createContext
 - [x] execution.deleteContext
 - [x] execution.mapUri
-- [ ] execution.setSubscriptions
+- [x] execution.setSubscriptions (failing - see #28806)
 
 ## diagnostic domain
-- [ ] diagnostic.getDiagnostics
+- [x] diagnostic.getDiagnostics
+- [x] diagnostic.getServerPort
diff --git a/pkg/analysis_server/test/integration/coverage_test.dart b/pkg/analysis_server/test/integration/coverage_test.dart
index 48acfba..d5a8588 100644
--- a/pkg/analysis_server/test/integration/coverage_test.dart
+++ b/pkg/analysis_server/test/integration/coverage_test.dart
@@ -41,6 +41,12 @@
           line.substring('##'.length, line.length - 'domain'.length).trim())
       .toSet();
 
+  // Remove any ' (test failed)' suffixes.
+  lines = lines.map((String line) {
+    int index = line.indexOf('(');
+    return index != -1 ? line.substring(0, index).trim() : line;
+  }).toList();
+
   // - [ ] server.getVersion
   Set<String> allMembers = lines
       .where((line) => line.startsWith('- '))
diff --git a/pkg/analysis_server/test/integration/diagnostic/get_diagnostics_test.dart b/pkg/analysis_server/test/integration/diagnostic/get_diagnostics_test.dart
new file mode 100644
index 0000000..c22330c
--- /dev/null
+++ b/pkg/analysis_server/test/integration/diagnostic/get_diagnostics_test.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(GetDiagnosticsTest);
+  });
+}
+
+@reflectiveTest
+class GetDiagnosticsTest extends AbstractAnalysisServerIntegrationTest {
+  test_getDiagnostics() async {
+    standardAnalysisSetup();
+
+    DiagnosticGetDiagnosticsResult result =
+        await sendDiagnosticGetDiagnostics();
+
+    // Do some lightweight validation of the returned data.
+    expect(result.contexts, hasLength(1));
+    ContextData context = result.contexts.first;
+    expect(context.name, isNotEmpty);
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/diagnostic/get_server_port_test.dart b/pkg/analysis_server/test/integration/diagnostic/get_server_port_test.dart
new file mode 100644
index 0000000..176e483
--- /dev/null
+++ b/pkg/analysis_server/test/integration/diagnostic/get_server_port_test.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(GetServerPortTest);
+  });
+}
+
+@reflectiveTest
+class GetServerPortTest extends AbstractAnalysisServerIntegrationTest {
+  test_connect() async {
+    standardAnalysisSetup();
+
+    DiagnosticGetServerPortResult result = await sendDiagnosticGetServerPort();
+    expect(result.port, isNotNull);
+    expect(result.port, isNonZero);
+
+    // Connect to the server and verify that it's serving the status page.
+    HttpClient client = new HttpClient();
+    HttpClientRequest request = await client
+        .getUrl(Uri.parse('http://localhost:${result.port}/status'));
+    HttpClientResponse response = await request.close();
+    String responseBody = await UTF8.decodeStream(response);
+    expect(responseBody, contains('<title>Analysis Server</title>'));
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/diagnostic/test_all.dart b/pkg/analysis_server/test/integration/diagnostic/test_all.dart
new file mode 100644
index 0000000..4e45dea
--- /dev/null
+++ b/pkg/analysis_server/test/integration/diagnostic/test_all.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'get_diagnostics_test.dart' as get_diagnostics_test;
+import 'get_server_port_test.dart' as get_server_port_test;
+
+main() {
+  defineReflectiveSuite(() {
+    get_diagnostics_test.main();
+    get_server_port_test.main();
+  }, name: 'diagnostics');
+}
diff --git a/pkg/analysis_server/test/integration/edit/format_test.dart b/pkg/analysis_server/test/integration/edit/format_test.dart
new file mode 100644
index 0000000..7aac4b7
--- /dev/null
+++ b/pkg/analysis_server/test/integration/edit/format_test.dart
@@ -0,0 +1,83 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(FormatTest);
+  });
+}
+
+@reflectiveTest
+class FormatTest extends AbstractAnalysisServerIntegrationTest {
+  String formatTestSetup({bool withErrors: false}) {
+    String pathname = sourcePath('test.dart');
+
+    if (withErrors) {
+      String text = r'''
+class Class1 {
+  int field
+  void foo() {
+  }
+}
+''';
+      writeFile(pathname, text);
+    } else {
+      String text = r'''
+class Class1 {
+  int field;
+
+  void foo() {
+  }
+
+  void bar() {
+  }
+}
+''';
+      writeFile(pathname, text);
+    }
+    standardAnalysisSetup();
+    return pathname;
+  }
+
+  test_format() async {
+    String pathname = formatTestSetup();
+
+    EditFormatResult result = await sendEditFormat(pathname, 0, 0);
+    expect(result.edits, isNotEmpty);
+    expect(result.selectionOffset, 0);
+    expect(result.selectionLength, 0);
+  }
+
+  test_format_preserve_selection() async {
+    String pathname = formatTestSetup();
+
+    // format with 'bar' selected
+    int initialPosition = readFile(pathname).indexOf('bar()');
+    EditFormatResult result =
+        await sendEditFormat(pathname, initialPosition, 'bar'.length);
+    expect(result.edits, isNotEmpty);
+    expect(result.selectionOffset, initialPosition - 3);
+    expect(result.selectionLength, 'bar'.length);
+  }
+
+  test_format_with_errors() async {
+    String pathname = formatTestSetup(withErrors: true);
+
+    try {
+      await sendEditFormat(pathname, 0, 0);
+      fail('expected FORMAT_WITH_ERRORS');
+    } on ServerErrorMessage catch (message) {
+      expect(message.error['code'], 'FORMAT_WITH_ERRORS');
+    }
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/organize_directives_test.dart b/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
new file mode 100644
index 0000000..3356a66
--- /dev/null
+++ b/pkg/analysis_server/test/integration/edit/organize_directives_test.dart
@@ -0,0 +1,75 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(OrganizeDirectivesTest);
+  });
+}
+
+@reflectiveTest
+class OrganizeDirectivesTest extends AbstractAnalysisServerIntegrationTest {
+  test_organize_directives() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+import 'dart:math';
+import 'dart:async';
+
+Future foo;
+int minified(int x, int y) => min(x, y);
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    EditOrganizeDirectivesResult result = await sendEditOrganizeDirectives(pathname);
+    SourceFileEdit edit = result.edit;
+    expect(edit.edits, hasLength(1));
+    expect(edit.edits.first.replacement, "import 'dart:async';\nimport 'dart:math");
+  }
+
+  test_organize_directives_no_changes() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+import 'dart:async';
+import 'dart:math';
+
+Future foo;
+int minified(int x, int y) => min(x, y);
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    EditOrganizeDirectivesResult result = await sendEditOrganizeDirectives(pathname);
+    SourceFileEdit edit = result.edit;
+    expect(edit.edits, isEmpty);
+  }
+
+  test_organize_directives_with_errors() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+import 'dart:async'
+import 'dart:math';
+
+Future foo;
+int minified(int x, int y) => min(x, y);
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    try {
+      await sendEditOrganizeDirectives(pathname);
+    } on ServerErrorMessage catch (message) {
+      expect(message.error['code'], 'ORGANIZE_DIRECTIVES_ERROR');
+    }
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/sort_members_test.dart b/pkg/analysis_server/test/integration/edit/sort_members_test.dart
new file mode 100644
index 0000000..cdb79e5
--- /dev/null
+++ b/pkg/analysis_server/test/integration/edit/sort_members_test.dart
@@ -0,0 +1,66 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(SortMembersTest);
+  });
+}
+
+@reflectiveTest
+class SortMembersTest extends AbstractAnalysisServerIntegrationTest {
+  test_sort() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+int foo;
+int bar;
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    EditSortMembersResult result = await sendEditSortMembers(pathname);
+    SourceFileEdit edit = result.edit;
+    expect(edit.edits, hasLength(1));
+    expect(edit.edits.first.replacement, "bar;\nint foo");
+  }
+
+  test_sort_no_changes() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+int bar;
+int foo;
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    EditSortMembersResult result = await sendEditSortMembers(pathname);
+    SourceFileEdit edit = result.edit;
+    expect(edit.edits, isEmpty);
+  }
+
+  test_sort_with_errors() async {
+    String pathname = sourcePath('test.dart');
+    String text = r'''
+int foo
+int bar;
+''';
+    writeFile(pathname, text);
+    standardAnalysisSetup();
+
+    try {
+      await sendEditSortMembers(pathname);
+    } on ServerErrorMessage catch (message) {
+      expect(message.error['code'], 'SORT_MEMBERS_PARSE_ERRORS');
+    }
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/edit/test_all.dart b/pkg/analysis_server/test/integration/edit/test_all.dart
new file mode 100644
index 0000000..68b97b1
--- /dev/null
+++ b/pkg/analysis_server/test/integration/edit/test_all.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'format_test.dart' as format_test;
+import 'organize_directives_test.dart' as organize_directives_test;
+import 'sort_members_test.dart' as sort_members_test;
+
+main() {
+  defineReflectiveSuite(() {
+    format_test.main();
+    organize_directives_test.main();
+    sort_members_test.main();
+  }, name: 'edit');
+}
diff --git a/pkg/analysis_server/test/integration/execution/set_subscriptions_test.dart b/pkg/analysis_server/test/integration/execution/set_subscriptions_test.dart
new file mode 100644
index 0000000..fcd4189
--- /dev/null
+++ b/pkg/analysis_server/test/integration/execution/set_subscriptions_test.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../integration_tests.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(SetSubscriptionsTest);
+  });
+}
+
+@reflectiveTest
+class SetSubscriptionsTest extends AbstractAnalysisServerIntegrationTest {
+  // Bad state: Should not be used with the new analysis driver (#28806)
+  @failingTest
+  test_subscribe() async {
+    writeFile(sourcePath('.packages'), 'foo:lib/');
+    standardAnalysisSetup();
+    await sendExecutionSetSubscriptions([ExecutionService.LAUNCH_DATA]);
+
+    String contextId =
+        (await sendExecutionCreateContext(sourceDirectory.path)).id;
+    expect(contextId, isNotNull);
+
+    String pathname = sourcePath('lib/main.dart');
+    writeFile(pathname, 'void main() {}');
+
+    ExecutionLaunchDataParams data = await onExecutionLaunchData.first;
+    expect(data.kind, ExecutableKind.SERVER);
+    expect(data.file, pathname);
+  }
+
+  @override
+  bool get enableNewAnalysisDriver => true;
+}
diff --git a/pkg/analysis_server/test/integration/execution/test_all.dart b/pkg/analysis_server/test/integration/execution/test_all.dart
index f24942d..6da630d 100644
--- a/pkg/analysis_server/test/integration/execution/test_all.dart
+++ b/pkg/analysis_server/test/integration/execution/test_all.dart
@@ -7,11 +7,13 @@
 import 'create_context_test.dart' as create_context_test;
 import 'delete_context_test.dart' as delete_context_test;
 import 'map_uri_test.dart' as map_uri_test;
+import 'set_subscriptions_test.dart' as set_subscription_test;
 
 main() {
   defineReflectiveSuite(() {
     create_context_test.main();
     delete_context_test.main();
     map_uri_test.main();
+    set_subscription_test.main();
   }, name: 'execution');
 }
diff --git a/pkg/analysis_server/test/integration/integration_test_methods.dart b/pkg/analysis_server/test/integration/integration_test_methods.dart
index 4bad372..14251bb 100644
--- a/pkg/analysis_server/test/integration/integration_test_methods.dart
+++ b/pkg/analysis_server/test/integration/integration_test_methods.dart
@@ -1630,6 +1630,23 @@
   }
 
   /**
+   * Return the port of the diagnostic web server. If the server is not running
+   * this call will start the server. If unable to start the diagnostic web
+   * server, this call will return an error of DEBUG_PORT_COULD_NOT_BE_OPENED.
+   *
+   * Returns
+   *
+   * port (int)
+   *
+   *   The diagnostic server port.
+   */
+  Future<DiagnosticGetServerPortResult> sendDiagnosticGetServerPort() async {
+    var result = await server.send("diagnostic.getServerPort", null);
+    ResponseDecoder decoder = new ResponseDecoder(null);
+    return new DiagnosticGetServerPortResult.fromJson(decoder, 'result', result);
+  }
+
+  /**
    * Initialize the fields in InttestMixin, and ensure that notifications will
    * be handled.
    */
diff --git a/pkg/analysis_server/test/integration/integration_tests.dart b/pkg/analysis_server/test/integration/integration_tests.dart
index 59cbe57..ebd6ff8 100644
--- a/pkg/analysis_server/test/integration/integration_tests.dart
+++ b/pkg/analysis_server/test/integration/integration_tests.dart
@@ -125,6 +125,8 @@
    */
   bool _subscribedToServerStatus = false;
 
+  List<AnalysisError> getErrors(String pathname) => currentAnalysisErrors[pathname];
+
   AbstractAnalysisServerIntegrationTest() {
     initializeInttestMixin();
   }
@@ -176,7 +178,7 @@
    * The server is automatically started before every test, and a temporary
    * [sourceDirectory] is created.
    */
-  Future setUp() {
+  Future setUp() async {
     sourceDirectory = new Directory(Directory.systemTemp
         .createTempSync('analysisServer')
         .resolveSymbolicLinksSync());
@@ -193,13 +195,12 @@
       // A server error should never happen during an integration test.
       fail('${params.message}\n${params.stackTrace}');
     });
-    return startServer().then((_) {
-      server.listenToOutput(dispatchNotification);
-      server.exitCode.then((_) {
-        skipShutdown = true;
-      });
-      return serverConnected.future;
+    await startServer();
+    server.listenToOutput(dispatchNotification);
+    server.exitCode.then((_) {
+      skipShutdown = true;
     });
+    return serverConnected.future;
   }
 
   /**
@@ -277,6 +278,11 @@
     file.writeAsStringSync(contents);
     return file.resolveSymbolicLinksSync();
   }
+
+  /**
+   * Read a source file with the given absolute [pathname].
+   */
+  String readFile(String pathname) => new File(pathname).readAsStringSync();
 }
 
 /**
@@ -288,6 +294,8 @@
   ServerErrorMessage(this.message);
 
   dynamic get error => message['error'];
+
+  String toString() => message.toString();
 }
 
 /**
@@ -644,14 +652,12 @@
   }
 
   /**
-   * Start the server.  If [debugServer] is `true`, the server will be started
-   * with "--debug", allowing a debugger to be attached. If [profileServer] is
-   * `true`, the server will be started with "--observe" and
-   * "--pause-isolates-on-exit", allowing the observatory to be used.
+   * Start the server. If [profileServer] is `true`, the server will be started
+   * with "--observe" and "--pause-isolates-on-exit", allowing the observatory
+   * to be used.
    */
   Future start(
       {bool checked: true,
-      bool debugServer: false,
       int diagnosticPort,
       bool enableNewAnalysisDriver: false,
       bool noErrorNotification: false,
@@ -671,9 +677,6 @@
     //
     // Add VM arguments.
     //
-    if (debugServer) {
-      arguments.add('--debug');
-    }
     if (profileServer) {
       if (servicesPort == null) {
         arguments.add('--observe');
@@ -718,6 +721,9 @@
     }
 //    print('Launching $serverPath');
 //    print('$dartBinary ${arguments.join(' ')}');
+    // TODO(devoncarew): We could experiment with instead launching the analysis
+    // server in a separate isolate. This would make it easier to debug the
+    // integration tests, and would like speed the tests up as well.
     return Process.start(dartBinary, arguments).then((Process process) {
       _process = process;
       process.exitCode.then((int code) {
@@ -746,7 +752,7 @@
     // and is outputting a stacktrace, because it ensures that we see the
     // entire stacktrace.  Use expectAsync() to prevent the test from
     // ending during this 1 second.
-    new Future.delayed(new Duration(seconds: 1), expectAsync(() {
+    new Future.delayed(new Duration(seconds: 1), expectAsync0(() {
       fail('Bad data received from server: $details');
     }));
   }
diff --git a/pkg/analysis_server/test/integration/protocol_matchers.dart b/pkg/analysis_server/test/integration/protocol_matchers.dart
index 7f2f3ab..58a53bd 100644
--- a/pkg/analysis_server/test/integration/protocol_matchers.dart
+++ b/pkg/analysis_server/test/integration/protocol_matchers.dart
@@ -1053,6 +1053,23 @@
   }));
 
 /**
+ * diagnostic.getServerPort params
+ */
+final Matcher isDiagnosticGetServerPortParams = isNull;
+
+/**
+ * diagnostic.getServerPort result
+ *
+ * {
+ *   "port": int
+ * }
+ */
+final Matcher isDiagnosticGetServerPortResult = new LazyMatcher(() => new MatchesJsonObject(
+  "diagnostic.getServerPort result", {
+    "port": isInt
+  }));
+
+/**
  * AddContentOverlay
  *
  * {
@@ -2103,6 +2120,7 @@
  *
  * enum {
  *   CONTENT_MODIFIED
+ *   DEBUG_PORT_COULD_NOT_BE_OPENED
  *   FILE_NOT_ANALYZED
  *   FORMAT_INVALID_FILE
  *   FORMAT_WITH_ERRORS
@@ -2130,6 +2148,7 @@
  */
 final Matcher isRequestErrorCode = new MatchesEnum("RequestErrorCode", [
   "CONTENT_MODIFIED",
+  "DEBUG_PORT_COULD_NOT_BE_OPENED",
   "FILE_NOT_ANALYZED",
   "FORMAT_INVALID_FILE",
   "FORMAT_WITH_ERRORS",
diff --git a/pkg/analysis_server/test/integration/test_all.dart b/pkg/analysis_server/test/integration/test_all.dart
index 8e0c603..6fb5ad1 100644
--- a/pkg/analysis_server/test/integration/test_all.dart
+++ b/pkg/analysis_server/test/integration/test_all.dart
@@ -9,6 +9,8 @@
 import 'analysis/test_all.dart' as analysis_test_all;
 import 'completion/test_all.dart' as completion_test_all;
 import 'coverage_test.dart' as coverage_test;
+import 'diagnostic/test_all.dart' as diagnostic_test_all;
+import 'edit/test_all.dart' as edit_test_all;
 import 'execution/test_all.dart' as execution_test_all;
 import 'search/test_all.dart' as search_test_all;
 import 'server/test_all.dart' as server_test_all;
@@ -20,6 +22,8 @@
   defineReflectiveSuite(() {
     analysis_test_all.main();
     completion_test_all.main();
+    diagnostic_test_all.main();
+    edit_test_all.main();
     execution_test_all.main();
     search_test_all.main();
     server_test_all.main();
diff --git a/pkg/analysis_server/test/services/correction/assist_test.dart b/pkg/analysis_server/test/services/correction/assist_test.dart
index 30ba490..80a7939 100644
--- a/pkg/analysis_server/test/services/correction/assist_test.dart
+++ b/pkg/analysis_server/test/services/correction/assist_test.dart
@@ -15,6 +15,8 @@
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/ast/standard_resolution_map.dart';
 import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer/source/package_map_resolver.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:plugin/manager.dart';
@@ -42,6 +44,21 @@
   String resultCode;
   LinkedEditGroup linkedPositionGroup;
 
+  String flutterPkgLibPath = '/packages/flutter/lib';
+
+  String get _flutter_framework_code => '''
+class Widget {}
+class RenderObjectWidget extends Widget {}
+class StatelessWidget extends Widget {}
+class SingleChildRenderObjectWidget extends RenderObjectWidget {}
+class Transform extends SingleChildRenderObjectWidget {}
+class ClipRect extends SingleChildRenderObjectWidget { ClipRect.rect(){} }
+class AspectRatio extends SingleChildRenderObjectWidget {}
+class Container extends StatelessWidget { Container({child: null}){}}
+class DefaultTextStyle extends StatelessWidget { DefaultTextStyle({child: null}){}}
+class Row extends Widget { Row({children: null}){}}
+''';
+
   /**
    * Asserts that there is an [Assist] of the given [kind] at [offset] which
    * produces the [expected] code when applied to [testCode].
@@ -3603,6 +3620,231 @@
 ''');
   }
 
+  test_reparentFlutterList_BAD_multiLine() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+build() {
+  return new Container(
+    child: new Row(
+      children: [/*caret*/
+// start
+        new Transform(),
+        new Object(),
+        new AspectRatio(),
+// end
+      ],
+    ),
+  );
+}
+''');
+    _setCaretLocation();
+    await assertNoAssist(DartAssistKind.REPARENT_FLUTTER_LIST);
+  }
+
+  test_reparentFlutterList_BAD_singleLine() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+  var obj;
+// start
+    return new Row(children: [/*caret*/ new Transform()]);
+// end
+  }
+}
+''');
+    _setCaretLocation();
+    await assertNoAssist(DartAssistKind.REPARENT_FLUTTER_LIST);
+  }
+
+  test_reparentFlutterList_OK_multiLine() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+build() {
+  return new Container(
+    child: new Row(
+// start
+      children: [/*caret*/
+        new Transform(),
+        new Transform(),
+        new AspectRatio(),
+      ],
+// end
+    ),
+  );
+}
+''');
+    _setCaretLocation();
+    await assertHasAssist(
+        DartAssistKind.REPARENT_FLUTTER_LIST,
+        '''
+import 'package:flutter/src/widgets/framework.dart';
+build() {
+  return new Container(
+    child: new Row(
+// start
+      children: [
+        new widget(
+          children: [/*caret*/
+            new Transform(),
+            new Transform(),
+            new AspectRatio(),
+          ],
+        ),
+      ],
+// end
+    ),
+  );
+}
+''');
+  }
+
+  test_reparentFlutterWidget_BAD_minimal() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+/*caret*/x(){}
+''');
+    _setCaretLocation();
+    await assertNoAssist(DartAssistKind.REPARENT_FLUTTER_WIDGET);
+  }
+
+  test_reparentFlutterWidget_BAD_singleLine() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+  var obj;
+// start
+    return new Container(child: obj.xyz./*caret*/abc);
+// end
+  }
+}
+''');
+    _setCaretLocation();
+    await assertNoAssist(DartAssistKind.REPARENT_FLUTTER_WIDGET);
+  }
+
+  test_reparentFlutterWidget_OK_multiLines() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+    return new Container(
+// start
+      child: new /*caret*/DefaultTextStyle(
+        child: new Row(
+          children: <Widget>[
+            new Container(
+            ),
+          ],
+        ),
+      ),
+// end
+    );
+  }
+}
+''');
+    _setCaretLocation();
+    await assertHasAssist(
+        DartAssistKind.REPARENT_FLUTTER_WIDGET,
+        '''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+    return new Container(
+// start
+      child: new widget(
+        child: new /*caret*/DefaultTextStyle(
+          child: new Row(
+            children: <Widget>[
+              new Container(
+              ),
+            ],
+          ),
+        ),
+      ),
+// end
+    );
+  }
+}
+''');
+  }
+
+  test_reparentFlutterWidget_OK_singleLine1() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+// start
+    return /*caret*/new Container();
+// end
+  }
+}
+''');
+    _setCaretLocation();
+    await assertHasAssist(
+        DartAssistKind.REPARENT_FLUTTER_WIDGET,
+        '''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+// start
+    return /*caret*/new widget(child: new Container());
+// end
+  }
+}
+''');
+  }
+
+  test_reparentFlutterWidget_OK_singleLine2() async {
+    _configureFlutterPkg({
+      'src/widgets/framework.dart': _flutter_framework_code,
+    });
+    await resolveTestUnit('''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+// start
+    return new ClipRect./*caret*/rect();
+// end
+  }
+}
+''');
+    _setCaretLocation();
+    await assertHasAssist(
+        DartAssistKind.REPARENT_FLUTTER_WIDGET,
+        '''
+import 'package:flutter/src/widgets/framework.dart';
+class FakeFlutter {
+  main() {
+// start
+    return new widget(child: new ClipRect./*caret*/rect());
+// end
+  }
+}
+''');
+  }
+
   test_replaceConditionalWithIfElse_BAD_noEnclosingStatement() async {
     await resolveTestUnit('''
 var v = true ? 111 : 222;
@@ -4208,6 +4450,34 @@
     return await processor.compute();
   }
 
+  /**
+   * Configures the [SourceFactory] to have the `flutter` package in
+   * `/packages/flutter/lib` folder.
+   */
+  void _configureFlutterPkg(Map<String, String> pathToCode) {
+    pathToCode.forEach((path, code) {
+      provider.newFile('$flutterPkgLibPath/$path', code);
+    });
+    // configure SourceFactory
+    Folder myPkgFolder = provider.getResource(flutterPkgLibPath);
+    UriResolver pkgResolver = new PackageMapUriResolver(provider, {
+      'flutter': [myPkgFolder]
+    });
+    SourceFactory sourceFactory = new SourceFactory(
+        [new DartUriResolver(sdk), pkgResolver, resourceResolver]);
+    if (enableNewAnalysisDriver) {
+      driver.configure(sourceFactory: sourceFactory);
+    } else {
+      context.sourceFactory = sourceFactory;
+    }
+    // force 'flutter' resolution
+    addSource(
+        '/tmp/other.dart',
+        pathToCode.keys
+            .map((path) => "import 'package:flutter/$path';")
+            .join('\n'));
+  }
+
   List<Position> _findResultPositions(List<String> searchStrings) {
     List<Position> positions = <Position>[];
     for (String search in searchStrings) {
@@ -4217,6 +4487,11 @@
     return positions;
   }
 
+  void _setCaretLocation() {
+    offset = findOffset('/*caret*/') + '/*caret*/'.length;
+    length = 0;
+  }
+
   void _setStartEndSelection() {
     offset = findOffset('// start\n') + '// start\n'.length;
     length = findOffset('// end') - offset;
diff --git a/pkg/analysis_server/test/services/correction/fix_test.dart b/pkg/analysis_server/test/services/correction/fix_test.dart
index d6bd2db..57ff0c6 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -427,6 +427,102 @@
 ''');
   }
 
+  test_addMissingRequiredArg_cons_single() async {
+    _addMetaPackageSource();
+
+    await resolveTestUnit('''
+import 'package:meta/meta.dart';
+
+class A {
+  A({@required int a}) {}
+}
+main() {
+  A a = new A();
+}
+''');
+    await assertHasFix(
+        DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT,
+        '''
+import 'package:meta/meta.dart';
+
+class A {
+  A({@required int a}) {}
+}
+main() {
+  A a = new A(a: null);
+}
+''');
+  }
+
+  test_addMissingRequiredArg_multiple() async {
+    _addMetaPackageSource();
+
+    await resolveTestUnit('''
+import 'package:meta/meta.dart';
+
+test({@required int a, @required int bcd}) {}
+main() {
+  test(a: 3);
+}
+''');
+    await assertHasFix(
+        DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT,
+        '''
+import 'package:meta/meta.dart';
+
+test({@required int a, @required int bcd}) {}
+main() {
+  test(a: 3, bcd: null);
+}
+''');
+  }
+
+  test_addMissingRequiredArg_single() async {
+    _addMetaPackageSource();
+
+    await resolveTestUnit('''
+import 'package:meta/meta.dart';
+
+test({@required int abc}) {}
+main() {
+  test();
+}
+''');
+    await assertHasFix(
+        DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT,
+        '''
+import 'package:meta/meta.dart';
+
+test({@required int abc}) {}
+main() {
+  test(abc: null);
+}
+''');
+  }
+
+  test_addMissingRequiredArg_single_normal() async {
+    _addMetaPackageSource();
+
+    await resolveTestUnit('''
+import 'package:meta/meta.dart';
+
+test(String x, {@required int abc}) {}
+main() {
+  test("foo");
+}
+''');
+    await assertHasFix(
+        DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT,
+        '''
+import 'package:meta/meta.dart';
+
+test(String x, {@required int abc}) {}
+main() {
+  test("foo", abc: null);
+}
+''');
+  }
+
   test_addSync_asyncFor() async {
     await resolveTestUnit('''
 import 'dart:async';
@@ -5336,6 +5432,19 @@
 }
 ''');
   }
+
+  void _addMetaPackageSource() {
+    addPackageSource('meta', 'meta.dart', r'''
+library meta;
+
+const Required required = const Required();
+
+class Required {
+  final String reason;
+  const Required([this.reason]);
+}
+''');
+  }
 }
 
 @reflectiveTest
diff --git a/pkg/analysis_server/test/socket_server_test.dart b/pkg/analysis_server/test/socket_server_test.dart
index a6ea8b1..c3caaed 100644
--- a/pkg/analysis_server/test/socket_server_test.dart
+++ b/pkg/analysis_server/test/socket_server_test.dart
@@ -119,6 +119,7 @@
         new FolderBasedDartSdk(resourceProvider,
             FolderBasedDartSdk.defaultSdkDirectory(resourceProvider)),
         InstrumentationService.NULL_SERVICE,
+        null,
         serverPlugin,
         null,
         null,
diff --git a/pkg/analysis_server/test/src/plugin/notification_manager_test.dart b/pkg/analysis_server/test/src/plugin/notification_manager_test.dart
new file mode 100644
index 0000000..003750f
--- /dev/null
+++ b/pkg/analysis_server/test/src/plugin/notification_manager_test.dart
@@ -0,0 +1,500 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analysis_server/plugin/protocol/protocol.dart' as server;
+import 'package:analysis_server/src/channel/channel.dart';
+import 'package:analysis_server/src/plugin/notification_manager.dart';
+import 'package:analyzer/file_system/memory_file_system.dart';
+import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
+import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
+import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'protocol_test_utilities.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(NotificationManagerTest);
+  });
+}
+
+@reflectiveTest
+class NotificationManagerTest extends ProtocolTestUtilities {
+  String testDir;
+  String fileA;
+  String fileB;
+
+  TestChannel channel;
+
+  NotificationManager manager;
+
+  void setUp() {
+    MemoryResourceProvider provider = new MemoryResourceProvider();
+    testDir = provider.convertPath('/test');
+    fileA = provider.convertPath('/test/a.dart');
+    fileB = provider.convertPath('/test/b.dart');
+    channel = new TestChannel();
+    manager = new NotificationManager(channel, provider);
+  }
+
+  void test_handlePluginNotification_errors() {
+    manager.setAnalysisRoots([testDir], []);
+    plugin.AnalysisError pluginError1 = pluginAnalysisError(0, 0, file: fileA);
+    plugin.AnalysisError pluginError2 = pluginAnalysisError(3, 4, file: fileA);
+    plugin.AnalysisErrorsParams params =
+        new plugin.AnalysisErrorsParams(fileA, [pluginError1, pluginError2]);
+    manager.handlePluginNotification('a', params.toNotification());
+
+    server.AnalysisError serverError1 = serverAnalysisError(0, 0, file: fileA);
+    server.AnalysisError serverError2 = serverAnalysisError(3, 4, file: fileA);
+    _verifyErrors(fileA, [serverError1, serverError2]);
+  }
+
+  void test_handlePluginNotification_folding() {
+    manager.setSubscriptions({
+      server.AnalysisService.FOLDING: [fileA, fileB]
+    });
+    plugin.FoldingRegion pluginRegion1 = pluginFoldingRegion(10, 3);
+    plugin.FoldingRegion pluginRegion2 = pluginFoldingRegion(20, 6);
+    plugin.AnalysisFoldingParams params =
+        new plugin.AnalysisFoldingParams(fileA, [pluginRegion1, pluginRegion2]);
+    manager.handlePluginNotification('a', params.toNotification());
+
+    server.FoldingRegion serverRegion1 = serverFoldingRegion(10, 3);
+    server.FoldingRegion serverRegion2 = serverFoldingRegion(20, 6);
+    _verifyFoldingRegions(fileA, [serverRegion1, serverRegion2]);
+  }
+
+  void test_handlePluginNotification_highlights() {
+    manager.setSubscriptions({
+      server.AnalysisService.HIGHLIGHTS: [fileA, fileB]
+    });
+    plugin.HighlightRegion pluginRegion1 = pluginHighlightRegion(10, 3);
+    plugin.HighlightRegion pluginRegion2 = pluginHighlightRegion(20, 6);
+    plugin.AnalysisHighlightsParams params =
+        new plugin.AnalysisHighlightsParams(
+            fileA, [pluginRegion1, pluginRegion2]);
+
+    server.HighlightRegion serverRegion1 = serverHighlightRegion(10, 3);
+    server.HighlightRegion serverRegion2 = serverHighlightRegion(20, 6);
+    manager.handlePluginNotification('a', params.toNotification());
+    _verifyHighlightRegions(fileA, [serverRegion1, serverRegion2]);
+  }
+
+  void test_handlePluginNotification_naviation() {
+    manager.setSubscriptions({
+      server.AnalysisService.NAVIGATION: [fileA, fileB]
+    });
+    plugin.AnalysisNavigationParams pluginParams =
+        pluginNavigationParams(0, 0, file: fileA);
+    manager.handlePluginNotification('a', pluginParams.toNotification());
+
+    server.AnalysisNavigationParams serverParams =
+        serverNavigationParams(0, 0, file: fileA);
+    _verifyNavigationParams(serverParams);
+  }
+
+  void test_handlePluginNotification_occurences() {
+    manager.setSubscriptions({
+      server.AnalysisService.OCCURRENCES: [fileA, fileB]
+    });
+    plugin.Occurrences pluginOccurrences1 = pluginOccurrences(0, 0);
+    plugin.Occurrences pluginOccurrences2 = pluginOccurrences(5, 7);
+    plugin.AnalysisOccurrencesParams params =
+        new plugin.AnalysisOccurrencesParams(
+            fileA, [pluginOccurrences1, pluginOccurrences2]);
+
+    server.Occurrences serverOccurrences1 = serverOccurrences(0, 0);
+    server.Occurrences serverOccurrences2 = serverOccurrences(5, 7);
+    manager.handlePluginNotification('a', params.toNotification());
+    _verifyOccurrences(fileA, [serverOccurrences1, serverOccurrences2]);
+  }
+
+  void test_handlePluginNotification_outline() {
+    manager.setSubscriptions({
+      server.AnalysisService.OUTLINE: [fileA, fileB]
+    });
+    plugin.Outline pluginOutline1 = pluginOutline(0, 0);
+    plugin.AnalysisOutlineParams params =
+        new plugin.AnalysisOutlineParams(fileA, [pluginOutline1]);
+    manager.handlePluginNotification('a', params.toNotification());
+
+    server.Outline serverOutline1 = serverOutline(0, 0);
+    _verifyOutlines(fileA, serverOutline1);
+  }
+
+  void test_recordAnalysisErrors_noSubscription() {
+    server.AnalysisError error = serverAnalysisError(0, 0, file: fileA);
+    manager.recordAnalysisErrors('a', fileA, [error]);
+    expect(channel.sentNotification, isNull);
+  }
+
+  void test_recordAnalysisErrors_withSubscription() {
+    manager.setAnalysisRoots([testDir], []);
+    //
+    // Errors should be reported when they are recorded.
+    //
+    server.AnalysisError error1 = serverAnalysisError(0, 0, file: fileA);
+    server.AnalysisError error2 = serverAnalysisError(3, 4, file: fileA);
+    manager.recordAnalysisErrors('a', fileA, [error1, error2]);
+    _verifyErrors(fileA, [error1, error2]);
+    //
+    // Errors from different plugins should be cumulative.
+    //
+    server.AnalysisError error3 = serverAnalysisError(6, 8, file: fileA);
+    manager.recordAnalysisErrors('b', fileA, [error3]);
+    _verifyErrors(fileA, [error1, error2, error3]);
+    //
+    // Overwriting errors from one plugin should not affect errors from other
+    // plugins.
+    //
+    server.AnalysisError error4 = serverAnalysisError(9, 12, file: fileA);
+    manager.recordAnalysisErrors('a', fileA, [error4]);
+    _verifyErrors(fileA, [error4, error3]);
+    //
+    // Recording errors against a file should not affect the errors for other
+    // files.
+    //
+    server.AnalysisError error5 = serverAnalysisError(12, 16, file: fileB);
+    manager.recordAnalysisErrors('a', fileB, [error5]);
+    _verifyErrors(fileB, [error5]);
+  }
+
+  void test_recordFoldingRegions_noSubscription() {
+    server.FoldingRegion region = serverFoldingRegion(10, 5);
+    manager.recordFoldingRegions('a', fileA, [region]);
+    expect(channel.sentNotification, isNull);
+  }
+
+  void test_recordFoldingRegions_withSubscription() {
+    manager.setSubscriptions({
+      server.AnalysisService.FOLDING: [fileA, fileB]
+    });
+    //
+    // Regions should be reported when they are recorded.
+    //
+    server.FoldingRegion region1 = serverFoldingRegion(10, 3);
+    server.FoldingRegion region2 = serverFoldingRegion(20, 6);
+    manager.recordFoldingRegions('a', fileA, [region1, region2]);
+    _verifyFoldingRegions(fileA, [region1, region2]);
+    //
+    // Regions from different plugins should be cumulative.
+    //
+    server.FoldingRegion region3 = serverFoldingRegion(30, 5);
+    manager.recordFoldingRegions('b', fileA, [region3]);
+    _verifyFoldingRegions(fileA, [region1, region2, region3]);
+    //
+    // Overwriting regions from one plugin should not affect regions from other
+    // plugins.
+    //
+    server.FoldingRegion region4 = serverFoldingRegion(40, 2);
+    manager.recordFoldingRegions('a', fileA, [region4]);
+    _verifyFoldingRegions(fileA, [region4, region3]);
+    //
+    // Recording regions against a file should not affect the regions for other
+    // files.
+    //
+    server.FoldingRegion region5 = serverFoldingRegion(50, 7);
+    manager.recordFoldingRegions('a', fileB, [region5]);
+    _verifyFoldingRegions(fileB, [region5]);
+  }
+
+  void test_recordHighlightRegions_noSubscription() {
+    server.HighlightRegion region = serverHighlightRegion(10, 5);
+    manager.recordHighlightRegions('a', fileA, [region]);
+    expect(channel.sentNotification, isNull);
+  }
+
+  void test_recordHighlightRegions_withSubscription() {
+    manager.setSubscriptions({
+      server.AnalysisService.HIGHLIGHTS: [fileA, fileB]
+    });
+    //
+    // Regions should be reported when they are recorded.
+    //
+    server.HighlightRegion region1 = serverHighlightRegion(10, 3);
+    server.HighlightRegion region2 = serverHighlightRegion(20, 6);
+    manager.recordHighlightRegions('a', fileA, [region1, region2]);
+    _verifyHighlightRegions(fileA, [region1, region2]);
+    //
+    // Regions from different plugins should be cumulative.
+    //
+    server.HighlightRegion region3 = serverHighlightRegion(30, 5);
+    manager.recordHighlightRegions('b', fileA, [region3]);
+    _verifyHighlightRegions(fileA, [region1, region2, region3]);
+    //
+    // Overwriting regions from one plugin should not affect regions from other
+    // plugins.
+    //
+    server.HighlightRegion region4 = serverHighlightRegion(40, 2);
+    manager.recordHighlightRegions('a', fileA, [region4]);
+    _verifyHighlightRegions(fileA, [region4, region3]);
+    //
+    // Recording regions against a file should not affect the regions for other
+    // files.
+    //
+    server.HighlightRegion region5 = serverHighlightRegion(50, 7);
+    manager.recordHighlightRegions('a', fileB, [region5]);
+    _verifyHighlightRegions(fileB, [region5]);
+  }
+
+  void test_recordNavigationParams_noSubscription() {
+    server.AnalysisNavigationParams params =
+        serverNavigationParams(0, 0, file: fileA);
+    manager.recordNavigationParams('a', fileA, params);
+    expect(channel.sentNotification, isNull);
+  }
+
+  void test_recordNavigationParams_withSubscription() {
+    manager.setSubscriptions({
+      server.AnalysisService.NAVIGATION: [fileA, fileB]
+    });
+    //
+    // Parameters should be reported when they are recorded.
+    //
+    server.AnalysisNavigationParams params1 =
+        serverNavigationParams(0, 0, file: fileA);
+    manager.recordNavigationParams('a', fileA, params1);
+    _verifyNavigationParams(params1);
+    //
+    // Parameters from different plugins should be cumulative.
+    //
+    server.AnalysisNavigationParams params2 =
+        serverNavigationParams(2, 4, file: fileA);
+    manager.recordNavigationParams('b', fileA, params2);
+    server.AnalysisNavigationParams params1and2 =
+        new server.AnalysisNavigationParams(fileA, <server.NavigationRegion>[
+      new server.NavigationRegion(0, 2, <int>[0]),
+      new server.NavigationRegion(4, 2, <int>[1])
+    ], <server.NavigationTarget>[
+      new server.NavigationTarget(server.ElementKind.FIELD, 0, 1, 2, 2, 3),
+      new server.NavigationTarget(server.ElementKind.FIELD, 2, 5, 2, 6, 7)
+    ], <String>[
+      'aa',
+      'ab',
+      'ac',
+      'ad'
+    ]);
+    _verifyNavigationParams(params1and2);
+    //
+    // Overwriting parameters from one plugin should not affect parameters from
+    // other plugins.
+    //
+    server.AnalysisNavigationParams params3 =
+        serverNavigationParams(4, 8, file: fileA);
+    manager.recordNavigationParams('a', fileA, params3);
+    server.AnalysisNavigationParams params3and2 =
+        new server.AnalysisNavigationParams(fileA, <server.NavigationRegion>[
+      new server.NavigationRegion(8, 2, <int>[0]),
+      new server.NavigationRegion(4, 2, <int>[1])
+    ], <server.NavigationTarget>[
+      new server.NavigationTarget(server.ElementKind.FIELD, 0, 9, 2, 10, 11),
+      new server.NavigationTarget(server.ElementKind.FIELD, 2, 5, 2, 6, 7)
+    ], <String>[
+      'ae',
+      'af',
+      'ac',
+      'ad'
+    ]);
+    _verifyNavigationParams(params3and2);
+    //
+    // Recording parameters against a file should not affect the parameters for
+    // other files.
+    //
+    server.AnalysisNavigationParams params4 =
+        serverNavigationParams(6, 12, file: fileB);
+    manager.recordNavigationParams('a', fileB, params4);
+    _verifyNavigationParams(params4);
+  }
+
+  void test_recordOccurrences_noSubscription() {
+    server.Occurrences occurrences = serverOccurrences(0, 0);
+    manager.recordOccurrences('a', fileA, [occurrences]);
+    expect(channel.sentNotification, isNull);
+  }
+
+  void test_recordOccurrences_withSubscription() {
+    manager.setSubscriptions({
+      server.AnalysisService.OCCURRENCES: [fileA, fileB]
+    });
+    //
+    // Occurrences should be reported when they are recorded.
+    //
+    server.Occurrences occurrences1 = serverOccurrences(0, 0);
+    server.Occurrences occurrences2 = serverOccurrences(5, 7);
+    manager.recordOccurrences('a', fileA, [occurrences1, occurrences2]);
+    _verifyOccurrences(fileA, [occurrences1, occurrences2]);
+    //
+    // Occurrences from different plugins should be cumulative.
+    //
+    server.Occurrences occurrences3 = serverOccurrences(10, 14);
+    manager.recordOccurrences('b', fileA, [occurrences3]);
+    _verifyOccurrences(fileA, [occurrences1, occurrences2, occurrences3]);
+    //
+    // Overwriting occurrences from one plugin should not affect occurrences
+    // from other plugins.
+    //
+    server.Occurrences occurrences4 = serverOccurrences(15, 21);
+    manager.recordOccurrences('a', fileA, [occurrences4]);
+    _verifyOccurrences(fileA, [occurrences4, occurrences3]);
+    //
+    // Recording occurrences against a file should not affect the occurrences
+    // for other files.
+    //
+    server.Occurrences occurrences5 = serverOccurrences(20, 28);
+    manager.recordOccurrences('a', fileB, [occurrences5]);
+    _verifyOccurrences(fileB, [occurrences5]);
+  }
+
+  void test_recordOutlines_noSubscription() {
+    server.Outline outline = serverOutline(0, 0);
+    manager.recordOutlines('a', fileA, [outline]);
+    expect(channel.sentNotification, isNull);
+  }
+
+  @failingTest
+  void test_recordOutlines_withSubscription() {
+    fail('The outline handling needs to be re-worked slightly');
+    // TODO(brianwilkerson) Figure out outlines. What should we do when merge
+    // cannot produce a single outline?
+    manager.setSubscriptions({
+      server.AnalysisService.OUTLINE: [fileA, fileB]
+    });
+    //
+    // Outlines should be reported when they are recorded.
+    //
+    server.Outline outline1 = serverOutline(0, 0);
+    server.Outline outline2 = serverOutline(5, 7);
+    manager.recordOutlines('a', fileA, [outline1, outline2]);
+    // TODO(brianwilkerson) Figure out how to test this.
+//    _verifyOutlines(fileA, [outline1, outline2]);
+    //
+    // Outlines from different plugins should be cumulative.
+    //
+    server.Outline outline3 = serverOutline(10, 14);
+    manager.recordOutlines('b', fileA, [outline3]);
+    // TODO(brianwilkerson) Figure out how to test this.
+//    _verifyOutlines(fileA, [outline1, outline2, outline3]);
+    //
+    // Overwriting outlines from one plugin should not affect outlines from
+    // other plugins.
+    //
+    server.Outline outline4 = serverOutline(15, 21);
+    manager.recordOutlines('a', fileA, [outline4]);
+    // TODO(brianwilkerson) Figure out how to test this.
+//    _verifyOutlines(fileA, [outline4, outline3]);
+    //
+    // Recording outlines against a file should not affect the outlines for
+    // other files.
+    //
+    server.Outline outline5 = serverOutline(20, 28);
+    manager.recordOutlines('a', fileB, [outline5]);
+    // TODO(brianwilkerson) Figure out how to test this.
+//    _verifyOutlines(fileB, [outline5]);
+  }
+
+  void _verifyErrors(
+      String fileName, List<server.AnalysisError> expectedErrors) {
+    server.Notification notification = channel.sentNotification;
+    expect(notification, isNotNull);
+    expect(notification.event, 'analysis.errors');
+    server.AnalysisErrorsParams params =
+        new server.AnalysisErrorsParams.fromNotification(notification);
+    expect(params, isNotNull);
+    expect(params.file, fileName);
+    expect(params.errors, equals(expectedErrors));
+    channel.sentNotification = null;
+  }
+
+  void _verifyFoldingRegions(
+      String fileName, List<server.FoldingRegion> expectedRegions) {
+    server.Notification notification = channel.sentNotification;
+    expect(notification, isNotNull);
+    expect(notification.event, 'analysis.folding');
+    server.AnalysisFoldingParams params =
+        new server.AnalysisFoldingParams.fromNotification(notification);
+    expect(params, isNotNull);
+    expect(params.file, fileName);
+    expect(params.regions, equals(expectedRegions));
+    channel.sentNotification = null;
+  }
+
+  void _verifyHighlightRegions(
+      String fileName, List<server.HighlightRegion> expectedRegions) {
+    server.Notification notification = channel.sentNotification;
+    expect(notification, isNotNull);
+    expect(notification.event, 'analysis.highlights');
+    server.AnalysisHighlightsParams params =
+        new server.AnalysisHighlightsParams.fromNotification(notification);
+    expect(params, isNotNull);
+    expect(params.file, fileName);
+    expect(params.regions, equals(expectedRegions));
+    channel.sentNotification = null;
+  }
+
+  void _verifyNavigationParams(server.AnalysisNavigationParams expectedParams) {
+    server.Notification notification = channel.sentNotification;
+    expect(notification, isNotNull);
+    expect(notification.event, 'analysis.navigation');
+    server.AnalysisNavigationParams params =
+        new server.AnalysisNavigationParams.fromNotification(notification);
+    expect(params, isNotNull);
+    expect(params.file, expectedParams.file);
+    expect(params.files, equals(expectedParams.files));
+    expect(params.regions, equals(expectedParams.regions));
+    expect(params.targets, equals(expectedParams.targets));
+    channel.sentNotification = null;
+  }
+
+  void _verifyOccurrences(
+      String fileName, List<server.Occurrences> expectedOccurrences) {
+    server.Notification notification = channel.sentNotification;
+    expect(notification, isNotNull);
+    expect(notification.event, 'analysis.occurrences');
+    server.AnalysisOccurrencesParams params =
+        new server.AnalysisOccurrencesParams.fromNotification(notification);
+    expect(params, isNotNull);
+    expect(params.file, fileName);
+    expect(params.occurrences, equals(expectedOccurrences));
+    channel.sentNotification = null;
+  }
+
+  void _verifyOutlines(String fileName, server.Outline expectedOutline) {
+    server.Notification notification = channel.sentNotification;
+    expect(notification, isNotNull);
+    expect(notification.event, 'analysis.outline');
+    server.AnalysisOutlineParams params =
+        new server.AnalysisOutlineParams.fromNotification(notification);
+    expect(params, isNotNull);
+    expect(params.file, fileName);
+    expect(params.outline, equals(expectedOutline));
+    channel.sentNotification = null;
+  }
+}
+
+class TestChannel implements ServerCommunicationChannel {
+  server.Notification sentNotification;
+
+  @override
+  void close() {
+    fail('Unexpected invocation of close');
+  }
+
+  @override
+  void listen(void onRequest(server.Request request),
+      {Function onError, void onDone()}) {
+    fail('Unexpected invocation of listen');
+  }
+
+  @override
+  void sendNotification(server.Notification notification) {
+    sentNotification = notification;
+  }
+
+  @override
+  void sendResponse(server.Response response) {
+    fail('Unexpected invocation of sendResponse');
+  }
+}
diff --git a/pkg/analysis_server/test/src/plugin/protocol_test_utilities.dart b/pkg/analysis_server/test/src/plugin/protocol_test_utilities.dart
index 37a3f01..4170658 100644
--- a/pkg/analysis_server/test/src/plugin/protocol_test_utilities.dart
+++ b/pkg/analysis_server/test/src/plugin/protocol_test_utilities.dart
@@ -111,16 +111,16 @@
 
   /**
    * On return, increment [stringIndex] by 2 (or 3 if no [file] name is
-   * provided) and [intIndex] by 6.
+   * provided) and [intIndex] by 4.
    */
   plugin.AnalysisNavigationParams pluginNavigationParams(
           int stringIndex, int intIndex, {String file}) =>
       new plugin.AnalysisNavigationParams(
           file ?? fileName(stringIndex++), <plugin.NavigationRegion>[
-        new plugin.NavigationRegion(intIndex++, intIndex++, <int>[0])
+        new plugin.NavigationRegion(intIndex++, 2, <int>[0])
       ], <plugin.NavigationTarget>[
-        new plugin.NavigationTarget(plugin.ElementKind.FIELD, 0, intIndex++,
-            intIndex++, intIndex++, intIndex++)
+        new plugin.NavigationTarget(
+            plugin.ElementKind.FIELD, 0, intIndex++, 2, intIndex++, intIndex++)
       ], <String>[
         strings[stringIndex++],
         strings[stringIndex++]
@@ -230,16 +230,16 @@
 
   /**
    * On return, increment [stringIndex] by 2 (or 3 if no [file] name is
-   * provided) and [intIndex] by 6.
+   * provided) and [intIndex] by 4.
    */
   server.AnalysisNavigationParams serverNavigationParams(
           int stringIndex, int intIndex, {String file}) =>
       new server.AnalysisNavigationParams(
           file ?? fileName(stringIndex++), <server.NavigationRegion>[
-        new server.NavigationRegion(intIndex++, intIndex++, <int>[0])
+        new server.NavigationRegion(intIndex++, 2, <int>[0])
       ], <server.NavigationTarget>[
-        new server.NavigationTarget(server.ElementKind.FIELD, 0, intIndex++,
-            intIndex++, intIndex++, intIndex++)
+        new server.NavigationTarget(
+            server.ElementKind.FIELD, 0, intIndex++, 2, intIndex++, intIndex++)
       ], <String>[
         strings[stringIndex++],
         strings[stringIndex++]
diff --git a/pkg/analysis_server/test/src/plugin/test_all.dart b/pkg/analysis_server/test/src/plugin/test_all.dart
index 8037322..c99ac53 100644
--- a/pkg/analysis_server/test/src/plugin/test_all.dart
+++ b/pkg/analysis_server/test/src/plugin/test_all.dart
@@ -4,6 +4,7 @@
 
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
+import 'notification_manager_test.dart' as notification_manager_test;
 import 'plugin_locator_test.dart' as plugin_locator_test;
 import 'result_collector_test.dart' as result_collector_test;
 import 'result_converter_test.dart' as result_converter_test;
@@ -11,6 +12,7 @@
 
 main() {
   defineReflectiveSuite(() {
+    notification_manager_test.main();
     plugin_locator_test.main();
     result_collector_test.main();
     result_converter_test.main();
diff --git a/pkg/analysis_server/test/stress/utilities/server.dart b/pkg/analysis_server/test/stress/utilities/server.dart
index 08beaa0..a8fb151 100644
--- a/pkg/analysis_server/test/stress/utilities/server.dart
+++ b/pkg/analysis_server/test/stress/utilities/server.dart
@@ -608,9 +608,6 @@
    *
    * If [checked] is `true`, the server's VM will be running in checked mode.
    *
-   * If [debugServer] is `true`, the server will be started with "--debug",
-   * allowing a debugger to be attached.
-   *
    * If [diagnosticPort] is not `null`, the server will serve status pages to
    * the specified port.
    *
@@ -625,7 +622,6 @@
    */
   Future<Null> start(
       {bool checked: true,
-      bool debugServer: false,
       int diagnosticPort,
       bool enableNewAnalysisDriver: false,
       bool profileServer: false,
@@ -644,9 +640,6 @@
     //
     // Add VM arguments.
     //
-    if (debugServer) {
-      arguments.add('--debug');
-    }
     if (profileServer) {
       if (servicesPort == null) {
         arguments.add('--observe');
diff --git a/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java b/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java
index 8fb6d55..99e5ac0 100644
--- a/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java
+++ b/pkg/analysis_server/tool/spec/generated/java/AnalysisServer.java
@@ -298,6 +298,15 @@
   public void diagnostic_getDiagnostics(GetDiagnosticsConsumer consumer);
 
   /**
+   * {@code diagnostic.getServerPort}
+   *
+   * Return the port of the diagnostic web server. If the server is not running this call will start
+   * the server. If unable to start the diagnostic web server, this call will return an error of
+   * DEBUG_PORT_COULD_NOT_BE_OPENED.
+   */
+  public void diagnostic_getServerPort(GetServerPortConsumer consumer);
+
+  /**
    * {@code edit.format}
    *
    * Format the contents of a single file. The currently selected region of text is passed in so that
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java b/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java
index 346bf63..37c06b5 100644
--- a/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java
+++ b/pkg/analysis_server/tool/spec/generated/java/types/RequestErrorCode.java
@@ -30,6 +30,11 @@
   public static final String CONTENT_MODIFIED = "CONTENT_MODIFIED";
 
   /**
+   * The server was unable to open a port for the diagnostic server.
+   */
+  public static final String DEBUG_PORT_COULD_NOT_BE_OPENED = "DEBUG_PORT_COULD_NOT_BE_OPENED";
+
+  /**
    * A request specified a FilePath which does not match a file in an analysis root, or the requested
    * operation is not available for the file.
    */
diff --git a/pkg/analysis_server/tool/spec/spec_input.html b/pkg/analysis_server/tool/spec/spec_input.html
index d9213e2..2297a33 100644
--- a/pkg/analysis_server/tool/spec/spec_input.html
+++ b/pkg/analysis_server/tool/spec/spec_input.html
@@ -6,7 +6,7 @@
   </head>
   <body>
     <h1>Analysis Server API Specification</h1>
-    <h1 style="color:#999999">Version <version>1.17.0</version></h1>
+    <h1 style="color:#999999">Version <version>1.18.0</version></h1>
     <p>
       This document contains a specification of the API provided by the
       analysis server.  The API in this document is currently under
@@ -2049,6 +2049,19 @@
           </field>
         </result>
       </request>
+      <request method="getServerPort">
+        <p>
+          Return the port of the diagnostic web server. If the server is not running
+          this call will start the server. If unable to start the diagnostic web server,
+          this call will return an error of <tt>DEBUG_PORT_COULD_NOT_BE_OPENED</tt>.
+        </p>
+        <result>
+          <field name="port">
+            <ref>int</ref>
+            <p>The diagnostic server port.</p>
+          </field>
+        </result>
+      </request>
     </domain>
     <types>
       <h2 class="domain"><a name="types">Types</a></h2>
@@ -3731,6 +3744,12 @@
             </p>
           </value>
           <value>
+            <code>DEBUG_PORT_COULD_NOT_BE_OPENED</code>
+            <p>
+              The server was unable to open a port for the diagnostic server.
+            </p>
+          </value>
+          <value>
             <code>FILE_NOT_ANALYZED</code>
             <p>
               A request specified a FilePath which does not match a file in
diff --git a/pkg/analyzer/doc/tasks.html b/pkg/analyzer/doc/tasks.html
index 344f26d..6f5a691 100644
--- a/pkg/analyzer/doc/tasks.html
+++ b/pkg/analyzer/doc/tasks.html
@@ -186,6 +186,7 @@
   LIBRARY_SPECIFIC_UNITS [shape=box]
   LIBRARY_UNIT_ERRORS -> dartErrorsForUnit
   LIBRARY_UNIT_ERRORS [shape=box]
+  LINE_INFO -> BuildCompilationUnitElementTask
   LINE_INFO -> DartErrorsTask
   LINE_INFO -> ParseDartTask
   LINE_INFO [shape=box]
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index f7dbe75..192485a 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -453,6 +453,11 @@
   bool get hasLoadLibraryFunction;
 
   /**
+   * Return the [LineInfo] for the [source], or `null` if not computed yet.
+   */
+  LineInfo get lineInfo;
+
+  /**
    * Return a list containing all of the top-level variables contained in this
    * compilation unit.
    */
@@ -719,7 +724,7 @@
    * Use the given [visitor] to visit this element. Return the value returned by
    * the visitor as a result of visiting this element.
    */
-  /*=T*/ accept/*<T>*/(ElementVisitor<dynamic/*=T*/> visitor);
+  /*=T*/ accept/*<T>*/(ElementVisitor<dynamic/*=T*/ > visitor);
 
   /**
    * Return the documentation comment for this element as it appears in the
diff --git a/pkg/analyzer/lib/src/command_line/arguments.dart b/pkg/analyzer/lib/src/command_line/arguments.dart
index 1871625..fe113b6 100644
--- a/pkg/analyzer/lib/src/command_line/arguments.dart
+++ b/pkg/analyzer/lib/src/command_line/arguments.dart
@@ -133,46 +133,38 @@
  * then remove the [ddc] named argument from this method.
  */
 void defineAnalysisArguments(ArgParser parser, {bool hide: true, ddc: false}) {
+  parser.addOption(sdkPathOption, help: 'The path to the Dart SDK.');
+  parser.addOption(analysisOptionsFileOption,
+      help: 'Path to an analysis options file.');
+  parser.addOption(packageRootOption,
+      help: 'The path to a package root directory (deprecated). '
+          'This option cannot be used with --packages.');
+  parser.addFlag(strongModeFlag,
+      help: 'Enable strong static checks (https://goo.gl/DqcBsw).',
+      defaultsTo: ddc);
+  parser.addFlag(noImplicitCastsFlag,
+      negatable: false,
+      help: 'Disable implicit casts in strong mode (https://goo.gl/cTLz40).');
+  parser.addFlag(noImplicitDynamicFlag,
+      negatable: false,
+      help: 'Disable implicit dynamic (https://goo.gl/m0UgXD).');
+
+  //
+  // Hidden flags and options.
+  //
   parser.addOption(defineVariableOption,
       abbr: 'D',
       allowMultiple: true,
       help: 'Define environment variables. For example, "-Dfoo=bar" defines an '
-          'environment variable named "foo" whose value is "bar".');
-
-  parser.addOption(sdkPathOption, help: 'The path to the Dart SDK.');
-  parser.addOption(sdkSummaryPathOption,
-      help: 'The path to the Dart SDK summary file.', hide: hide);
-
-  parser.addOption(analysisOptionsFileOption,
-      help: 'Path to an analysis options file.');
-
-  parser.addOption(packageRootOption,
-      abbr: 'p',
-      help: 'The path to a package root directory (deprecated). '
-          'This option cannot be used with --packages.');
+          'environment variable named "foo" whose value is "bar".',
+      hide: hide);
   parser.addOption(packagesOption,
       help: 'The path to the package resolution configuration file, which '
           'supplies a mapping of package names to paths. This option cannot be '
           'used with --package-root.',
       hide: ddc);
-
-  parser.addFlag(strongModeFlag,
-      help: 'Enable strong static checks (https://goo.gl/DqcBsw)',
-      defaultsTo: ddc);
-  parser.addFlag(noImplicitCastsFlag,
-      negatable: false,
-      help: 'Disable implicit casts in strong mode (https://goo.gl/cTLz40)');
-  parser.addFlag(noImplicitDynamicFlag,
-      negatable: false,
-      help: 'Disable implicit dynamic (https://goo.gl/m0UgXD)');
-  //
-  // Hidden flags and options.
-  //
-//  parser.addFlag(enableNullAwareOperatorsFlag, // 'enable-null-aware-operators'
-//      help: 'Enable support for null-aware operators (DEP 9).',
-//      defaultsTo: false,
-//      negatable: false,
-//      hide: hide || ddc);
+  parser.addOption(sdkSummaryPathOption,
+      help: 'The path to the Dart SDK summary file.', hide: hide);
   parser.addFlag(enableStrictCallChecksFlag,
       help: 'Fix issue 21938.',
       defaultsTo: false,
@@ -190,11 +182,6 @@
       defaultsTo: false,
       negatable: false,
       hide: hide);
-//  parser.addFlag('enable_type_checks',
-//      help: 'Check types in constant evaluation.',
-//      defaultsTo: false,
-//      negatable: false,
-//      hide: hide || ddc);
 }
 
 /**
diff --git a/pkg/analyzer/lib/src/context/builder.dart b/pkg/analyzer/lib/src/context/builder.dart
index fe6f5c3..2d8b0f1 100644
--- a/pkg/analyzer/lib/src/context/builder.dart
+++ b/pkg/analyzer/lib/src/context/builder.dart
@@ -25,8 +25,6 @@
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/generated/source.dart';
 import 'package:analyzer/src/generated/workspace.dart';
-import 'package:analyzer/src/summary/package_bundle_reader.dart';
-import 'package:analyzer/src/summary/pub_summary.dart';
 import 'package:analyzer/src/summary/summary_sdk.dart';
 import 'package:analyzer/src/task/options.dart';
 import 'package:args/args.dart';
@@ -140,7 +138,6 @@
     context.name = path;
     //_processAnalysisOptions(context, optionMap);
     declareVariables(context);
-    configureSummaries(context);
     return context;
   }
 
@@ -164,25 +161,6 @@
     return driver;
   }
 
-  /**
-   * Configure the context to make use of summaries.
-   */
-  void configureSummaries(InternalAnalysisContext context) {
-    PubSummaryManager manager = builderOptions.pubSummaryManager;
-    if (manager != null) {
-      List<LinkedPubPackage> linkedBundles = manager.getLinkedBundles(context);
-      if (linkedBundles.isNotEmpty) {
-        SummaryDataStore store = new SummaryDataStore([]);
-        for (LinkedPubPackage package in linkedBundles) {
-          store.addBundle(null, package.unlinked);
-          store.addBundle(null, package.linked);
-        }
-        context.resultProvider =
-            new InputPackagesResultProvider(context, store);
-      }
-    }
-  }
-
   Map<String, List<Folder>> convertPackagesToMap(Packages packages) {
     Map<String, List<Folder>> folderMap = new HashMap<String, List<Folder>>();
     if (packages != null && packages != Packages.noPackages) {
@@ -628,11 +606,6 @@
   String defaultPackagesDirectoryPath;
 
   /**
-   * The manager of pub package summaries.
-   */
-  PubSummaryManager pubSummaryManager;
-
-  /**
    * Initialize a newly created set of options
    */
   ContextBuilderOptions();
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 334a7ea..d1504d478 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -72,7 +72,7 @@
   /**
    * The version of data format, should be incremented on every format change.
    */
-  static const int DATA_VERSION = 20;
+  static const int DATA_VERSION = 22;
 
   /**
    * The number of exception contexts allowed to write. Once this field is
@@ -209,6 +209,11 @@
   final _resultController = new StreamController<AnalysisResult>();
 
   /**
+   * Resolution signatures of the most recently produced results for files.
+   */
+  final Map<String, String> _lastProducedSignatures = {};
+
+  /**
    * Cached results for [_priorityFiles].
    */
   final Map<String, AnalysisResult> _priorityResults = {};
@@ -247,7 +252,7 @@
       SourceFactory sourceFactory,
       this._analysisOptions,
       {PackageBundle sdkBundle,
-      this.analyzeWithoutTasks: false})
+      this.analyzeWithoutTasks: true})
       : _logger = logger,
         _sourceFactory = sourceFactory.clone(),
         _sdkBundle = sdkBundle {
@@ -695,9 +700,15 @@
    * Return `null` if the file is a part of an unknown library, so cannot be
    * analyzed yet. But [asIsIfPartWithoutLibrary] is `true`, then the file is
    * analyzed anyway, even without a library.
+   *
+   * Return [AnalysisResult._UNCHANGED] if [skipIfSameSignature] is `true` and
+   * the resolved signature of the file in its library is the same as the one
+   * that was the most recently produced to the client.
    */
   AnalysisResult _computeAnalysisResult(String path,
-      {bool withUnit: false, bool asIsIfPartWithoutLibrary: false}) {
+      {bool withUnit: false,
+      bool asIsIfPartWithoutLibrary: false,
+      bool skipIfSameSignature: false}) {
     FileState file = _fileTracker.fsState.getFileForPath(path);
 
     // Prepare the library - the file itself, or the known library.
@@ -710,12 +721,23 @@
       }
     }
 
+    // Prepare the signature and key.
+    String signature = _getResolvedUnitSignature(library, file);
+    String key = _getResolvedUnitKey(signature);
+
+    // Skip reading if the signature, so errors, are the same as the last time.
+    if (skipIfSameSignature) {
+      assert(!withUnit);
+      if (_lastProducedSignatures[path] == signature) {
+        return AnalysisResult._UNCHANGED;
+      }
+    }
+
     // If we don't need the fully resolved unit, check for the cached result.
     if (!withUnit) {
-      String key = _getResolvedUnitKey(library, file);
       List<int> bytes = _byteStore.get(key);
       if (bytes != null) {
-        return _getAnalysisResultFromBytes(file, bytes);
+        return _getAnalysisResultFromBytes(file, signature, bytes);
       }
     }
 
@@ -735,12 +757,19 @@
                 libraryContext.store,
                 library);
             Map<FileState, UnitAnalysisResult> results = analyzer.analyze();
-            UnitAnalysisResult fileResult = results[file];
-            resolvedUnit = fileResult.unit;
-
-            // Store the result into the cache.
-            bytes = _storeResolvedUnit(
-                library, file, resolvedUnit, fileResult.errors);
+            for (FileState unitFile in results.keys) {
+              UnitAnalysisResult unitResult = results[unitFile];
+              List<int> unitBytes =
+                  _serializeResolvedUnit(unitResult.unit, unitResult.errors);
+              String unitSignature =
+                  _getResolvedUnitSignature(library, unitFile);
+              String unitKey = _getResolvedUnitKey(unitSignature);
+              _byteStore.put(unitKey, unitBytes);
+              if (unitFile == file) {
+                bytes = unitBytes;
+                resolvedUnit = unitResult.unit;
+              }
+            }
           } else {
             ResolutionResult resolutionResult =
                 libraryContext.resolveUnit(library.source, file.source);
@@ -748,12 +777,14 @@
             List<AnalysisError> errors = resolutionResult.errors;
 
             // Store the result into the cache.
-            bytes = _storeResolvedUnit(library, file, resolvedUnit, errors);
+            bytes = _serializeResolvedUnit(resolvedUnit, errors);
+            _byteStore.put(key, bytes);
           }
 
           // Return the result, full or partial.
           _logger.writeln('Computed new analysis result.');
-          AnalysisResult result = _getAnalysisResultFromBytes(file, bytes,
+          AnalysisResult result = _getAnalysisResultFromBytes(
+              file, signature, bytes,
               content: withUnit ? file.content : null,
               withErrors: _fileTracker.addedFiles.contains(path),
               resolvedUnit: withUnit ? resolvedUnit : null);
@@ -844,7 +875,8 @@
    * Load the [AnalysisResult] for the given [file] from the [bytes]. Set
    * optional [content] and [resolvedUnit].
    */
-  AnalysisResult _getAnalysisResultFromBytes(FileState file, List<int> bytes,
+  AnalysisResult _getAnalysisResultFromBytes(
+      FileState file, String signature, List<int> bytes,
       {String content, bool withErrors: true, CompilationUnit resolvedUnit}) {
     var unit = new AnalysisDriverResolvedUnit.fromBuffer(bytes);
     List<AnalysisError> errors = withErrors
@@ -859,6 +891,7 @@
         content,
         file.contentHash,
         file.lineInfo,
+        signature,
         resolvedUnit,
         errors,
         unit.index);
@@ -885,11 +918,9 @@
   }
 
   /**
-   * Return the key to store fully resolved results for the [file] in the
-   * [library] into the cache.
+   * Return the key to store fully resolved results for the [signature].
    */
-  String _getResolvedUnitKey(FileState library, FileState file) {
-    String signature = _getResolvedUnitSignature(library, file);
+  String _getResolvedUnitKey(String signature) {
     return '$signature.resolved';
   }
 
@@ -1042,15 +1073,20 @@
       }
     }
 
+    // Analyze a general file.
     if (_fileTracker.hasPendingFiles) {
-      // Analyze a general file.
       String path = _fileTracker.anyPendingFile;
       try {
-        AnalysisResult result = _computeAnalysisResult(path, withUnit: false);
+        AnalysisResult result = _computeAnalysisResult(path,
+            withUnit: false, skipIfSameSignature: true);
         if (result == null) {
           _partsToAnalyze.add(path);
+        } else if (result == AnalysisResult._UNCHANGED) {
+          // We found that the set of errors is the same as we produced the
+          // last time, so we don't need to produce it again now.
         } else {
           _resultController.add(result);
+          _lastProducedSignatures[result.path] = result._signature;
         }
       } catch (exception, stackTrace) {
         _reportException(path, exception, stackTrace);
@@ -1110,6 +1146,25 @@
     _exceptionController.add(new ExceptionResult(path, caught, contextKey));
   }
 
+  /**
+   * Serialize the given [resolvedUnit] errors and index into bytes.
+   */
+  List<int> _serializeResolvedUnit(
+      CompilationUnit resolvedUnit, List<AnalysisError> errors) {
+    AnalysisDriverUnitIndexBuilder index = indexUnit(resolvedUnit);
+    return new AnalysisDriverResolvedUnitBuilder(
+            errors: errors
+                .map((error) => new AnalysisDriverUnitErrorBuilder(
+                    offset: error.offset,
+                    length: error.length,
+                    uniqueName: error.errorCode.uniqueName,
+                    message: error.message,
+                    correction: error.correction))
+                .toList(),
+            index: index)
+        .toBuffer();
+  }
+
   String _storeExceptionContext(
       String path, FileState libraryFile, exception, StackTrace stackTrace) {
     if (allowedNumberOfContextsToWrite <= 0) {
@@ -1158,30 +1213,6 @@
       return null;
     }
   }
-
-  /**
-   * Store the fully resolved results for the [file] in the [library] into the
-   * cache and return the stored bytes.
-   */
-  List<int> _storeResolvedUnit(FileState library, FileState file,
-      CompilationUnit resolvedUnit, List<AnalysisError> errors) {
-    AnalysisDriverUnitIndexBuilder index = indexUnit(resolvedUnit);
-
-    String key = _getResolvedUnitKey(library, file);
-    List<int> bytes = new AnalysisDriverResolvedUnitBuilder(
-            errors: errors
-                .map((error) => new AnalysisDriverUnitErrorBuilder(
-                    offset: error.offset,
-                    length: error.length,
-                    uniqueName: error.errorCode.uniqueName,
-                    message: error.message,
-                    correction: error.correction))
-                .toList(),
-            index: index)
-        .toBuffer();
-    _byteStore.put(key, bytes);
-    return bytes;
-  }
 }
 
 /**
@@ -1382,6 +1413,9 @@
  * any previously returned result, even inside of the same library.
  */
 class AnalysisResult {
+  static final _UNCHANGED = new AnalysisResult(
+      null, null, null, null, null, null, null, null, null, null, null, null);
+
   /**
    * The [AnalysisDriver] that produced this result.
    */
@@ -1425,6 +1459,13 @@
   final LineInfo lineInfo;
 
   /**
+   * The signature of the result based on the content of the file, and the
+   * transitive closure of files imported and exported by the the library of
+   * the requested file.
+   */
+  final String _signature;
+
+  /**
    * The fully resolved compilation unit for the [content].
    */
   final CompilationUnit unit;
@@ -1448,6 +1489,7 @@
       this.content,
       this.contentHash,
       this.lineInfo,
+      this._signature,
       this.unit,
       this.errors,
       this._index);
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index 4718171..2e0d063 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -305,12 +305,14 @@
         bool defaultSuperInvocationNeeded = true;
         List<ConstructorInitializer> initializers =
             constant.constantInitializers;
-        for (ConstructorInitializer initializer in initializers) {
-          if (initializer is SuperConstructorInvocation ||
-              initializer is RedirectingConstructorInvocation) {
-            defaultSuperInvocationNeeded = false;
+        if (initializers != null) {
+          for (ConstructorInitializer initializer in initializers) {
+            if (initializer is SuperConstructorInvocation ||
+                initializer is RedirectingConstructorInvocation) {
+              defaultSuperInvocationNeeded = false;
+            }
+            initializer.accept(referenceFinder);
           }
-          initializer.accept(referenceFinder);
         }
         if (defaultSuperInvocationNeeded) {
           // No explicit superconstructor invocation found, so we need to
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index ecd8ec6..c669ae1 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -1300,6 +1300,9 @@
   @override
   Source source;
 
+  @override
+  LineInfo lineInfo;
+
   /**
    * The source of the library containing this compilation unit.
    *
@@ -2006,6 +2009,10 @@
       UnlinkedExecutable serializedExecutable, ClassElementImpl enclosingClass)
       : super.forSerialized(serializedExecutable, enclosingClass);
 
+  /**
+   * Return the constant initializers for this element, which will be empty if
+   * there are no initializers, or `null` if there was an error in the source.
+   */
   List<ConstructorInitializer> get constantInitializers {
     if (serializedExecutable != null && _constantInitializers == null) {
       _constantInitializers ??= serializedExecutable.constantInitializers
diff --git a/pkg/analyzer/lib/src/dart/element/handle.dart b/pkg/analyzer/lib/src/dart/element/handle.dart
index f8ae4a9..e38f5fe 100644
--- a/pkg/analyzer/lib/src/dart/element/handle.dart
+++ b/pkg/analyzer/lib/src/dart/element/handle.dart
@@ -209,6 +209,9 @@
   ElementKind get kind => ElementKind.COMPILATION_UNIT;
 
   @override
+  LineInfo get lineInfo => actualElement.lineInfo;
+
+  @override
   Source get source => actualElement.source;
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
index 70f1124..f4f5348 100644
--- a/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
+++ b/pkg/analyzer/lib/src/dart/error/syntactic_errors.dart
@@ -450,6 +450,11 @@
       "Comment references should contain a possibly prefixed identifier and "
       "can start with 'new', but shouldn't contain anything else.");
 
+  static const ParserErrorCode INVALID_CONSTRUCTOR_NAME = const ParserErrorCode(
+      'INVALID_CONSTRUCTOR_NAME',
+      "The keyword '{0}' cannot be used to name a constructor.",
+      "Try giving the constructor a different name.");
+
   static const ParserErrorCode INVALID_HEX_ESCAPE = const ParserErrorCode(
       'INVALID_HEX_ESCAPE',
       "An escape sequence starting with '\\x' must be followed by 2 hexidecimal digits.");
diff --git a/pkg/analyzer/lib/src/generated/gn.dart b/pkg/analyzer/lib/src/generated/gn.dart
index 0e0b7fc..bf8ac4b 100644
--- a/pkg/analyzer/lib/src/generated/gn.dart
+++ b/pkg/analyzer/lib/src/generated/gn.dart
@@ -15,6 +15,21 @@
 import 'package:path/path.dart';
 
 /**
+ * Similar to Map#putIfAbsent, except that a value is stored only if it is not
+ * null.
+ */
+V _putIfNotNull<K, V>(Map<K, V> map, K key, V ifAbsent()) {
+  if (map.containsKey(key)) {
+    return map[key];
+  }
+  V computed = ifAbsent();
+  if (computed != null) {
+    map[key] = computed;
+  }
+  return computed;
+}
+
+/**
  * The [UriResolver] used to resolve `file` URIs in a [GnWorkspace].
  */
 class GnFileUriResolver extends ResourceUriResolver {
@@ -60,11 +75,6 @@
   final Context pathContext;
 
   /**
-   * The map of package sources indexed by package name.
-   */
-  final Map<String, String> _packages;
-
-  /**
    * The cache of absolute [Uri]s to [Source]s mappings.
    */
   final Map<Uri, Source> _sourceCache = new HashMap<Uri, Source>();
@@ -75,12 +85,11 @@
    */
   GnPackageUriResolver(GnWorkspace workspace)
       : workspace = workspace,
-        pathContext = workspace.provider.pathContext,
-        _packages = workspace.packages;
+        pathContext = workspace.provider.pathContext;
 
   @override
   Source resolveAbsolute(Uri uri, [Uri actualUri]) {
-    return _sourceCache.putIfAbsent(uri, () {
+    return _putIfNotNull(_sourceCache, uri, () {
       if (uri.scheme != 'package') {
         return null;
       }
@@ -97,10 +106,10 @@
       String fileUriPart = uriPath.substring(slash + 1);
       String filePath = fileUriPart.replaceAll('/', pathContext.separator);
 
-      if (!_packages.containsKey(packageName)) {
+      String packageBase = workspace.getPackageSource(packageName);
+      if (packageBase == null) {
         return null;
       }
-      String packageBase = _packages[packageName];
       String path = pathContext.join(packageBase, filePath);
       File file = workspace.findFile(path);
       return file?.createSource(uri);
@@ -116,15 +125,15 @@
       return null;
     }
 
-    String package = _packages.keys.firstWhere(
-        (key) => context.isWithin(_packages[key], path),
+    String package = workspace.packages.keys.firstWhere(
+        (key) => context.isWithin(workspace.packages[key], path),
         orElse: () => null);
-
     if (package == null) {
       return null;
     }
 
-    String sourcePath = context.relative(path, from: _packages[package]);
+    String sourcePath =
+        context.relative(path, from: workspace.packages[package]);
 
     return Uri.parse('package:$package/$sourcePath');
   }
@@ -151,16 +160,43 @@
   final String root;
 
   /**
-   * The map of package sources indexed by package name.
+   * The path to the directory with source locations.
+   *
+   * Each file in this directory is named after a Dart package and contains the
+   * path to the package's sources.
    */
-  final Map<String, String> packages;
+  final String _packagesDirectoryPath;
 
-  GnWorkspace._(this.provider, this.root, this.packages);
+  /**
+   * The cache of package locations indexed by package name.
+   */
+  final Map<String, String> _packageCache = new HashMap<String, String>();
+
+  GnWorkspace._internal(this.provider, this.root, this._packagesDirectoryPath);
+
+  factory GnWorkspace._(
+      ResourceProvider provider, String root, String packagesDirectoryPath) {
+    GnWorkspace workspace =
+        new GnWorkspace._internal(provider, root, packagesDirectoryPath);
+    // Preload known packages.
+    provider
+        .getFolder(packagesDirectoryPath)
+        .getChildren()
+        .where((resource) => resource is File)
+        .map((resource) => resource as File)
+        .forEach((file) {
+      String packageName = basename(file.path);
+      workspace.getPackageSource(packageName);
+    });
+    return workspace;
+  }
+
+  Map<String, String> get packages => _packageCache;
 
   @override
   Map<String, List<Folder>> get packageMap {
     Map<String, List<Folder>> result = new HashMap<String, List<Folder>>();
-    packages.forEach((package, sourceDir) {
+    _packageCache.forEach((package, sourceDir) {
       result[package] = [provider.getFolder(sourceDir)];
     });
     return result;
@@ -181,6 +217,18 @@
   }
 
   /**
+   * Return the source directory for the given package, or null if it could not
+   * be found.
+   */
+  String getPackageSource(String packageName) {
+    return _putIfNotNull(_packageCache, packageName, () {
+      String path =
+          provider.pathContext.join(_packagesDirectoryPath, packageName);
+      return findFile(path)?.readAsStringSync();
+    });
+  }
+
+  /**
    * Return the file with the given [absolutePath].
    *
    * Return `null` if the given [absolutePath] is not in the workspace [root].
@@ -188,47 +236,33 @@
   File findFile(String absolutePath) {
     try {
       File writableFile = provider.getFile(absolutePath);
-      return writableFile;
-    } catch (_) {
-      return null;
-    }
+      if (writableFile.exists) {
+        return writableFile;
+      }
+    } catch (_) {}
+    return null;
   }
 
   /**
-   * Locate the output directory.
+   * Locate the Dart sources directory.
    *
    * Return `null` if it could not be found.
    */
-  static String _getOutDirectory(ResourceProvider provider, String root) =>
-      provider
-          .getFolder('$root/out')
-          .getChildren()
-          .where((resource) => resource is Folder)
-          .map((resource) => resource as Folder)
-          .firstWhere((Folder folder) {
-        String baseName = basename(folder.path);
-        // TODO(pylaligand): find a better way to locate the proper directory.
-        return baseName.startsWith('debug') || baseName.startsWith('release');
-      }, orElse: () => null)?.path;
-
-  /**
-   * Return a map of package source locations indexed by package name.
-   */
-  static Map<String, String> _getPackages(
-      ResourceProvider provider, String outDirectory) {
-    String packagesDir = '$outDirectory/gen/dart.sources';
-    Map<String, String> result = new HashMap<String, String>();
-    provider
-        .getFolder(packagesDir)
+  static String _getPackagesDirectory(ResourceProvider provider, String root) {
+    Context pathContext = provider.pathContext;
+    String outDirectory = provider
+        .getFolder(pathContext.join(root, 'out'))
         .getChildren()
-        .where((resource) => resource is File)
-        .map((resource) => resource as File)
-        .forEach((file) {
-      String packageName = basename(file.path);
-      String source = file.readAsStringSync();
-      result[packageName] = source;
-    });
-    return result;
+        .where((resource) => resource is Folder)
+        .map((resource) => resource as Folder)
+        .firstWhere((Folder folder) {
+      String baseName = basename(folder.path);
+      // TODO(pylaligand): find a better way to locate the proper directory.
+      return baseName.startsWith('debug') || baseName.startsWith('release');
+    }, orElse: () => null)?.path;
+    return outDirectory == null
+        ? null
+        : provider.pathContext.join(outDirectory, 'gen', 'dart.sources');
   }
 
   /**
@@ -256,9 +290,8 @@
       // Found the .jiri_root file, must be a non-git workspace.
       if (folder.getChildAssumingFolder(_jiriRootName).exists) {
         String root = folder.path;
-        String outDirectory = _getOutDirectory(provider, root);
-        Map<String, String> packages = _getPackages(provider, outDirectory);
-        return new GnWorkspace._(provider, root, packages);
+        String packagesDirectory = _getPackagesDirectory(provider, root);
+        return new GnWorkspace._(provider, root, packagesDirectory);
       }
 
       // Go up the folder.
diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
index b8906c1..2c5cafc 100644
--- a/pkg/analyzer/lib/src/generated/parser.dart
+++ b/pkg/analyzer/lib/src/generated/parser.dart
@@ -249,12 +249,6 @@
   bool _inInitializer = false;
 
   /**
-   * A flag indicating whether the parser is to parse generic function type
-   * syntax.
-   */
-  bool parseGenericFunctionTypes = false;
-
-  /**
    * A flag indicating whether the parser is to parse generic method syntax.
    */
   @deprecated
@@ -1385,8 +1379,12 @@
       }
       return null;
     } else if (_tokenMatches(next, TokenType.PERIOD) &&
-        _tokenMatchesIdentifier(_peekAt(2)) &&
+        _tokenMatchesIdentifierOrKeyword(_peekAt(2)) &&
         _tokenMatches(_peekAt(3), TokenType.OPEN_PAREN)) {
+      if (!_tokenMatchesIdentifier(_peekAt(2))) {
+        _reportErrorForToken(ParserErrorCode.INVALID_CONSTRUCTOR_NAME,
+            _peekAt(2), [_peekAt(2).lexeme]);
+      }
       return _parseConstructor(
           commentAndMetadata,
           modifiers.externalKeyword,
@@ -1394,7 +1392,7 @@
           modifiers.factoryKeyword,
           parseSimpleIdentifier(),
           getAndAdvance(),
-          parseSimpleIdentifier(isDeclaration: true),
+          parseSimpleIdentifier(allowKeyword: true, isDeclaration: true),
           parseFormalParameterList());
     } else if (_tokenMatches(next, TokenType.OPEN_PAREN)) {
       TypeName returnType = _parseOptionalTypeNameComment();
@@ -4688,8 +4686,10 @@
    *     identifier ::=
    *         IDENTIFIER
    */
-  SimpleIdentifier parseSimpleIdentifier({bool isDeclaration: false}) {
-    if (_matchesIdentifier()) {
+  SimpleIdentifier parseSimpleIdentifier(
+      {bool allowKeyword: false, bool isDeclaration: false}) {
+    if (_matchesIdentifier() ||
+        (allowKeyword && _tokenMatchesIdentifierOrKeyword(_currentToken))) {
       return _parseSimpleIdentifierUnchecked(isDeclaration: isDeclaration);
     }
     _reportErrorForCurrentToken(ParserErrorCode.MISSING_IDENTIFIER);
@@ -5057,24 +5057,21 @@
    *       | functionType
    */
   TypeAnnotation parseTypeAnnotation(bool inExpression) {
-    if (parseGenericFunctionTypes) {
-      TypeAnnotation type = null;
-      if (_atGenericFunctionTypeAfterReturnType(_currentToken)) {
-        // Generic function type with no return type.
-        type = parseGenericFunctionTypeAfterReturnType(null);
-      } else if (_currentToken.keyword == Keyword.VOID &&
-          _atGenericFunctionTypeAfterReturnType(_currentToken.next)) {
-        type = astFactory.typeName(
-            astFactory.simpleIdentifier(getAndAdvance()), null);
-      } else {
-        type = parseTypeName(inExpression);
-      }
-      while (_atGenericFunctionTypeAfterReturnType(_currentToken)) {
-        type = parseGenericFunctionTypeAfterReturnType(type);
-      }
-      return type;
+    TypeAnnotation type = null;
+    if (_atGenericFunctionTypeAfterReturnType(_currentToken)) {
+      // Generic function type with no return type.
+      type = parseGenericFunctionTypeAfterReturnType(null);
+    } else if (_currentToken.keyword == Keyword.VOID &&
+        _atGenericFunctionTypeAfterReturnType(_currentToken.next)) {
+      type = astFactory.typeName(
+          astFactory.simpleIdentifier(getAndAdvance()), null);
+    } else {
+      type = parseTypeName(inExpression);
     }
-    return parseTypeName(inExpression);
+    while (_atGenericFunctionTypeAfterReturnType(_currentToken)) {
+      type = parseGenericFunctionTypeAfterReturnType(type);
+    }
+    return type;
   }
 
   /**
@@ -5535,22 +5532,19 @@
    * This method must be kept in sync with [parseTypeAnnotation].
    */
   Token skipTypeAnnotation(Token startToken) {
-    if (parseGenericFunctionTypes) {
-      Token next = null;
-      if (_atGenericFunctionTypeAfterReturnType(startToken)) {
-        next = skipGenericFunctionTypeAfterReturnType(startToken);
-      } else if (_currentToken.keyword == Keyword.VOID &&
-          _atGenericFunctionTypeAfterReturnType(_currentToken.next)) {
-        next = next.next;
-      } else {
-        next = skipTypeName(startToken);
-      }
-      while (next != null && _tokenMatchesString(next, 'Function')) {
-        next = skipGenericFunctionTypeAfterReturnType(next);
-      }
-      return next;
+    Token next = null;
+    if (_atGenericFunctionTypeAfterReturnType(startToken)) {
+      next = skipGenericFunctionTypeAfterReturnType(startToken);
+    } else if (_currentToken.keyword == Keyword.VOID &&
+        _atGenericFunctionTypeAfterReturnType(_currentToken.next)) {
+      next = next.next;
+    } else {
+      next = skipTypeName(startToken);
     }
-    return skipTypeName(startToken);
+    while (next != null && _atGenericFunctionTypeAfterReturnType(next)) {
+      next = skipGenericFunctionTypeAfterReturnType(next);
+    }
+    return next;
   }
 
   /**
@@ -7974,6 +7968,13 @@
       _tokenMatchesPseudoKeyword(token);
 
   /**
+   * Return `true` if the given [token] is either an identifier or a keyword.
+   */
+  bool _tokenMatchesIdentifierOrKeyword(Token token) =>
+      _tokenMatches(token, TokenType.IDENTIFIER) ||
+      _tokenMatches(token, TokenType.KEYWORD);
+
+  /**
    * Return `true` if the given [token] matches the given [keyword].
    */
   bool _tokenMatchesKeyword(Token token, Keyword keyword) =>
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index 9ad6c5c..c86b37c 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -2114,8 +2114,8 @@
   List<String> get parts => _parts ??= <String>[];
 
   /**
-   * URI for the compilation units listed in the library's `part` declarations.
-   * These URIs are relative to the importing library.
+   * Absolute URI for the compilation units listed in the library's `part`
+   * declarations, empty string for invalid URI.
    */
   void set parts(List<String> value) {
     this._parts = value;
@@ -2125,11 +2125,7 @@
   String get uri => _uri ??= '';
 
   /**
-   * The relative URI of the dependent library.  This URI is relative to the
-   * importing library, even if there are intervening `export` declarations.
-   * So, for example, if `a.dart` imports `b/c.dart` and `b/c.dart` exports
-   * `d/e.dart`, the URI listed for `a.dart`'s dependency on `e.dart` will be
-   * `b/d/e.dart`.
+   * The absolute URI of the dependent library, e.g. `package:foo/bar.dart`.
    */
   void set uri(String value) {
     this._uri = value;
diff --git a/pkg/analyzer/lib/src/summary/format.fbs b/pkg/analyzer/lib/src/summary/format.fbs
index 84e37ff..c0d461a 100644
--- a/pkg/analyzer/lib/src/summary/format.fbs
+++ b/pkg/analyzer/lib/src/summary/format.fbs
@@ -1179,17 +1179,13 @@
  */
 table LinkedDependency {
   /**
-   * URI for the compilation units listed in the library's `part` declarations.
-   * These URIs are relative to the importing library.
+   * Absolute URI for the compilation units listed in the library's `part`
+   * declarations, empty string for invalid URI.
    */
   parts:[string] (id: 1);
 
   /**
-   * The relative URI of the dependent library.  This URI is relative to the
-   * importing library, even if there are intervening `export` declarations.
-   * So, for example, if `a.dart` imports `b/c.dart` and `b/c.dart` exports
-   * `d/e.dart`, the URI listed for `a.dart`'s dependency on `e.dart` will be
-   * `b/d/e.dart`.
+   * The absolute URI of the dependent library, e.g. `package:foo/bar.dart`.
    */
   uri:string (id: 0);
 }
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart
index e6f142d..3389fee 100644
--- a/pkg/analyzer/lib/src/summary/idl.dart
+++ b/pkg/analyzer/lib/src/summary/idl.dart
@@ -596,18 +596,14 @@
  */
 abstract class LinkedDependency extends base.SummaryClass {
   /**
-   * URI for the compilation units listed in the library's `part` declarations.
-   * These URIs are relative to the importing library.
+   * Absolute URI for the compilation units listed in the library's `part`
+   * declarations, empty string for invalid URI.
    */
   @Id(1)
   List<String> get parts;
 
   /**
-   * The relative URI of the dependent library.  This URI is relative to the
-   * importing library, even if there are intervening `export` declarations.
-   * So, for example, if `a.dart` imports `b/c.dart` and `b/c.dart` exports
-   * `d/e.dart`, the URI listed for `a.dart`'s dependency on `e.dart` will be
-   * `b/d/e.dart`.
+   * The absolute URI of the dependent library, e.g. `package:foo/bar.dart`.
    */
   @Id(0)
   String get uri;
diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
index a97a11b..3d5a098 100644
--- a/pkg/analyzer/lib/src/summary/link.dart
+++ b/pkg/analyzer/lib/src/summary/link.dart
@@ -146,21 +146,11 @@
       <String, LinkedLibraryBuilder>{};
   for (String absoluteUri in libraryUris) {
     Uri uri = Uri.parse(absoluteUri);
-
-    UnlinkedUnit getRelativeUnit(String relativeUriStr) {
-      Uri relativeUri;
-      try {
-        relativeUri = Uri.parse(relativeUriStr);
-      } on FormatException {
-        return new UnlinkedUnitBuilder();
-      }
-      return getUnit(resolveRelativeUri(uri, relativeUri).toString());
-    }
-
     linkedLibraries[absoluteUri] = prelink(
+        absoluteUri,
         getUnit(absoluteUri),
-        getRelativeUnit,
-        (String relativeUri) => getRelativeUnit(relativeUri)?.publicNamespace,
+        getUnit,
+        (String absoluteUri) => getUnit(absoluteUri)?.publicNamespace,
         getDeclaredVariable);
   }
   return linkedLibraries;
@@ -3371,9 +3361,8 @@
           continue;
         }
 
-        String partAbsoluteUri = resolveRelativeUri(
-                _absoluteUri, partRelativeUri)
-            .toString();
+        String partAbsoluteUri =
+            resolveRelativeUri(_absoluteUri, partRelativeUri).toString();
         UnlinkedUnit partUnit = _linker.getUnit(partAbsoluteUri);
         _units.add(_makeUnitElement(
             partUnit ?? new UnlinkedUnitBuilder(), i + 1, partAbsoluteUri));
@@ -3415,19 +3404,19 @@
   LibraryElementForLink _getDependency(int index) {
     LibraryElementForLink result = _dependencies[index];
     if (result == null) {
-      String relativeUriStr = _linkedLibrary.dependencies[index].uri;
-
-      Uri relativeUri;
-      try {
-        relativeUri = Uri.parse(relativeUriStr);
-      } on FormatException {
-        return null;
+      Uri uri;
+      String uriStr = _linkedLibrary.dependencies[index].uri;
+      if (uriStr.isEmpty) {
+        uri = _absoluteUri;
+      } else {
+        try {
+          uri = Uri.parse(uriStr);
+        } on FormatException {
+          return null;
+        }
       }
 
-      Uri absoluteUri = relativeUriStr.isEmpty
-          ? _absoluteUri
-          : resolveRelativeUri(_absoluteUri, relativeUri);
-      result = _linker.getLibrary(absoluteUri);
+      result = _linker.getLibrary(uri);
       _dependencies[index] = result;
     }
     return result;
@@ -3492,12 +3481,12 @@
     Uri libraryUri = library._absoluteUri;
     List<String> partsRelativeToDependency =
         library.definingUnlinkedUnit.publicNamespace.parts;
-    List<String> partsRelativeToLibraryBeingLinked = partsRelativeToDependency
+    List<String> partsAbsolute = partsRelativeToDependency
         .map((partUri) =>
             resolveRelativeUri(libraryUri, Uri.parse(partUri)).toString())
         .toList();
     _linkedLibrary.dependencies.add(new LinkedDependencyBuilder(
-        parts: partsRelativeToLibraryBeingLinked, uri: libraryUri.toString()));
+        parts: partsAbsolute, uri: libraryUri.toString()));
     _dependencies.add(library);
     return result;
   }
diff --git a/pkg/analyzer/lib/src/summary/prelink.dart b/pkg/analyzer/lib/src/summary/prelink.dart
index 33ce0f9..1e64b4a 100644
--- a/pkg/analyzer/lib/src/summary/prelink.dart
+++ b/pkg/analyzer/lib/src/summary/prelink.dart
@@ -8,17 +8,22 @@
 import 'package:analyzer/src/summary/name_filter.dart';
 
 /**
- * Create a [LinkedLibraryBuilder] corresponding to the given
- * [definingUnit], which should be the defining compilation unit for a library.
- * Compilation units referenced by the defining compilation unit via `part`
- * declarations will be retrieved using [getPart].  Public namespaces for
- * libraries referenced by the defining compilation unit via `import`
+ * Create a [LinkedLibraryBuilder] corresponding to the given [definingUnitUri]
+ * and [definingUnit], which should be the defining compilation unit for a
+ * library. Compilation units referenced by the defining compilation unit via
+ * `part` declarations will be retrieved using [getPart].  Public namespaces
+ * for libraries referenced by the defining compilation unit via `import`
  * declarations (and files reachable from them via `part` and `export`
  * declarations) will be retrieved using [getImport].
  */
-LinkedLibraryBuilder prelink(UnlinkedUnit definingUnit, GetPartCallback getPart,
-    GetImportCallback getImport, GetDeclaredVariable getDeclaredVariable) {
-  return new _Prelinker(definingUnit, getPart, getImport, getDeclaredVariable)
+LinkedLibraryBuilder prelink(
+    String definingUnitUri,
+    UnlinkedUnit definingUnit,
+    GetPartCallback getPart,
+    GetImportCallback getImport,
+    GetDeclaredVariable getDeclaredVariable) {
+  return new _Prelinker(definingUnitUri, definingUnit, getPart, getImport,
+          getDeclaredVariable)
       .prelink();
 }
 
@@ -30,24 +35,21 @@
 
 /**
  * Type of the callback used by the prelinker to obtain public namespace
- * information about libraries imported by the library to be prelinked (and
- * the transitive closure of parts and exports reachable from those libraries).
- * [relativeUri] should be interpreted relative to the defining compilation
- * unit of the library being prelinked.
+ * information about libraries with the given [absoluteUri] imported by the
+ * library to be prelinked (and the transitive closure of parts and exports
+ * reachable from those libraries).
  *
  * If no file exists at the given uri, `null` should be returned.
  */
-typedef UnlinkedPublicNamespace GetImportCallback(String relativeUri);
+typedef UnlinkedPublicNamespace GetImportCallback(String absoluteUri);
 
 /**
  * Type of the callback used by the prelinker to obtain unlinked summaries of
- * part files of the library to be prelinked.  [relativeUri] should be
- * interpreted relative to the defining compilation unit of the library being
- * prelinked.
+ * part files of the library to be prelinked.
  *
  * If no file exists at the given uri, `null` should be returned.
  */
-typedef UnlinkedUnit GetPartCallback(String relativeUri);
+typedef UnlinkedUnit GetPartCallback(String absoluteUri);
 
 /**
  * A [_Meaning] representing a class.
@@ -184,11 +186,9 @@
 /**
  * Helper class containing temporary data structures needed to prelink a single
  * library.
- *
- * Note: throughout this class, a `null` value for a relative URI represents
- * the defining compilation unit of the library being prelinked.
  */
 class _Prelinker {
+  final String definingUnitUri;
   final UnlinkedUnit definingUnit;
   final GetPartCallback getPart;
   final GetImportCallback getImport;
@@ -216,42 +216,42 @@
    * List of dependencies of the library being prelinked.  This will be output
    * to [LinkedLibrary.dependencies].
    */
-  final List<LinkedDependencyBuilder> dependencies = <LinkedDependencyBuilder>[
-    new LinkedDependencyBuilder()
-  ];
+  final List<LinkedDependencyBuilder> dependencies =
+      <LinkedDependencyBuilder>[];
 
   /**
-   * Map from the relative URI of a dependent library to the index of the
+   * Map from the absolute URI of a dependent library to the index of the
    * corresponding entry in [dependencies].
    */
-  final Map<String, int> uriToDependency = <String, int>{null: 0};
+  final Map<String, int> uriToDependency = <String, int>{};
 
   /**
    * List of public namespaces corresponding to each entry in [dependencies].
    */
-  final List<_Namespace> dependencyToPublicNamespace = <_Namespace>[null];
+  final List<_Namespace> dependencyToPublicNamespace = <_Namespace>[];
 
-  _Prelinker(this.definingUnit, this.getPart, this.getImport,
-      this.getDeclaredVariable) {
-    partCache[null] = definingUnit;
-    importCache[null] = definingUnit.publicNamespace;
+  _Prelinker(this.definingUnitUri, this.definingUnit, this.getPart,
+      this.getImport, this.getDeclaredVariable) {
+    partCache[definingUnitUri] = definingUnit;
+    importCache[definingUnitUri] = definingUnit.publicNamespace;
   }
 
   /**
    * Compute the public namespace for the library whose URI is reachable from
-   * [definingUnit] via [relativeUri], by aggregating together public namespace
+   * [definingUnit] via [absoluteUri], by aggregating together public namespace
    * information from all of its parts.
    */
-  _Namespace aggregatePublicNamespace(String relativeUri) {
-    if (uriToDependency.containsKey(relativeUri)) {
-      return dependencyToPublicNamespace[uriToDependency[relativeUri]];
+  _Namespace aggregatePublicNamespace(String absoluteUri) {
+    if (uriToDependency.containsKey(absoluteUri)) {
+      return dependencyToPublicNamespace[uriToDependency[absoluteUri]];
     }
     assert(dependencies.length == dependencyToPublicNamespace.length);
     int dependency = dependencies.length;
-    uriToDependency[relativeUri] = dependency;
-    List<String> unitUris = getUnitUris(relativeUri);
+    uriToDependency[absoluteUri] = dependency;
+    List<String> unitUris = getUnitUris(absoluteUri);
     LinkedDependencyBuilder linkedDependency = new LinkedDependencyBuilder(
-        uri: relativeUri, parts: unitUris.sublist(1));
+        uri: absoluteUri,
+        parts: unitUris.skip(1).map((uri) => uri ?? '').toList());
     dependencies.add(linkedDependency);
 
     _Namespace aggregated = new _Namespace();
@@ -292,42 +292,39 @@
 
   /**
    * Compute the export namespace for the library whose URI is reachable from
-   * [definingUnit] via [relativeUri], by aggregating together public namespace
+   * [definingUnit] via [absoluteUri], by aggregating together public namespace
    * information from the library and the transitive closure of its exports.
-   *
-   * If [relativeUri] is `null` (meaning the export namespace of [definingUnit]
-   * should be computed), then names defined in [definingUnit] are ignored.
    */
-  _Namespace computeExportNamespace(String relativeUri) {
+  _Namespace computeExportNamespace(String absoluteUri) {
     Set<String> seenUris = new Set<String>();
-    _Namespace chaseExports(String relativeUri, NameFilter filter) {
-      _Namespace exportedNamespace = relativeUri == null
-          ? new _Namespace()
-          : aggregatePublicNamespace(relativeUri);
-      if (seenUris.add(relativeUri)) {
-        UnlinkedPublicNamespace publicNamespace = getImportCached(relativeUri);
+    _Namespace chaseExports(String absoluteUri, NameFilter filter) {
+      _Namespace exportedNamespace = aggregatePublicNamespace(absoluteUri);
+      if (seenUris.add(absoluteUri)) {
+        UnlinkedPublicNamespace publicNamespace = getImportCached(absoluteUri);
         if (publicNamespace != null) {
           for (UnlinkedExportPublic export in publicNamespace.exports) {
-            String relativeExportUri =
+            String unlinkedExportUri =
                 _selectUri(export.uri, export.configurations);
-            String exportUri = resolveUri(relativeUri, relativeExportUri);
-            NameFilter newFilter = filter.merge(
-                new NameFilter.forUnlinkedCombinators(export.combinators));
-            _Namespace exportNamespace = chaseExports(exportUri, newFilter);
-            exportNamespace.forEach((String name, _Meaning meaning) {
-              if (newFilter.accepts(name) &&
-                  !exportedNamespace.definesLibraryName(name)) {
-                exportedNamespace.add(name, meaning);
-              }
-            });
+            String exportUri = resolveUri(absoluteUri, unlinkedExportUri);
+            if (exportUri != null) {
+              NameFilter newFilter = filter.merge(
+                  new NameFilter.forUnlinkedCombinators(export.combinators));
+              _Namespace exportNamespace = chaseExports(exportUri, newFilter);
+              exportNamespace.forEach((String name, _Meaning meaning) {
+                if (newFilter.accepts(name) &&
+                    !exportedNamespace.definesLibraryName(name)) {
+                  exportedNamespace.add(name, meaning);
+                }
+              });
+            }
           }
         }
-        seenUris.remove(relativeUri);
+        seenUris.remove(absoluteUri);
       }
       return exportedNamespace;
     }
 
-    return chaseExports(relativeUri, NameFilter.identity);
+    return chaseExports(absoluteUri, NameFilter.identity);
   }
 
   /**
@@ -404,14 +401,14 @@
   }
 
   /**
-   * Filter the export namespace for the library whose URI is reachable from
-   * [definingUnit] via [relativeUri], retaining only those names accepted by
+   * Filter the export namespace for the library whose URI is reachable the
+   * given [absoluteUri], retaining only those names accepted by
    * [combinators], and store the resulting names in [result].  Names that
    * already exist in [result] are not overwritten.
    */
-  void filterExportNamespace(String relativeUri,
+  void filterExportNamespace(String absoluteUri,
       List<UnlinkedCombinator> combinators, _Namespace result) {
-    _Namespace exportNamespace = computeExportNamespace(relativeUri);
+    _Namespace exportNamespace = computeExportNamespace(absoluteUri);
     if (result == null) {
       // This can happen if the import prefix was shadowed by a local name, so
       // the imported symbols are inaccessible.
@@ -428,32 +425,33 @@
   /**
    * Wrapper around [getImport] that caches the return value in [importCache].
    */
-  UnlinkedPublicNamespace getImportCached(String relativeUri) {
-    return importCache.putIfAbsent(relativeUri, () => getImport(relativeUri));
+  UnlinkedPublicNamespace getImportCached(String absoluteUri) {
+    return importCache.putIfAbsent(absoluteUri, () => getImport(absoluteUri));
   }
 
   /**
    * Wrapper around [getPart] that caches the return value in [partCache] and
    * updates [importCache] appropriately.
    */
-  UnlinkedUnit getPartCached(String relativeUri) {
-    return partCache.putIfAbsent(relativeUri, () {
-      UnlinkedUnit unit = getPart(relativeUri);
-      importCache[relativeUri] = unit?.publicNamespace;
+  UnlinkedUnit getPartCached(String absoluteUri) {
+    return partCache.putIfAbsent(absoluteUri, () {
+      UnlinkedUnit unit = getPart(absoluteUri);
+      importCache[absoluteUri] = unit?.publicNamespace;
       return unit;
     });
   }
 
   /**
-   * Compute the set of relative URIs of all the compilation units in the
-   * library whose URI is reachable from [definingUnit] via [relativeUri].
+   * Compute the set of absolute URIs of all the compilation units in the
+   * library whose URI is reachable from [definingUnit] via [absoluteUri].
    */
-  List<String> getUnitUris(String relativeUri) {
-    List<String> result = <String>[relativeUri];
-    UnlinkedPublicNamespace publicNamespace = getImportCached(relativeUri);
+  List<String> getUnitUris(String absoluteUri) {
+    List<String> result = <String>[absoluteUri];
+    UnlinkedPublicNamespace publicNamespace = getImportCached(absoluteUri);
     if (publicNamespace != null) {
-      result.addAll(publicNamespace.parts
-          .map((String uri) => resolveUri(relativeUri, uri)));
+      result.addAll(publicNamespace.parts.map((String uri) {
+        return resolveUri(absoluteUri, uri);
+      }));
     }
     return result;
   }
@@ -463,9 +461,11 @@
    * return value is the index of the imported library in [dependencies].
    */
   int handleImport(UnlinkedImport import) {
-    String uri = import.isImplicit
+    String unlinkedUri = import.isImplicit
         ? 'dart:core'
         : _selectUri(import.uri, import.configurations);
+    String absoluteUri = resolveUri(definingUnitUri, unlinkedUri);
+
     _Namespace targetNamespace = null;
     if (import.prefixReference != 0) {
       // The name introduced by an import declaration can't have a prefix of
@@ -480,8 +480,8 @@
     } else {
       targetNamespace = privateNamespace;
     }
-    filterExportNamespace(uri, import.combinators, targetNamespace);
-    return uriToDependency[uri];
+    filterExportNamespace(absoluteUri, import.combinators, targetNamespace);
+    return uriToDependency[absoluteUri];
   }
 
   /**
@@ -527,9 +527,12 @@
    * constructor.
    */
   LinkedLibraryBuilder prelink() {
+    aggregatePublicNamespace(definingUnitUri);
+
     // Gather up the unlinked summaries for all the compilation units in the
     // library.
-    List<UnlinkedUnit> units = getUnitUris(null).map(getPartCached).toList();
+    List<String> unitUris = getUnitUris(definingUnitUri);
+    List<UnlinkedUnit> units = unitUris.map(getPartCached).toList();
 
     // Create the private namespace for the library by gathering all the names
     // defined in its compilation units.
@@ -544,7 +547,8 @@
     // defined in import declarations, because prefixes shouldn't shadow
     // exports.
     List<LinkedExportNameBuilder> exportNames = <LinkedExportNameBuilder>[];
-    computeExportNamespace(null).forEach((String name, _Meaning meaning) {
+    computeExportNamespace(definingUnitUri)
+        .forEach((String name, _Meaning meaning) {
       if (!privateNamespace.definesName(name)) {
         exportNames.add(meaning.encodeExportName(name));
       }
@@ -567,11 +571,14 @@
     // Fill in imported and exported names.
     List<int> importDependencies =
         definingUnit.imports.map(handleImport).toList();
-    List<int> exportDependencies =
-        definingUnit.publicNamespace.exports.map((UnlinkedExportPublic exp) {
-      String uri = _selectUri(exp.uri, exp.configurations);
-      return uriToDependency[uri];
-    }).toList();
+    List<int> exportDependencies = definingUnit.publicNamespace.exports
+        .map((UnlinkedExportPublic exp) {
+          String unlinkedUri = _selectUri(exp.uri, exp.configurations);
+          String absoluteUri = resolveUri(definingUnitUri, unlinkedUri);
+          return uriToDependency[absoluteUri];
+        })
+        .where((dependency) => dependency != null)
+        .toList();
 
     // Link each compilation unit.
     List<LinkedUnitBuilder> linkedUnits = units.map(linkUnit).toList();
@@ -586,15 +593,19 @@
   }
 
   /**
-   * Resolve [relativeUri] relative to [sourceUri].  Works correctly if
-   * [sourceUri] is also relative.
+   * Resolve [relativeUri] relative to [containingUri].  Return `null` if
+   * [relativeUri] is invalid or empty, so cannot be resolved.
    */
-  String resolveUri(String sourceUri, String relativeUri) {
-    if (sourceUri == null) {
-      return relativeUri;
-    } else {
-      return resolveRelativeUri(Uri.parse(sourceUri), Uri.parse(relativeUri))
-          .toString();
+  String resolveUri(String containingUri, String relativeUri) {
+    if (relativeUri == '') {
+      return null;
+    }
+    try {
+      Uri containingUriObj = Uri.parse(containingUri);
+      Uri relativeUriObj = Uri.parse(relativeUri);
+      return resolveRelativeUri(containingUriObj, relativeUriObj).toString();
+    } on FormatException {
+      return null;
     }
   }
 
diff --git a/pkg/analyzer/lib/src/summary/pub_summary.dart b/pkg/analyzer/lib/src/summary/pub_summary.dart
deleted file mode 100644
index 821b4fc..0000000
--- a/pkg/analyzer/lib/src/summary/pub_summary.dart
+++ /dev/null
@@ -1,835 +0,0 @@
-// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:collection';
-import 'dart:core';
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/error/listener.dart';
-import 'package:analyzer/file_system/file_system.dart';
-import 'package:analyzer/src/dart/scanner/reader.dart';
-import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/parser.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/utilities_collection.dart';
-import 'package:analyzer/src/summary/api_signature.dart';
-import 'package:analyzer/src/summary/format.dart';
-import 'package:analyzer/src/summary/idl.dart';
-import 'package:analyzer/src/summary/link.dart';
-import 'package:analyzer/src/summary/package_bundle_reader.dart'
-    show ResynthesizerResultProvider, SummaryDataStore;
-import 'package:analyzer/src/summary/summarize_ast.dart'
-    show serializeAstUnlinked;
-import 'package:analyzer/src/summary/summarize_elements.dart'
-    show PackageBundleAssembler;
-import 'package:convert/convert.dart';
-import 'package:crypto/crypto.dart';
-import 'package:meta/meta.dart';
-import 'package:path/path.dart' as pathos;
-
-/**
- * Unlinked and linked information about a [PubPackage].
- */
-class LinkedPubPackage {
-  final PubPackage package;
-  final PackageBundle unlinked;
-  final PackageBundle linked;
-
-  final String linkedHash;
-
-  LinkedPubPackage(this.package, this.unlinked, this.linked, this.linkedHash);
-
-  @override
-  String toString() => package.toString();
-}
-
-/**
- * A package in the pub cache.
- */
-class PubPackage {
-  final String name;
-  final Folder libFolder;
-
-  PubPackage(this.name, this.libFolder);
-
-  Folder get folder => libFolder.parent;
-
-  @override
-  int get hashCode => libFolder.hashCode;
-
-  @override
-  bool operator ==(other) {
-    return other is PubPackage && other.libFolder == libFolder;
-  }
-
-  @override
-  String toString() => '($name in $folder)';
-}
-
-/**
- * Class that manages summaries for pub packages.
- *
- * The client should call [getLinkedBundles] after creating a new
- * [AnalysisContext] and configuring its source factory, but before computing
- * any analysis results.  The returned linked bundles can be used to create and
- * configure [ResynthesizerResultProvider] for the context.
- */
-class PubSummaryManager {
-  static const UNLINKED_NAME = 'unlinked.ds';
-  static const UNLINKED_SPEC_NAME = 'unlinked_spec.ds';
-
-  /**
-   * If `true` (by default), then linking new bundles is allowed.
-   * Otherwise only using existing cached bundles can be used.
-   */
-  final bool allowLinking;
-
-  /**
-   * See [PackageBundleAssembler.currentMajorVersion].
-   */
-  final int majorVersion;
-
-  final ResourceProvider resourceProvider;
-
-  /**
-   * The name of the temporary file that is used for atomic writes.
-   */
-  final String tempFileName;
-
-  /**
-   * The map from [PubPackage]s to their unlinked [PackageBundle]s in the pub
-   * cache.
-   */
-  final Map<PubPackage, PackageBundle> unlinkedBundleMap =
-      new HashMap<PubPackage, PackageBundle>();
-
-  /**
-   * The map from linked file paths to the corresponding linked bundles.
-   */
-  final Map<String, PackageBundle> linkedBundleMap =
-      new HashMap<String, PackageBundle>();
-
-  /**
-   * The set of packages to compute unlinked summaries for.
-   */
-  final Set<PubPackage> packagesToComputeUnlinked = new Set<PubPackage>();
-
-  /**
-   * The set of already processed packages, which we have already checked
-   * for their unlinked bundle existence, or scheduled its computing.
-   */
-  final Set<PubPackage> seenPackages = new Set<PubPackage>();
-
-  /**
-   * The [Completer] that completes when computing of all scheduled unlinked
-   * bundles is complete.
-   */
-  Completer _onUnlinkedCompleteCompleter;
-
-  PubSummaryManager(this.resourceProvider, this.tempFileName,
-      {@visibleForTesting this.allowLinking: true,
-      @visibleForTesting this.majorVersion:
-          PackageBundleAssembler.currentMajorVersion});
-
-  /**
-   * The [Future] that completes when computing of all scheduled unlinked
-   * bundles is complete.
-   */
-  Future get onUnlinkedComplete {
-    if (packagesToComputeUnlinked.isEmpty) {
-      return new Future.value();
-    }
-    _onUnlinkedCompleteCompleter ??= new Completer();
-    return _onUnlinkedCompleteCompleter.future;
-  }
-
-  /**
-   * Return the [pathos.Context] corresponding to the [resourceProvider].
-   */
-  pathos.Context get pathContext => resourceProvider.pathContext;
-
-  /**
-   * Complete when the unlinked bundles for the package with the given [name]
-   * and the [libFolder] are computed and written to the files.
-   *
-   * This method is intended to be used for generating unlinked bundles for
-   * the `Flutter` packages.
-   */
-  Future<Null> computeUnlinkedForFolder(String name, Folder libFolder) async {
-    PubPackage package = new PubPackage(name, libFolder);
-    _scheduleUnlinked(package);
-    await onUnlinkedComplete;
-  }
-
-  /**
-   * Return the list of linked [LinkedPubPackage]s that can be provided at this
-   * time for a subset of the packages used by the given [context].  If
-   * information about some of the used packages is not available yet, schedule
-   * its computation, so that it might be available later for other contexts
-   * referencing the same packages.
-   */
-  List<LinkedPubPackage> getLinkedBundles(AnalysisContext context) {
-    return new _ContextLinker(this, context).getLinkedBundles();
-  }
-
-  /**
-   * Return all available unlinked [PackageBundle]s for the given [context],
-   * maybe an empty map, but not `null`.
-   */
-  @visibleForTesting
-  Map<PubPackage, PackageBundle> getUnlinkedBundles(AnalysisContext context) {
-    bool strong = context.analysisOptions.strongMode;
-    Map<PubPackage, PackageBundle> unlinkedBundles =
-        new HashMap<PubPackage, PackageBundle>();
-    Map<String, List<Folder>> packageMap = context.sourceFactory.packageMap;
-    if (packageMap != null) {
-      packageMap.forEach((String packageName, List<Folder> libFolders) {
-        if (libFolders.length == 1) {
-          Folder libFolder = libFolders.first;
-          PubPackage package = new PubPackage(packageName, libFolder);
-          PackageBundle unlinkedBundle =
-              _getUnlinkedOrSchedule(package, strong);
-          if (unlinkedBundle != null) {
-            unlinkedBundles[package] = unlinkedBundle;
-          }
-        }
-      });
-    }
-    return unlinkedBundles;
-  }
-
-  /**
-   * Compute unlinked bundle for a package from [packagesToComputeUnlinked],
-   * and schedule delayed computation for the next package, if any.
-   */
-  void _computeNextUnlinked() {
-    if (packagesToComputeUnlinked.isNotEmpty) {
-      PubPackage package = packagesToComputeUnlinked.first;
-      _computeUnlinked(package, false);
-      _computeUnlinked(package, true);
-      packagesToComputeUnlinked.remove(package);
-      _scheduleNextUnlinked();
-    } else {
-      if (_onUnlinkedCompleteCompleter != null) {
-        _onUnlinkedCompleteCompleter.complete(true);
-        _onUnlinkedCompleteCompleter = null;
-      }
-    }
-  }
-
-  /**
-   * Compute the unlinked bundle for the package with the given path, put
-   * it in the [unlinkedBundleMap] and store into the [resourceProvider].
-   *
-   * TODO(scheglov) Consider moving into separate isolate(s).
-   */
-  void _computeUnlinked(PubPackage package, bool strong) {
-    Folder libFolder = package.libFolder;
-    String libPath = libFolder.path + pathContext.separator;
-    PackageBundleAssembler assembler = new PackageBundleAssembler();
-
-    /**
-     * Return the `package` [Uri] for the given [path] in the `lib` folder
-     * of the current package.
-     */
-    Uri getUri(String path) {
-      String pathInLib = path.substring(libPath.length);
-      String uriPath = pathos.posix.joinAll(pathContext.split(pathInLib));
-      String uriStr = 'package:${package.name}/$uriPath';
-      return Uri.parse(uriStr);
-    }
-
-    /**
-     * If the given [file] is a Dart file, add its unlinked unit.
-     */
-    void addDartFile(File file) {
-      String path = file.path;
-      if (AnalysisEngine.isDartFileName(path)) {
-        Uri uri = getUri(path);
-        Source source = file.createSource(uri);
-        CompilationUnit unit = _parse(source, strong);
-        UnlinkedUnitBuilder unlinkedUnit = serializeAstUnlinked(unit);
-        assembler.addUnlinkedUnit(source, unlinkedUnit);
-      }
-    }
-
-    /**
-     * Visit the [folder] recursively.
-     */
-    void addDartFiles(Folder folder) {
-      List<Resource> children = folder.getChildren();
-      for (Resource child in children) {
-        if (child is File) {
-          addDartFile(child);
-        }
-      }
-      for (Resource child in children) {
-        if (child is Folder) {
-          addDartFiles(child);
-        }
-      }
-    }
-
-    try {
-      addDartFiles(libFolder);
-      PackageBundleBuilder bundleWriter = assembler.assemble();
-      bundleWriter.majorVersion = majorVersion;
-      List<int> bytes = bundleWriter.toBuffer();
-      String fileName = _getUnlinkedName(strong);
-      _writeAtomic(package.folder, fileName, bytes);
-    } on FileSystemException {
-      // Ignore file system exceptions.
-    }
-  }
-
-  /**
-   * Return the name of the file for an unlinked bundle, in strong or spec mode.
-   */
-  String _getUnlinkedName(bool strong) {
-    if (strong) {
-      return UNLINKED_NAME;
-    } else {
-      return UNLINKED_SPEC_NAME;
-    }
-  }
-
-  /**
-   * Return the unlinked [PackageBundle] for the given [package]. If the bundle
-   * has not been compute yet, return `null` and schedule its computation.
-   */
-  PackageBundle _getUnlinkedOrSchedule(PubPackage package, bool strong) {
-    // Try to find in the cache.
-    PackageBundle bundle = unlinkedBundleMap[package];
-    if (bundle != null) {
-      return bundle;
-    }
-
-    // Try to read from the file system.
-    String fileName = _getUnlinkedName(strong);
-    File file = package.folder.getChildAssumingFile(fileName);
-    if (file.exists) {
-      try {
-        List<int> bytes = file.readAsBytesSync();
-        bundle = new PackageBundle.fromBuffer(bytes);
-      } on FileSystemException {
-        // Ignore file system exceptions.
-      }
-    }
-
-    // Verify compatibility and consistency.
-    bool isInPubCache = isPathInPubCache(pathContext, package.folder.path);
-    if (bundle != null &&
-        bundle.majorVersion == majorVersion &&
-        (isInPubCache || _isConsistent(package, bundle))) {
-      unlinkedBundleMap[package] = bundle;
-      return bundle;
-    }
-
-    // Schedule computation in the background, if in the pub cache.
-    if (isInPubCache) {
-      if (seenPackages.add(package)) {
-        _scheduleUnlinked(package);
-      }
-    }
-
-    // The bundle is not available.
-    return null;
-  }
-
-  /**
-   * Return `true` if content hashes for the [package] library files are the
-   * same the hashes in the unlinked [bundle].
-   */
-  bool _isConsistent(PubPackage package, PackageBundle bundle) {
-    List<String> actualHashes = <String>[];
-
-    /**
-     * If the given [file] is a Dart file, add its content hash.
-     */
-    void hashDartFile(File file) {
-      String path = file.path;
-      if (AnalysisEngine.isDartFileName(path)) {
-        List<int> fileBytes = file.readAsBytesSync();
-        List<int> hashBytes = md5.convert(fileBytes).bytes;
-        String hashHex = hex.encode(hashBytes);
-        actualHashes.add(hashHex);
-      }
-    }
-
-    /**
-     * Visit the [folder] recursively.
-     */
-    void hashDartFiles(Folder folder) {
-      List<Resource> children = folder.getChildren();
-      for (Resource child in children) {
-        if (child is File) {
-          hashDartFile(child);
-        } else if (child is Folder) {
-          hashDartFiles(child);
-        }
-      }
-    }
-
-    // Recursively compute hashes of the `lib` folder Dart files.
-    try {
-      hashDartFiles(package.libFolder);
-    } on FileSystemException {
-      return false;
-    }
-
-    // Compare sorted actual and bundle unit hashes.
-    List<String> bundleHashes = bundle.unlinkedUnitHashes.toList()..sort();
-    actualHashes.sort();
-    return listsEqual(actualHashes, bundleHashes);
-  }
-
-  /**
-   * Parse the given [source] into AST.
-   */
-  CompilationUnit _parse(Source source, bool strong) {
-    String code = source.contents.data;
-    AnalysisErrorListener errorListener = AnalysisErrorListener.NULL_LISTENER;
-    CharSequenceReader reader = new CharSequenceReader(code);
-    Scanner scanner = new Scanner(source, reader, errorListener);
-    scanner.scanGenericMethodComments = strong;
-    Token token = scanner.tokenize();
-    LineInfo lineInfo = new LineInfo(scanner.lineStarts);
-    Parser parser = new Parser(source, errorListener);
-    parser.parseGenericMethodComments = strong;
-    CompilationUnit unit = parser.parseCompilationUnit(token);
-    unit.lineInfo = lineInfo;
-    return unit;
-  }
-
-  /**
-   * Schedule delayed computation of the next package unlinked bundle from the
-   * set of [packagesToComputeUnlinked].  We delay each computation because we
-   * want operations in analysis server to proceed, and computing bundles of
-   * packages is a background task.
-   */
-  void _scheduleNextUnlinked() {
-    new Future.delayed(new Duration(milliseconds: 10), _computeNextUnlinked);
-  }
-
-  /**
-   * Schedule computing unlinked bundles for the given [package].
-   */
-  void _scheduleUnlinked(PubPackage package) {
-    if (packagesToComputeUnlinked.isEmpty) {
-      _scheduleNextUnlinked();
-    }
-    packagesToComputeUnlinked.add(package);
-  }
-
-  /**
-   * Atomically write the given [bytes] into the file in the [folder].
-   */
-  void _writeAtomic(Folder folder, String fileName, List<int> bytes) {
-    String filePath = folder.getChildAssumingFile(fileName).path;
-    File tempFile = folder.getChildAssumingFile(tempFileName);
-    tempFile.writeAsBytesSync(bytes);
-    tempFile.renameSync(filePath);
-  }
-
-  /**
-   * If the given [uri] has the `package` scheme, return the name of the
-   * package that contains the referenced resource.  Otherwise return `null`.
-   *
-   * For example `package:foo/bar.dart` => `foo`.
-   */
-  static String getPackageName(String uri) {
-    const String PACKAGE_SCHEME = 'package:';
-    if (uri.startsWith(PACKAGE_SCHEME)) {
-      int index = uri.indexOf('/');
-      if (index != -1) {
-        return uri.substring(PACKAGE_SCHEME.length, index);
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Return `true` if the given absolute [path] is in the pub cache.
-   */
-  static bool isPathInPubCache(pathos.Context pathContext, String path) {
-    List<String> parts = pathContext.split(path);
-    for (int i = 0; i < parts.length - 1; i++) {
-      if (parts[i] == '.pub-cache') {
-        return true;
-      }
-      if (parts[i] == 'Pub' && parts[i + 1] == 'Cache') {
-        return true;
-      }
-    }
-    return false;
-  }
-}
-
-class _ContextLinker {
-  final PubSummaryManager manager;
-  final AnalysisContext context;
-
-  final strong;
-  final _ListedPackages listedPackages;
-  final PackageBundle sdkBundle;
-
-  final List<_LinkNode> nodes = <_LinkNode>[];
-  final Map<String, _LinkNode> packageToNode = <String, _LinkNode>{};
-
-  _ContextLinker(this.manager, AnalysisContext context)
-      : context = context,
-        strong = context.analysisOptions.strongMode,
-        listedPackages = new _ListedPackages(context.sourceFactory),
-        sdkBundle = context.sourceFactory.dartSdk.getLinkedBundle();
-
-  /**
-   * Return the list of linked [LinkedPubPackage]s that can be provided at this
-   * time for a subset of the packages used by the [context].
-   */
-  List<LinkedPubPackage> getLinkedBundles() {
-//    Stopwatch timer = new Stopwatch()..start();
-
-    if (sdkBundle == null) {
-      return const <LinkedPubPackage>[];
-    }
-
-    Map<PubPackage, PackageBundle> unlinkedBundles =
-        manager.getUnlinkedBundles(context);
-
-    // TODO(scheglov) remove debug output after optimizing
-//    print('LOADED ${unlinkedBundles.length} unlinked bundles'
-//        ' in ${timer.elapsedMilliseconds} ms');
-//    timer..reset();
-
-    // If no unlinked bundles, there is nothing we can try to link.
-    if (unlinkedBundles.isEmpty) {
-      return const <LinkedPubPackage>[];
-    }
-
-    // Create nodes for packages.
-    unlinkedBundles.forEach((package, unlinked) {
-      _LinkNode node = new _LinkNode(this, package, unlinked);
-      nodes.add(node);
-      packageToNode[package.name] = node;
-    });
-
-    // Compute transitive dependencies, mark some nodes as failed.
-    for (_LinkNode node in nodes) {
-      node.computeTransitiveDependencies();
-    }
-
-    // Attempt to read existing linked bundles.
-    for (_LinkNode node in nodes) {
-      _readLinked(node);
-    }
-
-    // Link new packages, if allowed.
-    if (manager.allowLinking) {
-      _link();
-    }
-
-    // Create successfully linked packages.
-    List<LinkedPubPackage> linkedPackages = <LinkedPubPackage>[];
-    for (_LinkNode node in nodes) {
-      if (node.linked != null) {
-        linkedPackages.add(new LinkedPubPackage(
-            node.package, node.unlinked, node.linked, node.linkedHash));
-      }
-    }
-
-    // TODO(scheglov) remove debug output after optimizing
-//    print('LINKED ${linkedPackages.length} bundles'
-//        ' in ${timer.elapsedMilliseconds} ms');
-
-    // Done.
-    return linkedPackages;
-  }
-
-  String _getDeclaredVariable(String name) {
-    return context.declaredVariables.get(name);
-  }
-
-  /**
-   * Return the name of the file for a linked bundle, in strong or spec mode.
-   */
-  String _getLinkedName(String hash) {
-    if (strong) {
-      return 'linked_$hash.ds';
-    } else {
-      return 'linked_spec_$hash.ds';
-    }
-  }
-
-  void _link() {
-    // Fill the store with bundles.
-    // Append the linked SDK bundle.
-    // Append unlinked and (if read from a cache) linked package bundles.
-    SummaryDataStore store = new SummaryDataStore(const <String>[]);
-    store.addBundle(null, sdkBundle);
-    for (_LinkNode node in nodes) {
-      store.addBundle(null, node.unlinked);
-      if (node.linked != null) {
-        store.addBundle(null, node.linked);
-      }
-    }
-
-    // Prepare URIs to link.
-    Map<String, _LinkNode> uriToNode = <String, _LinkNode>{};
-    for (_LinkNode node in nodes) {
-      if (!node.isReady) {
-        for (String uri in node.unlinked.unlinkedUnitUris) {
-          uriToNode[uri] = node;
-        }
-      }
-    }
-    Set<String> libraryUris = uriToNode.keys.toSet();
-
-    // Perform linking.
-    Map<String, LinkedLibraryBuilder> linkedLibraries =
-        link(libraryUris, (String uri) {
-      return store.linkedMap[uri];
-    }, (String uri) {
-      return store.unlinkedMap[uri];
-    }, _getDeclaredVariable, strong);
-
-    // Assemble newly linked bundles.
-    for (_LinkNode node in nodes) {
-      if (!node.isReady) {
-        PackageBundleAssembler assembler = new PackageBundleAssembler();
-        linkedLibraries.forEach((uri, linkedLibrary) {
-          if (identical(uriToNode[uri], node)) {
-            assembler.addLinkedLibrary(uri, linkedLibrary);
-          }
-        });
-        List<int> bytes = assembler.assemble().toBuffer();
-        node.linkedNewBytes = bytes;
-        node.linked = new PackageBundle.fromBuffer(bytes);
-      }
-    }
-
-    // Write newly linked bundles.
-    for (_LinkNode node in nodes) {
-      _writeLinked(node);
-    }
-  }
-
-  /**
-   * Attempt to find the linked bundle that corresponds to the given [node]
-   * with all its transitive dependencies and put it into [_LinkNode.linked].
-   */
-  void _readLinked(_LinkNode node) {
-    String hash = node.linkedHash;
-    if (hash != null) {
-      String fileName = _getLinkedName(hash);
-      File file = node.package.folder.getChildAssumingFile(fileName);
-      // Try to find in the cache.
-      PackageBundle linked = manager.linkedBundleMap[file.path];
-      if (linked != null) {
-        node.linked = linked;
-        return;
-      }
-      // Try to read from the file system.
-      if (file.exists) {
-        try {
-          List<int> bytes = file.readAsBytesSync();
-          linked = new PackageBundle.fromBuffer(bytes);
-          manager.linkedBundleMap[file.path] = linked;
-          node.linked = linked;
-        } on FileSystemException {
-          // Ignore file system exceptions.
-        }
-      }
-    }
-  }
-
-  /**
-   * If a new linked bundle was linked for the given [node], write the bundle
-   * into the memory cache and the file system.
-   */
-  void _writeLinked(_LinkNode node) {
-    String hash = node.linkedHash;
-    if (hash != null && node.linkedNewBytes != null) {
-      String fileName = _getLinkedName(hash);
-      File file = node.package.folder.getChildAssumingFile(fileName);
-      manager.linkedBundleMap[file.path] = node.linked;
-      manager._writeAtomic(node.package.folder, fileName, node.linkedNewBytes);
-    }
-  }
-}
-
-/**
- * Information about a package to link.
- */
-class _LinkNode {
-  final _ContextLinker linker;
-  final PubPackage package;
-  final PackageBundle unlinked;
-
-  bool failed = false;
-  Set<_LinkNode> transitiveDependencies;
-
-  List<_LinkNode> _dependencies;
-  String _linkedHash;
-
-  List<int> linkedNewBytes;
-  PackageBundle linked;
-
-  _LinkNode(this.linker, this.package, this.unlinked);
-
-  /**
-   * Retrieve the dependencies of this node.
-   */
-  List<_LinkNode> get dependencies {
-    if (_dependencies == null) {
-      Set<_LinkNode> dependencies = new Set<_LinkNode>();
-
-      void appendDependency(String uriStr) {
-        Uri uri = Uri.parse(uriStr);
-        if (!uri.hasScheme) {
-          // A relative path in this package, skip it.
-        } else if (uri.scheme == 'dart') {
-          // Dependency on the SDK is implicit and always added.
-          // The SDK linked bundle is precomputed before linking packages.
-        } else if (uriStr.startsWith('package:')) {
-          String package = PubSummaryManager.getPackageName(uriStr);
-          _LinkNode packageNode = linker.packageToNode[package];
-          if (packageNode == null && linker.listedPackages.isListed(uriStr)) {
-            failed = true;
-          }
-          if (packageNode != null) {
-            dependencies.add(packageNode);
-          }
-        } else {
-          failed = true;
-        }
-      }
-
-      for (UnlinkedUnit unit in unlinked.unlinkedUnits) {
-        for (UnlinkedImport import in unit.imports) {
-          if (!import.isImplicit) {
-            appendDependency(import.uri);
-          }
-        }
-        for (UnlinkedExportPublic export in unit.publicNamespace.exports) {
-          appendDependency(export.uri);
-        }
-      }
-
-      _dependencies = dependencies.toList();
-    }
-    return _dependencies;
-  }
-
-  /**
-   * Return `true` is the node is ready - has the linked bundle or failed (does
-   * not have all required dependencies).
-   */
-  bool get isReady => linked != null || failed;
-
-  /**
-   * Return the hash string that corresponds to this linked bundle in the
-   * context of its SDK bundle and transitive dependencies.  Return `null` if
-   * the hash computation fails, because for example the full transitive
-   * dependencies cannot computed.
-   */
-  String get linkedHash {
-    if (_linkedHash == null && transitiveDependencies != null) {
-      ApiSignature signature = new ApiSignature();
-      // Add all unlinked API signatures.
-      List<String> signatures = <String>[];
-      signatures.add(linker.sdkBundle.apiSignature);
-      transitiveDependencies
-          .map((node) => node.unlinked.apiSignature)
-          .forEach(signatures.add);
-      signatures.sort();
-      signatures.forEach(signature.addString);
-      // Combine into a single hash.
-      appendDeclaredVariables(signature);
-      _linkedHash = signature.toHex();
-    }
-    return _linkedHash;
-  }
-
-  /**
-   * Append names and values of all referenced declared variables (even the
-   * ones without actually declared values) to the given [signature].
-   */
-  void appendDeclaredVariables(ApiSignature signature) {
-    Set<String> nameSet = new Set<String>();
-    for (_LinkNode node in transitiveDependencies) {
-      for (UnlinkedUnit unit in node.unlinked.unlinkedUnits) {
-        for (UnlinkedImport import in unit.imports) {
-          for (UnlinkedConfiguration configuration in import.configurations) {
-            nameSet.add(configuration.name);
-          }
-        }
-        for (UnlinkedExportPublic export in unit.publicNamespace.exports) {
-          for (UnlinkedConfiguration configuration in export.configurations) {
-            nameSet.add(configuration.name);
-          }
-        }
-      }
-    }
-    List<String> sortedNameList = nameSet.toList()..sort();
-    signature.addInt(sortedNameList.length);
-    for (String name in sortedNameList) {
-      signature.addString(name);
-      signature.addString(linker._getDeclaredVariable(name) ?? '');
-    }
-  }
-
-  /**
-   * Compute the set of existing transitive dependencies for this node.
-   * If any `package` dependency cannot be resolved, but it is one of the
-   * [listedPackages] then set [failed] to `true`.
-   * Only [unlinked] is used, so this method can be called before linking.
-   */
-  void computeTransitiveDependencies() {
-    if (transitiveDependencies == null) {
-      transitiveDependencies = new Set<_LinkNode>();
-
-      void appendDependencies(_LinkNode node) {
-        if (transitiveDependencies.add(node)) {
-          node.dependencies.forEach(appendDependencies);
-        }
-      }
-
-      appendDependencies(this);
-      if (transitiveDependencies.any((node) => node.failed)) {
-        failed = true;
-      }
-    }
-  }
-
-  @override
-  String toString() => package.toString();
-}
-
-/**
- * The set of package names that are listed in the `.packages` file of a
- * context.  These are the only packages, references to which can
- * be possibly resolved in the context.  Nodes that reference a `package:` URI
- * without the unlinked bundle, so without the node, cannot be linked.
- */
-class _ListedPackages {
-  final Set<String> names = new Set<String>();
-
-  _ListedPackages(SourceFactory sourceFactory) {
-    Map<String, List<Folder>> map = sourceFactory.packageMap;
-    if (map != null) {
-      names.addAll(map.keys);
-    }
-  }
-
-  /**
-   * Check whether the given `package:` [uri] is listed in the package map.
-   */
-  bool isListed(String uri) {
-    String package = PubSummaryManager.getPackageName(uri);
-    return names.contains(package);
-  }
-}
diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
index 68c3017..aeec4b4 100644
--- a/pkg/analyzer/lib/src/summary/resynthesize.dart
+++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
@@ -1508,6 +1508,15 @@
         unlinkedUnit,
         unlinkedPart,
         unitSource.shortName);
+
+    {
+      List<int> lineStarts = unlinkedUnit.lineStarts;
+      if (lineStarts.isEmpty) {
+        lineStarts = const <int>[0];
+      }
+      unit.lineInfo = new LineInfo(lineStarts);
+    }
+
     for (EntityRef t in linkedUnit.types) {
       linkedTypeMap[t.slot] = t;
     }
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index 32a8bf4..5e57f8e 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -1037,6 +1037,11 @@
   static const String PARSED_UNIT_INPUT_NAME = 'PARSED_UNIT_INPUT_NAME';
 
   /**
+   * The name of the input whose value is the source line info.
+   */
+  static const String LINE_INFO_INPUT_NAME = 'LINE_INFO_INPUT_NAME';
+
+  /**
    * The task descriptor describing this kind of task.
    */
   static final TaskDescriptor DESCRIPTOR = new TaskDescriptor(
@@ -1068,6 +1073,7 @@
     LibrarySpecificUnit librarySpecificUnit = target;
     Source source = getRequiredSource();
     CompilationUnit unit = getRequiredInput(PARSED_UNIT_INPUT_NAME);
+    LineInfo lineInfo = getRequiredInput(LINE_INFO_INPUT_NAME);
     //
     // Try to get the existing CompilationUnitElement.
     //
@@ -1091,6 +1097,7 @@
       CompilationUnitBuilder builder = new CompilationUnitBuilder();
       element = builder.buildCompilationUnit(
           source, unit, librarySpecificUnit.library);
+      (element as CompilationUnitElementImpl).lineInfo = lineInfo;
     } else {
       new DeclarationResolver().resolve(unit, element);
     }
@@ -1118,7 +1125,8 @@
   static Map<String, TaskInput> buildInputs(AnalysisTarget target) {
     LibrarySpecificUnit unit = target;
     return <String, TaskInput>{
-      PARSED_UNIT_INPUT_NAME: PARSED_UNIT.of(unit.unit, flushOnAccess: true)
+      PARSED_UNIT_INPUT_NAME: PARSED_UNIT.of(unit.unit, flushOnAccess: true),
+      LINE_INFO_INPUT_NAME: LINE_INFO.of(unit.unit)
     };
   }
 
diff --git a/pkg/analyzer/test/generated/gn_test.dart b/pkg/analyzer/test/generated/gn_test.dart
index 060285a8..71bcb6b7 100644
--- a/pkg/analyzer/test/generated/gn_test.dart
+++ b/pkg/analyzer/test/generated/gn_test.dart
@@ -34,7 +34,7 @@
         _p('/workspace/a/source'));
     _setUp();
     _assertResolve(
-        'package:flutter/code.dart', '/workspace/a/source/code.dart');
+        'package:flutter/code.dart', _p('/workspace/a/source/code.dart'));
   }
 
   void test_resolveDoesNotExist() {
@@ -52,6 +52,23 @@
         resolver.resolveAbsolute(Uri.parse('package:bogus/code.dart')), null);
   }
 
+  void test_resolveAddToCache() {
+    _addResources([
+      '/workspace/.jiri_root/',
+      '/workspace/out/debug-x87_128/gen/dart.sources/',
+      '/workspace/some/code/',
+      '/workspace/a/source/code.dart',
+    ]);
+    _setUp();
+    expect(
+        resolver.resolveAbsolute(Uri.parse('package:flutter/code.dart')), null);
+    provider.newFile(
+        _p('/workspace/out/debug-x87_128/gen/dart.sources/flutter'),
+        _p('/workspace/a/source'));
+    _assertResolve(
+        'package:flutter/code.dart', _p('/workspace/a/source/code.dart'));
+  }
+
   void _addResources(List<String> paths) {
     for (String path in paths) {
       if (path.endsWith('/')) {
@@ -111,14 +128,14 @@
     provider.newFolder(_p('/workspace/out/debug-x87_128/gen/dart.sources'));
     provider.newFile(
         _p('/workspace/out/debug-x87_128/gen/dart.sources/flutter'),
-        '/path/to/source');
+        _p('/path/to/source'));
     provider.newFolder(_p('/workspace/some/code'));
     GnWorkspace workspace =
         GnWorkspace.find(provider, _p('/workspace/some/code'));
     expect(workspace, isNotNull);
     expect(workspace.root, _p('/workspace'));
-    expect(workspace.packages.length, 1);
-    expect(workspace.packages['flutter'], '/path/to/source');
+    expect(workspace.packageMap.length, 1);
+    expect(workspace.packageMap['flutter'][0].path, _p('/path/to/source'));
   }
 }
 
diff --git a/pkg/analyzer/test/generated/parser_fasta_test.dart b/pkg/analyzer/test/generated/parser_fasta_test.dart
index 9f2a03e..988fafa 100644
--- a/pkg/analyzer/test/generated/parser_fasta_test.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_test.dart
@@ -5,14 +5,15 @@
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/error/error.dart';
+import 'package:analyzer/src/generated/parser.dart' as analyzer;
 import 'package:front_end/src/fasta/analyzer/ast_builder.dart';
 import 'package:front_end/src/fasta/analyzer/element_store.dart';
 import 'package:front_end/src/fasta/builder/scope.dart';
 import 'package:front_end/src/fasta/kernel/kernel_builder.dart';
 import 'package:front_end/src/fasta/kernel/kernel_library_builder.dart';
-import 'package:front_end/src/fasta/parser/parser.dart';
+import 'package:front_end/src/fasta/parser/parser.dart' as fasta;
 import 'package:front_end/src/fasta/scanner/string_scanner.dart';
-import 'package:front_end/src/fasta/scanner/token.dart';
+import 'package:front_end/src/fasta/scanner/token.dart' as fasta;
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -21,13 +22,14 @@
 main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(ComplexParserTest_Fasta);
+    defineReflectiveTests(TopLevelParserTest_Fasta);
   });
 }
 
 /**
  * Type of the "parse..." methods defined in the Fasta parser.
  */
-typedef Token ParseFunction(Token token);
+typedef fasta.Token ParseFunction(fasta.Token token);
 
 /**
  * Proxy implementation of [Builder] used by Fasta parser tests.
@@ -247,7 +249,11 @@
  * Implementation of [AbstractParserTestCase] specialized for testing the
  * Fasta parser.
  */
-class FastaParserTestCase implements AbstractParserTestCase {
+class FastaParserTestCase extends Object
+    with ParserTestHelpers
+    implements AbstractParserTestCase {
+  ParserProxy _parserProxy;
+
   @override
   set enableGenericMethodComments(bool value) {
     if (value == true) {
@@ -267,10 +273,33 @@
   }
 
   @override
+  set enableUriInPartOf(bool value) {
+    if (value == true) {
+      // TODO(paulberry,ahe): URIs in "part of" declarations are not supported
+      // by Fasta.
+      throw new UnimplementedError();
+    }
+  }
+
+  @override
+  analyzer.Parser get parser => _parserProxy;
+
+  @override
+  void assertNoErrors() {
+    // TODO(paulberry): implement assertNoErrors
+  }
+
+  @override
+  void createParser(String content) {
+    var scanner = new StringScanner(content);
+    _parserProxy = new ParserProxy(scanner.tokenize());
+  }
+
+  @override
   CompilationUnit parseCompilationUnit(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
-    // TODO(paulberry): implement parseCompilationUnit
-    throw new UnimplementedError();
+    return _runParser(source, (parser) => parser.parseUnit, errorCodes)
+        as CompilationUnit;
   }
 
   @override
@@ -281,37 +310,47 @@
   }
 
   @override
+  CompilationUnit parseDirectives(String source,
+      [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
+    return _runParser(source, (parser) => parser.parseUnit, errorCodes);
+  }
+
+  @override
   Expression parseExpression(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
-    return _runParser(source, (parser) => parser.parseExpression, errorCodes);
+    return _runParser(source, (parser) => parser.parseExpression, errorCodes)
+        as Expression;
+  }
+
+  @override
+  CompilationUnitMember parseFullCompilationUnitMember() {
+    return _parserProxy._run((parser) => parser.parseTopLevelDeclaration)
+        as CompilationUnitMember;
+  }
+
+  @override
+  Directive parseFullDirective() {
+    return _parserProxy._run((parser) => parser.parseTopLevelDeclaration)
+        as Directive;
   }
 
   @override
   Statement parseStatement(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[],
       bool enableLazyAssignmentOperators]) {
-    return _runParser(source, (parser) => parser.parseStatement, errorCodes);
+    return _runParser(source, (parser) => parser.parseStatement, errorCodes)
+        as Statement;
   }
 
-  Object _runParser(String source, ParseFunction getParseFuction(Parser parser),
+  Object _runParser(
+      String source, ParseFunction getParseFunction(fasta.Parser parser),
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
     if (errorCodes.isNotEmpty) {
       // TODO(paulberry): Check that the parser generates the proper errors.
       throw new UnimplementedError();
     }
-    var scanner = new StringScanner(source);
-    var token = scanner.tokenize();
-    var library = new KernelLibraryBuilderProxy();
-    var member = new BuilderProxy();
-    var elementStore = new ElementStoreProxy();
-    var scope = new ScopeProxy();
-    var astBuilder = new AstBuilder(library, member, elementStore, scope);
-    var parser = new Parser(astBuilder);
-    var parseFunction = getParseFuction(parser);
-    var endToken = parseFunction(token);
-    expect(endToken.isEof, isTrue);
-    expect(astBuilder.stack, hasLength(1));
-    return astBuilder.pop();
+    createParser(source);
+    return _parserProxy._run(getParseFunction);
   }
 }
 
@@ -340,6 +379,65 @@
 }
 
 /**
+ * Proxy implementation of the analyzer parser, implemented in terms of the
+ * Fasta parser.
+ *
+ * This allows many of the analyzer parser tests to be run on Fasta, even if
+ * they call into the analyzer parser class directly.
+ */
+class ParserProxy implements analyzer.Parser {
+  /**
+   * The token to parse next.
+   */
+  fasta.Token _currentFastaToken;
+
+  /**
+   * The fasta parser being wrapped.
+   */
+  final fasta.Parser _fastaParser;
+
+  /**
+   * The builder which creates the analyzer AST data structures expected by the
+   * analyzer parser tests.
+   */
+  final AstBuilder _astBuilder;
+
+  /**
+   * Creates a [ParserProxy] which is prepared to begin parsing at the given
+   * Fasta token.
+   */
+  factory ParserProxy(fasta.Token startingToken) {
+    var library = new KernelLibraryBuilderProxy();
+    var member = new BuilderProxy();
+    var elementStore = new ElementStoreProxy();
+    var scope = new ScopeProxy();
+    var astBuilder = new AstBuilder(library, member, elementStore, scope);
+    return new ParserProxy._(
+        startingToken, new fasta.Parser(astBuilder), astBuilder);
+  }
+
+  ParserProxy._(this._currentFastaToken, this._fastaParser, this._astBuilder);
+
+  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+
+  @override
+  CompilationUnit parseCompilationUnit2() {
+    return _run((parser) => parser.parseUnit) as CompilationUnit;
+  }
+
+  /**
+   * Runs a single parser function, and returns the result as an analyzer AST.
+   */
+  Object _run(ParseFunction getParseFunction(fasta.Parser parser)) {
+    var parseFunction = getParseFunction(_fastaParser);
+    _currentFastaToken = parseFunction(_currentFastaToken);
+    expect(_currentFastaToken.isEof, isTrue);
+    expect(_astBuilder.stack, hasLength(1));
+    return _astBuilder.pop();
+  }
+}
+
+/**
  * Proxy implementation of [Scope] used by Fasta parser tests.
  *
  * Any name lookup request is satisfied by creating an instance of
@@ -349,8 +447,600 @@
   final _locals = <String, Builder>{};
 
   @override
+  void operator []=(String name, Builder member) {
+    _locals[name] = member;
+  }
+
+  @override
+  Scope createNestedScope({bool isModifiable: true}) {
+    return new Scope(<String, Builder>{}, this, isModifiable: isModifiable);
+  }
+
+  @override
   Builder lookup(String name, int charOffset, Uri fileUri) =>
       _locals.putIfAbsent(name, () => new BuilderProxy());
 
   noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
 }
+
+/**
+ * Tests of the fasta parser based on [TopLevelParserTestMixin].
+ */
+@reflectiveTest
+class TopLevelParserTest_Fasta extends FastaParserTestCase
+    with TopLevelParserTestMixin {
+  @override
+  @failingTest
+  void test_function_literal_allowed_at_toplevel() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super.test_function_literal_allowed_at_toplevel();
+  }
+
+  @override
+  @failingTest
+  void
+      test_function_literal_allowed_in_ArgumentList_in_ConstructorFieldInitializer() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super
+        .test_function_literal_allowed_in_ArgumentList_in_ConstructorFieldInitializer();
+  }
+
+  @override
+  @failingTest
+  void
+      test_function_literal_allowed_in_IndexExpression_in_ConstructorFieldInitializer() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super
+        .test_function_literal_allowed_in_IndexExpression_in_ConstructorFieldInitializer();
+  }
+
+  @override
+  @failingTest
+  void
+      test_function_literal_allowed_in_ListLiteral_in_ConstructorFieldInitializer() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super
+        .test_function_literal_allowed_in_ListLiteral_in_ConstructorFieldInitializer();
+  }
+
+  @override
+  @failingTest
+  void
+      test_function_literal_allowed_in_MapLiteral_in_ConstructorFieldInitializer() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super
+        .test_function_literal_allowed_in_MapLiteral_in_ConstructorFieldInitializer();
+  }
+
+  @override
+  @failingTest
+  void
+      test_function_literal_allowed_in_ParenthesizedExpression_in_ConstructorFieldInitializer() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super
+        .test_function_literal_allowed_in_ParenthesizedExpression_in_ConstructorFieldInitializer();
+  }
+
+  @override
+  @failingTest
+  void
+      test_function_literal_allowed_in_StringInterpolation_in_ConstructorFieldInitializer() {
+    // TODO(paulberry): Unhandled event: UnnamedFunction
+    super
+        .test_function_literal_allowed_in_StringInterpolation_in_ConstructorFieldInitializer();
+  }
+
+  @override
+  @failingTest
+  void test_parseClassDeclaration_abstract() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseClassDeclaration_abstract();
+  }
+
+  @override
+  @failingTest
+  void test_parseClassDeclaration_native() {
+    // TODO(paulberry): TODO(paulberry,ahe): Fasta parser doesn't appear to support "native" syntax yet.
+    super.test_parseClassDeclaration_native();
+  }
+
+  @override
+  @failingTest
+  void test_parseClassDeclaration_nonEmpty() {
+    // TODO(paulberry): Unhandled event: NoFieldInitializer
+    super.test_parseClassDeclaration_nonEmpty();
+  }
+
+  @override
+  @failingTest
+  void test_parseClassDeclaration_typeAlias_withB() {
+    // TODO(paulberry,ahe): capture `with` token.
+    super.test_parseClassDeclaration_typeAlias_withB();
+  }
+
+  @override
+  @failingTest
+  void test_parseClassDeclaration_typeParameters() {
+    // TODO(paulberry): Unhandled event: TypeVariable
+    super.test_parseClassDeclaration_typeParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_abstractAsPrefix_parameterized() {
+    // TODO(paulberry): Unhandled event: Qualified
+    super.test_parseCompilationUnit_abstractAsPrefix_parameterized();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_builtIn_asFunctionName() {
+    // TODO(paulberry,ahe): Fasta's parser is confused when one of the built-in
+    // identifiers `export`, `import`, `library`, `part`, or `typedef` appears
+    // as the name of a top level function with an implicit return type.
+    super.test_parseCompilationUnit_builtIn_asFunctionName();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_empty() {
+    // TODO(paulberry): No objects placed on stack
+    super.test_parseCompilationUnit_empty();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_exportAsPrefix() {
+    // TODO(paulberry): TODO(paulberry,ahe): Fasta parser doesn't appear to handle this case correctly.
+    super.test_parseCompilationUnit_exportAsPrefix();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_exportAsPrefix_parameterized() {
+    // TODO(paulberry): Unhandled event: TypeArguments
+    super.test_parseCompilationUnit_exportAsPrefix_parameterized();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_operatorAsPrefix_parameterized() {
+    // TODO(paulberry): Unhandled event: Qualified
+    super.test_parseCompilationUnit_operatorAsPrefix_parameterized();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_script() {
+    // TODO(paulberry): No objects placed on stack
+    super.test_parseCompilationUnit_script();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnit_typedefAsPrefix() {
+    // TODO(paulberry): TODO(paulberry,ahe): Fasta parser doesn't appear to handle this case correctly.
+    super.test_parseCompilationUnit_typedefAsPrefix();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_abstractAsPrefix() {
+    // TODO(paulberry): Unhandled event: Qualified
+    super.test_parseCompilationUnitMember_abstractAsPrefix();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_classTypeAlias() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseCompilationUnitMember_classTypeAlias();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_constVariable() {
+    // TODO(paulberry): Unhandled event: FieldInitializer
+    super.test_parseCompilationUnitMember_constVariable();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_finalVariable() {
+    // TODO(paulberry): Unhandled event: FieldInitializer
+    super.test_parseCompilationUnitMember_finalVariable();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_function_external_noType() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseCompilationUnitMember_function_external_noType();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_function_external_type() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseCompilationUnitMember_function_external_type();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_function_generic_noReturnType() {
+    // TODO(paulberry): Unhandled event: TypeVariable
+    super.test_parseCompilationUnitMember_function_generic_noReturnType();
+  }
+
+  @override
+  @failingTest
+  void
+      test_parseCompilationUnitMember_function_generic_noReturnType_annotated() {
+    // TODO(paulberry,ahe): Fasta doesn't appear to support annotated type
+    // parameters.
+    super
+        .test_parseCompilationUnitMember_function_generic_noReturnType_annotated();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_function_generic_returnType() {
+    // TODO(paulberry): Unhandled event: TypeVariable
+    super.test_parseCompilationUnitMember_function_generic_returnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_function_generic_void() {
+    // TODO(paulberry): Unhandled event: VoidKeyword
+    super.test_parseCompilationUnitMember_function_generic_void();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_function_void() {
+    // TODO(paulberry): Unhandled event: VoidKeyword
+    super.test_parseCompilationUnitMember_function_void();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_getter_external_noType() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseCompilationUnitMember_getter_external_noType();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_getter_external_type() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseCompilationUnitMember_getter_external_type();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_setter_external_noType() {
+    // TODO(paulberry): Implement AstBuilder.handleModifier
+    super.test_parseCompilationUnitMember_setter_external_noType();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_setter_external_type() {
+    // TODO(paulberry): Unhandled event: VoidKeyword
+    super.test_parseCompilationUnitMember_setter_external_type();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_setter_type() {
+    // TODO(paulberry): Unhandled event: VoidKeyword
+    super.test_parseCompilationUnitMember_setter_type();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_typeAlias_abstract() {
+    // TODO(paulberry,ahe): Capture `=` token
+    super.test_parseCompilationUnitMember_typeAlias_abstract();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_typeAlias_generic() {
+    // TODO(paulberry): Unhandled event: TypeVariable
+    super.test_parseCompilationUnitMember_typeAlias_generic();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_typeAlias_implements() {
+    // TODO(paulberry,ahe): Capture `=` token
+    super.test_parseCompilationUnitMember_typeAlias_implements();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_typeAlias_noImplements() {
+    // TODO(paulberry,ahe): Capture `=` token
+    super.test_parseCompilationUnitMember_typeAlias_noImplements();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_typedef() {
+    // TODO(paulberry): Unhandled event: FunctionTypeAlias
+    super.test_parseCompilationUnitMember_typedef();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_variable() {
+    // TODO(paulberry): Unhandled event: FieldInitializer
+    super.test_parseCompilationUnitMember_variable();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_variableGet() {
+    // TODO(paulberry): Unhandled event: FieldInitializer
+    super.test_parseCompilationUnitMember_variableGet();
+  }
+
+  @override
+  @failingTest
+  void test_parseCompilationUnitMember_variableSet() {
+    // TODO(paulberry): Unhandled event: FieldInitializer
+    super.test_parseCompilationUnitMember_variableSet();
+  }
+
+  @override
+  @failingTest
+  void test_parseDirectives_complete() {
+    // TODO(paulberry,ahe): Fasta doesn't support script tags yet.
+    super.test_parseDirectives_complete();
+  }
+
+  @override
+  @failingTest
+  void test_parseDirectives_empty() {
+    // TODO(paulberry): No objects placed on stack
+    super.test_parseDirectives_empty();
+  }
+
+  @override
+  @failingTest
+  void test_parseDirectives_mixed() {
+    // TODO(paulberry,ahe): This test verifies the analyzer parser's ability to
+    // stop parsing as soon as the first non-directive is encountered; this is
+    // useful for quickly traversing an import graph.  Consider adding a similar
+    // ability to Fasta's parser.
+    super.test_parseDirectives_mixed();
+  }
+
+  @override
+  @failingTest
+  void test_parseDirectives_script() {
+    // TODO(paulberry): No objects placed on stack
+    super.test_parseDirectives_script();
+  }
+
+  @override
+  @failingTest
+  void test_parseEnumDeclaration_one() {
+    // TODO(paulberry): Unhandled event: Enum
+    super.test_parseEnumDeclaration_one();
+  }
+
+  @override
+  @failingTest
+  void test_parseEnumDeclaration_trailingComma() {
+    // TODO(paulberry): Unhandled event: Enum
+    super.test_parseEnumDeclaration_trailingComma();
+  }
+
+  @override
+  @failingTest
+  void test_parseEnumDeclaration_two() {
+    // TODO(paulberry): Unhandled event: Enum
+    super.test_parseEnumDeclaration_two();
+  }
+
+  @override
+  @failingTest
+  void test_parseExportDirective_configuration_multiple() {
+    // TODO(paulberry): Implement endConditionalUri
+    super.test_parseExportDirective_configuration_multiple();
+  }
+
+  @override
+  @failingTest
+  void test_parseExportDirective_configuration_single() {
+    // TODO(paulberry): Implement endConditionalUri
+    super.test_parseExportDirective_configuration_single();
+  }
+
+  @override
+  @failingTest
+  void test_parseFunctionDeclaration_function() {
+    // TODO(paulberry): handle doc comments
+    super.test_parseFunctionDeclaration_function();
+  }
+
+  @override
+  @failingTest
+  void test_parseFunctionDeclaration_functionWithTypeParameters() {
+    // TODO(paulberry): Unhandled event: TypeVariable
+    super.test_parseFunctionDeclaration_functionWithTypeParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseFunctionDeclaration_functionWithTypeParameters_comment() {
+    // TODO(paulberry,ahe): generic method comment syntax is not supported by
+    // Fasta.
+    super.test_parseFunctionDeclaration_functionWithTypeParameters_comment();
+  }
+
+  @override
+  @failingTest
+  void test_parseFunctionDeclaration_getter() {
+    // TODO(paulberry): handle doc comments
+    super.test_parseFunctionDeclaration_getter();
+  }
+
+  @override
+  @failingTest
+  void test_parseFunctionDeclaration_setter() {
+    // TODO(paulberry): handle doc comments
+    super.test_parseFunctionDeclaration_setter();
+  }
+
+  @override
+  @failingTest
+  void test_parseImportDirective_configuration_multiple() {
+    // TODO(paulberry): Implement endConditionalUri
+    super.test_parseImportDirective_configuration_multiple();
+  }
+
+  @override
+  @failingTest
+  void test_parseImportDirective_configuration_single() {
+    // TODO(paulberry): Implement endConditionalUri
+    super.test_parseImportDirective_configuration_single();
+  }
+
+  @override
+  @failingTest
+  void test_parsePartOfDirective_name() {
+    // TODO(paulberry,ahe): Thes test verifies that even if URIs in "part of"
+    // declarations are enabled, a construct of the form "part of identifier;"
+    // is still properly handled.  URIs in "part of" declarations are not
+    // supported by Fasta yet.
+    super.test_parsePartOfDirective_name();
+  }
+
+  @override
+  @failingTest
+  void test_parsePartOfDirective_uri() {
+    // TODO(paulberry,ahe): URIs in "part of" declarations are not supported by
+    // Fasta.
+    super.test_parsePartOfDirective_uri();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_function_noParameters() {
+    // TODO(paulberry): Unhandled event: FunctionTypeAlias
+    super.test_parseTypeAlias_function_noParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_function_noReturnType() {
+    // TODO(paulberry): Unhandled event: FunctionTypeAlias
+    super.test_parseTypeAlias_function_noReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_function_parameterizedReturnType() {
+    // TODO(paulberry): Unhandled event: TypeArguments
+    super.test_parseTypeAlias_function_parameterizedReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_function_parameters() {
+    // TODO(paulberry): Unhandled event: FunctionTypeAlias
+    super.test_parseTypeAlias_function_parameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_function_typeParameters() {
+    // TODO(paulberry): Unhandled event: TypeVariable
+    super.test_parseTypeAlias_function_typeParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_function_voidReturnType() {
+    // TODO(paulberry): Unhandled event: VoidKeyword
+    super.test_parseTypeAlias_function_voidReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_noParameters() {
+    super.test_parseTypeAlias_genericFunction_noParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_noReturnType() {
+    super.test_parseTypeAlias_genericFunction_noReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_parameterizedReturnType() {
+    super.test_parseTypeAlias_genericFunction_parameterizedReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_parameters() {
+    super.test_parseTypeAlias_genericFunction_parameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_typeParameters() {
+    super.test_parseTypeAlias_genericFunction_typeParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_typeParameters_noParameters() {
+    super.test_parseTypeAlias_genericFunction_typeParameters_noParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_typeParameters_noReturnType() {
+    super.test_parseTypeAlias_genericFunction_typeParameters_noReturnType();
+  }
+
+  @override
+  @failingTest
+  void
+      test_parseTypeAlias_genericFunction_typeParameters_parameterizedReturnType() {
+    super
+        .test_parseTypeAlias_genericFunction_typeParameters_parameterizedReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_typeParameters_parameters() {
+    super.test_parseTypeAlias_genericFunction_typeParameters_parameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_typeParameters_typeParameters() {
+    super.test_parseTypeAlias_genericFunction_typeParameters_typeParameters();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_typeParameters_voidReturnType() {
+    super.test_parseTypeAlias_genericFunction_typeParameters_voidReturnType();
+  }
+
+  @override
+  @failingTest
+  void test_parseTypeAlias_genericFunction_voidReturnType() {
+    super.test_parseTypeAlias_genericFunction_voidReturnType();
+  }
+}
diff --git a/pkg/analyzer/test/generated/parser_test.dart b/pkg/analyzer/test/generated/parser_test.dart
index 914abd0..34aef35 100644
--- a/pkg/analyzer/test/generated/parser_test.dart
+++ b/pkg/analyzer/test/generated/parser_test.dart
@@ -30,6 +30,7 @@
     defineReflectiveTests(NonErrorParserTest);
     defineReflectiveTests(RecoveryParserTest);
     defineReflectiveTests(SimpleParserTest);
+    defineReflectiveTests(TopLevelParserTest);
   });
 }
 
@@ -37,11 +38,34 @@
  * Abstract base class for parser tests, which does not make assumptions about
  * which parser is used.
  */
-abstract class AbstractParserTestCase {
+abstract class AbstractParserTestCase implements ParserTestHelpers {
   void set enableGenericMethodComments(bool value);
 
   void set enableNnbd(bool value);
 
+  /**
+   * Set a flag indicating whether the parser is to parse part-of directives
+   * that specify a URI rather than a library name.
+   */
+  void set enableUriInPartOf(bool value);
+
+  /**
+   * Get the parser used by the test.
+   *
+   * Caller must first invoke [createParser].
+   */
+  Parser get parser;
+
+  /**
+   * Asserts that no errors occurred during parsing.
+   */
+  void assertNoErrors();
+
+  /**
+   * Prepares to parse using tokens scanned from the given [content] string.
+   */
+  void createParser(String content);
+
   CompilationUnit parseCompilationUnit(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]);
 
@@ -49,9 +73,33 @@
   CompilationUnit parseCompilationUnitWithOptions(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]);
 
+  /**
+   * Parse the given source as a compilation unit.
+   *
+   * @param source the source to be parsed
+   * @param errorCodes the error codes of the errors that are expected to be found
+   * @return the compilation unit that was parsed
+   * @throws Exception if the source could not be parsed, if the compilation errors in the source do
+   *           not match those that are expected, or if the result would have been `null`
+   */
+  CompilationUnit parseDirectives(String source,
+      [List<ErrorCode> errorCodes = const <ErrorCode>[]]);
+
   Expression parseExpression(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[]]);
 
+  /**
+   * Parses a single top level member of a compilation unit (other than a
+   * directive), including any comment and/or metadata that precedes it.
+   */
+  CompilationUnitMember parseFullCompilationUnitMember();
+
+  /**
+   * Parses a single top level directive, including any comment and/or metadata
+   * that precedes it.
+   */
+  Directive parseFullDirective();
+
   Statement parseStatement(String source,
       [List<ErrorCode> errorCodes = const <ErrorCode>[],
       bool enableLazyAssignmentOperators]);
@@ -1622,6 +1670,13 @@
     listener.assertErrorsWithCodes([ParserErrorCode.INVALID_COMMENT_REFERENCE]);
   }
 
+  void test_invalidConstructorName_with() {
+    createParser("C.with();");
+    ClassMember member = parser.parseClassMember('C');
+    expectNotNullIfNoErrors(member);
+    listener.assertErrorsWithCodes([ParserErrorCode.INVALID_CONSTRUCTOR_NAME]);
+  }
+
   void test_invalidHexEscape_invalidDigit() {
     createParser("'\\x0 a'");
     StringLiteral literal = parser.parseStringLiteral();
@@ -2942,7 +2997,9 @@
  * Implementation of [AbstractParserTestCase] specialized for testing the
  * analyzer parser.
  */
-class ParserTestCase extends EngineTestCase implements AbstractParserTestCase {
+class ParserTestCase extends EngineTestCase
+    with ParserTestHelpers
+    implements AbstractParserTestCase {
   /**
    * A flag indicating whether parser is to parse function bodies.
    */
@@ -2996,6 +3053,11 @@
    */
   Parser parser;
 
+  @override
+  void assertNoErrors() {
+    listener.assertNoErrors();
+  }
+
   /**
    * Create the [parser] and [listener] used by a test. The [parser] will be
    * prepared to parse the tokens scanned from the given [content].
@@ -3081,6 +3143,17 @@
     return unit;
   }
 
+  @override
+  CompilationUnit parseDirectives(String source,
+      [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
+    createParser(source);
+    CompilationUnit unit = parser.parseDirectives2();
+    expect(unit, isNotNull);
+    expect(unit.declarations, hasLength(0));
+    listener.assertErrorsWithCodes(errorCodes);
+    return unit;
+  }
+
   /**
    * Parse the given source as an expression.
    *
@@ -3106,10 +3179,7 @@
   CompilationUnitMember parseFullCompilationUnitMember() =>
       parser.parseCompilationUnitMember(parser.parseCommentAndMetadata());
 
-  /**
-   * Parses a single top level directive, including any comment and/or metadata
-   * that precedes it.
-   */
+  @override
   Directive parseFullDirective() =>
       parser.parseDirective(parser.parseCommentAndMetadata());
 
@@ -3176,6 +3246,29 @@
 }
 
 /**
+ * Helper methods that aid in parser tests.
+ *
+ * Intended to be mixed in to parser test case classes.
+ */
+class ParserTestHelpers {
+  void expectCommentText(Comment comment, String expectedText) {
+    expect(comment.beginToken, same(comment.endToken));
+    expect(comment.beginToken.lexeme, expectedText);
+  }
+
+  void expectDottedName(DottedName name, List<String> expectedComponents) {
+    int count = expectedComponents.length;
+    NodeList<SimpleIdentifier> components = name.components;
+    expect(components, hasLength(count));
+    for (int i = 0; i < count; i++) {
+      SimpleIdentifier component = components[i];
+      expect(component, isNotNull);
+      expect(component.name, expectedComponents[i]);
+    }
+  }
+}
+
+/**
  * The class `RecoveryParserTest` defines parser tests that test the parsing of invalid code
  * sequences to ensure that the correct recovery steps are taken in the parser.
  */
@@ -4491,49 +4584,6 @@
     expect(literal.isSynthetic, isTrue);
   }
 
-  void test_function_literal_allowed_at_toplevel() {
-    parseCompilationUnit("var x = () {};");
-  }
-
-  void
-      test_function_literal_allowed_in_ArgumentList_in_ConstructorFieldInitializer() {
-    parseCompilationUnit("class C { C() : a = f(() {}); }");
-  }
-
-  void
-      test_function_literal_allowed_in_IndexExpression_in_ConstructorFieldInitializer() {
-    parseCompilationUnit("class C { C() : a = x[() {}]; }");
-  }
-
-  void
-      test_function_literal_allowed_in_ListLiteral_in_ConstructorFieldInitializer() {
-    parseCompilationUnit("class C { C() : a = [() {}]; }");
-  }
-
-  void
-      test_function_literal_allowed_in_MapLiteral_in_ConstructorFieldInitializer() {
-    parseCompilationUnit("class C { C() : a = {'key': () {}}; }");
-  }
-
-  void
-      test_function_literal_allowed_in_ParenthesizedExpression_in_ConstructorFieldInitializer() {
-    parseCompilationUnit("class C { C() : a = (() {}); }");
-  }
-
-  void
-      test_function_literal_allowed_in_StringInterpolation_in_ConstructorFieldInitializer() {
-    parseCompilationUnit("class C { C() : a = \"\${(){}}\"; }");
-  }
-
-  void test_import_as_show() {
-    parseCompilationUnit("import 'dart:math' as M show E;");
-  }
-
-  void test_import_show_hide() {
-    parseCompilationUnit(
-        "import 'import1_lib.dart' show hide, show hide ugly;");
-  }
-
   void test_isFunctionDeclaration_nameButNoReturn_block() {
     expect(_isFunctionDeclaration("f() {}"), isTrue);
   }
@@ -5734,229 +5784,6 @@
     expect(section.propertyName, isNotNull);
   }
 
-  void test_parseClassDeclaration_abstract() {
-    createParser('abstract class A {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNotNull);
-    expect(declaration.extendsClause, isNull);
-    expect(declaration.implementsClause, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNull);
-  }
-
-  void test_parseClassDeclaration_empty() {
-    createParser('class A {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.extendsClause, isNull);
-    expect(declaration.implementsClause, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNull);
-  }
-
-  void test_parseClassDeclaration_extends() {
-    createParser('class A extends B {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.extendsClause, isNotNull);
-    expect(declaration.implementsClause, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNull);
-  }
-
-  void test_parseClassDeclaration_extendsAndImplements() {
-    createParser('class A extends B implements C {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.extendsClause, isNotNull);
-    expect(declaration.implementsClause, isNotNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNull);
-  }
-
-  void test_parseClassDeclaration_extendsAndWith() {
-    createParser('class A extends B with C {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.typeParameters, isNull);
-    expect(declaration.extendsClause, isNotNull);
-    expect(declaration.withClause, isNotNull);
-    expect(declaration.implementsClause, isNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-  }
-
-  void test_parseClassDeclaration_extendsAndWithAndImplements() {
-    createParser('class A extends B with C implements D {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.typeParameters, isNull);
-    expect(declaration.extendsClause, isNotNull);
-    expect(declaration.withClause, isNotNull);
-    expect(declaration.implementsClause, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-  }
-
-  void test_parseClassDeclaration_implements() {
-    createParser('class A implements C {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.extendsClause, isNull);
-    expect(declaration.implementsClause, isNotNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNull);
-  }
-
-  void test_parseClassDeclaration_native() {
-    createParser('class A native "nativeValue" {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    NativeClause nativeClause = declaration.nativeClause;
-    expect(nativeClause, isNotNull);
-    expect(nativeClause.nativeKeyword, isNotNull);
-    expect(nativeClause.name.stringValue, "nativeValue");
-    expect(nativeClause.beginToken, same(nativeClause.nativeKeyword));
-    expect(nativeClause.endToken, same(nativeClause.name.endToken));
-  }
-
-  void test_parseClassDeclaration_nonEmpty() {
-    createParser('class A {var f;}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.extendsClause, isNull);
-    expect(declaration.implementsClause, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(1));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNull);
-  }
-
-  void test_parseClassDeclaration_typeAlias_implementsC() {
-    createParser('class A = Object with B implements C;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias typeAlias = member;
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.withClause, isNotNull);
-    expect(typeAlias.implementsClause, isNotNull);
-    expect(typeAlias.implementsClause.implementsKeyword, isNotNull);
-    expect(typeAlias.implementsClause.interfaces.length, 1);
-    expect(typeAlias.semicolon, isNotNull);
-  }
-
-  void test_parseClassDeclaration_typeAlias_withB() {
-    createParser('class A = Object with B;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias typeAlias = member;
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.withClause, isNotNull);
-    expect(typeAlias.withClause.withKeyword, isNotNull);
-    expect(typeAlias.withClause.mixinTypes.length, 1);
-    expect(typeAlias.implementsClause, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-  }
-
-  void test_parseClassDeclaration_typeParameters() {
-    createParser('class A<B> {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.abstractKeyword, isNull);
-    expect(declaration.extendsClause, isNull);
-    expect(declaration.implementsClause, isNull);
-    expect(declaration.classKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.members, hasLength(0));
-    expect(declaration.rightBracket, isNotNull);
-    expect(declaration.typeParameters, isNotNull);
-    expect(declaration.typeParameters.typeParameters, hasLength(1));
-  }
-
   void test_parseClassMember_constructor_withInitializers() {
     // TODO(brianwilkerson) Test other kinds of class members: fields, getters
     // and setters.
@@ -6112,7 +5939,6 @@
     expect(variable.name, isNotNull);
   }
 
-  @failingTest
   void test_parseClassMember_getter_functionType() {
     createParser('int Function(int) get g {}');
     ClassMember member = parser.parseClassMember('C');
@@ -6442,7 +6268,6 @@
     expect(method.body, isNotNull);
   }
 
-  @failingTest
   void test_parseClassMember_method_returnType_functionType() {
     createParser('int Function(String) m() {}');
     ClassMember member = parser.parseClassMember('C');
@@ -6558,7 +6383,6 @@
     expect(method.body, isNotNull);
   }
 
-  @failingTest
   void test_parseClassMember_operator_functionType() {
     createParser('int Function() operator +(int Function() f) {}');
     ClassMember member = parser.parseClassMember('C');
@@ -7260,499 +7084,6 @@
     expect(reference.offset, 15);
   }
 
-  void test_parseCompilationUnit_abstractAsPrefix_parameterized() {
-    createParser('abstract<dynamic> _abstract = new abstract.A();');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnit_builtIn_asFunctionName() {
-    parseCompilationUnit('abstract(x) => 0;');
-    parseCompilationUnit('as(x) => 0;');
-    parseCompilationUnit('dynamic(x) => 0;');
-    parseCompilationUnit('export(x) => 0;');
-    parseCompilationUnit('external(x) => 0;');
-    parseCompilationUnit('factory(x) => 0;');
-    parseCompilationUnit('get(x) => 0;');
-    parseCompilationUnit('implements(x) => 0;');
-    parseCompilationUnit('import(x) => 0;');
-    parseCompilationUnit('library(x) => 0;');
-    parseCompilationUnit('operator(x) => 0;');
-    parseCompilationUnit('part(x) => 0;');
-    parseCompilationUnit('set(x) => 0;');
-    parseCompilationUnit('static(x) => 0;');
-    parseCompilationUnit('typedef(x) => 0;');
-  }
-
-  void test_parseCompilationUnit_directives_multiple() {
-    createParser("library l;\npart 'a.dart';");
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(2));
-    expect(unit.declarations, hasLength(0));
-  }
-
-  void test_parseCompilationUnit_directives_single() {
-    createParser('library l;');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(1));
-    expect(unit.declarations, hasLength(0));
-  }
-
-  void test_parseCompilationUnit_empty() {
-    createParser('');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(0));
-  }
-
-  void test_parseCompilationUnit_exportAsPrefix() {
-    createParser('export.A _export = new export.A();');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnit_exportAsPrefix_parameterized() {
-    createParser('export<dynamic> _export = new export.A();');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnit_operatorAsPrefix_parameterized() {
-    createParser('operator<dynamic> _operator = new operator.A();');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnit_script() {
-    createParser('#! /bin/dart');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNotNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(0));
-  }
-
-  void test_parseCompilationUnit_skipFunctionBody_withInterpolation() {
-    ParserTestCase.parseFunctionBodies = false;
-    createParser('f() { "\${n}"; }');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnit_topLevelDeclaration() {
-    createParser('class A {}');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnit_typedefAsPrefix() {
-    createParser('typedef.A _typedef = new typedef.A();');
-    CompilationUnit unit = parser.parseCompilationUnit2();
-    expectNotNullIfNoErrors(unit);
-    listener.assertNoErrors();
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-    expect(unit.declarations, hasLength(1));
-  }
-
-  void test_parseCompilationUnitMember_abstractAsPrefix() {
-    createParser('abstract.A _abstract = new abstract.A();');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
-    TopLevelVariableDeclaration declaration = member;
-    expect(declaration.semicolon, isNotNull);
-    expect(declaration.variables, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_class() {
-    createParser('class A {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassDeclaration>());
-    ClassDeclaration declaration = member;
-    expect(declaration.name.name, "A");
-    expect(declaration.members, hasLength(0));
-  }
-
-  void test_parseCompilationUnitMember_classTypeAlias() {
-    createParser('abstract class A = B with C;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias declaration = member;
-    expect(declaration.name.name, "A");
-    expect(declaration.abstractKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_constVariable() {
-    createParser('const int x = 0;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
-    TopLevelVariableDeclaration declaration = member;
-    expect(declaration.semicolon, isNotNull);
-    expect(declaration.variables, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_finalVariable() {
-    createParser('final x = 0;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
-    TopLevelVariableDeclaration declaration = member;
-    expect(declaration.semicolon, isNotNull);
-    expect(declaration.variables, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_function_external_noType() {
-    createParser('external f();');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.externalKeyword, isNotNull);
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseCompilationUnitMember_function_external_type() {
-    createParser('external int f();');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.externalKeyword, isNotNull);
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseCompilationUnitMember_function_generic_noReturnType() {
-    createParser('f<E>() {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.returnType, isNull);
-    expect(declaration.functionExpression.typeParameters, isNotNull);
-  }
-
-  void
-      test_parseCompilationUnitMember_function_generic_noReturnType_annotated() {
-    createParser('f<@a E>() {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.returnType, isNull);
-    expect(declaration.functionExpression.typeParameters, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_function_generic_returnType() {
-    createParser('E f<E>() {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.returnType, isNotNull);
-    expect(declaration.functionExpression.typeParameters, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_function_generic_void() {
-    createParser('void f<T>(T t) {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseCompilationUnitMember_function_noType() {
-    createParser('f() {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseCompilationUnitMember_function_type() {
-    createParser('int f() {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseCompilationUnitMember_function_void() {
-    createParser('void f() {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.returnType, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_getter_external_noType() {
-    createParser('external get p;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.externalKeyword, isNotNull);
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_getter_external_type() {
-    createParser('external int get p;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.externalKeyword, isNotNull);
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_getter_noType() {
-    createParser('get p => 0;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_getter_type() {
-    createParser('int get p => 0;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_setter_external_noType() {
-    createParser('external set p(v);');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.externalKeyword, isNotNull);
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_setter_external_type() {
-    createParser('external void set p(int v);');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.externalKeyword, isNotNull);
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_setter_noType() {
-    createParser('set p(v) {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_setter_type() {
-    createParser('void set p(int v) {}');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionDeclaration>());
-    FunctionDeclaration declaration = member;
-    expect(declaration.functionExpression, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-    expect(declaration.returnType, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_typeAlias_abstract() {
-    createParser('abstract class C = S with M;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias typeAlias = member;
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name.name, "C");
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.equals, isNotNull);
-    expect(typeAlias.abstractKeyword, isNotNull);
-    expect(typeAlias.superclass.name.name, "S");
-    expect(typeAlias.withClause, isNotNull);
-    expect(typeAlias.implementsClause, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_typeAlias_generic() {
-    createParser('class C<E> = S<E> with M<E> implements I<E>;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias typeAlias = member;
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name.name, "C");
-    expect(typeAlias.typeParameters.typeParameters, hasLength(1));
-    expect(typeAlias.equals, isNotNull);
-    expect(typeAlias.abstractKeyword, isNull);
-    expect(typeAlias.superclass.name.name, "S");
-    expect(typeAlias.withClause, isNotNull);
-    expect(typeAlias.implementsClause, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_typeAlias_implements() {
-    createParser('class C = S with M implements I;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias typeAlias = member;
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name.name, "C");
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.equals, isNotNull);
-    expect(typeAlias.abstractKeyword, isNull);
-    expect(typeAlias.superclass.name.name, "S");
-    expect(typeAlias.withClause, isNotNull);
-    expect(typeAlias.implementsClause, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_typeAlias_noImplements() {
-    createParser('class C = S with M;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<ClassTypeAlias>());
-    ClassTypeAlias typeAlias = member;
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name.name, "C");
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.equals, isNotNull);
-    expect(typeAlias.abstractKeyword, isNull);
-    expect(typeAlias.superclass.name.name, "S");
-    expect(typeAlias.withClause, isNotNull);
-    expect(typeAlias.implementsClause, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_typedef() {
-    createParser('typedef F();');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<FunctionTypeAlias>());
-    FunctionTypeAlias typeAlias = member;
-    expect(typeAlias.name.name, "F");
-    expect(typeAlias.parameters.parameters, hasLength(0));
-  }
-
-  void test_parseCompilationUnitMember_variable() {
-    createParser('var x = 0;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
-    TopLevelVariableDeclaration declaration = member;
-    expect(declaration.semicolon, isNotNull);
-    expect(declaration.variables, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_variableGet() {
-    createParser('String get = null;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
-    TopLevelVariableDeclaration declaration = member;
-    expect(declaration.semicolon, isNotNull);
-    expect(declaration.variables, isNotNull);
-  }
-
-  void test_parseCompilationUnitMember_variableSet() {
-    createParser('String set = null;');
-    CompilationUnitMember member = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(member);
-    listener.assertNoErrors();
-    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
-    TopLevelVariableDeclaration declaration = member;
-    expect(declaration.semicolon, isNotNull);
-    expect(declaration.variables, isNotNull);
-  }
-
   void test_parseConditionalExpression() {
     createParser('x ? y : z');
     ConditionalExpression expression = parser.parseConditionalExpression();
@@ -7772,7 +7103,7 @@
     listener.assertNoErrors();
     expect(configuration.ifKeyword, isNotNull);
     expect(configuration.leftParenthesis, isNotNull);
-    _expectDottedName(configuration.name, ["a", "b"]);
+    expectDottedName(configuration.name, ["a", "b"]);
     expect(configuration.equalToken, isNull);
     expect(configuration.value, isNull);
     expect(configuration.rightParenthesis, isNotNull);
@@ -7786,7 +7117,7 @@
     listener.assertNoErrors();
     expect(configuration.ifKeyword, isNotNull);
     expect(configuration.leftParenthesis, isNotNull);
-    _expectDottedName(configuration.name, ["a"]);
+    expectDottedName(configuration.name, ["a"]);
     expect(configuration.equalToken, isNull);
     expect(configuration.value, isNull);
     expect(configuration.rightParenthesis, isNotNull);
@@ -7800,7 +7131,7 @@
     listener.assertNoErrors();
     expect(configuration.ifKeyword, isNotNull);
     expect(configuration.leftParenthesis, isNotNull);
-    _expectDottedName(configuration.name, ["a", "b"]);
+    expectDottedName(configuration.name, ["a", "b"]);
     expect(configuration.equalToken, isNotNull);
     expect(configuration.value, isNotNull);
     expect(configuration.rightParenthesis, isNotNull);
@@ -7814,7 +7145,7 @@
     listener.assertNoErrors();
     expect(configuration.ifKeyword, isNotNull);
     expect(configuration.leftParenthesis, isNotNull);
-    _expectDottedName(configuration.name, ["a"]);
+    expectDottedName(configuration.name, ["a"]);
     expect(configuration.equalToken, isNotNull);
     expect(configuration.value, isNotNull);
     expect(configuration.rightParenthesis, isNotNull);
@@ -8049,115 +7380,6 @@
     expect(statement.semicolon, isNotNull);
   }
 
-  void test_parseDirective_export() {
-    createParser("export 'lib/lib.dart';");
-    Directive directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive, new isInstanceOf<ExportDirective>());
-    ExportDirective exportDirective = directive;
-    expect(exportDirective.keyword, isNotNull);
-    expect(exportDirective.uri, isNotNull);
-    expect(exportDirective.combinators, hasLength(0));
-    expect(exportDirective.semicolon, isNotNull);
-  }
-
-  void test_parseDirective_import() {
-    createParser("import 'lib/lib.dart';");
-    Directive directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive, new isInstanceOf<ImportDirective>());
-    ImportDirective importDirective = directive;
-    expect(importDirective.keyword, isNotNull);
-    expect(importDirective.uri, isNotNull);
-    expect(importDirective.asKeyword, isNull);
-    expect(importDirective.prefix, isNull);
-    expect(importDirective.combinators, hasLength(0));
-    expect(importDirective.semicolon, isNotNull);
-  }
-
-  void test_parseDirective_library() {
-    createParser("library l;");
-    Directive directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive, new isInstanceOf<LibraryDirective>());
-    LibraryDirective libraryDirective = directive;
-    expect(libraryDirective.libraryKeyword, isNotNull);
-    expect(libraryDirective.name, isNotNull);
-    expect(libraryDirective.semicolon, isNotNull);
-  }
-
-  void test_parseDirective_part() {
-    createParser("part 'lib/lib.dart';");
-    Directive directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive, new isInstanceOf<PartDirective>());
-    PartDirective partDirective = directive;
-    expect(partDirective.partKeyword, isNotNull);
-    expect(partDirective.uri, isNotNull);
-    expect(partDirective.semicolon, isNotNull);
-  }
-
-  void test_parseDirective_partOf() {
-    createParser("part of l;");
-    Directive directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive, new isInstanceOf<PartOfDirective>());
-    PartOfDirective partOfDirective = directive;
-    expect(partOfDirective.partKeyword, isNotNull);
-    expect(partOfDirective.ofKeyword, isNotNull);
-    expect(partOfDirective.libraryName, isNotNull);
-    expect(partOfDirective.semicolon, isNotNull);
-  }
-
-  void test_parseDirectives_complete() {
-    CompilationUnit unit =
-        _parseDirectives("#! /bin/dart\nlibrary l;\nclass A {}");
-    expect(unit.scriptTag, isNotNull);
-    expect(unit.directives, hasLength(1));
-  }
-
-  void test_parseDirectives_empty() {
-    CompilationUnit unit = _parseDirectives("");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-  }
-
-  void test_parseDirectives_mixed() {
-    CompilationUnit unit =
-        _parseDirectives("library l; class A {} part 'foo.dart';");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(1));
-  }
-
-  void test_parseDirectives_multiple() {
-    CompilationUnit unit = _parseDirectives("library l;\npart 'a.dart';");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(2));
-  }
-
-  void test_parseDirectives_script() {
-    CompilationUnit unit = _parseDirectives("#! /bin/dart");
-    expect(unit.scriptTag, isNotNull);
-    expect(unit.directives, hasLength(0));
-  }
-
-  void test_parseDirectives_single() {
-    CompilationUnit unit = _parseDirectives("library l;");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(1));
-  }
-
-  void test_parseDirectives_topLevelDeclaration() {
-    CompilationUnit unit = _parseDirectives("class A {}");
-    expect(unit.scriptTag, isNull);
-    expect(unit.directives, hasLength(0));
-  }
-
   void test_parseDocumentationComment_block() {
     createParser('/** */ class');
     Comment comment = parser
@@ -8215,7 +7437,7 @@
     DottedName name = parser.parseDottedName();
     expectNotNullIfNoErrors(name);
     listener.assertNoErrors();
-    _expectDottedName(name, ["a", "b", "c"]);
+    expectDottedName(name, ["a", "b", "c"]);
   }
 
   void test_parseDottedName_single() {
@@ -8223,7 +7445,7 @@
     DottedName name = parser.parseDottedName();
     expectNotNullIfNoErrors(name);
     listener.assertNoErrors();
-    _expectDottedName(name, ["a"]);
+    expectDottedName(name, ["a"]);
   }
 
   void test_parseEmptyStatement() {
@@ -8234,45 +7456,6 @@
     expect(statement.semicolon, isNotNull);
   }
 
-  void test_parseEnumDeclaration_one() {
-    createParser("enum E {ONE}");
-    EnumDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.enumKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.constants, hasLength(1));
-    expect(declaration.rightBracket, isNotNull);
-  }
-
-  void test_parseEnumDeclaration_trailingComma() {
-    createParser("enum E {ONE,}");
-    EnumDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.enumKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.constants, hasLength(1));
-    expect(declaration.rightBracket, isNotNull);
-  }
-
-  void test_parseEnumDeclaration_two() {
-    createParser("enum E {ONE, TWO}");
-    EnumDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    expect(declaration.documentationComment, isNull);
-    expect(declaration.enumKeyword, isNotNull);
-    expect(declaration.leftBracket, isNotNull);
-    expect(declaration.name, isNotNull);
-    expect(declaration.constants, hasLength(2));
-    expect(declaration.rightBracket, isNotNull);
-  }
-
   void test_parseEqualityExpression_normal() {
     createParser('x == y');
     BinaryExpression expression = parser.parseEqualityExpression();
@@ -8295,88 +7478,6 @@
     expect(expression.rightOperand, isNotNull);
   }
 
-  void test_parseExportDirective_configuration_multiple() {
-    createParser("export 'lib/lib.dart' if (a) 'b.dart' if (c) 'd.dart';");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.configurations, hasLength(2));
-    _expectDottedName(directive.configurations[0].name, ['a']);
-    _expectDottedName(directive.configurations[1].name, ['c']);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseExportDirective_configuration_single() {
-    createParser("export 'lib/lib.dart' if (a.b == 'c.dart') '';");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.configurations, hasLength(1));
-    _expectDottedName(directive.configurations[0].name, ['a', 'b']);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseExportDirective_hide() {
-    createParser("export 'lib/lib.dart' hide A, B;");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.combinators, hasLength(1));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseExportDirective_hide_show() {
-    createParser("export 'lib/lib.dart' hide A show B;");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.combinators, hasLength(2));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseExportDirective_noCombinator() {
-    createParser("export 'lib/lib.dart';");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseExportDirective_show() {
-    createParser("export 'lib/lib.dart' show A, B;");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.combinators, hasLength(1));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseExportDirective_show_hide() {
-    createParser("export 'lib/lib.dart' show B hide A;");
-    ExportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.combinators, hasLength(2));
-    expect(directive.semicolon, isNotNull);
-  }
-
   void test_parseExpression_assign() {
     // TODO(brianwilkerson) Implement more tests for this method.
     Expression expression = parseExpression('x = y');
@@ -8887,7 +7988,6 @@
     expect(defaultParameter.kind, kind);
   }
 
-  @failingTest
   void test_parseFormalParameter_covariant_type_function() {
     ParameterKind kind = ParameterKind.REQUIRED;
     createParser('covariant String Function(int) a');
@@ -9123,7 +8223,6 @@
     expect(defaultParameter.kind, kind);
   }
 
-  @failingTest
   void test_parseFormalParameter_type_function() {
     ParameterKind kind = ParameterKind.REQUIRED;
     createParser('String Function(int) a');
@@ -9928,87 +9027,6 @@
     expect(functionBody, new isInstanceOf<EmptyFunctionBody>());
   }
 
-  void test_parseFunctionDeclaration_function() {
-    createParser('/// Doc\nT f() {}');
-    FunctionDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
-    expect((declaration.returnType as TypeName).name.name, 'T');
-    expect(declaration.name, isNotNull);
-    FunctionExpression expression = declaration.functionExpression;
-    expect(expression, isNotNull);
-    expect(expression.body, isNotNull);
-    expect(expression.typeParameters, isNull);
-    expect(expression.parameters, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseFunctionDeclaration_functionWithTypeParameters() {
-    createParser('/// Doc\nT f<E>() {}');
-    FunctionDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
-    expect((declaration.returnType as TypeName).name.name, 'T');
-    expect(declaration.name, isNotNull);
-    FunctionExpression expression = declaration.functionExpression;
-    expect(expression, isNotNull);
-    expect(expression.body, isNotNull);
-    expect(expression.typeParameters, isNotNull);
-    expect(expression.parameters, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseFunctionDeclaration_functionWithTypeParameters_comment() {
-    enableGenericMethodComments = true;
-    createParser('/// Doc\nT f/*<E>*/() {}');
-    FunctionDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
-    expect((declaration.returnType as TypeName).name.name, 'T');
-    expect(declaration.name, isNotNull);
-    FunctionExpression expression = declaration.functionExpression;
-    expect(expression, isNotNull);
-    expect(expression.body, isNotNull);
-    expect(expression.typeParameters, isNotNull);
-    expect(expression.parameters, isNotNull);
-    expect(declaration.propertyKeyword, isNull);
-  }
-
-  void test_parseFunctionDeclaration_getter() {
-    createParser('/// Doc\nT get p => 0;');
-    FunctionDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
-    expect((declaration.returnType as TypeName).name.name, 'T');
-    expect(declaration.name, isNotNull);
-    FunctionExpression expression = declaration.functionExpression;
-    expect(expression, isNotNull);
-    expect(expression.body, isNotNull);
-    expect(expression.typeParameters, isNull);
-    expect(expression.parameters, isNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
-  void test_parseFunctionDeclaration_setter() {
-    createParser('/// Doc\nT set p(v) {}');
-    FunctionDeclaration declaration = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(declaration);
-    listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
-    expect((declaration.returnType as TypeName).name.name, 'T');
-    expect(declaration.name, isNotNull);
-    FunctionExpression expression = declaration.functionExpression;
-    expect(expression, isNotNull);
-    expect(expression.body, isNotNull);
-    expect(expression.typeParameters, isNull);
-    expect(expression.parameters, isNotNull);
-    expect(declaration.propertyKeyword, isNotNull);
-  }
-
   void test_parseFunctionDeclarationStatement() {
     createParser('void f(int p) => p * 2;');
     FunctionDeclarationStatement statement =
@@ -10091,41 +9109,13 @@
     expect((expression.body as ExpressionFunctionBody).semicolon, isNull);
   }
 
-  @failingTest
-  void test_parseGenericTypeAlias_noTypeParameters() {
-    createParser('F = int Function(int);');
-    GenericTypeAlias alias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(alias);
-    listener.assertNoErrors();
-    expect(alias.name, isNotNull);
-    expect(alias.name.name, 'F');
-    expect(alias.typeParameters, isNull);
-    expect(alias.equals, isNotNull);
-    expect(alias.functionType, isNotNull);
-    expect(alias.semicolon, isNotNull);
-  }
-
-  @failingTest
-  void test_parseGenericTypeAlias_typeParameters() {
-    createParser('F<T> = T Function(T);');
-    GenericTypeAlias alias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(alias);
-    listener.assertNoErrors();
-    expect(alias.name, isNotNull);
-    expect(alias.name.name, 'F');
-    expect(alias.typeParameters, isNotNull);
-    expect(alias.equals, isNotNull);
-    expect(alias.functionType, isNotNull);
-    expect(alias.semicolon, isNotNull);
-  }
-
   void test_parseGetter_nonStatic() {
     createParser('/// Doc\nT get a;');
     MethodDeclaration method = parser.parseClassMember('C');
     expectNotNullIfNoErrors(method);
     listener.assertNoErrors();
     expect(method.body, isNotNull);
-    _expectCommentText(method.documentationComment, '/// Doc');
+    expectCommentText(method.documentationComment, '/// Doc');
     expect(method.externalKeyword, isNull);
     expect(method.modifierKeyword, isNull);
     expect(method.name, isNotNull);
@@ -10141,7 +9131,7 @@
     expectNotNullIfNoErrors(method);
     listener.assertNoErrors();
     expect(method.body, isNotNull);
-    _expectCommentText(method.documentationComment, '/// Doc');
+    expectCommentText(method.documentationComment, '/// Doc');
     expect(method.externalKeyword, isNull);
     expect(method.modifierKeyword.lexeme, 'static');
     expect(method.name, isNotNull);
@@ -10242,143 +9232,12 @@
     expect(clause.implementsKeyword, isNotNull);
   }
 
-  void test_parseImportDirective_configuration_multiple() {
-    createParser("import 'lib/lib.dart' if (a) 'b.dart' if (c) 'd.dart';");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.configurations, hasLength(2));
-    _expectDottedName(directive.configurations[0].name, ['a']);
-    _expectDottedName(directive.configurations[1].name, ['c']);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNull);
-    expect(directive.prefix, isNull);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_configuration_single() {
-    createParser("import 'lib/lib.dart' if (a.b == 'c.dart') '';");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.configurations, hasLength(1));
-    _expectDottedName(directive.configurations[0].name, ['a', 'b']);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNull);
-    expect(directive.prefix, isNull);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_deferred() {
-    createParser("import 'lib/lib.dart' deferred as a;");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNotNull);
-    expect(directive.asKeyword, isNotNull);
-    expect(directive.prefix, isNotNull);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_hide() {
-    createParser("import 'lib/lib.dart' hide A, B;");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNull);
-    expect(directive.prefix, isNull);
-    expect(directive.combinators, hasLength(1));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_noCombinator() {
-    createParser("import 'lib/lib.dart';");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNull);
-    expect(directive.prefix, isNull);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_prefix() {
-    createParser("import 'lib/lib.dart' as a;");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNotNull);
-    expect(directive.prefix, isNotNull);
-    expect(directive.combinators, hasLength(0));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_prefix_hide_show() {
-    createParser("import 'lib/lib.dart' as a hide A show B;");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNotNull);
-    expect(directive.prefix, isNotNull);
-    expect(directive.combinators, hasLength(2));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_prefix_show_hide() {
-    createParser("import 'lib/lib.dart' as a show B hide A;");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNotNull);
-    expect(directive.prefix, isNotNull);
-    expect(directive.combinators, hasLength(2));
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parseImportDirective_show() {
-    createParser("import 'lib/lib.dart' show A, B;");
-    ImportDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.keyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.deferredKeyword, isNull);
-    expect(directive.asKeyword, isNull);
-    expect(directive.prefix, isNull);
-    expect(directive.combinators, hasLength(1));
-    expect(directive.semicolon, isNotNull);
-  }
-
   void test_parseInitializedIdentifierList_type() {
     createParser("/// Doc\nstatic T a = 1, b, c = 3;");
     FieldDeclaration declaration = parser.parseClassMember('C');
     expectNotNullIfNoErrors(declaration);
     listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
+    expectCommentText(declaration.documentationComment, '/// Doc');
     VariableDeclarationList fields = declaration.fields;
     expect(fields, isNotNull);
     expect(fields.keyword, isNull);
@@ -10393,7 +9252,7 @@
     FieldDeclaration declaration = parser.parseClassMember('C');
     expectNotNullIfNoErrors(declaration);
     listener.assertNoErrors();
-    _expectCommentText(declaration.documentationComment, '/// Doc');
+    expectCommentText(declaration.documentationComment, '/// Doc');
     VariableDeclarationList fields = declaration.fields;
     expect(fields, isNotNull);
     expect(fields.keyword.lexeme, 'var');
@@ -10648,16 +9507,6 @@
     expect((arguments[0] as TypeName).question, isNotNull);
   }
 
-  void test_parseLibraryDirective() {
-    createParser('library l;');
-    LibraryDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.libraryKeyword, isNotNull);
-    expect(directive.name, isNotNull);
-    expect(directive.semicolon, isNotNull);
-  }
-
   void test_parseLibraryIdentifier_multiple() {
     String name = "a.b.c";
     createParser(name);
@@ -11171,6 +10020,13 @@
     expect(expressionStatement.expression, isNotNull);
   }
 
+  void test_parseNonLabeledStatement_variableDeclaration_final_namedFunction() {
+    createParser('final int Function = 0;');
+    Statement statement = parser.parseNonLabeledStatement();
+    expectNotNullIfNoErrors(statement);
+    listener.assertNoErrors();
+  }
+
   void test_parseNormalFormalParameter_field_const_noType() {
     createParser('const this.a)');
     NormalFormalParameter parameter = parser.parseNormalFormalParameter();
@@ -11615,7 +10471,7 @@
     expectNotNullIfNoErrors(method);
     listener.assertNoErrors();
     expect(method.body, isNotNull);
-    _expectCommentText(method.documentationComment, '/// Doc');
+    expectCommentText(method.documentationComment, '/// Doc');
     expect(method.externalKeyword, isNull);
     expect(method.modifierKeyword, isNull);
     expect(method.name, isNotNull);
@@ -11630,38 +10486,6 @@
     // TODO(brianwilkerson) Implement tests for this method.
   }
 
-  void test_parsePartDirective() {
-    createParser("part 'lib/lib.dart';");
-    PartDirective directive = parseFullDirective();
-    expectNotNullIfNoErrors(directive);
-    listener.assertNoErrors();
-    expect(directive.partKeyword, isNotNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parsePartOfDirective_name() {
-    enableUriInPartOf = true;
-    createParser("part of l;");
-    PartOfDirective directive = parseFullDirective();
-    expect(directive.partKeyword, isNotNull);
-    expect(directive.ofKeyword, isNotNull);
-    expect(directive.libraryName, isNotNull);
-    expect(directive.uri, isNull);
-    expect(directive.semicolon, isNotNull);
-  }
-
-  void test_parsePartOfDirective_uri() {
-    enableUriInPartOf = true;
-    createParser("part of 'lib.dart';");
-    PartOfDirective directive = parseFullDirective();
-    expect(directive.partKeyword, isNotNull);
-    expect(directive.ofKeyword, isNotNull);
-    expect(directive.libraryName, isNull);
-    expect(directive.uri, isNotNull);
-    expect(directive.semicolon, isNotNull);
-  }
-
   void test_parsePostfixExpression_decrement() {
     createParser('i--');
     Expression expression = parser.parsePostfixExpression();
@@ -12124,7 +10948,6 @@
     expect(invocation.period, isNull);
   }
 
-  @failingTest
   void test_parseRelationalExpression_as_functionType_noReturnType() {
     createParser('x as Function(int)');
     Expression expression = parser.parseRelationalExpression();
@@ -12137,7 +10960,6 @@
     expect(asExpression.type, new isInstanceOf<GenericFunctionType>());
   }
 
-  @failingTest
   void test_parseRelationalExpression_as_functionType_returnType() {
     createParser('x as String Function(int)');
     Expression expression = parser.parseRelationalExpression();
@@ -12293,7 +11115,6 @@
     expect(statement.semicolon, isNotNull);
   }
 
-  @failingTest
   void test_parseReturnType_function() {
     createParser('A<B> Function<B>(B)');
     GenericFunctionType type = parser.parseReturnType(false);
@@ -12328,7 +11149,7 @@
     expectNotNullIfNoErrors(method);
     listener.assertNoErrors();
     expect(method.body, isNotNull);
-    _expectCommentText(method.documentationComment, '/// Doc');
+    expectCommentText(method.documentationComment, '/// Doc');
     expect(method.externalKeyword, isNull);
     expect(method.modifierKeyword, isNull);
     expect(method.name, isNotNull);
@@ -12345,7 +11166,7 @@
     expectNotNullIfNoErrors(method);
     listener.assertNoErrors();
     expect(method.body, isNotNull);
-    _expectCommentText(method.documentationComment, '/// Doc');
+    expectCommentText(method.documentationComment, '/// Doc');
     expect(method.externalKeyword, isNull);
     expect(method.modifierKeyword.lexeme, 'static');
     expect(method.name, isNotNull);
@@ -13126,290 +11947,6 @@
     expect(statement.finallyBlock, isNotNull);
   }
 
-  void test_parseTypeAlias_function_noParameters() {
-    createParser('typedef bool F();');
-    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.parameters, isNotNull);
-    expect(typeAlias.returnType, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-  }
-
-  void test_parseTypeAlias_function_noReturnType() {
-    createParser('typedef F();');
-    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.parameters, isNotNull);
-    expect(typeAlias.returnType, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-  }
-
-  void test_parseTypeAlias_function_parameterizedReturnType() {
-    createParser('typedef A<B> F();');
-    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.parameters, isNotNull);
-    expect(typeAlias.returnType, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-  }
-
-  void test_parseTypeAlias_function_parameters() {
-    createParser('typedef bool F(Object value);');
-    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.parameters, isNotNull);
-    expect(typeAlias.returnType, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-  }
-
-  void test_parseTypeAlias_function_typeParameters() {
-    createParser('typedef bool F<E>();');
-    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.parameters, isNotNull);
-    expect(typeAlias.returnType, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-  }
-
-  void test_parseTypeAlias_function_voidReturnType() {
-    createParser('typedef void F();');
-    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.parameters, isNotNull);
-    expect(typeAlias.returnType, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_noParameters() {
-    createParser('typedef F = bool Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_noReturnType() {
-    createParser('typedef F = Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_parameterizedReturnType() {
-    createParser('typedef F = A<B> Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_parameters() {
-    createParser('typedef F = bool Function(Object value);');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_typeParameters() {
-    createParser('typedef F = bool Function<E>();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNotNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_typeParameters_noParameters() {
-    createParser('typedef F<T> = bool Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_typeParameters_noReturnType() {
-    createParser('typedef F<T> = Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void
-      test_parseTypeAlias_genericFunction_typeParameters_parameterizedReturnType() {
-    createParser('typedef F<T> = A<B> Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_typeParameters_parameters() {
-    createParser('typedef F<T> = bool Function(Object value);');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_typeParameters_typeParameters() {
-    createParser('typedef F<T> = bool Function<E>();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNotNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_typeParameters_voidReturnType() {
-    createParser('typedef F<T> = void Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNotNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
-  void test_parseTypeAlias_genericFunction_voidReturnType() {
-    createParser('typedef F = void Function();');
-    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
-    expectNotNullIfNoErrors(typeAlias);
-    listener.assertNoErrors();
-    expect(typeAlias.typedefKeyword, isNotNull);
-    expect(typeAlias.name, isNotNull);
-    expect(typeAlias.typeParameters, isNull);
-    expect(typeAlias.semicolon, isNotNull);
-    GenericFunctionType functionType = typeAlias.functionType;
-    expect(functionType, isNotNull);
-    expect(functionType.parameters, isNotNull);
-    expect(functionType.returnType, isNotNull);
-    expect(functionType.typeParameters, isNull);
-  }
-
-  @failingTest
   void test_parseTypeAnnotation_function_noReturnType_noParameters() {
     createParser('Function() v');
     GenericFunctionType functionType = parser.parseTypeAnnotation(false);
@@ -13423,7 +11960,6 @@
     expect(parameterList.parameters, hasLength(0));
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_noReturnType_parameters() {
     createParser('Function(int, int) v');
     GenericFunctionType functionType = parser.parseTypeAnnotation(false);
@@ -13450,7 +11986,6 @@
     expect((parameter.type as TypeName).name.name, 'int');
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_noReturnType_typeParameters() {
     createParser('Function<S, T>()');
     GenericFunctionType functionType = parser.parseTypeAnnotation(false);
@@ -13466,7 +12001,6 @@
     expect(parameterList.parameters, hasLength(0));
   }
 
-  @failingTest
   void
       test_parseTypeAnnotation_function_noReturnType_typeParameters_parameters() {
     createParser('Function<T>(String, {T t})');
@@ -13490,7 +12024,6 @@
     listener.assertNoErrors();
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_returnType_function() {
     createParser('A Function(B, C) Function(D) v');
     // TODO(scheglov) improve the test to verify also the node properties
@@ -13499,7 +12032,6 @@
     listener.assertNoErrors();
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_returnType_noParameters() {
     createParser('List<int> Function()');
     GenericFunctionType functionType = parser.parseTypeAnnotation(false);
@@ -13513,7 +12045,6 @@
     expect(parameterList.parameters, hasLength(0));
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_returnType_parameters() {
     createParser('List<int> Function(String s, int i)');
     GenericFunctionType functionType = parser.parseTypeAnnotation(false);
@@ -13542,7 +12073,6 @@
     expect((parameter.type as TypeName).name.name, 'int');
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_returnType_simple() {
     createParser('A Function(B, C) v');
     // TODO(scheglov) improve the test to verify also the node properties
@@ -13551,7 +12081,6 @@
     listener.assertNoErrors();
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_returnType_typeParameters() {
     createParser('List<T> Function<T>()');
     GenericFunctionType functionType = parser.parseTypeAnnotation(false);
@@ -13567,7 +12096,6 @@
     expect(parameterList.parameters, hasLength(0));
   }
 
-  @failingTest
   void
       test_parseTypeAnnotation_function_returnType_typeParameters_parameters() {
     createParser('List<T> Function<T>(String s, [T])');
@@ -13584,7 +12112,6 @@
     expect(parameterList.parameters, hasLength(2));
   }
 
-  @failingTest
   void test_parseTypeAnnotation_function_returnType_withArguments() {
     createParser('A<B> Function(C) v');
     // TODO(scheglov) improve this test to verify also the node properties
@@ -13736,7 +12263,6 @@
     expect(typeName.question, isNotNull);
   }
 
-  @failingTest
   void test_parseTypeParameter_bounded_functionType_noReturn() {
     createParser('A extends Function(int)');
     TypeParameter parameter = parser.parseTypeParameter();
@@ -13747,7 +12273,6 @@
     expect(parameter.name, isNotNull);
   }
 
-  @failingTest
   void test_parseTypeParameter_bounded_functionType_return() {
     createParser('A extends String Function(int)');
     TypeParameter parameter = parser.parseTypeParameter();
@@ -14363,22 +12888,6 @@
     return value;
   }
 
-  void _expectCommentText(Comment comment, String expectedText) {
-    expect(comment.beginToken, same(comment.endToken));
-    expect(comment.beginToken.lexeme, expectedText);
-  }
-
-  void _expectDottedName(DottedName name, List<String> expectedComponents) {
-    int count = expectedComponents.length;
-    NodeList<SimpleIdentifier> components = name.components;
-    expect(components, hasLength(count));
-    for (int i = 0; i < count; i++) {
-      SimpleIdentifier component = components[i];
-      expect(component, isNotNull);
-      expect(component.name, expectedComponents[i]);
-    }
-  }
-
   /**
    * Invoke the method [Parser.isFunctionDeclaration] with the parser set to the token
    * stream produced by scanning the given source.
@@ -14436,23 +12945,1611 @@
     expectNotNullIfNoErrors(result);
     return result;
   }
+}
 
-  /**
-   * Parse the given source as a compilation unit.
-   *
-   * @param source the source to be parsed
-   * @param errorCodes the error codes of the errors that are expected to be found
-   * @return the compilation unit that was parsed
-   * @throws Exception if the source could not be parsed, if the compilation errors in the source do
-   *           not match those that are expected, or if the result would have been `null`
-   */
-  CompilationUnit _parseDirectives(String source,
-      [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
-    createParser(source);
-    CompilationUnit unit = parser.parseDirectives2();
+@reflectiveTest
+class TopLevelParserTest extends ParserTestCase with TopLevelParserTestMixin {}
+
+/**
+ * Tests which exercise the parser using a complete compilation unit or
+ * compilation unit member.
+ */
+abstract class TopLevelParserTestMixin implements AbstractParserTestCase {
+  void test_function_literal_allowed_at_toplevel() {
+    parseCompilationUnit("var x = () {};");
+  }
+
+  void
+      test_function_literal_allowed_in_ArgumentList_in_ConstructorFieldInitializer() {
+    parseCompilationUnit("class C { C() : a = f(() {}); }");
+  }
+
+  void
+      test_function_literal_allowed_in_IndexExpression_in_ConstructorFieldInitializer() {
+    parseCompilationUnit("class C { C() : a = x[() {}]; }");
+  }
+
+  void
+      test_function_literal_allowed_in_ListLiteral_in_ConstructorFieldInitializer() {
+    parseCompilationUnit("class C { C() : a = [() {}]; }");
+  }
+
+  void
+      test_function_literal_allowed_in_MapLiteral_in_ConstructorFieldInitializer() {
+    parseCompilationUnit("class C { C() : a = {'key': () {}}; }");
+  }
+
+  void
+      test_function_literal_allowed_in_ParenthesizedExpression_in_ConstructorFieldInitializer() {
+    parseCompilationUnit("class C { C() : a = (() {}); }");
+  }
+
+  void
+      test_function_literal_allowed_in_StringInterpolation_in_ConstructorFieldInitializer() {
+    parseCompilationUnit("class C { C() : a = \"\${(){}}\"; }");
+  }
+
+  void test_import_as_show() {
+    parseCompilationUnit("import 'dart:math' as M show E;");
+  }
+
+  void test_import_show_hide() {
+    parseCompilationUnit(
+        "import 'import1_lib.dart' show hide, show hide ugly;");
+  }
+
+  void test_parseClassDeclaration_abstract() {
+    createParser('abstract class A {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNotNull);
+    expect(declaration.extendsClause, isNull);
+    expect(declaration.implementsClause, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNull);
+  }
+
+  void test_parseClassDeclaration_empty() {
+    createParser('class A {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.extendsClause, isNull);
+    expect(declaration.implementsClause, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNull);
+  }
+
+  void test_parseClassDeclaration_extends() {
+    createParser('class A extends B {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.extendsClause, isNotNull);
+    expect(declaration.implementsClause, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNull);
+  }
+
+  void test_parseClassDeclaration_extendsAndImplements() {
+    createParser('class A extends B implements C {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.extendsClause, isNotNull);
+    expect(declaration.implementsClause, isNotNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNull);
+  }
+
+  void test_parseClassDeclaration_extendsAndWith() {
+    createParser('class A extends B with C {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.typeParameters, isNull);
+    expect(declaration.extendsClause, isNotNull);
+    expect(declaration.withClause, isNotNull);
+    expect(declaration.implementsClause, isNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+  }
+
+  void test_parseClassDeclaration_extendsAndWithAndImplements() {
+    createParser('class A extends B with C implements D {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.typeParameters, isNull);
+    expect(declaration.extendsClause, isNotNull);
+    expect(declaration.withClause, isNotNull);
+    expect(declaration.implementsClause, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+  }
+
+  void test_parseClassDeclaration_implements() {
+    createParser('class A implements C {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.extendsClause, isNull);
+    expect(declaration.implementsClause, isNotNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNull);
+  }
+
+  void test_parseClassDeclaration_native() {
+    createParser('class A native "nativeValue" {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    NativeClause nativeClause = declaration.nativeClause;
+    expect(nativeClause, isNotNull);
+    expect(nativeClause.nativeKeyword, isNotNull);
+    expect(nativeClause.name.stringValue, "nativeValue");
+    expect(nativeClause.beginToken, same(nativeClause.nativeKeyword));
+    expect(nativeClause.endToken, same(nativeClause.name.endToken));
+  }
+
+  void test_parseClassDeclaration_nonEmpty() {
+    createParser('class A {var f;}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.extendsClause, isNull);
+    expect(declaration.implementsClause, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(1));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNull);
+  }
+
+  void test_parseClassDeclaration_typeAlias_implementsC() {
+    createParser('class A = Object with B implements C;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias typeAlias = member;
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.withClause, isNotNull);
+    expect(typeAlias.implementsClause, isNotNull);
+    expect(typeAlias.implementsClause.implementsKeyword, isNotNull);
+    expect(typeAlias.implementsClause.interfaces.length, 1);
+    expect(typeAlias.semicolon, isNotNull);
+  }
+
+  void test_parseClassDeclaration_typeAlias_withB() {
+    createParser('class A = Object with B;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias typeAlias = member;
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.withClause, isNotNull);
+    expect(typeAlias.withClause.withKeyword, isNotNull);
+    expect(typeAlias.withClause.mixinTypes.length, 1);
+    expect(typeAlias.implementsClause, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+  }
+
+  void test_parseClassDeclaration_typeParameters() {
+    createParser('class A<B> {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.abstractKeyword, isNull);
+    expect(declaration.extendsClause, isNull);
+    expect(declaration.implementsClause, isNull);
+    expect(declaration.classKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.members, hasLength(0));
+    expect(declaration.rightBracket, isNotNull);
+    expect(declaration.typeParameters, isNotNull);
+    expect(declaration.typeParameters.typeParameters, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_abstractAsPrefix_parameterized() {
+    createParser('abstract<dynamic> _abstract = new abstract.A();');
+    CompilationUnit unit = parser.parseCompilationUnit2();
     expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_builtIn_asFunctionName() {
+    parseCompilationUnit('abstract(x) => 0;');
+    parseCompilationUnit('as(x) => 0;');
+    parseCompilationUnit('dynamic(x) => 0;');
+    parseCompilationUnit('export(x) => 0;');
+    parseCompilationUnit('external(x) => 0;');
+    parseCompilationUnit('factory(x) => 0;');
+    parseCompilationUnit('get(x) => 0;');
+    parseCompilationUnit('implements(x) => 0;');
+    parseCompilationUnit('import(x) => 0;');
+    parseCompilationUnit('library(x) => 0;');
+    parseCompilationUnit('operator(x) => 0;');
+    parseCompilationUnit('part(x) => 0;');
+    parseCompilationUnit('set(x) => 0;');
+    parseCompilationUnit('static(x) => 0;');
+    parseCompilationUnit('typedef(x) => 0;');
+  }
+
+  void test_parseCompilationUnit_directives_multiple() {
+    createParser("library l;\npart 'a.dart';");
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(2));
     expect(unit.declarations, hasLength(0));
-    listener.assertErrorsWithCodes(errorCodes);
-    return unit;
+  }
+
+  void test_parseCompilationUnit_directives_single() {
+    createParser('library l;');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(1));
+    expect(unit.declarations, hasLength(0));
+  }
+
+  void test_parseCompilationUnit_empty() {
+    createParser('');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(0));
+  }
+
+  void test_parseCompilationUnit_exportAsPrefix() {
+    createParser('export.A _export = new export.A();');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_exportAsPrefix_parameterized() {
+    createParser('export<dynamic> _export = new export.A();');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_operatorAsPrefix_parameterized() {
+    createParser('operator<dynamic> _operator = new operator.A();');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_script() {
+    createParser('#! /bin/dart');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNotNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(0));
+  }
+
+  void test_parseCompilationUnit_skipFunctionBody_withInterpolation() {
+    ParserTestCase.parseFunctionBodies = false;
+    createParser('f() { "\${n}"; }');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_topLevelDeclaration() {
+    createParser('class A {}');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnit_typedefAsPrefix() {
+    createParser('typedef.A _typedef = new typedef.A();');
+    CompilationUnit unit = parser.parseCompilationUnit2();
+    expect(unit, isNotNull);
+    assertNoErrors();
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+    expect(unit.declarations, hasLength(1));
+  }
+
+  void test_parseCompilationUnitMember_abstractAsPrefix() {
+    createParser('abstract.A _abstract = new abstract.A();');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
+    TopLevelVariableDeclaration declaration = member;
+    expect(declaration.semicolon, isNotNull);
+    expect(declaration.variables, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_class() {
+    createParser('class A {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassDeclaration>());
+    ClassDeclaration declaration = member;
+    expect(declaration.name.name, "A");
+    expect(declaration.members, hasLength(0));
+  }
+
+  void test_parseCompilationUnitMember_classTypeAlias() {
+    createParser('abstract class A = B with C;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias declaration = member;
+    expect(declaration.name.name, "A");
+    expect(declaration.abstractKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_constVariable() {
+    createParser('const int x = 0;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
+    TopLevelVariableDeclaration declaration = member;
+    expect(declaration.semicolon, isNotNull);
+    expect(declaration.variables, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_expressionFunctionBody_tokens() {
+    createParser('f() => 0;');
+    var f = parseFullCompilationUnitMember() as FunctionDeclaration;
+    var body = f.functionExpression.body as ExpressionFunctionBody;
+    expect(body.functionDefinition.lexeme, '=>');
+    expect(body.semicolon.lexeme, ';');
+  }
+
+  void test_parseCompilationUnitMember_finalVariable() {
+    createParser('final x = 0;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
+    TopLevelVariableDeclaration declaration = member;
+    expect(declaration.semicolon, isNotNull);
+    expect(declaration.variables, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_function_external_noType() {
+    createParser('external f();');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.externalKeyword, isNotNull);
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseCompilationUnitMember_function_external_type() {
+    createParser('external int f();');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.externalKeyword, isNotNull);
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseCompilationUnitMember_function_generic_noReturnType() {
+    createParser('f<E>() {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.returnType, isNull);
+    expect(declaration.functionExpression.typeParameters, isNotNull);
+  }
+
+  void
+      test_parseCompilationUnitMember_function_generic_noReturnType_annotated() {
+    createParser('f<@a E>() {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.returnType, isNull);
+    expect(declaration.functionExpression.typeParameters, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_function_generic_returnType() {
+    createParser('E f<E>() {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.returnType, isNotNull);
+    expect(declaration.functionExpression.typeParameters, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_function_generic_void() {
+    createParser('void f<T>(T t) {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseCompilationUnitMember_function_noType() {
+    createParser('f() {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseCompilationUnitMember_function_type() {
+    createParser('int f() {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseCompilationUnitMember_function_void() {
+    createParser('void f() {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.returnType, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_getter_external_noType() {
+    createParser('external get p;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.externalKeyword, isNotNull);
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_getter_external_type() {
+    createParser('external int get p;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.externalKeyword, isNotNull);
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_getter_noType() {
+    createParser('get p => 0;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_getter_type() {
+    createParser('int get p => 0;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_setter_external_noType() {
+    createParser('external set p(v);');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.externalKeyword, isNotNull);
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_setter_external_type() {
+    createParser('external void set p(int v);');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.externalKeyword, isNotNull);
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_setter_noType() {
+    createParser('set p(v) {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_setter_type() {
+    createParser('void set p(int v) {}');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionDeclaration>());
+    FunctionDeclaration declaration = member;
+    expect(declaration.functionExpression, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+    expect(declaration.returnType, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_typeAlias_abstract() {
+    createParser('abstract class C = S with M;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias typeAlias = member;
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name.name, "C");
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.equals, isNotNull);
+    expect(typeAlias.abstractKeyword, isNotNull);
+    expect(typeAlias.superclass.name.name, "S");
+    expect(typeAlias.withClause, isNotNull);
+    expect(typeAlias.implementsClause, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_typeAlias_generic() {
+    createParser('class C<E> = S<E> with M<E> implements I<E>;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias typeAlias = member;
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name.name, "C");
+    expect(typeAlias.typeParameters.typeParameters, hasLength(1));
+    expect(typeAlias.equals, isNotNull);
+    expect(typeAlias.abstractKeyword, isNull);
+    expect(typeAlias.superclass.name.name, "S");
+    expect(typeAlias.withClause, isNotNull);
+    expect(typeAlias.implementsClause, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_typeAlias_implements() {
+    createParser('class C = S with M implements I;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias typeAlias = member;
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name.name, "C");
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.equals, isNotNull);
+    expect(typeAlias.abstractKeyword, isNull);
+    expect(typeAlias.superclass.name.name, "S");
+    expect(typeAlias.withClause, isNotNull);
+    expect(typeAlias.implementsClause, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_typeAlias_noImplements() {
+    createParser('class C = S with M;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<ClassTypeAlias>());
+    ClassTypeAlias typeAlias = member;
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name.name, "C");
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.equals, isNotNull);
+    expect(typeAlias.abstractKeyword, isNull);
+    expect(typeAlias.superclass.name.name, "S");
+    expect(typeAlias.withClause, isNotNull);
+    expect(typeAlias.implementsClause, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_typedef() {
+    createParser('typedef F();');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<FunctionTypeAlias>());
+    FunctionTypeAlias typeAlias = member;
+    expect(typeAlias.name.name, "F");
+    expect(typeAlias.parameters.parameters, hasLength(0));
+  }
+
+  void test_parseCompilationUnitMember_variable() {
+    createParser('var x = 0;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
+    TopLevelVariableDeclaration declaration = member;
+    expect(declaration.semicolon, isNotNull);
+    expect(declaration.variables, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_variableGet() {
+    createParser('String get = null;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
+    TopLevelVariableDeclaration declaration = member;
+    expect(declaration.semicolon, isNotNull);
+    expect(declaration.variables, isNotNull);
+  }
+
+  void test_parseCompilationUnitMember_variableSet() {
+    createParser('String set = null;');
+    CompilationUnitMember member = parseFullCompilationUnitMember();
+    expect(member, isNotNull);
+    assertNoErrors();
+    expect(member, new isInstanceOf<TopLevelVariableDeclaration>());
+    TopLevelVariableDeclaration declaration = member;
+    expect(declaration.semicolon, isNotNull);
+    expect(declaration.variables, isNotNull);
+  }
+
+  void test_parseDirective_export() {
+    createParser("export 'lib/lib.dart';");
+    Directive directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive, new isInstanceOf<ExportDirective>());
+    ExportDirective exportDirective = directive;
+    expect(exportDirective.keyword, isNotNull);
+    expect(exportDirective.uri, isNotNull);
+    expect(exportDirective.combinators, hasLength(0));
+    expect(exportDirective.semicolon, isNotNull);
+  }
+
+  void test_parseDirective_import() {
+    createParser("import 'lib/lib.dart';");
+    Directive directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive, new isInstanceOf<ImportDirective>());
+    ImportDirective importDirective = directive;
+    expect(importDirective.keyword, isNotNull);
+    expect(importDirective.uri, isNotNull);
+    expect(importDirective.asKeyword, isNull);
+    expect(importDirective.prefix, isNull);
+    expect(importDirective.combinators, hasLength(0));
+    expect(importDirective.semicolon, isNotNull);
+  }
+
+  void test_parseDirective_library() {
+    createParser("library l;");
+    Directive directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive, new isInstanceOf<LibraryDirective>());
+    LibraryDirective libraryDirective = directive;
+    expect(libraryDirective.libraryKeyword, isNotNull);
+    expect(libraryDirective.name, isNotNull);
+    expect(libraryDirective.semicolon, isNotNull);
+  }
+
+  void test_parseDirective_library_1_component() {
+    createParser("library a;");
+    var lib = parseFullDirective() as LibraryDirective;
+    expect(lib.name.components, hasLength(1));
+    expect(lib.name.components[0].name, 'a');
+  }
+
+  void test_parseDirective_library_2_components() {
+    createParser("library a.b;");
+    var lib = parseFullDirective() as LibraryDirective;
+    expect(lib.name.components, hasLength(2));
+    expect(lib.name.components[0].name, 'a');
+    expect(lib.name.components[1].name, 'b');
+  }
+
+  void test_parseDirective_library_3_components() {
+    createParser("library a.b.c;");
+    var lib = parseFullDirective() as LibraryDirective;
+    expect(lib.name.components, hasLength(3));
+    expect(lib.name.components[0].name, 'a');
+    expect(lib.name.components[1].name, 'b');
+    expect(lib.name.components[2].name, 'c');
+  }
+
+  void test_parseDirective_part() {
+    createParser("part 'lib/lib.dart';");
+    Directive directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive, new isInstanceOf<PartDirective>());
+    PartDirective partDirective = directive;
+    expect(partDirective.partKeyword, isNotNull);
+    expect(partDirective.uri, isNotNull);
+    expect(partDirective.semicolon, isNotNull);
+  }
+
+  void test_parseDirective_part_of_1_component() {
+    createParser("part of a;");
+    var partOf = parseFullDirective() as PartOfDirective;
+    expect(partOf.libraryName.components, hasLength(1));
+    expect(partOf.libraryName.components[0].name, 'a');
+  }
+
+  void test_parseDirective_part_of_2_components() {
+    createParser("part of a.b;");
+    var partOf = parseFullDirective() as PartOfDirective;
+    expect(partOf.libraryName.components, hasLength(2));
+    expect(partOf.libraryName.components[0].name, 'a');
+    expect(partOf.libraryName.components[1].name, 'b');
+  }
+
+  void test_parseDirective_part_of_3_components() {
+    createParser("part of a.b.c;");
+    var partOf = parseFullDirective() as PartOfDirective;
+    expect(partOf.libraryName.components, hasLength(3));
+    expect(partOf.libraryName.components[0].name, 'a');
+    expect(partOf.libraryName.components[1].name, 'b');
+    expect(partOf.libraryName.components[2].name, 'c');
+  }
+
+  void test_parseDirective_partOf() {
+    createParser("part of l;");
+    Directive directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive, new isInstanceOf<PartOfDirective>());
+    PartOfDirective partOfDirective = directive;
+    expect(partOfDirective.partKeyword, isNotNull);
+    expect(partOfDirective.ofKeyword, isNotNull);
+    expect(partOfDirective.libraryName, isNotNull);
+    expect(partOfDirective.semicolon, isNotNull);
+  }
+
+  void test_parseDirectives_complete() {
+    CompilationUnit unit =
+        parseDirectives("#! /bin/dart\nlibrary l;\nclass A {}");
+    expect(unit.scriptTag, isNotNull);
+    expect(unit.directives, hasLength(1));
+  }
+
+  void test_parseDirectives_empty() {
+    CompilationUnit unit = parseDirectives("");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+  }
+
+  void test_parseDirectives_mixed() {
+    CompilationUnit unit =
+        parseDirectives("library l; class A {} part 'foo.dart';");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(1));
+  }
+
+  void test_parseDirectives_multiple() {
+    CompilationUnit unit = parseDirectives("library l;\npart 'a.dart';");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(2));
+  }
+
+  void test_parseDirectives_script() {
+    CompilationUnit unit = parseDirectives("#! /bin/dart");
+    expect(unit.scriptTag, isNotNull);
+    expect(unit.directives, hasLength(0));
+  }
+
+  void test_parseDirectives_single() {
+    CompilationUnit unit = parseDirectives("library l;");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(1));
+  }
+
+  void test_parseDirectives_topLevelDeclaration() {
+    CompilationUnit unit = parseDirectives("class A {}");
+    expect(unit.scriptTag, isNull);
+    expect(unit.directives, hasLength(0));
+  }
+
+  void test_parseEnumDeclaration_one() {
+    createParser("enum E {ONE}");
+    EnumDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.enumKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.constants, hasLength(1));
+    expect(declaration.rightBracket, isNotNull);
+  }
+
+  void test_parseEnumDeclaration_trailingComma() {
+    createParser("enum E {ONE,}");
+    EnumDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.enumKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.constants, hasLength(1));
+    expect(declaration.rightBracket, isNotNull);
+  }
+
+  void test_parseEnumDeclaration_two() {
+    createParser("enum E {ONE, TWO}");
+    EnumDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expect(declaration.documentationComment, isNull);
+    expect(declaration.enumKeyword, isNotNull);
+    expect(declaration.leftBracket, isNotNull);
+    expect(declaration.name, isNotNull);
+    expect(declaration.constants, hasLength(2));
+    expect(declaration.rightBracket, isNotNull);
+  }
+
+  void test_parseExportDirective_configuration_multiple() {
+    createParser("export 'lib/lib.dart' if (a) 'b.dart' if (c) 'd.dart';");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.configurations, hasLength(2));
+    expectDottedName(directive.configurations[0].name, ['a']);
+    expectDottedName(directive.configurations[1].name, ['c']);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseExportDirective_configuration_single() {
+    createParser("export 'lib/lib.dart' if (a.b == 'c.dart') '';");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.configurations, hasLength(1));
+    expectDottedName(directive.configurations[0].name, ['a', 'b']);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseExportDirective_hide() {
+    createParser("export 'lib/lib.dart' hide A, B;");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.combinators, hasLength(1));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseExportDirective_hide_show() {
+    createParser("export 'lib/lib.dart' hide A show B;");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.combinators, hasLength(2));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseExportDirective_noCombinator() {
+    createParser("export 'lib/lib.dart';");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseExportDirective_show() {
+    createParser("export 'lib/lib.dart' show A, B;");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.combinators, hasLength(1));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseExportDirective_show_hide() {
+    createParser("export 'lib/lib.dart' show B hide A;");
+    ExportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.combinators, hasLength(2));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseFunctionDeclaration_function() {
+    createParser('/// Doc\nT f() {}');
+    FunctionDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expectCommentText(declaration.documentationComment, '/// Doc');
+    expect((declaration.returnType as TypeName).name.name, 'T');
+    expect(declaration.name, isNotNull);
+    FunctionExpression expression = declaration.functionExpression;
+    expect(expression, isNotNull);
+    expect(expression.body, isNotNull);
+    expect(expression.typeParameters, isNull);
+    expect(expression.parameters, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseFunctionDeclaration_functionWithTypeParameters() {
+    createParser('/// Doc\nT f<E>() {}');
+    FunctionDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expectCommentText(declaration.documentationComment, '/// Doc');
+    expect((declaration.returnType as TypeName).name.name, 'T');
+    expect(declaration.name, isNotNull);
+    FunctionExpression expression = declaration.functionExpression;
+    expect(expression, isNotNull);
+    expect(expression.body, isNotNull);
+    expect(expression.typeParameters, isNotNull);
+    expect(expression.parameters, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseFunctionDeclaration_functionWithTypeParameters_comment() {
+    enableGenericMethodComments = true;
+    createParser('/// Doc\nT f/*<E>*/() {}');
+    FunctionDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expectCommentText(declaration.documentationComment, '/// Doc');
+    expect((declaration.returnType as TypeName).name.name, 'T');
+    expect(declaration.name, isNotNull);
+    FunctionExpression expression = declaration.functionExpression;
+    expect(expression, isNotNull);
+    expect(expression.body, isNotNull);
+    expect(expression.typeParameters, isNotNull);
+    expect(expression.parameters, isNotNull);
+    expect(declaration.propertyKeyword, isNull);
+  }
+
+  void test_parseFunctionDeclaration_getter() {
+    createParser('/// Doc\nT get p => 0;');
+    FunctionDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expectCommentText(declaration.documentationComment, '/// Doc');
+    expect((declaration.returnType as TypeName).name.name, 'T');
+    expect(declaration.name, isNotNull);
+    FunctionExpression expression = declaration.functionExpression;
+    expect(expression, isNotNull);
+    expect(expression.body, isNotNull);
+    expect(expression.typeParameters, isNull);
+    expect(expression.parameters, isNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  void test_parseFunctionDeclaration_setter() {
+    createParser('/// Doc\nT set p(v) {}');
+    FunctionDeclaration declaration = parseFullCompilationUnitMember();
+    expect(declaration, isNotNull);
+    assertNoErrors();
+    expectCommentText(declaration.documentationComment, '/// Doc');
+    expect((declaration.returnType as TypeName).name.name, 'T');
+    expect(declaration.name, isNotNull);
+    FunctionExpression expression = declaration.functionExpression;
+    expect(expression, isNotNull);
+    expect(expression.body, isNotNull);
+    expect(expression.typeParameters, isNull);
+    expect(expression.parameters, isNotNull);
+    expect(declaration.propertyKeyword, isNotNull);
+  }
+
+  @failingTest
+  void test_parseGenericTypeAlias_noTypeParameters() {
+    createParser('F = int Function(int);');
+    GenericTypeAlias alias = parseFullCompilationUnitMember();
+    expect(alias, isNotNull);
+    assertNoErrors();
+    expect(alias.name, isNotNull);
+    expect(alias.name.name, 'F');
+    expect(alias.typeParameters, isNull);
+    expect(alias.equals, isNotNull);
+    expect(alias.functionType, isNotNull);
+    expect(alias.semicolon, isNotNull);
+  }
+
+  @failingTest
+  void test_parseGenericTypeAlias_typeParameters() {
+    createParser('F<T> = T Function(T);');
+    GenericTypeAlias alias = parseFullCompilationUnitMember();
+    expect(alias, isNotNull);
+    assertNoErrors();
+    expect(alias.name, isNotNull);
+    expect(alias.name.name, 'F');
+    expect(alias.typeParameters, isNotNull);
+    expect(alias.equals, isNotNull);
+    expect(alias.functionType, isNotNull);
+    expect(alias.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_configuration_multiple() {
+    createParser("import 'lib/lib.dart' if (a) 'b.dart' if (c) 'd.dart';");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.configurations, hasLength(2));
+    expectDottedName(directive.configurations[0].name, ['a']);
+    expectDottedName(directive.configurations[1].name, ['c']);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNull);
+    expect(directive.prefix, isNull);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_configuration_single() {
+    createParser("import 'lib/lib.dart' if (a.b == 'c.dart') '';");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.configurations, hasLength(1));
+    expectDottedName(directive.configurations[0].name, ['a', 'b']);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNull);
+    expect(directive.prefix, isNull);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_deferred() {
+    createParser("import 'lib/lib.dart' deferred as a;");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNotNull);
+    expect(directive.asKeyword, isNotNull);
+    expect(directive.prefix, isNotNull);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_hide() {
+    createParser("import 'lib/lib.dart' hide A, B;");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNull);
+    expect(directive.prefix, isNull);
+    expect(directive.combinators, hasLength(1));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_noCombinator() {
+    createParser("import 'lib/lib.dart';");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNull);
+    expect(directive.prefix, isNull);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_prefix() {
+    createParser("import 'lib/lib.dart' as a;");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNotNull);
+    expect(directive.prefix, isNotNull);
+    expect(directive.combinators, hasLength(0));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_prefix_hide_show() {
+    createParser("import 'lib/lib.dart' as a hide A show B;");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNotNull);
+    expect(directive.prefix, isNotNull);
+    expect(directive.combinators, hasLength(2));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_prefix_show_hide() {
+    createParser("import 'lib/lib.dart' as a show B hide A;");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNotNull);
+    expect(directive.prefix, isNotNull);
+    expect(directive.combinators, hasLength(2));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseImportDirective_show() {
+    createParser("import 'lib/lib.dart' show A, B;");
+    ImportDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.keyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.deferredKeyword, isNull);
+    expect(directive.asKeyword, isNull);
+    expect(directive.prefix, isNull);
+    expect(directive.combinators, hasLength(1));
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseLibraryDirective() {
+    createParser('library l;');
+    LibraryDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.libraryKeyword, isNotNull);
+    expect(directive.name, isNotNull);
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parsePartDirective() {
+    createParser("part 'lib/lib.dart';");
+    PartDirective directive = parseFullDirective();
+    expect(directive, isNotNull);
+    assertNoErrors();
+    expect(directive.partKeyword, isNotNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parsePartOfDirective_name() {
+    enableUriInPartOf = true;
+    createParser("part of l;");
+    PartOfDirective directive = parseFullDirective();
+    expect(directive.partKeyword, isNotNull);
+    expect(directive.ofKeyword, isNotNull);
+    expect(directive.libraryName, isNotNull);
+    expect(directive.uri, isNull);
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parsePartOfDirective_uri() {
+    enableUriInPartOf = true;
+    createParser("part of 'lib.dart';");
+    PartOfDirective directive = parseFullDirective();
+    expect(directive.partKeyword, isNotNull);
+    expect(directive.ofKeyword, isNotNull);
+    expect(directive.libraryName, isNull);
+    expect(directive.uri, isNotNull);
+    expect(directive.semicolon, isNotNull);
+  }
+
+  void test_parseTypeAlias_function_noParameters() {
+    createParser('typedef bool F();');
+    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.parameters, isNotNull);
+    expect(typeAlias.returnType, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_function_noReturnType() {
+    createParser('typedef F();');
+    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.parameters, isNotNull);
+    expect(typeAlias.returnType, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_function_parameterizedReturnType() {
+    createParser('typedef A<B> F();');
+    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.parameters, isNotNull);
+    expect(typeAlias.returnType, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_function_parameters() {
+    createParser('typedef bool F(Object value);');
+    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.parameters, isNotNull);
+    expect(typeAlias.returnType, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_function_typeParameters() {
+    createParser('typedef bool F<E>();');
+    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.parameters, isNotNull);
+    expect(typeAlias.returnType, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+  }
+
+  void test_parseTypeAlias_function_voidReturnType() {
+    createParser('typedef void F();');
+    FunctionTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.parameters, isNotNull);
+    expect(typeAlias.returnType, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_noParameters() {
+    createParser('typedef F = bool Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_noReturnType() {
+    createParser('typedef F = Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_parameterizedReturnType() {
+    createParser('typedef F = A<B> Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_parameters() {
+    createParser('typedef F = bool Function(Object value);');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_typeParameters() {
+    createParser('typedef F = bool Function<E>();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNotNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_typeParameters_noParameters() {
+    createParser('typedef F<T> = bool Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_typeParameters_noReturnType() {
+    createParser('typedef F<T> = Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void
+      test_parseTypeAlias_genericFunction_typeParameters_parameterizedReturnType() {
+    createParser('typedef F<T> = A<B> Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_typeParameters_parameters() {
+    createParser('typedef F<T> = bool Function(Object value);');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_typeParameters_typeParameters() {
+    createParser('typedef F<T> = bool Function<E>();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNotNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_typeParameters_voidReturnType() {
+    createParser('typedef F<T> = void Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNotNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
+  }
+
+  void test_parseTypeAlias_genericFunction_voidReturnType() {
+    createParser('typedef F = void Function();');
+    GenericTypeAlias typeAlias = parseFullCompilationUnitMember();
+    expect(typeAlias, isNotNull);
+    assertNoErrors();
+    expect(typeAlias.typedefKeyword, isNotNull);
+    expect(typeAlias.name, isNotNull);
+    expect(typeAlias.typeParameters, isNull);
+    expect(typeAlias.semicolon, isNotNull);
+    GenericFunctionType functionType = typeAlias.functionType;
+    expect(functionType, isNotNull);
+    expect(functionType.parameters, isNotNull);
+    expect(functionType.returnType, isNotNull);
+    expect(functionType.typeParameters, isNull);
   }
 }
diff --git a/pkg/analyzer/test/src/command_line/arguments_test.dart b/pkg/analyzer/test/src/command_line/arguments_test.dart
index 7e1bb68..fb12cd8 100644
--- a/pkg/analyzer/test/src/command_line/arguments_test.dart
+++ b/pkg/analyzer/test/src/command_line/arguments_test.dart
@@ -61,7 +61,6 @@
     expect(defaultOptions.strongMode, true);
     expect(defaultOptions.implicitCasts, false);
     expect(defaultOptions.implicitDynamic, false);
-    expect(options.pubSummaryManager, isNull);
   }
 
   void test_createContextBuilderOptions_none() {
@@ -83,7 +82,6 @@
     expect(defaultOptions.strongMode, false);
     expect(defaultOptions.implicitCasts, true);
     expect(defaultOptions.implicitDynamic, true);
-    expect(options.pubSummaryManager, isNull);
   }
 
   void test_createDartSdkManager_noPath_noSummaries() {
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 7fcf61d..7bd4dce 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -2213,6 +2213,28 @@
     expect(result.errors, hasLength(0));
   }
 
+  test_results_skipNotAffected() async {
+    var a = _p('/test/lib/a.dart');
+    var b = _p('/test/lib/b.dart');
+    provider.newFile(a, 'class A {}');
+    provider.newFile(b, 'class B {}');
+
+    driver.addFile(a);
+    driver.addFile(b);
+    await scheduler.waitForIdle();
+
+    expect(allResults, hasLength(2));
+    allResults.clear();
+
+    // Update a.dart and notify.
+    provider.updateFile(a, 'class A2 {}');
+    driver.changeFile(a);
+
+    // Only result for a.dart should be produced, b.dart is not affected.
+    await scheduler.waitForIdle();
+    expect(allResults, hasLength(1));
+  }
+
   test_results_status() async {
     addTestFile('int f() => 42;');
     await scheduler.waitForIdle();
diff --git a/pkg/analyzer/test/src/summary/prelinker_test.dart b/pkg/analyzer/test/src/summary/prelinker_test.dart
index 7d59560..1e58a0e 100644
--- a/pkg/analyzer/test/src/summary/prelinker_test.dart
+++ b/pkg/analyzer/test/src/summary/prelinker_test.dart
@@ -4,8 +4,6 @@
 
 library analyzer.test.src.summary.prelinker_test;
 
-import 'package:analyzer/src/generated/utilities_dart.dart';
-import 'package:analyzer/src/summary/format.dart';
 import 'package:analyzer/src/summary/idl.dart';
 import 'package:analyzer/src/summary/prelink.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -36,24 +34,16 @@
   void serializeLibraryText(String text, {bool allowErrors: false}) {
     super.serializeLibraryText(text, allowErrors: allowErrors);
 
-    UnlinkedUnit getPart(String relativeUriStr) {
-      Uri relativeUri;
-      try {
-        relativeUri = Uri.parse(relativeUriStr);
-      } on FormatException {
-        return new UnlinkedUnitBuilder();
-      }
-
-      String absoluteUri =
-          resolveRelativeUri(linkerInputs.testDartUri, relativeUri).toString();
+    UnlinkedUnit getPart(String absoluteUri) {
       return linkerInputs.getUnit(absoluteUri);
     }
 
-    UnlinkedPublicNamespace getImport(String relativeUri) {
-      return getPart(relativeUri)?.publicNamespace;
+    UnlinkedPublicNamespace getImport(String absoluteUri) {
+      return getPart(absoluteUri)?.publicNamespace;
     }
 
     linked = new LinkedLibrary.fromBuffer(prelink(
+        linkerInputs.testDartUri.toString(),
         linkerInputs.unlinkedDefiningUnit,
         getPart,
         getImport,
diff --git a/pkg/analyzer/test/src/summary/pub_summary_test.dart b/pkg/analyzer/test/src/summary/pub_summary_test.dart
deleted file mode 100644
index 62d9145..0000000
--- a/pkg/analyzer/test/src/summary/pub_summary_test.dart
+++ /dev/null
@@ -1,1385 +0,0 @@
-// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:analyzer/file_system/file_system.dart';
-import 'package:analyzer/source/package_map_resolver.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/summary/format.dart';
-import 'package:analyzer/src/summary/idl.dart';
-import 'package:analyzer/src/summary/pub_summary.dart';
-import 'package:analyzer/src/summary/summarize_elements.dart';
-import 'package:path/path.dart' as pathos;
-import 'package:test/test.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-import '../context/abstract_context.dart';
-import '../context/mock_sdk.dart';
-
-main() {
-  defineReflectiveSuite(() {
-    defineReflectiveTests(PubSummaryManagerTest);
-  });
-}
-
-@reflectiveTest
-class PubSummaryManagerTest extends AbstractContextTest {
-  /**
-   * The path to the root of the pubcache directory used in these tests. The
-   * path has not been converted to the current platform, and is therefore only
-   * appropriate for composing paths that will later be converted.
-   */
-  static const String CACHE = '/home/.pub-cache/hosted/pub.dartlang.org';
-
-  PubSummaryManager manager;
-
-  Folder getFolder(String path) =>
-      resourceProvider.getFolder(resourceProvider.convertPath(path));
-
-  File newFile(String path, String content) {
-    //, [int stamp]) {
-    return resourceProvider.newFile(
-        resourceProvider.convertPath(path), content);
-  }
-
-  Folder newFolder(String path) =>
-      resourceProvider.newFolder(resourceProvider.convertPath(path));
-
-  void setUp() {
-    super.setUp();
-    _createManager();
-  }
-
-  test_computeUnlinkedForFolder() async {
-    // Create package files.
-    newFile(
-        '/flutter/aaa/lib/a.dart',
-        '''
-class A {}
-''');
-    newFile(
-        '/flutter/bbb/lib/b.dart',
-        '''
-class B {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('/flutter/aaa/lib');
-    Folder libFolderB = newFolder('/flutter/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    await manager.computeUnlinkedForFolder('aaa', libFolderA);
-    await manager.computeUnlinkedForFolder('bbb', libFolderB);
-
-    // The files must be created.
-    _assertFileExists(libFolderA.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolderA.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-  }
-
-  test_getLinkedBundles_cached() async {
-    String pathA1 = '$CACHE/aaa-1.0.0';
-    String pathA2 = '$CACHE/aaa-2.0.0';
-    newFile(
-        '$pathA1/lib/a.dart',
-        '''
-class A {}
-int a;
-''');
-    newFile(
-        '$pathA2/lib/a.dart',
-        '''
-class A2 {}
-int a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:aaa/a.dart';
-A b;
-''');
-    Folder folderA1 = getFolder(pathA1);
-    Folder folderA2 = getFolder(pathA2);
-    Folder folderB = getFolder('$CACHE/bbb');
-
-    // Configure packages resolution.
-    Folder libFolderA1 = newFolder('$pathA1/lib');
-    Folder libFolderA2 = newFolder('$pathA2/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA1],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Session 1.
-    // Create linked bundles and store them in files.
-    String linkedHashA;
-    String linkedHashB;
-    {
-      // Ensure unlinked bundles.
-      manager.getUnlinkedBundles(context);
-      await manager.onUnlinkedComplete;
-
-      // Now we should be able to get linked bundles.
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(2));
-
-      // Verify that files with linked bundles were created.
-      LinkedPubPackage packageA = _getLinkedPackage(linkedPackages, 'aaa');
-      LinkedPubPackage packageB = _getLinkedPackage(linkedPackages, 'bbb');
-      linkedHashA = packageA.linkedHash;
-      linkedHashB = packageB.linkedHash;
-      _assertFileExists(folderA1, 'linked_spec_$linkedHashA.ds');
-      _assertFileExists(folderB, 'linked_spec_$linkedHashB.ds');
-    }
-
-    // Session 2.
-    // Recreate manager and ask again.
-    {
-      _createManager();
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(2));
-
-      // Verify that linked packages have the same hashes, so they must
-      // be have been read from the previously created files.
-      LinkedPubPackage packageA = _getLinkedPackage(linkedPackages, 'aaa');
-      LinkedPubPackage packageB = _getLinkedPackage(linkedPackages, 'bbb');
-      expect(packageA.linkedHash, linkedHashA);
-      expect(packageB.linkedHash, linkedHashB);
-    }
-
-    // Session 2 with different 'aaa' version.
-    // Different linked bundles.
-    {
-      context.sourceFactory = new SourceFactory(<UriResolver>[
-        sdkResolver,
-        resourceResolver,
-        new PackageMapUriResolver(resourceProvider, {
-          'aaa': [libFolderA2],
-          'bbb': [libFolderB],
-        })
-      ]);
-
-      // Ensure unlinked bundles.
-      manager.getUnlinkedBundles(context);
-      await manager.onUnlinkedComplete;
-
-      // Now we should be able to get linked bundles.
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(2));
-
-      // Verify that new files with linked bundles were created.
-      LinkedPubPackage packageA = _getLinkedPackage(linkedPackages, 'aaa');
-      LinkedPubPackage packageB = _getLinkedPackage(linkedPackages, 'bbb');
-      expect(packageA.linkedHash, isNot(linkedHashA));
-      expect(packageB.linkedHash, isNot(linkedHashB));
-      _assertFileExists(folderA2, 'linked_spec_${packageA.linkedHash}.ds');
-      _assertFileExists(folderB, 'linked_spec_${packageB.linkedHash}.ds');
-    }
-  }
-
-  test_getLinkedBundles_cached_declaredVariables_export() async {
-    await _testImpl_getLinkedBundles_cached_declaredVariables('export');
-  }
-
-  test_getLinkedBundles_cached_declaredVariables_import() async {
-    await _testImpl_getLinkedBundles_cached_declaredVariables('import');
-  }
-
-  test_getLinkedBundles_cached_differentSdk() async {
-    String pathA = '$CACHE/aaa';
-    newFile(
-        '$pathA/lib/a.dart',
-        '''
-class A {}
-int a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:aaa/a.dart';
-A b;
-''');
-    Folder folderA = getFolder(pathA);
-    Folder folderB = getFolder('$CACHE/bbb');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$pathA/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Session 1.
-    // Create linked bundles and store them in files.
-    String linkedHashA;
-    String linkedHashB;
-    {
-      // Ensure unlinked bundles.
-      manager.getUnlinkedBundles(context);
-      await manager.onUnlinkedComplete;
-
-      // Now we should be able to get linked bundles.
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(2));
-
-      // Verify that files with linked bundles were created.
-      LinkedPubPackage packageA = _getLinkedPackage(linkedPackages, 'aaa');
-      LinkedPubPackage packageB = _getLinkedPackage(linkedPackages, 'bbb');
-      linkedHashA = packageA.linkedHash;
-      linkedHashB = packageB.linkedHash;
-      _assertFileExists(folderA, 'linked_spec_$linkedHashA.ds');
-      _assertFileExists(folderB, 'linked_spec_$linkedHashB.ds');
-    }
-
-    // Session 2.
-    // Use DartSdk with a different API signature.
-    // Different linked bundles should be created.
-    {
-      MockSdk sdk = new MockSdk(resourceProvider: resourceProvider);
-      sdk.updateUriFile('dart:math', (String content) {
-        return content + '  class NewMathClass {}';
-      });
-      context.sourceFactory = new SourceFactory(<UriResolver>[
-        new DartUriResolver(sdk),
-        resourceResolver,
-        new PackageMapUriResolver(resourceProvider, {
-          'aaa': [libFolderA],
-          'bbb': [libFolderB],
-        })
-      ]);
-
-      // Ensure unlinked bundles.
-      manager.getUnlinkedBundles(context);
-      await manager.onUnlinkedComplete;
-
-      // Now we should be able to get linked bundles.
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(2));
-
-      // Verify that new files with linked bundles were created.
-      LinkedPubPackage packageA = _getLinkedPackage(linkedPackages, 'aaa');
-      LinkedPubPackage packageB = _getLinkedPackage(linkedPackages, 'bbb');
-      expect(packageA.linkedHash, isNot(linkedHashA));
-      expect(packageB.linkedHash, isNot(linkedHashB));
-      _assertFileExists(folderA, 'linked_spec_${packageA.linkedHash}.ds');
-      _assertFileExists(folderB, 'linked_spec_${packageB.linkedHash}.ds');
-    }
-  }
-
-  test_getLinkedBundles_cached_inconsistent_majorVersion() async {
-    String pathA = '$CACHE/aaa';
-    newFile(
-        '$pathA/lib/a.dart',
-        '''
-class A {}
-int a;
-''');
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$pathA/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-      })
-    ]);
-
-    // Session 1.
-    // Create the linked bundle and cache it in a file.
-    {
-      // Ensure unlinked bundles.
-      manager.getUnlinkedBundles(context);
-      await manager.onUnlinkedComplete;
-
-      // Now we should be able to get the linked bundle.
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(1));
-    }
-
-    // Session 2.
-    // Recreate manager with a different major version.
-    // It cannot use the previously cache linked bundle.
-    // The reason is that we cannot use the cached unlinked bundle.
-    {
-      _createManager(majorVersion: 12345);
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, isEmpty);
-    }
-  }
-
-  test_getLinkedBundles_hasCycle() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'package:bbb/b.dart';
-class A {}
-int a1;
-B a2;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:ccc/c.dart';
-class B {}
-C b;
-''');
-    newFile(
-        '$CACHE/ccc/lib/c.dart',
-        '''
-import 'package:aaa/a.dart';
-import 'package:ddd/d.dart';
-class C {}
-A c1;
-D c2;
-''');
-    newFile(
-        '$CACHE/ddd/lib/d.dart',
-        '''
-class D {}
-String d;
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    Folder libFolderC = newFolder('$CACHE/ccc/lib');
-    Folder libFolderD = newFolder('$CACHE/ddd/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-        'ccc': [libFolderC],
-        'ddd': [libFolderD],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Now we should be able to get linked bundles.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(4));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      expect(linkedPackage.linked.linkedLibraryUris, ['package:aaa/a.dart']);
-      _assertHasLinkedVariable(linkedPackage, 'a1', 'int',
-          expectedTypeNameUri: 'dart:core');
-      _assertHasLinkedVariable(linkedPackage, 'a2', 'B',
-          expectedTypeNameUri: 'package:bbb/b.dart');
-    }
-
-    // package:bbb
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'bbb');
-      expect(linkedPackage.linked.linkedLibraryUris, ['package:bbb/b.dart']);
-      _assertHasLinkedVariable(linkedPackage, 'b', 'C',
-          expectedTypeNameUri: 'package:ccc/c.dart');
-    }
-
-    // package:ccc
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'ccc');
-      expect(linkedPackage.linked.linkedLibraryUris, ['package:ccc/c.dart']);
-      _assertHasLinkedVariable(linkedPackage, 'c1', 'A',
-          expectedTypeNameUri: 'package:aaa/a.dart');
-      _assertHasLinkedVariable(linkedPackage, 'c2', 'D',
-          expectedTypeNameUri: 'package:ddd/d.dart');
-    }
-
-    // package:ddd
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'ddd');
-      expect(linkedPackage.linked.linkedLibraryUris, ['package:ddd/d.dart']);
-      _assertHasLinkedVariable(linkedPackage, 'd', 'String',
-          expectedTypeNameUri: 'dart:core');
-    }
-  }
-
-  test_getLinkedBundles_missingBundle_listed() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'package:bbb/b.dart';
-B a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-class B {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Ensure unlinked bundles for 'aaa'.
-    await manager.computeUnlinkedForFolder('aaa', libFolderA);
-
-    // Try to link.
-    // Neither 'aaa' nor 'bbb' are linked.
-    // 'bbb' does not have the unlinked bundle.
-    // 'aaa' is not linked because it references 'bbb', which is listed.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(0));
-  }
-
-  test_getLinkedBundles_missingBundle_listed_chained() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'package:bbb/b.dart';
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:ccc/c.dart';
-''');
-    newFile(
-        '$CACHE/ccc/lib/c.dart',
-        '''
-class C {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    Folder libFolderC = newFolder('$CACHE/ccc/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-        'ccc': [libFolderC],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    await manager.computeUnlinkedForFolder('aaa', libFolderA);
-    await manager.computeUnlinkedForFolder('bbb', libFolderB);
-
-    // Try to link.
-    // Neither 'aaa' nor 'bbb' are linked.
-    // 'ccc' is listed in the package map, but its unlinked bundle is not ready.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(0));
-  }
-
-  test_getLinkedBundles_missingBundle_listed_partial() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-int a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:ccc/c.dart';
-C b;
-''');
-    newFile(
-        '$CACHE/ccc/lib/c.dart',
-        '''
-class C {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    Folder libFolderC = newFolder('$CACHE/ccc/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-        'ccc': [libFolderC],
-      })
-    ]);
-
-    // Ensure unlinked bundles for 'aaa'.
-    await manager.computeUnlinkedForFolder('aaa', libFolderA);
-    await manager.computeUnlinkedForFolder('bbb', libFolderB);
-
-    // Try to link.
-    // Only 'aaa' is linked.
-    // The package 'bbb' references the listed 'ccc' without unlinked bundle.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(1));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a', 'int',
-          expectedTypeNameUri: 'dart:core');
-    }
-  }
-
-  test_getLinkedBundles_missingBundle_notListed() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-int a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:ccc/c.dart';
-int b1;
-C b2;
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Try to link.
-    // Both 'aaa' and 'bbb' are linked.
-    // The package 'ccc' is not listed, so it cannot be resolved anyway,
-    // with summaries or without them.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(2));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a', 'int',
-          expectedTypeNameUri: 'dart:core');
-    }
-
-    // package:bbb
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'bbb');
-      _assertHasLinkedVariable(linkedPackage, 'b1', 'int',
-          expectedTypeNameUri: 'dart:core');
-      _assertHasLinkedVariable(linkedPackage, 'b2', 'C',
-          expectedToBeResolved: false);
-    }
-  }
-
-  test_getLinkedBundles_missingLibrary() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'package:bbb/b2.dart';
-int a1;
-B2 a2;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-class B {}
-int b = 42;
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Try to link.
-    // Both 'aaa' and 'bbb' are linked.
-    // The name 'B2' in 'a.dart' is not resolved.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(2));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a1', 'int',
-          expectedTypeNameUri: 'dart:core');
-      _assertHasLinkedVariable(linkedPackage, 'a2', 'B2',
-          expectedToBeResolved: false);
-    }
-
-    // package:bbb
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'bbb');
-      _assertHasLinkedVariable(linkedPackage, 'b', 'int',
-          expectedTypeNameUri: 'dart:core');
-    }
-  }
-
-  test_getLinkedBundles_missingLibrary_hasCycle() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'package:bbb/b.dart';
-B a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:aaa/a.dart';
-import 'package:ccc/c2.dart';
-class B {}
-int b1;
-C2 b2;
-''');
-    newFile(
-        '$CACHE/ccc/lib/c.dart',
-        '''
-class C {}
-int c;
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    Folder libFolderC = newFolder('$CACHE/ccc/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-        'ccc': [libFolderC],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Try to link.
-    // All bundles 'aaa' and 'bbb' and 'ccc' are linked.
-    // The name 'C2' in 'b.dart' is not resolved.
-    // We have the corresponding unlinked bundle, and it is full, so if it does
-    // not have the library 'package:ccc/c2.dart', this means that this library
-    // does not exist in 'ccc' at all.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(3));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a', 'B',
-          expectedTypeNameUri: 'package:bbb/b.dart');
-    }
-
-    // package:bbb
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'bbb');
-      _assertHasLinkedVariable(linkedPackage, 'b1', 'int',
-          expectedTypeNameUri: 'dart:core');
-      _assertHasLinkedVariable(linkedPackage, 'b2', 'C2',
-          expectedToBeResolved: false);
-    }
-
-    // package:ccc
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'ccc');
-      _assertHasLinkedVariable(linkedPackage, 'c', 'int',
-          expectedTypeNameUri: 'dart:core');
-    }
-  }
-
-  test_getLinkedBundles_noCycle() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-class A {}
-int a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-import 'package:aaa/a.dart';
-A b;
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Now we should be able to get linked bundles.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(2));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a', 'int',
-          expectedTypeNameUri: 'dart:core');
-    }
-
-    // package:bbb
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'bbb');
-      _assertHasLinkedVariable(linkedPackage, 'b', 'A',
-          expectedTypeNameUri: 'package:aaa/a.dart');
-    }
-  }
-
-  test_getLinkedBundles_noCycle_relativeUri() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'src/a2.dart';
-A a;
-''');
-    newFile(
-        '$CACHE/aaa/lib/src/a2.dart',
-        '''
-class A {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Link.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(1));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a', 'A',
-          expectedTypeNameUri: 'src/a2.dart');
-    }
-  }
-
-  test_getLinkedBundles_noCycle_withExport() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'package:bbb/b.dart';
-C a;
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-export 'package:ccc/c.dart';
-''');
-    newFile(
-        '$CACHE/ccc/lib/c.dart',
-        '''
-class C {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    Folder libFolderC = newFolder('$CACHE/ccc/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-        'ccc': [libFolderC],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Now we should be able to get linked bundles.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(3));
-
-    // package:aaa
-    {
-      LinkedPubPackage linkedPackage = linkedPackages
-          .singleWhere((linkedPackage) => linkedPackage.package.name == 'aaa');
-      _assertHasLinkedVariable(linkedPackage, 'a', 'C',
-          expectedTypeNameUri: 'package:ccc/c.dart');
-    }
-  }
-
-  test_getLinkedBundles_wrongScheme() async {
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-import 'xxx:yyy/zzz.dart';
-int a1;
-Z a2;
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-      })
-    ]);
-
-    // Ensure unlinked bundles.
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-
-    // Try to link.
-    // The package 'aaa' is not linked.
-    // We don't know how to handle the URI scheme 'xxx'.
-    List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-    expect(linkedPackages, hasLength(0));
-  }
-
-  test_getPackageName() {
-    String getPackageName(String uriStr) {
-      return PubSummaryManager.getPackageName(uriStr);
-    }
-
-    expect(getPackageName('package:foo/bar.dart'), 'foo');
-    expect(getPackageName('package:foo/bar/baz.dart'), 'foo');
-    expect(getPackageName('wrong:foo/bar.dart'), isNull);
-    expect(getPackageName('package:foo'), isNull);
-  }
-
-  test_getUnlinkedBundles() async {
-    // Create package files.
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-class A {}
-''');
-    newFile(
-        '$CACHE/aaa/lib/src/a2.dart',
-        '''
-class A2 {}
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-class B {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = newFolder('$CACHE/aaa/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // No unlinked bundles yet.
-    {
-      Map<PubPackage, PackageBundle> bundles =
-          manager.getUnlinkedBundles(context);
-      expect(bundles, isEmpty);
-    }
-
-    // The requested unlinked bundles must be available after the wait.
-    await manager.onUnlinkedComplete;
-    {
-      Map<PubPackage, PackageBundle> bundles =
-          manager.getUnlinkedBundles(context);
-      expect(bundles, hasLength(2));
-      {
-        PackageBundle bundle = _getBundleByPackageName(bundles, 'aaa');
-        expect(bundle.linkedLibraryUris, isEmpty);
-        expect(bundle.unlinkedUnitUris,
-            ['package:aaa/a.dart', 'package:aaa/src/a2.dart']);
-        expect(bundle.unlinkedUnits, hasLength(2));
-        expect(bundle.unlinkedUnits[0].classes.map((c) => c.name), ['A']);
-        expect(bundle.unlinkedUnits[1].classes.map((c) => c.name), ['A2']);
-      }
-      {
-        PackageBundle bundle = _getBundleByPackageName(bundles, 'bbb');
-        expect(bundle.linkedLibraryUris, isEmpty);
-        expect(bundle.unlinkedUnitUris, ['package:bbb/b.dart']);
-        expect(bundle.unlinkedUnits, hasLength(1));
-        expect(bundle.unlinkedUnits[0].classes.map((c) => c.name), ['B']);
-      }
-    }
-
-    // The files must be created.
-    _assertFileExists(libFolderA.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolderA.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-  }
-
-  test_getUnlinkedBundles_inconsistent_majorVersion() async {
-    // Create package files.
-    newFile(
-        '$CACHE/aaa/lib/a.dart',
-        '''
-class A {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolder = newFolder('$CACHE/aaa/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolder],
-      })
-    ]);
-
-    /**
-     * Verify that the [manager] has exactly one cache bundle `aaa`.
-     */
-    void _assertSingleBundle() {
-      Map<PubPackage, PackageBundle> bundles =
-          manager.getUnlinkedBundles(context);
-      expect(bundles, hasLength(1));
-      PackageBundle bundle = _getBundleByPackageName(bundles, 'aaa');
-      expect(bundle.unlinkedUnitUris, ['package:aaa/a.dart']);
-    }
-
-    // Compute the bundle using a non-default major version.
-    _createManager(majorVersion: 12345);
-    manager.getUnlinkedBundles(context);
-    await manager.onUnlinkedComplete;
-    _assertSingleBundle();
-
-    // Recompute when using the default major version.
-    _createManager();
-    expect(manager.getUnlinkedBundles(context), isEmpty);
-
-    // Wait for the bundle to be computed.
-    await manager.onUnlinkedComplete;
-    _assertSingleBundle();
-    _assertFileExists(libFolder.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolder.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-
-    // Can read from the file again.
-    _createManager();
-    _assertSingleBundle();
-  }
-
-  test_getUnlinkedBundles_notPubCache_dontCreate() async {
-    String aaaPath = '/Users/user/projects/aaa';
-    // Create package files.
-    newFile(
-        '$aaaPath/lib/a.dart',
-        '''
-class A {}
-''');
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-class B {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = getFolder('$aaaPath/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // No unlinked bundles initially.
-    {
-      Map<PubPackage, PackageBundle> bundles =
-          manager.getUnlinkedBundles(context);
-      expect(bundles, isEmpty);
-    }
-
-    // Wait for unlinked bundles to be computed.
-    await manager.onUnlinkedComplete;
-    Map<PubPackage, PackageBundle> bundles =
-        manager.getUnlinkedBundles(context);
-    // We have just one bundle - for 'bbb'.
-    expect(bundles, hasLength(1));
-    // We computed the unlinked bundle for 'bbb'.
-    {
-      PackageBundle bundle = _getBundleByPackageName(bundles, 'bbb');
-      expect(bundle.linkedLibraryUris, isEmpty);
-      expect(bundle.unlinkedUnitUris, ['package:bbb/b.dart']);
-      expect(bundle.unlinkedUnits, hasLength(1));
-      expect(bundle.unlinkedUnits[0].classes.map((c) => c.name), ['B']);
-    }
-
-    // The files must be created.
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-  }
-
-  test_getUnlinkedBundles_notPubCache_useExisting() async {
-    String aaaPath = '/Users/user/projects/aaa';
-    // Create package files.
-    {
-      File file = newFile(
-          '$aaaPath/lib/a.dart',
-          '''
-class A {}
-''');
-      PackageBundleAssembler assembler = new PackageBundleAssembler()
-        ..addUnlinkedUnit(
-            file.createSource(Uri.parse('package:aaa/a.dart')),
-            new UnlinkedUnitBuilder());
-      resourceProvider.newFileWithBytes(
-          resourceProvider
-              .convertPath('$aaaPath/${PubSummaryManager.UNLINKED_SPEC_NAME}'),
-          assembler.assemble().toBuffer());
-    }
-    newFile(
-        '$CACHE/bbb/lib/b.dart',
-        '''
-class B {}
-''');
-
-    // Configure packages resolution.
-    Folder libFolderA = getFolder('$aaaPath/lib');
-    Folder libFolderB = newFolder('$CACHE/bbb/lib');
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-        'bbb': [libFolderB],
-      })
-    ]);
-
-    // Request already available unlinked bundles.
-    {
-      Map<PubPackage, PackageBundle> bundles =
-          manager.getUnlinkedBundles(context);
-      expect(bundles, hasLength(1));
-      // We get the unlinked bundle for 'aaa' because it already exists.
-      {
-        PackageBundle bundle = _getBundleByPackageName(bundles, 'aaa');
-        expect(bundle, isNotNull);
-      }
-    }
-
-    // Wait for unlinked bundles to be computed.
-    await manager.onUnlinkedComplete;
-    Map<PubPackage, PackageBundle> bundles =
-        manager.getUnlinkedBundles(context);
-    expect(bundles, hasLength(2));
-    // We still have the unlinked bundle for 'aaa'.
-    {
-      PackageBundle bundle = _getBundleByPackageName(bundles, 'aaa');
-      expect(bundle, isNotNull);
-    }
-    // We computed the unlinked bundle for 'bbb'.
-    {
-      PackageBundle bundle = _getBundleByPackageName(bundles, 'bbb');
-      expect(bundle.linkedLibraryUris, isEmpty);
-      expect(bundle.unlinkedUnitUris, ['package:bbb/b.dart']);
-      expect(bundle.unlinkedUnits, hasLength(1));
-      expect(bundle.unlinkedUnits[0].classes.map((c) => c.name), ['B']);
-    }
-
-    // The files must be created.
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_NAME);
-    _assertFileExists(libFolderB.parent, PubSummaryManager.UNLINKED_SPEC_NAME);
-  }
-
-  test_getUnlinkedBundles_notPubCache_useExisting_inconsistent() async {
-    String aaaPath = '/Users/user/projects/aaa';
-    // Create package files.
-    newFile(
-        '$aaaPath/lib/a.dart',
-        '''
-class A {}
-''');
-
-    // Compute the bundles.
-    Folder libFolderA = getFolder('$aaaPath/lib');
-    await new PubSummaryManager(resourceProvider, '_.temp')
-        .computeUnlinkedForFolder('aaa', libFolderA);
-
-    // Configure packages resolution.
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-      })
-    ]);
-
-    // Request already available unlinked bundles.
-    expect(manager.getUnlinkedBundles(context), hasLength(1));
-
-    // Update a Dart file.
-    // So, the cached bundle cannot be reused.
-    resourceProvider.updateFile(
-        resourceProvider.convertPath('$aaaPath/lib/a.dart'),
-        '''
-class A2 {}
-''');
-    _createManager();
-    expect(manager.getUnlinkedBundles(context), isEmpty);
-
-    // ...and because it is not in the pub cache, it will not be recomputed.
-    await manager.onUnlinkedComplete;
-    expect(manager.getUnlinkedBundles(context), isEmpty);
-  }
-
-  test_getUnlinkedBundles_nullPackageMap() async {
-    context.sourceFactory =
-        new SourceFactory(<UriResolver>[sdkResolver, resourceResolver]);
-    Map<PubPackage, PackageBundle> bundles =
-        manager.getUnlinkedBundles(context);
-    expect(bundles, isEmpty);
-  }
-
-  test_isPathInPubCache_posix() {
-    expect(
-        PubSummaryManager.isPathInPubCache(pathos.posix,
-            '/home/.pub-cache/hosted/pub.dartlang.org/foo/lib/bar.dart'),
-        isTrue);
-    expect(
-        PubSummaryManager.isPathInPubCache(
-            pathos.posix, '/home/.pub-cache/foo/lib/bar.dart'),
-        isTrue);
-    expect(
-        PubSummaryManager.isPathInPubCache(
-            pathos.posix, '/home/sources/dart/foo/lib/bar.dart'),
-        isFalse);
-  }
-
-  test_isPathInPubCache_windows() {
-    expect(
-        PubSummaryManager.isPathInPubCache(pathos.windows,
-            r'C:\Users\user\Setters\Pub\Cache\hosted\foo\lib\bar.dart'),
-        isTrue);
-    expect(
-        PubSummaryManager.isPathInPubCache(
-            pathos.windows, r'C:\Users\user\Sources\Dart\foo\lib\bar.dart'),
-        isFalse);
-  }
-
-  void _assertFileExists(Folder folder, String fileName) {
-    expect(folder.getChildAssumingFile(fileName).exists, isTrue);
-  }
-
-  void _assertHasLinkedVariable(LinkedPubPackage linkedPackage,
-      String variableName, String expectedTypeName,
-      {bool expectedToBeResolved: true,
-      String expectedTypeNameUri: 'shouldBeSpecifiedIfResolved'}) {
-    PackageBundle unlinked = linkedPackage.unlinked;
-    PackageBundle linked = linkedPackage.linked;
-    expect(unlinked, isNotNull);
-    expect(linked, isNotNull);
-    for (int i = 0; i < unlinked.unlinkedUnitUris.length; i++) {
-      String unlinkedUnitUri = unlinked.unlinkedUnitUris[i];
-      UnlinkedUnit unlinkedUnit = unlinked.unlinkedUnits[i];
-      for (UnlinkedVariable v in unlinkedUnit.variables) {
-        if (v.name == variableName) {
-          int typeNameReference = v.type.reference;
-          expect(unlinkedUnit.references[typeNameReference].name,
-              expectedTypeName);
-          for (int j = 0; j < linked.linkedLibraryUris.length; j++) {
-            String linkedLibraryUri = linked.linkedLibraryUris[j];
-            if (linkedLibraryUri == unlinkedUnitUri) {
-              LinkedLibrary linkedLibrary = linked.linkedLibraries[j];
-              LinkedUnit linkedUnit = linkedLibrary.units.single;
-              int typeNameDependency =
-                  linkedUnit.references[typeNameReference].dependency;
-              if (expectedToBeResolved) {
-                expect(linkedLibrary.dependencies[typeNameDependency].uri,
-                    expectedTypeNameUri);
-              } else {
-                expect(typeNameDependency, isZero);
-              }
-              return;
-            }
-          }
-          fail('Cannot find linked unit for $variableName in $linkedPackage');
-        }
-      }
-    }
-    fail('Cannot find variable $variableName in $linkedPackage');
-  }
-
-  void _createManager(
-      {bool allowLinking: true,
-      int majorVersion: PackageBundleAssembler.currentMajorVersion}) {
-    manager = new PubSummaryManager(resourceProvider, '_.temp',
-        allowLinking: allowLinking, majorVersion: majorVersion);
-  }
-
-  LinkedPubPackage _getLinkedPackage(
-      List<LinkedPubPackage> packages, String name) {
-    return packages
-        .singleWhere((linkedPackage) => linkedPackage.package.name == name);
-  }
-
-  _testImpl_getLinkedBundles_cached_declaredVariables(
-      String importOrExport) async {
-    String pathA = '$CACHE/aaa/lib';
-    newFile('$pathA/foo.dart', 'class A {}');
-    newFile('$pathA/foo_io.dart', 'class A {}');
-    newFile('$pathA/foo_html.dart', 'class A {}');
-    newFile(
-        '$pathA/user.dart',
-        '''
-$importOrExport 'foo.dart'
-  if (dart.library.io) 'foo_io.dart'
-  if (dart.library.html) 'foo_html.dart';
-''');
-    // Configure packages resolution.
-    Folder libFolderA = newFolder(pathA);
-    context.sourceFactory = new SourceFactory(<UriResolver>[
-      sdkResolver,
-      resourceResolver,
-      new PackageMapUriResolver(resourceProvider, {
-        'aaa': [libFolderA],
-      })
-    ]);
-
-    void _assertDependencyInUser(PackageBundle bundle, String shortName) {
-      for (var i = 0; i < bundle.linkedLibraryUris.length; i++) {
-        if (bundle.linkedLibraryUris[i].endsWith('user.dart')) {
-          LinkedLibrary library = bundle.linkedLibraries[i];
-          expect(library.dependencies.map((d) => d.uri),
-              unorderedEquals(['', 'dart:core', shortName]));
-          return;
-        }
-      }
-      fail('Not found user.dart in $bundle');
-    }
-
-    // Session 1.
-    // Create the linked bundle and cache it in a file.
-    {
-      // Ensure unlinked bundles.
-      manager.getUnlinkedBundles(context);
-      await manager.onUnlinkedComplete;
-
-      // Now we should be able to get the linked bundle.
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(1));
-    }
-
-    // Session 2.
-    // Recreate manager and don't allow it to perform new linking.
-    // Set a declared variable, which is not used in the package.
-    // We still can get the cached linked bundle.
-    {
-      context.declaredVariables.define('not.used.variable', 'baz');
-      _createManager(allowLinking: false);
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(1));
-      _assertDependencyInUser(linkedPackages.single.linked, 'foo.dart');
-    }
-
-    // Session 3.
-    // Recreate manager and don't allow it to perform new linking.
-    // Set the value of a referenced declared variable.
-    // So, we cannot use the previously cached linked bundle.
-    {
-      context.declaredVariables.define('dart.library.io', 'does-not-matter');
-      _createManager(allowLinking: false);
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, isEmpty);
-    }
-
-    // Session 4.
-    // Enable new linking, and configure to use 'foo_html.dart'.
-    {
-      context.declaredVariables.define('dart.library.html', 'true');
-      _createManager();
-      List<LinkedPubPackage> linkedPackages = manager.getLinkedBundles(context);
-      expect(linkedPackages, hasLength(1));
-      _assertDependencyInUser(linkedPackages.single.linked, 'foo_html.dart');
-    }
-  }
-
-  static PackageBundle _getBundleByPackageName(
-      Map<PubPackage, PackageBundle> bundles, String name) {
-    PubPackage package =
-        bundles.keys.singleWhere((package) => package.name == name);
-    return bundles[package];
-  }
-}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
index b101aa6..6fc2f52 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
@@ -889,18 +889,9 @@
       return;
     }
 
-    Source resolveRelativeUri(String relativeUri) {
-      Source resolvedSource =
-          context.sourceFactory.resolveUri(librarySource, relativeUri);
-      if (resolvedSource == null && !allowMissingFiles) {
-        throw new StateError('Could not resolve $relativeUri in the context of '
-            '$librarySource (${librarySource.runtimeType})');
-      }
-      return resolvedSource;
-    }
-
-    UnlinkedUnit getPart(String relativeUri) {
-      return _getUnlinkedUnit(resolveRelativeUri(relativeUri));
+    UnlinkedUnit getPart(String absoluteUri) {
+      Source source = context.sourceFactory.forUri(absoluteUri);
+      return _getUnlinkedUnit(source);
     }
 
     UnlinkedPublicNamespace getImport(String relativeUri) {
@@ -909,10 +900,11 @@
 
     UnlinkedUnit definingUnit = _getUnlinkedUnit(librarySource);
     if (definingUnit != null) {
-      LinkedLibraryBuilder linkedLibrary = prelink(
+      LinkedLibraryBuilder linkedLibrary = prelink(librarySource.uri.toString(),
           definingUnit, getPart, getImport, context.declaredVariables.get);
       linkedLibrary.dependencies.skip(1).forEach((LinkedDependency d) {
-        _serializeLibrary(resolveRelativeUri(d.uri));
+        Source source = context.sourceFactory.forUri(d.uri);
+        _serializeLibrary(source);
       });
     }
   }
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index fd40ab4..51b77ed 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -260,6 +260,7 @@
     compareUriReferencedElements(resynthesized, original, desc);
     expect(resynthesized.source, original.source);
     expect(resynthesized.librarySource, original.librarySource);
+    compareLineInfo(resynthesized.lineInfo, original.lineInfo);
     expect(resynthesized.types.length, original.types.length,
         reason: '$desc types');
     for (int i = 0; i < resynthesized.types.length; i++) {
@@ -821,6 +822,11 @@
     compareElements(resynthesized, original, desc);
   }
 
+  void compareLineInfo(LineInfo resynthesized, LineInfo original) {
+    expect(resynthesized.lineCount, original.lineCount);
+    expect(resynthesized.lineStarts, original.lineStarts);
+  }
+
   void compareLocalElementsOfExecutable(ExecutableElement resynthesized,
       ExecutableElement original, String desc) {
     if (original is! Member) {
@@ -4456,6 +4462,20 @@
 ''');
   }
 
+  test_nameConflict_importWithRelativeUri_exportWithAbsolute() {
+    if (resourceProvider.pathContext.separator != '/') {
+      return;
+    }
+
+    addLibrarySource('/a.dart', 'class A {}');
+    addLibrarySource('/b.dart', 'export "/a.dart";');
+    checkLibrary('''
+import 'a.dart';
+import 'b.dart';
+A v = null;
+''');
+  }
+
   test_nested_generic_functions_in_generic_class_with_function_typed_params() {
     checkLibrary('''
 class C<T, U> {
diff --git a/pkg/analyzer/test/src/summary/summarize_ast_test.dart b/pkg/analyzer/test/src/summary/summarize_ast_test.dart
index 4105d32..11e7156 100644
--- a/pkg/analyzer/test/src/summary/summarize_ast_test.dart
+++ b/pkg/analyzer/test/src/summary/summarize_ast_test.dart
@@ -224,6 +224,9 @@
   }
 
   UnlinkedUnit getUnit(String absoluteUri) {
+    if (absoluteUri == null) {
+      return null;
+    }
     UnlinkedUnit unit = _uriToUnit[absoluteUri] ??
         SerializedMockSdk.instance.uriToUnlinkedUnit[absoluteUri] ??
         _dependentUnlinkedUnits[absoluteUri];
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index 5f69ff1..001263c 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -216,7 +216,7 @@
     assertUnlinkedConst(annotations[0], operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'a',
+      (EntityRef r) => checkTypeRef(r, null, 'a',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
   }
@@ -238,16 +238,11 @@
 
   /**
    * Verify that the [dependency]th element of the dependency table represents
-   * a file reachable via the given [absoluteUri] and [relativeUri].
+   * a file reachable via the given [absoluteUri].
    */
-  void checkDependency(int dependency, String absoluteUri, String relativeUri) {
+  void checkDependency(int dependency, String absoluteUri) {
     expect(dependency, new isInstanceOf<int>());
-    if (dependency >= linked.numPrelinkedDependencies) {
-      // Fully-linked dependencies are always absolute URIs.
-      expect(linked.dependencies[dependency].uri, absoluteUri);
-    } else {
-      expect(linked.dependencies[dependency].uri, relativeUri);
-    }
+    expect(linked.dependencies[dependency].uri, absoluteUri);
   }
 
   /**
@@ -284,24 +279,24 @@
    * Verify that the given [typeRef] represents the type `dynamic`.
    */
   void checkDynamicTypeRef(EntityRef typeRef) {
-    checkTypeRef(typeRef, null, null, 'dynamic');
+    checkTypeRef(typeRef, null, 'dynamic');
   }
 
   /**
    * Verify that the given [exportName] represents a reference to an entity
-   * declared in a file reachable via [absoluteUri] and [relativeUri], having
-   * name [expectedName].  [expectedKind] is the kind of object referenced.
-   * [expectedTargetUnit] is the index of the compilation unit in which the
-   * target of the [exportName] is expected to appear; if not specified it is
-   * assumed to be the defining compilation unit.
+   * declared in a file reachable via [absoluteUri], having name [expectedName].
+   * [expectedKind] is the kind of object referenced. [expectedTargetUnit] is
+   * the index of the compilation unit in which the target of the [exportName]
+   * is expected to appear; if not specified it is assumed to be the defining
+   * compilation unit.
    */
   void checkExportName(LinkedExportName exportName, String absoluteUri,
-      String relativeUri, String expectedName, ReferenceKind expectedKind,
+      String expectedName, ReferenceKind expectedKind,
       {int expectedTargetUnit: 0}) {
     expect(exportName, new isInstanceOf<LinkedExportName>());
     // Exported names must come from other libraries.
     expect(exportName.dependency, isNot(0));
-    checkDependency(exportName.dependency, absoluteUri, relativeUri);
+    checkDependency(exportName.dependency, absoluteUri);
     expect(exportName.name, expectedName);
     expect(exportName.kind, expectedKind);
     expect(exportName.unit, expectedTargetUnit);
@@ -339,7 +334,7 @@
    * associated type.  Otherwise, behave as in [checkLinkedTypeSlot].
    */
   void checkInferredTypeSlot(
-      int slotId, String absoluteUri, String relativeUri, String expectedName,
+      int slotId, String absoluteUri, String expectedName,
       {int numTypeArguments: 0,
       ReferenceKind expectedKind: ReferenceKind.classOrEnum,
       int expectedTargetUnit: 0,
@@ -348,7 +343,7 @@
       int numTypeParameters: 0,
       bool onlyInStrongMode: true}) {
     if (strongMode || !onlyInStrongMode) {
-      checkLinkedTypeSlot(slotId, absoluteUri, relativeUri, expectedName,
+      checkLinkedTypeSlot(slotId, absoluteUri, expectedName,
           numTypeArguments: numTypeArguments,
           expectedKind: expectedKind,
           expectedTargetUnit: expectedTargetUnit,
@@ -380,24 +375,24 @@
    * Verify that the given [typeRef] represents the type `dynamic`.
    */
   void checkLinkedDynamicTypeRef(EntityRef typeRef) {
-    checkLinkedTypeRef(typeRef, null, null, 'dynamic');
+    checkLinkedTypeRef(typeRef, null, 'dynamic');
   }
 
   /**
    * Verify that the given [typeRef] represents a reference to a type declared
-   * in a file reachable via [absoluteUri] and [relativeUri], having name
-   * [expectedName].  Verify that the number of type arguments
-   * is equal to [numTypeArguments].  [expectedKind] is the kind of object
-   * referenced.  [linkedSourceUnit] and [unlinkedSourceUnit] refer to the
-   * compilation unit within which the [typeRef] appears; if not specified they
-   * are assumed to refer to the defining compilation unit.
-   * [expectedTargetUnit] is the index of the compilation unit in which the
-   * target of the [typeRef] is expected to appear; if not specified it is
-   * assumed to be the defining compilation unit.  [numTypeParameters] is the
-   * number of type parameters of the thing being referred to.
+   * in a file reachable via [absoluteUri], having name [expectedName].  Verify
+   * that the number of type arguments is equal to [numTypeArguments].
+   * [expectedKind] is the kind of object referenced.  [linkedSourceUnit] and
+   * [unlinkedSourceUnit] refer to the compilation unit within which the
+   * [typeRef] appears; if not specified they are assumed to refer to the
+   * defining compilation unit. [expectedTargetUnit] is the index of the
+   * compilation unit in which the target of the [typeRef] is expected to
+   * appear; if not specified it is assumed to be the defining compilation unit.
+   * [numTypeParameters] is the number of type parameters of the thing being
+   * referred to.
    */
-  void checkLinkedTypeRef(EntityRef typeRef, String absoluteUri,
-      String relativeUri, String expectedName,
+  void checkLinkedTypeRef(
+      EntityRef typeRef, String absoluteUri, String expectedName,
       {int numTypeArguments: 0,
       ReferenceKind expectedKind: ReferenceKind.classOrEnum,
       int expectedTargetUnit: 0,
@@ -410,7 +405,7 @@
     expect(typeRef.paramReference, 0);
     int index = typeRef.reference;
     expect(typeRef.typeArguments, hasLength(numTypeArguments));
-    checkReferenceIndex(index, absoluteUri, relativeUri, expectedName,
+    checkReferenceIndex(index, absoluteUri, expectedName,
         expectedKind: expectedKind,
         expectedTargetUnit: expectedTargetUnit,
         linkedSourceUnit: linkedSourceUnit,
@@ -420,19 +415,18 @@
 
   /**
    * Verify that the given [slotId] represents a reference to a type declared
-   * in a file reachable via [absoluteUri] and [relativeUri], having name
-   * [expectedName].  Verify that the number of type arguments
-   * is equal to [numTypeArguments].  [expectedKind] is the kind of object
-   * referenced.  [linkedSourceUnit] and [unlinkedSourceUnit] refer to the
-   * compilation unit within which the [typeRef] appears; if not specified they
-   * are assumed to refer to the defining compilation unit.
-   * [expectedTargetUnit] is the index of the compilation unit in which the
-   * target of the [typeRef] is expected to appear; if not specified it is
-   * assumed to be the defining compilation unit.  [numTypeParameters] is the
-   * number of type parameters of the thing being referred to.
+   * in a file reachable via [absoluteUri], having name [expectedName].  Verify
+   * that the number of type arguments is equal to [numTypeArguments].
+   * [expectedKind] is the kind of object referenced.  [linkedSourceUnit] and
+   * [unlinkedSourceUnit] refer to the compilation unit within which the
+   * [typeRef] appears; if not specified they are assumed to refer to the
+   * defining compilation unit. [expectedTargetUnit] is the index of the
+   * compilation unit in which the target of the [typeRef] is expected to
+   * appear; if not specified it is assumed to be the defining compilation unit.
+   * [numTypeParameters] is the number of type parameters of the thing being
+   * referred to.
    */
-  void checkLinkedTypeSlot(
-      int slotId, String absoluteUri, String relativeUri, String expectedName,
+  void checkLinkedTypeSlot(int slotId, String absoluteUri, String expectedName,
       {int numTypeArguments: 0,
       ReferenceKind expectedKind: ReferenceKind.classOrEnum,
       int expectedTargetUnit: 0,
@@ -448,7 +442,6 @@
     checkLinkedTypeRef(
         getTypeRefForSlot(slotId, linkedSourceUnit: linkedSourceUnit),
         absoluteUri,
-        relativeUri,
         expectedName,
         numTypeArguments: numTypeArguments,
         expectedKind: expectedKind,
@@ -484,13 +477,13 @@
 
   /**
    * Check the data structures that are reachable from an index in the
-   * references table..  If the reference in question is an explicit
+   * references table.  If the reference in question is an explicit
    * reference, return the [UnlinkedReference] that is used to make the
    * explicit reference.  If the type reference in question is an implicit
    * reference, return `null`.
    */
-  UnlinkedReference checkReferenceIndex(int referenceIndex, String absoluteUri,
-      String relativeUri, String expectedName,
+  UnlinkedReference checkReferenceIndex(
+      int referenceIndex, String absoluteUri, String expectedName,
       {ReferenceKind expectedKind: ReferenceKind.classOrEnum,
       int expectedTargetUnit: 0,
       LinkedUnit linkedSourceUnit,
@@ -525,7 +518,7 @@
     if (absoluteUri == null) {
       expect(referenceResolution.dependency, 0);
     } else {
-      checkDependency(referenceResolution.dependency, absoluteUri, relativeUri);
+      checkDependency(referenceResolution.dependency, absoluteUri);
     }
     if (expectedName == null) {
       expect(name, isEmpty);
@@ -541,20 +534,19 @@
 
   /**
    * Verify that the given [typeRef] represents a reference to a type declared
-   * in a file reachable via [absoluteUri] and [relativeUri], having name
-   * [expectedName].  If [expectedPrefix] is supplied, verify that the type is
-   * reached via the given prefix.  Verify that the number of type arguments
-   * is equal to [numTypeArguments].  [expectedKind] is the kind of
-   * object referenced.  [linkedSourceUnit] and [unlinkedSourceUnit] refer
-   * to the compilation unit within which the [typeRef] appears; if not
-   * specified they are assumed to refer to the defining compilation unit.
-   * [expectedTargetUnit] is the index of the compilation unit in which the
-   * target of the [typeRef] is expected to appear; if not specified it is
-   * assumed to be the defining compilation unit.  [numTypeParameters] is the
-   * number of type parameters of the thing being referred to.
+   * in a file reachable via [absoluteUri], having name [expectedName].
+   * If [expectedPrefix] is supplied, verify that the type is reached via the
+   * given prefix.  Verify that the number of type arguments is equal to
+   * [numTypeArguments].  [expectedKind] is the kind of object referenced.
+   * [linkedSourceUnit] and [unlinkedSourceUnit] refer to the compilation unit
+   * within which the [typeRef] appears; if not specified they are assumed to
+   * refer to the defining compilation unit. [expectedTargetUnit] is the index
+   * of the compilation unit in which the target of the [typeRef] is expected
+   * to appear; if not specified it is assumed to be the defining compilation
+   * unit.  [numTypeParameters] is the number of type parameters of the thing
+   * being referred to.
    */
-  void checkTypeRef(EntityRef typeRef, String absoluteUri, String relativeUri,
-      String expectedName,
+  void checkTypeRef(EntityRef typeRef, String absoluteUri, String expectedName,
       {String expectedPrefix,
       List<_PrefixExpectation> prefixExpectations,
       int numTypeArguments: 0,
@@ -570,7 +562,7 @@
     int index = typeRef.reference;
     expect(typeRef.typeArguments, hasLength(numTypeArguments));
     UnlinkedReference reference = checkReferenceIndex(
-        index, absoluteUri, relativeUri, expectedName,
+        index, absoluteUri, expectedName,
         expectedKind: expectedKind,
         expectedTargetUnit: expectedTargetUnit,
         linkedSourceUnit: linkedSourceUnit,
@@ -585,7 +577,7 @@
       for (_PrefixExpectation expectation in prefixExpectations) {
         expect(reference.prefixReference, isNot(0));
         reference = checkReferenceIndex(reference.prefixReference,
-            expectation.absoluteUri, expectation.relativeUri, expectation.name,
+            expectation.absoluteUri, expectation.name,
             expectedKind: expectation.kind,
             expectedTargetUnit: expectedTargetUnit,
             linkedSourceUnit: linkedSourceUnit,
@@ -607,7 +599,7 @@
       {LinkedUnit linkedSourceUnit, UnlinkedUnit unlinkedSourceUnit}) {
     // When serializing from the element model, unresolved type refs lose their
     // name.
-    checkTypeRef(typeRef, null, null, expectedName,
+    checkTypeRef(typeRef, null, expectedName,
         expectedPrefix: expectedPrefix,
         expectedKind: ReferenceKind.unresolved,
         linkedSourceUnit: linkedSourceUnit,
@@ -618,7 +610,7 @@
    * Verify that the given [typeRef] represents the type `void`.
    */
   void checkVoidTypeRef(EntityRef typeRef) {
-    checkTypeRef(typeRef, null, null, 'void');
+    checkTypeRef(typeRef, null, 'void');
   }
 
   fail_invalid_prefix_dynamic() {
@@ -1009,8 +1001,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(
-        findVariable('a').type, absUri('/lib2.dart'), 'lib2.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib2.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1026,8 +1017,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(
-        findVariable('a').type, absUri('/lib2.dart'), 'lib2.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib2.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1043,8 +1033,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(
-        findVariable('a').type, absUri('/lib2.dart'), 'lib2.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib2.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1060,8 +1049,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(
-        findVariable('a').type, absUri('/lib2.dart'), 'lib2.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib2.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1076,7 +1064,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'lib.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1091,7 +1079,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'lib.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1106,7 +1094,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'lib.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1121,7 +1109,7 @@
 C c;
     ''',
         allowErrors: true);
-    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'lib.dart', 'A');
+    checkTypeRef(findVariable('a').type, absUri('/lib.dart'), 'A');
     checkUnresolvedTypeRef(findVariable('b').type, null, 'B');
     checkUnresolvedTypeRef(findVariable('c').type, null, 'C');
   }
@@ -1183,8 +1171,8 @@
 class F {}
 ''');
     expect(cls.mixins, hasLength(2));
-    checkTypeRef(cls.mixins[0], null, null, 'E');
-    checkTypeRef(cls.mixins[1], null, null, 'F');
+    checkTypeRef(cls.mixins[0], null, 'E');
+    checkTypeRef(cls.mixins[1], null, 'F');
   }
 
   test_class_alias_no_implicit_constructors() {
@@ -1208,7 +1196,7 @@
   test_class_alias_reference_generic() {
     EntityRef typeRef = serializeTypeText('C',
         otherDeclarations: 'class C<D, E> = F with G; class F {} class G {}');
-    checkTypeRef(typeRef, null, null, 'C', numTypeParameters: 2);
+    checkTypeRef(typeRef, null, 'C', numTypeParameters: 2);
   }
 
   test_class_alias_reference_generic_imported() {
@@ -1216,14 +1204,13 @@
         '/lib.dart', 'class C<D, E> = F with G; class F {} class G {}');
     EntityRef typeRef =
         serializeTypeText('C', otherDeclarations: 'import "lib.dart";');
-    checkTypeRef(typeRef, absUri('/lib.dart'), 'lib.dart', 'C',
-        numTypeParameters: 2);
+    checkTypeRef(typeRef, absUri('/lib.dart'), 'C', numTypeParameters: 2);
   }
 
   test_class_alias_supertype() {
     UnlinkedClass cls =
         serializeClassText('class C = D with E; class D {} class E {}');
-    checkTypeRef(cls.supertype, null, null, 'D');
+    checkTypeRef(cls.supertype, null, 'D');
     expect(cls.hasNoSupertype, isFalse);
   }
 
@@ -1372,7 +1359,7 @@
 class D {}
 ''');
     expect(cls.interfaces, hasLength(1));
-    checkTypeRef(cls.interfaces[0], null, null, 'D');
+    checkTypeRef(cls.interfaces[0], null, 'D');
   }
 
   test_class_interface_order() {
@@ -1382,8 +1369,8 @@
 class E {}
 ''');
     expect(cls.interfaces, hasLength(2));
-    checkTypeRef(cls.interfaces[0], null, null, 'D');
-    checkTypeRef(cls.interfaces[1], null, null, 'E');
+    checkTypeRef(cls.interfaces[0], null, 'D');
+    checkTypeRef(cls.interfaces[1], null, 'E');
   }
 
   test_class_mixin() {
@@ -1392,7 +1379,7 @@
 class D {}
 ''');
     expect(cls.mixins, hasLength(1));
-    checkTypeRef(cls.mixins[0], null, null, 'D');
+    checkTypeRef(cls.mixins[0], null, 'D');
   }
 
   test_class_mixin_order() {
@@ -1402,8 +1389,8 @@
 class E {}
 ''');
     expect(cls.mixins, hasLength(2));
-    checkTypeRef(cls.mixins[0], null, null, 'D');
-    checkTypeRef(cls.mixins[1], null, null, 'E');
+    checkTypeRef(cls.mixins[0], null, 'D');
+    checkTypeRef(cls.mixins[1], null, 'E');
   }
 
   test_class_name() {
@@ -1449,15 +1436,14 @@
   test_class_reference_generic() {
     EntityRef typeRef =
         serializeTypeText('C', otherDeclarations: 'class C<D, E> {}');
-    checkTypeRef(typeRef, null, null, 'C', numTypeParameters: 2);
+    checkTypeRef(typeRef, null, 'C', numTypeParameters: 2);
   }
 
   test_class_reference_generic_imported() {
     addNamedSource('/lib.dart', 'class C<D, E> {}');
     EntityRef typeRef =
         serializeTypeText('C', otherDeclarations: 'import "lib.dart";');
-    checkTypeRef(typeRef, absUri('/lib.dart'), 'lib.dart', 'C',
-        numTypeParameters: 2);
+    checkTypeRef(typeRef, absUri('/lib.dart'), 'C', numTypeParameters: 2);
   }
 
   test_class_superclass() {
@@ -1469,7 +1455,7 @@
   test_class_superclass_explicit() {
     UnlinkedClass cls = serializeClassText('class C extends D {} class D {}');
     expect(cls.supertype, isNotNull);
-    checkTypeRef(cls.supertype, null, null, 'D');
+    checkTypeRef(cls.supertype, null, 'D');
     expect(cls.hasNoSupertype, isFalse);
   }
 
@@ -1480,7 +1466,7 @@
       UnlinkedTypeParam typeParameter = cls.typeParameters[0];
       expect(typeParameter.name, 'T');
       expect(typeParameter.bound, isNotNull);
-      checkTypeRef(typeParameter.bound, 'dart:core', 'dart:core', 'List',
+      checkTypeRef(typeParameter.bound, 'dart:core', 'List',
           numTypeParameters: 1);
     }
   }
@@ -1524,8 +1510,7 @@
       expect(getTypeRefForSlot(closure.inferredReturnTypeSlot), isNull);
     } else {
       // Spec mode infers a type for the closure of `() => Bottom`.
-      checkInferredTypeSlot(
-          closure.inferredReturnTypeSlot, null, null, '*bottom*',
+      checkInferredTypeSlot(closure.inferredReturnTypeSlot, null, '*bottom*',
           onlyInStrongMode: false);
     }
   }
@@ -1543,9 +1528,9 @@
     expect(executable.localFunctions, hasLength(1));
     expect(executable.localFunctions[0].returnType, isNull);
     checkInferredTypeSlot(executable.localFunctions[0].inferredReturnTypeSlot,
-        absUri('/a.dart'), 'a.dart', 'D',
+        absUri('/a.dart'), 'D',
         onlyInStrongMode: false);
-    checkHasDependency('a.dart', fullyLinked: false);
+    checkHasDependency(absUri('/a.dart'), fullyLinked: false);
   }
 
   test_closure_executable_with_return_type_from_closure() {
@@ -1563,15 +1548,15 @@
     expect(executable.localFunctions, hasLength(2));
     EntityRef closureType =
         getTypeRefForSlot(executable.localFunctions[1].inferredReturnTypeSlot);
-    checkLinkedTypeRef(closureType, null, null, '',
+    checkLinkedTypeRef(closureType, null, '',
         expectedKind: ReferenceKind.function);
     int outerClosureIndex =
         definingUnit.references[closureType.reference].containingReference;
-    checkReferenceIndex(outerClosureIndex, null, null, '',
+    checkReferenceIndex(outerClosureIndex, null, '',
         expectedKind: ReferenceKind.function, localIndex: 1);
     int topLevelFunctionIndex =
         definingUnit.references[outerClosureIndex].containingReference;
-    checkReferenceIndex(topLevelFunctionIndex, null, null, 'f',
+    checkReferenceIndex(topLevelFunctionIndex, null, 'f',
         expectedKind: ReferenceKind.topLevelFunction);
     expect(
         definingUnit.references[topLevelFunctionIndex].containingReference, 0);
@@ -1591,7 +1576,7 @@
     expect(executable.localFunctions, hasLength(1));
     expect(executable.localFunctions[0].returnType, isNull);
     checkInferredTypeSlot(executable.localFunctions[0].inferredReturnTypeSlot,
-        absUri('/b.dart'), 'b.dart', 'D',
+        absUri('/b.dart'), 'D',
         onlyInStrongMode: false);
     if (!skipFullyLinkedData) {
       checkHasDependency('b.dart', fullyLinked: true);
@@ -1852,7 +1837,7 @@
           UnlinkedExprOperation.pushReference
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'T',
+          (EntityRef r) => checkTypeRef(r, null, 'T',
                   expectedKind: ReferenceKind.propertyAccessor,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
@@ -1942,7 +1927,7 @@
           0
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+          (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.topLevelFunction)
         ]);
   }
@@ -1974,7 +1959,7 @@
           0
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+          (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.topLevelFunction)
         ]);
   }
@@ -2014,15 +1999,15 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, null, null, 'named',
+        checkTypeRef(r, null, 'named',
             expectedKind: ReferenceKind.constructor,
             prefixExpectations: [
               new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
                   numTypeParameters: 2)
             ],
             numTypeArguments: 2);
-        checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
-        checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
+        checkTypeRef(r.typeArguments[0], 'dart:core', 'int');
+        checkTypeRef(r.typeArguments[1], 'dart:core', 'String');
       }
     ]);
   }
@@ -2046,17 +2031,15 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, null, null, 'named',
+        checkTypeRef(r, null, 'named',
             expectedKind: ReferenceKind.constructor,
             prefixExpectations: [
               new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                  absoluteUri: absUri('/a.dart'),
-                  relativeUri: 'a.dart',
-                  numTypeParameters: 2)
+                  absoluteUri: absUri('/a.dart'), numTypeParameters: 2)
             ],
             numTypeArguments: 2);
-        checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
-        checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
+        checkTypeRef(r.typeArguments[0], 'dart:core', 'int');
+        checkTypeRef(r.typeArguments[1], 'dart:core', 'String');
       }
     ]);
   }
@@ -2080,18 +2063,16 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, null, null, 'named',
+        checkTypeRef(r, null, 'named',
             expectedKind: ReferenceKind.constructor,
             prefixExpectations: [
               new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                  absoluteUri: absUri('/a.dart'),
-                  relativeUri: 'a.dart',
-                  numTypeParameters: 2),
+                  absoluteUri: absUri('/a.dart'), numTypeParameters: 2),
               new _PrefixExpectation(ReferenceKind.prefix, 'p')
             ],
             numTypeArguments: 2);
-        checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
-        checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
+        checkTypeRef(r.typeArguments[0], 'dart:core', 'int');
+        checkTypeRef(r.typeArguments[1], 'dart:core', 'String');
       }
     ]);
   }
@@ -2110,12 +2091,12 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, null, null, 'C',
+        checkTypeRef(r, null, 'C',
             expectedKind: ReferenceKind.classOrEnum,
             numTypeParameters: 2,
             numTypeArguments: 2);
-        checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
-        checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
+        checkTypeRef(r.typeArguments[0], 'dart:core', 'int');
+        checkTypeRef(r.typeArguments[1], 'dart:core', 'String');
       }
     ]);
   }
@@ -2139,12 +2120,12 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C',
+        checkTypeRef(r, absUri('/a.dart'), 'C',
             expectedKind: ReferenceKind.classOrEnum,
             numTypeParameters: 2,
             numTypeArguments: 2);
-        checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
-        checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
+        checkTypeRef(r.typeArguments[0], 'dart:core', 'int');
+        checkTypeRef(r.typeArguments[1], 'dart:core', 'String');
       }
     ]);
   }
@@ -2168,15 +2149,15 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C',
+        checkTypeRef(r, absUri('/a.dart'), 'C',
             expectedKind: ReferenceKind.classOrEnum,
             numTypeParameters: 2,
             numTypeArguments: 2,
             prefixExpectations: [
               new _PrefixExpectation(ReferenceKind.prefix, 'p')
             ]);
-        checkTypeRef(r.typeArguments[0], 'dart:core', 'dart:core', 'int');
-        checkTypeRef(r.typeArguments[1], 'dart:core', 'dart:core', 'String');
+        checkTypeRef(r.typeArguments[0], 'dart:core', 'int');
+        checkTypeRef(r.typeArguments[1], 'dart:core', 'String');
       }
     ]);
   }
@@ -2194,7 +2175,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.constructor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -2220,11 +2201,11 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.constructor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -2247,11 +2228,11 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.constructor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
               ])
     ]);
@@ -2293,8 +2274,8 @@
       'g',
       'f'
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'C',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'C', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -2316,7 +2297,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'C',
           expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
@@ -2339,7 +2320,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'C',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'C',
               expectedKind: ReferenceKind.classOrEnum,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
@@ -2360,7 +2341,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -2380,7 +2361,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.unresolved, 'C')
@@ -2407,11 +2388,11 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
               ])
     ]);
@@ -2431,7 +2412,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.unresolved, 'C'),
@@ -2452,8 +2433,8 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'Foo',
-          expectedKind: ReferenceKind.unresolved)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'Foo', expectedKind: ReferenceKind.unresolved)
     ]);
   }
 
@@ -2471,7 +2452,7 @@
       0
     ], referenceValidators: [
       (EntityRef r) {
-        checkTypeRef(r, 'dart:core', 'dart:core', 'identical',
+        checkTypeRef(r, 'dart:core', 'identical',
             expectedKind: ReferenceKind.topLevelFunction);
       }
     ]);
@@ -2487,7 +2468,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'length',
+      (EntityRef r) => checkTypeRef(r, null, 'length',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -2510,11 +2491,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'length',
+      (EntityRef r) => checkTypeRef(r, null, 'length',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
               ])
     ]);
@@ -2528,7 +2509,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'length',
+      (EntityRef r) => checkTypeRef(r, null, 'length',
               expectedKind: ReferenceKind.unresolved,
               unresolvedHasName: true,
               prefixExpectations: [
@@ -2548,7 +2529,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'length',
+      (EntityRef r) => checkTypeRef(r, null, 'length',
               expectedKind: ReferenceKind.unresolved,
               unresolvedHasName: true,
               prefixExpectations: [
@@ -2571,13 +2552,13 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'length',
+      (EntityRef r) => checkTypeRef(r, null, 'length',
               expectedKind: ReferenceKind.unresolved,
               unresolvedHasName: true,
               prefixExpectations: [
                 new _PrefixExpectation(
                     ReferenceKind.topLevelPropertyAccessor, 'a',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -2595,13 +2576,13 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'length',
+      (EntityRef r) => checkTypeRef(r, null, 'length',
               expectedKind: ReferenceKind.unresolved,
               unresolvedHasName: true,
               prefixExpectations: [
                 new _PrefixExpectation(
                     ReferenceKind.topLevelPropertyAccessor, 'a',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
               ])
     ]);
@@ -2666,7 +2647,7 @@
       33,
       3
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'int',
+      (EntityRef r) => checkTypeRef(r, 'dart:core', 'int',
           expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
@@ -2710,9 +2691,9 @@
       'bbb',
       'ccc'
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'int',
+      (EntityRef r) => checkTypeRef(r, 'dart:core', 'int',
           expectedKind: ReferenceKind.classOrEnum),
-      (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'String',
+      (EntityRef r) => checkTypeRef(r, 'dart:core', 'String',
           expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
@@ -2906,8 +2887,8 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'C',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'C', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -2919,8 +2900,8 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'C',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'C', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -2932,7 +2913,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'V1',
+      (EntityRef r) => checkTypeRef(r, null, 'V1',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -2953,11 +2934,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'V1',
+      (EntityRef r) => checkTypeRef(r, null, 'V1',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -2970,7 +2951,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'values',
+      (EntityRef r) => checkTypeRef(r, null, 'values',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -2991,11 +2972,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'values',
+      (EntityRef r) => checkTypeRef(r, null, 'values',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -3010,7 +2991,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'F',
+      (EntityRef r) => checkTypeRef(r, null, 'F',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -3033,11 +3014,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'F',
+      (EntityRef r) => checkTypeRef(r, null, 'F',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -3057,11 +3038,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'F',
+      (EntityRef r) => checkTypeRef(r, null, 'F',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p'),
               ])
     ]);
@@ -3077,7 +3058,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'b',
+      (EntityRef r) => checkTypeRef(r, null, 'b',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -3095,7 +3076,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'x',
+      (EntityRef r) => checkTypeRef(r, null, 'x',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -3118,11 +3099,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'x',
+      (EntityRef r) => checkTypeRef(r, null, 'x',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -3142,11 +3123,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'x',
+      (EntityRef r) => checkTypeRef(r, null, 'x',
               expectedKind: ReferenceKind.propertyAccessor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
               ])
     ]);
@@ -3162,7 +3143,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'm',
+      (EntityRef r) => checkTypeRef(r, null, 'm',
               expectedKind: ReferenceKind.method,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -3185,11 +3166,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'm',
+      (EntityRef r) => checkTypeRef(r, null, 'm',
               expectedKind: ReferenceKind.method,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart')
+                    absoluteUri: absUri('/a.dart'))
               ])
     ]);
   }
@@ -3209,11 +3190,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'm',
+      (EntityRef r) => checkTypeRef(r, null, 'm',
               expectedKind: ReferenceKind.method,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
               ])
     ]);
@@ -3229,7 +3210,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'm',
+      (EntityRef r) => checkTypeRef(r, null, 'm',
               expectedKind: ReferenceKind.method,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -3245,7 +3226,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'f',
+      (EntityRef r) => checkTypeRef(r, null, 'f',
           expectedKind: ReferenceKind.topLevelFunction)
     ]);
   }
@@ -3263,7 +3244,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'f',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'f',
           expectedKind: ReferenceKind.topLevelFunction)
     ]);
   }
@@ -3281,7 +3262,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'f',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'f',
               expectedKind: ReferenceKind.topLevelFunction,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.prefix, 'p')
@@ -3297,7 +3278,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'x',
+      (EntityRef r) => checkTypeRef(r, null, 'x',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
   }
@@ -3311,7 +3292,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'x',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'x',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
   }
@@ -3325,7 +3306,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'x',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'x',
           expectedKind: ReferenceKind.topLevelPropertyAccessor,
           expectedPrefix: 'p')
     ]);
@@ -3339,7 +3320,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'a',
+      (EntityRef r) => checkTypeRef(r, null, 'a',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
   }
@@ -3353,7 +3334,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'a',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
   }
@@ -3368,7 +3349,7 @@
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
       (EntityRef r) {
-        return checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'a',
+        return checkTypeRef(r, absUri('/a.dart'), 'a',
             expectedKind: ReferenceKind.topLevelPropertyAccessor,
             expectedPrefix: 'p');
       }
@@ -3401,8 +3382,8 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
-          expectedKind: ReferenceKind.unresolved)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'foo', expectedKind: ReferenceKind.unresolved)
     ]);
   }
 
@@ -3416,7 +3397,7 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -3439,11 +3420,11 @@
     assertUnlinkedConst(variable.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                    absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                    absoluteUri: absUri('/a.dart')),
                 new _PrefixExpectation(ReferenceKind.prefix, 'p'),
               ])
     ]);
@@ -3843,7 +3824,7 @@
         executables: serializeClassText('class C { C(int this.x); final x; }')
             .executables);
     UnlinkedParam parameter = executable.parameters[0];
-    checkTypeRef(parameter.type, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(parameter.type, 'dart:core', 'int');
   }
 
   test_constructor_initializing_formal_function_typed() {
@@ -3860,7 +3841,7 @@
             serializeClassText('class C { C(int this.x()); Function x; }')
                 .executables);
     UnlinkedParam parameter = executable.parameters[0];
-    checkTypeRef(parameter.type, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(parameter.type, 'dart:core', 'int');
   }
 
   test_constructor_initializing_formal_function_typed_implicit_return_type() {
@@ -3914,7 +3895,7 @@
     assertUnlinkedConst(param.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
           expectedKind: ReferenceKind.topLevelFunction)
     ]);
   }
@@ -4082,7 +4063,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'named',
+    checkTypeRef(executable.redirectedConstructor, null, 'named',
         expectedKind: ReferenceKind.constructor,
         prefixExpectations: [
           new _PrefixExpectation(ReferenceKind.classOrEnum, 'D')
@@ -4104,7 +4085,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'named',
+    checkTypeRef(executable.redirectedConstructor, null, 'named',
         expectedKind: ReferenceKind.constructor,
         prefixExpectations: [
           new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
@@ -4136,11 +4117,14 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'named',
+    checkTypeRef(executable.redirectedConstructor, null, 'named',
         expectedKind: ReferenceKind.constructor,
         prefixExpectations: [
-          new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
-              absoluteUri: absUri('/foo.dart'), relativeUri: 'foo.dart')
+          new _PrefixExpectation(
+            ReferenceKind.classOrEnum,
+            'D',
+            absoluteUri: absUri('/foo.dart'),
+          )
         ]);
   }
 
@@ -4165,13 +4149,15 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'named',
+    checkTypeRef(executable.redirectedConstructor, null, 'named',
         expectedKind: ReferenceKind.constructor,
         prefixExpectations: [
-          new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
-              numTypeParameters: 2,
-              absoluteUri: absUri('/foo.dart'),
-              relativeUri: 'foo.dart')
+          new _PrefixExpectation(
+            ReferenceKind.classOrEnum,
+            'D',
+            numTypeParameters: 2,
+            absoluteUri: absUri('/foo.dart'),
+          )
         ],
         numTypeArguments: 2);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
@@ -4199,11 +4185,14 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'named',
+    checkTypeRef(executable.redirectedConstructor, null, 'named',
         expectedKind: ReferenceKind.constructor,
         prefixExpectations: [
-          new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
-              absoluteUri: absUri('/foo.dart'), relativeUri: 'foo.dart'),
+          new _PrefixExpectation(
+            ReferenceKind.classOrEnum,
+            'D',
+            absoluteUri: absUri('/foo.dart'),
+          ),
           new _PrefixExpectation(ReferenceKind.prefix, 'foo')
         ]);
   }
@@ -4229,13 +4218,15 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'named',
+    checkTypeRef(executable.redirectedConstructor, null, 'named',
         expectedKind: ReferenceKind.constructor,
         prefixExpectations: [
-          new _PrefixExpectation(ReferenceKind.classOrEnum, 'D',
-              numTypeParameters: 2,
-              absoluteUri: absUri('/foo.dart'),
-              relativeUri: 'foo.dart'),
+          new _PrefixExpectation(
+            ReferenceKind.classOrEnum,
+            'D',
+            numTypeParameters: 2,
+            absoluteUri: absUri('/foo.dart'),
+          ),
           new _PrefixExpectation(ReferenceKind.prefix, 'foo')
         ],
         numTypeArguments: 2);
@@ -4258,7 +4249,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'D');
+    checkTypeRef(executable.redirectedConstructor, null, 'D');
   }
 
   test_constructor_redirected_factory_unnamed_generic() {
@@ -4276,7 +4267,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(executable.redirectedConstructor, null, null, 'D',
+    checkTypeRef(executable.redirectedConstructor, null, 'D',
         numTypeParameters: 2, numTypeArguments: 2);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
@@ -4303,8 +4294,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(
-        executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D');
+    checkTypeRef(executable.redirectedConstructor, absUri('/foo.dart'), 'D');
   }
 
   test_constructor_redirected_factory_unnamed_imported_generic() {
@@ -4328,8 +4318,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(
-        executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D',
+    checkTypeRef(executable.redirectedConstructor, absUri('/foo.dart'), 'D',
         numTypeParameters: 2, numTypeArguments: 2);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
@@ -4356,8 +4345,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(
-        executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D',
+    checkTypeRef(executable.redirectedConstructor, absUri('/foo.dart'), 'D',
         expectedPrefix: 'foo');
   }
 
@@ -4382,8 +4370,7 @@
     expect(executable.isRedirectedConstructor, isTrue);
     expect(executable.isFactory, isTrue);
     expect(executable.redirectedConstructorName, isEmpty);
-    checkTypeRef(
-        executable.redirectedConstructor, absUri('/foo.dart'), 'foo.dart', 'D',
+    checkTypeRef(executable.redirectedConstructor, absUri('/foo.dart'), 'D',
         numTypeParameters: 2, expectedPrefix: 'foo', numTypeArguments: 2);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[0], 1);
     checkParamTypeRef(executable.redirectedConstructor.typeArguments[1], 2);
@@ -4984,7 +4971,7 @@
     // re-export any names defined in b.dart, because a change to b.dart might
     // cause it to start exporting a name that the main test library *does*
     // use.
-    checkHasDependency('b.dart');
+    checkHasDependency(absUri('/b.dart'));
   }
 
   test_dependencies_export_unused() {
@@ -4994,17 +4981,17 @@
     // re-export any names defined in a.dart, because a change to a.dart might
     // cause it to start exporting a name that the main test library *will*
     // re-export.
-    checkHasDependency('a.dart');
+    checkHasDependency(absUri('/a.dart'));
   }
 
   test_dependencies_import_to_export() {
     addNamedSource('/a.dart', 'library a; export "b.dart"; class A {}');
     addNamedSource('/b.dart', 'library b;');
     serializeLibraryText('import "a.dart"; A a;');
-    checkHasDependency('a.dart');
+    checkHasDependency(absUri('/a.dart'));
     // The main test library depends on b.dart, because names defined in
     // b.dart are exported by a.dart.
-    checkHasDependency('b.dart');
+    checkHasDependency(absUri('/b.dart'));
   }
 
   test_dependencies_import_to_export_in_subdirs_absolute_export() {
@@ -5012,7 +4999,7 @@
         'library a; export "${absUri('/a/b/b.dart')}"; class A {}');
     addNamedSource('/a/b/b.dart', 'library b;');
     serializeLibraryText('import "a/a.dart"; A a;');
-    checkHasDependency('a/a.dart');
+    checkHasDependency(absUri('/a/a.dart'));
     // The main test library depends on b.dart, because names defined in
     // b.dart are exported by a.dart.
     checkHasDependency(absUri('/a/b/b.dart'));
@@ -5032,20 +5019,20 @@
     addNamedSource('/a/a.dart', 'library a; export "b/b.dart"; class A {}');
     addNamedSource('/a/b/b.dart', 'library b;');
     serializeLibraryText('import "a/a.dart"; A a;');
-    checkHasDependency('a/a.dart');
+    checkHasDependency(absUri('/a/a.dart'));
     // The main test library depends on b.dart, because names defined in
     // b.dart are exported by a.dart.
-    checkHasDependency('a/b/b.dart');
+    checkHasDependency(absUri('/a/b/b.dart'));
   }
 
   test_dependencies_import_to_export_loop() {
     addNamedSource('/a.dart', 'library a; export "b.dart"; class A {}');
     addNamedSource('/b.dart', 'library b; export "a.dart";');
     serializeLibraryText('import "a.dart"; A a;');
-    checkHasDependency('a.dart');
+    checkHasDependency(absUri('/a.dart'));
     // Serialization should have been able to walk the transitive export
     // dependencies to b.dart without going into an infinite loop.
-    checkHasDependency('b.dart');
+    checkHasDependency(absUri('/b.dart'));
   }
 
   test_dependencies_import_to_export_transitive_closure() {
@@ -5053,10 +5040,10 @@
     addNamedSource('/b.dart', 'library b; export "c.dart";');
     addNamedSource('/c.dart', 'library c;');
     serializeLibraryText('import "a.dart"; A a;');
-    checkHasDependency('a.dart');
+    checkHasDependency(absUri('/a.dart'));
     // The main test library depends on c.dart, because names defined in
     // c.dart are exported by b.dart and then re-exported by a.dart.
-    checkHasDependency('c.dart');
+    checkHasDependency(absUri('/c.dart'));
   }
 
   test_dependencies_import_to_export_unused() {
@@ -5066,7 +5053,7 @@
     // The main test library depends on b.dart, even though it doesn't use any
     // names defined in b.dart, because a change to b.dart might cause it to
     // start exporting a name that the main test library *does* use.
-    checkHasDependency('b.dart');
+    checkHasDependency(absUri('/b.dart'));
   }
 
   test_dependencies_import_transitive_closure() {
@@ -5074,10 +5061,10 @@
         '/a.dart', 'library a; import "b.dart"; class A extends B {}');
     addNamedSource('/b.dart', 'library b; class B {}');
     serializeLibraryText('import "a.dart"; A a;');
-    checkHasDependency('a.dart');
+    checkHasDependency(absUri('/a.dart'));
     // The main test library doesn't depend on b.dart, because no change to
     // b.dart can possibly affect the serialized element model for it.
-    checkLacksDependency('b.dart');
+    checkLacksDependency(absUri('/b.dart'));
   }
 
   test_dependencies_import_unused() {
@@ -5086,7 +5073,7 @@
     // The main test library depends on a.dart, even though it doesn't use any
     // names defined in a.dart, because a change to a.dart might cause it to
     // start exporting a name that the main test library *does* use.
-    checkHasDependency('a.dart');
+    checkHasDependency(absUri('/a.dart'));
   }
 
   test_dependencies_parts() {
@@ -5095,8 +5082,9 @@
     addNamedSource('/b.dart', 'part of a;');
     addNamedSource('/c.dart', 'part of a;');
     serializeLibraryText('import "a.dart"; A a;');
-    int dep = checkHasDependency('a.dart');
-    checkDependencyParts(linked.dependencies[dep], ['b.dart', 'c.dart']);
+    int dep = checkHasDependency(absUri('/a.dart'));
+    checkDependencyParts(
+        linked.dependencies[dep], [absUri('/b.dart'), absUri('/c.dart')]);
   }
 
   test_dependencies_parts_relative_to_importing_library() {
@@ -5106,9 +5094,9 @@
     addNamedSource('/a/c/e/f.dart', 'part of d;');
     addNamedSource('/a/c/g/h.dart', 'part of d;');
     serializeLibraryText('import "a/b.dart"; D d;');
-    int dep = checkHasDependency('a/c/d.dart');
-    checkDependencyParts(
-        linked.dependencies[dep], ['a/c/e/f.dart', 'a/c/g/h.dart']);
+    int dep = checkHasDependency(absUri('/a/c/d.dart'));
+    checkDependencyParts(linked.dependencies[dep],
+        [absUri('/a/c/e/f.dart'), absUri('/a/c/g/h.dart')]);
   }
 
   test_elements_in_part() {
@@ -5309,7 +5297,7 @@
 
   test_executable_getter_type() {
     UnlinkedExecutable executable = serializeExecutableText('int get f => 1;');
-    checkTypeRef(executable.returnType, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(executable.returnType, 'dart:core', 'int');
     expect(executable.parameters, isEmpty);
   }
 
@@ -5410,7 +5398,7 @@
     {
       UnlinkedVariable e = variables.singleWhere((v) => v.name == 'e');
       _assertVariableVisible(code, e, 'on int catch (', '} // 3');
-      checkTypeRef(e.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(e.type, 'dart:core', 'int');
     }
     {
       UnlinkedVariable st = variables.singleWhere((v) => v.name == 'st');
@@ -5458,7 +5446,7 @@
     {
       UnlinkedVariable i = variables.singleWhere((v) => v.name == 'i');
       _assertVariableVisible(code, i, 'for', '} // 3');
-      checkTypeRef(i.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(i.type, 'dart:core', 'int');
     }
   }
 
@@ -5482,7 +5470,7 @@
     {
       UnlinkedVariable i = variables.singleWhere((v) => v.name == 'i');
       _assertVariableVisible(code, i, '{ // 1', '} // 4');
-      checkTypeRef(i.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(i.type, 'dart:core', 'int');
     }
   }
 
@@ -5505,12 +5493,12 @@
     {
       UnlinkedVariable i = variables.singleWhere((v) => v.name == 'i');
       _assertVariableVisible(code, i, 'for', '} // 3');
-      checkTypeRef(i.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(i.type, 'dart:core', 'int');
     }
     {
       UnlinkedVariable i = variables.singleWhere((v) => v.name == 'j');
       _assertVariableVisible(code, i, 'for', '} // 3');
-      checkTypeRef(i.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(i.type, 'dart:core', 'int');
     }
   }
 
@@ -5574,7 +5562,7 @@
       // f1 - v1
       UnlinkedVariable v1 = variables.singleWhere((v) => v.name == 'v1');
       _assertVariableVisible(code, v1, '{ // 1', '} // 2');
-      checkTypeRef(v1.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(v1.type, 'dart:core', 'int');
     }
     // f - f2
     {
@@ -5586,7 +5574,7 @@
       // f - f2 - v1
       UnlinkedVariable v1 = variables2.singleWhere((v) => v.name == 'v1');
       _assertVariableVisible(code, v1, '{ // 3', '} // 6');
-      checkTypeRef(v1.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(v1.type, 'dart:core', 'int');
       // f - f2 - f3
       UnlinkedExecutable f3 = functions2.singleWhere((v) => v.name == 'f3');
       _assertExecutableVisible(code, f3, '{ // 3', '} // 6');
@@ -5597,7 +5585,7 @@
       // f - f3 - v2
       UnlinkedVariable v2 = variables3.singleWhere((v) => v.name == 'v2');
       _assertVariableVisible(code, v2, '{ // 4', '} // 5');
-      checkTypeRef(v2.type, 'dart:core', 'dart:core', 'int');
+      checkTypeRef(v2.type, 'dart:core', 'int');
     }
   }
 
@@ -5813,7 +5801,7 @@
     expect(executable.isGenerator, isFalse);
     expect(executable.isStatic, false);
     expect(executable.parameters, hasLength(1));
-    checkTypeRef(executable.returnType, null, null, 'C');
+    checkTypeRef(executable.returnType, null, 'C');
     expect(executable.typeParameters, isEmpty);
     expect(executable.isExternal, false);
   }
@@ -5864,7 +5852,7 @@
     expect(executable.isFactory, false);
     expect(executable.isStatic, false);
     expect(executable.parameters, hasLength(1));
-    checkTypeRef(executable.returnType, 'dart:core', 'dart:core', 'bool');
+    checkTypeRef(executable.returnType, 'dart:core', 'bool');
     expect(executable.typeParameters, isEmpty);
   }
 
@@ -5929,8 +5917,7 @@
 
   test_executable_param_function_typed_return_type() {
     UnlinkedExecutable executable = serializeExecutableText('f(int g()) {}');
-    checkTypeRef(
-        executable.parameters[0].type, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(executable.parameters[0].type, 'dart:core', 'int');
   }
 
   test_executable_param_function_typed_return_type_implicit() {
@@ -5956,7 +5943,7 @@
     assertUnlinkedConst(param.initializer.bodyExpr, operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+      (EntityRef r) => checkTypeRef(r, null, 'foo',
           expectedKind: ReferenceKind.topLevelFunction)
     ]);
   }
@@ -6105,13 +6092,13 @@
 f(MyFunction myFunction) {}
 ''');
     expect(executable.parameters[0].isFunctionTyped, isFalse);
-    checkTypeRef(executable.parameters[0].type, null, null, 'MyFunction',
+    checkTypeRef(executable.parameters[0].type, null, 'MyFunction',
         expectedKind: ReferenceKind.typedef);
   }
 
   test_executable_return_type() {
     UnlinkedExecutable executable = serializeExecutableText('int f() => 1;');
-    checkTypeRef(executable.returnType, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(executable.returnType, 'dart:core', 'int');
   }
 
   test_executable_return_type_implicit() {
@@ -6169,8 +6156,7 @@
     checkVoidTypeRef(executable.returnType);
     expect(executable.parameters, hasLength(1));
     expect(executable.parameters[0].name, 'value');
-    checkTypeRef(
-        executable.parameters[0].type, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(executable.parameters[0].type, 'dart:core', 'int');
   }
 
   test_executable_static() {
@@ -6232,7 +6218,7 @@
     addNamedSource('/a.dart', 'class C {}');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'C',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'C',
         ReferenceKind.classOrEnum);
   }
 
@@ -6241,7 +6227,7 @@
         '/a.dart', 'class C extends _D with _E {} class _D {} class _E {}');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'C',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'C',
         ReferenceKind.classOrEnum);
   }
 
@@ -6276,14 +6262,14 @@
   test_export_dependency() {
     serializeLibraryText('export "dart:async";');
     expect(unlinkedUnits[0].exports, hasLength(1));
-    checkDependency(linked.exportDependencies[0], 'dart:async', 'dart:async');
+    checkDependency(linked.exportDependencies[0], 'dart:async');
   }
 
   test_export_enum() {
     addNamedSource('/a.dart', 'enum E { v }');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'E',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'E',
         ReferenceKind.classOrEnum);
   }
 
@@ -6292,7 +6278,7 @@
     addNamedSource('/b.dart', 'part of foo; f() {}');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f',
         ReferenceKind.topLevelFunction,
         expectedTargetUnit: 1);
   }
@@ -6301,7 +6287,7 @@
     addNamedSource('/a.dart', 'f() {}');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f',
         ReferenceKind.topLevelFunction);
   }
 
@@ -6309,7 +6295,7 @@
     addNamedSource('/a.dart', 'get f => null');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f',
         ReferenceKind.topLevelPropertyAccessor);
   }
 
@@ -6317,7 +6303,7 @@
     addNamedSource('/a.dart', 'f() {} g() {}');
     serializeLibraryText('export "a.dart" hide g;');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f',
         ReferenceKind.topLevelFunction);
   }
 
@@ -6348,8 +6334,7 @@
     allowMissingFiles = true;
     serializeLibraryText('export "foo.dart";', allowErrors: true);
     expect(unlinkedUnits[0].imports, hasLength(1));
-    checkDependency(
-        linked.exportDependencies[0], absUri('/foo.dart'), 'foo.dart');
+    checkDependency(linked.exportDependencies[0], absUri('/foo.dart'));
   }
 
   test_export_names_excludes_names_from_library() {
@@ -6368,7 +6353,7 @@
     addNamedSource('/a.dart', 'f() {}');
     serializeLibraryText('export "a.dart"; import "dart:core" as f; f.int _x;');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f',
         ReferenceKind.topLevelFunction);
   }
 
@@ -6392,7 +6377,7 @@
     addNamedSource('/a.dart', 'void set f(value) {}');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f=',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f=',
         ReferenceKind.topLevelPropertyAccessor);
   }
 
@@ -6418,7 +6403,7 @@
     addNamedSource('/a.dart', 'var v;');
     serializeLibraryText('export "a.dart"; const v = 0;');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'v=',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'v=',
         ReferenceKind.topLevelPropertyAccessor);
   }
 
@@ -6428,7 +6413,7 @@
     addNamedSource('/a.dart', 'var v;');
     serializeLibraryText('export "a.dart"; final v = 0;');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'v=',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'v=',
         ReferenceKind.topLevelPropertyAccessor);
   }
 
@@ -6436,7 +6421,7 @@
     addNamedSource('/a.dart', 'f() {} g() {}');
     serializeLibraryText('export "a.dart" show f;');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'f',
+    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'f',
         ReferenceKind.topLevelFunction);
   }
 
@@ -6466,8 +6451,8 @@
     addNamedSource('/a.dart', 'typedef F();');
     serializeLibraryText('export "a.dart";');
     expect(linked.exportNames, hasLength(1));
-    checkExportName(linked.exportNames[0], absUri('/a.dart'), 'a.dart', 'F',
-        ReferenceKind.typedef);
+    checkExportName(
+        linked.exportNames[0], absUri('/a.dart'), 'F', ReferenceKind.typedef);
   }
 
   test_export_uri() {
@@ -6507,12 +6492,12 @@
     LinkedExportName getter =
         linked.exportNames.firstWhere((e) => e.name == 'v');
     expect(getter, isNotNull);
-    checkExportName(getter, absUri('/a.dart'), 'a.dart', 'v',
-        ReferenceKind.topLevelPropertyAccessor);
+    checkExportName(
+        getter, absUri('/a.dart'), 'v', ReferenceKind.topLevelPropertyAccessor);
     LinkedExportName setter =
         linked.exportNames.firstWhere((e) => e.name == 'v=');
     expect(setter, isNotNull);
-    checkExportName(setter, absUri('/a.dart'), 'a.dart', 'v=',
+    checkExportName(setter, absUri('/a.dart'), 'v=',
         ReferenceKind.topLevelPropertyAccessor);
   }
 
@@ -6615,7 +6600,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'f',
+          (EntityRef r) => checkTypeRef(r, null, 'f',
                   expectedKind: ReferenceKind.unresolved,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.unresolved, 'c'),
@@ -6675,7 +6660,7 @@
           'f'
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'b',
+          (EntityRef r) => checkTypeRef(r, null, 'b',
                   expectedKind: ReferenceKind.unresolved,
                   prefixExpectations: [
                     new _PrefixExpectation(
@@ -6709,7 +6694,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'a',
+          (EntityRef r) => checkTypeRef(r, null, 'a',
               expectedKind: ReferenceKind.topLevelPropertyAccessor)
         ]);
   }
@@ -6743,7 +6728,7 @@
           'f'
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'C',
+          (EntityRef r) => checkTypeRef(r, null, 'C',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -6772,7 +6757,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'f',
+          (EntityRef r) => checkTypeRef(r, null, 'f',
                   expectedKind: ReferenceKind.unresolved,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -6811,7 +6796,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'f',
+          (EntityRef r) => checkTypeRef(r, null, 'f',
                   expectedKind: ReferenceKind.unresolved,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.unresolved, 'c'),
@@ -6864,7 +6849,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'a',
+          (EntityRef r) => checkTypeRef(r, null, 'a',
               expectedKind: ReferenceKind.topLevelPropertyAccessor)
         ]);
   }
@@ -6896,7 +6881,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'a',
+          (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a',
               expectedKind: ReferenceKind.topLevelPropertyAccessor)
         ]);
   }
@@ -6929,7 +6914,7 @@
         strings: [],
         referenceValidators: [
           (EntityRef r) {
-            return checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'a',
+            return checkTypeRef(r, absUri('/a.dart'), 'a',
                 expectedKind: ReferenceKind.topLevelPropertyAccessor,
                 expectedPrefix: 'p');
           }
@@ -6968,7 +6953,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'items',
+          (EntityRef r) => checkTypeRef(r, null, 'items',
                   expectedKind: ReferenceKind.unresolved,
                   prefixExpectations: [
                     new _PrefixExpectation(
@@ -7020,7 +7005,7 @@
           'f2',
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'C',
+          (EntityRef r) => checkTypeRef(r, null, 'C',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -7093,9 +7078,9 @@
           'fa2',
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'A',
+          (EntityRef r) => checkTypeRef(r, null, 'A',
               expectedKind: ReferenceKind.classOrEnum),
-          (EntityRef r) => checkTypeRef(r, null, null, 'B',
+          (EntityRef r) => checkTypeRef(r, null, 'B',
               expectedKind: ReferenceKind.classOrEnum),
         ]);
   }
@@ -7142,7 +7127,7 @@
           'm',
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'a',
+          (EntityRef r) => checkTypeRef(r, null, 'a',
               expectedKind: ReferenceKind.topLevelPropertyAccessor),
         ]);
   }
@@ -7174,7 +7159,7 @@
           'items'
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'C',
+          (EntityRef r) => checkTypeRef(r, null, 'C',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -7203,7 +7188,7 @@
           'f'
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'C',
+          (EntityRef r) => checkTypeRef(r, null, 'C',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -7232,7 +7217,7 @@
           0
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+          (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.topLevelFunction)
         ]);
   }
@@ -7264,7 +7249,7 @@
           0
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'foo',
+          (EntityRef r) => checkTypeRef(r, null, 'foo',
               expectedKind: ReferenceKind.topLevelFunction)
         ]);
   }
@@ -7423,7 +7408,7 @@
           0
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'x',
+          (EntityRef r) => checkTypeRef(r, null, 'x',
               expectedKind: ReferenceKind.topLevelPropertyAccessor)
         ]);
   }
@@ -7556,7 +7541,7 @@
           'm'
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'C',
+          (EntityRef r) => checkTypeRef(r, null, 'C',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -7588,9 +7573,9 @@
           'f'
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'C'),
-          (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'int'),
-          (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'String')
+          (EntityRef r) => checkTypeRef(r, null, 'C'),
+          (EntityRef r) => checkTypeRef(r, 'dart:core', 'int'),
+          (EntityRef r) => checkTypeRef(r, 'dart:core', 'String')
         ]);
   }
 
@@ -7627,7 +7612,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'm',
+          (EntityRef r) => checkTypeRef(r, null, 'm',
                   expectedKind: ReferenceKind.unresolved,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.unresolved, 'c'),
@@ -7665,11 +7650,11 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'm',
+          (EntityRef r) => checkTypeRef(r, null, 'm',
                   expectedKind: ReferenceKind.method,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.classOrEnum, 'C',
-                        absoluteUri: absUri('/a.dart'), relativeUri: 'a.dart'),
+                        absoluteUri: absUri('/a.dart')),
                     new _PrefixExpectation(ReferenceKind.prefix, 'p')
                   ])
         ]);
@@ -7696,9 +7681,9 @@
           0
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'u',
+          (EntityRef r) => checkTypeRef(r, null, 'u',
               expectedKind: ReferenceKind.topLevelPropertyAccessor),
-          (EntityRef r) => checkTypeRef(r, null, null, 'f',
+          (EntityRef r) => checkTypeRef(r, null, 'f',
               expectedKind: ReferenceKind.topLevelFunction)
         ]);
   }
@@ -7722,11 +7707,11 @@
           2
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'f',
+          (EntityRef r) => checkTypeRef(r, null, 'f',
               expectedKind: ReferenceKind.topLevelFunction,
               numTypeParameters: 2),
-          (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'int'),
-          (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'String')
+          (EntityRef r) => checkTypeRef(r, 'dart:core', 'int'),
+          (EntityRef r) => checkTypeRef(r, 'dart:core', 'String')
         ]);
   }
 
@@ -7792,7 +7777,7 @@
           42
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'num',
+          (EntityRef r) => checkTypeRef(r, 'dart:core', 'num',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -7814,7 +7799,7 @@
           42
         ],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, 'dart:core', 'dart:core', 'num',
+          (EntityRef r) => checkTypeRef(r, 'dart:core', 'num',
               expectedKind: ReferenceKind.classOrEnum)
         ]);
   }
@@ -7886,7 +7871,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'm',
+          (EntityRef r) => checkTypeRef(r, null, 'm',
                   expectedKind: ReferenceKind.method,
                   prefixExpectations: [
                     new _PrefixExpectation(ReferenceKind.classOrEnum, 'C')
@@ -7911,8 +7896,7 @@
         'class C extends D { var v; C(int this.v); }'
         ' abstract class D { num get v; }',
         className: 'C');
-    checkInferredTypeSlot(
-        cls.fields[0].inferredTypeSlot, 'dart:core', 'dart:core', 'num');
+    checkInferredTypeSlot(cls.fields[0].inferredTypeSlot, 'dart:core', 'num');
     expect(cls.executables[0].kind, UnlinkedExecutableKind.constructor);
     expect(cls.executables[0].parameters[0].inferredTypeSlot, 0);
   }
@@ -7927,8 +7911,7 @@
         'class C extends D { var v; C(this.v); }'
         ' abstract class D { int get v; }',
         className: 'C');
-    checkInferredTypeSlot(
-        cls.fields[0].inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(cls.fields[0].inferredTypeSlot, 'dart:core', 'int');
     expect(cls.executables[0].kind, UnlinkedExecutableKind.constructor);
     expect(cls.executables[0].parameters[0].inferredTypeSlot, 0);
   }
@@ -7949,7 +7932,7 @@
 
   test_field_inferred_type_nonstatic_implicit_initialized() {
     UnlinkedVariable v = serializeClassText('class C { var v = 0; }').fields[0];
-    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'int');
   }
 
   test_field_inferred_type_nonstatic_implicit_uninitialized() {
@@ -7957,7 +7940,7 @@
             'class C extends D { var v; } abstract class D { int get v; }',
             className: 'C')
         .fields[0];
-    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'int');
   }
 
   test_field_inferred_type_static_explicit_initialized() {
@@ -7969,7 +7952,7 @@
   test_field_inferred_type_static_implicit_initialized() {
     UnlinkedVariable v =
         serializeClassText('class C { static var v = 0; }').fields[0];
-    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'int');
   }
 
   test_field_inferred_type_static_implicit_uninitialized() {
@@ -8021,10 +8004,9 @@
       return;
     }
     serializeLibraryText('final x = 0; String y;');
-    checkLinkedTypeSlot(unlinkedUnits[0].variables[0].inferredTypeSlot,
-        'dart:core', 'dart:core', 'int');
-    checkTypeRef(
-        unlinkedUnits[0].variables[1].type, 'dart:core', 'dart:core', 'String');
+    checkLinkedTypeSlot(
+        unlinkedUnits[0].variables[0].inferredTypeSlot, 'dart:core', 'int');
+    checkTypeRef(unlinkedUnits[0].variables[1].type, 'dart:core', 'String');
     // Even though the definition of y follows the definition of x, the linked
     // type reference for x should use a higher numbered reference than the
     // unlinked type reference for y.
@@ -8095,8 +8077,7 @@
             'class C extends D { get f => null; } abstract class D { int get f; }',
             className: 'C')
         .executables[0];
-    checkInferredTypeSlot(
-        f.inferredReturnTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(f.inferredReturnTypeSlot, 'dart:core', 'int');
   }
 
   test_getter_inferred_type_static_implicit_return() {
@@ -8159,7 +8140,7 @@
     serializeLibraryText('import "dart:async"; Future x;');
     // Second import is the implicit import of dart:core
     expect(unlinkedUnits[0].imports, hasLength(2));
-    checkDependency(linked.importDependencies[0], 'dart:async', 'dart:async');
+    checkDependency(linked.importDependencies[0], 'dart:async');
   }
 
   test_import_explicit() {
@@ -8188,7 +8169,7 @@
     // The implicit import of dart:core is represented in the model.
     serializeLibraryText('');
     expect(unlinkedUnits[0].imports, hasLength(1));
-    checkDependency(linked.importDependencies[0], 'dart:core', 'dart:core');
+    checkDependency(linked.importDependencies[0], 'dart:core');
     expect(unlinkedUnits[0].imports[0].uri, isEmpty);
     if (includeInformative) {
       expect(unlinkedUnits[0].imports[0].uriOffset, 0);
@@ -8206,8 +8187,7 @@
     serializeLibraryText('import "foo.dart";', allowErrors: true);
     // Second import is the implicit import of dart:core
     expect(unlinkedUnits[0].imports, hasLength(2));
-    checkDependency(
-        linked.importDependencies[0], absUri('/foo.dart'), 'foo.dart');
+    checkDependency(linked.importDependencies[0], absUri('/foo.dart'));
   }
 
   test_import_no_combinators() {
@@ -8235,7 +8215,7 @@
     allowMissingFiles = true;
     addNamedSource('/foo.dart', 'part "bar.dart"; class C {}');
     serializeLibraryText('import "foo.dart"; C x;');
-    checkTypeRef(findVariable('x').type, absUri('/foo.dart'), 'foo.dart', 'C');
+    checkTypeRef(findVariable('x').type, absUri('/foo.dart'), 'C');
   }
 
   test_import_of_missing_export() {
@@ -8244,7 +8224,7 @@
     allowMissingFiles = true;
     addNamedSource('/foo.dart', 'export "bar.dart"; class C {}');
     serializeLibraryText('import "foo.dart"; C x;');
-    checkTypeRef(findVariable('x').type, absUri('/foo.dart'), 'foo.dart', 'C');
+    checkTypeRef(findVariable('x').type, absUri('/foo.dart'), 'C');
   }
 
   test_import_offset() {
@@ -8282,7 +8262,7 @@
   test_import_prefix_reference() {
     UnlinkedVariable variable =
         serializeVariableText('import "dart:async" as a; a.Future v;');
-    checkTypeRef(variable.type, 'dart:async', 'dart:async', 'Future',
+    checkTypeRef(variable.type, 'dart:async', 'Future',
         expectedPrefix: 'a', numTypeParameters: 1);
   }
 
@@ -8301,19 +8281,18 @@
 c.Cls cCls;
 D dCls;
 ''');
-    checkTypeRef(findVariable('aCls').type, absUri('/a.dart'), 'a.dart', 'A');
-    checkTypeRef(findVariable('bCls').type, absUri('/b.dart'), 'b.dart', 'Cls',
+    checkTypeRef(findVariable('aCls').type, absUri('/a.dart'), 'A');
+    checkTypeRef(findVariable('bCls').type, absUri('/b.dart'), 'Cls',
         expectedPrefix: 'b');
-    checkTypeRef(findVariable('cCls').type, absUri('/c.dart'), 'c.dart', 'Cls',
+    checkTypeRef(findVariable('cCls').type, absUri('/c.dart'), 'Cls',
         expectedPrefix: 'c');
-    checkTypeRef(findVariable('dCls').type, absUri('/d.dart'), 'd.dart', 'D');
+    checkTypeRef(findVariable('dCls').type, absUri('/d.dart'), 'D');
   }
 
   test_import_reference() {
     UnlinkedVariable variable =
         serializeVariableText('import "dart:async"; Future v;');
-    checkTypeRef(variable.type, 'dart:async', 'dart:async', 'Future',
-        numTypeParameters: 1);
+    checkTypeRef(variable.type, 'dart:async', 'Future', numTypeParameters: 1);
   }
 
   test_import_reference_merged_no_prefix() {
@@ -8326,12 +8305,11 @@
 ''');
     {
       EntityRef typeRef = findVariable('f').type;
-      checkTypeRef(typeRef, 'dart:async', 'dart:async', 'Future',
-          numTypeParameters: 1);
+      checkTypeRef(typeRef, 'dart:async', 'Future', numTypeParameters: 1);
     }
     {
       EntityRef typeRef = findVariable('s').type;
-      checkTypeRef(typeRef, 'dart:async', 'dart:async', 'Stream',
+      checkTypeRef(typeRef, 'dart:async', 'Stream',
           expectedTargetUnit: 1, numTypeParameters: 1);
     }
   }
@@ -8346,12 +8324,12 @@
 ''');
     {
       EntityRef typeRef = findVariable('f').type;
-      checkTypeRef(typeRef, 'dart:async', 'dart:async', 'Future',
+      checkTypeRef(typeRef, 'dart:async', 'Future',
           expectedPrefix: 'a', numTypeParameters: 1);
     }
     {
       EntityRef typeRef = findVariable('s').type;
-      checkTypeRef(typeRef, 'dart:async', 'dart:async', 'Stream',
+      checkTypeRef(typeRef, 'dart:async', 'Stream',
           expectedTargetUnit: 1, expectedPrefix: 'a', numTypeParameters: 1);
     }
   }
@@ -8366,9 +8344,9 @@
 p.A a;
 p.B b;
 ''');
-    checkTypeRef(findVariable('a').type, absUri('/a.dart'), 'a.dart', 'A',
+    checkTypeRef(findVariable('a').type, absUri('/a.dart'), 'A',
         expectedPrefix: 'p');
-    checkTypeRef(findVariable('b').type, absUri('/b.dart'), 'b.dart', 'B',
+    checkTypeRef(findVariable('b').type, absUri('/b.dart'), 'B',
         expectedPrefix: 'p');
   }
 
@@ -8379,10 +8357,9 @@
 class D extends p.C {} // Prevent "unused import" warning
 ''');
     expect(unlinkedUnits[0].imports[0].uri, 'test.dart');
-    checkDependency(
-        linked.importDependencies[0], absUri('/test.dart'), 'test.dart');
-    checkTypeRef(unlinkedUnits[0].classes[1].supertype, absUri('/test.dart'),
-        'test.dart', 'C',
+    checkDependency(linked.importDependencies[0], absUri('/test.dart'));
+    checkTypeRef(
+        unlinkedUnits[0].classes[1].supertype, absUri('/test.dart'), 'C',
         expectedPrefix: 'p');
   }
 
@@ -8453,7 +8430,7 @@
     UnlinkedParam g = f.parameters[0];
     expect(g.name, 'g');
     EntityRef typeRef = getTypeRefForSlot(g.inferredTypeSlot);
-    checkLinkedTypeRef(typeRef, null, null, 'f',
+    checkLinkedTypeRef(typeRef, null, 'f',
         expectedKind: ReferenceKind.method, numTypeArguments: 1);
     checkParamTypeRef(typeRef.typeArguments[0], 1);
   }
@@ -8466,10 +8443,10 @@
         serializeClassText('class C { final x = <dynamic, int>{}; }');
     EntityRef type = getTypeRefForSlot(cls.fields[0].inferredTypeSlot);
     // Check that x has inferred type `Map<dynamic, int>`.
-    checkLinkedTypeRef(type, 'dart:core', 'dart:core', 'Map',
+    checkLinkedTypeRef(type, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
-    checkLinkedTypeRef(type.typeArguments[0], null, null, 'dynamic');
-    checkLinkedTypeRef(type.typeArguments[1], 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(type.typeArguments[0], null, 'dynamic');
+    checkLinkedTypeRef(type.typeArguments[1], 'dart:core', 'int');
   }
 
   test_inferred_type_reference_shared_prefixed() {
@@ -8495,10 +8472,10 @@
         className: 'C');
     EntityRef type = getTypeRefForSlot(cls.fields[0].inferredTypeSlot);
     // Check that v has inferred type Map<T, int>.
-    checkLinkedTypeRef(type, 'dart:core', 'dart:core', 'Map',
+    checkLinkedTypeRef(type, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
     checkParamTypeRef(type.typeArguments[0], 1);
-    checkLinkedTypeRef(type.typeArguments[1], 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(type.typeArguments[1], 'dart:core', 'int');
   }
 
   test_inferred_type_refers_to_function_typed_param_of_typedef() {
@@ -8516,8 +8493,7 @@
     UnlinkedParam y = closure.parameters[0];
     expect(y.name, 'y');
     EntityRef typeRef = getTypeRefForSlot(y.inferredTypeSlot);
-    checkLinkedTypeRef(typeRef, null, null, 'F',
-        expectedKind: ReferenceKind.typedef);
+    checkLinkedTypeRef(typeRef, null, 'F', expectedKind: ReferenceKind.typedef);
     expect(typeRef.implicitFunctionTypeIndices, [0]);
   }
 
@@ -8537,7 +8513,7 @@
     expect(type.paramReference, 0);
     expect(type.typeArguments, hasLength(2));
     checkParamTypeRef(type.typeArguments[0], 1);
-    checkTypeRef(type.typeArguments[1], 'dart:core', 'dart:core', 'int');
+    checkTypeRef(type.typeArguments[1], 'dart:core', 'int');
     expect(type.reference,
         greaterThanOrEqualTo(unlinkedUnits[0].references.length));
     LinkedReference linkedReference =
@@ -8549,7 +8525,7 @@
     expect(linkedReference.unit, 0);
     expect(linkedReference.containingReference, isNot(0));
     expect(linkedReference.containingReference, lessThan(type.reference));
-    checkReferenceIndex(linkedReference.containingReference, null, null, 'D',
+    checkReferenceIndex(linkedReference.containingReference, null, 'D',
         numTypeParameters: 2);
   }
 
@@ -8581,7 +8557,7 @@
     expect(linkedReference.containingReference, isNot(0));
     expect(linkedReference.containingReference, lessThan(type.reference));
     checkReferenceIndex(
-        linkedReference.containingReference, absUri('/b.dart'), 'b.dart', 'E');
+        linkedReference.containingReference, absUri('/b.dart'), 'E');
   }
 
   test_inferred_type_refers_to_method_function_typed_parameter_type() {
@@ -8610,7 +8586,7 @@
     expect(linkedReference.unit, 0);
     expect(linkedReference.containingReference, isNot(0));
     expect(linkedReference.containingReference, lessThan(type.reference));
-    checkReferenceIndex(linkedReference.containingReference, null, null, 'D');
+    checkReferenceIndex(linkedReference.containingReference, null, 'D');
   }
 
   test_inferred_type_refers_to_nested_function_typed_param() {
@@ -8627,7 +8603,7 @@
     UnlinkedParam y = closure.parameters[1];
     expect(y.name, 'y');
     EntityRef typeRef = getTypeRefForSlot(y.inferredTypeSlot);
-    checkLinkedTypeRef(typeRef, null, null, 'f',
+    checkLinkedTypeRef(typeRef, null, 'f',
         expectedKind: ReferenceKind.topLevelFunction);
     expect(typeRef.implicitFunctionTypeIndices, [0, 1]);
   }
@@ -8646,7 +8622,7 @@
     UnlinkedParam y = closure.parameters[1];
     expect(y.name, 'y');
     EntityRef typeRef = getTypeRefForSlot(y.inferredTypeSlot);
-    checkLinkedTypeRef(typeRef, null, null, 'f',
+    checkLinkedTypeRef(typeRef, null, 'f',
         expectedKind: ReferenceKind.topLevelFunction);
     expect(typeRef.implicitFunctionTypeIndices, [0, 1]);
   }
@@ -8677,7 +8653,7 @@
     expect(linkedReference.unit, 0);
     expect(linkedReference.containingReference, isNot(0));
     expect(linkedReference.containingReference, lessThan(type.reference));
-    checkReferenceIndex(linkedReference.containingReference, null, null, 'D');
+    checkReferenceIndex(linkedReference.containingReference, null, 'D');
   }
 
   test_inferred_type_skips_trailing_dynamic() {
@@ -8688,9 +8664,9 @@
         serializeClassText('class C { final x = <int, dynamic>{}; }');
     EntityRef type = getTypeRefForSlot(cls.fields[0].inferredTypeSlot);
     // Check that x has inferred type `Map<int, dynamic>`.
-    checkLinkedTypeRef(type, 'dart:core', 'dart:core', 'Map',
+    checkLinkedTypeRef(type, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
-    checkLinkedTypeRef(type.typeArguments[0], 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(type.typeArguments[0], 'dart:core', 'int');
     checkLinkedDynamicTypeRef(type.typeArguments[1]);
   }
 
@@ -8701,7 +8677,7 @@
     UnlinkedClass cls = serializeClassText('class C { final x = []; }');
     EntityRef type = getTypeRefForSlot(cls.fields[0].inferredTypeSlot);
     // Check that x has inferred type `List<dynamic>`.
-    checkLinkedTypeRef(type, 'dart:core', 'dart:core', 'List',
+    checkLinkedTypeRef(type, 'dart:core', 'List',
         numTypeParameters: 1, numTypeArguments: 1);
   }
 
@@ -8710,7 +8686,7 @@
     UnlinkedVariable variable = serializeVariableText('int v = null;');
     expect(variable.initializer.returnType, isNull);
     checkInferredTypeSlot(
-        variable.initializer.inferredReturnTypeSlot, null, null, '*bottom*',
+        variable.initializer.inferredReturnTypeSlot, null, '*bottom*',
         onlyInStrongMode: false);
   }
 
@@ -8723,10 +8699,10 @@
         'import "a.dart"; int v = new C().d;',
         allowErrors: true);
     expect(variable.initializer.returnType, isNull);
-    checkInferredTypeSlot(variable.initializer.inferredReturnTypeSlot,
-        absUri('/a.dart'), 'a.dart', 'D',
+    checkInferredTypeSlot(
+        variable.initializer.inferredReturnTypeSlot, absUri('/a.dart'), 'D',
         onlyInStrongMode: false);
-    checkHasDependency('a.dart', fullyLinked: false);
+    checkHasDependency(absUri('/a.dart'), fullyLinked: false);
   }
 
   test_initializer_executable_with_return_type_from_closure() {
@@ -8741,15 +8717,15 @@
         serializeVariableText('int v = () => 0;', allowErrors: true);
     EntityRef closureType =
         getTypeRefForSlot(variable.initializer.inferredReturnTypeSlot);
-    checkLinkedTypeRef(closureType, null, null, '',
+    checkLinkedTypeRef(closureType, null, '',
         expectedKind: ReferenceKind.function);
     int initializerIndex =
         definingUnit.references[closureType.reference].containingReference;
-    checkReferenceIndex(initializerIndex, null, null, '',
+    checkReferenceIndex(initializerIndex, null, '',
         expectedKind: ReferenceKind.function);
     int variableIndex =
         definingUnit.references[initializerIndex].containingReference;
-    checkReferenceIndex(variableIndex, null, null, 'v',
+    checkReferenceIndex(variableIndex, null, 'v',
         expectedKind: ReferenceKind.topLevelPropertyAccessor);
     expect(definingUnit.references[variableIndex].containingReference, 0);
   }
@@ -8772,18 +8748,18 @@
     UnlinkedVariable variable = cls.fields[0];
     EntityRef closureType =
         getTypeRefForSlot(variable.initializer.inferredReturnTypeSlot);
-    checkLinkedTypeRef(closureType, null, null, '',
+    checkLinkedTypeRef(closureType, null, '',
         expectedKind: ReferenceKind.function);
     int initializerIndex =
         definingUnit.references[closureType.reference].containingReference;
-    checkReferenceIndex(initializerIndex, null, null, '',
+    checkReferenceIndex(initializerIndex, null, '',
         expectedKind: ReferenceKind.function);
     int variableIndex =
         definingUnit.references[initializerIndex].containingReference;
-    checkReferenceIndex(variableIndex, null, null, 'v',
+    checkReferenceIndex(variableIndex, null, 'v',
         expectedKind: ReferenceKind.propertyAccessor);
     int classIndex = definingUnit.references[variableIndex].containingReference;
-    checkReferenceIndex(classIndex, null, null, 'C');
+    checkReferenceIndex(classIndex, null, 'C');
     expect(definingUnit.references[classIndex].containingReference, 0);
   }
 
@@ -8805,19 +8781,19 @@
     UnlinkedVariable variable = executable.localVariables[1];
     EntityRef closureType =
         getTypeRefForSlot(variable.initializer.inferredReturnTypeSlot);
-    checkLinkedTypeRef(closureType, null, null, '',
+    checkLinkedTypeRef(closureType, null, '',
         expectedKind: ReferenceKind.function);
     int initializerIndex =
         definingUnit.references[closureType.reference].containingReference;
-    checkReferenceIndex(initializerIndex, null, null, '',
+    checkReferenceIndex(initializerIndex, null, '',
         expectedKind: ReferenceKind.function);
     int variableIndex =
         definingUnit.references[initializerIndex].containingReference;
-    checkReferenceIndex(variableIndex, null, null, 'v',
+    checkReferenceIndex(variableIndex, null, 'v',
         expectedKind: ReferenceKind.variable, localIndex: 1);
     int topLevelFunctionIndex =
         definingUnit.references[variableIndex].containingReference;
-    checkReferenceIndex(topLevelFunctionIndex, null, null, 'f',
+    checkReferenceIndex(topLevelFunctionIndex, null, 'f',
         expectedKind: ReferenceKind.topLevelFunction);
     expect(
         definingUnit.references[topLevelFunctionIndex].containingReference, 0);
@@ -8833,8 +8809,8 @@
         'import "a.dart"; int v = new C().d;',
         allowErrors: true);
     expect(variable.initializer.returnType, isNull);
-    checkInferredTypeSlot(variable.initializer.inferredReturnTypeSlot,
-        absUri('/b.dart'), 'b.dart', 'D',
+    checkInferredTypeSlot(
+        variable.initializer.inferredReturnTypeSlot, absUri('/b.dart'), 'D',
         onlyInStrongMode: false);
     if (!skipFullyLinkedData) {
       checkHasDependency('b.dart', fullyLinked: true);
@@ -8885,8 +8861,7 @@
     serializeLibraryText(
         'library my.lib; part "foo.dart"; part "bar.dart"; C c;',
         allowErrors: true);
-    checkTypeRef(findVariable('c').type, null, null, 'C',
-        expectedTargetUnit: 2);
+    checkTypeRef(findVariable('c').type, null, 'C', expectedTargetUnit: 2);
   }
 
   test_lineStarts() {
@@ -8940,13 +8915,13 @@
 class C {}
 C c;
 D d;''');
-    checkTypeRef(findVariable('c').type, null, null, 'C');
-    checkTypeRef(findVariable('d').type, absUri('/a.dart'), 'a.dart', 'D');
+    checkTypeRef(findVariable('c').type, null, 'C');
+    checkTypeRef(findVariable('d').type, absUri('/a.dart'), 'D');
   }
 
   test_localNameShadowsImportPrefix() {
     serializeLibraryText('import "dart:async" as a; class a {}; a x;');
-    checkTypeRef(findVariable('x').type, null, null, 'a');
+    checkTypeRef(findVariable('x').type, null, 'a');
   }
 
   test_metadata_classDeclaration() {
@@ -8971,7 +8946,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.constructor,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'A')
@@ -8990,11 +8965,14 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.constructor,
               prefixExpectations: [
-                new _PrefixExpectation(ReferenceKind.classOrEnum, 'A',
-                    absoluteUri: absUri('/foo.dart'), relativeUri: 'foo.dart'),
+                new _PrefixExpectation(
+                  ReferenceKind.classOrEnum,
+                  'A',
+                  absoluteUri: absUri('/foo.dart'),
+                ),
                 new _PrefixExpectation(ReferenceKind.prefix, 'foo')
               ])
     ]);
@@ -9012,7 +8990,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.unresolved, 'A'),
@@ -9033,11 +9011,14 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
-                new _PrefixExpectation(ReferenceKind.classOrEnum, 'A',
-                    absoluteUri: absUri('/foo.dart'), relativeUri: 'foo.dart'),
+                new _PrefixExpectation(
+                  ReferenceKind.classOrEnum,
+                  'A',
+                  absoluteUri: absUri('/foo.dart'),
+                ),
                 new _PrefixExpectation(ReferenceKind.prefix, 'foo')
               ])
     ]);
@@ -9053,7 +9034,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.unresolved, 'A')
@@ -9071,7 +9052,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'named',
+      (EntityRef r) => checkTypeRef(r, null, 'named',
               expectedKind: ReferenceKind.unresolved,
               prefixExpectations: [
                 new _PrefixExpectation(ReferenceKind.classOrEnum, 'A')
@@ -9089,8 +9070,8 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'A',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'A', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -9105,7 +9086,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/foo.dart'), 'foo.dart', 'A',
+      (EntityRef r) => checkTypeRef(r, absUri('/foo.dart'), 'A',
           expectedKind: ReferenceKind.classOrEnum, expectedPrefix: 'foo')
     ]);
   }
@@ -9122,7 +9103,7 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'A',
+      (EntityRef r) => checkTypeRef(r, null, 'A',
           expectedKind: ReferenceKind.unresolved, expectedPrefix: 'foo')
     ]);
   }
@@ -9137,8 +9118,8 @@
       0,
       0
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'A',
-          expectedKind: ReferenceKind.unresolved)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'A', expectedKind: ReferenceKind.unresolved)
     ]);
   }
 
@@ -9153,8 +9134,8 @@
       0,
       1
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'A',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'A', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -9263,8 +9244,8 @@
       0,
       1
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'A',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'A', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -9285,8 +9266,8 @@
       0,
       1
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'A',
-          expectedKind: ReferenceKind.classOrEnum)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'A', expectedKind: ReferenceKind.classOrEnum)
     ]);
   }
 
@@ -9323,13 +9304,13 @@
     assertUnlinkedConst(annotations[0], operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'a',
+      (EntityRef r) => checkTypeRef(r, null, 'a',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
     assertUnlinkedConst(annotations[1], operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'b',
+      (EntityRef r) => checkTypeRef(r, null, 'b',
           expectedKind: ReferenceKind.topLevelPropertyAccessor)
     ]);
   }
@@ -9348,7 +9329,7 @@
     assertUnlinkedConst(cls.annotations[0], operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'a.dart', 'b',
+      (EntityRef r) => checkTypeRef(r, absUri('/a.dart'), 'b',
           expectedKind: ReferenceKind.topLevelPropertyAccessor,
           expectedPrefix: 'a')
     ]);
@@ -9363,7 +9344,7 @@
     assertUnlinkedConst(cls.annotations[0], operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'b',
+      (EntityRef r) => checkTypeRef(r, null, 'b',
           expectedKind: ReferenceKind.unresolved, expectedPrefix: 'a')
     ]);
   }
@@ -9418,8 +9399,8 @@
     assertUnlinkedConst(cls.annotations[0], operators: [
       UnlinkedExprOperation.pushReference
     ], referenceValidators: [
-      (EntityRef r) => checkTypeRef(r, null, null, 'a',
-          expectedKind: ReferenceKind.unresolved)
+      (EntityRef r) =>
+          checkTypeRef(r, null, 'a', expectedKind: ReferenceKind.unresolved)
     ]);
   }
 
@@ -9461,8 +9442,7 @@
             ' abstract class D { void f(int value); }',
             className: 'C')
         .executables[0];
-    checkInferredTypeSlot(
-        f.parameters[0].inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(f.parameters[0].inferredTypeSlot, 'dart:core', 'int');
   }
 
   test_method_inferred_type_nonstatic_implicit_return() {
@@ -9470,8 +9450,7 @@
             'class C extends D { f() => null; } abstract class D { int f(); }',
             className: 'C')
         .executables[0];
-    checkInferredTypeSlot(
-        f.inferredReturnTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(f.inferredReturnTypeSlot, 'dart:core', 'int');
   }
 
   test_method_inferred_type_static_implicit_param() {
@@ -9704,14 +9683,13 @@
             ' abstract class D { void set f(int value); }',
             className: 'C')
         .executables[0];
-    checkInferredTypeSlot(
-        f.parameters[0].inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(f.parameters[0].inferredTypeSlot, 'dart:core', 'int');
   }
 
   test_setter_inferred_type_nonstatic_implicit_return() {
     UnlinkedExecutable f =
         serializeClassText('class C { set f(int value) {} }').executables[0];
-    checkInferredTypeSlot(f.inferredReturnTypeSlot, null, null, 'void');
+    checkInferredTypeSlot(f.inferredReturnTypeSlot, null, 'void');
   }
 
   test_setter_inferred_type_static_implicit_param() {
@@ -9769,11 +9747,9 @@
 bool f() => true;
 ''');
     EntityRef inferredType = getTypeRefForSlot(variable.inferredTypeSlot);
-    checkLinkedTypeRef(
-        inferredType.syntheticReturnType, 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(inferredType.syntheticReturnType, 'dart:core', 'int');
     expect(inferredType.syntheticParams, hasLength(1));
-    checkLinkedTypeRef(
-        inferredType.syntheticParams[0].type, null, null, '*bottom*');
+    checkLinkedTypeRef(inferredType.syntheticParams[0].type, null, '*bottom*');
   }
 
   test_syntheticFunctionType_genericClosure_inGenericFunction() {
@@ -9795,13 +9771,11 @@
 }
 ''').localVariables[0];
     EntityRef inferredType = getTypeRefForSlot(variable.inferredTypeSlot);
-    checkLinkedTypeRef(
-        inferredType.syntheticReturnType, 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(inferredType.syntheticReturnType, 'dart:core', 'int');
     expect(inferredType.syntheticParams, hasLength(3));
     checkParamTypeRef(inferredType.syntheticParams[0].type, 2);
     checkParamTypeRef(inferredType.syntheticParams[1].type, 1);
-    checkLinkedTypeRef(
-        inferredType.syntheticParams[2].type, null, null, '*bottom*');
+    checkLinkedTypeRef(inferredType.syntheticParams[2].type, null, '*bottom*');
   }
 
   test_syntheticFunctionType_inGenericClass() {
@@ -9816,8 +9790,7 @@
 ''').fields[0];
     EntityRef inferredType =
         getTypeRefForSlot(variable.initializer.inferredReturnTypeSlot);
-    checkLinkedTypeRef(
-        inferredType.syntheticReturnType, 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(inferredType.syntheticReturnType, 'dart:core', 'int');
     checkParamTypeRef(inferredType.syntheticParams[0].type, 2);
     checkParamTypeRef(inferredType.syntheticParams[1].type, 1);
   }
@@ -9833,29 +9806,28 @@
 ''').localVariables[0];
     EntityRef inferredType =
         getTypeRefForSlot(variable.initializer.inferredReturnTypeSlot);
-    checkLinkedTypeRef(
-        inferredType.syntheticReturnType, 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(inferredType.syntheticReturnType, 'dart:core', 'int');
     checkParamTypeRef(inferredType.syntheticParams[0].type, 2);
     checkParamTypeRef(inferredType.syntheticParams[1].type, 1);
   }
 
   test_type_arguments_explicit() {
     EntityRef typeRef = serializeTypeText('List<int>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List',
+    checkTypeRef(typeRef, 'dart:core', 'List',
         numTypeParameters: 1, numTypeArguments: 1);
-    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int');
+    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'int');
   }
 
   test_type_arguments_explicit_dynamic() {
     EntityRef typeRef = serializeTypeText('List<dynamic>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List',
+    checkTypeRef(typeRef, 'dart:core', 'List',
         numTypeParameters: 1, numTypeArguments: 1);
     checkDynamicTypeRef(typeRef.typeArguments[0]);
   }
 
   test_type_arguments_explicit_dynamic_dynamic() {
     EntityRef typeRef = serializeTypeText('Map<dynamic, dynamic>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
+    checkTypeRef(typeRef, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
     checkDynamicTypeRef(typeRef.typeArguments[0]);
     checkDynamicTypeRef(typeRef.typeArguments[1]);
@@ -9863,16 +9835,16 @@
 
   test_type_arguments_explicit_dynamic_int() {
     EntityRef typeRef = serializeTypeText('Map<dynamic, int>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
+    checkTypeRef(typeRef, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
     checkDynamicTypeRef(typeRef.typeArguments[0]);
-    checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'int');
+    checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'int');
   }
 
   test_type_arguments_explicit_dynamic_typedef() {
     EntityRef typeRef =
         serializeTypeText('F<dynamic>', otherDeclarations: 'typedef T F<T>();');
-    checkTypeRef(typeRef, null, null, 'F',
+    checkTypeRef(typeRef, null, 'F',
         expectedKind: ReferenceKind.typedef,
         numTypeParameters: 1,
         numTypeArguments: 1);
@@ -9881,56 +9853,55 @@
 
   test_type_arguments_explicit_String_dynamic() {
     EntityRef typeRef = serializeTypeText('Map<String, dynamic>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
+    checkTypeRef(typeRef, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
-    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'String');
+    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'String');
     checkDynamicTypeRef(typeRef.typeArguments[1]);
   }
 
   test_type_arguments_explicit_String_int() {
     EntityRef typeRef = serializeTypeText('Map<String, int>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
+    checkTypeRef(typeRef, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
-    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'String');
-    checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'int');
+    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'String');
+    checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'int');
   }
 
   test_type_arguments_explicit_typedef() {
     EntityRef typeRef =
         serializeTypeText('F<int>', otherDeclarations: 'typedef T F<T>();');
-    checkTypeRef(typeRef, null, null, 'F',
+    checkTypeRef(typeRef, null, 'F',
         expectedKind: ReferenceKind.typedef,
         numTypeParameters: 1,
         numTypeArguments: 1);
-    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int');
+    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'int');
   }
 
   test_type_arguments_implicit() {
     EntityRef typeRef = serializeTypeText('List');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'List',
-        numTypeParameters: 1);
+    checkTypeRef(typeRef, 'dart:core', 'List', numTypeParameters: 1);
   }
 
   test_type_arguments_implicit_typedef() {
     EntityRef typeRef =
         serializeTypeText('F', otherDeclarations: 'typedef T F<T>();');
-    checkTypeRef(typeRef, null, null, 'F',
+    checkTypeRef(typeRef, null, 'F',
         expectedKind: ReferenceKind.typedef, numTypeParameters: 1);
   }
 
   test_type_arguments_implicit_typedef_withBound() {
     EntityRef typeRef = serializeTypeText('F',
         otherDeclarations: 'typedef T F<T extends num>();');
-    checkTypeRef(typeRef, null, null, 'F',
+    checkTypeRef(typeRef, null, 'F',
         expectedKind: ReferenceKind.typedef, numTypeParameters: 1);
   }
 
   test_type_arguments_order() {
     EntityRef typeRef = serializeTypeText('Map<int, Object>');
-    checkTypeRef(typeRef, 'dart:core', 'dart:core', 'Map',
+    checkTypeRef(typeRef, 'dart:core', 'Map',
         numTypeParameters: 2, numTypeArguments: 2);
-    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'dart:core', 'int');
-    checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'dart:core', 'Object');
+    checkTypeRef(typeRef.typeArguments[0], 'dart:core', 'int');
+    checkTypeRef(typeRef.typeArguments[1], 'dart:core', 'Object');
   }
 
   test_type_dynamic() {
@@ -9945,7 +9916,7 @@
 ''');
     UnlinkedExecutable m = c.executables[0];
     expect(m.name, 'm');
-    checkTypeRef(m.parameters[0].type, null, null, 'dynamic');
+    checkTypeRef(m.parameters[0].type, null, 'dynamic');
   }
 
   test_type_param_codeRange() {
@@ -10033,7 +10004,7 @@
     addNamedSource('/a.dart', 'part of foo; C v;');
     serializeLibraryText('library foo; part "a.dart"; class C {}');
     checkTypeRef(findVariable('v', variables: unlinkedUnits[1].variables).type,
-        null, null, 'C',
+        null, 'C',
         expectedKind: ReferenceKind.classOrEnum,
         linkedSourceUnit: linked.units[1],
         unlinkedSourceUnit: unlinkedUnits[1]);
@@ -10046,7 +10017,7 @@
         'library foo; import "a.dart"; import "a.dart" as a; part "p.dart";',
         allowErrors: true);
     checkTypeRef(findVariable('v', variables: unlinkedUnits[1].variables).type,
-        absUri('/a.dart'), 'a.dart', 'C',
+        absUri('/a.dart'), 'C',
         expectedPrefix: 'a',
         linkedSourceUnit: linked.units[1],
         unlinkedSourceUnit: unlinkedUnits[1]);
@@ -10070,7 +10041,7 @@
     addNamedSource('/a.dart', 'library a; export "b.dart";');
     addNamedSource('/b.dart', 'library b; class C {}');
     checkTypeRef(serializeTypeText('C', otherDeclarations: 'import "a.dart";'),
-        absUri('/b.dart'), 'b.dart', 'C');
+        absUri('/b.dart'), 'C');
   }
 
   test_type_reference_to_import_of_export_via_prefix() {
@@ -10079,7 +10050,6 @@
     checkTypeRef(
         serializeTypeText('p.C', otherDeclarations: 'import "a.dart" as p;'),
         absUri('/b.dart'),
-        'b.dart',
         'C',
         expectedPrefix: 'p');
   }
@@ -10091,7 +10061,6 @@
         serializeTypeText('C',
             otherDeclarations: 'library my.lib; import "a.dart";'),
         absUri('/a.dart'),
-        'a.dart',
         'C',
         expectedTargetUnit: 1);
   }
@@ -10103,15 +10072,14 @@
         serializeTypeText('p.C',
             otherDeclarations: 'library my.lib; import "a.dart" as p;'),
         absUri('/a.dart'),
-        'a.dart',
         'C',
         expectedPrefix: 'p',
         expectedTargetUnit: 1);
   }
 
   test_type_reference_to_internal_class() {
-    checkTypeRef(serializeTypeText('C', otherDeclarations: 'class C {}'), null,
-        null, 'C');
+    checkTypeRef(
+        serializeTypeText('C', otherDeclarations: 'class C {}'), null, 'C');
   }
 
   test_type_reference_to_internal_class_alias() {
@@ -10119,13 +10087,12 @@
         serializeTypeText('C',
             otherDeclarations: 'class C = D with E; class D {} class E {}'),
         null,
-        null,
         'C');
   }
 
   test_type_reference_to_internal_enum() {
     checkTypeRef(serializeTypeText('E', otherDeclarations: 'enum E { value }'),
-        null, null, 'E');
+        null, 'E');
   }
 
   test_type_reference_to_local_part() {
@@ -10134,7 +10101,6 @@
         serializeTypeText('C',
             otherDeclarations: 'library my.lib; part "a.dart";'),
         null,
-        null,
         'C',
         expectedTargetUnit: 1);
   }
@@ -10149,7 +10115,7 @@
   test_type_reference_to_part() {
     addNamedSource('/a.dart', 'part of foo; class C { C(); }');
     serializeLibraryText('library foo; part "a.dart"; C c;');
-    checkTypeRef(unlinkedUnits[0].variables.single.type, null, null, 'C',
+    checkTypeRef(unlinkedUnits[0].variables.single.type, null, 'C',
         expectedKind: ReferenceKind.classOrEnum, expectedTargetUnit: 1);
   }
 
@@ -10168,19 +10134,16 @@
     // Note: it is important that each reference to class C records the prefix
     // used to find it; otherwise it's possible that relinking might produce an
     // incorrect result after a change to lib2.dart, lib3.dart, or lib4.dart.
-    checkTypeRef(
-        findVariable('c2').type, absUri('/lib1.dart'), 'lib1.dart', 'C');
-    checkTypeRef(
-        findVariable('c3').type, absUri('/lib1.dart'), 'lib1.dart', 'C',
+    checkTypeRef(findVariable('c2').type, absUri('/lib1.dart'), 'C');
+    checkTypeRef(findVariable('c3').type, absUri('/lib1.dart'), 'C',
         expectedPrefix: 'a');
-    checkTypeRef(
-        findVariable('c4').type, absUri('/lib1.dart'), 'lib1.dart', 'C',
+    checkTypeRef(findVariable('c4').type, absUri('/lib1.dart'), 'C',
         expectedPrefix: 'b');
   }
 
   test_type_reference_to_typedef() {
     checkTypeRef(serializeTypeText('F', otherDeclarations: 'typedef void F();'),
-        null, null, 'F',
+        null, 'F',
         expectedKind: ReferenceKind.typedef);
   }
 
@@ -10193,8 +10156,7 @@
     // The referenced unit should be 2, since unit 0 is a.dart and unit 1 is
     // b.dart.  a.dart and b.dart are counted even though nothing is imported
     // from them.
-    checkTypeRef(typeRef, absUri('/a.dart'), 'a.dart', 'C',
-        expectedTargetUnit: 2);
+    checkTypeRef(typeRef, absUri('/a.dart'), 'C', expectedTargetUnit: 2);
   }
 
   test_type_unresolved() {
@@ -10255,7 +10217,7 @@
   test_typedef_reference_generic() {
     EntityRef typeRef =
         serializeTypeText('F', otherDeclarations: 'typedef void F<A, B>();');
-    checkTypeRef(typeRef, null, null, 'F',
+    checkTypeRef(typeRef, null, 'F',
         numTypeParameters: 2, expectedKind: ReferenceKind.typedef);
   }
 
@@ -10263,13 +10225,13 @@
     addNamedSource('/lib.dart', 'typedef void F<A, B>();');
     EntityRef typeRef =
         serializeTypeText('F', otherDeclarations: 'import "lib.dart";');
-    checkTypeRef(typeRef, absUri('/lib.dart'), 'lib.dart', 'F',
+    checkTypeRef(typeRef, absUri('/lib.dart'), 'F',
         numTypeParameters: 2, expectedKind: ReferenceKind.typedef);
   }
 
   test_typedef_return_type_explicit() {
     UnlinkedTypedef type = serializeTypedefText('typedef int F();');
-    checkTypeRef(type.returnType, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(type.returnType, 'dart:core', 'int');
   }
 
   test_typedef_type_param_in_parameter() {
@@ -10308,8 +10270,7 @@
     expect(unlinkedUnits[0].publicNamespace.exports, hasLength(1));
     expect(unlinkedUnits[0].publicNamespace.exports[0].uri, 'foo.dart');
     expect(linked.exportDependencies, hasLength(1));
-    checkDependency(
-        linked.exportDependencies[0], absUri('/foo.dart'), 'foo.dart');
+    checkDependency(linked.exportDependencies[0], absUri('/foo.dart'));
   }
 
   test_unresolved_import() {
@@ -10320,8 +10281,7 @@
     // Note: imports[1] is the implicit import of dart:core.
     expect(unlinkedUnits[0].imports[1].isImplicit, true);
     expect(linked.importDependencies, hasLength(2));
-    checkDependency(
-        linked.importDependencies[0], absUri('/foo.dart'), 'foo.dart');
+    checkDependency(linked.importDependencies[0], absUri('/foo.dart'));
   }
 
   test_unresolved_part() {
@@ -10369,7 +10329,7 @@
     EntityRef type =
         getTypeRefForSlot(variable.initializer.inferredReturnTypeSlot);
     expect(type.typeArguments, hasLength(1));
-    checkLinkedTypeRef(type.typeArguments[0], 'dart:core', 'dart:core', 'int');
+    checkLinkedTypeRef(type.typeArguments[0], 'dart:core', 'int');
   }
 
   test_variable() {
@@ -10447,7 +10407,7 @@
 
   test_variable_inferred_type_implicit_initialized() {
     UnlinkedVariable v = serializeVariableText('var v = 0;');
-    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'dart:core', 'int');
+    checkInferredTypeSlot(v.inferredTypeSlot, 'dart:core', 'int');
   }
 
   test_variable_inferred_type_implicit_uninitialized() {
@@ -10578,7 +10538,7 @@
   test_variable_type() {
     UnlinkedVariable variable =
         serializeVariableText('int i;', variableName: 'i');
-    checkTypeRef(variable.type, 'dart:core', 'dart:core', 'int');
+    checkTypeRef(variable.type, 'dart:core', 'int');
   }
 
   /**
@@ -10650,7 +10610,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'a',
+          (EntityRef r) => checkTypeRef(r, null, 'a',
               expectedKind: ReferenceKind.topLevelPropertyAccessor)
         ]);
   }
@@ -10712,7 +10672,7 @@
         ],
         strings: [],
         referenceValidators: [
-          (EntityRef r) => checkTypeRef(r, null, null, 'a',
+          (EntityRef r) => checkTypeRef(r, null, 'a',
               expectedKind: ReferenceKind.topLevelPropertyAccessor)
         ]);
   }
@@ -10734,9 +10694,8 @@
   final ReferenceKind kind;
   final String name;
   final String absoluteUri;
-  final String relativeUri;
   final int numTypeParameters;
 
   _PrefixExpectation(this.kind, this.name,
-      {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0});
+      {this.absoluteUri, this.numTypeParameters: 0});
 }
diff --git a/pkg/analyzer/test/src/summary/test_all.dart b/pkg/analyzer/test/src/summary/test_all.dart
index bce3840..95ccf76 100644
--- a/pkg/analyzer/test/src/summary/test_all.dart
+++ b/pkg/analyzer/test/src/summary/test_all.dart
@@ -13,7 +13,6 @@
 import 'name_filter_test.dart' as name_filter_test;
 import 'package_bundle_reader_test.dart' as package_bundle_reader_test;
 import 'prelinker_test.dart' as prelinker_test;
-import 'pub_summary_test.dart' as pub_summary_test;
 import 'resynthesize_ast_test.dart' as resynthesize_ast_test;
 import 'summarize_ast_strong_test.dart' as summarize_ast_strong_test;
 import 'summarize_ast_test.dart' as summarize_ast_test;
@@ -28,7 +27,6 @@
     name_filter_test.main();
     package_bundle_reader_test.main();
     prelinker_test.main();
-    pub_summary_test.main();
     resynthesize_ast_test.main();
     summarize_ast_strong_test.main();
     summarize_ast_test.main();
diff --git a/pkg/analyzer/tool/task_dependency_graph/tasks.dot b/pkg/analyzer/tool/task_dependency_graph/tasks.dot
index 89988ad..1907d88 100644
--- a/pkg/analyzer/tool/task_dependency_graph/tasks.dot
+++ b/pkg/analyzer/tool/task_dependency_graph/tasks.dot
@@ -181,6 +181,7 @@
   LIBRARY_SPECIFIC_UNITS [shape=box]
   LIBRARY_UNIT_ERRORS -> dartErrorsForUnit
   LIBRARY_UNIT_ERRORS [shape=box]
+  LINE_INFO -> BuildCompilationUnitElementTask
   LINE_INFO -> DartErrorsTask
   LINE_INFO -> ParseDartTask
   LINE_INFO [shape=box]
diff --git a/pkg/analyzer_cli/README.md b/pkg/analyzer_cli/README.md
index 947e730..7943162 100644
--- a/pkg/analyzer_cli/README.md
+++ b/pkg/analyzer_cli/README.md
@@ -68,14 +68,11 @@
 
 The following options are deprecated:
 
-* `-p` _or_ `--package-root=`<br>
+* `--package-root=`<br>
   **Deprecated.** Specify the directory to search for any libraries that are
   imported using `package:`. _This option is replaced as of Dart 1.12 with
   `--packages`._
 
-* `--machine`<br>
-  **Deprecated.** Replaced by `--format`.
-
 * `--show-package-warnings`<br>
   **Deprecated.** Replaced by `--package-warnings`.
 
diff --git a/pkg/analyzer_cli/lib/src/analyzer_impl.dart b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
index 5df078a..73ff30b 100644
--- a/pkg/analyzer_cli/lib/src/analyzer_impl.dart
+++ b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
@@ -266,8 +266,9 @@
       if (analysisDriver != null) {
         String path = librarySource.fullName;
         analysisDriver.priorityFiles = [path];
-        AnalysisResult analysisResult = await analysisDriver.getResult(path);
-        return analysisResult.unit.element.library;
+        UnitElementResult elementResult =
+            await analysisDriver.getUnitElement(path);
+        return elementResult.element.library;
       } else {
         return context.computeLibraryElement(librarySource);
       }
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index e91d07e..e6e3ad7 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -76,7 +76,7 @@
   static final PerformanceTag _analyzeAllTag =
       new PerformanceTag("Driver._analyzeAll");
 
-  static ByteStore analysisDriverByteStore = new MemoryByteStore();
+  static ByteStore analysisDriverMemoryByteStore = new MemoryByteStore();
 
   /// The plugins that are defined outside the `analyzer_cli` package.
   List<Plugin> _userDefinedPlugins = <Plugin>[];
@@ -244,10 +244,17 @@
     // Check that each part has a corresponding source in the input list.
     for (Source part in parts) {
       bool found = false;
-      for (var lib in context.getLibrariesContaining(part)) {
-        if (libUris.contains(lib.uri)) {
+      if (analysisDriver != null) {
+        var partFile = analysisDriver.fsState.getFileForPath(part.fullName);
+        if (libUris.contains(partFile.library?.uri)) {
           found = true;
         }
+      } else {
+        for (var lib in context.getLibrariesContaining(part)) {
+          if (libUris.contains(lib.uri)) {
+            found = true;
+          }
+        }
       }
       if (!found) {
         errorSink.writeln("${part.fullName} is a part and cannot be analyzed.");
@@ -572,7 +579,7 @@
           scheduler,
           log,
           resourceProvider,
-          analysisDriverByteStore,
+          analysisDriverMemoryByteStore,
           new FileContentOverlay(),
           'test',
           context.sourceFactory,
@@ -716,6 +723,20 @@
     }
   }
 
+  static AnalysisOptionsImpl createAnalysisOptions(
+      file_system.ResourceProvider resourceProvider,
+      SourceFactory sourceFactory,
+      CommandLineOptions options) {
+    // Prepare context options.
+    AnalysisOptionsImpl analysisOptions =
+        createAnalysisOptionsForCommandLineOptions(options);
+
+    // Process analysis options file (and notify all interested parties).
+    _processAnalysisOptions(
+        resourceProvider, sourceFactory, analysisOptions, options);
+    return analysisOptions;
+  }
+
   static AnalysisOptionsImpl createAnalysisOptionsForCommandLineOptions(
       CommandLineOptions options) {
     AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl();
@@ -733,20 +754,6 @@
     return contextOptions;
   }
 
-  static AnalysisOptionsImpl createAnalysisOptions(
-      file_system.ResourceProvider resourceProvider,
-      SourceFactory sourceFactory,
-      CommandLineOptions options) {
-    // Prepare context options.
-    AnalysisOptionsImpl analysisOptions =
-        createAnalysisOptionsForCommandLineOptions(options);
-
-    // Process analysis options file (and notify all interested parties).
-    _processAnalysisOptions(
-        resourceProvider, sourceFactory, analysisOptions, options);
-    return analysisOptions;
-  }
-
   static void setAnalysisContextOptions(
       file_system.ResourceProvider resourceProvider,
       SourceFactory sourceFactory,
diff --git a/pkg/analyzer_cli/lib/src/options.dart b/pkg/analyzer_cli/lib/src/options.dart
index 7dd9de9..7f8da52 100644
--- a/pkg/analyzer_cli/lib/src/options.dart
+++ b/pkg/analyzer_cli/lib/src/options.dart
@@ -33,7 +33,7 @@
 
 /// Analyzer commandline configuration options.
 class CommandLineOptions {
-  final bool enableNewAnalysisDriver = false;
+  final bool enableNewAnalysisDriver = true;
 
   /// The path to output analysis results when in build mode.
   final String buildAnalysisOutput;
@@ -87,9 +87,6 @@
   /// Whether to display version information
   final bool displayVersion;
 
-  /// Whether to enable null-aware operators (DEP 9).
-  final bool enableNullAwareOperators;
-
   /// Whether to treat type mismatches found during constant evaluation as
   /// errors.
   final bool enableTypeChecks;
@@ -143,6 +140,9 @@
   /// Whether to treat lints as fatal
   final bool lintsAreFatal;
 
+  /// Whether to use memory byte store for analysis driver.
+  final bool useAnalysisDriverMemoryByteStore;
+
   /// Initialize options from the given parsed [args].
   CommandLineOptions._fromArgs(ArgResults args)
       : buildAnalysisOutput = args['build-analysis-output'],
@@ -162,13 +162,12 @@
         disableCacheFlushing = args['disable-cache-flushing'],
         disableHints = args['no-hints'],
         displayVersion = args['version'],
-        enableNullAwareOperators = args['enable-null-aware-operators'],
         enableTypeChecks = args['enable_type_checks'],
         hintsAreFatal = args['fatal-hints'],
         ignoreUnrecognizedFlags = args['ignore-unrecognized-flags'],
         lints = args['lints'],
         log = args['log'],
-        machineFormat = args['machine'] || args['format'] == 'machine',
+        machineFormat = args['format'] == 'machine',
         perfReport = args['x-perf-report'],
         shouldBatch = args['batch'],
         showPackageWarnings = args['show-package-warnings'] ||
@@ -181,7 +180,9 @@
         strongMode = args['strong'],
         implicitCasts = !args['no-implicit-casts'],
         implicitDynamic = !args['no-implicit-dynamic'],
-        lintsAreFatal = args['fatal-lints'];
+        lintsAreFatal = args['fatal-lints'],
+        useAnalysisDriverMemoryByteStore =
+            args['use-analysis-driver-memory-byte-store'];
 
   /// The path to an analysis options file
   String get analysisOptionsFile =>
@@ -223,7 +224,7 @@
         }
       }
 
-      var sdkPath = options.dartSdkPath;
+      String sdkPath = options.dartSdkPath;
 
       // Check that SDK is specified.
       if (sdkPath == null) {
@@ -246,13 +247,6 @@
       }
     }
 
-    // OK.  Report deprecated options.
-    if (options.enableNullAwareOperators) {
-      errorSink.writeln(
-          "Info: Option '--enable-null-aware-operators' is no longer needed. "
-          "Null aware operators are supported by default.");
-    }
-
     // Build mode.
     if (options.buildModePersistentWorker && !options.buildMode) {
       printAndFail('The option --persisten_worker can be used only '
@@ -285,20 +279,21 @@
     bool verbose = args.contains('-v') || args.contains('--verbose');
     bool hide = !verbose;
 
-    var parser = new ArgParser(allowTrailingOptions: true);
+    ArgParser parser = new ArgParser(allowTrailingOptions: true);
+
+    if (!hide) {
+      parser.addSeparator('General options:');
+    }
+
+    // TODO(devoncarew): This defines some hidden flags, which would be better
+    // defined with the rest of the hidden flags below (to group well with the
+    // other flags).
     defineAnalysisArguments(parser, hide: hide);
+
     parser
-      ..addFlag('batch',
-          abbr: 'b',
-          help: 'Read commands from standard input (for testing).',
-          defaultsTo: false,
-          negatable: false)
       ..addOption('format',
-          help: 'Specifies the format in which errors are displayed.')
-      ..addFlag('machine',
-          help: 'Print errors in a format suitable for parsing (deprecated).',
-          defaultsTo: false,
-          negatable: false)
+          help: 'Specifies the format in which errors are displayed; the only '
+              'currently allowed value is \'machine\'.')
       ..addFlag('version',
           help: 'Print the analyzer version.',
           defaultsTo: false,
@@ -309,7 +304,6 @@
           help: 'Do not show hint results.',
           defaultsTo: false,
           negatable: false)
-      ..addFlag('disable-cache-flushing', defaultsTo: false, hide: true)
       ..addFlag(ignoreUnrecognizedFlagsFlag,
           help: 'Ignore unrecognized command line flags.',
           defaultsTo: false,
@@ -338,29 +332,30 @@
           help: 'Show warnings from SDK imports (deprecated).',
           defaultsTo: false,
           negatable: false)
-      ..addOption('x-package-warnings-prefix',
-          help:
-              'Show warnings from package: imports that match the given prefix',
-          hide: true)
-      ..addOption('x-perf-report',
-          help: 'Writes a performance report to the given file (experimental).')
       ..addFlag('help',
           abbr: 'h',
-          help: 'Display this help message.\n'
-              'Add --verbose to show hidden options.',
+          help:
+              'Display this help message. Add --verbose to show hidden options.',
           defaultsTo: false,
           negatable: false)
       ..addFlag('verbose',
-          abbr: 'v', defaultsTo: false, help: 'Verbose output.')
+          abbr: 'v',
+          defaultsTo: false,
+          help: 'Verbose output.',
+          negatable: false)
       ..addOption('url-mapping',
           help: '--url-mapping=libraryUri,/path/to/library.dart directs the '
               'analyzer to use "library.dart" as the source for an import '
               'of "libraryUri".',
           allowMultiple: true,
-          splitCommas: false)
-      //
-      // Build mode.
-      //
+          splitCommas: false);
+
+    // Build mode options.
+    if (!hide) {
+      parser.addSeparator('Build mode flags:');
+    }
+
+    parser
       ..addFlag('persistent_worker',
           help: 'Enable Bazel persistent worker mode.',
           defaultsTo: false,
@@ -414,19 +409,26 @@
           help: 'Exit with code 0 even if errors are found.',
           defaultsTo: false,
           negatable: false,
-          hide: hide)
-      //
-      // Hidden flags.
-      //
-      ..addFlag('enable-async',
-          help: 'Enable support for the proposed async feature.',
+          hide: hide);
+
+    // Hidden flags.
+    if (!hide) {
+      parser.addSeparator('Less frequently used flags:');
+    }
+
+    parser
+      ..addFlag('batch',
+          help: 'Read commands from standard input (for testing).',
           defaultsTo: false,
           negatable: false,
           hide: hide)
-      ..addFlag('enable-enum',
-          help: 'Enable support for the proposed enum feature.',
-          defaultsTo: false,
-          negatable: false,
+      ..addFlag('disable-cache-flushing', defaultsTo: false, hide: hide)
+      ..addOption('x-perf-report',
+          help: 'Writes a performance report to the given file (experimental).',
+          hide: hide)
+      ..addOption('x-package-warnings-prefix',
+          help:
+              'Show warnings from package: imports that match the given prefix',
           hide: hide)
       ..addFlag('enable-conditional-directives',
           help:
@@ -434,16 +436,6 @@
           defaultsTo: false,
           negatable: false,
           hide: hide)
-      ..addFlag('enable-null-aware-operators',
-          help: 'Enable support for null-aware operators (DEP 9).',
-          defaultsTo: false,
-          negatable: false,
-          hide: hide)
-      ..addFlag('enable-new-task-model',
-          help: 'deprecated -- Ennable new task model.',
-          defaultsTo: false,
-          negatable: false,
-          hide: hide)
       ..addFlag('log',
           help: 'Log additional messages and exceptions.',
           defaultsTo: false,
@@ -453,16 +445,18 @@
           help: 'Check types in constant evaluation.',
           defaultsTo: false,
           negatable: false,
+          hide: hide)
+      ..addFlag('use-analysis-driver-memory-byte-store',
+          help: 'Use memory byte store, not the file system cache.',
+          defaultsTo: false,
+          negatable: false,
           hide: hide);
 
     try {
-      // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061
-      args =
-          args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList();
       if (args.contains('--$ignoreUnrecognizedFlagsFlag')) {
         args = filterUnknownArguments(args, parser);
       }
-      var results = parser.parse(args);
+      ArgResults results = parser.parse(args);
 
       // Persistent worker.
       if (args.contains('--persistent_worker')) {
@@ -527,12 +521,15 @@
     }
   }
 
-  static _showUsage(parser) {
-    errorSink
-        .writeln('Usage: $_binaryName [options...] <libraries to analyze...>');
-    errorSink.writeln(parser.getUsage());
-    errorSink.writeln('');
+  static _showUsage(ArgParser parser) {
     errorSink.writeln(
-        'For more information, see http://www.dartlang.org/tools/analyzer.');
+        'Usage: $_binaryName [options...] <directory or list of files>');
+    errorSink.writeln('');
+    errorSink.writeln(parser.usage);
+    errorSink.writeln('');
+    errorSink.writeln('''
+Run "dartanalyzer -h -v" for verbose help output, including less commonly used options.
+For more information, see http://www.dartlang.org/tools/analyzer.
+''');
   }
 }
diff --git a/pkg/analyzer_cli/test/data/package_with_embedder_yaml/lib/core.dart b/pkg/analyzer_cli/test/data/package_with_embedder_yaml/lib/core.dart
index a7fa657..94b936c 100644
--- a/pkg/analyzer_cli/test/data/package_with_embedder_yaml/lib/core.dart
+++ b/pkg/analyzer_cli/test/data/package_with_embedder_yaml/lib/core.dart
@@ -4,6 +4,8 @@
 
 library dart.core;
 
+import 'dart:async';
+
 class Object {
   bool operator ==(other) => identical(this, other);
   String toString() => 'a string';
diff --git a/pkg/analyzer_cli/test/driver_test.dart b/pkg/analyzer_cli/test/driver_test.dart
index 0a379c4..cd0e5df 100644
--- a/pkg/analyzer_cli/test/driver_test.dart
+++ b/pkg/analyzer_cli/test/driver_test.dart
@@ -342,7 +342,7 @@
                 '--dart-sdk',
                 findSdkDirForSummaries(),
                 '--build-mode',
-                '--machine'
+                '--format=machine'
               ]..addAll(additionalArgs),
               options: 'data/options_tests_project/$optionsFileName');
         }
diff --git a/pkg/analyzer_cli/test/options_test.dart b/pkg/analyzer_cli/test/options_test.dart
index c0ca301..885c22c 100644
--- a/pkg/analyzer_cli/test/options_test.dart
+++ b/pkg/analyzer_cli/test/options_test.dart
@@ -122,7 +122,7 @@
 
       test('package root', () {
         CommandLineOptions options = CommandLineOptions
-            .parse(['--dart-sdk', '.', '-p', 'bar', 'foo.dart']);
+            .parse(['--dart-sdk', '.', '--package-root', 'bar', 'foo.dart']);
         expect(options.packageRootPath, equals('bar'));
       });
 
diff --git a/pkg/analyzer_plugin/pubspec.yaml b/pkg/analyzer_plugin/pubspec.yaml
index 8315bf9..a73140d 100644
--- a/pkg/analyzer_plugin/pubspec.yaml
+++ b/pkg/analyzer_plugin/pubspec.yaml
@@ -13,4 +13,4 @@
 
 dev_dependencies:
   test_reflective_loader: ^0.1.0
-  test: ^0.12.0
+  test: ^0.12.17
diff --git a/pkg/analyzer_plugin/test/integration/support/integration_tests.dart b/pkg/analyzer_plugin/test/integration/support/integration_tests.dart
index 80c7a20..99f7b0d 100644
--- a/pkg/analyzer_plugin/test/integration/support/integration_tests.dart
+++ b/pkg/analyzer_plugin/test/integration/support/integration_tests.dart
@@ -719,7 +719,7 @@
     // and is outputting a stacktrace, because it ensures that we see the
     // entire stacktrace.  Use expectAsync() to prevent the test from
     // ending during this 1 second.
-    new Future.delayed(new Duration(seconds: 1), expectAsync(() {
+    new Future.delayed(new Duration(seconds: 1), expectAsync0(() {
       fail('Bad data received from server: $details');
     }));
   }
diff --git a/pkg/compiler/lib/src/kernel/kernel_visitor.dart b/pkg/compiler/lib/src/kernel/kernel_visitor.dart
index 8ba98d0..d4562e0 100644
--- a/pkg/compiler/lib/src/kernel/kernel_visitor.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_visitor.dart
@@ -47,6 +47,7 @@
         GetterElement,
         InitializingFormalElement,
         JumpTarget,
+        LibraryElement,
         LocalElement,
         LocalFunctionElement,
         LocalVariableElement,
@@ -202,6 +203,13 @@
   final Map<CascadeReceiver, ir.VariableGet> cascadeReceivers =
       <CascadeReceiver, ir.VariableGet>{};
 
+  // This maps underlying Library elements to the corresponding DeferredImport
+  // object, via the prefix name (aka "bar" in
+  // "import foo.dart deferred as bar"). LibraryElement corresponds to the
+  // imported library element.
+  final Map<LibraryElement, Map<String, ir.DeferredImport>> deferredImports =
+      <LibraryElement, Map<String, ir.DeferredImport>>{};
+
   ir.Node associateElement(ir.Node node, Element element) {
     kernel.nodeToElement[node] = element;
     return node;
@@ -214,6 +222,10 @@
 
   bool isVoidContext = false;
 
+  /// If non-null, reference to a deferred library that a subsequent getter is
+  /// using.
+  ir.DeferredImport _deferredLibrary;
+
   KernelVisitor(this.currentElement, this.elements, this.kernel);
 
   KernelVisitor get sendVisitor => this;
@@ -363,7 +375,15 @@
   }
 
   @override
-  void previsitDeferredAccess(Send node, PrefixElement prefix, _) {}
+  void previsitDeferredAccess(Send node, PrefixElement prefix, _) {
+    // This is visited before any element access, and if it is deferred,
+    // prefix.isDeferred = true.
+    if (prefix != null && prefix.isDeferred) {
+      _deferredLibrary = getDeferredImport(prefix);
+    } else {
+      _deferredLibrary = null;
+    }
+  }
 
   @override
   internalError(Spannable spannable, String message) {
@@ -1204,9 +1224,12 @@
   }
 
   @override
-  ir.TypeLiteral visitClassTypeLiteralGet(
+  ir.Expression visitClassTypeLiteralGet(
       Send node, ConstantExpression constant, _) {
-    return buildTypeLiteral(constant);
+    var loadedCheckFunc =
+        _createCheckLibraryLoadedFuncIfNeeded(_deferredLibrary);
+    _deferredLibrary = null;
+    return loadedCheckFunc(buildTypeLiteral(constant));
   }
 
   @override
@@ -1994,7 +2017,10 @@
   }
 
   ir.Expression buildStaticGet(Element element) {
-    return buildStaticAccessor(element).buildSimpleRead();
+    var loadedCheckFunc =
+        _createCheckLibraryLoadedFuncIfNeeded(_deferredLibrary);
+    _deferredLibrary = null;
+    return loadedCheckFunc(buildStaticAccessor(element).buildSimpleRead());
   }
 
   @override
@@ -2206,14 +2232,13 @@
   }
 
   @override
-  ir.StaticInvocation handleStaticFunctionInvoke(
-      Send node,
-      MethodElement function,
-      NodeList arguments,
-      CallStructure callStructure,
-      _) {
-    return associateNode(
-        buildStaticInvoke(function, arguments, isConst: false), node);
+  ir.Expression handleStaticFunctionInvoke(Send node, MethodElement function,
+      NodeList arguments, CallStructure callStructure, _) {
+    var loadedCheckFunc =
+        _createCheckLibraryLoadedFuncIfNeeded(_deferredLibrary);
+    _deferredLibrary = null;
+    return loadedCheckFunc(associateNode(
+        buildStaticInvoke(function, arguments, isConst: false), node));
   }
 
   @override
@@ -2229,24 +2254,36 @@
     return buildIrFunction(ir.ProcedureKind.Getter, getter, body);
   }
 
+  ir.DeferredImport getDeferredImport(PrefixElement prefix) {
+    var map = deferredImports[prefix.deferredImport.importedLibrary] ??=
+        <String, ir.DeferredImport>{};
+    return map[prefix.name] ??= associateElement(
+        new ir.DeferredImport(
+            kernel.libraries[prefix.deferredImport.importedLibrary],
+            prefix.name),
+        prefix);
+  }
+
   @override
   ir.Expression handleStaticGetterGet(Send node, FunctionElement getter, _) {
     if (getter.isDeferredLoaderGetter) {
-      // TODO(ahe): Support deferred load.
-      return new ir.InvalidExpression();
+      return new ir.LoadLibrary(getDeferredImport(getter.enclosingElement));
     }
-    return buildStaticGet(getter);
+    var expression = buildStaticGet(getter);
+    return expression;
   }
 
   @override
   ir.Expression handleStaticGetterInvoke(Send node, FunctionElement getter,
       NodeList arguments, CallStructure callStructure, _) {
+    var expression;
     if (getter.isDeferredLoaderGetter) {
-      // TODO(ahe): Support deferred load.
-      return new ir.InvalidExpression();
+      expression =
+          new ir.LoadLibrary(getDeferredImport(getter.enclosingElement));
+    } else {
+      expression = buildStaticGet(getter);
     }
-    return associateNode(
-        buildCall(buildStaticGet(getter), callStructure, arguments), node);
+    return associateNode(buildCall(expression, callStructure, arguments), node);
   }
 
   @override
@@ -2675,10 +2712,27 @@
     return buildIrFunction(ir.ProcedureKind.Setter, setter, body);
   }
 
+  /// Return a function that accepts an expression and returns an expression. If
+  /// deferredImport is null, then the function returned is the identity
+  /// expression. Otherwise, it inserts a CheckLibraryIsLoaded call before
+  /// evaluating the expression.
+  _createCheckLibraryLoadedFuncIfNeeded(ir.DeferredImport deferredImport) {
+    if (deferredImport != null) {
+      return (ir.Expression inputExpression) => new ir.Let(
+          makeOrReuseVariable(new ir.CheckLibraryIsLoaded(deferredImport)),
+          inputExpression);
+    } else {
+      return (ir.Expression expr) => expr;
+    }
+  }
+
   @override
-  ir.TypeLiteral visitTypeVariableTypeLiteralGet(
+  ir.Expression visitTypeVariableTypeLiteralGet(
       Send node, TypeVariableElement element, _) {
-    return buildTypeVariable(element);
+    var loadedCheckFunc =
+        _createCheckLibraryLoadedFuncIfNeeded(_deferredLibrary);
+    _deferredLibrary = null;
+    return loadedCheckFunc(buildTypeVariable(element));
   }
 
   @override
@@ -2707,9 +2761,12 @@
   }
 
   @override
-  ir.TypeLiteral visitTypedefTypeLiteralGet(
+  ir.Expression visitTypedefTypeLiteralGet(
       Send node, ConstantExpression constant, _) {
-    return buildTypeLiteral(constant);
+    var loadedCheckFunc =
+        _createCheckLibraryLoadedFuncIfNeeded(_deferredLibrary);
+    _deferredLibrary = null;
+    return loadedCheckFunc(buildTypeLiteral(constant));
   }
 
   @override
diff --git a/pkg/compiler/lib/src/kernel/task.dart b/pkg/compiler/lib/src/kernel/task.dart
index 42f439b..6b0cfdb 100644
--- a/pkg/compiler/lib/src/kernel/task.dart
+++ b/pkg/compiler/lib/src/kernel/task.dart
@@ -37,8 +37,11 @@
   ///
   /// May enqueue more elements to the resolution queue.
   ir.Program buildProgram(LibraryElement library) {
+    var main = library.findExported(Identifiers.main);
+    if (main == null) {
+      main = _compiler.backend.helperForMissingMain();
+    }
     return new ir.Program(kernel.libraryDependencies(library.canonicalUri))
-      ..mainMethod =
-          kernel.functionToIr(library.findExported(Identifiers.main));
+      ..mainMethod = kernel.functionToIr(main);
   }
 }
diff --git a/pkg/compiler/lib/src/serialization/serialization.dart b/pkg/compiler/lib/src/serialization/serialization.dart
index 9bbfb8d..bdbc238 100644
--- a/pkg/compiler/lib/src/serialization/serialization.dart
+++ b/pkg/compiler/lib/src/serialization/serialization.dart
@@ -4,6 +4,9 @@
 
 library dart2js.serialization;
 
+import 'package:front_end/src/fasta/scanner/precedence.dart' show
+    PrecedenceInfo;
+
 import '../common.dart';
 import '../common/resolution.dart';
 import '../constants/expressions.dart';
@@ -20,6 +23,16 @@
 
 export 'task.dart' show LibraryDeserializer;
 
+final Map<String, String> canonicalNames = computeCanonicalNames();
+
+Map<String, String> computeCanonicalNames() {
+  Map<String, String> result = <String, String>{};
+  for (PrecedenceInfo info in PrecedenceInfo.all) {
+    result[info.value] = info.value;
+  }
+  return result;
+}
+
 /// An object that supports the encoding an [ObjectValue] for serialization.
 ///
 /// The [ObjectEncoder] ensures that nominality and circularities of
@@ -471,7 +484,7 @@
       }
       throw new StateError("String value '$key' not found in $_map.");
     }
-    return value;
+    return canonicalNames[value] ?? value;
   }
 
   /// Returns the list of [String] values associated with [key] in the decoded
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 974f561..87e8380 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -593,6 +593,31 @@
   }
 
   @override
+  void visitCheckLibraryIsLoaded(ir.CheckLibraryIsLoaded checkLoad) {
+    HInstruction prefixConstant = graph.addConstantString(
+        new DartString.literal(checkLoad.import.name), closedWorld);
+    var prefixElement = astAdapter.getElement(checkLoad.import);
+    HInstruction uriConstant = graph.addConstantString(
+        new DartString.literal(prefixElement.deferredImport.uri.toString()),
+        closedWorld);
+    _pushStaticInvocation(astAdapter.checkDeferredIsLoaded,
+        [prefixConstant, uriConstant], astAdapter.checkDeferredIsLoadedType);
+  }
+
+  @override
+  void visitLoadLibrary(ir.LoadLibrary loadLibrary) {
+    // TODO(efortuna): Source information!
+    push(new HInvokeStatic(
+        backend.helpers.loadLibraryWrapper,
+        [
+          graph.addConstantString(
+              new DartString.literal(loadLibrary.import.name), closedWorld)
+        ],
+        commonMasks.nonNullType,
+        targetCanThrow: false));
+  }
+
+  @override
   void visitBlock(ir.Block block) {
     assert(!isAborted());
     for (ir.Statement statement in block.statements) {
@@ -1830,8 +1855,9 @@
       // Invoke the getter
       _pushStaticInvocation(staticTarget, const <HInstruction>[],
           astAdapter.returnTypeOf(staticTarget));
-    } else if (staticTarget is ir.Field && staticTarget.isConst) {
-      assert(staticTarget.initializer != null);
+    } else if (staticTarget is ir.Field &&
+        (staticTarget.isConst ||
+            staticTarget.isFinal && !_isLazyStatic(staticTarget))) {
       stack.add(graph.addConstant(
           astAdapter.getConstantFor(staticTarget.initializer), closedWorld));
     } else {
diff --git a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
index e0f85cc..c12d7c4 100644
--- a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
+++ b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
@@ -355,6 +355,13 @@
     });
   }
 
+  ir.Procedure get checkDeferredIsLoaded =>
+      kernel.functions[_backend.helpers.checkDeferredIsLoaded];
+
+  TypeMask get checkDeferredIsLoadedType =>
+      TypeMaskFactory.inferredReturnTypeForElement(
+          _backend.helpers.checkDeferredIsLoaded, _globalInferenceResults);
+
   ir.Procedure get createInvocationMirror =>
       kernel.functions[_backend.helpers.createInvocationMirror];
 
diff --git a/pkg/dev_compiler/USAGE.md b/pkg/dev_compiler/USAGE.md
index dcdce9a..ccdf8aa 100644
--- a/pkg/dev_compiler/USAGE.md
+++ b/pkg/dev_compiler/USAGE.md
@@ -10,7 +10,7 @@
 The following instructions are in a state of flux -- please expect them to
 change. If you find issues, please let us know.
 
-1.  Clone the [DDC repository](https://github.com/dart-lang/sdk) and
+1.  Follow the [Getting the Source](https://github.com/dart-lang/sdk/wiki/Building#getting-the-source) steps, and
     set the environment variable `DDC_PATH` to the `pkg/dev_compiler`
     subdirectory within wherever you check that out.
 
diff --git a/pkg/dev_compiler/lib/js/amd/dart_sdk.js b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
index b6da6fe..6daca3e 100644
--- a/pkg/dev_compiler/lib/js/amd/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
@@ -2624,7 +2624,8 @@
         window.SourceBufferList = new MediaSource().sourceBuffers.constructor;
       }
     }
-    return typeof window == "undefined" ? global : window;
+    var globalState = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {};
+    return globalState;
   })();
   dart.JsSymbol = Symbol;
   dart._mixins = Symbol("mixins");
@@ -19094,12 +19095,14 @@
           return completer.future;
         };
       }
-      static forEach(input, f) {
-        let iterator = input[dartx.iterator];
-        return async.Future.doWhile(dart.fn(() => {
-          if (!dart.test(iterator.moveNext())) return false;
-          return async.Future.sync(dart.fn(() => dart.dcall(f, iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
-        }, VoidToObject$()));
+      static forEach(T) {
+        return (input, f) => {
+          let iterator = input[dartx.iterator];
+          return async.Future.doWhile(dart.fn(() => {
+            if (!dart.test(iterator.moveNext())) return false;
+            return async.Future.sync(dart.fn(() => f(iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
+          }, VoidToObject$()));
+        };
       }
       static doWhile(f) {
         let doneSignal = new async._Future();
@@ -19129,7 +19132,7 @@
       statics: () => ({
         wait: dart.definiteFunctionType(T => [async.Future$(core.List$(T)), [core.Iterable$(async.Future$(T))], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [T])}]),
         any: dart.definiteFunctionType(T => [async.Future$(T), [core.Iterable$(async.Future$(T))]]),
-        forEach: dart.definiteFunctionType(async.Future, [core.Iterable, dynamicTodynamic()]),
+        forEach: dart.definiteFunctionType(T => [async.Future, [core.Iterable$(T), dart.functionType(dart.dynamic, [T])]]),
         doWhile: dart.definiteFunctionType(async.Future, [VoidTodynamic()])
       }),
       names: ['wait', 'any', 'forEach', 'doWhile']
diff --git a/pkg/dev_compiler/lib/js/common/dart_sdk.js b/pkg/dev_compiler/lib/js/common/dart_sdk.js
index 674993a..4c51d02 100644
--- a/pkg/dev_compiler/lib/js/common/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/common/dart_sdk.js
@@ -1,4430 +1,6635 @@
-(function() {
-  'use strict';
-  const dart = Object.create(null);
-  const dartx = Object.create(null);
-  const _debugger = Object.create(null);
-  const _foreign_helper = Object.create(null);
-  const _interceptors = Object.create(null);
-  const _internal = Object.create(null);
-  const _isolate_helper = Object.create(null);
-  const _js_embedded_names = Object.create(null);
-  const _js_helper = Object.create(null);
-  const _js_mirrors = Object.create(null);
-  const _js_primitives = Object.create(null);
-  const _metadata = Object.create(null);
-  const _native_typed_data = Object.create(null);
-  const async = Object.create(null);
-  const collection = Object.create(null);
-  const convert = Object.create(null);
-  const core = Object.create(null);
-  const developer = Object.create(null);
-  const io = Object.create(null);
-  const isolate = Object.create(null);
-  const js = Object.create(null);
-  const js_util = Object.create(null);
-  const math = Object.create(null);
-  const mirrors = Object.create(null);
-  const typed_data = Object.create(null);
-  const indexed_db = Object.create(null);
-  const html$ = Object.create(null);
-  const html_common = Object.create(null);
-  const svg$ = Object.create(null);
-  const web_audio = Object.create(null);
-  const web_gl = Object.create(null);
-  const web_sql = Object.create(null);
-  let ListOfObject = () => (ListOfObject = dart.constFn(core.List$(core.Object)))();
-  let JSArrayOfListOfObject = () => (JSArrayOfListOfObject = dart.constFn(_interceptors.JSArray$(ListOfObject())))();
-  let JSArrayOfObject = () => (JSArrayOfObject = dart.constFn(_interceptors.JSArray$(core.Object)))();
-  let MapOfSymbol$dynamic = () => (MapOfSymbol$dynamic = dart.constFn(core.Map$(core.Symbol, dart.dynamic)))();
-  let MapOfString$_MethodStats = () => (MapOfString$_MethodStats = dart.constFn(core.Map$(core.String, dart._MethodStats)))();
-  let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String)))();
-  let SetOfNameValuePair = () => (SetOfNameValuePair = dart.constFn(core.Set$(_debugger.NameValuePair)))();
-  let JSArrayOfNameValuePair = () => (JSArrayOfNameValuePair = dart.constFn(_interceptors.JSArray$(_debugger.NameValuePair)))();
-  let MapOfdynamic$Object = () => (MapOfdynamic$Object = dart.constFn(core.Map$(dart.dynamic, core.Object)))();
-  let JSArrayOfFormatter = () => (JSArrayOfFormatter = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))();
-  let ListOfFormatter = () => (ListOfFormatter = dart.constFn(core.List$(_debugger.Formatter)))();
-  let LinkedHashSetOfNameValuePair = () => (LinkedHashSetOfNameValuePair = dart.constFn(collection.LinkedHashSet$(_debugger.NameValuePair)))();
-  let SetOfString = () => (SetOfString = dart.constFn(core.Set$(core.String)))();
-  let HashMapOfString$String = () => (HashMapOfString$String = dart.constFn(collection.HashMap$(core.String, core.String)))();
-  let LinkedHashMapOfString$Object = () => (LinkedHashMapOfString$Object = dart.constFn(collection.LinkedHashMap$(core.String, core.Object)))();
-  let ListOfNameValuePair = () => (ListOfNameValuePair = dart.constFn(core.List$(_debugger.NameValuePair)))();
-  let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
-  let JSArrayOfJsonMLFormatter = () => (JSArrayOfJsonMLFormatter = dart.constFn(_interceptors.JSArray$(_debugger.JsonMLFormatter)))();
-  let JSIndexable = () => (JSIndexable = dart.constFn(_interceptors.JSIndexable$()))();
-  let JSArray = () => (JSArray = dart.constFn(_interceptors.JSArray$()))();
-  let JSMutableArray = () => (JSMutableArray = dart.constFn(_interceptors.JSMutableArray$()))();
-  let JSFixedArray = () => (JSFixedArray = dart.constFn(_interceptors.JSFixedArray$()))();
-  let JSExtendableArray = () => (JSExtendableArray = dart.constFn(_interceptors.JSExtendableArray$()))();
-  let JSUnmodifiableArray = () => (JSUnmodifiableArray = dart.constFn(_interceptors.JSUnmodifiableArray$()))();
-  let ArrayIterator = () => (ArrayIterator = dart.constFn(_interceptors.ArrayIterator$()))();
-  let JSIndexableOfString = () => (JSIndexableOfString = dart.constFn(_interceptors.JSIndexable$(core.String)))();
-  let MatchToString = () => (MatchToString = dart.constFn(dart.functionType(core.String, [core.Match])))();
-  let StringToString = () => (StringToString = dart.constFn(dart.functionType(core.String, [core.String])))();
-  let ComparableOfnum = () => (ComparableOfnum = dart.constFn(core.Comparable$(core.num)))();
-  let StringTonum = () => (StringTonum = dart.constFn(dart.functionType(core.num, [core.String])))();
-  let StringTodouble = () => (StringTodouble = dart.constFn(dart.functionType(core.double, [core.String])))();
-  let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.functionType(core.bool, [dart.dynamic])))();
-  let ListMixin = () => (ListMixin = dart.constFn(collection.ListMixin$()))();
-  let ListBase = () => (ListBase = dart.constFn(collection.ListBase$()))();
-  let UnmodifiableListMixin = () => (UnmodifiableListMixin = dart.constFn(_internal.UnmodifiableListMixin$()))();
-  let UnmodifiableListBase = () => (UnmodifiableListBase = dart.constFn(_internal.UnmodifiableListBase$()))();
-  let StringToint = () => (StringToint = dart.constFn(dart.functionType(core.int, [core.String])))();
-  let Iterable = () => (Iterable = dart.constFn(core.Iterable$()))();
-  let ListIterable = () => (ListIterable = dart.constFn(_internal.ListIterable$()))();
-  let SubListIterable = () => (SubListIterable = dart.constFn(_internal.SubListIterable$()))();
-  let ListIterator = () => (ListIterator = dart.constFn(_internal.ListIterator$()))();
-  let _Transformation = () => (_Transformation = dart.constFn(_internal._Transformation$()))();
-  let MappedIterable = () => (MappedIterable = dart.constFn(_internal.MappedIterable$()))();
-  let EfficientLengthMappedIterable = () => (EfficientLengthMappedIterable = dart.constFn(_internal.EfficientLengthMappedIterable$()))();
-  let Iterator = () => (Iterator = dart.constFn(core.Iterator$()))();
-  let MappedIterator = () => (MappedIterator = dart.constFn(_internal.MappedIterator$()))();
-  let MappedListIterable = () => (MappedListIterable = dart.constFn(_internal.MappedListIterable$()))();
-  let _ElementPredicate = () => (_ElementPredicate = dart.constFn(_internal._ElementPredicate$()))();
-  let WhereIterable = () => (WhereIterable = dart.constFn(_internal.WhereIterable$()))();
-  let WhereIterator = () => (WhereIterator = dart.constFn(_internal.WhereIterator$()))();
-  let _ExpandFunction = () => (_ExpandFunction = dart.constFn(_internal._ExpandFunction$()))();
-  let ExpandIterable = () => (ExpandIterable = dart.constFn(_internal.ExpandIterable$()))();
-  let ExpandIterator = () => (ExpandIterator = dart.constFn(_internal.ExpandIterator$()))();
-  let TakeIterable = () => (TakeIterable = dart.constFn(_internal.TakeIterable$()))();
-  let EfficientLengthTakeIterable = () => (EfficientLengthTakeIterable = dart.constFn(_internal.EfficientLengthTakeIterable$()))();
-  let TakeIterator = () => (TakeIterator = dart.constFn(_internal.TakeIterator$()))();
-  let TakeWhileIterable = () => (TakeWhileIterable = dart.constFn(_internal.TakeWhileIterable$()))();
-  let TakeWhileIterator = () => (TakeWhileIterator = dart.constFn(_internal.TakeWhileIterator$()))();
-  let SkipIterable = () => (SkipIterable = dart.constFn(_internal.SkipIterable$()))();
-  let EfficientLengthSkipIterable = () => (EfficientLengthSkipIterable = dart.constFn(_internal.EfficientLengthSkipIterable$()))();
-  let SkipIterator = () => (SkipIterator = dart.constFn(_internal.SkipIterator$()))();
-  let SkipWhileIterable = () => (SkipWhileIterable = dart.constFn(_internal.SkipWhileIterable$()))();
-  let SkipWhileIterator = () => (SkipWhileIterator = dart.constFn(_internal.SkipWhileIterator$()))();
-  let EmptyIterable = () => (EmptyIterable = dart.constFn(_internal.EmptyIterable$()))();
-  let EmptyIterator = () => (EmptyIterator = dart.constFn(_internal.EmptyIterator$()))();
-  let FixedLengthListMixin = () => (FixedLengthListMixin = dart.constFn(_internal.FixedLengthListMixin$()))();
-  let FixedLengthListBase = () => (FixedLengthListBase = dart.constFn(_internal.FixedLengthListBase$()))();
-  let ListMapView = () => (ListMapView = dart.constFn(_internal.ListMapView$()))();
-  let ReversedListIterable = () => (ReversedListIterable = dart.constFn(_internal.ReversedListIterable$()))();
-  let MapOfint$_IsolateContext = () => (MapOfint$_IsolateContext = dart.constFn(core.Map$(core.int, _isolate_helper._IsolateContext)))();
-  let MapOfint$dynamic = () => (MapOfint$dynamic = dart.constFn(core.Map$(core.int, dart.dynamic)))();
-  let MapOfint$RawReceivePortImpl = () => (MapOfint$RawReceivePortImpl = dart.constFn(core.Map$(core.int, _isolate_helper.RawReceivePortImpl)))();
-  let SetOfint = () => (SetOfint = dart.constFn(core.Set$(core.int)))();
-  let JSArrayOf_IsolateEvent = () => (JSArrayOf_IsolateEvent = dart.constFn(_interceptors.JSArray$(_isolate_helper._IsolateEvent)))();
-  let SetOfCapability = () => (SetOfCapability = dart.constFn(core.Set$(isolate.Capability)))();
-  let SetOfSendPort = () => (SetOfSendPort = dart.constFn(core.Set$(isolate.SendPort)))();
-  let ListOf_IsolateEvent = () => (ListOf_IsolateEvent = dart.constFn(core.List$(_isolate_helper._IsolateEvent)))();
-  let QueueOf_IsolateEvent = () => (QueueOf_IsolateEvent = dart.constFn(collection.Queue$(_isolate_helper._IsolateEvent)))();
-  let CompleterOfList = () => (CompleterOfList = dart.constFn(async.Completer$(core.List)))();
-  let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.functionType(dart.void, [dart.dynamic])))();
-  let StringTovoid = () => (StringTovoid = dart.constFn(dart.functionType(dart.void, [core.String])))();
-  let ExpandoOfint = () => (ExpandoOfint = dart.constFn(core.Expando$(core.int)))();
-  let _FutureOfString = () => (_FutureOfString = dart.constFn(async._Future$(core.String)))();
-  let _FutureOfbool = () => (_FutureOfbool = dart.constFn(async._Future$(core.bool)))();
-  let _FutureOfint = () => (_FutureOfint = dart.constFn(async._Future$(core.int)))();
-  let VoidToObject = () => (VoidToObject = dart.constFn(dart.functionType(core.Object, [])))();
-  let Stream = () => (Stream = dart.constFn(async.Stream$()))();
-  let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.functionType(dart.void, [])))();
-  let TimerTovoid = () => (TimerTovoid = dart.constFn(dart.functionType(dart.void, [async.Timer])))();
-  let MapOfdynamic$int = () => (MapOfdynamic$int = dart.constFn(core.Map$(dart.dynamic, core.int)))();
-  let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.functionType(dart.dynamic, [dart.dynamic])))();
-  let InternalMap = () => (InternalMap = dart.constFn(_js_helper.InternalMap$()))();
-  let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))();
-  let ListOfint = () => (ListOfint = dart.constFn(core.List$(core.int)))();
-  let SyncIterator = () => (SyncIterator = dart.constFn(_js_helper.SyncIterator$()))();
-  let IterableBase = () => (IterableBase = dart.constFn(collection.IterableBase$()))();
-  let SyncIterable = () => (SyncIterable = dart.constFn(_js_helper.SyncIterable$()))();
-  let JsLinkedHashMap = () => (JsLinkedHashMap = dart.constFn(_js_helper.JsLinkedHashMap$()))();
-  let Es6LinkedHashMap = () => (Es6LinkedHashMap = dart.constFn(_js_helper.Es6LinkedHashMap$()))();
-  let LinkedHashMapCell = () => (LinkedHashMapCell = dart.constFn(_js_helper.LinkedHashMapCell$()))();
-  let LinkedHashMapKeyIterable = () => (LinkedHashMapKeyIterable = dart.constFn(_js_helper.LinkedHashMapKeyIterable$()))();
-  let LinkedHashMapKeyIterator = () => (LinkedHashMapKeyIterator = dart.constFn(_js_helper.LinkedHashMapKeyIterator$()))();
-  let IteratorOfMatch = () => (IteratorOfMatch = dart.constFn(core.Iterator$(core.Match)))();
-  let IterableOfMatch = () => (IterableOfMatch = dart.constFn(core.Iterable$(core.Match)))();
-  let _Lazy = () => (_Lazy = dart.constFn(_js_mirrors._Lazy$()))();
-  let ListOfSymbol = () => (ListOfSymbol = dart.constFn(core.List$(core.Symbol)))();
-  let ListOfInstanceMirror = () => (ListOfInstanceMirror = dart.constFn(core.List$(mirrors.InstanceMirror)))();
-  let ListOfCombinatorMirror = () => (ListOfCombinatorMirror = dart.constFn(core.List$(mirrors.CombinatorMirror)))();
-  let MapOfSymbol$DeclarationMirror = () => (MapOfSymbol$DeclarationMirror = dart.constFn(core.Map$(core.Symbol, mirrors.DeclarationMirror)))();
-  let ListOfTypeMirror = () => (ListOfTypeMirror = dart.constFn(core.List$(mirrors.TypeMirror)))();
-  let JSArrayOfClassMirror = () => (JSArrayOfClassMirror = dart.constFn(_interceptors.JSArray$(mirrors.ClassMirror)))();
-  let ListOfClassMirror = () => (ListOfClassMirror = dart.constFn(core.List$(mirrors.ClassMirror)))();
-  let ListOfTypeVariableMirror = () => (ListOfTypeVariableMirror = dart.constFn(core.List$(mirrors.TypeVariableMirror)))();
-  let MapOfSymbol$MethodMirror = () => (MapOfSymbol$MethodMirror = dart.constFn(core.Map$(core.Symbol, mirrors.MethodMirror)))();
-  let JSArrayOfType = () => (JSArrayOfType = dart.constFn(_interceptors.JSArray$(core.Type)))();
-  let ListOfParameterMirror = () => (ListOfParameterMirror = dart.constFn(core.List$(mirrors.ParameterMirror)))();
-  let ListOfFloat32x4 = () => (ListOfFloat32x4 = dart.constFn(core.List$(typed_data.Float32x4)))();
-  let ListOfInt32x4 = () => (ListOfInt32x4 = dart.constFn(core.List$(typed_data.Int32x4)))();
-  let ListOfFloat64x2 = () => (ListOfFloat64x2 = dart.constFn(core.List$(typed_data.Float64x2)))();
-  let IterableOfdouble = () => (IterableOfdouble = dart.constFn(core.Iterable$(core.double)))();
-  let IterableOfint = () => (IterableOfint = dart.constFn(core.Iterable$(core.int)))();
-  let ListOfdouble = () => (ListOfdouble = dart.constFn(core.List$(core.double)))();
-  let ZoneBinaryCallbackOfdynamic$dynamic$StackTrace = () => (ZoneBinaryCallbackOfdynamic$dynamic$StackTrace = dart.constFn(async.ZoneBinaryCallback$(dart.dynamic, dart.dynamic, core.StackTrace)))();
-  let _StreamImpl = () => (_StreamImpl = dart.constFn(async._StreamImpl$()))();
-  let _ControllerStream = () => (_ControllerStream = dart.constFn(async._ControllerStream$()))();
-  let _BroadcastStream = () => (_BroadcastStream = dart.constFn(async._BroadcastStream$()))();
-  let ZoneBinaryCallbackOfdynamic$Object$StackTrace = () => (ZoneBinaryCallbackOfdynamic$Object$StackTrace = dart.constFn(async.ZoneBinaryCallback$(dart.dynamic, core.Object, core.StackTrace)))();
-  let _BufferingStreamSubscription = () => (_BufferingStreamSubscription = dart.constFn(async._BufferingStreamSubscription$()))();
-  let _ControllerSubscription = () => (_ControllerSubscription = dart.constFn(async._ControllerSubscription$()))();
-  let _BroadcastSubscription = () => (_BroadcastSubscription = dart.constFn(async._BroadcastSubscription$()))();
-  let _BroadcastStreamController = () => (_BroadcastStreamController = dart.constFn(async._BroadcastStreamController$()))();
-  let _SyncBroadcastStreamController = () => (_SyncBroadcastStreamController = dart.constFn(async._SyncBroadcastStreamController$()))();
-  let _AsyncBroadcastStreamController = () => (_AsyncBroadcastStreamController = dart.constFn(async._AsyncBroadcastStreamController$()))();
-  let _AsBroadcastStreamController = () => (_AsBroadcastStreamController = dart.constFn(async._AsBroadcastStreamController$()))();
-  let _DoneSubscription = () => (_DoneSubscription = dart.constFn(async._DoneSubscription$()))();
-  let FutureOr = () => (FutureOr = dart.constFn(async.FutureOr$()))();
-  let dynamicToFutureOr = () => (dynamicToFutureOr = dart.constFn(dart.functionType(async.FutureOr, [dart.dynamic])))();
-  let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.functionType(dart.dynamic, [])))();
-  let Future = () => (Future = dart.constFn(async.Future$()))();
-  let Completer = () => (Completer = dart.constFn(async.Completer$()))();
-  let _FutureOnValue = () => (_FutureOnValue = dart.constFn(async._FutureOnValue$()))();
-  let _Completer = () => (_Completer = dart.constFn(async._Completer$()))();
-  let _AsyncCompleter = () => (_AsyncCompleter = dart.constFn(async._AsyncCompleter$()))();
-  let _SyncCompleter = () => (_SyncCompleter = dart.constFn(async._SyncCompleter$()))();
-  let ZoneBinaryCallbackOfObject$Object$StackTrace = () => (ZoneBinaryCallbackOfObject$Object$StackTrace = dart.constFn(async.ZoneBinaryCallback$(core.Object, core.Object, core.StackTrace)))();
-  let _FutureListener = () => (_FutureListener = dart.constFn(async._FutureListener$()))();
-  let _Future = () => (_Future = dart.constFn(async._Future$()))();
-  let StreamSubscription = () => (StreamSubscription = dart.constFn(async.StreamSubscription$()))();
-  let EventSink = () => (EventSink = dart.constFn(async.EventSink$()))();
-  let StreamView = () => (StreamView = dart.constFn(async.StreamView$()))();
-  let StreamConsumer = () => (StreamConsumer = dart.constFn(async.StreamConsumer$()))();
-  let StreamSink = () => (StreamSink = dart.constFn(async.StreamSink$()))();
-  let StreamTransformer = () => (StreamTransformer = dart.constFn(async.StreamTransformer$()))();
-  let StreamIterator = () => (StreamIterator = dart.constFn(async.StreamIterator$()))();
-  let _ControllerEventSinkWrapper = () => (_ControllerEventSinkWrapper = dart.constFn(async._ControllerEventSinkWrapper$()))();
-  let StreamController = () => (StreamController = dart.constFn(async.StreamController$()))();
-  let SynchronousStreamController = () => (SynchronousStreamController = dart.constFn(async.SynchronousStreamController$()))();
-  let _StreamControllerLifecycle = () => (_StreamControllerLifecycle = dart.constFn(async._StreamControllerLifecycle$()))();
-  let _StreamController = () => (_StreamController = dart.constFn(async._StreamController$()))();
-  let _SyncStreamControllerDispatch = () => (_SyncStreamControllerDispatch = dart.constFn(async._SyncStreamControllerDispatch$()))();
-  let _AsyncStreamControllerDispatch = () => (_AsyncStreamControllerDispatch = dart.constFn(async._AsyncStreamControllerDispatch$()))();
-  let _AsyncStreamController = () => (_AsyncStreamController = dart.constFn(async._AsyncStreamController$()))();
-  let _SyncStreamController = () => (_SyncStreamController = dart.constFn(async._SyncStreamController$()))();
-  let _StreamSinkWrapper = () => (_StreamSinkWrapper = dart.constFn(async._StreamSinkWrapper$()))();
-  let _AddStreamState = () => (_AddStreamState = dart.constFn(async._AddStreamState$()))();
-  let _StreamControllerAddStreamState = () => (_StreamControllerAddStreamState = dart.constFn(async._StreamControllerAddStreamState$()))();
-  let _EventSink = () => (_EventSink = dart.constFn(async._EventSink$()))();
-  let _EventDispatch = () => (_EventDispatch = dart.constFn(async._EventDispatch$()))();
-  let _EventGenerator = () => (_EventGenerator = dart.constFn(async._EventGenerator$()))();
-  let _GeneratedStreamImpl = () => (_GeneratedStreamImpl = dart.constFn(async._GeneratedStreamImpl$()))();
-  let _PendingEvents = () => (_PendingEvents = dart.constFn(async._PendingEvents$()))();
-  let _IterablePendingEvents = () => (_IterablePendingEvents = dart.constFn(async._IterablePendingEvents$()))();
-  let _DataHandler = () => (_DataHandler = dart.constFn(async._DataHandler$()))();
-  let _DelayedEvent = () => (_DelayedEvent = dart.constFn(async._DelayedEvent$()))();
-  let _DelayedData = () => (_DelayedData = dart.constFn(async._DelayedData$()))();
-  let _StreamImplEvents = () => (_StreamImplEvents = dart.constFn(async._StreamImplEvents$()))();
-  let _BroadcastCallback = () => (_BroadcastCallback = dart.constFn(async._BroadcastCallback$()))();
-  let _DoneStreamSubscription = () => (_DoneStreamSubscription = dart.constFn(async._DoneStreamSubscription$()))();
-  let _AsBroadcastStream = () => (_AsBroadcastStream = dart.constFn(async._AsBroadcastStream$()))();
-  let _BroadcastSubscriptionWrapper = () => (_BroadcastSubscriptionWrapper = dart.constFn(async._BroadcastSubscriptionWrapper$()))();
-  let _StreamIteratorImpl = () => (_StreamIteratorImpl = dart.constFn(async._StreamIteratorImpl$()))();
-  let _EmptyStream = () => (_EmptyStream = dart.constFn(async._EmptyStream$()))();
-  let _ForwardingStream = () => (_ForwardingStream = dart.constFn(async._ForwardingStream$()))();
-  let _ForwardingStreamSubscription = () => (_ForwardingStreamSubscription = dart.constFn(async._ForwardingStreamSubscription$()))();
-  let _Predicate = () => (_Predicate = dart.constFn(async._Predicate$()))();
-  let _WhereStream = () => (_WhereStream = dart.constFn(async._WhereStream$()))();
-  let _Transformation$ = () => (_Transformation$ = dart.constFn(async._Transformation$()))();
-  let _MapStream = () => (_MapStream = dart.constFn(async._MapStream$()))();
-  let _ExpandStream = () => (_ExpandStream = dart.constFn(async._ExpandStream$()))();
-  let _HandleErrorStream = () => (_HandleErrorStream = dart.constFn(async._HandleErrorStream$()))();
-  let _TakeStream = () => (_TakeStream = dart.constFn(async._TakeStream$()))();
-  let _StateStreamSubscription = () => (_StateStreamSubscription = dart.constFn(async._StateStreamSubscription$()))();
-  let _TakeWhileStream = () => (_TakeWhileStream = dart.constFn(async._TakeWhileStream$()))();
-  let _SkipStream = () => (_SkipStream = dart.constFn(async._SkipStream$()))();
-  let _SkipWhileStream = () => (_SkipWhileStream = dart.constFn(async._SkipWhileStream$()))();
-  let _Equality = () => (_Equality = dart.constFn(async._Equality$()))();
-  let _DistinctStream = () => (_DistinctStream = dart.constFn(async._DistinctStream$()))();
-  let _EventSinkWrapper = () => (_EventSinkWrapper = dart.constFn(async._EventSinkWrapper$()))();
-  let _SinkTransformerStreamSubscription = () => (_SinkTransformerStreamSubscription = dart.constFn(async._SinkTransformerStreamSubscription$()))();
-  let _SinkMapper = () => (_SinkMapper = dart.constFn(async._SinkMapper$()))();
-  let _StreamSinkTransformer = () => (_StreamSinkTransformer = dart.constFn(async._StreamSinkTransformer$()))();
-  let _BoundSinkStream = () => (_BoundSinkStream = dart.constFn(async._BoundSinkStream$()))();
-  let _TransformDataHandler = () => (_TransformDataHandler = dart.constFn(async._TransformDataHandler$()))();
-  let _TransformErrorHandler = () => (_TransformErrorHandler = dart.constFn(async._TransformErrorHandler$()))();
-  let _TransformDoneHandler = () => (_TransformDoneHandler = dart.constFn(async._TransformDoneHandler$()))();
-  let _HandlerEventSink = () => (_HandlerEventSink = dart.constFn(async._HandlerEventSink$()))();
-  let _StreamHandlerTransformer = () => (_StreamHandlerTransformer = dart.constFn(async._StreamHandlerTransformer$()))();
-  let _SubscriptionTransformer = () => (_SubscriptionTransformer = dart.constFn(async._SubscriptionTransformer$()))();
-  let _StreamSubscriptionTransformer = () => (_StreamSubscriptionTransformer = dart.constFn(async._StreamSubscriptionTransformer$()))();
-  let _BoundSubscriptionStream = () => (_BoundSubscriptionStream = dart.constFn(async._BoundSubscriptionStream$()))();
-  let ZoneCallback = () => (ZoneCallback = dart.constFn(async.ZoneCallback$()))();
-  let ZoneUnaryCallback = () => (ZoneUnaryCallback = dart.constFn(async.ZoneUnaryCallback$()))();
-  let ZoneBinaryCallback = () => (ZoneBinaryCallback = dart.constFn(async.ZoneBinaryCallback$()))();
-  let HandleUncaughtErrorHandler = () => (HandleUncaughtErrorHandler = dart.constFn(async.HandleUncaughtErrorHandler$()))();
-  let RunHandler = () => (RunHandler = dart.constFn(async.RunHandler$()))();
-  let RunUnaryHandler = () => (RunUnaryHandler = dart.constFn(async.RunUnaryHandler$()))();
-  let RunBinaryHandler = () => (RunBinaryHandler = dart.constFn(async.RunBinaryHandler$()))();
-  let RegisterCallbackHandler = () => (RegisterCallbackHandler = dart.constFn(async.RegisterCallbackHandler$()))();
-  let RegisterUnaryCallbackHandler = () => (RegisterUnaryCallbackHandler = dart.constFn(async.RegisterUnaryCallbackHandler$()))();
-  let RegisterBinaryCallbackHandler = () => (RegisterBinaryCallbackHandler = dart.constFn(async.RegisterBinaryCallbackHandler$()))();
-  let _ZoneFunction = () => (_ZoneFunction = dart.constFn(async._ZoneFunction$()))();
-  let _ZoneFunctionOfRunHandler = () => (_ZoneFunctionOfRunHandler = dart.constFn(async._ZoneFunction$(async.RunHandler)))();
-  let _ZoneFunctionOfRunUnaryHandler = () => (_ZoneFunctionOfRunUnaryHandler = dart.constFn(async._ZoneFunction$(async.RunUnaryHandler)))();
-  let _ZoneFunctionOfRunBinaryHandler = () => (_ZoneFunctionOfRunBinaryHandler = dart.constFn(async._ZoneFunction$(async.RunBinaryHandler)))();
-  let _ZoneFunctionOfRegisterCallbackHandler = () => (_ZoneFunctionOfRegisterCallbackHandler = dart.constFn(async._ZoneFunction$(async.RegisterCallbackHandler)))();
-  let _ZoneFunctionOfRegisterUnaryCallbackHandler = () => (_ZoneFunctionOfRegisterUnaryCallbackHandler = dart.constFn(async._ZoneFunction$(async.RegisterUnaryCallbackHandler)))();
-  let _ZoneFunctionOfRegisterBinaryCallbackHandler = () => (_ZoneFunctionOfRegisterBinaryCallbackHandler = dart.constFn(async._ZoneFunction$(async.RegisterBinaryCallbackHandler)))();
-  let _ZoneFunctionOfErrorCallbackHandler = () => (_ZoneFunctionOfErrorCallbackHandler = dart.constFn(async._ZoneFunction$(async.ErrorCallbackHandler)))();
-  let _ZoneFunctionOfScheduleMicrotaskHandler = () => (_ZoneFunctionOfScheduleMicrotaskHandler = dart.constFn(async._ZoneFunction$(async.ScheduleMicrotaskHandler)))();
-  let _ZoneFunctionOfCreateTimerHandler = () => (_ZoneFunctionOfCreateTimerHandler = dart.constFn(async._ZoneFunction$(async.CreateTimerHandler)))();
-  let _ZoneFunctionOfCreatePeriodicTimerHandler = () => (_ZoneFunctionOfCreatePeriodicTimerHandler = dart.constFn(async._ZoneFunction$(async.CreatePeriodicTimerHandler)))();
-  let _ZoneFunctionOfPrintHandler = () => (_ZoneFunctionOfPrintHandler = dart.constFn(async._ZoneFunction$(async.PrintHandler)))();
-  let _ZoneFunctionOfForkHandler = () => (_ZoneFunctionOfForkHandler = dart.constFn(async._ZoneFunction$(async.ForkHandler)))();
-  let _ZoneFunctionOfHandleUncaughtErrorHandler = () => (_ZoneFunctionOfHandleUncaughtErrorHandler = dart.constFn(async._ZoneFunction$(async.HandleUncaughtErrorHandler)))();
-  let _HashMap = () => (_HashMap = dart.constFn(collection._HashMap$()))();
-  let _IdentityHashMap = () => (_IdentityHashMap = dart.constFn(collection._IdentityHashMap$()))();
-  let _PredicateOfObject = () => (_PredicateOfObject = dart.constFn(collection._Predicate$(core.Object)))();
-  let _CustomHashMap = () => (_CustomHashMap = dart.constFn(collection._CustomHashMap$()))();
-  let _HashMapKeyIterable = () => (_HashMapKeyIterable = dart.constFn(collection._HashMapKeyIterable$()))();
-  let _HashMapKeyIterator = () => (_HashMapKeyIterator = dart.constFn(collection._HashMapKeyIterator$()))();
-  let _LinkedIdentityHashMap = () => (_LinkedIdentityHashMap = dart.constFn(collection._LinkedIdentityHashMap$()))();
-  let _Es6LinkedIdentityHashMap = () => (_Es6LinkedIdentityHashMap = dart.constFn(collection._Es6LinkedIdentityHashMap$()))();
-  let _Es6MapIterable = () => (_Es6MapIterable = dart.constFn(collection._Es6MapIterable$()))();
-  let _Es6MapIterator = () => (_Es6MapIterator = dart.constFn(collection._Es6MapIterator$()))();
-  let _LinkedCustomHashMap = () => (_LinkedCustomHashMap = dart.constFn(collection._LinkedCustomHashMap$()))();
-  let IterableOfObject = () => (IterableOfObject = dart.constFn(core.Iterable$(core.Object)))();
-  let SetOfObject = () => (SetOfObject = dart.constFn(core.Set$(core.Object)))();
-  let SetMixin = () => (SetMixin = dart.constFn(collection.SetMixin$()))();
-  let SetBase = () => (SetBase = dart.constFn(collection.SetBase$()))();
-  let _HashSetBase = () => (_HashSetBase = dart.constFn(collection._HashSetBase$()))();
-  let _HashSet = () => (_HashSet = dart.constFn(collection._HashSet$()))();
-  let _IdentityHashSet = () => (_IdentityHashSet = dart.constFn(collection._IdentityHashSet$()))();
-  let _CustomHashSet = () => (_CustomHashSet = dart.constFn(collection._CustomHashSet$()))();
-  let _HashSetIterator = () => (_HashSetIterator = dart.constFn(collection._HashSetIterator$()))();
-  let _LinkedHashSet = () => (_LinkedHashSet = dart.constFn(collection._LinkedHashSet$()))();
-  let _LinkedIdentityHashSet = () => (_LinkedIdentityHashSet = dart.constFn(collection._LinkedIdentityHashSet$()))();
-  let _LinkedCustomHashSet = () => (_LinkedCustomHashSet = dart.constFn(collection._LinkedCustomHashSet$()))();
-  let _LinkedHashSetCell = () => (_LinkedHashSetCell = dart.constFn(collection._LinkedHashSetCell$()))();
-  let _LinkedHashSetIterator = () => (_LinkedHashSetIterator = dart.constFn(collection._LinkedHashSetIterator$()))();
-  let UnmodifiableListView = () => (UnmodifiableListView = dart.constFn(collection.UnmodifiableListView$()))();
-  let _Equality$ = () => (_Equality$ = dart.constFn(collection._Equality$()))();
-  let _Hasher = () => (_Hasher = dart.constFn(collection._Hasher$()))();
-  let HashMap = () => (HashMap = dart.constFn(collection.HashMap$()))();
-  let HashSet = () => (HashSet = dart.constFn(collection.HashSet$()))();
-  let IterableMixin = () => (IterableMixin = dart.constFn(collection.IterableMixin$()))();
-  let HasNextIterator = () => (HasNextIterator = dart.constFn(collection.HasNextIterator$()))();
-  let LinkedHashMap = () => (LinkedHashMap = dart.constFn(collection.LinkedHashMap$()))();
-  let LinkedHashSet = () => (LinkedHashSet = dart.constFn(collection.LinkedHashSet$()))();
-  let LinkedList = () => (LinkedList = dart.constFn(collection.LinkedList$()))();
-  let _LinkedListIterator = () => (_LinkedListIterator = dart.constFn(collection._LinkedListIterator$()))();
-  let LinkedListEntry = () => (LinkedListEntry = dart.constFn(collection.LinkedListEntry$()))();
-  let MapMixin = () => (MapMixin = dart.constFn(collection.MapMixin$()))();
-  let MapBase = () => (MapBase = dart.constFn(collection.MapBase$()))();
-  let _UnmodifiableMapMixin = () => (_UnmodifiableMapMixin = dart.constFn(collection._UnmodifiableMapMixin$()))();
-  let UnmodifiableMapBase = () => (UnmodifiableMapBase = dart.constFn(collection.UnmodifiableMapBase$()))();
-  let _MapBaseValueIterable = () => (_MapBaseValueIterable = dart.constFn(collection._MapBaseValueIterable$()))();
-  let _MapBaseValueIterator = () => (_MapBaseValueIterator = dart.constFn(collection._MapBaseValueIterator$()))();
-  let MapView = () => (MapView = dart.constFn(collection.MapView$()))();
-  let UnmodifiableMapView = () => (UnmodifiableMapView = dart.constFn(collection.UnmodifiableMapView$()))();
-  let dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.functionType(dart.void, [dart.dynamic, dart.dynamic])))();
-  let Queue = () => (Queue = dart.constFn(collection.Queue$()))();
-  let _DoubleLink = () => (_DoubleLink = dart.constFn(collection._DoubleLink$()))();
-  let DoubleLinkedQueueEntry = () => (DoubleLinkedQueueEntry = dart.constFn(collection.DoubleLinkedQueueEntry$()))();
-  let _UserDoubleLinkedQueueEntry = () => (_UserDoubleLinkedQueueEntry = dart.constFn(collection._UserDoubleLinkedQueueEntry$()))();
-  let _DoubleLinkedQueueEntry = () => (_DoubleLinkedQueueEntry = dart.constFn(collection._DoubleLinkedQueueEntry$()))();
-  let _DoubleLinkedQueueElement = () => (_DoubleLinkedQueueElement = dart.constFn(collection._DoubleLinkedQueueElement$()))();
-  let _DoubleLinkedQueueSentinel = () => (_DoubleLinkedQueueSentinel = dart.constFn(collection._DoubleLinkedQueueSentinel$()))();
-  let DoubleLinkedQueue = () => (DoubleLinkedQueue = dart.constFn(collection.DoubleLinkedQueue$()))();
-  let _DoubleLinkedQueueIterator = () => (_DoubleLinkedQueueIterator = dart.constFn(collection._DoubleLinkedQueueIterator$()))();
-  let ListQueue = () => (ListQueue = dart.constFn(collection.ListQueue$()))();
-  let _ListQueueIterator = () => (_ListQueueIterator = dart.constFn(collection._ListQueueIterator$()))();
-  let _Predicate$ = () => (_Predicate$ = dart.constFn(collection._Predicate$()))();
-  let _SplayTreeNode = () => (_SplayTreeNode = dart.constFn(collection._SplayTreeNode$()))();
-  let _SplayTreeMapNode = () => (_SplayTreeMapNode = dart.constFn(collection._SplayTreeMapNode$()))();
-  let _SplayTree = () => (_SplayTree = dart.constFn(collection._SplayTree$()))();
-  let _TypeTest = () => (_TypeTest = dart.constFn(collection._TypeTest$()))();
-  let SplayTreeMap = () => (SplayTreeMap = dart.constFn(collection.SplayTreeMap$()))();
-  let _SplayTreeIterator = () => (_SplayTreeIterator = dart.constFn(collection._SplayTreeIterator$()))();
-  let _SplayTreeKeyIterable = () => (_SplayTreeKeyIterable = dart.constFn(collection._SplayTreeKeyIterable$()))();
-  let _SplayTreeValueIterable = () => (_SplayTreeValueIterable = dart.constFn(collection._SplayTreeValueIterable$()))();
-  let _SplayTreeKeyIterator = () => (_SplayTreeKeyIterator = dart.constFn(collection._SplayTreeKeyIterator$()))();
-  let _SplayTreeValueIterator = () => (_SplayTreeValueIterator = dart.constFn(collection._SplayTreeValueIterator$()))();
-  let _SplayTreeNodeIterator = () => (_SplayTreeNodeIterator = dart.constFn(collection._SplayTreeNodeIterator$()))();
-  let SplayTreeSet = () => (SplayTreeSet = dart.constFn(collection.SplayTreeSet$()))();
-  let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
-  let MappedIterableOfString$dynamic = () => (MappedIterableOfString$dynamic = dart.constFn(_internal.MappedIterable$(core.String, dart.dynamic)))();
-  let SinkOfObject = () => (SinkOfObject = dart.constFn(core.Sink$(core.Object)))();
-  let Codec = () => (Codec = dart.constFn(convert.Codec$()))();
-  let ComparableOfString = () => (ComparableOfString = dart.constFn(core.Comparable$(core.String)))();
-  let List = () => (List = dart.constFn(core.List$()))();
-  let StreamOfListOfint = () => (StreamOfListOfint = dart.constFn(async.Stream$(ListOfint())))();
-  let MapOfString$Encoding = () => (MapOfString$Encoding = dart.constFn(core.Map$(core.String, convert.Encoding)))();
-  let Converter = () => (Converter = dart.constFn(convert.Converter$()))();
-  let SinkOfListOfint = () => (SinkOfListOfint = dart.constFn(core.Sink$(ListOfint())))();
-  let StreamOfString = () => (StreamOfString = dart.constFn(async.Stream$(core.String)))();
-  let SinkOfString = () => (SinkOfString = dart.constFn(core.Sink$(core.String)))();
-  let ChunkedConversionSink = () => (ChunkedConversionSink = dart.constFn(convert.ChunkedConversionSink$()))();
-  let ListOfintTovoid = () => (ListOfintTovoid = dart.constFn(dart.functionType(dart.void, [ListOfint()])))();
-  let _ChunkedConversionCallback = () => (_ChunkedConversionCallback = dart.constFn(convert._ChunkedConversionCallback$()))();
-  let ChunkedConverter = () => (ChunkedConverter = dart.constFn(convert.ChunkedConverter$()))();
-  let _SimpleCallbackSink = () => (_SimpleCallbackSink = dart.constFn(convert._SimpleCallbackSink$()))();
-  let _ConverterStreamEventSink = () => (_ConverterStreamEventSink = dart.constFn(convert._ConverterStreamEventSink$()))();
-  let _FusedCodec = () => (_FusedCodec = dart.constFn(convert._FusedCodec$()))();
-  let _InvertedCodec = () => (_InvertedCodec = dart.constFn(convert._InvertedCodec$()))();
-  let _FusedConverter = () => (_FusedConverter = dart.constFn(convert._FusedConverter$()))();
-  let StreamOfObject = () => (StreamOfObject = dart.constFn(async.Stream$(core.Object)))();
-  let JSArrayOfListOfint = () => (JSArrayOfListOfint = dart.constFn(_interceptors.JSArray$(ListOfint())))();
-  let Uint8ListAndintAndintTovoid = () => (Uint8ListAndintAndintTovoid = dart.constFn(dart.functionType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
-  let EventSinkOfString = () => (EventSinkOfString = dart.constFn(async.EventSink$(core.String)))();
-  let StreamTransformerOfString$String = () => (StreamTransformerOfString$String = dart.constFn(async.StreamTransformer$(core.String, core.String)))();
-  let Comparator = () => (Comparator = dart.constFn(core.Comparator$()))();
-  let Comparable = () => (Comparable = dart.constFn(core.Comparable$()))();
-  let ComparableOfDateTime = () => (ComparableOfDateTime = dart.constFn(core.Comparable$(core.DateTime)))();
-  let ComparableOfDuration = () => (ComparableOfDuration = dart.constFn(core.Comparable$(core.Duration)))();
-  let Expando = () => (Expando = dart.constFn(core.Expando$()))();
-  let _Generator = () => (_Generator = dart.constFn(core._Generator$()))();
-  let _GeneratorIterable = () => (_GeneratorIterable = dart.constFn(core._GeneratorIterable$()))();
-  let _GeneratorIterator = () => (_GeneratorIterator = dart.constFn(core._GeneratorIterator$()))();
-  let BidirectionalIterator = () => (BidirectionalIterator = dart.constFn(core.BidirectionalIterator$()))();
-  let Map$ = () => (Map$ = dart.constFn(core.Map$()))();
-  let Set = () => (Set = dart.constFn(core.Set$()))();
-  let Sink = () => (Sink = dart.constFn(core.Sink$()))();
-  let BidirectionalIteratorOfint = () => (BidirectionalIteratorOfint = dart.constFn(core.BidirectionalIterator$(core.int)))();
-  let UnmodifiableMapViewOfString$String = () => (UnmodifiableMapViewOfString$String = dart.constFn(collection.UnmodifiableMapView$(core.String, core.String)))();
-  let MapOfString$ListOfString = () => (MapOfString$ListOfString = dart.constFn(core.Map$(core.String, ListOfString())))();
-  let MapOfString$String = () => (MapOfString$String = dart.constFn(core.Map$(core.String, core.String)))();
-  let IterableOfString = () => (IterableOfString = dart.constFn(core.Iterable$(core.String)))();
-  let MapOfString$dynamic = () => (MapOfString$dynamic = dart.constFn(core.Map$(core.String, dart.dynamic)))();
-  let MapOfString$ServiceExtensionHandler = () => (MapOfString$ServiceExtensionHandler = dart.constFn(core.Map$(core.String, developer.ServiceExtensionHandler)))();
-  let MapOfString$Metric = () => (MapOfString$Metric = dart.constFn(core.Map$(core.String, developer.Metric)))();
-  let ListOf_SyncBlock = () => (ListOf_SyncBlock = dart.constFn(core.List$(developer._SyncBlock)))();
-  let JSArrayOf_AsyncBlock = () => (JSArrayOf_AsyncBlock = dart.constFn(_interceptors.JSArray$(developer._AsyncBlock)))();
-  let ListOf_AsyncBlock = () => (ListOf_AsyncBlock = dart.constFn(core.List$(developer._AsyncBlock)))();
-  let CompleterOfUri = () => (CompleterOfUri = dart.constFn(async.Completer$(core.Uri)))();
-  let ListOfListOfint = () => (ListOfListOfint = dart.constFn(core.List$(ListOfint())))();
-  let FutureOfint = () => (FutureOfint = dart.constFn(async.Future$(core.int)))();
-  let FutureOfDirectory = () => (FutureOfDirectory = dart.constFn(async.Future$(io.Directory)))();
-  let FutureOrOfDirectory = () => (FutureOrOfDirectory = dart.constFn(async.FutureOr$(io.Directory)))();
-  let StreamOfFileSystemEntity = () => (StreamOfFileSystemEntity = dart.constFn(async.Stream$(io.FileSystemEntity)))();
-  let JSArrayOfFileSystemEntity = () => (JSArrayOfFileSystemEntity = dart.constFn(_interceptors.JSArray$(io.FileSystemEntity)))();
-  let FutureOrOfString = () => (FutureOrOfString = dart.constFn(async.FutureOr$(core.String)))();
-  let FutureOrOfbool = () => (FutureOrOfbool = dart.constFn(async.FutureOr$(core.bool)))();
-  let FutureOrOfint = () => (FutureOrOfint = dart.constFn(async.FutureOr$(core.int)))();
-  let ListOfFileSystemEntity = () => (ListOfFileSystemEntity = dart.constFn(core.List$(io.FileSystemEntity)))();
-  let StreamControllerOfListOfint = () => (StreamControllerOfListOfint = dart.constFn(async.StreamController$(ListOfint())))();
-  let FutureOfRandomAccessFile = () => (FutureOfRandomAccessFile = dart.constFn(async.Future$(io.RandomAccessFile)))();
-  let CompleterOfFile = () => (CompleterOfFile = dart.constFn(async.Completer$(io.File)))();
-  let FutureOfListOfint = () => (FutureOfListOfint = dart.constFn(async.Future$(ListOfint())))();
-  let FutureOrOfFile = () => (FutureOrOfFile = dart.constFn(async.FutureOr$(io.File)))();
-  let FutureOfFile = () => (FutureOfFile = dart.constFn(async.Future$(io.File)))();
-  let FutureOrOfListOfint = () => (FutureOrOfListOfint = dart.constFn(async.FutureOr$(ListOfint())))();
-  let ListOfFileSystemEntityType = () => (ListOfFileSystemEntityType = dart.constFn(core.List$(io.FileSystemEntityType)))();
-  let StreamOfHttpRequest = () => (StreamOfHttpRequest = dart.constFn(async.Stream$(io.HttpRequest)))();
-  let ListOfRedirectInfo = () => (ListOfRedirectInfo = dart.constFn(core.List$(io.RedirectInfo)))();
-  let HashMapOfString$ListOfString = () => (HashMapOfString$ListOfString = dart.constFn(collection.HashMap$(core.String, ListOfString())))();
-  let ListOfCookie = () => (ListOfCookie = dart.constFn(core.List$(io.Cookie)))();
-  let StringAndListOfStringTovoid = () => (StringAndListOfStringTovoid = dart.constFn(dart.functionType(dart.void, [core.String, ListOfString()])))();
-  let FutureOfHttpClientResponse = () => (FutureOfHttpClientResponse = dart.constFn(async.Future$(io.HttpClientResponse)))();
-  let StreamSubscriptionOfListOfint = () => (StreamSubscriptionOfListOfint = dart.constFn(async.StreamSubscription$(ListOfint())))();
-  let FutureOrOfHttpClientResponse = () => (FutureOrOfHttpClientResponse = dart.constFn(async.FutureOr$(io.HttpClientResponse)))();
-  let _StreamSinkImpl = () => (_StreamSinkImpl = dart.constFn(io._StreamSinkImpl$()))();
-  let StreamConsumerOfListOfint = () => (StreamConsumerOfListOfint = dart.constFn(async.StreamConsumer$(ListOfint())))();
-  let _HttpOutboundMessage = () => (_HttpOutboundMessage = dart.constFn(io._HttpOutboundMessage$()))();
-  let CompleterOfHttpClientResponse = () => (CompleterOfHttpClientResponse = dart.constFn(async.Completer$(io.HttpClientResponse)))();
-  let JSArrayOfRedirectInfo = () => (JSArrayOfRedirectInfo = dart.constFn(_interceptors.JSArray$(io.RedirectInfo)))();
-  let JSArrayOfFuture = () => (JSArrayOfFuture = dart.constFn(_interceptors.JSArray$(async.Future)))();
-  let CompleterOf_HttpIncoming = () => (CompleterOf_HttpIncoming = dart.constFn(async.Completer$(io._HttpIncoming)))();
-  let X509CertificateTobool = () => (X509CertificateTobool = dart.constFn(dart.functionType(core.bool, [io.X509Certificate])))();
-  let FutureOfSecureSocket = () => (FutureOfSecureSocket = dart.constFn(async.Future$(io.SecureSocket)))();
-  let HashSetOf_HttpClientConnection = () => (HashSetOf_HttpClientConnection = dart.constFn(collection.HashSet$(io._HttpClientConnection)))();
-  let FutureOf_ConnectionInfo = () => (FutureOf_ConnectionInfo = dart.constFn(async.Future$(io._ConnectionInfo)))();
-  let FutureOrOf_ConnectionInfo = () => (FutureOrOf_ConnectionInfo = dart.constFn(async.FutureOr$(io._ConnectionInfo)))();
-  let SetOf_HttpClientConnection = () => (SetOf_HttpClientConnection = dart.constFn(core.Set$(io._HttpClientConnection)))();
-  let HashMapOfString$_ConnectionTarget = () => (HashMapOfString$_ConnectionTarget = dart.constFn(collection.HashMap$(core.String, io._ConnectionTarget)))();
-  let JSArrayOf_Credentials = () => (JSArrayOf_Credentials = dart.constFn(_interceptors.JSArray$(io._Credentials)))();
-  let JSArrayOf_ProxyCredentials = () => (JSArrayOf_ProxyCredentials = dart.constFn(_interceptors.JSArray$(io._ProxyCredentials)))();
-  let FutureOf_HttpClientRequest = () => (FutureOf_HttpClientRequest = dart.constFn(async.Future$(io._HttpClientRequest)))();
-  let FutureOrOf_HttpClientRequest = () => (FutureOrOf_HttpClientRequest = dart.constFn(async.FutureOr$(io._HttpClientRequest)))();
-  let X509CertificateAndStringAndintTobool = () => (X509CertificateAndStringAndintTobool = dart.constFn(dart.functionType(core.bool, [io.X509Certificate, core.String, core.int])))();
-  let FutureOfbool = () => (FutureOfbool = dart.constFn(async.Future$(core.bool)))();
-  let UriAndStringAndStringToFutureOfbool = () => (UriAndStringAndStringToFutureOfbool = dart.constFn(dart.functionType(FutureOfbool(), [core.Uri, core.String, core.String])))();
-  let StringAndintAndString__ToFutureOfbool = () => (StringAndintAndString__ToFutureOfbool = dart.constFn(dart.functionType(FutureOfbool(), [core.String, core.int, core.String, core.String])))();
-  let UriToString = () => (UriToString = dart.constFn(dart.functionType(core.String, [core.Uri])))();
-  let MapOfString$_ConnectionTarget = () => (MapOfString$_ConnectionTarget = dart.constFn(core.Map$(core.String, io._ConnectionTarget)))();
-  let ListOf_Credentials = () => (ListOf_Credentials = dart.constFn(core.List$(io._Credentials)))();
-  let ListOf_ProxyCredentials = () => (ListOf_ProxyCredentials = dart.constFn(core.List$(io._ProxyCredentials)))();
-  let MapOfint$_HttpConnection = () => (MapOfint$_HttpConnection = dart.constFn(core.Map$(core.int, io._HttpConnection)))();
-  let HashMapOfint$_HttpConnection = () => (HashMapOfint$_HttpConnection = dart.constFn(collection.HashMap$(core.int, io._HttpConnection)))();
-  let LinkedListOf_HttpConnection = () => (LinkedListOf_HttpConnection = dart.constFn(collection.LinkedList$(io._HttpConnection)))();
-  let StreamControllerOfHttpRequest = () => (StreamControllerOfHttpRequest = dart.constFn(async.StreamController$(io.HttpRequest)))();
-  let HttpRequestTovoid = () => (HttpRequestTovoid = dart.constFn(dart.functionType(dart.void, [io.HttpRequest])))();
-  let MapOfint$_HttpServer = () => (MapOfint$_HttpServer = dart.constFn(core.Map$(core.int, io._HttpServer)))();
-  let ListOf_Proxy = () => (ListOf_Proxy = dart.constFn(core.List$(io._Proxy)))();
-  let FutureOfSocket = () => (FutureOfSocket = dart.constFn(async.Future$(io.Socket)))();
-  let ListOfbool = () => (ListOfbool = dart.constFn(core.List$(core.bool)))();
-  let StreamOfint = () => (StreamOfint = dart.constFn(async.Stream$(core.int)))();
-  let StreamControllerOf_HttpIncoming = () => (StreamControllerOf_HttpIncoming = dart.constFn(async.StreamController$(io._HttpIncoming)))();
-  let _HttpIncomingTovoid = () => (_HttpIncomingTovoid = dart.constFn(dart.functionType(dart.void, [io._HttpIncoming])))();
-  let MapOfString$_HttpSession = () => (MapOfString$_HttpSession = dart.constFn(core.Map$(core.String, io._HttpSession)))();
-  let ListOfMapOfString$String = () => (ListOfMapOfString$String = dart.constFn(core.List$(MapOfString$String())))();
-  let FutureOfServiceExtensionResponse = () => (FutureOfServiceExtensionResponse = dart.constFn(async.Future$(developer.ServiceExtensionResponse)))();
-  let MapOfint$_FileResourceInfo = () => (MapOfint$_FileResourceInfo = dart.constFn(core.Map$(core.int, io._FileResourceInfo)))();
-  let MapOfint$_ProcessResourceInfo = () => (MapOfint$_ProcessResourceInfo = dart.constFn(core.Map$(core.int, io._ProcessResourceInfo)))();
-  let MapOfint$_SocketResourceInfo = () => (MapOfint$_SocketResourceInfo = dart.constFn(core.Map$(core.int, io._SocketResourceInfo)))();
-  let StreamSinkOfListOfint = () => (StreamSinkOfListOfint = dart.constFn(async.StreamSink$(ListOfint())))();
-  let FutureOfLink = () => (FutureOfLink = dart.constFn(async.Future$(io.Link)))();
-  let _CaseInsensitiveStringMap = () => (_CaseInsensitiveStringMap = dart.constFn(io._CaseInsensitiveStringMap$()))();
-  let FutureOfRawSecureSocket = () => (FutureOfRawSecureSocket = dart.constFn(async.Future$(io.RawSecureSocket)))();
-  let SecureSocketTovoid = () => (SecureSocketTovoid = dart.constFn(dart.functionType(dart.void, [io.SecureSocket])))();
-  let StreamControllerOfRawSecureSocket = () => (StreamControllerOfRawSecureSocket = dart.constFn(async.StreamController$(io.RawSecureSocket)))();
-  let RawSecureSocketTovoid = () => (RawSecureSocketTovoid = dart.constFn(dart.functionType(dart.void, [io.RawSecureSocket])))();
-  let StreamSubscriptionOfRawSocket = () => (StreamSubscriptionOfRawSocket = dart.constFn(async.StreamSubscription$(io.RawSocket)))();
-  let StreamSubscriptionOfRawSocketEvent = () => (StreamSubscriptionOfRawSocketEvent = dart.constFn(async.StreamSubscription$(io.RawSocketEvent)))();
-  let CompleterOf_RawSecureSocket = () => (CompleterOf_RawSecureSocket = dart.constFn(async.Completer$(io._RawSecureSocket)))();
-  let StreamControllerOfRawSocketEvent = () => (StreamControllerOfRawSocketEvent = dart.constFn(async.StreamController$(io.RawSocketEvent)))();
-  let RawSocketEventTovoid = () => (RawSocketEventTovoid = dart.constFn(dart.functionType(dart.void, [io.RawSocketEvent])))();
-  let StreamOfRawSocketEvent = () => (StreamOfRawSocketEvent = dart.constFn(async.Stream$(io.RawSocketEvent)))();
-  let X509CertificateTodynamic = () => (X509CertificateTodynamic = dart.constFn(dart.functionType(dart.dynamic, [io.X509Certificate])))();
-  let intToListOfint = () => (intToListOfint = dart.constFn(dart.functionType(ListOfint(), [core.int])))();
-  let StreamOfRawSocket = () => (StreamOfRawSocket = dart.constFn(async.Stream$(io.RawSocket)))();
-  let StreamOfSocket = () => (StreamOfSocket = dart.constFn(async.Stream$(io.Socket)))();
-  let StreamTransformerOfHttpRequest$WebSocket = () => (StreamTransformerOfHttpRequest$WebSocket = dart.constFn(async.StreamTransformer$(io.HttpRequest, io.WebSocket)))();
-  let ListOfStringTodynamic = () => (ListOfStringTodynamic = dart.constFn(dart.functionType(dart.dynamic, [ListOfString()])))();
-  let StreamTransformerOfListOfint$dynamic = () => (StreamTransformerOfListOfint$dynamic = dart.constFn(async.StreamTransformer$(ListOfint(), dart.dynamic)))();
-  let EventSinkOfUint8List = () => (EventSinkOfUint8List = dart.constFn(async.EventSink$(typed_data.Uint8List)))();
-  let StreamControllerOfWebSocket = () => (StreamControllerOfWebSocket = dart.constFn(async.StreamController$(io.WebSocket)))();
-  let FutureOfWebSocket = () => (FutureOfWebSocket = dart.constFn(async.Future$(io.WebSocket)))();
-  let EventSinkOfListOfint = () => (EventSinkOfListOfint = dart.constFn(async.EventSink$(ListOfint())))();
-  let JSArrayOfUint8List = () => (JSArrayOfUint8List = dart.constFn(_interceptors.JSArray$(typed_data.Uint8List)))();
-  let StreamTransformerOfdynamic$ListOfint = () => (StreamTransformerOfdynamic$ListOfint = dart.constFn(async.StreamTransformer$(dart.dynamic, ListOfint())))();
-  let MapOfint$_WebSocketImpl = () => (MapOfint$_WebSocketImpl = dart.constFn(core.Map$(core.int, io._WebSocketImpl)))();
-  let FutureOfIsolate = () => (FutureOfIsolate = dart.constFn(async.Future$(isolate.Isolate)))();
-  let JsArray = () => (JsArray = dart.constFn(js.JsArray$()))();
-  let ExpandoOfFunction = () => (ExpandoOfFunction = dart.constFn(core.Expando$(core.Function)))();
-  let PointOfnum = () => (PointOfnum = dart.constFn(math.Point$(core.num)))();
-  let Point$ = () => (Point$ = dart.constFn(math.Point$()))();
-  let RectangleOfnum = () => (RectangleOfnum = dart.constFn(math.Rectangle$(core.num)))();
-  let _RectangleBase = () => (_RectangleBase = dart.constFn(math._RectangleBase$()))();
-  let Rectangle = () => (Rectangle = dart.constFn(math.Rectangle$()))();
-  let MutableRectangle = () => (MutableRectangle = dart.constFn(math.MutableRectangle$()))();
-  let EventStreamProviderOfEvent = () => (EventStreamProviderOfEvent = dart.constFn(html$.EventStreamProvider$(html$.Event)))();
-  let EventStreamProviderOfVersionChangeEvent = () => (EventStreamProviderOfVersionChangeEvent = dart.constFn(html$.EventStreamProvider$(indexed_db.VersionChangeEvent)))();
-  let FutureOfDatabase = () => (FutureOfDatabase = dart.constFn(async.Future$(indexed_db.Database)))();
-  let CompleterOfIdbFactory = () => (CompleterOfIdbFactory = dart.constFn(async.Completer$(indexed_db.IdbFactory)))();
-  let FutureOfIdbFactory = () => (FutureOfIdbFactory = dart.constFn(async.Future$(indexed_db.IdbFactory)))();
-  let FutureOfListOfString = () => (FutureOfListOfString = dart.constFn(async.Future$(ListOfString())))();
-  let EventTovoid = () => (EventTovoid = dart.constFn(dart.functionType(dart.void, [html$.Event])))();
-  let CompleterOfDatabase = () => (CompleterOfDatabase = dart.constFn(async.Completer$(indexed_db.Database)))();
-  let ListOfEventTarget = () => (ListOfEventTarget = dart.constFn(core.List$(html$.EventTarget)))();
-  let RectangleOfint = () => (RectangleOfint = dart.constFn(math.Rectangle$(core.int)))();
-  let IterableOfNode = () => (IterableOfNode = dart.constFn(core.Iterable$(html$.Node)))();
-  let ListOfNode = () => (ListOfNode = dart.constFn(core.List$(html$.Node)))();
-  let ListOfElement = () => (ListOfElement = dart.constFn(core.List$(html$.Element)))();
-  let IterableOfMapOfString$dynamic = () => (IterableOfMapOfString$dynamic = dart.constFn(core.Iterable$(MapOfString$dynamic())))();
-  let EventStreamProviderOfWheelEvent = () => (EventStreamProviderOfWheelEvent = dart.constFn(html$.EventStreamProvider$(html$.WheelEvent)))();
-  let EventStreamProviderOfTransitionEvent = () => (EventStreamProviderOfTransitionEvent = dart.constFn(html$.EventStreamProvider$(html$.TransitionEvent)))();
-  let EventStreamProviderOfMouseEvent = () => (EventStreamProviderOfMouseEvent = dart.constFn(html$.EventStreamProvider$(html$.MouseEvent)))();
-  let EventStreamProviderOfClipboardEvent = () => (EventStreamProviderOfClipboardEvent = dart.constFn(html$.EventStreamProvider$(html$.ClipboardEvent)))();
-  let EventStreamProviderOfKeyboardEvent = () => (EventStreamProviderOfKeyboardEvent = dart.constFn(html$.EventStreamProvider$(html$.KeyboardEvent)))();
-  let EventStreamProviderOfTouchEvent = () => (EventStreamProviderOfTouchEvent = dart.constFn(html$.EventStreamProvider$(html$.TouchEvent)))();
-  let _CustomEventStreamProviderOfWheelEvent = () => (_CustomEventStreamProviderOfWheelEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.WheelEvent)))();
-  let _CustomEventStreamProviderOfTransitionEvent = () => (_CustomEventStreamProviderOfTransitionEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.TransitionEvent)))();
-  let ListOfEntry = () => (ListOfEntry = dart.constFn(core.List$(html$.Entry)))();
-  let EventStreamProviderOfProgressEvent = () => (EventStreamProviderOfProgressEvent = dart.constFn(html$.EventStreamProvider$(html$.ProgressEvent)))();
-  let EventStreamProviderOfMediaKeyEvent = () => (EventStreamProviderOfMediaKeyEvent = dart.constFn(html$.EventStreamProvider$(html$.MediaKeyEvent)))();
-  let EventStreamProviderOfMessageEvent = () => (EventStreamProviderOfMessageEvent = dart.constFn(html$.EventStreamProvider$(html$.MessageEvent)))();
-  let EventStreamProviderOfPopStateEvent = () => (EventStreamProviderOfPopStateEvent = dart.constFn(html$.EventStreamProvider$(html$.PopStateEvent)))();
-  let EventStreamProviderOfStorageEvent = () => (EventStreamProviderOfStorageEvent = dart.constFn(html$.EventStreamProvider$(html$.StorageEvent)))();
-  let EventStreamProviderOfContextEvent = () => (EventStreamProviderOfContextEvent = dart.constFn(html$.EventStreamProvider$(web_gl.ContextEvent)))();
-  let ListOfnum = () => (ListOfnum = dart.constFn(core.List$(core.num)))();
-  let ListOfMessagePort = () => (ListOfMessagePort = dart.constFn(core.List$(html$.MessagePort)))();
-  let CompleterOfFileSystem = () => (CompleterOfFileSystem = dart.constFn(async.Completer$(html$.FileSystem)))();
-  let CompleterOfEntry = () => (CompleterOfEntry = dart.constFn(async.Completer$(html$.Entry)))();
-  let ListOfCssRule = () => (ListOfCssRule = dart.constFn(core.List$(html$.CssRule)))();
-  let IterableOfElement = () => (IterableOfElement = dart.constFn(core.Iterable$(html$.Element)))();
-  let IterableOfCssStyleDeclaration = () => (IterableOfCssStyleDeclaration = dart.constFn(core.Iterable$(html$.CssStyleDeclaration)))();
-  let ListOfFile = () => (ListOfFile = dart.constFn(core.List$(html$.File)))();
-  let CompleterOfString = () => (CompleterOfString = dart.constFn(async.Completer$(core.String)))();
-  let CompleterOfMetadata = () => (CompleterOfMetadata = dart.constFn(async.Completer$(html$.Metadata)))();
-  let CompleterOfListOfEntry = () => (CompleterOfListOfEntry = dart.constFn(async.Completer$(ListOfEntry())))();
-  let EventStreamProviderOfSecurityPolicyViolationEvent = () => (EventStreamProviderOfSecurityPolicyViolationEvent = dart.constFn(html$.EventStreamProvider$(html$.SecurityPolicyViolationEvent)))();
-  let ListOfStyleSheet = () => (ListOfStyleSheet = dart.constFn(core.List$(html$.StyleSheet)))();
-  let ImmutableListMixin = () => (ImmutableListMixin = dart.constFn(html$.ImmutableListMixin$()))();
-  let ElementAndElementToint = () => (ElementAndElementToint = dart.constFn(dart.functionType(core.int, [html$.Element, html$.Element])))();
-  let ElementTobool = () => (ElementTobool = dart.constFn(dart.functionType(core.bool, [html$.Element])))();
-  let ElementList = () => (ElementList = dart.constFn(html$.ElementList$()))();
-  let _FrozenElementList = () => (_FrozenElementList = dart.constFn(html$._FrozenElementList$()))();
-  let _EventStreamOfEvent = () => (_EventStreamOfEvent = dart.constFn(html$._EventStream$(html$.Event)))();
-  let _ElementEventStreamImplOfEvent = () => (_ElementEventStreamImplOfEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.Event)))();
-  let CompleterOfFileWriter = () => (CompleterOfFileWriter = dart.constFn(async.Completer$(html$.FileWriter)))();
-  let CompleterOfFile$ = () => (CompleterOfFile$ = dart.constFn(async.Completer$(html$.File)))();
-  let ListOfFontFace = () => (ListOfFontFace = dart.constFn(core.List$(html$.FontFace)))();
-  let ListOfGamepadButton = () => (ListOfGamepadButton = dart.constFn(core.List$(html$.GamepadButton)))();
-  let CompleterOfGeoposition = () => (CompleterOfGeoposition = dart.constFn(async.Completer$(html$.Geoposition)))();
-  let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))();
-  let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
-  let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))();
-  let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
-  let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html$.ProgressEvent])))();
-  let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
-  let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))();
-  let ListOfSourceInfo = () => (ListOfSourceInfo = dart.constFn(core.List$(html$.SourceInfo)))();
-  let CompleterOfListOfSourceInfo = () => (CompleterOfListOfSourceInfo = dart.constFn(async.Completer$(ListOfSourceInfo())))();
-  let EventStreamProviderOfMidiMessageEvent = () => (EventStreamProviderOfMidiMessageEvent = dart.constFn(html$.EventStreamProvider$(html$.MidiMessageEvent)))();
-  let ListOfMimeType = () => (ListOfMimeType = dart.constFn(core.List$(html$.MimeType)))();
-  let ListOfMutationRecord = () => (ListOfMutationRecord = dart.constFn(core.List$(html$.MutationRecord)))();
-  let _wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = () => (_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = dart.constFn(html$._wrapZoneBinaryCallback$(ListOfMutationRecord(), html$.MutationObserver, dart.void)))();
-  let MapOfString$bool = () => (MapOfString$bool = dart.constFn(core.Map$(core.String, core.bool)))();
-  let CompleterOfMediaStream = () => (CompleterOfMediaStream = dart.constFn(async.Completer$(html$.MediaStream)))();
-  let NodeTobool = () => (NodeTobool = dart.constFn(dart.functionType(core.bool, [html$.Node])))();
-  let ComparatorOfNode = () => (ComparatorOfNode = dart.constFn(core.Comparator$(html$.Node)))();
-  let ListOfPlugin = () => (ListOfPlugin = dart.constFn(core.List$(html$.Plugin)))();
-  let EventStreamProviderOfRtcDtmfToneChangeEvent = () => (EventStreamProviderOfRtcDtmfToneChangeEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcDtmfToneChangeEvent)))();
-  let JSArrayOfMapOfString$String = () => (JSArrayOfMapOfString$String = dart.constFn(_interceptors.JSArray$(MapOfString$String())))();
-  let CompleterOfRtcSessionDescription = () => (CompleterOfRtcSessionDescription = dart.constFn(async.Completer$(html$.RtcSessionDescription)))();
-  let CompleterOfRtcStatsResponse = () => (CompleterOfRtcStatsResponse = dart.constFn(async.Completer$(html$.RtcStatsResponse)))();
-  let EventStreamProviderOfMediaStreamEvent = () => (EventStreamProviderOfMediaStreamEvent = dart.constFn(html$.EventStreamProvider$(html$.MediaStreamEvent)))();
-  let EventStreamProviderOfRtcDataChannelEvent = () => (EventStreamProviderOfRtcDataChannelEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcDataChannelEvent)))();
-  let EventStreamProviderOfRtcIceCandidateEvent = () => (EventStreamProviderOfRtcIceCandidateEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcIceCandidateEvent)))();
-  let ListOfOptionElement = () => (ListOfOptionElement = dart.constFn(core.List$(html$.OptionElement)))();
-  let UnmodifiableListViewOfOptionElement = () => (UnmodifiableListViewOfOptionElement = dart.constFn(collection.UnmodifiableListView$(html$.OptionElement)))();
-  let JSArrayOfOptionElement = () => (JSArrayOfOptionElement = dart.constFn(_interceptors.JSArray$(html$.OptionElement)))();
-  let ListOfSourceBuffer = () => (ListOfSourceBuffer = dart.constFn(core.List$(html$.SourceBuffer)))();
-  let ListOfSpeechGrammar = () => (ListOfSpeechGrammar = dart.constFn(core.List$(html$.SpeechGrammar)))();
-  let EventStreamProviderOfSpeechRecognitionError = () => (EventStreamProviderOfSpeechRecognitionError = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionError)))();
-  let EventStreamProviderOfSpeechRecognitionEvent = () => (EventStreamProviderOfSpeechRecognitionEvent = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionEvent)))();
-  let ListOfSpeechRecognitionResult = () => (ListOfSpeechRecognitionResult = dart.constFn(core.List$(html$.SpeechRecognitionResult)))();
-  let EventStreamProviderOfSpeechSynthesisEvent = () => (EventStreamProviderOfSpeechSynthesisEvent = dart.constFn(html$.EventStreamProvider$(html$.SpeechSynthesisEvent)))();
-  let VoidToString = () => (VoidToString = dart.constFn(dart.functionType(core.String, [])))();
-  let StringAndStringTovoid = () => (StringAndStringTovoid = dart.constFn(dart.functionType(dart.void, [core.String, core.String])))();
-  let _WrappedListOfTableSectionElement = () => (_WrappedListOfTableSectionElement = dart.constFn(html$._WrappedList$(html$.TableSectionElement)))();
-  let _WrappedListOfTableRowElement = () => (_WrappedListOfTableRowElement = dart.constFn(html$._WrappedList$(html$.TableRowElement)))();
-  let _WrappedListOfTableCellElement = () => (_WrappedListOfTableCellElement = dart.constFn(html$._WrappedList$(html$.TableCellElement)))();
-  let ListOfTextTrackCue = () => (ListOfTextTrackCue = dart.constFn(core.List$(html$.TextTrackCue)))();
-  let ListOfTextTrack = () => (ListOfTextTrack = dart.constFn(core.List$(html$.TextTrack)))();
-  let EventStreamProviderOfTrackEvent = () => (EventStreamProviderOfTrackEvent = dart.constFn(html$.EventStreamProvider$(html$.TrackEvent)))();
-  let ListOfTouch = () => (ListOfTouch = dart.constFn(core.List$(html$.Touch)))();
-  let ListOfTrackDefault = () => (ListOfTrackDefault = dart.constFn(core.List$(html$.TrackDefault)))();
-  let EventStreamProviderOfCloseEvent = () => (EventStreamProviderOfCloseEvent = dart.constFn(html$.EventStreamProvider$(html$.CloseEvent)))();
-  let CompleterOfnum = () => (CompleterOfnum = dart.constFn(async.Completer$(core.num)))();
-  let EventStreamProviderOfDeviceMotionEvent = () => (EventStreamProviderOfDeviceMotionEvent = dart.constFn(html$.EventStreamProvider$(html$.DeviceMotionEvent)))();
-  let EventStreamProviderOfDeviceOrientationEvent = () => (EventStreamProviderOfDeviceOrientationEvent = dart.constFn(html$.EventStreamProvider$(html$.DeviceOrientationEvent)))();
-  let EventStreamProviderOfAnimationEvent = () => (EventStreamProviderOfAnimationEvent = dart.constFn(html$.EventStreamProvider$(html$.AnimationEvent)))();
-  let EventStreamProviderOfBeforeUnloadEvent = () => (EventStreamProviderOfBeforeUnloadEvent = dart.constFn(html$.EventStreamProvider$(html$.BeforeUnloadEvent)))();
-  let _EventStreamOfBeforeUnloadEvent = () => (_EventStreamOfBeforeUnloadEvent = dart.constFn(html$._EventStream$(html$.BeforeUnloadEvent)))();
-  let StreamControllerOfBeforeUnloadEvent = () => (StreamControllerOfBeforeUnloadEvent = dart.constFn(async.StreamController$(html$.BeforeUnloadEvent)))();
-  let _ElementEventStreamImplOfBeforeUnloadEvent = () => (_ElementEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.BeforeUnloadEvent)))();
-  let _ElementListEventStreamImplOfBeforeUnloadEvent = () => (_ElementListEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementListEventStreamImpl$(html$.BeforeUnloadEvent)))();
-  let ElementListOfElement = () => (ElementListOfElement = dart.constFn(html$.ElementList$(html$.Element)))();
-  let ListOfRectangleOfnum = () => (ListOfRectangleOfnum = dart.constFn(core.List$(RectangleOfnum())))();
-  let ListOfGamepad = () => (ListOfGamepad = dart.constFn(core.List$(html$.Gamepad)))();
-  let ListOfCssClassSetImpl = () => (ListOfCssClassSetImpl = dart.constFn(core.List$(html_common.CssClassSetImpl)))();
-  let LinkedHashSetOfString = () => (LinkedHashSetOfString = dart.constFn(collection.LinkedHashSet$(core.String)))();
-  let StringTobool = () => (StringTobool = dart.constFn(dart.functionType(core.bool, [core.String])))();
-  let StringAndStringToString = () => (StringAndStringToString = dart.constFn(dart.functionType(core.String, [core.String, core.String])))();
-  let SetOfStringTodynamic = () => (SetOfStringTodynamic = dart.constFn(dart.functionType(dart.dynamic, [SetOfString()])))();
-  let EventStreamProvider = () => (EventStreamProvider = dart.constFn(html$.EventStreamProvider$()))();
-  let ElementStream = () => (ElementStream = dart.constFn(html$.ElementStream$()))();
-  let _EventStream = () => (_EventStream = dart.constFn(html$._EventStream$()))();
-  let _ElementEventStreamImpl = () => (_ElementEventStreamImpl = dart.constFn(html$._ElementEventStreamImpl$()))();
-  let _ElementListEventStreamImpl = () => (_ElementListEventStreamImpl = dart.constFn(html$._ElementListEventStreamImpl$()))();
-  let _EventListener = () => (_EventListener = dart.constFn(html$._EventListener$()))();
-  let _wrapZoneCallbackOfEvent$dynamic = () => (_wrapZoneCallbackOfEvent$dynamic = dart.constFn(html$._wrapZoneCallback$(html$.Event, dart.dynamic)))();
-  let _EventStreamSubscription = () => (_EventStreamSubscription = dart.constFn(html$._EventStreamSubscription$()))();
-  let CustomStream = () => (CustomStream = dart.constFn(html$.CustomStream$()))();
-  let _CustomEventStreamImpl = () => (_CustomEventStreamImpl = dart.constFn(html$._CustomEventStreamImpl$()))();
-  let EventStreamProviderOfKeyEvent = () => (EventStreamProviderOfKeyEvent = dart.constFn(html$.EventStreamProvider$(html$.KeyEvent)))();
-  let CustomStreamOfKeyEvent = () => (CustomStreamOfKeyEvent = dart.constFn(html$.CustomStream$(html$.KeyEvent)))();
-  let _StreamPool = () => (_StreamPool = dart.constFn(html$._StreamPool$()))();
-  let _CustomEventStreamProvider = () => (_CustomEventStreamProvider = dart.constFn(html$._CustomEventStreamProvider$()))();
-  let MapOfString$Function = () => (MapOfString$Function = dart.constFn(core.Map$(core.String, core.Function)))();
-  let JSArrayOfKeyEvent = () => (JSArrayOfKeyEvent = dart.constFn(_interceptors.JSArray$(html$.KeyEvent)))();
-  let ListOfKeyEvent = () => (ListOfKeyEvent = dart.constFn(core.List$(html$.KeyEvent)))();
-  let MapOfString$int = () => (MapOfString$int = dart.constFn(core.Map$(core.String, core.int)))();
-  let JSArrayOfNodeValidator = () => (JSArrayOfNodeValidator = dart.constFn(_interceptors.JSArray$(html$.NodeValidator)))();
-  let ListOfNodeValidator = () => (ListOfNodeValidator = dart.constFn(core.List$(html$.NodeValidator)))();
-  let _WrappedList = () => (_WrappedList = dart.constFn(html$._WrappedList$()))();
-  let IteratorOfNode = () => (IteratorOfNode = dart.constFn(core.Iterator$(html$.Node)))();
-  let _WrappedIterator = () => (_WrappedIterator = dart.constFn(html$._WrappedIterator$()))();
-  let HttpRequestTodynamic = () => (HttpRequestTodynamic = dart.constFn(dart.functionType(dart.dynamic, [html$.HttpRequest])))();
-  let FixedSizeListIterator = () => (FixedSizeListIterator = dart.constFn(html$.FixedSizeListIterator$()))();
-  let _VariableSizeListIterator = () => (_VariableSizeListIterator = dart.constFn(html$._VariableSizeListIterator$()))();
-  let _wrapZoneCallback = () => (_wrapZoneCallback = dart.constFn(html$._wrapZoneCallback$()))();
-  let _wrapZoneBinaryCallback = () => (_wrapZoneBinaryCallback = dart.constFn(html$._wrapZoneBinaryCallback$()))();
-  let ElementTovoid = () => (ElementTovoid = dart.constFn(dart.functionType(dart.void, [html$.Element])))();
-  let ListOfLength = () => (ListOfLength = dart.constFn(core.List$(svg$.Length)))();
-  let ListOfNumber = () => (ListOfNumber = dart.constFn(core.List$(svg$.Number)))();
-  let ListOfPathSeg = () => (ListOfPathSeg = dart.constFn(core.List$(svg$.PathSeg)))();
-  let ListOfTransform = () => (ListOfTransform = dart.constFn(core.List$(svg$.Transform)))();
-  let CompleterOfAudioBuffer = () => (CompleterOfAudioBuffer = dart.constFn(async.Completer$(web_audio.AudioBuffer)))();
-  let EventStreamProviderOfAudioProcessingEvent = () => (EventStreamProviderOfAudioProcessingEvent = dart.constFn(html$.EventStreamProvider$(web_audio.AudioProcessingEvent)))();
-  let dynamicTodynamic$ = () => (dynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
-  let StringAndStringToint = () => (StringAndStringToint = dart.constFn(dart.definiteFunctionType(core.int, [core.String, core.String])))();
-  let VoidTo_MethodStats = () => (VoidTo_MethodStats = dart.constFn(dart.definiteFunctionType(dart._MethodStats, [])))();
-  let VoidToFunctionType = () => (VoidToFunctionType = dart.constFn(dart.definiteFunctionType(dart.FunctionType, [])))();
-  let dynamicToString = () => (dynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic])))();
-  let dynamicToListOfString = () => (dynamicToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [dart.dynamic])))();
-  let dynamicToList = () => (dynamicToList = dart.constFn(dart.definiteFunctionType(core.List, [dart.dynamic])))();
-  let dynamicAndSetOfNameValuePairTovoid = () => (dynamicAndSetOfNameValuePairTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, SetOfNameValuePair()])))();
-  let TypeToString = () => (TypeToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Type])))();
-  let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))();
-  let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))();
-  let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
-  let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
-  let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
-  let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
-  let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
-  let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
-  let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
-  let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
-  let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
-  let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let VoidToIsolateContext = () => (VoidToIsolateContext = dart.constFn(dart.definiteFunctionType(_foreign_helper.IsolateContext, [])))();
-  let dynamicAndFunctionTodynamic = () => (dynamicAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Function])))();
-  let dynamicTovoid$ = () => (dynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
-  let TypeTodynamic = () => (TypeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type])))();
-  let VoidToString$ = () => (VoidToString$ = dart.constFn(dart.definiteFunctionType(core.String, [])))();
-  let StringToString$ = () => (StringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String])))();
-  let StringAndStringTodynamic = () => (StringAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String])))();
-  let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
-  let StringAndStringToString$ = () => (StringAndStringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
-  let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
-  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
-  let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
-  let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
-  let StringTovoid$ = () => (StringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
-  let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
-  let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
-  let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
-  let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
-  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
-  let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
-  let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
-  let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
-  let dynamicToNull$ = () => (dynamicToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
-  let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
-  let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
-  let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
-  let dynamicAndStackTraceTovoid = () => (dynamicAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])))();
-  let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
-  let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
-  let dynamicAnddynamicToError = () => (dynamicAnddynamicToError = dart.constFn(dart.definiteFunctionType(core.Error, [dart.dynamic, dart.dynamic])))();
-  let dynamicAnddynamicAnddynamicToError = () => (dynamicAnddynamicAnddynamicToError = dart.constFn(dart.definiteFunctionType(core.Error, [dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let dynamicAnddynamicAnddynamicTodynamic = () => (dynamicAnddynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let dynamicToArgumentError = () => (dynamicToArgumentError = dart.constFn(dart.definiteFunctionType(core.ArgumentError, [dart.dynamic])))();
-  let dynamicToStackTrace = () => (dynamicToStackTrace = dart.constFn(dart.definiteFunctionType(core.StackTrace, [dart.dynamic])))();
-  let dynamicToint = () => (dynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic])))();
-  let dynamicAndMapTodynamic = () => (dynamicAndMapTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Map])))();
-  let dynamicAndStringTodynamic = () => (dynamicAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String])))();
-  let dynamicAndStringAnddynamicTovoid = () => (dynamicAndStringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, dart.dynamic])))();
-  let FAndintToF = () => (FAndintToF = dart.constFn(dart.definiteFunctionType(F => [F, [F, core.int]])))();
-  let JSSyntaxRegExpTodynamic = () => (JSSyntaxRegExpTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_js_helper.JSSyntaxRegExp])))();
-  let JSSyntaxRegExpToint = () => (JSSyntaxRegExpToint = dart.constFn(dart.definiteFunctionType(core.int, [_js_helper.JSSyntaxRegExp])))();
-  let JSSyntaxRegExpAndStringAndintToMatch = () => (JSSyntaxRegExpAndStringAndintToMatch = dart.constFn(dart.definiteFunctionType(core.Match, [_js_helper.JSSyntaxRegExp, core.String, core.int])))();
-  let dynamicAnddynamicAnddynamicToint = () => (dynamicAnddynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let dynamicAnddynamicAnddynamicToString = () => (dynamicAnddynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let dynamicAnddynamicAnddynamicTobool = () => (dynamicAnddynamicAnddynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let StringAndStringAndintToIterableOfMatch = () => (StringAndStringAndintToIterableOfMatch = dart.constFn(dart.definiteFunctionType(IterableOfMatch(), [core.String, core.String, core.int])))();
-  let StringAnddynamicAndintTobool = () => (StringAnddynamicAndintTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.String, dart.dynamic, core.int])))();
-  let StringAndJSSyntaxRegExpAndString__ToString = () => (StringAndJSSyntaxRegExpAndString__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, _js_helper.JSSyntaxRegExp, core.String, core.int])))();
-  let StringAndPatternAndStringToString = () => (StringAndPatternAndStringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, core.String])))();
-  let MatchToString$ = () => (MatchToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.Match])))();
-  let StringAndPatternAndFn__ToString = () => (StringAndPatternAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), StringToString()])))();
-  let StringAndFnAndFnToString = () => (StringAndFnAndFnToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, MatchToString(), StringToString()])))();
-  let StringAndStringAndFn__ToString = () => (StringAndStringAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String, MatchToString(), StringToString()])))();
-  let StringAndPatternAndString__ToString = () => (StringAndPatternAndString__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, core.String, core.int])))();
-  let StringAndPatternAndFn__ToString$ = () => (StringAndPatternAndFn__ToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), core.int])))();
-  let StringAndintAndint__ToString = () => (StringAndintAndint__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.int, core.int, core.String])))();
-  let dynamicToType = () => (dynamicToType = dart.constFn(dart.definiteFunctionType(core.Type, [dart.dynamic])))();
-  let dynamicAndintTodynamic = () => (dynamicAndintTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.int])))();
-  let SymbolToString = () => (SymbolToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Symbol])))();
-  let dynamicAnddynamicToSymbol = () => (dynamicAnddynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic, dart.dynamic])))();
-  let dynamicToInstanceMirror = () => (dynamicToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [dart.dynamic])))();
-  let TypeToTypeMirror = () => (TypeToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [core.Type])))();
-  let dynamicAndListTodynamic = () => (dynamicAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.List])))();
-  let dynamicAndStringAndListTodynamic = () => (dynamicAndStringAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, core.List])))();
-  let SymbolTodynamic = () => (SymbolTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Symbol])))();
-  let dynamicToSymbol = () => (dynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic])))();
-  let dynamicToMapOfSymbol$dynamic = () => (dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [dart.dynamic])))();
-  let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
-  let SymbolAnddynamicToNull = () => (SymbolAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.Symbol, dart.dynamic])))();
-  let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
-  let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
-  let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let ListToList = () => (ListToList = dart.constFn(dart.definiteFunctionType(core.List, [core.List])))();
-  let intTobool = () => (intTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.int])))();
-  let intAndListAndintTovoid = () => (intAndListAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.List, core.int])))();
-  let intAndintAndintToint = () => (intAndintAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int, core.int])))();
-  let FunctionAndObjectAndStackTraceTodynamic = () => (FunctionAndObjectAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.Object, core.StackTrace])))();
-  let FunctionAndZoneToFunction = () => (FunctionAndZoneToFunction = dart.constFn(dart.definiteFunctionType(R => [core.Function, [core.Function, async.Zone]])))();
-  let VoidToObject$ = () => (VoidToObject$ = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
-  let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
-  let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
-  let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
-  let dynamicTo_Future = () => (dynamicTo_Future = dart.constFn(dart.definiteFunctionType(async._Future, [dart.dynamic])))();
-  let _AsyncCallbackTovoid = () => (_AsyncCallbackTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._AsyncCallback])))();
-  let FnToNull = () => (FnToNull = dart.constFn(dart.definiteFunctionType(core.Null, [VoidTovoid()])))();
-  let _NotificationHandlerToFuture = () => (_NotificationHandlerToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [async._NotificationHandler])))();
-  let dynamicAndStackTraceToNull = () => (dynamicAndStackTraceToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, core.StackTrace])))();
-  let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace])))();
-  let FnAndFnAndFnTodynamic = () => (FnAndFnAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [VoidTodynamic(), dynamicTodynamic(), ZoneBinaryCallbackOfdynamic$dynamic$StackTrace()])))();
-  let StreamSubscriptionAnd_FutureAnddynamic__Tovoid = () => (StreamSubscriptionAnd_FutureAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace])))();
-  let StreamSubscriptionAnd_FutureTo_ErrorCallback = () => (StreamSubscriptionAnd_FutureTo_ErrorCallback = dart.constFn(dart.definiteFunctionType(async._ErrorCallback, [async.StreamSubscription, async._Future])))();
-  let StreamSubscriptionAnd_FutureAnddynamicTovoid = () => (StreamSubscriptionAnd_FutureAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic])))();
-  let _EventSinkAnddynamicAnddynamicTovoid = () => (_EventSinkAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._EventSink, dart.dynamic, dart.dynamic])))();
-  let _ZoneToZoneDelegate = () => (_ZoneToZoneDelegate = dart.constFn(dart.definiteFunctionType(async.ZoneDelegate, [async._Zone])))();
-  let ZoneAndZoneDelegateAndZone__ToR = () => (ZoneAndZoneDelegateAndZone__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]])))();
-  let ObjectAndStackTraceTovoid = () => (ObjectAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])))();
-  let ZoneAndZoneDelegateAndZone__ToR$ = () => (ZoneAndZoneDelegateAndZone__ToR$ = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
-  let ZoneAndZoneDelegateAndZone__ToR$0 = () => (ZoneAndZoneDelegateAndZone__ToR$0 = dart.constFn(dart.definiteFunctionType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]])))();
-  let ZoneAndZoneDelegateAndZone__ToR$1 = () => (ZoneAndZoneDelegateAndZone__ToR$1 = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]])))();
-  let ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR = () => (ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR = dart.constFn(dart.definiteFunctionType(R => [async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
-  let ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T = () => (ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T = dart.constFn(dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])]])))();
-  let ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2 = () => (ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2 = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])]])))();
-  let ZoneAndZoneDelegateAndZone__ToAsyncError = () => (ZoneAndZoneDelegateAndZone__ToAsyncError = dart.constFn(dart.definiteFunctionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
-  let ZoneAndZoneDelegateAndZone__Tovoid = () => (ZoneAndZoneDelegateAndZone__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidTodynamic()])))();
-  let ZoneAndZoneDelegateAndZone__ToTimer = () => (ZoneAndZoneDelegateAndZone__ToTimer = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidTovoid()])))();
-  let ZoneAndZoneDelegateAndZone__ToTimer$ = () => (ZoneAndZoneDelegateAndZone__ToTimer$ = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerTovoid()])))();
-  let ZoneAndZoneDelegateAndZone__Tovoid$ = () => (ZoneAndZoneDelegateAndZone__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))();
-  let ZoneAndZoneDelegateAndZone__ToZone = () => (ZoneAndZoneDelegateAndZone__ToZone = dart.constFn(dart.definiteFunctionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])))();
-  let ZoneAndZoneDelegateAndZone__Todynamic = () => (ZoneAndZoneDelegateAndZone__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace])))();
-  let Fn__ToR = () => (Fn__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [dart.functionType(R, [])], {zoneValues: core.Map, zoneSpecification: async.ZoneSpecification, onError: core.Function}])))();
-  let ObjectTobool = () => (ObjectTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.Object])))();
-  let dynamicAnddynamicTobool = () => (dynamicAnddynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic])))();
-  let IterableAndListTovoid = () => (IterableAndListTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Iterable, core.List])))();
-  let _SplayTreeMapNodeTobool = () => (_SplayTreeMapNodeTobool = dart.constFn(dart.definiteFunctionType(core.bool, [collection._SplayTreeMapNode])))();
-  let dynamicAndFnTodynamic = () => (dynamicAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dynamicAnddynamicTodynamic()])))();
-  let Uint8ListAndintAndintTovoid$ = () => (Uint8ListAndintAndintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
-  let StringAndFnTodynamic = () => (StringAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, dynamicAnddynamicTodynamic()])))();
-  let EventSinkOfStringTo_LineSplitterEventSink = () => (EventSinkOfStringTo_LineSplitterEventSink = dart.constFn(dart.definiteFunctionType(convert._LineSplitterEventSink, [EventSinkOfString()])))();
-  let intAndintToint = () => (intAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int])))();
-  let dynamicAndintToint = () => (dynamicAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, core.int])))();
-  let intAndintTovoid = () => (intAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int])))();
-  let StringToint$ = () => (StringToint$ = dart.constFn(dart.definiteFunctionType(core.int, [core.String])))();
-  let intToString = () => (intToString = dart.constFn(dart.definiteFunctionType(core.String, [core.int])))();
-  let ObjectAndObjectTobool = () => (ObjectAndObjectTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.Object, core.Object])))();
-  let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
-  let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
-  let StringAndStringTovoid$ = () => (StringAndStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
-  let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
-  let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
-  let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
-  let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
-  let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
-  let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
-  let String__Tovoid$ = () => (String__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
-  let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
-  let StringAndMapTovoid = () => (StringAndMapTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Map])))();
-  let StringToServiceExtensionHandler = () => (StringToServiceExtensionHandler = dart.constFn(dart.definiteFunctionType(developer.ServiceExtensionHandler, [core.String])))();
-  let StringAndServiceExtensionHandlerTodynamic = () => (StringAndServiceExtensionHandlerTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, developer.ServiceExtensionHandler])))();
-  let VoidToUserTag = () => (VoidToUserTag = dart.constFn(dart.definiteFunctionType(developer.UserTag, [])))();
-  let MapToString = () => (MapToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Map])))();
-  let intAndintAndString__Tovoid = () => (intAndintAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String, core.String])))();
-  let intAndintAndString__Tovoid$ = () => (intAndintAndString__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String])))();
-  let intAndStringAndString__Tovoid = () => (intAndStringAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.String, core.String, core.String])))();
-  let UriTovoid = () => (UriTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Uri])))();
-  let SendPortTovoid = () => (SendPortTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [isolate.SendPort])))();
-  let SendPortAndboolTovoid = () => (SendPortAndboolTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [isolate.SendPort, core.bool])))();
-  let dynamicAndStringAndStringTodynamic = () => (dynamicAndStringAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, core.String])))();
-  let ListAndintAndintTo_BufferAndStart = () => (ListAndintAndintTo_BufferAndStart = dart.constFn(dart.definiteFunctionType(io._BufferAndStart, [core.List, core.int, core.int])))();
-  let intTovoid = () => (intTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int])))();
-  let DirectoryToFutureOfDirectory = () => (DirectoryToFutureOfDirectory = dart.constFn(dart.definiteFunctionType(FutureOfDirectory(), [io.Directory])))();
-  let boolToFutureOrOfDirectory = () => (boolToFutureOrOfDirectory = dart.constFn(dart.definiteFunctionType(FutureOrOfDirectory(), [core.bool])))();
-  let dynamicTo_Directory = () => (dynamicTo_Directory = dart.constFn(dart.definiteFunctionType(io._Directory, [dart.dynamic])))();
-  let dynamicToDirectory = () => (dynamicToDirectory = dart.constFn(dart.definiteFunctionType(io.Directory, [dart.dynamic])))();
-  let dynamicToFutureOrOfString = () => (dynamicToFutureOrOfString = dart.constFn(dart.definiteFunctionType(FutureOrOfString(), [dart.dynamic])))();
-  let dynamicToFutureOrOfbool = () => (dynamicToFutureOrOfbool = dart.constFn(dart.definiteFunctionType(FutureOrOfbool(), [dart.dynamic])))();
-  let dynamicToFutureOrOfint = () => (dynamicToFutureOrOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfint(), [dart.dynamic])))();
-  let ListOfintToNull = () => (ListOfintToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfint()])))();
-  let RandomAccessFileTovoid = () => (RandomAccessFileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.RandomAccessFile])))();
-  let RandomAccessFileToFutureOr = () => (RandomAccessFileToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RandomAccessFile])))();
-  let RandomAccessFileToNull = () => (RandomAccessFileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RandomAccessFile])))();
-  let RandomAccessFileToFutureOfRandomAccessFile = () => (RandomAccessFileToFutureOfRandomAccessFile = dart.constFn(dart.definiteFunctionType(FutureOfRandomAccessFile(), [io.RandomAccessFile])))();
-  let dynamicTo_File = () => (dynamicTo_File = dart.constFn(dart.definiteFunctionType(io._File, [dart.dynamic])))();
-  let FileSystemEntityTo_File = () => (FileSystemEntityTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.FileSystemEntity])))();
-  let dynamicToFile = () => (dynamicToFile = dart.constFn(dart.definiteFunctionType(io.File, [dart.dynamic])))();
-  let dynamicTo_RandomAccessFile = () => (dynamicTo_RandomAccessFile = dart.constFn(dart.definiteFunctionType(io._RandomAccessFile, [dart.dynamic])))();
-  let dynamicToDateTime = () => (dynamicToDateTime = dart.constFn(dart.definiteFunctionType(core.DateTime, [dart.dynamic])))();
-  let dynamicToFutureOfListOfint = () => (dynamicToFutureOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOfListOfint(), [dart.dynamic])))();
-  let intToFutureOfListOfint = () => (intToFutureOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOfListOfint(), [core.int])))();
-  let RandomAccessFileToFutureOfListOfint = () => (RandomAccessFileToFutureOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOfListOfint(), [io.RandomAccessFile])))();
-  let ListOfintToString = () => (ListOfintToString = dart.constFn(dart.definiteFunctionType(core.String, [ListOfint()])))();
-  let RandomAccessFileTo_File = () => (RandomAccessFileTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.RandomAccessFile])))();
-  let RandomAccessFileToObject = () => (RandomAccessFileToObject = dart.constFn(dart.definiteFunctionType(core.Object, [io.RandomAccessFile])))();
-  let RandomAccessFileToFutureOrOfFile = () => (RandomAccessFileToFutureOrOfFile = dart.constFn(dart.definiteFunctionType(FutureOrOfFile(), [io.RandomAccessFile])))();
-  let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
-  let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
-  let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
-  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
-  let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
-  let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
-  let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
-  let _HttpClientRequestToFutureOfHttpClientResponse = () => (_HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io._HttpClientRequest])))();
-  let dynamicToFutureOfHttpClientResponse = () => (dynamicToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [dart.dynamic])))();
-  let VoidToFutureOfHttpClientResponse = () => (VoidToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [])))();
-  let VoidToListOfString = () => (VoidToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [])))();
-  let _AuthenticationSchemeTo_Credentials = () => (_AuthenticationSchemeTo_Credentials = dart.constFn(dart.definiteFunctionType(io._Credentials, [io._AuthenticationScheme])))();
-  let _CredentialsTovoid = () => (_CredentialsTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._Credentials])))();
-  let _AuthenticationSchemeAndStringToFuture = () => (_AuthenticationSchemeAndStringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [io._AuthenticationScheme, core.String])))();
-  let dynamicToFutureOrOfHttpClientResponse = () => (dynamicToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [dart.dynamic])))();
-  let CookieToNull = () => (CookieToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Cookie])))();
-  let ListToFutureOrOfHttpClientResponse = () => (ListToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [core.List])))();
-  let HttpClientResponseTovoid = () => (HttpClientResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpClientResponse])))();
-  let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
-  let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
-  let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
-  let dynamic__ToNull$ = () => (dynamic__ToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
-  let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
-  let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
-  let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
-  let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
-  let X509CertificateTobool$ = () => (X509CertificateTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [io.X509Certificate])))();
-  let _HttpClientConnectionTo_ConnectionInfo = () => (_HttpClientConnectionTo_ConnectionInfo = dart.constFn(dart.definiteFunctionType(io._ConnectionInfo, [io._HttpClientConnection])))();
-  let dynamicToFutureOrOf_ConnectionInfo = () => (dynamicToFutureOrOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOrOf_ConnectionInfo(), [dart.dynamic])))();
-  let _ConnectionTargetTobool = () => (_ConnectionTargetTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io._ConnectionTarget])))();
-  let _ConnectionInfoTo_HttpClientRequest = () => (_ConnectionInfoTo_HttpClientRequest = dart.constFn(dart.definiteFunctionType(io._HttpClientRequest, [io._ConnectionInfo])))();
-  let _ConnectionInfoToFutureOrOf_HttpClientRequest = () => (_ConnectionInfoToFutureOrOf_HttpClientRequest = dart.constFn(dart.definiteFunctionType(FutureOrOf_HttpClientRequest(), [io._ConnectionInfo])))();
-  let _HttpClientRequestTo_HttpClientRequest = () => (_HttpClientRequestTo_HttpClientRequest = dart.constFn(dart.definiteFunctionType(io._HttpClientRequest, [io._HttpClientRequest])))();
-  let VoidTo_ConnectionTarget = () => (VoidTo_ConnectionTarget = dart.constFn(dart.definiteFunctionType(io._ConnectionTarget, [])))();
-  let dynamicToFutureOf_ConnectionInfo = () => (dynamicToFutureOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOf_ConnectionInfo(), [dart.dynamic])))();
-  let VoidToFutureOf_ConnectionInfo = () => (VoidToFutureOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOf_ConnectionInfo(), [])))();
-  let _SiteCredentialsAnd_CredentialsTo_SiteCredentials = () => (_SiteCredentialsAnd_CredentialsTo_SiteCredentials = dart.constFn(dart.definiteFunctionType(io._SiteCredentials, [io._SiteCredentials, io._Credentials])))();
-  let ServerSocketTo_HttpServer = () => (ServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.ServerSocket])))();
-  let SecureServerSocketTo_HttpServer = () => (SecureServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.SecureServerSocket])))();
-  let SocketToNull = () => (SocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Socket])))();
-  let _HttpConnectionToNull = () => (_HttpConnectionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpConnection])))();
-  let _HttpConnectionToMap = () => (_HttpConnectionToMap = dart.constFn(dart.definiteFunctionType(core.Map, [io._HttpConnection])))();
-  let _FileResourceInfoToMapOfString$String = () => (_FileResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._FileResourceInfo])))();
-  let _ProcessResourceInfoToMapOfString$String = () => (_ProcessResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._ProcessResourceInfo])))();
-  let _SocketResourceInfoToMapOfString$String = () => (_SocketResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._SocketResourceInfo])))();
-  let dynamicTo_Link = () => (dynamicTo_Link = dart.constFn(dart.definiteFunctionType(io._Link, [dart.dynamic])))();
-  let FileSystemEntityToFutureOfLink = () => (FileSystemEntityToFutureOfLink = dart.constFn(dart.definiteFunctionType(FutureOfLink(), [io.FileSystemEntity])))();
-  let FileSystemEntityTo_Link = () => (FileSystemEntityTo_Link = dart.constFn(dart.definiteFunctionType(io._Link, [io.FileSystemEntity])))();
-  let dynamicToLink = () => (dynamicToLink = dart.constFn(dart.definiteFunctionType(io.Link, [dart.dynamic])))();
-  let DurationTovoid = () => (DurationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Duration])))();
-  let RawSecureServerSocketToSecureServerSocket = () => (RawSecureServerSocketToSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.SecureServerSocket, [io.RawSecureServerSocket])))();
-  let RawSecureSocketToSecureSocket = () => (RawSecureSocketToSecureSocket = dart.constFn(dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])))();
-  let dynamicToFutureOfRawSecureSocket = () => (dynamicToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [dart.dynamic])))();
-  let RawServerSocketToRawSecureServerSocket = () => (RawServerSocketToRawSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket])))();
-  let RawSecureSocketToNull = () => (RawSecureSocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RawSecureSocket])))();
-  let RawSocketToFutureOfRawSecureSocket = () => (RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [io.RawSocket])))();
-  let _FilterStatusToNull = () => (_FilterStatusToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._FilterStatus])))();
-  let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
-  let dynamicTo_FilterStatus = () => (dynamicTo_FilterStatus = dart.constFn(dart.definiteFunctionType(io._FilterStatus, [dart.dynamic])))();
-  let ListOfintAndStringTovoid = () => (ListOfintAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint(), core.String])))();
-  let dynamicToStdioType = () => (dynamicToStdioType = dart.constFn(dart.definiteFunctionType(io.StdioType, [dart.dynamic])))();
-  let EventSinkTo_WebSocketProtocolTransformer = () => (EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketProtocolTransformer, [async.EventSink])))();
-  let WebSocketTovoid = () => (WebSocketTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.WebSocket])))();
-  let HttpRequestToNull = () => (HttpRequestToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.HttpRequest])))();
-  let SocketTo_WebSocketImpl = () => (SocketTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [io.Socket])))();
-  let StringToFuture = () => (StringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [core.String])))();
-  let EventSinkOfListOfintTo_WebSocketOutgoingTransformer = () => (EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [EventSinkOfListOfint()])))();
-  let dynamicTo_WebSocketImpl = () => (dynamicTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic])))();
-  let HttpClientResponseToFutureOfWebSocket = () => (HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.definiteFunctionType(FutureOfWebSocket(), [io.HttpClientResponse])))();
-  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
-  let HttpClientRequestToFutureOfHttpClientResponse = () => (HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io.HttpClientRequest])))();
-  let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
-  let ListToIsolate = () => (ListToIsolate = dart.constFn(dart.definiteFunctionType(isolate.Isolate, [core.List])))();
-  let dynamicTo_DartObject = () => (dynamicTo_DartObject = dart.constFn(dart.definiteFunctionType(js._DartObject, [dart.dynamic])))();
-  let dynamicAnddynamicAndFnToObject = () => (dynamicAnddynamicAndFnToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic, dart.dynamic, dynamicTodynamic()])))();
-  let FToF = () => (FToF = dart.constFn(dart.definiteFunctionType(F => [F, [F]])))();
-  let FunctionToFunction = () => (FunctionToFunction = dart.constFn(dart.definiteFunctionType(core.Function, [core.Function])))();
-  let FunctionAndListTodynamic = () => (FunctionAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.List])))();
-  let TAndTToT = () => (TAndTToT = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
-  let TAndTToT$ = () => (TAndTToT$ = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
-  let numAndnumTodouble = () => (numAndnumTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num, core.num])))();
-  let numAndnumTonum = () => (numAndnumTonum = dart.constFn(dart.definiteFunctionType(core.num, [core.num, core.num])))();
-  let numTodouble = () => (numTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num])))();
-  let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T => [T, [T]])))();
-  let LibraryMirrorTobool = () => (LibraryMirrorTobool = dart.constFn(dart.definiteFunctionType(core.bool, [mirrors.LibraryMirror])))();
-  let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
-  let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
-  let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
-  let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Event])))();
-  let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
-  let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
-  let NodeTobool$ = () => (NodeTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Node])))();
-  let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
-  let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
-  let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
-  let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileSystem])))();
-  let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileError])))();
-  let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Entry])))();
-  let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html$.CssStyleDeclaration, [dart.dynamic])))();
-  let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.CssStyleDeclaration])))();
-  let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Metadata])))();
-  let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
-  let ElementTobool$ = () => (ElementTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Element])))();
-  let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileWriter])))();
-  let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.File])))();
-  let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Geoposition])))();
-  let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.PositionError])))();
-  let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html$.HttpRequest])))();
-  let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.ProgressEvent])))();
-  let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
-  let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.MediaStream])))();
-  let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.NavigatorUserMediaError])))();
-  let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcSessionDescription])))();
-  let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcStatsResponse])))();
-  let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.OptionElement])))();
-  let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
-  let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.BeforeUnloadEvent])))();
-  let ElementTovoid$ = () => (ElementTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Element])))();
-  let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html$.CssClassSet, [html$.Element])))();
-  let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
-  let boolAndCssClassSetImplTobool = () => (boolAndCssClassSetImplTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.bool, html_common.CssClassSetImpl])))();
-  let SetOfStringTobool = () => (SetOfStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [SetOfString()])))();
-  let SetOfStringTovoid = () => (SetOfStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [SetOfString()])))();
-  let EventAndStringTobool = () => (EventAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Event, core.String])))();
-  let EventTodynamic = () => (EventTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html$.Event])))();
-  let KeyEventTobool = () => (KeyEventTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.KeyEvent])))();
-  let NodeValidatorTobool = () => (NodeValidatorTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.NodeValidator])))();
-  let NodeAndNodeToint = () => (NodeAndNodeToint = dart.constFn(dart.definiteFunctionType(core.int, [html$.Node, html$.Node])))();
-  let FromToTo = () => (FromToTo = dart.constFn(dart.definiteFunctionType((From, To) => [To, [From]])))();
-  let dynamicToWindowBase = () => (dynamicToWindowBase = dart.constFn(dart.definiteFunctionType(html$.WindowBase, [dart.dynamic])))();
-  let dynamicToEventTarget = () => (dynamicToEventTarget = dart.constFn(dart.definiteFunctionType(html$.EventTarget, [dart.dynamic])))();
-  let dynamicAnddynamicAnddynamic__Todynamic = () => (dynamicAnddynamicAnddynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
-  let dynamicAnddynamicAndString__Tovoid = () => (dynamicAnddynamicAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, core.String, core.Type, core.String])))();
-  let _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = () => (_wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = dart.constFn(dart.definiteFunctionType((A, R) => [html$._wrapZoneCallback$(A, R), [html$._wrapZoneCallback$(A, R)]])))();
-  let _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = () => (_wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = dart.constFn(dart.definiteFunctionType((A, B, R) => [html$._wrapZoneBinaryCallback$(A, B, R), [html$._wrapZoneBinaryCallback$(A, B, R)]])))();
-  let StringToElement = () => (StringToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [core.String])))();
-  let StringToElementListOfElement = () => (StringToElementListOfElement = dart.constFn(dart.definiteFunctionType(ElementListOfElement(), [core.String])))();
-  let NodeAndNodeTovoid = () => (NodeAndNodeTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Node, html$.Node])))();
-  let dynamicToImageData = () => (dynamicToImageData = dart.constFn(dart.definiteFunctionType(html$.ImageData, [dart.dynamic])))();
-  let ImageDataTodynamic = () => (ImageDataTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html$.ImageData])))();
-  let Map__Todynamic = () => (Map__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Map], [dynamicTovoid()])))();
-  let ListOfStringToList = () => (ListOfStringToList = dart.constFn(dart.definiteFunctionType(core.List, [ListOfString()])))();
-  let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
-  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
-  let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [html$.Node])))();
-  let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
-  dart.mixin = function(base, ...mixins) {
-    class Mixin extends base {}
-    for (let m of mixins) {
-      dart.copyProperties(Mixin.prototype, m.prototype);
+'use strict';
+const dart = Object.create(null);
+const dartx = Object.create(null);
+const _debugger = Object.create(null);
+const _foreign_helper = Object.create(null);
+const _interceptors = Object.create(null);
+const _internal = Object.create(null);
+const _isolate_helper = Object.create(null);
+const _js_embedded_names = Object.create(null);
+const _js_helper = Object.create(null);
+const _js_mirrors = Object.create(null);
+const _js_primitives = Object.create(null);
+const _metadata = Object.create(null);
+const _native_typed_data = Object.create(null);
+const async = Object.create(null);
+const collection = Object.create(null);
+const convert = Object.create(null);
+const core = Object.create(null);
+const developer = Object.create(null);
+const io = Object.create(null);
+const isolate = Object.create(null);
+const js = Object.create(null);
+const js_util = Object.create(null);
+const math = Object.create(null);
+const mirrors = Object.create(null);
+const typed_data = Object.create(null);
+const indexed_db = Object.create(null);
+const html$ = Object.create(null);
+const html_common = Object.create(null);
+const svg$ = Object.create(null);
+const web_audio = Object.create(null);
+const web_gl = Object.create(null);
+const web_sql = Object.create(null);
+let ListOfObject = () => (ListOfObject = dart.constFn(core.List$(core.Object)))();
+let JSArrayOfListOfObject = () => (JSArrayOfListOfObject = dart.constFn(_interceptors.JSArray$(ListOfObject())))();
+let JSArrayOfObject = () => (JSArrayOfObject = dart.constFn(_interceptors.JSArray$(core.Object)))();
+let MapOfSymbol$dynamic = () => (MapOfSymbol$dynamic = dart.constFn(core.Map$(core.Symbol, dart.dynamic)))();
+let MapOfString$_MethodStats = () => (MapOfString$_MethodStats = dart.constFn(core.Map$(core.String, dart._MethodStats)))();
+let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String)))();
+let SetOfNameValuePair = () => (SetOfNameValuePair = dart.constFn(core.Set$(_debugger.NameValuePair)))();
+let JSArrayOfNameValuePair = () => (JSArrayOfNameValuePair = dart.constFn(_interceptors.JSArray$(_debugger.NameValuePair)))();
+let MapOfdynamic$Object = () => (MapOfdynamic$Object = dart.constFn(core.Map$(dart.dynamic, core.Object)))();
+let JSArrayOfFormatter = () => (JSArrayOfFormatter = dart.constFn(_interceptors.JSArray$(_debugger.Formatter)))();
+let ListOfFormatter = () => (ListOfFormatter = dart.constFn(core.List$(_debugger.Formatter)))();
+let LinkedHashSetOfNameValuePair = () => (LinkedHashSetOfNameValuePair = dart.constFn(collection.LinkedHashSet$(_debugger.NameValuePair)))();
+let SetOfString = () => (SetOfString = dart.constFn(core.Set$(core.String)))();
+let HashMapOfString$String = () => (HashMapOfString$String = dart.constFn(collection.HashMap$(core.String, core.String)))();
+let LinkedHashMapOfString$Object = () => (LinkedHashMapOfString$Object = dart.constFn(collection.LinkedHashMap$(core.String, core.Object)))();
+let ListOfNameValuePair = () => (ListOfNameValuePair = dart.constFn(core.List$(_debugger.NameValuePair)))();
+let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
+let JSArrayOfJsonMLFormatter = () => (JSArrayOfJsonMLFormatter = dart.constFn(_interceptors.JSArray$(_debugger.JsonMLFormatter)))();
+let JSIndexable = () => (JSIndexable = dart.constFn(_interceptors.JSIndexable$()))();
+let JSArray = () => (JSArray = dart.constFn(_interceptors.JSArray$()))();
+let JSMutableArray = () => (JSMutableArray = dart.constFn(_interceptors.JSMutableArray$()))();
+let JSFixedArray = () => (JSFixedArray = dart.constFn(_interceptors.JSFixedArray$()))();
+let JSExtendableArray = () => (JSExtendableArray = dart.constFn(_interceptors.JSExtendableArray$()))();
+let JSUnmodifiableArray = () => (JSUnmodifiableArray = dart.constFn(_interceptors.JSUnmodifiableArray$()))();
+let ArrayIterator = () => (ArrayIterator = dart.constFn(_interceptors.ArrayIterator$()))();
+let JSIndexableOfString = () => (JSIndexableOfString = dart.constFn(_interceptors.JSIndexable$(core.String)))();
+let MatchToString = () => (MatchToString = dart.constFn(dart.functionType(core.String, [core.Match])))();
+let StringToString = () => (StringToString = dart.constFn(dart.functionType(core.String, [core.String])))();
+let ComparableOfnum = () => (ComparableOfnum = dart.constFn(core.Comparable$(core.num)))();
+let StringTonum = () => (StringTonum = dart.constFn(dart.functionType(core.num, [core.String])))();
+let StringTodouble = () => (StringTodouble = dart.constFn(dart.functionType(core.double, [core.String])))();
+let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.functionType(core.bool, [dart.dynamic])))();
+let ListMixin = () => (ListMixin = dart.constFn(collection.ListMixin$()))();
+let ListBase = () => (ListBase = dart.constFn(collection.ListBase$()))();
+let UnmodifiableListMixin = () => (UnmodifiableListMixin = dart.constFn(_internal.UnmodifiableListMixin$()))();
+let UnmodifiableListBase = () => (UnmodifiableListBase = dart.constFn(_internal.UnmodifiableListBase$()))();
+let StringToint = () => (StringToint = dart.constFn(dart.functionType(core.int, [core.String])))();
+let Iterable = () => (Iterable = dart.constFn(core.Iterable$()))();
+let ListIterable = () => (ListIterable = dart.constFn(_internal.ListIterable$()))();
+let SubListIterable = () => (SubListIterable = dart.constFn(_internal.SubListIterable$()))();
+let ListIterator = () => (ListIterator = dart.constFn(_internal.ListIterator$()))();
+let _Transformation = () => (_Transformation = dart.constFn(_internal._Transformation$()))();
+let MappedIterable = () => (MappedIterable = dart.constFn(_internal.MappedIterable$()))();
+let EfficientLengthMappedIterable = () => (EfficientLengthMappedIterable = dart.constFn(_internal.EfficientLengthMappedIterable$()))();
+let Iterator = () => (Iterator = dart.constFn(core.Iterator$()))();
+let MappedIterator = () => (MappedIterator = dart.constFn(_internal.MappedIterator$()))();
+let MappedListIterable = () => (MappedListIterable = dart.constFn(_internal.MappedListIterable$()))();
+let _ElementPredicate = () => (_ElementPredicate = dart.constFn(_internal._ElementPredicate$()))();
+let WhereIterable = () => (WhereIterable = dart.constFn(_internal.WhereIterable$()))();
+let WhereIterator = () => (WhereIterator = dart.constFn(_internal.WhereIterator$()))();
+let _ExpandFunction = () => (_ExpandFunction = dart.constFn(_internal._ExpandFunction$()))();
+let ExpandIterable = () => (ExpandIterable = dart.constFn(_internal.ExpandIterable$()))();
+let ExpandIterator = () => (ExpandIterator = dart.constFn(_internal.ExpandIterator$()))();
+let TakeIterable = () => (TakeIterable = dart.constFn(_internal.TakeIterable$()))();
+let EfficientLengthTakeIterable = () => (EfficientLengthTakeIterable = dart.constFn(_internal.EfficientLengthTakeIterable$()))();
+let TakeIterator = () => (TakeIterator = dart.constFn(_internal.TakeIterator$()))();
+let TakeWhileIterable = () => (TakeWhileIterable = dart.constFn(_internal.TakeWhileIterable$()))();
+let TakeWhileIterator = () => (TakeWhileIterator = dart.constFn(_internal.TakeWhileIterator$()))();
+let SkipIterable = () => (SkipIterable = dart.constFn(_internal.SkipIterable$()))();
+let EfficientLengthSkipIterable = () => (EfficientLengthSkipIterable = dart.constFn(_internal.EfficientLengthSkipIterable$()))();
+let SkipIterator = () => (SkipIterator = dart.constFn(_internal.SkipIterator$()))();
+let SkipWhileIterable = () => (SkipWhileIterable = dart.constFn(_internal.SkipWhileIterable$()))();
+let SkipWhileIterator = () => (SkipWhileIterator = dart.constFn(_internal.SkipWhileIterator$()))();
+let EmptyIterable = () => (EmptyIterable = dart.constFn(_internal.EmptyIterable$()))();
+let EmptyIterator = () => (EmptyIterator = dart.constFn(_internal.EmptyIterator$()))();
+let FixedLengthListMixin = () => (FixedLengthListMixin = dart.constFn(_internal.FixedLengthListMixin$()))();
+let FixedLengthListBase = () => (FixedLengthListBase = dart.constFn(_internal.FixedLengthListBase$()))();
+let ListMapView = () => (ListMapView = dart.constFn(_internal.ListMapView$()))();
+let ReversedListIterable = () => (ReversedListIterable = dart.constFn(_internal.ReversedListIterable$()))();
+let MapOfint$_IsolateContext = () => (MapOfint$_IsolateContext = dart.constFn(core.Map$(core.int, _isolate_helper._IsolateContext)))();
+let MapOfint$dynamic = () => (MapOfint$dynamic = dart.constFn(core.Map$(core.int, dart.dynamic)))();
+let MapOfint$RawReceivePortImpl = () => (MapOfint$RawReceivePortImpl = dart.constFn(core.Map$(core.int, _isolate_helper.RawReceivePortImpl)))();
+let SetOfint = () => (SetOfint = dart.constFn(core.Set$(core.int)))();
+let JSArrayOf_IsolateEvent = () => (JSArrayOf_IsolateEvent = dart.constFn(_interceptors.JSArray$(_isolate_helper._IsolateEvent)))();
+let SetOfCapability = () => (SetOfCapability = dart.constFn(core.Set$(isolate.Capability)))();
+let SetOfSendPort = () => (SetOfSendPort = dart.constFn(core.Set$(isolate.SendPort)))();
+let ListOf_IsolateEvent = () => (ListOf_IsolateEvent = dart.constFn(core.List$(_isolate_helper._IsolateEvent)))();
+let QueueOf_IsolateEvent = () => (QueueOf_IsolateEvent = dart.constFn(collection.Queue$(_isolate_helper._IsolateEvent)))();
+let CompleterOfList = () => (CompleterOfList = dart.constFn(async.Completer$(core.List)))();
+let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.functionType(dart.void, [dart.dynamic])))();
+let StringTovoid = () => (StringTovoid = dart.constFn(dart.functionType(dart.void, [core.String])))();
+let ExpandoOfint = () => (ExpandoOfint = dart.constFn(core.Expando$(core.int)))();
+let _FutureOfString = () => (_FutureOfString = dart.constFn(async._Future$(core.String)))();
+let _FutureOfbool = () => (_FutureOfbool = dart.constFn(async._Future$(core.bool)))();
+let _FutureOfint = () => (_FutureOfint = dart.constFn(async._Future$(core.int)))();
+let VoidToObject = () => (VoidToObject = dart.constFn(dart.functionType(core.Object, [])))();
+let Stream = () => (Stream = dart.constFn(async.Stream$()))();
+let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.functionType(dart.void, [])))();
+let TimerTovoid = () => (TimerTovoid = dart.constFn(dart.functionType(dart.void, [async.Timer])))();
+let MapOfdynamic$int = () => (MapOfdynamic$int = dart.constFn(core.Map$(dart.dynamic, core.int)))();
+let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.functionType(dart.dynamic, [dart.dynamic])))();
+let InternalMap = () => (InternalMap = dart.constFn(_js_helper.InternalMap$()))();
+let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))();
+let ListOfint = () => (ListOfint = dart.constFn(core.List$(core.int)))();
+let SyncIterator = () => (SyncIterator = dart.constFn(_js_helper.SyncIterator$()))();
+let IterableBase = () => (IterableBase = dart.constFn(collection.IterableBase$()))();
+let SyncIterable = () => (SyncIterable = dart.constFn(_js_helper.SyncIterable$()))();
+let JsLinkedHashMap = () => (JsLinkedHashMap = dart.constFn(_js_helper.JsLinkedHashMap$()))();
+let Es6LinkedHashMap = () => (Es6LinkedHashMap = dart.constFn(_js_helper.Es6LinkedHashMap$()))();
+let LinkedHashMapCell = () => (LinkedHashMapCell = dart.constFn(_js_helper.LinkedHashMapCell$()))();
+let LinkedHashMapKeyIterable = () => (LinkedHashMapKeyIterable = dart.constFn(_js_helper.LinkedHashMapKeyIterable$()))();
+let LinkedHashMapKeyIterator = () => (LinkedHashMapKeyIterator = dart.constFn(_js_helper.LinkedHashMapKeyIterator$()))();
+let IteratorOfMatch = () => (IteratorOfMatch = dart.constFn(core.Iterator$(core.Match)))();
+let IterableOfMatch = () => (IterableOfMatch = dart.constFn(core.Iterable$(core.Match)))();
+let _Lazy = () => (_Lazy = dart.constFn(_js_mirrors._Lazy$()))();
+let ListOfSymbol = () => (ListOfSymbol = dart.constFn(core.List$(core.Symbol)))();
+let ListOfInstanceMirror = () => (ListOfInstanceMirror = dart.constFn(core.List$(mirrors.InstanceMirror)))();
+let ListOfCombinatorMirror = () => (ListOfCombinatorMirror = dart.constFn(core.List$(mirrors.CombinatorMirror)))();
+let MapOfSymbol$DeclarationMirror = () => (MapOfSymbol$DeclarationMirror = dart.constFn(core.Map$(core.Symbol, mirrors.DeclarationMirror)))();
+let ListOfTypeMirror = () => (ListOfTypeMirror = dart.constFn(core.List$(mirrors.TypeMirror)))();
+let JSArrayOfClassMirror = () => (JSArrayOfClassMirror = dart.constFn(_interceptors.JSArray$(mirrors.ClassMirror)))();
+let ListOfClassMirror = () => (ListOfClassMirror = dart.constFn(core.List$(mirrors.ClassMirror)))();
+let ListOfTypeVariableMirror = () => (ListOfTypeVariableMirror = dart.constFn(core.List$(mirrors.TypeVariableMirror)))();
+let MapOfSymbol$MethodMirror = () => (MapOfSymbol$MethodMirror = dart.constFn(core.Map$(core.Symbol, mirrors.MethodMirror)))();
+let JSArrayOfType = () => (JSArrayOfType = dart.constFn(_interceptors.JSArray$(core.Type)))();
+let ListOfParameterMirror = () => (ListOfParameterMirror = dart.constFn(core.List$(mirrors.ParameterMirror)))();
+let ListOfFloat32x4 = () => (ListOfFloat32x4 = dart.constFn(core.List$(typed_data.Float32x4)))();
+let ListOfInt32x4 = () => (ListOfInt32x4 = dart.constFn(core.List$(typed_data.Int32x4)))();
+let ListOfFloat64x2 = () => (ListOfFloat64x2 = dart.constFn(core.List$(typed_data.Float64x2)))();
+let IterableOfdouble = () => (IterableOfdouble = dart.constFn(core.Iterable$(core.double)))();
+let IterableOfint = () => (IterableOfint = dart.constFn(core.Iterable$(core.int)))();
+let ListOfdouble = () => (ListOfdouble = dart.constFn(core.List$(core.double)))();
+let ZoneBinaryCallbackOfdynamic$dynamic$StackTrace = () => (ZoneBinaryCallbackOfdynamic$dynamic$StackTrace = dart.constFn(async.ZoneBinaryCallback$(dart.dynamic, dart.dynamic, core.StackTrace)))();
+let _StreamImpl = () => (_StreamImpl = dart.constFn(async._StreamImpl$()))();
+let _ControllerStream = () => (_ControllerStream = dart.constFn(async._ControllerStream$()))();
+let _BroadcastStream = () => (_BroadcastStream = dart.constFn(async._BroadcastStream$()))();
+let ZoneBinaryCallbackOfdynamic$Object$StackTrace = () => (ZoneBinaryCallbackOfdynamic$Object$StackTrace = dart.constFn(async.ZoneBinaryCallback$(dart.dynamic, core.Object, core.StackTrace)))();
+let _BufferingStreamSubscription = () => (_BufferingStreamSubscription = dart.constFn(async._BufferingStreamSubscription$()))();
+let _ControllerSubscription = () => (_ControllerSubscription = dart.constFn(async._ControllerSubscription$()))();
+let _BroadcastSubscription = () => (_BroadcastSubscription = dart.constFn(async._BroadcastSubscription$()))();
+let _BroadcastStreamController = () => (_BroadcastStreamController = dart.constFn(async._BroadcastStreamController$()))();
+let _SyncBroadcastStreamController = () => (_SyncBroadcastStreamController = dart.constFn(async._SyncBroadcastStreamController$()))();
+let _AsyncBroadcastStreamController = () => (_AsyncBroadcastStreamController = dart.constFn(async._AsyncBroadcastStreamController$()))();
+let _AsBroadcastStreamController = () => (_AsBroadcastStreamController = dart.constFn(async._AsBroadcastStreamController$()))();
+let _DoneSubscription = () => (_DoneSubscription = dart.constFn(async._DoneSubscription$()))();
+let FutureOr = () => (FutureOr = dart.constFn(async.FutureOr$()))();
+let dynamicToFutureOr = () => (dynamicToFutureOr = dart.constFn(dart.functionType(async.FutureOr, [dart.dynamic])))();
+let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.functionType(dart.dynamic, [])))();
+let Future = () => (Future = dart.constFn(async.Future$()))();
+let Completer = () => (Completer = dart.constFn(async.Completer$()))();
+let _FutureOnValue = () => (_FutureOnValue = dart.constFn(async._FutureOnValue$()))();
+let _Completer = () => (_Completer = dart.constFn(async._Completer$()))();
+let _AsyncCompleter = () => (_AsyncCompleter = dart.constFn(async._AsyncCompleter$()))();
+let _SyncCompleter = () => (_SyncCompleter = dart.constFn(async._SyncCompleter$()))();
+let ZoneBinaryCallbackOfObject$Object$StackTrace = () => (ZoneBinaryCallbackOfObject$Object$StackTrace = dart.constFn(async.ZoneBinaryCallback$(core.Object, core.Object, core.StackTrace)))();
+let _FutureListener = () => (_FutureListener = dart.constFn(async._FutureListener$()))();
+let _Future = () => (_Future = dart.constFn(async._Future$()))();
+let StreamSubscription = () => (StreamSubscription = dart.constFn(async.StreamSubscription$()))();
+let EventSink = () => (EventSink = dart.constFn(async.EventSink$()))();
+let StreamView = () => (StreamView = dart.constFn(async.StreamView$()))();
+let StreamConsumer = () => (StreamConsumer = dart.constFn(async.StreamConsumer$()))();
+let StreamSink = () => (StreamSink = dart.constFn(async.StreamSink$()))();
+let StreamTransformer = () => (StreamTransformer = dart.constFn(async.StreamTransformer$()))();
+let StreamIterator = () => (StreamIterator = dart.constFn(async.StreamIterator$()))();
+let _ControllerEventSinkWrapper = () => (_ControllerEventSinkWrapper = dart.constFn(async._ControllerEventSinkWrapper$()))();
+let StreamController = () => (StreamController = dart.constFn(async.StreamController$()))();
+let SynchronousStreamController = () => (SynchronousStreamController = dart.constFn(async.SynchronousStreamController$()))();
+let _StreamControllerLifecycle = () => (_StreamControllerLifecycle = dart.constFn(async._StreamControllerLifecycle$()))();
+let _StreamController = () => (_StreamController = dart.constFn(async._StreamController$()))();
+let _SyncStreamControllerDispatch = () => (_SyncStreamControllerDispatch = dart.constFn(async._SyncStreamControllerDispatch$()))();
+let _AsyncStreamControllerDispatch = () => (_AsyncStreamControllerDispatch = dart.constFn(async._AsyncStreamControllerDispatch$()))();
+let _AsyncStreamController = () => (_AsyncStreamController = dart.constFn(async._AsyncStreamController$()))();
+let _SyncStreamController = () => (_SyncStreamController = dart.constFn(async._SyncStreamController$()))();
+let _StreamSinkWrapper = () => (_StreamSinkWrapper = dart.constFn(async._StreamSinkWrapper$()))();
+let _AddStreamState = () => (_AddStreamState = dart.constFn(async._AddStreamState$()))();
+let _StreamControllerAddStreamState = () => (_StreamControllerAddStreamState = dart.constFn(async._StreamControllerAddStreamState$()))();
+let _EventSink = () => (_EventSink = dart.constFn(async._EventSink$()))();
+let _EventDispatch = () => (_EventDispatch = dart.constFn(async._EventDispatch$()))();
+let _EventGenerator = () => (_EventGenerator = dart.constFn(async._EventGenerator$()))();
+let _GeneratedStreamImpl = () => (_GeneratedStreamImpl = dart.constFn(async._GeneratedStreamImpl$()))();
+let _PendingEvents = () => (_PendingEvents = dart.constFn(async._PendingEvents$()))();
+let _IterablePendingEvents = () => (_IterablePendingEvents = dart.constFn(async._IterablePendingEvents$()))();
+let _DataHandler = () => (_DataHandler = dart.constFn(async._DataHandler$()))();
+let _DelayedEvent = () => (_DelayedEvent = dart.constFn(async._DelayedEvent$()))();
+let _DelayedData = () => (_DelayedData = dart.constFn(async._DelayedData$()))();
+let _StreamImplEvents = () => (_StreamImplEvents = dart.constFn(async._StreamImplEvents$()))();
+let _BroadcastCallback = () => (_BroadcastCallback = dart.constFn(async._BroadcastCallback$()))();
+let _DoneStreamSubscription = () => (_DoneStreamSubscription = dart.constFn(async._DoneStreamSubscription$()))();
+let _AsBroadcastStream = () => (_AsBroadcastStream = dart.constFn(async._AsBroadcastStream$()))();
+let _BroadcastSubscriptionWrapper = () => (_BroadcastSubscriptionWrapper = dart.constFn(async._BroadcastSubscriptionWrapper$()))();
+let _StreamIteratorImpl = () => (_StreamIteratorImpl = dart.constFn(async._StreamIteratorImpl$()))();
+let _EmptyStream = () => (_EmptyStream = dart.constFn(async._EmptyStream$()))();
+let _ForwardingStream = () => (_ForwardingStream = dart.constFn(async._ForwardingStream$()))();
+let _ForwardingStreamSubscription = () => (_ForwardingStreamSubscription = dart.constFn(async._ForwardingStreamSubscription$()))();
+let _Predicate = () => (_Predicate = dart.constFn(async._Predicate$()))();
+let _WhereStream = () => (_WhereStream = dart.constFn(async._WhereStream$()))();
+let _Transformation$ = () => (_Transformation$ = dart.constFn(async._Transformation$()))();
+let _MapStream = () => (_MapStream = dart.constFn(async._MapStream$()))();
+let _ExpandStream = () => (_ExpandStream = dart.constFn(async._ExpandStream$()))();
+let _HandleErrorStream = () => (_HandleErrorStream = dart.constFn(async._HandleErrorStream$()))();
+let _TakeStream = () => (_TakeStream = dart.constFn(async._TakeStream$()))();
+let _StateStreamSubscription = () => (_StateStreamSubscription = dart.constFn(async._StateStreamSubscription$()))();
+let _TakeWhileStream = () => (_TakeWhileStream = dart.constFn(async._TakeWhileStream$()))();
+let _SkipStream = () => (_SkipStream = dart.constFn(async._SkipStream$()))();
+let _SkipWhileStream = () => (_SkipWhileStream = dart.constFn(async._SkipWhileStream$()))();
+let _Equality = () => (_Equality = dart.constFn(async._Equality$()))();
+let _DistinctStream = () => (_DistinctStream = dart.constFn(async._DistinctStream$()))();
+let _EventSinkWrapper = () => (_EventSinkWrapper = dart.constFn(async._EventSinkWrapper$()))();
+let _SinkTransformerStreamSubscription = () => (_SinkTransformerStreamSubscription = dart.constFn(async._SinkTransformerStreamSubscription$()))();
+let _SinkMapper = () => (_SinkMapper = dart.constFn(async._SinkMapper$()))();
+let _StreamSinkTransformer = () => (_StreamSinkTransformer = dart.constFn(async._StreamSinkTransformer$()))();
+let _BoundSinkStream = () => (_BoundSinkStream = dart.constFn(async._BoundSinkStream$()))();
+let _TransformDataHandler = () => (_TransformDataHandler = dart.constFn(async._TransformDataHandler$()))();
+let _TransformErrorHandler = () => (_TransformErrorHandler = dart.constFn(async._TransformErrorHandler$()))();
+let _TransformDoneHandler = () => (_TransformDoneHandler = dart.constFn(async._TransformDoneHandler$()))();
+let _HandlerEventSink = () => (_HandlerEventSink = dart.constFn(async._HandlerEventSink$()))();
+let _StreamHandlerTransformer = () => (_StreamHandlerTransformer = dart.constFn(async._StreamHandlerTransformer$()))();
+let _SubscriptionTransformer = () => (_SubscriptionTransformer = dart.constFn(async._SubscriptionTransformer$()))();
+let _StreamSubscriptionTransformer = () => (_StreamSubscriptionTransformer = dart.constFn(async._StreamSubscriptionTransformer$()))();
+let _BoundSubscriptionStream = () => (_BoundSubscriptionStream = dart.constFn(async._BoundSubscriptionStream$()))();
+let ZoneCallback = () => (ZoneCallback = dart.constFn(async.ZoneCallback$()))();
+let ZoneUnaryCallback = () => (ZoneUnaryCallback = dart.constFn(async.ZoneUnaryCallback$()))();
+let ZoneBinaryCallback = () => (ZoneBinaryCallback = dart.constFn(async.ZoneBinaryCallback$()))();
+let HandleUncaughtErrorHandler = () => (HandleUncaughtErrorHandler = dart.constFn(async.HandleUncaughtErrorHandler$()))();
+let RunHandler = () => (RunHandler = dart.constFn(async.RunHandler$()))();
+let RunUnaryHandler = () => (RunUnaryHandler = dart.constFn(async.RunUnaryHandler$()))();
+let RunBinaryHandler = () => (RunBinaryHandler = dart.constFn(async.RunBinaryHandler$()))();
+let RegisterCallbackHandler = () => (RegisterCallbackHandler = dart.constFn(async.RegisterCallbackHandler$()))();
+let RegisterUnaryCallbackHandler = () => (RegisterUnaryCallbackHandler = dart.constFn(async.RegisterUnaryCallbackHandler$()))();
+let RegisterBinaryCallbackHandler = () => (RegisterBinaryCallbackHandler = dart.constFn(async.RegisterBinaryCallbackHandler$()))();
+let _ZoneFunction = () => (_ZoneFunction = dart.constFn(async._ZoneFunction$()))();
+let _ZoneFunctionOfRunHandler = () => (_ZoneFunctionOfRunHandler = dart.constFn(async._ZoneFunction$(async.RunHandler)))();
+let _ZoneFunctionOfRunUnaryHandler = () => (_ZoneFunctionOfRunUnaryHandler = dart.constFn(async._ZoneFunction$(async.RunUnaryHandler)))();
+let _ZoneFunctionOfRunBinaryHandler = () => (_ZoneFunctionOfRunBinaryHandler = dart.constFn(async._ZoneFunction$(async.RunBinaryHandler)))();
+let _ZoneFunctionOfRegisterCallbackHandler = () => (_ZoneFunctionOfRegisterCallbackHandler = dart.constFn(async._ZoneFunction$(async.RegisterCallbackHandler)))();
+let _ZoneFunctionOfRegisterUnaryCallbackHandler = () => (_ZoneFunctionOfRegisterUnaryCallbackHandler = dart.constFn(async._ZoneFunction$(async.RegisterUnaryCallbackHandler)))();
+let _ZoneFunctionOfRegisterBinaryCallbackHandler = () => (_ZoneFunctionOfRegisterBinaryCallbackHandler = dart.constFn(async._ZoneFunction$(async.RegisterBinaryCallbackHandler)))();
+let _ZoneFunctionOfErrorCallbackHandler = () => (_ZoneFunctionOfErrorCallbackHandler = dart.constFn(async._ZoneFunction$(async.ErrorCallbackHandler)))();
+let _ZoneFunctionOfScheduleMicrotaskHandler = () => (_ZoneFunctionOfScheduleMicrotaskHandler = dart.constFn(async._ZoneFunction$(async.ScheduleMicrotaskHandler)))();
+let _ZoneFunctionOfCreateTimerHandler = () => (_ZoneFunctionOfCreateTimerHandler = dart.constFn(async._ZoneFunction$(async.CreateTimerHandler)))();
+let _ZoneFunctionOfCreatePeriodicTimerHandler = () => (_ZoneFunctionOfCreatePeriodicTimerHandler = dart.constFn(async._ZoneFunction$(async.CreatePeriodicTimerHandler)))();
+let _ZoneFunctionOfPrintHandler = () => (_ZoneFunctionOfPrintHandler = dart.constFn(async._ZoneFunction$(async.PrintHandler)))();
+let _ZoneFunctionOfForkHandler = () => (_ZoneFunctionOfForkHandler = dart.constFn(async._ZoneFunction$(async.ForkHandler)))();
+let _ZoneFunctionOfHandleUncaughtErrorHandler = () => (_ZoneFunctionOfHandleUncaughtErrorHandler = dart.constFn(async._ZoneFunction$(async.HandleUncaughtErrorHandler)))();
+let _HashMap = () => (_HashMap = dart.constFn(collection._HashMap$()))();
+let _IdentityHashMap = () => (_IdentityHashMap = dart.constFn(collection._IdentityHashMap$()))();
+let _PredicateOfObject = () => (_PredicateOfObject = dart.constFn(collection._Predicate$(core.Object)))();
+let _CustomHashMap = () => (_CustomHashMap = dart.constFn(collection._CustomHashMap$()))();
+let _HashMapKeyIterable = () => (_HashMapKeyIterable = dart.constFn(collection._HashMapKeyIterable$()))();
+let _HashMapKeyIterator = () => (_HashMapKeyIterator = dart.constFn(collection._HashMapKeyIterator$()))();
+let _LinkedIdentityHashMap = () => (_LinkedIdentityHashMap = dart.constFn(collection._LinkedIdentityHashMap$()))();
+let _Es6LinkedIdentityHashMap = () => (_Es6LinkedIdentityHashMap = dart.constFn(collection._Es6LinkedIdentityHashMap$()))();
+let _Es6MapIterable = () => (_Es6MapIterable = dart.constFn(collection._Es6MapIterable$()))();
+let _Es6MapIterator = () => (_Es6MapIterator = dart.constFn(collection._Es6MapIterator$()))();
+let _LinkedCustomHashMap = () => (_LinkedCustomHashMap = dart.constFn(collection._LinkedCustomHashMap$()))();
+let IterableOfObject = () => (IterableOfObject = dart.constFn(core.Iterable$(core.Object)))();
+let SetOfObject = () => (SetOfObject = dart.constFn(core.Set$(core.Object)))();
+let SetMixin = () => (SetMixin = dart.constFn(collection.SetMixin$()))();
+let SetBase = () => (SetBase = dart.constFn(collection.SetBase$()))();
+let _HashSetBase = () => (_HashSetBase = dart.constFn(collection._HashSetBase$()))();
+let _HashSet = () => (_HashSet = dart.constFn(collection._HashSet$()))();
+let _IdentityHashSet = () => (_IdentityHashSet = dart.constFn(collection._IdentityHashSet$()))();
+let _CustomHashSet = () => (_CustomHashSet = dart.constFn(collection._CustomHashSet$()))();
+let _HashSetIterator = () => (_HashSetIterator = dart.constFn(collection._HashSetIterator$()))();
+let _LinkedHashSet = () => (_LinkedHashSet = dart.constFn(collection._LinkedHashSet$()))();
+let _LinkedIdentityHashSet = () => (_LinkedIdentityHashSet = dart.constFn(collection._LinkedIdentityHashSet$()))();
+let _LinkedCustomHashSet = () => (_LinkedCustomHashSet = dart.constFn(collection._LinkedCustomHashSet$()))();
+let _LinkedHashSetCell = () => (_LinkedHashSetCell = dart.constFn(collection._LinkedHashSetCell$()))();
+let _LinkedHashSetIterator = () => (_LinkedHashSetIterator = dart.constFn(collection._LinkedHashSetIterator$()))();
+let UnmodifiableListView = () => (UnmodifiableListView = dart.constFn(collection.UnmodifiableListView$()))();
+let _Equality$ = () => (_Equality$ = dart.constFn(collection._Equality$()))();
+let _Hasher = () => (_Hasher = dart.constFn(collection._Hasher$()))();
+let HashMap = () => (HashMap = dart.constFn(collection.HashMap$()))();
+let HashSet = () => (HashSet = dart.constFn(collection.HashSet$()))();
+let IterableMixin = () => (IterableMixin = dart.constFn(collection.IterableMixin$()))();
+let HasNextIterator = () => (HasNextIterator = dart.constFn(collection.HasNextIterator$()))();
+let LinkedHashMap = () => (LinkedHashMap = dart.constFn(collection.LinkedHashMap$()))();
+let LinkedHashSet = () => (LinkedHashSet = dart.constFn(collection.LinkedHashSet$()))();
+let LinkedList = () => (LinkedList = dart.constFn(collection.LinkedList$()))();
+let _LinkedListIterator = () => (_LinkedListIterator = dart.constFn(collection._LinkedListIterator$()))();
+let LinkedListEntry = () => (LinkedListEntry = dart.constFn(collection.LinkedListEntry$()))();
+let MapMixin = () => (MapMixin = dart.constFn(collection.MapMixin$()))();
+let MapBase = () => (MapBase = dart.constFn(collection.MapBase$()))();
+let _UnmodifiableMapMixin = () => (_UnmodifiableMapMixin = dart.constFn(collection._UnmodifiableMapMixin$()))();
+let UnmodifiableMapBase = () => (UnmodifiableMapBase = dart.constFn(collection.UnmodifiableMapBase$()))();
+let _MapBaseValueIterable = () => (_MapBaseValueIterable = dart.constFn(collection._MapBaseValueIterable$()))();
+let _MapBaseValueIterator = () => (_MapBaseValueIterator = dart.constFn(collection._MapBaseValueIterator$()))();
+let MapView = () => (MapView = dart.constFn(collection.MapView$()))();
+let UnmodifiableMapView = () => (UnmodifiableMapView = dart.constFn(collection.UnmodifiableMapView$()))();
+let dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.functionType(dart.void, [dart.dynamic, dart.dynamic])))();
+let Queue = () => (Queue = dart.constFn(collection.Queue$()))();
+let _DoubleLink = () => (_DoubleLink = dart.constFn(collection._DoubleLink$()))();
+let DoubleLinkedQueueEntry = () => (DoubleLinkedQueueEntry = dart.constFn(collection.DoubleLinkedQueueEntry$()))();
+let _UserDoubleLinkedQueueEntry = () => (_UserDoubleLinkedQueueEntry = dart.constFn(collection._UserDoubleLinkedQueueEntry$()))();
+let _DoubleLinkedQueueEntry = () => (_DoubleLinkedQueueEntry = dart.constFn(collection._DoubleLinkedQueueEntry$()))();
+let _DoubleLinkedQueueElement = () => (_DoubleLinkedQueueElement = dart.constFn(collection._DoubleLinkedQueueElement$()))();
+let _DoubleLinkedQueueSentinel = () => (_DoubleLinkedQueueSentinel = dart.constFn(collection._DoubleLinkedQueueSentinel$()))();
+let DoubleLinkedQueue = () => (DoubleLinkedQueue = dart.constFn(collection.DoubleLinkedQueue$()))();
+let _DoubleLinkedQueueIterator = () => (_DoubleLinkedQueueIterator = dart.constFn(collection._DoubleLinkedQueueIterator$()))();
+let ListQueue = () => (ListQueue = dart.constFn(collection.ListQueue$()))();
+let _ListQueueIterator = () => (_ListQueueIterator = dart.constFn(collection._ListQueueIterator$()))();
+let _Predicate$ = () => (_Predicate$ = dart.constFn(collection._Predicate$()))();
+let _SplayTreeNode = () => (_SplayTreeNode = dart.constFn(collection._SplayTreeNode$()))();
+let _SplayTreeMapNode = () => (_SplayTreeMapNode = dart.constFn(collection._SplayTreeMapNode$()))();
+let _SplayTree = () => (_SplayTree = dart.constFn(collection._SplayTree$()))();
+let _TypeTest = () => (_TypeTest = dart.constFn(collection._TypeTest$()))();
+let SplayTreeMap = () => (SplayTreeMap = dart.constFn(collection.SplayTreeMap$()))();
+let _SplayTreeIterator = () => (_SplayTreeIterator = dart.constFn(collection._SplayTreeIterator$()))();
+let _SplayTreeKeyIterable = () => (_SplayTreeKeyIterable = dart.constFn(collection._SplayTreeKeyIterable$()))();
+let _SplayTreeValueIterable = () => (_SplayTreeValueIterable = dart.constFn(collection._SplayTreeValueIterable$()))();
+let _SplayTreeKeyIterator = () => (_SplayTreeKeyIterator = dart.constFn(collection._SplayTreeKeyIterator$()))();
+let _SplayTreeValueIterator = () => (_SplayTreeValueIterator = dart.constFn(collection._SplayTreeValueIterator$()))();
+let _SplayTreeNodeIterator = () => (_SplayTreeNodeIterator = dart.constFn(collection._SplayTreeNodeIterator$()))();
+let SplayTreeSet = () => (SplayTreeSet = dart.constFn(collection.SplayTreeSet$()))();
+let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
+let MappedIterableOfString$dynamic = () => (MappedIterableOfString$dynamic = dart.constFn(_internal.MappedIterable$(core.String, dart.dynamic)))();
+let SinkOfObject = () => (SinkOfObject = dart.constFn(core.Sink$(core.Object)))();
+let Codec = () => (Codec = dart.constFn(convert.Codec$()))();
+let ComparableOfString = () => (ComparableOfString = dart.constFn(core.Comparable$(core.String)))();
+let List = () => (List = dart.constFn(core.List$()))();
+let StreamOfListOfint = () => (StreamOfListOfint = dart.constFn(async.Stream$(ListOfint())))();
+let MapOfString$Encoding = () => (MapOfString$Encoding = dart.constFn(core.Map$(core.String, convert.Encoding)))();
+let Converter = () => (Converter = dart.constFn(convert.Converter$()))();
+let SinkOfListOfint = () => (SinkOfListOfint = dart.constFn(core.Sink$(ListOfint())))();
+let StreamOfString = () => (StreamOfString = dart.constFn(async.Stream$(core.String)))();
+let SinkOfString = () => (SinkOfString = dart.constFn(core.Sink$(core.String)))();
+let ChunkedConversionSink = () => (ChunkedConversionSink = dart.constFn(convert.ChunkedConversionSink$()))();
+let ListOfintTovoid = () => (ListOfintTovoid = dart.constFn(dart.functionType(dart.void, [ListOfint()])))();
+let _ChunkedConversionCallback = () => (_ChunkedConversionCallback = dart.constFn(convert._ChunkedConversionCallback$()))();
+let ChunkedConverter = () => (ChunkedConverter = dart.constFn(convert.ChunkedConverter$()))();
+let _SimpleCallbackSink = () => (_SimpleCallbackSink = dart.constFn(convert._SimpleCallbackSink$()))();
+let _ConverterStreamEventSink = () => (_ConverterStreamEventSink = dart.constFn(convert._ConverterStreamEventSink$()))();
+let _FusedCodec = () => (_FusedCodec = dart.constFn(convert._FusedCodec$()))();
+let _InvertedCodec = () => (_InvertedCodec = dart.constFn(convert._InvertedCodec$()))();
+let _FusedConverter = () => (_FusedConverter = dart.constFn(convert._FusedConverter$()))();
+let StreamOfObject = () => (StreamOfObject = dart.constFn(async.Stream$(core.Object)))();
+let JSArrayOfListOfint = () => (JSArrayOfListOfint = dart.constFn(_interceptors.JSArray$(ListOfint())))();
+let Uint8ListAndintAndintTovoid = () => (Uint8ListAndintAndintTovoid = dart.constFn(dart.functionType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
+let EventSinkOfString = () => (EventSinkOfString = dart.constFn(async.EventSink$(core.String)))();
+let StreamTransformerOfString$String = () => (StreamTransformerOfString$String = dart.constFn(async.StreamTransformer$(core.String, core.String)))();
+let Comparator = () => (Comparator = dart.constFn(core.Comparator$()))();
+let Comparable = () => (Comparable = dart.constFn(core.Comparable$()))();
+let ComparableOfDateTime = () => (ComparableOfDateTime = dart.constFn(core.Comparable$(core.DateTime)))();
+let ComparableOfDuration = () => (ComparableOfDuration = dart.constFn(core.Comparable$(core.Duration)))();
+let Expando = () => (Expando = dart.constFn(core.Expando$()))();
+let _Generator = () => (_Generator = dart.constFn(core._Generator$()))();
+let _GeneratorIterable = () => (_GeneratorIterable = dart.constFn(core._GeneratorIterable$()))();
+let _GeneratorIterator = () => (_GeneratorIterator = dart.constFn(core._GeneratorIterator$()))();
+let BidirectionalIterator = () => (BidirectionalIterator = dart.constFn(core.BidirectionalIterator$()))();
+let Map$ = () => (Map$ = dart.constFn(core.Map$()))();
+let Set = () => (Set = dart.constFn(core.Set$()))();
+let Sink = () => (Sink = dart.constFn(core.Sink$()))();
+let BidirectionalIteratorOfint = () => (BidirectionalIteratorOfint = dart.constFn(core.BidirectionalIterator$(core.int)))();
+let UnmodifiableMapViewOfString$String = () => (UnmodifiableMapViewOfString$String = dart.constFn(collection.UnmodifiableMapView$(core.String, core.String)))();
+let MapOfString$ListOfString = () => (MapOfString$ListOfString = dart.constFn(core.Map$(core.String, ListOfString())))();
+let MapOfString$String = () => (MapOfString$String = dart.constFn(core.Map$(core.String, core.String)))();
+let IterableOfString = () => (IterableOfString = dart.constFn(core.Iterable$(core.String)))();
+let MapOfString$dynamic = () => (MapOfString$dynamic = dart.constFn(core.Map$(core.String, dart.dynamic)))();
+let MapOfString$ServiceExtensionHandler = () => (MapOfString$ServiceExtensionHandler = dart.constFn(core.Map$(core.String, developer.ServiceExtensionHandler)))();
+let MapOfString$Metric = () => (MapOfString$Metric = dart.constFn(core.Map$(core.String, developer.Metric)))();
+let ListOf_SyncBlock = () => (ListOf_SyncBlock = dart.constFn(core.List$(developer._SyncBlock)))();
+let JSArrayOf_AsyncBlock = () => (JSArrayOf_AsyncBlock = dart.constFn(_interceptors.JSArray$(developer._AsyncBlock)))();
+let ListOf_AsyncBlock = () => (ListOf_AsyncBlock = dart.constFn(core.List$(developer._AsyncBlock)))();
+let CompleterOfUri = () => (CompleterOfUri = dart.constFn(async.Completer$(core.Uri)))();
+let ListOfListOfint = () => (ListOfListOfint = dart.constFn(core.List$(ListOfint())))();
+let FutureOfint = () => (FutureOfint = dart.constFn(async.Future$(core.int)))();
+let FutureOfDirectory = () => (FutureOfDirectory = dart.constFn(async.Future$(io.Directory)))();
+let FutureOrOfDirectory = () => (FutureOrOfDirectory = dart.constFn(async.FutureOr$(io.Directory)))();
+let StreamOfFileSystemEntity = () => (StreamOfFileSystemEntity = dart.constFn(async.Stream$(io.FileSystemEntity)))();
+let JSArrayOfFileSystemEntity = () => (JSArrayOfFileSystemEntity = dart.constFn(_interceptors.JSArray$(io.FileSystemEntity)))();
+let FutureOrOfString = () => (FutureOrOfString = dart.constFn(async.FutureOr$(core.String)))();
+let FutureOrOfbool = () => (FutureOrOfbool = dart.constFn(async.FutureOr$(core.bool)))();
+let FutureOrOfint = () => (FutureOrOfint = dart.constFn(async.FutureOr$(core.int)))();
+let ListOfFileSystemEntity = () => (ListOfFileSystemEntity = dart.constFn(core.List$(io.FileSystemEntity)))();
+let StreamControllerOfListOfint = () => (StreamControllerOfListOfint = dart.constFn(async.StreamController$(ListOfint())))();
+let FutureOfRandomAccessFile = () => (FutureOfRandomAccessFile = dart.constFn(async.Future$(io.RandomAccessFile)))();
+let CompleterOfFile = () => (CompleterOfFile = dart.constFn(async.Completer$(io.File)))();
+let FutureOfListOfint = () => (FutureOfListOfint = dart.constFn(async.Future$(ListOfint())))();
+let FutureOrOfFile = () => (FutureOrOfFile = dart.constFn(async.FutureOr$(io.File)))();
+let FutureOfFile = () => (FutureOfFile = dart.constFn(async.Future$(io.File)))();
+let FutureOrOfListOfint = () => (FutureOrOfListOfint = dart.constFn(async.FutureOr$(ListOfint())))();
+let ListOfFileSystemEntityType = () => (ListOfFileSystemEntityType = dart.constFn(core.List$(io.FileSystemEntityType)))();
+let StreamOfHttpRequest = () => (StreamOfHttpRequest = dart.constFn(async.Stream$(io.HttpRequest)))();
+let ListOfRedirectInfo = () => (ListOfRedirectInfo = dart.constFn(core.List$(io.RedirectInfo)))();
+let HashMapOfString$ListOfString = () => (HashMapOfString$ListOfString = dart.constFn(collection.HashMap$(core.String, ListOfString())))();
+let ListOfCookie = () => (ListOfCookie = dart.constFn(core.List$(io.Cookie)))();
+let StringAndListOfStringTovoid = () => (StringAndListOfStringTovoid = dart.constFn(dart.functionType(dart.void, [core.String, ListOfString()])))();
+let FutureOfHttpClientResponse = () => (FutureOfHttpClientResponse = dart.constFn(async.Future$(io.HttpClientResponse)))();
+let StreamSubscriptionOfListOfint = () => (StreamSubscriptionOfListOfint = dart.constFn(async.StreamSubscription$(ListOfint())))();
+let FutureOrOfHttpClientResponse = () => (FutureOrOfHttpClientResponse = dart.constFn(async.FutureOr$(io.HttpClientResponse)))();
+let _StreamSinkImpl = () => (_StreamSinkImpl = dart.constFn(io._StreamSinkImpl$()))();
+let StreamConsumerOfListOfint = () => (StreamConsumerOfListOfint = dart.constFn(async.StreamConsumer$(ListOfint())))();
+let _HttpOutboundMessage = () => (_HttpOutboundMessage = dart.constFn(io._HttpOutboundMessage$()))();
+let CompleterOfHttpClientResponse = () => (CompleterOfHttpClientResponse = dart.constFn(async.Completer$(io.HttpClientResponse)))();
+let JSArrayOfRedirectInfo = () => (JSArrayOfRedirectInfo = dart.constFn(_interceptors.JSArray$(io.RedirectInfo)))();
+let JSArrayOfFuture = () => (JSArrayOfFuture = dart.constFn(_interceptors.JSArray$(async.Future)))();
+let CompleterOf_HttpIncoming = () => (CompleterOf_HttpIncoming = dart.constFn(async.Completer$(io._HttpIncoming)))();
+let X509CertificateTobool = () => (X509CertificateTobool = dart.constFn(dart.functionType(core.bool, [io.X509Certificate])))();
+let FutureOfSecureSocket = () => (FutureOfSecureSocket = dart.constFn(async.Future$(io.SecureSocket)))();
+let HashSetOf_HttpClientConnection = () => (HashSetOf_HttpClientConnection = dart.constFn(collection.HashSet$(io._HttpClientConnection)))();
+let FutureOf_ConnectionInfo = () => (FutureOf_ConnectionInfo = dart.constFn(async.Future$(io._ConnectionInfo)))();
+let FutureOrOf_ConnectionInfo = () => (FutureOrOf_ConnectionInfo = dart.constFn(async.FutureOr$(io._ConnectionInfo)))();
+let SetOf_HttpClientConnection = () => (SetOf_HttpClientConnection = dart.constFn(core.Set$(io._HttpClientConnection)))();
+let HashMapOfString$_ConnectionTarget = () => (HashMapOfString$_ConnectionTarget = dart.constFn(collection.HashMap$(core.String, io._ConnectionTarget)))();
+let JSArrayOf_Credentials = () => (JSArrayOf_Credentials = dart.constFn(_interceptors.JSArray$(io._Credentials)))();
+let JSArrayOf_ProxyCredentials = () => (JSArrayOf_ProxyCredentials = dart.constFn(_interceptors.JSArray$(io._ProxyCredentials)))();
+let FutureOf_HttpClientRequest = () => (FutureOf_HttpClientRequest = dart.constFn(async.Future$(io._HttpClientRequest)))();
+let FutureOrOf_HttpClientRequest = () => (FutureOrOf_HttpClientRequest = dart.constFn(async.FutureOr$(io._HttpClientRequest)))();
+let X509CertificateAndStringAndintTobool = () => (X509CertificateAndStringAndintTobool = dart.constFn(dart.functionType(core.bool, [io.X509Certificate, core.String, core.int])))();
+let FutureOfbool = () => (FutureOfbool = dart.constFn(async.Future$(core.bool)))();
+let UriAndStringAndStringToFutureOfbool = () => (UriAndStringAndStringToFutureOfbool = dart.constFn(dart.functionType(FutureOfbool(), [core.Uri, core.String, core.String])))();
+let StringAndintAndString__ToFutureOfbool = () => (StringAndintAndString__ToFutureOfbool = dart.constFn(dart.functionType(FutureOfbool(), [core.String, core.int, core.String, core.String])))();
+let UriToString = () => (UriToString = dart.constFn(dart.functionType(core.String, [core.Uri])))();
+let MapOfString$_ConnectionTarget = () => (MapOfString$_ConnectionTarget = dart.constFn(core.Map$(core.String, io._ConnectionTarget)))();
+let ListOf_Credentials = () => (ListOf_Credentials = dart.constFn(core.List$(io._Credentials)))();
+let ListOf_ProxyCredentials = () => (ListOf_ProxyCredentials = dart.constFn(core.List$(io._ProxyCredentials)))();
+let MapOfint$_HttpConnection = () => (MapOfint$_HttpConnection = dart.constFn(core.Map$(core.int, io._HttpConnection)))();
+let HashMapOfint$_HttpConnection = () => (HashMapOfint$_HttpConnection = dart.constFn(collection.HashMap$(core.int, io._HttpConnection)))();
+let LinkedListOf_HttpConnection = () => (LinkedListOf_HttpConnection = dart.constFn(collection.LinkedList$(io._HttpConnection)))();
+let StreamControllerOfHttpRequest = () => (StreamControllerOfHttpRequest = dart.constFn(async.StreamController$(io.HttpRequest)))();
+let HttpRequestTovoid = () => (HttpRequestTovoid = dart.constFn(dart.functionType(dart.void, [io.HttpRequest])))();
+let MapOfint$_HttpServer = () => (MapOfint$_HttpServer = dart.constFn(core.Map$(core.int, io._HttpServer)))();
+let ListOf_Proxy = () => (ListOf_Proxy = dart.constFn(core.List$(io._Proxy)))();
+let FutureOfSocket = () => (FutureOfSocket = dart.constFn(async.Future$(io.Socket)))();
+let ListOfbool = () => (ListOfbool = dart.constFn(core.List$(core.bool)))();
+let StreamOfint = () => (StreamOfint = dart.constFn(async.Stream$(core.int)))();
+let StreamControllerOf_HttpIncoming = () => (StreamControllerOf_HttpIncoming = dart.constFn(async.StreamController$(io._HttpIncoming)))();
+let _HttpIncomingTovoid = () => (_HttpIncomingTovoid = dart.constFn(dart.functionType(dart.void, [io._HttpIncoming])))();
+let MapOfString$_HttpSession = () => (MapOfString$_HttpSession = dart.constFn(core.Map$(core.String, io._HttpSession)))();
+let ListOfMapOfString$String = () => (ListOfMapOfString$String = dart.constFn(core.List$(MapOfString$String())))();
+let FutureOfServiceExtensionResponse = () => (FutureOfServiceExtensionResponse = dart.constFn(async.Future$(developer.ServiceExtensionResponse)))();
+let MapOfint$_FileResourceInfo = () => (MapOfint$_FileResourceInfo = dart.constFn(core.Map$(core.int, io._FileResourceInfo)))();
+let MapOfint$_ProcessResourceInfo = () => (MapOfint$_ProcessResourceInfo = dart.constFn(core.Map$(core.int, io._ProcessResourceInfo)))();
+let MapOfint$_SocketResourceInfo = () => (MapOfint$_SocketResourceInfo = dart.constFn(core.Map$(core.int, io._SocketResourceInfo)))();
+let StreamSinkOfListOfint = () => (StreamSinkOfListOfint = dart.constFn(async.StreamSink$(ListOfint())))();
+let FutureOfLink = () => (FutureOfLink = dart.constFn(async.Future$(io.Link)))();
+let _CaseInsensitiveStringMap = () => (_CaseInsensitiveStringMap = dart.constFn(io._CaseInsensitiveStringMap$()))();
+let FutureOfRawSecureSocket = () => (FutureOfRawSecureSocket = dart.constFn(async.Future$(io.RawSecureSocket)))();
+let SecureSocketTovoid = () => (SecureSocketTovoid = dart.constFn(dart.functionType(dart.void, [io.SecureSocket])))();
+let StreamControllerOfRawSecureSocket = () => (StreamControllerOfRawSecureSocket = dart.constFn(async.StreamController$(io.RawSecureSocket)))();
+let RawSecureSocketTovoid = () => (RawSecureSocketTovoid = dart.constFn(dart.functionType(dart.void, [io.RawSecureSocket])))();
+let StreamSubscriptionOfRawSocket = () => (StreamSubscriptionOfRawSocket = dart.constFn(async.StreamSubscription$(io.RawSocket)))();
+let StreamSubscriptionOfRawSocketEvent = () => (StreamSubscriptionOfRawSocketEvent = dart.constFn(async.StreamSubscription$(io.RawSocketEvent)))();
+let CompleterOf_RawSecureSocket = () => (CompleterOf_RawSecureSocket = dart.constFn(async.Completer$(io._RawSecureSocket)))();
+let StreamControllerOfRawSocketEvent = () => (StreamControllerOfRawSocketEvent = dart.constFn(async.StreamController$(io.RawSocketEvent)))();
+let RawSocketEventTovoid = () => (RawSocketEventTovoid = dart.constFn(dart.functionType(dart.void, [io.RawSocketEvent])))();
+let StreamOfRawSocketEvent = () => (StreamOfRawSocketEvent = dart.constFn(async.Stream$(io.RawSocketEvent)))();
+let X509CertificateTodynamic = () => (X509CertificateTodynamic = dart.constFn(dart.functionType(dart.dynamic, [io.X509Certificate])))();
+let intToListOfint = () => (intToListOfint = dart.constFn(dart.functionType(ListOfint(), [core.int])))();
+let StreamOfRawSocket = () => (StreamOfRawSocket = dart.constFn(async.Stream$(io.RawSocket)))();
+let StreamOfSocket = () => (StreamOfSocket = dart.constFn(async.Stream$(io.Socket)))();
+let StreamTransformerOfHttpRequest$WebSocket = () => (StreamTransformerOfHttpRequest$WebSocket = dart.constFn(async.StreamTransformer$(io.HttpRequest, io.WebSocket)))();
+let ListOfStringTodynamic = () => (ListOfStringTodynamic = dart.constFn(dart.functionType(dart.dynamic, [ListOfString()])))();
+let StreamTransformerOfListOfint$dynamic = () => (StreamTransformerOfListOfint$dynamic = dart.constFn(async.StreamTransformer$(ListOfint(), dart.dynamic)))();
+let EventSinkOfUint8List = () => (EventSinkOfUint8List = dart.constFn(async.EventSink$(typed_data.Uint8List)))();
+let StreamControllerOfWebSocket = () => (StreamControllerOfWebSocket = dart.constFn(async.StreamController$(io.WebSocket)))();
+let FutureOfWebSocket = () => (FutureOfWebSocket = dart.constFn(async.Future$(io.WebSocket)))();
+let EventSinkOfListOfint = () => (EventSinkOfListOfint = dart.constFn(async.EventSink$(ListOfint())))();
+let JSArrayOfUint8List = () => (JSArrayOfUint8List = dart.constFn(_interceptors.JSArray$(typed_data.Uint8List)))();
+let StreamTransformerOfdynamic$ListOfint = () => (StreamTransformerOfdynamic$ListOfint = dart.constFn(async.StreamTransformer$(dart.dynamic, ListOfint())))();
+let MapOfint$_WebSocketImpl = () => (MapOfint$_WebSocketImpl = dart.constFn(core.Map$(core.int, io._WebSocketImpl)))();
+let FutureOfIsolate = () => (FutureOfIsolate = dart.constFn(async.Future$(isolate.Isolate)))();
+let JsArray = () => (JsArray = dart.constFn(js.JsArray$()))();
+let ExpandoOfFunction = () => (ExpandoOfFunction = dart.constFn(core.Expando$(core.Function)))();
+let PointOfnum = () => (PointOfnum = dart.constFn(math.Point$(core.num)))();
+let Point$ = () => (Point$ = dart.constFn(math.Point$()))();
+let RectangleOfnum = () => (RectangleOfnum = dart.constFn(math.Rectangle$(core.num)))();
+let _RectangleBase = () => (_RectangleBase = dart.constFn(math._RectangleBase$()))();
+let Rectangle = () => (Rectangle = dart.constFn(math.Rectangle$()))();
+let MutableRectangle = () => (MutableRectangle = dart.constFn(math.MutableRectangle$()))();
+let EventStreamProviderOfEvent = () => (EventStreamProviderOfEvent = dart.constFn(html$.EventStreamProvider$(html$.Event)))();
+let EventStreamProviderOfVersionChangeEvent = () => (EventStreamProviderOfVersionChangeEvent = dart.constFn(html$.EventStreamProvider$(indexed_db.VersionChangeEvent)))();
+let FutureOfDatabase = () => (FutureOfDatabase = dart.constFn(async.Future$(indexed_db.Database)))();
+let CompleterOfIdbFactory = () => (CompleterOfIdbFactory = dart.constFn(async.Completer$(indexed_db.IdbFactory)))();
+let FutureOfIdbFactory = () => (FutureOfIdbFactory = dart.constFn(async.Future$(indexed_db.IdbFactory)))();
+let FutureOfListOfString = () => (FutureOfListOfString = dart.constFn(async.Future$(ListOfString())))();
+let EventTovoid = () => (EventTovoid = dart.constFn(dart.functionType(dart.void, [html$.Event])))();
+let CompleterOfDatabase = () => (CompleterOfDatabase = dart.constFn(async.Completer$(indexed_db.Database)))();
+let ListOfEventTarget = () => (ListOfEventTarget = dart.constFn(core.List$(html$.EventTarget)))();
+let RectangleOfint = () => (RectangleOfint = dart.constFn(math.Rectangle$(core.int)))();
+let IterableOfNode = () => (IterableOfNode = dart.constFn(core.Iterable$(html$.Node)))();
+let ListOfNode = () => (ListOfNode = dart.constFn(core.List$(html$.Node)))();
+let ListOfElement = () => (ListOfElement = dart.constFn(core.List$(html$.Element)))();
+let IterableOfMapOfString$dynamic = () => (IterableOfMapOfString$dynamic = dart.constFn(core.Iterable$(MapOfString$dynamic())))();
+let EventStreamProviderOfWheelEvent = () => (EventStreamProviderOfWheelEvent = dart.constFn(html$.EventStreamProvider$(html$.WheelEvent)))();
+let EventStreamProviderOfTransitionEvent = () => (EventStreamProviderOfTransitionEvent = dart.constFn(html$.EventStreamProvider$(html$.TransitionEvent)))();
+let EventStreamProviderOfMouseEvent = () => (EventStreamProviderOfMouseEvent = dart.constFn(html$.EventStreamProvider$(html$.MouseEvent)))();
+let EventStreamProviderOfClipboardEvent = () => (EventStreamProviderOfClipboardEvent = dart.constFn(html$.EventStreamProvider$(html$.ClipboardEvent)))();
+let EventStreamProviderOfKeyboardEvent = () => (EventStreamProviderOfKeyboardEvent = dart.constFn(html$.EventStreamProvider$(html$.KeyboardEvent)))();
+let EventStreamProviderOfTouchEvent = () => (EventStreamProviderOfTouchEvent = dart.constFn(html$.EventStreamProvider$(html$.TouchEvent)))();
+let _CustomEventStreamProviderOfWheelEvent = () => (_CustomEventStreamProviderOfWheelEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.WheelEvent)))();
+let _CustomEventStreamProviderOfTransitionEvent = () => (_CustomEventStreamProviderOfTransitionEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.TransitionEvent)))();
+let ListOfEntry = () => (ListOfEntry = dart.constFn(core.List$(html$.Entry)))();
+let EventStreamProviderOfProgressEvent = () => (EventStreamProviderOfProgressEvent = dart.constFn(html$.EventStreamProvider$(html$.ProgressEvent)))();
+let EventStreamProviderOfMediaKeyEvent = () => (EventStreamProviderOfMediaKeyEvent = dart.constFn(html$.EventStreamProvider$(html$.MediaKeyEvent)))();
+let EventStreamProviderOfMessageEvent = () => (EventStreamProviderOfMessageEvent = dart.constFn(html$.EventStreamProvider$(html$.MessageEvent)))();
+let EventStreamProviderOfPopStateEvent = () => (EventStreamProviderOfPopStateEvent = dart.constFn(html$.EventStreamProvider$(html$.PopStateEvent)))();
+let EventStreamProviderOfStorageEvent = () => (EventStreamProviderOfStorageEvent = dart.constFn(html$.EventStreamProvider$(html$.StorageEvent)))();
+let EventStreamProviderOfContextEvent = () => (EventStreamProviderOfContextEvent = dart.constFn(html$.EventStreamProvider$(web_gl.ContextEvent)))();
+let ListOfnum = () => (ListOfnum = dart.constFn(core.List$(core.num)))();
+let ListOfMessagePort = () => (ListOfMessagePort = dart.constFn(core.List$(html$.MessagePort)))();
+let CompleterOfFileSystem = () => (CompleterOfFileSystem = dart.constFn(async.Completer$(html$.FileSystem)))();
+let CompleterOfEntry = () => (CompleterOfEntry = dart.constFn(async.Completer$(html$.Entry)))();
+let ListOfCssRule = () => (ListOfCssRule = dart.constFn(core.List$(html$.CssRule)))();
+let IterableOfElement = () => (IterableOfElement = dart.constFn(core.Iterable$(html$.Element)))();
+let IterableOfCssStyleDeclaration = () => (IterableOfCssStyleDeclaration = dart.constFn(core.Iterable$(html$.CssStyleDeclaration)))();
+let ListOfFile = () => (ListOfFile = dart.constFn(core.List$(html$.File)))();
+let CompleterOfString = () => (CompleterOfString = dart.constFn(async.Completer$(core.String)))();
+let CompleterOfMetadata = () => (CompleterOfMetadata = dart.constFn(async.Completer$(html$.Metadata)))();
+let CompleterOfListOfEntry = () => (CompleterOfListOfEntry = dart.constFn(async.Completer$(ListOfEntry())))();
+let EventStreamProviderOfSecurityPolicyViolationEvent = () => (EventStreamProviderOfSecurityPolicyViolationEvent = dart.constFn(html$.EventStreamProvider$(html$.SecurityPolicyViolationEvent)))();
+let ListOfStyleSheet = () => (ListOfStyleSheet = dart.constFn(core.List$(html$.StyleSheet)))();
+let ImmutableListMixin = () => (ImmutableListMixin = dart.constFn(html$.ImmutableListMixin$()))();
+let ElementAndElementToint = () => (ElementAndElementToint = dart.constFn(dart.functionType(core.int, [html$.Element, html$.Element])))();
+let ElementTobool = () => (ElementTobool = dart.constFn(dart.functionType(core.bool, [html$.Element])))();
+let ElementList = () => (ElementList = dart.constFn(html$.ElementList$()))();
+let _FrozenElementList = () => (_FrozenElementList = dart.constFn(html$._FrozenElementList$()))();
+let _EventStreamOfEvent = () => (_EventStreamOfEvent = dart.constFn(html$._EventStream$(html$.Event)))();
+let _ElementEventStreamImplOfEvent = () => (_ElementEventStreamImplOfEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.Event)))();
+let CompleterOfFileWriter = () => (CompleterOfFileWriter = dart.constFn(async.Completer$(html$.FileWriter)))();
+let CompleterOfFile$ = () => (CompleterOfFile$ = dart.constFn(async.Completer$(html$.File)))();
+let ListOfFontFace = () => (ListOfFontFace = dart.constFn(core.List$(html$.FontFace)))();
+let ListOfGamepadButton = () => (ListOfGamepadButton = dart.constFn(core.List$(html$.GamepadButton)))();
+let CompleterOfGeoposition = () => (CompleterOfGeoposition = dart.constFn(async.Completer$(html$.Geoposition)))();
+let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))();
+let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
+let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))();
+let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
+let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html$.ProgressEvent])))();
+let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
+let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))();
+let ListOfSourceInfo = () => (ListOfSourceInfo = dart.constFn(core.List$(html$.SourceInfo)))();
+let CompleterOfListOfSourceInfo = () => (CompleterOfListOfSourceInfo = dart.constFn(async.Completer$(ListOfSourceInfo())))();
+let EventStreamProviderOfMidiMessageEvent = () => (EventStreamProviderOfMidiMessageEvent = dart.constFn(html$.EventStreamProvider$(html$.MidiMessageEvent)))();
+let ListOfMimeType = () => (ListOfMimeType = dart.constFn(core.List$(html$.MimeType)))();
+let ListOfMutationRecord = () => (ListOfMutationRecord = dart.constFn(core.List$(html$.MutationRecord)))();
+let _wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = () => (_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = dart.constFn(html$._wrapZoneBinaryCallback$(ListOfMutationRecord(), html$.MutationObserver, dart.void)))();
+let MapOfString$bool = () => (MapOfString$bool = dart.constFn(core.Map$(core.String, core.bool)))();
+let CompleterOfMediaStream = () => (CompleterOfMediaStream = dart.constFn(async.Completer$(html$.MediaStream)))();
+let NodeTobool = () => (NodeTobool = dart.constFn(dart.functionType(core.bool, [html$.Node])))();
+let ComparatorOfNode = () => (ComparatorOfNode = dart.constFn(core.Comparator$(html$.Node)))();
+let ListOfPlugin = () => (ListOfPlugin = dart.constFn(core.List$(html$.Plugin)))();
+let EventStreamProviderOfRtcDtmfToneChangeEvent = () => (EventStreamProviderOfRtcDtmfToneChangeEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcDtmfToneChangeEvent)))();
+let JSArrayOfMapOfString$String = () => (JSArrayOfMapOfString$String = dart.constFn(_interceptors.JSArray$(MapOfString$String())))();
+let CompleterOfRtcSessionDescription = () => (CompleterOfRtcSessionDescription = dart.constFn(async.Completer$(html$.RtcSessionDescription)))();
+let CompleterOfRtcStatsResponse = () => (CompleterOfRtcStatsResponse = dart.constFn(async.Completer$(html$.RtcStatsResponse)))();
+let EventStreamProviderOfMediaStreamEvent = () => (EventStreamProviderOfMediaStreamEvent = dart.constFn(html$.EventStreamProvider$(html$.MediaStreamEvent)))();
+let EventStreamProviderOfRtcDataChannelEvent = () => (EventStreamProviderOfRtcDataChannelEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcDataChannelEvent)))();
+let EventStreamProviderOfRtcIceCandidateEvent = () => (EventStreamProviderOfRtcIceCandidateEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcIceCandidateEvent)))();
+let ListOfOptionElement = () => (ListOfOptionElement = dart.constFn(core.List$(html$.OptionElement)))();
+let UnmodifiableListViewOfOptionElement = () => (UnmodifiableListViewOfOptionElement = dart.constFn(collection.UnmodifiableListView$(html$.OptionElement)))();
+let JSArrayOfOptionElement = () => (JSArrayOfOptionElement = dart.constFn(_interceptors.JSArray$(html$.OptionElement)))();
+let ListOfSourceBuffer = () => (ListOfSourceBuffer = dart.constFn(core.List$(html$.SourceBuffer)))();
+let ListOfSpeechGrammar = () => (ListOfSpeechGrammar = dart.constFn(core.List$(html$.SpeechGrammar)))();
+let EventStreamProviderOfSpeechRecognitionError = () => (EventStreamProviderOfSpeechRecognitionError = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionError)))();
+let EventStreamProviderOfSpeechRecognitionEvent = () => (EventStreamProviderOfSpeechRecognitionEvent = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionEvent)))();
+let ListOfSpeechRecognitionResult = () => (ListOfSpeechRecognitionResult = dart.constFn(core.List$(html$.SpeechRecognitionResult)))();
+let EventStreamProviderOfSpeechSynthesisEvent = () => (EventStreamProviderOfSpeechSynthesisEvent = dart.constFn(html$.EventStreamProvider$(html$.SpeechSynthesisEvent)))();
+let VoidToString = () => (VoidToString = dart.constFn(dart.functionType(core.String, [])))();
+let StringAndStringTovoid = () => (StringAndStringTovoid = dart.constFn(dart.functionType(dart.void, [core.String, core.String])))();
+let _WrappedListOfTableSectionElement = () => (_WrappedListOfTableSectionElement = dart.constFn(html$._WrappedList$(html$.TableSectionElement)))();
+let _WrappedListOfTableRowElement = () => (_WrappedListOfTableRowElement = dart.constFn(html$._WrappedList$(html$.TableRowElement)))();
+let _WrappedListOfTableCellElement = () => (_WrappedListOfTableCellElement = dart.constFn(html$._WrappedList$(html$.TableCellElement)))();
+let ListOfTextTrackCue = () => (ListOfTextTrackCue = dart.constFn(core.List$(html$.TextTrackCue)))();
+let ListOfTextTrack = () => (ListOfTextTrack = dart.constFn(core.List$(html$.TextTrack)))();
+let EventStreamProviderOfTrackEvent = () => (EventStreamProviderOfTrackEvent = dart.constFn(html$.EventStreamProvider$(html$.TrackEvent)))();
+let ListOfTouch = () => (ListOfTouch = dart.constFn(core.List$(html$.Touch)))();
+let ListOfTrackDefault = () => (ListOfTrackDefault = dart.constFn(core.List$(html$.TrackDefault)))();
+let EventStreamProviderOfCloseEvent = () => (EventStreamProviderOfCloseEvent = dart.constFn(html$.EventStreamProvider$(html$.CloseEvent)))();
+let CompleterOfnum = () => (CompleterOfnum = dart.constFn(async.Completer$(core.num)))();
+let EventStreamProviderOfDeviceMotionEvent = () => (EventStreamProviderOfDeviceMotionEvent = dart.constFn(html$.EventStreamProvider$(html$.DeviceMotionEvent)))();
+let EventStreamProviderOfDeviceOrientationEvent = () => (EventStreamProviderOfDeviceOrientationEvent = dart.constFn(html$.EventStreamProvider$(html$.DeviceOrientationEvent)))();
+let EventStreamProviderOfAnimationEvent = () => (EventStreamProviderOfAnimationEvent = dart.constFn(html$.EventStreamProvider$(html$.AnimationEvent)))();
+let EventStreamProviderOfBeforeUnloadEvent = () => (EventStreamProviderOfBeforeUnloadEvent = dart.constFn(html$.EventStreamProvider$(html$.BeforeUnloadEvent)))();
+let _EventStreamOfBeforeUnloadEvent = () => (_EventStreamOfBeforeUnloadEvent = dart.constFn(html$._EventStream$(html$.BeforeUnloadEvent)))();
+let StreamControllerOfBeforeUnloadEvent = () => (StreamControllerOfBeforeUnloadEvent = dart.constFn(async.StreamController$(html$.BeforeUnloadEvent)))();
+let _ElementEventStreamImplOfBeforeUnloadEvent = () => (_ElementEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.BeforeUnloadEvent)))();
+let _ElementListEventStreamImplOfBeforeUnloadEvent = () => (_ElementListEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementListEventStreamImpl$(html$.BeforeUnloadEvent)))();
+let ElementListOfElement = () => (ElementListOfElement = dart.constFn(html$.ElementList$(html$.Element)))();
+let ListOfRectangleOfnum = () => (ListOfRectangleOfnum = dart.constFn(core.List$(RectangleOfnum())))();
+let ListOfGamepad = () => (ListOfGamepad = dart.constFn(core.List$(html$.Gamepad)))();
+let ListOfCssClassSetImpl = () => (ListOfCssClassSetImpl = dart.constFn(core.List$(html_common.CssClassSetImpl)))();
+let LinkedHashSetOfString = () => (LinkedHashSetOfString = dart.constFn(collection.LinkedHashSet$(core.String)))();
+let StringTobool = () => (StringTobool = dart.constFn(dart.functionType(core.bool, [core.String])))();
+let StringAndStringToString = () => (StringAndStringToString = dart.constFn(dart.functionType(core.String, [core.String, core.String])))();
+let SetOfStringTodynamic = () => (SetOfStringTodynamic = dart.constFn(dart.functionType(dart.dynamic, [SetOfString()])))();
+let EventStreamProvider = () => (EventStreamProvider = dart.constFn(html$.EventStreamProvider$()))();
+let ElementStream = () => (ElementStream = dart.constFn(html$.ElementStream$()))();
+let _EventStream = () => (_EventStream = dart.constFn(html$._EventStream$()))();
+let _ElementEventStreamImpl = () => (_ElementEventStreamImpl = dart.constFn(html$._ElementEventStreamImpl$()))();
+let _ElementListEventStreamImpl = () => (_ElementListEventStreamImpl = dart.constFn(html$._ElementListEventStreamImpl$()))();
+let _EventListener = () => (_EventListener = dart.constFn(html$._EventListener$()))();
+let _wrapZoneCallbackOfEvent$dynamic = () => (_wrapZoneCallbackOfEvent$dynamic = dart.constFn(html$._wrapZoneCallback$(html$.Event, dart.dynamic)))();
+let _EventStreamSubscription = () => (_EventStreamSubscription = dart.constFn(html$._EventStreamSubscription$()))();
+let CustomStream = () => (CustomStream = dart.constFn(html$.CustomStream$()))();
+let _CustomEventStreamImpl = () => (_CustomEventStreamImpl = dart.constFn(html$._CustomEventStreamImpl$()))();
+let EventStreamProviderOfKeyEvent = () => (EventStreamProviderOfKeyEvent = dart.constFn(html$.EventStreamProvider$(html$.KeyEvent)))();
+let CustomStreamOfKeyEvent = () => (CustomStreamOfKeyEvent = dart.constFn(html$.CustomStream$(html$.KeyEvent)))();
+let _StreamPool = () => (_StreamPool = dart.constFn(html$._StreamPool$()))();
+let _CustomEventStreamProvider = () => (_CustomEventStreamProvider = dart.constFn(html$._CustomEventStreamProvider$()))();
+let MapOfString$Function = () => (MapOfString$Function = dart.constFn(core.Map$(core.String, core.Function)))();
+let JSArrayOfKeyEvent = () => (JSArrayOfKeyEvent = dart.constFn(_interceptors.JSArray$(html$.KeyEvent)))();
+let ListOfKeyEvent = () => (ListOfKeyEvent = dart.constFn(core.List$(html$.KeyEvent)))();
+let MapOfString$int = () => (MapOfString$int = dart.constFn(core.Map$(core.String, core.int)))();
+let JSArrayOfNodeValidator = () => (JSArrayOfNodeValidator = dart.constFn(_interceptors.JSArray$(html$.NodeValidator)))();
+let ListOfNodeValidator = () => (ListOfNodeValidator = dart.constFn(core.List$(html$.NodeValidator)))();
+let _WrappedList = () => (_WrappedList = dart.constFn(html$._WrappedList$()))();
+let IteratorOfNode = () => (IteratorOfNode = dart.constFn(core.Iterator$(html$.Node)))();
+let _WrappedIterator = () => (_WrappedIterator = dart.constFn(html$._WrappedIterator$()))();
+let HttpRequestTodynamic = () => (HttpRequestTodynamic = dart.constFn(dart.functionType(dart.dynamic, [html$.HttpRequest])))();
+let FixedSizeListIterator = () => (FixedSizeListIterator = dart.constFn(html$.FixedSizeListIterator$()))();
+let _VariableSizeListIterator = () => (_VariableSizeListIterator = dart.constFn(html$._VariableSizeListIterator$()))();
+let _wrapZoneCallback = () => (_wrapZoneCallback = dart.constFn(html$._wrapZoneCallback$()))();
+let _wrapZoneBinaryCallback = () => (_wrapZoneBinaryCallback = dart.constFn(html$._wrapZoneBinaryCallback$()))();
+let ElementTovoid = () => (ElementTovoid = dart.constFn(dart.functionType(dart.void, [html$.Element])))();
+let ListOfLength = () => (ListOfLength = dart.constFn(core.List$(svg$.Length)))();
+let ListOfNumber = () => (ListOfNumber = dart.constFn(core.List$(svg$.Number)))();
+let ListOfPathSeg = () => (ListOfPathSeg = dart.constFn(core.List$(svg$.PathSeg)))();
+let ListOfTransform = () => (ListOfTransform = dart.constFn(core.List$(svg$.Transform)))();
+let CompleterOfAudioBuffer = () => (CompleterOfAudioBuffer = dart.constFn(async.Completer$(web_audio.AudioBuffer)))();
+let EventStreamProviderOfAudioProcessingEvent = () => (EventStreamProviderOfAudioProcessingEvent = dart.constFn(html$.EventStreamProvider$(web_audio.AudioProcessingEvent)))();
+let dynamicTodynamic$ = () => (dynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
+let StringAndStringToint = () => (StringAndStringToint = dart.constFn(dart.definiteFunctionType(core.int, [core.String, core.String])))();
+let VoidTo_MethodStats = () => (VoidTo_MethodStats = dart.constFn(dart.definiteFunctionType(dart._MethodStats, [])))();
+let VoidToFunctionType = () => (VoidToFunctionType = dart.constFn(dart.definiteFunctionType(dart.FunctionType, [])))();
+let dynamicToString = () => (dynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic])))();
+let dynamicToListOfString = () => (dynamicToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [dart.dynamic])))();
+let dynamicToList = () => (dynamicToList = dart.constFn(dart.definiteFunctionType(core.List, [dart.dynamic])))();
+let dynamicAndSetOfNameValuePairTovoid = () => (dynamicAndSetOfNameValuePairTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, SetOfNameValuePair()])))();
+let TypeToString = () => (TypeToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Type])))();
+let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))();
+let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))();
+let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
+let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
+let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
+let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
+let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
+let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
+let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
+let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
+let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
+let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
+let VoidToIsolateContext = () => (VoidToIsolateContext = dart.constFn(dart.definiteFunctionType(_foreign_helper.IsolateContext, [])))();
+let dynamicAndFunctionTodynamic = () => (dynamicAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Function])))();
+let dynamicTovoid$ = () => (dynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
+let TypeTodynamic = () => (TypeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type])))();
+let VoidToString$ = () => (VoidToString$ = dart.constFn(dart.definiteFunctionType(core.String, [])))();
+let StringToString$ = () => (StringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String])))();
+let StringAndStringTodynamic = () => (StringAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String])))();
+let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
+let StringAndStringToString$ = () => (StringAndStringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
+let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
+let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
+let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
+let StringTovoid$ = () => (StringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
+let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
+let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
+let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
+let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
+let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
+let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
+let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
+let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
+let dynamicToNull$ = () => (dynamicToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
+let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
+let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
+let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
+let dynamicAndStackTraceTovoid = () => (dynamicAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])))();
+let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
+let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
+let dynamicAnddynamicToError = () => (dynamicAnddynamicToError = dart.constFn(dart.definiteFunctionType(core.Error, [dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicAnddynamicToError = () => (dynamicAnddynamicAnddynamicToError = dart.constFn(dart.definiteFunctionType(core.Error, [dart.dynamic, dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicAnddynamicTodynamic = () => (dynamicAnddynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])))();
+let dynamicToArgumentError = () => (dynamicToArgumentError = dart.constFn(dart.definiteFunctionType(core.ArgumentError, [dart.dynamic])))();
+let dynamicToStackTrace = () => (dynamicToStackTrace = dart.constFn(dart.definiteFunctionType(core.StackTrace, [dart.dynamic])))();
+let dynamicToint = () => (dynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic])))();
+let dynamicAndMapTodynamic = () => (dynamicAndMapTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Map])))();
+let dynamicAndStringTodynamic = () => (dynamicAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String])))();
+let dynamicAndStringAnddynamicTovoid = () => (dynamicAndStringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, dart.dynamic])))();
+let FAndintToF = () => (FAndintToF = dart.constFn(dart.definiteFunctionType(F => [F, [F, core.int]])))();
+let JSSyntaxRegExpTodynamic = () => (JSSyntaxRegExpTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_js_helper.JSSyntaxRegExp])))();
+let JSSyntaxRegExpToint = () => (JSSyntaxRegExpToint = dart.constFn(dart.definiteFunctionType(core.int, [_js_helper.JSSyntaxRegExp])))();
+let JSSyntaxRegExpAndStringAndintToMatch = () => (JSSyntaxRegExpAndStringAndintToMatch = dart.constFn(dart.definiteFunctionType(core.Match, [_js_helper.JSSyntaxRegExp, core.String, core.int])))();
+let dynamicAnddynamicAnddynamicToint = () => (dynamicAnddynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicAnddynamicToString = () => (dynamicAnddynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicAnddynamicTobool = () => (dynamicAnddynamicAnddynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic, dart.dynamic])))();
+let StringAndStringAndintToIterableOfMatch = () => (StringAndStringAndintToIterableOfMatch = dart.constFn(dart.definiteFunctionType(IterableOfMatch(), [core.String, core.String, core.int])))();
+let StringAnddynamicAndintTobool = () => (StringAnddynamicAndintTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.String, dart.dynamic, core.int])))();
+let StringAndJSSyntaxRegExpAndString__ToString = () => (StringAndJSSyntaxRegExpAndString__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, _js_helper.JSSyntaxRegExp, core.String, core.int])))();
+let StringAndPatternAndStringToString = () => (StringAndPatternAndStringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, core.String])))();
+let MatchToString$ = () => (MatchToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.Match])))();
+let StringAndPatternAndFn__ToString = () => (StringAndPatternAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), StringToString()])))();
+let StringAndFnAndFnToString = () => (StringAndFnAndFnToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, MatchToString(), StringToString()])))();
+let StringAndStringAndFn__ToString = () => (StringAndStringAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String, MatchToString(), StringToString()])))();
+let StringAndPatternAndString__ToString = () => (StringAndPatternAndString__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, core.String, core.int])))();
+let StringAndPatternAndFn__ToString$ = () => (StringAndPatternAndFn__ToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), core.int])))();
+let StringAndintAndint__ToString = () => (StringAndintAndint__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.int, core.int, core.String])))();
+let dynamicToType = () => (dynamicToType = dart.constFn(dart.definiteFunctionType(core.Type, [dart.dynamic])))();
+let dynamicAndintTodynamic = () => (dynamicAndintTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.int])))();
+let SymbolToString = () => (SymbolToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Symbol])))();
+let dynamicAnddynamicToSymbol = () => (dynamicAnddynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic, dart.dynamic])))();
+let dynamicToInstanceMirror = () => (dynamicToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [dart.dynamic])))();
+let TypeToTypeMirror = () => (TypeToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [core.Type])))();
+let dynamicAndListTodynamic = () => (dynamicAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.List])))();
+let dynamicAndStringAndListTodynamic = () => (dynamicAndStringAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, core.List])))();
+let SymbolTodynamic = () => (SymbolTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Symbol])))();
+let dynamicToSymbol = () => (dynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic])))();
+let dynamicToMapOfSymbol$dynamic = () => (dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [dart.dynamic])))();
+let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
+let SymbolAnddynamicToNull = () => (SymbolAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.Symbol, dart.dynamic])))();
+let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
+let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
+let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
+let ListToList = () => (ListToList = dart.constFn(dart.definiteFunctionType(core.List, [core.List])))();
+let intTobool = () => (intTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.int])))();
+let intAndListAndintTovoid = () => (intAndListAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.List, core.int])))();
+let intAndintAndintToint = () => (intAndintAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int, core.int])))();
+let FunctionAndObjectAndStackTraceTodynamic = () => (FunctionAndObjectAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.Object, core.StackTrace])))();
+let FunctionAndZoneToFunction = () => (FunctionAndZoneToFunction = dart.constFn(dart.definiteFunctionType(R => [core.Function, [core.Function, async.Zone]])))();
+let VoidToObject$ = () => (VoidToObject$ = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
+let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
+let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
+let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
+let dynamicTo_Future = () => (dynamicTo_Future = dart.constFn(dart.definiteFunctionType(async._Future, [dart.dynamic])))();
+let _AsyncCallbackTovoid = () => (_AsyncCallbackTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._AsyncCallback])))();
+let FnToNull = () => (FnToNull = dart.constFn(dart.definiteFunctionType(core.Null, [VoidTovoid()])))();
+let _NotificationHandlerToFuture = () => (_NotificationHandlerToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [async._NotificationHandler])))();
+let dynamicAndStackTraceToNull = () => (dynamicAndStackTraceToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, core.StackTrace])))();
+let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace])))();
+let FnAndFnAndFnTodynamic = () => (FnAndFnAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [VoidTodynamic(), dynamicTodynamic(), ZoneBinaryCallbackOfdynamic$dynamic$StackTrace()])))();
+let StreamSubscriptionAnd_FutureAnddynamic__Tovoid = () => (StreamSubscriptionAnd_FutureAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace])))();
+let StreamSubscriptionAnd_FutureTo_ErrorCallback = () => (StreamSubscriptionAnd_FutureTo_ErrorCallback = dart.constFn(dart.definiteFunctionType(async._ErrorCallback, [async.StreamSubscription, async._Future])))();
+let StreamSubscriptionAnd_FutureAnddynamicTovoid = () => (StreamSubscriptionAnd_FutureAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic])))();
+let _EventSinkAnddynamicAnddynamicTovoid = () => (_EventSinkAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._EventSink, dart.dynamic, dart.dynamic])))();
+let _ZoneToZoneDelegate = () => (_ZoneToZoneDelegate = dart.constFn(dart.definiteFunctionType(async.ZoneDelegate, [async._Zone])))();
+let ZoneAndZoneDelegateAndZone__ToR = () => (ZoneAndZoneDelegateAndZone__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]])))();
+let ObjectAndStackTraceTovoid = () => (ObjectAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])))();
+let ZoneAndZoneDelegateAndZone__ToR$ = () => (ZoneAndZoneDelegateAndZone__ToR$ = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
+let ZoneAndZoneDelegateAndZone__ToR$0 = () => (ZoneAndZoneDelegateAndZone__ToR$0 = dart.constFn(dart.definiteFunctionType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]])))();
+let ZoneAndZoneDelegateAndZone__ToR$1 = () => (ZoneAndZoneDelegateAndZone__ToR$1 = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]])))();
+let ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR = () => (ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR = dart.constFn(dart.definiteFunctionType(R => [async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
+let ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T = () => (ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T = dart.constFn(dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])]])))();
+let ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2 = () => (ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2 = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])]])))();
+let ZoneAndZoneDelegateAndZone__ToAsyncError = () => (ZoneAndZoneDelegateAndZone__ToAsyncError = dart.constFn(dart.definiteFunctionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
+let ZoneAndZoneDelegateAndZone__Tovoid = () => (ZoneAndZoneDelegateAndZone__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidTodynamic()])))();
+let ZoneAndZoneDelegateAndZone__ToTimer = () => (ZoneAndZoneDelegateAndZone__ToTimer = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidTovoid()])))();
+let ZoneAndZoneDelegateAndZone__ToTimer$ = () => (ZoneAndZoneDelegateAndZone__ToTimer$ = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerTovoid()])))();
+let ZoneAndZoneDelegateAndZone__Tovoid$ = () => (ZoneAndZoneDelegateAndZone__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))();
+let ZoneAndZoneDelegateAndZone__ToZone = () => (ZoneAndZoneDelegateAndZone__ToZone = dart.constFn(dart.definiteFunctionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])))();
+let ZoneAndZoneDelegateAndZone__Todynamic = () => (ZoneAndZoneDelegateAndZone__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace])))();
+let Fn__ToR = () => (Fn__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [dart.functionType(R, [])], {zoneValues: core.Map, zoneSpecification: async.ZoneSpecification, onError: core.Function}])))();
+let ObjectTobool = () => (ObjectTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.Object])))();
+let dynamicAnddynamicTobool = () => (dynamicAnddynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic])))();
+let IterableAndListTovoid = () => (IterableAndListTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Iterable, core.List])))();
+let _SplayTreeMapNodeTobool = () => (_SplayTreeMapNodeTobool = dart.constFn(dart.definiteFunctionType(core.bool, [collection._SplayTreeMapNode])))();
+let dynamicAndFnTodynamic = () => (dynamicAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dynamicAnddynamicTodynamic()])))();
+let Uint8ListAndintAndintTovoid$ = () => (Uint8ListAndintAndintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
+let StringAndFnTodynamic = () => (StringAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, dynamicAnddynamicTodynamic()])))();
+let EventSinkOfStringTo_LineSplitterEventSink = () => (EventSinkOfStringTo_LineSplitterEventSink = dart.constFn(dart.definiteFunctionType(convert._LineSplitterEventSink, [EventSinkOfString()])))();
+let intAndintToint = () => (intAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int])))();
+let dynamicAndintToint = () => (dynamicAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, core.int])))();
+let intAndintTovoid = () => (intAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int])))();
+let StringToint$ = () => (StringToint$ = dart.constFn(dart.definiteFunctionType(core.int, [core.String])))();
+let intToString = () => (intToString = dart.constFn(dart.definiteFunctionType(core.String, [core.int])))();
+let ObjectAndObjectTobool = () => (ObjectAndObjectTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.Object, core.Object])))();
+let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
+let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
+let StringAndStringTovoid$ = () => (StringAndStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
+let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
+let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
+let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
+let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
+let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
+let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
+let String__Tovoid$ = () => (String__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
+let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
+let StringAndMapTovoid = () => (StringAndMapTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Map])))();
+let StringToServiceExtensionHandler = () => (StringToServiceExtensionHandler = dart.constFn(dart.definiteFunctionType(developer.ServiceExtensionHandler, [core.String])))();
+let StringAndServiceExtensionHandlerTodynamic = () => (StringAndServiceExtensionHandlerTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, developer.ServiceExtensionHandler])))();
+let VoidToUserTag = () => (VoidToUserTag = dart.constFn(dart.definiteFunctionType(developer.UserTag, [])))();
+let MapToString = () => (MapToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Map])))();
+let intAndintAndString__Tovoid = () => (intAndintAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String, core.String])))();
+let intAndintAndString__Tovoid$ = () => (intAndintAndString__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String])))();
+let intAndStringAndString__Tovoid = () => (intAndStringAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.String, core.String, core.String])))();
+let UriTovoid = () => (UriTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Uri])))();
+let SendPortTovoid = () => (SendPortTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [isolate.SendPort])))();
+let SendPortAndboolTovoid = () => (SendPortAndboolTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [isolate.SendPort, core.bool])))();
+let dynamicAndStringAndStringTodynamic = () => (dynamicAndStringAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, core.String])))();
+let ListAndintAndintTo_BufferAndStart = () => (ListAndintAndintTo_BufferAndStart = dart.constFn(dart.definiteFunctionType(io._BufferAndStart, [core.List, core.int, core.int])))();
+let intTovoid = () => (intTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int])))();
+let DirectoryToFutureOfDirectory = () => (DirectoryToFutureOfDirectory = dart.constFn(dart.definiteFunctionType(FutureOfDirectory(), [io.Directory])))();
+let boolToFutureOrOfDirectory = () => (boolToFutureOrOfDirectory = dart.constFn(dart.definiteFunctionType(FutureOrOfDirectory(), [core.bool])))();
+let dynamicTo_Directory = () => (dynamicTo_Directory = dart.constFn(dart.definiteFunctionType(io._Directory, [dart.dynamic])))();
+let dynamicToDirectory = () => (dynamicToDirectory = dart.constFn(dart.definiteFunctionType(io.Directory, [dart.dynamic])))();
+let dynamicToFutureOrOfString = () => (dynamicToFutureOrOfString = dart.constFn(dart.definiteFunctionType(FutureOrOfString(), [dart.dynamic])))();
+let dynamicToFutureOrOfbool = () => (dynamicToFutureOrOfbool = dart.constFn(dart.definiteFunctionType(FutureOrOfbool(), [dart.dynamic])))();
+let dynamicToFutureOrOfint = () => (dynamicToFutureOrOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfint(), [dart.dynamic])))();
+let ListOfintToNull = () => (ListOfintToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfint()])))();
+let RandomAccessFileTovoid = () => (RandomAccessFileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.RandomAccessFile])))();
+let RandomAccessFileToFutureOr = () => (RandomAccessFileToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RandomAccessFile])))();
+let RandomAccessFileToNull = () => (RandomAccessFileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RandomAccessFile])))();
+let RandomAccessFileToFutureOfRandomAccessFile = () => (RandomAccessFileToFutureOfRandomAccessFile = dart.constFn(dart.definiteFunctionType(FutureOfRandomAccessFile(), [io.RandomAccessFile])))();
+let dynamicTo_File = () => (dynamicTo_File = dart.constFn(dart.definiteFunctionType(io._File, [dart.dynamic])))();
+let FileSystemEntityTo_File = () => (FileSystemEntityTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.FileSystemEntity])))();
+let dynamicToFile = () => (dynamicToFile = dart.constFn(dart.definiteFunctionType(io.File, [dart.dynamic])))();
+let dynamicTo_RandomAccessFile = () => (dynamicTo_RandomAccessFile = dart.constFn(dart.definiteFunctionType(io._RandomAccessFile, [dart.dynamic])))();
+let dynamicToDateTime = () => (dynamicToDateTime = dart.constFn(dart.definiteFunctionType(core.DateTime, [dart.dynamic])))();
+let dynamicToFutureOfListOfint = () => (dynamicToFutureOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOfListOfint(), [dart.dynamic])))();
+let intToFutureOfListOfint = () => (intToFutureOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOfListOfint(), [core.int])))();
+let RandomAccessFileToFutureOfListOfint = () => (RandomAccessFileToFutureOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOfListOfint(), [io.RandomAccessFile])))();
+let ListOfintToString = () => (ListOfintToString = dart.constFn(dart.definiteFunctionType(core.String, [ListOfint()])))();
+let RandomAccessFileTo_File = () => (RandomAccessFileTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.RandomAccessFile])))();
+let RandomAccessFileToObject = () => (RandomAccessFileToObject = dart.constFn(dart.definiteFunctionType(core.Object, [io.RandomAccessFile])))();
+let RandomAccessFileToFutureOrOfFile = () => (RandomAccessFileToFutureOrOfFile = dart.constFn(dart.definiteFunctionType(FutureOrOfFile(), [io.RandomAccessFile])))();
+let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
+let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
+let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
+let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
+let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
+let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
+let _HttpClientRequestToFutureOfHttpClientResponse = () => (_HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io._HttpClientRequest])))();
+let dynamicToFutureOfHttpClientResponse = () => (dynamicToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [dart.dynamic])))();
+let VoidToFutureOfHttpClientResponse = () => (VoidToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [])))();
+let VoidToListOfString = () => (VoidToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [])))();
+let _AuthenticationSchemeTo_Credentials = () => (_AuthenticationSchemeTo_Credentials = dart.constFn(dart.definiteFunctionType(io._Credentials, [io._AuthenticationScheme])))();
+let _CredentialsTovoid = () => (_CredentialsTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._Credentials])))();
+let _AuthenticationSchemeAndStringToFuture = () => (_AuthenticationSchemeAndStringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [io._AuthenticationScheme, core.String])))();
+let dynamicToFutureOrOfHttpClientResponse = () => (dynamicToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [dart.dynamic])))();
+let CookieToNull = () => (CookieToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Cookie])))();
+let ListToFutureOrOfHttpClientResponse = () => (ListToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [core.List])))();
+let HttpClientResponseTovoid = () => (HttpClientResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpClientResponse])))();
+let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
+let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
+let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
+let dynamic__ToNull$ = () => (dynamic__ToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
+let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
+let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
+let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
+let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
+let X509CertificateTobool$ = () => (X509CertificateTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [io.X509Certificate])))();
+let _HttpClientConnectionTo_ConnectionInfo = () => (_HttpClientConnectionTo_ConnectionInfo = dart.constFn(dart.definiteFunctionType(io._ConnectionInfo, [io._HttpClientConnection])))();
+let dynamicToFutureOrOf_ConnectionInfo = () => (dynamicToFutureOrOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOrOf_ConnectionInfo(), [dart.dynamic])))();
+let _ConnectionTargetTobool = () => (_ConnectionTargetTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io._ConnectionTarget])))();
+let _ConnectionInfoTo_HttpClientRequest = () => (_ConnectionInfoTo_HttpClientRequest = dart.constFn(dart.definiteFunctionType(io._HttpClientRequest, [io._ConnectionInfo])))();
+let _ConnectionInfoToFutureOrOf_HttpClientRequest = () => (_ConnectionInfoToFutureOrOf_HttpClientRequest = dart.constFn(dart.definiteFunctionType(FutureOrOf_HttpClientRequest(), [io._ConnectionInfo])))();
+let _HttpClientRequestTo_HttpClientRequest = () => (_HttpClientRequestTo_HttpClientRequest = dart.constFn(dart.definiteFunctionType(io._HttpClientRequest, [io._HttpClientRequest])))();
+let VoidTo_ConnectionTarget = () => (VoidTo_ConnectionTarget = dart.constFn(dart.definiteFunctionType(io._ConnectionTarget, [])))();
+let dynamicToFutureOf_ConnectionInfo = () => (dynamicToFutureOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOf_ConnectionInfo(), [dart.dynamic])))();
+let VoidToFutureOf_ConnectionInfo = () => (VoidToFutureOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOf_ConnectionInfo(), [])))();
+let _SiteCredentialsAnd_CredentialsTo_SiteCredentials = () => (_SiteCredentialsAnd_CredentialsTo_SiteCredentials = dart.constFn(dart.definiteFunctionType(io._SiteCredentials, [io._SiteCredentials, io._Credentials])))();
+let ServerSocketTo_HttpServer = () => (ServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.ServerSocket])))();
+let SecureServerSocketTo_HttpServer = () => (SecureServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.SecureServerSocket])))();
+let SocketToNull = () => (SocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Socket])))();
+let _HttpConnectionToNull = () => (_HttpConnectionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpConnection])))();
+let _HttpConnectionToMap = () => (_HttpConnectionToMap = dart.constFn(dart.definiteFunctionType(core.Map, [io._HttpConnection])))();
+let _FileResourceInfoToMapOfString$String = () => (_FileResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._FileResourceInfo])))();
+let _ProcessResourceInfoToMapOfString$String = () => (_ProcessResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._ProcessResourceInfo])))();
+let _SocketResourceInfoToMapOfString$String = () => (_SocketResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._SocketResourceInfo])))();
+let dynamicTo_Link = () => (dynamicTo_Link = dart.constFn(dart.definiteFunctionType(io._Link, [dart.dynamic])))();
+let FileSystemEntityToFutureOfLink = () => (FileSystemEntityToFutureOfLink = dart.constFn(dart.definiteFunctionType(FutureOfLink(), [io.FileSystemEntity])))();
+let FileSystemEntityTo_Link = () => (FileSystemEntityTo_Link = dart.constFn(dart.definiteFunctionType(io._Link, [io.FileSystemEntity])))();
+let dynamicToLink = () => (dynamicToLink = dart.constFn(dart.definiteFunctionType(io.Link, [dart.dynamic])))();
+let DurationTovoid = () => (DurationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Duration])))();
+let RawSecureServerSocketToSecureServerSocket = () => (RawSecureServerSocketToSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.SecureServerSocket, [io.RawSecureServerSocket])))();
+let RawSecureSocketToSecureSocket = () => (RawSecureSocketToSecureSocket = dart.constFn(dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])))();
+let dynamicToFutureOfRawSecureSocket = () => (dynamicToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [dart.dynamic])))();
+let RawServerSocketToRawSecureServerSocket = () => (RawServerSocketToRawSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket])))();
+let RawSecureSocketToNull = () => (RawSecureSocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RawSecureSocket])))();
+let RawSocketToFutureOfRawSecureSocket = () => (RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [io.RawSocket])))();
+let _FilterStatusToNull = () => (_FilterStatusToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._FilterStatus])))();
+let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
+let dynamicTo_FilterStatus = () => (dynamicTo_FilterStatus = dart.constFn(dart.definiteFunctionType(io._FilterStatus, [dart.dynamic])))();
+let ListOfintAndStringTovoid = () => (ListOfintAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint(), core.String])))();
+let dynamicToStdioType = () => (dynamicToStdioType = dart.constFn(dart.definiteFunctionType(io.StdioType, [dart.dynamic])))();
+let EventSinkTo_WebSocketProtocolTransformer = () => (EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketProtocolTransformer, [async.EventSink])))();
+let WebSocketTovoid = () => (WebSocketTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.WebSocket])))();
+let HttpRequestToNull = () => (HttpRequestToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.HttpRequest])))();
+let SocketTo_WebSocketImpl = () => (SocketTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [io.Socket])))();
+let StringToFuture = () => (StringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [core.String])))();
+let EventSinkOfListOfintTo_WebSocketOutgoingTransformer = () => (EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [EventSinkOfListOfint()])))();
+let dynamicTo_WebSocketImpl = () => (dynamicTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic])))();
+let HttpClientResponseToFutureOfWebSocket = () => (HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.definiteFunctionType(FutureOfWebSocket(), [io.HttpClientResponse])))();
+let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
+let HttpClientRequestToFutureOfHttpClientResponse = () => (HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io.HttpClientRequest])))();
+let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
+let ListToIsolate = () => (ListToIsolate = dart.constFn(dart.definiteFunctionType(isolate.Isolate, [core.List])))();
+let dynamicTo_DartObject = () => (dynamicTo_DartObject = dart.constFn(dart.definiteFunctionType(js._DartObject, [dart.dynamic])))();
+let dynamicAnddynamicAndFnToObject = () => (dynamicAnddynamicAndFnToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic, dart.dynamic, dynamicTodynamic()])))();
+let FToF = () => (FToF = dart.constFn(dart.definiteFunctionType(F => [F, [F]])))();
+let FunctionToFunction = () => (FunctionToFunction = dart.constFn(dart.definiteFunctionType(core.Function, [core.Function])))();
+let FunctionAndListTodynamic = () => (FunctionAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.List])))();
+let TAndTToT = () => (TAndTToT = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
+let TAndTToT$ = () => (TAndTToT$ = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
+let numAndnumTodouble = () => (numAndnumTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num, core.num])))();
+let numAndnumTonum = () => (numAndnumTonum = dart.constFn(dart.definiteFunctionType(core.num, [core.num, core.num])))();
+let numTodouble = () => (numTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num])))();
+let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T => [T, [T]])))();
+let LibraryMirrorTobool = () => (LibraryMirrorTobool = dart.constFn(dart.definiteFunctionType(core.bool, [mirrors.LibraryMirror])))();
+let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
+let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
+let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
+let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Event])))();
+let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
+let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
+let NodeTobool$ = () => (NodeTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Node])))();
+let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
+let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
+let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
+let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileSystem])))();
+let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileError])))();
+let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Entry])))();
+let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html$.CssStyleDeclaration, [dart.dynamic])))();
+let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.CssStyleDeclaration])))();
+let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Metadata])))();
+let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
+let ElementTobool$ = () => (ElementTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Element])))();
+let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileWriter])))();
+let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.File])))();
+let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Geoposition])))();
+let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.PositionError])))();
+let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html$.HttpRequest])))();
+let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.ProgressEvent])))();
+let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
+let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.MediaStream])))();
+let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.NavigatorUserMediaError])))();
+let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcSessionDescription])))();
+let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcStatsResponse])))();
+let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.OptionElement])))();
+let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
+let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.BeforeUnloadEvent])))();
+let ElementTovoid$ = () => (ElementTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Element])))();
+let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html$.CssClassSet, [html$.Element])))();
+let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
+let boolAndCssClassSetImplTobool = () => (boolAndCssClassSetImplTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.bool, html_common.CssClassSetImpl])))();
+let SetOfStringTobool = () => (SetOfStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [SetOfString()])))();
+let SetOfStringTovoid = () => (SetOfStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [SetOfString()])))();
+let EventAndStringTobool = () => (EventAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Event, core.String])))();
+let EventTodynamic = () => (EventTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html$.Event])))();
+let KeyEventTobool = () => (KeyEventTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.KeyEvent])))();
+let NodeValidatorTobool = () => (NodeValidatorTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.NodeValidator])))();
+let NodeAndNodeToint = () => (NodeAndNodeToint = dart.constFn(dart.definiteFunctionType(core.int, [html$.Node, html$.Node])))();
+let FromToTo = () => (FromToTo = dart.constFn(dart.definiteFunctionType((From, To) => [To, [From]])))();
+let dynamicToWindowBase = () => (dynamicToWindowBase = dart.constFn(dart.definiteFunctionType(html$.WindowBase, [dart.dynamic])))();
+let dynamicToEventTarget = () => (dynamicToEventTarget = dart.constFn(dart.definiteFunctionType(html$.EventTarget, [dart.dynamic])))();
+let dynamicAnddynamicAnddynamic__Todynamic = () => (dynamicAnddynamicAnddynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicAndString__Tovoid = () => (dynamicAnddynamicAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, core.String, core.Type, core.String])))();
+let _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = () => (_wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = dart.constFn(dart.definiteFunctionType((A, R) => [html$._wrapZoneCallback$(A, R), [html$._wrapZoneCallback$(A, R)]])))();
+let _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = () => (_wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = dart.constFn(dart.definiteFunctionType((A, B, R) => [html$._wrapZoneBinaryCallback$(A, B, R), [html$._wrapZoneBinaryCallback$(A, B, R)]])))();
+let StringToElement = () => (StringToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [core.String])))();
+let StringToElementListOfElement = () => (StringToElementListOfElement = dart.constFn(dart.definiteFunctionType(ElementListOfElement(), [core.String])))();
+let NodeAndNodeTovoid = () => (NodeAndNodeTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Node, html$.Node])))();
+let dynamicToImageData = () => (dynamicToImageData = dart.constFn(dart.definiteFunctionType(html$.ImageData, [dart.dynamic])))();
+let ImageDataTodynamic = () => (ImageDataTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html$.ImageData])))();
+let Map__Todynamic = () => (Map__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Map], [dynamicTovoid()])))();
+let ListOfStringToList = () => (ListOfStringToList = dart.constFn(dart.definiteFunctionType(core.List, [ListOfString()])))();
+let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
+let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
+let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [html$.Node])))();
+let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
+dart.mixin = function(base, ...mixins) {
+  class Mixin extends base {}
+  for (let m of mixins) {
+    dart.copyProperties(Mixin.prototype, m.prototype);
+  }
+  Mixin.prototype.new = function(...args) {
+    for (let i = mixins.length - 1; i >= 0; i--) {
+      mixins[i].prototype.new.call(this);
     }
-    Mixin.prototype.new = function(...args) {
-      for (let i = mixins.length - 1; i >= 0; i--) {
-        mixins[i].prototype.new.call(this);
-      }
-      base.prototype.new.apply(this, args);
-    };
-    dart.setSignature(Mixin, {
-      methods: () => {
-        let s = {};
-        for (let m of mixins) {
-          dart.copyProperties(s, m[dart._methodSig]);
-        }
-        return s;
-      },
-      fields: () => {
-        let s = {};
-        for (let m of mixins) {
-          dart.copyProperties(s, m[dart._fieldSig]);
-        }
-        return s;
-      },
-      getters: () => {
-        let s = {};
-        for (let m of mixins) {
-          dart.copyProperties(s, m[dart._getterSig]);
-        }
-        return s;
-      },
-      setters: () => {
-        let s = {};
-        for (let m of mixins) {
-          dart.copyProperties(s, m[dart._setterSig]);
-        }
-        return s;
-      }
-    });
-    Mixin[dart._mixins] = mixins;
-    return Mixin;
+    base.prototype.new.apply(this, args);
   };
-  dart.getMixins = function(clazz) {
-    return Object.hasOwnProperty.call(clazz, dart._mixins) ? clazz[dart._mixins] : null;
-  };
-  dart.getImplements = function(clazz) {
-    return Object.hasOwnProperty.call(clazz, dart.implements) ? clazz[dart.implements] : null;
-  };
-  dart.flattenFutures = function(builder) {
-    function flatten(T) {
-      if (!T) return builder(dart.dynamic);
-      let futureClass = dart.getGenericClass(async.Future);
-      if (dart.getGenericClass(T) == futureClass) {
-        let args = dart.getGenericArgs(T);
-        if (args) return builder(args[0]);
+  dart.setSignature(Mixin, {
+    methods: () => {
+      let s = {};
+      for (let m of mixins) {
+        dart.copyProperties(s, m[dart._methodSig]);
       }
-      return builder(T);
+      return s;
+    },
+    fields: () => {
+      let s = {};
+      for (let m of mixins) {
+        dart.copyProperties(s, m[dart._fieldSig]);
+      }
+      return s;
+    },
+    getters: () => {
+      let s = {};
+      for (let m of mixins) {
+        dart.copyProperties(s, m[dart._getterSig]);
+      }
+      return s;
+    },
+    setters: () => {
+      let s = {};
+      for (let m of mixins) {
+        dart.copyProperties(s, m[dart._setterSig]);
+      }
+      return s;
     }
-    return flatten;
-  };
-  dart.generic = function(typeConstructor, setBaseClass) {
-    if (setBaseClass === void 0) setBaseClass = null;
-    return (() => {
-      let length = typeConstructor.length;
-      if (length < 1) {
-        dart.throwInternalError('must have at least one generic type argument');
+  });
+  Mixin[dart._mixins] = mixins;
+  return Mixin;
+};
+dart.getMixins = function(clazz) {
+  return Object.hasOwnProperty.call(clazz, dart._mixins) ? clazz[dart._mixins] : null;
+};
+dart.getImplements = function(clazz) {
+  return Object.hasOwnProperty.call(clazz, dart.implements) ? clazz[dart.implements] : null;
+};
+dart.flattenFutures = function(builder) {
+  function flatten(T) {
+    if (!T) return builder(dart.dynamic);
+    let futureClass = dart.getGenericClass(async.Future);
+    if (dart.getGenericClass(T) == futureClass) {
+      let args = dart.getGenericArgs(T);
+      if (args) return builder(args[0]);
+    }
+    return builder(T);
+  }
+  return flatten;
+};
+dart.generic = function(typeConstructor, setBaseClass) {
+  if (setBaseClass === void 0) setBaseClass = null;
+  return (() => {
+    let length = typeConstructor.length;
+    if (length < 1) {
+      dart.throwInternalError('must have at least one generic type argument');
+    }
+    let resultMap = new Map();
+    function makeGenericType(...args) {
+      if (args.length != length && args.length != 0) {
+        dart.throwInternalError('requires ' + length + ' or 0 type arguments');
       }
-      let resultMap = new Map();
-      function makeGenericType(...args) {
-        if (args.length != length && args.length != 0) {
-          dart.throwInternalError('requires ' + length + ' or 0 type arguments');
+      while (args.length < length)
+        args.push(dart.dynamic);
+      let value = resultMap;
+      for (let i = 0; i < length; i++) {
+        let arg = args[i];
+        if (arg == null) {
+          dart.throwInternalError('type arguments should not be null: ' + typeConstructor);
         }
-        while (args.length < length)
-          args.push(dart.dynamic);
-        let value = resultMap;
-        for (let i = 0; i < length; i++) {
-          let arg = args[i];
-          if (arg == null) {
-            dart.throwInternalError('type arguments should not be null: ' + typeConstructor);
-          }
-          let map = value;
-          value = map.get(arg);
-          if (value === void 0) {
-            if (i + 1 == length) {
-              value = typeConstructor.apply(null, args);
-              if (value) {
-                value[dart._typeArguments] = args;
-                value[dart._originalDeclaration] = makeGenericType;
-              }
-              map.set(arg, value);
-              if (setBaseClass) setBaseClass(value);
-            } else {
-              value = new Map();
-              map.set(arg, value);
+        let map = value;
+        value = map.get(arg);
+        if (value === void 0) {
+          if (i + 1 == length) {
+            value = typeConstructor.apply(null, args);
+            if (value) {
+              value[dart._typeArguments] = args;
+              value[dart._originalDeclaration] = makeGenericType;
             }
+            map.set(arg, value);
+            if (setBaseClass) setBaseClass(value);
+          } else {
+            value = new Map();
+            map.set(arg, value);
           }
         }
-        return value;
       }
-      makeGenericType[dart._genericTypeCtor] = typeConstructor;
-      return makeGenericType;
-    })();
-  };
-  dart.getGenericClass = function(type) {
-    return dart.safeGetOwnProperty(type, dart._originalDeclaration);
-  };
-  dart.getGenericArgs = function(type) {
-    return dart.safeGetOwnProperty(type, dart._typeArguments);
-  };
-  dart.getConstructorSig = function(value) {
-    return value[dart._constructorSig];
-  };
-  dart.getMethodSig = function(value) {
-    return value[dart._methodSig];
-  };
-  dart.getFieldSig = function(value) {
-    return value[dart._fieldSig];
-  };
-  dart.getGetterSig = function(value) {
-    return value[dart._getterSig];
-  };
-  dart.getSetterSig = function(value) {
-    return value[dart._setterSig];
-  };
-  dart.getStaticSig = function(value) {
-    return value[dart._staticSig];
-  };
-  dart.getStaticFieldSig = function(value) {
-    return value[dart._staticFieldSig];
-  };
-  dart.getStaticGetterSig = function(value) {
-    return value[dart._staticGetterSig];
-  };
-  dart.getStaticSetterSig = function(value) {
-    return value[dart._staticSetterSig];
-  };
-  dart.getGenericTypeCtor = function(value) {
-    return value[dart._genericTypeCtor];
-  };
-  dart.getType = function(obj) {
-    return obj == null ? core.Object : obj.__proto__.constructor;
-  };
-  dart.isJsInterop = function(obj) {
-    if (typeof obj === "function") {
-      return dart._getRuntimeType(obj) == null;
+      return value;
     }
-    if (typeof obj !== "object") return false;
-    if (dart.getExtensionType(obj) != null) return false;
-    return !(obj instanceof core.Object);
-  };
-  dart.getMethodType = function(type, name) {
-    let sigObj = type[dart._methodSig];
-    if (sigObj === void 0) return void 0;
-    return sigObj[name];
-  };
-  dart.getFieldType = function(type, name) {
-    let sigObj = type[dart._fieldSig];
-    if (sigObj === void 0) return void 0;
-    let fieldType = sigObj[name];
-    return fieldType instanceof Array ? fieldType[0] : fieldType;
-  };
-  dart.getSetterType = function(type, name) {
-    let sigObj = type[dart._setterSig];
-    if (sigObj === void 0) return void 0;
-    return sigObj[name];
-  };
-  dart.classGetConstructorType = function(cls, name) {
-    if (!name) name = 'new';
-    if (cls === void 0) return void 0;
-    if (cls == null) return void 0;
-    let sigCtor = cls[dart._constructorSig];
-    if (sigCtor === void 0) return void 0;
-    return sigCtor[name];
-  };
-  dart.bind = function(obj, name, f) {
-    if (f === void 0) f = obj[name];
-    f = f.bind(obj);
-    let sig = dart.getMethodType(dart.getType(obj), name);
-    dart.assert(sig);
-    dart.tag(f, sig);
-    return f;
-  };
-  dart.gbind = function(f, ...typeArgs) {
-    let result = f.apply(null, typeArgs);
-    let sig = dart._getRuntimeType(f).apply(null, typeArgs);
-    dart.tag(result, sig);
-    return result;
-  };
-  dart._setInstanceSignature = function(f, sigF, kind) {
-    dart.defineMemoizedGetter(f, kind, () => {
-      let sigObj = sigF();
-      let proto = f.__proto__;
-      sigObj.__proto__ = kind in proto ? proto[kind] : null;
-      return sigObj;
+    makeGenericType[dart._genericTypeCtor] = typeConstructor;
+    return makeGenericType;
+  })();
+};
+dart.getGenericClass = function(type) {
+  return dart.safeGetOwnProperty(type, dart._originalDeclaration);
+};
+dart.getGenericArgs = function(type) {
+  return dart.safeGetOwnProperty(type, dart._typeArguments);
+};
+dart.getConstructorSig = function(value) {
+  return value[dart._constructorSig];
+};
+dart.getMethodSig = function(value) {
+  return value[dart._methodSig];
+};
+dart.getFieldSig = function(value) {
+  return value[dart._fieldSig];
+};
+dart.getGetterSig = function(value) {
+  return value[dart._getterSig];
+};
+dart.getSetterSig = function(value) {
+  return value[dart._setterSig];
+};
+dart.getStaticSig = function(value) {
+  return value[dart._staticSig];
+};
+dart.getStaticFieldSig = function(value) {
+  return value[dart._staticFieldSig];
+};
+dart.getStaticGetterSig = function(value) {
+  return value[dart._staticGetterSig];
+};
+dart.getStaticSetterSig = function(value) {
+  return value[dart._staticSetterSig];
+};
+dart.getGenericTypeCtor = function(value) {
+  return value[dart._genericTypeCtor];
+};
+dart.getType = function(obj) {
+  return obj == null ? core.Object : obj.__proto__.constructor;
+};
+dart.isJsInterop = function(obj) {
+  if (typeof obj === "function") {
+    return dart._getRuntimeType(obj) == null;
+  }
+  if (typeof obj !== "object") return false;
+  if (dart.getExtensionType(obj) != null) return false;
+  return !(obj instanceof core.Object);
+};
+dart.getMethodType = function(type, name) {
+  let sigObj = type[dart._methodSig];
+  if (sigObj === void 0) return void 0;
+  return sigObj[name];
+};
+dart.getFieldType = function(type, name) {
+  let sigObj = type[dart._fieldSig];
+  if (sigObj === void 0) return void 0;
+  let fieldType = sigObj[name];
+  return fieldType instanceof Array ? fieldType[0] : fieldType;
+};
+dart.getSetterType = function(type, name) {
+  let sigObj = type[dart._setterSig];
+  if (sigObj === void 0) return void 0;
+  return sigObj[name];
+};
+dart.classGetConstructorType = function(cls, name) {
+  if (!name) name = 'new';
+  if (cls === void 0) return void 0;
+  if (cls == null) return void 0;
+  let sigCtor = cls[dart._constructorSig];
+  if (sigCtor === void 0) return void 0;
+  return sigCtor[name];
+};
+dart.bind = function(obj, name, f) {
+  if (f === void 0) f = obj[name];
+  f = f.bind(obj);
+  let sig = dart.getMethodType(dart.getType(obj), name);
+  dart.assert(sig);
+  dart.tag(f, sig);
+  return f;
+};
+dart.gbind = function(f, ...typeArgs) {
+  let result = f.apply(null, typeArgs);
+  let sig = dart._getRuntimeType(f).apply(null, typeArgs);
+  dart.tag(result, sig);
+  return result;
+};
+dart._setInstanceSignature = function(f, sigF, kind) {
+  dart.defineMemoizedGetter(f, kind, () => {
+    let sigObj = sigF();
+    let proto = f.__proto__;
+    sigObj.__proto__ = kind in proto ? proto[kind] : null;
+    return sigObj;
+  });
+};
+dart._setMethodSignature = function(f, sigF) {
+  return dart._setInstanceSignature(f, sigF, dart._methodSig);
+};
+dart._setFieldSignature = function(f, sigF) {
+  return dart._setInstanceSignature(f, sigF, dart._fieldSig);
+};
+dart._setGetterSignature = function(f, sigF) {
+  return dart._setInstanceSignature(f, sigF, dart._getterSig);
+};
+dart._setSetterSignature = function(f, sigF) {
+  return dart._setInstanceSignature(f, sigF, dart._setterSig);
+};
+dart._setConstructorSignature = function(f, sigF) {
+  return dart.defineMemoizedGetter(f, dart._constructorSig, sigF);
+};
+dart._setStaticSignature = function(f, sigF) {
+  return dart.defineMemoizedGetter(f, dart._staticSig, sigF);
+};
+dart._setStaticFieldSignature = function(f, sigF) {
+  return dart.defineMemoizedGetter(f, dart._staticFieldSig, sigF);
+};
+dart._setStaticGetterSignature = function(f, sigF) {
+  return dart.defineMemoizedGetter(f, dart._staticGetterSig, sigF);
+};
+dart._setStaticSetterSignature = function(f, sigF) {
+  return dart.defineMemoizedGetter(f, dart._staticSetterSig, sigF);
+};
+dart._setStaticTypes = function(f, names) {
+  for (let name of names) {
+    if (!f[name]) continue;
+    dart.tagLazy(f[name], function() {
+      return f[dart._staticSig][name];
     });
+  }
+};
+dart.setSignature = function(f, signature) {
+  let constructors = 'constructors' in signature ? signature.constructors : () => ({});
+  let methods = 'methods' in signature ? signature.methods : () => ({});
+  let fields = 'fields' in signature ? signature.fields : () => ({});
+  let getters = 'getters' in signature ? signature.getters : () => ({});
+  let setters = 'setters' in signature ? signature.setters : () => ({});
+  let statics = 'statics' in signature ? signature.statics : () => ({});
+  let staticFields = 'sfields' in signature ? signature.sfields : () => ({});
+  let staticGetters = 'sgetters' in signature ? signature.sgetters : () => ({});
+  let staticSetters = 'ssetters' in signature ? signature.ssetters : () => ({});
+  let names = 'names' in signature ? signature.names : [];
+  dart._setConstructorSignature(f, constructors);
+  dart._setMethodSignature(f, methods);
+  dart._setFieldSignature(f, fields);
+  dart._setGetterSignature(f, getters);
+  dart._setSetterSignature(f, setters);
+  dart._setStaticSignature(f, statics);
+  dart._setStaticFieldSignature(f, staticFields);
+  dart._setStaticGetterSignature(f, staticGetters);
+  dart._setStaticSetterSignature(f, staticSetters);
+  dart._setStaticTypes(f, names);
+};
+dart._hasSigEntry = function(type, sigF, name) {
+  let sigObj = type[sigF];
+  if (sigObj === void 0) return false;
+  return name in sigObj;
+};
+dart.hasMethod = function(type, name) {
+  return dart._hasSigEntry(type, dart._methodSig, name);
+};
+dart.hasGetter = function(type, name) {
+  return dart._hasSigEntry(type, dart._getterSig, name);
+};
+dart.hasSetter = function(type, name) {
+  return dart._hasSigEntry(type, dart._setterSig, name);
+};
+dart.hasField = function(type, name) {
+  return dart._hasSigEntry(type, dart._fieldSig, name);
+};
+dart.defineNamedConstructor = function(clazz, name) {
+  let proto = clazz.prototype;
+  let initMethod = proto[name];
+  let ctor = function(...args) {
+    initMethod.apply(this, args);
   };
-  dart._setMethodSignature = function(f, sigF) {
-    return dart._setInstanceSignature(f, sigF, dart._methodSig);
-  };
-  dart._setFieldSignature = function(f, sigF) {
-    return dart._setInstanceSignature(f, sigF, dart._fieldSig);
-  };
-  dart._setGetterSignature = function(f, sigF) {
-    return dart._setInstanceSignature(f, sigF, dart._getterSig);
-  };
-  dart._setSetterSignature = function(f, sigF) {
-    return dart._setInstanceSignature(f, sigF, dart._setterSig);
-  };
-  dart._setConstructorSignature = function(f, sigF) {
-    return dart.defineMemoizedGetter(f, dart._constructorSig, sigF);
-  };
-  dart._setStaticSignature = function(f, sigF) {
-    return dart.defineMemoizedGetter(f, dart._staticSig, sigF);
-  };
-  dart._setStaticFieldSignature = function(f, sigF) {
-    return dart.defineMemoizedGetter(f, dart._staticFieldSig, sigF);
-  };
-  dart._setStaticGetterSignature = function(f, sigF) {
-    return dart.defineMemoizedGetter(f, dart._staticGetterSig, sigF);
-  };
-  dart._setStaticSetterSignature = function(f, sigF) {
-    return dart.defineMemoizedGetter(f, dart._staticSetterSig, sigF);
-  };
-  dart._setStaticTypes = function(f, names) {
-    for (let name of names) {
-      if (!f[name]) continue;
-      dart.tagLazy(f[name], function() {
-        return f[dart._staticSig][name];
-      });
-    }
-  };
-  dart.setSignature = function(f, signature) {
-    let constructors = 'constructors' in signature ? signature.constructors : () => ({});
-    let methods = 'methods' in signature ? signature.methods : () => ({});
-    let fields = 'fields' in signature ? signature.fields : () => ({});
-    let getters = 'getters' in signature ? signature.getters : () => ({});
-    let setters = 'setters' in signature ? signature.setters : () => ({});
-    let statics = 'statics' in signature ? signature.statics : () => ({});
-    let staticFields = 'sfields' in signature ? signature.sfields : () => ({});
-    let staticGetters = 'sgetters' in signature ? signature.sgetters : () => ({});
-    let staticSetters = 'ssetters' in signature ? signature.ssetters : () => ({});
-    let names = 'names' in signature ? signature.names : [];
-    dart._setConstructorSignature(f, constructors);
-    dart._setMethodSignature(f, methods);
-    dart._setFieldSignature(f, fields);
-    dart._setGetterSignature(f, getters);
-    dart._setSetterSignature(f, setters);
-    dart._setStaticSignature(f, statics);
-    dart._setStaticFieldSignature(f, staticFields);
-    dart._setStaticGetterSignature(f, staticGetters);
-    dart._setStaticSetterSignature(f, staticSetters);
-    dart._setStaticTypes(f, names);
-  };
-  dart._hasSigEntry = function(type, sigF, name) {
-    let sigObj = type[sigF];
-    if (sigObj === void 0) return false;
-    return name in sigObj;
-  };
-  dart.hasMethod = function(type, name) {
-    return dart._hasSigEntry(type, dart._methodSig, name);
-  };
-  dart.hasGetter = function(type, name) {
-    return dart._hasSigEntry(type, dart._getterSig, name);
-  };
-  dart.hasSetter = function(type, name) {
-    return dart._hasSigEntry(type, dart._setterSig, name);
-  };
-  dart.hasField = function(type, name) {
-    return dart._hasSigEntry(type, dart._fieldSig, name);
-  };
-  dart.defineNamedConstructor = function(clazz, name) {
-    let proto = clazz.prototype;
-    let initMethod = proto[name];
-    let ctor = function(...args) {
-      initMethod.apply(this, args);
-    };
-    ctor[dart.isNamedConstructor] = true;
-    ctor.prototype = proto;
-    dart.defineProperty(clazz, name, {value: ctor, configurable: true});
-  };
-  dart.getExtensionType = function(obj) {
-    return obj[dart._extensionType];
-  };
-  dart.getExtensionSymbol = function(name) {
-    let sym = dartx[name];
-    if (sym == null) {
-      sym = Symbol("dartx." + name.toString());
-      dartx[name] = sym;
-    }
-    return sym;
-  };
-  dart.defineExtensionNames = function(names) {
-    return names.forEach(dart.getExtensionSymbol);
-  };
-  dart._installProperties = function(jsProto, extProto) {
-    let coreObjProto = core.Object.prototype;
-    let parentsExtension = jsProto.__proto__[dart._extensionType];
-    let installedParent = parentsExtension && parentsExtension.prototype;
-    dart._installProperties2(jsProto, extProto, coreObjProto, installedParent);
-  };
-  dart._installProperties2 = function(jsProto, extProto, coreObjProto, installedParent) {
-    if (extProto === coreObjProto) {
-      dart._installPropertiesForObject(jsProto, coreObjProto);
-      return;
-    }
-    if (jsProto !== extProto) {
-      let extParent = extProto.__proto__;
-      if (installedParent !== extParent) {
-        dart._installProperties2(jsProto, extParent, coreObjProto, installedParent);
-      }
-    }
-    dart.copyTheseProperties(jsProto, extProto, dart.getOwnPropertySymbols(extProto));
-  };
-  dart._installPropertiesForObject = function(jsProto, coreObjProto) {
-    let names = dart.getOwnPropertyNames(coreObjProto);
-    for (let i = 0; i < names.length; ++i) {
-      let name = names[i];
-      let desc = dart.getOwnPropertyDescriptor(coreObjProto, name);
-      dart.defineProperty(jsProto, dart.getExtensionSymbol(name), desc);
-    }
+  ctor[dart.isNamedConstructor] = true;
+  ctor.prototype = proto;
+  dart.defineProperty(clazz, name, {value: ctor, configurable: true});
+};
+dart.getExtensionType = function(obj) {
+  return obj[dart._extensionType];
+};
+dart.getExtensionSymbol = function(name) {
+  let sym = dartx[name];
+  if (sym == null) {
+    sym = Symbol("dartx." + name.toString());
+    dartx[name] = sym;
+  }
+  return sym;
+};
+dart.defineExtensionNames = function(names) {
+  return names.forEach(dart.getExtensionSymbol);
+};
+dart._installProperties = function(jsProto, extProto) {
+  let coreObjProto = core.Object.prototype;
+  let parentsExtension = jsProto.__proto__[dart._extensionType];
+  let installedParent = parentsExtension && parentsExtension.prototype;
+  dart._installProperties2(jsProto, extProto, coreObjProto, installedParent);
+};
+dart._installProperties2 = function(jsProto, extProto, coreObjProto, installedParent) {
+  if (extProto === coreObjProto) {
+    dart._installPropertiesForObject(jsProto, coreObjProto);
     return;
-  };
-  dart.registerExtension = function(jsType, dartExtType) {
-    if (!jsType) return;
-    let extProto = dartExtType.prototype;
-    let jsProto = jsType.prototype;
-    if (!jsProto) return;
-    jsProto[dart._extensionType] = dartExtType;
-    dart._installProperties(jsProto, extProto);
-    function updateSig(sigF) {
-      let originalSigFn = dart.getOwnPropertyDescriptor(dartExtType, sigF).get;
-      dart.assert(originalSigFn);
-      dart.defineMemoizedGetter(jsType, sigF, originalSigFn);
+  }
+  if (jsProto !== extProto) {
+    let extParent = extProto.__proto__;
+    if (installedParent !== extParent) {
+      dart._installProperties2(jsProto, extParent, coreObjProto, installedParent);
     }
-    updateSig(dart._methodSig);
-    updateSig(dart._fieldSig);
-    updateSig(dart._getterSig);
-    updateSig(dart._setterSig);
-  };
-  dart.defineExtensionMembers = function(type, methodNames) {
-    let proto = type.prototype;
-    for (let name of methodNames) {
-      let method = dart.getOwnPropertyDescriptor(proto, name);
-      dart.defineProperty(proto, dart.getExtensionSymbol(name), method);
-    }
-    function upgradeSig(sigF) {
-      let originalSigFn = dart.getOwnPropertyDescriptor(type, sigF).get;
-      dart.defineMemoizedGetter(type, sigF, function() {
-        let sig = originalSigFn();
-        let propertyNames = Object.getOwnPropertyNames(sig);
-        for (let name of methodNames) {
-          if (name in sig) {
-            sig[dart.getExtensionSymbol(name)] = sig[name];
-          }
+  }
+  dart.copyTheseProperties(jsProto, extProto, dart.getOwnPropertySymbols(extProto));
+};
+dart._installPropertiesForObject = function(jsProto, coreObjProto) {
+  let names = dart.getOwnPropertyNames(coreObjProto);
+  for (let i = 0; i < names.length; ++i) {
+    let name = names[i];
+    let desc = dart.getOwnPropertyDescriptor(coreObjProto, name);
+    dart.defineProperty(jsProto, dart.getExtensionSymbol(name), desc);
+  }
+  return;
+};
+dart.registerExtension = function(jsType, dartExtType) {
+  if (!jsType) return;
+  let extProto = dartExtType.prototype;
+  let jsProto = jsType.prototype;
+  if (!jsProto) return;
+  jsProto[dart._extensionType] = dartExtType;
+  dart._installProperties(jsProto, extProto);
+  function updateSig(sigF) {
+    let originalSigFn = dart.getOwnPropertyDescriptor(dartExtType, sigF).get;
+    dart.assert(originalSigFn);
+    dart.defineMemoizedGetter(jsType, sigF, originalSigFn);
+  }
+  updateSig(dart._methodSig);
+  updateSig(dart._fieldSig);
+  updateSig(dart._getterSig);
+  updateSig(dart._setterSig);
+};
+dart.defineExtensionMembers = function(type, methodNames) {
+  let proto = type.prototype;
+  for (let name of methodNames) {
+    let method = dart.getOwnPropertyDescriptor(proto, name);
+    dart.defineProperty(proto, dart.getExtensionSymbol(name), method);
+  }
+  function upgradeSig(sigF) {
+    let originalSigFn = dart.getOwnPropertyDescriptor(type, sigF).get;
+    dart.defineMemoizedGetter(type, sigF, function() {
+      let sig = originalSigFn();
+      let propertyNames = Object.getOwnPropertyNames(sig);
+      for (let name of methodNames) {
+        if (name in sig) {
+          sig[dart.getExtensionSymbol(name)] = sig[name];
         }
-        return sig;
-      });
-    }
-    upgradeSig(dart._methodSig);
-    upgradeSig(dart._fieldSig);
-    upgradeSig(dart._getterSig);
-    upgradeSig(dart._setterSig);
-  };
-  dart.setType = function(obj, type) {
-    obj.__proto__ = type.prototype;
-    return obj;
-  };
-  dart.list = function(obj, elementType) {
-    return dart.setType(obj, dart.getGenericClass(_interceptors.JSArray)(elementType));
-  };
-  dart.setBaseClass = function(derived, base) {
+      }
+      return sig;
+    });
+  }
+  upgradeSig(dart._methodSig);
+  upgradeSig(dart._fieldSig);
+  upgradeSig(dart._getterSig);
+  upgradeSig(dart._setterSig);
+};
+dart.setType = function(obj, type) {
+  obj.__proto__ = type.prototype;
+  return obj;
+};
+dart.list = function(obj, elementType) {
+  return dart.setType(obj, dart.getGenericClass(_interceptors.JSArray)(elementType));
+};
+dart.setBaseClass = function(derived, base) {
+  derived.prototype.__proto__ = base.prototype;
+  derived.__proto__ = base;
+};
+dart.setExtensionBaseClass = function(derived, base) {
+  if (base) {
+    derived.prototype[dart._extensionType] = derived;
     derived.prototype.__proto__ = base.prototype;
-    derived.__proto__ = base;
-  };
-  dart.setExtensionBaseClass = function(derived, base) {
-    if (base) {
-      derived.prototype[dart._extensionType] = derived;
-      derived.prototype.__proto__ = base.prototype;
+  }
+};
+dart.callableClass = function(callableCtor, classExpr) {
+  callableCtor.prototype = classExpr.prototype;
+  callableCtor.prototype.constructor = callableCtor;
+  callableCtor.__proto__ = classExpr;
+  return callableCtor;
+};
+dart.defineNamedConstructorCallable = function(clazz, name, ctor) {
+  ctor.prototype = clazz.prototype;
+  dart.defineProperty(clazz, name, {value: ctor, configurable: true});
+};
+dart.defineEnumValues = function(enumClass, names) {
+  let values = [];
+  for (var i = 0; i < names.length; i++) {
+    let value = dart.const(new enumClass(i));
+    values.push(value);
+    Object.defineProperty(enumClass, names[i], {value: value, configurable: true});
+  }
+  enumClass.values = dart.constList(values, enumClass);
+};
+dart.fn = function(closure, t) {
+  if (t == null) {
+    t = dart.definiteFunctionType(dart.dynamic, Array(closure.length).fill(dart.dynamic), void 0);
+  }
+  dart.tag(closure, t);
+  return closure;
+};
+dart.lazyFn = function(closure, computeType) {
+  dart.tagLazy(closure, computeType);
+  return closure;
+};
+dart._checkPrimitiveType = function(obj) {
+  if (obj == null) return core.Null;
+  if (typeof obj == "number") {
+    if (Math.floor(obj) == obj) {
+      return core.int;
     }
-  };
-  dart.callableClass = function(callableCtor, classExpr) {
-    callableCtor.prototype = classExpr.prototype;
-    callableCtor.prototype.constructor = callableCtor;
-    callableCtor.__proto__ = classExpr;
-    return callableCtor;
-  };
-  dart.defineNamedConstructorCallable = function(clazz, name, ctor) {
-    ctor.prototype = clazz.prototype;
-    dart.defineProperty(clazz, name, {value: ctor, configurable: true});
-  };
-  dart.defineEnumValues = function(enumClass, names) {
-    let values = [];
-    for (var i = 0; i < names.length; i++) {
-      let value = dart.const(new enumClass(i));
-      values.push(value);
-      Object.defineProperty(enumClass, names[i], {value: value, configurable: true});
-    }
-    enumClass.values = dart.constList(values, enumClass);
-  };
-  dart.fn = function(closure, t) {
-    if (t == null) {
-      t = dart.definiteFunctionType(dart.dynamic, Array(closure.length).fill(dart.dynamic), void 0);
-    }
-    dart.tag(closure, t);
-    return closure;
-  };
-  dart.lazyFn = function(closure, computeType) {
-    dart.tagLazy(closure, computeType);
-    return closure;
-  };
-  dart._checkPrimitiveType = function(obj) {
-    if (obj == null) return core.Null;
-    if (typeof obj == "number") {
-      if (Math.floor(obj) == obj) {
-        return core.int;
-      }
-      return core.double;
-    }
-    if (typeof obj == "boolean") {
-      return core.bool;
-    }
-    if (typeof obj == "string") {
-      return core.String;
-    }
-    if (typeof obj == "symbol") {
-      return dart.jsobject;
-    }
-    return null;
-  };
-  dart.getFunctionType = function(obj) {
-    let args = Array(obj.length).fill(dart.dynamic);
-    return dart.definiteFunctionType(dart.bottom, args, void 0);
-  };
-  dart.getReifiedType = function(obj) {
-    let result = dart._checkPrimitiveType(obj);
-    if (result != null) return result;
-    return dart._nonPrimitiveRuntimeType(obj);
-  };
-  dart._nonPrimitiveRuntimeType = function(obj) {
-    let result = dart._getRuntimeType(obj);
-    if (result != null) return result;
-    result = dart.getExtensionType(obj);
-    if (result != null) return result;
-    result = obj.constructor;
-    if (result === Function) {
-      return dart.jsobject;
-    }
-    if (result == null) {
-      return dart.jsobject;
-    }
-    return result;
-  };
-  dart.wrapType = function(type) {
-    if (type.hasOwnProperty(dart._typeObject)) {
-      return type[dart._typeObject];
-    }
-    return type[dart._typeObject] = new dart.WrappedType(type);
-  };
-  dart.lazyJSType = function(getJSTypeCallback, name) {
-    let key = getJSTypeCallback.toString();
-    if (dart._lazyJSTypes.has(key)) {
-      return dart._lazyJSTypes.get(key);
-    }
-    let ret = new dart.LazyJSType(getJSTypeCallback, name);
-    dart._lazyJSTypes.set(key, ret);
-    return ret;
-  };
-  dart.lazyAnonymousJSType = function(name) {
-    if (dart._lazyJSTypes.has(name)) {
-      return dart._lazyJSTypes.get(name);
-    }
-    let ret = new dart.LazyJSType(null, name);
-    dart._lazyJSTypes.set(name, ret);
-    return ret;
-  };
-  const _wrappedType = Symbol('_wrappedType');
-  dart.unwrapType = function(obj) {
-    return obj[_wrappedType];
-  };
-  dart._getRuntimeType = function(value) {
-    return value[dart._runtimeType];
-  };
-  dart.getIsNamedConstructor = function(value) {
-    return value[dart.isNamedConstructor];
-  };
-  dart.getDartLibraryName = function(value) {
-    return value[dart_library.dartLibraryName];
-  };
-  dart.tag = function(value, t) {
-    value[dart._runtimeType] = t;
-  };
-  dart.tagComputed = function(value, compute) {
-    dart.defineProperty(value, dart._runtimeType, {get: compute});
-  };
-  dart.tagLazy = function(value, compute) {
-    dart.defineLazyProperty(value, dart._runtimeType, {get: compute});
-  };
-  dart._warn = function(arg) {
-    console.warn(arg);
-  };
-  const _jsTypeCallback = Symbol('_jsTypeCallback');
-  const _rawJSType = Symbol('_rawJSType');
-  const _dartName = Symbol('_dartName');
-  dart._isInstanceOfLazyJSType = function(o, t) {
-    if (t[_jsTypeCallback] != null) {
-      if (t[_rawJSType] == null) {
-        let expected = t[_dartName];
-        let actual = dart.typeName(dart.getReifiedType(o));
-        dart._warn(dart.str`Cannot find native JavaScript type (${expected}) ` + dart.str`to type check ${actual}`);
-        return true;
-      }
-      return dart.is(o, t[_rawJSType]);
-    }
-    if (o == null) return false;
-    return dart._isJSObject(o);
-  };
-  dart._asInstanceOfLazyJSType = function(o, t) {
-    if (t[_jsTypeCallback] != null) {
-      if (t[_rawJSType] == null) {
-        let expected = t[_dartName];
-        let actual = dart.typeName(dart.getReifiedType(o));
-        dart._warn(dart.str`Cannot find native JavaScript type (${expected}) ` + dart.str`to type check ${actual}`);
-        return o;
-      }
-      return dart.as(o, t[_rawJSType]);
-    }
-    if (o == null) return null;
-    if (!dart.test(dart._isJSObject(o))) dart._throwCastError(o, t, true);
-    return o;
-  };
-  dart._isJSObject = function(o) {
-    return !dart.getReifiedType(o)[dart._runtimeType];
-  };
-  dart._initialize2 = function() {
-    dart.TypeRep.prototype.is = function is_T(object) {
-      return dart.is(object, this);
-    };
-    dart.TypeRep.prototype.as = function as_T(object) {
-      return dart.as(object, this);
-    };
-    dart.TypeRep.prototype._check = function check_T(object) {
-      return dart.check(object, this);
-    };
-    dart.Dynamic.prototype.is = function is_Dynamic(object) {
+    return core.double;
+  }
+  if (typeof obj == "boolean") {
+    return core.bool;
+  }
+  if (typeof obj == "string") {
+    return core.String;
+  }
+  if (typeof obj == "symbol") {
+    return dart.jsobject;
+  }
+  return null;
+};
+dart.getFunctionType = function(obj) {
+  let args = Array(obj.length).fill(dart.dynamic);
+  return dart.definiteFunctionType(dart.bottom, args, void 0);
+};
+dart.getReifiedType = function(obj) {
+  let result = dart._checkPrimitiveType(obj);
+  if (result != null) return result;
+  return dart._nonPrimitiveRuntimeType(obj);
+};
+dart._nonPrimitiveRuntimeType = function(obj) {
+  let result = dart._getRuntimeType(obj);
+  if (result != null) return result;
+  result = dart.getExtensionType(obj);
+  if (result != null) return result;
+  result = obj.constructor;
+  if (result === Function) {
+    return dart.jsobject;
+  }
+  if (result == null) {
+    return dart.jsobject;
+  }
+  return result;
+};
+dart.wrapType = function(type) {
+  if (type.hasOwnProperty(dart._typeObject)) {
+    return type[dart._typeObject];
+  }
+  return type[dart._typeObject] = new dart.WrappedType(type);
+};
+dart.lazyJSType = function(getJSTypeCallback, name) {
+  let key = getJSTypeCallback.toString();
+  if (dart._lazyJSTypes.has(key)) {
+    return dart._lazyJSTypes.get(key);
+  }
+  let ret = new dart.LazyJSType(getJSTypeCallback, name);
+  dart._lazyJSTypes.set(key, ret);
+  return ret;
+};
+dart.lazyAnonymousJSType = function(name) {
+  if (dart._lazyJSTypes.has(name)) {
+    return dart._lazyJSTypes.get(name);
+  }
+  let ret = new dart.LazyJSType(null, name);
+  dart._lazyJSTypes.set(name, ret);
+  return ret;
+};
+const _wrappedType = Symbol('_wrappedType');
+dart.unwrapType = function(obj) {
+  return obj[_wrappedType];
+};
+dart._getRuntimeType = function(value) {
+  return value[dart._runtimeType];
+};
+dart.getIsNamedConstructor = function(value) {
+  return value[dart.isNamedConstructor];
+};
+dart.getDartLibraryName = function(value) {
+  return value[dart_library.dartLibraryName];
+};
+dart.tag = function(value, t) {
+  value[dart._runtimeType] = t;
+};
+dart.tagComputed = function(value, compute) {
+  dart.defineProperty(value, dart._runtimeType, {get: compute});
+};
+dart.tagLazy = function(value, compute) {
+  dart.defineLazyProperty(value, dart._runtimeType, {get: compute});
+};
+dart._warn = function(arg) {
+  console.warn(arg);
+};
+const _jsTypeCallback = Symbol('_jsTypeCallback');
+const _rawJSType = Symbol('_rawJSType');
+const _dartName = Symbol('_dartName');
+dart._isInstanceOfLazyJSType = function(o, t) {
+  if (t[_jsTypeCallback] != null) {
+    if (t[_rawJSType] == null) {
+      let expected = t[_dartName];
+      let actual = dart.typeName(dart.getReifiedType(o));
+      dart._warn(dart.str`Cannot find native JavaScript type (${expected}) ` + dart.str`to type check ${actual}`);
       return true;
-    };
-    dart.Dynamic.prototype.as = function as_Dynamic(object) {
-      return object;
-    };
-    dart.Dynamic.prototype._check = function check_Dynamic(object) {
-      return object;
-    };
-    dart.LazyJSType.prototype.is = function is_T(object) {
-      return dart._isInstanceOfLazyJSType(object, this);
-    };
-    dart.LazyJSType.prototype.as = function as_T(object) {
-      return dart._asInstanceOfLazyJSType(object, this);
-    };
-    dart.LazyJSType.prototype._check = function check_T(object) {
-      return dart._asInstanceOfLazyJSType(object, this);
-    };
-  };
-  dart._memoizeArray = function(map, arr, create) {
-    let len = arr.length;
-    map = dart._lookupNonTerminal(map, len);
-    for (var i = 0; i < len - 1; ++i) {
-      map = dart._lookupNonTerminal(map, arr[i]);
     }
-    let result = map.get(arr[len - 1]);
-    if (result !== void 0) return result;
-    map.set(arr[len - 1], result = create());
+    return dart.is(o, t[_rawJSType]);
+  }
+  if (o == null) return false;
+  return dart._isJSObject(o);
+};
+dart._asInstanceOfLazyJSType = function(o, t) {
+  if (t[_jsTypeCallback] != null) {
+    if (t[_rawJSType] == null) {
+      let expected = t[_dartName];
+      let actual = dart.typeName(dart.getReifiedType(o));
+      dart._warn(dart.str`Cannot find native JavaScript type (${expected}) ` + dart.str`to type check ${actual}`);
+      return o;
+    }
+    return dart.as(o, t[_rawJSType]);
+  }
+  if (o == null) return null;
+  if (!dart.test(dart._isJSObject(o))) dart._throwCastError(o, t, true);
+  return o;
+};
+dart._isJSObject = function(o) {
+  return !dart.getReifiedType(o)[dart._runtimeType];
+};
+dart._initialize2 = function() {
+  dart.TypeRep.prototype.is = function is_T(object) {
+    return dart.is(object, this);
+  };
+  dart.TypeRep.prototype.as = function as_T(object) {
+    return dart.as(object, this);
+  };
+  dart.TypeRep.prototype._check = function check_T(object) {
+    return dart.check(object, this);
+  };
+  dart.Dynamic.prototype.is = function is_Dynamic(object) {
+    return true;
+  };
+  dart.Dynamic.prototype.as = function as_Dynamic(object) {
+    return object;
+  };
+  dart.Dynamic.prototype._check = function check_Dynamic(object) {
+    return object;
+  };
+  dart.LazyJSType.prototype.is = function is_T(object) {
+    return dart._isInstanceOfLazyJSType(object, this);
+  };
+  dart.LazyJSType.prototype.as = function as_T(object) {
+    return dart._asInstanceOfLazyJSType(object, this);
+  };
+  dart.LazyJSType.prototype._check = function check_T(object) {
+    return dart._asInstanceOfLazyJSType(object, this);
+  };
+};
+dart._memoizeArray = function(map, arr, create) {
+  let len = arr.length;
+  map = dart._lookupNonTerminal(map, len);
+  for (var i = 0; i < len - 1; ++i) {
+    map = dart._lookupNonTerminal(map, arr[i]);
+  }
+  let result = map.get(arr[len - 1]);
+  if (result !== void 0) return result;
+  map.set(arr[len - 1], result = create());
+  return result;
+};
+dart._normalizeParameter = function(a) {
+  if (a instanceof Array) {
+    let result = [];
+    result.push(a[0] == dart.dynamic ? dart.bottom : a[0]);
+    result.push(a.slice(1));
+    return result;
+  }
+  return a == dart.dynamic ? dart.bottom : a;
+};
+dart._canonicalizeArray = function(definite, array, map) {
+  let arr = definite ? array : array.map(dart._normalizeParameter);
+  return dart._memoizeArray(map, arr, () => arr);
+};
+dart._canonicalizeNamed = function(definite, named, map) {
+  let key = [];
+  let names = dart.getOwnPropertyNames(named);
+  let r = {};
+  for (var i = 0; i < names.length; ++i) {
+    let name = names[i];
+    let type = named[name];
+    if (!definite) r[name] = type = dart._normalizeParameter(type);
+    key.push(name);
+    key.push(type);
+  }
+  if (!definite) named = r;
+  return dart._memoizeArray(map, key, () => named);
+};
+dart._lookupNonTerminal = function(map, key) {
+  let result = map.get(key);
+  if (result !== void 0) return result;
+  map.set(key, result = new Map());
+  return result;
+};
+dart._createSmall = function(count, definite, returnType, required) {
+  let map = dart._fnTypeSmallMap[count];
+  let args = definite ? required : required.map(dart._normalizeParameter);
+  for (var i = 0; i < count; ++i) {
+    map = dart._lookupNonTerminal(map, args[i]);
+  }
+  let result = map.get(returnType);
+  if (result !== void 0) return result;
+  result = new dart.FunctionType(returnType, args, [], {});
+  map.set(returnType, result);
+  return result;
+};
+dart.typedef = function(name, closure) {
+  return new dart.Typedef(name, closure);
+};
+dart._functionType = function(definite, returnType, args, extra) {
+  if (args === void 0 && extra === void 0) {
+    const fnTypeParts = returnType;
+    function makeGenericFnType(...types) {
+      let parts = fnTypeParts.apply(null, types);
+      return dart.FunctionType.create(definite, parts[0], parts[1], parts[2]);
+    }
+    makeGenericFnType[dart._typeFormalCount] = fnTypeParts.length;
+    return makeGenericFnType;
+  }
+  return dart.FunctionType.create(definite, returnType, args, extra);
+};
+dart.functionType = function(returnType, args, extra) {
+  return dart._functionType(false, returnType, args, extra);
+};
+dart.definiteFunctionType = function(returnType, args, extra) {
+  return dart._functionType(true, returnType, args, extra);
+};
+dart.typeName = function(type) {
+  if (type === void 0) return "undefined type";
+  if (type === null) return "null type";
+  if (type instanceof dart.TypeRep) {
+    if (type instanceof dart.Typedef) {
+      return type.name + "(" + type.functionType.toString() + ")";
+    }
+    return type.toString();
+  }
+  if (type instanceof dart.WrappedType) {
+    return "Wrapped(" + dart.unwrapType(type) + ")";
+  }
+  let tag = dart._getRuntimeType(type);
+  if (tag === core.Type) {
+    let name = type.name;
+    let args = dart.getGenericArgs(type);
+    if (!args) return name;
+    let result = name;
+    let allDynamic = true;
+    result += '<';
+    for (let i = 0; i < args.length; ++i) {
+      if (i > 0) result += ', ';
+      let argName = dart.typeName(args[i]);
+      if (argName != 'dynamic') allDynamic = false;
+      result += argName;
+    }
+    result += '>';
+    if (allDynamic) return name;
+    return result;
+  }
+  if (tag) return "Not a type: " + tag.name;
+  return "JSObject<" + type.name + ">";
+};
+dart.getImplicitFunctionType = function(type) {
+  if (dart.test(dart.isFunctionType(type))) return type;
+  return dart.getMethodType(type, 'call');
+};
+dart.isFunctionType = function(type) {
+  return type instanceof dart.AbstractFunctionType || type === core.Function;
+};
+dart.isLazyJSSubtype = function(t1, t2, isCovariant) {
+  if (dart.equals(t1, t2)) return true;
+  if (t1[_jsTypeCallback] == null || t2[_jsTypeCallback] == null) return true;
+  return dart.isClassSubType(t1[_rawJSType], t2[_rawJSType], isCovariant);
+};
+dart.isFunctionSubtype = function(ft1, ft2, isCovariant) {
+  if (ft2 === core.Function) {
+    return true;
+  }
+  if (ft1 === core.Function) {
+    return false;
+  }
+  let ret1 = ft1.returnType;
+  let ret2 = ft2.returnType;
+  let args1 = ft1.args;
+  let args2 = ft2.args;
+  if (args1.length > args2.length) {
+    return isCovariant ? false : null;
+  }
+  for (let i = 0; i < args1.length; ++i) {
+    if (!dart._isSubtype(args2[i], args1[i], !isCovariant)) {
+      return null;
+    }
+  }
+  let optionals1 = ft1.optionals;
+  let optionals2 = ft2.optionals;
+  if (args1.length + optionals1.length < args2.length + optionals2.length) {
+    return isCovariant ? false : null;
+  }
+  let j = 0;
+  for (let i = args1.length; i < args2.length; ++i, ++j) {
+    if (!dart._isSubtype(args2[i], optionals1[j], !isCovariant)) {
+      return null;
+    }
+  }
+  for (let i = 0; i < optionals2.length; ++i, ++j) {
+    if (!dart._isSubtype(optionals2[i], optionals1[j], !isCovariant)) {
+      return null;
+    }
+  }
+  let named1 = ft1.named;
+  let named2 = ft2.named;
+  let names = dart.getOwnPropertyNames(named2);
+  for (let i = 0; i < names.length; ++i) {
+    let name = names[i];
+    let n1 = named1[name];
+    let n2 = named2[name];
+    if (n1 === void 0) {
+      return isCovariant ? false : null;
+    }
+    if (!dart._isSubtype(n2, n1, !isCovariant)) {
+      return null;
+    }
+  }
+  if (ret1 === dart.void) return dart._isTop(ret2);
+  if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
+  return true;
+};
+dart._subtypeMemo = function(f) {
+  let memo = new Map();
+  return (t1, t2) => {
+    let map = memo.get(t1);
+    let result;
+    if (map) {
+      result = map.get(t2);
+      if (result !== void 0) return result;
+    } else {
+      memo.set(t1, map = new Map());
+    }
+    result = f(t1, t2);
+    map.set(t2, result);
     return result;
   };
-  dart._normalizeParameter = function(a) {
-    if (a instanceof Array) {
-      let result = [];
-      result.push(a[0] == dart.dynamic ? dart.bottom : a[0]);
-      result.push(a.slice(1));
-      return result;
+};
+dart._isBottom = function(type) {
+  return type == dart.bottom || type == core.Null;
+};
+dart._isTop = function(type) {
+  if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
+    return dart._isTop(dart.getGenericArgs(type)[0]);
+  }
+  return type == core.Object || type == dart.dynamic || type == dart.void;
+};
+dart._isSubtype = function(t1, t2, isCovariant) {
+  if (t1 === t2) return true;
+  if (dart._isTop(t2) || dart._isBottom(t1)) {
+    return true;
+  }
+  if (dart._isBottom(t2)) return null;
+  if (dart._isTop(t1)) {
+    if (t1 === dart.dynamic) return null;
+    return false;
+  }
+  if (!(t1 instanceof dart.AbstractFunctionType) && !(t2 instanceof dart.AbstractFunctionType)) {
+    let result = dart.isClassSubType(t1, t2, isCovariant);
+    if (result === true || result === null) return result;
+  }
+  t1 = dart.getImplicitFunctionType(t1);
+  if (!t1) return false;
+  if (dart.isFunctionType(t1) && dart.isFunctionType(t2)) {
+    return dart.isFunctionSubtype(t1, t2, isCovariant);
+  }
+  if (t1 instanceof dart.LazyJSType && t2 instanceof dart.LazyJSType) {
+    return dart.isLazyJSSubtype(t1, t2, isCovariant);
+  }
+  return false;
+};
+dart.isClassSubType = function(t1, t2, isCovariant) {
+  if (t1 == t2) return true;
+  if (t1 == core.Object) return false;
+  if (t1 == null) return t2 == core.Object || t2 == dart.dynamic;
+  let raw1 = dart.getGenericClass(t1);
+  let raw2 = dart.getGenericClass(t2);
+  if (raw1 != null && raw1 == raw2) {
+    let typeArguments1 = dart.getGenericArgs(t1);
+    let typeArguments2 = dart.getGenericArgs(t2);
+    let length = typeArguments1.length;
+    if (typeArguments2.length == 0) {
+      return true;
+    } else if (length == 0) {
+      if (typeArguments2.every(dart._isTop)) return true;
+      return null;
     }
-    return a == dart.dynamic ? dart.bottom : a;
-  };
-  dart._canonicalizeArray = function(definite, array, map) {
-    let arr = definite ? array : array.map(dart._normalizeParameter);
-    return dart._memoizeArray(map, arr, () => arr);
-  };
-  dart._canonicalizeNamed = function(definite, named, map) {
-    let key = [];
-    let names = dart.getOwnPropertyNames(named);
-    let r = {};
-    for (var i = 0; i < names.length; ++i) {
-      let name = names[i];
-      let type = named[name];
-      if (!definite) r[name] = type = dart._normalizeParameter(type);
-      key.push(name);
-      key.push(type);
+    dart.assert(length == typeArguments2.length);
+    for (let i = 0; i < length; ++i) {
+      let result = dart._isSubtype(typeArguments1[i], typeArguments2[i], isCovariant);
+      if (!result) {
+        return result;
+      }
     }
-    if (!definite) named = r;
-    return dart._memoizeArray(map, key, () => named);
+    return true;
+  }
+  if (raw1 === dart.getGenericClass(async.FutureOr)) {
+    let t1TypeArg = dart.getGenericArgs(t1)[0];
+    let t1Future = dart.getGenericClass(async.Future)(t1TypeArg);
+    return dart.isSubtype(t1Future, t2) && dart.isSubtype(t1TypeArg, t2);
+  } else if (raw2 === dart.getGenericClass(async.FutureOr)) {
+    let t2TypeArg = dart.getGenericArgs(t2)[0];
+    let t2Future = dart.getGenericClass(async.Future)(t2TypeArg);
+    return dart.isSubtype(t1, t2Future) || dart.isSubtype(t1, t2TypeArg);
+  }
+  let indefinite = false;
+  function definitive(t1, t2) {
+    let result = dart.isClassSubType(t1, t2, isCovariant);
+    if (result == null) {
+      indefinite = true;
+      return false;
+    }
+    return result;
+  }
+  if (definitive(t1.__proto__, t2)) return true;
+  let mixins = dart.getMixins(t1);
+  if (mixins) {
+    for (let m1 of mixins) {
+      if (m1 != null && definitive(m1, t2)) return true;
+    }
+  }
+  let getInterfaces = dart.getImplements(t1);
+  if (getInterfaces) {
+    for (let i1 of getInterfaces()) {
+      if (i1 != null && definitive(i1, t2)) return true;
+    }
+  }
+  if (indefinite) return null;
+  return false;
+};
+dart.isGroundType = function(type) {
+  if (type instanceof dart.AbstractFunctionType) {
+    if (!dart._isTop(type.returnType)) return false;
+    for (let i = 0; i < type.args.length; ++i) {
+      if (!dart._isBottom(type.args[i])) return false;
+    }
+    for (let i = 0; i < type.optionals.length; ++i) {
+      if (!dart._isBottom(type.optionals[i])) return false;
+    }
+    let names = dart.getOwnPropertyNames(type.named);
+    for (let i = 0; i < names.length; ++i) {
+      if (!dart._isBottom(type.named[names[i]])) return false;
+    }
+    return true;
+  }
+  let typeArgs = dart.getGenericArgs(type);
+  if (!typeArgs) return true;
+  for (let t of typeArgs) {
+    if (t != core.Object && t != dart.dynamic) return false;
+  }
+  return true;
+};
+dart.trapRuntimeErrors = function(flag) {
+  dart._trapRuntimeErrors = flag;
+};
+dart.throwCastError = function(object, actual, type) {
+  var found = dart.typeName(actual);
+  var expected = dart.typeName(type);
+  if (dart._trapRuntimeErrors) debugger;
+  dart.throw(new _js_helper.CastErrorImplementation(object, found, expected));
+};
+dart.throwTypeError = function(object, actual, type) {
+  var found = dart.typeName(actual);
+  var expected = dart.typeName(type);
+  if (dart._trapRuntimeErrors) debugger;
+  dart.throw(new _js_helper.TypeErrorImplementation(object, found, expected));
+};
+dart.throwStrongModeCastError = function(object, actual, type) {
+  var found = dart.typeName(actual);
+  var expected = dart.typeName(type);
+  if (dart._trapRuntimeErrors) debugger;
+  dart.throw(new _js_helper.StrongModeCastError(object, found, expected));
+};
+dart.throwStrongModeTypeError = function(object, actual, type) {
+  var found = dart.typeName(actual);
+  var expected = dart.typeName(type);
+  if (dart._trapRuntimeErrors) debugger;
+  dart.throw(new _js_helper.StrongModeTypeError(object, found, expected));
+};
+dart.throwUnimplementedError = function(message) {
+  if (dart._trapRuntimeErrors) debugger;
+  dart.throw(new core.UnimplementedError(message));
+};
+dart.throwAssertionError = function(message) {
+  if (message === void 0) message = null;
+  return (() => {
+    if (dart._trapRuntimeErrors) debugger;
+    let error = message != null ? new _js_helper.AssertionErrorWithMessage(message()) : new core.AssertionError();
+    dart.throw(error);
+  })();
+};
+dart.throwNullValueError = function() {
+  if (dart._trapRuntimeErrors) debugger;
+  dart.throw(new core.NoSuchMethodError(null, new core.Symbol('<Unexpected Null Value>'), null, null, null));
+};
+dart.syncStar = function(gen, E, ...args) {
+  const SyncIterable_E = dart.getGenericClass(_js_helper.SyncIterable)(E);
+  return new SyncIterable_E(gen, args);
+};
+dart.async = function(gen, T, ...args) {
+  let iter;
+  function onValue(res) {
+    if (res === void 0) res = null;
+    return next(iter.next(res));
+  }
+  function onError(err) {
+    return next(iter.throw(err));
+  }
+  function next(ret) {
+    if (ret.done) return ret.value;
+    let future = ret.value;
+    if (!dart.is(future, dart.getGenericClass(async.Future))) {
+      future = async.Future.value(future);
+    }
+    return future.then(dart.dynamic)(onValue, {onError: onError});
+  }
+  return dart.getGenericClass(async.Future)(T).microtask(function() {
+    iter = gen.apply(null, args)[Symbol.iterator]();
+    return onValue();
+  });
+};
+dart.asyncStar = function(gen, T, ...args) {
+  return new dart._AsyncStarStreamController(gen, T, args).controller.stream;
+};
+dart.dload = function(obj, field) {
+  let f = dart._canonicalMember(obj, field);
+  dart._trackCall(obj);
+  if (f != null) {
+    let type = dart.getType(obj);
+    if (dart.test(dart.hasField(type, f)) || dart.test(dart.hasGetter(type, f))) return obj[f];
+    if (dart.test(dart.hasMethod(type, f))) return dart.bind(obj, f, void 0);
+    if (dart.test(dart.isJsInterop(obj))) return obj[f];
+  }
+  return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [], {isGetter: true}));
+};
+dart.dloadMirror = function(obj, field) {
+  let f = dart._canonicalMember(obj, field);
+  dart._trackCall(obj);
+  if (f != null) {
+    let type = dart.getType(obj);
+    if (dart.test(dart.hasField(type, f)) || dart.test(dart.hasGetter(type, f))) return obj[f];
+    if (dart.test(dart.hasMethod(type, f))) return dart.bind(obj, f, void 0);
+  }
+  return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [], {isGetter: true}));
+};
+dart._stripGenericArguments = function(type) {
+  let genericClass = dart.getGenericClass(type);
+  if (genericClass != null) return genericClass();
+  return type;
+};
+dart.dputMirror = function(obj, field, value) {
+  let f = dart._canonicalMember(obj, field);
+  dart._trackCall(obj);
+  if (f != null) {
+    let objType = dart.getType(obj);
+    let setterType = dart.getSetterType(objType, f);
+    if (setterType != void 0) {
+      return obj[f] = dart.check(value, dart._stripGenericArguments(setterType.args[0]));
+    } else {
+      let fieldType = dart.getFieldType(objType, f);
+      if (fieldType != void 0) {
+        return obj[f] = dart.check(value, dart._stripGenericArguments(fieldType));
+      }
+    }
+  }
+  return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [value], {isSetter: true}));
+};
+dart.dput = function(obj, field, value) {
+  let f = dart._canonicalMember(obj, field);
+  dart._trackCall(obj);
+  if (f != null) {
+    let objType = dart.getType(obj);
+    let setterType = dart.getSetterType(objType, f);
+    if (setterType != void 0) {
+      return obj[f] = dart.check(value, setterType.args[0]);
+    } else {
+      let fieldType = dart.getFieldType(objType, f);
+      if (fieldType != void 0) {
+        return obj[f] = dart.check(value, fieldType);
+      }
+      if (dart.test(dart.isJsInterop(obj))) {
+        return obj[f] = value;
+      }
+    }
+  }
+  return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [value], {isSetter: true}));
+};
+dart._checkApply = function(type, actuals) {
+  if (type instanceof Array) {
+    type = type[0];
+  }
+  if (actuals.length < type.args.length) return false;
+  let index = 0;
+  for (let i = 0; i < type.args.length; ++i) {
+    dart.check(actuals[i], type.args[i]);
+    ++index;
+  }
+  if (actuals.length == type.args.length) return true;
+  let extras = actuals.length - type.args.length;
+  if (type.optionals.length > 0) {
+    if (extras > type.optionals.length) return false;
+    for (let i = 0, j = index; i < extras; ++i, ++j) {
+      dart.check(actuals[j], type.optionals[i]);
+    }
+    return true;
+  }
+  if (extras != 1) return false;
+  if (dart.getOwnPropertyNames(type.named).length == 0) return false;
+  let opts = actuals[index];
+  let names = dart.getOwnPropertyNames(opts);
+  if (names.length == 0) return false;
+  for (var name of names) {
+    if (!dart.hasOwnProperty.call(type.named, name)) {
+      return false;
+    }
+    dart.check(opts[name], type.named[name]);
+  }
+  return true;
+};
+dart._toSymbolName = function(symbol) {
+  let str = symbol.toString();
+  return str.substring(7, str.length - 1);
+};
+dart._toDisplayName = function(name) {
+  if (name[0] === '_') {
+    switch (name) {
+      case '_get':
+      {
+        return '[]';
+      }
+      case '_set':
+      {
+        return '[]=';
+      }
+      case '_negate':
+      {
+        return 'unary-';
+      }
+      case '_constructor':
+      case '_prototype':
+      {
+        return name.substring(1);
+      }
+    }
+  }
+  return name;
+};
+dart._dartSymbol = function(name) {
+  return core.Symbol._check(typeof name === "symbol" ? dart.const(new _internal.Symbol.es6(dart._toSymbolName(name), name)) : dart.const(core.Symbol.new(dart._toDisplayName(name))));
+};
+dart.extractNamedArgs = function(args) {
+  if (args.length > 0) {
+    let last = args[args.length - 1];
+    if (last != null && last.__proto__ === Object.prototype) {
+      return args.pop();
+    }
+  }
+  return null;
+};
+dart._checkAndCall = function(f, ftype, obj, typeArgs, args, name) {
+  dart._trackCall(obj);
+  let originalTarget = obj === void 0 ? f : obj;
+  function callNSM() {
+    return dart.noSuchMethod(originalTarget, new dart.InvocationImpl(name, args, {namedArguments: dart.extractNamedArgs(args), isMethod: true}));
+  }
+  if (!(f instanceof Function)) {
+    if (f != null) {
+      ftype = dart.getMethodType(dart.getType(f), 'call');
+      f = f.call;
+    }
+    if (!(f instanceof Function)) {
+      return callNSM();
+    }
+  }
+  if (ftype === void 0) {
+    ftype = dart._getRuntimeType(f);
+  }
+  if (!ftype) {
+    if (typeArgs != null) {
+      dart.throwStrongModeError('call to JS object `' + obj + '` with type arguments <' + typeArgs + '> is not supported.');
+    }
+    return f.apply(obj, args);
+  }
+  let formalCount = ftype[dart._typeFormalCount];
+  if (formalCount != null) {
+    if (typeArgs == null) {
+      typeArgs = Array(formalCount).fill(dart.dynamic);
+    } else if (typeArgs.length != formalCount) {
+      dart.throwStrongModeError('incorrect number of arguments to generic function ' + dart.typeName(ftype) + ', got <' + typeArgs + '> expected ' + formalCount + '.');
+    }
+    ftype = ftype.apply(null, typeArgs);
+  } else if (typeArgs != null) {
+    dart.throwStrongModeError('got type arguments to non-generic function ' + dart.typeName(ftype) + ', got <' + typeArgs + '> expected none.');
+  }
+  if (dart._checkApply(ftype, args)) {
+    if (typeArgs != null) {
+      return f.apply(obj, typeArgs).apply(obj, args);
+    }
+    return f.apply(obj, args);
+  }
+  return callNSM();
+};
+dart.dcall = function(f, ...args) {
+  return dart._checkAndCall(f, dart._getRuntimeType(f), void 0, null, args, 'call');
+};
+dart.dgcall = function(f, typeArgs, ...args) {
+  return dart._checkAndCall(f, dart._getRuntimeType(f), void 0, typeArgs, args, 'call');
+};
+dart._dhelperRepl = function(object, field, callback) {
+  let rawField = field;
+  if (typeof field == 'symbol') {
+    if (field in object) return callback(field);
+    field = field.toString();
+    field = field.substring('Symbol('.length, field.length - 1);
+  } else if (field.charAt(0) != '_') {
+    return callback(field);
+  }
+  if (field in object) return callback(field);
+  let proto = object;
+  while (proto !== null) {
+    let symbols = Object.getOwnPropertySymbols(proto);
+    let target = 'Symbol(' + field + ')';
+    for (let s = 0; s < symbols.length; s++) {
+      let sym = symbols[s];
+      if (target == sym.toString()) return callback(sym);
+    }
+    proto = proto.__proto__;
+  }
+  return callback(rawField);
+};
+dart.dloadRepl = function(obj, field) {
+  return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dload(obj, resolvedField), dynamicTodynamic$()));
+};
+dart.dputRepl = function(obj, field, value) {
+  return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dput(obj, resolvedField, value), dynamicTodynamic$()));
+};
+dart._callMethodRepl = function(obj, method, typeArgs, args) {
+  return dart._dhelperRepl(obj, method, dart.fn(resolvedField => dart._callMethod(obj, resolvedField, typeArgs, args, method), dynamicTodynamic$()));
+};
+dart.dsendRepl = function(obj, method, ...args) {
+  return dart._callMethodRepl(obj, method, null, args);
+};
+dart.dgsendRepl = function(obj, typeArgs, method, ...args) {
+  return dart._callMethodRepl(obj, method, typeArgs, args);
+};
+dart.getDynamicStats = function() {
+  let ret = JSArrayOfListOfObject().of([]);
+  let keys = dart._callMethodStats[dartx.keys][dartx.toList]();
+  keys[dartx.sort](dart.fn((a, b) => dart._callMethodStats[dartx._get](b).count[dartx.compareTo](dart._callMethodStats[dartx._get](a).count), StringAndStringToint()));
+  for (let key of keys) {
+    let stats = dart._callMethodStats[dartx._get](key);
+    ret[dartx.add](JSArrayOfObject().of([stats.typeName, stats.frame, stats.count]));
+  }
+  return ret;
+};
+dart.clearDynamicStats = function() {
+  dart._callMethodStats[dartx.clear]();
+};
+dart._trackCall = function(obj) {
+  if (!dart.trackProfile) return;
+  let actual = dart.getReifiedType(obj);
+  let stackStr = new Error().stack;
+  let stack = stackStr[dartx.split]('\n    at ');
+  let src = '';
+  for (let i = 2; i < dart.notNull(stack[dartx.length]); ++i) {
+    let frame = stack[dartx._get](i);
+    if (!dart.test(frame[dartx.contains]('dart_sdk.js'))) {
+      src = frame;
+      break;
+    }
+  }
+  let actualTypeName = dart.typeName(actual);
+  let o = dart._callMethodStats[dartx.putIfAbsent](dart.str`${actualTypeName} <${src}>`, dart.fn(() => new dart._MethodStats(actualTypeName, src), VoidTo_MethodStats()));
+  o.count = dart.notNull(o.count) + 1;
+};
+dart._callMethod = function(obj, name, typeArgs, args, displayName) {
+  let symbol = dart._canonicalMember(obj, name);
+  if (symbol == null) {
+    return dart.noSuchMethod(obj, new dart.InvocationImpl(displayName, core.List._check(args), {isMethod: true}));
+  }
+  let f = obj != null ? obj[symbol] : null;
+  let type = dart.getType(obj);
+  let ftype = dart.getMethodType(type, symbol);
+  return dart._checkAndCall(f, ftype, obj, typeArgs, args, displayName);
+};
+dart.dsend = function(obj, method, ...args) {
+  return dart._callMethod(obj, method, null, args, method);
+};
+dart.dgsend = function(obj, typeArgs, method, ...args) {
+  return dart._callMethod(obj, method, typeArgs, args, method);
+};
+dart.dindex = function(obj, index) {
+  return dart._callMethod(obj, '_get', null, [index], '[]');
+};
+dart.dsetindex = function(obj, index, value) {
+  return dart._callMethod(obj, '_set', null, [index, value], '[]=');
+};
+dart._ignoreMemo = function(f) {
+  let memo = new Map();
+  return (t1, t2) => {
+    let map = memo.get(t1);
+    let result;
+    if (map) {
+      result = map.get(t2);
+      if (result !== void 0) return result;
+    } else {
+      memo.set(t1, map = new Map());
+    }
+    result = f(t1, t2);
+    map.set(t2, result);
+    return result;
   };
-  dart._lookupNonTerminal = function(map, key) {
+};
+dart.strongInstanceOf = function(obj, type, ignoreFromWhiteList) {
+  let actual = dart.getReifiedType(obj);
+  let result = dart.isSubtype(actual, type);
+  if (result || actual == dart.jsobject || actual == core.int && type == core.double) return true;
+  if (result === false) return false;
+  if (ignoreFromWhiteList == void 0) return result;
+  if (dart._ignoreTypeFailure(actual, type)) return true;
+  return result;
+};
+dart.instanceOfOrNull = function(obj, type) {
+  if (obj == null || dart.strongInstanceOf(obj, type, true)) return true;
+  return false;
+};
+dart.is = function(obj, type) {
+  if (obj == null) {
+    return type == core.Null || dart._isTop(type);
+  }
+  let result = dart.strongInstanceOf(obj, type);
+  if (result !== null) return result;
+  let actual = dart.getReifiedType(obj);
+  dart.throwStrongModeError('Strong mode is-check failure: ' + dart.typeName(actual) + ' does not soundly subtype ' + dart.typeName(type));
+};
+dart.as = function(obj, type) {
+  if (type == dart.dynamic || obj == null) return obj;
+  let result = dart.strongInstanceOf(obj, type, true);
+  if (result) return obj;
+  dart._throwCastError(obj, type, result);
+};
+dart.check = function(obj, type) {
+  if (type == dart.dynamic || obj == null) return obj;
+  let result = dart.strongInstanceOf(obj, type, true);
+  if (result) return obj;
+  dart._throwTypeError(obj, type, result);
+};
+dart.test = function(obj) {
+  if (typeof obj == 'boolean') return obj;
+  return dart.booleanConversionFailed(obj);
+};
+dart.booleanConversionFailed = function(obj) {
+  if (obj == null) {
+    dart.throw(new _js_helper.BooleanConversionAssertionError());
+  }
+  let actual = dart.getReifiedType(obj);
+  let expected = core.bool;
+  dart.throw(new _js_helper.TypeErrorImplementation.fromMessage(dart.str`type '${dart.typeName(actual)}' is not a subtype of ` + dart.str`type '${dart.typeName(expected)}' in boolean expression`));
+};
+dart._throwCastError = function(obj, type, result) {
+  let actual = dart.getReifiedType(obj);
+  if (result == false) dart.throwCastError(obj, actual, type);
+  dart.throwStrongModeCastError(obj, actual, type);
+};
+dart._throwTypeError = function(obj, type, result) {
+  let actual = dart.getReifiedType(obj);
+  if (result == false) dart.throwTypeError(obj, actual, type);
+  dart.throwStrongModeTypeError(obj, actual, type);
+};
+dart.asInt = function(obj) {
+  if (obj == null) return null;
+  if (Math.floor(obj) != obj) {
+    dart.throwCastError(obj, dart.getReifiedType(obj), core.int);
+  }
+  return obj;
+};
+dart.addSimpleTypeTests = function(ctor) {
+  ctor.is = function is_C(object) {
+    if (object instanceof this) return true;
+    return dart.is(object, this);
+  };
+  ctor.as = function as_C(object) {
+    if (object instanceof this) return object;
+    return dart.as(object, this);
+  };
+  ctor._check = function check_C(object) {
+    if (object instanceof this) return object;
+    return dart.check(object, this);
+  };
+};
+dart.addTypeTests = function(ctor) {
+  ctor.as = function as_G(object) {
+    return dart.as(object, this);
+  };
+  ctor.is = function is_G(object) {
+    return dart.is(object, this);
+  };
+  ctor._check = function check_G(object) {
+    return dart.check(object, this);
+  };
+};
+dart.equals = function(x, y) {
+  if (x == null || y == null) return x == y;
+  let eq = x['=='];
+  return eq ? eq.call(x, y) : x === y;
+};
+dart.notNull = function(x) {
+  if (x == null) dart.throwNullValueError();
+  return x;
+};
+dart.map = function(values, K, V) {
+  if (K === void 0) K = null;
+  if (V === void 0) V = null;
+  return (() => {
+    if (K == null) K = dart.dynamic;
+    if (V == null) V = dart.dynamic;
+    let map = dart.getGenericClass(collection.LinkedHashMap)(K, V).new();
+    if (Array.isArray(values)) {
+      for (let i = 0, end = values.length - 1; i < end; i += 2) {
+        let key = values[i];
+        let value = values[i + 1];
+        map._set(key, value);
+      }
+    } else if (typeof values === 'object') {
+      for (let key of dart.getOwnPropertyNames(values)) {
+        map._set(key, values[key]);
+      }
+    }
+    return map;
+  })();
+};
+dart.assert = function(condition, message) {
+  if (message === void 0) message = null;
+  return (() => {
+    if (!condition) dart.throwAssertionError(message);
+  })();
+};
+dart.throw = function(obj) {
+  dart._stack = new Error();
+  throw obj;
+};
+dart.getError = function(exception) {
+  var stack = dart._stack;
+  return stack !== null ? stack : exception;
+};
+dart.stackPrint = function(exception) {
+  var error = dart.getError(exception);
+  console.log(error.stack ? error.stack : 'No stack trace for: ' + error);
+};
+dart.stackTrace = function(exception) {
+  var error = dart.getError(exception);
+  return _js_helper.getTraceFromException(error);
+};
+dart.nullSafe = function(obj, ...callbacks) {
+  if (obj == null) return obj;
+  for (let callback of callbacks) {
+    obj = callback(obj);
+    if (obj == null) break;
+  }
+  return obj;
+};
+dart.multiKeyPutIfAbsent = function(map, keys, valueFn) {
+  for (let k of keys) {
+    let value = map.get(k);
+    if (!value) {
+      map.set(k, value = new Map());
+    }
+    map = value;
+  }
+  if (map.has(dart._value)) return map.get(dart._value);
+  let value = valueFn();
+  map.set(dart._value, value);
+  return value;
+};
+dart.const = function(obj) {
+  function lookupNonTerminal(map, key) {
     let result = map.get(key);
     if (result !== void 0) return result;
     map.set(key, result = new Map());
     return result;
-  };
-  dart._createSmall = function(count, definite, returnType, required) {
-    let map = dart._fnTypeSmallMap[count];
-    let args = definite ? required : required.map(dart._normalizeParameter);
-    for (var i = 0; i < count; ++i) {
-      map = dart._lookupNonTerminal(map, args[i]);
-    }
-    let result = map.get(returnType);
+  }
+  let names = dart.getOwnNamesAndSymbols(obj);
+  let count = names.length;
+  let map = lookupNonTerminal(dart.constants, count);
+  for (let i = 0; i < count; i++) {
+    let name = names[i];
+    map = lookupNonTerminal(map, name);
+    map = lookupNonTerminal(map, obj[name]);
+  }
+  let type = dart.getReifiedType(obj);
+  let value = map.get(type);
+  if (value) return value;
+  map.set(type, obj);
+  return obj;
+};
+dart.constList = function(elements, elementType) {
+  function lookupNonTerminal(map, key) {
+    let result = map.get(key);
     if (result !== void 0) return result;
-    result = new dart.FunctionType(returnType, args, [], {});
-    map.set(returnType, result);
+    map.set(key, result = new Map());
     return result;
-  };
-  dart.typedef = function(name, closure) {
-    return new dart.Typedef(name, closure);
-  };
-  dart._functionType = function(definite, returnType, args, extra) {
-    if (args === void 0 && extra === void 0) {
-      const fnTypeParts = returnType;
-      function makeGenericFnType(...types) {
-        let parts = fnTypeParts.apply(null, types);
-        return dart.FunctionType.create(definite, parts[0], parts[1], parts[2]);
-      }
-      makeGenericFnType[dart._typeFormalCount] = fnTypeParts.length;
-      return makeGenericFnType;
+  }
+  let count = elements.length;
+  let map = lookupNonTerminal(dart.constantLists, count);
+  for (let i = 0; i < count; i++) {
+    map = lookupNonTerminal(map, elements[i]);
+  }
+  let value = map.get(elementType);
+  if (value) return value;
+  value = dart.list(elements, elementType);
+  map.set(elementType, value);
+  return value;
+};
+dart.hashCode = function(obj) {
+  if (obj == null) return 0;
+  switch (typeof obj) {
+    case "number":
+    {
+      return obj & 0x1FFFFFFF;
     }
-    return dart.FunctionType.create(definite, returnType, args, extra);
-  };
-  dart.functionType = function(returnType, args, extra) {
-    return dart._functionType(false, returnType, args, extra);
-  };
-  dart.definiteFunctionType = function(returnType, args, extra) {
-    return dart._functionType(true, returnType, args, extra);
-  };
-  dart.typeName = function(type) {
-    if (type === void 0) return "undefined type";
-    if (type === null) return "null type";
-    if (type instanceof dart.TypeRep) {
-      if (type instanceof dart.Typedef) {
-        return type.name + "(" + type.functionType.toString() + ")";
-      }
-      return type.toString();
+    case "boolean":
+    {
+      return obj ? 2 * 3 * 23 * 3761 : 269 * 811;
     }
-    if (type instanceof dart.WrappedType) {
-      return "Wrapped(" + dart.unwrapType(type) + ")";
+    case "function":
+    {
+      return _js_helper.Primitives.objectHashCode(obj);
     }
-    let tag = dart._getRuntimeType(type);
-    if (tag === core.Type) {
-      let name = type.name;
-      let args = dart.getGenericArgs(type);
-      if (!args) return name;
-      let result = name;
-      let allDynamic = true;
-      result += '<';
-      for (let i = 0; i < args.length; ++i) {
-        if (i > 0) result += ', ';
-        let argName = dart.typeName(args[i]);
-        if (argName != 'dynamic') allDynamic = false;
-        result += argName;
-      }
-      result += '>';
-      if (allDynamic) return name;
-      return result;
-    }
-    if (tag) return "Not a type: " + tag.name;
-    return "JSObject<" + type.name + ">";
-  };
-  dart.getImplicitFunctionType = function(type) {
-    if (dart.test(dart.isFunctionType(type))) return type;
-    return dart.getMethodType(type, 'call');
-  };
-  dart.isFunctionType = function(type) {
-    return type instanceof dart.AbstractFunctionType || type === core.Function;
-  };
-  dart.isLazyJSSubtype = function(t1, t2, isCovariant) {
-    if (dart.equals(t1, t2)) return true;
-    if (t1[_jsTypeCallback] == null || t2[_jsTypeCallback] == null) return true;
-    return dart.isClassSubType(t1[_rawJSType], t2[_rawJSType], isCovariant);
-  };
-  dart.isFunctionSubtype = function(ft1, ft2, isCovariant) {
-    if (ft2 === core.Function) {
-      return true;
-    }
-    if (ft1 === core.Function) {
-      return false;
-    }
-    let ret1 = ft1.returnType;
-    let ret2 = ft2.returnType;
-    let args1 = ft1.args;
-    let args2 = ft2.args;
-    if (args1.length > args2.length) {
-      return isCovariant ? false : null;
-    }
-    for (let i = 0; i < args1.length; ++i) {
-      if (!dart._isSubtype(args2[i], args1[i], !isCovariant)) {
-        return null;
-      }
-    }
-    let optionals1 = ft1.optionals;
-    let optionals2 = ft2.optionals;
-    if (args1.length + optionals1.length < args2.length + optionals2.length) {
-      return isCovariant ? false : null;
-    }
-    let j = 0;
-    for (let i = args1.length; i < args2.length; ++i, ++j) {
-      if (!dart._isSubtype(args2[i], optionals1[j], !isCovariant)) {
-        return null;
-      }
-    }
-    for (let i = 0; i < optionals2.length; ++i, ++j) {
-      if (!dart._isSubtype(optionals2[i], optionals1[j], !isCovariant)) {
-        return null;
-      }
-    }
-    let named1 = ft1.named;
-    let named2 = ft2.named;
-    let names = dart.getOwnPropertyNames(named2);
-    for (let i = 0; i < names.length; ++i) {
-      let name = names[i];
-      let n1 = named1[name];
-      let n2 = named2[name];
-      if (n1 === void 0) {
-        return isCovariant ? false : null;
-      }
-      if (!dart._isSubtype(n2, n1, !isCovariant)) {
-        return null;
-      }
-    }
-    if (ret1 === dart.void) return dart._isTop(ret2);
-    if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
-    return true;
-  };
-  dart._subtypeMemo = function(f) {
-    let memo = new Map();
-    return (t1, t2) => {
-      let map = memo.get(t1);
-      let result;
-      if (map) {
-        result = map.get(t2);
-        if (result !== void 0) return result;
-      } else {
-        memo.set(t1, map = new Map());
-      }
-      result = f(t1, t2);
-      map.set(t2, result);
-      return result;
-    };
-  };
-  dart._isBottom = function(type) {
-    return type == dart.bottom || type == core.Null;
-  };
-  dart._isTop = function(type) {
-    if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
-      return dart._isTop(dart.getGenericArgs(type)[0]);
-    }
-    return type == core.Object || type == dart.dynamic || type == dart.void;
-  };
-  dart._isSubtype = function(t1, t2, isCovariant) {
-    if (t1 === t2) return true;
-    if (dart._isTop(t2) || dart._isBottom(t1)) {
-      return true;
-    }
-    if (dart._isBottom(t2)) return null;
-    if (dart._isTop(t1)) {
-      if (t1 === dart.dynamic) return null;
-      return false;
-    }
-    if (!(t1 instanceof dart.AbstractFunctionType) && !(t2 instanceof dart.AbstractFunctionType)) {
-      let result = dart.isClassSubType(t1, t2, isCovariant);
-      if (result === true || result === null) return result;
-    }
-    t1 = dart.getImplicitFunctionType(t1);
-    if (!t1) return false;
-    if (dart.isFunctionType(t1) && dart.isFunctionType(t2)) {
-      return dart.isFunctionSubtype(t1, t2, isCovariant);
-    }
-    if (t1 instanceof dart.LazyJSType && t2 instanceof dart.LazyJSType) {
-      return dart.isLazyJSSubtype(t1, t2, isCovariant);
-    }
-    return false;
-  };
-  dart.isClassSubType = function(t1, t2, isCovariant) {
-    if (t1 == t2) return true;
-    if (t1 == core.Object) return false;
-    if (t1 == null) return t2 == core.Object || t2 == dart.dynamic;
-    let raw1 = dart.getGenericClass(t1);
-    let raw2 = dart.getGenericClass(t2);
-    if (raw1 != null && raw1 == raw2) {
-      let typeArguments1 = dart.getGenericArgs(t1);
-      let typeArguments2 = dart.getGenericArgs(t2);
-      let length = typeArguments1.length;
-      if (typeArguments2.length == 0) {
-        return true;
-      } else if (length == 0) {
-        if (typeArguments2.every(dart._isTop)) return true;
-        return null;
-      }
-      dart.assert(length == typeArguments2.length);
-      for (let i = 0; i < length; ++i) {
-        let result = dart._isSubtype(typeArguments1[i], typeArguments2[i], isCovariant);
-        if (!result) {
-          return result;
-        }
-      }
-      return true;
-    }
-    if (raw1 === dart.getGenericClass(async.FutureOr)) {
-      let t1TypeArg = dart.getGenericArgs(t1)[0];
-      let t1Future = dart.getGenericClass(async.Future)(t1TypeArg);
-      return dart.isSubtype(t1Future, t2) && dart.isSubtype(t1TypeArg, t2);
-    } else if (raw2 === dart.getGenericClass(async.FutureOr)) {
-      let t2TypeArg = dart.getGenericArgs(t2)[0];
-      let t2Future = dart.getGenericClass(async.Future)(t2TypeArg);
-      return dart.isSubtype(t1, t2Future) || dart.isSubtype(t1, t2TypeArg);
-    }
-    let indefinite = false;
-    function definitive(t1, t2) {
-      let result = dart.isClassSubType(t1, t2, isCovariant);
-      if (result == null) {
-        indefinite = true;
-        return false;
-      }
-      return result;
-    }
-    if (definitive(t1.__proto__, t2)) return true;
-    let mixins = dart.getMixins(t1);
-    if (mixins) {
-      for (let m1 of mixins) {
-        if (m1 != null && definitive(m1, t2)) return true;
-      }
-    }
-    let getInterfaces = dart.getImplements(t1);
-    if (getInterfaces) {
-      for (let i1 of getInterfaces()) {
-        if (i1 != null && definitive(i1, t2)) return true;
-      }
-    }
-    if (indefinite) return null;
-    return false;
-  };
-  dart.isGroundType = function(type) {
-    if (type instanceof dart.AbstractFunctionType) {
-      if (!dart._isTop(type.returnType)) return false;
-      for (let i = 0; i < type.args.length; ++i) {
-        if (!dart._isBottom(type.args[i])) return false;
-      }
-      for (let i = 0; i < type.optionals.length; ++i) {
-        if (!dart._isBottom(type.optionals[i])) return false;
-      }
-      let names = dart.getOwnPropertyNames(type.named);
-      for (let i = 0; i < names.length; ++i) {
-        if (!dart._isBottom(type.named[names[i]])) return false;
-      }
-      return true;
-    }
-    let typeArgs = dart.getGenericArgs(type);
-    if (!typeArgs) return true;
-    for (let t of typeArgs) {
-      if (t != core.Object && t != dart.dynamic) return false;
-    }
-    return true;
-  };
-  dart.trapRuntimeErrors = function(flag) {
-    dart._trapRuntimeErrors = flag;
-  };
-  dart.throwCastError = function(object, actual, type) {
-    var found = dart.typeName(actual);
-    var expected = dart.typeName(type);
-    if (dart._trapRuntimeErrors) debugger;
-    dart.throw(new _js_helper.CastErrorImplementation(object, found, expected));
-  };
-  dart.throwTypeError = function(object, actual, type) {
-    var found = dart.typeName(actual);
-    var expected = dart.typeName(type);
-    if (dart._trapRuntimeErrors) debugger;
-    dart.throw(new _js_helper.TypeErrorImplementation(object, found, expected));
-  };
-  dart.throwStrongModeCastError = function(object, actual, type) {
-    var found = dart.typeName(actual);
-    var expected = dart.typeName(type);
-    if (dart._trapRuntimeErrors) debugger;
-    dart.throw(new _js_helper.StrongModeCastError(object, found, expected));
-  };
-  dart.throwStrongModeTypeError = function(object, actual, type) {
-    var found = dart.typeName(actual);
-    var expected = dart.typeName(type);
-    if (dart._trapRuntimeErrors) debugger;
-    dart.throw(new _js_helper.StrongModeTypeError(object, found, expected));
-  };
-  dart.throwUnimplementedError = function(message) {
-    if (dart._trapRuntimeErrors) debugger;
-    dart.throw(new core.UnimplementedError(message));
-  };
-  dart.throwAssertionError = function(message) {
-    if (message === void 0) message = null;
-    return (() => {
-      if (dart._trapRuntimeErrors) debugger;
-      let error = message != null ? new _js_helper.AssertionErrorWithMessage(message()) : new core.AssertionError();
-      dart.throw(error);
-    })();
-  };
-  dart.throwNullValueError = function() {
-    if (dart._trapRuntimeErrors) debugger;
-    dart.throw(new core.NoSuchMethodError(null, new core.Symbol('<Unexpected Null Value>'), null, null, null));
-  };
-  dart.syncStar = function(gen, E, ...args) {
-    const SyncIterable_E = dart.getGenericClass(_js_helper.SyncIterable)(E);
-    return new SyncIterable_E(gen, args);
-  };
-  dart.async = function(gen, T, ...args) {
-    let iter;
-    function onValue(res) {
-      if (res === void 0) res = null;
-      return next(iter.next(res));
-    }
-    function onError(err) {
-      return next(iter.throw(err));
-    }
-    function next(ret) {
-      if (ret.done) return ret.value;
-      let future = ret.value;
-      if (!dart.is(future, dart.getGenericClass(async.Future))) {
-        future = async.Future.value(future);
-      }
-      return future.then(dart.dynamic)(onValue, {onError: onError});
-    }
-    return dart.getGenericClass(async.Future)(T).microtask(function() {
-      iter = gen.apply(null, args)[Symbol.iterator]();
-      return onValue();
-    });
-  };
-  dart.asyncStar = function(gen, T, ...args) {
-    return new dart._AsyncStarStreamController(gen, T, args).controller.stream;
-  };
-  dart.dload = function(obj, field) {
-    let f = dart._canonicalMember(obj, field);
-    dart._trackCall(obj);
-    if (f != null) {
-      let type = dart.getType(obj);
-      if (dart.test(dart.hasField(type, f)) || dart.test(dart.hasGetter(type, f))) return obj[f];
-      if (dart.test(dart.hasMethod(type, f))) return dart.bind(obj, f, void 0);
-      if (dart.test(dart.isJsInterop(obj))) return obj[f];
-    }
-    return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [], {isGetter: true}));
-  };
-  dart.dloadMirror = function(obj, field) {
-    let f = dart._canonicalMember(obj, field);
-    dart._trackCall(obj);
-    if (f != null) {
-      let type = dart.getType(obj);
-      if (dart.test(dart.hasField(type, f)) || dart.test(dart.hasGetter(type, f))) return obj[f];
-      if (dart.test(dart.hasMethod(type, f))) return dart.bind(obj, f, void 0);
-    }
-    return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [], {isGetter: true}));
-  };
-  dart._stripGenericArguments = function(type) {
-    let genericClass = dart.getGenericClass(type);
-    if (genericClass != null) return genericClass();
-    return type;
-  };
-  dart.dputMirror = function(obj, field, value) {
-    let f = dart._canonicalMember(obj, field);
-    dart._trackCall(obj);
-    if (f != null) {
-      let objType = dart.getType(obj);
-      let setterType = dart.getSetterType(objType, f);
-      if (setterType != void 0) {
-        return obj[f] = dart.check(value, dart._stripGenericArguments(setterType.args[0]));
-      } else {
-        let fieldType = dart.getFieldType(objType, f);
-        if (fieldType != void 0) {
-          return obj[f] = dart.check(value, dart._stripGenericArguments(fieldType));
-        }
-      }
-    }
-    return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [value], {isSetter: true}));
-  };
-  dart.dput = function(obj, field, value) {
-    let f = dart._canonicalMember(obj, field);
-    dart._trackCall(obj);
-    if (f != null) {
-      let objType = dart.getType(obj);
-      let setterType = dart.getSetterType(objType, f);
-      if (setterType != void 0) {
-        return obj[f] = dart.check(value, setterType.args[0]);
-      } else {
-        let fieldType = dart.getFieldType(objType, f);
-        if (fieldType != void 0) {
-          return obj[f] = dart.check(value, fieldType);
-        }
-        if (dart.test(dart.isJsInterop(obj))) {
-          return obj[f] = value;
-        }
-      }
-    }
-    return dart.noSuchMethod(obj, new dart.InvocationImpl(field, [value], {isSetter: true}));
-  };
-  dart._checkApply = function(type, actuals) {
-    if (type instanceof Array) {
-      type = type[0];
-    }
-    if (actuals.length < type.args.length) return false;
-    let index = 0;
-    for (let i = 0; i < type.args.length; ++i) {
-      dart.check(actuals[i], type.args[i]);
-      ++index;
-    }
-    if (actuals.length == type.args.length) return true;
-    let extras = actuals.length - type.args.length;
-    if (type.optionals.length > 0) {
-      if (extras > type.optionals.length) return false;
-      for (let i = 0, j = index; i < extras; ++i, ++j) {
-        dart.check(actuals[j], type.optionals[i]);
-      }
-      return true;
-    }
-    if (extras != 1) return false;
-    if (dart.getOwnPropertyNames(type.named).length == 0) return false;
-    let opts = actuals[index];
-    let names = dart.getOwnPropertyNames(opts);
-    if (names.length == 0) return false;
-    for (var name of names) {
-      if (!dart.hasOwnProperty.call(type.named, name)) {
-        return false;
-      }
-      dart.check(opts[name], type.named[name]);
-    }
-    return true;
-  };
-  dart._toSymbolName = function(symbol) {
-    let str = symbol.toString();
-    return str.substring(7, str.length - 1);
-  };
-  dart._toDisplayName = function(name) {
-    if (name[0] === '_') {
-      switch (name) {
-        case '_get':
-        {
-          return '[]';
-        }
-        case '_set':
-        {
-          return '[]=';
-        }
-        case '_negate':
-        {
-          return 'unary-';
-        }
-        case '_constructor':
-        case '_prototype':
-        {
-          return name.substring(1);
-        }
-      }
-    }
-    return name;
-  };
-  dart._dartSymbol = function(name) {
-    return core.Symbol._check(typeof name === "symbol" ? dart.const(new _internal.Symbol.es6(dart._toSymbolName(name), name)) : dart.const(core.Symbol.new(dart._toDisplayName(name))));
-  };
-  dart.extractNamedArgs = function(args) {
-    if (args.length > 0) {
-      let last = args[args.length - 1];
-      if (last != null && last.__proto__ === Object.prototype) {
-        return args.pop();
-      }
-    }
-    return null;
-  };
-  dart._checkAndCall = function(f, ftype, obj, typeArgs, args, name) {
-    dart._trackCall(obj);
-    let originalTarget = obj === void 0 ? f : obj;
-    function callNSM() {
-      return dart.noSuchMethod(originalTarget, new dart.InvocationImpl(name, args, {namedArguments: dart.extractNamedArgs(args), isMethod: true}));
-    }
-    if (!(f instanceof Function)) {
-      if (f != null) {
-        ftype = dart.getMethodType(dart.getType(f), 'call');
-        f = f.call;
-      }
-      if (!(f instanceof Function)) {
-        return callNSM();
-      }
-    }
-    if (ftype === void 0) {
-      ftype = dart._getRuntimeType(f);
-    }
-    if (!ftype) {
-      if (typeArgs != null) {
-        dart.throwStrongModeError('call to JS object `' + obj + '` with type arguments <' + typeArgs + '> is not supported.');
-      }
-      return f.apply(obj, args);
-    }
-    let formalCount = ftype[dart._typeFormalCount];
-    if (formalCount != null) {
-      if (typeArgs == null) {
-        typeArgs = Array(formalCount).fill(dart.dynamic);
-      } else if (typeArgs.length != formalCount) {
-        dart.throwStrongModeError('incorrect number of arguments to generic function ' + dart.typeName(ftype) + ', got <' + typeArgs + '> expected ' + formalCount + '.');
-      }
-      ftype = ftype.apply(null, typeArgs);
-    } else if (typeArgs != null) {
-      dart.throwStrongModeError('got type arguments to non-generic function ' + dart.typeName(ftype) + ', got <' + typeArgs + '> expected none.');
-    }
-    if (dart._checkApply(ftype, args)) {
-      if (typeArgs != null) {
-        return f.apply(obj, typeArgs).apply(obj, args);
-      }
-      return f.apply(obj, args);
-    }
-    return callNSM();
-  };
-  dart.dcall = function(f, ...args) {
-    return dart._checkAndCall(f, dart._getRuntimeType(f), void 0, null, args, 'call');
-  };
-  dart.dgcall = function(f, typeArgs, ...args) {
-    return dart._checkAndCall(f, dart._getRuntimeType(f), void 0, typeArgs, args, 'call');
-  };
-  dart._dhelperRepl = function(object, field, callback) {
-    let rawField = field;
-    if (typeof field == 'symbol') {
-      if (field in object) return callback(field);
-      field = field.toString();
-      field = field.substring('Symbol('.length, field.length - 1);
-    } else if (field.charAt(0) != '_') {
-      return callback(field);
-    }
-    if (field in object) return callback(field);
-    let proto = object;
-    while (proto !== null) {
-      let symbols = Object.getOwnPropertySymbols(proto);
-      let target = 'Symbol(' + field + ')';
-      for (let s = 0; s < symbols.length; s++) {
-        let sym = symbols[s];
-        if (target == sym.toString()) return callback(sym);
-      }
-      proto = proto.__proto__;
-    }
-    return callback(rawField);
-  };
-  dart.dloadRepl = function(obj, field) {
-    return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dload(obj, resolvedField), dynamicTodynamic$()));
-  };
-  dart.dputRepl = function(obj, field, value) {
-    return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dput(obj, resolvedField, value), dynamicTodynamic$()));
-  };
-  dart._callMethodRepl = function(obj, method, typeArgs, args) {
-    return dart._dhelperRepl(obj, method, dart.fn(resolvedField => dart._callMethod(obj, resolvedField, typeArgs, args, method), dynamicTodynamic$()));
-  };
-  dart.dsendRepl = function(obj, method, ...args) {
-    return dart._callMethodRepl(obj, method, null, args);
-  };
-  dart.dgsendRepl = function(obj, typeArgs, method, ...args) {
-    return dart._callMethodRepl(obj, method, typeArgs, args);
-  };
-  dart.getDynamicStats = function() {
-    let ret = JSArrayOfListOfObject().of([]);
-    let keys = dart._callMethodStats[dartx.keys][dartx.toList]();
-    keys[dartx.sort](dart.fn((a, b) => dart._callMethodStats[dartx._get](b).count[dartx.compareTo](dart._callMethodStats[dartx._get](a).count), StringAndStringToint()));
-    for (let key of keys) {
-      let stats = dart._callMethodStats[dartx._get](key);
-      ret[dartx.add](JSArrayOfObject().of([stats.typeName, stats.frame, stats.count]));
-    }
-    return ret;
-  };
-  dart.clearDynamicStats = function() {
-    dart._callMethodStats[dartx.clear]();
-  };
-  dart._trackCall = function(obj) {
-    if (!dart.trackProfile) return;
-    let actual = dart.getReifiedType(obj);
-    let stackStr = new Error().stack;
-    let stack = stackStr[dartx.split]('\n    at ');
-    let src = '';
-    for (let i = 2; i < dart.notNull(stack[dartx.length]); ++i) {
-      let frame = stack[dartx._get](i);
-      if (!dart.test(frame[dartx.contains]('dart_sdk.js'))) {
-        src = frame;
-        break;
-      }
-    }
-    let actualTypeName = dart.typeName(actual);
-    let o = dart._callMethodStats[dartx.putIfAbsent](dart.str`${actualTypeName} <${src}>`, dart.fn(() => new dart._MethodStats(actualTypeName, src), VoidTo_MethodStats()));
-    o.count = dart.notNull(o.count) + 1;
-  };
-  dart._callMethod = function(obj, name, typeArgs, args, displayName) {
-    let symbol = dart._canonicalMember(obj, name);
-    if (symbol == null) {
-      return dart.noSuchMethod(obj, new dart.InvocationImpl(displayName, core.List._check(args), {isMethod: true}));
-    }
-    let f = obj != null ? obj[symbol] : null;
-    let type = dart.getType(obj);
-    let ftype = dart.getMethodType(type, symbol);
-    return dart._checkAndCall(f, ftype, obj, typeArgs, args, displayName);
-  };
-  dart.dsend = function(obj, method, ...args) {
-    return dart._callMethod(obj, method, null, args, method);
-  };
-  dart.dgsend = function(obj, typeArgs, method, ...args) {
-    return dart._callMethod(obj, method, typeArgs, args, method);
-  };
-  dart.dindex = function(obj, index) {
-    return dart._callMethod(obj, '_get', null, [index], '[]');
-  };
-  dart.dsetindex = function(obj, index, value) {
-    return dart._callMethod(obj, '_set', null, [index, value], '[]=');
-  };
-  dart._ignoreMemo = function(f) {
-    let memo = new Map();
-    return (t1, t2) => {
-      let map = memo.get(t1);
-      let result;
-      if (map) {
-        result = map.get(t2);
-        if (result !== void 0) return result;
-      } else {
-        memo.set(t1, map = new Map());
-      }
-      result = f(t1, t2);
-      map.set(t2, result);
-      return result;
-    };
-  };
-  dart.strongInstanceOf = function(obj, type, ignoreFromWhiteList) {
-    let actual = dart.getReifiedType(obj);
-    let result = dart.isSubtype(actual, type);
-    if (result || actual == dart.jsobject || actual == core.int && type == core.double) return true;
-    if (result === false) return false;
-    if (ignoreFromWhiteList == void 0) return result;
-    if (dart._ignoreTypeFailure(actual, type)) return true;
-    return result;
-  };
-  dart.instanceOfOrNull = function(obj, type) {
-    if (obj == null || dart.strongInstanceOf(obj, type, true)) return true;
-    return false;
-  };
-  dart.is = function(obj, type) {
-    if (obj == null) {
-      return type == core.Null || dart._isTop(type);
-    }
-    let result = dart.strongInstanceOf(obj, type);
-    if (result !== null) return result;
-    let actual = dart.getReifiedType(obj);
-    dart.throwStrongModeError('Strong mode is-check failure: ' + dart.typeName(actual) + ' does not soundly subtype ' + dart.typeName(type));
-  };
-  dart.as = function(obj, type) {
-    if (type == dart.dynamic || obj == null) return obj;
-    let result = dart.strongInstanceOf(obj, type, true);
-    if (result) return obj;
-    dart._throwCastError(obj, type, result);
-  };
-  dart.check = function(obj, type) {
-    if (type == dart.dynamic || obj == null) return obj;
-    let result = dart.strongInstanceOf(obj, type, true);
-    if (result) return obj;
-    dart._throwTypeError(obj, type, result);
-  };
-  dart.test = function(obj) {
-    if (typeof obj == 'boolean') return obj;
-    return dart.booleanConversionFailed(obj);
-  };
-  dart.booleanConversionFailed = function(obj) {
-    if (obj == null) {
-      dart.throw(new _js_helper.BooleanConversionAssertionError());
-    }
-    let actual = dart.getReifiedType(obj);
-    let expected = core.bool;
-    dart.throw(new _js_helper.TypeErrorImplementation.fromMessage(dart.str`type '${dart.typeName(actual)}' is not a subtype of ` + dart.str`type '${dart.typeName(expected)}' in boolean expression`));
-  };
-  dart._throwCastError = function(obj, type, result) {
-    let actual = dart.getReifiedType(obj);
-    if (result == false) dart.throwCastError(obj, actual, type);
-    dart.throwStrongModeCastError(obj, actual, type);
-  };
-  dart._throwTypeError = function(obj, type, result) {
-    let actual = dart.getReifiedType(obj);
-    if (result == false) dart.throwTypeError(obj, actual, type);
-    dart.throwStrongModeTypeError(obj, actual, type);
-  };
-  dart.asInt = function(obj) {
-    if (obj == null) return null;
-    if (Math.floor(obj) != obj) {
-      dart.throwCastError(obj, dart.getReifiedType(obj), core.int);
-    }
-    return obj;
-  };
-  dart.addSimpleTypeTests = function(ctor) {
-    ctor.is = function is_C(object) {
-      if (object instanceof this) return true;
-      return dart.is(object, this);
-    };
-    ctor.as = function as_C(object) {
-      if (object instanceof this) return object;
-      return dart.as(object, this);
-    };
-    ctor._check = function check_C(object) {
-      if (object instanceof this) return object;
-      return dart.check(object, this);
-    };
-  };
-  dart.addTypeTests = function(ctor) {
-    ctor.as = function as_G(object) {
-      return dart.as(object, this);
-    };
-    ctor.is = function is_G(object) {
-      return dart.is(object, this);
-    };
-    ctor._check = function check_G(object) {
-      return dart.check(object, this);
-    };
-  };
-  dart.equals = function(x, y) {
-    if (x == null || y == null) return x == y;
-    let eq = x['=='];
-    return eq ? eq.call(x, y) : x === y;
-  };
-  dart.notNull = function(x) {
-    if (x == null) dart.throwNullValueError();
-    return x;
-  };
-  dart.map = function(values, K, V) {
-    if (K === void 0) K = null;
-    if (V === void 0) V = null;
-    return (() => {
-      if (K == null) K = dart.dynamic;
-      if (V == null) V = dart.dynamic;
-      let map = dart.getGenericClass(collection.LinkedHashMap)(K, V).new();
-      if (Array.isArray(values)) {
-        for (let i = 0, end = values.length - 1; i < end; i += 2) {
-          let key = values[i];
-          let value = values[i + 1];
-          map._set(key, value);
-        }
-      } else if (typeof values === 'object') {
-        for (let key of dart.getOwnPropertyNames(values)) {
-          map._set(key, values[key]);
-        }
-      }
-      return map;
-    })();
-  };
-  dart.assert = function(condition, message) {
-    if (message === void 0) message = null;
-    return (() => {
-      if (!condition) dart.throwAssertionError(message);
-    })();
-  };
-  dart.throw = function(obj) {
-    dart._stack = new Error();
-    throw obj;
-  };
-  dart.getError = function(exception) {
-    var stack = dart._stack;
-    return stack !== null ? stack : exception;
-  };
-  dart.stackPrint = function(exception) {
-    var error = dart.getError(exception);
-    console.log(error.stack ? error.stack : 'No stack trace for: ' + error);
-  };
-  dart.stackTrace = function(exception) {
-    var error = dart.getError(exception);
-    return _js_helper.getTraceFromException(error);
-  };
-  dart.nullSafe = function(obj, ...callbacks) {
-    if (obj == null) return obj;
-    for (let callback of callbacks) {
-      obj = callback(obj);
-      if (obj == null) break;
-    }
-    return obj;
-  };
-  dart.multiKeyPutIfAbsent = function(map, keys, valueFn) {
-    for (let k of keys) {
-      let value = map.get(k);
-      if (!value) {
-        map.set(k, value = new Map());
-      }
-      map = value;
-    }
-    if (map.has(dart._value)) return map.get(dart._value);
-    let value = valueFn();
-    map.set(dart._value, value);
+  }
+  let extension = dart.getExtensionType(obj);
+  if (extension != null) {
+    return obj[dartx.hashCode];
+  }
+  return obj.hashCode;
+};
+dart.toString = function(obj) {
+  if (obj == null) return "null";
+  let extension = dart.getExtensionType(obj);
+  if (extension != null) {
+    return obj[dartx.toString]();
+  }
+  if (typeof obj == "function") {
+    return "Closure: " + dart.getReifiedType(obj) + " from: " + obj;
+  }
+  return obj.toString();
+};
+dart.noSuchMethod = function(obj, invocation) {
+  if (obj == null || typeof obj == "function") {
+    dart.throw(new core.NoSuchMethodError(obj, invocation.memberName, invocation.positionalArguments, invocation.namedArguments));
+  }
+  let extension = dart.getExtensionType(obj);
+  if (extension != null) {
+    return obj[dartx.noSuchMethod](invocation);
+  }
+  return obj.noSuchMethod(invocation);
+};
+dart.constFn = function(x) {
+  return () => x;
+};
+dart.runtimeType = function(obj) {
+  let result = dart._checkPrimitiveType(obj);
+  if (result != null) return dart.wrapType(result);
+  let extension = dart.getExtensionType(obj);
+  if (extension != null) {
+    result = obj[dartx.runtimeType];
+    return result != null ? result : dart.wrapType(extension);
+  }
+  if (typeof obj == "function") {
+    return dart.wrapType(dart.getReifiedType(obj));
+  }
+  return obj.runtimeType;
+};
+dart.str = function(strings, ...values) {
+  let s = strings[0];
+  for (let i = 0, len = values.length; i < len;) {
+    s += dart.notNull(dart.toString(values[i])) + strings[++i];
+  }
+  return s;
+};
+dart._canonicalMember = function(obj, name) {
+  if (typeof name === "symbol") return name;
+  if (obj != null && dart.getExtensionType(obj) != null) {
+    return dartx[name];
+  }
+  if (dart.equals(name, 'constructor') || dart.equals(name, 'prototype')) {
+    name = '+' + dart.notNull(core.String._check(name));
+  }
+  return name;
+};
+dart.loadLibrary = function() {
+  return async.Future.value();
+};
+dart.defineProperty = function(obj, name, desc) {
+  return Object.defineProperty(obj, name, desc);
+};
+dart.getOwnPropertyDescriptor = function(obj, name) {
+  return Object.getOwnPropertyDescriptor(obj, name);
+};
+dart.getOwnPropertyNames = function(obj) {
+  return Object.getOwnPropertyNames(obj);
+};
+dart.getOwnPropertySymbols = function(obj) {
+  return Object.getOwnPropertySymbols(obj);
+};
+dart.throwStrongModeError = function(message) {
+  if (dart.test(dart._trapRuntimeErrors)) debugger;
+  throw new _js_helper.StrongModeErrorImplementation(message);
+};
+dart.throwInternalError = function(message) {
+  if (dart.test(dart._trapRuntimeErrors)) debugger;
+  throw Error(message);
+};
+dart.getOwnNamesAndSymbols = function(obj) {
+  let names = dart.getOwnPropertyNames(obj);
+  let symbols = dart.getOwnPropertySymbols(obj);
+  return names.concat(symbols);
+};
+dart.safeGetOwnProperty = function(obj, name) {
+  let desc = dart.getOwnPropertyDescriptor(obj, name);
+  if (desc != null) return desc.value;
+};
+dart.defineLazyProperty = function(to, name, desc) {
+  let init = desc.get;
+  let value = null;
+  function lazySetter(x) {
+    init = null;
+    value = x;
+  }
+  function circularInitError() {
+    dart.throwInternalError('circular initialization for field ' + name);
+  }
+  function lazyGetter() {
+    if (init == null) return value;
+    let f = init;
+    init = circularInitError;
+    lazySetter(f());
     return value;
-  };
-  dart.const = function(obj) {
-    function lookupNonTerminal(map, key) {
-      let result = map.get(key);
-      if (result !== void 0) return result;
-      map.set(key, result = new Map());
-      return result;
-    }
-    let names = dart.getOwnNamesAndSymbols(obj);
-    let count = names.length;
-    let map = lookupNonTerminal(dart.constants, count);
-    for (let i = 0; i < count; i++) {
-      let name = names[i];
-      map = lookupNonTerminal(map, name);
-      map = lookupNonTerminal(map, obj[name]);
-    }
-    let type = dart.getReifiedType(obj);
-    let value = map.get(type);
-    if (value) return value;
-    map.set(type, obj);
-    return obj;
-  };
-  dart.constList = function(elements, elementType) {
-    function lookupNonTerminal(map, key) {
-      let result = map.get(key);
-      if (result !== void 0) return result;
-      map.set(key, result = new Map());
-      return result;
-    }
-    let count = elements.length;
-    let map = lookupNonTerminal(dart.constantLists, count);
-    for (let i = 0; i < count; i++) {
-      map = lookupNonTerminal(map, elements[i]);
-    }
-    let value = map.get(elementType);
-    if (value) return value;
-    value = dart.list(elements, elementType);
-    map.set(elementType, value);
-    return value;
-  };
-  dart.hashCode = function(obj) {
-    if (obj == null) return 0;
-    switch (typeof obj) {
-      case "number":
-      {
-        return obj & 0x1FFFFFFF;
+  }
+  desc.get = lazyGetter;
+  desc.configurable = true;
+  if (desc.set) desc.set = lazySetter;
+  return dart.defineProperty(to, name, desc);
+};
+dart.defineLazy = function(to, from) {
+  for (let name of dart.getOwnNamesAndSymbols(from)) {
+    dart.defineLazyProperty(to, name, dart.getOwnPropertyDescriptor(from, name));
+  }
+};
+dart.defineMemoizedGetter = function(obj, name, getter) {
+  return dart.defineLazyProperty(obj, name, {get: getter});
+};
+dart.copyTheseProperties = function(to, from, names) {
+  for (let i = 0; i < names.length; ++i) {
+    dart.copyProperty(to, from, names[i]);
+  }
+  return to;
+};
+dart.copyProperty = function(to, from, name) {
+  let desc = dart.getOwnPropertyDescriptor(from, name);
+  if (name == Symbol.iterator) {
+    let existing = dart.getOwnPropertyDescriptor(to, name);
+    if (existing != null) {
+      if (existing.writable) {
+        to[name] = desc.value;
       }
-      case "boolean":
-      {
-        return obj ? 2 * 3 * 23 * 3761 : 269 * 811;
+      return;
+    }
+  }
+  dart.defineProperty(to, name, desc);
+};
+dart.export = function(to, from, name) {
+  return dart.copyProperty(to, from, name);
+};
+dart.copyProperties = function(to, from) {
+  return dart.copyTheseProperties(to, from, dart.getOwnNamesAndSymbols(from));
+};
+dart.global = (function() {
+  if (typeof NodeList !== "undefined") {
+    NodeList.prototype.get = function(i) {
+      return this[i];
+    };
+    NamedNodeMap.prototype.get = function(i) {
+      return this[i];
+    };
+    DOMTokenList.prototype.get = function(i) {
+      return this[i];
+    };
+    HTMLCollection.prototype.get = function(i) {
+      return this[i];
+    };
+    if (typeof PannerNode == "undefined") {
+      let audioContext;
+      if (typeof AudioContext == "undefined" && typeof webkitAudioContext != "undefined") {
+        audioContext = new webkitAudioContext();
+      } else {
+        audioContext = new AudioContext();
+        window.StereoPannerNode = audioContext.createStereoPanner().constructor;
       }
-      case "function":
-      {
-        return _js_helper.Primitives.objectHashCode(obj);
+      window.PannerNode = audioContext.createPanner().constructor;
+    }
+    if (typeof AudioSourceNode == "undefined") {
+      window.AudioSourceNode = MediaElementAudioSourceNode.__proto__;
+    }
+    if (typeof FontFaceSet == "undefined") {
+      window.FontFaceSet = document.fonts.__proto__.constructor;
+    }
+    if (typeof MemoryInfo == "undefined") {
+      if (typeof window.performance.memory != "undefined") {
+        window.MemoryInfo = window.performance.memory.constructor;
       }
     }
-    let extension = dart.getExtensionType(obj);
-    if (extension != null) {
-      return obj[dartx.hashCode];
+    if (typeof Geolocation == "undefined") {
+      navigator.geolocation.constructor;
     }
-    return obj.hashCode;
-  };
-  dart.toString = function(obj) {
-    if (obj == null) return "null";
-    let extension = dart.getExtensionType(obj);
-    if (extension != null) {
-      return obj[dartx.toString]();
-    }
-    if (typeof obj == "function") {
-      return "Closure: " + dart.getReifiedType(obj) + " from: " + obj;
-    }
-    return obj.toString();
-  };
-  dart.noSuchMethod = function(obj, invocation) {
-    if (obj == null || typeof obj == "function") {
-      dart.throw(new core.NoSuchMethodError(obj, invocation.memberName, invocation.positionalArguments, invocation.namedArguments));
-    }
-    let extension = dart.getExtensionType(obj);
-    if (extension != null) {
-      return obj[dartx.noSuchMethod](invocation);
-    }
-    return obj.noSuchMethod(invocation);
-  };
-  dart.constFn = function(x) {
-    return () => x;
-  };
-  dart.runtimeType = function(obj) {
-    let result = dart._checkPrimitiveType(obj);
-    if (result != null) return dart.wrapType(result);
-    let extension = dart.getExtensionType(obj);
-    if (extension != null) {
-      result = obj[dartx.runtimeType];
-      return result != null ? result : dart.wrapType(extension);
-    }
-    if (typeof obj == "function") {
-      return dart.wrapType(dart.getReifiedType(obj));
-    }
-    return obj.runtimeType;
-  };
-  dart.str = function(strings, ...values) {
-    let s = strings[0];
-    for (let i = 0, len = values.length; i < len;) {
-      s += dart.notNull(dart.toString(values[i])) + strings[++i];
-    }
-    return s;
-  };
-  dart._canonicalMember = function(obj, name) {
-    if (typeof name === "symbol") return name;
-    if (obj != null && dart.getExtensionType(obj) != null) {
-      return dartx[name];
-    }
-    if (dart.equals(name, 'constructor') || dart.equals(name, 'prototype')) {
-      name = '+' + dart.notNull(core.String._check(name));
-    }
-    return name;
-  };
-  dart.loadLibrary = function() {
-    return async.Future.value();
-  };
-  dart.defineProperty = function(obj, name, desc) {
-    return Object.defineProperty(obj, name, desc);
-  };
-  dart.getOwnPropertyDescriptor = function(obj, name) {
-    return Object.getOwnPropertyDescriptor(obj, name);
-  };
-  dart.getOwnPropertyNames = function(obj) {
-    return Object.getOwnPropertyNames(obj);
-  };
-  dart.getOwnPropertySymbols = function(obj) {
-    return Object.getOwnPropertySymbols(obj);
-  };
-  dart.throwStrongModeError = function(message) {
-    if (dart.test(dart._trapRuntimeErrors)) debugger;
-    throw new _js_helper.StrongModeErrorImplementation(message);
-  };
-  dart.throwInternalError = function(message) {
-    if (dart.test(dart._trapRuntimeErrors)) debugger;
-    throw Error(message);
-  };
-  dart.getOwnNamesAndSymbols = function(obj) {
-    let names = dart.getOwnPropertyNames(obj);
-    let symbols = dart.getOwnPropertySymbols(obj);
-    return names.concat(symbols);
-  };
-  dart.safeGetOwnProperty = function(obj, name) {
-    let desc = dart.getOwnPropertyDescriptor(obj, name);
-    if (desc != null) return desc.value;
-  };
-  dart.defineLazyProperty = function(to, name, desc) {
-    let init = desc.get;
-    let value = null;
-    function lazySetter(x) {
-      init = null;
-      value = x;
-    }
-    function circularInitError() {
-      dart.throwInternalError('circular initialization for field ' + name);
-    }
-    function lazyGetter() {
-      if (init == null) return value;
-      let f = init;
-      init = circularInitError;
-      lazySetter(f());
-      return value;
-    }
-    desc.get = lazyGetter;
-    desc.configurable = true;
-    if (desc.set) desc.set = lazySetter;
-    return dart.defineProperty(to, name, desc);
-  };
-  dart.defineLazy = function(to, from) {
-    for (let name of dart.getOwnNamesAndSymbols(from)) {
-      dart.defineLazyProperty(to, name, dart.getOwnPropertyDescriptor(from, name));
-    }
-  };
-  dart.defineMemoizedGetter = function(obj, name, getter) {
-    return dart.defineLazyProperty(obj, name, {get: getter});
-  };
-  dart.copyTheseProperties = function(to, from, names) {
-    for (let i = 0; i < names.length; ++i) {
-      dart.copyProperty(to, from, names[i]);
-    }
-    return to;
-  };
-  dart.copyProperty = function(to, from, name) {
-    let desc = dart.getOwnPropertyDescriptor(from, name);
-    if (name == Symbol.iterator) {
-      let existing = dart.getOwnPropertyDescriptor(to, name);
-      if (existing != null) {
-        if (existing.writable) {
-          to[name] = desc.value;
-        }
-        return;
+    if (typeof Animation == "undefined") {
+      let d = document.createElement('div');
+      if (typeof d.animate != "undefined") {
+        window.Animation = d.animate(d).constructor;
       }
     }
-    dart.defineProperty(to, name, desc);
-  };
-  dart.export = function(to, from, name) {
-    return dart.copyProperty(to, from, name);
-  };
-  dart.copyProperties = function(to, from) {
-    return dart.copyTheseProperties(to, from, dart.getOwnNamesAndSymbols(from));
-  };
-  dart.global = (function() {
-    if (typeof NodeList !== "undefined") {
-      NodeList.prototype.get = function(i) {
-        return this[i];
-      };
-      NamedNodeMap.prototype.get = function(i) {
-        return this[i];
-      };
-      DOMTokenList.prototype.get = function(i) {
-        return this[i];
-      };
-      HTMLCollection.prototype.get = function(i) {
-        return this[i];
-      };
-      if (typeof PannerNode == "undefined") {
-        let audioContext;
-        if (typeof AudioContext == "undefined" && typeof webkitAudioContext != "undefined") {
-          audioContext = new webkitAudioContext();
-        } else {
-          audioContext = new AudioContext();
-          window.StereoPannerNode = audioContext.createStereoPanner().constructor;
-        }
-        window.PannerNode = audioContext.createPanner().constructor;
+    if (typeof SourceBufferList == "undefined") {
+      window.SourceBufferList = new MediaSource().sourceBuffers.constructor;
+    }
+  }
+  var globalState = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {};
+  return globalState;
+})();
+dart.JsSymbol = Symbol;
+dart._mixins = Symbol("mixins");
+dart.implements = Symbol("implements");
+dart._typeArguments = Symbol("typeArguments");
+dart._originalDeclaration = Symbol("originalDeclaration");
+dart._constructorSig = Symbol("sigCtor");
+dart._methodSig = Symbol("sigMethod");
+dart._fieldSig = Symbol("sigField");
+dart._getterSig = Symbol("sigGetter");
+dart._setterSig = Symbol("sigSetter");
+dart._staticSig = Symbol("sigStaticMethod");
+dart._staticFieldSig = Symbol("sigStaticField");
+dart._staticGetterSig = Symbol("sigStaticGetter");
+dart._staticSetterSig = Symbol("sigStaticSetter");
+dart._genericTypeCtor = Symbol("genericType");
+dart._extensionType = Symbol("extensionType");
+dart.dartx = dartx;
+dart._runtimeType = Symbol("_runtimeType");
+dart.isNamedConstructor = Symbol("isNamedConstructor");
+dart.defineLazy(dart, {
+  get _lazyJSTypes() {
+    return new Map();
+  },
+  set _lazyJSTypes(_) {}
+});
+dart.metadata = Symbol("metadata");
+dart._typeObject = Symbol("typeObject");
+core.Object = class Object {
+  constructor(...args) {
+    return this.new.apply(this, args);
+  }
+  new() {
+  }
+  ['=='](other) {
+    return core.identical(this, other);
+  }
+  get hashCode() {
+    return _js_helper.Primitives.objectHashCode(this);
+  }
+  toString() {
+    return _js_helper.Primitives.objectToString(this);
+  }
+  noSuchMethod(invocation) {
+    dart.throw(new core.NoSuchMethodError(this, invocation.memberName, invocation.positionalArguments, invocation.namedArguments));
+  }
+  get runtimeType() {
+    return dart.wrapType(dart.getReifiedType(this));
+  }
+};
+core.Object.is = function is_Object(o) {
+  if (o instanceof this) return true;
+  return dart.is(o, this);
+};
+core.Object.as = function as_Object(o) {
+  if (o == null || o instanceof this) return o;
+  return dart.as(o, this);
+};
+core.Object._check = function check_Object(o) {
+  if (o == null || o instanceof this) return o;
+  return dart.check(o, this);
+};
+dart.setSignature(core.Object, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Object, [])}),
+  getters: () => ({
+    hashCode: dart.definiteFunctionType(core.int, []),
+    runtimeType: dart.definiteFunctionType(core.Type, [])
+  }),
+  methods: () => ({
+    '==': dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    toString: dart.definiteFunctionType(core.String, []),
+    noSuchMethod: dart.definiteFunctionType(dart.dynamic, [core.Invocation])
+  })
+});
+dart.tagComputed(core.Object, () => core.Type);
+dart.TypeRep = class TypeRep extends core.Object {
+  new() {
+    dart._initialize;
+  }
+  get name() {
+    return this.toString();
+  }
+};
+dart.TypeRep[dart.implements] = () => [core.Type];
+dart.setSignature(dart.TypeRep, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.TypeRep, [])}),
+  getters: () => ({name: dart.definiteFunctionType(core.String, [])})
+});
+dart.Dynamic = class Dynamic extends dart.TypeRep {
+  new() {
+    super.new();
+  }
+  toString() {
+    return 'dynamic';
+  }
+};
+dart.LazyJSType = class LazyJSType extends core.Object {
+  new(jsTypeCallback, dartName) {
+    this[_jsTypeCallback] = jsTypeCallback;
+    this[_dartName] = dartName;
+  }
+  get [_rawJSType]() {
+    return this[_jsTypeCallback]();
+  }
+  toString() {
+    return core.String._check(this[_jsTypeCallback] != null ? dart.typeName(this[_rawJSType]) : this[_dartName]);
+  }
+};
+dart.LazyJSType[dart.implements] = () => [core.Type];
+dart.setSignature(dart.LazyJSType, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.LazyJSType, [dart.dynamic, dart.dynamic])}),
+  fields: () => ({
+    [_jsTypeCallback]: dart.dynamic,
+    [_dartName]: dart.dynamic
+  }),
+  getters: () => ({[_rawJSType]: dart.definiteFunctionType(dart.dynamic, [])})
+});
+dart.dynamic = new dart.Dynamic();
+dart._initialize = dart._initialize2();
+dart.Void = class Void extends dart.TypeRep {
+  new() {
+    super.new();
+  }
+  toString() {
+    return 'void';
+  }
+};
+dart.void = new dart.Void();
+dart.Bottom = class Bottom extends dart.TypeRep {
+  new() {
+    super.new();
+  }
+  toString() {
+    return 'bottom';
+  }
+};
+dart.bottom = new dart.Bottom();
+dart.JSObject = class JSObject extends dart.TypeRep {
+  new() {
+    super.new();
+  }
+  toString() {
+    return 'NativeJavaScriptObject';
+  }
+};
+dart.jsobject = new dart.JSObject();
+core.Type = class Type extends core.Object {};
+dart.WrappedType = class WrappedType extends core.Type {
+  new(wrappedType) {
+    this[_wrappedType] = wrappedType;
+  }
+  toString() {
+    return dart.typeName(this[_wrappedType]);
+  }
+};
+dart.setSignature(dart.WrappedType, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.WrappedType, [dart.dynamic])}),
+  fields: () => ({[_wrappedType]: dart.dynamic})
+});
+const _stringValue = Symbol('_stringValue');
+dart.AbstractFunctionType = class AbstractFunctionType extends dart.TypeRep {
+  new() {
+    this[_stringValue] = null;
+    super.new();
+  }
+  toString() {
+    return this.name;
+  }
+  get name() {
+    if (this[_stringValue] != null) return this[_stringValue];
+    let buffer = '(';
+    for (let i = 0; i < this.args.length; ++i) {
+      if (i > 0) {
+        buffer = dart.notNull(buffer) + ', ';
       }
-      if (typeof AudioSourceNode == "undefined") {
-        window.AudioSourceNode = MediaElementAudioSourceNode.__proto__;
+      buffer = dart.notNull(buffer) + dart.notNull(dart.typeName(this.args[i]));
+    }
+    if (this.optionals.length > 0) {
+      if (this.args.length > 0) {
+        buffer = dart.notNull(buffer) + ', ';
       }
-      if (typeof FontFaceSet == "undefined") {
-        window.FontFaceSet = document.fonts.__proto__.constructor;
-      }
-      if (typeof MemoryInfo == "undefined") {
-        if (typeof window.performance.memory != "undefined") {
-          window.MemoryInfo = window.performance.memory.constructor;
-        }
-      }
-      if (typeof Geolocation == "undefined") {
-        navigator.geolocation.constructor;
-      }
-      if (typeof Animation == "undefined") {
-        let d = document.createElement('div');
-        if (typeof d.animate != "undefined") {
-          window.Animation = d.animate(d).constructor;
-        }
-      }
-      if (typeof SourceBufferList == "undefined") {
-        window.SourceBufferList = new MediaSource().sourceBuffers.constructor;
-      }
-    }
-    return typeof window == "undefined" ? global : window;
-  })();
-  dart.JsSymbol = Symbol;
-  dart._mixins = Symbol("mixins");
-  dart.implements = Symbol("implements");
-  dart._typeArguments = Symbol("typeArguments");
-  dart._originalDeclaration = Symbol("originalDeclaration");
-  dart._constructorSig = Symbol("sigCtor");
-  dart._methodSig = Symbol("sigMethod");
-  dart._fieldSig = Symbol("sigField");
-  dart._getterSig = Symbol("sigGetter");
-  dart._setterSig = Symbol("sigSetter");
-  dart._staticSig = Symbol("sigStaticMethod");
-  dart._staticFieldSig = Symbol("sigStaticField");
-  dart._staticGetterSig = Symbol("sigStaticGetter");
-  dart._staticSetterSig = Symbol("sigStaticSetter");
-  dart._genericTypeCtor = Symbol("genericType");
-  dart._extensionType = Symbol("extensionType");
-  dart.dartx = dartx;
-  dart._runtimeType = Symbol("_runtimeType");
-  dart.isNamedConstructor = Symbol("isNamedConstructor");
-  dart.defineLazy(dart, {
-    get _lazyJSTypes() {
-      return new Map();
-    },
-    set _lazyJSTypes(_) {}
-  });
-  dart.metadata = Symbol("metadata");
-  dart._typeObject = Symbol("typeObject");
-  core.Object = class Object {
-    constructor(...args) {
-      return this.new.apply(this, args);
-    }
-    new() {
-    }
-    ['=='](other) {
-      return core.identical(this, other);
-    }
-    get hashCode() {
-      return _js_helper.Primitives.objectHashCode(this);
-    }
-    toString() {
-      return _js_helper.Primitives.objectToString(this);
-    }
-    noSuchMethod(invocation) {
-      dart.throw(new core.NoSuchMethodError(this, invocation.memberName, invocation.positionalArguments, invocation.namedArguments));
-    }
-    get runtimeType() {
-      return dart.wrapType(dart.getReifiedType(this));
-    }
-  };
-  core.Object.is = function is_Object(o) {
-    if (o instanceof this) return true;
-    return dart.is(o, this);
-  };
-  core.Object.as = function as_Object(o) {
-    if (o == null || o instanceof this) return o;
-    return dart.as(o, this);
-  };
-  core.Object._check = function check_Object(o) {
-    if (o == null || o instanceof this) return o;
-    return dart.check(o, this);
-  };
-  dart.setSignature(core.Object, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Object, [])}),
-    getters: () => ({
-      hashCode: dart.definiteFunctionType(core.int, []),
-      runtimeType: dart.definiteFunctionType(core.Type, [])
-    }),
-    methods: () => ({
-      '==': dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      toString: dart.definiteFunctionType(core.String, []),
-      noSuchMethod: dart.definiteFunctionType(dart.dynamic, [core.Invocation])
-    })
-  });
-  dart.tagComputed(core.Object, () => core.Type);
-  dart.TypeRep = class TypeRep extends core.Object {
-    new() {
-      dart._initialize;
-    }
-    get name() {
-      return this.toString();
-    }
-  };
-  dart.TypeRep[dart.implements] = () => [core.Type];
-  dart.setSignature(dart.TypeRep, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.TypeRep, [])}),
-    getters: () => ({name: dart.definiteFunctionType(core.String, [])})
-  });
-  dart.Dynamic = class Dynamic extends dart.TypeRep {
-    new() {
-      super.new();
-    }
-    toString() {
-      return 'dynamic';
-    }
-  };
-  dart.LazyJSType = class LazyJSType extends core.Object {
-    new(jsTypeCallback, dartName) {
-      this[_jsTypeCallback] = jsTypeCallback;
-      this[_dartName] = dartName;
-    }
-    get [_rawJSType]() {
-      return this[_jsTypeCallback]();
-    }
-    toString() {
-      return core.String._check(this[_jsTypeCallback] != null ? dart.typeName(this[_rawJSType]) : this[_dartName]);
-    }
-  };
-  dart.LazyJSType[dart.implements] = () => [core.Type];
-  dart.setSignature(dart.LazyJSType, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.LazyJSType, [dart.dynamic, dart.dynamic])}),
-    fields: () => ({
-      [_jsTypeCallback]: dart.dynamic,
-      [_dartName]: dart.dynamic
-    }),
-    getters: () => ({[_rawJSType]: dart.definiteFunctionType(dart.dynamic, [])})
-  });
-  dart.dynamic = new dart.Dynamic();
-  dart._initialize = dart._initialize2();
-  dart.Void = class Void extends dart.TypeRep {
-    new() {
-      super.new();
-    }
-    toString() {
-      return 'void';
-    }
-  };
-  dart.void = new dart.Void();
-  dart.Bottom = class Bottom extends dart.TypeRep {
-    new() {
-      super.new();
-    }
-    toString() {
-      return 'bottom';
-    }
-  };
-  dart.bottom = new dart.Bottom();
-  dart.JSObject = class JSObject extends dart.TypeRep {
-    new() {
-      super.new();
-    }
-    toString() {
-      return 'NativeJavaScriptObject';
-    }
-  };
-  dart.jsobject = new dart.JSObject();
-  core.Type = class Type extends core.Object {};
-  dart.WrappedType = class WrappedType extends core.Type {
-    new(wrappedType) {
-      this[_wrappedType] = wrappedType;
-    }
-    toString() {
-      return dart.typeName(this[_wrappedType]);
-    }
-  };
-  dart.setSignature(dart.WrappedType, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.WrappedType, [dart.dynamic])}),
-    fields: () => ({[_wrappedType]: dart.dynamic})
-  });
-  const _stringValue = Symbol('_stringValue');
-  dart.AbstractFunctionType = class AbstractFunctionType extends dart.TypeRep {
-    new() {
-      this[_stringValue] = null;
-      super.new();
-    }
-    toString() {
-      return this.name;
-    }
-    get name() {
-      if (this[_stringValue] != null) return this[_stringValue];
-      let buffer = '(';
-      for (let i = 0; i < this.args.length; ++i) {
+      buffer = dart.notNull(buffer) + '[';
+      for (let i = 0; i < this.optionals.length; ++i) {
         if (i > 0) {
           buffer = dart.notNull(buffer) + ', ';
         }
-        buffer = dart.notNull(buffer) + dart.notNull(dart.typeName(this.args[i]));
+        buffer = dart.notNull(buffer) + dart.notNull(dart.typeName(this.optionals[i]));
       }
-      if (this.optionals.length > 0) {
-        if (this.args.length > 0) {
+      buffer = dart.notNull(buffer) + ']';
+    } else if (Object.keys(this.named).length > 0) {
+      if (this.args.length > 0) {
+        buffer = dart.notNull(buffer) + ', ';
+      }
+      buffer = dart.notNull(buffer) + '{';
+      let names = dart.getOwnPropertyNames(this.named);
+      names.sort();
+      for (let i = 0; i < names.length; ++i) {
+        if (i > 0) {
           buffer = dart.notNull(buffer) + ', ';
         }
-        buffer = dart.notNull(buffer) + '[';
-        for (let i = 0; i < this.optionals.length; ++i) {
-          if (i > 0) {
-            buffer = dart.notNull(buffer) + ', ';
-          }
-          buffer = dart.notNull(buffer) + dart.notNull(dart.typeName(this.optionals[i]));
-        }
-        buffer = dart.notNull(buffer) + ']';
-      } else if (Object.keys(this.named).length > 0) {
-        if (this.args.length > 0) {
-          buffer = dart.notNull(buffer) + ', ';
-        }
-        buffer = dart.notNull(buffer) + '{';
-        let names = dart.getOwnPropertyNames(this.named);
-        names.sort();
-        for (let i = 0; i < names.length; ++i) {
-          if (i > 0) {
-            buffer = dart.notNull(buffer) + ', ';
-          }
-          let typeNameString = dart.typeName(this.named[names[i]]);
-          buffer = dart.notNull(buffer) + dart.str`${names[i]}: ${typeNameString}`;
-        }
-        buffer = dart.notNull(buffer) + '}';
+        let typeNameString = dart.typeName(this.named[names[i]]);
+        buffer = dart.notNull(buffer) + dart.str`${names[i]}: ${typeNameString}`;
       }
-      let returnTypeName = dart.typeName(this.returnType);
-      buffer = dart.notNull(buffer) + dart.str`) -> ${returnTypeName}`;
-      this[_stringValue] = buffer;
-      return buffer;
+      buffer = dart.notNull(buffer) + '}';
     }
-  };
-  dart.setSignature(dart.AbstractFunctionType, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.AbstractFunctionType, [])}),
-    fields: () => ({[_stringValue]: core.String})
-  });
-  dart._fnTypeNamedArgMap = new Map();
-  dart._fnTypeArrayArgMap = new Map();
-  dart._fnTypeTypeMap = new Map();
-  dart._fnTypeSmallMap = [new Map(), new Map(), new Map()];
-  const _process = Symbol('_process');
-  dart.FunctionType = class FunctionType extends dart.AbstractFunctionType {
-    static create(definite, returnType, args, extra) {
-      if (extra === void 0 && args.length < 3) {
-        return dart._createSmall(args.length, definite, returnType, args);
-      }
-      args = dart._canonicalizeArray(definite, args, dart._fnTypeArrayArgMap);
-      let keys = null;
-      let create = null;
-      if (extra === void 0) {
-        keys = [returnType, args];
-        create = dart.fn(() => new dart.FunctionType(returnType, args, [], {}), VoidToFunctionType());
-      } else if (extra instanceof Array) {
-        let optionals = dart._canonicalizeArray(definite, extra, dart._fnTypeArrayArgMap);
-        keys = [returnType, args, optionals];
-        create = dart.fn(() => new dart.FunctionType(returnType, args, optionals, {}), VoidToFunctionType());
+    let returnTypeName = dart.typeName(this.returnType);
+    buffer = dart.notNull(buffer) + dart.str`) -> ${returnTypeName}`;
+    this[_stringValue] = buffer;
+    return buffer;
+  }
+};
+dart.setSignature(dart.AbstractFunctionType, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.AbstractFunctionType, [])}),
+  fields: () => ({[_stringValue]: core.String})
+});
+dart._fnTypeNamedArgMap = new Map();
+dart._fnTypeArrayArgMap = new Map();
+dart._fnTypeTypeMap = new Map();
+dart._fnTypeSmallMap = [new Map(), new Map(), new Map()];
+const _process = Symbol('_process');
+dart.FunctionType = class FunctionType extends dart.AbstractFunctionType {
+  static create(definite, returnType, args, extra) {
+    if (extra === void 0 && args.length < 3) {
+      return dart._createSmall(args.length, definite, returnType, args);
+    }
+    args = dart._canonicalizeArray(definite, args, dart._fnTypeArrayArgMap);
+    let keys = null;
+    let create = null;
+    if (extra === void 0) {
+      keys = [returnType, args];
+      create = dart.fn(() => new dart.FunctionType(returnType, args, [], {}), VoidToFunctionType());
+    } else if (extra instanceof Array) {
+      let optionals = dart._canonicalizeArray(definite, extra, dart._fnTypeArrayArgMap);
+      keys = [returnType, args, optionals];
+      create = dart.fn(() => new dart.FunctionType(returnType, args, optionals, {}), VoidToFunctionType());
+    } else {
+      let named = dart._canonicalizeNamed(definite, extra, dart._fnTypeNamedArgMap);
+      keys = [returnType, args, named];
+      create = dart.fn(() => new dart.FunctionType(returnType, args, [], named), VoidToFunctionType());
+    }
+    return dart._memoizeArray(dart._fnTypeTypeMap, keys, create);
+  }
+  [_process](array, metadata) {
+    let result = [];
+    for (let i = 0; i < array.length; ++i) {
+      let arg = array[i];
+      if (arg instanceof Array) {
+        dart.dsend(metadata, 'add', arg.slice(1));
+        result[dartx.add](arg[0]);
       } else {
-        let named = dart._canonicalizeNamed(definite, extra, dart._fnTypeNamedArgMap);
-        keys = [returnType, args, named];
-        create = dart.fn(() => new dart.FunctionType(returnType, args, [], named), VoidToFunctionType());
+        metadata.push([]);
+        result.push(arg);
       }
-      return dart._memoizeArray(dart._fnTypeTypeMap, keys, create);
     }
-    [_process](array, metadata) {
-      let result = [];
-      for (let i = 0; i < array.length; ++i) {
-        let arg = array[i];
-        if (arg instanceof Array) {
-          dart.dsend(metadata, 'add', arg.slice(1));
-          result[dartx.add](arg[0]);
+    return result;
+  }
+  new(returnType, args, optionals, named) {
+    this.returnType = returnType;
+    this.args = args;
+    this.optionals = optionals;
+    this.named = named;
+    this.metadata = null;
+    super.new();
+    this.metadata = [];
+    this.args = this[_process](this.args, this.metadata);
+    this.optionals = this[_process](this.optionals, this.metadata);
+  }
+};
+dart.setSignature(dart.FunctionType, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.FunctionType, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
+  fields: () => ({
+    returnType: dart.dynamic,
+    args: dart.dynamic,
+    optionals: dart.dynamic,
+    named: dart.dynamic,
+    metadata: dart.dynamic
+  }),
+  methods: () => ({[_process]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])}),
+  statics: () => ({create: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
+  names: ['create']
+});
+const _name = Symbol('_name');
+const _closure = Symbol('_closure');
+const _functionType = Symbol('_functionType');
+dart.Typedef = class Typedef extends dart.AbstractFunctionType {
+  new(name, closure) {
+    this[_name] = name;
+    this[_closure] = closure;
+    this[_functionType] = null;
+    super.new();
+  }
+  get name() {
+    return core.String._check(this[_name]);
+  }
+  get functionType() {
+    if (this[_functionType] == null) {
+      this[_functionType] = this[_closure]();
+    }
+    return this[_functionType];
+  }
+  get returnType() {
+    return this.functionType.returnType;
+  }
+  get args() {
+    return core.List._check(this.functionType.args);
+  }
+  get optionals() {
+    return core.List._check(this.functionType.optionals);
+  }
+  get named() {
+    return this.functionType.named;
+  }
+  get metadata() {
+    return core.List._check(this.functionType.metadata);
+  }
+};
+dart.setSignature(dart.Typedef, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.Typedef, [dart.dynamic, dart.dynamic])}),
+  fields: () => ({
+    [_name]: dart.dynamic,
+    [_closure]: dart.dynamic,
+    [_functionType]: dart.AbstractFunctionType
+  }),
+  getters: () => ({
+    functionType: dart.definiteFunctionType(dart.AbstractFunctionType, []),
+    returnType: dart.definiteFunctionType(dart.dynamic, []),
+    args: dart.definiteFunctionType(core.List, []),
+    optionals: dart.definiteFunctionType(core.List, []),
+    named: dart.definiteFunctionType(dart.dynamic, []),
+    metadata: dart.definiteFunctionType(core.List, [])
+  })
+});
+dart._typeFormalCount = Symbol("_typeFormalCount");
+dart.isSubtype = dart._subtypeMemo((t1, t2) => t1 === t2 || dart._isSubtype(t1, t2, true));
+dart._trapRuntimeErrors = true;
+dart._jsIterator = Symbol("_jsIterator");
+dart._current = Symbol("_current");
+dart._AsyncStarStreamController = class _AsyncStarStreamController {
+  constructor(generator, T, args) {
+    this.isAdding = false;
+    this.isWaiting = false;
+    this.isScheduled = false;
+    this.isSuspendedAtYield = false;
+    this.canceler = null;
+    this.iterator = generator(this, ...args)[Symbol.iterator]();
+    this.controller = dart.getGenericClass(async.StreamController)(T).new({
+      onListen: () => this.scheduleGenerator(),
+      onResume: () => this.onResume(),
+      onCancel: () => this.onCancel()
+    });
+  }
+  onResume() {
+    if (this.isSuspendedAtYield) {
+      this.scheduleGenerator();
+    }
+  }
+  onCancel() {
+    if (this.controller.isClosed) {
+      return null;
+    }
+    if (this.canceler == null) {
+      this.canceler = async.Completer.new();
+      this.scheduleGenerator();
+    }
+    return this.canceler.future;
+  }
+  close() {
+    if (this.canceler != null && !this.canceler.isCompleted) {
+      this.canceler.complete();
+    }
+    this.controller.close();
+  }
+  scheduleGenerator() {
+    if (this.isScheduled || this.controller.isPaused || this.isAdding || this.isWaiting) {
+      return;
+    }
+    this.isScheduled = true;
+    async.scheduleMicrotask(() => this.runBody());
+  }
+  runBody(opt_awaitValue) {
+    this.isScheduled = false;
+    this.isSuspendedAtYield = false;
+    this.isWaiting = false;
+    let iter;
+    try {
+      iter = this.iterator.next(opt_awaitValue);
+    } catch (e) {
+      this.addError(e, dart.stackTrace(e));
+      this.close();
+      return;
+    }
+
+    if (iter.done) {
+      this.close();
+      return;
+    }
+    if (this.isSuspendedAtYield || this.isAdding) return;
+    this.isWaiting = true;
+    let future = iter.value;
+    if (!dart.is(future, dart.getGenericClass(async.Future))) {
+      future = async.Future.value(future);
+    }
+    return future.then(dart.dynamic)(x => this.runBody(x), {
+      onError: (e, s) => this.throwError(e, s)
+    });
+  }
+  add(event) {
+    if (!this.controller.hasListener) return true;
+    this.controller.add(event);
+    this.scheduleGenerator();
+    this.isSuspendedAtYield = true;
+    return false;
+  }
+  addStream(stream) {
+    if (!this.controller.hasListener) return true;
+    this.isAdding = true;
+    this.controller.addStream(stream, {cancelOnError: false}).then(dart.dynamic)(() => {
+      this.isAdding = false;
+      this.scheduleGenerator();
+    }, {
+      onError: (e, s) => this.throwError(e, s)
+    });
+  }
+  throwError(error, stackTrace) {
+    try {
+      this.iterator.throw(error);
+    } catch (e) {
+      this.addError(e, stackTrace);
+    }
+
+  }
+  addError(error, stackTrace) {
+    if (this.canceler != null && !this.canceler.isCompleted) {
+      this.canceler.completeError(error, stackTrace);
+      return;
+    }
+    if (!this.controller.hasListener) return;
+    this.controller.addError(error, stackTrace);
+  }
+};
+core.Invocation = class Invocation extends core.Object {
+  get isAccessor() {
+    return dart.test(this.isGetter) || dart.test(this.isSetter);
+  }
+};
+dart.setSignature(core.Invocation, {
+  getters: () => ({isAccessor: dart.definiteFunctionType(core.bool, [])})
+});
+dart.InvocationImpl = class InvocationImpl extends core.Invocation {
+  new(memberName, positionalArguments, opts) {
+    let namedArguments = opts && 'namedArguments' in opts ? opts.namedArguments : null;
+    let isMethod = opts && 'isMethod' in opts ? opts.isMethod : false;
+    let isGetter = opts && 'isGetter' in opts ? opts.isGetter : false;
+    let isSetter = opts && 'isSetter' in opts ? opts.isSetter : false;
+    this.positionalArguments = positionalArguments;
+    this.isMethod = isMethod;
+    this.isGetter = isGetter;
+    this.isSetter = isSetter;
+    this.memberName = dart._dartSymbol(memberName);
+    this.namedArguments = dart.InvocationImpl._namedArgsToSymbols(namedArguments);
+  }
+  static _namedArgsToSymbols(namedArgs) {
+    if (namedArgs == null) return dart.map({}, core.Symbol, dart.dynamic);
+    return MapOfSymbol$dynamic().fromIterable(dart.getOwnPropertyNames(namedArgs), {key: dart._dartSymbol, value: dart.fn(k => namedArgs[k], dynamicTodynamic$())});
+  }
+};
+dart.setSignature(dart.InvocationImpl, {
+  constructors: () => ({new: dart.definiteFunctionType(dart.InvocationImpl, [dart.dynamic, core.List], {namedArguments: dart.dynamic, isMethod: core.bool, isGetter: core.bool, isSetter: core.bool})}),
+  fields: () => ({
+    memberName: core.Symbol,
+    positionalArguments: core.List,
+    namedArguments: MapOfSymbol$dynamic(),
+    isMethod: core.bool,
+    isGetter: core.bool,
+    isSetter: core.bool
+  }),
+  statics: () => ({_namedArgsToSymbols: dart.definiteFunctionType(core.Map$(core.Symbol, dart.dynamic), [dart.dynamic])}),
+  names: ['_namedArgsToSymbols']
+});
+dart._MethodStats = class _MethodStats extends core.Object {
+  new(typeName, frame) {
+    this.typeName = typeName;
+    this.frame = frame;
+    this.count = null;
+    this.count = 0;
+  }
+};
+dart.setSignature(dart._MethodStats, {
+  constructors: () => ({new: dart.definiteFunctionType(dart._MethodStats, [core.String, core.String])}),
+  fields: () => ({
+    typeName: core.String,
+    frame: core.String,
+    count: core.int
+  })
+});
+dart.defineLazy(dart, {
+  get _callMethodStats() {
+    return MapOfString$_MethodStats().new();
+  },
+  set _callMethodStats(_) {}
+});
+dart.defineLazy(dart, {
+  get trackProfile() {
+    return dart.global.trackDdcProfile;
+  },
+  set trackProfile(_) {}
+});
+dart._ignoreTypeFailure = (() => {
+  return dart._ignoreMemo((actual, type) => {
+    if (!!dart.isSubtype(type, core.Iterable) && !!dart.isSubtype(actual, core.Iterable) || !!dart.isSubtype(type, async.Future) && !!dart.isSubtype(actual, async.Future) || !!dart.isSubtype(type, core.Map) && !!dart.isSubtype(actual, core.Map) || dart.isFunctionType(type) && dart.isFunctionType(actual) || !!dart.isSubtype(type, async.Stream) && !!dart.isSubtype(actual, async.Stream) || !!dart.isSubtype(type, async.StreamSubscription) && !!dart.isSubtype(actual, async.StreamSubscription)) {
+      console.warn('Ignoring cast fail from ' + dart.typeName(actual) + ' to ' + dart.typeName(type));
+      return true;
+    }
+    return false;
+  });
+})();
+dart._stack = null;
+dart._value = Symbol("_value");
+dart.constants = new Map();
+dart.constantLists = new Map();
+dart.JsIterator = class JsIterator {
+  constructor(dartIterator) {
+    this.dartIterator = dartIterator;
+  }
+  next() {
+    let i = this.dartIterator;
+    let done = !i.moveNext();
+    return {done: done, value: done ? void 0 : i.current};
+  }
+};
+dart.hasOwnProperty = Object.prototype.hasOwnProperty;
+_debugger.JsonMLConfig = class JsonMLConfig extends core.Object {
+  new(name) {
+    this.name = name;
+  }
+};
+dart.setSignature(_debugger.JsonMLConfig, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.JsonMLConfig, [core.String])}),
+  fields: () => ({name: core.String}),
+  sfields: () => ({
+    none: _debugger.JsonMLConfig,
+    skipDart: _debugger.JsonMLConfig,
+    keyToString: _debugger.JsonMLConfig,
+    asClass: _debugger.JsonMLConfig
+  })
+});
+dart.defineLazy(_debugger.JsonMLConfig, {
+  get none() {
+    return dart.const(new _debugger.JsonMLConfig("none"));
+  },
+  get skipDart() {
+    return dart.const(new _debugger.JsonMLConfig("skipDart"));
+  },
+  get keyToString() {
+    return dart.const(new _debugger.JsonMLConfig("keyToString"));
+  },
+  get asClass() {
+    return dart.const(new _debugger.JsonMLConfig("asClass"));
+  }
+});
+_debugger._maxSpanLength = 100;
+dart.defineLazy(_debugger, {
+  get _devtoolsFormatter() {
+    return new _debugger.JsonMLFormatter(new _debugger.DartFormatter());
+  },
+  set _devtoolsFormatter(_) {}
+});
+_debugger._typeof = function(object) {
+  return typeof object;
+};
+dart.lazyFn(_debugger._typeof, () => dynamicToString());
+_debugger.getOwnPropertyNames = function(object) {
+  return dart.list(Object.getOwnPropertyNames(object), core.String);
+};
+dart.lazyFn(_debugger.getOwnPropertyNames, () => dynamicToListOfString());
+_debugger.getOwnPropertySymbols = function(object) {
+  return Object.getOwnPropertySymbols(object);
+};
+dart.lazyFn(_debugger.getOwnPropertySymbols, () => dynamicToList());
+_debugger.JSNative = class JSNative extends core.Object {
+  static getProperty(object, name) {
+    return object[name];
+  }
+  static setProperty(object, name, value) {
+    return object[name] = value;
+  }
+};
+dart.setSignature(_debugger.JSNative, {
+  statics: () => ({
+    getProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    setProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['getProperty', 'setProperty']
+});
+_debugger.addMetadataChildren = function(object, ret) {
+  ret.add(new _debugger.NameValuePair({name: _debugger.getTypeName(core.Type._check(_debugger._getType(object))), value: object, config: _debugger.JsonMLConfig.asClass}));
+};
+dart.lazyFn(_debugger.addMetadataChildren, () => dynamicAndSetOfNameValuePairTovoid());
+_debugger.getObjectTypeName = function(object) {
+  let reifiedType = dart.getReifiedType(object);
+  if (reifiedType == null) {
+    if (_debugger._typeof(object) == 'function') {
+      return '[[Raw JavaScript Function]]';
+    }
+    return '<Error getting type name>';
+  }
+  return _debugger.getTypeName(core.Type._check(reifiedType));
+};
+dart.lazyFn(_debugger.getObjectTypeName, () => dynamicToString());
+_debugger.getTypeName = function(type) {
+  let name = dart.typeName(type);
+  if (name == 'JSArray<dynamic>' || name == 'JSObject<Array>') return 'List<dynamic>';
+  return name;
+};
+dart.lazyFn(_debugger.getTypeName, () => TypeToString());
+_debugger._getType = function(object) {
+  return core.Type.is(object) ? object : dart.getReifiedType(object);
+};
+dart.fn(_debugger._getType, dynamicToObject());
+const _simpleFormatter = Symbol('_simpleFormatter');
+_debugger.safePreview = function(object, config) {
+  try {
+    let preview = _debugger._devtoolsFormatter[_simpleFormatter].preview(object, config);
+    if (preview != null) return preview;
+    return dart.toString(object);
+  } catch (e) {
+    return dart.str`<Exception thrown> ${e}`;
+  }
+
+};
+dart.lazyFn(_debugger.safePreview, () => dynamicAnddynamicToString());
+_debugger.symbolName = function(symbol) {
+  let name = dart.toString(symbol);
+  dart.assert(name[dartx.startsWith]('Symbol('));
+  return name[dartx.substring]('Symbol('[dartx.length], dart.notNull(name[dartx.length]) - 1);
+};
+dart.lazyFn(_debugger.symbolName, () => dynamicToString());
+_debugger.hasMethod = function(object, name) {
+  try {
+    return core.bool._check(dart.hasMethod(object, name));
+  } catch (e) {
+    return false;
+  }
+
+};
+dart.lazyFn(_debugger.hasMethod, () => dynamicAndStringTobool());
+_debugger.NameValuePair = class NameValuePair extends core.Object {
+  new(opts) {
+    let name = opts && 'name' in opts ? opts.name : null;
+    let value = opts && 'value' in opts ? opts.value : null;
+    let config = opts && 'config' in opts ? opts.config : _debugger.JsonMLConfig.none;
+    let hideName = opts && 'hideName' in opts ? opts.hideName : false;
+    this.name = name;
+    this.value = value;
+    this.config = config;
+    this.hideName = hideName;
+  }
+  ['=='](other) {
+    return _debugger.NameValuePair.is(other) && other.name == this.name;
+  }
+  get hashCode() {
+    return dart.hashCode(this.name);
+  }
+  get displayName() {
+    return dart.test(this.hideName) ? '' : this.name;
+  }
+};
+dart.setSignature(_debugger.NameValuePair, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.NameValuePair, [], {name: core.String, value: core.Object, config: _debugger.JsonMLConfig, hideName: core.bool})}),
+  fields: () => ({
+    name: core.String,
+    value: core.Object,
+    config: _debugger.JsonMLConfig,
+    hideName: core.bool
+  }),
+  getters: () => ({displayName: dart.definiteFunctionType(core.String, [])})
+});
+_debugger.MapEntry = class MapEntry extends core.Object {
+  new(opts) {
+    let key = opts && 'key' in opts ? opts.key : null;
+    let value = opts && 'value' in opts ? opts.value : null;
+    this.key = key;
+    this.value = value;
+  }
+};
+dart.setSignature(_debugger.MapEntry, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.MapEntry, [], {key: core.Object, value: core.Object})}),
+  fields: () => ({
+    key: core.Object,
+    value: core.Object
+  })
+});
+_debugger.IterableSpan = class IterableSpan extends core.Object {
+  new(start, end, iterable) {
+    this.start = start;
+    this.end = end;
+    this.iterable = iterable;
+  }
+  get length() {
+    return dart.notNull(this.end) - dart.notNull(this.start);
+  }
+  get maxPowerOfSubsetSize() {
+    return (dart.notNull(math.log(dart.notNull(this.length) - 0.5)) / dart.notNull(math.log(_debugger._maxSpanLength)))[dartx.truncate]();
+  }
+  get subsetSize() {
+    return dart.asInt(math.pow(_debugger._maxSpanLength, this.maxPowerOfSubsetSize));
+  }
+  asMap() {
+    return this.iterable[dartx.skip](this.start)[dartx.take](this.length)[dartx.toList]()[dartx.asMap]();
+  }
+  children() {
+    let children = JSArrayOfNameValuePair().of([]);
+    if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
+      this.asMap()[dartx.forEach](dart.fn((i, element) => {
+        children[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
+      }, intAnddynamicToNull()));
+    } else {
+      for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
+        let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
+        if (subSpan.length == 1) {
+          children[dartx.add](new _debugger.NameValuePair({name: dart.toString(i), value: this.iterable[dartx.elementAt](i)}));
         } else {
-          metadata.push([]);
-          result.push(arg);
+          children[dartx.add](new _debugger.NameValuePair({name: dart.str`[${i}...${dart.notNull(subSpan.end) - 1}]`, value: subSpan, hideName: true}));
         }
       }
+    }
+    return children;
+  }
+};
+dart.setSignature(_debugger.IterableSpan, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.IterableSpan, [core.int, core.int, core.Iterable])}),
+  fields: () => ({
+    start: core.int,
+    end: core.int,
+    iterable: core.Iterable
+  }),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    maxPowerOfSubsetSize: dart.definiteFunctionType(core.int, []),
+    subsetSize: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    asMap: dart.definiteFunctionType(core.Map$(core.int, dart.dynamic), []),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [])
+  })
+});
+_debugger.Library = class Library extends core.Object {
+  new(name, object) {
+    this.name = name;
+    this.object = object;
+  }
+};
+dart.setSignature(_debugger.Library, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.Library, [core.String, core.Object])}),
+  fields: () => ({
+    name: core.String,
+    object: core.Object
+  })
+});
+_debugger.NamedConstructor = class NamedConstructor extends core.Object {
+  new(object) {
+    this.object = object;
+  }
+};
+dart.setSignature(_debugger.NamedConstructor, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.NamedConstructor, [core.Object])}),
+  fields: () => ({object: core.Object})
+});
+_debugger.HeritageClause = class HeritageClause extends core.Object {
+  new(name, types) {
+    this.name = name;
+    this.types = types;
+  }
+};
+dart.setSignature(_debugger.HeritageClause, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.HeritageClause, [core.String, core.List])}),
+  fields: () => ({
+    name: core.String,
+    types: core.List
+  })
+});
+_debugger.safeGetProperty = function(protoChain, name) {
+  try {
+    return _debugger.JSNative.getProperty(protoChain, name);
+  } catch (e) {
+    return dart.str`<Exception thrown> ${e}`;
+  }
+
+};
+dart.fn(_debugger.safeGetProperty, ObjectAndObjectToObject());
+_debugger.safeProperties = function(object) {
+  return MapOfdynamic$Object().fromIterable(_debugger.getOwnPropertyNames(object)[dartx.where](dart.fn(each => _debugger.safeGetProperty(object, each) != null, StringTobool$())), {key: dart.fn(name => name, dynamicTodynamic$()), value: dart.fn(name => _debugger.safeGetProperty(object, name), dynamicToObject())});
+};
+dart.fn(_debugger.safeProperties, dynamicTodynamic$());
+const _attributes = Symbol('_attributes');
+const _jsonML = Symbol('_jsonML');
+_debugger.JsonMLElement = class JsonMLElement extends core.Object {
+  new(tagName) {
+    this[_attributes] = null;
+    this[_jsonML] = null;
+    this[_attributes] = {};
+    this[_jsonML] = [tagName, this[_attributes]];
+  }
+  appendChild(element) {
+    this[_jsonML][dartx.add](dart.dsend(element, 'toJsonML'));
+  }
+  createChild(tagName) {
+    let c = new _debugger.JsonMLElement(tagName);
+    this[_jsonML][dartx.add](c.toJsonML());
+    return c;
+  }
+  createObjectTag(object) {
+    return (() => {
+      let _ = this.createChild('object');
+      _.addAttribute('object', object);
+      return _;
+    })();
+  }
+  setStyle(style) {
+    dart.dput(this[_attributes], 'style', style);
+  }
+  addStyle(style) {
+    if (dart.dload(this[_attributes], 'style') == null) {
+      dart.dput(this[_attributes], 'style', style);
+    } else {
+      let o = this[_attributes];
+      dart.dput(o, 'style', dart.dsend(dart.dload(o, 'style'), '+', style));
+    }
+  }
+  addAttribute(key, value) {
+    _debugger.JSNative.setProperty(this[_attributes], key, value);
+  }
+  createTextChild(text) {
+    this[_jsonML][dartx.add](text);
+  }
+  toJsonML() {
+    return this[_jsonML];
+  }
+};
+dart.setSignature(_debugger.JsonMLElement, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.JsonMLElement, [dart.dynamic])}),
+  fields: () => ({
+    [_attributes]: dart.dynamic,
+    [_jsonML]: core.List
+  }),
+  methods: () => ({
+    appendChild: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    createChild: dart.definiteFunctionType(_debugger.JsonMLElement, [core.String]),
+    createObjectTag: dart.definiteFunctionType(_debugger.JsonMLElement, [dart.dynamic]),
+    setStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    addStyle: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    addAttribute: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    createTextChild: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    toJsonML: dart.definiteFunctionType(dart.dynamic, [])
+  })
+});
+_debugger.isNativeJavaScriptObject = function(object) {
+  let type = _debugger._typeof(object);
+  return type != 'object' && type != 'function' || dart.JSObject.is(object) || html$.Node.is(object);
+};
+dart.lazyFn(_debugger.isNativeJavaScriptObject, () => dynamicTobool$());
+_debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object {
+  new(simpleFormatter) {
+    this[_simpleFormatter] = simpleFormatter;
+    this.customFormattersOn = false;
+  }
+  setMaxSpanLengthForTestingOnly(spanLength) {
+    _debugger._maxSpanLength = spanLength;
+  }
+  header(object, config) {
+    this.customFormattersOn = true;
+    if (dart.equals(config, _debugger.JsonMLConfig.skipDart) || dart.test(_debugger.isNativeJavaScriptObject(object))) {
+      return null;
+    }
+    let c = this[_simpleFormatter].preview(object, config);
+    if (c == null) return null;
+    if (dart.equals(config, _debugger.JsonMLConfig.keyToString)) {
+      c = dart.toString(object);
+    }
+    let element = new _debugger.JsonMLElement('span');
+    element.setStyle('background-color: #d9edf7;');
+    element.createTextChild(c);
+    return element.toJsonML();
+  }
+  hasBody(object, config) {
+    return this[_simpleFormatter].hasChildren(object, config);
+  }
+  body(object, config) {
+    let body = new _debugger.JsonMLElement('ol');
+    body.setStyle('list-style-type: none;' + 'padding-left: 0px;' + 'margin-top: 0px;' + 'margin-bottom: 0px;' + 'margin-left: 12px;');
+    if (core.StackTrace.is(object)) {
+      body.addStyle('color: rgb(196, 26, 22);');
+    }
+    let children = this[_simpleFormatter].children(object, config);
+    for (let child of children) {
+      let li = body.createChild('li');
+      let nameSpan = new _debugger.JsonMLElement('span');
+      nameSpan.createTextChild(dart.test(child.displayName[dartx.isNotEmpty]) ? dart.str`${child.displayName}: ` : '');
+      nameSpan.setStyle('color: rgb(136, 19, 145);');
+      if (_debugger._typeof(child.value) == 'object' || _debugger._typeof(child.value) == 'function') {
+        nameSpan.addStyle("padding-left: 13px;");
+        li.appendChild(nameSpan);
+        let objectTag = li.createObjectTag(child.value);
+        objectTag.addAttribute('config', child.config);
+        if (!dart.test(this[_simpleFormatter].hasChildren(child.value, child.config))) {
+          li.setStyle("padding-left: 13px;");
+        }
+      } else {
+        li.setStyle("padding-left: 13px;");
+        let _ = li.createChild('span');
+        _.appendChild(nameSpan);
+        _.createTextChild(_debugger.safePreview(child.value, child.config));
+      }
+    }
+    return body.toJsonML();
+  }
+};
+dart.setSignature(_debugger.JsonMLFormatter, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.JsonMLFormatter, [_debugger.DartFormatter])}),
+  fields: () => ({
+    [_simpleFormatter]: _debugger.DartFormatter,
+    customFormattersOn: core.bool
+  }),
+  methods: () => ({
+    setMaxSpanLengthForTestingOnly: dart.definiteFunctionType(dart.void, [core.int]),
+    header: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    hasBody: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    body: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])
+  })
+});
+_debugger.Formatter = class Formatter extends core.Object {};
+const _formatters = Symbol('_formatters');
+_debugger.DartFormatter = class DartFormatter extends core.Object {
+  new() {
+    this[_formatters] = null;
+    this[_formatters] = JSArrayOfFormatter().of([new _debugger.ClassFormatter(), new _debugger.NamedConstructorFormatter(), new _debugger.MapFormatter(), new _debugger.IterableFormatter(), new _debugger.IterableSpanFormatter(), new _debugger.MapEntryFormatter(), new _debugger.StackTraceFormatter(), new _debugger.FunctionFormatter(), new _debugger.HeritageClauseFormatter(), new _debugger.LibraryModuleFormatter(), new _debugger.LibraryFormatter(), new _debugger.ObjectFormatter()]);
+  }
+  preview(object, config) {
+    try {
+      if (object == null || typeof object == 'number' || typeof object == 'string' || dart.test(_debugger.isNativeJavaScriptObject(object))) {
+        return dart.toString(object);
+      }
+      for (let formatter of this[_formatters]) {
+        if (dart.test(formatter.accept(object, config))) return formatter.preview(object);
+      }
+    } catch (e) {
+      let trace = dart.stackTrace(e);
+      html$.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
+    }
+
+    return null;
+  }
+  hasChildren(object, config) {
+    if (object == null) return false;
+    try {
+      for (let formatter of this[_formatters]) {
+        if (dart.test(formatter.accept(object, config))) return formatter.hasChildren(object);
+      }
+    } catch (e) {
+      let trace = dart.stackTrace(e);
+      html$.window[dartx.console].error(dart.str`[hasChildren] Caught exception ${e}\n trace:\n${trace}`);
+    }
+
+    return false;
+  }
+  children(object, config) {
+    try {
+      if (object != null) {
+        for (let formatter of this[_formatters]) {
+          if (dart.test(formatter.accept(object, config))) return formatter.children(object);
+        }
+      }
+    } catch (e) {
+      let trace = dart.stackTrace(e);
+      html$.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
+    }
+
+    return JSArrayOfNameValuePair().of([]);
+  }
+};
+dart.setSignature(_debugger.DartFormatter, {
+  constructors: () => ({new: dart.definiteFunctionType(_debugger.DartFormatter, [])}),
+  fields: () => ({[_formatters]: ListOfFormatter()}),
+  methods: () => ({
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic, dart.dynamic])
+  })
+});
+_debugger.ObjectFormatter = class ObjectFormatter extends _debugger.Formatter {
+  accept(object, config) {
+    return !dart.test(_debugger.isNativeJavaScriptObject(object));
+  }
+  preview(object) {
+    return _debugger.getObjectTypeName(object);
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    let properties = LinkedHashSetOfNameValuePair().new();
+    _debugger.addMetadataChildren(object, properties);
+    let current = object;
+    let protoChain = JSArrayOfObject().of([]);
+    while (current != null && !dart.test(_debugger.isNativeJavaScriptObject(current)) && current !== Object.prototype) {
+      protoChain[dartx.add](current);
+      current = _debugger.safeGetProperty(current, '__proto__');
+    }
+    for (current of protoChain) {
+      for (let symbol of _debugger.getOwnPropertySymbols(current)) {
+        let dartName = _debugger.symbolName(symbol);
+        if (dart.test(_debugger.hasMethod(object, dartName))) {
+          continue;
+        }
+        let dartXPrefix = 'dartx.';
+        if (dart.test(dartName[dartx.startsWith](dartXPrefix))) {
+          dartName = dartName[dartx.substring](dartXPrefix[dartx.length]);
+        } else if (!dart.test(dartName[dartx.startsWith]('_'))) {
+          continue;
+        }
+        let value = _debugger.safeGetProperty(object, symbol);
+        properties.add(new _debugger.NameValuePair({name: dartName, value: value}));
+      }
+    }
+    for (current of protoChain) {
+      let className = dart.dload(dart.getReifiedType(current), 'name');
+      for (let name of _debugger.getOwnPropertyNames(current)) {
+        if (dart.test(_debugger.ObjectFormatter._customNames.contains(name)) || dart.equals(name, className)) continue;
+        if (dart.test(_debugger.hasMethod(object, name))) {
+          continue;
+        }
+        let value = _debugger.safeGetProperty(object, name);
+        properties.add(new _debugger.NameValuePair({name: name, value: value}));
+      }
+    }
+    return properties.toList();
+  }
+};
+dart.setSignature(_debugger.ObjectFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  }),
+  sfields: () => ({_customNames: SetOfString()})
+});
+dart.defineLazy(_debugger.ObjectFormatter, {
+  get _customNames() {
+    return (() => {
+      let _ = SetOfString().new();
+      _.add('constructor');
+      _.add('prototype');
+      _.add('__proto__');
+      return _;
+    })();
+  },
+  set _customNames(_) {}
+});
+_debugger.LibraryModuleFormatter = class LibraryModuleFormatter extends core.Object {
+  accept(object, config) {
+    return dart.getDartLibraryName(object) != null;
+  }
+  hasChildren(object) {
+    return true;
+  }
+  preview(object) {
+    let libraryNames = dart.dsend(dart.getDartLibraryName(object), 'split', '/');
+    if (dart.test(dart.dsend(dart.dload(libraryNames, 'length'), '>', 1))) {
+      dart.dsetindex(libraryNames, dart.dsend(dart.dload(libraryNames, 'length'), '-', 1), '');
+    }
+    return dart.str`Library Module: ${dart.dsend(libraryNames, 'join', '/')}`;
+  }
+  children(object) {
+    let children = LinkedHashSetOfNameValuePair().new();
+    for (let name of _debugger.getOwnPropertyNames(object)) {
+      let value = _debugger.safeGetProperty(object, name);
+      name = dart.str`${name[dartx.replaceAll]("__", "/")}.dart`;
+      children.add(new _debugger.NameValuePair({name: name, value: new _debugger.Library(name, value), hideName: true}));
+    }
+    return children.toList();
+  }
+};
+_debugger.LibraryModuleFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.LibraryModuleFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.LibraryFormatter = class LibraryFormatter extends core.Object {
+  new() {
+    this.genericParameters = HashMapOfString$String().new();
+  }
+  accept(object, config) {
+    return _debugger.Library.is(object);
+  }
+  hasChildren(object) {
+    return true;
+  }
+  preview(object) {
+    return core.String._check(dart.dload(object, 'name'));
+  }
+  children(object) {
+    let children = LinkedHashSetOfNameValuePair().new();
+    let nonGenericProperties = LinkedHashMapOfString$Object().new();
+    let objectProperties = _debugger.safeProperties(dart.dload(object, 'object'));
+    dart.dsend(objectProperties, 'forEach', dart.fn((name, value) => {
+      let genericTypeConstructor = dart.getGenericTypeCtor(value);
+      if (genericTypeConstructor != null) {
+        this.recordGenericParameters(core.String._check(name), genericTypeConstructor);
+      } else {
+        nonGenericProperties._set(core.String._check(name), value);
+      }
+    }, dynamicAnddynamicToNull()));
+    nonGenericProperties.forEach(dart.fn((name, value) => {
+      if (core.Type.is(value)) {
+        children.add(_debugger.NameValuePair._check(this.classChild(name, value)));
+      } else {
+        children.add(new _debugger.NameValuePair({name: name, value: value}));
+      }
+    }, StringAndObjectToNull()));
+    return children.toList();
+  }
+  recordGenericParameters(name, genericTypeConstructor) {
+    this.genericParameters._set(name, genericTypeConstructor.toString()[dartx.split](' =>')[dartx.first][dartx.replaceAll](core.RegExp.new('[(|)]'), ''));
+  }
+  classChild(name, child) {
+    let typeName = _debugger.getTypeName(core.Type._check(child));
+    let parameterName = dart.str`${name}\$`;
+    if (dart.test(this.genericParameters.keys[dartx.contains](parameterName))) {
+      typeName = dart.str`${typeName}<${this.genericParameters._get(parameterName)}>`;
+      _debugger.JSNative.setProperty(child, 'genericTypeName', typeName);
+    }
+    return new _debugger.NameValuePair({name: typeName, value: child});
+  }
+};
+_debugger.LibraryFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.LibraryFormatter, {
+  fields: () => ({genericParameters: HashMapOfString$String()}),
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic]),
+    recordGenericParameters: dart.definiteFunctionType(dart.dynamic, [core.String, core.Object]),
+    classChild: dart.definiteFunctionType(dart.dynamic, [core.String, core.Object])
+  })
+});
+_debugger.FunctionFormatter = class FunctionFormatter extends core.Object {
+  accept(object, config) {
+    if (_debugger._typeof(object) != 'function') return false;
+    return dart.getReifiedType(object) != null;
+  }
+  hasChildren(object) {
+    return true;
+  }
+  preview(object) {
+    return dart.typeName(dart.getReifiedType(object));
+  }
+  children(object) {
+    return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'signature', value: this.preview(object)}), new _debugger.NameValuePair({name: 'JavaScript Function', value: object, config: _debugger.JsonMLConfig.skipDart})]);
+  }
+};
+_debugger.FunctionFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.FunctionFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.MapFormatter = class MapFormatter extends core.Object {
+  accept(object, config) {
+    return core.Map.is(object);
+  }
+  hasChildren(object) {
+    return true;
+  }
+  preview(object) {
+    let map = core.Map._check(object);
+    return dart.str`${_debugger.getObjectTypeName(map)} length ${map[dartx.length]}`;
+  }
+  children(object) {
+    let map = core.Map._check(object);
+    let entries = LinkedHashSetOfNameValuePair().new();
+    map[dartx.forEach](dart.fn((key, value) => {
+      let entryWrapper = new _debugger.MapEntry({key: key, value: value});
+      entries.add(new _debugger.NameValuePair({name: dart.toString(entries.length), value: entryWrapper}));
+    }, dynamicAnddynamicToNull()));
+    _debugger.addMetadataChildren(object, entries);
+    return entries.toList();
+  }
+};
+_debugger.MapFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.MapFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.IterableFormatter = class IterableFormatter extends core.Object {
+  accept(object, config) {
+    return core.Iterable.is(object);
+  }
+  preview(object) {
+    let iterable = core.Iterable._check(object);
+    try {
+      let length = iterable[dartx.length];
+      return dart.str`${_debugger.getObjectTypeName(iterable)} length ${length}`;
+    } catch (_) {
+      return dart.str`${_debugger.getObjectTypeName(iterable)}`;
+    }
+
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    let children = LinkedHashSetOfNameValuePair().new();
+    children.addAll(new _debugger.IterableSpan(0, core.int._check(dart.dload(object, 'length')), core.Iterable._check(object)).children());
+    _debugger.addMetadataChildren(object, children);
+    return children.toList();
+  }
+};
+_debugger.IterableFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.IterableFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.NamedConstructorFormatter = class NamedConstructorFormatter extends core.Object {
+  accept(object, config) {
+    return _debugger.NamedConstructor.is(object);
+  }
+  preview(object) {
+    return 'Named Constructor';
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'JavaScript Function', value: object, config: _debugger.JsonMLConfig.skipDart})]);
+  }
+};
+_debugger.NamedConstructorFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.NamedConstructorFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.MapEntryFormatter = class MapEntryFormatter extends core.Object {
+  accept(object, config) {
+    return _debugger.MapEntry.is(object);
+  }
+  preview(object) {
+    let entry = _debugger.MapEntry._check(object);
+    return dart.str`${_debugger.safePreview(entry.key, _debugger.JsonMLConfig.none)} => ${_debugger.safePreview(entry.value, _debugger.JsonMLConfig.none)}`;
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'key', value: dart.dload(object, 'key'), config: _debugger.JsonMLConfig.keyToString}), new _debugger.NameValuePair({name: 'value', value: dart.dload(object, 'value')})]);
+  }
+};
+_debugger.MapEntryFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.MapEntryFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.HeritageClauseFormatter = class HeritageClauseFormatter extends core.Object {
+  accept(object, config) {
+    return _debugger.HeritageClause.is(object);
+  }
+  preview(object) {
+    let clause = _debugger.HeritageClause._check(object);
+    let typeNames = clause.types[dartx.map](core.String)(_debugger.getTypeName);
+    return dart.str`${clause.name} ${typeNames[dartx.join](", ")}`;
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    let clause = _debugger.HeritageClause._check(object);
+    let children = JSArrayOfNameValuePair().of([]);
+    for (let type of clause.types) {
+      children[dartx.add](new _debugger.NameValuePair({value: type, config: _debugger.JsonMLConfig.asClass}));
+    }
+    return children;
+  }
+};
+_debugger.HeritageClauseFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.HeritageClauseFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.IterableSpanFormatter = class IterableSpanFormatter extends core.Object {
+  accept(object, config) {
+    return _debugger.IterableSpan.is(object);
+  }
+  preview(object) {
+    return dart.str`[${dart.dload(object, 'start')}...${dart.dsend(dart.dload(object, 'end'), '-', 1)}]`;
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    return ListOfNameValuePair()._check(dart.dsend(object, 'children'));
+  }
+};
+_debugger.IterableSpanFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.IterableSpanFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.StackTraceFormatter = class StackTraceFormatter extends core.Object {
+  accept(object, config) {
+    return core.StackTrace.is(object);
+  }
+  preview(object) {
+    return 'StackTrace';
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    return dart.toString(object)[dartx.split]('\n')[dartx.map](_debugger.NameValuePair)(dart.fn(line => new _debugger.NameValuePair({value: line[dartx.replaceFirst](core.RegExp.new('^\\s+at\\s'), ''), hideName: true}), StringToNameValuePair()))[dartx.toList]();
+  }
+};
+_debugger.StackTraceFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.StackTraceFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.ClassFormatter = class ClassFormatter extends core.Object {
+  accept(object, config) {
+    return core.Type.is(object) || dart.equals(config, _debugger.JsonMLConfig.asClass);
+  }
+  preview(object) {
+    let typeName = _debugger.safeGetProperty(object, 'genericTypeName');
+    if (typeName != null) return core.String._check(typeName);
+    let type = _debugger._getType(object);
+    let implements$ = dart.getImplements(type);
+    typeName = _debugger.getTypeName(core.Type._check(type));
+    if (implements$ != null) {
+      let typeNames = dart.dsend(dart.dcall(implements$), 'map', _debugger.getTypeName);
+      return dart.str`${typeName} implements ${dart.dsend(typeNames, 'join', ", ")}`;
+    } else {
+      return core.String._check(typeName);
+    }
+  }
+  hasChildren(object) {
+    return true;
+  }
+  children(object) {
+    let type = _debugger._getType(object);
+    let children = JSArrayOfNameValuePair().of([]);
+    let typeName = _debugger.getTypeName(core.Type._check(_debugger._getType(object)));
+    let mixins = dart.getMixins(type);
+    if (mixins != null && dart.test(dart.dload(mixins, 'isNotEmpty'))) {
+      children[dartx.add](new _debugger.NameValuePair({name: '[[Mixins]]', value: new _debugger.HeritageClause('mixins', core.List._check(mixins))}));
+    }
+    let hiddenProperties = JSArrayOfString().of(['length', 'name', 'prototype', 'genericTypeName']);
+    for (let name of _debugger.getOwnPropertyNames(object)) {
+      if (dart.test(hiddenProperties[dartx.contains](name))) continue;
+      let value = _debugger.safeGetProperty(object, name);
+      if (value != null && dart.getIsNamedConstructor(value) != null) {
+        value = new _debugger.NamedConstructor(value);
+        name = dart.str`${typeName}.${name}`;
+      }
+      children[dartx.add](new _debugger.NameValuePair({name: name, value: value}));
+    }
+    let hiddenPrototypeProperties = JSArrayOfString().of(['constructor', 'new', '$identityHash']);
+    let prototype = object.prototype;
+    if (prototype != null) {
+      for (let name of _debugger.getOwnPropertyNames(prototype)) {
+        if (dart.test(hiddenPrototypeProperties[dartx.contains](name))) continue;
+        let func = _debugger.safeGetProperty(prototype, name);
+        let constructor = _debugger.safeGetProperty(prototype, 'constructor');
+        let sigObj = dart.getMethodSig(constructor);
+        if (sigObj != null) {
+          let value = _debugger.safeGetProperty(sigObj, name);
+          if (_debugger.getTypeName(core.Type._check(dart.getReifiedType(value))) != 'Null') {
+            dart.tag(func, value);
+            children[dartx.add](new _debugger.NameValuePair({name: name, value: func}));
+          }
+        }
+      }
+    }
+    return children;
+  }
+};
+_debugger.ClassFormatter[dart.implements] = () => [_debugger.Formatter];
+dart.setSignature(_debugger.ClassFormatter, {
+  methods: () => ({
+    accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
+  })
+});
+_debugger.registerDevtoolsFormatter = function() {
+  let formatters = JSArrayOfJsonMLFormatter().of([_debugger._devtoolsFormatter]);
+  dart.global.devtoolsFormatters = formatters;
+};
+dart.fn(_debugger.registerDevtoolsFormatter, VoidTodynamic$());
+_foreign_helper.JS = function(typeDescription, codeTemplate, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
+  if (arg0 === void 0) arg0 = null;
+  if (arg1 === void 0) arg1 = null;
+  if (arg2 === void 0) arg2 = null;
+  if (arg3 === void 0) arg3 = null;
+  if (arg4 === void 0) arg4 = null;
+  if (arg5 === void 0) arg5 = null;
+  if (arg6 === void 0) arg6 = null;
+  if (arg7 === void 0) arg7 = null;
+  if (arg8 === void 0) arg8 = null;
+  if (arg9 === void 0) arg9 = null;
+  if (arg10 === void 0) arg10 = null;
+  if (arg11 === void 0) arg11 = null;
+};
+dart.lazyFn(_foreign_helper.JS, () => StringAndString__Todynamic());
+_foreign_helper.JSExportName = class JSExportName extends core.Object {
+  new(name) {
+    this.name = name;
+  }
+};
+dart.setSignature(_foreign_helper.JSExportName, {
+  constructors: () => ({new: dart.definiteFunctionType(_foreign_helper.JSExportName, [core.String])}),
+  fields: () => ({name: core.String})
+});
+_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT = function() {
+};
+dart.lazyFn(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT, () => VoidToIsolateContext());
+_foreign_helper.IsolateContext = class IsolateContext extends core.Object {};
+_foreign_helper.JS_CALL_IN_ISOLATE = function(isolate, func) {
+};
+dart.lazyFn(_foreign_helper.JS_CALL_IN_ISOLATE, () => dynamicAndFunctionTodynamic());
+_foreign_helper.JS_SET_CURRENT_ISOLATE = function(isolate) {
+};
+dart.fn(_foreign_helper.JS_SET_CURRENT_ISOLATE, dynamicTovoid$());
+_foreign_helper.JS_CREATE_ISOLATE = function() {
+};
+dart.fn(_foreign_helper.JS_CREATE_ISOLATE, VoidTodynamic$());
+_foreign_helper.JS_DART_OBJECT_CONSTRUCTOR = function() {
+};
+dart.fn(_foreign_helper.JS_DART_OBJECT_CONSTRUCTOR, VoidTodynamic$());
+_foreign_helper.JS_INTERCEPTOR_CONSTANT = function(type) {
+};
+dart.fn(_foreign_helper.JS_INTERCEPTOR_CONSTANT, TypeTodynamic());
+_foreign_helper.JS_OPERATOR_IS_PREFIX = function() {
+};
+dart.lazyFn(_foreign_helper.JS_OPERATOR_IS_PREFIX, () => VoidToString$());
+_foreign_helper.JS_OPERATOR_AS_PREFIX = function() {
+};
+dart.lazyFn(_foreign_helper.JS_OPERATOR_AS_PREFIX, () => VoidToString$());
+_foreign_helper.JS_OBJECT_CLASS_NAME = function() {
+};
+dart.lazyFn(_foreign_helper.JS_OBJECT_CLASS_NAME, () => VoidToString$());
+_foreign_helper.JS_NULL_CLASS_NAME = function() {
+};
+dart.lazyFn(_foreign_helper.JS_NULL_CLASS_NAME, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_CLASS_NAME = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_CLASS_NAME, () => VoidToString$());
+_foreign_helper.JS_IS_INDEXABLE_FIELD_NAME = function() {
+};
+dart.lazyFn(_foreign_helper.JS_IS_INDEXABLE_FIELD_NAME, () => VoidToString$());
+_foreign_helper.JS_CURRENT_ISOLATE = function() {
+};
+dart.fn(_foreign_helper.JS_CURRENT_ISOLATE, VoidTodynamic$());
+_foreign_helper.JS_SIGNATURE_NAME = function() {
+};
+dart.lazyFn(_foreign_helper.JS_SIGNATURE_NAME, () => VoidToString$());
+_foreign_helper.JS_TYPEDEF_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_TYPEDEF_TAG, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_TYPE_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_TAG, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG, () => VoidToString$());
+_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG = function() {
+};
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG, () => VoidToString$());
+_foreign_helper.JS_GET_NAME = function(name) {
+};
+dart.lazyFn(_foreign_helper.JS_GET_NAME, () => StringToString$());
+_foreign_helper.JS_EMBEDDED_GLOBAL = function(typeDescription, name) {
+};
+dart.lazyFn(_foreign_helper.JS_EMBEDDED_GLOBAL, () => StringAndStringTodynamic());
+_foreign_helper.JS_GET_FLAG = function(name) {
+};
+dart.lazyFn(_foreign_helper.JS_GET_FLAG, () => StringTobool$());
+_foreign_helper.JS_EFFECT = function(code) {
+  dart.dcall(code, null);
+};
+dart.lazyFn(_foreign_helper.JS_EFFECT, () => FunctionTovoid());
+_foreign_helper.JS_CONST = class JS_CONST extends core.Object {
+  new(code) {
+    this.code = code;
+  }
+};
+dart.setSignature(_foreign_helper.JS_CONST, {
+  constructors: () => ({new: dart.definiteFunctionType(_foreign_helper.JS_CONST, [core.String])}),
+  fields: () => ({code: core.String})
+});
+_foreign_helper.JS_STRING_CONCAT = function(a, b) {
+  return a + b;
+};
+dart.lazyFn(_foreign_helper.JS_STRING_CONCAT, () => StringAndStringToString$());
+_foreign_helper._Rest = class _Rest extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_foreign_helper._Rest, {
+  constructors: () => ({new: dart.definiteFunctionType(_foreign_helper._Rest, [])})
+});
+_foreign_helper.rest = dart.const(new _foreign_helper._Rest());
+_foreign_helper.spread = function(args) {
+  dart.throw(new core.StateError('The spread function cannot be called, ' + 'it should be compiled away.'));
+};
+dart.fn(_foreign_helper.spread, dynamicTodynamic$());
+_interceptors.Interceptor = class Interceptor extends core.Object {
+  new() {
+  }
+};
+dart.addTypeTests(_interceptors.Interceptor);
+dart.setSignature(_interceptors.Interceptor, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.Interceptor, [])})
+});
+_interceptors.getInterceptor = function(obj) {
+  return obj;
+};
+dart.fn(_interceptors.getInterceptor, dynamicTodynamic$());
+dart.defineExtensionNames([
+  'toString',
+  'hashCode',
+  'runtimeType'
+]);
+_interceptors.JSBool = class JSBool extends _interceptors.Interceptor {
+  new() {
+    super.new();
+  }
+  [dartx.toString]() {
+    return String(this);
+  }
+  get [dartx.hashCode]() {
+    return this ? 2 * 3 * 23 * 3761 : 269 * 811;
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(core.bool);
+  }
+};
+_interceptors.JSBool[dart.implements] = () => [core.bool];
+dart.setSignature(_interceptors.JSBool, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.JSBool, [])})
+});
+dart.registerExtension(dart.global.Boolean, _interceptors.JSBool);
+_interceptors.JSIndexable$ = dart.generic(E => {
+  class JSIndexable extends core.Object {}
+  dart.addTypeTests(JSIndexable);
+  return JSIndexable;
+});
+_interceptors.JSIndexable = JSIndexable();
+_interceptors.JSObject = class JSObject extends core.Object {};
+_interceptors.JavaScriptObject = class JavaScriptObject extends _interceptors.Interceptor {
+  new() {
+    super.new();
+  }
+  get hashCode() {
+    return 0;
+  }
+  get runtimeType() {
+    return dart.wrapType(_interceptors.JSObject);
+  }
+};
+_interceptors.JavaScriptObject[dart.implements] = () => [_interceptors.JSObject];
+dart.setSignature(_interceptors.JavaScriptObject, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.JavaScriptObject, [])})
+});
+_interceptors.PlainJavaScriptObject = class PlainJavaScriptObject extends _interceptors.JavaScriptObject {
+  new() {
+    super.new();
+  }
+};
+dart.setSignature(_interceptors.PlainJavaScriptObject, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.PlainJavaScriptObject, [])})
+});
+_interceptors.UnknownJavaScriptObject = class UnknownJavaScriptObject extends _interceptors.JavaScriptObject {
+  new() {
+    super.new();
+  }
+  toString() {
+    return String(this);
+  }
+};
+dart.setSignature(_interceptors.UnknownJavaScriptObject, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.UnknownJavaScriptObject, [])})
+});
+_interceptors.findInterceptorConstructorForType = function(type) {
+};
+dart.fn(_interceptors.findInterceptorConstructorForType, TypeTodynamic());
+_interceptors.findConstructorForNativeSubclassType = function(type, name) {
+};
+dart.lazyFn(_interceptors.findConstructorForNativeSubclassType, () => TypeAndStringTodynamic());
+_interceptors.getNativeInterceptor = function(object) {
+};
+dart.fn(_interceptors.getNativeInterceptor, dynamicTodynamic$());
+_interceptors.setDispatchProperty = function(object, value) {
+};
+dart.fn(_interceptors.setDispatchProperty, dynamicAnddynamicTodynamic$());
+const _removeWhere = Symbol('_removeWhere');
+_interceptors.JSArray$ = dart.generic(E => {
+  let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
+  let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
+  let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
+  let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
+  let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let ReversedListIterableOfE = () => (ReversedListIterableOfE = dart.constFn(_internal.ReversedListIterable$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let ArrayIteratorOfE = () => (ArrayIteratorOfE = dart.constFn(_interceptors.ArrayIterator$(E)))();
+  let ListMapViewOfE = () => (ListMapViewOfE = dart.constFn(_internal.ListMapView$(E)))();
+  let JSIndexableOfE = () => (JSIndexableOfE = dart.constFn(_interceptors.JSIndexable$(E)))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
+  dart.defineExtensionNames([
+    'checkMutable',
+    'checkGrowable',
+    'add',
+    'removeAt',
+    'insert',
+    'insertAll',
+    'setAll',
+    'removeLast',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'where',
+    'expand',
+    'addAll',
+    'clear',
+    'forEach',
+    'map',
+    'join',
+    'take',
+    'takeWhile',
+    'skip',
+    'skipWhile',
+    'reduce',
+    'fold',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'elementAt',
+    'sublist',
+    'getRange',
+    'first',
+    'last',
+    'single',
+    'removeRange',
+    'setRange',
+    'fillRange',
+    'replaceRange',
+    'any',
+    'every',
+    'reversed',
+    'sort',
+    'shuffle',
+    'indexOf',
+    'lastIndexOf',
+    'contains',
+    'isEmpty',
+    'isNotEmpty',
+    'toString',
+    'toList',
+    'toSet',
+    'iterator',
+    'hashCode',
+    'length',
+    'length',
+    '_get',
+    '_set',
+    'asMap'
+  ]);
+  class JSArray extends core.Object {
+    new() {
+    }
+    static typed(allocation) {
+      return dart.list(allocation, E);
+    }
+    static of(allocation) {
+      return dart.setType(allocation, JSArray);
+    }
+    static markFixed(allocation) {
+      return JSArrayOfE().typed(_interceptors.JSArray.markFixedList(core.List._check(allocation)));
+    }
+    static markGrowable(allocation) {
+      return JSArrayOfE().typed(allocation);
+    }
+    static markFixedList(list) {
+      list.fixed$length = Array;
+      return list;
+    }
+    static markUnmodifiableList(list) {
+      list.fixed$length = Array;
+      list.immutable$list = Array;
+      return list;
+    }
+    [dartx.checkMutable](reason) {
+      if (this.immutable$list) {
+        dart.throw(new core.UnsupportedError(core.String._check(reason)));
+      }
+    }
+    [dartx.checkGrowable](reason) {
+      if (this.fixed$length) {
+        dart.throw(new core.UnsupportedError(core.String._check(reason)));
+      }
+    }
+    [dartx.add](value) {
+      E._check(value);
+      this[dartx.checkGrowable]('add');
+      this.push(value);
+    }
+    [dartx.removeAt](index) {
+      this[dartx.checkGrowable]('removeAt');
+      if (!(typeof index == 'number')) dart.throw(_js_helper.argumentErrorValue(index));
+      if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this[dartx.length])) {
+        dart.throw(new core.RangeError.value(index));
+      }
+      return this.splice(index, 1)[0];
+    }
+    [dartx.insert](index, value) {
+      E._check(value);
+      this[dartx.checkGrowable]('insert');
+      if (!(typeof index == 'number')) dart.throw(_js_helper.argumentErrorValue(index));
+      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[dartx.length])) {
+        dart.throw(new core.RangeError.value(index));
+      }
+      this.splice(index, 0, value);
+    }
+    [dartx.insertAll](index, iterable) {
+      IterableOfE()._check(iterable);
+      this[dartx.checkGrowable]('insertAll');
+      core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
+      if (!_internal.EfficientLength.is(iterable)) {
+        iterable = iterable[dartx.toList]();
+      }
+      let insertionLength = iterable[dartx.length];
+      this[dartx.length] = dart.notNull(this[dartx.length]) + dart.notNull(insertionLength);
+      let end = dart.notNull(index) + dart.notNull(insertionLength);
+      this[dartx.setRange](end, this[dartx.length], this, index);
+      this[dartx.setRange](index, end, iterable);
+    }
+    [dartx.setAll](index, iterable) {
+      IterableOfE()._check(iterable);
+      this[dartx.checkMutable]('setAll');
+      core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
+      for (let element of iterable) {
+        this[dartx._set]((() => {
+          let x = index;
+          index = dart.notNull(x) + 1;
+          return x;
+        })(), element);
+      }
+    }
+    [dartx.removeLast]() {
+      this[dartx.checkGrowable]('removeLast');
+      if (this[dartx.length] == 0) dart.throw(_js_helper.diagnoseIndexError(this, -1));
+      return this.pop();
+    }
+    [dartx.remove](element) {
+      this[dartx.checkGrowable]('remove');
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        if (dart.equals(this[dartx._get](i), element)) {
+          this.splice(i, 1);
+          return true;
+        }
+      }
+      return false;
+    }
+    [dartx.removeWhere](test) {
+      this[dartx.checkGrowable]('removeWhere');
+      this[_removeWhere](test, true);
+    }
+    [dartx.retainWhere](test) {
+      this[dartx.checkGrowable]('retainWhere');
+      this[_removeWhere](test, false);
+    }
+    [_removeWhere](test, removeMatching) {
+      let retained = [];
+      let end = this[dartx.length];
+      for (let i = 0; i < dart.notNull(end); i++) {
+        let element = this[i];
+        if (!dart.test(test(E._check(element))) == removeMatching) {
+          retained[dartx.add](element);
+        }
+        if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
+      }
+      if (retained[dartx.length] == end) return;
+      this[dartx.length] = retained[dartx.length];
+      for (let i = 0; i < dart.notNull(retained[dartx.length]); i++) {
+        this[dartx._set](i, E._check(retained[dartx._get](i)));
+      }
+    }
+    [dartx.where](f) {
+      return new (WhereIterableOfE())(this, f);
+    }
+    [dartx.expand](T) {
+      return f => {
+        return new (_internal.ExpandIterable$(E, T))(this, f);
+      };
+    }
+    [dartx.addAll](collection) {
+      IterableOfE()._check(collection);
+      let i = this[dartx.length];
+      this[dartx.checkGrowable]('addAll');
+      for (let e of collection) {
+        dart.assert(i == this[dartx.length] || dart.test(dart.throw(new core.ConcurrentModificationError(this))));
+        i = dart.notNull(i) + 1;
+        this.push(e);
+      }
+    }
+    [dartx.clear]() {
+      this[dartx.length] = 0;
+    }
+    [dartx.forEach](f) {
+      let end = this[dartx.length];
+      for (let i = 0; i < dart.notNull(end); i++) {
+        let element = this[i];
+        f(element);
+        if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
+      }
+    }
+    [dartx.map](T) {
+      return f => {
+        return new (_internal.MappedListIterable$(E, T))(this, f);
+      };
+    }
+    [dartx.join](separator) {
+      if (separator === void 0) separator = "";
+      let list = core.List.new(this[dartx.length]);
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        list[dartx._set](i, dart.str`${this[dartx._get](i)}`);
+      }
+      return list.join(separator);
+    }
+    [dartx.take](n) {
+      return new (SubListIterableOfE())(this, 0, n);
+    }
+    [dartx.takeWhile](test) {
+      return new (TakeWhileIterableOfE())(this, test);
+    }
+    [dartx.skip](n) {
+      return new (SubListIterableOfE())(this, n, null);
+    }
+    [dartx.skipWhile](test) {
+      return new (SkipWhileIterableOfE())(this, test);
+    }
+    [dartx.reduce](combine) {
+      EAndEToE()._check(combine);
+      let length = this[dartx.length];
+      if (length == 0) dart.throw(_internal.IterableElementError.noElement());
+      let value = this[dartx._get](0);
+      for (let i = 1; i < dart.notNull(length); i++) {
+        let element = this[i];
+        value = combine(value, element);
+        if (length != this[dartx.length]) dart.throw(new core.ConcurrentModificationError(this));
+      }
+      return value;
+    }
+    [dartx.fold](T) {
+      return (initialValue, combine) => {
+        let value = initialValue;
+        let length = this[dartx.length];
+        for (let i = 0; i < dart.notNull(length); i++) {
+          let element = this[i];
+          value = combine(value, element);
+          if (this[dartx.length] != length) dart.throw(new core.ConcurrentModificationError(this));
+        }
+        return value;
+      };
+    }
+    [dartx.firstWhere](test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let end = this[dartx.length];
+      for (let i = 0; i < dart.notNull(end); ++i) {
+        let element = this[i];
+        if (dart.test(test(element))) return element;
+        if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    [dartx.lastWhere](test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let length = this[dartx.length];
+      for (let i = dart.notNull(length) - 1; i >= 0; i--) {
+        let element = this[i];
+        if (dart.test(test(element))) return element;
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    [dartx.singleWhere](test) {
+      let length = this[dartx.length];
+      let match = null;
+      let matchFound = false;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        let element = this[i];
+        if (dart.test(test(E._check(element)))) {
+          if (matchFound) {
+            dart.throw(_internal.IterableElementError.tooMany());
+          }
+          matchFound = true;
+          match = E._check(element);
+        }
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (matchFound) return match;
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    [dartx.elementAt](index) {
+      return this[dartx._get](index);
+    }
+    [dartx.sublist](start, end) {
+      if (end === void 0) end = null;
+      _js_helper.checkNull(start);
+      if (!(typeof start == 'number')) dart.throw(_js_helper.argumentErrorValue(start));
+      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dartx.length])) {
+        dart.throw(new core.RangeError.range(start, 0, this[dartx.length], "start"));
+      }
+      if (end == null) {
+        end = this[dartx.length];
+      } else {
+        if (!(typeof end == 'number')) dart.throw(_js_helper.argumentErrorValue(end));
+        if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(this[dartx.length])) {
+          dart.throw(new core.RangeError.range(end, start, this[dartx.length], "end"));
+        }
+      }
+      if (start == end) return JSArrayOfE().of([]);
+      return JSArrayOfE().typed(this.slice(start, end));
+    }
+    [dartx.getRange](start, end) {
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      return new (SubListIterableOfE())(this, start, end);
+    }
+    get [dartx.first]() {
+      if (dart.notNull(this[dartx.length]) > 0) return this[dartx._get](0);
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    get [dartx.last]() {
+      if (dart.notNull(this[dartx.length]) > 0) return this[dartx._get](dart.notNull(this[dartx.length]) - 1);
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    get [dartx.single]() {
+      if (this[dartx.length] == 1) return this[dartx._get](0);
+      if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
+      dart.throw(_internal.IterableElementError.tooMany());
+    }
+    [dartx.removeRange](start, end) {
+      this[dartx.checkGrowable]('removeRange');
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      let deleteCount = dart.notNull(end) - dart.notNull(start);
+      this.splice(start, deleteCount);
+    }
+    [dartx.setRange](start, end, iterable, skipCount) {
+      IterableOfE()._check(iterable);
+      if (skipCount === void 0) skipCount = 0;
+      this[dartx.checkMutable]('set range');
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      let length = dart.notNull(end) - dart.notNull(start);
+      if (length == 0) return;
+      core.RangeError.checkNotNegative(skipCount, "skipCount");
+      let otherList = null;
+      let otherStart = null;
+      if (core.List.is(iterable)) {
+        otherList = ListOfE()._check(iterable);
+        otherStart = skipCount;
+      } else {
+        otherList = iterable[dartx.skip](skipCount)[dartx.toList]({growable: false});
+        otherStart = 0;
+      }
+      if (dart.notNull(otherStart) + length > dart.notNull(otherList[dartx.length])) {
+        dart.throw(_internal.IterableElementError.tooFew());
+      }
+      if (dart.notNull(otherStart) < dart.notNull(start)) {
+        for (let i = length - 1; i >= 0; i--) {
+          let element = otherList[dartx._get](dart.notNull(otherStart) + i);
+          this[dart.notNull(start) + i] = element;
+        }
+      } else {
+        for (let i = 0; i < length; i++) {
+          let element = otherList[dartx._get](dart.notNull(otherStart) + i);
+          this[dart.notNull(start) + i] = element;
+        }
+      }
+    }
+    [dartx.fillRange](start, end, fillValue) {
+      if (fillValue === void 0) fillValue = null;
+      E._check(fillValue);
+      this[dartx.checkMutable]('fill range');
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+        this[i] = fillValue;
+      }
+    }
+    [dartx.replaceRange](start, end, replacement) {
+      IterableOfE()._check(replacement);
+      this[dartx.checkGrowable]('replace range');
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      if (!_internal.EfficientLength.is(replacement)) {
+        replacement = replacement[dartx.toList]();
+      }
+      let removeLength = dart.notNull(end) - dart.notNull(start);
+      let insertLength = replacement[dartx.length];
+      if (removeLength >= dart.notNull(insertLength)) {
+        let delta = removeLength - dart.notNull(insertLength);
+        let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
+        let newLength = dart.notNull(this[dartx.length]) - delta;
+        this[dartx.setRange](start, insertEnd, replacement);
+        if (delta != 0) {
+          this[dartx.setRange](insertEnd, newLength, this, end);
+          this[dartx.length] = newLength;
+        }
+      } else {
+        let delta = dart.notNull(insertLength) - removeLength;
+        let newLength = dart.notNull(this[dartx.length]) + delta;
+        let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
+        this[dartx.length] = newLength;
+        this[dartx.setRange](insertEnd, newLength, this, end);
+        this[dartx.setRange](start, insertEnd, replacement);
+      }
+    }
+    [dartx.any](test) {
+      let end = this[dartx.length];
+      for (let i = 0; i < dart.notNull(end); i++) {
+        let element = this[i];
+        if (dart.test(test(element))) return true;
+        if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
+      }
+      return false;
+    }
+    [dartx.every](test) {
+      let end = this[dartx.length];
+      for (let i = 0; i < dart.notNull(end); i++) {
+        let element = this[i];
+        if (!dart.test(test(element))) return false;
+        if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
+      }
+      return true;
+    }
+    get [dartx.reversed]() {
+      return new (ReversedListIterableOfE())(this);
+    }
+    [dartx.sort](compare) {
+      if (compare === void 0) compare = null;
+      this[dartx.checkMutable]('sort');
+      if (compare == null) {
+        _internal.Sort.sort(E)(this, dart.fn((a, b) => core.Comparable.compare(core.Comparable._check(a), core.Comparable._check(b)), dynamicAnddynamicToint()));
+      } else {
+        _internal.Sort.sort(E)(this, compare);
+      }
+    }
+    [dartx.shuffle](random) {
+      if (random === void 0) random = null;
+      this[dartx.checkMutable]('shuffle');
+      if (random == null) random = math.Random.new();
+      let length = this[dartx.length];
+      while (dart.notNull(length) > 1) {
+        let pos = random.nextInt(length);
+        length = dart.notNull(length) - 1;
+        let tmp = this[dartx._get](length);
+        this[dartx._set](length, this[dartx._get](pos));
+        this[dartx._set](pos, tmp);
+      }
+    }
+    [dartx.indexOf](element, start) {
+      if (start === void 0) start = 0;
+      if (dart.notNull(start) >= dart.notNull(this[dartx.length])) {
+        return -1;
+      }
+      if (dart.notNull(start) < 0) {
+        start = 0;
+      }
+      for (let i = start; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
+        if (dart.equals(this[dartx._get](i), element)) {
+          return i;
+        }
+      }
+      return -1;
+    }
+    [dartx.lastIndexOf](element, startIndex) {
+      if (startIndex === void 0) startIndex = null;
+      if (startIndex == null) {
+        startIndex = dart.notNull(this[dartx.length]) - 1;
+      } else {
+        if (dart.notNull(startIndex) < 0) {
+          return -1;
+        }
+        if (dart.notNull(startIndex) >= dart.notNull(this[dartx.length])) {
+          startIndex = dart.notNull(this[dartx.length]) - 1;
+        }
+      }
+      for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
+        if (dart.equals(this[dartx._get](i), element)) {
+          return i;
+        }
+      }
+      return -1;
+    }
+    [dartx.contains](other) {
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        if (dart.equals(this[dartx._get](i), other)) return true;
+      }
+      return false;
+    }
+    get [dartx.isEmpty]() {
+      return this[dartx.length] == 0;
+    }
+    get [dartx.isNotEmpty]() {
+      return !dart.test(this[dartx.isEmpty]);
+    }
+    [dartx.toString]() {
+      return collection.ListBase.listToString(this);
+    }
+    [dartx.toList](opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let list = this.slice();
+      if (!dart.test(growable)) _interceptors.JSArray.markFixedList(core.List._check(list));
+      return JSArrayOfE().typed(list);
+    }
+    [dartx.toSet]() {
+      return SetOfE().from(this);
+    }
+    get [dartx.iterator]() {
+      return new (ArrayIteratorOfE())(this);
+    }
+    get [dartx.hashCode]() {
+      return _js_helper.Primitives.objectHashCode(this);
+    }
+    get [dartx.length]() {
+      return this.length;
+    }
+    set [dartx.length](newLength) {
+      this[dartx.checkGrowable]('set length');
+      if (!(typeof newLength == 'number')) {
+        dart.throw(new core.ArgumentError.value(newLength, 'newLength'));
+      }
+      if (dart.notNull(newLength) < 0) {
+        dart.throw(new core.RangeError.range(newLength, 0, null, 'newLength'));
+      }
+      this.length = newLength;
+    }
+    [dartx._get](index) {
+      if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
+      if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+      return this[index];
+    }
+    [dartx._set](index, value) {
+      E._check(value);
+      this[dartx.checkMutable]('indexed set');
+      if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
+      if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+      this[index] = value;
+      return value;
+    }
+    [dartx.asMap]() {
+      return new (ListMapViewOfE())(this);
+    }
+  }
+  dart.setExtensionBaseClass(JSArray, dart.global.Array);
+  dart.addTypeTests(JSArray);
+  JSArray[dart.implements] = () => [ListOfE(), JSIndexableOfE()];
+  dart.setSignature(JSArray, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(_interceptors.JSArray$(E), []),
+      typed: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic]),
+      of: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic]),
+      markFixed: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic]),
+      markGrowable: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic])
+    }),
+    getters: () => ({
+      [dartx.first]: dart.definiteFunctionType(E, []),
+      [dartx.last]: dart.definiteFunctionType(E, []),
+      [dartx.single]: dart.definiteFunctionType(E, []),
+      [dartx.reversed]: dart.definiteFunctionType(core.Iterable$(E), []),
+      [dartx.isEmpty]: dart.definiteFunctionType(core.bool, []),
+      [dartx.isNotEmpty]: dart.definiteFunctionType(core.bool, []),
+      [dartx.iterator]: dart.definiteFunctionType(core.Iterator$(E), []),
+      [dartx.length]: dart.definiteFunctionType(core.int, [])
+    }),
+    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+    methods: () => ({
+      [dartx.checkMutable]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+      [dartx.checkGrowable]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+      [dartx.add]: dart.definiteFunctionType(dart.void, [E]),
+      [dartx.removeAt]: dart.definiteFunctionType(E, [core.int]),
+      [dartx.insert]: dart.definiteFunctionType(dart.void, [core.int, E]),
+      [dartx.insertAll]: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      [dartx.setAll]: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      [dartx.removeLast]: dart.definiteFunctionType(E, []),
+      [dartx.remove]: dart.definiteFunctionType(core.bool, [core.Object]),
+      [dartx.removeWhere]: dart.definiteFunctionType(dart.void, [ETobool()]),
+      [dartx.retainWhere]: dart.definiteFunctionType(dart.void, [ETobool()]),
+      [_removeWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
+      [dartx.where]: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      [dartx.expand]: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
+      [dartx.addAll]: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      [dartx.clear]: dart.definiteFunctionType(dart.void, []),
+      [dartx.forEach]: dart.definiteFunctionType(dart.void, [ETovoid()]),
+      [dartx.map]: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
+      [dartx.join]: dart.definiteFunctionType(core.String, [], [core.String]),
+      [dartx.take]: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      [dartx.takeWhile]: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      [dartx.skip]: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      [dartx.skipWhile]: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      [dartx.reduce]: dart.definiteFunctionType(E, [EAndEToE()]),
+      [dartx.fold]: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
+      [dartx.firstWhere]: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      [dartx.lastWhere]: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      [dartx.singleWhere]: dart.definiteFunctionType(E, [ETobool()]),
+      [dartx.elementAt]: dart.definiteFunctionType(E, [core.int]),
+      [dartx.sublist]: dart.definiteFunctionType(core.List$(E), [core.int], [core.int]),
+      [dartx.getRange]: dart.definiteFunctionType(core.Iterable$(E), [core.int, core.int]),
+      [dartx.removeRange]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+      [dartx.setRange]: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
+      [dartx.fillRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [E]),
+      [dartx.replaceRange]: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
+      [dartx.any]: dart.definiteFunctionType(core.bool, [ETobool()]),
+      [dartx.every]: dart.definiteFunctionType(core.bool, [ETobool()]),
+      [dartx.sort]: dart.definiteFunctionType(dart.void, [], [EAndEToint()]),
+      [dartx.shuffle]: dart.definiteFunctionType(dart.void, [], [math.Random]),
+      [dartx.indexOf]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+      [dartx.lastIndexOf]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+      [dartx.contains]: dart.definiteFunctionType(core.bool, [core.Object]),
+      [dartx.toList]: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
+      [dartx.toSet]: dart.definiteFunctionType(core.Set$(E), []),
+      [dartx._get]: dart.definiteFunctionType(E, [core.int]),
+      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, E]),
+      [dartx.asMap]: dart.definiteFunctionType(core.Map$(core.int, E), [])
+    }),
+    statics: () => ({
+      markFixedList: dart.definiteFunctionType(core.List, [core.List]),
+      markUnmodifiableList: dart.definiteFunctionType(core.List, [core.List])
+    }),
+    names: ['markFixedList', 'markUnmodifiableList']
+  });
+  return JSArray;
+});
+_interceptors.JSArray = JSArray();
+dart.registerExtension(dart.global.Array, _interceptors.JSArray);
+_interceptors.JSMutableArray$ = dart.generic(E => {
+  class JSMutableArray extends _interceptors.JSArray$(E) {
+    new() {
+      super.new();
+    }
+  }
+  return JSMutableArray;
+});
+_interceptors.JSMutableArray = JSMutableArray();
+_interceptors.JSFixedArray$ = dart.generic(E => {
+  class JSFixedArray extends _interceptors.JSMutableArray$(E) {
+    new() {
+      super.new();
+    }
+  }
+  return JSFixedArray;
+});
+_interceptors.JSFixedArray = JSFixedArray();
+_interceptors.JSExtendableArray$ = dart.generic(E => {
+  class JSExtendableArray extends _interceptors.JSMutableArray$(E) {
+    new() {
+      super.new();
+    }
+  }
+  return JSExtendableArray;
+});
+_interceptors.JSExtendableArray = JSExtendableArray();
+_interceptors.JSUnmodifiableArray$ = dart.generic(E => {
+  class JSUnmodifiableArray extends _interceptors.JSArray$(E) {
+    new() {
+      super.new();
+    }
+  }
+  return JSUnmodifiableArray;
+});
+_interceptors.JSUnmodifiableArray = JSUnmodifiableArray();
+const _iterable = Symbol('_iterable');
+const _length = Symbol('_length');
+const _index = Symbol('_index');
+const _current = Symbol('_current');
+_interceptors.ArrayIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
+  class ArrayIterator extends core.Object {
+    new(iterable) {
+      this[_iterable] = iterable;
+      this[_length] = iterable[dartx.length];
+      this[_index] = 0;
+      this[_current] = null;
+    }
+    get current() {
+      return this[_current];
+    }
+    moveNext() {
+      let length = this[_iterable][dartx.length];
+      if (this[_length] != length) {
+        dart.throw(_js_helper.throwConcurrentModificationError(this[_iterable]));
+      }
+      if (dart.notNull(this[_index]) >= dart.notNull(length)) {
+        this[_current] = null;
+        return false;
+      }
+      this[_current] = this[_iterable][dartx._get](this[_index]);
+      this[_index] = dart.notNull(this[_index]) + 1;
+      return true;
+    }
+  }
+  dart.addTypeTests(ArrayIterator);
+  ArrayIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(ArrayIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_interceptors.ArrayIterator$(E), [JSArrayOfE()])}),
+    fields: () => ({
+      [_iterable]: JSArrayOfE(),
+      [_length]: core.int,
+      [_index]: core.int,
+      [_current]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return ArrayIterator;
+});
+_interceptors.ArrayIterator = ArrayIterator();
+const _isInt32 = Symbol('_isInt32');
+const _tdivSlow = Symbol('_tdivSlow');
+const _shlPositive = Symbol('_shlPositive');
+const _shrOtherPositive = Symbol('_shrOtherPositive');
+const _shrBothPositive = Symbol('_shrBothPositive');
+dart.defineExtensionNames([
+  'compareTo',
+  'isNegative',
+  'isNaN',
+  'isInfinite',
+  'isFinite',
+  'remainder',
+  'abs',
+  'sign',
+  'toInt',
+  'truncate',
+  'ceil',
+  'floor',
+  'round',
+  'ceilToDouble',
+  'floorToDouble',
+  'roundToDouble',
+  'truncateToDouble',
+  'clamp',
+  'toDouble',
+  'toStringAsFixed',
+  'toStringAsExponential',
+  'toStringAsPrecision',
+  'toRadixString',
+  'toString',
+  'hashCode',
+  '_negate',
+  '+',
+  '-',
+  '/',
+  '*',
+  '%',
+  '~/',
+  '<<',
+  '>>',
+  '&',
+  '|',
+  '^',
+  '<',
+  '>',
+  '<=',
+  '>=',
+  'isEven',
+  'isOdd',
+  'toUnsigned',
+  'toSigned',
+  'bitLength',
+  'modPow',
+  'modInverse',
+  'gcd',
+  '~'
+]);
+_interceptors.JSNumber = class JSNumber extends _interceptors.Interceptor {
+  new() {
+    super.new();
+  }
+  [dartx.compareTo](b) {
+    if (this < dart.notNull(b)) {
+      return -1;
+    } else if (this > dart.notNull(b)) {
+      return 1;
+    } else if (this == b) {
+      if (this == 0) {
+        let bIsNegative = b[dartx.isNegative];
+        if (this[dartx.isNegative] == bIsNegative) return 0;
+        if (dart.test(this[dartx.isNegative])) return -1;
+        return 1;
+      }
+      return 0;
+    } else if (dart.test(this[dartx.isNaN])) {
+      if (dart.test(b[dartx.isNaN])) {
+        return 0;
+      }
+      return 1;
+    } else {
+      return -1;
+    }
+  }
+  get [dartx.isNegative]() {
+    return this == 0 ? 1 / this < 0 : this < 0;
+  }
+  get [dartx.isNaN]() {
+    return isNaN(this);
+  }
+  get [dartx.isInfinite]() {
+    return this == 1 / 0 || this == -1 / 0;
+  }
+  get [dartx.isFinite]() {
+    return isFinite(this);
+  }
+  [dartx.remainder](b) {
+    if (!(typeof b == 'number')) dart.throw(_js_helper.argumentErrorValue(b));
+    return this % b;
+  }
+  [dartx.abs]() {
+    return Math.abs(this);
+  }
+  get [dartx.sign]() {
+    return this > 0 ? 1 : this < 0 ? -1 : this;
+  }
+  [dartx.toInt]() {
+    if (this >= _interceptors.JSNumber._MIN_INT32 && this <= _interceptors.JSNumber._MAX_INT32) {
+      return this | 0;
+    }
+    if (isFinite(this)) {
+      return this[dartx.truncateToDouble]() + 0;
+    }
+    dart.throw(new core.UnsupportedError("" + this));
+  }
+  [dartx.truncate]() {
+    return this[dartx.toInt]();
+  }
+  [dartx.ceil]() {
+    return this[dartx.ceilToDouble]()[dartx.toInt]();
+  }
+  [dartx.floor]() {
+    return this[dartx.floorToDouble]()[dartx.toInt]();
+  }
+  [dartx.round]() {
+    if (this > 0) {
+      if (this !== 1 / 0) {
+        return Math.round(this);
+      }
+    } else if (this > -1 / 0) {
+      return 0 - Math.round(0 - this);
+    }
+    dart.throw(new core.UnsupportedError("" + this));
+  }
+  [dartx.ceilToDouble]() {
+    return Math.ceil(this);
+  }
+  [dartx.floorToDouble]() {
+    return Math.floor(this);
+  }
+  [dartx.roundToDouble]() {
+    if (this < 0) {
+      return -Math.round(-this);
+    } else {
+      return Math.round(this);
+    }
+  }
+  [dartx.truncateToDouble]() {
+    return this < 0 ? this[dartx.ceilToDouble]() : this[dartx.floorToDouble]();
+  }
+  [dartx.clamp](lowerLimit, upperLimit) {
+    if (dart.notNull(lowerLimit[dartx.compareTo](upperLimit)) > 0) {
+      dart.throw(_js_helper.argumentErrorValue(lowerLimit));
+    }
+    if (dart.notNull(this[dartx.compareTo](lowerLimit)) < 0) return lowerLimit;
+    if (dart.notNull(this[dartx.compareTo](upperLimit)) > 0) return upperLimit;
+    return this;
+  }
+  [dartx.toDouble]() {
+    return this;
+  }
+  [dartx.toStringAsFixed](fractionDigits) {
+    _js_helper.checkInt(fractionDigits);
+    if (dart.notNull(fractionDigits) < 0 || dart.notNull(fractionDigits) > 20) {
+      dart.throw(new core.RangeError.range(fractionDigits, 0, 20, "fractionDigits"));
+    }
+    let result = this.toFixed(fractionDigits);
+    if (this == 0 && dart.test(this[dartx.isNegative])) return dart.str`-${result}`;
+    return result;
+  }
+  [dartx.toStringAsExponential](fractionDigits) {
+    if (fractionDigits === void 0) fractionDigits = null;
+    let result = null;
+    if (fractionDigits != null) {
+      _js_helper.checkInt(fractionDigits);
+      if (dart.notNull(fractionDigits) < 0 || dart.notNull(fractionDigits) > 20) {
+        dart.throw(new core.RangeError.range(fractionDigits, 0, 20, "fractionDigits"));
+      }
+      result = this.toExponential(fractionDigits);
+    } else {
+      result = this.toExponential();
+    }
+    if (this == 0 && dart.test(this[dartx.isNegative])) return dart.str`-${result}`;
+    return result;
+  }
+  [dartx.toStringAsPrecision](precision) {
+    _js_helper.checkInt(precision);
+    if (dart.notNull(precision) < 1 || dart.notNull(precision) > 21) {
+      dart.throw(new core.RangeError.range(precision, 1, 21, "precision"));
+    }
+    let result = this.toPrecision(precision);
+    if (this == 0 && dart.test(this[dartx.isNegative])) return dart.str`-${result}`;
+    return result;
+  }
+  [dartx.toRadixString](radix) {
+    _js_helper.checkInt(radix);
+    if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
+      dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
+    }
+    let result = this.toString(radix);
+    let rightParenCode = 41;
+    if (result[dartx.codeUnitAt](dart.notNull(result[dartx.length]) - 1) != rightParenCode) {
+      return result;
+    }
+    return _interceptors.JSNumber._handleIEtoString(result);
+  }
+  static _handleIEtoString(result) {
+    let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
+    if (match == null) {
+      dart.throw(new core.UnsupportedError(dart.str`Unexpected toString result: ${result}`));
+    }
+    result = dart.dindex(match, 1);
+    let exponent = +dart.dindex(match, 3);
+    if (dart.dindex(match, 2) != null) {
+      result = result + dart.dindex(match, 2);
+      exponent = exponent - dart.dindex(match, 2).length;
+    }
+    return dart.notNull(result) + "0"[dartx['*']](exponent);
+  }
+  [dartx.toString]() {
+    if (this == 0 && 1 / this < 0) {
+      return '-0.0';
+    } else {
+      return "" + this;
+    }
+  }
+  get [dartx.hashCode]() {
+    return this & 0x1FFFFFFF;
+  }
+  [dartx._negate]() {
+    return -this;
+  }
+  [dartx['+']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this + other;
+  }
+  [dartx['-']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this - other;
+  }
+  [dartx['/']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this / other;
+  }
+  [dartx['*']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this * other;
+  }
+  [dartx['%']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    let result = this % other;
+    if (result == 0) return 0;
+    if (result > 0) return result;
+    if (other < 0) {
+      return result - other;
+    } else {
+      return result + other;
+    }
+  }
+  [_isInt32](value) {
+    return (value | 0) === value;
+  }
+  [dartx['~/']](other) {
+    if (dart.test(this[_isInt32](this)) && dart.test(this[_isInt32](other)) && 0 != other && -1 != other) {
+      return this / other | 0;
+    } else {
+      return this[_tdivSlow](other);
+    }
+  }
+  [_tdivSlow](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return (this / other)[dartx.toInt]();
+  }
+  [dartx['<<']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    if (other < 0) dart.throw(_js_helper.argumentErrorValue(other));
+    return this[_shlPositive](other);
+  }
+  [_shlPositive](other) {
+    return other > 31 ? 0 : this << other >>> 0;
+  }
+  [dartx['>>']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    if (other < 0) dart.throw(_js_helper.argumentErrorValue(other));
+    return this[_shrOtherPositive](other);
+  }
+  [_shrOtherPositive](other) {
+    return this > 0 ? this[_shrBothPositive](other) : this >> (dart.notNull(other) > 31 ? 31 : other) >>> 0;
+  }
+  [_shrBothPositive](other) {
+    return other > 31 ? 0 : this >>> other;
+  }
+  [dartx['&']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return (this & other) >>> 0;
+  }
+  [dartx['|']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return (this | other) >>> 0;
+  }
+  [dartx['^']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return (this ^ other) >>> 0;
+  }
+  [dartx['<']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this < other;
+  }
+  [dartx['>']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this > other;
+  }
+  [dartx['<=']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this <= other;
+  }
+  [dartx['>=']](other) {
+    if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
+    return this >= other;
+  }
+  get [dartx.isEven]() {
+    return (this & 1) == 0;
+  }
+  get [dartx.isOdd]() {
+    return (this & 1) == 1;
+  }
+  [dartx.toUnsigned](width) {
+    return (this & (1)[dartx['<<']](width) - 1) >>> 0;
+  }
+  [dartx.toSigned](width) {
+    let signMask = (1)[dartx['<<']](dart.notNull(width) - 1);
+    return ((this & signMask - 1) >>> 0) - ((this & signMask) >>> 0);
+  }
+  get [dartx.bitLength]() {
+    let nonneg = this < 0 ? -this - 1 : this;
+    if (nonneg >= 4294967296) {
+      nonneg = (nonneg / 4294967296)[dartx.truncate]();
+      return dart.notNull(_interceptors.JSNumber._bitCount(_interceptors.JSNumber._spread(nonneg))) + 32;
+    }
+    return _interceptors.JSNumber._bitCount(_interceptors.JSNumber._spread(nonneg));
+  }
+  [dartx.modPow](e, m) {
+    if (!(typeof e == 'number')) {
+      dart.throw(new core.ArgumentError.value(e, "exponent", "not an integer"));
+    }
+    if (!(typeof m == 'number')) {
+      dart.throw(new core.ArgumentError.value(m, "modulus", "not an integer"));
+    }
+    if (dart.notNull(e) < 0) dart.throw(new core.RangeError.range(e, 0, null, "exponent"));
+    if (dart.notNull(m) <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
+    if (e == 0) return 1;
+    let b = this;
+    if (dart.notNull(b) < 0 || dart.notNull(b) > dart.notNull(m)) {
+      b = b[dartx['%']](m);
+    }
+    let r = 1;
+    while (dart.notNull(e) > 0) {
+      if (dart.test(e[dartx.isOdd])) {
+        r = (r * dart.notNull(b))[dartx['%']](m);
+      }
+      e = (dart.notNull(e) / 2)[dartx.truncate]();
+      b = (dart.notNull(b) * dart.notNull(b))[dartx['%']](m);
+    }
+    return r;
+  }
+  static _binaryGcd(x, y, inv) {
+    let s = 1;
+    if (!dart.test(inv)) {
+      while (dart.test(x[dartx.isEven]) && dart.test(y[dartx.isEven])) {
+        x = (dart.notNull(x) / 2)[dartx.truncate]();
+        y = (dart.notNull(y) / 2)[dartx.truncate]();
+        s = s * 2;
+      }
+      if (dart.test(y[dartx.isOdd])) {
+        let t = x;
+        x = y;
+        y = t;
+      }
+    }
+    let ac = x[dartx.isEven];
+    let u = x;
+    let v = y;
+    let a = 1, b = 0, c = 0, d = 1;
+    do {
+      while (dart.test(u[dartx.isEven])) {
+        u = (dart.notNull(u) / 2)[dartx.truncate]();
+        if (dart.test(ac)) {
+          if (!dart.test(a[dartx.isEven]) || !dart.test(b[dartx.isEven])) {
+            a = dart.notNull(a) + dart.notNull(y);
+            b = dart.notNull(b) - dart.notNull(x);
+          }
+          a = (dart.notNull(a) / 2)[dartx.truncate]();
+        } else if (!dart.test(b[dartx.isEven])) {
+          b = dart.notNull(b) - dart.notNull(x);
+        }
+        b = (dart.notNull(b) / 2)[dartx.truncate]();
+      }
+      while (dart.test(v[dartx.isEven])) {
+        v = (dart.notNull(v) / 2)[dartx.truncate]();
+        if (dart.test(ac)) {
+          if (!dart.test(c[dartx.isEven]) || !dart.test(d[dartx.isEven])) {
+            c = dart.notNull(c) + dart.notNull(y);
+            d = dart.notNull(d) - dart.notNull(x);
+          }
+          c = (dart.notNull(c) / 2)[dartx.truncate]();
+        } else if (!dart.test(d[dartx.isEven])) {
+          d = dart.notNull(d) - dart.notNull(x);
+        }
+        d = (dart.notNull(d) / 2)[dartx.truncate]();
+      }
+      if (dart.notNull(u) >= dart.notNull(v)) {
+        u = dart.notNull(u) - dart.notNull(v);
+        if (dart.test(ac)) {
+          a = dart.notNull(a) - dart.notNull(c);
+        }
+        b = dart.notNull(b) - dart.notNull(d);
+      } else {
+        v = dart.notNull(v) - dart.notNull(u);
+        if (dart.test(ac)) {
+          c = dart.notNull(c) - dart.notNull(a);
+        }
+        d = dart.notNull(d) - dart.notNull(b);
+      }
+    } while (u != 0);
+    if (!dart.test(inv)) return s * dart.notNull(v);
+    if (v != 1) dart.throw(core.Exception.new("Not coprime"));
+    if (dart.notNull(d) < 0) {
+      d = dart.notNull(d) + dart.notNull(x);
+      if (dart.notNull(d) < 0) {
+        d = dart.notNull(d) + dart.notNull(x);
+      }
+    } else if (dart.notNull(d) > dart.notNull(x)) {
+      d = dart.notNull(d) - dart.notNull(x);
+      if (dart.notNull(d) > dart.notNull(x)) {
+        d = dart.notNull(d) - dart.notNull(x);
+      }
+    }
+    return d;
+  }
+  [dartx.modInverse](m) {
+    if (!(typeof m == 'number')) {
+      dart.throw(new core.ArgumentError.value(m, "modulus", "not an integer"));
+    }
+    if (dart.notNull(m) <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
+    if (m == 1) return 0;
+    let t = this;
+    if (dart.notNull(t) < 0 || dart.notNull(t) >= dart.notNull(m)) {
+      t = t[dartx['%']](m);
+    }
+    if (t == 1) return 1;
+    if (t == 0 || dart.test(t[dartx.isEven]) && dart.test(m[dartx.isEven])) {
+      dart.throw(core.Exception.new("Not coprime"));
+    }
+    return _interceptors.JSNumber._binaryGcd(m, t, true);
+  }
+  [dartx.gcd](other) {
+    if (!(typeof other == 'number')) {
+      dart.throw(new core.ArgumentError.value(other, "other", "not an integer"));
+    }
+    let x = this[dartx.abs]();
+    let y = other[dartx.abs]();
+    if (x == 0) return y;
+    if (y == 0) return x;
+    if (x == 1 || y == 1) return 1;
+    return _interceptors.JSNumber._binaryGcd(x, y, false);
+  }
+  static _bitCount(i) {
+    i = dart.notNull(_interceptors.JSNumber._shru(i, 0)) - (dart.notNull(_interceptors.JSNumber._shru(i, 1)) & 1431655765);
+    i = (dart.notNull(i) & 858993459) + (dart.notNull(_interceptors.JSNumber._shru(i, 2)) & 858993459);
+    i = 252645135 & dart.notNull(i) + dart.notNull(_interceptors.JSNumber._shru(i, 4));
+    i = dart.notNull(i) + dart.notNull(_interceptors.JSNumber._shru(i, 8));
+    i = dart.notNull(i) + dart.notNull(_interceptors.JSNumber._shru(i, 16));
+    return dart.notNull(i) & 63;
+  }
+  static _shru(value, shift) {
+    return value >>> shift;
+  }
+  static _shrs(value, shift) {
+    return value >> shift;
+  }
+  static _ors(a, b) {
+    return a | b;
+  }
+  static _spread(i) {
+    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 1));
+    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 2));
+    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 4));
+    i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 8));
+    i = _interceptors.JSNumber._shru(_interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 16)), 0);
+    return i;
+  }
+  [dartx['~']]() {
+    return ~this >>> 0;
+  }
+};
+_interceptors.JSNumber[dart.implements] = () => [core.int, core.double];
+dart.setSignature(_interceptors.JSNumber, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.JSNumber, [])}),
+  getters: () => ({
+    [dartx.isNegative]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isNaN]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isInfinite]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isFinite]: dart.definiteFunctionType(core.bool, []),
+    [dartx.sign]: dart.definiteFunctionType(_interceptors.JSNumber, []),
+    [dartx.isEven]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isOdd]: dart.definiteFunctionType(core.bool, []),
+    [dartx.bitLength]: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    [dartx.compareTo]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx.remainder]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
+    [dartx.abs]: dart.definiteFunctionType(_interceptors.JSNumber, []),
+    [dartx.toInt]: dart.definiteFunctionType(core.int, []),
+    [dartx.truncate]: dart.definiteFunctionType(core.int, []),
+    [dartx.ceil]: dart.definiteFunctionType(core.int, []),
+    [dartx.floor]: dart.definiteFunctionType(core.int, []),
+    [dartx.round]: dart.definiteFunctionType(core.int, []),
+    [dartx.ceilToDouble]: dart.definiteFunctionType(core.double, []),
+    [dartx.floorToDouble]: dart.definiteFunctionType(core.double, []),
+    [dartx.roundToDouble]: dart.definiteFunctionType(core.double, []),
+    [dartx.truncateToDouble]: dart.definiteFunctionType(core.double, []),
+    [dartx.clamp]: dart.definiteFunctionType(core.num, [core.num, core.num]),
+    [dartx.toDouble]: dart.definiteFunctionType(core.double, []),
+    [dartx.toStringAsFixed]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.toStringAsExponential]: dart.definiteFunctionType(core.String, [], [core.int]),
+    [dartx.toStringAsPrecision]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.toRadixString]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx._negate]: dart.definiteFunctionType(_interceptors.JSNumber, []),
+    [dartx['+']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
+    [dartx['-']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
+    [dartx['/']]: dart.definiteFunctionType(core.double, [core.num]),
+    [dartx['*']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
+    [dartx['%']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
+    [_isInt32]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [dartx['~/']]: dart.definiteFunctionType(core.int, [core.num]),
+    [_tdivSlow]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx['<<']]: dart.definiteFunctionType(core.int, [core.num]),
+    [_shlPositive]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx['>>']]: dart.definiteFunctionType(core.int, [core.num]),
+    [_shrOtherPositive]: dart.definiteFunctionType(core.int, [core.num]),
+    [_shrBothPositive]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx['&']]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx['|']]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx['^']]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx['<']]: dart.definiteFunctionType(core.bool, [core.num]),
+    [dartx['>']]: dart.definiteFunctionType(core.bool, [core.num]),
+    [dartx['<=']]: dart.definiteFunctionType(core.bool, [core.num]),
+    [dartx['>=']]: dart.definiteFunctionType(core.bool, [core.num]),
+    [dartx.toUnsigned]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.toSigned]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.modPow]: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    [dartx.modInverse]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.gcd]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx['~']]: dart.definiteFunctionType(core.int, [])
+  }),
+  sfields: () => ({
+    _MIN_INT32: core.int,
+    _MAX_INT32: core.int
+  }),
+  statics: () => ({
+    _handleIEtoString: dart.definiteFunctionType(core.String, [core.String]),
+    _binaryGcd: dart.definiteFunctionType(core.int, [core.int, core.int, core.bool]),
+    _bitCount: dart.definiteFunctionType(core.int, [core.int]),
+    _shru: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    _shrs: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    _ors: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    _spread: dart.definiteFunctionType(core.int, [core.int])
+  }),
+  names: ['_handleIEtoString', '_binaryGcd', '_bitCount', '_shru', '_shrs', '_ors', '_spread']
+});
+_interceptors.JSNumber._MIN_INT32 = -2147483648;
+_interceptors.JSNumber._MAX_INT32 = 2147483647;
+dart.registerExtension(dart.global.Number, _interceptors.JSNumber);
+const _defaultSplit = Symbol('_defaultSplit');
+let const$;
+dart.defineExtensionNames([
+  'codeUnitAt',
+  'allMatches',
+  'matchAsPrefix',
+  '+',
+  'endsWith',
+  'replaceAll',
+  'replaceAllMapped',
+  'splitMapJoin',
+  'replaceFirst',
+  'replaceFirstMapped',
+  'split',
+  'replaceRange',
+  'startsWith',
+  'substring',
+  'toLowerCase',
+  'toUpperCase',
+  'trim',
+  'trimLeft',
+  'trimRight',
+  '*',
+  'padLeft',
+  'padRight',
+  'codeUnits',
+  'runes',
+  'indexOf',
+  'lastIndexOf',
+  'contains',
+  'isEmpty',
+  'isNotEmpty',
+  'compareTo',
+  'toString',
+  'hashCode',
+  'runtimeType',
+  'length',
+  '_get'
+]);
+_interceptors.JSString = class JSString extends _interceptors.Interceptor {
+  new() {
+    super.new();
+  }
+  [dartx.codeUnitAt](index) {
+    if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
+    if (dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+    if (dart.notNull(index) >= dart.notNull(this[dartx.length])) dart.throw(_js_helper.diagnoseIndexError(this, index));
+    return this.charCodeAt(index);
+  }
+  [dartx.allMatches](string, start) {
+    if (start === void 0) start = 0;
+    _js_helper.checkString(string);
+    _js_helper.checkInt(start);
+    if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(string[dartx.length])) {
+      dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
+    }
+    return _js_helper.allMatchesInStringUnchecked(this, string, start);
+  }
+  [dartx.matchAsPrefix](string, start) {
+    if (start === void 0) start = 0;
+    if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[dartx.length])) {
+      dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
+    }
+    if (dart.notNull(start) + dart.notNull(this[dartx.length]) > dart.notNull(string[dartx.length])) return null;
+    for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+      if (string[dartx.codeUnitAt](dart.notNull(start) + i) != this[dartx.codeUnitAt](i)) {
+        return null;
+      }
+    }
+    return new _js_helper.StringMatch(start, string, this);
+  }
+  [dartx['+']](other) {
+    if (!(typeof other == 'string')) dart.throw(new core.ArgumentError.value(other));
+    return this + other;
+  }
+  [dartx.endsWith](other) {
+    _js_helper.checkString(other);
+    let otherLength = other[dartx.length];
+    if (dart.notNull(otherLength) > dart.notNull(this[dartx.length])) return false;
+    return other == this[dartx.substring](dart.notNull(this[dartx.length]) - dart.notNull(otherLength));
+  }
+  [dartx.replaceAll](from, to) {
+    _js_helper.checkString(to);
+    return _js_helper.stringReplaceAllUnchecked(this, from, to);
+  }
+  [dartx.replaceAllMapped](from, convert) {
+    return this[dartx.splitMapJoin](from, {onMatch: convert});
+  }
+  [dartx.splitMapJoin](from, opts) {
+    let onMatch = opts && 'onMatch' in opts ? opts.onMatch : null;
+    let onNonMatch = opts && 'onNonMatch' in opts ? opts.onNonMatch : null;
+    return _js_helper.stringReplaceAllFuncUnchecked(this, from, onMatch, onNonMatch);
+  }
+  [dartx.replaceFirst](from, to, startIndex) {
+    if (startIndex === void 0) startIndex = 0;
+    _js_helper.checkString(to);
+    _js_helper.checkInt(startIndex);
+    core.RangeError.checkValueInInterval(startIndex, 0, this[dartx.length], "startIndex");
+    return _js_helper.stringReplaceFirstUnchecked(this, from, to, startIndex);
+  }
+  [dartx.replaceFirstMapped](from, replace, startIndex) {
+    if (startIndex === void 0) startIndex = 0;
+    _js_helper.checkNull(replace);
+    _js_helper.checkInt(startIndex);
+    core.RangeError.checkValueInInterval(startIndex, 0, this[dartx.length], "startIndex");
+    return _js_helper.stringReplaceFirstMappedUnchecked(this, from, replace, startIndex);
+  }
+  [dartx.split](pattern) {
+    _js_helper.checkNull(pattern);
+    if (typeof pattern == 'string') {
+      return this.split(pattern);
+    } else if (_js_helper.JSSyntaxRegExp.is(pattern) && _js_helper.regExpCaptureCount(pattern) == 0) {
+      let re = _js_helper.regExpGetNative(pattern);
+      return this.split(re);
+    } else {
+      return this[_defaultSplit](pattern);
+    }
+  }
+  [dartx.replaceRange](start, end, replacement) {
+    _js_helper.checkString(replacement);
+    _js_helper.checkInt(start);
+    end = core.RangeError.checkValidRange(start, end, this[dartx.length]);
+    _js_helper.checkInt(end);
+    return _js_helper.stringReplaceRangeUnchecked(this, start, end, replacement);
+  }
+  [_defaultSplit](pattern) {
+    let result = JSArrayOfString().of([]);
+    let start = 0;
+    let length = 1;
+    for (let match of pattern[dartx.allMatches](this)) {
+      let matchStart = match.start;
+      let matchEnd = match.end;
+      length = dart.notNull(matchEnd) - dart.notNull(matchStart);
+      if (length == 0 && start == matchStart) {
+        continue;
+      }
+      let end = matchStart;
+      result[dartx.add](this[dartx.substring](start, end));
+      start = matchEnd;
+    }
+    if (dart.notNull(start) < dart.notNull(this[dartx.length]) || length > 0) {
+      result[dartx.add](this[dartx.substring](start));
+    }
+    return result;
+  }
+  [dartx.startsWith](pattern, index) {
+    if (index === void 0) index = 0;
+    _js_helper.checkInt(index);
+    if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[dartx.length])) {
+      dart.throw(new core.RangeError.range(index, 0, this[dartx.length]));
+    }
+    if (typeof pattern == 'string') {
+      let other = pattern;
+      let otherLength = other[dartx.length];
+      let endIndex = dart.notNull(index) + dart.notNull(otherLength);
+      if (endIndex > dart.notNull(this[dartx.length])) return false;
+      return other == this.substring(index, endIndex);
+    }
+    return pattern[dartx.matchAsPrefix](this, index) != null;
+  }
+  [dartx.substring](startIndex, endIndex) {
+    if (endIndex === void 0) endIndex = null;
+    _js_helper.checkInt(startIndex);
+    if (endIndex == null) endIndex = this[dartx.length];
+    _js_helper.checkInt(endIndex);
+    if (dart.notNull(startIndex) < 0) dart.throw(new core.RangeError.value(startIndex));
+    if (dart.notNull(startIndex) > dart.notNull(endIndex)) dart.throw(new core.RangeError.value(startIndex));
+    if (dart.notNull(endIndex) > dart.notNull(this[dartx.length])) dart.throw(new core.RangeError.value(endIndex));
+    return this.substring(startIndex, endIndex);
+  }
+  [dartx.toLowerCase]() {
+    return this.toLowerCase();
+  }
+  [dartx.toUpperCase]() {
+    return this.toUpperCase();
+  }
+  static _isWhitespace(codeUnit) {
+    if (dart.notNull(codeUnit) < 256) {
+      switch (codeUnit) {
+        case 9:
+        case 10:
+        case 11:
+        case 12:
+        case 13:
+        case 32:
+        case 133:
+        case 160:
+        {
+          return true;
+        }
+        default:
+        {
+          return false;
+        }
+      }
+    }
+    switch (codeUnit) {
+      case 5760:
+      case 6158:
+      case 8192:
+      case 8193:
+      case 8194:
+      case 8195:
+      case 8196:
+      case 8197:
+      case 8198:
+      case 8199:
+      case 8200:
+      case 8201:
+      case 8202:
+      case 8232:
+      case 8233:
+      case 8239:
+      case 8287:
+      case 12288:
+      case 65279:
+      {
+        return true;
+      }
+      default:
+      {
+        return false;
+      }
+    }
+  }
+  static _skipLeadingWhitespace(string, index) {
+    let SPACE = 32;
+    let CARRIAGE_RETURN = 13;
+    while (dart.notNull(index) < dart.notNull(string[dartx.length])) {
+      let codeUnit = string[dartx.codeUnitAt](index);
+      if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.test(_interceptors.JSString._isWhitespace(codeUnit))) {
+        break;
+      }
+      index = dart.notNull(index) + 1;
+    }
+    return index;
+  }
+  static _skipTrailingWhitespace(string, index) {
+    let SPACE = 32;
+    let CARRIAGE_RETURN = 13;
+    while (dart.notNull(index) > 0) {
+      let codeUnit = string[dartx.codeUnitAt](dart.notNull(index) - 1);
+      if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.test(_interceptors.JSString._isWhitespace(codeUnit))) {
+        break;
+      }
+      index = dart.notNull(index) - 1;
+    }
+    return index;
+  }
+  [dartx.trim]() {
+    let NEL = 133;
+    let result = this.trim();
+    if (result[dartx.length] == 0) return result;
+    let firstCode = result[dartx.codeUnitAt](0);
+    let startIndex = 0;
+    if (firstCode == NEL) {
+      startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
+      if (startIndex == result[dartx.length]) return "";
+    }
+    let endIndex = result[dartx.length];
+    let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1);
+    if (lastCode == NEL) {
+      endIndex = _interceptors.JSString._skipTrailingWhitespace(result, dart.notNull(endIndex) - 1);
+    }
+    if (startIndex == 0 && endIndex == result[dartx.length]) return result;
+    return result.substring(startIndex, endIndex);
+  }
+  [dartx.trimLeft]() {
+    let NEL = 133;
+    let result = null;
+    let startIndex = 0;
+    if (typeof this.trimLeft != "undefined") {
+      result = this.trimLeft();
+      if (result[dartx.length] == 0) return result;
+      let firstCode = result[dartx.codeUnitAt](0);
+      if (firstCode == NEL) {
+        startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
+      }
+    } else {
+      result = this;
+      startIndex = _interceptors.JSString._skipLeadingWhitespace(this, 0);
+    }
+    if (startIndex == 0) return result;
+    if (startIndex == result[dartx.length]) return "";
+    return result.substring(startIndex);
+  }
+  [dartx.trimRight]() {
+    let NEL = 133;
+    let result = null;
+    let endIndex = null;
+    if (typeof this.trimRight != "undefined") {
+      result = this.trimRight();
+      endIndex = result[dartx.length];
+      if (endIndex == 0) return result;
+      let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1);
+      if (lastCode == NEL) {
+        endIndex = _interceptors.JSString._skipTrailingWhitespace(result, dart.notNull(endIndex) - 1);
+      }
+    } else {
+      result = this;
+      endIndex = _interceptors.JSString._skipTrailingWhitespace(this, this[dartx.length]);
+    }
+    if (endIndex == result[dartx.length]) return result;
+    if (endIndex == 0) return "";
+    return result.substring(0, endIndex);
+  }
+  [dartx['*']](times) {
+    if (0 >= dart.notNull(times)) return '';
+    if (times == 1 || this[dartx.length] == 0) return this;
+    if (times != times >>> 0) {
+      dart.throw(const$ || (const$ = dart.const(new core.OutOfMemoryError())));
+    }
+    let result = '';
+    let s = this;
+    while (true) {
+      if ((dart.notNull(times) & 1) == 1) result = s + result;
+      times = times >>> 1;
+      if (times == 0) break;
+      s = s + s;
+    }
+    return result;
+  }
+  [dartx.padLeft](width, padding) {
+    if (padding === void 0) padding = ' ';
+    let delta = dart.notNull(width) - dart.notNull(this[dartx.length]);
+    if (delta <= 0) return this;
+    return padding[dartx['*']](delta) + this;
+  }
+  [dartx.padRight](width, padding) {
+    if (padding === void 0) padding = ' ';
+    let delta = dart.notNull(width) - dart.notNull(this[dartx.length]);
+    if (delta <= 0) return this;
+    return this[dartx['+']](padding[dartx['*']](delta));
+  }
+  get [dartx.codeUnits]() {
+    return new _internal.CodeUnits(this);
+  }
+  get [dartx.runes]() {
+    return new core.Runes(this);
+  }
+  [dartx.indexOf](pattern, start) {
+    if (start === void 0) start = 0;
+    _js_helper.checkNull(pattern);
+    if (!(typeof start == 'number')) dart.throw(_js_helper.argumentErrorValue(start));
+    if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dartx.length])) {
+      dart.throw(new core.RangeError.range(start, 0, this[dartx.length]));
+    }
+    if (typeof pattern == 'string') {
+      return _js_helper.stringIndexOfStringUnchecked(this, pattern, start);
+    }
+    if (_js_helper.JSSyntaxRegExp.is(pattern)) {
+      let re = pattern;
+      let match = _js_helper.firstMatchAfter(re, this, start);
+      return match == null ? -1 : match.start;
+    }
+    for (let i = start; dart.notNull(i) <= dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
+      if (pattern[dartx.matchAsPrefix](this, i) != null) return i;
+    }
+    return -1;
+  }
+  [dartx.lastIndexOf](pattern, start) {
+    if (start === void 0) start = null;
+    _js_helper.checkNull(pattern);
+    if (start == null) {
+      start = this[dartx.length];
+    } else if (!(typeof start == 'number')) {
+      dart.throw(_js_helper.argumentErrorValue(start));
+    } else if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dartx.length])) {
+      dart.throw(new core.RangeError.range(start, 0, this[dartx.length]));
+    }
+    if (typeof pattern == 'string') {
+      let other = pattern;
+      if (dart.notNull(start) + dart.notNull(other[dartx.length]) > dart.notNull(this[dartx.length])) {
+        start = dart.notNull(this[dartx.length]) - dart.notNull(other[dartx.length]);
+      }
+      return core.int._check(_js_helper.stringLastIndexOfUnchecked(this, other, start));
+    }
+    for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
+      if (pattern[dartx.matchAsPrefix](this, i) != null) return i;
+    }
+    return -1;
+  }
+  [dartx.contains](other, startIndex) {
+    if (startIndex === void 0) startIndex = 0;
+    _js_helper.checkNull(other);
+    if (dart.notNull(startIndex) < 0 || dart.notNull(startIndex) > dart.notNull(this[dartx.length])) {
+      dart.throw(new core.RangeError.range(startIndex, 0, this[dartx.length]));
+    }
+    return _js_helper.stringContainsUnchecked(this, other, startIndex);
+  }
+  get [dartx.isEmpty]() {
+    return this[dartx.length] == 0;
+  }
+  get [dartx.isNotEmpty]() {
+    return !dart.test(this[dartx.isEmpty]);
+  }
+  [dartx.compareTo](other) {
+    if (!(typeof other == 'string')) dart.throw(_js_helper.argumentErrorValue(other));
+    return dart.equals(this, other) ? 0 : this < other ? -1 : 1;
+  }
+  [dartx.toString]() {
+    return this;
+  }
+  get [dartx.hashCode]() {
+    let hash = 0;
+    for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+      hash = 536870911 & hash + this.charCodeAt(i);
+      hash = 536870911 & hash + ((524287 & hash) << 10);
+      hash = hash ^ hash >> 6;
+    }
+    hash = 536870911 & hash + ((67108863 & hash) << 3);
+    hash = hash ^ hash >> 11;
+    return 536870911 & hash + ((16383 & hash) << 15);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(core.String);
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
+    if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
+    return this[index];
+  }
+};
+_interceptors.JSString[dart.implements] = () => [core.String, JSIndexableOfString()];
+dart.setSignature(_interceptors.JSString, {
+  constructors: () => ({new: dart.definiteFunctionType(_interceptors.JSString, [])}),
+  getters: () => ({
+    [dartx.codeUnits]: dart.definiteFunctionType(core.List$(core.int), []),
+    [dartx.runes]: dart.definiteFunctionType(core.Runes, []),
+    [dartx.isEmpty]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isNotEmpty]: dart.definiteFunctionType(core.bool, []),
+    [dartx.length]: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    [dartx.codeUnitAt]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.allMatches]: dart.definiteFunctionType(core.Iterable$(core.Match), [core.String], [core.int]),
+    [dartx.matchAsPrefix]: dart.definiteFunctionType(core.Match, [core.String], [core.int]),
+    [dartx['+']]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.endsWith]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.replaceAll]: dart.definiteFunctionType(core.String, [core.Pattern, core.String]),
+    [dartx.replaceAllMapped]: dart.definiteFunctionType(core.String, [core.Pattern, MatchToString()]),
+    [dartx.splitMapJoin]: dart.definiteFunctionType(core.String, [core.Pattern], {onMatch: MatchToString(), onNonMatch: StringToString()}),
+    [dartx.replaceFirst]: dart.definiteFunctionType(core.String, [core.Pattern, core.String], [core.int]),
+    [dartx.replaceFirstMapped]: dart.definiteFunctionType(core.String, [core.Pattern, MatchToString()], [core.int]),
+    [dartx.split]: dart.definiteFunctionType(core.List$(core.String), [core.Pattern]),
+    [dartx.replaceRange]: dart.definiteFunctionType(core.String, [core.int, core.int, core.String]),
+    [_defaultSplit]: dart.definiteFunctionType(core.List$(core.String), [core.Pattern]),
+    [dartx.startsWith]: dart.definiteFunctionType(core.bool, [core.Pattern], [core.int]),
+    [dartx.substring]: dart.definiteFunctionType(core.String, [core.int], [core.int]),
+    [dartx.toLowerCase]: dart.definiteFunctionType(core.String, []),
+    [dartx.toUpperCase]: dart.definiteFunctionType(core.String, []),
+    [dartx.trim]: dart.definiteFunctionType(core.String, []),
+    [dartx.trimLeft]: dart.definiteFunctionType(core.String, []),
+    [dartx.trimRight]: dart.definiteFunctionType(core.String, []),
+    [dartx['*']]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.padLeft]: dart.definiteFunctionType(core.String, [core.int], [core.String]),
+    [dartx.padRight]: dart.definiteFunctionType(core.String, [core.int], [core.String]),
+    [dartx.indexOf]: dart.definiteFunctionType(core.int, [core.Pattern], [core.int]),
+    [dartx.lastIndexOf]: dart.definiteFunctionType(core.int, [core.Pattern], [core.int]),
+    [dartx.contains]: dart.definiteFunctionType(core.bool, [core.Pattern], [core.int]),
+    [dartx.compareTo]: dart.definiteFunctionType(core.int, [core.String]),
+    [dartx._get]: dart.definiteFunctionType(core.String, [core.int])
+  }),
+  statics: () => ({
+    _isWhitespace: dart.definiteFunctionType(core.bool, [core.int]),
+    _skipLeadingWhitespace: dart.definiteFunctionType(core.int, [core.String, core.int]),
+    _skipTrailingWhitespace: dart.definiteFunctionType(core.int, [core.String, core.int])
+  }),
+  names: ['_isWhitespace', '_skipLeadingWhitespace', '_skipTrailingWhitespace']
+});
+dart.registerExtension(dart.global.String, _interceptors.JSString);
+core.num = class num extends core.Object {
+  static parse(input, onError) {
+    if (onError === void 0) onError = null;
+    let source = input[dartx.trim]();
+    let result = core.int.parse(source, {onError: core.num._returnIntNull});
+    if (result != null) return result;
+    result = core.double.parse(source, core.num._returnDoubleNull);
+    if (result != null) return result;
+    if (onError == null) dart.throw(new core.FormatException(input));
+    return onError(input);
+  }
+  static _returnIntNull(_) {
+    return null;
+  }
+  static _returnDoubleNull(_) {
+    return null;
+  }
+};
+core.num.is = function is_num(o) {
+  return typeof o == "number";
+};
+core.num.as = function as_num(o) {
+  if (typeof o == "number" || o == null) return o;
+  return dart.as(o, core.num);
+};
+core.num._check = function check_num(o) {
+  if (typeof o == "number" || o == null) return o;
+  return dart.check(o, core.num);
+};
+core.num[dart.implements] = () => [ComparableOfnum()];
+dart.setSignature(core.num, {
+  statics: () => ({
+    parse: dart.definiteFunctionType(core.num, [core.String], [StringTonum()]),
+    _returnIntNull: dart.definiteFunctionType(core.int, [core.String]),
+    _returnDoubleNull: dart.definiteFunctionType(core.double, [core.String])
+  }),
+  names: ['parse', '_returnIntNull', '_returnDoubleNull']
+});
+core.double = class double extends core.num {
+  static parse(source, onError) {
+    if (onError === void 0) onError = null;
+    return _js_helper.Primitives.parseDouble(source, onError);
+  }
+};
+dart.setSignature(core.double, {
+  sfields: () => ({
+    NAN: core.double,
+    INFINITY: core.double,
+    NEGATIVE_INFINITY: core.double,
+    MIN_POSITIVE: core.double,
+    MAX_FINITE: core.double
+  }),
+  statics: () => ({parse: dart.definiteFunctionType(core.double, [core.String], [StringTodouble()])}),
+  names: ['parse']
+});
+core.double.NAN = 0.0 / 0.0;
+core.double.INFINITY = 1.0 / 0.0;
+core.double.MIN_POSITIVE = 5e-324;
+core.double.MAX_FINITE = 1.7976931348623157e+308;
+dart.defineLazy(core.double, {
+  get NEGATIVE_INFINITY() {
+    return -core.double.INFINITY;
+  }
+});
+_internal.POWERS_OF_TEN = dart.constList([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0, 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000000000000000.0, 100000000000000000.0, 1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0, 1e+21, 1e+22], core.double);
+const _string = Symbol('_string');
+const _filter = Symbol('_filter');
+collection.ListMixin$ = dart.generic(E => {
+  let ListIteratorOfE = () => (ListIteratorOfE = dart.constFn(_internal.ListIterator$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
+  let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
+  let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
+  let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
+  let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
+  let ListMapViewOfE = () => (ListMapViewOfE = dart.constFn(_internal.ListMapView$(E)))();
+  let ReversedListIterableOfE = () => (ReversedListIterableOfE = dart.constFn(_internal.ReversedListIterable$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
+  dart.defineExtensionNames([
+    'iterator',
+    'elementAt',
+    'forEach',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'last',
+    'single',
+    'contains',
+    'every',
+    'any',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'join',
+    'where',
+    'map',
+    'expand',
+    'reduce',
+    'fold',
+    'skip',
+    'skipWhile',
+    'take',
+    'takeWhile',
+    'toList',
+    'toSet',
+    'add',
+    'addAll',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'clear',
+    'removeLast',
+    'sort',
+    'shuffle',
+    'asMap',
+    'sublist',
+    'getRange',
+    'removeRange',
+    'fillRange',
+    'setRange',
+    'replaceRange',
+    'indexOf',
+    'lastIndexOf',
+    'insert',
+    'removeAt',
+    'insertAll',
+    'setAll',
+    'reversed',
+    'toString'
+  ]);
+  class ListMixin extends core.Object {
+    get iterator() {
+      return new (ListIteratorOfE())(this);
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this[dartx.iterator]);
+    }
+    elementAt(index) {
+      return this[dartx._get](index);
+    }
+    forEach(action) {
+      let length = this[dartx.length];
+      for (let i = 0; i < dart.notNull(length); i++) {
+        action(this[dartx._get](i));
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+    }
+    get isEmpty() {
+      return this[dartx.length] == 0;
+    }
+    get isNotEmpty() {
+      return !dart.test(this[dartx.isEmpty]);
+    }
+    get first() {
+      if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this[dartx._get](0);
+    }
+    get last() {
+      if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this[dartx._get](dart.notNull(this[dartx.length]) - 1);
+    }
+    get single() {
+      if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
+      if (dart.notNull(this[dartx.length]) > 1) dart.throw(_internal.IterableElementError.tooMany());
+      return this[dartx._get](0);
+    }
+    contains(element) {
+      let length = this[dartx.length];
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        if (dart.equals(this[dartx._get](i), element)) return true;
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return false;
+    }
+    every(test) {
+      let length = this[dartx.length];
+      for (let i = 0; i < dart.notNull(length); i++) {
+        if (!dart.test(test(this[dartx._get](i)))) return false;
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return true;
+    }
+    any(test) {
+      let length = this[dartx.length];
+      for (let i = 0; i < dart.notNull(length); i++) {
+        if (dart.test(test(this[dartx._get](i)))) return true;
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return false;
+    }
+    firstWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let length = this[dartx.length];
+      for (let i = 0; i < dart.notNull(length); i++) {
+        let element = this[dartx._get](i);
+        if (dart.test(test(element))) return element;
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    lastWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let length = this[dartx.length];
+      for (let i = dart.notNull(length) - 1; i >= 0; i--) {
+        let element = this[dartx._get](i);
+        if (dart.test(test(element))) return element;
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    singleWhere(test) {
+      let length = this[dartx.length];
+      let match = null;
+      let matchFound = false;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        let element = this[dartx._get](i);
+        if (dart.test(test(element))) {
+          if (matchFound) {
+            dart.throw(_internal.IterableElementError.tooMany());
+          }
+          matchFound = true;
+          match = element;
+        }
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (matchFound) return match;
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      if (this[dartx.length] == 0) return "";
+      let buffer = new core.StringBuffer();
+      buffer.writeAll(this, separator);
+      return buffer.toString();
+    }
+    where(test) {
+      return new (WhereIterableOfE())(this, test);
+    }
+    map(T) {
+      return f => {
+        return new (_internal.MappedListIterable$(E, T))(this, f);
+      };
+    }
+    expand(T) {
+      return f => {
+        return new (_internal.ExpandIterable$(E, T))(this, f);
+      };
+    }
+    reduce(combine) {
+      EAndEToE()._check(combine);
+      let length = this[dartx.length];
+      if (length == 0) dart.throw(_internal.IterableElementError.noElement());
+      let value = this[dartx._get](0);
+      for (let i = 1; i < dart.notNull(length); i++) {
+        value = combine(value, this[dartx._get](i));
+        if (length != this[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return value;
+    }
+    fold(T) {
+      return (initialValue, combine) => {
+        let value = initialValue;
+        let length = this[dartx.length];
+        for (let i = 0; i < dart.notNull(length); i++) {
+          value = combine(value, this[dartx._get](i));
+          if (length != this[dartx.length]) {
+            dart.throw(new core.ConcurrentModificationError(this));
+          }
+        }
+        return value;
+      };
+    }
+    skip(count) {
+      return new (SubListIterableOfE())(this, count, null);
+    }
+    skipWhile(test) {
+      return new (SkipWhileIterableOfE())(this, test);
+    }
+    take(count) {
+      return new (SubListIterableOfE())(this, 0, count);
+    }
+    takeWhile(test) {
+      return new (TakeWhileIterableOfE())(this, test);
+    }
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let result = null;
+      if (dart.test(growable)) {
+        result = ListOfE().new();
+        result[dartx.length] = this[dartx.length];
+      } else {
+        result = ListOfE().new(this[dartx.length]);
+      }
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        result[dartx._set](i, this[dartx._get](i));
+      }
       return result;
     }
-    new(returnType, args, optionals, named) {
-      this.returnType = returnType;
-      this.args = args;
-      this.optionals = optionals;
-      this.named = named;
-      this.metadata = null;
-      super.new();
-      this.metadata = [];
-      this.args = this[_process](this.args, this.metadata);
-      this.optionals = this[_process](this.optionals, this.metadata);
-    }
-  };
-  dart.setSignature(dart.FunctionType, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.FunctionType, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
-    fields: () => ({
-      returnType: dart.dynamic,
-      args: dart.dynamic,
-      optionals: dart.dynamic,
-      named: dart.dynamic,
-      metadata: dart.dynamic
-    }),
-    methods: () => ({[_process]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])}),
-    statics: () => ({create: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
-    names: ['create']
-  });
-  const _name = Symbol('_name');
-  const _closure = Symbol('_closure');
-  const _functionType = Symbol('_functionType');
-  dart.Typedef = class Typedef extends dart.AbstractFunctionType {
-    new(name, closure) {
-      this[_name] = name;
-      this[_closure] = closure;
-      this[_functionType] = null;
-      super.new();
-    }
-    get name() {
-      return core.String._check(this[_name]);
-    }
-    get functionType() {
-      if (this[_functionType] == null) {
-        this[_functionType] = this[_closure]();
+    toSet() {
+      let result = SetOfE().new();
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        result.add(this[dartx._get](i));
       }
-      return this[_functionType];
+      return result;
     }
-    get returnType() {
-      return this.functionType.returnType;
+    add(element) {
+      E._check(element);
+      this[dartx._set]((() => {
+        let x = this[dartx.length];
+        this[dartx.length] = dart.notNull(x) + 1;
+        return x;
+      })(), element);
     }
-    get args() {
-      return core.List._check(this.functionType.args);
-    }
-    get optionals() {
-      return core.List._check(this.functionType.optionals);
-    }
-    get named() {
-      return this.functionType.named;
-    }
-    get metadata() {
-      return core.List._check(this.functionType.metadata);
-    }
-  };
-  dart.setSignature(dart.Typedef, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.Typedef, [dart.dynamic, dart.dynamic])}),
-    fields: () => ({
-      [_name]: dart.dynamic,
-      [_closure]: dart.dynamic,
-      [_functionType]: dart.AbstractFunctionType
-    }),
-    getters: () => ({
-      functionType: dart.definiteFunctionType(dart.AbstractFunctionType, []),
-      returnType: dart.definiteFunctionType(dart.dynamic, []),
-      args: dart.definiteFunctionType(core.List, []),
-      optionals: dart.definiteFunctionType(core.List, []),
-      named: dart.definiteFunctionType(dart.dynamic, []),
-      metadata: dart.definiteFunctionType(core.List, [])
-    })
-  });
-  dart._typeFormalCount = Symbol("_typeFormalCount");
-  dart.isSubtype = dart._subtypeMemo((t1, t2) => t1 === t2 || dart._isSubtype(t1, t2, true));
-  dart._trapRuntimeErrors = true;
-  dart._jsIterator = Symbol("_jsIterator");
-  dart._current = Symbol("_current");
-  dart._AsyncStarStreamController = class _AsyncStarStreamController {
-    constructor(generator, T, args) {
-      this.isAdding = false;
-      this.isWaiting = false;
-      this.isScheduled = false;
-      this.isSuspendedAtYield = false;
-      this.canceler = null;
-      this.iterator = generator(this, ...args)[Symbol.iterator]();
-      this.controller = dart.getGenericClass(async.StreamController)(T).new({
-        onListen: () => this.scheduleGenerator(),
-        onResume: () => this.onResume(),
-        onCancel: () => this.onCancel()
-      });
-    }
-    onResume() {
-      if (this.isSuspendedAtYield) {
-        this.scheduleGenerator();
+    addAll(iterable) {
+      IterableOfE()._check(iterable);
+      let i = this[dartx.length];
+      for (let element of iterable) {
+        dart.assert(this[dartx.length] == i || dart.test(dart.throw(new core.ConcurrentModificationError(this))));
+        this[dartx.length] = dart.notNull(i) + 1;
+        this[dartx._set](i, element);
+        i = dart.notNull(i) + 1;
       }
     }
-    onCancel() {
-      if (this.controller.isClosed) {
-        return null;
-      }
-      if (this.canceler == null) {
-        this.canceler = async.Completer.new();
-        this.scheduleGenerator();
-      }
-      return this.canceler.future;
-    }
-    close() {
-      if (this.canceler != null && !this.canceler.isCompleted) {
-        this.canceler.complete();
-      }
-      this.controller.close();
-    }
-    scheduleGenerator() {
-      if (this.isScheduled || this.controller.isPaused || this.isAdding || this.isWaiting) {
-        return;
-      }
-      this.isScheduled = true;
-      async.scheduleMicrotask(() => this.runBody());
-    }
-    runBody(opt_awaitValue) {
-      this.isScheduled = false;
-      this.isSuspendedAtYield = false;
-      this.isWaiting = false;
-      let iter;
-      try {
-        iter = this.iterator.next(opt_awaitValue);
-      } catch (e) {
-        this.addError(e, dart.stackTrace(e));
-        this.close();
-        return;
-      }
-
-      if (iter.done) {
-        this.close();
-        return;
-      }
-      if (this.isSuspendedAtYield || this.isAdding) return;
-      this.isWaiting = true;
-      let future = iter.value;
-      if (!dart.is(future, dart.getGenericClass(async.Future))) {
-        future = async.Future.value(future);
-      }
-      return future.then(dart.dynamic)(x => this.runBody(x), {
-        onError: (e, s) => this.throwError(e, s)
-      });
-    }
-    add(event) {
-      if (!this.controller.hasListener) return true;
-      this.controller.add(event);
-      this.scheduleGenerator();
-      this.isSuspendedAtYield = true;
-      return false;
-    }
-    addStream(stream) {
-      if (!this.controller.hasListener) return true;
-      this.isAdding = true;
-      this.controller.addStream(stream, {cancelOnError: false}).then(dart.dynamic)(() => {
-        this.isAdding = false;
-        this.scheduleGenerator();
-      }, {
-        onError: (e, s) => this.throwError(e, s)
-      });
-    }
-    throwError(error, stackTrace) {
-      try {
-        this.iterator.throw(error);
-      } catch (e) {
-        this.addError(e, stackTrace);
-      }
-
-    }
-    addError(error, stackTrace) {
-      if (this.canceler != null && !this.canceler.isCompleted) {
-        this.canceler.completeError(error, stackTrace);
-        return;
-      }
-      if (!this.controller.hasListener) return;
-      this.controller.addError(error, stackTrace);
-    }
-  };
-  core.Invocation = class Invocation extends core.Object {
-    get isAccessor() {
-      return dart.test(this.isGetter) || dart.test(this.isSetter);
-    }
-  };
-  dart.setSignature(core.Invocation, {
-    getters: () => ({isAccessor: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.InvocationImpl = class InvocationImpl extends core.Invocation {
-    new(memberName, positionalArguments, opts) {
-      let namedArguments = opts && 'namedArguments' in opts ? opts.namedArguments : null;
-      let isMethod = opts && 'isMethod' in opts ? opts.isMethod : false;
-      let isGetter = opts && 'isGetter' in opts ? opts.isGetter : false;
-      let isSetter = opts && 'isSetter' in opts ? opts.isSetter : false;
-      this.positionalArguments = positionalArguments;
-      this.isMethod = isMethod;
-      this.isGetter = isGetter;
-      this.isSetter = isSetter;
-      this.memberName = dart._dartSymbol(memberName);
-      this.namedArguments = dart.InvocationImpl._namedArgsToSymbols(namedArguments);
-    }
-    static _namedArgsToSymbols(namedArgs) {
-      if (namedArgs == null) return dart.map({}, core.Symbol, dart.dynamic);
-      return MapOfSymbol$dynamic().fromIterable(dart.getOwnPropertyNames(namedArgs), {key: dart._dartSymbol, value: dart.fn(k => namedArgs[k], dynamicTodynamic$())});
-    }
-  };
-  dart.setSignature(dart.InvocationImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(dart.InvocationImpl, [dart.dynamic, core.List], {namedArguments: dart.dynamic, isMethod: core.bool, isGetter: core.bool, isSetter: core.bool})}),
-    fields: () => ({
-      memberName: core.Symbol,
-      positionalArguments: core.List,
-      namedArguments: MapOfSymbol$dynamic(),
-      isMethod: core.bool,
-      isGetter: core.bool,
-      isSetter: core.bool
-    }),
-    statics: () => ({_namedArgsToSymbols: dart.definiteFunctionType(core.Map$(core.Symbol, dart.dynamic), [dart.dynamic])}),
-    names: ['_namedArgsToSymbols']
-  });
-  dart._MethodStats = class _MethodStats extends core.Object {
-    new(typeName, frame) {
-      this.typeName = typeName;
-      this.frame = frame;
-      this.count = null;
-      this.count = 0;
-    }
-  };
-  dart.setSignature(dart._MethodStats, {
-    constructors: () => ({new: dart.definiteFunctionType(dart._MethodStats, [core.String, core.String])}),
-    fields: () => ({
-      typeName: core.String,
-      frame: core.String,
-      count: core.int
-    })
-  });
-  dart.defineLazy(dart, {
-    get _callMethodStats() {
-      return MapOfString$_MethodStats().new();
-    },
-    set _callMethodStats(_) {}
-  });
-  dart.defineLazy(dart, {
-    get trackProfile() {
-      return dart.global.trackDdcProfile;
-    },
-    set trackProfile(_) {}
-  });
-  dart._ignoreTypeFailure = (() => {
-    return dart._ignoreMemo((actual, type) => {
-      if (!!dart.isSubtype(type, core.Iterable) && !!dart.isSubtype(actual, core.Iterable) || !!dart.isSubtype(type, async.Future) && !!dart.isSubtype(actual, async.Future) || !!dart.isSubtype(type, core.Map) && !!dart.isSubtype(actual, core.Map) || dart.isFunctionType(type) && dart.isFunctionType(actual) || !!dart.isSubtype(type, async.Stream) && !!dart.isSubtype(actual, async.Stream) || !!dart.isSubtype(type, async.StreamSubscription) && !!dart.isSubtype(actual, async.StreamSubscription)) {
-        console.warn('Ignoring cast fail from ' + dart.typeName(actual) + ' to ' + dart.typeName(type));
-        return true;
+    remove(element) {
+      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
+        if (dart.equals(this[dartx._get](i), element)) {
+          this[dartx.setRange](i, dart.notNull(this[dartx.length]) - 1, this, i + 1);
+          this[dartx.length] = dart.notNull(this[dartx.length]) - 1;
+          return true;
+        }
       }
       return false;
-    });
-  })();
-  dart._stack = null;
-  dart._value = Symbol("_value");
-  dart.constants = new Map();
-  dart.constantLists = new Map();
-  dart.JsIterator = class JsIterator {
-    constructor(dartIterator) {
-      this.dartIterator = dartIterator;
     }
-    next() {
-      let i = this.dartIterator;
-      let done = !i.moveNext();
-      return {done: done, value: done ? void 0 : i.current};
+    removeWhere(test) {
+      this[_filter](test, false);
     }
-  };
-  dart.hasOwnProperty = Object.prototype.hasOwnProperty;
-  _debugger.JsonMLConfig = class JsonMLConfig extends core.Object {
-    new(name) {
-      this.name = name;
+    retainWhere(test) {
+      this[_filter](test, true);
     }
-  };
-  dart.setSignature(_debugger.JsonMLConfig, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.JsonMLConfig, [core.String])}),
-    fields: () => ({name: core.String}),
-    sfields: () => ({
-      none: _debugger.JsonMLConfig,
-      skipDart: _debugger.JsonMLConfig,
-      keyToString: _debugger.JsonMLConfig,
-      asClass: _debugger.JsonMLConfig
-    })
-  });
-  dart.defineLazy(_debugger.JsonMLConfig, {
-    get none() {
-      return dart.const(new _debugger.JsonMLConfig("none"));
-    },
-    get skipDart() {
-      return dart.const(new _debugger.JsonMLConfig("skipDart"));
-    },
-    get keyToString() {
-      return dart.const(new _debugger.JsonMLConfig("keyToString"));
-    },
-    get asClass() {
-      return dart.const(new _debugger.JsonMLConfig("asClass"));
-    }
-  });
-  _debugger._maxSpanLength = 100;
-  dart.defineLazy(_debugger, {
-    get _devtoolsFormatter() {
-      return new _debugger.JsonMLFormatter(new _debugger.DartFormatter());
-    },
-    set _devtoolsFormatter(_) {}
-  });
-  _debugger._typeof = function(object) {
-    return typeof object;
-  };
-  dart.lazyFn(_debugger._typeof, () => dynamicToString());
-  _debugger.getOwnPropertyNames = function(object) {
-    return dart.list(Object.getOwnPropertyNames(object), core.String);
-  };
-  dart.lazyFn(_debugger.getOwnPropertyNames, () => dynamicToListOfString());
-  _debugger.getOwnPropertySymbols = function(object) {
-    return Object.getOwnPropertySymbols(object);
-  };
-  dart.lazyFn(_debugger.getOwnPropertySymbols, () => dynamicToList());
-  _debugger.JSNative = class JSNative extends core.Object {
-    static getProperty(object, name) {
-      return object[name];
-    }
-    static setProperty(object, name, value) {
-      return object[name] = value;
-    }
-  };
-  dart.setSignature(_debugger.JSNative, {
-    statics: () => ({
-      getProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      setProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['getProperty', 'setProperty']
-  });
-  _debugger.addMetadataChildren = function(object, ret) {
-    ret.add(new _debugger.NameValuePair({name: _debugger.getTypeName(core.Type._check(_debugger._getType(object))), value: object, config: _debugger.JsonMLConfig.asClass}));
-  };
-  dart.lazyFn(_debugger.addMetadataChildren, () => dynamicAndSetOfNameValuePairTovoid());
-  _debugger.getObjectTypeName = function(object) {
-    let reifiedType = dart.getReifiedType(object);
-    if (reifiedType == null) {
-      if (_debugger._typeof(object) == 'function') {
-        return '[[Raw JavaScript Function]]';
+    [_filter](test, retainMatching) {
+      let source = this;
+      let retained = JSArrayOfE().of([]);
+      let length = source[dartx.length];
+      for (let i = 0; i < dart.notNull(length); i++) {
+        let element = source[dartx._get](i);
+        if (dart.dcall(test, element) == retainMatching) {
+          retained[dartx.add](element);
+        }
+        if (length != source[dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(source));
+        }
       }
-      return '<Error getting type name>';
+      if (retained[dartx.length] != source[dartx.length]) {
+        source[dartx.setRange](0, retained[dartx.length], retained);
+        source[dartx.length] = retained[dartx.length];
+      }
     }
-    return _debugger.getTypeName(core.Type._check(reifiedType));
-  };
-  dart.lazyFn(_debugger.getObjectTypeName, () => dynamicToString());
-  _debugger.getTypeName = function(type) {
-    let name = dart.typeName(type);
-    if (name == 'JSArray<dynamic>' || name == 'JSObject<Array>') return 'List<dynamic>';
-    return name;
-  };
-  dart.lazyFn(_debugger.getTypeName, () => TypeToString());
-  _debugger._getType = function(object) {
-    return core.Type.is(object) ? object : dart.getReifiedType(object);
-  };
-  dart.fn(_debugger._getType, dynamicToObject());
-  const _simpleFormatter = Symbol('_simpleFormatter');
-  _debugger.safePreview = function(object, config) {
-    try {
-      let preview = _debugger._devtoolsFormatter[_simpleFormatter].preview(object, config);
-      if (preview != null) return preview;
-      return dart.toString(object);
-    } catch (e) {
-      return dart.str`<Exception thrown> ${e}`;
+    clear() {
+      this[dartx.length] = 0;
     }
-
-  };
-  dart.lazyFn(_debugger.safePreview, () => dynamicAnddynamicToString());
-  _debugger.symbolName = function(symbol) {
-    let name = dart.toString(symbol);
-    dart.assert(name[dartx.startsWith]('Symbol('));
-    return name[dartx.substring]('Symbol('[dartx.length], dart.notNull(name[dartx.length]) - 1);
-  };
-  dart.lazyFn(_debugger.symbolName, () => dynamicToString());
-  _debugger.hasMethod = function(object, name) {
-    try {
-      return core.bool._check(dart.hasMethod(object, name));
-    } catch (e) {
-      return false;
+    removeLast() {
+      if (this[dartx.length] == 0) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
+      let result = this[dartx._get](dart.notNull(this[dartx.length]) - 1);
+      this[dartx.length] = dart.notNull(this[dartx.length]) - 1;
+      return result;
     }
-
-  };
-  dart.lazyFn(_debugger.hasMethod, () => dynamicAndStringTobool());
-  _debugger.NameValuePair = class NameValuePair extends core.Object {
-    new(opts) {
-      let name = opts && 'name' in opts ? opts.name : null;
-      let value = opts && 'value' in opts ? opts.value : null;
-      let config = opts && 'config' in opts ? opts.config : _debugger.JsonMLConfig.none;
-      let hideName = opts && 'hideName' in opts ? opts.hideName : false;
-      this.name = name;
-      this.value = value;
-      this.config = config;
-      this.hideName = hideName;
+    sort(compare) {
+      if (compare === void 0) compare = null;
+      if (compare == null) {
+        _internal.Sort.sort(E)(this, dart.fn((a, b) => core.Comparable.compare(core.Comparable._check(a), core.Comparable._check(b)), dynamicAnddynamicToint()));
+      } else {
+        _internal.Sort.sort(E)(this, compare);
+      }
     }
-    ['=='](other) {
-      return _debugger.NameValuePair.is(other) && other.name == this.name;
-    }
-    get hashCode() {
-      return dart.hashCode(this.name);
-    }
-    get displayName() {
-      return dart.test(this.hideName) ? '' : this.name;
-    }
-  };
-  dart.setSignature(_debugger.NameValuePair, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.NameValuePair, [], {name: core.String, value: core.Object, config: _debugger.JsonMLConfig, hideName: core.bool})}),
-    fields: () => ({
-      name: core.String,
-      value: core.Object,
-      config: _debugger.JsonMLConfig,
-      hideName: core.bool
-    }),
-    getters: () => ({displayName: dart.definiteFunctionType(core.String, [])})
-  });
-  _debugger.MapEntry = class MapEntry extends core.Object {
-    new(opts) {
-      let key = opts && 'key' in opts ? opts.key : null;
-      let value = opts && 'value' in opts ? opts.value : null;
-      this.key = key;
-      this.value = value;
-    }
-  };
-  dart.setSignature(_debugger.MapEntry, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.MapEntry, [], {key: core.Object, value: core.Object})}),
-    fields: () => ({
-      key: core.Object,
-      value: core.Object
-    })
-  });
-  _debugger.IterableSpan = class IterableSpan extends core.Object {
-    new(start, end, iterable) {
-      this.start = start;
-      this.end = end;
-      this.iterable = iterable;
-    }
-    get length() {
-      return dart.notNull(this.end) - dart.notNull(this.start);
-    }
-    get maxPowerOfSubsetSize() {
-      return (dart.notNull(math.log(dart.notNull(this.length) - 0.5)) / dart.notNull(math.log(_debugger._maxSpanLength)))[dartx.truncate]();
-    }
-    get subsetSize() {
-      return dart.asInt(math.pow(_debugger._maxSpanLength, this.maxPowerOfSubsetSize));
+    shuffle(random) {
+      if (random === void 0) random = null;
+      if (random == null) random = math.Random.new();
+      let length = this[dartx.length];
+      while (dart.notNull(length) > 1) {
+        let pos = random.nextInt(length);
+        length = dart.notNull(length) - 1;
+        let tmp = this[dartx._get](length);
+        this[dartx._set](length, this[dartx._get](pos));
+        this[dartx._set](pos, tmp);
+      }
     }
     asMap() {
-      return this.iterable[dartx.skip](this.start)[dartx.take](this.length)[dartx.toList]()[dartx.asMap]();
+      return new (ListMapViewOfE())(this);
     }
-    children() {
-      let children = JSArrayOfNameValuePair().of([]);
-      if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
-        this.asMap()[dartx.forEach](dart.fn((i, element) => {
-          children[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
-        }, intAnddynamicToNull()));
+    sublist(start, end) {
+      if (end === void 0) end = null;
+      let listLength = this[dartx.length];
+      if (end == null) end = listLength;
+      core.RangeError.checkValidRange(start, end, listLength);
+      let length = dart.notNull(end) - dart.notNull(start);
+      let result = ListOfE().new();
+      result[dartx.length] = length;
+      for (let i = 0; i < length; i++) {
+        result[dartx._set](i, this[dartx._get](dart.notNull(start) + i));
+      }
+      return result;
+    }
+    getRange(start, end) {
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      return new (SubListIterableOfE())(this, start, end);
+    }
+    removeRange(start, end) {
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      let length = dart.notNull(end) - dart.notNull(start);
+      this[dartx.setRange](start, dart.notNull(this[dartx.length]) - length, this, end);
+      this[dartx.length] = dart.notNull(this[dartx.length]) - length;
+    }
+    fillRange(start, end, fill) {
+      if (fill === void 0) fill = null;
+      E._check(fill);
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+        this[dartx._set](i, fill);
+      }
+    }
+    setRange(start, end, iterable, skipCount) {
+      IterableOfE()._check(iterable);
+      if (skipCount === void 0) skipCount = 0;
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      let length = dart.notNull(end) - dart.notNull(start);
+      if (length == 0) return;
+      core.RangeError.checkNotNegative(skipCount, "skipCount");
+      let otherList = null;
+      let otherStart = null;
+      if (ListOfE().is(iterable)) {
+        otherList = iterable;
+        otherStart = skipCount;
       } else {
-        for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
-          let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
-          if (subSpan.length == 1) {
-            children[dartx.add](new _debugger.NameValuePair({name: dart.toString(i), value: this.iterable[dartx.elementAt](i)}));
-          } else {
-            children[dartx.add](new _debugger.NameValuePair({name: dart.str`[${i}...${dart.notNull(subSpan.end) - 1}]`, value: subSpan, hideName: true}));
-          }
-        }
+        otherList = iterable[dartx.skip](skipCount)[dartx.toList]({growable: false});
+        otherStart = 0;
       }
-      return children;
-    }
-  };
-  dart.setSignature(_debugger.IterableSpan, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.IterableSpan, [core.int, core.int, core.Iterable])}),
-    fields: () => ({
-      start: core.int,
-      end: core.int,
-      iterable: core.Iterable
-    }),
-    getters: () => ({
-      length: dart.definiteFunctionType(core.int, []),
-      maxPowerOfSubsetSize: dart.definiteFunctionType(core.int, []),
-      subsetSize: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      asMap: dart.definiteFunctionType(core.Map$(core.int, dart.dynamic), []),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [])
-    })
-  });
-  _debugger.Library = class Library extends core.Object {
-    new(name, object) {
-      this.name = name;
-      this.object = object;
-    }
-  };
-  dart.setSignature(_debugger.Library, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.Library, [core.String, core.Object])}),
-    fields: () => ({
-      name: core.String,
-      object: core.Object
-    })
-  });
-  _debugger.NamedConstructor = class NamedConstructor extends core.Object {
-    new(object) {
-      this.object = object;
-    }
-  };
-  dart.setSignature(_debugger.NamedConstructor, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.NamedConstructor, [core.Object])}),
-    fields: () => ({object: core.Object})
-  });
-  _debugger.HeritageClause = class HeritageClause extends core.Object {
-    new(name, types) {
-      this.name = name;
-      this.types = types;
-    }
-  };
-  dart.setSignature(_debugger.HeritageClause, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.HeritageClause, [core.String, core.List])}),
-    fields: () => ({
-      name: core.String,
-      types: core.List
-    })
-  });
-  _debugger.safeGetProperty = function(protoChain, name) {
-    try {
-      return _debugger.JSNative.getProperty(protoChain, name);
-    } catch (e) {
-      return dart.str`<Exception thrown> ${e}`;
-    }
-
-  };
-  dart.fn(_debugger.safeGetProperty, ObjectAndObjectToObject());
-  _debugger.safeProperties = function(object) {
-    return MapOfdynamic$Object().fromIterable(_debugger.getOwnPropertyNames(object)[dartx.where](dart.fn(each => _debugger.safeGetProperty(object, each) != null, StringTobool$())), {key: dart.fn(name => name, dynamicTodynamic$()), value: dart.fn(name => _debugger.safeGetProperty(object, name), dynamicToObject())});
-  };
-  dart.fn(_debugger.safeProperties, dynamicTodynamic$());
-  const _attributes = Symbol('_attributes');
-  const _jsonML = Symbol('_jsonML');
-  _debugger.JsonMLElement = class JsonMLElement extends core.Object {
-    new(tagName) {
-      this[_attributes] = null;
-      this[_jsonML] = null;
-      this[_attributes] = {};
-      this[_jsonML] = [tagName, this[_attributes]];
-    }
-    appendChild(element) {
-      this[_jsonML][dartx.add](dart.dsend(element, 'toJsonML'));
-    }
-    createChild(tagName) {
-      let c = new _debugger.JsonMLElement(tagName);
-      this[_jsonML][dartx.add](c.toJsonML());
-      return c;
-    }
-    createObjectTag(object) {
-      return (() => {
-        let _ = this.createChild('object');
-        _.addAttribute('object', object);
-        return _;
-      })();
-    }
-    setStyle(style) {
-      dart.dput(this[_attributes], 'style', style);
-    }
-    addStyle(style) {
-      if (dart.dload(this[_attributes], 'style') == null) {
-        dart.dput(this[_attributes], 'style', style);
+      if (dart.notNull(otherStart) + length > dart.notNull(otherList[dartx.length])) {
+        dart.throw(_internal.IterableElementError.tooFew());
+      }
+      if (dart.notNull(otherStart) < dart.notNull(start)) {
+        for (let i = length - 1; i >= 0; i--) {
+          this[dartx._set](dart.notNull(start) + i, otherList[dartx._get](dart.notNull(otherStart) + i));
+        }
       } else {
-        let o = this[_attributes];
-        dart.dput(o, 'style', dart.dsend(dart.dload(o, 'style'), '+', style));
-      }
-    }
-    addAttribute(key, value) {
-      _debugger.JSNative.setProperty(this[_attributes], key, value);
-    }
-    createTextChild(text) {
-      this[_jsonML][dartx.add](text);
-    }
-    toJsonML() {
-      return this[_jsonML];
-    }
-  };
-  dart.setSignature(_debugger.JsonMLElement, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.JsonMLElement, [dart.dynamic])}),
-    fields: () => ({
-      [_attributes]: dart.dynamic,
-      [_jsonML]: core.List
-    }),
-    methods: () => ({
-      appendChild: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      createChild: dart.definiteFunctionType(_debugger.JsonMLElement, [core.String]),
-      createObjectTag: dart.definiteFunctionType(_debugger.JsonMLElement, [dart.dynamic]),
-      setStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      addStyle: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      addAttribute: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      createTextChild: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      toJsonML: dart.definiteFunctionType(dart.dynamic, [])
-    })
-  });
-  _debugger.isNativeJavaScriptObject = function(object) {
-    let type = _debugger._typeof(object);
-    return type != 'object' && type != 'function' || dart.JSObject.is(object) || html$.Node.is(object);
-  };
-  dart.lazyFn(_debugger.isNativeJavaScriptObject, () => dynamicTobool$());
-  _debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object {
-    new(simpleFormatter) {
-      this[_simpleFormatter] = simpleFormatter;
-      this.customFormattersOn = false;
-    }
-    setMaxSpanLengthForTestingOnly(spanLength) {
-      _debugger._maxSpanLength = spanLength;
-    }
-    header(object, config) {
-      this.customFormattersOn = true;
-      if (dart.equals(config, _debugger.JsonMLConfig.skipDart) || dart.test(_debugger.isNativeJavaScriptObject(object))) {
-        return null;
-      }
-      let c = this[_simpleFormatter].preview(object, config);
-      if (c == null) return null;
-      if (dart.equals(config, _debugger.JsonMLConfig.keyToString)) {
-        c = dart.toString(object);
-      }
-      let element = new _debugger.JsonMLElement('span');
-      element.setStyle('background-color: #d9edf7;');
-      element.createTextChild(c);
-      return element.toJsonML();
-    }
-    hasBody(object, config) {
-      return this[_simpleFormatter].hasChildren(object, config);
-    }
-    body(object, config) {
-      let body = new _debugger.JsonMLElement('ol');
-      body.setStyle('list-style-type: none;' + 'padding-left: 0px;' + 'margin-top: 0px;' + 'margin-bottom: 0px;' + 'margin-left: 12px;');
-      if (core.StackTrace.is(object)) {
-        body.addStyle('color: rgb(196, 26, 22);');
-      }
-      let children = this[_simpleFormatter].children(object, config);
-      for (let child of children) {
-        let li = body.createChild('li');
-        let nameSpan = new _debugger.JsonMLElement('span');
-        nameSpan.createTextChild(dart.test(child.displayName[dartx.isNotEmpty]) ? dart.str`${child.displayName}: ` : '');
-        nameSpan.setStyle('color: rgb(136, 19, 145);');
-        if (_debugger._typeof(child.value) == 'object' || _debugger._typeof(child.value) == 'function') {
-          nameSpan.addStyle("padding-left: 13px;");
-          li.appendChild(nameSpan);
-          let objectTag = li.createObjectTag(child.value);
-          objectTag.addAttribute('config', child.config);
-          if (!dart.test(this[_simpleFormatter].hasChildren(child.value, child.config))) {
-            li.setStyle("padding-left: 13px;");
-          }
-        } else {
-          li.setStyle("padding-left: 13px;");
-          let _ = li.createChild('span');
-          _.appendChild(nameSpan);
-          _.createTextChild(_debugger.safePreview(child.value, child.config));
+        for (let i = 0; i < length; i++) {
+          this[dartx._set](dart.notNull(start) + i, otherList[dartx._get](dart.notNull(otherStart) + i));
         }
       }
-      return body.toJsonML();
     }
-  };
-  dart.setSignature(_debugger.JsonMLFormatter, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.JsonMLFormatter, [_debugger.DartFormatter])}),
-    fields: () => ({
-      [_simpleFormatter]: _debugger.DartFormatter,
-      customFormattersOn: core.bool
-    }),
-    methods: () => ({
-      setMaxSpanLengthForTestingOnly: dart.definiteFunctionType(dart.void, [core.int]),
-      header: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      hasBody: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      body: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])
-    })
-  });
-  _debugger.Formatter = class Formatter extends core.Object {};
-  const _formatters = Symbol('_formatters');
-  _debugger.DartFormatter = class DartFormatter extends core.Object {
-    new() {
-      this[_formatters] = null;
-      this[_formatters] = JSArrayOfFormatter().of([new _debugger.ClassFormatter(), new _debugger.NamedConstructorFormatter(), new _debugger.MapFormatter(), new _debugger.IterableFormatter(), new _debugger.IterableSpanFormatter(), new _debugger.MapEntryFormatter(), new _debugger.StackTraceFormatter(), new _debugger.FunctionFormatter(), new _debugger.HeritageClauseFormatter(), new _debugger.LibraryModuleFormatter(), new _debugger.LibraryFormatter(), new _debugger.ObjectFormatter()]);
-    }
-    preview(object, config) {
-      try {
-        if (object == null || typeof object == 'number' || typeof object == 'string' || dart.test(_debugger.isNativeJavaScriptObject(object))) {
-          return dart.toString(object);
+    replaceRange(start, end, newContents) {
+      IterableOfE()._check(newContents);
+      core.RangeError.checkValidRange(start, end, this[dartx.length]);
+      if (!_internal.EfficientLength.is(newContents)) {
+        newContents = newContents[dartx.toList]();
+      }
+      let removeLength = dart.notNull(end) - dart.notNull(start);
+      let insertLength = newContents[dartx.length];
+      if (removeLength >= dart.notNull(insertLength)) {
+        let delta = removeLength - dart.notNull(insertLength);
+        let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
+        let newLength = dart.notNull(this[dartx.length]) - delta;
+        this[dartx.setRange](start, insertEnd, newContents);
+        if (delta != 0) {
+          this[dartx.setRange](insertEnd, newLength, this, end);
+          this[dartx.length] = newLength;
         }
-        for (let formatter of this[_formatters]) {
-          if (dart.test(formatter.accept(object, config))) return formatter.preview(object);
-        }
-      } catch (e) {
-        let trace = dart.stackTrace(e);
-        html$.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
-      }
-
-      return null;
-    }
-    hasChildren(object, config) {
-      if (object == null) return false;
-      try {
-        for (let formatter of this[_formatters]) {
-          if (dart.test(formatter.accept(object, config))) return formatter.hasChildren(object);
-        }
-      } catch (e) {
-        let trace = dart.stackTrace(e);
-        html$.window[dartx.console].error(dart.str`[hasChildren] Caught exception ${e}\n trace:\n${trace}`);
-      }
-
-      return false;
-    }
-    children(object, config) {
-      try {
-        if (object != null) {
-          for (let formatter of this[_formatters]) {
-            if (dart.test(formatter.accept(object, config))) return formatter.children(object);
-          }
-        }
-      } catch (e) {
-        let trace = dart.stackTrace(e);
-        html$.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
-      }
-
-      return JSArrayOfNameValuePair().of([]);
-    }
-  };
-  dart.setSignature(_debugger.DartFormatter, {
-    constructors: () => ({new: dart.definiteFunctionType(_debugger.DartFormatter, [])}),
-    fields: () => ({[_formatters]: ListOfFormatter()}),
-    methods: () => ({
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic, dart.dynamic])
-    })
-  });
-  _debugger.ObjectFormatter = class ObjectFormatter extends _debugger.Formatter {
-    accept(object, config) {
-      return !dart.test(_debugger.isNativeJavaScriptObject(object));
-    }
-    preview(object) {
-      return _debugger.getObjectTypeName(object);
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      let properties = LinkedHashSetOfNameValuePair().new();
-      _debugger.addMetadataChildren(object, properties);
-      let current = object;
-      let protoChain = JSArrayOfObject().of([]);
-      while (current != null && !dart.test(_debugger.isNativeJavaScriptObject(current)) && current !== Object.prototype) {
-        protoChain[dartx.add](current);
-        current = _debugger.safeGetProperty(current, '__proto__');
-      }
-      for (current of protoChain) {
-        for (let symbol of _debugger.getOwnPropertySymbols(current)) {
-          let dartName = _debugger.symbolName(symbol);
-          if (dart.test(_debugger.hasMethod(object, dartName))) {
-            continue;
-          }
-          let dartXPrefix = 'dartx.';
-          if (dart.test(dartName[dartx.startsWith](dartXPrefix))) {
-            dartName = dartName[dartx.substring](dartXPrefix[dartx.length]);
-          } else if (!dart.test(dartName[dartx.startsWith]('_'))) {
-            continue;
-          }
-          let value = _debugger.safeGetProperty(object, symbol);
-          properties.add(new _debugger.NameValuePair({name: dartName, value: value}));
-        }
-      }
-      for (current of protoChain) {
-        let className = dart.dload(dart.getReifiedType(current), 'name');
-        for (let name of _debugger.getOwnPropertyNames(current)) {
-          if (dart.test(_debugger.ObjectFormatter._customNames.contains(name)) || dart.equals(name, className)) continue;
-          if (dart.test(_debugger.hasMethod(object, name))) {
-            continue;
-          }
-          let value = _debugger.safeGetProperty(object, name);
-          properties.add(new _debugger.NameValuePair({name: name, value: value}));
-        }
-      }
-      return properties.toList();
-    }
-  };
-  dart.setSignature(_debugger.ObjectFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    }),
-    sfields: () => ({_customNames: SetOfString()})
-  });
-  dart.defineLazy(_debugger.ObjectFormatter, {
-    get _customNames() {
-      return (() => {
-        let _ = SetOfString().new();
-        _.add('constructor');
-        _.add('prototype');
-        _.add('__proto__');
-        return _;
-      })();
-    },
-    set _customNames(_) {}
-  });
-  _debugger.LibraryModuleFormatter = class LibraryModuleFormatter extends core.Object {
-    accept(object, config) {
-      return dart.getDartLibraryName(object) != null;
-    }
-    hasChildren(object) {
-      return true;
-    }
-    preview(object) {
-      let libraryNames = dart.dsend(dart.getDartLibraryName(object), 'split', '/');
-      if (dart.test(dart.dsend(dart.dload(libraryNames, 'length'), '>', 1))) {
-        dart.dsetindex(libraryNames, dart.dsend(dart.dload(libraryNames, 'length'), '-', 1), '');
-      }
-      return dart.str`Library Module: ${dart.dsend(libraryNames, 'join', '/')}`;
-    }
-    children(object) {
-      let children = LinkedHashSetOfNameValuePair().new();
-      for (let name of _debugger.getOwnPropertyNames(object)) {
-        let value = _debugger.safeGetProperty(object, name);
-        name = dart.str`${name[dartx.replaceAll]("__", "/")}.dart`;
-        children.add(new _debugger.NameValuePair({name: name, value: new _debugger.Library(name, value), hideName: true}));
-      }
-      return children.toList();
-    }
-  };
-  _debugger.LibraryModuleFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.LibraryModuleFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.LibraryFormatter = class LibraryFormatter extends core.Object {
-    new() {
-      this.genericParameters = HashMapOfString$String().new();
-    }
-    accept(object, config) {
-      return _debugger.Library.is(object);
-    }
-    hasChildren(object) {
-      return true;
-    }
-    preview(object) {
-      return core.String._check(dart.dload(object, 'name'));
-    }
-    children(object) {
-      let children = LinkedHashSetOfNameValuePair().new();
-      let nonGenericProperties = LinkedHashMapOfString$Object().new();
-      let objectProperties = _debugger.safeProperties(dart.dload(object, 'object'));
-      dart.dsend(objectProperties, 'forEach', dart.fn((name, value) => {
-        let genericTypeConstructor = dart.getGenericTypeCtor(value);
-        if (genericTypeConstructor != null) {
-          this.recordGenericParameters(core.String._check(name), genericTypeConstructor);
-        } else {
-          nonGenericProperties._set(core.String._check(name), value);
-        }
-      }, dynamicAnddynamicToNull()));
-      nonGenericProperties.forEach(dart.fn((name, value) => {
-        if (core.Type.is(value)) {
-          children.add(_debugger.NameValuePair._check(this.classChild(name, value)));
-        } else {
-          children.add(new _debugger.NameValuePair({name: name, value: value}));
-        }
-      }, StringAndObjectToNull()));
-      return children.toList();
-    }
-    recordGenericParameters(name, genericTypeConstructor) {
-      this.genericParameters._set(name, genericTypeConstructor.toString()[dartx.split](' =>')[dartx.first][dartx.replaceAll](core.RegExp.new('[(|)]'), ''));
-    }
-    classChild(name, child) {
-      let typeName = _debugger.getTypeName(core.Type._check(child));
-      let parameterName = dart.str`${name}\$`;
-      if (dart.test(this.genericParameters.keys[dartx.contains](parameterName))) {
-        typeName = dart.str`${typeName}<${this.genericParameters._get(parameterName)}>`;
-        _debugger.JSNative.setProperty(child, 'genericTypeName', typeName);
-      }
-      return new _debugger.NameValuePair({name: typeName, value: child});
-    }
-  };
-  _debugger.LibraryFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.LibraryFormatter, {
-    fields: () => ({genericParameters: HashMapOfString$String()}),
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic]),
-      recordGenericParameters: dart.definiteFunctionType(dart.dynamic, [core.String, core.Object]),
-      classChild: dart.definiteFunctionType(dart.dynamic, [core.String, core.Object])
-    })
-  });
-  _debugger.FunctionFormatter = class FunctionFormatter extends core.Object {
-    accept(object, config) {
-      if (_debugger._typeof(object) != 'function') return false;
-      return dart.getReifiedType(object) != null;
-    }
-    hasChildren(object) {
-      return true;
-    }
-    preview(object) {
-      return dart.typeName(dart.getReifiedType(object));
-    }
-    children(object) {
-      return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'signature', value: this.preview(object)}), new _debugger.NameValuePair({name: 'JavaScript Function', value: object, config: _debugger.JsonMLConfig.skipDart})]);
-    }
-  };
-  _debugger.FunctionFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.FunctionFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.MapFormatter = class MapFormatter extends core.Object {
-    accept(object, config) {
-      return core.Map.is(object);
-    }
-    hasChildren(object) {
-      return true;
-    }
-    preview(object) {
-      let map = core.Map._check(object);
-      return dart.str`${_debugger.getObjectTypeName(map)} length ${map[dartx.length]}`;
-    }
-    children(object) {
-      let map = core.Map._check(object);
-      let entries = LinkedHashSetOfNameValuePair().new();
-      map[dartx.forEach](dart.fn((key, value) => {
-        let entryWrapper = new _debugger.MapEntry({key: key, value: value});
-        entries.add(new _debugger.NameValuePair({name: dart.toString(entries.length), value: entryWrapper}));
-      }, dynamicAnddynamicToNull()));
-      _debugger.addMetadataChildren(object, entries);
-      return entries.toList();
-    }
-  };
-  _debugger.MapFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.MapFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.IterableFormatter = class IterableFormatter extends core.Object {
-    accept(object, config) {
-      return core.Iterable.is(object);
-    }
-    preview(object) {
-      let iterable = core.Iterable._check(object);
-      try {
-        let length = iterable[dartx.length];
-        return dart.str`${_debugger.getObjectTypeName(iterable)} length ${length}`;
-      } catch (_) {
-        return dart.str`${_debugger.getObjectTypeName(iterable)}`;
-      }
-
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      let children = LinkedHashSetOfNameValuePair().new();
-      children.addAll(new _debugger.IterableSpan(0, core.int._check(dart.dload(object, 'length')), core.Iterable._check(object)).children());
-      _debugger.addMetadataChildren(object, children);
-      return children.toList();
-    }
-  };
-  _debugger.IterableFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.IterableFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.NamedConstructorFormatter = class NamedConstructorFormatter extends core.Object {
-    accept(object, config) {
-      return _debugger.NamedConstructor.is(object);
-    }
-    preview(object) {
-      return 'Named Constructor';
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'JavaScript Function', value: object, config: _debugger.JsonMLConfig.skipDart})]);
-    }
-  };
-  _debugger.NamedConstructorFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.NamedConstructorFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.MapEntryFormatter = class MapEntryFormatter extends core.Object {
-    accept(object, config) {
-      return _debugger.MapEntry.is(object);
-    }
-    preview(object) {
-      let entry = _debugger.MapEntry._check(object);
-      return dart.str`${_debugger.safePreview(entry.key, _debugger.JsonMLConfig.none)} => ${_debugger.safePreview(entry.value, _debugger.JsonMLConfig.none)}`;
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      return JSArrayOfNameValuePair().of([new _debugger.NameValuePair({name: 'key', value: dart.dload(object, 'key'), config: _debugger.JsonMLConfig.keyToString}), new _debugger.NameValuePair({name: 'value', value: dart.dload(object, 'value')})]);
-    }
-  };
-  _debugger.MapEntryFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.MapEntryFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.HeritageClauseFormatter = class HeritageClauseFormatter extends core.Object {
-    accept(object, config) {
-      return _debugger.HeritageClause.is(object);
-    }
-    preview(object) {
-      let clause = _debugger.HeritageClause._check(object);
-      let typeNames = clause.types[dartx.map](core.String)(_debugger.getTypeName);
-      return dart.str`${clause.name} ${typeNames[dartx.join](", ")}`;
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      let clause = _debugger.HeritageClause._check(object);
-      let children = JSArrayOfNameValuePair().of([]);
-      for (let type of clause.types) {
-        children[dartx.add](new _debugger.NameValuePair({value: type, config: _debugger.JsonMLConfig.asClass}));
-      }
-      return children;
-    }
-  };
-  _debugger.HeritageClauseFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.HeritageClauseFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.IterableSpanFormatter = class IterableSpanFormatter extends core.Object {
-    accept(object, config) {
-      return _debugger.IterableSpan.is(object);
-    }
-    preview(object) {
-      return dart.str`[${dart.dload(object, 'start')}...${dart.dsend(dart.dload(object, 'end'), '-', 1)}]`;
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      return ListOfNameValuePair()._check(dart.dsend(object, 'children'));
-    }
-  };
-  _debugger.IterableSpanFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.IterableSpanFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.StackTraceFormatter = class StackTraceFormatter extends core.Object {
-    accept(object, config) {
-      return core.StackTrace.is(object);
-    }
-    preview(object) {
-      return 'StackTrace';
-    }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      return dart.toString(object)[dartx.split]('\n')[dartx.map](_debugger.NameValuePair)(dart.fn(line => new _debugger.NameValuePair({value: line[dartx.replaceFirst](core.RegExp.new('^\\s+at\\s'), ''), hideName: true}), StringToNameValuePair()))[dartx.toList]();
-    }
-  };
-  _debugger.StackTraceFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.StackTraceFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.ClassFormatter = class ClassFormatter extends core.Object {
-    accept(object, config) {
-      return core.Type.is(object) || dart.equals(config, _debugger.JsonMLConfig.asClass);
-    }
-    preview(object) {
-      let typeName = _debugger.safeGetProperty(object, 'genericTypeName');
-      if (typeName != null) return core.String._check(typeName);
-      let type = _debugger._getType(object);
-      let implements$ = dart.getImplements(type);
-      typeName = _debugger.getTypeName(core.Type._check(type));
-      if (implements$ != null) {
-        let typeNames = dart.dsend(dart.dcall(implements$), 'map', _debugger.getTypeName);
-        return dart.str`${typeName} implements ${dart.dsend(typeNames, 'join', ", ")}`;
       } else {
-        return core.String._check(typeName);
+        let delta = dart.notNull(insertLength) - removeLength;
+        let newLength = dart.notNull(this[dartx.length]) + delta;
+        let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
+        this[dartx.length] = newLength;
+        this[dartx.setRange](insertEnd, newLength, this, end);
+        this[dartx.setRange](start, insertEnd, newContents);
       }
     }
-    hasChildren(object) {
-      return true;
-    }
-    children(object) {
-      let type = _debugger._getType(object);
-      let children = JSArrayOfNameValuePair().of([]);
-      let typeName = _debugger.getTypeName(core.Type._check(_debugger._getType(object)));
-      let mixins = dart.getMixins(type);
-      if (mixins != null && dart.test(dart.dload(mixins, 'isNotEmpty'))) {
-        children[dartx.add](new _debugger.NameValuePair({name: '[[Mixins]]', value: new _debugger.HeritageClause('mixins', core.List._check(mixins))}));
+    indexOf(element, startIndex) {
+      if (startIndex === void 0) startIndex = 0;
+      if (dart.notNull(startIndex) >= dart.notNull(this[dartx.length])) {
+        return -1;
       }
-      let hiddenProperties = JSArrayOfString().of(['length', 'name', 'prototype', 'genericTypeName']);
-      for (let name of _debugger.getOwnPropertyNames(object)) {
-        if (dart.test(hiddenProperties[dartx.contains](name))) continue;
-        let value = _debugger.safeGetProperty(object, name);
-        if (value != null && dart.getIsNamedConstructor(value) != null) {
-          value = new _debugger.NamedConstructor(value);
-          name = dart.str`${typeName}.${name}`;
-        }
-        children[dartx.add](new _debugger.NameValuePair({name: name, value: value}));
+      if (dart.notNull(startIndex) < 0) {
+        startIndex = 0;
       }
-      let hiddenPrototypeProperties = JSArrayOfString().of(['constructor', 'new', '$identityHash']);
-      let prototype = object.prototype;
-      if (prototype != null) {
-        for (let name of _debugger.getOwnPropertyNames(prototype)) {
-          if (dart.test(hiddenPrototypeProperties[dartx.contains](name))) continue;
-          let func = _debugger.safeGetProperty(prototype, name);
-          let constructor = _debugger.safeGetProperty(prototype, 'constructor');
-          let sigObj = dart.getMethodSig(constructor);
-          if (sigObj != null) {
-            let value = _debugger.safeGetProperty(sigObj, name);
-            if (_debugger.getTypeName(core.Type._check(dart.getReifiedType(value))) != 'Null') {
-              dart.tag(func, value);
-              children[dartx.add](new _debugger.NameValuePair({name: name, value: func}));
-            }
-          }
+      for (let i = startIndex; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
+        if (dart.equals(this[dartx._get](i), element)) {
+          return i;
         }
       }
-      return children;
+      return -1;
     }
-  };
-  _debugger.ClassFormatter[dart.implements] = () => [_debugger.Formatter];
-  dart.setSignature(_debugger.ClassFormatter, {
-    methods: () => ({
-      accept: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      preview: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      hasChildren: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      children: dart.definiteFunctionType(core.List$(_debugger.NameValuePair), [dart.dynamic])
-    })
-  });
-  _debugger.registerDevtoolsFormatter = function() {
-    let formatters = JSArrayOfJsonMLFormatter().of([_debugger._devtoolsFormatter]);
-    dart.global.devtoolsFormatters = formatters;
-  };
-  dart.fn(_debugger.registerDevtoolsFormatter, VoidTodynamic$());
-  _foreign_helper.JS = function(typeDescription, codeTemplate, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
-    if (arg0 === void 0) arg0 = null;
-    if (arg1 === void 0) arg1 = null;
-    if (arg2 === void 0) arg2 = null;
-    if (arg3 === void 0) arg3 = null;
-    if (arg4 === void 0) arg4 = null;
-    if (arg5 === void 0) arg5 = null;
-    if (arg6 === void 0) arg6 = null;
-    if (arg7 === void 0) arg7 = null;
-    if (arg8 === void 0) arg8 = null;
-    if (arg9 === void 0) arg9 = null;
-    if (arg10 === void 0) arg10 = null;
-    if (arg11 === void 0) arg11 = null;
-  };
-  dart.lazyFn(_foreign_helper.JS, () => StringAndString__Todynamic());
-  _foreign_helper.JSExportName = class JSExportName extends core.Object {
-    new(name) {
-      this.name = name;
-    }
-  };
-  dart.setSignature(_foreign_helper.JSExportName, {
-    constructors: () => ({new: dart.definiteFunctionType(_foreign_helper.JSExportName, [core.String])}),
-    fields: () => ({name: core.String})
-  });
-  _foreign_helper.JS_CURRENT_ISOLATE_CONTEXT = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT, () => VoidToIsolateContext());
-  _foreign_helper.IsolateContext = class IsolateContext extends core.Object {};
-  _foreign_helper.JS_CALL_IN_ISOLATE = function(isolate, func) {
-  };
-  dart.lazyFn(_foreign_helper.JS_CALL_IN_ISOLATE, () => dynamicAndFunctionTodynamic());
-  _foreign_helper.JS_SET_CURRENT_ISOLATE = function(isolate) {
-  };
-  dart.fn(_foreign_helper.JS_SET_CURRENT_ISOLATE, dynamicTovoid$());
-  _foreign_helper.JS_CREATE_ISOLATE = function() {
-  };
-  dart.fn(_foreign_helper.JS_CREATE_ISOLATE, VoidTodynamic$());
-  _foreign_helper.JS_DART_OBJECT_CONSTRUCTOR = function() {
-  };
-  dart.fn(_foreign_helper.JS_DART_OBJECT_CONSTRUCTOR, VoidTodynamic$());
-  _foreign_helper.JS_INTERCEPTOR_CONSTANT = function(type) {
-  };
-  dart.fn(_foreign_helper.JS_INTERCEPTOR_CONSTANT, TypeTodynamic());
-  _foreign_helper.JS_OPERATOR_IS_PREFIX = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_OPERATOR_IS_PREFIX, () => VoidToString$());
-  _foreign_helper.JS_OPERATOR_AS_PREFIX = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_OPERATOR_AS_PREFIX, () => VoidToString$());
-  _foreign_helper.JS_OBJECT_CLASS_NAME = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_OBJECT_CLASS_NAME, () => VoidToString$());
-  _foreign_helper.JS_NULL_CLASS_NAME = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_NULL_CLASS_NAME, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_CLASS_NAME = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_CLASS_NAME, () => VoidToString$());
-  _foreign_helper.JS_IS_INDEXABLE_FIELD_NAME = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_IS_INDEXABLE_FIELD_NAME, () => VoidToString$());
-  _foreign_helper.JS_CURRENT_ISOLATE = function() {
-  };
-  dart.fn(_foreign_helper.JS_CURRENT_ISOLATE, VoidTodynamic$());
-  _foreign_helper.JS_SIGNATURE_NAME = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_SIGNATURE_NAME, () => VoidToString$());
-  _foreign_helper.JS_TYPEDEF_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_TYPEDEF_TAG, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_TYPE_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_TAG, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG, () => VoidToString$());
-  _foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG = function() {
-  };
-  dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG, () => VoidToString$());
-  _foreign_helper.JS_GET_NAME = function(name) {
-  };
-  dart.lazyFn(_foreign_helper.JS_GET_NAME, () => StringToString$());
-  _foreign_helper.JS_EMBEDDED_GLOBAL = function(typeDescription, name) {
-  };
-  dart.lazyFn(_foreign_helper.JS_EMBEDDED_GLOBAL, () => StringAndStringTodynamic());
-  _foreign_helper.JS_GET_FLAG = function(name) {
-  };
-  dart.lazyFn(_foreign_helper.JS_GET_FLAG, () => StringTobool$());
-  _foreign_helper.JS_EFFECT = function(code) {
-    dart.dcall(code, null);
-  };
-  dart.lazyFn(_foreign_helper.JS_EFFECT, () => FunctionTovoid());
-  _foreign_helper.JS_CONST = class JS_CONST extends core.Object {
-    new(code) {
-      this.code = code;
-    }
-  };
-  dart.setSignature(_foreign_helper.JS_CONST, {
-    constructors: () => ({new: dart.definiteFunctionType(_foreign_helper.JS_CONST, [core.String])}),
-    fields: () => ({code: core.String})
-  });
-  _foreign_helper.JS_STRING_CONCAT = function(a, b) {
-    return a + b;
-  };
-  dart.lazyFn(_foreign_helper.JS_STRING_CONCAT, () => StringAndStringToString$());
-  _foreign_helper._Rest = class _Rest extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_foreign_helper._Rest, {
-    constructors: () => ({new: dart.definiteFunctionType(_foreign_helper._Rest, [])})
-  });
-  _foreign_helper.rest = dart.const(new _foreign_helper._Rest());
-  _foreign_helper.spread = function(args) {
-    dart.throw(new core.StateError('The spread function cannot be called, ' + 'it should be compiled away.'));
-  };
-  dart.fn(_foreign_helper.spread, dynamicTodynamic$());
-  _interceptors.Interceptor = class Interceptor extends core.Object {
-    new() {
-    }
-  };
-  dart.addTypeTests(_interceptors.Interceptor);
-  dart.setSignature(_interceptors.Interceptor, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.Interceptor, [])})
-  });
-  _interceptors.getInterceptor = function(obj) {
-    return obj;
-  };
-  dart.fn(_interceptors.getInterceptor, dynamicTodynamic$());
-  dart.defineExtensionNames([
-    'toString',
-    'hashCode',
-    'runtimeType'
-  ]);
-  _interceptors.JSBool = class JSBool extends _interceptors.Interceptor {
-    new() {
-      super.new();
-    }
-    [dartx.toString]() {
-      return String(this);
-    }
-    get [dartx.hashCode]() {
-      return this ? 2 * 3 * 23 * 3761 : 269 * 811;
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(core.bool);
-    }
-  };
-  _interceptors.JSBool[dart.implements] = () => [core.bool];
-  dart.setSignature(_interceptors.JSBool, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.JSBool, [])})
-  });
-  dart.registerExtension(dart.global.Boolean, _interceptors.JSBool);
-  _interceptors.JSIndexable$ = dart.generic(E => {
-    class JSIndexable extends core.Object {}
-    dart.addTypeTests(JSIndexable);
-    return JSIndexable;
-  });
-  _interceptors.JSIndexable = JSIndexable();
-  _interceptors.JSObject = class JSObject extends core.Object {};
-  _interceptors.JavaScriptObject = class JavaScriptObject extends _interceptors.Interceptor {
-    new() {
-      super.new();
-    }
-    get hashCode() {
-      return 0;
-    }
-    get runtimeType() {
-      return dart.wrapType(_interceptors.JSObject);
-    }
-  };
-  _interceptors.JavaScriptObject[dart.implements] = () => [_interceptors.JSObject];
-  dart.setSignature(_interceptors.JavaScriptObject, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.JavaScriptObject, [])})
-  });
-  _interceptors.PlainJavaScriptObject = class PlainJavaScriptObject extends _interceptors.JavaScriptObject {
-    new() {
-      super.new();
-    }
-  };
-  dart.setSignature(_interceptors.PlainJavaScriptObject, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.PlainJavaScriptObject, [])})
-  });
-  _interceptors.UnknownJavaScriptObject = class UnknownJavaScriptObject extends _interceptors.JavaScriptObject {
-    new() {
-      super.new();
-    }
-    toString() {
-      return String(this);
-    }
-  };
-  dart.setSignature(_interceptors.UnknownJavaScriptObject, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.UnknownJavaScriptObject, [])})
-  });
-  _interceptors.findInterceptorConstructorForType = function(type) {
-  };
-  dart.fn(_interceptors.findInterceptorConstructorForType, TypeTodynamic());
-  _interceptors.findConstructorForNativeSubclassType = function(type, name) {
-  };
-  dart.lazyFn(_interceptors.findConstructorForNativeSubclassType, () => TypeAndStringTodynamic());
-  _interceptors.getNativeInterceptor = function(object) {
-  };
-  dart.fn(_interceptors.getNativeInterceptor, dynamicTodynamic$());
-  _interceptors.setDispatchProperty = function(object, value) {
-  };
-  dart.fn(_interceptors.setDispatchProperty, dynamicAnddynamicTodynamic$());
-  const _removeWhere = Symbol('_removeWhere');
-  _interceptors.JSArray$ = dart.generic(E => {
-    let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
-    let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
-    let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
-    let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
-    let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let ReversedListIterableOfE = () => (ReversedListIterableOfE = dart.constFn(_internal.ReversedListIterable$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let ArrayIteratorOfE = () => (ArrayIteratorOfE = dart.constFn(_interceptors.ArrayIterator$(E)))();
-    let ListMapViewOfE = () => (ListMapViewOfE = dart.constFn(_internal.ListMapView$(E)))();
-    let JSIndexableOfE = () => (JSIndexableOfE = dart.constFn(_interceptors.JSIndexable$(E)))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
-    dart.defineExtensionNames([
-      'checkMutable',
-      'checkGrowable',
-      'add',
-      'removeAt',
-      'insert',
-      'insertAll',
-      'setAll',
-      'removeLast',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'where',
-      'expand',
-      'addAll',
-      'clear',
-      'forEach',
-      'map',
-      'join',
-      'take',
-      'takeWhile',
-      'skip',
-      'skipWhile',
-      'reduce',
-      'fold',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'elementAt',
-      'sublist',
-      'getRange',
-      'first',
-      'last',
-      'single',
-      'removeRange',
-      'setRange',
-      'fillRange',
-      'replaceRange',
-      'any',
-      'every',
-      'reversed',
-      'sort',
-      'shuffle',
-      'indexOf',
-      'lastIndexOf',
-      'contains',
-      'isEmpty',
-      'isNotEmpty',
-      'toString',
-      'toList',
-      'toSet',
-      'iterator',
-      'hashCode',
-      'length',
-      'length',
-      '_get',
-      '_set',
-      'asMap'
-    ]);
-    class JSArray extends core.Object {
-      new() {
-      }
-      static typed(allocation) {
-        return dart.list(allocation, E);
-      }
-      static of(allocation) {
-        return dart.setType(allocation, JSArray);
-      }
-      static markFixed(allocation) {
-        return JSArrayOfE().typed(_interceptors.JSArray.markFixedList(core.List._check(allocation)));
-      }
-      static markGrowable(allocation) {
-        return JSArrayOfE().typed(allocation);
-      }
-      static markFixedList(list) {
-        list.fixed$length = Array;
-        return list;
-      }
-      static markUnmodifiableList(list) {
-        list.fixed$length = Array;
-        list.immutable$list = Array;
-        return list;
-      }
-      [dartx.checkMutable](reason) {
-        if (this.immutable$list) {
-          dart.throw(new core.UnsupportedError(core.String._check(reason)));
+    lastIndexOf(element, startIndex) {
+      if (startIndex === void 0) startIndex = null;
+      if (startIndex == null) {
+        startIndex = dart.notNull(this[dartx.length]) - 1;
+      } else {
+        if (dart.notNull(startIndex) < 0) {
+          return -1;
+        }
+        if (dart.notNull(startIndex) >= dart.notNull(this[dartx.length])) {
+          startIndex = dart.notNull(this[dartx.length]) - 1;
         }
       }
-      [dartx.checkGrowable](reason) {
-        if (this.fixed$length) {
-          dart.throw(new core.UnsupportedError(core.String._check(reason)));
+      for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
+        if (dart.equals(this[dartx._get](i), element)) {
+          return i;
         }
       }
-      [dartx.add](value) {
-        E._check(value);
-        this[dartx.checkGrowable]('add');
-        this.push(value);
+      return -1;
+    }
+    insert(index, element) {
+      E._check(element);
+      core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
+      if (index == this[dartx.length]) {
+        this[dartx.add](element);
+        return;
       }
-      [dartx.removeAt](index) {
-        this[dartx.checkGrowable]('removeAt');
-        if (!(typeof index == 'number')) dart.throw(_js_helper.argumentErrorValue(index));
-        if (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this[dartx.length])) {
-          dart.throw(new core.RangeError.value(index));
-        }
-        return this.splice(index, 1)[0];
+      if (!(typeof index == 'number')) dart.throw(new core.ArgumentError(index));
+      this[dartx.length] = dart.notNull(this[dartx.length]) + 1;
+      this[dartx.setRange](dart.notNull(index) + 1, this[dartx.length], this, index);
+      this[dartx._set](index, element);
+    }
+    removeAt(index) {
+      let result = this[dartx._get](index);
+      this[dartx.setRange](index, dart.notNull(this[dartx.length]) - 1, this, dart.notNull(index) + 1);
+      this[dartx.length] = dart.notNull(this[dartx.length]) - 1;
+      return result;
+    }
+    insertAll(index, iterable) {
+      IterableOfE()._check(iterable);
+      core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
+      if (!_internal.EfficientLength.is(iterable) || core.identical(iterable, this)) {
+        iterable = iterable[dartx.toList]();
       }
-      [dartx.insert](index, value) {
-        E._check(value);
-        this[dartx.checkGrowable]('insert');
-        if (!(typeof index == 'number')) dart.throw(_js_helper.argumentErrorValue(index));
-        if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[dartx.length])) {
-          dart.throw(new core.RangeError.value(index));
-        }
-        this.splice(index, 0, value);
+      let insertionLength = iterable[dartx.length];
+      this[dartx.length] = dart.notNull(this[dartx.length]) + dart.notNull(insertionLength);
+      if (iterable[dartx.length] != insertionLength) {
+        this[dartx.length] = dart.notNull(this[dartx.length]) - dart.notNull(insertionLength);
+        dart.throw(new core.ConcurrentModificationError(iterable));
       }
-      [dartx.insertAll](index, iterable) {
-        IterableOfE()._check(iterable);
-        this[dartx.checkGrowable]('insertAll');
-        core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
-        if (!_internal.EfficientLength.is(iterable)) {
-          iterable = iterable[dartx.toList]();
-        }
-        let insertionLength = iterable[dartx.length];
-        this[dartx.length] = dart.notNull(this[dartx.length]) + dart.notNull(insertionLength);
-        let end = dart.notNull(index) + dart.notNull(insertionLength);
-        this[dartx.setRange](end, this[dartx.length], this, index);
-        this[dartx.setRange](index, end, iterable);
-      }
-      [dartx.setAll](index, iterable) {
-        IterableOfE()._check(iterable);
-        this[dartx.checkMutable]('setAll');
-        core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
+      this[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength), this[dartx.length], this, index);
+      this[dartx.setAll](index, iterable);
+    }
+    setAll(index, iterable) {
+      IterableOfE()._check(iterable);
+      if (core.List.is(iterable)) {
+        this[dartx.setRange](index, dart.notNull(index) + dart.notNull(iterable[dartx.length]), iterable);
+      } else {
         for (let element of iterable) {
           this[dartx._set]((() => {
             let x = index;
@@ -4433,24818 +6638,6232 @@
           })(), element);
         }
       }
-      [dartx.removeLast]() {
-        this[dartx.checkGrowable]('removeLast');
-        if (this[dartx.length] == 0) dart.throw(_js_helper.diagnoseIndexError(this, -1));
-        return this.pop();
-      }
-      [dartx.remove](element) {
-        this[dartx.checkGrowable]('remove');
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          if (dart.equals(this[dartx._get](i), element)) {
-            this.splice(i, 1);
-            return true;
-          }
-        }
-        return false;
-      }
-      [dartx.removeWhere](test) {
-        this[dartx.checkGrowable]('removeWhere');
-        this[_removeWhere](test, true);
-      }
-      [dartx.retainWhere](test) {
-        this[dartx.checkGrowable]('retainWhere');
-        this[_removeWhere](test, false);
-      }
-      [_removeWhere](test, removeMatching) {
-        let retained = [];
-        let end = this[dartx.length];
-        for (let i = 0; i < dart.notNull(end); i++) {
-          let element = this[i];
-          if (!dart.test(test(E._check(element))) == removeMatching) {
-            retained[dartx.add](element);
-          }
-          if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
-        }
-        if (retained[dartx.length] == end) return;
-        this[dartx.length] = retained[dartx.length];
-        for (let i = 0; i < dart.notNull(retained[dartx.length]); i++) {
-          this[dartx._set](i, E._check(retained[dartx._get](i)));
-        }
-      }
-      [dartx.where](f) {
-        return new (WhereIterableOfE())(this, f);
-      }
-      [dartx.expand](T) {
-        return f => {
-          return new (_internal.ExpandIterable$(E, T))(this, f);
-        };
-      }
-      [dartx.addAll](collection) {
-        IterableOfE()._check(collection);
-        let i = this[dartx.length];
-        this[dartx.checkGrowable]('addAll');
-        for (let e of collection) {
-          dart.assert(i == this[dartx.length] || dart.test(dart.throw(new core.ConcurrentModificationError(this))));
-          i = dart.notNull(i) + 1;
-          this.push(e);
-        }
-      }
-      [dartx.clear]() {
-        this[dartx.length] = 0;
-      }
-      [dartx.forEach](f) {
-        let end = this[dartx.length];
-        for (let i = 0; i < dart.notNull(end); i++) {
-          let element = this[i];
-          f(element);
-          if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
-        }
-      }
-      [dartx.map](T) {
-        return f => {
-          return new (_internal.MappedListIterable$(E, T))(this, f);
-        };
-      }
-      [dartx.join](separator) {
-        if (separator === void 0) separator = "";
-        let list = core.List.new(this[dartx.length]);
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          list[dartx._set](i, dart.str`${this[dartx._get](i)}`);
-        }
-        return list.join(separator);
-      }
-      [dartx.take](n) {
-        return new (SubListIterableOfE())(this, 0, n);
-      }
-      [dartx.takeWhile](test) {
-        return new (TakeWhileIterableOfE())(this, test);
-      }
-      [dartx.skip](n) {
-        return new (SubListIterableOfE())(this, n, null);
-      }
-      [dartx.skipWhile](test) {
-        return new (SkipWhileIterableOfE())(this, test);
-      }
-      [dartx.reduce](combine) {
-        EAndEToE()._check(combine);
-        let length = this[dartx.length];
-        if (length == 0) dart.throw(_internal.IterableElementError.noElement());
-        let value = this[dartx._get](0);
-        for (let i = 1; i < dart.notNull(length); i++) {
-          let element = this[i];
-          value = combine(value, element);
-          if (length != this[dartx.length]) dart.throw(new core.ConcurrentModificationError(this));
-        }
-        return value;
-      }
-      [dartx.fold](T) {
-        return (initialValue, combine) => {
-          let value = initialValue;
-          let length = this[dartx.length];
-          for (let i = 0; i < dart.notNull(length); i++) {
-            let element = this[i];
-            value = combine(value, element);
-            if (this[dartx.length] != length) dart.throw(new core.ConcurrentModificationError(this));
-          }
-          return value;
-        };
-      }
-      [dartx.firstWhere](test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let end = this[dartx.length];
-        for (let i = 0; i < dart.notNull(end); ++i) {
-          let element = this[i];
-          if (dart.test(test(element))) return element;
-          if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      [dartx.lastWhere](test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let length = this[dartx.length];
-        for (let i = dart.notNull(length) - 1; i >= 0; i--) {
-          let element = this[i];
-          if (dart.test(test(element))) return element;
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      [dartx.singleWhere](test) {
-        let length = this[dartx.length];
-        let match = null;
-        let matchFound = false;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          let element = this[i];
-          if (dart.test(test(E._check(element)))) {
-            if (matchFound) {
-              dart.throw(_internal.IterableElementError.tooMany());
-            }
-            matchFound = true;
-            match = E._check(element);
-          }
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (matchFound) return match;
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      [dartx.elementAt](index) {
-        return this[dartx._get](index);
-      }
-      [dartx.sublist](start, end) {
-        if (end === void 0) end = null;
-        _js_helper.checkNull(start);
-        if (!(typeof start == 'number')) dart.throw(_js_helper.argumentErrorValue(start));
-        if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dartx.length])) {
-          dart.throw(new core.RangeError.range(start, 0, this[dartx.length], "start"));
-        }
-        if (end == null) {
-          end = this[dartx.length];
-        } else {
-          if (!(typeof end == 'number')) dart.throw(_js_helper.argumentErrorValue(end));
-          if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(this[dartx.length])) {
-            dart.throw(new core.RangeError.range(end, start, this[dartx.length], "end"));
-          }
-        }
-        if (start == end) return JSArrayOfE().of([]);
-        return JSArrayOfE().typed(this.slice(start, end));
-      }
-      [dartx.getRange](start, end) {
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        return new (SubListIterableOfE())(this, start, end);
-      }
-      get [dartx.first]() {
-        if (dart.notNull(this[dartx.length]) > 0) return this[dartx._get](0);
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      get [dartx.last]() {
-        if (dart.notNull(this[dartx.length]) > 0) return this[dartx._get](dart.notNull(this[dartx.length]) - 1);
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      get [dartx.single]() {
-        if (this[dartx.length] == 1) return this[dartx._get](0);
-        if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
-        dart.throw(_internal.IterableElementError.tooMany());
-      }
-      [dartx.removeRange](start, end) {
-        this[dartx.checkGrowable]('removeRange');
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        let deleteCount = dart.notNull(end) - dart.notNull(start);
-        this.splice(start, deleteCount);
-      }
-      [dartx.setRange](start, end, iterable, skipCount) {
-        IterableOfE()._check(iterable);
-        if (skipCount === void 0) skipCount = 0;
-        this[dartx.checkMutable]('set range');
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        let length = dart.notNull(end) - dart.notNull(start);
-        if (length == 0) return;
-        core.RangeError.checkNotNegative(skipCount, "skipCount");
-        let otherList = null;
-        let otherStart = null;
-        if (core.List.is(iterable)) {
-          otherList = ListOfE()._check(iterable);
-          otherStart = skipCount;
-        } else {
-          otherList = iterable[dartx.skip](skipCount)[dartx.toList]({growable: false});
-          otherStart = 0;
-        }
-        if (dart.notNull(otherStart) + length > dart.notNull(otherList[dartx.length])) {
-          dart.throw(_internal.IterableElementError.tooFew());
-        }
-        if (dart.notNull(otherStart) < dart.notNull(start)) {
-          for (let i = length - 1; i >= 0; i--) {
-            let element = otherList[dartx._get](dart.notNull(otherStart) + i);
-            this[dart.notNull(start) + i] = element;
-          }
-        } else {
-          for (let i = 0; i < length; i++) {
-            let element = otherList[dartx._get](dart.notNull(otherStart) + i);
-            this[dart.notNull(start) + i] = element;
-          }
-        }
-      }
-      [dartx.fillRange](start, end, fillValue) {
-        if (fillValue === void 0) fillValue = null;
-        E._check(fillValue);
-        this[dartx.checkMutable]('fill range');
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          this[i] = fillValue;
-        }
-      }
-      [dartx.replaceRange](start, end, replacement) {
-        IterableOfE()._check(replacement);
-        this[dartx.checkGrowable]('replace range');
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        if (!_internal.EfficientLength.is(replacement)) {
-          replacement = replacement[dartx.toList]();
-        }
-        let removeLength = dart.notNull(end) - dart.notNull(start);
-        let insertLength = replacement[dartx.length];
-        if (removeLength >= dart.notNull(insertLength)) {
-          let delta = removeLength - dart.notNull(insertLength);
-          let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
-          let newLength = dart.notNull(this[dartx.length]) - delta;
-          this[dartx.setRange](start, insertEnd, replacement);
-          if (delta != 0) {
-            this[dartx.setRange](insertEnd, newLength, this, end);
-            this[dartx.length] = newLength;
-          }
-        } else {
-          let delta = dart.notNull(insertLength) - removeLength;
-          let newLength = dart.notNull(this[dartx.length]) + delta;
-          let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
-          this[dartx.length] = newLength;
-          this[dartx.setRange](insertEnd, newLength, this, end);
-          this[dartx.setRange](start, insertEnd, replacement);
-        }
-      }
-      [dartx.any](test) {
-        let end = this[dartx.length];
-        for (let i = 0; i < dart.notNull(end); i++) {
-          let element = this[i];
-          if (dart.test(test(element))) return true;
-          if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
-        }
-        return false;
-      }
-      [dartx.every](test) {
-        let end = this[dartx.length];
-        for (let i = 0; i < dart.notNull(end); i++) {
-          let element = this[i];
-          if (!dart.test(test(element))) return false;
-          if (this[dartx.length] != end) dart.throw(new core.ConcurrentModificationError(this));
-        }
-        return true;
-      }
-      get [dartx.reversed]() {
-        return new (ReversedListIterableOfE())(this);
-      }
-      [dartx.sort](compare) {
-        if (compare === void 0) compare = null;
-        this[dartx.checkMutable]('sort');
-        if (compare == null) {
-          _internal.Sort.sort(E)(this, dart.fn((a, b) => core.Comparable.compare(core.Comparable._check(a), core.Comparable._check(b)), dynamicAnddynamicToint()));
-        } else {
-          _internal.Sort.sort(E)(this, compare);
-        }
-      }
-      [dartx.shuffle](random) {
-        if (random === void 0) random = null;
-        this[dartx.checkMutable]('shuffle');
-        if (random == null) random = math.Random.new();
-        let length = this[dartx.length];
-        while (dart.notNull(length) > 1) {
-          let pos = random.nextInt(length);
-          length = dart.notNull(length) - 1;
-          let tmp = this[dartx._get](length);
-          this[dartx._set](length, this[dartx._get](pos));
-          this[dartx._set](pos, tmp);
-        }
-      }
-      [dartx.indexOf](element, start) {
-        if (start === void 0) start = 0;
-        if (dart.notNull(start) >= dart.notNull(this[dartx.length])) {
-          return -1;
-        }
-        if (dart.notNull(start) < 0) {
-          start = 0;
-        }
-        for (let i = start; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
-          if (dart.equals(this[dartx._get](i), element)) {
-            return i;
-          }
-        }
-        return -1;
-      }
-      [dartx.lastIndexOf](element, startIndex) {
-        if (startIndex === void 0) startIndex = null;
-        if (startIndex == null) {
-          startIndex = dart.notNull(this[dartx.length]) - 1;
-        } else {
-          if (dart.notNull(startIndex) < 0) {
-            return -1;
-          }
-          if (dart.notNull(startIndex) >= dart.notNull(this[dartx.length])) {
-            startIndex = dart.notNull(this[dartx.length]) - 1;
-          }
-        }
-        for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
-          if (dart.equals(this[dartx._get](i), element)) {
-            return i;
-          }
-        }
-        return -1;
-      }
-      [dartx.contains](other) {
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          if (dart.equals(this[dartx._get](i), other)) return true;
-        }
-        return false;
-      }
-      get [dartx.isEmpty]() {
-        return this[dartx.length] == 0;
-      }
-      get [dartx.isNotEmpty]() {
-        return !dart.test(this[dartx.isEmpty]);
-      }
-      [dartx.toString]() {
-        return collection.ListBase.listToString(this);
-      }
-      [dartx.toList](opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let list = this.slice();
-        if (!dart.test(growable)) _interceptors.JSArray.markFixedList(core.List._check(list));
-        return JSArrayOfE().typed(list);
-      }
-      [dartx.toSet]() {
-        return SetOfE().from(this);
-      }
-      get [dartx.iterator]() {
-        return new (ArrayIteratorOfE())(this);
-      }
-      get [dartx.hashCode]() {
-        return _js_helper.Primitives.objectHashCode(this);
-      }
-      get [dartx.length]() {
-        return this.length;
-      }
-      set [dartx.length](newLength) {
-        this[dartx.checkGrowable]('set length');
-        if (!(typeof newLength == 'number')) {
-          dart.throw(new core.ArgumentError.value(newLength, 'newLength'));
-        }
-        if (dart.notNull(newLength) < 0) {
-          dart.throw(new core.RangeError.range(newLength, 0, null, 'newLength'));
-        }
-        this.length = newLength;
-      }
-      [dartx._get](index) {
-        if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-        if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
-        return this[index];
-      }
-      [dartx._set](index, value) {
-        E._check(value);
-        this[dartx.checkMutable]('indexed set');
-        if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-        if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
-        this[index] = value;
-        return value;
-      }
-      [dartx.asMap]() {
-        return new (ListMapViewOfE())(this);
-      }
     }
-    dart.setExtensionBaseClass(JSArray, dart.global.Array);
-    dart.addTypeTests(JSArray);
-    JSArray[dart.implements] = () => [ListOfE(), JSIndexableOfE()];
-    dart.setSignature(JSArray, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(_interceptors.JSArray$(E), []),
-        typed: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic]),
-        of: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic]),
-        markFixed: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic]),
-        markGrowable: dart.definiteFunctionType(_interceptors.JSArray$(E), [dart.dynamic])
-      }),
-      getters: () => ({
-        [dartx.first]: dart.definiteFunctionType(E, []),
-        [dartx.last]: dart.definiteFunctionType(E, []),
-        [dartx.single]: dart.definiteFunctionType(E, []),
-        [dartx.reversed]: dart.definiteFunctionType(core.Iterable$(E), []),
-        [dartx.isEmpty]: dart.definiteFunctionType(core.bool, []),
-        [dartx.isNotEmpty]: dart.definiteFunctionType(core.bool, []),
-        [dartx.iterator]: dart.definiteFunctionType(core.Iterator$(E), []),
-        [dartx.length]: dart.definiteFunctionType(core.int, [])
-      }),
-      setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-      methods: () => ({
-        [dartx.checkMutable]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-        [dartx.checkGrowable]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-        [dartx.add]: dart.definiteFunctionType(dart.void, [E]),
-        [dartx.removeAt]: dart.definiteFunctionType(E, [core.int]),
-        [dartx.insert]: dart.definiteFunctionType(dart.void, [core.int, E]),
-        [dartx.insertAll]: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        [dartx.setAll]: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        [dartx.removeLast]: dart.definiteFunctionType(E, []),
-        [dartx.remove]: dart.definiteFunctionType(core.bool, [core.Object]),
-        [dartx.removeWhere]: dart.definiteFunctionType(dart.void, [ETobool()]),
-        [dartx.retainWhere]: dart.definiteFunctionType(dart.void, [ETobool()]),
-        [_removeWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
-        [dartx.where]: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        [dartx.expand]: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
-        [dartx.addAll]: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-        [dartx.forEach]: dart.definiteFunctionType(dart.void, [ETovoid()]),
-        [dartx.map]: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
-        [dartx.join]: dart.definiteFunctionType(core.String, [], [core.String]),
-        [dartx.take]: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        [dartx.takeWhile]: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        [dartx.skip]: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        [dartx.skipWhile]: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        [dartx.reduce]: dart.definiteFunctionType(E, [EAndEToE()]),
-        [dartx.fold]: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
-        [dartx.firstWhere]: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        [dartx.lastWhere]: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        [dartx.singleWhere]: dart.definiteFunctionType(E, [ETobool()]),
-        [dartx.elementAt]: dart.definiteFunctionType(E, [core.int]),
-        [dartx.sublist]: dart.definiteFunctionType(core.List$(E), [core.int], [core.int]),
-        [dartx.getRange]: dart.definiteFunctionType(core.Iterable$(E), [core.int, core.int]),
-        [dartx.removeRange]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-        [dartx.setRange]: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
-        [dartx.fillRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [E]),
-        [dartx.replaceRange]: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
-        [dartx.any]: dart.definiteFunctionType(core.bool, [ETobool()]),
-        [dartx.every]: dart.definiteFunctionType(core.bool, [ETobool()]),
-        [dartx.sort]: dart.definiteFunctionType(dart.void, [], [EAndEToint()]),
-        [dartx.shuffle]: dart.definiteFunctionType(dart.void, [], [math.Random]),
-        [dartx.indexOf]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-        [dartx.lastIndexOf]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-        [dartx.contains]: dart.definiteFunctionType(core.bool, [core.Object]),
-        [dartx.toList]: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
-        [dartx.toSet]: dart.definiteFunctionType(core.Set$(E), []),
-        [dartx._get]: dart.definiteFunctionType(E, [core.int]),
-        [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, E]),
-        [dartx.asMap]: dart.definiteFunctionType(core.Map$(core.int, E), [])
-      }),
-      statics: () => ({
-        markFixedList: dart.definiteFunctionType(core.List, [core.List]),
-        markUnmodifiableList: dart.definiteFunctionType(core.List, [core.List])
-      }),
-      names: ['markFixedList', 'markUnmodifiableList']
-    });
-    return JSArray;
-  });
-  _interceptors.JSArray = JSArray();
-  dart.registerExtension(dart.global.Array, _interceptors.JSArray);
-  _interceptors.JSMutableArray$ = dart.generic(E => {
-    class JSMutableArray extends _interceptors.JSArray$(E) {
-      new() {
-        super.new();
-      }
-    }
-    return JSMutableArray;
-  });
-  _interceptors.JSMutableArray = JSMutableArray();
-  _interceptors.JSFixedArray$ = dart.generic(E => {
-    class JSFixedArray extends _interceptors.JSMutableArray$(E) {
-      new() {
-        super.new();
-      }
-    }
-    return JSFixedArray;
-  });
-  _interceptors.JSFixedArray = JSFixedArray();
-  _interceptors.JSExtendableArray$ = dart.generic(E => {
-    class JSExtendableArray extends _interceptors.JSMutableArray$(E) {
-      new() {
-        super.new();
-      }
-    }
-    return JSExtendableArray;
-  });
-  _interceptors.JSExtendableArray = JSExtendableArray();
-  _interceptors.JSUnmodifiableArray$ = dart.generic(E => {
-    class JSUnmodifiableArray extends _interceptors.JSArray$(E) {
-      new() {
-        super.new();
-      }
-    }
-    return JSUnmodifiableArray;
-  });
-  _interceptors.JSUnmodifiableArray = JSUnmodifiableArray();
-  const _iterable = Symbol('_iterable');
-  const _length = Symbol('_length');
-  const _index = Symbol('_index');
-  const _current = Symbol('_current');
-  _interceptors.ArrayIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
-    class ArrayIterator extends core.Object {
-      new(iterable) {
-        this[_iterable] = iterable;
-        this[_length] = iterable[dartx.length];
-        this[_index] = 0;
-        this[_current] = null;
-      }
-      get current() {
-        return this[_current];
-      }
-      moveNext() {
-        let length = this[_iterable][dartx.length];
-        if (this[_length] != length) {
-          dart.throw(_js_helper.throwConcurrentModificationError(this[_iterable]));
-        }
-        if (dart.notNull(this[_index]) >= dart.notNull(length)) {
-          this[_current] = null;
-          return false;
-        }
-        this[_current] = this[_iterable][dartx._get](this[_index]);
-        this[_index] = dart.notNull(this[_index]) + 1;
-        return true;
-      }
-    }
-    dart.addTypeTests(ArrayIterator);
-    ArrayIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(ArrayIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_interceptors.ArrayIterator$(E), [JSArrayOfE()])}),
-      fields: () => ({
-        [_iterable]: JSArrayOfE(),
-        [_length]: core.int,
-        [_index]: core.int,
-        [_current]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return ArrayIterator;
-  });
-  _interceptors.ArrayIterator = ArrayIterator();
-  const _isInt32 = Symbol('_isInt32');
-  const _tdivSlow = Symbol('_tdivSlow');
-  const _shlPositive = Symbol('_shlPositive');
-  const _shrOtherPositive = Symbol('_shrOtherPositive');
-  const _shrBothPositive = Symbol('_shrBothPositive');
-  dart.defineExtensionNames([
-    'compareTo',
-    'isNegative',
-    'isNaN',
-    'isInfinite',
-    'isFinite',
-    'remainder',
-    'abs',
-    'sign',
-    'toInt',
-    'truncate',
-    'ceil',
-    'floor',
-    'round',
-    'ceilToDouble',
-    'floorToDouble',
-    'roundToDouble',
-    'truncateToDouble',
-    'clamp',
-    'toDouble',
-    'toStringAsFixed',
-    'toStringAsExponential',
-    'toStringAsPrecision',
-    'toRadixString',
-    'toString',
-    'hashCode',
-    '_negate',
-    '+',
-    '-',
-    '/',
-    '*',
-    '%',
-    '~/',
-    '<<',
-    '>>',
-    '&',
-    '|',
-    '^',
-    '<',
-    '>',
-    '<=',
-    '>=',
-    'isEven',
-    'isOdd',
-    'toUnsigned',
-    'toSigned',
-    'bitLength',
-    'modPow',
-    'modInverse',
-    'gcd',
-    '~'
-  ]);
-  _interceptors.JSNumber = class JSNumber extends _interceptors.Interceptor {
-    new() {
-      super.new();
-    }
-    [dartx.compareTo](b) {
-      if (this < dart.notNull(b)) {
-        return -1;
-      } else if (this > dart.notNull(b)) {
-        return 1;
-      } else if (this == b) {
-        if (this == 0) {
-          let bIsNegative = b[dartx.isNegative];
-          if (this[dartx.isNegative] == bIsNegative) return 0;
-          if (dart.test(this[dartx.isNegative])) return -1;
-          return 1;
-        }
-        return 0;
-      } else if (dart.test(this[dartx.isNaN])) {
-        if (dart.test(b[dartx.isNaN])) {
-          return 0;
-        }
-        return 1;
-      } else {
-        return -1;
-      }
-    }
-    get [dartx.isNegative]() {
-      return this == 0 ? 1 / this < 0 : this < 0;
-    }
-    get [dartx.isNaN]() {
-      return isNaN(this);
-    }
-    get [dartx.isInfinite]() {
-      return this == 1 / 0 || this == -1 / 0;
-    }
-    get [dartx.isFinite]() {
-      return isFinite(this);
-    }
-    [dartx.remainder](b) {
-      if (!(typeof b == 'number')) dart.throw(_js_helper.argumentErrorValue(b));
-      return this % b;
-    }
-    [dartx.abs]() {
-      return Math.abs(this);
-    }
-    get [dartx.sign]() {
-      return this > 0 ? 1 : this < 0 ? -1 : this;
-    }
-    [dartx.toInt]() {
-      if (this >= _interceptors.JSNumber._MIN_INT32 && this <= _interceptors.JSNumber._MAX_INT32) {
-        return this | 0;
-      }
-      if (isFinite(this)) {
-        return this[dartx.truncateToDouble]() + 0;
-      }
-      dart.throw(new core.UnsupportedError("" + this));
-    }
-    [dartx.truncate]() {
-      return this[dartx.toInt]();
-    }
-    [dartx.ceil]() {
-      return this[dartx.ceilToDouble]()[dartx.toInt]();
-    }
-    [dartx.floor]() {
-      return this[dartx.floorToDouble]()[dartx.toInt]();
-    }
-    [dartx.round]() {
-      if (this > 0) {
-        if (this !== 1 / 0) {
-          return Math.round(this);
-        }
-      } else if (this > -1 / 0) {
-        return 0 - Math.round(0 - this);
-      }
-      dart.throw(new core.UnsupportedError("" + this));
-    }
-    [dartx.ceilToDouble]() {
-      return Math.ceil(this);
-    }
-    [dartx.floorToDouble]() {
-      return Math.floor(this);
-    }
-    [dartx.roundToDouble]() {
-      if (this < 0) {
-        return -Math.round(-this);
-      } else {
-        return Math.round(this);
-      }
-    }
-    [dartx.truncateToDouble]() {
-      return this < 0 ? this[dartx.ceilToDouble]() : this[dartx.floorToDouble]();
-    }
-    [dartx.clamp](lowerLimit, upperLimit) {
-      if (dart.notNull(lowerLimit[dartx.compareTo](upperLimit)) > 0) {
-        dart.throw(_js_helper.argumentErrorValue(lowerLimit));
-      }
-      if (dart.notNull(this[dartx.compareTo](lowerLimit)) < 0) return lowerLimit;
-      if (dart.notNull(this[dartx.compareTo](upperLimit)) > 0) return upperLimit;
-      return this;
-    }
-    [dartx.toDouble]() {
-      return this;
-    }
-    [dartx.toStringAsFixed](fractionDigits) {
-      _js_helper.checkInt(fractionDigits);
-      if (dart.notNull(fractionDigits) < 0 || dart.notNull(fractionDigits) > 20) {
-        dart.throw(new core.RangeError.range(fractionDigits, 0, 20, "fractionDigits"));
-      }
-      let result = this.toFixed(fractionDigits);
-      if (this == 0 && dart.test(this[dartx.isNegative])) return dart.str`-${result}`;
-      return result;
-    }
-    [dartx.toStringAsExponential](fractionDigits) {
-      if (fractionDigits === void 0) fractionDigits = null;
-      let result = null;
-      if (fractionDigits != null) {
-        _js_helper.checkInt(fractionDigits);
-        if (dart.notNull(fractionDigits) < 0 || dart.notNull(fractionDigits) > 20) {
-          dart.throw(new core.RangeError.range(fractionDigits, 0, 20, "fractionDigits"));
-        }
-        result = this.toExponential(fractionDigits);
-      } else {
-        result = this.toExponential();
-      }
-      if (this == 0 && dart.test(this[dartx.isNegative])) return dart.str`-${result}`;
-      return result;
-    }
-    [dartx.toStringAsPrecision](precision) {
-      _js_helper.checkInt(precision);
-      if (dart.notNull(precision) < 1 || dart.notNull(precision) > 21) {
-        dart.throw(new core.RangeError.range(precision, 1, 21, "precision"));
-      }
-      let result = this.toPrecision(precision);
-      if (this == 0 && dart.test(this[dartx.isNegative])) return dart.str`-${result}`;
-      return result;
-    }
-    [dartx.toRadixString](radix) {
-      _js_helper.checkInt(radix);
-      if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
-        dart.throw(new core.RangeError.range(radix, 2, 36, "radix"));
-      }
-      let result = this.toString(radix);
-      let rightParenCode = 41;
-      if (result[dartx.codeUnitAt](dart.notNull(result[dartx.length]) - 1) != rightParenCode) {
-        return result;
-      }
-      return _interceptors.JSNumber._handleIEtoString(result);
-    }
-    static _handleIEtoString(result) {
-      let match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result);
-      if (match == null) {
-        dart.throw(new core.UnsupportedError(dart.str`Unexpected toString result: ${result}`));
-      }
-      result = dart.dindex(match, 1);
-      let exponent = +dart.dindex(match, 3);
-      if (dart.dindex(match, 2) != null) {
-        result = result + dart.dindex(match, 2);
-        exponent = exponent - dart.dindex(match, 2).length;
-      }
-      return dart.notNull(result) + "0"[dartx['*']](exponent);
-    }
-    [dartx.toString]() {
-      if (this == 0 && 1 / this < 0) {
-        return '-0.0';
-      } else {
-        return "" + this;
-      }
-    }
-    get [dartx.hashCode]() {
-      return this & 0x1FFFFFFF;
-    }
-    [dartx._negate]() {
-      return -this;
-    }
-    [dartx['+']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this + other;
-    }
-    [dartx['-']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this - other;
-    }
-    [dartx['/']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this / other;
-    }
-    [dartx['*']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this * other;
-    }
-    [dartx['%']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      let result = this % other;
-      if (result == 0) return 0;
-      if (result > 0) return result;
-      if (other < 0) {
-        return result - other;
-      } else {
-        return result + other;
-      }
-    }
-    [_isInt32](value) {
-      return (value | 0) === value;
-    }
-    [dartx['~/']](other) {
-      if (dart.test(this[_isInt32](this)) && dart.test(this[_isInt32](other)) && 0 != other && -1 != other) {
-        return this / other | 0;
-      } else {
-        return this[_tdivSlow](other);
-      }
-    }
-    [_tdivSlow](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return (this / other)[dartx.toInt]();
-    }
-    [dartx['<<']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      if (other < 0) dart.throw(_js_helper.argumentErrorValue(other));
-      return this[_shlPositive](other);
-    }
-    [_shlPositive](other) {
-      return other > 31 ? 0 : this << other >>> 0;
-    }
-    [dartx['>>']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      if (other < 0) dart.throw(_js_helper.argumentErrorValue(other));
-      return this[_shrOtherPositive](other);
-    }
-    [_shrOtherPositive](other) {
-      return this > 0 ? this[_shrBothPositive](other) : this >> (dart.notNull(other) > 31 ? 31 : other) >>> 0;
-    }
-    [_shrBothPositive](other) {
-      return other > 31 ? 0 : this >>> other;
-    }
-    [dartx['&']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return (this & other) >>> 0;
-    }
-    [dartx['|']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return (this | other) >>> 0;
-    }
-    [dartx['^']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return (this ^ other) >>> 0;
-    }
-    [dartx['<']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this < other;
-    }
-    [dartx['>']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this > other;
-    }
-    [dartx['<=']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this <= other;
-    }
-    [dartx['>=']](other) {
-      if (!(typeof other == 'number')) dart.throw(_js_helper.argumentErrorValue(other));
-      return this >= other;
-    }
-    get [dartx.isEven]() {
-      return (this & 1) == 0;
-    }
-    get [dartx.isOdd]() {
-      return (this & 1) == 1;
-    }
-    [dartx.toUnsigned](width) {
-      return (this & (1)[dartx['<<']](width) - 1) >>> 0;
-    }
-    [dartx.toSigned](width) {
-      let signMask = (1)[dartx['<<']](dart.notNull(width) - 1);
-      return ((this & signMask - 1) >>> 0) - ((this & signMask) >>> 0);
-    }
-    get [dartx.bitLength]() {
-      let nonneg = this < 0 ? -this - 1 : this;
-      if (nonneg >= 4294967296) {
-        nonneg = (nonneg / 4294967296)[dartx.truncate]();
-        return dart.notNull(_interceptors.JSNumber._bitCount(_interceptors.JSNumber._spread(nonneg))) + 32;
-      }
-      return _interceptors.JSNumber._bitCount(_interceptors.JSNumber._spread(nonneg));
-    }
-    [dartx.modPow](e, m) {
-      if (!(typeof e == 'number')) {
-        dart.throw(new core.ArgumentError.value(e, "exponent", "not an integer"));
-      }
-      if (!(typeof m == 'number')) {
-        dart.throw(new core.ArgumentError.value(m, "modulus", "not an integer"));
-      }
-      if (dart.notNull(e) < 0) dart.throw(new core.RangeError.range(e, 0, null, "exponent"));
-      if (dart.notNull(m) <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
-      if (e == 0) return 1;
-      let b = this;
-      if (dart.notNull(b) < 0 || dart.notNull(b) > dart.notNull(m)) {
-        b = b[dartx['%']](m);
-      }
-      let r = 1;
-      while (dart.notNull(e) > 0) {
-        if (dart.test(e[dartx.isOdd])) {
-          r = (r * dart.notNull(b))[dartx['%']](m);
-        }
-        e = (dart.notNull(e) / 2)[dartx.truncate]();
-        b = (dart.notNull(b) * dart.notNull(b))[dartx['%']](m);
-      }
-      return r;
-    }
-    static _binaryGcd(x, y, inv) {
-      let s = 1;
-      if (!dart.test(inv)) {
-        while (dart.test(x[dartx.isEven]) && dart.test(y[dartx.isEven])) {
-          x = (dart.notNull(x) / 2)[dartx.truncate]();
-          y = (dart.notNull(y) / 2)[dartx.truncate]();
-          s = s * 2;
-        }
-        if (dart.test(y[dartx.isOdd])) {
-          let t = x;
-          x = y;
-          y = t;
-        }
-      }
-      let ac = x[dartx.isEven];
-      let u = x;
-      let v = y;
-      let a = 1, b = 0, c = 0, d = 1;
-      do {
-        while (dart.test(u[dartx.isEven])) {
-          u = (dart.notNull(u) / 2)[dartx.truncate]();
-          if (dart.test(ac)) {
-            if (!dart.test(a[dartx.isEven]) || !dart.test(b[dartx.isEven])) {
-              a = dart.notNull(a) + dart.notNull(y);
-              b = dart.notNull(b) - dart.notNull(x);
-            }
-            a = (dart.notNull(a) / 2)[dartx.truncate]();
-          } else if (!dart.test(b[dartx.isEven])) {
-            b = dart.notNull(b) - dart.notNull(x);
-          }
-          b = (dart.notNull(b) / 2)[dartx.truncate]();
-        }
-        while (dart.test(v[dartx.isEven])) {
-          v = (dart.notNull(v) / 2)[dartx.truncate]();
-          if (dart.test(ac)) {
-            if (!dart.test(c[dartx.isEven]) || !dart.test(d[dartx.isEven])) {
-              c = dart.notNull(c) + dart.notNull(y);
-              d = dart.notNull(d) - dart.notNull(x);
-            }
-            c = (dart.notNull(c) / 2)[dartx.truncate]();
-          } else if (!dart.test(d[dartx.isEven])) {
-            d = dart.notNull(d) - dart.notNull(x);
-          }
-          d = (dart.notNull(d) / 2)[dartx.truncate]();
-        }
-        if (dart.notNull(u) >= dart.notNull(v)) {
-          u = dart.notNull(u) - dart.notNull(v);
-          if (dart.test(ac)) {
-            a = dart.notNull(a) - dart.notNull(c);
-          }
-          b = dart.notNull(b) - dart.notNull(d);
-        } else {
-          v = dart.notNull(v) - dart.notNull(u);
-          if (dart.test(ac)) {
-            c = dart.notNull(c) - dart.notNull(a);
-          }
-          d = dart.notNull(d) - dart.notNull(b);
-        }
-      } while (u != 0);
-      if (!dart.test(inv)) return s * dart.notNull(v);
-      if (v != 1) dart.throw(core.Exception.new("Not coprime"));
-      if (dart.notNull(d) < 0) {
-        d = dart.notNull(d) + dart.notNull(x);
-        if (dart.notNull(d) < 0) {
-          d = dart.notNull(d) + dart.notNull(x);
-        }
-      } else if (dart.notNull(d) > dart.notNull(x)) {
-        d = dart.notNull(d) - dart.notNull(x);
-        if (dart.notNull(d) > dart.notNull(x)) {
-          d = dart.notNull(d) - dart.notNull(x);
-        }
-      }
-      return d;
-    }
-    [dartx.modInverse](m) {
-      if (!(typeof m == 'number')) {
-        dart.throw(new core.ArgumentError.value(m, "modulus", "not an integer"));
-      }
-      if (dart.notNull(m) <= 0) dart.throw(new core.RangeError.range(m, 1, null, "modulus"));
-      if (m == 1) return 0;
-      let t = this;
-      if (dart.notNull(t) < 0 || dart.notNull(t) >= dart.notNull(m)) {
-        t = t[dartx['%']](m);
-      }
-      if (t == 1) return 1;
-      if (t == 0 || dart.test(t[dartx.isEven]) && dart.test(m[dartx.isEven])) {
-        dart.throw(core.Exception.new("Not coprime"));
-      }
-      return _interceptors.JSNumber._binaryGcd(m, t, true);
-    }
-    [dartx.gcd](other) {
-      if (!(typeof other == 'number')) {
-        dart.throw(new core.ArgumentError.value(other, "other", "not an integer"));
-      }
-      let x = this[dartx.abs]();
-      let y = other[dartx.abs]();
-      if (x == 0) return y;
-      if (y == 0) return x;
-      if (x == 1 || y == 1) return 1;
-      return _interceptors.JSNumber._binaryGcd(x, y, false);
-    }
-    static _bitCount(i) {
-      i = dart.notNull(_interceptors.JSNumber._shru(i, 0)) - (dart.notNull(_interceptors.JSNumber._shru(i, 1)) & 1431655765);
-      i = (dart.notNull(i) & 858993459) + (dart.notNull(_interceptors.JSNumber._shru(i, 2)) & 858993459);
-      i = 252645135 & dart.notNull(i) + dart.notNull(_interceptors.JSNumber._shru(i, 4));
-      i = dart.notNull(i) + dart.notNull(_interceptors.JSNumber._shru(i, 8));
-      i = dart.notNull(i) + dart.notNull(_interceptors.JSNumber._shru(i, 16));
-      return dart.notNull(i) & 63;
-    }
-    static _shru(value, shift) {
-      return value >>> shift;
-    }
-    static _shrs(value, shift) {
-      return value >> shift;
-    }
-    static _ors(a, b) {
-      return a | b;
-    }
-    static _spread(i) {
-      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 1));
-      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 2));
-      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 4));
-      i = _interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 8));
-      i = _interceptors.JSNumber._shru(_interceptors.JSNumber._ors(i, _interceptors.JSNumber._shrs(i, 16)), 0);
-      return i;
-    }
-    [dartx['~']]() {
-      return ~this >>> 0;
-    }
-  };
-  _interceptors.JSNumber[dart.implements] = () => [core.int, core.double];
-  dart.setSignature(_interceptors.JSNumber, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.JSNumber, [])}),
-    getters: () => ({
-      [dartx.isNegative]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isNaN]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isInfinite]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isFinite]: dart.definiteFunctionType(core.bool, []),
-      [dartx.sign]: dart.definiteFunctionType(_interceptors.JSNumber, []),
-      [dartx.isEven]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isOdd]: dart.definiteFunctionType(core.bool, []),
-      [dartx.bitLength]: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      [dartx.compareTo]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx.remainder]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
-      [dartx.abs]: dart.definiteFunctionType(_interceptors.JSNumber, []),
-      [dartx.toInt]: dart.definiteFunctionType(core.int, []),
-      [dartx.truncate]: dart.definiteFunctionType(core.int, []),
-      [dartx.ceil]: dart.definiteFunctionType(core.int, []),
-      [dartx.floor]: dart.definiteFunctionType(core.int, []),
-      [dartx.round]: dart.definiteFunctionType(core.int, []),
-      [dartx.ceilToDouble]: dart.definiteFunctionType(core.double, []),
-      [dartx.floorToDouble]: dart.definiteFunctionType(core.double, []),
-      [dartx.roundToDouble]: dart.definiteFunctionType(core.double, []),
-      [dartx.truncateToDouble]: dart.definiteFunctionType(core.double, []),
-      [dartx.clamp]: dart.definiteFunctionType(core.num, [core.num, core.num]),
-      [dartx.toDouble]: dart.definiteFunctionType(core.double, []),
-      [dartx.toStringAsFixed]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.toStringAsExponential]: dart.definiteFunctionType(core.String, [], [core.int]),
-      [dartx.toStringAsPrecision]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.toRadixString]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx._negate]: dart.definiteFunctionType(_interceptors.JSNumber, []),
-      [dartx['+']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
-      [dartx['-']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
-      [dartx['/']]: dart.definiteFunctionType(core.double, [core.num]),
-      [dartx['*']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
-      [dartx['%']]: dart.definiteFunctionType(_interceptors.JSNumber, [core.num]),
-      [_isInt32]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [dartx['~/']]: dart.definiteFunctionType(core.int, [core.num]),
-      [_tdivSlow]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx['<<']]: dart.definiteFunctionType(core.int, [core.num]),
-      [_shlPositive]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx['>>']]: dart.definiteFunctionType(core.int, [core.num]),
-      [_shrOtherPositive]: dart.definiteFunctionType(core.int, [core.num]),
-      [_shrBothPositive]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx['&']]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx['|']]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx['^']]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx['<']]: dart.definiteFunctionType(core.bool, [core.num]),
-      [dartx['>']]: dart.definiteFunctionType(core.bool, [core.num]),
-      [dartx['<=']]: dart.definiteFunctionType(core.bool, [core.num]),
-      [dartx['>=']]: dart.definiteFunctionType(core.bool, [core.num]),
-      [dartx.toUnsigned]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.toSigned]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.modPow]: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      [dartx.modInverse]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.gcd]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx['~']]: dart.definiteFunctionType(core.int, [])
-    }),
-    sfields: () => ({
-      _MIN_INT32: core.int,
-      _MAX_INT32: core.int
-    }),
-    statics: () => ({
-      _handleIEtoString: dart.definiteFunctionType(core.String, [core.String]),
-      _binaryGcd: dart.definiteFunctionType(core.int, [core.int, core.int, core.bool]),
-      _bitCount: dart.definiteFunctionType(core.int, [core.int]),
-      _shru: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      _shrs: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      _ors: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      _spread: dart.definiteFunctionType(core.int, [core.int])
-    }),
-    names: ['_handleIEtoString', '_binaryGcd', '_bitCount', '_shru', '_shrs', '_ors', '_spread']
-  });
-  _interceptors.JSNumber._MIN_INT32 = -2147483648;
-  _interceptors.JSNumber._MAX_INT32 = 2147483647;
-  dart.registerExtension(dart.global.Number, _interceptors.JSNumber);
-  const _defaultSplit = Symbol('_defaultSplit');
-  let const$;
-  dart.defineExtensionNames([
-    'codeUnitAt',
-    'allMatches',
-    'matchAsPrefix',
-    '+',
-    'endsWith',
-    'replaceAll',
-    'replaceAllMapped',
-    'splitMapJoin',
-    'replaceFirst',
-    'replaceFirstMapped',
-    'split',
-    'replaceRange',
-    'startsWith',
-    'substring',
-    'toLowerCase',
-    'toUpperCase',
-    'trim',
-    'trimLeft',
-    'trimRight',
-    '*',
-    'padLeft',
-    'padRight',
-    'codeUnits',
-    'runes',
-    'indexOf',
-    'lastIndexOf',
-    'contains',
-    'isEmpty',
-    'isNotEmpty',
-    'compareTo',
-    'toString',
-    'hashCode',
-    'runtimeType',
-    'length',
-    '_get'
-  ]);
-  _interceptors.JSString = class JSString extends _interceptors.Interceptor {
-    new() {
-      super.new();
-    }
-    [dartx.codeUnitAt](index) {
-      if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      if (dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      if (dart.notNull(index) >= dart.notNull(this[dartx.length])) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      return this.charCodeAt(index);
-    }
-    [dartx.allMatches](string, start) {
-      if (start === void 0) start = 0;
-      _js_helper.checkString(string);
-      _js_helper.checkInt(start);
-      if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(string[dartx.length])) {
-        dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
-      }
-      return _js_helper.allMatchesInStringUnchecked(this, string, start);
-    }
-    [dartx.matchAsPrefix](string, start) {
-      if (start === void 0) start = 0;
-      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[dartx.length])) {
-        dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
-      }
-      if (dart.notNull(start) + dart.notNull(this[dartx.length]) > dart.notNull(string[dartx.length])) return null;
-      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-        if (string[dartx.codeUnitAt](dart.notNull(start) + i) != this[dartx.codeUnitAt](i)) {
-          return null;
-        }
-      }
-      return new _js_helper.StringMatch(start, string, this);
-    }
-    [dartx['+']](other) {
-      if (!(typeof other == 'string')) dart.throw(new core.ArgumentError.value(other));
-      return this + other;
-    }
-    [dartx.endsWith](other) {
-      _js_helper.checkString(other);
-      let otherLength = other[dartx.length];
-      if (dart.notNull(otherLength) > dart.notNull(this[dartx.length])) return false;
-      return other == this[dartx.substring](dart.notNull(this[dartx.length]) - dart.notNull(otherLength));
-    }
-    [dartx.replaceAll](from, to) {
-      _js_helper.checkString(to);
-      return _js_helper.stringReplaceAllUnchecked(this, from, to);
-    }
-    [dartx.replaceAllMapped](from, convert) {
-      return this[dartx.splitMapJoin](from, {onMatch: convert});
-    }
-    [dartx.splitMapJoin](from, opts) {
-      let onMatch = opts && 'onMatch' in opts ? opts.onMatch : null;
-      let onNonMatch = opts && 'onNonMatch' in opts ? opts.onNonMatch : null;
-      return _js_helper.stringReplaceAllFuncUnchecked(this, from, onMatch, onNonMatch);
-    }
-    [dartx.replaceFirst](from, to, startIndex) {
-      if (startIndex === void 0) startIndex = 0;
-      _js_helper.checkString(to);
-      _js_helper.checkInt(startIndex);
-      core.RangeError.checkValueInInterval(startIndex, 0, this[dartx.length], "startIndex");
-      return _js_helper.stringReplaceFirstUnchecked(this, from, to, startIndex);
-    }
-    [dartx.replaceFirstMapped](from, replace, startIndex) {
-      if (startIndex === void 0) startIndex = 0;
-      _js_helper.checkNull(replace);
-      _js_helper.checkInt(startIndex);
-      core.RangeError.checkValueInInterval(startIndex, 0, this[dartx.length], "startIndex");
-      return _js_helper.stringReplaceFirstMappedUnchecked(this, from, replace, startIndex);
-    }
-    [dartx.split](pattern) {
-      _js_helper.checkNull(pattern);
-      if (typeof pattern == 'string') {
-        return this.split(pattern);
-      } else if (_js_helper.JSSyntaxRegExp.is(pattern) && _js_helper.regExpCaptureCount(pattern) == 0) {
-        let re = _js_helper.regExpGetNative(pattern);
-        return this.split(re);
-      } else {
-        return this[_defaultSplit](pattern);
-      }
-    }
-    [dartx.replaceRange](start, end, replacement) {
-      _js_helper.checkString(replacement);
-      _js_helper.checkInt(start);
-      end = core.RangeError.checkValidRange(start, end, this[dartx.length]);
-      _js_helper.checkInt(end);
-      return _js_helper.stringReplaceRangeUnchecked(this, start, end, replacement);
-    }
-    [_defaultSplit](pattern) {
-      let result = JSArrayOfString().of([]);
-      let start = 0;
-      let length = 1;
-      for (let match of pattern[dartx.allMatches](this)) {
-        let matchStart = match.start;
-        let matchEnd = match.end;
-        length = dart.notNull(matchEnd) - dart.notNull(matchStart);
-        if (length == 0 && start == matchStart) {
-          continue;
-        }
-        let end = matchStart;
-        result[dartx.add](this[dartx.substring](start, end));
-        start = matchEnd;
-      }
-      if (dart.notNull(start) < dart.notNull(this[dartx.length]) || length > 0) {
-        result[dartx.add](this[dartx.substring](start));
-      }
-      return result;
-    }
-    [dartx.startsWith](pattern, index) {
-      if (index === void 0) index = 0;
-      _js_helper.checkInt(index);
-      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[dartx.length])) {
-        dart.throw(new core.RangeError.range(index, 0, this[dartx.length]));
-      }
-      if (typeof pattern == 'string') {
-        let other = pattern;
-        let otherLength = other[dartx.length];
-        let endIndex = dart.notNull(index) + dart.notNull(otherLength);
-        if (endIndex > dart.notNull(this[dartx.length])) return false;
-        return other == this.substring(index, endIndex);
-      }
-      return pattern[dartx.matchAsPrefix](this, index) != null;
-    }
-    [dartx.substring](startIndex, endIndex) {
-      if (endIndex === void 0) endIndex = null;
-      _js_helper.checkInt(startIndex);
-      if (endIndex == null) endIndex = this[dartx.length];
-      _js_helper.checkInt(endIndex);
-      if (dart.notNull(startIndex) < 0) dart.throw(new core.RangeError.value(startIndex));
-      if (dart.notNull(startIndex) > dart.notNull(endIndex)) dart.throw(new core.RangeError.value(startIndex));
-      if (dart.notNull(endIndex) > dart.notNull(this[dartx.length])) dart.throw(new core.RangeError.value(endIndex));
-      return this.substring(startIndex, endIndex);
-    }
-    [dartx.toLowerCase]() {
-      return this.toLowerCase();
-    }
-    [dartx.toUpperCase]() {
-      return this.toUpperCase();
-    }
-    static _isWhitespace(codeUnit) {
-      if (dart.notNull(codeUnit) < 256) {
-        switch (codeUnit) {
-          case 9:
-          case 10:
-          case 11:
-          case 12:
-          case 13:
-          case 32:
-          case 133:
-          case 160:
-          {
-            return true;
-          }
-          default:
-          {
-            return false;
-          }
-        }
-      }
-      switch (codeUnit) {
-        case 5760:
-        case 6158:
-        case 8192:
-        case 8193:
-        case 8194:
-        case 8195:
-        case 8196:
-        case 8197:
-        case 8198:
-        case 8199:
-        case 8200:
-        case 8201:
-        case 8202:
-        case 8232:
-        case 8233:
-        case 8239:
-        case 8287:
-        case 12288:
-        case 65279:
-        {
-          return true;
-        }
-        default:
-        {
-          return false;
-        }
-      }
-    }
-    static _skipLeadingWhitespace(string, index) {
-      let SPACE = 32;
-      let CARRIAGE_RETURN = 13;
-      while (dart.notNull(index) < dart.notNull(string[dartx.length])) {
-        let codeUnit = string[dartx.codeUnitAt](index);
-        if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.test(_interceptors.JSString._isWhitespace(codeUnit))) {
-          break;
-        }
-        index = dart.notNull(index) + 1;
-      }
-      return index;
-    }
-    static _skipTrailingWhitespace(string, index) {
-      let SPACE = 32;
-      let CARRIAGE_RETURN = 13;
-      while (dart.notNull(index) > 0) {
-        let codeUnit = string[dartx.codeUnitAt](dart.notNull(index) - 1);
-        if (codeUnit != SPACE && codeUnit != CARRIAGE_RETURN && !dart.test(_interceptors.JSString._isWhitespace(codeUnit))) {
-          break;
-        }
-        index = dart.notNull(index) - 1;
-      }
-      return index;
-    }
-    [dartx.trim]() {
-      let NEL = 133;
-      let result = this.trim();
-      if (result[dartx.length] == 0) return result;
-      let firstCode = result[dartx.codeUnitAt](0);
-      let startIndex = 0;
-      if (firstCode == NEL) {
-        startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
-        if (startIndex == result[dartx.length]) return "";
-      }
-      let endIndex = result[dartx.length];
-      let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1);
-      if (lastCode == NEL) {
-        endIndex = _interceptors.JSString._skipTrailingWhitespace(result, dart.notNull(endIndex) - 1);
-      }
-      if (startIndex == 0 && endIndex == result[dartx.length]) return result;
-      return result.substring(startIndex, endIndex);
-    }
-    [dartx.trimLeft]() {
-      let NEL = 133;
-      let result = null;
-      let startIndex = 0;
-      if (typeof this.trimLeft != "undefined") {
-        result = this.trimLeft();
-        if (result[dartx.length] == 0) return result;
-        let firstCode = result[dartx.codeUnitAt](0);
-        if (firstCode == NEL) {
-          startIndex = _interceptors.JSString._skipLeadingWhitespace(result, 1);
-        }
-      } else {
-        result = this;
-        startIndex = _interceptors.JSString._skipLeadingWhitespace(this, 0);
-      }
-      if (startIndex == 0) return result;
-      if (startIndex == result[dartx.length]) return "";
-      return result.substring(startIndex);
-    }
-    [dartx.trimRight]() {
-      let NEL = 133;
-      let result = null;
-      let endIndex = null;
-      if (typeof this.trimRight != "undefined") {
-        result = this.trimRight();
-        endIndex = result[dartx.length];
-        if (endIndex == 0) return result;
-        let lastCode = result[dartx.codeUnitAt](dart.notNull(endIndex) - 1);
-        if (lastCode == NEL) {
-          endIndex = _interceptors.JSString._skipTrailingWhitespace(result, dart.notNull(endIndex) - 1);
-        }
-      } else {
-        result = this;
-        endIndex = _interceptors.JSString._skipTrailingWhitespace(this, this[dartx.length]);
-      }
-      if (endIndex == result[dartx.length]) return result;
-      if (endIndex == 0) return "";
-      return result.substring(0, endIndex);
-    }
-    [dartx['*']](times) {
-      if (0 >= dart.notNull(times)) return '';
-      if (times == 1 || this[dartx.length] == 0) return this;
-      if (times != times >>> 0) {
-        dart.throw(const$ || (const$ = dart.const(new core.OutOfMemoryError())));
-      }
-      let result = '';
-      let s = this;
-      while (true) {
-        if ((dart.notNull(times) & 1) == 1) result = s + result;
-        times = times >>> 1;
-        if (times == 0) break;
-        s = s + s;
-      }
-      return result;
-    }
-    [dartx.padLeft](width, padding) {
-      if (padding === void 0) padding = ' ';
-      let delta = dart.notNull(width) - dart.notNull(this[dartx.length]);
-      if (delta <= 0) return this;
-      return padding[dartx['*']](delta) + this;
-    }
-    [dartx.padRight](width, padding) {
-      if (padding === void 0) padding = ' ';
-      let delta = dart.notNull(width) - dart.notNull(this[dartx.length]);
-      if (delta <= 0) return this;
-      return this[dartx['+']](padding[dartx['*']](delta));
-    }
-    get [dartx.codeUnits]() {
-      return new _internal.CodeUnits(this);
-    }
-    get [dartx.runes]() {
-      return new core.Runes(this);
-    }
-    [dartx.indexOf](pattern, start) {
-      if (start === void 0) start = 0;
-      _js_helper.checkNull(pattern);
-      if (!(typeof start == 'number')) dart.throw(_js_helper.argumentErrorValue(start));
-      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dartx.length])) {
-        dart.throw(new core.RangeError.range(start, 0, this[dartx.length]));
-      }
-      if (typeof pattern == 'string') {
-        return _js_helper.stringIndexOfStringUnchecked(this, pattern, start);
-      }
-      if (_js_helper.JSSyntaxRegExp.is(pattern)) {
-        let re = pattern;
-        let match = _js_helper.firstMatchAfter(re, this, start);
-        return match == null ? -1 : match.start;
-      }
-      for (let i = start; dart.notNull(i) <= dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
-        if (pattern[dartx.matchAsPrefix](this, i) != null) return i;
-      }
-      return -1;
-    }
-    [dartx.lastIndexOf](pattern, start) {
-      if (start === void 0) start = null;
-      _js_helper.checkNull(pattern);
-      if (start == null) {
-        start = this[dartx.length];
-      } else if (!(typeof start == 'number')) {
-        dart.throw(_js_helper.argumentErrorValue(start));
-      } else if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(this[dartx.length])) {
-        dart.throw(new core.RangeError.range(start, 0, this[dartx.length]));
-      }
-      if (typeof pattern == 'string') {
-        let other = pattern;
-        if (dart.notNull(start) + dart.notNull(other[dartx.length]) > dart.notNull(this[dartx.length])) {
-          start = dart.notNull(this[dartx.length]) - dart.notNull(other[dartx.length]);
-        }
-        return core.int._check(_js_helper.stringLastIndexOfUnchecked(this, other, start));
-      }
-      for (let i = start; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
-        if (pattern[dartx.matchAsPrefix](this, i) != null) return i;
-      }
-      return -1;
-    }
-    [dartx.contains](other, startIndex) {
-      if (startIndex === void 0) startIndex = 0;
-      _js_helper.checkNull(other);
-      if (dart.notNull(startIndex) < 0 || dart.notNull(startIndex) > dart.notNull(this[dartx.length])) {
-        dart.throw(new core.RangeError.range(startIndex, 0, this[dartx.length]));
-      }
-      return _js_helper.stringContainsUnchecked(this, other, startIndex);
-    }
-    get [dartx.isEmpty]() {
-      return this[dartx.length] == 0;
-    }
-    get [dartx.isNotEmpty]() {
-      return !dart.test(this[dartx.isEmpty]);
-    }
-    [dartx.compareTo](other) {
-      if (!(typeof other == 'string')) dart.throw(_js_helper.argumentErrorValue(other));
-      return dart.equals(this, other) ? 0 : this < other ? -1 : 1;
-    }
-    [dartx.toString]() {
-      return this;
-    }
-    get [dartx.hashCode]() {
-      let hash = 0;
-      for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-        hash = 536870911 & hash + this.charCodeAt(i);
-        hash = 536870911 & hash + ((524287 & hash) << 10);
-        hash = hash ^ hash >> 6;
-      }
-      hash = 536870911 & hash + ((67108863 & hash) << 3);
-      hash = hash ^ hash >> 11;
-      return 536870911 & hash + ((16383 & hash) << 15);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(core.String);
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (!(typeof index == 'number')) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      if (dart.notNull(index) >= dart.notNull(this[dartx.length]) || dart.notNull(index) < 0) dart.throw(_js_helper.diagnoseIndexError(this, index));
-      return this[index];
-    }
-  };
-  _interceptors.JSString[dart.implements] = () => [core.String, JSIndexableOfString()];
-  dart.setSignature(_interceptors.JSString, {
-    constructors: () => ({new: dart.definiteFunctionType(_interceptors.JSString, [])}),
-    getters: () => ({
-      [dartx.codeUnits]: dart.definiteFunctionType(core.List$(core.int), []),
-      [dartx.runes]: dart.definiteFunctionType(core.Runes, []),
-      [dartx.isEmpty]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isNotEmpty]: dart.definiteFunctionType(core.bool, []),
-      [dartx.length]: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      [dartx.codeUnitAt]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.allMatches]: dart.definiteFunctionType(core.Iterable$(core.Match), [core.String], [core.int]),
-      [dartx.matchAsPrefix]: dart.definiteFunctionType(core.Match, [core.String], [core.int]),
-      [dartx['+']]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.endsWith]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.replaceAll]: dart.definiteFunctionType(core.String, [core.Pattern, core.String]),
-      [dartx.replaceAllMapped]: dart.definiteFunctionType(core.String, [core.Pattern, MatchToString()]),
-      [dartx.splitMapJoin]: dart.definiteFunctionType(core.String, [core.Pattern], {onMatch: MatchToString(), onNonMatch: StringToString()}),
-      [dartx.replaceFirst]: dart.definiteFunctionType(core.String, [core.Pattern, core.String], [core.int]),
-      [dartx.replaceFirstMapped]: dart.definiteFunctionType(core.String, [core.Pattern, MatchToString()], [core.int]),
-      [dartx.split]: dart.definiteFunctionType(core.List$(core.String), [core.Pattern]),
-      [dartx.replaceRange]: dart.definiteFunctionType(core.String, [core.int, core.int, core.String]),
-      [_defaultSplit]: dart.definiteFunctionType(core.List$(core.String), [core.Pattern]),
-      [dartx.startsWith]: dart.definiteFunctionType(core.bool, [core.Pattern], [core.int]),
-      [dartx.substring]: dart.definiteFunctionType(core.String, [core.int], [core.int]),
-      [dartx.toLowerCase]: dart.definiteFunctionType(core.String, []),
-      [dartx.toUpperCase]: dart.definiteFunctionType(core.String, []),
-      [dartx.trim]: dart.definiteFunctionType(core.String, []),
-      [dartx.trimLeft]: dart.definiteFunctionType(core.String, []),
-      [dartx.trimRight]: dart.definiteFunctionType(core.String, []),
-      [dartx['*']]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.padLeft]: dart.definiteFunctionType(core.String, [core.int], [core.String]),
-      [dartx.padRight]: dart.definiteFunctionType(core.String, [core.int], [core.String]),
-      [dartx.indexOf]: dart.definiteFunctionType(core.int, [core.Pattern], [core.int]),
-      [dartx.lastIndexOf]: dart.definiteFunctionType(core.int, [core.Pattern], [core.int]),
-      [dartx.contains]: dart.definiteFunctionType(core.bool, [core.Pattern], [core.int]),
-      [dartx.compareTo]: dart.definiteFunctionType(core.int, [core.String]),
-      [dartx._get]: dart.definiteFunctionType(core.String, [core.int])
-    }),
-    statics: () => ({
-      _isWhitespace: dart.definiteFunctionType(core.bool, [core.int]),
-      _skipLeadingWhitespace: dart.definiteFunctionType(core.int, [core.String, core.int]),
-      _skipTrailingWhitespace: dart.definiteFunctionType(core.int, [core.String, core.int])
-    }),
-    names: ['_isWhitespace', '_skipLeadingWhitespace', '_skipTrailingWhitespace']
-  });
-  dart.registerExtension(dart.global.String, _interceptors.JSString);
-  core.num = class num extends core.Object {
-    static parse(input, onError) {
-      if (onError === void 0) onError = null;
-      let source = input[dartx.trim]();
-      let result = core.int.parse(source, {onError: core.num._returnIntNull});
-      if (result != null) return result;
-      result = core.double.parse(source, core.num._returnDoubleNull);
-      if (result != null) return result;
-      if (onError == null) dart.throw(new core.FormatException(input));
-      return onError(input);
-    }
-    static _returnIntNull(_) {
-      return null;
-    }
-    static _returnDoubleNull(_) {
-      return null;
-    }
-  };
-  core.num.is = function is_num(o) {
-    return typeof o == "number";
-  };
-  core.num.as = function as_num(o) {
-    if (typeof o == "number" || o == null) return o;
-    return dart.as(o, core.num);
-  };
-  core.num._check = function check_num(o) {
-    if (typeof o == "number" || o == null) return o;
-    return dart.check(o, core.num);
-  };
-  core.num[dart.implements] = () => [ComparableOfnum()];
-  dart.setSignature(core.num, {
-    statics: () => ({
-      parse: dart.definiteFunctionType(core.num, [core.String], [StringTonum()]),
-      _returnIntNull: dart.definiteFunctionType(core.int, [core.String]),
-      _returnDoubleNull: dart.definiteFunctionType(core.double, [core.String])
-    }),
-    names: ['parse', '_returnIntNull', '_returnDoubleNull']
-  });
-  core.double = class double extends core.num {
-    static parse(source, onError) {
-      if (onError === void 0) onError = null;
-      return _js_helper.Primitives.parseDouble(source, onError);
-    }
-  };
-  dart.setSignature(core.double, {
-    sfields: () => ({
-      NAN: core.double,
-      INFINITY: core.double,
-      NEGATIVE_INFINITY: core.double,
-      MIN_POSITIVE: core.double,
-      MAX_FINITE: core.double
-    }),
-    statics: () => ({parse: dart.definiteFunctionType(core.double, [core.String], [StringTodouble()])}),
-    names: ['parse']
-  });
-  core.double.NAN = 0.0 / 0.0;
-  core.double.INFINITY = 1.0 / 0.0;
-  core.double.MIN_POSITIVE = 5e-324;
-  core.double.MAX_FINITE = 1.7976931348623157e+308;
-  dart.defineLazy(core.double, {
-    get NEGATIVE_INFINITY() {
-      return -core.double.INFINITY;
-    }
-  });
-  _internal.POWERS_OF_TEN = dart.constList([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0, 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000000000000000.0, 100000000000000000.0, 1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0, 1e+21, 1e+22], core.double);
-  const _string = Symbol('_string');
-  const _filter = Symbol('_filter');
-  collection.ListMixin$ = dart.generic(E => {
-    let ListIteratorOfE = () => (ListIteratorOfE = dart.constFn(_internal.ListIterator$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
-    let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
-    let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
-    let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
-    let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
-    let ListMapViewOfE = () => (ListMapViewOfE = dart.constFn(_internal.ListMapView$(E)))();
-    let ReversedListIterableOfE = () => (ReversedListIterableOfE = dart.constFn(_internal.ReversedListIterable$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
-    dart.defineExtensionNames([
-      'iterator',
-      'elementAt',
-      'forEach',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'last',
-      'single',
-      'contains',
-      'every',
-      'any',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'join',
-      'where',
-      'map',
-      'expand',
-      'reduce',
-      'fold',
-      'skip',
-      'skipWhile',
-      'take',
-      'takeWhile',
-      'toList',
-      'toSet',
-      'add',
-      'addAll',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'clear',
-      'removeLast',
-      'sort',
-      'shuffle',
-      'asMap',
-      'sublist',
-      'getRange',
-      'removeRange',
-      'fillRange',
-      'setRange',
-      'replaceRange',
-      'indexOf',
-      'lastIndexOf',
-      'insert',
-      'removeAt',
-      'insertAll',
-      'setAll',
-      'reversed',
-      'toString'
-    ]);
-    class ListMixin extends core.Object {
-      get iterator() {
-        return new (ListIteratorOfE())(this);
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this[dartx.iterator]);
-      }
-      elementAt(index) {
-        return this[dartx._get](index);
-      }
-      forEach(action) {
-        let length = this[dartx.length];
-        for (let i = 0; i < dart.notNull(length); i++) {
-          action(this[dartx._get](i));
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-      }
-      get isEmpty() {
-        return this[dartx.length] == 0;
-      }
-      get isNotEmpty() {
-        return !dart.test(this[dartx.isEmpty]);
-      }
-      get first() {
-        if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
-        return this[dartx._get](0);
-      }
-      get last() {
-        if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
-        return this[dartx._get](dart.notNull(this[dartx.length]) - 1);
-      }
-      get single() {
-        if (this[dartx.length] == 0) dart.throw(_internal.IterableElementError.noElement());
-        if (dart.notNull(this[dartx.length]) > 1) dart.throw(_internal.IterableElementError.tooMany());
-        return this[dartx._get](0);
-      }
-      contains(element) {
-        let length = this[dartx.length];
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          if (dart.equals(this[dartx._get](i), element)) return true;
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return false;
-      }
-      every(test) {
-        let length = this[dartx.length];
-        for (let i = 0; i < dart.notNull(length); i++) {
-          if (!dart.test(test(this[dartx._get](i)))) return false;
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return true;
-      }
-      any(test) {
-        let length = this[dartx.length];
-        for (let i = 0; i < dart.notNull(length); i++) {
-          if (dart.test(test(this[dartx._get](i)))) return true;
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return false;
-      }
-      firstWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let length = this[dartx.length];
-        for (let i = 0; i < dart.notNull(length); i++) {
-          let element = this[dartx._get](i);
-          if (dart.test(test(element))) return element;
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      lastWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let length = this[dartx.length];
-        for (let i = dart.notNull(length) - 1; i >= 0; i--) {
-          let element = this[dartx._get](i);
-          if (dart.test(test(element))) return element;
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      singleWhere(test) {
-        let length = this[dartx.length];
-        let match = null;
-        let matchFound = false;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          let element = this[dartx._get](i);
-          if (dart.test(test(element))) {
-            if (matchFound) {
-              dart.throw(_internal.IterableElementError.tooMany());
-            }
-            matchFound = true;
-            match = element;
-          }
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (matchFound) return match;
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        if (this[dartx.length] == 0) return "";
-        let buffer = new core.StringBuffer();
-        buffer.writeAll(this, separator);
-        return buffer.toString();
-      }
-      where(test) {
-        return new (WhereIterableOfE())(this, test);
-      }
-      map(T) {
-        return f => {
-          return new (_internal.MappedListIterable$(E, T))(this, f);
-        };
-      }
-      expand(T) {
-        return f => {
-          return new (_internal.ExpandIterable$(E, T))(this, f);
-        };
-      }
-      reduce(combine) {
-        EAndEToE()._check(combine);
-        let length = this[dartx.length];
-        if (length == 0) dart.throw(_internal.IterableElementError.noElement());
-        let value = this[dartx._get](0);
-        for (let i = 1; i < dart.notNull(length); i++) {
-          value = combine(value, this[dartx._get](i));
-          if (length != this[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return value;
-      }
-      fold(T) {
-        return (initialValue, combine) => {
-          let value = initialValue;
-          let length = this[dartx.length];
-          for (let i = 0; i < dart.notNull(length); i++) {
-            value = combine(value, this[dartx._get](i));
-            if (length != this[dartx.length]) {
-              dart.throw(new core.ConcurrentModificationError(this));
-            }
-          }
-          return value;
-        };
-      }
-      skip(count) {
-        return new (SubListIterableOfE())(this, count, null);
-      }
-      skipWhile(test) {
-        return new (SkipWhileIterableOfE())(this, test);
-      }
-      take(count) {
-        return new (SubListIterableOfE())(this, 0, count);
-      }
-      takeWhile(test) {
-        return new (TakeWhileIterableOfE())(this, test);
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let result = null;
-        if (dart.test(growable)) {
-          result = ListOfE().new();
-          result[dartx.length] = this[dartx.length];
-        } else {
-          result = ListOfE().new(this[dartx.length]);
-        }
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          result[dartx._set](i, this[dartx._get](i));
-        }
-        return result;
-      }
-      toSet() {
-        let result = SetOfE().new();
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          result.add(this[dartx._get](i));
-        }
-        return result;
-      }
-      add(element) {
-        E._check(element);
-        this[dartx._set]((() => {
-          let x = this[dartx.length];
-          this[dartx.length] = dart.notNull(x) + 1;
-          return x;
-        })(), element);
-      }
-      addAll(iterable) {
-        IterableOfE()._check(iterable);
-        let i = this[dartx.length];
-        for (let element of iterable) {
-          dart.assert(this[dartx.length] == i || dart.test(dart.throw(new core.ConcurrentModificationError(this))));
-          this[dartx.length] = dart.notNull(i) + 1;
-          this[dartx._set](i, element);
-          i = dart.notNull(i) + 1;
-        }
-      }
-      remove(element) {
-        for (let i = 0; i < dart.notNull(this[dartx.length]); i++) {
-          if (dart.equals(this[dartx._get](i), element)) {
-            this[dartx.setRange](i, dart.notNull(this[dartx.length]) - 1, this, i + 1);
-            this[dartx.length] = dart.notNull(this[dartx.length]) - 1;
-            return true;
-          }
-        }
-        return false;
-      }
-      removeWhere(test) {
-        this[_filter](test, false);
-      }
-      retainWhere(test) {
-        this[_filter](test, true);
-      }
-      [_filter](test, retainMatching) {
-        let source = this;
-        let retained = JSArrayOfE().of([]);
-        let length = source[dartx.length];
-        for (let i = 0; i < dart.notNull(length); i++) {
-          let element = source[dartx._get](i);
-          if (dart.dcall(test, element) == retainMatching) {
-            retained[dartx.add](element);
-          }
-          if (length != source[dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(source));
-          }
-        }
-        if (retained[dartx.length] != source[dartx.length]) {
-          source[dartx.setRange](0, retained[dartx.length], retained);
-          source[dartx.length] = retained[dartx.length];
-        }
-      }
-      clear() {
-        this[dartx.length] = 0;
-      }
-      removeLast() {
-        if (this[dartx.length] == 0) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let result = this[dartx._get](dart.notNull(this[dartx.length]) - 1);
-        this[dartx.length] = dart.notNull(this[dartx.length]) - 1;
-        return result;
-      }
-      sort(compare) {
-        if (compare === void 0) compare = null;
-        if (compare == null) {
-          _internal.Sort.sort(E)(this, dart.fn((a, b) => core.Comparable.compare(core.Comparable._check(a), core.Comparable._check(b)), dynamicAnddynamicToint()));
-        } else {
-          _internal.Sort.sort(E)(this, compare);
-        }
-      }
-      shuffle(random) {
-        if (random === void 0) random = null;
-        if (random == null) random = math.Random.new();
-        let length = this[dartx.length];
-        while (dart.notNull(length) > 1) {
-          let pos = random.nextInt(length);
-          length = dart.notNull(length) - 1;
-          let tmp = this[dartx._get](length);
-          this[dartx._set](length, this[dartx._get](pos));
-          this[dartx._set](pos, tmp);
-        }
-      }
-      asMap() {
-        return new (ListMapViewOfE())(this);
-      }
-      sublist(start, end) {
-        if (end === void 0) end = null;
-        let listLength = this[dartx.length];
-        if (end == null) end = listLength;
-        core.RangeError.checkValidRange(start, end, listLength);
-        let length = dart.notNull(end) - dart.notNull(start);
-        let result = ListOfE().new();
-        result[dartx.length] = length;
-        for (let i = 0; i < length; i++) {
-          result[dartx._set](i, this[dartx._get](dart.notNull(start) + i));
-        }
-        return result;
-      }
-      getRange(start, end) {
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        return new (SubListIterableOfE())(this, start, end);
-      }
-      removeRange(start, end) {
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        let length = dart.notNull(end) - dart.notNull(start);
-        this[dartx.setRange](start, dart.notNull(this[dartx.length]) - length, this, end);
-        this[dartx.length] = dart.notNull(this[dartx.length]) - length;
-      }
-      fillRange(start, end, fill) {
-        if (fill === void 0) fill = null;
-        E._check(fill);
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          this[dartx._set](i, fill);
-        }
-      }
-      setRange(start, end, iterable, skipCount) {
-        IterableOfE()._check(iterable);
-        if (skipCount === void 0) skipCount = 0;
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        let length = dart.notNull(end) - dart.notNull(start);
-        if (length == 0) return;
-        core.RangeError.checkNotNegative(skipCount, "skipCount");
-        let otherList = null;
-        let otherStart = null;
-        if (ListOfE().is(iterable)) {
-          otherList = iterable;
-          otherStart = skipCount;
-        } else {
-          otherList = iterable[dartx.skip](skipCount)[dartx.toList]({growable: false});
-          otherStart = 0;
-        }
-        if (dart.notNull(otherStart) + length > dart.notNull(otherList[dartx.length])) {
-          dart.throw(_internal.IterableElementError.tooFew());
-        }
-        if (dart.notNull(otherStart) < dart.notNull(start)) {
-          for (let i = length - 1; i >= 0; i--) {
-            this[dartx._set](dart.notNull(start) + i, otherList[dartx._get](dart.notNull(otherStart) + i));
-          }
-        } else {
-          for (let i = 0; i < length; i++) {
-            this[dartx._set](dart.notNull(start) + i, otherList[dartx._get](dart.notNull(otherStart) + i));
-          }
-        }
-      }
-      replaceRange(start, end, newContents) {
-        IterableOfE()._check(newContents);
-        core.RangeError.checkValidRange(start, end, this[dartx.length]);
-        if (!_internal.EfficientLength.is(newContents)) {
-          newContents = newContents[dartx.toList]();
-        }
-        let removeLength = dart.notNull(end) - dart.notNull(start);
-        let insertLength = newContents[dartx.length];
-        if (removeLength >= dart.notNull(insertLength)) {
-          let delta = removeLength - dart.notNull(insertLength);
-          let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
-          let newLength = dart.notNull(this[dartx.length]) - delta;
-          this[dartx.setRange](start, insertEnd, newContents);
-          if (delta != 0) {
-            this[dartx.setRange](insertEnd, newLength, this, end);
-            this[dartx.length] = newLength;
-          }
-        } else {
-          let delta = dart.notNull(insertLength) - removeLength;
-          let newLength = dart.notNull(this[dartx.length]) + delta;
-          let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
-          this[dartx.length] = newLength;
-          this[dartx.setRange](insertEnd, newLength, this, end);
-          this[dartx.setRange](start, insertEnd, newContents);
-        }
-      }
-      indexOf(element, startIndex) {
-        if (startIndex === void 0) startIndex = 0;
-        if (dart.notNull(startIndex) >= dart.notNull(this[dartx.length])) {
-          return -1;
-        }
-        if (dart.notNull(startIndex) < 0) {
-          startIndex = 0;
-        }
-        for (let i = startIndex; dart.notNull(i) < dart.notNull(this[dartx.length]); i = dart.notNull(i) + 1) {
-          if (dart.equals(this[dartx._get](i), element)) {
-            return i;
-          }
-        }
-        return -1;
-      }
-      lastIndexOf(element, startIndex) {
-        if (startIndex === void 0) startIndex = null;
-        if (startIndex == null) {
-          startIndex = dart.notNull(this[dartx.length]) - 1;
-        } else {
-          if (dart.notNull(startIndex) < 0) {
-            return -1;
-          }
-          if (dart.notNull(startIndex) >= dart.notNull(this[dartx.length])) {
-            startIndex = dart.notNull(this[dartx.length]) - 1;
-          }
-        }
-        for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
-          if (dart.equals(this[dartx._get](i), element)) {
-            return i;
-          }
-        }
-        return -1;
-      }
-      insert(index, element) {
-        E._check(element);
-        core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
-        if (index == this[dartx.length]) {
-          this[dartx.add](element);
-          return;
-        }
-        if (!(typeof index == 'number')) dart.throw(new core.ArgumentError(index));
-        this[dartx.length] = dart.notNull(this[dartx.length]) + 1;
-        this[dartx.setRange](dart.notNull(index) + 1, this[dartx.length], this, index);
-        this[dartx._set](index, element);
-      }
-      removeAt(index) {
-        let result = this[dartx._get](index);
-        this[dartx.setRange](index, dart.notNull(this[dartx.length]) - 1, this, dart.notNull(index) + 1);
-        this[dartx.length] = dart.notNull(this[dartx.length]) - 1;
-        return result;
-      }
-      insertAll(index, iterable) {
-        IterableOfE()._check(iterable);
-        core.RangeError.checkValueInInterval(index, 0, this[dartx.length], "index");
-        if (!_internal.EfficientLength.is(iterable) || core.identical(iterable, this)) {
-          iterable = iterable[dartx.toList]();
-        }
-        let insertionLength = iterable[dartx.length];
-        this[dartx.length] = dart.notNull(this[dartx.length]) + dart.notNull(insertionLength);
-        if (iterable[dartx.length] != insertionLength) {
-          this[dartx.length] = dart.notNull(this[dartx.length]) - dart.notNull(insertionLength);
-          dart.throw(new core.ConcurrentModificationError(iterable));
-        }
-        this[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength), this[dartx.length], this, index);
-        this[dartx.setAll](index, iterable);
-      }
-      setAll(index, iterable) {
-        IterableOfE()._check(iterable);
-        if (core.List.is(iterable)) {
-          this[dartx.setRange](index, dart.notNull(index) + dart.notNull(iterable[dartx.length]), iterable);
-        } else {
-          for (let element of iterable) {
-            this[dartx._set]((() => {
-              let x = index;
-              index = dart.notNull(x) + 1;
-              return x;
-            })(), element);
-          }
-        }
-      }
-      get reversed() {
-        return new (ReversedListIterableOfE())(this);
-      }
-      toString() {
-        return collection.IterableBase.iterableToFullString(this, '[', ']');
-      }
-    }
-    dart.addTypeTests(ListMixin);
-    ListMixin[dart.implements] = () => [ListOfE()];
-    dart.setSignature(ListMixin, {
-      getters: () => ({
-        iterator: dart.definiteFunctionType(core.Iterator$(E), []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        first: dart.definiteFunctionType(E, []),
-        last: dart.definiteFunctionType(E, []),
-        single: dart.definiteFunctionType(E, []),
-        reversed: dart.definiteFunctionType(core.Iterable$(E), [])
-      }),
-      methods: () => ({
-        elementAt: dart.definiteFunctionType(E, [core.int]),
-        forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
-        contains: dart.definiteFunctionType(core.bool, [core.Object]),
-        every: dart.definiteFunctionType(core.bool, [ETobool()]),
-        any: dart.definiteFunctionType(core.bool, [ETobool()]),
-        firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        singleWhere: dart.definiteFunctionType(E, [ETobool()]),
-        join: dart.definiteFunctionType(core.String, [], [core.String]),
-        where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
-        expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
-        reduce: dart.definiteFunctionType(E, [EAndEToE()]),
-        fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
-        skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
-        toSet: dart.definiteFunctionType(core.Set$(E), []),
-        add: dart.definiteFunctionType(dart.void, [E]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        [_filter]: dart.definiteFunctionType(dart.void, [dynamicTobool(), core.bool]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        removeLast: dart.definiteFunctionType(E, []),
-        sort: dart.definiteFunctionType(dart.void, [], [EAndEToint()]),
-        shuffle: dart.definiteFunctionType(dart.void, [], [math.Random]),
-        asMap: dart.definiteFunctionType(core.Map$(core.int, E), []),
-        sublist: dart.definiteFunctionType(core.List$(E), [core.int], [core.int]),
-        getRange: dart.definiteFunctionType(core.Iterable$(E), [core.int, core.int]),
-        removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-        fillRange: dart.definiteFunctionType(dart.void, [core.int, core.int], [E]),
-        setRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
-        replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
-        indexOf: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-        lastIndexOf: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-        insert: dart.definiteFunctionType(dart.void, [core.int, E]),
-        removeAt: dart.definiteFunctionType(E, [core.int]),
-        insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        setAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()])
-      })
-    });
-    dart.defineExtensionMembers(ListMixin, [
-      'elementAt',
-      'forEach',
-      'contains',
-      'every',
-      'any',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'join',
-      'where',
-      'map',
-      'expand',
-      'reduce',
-      'fold',
-      'skip',
-      'skipWhile',
-      'take',
-      'takeWhile',
-      'toList',
-      'toSet',
-      'add',
-      'addAll',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'clear',
-      'removeLast',
-      'sort',
-      'shuffle',
-      'asMap',
-      'sublist',
-      'getRange',
-      'removeRange',
-      'fillRange',
-      'setRange',
-      'replaceRange',
-      'indexOf',
-      'lastIndexOf',
-      'insert',
-      'removeAt',
-      'insertAll',
-      'setAll',
-      'toString',
-      'iterator',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'last',
-      'single',
-      'reversed'
-    ]);
-    return ListMixin;
-  });
-  collection.ListMixin = ListMixin();
-  collection.ListBase$ = dart.generic(E => {
-    class ListBase extends dart.mixin(core.Object, collection.ListMixin$(E)) {
-      static listToString(list) {
-        return collection.IterableBase.iterableToFullString(list, '[', ']');
-      }
-    }
-    dart.addTypeTests(ListBase);
-    dart.setSignature(ListBase, {
-      statics: () => ({listToString: dart.definiteFunctionType(core.String, [core.List])}),
-      names: ['listToString']
-    });
-    return ListBase;
-  });
-  collection.ListBase = ListBase();
-  _internal.UnmodifiableListMixin$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
-    class UnmodifiableListMixin extends core.Object {
-      _set(index, value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
-        return value;
-      }
-      set length(newLength) {
-        dart.throw(new core.UnsupportedError("Cannot change the length of an unmodifiable list"));
-      }
-      setAll(at, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
-      }
-      add(value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
-      }
-      insert(index, element) {
-        E._check(element);
-        dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
-      }
-      insertAll(at, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
-      }
-      addAll(iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
-      }
-      remove(element) {
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      removeWhere(test) {
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      retainWhere(test) {
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      sort(compare) {
-        if (compare === void 0) compare = null;
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
-      }
-      shuffle(random) {
-        if (random === void 0) random = null;
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
-      }
-      clear() {
-        dart.throw(new core.UnsupportedError("Cannot clear an unmodifiable list"));
-      }
-      removeAt(index) {
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      removeLast() {
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      setRange(start, end, iterable, skipCount) {
-        IterableOfE()._check(iterable);
-        if (skipCount === void 0) skipCount = 0;
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
-      }
-      removeRange(start, end) {
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      replaceRange(start, end, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
-      }
-      fillRange(start, end, fillValue) {
-        if (fillValue === void 0) fillValue = null;
-        E._check(fillValue);
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
-      }
-    }
-    dart.addTypeTests(UnmodifiableListMixin);
-    UnmodifiableListMixin[dart.implements] = () => [ListOfE()];
-    dart.setSignature(UnmodifiableListMixin, {
-      setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
-      methods: () => ({
-        _set: dart.definiteFunctionType(dart.void, [core.int, E]),
-        setAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        add: dart.definiteFunctionType(dart.void, [E]),
-        insert: dart.definiteFunctionType(dart.void, [core.int, E]),
-        insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        sort: dart.definiteFunctionType(dart.void, [], [ComparatorOfE()]),
-        shuffle: dart.definiteFunctionType(dart.void, [], [math.Random]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        removeAt: dart.definiteFunctionType(E, [core.int]),
-        removeLast: dart.definiteFunctionType(E, []),
-        setRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
-        removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-        replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
-        fillRange: dart.definiteFunctionType(dart.void, [core.int, core.int], [E])
-      })
-    });
-    dart.defineExtensionMembers(UnmodifiableListMixin, [
-      '_set',
-      'setAll',
-      'add',
-      'insert',
-      'insertAll',
-      'addAll',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'sort',
-      'shuffle',
-      'clear',
-      'removeAt',
-      'removeLast',
-      'setRange',
-      'removeRange',
-      'replaceRange',
-      'fillRange',
-      'length'
-    ]);
-    return UnmodifiableListMixin;
-  });
-  _internal.UnmodifiableListMixin = UnmodifiableListMixin();
-  _internal.UnmodifiableListBase$ = dart.generic(E => {
-    class UnmodifiableListBase extends dart.mixin(collection.ListBase$(E), _internal.UnmodifiableListMixin$(E)) {
-      new() {
-        super.new();
-      }
-    }
-    return UnmodifiableListBase;
-  });
-  _internal.UnmodifiableListBase = UnmodifiableListBase();
-  core.int = class int extends core.num {
-    static fromEnvironment(name, opts) {
-      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
-      dart.throw(new core.UnsupportedError('int.fromEnvironment can only be used as a const constructor'));
-    }
-    static parse(source, opts) {
-      let radix = opts && 'radix' in opts ? opts.radix : null;
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      return _js_helper.Primitives.parseInt(source, radix, onError);
-    }
-  };
-  core.int.is = function is_int(o) {
-    return typeof o == "number" && Math.floor(o) == o;
-  };
-  core.int.as = function as_int(o) {
-    if (typeof o == "number" && Math.floor(o) == o || o == null) return o;
-    return dart.as(o, core.int);
-  };
-  core.int._check = function check_int(o) {
-    if (typeof o == "number" && Math.floor(o) == o || o == null) return o;
-    return dart.check(o, core.int);
-  };
-  dart.setSignature(core.int, {
-    constructors: () => ({fromEnvironment: dart.definiteFunctionType(core.int, [core.String], {defaultValue: core.int})}),
-    statics: () => ({parse: dart.definiteFunctionType(core.int, [core.String], {radix: core.int, onError: StringToint()})}),
-    names: ['parse']
-  });
-  _internal.CodeUnits = class CodeUnits extends _internal.UnmodifiableListBase$(core.int) {
-    new(string) {
-      this[_string] = string;
-    }
-    get length() {
-      return this[_string][dartx.length];
-    }
-    set length(value) {
-      super.length = value;
-    }
-    _get(i) {
-      return this[_string][dartx.codeUnitAt](i);
-    }
-    static stringOf(u) {
-      return u[_string];
-    }
-  };
-  dart.addSimpleTypeTests(_internal.CodeUnits);
-  dart.setSignature(_internal.CodeUnits, {
-    constructors: () => ({new: dart.definiteFunctionType(_internal.CodeUnits, [core.String])}),
-    fields: () => ({[_string]: core.String}),
-    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({_get: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({stringOf: dart.definiteFunctionType(core.String, [_internal.CodeUnits])}),
-    names: ['stringOf']
-  });
-  dart.defineExtensionMembers(_internal.CodeUnits, ['_get', 'length']);
-  _internal.EfficientLength = class EfficientLength extends core.Object {};
-  core.Iterable$ = dart.generic(E => {
-    let EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
-    let _GeneratorIterableOfE = () => (_GeneratorIterableOfE = dart.constFn(core._GeneratorIterable$(E)))();
-    let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
-    let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
-    let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
-    let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
-    let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let intToE = () => (intToE = dart.constFn(dart.functionType(E, [core.int])))();
-    dart.defineExtensionNames([
-      'map',
-      'where',
-      'expand',
-      'contains',
-      'forEach',
-      'reduce',
-      'fold',
-      'every',
-      'join',
-      'any',
-      'toList',
-      'toSet',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'take',
-      'takeWhile',
-      'skip',
-      'skipWhile',
-      'first',
-      'last',
-      'single',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'elementAt',
-      'toString'
-    ]);
-    class Iterable extends core.Object {
-      new() {
-      }
-      static generate(count, generator) {
-        if (generator === void 0) generator = null;
-        if (dart.notNull(count) <= 0) return new (EmptyIterableOfE())();
-        return new (_GeneratorIterableOfE())(count, generator);
-      }
-      static empty() {
-        return new (EmptyIterableOfE())();
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this[dartx.iterator]);
-      }
-      map(T) {
-        return f => {
-          return _internal.MappedIterable$(E, T).new(this, f);
-        };
-      }
-      where(test) {
-        return new (WhereIterableOfE())(this, test);
-      }
-      expand(T) {
-        return f => {
-          return new (_internal.ExpandIterable$(E, T))(this, f);
-        };
-      }
-      contains(element) {
-        for (let e of this) {
-          if (dart.equals(e, element)) return true;
-        }
-        return false;
-      }
-      forEach(f) {
-        for (let element of this)
-          f(element);
-      }
-      reduce(combine) {
-        EAndEToE()._check(combine);
-        let iterator = this[dartx.iterator];
-        if (!dart.test(iterator.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let value = iterator.current;
-        while (dart.test(iterator.moveNext())) {
-          value = combine(value, iterator.current);
-        }
-        return value;
-      }
-      fold(T) {
-        return (initialValue, combine) => {
-          let value = initialValue;
-          for (let element of this)
-            value = combine(value, element);
-          return value;
-        };
-      }
-      every(f) {
-        for (let element of this) {
-          if (!dart.test(f(element))) return false;
-        }
-        return true;
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        let iterator = this[dartx.iterator];
-        if (!dart.test(iterator.moveNext())) return "";
-        let buffer = new core.StringBuffer();
-        if (separator == null || separator == "") {
-          do {
-            buffer.write(dart.str`${iterator.current}`);
-          } while (dart.test(iterator.moveNext()));
-        } else {
-          buffer.write(dart.str`${iterator.current}`);
-          while (dart.test(iterator.moveNext())) {
-            buffer.write(separator);
-            buffer.write(dart.str`${iterator.current}`);
-          }
-        }
-        return buffer.toString();
-      }
-      any(f) {
-        for (let element of this) {
-          if (dart.test(f(element))) return true;
-        }
-        return false;
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        return ListOfE().from(this, {growable: growable});
-      }
-      toSet() {
-        return SetOfE().from(this);
-      }
-      get length() {
-        dart.assert(!_internal.EfficientLength.is(this));
-        let count = 0;
-        let it = this[dartx.iterator];
-        while (dart.test(it.moveNext())) {
-          count++;
-        }
-        return count;
-      }
-      get isEmpty() {
-        return !dart.test(this[dartx.iterator].moveNext());
-      }
-      get isNotEmpty() {
-        return !dart.test(this[dartx.isEmpty]);
-      }
-      take(count) {
-        return TakeIterableOfE().new(this, count);
-      }
-      takeWhile(test) {
-        return new (TakeWhileIterableOfE())(this, test);
-      }
-      skip(count) {
-        return SkipIterableOfE().new(this, count);
-      }
-      skipWhile(test) {
-        return new (SkipWhileIterableOfE())(this, test);
-      }
-      get first() {
-        let it = this[dartx.iterator];
-        if (!dart.test(it.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        return it.current;
-      }
-      get last() {
-        let it = this[dartx.iterator];
-        if (!dart.test(it.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let result = null;
-        do {
-          result = it.current;
-        } while (dart.test(it.moveNext()));
-        return result;
-      }
-      get single() {
-        let it = this[dartx.iterator];
-        if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
-        let result = it.current;
-        if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
-        return result;
-      }
-      firstWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        for (let element of this) {
-          if (dart.test(test(element))) return element;
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      lastWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let result = null;
-        let foundMatching = false;
-        for (let element of this) {
-          if (dart.test(test(element))) {
-            result = element;
-            foundMatching = true;
-          }
-        }
-        if (foundMatching) return result;
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      singleWhere(test) {
-        let result = null;
-        let foundMatching = false;
-        for (let element of this) {
-          if (dart.test(test(element))) {
-            if (foundMatching) {
-              dart.throw(_internal.IterableElementError.tooMany());
-            }
-            result = element;
-            foundMatching = true;
-          }
-        }
-        if (foundMatching) return result;
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      elementAt(index) {
-        if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
-        core.RangeError.checkNotNegative(index, "index");
-        let elementIndex = 0;
-        for (let element of this) {
-          if (index == elementIndex) return element;
-          elementIndex++;
-        }
-        dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
-      }
-      toString() {
-        return collection.IterableBase.iterableToShortString(this, '(', ')');
-      }
-    }
-    dart.addTypeTests(Iterable);
-    dart.setSignature(Iterable, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(core.Iterable$(E), []),
-        generate: dart.definiteFunctionType(core.Iterable$(E), [core.int], [intToE()]),
-        empty: dart.definiteFunctionType(core.Iterable$(E), [])
-      }),
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        first: dart.definiteFunctionType(E, []),
-        last: dart.definiteFunctionType(E, []),
-        single: dart.definiteFunctionType(E, [])
-      }),
-      methods: () => ({
-        map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
-        where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
-        contains: dart.definiteFunctionType(core.bool, [core.Object]),
-        forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
-        reduce: dart.definiteFunctionType(E, [EAndEToE()]),
-        fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
-        every: dart.definiteFunctionType(core.bool, [ETobool()]),
-        join: dart.definiteFunctionType(core.String, [], [core.String]),
-        any: dart.definiteFunctionType(core.bool, [ETobool()]),
-        toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
-        toSet: dart.definiteFunctionType(core.Set$(E), []),
-        take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        singleWhere: dart.definiteFunctionType(E, [ETobool()]),
-        elementAt: dart.definiteFunctionType(E, [core.int])
-      })
-    });
-    dart.defineExtensionMembers(Iterable, [
-      'map',
-      'where',
-      'expand',
-      'contains',
-      'forEach',
-      'reduce',
-      'fold',
-      'every',
-      'join',
-      'any',
-      'toList',
-      'toSet',
-      'take',
-      'takeWhile',
-      'skip',
-      'skipWhile',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'elementAt',
-      'toString',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'last',
-      'single'
-    ]);
-    return Iterable;
-  });
-  core.Iterable = Iterable();
-  _internal.ListIterable$ = dart.generic(E => {
-    let ListIteratorOfE = () => (ListIteratorOfE = dart.constFn(_internal.ListIterator$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let dynamicAndEToE = () => (dynamicAndEToE = dart.constFn(dart.functionType(E, [dart.dynamic, E])))();
-    let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    class ListIterable extends core.Iterable$(E) {
-      new() {
-        super.new();
-      }
-      get iterator() {
-        return new (ListIteratorOfE())(this);
-      }
-      forEach(action) {
-        let length = this.length;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          action(this.elementAt(i));
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-      }
-      get isEmpty() {
-        return this.length == 0;
-      }
-      get first() {
-        if (this.length == 0) dart.throw(_internal.IterableElementError.noElement());
-        return this.elementAt(0);
-      }
-      get last() {
-        if (this.length == 0) dart.throw(_internal.IterableElementError.noElement());
-        return this.elementAt(dart.notNull(this.length) - 1);
-      }
-      get single() {
-        if (this.length == 0) dart.throw(_internal.IterableElementError.noElement());
-        if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
-        return this.elementAt(0);
-      }
-      contains(element) {
-        let length = this.length;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          if (dart.equals(this.elementAt(i), element)) return true;
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return false;
-      }
-      every(test) {
-        let length = this.length;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          if (!dart.test(test(this.elementAt(i)))) return false;
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return true;
-      }
-      any(test) {
-        let length = this.length;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          if (dart.test(test(this.elementAt(i)))) return true;
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return false;
-      }
-      firstWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let length = this.length;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          let element = this.elementAt(i);
-          if (dart.test(test(element))) return element;
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      lastWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let length = this.length;
-        for (let i = dart.notNull(length) - 1; i >= 0; i--) {
-          let element = this.elementAt(i);
-          if (dart.test(test(element))) return element;
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      singleWhere(test) {
-        let length = this.length;
-        let match = null;
-        let matchFound = false;
-        for (let i = 0; i < dart.notNull(length); i++) {
-          let element = this.elementAt(i);
-          if (dart.test(test(element))) {
-            if (matchFound) {
-              dart.throw(_internal.IterableElementError.tooMany());
-            }
-            matchFound = true;
-            match = element;
-          }
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        if (matchFound) return match;
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        let length = this.length;
-        if (!dart.test(separator[dartx.isEmpty])) {
-          if (length == 0) return "";
-          let first = dart.str`${this.elementAt(0)}`;
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-          let buffer = new core.StringBuffer(first);
-          for (let i = 1; i < dart.notNull(length); i++) {
-            buffer.write(separator);
-            buffer.write(this.elementAt(i));
-            if (length != this.length) {
-              dart.throw(new core.ConcurrentModificationError(this));
-            }
-          }
-          return buffer.toString();
-        } else {
-          let buffer = new core.StringBuffer();
-          for (let i = 0; i < dart.notNull(length); i++) {
-            buffer.write(this.elementAt(i));
-            if (length != this.length) {
-              dart.throw(new core.ConcurrentModificationError(this));
-            }
-          }
-          return buffer.toString();
-        }
-      }
-      where(test) {
-        return super.where(test);
-      }
-      map(T) {
-        return f => {
-          return new (_internal.MappedListIterable$(E, T))(this, f);
-        };
-      }
-      reduce(combine) {
-        dynamicAndEToE()._check(combine);
-        let length = this.length;
-        if (length == 0) dart.throw(_internal.IterableElementError.noElement());
-        let value = this.elementAt(0);
-        for (let i = 1; i < dart.notNull(length); i++) {
-          value = dart.dcall(combine, value, this.elementAt(i));
-          if (length != this.length) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-        return value;
-      }
-      fold(T) {
-        return (initialValue, combine) => {
-          let value = initialValue;
-          let length = this.length;
-          for (let i = 0; i < dart.notNull(length); i++) {
-            value = combine(value, this.elementAt(i));
-            if (length != this.length) {
-              dart.throw(new core.ConcurrentModificationError(this));
-            }
-          }
-          return value;
-        };
-      }
-      skip(count) {
-        return new (SubListIterableOfE())(this, count, null);
-      }
-      skipWhile(test) {
-        return super.skipWhile(test);
-      }
-      take(count) {
-        return new (SubListIterableOfE())(this, 0, count);
-      }
-      takeWhile(test) {
-        return super.takeWhile(test);
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let result = null;
-        if (dart.test(growable)) {
-          result = ListOfE().new();
-          result[dartx.length] = this.length;
-        } else {
-          result = ListOfE().new(this.length);
-        }
-        for (let i = 0; i < dart.notNull(this.length); i++) {
-          result[dartx._set](i, this.elementAt(i));
-        }
-        return result;
-      }
-      toSet() {
-        let result = SetOfE().new();
-        for (let i = 0; i < dart.notNull(this.length); i++) {
-          result.add(this.elementAt(i));
-        }
-        return result;
-      }
-    }
-    ListIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(ListIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.ListIterable$(E), [])}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({reduce: dart.definiteFunctionType(E, [dynamicAndEToE()])})
-    });
-    dart.defineExtensionMembers(ListIterable, [
-      'forEach',
-      'contains',
-      'every',
-      'any',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'join',
-      'where',
-      'map',
-      'reduce',
-      'fold',
-      'skip',
-      'skipWhile',
-      'take',
-      'takeWhile',
-      'toList',
-      'toSet',
-      'iterator',
-      'isEmpty',
-      'first',
-      'last',
-      'single'
-    ]);
-    return ListIterable;
-  });
-  _internal.ListIterable = ListIterable();
-  const _iterable$ = Symbol('_iterable');
-  const _start = Symbol('_start');
-  const _endOrLength = Symbol('_endOrLength');
-  const _endIndex = Symbol('_endIndex');
-  const _startIndex = Symbol('_startIndex');
-  _internal.SubListIterable$ = dart.generic(E => {
-    let EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
-    let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class SubListIterable extends _internal.ListIterable$(E) {
-      new(iterable, start, endOrLength) {
-        this[_iterable$] = iterable;
-        this[_start] = start;
-        this[_endOrLength] = endOrLength;
-        super.new();
-        core.RangeError.checkNotNegative(this[_start], "start");
-        if (this[_endOrLength] != null) {
-          core.RangeError.checkNotNegative(this[_endOrLength], "end");
-          if (dart.notNull(this[_start]) > dart.notNull(this[_endOrLength])) {
-            dart.throw(new core.RangeError.range(this[_start], 0, this[_endOrLength], "start"));
-          }
-        }
-      }
-      get [_endIndex]() {
-        let length = this[_iterable$][dartx.length];
-        if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dart.notNull(length)) return length;
-        return this[_endOrLength];
-      }
-      get [_startIndex]() {
-        let length = this[_iterable$][dartx.length];
-        if (dart.notNull(this[_start]) > dart.notNull(length)) return length;
-        return this[_start];
-      }
-      get length() {
-        let length = this[_iterable$][dartx.length];
-        if (dart.notNull(this[_start]) >= dart.notNull(length)) return 0;
-        if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= dart.notNull(length)) {
-          return dart.notNull(length) - dart.notNull(this[_start]);
-        }
-        return dart.notNull(this[_endOrLength]) - dart.notNull(this[_start]);
-      }
-      elementAt(index) {
-        let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index);
-        if (dart.notNull(index) < 0 || realIndex >= dart.notNull(this[_endIndex])) {
-          dart.throw(core.RangeError.index(index, this, "index"));
-        }
-        return this[_iterable$][dartx.elementAt](realIndex);
-      }
-      skip(count) {
-        core.RangeError.checkNotNegative(count, "count");
-        let newStart = dart.notNull(this[_start]) + dart.notNull(count);
-        if (this[_endOrLength] != null && newStart >= dart.notNull(this[_endOrLength])) {
-          return new (EmptyIterableOfE())();
-        }
-        return new (SubListIterableOfE())(this[_iterable$], newStart, this[_endOrLength]);
-      }
-      take(count) {
-        core.RangeError.checkNotNegative(count, "count");
-        if (this[_endOrLength] == null) {
-          return new (SubListIterableOfE())(this[_iterable$], this[_start], dart.notNull(this[_start]) + dart.notNull(count));
-        } else {
-          let newEnd = dart.notNull(this[_start]) + dart.notNull(count);
-          if (dart.notNull(this[_endOrLength]) < newEnd) return this;
-          return new (SubListIterableOfE())(this[_iterable$], this[_start], newEnd);
-        }
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let start = this[_start];
-        let end = this[_iterable$][dartx.length];
-        if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dart.notNull(end)) end = this[_endOrLength];
-        let length = dart.notNull(end) - dart.notNull(start);
-        if (length < 0) length = 0;
-        let result = dart.test(growable) ? (() => {
-          let _ = ListOfE().new();
-          _[dartx.length] = length;
-          return _;
-        })() : ListOfE().new(length);
-        for (let i = 0; i < length; i++) {
-          result[dartx._set](i, this[_iterable$][dartx.elementAt](dart.notNull(start) + i));
-          if (dart.notNull(this[_iterable$][dartx.length]) < dart.notNull(end)) dart.throw(new core.ConcurrentModificationError(this));
-        }
-        return result;
-      }
-    }
-    dart.setSignature(SubListIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.SubListIterable$(E), [IterableOfE(), core.int, core.int])}),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_start]: core.int,
-        [_endOrLength]: core.int
-      }),
-      getters: () => ({
-        [_endIndex]: dart.definiteFunctionType(core.int, []),
-        [_startIndex]: dart.definiteFunctionType(core.int, [])
-      })
-    });
-    dart.defineExtensionMembers(SubListIterable, [
-      'elementAt',
-      'skip',
-      'take',
-      'toList',
-      'length'
-    ]);
-    return SubListIterable;
-  });
-  _internal.SubListIterable = SubListIterable();
-  const _length$ = Symbol('_length');
-  const _index$ = Symbol('_index');
-  const _current$ = Symbol('_current');
-  _internal.ListIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class ListIterator extends core.Object {
-      new(iterable) {
-        this[_iterable$] = iterable;
-        this[_length$] = iterable[dartx.length];
-        this[_index$] = 0;
-        this[_current$] = null;
-      }
-      get current() {
-        return this[_current$];
-      }
-      moveNext() {
-        let length = this[_iterable$][dartx.length];
-        if (this[_length$] != length) {
-          dart.throw(new core.ConcurrentModificationError(this[_iterable$]));
-        }
-        if (dart.notNull(this[_index$]) >= dart.notNull(length)) {
-          this[_current$] = null;
-          return false;
-        }
-        this[_current$] = this[_iterable$][dartx.elementAt](this[_index$]);
-        this[_index$] = dart.notNull(this[_index$]) + 1;
-        return true;
-      }
-    }
-    dart.addTypeTests(ListIterator);
-    ListIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(ListIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.ListIterator$(E), [IterableOfE()])}),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_length$]: core.int,
-        [_index$]: core.int,
-        [_current$]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return ListIterator;
-  });
-  _internal.ListIterator = ListIterator();
-  _internal._Transformation$ = dart.generic((S, T) => {
-    const _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S]));
-    return _Transformation;
-  });
-  _internal._Transformation = _Transformation();
-  const _f = Symbol('_f');
-  _internal.MappedIterable$ = dart.generic((S, T) => {
-    let EfficientLengthMappedIterableOfS$T = () => (EfficientLengthMappedIterableOfS$T = dart.constFn(_internal.EfficientLengthMappedIterable$(S, T)))();
-    let MappedIterableOfS$T = () => (MappedIterableOfS$T = dart.constFn(_internal.MappedIterable$(S, T)))();
-    let MappedIteratorOfS$T = () => (MappedIteratorOfS$T = dart.constFn(_internal.MappedIterator$(S, T)))();
-    let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
-    let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(_internal._Transformation$(S, T)))();
-    class MappedIterable extends core.Iterable$(T) {
-      static new(iterable, func) {
-        if (_internal.EfficientLength.is(iterable)) {
-          return new (EfficientLengthMappedIterableOfS$T())(iterable, func);
-        }
-        return new (MappedIterableOfS$T())._(iterable, func);
-      }
-      _(iterable, f) {
-        this[_iterable$] = iterable;
-        this[_f] = f;
-        super.new();
-      }
-      get iterator() {
-        return new (MappedIteratorOfS$T())(this[_iterable$][dartx.iterator], this[_f]);
-      }
-      get length() {
-        return this[_iterable$][dartx.length];
-      }
-      get isEmpty() {
-        return this[_iterable$][dartx.isEmpty];
-      }
-      get first() {
-        return this[_f](this[_iterable$][dartx.first]);
-      }
-      get last() {
-        return this[_f](this[_iterable$][dartx.last]);
-      }
-      get single() {
-        return this[_f](this[_iterable$][dartx.single]);
-      }
-      elementAt(index) {
-        return this[_f](this[_iterable$][dartx.elementAt](index));
-      }
-    }
-    dart.defineNamedConstructor(MappedIterable, '_');
-    dart.setSignature(MappedIterable, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(_internal.MappedIterable$(S, T), [IterableOfS(), _TransformationOfS$T()]),
-        _: dart.definiteFunctionType(_internal.MappedIterable$(S, T), [IterableOfS(), _TransformationOfS$T()])
-      }),
-      fields: () => ({
-        [_iterable$]: IterableOfS(),
-        [_f]: _TransformationOfS$T()
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(T), [])})
-    });
-    dart.defineExtensionMembers(MappedIterable, [
-      'elementAt',
-      'iterator',
-      'length',
-      'isEmpty',
-      'first',
-      'last',
-      'single'
-    ]);
-    return MappedIterable;
-  });
-  _internal.MappedIterable = MappedIterable();
-  _internal.EfficientLengthMappedIterable$ = dart.generic((S, T) => {
-    let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
-    let SToT = () => (SToT = dart.constFn(dart.functionType(T, [S])))();
-    class EfficientLengthMappedIterable extends _internal.MappedIterable$(S, T) {
-      new(iterable, func) {
-        super._(iterable, func);
-      }
-    }
-    EfficientLengthMappedIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(EfficientLengthMappedIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.EfficientLengthMappedIterable$(S, T), [IterableOfS(), SToT()])})
-    });
-    return EfficientLengthMappedIterable;
-  });
-  _internal.EfficientLengthMappedIterable = EfficientLengthMappedIterable();
-  const _iterator = Symbol('_iterator');
-  core.Iterator$ = dart.generic(E => {
-    class Iterator extends core.Object {}
-    dart.addTypeTests(Iterator);
-    return Iterator;
-  });
-  core.Iterator = Iterator();
-  _internal.MappedIterator$ = dart.generic((S, T) => {
-    let IteratorOfS = () => (IteratorOfS = dart.constFn(core.Iterator$(S)))();
-    let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(_internal._Transformation$(S, T)))();
-    class MappedIterator extends core.Iterator$(T) {
-      new(iterator, f) {
-        this[_iterator] = iterator;
-        this[_f] = f;
-        this[_current$] = null;
-      }
-      moveNext() {
-        if (dart.test(this[_iterator].moveNext())) {
-          this[_current$] = this[_f](this[_iterator].current);
-          return true;
-        }
-        this[_current$] = null;
-        return false;
-      }
-      get current() {
-        return this[_current$];
-      }
-    }
-    dart.setSignature(MappedIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.MappedIterator$(S, T), [IteratorOfS(), _TransformationOfS$T()])}),
-      fields: () => ({
-        [_current$]: T,
-        [_iterator]: IteratorOfS(),
-        [_f]: _TransformationOfS$T()
-      }),
-      getters: () => ({current: dart.definiteFunctionType(T, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return MappedIterator;
-  });
-  _internal.MappedIterator = MappedIterator();
-  const _source = Symbol('_source');
-  _internal.MappedListIterable$ = dart.generic((S, T) => {
-    let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
-    let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(_internal._Transformation$(S, T)))();
-    class MappedListIterable extends _internal.ListIterable$(T) {
-      new(source, f) {
-        this[_source] = source;
-        this[_f] = f;
-        super.new();
-      }
-      get length() {
-        return this[_source][dartx.length];
-      }
-      elementAt(index) {
-        return this[_f](this[_source][dartx.elementAt](index));
-      }
-    }
-    MappedListIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(MappedListIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.MappedListIterable$(S, T), [IterableOfS(), _TransformationOfS$T()])}),
-      fields: () => ({
-        [_source]: IterableOfS(),
-        [_f]: _TransformationOfS$T()
-      })
-    });
-    dart.defineExtensionMembers(MappedListIterable, ['elementAt', 'length']);
-    return MappedListIterable;
-  });
-  _internal.MappedListIterable = MappedListIterable();
-  _internal._ElementPredicate$ = dart.generic(E => {
-    const _ElementPredicate = dart.typedef('_ElementPredicate', () => dart.functionType(core.bool, [E]));
-    return _ElementPredicate;
-  });
-  _internal._ElementPredicate = _ElementPredicate();
-  _internal.WhereIterable$ = dart.generic(E => {
-    let WhereIteratorOfE = () => (WhereIteratorOfE = dart.constFn(_internal.WhereIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
-    class WhereIterable extends core.Iterable$(E) {
-      new(iterable, f) {
-        this[_iterable$] = iterable;
-        this[_f] = f;
-        super.new();
-      }
-      get iterator() {
-        return new (WhereIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
-      }
-    }
-    dart.setSignature(WhereIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.WhereIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_f]: _ElementPredicateOfE()
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(WhereIterable, ['iterator']);
-    return WhereIterable;
-  });
-  _internal.WhereIterable = WhereIterable();
-  _internal.WhereIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
-    class WhereIterator extends core.Iterator$(E) {
-      new(iterator, f) {
-        this[_iterator] = iterator;
-        this[_f] = f;
-      }
-      moveNext() {
-        while (dart.test(this[_iterator].moveNext())) {
-          if (dart.test(this[_f](this[_iterator].current))) {
-            return true;
-          }
-        }
-        return false;
-      }
-      get current() {
-        return this[_iterator].current;
-      }
-    }
-    dart.setSignature(WhereIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.WhereIterator$(E), [IteratorOfE(), _ElementPredicateOfE()])}),
-      fields: () => ({
-        [_iterator]: IteratorOfE(),
-        [_f]: _ElementPredicateOfE()
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return WhereIterator;
-  });
-  _internal.WhereIterator = WhereIterator();
-  _internal._ExpandFunction$ = dart.generic((S, T) => {
-    const _ExpandFunction = dart.typedef('_ExpandFunction', () => dart.functionType(core.Iterable$(T), [S]));
-    return _ExpandFunction;
-  });
-  _internal._ExpandFunction = _ExpandFunction();
-  _internal.ExpandIterable$ = dart.generic((S, T) => {
-    let ExpandIteratorOfS$T = () => (ExpandIteratorOfS$T = dart.constFn(_internal.ExpandIterator$(S, T)))();
-    let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
-    let _ExpandFunctionOfS$T = () => (_ExpandFunctionOfS$T = dart.constFn(_internal._ExpandFunction$(S, T)))();
-    let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
-    class ExpandIterable extends core.Iterable$(T) {
-      new(iterable, f) {
-        this[_iterable$] = iterable;
-        this[_f] = f;
-        super.new();
-      }
-      get iterator() {
-        return new (ExpandIteratorOfS$T())(this[_iterable$][dartx.iterator], this[_f]);
-      }
-    }
-    dart.setSignature(ExpandIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.ExpandIterable$(S, T), [IterableOfS(), _ExpandFunctionOfS$T()])}),
-      fields: () => ({
-        [_iterable$]: IterableOfS(),
-        [_f]: _ExpandFunctionOfS$T()
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(T), [])})
-    });
-    dart.defineExtensionMembers(ExpandIterable, ['iterator']);
-    return ExpandIterable;
-  });
-  _internal.ExpandIterable = ExpandIterable();
-  const _currentExpansion = Symbol('_currentExpansion');
-  _internal.ExpandIterator$ = dart.generic((S, T) => {
-    let IteratorOfS = () => (IteratorOfS = dart.constFn(core.Iterator$(S)))();
-    let _ExpandFunctionOfS$T = () => (_ExpandFunctionOfS$T = dart.constFn(_internal._ExpandFunction$(S, T)))();
-    let EmptyIteratorOfT = () => (EmptyIteratorOfT = dart.constFn(_internal.EmptyIterator$(T)))();
-    let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
-    let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
-    class ExpandIterator extends core.Object {
-      new(iterator, f) {
-        this[_iterator] = iterator;
-        this[_f] = f;
-        this[_currentExpansion] = dart.const(new (EmptyIteratorOfT())());
-        this[_current$] = null;
-      }
-      get current() {
-        return this[_current$];
-      }
-      moveNext() {
-        if (this[_currentExpansion] == null) return false;
-        while (!dart.test(this[_currentExpansion].moveNext())) {
-          this[_current$] = null;
-          if (dart.test(this[_iterator].moveNext())) {
-            this[_currentExpansion] = null;
-            this[_currentExpansion] = this[_f](this[_iterator].current)[dartx.iterator];
-          } else {
-            return false;
-          }
-        }
-        this[_current$] = this[_currentExpansion].current;
-        return true;
-      }
-    }
-    dart.addTypeTests(ExpandIterator);
-    ExpandIterator[dart.implements] = () => [IteratorOfT()];
-    dart.setSignature(ExpandIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.ExpandIterator$(S, T), [IteratorOfS(), _ExpandFunctionOfS$T()])}),
-      fields: () => ({
-        [_iterator]: IteratorOfS(),
-        [_f]: _ExpandFunctionOfS$T(),
-        [_currentExpansion]: IteratorOfT(),
-        [_current$]: T
-      }),
-      getters: () => ({current: dart.definiteFunctionType(T, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return ExpandIterator;
-  });
-  _internal.ExpandIterator = ExpandIterator();
-  const _takeCount = Symbol('_takeCount');
-  _internal.TakeIterable$ = dart.generic(E => {
-    let EfficientLengthTakeIterableOfE = () => (EfficientLengthTakeIterableOfE = dart.constFn(_internal.EfficientLengthTakeIterable$(E)))();
-    let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
-    let TakeIteratorOfE = () => (TakeIteratorOfE = dart.constFn(_internal.TakeIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class TakeIterable extends core.Iterable$(E) {
-      static new(iterable, takeCount) {
-        if (!(typeof takeCount == 'number') || dart.notNull(takeCount) < 0) {
-          dart.throw(new core.ArgumentError(takeCount));
-        }
-        if (_internal.EfficientLength.is(iterable)) {
-          return new (EfficientLengthTakeIterableOfE())(iterable, takeCount);
-        }
-        return new (TakeIterableOfE())._(iterable, takeCount);
-      }
-      _(iterable, takeCount) {
-        this[_iterable$] = iterable;
-        this[_takeCount] = takeCount;
-        super.new();
-      }
-      get iterator() {
-        return new (TakeIteratorOfE())(this[_iterable$][dartx.iterator], this[_takeCount]);
-      }
-    }
-    dart.defineNamedConstructor(TakeIterable, '_');
-    dart.setSignature(TakeIterable, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(_internal.TakeIterable$(E), [IterableOfE(), core.int]),
-        _: dart.definiteFunctionType(_internal.TakeIterable$(E), [IterableOfE(), core.int])
-      }),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_takeCount]: core.int
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(TakeIterable, ['iterator']);
-    return TakeIterable;
-  });
-  _internal.TakeIterable = TakeIterable();
-  _internal.EfficientLengthTakeIterable$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class EfficientLengthTakeIterable extends _internal.TakeIterable$(E) {
-      new(iterable, takeCount) {
-        super._(iterable, takeCount);
-      }
-      get length() {
-        let iterableLength = this[_iterable$][dartx.length];
-        if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) return this[_takeCount];
-        return iterableLength;
-      }
-    }
-    EfficientLengthTakeIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(EfficientLengthTakeIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.EfficientLengthTakeIterable$(E), [IterableOfE(), core.int])})
-    });
-    dart.defineExtensionMembers(EfficientLengthTakeIterable, ['length']);
-    return EfficientLengthTakeIterable;
-  });
-  _internal.EfficientLengthTakeIterable = EfficientLengthTakeIterable();
-  const _remaining = Symbol('_remaining');
-  _internal.TakeIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class TakeIterator extends core.Iterator$(E) {
-      new(iterator, remaining) {
-        this[_iterator] = iterator;
-        this[_remaining] = remaining;
-        dart.assert(typeof this[_remaining] == 'number' && dart.notNull(this[_remaining]) >= 0);
-      }
-      moveNext() {
-        this[_remaining] = dart.notNull(this[_remaining]) - 1;
-        if (dart.notNull(this[_remaining]) >= 0) {
-          return this[_iterator].moveNext();
-        }
-        this[_remaining] = -1;
-        return false;
-      }
-      get current() {
-        if (dart.notNull(this[_remaining]) < 0) return null;
-        return this[_iterator].current;
-      }
-    }
-    dart.setSignature(TakeIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.TakeIterator$(E), [IteratorOfE(), core.int])}),
-      fields: () => ({
-        [_iterator]: IteratorOfE(),
-        [_remaining]: core.int
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return TakeIterator;
-  });
-  _internal.TakeIterator = TakeIterator();
-  _internal.TakeWhileIterable$ = dart.generic(E => {
-    let TakeWhileIteratorOfE = () => (TakeWhileIteratorOfE = dart.constFn(_internal.TakeWhileIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
-    class TakeWhileIterable extends core.Iterable$(E) {
-      new(iterable, f) {
-        this[_iterable$] = iterable;
-        this[_f] = f;
-        super.new();
-      }
-      get iterator() {
-        return new (TakeWhileIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
-      }
-    }
-    dart.setSignature(TakeWhileIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.TakeWhileIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_f]: _ElementPredicateOfE()
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(TakeWhileIterable, ['iterator']);
-    return TakeWhileIterable;
-  });
-  _internal.TakeWhileIterable = TakeWhileIterable();
-  const _isFinished = Symbol('_isFinished');
-  _internal.TakeWhileIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
-    class TakeWhileIterator extends core.Iterator$(E) {
-      new(iterator, f) {
-        this[_iterator] = iterator;
-        this[_f] = f;
-        this[_isFinished] = false;
-      }
-      moveNext() {
-        if (dart.test(this[_isFinished])) return false;
-        if (!dart.test(this[_iterator].moveNext()) || !dart.test(this[_f](this[_iterator].current))) {
-          this[_isFinished] = true;
-          return false;
-        }
-        return true;
-      }
-      get current() {
-        if (dart.test(this[_isFinished])) return null;
-        return this[_iterator].current;
-      }
-    }
-    dart.setSignature(TakeWhileIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.TakeWhileIterator$(E), [IteratorOfE(), _ElementPredicateOfE()])}),
-      fields: () => ({
-        [_iterator]: IteratorOfE(),
-        [_f]: _ElementPredicateOfE(),
-        [_isFinished]: core.bool
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return TakeWhileIterator;
-  });
-  _internal.TakeWhileIterator = TakeWhileIterator();
-  const _skipCount = Symbol('_skipCount');
-  _internal.SkipIterable$ = dart.generic(E => {
-    let EfficientLengthSkipIterableOfE = () => (EfficientLengthSkipIterableOfE = dart.constFn(_internal.EfficientLengthSkipIterable$(E)))();
-    let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
-    let SkipIteratorOfE = () => (SkipIteratorOfE = dart.constFn(_internal.SkipIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class SkipIterable extends core.Iterable$(E) {
-      static new(iterable, count) {
-        if (_internal.EfficientLength.is(iterable)) {
-          return new (EfficientLengthSkipIterableOfE())(iterable, count);
-        }
-        return new (SkipIterableOfE())._(iterable, count);
-      }
-      _(iterable, skipCount) {
-        this[_iterable$] = iterable;
-        this[_skipCount] = skipCount;
-        super.new();
-        if (!(typeof this[_skipCount] == 'number')) {
-          dart.throw(new core.ArgumentError.value(this[_skipCount], "count is not an integer"));
-        }
-        core.RangeError.checkNotNegative(this[_skipCount], "count");
-      }
-      skip(count) {
-        if (!(typeof this[_skipCount] == 'number')) {
-          dart.throw(new core.ArgumentError.value(this[_skipCount], "count is not an integer"));
-        }
-        core.RangeError.checkNotNegative(this[_skipCount], "count");
-        return new (SkipIterableOfE())._(this[_iterable$], dart.notNull(this[_skipCount]) + dart.notNull(count));
-      }
-      get iterator() {
-        return new (SkipIteratorOfE())(this[_iterable$][dartx.iterator], this[_skipCount]);
-      }
-    }
-    dart.defineNamedConstructor(SkipIterable, '_');
-    dart.setSignature(SkipIterable, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(_internal.SkipIterable$(E), [IterableOfE(), core.int]),
-        _: dart.definiteFunctionType(_internal.SkipIterable$(E), [IterableOfE(), core.int])
-      }),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_skipCount]: core.int
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(SkipIterable, ['skip', 'iterator']);
-    return SkipIterable;
-  });
-  _internal.SkipIterable = SkipIterable();
-  _internal.EfficientLengthSkipIterable$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class EfficientLengthSkipIterable extends _internal.SkipIterable$(E) {
-      new(iterable, skipCount) {
-        super._(iterable, skipCount);
-      }
-      get length() {
-        let length = dart.notNull(this[_iterable$][dartx.length]) - dart.notNull(this[_skipCount]);
-        if (length >= 0) return length;
-        return 0;
-      }
-    }
-    EfficientLengthSkipIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(EfficientLengthSkipIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.EfficientLengthSkipIterable$(E), [IterableOfE(), core.int])})
-    });
-    dart.defineExtensionMembers(EfficientLengthSkipIterable, ['length']);
-    return EfficientLengthSkipIterable;
-  });
-  _internal.EfficientLengthSkipIterable = EfficientLengthSkipIterable();
-  _internal.SkipIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class SkipIterator extends core.Iterator$(E) {
-      new(iterator, skipCount) {
-        this[_iterator] = iterator;
-        this[_skipCount] = skipCount;
-        dart.assert(typeof this[_skipCount] == 'number' && dart.notNull(this[_skipCount]) >= 0);
-      }
-      moveNext() {
-        for (let i = 0; i < dart.notNull(this[_skipCount]); i++)
-          this[_iterator].moveNext();
-        this[_skipCount] = 0;
-        return this[_iterator].moveNext();
-      }
-      get current() {
-        return this[_iterator].current;
-      }
-    }
-    dart.setSignature(SkipIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.SkipIterator$(E), [IteratorOfE(), core.int])}),
-      fields: () => ({
-        [_iterator]: IteratorOfE(),
-        [_skipCount]: core.int
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return SkipIterator;
-  });
-  _internal.SkipIterator = SkipIterator();
-  _internal.SkipWhileIterable$ = dart.generic(E => {
-    let SkipWhileIteratorOfE = () => (SkipWhileIteratorOfE = dart.constFn(_internal.SkipWhileIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
-    class SkipWhileIterable extends core.Iterable$(E) {
-      new(iterable, f) {
-        this[_iterable$] = iterable;
-        this[_f] = f;
-        super.new();
-      }
-      get iterator() {
-        return new (SkipWhileIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
-      }
-    }
-    dart.setSignature(SkipWhileIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.SkipWhileIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
-      fields: () => ({
-        [_iterable$]: IterableOfE(),
-        [_f]: _ElementPredicateOfE()
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(SkipWhileIterable, ['iterator']);
-    return SkipWhileIterable;
-  });
-  _internal.SkipWhileIterable = SkipWhileIterable();
-  const _hasSkipped = Symbol('_hasSkipped');
-  _internal.SkipWhileIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
-    class SkipWhileIterator extends core.Iterator$(E) {
-      new(iterator, f) {
-        this[_iterator] = iterator;
-        this[_f] = f;
-        this[_hasSkipped] = false;
-      }
-      moveNext() {
-        if (!dart.test(this[_hasSkipped])) {
-          this[_hasSkipped] = true;
-          while (dart.test(this[_iterator].moveNext())) {
-            if (!dart.test(this[_f](this[_iterator].current))) return true;
-          }
-        }
-        return this[_iterator].moveNext();
-      }
-      get current() {
-        return this[_iterator].current;
-      }
-    }
-    dart.setSignature(SkipWhileIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.SkipWhileIterator$(E), [IteratorOfE(), _ElementPredicateOfE()])}),
-      fields: () => ({
-        [_iterator]: IteratorOfE(),
-        [_f]: _ElementPredicateOfE(),
-        [_hasSkipped]: core.bool
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return SkipWhileIterator;
-  });
-  _internal.SkipWhileIterator = SkipWhileIterator();
-  _internal.EmptyIterable$ = dart.generic(E => {
-    let EmptyIteratorOfE = () => (EmptyIteratorOfE = dart.constFn(_internal.EmptyIterator$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
-    let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    class EmptyIterable extends core.Iterable$(E) {
-      new() {
-        super.new();
-      }
-      get iterator() {
-        return dart.const(new (EmptyIteratorOfE())());
-      }
-      forEach(action) {}
-      get isEmpty() {
-        return true;
-      }
-      get length() {
-        return 0;
-      }
-      get first() {
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      get last() {
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      get single() {
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      elementAt(index) {
-        dart.throw(new core.RangeError.range(index, 0, 0, "index"));
-      }
-      contains(element) {
-        return false;
-      }
-      every(test) {
-        return true;
-      }
-      any(test) {
-        return false;
-      }
-      firstWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      lastWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      singleWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        return "";
-      }
-      where(test) {
-        return this;
-      }
-      map(T) {
-        return f => {
-          return dart.const(new (_internal.EmptyIterable$(T))());
-        };
-      }
-      reduce(combine) {
-        EAndEToE()._check(combine);
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      fold(T) {
-        return (initialValue, combine) => {
-          return initialValue;
-        };
-      }
-      skip(count) {
-        core.RangeError.checkNotNegative(count, "count");
-        return this;
-      }
-      skipWhile(test) {
-        return this;
-      }
-      take(count) {
-        core.RangeError.checkNotNegative(count, "count");
-        return this;
-      }
-      takeWhile(test) {
-        return this;
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        return dart.test(growable) ? JSArrayOfE().of([]) : ListOfE().new(0);
-      }
-      toSet() {
-        return SetOfE().new();
-      }
-    }
-    EmptyIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(EmptyIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.EmptyIterable$(E), [])}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({singleWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()})})
-    });
-    dart.defineExtensionMembers(EmptyIterable, [
-      'forEach',
-      'elementAt',
-      'contains',
-      'every',
-      'any',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'join',
-      'where',
-      'map',
-      'reduce',
-      'fold',
-      'skip',
-      'skipWhile',
-      'take',
-      'takeWhile',
-      'toList',
-      'toSet',
-      'iterator',
-      'isEmpty',
-      'length',
-      'first',
-      'last',
-      'single'
-    ]);
-    return EmptyIterable;
-  });
-  _internal.EmptyIterable = EmptyIterable();
-  _internal.EmptyIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class EmptyIterator extends core.Object {
-      new() {
-      }
-      moveNext() {
-        return false;
-      }
-      get current() {
-        return null;
-      }
-    }
-    dart.addTypeTests(EmptyIterator);
-    EmptyIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(EmptyIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.EmptyIterator$(E), [])}),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return EmptyIterator;
-  });
-  _internal.EmptyIterator = EmptyIterator();
-  _internal.IterableElementError = class IterableElementError extends core.Object {
-    static noElement() {
-      return new core.StateError("No element");
-    }
-    static tooMany() {
-      return new core.StateError("Too many elements");
-    }
-    static tooFew() {
-      return new core.StateError("Too few elements");
-    }
-  };
-  dart.setSignature(_internal.IterableElementError, {
-    statics: () => ({
-      noElement: dart.definiteFunctionType(core.StateError, []),
-      tooMany: dart.definiteFunctionType(core.StateError, []),
-      tooFew: dart.definiteFunctionType(core.StateError, [])
-    }),
-    names: ['noElement', 'tooMany', 'tooFew']
-  });
-  _internal.FixedLengthListMixin$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    dart.defineExtensionNames([
-      'length',
-      'add',
-      'insert',
-      'insertAll',
-      'addAll',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'clear',
-      'removeAt',
-      'removeLast',
-      'removeRange',
-      'replaceRange'
-    ]);
-    class FixedLengthListMixin extends core.Object {
-      set length(newLength) {
-        dart.throw(new core.UnsupportedError("Cannot change the length of a fixed-length list"));
-      }
-      add(value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
-      }
-      insert(index, value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
-      }
-      insertAll(at, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
-      }
-      addAll(iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
-      }
-      remove(element) {
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-      removeWhere(test) {
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-      retainWhere(test) {
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-      clear() {
-        dart.throw(new core.UnsupportedError("Cannot clear a fixed-length list"));
-      }
-      removeAt(index) {
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-      removeLast() {
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-      removeRange(start, end) {
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-      replaceRange(start, end, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
-      }
-    }
-    dart.addTypeTests(FixedLengthListMixin);
-    dart.setSignature(FixedLengthListMixin, {
-      setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [E]),
-        insert: dart.definiteFunctionType(dart.void, [core.int, E]),
-        insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        removeAt: dart.definiteFunctionType(E, [core.int]),
-        removeLast: dart.definiteFunctionType(E, []),
-        removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-        replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()])
-      })
-    });
-    dart.defineExtensionMembers(FixedLengthListMixin, [
-      'add',
-      'insert',
-      'insertAll',
-      'addAll',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'clear',
-      'removeAt',
-      'removeLast',
-      'removeRange',
-      'replaceRange',
-      'length'
-    ]);
-    return FixedLengthListMixin;
-  });
-  _internal.FixedLengthListMixin = FixedLengthListMixin();
-  _internal.FixedLengthListBase$ = dart.generic(E => {
-    class FixedLengthListBase extends dart.mixin(collection.ListBase$(E), _internal.FixedLengthListMixin$(E)) {
-      new() {
-        super.new();
-      }
-    }
-    return FixedLengthListBase;
-  });
-  _internal.FixedLengthListBase = FixedLengthListBase();
-  const _backedList = Symbol('_backedList');
-  _internal._ListIndicesIterable = class _ListIndicesIterable extends _internal.ListIterable$(core.int) {
-    new(backedList) {
-      this[_backedList] = backedList;
-      super.new();
-    }
-    get length() {
-      return this[_backedList][dartx.length];
-    }
-    elementAt(index) {
-      core.RangeError.checkValidIndex(index, this);
-      return index;
-    }
-  };
-  dart.addSimpleTypeTests(_internal._ListIndicesIterable);
-  dart.setSignature(_internal._ListIndicesIterable, {
-    constructors: () => ({new: dart.definiteFunctionType(_internal._ListIndicesIterable, [core.List])}),
-    fields: () => ({[_backedList]: core.List})
-  });
-  dart.defineExtensionMembers(_internal._ListIndicesIterable, ['elementAt', 'length']);
-  const _values = Symbol('_values');
-  _internal.ListMapView$ = dart.generic(E => {
-    let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let MapOfint$E = () => (MapOfint$E = dart.constFn(core.Map$(core.int, E)))();
-    let intAndETovoid = () => (intAndETovoid = dart.constFn(dart.functionType(dart.void, [core.int, E])))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    class ListMapView extends core.Object {
-      new(values) {
-        this[_values] = values;
-      }
-      _get(key) {
-        return dart.test(this.containsKey(key)) ? this[_values][dartx._get](core.int._check(key)) : null;
-      }
-      get length() {
-        return this[_values][dartx.length];
-      }
-      get values() {
-        return new (SubListIterableOfE())(this[_values], 0, null);
-      }
-      get keys() {
-        return new _internal._ListIndicesIterable(this[_values]);
-      }
-      get isEmpty() {
-        return this[_values][dartx.isEmpty];
-      }
-      get isNotEmpty() {
-        return this[_values][dartx.isNotEmpty];
-      }
-      containsValue(value) {
-        return this[_values][dartx.contains](value);
-      }
-      containsKey(key) {
-        return typeof key == 'number' && dart.notNull(key) >= 0 && dart.notNull(key) < dart.notNull(this.length);
-      }
-      forEach(f) {
-        let length = this[_values][dartx.length];
-        for (let i = 0; i < dart.notNull(length); i++) {
-          f(i, this[_values][dartx._get](i));
-          if (length != this[_values][dartx.length]) {
-            dart.throw(new core.ConcurrentModificationError(this[_values]));
-          }
-        }
-      }
-      _set(key, value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
-        return value;
-      }
-      putIfAbsent(key, ifAbsent) {
-        VoidToE()._check(ifAbsent);
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
-      }
-      remove(key) {
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
-      }
-      clear() {
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
-      }
-      addAll(other) {
-        MapOfint$E()._check(other);
-        dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
-      }
-      toString() {
-        return collection.Maps.mapToString(this);
-      }
-    }
-    dart.addTypeTests(ListMapView);
-    ListMapView[dart.implements] = () => [MapOfint$E()];
-    dart.setSignature(ListMapView, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.ListMapView$(E), [ListOfE()])}),
-      fields: () => ({[_values]: ListOfE()}),
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        values: dart.definiteFunctionType(core.Iterable$(E), []),
-        keys: dart.definiteFunctionType(core.Iterable$(core.int), []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        _get: dart.definiteFunctionType(E, [core.Object]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        forEach: dart.definiteFunctionType(dart.void, [intAndETovoid()]),
-        _set: dart.definiteFunctionType(dart.void, [core.int, E]),
-        putIfAbsent: dart.definiteFunctionType(E, [core.int, VoidToE()]),
-        remove: dart.definiteFunctionType(E, [core.Object]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfint$E()])
-      })
-    });
-    dart.defineExtensionMembers(ListMapView, [
-      '_get',
-      'containsValue',
-      'containsKey',
-      'forEach',
-      '_set',
-      'putIfAbsent',
-      'remove',
-      'clear',
-      'addAll',
-      'length',
-      'values',
-      'keys',
-      'isEmpty',
-      'isNotEmpty'
-    ]);
-    return ListMapView;
-  });
-  _internal.ListMapView = ListMapView();
-  _internal.ReversedListIterable$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class ReversedListIterable extends _internal.ListIterable$(E) {
-      new(source) {
-        this[_source] = source;
-        super.new();
-      }
-      get length() {
-        return this[_source][dartx.length];
-      }
-      elementAt(index) {
-        return this[_source][dartx.elementAt](dart.notNull(this[_source][dartx.length]) - 1 - dart.notNull(index));
-      }
-    }
-    dart.setSignature(ReversedListIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_internal.ReversedListIterable$(E), [IterableOfE()])}),
-      fields: () => ({[_source]: IterableOfE()})
-    });
-    dart.defineExtensionMembers(ReversedListIterable, ['elementAt', 'length']);
-    return ReversedListIterable;
-  });
-  _internal.ReversedListIterable = ReversedListIterable();
-  _internal.UnmodifiableListError = class UnmodifiableListError extends core.Object {
-    static add() {
-      return new core.UnsupportedError("Cannot add to unmodifiable List");
-    }
-    static change() {
-      return new core.UnsupportedError("Cannot change the content of an unmodifiable List");
-    }
-    static length() {
-      return new core.UnsupportedError("Cannot change length of unmodifiable List");
-    }
-    static remove() {
-      return new core.UnsupportedError("Cannot remove from unmodifiable List");
-    }
-  };
-  dart.setSignature(_internal.UnmodifiableListError, {
-    statics: () => ({
-      add: dart.definiteFunctionType(core.UnsupportedError, []),
-      change: dart.definiteFunctionType(core.UnsupportedError, []),
-      length: dart.definiteFunctionType(core.UnsupportedError, []),
-      remove: dart.definiteFunctionType(core.UnsupportedError, [])
-    }),
-    names: ['add', 'change', 'length', 'remove']
-  });
-  _internal.NonGrowableListError = class NonGrowableListError extends core.Object {
-    static add() {
-      return new core.UnsupportedError("Cannot add to non-growable List");
-    }
-    static length() {
-      return new core.UnsupportedError("Cannot change length of non-growable List");
-    }
-    static remove() {
-      return new core.UnsupportedError("Cannot remove from non-growable List");
-    }
-  };
-  dart.setSignature(_internal.NonGrowableListError, {
-    statics: () => ({
-      add: dart.definiteFunctionType(core.UnsupportedError, []),
-      length: dart.definiteFunctionType(core.UnsupportedError, []),
-      remove: dart.definiteFunctionType(core.UnsupportedError, [])
-    }),
-    names: ['add', 'length', 'remove']
-  });
-  _internal.makeListFixedLength = function(E) {
-    return growableList => {
-      _interceptors.JSArray.markFixedList(growableList);
-      return growableList;
-    };
-  };
-  dart.lazyFn(_internal.makeListFixedLength, () => ListOfEToListOfE());
-  _internal.makeFixedListUnmodifiable = function(E) {
-    return fixedLengthList => {
-      _interceptors.JSArray.markUnmodifiableList(fixedLengthList);
-      return fixedLengthList;
-    };
-  };
-  dart.lazyFn(_internal.makeFixedListUnmodifiable, () => ListOfEToListOfE());
-  _internal.Lists = class Lists extends core.Object {
-    static copy(src, srcStart, dst, dstStart, count) {
-      if (dart.notNull(srcStart) < dart.notNull(dstStart)) {
-        for (let i = dart.notNull(srcStart) + dart.notNull(count) - 1, j = dart.notNull(dstStart) + dart.notNull(count) - 1; i >= dart.notNull(srcStart); i--, j--) {
-          dst[dartx._set](j, src[dartx._get](i));
-        }
-      } else {
-        for (let i = srcStart, j = dstStart; dart.notNull(i) < dart.notNull(srcStart) + dart.notNull(count); i = dart.notNull(i) + 1, j = dart.notNull(j) + 1) {
-          dst[dartx._set](j, src[dartx._get](i));
-        }
-      }
-    }
-    static areEqual(a, b) {
-      if (core.identical(a, b)) return true;
-      if (!core.List.is(b)) return false;
-      let length = a[dartx.length];
-      if (!dart.equals(length, dart.dload(b, 'length'))) return false;
-      for (let i = 0; i < dart.notNull(length); i++) {
-        if (!core.identical(a[dartx._get](i), dart.dindex(b, i))) return false;
-      }
-      return true;
-    }
-    static indexOf(a, element, startIndex, endIndex) {
-      if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
-        return -1;
-      }
-      if (dart.notNull(startIndex) < 0) {
-        startIndex = 0;
-      }
-      for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dart.notNull(i) + 1) {
-        if (dart.equals(a[dartx._get](i), element)) {
-          return i;
-        }
-      }
-      return -1;
-    }
-    static lastIndexOf(a, element, startIndex) {
-      if (dart.notNull(startIndex) < 0) {
-        return -1;
-      }
-      if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
-        startIndex = dart.notNull(a[dartx.length]) - 1;
-      }
-      for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
-        if (dart.equals(a[dartx._get](i), element)) {
-          return i;
-        }
-      }
-      return -1;
-    }
-    static indicesCheck(a, start, end) {
-      core.RangeError.checkValidRange(start, end, a[dartx.length]);
-    }
-    static rangeCheck(a, start, length) {
-      core.RangeError.checkNotNegative(length);
-      core.RangeError.checkNotNegative(start);
-      if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a[dartx.length])) {
-        let message = dart.str`${start} + ${length} must be in the range [0..${a[dartx.length]}]`;
-        dart.throw(new core.RangeError.range(length, 0, dart.notNull(a[dartx.length]) - dart.notNull(start), "length", message));
-      }
-    }
-  };
-  dart.setSignature(_internal.Lists, {
-    statics: () => ({
-      copy: dart.definiteFunctionType(dart.void, [core.List, core.int, core.List, core.int, core.int]),
-      areEqual: dart.definiteFunctionType(core.bool, [core.List, dart.dynamic]),
-      indexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int, core.int]),
-      lastIndexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int]),
-      indicesCheck: dart.definiteFunctionType(dart.void, [core.List, core.int, core.int]),
-      rangeCheck: dart.definiteFunctionType(dart.void, [core.List, core.int, core.int])
-    }),
-    names: ['copy', 'areEqual', 'indexOf', 'lastIndexOf', 'indicesCheck', 'rangeCheck']
-  });
-  _internal.printToZone = null;
-  _internal.printToConsole = function(line) {
-    _js_primitives.printString(dart.str`${line}`);
-  };
-  dart.lazyFn(_internal.printToConsole, () => StringTovoid$());
-  _internal.Sort = class Sort extends core.Object {
-    static sort(E) {
-      return (a, compare) => {
-        _internal.Sort._doSort(E)(a, 0, dart.notNull(a[dartx.length]) - 1, compare);
-      };
-    }
-    static sortRange(E) {
-      return (a, from, to, compare) => {
-        if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[dartx.length]) || dart.notNull(to) < dart.notNull(from)) {
-          dart.throw("OutOfRange");
-        }
-        _internal.Sort._doSort(E)(a, from, dart.notNull(to) - 1, compare);
-      };
-    }
-    static _doSort(E) {
-      return (a, left, right, compare) => {
-        if (dart.notNull(right) - dart.notNull(left) <= _internal.Sort._INSERTION_SORT_THRESHOLD) {
-          _internal.Sort._insertionSort(E)(a, left, right, compare);
-        } else {
-          _internal.Sort._dualPivotQuicksort(E)(a, left, right, compare);
-        }
-      };
-    }
-    static _insertionSort(E) {
-      return (a, left, right, compare) => {
-        for (let i = dart.notNull(left) + 1; i <= dart.notNull(right); i++) {
-          let el = a[dartx._get](i);
-          let j = i;
-          while (j > dart.notNull(left) && dart.notNull(compare(a[dartx._get](j - 1), el)) > 0) {
-            a[dartx._set](j, a[dartx._get](j - 1));
-            j--;
-          }
-          a[dartx._set](j, el);
-        }
-      };
-    }
-    static _dualPivotQuicksort(E) {
-      return (a, left, right, compare) => {
-        dart.assert(dart.notNull(right) - dart.notNull(left) > _internal.Sort._INSERTION_SORT_THRESHOLD);
-        let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6)[dartx.truncate]();
-        let index1 = dart.notNull(left) + sixth;
-        let index5 = dart.notNull(right) - sixth;
-        let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2)[dartx.truncate]();
-        let index2 = index3 - sixth;
-        let index4 = index3 + sixth;
-        let el1 = a[dartx._get](index1);
-        let el2 = a[dartx._get](index2);
-        let el3 = a[dartx._get](index3);
-        let el4 = a[dartx._get](index4);
-        let el5 = a[dartx._get](index5);
-        if (dart.notNull(compare(el1, el2)) > 0) {
-          let t = el1;
-          el1 = el2;
-          el2 = t;
-        }
-        if (dart.notNull(compare(el4, el5)) > 0) {
-          let t = el4;
-          el4 = el5;
-          el5 = t;
-        }
-        if (dart.notNull(compare(el1, el3)) > 0) {
-          let t = el1;
-          el1 = el3;
-          el3 = t;
-        }
-        if (dart.notNull(compare(el2, el3)) > 0) {
-          let t = el2;
-          el2 = el3;
-          el3 = t;
-        }
-        if (dart.notNull(compare(el1, el4)) > 0) {
-          let t = el1;
-          el1 = el4;
-          el4 = t;
-        }
-        if (dart.notNull(compare(el3, el4)) > 0) {
-          let t = el3;
-          el3 = el4;
-          el4 = t;
-        }
-        if (dart.notNull(compare(el2, el5)) > 0) {
-          let t = el2;
-          el2 = el5;
-          el5 = t;
-        }
-        if (dart.notNull(compare(el2, el3)) > 0) {
-          let t = el2;
-          el2 = el3;
-          el3 = t;
-        }
-        if (dart.notNull(compare(el4, el5)) > 0) {
-          let t = el4;
-          el4 = el5;
-          el5 = t;
-        }
-        let pivot1 = el2;
-        let pivot2 = el4;
-        a[dartx._set](index1, el1);
-        a[dartx._set](index3, el3);
-        a[dartx._set](index5, el5);
-        a[dartx._set](index2, a[dartx._get](left));
-        a[dartx._set](index4, a[dartx._get](right));
-        let less = dart.notNull(left) + 1;
-        let great = dart.notNull(right) - 1;
-        let pivots_are_equal = compare(pivot1, pivot2) == 0;
-        if (pivots_are_equal) {
-          let pivot = pivot1;
-          for (let k = less; k <= great; k++) {
-            let ak = a[dartx._get](k);
-            let comp = compare(ak, pivot);
-            if (comp == 0) continue;
-            if (dart.notNull(comp) < 0) {
-              if (k != less) {
-                a[dartx._set](k, a[dartx._get](less));
-                a[dartx._set](less, ak);
-              }
-              less++;
-            } else {
-              while (true) {
-                comp = compare(a[dartx._get](great), pivot);
-                if (dart.notNull(comp) > 0) {
-                  great--;
-                  continue;
-                } else if (dart.notNull(comp) < 0) {
-                  a[dartx._set](k, a[dartx._get](less));
-                  a[dartx._set](less++, a[dartx._get](great));
-                  a[dartx._set](great--, ak);
-                  break;
-                } else {
-                  a[dartx._set](k, a[dartx._get](great));
-                  a[dartx._set](great--, ak);
-                  break;
-                }
-              }
-            }
-          }
-        } else {
-          for (let k = less; k <= great; k++) {
-            let ak = a[dartx._get](k);
-            let comp_pivot1 = compare(ak, pivot1);
-            if (dart.notNull(comp_pivot1) < 0) {
-              if (k != less) {
-                a[dartx._set](k, a[dartx._get](less));
-                a[dartx._set](less, ak);
-              }
-              less++;
-            } else {
-              let comp_pivot2 = compare(ak, pivot2);
-              if (dart.notNull(comp_pivot2) > 0) {
-                while (true) {
-                  let comp = compare(a[dartx._get](great), pivot2);
-                  if (dart.notNull(comp) > 0) {
-                    great--;
-                    if (great < k) break;
-                    continue;
-                  } else {
-                    comp = compare(a[dartx._get](great), pivot1);
-                    if (dart.notNull(comp) < 0) {
-                      a[dartx._set](k, a[dartx._get](less));
-                      a[dartx._set](less++, a[dartx._get](great));
-                      a[dartx._set](great--, ak);
-                    } else {
-                      a[dartx._set](k, a[dartx._get](great));
-                      a[dartx._set](great--, ak);
-                    }
-                    break;
-                  }
-                }
-              }
-            }
-          }
-        }
-        a[dartx._set](left, a[dartx._get](less - 1));
-        a[dartx._set](less - 1, pivot1);
-        a[dartx._set](right, a[dartx._get](great + 1));
-        a[dartx._set](great + 1, pivot2);
-        _internal.Sort._doSort(E)(a, left, less - 2, compare);
-        _internal.Sort._doSort(E)(a, great + 2, right, compare);
-        if (pivots_are_equal) {
-          return;
-        }
-        if (less < index1 && great > index5) {
-          while (compare(a[dartx._get](less), pivot1) == 0) {
-            less++;
-          }
-          while (compare(a[dartx._get](great), pivot2) == 0) {
-            great--;
-          }
-          for (let k = less; k <= great; k++) {
-            let ak = a[dartx._get](k);
-            let comp_pivot1 = compare(ak, pivot1);
-            if (comp_pivot1 == 0) {
-              if (k != less) {
-                a[dartx._set](k, a[dartx._get](less));
-                a[dartx._set](less, ak);
-              }
-              less++;
-            } else {
-              let comp_pivot2 = compare(ak, pivot2);
-              if (comp_pivot2 == 0) {
-                while (true) {
-                  let comp = compare(a[dartx._get](great), pivot2);
-                  if (comp == 0) {
-                    great--;
-                    if (great < k) break;
-                    continue;
-                  } else {
-                    comp = compare(a[dartx._get](great), pivot1);
-                    if (dart.notNull(comp) < 0) {
-                      a[dartx._set](k, a[dartx._get](less));
-                      a[dartx._set](less++, a[dartx._get](great));
-                      a[dartx._set](great--, ak);
-                    } else {
-                      a[dartx._set](k, a[dartx._get](great));
-                      a[dartx._set](great--, ak);
-                    }
-                    break;
-                  }
-                }
-              }
-            }
-          }
-          _internal.Sort._doSort(E)(a, less, great, compare);
-        } else {
-          _internal.Sort._doSort(E)(a, less, great, compare);
-        }
-      };
-    }
-  };
-  dart.setSignature(_internal.Sort, {
-    sfields: () => ({_INSERTION_SORT_THRESHOLD: core.int}),
-    statics: () => ({
-      sort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), dart.functionType(core.int, [E, E])]]),
-      sortRange: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]]),
-      _doSort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]]),
-      _insertionSort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]]),
-      _dualPivotQuicksort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]])
-    }),
-    names: ['sort', 'sortRange', '_doSort', '_insertionSort', '_dualPivotQuicksort']
-  });
-  _internal.Sort._INSERTION_SORT_THRESHOLD = 32;
-  const _name$ = Symbol('_name');
-  const _nativeSymbol = Symbol('_nativeSymbol');
-  _internal.Symbol = class Symbol extends core.Object {
-    new(name) {
-      this[_name$] = name;
-      this[_nativeSymbol] = null;
-    }
-    es6(name, nativeSymbol) {
-      this[_name$] = name;
-      this[_nativeSymbol] = nativeSymbol;
-    }
-    unvalidated(name) {
-      this[_name$] = name;
-      this[_nativeSymbol] = null;
-    }
-    validated(name) {
-      this[_name$] = _internal.Symbol.validatePublicSymbol(name);
-      this[_nativeSymbol] = null;
-    }
-    ['=='](other) {
-      return _internal.Symbol.is(other) && this[_name$] == other[_name$] && dart.equals(this[_nativeSymbol], other[_nativeSymbol]);
-    }
-    get hashCode() {
-      let hash = this._hashCode;
-      if (hash != null) return hash;
-      let arbitraryPrime = 664597;
-      hash = 536870911 & arbitraryPrime * dart.notNull(dart.hashCode(this[_name$]));
-      this._hashCode = hash;
-      return hash;
+    get reversed() {
+      return new (ReversedListIterableOfE())(this);
     }
     toString() {
-      return dart.str`Symbol("${this[_name$]}")`;
+      return collection.IterableBase.iterableToFullString(this, '[', ']');
     }
-    static getName(symbol) {
-      return symbol[_name$];
-    }
-    static getNativeSymbol(symbol) {
-      return symbol[_nativeSymbol];
-    }
-    static validatePublicSymbol(name) {
-      if (dart.test(name[dartx.isEmpty]) || dart.test(_internal.Symbol.publicSymbolPattern.hasMatch(name))) return name;
-      if (dart.test(name[dartx.startsWith]('_'))) {
-        dart.throw(new core.ArgumentError(dart.str`"${name}" is a private identifier`));
-      }
-      dart.throw(new core.ArgumentError(dart.str`"${name}" is not a valid (qualified) symbol name`));
-    }
-    static isValidSymbol(name) {
-      return dart.test(name[dartx.isEmpty]) || dart.test(_internal.Symbol.symbolPattern.hasMatch(name));
-    }
-  };
-  dart.defineNamedConstructor(_internal.Symbol, 'es6');
-  dart.defineNamedConstructor(_internal.Symbol, 'unvalidated');
-  dart.defineNamedConstructor(_internal.Symbol, 'validated');
-  _internal.Symbol[dart.implements] = () => [core.Symbol];
-  dart.setSignature(_internal.Symbol, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_internal.Symbol, [core.String]),
-      es6: dart.definiteFunctionType(_internal.Symbol, [core.String, dart.dynamic]),
-      unvalidated: dart.definiteFunctionType(_internal.Symbol, [core.String]),
-      validated: dart.definiteFunctionType(_internal.Symbol, [core.String])
+  }
+  dart.addTypeTests(ListMixin);
+  ListMixin[dart.implements] = () => [ListOfE()];
+  dart.setSignature(ListMixin, {
+    getters: () => ({
+      iterator: dart.definiteFunctionType(core.Iterator$(E), []),
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      first: dart.definiteFunctionType(E, []),
+      last: dart.definiteFunctionType(E, []),
+      single: dart.definiteFunctionType(E, []),
+      reversed: dart.definiteFunctionType(core.Iterable$(E), [])
     }),
-    fields: () => ({
-      [_name$]: core.String,
-      [_nativeSymbol]: dart.dynamic
-    }),
-    methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])}),
-    sfields: () => ({
-      reservedWordRE: core.String,
-      publicIdentifierRE: core.String,
-      identifierRE: core.String,
-      operatorRE: core.String,
-      publicSymbolPattern: core.RegExp,
-      symbolPattern: core.RegExp
-    }),
-    statics: () => ({
-      getName: dart.definiteFunctionType(core.String, [_internal.Symbol]),
-      getNativeSymbol: dart.definiteFunctionType(dart.dynamic, [_internal.Symbol]),
-      validatePublicSymbol: dart.definiteFunctionType(core.String, [core.String]),
-      isValidSymbol: dart.definiteFunctionType(core.bool, [core.String])
-    }),
-    names: ['getName', 'getNativeSymbol', 'validatePublicSymbol', 'isValidSymbol']
-  });
-  _internal.Symbol.reservedWordRE = '(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|' + 'e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|' + 'ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|' + 'v(?:ar|oid)|w(?:hile|ith))';
-  _internal.Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)';
-  dart.defineLazy(_internal.Symbol, {
-    get publicIdentifierRE() {
-      return '(?!' + dart.str`${_internal.Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$][\\w$]*';
-    },
-    get identifierRE() {
-      return '(?!' + dart.str`${_internal.Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$_][\\w$]*';
-    },
-    get publicSymbolPattern() {
-      return core.RegExp.new(dart.str`^(?:${_internal.Symbol.operatorRE}\$|${_internal.Symbol.publicIdentifierRE}(?:=?\$|[.](?!\$)))+?\$`);
-    },
-    get symbolPattern() {
-      return core.RegExp.new(dart.str`^(?:${_internal.Symbol.operatorRE}\$|${_internal.Symbol.identifierRE}(?:=?\$|[.](?!\$)))+?\$`);
-    }
-  });
-  _isolate_helper._callInIsolate = function(isolate, func) {
-    let result = isolate.eval(func);
-    _isolate_helper._globalState.topEventLoop.run();
-    return result;
-  };
-  dart.lazyFn(_isolate_helper._callInIsolate, () => _IsolateContextAndFunctionTodynamic());
-  const _activeJsAsyncCount = Symbol('_activeJsAsyncCount');
-  _isolate_helper.enterJsAsync = function() {
-    let o = _isolate_helper._globalState.topEventLoop;
-    o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) + 1;
-  };
-  dart.fn(_isolate_helper.enterJsAsync, VoidTodynamic$());
-  _isolate_helper.leaveJsAsync = function() {
-    let o = _isolate_helper._globalState.topEventLoop;
-    o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) - 1;
-    dart.assert(dart.notNull(_isolate_helper._globalState.topEventLoop[_activeJsAsyncCount]) >= 0);
-  };
-  dart.fn(_isolate_helper.leaveJsAsync, VoidTodynamic$());
-  _isolate_helper.isWorker = function() {
-    return _isolate_helper._globalState.isWorker;
-  };
-  dart.lazyFn(_isolate_helper.isWorker, () => VoidTobool());
-  _isolate_helper._currentIsolate = function() {
-    return _isolate_helper._globalState.currentContext;
-  };
-  dart.lazyFn(_isolate_helper._currentIsolate, () => VoidTo_IsolateContext());
-  _isolate_helper.startRootIsolate = function(entry, args) {
-    args = args;
-    if (args == null) args = [];
-    if (!core.List.is(args)) {
-      dart.throw(new core.ArgumentError(dart.str`Arguments to main must be a List: ${args}`));
-    }
-    _isolate_helper._globalState = new _isolate_helper._Manager(core.Function._check(entry));
-    if (dart.test(_isolate_helper._globalState.isWorker)) return;
-    let rootContext = new _isolate_helper._IsolateContext();
-    _isolate_helper._globalState.rootContext = rootContext;
-    _isolate_helper._globalState.currentContext = rootContext;
-    if (_isolate_helper._MainFunctionArgs.is(entry)) {
-      rootContext.eval(dart.fn(() => {
-        dart.dcall(entry, args);
-      }, VoidToNull()));
-    } else if (_isolate_helper._MainFunctionArgsMessage.is(entry)) {
-      rootContext.eval(dart.fn(() => {
-        dart.dcall(entry, args, null);
-      }, VoidToNull()));
-    } else {
-      rootContext.eval(core.Function._check(entry));
-    }
-    _isolate_helper._globalState.topEventLoop.run();
-  };
-  dart.fn(_isolate_helper.startRootIsolate, dynamicAnddynamicTovoid$());
-  dart.copyProperties(_isolate_helper, {
-    get _globalState() {
-      return dart.globalState;
-    },
-    set _globalState(val) {
-      dart.globalState = val;
-    }
-  });
-  const _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment');
-  const _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandler');
-  _isolate_helper._Manager = class _Manager extends core.Object {
-    get useWorkers() {
-      return this.supportsWorkers;
-    }
-    new(entry) {
-      this.entry = entry;
-      this.nextIsolateId = 0;
-      this.currentManagerId = 0;
-      this.nextManagerId = 1;
-      this.currentContext = null;
-      this.rootContext = null;
-      this.topEventLoop = null;
-      this.fromCommandLine = null;
-      this.isWorker = null;
-      this.supportsWorkers = null;
-      this.isolates = null;
-      this.mainManager = null;
-      this.managers = null;
-      this[_nativeDetectEnvironment]();
-      this.topEventLoop = new _isolate_helper._EventLoop();
-      this.isolates = MapOfint$_IsolateContext().new();
-      this.managers = MapOfint$dynamic().new();
-      if (dart.test(this.isWorker)) {
-        this.mainManager = new _isolate_helper._MainManagerStub();
-        this[_nativeInitWorkerMessageHandler]();
-      }
-    }
-    [_nativeDetectEnvironment]() {
-      let isWindowDefined = _isolate_helper.globalWindow != null;
-      let isWorkerDefined = _isolate_helper.globalWorker != null;
-      this.isWorker = !isWindowDefined && dart.test(_isolate_helper.globalPostMessageDefined);
-      this.supportsWorkers = dart.test(this.isWorker) || isWorkerDefined && _isolate_helper.IsolateNatives.thisScript != null;
-      this.fromCommandLine = !isWindowDefined && !dart.test(this.isWorker);
-    }
-    [_nativeInitWorkerMessageHandler]() {
-      let func = (function(f, a) {
-        return function(e) {
-          f(a, e);
-        };
-      })(_isolate_helper.IsolateNatives._processWorkerMessage, this.mainManager);
-      _isolate_helper.global.onmessage = func;
-      _isolate_helper.global.dartPrint = _isolate_helper.global.dartPrint || (function(serialize) {
-        return function(object) {
-          var _self = _isolate_helper.global;
-          if (_self.console && _self.console.log) {
-            _self.console.log(object);
-          } else {
-            _self.postMessage(serialize(object));
-          }
-        };
-      })(_isolate_helper._Manager._serializePrintMessage);
-    }
-    static _serializePrintMessage(object) {
-      return _isolate_helper._serializeMessage(dart.map({command: "print", msg: object}, core.String, dart.dynamic));
-    }
-    maybeCloseWorker() {
-      if (dart.test(this.isWorker) && dart.test(this.isolates[dartx.isEmpty]) && this.topEventLoop[_activeJsAsyncCount] == 0) {
-        this.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'close'}, core.String, core.String)));
-      }
-    }
-  };
-  dart.setSignature(_isolate_helper._Manager, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._Manager, [core.Function])}),
-    fields: () => ({
-      nextIsolateId: core.int,
-      currentManagerId: core.int,
-      nextManagerId: core.int,
-      currentContext: _isolate_helper._IsolateContext,
-      rootContext: _isolate_helper._IsolateContext,
-      topEventLoop: _isolate_helper._EventLoop,
-      fromCommandLine: core.bool,
-      isWorker: core.bool,
-      supportsWorkers: core.bool,
-      isolates: MapOfint$_IsolateContext(),
-      mainManager: _isolate_helper._MainManagerStub,
-      managers: MapOfint$dynamic(),
-      entry: core.Function
-    }),
-    getters: () => ({useWorkers: dart.definiteFunctionType(core.bool, [])}),
     methods: () => ({
-      [_nativeDetectEnvironment]: dart.definiteFunctionType(dart.void, []),
-      [_nativeInitWorkerMessageHandler]: dart.definiteFunctionType(dart.void, []),
-      maybeCloseWorker: dart.definiteFunctionType(dart.void, [])
-    }),
-    statics: () => ({_serializePrintMessage: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
-    names: ['_serializePrintMessage']
+      elementAt: dart.definiteFunctionType(E, [core.int]),
+      forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
+      contains: dart.definiteFunctionType(core.bool, [core.Object]),
+      every: dart.definiteFunctionType(core.bool, [ETobool()]),
+      any: dart.definiteFunctionType(core.bool, [ETobool()]),
+      firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      singleWhere: dart.definiteFunctionType(E, [ETobool()]),
+      join: dart.definiteFunctionType(core.String, [], [core.String]),
+      where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
+      expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
+      reduce: dart.definiteFunctionType(E, [EAndEToE()]),
+      fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
+      skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
+      toSet: dart.definiteFunctionType(core.Set$(E), []),
+      add: dart.definiteFunctionType(dart.void, [E]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      [_filter]: dart.definiteFunctionType(dart.void, [dynamicTobool(), core.bool]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      removeLast: dart.definiteFunctionType(E, []),
+      sort: dart.definiteFunctionType(dart.void, [], [EAndEToint()]),
+      shuffle: dart.definiteFunctionType(dart.void, [], [math.Random]),
+      asMap: dart.definiteFunctionType(core.Map$(core.int, E), []),
+      sublist: dart.definiteFunctionType(core.List$(E), [core.int], [core.int]),
+      getRange: dart.definiteFunctionType(core.Iterable$(E), [core.int, core.int]),
+      removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+      fillRange: dart.definiteFunctionType(dart.void, [core.int, core.int], [E]),
+      setRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
+      replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
+      indexOf: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+      lastIndexOf: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+      insert: dart.definiteFunctionType(dart.void, [core.int, E]),
+      removeAt: dart.definiteFunctionType(E, [core.int]),
+      insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      setAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()])
+    })
   });
-  const _scheduledControlEvents = Symbol('_scheduledControlEvents');
-  const _isExecutingEvent = Symbol('_isExecutingEvent');
-  const _id = Symbol('_id');
-  const _updateGlobalState = Symbol('_updateGlobalState');
-  const _setGlobals = Symbol('_setGlobals');
-  const _addRegistration = Symbol('_addRegistration');
-  const _close = Symbol('_close');
-  _isolate_helper._IsolateContext = class _IsolateContext extends core.Object {
+  dart.defineExtensionMembers(ListMixin, [
+    'elementAt',
+    'forEach',
+    'contains',
+    'every',
+    'any',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'join',
+    'where',
+    'map',
+    'expand',
+    'reduce',
+    'fold',
+    'skip',
+    'skipWhile',
+    'take',
+    'takeWhile',
+    'toList',
+    'toSet',
+    'add',
+    'addAll',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'clear',
+    'removeLast',
+    'sort',
+    'shuffle',
+    'asMap',
+    'sublist',
+    'getRange',
+    'removeRange',
+    'fillRange',
+    'setRange',
+    'replaceRange',
+    'indexOf',
+    'lastIndexOf',
+    'insert',
+    'removeAt',
+    'insertAll',
+    'setAll',
+    'toString',
+    'iterator',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'last',
+    'single',
+    'reversed'
+  ]);
+  return ListMixin;
+});
+collection.ListMixin = ListMixin();
+collection.ListBase$ = dart.generic(E => {
+  class ListBase extends dart.mixin(core.Object, collection.ListMixin$(E)) {
+    static listToString(list) {
+      return collection.IterableBase.iterableToFullString(list, '[', ']');
+    }
+  }
+  dart.addTypeTests(ListBase);
+  dart.setSignature(ListBase, {
+    statics: () => ({listToString: dart.definiteFunctionType(core.String, [core.List])}),
+    names: ['listToString']
+  });
+  return ListBase;
+});
+collection.ListBase = ListBase();
+_internal.UnmodifiableListMixin$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
+  class UnmodifiableListMixin extends core.Object {
+    _set(index, value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
+      return value;
+    }
+    set length(newLength) {
+      dart.throw(new core.UnsupportedError("Cannot change the length of an unmodifiable list"));
+    }
+    setAll(at, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
+    }
+    add(value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
+    }
+    insert(index, element) {
+      E._check(element);
+      dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
+    }
+    insertAll(at, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
+    }
+    addAll(iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list"));
+    }
+    remove(element) {
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    removeWhere(test) {
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    retainWhere(test) {
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    sort(compare) {
+      if (compare === void 0) compare = null;
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
+    }
+    shuffle(random) {
+      if (random === void 0) random = null;
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
+    }
+    clear() {
+      dart.throw(new core.UnsupportedError("Cannot clear an unmodifiable list"));
+    }
+    removeAt(index) {
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    removeLast() {
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    setRange(start, end, iterable, skipCount) {
+      IterableOfE()._check(iterable);
+      if (skipCount === void 0) skipCount = 0;
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
+    }
+    removeRange(start, end) {
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    replaceRange(start, end, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
+    }
+    fillRange(start, end, fillValue) {
+      if (fillValue === void 0) fillValue = null;
+      E._check(fillValue);
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list"));
+    }
+  }
+  dart.addTypeTests(UnmodifiableListMixin);
+  UnmodifiableListMixin[dart.implements] = () => [ListOfE()];
+  dart.setSignature(UnmodifiableListMixin, {
+    setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
+    methods: () => ({
+      _set: dart.definiteFunctionType(dart.void, [core.int, E]),
+      setAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      add: dart.definiteFunctionType(dart.void, [E]),
+      insert: dart.definiteFunctionType(dart.void, [core.int, E]),
+      insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      sort: dart.definiteFunctionType(dart.void, [], [ComparatorOfE()]),
+      shuffle: dart.definiteFunctionType(dart.void, [], [math.Random]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      removeAt: dart.definiteFunctionType(E, [core.int]),
+      removeLast: dart.definiteFunctionType(E, []),
+      setRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
+      removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+      replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
+      fillRange: dart.definiteFunctionType(dart.void, [core.int, core.int], [E])
+    })
+  });
+  dart.defineExtensionMembers(UnmodifiableListMixin, [
+    '_set',
+    'setAll',
+    'add',
+    'insert',
+    'insertAll',
+    'addAll',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'sort',
+    'shuffle',
+    'clear',
+    'removeAt',
+    'removeLast',
+    'setRange',
+    'removeRange',
+    'replaceRange',
+    'fillRange',
+    'length'
+  ]);
+  return UnmodifiableListMixin;
+});
+_internal.UnmodifiableListMixin = UnmodifiableListMixin();
+_internal.UnmodifiableListBase$ = dart.generic(E => {
+  class UnmodifiableListBase extends dart.mixin(collection.ListBase$(E), _internal.UnmodifiableListMixin$(E)) {
     new() {
-      this.id = (() => {
-        let o = _isolate_helper._globalState, x = o.nextIsolateId;
-        o.nextIsolateId = dart.notNull(x) + 1;
-        return x;
-      })();
-      this.ports = MapOfint$RawReceivePortImpl().new();
-      this.weakPorts = SetOfint().new();
-      this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE();
-      this.controlPort = new _isolate_helper.RawReceivePortImpl._controlPort();
-      this.pauseCapability = isolate.Capability.new();
-      this.terminateCapability = isolate.Capability.new();
-      this.delayedEvents = JSArrayOf_IsolateEvent().of([]);
-      this.pauseTokens = SetOfCapability().new();
-      this.errorPorts = SetOfSendPort().new();
-      this.initialized = false;
-      this.isPaused = false;
-      this.doneHandlers = null;
-      this[_scheduledControlEvents] = null;
-      this[_isExecutingEvent] = false;
-      this.errorsAreFatal = true;
-      this.registerWeak(this.controlPort[_id], this.controlPort);
+      super.new();
     }
-    addPause(authentification, resume) {
-      if (!dart.equals(this.pauseCapability, authentification)) return;
-      if (dart.test(this.pauseTokens.add(resume)) && !dart.test(this.isPaused)) {
-        this.isPaused = true;
+  }
+  return UnmodifiableListBase;
+});
+_internal.UnmodifiableListBase = UnmodifiableListBase();
+core.int = class int extends core.num {
+  static fromEnvironment(name, opts) {
+    let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
+    dart.throw(new core.UnsupportedError('int.fromEnvironment can only be used as a const constructor'));
+  }
+  static parse(source, opts) {
+    let radix = opts && 'radix' in opts ? opts.radix : null;
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    return _js_helper.Primitives.parseInt(source, radix, onError);
+  }
+};
+core.int.is = function is_int(o) {
+  return typeof o == "number" && Math.floor(o) == o;
+};
+core.int.as = function as_int(o) {
+  if (typeof o == "number" && Math.floor(o) == o || o == null) return o;
+  return dart.as(o, core.int);
+};
+core.int._check = function check_int(o) {
+  if (typeof o == "number" && Math.floor(o) == o || o == null) return o;
+  return dart.check(o, core.int);
+};
+dart.setSignature(core.int, {
+  constructors: () => ({fromEnvironment: dart.definiteFunctionType(core.int, [core.String], {defaultValue: core.int})}),
+  statics: () => ({parse: dart.definiteFunctionType(core.int, [core.String], {radix: core.int, onError: StringToint()})}),
+  names: ['parse']
+});
+_internal.CodeUnits = class CodeUnits extends _internal.UnmodifiableListBase$(core.int) {
+  new(string) {
+    this[_string] = string;
+  }
+  get length() {
+    return this[_string][dartx.length];
+  }
+  set length(value) {
+    super.length = value;
+  }
+  _get(i) {
+    return this[_string][dartx.codeUnitAt](i);
+  }
+  static stringOf(u) {
+    return u[_string];
+  }
+};
+dart.addSimpleTypeTests(_internal.CodeUnits);
+dart.setSignature(_internal.CodeUnits, {
+  constructors: () => ({new: dart.definiteFunctionType(_internal.CodeUnits, [core.String])}),
+  fields: () => ({[_string]: core.String}),
+  getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({_get: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({stringOf: dart.definiteFunctionType(core.String, [_internal.CodeUnits])}),
+  names: ['stringOf']
+});
+dart.defineExtensionMembers(_internal.CodeUnits, ['_get', 'length']);
+_internal.EfficientLength = class EfficientLength extends core.Object {};
+core.Iterable$ = dart.generic(E => {
+  let EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
+  let _GeneratorIterableOfE = () => (_GeneratorIterableOfE = dart.constFn(core._GeneratorIterable$(E)))();
+  let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
+  let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
+  let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
+  let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
+  let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let intToE = () => (intToE = dart.constFn(dart.functionType(E, [core.int])))();
+  dart.defineExtensionNames([
+    'map',
+    'where',
+    'expand',
+    'contains',
+    'forEach',
+    'reduce',
+    'fold',
+    'every',
+    'join',
+    'any',
+    'toList',
+    'toSet',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'take',
+    'takeWhile',
+    'skip',
+    'skipWhile',
+    'first',
+    'last',
+    'single',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'elementAt',
+    'toString'
+  ]);
+  class Iterable extends core.Object {
+    new() {
+    }
+    static generate(count, generator) {
+      if (generator === void 0) generator = null;
+      if (dart.notNull(count) <= 0) return new (EmptyIterableOfE())();
+      return new (_GeneratorIterableOfE())(count, generator);
+    }
+    static empty() {
+      return new (EmptyIterableOfE())();
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this[dartx.iterator]);
+    }
+    map(T) {
+      return f => {
+        return _internal.MappedIterable$(E, T).new(this, f);
+      };
+    }
+    where(test) {
+      return new (WhereIterableOfE())(this, test);
+    }
+    expand(T) {
+      return f => {
+        return new (_internal.ExpandIterable$(E, T))(this, f);
+      };
+    }
+    contains(element) {
+      for (let e of this) {
+        if (dart.equals(e, element)) return true;
       }
-      this[_updateGlobalState]();
+      return false;
     }
-    removePause(resume) {
-      if (!dart.test(this.isPaused)) return;
-      this.pauseTokens.remove(resume);
-      if (dart.test(this.pauseTokens.isEmpty)) {
-        while (dart.test(this.delayedEvents[dartx.isNotEmpty])) {
-          let event = this.delayedEvents[dartx.removeLast]();
-          _isolate_helper._globalState.topEventLoop.prequeue(event);
+    forEach(f) {
+      for (let element of this)
+        f(element);
+    }
+    reduce(combine) {
+      EAndEToE()._check(combine);
+      let iterator = this[dartx.iterator];
+      if (!dart.test(iterator.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
+      let value = iterator.current;
+      while (dart.test(iterator.moveNext())) {
+        value = combine(value, iterator.current);
+      }
+      return value;
+    }
+    fold(T) {
+      return (initialValue, combine) => {
+        let value = initialValue;
+        for (let element of this)
+          value = combine(value, element);
+        return value;
+      };
+    }
+    every(f) {
+      for (let element of this) {
+        if (!dart.test(f(element))) return false;
+      }
+      return true;
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      let iterator = this[dartx.iterator];
+      if (!dart.test(iterator.moveNext())) return "";
+      let buffer = new core.StringBuffer();
+      if (separator == null || separator == "") {
+        do {
+          buffer.write(dart.str`${iterator.current}`);
+        } while (dart.test(iterator.moveNext()));
+      } else {
+        buffer.write(dart.str`${iterator.current}`);
+        while (dart.test(iterator.moveNext())) {
+          buffer.write(separator);
+          buffer.write(dart.str`${iterator.current}`);
         }
-        this.isPaused = false;
       }
-      this[_updateGlobalState]();
+      return buffer.toString();
     }
-    addDoneListener(responsePort) {
-      if (this.doneHandlers == null) {
-        this.doneHandlers = [];
+    any(f) {
+      for (let element of this) {
+        if (dart.test(f(element))) return true;
       }
-      if (dart.test(dart.dsend(this.doneHandlers, 'contains', responsePort))) return;
-      dart.dsend(this.doneHandlers, 'add', responsePort);
+      return false;
     }
-    removeDoneListener(responsePort) {
-      if (this.doneHandlers == null) return;
-      dart.dsend(this.doneHandlers, 'remove', responsePort);
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      return ListOfE().from(this, {growable: growable});
     }
-    setErrorsFatal(authentification, errorsAreFatal) {
-      if (!dart.equals(this.terminateCapability, authentification)) return;
-      this.errorsAreFatal = errorsAreFatal;
+    toSet() {
+      return SetOfE().from(this);
     }
-    handlePing(responsePort, pingType) {
-      if (pingType == isolate.Isolate.IMMEDIATE || pingType == isolate.Isolate.BEFORE_NEXT_EVENT && !dart.test(this[_isExecutingEvent])) {
-        responsePort.send(null);
-        return;
+    get length() {
+      dart.assert(!_internal.EfficientLength.is(this));
+      let count = 0;
+      let it = this[dartx.iterator];
+      while (dart.test(it.moveNext())) {
+        count++;
       }
-      function respond() {
-        responsePort.send(null);
-      }
-      dart.fn(respond, VoidTovoid$());
-      if (pingType == isolate.Isolate.AS_EVENT) {
-        _isolate_helper._globalState.topEventLoop.enqueue(this, respond, "ping");
-        return;
-      }
-      dart.assert(pingType == isolate.Isolate.BEFORE_NEXT_EVENT);
-      if (this[_scheduledControlEvents] == null) {
-        this[_scheduledControlEvents] = collection.Queue.new();
-      }
-      dart.dsend(this[_scheduledControlEvents], 'addLast', respond);
+      return count;
     }
-    handleKill(authentification, priority) {
-      if (!dart.equals(this.terminateCapability, authentification)) return;
-      if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.BEFORE_NEXT_EVENT && !dart.test(this[_isExecutingEvent])) {
-        this.kill();
-        return;
-      }
-      if (priority == isolate.Isolate.AS_EVENT) {
-        _isolate_helper._globalState.topEventLoop.enqueue(this, dart.bind(this, 'kill'), "kill");
-        return;
-      }
-      dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT);
-      if (this[_scheduledControlEvents] == null) {
-        this[_scheduledControlEvents] = collection.Queue.new();
-      }
-      dart.dsend(this[_scheduledControlEvents], 'addLast', dart.bind(this, 'kill'));
+    get isEmpty() {
+      return !dart.test(this[dartx.iterator].moveNext());
     }
-    addErrorListener(port) {
-      this.errorPorts.add(port);
+    get isNotEmpty() {
+      return !dart.test(this[dartx.isEmpty]);
     }
-    removeErrorListener(port) {
-      this.errorPorts.remove(port);
+    take(count) {
+      return TakeIterableOfE().new(this, count);
     }
-    handleUncaughtError(error, stackTrace) {
-      if (dart.test(this.errorPorts.isEmpty)) {
-        if (dart.test(this.errorsAreFatal) && core.identical(this, _isolate_helper._globalState.rootContext)) {
-          return;
-        }
-        if (_isolate_helper.global.console && _isolate_helper.global.console.error) {
-          _isolate_helper.global.console.error(error, stackTrace);
-        } else {
-          core.print(error);
-          if (stackTrace != null) core.print(stackTrace);
-        }
-        return;
+    takeWhile(test) {
+      return new (TakeWhileIterableOfE())(this, test);
+    }
+    skip(count) {
+      return SkipIterableOfE().new(this, count);
+    }
+    skipWhile(test) {
+      return new (SkipWhileIterableOfE())(this, test);
+    }
+    get first() {
+      let it = this[dartx.iterator];
+      if (!dart.test(it.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
       }
-      let message = core.List.new(2);
-      message[dartx._set](0, dart.toString(error));
-      message[dartx._set](1, stackTrace == null ? null : dart.toString(stackTrace));
-      for (let port of this.errorPorts)
-        port.send(message);
+      return it.current;
     }
-    eval(code) {
-      let old = _isolate_helper._globalState.currentContext;
-      _isolate_helper._globalState.currentContext = this;
-      this[_setGlobals]();
+    get last() {
+      let it = this[dartx.iterator];
+      if (!dart.test(it.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
       let result = null;
-      this[_isExecutingEvent] = true;
-      try {
-        result = dart.dcall(code);
-      } catch (e) {
-        let s = dart.stackTrace(e);
-        this.handleUncaughtError(e, s);
-        if (dart.test(this.errorsAreFatal)) {
-          this.kill();
-          if (core.identical(this, _isolate_helper._globalState.rootContext)) {
-            throw e;
-          }
+      do {
+        result = it.current;
+      } while (dart.test(it.moveNext()));
+      return result;
+    }
+    get single() {
+      let it = this[dartx.iterator];
+      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
+      let result = it.current;
+      if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
+      return result;
+    }
+    firstWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      for (let element of this) {
+        if (dart.test(test(element))) return element;
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    lastWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let result = null;
+      let foundMatching = false;
+      for (let element of this) {
+        if (dart.test(test(element))) {
+          result = element;
+          foundMatching = true;
         }
       }
- finally {
-        this[_isExecutingEvent] = false;
-        _isolate_helper._globalState.currentContext = old;
-        if (old != null) old[_setGlobals]();
-        if (this[_scheduledControlEvents] != null) {
-          while (dart.test(dart.dload(this[_scheduledControlEvents], 'isNotEmpty'))) {
-            dart.dcall(dart.dsend(this[_scheduledControlEvents], 'removeFirst'));
+      if (foundMatching) return result;
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    singleWhere(test) {
+      let result = null;
+      let foundMatching = false;
+      for (let element of this) {
+        if (dart.test(test(element))) {
+          if (foundMatching) {
+            dart.throw(_internal.IterableElementError.tooMany());
+          }
+          result = element;
+          foundMatching = true;
+        }
+      }
+      if (foundMatching) return result;
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    elementAt(index) {
+      if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
+      core.RangeError.checkNotNegative(index, "index");
+      let elementIndex = 0;
+      for (let element of this) {
+        if (index == elementIndex) return element;
+        elementIndex++;
+      }
+      dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
+    }
+    toString() {
+      return collection.IterableBase.iterableToShortString(this, '(', ')');
+    }
+  }
+  dart.addTypeTests(Iterable);
+  dart.setSignature(Iterable, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(core.Iterable$(E), []),
+      generate: dart.definiteFunctionType(core.Iterable$(E), [core.int], [intToE()]),
+      empty: dart.definiteFunctionType(core.Iterable$(E), [])
+    }),
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      first: dart.definiteFunctionType(E, []),
+      last: dart.definiteFunctionType(E, []),
+      single: dart.definiteFunctionType(E, [])
+    }),
+    methods: () => ({
+      map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
+      where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
+      contains: dart.definiteFunctionType(core.bool, [core.Object]),
+      forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
+      reduce: dart.definiteFunctionType(E, [EAndEToE()]),
+      fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
+      every: dart.definiteFunctionType(core.bool, [ETobool()]),
+      join: dart.definiteFunctionType(core.String, [], [core.String]),
+      any: dart.definiteFunctionType(core.bool, [ETobool()]),
+      toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
+      toSet: dart.definiteFunctionType(core.Set$(E), []),
+      take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      singleWhere: dart.definiteFunctionType(E, [ETobool()]),
+      elementAt: dart.definiteFunctionType(E, [core.int])
+    })
+  });
+  dart.defineExtensionMembers(Iterable, [
+    'map',
+    'where',
+    'expand',
+    'contains',
+    'forEach',
+    'reduce',
+    'fold',
+    'every',
+    'join',
+    'any',
+    'toList',
+    'toSet',
+    'take',
+    'takeWhile',
+    'skip',
+    'skipWhile',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'elementAt',
+    'toString',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'last',
+    'single'
+  ]);
+  return Iterable;
+});
+core.Iterable = Iterable();
+_internal.ListIterable$ = dart.generic(E => {
+  let ListIteratorOfE = () => (ListIteratorOfE = dart.constFn(_internal.ListIterator$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let dynamicAndEToE = () => (dynamicAndEToE = dart.constFn(dart.functionType(E, [dart.dynamic, E])))();
+  let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  class ListIterable extends core.Iterable$(E) {
+    new() {
+      super.new();
+    }
+    get iterator() {
+      return new (ListIteratorOfE())(this);
+    }
+    forEach(action) {
+      let length = this.length;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        action(this.elementAt(i));
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+    }
+    get isEmpty() {
+      return this.length == 0;
+    }
+    get first() {
+      if (this.length == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this.elementAt(0);
+    }
+    get last() {
+      if (this.length == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this.elementAt(dart.notNull(this.length) - 1);
+    }
+    get single() {
+      if (this.length == 0) dart.throw(_internal.IterableElementError.noElement());
+      if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
+      return this.elementAt(0);
+    }
+    contains(element) {
+      let length = this.length;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        if (dart.equals(this.elementAt(i), element)) return true;
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return false;
+    }
+    every(test) {
+      let length = this.length;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        if (!dart.test(test(this.elementAt(i)))) return false;
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return true;
+    }
+    any(test) {
+      let length = this.length;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        if (dart.test(test(this.elementAt(i)))) return true;
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return false;
+    }
+    firstWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let length = this.length;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        let element = this.elementAt(i);
+        if (dart.test(test(element))) return element;
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    lastWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let length = this.length;
+      for (let i = dart.notNull(length) - 1; i >= 0; i--) {
+        let element = this.elementAt(i);
+        if (dart.test(test(element))) return element;
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    singleWhere(test) {
+      let length = this.length;
+      let match = null;
+      let matchFound = false;
+      for (let i = 0; i < dart.notNull(length); i++) {
+        let element = this.elementAt(i);
+        if (dart.test(test(element))) {
+          if (matchFound) {
+            dart.throw(_internal.IterableElementError.tooMany());
+          }
+          matchFound = true;
+          match = element;
+        }
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      if (matchFound) return match;
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      let length = this.length;
+      if (!dart.test(separator[dartx.isEmpty])) {
+        if (length == 0) return "";
+        let first = dart.str`${this.elementAt(0)}`;
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+        let buffer = new core.StringBuffer(first);
+        for (let i = 1; i < dart.notNull(length); i++) {
+          buffer.write(separator);
+          buffer.write(this.elementAt(i));
+          if (length != this.length) {
+            dart.throw(new core.ConcurrentModificationError(this));
           }
         }
+        return buffer.toString();
+      } else {
+        let buffer = new core.StringBuffer();
+        for (let i = 0; i < dart.notNull(length); i++) {
+          buffer.write(this.elementAt(i));
+          if (length != this.length) {
+            dart.throw(new core.ConcurrentModificationError(this));
+          }
+        }
+        return buffer.toString();
+      }
+    }
+    where(test) {
+      return super.where(test);
+    }
+    map(T) {
+      return f => {
+        return new (_internal.MappedListIterable$(E, T))(this, f);
+      };
+    }
+    reduce(combine) {
+      dynamicAndEToE()._check(combine);
+      let length = this.length;
+      if (length == 0) dart.throw(_internal.IterableElementError.noElement());
+      let value = this.elementAt(0);
+      for (let i = 1; i < dart.notNull(length); i++) {
+        value = dart.dcall(combine, value, this.elementAt(i));
+        if (length != this.length) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+      return value;
+    }
+    fold(T) {
+      return (initialValue, combine) => {
+        let value = initialValue;
+        let length = this.length;
+        for (let i = 0; i < dart.notNull(length); i++) {
+          value = combine(value, this.elementAt(i));
+          if (length != this.length) {
+            dart.throw(new core.ConcurrentModificationError(this));
+          }
+        }
+        return value;
+      };
+    }
+    skip(count) {
+      return new (SubListIterableOfE())(this, count, null);
+    }
+    skipWhile(test) {
+      return super.skipWhile(test);
+    }
+    take(count) {
+      return new (SubListIterableOfE())(this, 0, count);
+    }
+    takeWhile(test) {
+      return super.takeWhile(test);
+    }
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let result = null;
+      if (dart.test(growable)) {
+        result = ListOfE().new();
+        result[dartx.length] = this.length;
+      } else {
+        result = ListOfE().new(this.length);
+      }
+      for (let i = 0; i < dart.notNull(this.length); i++) {
+        result[dartx._set](i, this.elementAt(i));
       }
       return result;
     }
-    [_setGlobals]() {
-      _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics);
+    toSet() {
+      let result = SetOfE().new();
+      for (let i = 0; i < dart.notNull(this.length); i++) {
+        result.add(this.elementAt(i));
+      }
+      return result;
     }
-    handleControlMessage(message) {
-      switch (dart.dindex(message, 0)) {
-        case "pause":
-        {
-          this.addPause(isolate.Capability._check(dart.dindex(message, 1)), isolate.Capability._check(dart.dindex(message, 2)));
-          break;
+  }
+  ListIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(ListIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.ListIterable$(E), [])}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({reduce: dart.definiteFunctionType(E, [dynamicAndEToE()])})
+  });
+  dart.defineExtensionMembers(ListIterable, [
+    'forEach',
+    'contains',
+    'every',
+    'any',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'join',
+    'where',
+    'map',
+    'reduce',
+    'fold',
+    'skip',
+    'skipWhile',
+    'take',
+    'takeWhile',
+    'toList',
+    'toSet',
+    'iterator',
+    'isEmpty',
+    'first',
+    'last',
+    'single'
+  ]);
+  return ListIterable;
+});
+_internal.ListIterable = ListIterable();
+const _iterable$ = Symbol('_iterable');
+const _start = Symbol('_start');
+const _endOrLength = Symbol('_endOrLength');
+const _endIndex = Symbol('_endIndex');
+const _startIndex = Symbol('_startIndex');
+_internal.SubListIterable$ = dart.generic(E => {
+  let EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
+  let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class SubListIterable extends _internal.ListIterable$(E) {
+    new(iterable, start, endOrLength) {
+      this[_iterable$] = iterable;
+      this[_start] = start;
+      this[_endOrLength] = endOrLength;
+      super.new();
+      core.RangeError.checkNotNegative(this[_start], "start");
+      if (this[_endOrLength] != null) {
+        core.RangeError.checkNotNegative(this[_endOrLength], "end");
+        if (dart.notNull(this[_start]) > dart.notNull(this[_endOrLength])) {
+          dart.throw(new core.RangeError.range(this[_start], 0, this[_endOrLength], "start"));
         }
-        case "resume":
-        {
-          this.removePause(isolate.Capability._check(dart.dindex(message, 1)));
-          break;
-        }
-        case 'add-ondone':
-        {
-          this.addDoneListener(isolate.SendPort._check(dart.dindex(message, 1)));
-          break;
-        }
-        case 'remove-ondone':
-        {
-          this.removeDoneListener(isolate.SendPort._check(dart.dindex(message, 1)));
-          break;
-        }
-        case 'set-errors-fatal':
-        {
-          this.setErrorsFatal(isolate.Capability._check(dart.dindex(message, 1)), core.bool._check(dart.dindex(message, 2)));
-          break;
-        }
-        case "ping":
-        {
-          this.handlePing(isolate.SendPort._check(dart.dindex(message, 1)), core.int._check(dart.dindex(message, 2)));
-          break;
-        }
-        case "kill":
-        {
-          this.handleKill(isolate.Capability._check(dart.dindex(message, 1)), core.int._check(dart.dindex(message, 2)));
-          break;
-        }
-        case "getErrors":
-        {
-          this.addErrorListener(isolate.SendPort._check(dart.dindex(message, 1)));
-          break;
-        }
-        case "stopErrors":
-        {
-          this.removeErrorListener(isolate.SendPort._check(dart.dindex(message, 1)));
-          break;
-        }
-        default:
       }
     }
-    lookup(portId) {
-      return this.ports[dartx._get](portId);
+    get [_endIndex]() {
+      let length = this[_iterable$][dartx.length];
+      if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dart.notNull(length)) return length;
+      return this[_endOrLength];
     }
-    [_addRegistration](portId, port) {
-      if (dart.test(this.ports[dartx.containsKey](portId))) {
-        dart.throw(core.Exception.new("Registry: ports must be registered only once."));
+    get [_startIndex]() {
+      let length = this[_iterable$][dartx.length];
+      if (dart.notNull(this[_start]) > dart.notNull(length)) return length;
+      return this[_start];
+    }
+    get length() {
+      let length = this[_iterable$][dartx.length];
+      if (dart.notNull(this[_start]) >= dart.notNull(length)) return 0;
+      if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= dart.notNull(length)) {
+        return dart.notNull(length) - dart.notNull(this[_start]);
       }
-      this.ports[dartx._set](portId, port);
+      return dart.notNull(this[_endOrLength]) - dart.notNull(this[_start]);
     }
-    register(portId, port) {
-      this[_addRegistration](portId, port);
-      this[_updateGlobalState]();
+    elementAt(index) {
+      let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index);
+      if (dart.notNull(index) < 0 || realIndex >= dart.notNull(this[_endIndex])) {
+        dart.throw(core.RangeError.index(index, this, "index"));
+      }
+      return this[_iterable$][dartx.elementAt](realIndex);
     }
-    registerWeak(portId, port) {
-      this.weakPorts.add(portId);
-      this[_addRegistration](portId, port);
+    skip(count) {
+      core.RangeError.checkNotNegative(count, "count");
+      let newStart = dart.notNull(this[_start]) + dart.notNull(count);
+      if (this[_endOrLength] != null && newStart >= dart.notNull(this[_endOrLength])) {
+        return new (EmptyIterableOfE())();
+      }
+      return new (SubListIterableOfE())(this[_iterable$], newStart, this[_endOrLength]);
     }
-    [_updateGlobalState]() {
-      if (dart.notNull(this.ports[dartx.length]) - dart.notNull(this.weakPorts.length) > 0 || dart.test(this.isPaused) || !dart.test(this.initialized)) {
-        _isolate_helper._globalState.isolates[dartx._set](this.id, this);
+    take(count) {
+      core.RangeError.checkNotNegative(count, "count");
+      if (this[_endOrLength] == null) {
+        return new (SubListIterableOfE())(this[_iterable$], this[_start], dart.notNull(this[_start]) + dart.notNull(count));
       } else {
-        this.kill();
+        let newEnd = dart.notNull(this[_start]) + dart.notNull(count);
+        if (dart.notNull(this[_endOrLength]) < newEnd) return this;
+        return new (SubListIterableOfE())(this[_iterable$], this[_start], newEnd);
       }
     }
-    kill() {
-      if (this[_scheduledControlEvents] != null) {
-        dart.dsend(this[_scheduledControlEvents], 'clear');
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let start = this[_start];
+      let end = this[_iterable$][dartx.length];
+      if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dart.notNull(end)) end = this[_endOrLength];
+      let length = dart.notNull(end) - dart.notNull(start);
+      if (length < 0) length = 0;
+      let result = dart.test(growable) ? (() => {
+        let _ = ListOfE().new();
+        _[dartx.length] = length;
+        return _;
+      })() : ListOfE().new(length);
+      for (let i = 0; i < length; i++) {
+        result[dartx._set](i, this[_iterable$][dartx.elementAt](dart.notNull(start) + i));
+        if (dart.notNull(this[_iterable$][dartx.length]) < dart.notNull(end)) dart.throw(new core.ConcurrentModificationError(this));
       }
-      for (let port of this.ports[dartx.values]) {
-        port[_close]();
-      }
-      this.ports[dartx.clear]();
-      this.weakPorts.clear();
-      _isolate_helper._globalState.isolates[dartx.remove](this.id);
-      this.errorPorts.clear();
-      if (this.doneHandlers != null) {
-        for (let port of core.Iterable._check(this.doneHandlers)) {
-          isolate.SendPort._check(port);
-          port.send(null);
-        }
-        this.doneHandlers = null;
-      }
+      return result;
     }
-    unregister(portId) {
-      this.ports[dartx.remove](portId);
-      this.weakPorts.remove(portId);
-      this[_updateGlobalState]();
-    }
-  };
-  _isolate_helper._IsolateContext[dart.implements] = () => [_foreign_helper.IsolateContext];
-  dart.setSignature(_isolate_helper._IsolateContext, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._IsolateContext, [])}),
+  }
+  dart.setSignature(SubListIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.SubListIterable$(E), [IterableOfE(), core.int, core.int])}),
     fields: () => ({
-      id: core.int,
-      ports: MapOfint$RawReceivePortImpl(),
-      weakPorts: SetOfint(),
-      isolateStatics: dart.dynamic,
-      controlPort: _isolate_helper.RawReceivePortImpl,
-      pauseCapability: isolate.Capability,
-      terminateCapability: isolate.Capability,
-      initialized: core.bool,
-      isPaused: core.bool,
-      delayedEvents: ListOf_IsolateEvent(),
-      pauseTokens: SetOfCapability(),
-      doneHandlers: dart.dynamic,
-      [_scheduledControlEvents]: dart.dynamic,
-      [_isExecutingEvent]: core.bool,
-      errorsAreFatal: core.bool,
-      errorPorts: SetOfSendPort()
+      [_iterable$]: IterableOfE(),
+      [_start]: core.int,
+      [_endOrLength]: core.int
     }),
-    methods: () => ({
-      addPause: dart.definiteFunctionType(dart.void, [isolate.Capability, isolate.Capability]),
-      removePause: dart.definiteFunctionType(dart.void, [isolate.Capability]),
-      addDoneListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      removeDoneListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      setErrorsFatal: dart.definiteFunctionType(dart.void, [isolate.Capability, core.bool]),
-      handlePing: dart.definiteFunctionType(dart.void, [isolate.SendPort, core.int]),
-      handleKill: dart.definiteFunctionType(dart.void, [isolate.Capability, core.int]),
-      addErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      removeErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      handleUncaughtError: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
-      eval: dart.definiteFunctionType(dart.dynamic, [core.Function]),
-      [_setGlobals]: dart.definiteFunctionType(dart.void, []),
-      handleControlMessage: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      lookup: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [core.int]),
-      [_addRegistration]: dart.definiteFunctionType(dart.void, [core.int, _isolate_helper.RawReceivePortImpl]),
-      register: dart.definiteFunctionType(dart.void, [core.int, _isolate_helper.RawReceivePortImpl]),
-      registerWeak: dart.definiteFunctionType(dart.void, [core.int, _isolate_helper.RawReceivePortImpl]),
-      [_updateGlobalState]: dart.definiteFunctionType(dart.void, []),
-      kill: dart.definiteFunctionType(dart.void, []),
-      unregister: dart.definiteFunctionType(dart.void, [core.int])
+    getters: () => ({
+      [_endIndex]: dart.definiteFunctionType(core.int, []),
+      [_startIndex]: dart.definiteFunctionType(core.int, [])
     })
   });
-  const _runHelper = Symbol('_runHelper');
-  _isolate_helper._EventLoop = class _EventLoop extends core.Object {
-    new() {
-      this.events = QueueOf_IsolateEvent().new();
-      this[_activeJsAsyncCount] = 0;
+  dart.defineExtensionMembers(SubListIterable, [
+    'elementAt',
+    'skip',
+    'take',
+    'toList',
+    'length'
+  ]);
+  return SubListIterable;
+});
+_internal.SubListIterable = SubListIterable();
+const _length$ = Symbol('_length');
+const _index$ = Symbol('_index');
+const _current$ = Symbol('_current');
+_internal.ListIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class ListIterator extends core.Object {
+    new(iterable) {
+      this[_iterable$] = iterable;
+      this[_length$] = iterable[dartx.length];
+      this[_index$] = 0;
+      this[_current$] = null;
     }
-    enqueue(isolate, fn, msg) {
-      this.events.addLast(new _isolate_helper._IsolateEvent(_isolate_helper._IsolateContext._check(isolate), core.Function._check(fn), core.String._check(msg)));
+    get current() {
+      return this[_current$];
     }
-    prequeue(event) {
-      this.events.addFirst(event);
-    }
-    dequeue() {
-      if (dart.test(this.events.isEmpty)) return null;
-      return this.events.removeFirst();
-    }
-    checkOpenReceivePortsFromCommandLine() {
-      if (_isolate_helper._globalState.rootContext != null && dart.test(_isolate_helper._globalState.isolates[dartx.containsKey](_isolate_helper._globalState.rootContext.id)) && dart.test(_isolate_helper._globalState.fromCommandLine) && dart.test(_isolate_helper._globalState.rootContext.ports[dartx.isEmpty])) {
-        dart.throw(core.Exception.new("Program exited with open ReceivePorts."));
+    moveNext() {
+      let length = this[_iterable$][dartx.length];
+      if (this[_length$] != length) {
+        dart.throw(new core.ConcurrentModificationError(this[_iterable$]));
       }
-    }
-    runIteration() {
-      let event = this.dequeue();
-      if (event == null) {
-        this.checkOpenReceivePortsFromCommandLine();
-        _isolate_helper._globalState.maybeCloseWorker();
+      if (dart.notNull(this[_index$]) >= dart.notNull(length)) {
+        this[_current$] = null;
         return false;
       }
-      event.process();
+      this[_current$] = this[_iterable$][dartx.elementAt](this[_index$]);
+      this[_index$] = dart.notNull(this[_index$]) + 1;
       return true;
     }
-    [_runHelper]() {
-      if (_isolate_helper.globalWindow != null) {
-        const next = (function() {
-          if (!dart.test(this.runIteration())) return;
-          async.Timer.run(next);
-        }).bind(this);
-        dart.fn(next, VoidToNull());
-        next();
-      } else {
-        while (dart.test(this.runIteration())) {
-        }
-      }
-    }
-    run() {
-      if (!dart.test(_isolate_helper._globalState.isWorker)) {
-        this[_runHelper]();
-      } else {
-        try {
-          this[_runHelper]();
-        } catch (e) {
-          let trace = dart.stackTrace(e);
-          _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'error', msg: dart.str`${e}\n${trace}`}, core.String, core.String)));
-        }
-
-      }
-    }
-  };
-  dart.setSignature(_isolate_helper._EventLoop, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._EventLoop, [])}),
+  }
+  dart.addTypeTests(ListIterator);
+  ListIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(ListIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.ListIterator$(E), [IterableOfE()])}),
     fields: () => ({
-      events: QueueOf_IsolateEvent(),
-      [_activeJsAsyncCount]: core.int
+      [_iterable$]: IterableOfE(),
+      [_length$]: core.int,
+      [_index$]: core.int,
+      [_current$]: E
     }),
-    methods: () => ({
-      enqueue: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      prequeue: dart.definiteFunctionType(dart.void, [_isolate_helper._IsolateEvent]),
-      dequeue: dart.definiteFunctionType(_isolate_helper._IsolateEvent, []),
-      checkOpenReceivePortsFromCommandLine: dart.definiteFunctionType(dart.void, []),
-      runIteration: dart.definiteFunctionType(core.bool, []),
-      [_runHelper]: dart.definiteFunctionType(dart.void, []),
-      run: dart.definiteFunctionType(dart.void, [])
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return ListIterator;
+});
+_internal.ListIterator = ListIterator();
+_internal._Transformation$ = dart.generic((S, T) => {
+  const _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S]));
+  return _Transformation;
+});
+_internal._Transformation = _Transformation();
+const _f = Symbol('_f');
+_internal.MappedIterable$ = dart.generic((S, T) => {
+  let EfficientLengthMappedIterableOfS$T = () => (EfficientLengthMappedIterableOfS$T = dart.constFn(_internal.EfficientLengthMappedIterable$(S, T)))();
+  let MappedIterableOfS$T = () => (MappedIterableOfS$T = dart.constFn(_internal.MappedIterable$(S, T)))();
+  let MappedIteratorOfS$T = () => (MappedIteratorOfS$T = dart.constFn(_internal.MappedIterator$(S, T)))();
+  let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
+  let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(_internal._Transformation$(S, T)))();
+  class MappedIterable extends core.Iterable$(T) {
+    static new(iterable, func) {
+      if (_internal.EfficientLength.is(iterable)) {
+        return new (EfficientLengthMappedIterableOfS$T())(iterable, func);
+      }
+      return new (MappedIterableOfS$T())._(iterable, func);
+    }
+    _(iterable, f) {
+      this[_iterable$] = iterable;
+      this[_f] = f;
+      super.new();
+    }
+    get iterator() {
+      return new (MappedIteratorOfS$T())(this[_iterable$][dartx.iterator], this[_f]);
+    }
+    get length() {
+      return this[_iterable$][dartx.length];
+    }
+    get isEmpty() {
+      return this[_iterable$][dartx.isEmpty];
+    }
+    get first() {
+      return this[_f](this[_iterable$][dartx.first]);
+    }
+    get last() {
+      return this[_f](this[_iterable$][dartx.last]);
+    }
+    get single() {
+      return this[_f](this[_iterable$][dartx.single]);
+    }
+    elementAt(index) {
+      return this[_f](this[_iterable$][dartx.elementAt](index));
+    }
+  }
+  dart.defineNamedConstructor(MappedIterable, '_');
+  dart.setSignature(MappedIterable, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(_internal.MappedIterable$(S, T), [IterableOfS(), _TransformationOfS$T()]),
+      _: dart.definiteFunctionType(_internal.MappedIterable$(S, T), [IterableOfS(), _TransformationOfS$T()])
+    }),
+    fields: () => ({
+      [_iterable$]: IterableOfS(),
+      [_f]: _TransformationOfS$T()
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(T), [])})
+  });
+  dart.defineExtensionMembers(MappedIterable, [
+    'elementAt',
+    'iterator',
+    'length',
+    'isEmpty',
+    'first',
+    'last',
+    'single'
+  ]);
+  return MappedIterable;
+});
+_internal.MappedIterable = MappedIterable();
+_internal.EfficientLengthMappedIterable$ = dart.generic((S, T) => {
+  let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
+  let SToT = () => (SToT = dart.constFn(dart.functionType(T, [S])))();
+  class EfficientLengthMappedIterable extends _internal.MappedIterable$(S, T) {
+    new(iterable, func) {
+      super._(iterable, func);
+    }
+  }
+  EfficientLengthMappedIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(EfficientLengthMappedIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.EfficientLengthMappedIterable$(S, T), [IterableOfS(), SToT()])})
+  });
+  return EfficientLengthMappedIterable;
+});
+_internal.EfficientLengthMappedIterable = EfficientLengthMappedIterable();
+const _iterator = Symbol('_iterator');
+core.Iterator$ = dart.generic(E => {
+  class Iterator extends core.Object {}
+  dart.addTypeTests(Iterator);
+  return Iterator;
+});
+core.Iterator = Iterator();
+_internal.MappedIterator$ = dart.generic((S, T) => {
+  let IteratorOfS = () => (IteratorOfS = dart.constFn(core.Iterator$(S)))();
+  let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(_internal._Transformation$(S, T)))();
+  class MappedIterator extends core.Iterator$(T) {
+    new(iterator, f) {
+      this[_iterator] = iterator;
+      this[_f] = f;
+      this[_current$] = null;
+    }
+    moveNext() {
+      if (dart.test(this[_iterator].moveNext())) {
+        this[_current$] = this[_f](this[_iterator].current);
+        return true;
+      }
+      this[_current$] = null;
+      return false;
+    }
+    get current() {
+      return this[_current$];
+    }
+  }
+  dart.setSignature(MappedIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.MappedIterator$(S, T), [IteratorOfS(), _TransformationOfS$T()])}),
+    fields: () => ({
+      [_current$]: T,
+      [_iterator]: IteratorOfS(),
+      [_f]: _TransformationOfS$T()
+    }),
+    getters: () => ({current: dart.definiteFunctionType(T, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return MappedIterator;
+});
+_internal.MappedIterator = MappedIterator();
+const _source = Symbol('_source');
+_internal.MappedListIterable$ = dart.generic((S, T) => {
+  let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
+  let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(_internal._Transformation$(S, T)))();
+  class MappedListIterable extends _internal.ListIterable$(T) {
+    new(source, f) {
+      this[_source] = source;
+      this[_f] = f;
+      super.new();
+    }
+    get length() {
+      return this[_source][dartx.length];
+    }
+    elementAt(index) {
+      return this[_f](this[_source][dartx.elementAt](index));
+    }
+  }
+  MappedListIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(MappedListIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.MappedListIterable$(S, T), [IterableOfS(), _TransformationOfS$T()])}),
+    fields: () => ({
+      [_source]: IterableOfS(),
+      [_f]: _TransformationOfS$T()
     })
   });
-  _isolate_helper._IsolateEvent = class _IsolateEvent extends core.Object {
-    new(isolate, fn, message) {
-      this.isolate = isolate;
-      this.fn = fn;
-      this.message = message;
+  dart.defineExtensionMembers(MappedListIterable, ['elementAt', 'length']);
+  return MappedListIterable;
+});
+_internal.MappedListIterable = MappedListIterable();
+_internal._ElementPredicate$ = dart.generic(E => {
+  const _ElementPredicate = dart.typedef('_ElementPredicate', () => dart.functionType(core.bool, [E]));
+  return _ElementPredicate;
+});
+_internal._ElementPredicate = _ElementPredicate();
+_internal.WhereIterable$ = dart.generic(E => {
+  let WhereIteratorOfE = () => (WhereIteratorOfE = dart.constFn(_internal.WhereIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
+  class WhereIterable extends core.Iterable$(E) {
+    new(iterable, f) {
+      this[_iterable$] = iterable;
+      this[_f] = f;
+      super.new();
     }
-    process() {
-      if (dart.test(this.isolate.isPaused)) {
-        this.isolate.delayedEvents[dartx.add](this);
-        return;
-      }
-      this.isolate.eval(this.fn);
+    get iterator() {
+      return new (WhereIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
     }
-  };
-  dart.setSignature(_isolate_helper._IsolateEvent, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._IsolateEvent, [_isolate_helper._IsolateContext, core.Function, core.String])}),
+  }
+  dart.setSignature(WhereIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.WhereIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
     fields: () => ({
-      isolate: _isolate_helper._IsolateContext,
-      fn: core.Function,
-      message: core.String
+      [_iterable$]: IterableOfE(),
+      [_f]: _ElementPredicateOfE()
     }),
-    methods: () => ({process: dart.definiteFunctionType(dart.void, [])})
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
   });
-  dart.defineLazy(_isolate_helper, {
-    get global() {
-      return typeof global == 'undefined' ? self : global;
+  dart.defineExtensionMembers(WhereIterable, ['iterator']);
+  return WhereIterable;
+});
+_internal.WhereIterable = WhereIterable();
+_internal.WhereIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
+  class WhereIterator extends core.Iterator$(E) {
+    new(iterator, f) {
+      this[_iterator] = iterator;
+      this[_f] = f;
     }
+    moveNext() {
+      while (dart.test(this[_iterator].moveNext())) {
+        if (dart.test(this[_f](this[_iterator].current))) {
+          return true;
+        }
+      }
+      return false;
+    }
+    get current() {
+      return this[_iterator].current;
+    }
+  }
+  dart.setSignature(WhereIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.WhereIterator$(E), [IteratorOfE(), _ElementPredicateOfE()])}),
+    fields: () => ({
+      [_iterator]: IteratorOfE(),
+      [_f]: _ElementPredicateOfE()
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
   });
-  _isolate_helper._MainManagerStub = class _MainManagerStub extends core.Object {
-    postMessage(msg) {
-      _isolate_helper.global.postMessage(msg);
+  return WhereIterator;
+});
+_internal.WhereIterator = WhereIterator();
+_internal._ExpandFunction$ = dart.generic((S, T) => {
+  const _ExpandFunction = dart.typedef('_ExpandFunction', () => dart.functionType(core.Iterable$(T), [S]));
+  return _ExpandFunction;
+});
+_internal._ExpandFunction = _ExpandFunction();
+_internal.ExpandIterable$ = dart.generic((S, T) => {
+  let ExpandIteratorOfS$T = () => (ExpandIteratorOfS$T = dart.constFn(_internal.ExpandIterator$(S, T)))();
+  let IterableOfS = () => (IterableOfS = dart.constFn(core.Iterable$(S)))();
+  let _ExpandFunctionOfS$T = () => (_ExpandFunctionOfS$T = dart.constFn(_internal._ExpandFunction$(S, T)))();
+  let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
+  class ExpandIterable extends core.Iterable$(T) {
+    new(iterable, f) {
+      this[_iterable$] = iterable;
+      this[_f] = f;
+      super.new();
     }
-  };
-  dart.setSignature(_isolate_helper._MainManagerStub, {
-    methods: () => ({postMessage: dart.definiteFunctionType(dart.void, [dart.dynamic])})
+    get iterator() {
+      return new (ExpandIteratorOfS$T())(this[_iterable$][dartx.iterator], this[_f]);
+    }
+  }
+  dart.setSignature(ExpandIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.ExpandIterable$(S, T), [IterableOfS(), _ExpandFunctionOfS$T()])}),
+    fields: () => ({
+      [_iterable$]: IterableOfS(),
+      [_f]: _ExpandFunctionOfS$T()
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(T), [])})
   });
-  _isolate_helper._SPAWNED_SIGNAL = "spawned";
-  _isolate_helper._SPAWN_FAILED_SIGNAL = "spawn failed";
-  dart.copyProperties(_isolate_helper, {
-    get globalWindow() {
-      return _isolate_helper.global.window;
+  dart.defineExtensionMembers(ExpandIterable, ['iterator']);
+  return ExpandIterable;
+});
+_internal.ExpandIterable = ExpandIterable();
+const _currentExpansion = Symbol('_currentExpansion');
+_internal.ExpandIterator$ = dart.generic((S, T) => {
+  let IteratorOfS = () => (IteratorOfS = dart.constFn(core.Iterator$(S)))();
+  let _ExpandFunctionOfS$T = () => (_ExpandFunctionOfS$T = dart.constFn(_internal._ExpandFunction$(S, T)))();
+  let EmptyIteratorOfT = () => (EmptyIteratorOfT = dart.constFn(_internal.EmptyIterator$(T)))();
+  let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
+  let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
+  class ExpandIterator extends core.Object {
+    new(iterator, f) {
+      this[_iterator] = iterator;
+      this[_f] = f;
+      this[_currentExpansion] = dart.const(new (EmptyIteratorOfT())());
+      this[_current$] = null;
     }
-  });
-  dart.copyProperties(_isolate_helper, {
-    get globalWorker() {
-      return _isolate_helper.global.Worker;
+    get current() {
+      return this[_current$];
     }
-  });
-  dart.copyProperties(_isolate_helper, {
-    get globalPostMessageDefined() {
-      return !!_isolate_helper.global.postMessage;
-    }
-  });
-  _isolate_helper._MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
-  _isolate_helper._MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionType(dart.dynamic, [dart.dynamic]));
-  _isolate_helper._MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
-  _isolate_helper.IsolateNatives = class IsolateNatives extends core.Object {
-    static computeThisScript() {
-      let currentScript = document.currentScript;
-      if (currentScript != null) {
-        return String(currentScript.src);
-      }
-      if (dart.test(_js_helper.Primitives.isD8)) return _isolate_helper.IsolateNatives.computeThisScriptD8();
-      if (dart.test(_js_helper.Primitives.isJsshell)) return _isolate_helper.IsolateNatives.computeThisScriptJsshell();
-      if (_isolate_helper._globalState != null && dart.test(_isolate_helper._globalState.isWorker)) {
-        return _isolate_helper.IsolateNatives.computeThisScriptFromTrace();
-      }
-      return null;
-    }
-    static computeThisScriptJsshell() {
-      return thisFilename();
-    }
-    static computeThisScriptD8() {
-      return _isolate_helper.IsolateNatives.computeThisScriptFromTrace();
-    }
-    static computeThisScriptFromTrace() {
-      let stack = new Error().stack;
-      if (stack == null) {
-        stack = (function() {
-          try {
-            throw new Error();
-          } catch (e) {
-            return e.stack;
-          }
-
-        })();
-        if (stack == null) dart.throw(new core.UnsupportedError('No stack trace'));
-      }
-      let pattern = null, matches = null;
-      pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m");
-      matches = stack.match(pattern);
-      if (matches != null) return matches[1];
-      pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m");
-      matches = stack.match(pattern);
-      if (matches != null) return matches[1];
-      dart.throw(new core.UnsupportedError(dart.str`Cannot extract URI from "${stack}"`));
-    }
-    static _getEventData(e) {
-      return e.data;
-    }
-    static _processWorkerMessage(sender, e) {
-      let msg = _isolate_helper._deserializeMessage(_isolate_helper.IsolateNatives._getEventData(e));
-      switch (dart.dindex(msg, 'command')) {
-        case 'start':
-        {
-          _isolate_helper._globalState.currentManagerId = core.int._check(dart.dindex(msg, 'id'));
-          let functionName = core.String._check(dart.dindex(msg, 'functionName'));
-          let entryPoint = core.Function._check(functionName == null ? _isolate_helper._globalState.entry : _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName));
-          let args = dart.dindex(msg, 'args');
-          let message = _isolate_helper._deserializeMessage(dart.dindex(msg, 'msg'));
-          let isSpawnUri = dart.dindex(msg, 'isSpawnUri');
-          let startPaused = dart.dindex(msg, 'startPaused');
-          let replyTo = _isolate_helper._deserializeMessage(dart.dindex(msg, 'replyTo'));
-          let context = new _isolate_helper._IsolateContext();
-          _isolate_helper._globalState.topEventLoop.enqueue(context, dart.fn(() => {
-            _isolate_helper.IsolateNatives._startIsolate(entryPoint, ListOfString()._check(args), message, core.bool._check(isSpawnUri), core.bool._check(startPaused), isolate.SendPort._check(replyTo));
-          }, VoidToNull()), 'worker-start');
-          _isolate_helper._globalState.currentContext = context;
-          _isolate_helper._globalState.topEventLoop.run();
-          break;
-        }
-        case 'spawn-worker':
-        {
-          if (_isolate_helper.IsolateNatives.enableSpawnWorker != null) _isolate_helper.IsolateNatives.handleSpawnWorkerRequest(msg);
-          break;
-        }
-        case 'message':
-        {
-          let port = isolate.SendPort._check(dart.dindex(msg, 'port'));
-          if (port != null) {
-            dart.dsend(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg'));
-          }
-          _isolate_helper._globalState.topEventLoop.run();
-          break;
-        }
-        case 'close':
-        {
-          _isolate_helper._globalState.managers[dartx.remove](_isolate_helper.IsolateNatives.workerIds._get(sender));
-          sender.terminate();
-          _isolate_helper._globalState.topEventLoop.run();
-          break;
-        }
-        case 'log':
-        {
-          _isolate_helper.IsolateNatives._log(dart.dindex(msg, 'msg'));
-          break;
-        }
-        case 'print':
-        {
-          if (dart.test(_isolate_helper._globalState.isWorker)) {
-            _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'print', msg: msg}, core.String, dart.dynamic)));
-          } else {
-            core.print(dart.dindex(msg, 'msg'));
-          }
-          break;
-        }
-        case 'error':
-        {
-          dart.throw(dart.dindex(msg, 'msg'));
-        }
-      }
-    }
-    static handleSpawnWorkerRequest(msg) {
-      let replyPort = dart.dindex(msg, 'replyPort');
-      _isolate_helper.IsolateNatives.spawn(core.String._check(dart.dindex(msg, 'functionName')), core.String._check(dart.dindex(msg, 'uri')), ListOfString()._check(dart.dindex(msg, 'args')), dart.dindex(msg, 'msg'), false, core.bool._check(dart.dindex(msg, 'isSpawnUri')), core.bool._check(dart.dindex(msg, 'startPaused'))).then(dart.dynamic)(dart.fn(msg => {
-        dart.dsend(replyPort, 'send', msg);
-      }, ListToNull()), {onError: dart.fn(errorMessage => {
-          dart.dsend(replyPort, 'send', JSArrayOfString().of([_isolate_helper._SPAWN_FAILED_SIGNAL, errorMessage]));
-        }, StringToNull())});
-    }
-    static _log(msg) {
-      if (dart.test(_isolate_helper._globalState.isWorker)) {
-        _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'log', msg: msg}, core.String, dart.dynamic)));
-      } else {
-        try {
-          _isolate_helper.IsolateNatives._consoleLog(msg);
-        } catch (e) {
-          let trace = dart.stackTrace(e);
-          dart.throw(core.Exception.new(trace));
-        }
-
-      }
-    }
-    static _consoleLog(msg) {
-      _isolate_helper.global.console.log(msg);
-    }
-    static _getJSFunctionFromName(functionName) {
-      let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS);
-      return globalFunctionsContainer[functionName]();
-    }
-    static _getJSFunctionName(f) {
-      return f.$name;
-    }
-    static _allocate(ctor) {
-      return new ctor();
-    }
-    static spawnFunction(topLevelFunction, message, startPaused) {
-      _isolate_helper.IsolateNatives.enableSpawnWorker = true;
-      let name = _isolate_helper.IsolateNatives._getJSFunctionName(topLevelFunction);
-      if (name == null) {
-        dart.throw(new core.UnsupportedError("only top-level functions can be spawned."));
-      }
-      let isLight = false;
-      let isSpawnUri = false;
-      return _isolate_helper.IsolateNatives.spawn(name, null, null, message, isLight, isSpawnUri, startPaused);
-    }
-    static spawnUri(uri, args, message, startPaused) {
-      _isolate_helper.IsolateNatives.enableSpawnWorker = true;
-      let isLight = false;
-      let isSpawnUri = true;
-      return _isolate_helper.IsolateNatives.spawn(null, dart.toString(uri), args, message, isLight, isSpawnUri, startPaused);
-    }
-    static spawn(functionName, uri, args, message, isLight, isSpawnUri, startPaused) {
-      if (uri != null && dart.test(uri[dartx.endsWith](".dart"))) {
-        uri = dart.notNull(uri) + ".js";
-      }
-      let port = isolate.ReceivePort.new();
-      let completer = CompleterOfList().new();
-      port.first.then(dart.dynamic)(dart.fn(msg => {
-        if (dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWNED_SIGNAL)) {
-          completer.complete(msg);
+    moveNext() {
+      if (this[_currentExpansion] == null) return false;
+      while (!dart.test(this[_currentExpansion].moveNext())) {
+        this[_current$] = null;
+        if (dart.test(this[_iterator].moveNext())) {
+          this[_currentExpansion] = null;
+          this[_currentExpansion] = this[_f](this[_iterator].current)[dartx.iterator];
         } else {
-          dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
-          completer.completeError(dart.dindex(msg, 1));
-        }
-      }, dynamicToNull$()));
-      let signalReply = port.sendPort;
-      if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
-        _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid$()));
-      } else {
-        _isolate_helper.IsolateNatives._startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply);
-      }
-      return completer.future;
-    }
-    static _startWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError) {
-      if (args != null) args = ListOfString().from(args);
-      if (dart.test(_isolate_helper._globalState.isWorker)) {
-        _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort}, core.String, core.Object)));
-      } else {
-        _isolate_helper.IsolateNatives._spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError);
-      }
-    }
-    static _startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort) {
-      if (uri != null) {
-        dart.throw(new core.UnsupportedError("Currently spawnUri is not supported without web workers."));
-      }
-      message = _isolate_helper._clone(message);
-      if (args != null) args = ListOfString().from(args);
-      _isolate_helper._globalState.topEventLoop.enqueue(new _isolate_helper._IsolateContext(), dart.fn(() => {
-        let func = _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName);
-        _isolate_helper.IsolateNatives._startIsolate(core.Function._check(func), args, message, isSpawnUri, startPaused, replyPort);
-      }, VoidToNull()), 'nonworker start');
-    }
-    static get currentIsolate() {
-      let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
-      return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability});
-    }
-    static _startIsolate(topLevel, args, message, isSpawnUri, startPaused, replyTo) {
-      let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
-      _js_helper.Primitives.initializeStatics(context.id);
-      replyTo.send(JSArrayOfObject().of([_isolate_helper._SPAWNED_SIGNAL, context.controlPort.sendPort, context.pauseCapability, context.terminateCapability]));
-      function runStartFunction() {
-        context.initialized = true;
-        if (!dart.test(isSpawnUri)) {
-          dart.dcall(topLevel, message);
-        } else if (_isolate_helper._MainFunctionArgsMessage.is(topLevel)) {
-          dart.dcall(topLevel, args, message);
-        } else if (_isolate_helper._MainFunctionArgs.is(topLevel)) {
-          dart.dcall(topLevel, args);
-        } else {
-          dart.dcall(topLevel);
+          return false;
         }
       }
-      dart.fn(runStartFunction, VoidTovoid$());
-      if (dart.test(startPaused)) {
-        context.addPause(context.pauseCapability, context.pauseCapability);
-        _isolate_helper._globalState.topEventLoop.enqueue(context, runStartFunction, 'start isolate');
-      } else {
-        runStartFunction();
-      }
-    }
-    static _spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError) {
-      if (uri == null) uri = _isolate_helper.IsolateNatives.thisScript;
-      let worker = new Worker(uri);
-      let onerrorTrampoline = (function(f, u, c) {
-        return function(e) {
-          return f(e, u, c);
-        };
-      })(_isolate_helper.IsolateNatives.workerOnError, uri, onError);
-      worker.onerror = onerrorTrampoline;
-      let processWorkerMessageTrampoline = (function(f, a) {
-        return function(e) {
-          e.onerror = null;
-          return f(a, e);
-        };
-      })(_isolate_helper.IsolateNatives._processWorkerMessage, worker);
-      worker.onmessage = processWorkerMessageTrampoline;
-      let o = _isolate_helper._globalState;
-      let workerId = o.nextManagerId;
-      o.nextManagerId = dart.notNull(workerId) + 1;
-      _isolate_helper.IsolateNatives.workerIds._set(worker, workerId);
-      _isolate_helper._globalState.managers[dartx._set](workerId, worker);
-      worker.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'start', id: workerId, replyTo: _isolate_helper._serializeMessage(replyPort), args: args, msg: _isolate_helper._serializeMessage(message), isSpawnUri: isSpawnUri, startPaused: startPaused, functionName: functionName}, core.String, core.Object)));
-    }
-    static workerOnError(event, uri, onError) {
-      event.preventDefault();
-      let message = event.message;
-      if (message == null) {
-        message = dart.str`Error spawning worker for ${uri}`;
-      } else {
-        message = dart.str`Error spawning worker for ${uri} (${message})`;
-      }
-      onError(message);
+      this[_current$] = this[_currentExpansion].current;
       return true;
     }
-  };
-  dart.setSignature(_isolate_helper.IsolateNatives, {
-    sfields: () => ({
-      enableSpawnWorker: dart.dynamic,
-      thisScript: core.String,
-      workerIds: ExpandoOfint()
+  }
+  dart.addTypeTests(ExpandIterator);
+  ExpandIterator[dart.implements] = () => [IteratorOfT()];
+  dart.setSignature(ExpandIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.ExpandIterator$(S, T), [IteratorOfS(), _ExpandFunctionOfS$T()])}),
+    fields: () => ({
+      [_iterator]: IteratorOfS(),
+      [_f]: _ExpandFunctionOfS$T(),
+      [_currentExpansion]: IteratorOfT(),
+      [_current$]: T
     }),
-    sgetters: () => ({currentIsolate: dart.definiteFunctionType(isolate.Isolate, [])}),
-    statics: () => ({
-      computeThisScript: dart.definiteFunctionType(core.String, []),
-      computeThisScriptJsshell: dart.definiteFunctionType(core.String, []),
-      computeThisScriptD8: dart.definiteFunctionType(core.String, []),
-      computeThisScriptFromTrace: dart.definiteFunctionType(core.String, []),
-      _getEventData: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _processWorkerMessage: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      handleSpawnWorkerRequest: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _log: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _consoleLog: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      _getJSFunctionFromName: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _getJSFunctionName: dart.definiteFunctionType(core.String, [core.Function]),
-      _allocate: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      spawnFunction: dart.definiteFunctionType(async.Future$(core.List), [dynamicTovoid(), dart.dynamic, core.bool]),
-      spawnUri: dart.definiteFunctionType(async.Future$(core.List), [core.Uri, ListOfString(), dart.dynamic, core.bool]),
-      spawn: dart.definiteFunctionType(async.Future$(core.List), [core.String, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, core.bool]),
-      _startWorker: dart.definiteFunctionType(dart.void, [core.String, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort, StringTovoid()]),
-      _startNonWorker: dart.definiteFunctionType(dart.void, [core.String, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort]),
-      _startIsolate: dart.definiteFunctionType(dart.void, [core.Function, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort]),
-      _spawnWorker: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort, StringTovoid()]),
-      workerOnError: dart.definiteFunctionType(core.bool, [dart.dynamic, core.String, StringTovoid()])
+    getters: () => ({current: dart.definiteFunctionType(T, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return ExpandIterator;
+});
+_internal.ExpandIterator = ExpandIterator();
+const _takeCount = Symbol('_takeCount');
+_internal.TakeIterable$ = dart.generic(E => {
+  let EfficientLengthTakeIterableOfE = () => (EfficientLengthTakeIterableOfE = dart.constFn(_internal.EfficientLengthTakeIterable$(E)))();
+  let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
+  let TakeIteratorOfE = () => (TakeIteratorOfE = dart.constFn(_internal.TakeIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class TakeIterable extends core.Iterable$(E) {
+    static new(iterable, takeCount) {
+      if (!(typeof takeCount == 'number') || dart.notNull(takeCount) < 0) {
+        dart.throw(new core.ArgumentError(takeCount));
+      }
+      if (_internal.EfficientLength.is(iterable)) {
+        return new (EfficientLengthTakeIterableOfE())(iterable, takeCount);
+      }
+      return new (TakeIterableOfE())._(iterable, takeCount);
+    }
+    _(iterable, takeCount) {
+      this[_iterable$] = iterable;
+      this[_takeCount] = takeCount;
+      super.new();
+    }
+    get iterator() {
+      return new (TakeIteratorOfE())(this[_iterable$][dartx.iterator], this[_takeCount]);
+    }
+  }
+  dart.defineNamedConstructor(TakeIterable, '_');
+  dart.setSignature(TakeIterable, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(_internal.TakeIterable$(E), [IterableOfE(), core.int]),
+      _: dart.definiteFunctionType(_internal.TakeIterable$(E), [IterableOfE(), core.int])
     }),
-    names: ['computeThisScript', 'computeThisScriptJsshell', 'computeThisScriptD8', 'computeThisScriptFromTrace', '_getEventData', '_processWorkerMessage', 'handleSpawnWorkerRequest', '_log', '_consoleLog', '_getJSFunctionFromName', '_getJSFunctionName', '_allocate', 'spawnFunction', 'spawnUri', 'spawn', '_startWorker', '_startNonWorker', '_startIsolate', '_spawnWorker', 'workerOnError']
+    fields: () => ({
+      [_iterable$]: IterableOfE(),
+      [_takeCount]: core.int
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
   });
-  _isolate_helper.IsolateNatives.enableSpawnWorker = null;
-  dart.defineLazy(_isolate_helper.IsolateNatives, {
-    get thisScript() {
-      return _isolate_helper.IsolateNatives.computeThisScript();
-    },
-    set thisScript(_) {},
-    get workerIds() {
-      return new (ExpandoOfint())();
+  dart.defineExtensionMembers(TakeIterable, ['iterator']);
+  return TakeIterable;
+});
+_internal.TakeIterable = TakeIterable();
+_internal.EfficientLengthTakeIterable$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class EfficientLengthTakeIterable extends _internal.TakeIterable$(E) {
+    new(iterable, takeCount) {
+      super._(iterable, takeCount);
     }
+    get length() {
+      let iterableLength = this[_iterable$][dartx.length];
+      if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) return this[_takeCount];
+      return iterableLength;
+    }
+  }
+  EfficientLengthTakeIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(EfficientLengthTakeIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.EfficientLengthTakeIterable$(E), [IterableOfE(), core.int])})
   });
-  const _isolateId = Symbol('_isolateId');
-  const _checkReplyTo = Symbol('_checkReplyTo');
-  _isolate_helper._BaseSendPort = class _BaseSendPort extends core.Object {
-    new(isolateId) {
-      this[_isolateId] = isolateId;
+  dart.defineExtensionMembers(EfficientLengthTakeIterable, ['length']);
+  return EfficientLengthTakeIterable;
+});
+_internal.EfficientLengthTakeIterable = EfficientLengthTakeIterable();
+const _remaining = Symbol('_remaining');
+_internal.TakeIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class TakeIterator extends core.Iterator$(E) {
+    new(iterator, remaining) {
+      this[_iterator] = iterator;
+      this[_remaining] = remaining;
+      dart.assert(typeof this[_remaining] == 'number' && dart.notNull(this[_remaining]) >= 0);
     }
-    [_checkReplyTo](replyTo) {
-      if (replyTo != null && !_isolate_helper._NativeJsSendPort.is(replyTo) && !_isolate_helper._WorkerSendPort.is(replyTo)) {
-        dart.throw(core.Exception.new("SendPort.send: Illegal replyTo port type"));
+    moveNext() {
+      this[_remaining] = dart.notNull(this[_remaining]) - 1;
+      if (dart.notNull(this[_remaining]) >= 0) {
+        return this[_iterator].moveNext();
+      }
+      this[_remaining] = -1;
+      return false;
+    }
+    get current() {
+      if (dart.notNull(this[_remaining]) < 0) return null;
+      return this[_iterator].current;
+    }
+  }
+  dart.setSignature(TakeIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.TakeIterator$(E), [IteratorOfE(), core.int])}),
+    fields: () => ({
+      [_iterator]: IteratorOfE(),
+      [_remaining]: core.int
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return TakeIterator;
+});
+_internal.TakeIterator = TakeIterator();
+_internal.TakeWhileIterable$ = dart.generic(E => {
+  let TakeWhileIteratorOfE = () => (TakeWhileIteratorOfE = dart.constFn(_internal.TakeWhileIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
+  class TakeWhileIterable extends core.Iterable$(E) {
+    new(iterable, f) {
+      this[_iterable$] = iterable;
+      this[_f] = f;
+      super.new();
+    }
+    get iterator() {
+      return new (TakeWhileIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
+    }
+  }
+  dart.setSignature(TakeWhileIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.TakeWhileIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
+    fields: () => ({
+      [_iterable$]: IterableOfE(),
+      [_f]: _ElementPredicateOfE()
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
+  });
+  dart.defineExtensionMembers(TakeWhileIterable, ['iterator']);
+  return TakeWhileIterable;
+});
+_internal.TakeWhileIterable = TakeWhileIterable();
+const _isFinished = Symbol('_isFinished');
+_internal.TakeWhileIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
+  class TakeWhileIterator extends core.Iterator$(E) {
+    new(iterator, f) {
+      this[_iterator] = iterator;
+      this[_f] = f;
+      this[_isFinished] = false;
+    }
+    moveNext() {
+      if (dart.test(this[_isFinished])) return false;
+      if (!dart.test(this[_iterator].moveNext()) || !dart.test(this[_f](this[_iterator].current))) {
+        this[_isFinished] = true;
+        return false;
+      }
+      return true;
+    }
+    get current() {
+      if (dart.test(this[_isFinished])) return null;
+      return this[_iterator].current;
+    }
+  }
+  dart.setSignature(TakeWhileIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.TakeWhileIterator$(E), [IteratorOfE(), _ElementPredicateOfE()])}),
+    fields: () => ({
+      [_iterator]: IteratorOfE(),
+      [_f]: _ElementPredicateOfE(),
+      [_isFinished]: core.bool
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return TakeWhileIterator;
+});
+_internal.TakeWhileIterator = TakeWhileIterator();
+const _skipCount = Symbol('_skipCount');
+_internal.SkipIterable$ = dart.generic(E => {
+  let EfficientLengthSkipIterableOfE = () => (EfficientLengthSkipIterableOfE = dart.constFn(_internal.EfficientLengthSkipIterable$(E)))();
+  let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
+  let SkipIteratorOfE = () => (SkipIteratorOfE = dart.constFn(_internal.SkipIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class SkipIterable extends core.Iterable$(E) {
+    static new(iterable, count) {
+      if (_internal.EfficientLength.is(iterable)) {
+        return new (EfficientLengthSkipIterableOfE())(iterable, count);
+      }
+      return new (SkipIterableOfE())._(iterable, count);
+    }
+    _(iterable, skipCount) {
+      this[_iterable$] = iterable;
+      this[_skipCount] = skipCount;
+      super.new();
+      if (!(typeof this[_skipCount] == 'number')) {
+        dart.throw(new core.ArgumentError.value(this[_skipCount], "count is not an integer"));
+      }
+      core.RangeError.checkNotNegative(this[_skipCount], "count");
+    }
+    skip(count) {
+      if (!(typeof this[_skipCount] == 'number')) {
+        dart.throw(new core.ArgumentError.value(this[_skipCount], "count is not an integer"));
+      }
+      core.RangeError.checkNotNegative(this[_skipCount], "count");
+      return new (SkipIterableOfE())._(this[_iterable$], dart.notNull(this[_skipCount]) + dart.notNull(count));
+    }
+    get iterator() {
+      return new (SkipIteratorOfE())(this[_iterable$][dartx.iterator], this[_skipCount]);
+    }
+  }
+  dart.defineNamedConstructor(SkipIterable, '_');
+  dart.setSignature(SkipIterable, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(_internal.SkipIterable$(E), [IterableOfE(), core.int]),
+      _: dart.definiteFunctionType(_internal.SkipIterable$(E), [IterableOfE(), core.int])
+    }),
+    fields: () => ({
+      [_iterable$]: IterableOfE(),
+      [_skipCount]: core.int
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
+  });
+  dart.defineExtensionMembers(SkipIterable, ['skip', 'iterator']);
+  return SkipIterable;
+});
+_internal.SkipIterable = SkipIterable();
+_internal.EfficientLengthSkipIterable$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class EfficientLengthSkipIterable extends _internal.SkipIterable$(E) {
+    new(iterable, skipCount) {
+      super._(iterable, skipCount);
+    }
+    get length() {
+      let length = dart.notNull(this[_iterable$][dartx.length]) - dart.notNull(this[_skipCount]);
+      if (length >= 0) return length;
+      return 0;
+    }
+  }
+  EfficientLengthSkipIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(EfficientLengthSkipIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.EfficientLengthSkipIterable$(E), [IterableOfE(), core.int])})
+  });
+  dart.defineExtensionMembers(EfficientLengthSkipIterable, ['length']);
+  return EfficientLengthSkipIterable;
+});
+_internal.EfficientLengthSkipIterable = EfficientLengthSkipIterable();
+_internal.SkipIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class SkipIterator extends core.Iterator$(E) {
+    new(iterator, skipCount) {
+      this[_iterator] = iterator;
+      this[_skipCount] = skipCount;
+      dart.assert(typeof this[_skipCount] == 'number' && dart.notNull(this[_skipCount]) >= 0);
+    }
+    moveNext() {
+      for (let i = 0; i < dart.notNull(this[_skipCount]); i++)
+        this[_iterator].moveNext();
+      this[_skipCount] = 0;
+      return this[_iterator].moveNext();
+    }
+    get current() {
+      return this[_iterator].current;
+    }
+  }
+  dart.setSignature(SkipIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.SkipIterator$(E), [IteratorOfE(), core.int])}),
+    fields: () => ({
+      [_iterator]: IteratorOfE(),
+      [_skipCount]: core.int
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return SkipIterator;
+});
+_internal.SkipIterator = SkipIterator();
+_internal.SkipWhileIterable$ = dart.generic(E => {
+  let SkipWhileIteratorOfE = () => (SkipWhileIteratorOfE = dart.constFn(_internal.SkipWhileIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
+  class SkipWhileIterable extends core.Iterable$(E) {
+    new(iterable, f) {
+      this[_iterable$] = iterable;
+      this[_f] = f;
+      super.new();
+    }
+    get iterator() {
+      return new (SkipWhileIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
+    }
+  }
+  dart.setSignature(SkipWhileIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.SkipWhileIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
+    fields: () => ({
+      [_iterable$]: IterableOfE(),
+      [_f]: _ElementPredicateOfE()
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
+  });
+  dart.defineExtensionMembers(SkipWhileIterable, ['iterator']);
+  return SkipWhileIterable;
+});
+_internal.SkipWhileIterable = SkipWhileIterable();
+const _hasSkipped = Symbol('_hasSkipped');
+_internal.SkipWhileIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
+  class SkipWhileIterator extends core.Iterator$(E) {
+    new(iterator, f) {
+      this[_iterator] = iterator;
+      this[_f] = f;
+      this[_hasSkipped] = false;
+    }
+    moveNext() {
+      if (!dart.test(this[_hasSkipped])) {
+        this[_hasSkipped] = true;
+        while (dart.test(this[_iterator].moveNext())) {
+          if (!dart.test(this[_f](this[_iterator].current))) return true;
+        }
+      }
+      return this[_iterator].moveNext();
+    }
+    get current() {
+      return this[_iterator].current;
+    }
+  }
+  dart.setSignature(SkipWhileIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.SkipWhileIterator$(E), [IteratorOfE(), _ElementPredicateOfE()])}),
+    fields: () => ({
+      [_iterator]: IteratorOfE(),
+      [_f]: _ElementPredicateOfE(),
+      [_hasSkipped]: core.bool
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return SkipWhileIterator;
+});
+_internal.SkipWhileIterator = SkipWhileIterator();
+_internal.EmptyIterable$ = dart.generic(E => {
+  let EmptyIteratorOfE = () => (EmptyIteratorOfE = dart.constFn(_internal.EmptyIterator$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
+  let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  class EmptyIterable extends core.Iterable$(E) {
+    new() {
+      super.new();
+    }
+    get iterator() {
+      return dart.const(new (EmptyIteratorOfE())());
+    }
+    forEach(action) {}
+    get isEmpty() {
+      return true;
+    }
+    get length() {
+      return 0;
+    }
+    get first() {
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    get last() {
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    get single() {
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    elementAt(index) {
+      dart.throw(new core.RangeError.range(index, 0, 0, "index"));
+    }
+    contains(element) {
+      return false;
+    }
+    every(test) {
+      return true;
+    }
+    any(test) {
+      return false;
+    }
+    firstWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    lastWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    singleWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      return "";
+    }
+    where(test) {
+      return this;
+    }
+    map(T) {
+      return f => {
+        return dart.const(new (_internal.EmptyIterable$(T))());
+      };
+    }
+    reduce(combine) {
+      EAndEToE()._check(combine);
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    fold(T) {
+      return (initialValue, combine) => {
+        return initialValue;
+      };
+    }
+    skip(count) {
+      core.RangeError.checkNotNegative(count, "count");
+      return this;
+    }
+    skipWhile(test) {
+      return this;
+    }
+    take(count) {
+      core.RangeError.checkNotNegative(count, "count");
+      return this;
+    }
+    takeWhile(test) {
+      return this;
+    }
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      return dart.test(growable) ? JSArrayOfE().of([]) : ListOfE().new(0);
+    }
+    toSet() {
+      return SetOfE().new();
+    }
+  }
+  EmptyIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(EmptyIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.EmptyIterable$(E), [])}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({singleWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()})})
+  });
+  dart.defineExtensionMembers(EmptyIterable, [
+    'forEach',
+    'elementAt',
+    'contains',
+    'every',
+    'any',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'join',
+    'where',
+    'map',
+    'reduce',
+    'fold',
+    'skip',
+    'skipWhile',
+    'take',
+    'takeWhile',
+    'toList',
+    'toSet',
+    'iterator',
+    'isEmpty',
+    'length',
+    'first',
+    'last',
+    'single'
+  ]);
+  return EmptyIterable;
+});
+_internal.EmptyIterable = EmptyIterable();
+_internal.EmptyIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class EmptyIterator extends core.Object {
+    new() {
+    }
+    moveNext() {
+      return false;
+    }
+    get current() {
+      return null;
+    }
+  }
+  dart.addTypeTests(EmptyIterator);
+  EmptyIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(EmptyIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.EmptyIterator$(E), [])}),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return EmptyIterator;
+});
+_internal.EmptyIterator = EmptyIterator();
+_internal.IterableElementError = class IterableElementError extends core.Object {
+  static noElement() {
+    return new core.StateError("No element");
+  }
+  static tooMany() {
+    return new core.StateError("Too many elements");
+  }
+  static tooFew() {
+    return new core.StateError("Too few elements");
+  }
+};
+dart.setSignature(_internal.IterableElementError, {
+  statics: () => ({
+    noElement: dart.definiteFunctionType(core.StateError, []),
+    tooMany: dart.definiteFunctionType(core.StateError, []),
+    tooFew: dart.definiteFunctionType(core.StateError, [])
+  }),
+  names: ['noElement', 'tooMany', 'tooFew']
+});
+_internal.FixedLengthListMixin$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  dart.defineExtensionNames([
+    'length',
+    'add',
+    'insert',
+    'insertAll',
+    'addAll',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'clear',
+    'removeAt',
+    'removeLast',
+    'removeRange',
+    'replaceRange'
+  ]);
+  class FixedLengthListMixin extends core.Object {
+    set length(newLength) {
+      dart.throw(new core.UnsupportedError("Cannot change the length of a fixed-length list"));
+    }
+    add(value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
+    }
+    insert(index, value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
+    }
+    insertAll(at, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
+    }
+    addAll(iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list"));
+    }
+    remove(element) {
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+    removeWhere(test) {
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+    retainWhere(test) {
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+    clear() {
+      dart.throw(new core.UnsupportedError("Cannot clear a fixed-length list"));
+    }
+    removeAt(index) {
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+    removeLast() {
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+    removeRange(start, end) {
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+    replaceRange(start, end, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
+    }
+  }
+  dart.addTypeTests(FixedLengthListMixin);
+  dart.setSignature(FixedLengthListMixin, {
+    setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [E]),
+      insert: dart.definiteFunctionType(dart.void, [core.int, E]),
+      insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      removeAt: dart.definiteFunctionType(E, [core.int]),
+      removeLast: dart.definiteFunctionType(E, []),
+      removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+      replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()])
+    })
+  });
+  dart.defineExtensionMembers(FixedLengthListMixin, [
+    'add',
+    'insert',
+    'insertAll',
+    'addAll',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'clear',
+    'removeAt',
+    'removeLast',
+    'removeRange',
+    'replaceRange',
+    'length'
+  ]);
+  return FixedLengthListMixin;
+});
+_internal.FixedLengthListMixin = FixedLengthListMixin();
+_internal.FixedLengthListBase$ = dart.generic(E => {
+  class FixedLengthListBase extends dart.mixin(collection.ListBase$(E), _internal.FixedLengthListMixin$(E)) {
+    new() {
+      super.new();
+    }
+  }
+  return FixedLengthListBase;
+});
+_internal.FixedLengthListBase = FixedLengthListBase();
+const _backedList = Symbol('_backedList');
+_internal._ListIndicesIterable = class _ListIndicesIterable extends _internal.ListIterable$(core.int) {
+  new(backedList) {
+    this[_backedList] = backedList;
+    super.new();
+  }
+  get length() {
+    return this[_backedList][dartx.length];
+  }
+  elementAt(index) {
+    core.RangeError.checkValidIndex(index, this);
+    return index;
+  }
+};
+dart.addSimpleTypeTests(_internal._ListIndicesIterable);
+dart.setSignature(_internal._ListIndicesIterable, {
+  constructors: () => ({new: dart.definiteFunctionType(_internal._ListIndicesIterable, [core.List])}),
+  fields: () => ({[_backedList]: core.List})
+});
+dart.defineExtensionMembers(_internal._ListIndicesIterable, ['elementAt', 'length']);
+const _values = Symbol('_values');
+_internal.ListMapView$ = dart.generic(E => {
+  let SubListIterableOfE = () => (SubListIterableOfE = dart.constFn(_internal.SubListIterable$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let MapOfint$E = () => (MapOfint$E = dart.constFn(core.Map$(core.int, E)))();
+  let intAndETovoid = () => (intAndETovoid = dart.constFn(dart.functionType(dart.void, [core.int, E])))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  class ListMapView extends core.Object {
+    new(values) {
+      this[_values] = values;
+    }
+    _get(key) {
+      return dart.test(this.containsKey(key)) ? this[_values][dartx._get](core.int._check(key)) : null;
+    }
+    get length() {
+      return this[_values][dartx.length];
+    }
+    get values() {
+      return new (SubListIterableOfE())(this[_values], 0, null);
+    }
+    get keys() {
+      return new _internal._ListIndicesIterable(this[_values]);
+    }
+    get isEmpty() {
+      return this[_values][dartx.isEmpty];
+    }
+    get isNotEmpty() {
+      return this[_values][dartx.isNotEmpty];
+    }
+    containsValue(value) {
+      return this[_values][dartx.contains](value);
+    }
+    containsKey(key) {
+      return typeof key == 'number' && dart.notNull(key) >= 0 && dart.notNull(key) < dart.notNull(this.length);
+    }
+    forEach(f) {
+      let length = this[_values][dartx.length];
+      for (let i = 0; i < dart.notNull(length); i++) {
+        f(i, this[_values][dartx._get](i));
+        if (length != this[_values][dartx.length]) {
+          dart.throw(new core.ConcurrentModificationError(this[_values]));
+        }
       }
     }
-  };
-  _isolate_helper._BaseSendPort[dart.implements] = () => [isolate.SendPort];
-  dart.setSignature(_isolate_helper._BaseSendPort, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._BaseSendPort, [core.int])}),
-    fields: () => ({[_isolateId]: core.int}),
-    methods: () => ({[_checkReplyTo]: dart.definiteFunctionType(dart.void, [isolate.SendPort])})
-  });
-  const _receivePort = Symbol('_receivePort');
-  const _isClosed = Symbol('_isClosed');
-  const _add = Symbol('_add');
-  _isolate_helper._NativeJsSendPort = class _NativeJsSendPort extends _isolate_helper._BaseSendPort {
-    new(receivePort, isolateId) {
-      this[_receivePort] = receivePort;
-      super.new(isolateId);
+    _set(key, value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
+      return value;
     }
-    send(message) {
-      let isolate = _isolate_helper._globalState.isolates[dartx._get](this[_isolateId]);
-      if (isolate == null) return;
-      if (dart.test(this[_receivePort][_isClosed])) return;
-      let msg = _isolate_helper._clone(message);
-      if (dart.equals(isolate.controlPort, this[_receivePort])) {
-        isolate.handleControlMessage(msg);
+    putIfAbsent(key, ifAbsent) {
+      VoidToE()._check(ifAbsent);
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
+    }
+    remove(key) {
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
+    }
+    clear() {
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
+    }
+    addAll(other) {
+      MapOfint$E()._check(other);
+      dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map"));
+    }
+    toString() {
+      return collection.Maps.mapToString(this);
+    }
+  }
+  dart.addTypeTests(ListMapView);
+  ListMapView[dart.implements] = () => [MapOfint$E()];
+  dart.setSignature(ListMapView, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.ListMapView$(E), [ListOfE()])}),
+    fields: () => ({[_values]: ListOfE()}),
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      values: dart.definiteFunctionType(core.Iterable$(E), []),
+      keys: dart.definiteFunctionType(core.Iterable$(core.int), []),
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      _get: dart.definiteFunctionType(E, [core.Object]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+      forEach: dart.definiteFunctionType(dart.void, [intAndETovoid()]),
+      _set: dart.definiteFunctionType(dart.void, [core.int, E]),
+      putIfAbsent: dart.definiteFunctionType(E, [core.int, VoidToE()]),
+      remove: dart.definiteFunctionType(E, [core.Object]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfint$E()])
+    })
+  });
+  dart.defineExtensionMembers(ListMapView, [
+    '_get',
+    'containsValue',
+    'containsKey',
+    'forEach',
+    '_set',
+    'putIfAbsent',
+    'remove',
+    'clear',
+    'addAll',
+    'length',
+    'values',
+    'keys',
+    'isEmpty',
+    'isNotEmpty'
+  ]);
+  return ListMapView;
+});
+_internal.ListMapView = ListMapView();
+_internal.ReversedListIterable$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class ReversedListIterable extends _internal.ListIterable$(E) {
+    new(source) {
+      this[_source] = source;
+      super.new();
+    }
+    get length() {
+      return this[_source][dartx.length];
+    }
+    elementAt(index) {
+      return this[_source][dartx.elementAt](dart.notNull(this[_source][dartx.length]) - 1 - dart.notNull(index));
+    }
+  }
+  dart.setSignature(ReversedListIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_internal.ReversedListIterable$(E), [IterableOfE()])}),
+    fields: () => ({[_source]: IterableOfE()})
+  });
+  dart.defineExtensionMembers(ReversedListIterable, ['elementAt', 'length']);
+  return ReversedListIterable;
+});
+_internal.ReversedListIterable = ReversedListIterable();
+_internal.UnmodifiableListError = class UnmodifiableListError extends core.Object {
+  static add() {
+    return new core.UnsupportedError("Cannot add to unmodifiable List");
+  }
+  static change() {
+    return new core.UnsupportedError("Cannot change the content of an unmodifiable List");
+  }
+  static length() {
+    return new core.UnsupportedError("Cannot change length of unmodifiable List");
+  }
+  static remove() {
+    return new core.UnsupportedError("Cannot remove from unmodifiable List");
+  }
+};
+dart.setSignature(_internal.UnmodifiableListError, {
+  statics: () => ({
+    add: dart.definiteFunctionType(core.UnsupportedError, []),
+    change: dart.definiteFunctionType(core.UnsupportedError, []),
+    length: dart.definiteFunctionType(core.UnsupportedError, []),
+    remove: dart.definiteFunctionType(core.UnsupportedError, [])
+  }),
+  names: ['add', 'change', 'length', 'remove']
+});
+_internal.NonGrowableListError = class NonGrowableListError extends core.Object {
+  static add() {
+    return new core.UnsupportedError("Cannot add to non-growable List");
+  }
+  static length() {
+    return new core.UnsupportedError("Cannot change length of non-growable List");
+  }
+  static remove() {
+    return new core.UnsupportedError("Cannot remove from non-growable List");
+  }
+};
+dart.setSignature(_internal.NonGrowableListError, {
+  statics: () => ({
+    add: dart.definiteFunctionType(core.UnsupportedError, []),
+    length: dart.definiteFunctionType(core.UnsupportedError, []),
+    remove: dart.definiteFunctionType(core.UnsupportedError, [])
+  }),
+  names: ['add', 'length', 'remove']
+});
+_internal.makeListFixedLength = function(E) {
+  return growableList => {
+    _interceptors.JSArray.markFixedList(growableList);
+    return growableList;
+  };
+};
+dart.lazyFn(_internal.makeListFixedLength, () => ListOfEToListOfE());
+_internal.makeFixedListUnmodifiable = function(E) {
+  return fixedLengthList => {
+    _interceptors.JSArray.markUnmodifiableList(fixedLengthList);
+    return fixedLengthList;
+  };
+};
+dart.lazyFn(_internal.makeFixedListUnmodifiable, () => ListOfEToListOfE());
+_internal.Lists = class Lists extends core.Object {
+  static copy(src, srcStart, dst, dstStart, count) {
+    if (dart.notNull(srcStart) < dart.notNull(dstStart)) {
+      for (let i = dart.notNull(srcStart) + dart.notNull(count) - 1, j = dart.notNull(dstStart) + dart.notNull(count) - 1; i >= dart.notNull(srcStart); i--, j--) {
+        dst[dartx._set](j, src[dartx._get](i));
+      }
+    } else {
+      for (let i = srcStart, j = dstStart; dart.notNull(i) < dart.notNull(srcStart) + dart.notNull(count); i = dart.notNull(i) + 1, j = dart.notNull(j) + 1) {
+        dst[dartx._set](j, src[dartx._get](i));
+      }
+    }
+  }
+  static areEqual(a, b) {
+    if (core.identical(a, b)) return true;
+    if (!core.List.is(b)) return false;
+    let length = a[dartx.length];
+    if (!dart.equals(length, dart.dload(b, 'length'))) return false;
+    for (let i = 0; i < dart.notNull(length); i++) {
+      if (!core.identical(a[dartx._get](i), dart.dindex(b, i))) return false;
+    }
+    return true;
+  }
+  static indexOf(a, element, startIndex, endIndex) {
+    if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
+      return -1;
+    }
+    if (dart.notNull(startIndex) < 0) {
+      startIndex = 0;
+    }
+    for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dart.notNull(i) + 1) {
+      if (dart.equals(a[dartx._get](i), element)) {
+        return i;
+      }
+    }
+    return -1;
+  }
+  static lastIndexOf(a, element, startIndex) {
+    if (dart.notNull(startIndex) < 0) {
+      return -1;
+    }
+    if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
+      startIndex = dart.notNull(a[dartx.length]) - 1;
+    }
+    for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
+      if (dart.equals(a[dartx._get](i), element)) {
+        return i;
+      }
+    }
+    return -1;
+  }
+  static indicesCheck(a, start, end) {
+    core.RangeError.checkValidRange(start, end, a[dartx.length]);
+  }
+  static rangeCheck(a, start, length) {
+    core.RangeError.checkNotNegative(length);
+    core.RangeError.checkNotNegative(start);
+    if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a[dartx.length])) {
+      let message = dart.str`${start} + ${length} must be in the range [0..${a[dartx.length]}]`;
+      dart.throw(new core.RangeError.range(length, 0, dart.notNull(a[dartx.length]) - dart.notNull(start), "length", message));
+    }
+  }
+};
+dart.setSignature(_internal.Lists, {
+  statics: () => ({
+    copy: dart.definiteFunctionType(dart.void, [core.List, core.int, core.List, core.int, core.int]),
+    areEqual: dart.definiteFunctionType(core.bool, [core.List, dart.dynamic]),
+    indexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int, core.int]),
+    lastIndexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int]),
+    indicesCheck: dart.definiteFunctionType(dart.void, [core.List, core.int, core.int]),
+    rangeCheck: dart.definiteFunctionType(dart.void, [core.List, core.int, core.int])
+  }),
+  names: ['copy', 'areEqual', 'indexOf', 'lastIndexOf', 'indicesCheck', 'rangeCheck']
+});
+_internal.printToZone = null;
+_internal.printToConsole = function(line) {
+  _js_primitives.printString(dart.str`${line}`);
+};
+dart.lazyFn(_internal.printToConsole, () => StringTovoid$());
+_internal.Sort = class Sort extends core.Object {
+  static sort(E) {
+    return (a, compare) => {
+      _internal.Sort._doSort(E)(a, 0, dart.notNull(a[dartx.length]) - 1, compare);
+    };
+  }
+  static sortRange(E) {
+    return (a, from, to, compare) => {
+      if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[dartx.length]) || dart.notNull(to) < dart.notNull(from)) {
+        dart.throw("OutOfRange");
+      }
+      _internal.Sort._doSort(E)(a, from, dart.notNull(to) - 1, compare);
+    };
+  }
+  static _doSort(E) {
+    return (a, left, right, compare) => {
+      if (dart.notNull(right) - dart.notNull(left) <= _internal.Sort._INSERTION_SORT_THRESHOLD) {
+        _internal.Sort._insertionSort(E)(a, left, right, compare);
+      } else {
+        _internal.Sort._dualPivotQuicksort(E)(a, left, right, compare);
+      }
+    };
+  }
+  static _insertionSort(E) {
+    return (a, left, right, compare) => {
+      for (let i = dart.notNull(left) + 1; i <= dart.notNull(right); i++) {
+        let el = a[dartx._get](i);
+        let j = i;
+        while (j > dart.notNull(left) && dart.notNull(compare(a[dartx._get](j - 1), el)) > 0) {
+          a[dartx._set](j, a[dartx._get](j - 1));
+          j--;
+        }
+        a[dartx._set](j, el);
+      }
+    };
+  }
+  static _dualPivotQuicksort(E) {
+    return (a, left, right, compare) => {
+      dart.assert(dart.notNull(right) - dart.notNull(left) > _internal.Sort._INSERTION_SORT_THRESHOLD);
+      let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6)[dartx.truncate]();
+      let index1 = dart.notNull(left) + sixth;
+      let index5 = dart.notNull(right) - sixth;
+      let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2)[dartx.truncate]();
+      let index2 = index3 - sixth;
+      let index4 = index3 + sixth;
+      let el1 = a[dartx._get](index1);
+      let el2 = a[dartx._get](index2);
+      let el3 = a[dartx._get](index3);
+      let el4 = a[dartx._get](index4);
+      let el5 = a[dartx._get](index5);
+      if (dart.notNull(compare(el1, el2)) > 0) {
+        let t = el1;
+        el1 = el2;
+        el2 = t;
+      }
+      if (dart.notNull(compare(el4, el5)) > 0) {
+        let t = el4;
+        el4 = el5;
+        el5 = t;
+      }
+      if (dart.notNull(compare(el1, el3)) > 0) {
+        let t = el1;
+        el1 = el3;
+        el3 = t;
+      }
+      if (dart.notNull(compare(el2, el3)) > 0) {
+        let t = el2;
+        el2 = el3;
+        el3 = t;
+      }
+      if (dart.notNull(compare(el1, el4)) > 0) {
+        let t = el1;
+        el1 = el4;
+        el4 = t;
+      }
+      if (dart.notNull(compare(el3, el4)) > 0) {
+        let t = el3;
+        el3 = el4;
+        el4 = t;
+      }
+      if (dart.notNull(compare(el2, el5)) > 0) {
+        let t = el2;
+        el2 = el5;
+        el5 = t;
+      }
+      if (dart.notNull(compare(el2, el3)) > 0) {
+        let t = el2;
+        el2 = el3;
+        el3 = t;
+      }
+      if (dart.notNull(compare(el4, el5)) > 0) {
+        let t = el4;
+        el4 = el5;
+        el5 = t;
+      }
+      let pivot1 = el2;
+      let pivot2 = el4;
+      a[dartx._set](index1, el1);
+      a[dartx._set](index3, el3);
+      a[dartx._set](index5, el5);
+      a[dartx._set](index2, a[dartx._get](left));
+      a[dartx._set](index4, a[dartx._get](right));
+      let less = dart.notNull(left) + 1;
+      let great = dart.notNull(right) - 1;
+      let pivots_are_equal = compare(pivot1, pivot2) == 0;
+      if (pivots_are_equal) {
+        let pivot = pivot1;
+        for (let k = less; k <= great; k++) {
+          let ak = a[dartx._get](k);
+          let comp = compare(ak, pivot);
+          if (comp == 0) continue;
+          if (dart.notNull(comp) < 0) {
+            if (k != less) {
+              a[dartx._set](k, a[dartx._get](less));
+              a[dartx._set](less, ak);
+            }
+            less++;
+          } else {
+            while (true) {
+              comp = compare(a[dartx._get](great), pivot);
+              if (dart.notNull(comp) > 0) {
+                great--;
+                continue;
+              } else if (dart.notNull(comp) < 0) {
+                a[dartx._set](k, a[dartx._get](less));
+                a[dartx._set](less++, a[dartx._get](great));
+                a[dartx._set](great--, ak);
+                break;
+              } else {
+                a[dartx._set](k, a[dartx._get](great));
+                a[dartx._set](great--, ak);
+                break;
+              }
+            }
+          }
+        }
+      } else {
+        for (let k = less; k <= great; k++) {
+          let ak = a[dartx._get](k);
+          let comp_pivot1 = compare(ak, pivot1);
+          if (dart.notNull(comp_pivot1) < 0) {
+            if (k != less) {
+              a[dartx._set](k, a[dartx._get](less));
+              a[dartx._set](less, ak);
+            }
+            less++;
+          } else {
+            let comp_pivot2 = compare(ak, pivot2);
+            if (dart.notNull(comp_pivot2) > 0) {
+              while (true) {
+                let comp = compare(a[dartx._get](great), pivot2);
+                if (dart.notNull(comp) > 0) {
+                  great--;
+                  if (great < k) break;
+                  continue;
+                } else {
+                  comp = compare(a[dartx._get](great), pivot1);
+                  if (dart.notNull(comp) < 0) {
+                    a[dartx._set](k, a[dartx._get](less));
+                    a[dartx._set](less++, a[dartx._get](great));
+                    a[dartx._set](great--, ak);
+                  } else {
+                    a[dartx._set](k, a[dartx._get](great));
+                    a[dartx._set](great--, ak);
+                  }
+                  break;
+                }
+              }
+            }
+          }
+        }
+      }
+      a[dartx._set](left, a[dartx._get](less - 1));
+      a[dartx._set](less - 1, pivot1);
+      a[dartx._set](right, a[dartx._get](great + 1));
+      a[dartx._set](great + 1, pivot2);
+      _internal.Sort._doSort(E)(a, left, less - 2, compare);
+      _internal.Sort._doSort(E)(a, great + 2, right, compare);
+      if (pivots_are_equal) {
         return;
       }
-      _isolate_helper._globalState.topEventLoop.enqueue(isolate, dart.fn(() => {
-        if (!dart.test(this[_receivePort][_isClosed])) {
-          this[_receivePort][_add](msg);
+      if (less < index1 && great > index5) {
+        while (compare(a[dartx._get](less), pivot1) == 0) {
+          less++;
         }
-      }, VoidToNull()), dart.str`receive ${message}`);
-    }
-    ['=='](other) {
-      return _isolate_helper._NativeJsSendPort.is(other) && dart.equals(this[_receivePort], other[_receivePort]);
-    }
-    get hashCode() {
-      return this[_receivePort][_id];
-    }
-  };
-  _isolate_helper._NativeJsSendPort[dart.implements] = () => [isolate.SendPort];
-  dart.setSignature(_isolate_helper._NativeJsSendPort, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._NativeJsSendPort, [_isolate_helper.RawReceivePortImpl, core.int])}),
-    fields: () => ({[_receivePort]: _isolate_helper.RawReceivePortImpl}),
-    methods: () => ({send: dart.definiteFunctionType(dart.void, [dart.dynamic])})
-  });
-  const _workerId = Symbol('_workerId');
-  const _receivePortId = Symbol('_receivePortId');
-  _isolate_helper._WorkerSendPort = class _WorkerSendPort extends _isolate_helper._BaseSendPort {
-    new(workerId, isolateId, receivePortId) {
-      this[_workerId] = workerId;
-      this[_receivePortId] = receivePortId;
-      super.new(isolateId);
-    }
-    send(message) {
-      let workerMessage = _isolate_helper._serializeMessage(dart.map({command: 'message', port: this, msg: message}, core.String, core.Object));
-      if (dart.test(_isolate_helper._globalState.isWorker)) {
-        _isolate_helper._globalState.mainManager.postMessage(workerMessage);
+        while (compare(a[dartx._get](great), pivot2) == 0) {
+          great--;
+        }
+        for (let k = less; k <= great; k++) {
+          let ak = a[dartx._get](k);
+          let comp_pivot1 = compare(ak, pivot1);
+          if (comp_pivot1 == 0) {
+            if (k != less) {
+              a[dartx._set](k, a[dartx._get](less));
+              a[dartx._set](less, ak);
+            }
+            less++;
+          } else {
+            let comp_pivot2 = compare(ak, pivot2);
+            if (comp_pivot2 == 0) {
+              while (true) {
+                let comp = compare(a[dartx._get](great), pivot2);
+                if (comp == 0) {
+                  great--;
+                  if (great < k) break;
+                  continue;
+                } else {
+                  comp = compare(a[dartx._get](great), pivot1);
+                  if (dart.notNull(comp) < 0) {
+                    a[dartx._set](k, a[dartx._get](less));
+                    a[dartx._set](less++, a[dartx._get](great));
+                    a[dartx._set](great--, ak);
+                  } else {
+                    a[dartx._set](k, a[dartx._get](great));
+                    a[dartx._set](great--, ak);
+                  }
+                  break;
+                }
+              }
+            }
+          }
+        }
+        _internal.Sort._doSort(E)(a, less, great, compare);
       } else {
-        let manager = _isolate_helper._globalState.managers[dartx._get](this[_workerId]);
-        if (manager != null) {
-          manager.postMessage(workerMessage);
+        _internal.Sort._doSort(E)(a, less, great, compare);
+      }
+    };
+  }
+};
+dart.setSignature(_internal.Sort, {
+  sfields: () => ({_INSERTION_SORT_THRESHOLD: core.int}),
+  statics: () => ({
+    sort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), dart.functionType(core.int, [E, E])]]),
+    sortRange: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]]),
+    _doSort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]]),
+    _insertionSort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]]),
+    _dualPivotQuicksort: dart.definiteFunctionType(E => [dart.void, [core.List$(E), core.int, core.int, dart.functionType(core.int, [E, E])]])
+  }),
+  names: ['sort', 'sortRange', '_doSort', '_insertionSort', '_dualPivotQuicksort']
+});
+_internal.Sort._INSERTION_SORT_THRESHOLD = 32;
+const _name$ = Symbol('_name');
+const _nativeSymbol = Symbol('_nativeSymbol');
+_internal.Symbol = class Symbol extends core.Object {
+  new(name) {
+    this[_name$] = name;
+    this[_nativeSymbol] = null;
+  }
+  es6(name, nativeSymbol) {
+    this[_name$] = name;
+    this[_nativeSymbol] = nativeSymbol;
+  }
+  unvalidated(name) {
+    this[_name$] = name;
+    this[_nativeSymbol] = null;
+  }
+  validated(name) {
+    this[_name$] = _internal.Symbol.validatePublicSymbol(name);
+    this[_nativeSymbol] = null;
+  }
+  ['=='](other) {
+    return _internal.Symbol.is(other) && this[_name$] == other[_name$] && dart.equals(this[_nativeSymbol], other[_nativeSymbol]);
+  }
+  get hashCode() {
+    let hash = this._hashCode;
+    if (hash != null) return hash;
+    let arbitraryPrime = 664597;
+    hash = 536870911 & arbitraryPrime * dart.notNull(dart.hashCode(this[_name$]));
+    this._hashCode = hash;
+    return hash;
+  }
+  toString() {
+    return dart.str`Symbol("${this[_name$]}")`;
+  }
+  static getName(symbol) {
+    return symbol[_name$];
+  }
+  static getNativeSymbol(symbol) {
+    return symbol[_nativeSymbol];
+  }
+  static validatePublicSymbol(name) {
+    if (dart.test(name[dartx.isEmpty]) || dart.test(_internal.Symbol.publicSymbolPattern.hasMatch(name))) return name;
+    if (dart.test(name[dartx.startsWith]('_'))) {
+      dart.throw(new core.ArgumentError(dart.str`"${name}" is a private identifier`));
+    }
+    dart.throw(new core.ArgumentError(dart.str`"${name}" is not a valid (qualified) symbol name`));
+  }
+  static isValidSymbol(name) {
+    return dart.test(name[dartx.isEmpty]) || dart.test(_internal.Symbol.symbolPattern.hasMatch(name));
+  }
+};
+dart.defineNamedConstructor(_internal.Symbol, 'es6');
+dart.defineNamedConstructor(_internal.Symbol, 'unvalidated');
+dart.defineNamedConstructor(_internal.Symbol, 'validated');
+_internal.Symbol[dart.implements] = () => [core.Symbol];
+dart.setSignature(_internal.Symbol, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_internal.Symbol, [core.String]),
+    es6: dart.definiteFunctionType(_internal.Symbol, [core.String, dart.dynamic]),
+    unvalidated: dart.definiteFunctionType(_internal.Symbol, [core.String]),
+    validated: dart.definiteFunctionType(_internal.Symbol, [core.String])
+  }),
+  fields: () => ({
+    [_name$]: core.String,
+    [_nativeSymbol]: dart.dynamic
+  }),
+  methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])}),
+  sfields: () => ({
+    reservedWordRE: core.String,
+    publicIdentifierRE: core.String,
+    identifierRE: core.String,
+    operatorRE: core.String,
+    publicSymbolPattern: core.RegExp,
+    symbolPattern: core.RegExp
+  }),
+  statics: () => ({
+    getName: dart.definiteFunctionType(core.String, [_internal.Symbol]),
+    getNativeSymbol: dart.definiteFunctionType(dart.dynamic, [_internal.Symbol]),
+    validatePublicSymbol: dart.definiteFunctionType(core.String, [core.String]),
+    isValidSymbol: dart.definiteFunctionType(core.bool, [core.String])
+  }),
+  names: ['getName', 'getNativeSymbol', 'validatePublicSymbol', 'isValidSymbol']
+});
+_internal.Symbol.reservedWordRE = '(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|' + 'e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|' + 'ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|' + 'v(?:ar|oid)|w(?:hile|ith))';
+_internal.Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)';
+dart.defineLazy(_internal.Symbol, {
+  get publicIdentifierRE() {
+    return '(?!' + dart.str`${_internal.Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$][\\w$]*';
+  },
+  get identifierRE() {
+    return '(?!' + dart.str`${_internal.Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$_][\\w$]*';
+  },
+  get publicSymbolPattern() {
+    return core.RegExp.new(dart.str`^(?:${_internal.Symbol.operatorRE}\$|${_internal.Symbol.publicIdentifierRE}(?:=?\$|[.](?!\$)))+?\$`);
+  },
+  get symbolPattern() {
+    return core.RegExp.new(dart.str`^(?:${_internal.Symbol.operatorRE}\$|${_internal.Symbol.identifierRE}(?:=?\$|[.](?!\$)))+?\$`);
+  }
+});
+_isolate_helper._callInIsolate = function(isolate, func) {
+  let result = isolate.eval(func);
+  _isolate_helper._globalState.topEventLoop.run();
+  return result;
+};
+dart.lazyFn(_isolate_helper._callInIsolate, () => _IsolateContextAndFunctionTodynamic());
+const _activeJsAsyncCount = Symbol('_activeJsAsyncCount');
+_isolate_helper.enterJsAsync = function() {
+  let o = _isolate_helper._globalState.topEventLoop;
+  o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) + 1;
+};
+dart.fn(_isolate_helper.enterJsAsync, VoidTodynamic$());
+_isolate_helper.leaveJsAsync = function() {
+  let o = _isolate_helper._globalState.topEventLoop;
+  o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) - 1;
+  dart.assert(dart.notNull(_isolate_helper._globalState.topEventLoop[_activeJsAsyncCount]) >= 0);
+};
+dart.fn(_isolate_helper.leaveJsAsync, VoidTodynamic$());
+_isolate_helper.isWorker = function() {
+  return _isolate_helper._globalState.isWorker;
+};
+dart.lazyFn(_isolate_helper.isWorker, () => VoidTobool());
+_isolate_helper._currentIsolate = function() {
+  return _isolate_helper._globalState.currentContext;
+};
+dart.lazyFn(_isolate_helper._currentIsolate, () => VoidTo_IsolateContext());
+_isolate_helper.startRootIsolate = function(entry, args) {
+  args = args;
+  if (args == null) args = [];
+  if (!core.List.is(args)) {
+    dart.throw(new core.ArgumentError(dart.str`Arguments to main must be a List: ${args}`));
+  }
+  _isolate_helper._globalState = new _isolate_helper._Manager(core.Function._check(entry));
+  if (dart.test(_isolate_helper._globalState.isWorker)) return;
+  let rootContext = new _isolate_helper._IsolateContext();
+  _isolate_helper._globalState.rootContext = rootContext;
+  _isolate_helper._globalState.currentContext = rootContext;
+  if (_isolate_helper._MainFunctionArgs.is(entry)) {
+    rootContext.eval(dart.fn(() => {
+      dart.dcall(entry, args);
+    }, VoidToNull()));
+  } else if (_isolate_helper._MainFunctionArgsMessage.is(entry)) {
+    rootContext.eval(dart.fn(() => {
+      dart.dcall(entry, args, null);
+    }, VoidToNull()));
+  } else {
+    rootContext.eval(core.Function._check(entry));
+  }
+  _isolate_helper._globalState.topEventLoop.run();
+};
+dart.fn(_isolate_helper.startRootIsolate, dynamicAnddynamicTovoid$());
+dart.copyProperties(_isolate_helper, {
+  get _globalState() {
+    return dart.globalState;
+  },
+  set _globalState(val) {
+    dart.globalState = val;
+  }
+});
+const _nativeDetectEnvironment = Symbol('_nativeDetectEnvironment');
+const _nativeInitWorkerMessageHandler = Symbol('_nativeInitWorkerMessageHandler');
+_isolate_helper._Manager = class _Manager extends core.Object {
+  get useWorkers() {
+    return this.supportsWorkers;
+  }
+  new(entry) {
+    this.entry = entry;
+    this.nextIsolateId = 0;
+    this.currentManagerId = 0;
+    this.nextManagerId = 1;
+    this.currentContext = null;
+    this.rootContext = null;
+    this.topEventLoop = null;
+    this.fromCommandLine = null;
+    this.isWorker = null;
+    this.supportsWorkers = null;
+    this.isolates = null;
+    this.mainManager = null;
+    this.managers = null;
+    this[_nativeDetectEnvironment]();
+    this.topEventLoop = new _isolate_helper._EventLoop();
+    this.isolates = MapOfint$_IsolateContext().new();
+    this.managers = MapOfint$dynamic().new();
+    if (dart.test(this.isWorker)) {
+      this.mainManager = new _isolate_helper._MainManagerStub();
+      this[_nativeInitWorkerMessageHandler]();
+    }
+  }
+  [_nativeDetectEnvironment]() {
+    let isWindowDefined = _isolate_helper.globalWindow != null;
+    let isWorkerDefined = _isolate_helper.globalWorker != null;
+    this.isWorker = !isWindowDefined && dart.test(_isolate_helper.globalPostMessageDefined);
+    this.supportsWorkers = dart.test(this.isWorker) || isWorkerDefined && _isolate_helper.IsolateNatives.thisScript != null;
+    this.fromCommandLine = !isWindowDefined && !dart.test(this.isWorker);
+  }
+  [_nativeInitWorkerMessageHandler]() {
+    let func = (function(f, a) {
+      return function(e) {
+        f(a, e);
+      };
+    })(_isolate_helper.IsolateNatives._processWorkerMessage, this.mainManager);
+    _isolate_helper.global.onmessage = func;
+    _isolate_helper.global.dartPrint = _isolate_helper.global.dartPrint || (function(serialize) {
+      return function(object) {
+        var _self = _isolate_helper.global;
+        if (_self.console && _self.console.log) {
+          _self.console.log(object);
+        } else {
+          _self.postMessage(serialize(object));
+        }
+      };
+    })(_isolate_helper._Manager._serializePrintMessage);
+  }
+  static _serializePrintMessage(object) {
+    return _isolate_helper._serializeMessage(dart.map({command: "print", msg: object}, core.String, dart.dynamic));
+  }
+  maybeCloseWorker() {
+    if (dart.test(this.isWorker) && dart.test(this.isolates[dartx.isEmpty]) && this.topEventLoop[_activeJsAsyncCount] == 0) {
+      this.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'close'}, core.String, core.String)));
+    }
+  }
+};
+dart.setSignature(_isolate_helper._Manager, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._Manager, [core.Function])}),
+  fields: () => ({
+    nextIsolateId: core.int,
+    currentManagerId: core.int,
+    nextManagerId: core.int,
+    currentContext: _isolate_helper._IsolateContext,
+    rootContext: _isolate_helper._IsolateContext,
+    topEventLoop: _isolate_helper._EventLoop,
+    fromCommandLine: core.bool,
+    isWorker: core.bool,
+    supportsWorkers: core.bool,
+    isolates: MapOfint$_IsolateContext(),
+    mainManager: _isolate_helper._MainManagerStub,
+    managers: MapOfint$dynamic(),
+    entry: core.Function
+  }),
+  getters: () => ({useWorkers: dart.definiteFunctionType(core.bool, [])}),
+  methods: () => ({
+    [_nativeDetectEnvironment]: dart.definiteFunctionType(dart.void, []),
+    [_nativeInitWorkerMessageHandler]: dart.definiteFunctionType(dart.void, []),
+    maybeCloseWorker: dart.definiteFunctionType(dart.void, [])
+  }),
+  statics: () => ({_serializePrintMessage: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
+  names: ['_serializePrintMessage']
+});
+const _scheduledControlEvents = Symbol('_scheduledControlEvents');
+const _isExecutingEvent = Symbol('_isExecutingEvent');
+const _id = Symbol('_id');
+const _updateGlobalState = Symbol('_updateGlobalState');
+const _setGlobals = Symbol('_setGlobals');
+const _addRegistration = Symbol('_addRegistration');
+const _close = Symbol('_close');
+_isolate_helper._IsolateContext = class _IsolateContext extends core.Object {
+  new() {
+    this.id = (() => {
+      let o = _isolate_helper._globalState, x = o.nextIsolateId;
+      o.nextIsolateId = dart.notNull(x) + 1;
+      return x;
+    })();
+    this.ports = MapOfint$RawReceivePortImpl().new();
+    this.weakPorts = SetOfint().new();
+    this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE();
+    this.controlPort = new _isolate_helper.RawReceivePortImpl._controlPort();
+    this.pauseCapability = isolate.Capability.new();
+    this.terminateCapability = isolate.Capability.new();
+    this.delayedEvents = JSArrayOf_IsolateEvent().of([]);
+    this.pauseTokens = SetOfCapability().new();
+    this.errorPorts = SetOfSendPort().new();
+    this.initialized = false;
+    this.isPaused = false;
+    this.doneHandlers = null;
+    this[_scheduledControlEvents] = null;
+    this[_isExecutingEvent] = false;
+    this.errorsAreFatal = true;
+    this.registerWeak(this.controlPort[_id], this.controlPort);
+  }
+  addPause(authentification, resume) {
+    if (!dart.equals(this.pauseCapability, authentification)) return;
+    if (dart.test(this.pauseTokens.add(resume)) && !dart.test(this.isPaused)) {
+      this.isPaused = true;
+    }
+    this[_updateGlobalState]();
+  }
+  removePause(resume) {
+    if (!dart.test(this.isPaused)) return;
+    this.pauseTokens.remove(resume);
+    if (dart.test(this.pauseTokens.isEmpty)) {
+      while (dart.test(this.delayedEvents[dartx.isNotEmpty])) {
+        let event = this.delayedEvents[dartx.removeLast]();
+        _isolate_helper._globalState.topEventLoop.prequeue(event);
+      }
+      this.isPaused = false;
+    }
+    this[_updateGlobalState]();
+  }
+  addDoneListener(responsePort) {
+    if (this.doneHandlers == null) {
+      this.doneHandlers = [];
+    }
+    if (dart.test(dart.dsend(this.doneHandlers, 'contains', responsePort))) return;
+    dart.dsend(this.doneHandlers, 'add', responsePort);
+  }
+  removeDoneListener(responsePort) {
+    if (this.doneHandlers == null) return;
+    dart.dsend(this.doneHandlers, 'remove', responsePort);
+  }
+  setErrorsFatal(authentification, errorsAreFatal) {
+    if (!dart.equals(this.terminateCapability, authentification)) return;
+    this.errorsAreFatal = errorsAreFatal;
+  }
+  handlePing(responsePort, pingType) {
+    if (pingType == isolate.Isolate.IMMEDIATE || pingType == isolate.Isolate.BEFORE_NEXT_EVENT && !dart.test(this[_isExecutingEvent])) {
+      responsePort.send(null);
+      return;
+    }
+    function respond() {
+      responsePort.send(null);
+    }
+    dart.fn(respond, VoidTovoid$());
+    if (pingType == isolate.Isolate.AS_EVENT) {
+      _isolate_helper._globalState.topEventLoop.enqueue(this, respond, "ping");
+      return;
+    }
+    dart.assert(pingType == isolate.Isolate.BEFORE_NEXT_EVENT);
+    if (this[_scheduledControlEvents] == null) {
+      this[_scheduledControlEvents] = collection.Queue.new();
+    }
+    dart.dsend(this[_scheduledControlEvents], 'addLast', respond);
+  }
+  handleKill(authentification, priority) {
+    if (!dart.equals(this.terminateCapability, authentification)) return;
+    if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.BEFORE_NEXT_EVENT && !dart.test(this[_isExecutingEvent])) {
+      this.kill();
+      return;
+    }
+    if (priority == isolate.Isolate.AS_EVENT) {
+      _isolate_helper._globalState.topEventLoop.enqueue(this, dart.bind(this, 'kill'), "kill");
+      return;
+    }
+    dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT);
+    if (this[_scheduledControlEvents] == null) {
+      this[_scheduledControlEvents] = collection.Queue.new();
+    }
+    dart.dsend(this[_scheduledControlEvents], 'addLast', dart.bind(this, 'kill'));
+  }
+  addErrorListener(port) {
+    this.errorPorts.add(port);
+  }
+  removeErrorListener(port) {
+    this.errorPorts.remove(port);
+  }
+  handleUncaughtError(error, stackTrace) {
+    if (dart.test(this.errorPorts.isEmpty)) {
+      if (dart.test(this.errorsAreFatal) && core.identical(this, _isolate_helper._globalState.rootContext)) {
+        return;
+      }
+      if (_isolate_helper.global.console && _isolate_helper.global.console.error) {
+        _isolate_helper.global.console.error(error, stackTrace);
+      } else {
+        core.print(error);
+        if (stackTrace != null) core.print(stackTrace);
+      }
+      return;
+    }
+    let message = core.List.new(2);
+    message[dartx._set](0, dart.toString(error));
+    message[dartx._set](1, stackTrace == null ? null : dart.toString(stackTrace));
+    for (let port of this.errorPorts)
+      port.send(message);
+  }
+  eval(code) {
+    let old = _isolate_helper._globalState.currentContext;
+    _isolate_helper._globalState.currentContext = this;
+    this[_setGlobals]();
+    let result = null;
+    this[_isExecutingEvent] = true;
+    try {
+      result = dart.dcall(code);
+    } catch (e) {
+      let s = dart.stackTrace(e);
+      this.handleUncaughtError(e, s);
+      if (dart.test(this.errorsAreFatal)) {
+        this.kill();
+        if (core.identical(this, _isolate_helper._globalState.rootContext)) {
+          throw e;
         }
       }
     }
-    ['=='](other) {
-      return _isolate_helper._WorkerSendPort.is(other) && this[_workerId] == other[_workerId] && this[_isolateId] == other[_isolateId] && this[_receivePortId] == other[_receivePortId];
+ finally {
+      this[_isExecutingEvent] = false;
+      _isolate_helper._globalState.currentContext = old;
+      if (old != null) old[_setGlobals]();
+      if (this[_scheduledControlEvents] != null) {
+        while (dart.test(dart.dload(this[_scheduledControlEvents], 'isNotEmpty'))) {
+          dart.dcall(dart.dsend(this[_scheduledControlEvents], 'removeFirst'));
+        }
+      }
     }
-    get hashCode() {
-      return (dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]) << 8 ^ dart.notNull(this[_receivePortId])) >>> 0;
+    return result;
+  }
+  [_setGlobals]() {
+    _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics);
+  }
+  handleControlMessage(message) {
+    switch (dart.dindex(message, 0)) {
+      case "pause":
+      {
+        this.addPause(isolate.Capability._check(dart.dindex(message, 1)), isolate.Capability._check(dart.dindex(message, 2)));
+        break;
+      }
+      case "resume":
+      {
+        this.removePause(isolate.Capability._check(dart.dindex(message, 1)));
+        break;
+      }
+      case 'add-ondone':
+      {
+        this.addDoneListener(isolate.SendPort._check(dart.dindex(message, 1)));
+        break;
+      }
+      case 'remove-ondone':
+      {
+        this.removeDoneListener(isolate.SendPort._check(dart.dindex(message, 1)));
+        break;
+      }
+      case 'set-errors-fatal':
+      {
+        this.setErrorsFatal(isolate.Capability._check(dart.dindex(message, 1)), core.bool._check(dart.dindex(message, 2)));
+        break;
+      }
+      case "ping":
+      {
+        this.handlePing(isolate.SendPort._check(dart.dindex(message, 1)), core.int._check(dart.dindex(message, 2)));
+        break;
+      }
+      case "kill":
+      {
+        this.handleKill(isolate.Capability._check(dart.dindex(message, 1)), core.int._check(dart.dindex(message, 2)));
+        break;
+      }
+      case "getErrors":
+      {
+        this.addErrorListener(isolate.SendPort._check(dart.dindex(message, 1)));
+        break;
+      }
+      case "stopErrors":
+      {
+        this.removeErrorListener(isolate.SendPort._check(dart.dindex(message, 1)));
+        break;
+      }
+      default:
     }
-  };
-  _isolate_helper._WorkerSendPort[dart.implements] = () => [isolate.SendPort];
-  dart.setSignature(_isolate_helper._WorkerSendPort, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._WorkerSendPort, [core.int, core.int, core.int])}),
-    fields: () => ({
-      [_workerId]: core.int,
-      [_receivePortId]: core.int
-    }),
-    methods: () => ({send: dart.definiteFunctionType(dart.void, [dart.dynamic])})
-  });
-  const _handler = Symbol('_handler');
-  _isolate_helper.RawReceivePortImpl = class RawReceivePortImpl extends core.Object {
-    new(handler) {
-      this[_handler] = handler;
-      this[_id] = (() => {
-        let x = _isolate_helper.RawReceivePortImpl._nextFreeId;
-        _isolate_helper.RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1;
-        return x;
+  }
+  lookup(portId) {
+    return this.ports[dartx._get](portId);
+  }
+  [_addRegistration](portId, port) {
+    if (dart.test(this.ports[dartx.containsKey](portId))) {
+      dart.throw(core.Exception.new("Registry: ports must be registered only once."));
+    }
+    this.ports[dartx._set](portId, port);
+  }
+  register(portId, port) {
+    this[_addRegistration](portId, port);
+    this[_updateGlobalState]();
+  }
+  registerWeak(portId, port) {
+    this.weakPorts.add(portId);
+    this[_addRegistration](portId, port);
+  }
+  [_updateGlobalState]() {
+    if (dart.notNull(this.ports[dartx.length]) - dart.notNull(this.weakPorts.length) > 0 || dart.test(this.isPaused) || !dart.test(this.initialized)) {
+      _isolate_helper._globalState.isolates[dartx._set](this.id, this);
+    } else {
+      this.kill();
+    }
+  }
+  kill() {
+    if (this[_scheduledControlEvents] != null) {
+      dart.dsend(this[_scheduledControlEvents], 'clear');
+    }
+    for (let port of this.ports[dartx.values]) {
+      port[_close]();
+    }
+    this.ports[dartx.clear]();
+    this.weakPorts.clear();
+    _isolate_helper._globalState.isolates[dartx.remove](this.id);
+    this.errorPorts.clear();
+    if (this.doneHandlers != null) {
+      for (let port of core.Iterable._check(this.doneHandlers)) {
+        isolate.SendPort._check(port);
+        port.send(null);
+      }
+      this.doneHandlers = null;
+    }
+  }
+  unregister(portId) {
+    this.ports[dartx.remove](portId);
+    this.weakPorts.remove(portId);
+    this[_updateGlobalState]();
+  }
+};
+_isolate_helper._IsolateContext[dart.implements] = () => [_foreign_helper.IsolateContext];
+dart.setSignature(_isolate_helper._IsolateContext, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._IsolateContext, [])}),
+  fields: () => ({
+    id: core.int,
+    ports: MapOfint$RawReceivePortImpl(),
+    weakPorts: SetOfint(),
+    isolateStatics: dart.dynamic,
+    controlPort: _isolate_helper.RawReceivePortImpl,
+    pauseCapability: isolate.Capability,
+    terminateCapability: isolate.Capability,
+    initialized: core.bool,
+    isPaused: core.bool,
+    delayedEvents: ListOf_IsolateEvent(),
+    pauseTokens: SetOfCapability(),
+    doneHandlers: dart.dynamic,
+    [_scheduledControlEvents]: dart.dynamic,
+    [_isExecutingEvent]: core.bool,
+    errorsAreFatal: core.bool,
+    errorPorts: SetOfSendPort()
+  }),
+  methods: () => ({
+    addPause: dart.definiteFunctionType(dart.void, [isolate.Capability, isolate.Capability]),
+    removePause: dart.definiteFunctionType(dart.void, [isolate.Capability]),
+    addDoneListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    removeDoneListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    setErrorsFatal: dart.definiteFunctionType(dart.void, [isolate.Capability, core.bool]),
+    handlePing: dart.definiteFunctionType(dart.void, [isolate.SendPort, core.int]),
+    handleKill: dart.definiteFunctionType(dart.void, [isolate.Capability, core.int]),
+    addErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    removeErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    handleUncaughtError: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
+    eval: dart.definiteFunctionType(dart.dynamic, [core.Function]),
+    [_setGlobals]: dart.definiteFunctionType(dart.void, []),
+    handleControlMessage: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    lookup: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [core.int]),
+    [_addRegistration]: dart.definiteFunctionType(dart.void, [core.int, _isolate_helper.RawReceivePortImpl]),
+    register: dart.definiteFunctionType(dart.void, [core.int, _isolate_helper.RawReceivePortImpl]),
+    registerWeak: dart.definiteFunctionType(dart.void, [core.int, _isolate_helper.RawReceivePortImpl]),
+    [_updateGlobalState]: dart.definiteFunctionType(dart.void, []),
+    kill: dart.definiteFunctionType(dart.void, []),
+    unregister: dart.definiteFunctionType(dart.void, [core.int])
+  })
+});
+const _runHelper = Symbol('_runHelper');
+_isolate_helper._EventLoop = class _EventLoop extends core.Object {
+  new() {
+    this.events = QueueOf_IsolateEvent().new();
+    this[_activeJsAsyncCount] = 0;
+  }
+  enqueue(isolate, fn, msg) {
+    this.events.addLast(new _isolate_helper._IsolateEvent(_isolate_helper._IsolateContext._check(isolate), core.Function._check(fn), core.String._check(msg)));
+  }
+  prequeue(event) {
+    this.events.addFirst(event);
+  }
+  dequeue() {
+    if (dart.test(this.events.isEmpty)) return null;
+    return this.events.removeFirst();
+  }
+  checkOpenReceivePortsFromCommandLine() {
+    if (_isolate_helper._globalState.rootContext != null && dart.test(_isolate_helper._globalState.isolates[dartx.containsKey](_isolate_helper._globalState.rootContext.id)) && dart.test(_isolate_helper._globalState.fromCommandLine) && dart.test(_isolate_helper._globalState.rootContext.ports[dartx.isEmpty])) {
+      dart.throw(core.Exception.new("Program exited with open ReceivePorts."));
+    }
+  }
+  runIteration() {
+    let event = this.dequeue();
+    if (event == null) {
+      this.checkOpenReceivePortsFromCommandLine();
+      _isolate_helper._globalState.maybeCloseWorker();
+      return false;
+    }
+    event.process();
+    return true;
+  }
+  [_runHelper]() {
+    if (_isolate_helper.globalWindow != null) {
+      const next = (function() {
+        if (!dart.test(this.runIteration())) return;
+        async.Timer.run(next);
+      }).bind(this);
+      dart.fn(next, VoidToNull());
+      next();
+    } else {
+      while (dart.test(this.runIteration())) {
+      }
+    }
+  }
+  run() {
+    if (!dart.test(_isolate_helper._globalState.isWorker)) {
+      this[_runHelper]();
+    } else {
+      try {
+        this[_runHelper]();
+      } catch (e) {
+        let trace = dart.stackTrace(e);
+        _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'error', msg: dart.str`${e}\n${trace}`}, core.String, core.String)));
+      }
+
+    }
+  }
+};
+dart.setSignature(_isolate_helper._EventLoop, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._EventLoop, [])}),
+  fields: () => ({
+    events: QueueOf_IsolateEvent(),
+    [_activeJsAsyncCount]: core.int
+  }),
+  methods: () => ({
+    enqueue: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    prequeue: dart.definiteFunctionType(dart.void, [_isolate_helper._IsolateEvent]),
+    dequeue: dart.definiteFunctionType(_isolate_helper._IsolateEvent, []),
+    checkOpenReceivePortsFromCommandLine: dart.definiteFunctionType(dart.void, []),
+    runIteration: dart.definiteFunctionType(core.bool, []),
+    [_runHelper]: dart.definiteFunctionType(dart.void, []),
+    run: dart.definiteFunctionType(dart.void, [])
+  })
+});
+_isolate_helper._IsolateEvent = class _IsolateEvent extends core.Object {
+  new(isolate, fn, message) {
+    this.isolate = isolate;
+    this.fn = fn;
+    this.message = message;
+  }
+  process() {
+    if (dart.test(this.isolate.isPaused)) {
+      this.isolate.delayedEvents[dartx.add](this);
+      return;
+    }
+    this.isolate.eval(this.fn);
+  }
+};
+dart.setSignature(_isolate_helper._IsolateEvent, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._IsolateEvent, [_isolate_helper._IsolateContext, core.Function, core.String])}),
+  fields: () => ({
+    isolate: _isolate_helper._IsolateContext,
+    fn: core.Function,
+    message: core.String
+  }),
+  methods: () => ({process: dart.definiteFunctionType(dart.void, [])})
+});
+dart.defineLazy(_isolate_helper, {
+  get global() {
+    return typeof global == 'undefined' ? self : global;
+  }
+});
+_isolate_helper._MainManagerStub = class _MainManagerStub extends core.Object {
+  postMessage(msg) {
+    _isolate_helper.global.postMessage(msg);
+  }
+};
+dart.setSignature(_isolate_helper._MainManagerStub, {
+  methods: () => ({postMessage: dart.definiteFunctionType(dart.void, [dart.dynamic])})
+});
+_isolate_helper._SPAWNED_SIGNAL = "spawned";
+_isolate_helper._SPAWN_FAILED_SIGNAL = "spawn failed";
+dart.copyProperties(_isolate_helper, {
+  get globalWindow() {
+    return _isolate_helper.global.window;
+  }
+});
+dart.copyProperties(_isolate_helper, {
+  get globalWorker() {
+    return _isolate_helper.global.Worker;
+  }
+});
+dart.copyProperties(_isolate_helper, {
+  get globalPostMessageDefined() {
+    return !!_isolate_helper.global.postMessage;
+  }
+});
+_isolate_helper._MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
+_isolate_helper._MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionType(dart.dynamic, [dart.dynamic]));
+_isolate_helper._MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
+_isolate_helper.IsolateNatives = class IsolateNatives extends core.Object {
+  static computeThisScript() {
+    let currentScript = document.currentScript;
+    if (currentScript != null) {
+      return String(currentScript.src);
+    }
+    if (dart.test(_js_helper.Primitives.isD8)) return _isolate_helper.IsolateNatives.computeThisScriptD8();
+    if (dart.test(_js_helper.Primitives.isJsshell)) return _isolate_helper.IsolateNatives.computeThisScriptJsshell();
+    if (_isolate_helper._globalState != null && dart.test(_isolate_helper._globalState.isWorker)) {
+      return _isolate_helper.IsolateNatives.computeThisScriptFromTrace();
+    }
+    return null;
+  }
+  static computeThisScriptJsshell() {
+    return thisFilename();
+  }
+  static computeThisScriptD8() {
+    return _isolate_helper.IsolateNatives.computeThisScriptFromTrace();
+  }
+  static computeThisScriptFromTrace() {
+    let stack = new Error().stack;
+    if (stack == null) {
+      stack = (function() {
+        try {
+          throw new Error();
+        } catch (e) {
+          return e.stack;
+        }
+
       })();
-      this[_isClosed] = false;
-      _isolate_helper._globalState.currentContext.register(this[_id], this);
+      if (stack == null) dart.throw(new core.UnsupportedError('No stack trace'));
     }
-    weak(handler) {
-      this[_handler] = handler;
-      this[_id] = (() => {
-        let x = _isolate_helper.RawReceivePortImpl._nextFreeId;
-        _isolate_helper.RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1;
-        return x;
-      })();
-      this[_isClosed] = false;
-      _isolate_helper._globalState.currentContext.registerWeak(this[_id], this);
-    }
-    _controlPort() {
-      this[_handler] = null;
-      this[_id] = 0;
-      this[_isClosed] = false;
-    }
-    set handler(newHandler) {
-      this[_handler] = newHandler;
-    }
-    [_close]() {
-      this[_isClosed] = true;
-      this[_handler] = null;
-    }
-    close() {
-      if (dart.test(this[_isClosed])) return;
-      this[_isClosed] = true;
-      this[_handler] = null;
-      _isolate_helper._globalState.currentContext.unregister(this[_id]);
-    }
-    [_add](dataEvent) {
-      if (dart.test(this[_isClosed])) return;
-      dart.dcall(this[_handler], dataEvent);
-    }
-    get sendPort() {
-      return new _isolate_helper._NativeJsSendPort(this, _isolate_helper._globalState.currentContext.id);
-    }
-  };
-  dart.defineNamedConstructor(_isolate_helper.RawReceivePortImpl, 'weak');
-  dart.defineNamedConstructor(_isolate_helper.RawReceivePortImpl, '_controlPort');
-  _isolate_helper.RawReceivePortImpl[dart.implements] = () => [isolate.RawReceivePort];
-  dart.setSignature(_isolate_helper.RawReceivePortImpl, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [core.Function]),
-      weak: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [core.Function]),
-      _controlPort: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [])
-    }),
-    fields: () => ({
-      [_id]: core.int,
-      [_handler]: core.Function,
-      [_isClosed]: core.bool
-    }),
-    getters: () => ({sendPort: dart.definiteFunctionType(isolate.SendPort, [])}),
-    setters: () => ({handler: dart.definiteFunctionType(dart.void, [core.Function])}),
-    methods: () => ({
-      [_close]: dart.definiteFunctionType(dart.void, []),
-      close: dart.definiteFunctionType(dart.void, []),
-      [_add]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    }),
-    sfields: () => ({_nextFreeId: core.int})
-  });
-  _isolate_helper.RawReceivePortImpl._nextFreeId = 1;
-  const _rawPort = Symbol('_rawPort');
-  const _controller = Symbol('_controller');
-  const _add$ = Symbol('_add');
-  const _closeUnchecked = Symbol('_closeUnchecked');
-  const _addError = Symbol('_addError');
-  const _completeError = Symbol('_completeError');
-  const _complete = Symbol('_complete');
-  const _sink = Symbol('_sink');
-  async.Stream$ = dart.generic(T => {
-    let _EmptyStreamOfT = () => (_EmptyStreamOfT = dart.constFn(async._EmptyStream$(T)))();
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    let _GeneratedStreamImplOfT = () => (_GeneratedStreamImplOfT = dart.constFn(async._GeneratedStreamImpl$(T)))();
-    let _IterablePendingEventsOfT = () => (_IterablePendingEventsOfT = dart.constFn(async._IterablePendingEvents$(T)))();
-    let _BoundSinkStreamOfdynamic$T = () => (_BoundSinkStreamOfdynamic$T = dart.constFn(async._BoundSinkStream$(dart.dynamic, T)))();
-    let _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
-    let _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
-    let _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
-    let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
-    let TAndTToT = () => (TAndTToT = dart.constFn(dart.functionType(T, [T, T])))();
-    let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
-    let JSArrayOfT = () => (JSArrayOfT = dart.constFn(_interceptors.JSArray$(T)))();
-    let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
-    let _FutureOfListOfT = () => (_FutureOfListOfT = dart.constFn(async._Future$(ListOfT())))();
-    let SetOfT = () => (SetOfT = dart.constFn(core.Set$(T)))();
-    let _FutureOfSetOfT = () => (_FutureOfSetOfT = dart.constFn(async._Future$(SetOfT())))();
-    let _TakeStreamOfT = () => (_TakeStreamOfT = dart.constFn(async._TakeStream$(T)))();
-    let _TakeWhileStreamOfT = () => (_TakeWhileStreamOfT = dart.constFn(async._TakeWhileStream$(T)))();
-    let _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
-    let _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
-    let _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
-    let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
-    let TTobool = () => (TTobool = dart.constFn(dart.functionType(core.bool, [T])))();
-    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
-    let TAndTTobool = () => (TAndTTobool = dart.constFn(dart.functionType(core.bool, [T, T])))();
-    let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
-    let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
-    let IterableOfFutureOfT = () => (IterableOfFutureOfT = dart.constFn(core.Iterable$(FutureOfT())))();
-    let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
-    let intToT = () => (intToT = dart.constFn(dart.functionType(T, [core.int])))();
-    let EventSinkOfTToEventSink = () => (EventSinkOfTToEventSink = dart.constFn(dart.functionType(async.EventSink, [EventSinkOfT()])))();
-    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
-    let VoidTo_IterablePendingEventsOfT = () => (VoidTo_IterablePendingEventsOfT = dart.constFn(dart.definiteFunctionType(_IterablePendingEventsOfT(), [])))();
-    let VoidToT = () => (VoidToT = dart.constFn(dart.definiteFunctionType(T, [])))();
-    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
-    class Stream extends core.Object {
-      new() {
+    let pattern = null, matches = null;
+    pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m");
+    matches = stack.match(pattern);
+    if (matches != null) return matches[1];
+    pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m");
+    matches = stack.match(pattern);
+    if (matches != null) return matches[1];
+    dart.throw(new core.UnsupportedError(dart.str`Cannot extract URI from "${stack}"`));
+  }
+  static _getEventData(e) {
+    return e.data;
+  }
+  static _processWorkerMessage(sender, e) {
+    let msg = _isolate_helper._deserializeMessage(_isolate_helper.IsolateNatives._getEventData(e));
+    switch (dart.dindex(msg, 'command')) {
+      case 'start':
+      {
+        _isolate_helper._globalState.currentManagerId = core.int._check(dart.dindex(msg, 'id'));
+        let functionName = core.String._check(dart.dindex(msg, 'functionName'));
+        let entryPoint = core.Function._check(functionName == null ? _isolate_helper._globalState.entry : _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName));
+        let args = dart.dindex(msg, 'args');
+        let message = _isolate_helper._deserializeMessage(dart.dindex(msg, 'msg'));
+        let isSpawnUri = dart.dindex(msg, 'isSpawnUri');
+        let startPaused = dart.dindex(msg, 'startPaused');
+        let replyTo = _isolate_helper._deserializeMessage(dart.dindex(msg, 'replyTo'));
+        let context = new _isolate_helper._IsolateContext();
+        _isolate_helper._globalState.topEventLoop.enqueue(context, dart.fn(() => {
+          _isolate_helper.IsolateNatives._startIsolate(entryPoint, ListOfString()._check(args), message, core.bool._check(isSpawnUri), core.bool._check(startPaused), isolate.SendPort._check(replyTo));
+        }, VoidToNull()), 'worker-start');
+        _isolate_helper._globalState.currentContext = context;
+        _isolate_helper._globalState.topEventLoop.run();
+        break;
       }
-      _internal() {
+      case 'spawn-worker':
+      {
+        if (_isolate_helper.IsolateNatives.enableSpawnWorker != null) _isolate_helper.IsolateNatives.handleSpawnWorkerRequest(msg);
+        break;
       }
-      static empty() {
-        return new (_EmptyStreamOfT())();
+      case 'message':
+      {
+        let port = isolate.SendPort._check(dart.dindex(msg, 'port'));
+        if (port != null) {
+          dart.dsend(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg'));
+        }
+        _isolate_helper._globalState.topEventLoop.run();
+        break;
       }
-      static fromFuture(future) {
-        let controller = _StreamControllerOfT()._check(StreamControllerOfT().new({sync: true}));
-        future.then(dart.dynamic)(dart.fn(value => {
-          controller[_add$](value);
+      case 'close':
+      {
+        _isolate_helper._globalState.managers[dartx.remove](_isolate_helper.IsolateNatives.workerIds._get(sender));
+        sender.terminate();
+        _isolate_helper._globalState.topEventLoop.run();
+        break;
+      }
+      case 'log':
+      {
+        _isolate_helper.IsolateNatives._log(dart.dindex(msg, 'msg'));
+        break;
+      }
+      case 'print':
+      {
+        if (dart.test(_isolate_helper._globalState.isWorker)) {
+          _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'print', msg: msg}, core.String, dart.dynamic)));
+        } else {
+          core.print(dart.dindex(msg, 'msg'));
+        }
+        break;
+      }
+      case 'error':
+      {
+        dart.throw(dart.dindex(msg, 'msg'));
+      }
+    }
+  }
+  static handleSpawnWorkerRequest(msg) {
+    let replyPort = dart.dindex(msg, 'replyPort');
+    _isolate_helper.IsolateNatives.spawn(core.String._check(dart.dindex(msg, 'functionName')), core.String._check(dart.dindex(msg, 'uri')), ListOfString()._check(dart.dindex(msg, 'args')), dart.dindex(msg, 'msg'), false, core.bool._check(dart.dindex(msg, 'isSpawnUri')), core.bool._check(dart.dindex(msg, 'startPaused'))).then(dart.dynamic)(dart.fn(msg => {
+      dart.dsend(replyPort, 'send', msg);
+    }, ListToNull()), {onError: dart.fn(errorMessage => {
+        dart.dsend(replyPort, 'send', JSArrayOfString().of([_isolate_helper._SPAWN_FAILED_SIGNAL, errorMessage]));
+      }, StringToNull())});
+  }
+  static _log(msg) {
+    if (dart.test(_isolate_helper._globalState.isWorker)) {
+      _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'log', msg: msg}, core.String, dart.dynamic)));
+    } else {
+      try {
+        _isolate_helper.IsolateNatives._consoleLog(msg);
+      } catch (e) {
+        let trace = dart.stackTrace(e);
+        dart.throw(core.Exception.new(trace));
+      }
+
+    }
+  }
+  static _consoleLog(msg) {
+    _isolate_helper.global.console.log(msg);
+  }
+  static _getJSFunctionFromName(functionName) {
+    let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS);
+    return globalFunctionsContainer[functionName]();
+  }
+  static _getJSFunctionName(f) {
+    return f.$name;
+  }
+  static _allocate(ctor) {
+    return new ctor();
+  }
+  static spawnFunction(topLevelFunction, message, startPaused) {
+    _isolate_helper.IsolateNatives.enableSpawnWorker = true;
+    let name = _isolate_helper.IsolateNatives._getJSFunctionName(topLevelFunction);
+    if (name == null) {
+      dart.throw(new core.UnsupportedError("only top-level functions can be spawned."));
+    }
+    let isLight = false;
+    let isSpawnUri = false;
+    return _isolate_helper.IsolateNatives.spawn(name, null, null, message, isLight, isSpawnUri, startPaused);
+  }
+  static spawnUri(uri, args, message, startPaused) {
+    _isolate_helper.IsolateNatives.enableSpawnWorker = true;
+    let isLight = false;
+    let isSpawnUri = true;
+    return _isolate_helper.IsolateNatives.spawn(null, dart.toString(uri), args, message, isLight, isSpawnUri, startPaused);
+  }
+  static spawn(functionName, uri, args, message, isLight, isSpawnUri, startPaused) {
+    if (uri != null && dart.test(uri[dartx.endsWith](".dart"))) {
+      uri = dart.notNull(uri) + ".js";
+    }
+    let port = isolate.ReceivePort.new();
+    let completer = CompleterOfList().new();
+    port.first.then(dart.dynamic)(dart.fn(msg => {
+      if (dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWNED_SIGNAL)) {
+        completer.complete(msg);
+      } else {
+        dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
+        completer.completeError(dart.dindex(msg, 1));
+      }
+    }, dynamicToNull$()));
+    let signalReply = port.sendPort;
+    if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
+      _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid$()));
+    } else {
+      _isolate_helper.IsolateNatives._startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply);
+    }
+    return completer.future;
+  }
+  static _startWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError) {
+    if (args != null) args = ListOfString().from(args);
+    if (dart.test(_isolate_helper._globalState.isWorker)) {
+      _isolate_helper._globalState.mainManager.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort}, core.String, core.Object)));
+    } else {
+      _isolate_helper.IsolateNatives._spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError);
+    }
+  }
+  static _startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort) {
+    if (uri != null) {
+      dart.throw(new core.UnsupportedError("Currently spawnUri is not supported without web workers."));
+    }
+    message = _isolate_helper._clone(message);
+    if (args != null) args = ListOfString().from(args);
+    _isolate_helper._globalState.topEventLoop.enqueue(new _isolate_helper._IsolateContext(), dart.fn(() => {
+      let func = _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName);
+      _isolate_helper.IsolateNatives._startIsolate(core.Function._check(func), args, message, isSpawnUri, startPaused, replyPort);
+    }, VoidToNull()), 'nonworker start');
+  }
+  static get currentIsolate() {
+    let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
+    return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability});
+  }
+  static _startIsolate(topLevel, args, message, isSpawnUri, startPaused, replyTo) {
+    let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
+    _js_helper.Primitives.initializeStatics(context.id);
+    replyTo.send(JSArrayOfObject().of([_isolate_helper._SPAWNED_SIGNAL, context.controlPort.sendPort, context.pauseCapability, context.terminateCapability]));
+    function runStartFunction() {
+      context.initialized = true;
+      if (!dart.test(isSpawnUri)) {
+        dart.dcall(topLevel, message);
+      } else if (_isolate_helper._MainFunctionArgsMessage.is(topLevel)) {
+        dart.dcall(topLevel, args, message);
+      } else if (_isolate_helper._MainFunctionArgs.is(topLevel)) {
+        dart.dcall(topLevel, args);
+      } else {
+        dart.dcall(topLevel);
+      }
+    }
+    dart.fn(runStartFunction, VoidTovoid$());
+    if (dart.test(startPaused)) {
+      context.addPause(context.pauseCapability, context.pauseCapability);
+      _isolate_helper._globalState.topEventLoop.enqueue(context, runStartFunction, 'start isolate');
+    } else {
+      runStartFunction();
+    }
+  }
+  static _spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError) {
+    if (uri == null) uri = _isolate_helper.IsolateNatives.thisScript;
+    let worker = new Worker(uri);
+    let onerrorTrampoline = (function(f, u, c) {
+      return function(e) {
+        return f(e, u, c);
+      };
+    })(_isolate_helper.IsolateNatives.workerOnError, uri, onError);
+    worker.onerror = onerrorTrampoline;
+    let processWorkerMessageTrampoline = (function(f, a) {
+      return function(e) {
+        e.onerror = null;
+        return f(a, e);
+      };
+    })(_isolate_helper.IsolateNatives._processWorkerMessage, worker);
+    worker.onmessage = processWorkerMessageTrampoline;
+    let o = _isolate_helper._globalState;
+    let workerId = o.nextManagerId;
+    o.nextManagerId = dart.notNull(workerId) + 1;
+    _isolate_helper.IsolateNatives.workerIds._set(worker, workerId);
+    _isolate_helper._globalState.managers[dartx._set](workerId, worker);
+    worker.postMessage(_isolate_helper._serializeMessage(dart.map({command: 'start', id: workerId, replyTo: _isolate_helper._serializeMessage(replyPort), args: args, msg: _isolate_helper._serializeMessage(message), isSpawnUri: isSpawnUri, startPaused: startPaused, functionName: functionName}, core.String, core.Object)));
+  }
+  static workerOnError(event, uri, onError) {
+    event.preventDefault();
+    let message = event.message;
+    if (message == null) {
+      message = dart.str`Error spawning worker for ${uri}`;
+    } else {
+      message = dart.str`Error spawning worker for ${uri} (${message})`;
+    }
+    onError(message);
+    return true;
+  }
+};
+dart.setSignature(_isolate_helper.IsolateNatives, {
+  sfields: () => ({
+    enableSpawnWorker: dart.dynamic,
+    thisScript: core.String,
+    workerIds: ExpandoOfint()
+  }),
+  sgetters: () => ({currentIsolate: dart.definiteFunctionType(isolate.Isolate, [])}),
+  statics: () => ({
+    computeThisScript: dart.definiteFunctionType(core.String, []),
+    computeThisScriptJsshell: dart.definiteFunctionType(core.String, []),
+    computeThisScriptD8: dart.definiteFunctionType(core.String, []),
+    computeThisScriptFromTrace: dart.definiteFunctionType(core.String, []),
+    _getEventData: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _processWorkerMessage: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    handleSpawnWorkerRequest: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _log: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _consoleLog: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    _getJSFunctionFromName: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _getJSFunctionName: dart.definiteFunctionType(core.String, [core.Function]),
+    _allocate: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    spawnFunction: dart.definiteFunctionType(async.Future$(core.List), [dynamicTovoid(), dart.dynamic, core.bool]),
+    spawnUri: dart.definiteFunctionType(async.Future$(core.List), [core.Uri, ListOfString(), dart.dynamic, core.bool]),
+    spawn: dart.definiteFunctionType(async.Future$(core.List), [core.String, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, core.bool]),
+    _startWorker: dart.definiteFunctionType(dart.void, [core.String, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort, StringTovoid()]),
+    _startNonWorker: dart.definiteFunctionType(dart.void, [core.String, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort]),
+    _startIsolate: dart.definiteFunctionType(dart.void, [core.Function, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort]),
+    _spawnWorker: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, ListOfString(), dart.dynamic, core.bool, core.bool, isolate.SendPort, StringTovoid()]),
+    workerOnError: dart.definiteFunctionType(core.bool, [dart.dynamic, core.String, StringTovoid()])
+  }),
+  names: ['computeThisScript', 'computeThisScriptJsshell', 'computeThisScriptD8', 'computeThisScriptFromTrace', '_getEventData', '_processWorkerMessage', 'handleSpawnWorkerRequest', '_log', '_consoleLog', '_getJSFunctionFromName', '_getJSFunctionName', '_allocate', 'spawnFunction', 'spawnUri', 'spawn', '_startWorker', '_startNonWorker', '_startIsolate', '_spawnWorker', 'workerOnError']
+});
+_isolate_helper.IsolateNatives.enableSpawnWorker = null;
+dart.defineLazy(_isolate_helper.IsolateNatives, {
+  get thisScript() {
+    return _isolate_helper.IsolateNatives.computeThisScript();
+  },
+  set thisScript(_) {},
+  get workerIds() {
+    return new (ExpandoOfint())();
+  }
+});
+const _isolateId = Symbol('_isolateId');
+const _checkReplyTo = Symbol('_checkReplyTo');
+_isolate_helper._BaseSendPort = class _BaseSendPort extends core.Object {
+  new(isolateId) {
+    this[_isolateId] = isolateId;
+  }
+  [_checkReplyTo](replyTo) {
+    if (replyTo != null && !_isolate_helper._NativeJsSendPort.is(replyTo) && !_isolate_helper._WorkerSendPort.is(replyTo)) {
+      dart.throw(core.Exception.new("SendPort.send: Illegal replyTo port type"));
+    }
+  }
+};
+_isolate_helper._BaseSendPort[dart.implements] = () => [isolate.SendPort];
+dart.setSignature(_isolate_helper._BaseSendPort, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._BaseSendPort, [core.int])}),
+  fields: () => ({[_isolateId]: core.int}),
+  methods: () => ({[_checkReplyTo]: dart.definiteFunctionType(dart.void, [isolate.SendPort])})
+});
+const _receivePort = Symbol('_receivePort');
+const _isClosed = Symbol('_isClosed');
+const _add = Symbol('_add');
+_isolate_helper._NativeJsSendPort = class _NativeJsSendPort extends _isolate_helper._BaseSendPort {
+  new(receivePort, isolateId) {
+    this[_receivePort] = receivePort;
+    super.new(isolateId);
+  }
+  send(message) {
+    let isolate = _isolate_helper._globalState.isolates[dartx._get](this[_isolateId]);
+    if (isolate == null) return;
+    if (dart.test(this[_receivePort][_isClosed])) return;
+    let msg = _isolate_helper._clone(message);
+    if (dart.equals(isolate.controlPort, this[_receivePort])) {
+      isolate.handleControlMessage(msg);
+      return;
+    }
+    _isolate_helper._globalState.topEventLoop.enqueue(isolate, dart.fn(() => {
+      if (!dart.test(this[_receivePort][_isClosed])) {
+        this[_receivePort][_add](msg);
+      }
+    }, VoidToNull()), dart.str`receive ${message}`);
+  }
+  ['=='](other) {
+    return _isolate_helper._NativeJsSendPort.is(other) && dart.equals(this[_receivePort], other[_receivePort]);
+  }
+  get hashCode() {
+    return this[_receivePort][_id];
+  }
+};
+_isolate_helper._NativeJsSendPort[dart.implements] = () => [isolate.SendPort];
+dart.setSignature(_isolate_helper._NativeJsSendPort, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._NativeJsSendPort, [_isolate_helper.RawReceivePortImpl, core.int])}),
+  fields: () => ({[_receivePort]: _isolate_helper.RawReceivePortImpl}),
+  methods: () => ({send: dart.definiteFunctionType(dart.void, [dart.dynamic])})
+});
+const _workerId = Symbol('_workerId');
+const _receivePortId = Symbol('_receivePortId');
+_isolate_helper._WorkerSendPort = class _WorkerSendPort extends _isolate_helper._BaseSendPort {
+  new(workerId, isolateId, receivePortId) {
+    this[_workerId] = workerId;
+    this[_receivePortId] = receivePortId;
+    super.new(isolateId);
+  }
+  send(message) {
+    let workerMessage = _isolate_helper._serializeMessage(dart.map({command: 'message', port: this, msg: message}, core.String, core.Object));
+    if (dart.test(_isolate_helper._globalState.isWorker)) {
+      _isolate_helper._globalState.mainManager.postMessage(workerMessage);
+    } else {
+      let manager = _isolate_helper._globalState.managers[dartx._get](this[_workerId]);
+      if (manager != null) {
+        manager.postMessage(workerMessage);
+      }
+    }
+  }
+  ['=='](other) {
+    return _isolate_helper._WorkerSendPort.is(other) && this[_workerId] == other[_workerId] && this[_isolateId] == other[_isolateId] && this[_receivePortId] == other[_receivePortId];
+  }
+  get hashCode() {
+    return (dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId]) << 8 ^ dart.notNull(this[_receivePortId])) >>> 0;
+  }
+};
+_isolate_helper._WorkerSendPort[dart.implements] = () => [isolate.SendPort];
+dart.setSignature(_isolate_helper._WorkerSendPort, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._WorkerSendPort, [core.int, core.int, core.int])}),
+  fields: () => ({
+    [_workerId]: core.int,
+    [_receivePortId]: core.int
+  }),
+  methods: () => ({send: dart.definiteFunctionType(dart.void, [dart.dynamic])})
+});
+const _handler = Symbol('_handler');
+_isolate_helper.RawReceivePortImpl = class RawReceivePortImpl extends core.Object {
+  new(handler) {
+    this[_handler] = handler;
+    this[_id] = (() => {
+      let x = _isolate_helper.RawReceivePortImpl._nextFreeId;
+      _isolate_helper.RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1;
+      return x;
+    })();
+    this[_isClosed] = false;
+    _isolate_helper._globalState.currentContext.register(this[_id], this);
+  }
+  weak(handler) {
+    this[_handler] = handler;
+    this[_id] = (() => {
+      let x = _isolate_helper.RawReceivePortImpl._nextFreeId;
+      _isolate_helper.RawReceivePortImpl._nextFreeId = dart.notNull(x) + 1;
+      return x;
+    })();
+    this[_isClosed] = false;
+    _isolate_helper._globalState.currentContext.registerWeak(this[_id], this);
+  }
+  _controlPort() {
+    this[_handler] = null;
+    this[_id] = 0;
+    this[_isClosed] = false;
+  }
+  set handler(newHandler) {
+    this[_handler] = newHandler;
+  }
+  [_close]() {
+    this[_isClosed] = true;
+    this[_handler] = null;
+  }
+  close() {
+    if (dart.test(this[_isClosed])) return;
+    this[_isClosed] = true;
+    this[_handler] = null;
+    _isolate_helper._globalState.currentContext.unregister(this[_id]);
+  }
+  [_add](dataEvent) {
+    if (dart.test(this[_isClosed])) return;
+    dart.dcall(this[_handler], dataEvent);
+  }
+  get sendPort() {
+    return new _isolate_helper._NativeJsSendPort(this, _isolate_helper._globalState.currentContext.id);
+  }
+};
+dart.defineNamedConstructor(_isolate_helper.RawReceivePortImpl, 'weak');
+dart.defineNamedConstructor(_isolate_helper.RawReceivePortImpl, '_controlPort');
+_isolate_helper.RawReceivePortImpl[dart.implements] = () => [isolate.RawReceivePort];
+dart.setSignature(_isolate_helper.RawReceivePortImpl, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [core.Function]),
+    weak: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [core.Function]),
+    _controlPort: dart.definiteFunctionType(_isolate_helper.RawReceivePortImpl, [])
+  }),
+  fields: () => ({
+    [_id]: core.int,
+    [_handler]: core.Function,
+    [_isClosed]: core.bool
+  }),
+  getters: () => ({sendPort: dart.definiteFunctionType(isolate.SendPort, [])}),
+  setters: () => ({handler: dart.definiteFunctionType(dart.void, [core.Function])}),
+  methods: () => ({
+    [_close]: dart.definiteFunctionType(dart.void, []),
+    close: dart.definiteFunctionType(dart.void, []),
+    [_add]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  sfields: () => ({_nextFreeId: core.int})
+});
+_isolate_helper.RawReceivePortImpl._nextFreeId = 1;
+const _rawPort = Symbol('_rawPort');
+const _controller = Symbol('_controller');
+const _add$ = Symbol('_add');
+const _closeUnchecked = Symbol('_closeUnchecked');
+const _addError = Symbol('_addError');
+const _completeError = Symbol('_completeError');
+const _complete = Symbol('_complete');
+const _sink = Symbol('_sink');
+async.Stream$ = dart.generic(T => {
+  let _EmptyStreamOfT = () => (_EmptyStreamOfT = dart.constFn(async._EmptyStream$(T)))();
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
+  let _GeneratedStreamImplOfT = () => (_GeneratedStreamImplOfT = dart.constFn(async._GeneratedStreamImpl$(T)))();
+  let _IterablePendingEventsOfT = () => (_IterablePendingEventsOfT = dart.constFn(async._IterablePendingEvents$(T)))();
+  let _BoundSinkStreamOfdynamic$T = () => (_BoundSinkStreamOfdynamic$T = dart.constFn(async._BoundSinkStream$(dart.dynamic, T)))();
+  let _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
+  let _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
+  let _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
+  let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
+  let TAndTToT = () => (TAndTToT = dart.constFn(dart.functionType(T, [T, T])))();
+  let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
+  let JSArrayOfT = () => (JSArrayOfT = dart.constFn(_interceptors.JSArray$(T)))();
+  let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
+  let _FutureOfListOfT = () => (_FutureOfListOfT = dart.constFn(async._Future$(ListOfT())))();
+  let SetOfT = () => (SetOfT = dart.constFn(core.Set$(T)))();
+  let _FutureOfSetOfT = () => (_FutureOfSetOfT = dart.constFn(async._Future$(SetOfT())))();
+  let _TakeStreamOfT = () => (_TakeStreamOfT = dart.constFn(async._TakeStream$(T)))();
+  let _TakeWhileStreamOfT = () => (_TakeWhileStreamOfT = dart.constFn(async._TakeWhileStream$(T)))();
+  let _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
+  let _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
+  let _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
+  let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
+  let TTobool = () => (TTobool = dart.constFn(dart.functionType(core.bool, [T])))();
+  let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
+  let TAndTTobool = () => (TAndTTobool = dart.constFn(dart.functionType(core.bool, [T, T])))();
+  let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
+  let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
+  let IterableOfFutureOfT = () => (IterableOfFutureOfT = dart.constFn(core.Iterable$(FutureOfT())))();
+  let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
+  let intToT = () => (intToT = dart.constFn(dart.functionType(T, [core.int])))();
+  let EventSinkOfTToEventSink = () => (EventSinkOfTToEventSink = dart.constFn(dart.functionType(async.EventSink, [EventSinkOfT()])))();
+  let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
+  let VoidTo_IterablePendingEventsOfT = () => (VoidTo_IterablePendingEventsOfT = dart.constFn(dart.definiteFunctionType(_IterablePendingEventsOfT(), [])))();
+  let VoidToT = () => (VoidToT = dart.constFn(dart.definiteFunctionType(T, [])))();
+  let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
+  class Stream extends core.Object {
+    new() {
+    }
+    _internal() {
+    }
+    static empty() {
+      return new (_EmptyStreamOfT())();
+    }
+    static fromFuture(future) {
+      let controller = _StreamControllerOfT()._check(StreamControllerOfT().new({sync: true}));
+      future.then(dart.dynamic)(dart.fn(value => {
+        controller[_add$](value);
+        controller[_closeUnchecked]();
+      }, TToNull()), {onError: dart.fn((error, stackTrace) => {
+          controller[_addError](error, core.StackTrace._check(stackTrace));
           controller[_closeUnchecked]();
-        }, TToNull()), {onError: dart.fn((error, stackTrace) => {
-            controller[_addError](error, core.StackTrace._check(stackTrace));
-            controller[_closeUnchecked]();
-          }, dynamicAnddynamicToNull())});
-        return controller.stream;
-      }
-      static fromFutures(futures) {
-        let controller = _StreamControllerOfT()._check(StreamControllerOfT().new({sync: true}));
-        let count = 0;
-        let onValue = dart.fn(value => {
-          if (!dart.test(controller.isClosed)) {
-            controller[_add$](value);
-            if (--count == 0) controller[_closeUnchecked]();
-          }
-        }, TToNull());
-        let onError = dart.fn((error, stack) => {
-          if (!dart.test(controller.isClosed)) {
-            controller[_addError](error, core.StackTrace._check(stack));
-            if (--count == 0) controller[_closeUnchecked]();
-          }
-        }, dynamicAnddynamicToNull());
-        for (let future of futures) {
-          count++;
-          future.then(dart.dynamic)(onValue, {onError: onError});
+        }, dynamicAnddynamicToNull())});
+      return controller.stream;
+    }
+    static fromFutures(futures) {
+      let controller = _StreamControllerOfT()._check(StreamControllerOfT().new({sync: true}));
+      let count = 0;
+      let onValue = dart.fn(value => {
+        if (!dart.test(controller.isClosed)) {
+          controller[_add$](value);
+          if (--count == 0) controller[_closeUnchecked]();
         }
-        if (count == 0) async.scheduleMicrotask(dart.bind(controller, 'close'));
-        return controller.stream;
+      }, TToNull());
+      let onError = dart.fn((error, stack) => {
+        if (!dart.test(controller.isClosed)) {
+          controller[_addError](error, core.StackTrace._check(stack));
+          if (--count == 0) controller[_closeUnchecked]();
+        }
+      }, dynamicAnddynamicToNull());
+      for (let future of futures) {
+        count++;
+        future.then(dart.dynamic)(onValue, {onError: onError});
       }
-      static fromIterable(data) {
-        return new (_GeneratedStreamImplOfT())(dart.fn(() => new (_IterablePendingEventsOfT())(data), VoidTo_IterablePendingEventsOfT()));
+      if (count == 0) async.scheduleMicrotask(dart.bind(controller, 'close'));
+      return controller.stream;
+    }
+    static fromIterable(data) {
+      return new (_GeneratedStreamImplOfT())(dart.fn(() => new (_IterablePendingEventsOfT())(data), VoidTo_IterablePendingEventsOfT()));
+    }
+    static periodic(period, computation) {
+      if (computation === void 0) computation = null;
+      let timer = null;
+      let computationCount = 0;
+      let controller = null;
+      let watch = new core.Stopwatch();
+      function sendEvent() {
+        watch.reset();
+        let data = null;
+        if (computation != null) {
+          try {
+            data = computation(computationCount++);
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            controller.addError(e, s);
+            return;
+          }
+
+        }
+        controller.add(data);
       }
-      static periodic(period, computation) {
-        if (computation === void 0) computation = null;
-        let timer = null;
-        let computationCount = 0;
+      dart.fn(sendEvent, VoidTovoid$());
+      function startPeriodicTimer() {
+        dart.assert(timer == null);
+        timer = async.Timer.periodic(period, dart.fn(timer => {
+          sendEvent();
+        }, TimerToNull()));
+      }
+      dart.fn(startPeriodicTimer, VoidTovoid$());
+      controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
+          watch.start();
+          startPeriodicTimer();
+        }, VoidToNull()), onPause: dart.fn(() => {
+          timer.cancel();
+          timer = null;
+          watch.stop();
+        }, VoidToNull()), onResume: dart.fn(() => {
+          dart.assert(timer == null);
+          let elapsed = watch.elapsed;
+          watch.start();
+          timer = async.Timer.new(period['-'](elapsed), dart.fn(() => {
+            timer = null;
+            startPeriodicTimer();
+            sendEvent();
+          }, VoidToNull()));
+        }, VoidToNull()), onCancel: dart.fn(() => {
+          if (timer != null) timer.cancel();
+          timer = null;
+        }, VoidToNull())});
+      return controller.stream;
+    }
+    static eventTransformed(source, mapSink) {
+      return new (_BoundSinkStreamOfdynamic$T())(source, mapSink);
+    }
+    get isBroadcast() {
+      return false;
+    }
+    asBroadcastStream(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      return new (_AsBroadcastStreamOfT())(this, onListen, onCancel);
+    }
+    where(test) {
+      return new (_WhereStreamOfT())(this, test);
+    }
+    map(S) {
+      return convert => {
+        return new (async._MapStream$(T, S))(this, convert);
+      };
+    }
+    asyncMap(E) {
+      return convert => {
         let controller = null;
-        let watch = new core.Stopwatch();
-        function sendEvent() {
-          watch.reset();
-          let data = null;
-          if (computation != null) {
+        let subscription = null;
+        const onListen = (function() {
+          let add = dart.bind(controller, 'add');
+          dart.assert(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller));
+          let eventSink = async._EventSink$(E).as(controller);
+          let addError = dart.bind(eventSink, _addError);
+          subscription = this.listen(dart.fn(event => {
+            let newValue = null;
             try {
-              data = computation(computationCount++);
+              newValue = convert(event);
             } catch (e) {
               let s = dart.stackTrace(e);
               controller.addError(e, s);
               return;
             }
 
-          }
-          controller.add(data);
-        }
-        dart.fn(sendEvent, VoidTovoid$());
-        function startPeriodicTimer() {
-          dart.assert(timer == null);
-          timer = async.Timer.periodic(period, dart.fn(timer => {
-            sendEvent();
-          }, TimerToNull()));
-        }
-        dart.fn(startPeriodicTimer, VoidTovoid$());
-        controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
-            watch.start();
-            startPeriodicTimer();
-          }, VoidToNull()), onPause: dart.fn(() => {
-            timer.cancel();
-            timer = null;
-            watch.stop();
-          }, VoidToNull()), onResume: dart.fn(() => {
-            dart.assert(timer == null);
-            let elapsed = watch.elapsed;
-            watch.start();
-            timer = async.Timer.new(period['-'](elapsed), dart.fn(() => {
-              timer = null;
-              startPeriodicTimer();
-              sendEvent();
-            }, VoidToNull()));
-          }, VoidToNull()), onCancel: dart.fn(() => {
-            if (timer != null) timer.cancel();
-            timer = null;
-          }, VoidToNull())});
-        return controller.stream;
-      }
-      static eventTransformed(source, mapSink) {
-        return new (_BoundSinkStreamOfdynamic$T())(source, mapSink);
-      }
-      get isBroadcast() {
-        return false;
-      }
-      asBroadcastStream(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        return new (_AsBroadcastStreamOfT())(this, onListen, onCancel);
-      }
-      where(test) {
-        return new (_WhereStreamOfT())(this, test);
-      }
-      map(S) {
-        return convert => {
-          return new (async._MapStream$(T, S))(this, convert);
-        };
-      }
-      asyncMap(E) {
-        return convert => {
-          let controller = null;
-          let subscription = null;
-          const onListen = (function() {
-            let add = dart.bind(controller, 'add');
-            dart.assert(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller));
-            let eventSink = async._EventSink$(E).as(controller);
-            let addError = dart.bind(eventSink, _addError);
-            subscription = this.listen(dart.fn(event => {
-              let newValue = null;
-              try {
-                newValue = convert(event);
-              } catch (e) {
-                let s = dart.stackTrace(e);
-                controller.addError(e, s);
-                return;
-              }
-
-              if (async.Future.is(newValue)) {
-                subscription.pause();
-                newValue.then(dart.void)(add, {onError: addError}).whenComplete(dart.bind(subscription, 'resume'));
-              } else {
-                controller.add(E.as(newValue));
-              }
-            }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
-          }).bind(this);
-          dart.fn(onListen, VoidTovoid$());
-          if (dart.test(this.isBroadcast)) {
-            controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
-                subscription.cancel();
-              }, VoidToNull()), sync: true});
-          } else {
-            controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
-                subscription.pause();
-              }, VoidToNull()), onResume: dart.fn(() => {
-                subscription.resume();
-              }, VoidToNull()), onCancel: dart.fn(() => {
-                subscription.cancel();
-              }, VoidToNull()), sync: true});
-          }
-          return controller.stream;
-        };
-      }
-      asyncExpand(E) {
-        return convert => {
-          let controller = null;
-          let subscription = null;
-          const onListen = (function() {
-            dart.assert(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller));
-            let eventSink = async._EventSink$(E).as(controller);
-            subscription = this.listen(dart.fn(event => {
-              let newStream = null;
-              try {
-                newStream = convert(event);
-              } catch (e) {
-                let s = dart.stackTrace(e);
-                controller.addError(e, s);
-                return;
-              }
-
-              if (newStream != null) {
-                subscription.pause();
-                controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
-              }
-            }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
-          }).bind(this);
-          dart.fn(onListen, VoidTovoid$());
-          if (dart.test(this.isBroadcast)) {
-            controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
-                subscription.cancel();
-              }, VoidToNull()), sync: true});
-          } else {
-            controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
-                subscription.pause();
-              }, VoidToNull()), onResume: dart.fn(() => {
-                subscription.resume();
-              }, VoidToNull()), onCancel: dart.fn(() => {
-                subscription.cancel();
-              }, VoidToNull()), sync: true});
-          }
-          return controller.stream;
-        };
-      }
-      handleError(onError, opts) {
-        let test = opts && 'test' in opts ? opts.test : null;
-        return new (_HandleErrorStreamOfT())(this, onError, test);
-      }
-      expand(S) {
-        return convert => {
-          return new (async._ExpandStream$(T, S))(this, convert);
-        };
-      }
-      pipe(streamConsumer) {
-        StreamConsumerOfT()._check(streamConsumer);
-        return streamConsumer.addStream(this).then(dart.dynamic)(dart.fn(_ => streamConsumer.close(), dynamicToFuture()));
-      }
-      transform(S) {
-        return streamTransformer => {
-          async.StreamTransformer$(T, S)._check(streamTransformer);
-          return streamTransformer.bind(this);
-        };
-      }
-      reduce(combine) {
-        TAndTToT()._check(combine);
-        let result = new (_FutureOfT())();
-        let seenFirst = false;
-        let value = null;
-        let subscription = null;
-        subscription = this.listen(dart.fn(element => {
-          if (seenFirst) {
-            async._runUserCode(dart.fn(() => combine(value, element), VoidToT()), dart.fn(newValue => {
-              value = newValue;
-            }, TToNull()), async._cancelAndErrorClosure(subscription, result));
-          } else {
-            value = element;
-            seenFirst = true;
-          }
-        }, TToNull()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
-            if (!seenFirst) {
-              try {
-                dart.throw(_internal.IterableElementError.noElement());
-              } catch (e) {
-                let s = dart.stackTrace(e);
-                async._completeWithErrorCallback(result, e, s);
-              }
-
+            if (async.Future.is(newValue)) {
+              subscription.pause();
+              newValue.then(dart.void)(add, {onError: addError}).whenComplete(dart.bind(subscription, 'resume'));
             } else {
-              result[_complete](value);
+              controller.add(E.as(newValue));
             }
-          }, VoidToNull()), cancelOnError: true});
-        return result;
-      }
-      fold(S) {
-        return (initialValue, combine) => {
-          let result = new (async._Future$(S))();
-          let value = initialValue;
-          let subscription = null;
-          subscription = this.listen(dart.fn(element => {
-            async._runUserCode(dart.fn(() => combine(value, element), dart.definiteFunctionType(S, [])), dart.fn(newValue => {
-              value = newValue;
-            }, dart.definiteFunctionType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
-          }, TToNull()), {onError: dart.fn((e, st) => {
-              result[_completeError](e, core.StackTrace._check(st));
-            }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
-              result[_complete](value);
-            }, VoidToNull()), cancelOnError: true});
-          return result;
-        };
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        let result = new (_FutureOfString())();
-        let buffer = new core.StringBuffer();
-        let subscription = null;
-        let first = true;
-        subscription = this.listen(dart.fn(element => {
-          if (!first) {
-            buffer.write(separator);
-          }
-          first = false;
-          try {
-            buffer.write(element);
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            async._cancelAndErrorWithReplacement(subscription, result, e, s);
-          }
-
-        }, TToNull()), {onError: dart.fn(e => {
-            result[_completeError](e);
-          }, dynamicToNull$()), onDone: dart.fn(() => {
-            result[_complete](buffer.toString());
-          }, VoidToNull()), cancelOnError: true});
-        return result;
-      }
-      contains(needle) {
-        let future = new (_FutureOfbool())();
-        let subscription = null;
-        subscription = this.listen(dart.fn(element => {
-          async._runUserCode(dart.fn(() => dart.equals(element, needle), VoidTobool()), dart.fn(isMatch => {
-            if (dart.test(isMatch)) {
-              async._cancelAndValue(subscription, future, true);
-            }
-          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](false);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      forEach(action) {
-        let future = new async._Future();
-        let subscription = null;
-        subscription = this.listen(dart.fn(element => {
-          async._runUserCode(dart.fn(() => action(element), VoidTovoid$()), dart.fn(_ => {
-          }, dynamicToNull$()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](null);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      every(test) {
-        let future = new (_FutureOfbool())();
-        let subscription = null;
-        subscription = this.listen(dart.fn(element => {
-          async._runUserCode(dart.fn(() => test(element), VoidTobool()), dart.fn(isMatch => {
-            if (!dart.test(isMatch)) {
-              async._cancelAndValue(subscription, future, false);
-            }
-          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](true);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      any(test) {
-        let future = new (_FutureOfbool())();
-        let subscription = null;
-        subscription = this.listen(dart.fn(element => {
-          async._runUserCode(dart.fn(() => test(element), VoidTobool()), dart.fn(isMatch => {
-            if (dart.test(isMatch)) {
-              async._cancelAndValue(subscription, future, true);
-            }
-          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](false);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      get length() {
-        let future = new (_FutureOfint())();
-        let count = 0;
-        this.listen(dart.fn(_ => {
-          count++;
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](count);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      get isEmpty() {
-        let future = new (_FutureOfbool())();
-        let subscription = null;
-        subscription = this.listen(dart.fn(_ => {
-          async._cancelAndValue(subscription, future, false);
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](true);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      toList() {
-        let result = JSArrayOfT().of([]);
-        let future = new (_FutureOfListOfT())();
-        this.listen(dart.fn(data => {
-          result[dartx.add](data);
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](result);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      toSet() {
-        let result = SetOfT().new();
-        let future = new (_FutureOfSetOfT())();
-        this.listen(dart.fn(data => {
-          result.add(data);
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_complete](result);
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      drain(E) {
-        return futureValue => {
-          if (futureValue === void 0) futureValue = null;
-          return this.listen(null, {cancelOnError: true}).asFuture(E)(futureValue);
-        };
-      }
-      take(count) {
-        return new (_TakeStreamOfT())(this, count);
-      }
-      takeWhile(test) {
-        return new (_TakeWhileStreamOfT())(this, test);
-      }
-      skip(count) {
-        return new (_SkipStreamOfT())(this, count);
-      }
-      skipWhile(test) {
-        return new (_SkipWhileStreamOfT())(this, test);
-      }
-      distinct(equals) {
-        if (equals === void 0) equals = null;
-        return new (_DistinctStreamOfT())(this, equals);
-      }
-      get first() {
-        let future = new (_FutureOfT())();
-        let subscription = null;
-        subscription = this.listen(dart.fn(value => {
-          async._cancelAndValue(subscription, future, value);
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            try {
-              dart.throw(_internal.IterableElementError.noElement());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._completeWithErrorCallback(future, e, s);
-            }
-
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      get last() {
-        let future = new (_FutureOfT())();
-        let result = null;
-        let foundResult = false;
-        this.listen(dart.fn(value => {
-          foundResult = true;
-          result = value;
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            if (foundResult) {
-              future[_complete](result);
-              return;
-            }
-            try {
-              dart.throw(_internal.IterableElementError.noElement());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._completeWithErrorCallback(future, e, s);
-            }
-
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      get single() {
-        let future = new (_FutureOfT())();
-        let result = null;
-        let foundResult = false;
-        let subscription = null;
-        subscription = this.listen(dart.fn(value => {
-          if (foundResult) {
-            try {
-              dart.throw(_internal.IterableElementError.tooMany());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._cancelAndErrorWithReplacement(subscription, future, e, s);
-            }
-
-            return;
-          }
-          foundResult = true;
-          result = value;
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            if (foundResult) {
-              future[_complete](result);
-              return;
-            }
-            try {
-              dart.throw(_internal.IterableElementError.noElement());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._completeWithErrorCallback(future, e, s);
-            }
-
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      firstWhere(test, opts) {
-        let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
-        let future = new async._Future();
-        let subscription = null;
-        subscription = this.listen(dart.fn(value => {
-          async._runUserCode(dart.fn(() => test(value), VoidTobool()), dart.fn(isMatch => {
-            if (dart.test(isMatch)) {
-              async._cancelAndValue(subscription, future, value);
-            }
-          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            if (defaultValue != null) {
-              async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
-              return;
-            }
-            try {
-              dart.throw(_internal.IterableElementError.noElement());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._completeWithErrorCallback(future, e, s);
-            }
-
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      lastWhere(test, opts) {
-        let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
-        let future = new async._Future();
-        let result = null;
-        let foundResult = false;
-        let subscription = null;
-        subscription = this.listen(dart.fn(value => {
-          async._runUserCode(dart.fn(() => true == test(value), VoidTobool()), dart.fn(isMatch => {
-            if (dart.test(isMatch)) {
-              foundResult = true;
-              result = value;
-            }
-          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            if (foundResult) {
-              future[_complete](result);
-              return;
-            }
-            if (defaultValue != null) {
-              async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
-              return;
-            }
-            try {
-              dart.throw(_internal.IterableElementError.noElement());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._completeWithErrorCallback(future, e, s);
-            }
-
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      singleWhere(test) {
-        let future = new (_FutureOfT())();
-        let result = null;
-        let foundResult = false;
-        let subscription = null;
-        subscription = this.listen(dart.fn(value => {
-          async._runUserCode(dart.fn(() => true == test(value), VoidTobool()), dart.fn(isMatch => {
-            if (dart.test(isMatch)) {
-              if (foundResult) {
-                try {
-                  dart.throw(_internal.IterableElementError.tooMany());
-                } catch (e) {
-                  let s = dart.stackTrace(e);
-                  async._cancelAndErrorWithReplacement(subscription, future, e, s);
-                }
-
-                return;
-              }
-              foundResult = true;
-              result = value;
-            }
-          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            if (foundResult) {
-              future[_complete](result);
-              return;
-            }
-            try {
-              dart.throw(_internal.IterableElementError.noElement());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              async._completeWithErrorCallback(future, e, s);
-            }
-
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      elementAt(index) {
-        if (!(typeof index == 'number') || dart.notNull(index) < 0) dart.throw(new core.ArgumentError(index));
-        let future = new (_FutureOfT())();
-        let subscription = null;
-        let elementIndex = 0;
-        subscription = this.listen(dart.fn(value => {
-          if (index == elementIndex) {
-            async._cancelAndValue(subscription, future, value);
-            return;
-          }
-          elementIndex = elementIndex + 1;
-        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
-            future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
-          }, VoidToNull()), cancelOnError: true});
-        return future;
-      }
-      timeout(timeLimit, opts) {
-        let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
-        let controller = null;
-        let subscription = null;
-        let timer = null;
-        let zone = null;
-        let timeout = null;
-        function onData(event) {
-          timer.cancel();
-          controller.add(event);
-          timer = zone.createTimer(timeLimit, timeout);
-        }
-        dart.fn(onData, TTovoid$());
-        function onError(error, stackTrace) {
-          timer.cancel();
-          dart.assert(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller));
-          let eventSink = controller;
-          dart.dsend(eventSink, _addError, error, stackTrace);
-          timer = zone.createTimer(timeLimit, timeout);
-        }
-        dart.fn(onError, dynamicAndStackTraceTovoid());
-        function onDone() {
-          timer.cancel();
-          controller.close();
-        }
-        dart.fn(onDone, VoidTovoid$());
-        const onListen = (function() {
-          zone = async.Zone.current;
-          if (onTimeout == null) {
-            timeout = dart.fn(() => {
-              controller.addError(new async.TimeoutException("No stream event", timeLimit), null);
-            }, VoidToNull());
-          } else {
-            let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfT())(onTimeout);
-            let wrapper = new async._ControllerEventSinkWrapper(null);
-            timeout = dart.fn(() => {
-              wrapper[_sink] = controller;
-              zone.runUnaryGuarded(dart.dynamic, EventSinkOfT())(registeredOnTimeout, wrapper);
-              wrapper[_sink] = null;
-            }, VoidToNull());
-          }
-          subscription = this.listen(onData, {onError: onError, onDone: onDone});
-          timer = zone.createTimer(timeLimit, timeout);
+          }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
         }).bind(this);
         dart.fn(onListen, VoidTovoid$());
-        function onCancel() {
-          timer.cancel();
-          let result = subscription.cancel();
-          subscription = null;
-          return result;
+        if (dart.test(this.isBroadcast)) {
+          controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
+              subscription.cancel();
+            }, VoidToNull()), sync: true});
+        } else {
+          controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
+              subscription.pause();
+            }, VoidToNull()), onResume: dart.fn(() => {
+              subscription.resume();
+            }, VoidToNull()), onCancel: dart.fn(() => {
+              subscription.cancel();
+            }, VoidToNull()), sync: true});
         }
-        dart.fn(onCancel, VoidToFuture());
-        controller = dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_SyncStreamControllerOfT())(onListen, dart.fn(() => {
-          timer.cancel();
-          subscription.pause();
-        }, VoidToNull()), dart.fn(() => {
-          subscription.resume();
-          timer = zone.createTimer(timeLimit, timeout);
-        }, VoidToNull()), onCancel);
         return controller.stream;
-      }
+      };
     }
-    dart.addTypeTests(Stream);
-    dart.defineNamedConstructor(Stream, '_internal');
-    dart.setSignature(Stream, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(async.Stream$(T), []),
-        _internal: dart.definiteFunctionType(async.Stream$(T), []),
-        empty: dart.definiteFunctionType(async.Stream$(T), []),
-        fromFuture: dart.definiteFunctionType(async.Stream$(T), [FutureOfT()]),
-        fromFutures: dart.definiteFunctionType(async.Stream$(T), [IterableOfFutureOfT()]),
-        fromIterable: dart.definiteFunctionType(async.Stream$(T), [IterableOfT()]),
-        periodic: dart.definiteFunctionType(async.Stream$(T), [core.Duration], [intToT()]),
-        eventTransformed: dart.definiteFunctionType(async.Stream$(T), [async.Stream, EventSinkOfTToEventSink()])
-      }),
-      getters: () => ({
-        isBroadcast: dart.definiteFunctionType(core.bool, []),
-        length: dart.definiteFunctionType(async.Future$(core.int), []),
-        isEmpty: dart.definiteFunctionType(async.Future$(core.bool), []),
-        first: dart.definiteFunctionType(async.Future$(T), []),
-        last: dart.definiteFunctionType(async.Future$(T), []),
-        single: dart.definiteFunctionType(async.Future$(T), [])
-      }),
-      methods: () => ({
-        asBroadcastStream: dart.definiteFunctionType(async.Stream$(T), [], {onListen: StreamSubscriptionOfTTovoid(), onCancel: StreamSubscriptionOfTTovoid()}),
-        where: dart.definiteFunctionType(async.Stream$(T), [TTobool()]),
-        map: dart.definiteFunctionType(S => [async.Stream$(S), [dart.functionType(S, [T])]]),
-        asyncMap: dart.definiteFunctionType(E => [async.Stream$(E), [TTodynamic()]]),
-        asyncExpand: dart.definiteFunctionType(E => [async.Stream$(E), [dart.functionType(async.Stream$(E), [T])]]),
-        handleError: dart.definiteFunctionType(async.Stream$(T), [core.Function], {test: dynamicTobool()}),
-        expand: dart.definiteFunctionType(S => [async.Stream$(S), [dart.functionType(core.Iterable$(S), [T])]]),
-        pipe: dart.definiteFunctionType(async.Future, [StreamConsumerOfT()]),
-        transform: dart.definiteFunctionType(S => [async.Stream$(S), [async.StreamTransformer$(T, S)]]),
-        reduce: dart.definiteFunctionType(async.Future$(T), [TAndTToT()]),
-        fold: dart.definiteFunctionType(S => [async.Future$(S), [S, dart.functionType(S, [S, T])]]),
-        join: dart.definiteFunctionType(async.Future$(core.String), [], [core.String]),
-        contains: dart.definiteFunctionType(async.Future$(core.bool), [core.Object]),
-        forEach: dart.definiteFunctionType(async.Future, [TTovoid()]),
-        every: dart.definiteFunctionType(async.Future$(core.bool), [TTobool()]),
-        any: dart.definiteFunctionType(async.Future$(core.bool), [TTobool()]),
-        toList: dart.definiteFunctionType(async.Future$(core.List$(T)), []),
-        toSet: dart.definiteFunctionType(async.Future$(core.Set$(T)), []),
-        drain: dart.definiteFunctionType(E => [async.Future$(E), [], [E]]),
-        take: dart.definiteFunctionType(async.Stream$(T), [core.int]),
-        takeWhile: dart.definiteFunctionType(async.Stream$(T), [TTobool()]),
-        skip: dart.definiteFunctionType(async.Stream$(T), [core.int]),
-        skipWhile: dart.definiteFunctionType(async.Stream$(T), [TTobool()]),
-        distinct: dart.definiteFunctionType(async.Stream$(T), [], [TAndTTobool()]),
-        firstWhere: dart.definiteFunctionType(async.Future, [TTobool()], {defaultValue: VoidToObject()}),
-        lastWhere: dart.definiteFunctionType(async.Future, [TTobool()], {defaultValue: VoidToObject()}),
-        singleWhere: dart.definiteFunctionType(async.Future$(T), [TTobool()]),
-        elementAt: dart.definiteFunctionType(async.Future$(T), [core.int]),
-        timeout: dart.definiteFunctionType(async.Stream$(T), [core.Duration], {onTimeout: EventSinkOfTTovoid()})
-      })
-    });
-    return Stream;
-  });
-  async.Stream = Stream();
-  _isolate_helper.ReceivePortImpl = class ReceivePortImpl extends async.Stream {
-    new() {
-      ReceivePortImpl.prototype.fromRawReceivePort.call(this, new _isolate_helper.RawReceivePortImpl(null));
-    }
-    weak() {
-      ReceivePortImpl.prototype.fromRawReceivePort.call(this, new _isolate_helper.RawReceivePortImpl.weak(null));
-    }
-    fromRawReceivePort(rawPort) {
-      this[_rawPort] = rawPort;
-      this[_controller] = null;
-      super.new();
-      this[_controller] = async.StreamController.new({onCancel: dart.bind(this, 'close'), sync: true});
-      this[_rawPort].handler = dart.bind(this[_controller], 'add');
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    close() {
-      this[_rawPort].close();
-      this[_controller].close();
-    }
-    get sendPort() {
-      return this[_rawPort].sendPort;
-    }
-  };
-  dart.addSimpleTypeTests(_isolate_helper.ReceivePortImpl);
-  dart.defineNamedConstructor(_isolate_helper.ReceivePortImpl, 'weak');
-  dart.defineNamedConstructor(_isolate_helper.ReceivePortImpl, 'fromRawReceivePort');
-  _isolate_helper.ReceivePortImpl[dart.implements] = () => [isolate.ReceivePort];
-  dart.setSignature(_isolate_helper.ReceivePortImpl, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_isolate_helper.ReceivePortImpl, []),
-      weak: dart.definiteFunctionType(_isolate_helper.ReceivePortImpl, []),
-      fromRawReceivePort: dart.definiteFunctionType(_isolate_helper.ReceivePortImpl, [isolate.RawReceivePort])
-    }),
-    fields: () => ({
-      [_rawPort]: isolate.RawReceivePort,
-      [_controller]: async.StreamController
-    }),
-    getters: () => ({sendPort: dart.definiteFunctionType(isolate.SendPort, [])}),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription, [dynamicTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _once = Symbol('_once');
-  const _inEventLoop = Symbol('_inEventLoop');
-  const _handle = Symbol('_handle');
-  _isolate_helper.TimerImpl = class TimerImpl extends core.Object {
-    new(milliseconds, callback) {
-      this[_once] = true;
-      this[_inEventLoop] = false;
-      this[_handle] = null;
-      if (milliseconds == 0 && (!dart.test(_isolate_helper.hasTimer()) || dart.test(_isolate_helper._globalState.isWorker))) {
-        const internalCallback = (function() {
-          this[_handle] = null;
-          callback();
+    asyncExpand(E) {
+      return convert => {
+        let controller = null;
+        let subscription = null;
+        const onListen = (function() {
+          dart.assert(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller));
+          let eventSink = async._EventSink$(E).as(controller);
+          subscription = this.listen(dart.fn(event => {
+            let newStream = null;
+            try {
+              newStream = convert(event);
+            } catch (e) {
+              let s = dart.stackTrace(e);
+              controller.addError(e, s);
+              return;
+            }
+
+            if (newStream != null) {
+              subscription.pause();
+              controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
+            }
+          }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
         }).bind(this);
-        dart.fn(internalCallback, VoidTovoid$());
-        this[_handle] = 1;
-        _isolate_helper._globalState.topEventLoop.enqueue(_isolate_helper._globalState.currentContext, internalCallback, 'timer');
-        this[_inEventLoop] = true;
-      } else if (dart.test(_isolate_helper.hasTimer())) {
-        const internalCallback = (function() {
-          this[_handle] = null;
-          _isolate_helper.leaveJsAsync();
-          callback();
-        }).bind(this);
-        dart.fn(internalCallback, VoidTovoid$());
-        _isolate_helper.enterJsAsync();
-        this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
-      } else {
-        dart.assert(dart.notNull(milliseconds) > 0);
-        dart.throw(new core.UnsupportedError("Timer greater than 0."));
-      }
-    }
-    periodic(milliseconds, callback) {
-      this[_once] = false;
-      this[_inEventLoop] = false;
-      this[_handle] = null;
-      if (dart.test(_isolate_helper.hasTimer())) {
-        _isolate_helper.enterJsAsync();
-        this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
-          callback(this);
-        }, VoidToNull()), milliseconds);
-      } else {
-        dart.throw(new core.UnsupportedError("Periodic timer."));
-      }
-    }
-    cancel() {
-      if (dart.test(_isolate_helper.hasTimer())) {
-        if (dart.test(this[_inEventLoop])) {
-          dart.throw(new core.UnsupportedError("Timer in event loop cannot be canceled."));
-        }
-        if (this[_handle] == null) return;
-        _isolate_helper.leaveJsAsync();
-        if (dart.test(this[_once])) {
-          _isolate_helper.global.clearTimeout(this[_handle]);
+        dart.fn(onListen, VoidTovoid$());
+        if (dart.test(this.isBroadcast)) {
+          controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
+              subscription.cancel();
+            }, VoidToNull()), sync: true});
         } else {
-          _isolate_helper.global.clearInterval(this[_handle]);
+          controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
+              subscription.pause();
+            }, VoidToNull()), onResume: dart.fn(() => {
+              subscription.resume();
+            }, VoidToNull()), onCancel: dart.fn(() => {
+              subscription.cancel();
+            }, VoidToNull()), sync: true});
         }
-        this[_handle] = null;
-      } else {
-        dart.throw(new core.UnsupportedError("Canceling a timer."));
-      }
+        return controller.stream;
+      };
     }
-    get isActive() {
-      return this[_handle] != null;
+    handleError(onError, opts) {
+      let test = opts && 'test' in opts ? opts.test : null;
+      return new (_HandleErrorStreamOfT())(this, onError, test);
     }
-  };
-  dart.defineNamedConstructor(_isolate_helper.TimerImpl, 'periodic');
-  _isolate_helper.TimerImpl[dart.implements] = () => [async.Timer];
-  dart.setSignature(_isolate_helper.TimerImpl, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_isolate_helper.TimerImpl, [core.int, VoidTovoid()]),
-      periodic: dart.definiteFunctionType(_isolate_helper.TimerImpl, [core.int, TimerTovoid()])
-    }),
-    fields: () => ({
-      [_once]: core.bool,
-      [_inEventLoop]: core.bool,
-      [_handle]: core.int
-    }),
-    getters: () => ({isActive: dart.definiteFunctionType(core.bool, [])}),
-    methods: () => ({cancel: dart.definiteFunctionType(dart.void, [])})
-  });
-  _isolate_helper.hasTimer = function() {
-    return _isolate_helper.global.setTimeout != null;
-  };
-  dart.lazyFn(_isolate_helper.hasTimer, () => VoidTobool());
-  _isolate_helper.CapabilityImpl = class CapabilityImpl extends core.Object {
-    new() {
-      CapabilityImpl.prototype._internal.call(this, _js_helper.random64());
+    expand(S) {
+      return convert => {
+        return new (async._ExpandStream$(T, S))(this, convert);
+      };
     }
-    _internal(id) {
-      this[_id] = id;
+    pipe(streamConsumer) {
+      StreamConsumerOfT()._check(streamConsumer);
+      return streamConsumer.addStream(this).then(dart.dynamic)(dart.fn(_ => streamConsumer.close(), dynamicToFuture()));
     }
-    get hashCode() {
-      let hash = this[_id];
-      hash = (hash[dartx['>>']](0) ^ (dart.notNull(hash) / 4294967296)[dartx.truncate]()) >>> 0;
-      hash = ((~dart.notNull(hash) >>> 0) + (dart.notNull(hash) << 15 >>> 0) & 4294967295) >>> 0;
-      hash = (dart.notNull(hash) ^ hash[dartx['>>']](12)) >>> 0;
-      hash = (dart.notNull(hash) * 5 & 4294967295) >>> 0;
-      hash = (dart.notNull(hash) ^ hash[dartx['>>']](4)) >>> 0;
-      hash = (dart.notNull(hash) * 2057 & 4294967295) >>> 0;
-      hash = (dart.notNull(hash) ^ hash[dartx['>>']](16)) >>> 0;
-      return hash;
+    transform(S) {
+      return streamTransformer => {
+        async.StreamTransformer$(T, S)._check(streamTransformer);
+        return streamTransformer.bind(this);
+      };
     }
-    ['=='](other) {
-      if (core.identical(other, this)) return true;
-      if (_isolate_helper.CapabilityImpl.is(other)) {
-        return core.identical(this[_id], other[_id]);
-      }
-      return false;
-    }
-  };
-  dart.defineNamedConstructor(_isolate_helper.CapabilityImpl, '_internal');
-  _isolate_helper.CapabilityImpl[dart.implements] = () => [isolate.Capability];
-  dart.setSignature(_isolate_helper.CapabilityImpl, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_isolate_helper.CapabilityImpl, []),
-      _internal: dart.definiteFunctionType(_isolate_helper.CapabilityImpl, [core.int])
-    }),
-    fields: () => ({[_id]: core.int}),
-    methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])})
-  });
-  _isolate_helper._serializeMessage = function(message) {
-    return new _isolate_helper._Serializer().serialize(message);
-  };
-  dart.fn(_isolate_helper._serializeMessage, dynamicTodynamic$());
-  _isolate_helper._deserializeMessage = function(message) {
-    return new _isolate_helper._Deserializer().deserialize(message);
-  };
-  dart.fn(_isolate_helper._deserializeMessage, dynamicTodynamic$());
-  _isolate_helper._clone = function(message) {
-    let serializer = new _isolate_helper._Serializer({serializeSendPorts: false});
-    let deserializer = new _isolate_helper._Deserializer();
-    return deserializer.deserialize(serializer.serialize(message));
-  };
-  dart.fn(_isolate_helper._clone, dynamicTodynamic$());
-  const _serializeSendPorts = Symbol('_serializeSendPorts');
-  _isolate_helper._Serializer = class _Serializer extends core.Object {
-    new(opts) {
-      let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.serializeSendPorts : true;
-      this.serializedObjectIds = MapOfdynamic$int().identity();
-      this[_serializeSendPorts] = core.bool._check(serializeSendPorts);
-    }
-    serialize(x) {
-      if (dart.test(this.isPrimitive(x))) return this.serializePrimitive(x);
-      let serializationId = this.serializedObjectIds[dartx._get](x);
-      if (serializationId != null) return this.makeRef(serializationId);
-      serializationId = this.serializedObjectIds[dartx.length];
-      this.serializedObjectIds[dartx._set](x, serializationId);
-      if (_native_typed_data.NativeByteBuffer.is(x)) return this.serializeByteBuffer(x);
-      if (_native_typed_data.NativeTypedData.is(x)) return this.serializeTypedData(x);
-      if (_interceptors.JSIndexable.is(x)) return this.serializeJSIndexable(x);
-      if (_js_helper.InternalMap.is(x)) return this.serializeMap(x);
-      if (_interceptors.JSObject.is(x)) return this.serializeJSObject(x);
-      if (_interceptors.Interceptor.is(x)) this.unsupported(x);
-      if (isolate.RawReceivePort.is(x)) {
-        this.unsupported(x, "RawReceivePorts can't be transmitted:");
-      }
-      if (_isolate_helper._NativeJsSendPort.is(x)) return this.serializeJsSendPort(x);
-      if (_isolate_helper._WorkerSendPort.is(x)) return this.serializeWorkerSendPort(x);
-      if (core.Function.is(x)) return this.serializeClosure(x);
-      return this.serializeDartObject(x);
-    }
-    unsupported(x, message) {
-      if (message === void 0) message = null;
-      if (message == null) message = "Can't transmit:";
-      dart.throw(new core.UnsupportedError(dart.str`${message} ${x}`));
-    }
-    makeRef(serializationId) {
-      return JSArrayOfObject().of(["ref", serializationId]);
-    }
-    isPrimitive(x) {
-      return x == null || typeof x == 'string' || typeof x == 'number' || typeof x == 'boolean';
-    }
-    serializePrimitive(primitive) {
-      return primitive;
-    }
-    serializeByteBuffer(buffer) {
-      return JSArrayOfObject().of(["buffer", buffer]);
-    }
-    serializeTypedData(data) {
-      return JSArrayOfObject().of(["typed", data]);
-    }
-    serializeJSIndexable(indexable) {
-      dart.assert(!(typeof indexable == 'string'));
-      let serialized = core.List._check(this.serializeArray(_interceptors.JSArray._check(indexable)));
-      if (_interceptors.JSFixedArray.is(indexable)) return JSArrayOfObject().of(["fixed", serialized]);
-      if (_interceptors.JSExtendableArray.is(indexable)) return JSArrayOfObject().of(["extendable", serialized]);
-      if (_interceptors.JSMutableArray.is(indexable)) return JSArrayOfObject().of(["mutable", serialized]);
-      if (_interceptors.JSArray.is(indexable)) return JSArrayOfObject().of(["const", serialized]);
-      this.unsupported(indexable, "Can't serialize indexable: ");
-      return null;
-    }
-    serializeArray(x) {
-      let serialized = [];
-      serialized[dartx.length] = x[dartx.length];
-      for (let i = 0; i < dart.notNull(x[dartx.length]); i++) {
-        serialized[dartx._set](i, this.serialize(x[dartx._get](i)));
-      }
-      return serialized;
-    }
-    serializeArrayInPlace(x) {
-      for (let i = 0; i < dart.notNull(x[dartx.length]); i++) {
-        x[dartx._set](i, this.serialize(x[dartx._get](i)));
-      }
-      return x;
-    }
-    serializeMap(x) {
-      let serializeTearOff = dart.bind(this, 'serialize');
-      return JSArrayOfObject().of(['map', x.keys[dartx.map](dart.dynamic)(dynamicTodynamic()._check(serializeTearOff))[dartx.toList](), x.values[dartx.map](dart.dynamic)(dynamicTodynamic()._check(serializeTearOff))[dartx.toList]()]);
-    }
-    serializeJSObject(x) {
-      if (!!x.constructor && x.constructor !== Object) {
-        this.unsupported(x, "Only plain JS Objects are supported:");
-      }
-      let keys = Object.keys(x);
-      let values = [];
-      values[dartx.length] = keys[dartx.length];
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        values[dartx._set](i, this.serialize(x[keys[dartx._get](i)]));
-      }
-      return JSArrayOfObject().of(['js-object', keys, values]);
-    }
-    serializeWorkerSendPort(x) {
-      if (dart.test(this[_serializeSendPorts])) {
-        return JSArrayOfObject().of(['sendport', x[_workerId], x[_isolateId], x[_receivePortId]]);
-      }
-      return JSArrayOfObject().of(['raw sendport', x]);
-    }
-    serializeJsSendPort(x) {
-      if (dart.test(this[_serializeSendPorts])) {
-        let workerId = _isolate_helper._globalState.currentManagerId;
-        return JSArrayOfObject().of(['sendport', workerId, x[_isolateId], x[_receivePort][_id]]);
-      }
-      return JSArrayOfObject().of(['raw sendport', x]);
-    }
-    serializeCapability(x) {
-      return JSArrayOfObject().of(['capability', x[_id]]);
-    }
-    serializeClosure(x) {
-      let name = _isolate_helper.IsolateNatives._getJSFunctionName(x);
-      if (name == null) {
-        this.unsupported(x, "Closures can't be transmitted:");
-      }
-      return JSArrayOfString().of(['function', name]);
-    }
-    serializeDartObject(x) {
-      let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CLASS_ID_EXTRACTOR);
-      let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CLASS_FIELDS_EXTRACTOR);
-      let classId = classExtractor(x);
-      let fields = fieldsExtractor(x);
-      return ['dart', classId, this.serializeArrayInPlace(_interceptors.JSArray._check(fields))];
-    }
-  };
-  dart.setSignature(_isolate_helper._Serializer, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._Serializer, [], {serializeSendPorts: dart.dynamic})}),
-    fields: () => ({
-      [_serializeSendPorts]: core.bool,
-      serializedObjectIds: MapOfdynamic$int()
-    }),
-    methods: () => ({
-      serialize: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      unsupported: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.String]),
-      makeRef: dart.definiteFunctionType(dart.dynamic, [core.int]),
-      isPrimitive: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      serializePrimitive: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      serializeByteBuffer: dart.definiteFunctionType(dart.dynamic, [_native_typed_data.NativeByteBuffer]),
-      serializeTypedData: dart.definiteFunctionType(dart.dynamic, [_native_typed_data.NativeTypedData]),
-      serializeJSIndexable: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSIndexable]),
-      serializeArray: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSArray]),
-      serializeArrayInPlace: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSArray]),
-      serializeMap: dart.definiteFunctionType(dart.dynamic, [_js_helper.InternalMap]),
-      serializeJSObject: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSObject]),
-      serializeWorkerSendPort: dart.definiteFunctionType(dart.dynamic, [_isolate_helper._WorkerSendPort]),
-      serializeJsSendPort: dart.definiteFunctionType(dart.dynamic, [_isolate_helper._NativeJsSendPort]),
-      serializeCapability: dart.definiteFunctionType(dart.dynamic, [_isolate_helper.CapabilityImpl]),
-      serializeClosure: dart.definiteFunctionType(dart.dynamic, [core.Function]),
-      serializeDartObject: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-    })
-  });
-  const _adjustSendPorts = Symbol('_adjustSendPorts');
-  _isolate_helper._Deserializer = class _Deserializer extends core.Object {
-    new(opts) {
-      let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendPorts : true;
-      this.deserializedObjects = core.List.new();
-      this[_adjustSendPorts] = core.bool._check(adjustSendPorts);
-    }
-    deserialize(x) {
-      if (dart.test(this.isPrimitive(x))) return this.deserializePrimitive(x);
-      if (!_interceptors.JSArray.is(x)) dart.throw(new core.ArgumentError(dart.str`Bad serialized message: ${x}`));
-      switch (dart.dload(x, 'first')) {
-        case "ref":
-        {
-          return this.deserializeRef(x);
-        }
-        case "buffer":
-        {
-          return this.deserializeByteBuffer(x);
-        }
-        case "typed":
-        {
-          return this.deserializeTypedData(x);
-        }
-        case "fixed":
-        {
-          return this.deserializeFixed(x);
-        }
-        case "extendable":
-        {
-          return this.deserializeExtendable(x);
-        }
-        case "mutable":
-        {
-          return this.deserializeMutable(x);
-        }
-        case "const":
-        {
-          return this.deserializeConst(x);
-        }
-        case "map":
-        {
-          return this.deserializeMap(_js_helper.InternalMap._check(x));
-        }
-        case "sendport":
-        {
-          return this.deserializeSendPort(x);
-        }
-        case "raw sendport":
-        {
-          return this.deserializeRawSendPort(x);
-        }
-        case "js-object":
-        {
-          return this.deserializeJSObject(x);
-        }
-        case "function":
-        {
-          return this.deserializeClosure(x);
-        }
-        case "dart":
-        {
-          return this.deserializeDartObject(x);
-        }
-        default:
-        {
-          dart.throw(dart.str`couldn't deserialize: ${x}`);
-        }
-      }
-    }
-    isPrimitive(x) {
-      return x == null || typeof x == 'string' || typeof x == 'number' || typeof x == 'boolean';
-    }
-    deserializePrimitive(x) {
-      return x;
-    }
-    deserializeRef(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'ref'));
-      let serializationId = core.int._check(dart.dindex(x, 1));
-      return this.deserializedObjects[dartx._get](serializationId);
-    }
-    deserializeByteBuffer(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'buffer'));
-      let result = _native_typed_data.NativeByteBuffer._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return result;
-    }
-    deserializeTypedData(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'typed'));
-      let result = _native_typed_data.NativeTypedData._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return result;
-    }
-    deserializeArrayInPlace(x) {
-      for (let i = 0; i < dart.notNull(x[dartx.length]); i++) {
-        x[dartx._set](i, this.deserialize(x[dartx._get](i)));
-      }
-      return x;
-    }
-    deserializeFixed(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'fixed'));
-      let result = core.List._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(_interceptors.JSArray._check(result)));
-    }
-    deserializeExtendable(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'extendable'));
-      let result = core.List._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace(_interceptors.JSArray._check(result)));
-    }
-    deserializeMutable(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'mutable'));
-      let result = core.List._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return this.deserializeArrayInPlace(_interceptors.JSArray._check(result));
-    }
-    deserializeConst(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'const'));
-      let result = core.List._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(_interceptors.JSArray._check(result)));
-    }
-    deserializeMap(x) {
-      dart.assert(dart.equals(x._get(0), 'map'));
-      let keys = core.List._check(x._get(1));
-      let values = core.List._check(x._get(2));
-      let result = dart.map();
-      this.deserializedObjects[dartx.add](result);
-      keys = keys[dartx.map](dart.dynamic)(dart.bind(this, 'deserialize'))[dartx.toList]();
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        result[dartx._set](keys[dartx._get](i), this.deserialize(values[dartx._get](i)));
-      }
-      return result;
-    }
-    deserializeSendPort(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'sendport'));
-      let managerId = core.int._check(dart.dindex(x, 1));
-      let isolateId = core.int._check(dart.dindex(x, 2));
-      let receivePortId = core.int._check(dart.dindex(x, 3));
-      let result = null;
-      if (managerId == _isolate_helper._globalState.currentManagerId) {
-        let isolate = _isolate_helper._globalState.isolates[dartx._get](isolateId);
-        if (isolate == null) return null;
-        let receivePort = isolate.lookup(receivePortId);
-        if (receivePort == null) return null;
-        result = new _isolate_helper._NativeJsSendPort(receivePort, isolateId);
-      } else {
-        result = new _isolate_helper._WorkerSendPort(managerId, isolateId, receivePortId);
-      }
-      this.deserializedObjects[dartx.add](result);
-      return result;
-    }
-    deserializeRawSendPort(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport'));
-      let result = isolate.SendPort._check(dart.dindex(x, 1));
-      this.deserializedObjects[dartx.add](result);
-      return result;
-    }
-    deserializeJSObject(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'js-object'));
-      let keys = core.List._check(dart.dindex(x, 1));
-      let values = core.List._check(dart.dindex(x, 2));
-      let o = {};
-      this.deserializedObjects[dartx.add](o);
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        o[keys[dartx._get](i)] = this.deserialize(values[dartx._get](i));
-      }
-      return o;
-    }
-    deserializeClosure(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'function'));
-      let name = core.String._check(dart.dindex(x, 1));
-      let result = core.Function._check(_isolate_helper.IsolateNatives._getJSFunctionFromName(name));
-      this.deserializedObjects[dartx.add](result);
-      return result;
-    }
-    deserializeDartObject(x) {
-      dart.assert(dart.equals(dart.dindex(x, 0), 'dart'));
-      let classId = core.String._check(dart.dindex(x, 1));
-      let fields = core.List._check(dart.dindex(x, 2));
-      let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.INSTANCE_FROM_CLASS_ID);
-      let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.INITIALIZE_EMPTY_INSTANCE);
-      let emptyInstance = instanceFromClassId(classId);
-      this.deserializedObjects[dartx.add](emptyInstance);
-      this.deserializeArrayInPlace(_interceptors.JSArray._check(fields));
-      return initializeObject(classId, emptyInstance, fields);
-    }
-  };
-  dart.setSignature(_isolate_helper._Deserializer, {
-    constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._Deserializer, [], {adjustSendPorts: dart.dynamic})}),
-    fields: () => ({
-      [_adjustSendPorts]: core.bool,
-      deserializedObjects: core.List
-    }),
-    methods: () => ({
-      deserialize: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      isPrimitive: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      deserializePrimitive: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      deserializeRef: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      deserializeByteBuffer: dart.definiteFunctionType(_native_typed_data.NativeByteBuffer, [dart.dynamic]),
-      deserializeTypedData: dart.definiteFunctionType(_native_typed_data.NativeTypedData, [dart.dynamic]),
-      deserializeArrayInPlace: dart.definiteFunctionType(core.List, [_interceptors.JSArray]),
-      deserializeFixed: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      deserializeExtendable: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      deserializeMutable: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      deserializeConst: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      deserializeMap: dart.definiteFunctionType(core.Map, [_js_helper.InternalMap]),
-      deserializeSendPort: dart.definiteFunctionType(isolate.SendPort, [dart.dynamic]),
-      deserializeRawSendPort: dart.definiteFunctionType(isolate.SendPort, [dart.dynamic]),
-      deserializeJSObject: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      deserializeClosure: dart.definiteFunctionType(core.Function, [dart.dynamic]),
-      deserializeDartObject: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-    })
-  });
-  _js_embedded_names.DISPATCH_PROPERTY_NAME = "dispatchPropertyName";
-  _js_embedded_names.TYPE_INFORMATION = 'typeInformation';
-  _js_embedded_names.GLOBAL_FUNCTIONS = 'globalFunctions';
-  _js_embedded_names.STATICS = 'statics';
-  _js_embedded_names.INTERCEPTED_NAMES = 'interceptedNames';
-  _js_embedded_names.MANGLED_GLOBAL_NAMES = 'mangledGlobalNames';
-  _js_embedded_names.MANGLED_NAMES = 'mangledNames';
-  _js_embedded_names.LIBRARIES = 'libraries';
-  _js_embedded_names.FINISHED_CLASSES = 'finishedClasses';
-  _js_embedded_names.ALL_CLASSES = 'allClasses';
-  _js_embedded_names.METADATA = 'metadata';
-  _js_embedded_names.INTERCEPTORS_BY_TAG = 'interceptorsByTag';
-  _js_embedded_names.LEAF_TAGS = 'leafTags';
-  _js_embedded_names.LAZIES = 'lazies';
-  _js_embedded_names.GET_ISOLATE_TAG = 'getIsolateTag';
-  _js_embedded_names.ISOLATE_TAG = 'isolateTag';
-  _js_embedded_names.CURRENT_SCRIPT = 'currentScript';
-  _js_embedded_names.DEFERRED_LIBRARY_URIS = 'deferredLibraryUris';
-  _js_embedded_names.DEFERRED_LIBRARY_HASHES = 'deferredLibraryHashes';
-  _js_embedded_names.INITIALIZE_LOADED_HUNK = 'initializeLoadedHunk';
-  _js_embedded_names.IS_HUNK_LOADED = 'isHunkLoaded';
-  _js_embedded_names.IS_HUNK_INITIALIZED = 'isHunkInitialized';
-  _js_embedded_names.DEFERRED_INITIALIZED = 'deferredInitialized';
-  _js_embedded_names.CLASS_ID_EXTRACTOR = 'classIdExtractor';
-  _js_embedded_names.CLASS_FIELDS_EXTRACTOR = 'classFieldsExtractor';
-  _js_embedded_names.INSTANCE_FROM_CLASS_ID = "instanceFromClassId";
-  _js_embedded_names.INITIALIZE_EMPTY_INSTANCE = "initializeEmptyInstance";
-  _js_embedded_names.TYPEDEF_TYPE_PROPERTY_NAME = "$typedefType";
-  _js_embedded_names.TYPEDEF_PREDICATE_PROPERTY_NAME = "$$isTypedef";
-  _js_embedded_names.NATIVE_SUPERCLASS_TAG_NAME = "$nativeSuperclassTag";
-  _js_embedded_names.MAP_TYPE_TO_INTERCEPTOR = "mapTypeToInterceptor";
-  _js_helper._Patch = class _Patch extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_js_helper._Patch, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._Patch, [])})
-  });
-  _js_helper.patch = dart.const(new _js_helper._Patch());
-  _js_helper.InternalMap$ = dart.generic((K, V) => {
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    class InternalMap extends core.Object {}
-    dart.addTypeTests(InternalMap);
-    InternalMap[dart.implements] = () => [MapOfK$V()];
-    return InternalMap;
-  });
-  _js_helper.InternalMap = InternalMap();
-  _js_helper.Primitives = class Primitives extends core.Object {
-    static initializeStatics(id) {
-      _js_helper.Primitives.mirrorFunctionCacheName = dart.notNull(_js_helper.Primitives.mirrorFunctionCacheName) + dart.str`_${id}`;
-      _js_helper.Primitives.mirrorInvokeCacheName = dart.notNull(_js_helper.Primitives.mirrorInvokeCacheName) + dart.str`_${id}`;
-    }
-    static objectHashCode(object) {
-      let hash = object.$identityHash;
-      if (hash == null) {
-        hash = Math.random() * 0x3fffffff | 0;
-        object.$identityHash = hash;
-      }
-      return hash;
-    }
-    static _parseIntError(source, handleError) {
-      if (handleError == null) dart.throw(new core.FormatException(source));
-      return handleError(source);
-    }
-    static parseInt(source, radix, handleError) {
-      _js_helper.checkString(source);
-      let re = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i;
-      let match = re.exec(source);
-      let digitsIndex = 1;
-      let hexIndex = 2;
-      let decimalIndex = 3;
-      let nonDecimalHexIndex = 4;
-      if (match == null) {
-        return _js_helper.Primitives._parseIntError(source, handleError);
-      }
-      let decimalMatch = match[dartx._get](decimalIndex);
-      if (radix == null) {
-        if (decimalMatch != null) {
-          return parseInt(source, 10);
-        }
-        if (match[dartx._get](hexIndex) != null) {
-          return parseInt(source, 16);
-        }
-        return _js_helper.Primitives._parseIntError(source, handleError);
-      }
-      if (!(typeof radix == 'number')) {
-        dart.throw(new core.ArgumentError.value(radix, 'radix', 'is not an integer'));
-      }
-      if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
-        dart.throw(new core.RangeError.range(radix, 2, 36, 'radix'));
-      }
-      if (radix == 10 && decimalMatch != null) {
-        return parseInt(source, 10);
-      }
-      if (dart.notNull(radix) < 10 || decimalMatch == null) {
-        let maxCharCode = null;
-        if (dart.notNull(radix) <= 10) {
-          maxCharCode = 48 - 1 + dart.notNull(radix);
-        } else {
-          maxCharCode = 97 - 10 - 1 + dart.notNull(radix);
-        }
-        dart.assert(typeof match[dartx._get](digitsIndex) == 'string');
-        let digitsPart = match[digitsIndex];
-        for (let i = 0; i < dart.notNull(digitsPart[dartx.length]); i++) {
-          let characterCode = (dart.notNull(digitsPart[dartx.codeUnitAt](i)) | 32) >>> 0;
-          if (characterCode > dart.notNull(maxCharCode)) {
-            return _js_helper.Primitives._parseIntError(source, handleError);
-          }
-        }
-      }
-      return parseInt(source, radix);
-    }
-    static _parseDoubleError(source, handleError) {
-      if (handleError == null) {
-        dart.throw(new core.FormatException('Invalid double', source));
-      }
-      return handleError(source);
-    }
-    static parseDouble(source, handleError) {
-      _js_helper.checkString(source);
-      if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(source)) {
-        return _js_helper.Primitives._parseDoubleError(source, handleError);
-      }
-      let result = parseFloat(source);
-      if (dart.test(result[dartx.isNaN])) {
-        let trimmed = source[dartx.trim]();
-        if (trimmed == 'NaN' || trimmed == '+NaN' || trimmed == '-NaN') {
-          return result;
-        }
-        return _js_helper.Primitives._parseDoubleError(source, handleError);
-      }
-      return result;
-    }
-    static objectTypeName(object) {
-      return dart.toString(_js_helper.getRuntimeType(object));
-    }
-    static objectToString(object) {
-      let name = dart.typeName(dart.getReifiedType(object));
-      return dart.str`Instance of '${name}'`;
-    }
-    static dateNow() {
-      return Date.now();
-    }
-    static initTicker() {
-      if (_js_helper.Primitives.timerFrequency != null) return;
-      _js_helper.Primitives.timerFrequency = 1000;
-      _js_helper.Primitives.timerTicks = _js_helper.Primitives.dateNow;
-      if (typeof window == "undefined") return;
-      let jsWindow = window;
-      if (jsWindow == null) return;
-      let performance = jsWindow.performance;
-      if (performance == null) return;
-      if (typeof performance.now != "function") return;
-      _js_helper.Primitives.timerFrequency = 1000000;
-      _js_helper.Primitives.timerTicks = dart.fn(() => (1000 * performance.now())[dartx.floor](), VoidToint());
-    }
-    static get isD8() {
-      return typeof version == "function" && typeof os == "object" && "system" in os;
-    }
-    static get isJsshell() {
-      return typeof version == "function" && typeof system == "function";
-    }
-    static currentUri() {
-      if (!!self.location) {
-        return self.location.href;
-      }
-      return null;
-    }
-    static _fromCharCodeApply(array) {
-      let kMaxApply = 500;
-      let end = array[dartx.length];
-      if (dart.notNull(end) <= kMaxApply) {
-        return String.fromCharCode.apply(null, array);
-      }
-      let result = '';
-      for (let i = 0; i < dart.notNull(end); i = i + kMaxApply) {
-        let chunkEnd = i + kMaxApply < dart.notNull(end) ? i + kMaxApply : end;
-        result = result + String.fromCharCode.apply(null, array.slice(i, chunkEnd));
-      }
-      return result;
-    }
-    static stringFromCodePoints(codePoints) {
-      let a = JSArrayOfint().of([]);
-      for (let i of codePoints) {
-        if (!(typeof i == 'number')) dart.throw(_js_helper.argumentErrorValue(i));
-        if (dart.notNull(i) <= 65535) {
-          a[dartx.add](i);
-        } else if (dart.notNull(i) <= 1114111) {
-          a[dartx.add](55296 + (dart.notNull(i) - 65536 >> 10 & 1023));
-          a[dartx.add](56320 + (dart.notNull(i) & 1023));
-        } else {
-          dart.throw(_js_helper.argumentErrorValue(i));
-        }
-      }
-      return _js_helper.Primitives._fromCharCodeApply(a);
-    }
-    static stringFromCharCodes(charCodes) {
-      for (let i of charCodes) {
-        if (!(typeof i == 'number')) dart.throw(_js_helper.argumentErrorValue(i));
-        if (dart.notNull(i) < 0) dart.throw(_js_helper.argumentErrorValue(i));
-        if (dart.notNull(i) > 65535) return _js_helper.Primitives.stringFromCodePoints(charCodes);
-      }
-      return _js_helper.Primitives._fromCharCodeApply(charCodes);
-    }
-    static stringFromNativeUint8List(charCodes, start, end) {
-      let kMaxApply = 500;
-      if (dart.notNull(end) <= kMaxApply && start == 0 && end == charCodes[dartx.length]) {
-        return String.fromCharCode.apply(null, charCodes);
-      }
-      let result = '';
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + kMaxApply) {
-        let chunkEnd = dart.notNull(i) + kMaxApply < dart.notNull(end) ? dart.notNull(i) + kMaxApply : end;
-        result = result + String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd));
-      }
-      return result;
-    }
-    static stringFromCharCode(charCode) {
-      if (0 <= dart.notNull(charCode)) {
-        if (dart.notNull(charCode) <= 65535) {
-          return String.fromCharCode(charCode);
-        }
-        if (dart.notNull(charCode) <= 1114111) {
-          let bits = dart.notNull(charCode) - 65536;
-          let low = 56320 | bits & 1023;
-          let high = (55296 | bits[dartx['>>']](10)) >>> 0;
-          return String.fromCharCode(high, low);
-        }
-      }
-      dart.throw(new core.RangeError.range(charCode, 0, 1114111));
-    }
-    static stringConcatUnchecked(string1, string2) {
-      return _foreign_helper.JS_STRING_CONCAT(string1, string2);
-    }
-    static flattenString(str) {
-      return str.charCodeAt(0) == 0 ? str : str;
-    }
-    static getTimeZoneName(receiver) {
-      let d = _js_helper.Primitives.lazyAsJsDate(receiver);
-      let match = /\((.*)\)/.exec(d.toString());
-      if (match != null) return core.String._check(match[dartx._get](1));
-      match = /^[A-Z,a-z]{3}\s[A-Z,a-z]{3}\s\d+\s\d{2}:\d{2}:\d{2}\s([A-Z]{3,5})\s\d{4}$/.exec(d.toString());
-      if (match != null) return core.String._check(match[dartx._get](1));
-      match = /(?:GMT|UTC)[+-]\d{4}/.exec(d.toString());
-      if (match != null) return core.String._check(match[dartx._get](0));
-      return "";
-    }
-    static getTimeZoneOffsetInMinutes(receiver) {
-      return -_js_helper.Primitives.lazyAsJsDate(receiver).getTimezoneOffset();
-    }
-    static valueFromDecomposedDate(years, month, day, hours, minutes, seconds, milliseconds, isUtc) {
-      let MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
-      _js_helper.checkInt(years);
-      _js_helper.checkInt(month);
-      _js_helper.checkInt(day);
-      _js_helper.checkInt(hours);
-      _js_helper.checkInt(minutes);
-      _js_helper.checkInt(seconds);
-      _js_helper.checkInt(milliseconds);
-      _js_helper.checkBool(isUtc);
-      let jsMonth = dart.notNull(month) - 1;
+    reduce(combine) {
+      TAndTToT()._check(combine);
+      let result = new (_FutureOfT())();
+      let seenFirst = false;
       let value = null;
-      if (dart.test(isUtc)) {
-        value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseconds);
-      } else {
-        value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseconds).valueOf();
-      }
-      if (dart.test(value[dartx.isNaN]) || dart.notNull(value) < -MAX_MILLISECONDS_SINCE_EPOCH || dart.notNull(value) > MAX_MILLISECONDS_SINCE_EPOCH) {
-        return null;
-      }
-      if (dart.notNull(years) <= 0 || dart.notNull(years) < 100) return core.num._check(_js_helper.Primitives.patchUpY2K(value, years, isUtc));
-      return value;
-    }
-    static patchUpY2K(value, years, isUtc) {
-      let date = new Date(value);
-      if (dart.test(isUtc)) {
-        date.setUTCFullYear(years);
-      } else {
-        date.setFullYear(years);
-      }
-      return date.valueOf();
-    }
-    static lazyAsJsDate(receiver) {
-      if (receiver.date === void 0) {
-        receiver.date = new Date(receiver.millisecondsSinceEpoch);
-      }
-      return receiver.date;
-    }
-    static getYear(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCFullYear() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getFullYear() + 0;
-    }
-    static getMonth(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMonth() + 1 : _js_helper.Primitives.lazyAsJsDate(receiver).getMonth() + 1;
-    }
-    static getDay(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDate() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDate() + 0;
-    }
-    static getHours(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCHours() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getHours() + 0;
-    }
-    static getMinutes(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMinutes() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMinutes() + 0;
-    }
-    static getSeconds(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCSeconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getSeconds() + 0;
-    }
-    static getMilliseconds(receiver) {
-      return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMilliseconds() + 0;
-    }
-    static getWeekday(receiver) {
-      let weekday = dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDay() + 0;
-      return (weekday + 6)[dartx['%']](7) + 1;
-    }
-    static valueFromDateString(str) {
-      if (!(typeof str == 'string')) dart.throw(_js_helper.argumentErrorValue(str));
-      let value = Date.parse(str);
-      if (dart.test(value[dartx.isNaN])) dart.throw(_js_helper.argumentErrorValue(str));
-      return value;
-    }
-    static getProperty(object, key) {
-      if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
-        dart.throw(_js_helper.argumentErrorValue(object));
-      }
-      return object[key];
-    }
-    static setProperty(object, key, value) {
-      if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
-        dart.throw(_js_helper.argumentErrorValue(object));
-      }
-      object[key] = value;
-    }
-    static extractStackTrace(error) {
-      return _js_helper.getTraceFromException(error.$thrownJsError);
-    }
-  };
-  dart.setSignature(_js_helper.Primitives, {
-    sfields: () => ({
-      mirrorFunctionCacheName: core.String,
-      mirrorInvokeCacheName: core.String,
-      DOLLAR_CHAR_VALUE: core.int,
-      timerFrequency: core.int,
-      timerTicks: core.Function
-    }),
-    sgetters: () => ({
-      isD8: dart.definiteFunctionType(core.bool, []),
-      isJsshell: dart.definiteFunctionType(core.bool, [])
-    }),
-    statics: () => ({
-      initializeStatics: dart.definiteFunctionType(dart.void, [core.int]),
-      objectHashCode: dart.definiteFunctionType(core.int, [dart.dynamic]),
-      _parseIntError: dart.definiteFunctionType(core.int, [core.String, StringToint()]),
-      parseInt: dart.definiteFunctionType(core.int, [core.String, core.int, StringToint()]),
-      _parseDoubleError: dart.definiteFunctionType(core.double, [core.String, StringTodouble()]),
-      parseDouble: dart.definiteFunctionType(core.double, [core.String, StringTodouble()]),
-      objectTypeName: dart.definiteFunctionType(core.String, [core.Object]),
-      objectToString: dart.definiteFunctionType(core.String, [core.Object]),
-      dateNow: dart.definiteFunctionType(core.int, []),
-      initTicker: dart.definiteFunctionType(dart.void, []),
-      currentUri: dart.definiteFunctionType(core.String, []),
-      _fromCharCodeApply: dart.definiteFunctionType(core.String, [ListOfint()]),
-      stringFromCodePoints: dart.definiteFunctionType(core.String, [JSArrayOfint()]),
-      stringFromCharCodes: dart.definiteFunctionType(core.String, [JSArrayOfint()]),
-      stringFromNativeUint8List: dart.definiteFunctionType(core.String, [_native_typed_data.NativeUint8List, core.int, core.int]),
-      stringFromCharCode: dart.definiteFunctionType(core.String, [core.int]),
-      stringConcatUnchecked: dart.definiteFunctionType(core.String, [core.String, core.String]),
-      flattenString: dart.definiteFunctionType(core.String, [core.String]),
-      getTimeZoneName: dart.definiteFunctionType(core.String, [core.DateTime]),
-      getTimeZoneOffsetInMinutes: dart.definiteFunctionType(core.int, [core.DateTime]),
-      valueFromDecomposedDate: dart.definiteFunctionType(core.num, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.bool]),
-      patchUpY2K: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      lazyAsJsDate: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getYear: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getMonth: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getDay: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getHours: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getMinutes: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getSeconds: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getMilliseconds: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      getWeekday: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
-      valueFromDateString: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      getProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      setProperty: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      extractStackTrace: dart.definiteFunctionType(core.StackTrace, [core.Error])
-    }),
-    names: ['initializeStatics', 'objectHashCode', '_parseIntError', 'parseInt', '_parseDoubleError', 'parseDouble', 'objectTypeName', 'objectToString', 'dateNow', 'initTicker', 'currentUri', '_fromCharCodeApply', 'stringFromCodePoints', 'stringFromCharCodes', 'stringFromNativeUint8List', 'stringFromCharCode', 'stringConcatUnchecked', 'flattenString', 'getTimeZoneName', 'getTimeZoneOffsetInMinutes', 'valueFromDecomposedDate', 'patchUpY2K', 'lazyAsJsDate', 'getYear', 'getMonth', 'getDay', 'getHours', 'getMinutes', 'getSeconds', 'getMilliseconds', 'getWeekday', 'valueFromDateString', 'getProperty', 'setProperty', 'extractStackTrace']
-  });
-  _js_helper.Primitives.mirrorFunctionCacheName = '$cachedFunction';
-  _js_helper.Primitives.mirrorInvokeCacheName = '$cachedInvocation';
-  _js_helper.Primitives.DOLLAR_CHAR_VALUE = 36;
-  _js_helper.Primitives.timerFrequency = null;
-  _js_helper.Primitives.timerTicks = null;
-  _js_helper.diagnoseIndexError = function(indexable, index) {
-    if (!(typeof index == 'number')) return new core.ArgumentError.value(index, 'index');
-    let length = core.int._check(dart.dload(indexable, 'length'));
-    if (dart.test(dart.dsend(index, '<', 0)) || dart.test(dart.dsend(index, '>=', length))) {
-      return core.RangeError.index(core.int._check(index), indexable, 'index', null, length);
-    }
-    return new core.RangeError.value(core.num._check(index), 'index');
-  };
-  dart.lazyFn(_js_helper.diagnoseIndexError, () => dynamicAnddynamicToError());
-  _js_helper.diagnoseRangeError = function(start, end, length) {
-    if (!(typeof start == 'number')) {
-      return new core.ArgumentError.value(start, 'start');
-    }
-    if (dart.test(dart.dsend(start, '<', 0)) || dart.test(dart.dsend(start, '>', length))) {
-      return new core.RangeError.range(core.num._check(start), 0, core.int._check(length), 'start');
-    }
-    if (end != null) {
-      if (!(typeof end == 'number')) {
-        return new core.ArgumentError.value(end, 'end');
-      }
-      if (dart.test(dart.dsend(end, '<', start)) || dart.test(dart.dsend(end, '>', length))) {
-        return new core.RangeError.range(core.num._check(end), core.int._check(start), core.int._check(length), 'end');
-      }
-    }
-    return new core.ArgumentError.value(end, "end");
-  };
-  dart.lazyFn(_js_helper.diagnoseRangeError, () => dynamicAnddynamicAnddynamicToError());
-  _js_helper.stringLastIndexOfUnchecked = function(receiver, element, start) {
-    return receiver.lastIndexOf(element, start);
-  };
-  dart.fn(_js_helper.stringLastIndexOfUnchecked, dynamicAnddynamicAnddynamicTodynamic());
-  _js_helper.argumentErrorValue = function(object) {
-    return new core.ArgumentError.value(object);
-  };
-  dart.lazyFn(_js_helper.argumentErrorValue, () => dynamicToArgumentError());
-  _js_helper.checkNull = function(object) {
-    if (object == null) dart.throw(_js_helper.argumentErrorValue(object));
-    return object;
-  };
-  dart.fn(_js_helper.checkNull, dynamicTodynamic$());
-  _js_helper.checkNum = function(value) {
-    if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
-    return value;
-  };
-  dart.fn(_js_helper.checkNum, dynamicTodynamic$());
-  _js_helper.checkInt = function(value) {
-    if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
-    return value;
-  };
-  dart.fn(_js_helper.checkInt, dynamicTodynamic$());
-  _js_helper.checkBool = function(value) {
-    if (!(typeof value == 'boolean')) dart.throw(_js_helper.argumentErrorValue(value));
-    return value;
-  };
-  dart.fn(_js_helper.checkBool, dynamicTodynamic$());
-  _js_helper.checkString = function(value) {
-    if (!(typeof value == 'string')) dart.throw(_js_helper.argumentErrorValue(value));
-    return value;
-  };
-  dart.fn(_js_helper.checkString, dynamicTodynamic$());
-  _js_helper.throwRuntimeError = function(message) {
-    dart.throw(new _js_helper.RuntimeError(message));
-  };
-  dart.fn(_js_helper.throwRuntimeError, dynamicTodynamic$());
-  _js_helper.throwAbstractClassInstantiationError = function(className) {
-    dart.throw(new core.AbstractClassInstantiationError(core.String._check(className)));
-  };
-  dart.fn(_js_helper.throwAbstractClassInstantiationError, dynamicTodynamic$());
-  _js_helper.throwConcurrentModificationError = function(collection) {
-    dart.throw(new core.ConcurrentModificationError(collection));
-  };
-  dart.fn(_js_helper.throwConcurrentModificationError, dynamicTodynamic$());
-  const _message = Symbol('_message');
-  const _method = Symbol('_method');
-  core.Error = class Error extends core.Object {
-    new() {
-    }
-    static safeToString(object) {
-      if (typeof object == 'number' || typeof object == 'boolean' || null == object) {
-        return dart.toString(object);
-      }
-      if (typeof object == 'string') {
-        return core.Error._stringToSafeString(object);
-      }
-      return core.Error._objectToString(object);
-    }
-    static _stringToSafeString(string) {
-      return _js_helper.jsonEncodeNative(string);
-    }
-    static _objectToString(object) {
-      return _js_helper.Primitives.objectToString(object);
-    }
-    get stackTrace() {
-      return _js_helper.Primitives.extractStackTrace(this);
-    }
-  };
-  dart.setSignature(core.Error, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Error, [])}),
-    getters: () => ({stackTrace: dart.definiteFunctionType(core.StackTrace, [])}),
-    statics: () => ({
-      safeToString: dart.definiteFunctionType(core.String, [core.Object]),
-      _stringToSafeString: dart.definiteFunctionType(core.String, [core.String]),
-      _objectToString: dart.definiteFunctionType(core.String, [core.Object])
-    }),
-    names: ['safeToString', '_stringToSafeString', '_objectToString']
-  });
-  _js_helper.NullError = class NullError extends core.Error {
-    new(message, match) {
-      this[_message] = message;
-      this[_method] = core.String._check(match == null ? null : match.method);
-      super.new();
-    }
-    toString() {
-      if (this[_method] == null) return dart.str`NullError: ${this[_message]}`;
-      return dart.str`NullError: method not found: '${this[_method]}' on null`;
-    }
-  };
-  _js_helper.NullError[dart.implements] = () => [core.NoSuchMethodError];
-  dart.setSignature(_js_helper.NullError, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.NullError, [core.String, dart.dynamic])}),
-    fields: () => ({
-      [_message]: core.String,
-      [_method]: core.String
-    })
-  });
-  const _receiver = Symbol('_receiver');
-  _js_helper.JsNoSuchMethodError = class JsNoSuchMethodError extends core.Error {
-    new(message, match) {
-      this[_message] = message;
-      this[_method] = core.String._check(match == null ? null : match.method);
-      this[_receiver] = core.String._check(match == null ? null : match.receiver);
-      super.new();
-    }
-    toString() {
-      if (this[_method] == null) return dart.str`NoSuchMethodError: ${this[_message]}`;
-      if (this[_receiver] == null) {
-        return dart.str`NoSuchMethodError: method not found: '${this[_method]}' (${this[_message]})`;
-      }
-      return "NoSuchMethodError: " + dart.str`method not found: '${this[_method]}' on '${this[_receiver]}' (${this[_message]})`;
-    }
-  };
-  _js_helper.JsNoSuchMethodError[dart.implements] = () => [core.NoSuchMethodError];
-  dart.setSignature(_js_helper.JsNoSuchMethodError, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.JsNoSuchMethodError, [core.String, dart.dynamic])}),
-    fields: () => ({
-      [_message]: core.String,
-      [_method]: core.String,
-      [_receiver]: core.String
-    })
-  });
-  _js_helper.UnknownJsTypeError = class UnknownJsTypeError extends core.Error {
-    new(message) {
-      this[_message] = message;
-      super.new();
-    }
-    toString() {
-      return dart.test(this[_message][dartx.isEmpty]) ? 'Error' : dart.str`Error: ${this[_message]}`;
-    }
-  };
-  dart.setSignature(_js_helper.UnknownJsTypeError, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.UnknownJsTypeError, [core.String])}),
-    fields: () => ({[_message]: core.String})
-  });
-  _js_helper.getTraceFromException = function(exception) {
-    return new _js_helper._StackTrace(exception);
-  };
-  dart.lazyFn(_js_helper.getTraceFromException, () => dynamicToStackTrace());
-  const _exception = Symbol('_exception');
-  const _trace = Symbol('_trace');
-  _js_helper._StackTrace = class _StackTrace extends core.Object {
-    new(exception) {
-      this[_exception] = exception;
-      this[_trace] = null;
-    }
-    toString() {
-      if (this[_trace] != null) return this[_trace];
-      let trace = null;
-      if (this[_exception] !== null && typeof this[_exception] === "object") {
-        trace = this[_exception].stack;
-      }
-      return this[_trace] = trace == null ? '' : trace;
-    }
-  };
-  _js_helper._StackTrace[dart.implements] = () => [core.StackTrace];
-  dart.setSignature(_js_helper._StackTrace, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._StackTrace, [dart.dynamic])}),
-    fields: () => ({
-      [_exception]: dart.dynamic,
-      [_trace]: core.String
-    })
-  });
-  _js_helper.objectHashCode = function(object) {
-    if (object == null || typeof object != 'object') {
-      return dart.hashCode(object);
-    } else {
-      return _js_helper.Primitives.objectHashCode(object);
-    }
-  };
-  dart.fn(_js_helper.objectHashCode, dynamicToint());
-  _js_helper.fillLiteralMap = function(keyValuePairs, result) {
-    let index = 0;
-    let length = _js_helper.getLength(keyValuePairs);
-    while (index < dart.notNull(length)) {
-      let key = _js_helper.getIndex(keyValuePairs, index++);
-      let value = _js_helper.getIndex(keyValuePairs, index++);
-      result[dartx._set](key, value);
-    }
-    return result;
-  };
-  dart.lazyFn(_js_helper.fillLiteralMap, () => dynamicAndMapTodynamic());
-  _js_helper.jsHasOwnProperty = function(jsObject, property) {
-    return jsObject.hasOwnProperty(property);
-  };
-  dart.lazyFn(_js_helper.jsHasOwnProperty, () => dynamicAndStringTobool());
-  _js_helper.jsPropertyAccess = function(jsObject, property) {
-    return jsObject[property];
-  };
-  dart.lazyFn(_js_helper.jsPropertyAccess, () => dynamicAndStringTodynamic());
-  _js_helper.getFallThroughError = function() {
-    return new _js_helper.FallThroughErrorImplementation();
-  };
-  dart.fn(_js_helper.getFallThroughError, VoidTodynamic$());
-  _js_helper.Creates = class Creates extends core.Object {
-    new(types) {
-      this.types = types;
-    }
-  };
-  dart.setSignature(_js_helper.Creates, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.Creates, [core.String])}),
-    fields: () => ({types: core.String})
-  });
-  _js_helper.Returns = class Returns extends core.Object {
-    new(types) {
-      this.types = types;
-    }
-  };
-  dart.setSignature(_js_helper.Returns, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.Returns, [core.String])}),
-    fields: () => ({types: core.String})
-  });
-  _js_helper.JSName = class JSName extends core.Object {
-    new(name) {
-      this.name = name;
-    }
-  };
-  dart.setSignature(_js_helper.JSName, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.JSName, [core.String])}),
-    fields: () => ({name: core.String})
-  });
-  _js_helper.JavaScriptIndexingBehavior = class JavaScriptIndexingBehavior extends core.Object {};
-  _js_helper.TypeErrorImplementation = class TypeErrorImplementation extends core.Error {
-    new(value, actualType, expectedType) {
-      this.message = dart.str`Type '${actualType}' is not a subtype ` + dart.str`of type '${expectedType}'`;
-      super.new();
-    }
-    fromMessage(message) {
-      this.message = message;
-      super.new();
-    }
-    toString() {
-      return this.message;
-    }
-  };
-  dart.defineNamedConstructor(_js_helper.TypeErrorImplementation, 'fromMessage');
-  _js_helper.TypeErrorImplementation[dart.implements] = () => [core.TypeError];
-  dart.setSignature(_js_helper.TypeErrorImplementation, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_js_helper.TypeErrorImplementation, [core.Object, core.Object, core.Object]),
-      fromMessage: dart.definiteFunctionType(_js_helper.TypeErrorImplementation, [core.String])
-    }),
-    fields: () => ({message: core.String})
-  });
-  _js_helper.CastErrorImplementation = class CastErrorImplementation extends core.Error {
-    new(value, actualType, expectedType) {
-      this.message = dart.str`CastError: Casting value of type '${actualType}' to` + dart.str` incompatible type '${expectedType}'`;
-      super.new();
-    }
-    toString() {
-      return this.message;
-    }
-  };
-  _js_helper.CastErrorImplementation[dart.implements] = () => [core.CastError];
-  dart.setSignature(_js_helper.CastErrorImplementation, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.CastErrorImplementation, [core.Object, core.Object, core.Object])}),
-    fields: () => ({message: core.String})
-  });
-  _js_helper.StrongModeTypeError = class StrongModeTypeError extends core.Error {
-    new(value, actualType, expectedType) {
-      this.message = dart.str`Type '${actualType}' is not a subtype ` + dart.str`of type '${expectedType}' in strong mode`;
-      super.new();
-    }
-    toString() {
-      return this.message;
-    }
-  };
-  _js_helper.StrongModeTypeError[dart.implements] = () => [core.TypeError, core.StrongModeError];
-  dart.setSignature(_js_helper.StrongModeTypeError, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.StrongModeTypeError, [core.Object, core.Object, core.Object])}),
-    fields: () => ({message: core.String})
-  });
-  _js_helper.StrongModeCastError = class StrongModeCastError extends core.Error {
-    new(value, actualType, expectedType) {
-      this.message = dart.str`CastError: Casting value of type '${actualType}' to` + dart.str` type '${expectedType}' which is incompatible in strong mode`;
-      super.new();
-    }
-    toString() {
-      return this.message;
-    }
-  };
-  _js_helper.StrongModeCastError[dart.implements] = () => [core.CastError, core.StrongModeError];
-  dart.setSignature(_js_helper.StrongModeCastError, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.StrongModeCastError, [core.Object, core.Object, core.Object])}),
-    fields: () => ({message: core.String})
-  });
-  _js_helper.StrongModeErrorImplementation = class StrongModeErrorImplementation extends core.Error {
-    new(message) {
-      this.message = message;
-      super.new();
-    }
-    toString() {
-      return this.message;
-    }
-  };
-  _js_helper.StrongModeErrorImplementation[dart.implements] = () => [core.StrongModeError];
-  dart.setSignature(_js_helper.StrongModeErrorImplementation, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.StrongModeErrorImplementation, [core.String])}),
-    fields: () => ({message: core.String})
-  });
-  core.FallThroughError = class FallThroughError extends core.Error {
-    new() {
-      super.new();
-    }
-  };
-  dart.setSignature(core.FallThroughError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.FallThroughError, [])})
-  });
-  _js_helper.FallThroughErrorImplementation = class FallThroughErrorImplementation extends core.FallThroughError {
-    new() {
-      super.new();
-    }
-    toString() {
-      return "Switch case fall-through.";
-    }
-  };
-  dart.setSignature(_js_helper.FallThroughErrorImplementation, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.FallThroughErrorImplementation, [])})
-  });
-  _js_helper.RuntimeError = class RuntimeError extends core.Error {
-    new(message) {
-      this.message = message;
-      super.new();
-    }
-    toString() {
-      return dart.str`RuntimeError: ${this.message}`;
-    }
-  };
-  dart.setSignature(_js_helper.RuntimeError, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.RuntimeError, [dart.dynamic])}),
-    fields: () => ({message: dart.dynamic})
-  });
-  core.AssertionError = class AssertionError extends core.Error {
-    new() {
-      super.new();
-    }
-    toString() {
-      return "Assertion failed";
-    }
-  };
-  dart.setSignature(core.AssertionError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.AssertionError, [])})
-  });
-  _js_helper.AssertionErrorWithMessage = class AssertionErrorWithMessage extends core.AssertionError {
-    new(message) {
-      this[_message] = message;
-      super.new();
-    }
-    toString() {
-      return dart.str`Assertion failed: ${this[_message]}`;
-    }
-  };
-  dart.setSignature(_js_helper.AssertionErrorWithMessage, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.AssertionErrorWithMessage, [core.Object])}),
-    fields: () => ({[_message]: core.Object})
-  });
-  _js_helper.random64 = function() {
-    let int32a = Math.random() * 0x100000000 >>> 0;
-    let int32b = Math.random() * 0x100000000 >>> 0;
-    return int32a + int32b * 4294967296;
-  };
-  dart.fn(_js_helper.random64, VoidToint());
-  _js_helper.jsonEncodeNative = function(string) {
-    return JSON.stringify(string);
-  };
-  dart.lazyFn(_js_helper.jsonEncodeNative, () => StringToString$());
-  const _jsIterator = Symbol('_jsIterator');
-  const _current$0 = Symbol('_current');
-  _js_helper.SyncIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class SyncIterator extends core.Object {
-      new(jsIterator) {
-        this[_jsIterator] = jsIterator;
-        this[_current$0] = null;
-      }
-      get current() {
-        return this[_current$0];
-      }
-      moveNext() {
-        let ret = this[_jsIterator].next();
-        this[_current$0] = ret.value;
-        return !ret.done;
-      }
-    }
-    dart.addTypeTests(SyncIterator);
-    SyncIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(SyncIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_js_helper.SyncIterator$(E), [dart.dynamic])}),
-      fields: () => ({
-        [_jsIterator]: dart.dynamic,
-        [_current$0]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return SyncIterator;
-  });
-  _js_helper.SyncIterator = SyncIterator();
-  const _generator = Symbol('_generator');
-  const _args = Symbol('_args');
-  collection.IterableBase$ = dart.generic(E => {
-    class IterableBase extends core.Iterable$(E) {
-      new() {
-        super.new();
-      }
-      static iterableToShortString(iterable, leftDelimiter, rightDelimiter) {
-        if (leftDelimiter === void 0) leftDelimiter = '(';
-        if (rightDelimiter === void 0) rightDelimiter = ')';
-        if (dart.test(collection._isToStringVisiting(iterable))) {
-          if (leftDelimiter == "(" && rightDelimiter == ")") {
-            return "(...)";
-          }
-          return dart.str`${leftDelimiter}...${rightDelimiter}`;
-        }
-        let parts = [];
-        collection._toStringVisiting[dartx.add](iterable);
-        try {
-          collection._iterablePartsToStrings(iterable, parts);
-        } finally {
-          dart.assert(core.identical(collection._toStringVisiting[dartx.last], iterable));
-          collection._toStringVisiting[dartx.removeLast]();
-        }
-        return (() => {
-          let _ = new core.StringBuffer(leftDelimiter);
-          _.writeAll(parts, ", ");
-          _.write(rightDelimiter);
-          return _;
-        })().toString();
-      }
-      static iterableToFullString(iterable, leftDelimiter, rightDelimiter) {
-        if (leftDelimiter === void 0) leftDelimiter = '(';
-        if (rightDelimiter === void 0) rightDelimiter = ')';
-        if (dart.test(collection._isToStringVisiting(iterable))) {
-          return dart.str`${leftDelimiter}...${rightDelimiter}`;
-        }
-        let buffer = new core.StringBuffer(leftDelimiter);
-        collection._toStringVisiting[dartx.add](iterable);
-        try {
-          buffer.writeAll(iterable, ", ");
-        } finally {
-          dart.assert(core.identical(collection._toStringVisiting[dartx.last], iterable));
-          collection._toStringVisiting[dartx.removeLast]();
-        }
-        buffer.write(rightDelimiter);
-        return buffer.toString();
-      }
-    }
-    dart.setSignature(IterableBase, {
-      constructors: () => ({new: dart.definiteFunctionType(collection.IterableBase$(E), [])}),
-      statics: () => ({
-        iterableToShortString: dart.definiteFunctionType(core.String, [core.Iterable], [core.String, core.String]),
-        iterableToFullString: dart.definiteFunctionType(core.String, [core.Iterable], [core.String, core.String])
-      }),
-      names: ['iterableToShortString', 'iterableToFullString']
-    });
-    return IterableBase;
-  });
-  collection.IterableBase = IterableBase();
-  _js_helper.SyncIterable$ = dart.generic(E => {
-    let SyncIteratorOfE = () => (SyncIteratorOfE = dart.constFn(_js_helper.SyncIterator$(E)))();
-    class SyncIterable extends collection.IterableBase$(E) {
-      new(generator, args) {
-        this[_generator] = generator;
-        this[_args] = args;
-        super.new();
-      }
-      [_jsIterator]() {
-        return this[_generator](...this[_args]);
-      }
-      get iterator() {
-        return new (SyncIteratorOfE())(this[_jsIterator]());
-      }
-    }
-    dart.setSignature(SyncIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_js_helper.SyncIterable$(E), [dart.dynamic, dart.dynamic])}),
-      fields: () => ({
-        [_generator]: dart.dynamic,
-        [_args]: dart.dynamic
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({[_jsIterator]: dart.definiteFunctionType(dart.dynamic, [])})
-    });
-    dart.defineExtensionMembers(SyncIterable, ['iterator']);
-    return SyncIterable;
-  });
-  _js_helper.SyncIterable = SyncIterable();
-  _js_helper.BooleanConversionAssertionError = class BooleanConversionAssertionError extends core.AssertionError {
-    new() {
-      super.new();
-    }
-    toString() {
-      return 'Failed assertion: boolean expression must not be null';
-    }
-  };
-  _js_helper.NoThrows = class NoThrows extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_js_helper.NoThrows, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.NoThrows, [])})
-  });
-  _js_helper.NoInline = class NoInline extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_js_helper.NoInline, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.NoInline, [])})
-  });
-  _js_helper.Native = class Native extends core.Object {
-    new(name) {
-      this.name = name;
-    }
-  };
-  dart.setSignature(_js_helper.Native, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.Native, [core.String])}),
-    fields: () => ({name: core.String})
-  });
-  _js_helper.JsPeerInterface = class JsPeerInterface extends core.Object {
-    new(opts) {
-      let name = opts && 'name' in opts ? opts.name : null;
-      this.name = name;
-    }
-  };
-  dart.setSignature(_js_helper.JsPeerInterface, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.JsPeerInterface, [], {name: core.String})}),
-    fields: () => ({name: core.String})
-  });
-  _js_helper.SupportJsExtensionMethods = class SupportJsExtensionMethods extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_js_helper.SupportJsExtensionMethods, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.SupportJsExtensionMethods, [])})
-  });
-  const _length$0 = Symbol('_length');
-  const _strings = Symbol('_strings');
-  const _nums = Symbol('_nums');
-  const _rest = Symbol('_rest');
-  const _first = Symbol('_first');
-  const _last = Symbol('_last');
-  const _modifications = Symbol('_modifications');
-  const _containsTableEntry = Symbol('_containsTableEntry');
-  const _getBucket = Symbol('_getBucket');
-  const _getTableCell = Symbol('_getTableCell');
-  const _newHashTable = Symbol('_newHashTable');
-  const _addHashTableEntry = Symbol('_addHashTableEntry');
-  const _getTableBucket = Symbol('_getTableBucket');
-  const _newLinkedCell = Symbol('_newLinkedCell');
-  const _setTableEntry = Symbol('_setTableEntry');
-  const _removeHashTableEntry = Symbol('_removeHashTableEntry');
-  const _unlinkCell = Symbol('_unlinkCell');
-  const _modified = Symbol('_modified');
-  const _next = Symbol('_next');
-  const _deleteTableEntry = Symbol('_deleteTableEntry');
-  const _previous = Symbol('_previous');
-  _js_helper.JsLinkedHashMap$ = dart.generic((K, V) => {
-    let JsLinkedHashMapOfK$V = () => (JsLinkedHashMapOfK$V = dart.constFn(_js_helper.JsLinkedHashMap$(K, V)))();
-    let LinkedHashMapKeyIterableOfK = () => (LinkedHashMapKeyIterableOfK = dart.constFn(_js_helper.LinkedHashMapKeyIterable$(K)))();
-    let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
-    let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
-    let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
-    let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
-    class JsLinkedHashMap extends core.Object {
-      new() {
-        this[_length$0] = 0;
-        this[_strings] = null;
-        this[_nums] = null;
-        this[_rest] = null;
-        this[_first] = null;
-        this[_last] = null;
-        this[_modifications] = 0;
-      }
-      static es6() {
-        return new (JsLinkedHashMapOfK$V())();
-      }
-      get length() {
-        return this[_length$0];
-      }
-      get isEmpty() {
-        return this[_length$0] == 0;
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      get keys() {
-        return new (LinkedHashMapKeyIterableOfK())(this);
-      }
-      get values() {
-        return MappedIterableOfK$V().new(this.keys, dart.fn(each => this._get(each), KToV()));
-      }
-      containsKey(key) {
-        if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
-          let strings = this[_strings];
-          if (strings == null) return false;
-          return this[_containsTableEntry](strings, key);
-        } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
-          let nums = this[_nums];
-          if (nums == null) return false;
-          return this[_containsTableEntry](nums, key);
+      let subscription = null;
+      subscription = this.listen(dart.fn(element => {
+        if (seenFirst) {
+          async._runUserCode(dart.fn(() => combine(value, element), VoidToT()), dart.fn(newValue => {
+            value = newValue;
+          }, TToNull()), async._cancelAndErrorClosure(subscription, result));
         } else {
-          return this.internalContainsKey(key);
+          value = element;
+          seenFirst = true;
         }
-      }
-      internalContainsKey(key) {
-        let rest = this[_rest];
-        if (rest == null) return false;
-        let bucket = this[_getBucket](rest, key);
-        return dart.notNull(this.internalFindBucketIndex(bucket, key)) >= 0;
-      }
-      containsValue(value) {
-        return this.keys[dartx.any](dart.fn(each => dart.equals(this._get(each), value), KTobool()));
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        other[dartx.forEach](dart.fn((key, value) => {
-          this._set(key, value);
-        }, KAndVToNull()));
-      }
-      _get(key) {
-        if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
-          let strings = this[_strings];
-          if (strings == null) return null;
-          let cell = this[_getTableCell](strings, key);
-          return cell == null ? null : cell.hashMapCellValue;
-        } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
-          let nums = this[_nums];
-          if (nums == null) return null;
-          let cell = this[_getTableCell](nums, key);
-          return cell == null ? null : cell.hashMapCellValue;
-        } else {
-          return this.internalGet(key);
-        }
-      }
-      internalGet(key) {
-        let rest = this[_rest];
-        if (rest == null) return null;
-        let bucket = this[_getBucket](rest, key);
-        let index = this.internalFindBucketIndex(bucket, key);
-        if (dart.notNull(index) < 0) return null;
-        let cell = bucket[index];
-        return cell.hashMapCellValue;
-      }
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
-          let strings = this[_strings];
-          if (strings == null) this[_strings] = strings = this[_newHashTable]();
-          this[_addHashTableEntry](strings, key, value);
-        } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
-          let nums = this[_nums];
-          if (nums == null) this[_nums] = nums = this[_newHashTable]();
-          this[_addHashTableEntry](nums, key, value);
-        } else {
-          this.internalSet(key, value);
-        }
-        return value;
-      }
-      internalSet(key, value) {
-        K._check(key);
-        V._check(value);
-        let rest = this[_rest];
-        if (rest == null) this[_rest] = rest = this[_newHashTable]();
-        let hash = this.internalComputeHashCode(key);
-        let bucket = this[_getTableBucket](rest, hash);
-        if (bucket == null) {
-          let cell = this[_newLinkedCell](key, value);
-          this[_setTableEntry](rest, hash, [cell]);
-        } else {
-          let index = this.internalFindBucketIndex(bucket, key);
-          if (dart.notNull(index) >= 0) {
-            let cell = bucket[index];
-            cell.hashMapCellValue = value;
-          } else {
-            let cell = this[_newLinkedCell](key, value);
-            bucket.push(cell);
-          }
-        }
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        if (dart.test(this.containsKey(key))) return this._get(key);
-        let value = ifAbsent();
-        this._set(key, value);
-        return value;
-      }
-      remove(key) {
-        if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
-          return this[_removeHashTableEntry](this[_strings], key);
-        } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
-          return this[_removeHashTableEntry](this[_nums], key);
-        } else {
-          return this.internalRemove(key);
-        }
-      }
-      internalRemove(key) {
-        let rest = this[_rest];
-        if (rest == null) return null;
-        let bucket = this[_getBucket](rest, key);
-        let index = this.internalFindBucketIndex(bucket, key);
-        if (dart.notNull(index) < 0) return null;
-        let cell = bucket.splice(index, 1)[0];
-        this[_unlinkCell](cell);
-        return cell.hashMapCellValue;
-      }
-      clear() {
-        if (dart.notNull(this[_length$0]) > 0) {
-          this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last] = null;
-          this[_length$0] = 0;
-          this[_modified]();
-        }
-      }
-      forEach(action) {
-        let cell = this[_first];
-        let modifications = this[_modifications];
-        while (cell != null) {
-          action(cell.hashMapCellKey, cell.hashMapCellValue);
-          if (modifications != this[_modifications]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-          cell = cell[_next];
-        }
-      }
-      [_addHashTableEntry](table, key, value) {
-        K._check(key);
-        V._check(value);
-        let cell = this[_getTableCell](table, key);
-        if (cell == null) {
-          this[_setTableEntry](table, key, this[_newLinkedCell](key, value));
-        } else {
-          cell.hashMapCellValue = value;
-        }
-      }
-      [_removeHashTableEntry](table, key) {
-        if (table == null) return null;
-        let cell = this[_getTableCell](table, key);
-        if (cell == null) return null;
-        this[_unlinkCell](cell);
-        this[_deleteTableEntry](table, key);
-        return cell.hashMapCellValue;
-      }
-      [_modified]() {
-        this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863;
-      }
-      [_newLinkedCell](key, value) {
-        K._check(key);
-        V._check(value);
-        let cell = new (LinkedHashMapCellOfK$V())(key, value);
-        if (this[_first] == null) {
-          this[_first] = this[_last] = cell;
-        } else {
-          let last = this[_last];
-          cell[_previous] = last;
-          this[_last] = last[_next] = cell;
-        }
-        this[_length$0] = dart.notNull(this[_length$0]) + 1;
-        this[_modified]();
-        return cell;
-      }
-      [_unlinkCell](cell) {
-        LinkedHashMapCellOfK$V()._check(cell);
-        let previous = cell[_previous];
-        let next = cell[_next];
-        if (previous == null) {
-          dart.assert(dart.equals(cell, this[_first]));
-          this[_first] = next;
-        } else {
-          previous[_next] = next;
-        }
-        if (next == null) {
-          dart.assert(dart.equals(cell, this[_last]));
-          this[_last] = previous;
-        } else {
-          next[_previous] = previous;
-        }
-        this[_length$0] = dart.notNull(this[_length$0]) - 1;
-        this[_modified]();
-      }
-      static _isStringKey(key) {
-        return typeof key == 'string';
-      }
-      static _isNumericKey(key) {
-        return typeof key == 'number' && (key & 0x3ffffff) === key;
-      }
-      internalComputeHashCode(key) {
-        return dart.hashCode(key) & 0x3ffffff;
-      }
-      [_getBucket](table, key) {
-        let hash = this.internalComputeHashCode(key);
-        return this[_getTableBucket](table, hash);
-      }
-      internalFindBucketIndex(bucket, key) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          let cell = bucket[i];
-          if (dart.equals(cell.hashMapCellKey, key)) return i;
-        }
-        return -1;
-      }
-      toString() {
-        return collection.Maps.mapToString(this);
-      }
-      [_getTableCell](table, key) {
-        return table[key];
-      }
-      [_getTableBucket](table, key) {
-        return table[key];
-      }
-      [_setTableEntry](table, key, value) {
-        dart.assert(value != null);
-        table[key] = value;
-      }
-      [_deleteTableEntry](table, key) {
-        delete table[key];
-      }
-      [_containsTableEntry](table, key) {
-        let cell = this[_getTableCell](table, key);
-        return cell != null;
-      }
-      [_newHashTable]() {
-        let table = Object.create(null);
-        let temporaryKey = '<non-identifier-key>';
-        this[_setTableEntry](table, temporaryKey, table);
-        this[_deleteTableEntry](table, temporaryKey);
-        return table;
-      }
-    }
-    dart.addTypeTests(JsLinkedHashMap);
-    JsLinkedHashMap[dart.implements] = () => [LinkedHashMapOfK$V(), InternalMapOfK$V()];
-    dart.setSignature(JsLinkedHashMap, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(_js_helper.JsLinkedHashMap$(K, V), []),
-        es6: dart.definiteFunctionType(_js_helper.JsLinkedHashMap$(K, V), [])
-      }),
-      fields: () => ({
-        [_length$0]: core.int,
-        [_strings]: dart.dynamic,
-        [_nums]: dart.dynamic,
-        [_rest]: dart.dynamic,
-        [_first]: LinkedHashMapCellOfK$V(),
-        [_last]: LinkedHashMapCellOfK$V(),
-        [_modifications]: core.int
-      }),
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        keys: dart.definiteFunctionType(core.Iterable$(K), []),
-        values: dart.definiteFunctionType(core.Iterable$(V), [])
-      }),
-      methods: () => ({
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        internalContainsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
-        _get: dart.definiteFunctionType(V, [core.Object]),
-        internalGet: dart.definiteFunctionType(V, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [K, V]),
-        internalSet: dart.definiteFunctionType(dart.void, [K, V]),
-        putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
-        remove: dart.definiteFunctionType(V, [core.Object]),
-        internalRemove: dart.definiteFunctionType(V, [core.Object]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
-        [_addHashTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, K, V]),
-        [_removeHashTableEntry]: dart.definiteFunctionType(V, [dart.dynamic, core.Object]),
-        [_modified]: dart.definiteFunctionType(dart.void, []),
-        [_newLinkedCell]: dart.definiteFunctionType(_js_helper.LinkedHashMapCell$(K, V), [K, V]),
-        [_unlinkCell]: dart.definiteFunctionType(dart.void, [LinkedHashMapCellOfK$V()]),
-        internalComputeHashCode: dart.definiteFunctionType(core.int, [dart.dynamic]),
-        [_getBucket]: dart.definiteFunctionType(core.List$(_js_helper.LinkedHashMapCell$(K, V)), [dart.dynamic, dart.dynamic]),
-        internalFindBucketIndex: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic]),
-        [_getTableCell]: dart.definiteFunctionType(_js_helper.LinkedHashMapCell$(K, V), [dart.dynamic, dart.dynamic]),
-        [_getTableBucket]: dart.definiteFunctionType(core.List$(_js_helper.LinkedHashMapCell$(K, V)), [dart.dynamic, dart.dynamic]),
-        [_setTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-        [_deleteTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-        [_containsTableEntry]: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-        [_newHashTable]: dart.definiteFunctionType(dart.dynamic, [])
-      }),
-      statics: () => ({
-        _isStringKey: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _isNumericKey: dart.definiteFunctionType(core.bool, [dart.dynamic])
-      }),
-      names: ['_isStringKey', '_isNumericKey']
-    });
-    dart.defineExtensionMembers(JsLinkedHashMap, [
-      'containsKey',
-      'containsValue',
-      'addAll',
-      '_get',
-      '_set',
-      'putIfAbsent',
-      'remove',
-      'clear',
-      'forEach',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'keys',
-      'values'
-    ]);
-    return JsLinkedHashMap;
-  });
-  _js_helper.JsLinkedHashMap = JsLinkedHashMap();
-  _js_helper.Es6LinkedHashMap$ = dart.generic((K, V) => {
-    class Es6LinkedHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
-      new() {
-        super.new();
-      }
-      [_getTableCell](table, key) {
-        return table.get(key);
-      }
-      [_getTableBucket](table, key) {
-        return table.get(key);
-      }
-      [_setTableEntry](table, key, value) {
-        table.set(key, value);
-      }
-      [_deleteTableEntry](table, key) {
-        table.delete(key);
-      }
-      [_containsTableEntry](table, key) {
-        return table.has(key);
-      }
-      [_newHashTable]() {
-        return new Map();
-      }
-    }
-    return Es6LinkedHashMap;
-  });
-  _js_helper.Es6LinkedHashMap = Es6LinkedHashMap();
-  _js_helper.LinkedHashMapCell$ = dart.generic((K, V) => {
-    let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
-    class LinkedHashMapCell extends core.Object {
-      new(hashMapCellKey, hashMapCellValue) {
-        this.hashMapCellKey = hashMapCellKey;
-        this.hashMapCellValue = hashMapCellValue;
-        this[_next] = null;
-        this[_previous] = null;
-      }
-    }
-    dart.addTypeTests(LinkedHashMapCell);
-    dart.setSignature(LinkedHashMapCell, {
-      constructors: () => ({new: dart.definiteFunctionType(_js_helper.LinkedHashMapCell$(K, V), [K, V])}),
-      fields: () => ({
-        hashMapCellKey: K,
-        hashMapCellValue: V,
-        [_next]: LinkedHashMapCellOfK$V(),
-        [_previous]: LinkedHashMapCellOfK$V()
-      })
-    });
-    return LinkedHashMapCell;
-  });
-  _js_helper.LinkedHashMapCell = LinkedHashMapCell();
-  const _map = Symbol('_map');
-  _js_helper.LinkedHashMapKeyIterable$ = dart.generic(E => {
-    let LinkedHashMapKeyIteratorOfE = () => (LinkedHashMapKeyIteratorOfE = dart.constFn(_js_helper.LinkedHashMapKeyIterator$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let JsLinkedHashMapOfE$dynamic = () => (JsLinkedHashMapOfE$dynamic = dart.constFn(_js_helper.JsLinkedHashMap$(E, dart.dynamic)))();
-    class LinkedHashMapKeyIterable extends core.Iterable$(E) {
-      new(map) {
-        this[_map] = map;
-        super.new();
-      }
-      get length() {
-        return this[_map][_length$0];
-      }
-      get isEmpty() {
-        return this[_map][_length$0] == 0;
-      }
-      get iterator() {
-        return new (LinkedHashMapKeyIteratorOfE())(this[_map], this[_map][_modifications]);
-      }
-      contains(element) {
-        return this[_map].containsKey(element);
-      }
-      forEach(f) {
-        let cell = this[_map][_first];
-        let modifications = this[_map][_modifications];
-        while (cell != null) {
-          f(cell.hashMapCellKey);
-          if (modifications != this[_map][_modifications]) {
-            dart.throw(new core.ConcurrentModificationError(this[_map]));
-          }
-          cell = cell[_next];
-        }
-      }
-    }
-    LinkedHashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(LinkedHashMapKeyIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(_js_helper.LinkedHashMapKeyIterable$(E), [JsLinkedHashMapOfE$dynamic()])}),
-      fields: () => ({[_map]: JsLinkedHashMapOfE$dynamic()}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(LinkedHashMapKeyIterable, [
-      'contains',
-      'forEach',
-      'length',
-      'isEmpty',
-      'iterator'
-    ]);
-    return LinkedHashMapKeyIterable;
-  });
-  _js_helper.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable();
-  const _cell = Symbol('_cell');
-  _js_helper.LinkedHashMapKeyIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let JsLinkedHashMapOfE$dynamic = () => (JsLinkedHashMapOfE$dynamic = dart.constFn(_js_helper.JsLinkedHashMap$(E, dart.dynamic)))();
-    let LinkedHashMapCellOfE$dynamic = () => (LinkedHashMapCellOfE$dynamic = dart.constFn(_js_helper.LinkedHashMapCell$(E, dart.dynamic)))();
-    class LinkedHashMapKeyIterator extends core.Object {
-      new(map, modifications) {
-        this[_map] = map;
-        this[_modifications] = modifications;
-        this[_cell] = null;
-        this[_current$0] = null;
-        this[_cell] = this[_map][_first];
-      }
-      get current() {
-        return this[_current$0];
-      }
-      moveNext() {
-        if (this[_modifications] != this[_map][_modifications]) {
-          dart.throw(new core.ConcurrentModificationError(this[_map]));
-        } else if (this[_cell] == null) {
-          this[_current$0] = null;
-          return false;
-        } else {
-          this[_current$0] = this[_cell].hashMapCellKey;
-          this[_cell] = this[_cell][_next];
-          return true;
-        }
-      }
-    }
-    dart.addTypeTests(LinkedHashMapKeyIterator);
-    LinkedHashMapKeyIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(LinkedHashMapKeyIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(_js_helper.LinkedHashMapKeyIterator$(E), [JsLinkedHashMapOfE$dynamic(), core.int])}),
-      fields: () => ({
-        [_map]: JsLinkedHashMapOfE$dynamic(),
-        [_modifications]: core.int,
-        [_cell]: LinkedHashMapCellOfE$dynamic(),
-        [_current$0]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return LinkedHashMapKeyIterator;
-  });
-  _js_helper.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator();
-  _js_helper.defineProperty = function(obj, property, value) {
-    Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true});
-  };
-  dart.lazyFn(_js_helper.defineProperty, () => dynamicAndStringAnddynamicTovoid());
-  _js_helper.convertDartClosureToJS = function(F) {
-    return (closure, arity) => {
-      return closure;
-    };
-  };
-  dart.fn(_js_helper.convertDartClosureToJS, FAndintToF());
-  _js_helper.setNativeSubclassDispatchRecord = function(proto, interceptor) {
-  };
-  dart.fn(_js_helper.setNativeSubclassDispatchRecord, dynamicAnddynamicTodynamic$());
-  _js_helper.findDispatchTagForInterceptorClass = function(interceptorClassConstructor) {
-  };
-  dart.fn(_js_helper.findDispatchTagForInterceptorClass, dynamicTodynamic$());
-  _js_helper.makeLeafDispatchRecord = function(interceptor) {
-  };
-  dart.fn(_js_helper.makeLeafDispatchRecord, dynamicTodynamic$());
-  const _nativeRegExp = Symbol('_nativeRegExp');
-  _js_helper.regExpGetNative = function(regexp) {
-    return regexp[_nativeRegExp];
-  };
-  dart.lazyFn(_js_helper.regExpGetNative, () => JSSyntaxRegExpTodynamic());
-  const _nativeGlobalVersion = Symbol('_nativeGlobalVersion');
-  _js_helper.regExpGetGlobalNative = function(regexp) {
-    let nativeRegexp = regexp[_nativeGlobalVersion];
-    nativeRegexp.lastIndex = 0;
-    return nativeRegexp;
-  };
-  dart.lazyFn(_js_helper.regExpGetGlobalNative, () => JSSyntaxRegExpTodynamic());
-  const _nativeAnchoredVersion = Symbol('_nativeAnchoredVersion');
-  _js_helper.regExpCaptureCount = function(regexp) {
-    let nativeAnchoredRegExp = regexp[_nativeAnchoredVersion];
-    let match = nativeAnchoredRegExp.exec('');
-    return core.int._check(dart.dsend(dart.dload(match, 'length'), '-', 2));
-  };
-  dart.lazyFn(_js_helper.regExpCaptureCount, () => JSSyntaxRegExpToint());
-  const _nativeGlobalRegExp = Symbol('_nativeGlobalRegExp');
-  const _nativeAnchoredRegExp = Symbol('_nativeAnchoredRegExp');
-  const _isMultiLine = Symbol('_isMultiLine');
-  const _isCaseSensitive = Symbol('_isCaseSensitive');
-  const _execGlobal = Symbol('_execGlobal');
-  const _execAnchored = Symbol('_execAnchored');
-  _js_helper.JSSyntaxRegExp = class JSSyntaxRegExp extends core.Object {
-    toString() {
-      return dart.str`RegExp/${this.pattern}/`;
-    }
-    new(source, opts) {
-      let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
-      let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
-      this.pattern = source;
-      this[_nativeRegExp] = _js_helper.JSSyntaxRegExp.makeNative(source, multiLine, caseSensitive, false);
-      this[_nativeGlobalRegExp] = null;
-      this[_nativeAnchoredRegExp] = null;
-    }
-    get [_nativeGlobalVersion]() {
-      if (this[_nativeGlobalRegExp] != null) return this[_nativeGlobalRegExp];
-      return this[_nativeGlobalRegExp] = _js_helper.JSSyntaxRegExp.makeNative(this.pattern, this[_isMultiLine], this[_isCaseSensitive], true);
-    }
-    get [_nativeAnchoredVersion]() {
-      if (this[_nativeAnchoredRegExp] != null) return this[_nativeAnchoredRegExp];
-      return this[_nativeAnchoredRegExp] = _js_helper.JSSyntaxRegExp.makeNative(dart.str`${this.pattern}|()`, this[_isMultiLine], this[_isCaseSensitive], true);
-    }
-    get [_isMultiLine]() {
-      return this[_nativeRegExp].multiline;
-    }
-    get [_isCaseSensitive]() {
-      return !this[_nativeRegExp].ignoreCase;
-    }
-    static makeNative(source, multiLine, caseSensitive, global) {
-      _js_helper.checkString(source);
-      let m = dart.test(multiLine) ? 'm' : '';
-      let i = dart.test(caseSensitive) ? '' : 'i';
-      let g = dart.test(global) ? 'g' : '';
-      let regexp = (function() {
-        try {
-          return new RegExp(source, m + i + g);
-        } catch (e) {
-          return e;
-        }
-
-      })();
-      if (regexp instanceof RegExp) return regexp;
-      let errorMessage = String(regexp);
-      dart.throw(new core.FormatException(dart.str`Illegal RegExp pattern: ${source}, ${errorMessage}`));
-    }
-    firstMatch(string) {
-      let m = this[_nativeRegExp].exec(_js_helper.checkString(string));
-      if (m == null) return null;
-      return new _js_helper._MatchImplementation(this, m);
-    }
-    hasMatch(string) {
-      return this[_nativeRegExp].test(_js_helper.checkString(string));
-    }
-    stringMatch(string) {
-      let match = this.firstMatch(string);
-      if (match != null) return match.group(0);
-      return null;
-    }
-    allMatches(string, start) {
-      if (start === void 0) start = 0;
-      _js_helper.checkString(string);
-      _js_helper.checkInt(start);
-      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[dartx.length])) {
-        dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
-      }
-      return new _js_helper._AllMatchesIterable(this, string, start);
-    }
-    [_execGlobal](string, start) {
-      let regexp = this[_nativeGlobalVersion];
-      regexp.lastIndex = start;
-      let match = regexp.exec(string);
-      if (match == null) return null;
-      return new _js_helper._MatchImplementation(this, ListOfString()._check(match));
-    }
-    [_execAnchored](string, start) {
-      let regexp = this[_nativeAnchoredVersion];
-      regexp.lastIndex = start;
-      let match = regexp.exec(string);
-      if (match == null) return null;
-      if (match[dartx._get](dart.notNull(match[dartx.length]) - 1) != null) return null;
-      match[dartx.length] = dart.notNull(match[dartx.length]) - 1;
-      return new _js_helper._MatchImplementation(this, ListOfString()._check(match));
-    }
-    matchAsPrefix(string, start) {
-      if (start === void 0) start = 0;
-      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[dartx.length])) {
-        dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
-      }
-      return this[_execAnchored](string, start);
-    }
-    get isMultiLine() {
-      return this[_isMultiLine];
-    }
-    get isCaseSensitive() {
-      return this[_isCaseSensitive];
-    }
-  };
-  _js_helper.JSSyntaxRegExp[dart.implements] = () => [core.RegExp];
-  dart.setSignature(_js_helper.JSSyntaxRegExp, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.JSSyntaxRegExp, [core.String], {multiLine: core.bool, caseSensitive: core.bool})}),
-    fields: () => ({
-      pattern: core.String,
-      [_nativeRegExp]: dart.dynamic,
-      [_nativeGlobalRegExp]: dart.dynamic,
-      [_nativeAnchoredRegExp]: dart.dynamic
-    }),
-    getters: () => ({
-      [_nativeGlobalVersion]: dart.definiteFunctionType(dart.dynamic, []),
-      [_nativeAnchoredVersion]: dart.definiteFunctionType(dart.dynamic, []),
-      [_isMultiLine]: dart.definiteFunctionType(core.bool, []),
-      [_isCaseSensitive]: dart.definiteFunctionType(core.bool, []),
-      isMultiLine: dart.definiteFunctionType(core.bool, []),
-      isCaseSensitive: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      firstMatch: dart.definiteFunctionType(core.Match, [core.String]),
-      hasMatch: dart.definiteFunctionType(core.bool, [core.String]),
-      stringMatch: dart.definiteFunctionType(core.String, [core.String]),
-      allMatches: dart.definiteFunctionType(core.Iterable$(core.Match), [core.String], [core.int]),
-      [_execGlobal]: dart.definiteFunctionType(core.Match, [core.String, core.int]),
-      [_execAnchored]: dart.definiteFunctionType(core.Match, [core.String, core.int]),
-      matchAsPrefix: dart.definiteFunctionType(core.Match, [core.String], [core.int])
-    }),
-    statics: () => ({makeNative: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool, core.bool, core.bool])}),
-    names: ['makeNative']
-  });
-  dart.defineExtensionMembers(_js_helper.JSSyntaxRegExp, ['allMatches', 'matchAsPrefix']);
-  const _match = Symbol('_match');
-  _js_helper._MatchImplementation = class _MatchImplementation extends core.Object {
-    new(pattern, match) {
-      this.pattern = pattern;
-      this[_match] = match;
-      dart.assert(typeof this[_match].input == 'string');
-      dart.assert(typeof this[_match].index == 'number');
-    }
-    get input() {
-      return this[_match].input;
-    }
-    get start() {
-      return this[_match].index;
-    }
-    get end() {
-      return dart.notNull(this.start) + dart.notNull(this[_match][dartx._get](0)[dartx.length]);
-    }
-    group(index) {
-      return this[_match][dartx._get](index);
-    }
-    _get(index) {
-      return this.group(index);
-    }
-    get groupCount() {
-      return dart.notNull(this[_match][dartx.length]) - 1;
-    }
-    groups(groups) {
-      let out = JSArrayOfString().of([]);
-      for (let i of groups) {
-        out[dartx.add](this.group(i));
-      }
-      return out;
-    }
-  };
-  _js_helper._MatchImplementation[dart.implements] = () => [core.Match];
-  dart.setSignature(_js_helper._MatchImplementation, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._MatchImplementation, [core.Pattern, ListOfString()])}),
-    fields: () => ({
-      pattern: core.Pattern,
-      [_match]: ListOfString()
-    }),
-    getters: () => ({
-      input: dart.definiteFunctionType(core.String, []),
-      start: dart.definiteFunctionType(core.int, []),
-      end: dart.definiteFunctionType(core.int, []),
-      groupCount: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      group: dart.definiteFunctionType(core.String, [core.int]),
-      _get: dart.definiteFunctionType(core.String, [core.int]),
-      groups: dart.definiteFunctionType(core.List$(core.String), [ListOfint()])
-    })
-  });
-  const _re = Symbol('_re');
-  const _string$ = Symbol('_string');
-  const _start$ = Symbol('_start');
-  core.Match = class Match extends core.Object {};
-  _js_helper._AllMatchesIterable = class _AllMatchesIterable extends collection.IterableBase$(core.Match) {
-    new(re, string, start) {
-      this[_re] = re;
-      this[_string$] = string;
-      this[_start$] = start;
-      super.new();
-    }
-    get iterator() {
-      return new _js_helper._AllMatchesIterator(this[_re], this[_string$], this[_start$]);
-    }
-  };
-  dart.addSimpleTypeTests(_js_helper._AllMatchesIterable);
-  dart.setSignature(_js_helper._AllMatchesIterable, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._AllMatchesIterable, [_js_helper.JSSyntaxRegExp, core.String, core.int])}),
-    fields: () => ({
-      [_re]: _js_helper.JSSyntaxRegExp,
-      [_string$]: core.String,
-      [_start$]: core.int
-    }),
-    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(core.Match), [])})
-  });
-  dart.defineExtensionMembers(_js_helper._AllMatchesIterable, ['iterator']);
-  const _regExp = Symbol('_regExp');
-  const _nextIndex = Symbol('_nextIndex');
-  _js_helper._AllMatchesIterator = class _AllMatchesIterator extends core.Object {
-    new(regExp, string, nextIndex) {
-      this[_regExp] = regExp;
-      this[_string$] = string;
-      this[_nextIndex] = nextIndex;
-      this[_current$0] = null;
-    }
-    get current() {
-      return this[_current$0];
-    }
-    moveNext() {
-      if (this[_string$] == null) return false;
-      if (dart.notNull(this[_nextIndex]) <= dart.notNull(this[_string$][dartx.length])) {
-        let match = this[_regExp][_execGlobal](this[_string$], this[_nextIndex]);
-        if (match != null) {
-          this[_current$0] = match;
-          let nextIndex = match.end;
-          if (match.start == nextIndex) {
-            nextIndex = dart.notNull(nextIndex) + 1;
-          }
-          this[_nextIndex] = nextIndex;
-          return true;
-        }
-      }
-      this[_current$0] = null;
-      this[_string$] = null;
-      return false;
-    }
-  };
-  _js_helper._AllMatchesIterator[dart.implements] = () => [IteratorOfMatch()];
-  dart.setSignature(_js_helper._AllMatchesIterator, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._AllMatchesIterator, [_js_helper.JSSyntaxRegExp, core.String, core.int])}),
-    fields: () => ({
-      [_regExp]: _js_helper.JSSyntaxRegExp,
-      [_string$]: core.String,
-      [_nextIndex]: core.int,
-      [_current$0]: core.Match
-    }),
-    getters: () => ({current: dart.definiteFunctionType(core.Match, [])}),
-    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-  });
-  _js_helper.firstMatchAfter = function(regExp, string, start) {
-    return regExp[_execGlobal](string, start);
-  };
-  dart.lazyFn(_js_helper.firstMatchAfter, () => JSSyntaxRegExpAndStringAndintToMatch());
-  _js_helper.stringIndexOfStringUnchecked = function(receiver, other, startIndex) {
-    return receiver.indexOf(other, startIndex);
-  };
-  dart.fn(_js_helper.stringIndexOfStringUnchecked, dynamicAnddynamicAnddynamicToint());
-  _js_helper.substring1Unchecked = function(receiver, startIndex) {
-    return receiver.substring(startIndex);
-  };
-  dart.lazyFn(_js_helper.substring1Unchecked, () => dynamicAnddynamicToString());
-  _js_helper.substring2Unchecked = function(receiver, startIndex, endIndex) {
-    return receiver.substring(startIndex, endIndex);
-  };
-  dart.lazyFn(_js_helper.substring2Unchecked, () => dynamicAnddynamicAnddynamicToString());
-  _js_helper.stringContainsStringUnchecked = function(receiver, other, startIndex) {
-    return dart.notNull(_js_helper.stringIndexOfStringUnchecked(receiver, other, startIndex)) >= 0;
-  };
-  dart.lazyFn(_js_helper.stringContainsStringUnchecked, () => dynamicAnddynamicAnddynamicTobool());
-  _js_helper.StringMatch = class StringMatch extends core.Object {
-    new(start, input, pattern) {
-      this.start = start;
-      this.input = input;
-      this.pattern = pattern;
-    }
-    get end() {
-      return dart.notNull(this.start) + dart.notNull(this.pattern[dartx.length]);
-    }
-    _get(g) {
-      return this.group(g);
-    }
-    get groupCount() {
-      return 0;
-    }
-    group(group_) {
-      if (group_ != 0) {
-        dart.throw(new core.RangeError.value(group_));
-      }
-      return this.pattern;
-    }
-    groups(groups_) {
-      let result = ListOfString().new();
-      for (let g of groups_) {
-        result[dartx.add](this.group(g));
-      }
-      return result;
-    }
-  };
-  _js_helper.StringMatch[dart.implements] = () => [core.Match];
-  dart.setSignature(_js_helper.StringMatch, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper.StringMatch, [core.int, core.String, core.String])}),
-    fields: () => ({
-      start: core.int,
-      input: core.String,
-      pattern: core.String
-    }),
-    getters: () => ({
-      end: dart.definiteFunctionType(core.int, []),
-      groupCount: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      _get: dart.definiteFunctionType(core.String, [core.int]),
-      group: dart.definiteFunctionType(core.String, [core.int]),
-      groups: dart.definiteFunctionType(core.List$(core.String), [ListOfint()])
-    })
-  });
-  _js_helper.allMatchesInStringUnchecked = function(pattern, string, startIndex) {
-    return new _js_helper._StringAllMatchesIterable(string, pattern, startIndex);
-  };
-  dart.lazyFn(_js_helper.allMatchesInStringUnchecked, () => StringAndStringAndintToIterableOfMatch());
-  const _input = Symbol('_input');
-  const _pattern = Symbol('_pattern');
-  const _index$0 = Symbol('_index');
-  _js_helper._StringAllMatchesIterable = class _StringAllMatchesIterable extends core.Iterable$(core.Match) {
-    new(input, pattern, index) {
-      this[_input] = input;
-      this[_pattern] = pattern;
-      this[_index$0] = index;
-      super.new();
-    }
-    get iterator() {
-      return new _js_helper._StringAllMatchesIterator(this[_input], this[_pattern], this[_index$0]);
-    }
-    get first() {
-      let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index$0]);
-      if (dart.notNull(index) >= 0) {
-        return new _js_helper.StringMatch(index, this[_input], this[_pattern]);
-      }
-      dart.throw(_internal.IterableElementError.noElement());
-    }
-  };
-  dart.addSimpleTypeTests(_js_helper._StringAllMatchesIterable);
-  dart.setSignature(_js_helper._StringAllMatchesIterable, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._StringAllMatchesIterable, [core.String, core.String, core.int])}),
-    fields: () => ({
-      [_input]: core.String,
-      [_pattern]: core.String,
-      [_index$0]: core.int
-    }),
-    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(core.Match), [])})
-  });
-  dart.defineExtensionMembers(_js_helper._StringAllMatchesIterable, ['iterator', 'first']);
-  _js_helper._StringAllMatchesIterator = class _StringAllMatchesIterator extends core.Object {
-    new(input, pattern, index) {
-      this[_input] = input;
-      this[_pattern] = pattern;
-      this[_index$0] = index;
-      this[_current$0] = null;
-    }
-    moveNext() {
-      if (dart.notNull(this[_index$0]) + dart.notNull(this[_pattern][dartx.length]) > dart.notNull(this[_input][dartx.length])) {
-        this[_current$0] = null;
-        return false;
-      }
-      let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index$0]);
-      if (dart.notNull(index) < 0) {
-        this[_index$0] = dart.notNull(this[_input][dartx.length]) + 1;
-        this[_current$0] = null;
-        return false;
-      }
-      let end = dart.notNull(index) + dart.notNull(this[_pattern][dartx.length]);
-      this[_current$0] = new _js_helper.StringMatch(index, this[_input], this[_pattern]);
-      if (end == this[_index$0]) end++;
-      this[_index$0] = end;
-      return true;
-    }
-    get current() {
-      return this[_current$0];
-    }
-  };
-  _js_helper._StringAllMatchesIterator[dart.implements] = () => [IteratorOfMatch()];
-  dart.setSignature(_js_helper._StringAllMatchesIterator, {
-    constructors: () => ({new: dart.definiteFunctionType(_js_helper._StringAllMatchesIterator, [core.String, core.String, core.int])}),
-    fields: () => ({
-      [_input]: core.String,
-      [_pattern]: core.String,
-      [_index$0]: core.int,
-      [_current$0]: core.Match
-    }),
-    getters: () => ({current: dart.definiteFunctionType(core.Match, [])}),
-    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-  });
-  _js_helper.stringContainsUnchecked = function(receiver, other, startIndex) {
-    if (typeof other == 'string') {
-      return _js_helper.stringContainsStringUnchecked(receiver, other, startIndex);
-    } else if (_js_helper.JSSyntaxRegExp.is(other)) {
-      return other.hasMatch(receiver[dartx.substring](startIndex));
-    } else {
-      let substr = receiver[dartx.substring](startIndex);
-      return core.bool._check(dart.dload(dart.dsend(other, 'allMatches', substr), 'isNotEmpty'));
-    }
-  };
-  dart.lazyFn(_js_helper.stringContainsUnchecked, () => StringAnddynamicAndintTobool());
-  _js_helper.stringReplaceJS = function(receiver, replacer, replacement) {
-    replacement = replacement.replace(/\$/g, "$$$$");
-    return receiver.replace(replacer, replacement);
-  };
-  dart.lazyFn(_js_helper.stringReplaceJS, () => dynamicAnddynamicAnddynamicToString());
-  _js_helper.stringReplaceFirstRE = function(receiver, regexp, replacement, startIndex) {
-    let match = regexp[_execGlobal](receiver, startIndex);
-    if (match == null) return receiver;
-    let start = match.start;
-    let end = match.end;
-    return _js_helper.stringReplaceRangeUnchecked(receiver, start, end, replacement);
-  };
-  dart.lazyFn(_js_helper.stringReplaceFirstRE, () => StringAndJSSyntaxRegExpAndString__ToString());
-  _js_helper.quoteStringForRegExp = function(string) {
-    return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
-  };
-  dart.lazyFn(_js_helper.quoteStringForRegExp, () => dynamicToString());
-  _js_helper.stringReplaceAllUnchecked = function(receiver, pattern, replacement) {
-    _js_helper.checkString(replacement);
-    if (typeof pattern == 'string') {
-      if (pattern == "") {
-        if (receiver == "") {
-          return replacement;
-        } else {
-          let result = new core.StringBuffer();
-          let length = receiver[dartx.length];
-          result.write(replacement);
-          for (let i = 0; i < dart.notNull(length); i++) {
-            result.write(receiver[dartx._get](i));
-            result.write(replacement);
-          }
-          return result.toString();
-        }
-      } else {
-        let quoted = _js_helper.quoteStringForRegExp(pattern);
-        let replacer = new RegExp(quoted, 'g');
-        return _js_helper.stringReplaceJS(receiver, replacer, replacement);
-      }
-    } else if (_js_helper.JSSyntaxRegExp.is(pattern)) {
-      let re = _js_helper.regExpGetGlobalNative(pattern);
-      return _js_helper.stringReplaceJS(receiver, re, replacement);
-    } else {
-      _js_helper.checkNull(pattern);
-      dart.throw("String.replaceAll(Pattern) UNIMPLEMENTED");
-    }
-  };
-  dart.lazyFn(_js_helper.stringReplaceAllUnchecked, () => StringAndPatternAndStringToString());
-  _js_helper._matchString = function(match) {
-    return match._get(0);
-  };
-  dart.lazyFn(_js_helper._matchString, () => MatchToString$());
-  _js_helper._stringIdentity = function(string) {
-    return string;
-  };
-  dart.lazyFn(_js_helper._stringIdentity, () => StringToString$());
-  _js_helper.stringReplaceAllFuncUnchecked = function(receiver, pattern, onMatch, onNonMatch) {
-    if (onMatch == null) onMatch = _js_helper._matchString;
-    if (onNonMatch == null) onNonMatch = _js_helper._stringIdentity;
-    if (typeof pattern == 'string') {
-      return _js_helper.stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch);
-    }
-    if (!core.Pattern.is(pattern)) {
-      dart.throw(new core.ArgumentError.value(pattern, 'pattern', 'is not a Pattern'));
-    }
-    let buffer = new core.StringBuffer();
-    let startIndex = 0;
-    for (let match of pattern[dartx.allMatches](receiver)) {
-      buffer.write(onNonMatch(receiver[dartx.substring](startIndex, match.start)));
-      buffer.write(onMatch(match));
-      startIndex = match.end;
-    }
-    buffer.write(onNonMatch(receiver[dartx.substring](startIndex)));
-    return buffer.toString();
-  };
-  dart.lazyFn(_js_helper.stringReplaceAllFuncUnchecked, () => StringAndPatternAndFn__ToString());
-  _js_helper.stringReplaceAllEmptyFuncUnchecked = function(receiver, onMatch, onNonMatch) {
-    let buffer = new core.StringBuffer();
-    let length = receiver[dartx.length];
-    let i = 0;
-    buffer.write(onNonMatch(""));
-    while (i < dart.notNull(length)) {
-      buffer.write(onMatch(new _js_helper.StringMatch(i, receiver, "")));
-      let code = receiver[dartx.codeUnitAt](i);
-      if ((dart.notNull(code) & ~1023) == 55296 && dart.notNull(length) > i + 1) {
-        code = receiver[dartx.codeUnitAt](i + 1);
-        if ((dart.notNull(code) & ~1023) == 56320) {
-          buffer.write(onNonMatch(receiver[dartx.substring](i, i + 2)));
-          i = i + 2;
-          continue;
-        }
-      }
-      buffer.write(onNonMatch(receiver[dartx._get](i)));
-      i++;
-    }
-    buffer.write(onMatch(new _js_helper.StringMatch(i, receiver, "")));
-    buffer.write(onNonMatch(""));
-    return buffer.toString();
-  };
-  dart.lazyFn(_js_helper.stringReplaceAllEmptyFuncUnchecked, () => StringAndFnAndFnToString());
-  _js_helper.stringReplaceAllStringFuncUnchecked = function(receiver, pattern, onMatch, onNonMatch) {
-    let patternLength = pattern[dartx.length];
-    if (patternLength == 0) {
-      return _js_helper.stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch);
-    }
-    let length = receiver[dartx.length];
-    let buffer = new core.StringBuffer();
-    let startIndex = 0;
-    while (startIndex < dart.notNull(length)) {
-      let position = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
-      if (position == -1) {
-        break;
-      }
-      buffer.write(onNonMatch(receiver[dartx.substring](startIndex, position)));
-      buffer.write(onMatch(new _js_helper.StringMatch(position, receiver, pattern)));
-      startIndex = dart.notNull(position) + dart.notNull(patternLength);
-    }
-    buffer.write(onNonMatch(receiver[dartx.substring](startIndex)));
-    return buffer.toString();
-  };
-  dart.lazyFn(_js_helper.stringReplaceAllStringFuncUnchecked, () => StringAndStringAndFn__ToString());
-  _js_helper.stringReplaceFirstUnchecked = function(receiver, pattern, replacement, startIndex) {
-    if (typeof pattern == 'string') {
-      let index = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
-      if (dart.notNull(index) < 0) return receiver;
-      let end = dart.notNull(index) + dart.notNull(pattern[dartx.length]);
-      return _js_helper.stringReplaceRangeUnchecked(receiver, index, end, replacement);
-    }
-    if (_js_helper.JSSyntaxRegExp.is(pattern)) {
-      return startIndex == 0 ? _js_helper.stringReplaceJS(receiver, _js_helper.regExpGetNative(pattern), replacement) : _js_helper.stringReplaceFirstRE(receiver, pattern, replacement, startIndex);
-    }
-    _js_helper.checkNull(pattern);
-    let matches = pattern[dartx.allMatches](receiver, startIndex)[dartx.iterator];
-    if (!dart.test(matches.moveNext())) return receiver;
-    let match = matches.current;
-    return receiver[dartx.replaceRange](match.start, match.end, replacement);
-  };
-  dart.lazyFn(_js_helper.stringReplaceFirstUnchecked, () => StringAndPatternAndString__ToString());
-  _js_helper.stringReplaceFirstMappedUnchecked = function(receiver, pattern, replace, startIndex) {
-    let matches = pattern[dartx.allMatches](receiver, startIndex)[dartx.iterator];
-    if (!dart.test(matches.moveNext())) return receiver;
-    let match = matches.current;
-    let replacement = dart.str`${replace(match)}`;
-    return receiver[dartx.replaceRange](match.start, match.end, replacement);
-  };
-  dart.lazyFn(_js_helper.stringReplaceFirstMappedUnchecked, () => StringAndPatternAndFn__ToString$());
-  _js_helper.stringJoinUnchecked = function(array, separator) {
-    return array.join(separator);
-  };
-  dart.lazyFn(_js_helper.stringJoinUnchecked, () => dynamicAnddynamicToString());
-  _js_helper.stringReplaceRangeUnchecked = function(receiver, start, end, replacement) {
-    let prefix = receiver.substring(0, start);
-    let suffix = receiver.substring(end);
-    return dart.str`${prefix}${replacement}${suffix}`;
-  };
-  dart.lazyFn(_js_helper.stringReplaceRangeUnchecked, () => StringAndintAndint__ToString());
-  _js_helper.getRuntimeType = function(object) {
-    return dart.getReifiedType(object);
-  };
-  dart.fn(_js_helper.getRuntimeType, dynamicToType());
-  _js_helper.getIndex = function(array, index) {
-    dart.assert(_js_helper.isJsArray(array));
-    return array[index];
-  };
-  dart.fn(_js_helper.getIndex, dynamicAndintTodynamic());
-  _js_helper.getLength = function(array) {
-    dart.assert(_js_helper.isJsArray(array));
-    return array.length;
-  };
-  dart.fn(_js_helper.getLength, dynamicToint());
-  _js_helper.isJsArray = function(value) {
-    return _interceptors.JSArray.is(value);
-  };
-  dart.lazyFn(_js_helper.isJsArray, () => dynamicTobool$());
-  _js_mirrors.getName = function(symbol) {
-    return _internal.Symbol.getName(_internal.Symbol.as(symbol));
-  };
-  dart.lazyFn(_js_mirrors.getName, () => SymbolToString());
-  _js_mirrors.getSymbol = function(name, library) {
-    return dart.throw(new core.UnimplementedError("MirrorSystem.getSymbol unimplemented"));
-  };
-  dart.lazyFn(_js_mirrors.getSymbol, () => dynamicAnddynamicToSymbol());
-  dart.defineLazy(_js_mirrors, {
-    get currentJsMirrorSystem() {
-      return dart.throw(new core.UnimplementedError("MirrorSystem.currentJsMirrorSystem unimplemented"));
-    }
-  });
-  dart.defineLazy(_js_mirrors, {
-    get _typeMirror() {
-      return Symbol("_typeMirror");
-    }
-  });
-  _js_mirrors.reflect = function(reflectee) {
-    if (core.Function.is(reflectee)) {
-      return new _js_mirrors.JsClosureMirror._(reflectee);
-    } else {
-      return new _js_mirrors.JsInstanceMirror._(reflectee);
-    }
-  };
-  dart.lazyFn(_js_mirrors.reflect, () => dynamicToInstanceMirror());
-  _js_mirrors.reflectType = function(key) {
-    let unwrapped = _js_mirrors._unwrap(key);
-    let property = Object.getOwnPropertyDescriptor(unwrapped, _js_mirrors._typeMirror);
-    if (property != null) {
-      return property.value;
-    }
-    let mirror = new _js_mirrors.JsClassMirror._(key);
-    unwrapped[_js_mirrors._typeMirror] = mirror;
-    return mirror;
-  };
-  dart.lazyFn(_js_mirrors.reflectType, () => TypeToTypeMirror());
-  dart.defineLazy(_js_mirrors, {
-    get _dart() {
-      return dart;
-    }
-  });
-  _js_mirrors._dload = function(obj, name) {
-    return _js_mirrors._dart.dloadMirror(obj, name);
-  };
-  dart.lazyFn(_js_mirrors._dload, () => dynamicAndStringTodynamic());
-  _js_mirrors._dput = function(obj, name, val) {
-    _js_mirrors._dart.dputMirror(obj, name, val);
-  };
-  dart.lazyFn(_js_mirrors._dput, () => dynamicAndStringAnddynamicTovoid());
-  _js_mirrors._dcall = function(obj, args) {
-    return _js_mirrors._dart.dcall(obj, ...args);
-  };
-  dart.lazyFn(_js_mirrors._dcall, () => dynamicAndListTodynamic());
-  _js_mirrors._dsend = function(obj, name, args) {
-    return _js_mirrors._dart.dsend(obj, name, ...args);
-  };
-  dart.lazyFn(_js_mirrors._dsend, () => dynamicAndStringAndListTodynamic());
-  _js_mirrors._getGenericClass = function(obj) {
-    return _js_mirrors._dart.getGenericClass(obj);
-  };
-  dart.fn(_js_mirrors._getGenericClass, dynamicTodynamic$());
-  _js_mirrors._getGenericArgs = function(obj) {
-    return _js_mirrors._dart.getGenericArgs(obj);
-  };
-  dart.fn(_js_mirrors._getGenericArgs, dynamicTodynamic$());
-  _js_mirrors._defaultConstructorType = function(type) {
-    return _js_mirrors._dart.definiteFunctionType(type, []);
-  };
-  dart.fn(_js_mirrors._defaultConstructorType, dynamicTodynamic$());
-  _js_mirrors._getMixins = function(type) {
-    return _js_mirrors._dart.getMixins(type, []);
-  };
-  dart.fn(_js_mirrors._getMixins, dynamicTodynamic$());
-  _js_mirrors._Lazy$ = dart.generic(T => {
-    const _Lazy = dart.typedef('_Lazy', () => dart.functionType(T, []));
-    return _Lazy;
-  });
-  _js_mirrors._Lazy = _Lazy();
-  _js_mirrors._getESSymbol = function(symbol) {
-    return _internal.Symbol.getNativeSymbol(_internal.Symbol.as(symbol));
-  };
-  dart.lazyFn(_js_mirrors._getESSymbol, () => SymbolTodynamic());
-  _js_mirrors._getMember = function(symbol) {
-    let privateSymbol = _js_mirrors._getESSymbol(symbol);
-    if (privateSymbol != null) {
-      return privateSymbol;
-    }
-    let name = _js_mirrors.getName(symbol);
-    switch (name) {
-      case '[]':
-      {
-        name = '_get';
-        break;
-      }
-      case '[]=':
-      {
-        name = '_set';
-        break;
-      }
-      case 'unary-':
-      {
-        name = '_negate';
-        break;
-      }
-      case 'constructor':
-      case 'prototype':
-      {
-        name = dart.str`_${name}`;
-        break;
-      }
-    }
-    return name;
-  };
-  dart.lazyFn(_js_mirrors._getMember, () => SymbolTodynamic());
-  _js_mirrors._getNameForESSymbol = function(member) {
-    dart.assert(typeof member == "symbol");
-    let str = dart.toString(member);
-    dart.assert(dart.test(str[dartx.startsWith]('Symbol(')) && dart.test(str[dartx.endsWith](')')));
-    return str[dartx.substring](7, dart.notNull(str[dartx.length]) - 1);
-  };
-  dart.lazyFn(_js_mirrors._getNameForESSymbol, () => dynamicToString());
-  _js_mirrors._getSymbolForESSymbol = function(member) {
-    let name = _js_mirrors._getNameForESSymbol(member);
-    return new _internal.Symbol.es6(name, member);
-  };
-  dart.lazyFn(_js_mirrors._getSymbolForESSymbol, () => dynamicToSymbol());
-  _js_mirrors._getSymbolForMember = function(member) {
-    if (typeof member == 'string') {
-      return core.Symbol.new(member);
-    } else {
-      let name = _js_mirrors._getNameForESSymbol(member);
-      return new _internal.Symbol.es6(name, member);
-    }
-  };
-  dart.lazyFn(_js_mirrors._getSymbolForMember, () => dynamicToSymbol());
-  _js_mirrors._toDartMap = function(data) {
-    if (data == null) return dart.map({}, core.Symbol, dart.dynamic);
-    let map = MapOfSymbol$dynamic().new();
-    let publicMembers = Object.getOwnPropertyNames(data);
-    for (let member of core.Iterable._check(publicMembers)) {
-      let symbol = core.Symbol.new(core.String._check(member));
-      map[dartx._set](symbol, data[member]);
-    }
-    let privateMembers = Object.getOwnPropertySymbols(data);
-    for (let member of core.Iterable._check(privateMembers)) {
-      let symbol = _js_mirrors._getSymbolForESSymbol(member);
-      map[dartx._set](symbol, data[member]);
-    }
-    return map;
-  };
-  dart.lazyFn(_js_mirrors._toDartMap, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getConstructors = function(obj) {
-    let sig = _js_mirrors._dart.getConstructorSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getConstructors, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getFields = function(obj) {
-    let sig = _js_mirrors._dart.getFieldSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getFields, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getMethods = function(obj) {
-    let sig = _js_mirrors._dart.getMethodSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getMethods, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getGetters = function(obj) {
-    let sig = _js_mirrors._dart.getGetterSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getGetters, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getSetters = function(obj) {
-    let sig = _js_mirrors._dart.getSetterSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getSetters, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getStaticFields = function(obj) {
-    let sig = _js_mirrors._dart.getStaticFieldSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getStaticFields, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getStatics = function(obj) {
-    let sig = _js_mirrors._dart.getStaticSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getStatics, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getStaticGetters = function(obj) {
-    let sig = _js_mirrors._dart.getStaticGetterSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getStaticGetters, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._getStaticSetters = function(obj) {
-    let sig = _js_mirrors._dart.getStaticSetterSig(obj);
-    return _js_mirrors._toDartMap(sig);
-  };
-  dart.lazyFn(_js_mirrors._getStaticSetters, () => dynamicToMapOfSymbol$dynamic());
-  _js_mirrors._unwrap = function(obj) {
-    return _js_mirrors._dart.unwrapType(obj);
-  };
-  dart.fn(_js_mirrors._unwrap, dynamicTodynamic$());
-  _js_mirrors._wrap = function(obj) {
-    return _js_mirrors._dart.wrapType(obj);
-  };
-  dart.fn(_js_mirrors._wrap, dynamicTodynamic$());
-  _js_mirrors._runtimeType = function(obj) {
-    return _js_mirrors._wrap(_js_mirrors._dart.getReifiedType(obj));
-  };
-  dart.fn(_js_mirrors._runtimeType, dynamicTodynamic$());
-  _js_mirrors._unimplemented = function(t, i) {
-    dart.throw(new core.UnimplementedError(dart.str`${t}.${_js_mirrors.getName(i.memberName)} unimplemented`));
-  };
-  dart.fn(_js_mirrors._unimplemented, TypeAndInvocationTodynamic());
-  _js_mirrors._toJsMap = function(map) {
-    let obj = {};
-    map[dartx.forEach](dart.fn((key, value) => {
-      obj[_js_mirrors.getName(key)] = value;
-    }, SymbolAnddynamicToNull()));
-    return obj;
-  };
-  dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
-  _js_mirrors.JsMirror = class JsMirror extends core.Object {
-    noSuchMethod(i) {
-      _js_mirrors._unimplemented(this.runtimeType, i);
-    }
-  };
-  _js_mirrors.JsMirror[dart.implements] = () => [mirrors.Mirror];
-  _js_mirrors.JsCombinatorMirror = class JsCombinatorMirror extends _js_mirrors.JsMirror {
-    get identifiers() {
-      return ListOfSymbol()._check(this.noSuchMethod(new dart.InvocationImpl('identifiers', [], {isGetter: true})));
-    }
-    get isShow() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isShow', [], {isGetter: true})));
-    }
-    get isHide() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isHide', [], {isGetter: true})));
-    }
-  };
-  _js_mirrors.JsCombinatorMirror[dart.implements] = () => [mirrors.CombinatorMirror];
-  _js_mirrors.JsDeclarationMirror = class JsDeclarationMirror extends _js_mirrors.JsMirror {
-    get simpleName() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('simpleName', [], {isGetter: true})));
-    }
-    get qualifiedName() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
-    }
-    get owner() {
-      return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
-    }
-    get isPrivate() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
-    }
-    get isTopLevel() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
-    }
-    get location() {
-      return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
-    }
-    get metadata() {
-      return ListOfInstanceMirror()._check(this.noSuchMethod(new dart.InvocationImpl('metadata', [], {isGetter: true})));
-    }
-  };
-  _js_mirrors.JsDeclarationMirror[dart.implements] = () => [mirrors.DeclarationMirror];
-  _js_mirrors.JsIsolateMirror = class JsIsolateMirror extends _js_mirrors.JsMirror {
-    get debugName() {
-      return core.String._check(this.noSuchMethod(new dart.InvocationImpl('debugName', [], {isGetter: true})));
-    }
-    get isCurrent() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isCurrent', [], {isGetter: true})));
-    }
-    get rootLibrary() {
-      return mirrors.LibraryMirror._check(this.noSuchMethod(new dart.InvocationImpl('rootLibrary', [], {isGetter: true})));
-    }
-  };
-  _js_mirrors.JsIsolateMirror[dart.implements] = () => [mirrors.IsolateMirror];
-  _js_mirrors.JsLibraryDependencyMirror = class JsLibraryDependencyMirror extends _js_mirrors.JsMirror {
-    get isImport() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isImport', [], {isGetter: true})));
-    }
-    get isExport() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isExport', [], {isGetter: true})));
-    }
-    get sourceLibrary() {
-      return mirrors.LibraryMirror._check(this.noSuchMethod(new dart.InvocationImpl('sourceLibrary', [], {isGetter: true})));
-    }
-    get targetLibrary() {
-      return mirrors.LibraryMirror._check(this.noSuchMethod(new dart.InvocationImpl('targetLibrary', [], {isGetter: true})));
-    }
-    get prefix() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('prefix', [], {isGetter: true})));
-    }
-    get combinators() {
-      return ListOfCombinatorMirror()._check(this.noSuchMethod(new dart.InvocationImpl('combinators', [], {isGetter: true})));
-    }
-    get location() {
-      return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
-    }
-    get metadata() {
-      return ListOfInstanceMirror()._check(this.noSuchMethod(new dart.InvocationImpl('metadata', [], {isGetter: true})));
-    }
-  };
-  _js_mirrors.JsLibraryDependencyMirror[dart.implements] = () => [mirrors.LibraryDependencyMirror];
-  _js_mirrors.JsObjectMirror = class JsObjectMirror extends _js_mirrors.JsMirror {
-    invoke(...args) {
-      return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('invoke', args, {isMethod: true})));
-    }
-    getField(...args) {
-      return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('getField', args, {isMethod: true})));
-    }
-    setField(...args) {
-      return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('setField', args, {isMethod: true})));
-    }
-  };
-  _js_mirrors.JsObjectMirror[dart.implements] = () => [mirrors.ObjectMirror];
-  const _getAccessor = Symbol('_getAccessor');
-  _js_mirrors.JsInstanceMirror = class JsInstanceMirror extends _js_mirrors.JsObjectMirror {
-    get hasReflectee() {
-      return true;
-    }
-    get type() {
-      if (this.reflectee == null) return mirrors.reflectClass(dart.wrapType(core.Null));
-      return mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._runtimeType(this.reflectee))));
-    }
-    _(reflectee) {
-      this.reflectee = reflectee;
-    }
-    ['=='](other) {
-      return _js_mirrors.JsInstanceMirror.is(other) && core.identical(this.reflectee, other.reflectee);
-    }
-    get hashCode() {
-      return (dart.notNull(core.identityHashCode(this.reflectee)) ^ 909522486) >>> 0;
-    }
-    [_getAccessor](reflectee, symbol, args, namedArgs) {
-      if (args === void 0) args = null;
-      if (namedArgs === void 0) namedArgs = null;
-      return _js_mirrors._getMember(symbol);
-    }
-    getField(symbol) {
-      let name = this[_getAccessor](this.reflectee, symbol);
-      let field = _js_mirrors._dload(this.reflectee, core.String._check(name));
-      return _js_mirrors.reflect(field);
-    }
-    setField(symbol, value) {
-      let name = this[_getAccessor](this.reflectee, symbol);
-      _js_mirrors._dput(this.reflectee, core.String._check(name), value);
-      return _js_mirrors.reflect(value);
-    }
-    invoke(symbol, args, namedArgs) {
-      if (namedArgs === void 0) namedArgs = null;
-      let name = this[_getAccessor](this.reflectee, symbol, args, namedArgs);
-      if (namedArgs != null) {
-        args = core.List.from(args);
-        args[dartx.add](_js_mirrors._toJsMap(namedArgs));
-      }
-      let result = _js_mirrors._dsend(this.reflectee, core.String._check(name), args);
-      return _js_mirrors.reflect(result);
-    }
-    toString() {
-      return dart.str`InstanceMirror on '${this.reflectee}'`;
-    }
-    delegate(...args) {
-      return this.noSuchMethod(new dart.InvocationImpl('delegate', args, {isMethod: true}));
-    }
-  };
-  dart.defineNamedConstructor(_js_mirrors.JsInstanceMirror, '_');
-  _js_mirrors.JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror];
-  dart.setSignature(_js_mirrors.JsInstanceMirror, {
-    constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsInstanceMirror, [dart.dynamic])}),
-    fields: () => ({reflectee: dart.dynamic}),
-    getters: () => ({
-      hasReflectee: dart.definiteFunctionType(core.bool, []),
-      type: dart.definiteFunctionType(mirrors.ClassMirror, [])
-    }),
-    methods: () => ({
-      '==': dart.definiteFunctionType(core.bool, [core.Object]),
-      [_getAccessor]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Symbol], [core.List, MapOfSymbol$dynamic()]),
-      getField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol]),
-      setField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.Object]),
-      invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])
-    })
-  });
-  _js_mirrors.JsClosureMirror = class JsClosureMirror extends _js_mirrors.JsInstanceMirror {
-    _(reflectee) {
-      super._(reflectee);
-    }
-    apply(args, namedArgs) {
-      if (namedArgs === void 0) namedArgs = null;
-      if (namedArgs != null) {
-        args = core.List.from(args);
-        args[dartx.add](_js_mirrors._toJsMap(namedArgs));
-      }
-      let result = _js_mirrors._dcall(this.reflectee, args);
-      return _js_mirrors.reflect(result);
-    }
-    delegate(...args) {
-      return this.noSuchMethod(new dart.InvocationImpl('delegate', args, {isMethod: true}));
-    }
-    get function() {
-      return mirrors.MethodMirror._check(this.noSuchMethod(new dart.InvocationImpl('function', [], {isGetter: true})));
-    }
-  };
-  dart.defineNamedConstructor(_js_mirrors.JsClosureMirror, '_');
-  _js_mirrors.JsClosureMirror[dart.implements] = () => [mirrors.ClosureMirror];
-  dart.setSignature(_js_mirrors.JsClosureMirror, {
-    constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsClosureMirror, [dart.dynamic])}),
-    methods: () => ({apply: dart.definiteFunctionType(mirrors.InstanceMirror, [core.List], [MapOfSymbol$dynamic()])})
-  });
-  const _metadata$ = Symbol('_metadata');
-  const _cls = Symbol('_cls');
-  let const$0;
-  const _declarations = Symbol('_declarations');
-  const _raw = Symbol('_raw');
-  const _mixin = Symbol('_mixin');
-  const _typeArguments = Symbol('_typeArguments');
-  let const$1;
-  _js_mirrors.JsClassMirror = class JsClassMirror extends _js_mirrors.JsMirror {
-    get metadata() {
-      if (this[_metadata$] == null) {
-        let unwrapped = _js_mirrors._unwrap(this[_cls]);
-        let fn = Object.hasOwnProperty.call(unwrapped, dart.metadata) ? unwrapped[dart.metadata] : null;
-        this[_metadata$] = fn == null ? const$0 || (const$0 = dart.constList([], mirrors.InstanceMirror)) : ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dcall(fn), 'map', dart.fn(i => _js_mirrors.reflect(i), dynamicToInstanceMirror()))));
-      }
-      return this[_metadata$];
-    }
-    get declarations() {
-      if (this[_declarations] == null) {
-        this[_declarations] = MapOfSymbol$DeclarationMirror().new();
-        let unwrapped = _js_mirrors._unwrap(this[_cls]);
-        let constructors = _js_mirrors._getConstructors(unwrapped);
-        constructors[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = _js_mirrors.getName(symbol);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        if (dart.test(constructors[dartx.isEmpty])) {
-          let name = 'new';
-          let ft = _js_mirrors._defaultConstructorType(_js_mirrors._unwrap(this[_cls]));
-          let symbol = core.Symbol.new(name);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
-        }
-        let fields = _js_mirrors._getFields(unwrapped);
-        fields[dartx.forEach](dart.fn((symbol, t) => {
-          let metadata = [];
-          if (core.List.is(t)) {
-            metadata = core.List._check(dart.dsend(dart.dsend(t, 'skip', 1), 'toList'));
-            t = dart.dindex(t, 0);
-          }
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicToNull()));
-        let methods = _js_mirrors._getMethods(unwrapped);
-        methods[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = _js_mirrors.getName(symbol);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        let getters = _js_mirrors._getGetters(unwrapped);
-        getters[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = _js_mirrors.getName(symbol);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        let setters = _js_mirrors._getSetters(unwrapped);
-        setters[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = dart.notNull(_js_mirrors.getName(symbol)) + '=';
-          symbol = new _internal.Symbol.es6(name, _js_mirrors._getESSymbol(symbol));
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        let staticFields = _js_mirrors._getStaticFields(unwrapped);
-        staticFields[dartx.forEach](dart.fn((symbol, t) => {
-          let name = _js_mirrors.getName(symbol);
-          let metadata = [];
-          if (core.List.is(t)) {
-            metadata = core.List._check(dart.dsend(dart.dsend(t, 'skip', 1), 'toList'));
-            t = dart.dindex(t, 0);
-          }
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicToNull()));
-        let statics = _js_mirrors._getStatics(unwrapped);
-        statics[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = _js_mirrors.getName(symbol);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        let staticGetters = _js_mirrors._getStaticGetters(unwrapped);
-        staticGetters[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = _js_mirrors.getName(symbol);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        let staticSetters = _js_mirrors._getStaticSetters(unwrapped);
-        staticSetters[dartx.forEach](dart.fn((symbol, ft) => {
-          let name = _js_mirrors.getName(symbol);
-          this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicToNull()));
-        this[_declarations] = MapOfSymbol$DeclarationMirror().unmodifiable(this[_declarations]);
-      }
-      return this[_declarations];
-    }
-    _(cls) {
-      this[_cls] = cls;
-      this[_raw] = _js_mirrors._getGenericClass(_js_mirrors._unwrap(cls));
-      this.simpleName = core.Symbol.new(_js_mirrors._unwrap(cls).name);
-      this[_mixin] = null;
-      this[_typeArguments] = null;
-      this[_metadata$] = null;
-      this[_declarations] = null;
-      let typeArgs = _js_mirrors._getGenericArgs(_js_mirrors._unwrap(cls));
-      if (typeArgs == null) {
-        this[_typeArguments] = const$1 || (const$1 = dart.constList([], mirrors.TypeMirror));
-      } else {
-        this[_typeArguments] = ListOfTypeMirror().unmodifiable(core.Iterable._check(dart.dsend(typeArgs, 'map', dart.fn(t => _js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(t))), dynamicToTypeMirror()))));
-      }
-    }
-    newInstance(constructorName, args, namedArgs) {
-      if (namedArgs === void 0) namedArgs = null;
-      let name = _js_mirrors.getName(constructorName);
-      dart.assert(namedArgs == null || dart.test(namedArgs[dartx.isEmpty]));
-      let instance = name == 'new' || name == '' ? new (_js_mirrors._unwrap(this[_cls]))(...args) : new (_js_mirrors._unwrap(this[_cls]))[name](...args);
-      return _js_mirrors.reflect(instance);
-    }
-    getField(symbol) {
-      let name = _js_mirrors.getName(symbol);
-      return _js_mirrors.reflect(_js_mirrors._unwrap(this[_cls])[name]);
-    }
-    setField(symbol, value) {
-      let name = _js_mirrors.getName(symbol);
-      _js_mirrors._unwrap(this[_cls])[name] = value;
-      return _js_mirrors.reflect(value);
-    }
-    invoke(symbol, args, namedArgs) {
-      if (namedArgs === void 0) namedArgs = null;
-      let name = _js_mirrors.getName(symbol);
-      if (namedArgs != null) {
-        args = core.List.from(args);
-        args[dartx.add](_js_mirrors._toJsMap(namedArgs));
-      }
-      let result = _js_mirrors._unwrap(this[_cls])[name](...args);
-      return _js_mirrors.reflect(result);
-    }
-    get superinterfaces() {
-      let interfaceThunk = _js_mirrors._unwrap(this[_cls])[dart.implements];
-      if (interfaceThunk == null) {
-        return JSArrayOfClassMirror().of([]);
-      } else {
-        let interfaces = interfaceThunk();
-        return ListOfClassMirror()._check(interfaces[dartx.map](mirrors.TypeMirror)(dart.fn(t => _js_mirrors.reflectType(t), TypeToTypeMirror()))[dartx.toList]());
-      }
-    }
-    get hasReflectedType() {
-      return true;
-    }
-    get reflectedType() {
-      return this[_cls];
-    }
-    get isOriginalDeclaration() {
-      return this[_raw] == null;
-    }
-    get typeArguments() {
-      return this[_typeArguments];
-    }
-    get originalDeclaration() {
-      if (this[_raw] == null) {
-        return this;
-      }
-      dart.throw(new core.UnimplementedError("ClassMirror.originalDeclaration unimplemented"));
-    }
-    get superclass() {
-      if (dart.equals(this[_cls], dart.wrapType(core.Object))) {
-        return null;
-      } else {
-        return mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(_js_mirrors._unwrap(this[_cls]).__proto__))));
-      }
-    }
-    get mixin() {
-      if (this[_mixin] != null) {
-        return this[_mixin];
-      }
-      let mixins = _js_mirrors._getMixins(_js_mirrors._unwrap(this[_cls]));
-      if (mixins == null || dart.test(dart.dload(mixins, 'isEmpty'))) {
-        this[_mixin] = this;
-        return this[_mixin];
-      }
-      if (dart.test(dart.dsend(dart.dload(mixins, 'length'), '>', 1))) {
-        dart.throw(new core.UnsupportedError("ClassMirror.mixin not yet supported for " + dart.str`classes (${this[_cls]}) with multiple mixins`));
-      }
-      this[_mixin] = mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(dart.dindex(mixins, 0)))));
-      return this[_mixin];
-    }
-    toString() {
-      return dart.str`ClassMirror on '${this[_cls]}'`;
-    }
-    get qualifiedName() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
-    }
-    get owner() {
-      return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
-    }
-    get isPrivate() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
-    }
-    get isTopLevel() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
-    }
-    get location() {
-      return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
-    }
-    isSubtypeOf(...args) {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSubtypeOf', args, {isMethod: true})));
-    }
-    isAssignableTo(...args) {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isAssignableTo', args, {isMethod: true})));
-    }
-    get typeVariables() {
-      return ListOfTypeVariableMirror()._check(this.noSuchMethod(new dart.InvocationImpl('typeVariables', [], {isGetter: true})));
-    }
-    isSubclassOf(...args) {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSubclassOf', args, {isMethod: true})));
-    }
-    get isAbstract() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isAbstract', [], {isGetter: true})));
-    }
-    get instanceMembers() {
-      return MapOfSymbol$MethodMirror()._check(this.noSuchMethod(new dart.InvocationImpl('instanceMembers', [], {isGetter: true})));
-    }
-    get staticMembers() {
-      return MapOfSymbol$MethodMirror()._check(this.noSuchMethod(new dart.InvocationImpl('staticMembers', [], {isGetter: true})));
-    }
-  };
-  dart.defineNamedConstructor(_js_mirrors.JsClassMirror, '_');
-  _js_mirrors.JsClassMirror[dart.implements] = () => [mirrors.ClassMirror];
-  dart.setSignature(_js_mirrors.JsClassMirror, {
-    constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsClassMirror, [core.Type])}),
-    fields: () => ({
-      [_cls]: core.Type,
-      simpleName: core.Symbol,
-      [_raw]: dart.dynamic,
-      [_mixin]: mirrors.ClassMirror,
-      [_typeArguments]: ListOfTypeMirror(),
-      [_metadata$]: ListOfInstanceMirror(),
-      [_declarations]: MapOfSymbol$DeclarationMirror()
-    }),
-    getters: () => ({
-      metadata: dart.definiteFunctionType(core.List$(mirrors.InstanceMirror), []),
-      declarations: dart.definiteFunctionType(core.Map$(core.Symbol, mirrors.DeclarationMirror), []),
-      superinterfaces: dart.definiteFunctionType(core.List$(mirrors.ClassMirror), []),
-      hasReflectedType: dart.definiteFunctionType(core.bool, []),
-      reflectedType: dart.definiteFunctionType(core.Type, []),
-      isOriginalDeclaration: dart.definiteFunctionType(core.bool, []),
-      typeArguments: dart.definiteFunctionType(core.List$(mirrors.TypeMirror), []),
-      originalDeclaration: dart.definiteFunctionType(mirrors.TypeMirror, []),
-      superclass: dart.definiteFunctionType(mirrors.ClassMirror, []),
-      mixin: dart.definiteFunctionType(mirrors.ClassMirror, [])
-    }),
-    methods: () => ({
-      newInstance: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()]),
-      getField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol]),
-      setField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.Object]),
-      invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])
-    })
-  });
-  const _symbol = Symbol('_symbol');
-  const _name$0 = Symbol('_name');
-  _js_mirrors.JsVariableMirror = class JsVariableMirror extends _js_mirrors.JsMirror {
-    get simpleName() {
-      return this[_symbol];
-    }
-    _(symbol, t, annotations) {
-      this[_symbol] = symbol;
-      this[_name$0] = _js_mirrors.getName(symbol);
-      this.type = _js_mirrors.reflectType(t);
-      this.metadata = ListOfInstanceMirror().unmodifiable(annotations[dartx.map](mirrors.InstanceMirror)(dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror())));
-      this.isStatic = false;
-      this.isFinal = false;
-    }
-    toString() {
-      return dart.str`VariableMirror on '${this[_name$0]}'`;
-    }
-    get qualifiedName() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
-    }
-    get owner() {
-      return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
-    }
-    get isPrivate() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
-    }
-    get isTopLevel() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
-    }
-    get location() {
-      return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
-    }
-    get isConst() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isConst', [], {isGetter: true})));
-    }
-  };
-  dart.defineNamedConstructor(_js_mirrors.JsVariableMirror, '_');
-  _js_mirrors.JsVariableMirror[dart.implements] = () => [mirrors.VariableMirror];
-  dart.setSignature(_js_mirrors.JsVariableMirror, {
-    constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsVariableMirror, [core.Symbol, core.Type, core.List])}),
-    fields: () => ({
-      [_symbol]: core.Symbol,
-      [_name$0]: core.String,
-      type: mirrors.TypeMirror,
-      metadata: ListOfInstanceMirror(),
-      isStatic: core.bool,
-      isFinal: core.bool
-    }),
-    getters: () => ({simpleName: dart.definiteFunctionType(core.Symbol, [])})
-  });
-  _js_mirrors.JsParameterMirror = class JsParameterMirror extends _js_mirrors.JsVariableMirror {
-    _(member, t, annotations) {
-      super._(member, t, annotations);
-    }
-    toString() {
-      return dart.str`ParameterMirror on '${this[_name$0]}'`;
-    }
-    get qualifiedName() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
-    }
-    get owner() {
-      return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
-    }
-    get isPrivate() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
-    }
-    get isTopLevel() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
-    }
-    get location() {
-      return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
-    }
-    get isConst() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isConst', [], {isGetter: true})));
-    }
-    get isOptional() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isOptional', [], {isGetter: true})));
-    }
-    get isNamed() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isNamed', [], {isGetter: true})));
-    }
-    get hasDefaultValue() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('hasDefaultValue', [], {isGetter: true})));
-    }
-    get defaultValue() {
-      return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('defaultValue', [], {isGetter: true})));
-    }
-  };
-  dart.defineNamedConstructor(_js_mirrors.JsParameterMirror, '_');
-  _js_mirrors.JsParameterMirror[dart.implements] = () => [mirrors.ParameterMirror];
-  dart.setSignature(_js_mirrors.JsParameterMirror, {
-    constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsParameterMirror, [core.Symbol, core.Type, core.List])})
-  });
-  const _params = Symbol('_params');
-  const _createParameterMirrorList = Symbol('_createParameterMirrorList');
-  let const$2;
-  let const$3;
-  let const$4;
-  _js_mirrors.JsMethodMirror = class JsMethodMirror extends _js_mirrors.JsMirror {
-    get isSetter() {
-      return this[_name$0][dartx.endsWith]('=');
-    }
-    get isPrivate() {
-      return this[_name$0][dartx.startsWith]('_');
-    }
-    get simpleName() {
-      return this[_symbol];
-    }
-    _constructor(cls, symbol, ftype) {
-      this[_symbol] = symbol;
-      this[_name$0] = _js_mirrors.getName(symbol);
-      this.isConstructor = true;
-      this.isStatic = false;
-      this[_params] = null;
-      this[_metadata$] = null;
-      this.isFinal = false;
-      this[_createParameterMirrorList](ftype);
-    }
-    _instanceMethod(cls, symbol, ftype) {
-      this[_symbol] = symbol;
-      this[_name$0] = _js_mirrors.getName(symbol);
-      this.isConstructor = false;
-      this.isStatic = false;
-      this[_params] = null;
-      this[_metadata$] = null;
-      this.isFinal = false;
-      this[_createParameterMirrorList](ftype);
-    }
-    _staticMethod(cls, symbol, ftype) {
-      this[_symbol] = symbol;
-      this[_name$0] = _js_mirrors.getName(symbol);
-      this.isConstructor = false;
-      this.isStatic = true;
-      this[_params] = null;
-      this[_metadata$] = null;
-      this.isFinal = false;
-      this[_createParameterMirrorList](ftype);
-    }
-    get constructorName() {
-      return dart.test(this.isConstructor) ? this[_symbol] : null;
-    }
-    get parameters() {
-      return this[_params];
-    }
-    get metadata() {
-      return this[_metadata$];
-    }
-    [_createParameterMirrorList](ftype) {
-      if (ftype == null) {
-        this[_params] = const$2 || (const$2 = dart.constList([], mirrors.ParameterMirror));
-        this[_metadata$] = const$3 || (const$3 = dart.constList([], mirrors.InstanceMirror));
-        return;
-      }
-      if (!core.Function.is(ftype) && core.List.is(ftype)) {
-        this[_metadata$] = ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dsend(ftype, 'skip', 1), 'map', dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror()))));
-        ftype = dart.dindex(ftype, 0);
-      } else {
-        this[_metadata$] = const$4 || (const$4 = dart.constList([], mirrors.InstanceMirror));
-      }
-      if (typeof ftype == "function") {
-        ftype = ftype.apply(null, JSArrayOfType().of([dart.dynamic, dart.dynamic, dart.dynamic]));
-      }
-      let args = core.List._check(dart.dload(ftype, 'args'));
-      let opts = core.List._check(dart.dload(ftype, 'optionals'));
-      let params = ListOfParameterMirror().new(dart.notNull(args[dartx.length]) + dart.notNull(opts[dartx.length]));
-      for (let i = 0; i < dart.notNull(args[dartx.length]); ++i) {
-        let type = args[dartx._get](i);
-        let metadata = dart.dindex(dart.dload(ftype, 'metadata'), i);
-        let param = new _js_mirrors.JsParameterMirror._(core.Symbol.new(''), core.Type._check(_js_mirrors._wrap(type)), core.List._check(metadata));
-        params[dartx._set](i, param);
-      }
-      for (let i = 0; i < dart.notNull(opts[dartx.length]); ++i) {
-        let type = opts[dartx._get](i);
-        let metadata = dart.dindex(dart.dload(ftype, 'metadata'), dart.notNull(args[dartx.length]) + i);
-        let param = new _js_mirrors.JsParameterMirror._(core.Symbol.new(''), core.Type._check(_js_mirrors._wrap(type)), core.List._check(metadata));
-        params[dartx._set](i + dart.notNull(args[dartx.length]), param);
-      }
-      this[_params] = ListOfParameterMirror().unmodifiable(params);
-    }
-    toString() {
-      return dart.str`MethodMirror on '${this[_name$0]}'`;
-    }
-    get qualifiedName() {
-      return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
-    }
-    get owner() {
-      return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
-    }
-    get isTopLevel() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
-    }
-    get location() {
-      return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
-    }
-    get returnType() {
-      return mirrors.TypeMirror._check(this.noSuchMethod(new dart.InvocationImpl('returnType', [], {isGetter: true})));
-    }
-    get source() {
-      return core.String._check(this.noSuchMethod(new dart.InvocationImpl('source', [], {isGetter: true})));
-    }
-    get isAbstract() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isAbstract', [], {isGetter: true})));
-    }
-    get isSynthetic() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSynthetic', [], {isGetter: true})));
-    }
-    get isRegularMethod() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isRegularMethod', [], {isGetter: true})));
-    }
-    get isOperator() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isOperator', [], {isGetter: true})));
-    }
-    get isGetter() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isGetter', [], {isGetter: true})));
-    }
-    get isConstConstructor() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isConstConstructor', [], {isGetter: true})));
-    }
-    get isGenerativeConstructor() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isGenerativeConstructor', [], {isGetter: true})));
-    }
-    get isRedirectingConstructor() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isRedirectingConstructor', [], {isGetter: true})));
-    }
-    get isFactoryConstructor() {
-      return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isFactoryConstructor', [], {isGetter: true})));
-    }
-  };
-  dart.defineNamedConstructor(_js_mirrors.JsMethodMirror, '_constructor');
-  dart.defineNamedConstructor(_js_mirrors.JsMethodMirror, '_instanceMethod');
-  dart.defineNamedConstructor(_js_mirrors.JsMethodMirror, '_staticMethod');
-  _js_mirrors.JsMethodMirror[dart.implements] = () => [mirrors.MethodMirror];
-  dart.setSignature(_js_mirrors.JsMethodMirror, {
-    constructors: () => ({
-      _constructor: dart.definiteFunctionType(_js_mirrors.JsMethodMirror, [_js_mirrors.JsClassMirror, core.Symbol, dart.dynamic]),
-      _instanceMethod: dart.definiteFunctionType(_js_mirrors.JsMethodMirror, [_js_mirrors.JsClassMirror, core.Symbol, dart.dynamic]),
-      _staticMethod: dart.definiteFunctionType(_js_mirrors.JsMethodMirror, [_js_mirrors.JsClassMirror, core.Symbol, dart.dynamic])
-    }),
-    fields: () => ({
-      [_symbol]: core.Symbol,
-      [_name$0]: core.String,
-      [_params]: ListOfParameterMirror(),
-      [_metadata$]: ListOfInstanceMirror(),
-      isConstructor: core.bool,
-      isStatic: core.bool,
-      isFinal: core.bool
-    }),
-    getters: () => ({
-      isSetter: dart.definiteFunctionType(core.bool, []),
-      isPrivate: dart.definiteFunctionType(core.bool, []),
-      simpleName: dart.definiteFunctionType(core.Symbol, []),
-      constructorName: dart.definiteFunctionType(core.Symbol, []),
-      parameters: dart.definiteFunctionType(core.List$(mirrors.ParameterMirror), []),
-      metadata: dart.definiteFunctionType(core.List$(mirrors.InstanceMirror), [])
-    }),
-    methods: () => ({[_createParameterMirrorList]: dart.definiteFunctionType(dart.void, [dart.dynamic])})
-  });
-  _js_primitives.printString = function(string) {
-    if (typeof dartPrint == "function") {
-      dartPrint(string);
-      return;
-    }
-    if (typeof console == "object" && typeof console.log != "undefined") {
-      console.log(string);
-      return;
-    }
-    if (typeof window == "object") {
-      return;
-    }
-    if (typeof print == "function") {
-      print(string);
-      return;
-    }
-    throw "Unable to print message: " + String(string);
-  };
-  dart.lazyFn(_js_primitives.printString, () => StringTovoid$());
-  _metadata.SupportedBrowser = class SupportedBrowser extends core.Object {
-    new(browserName, minimumVersion) {
-      if (minimumVersion === void 0) minimumVersion = null;
-      this.browserName = browserName;
-      this.minimumVersion = minimumVersion;
-    }
-  };
-  dart.setSignature(_metadata.SupportedBrowser, {
-    constructors: () => ({new: dart.definiteFunctionType(_metadata.SupportedBrowser, [core.String], [core.String])}),
-    fields: () => ({
-      browserName: core.String,
-      minimumVersion: core.String
-    }),
-    sfields: () => ({
-      CHROME: core.String,
-      FIREFOX: core.String,
-      IE: core.String,
-      OPERA: core.String,
-      SAFARI: core.String
-    })
-  });
-  _metadata.SupportedBrowser.CHROME = "Chrome";
-  _metadata.SupportedBrowser.FIREFOX = "Firefox";
-  _metadata.SupportedBrowser.IE = "Internet Explorer";
-  _metadata.SupportedBrowser.OPERA = "Opera";
-  _metadata.SupportedBrowser.SAFARI = "Safari";
-  _metadata.Experimental = class Experimental extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_metadata.Experimental, {
-    constructors: () => ({new: dart.definiteFunctionType(_metadata.Experimental, [])})
-  });
-  _metadata.DomName = class DomName extends core.Object {
-    new(name) {
-      this.name = name;
-    }
-  };
-  dart.setSignature(_metadata.DomName, {
-    constructors: () => ({new: dart.definiteFunctionType(_metadata.DomName, [core.String])}),
-    fields: () => ({name: core.String})
-  });
-  _metadata.DocsEditable = class DocsEditable extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_metadata.DocsEditable, {
-    constructors: () => ({new: dart.definiteFunctionType(_metadata.DocsEditable, [])})
-  });
-  _metadata.Unstable = class Unstable extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(_metadata.Unstable, {
-    constructors: () => ({new: dart.definiteFunctionType(_metadata.Unstable, [])})
-  });
-  dart.defineExtensionNames([
-    'lengthInBytes',
-    'runtimeType',
-    'asUint8List',
-    'asInt8List',
-    'asUint8ClampedList',
-    'asUint16List',
-    'asInt16List',
-    'asUint32List',
-    'asInt32List',
-    'asUint64List',
-    'asInt64List',
-    'asInt32x4List',
-    'asFloat32List',
-    'asFloat64List',
-    'asFloat32x4List',
-    'asFloat64x2List',
-    'asByteData'
-  ]);
-  _native_typed_data.NativeByteBuffer = class NativeByteBuffer extends core.Object {
-    get [dartx.lengthInBytes]() {
-      return this.byteLength;
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.ByteBuffer);
-    }
-    [dartx.asUint8List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeUint8List.view(this, offsetInBytes, length);
-    }
-    [dartx.asInt8List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeInt8List.view(this, offsetInBytes, length);
-    }
-    [dartx.asUint8ClampedList](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeUint8ClampedList.view(this, offsetInBytes, length);
-    }
-    [dartx.asUint16List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeUint16List.view(this, offsetInBytes, length);
-    }
-    [dartx.asInt16List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeInt16List.view(this, offsetInBytes, length);
-    }
-    [dartx.asUint32List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeUint32List.view(this, offsetInBytes, length);
-    }
-    [dartx.asInt32List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeInt32List.view(this, offsetInBytes, length);
-    }
-    [dartx.asUint64List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      dart.throw(new core.UnsupportedError("Uint64List not supported by dart2js."));
-    }
-    [dartx.asInt64List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      dart.throw(new core.UnsupportedError("Int64List not supported by dart2js."));
-    }
-    [dartx.asInt32x4List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      let storage = _native_typed_data.NativeInt32List._check(this[dartx.asInt32List](offsetInBytes, length != null ? dart.notNull(length) * 4 : null));
-      return new _native_typed_data.NativeInt32x4List._externalStorage(storage);
-    }
-    [dartx.asFloat32List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeFloat32List.view(this, offsetInBytes, length);
-    }
-    [dartx.asFloat64List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeFloat64List.view(this, offsetInBytes, length);
-    }
-    [dartx.asFloat32x4List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      let storage = _native_typed_data.NativeFloat32List._check(this[dartx.asFloat32List](offsetInBytes, length != null ? dart.notNull(length) * 4 : null));
-      return new _native_typed_data.NativeFloat32x4List._externalStorage(storage);
-    }
-    [dartx.asFloat64x2List](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      let storage = _native_typed_data.NativeFloat64List._check(this[dartx.asFloat64List](offsetInBytes, length != null ? dart.notNull(length) * 2 : null));
-      return new _native_typed_data.NativeFloat64x2List._externalStorage(storage);
-    }
-    [dartx.asByteData](offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return _native_typed_data.NativeByteData.view(this, offsetInBytes, length);
-    }
-  };
-  _native_typed_data.NativeByteBuffer[dart.implements] = () => [typed_data.ByteBuffer];
-  dart.setSignature(_native_typed_data.NativeByteBuffer, {
-    getters: () => ({[dartx.lengthInBytes]: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      [dartx.asUint8List]: dart.definiteFunctionType(typed_data.Uint8List, [], [core.int, core.int]),
-      [dartx.asInt8List]: dart.definiteFunctionType(typed_data.Int8List, [], [core.int, core.int]),
-      [dartx.asUint8ClampedList]: dart.definiteFunctionType(typed_data.Uint8ClampedList, [], [core.int, core.int]),
-      [dartx.asUint16List]: dart.definiteFunctionType(typed_data.Uint16List, [], [core.int, core.int]),
-      [dartx.asInt16List]: dart.definiteFunctionType(typed_data.Int16List, [], [core.int, core.int]),
-      [dartx.asUint32List]: dart.definiteFunctionType(typed_data.Uint32List, [], [core.int, core.int]),
-      [dartx.asInt32List]: dart.definiteFunctionType(typed_data.Int32List, [], [core.int, core.int]),
-      [dartx.asUint64List]: dart.definiteFunctionType(typed_data.Uint64List, [], [core.int, core.int]),
-      [dartx.asInt64List]: dart.definiteFunctionType(typed_data.Int64List, [], [core.int, core.int]),
-      [dartx.asInt32x4List]: dart.definiteFunctionType(typed_data.Int32x4List, [], [core.int, core.int]),
-      [dartx.asFloat32List]: dart.definiteFunctionType(typed_data.Float32List, [], [core.int, core.int]),
-      [dartx.asFloat64List]: dart.definiteFunctionType(typed_data.Float64List, [], [core.int, core.int]),
-      [dartx.asFloat32x4List]: dart.definiteFunctionType(typed_data.Float32x4List, [], [core.int, core.int]),
-      [dartx.asFloat64x2List]: dart.definiteFunctionType(typed_data.Float64x2List, [], [core.int, core.int]),
-      [dartx.asByteData]: dart.definiteFunctionType(typed_data.ByteData, [], [core.int, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.ArrayBuffer, _native_typed_data.NativeByteBuffer);
-  const _storage = Symbol('_storage');
-  typed_data.Float32x4 = class Float32x4 extends core.Object {
-    static new(x, y, z, w) {
-      return new _native_typed_data.NativeFloat32x4(x, y, z, w);
-    }
-    static splat(v) {
-      return new _native_typed_data.NativeFloat32x4.splat(v);
-    }
-    static zero() {
-      return new _native_typed_data.NativeFloat32x4.zero();
-    }
-    static fromInt32x4Bits(x) {
-      return _native_typed_data.NativeFloat32x4.fromInt32x4Bits(x);
-    }
-    static fromFloat64x2(v) {
-      return new _native_typed_data.NativeFloat32x4.fromFloat64x2(v);
-    }
-  };
-  dart.setSignature(typed_data.Float32x4, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Float32x4, [core.double, core.double, core.double, core.double]),
-      splat: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
-      zero: dart.definiteFunctionType(typed_data.Float32x4, []),
-      fromInt32x4Bits: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Int32x4]),
-      fromFloat64x2: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float64x2])
-    }),
-    sfields: () => ({
-      XXXX: core.int,
-      XXXY: core.int,
-      XXXZ: core.int,
-      XXXW: core.int,
-      XXYX: core.int,
-      XXYY: core.int,
-      XXYZ: core.int,
-      XXYW: core.int,
-      XXZX: core.int,
-      XXZY: core.int,
-      XXZZ: core.int,
-      XXZW: core.int,
-      XXWX: core.int,
-      XXWY: core.int,
-      XXWZ: core.int,
-      XXWW: core.int,
-      XYXX: core.int,
-      XYXY: core.int,
-      XYXZ: core.int,
-      XYXW: core.int,
-      XYYX: core.int,
-      XYYY: core.int,
-      XYYZ: core.int,
-      XYYW: core.int,
-      XYZX: core.int,
-      XYZY: core.int,
-      XYZZ: core.int,
-      XYZW: core.int,
-      XYWX: core.int,
-      XYWY: core.int,
-      XYWZ: core.int,
-      XYWW: core.int,
-      XZXX: core.int,
-      XZXY: core.int,
-      XZXZ: core.int,
-      XZXW: core.int,
-      XZYX: core.int,
-      XZYY: core.int,
-      XZYZ: core.int,
-      XZYW: core.int,
-      XZZX: core.int,
-      XZZY: core.int,
-      XZZZ: core.int,
-      XZZW: core.int,
-      XZWX: core.int,
-      XZWY: core.int,
-      XZWZ: core.int,
-      XZWW: core.int,
-      XWXX: core.int,
-      XWXY: core.int,
-      XWXZ: core.int,
-      XWXW: core.int,
-      XWYX: core.int,
-      XWYY: core.int,
-      XWYZ: core.int,
-      XWYW: core.int,
-      XWZX: core.int,
-      XWZY: core.int,
-      XWZZ: core.int,
-      XWZW: core.int,
-      XWWX: core.int,
-      XWWY: core.int,
-      XWWZ: core.int,
-      XWWW: core.int,
-      YXXX: core.int,
-      YXXY: core.int,
-      YXXZ: core.int,
-      YXXW: core.int,
-      YXYX: core.int,
-      YXYY: core.int,
-      YXYZ: core.int,
-      YXYW: core.int,
-      YXZX: core.int,
-      YXZY: core.int,
-      YXZZ: core.int,
-      YXZW: core.int,
-      YXWX: core.int,
-      YXWY: core.int,
-      YXWZ: core.int,
-      YXWW: core.int,
-      YYXX: core.int,
-      YYXY: core.int,
-      YYXZ: core.int,
-      YYXW: core.int,
-      YYYX: core.int,
-      YYYY: core.int,
-      YYYZ: core.int,
-      YYYW: core.int,
-      YYZX: core.int,
-      YYZY: core.int,
-      YYZZ: core.int,
-      YYZW: core.int,
-      YYWX: core.int,
-      YYWY: core.int,
-      YYWZ: core.int,
-      YYWW: core.int,
-      YZXX: core.int,
-      YZXY: core.int,
-      YZXZ: core.int,
-      YZXW: core.int,
-      YZYX: core.int,
-      YZYY: core.int,
-      YZYZ: core.int,
-      YZYW: core.int,
-      YZZX: core.int,
-      YZZY: core.int,
-      YZZZ: core.int,
-      YZZW: core.int,
-      YZWX: core.int,
-      YZWY: core.int,
-      YZWZ: core.int,
-      YZWW: core.int,
-      YWXX: core.int,
-      YWXY: core.int,
-      YWXZ: core.int,
-      YWXW: core.int,
-      YWYX: core.int,
-      YWYY: core.int,
-      YWYZ: core.int,
-      YWYW: core.int,
-      YWZX: core.int,
-      YWZY: core.int,
-      YWZZ: core.int,
-      YWZW: core.int,
-      YWWX: core.int,
-      YWWY: core.int,
-      YWWZ: core.int,
-      YWWW: core.int,
-      ZXXX: core.int,
-      ZXXY: core.int,
-      ZXXZ: core.int,
-      ZXXW: core.int,
-      ZXYX: core.int,
-      ZXYY: core.int,
-      ZXYZ: core.int,
-      ZXYW: core.int,
-      ZXZX: core.int,
-      ZXZY: core.int,
-      ZXZZ: core.int,
-      ZXZW: core.int,
-      ZXWX: core.int,
-      ZXWY: core.int,
-      ZXWZ: core.int,
-      ZXWW: core.int,
-      ZYXX: core.int,
-      ZYXY: core.int,
-      ZYXZ: core.int,
-      ZYXW: core.int,
-      ZYYX: core.int,
-      ZYYY: core.int,
-      ZYYZ: core.int,
-      ZYYW: core.int,
-      ZYZX: core.int,
-      ZYZY: core.int,
-      ZYZZ: core.int,
-      ZYZW: core.int,
-      ZYWX: core.int,
-      ZYWY: core.int,
-      ZYWZ: core.int,
-      ZYWW: core.int,
-      ZZXX: core.int,
-      ZZXY: core.int,
-      ZZXZ: core.int,
-      ZZXW: core.int,
-      ZZYX: core.int,
-      ZZYY: core.int,
-      ZZYZ: core.int,
-      ZZYW: core.int,
-      ZZZX: core.int,
-      ZZZY: core.int,
-      ZZZZ: core.int,
-      ZZZW: core.int,
-      ZZWX: core.int,
-      ZZWY: core.int,
-      ZZWZ: core.int,
-      ZZWW: core.int,
-      ZWXX: core.int,
-      ZWXY: core.int,
-      ZWXZ: core.int,
-      ZWXW: core.int,
-      ZWYX: core.int,
-      ZWYY: core.int,
-      ZWYZ: core.int,
-      ZWYW: core.int,
-      ZWZX: core.int,
-      ZWZY: core.int,
-      ZWZZ: core.int,
-      ZWZW: core.int,
-      ZWWX: core.int,
-      ZWWY: core.int,
-      ZWWZ: core.int,
-      ZWWW: core.int,
-      WXXX: core.int,
-      WXXY: core.int,
-      WXXZ: core.int,
-      WXXW: core.int,
-      WXYX: core.int,
-      WXYY: core.int,
-      WXYZ: core.int,
-      WXYW: core.int,
-      WXZX: core.int,
-      WXZY: core.int,
-      WXZZ: core.int,
-      WXZW: core.int,
-      WXWX: core.int,
-      WXWY: core.int,
-      WXWZ: core.int,
-      WXWW: core.int,
-      WYXX: core.int,
-      WYXY: core.int,
-      WYXZ: core.int,
-      WYXW: core.int,
-      WYYX: core.int,
-      WYYY: core.int,
-      WYYZ: core.int,
-      WYYW: core.int,
-      WYZX: core.int,
-      WYZY: core.int,
-      WYZZ: core.int,
-      WYZW: core.int,
-      WYWX: core.int,
-      WYWY: core.int,
-      WYWZ: core.int,
-      WYWW: core.int,
-      WZXX: core.int,
-      WZXY: core.int,
-      WZXZ: core.int,
-      WZXW: core.int,
-      WZYX: core.int,
-      WZYY: core.int,
-      WZYZ: core.int,
-      WZYW: core.int,
-      WZZX: core.int,
-      WZZY: core.int,
-      WZZZ: core.int,
-      WZZW: core.int,
-      WZWX: core.int,
-      WZWY: core.int,
-      WZWZ: core.int,
-      WZWW: core.int,
-      WWXX: core.int,
-      WWXY: core.int,
-      WWXZ: core.int,
-      WWXW: core.int,
-      WWYX: core.int,
-      WWYY: core.int,
-      WWYZ: core.int,
-      WWYW: core.int,
-      WWZX: core.int,
-      WWZY: core.int,
-      WWZZ: core.int,
-      WWZW: core.int,
-      WWWX: core.int,
-      WWWY: core.int,
-      WWWZ: core.int,
-      WWWW: core.int
-    })
-  });
-  typed_data.Float32x4.XXXX = 0;
-  typed_data.Float32x4.XXXY = 64;
-  typed_data.Float32x4.XXXZ = 128;
-  typed_data.Float32x4.XXXW = 192;
-  typed_data.Float32x4.XXYX = 16;
-  typed_data.Float32x4.XXYY = 80;
-  typed_data.Float32x4.XXYZ = 144;
-  typed_data.Float32x4.XXYW = 208;
-  typed_data.Float32x4.XXZX = 32;
-  typed_data.Float32x4.XXZY = 96;
-  typed_data.Float32x4.XXZZ = 160;
-  typed_data.Float32x4.XXZW = 224;
-  typed_data.Float32x4.XXWX = 48;
-  typed_data.Float32x4.XXWY = 112;
-  typed_data.Float32x4.XXWZ = 176;
-  typed_data.Float32x4.XXWW = 240;
-  typed_data.Float32x4.XYXX = 4;
-  typed_data.Float32x4.XYXY = 68;
-  typed_data.Float32x4.XYXZ = 132;
-  typed_data.Float32x4.XYXW = 196;
-  typed_data.Float32x4.XYYX = 20;
-  typed_data.Float32x4.XYYY = 84;
-  typed_data.Float32x4.XYYZ = 148;
-  typed_data.Float32x4.XYYW = 212;
-  typed_data.Float32x4.XYZX = 36;
-  typed_data.Float32x4.XYZY = 100;
-  typed_data.Float32x4.XYZZ = 164;
-  typed_data.Float32x4.XYZW = 228;
-  typed_data.Float32x4.XYWX = 52;
-  typed_data.Float32x4.XYWY = 116;
-  typed_data.Float32x4.XYWZ = 180;
-  typed_data.Float32x4.XYWW = 244;
-  typed_data.Float32x4.XZXX = 8;
-  typed_data.Float32x4.XZXY = 72;
-  typed_data.Float32x4.XZXZ = 136;
-  typed_data.Float32x4.XZXW = 200;
-  typed_data.Float32x4.XZYX = 24;
-  typed_data.Float32x4.XZYY = 88;
-  typed_data.Float32x4.XZYZ = 152;
-  typed_data.Float32x4.XZYW = 216;
-  typed_data.Float32x4.XZZX = 40;
-  typed_data.Float32x4.XZZY = 104;
-  typed_data.Float32x4.XZZZ = 168;
-  typed_data.Float32x4.XZZW = 232;
-  typed_data.Float32x4.XZWX = 56;
-  typed_data.Float32x4.XZWY = 120;
-  typed_data.Float32x4.XZWZ = 184;
-  typed_data.Float32x4.XZWW = 248;
-  typed_data.Float32x4.XWXX = 12;
-  typed_data.Float32x4.XWXY = 76;
-  typed_data.Float32x4.XWXZ = 140;
-  typed_data.Float32x4.XWXW = 204;
-  typed_data.Float32x4.XWYX = 28;
-  typed_data.Float32x4.XWYY = 92;
-  typed_data.Float32x4.XWYZ = 156;
-  typed_data.Float32x4.XWYW = 220;
-  typed_data.Float32x4.XWZX = 44;
-  typed_data.Float32x4.XWZY = 108;
-  typed_data.Float32x4.XWZZ = 172;
-  typed_data.Float32x4.XWZW = 236;
-  typed_data.Float32x4.XWWX = 60;
-  typed_data.Float32x4.XWWY = 124;
-  typed_data.Float32x4.XWWZ = 188;
-  typed_data.Float32x4.XWWW = 252;
-  typed_data.Float32x4.YXXX = 1;
-  typed_data.Float32x4.YXXY = 65;
-  typed_data.Float32x4.YXXZ = 129;
-  typed_data.Float32x4.YXXW = 193;
-  typed_data.Float32x4.YXYX = 17;
-  typed_data.Float32x4.YXYY = 81;
-  typed_data.Float32x4.YXYZ = 145;
-  typed_data.Float32x4.YXYW = 209;
-  typed_data.Float32x4.YXZX = 33;
-  typed_data.Float32x4.YXZY = 97;
-  typed_data.Float32x4.YXZZ = 161;
-  typed_data.Float32x4.YXZW = 225;
-  typed_data.Float32x4.YXWX = 49;
-  typed_data.Float32x4.YXWY = 113;
-  typed_data.Float32x4.YXWZ = 177;
-  typed_data.Float32x4.YXWW = 241;
-  typed_data.Float32x4.YYXX = 5;
-  typed_data.Float32x4.YYXY = 69;
-  typed_data.Float32x4.YYXZ = 133;
-  typed_data.Float32x4.YYXW = 197;
-  typed_data.Float32x4.YYYX = 21;
-  typed_data.Float32x4.YYYY = 85;
-  typed_data.Float32x4.YYYZ = 149;
-  typed_data.Float32x4.YYYW = 213;
-  typed_data.Float32x4.YYZX = 37;
-  typed_data.Float32x4.YYZY = 101;
-  typed_data.Float32x4.YYZZ = 165;
-  typed_data.Float32x4.YYZW = 229;
-  typed_data.Float32x4.YYWX = 53;
-  typed_data.Float32x4.YYWY = 117;
-  typed_data.Float32x4.YYWZ = 181;
-  typed_data.Float32x4.YYWW = 245;
-  typed_data.Float32x4.YZXX = 9;
-  typed_data.Float32x4.YZXY = 73;
-  typed_data.Float32x4.YZXZ = 137;
-  typed_data.Float32x4.YZXW = 201;
-  typed_data.Float32x4.YZYX = 25;
-  typed_data.Float32x4.YZYY = 89;
-  typed_data.Float32x4.YZYZ = 153;
-  typed_data.Float32x4.YZYW = 217;
-  typed_data.Float32x4.YZZX = 41;
-  typed_data.Float32x4.YZZY = 105;
-  typed_data.Float32x4.YZZZ = 169;
-  typed_data.Float32x4.YZZW = 233;
-  typed_data.Float32x4.YZWX = 57;
-  typed_data.Float32x4.YZWY = 121;
-  typed_data.Float32x4.YZWZ = 185;
-  typed_data.Float32x4.YZWW = 249;
-  typed_data.Float32x4.YWXX = 13;
-  typed_data.Float32x4.YWXY = 77;
-  typed_data.Float32x4.YWXZ = 141;
-  typed_data.Float32x4.YWXW = 205;
-  typed_data.Float32x4.YWYX = 29;
-  typed_data.Float32x4.YWYY = 93;
-  typed_data.Float32x4.YWYZ = 157;
-  typed_data.Float32x4.YWYW = 221;
-  typed_data.Float32x4.YWZX = 45;
-  typed_data.Float32x4.YWZY = 109;
-  typed_data.Float32x4.YWZZ = 173;
-  typed_data.Float32x4.YWZW = 237;
-  typed_data.Float32x4.YWWX = 61;
-  typed_data.Float32x4.YWWY = 125;
-  typed_data.Float32x4.YWWZ = 189;
-  typed_data.Float32x4.YWWW = 253;
-  typed_data.Float32x4.ZXXX = 2;
-  typed_data.Float32x4.ZXXY = 66;
-  typed_data.Float32x4.ZXXZ = 130;
-  typed_data.Float32x4.ZXXW = 194;
-  typed_data.Float32x4.ZXYX = 18;
-  typed_data.Float32x4.ZXYY = 82;
-  typed_data.Float32x4.ZXYZ = 146;
-  typed_data.Float32x4.ZXYW = 210;
-  typed_data.Float32x4.ZXZX = 34;
-  typed_data.Float32x4.ZXZY = 98;
-  typed_data.Float32x4.ZXZZ = 162;
-  typed_data.Float32x4.ZXZW = 226;
-  typed_data.Float32x4.ZXWX = 50;
-  typed_data.Float32x4.ZXWY = 114;
-  typed_data.Float32x4.ZXWZ = 178;
-  typed_data.Float32x4.ZXWW = 242;
-  typed_data.Float32x4.ZYXX = 6;
-  typed_data.Float32x4.ZYXY = 70;
-  typed_data.Float32x4.ZYXZ = 134;
-  typed_data.Float32x4.ZYXW = 198;
-  typed_data.Float32x4.ZYYX = 22;
-  typed_data.Float32x4.ZYYY = 86;
-  typed_data.Float32x4.ZYYZ = 150;
-  typed_data.Float32x4.ZYYW = 214;
-  typed_data.Float32x4.ZYZX = 38;
-  typed_data.Float32x4.ZYZY = 102;
-  typed_data.Float32x4.ZYZZ = 166;
-  typed_data.Float32x4.ZYZW = 230;
-  typed_data.Float32x4.ZYWX = 54;
-  typed_data.Float32x4.ZYWY = 118;
-  typed_data.Float32x4.ZYWZ = 182;
-  typed_data.Float32x4.ZYWW = 246;
-  typed_data.Float32x4.ZZXX = 10;
-  typed_data.Float32x4.ZZXY = 74;
-  typed_data.Float32x4.ZZXZ = 138;
-  typed_data.Float32x4.ZZXW = 202;
-  typed_data.Float32x4.ZZYX = 26;
-  typed_data.Float32x4.ZZYY = 90;
-  typed_data.Float32x4.ZZYZ = 154;
-  typed_data.Float32x4.ZZYW = 218;
-  typed_data.Float32x4.ZZZX = 42;
-  typed_data.Float32x4.ZZZY = 106;
-  typed_data.Float32x4.ZZZZ = 170;
-  typed_data.Float32x4.ZZZW = 234;
-  typed_data.Float32x4.ZZWX = 58;
-  typed_data.Float32x4.ZZWY = 122;
-  typed_data.Float32x4.ZZWZ = 186;
-  typed_data.Float32x4.ZZWW = 250;
-  typed_data.Float32x4.ZWXX = 14;
-  typed_data.Float32x4.ZWXY = 78;
-  typed_data.Float32x4.ZWXZ = 142;
-  typed_data.Float32x4.ZWXW = 206;
-  typed_data.Float32x4.ZWYX = 30;
-  typed_data.Float32x4.ZWYY = 94;
-  typed_data.Float32x4.ZWYZ = 158;
-  typed_data.Float32x4.ZWYW = 222;
-  typed_data.Float32x4.ZWZX = 46;
-  typed_data.Float32x4.ZWZY = 110;
-  typed_data.Float32x4.ZWZZ = 174;
-  typed_data.Float32x4.ZWZW = 238;
-  typed_data.Float32x4.ZWWX = 62;
-  typed_data.Float32x4.ZWWY = 126;
-  typed_data.Float32x4.ZWWZ = 190;
-  typed_data.Float32x4.ZWWW = 254;
-  typed_data.Float32x4.WXXX = 3;
-  typed_data.Float32x4.WXXY = 67;
-  typed_data.Float32x4.WXXZ = 131;
-  typed_data.Float32x4.WXXW = 195;
-  typed_data.Float32x4.WXYX = 19;
-  typed_data.Float32x4.WXYY = 83;
-  typed_data.Float32x4.WXYZ = 147;
-  typed_data.Float32x4.WXYW = 211;
-  typed_data.Float32x4.WXZX = 35;
-  typed_data.Float32x4.WXZY = 99;
-  typed_data.Float32x4.WXZZ = 163;
-  typed_data.Float32x4.WXZW = 227;
-  typed_data.Float32x4.WXWX = 51;
-  typed_data.Float32x4.WXWY = 115;
-  typed_data.Float32x4.WXWZ = 179;
-  typed_data.Float32x4.WXWW = 243;
-  typed_data.Float32x4.WYXX = 7;
-  typed_data.Float32x4.WYXY = 71;
-  typed_data.Float32x4.WYXZ = 135;
-  typed_data.Float32x4.WYXW = 199;
-  typed_data.Float32x4.WYYX = 23;
-  typed_data.Float32x4.WYYY = 87;
-  typed_data.Float32x4.WYYZ = 151;
-  typed_data.Float32x4.WYYW = 215;
-  typed_data.Float32x4.WYZX = 39;
-  typed_data.Float32x4.WYZY = 103;
-  typed_data.Float32x4.WYZZ = 167;
-  typed_data.Float32x4.WYZW = 231;
-  typed_data.Float32x4.WYWX = 55;
-  typed_data.Float32x4.WYWY = 119;
-  typed_data.Float32x4.WYWZ = 183;
-  typed_data.Float32x4.WYWW = 247;
-  typed_data.Float32x4.WZXX = 11;
-  typed_data.Float32x4.WZXY = 75;
-  typed_data.Float32x4.WZXZ = 139;
-  typed_data.Float32x4.WZXW = 203;
-  typed_data.Float32x4.WZYX = 27;
-  typed_data.Float32x4.WZYY = 91;
-  typed_data.Float32x4.WZYZ = 155;
-  typed_data.Float32x4.WZYW = 219;
-  typed_data.Float32x4.WZZX = 43;
-  typed_data.Float32x4.WZZY = 107;
-  typed_data.Float32x4.WZZZ = 171;
-  typed_data.Float32x4.WZZW = 235;
-  typed_data.Float32x4.WZWX = 59;
-  typed_data.Float32x4.WZWY = 123;
-  typed_data.Float32x4.WZWZ = 187;
-  typed_data.Float32x4.WZWW = 251;
-  typed_data.Float32x4.WWXX = 15;
-  typed_data.Float32x4.WWXY = 79;
-  typed_data.Float32x4.WWXZ = 143;
-  typed_data.Float32x4.WWXW = 207;
-  typed_data.Float32x4.WWYX = 31;
-  typed_data.Float32x4.WWYY = 95;
-  typed_data.Float32x4.WWYZ = 159;
-  typed_data.Float32x4.WWYW = 223;
-  typed_data.Float32x4.WWZX = 47;
-  typed_data.Float32x4.WWZY = 111;
-  typed_data.Float32x4.WWZZ = 175;
-  typed_data.Float32x4.WWZW = 239;
-  typed_data.Float32x4.WWWX = 63;
-  typed_data.Float32x4.WWWY = 127;
-  typed_data.Float32x4.WWWZ = 191;
-  typed_data.Float32x4.WWWW = 255;
-  _native_typed_data.NativeFloat32x4List = class NativeFloat32x4List extends dart.mixin(core.Object, collection.ListMixin$(typed_data.Float32x4), _internal.FixedLengthListMixin$(typed_data.Float32x4)) {
-    new(length) {
-      this[_storage] = _native_typed_data.NativeFloat32List.new(dart.notNull(length) * 4);
-    }
-    _externalStorage(storage) {
-      this[_storage] = storage;
-    }
-    _slowFromList(list) {
-      this[_storage] = _native_typed_data.NativeFloat32List.new(dart.notNull(list[dartx.length]) * 4);
-      for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
-        let e = list[dartx._get](i);
-        this[_storage][dartx._set](i * 4 + 0, e.x);
-        this[_storage][dartx._set](i * 4 + 1, e.y);
-        this[_storage][dartx._set](i * 4 + 2, e.z);
-        this[_storage][dartx._set](i * 4 + 3, e.w);
-      }
-    }
-    get runtimeType() {
-      return dart.wrapType(typed_data.Float32x4List);
-    }
-    static fromList(list) {
-      if (_native_typed_data.NativeFloat32x4List.is(list)) {
-        return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List.fromList(list[_storage]));
-      } else {
-        return new _native_typed_data.NativeFloat32x4List._slowFromList(list);
-      }
-    }
-    get buffer() {
-      return this[_storage][dartx.buffer];
-    }
-    get lengthInBytes() {
-      return this[_storage][dartx.lengthInBytes];
-    }
-    get offsetInBytes() {
-      return this[_storage][dartx.offsetInBytes];
-    }
-    get elementSizeInBytes() {
-      return typed_data.Float32x4List.BYTES_PER_ELEMENT;
-    }
-    get length() {
-      return (dart.notNull(this[_storage][dartx.length]) / 4)[dartx.truncate]();
-    }
-    set length(value) {
-      super.length = value;
-    }
-    _get(index) {
-      _native_typed_data._checkValidIndex(index, this, this.length);
-      let _x = this[_storage][dartx._get](dart.notNull(index) * 4 + 0);
-      let _y = this[_storage][dartx._get](dart.notNull(index) * 4 + 1);
-      let _z = this[_storage][dartx._get](dart.notNull(index) * 4 + 2);
-      let _w = this[_storage][dartx._get](dart.notNull(index) * 4 + 3);
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    _set(index, value) {
-      _native_typed_data._checkValidIndex(index, this, this.length);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 0, value.x);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 1, value.y);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 2, value.z);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 3, value.w);
-      return value;
-    }
-    sublist(start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this.length);
-      return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List._check(this[_storage][dartx.sublist](dart.notNull(start) * 4, dart.notNull(end) * 4)));
-    }
-  };
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4List, '_externalStorage');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4List, '_slowFromList');
-  _native_typed_data.NativeFloat32x4List[dart.implements] = () => [typed_data.Float32x4List];
-  dart.setSignature(_native_typed_data.NativeFloat32x4List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [core.int]),
-      _externalStorage: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [_native_typed_data.NativeFloat32List]),
-      _slowFromList: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [ListOfFloat32x4()]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [ListOfFloat32x4()])
-    }),
-    fields: () => ({[_storage]: _native_typed_data.NativeFloat32List}),
-    getters: () => ({
-      buffer: dart.definiteFunctionType(typed_data.ByteBuffer, []),
-      lengthInBytes: dart.definiteFunctionType(core.int, []),
-      offsetInBytes: dart.definiteFunctionType(core.int, []),
-      elementSizeInBytes: dart.definiteFunctionType(core.int, []),
-      length: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      _get: dart.definiteFunctionType(typed_data.Float32x4, [core.int]),
-      _set: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32x4])
-    })
-  });
-  dart.defineExtensionMembers(_native_typed_data.NativeFloat32x4List, [
-    '_get',
-    '_set',
-    'sublist',
-    'buffer',
-    'lengthInBytes',
-    'offsetInBytes',
-    'elementSizeInBytes',
-    'length'
-  ]);
-  typed_data.Int32x4 = class Int32x4 extends core.Object {
-    static new(x, y, z, w) {
-      return new _native_typed_data.NativeInt32x4(x, y, z, w);
-    }
-    static bool(x, y, z, w) {
-      return new _native_typed_data.NativeInt32x4.bool(x, y, z, w);
-    }
-    static fromFloat32x4Bits(x) {
-      return _native_typed_data.NativeInt32x4.fromFloat32x4Bits(x);
-    }
-  };
-  dart.setSignature(typed_data.Int32x4, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Int32x4, [core.int, core.int, core.int, core.int]),
-      bool: dart.definiteFunctionType(typed_data.Int32x4, [core.bool, core.bool, core.bool, core.bool]),
-      fromFloat32x4Bits: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4])
-    }),
-    sfields: () => ({
-      XXXX: core.int,
-      XXXY: core.int,
-      XXXZ: core.int,
-      XXXW: core.int,
-      XXYX: core.int,
-      XXYY: core.int,
-      XXYZ: core.int,
-      XXYW: core.int,
-      XXZX: core.int,
-      XXZY: core.int,
-      XXZZ: core.int,
-      XXZW: core.int,
-      XXWX: core.int,
-      XXWY: core.int,
-      XXWZ: core.int,
-      XXWW: core.int,
-      XYXX: core.int,
-      XYXY: core.int,
-      XYXZ: core.int,
-      XYXW: core.int,
-      XYYX: core.int,
-      XYYY: core.int,
-      XYYZ: core.int,
-      XYYW: core.int,
-      XYZX: core.int,
-      XYZY: core.int,
-      XYZZ: core.int,
-      XYZW: core.int,
-      XYWX: core.int,
-      XYWY: core.int,
-      XYWZ: core.int,
-      XYWW: core.int,
-      XZXX: core.int,
-      XZXY: core.int,
-      XZXZ: core.int,
-      XZXW: core.int,
-      XZYX: core.int,
-      XZYY: core.int,
-      XZYZ: core.int,
-      XZYW: core.int,
-      XZZX: core.int,
-      XZZY: core.int,
-      XZZZ: core.int,
-      XZZW: core.int,
-      XZWX: core.int,
-      XZWY: core.int,
-      XZWZ: core.int,
-      XZWW: core.int,
-      XWXX: core.int,
-      XWXY: core.int,
-      XWXZ: core.int,
-      XWXW: core.int,
-      XWYX: core.int,
-      XWYY: core.int,
-      XWYZ: core.int,
-      XWYW: core.int,
-      XWZX: core.int,
-      XWZY: core.int,
-      XWZZ: core.int,
-      XWZW: core.int,
-      XWWX: core.int,
-      XWWY: core.int,
-      XWWZ: core.int,
-      XWWW: core.int,
-      YXXX: core.int,
-      YXXY: core.int,
-      YXXZ: core.int,
-      YXXW: core.int,
-      YXYX: core.int,
-      YXYY: core.int,
-      YXYZ: core.int,
-      YXYW: core.int,
-      YXZX: core.int,
-      YXZY: core.int,
-      YXZZ: core.int,
-      YXZW: core.int,
-      YXWX: core.int,
-      YXWY: core.int,
-      YXWZ: core.int,
-      YXWW: core.int,
-      YYXX: core.int,
-      YYXY: core.int,
-      YYXZ: core.int,
-      YYXW: core.int,
-      YYYX: core.int,
-      YYYY: core.int,
-      YYYZ: core.int,
-      YYYW: core.int,
-      YYZX: core.int,
-      YYZY: core.int,
-      YYZZ: core.int,
-      YYZW: core.int,
-      YYWX: core.int,
-      YYWY: core.int,
-      YYWZ: core.int,
-      YYWW: core.int,
-      YZXX: core.int,
-      YZXY: core.int,
-      YZXZ: core.int,
-      YZXW: core.int,
-      YZYX: core.int,
-      YZYY: core.int,
-      YZYZ: core.int,
-      YZYW: core.int,
-      YZZX: core.int,
-      YZZY: core.int,
-      YZZZ: core.int,
-      YZZW: core.int,
-      YZWX: core.int,
-      YZWY: core.int,
-      YZWZ: core.int,
-      YZWW: core.int,
-      YWXX: core.int,
-      YWXY: core.int,
-      YWXZ: core.int,
-      YWXW: core.int,
-      YWYX: core.int,
-      YWYY: core.int,
-      YWYZ: core.int,
-      YWYW: core.int,
-      YWZX: core.int,
-      YWZY: core.int,
-      YWZZ: core.int,
-      YWZW: core.int,
-      YWWX: core.int,
-      YWWY: core.int,
-      YWWZ: core.int,
-      YWWW: core.int,
-      ZXXX: core.int,
-      ZXXY: core.int,
-      ZXXZ: core.int,
-      ZXXW: core.int,
-      ZXYX: core.int,
-      ZXYY: core.int,
-      ZXYZ: core.int,
-      ZXYW: core.int,
-      ZXZX: core.int,
-      ZXZY: core.int,
-      ZXZZ: core.int,
-      ZXZW: core.int,
-      ZXWX: core.int,
-      ZXWY: core.int,
-      ZXWZ: core.int,
-      ZXWW: core.int,
-      ZYXX: core.int,
-      ZYXY: core.int,
-      ZYXZ: core.int,
-      ZYXW: core.int,
-      ZYYX: core.int,
-      ZYYY: core.int,
-      ZYYZ: core.int,
-      ZYYW: core.int,
-      ZYZX: core.int,
-      ZYZY: core.int,
-      ZYZZ: core.int,
-      ZYZW: core.int,
-      ZYWX: core.int,
-      ZYWY: core.int,
-      ZYWZ: core.int,
-      ZYWW: core.int,
-      ZZXX: core.int,
-      ZZXY: core.int,
-      ZZXZ: core.int,
-      ZZXW: core.int,
-      ZZYX: core.int,
-      ZZYY: core.int,
-      ZZYZ: core.int,
-      ZZYW: core.int,
-      ZZZX: core.int,
-      ZZZY: core.int,
-      ZZZZ: core.int,
-      ZZZW: core.int,
-      ZZWX: core.int,
-      ZZWY: core.int,
-      ZZWZ: core.int,
-      ZZWW: core.int,
-      ZWXX: core.int,
-      ZWXY: core.int,
-      ZWXZ: core.int,
-      ZWXW: core.int,
-      ZWYX: core.int,
-      ZWYY: core.int,
-      ZWYZ: core.int,
-      ZWYW: core.int,
-      ZWZX: core.int,
-      ZWZY: core.int,
-      ZWZZ: core.int,
-      ZWZW: core.int,
-      ZWWX: core.int,
-      ZWWY: core.int,
-      ZWWZ: core.int,
-      ZWWW: core.int,
-      WXXX: core.int,
-      WXXY: core.int,
-      WXXZ: core.int,
-      WXXW: core.int,
-      WXYX: core.int,
-      WXYY: core.int,
-      WXYZ: core.int,
-      WXYW: core.int,
-      WXZX: core.int,
-      WXZY: core.int,
-      WXZZ: core.int,
-      WXZW: core.int,
-      WXWX: core.int,
-      WXWY: core.int,
-      WXWZ: core.int,
-      WXWW: core.int,
-      WYXX: core.int,
-      WYXY: core.int,
-      WYXZ: core.int,
-      WYXW: core.int,
-      WYYX: core.int,
-      WYYY: core.int,
-      WYYZ: core.int,
-      WYYW: core.int,
-      WYZX: core.int,
-      WYZY: core.int,
-      WYZZ: core.int,
-      WYZW: core.int,
-      WYWX: core.int,
-      WYWY: core.int,
-      WYWZ: core.int,
-      WYWW: core.int,
-      WZXX: core.int,
-      WZXY: core.int,
-      WZXZ: core.int,
-      WZXW: core.int,
-      WZYX: core.int,
-      WZYY: core.int,
-      WZYZ: core.int,
-      WZYW: core.int,
-      WZZX: core.int,
-      WZZY: core.int,
-      WZZZ: core.int,
-      WZZW: core.int,
-      WZWX: core.int,
-      WZWY: core.int,
-      WZWZ: core.int,
-      WZWW: core.int,
-      WWXX: core.int,
-      WWXY: core.int,
-      WWXZ: core.int,
-      WWXW: core.int,
-      WWYX: core.int,
-      WWYY: core.int,
-      WWYZ: core.int,
-      WWYW: core.int,
-      WWZX: core.int,
-      WWZY: core.int,
-      WWZZ: core.int,
-      WWZW: core.int,
-      WWWX: core.int,
-      WWWY: core.int,
-      WWWZ: core.int,
-      WWWW: core.int
-    })
-  });
-  typed_data.Int32x4.XXXX = 0;
-  typed_data.Int32x4.XXXY = 64;
-  typed_data.Int32x4.XXXZ = 128;
-  typed_data.Int32x4.XXXW = 192;
-  typed_data.Int32x4.XXYX = 16;
-  typed_data.Int32x4.XXYY = 80;
-  typed_data.Int32x4.XXYZ = 144;
-  typed_data.Int32x4.XXYW = 208;
-  typed_data.Int32x4.XXZX = 32;
-  typed_data.Int32x4.XXZY = 96;
-  typed_data.Int32x4.XXZZ = 160;
-  typed_data.Int32x4.XXZW = 224;
-  typed_data.Int32x4.XXWX = 48;
-  typed_data.Int32x4.XXWY = 112;
-  typed_data.Int32x4.XXWZ = 176;
-  typed_data.Int32x4.XXWW = 240;
-  typed_data.Int32x4.XYXX = 4;
-  typed_data.Int32x4.XYXY = 68;
-  typed_data.Int32x4.XYXZ = 132;
-  typed_data.Int32x4.XYXW = 196;
-  typed_data.Int32x4.XYYX = 20;
-  typed_data.Int32x4.XYYY = 84;
-  typed_data.Int32x4.XYYZ = 148;
-  typed_data.Int32x4.XYYW = 212;
-  typed_data.Int32x4.XYZX = 36;
-  typed_data.Int32x4.XYZY = 100;
-  typed_data.Int32x4.XYZZ = 164;
-  typed_data.Int32x4.XYZW = 228;
-  typed_data.Int32x4.XYWX = 52;
-  typed_data.Int32x4.XYWY = 116;
-  typed_data.Int32x4.XYWZ = 180;
-  typed_data.Int32x4.XYWW = 244;
-  typed_data.Int32x4.XZXX = 8;
-  typed_data.Int32x4.XZXY = 72;
-  typed_data.Int32x4.XZXZ = 136;
-  typed_data.Int32x4.XZXW = 200;
-  typed_data.Int32x4.XZYX = 24;
-  typed_data.Int32x4.XZYY = 88;
-  typed_data.Int32x4.XZYZ = 152;
-  typed_data.Int32x4.XZYW = 216;
-  typed_data.Int32x4.XZZX = 40;
-  typed_data.Int32x4.XZZY = 104;
-  typed_data.Int32x4.XZZZ = 168;
-  typed_data.Int32x4.XZZW = 232;
-  typed_data.Int32x4.XZWX = 56;
-  typed_data.Int32x4.XZWY = 120;
-  typed_data.Int32x4.XZWZ = 184;
-  typed_data.Int32x4.XZWW = 248;
-  typed_data.Int32x4.XWXX = 12;
-  typed_data.Int32x4.XWXY = 76;
-  typed_data.Int32x4.XWXZ = 140;
-  typed_data.Int32x4.XWXW = 204;
-  typed_data.Int32x4.XWYX = 28;
-  typed_data.Int32x4.XWYY = 92;
-  typed_data.Int32x4.XWYZ = 156;
-  typed_data.Int32x4.XWYW = 220;
-  typed_data.Int32x4.XWZX = 44;
-  typed_data.Int32x4.XWZY = 108;
-  typed_data.Int32x4.XWZZ = 172;
-  typed_data.Int32x4.XWZW = 236;
-  typed_data.Int32x4.XWWX = 60;
-  typed_data.Int32x4.XWWY = 124;
-  typed_data.Int32x4.XWWZ = 188;
-  typed_data.Int32x4.XWWW = 252;
-  typed_data.Int32x4.YXXX = 1;
-  typed_data.Int32x4.YXXY = 65;
-  typed_data.Int32x4.YXXZ = 129;
-  typed_data.Int32x4.YXXW = 193;
-  typed_data.Int32x4.YXYX = 17;
-  typed_data.Int32x4.YXYY = 81;
-  typed_data.Int32x4.YXYZ = 145;
-  typed_data.Int32x4.YXYW = 209;
-  typed_data.Int32x4.YXZX = 33;
-  typed_data.Int32x4.YXZY = 97;
-  typed_data.Int32x4.YXZZ = 161;
-  typed_data.Int32x4.YXZW = 225;
-  typed_data.Int32x4.YXWX = 49;
-  typed_data.Int32x4.YXWY = 113;
-  typed_data.Int32x4.YXWZ = 177;
-  typed_data.Int32x4.YXWW = 241;
-  typed_data.Int32x4.YYXX = 5;
-  typed_data.Int32x4.YYXY = 69;
-  typed_data.Int32x4.YYXZ = 133;
-  typed_data.Int32x4.YYXW = 197;
-  typed_data.Int32x4.YYYX = 21;
-  typed_data.Int32x4.YYYY = 85;
-  typed_data.Int32x4.YYYZ = 149;
-  typed_data.Int32x4.YYYW = 213;
-  typed_data.Int32x4.YYZX = 37;
-  typed_data.Int32x4.YYZY = 101;
-  typed_data.Int32x4.YYZZ = 165;
-  typed_data.Int32x4.YYZW = 229;
-  typed_data.Int32x4.YYWX = 53;
-  typed_data.Int32x4.YYWY = 117;
-  typed_data.Int32x4.YYWZ = 181;
-  typed_data.Int32x4.YYWW = 245;
-  typed_data.Int32x4.YZXX = 9;
-  typed_data.Int32x4.YZXY = 73;
-  typed_data.Int32x4.YZXZ = 137;
-  typed_data.Int32x4.YZXW = 201;
-  typed_data.Int32x4.YZYX = 25;
-  typed_data.Int32x4.YZYY = 89;
-  typed_data.Int32x4.YZYZ = 153;
-  typed_data.Int32x4.YZYW = 217;
-  typed_data.Int32x4.YZZX = 41;
-  typed_data.Int32x4.YZZY = 105;
-  typed_data.Int32x4.YZZZ = 169;
-  typed_data.Int32x4.YZZW = 233;
-  typed_data.Int32x4.YZWX = 57;
-  typed_data.Int32x4.YZWY = 121;
-  typed_data.Int32x4.YZWZ = 185;
-  typed_data.Int32x4.YZWW = 249;
-  typed_data.Int32x4.YWXX = 13;
-  typed_data.Int32x4.YWXY = 77;
-  typed_data.Int32x4.YWXZ = 141;
-  typed_data.Int32x4.YWXW = 205;
-  typed_data.Int32x4.YWYX = 29;
-  typed_data.Int32x4.YWYY = 93;
-  typed_data.Int32x4.YWYZ = 157;
-  typed_data.Int32x4.YWYW = 221;
-  typed_data.Int32x4.YWZX = 45;
-  typed_data.Int32x4.YWZY = 109;
-  typed_data.Int32x4.YWZZ = 173;
-  typed_data.Int32x4.YWZW = 237;
-  typed_data.Int32x4.YWWX = 61;
-  typed_data.Int32x4.YWWY = 125;
-  typed_data.Int32x4.YWWZ = 189;
-  typed_data.Int32x4.YWWW = 253;
-  typed_data.Int32x4.ZXXX = 2;
-  typed_data.Int32x4.ZXXY = 66;
-  typed_data.Int32x4.ZXXZ = 130;
-  typed_data.Int32x4.ZXXW = 194;
-  typed_data.Int32x4.ZXYX = 18;
-  typed_data.Int32x4.ZXYY = 82;
-  typed_data.Int32x4.ZXYZ = 146;
-  typed_data.Int32x4.ZXYW = 210;
-  typed_data.Int32x4.ZXZX = 34;
-  typed_data.Int32x4.ZXZY = 98;
-  typed_data.Int32x4.ZXZZ = 162;
-  typed_data.Int32x4.ZXZW = 226;
-  typed_data.Int32x4.ZXWX = 50;
-  typed_data.Int32x4.ZXWY = 114;
-  typed_data.Int32x4.ZXWZ = 178;
-  typed_data.Int32x4.ZXWW = 242;
-  typed_data.Int32x4.ZYXX = 6;
-  typed_data.Int32x4.ZYXY = 70;
-  typed_data.Int32x4.ZYXZ = 134;
-  typed_data.Int32x4.ZYXW = 198;
-  typed_data.Int32x4.ZYYX = 22;
-  typed_data.Int32x4.ZYYY = 86;
-  typed_data.Int32x4.ZYYZ = 150;
-  typed_data.Int32x4.ZYYW = 214;
-  typed_data.Int32x4.ZYZX = 38;
-  typed_data.Int32x4.ZYZY = 102;
-  typed_data.Int32x4.ZYZZ = 166;
-  typed_data.Int32x4.ZYZW = 230;
-  typed_data.Int32x4.ZYWX = 54;
-  typed_data.Int32x4.ZYWY = 118;
-  typed_data.Int32x4.ZYWZ = 182;
-  typed_data.Int32x4.ZYWW = 246;
-  typed_data.Int32x4.ZZXX = 10;
-  typed_data.Int32x4.ZZXY = 74;
-  typed_data.Int32x4.ZZXZ = 138;
-  typed_data.Int32x4.ZZXW = 202;
-  typed_data.Int32x4.ZZYX = 26;
-  typed_data.Int32x4.ZZYY = 90;
-  typed_data.Int32x4.ZZYZ = 154;
-  typed_data.Int32x4.ZZYW = 218;
-  typed_data.Int32x4.ZZZX = 42;
-  typed_data.Int32x4.ZZZY = 106;
-  typed_data.Int32x4.ZZZZ = 170;
-  typed_data.Int32x4.ZZZW = 234;
-  typed_data.Int32x4.ZZWX = 58;
-  typed_data.Int32x4.ZZWY = 122;
-  typed_data.Int32x4.ZZWZ = 186;
-  typed_data.Int32x4.ZZWW = 250;
-  typed_data.Int32x4.ZWXX = 14;
-  typed_data.Int32x4.ZWXY = 78;
-  typed_data.Int32x4.ZWXZ = 142;
-  typed_data.Int32x4.ZWXW = 206;
-  typed_data.Int32x4.ZWYX = 30;
-  typed_data.Int32x4.ZWYY = 94;
-  typed_data.Int32x4.ZWYZ = 158;
-  typed_data.Int32x4.ZWYW = 222;
-  typed_data.Int32x4.ZWZX = 46;
-  typed_data.Int32x4.ZWZY = 110;
-  typed_data.Int32x4.ZWZZ = 174;
-  typed_data.Int32x4.ZWZW = 238;
-  typed_data.Int32x4.ZWWX = 62;
-  typed_data.Int32x4.ZWWY = 126;
-  typed_data.Int32x4.ZWWZ = 190;
-  typed_data.Int32x4.ZWWW = 254;
-  typed_data.Int32x4.WXXX = 3;
-  typed_data.Int32x4.WXXY = 67;
-  typed_data.Int32x4.WXXZ = 131;
-  typed_data.Int32x4.WXXW = 195;
-  typed_data.Int32x4.WXYX = 19;
-  typed_data.Int32x4.WXYY = 83;
-  typed_data.Int32x4.WXYZ = 147;
-  typed_data.Int32x4.WXYW = 211;
-  typed_data.Int32x4.WXZX = 35;
-  typed_data.Int32x4.WXZY = 99;
-  typed_data.Int32x4.WXZZ = 163;
-  typed_data.Int32x4.WXZW = 227;
-  typed_data.Int32x4.WXWX = 51;
-  typed_data.Int32x4.WXWY = 115;
-  typed_data.Int32x4.WXWZ = 179;
-  typed_data.Int32x4.WXWW = 243;
-  typed_data.Int32x4.WYXX = 7;
-  typed_data.Int32x4.WYXY = 71;
-  typed_data.Int32x4.WYXZ = 135;
-  typed_data.Int32x4.WYXW = 199;
-  typed_data.Int32x4.WYYX = 23;
-  typed_data.Int32x4.WYYY = 87;
-  typed_data.Int32x4.WYYZ = 151;
-  typed_data.Int32x4.WYYW = 215;
-  typed_data.Int32x4.WYZX = 39;
-  typed_data.Int32x4.WYZY = 103;
-  typed_data.Int32x4.WYZZ = 167;
-  typed_data.Int32x4.WYZW = 231;
-  typed_data.Int32x4.WYWX = 55;
-  typed_data.Int32x4.WYWY = 119;
-  typed_data.Int32x4.WYWZ = 183;
-  typed_data.Int32x4.WYWW = 247;
-  typed_data.Int32x4.WZXX = 11;
-  typed_data.Int32x4.WZXY = 75;
-  typed_data.Int32x4.WZXZ = 139;
-  typed_data.Int32x4.WZXW = 203;
-  typed_data.Int32x4.WZYX = 27;
-  typed_data.Int32x4.WZYY = 91;
-  typed_data.Int32x4.WZYZ = 155;
-  typed_data.Int32x4.WZYW = 219;
-  typed_data.Int32x4.WZZX = 43;
-  typed_data.Int32x4.WZZY = 107;
-  typed_data.Int32x4.WZZZ = 171;
-  typed_data.Int32x4.WZZW = 235;
-  typed_data.Int32x4.WZWX = 59;
-  typed_data.Int32x4.WZWY = 123;
-  typed_data.Int32x4.WZWZ = 187;
-  typed_data.Int32x4.WZWW = 251;
-  typed_data.Int32x4.WWXX = 15;
-  typed_data.Int32x4.WWXY = 79;
-  typed_data.Int32x4.WWXZ = 143;
-  typed_data.Int32x4.WWXW = 207;
-  typed_data.Int32x4.WWYX = 31;
-  typed_data.Int32x4.WWYY = 95;
-  typed_data.Int32x4.WWYZ = 159;
-  typed_data.Int32x4.WWYW = 223;
-  typed_data.Int32x4.WWZX = 47;
-  typed_data.Int32x4.WWZY = 111;
-  typed_data.Int32x4.WWZZ = 175;
-  typed_data.Int32x4.WWZW = 239;
-  typed_data.Int32x4.WWWX = 63;
-  typed_data.Int32x4.WWWY = 127;
-  typed_data.Int32x4.WWWZ = 191;
-  typed_data.Int32x4.WWWW = 255;
-  _native_typed_data.NativeInt32x4List = class NativeInt32x4List extends dart.mixin(core.Object, collection.ListMixin$(typed_data.Int32x4), _internal.FixedLengthListMixin$(typed_data.Int32x4)) {
-    new(length) {
-      this[_storage] = _native_typed_data.NativeInt32List.new(dart.notNull(length) * 4);
-    }
-    _externalStorage(storage) {
-      this[_storage] = storage;
-    }
-    _slowFromList(list) {
-      this[_storage] = _native_typed_data.NativeInt32List.new(dart.notNull(list[dartx.length]) * 4);
-      for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
-        let e = list[dartx._get](i);
-        this[_storage][dartx._set](i * 4 + 0, e.x);
-        this[_storage][dartx._set](i * 4 + 1, e.y);
-        this[_storage][dartx._set](i * 4 + 2, e.z);
-        this[_storage][dartx._set](i * 4 + 3, e.w);
-      }
-    }
-    get runtimeType() {
-      return dart.wrapType(typed_data.Int32x4List);
-    }
-    static fromList(list) {
-      if (_native_typed_data.NativeInt32x4List.is(list)) {
-        return new _native_typed_data.NativeInt32x4List._externalStorage(_native_typed_data.NativeInt32List.fromList(list[_storage]));
-      } else {
-        return new _native_typed_data.NativeInt32x4List._slowFromList(list);
-      }
-    }
-    get buffer() {
-      return this[_storage][dartx.buffer];
-    }
-    get lengthInBytes() {
-      return this[_storage][dartx.lengthInBytes];
-    }
-    get offsetInBytes() {
-      return this[_storage][dartx.offsetInBytes];
-    }
-    get elementSizeInBytes() {
-      return typed_data.Int32x4List.BYTES_PER_ELEMENT;
-    }
-    get length() {
-      return (dart.notNull(this[_storage][dartx.length]) / 4)[dartx.truncate]();
-    }
-    set length(value) {
-      super.length = value;
-    }
-    _get(index) {
-      _native_typed_data._checkValidIndex(index, this, this.length);
-      let _x = this[_storage][dartx._get](dart.notNull(index) * 4 + 0);
-      let _y = this[_storage][dartx._get](dart.notNull(index) * 4 + 1);
-      let _z = this[_storage][dartx._get](dart.notNull(index) * 4 + 2);
-      let _w = this[_storage][dartx._get](dart.notNull(index) * 4 + 3);
-      return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
-    }
-    _set(index, value) {
-      _native_typed_data._checkValidIndex(index, this, this.length);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 0, value.x);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 1, value.y);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 2, value.z);
-      this[_storage][dartx._set](dart.notNull(index) * 4 + 3, value.w);
-      return value;
-    }
-    sublist(start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this.length);
-      return new _native_typed_data.NativeInt32x4List._externalStorage(typed_data.Int32List._check(this[_storage][dartx.sublist](dart.notNull(start) * 4, dart.notNull(end) * 4)));
-    }
-  };
-  dart.defineNamedConstructor(_native_typed_data.NativeInt32x4List, '_externalStorage');
-  dart.defineNamedConstructor(_native_typed_data.NativeInt32x4List, '_slowFromList');
-  _native_typed_data.NativeInt32x4List[dart.implements] = () => [typed_data.Int32x4List];
-  dart.setSignature(_native_typed_data.NativeInt32x4List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [core.int]),
-      _externalStorage: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [typed_data.Int32List]),
-      _slowFromList: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [ListOfInt32x4()]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [ListOfInt32x4()])
-    }),
-    fields: () => ({[_storage]: typed_data.Int32List}),
-    getters: () => ({
-      buffer: dart.definiteFunctionType(typed_data.ByteBuffer, []),
-      lengthInBytes: dart.definiteFunctionType(core.int, []),
-      offsetInBytes: dart.definiteFunctionType(core.int, []),
-      elementSizeInBytes: dart.definiteFunctionType(core.int, []),
-      length: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      _get: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
-      _set: dart.definiteFunctionType(dart.void, [core.int, typed_data.Int32x4])
-    })
-  });
-  dart.defineExtensionMembers(_native_typed_data.NativeInt32x4List, [
-    '_get',
-    '_set',
-    'sublist',
-    'buffer',
-    'lengthInBytes',
-    'offsetInBytes',
-    'elementSizeInBytes',
-    'length'
-  ]);
-  typed_data.Float64x2 = class Float64x2 extends core.Object {
-    static new(x, y) {
-      return new _native_typed_data.NativeFloat64x2(x, y);
-    }
-    static splat(v) {
-      return new _native_typed_data.NativeFloat64x2.splat(v);
-    }
-    static zero() {
-      return new _native_typed_data.NativeFloat64x2.zero();
-    }
-    static fromFloat32x4(v) {
-      return new _native_typed_data.NativeFloat64x2.fromFloat32x4(v);
-    }
-  };
-  dart.setSignature(typed_data.Float64x2, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Float64x2, [core.double, core.double]),
-      splat: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
-      zero: dart.definiteFunctionType(typed_data.Float64x2, []),
-      fromFloat32x4: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float32x4])
-    })
-  });
-  _native_typed_data.NativeFloat64x2List = class NativeFloat64x2List extends dart.mixin(core.Object, collection.ListMixin$(typed_data.Float64x2), _internal.FixedLengthListMixin$(typed_data.Float64x2)) {
-    new(length) {
-      this[_storage] = _native_typed_data.NativeFloat64List.new(dart.notNull(length) * 2);
-    }
-    _externalStorage(storage) {
-      this[_storage] = storage;
-    }
-    _slowFromList(list) {
-      this[_storage] = _native_typed_data.NativeFloat64List.new(dart.notNull(list[dartx.length]) * 2);
-      for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
-        let e = list[dartx._get](i);
-        this[_storage][dartx._set](i * 2 + 0, e.x);
-        this[_storage][dartx._set](i * 2 + 1, e.y);
-      }
-    }
-    static fromList(list) {
-      if (_native_typed_data.NativeFloat64x2List.is(list)) {
-        return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List.fromList(list[_storage]));
-      } else {
-        return new _native_typed_data.NativeFloat64x2List._slowFromList(list);
-      }
-    }
-    get runtimeType() {
-      return dart.wrapType(typed_data.Float64x2List);
-    }
-    get buffer() {
-      return this[_storage][dartx.buffer];
-    }
-    get lengthInBytes() {
-      return this[_storage][dartx.lengthInBytes];
-    }
-    get offsetInBytes() {
-      return this[_storage][dartx.offsetInBytes];
-    }
-    get elementSizeInBytes() {
-      return typed_data.Float64x2List.BYTES_PER_ELEMENT;
-    }
-    get length() {
-      return (dart.notNull(this[_storage][dartx.length]) / 2)[dartx.truncate]();
-    }
-    set length(value) {
-      super.length = value;
-    }
-    _get(index) {
-      _native_typed_data._checkValidIndex(index, this, this.length);
-      let _x = this[_storage][dartx._get](dart.notNull(index) * 2 + 0);
-      let _y = this[_storage][dartx._get](dart.notNull(index) * 2 + 1);
-      return typed_data.Float64x2.new(_x, _y);
-    }
-    _set(index, value) {
-      _native_typed_data._checkValidIndex(index, this, this.length);
-      this[_storage][dartx._set](dart.notNull(index) * 2 + 0, value.x);
-      this[_storage][dartx._set](dart.notNull(index) * 2 + 1, value.y);
-      return value;
-    }
-    sublist(start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this.length);
-      return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List._check(this[_storage][dartx.sublist](dart.notNull(start) * 2, dart.notNull(end) * 2)));
-    }
-  };
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2List, '_externalStorage');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2List, '_slowFromList');
-  _native_typed_data.NativeFloat64x2List[dart.implements] = () => [typed_data.Float64x2List];
-  dart.setSignature(_native_typed_data.NativeFloat64x2List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [core.int]),
-      _externalStorage: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [_native_typed_data.NativeFloat64List]),
-      _slowFromList: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [ListOfFloat64x2()]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [ListOfFloat64x2()])
-    }),
-    fields: () => ({[_storage]: _native_typed_data.NativeFloat64List}),
-    getters: () => ({
-      buffer: dart.definiteFunctionType(typed_data.ByteBuffer, []),
-      lengthInBytes: dart.definiteFunctionType(core.int, []),
-      offsetInBytes: dart.definiteFunctionType(core.int, []),
-      elementSizeInBytes: dart.definiteFunctionType(core.int, []),
-      length: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      _get: dart.definiteFunctionType(typed_data.Float64x2, [core.int]),
-      _set: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float64x2])
-    })
-  });
-  dart.defineExtensionMembers(_native_typed_data.NativeFloat64x2List, [
-    '_get',
-    '_set',
-    'sublist',
-    'buffer',
-    'lengthInBytes',
-    'offsetInBytes',
-    'elementSizeInBytes',
-    'length'
-  ]);
-  const _invalidPosition = Symbol('_invalidPosition');
-  const _checkPosition = Symbol('_checkPosition');
-  dart.defineExtensionNames([
-    'buffer',
-    'lengthInBytes',
-    'offsetInBytes',
-    'elementSizeInBytes'
-  ]);
-  _native_typed_data.NativeTypedData = class NativeTypedData extends core.Object {
-    get [dartx.buffer]() {
-      return this.buffer;
-    }
-    get [dartx.lengthInBytes]() {
-      return this.byteLength;
-    }
-    get [dartx.offsetInBytes]() {
-      return this.byteOffset;
-    }
-    get [dartx.elementSizeInBytes]() {
-      return this.BYTES_PER_ELEMENT;
-    }
-    [_invalidPosition](position, length, name) {
-      if (!(typeof position == 'number')) {
-        dart.throw(new core.ArgumentError.value(position, name, 'Invalid list position'));
-      } else {
-        dart.throw(new core.RangeError.range(position, 0, length, name));
-      }
-    }
-    [_checkPosition](position, length, name) {
-      if (position >>> 0 !== position || position > dart.notNull(length)) {
-        this[_invalidPosition](position, length, name);
-      }
-    }
-  };
-  _native_typed_data.NativeTypedData[dart.implements] = () => [typed_data.TypedData];
-  dart.setSignature(_native_typed_data.NativeTypedData, {
-    getters: () => ({
-      [dartx.buffer]: dart.definiteFunctionType(typed_data.ByteBuffer, []),
-      [dartx.lengthInBytes]: dart.definiteFunctionType(core.int, []),
-      [dartx.offsetInBytes]: dart.definiteFunctionType(core.int, []),
-      [dartx.elementSizeInBytes]: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      [_invalidPosition]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.String]),
-      [_checkPosition]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.String])
-    })
-  });
-  dart.registerExtension(dart.global.ArrayBufferView, _native_typed_data.NativeTypedData);
-  _native_typed_data._checkLength = function(length) {
-    if (!(typeof length == 'number')) dart.throw(new core.ArgumentError(dart.str`Invalid length ${length}`));
-    return core.int._check(length);
-  };
-  dart.fn(_native_typed_data._checkLength, dynamicToint());
-  _native_typed_data._checkViewArguments = function(buffer, offsetInBytes, length) {
-    if (!_native_typed_data.NativeByteBuffer.is(buffer)) {
-      dart.throw(new core.ArgumentError('Invalid view buffer'));
-    }
-    if (!(typeof offsetInBytes == 'number')) {
-      dart.throw(new core.ArgumentError(dart.str`Invalid view offsetInBytes ${offsetInBytes}`));
-    }
-    if (length != null && !(typeof length == 'number')) {
-      dart.throw(new core.ArgumentError(dart.str`Invalid view length ${length}`));
-    }
-  };
-  dart.fn(_native_typed_data._checkViewArguments, dynamicAnddynamicAnddynamicTovoid());
-  _native_typed_data._ensureNativeList = function(list) {
-    if (_interceptors.JSIndexable.is(list)) return list;
-    let result = core.List.new(list[dartx.length]);
-    for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
-      result[dartx._set](i, list[dartx._get](i));
-    }
-    return result;
-  };
-  dart.lazyFn(_native_typed_data._ensureNativeList, () => ListToList());
-  const _getFloat32 = Symbol('_getFloat32');
-  const _getFloat64 = Symbol('_getFloat64');
-  const _getInt16 = Symbol('_getInt16');
-  const _getInt32 = Symbol('_getInt32');
-  const _getUint16 = Symbol('_getUint16');
-  const _getUint32 = Symbol('_getUint32');
-  const _setFloat32 = Symbol('_setFloat32');
-  const _setFloat64 = Symbol('_setFloat64');
-  const _setInt16 = Symbol('_setInt16');
-  const _setInt32 = Symbol('_setInt32');
-  const _setUint16 = Symbol('_setUint16');
-  const _setUint32 = Symbol('_setUint32');
-  dart.defineExtensionNames([
-    'runtimeType',
-    'elementSizeInBytes',
-    'getFloat32',
-    'getFloat64',
-    'getInt16',
-    'getInt32',
-    'getInt64',
-    'getInt8',
-    'getUint16',
-    'getUint32',
-    'getUint64',
-    'getUint8',
-    'setFloat32',
-    'setFloat64',
-    'setInt16',
-    'setInt32',
-    'setInt64',
-    'setInt8',
-    'setUint16',
-    'setUint32',
-    'setUint64',
-    'setUint8'
-  ]);
-  _native_typed_data.NativeByteData = class NativeByteData extends _native_typed_data.NativeTypedData {
-    static new(length) {
-      return _native_typed_data.NativeByteData._create1(_native_typed_data._checkLength(length));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeByteData._create2(buffer, offsetInBytes) : _native_typed_data.NativeByteData._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.ByteData);
-    }
-    get [dartx.elementSizeInBytes]() {
-      return 1;
-    }
-    [dartx.getFloat32](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_getFloat32](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_getFloat32](...args) {
-      return this.getFloat32.apply(this, args);
-    }
-    [dartx.getFloat64](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_getFloat64](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_getFloat64](...args) {
-      return this.getFloat64.apply(this, args);
-    }
-    [dartx.getInt16](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_getInt16](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_getInt16](...args) {
-      return this.getInt16.apply(this, args);
-    }
-    [dartx.getInt32](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_getInt32](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_getInt32](...args) {
-      return this.getInt32.apply(this, args);
-    }
-    [dartx.getInt64](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      dart.throw(new core.UnsupportedError('Int64 accessor not supported by dart2js.'));
-    }
-    [dartx.getInt8](...args) {
-      return this.getInt8.apply(this, args);
-    }
-    [dartx.getUint16](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_getUint16](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_getUint16](...args) {
-      return this.getUint16.apply(this, args);
-    }
-    [dartx.getUint32](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_getUint32](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_getUint32](...args) {
-      return this.getUint32.apply(this, args);
-    }
-    [dartx.getUint64](byteOffset, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      dart.throw(new core.UnsupportedError('Uint64 accessor not supported by dart2js.'));
-    }
-    [dartx.getUint8](...args) {
-      return this.getUint8.apply(this, args);
-    }
-    [dartx.setFloat32](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_setFloat32](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_setFloat32](...args) {
-      return this.setFloat32.apply(this, args);
-    }
-    [dartx.setFloat64](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_setFloat64](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_setFloat64](...args) {
-      return this.setFloat64.apply(this, args);
-    }
-    [dartx.setInt16](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_setInt16](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_setInt16](...args) {
-      return this.setInt16.apply(this, args);
-    }
-    [dartx.setInt32](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_setInt32](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_setInt32](...args) {
-      return this.setInt32.apply(this, args);
-    }
-    [dartx.setInt64](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      dart.throw(new core.UnsupportedError('Int64 accessor not supported by dart2js.'));
-    }
-    [dartx.setInt8](...args) {
-      return this.setInt8.apply(this, args);
-    }
-    [dartx.setUint16](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_setUint16](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_setUint16](...args) {
-      return this.setUint16.apply(this, args);
-    }
-    [dartx.setUint32](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      return this[_setUint32](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
-    }
-    [_setUint32](...args) {
-      return this.setUint32.apply(this, args);
-    }
-    [dartx.setUint64](byteOffset, value, endian) {
-      if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
-      dart.throw(new core.UnsupportedError('Uint64 accessor not supported by dart2js.'));
-    }
-    [dartx.setUint8](...args) {
-      return this.setUint8.apply(this, args);
-    }
-    static _create1(arg) {
-      return new DataView(new ArrayBuffer(arg));
-    }
-    static _create2(arg1, arg2) {
-      return new DataView(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new DataView(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeByteData[dart.implements] = () => [typed_data.ByteData];
-  dart.setSignature(_native_typed_data.NativeByteData, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeByteData, [core.int]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeByteData, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({
-      [dartx.getFloat32]: dart.definiteFunctionType(core.double, [core.int], [typed_data.Endianness]),
-      [_getFloat32]: dart.definiteFunctionType(core.double, [core.int], [core.bool]),
-      [dartx.getFloat64]: dart.definiteFunctionType(core.double, [core.int], [typed_data.Endianness]),
-      [_getFloat64]: dart.definiteFunctionType(core.double, [core.int], [core.bool]),
-      [dartx.getInt16]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
-      [_getInt16]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
-      [dartx.getInt32]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
-      [_getInt32]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
-      [dartx.getInt64]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
-      [dartx.getInt8]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.getUint16]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
-      [_getUint16]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
-      [dartx.getUint32]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
-      [_getUint32]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
-      [dartx.getUint64]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
-      [dartx.getUint8]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.setFloat32]: dart.definiteFunctionType(dart.void, [core.int, core.num], [typed_data.Endianness]),
-      [_setFloat32]: dart.definiteFunctionType(dart.void, [core.int, core.num], [core.bool]),
-      [dartx.setFloat64]: dart.definiteFunctionType(dart.void, [core.int, core.num], [typed_data.Endianness]),
-      [_setFloat64]: dart.definiteFunctionType(dart.void, [core.int, core.num], [core.bool]),
-      [dartx.setInt16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
-      [_setInt16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
-      [dartx.setInt32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
-      [_setInt32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
-      [dartx.setInt64]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
-      [dartx.setInt8]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.setUint16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
-      [_setUint16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
-      [dartx.setUint32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
-      [_setUint32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
-      [dartx.setUint64]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
-      [dartx.setUint8]: dart.definiteFunctionType(dart.void, [core.int, core.int])
-    }),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeByteData, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeByteData, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeByteData, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.DataView, _native_typed_data.NativeByteData);
-  const _setRangeFast = Symbol('_setRangeFast');
-  _native_typed_data.NativeTypedArray = class NativeTypedArray extends _native_typed_data.NativeTypedData {
-    [_setRangeFast](start, end, source, skipCount) {
-      let targetLength = this[dartx.length];
-      this[_checkPosition](start, targetLength, "start");
-      this[_checkPosition](end, targetLength, "end");
-      if (dart.notNull(start) > dart.notNull(end)) dart.throw(new core.RangeError.range(start, 0, end));
-      let count = dart.notNull(end) - dart.notNull(start);
-      if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError(skipCount));
-      let sourceLength = source[dartx.length];
-      if (dart.notNull(sourceLength) - dart.notNull(skipCount) < count) {
-        dart.throw(new core.StateError('Not enough elements'));
-      }
-      if (skipCount != 0 || sourceLength != count) {
-        source = source.subarray(skipCount, dart.notNull(skipCount) + count);
-      }
-      this.set(source, start);
-    }
-  };
-  _native_typed_data.NativeTypedArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior];
-  dart.setSignature(_native_typed_data.NativeTypedArray, {
-    methods: () => ({[_setRangeFast]: dart.definiteFunctionType(dart.void, [core.int, core.int, _native_typed_data.NativeTypedArray, core.int])})
-  });
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'setRange'
-  ]);
-  _native_typed_data.NativeTypedArrayOfDouble = class NativeTypedArrayOfDouble extends dart.mixin(_native_typed_data.NativeTypedArray, collection.ListMixin$(core.double), _internal.FixedLengthListMixin$(core.double)) {
-    get length() {
-      return this.length;
-    }
-    set length(value) {
-      super.length = value;
-    }
-    _get(index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    _set(index, value) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      this[index] = value;
-      return value;
-    }
-    setRange(start, end, iterable, skipCount) {
-      if (skipCount === void 0) skipCount = 0;
-      if (_native_typed_data.NativeTypedArrayOfDouble.is(iterable)) {
-        this[_setRangeFast](start, end, iterable, skipCount);
-        return;
-      }
-      super[dartx.setRange](start, end, iterable, skipCount);
-    }
-  };
-  dart.setSignature(_native_typed_data.NativeTypedArrayOfDouble, {
-    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      _get: dart.definiteFunctionType(core.double, [core.int]),
-      _set: dart.definiteFunctionType(dart.void, [core.int, core.num])
-    })
-  });
-  dart.defineExtensionMembers(_native_typed_data.NativeTypedArrayOfDouble, ['_get', '_set', 'setRange', 'length']);
-  dart.defineExtensionNames([
-    'length',
-    '_set',
-    'setRange'
-  ]);
-  _native_typed_data.NativeTypedArrayOfInt = class NativeTypedArrayOfInt extends dart.mixin(_native_typed_data.NativeTypedArray, collection.ListMixin$(core.int), _internal.FixedLengthListMixin$(core.int)) {
-    get length() {
-      return this.length;
-    }
-    set length(value) {
-      super.length = value;
-    }
-    _set(index, value) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      this[index] = value;
-      return value;
-    }
-    setRange(start, end, iterable, skipCount) {
-      if (skipCount === void 0) skipCount = 0;
-      if (_native_typed_data.NativeTypedArrayOfInt.is(iterable)) {
-        this[_setRangeFast](start, end, iterable, skipCount);
-        return;
-      }
-      super[dartx.setRange](start, end, iterable, skipCount);
-    }
-  };
-  _native_typed_data.NativeTypedArrayOfInt[dart.implements] = () => [ListOfint()];
-  dart.setSignature(_native_typed_data.NativeTypedArrayOfInt, {
-    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({_set: dart.definiteFunctionType(dart.void, [core.int, core.int])})
-  });
-  dart.defineExtensionMembers(_native_typed_data.NativeTypedArrayOfInt, ['_set', 'setRange', 'length']);
-  dart.defineExtensionNames([
-    'runtimeType',
-    'sublist'
-  ]);
-  _native_typed_data.NativeFloat32List = class NativeFloat32List extends _native_typed_data.NativeTypedArrayOfDouble {
-    static new(length) {
-      return _native_typed_data.NativeFloat32List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeFloat32List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeFloat32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeFloat32List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Float32List);
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeFloat32List._create1(source);
-    }
-    static _create1(arg) {
-      return new Float32Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Float32Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Float32Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeFloat32List[dart.implements] = () => [typed_data.Float32List];
-  dart.setSignature(_native_typed_data.NativeFloat32List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [ListOfdouble()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Float32Array, _native_typed_data.NativeFloat32List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    'sublist'
-  ]);
-  _native_typed_data.NativeFloat64List = class NativeFloat64List extends _native_typed_data.NativeTypedArrayOfDouble {
-    static new(length) {
-      return _native_typed_data.NativeFloat64List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeFloat64List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeFloat64List._create2(buffer, offsetInBytes) : _native_typed_data.NativeFloat64List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Float64List);
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeFloat64List._create1(source);
-    }
-    static _create1(arg) {
-      return new Float64Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Float64Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Float64Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeFloat64List[dart.implements] = () => [typed_data.Float64List];
-  dart.setSignature(_native_typed_data.NativeFloat64List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [ListOfdouble()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Float64Array, _native_typed_data.NativeFloat64List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeInt16List = class NativeInt16List extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeInt16List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt16List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeInt16List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt16List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Int16List);
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeInt16List._create1(source);
-    }
-    static _create1(arg) {
-      return new Int16Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Int16Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Int16Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeInt16List[dart.implements] = () => [typed_data.Int16List];
-  dart.setSignature(_native_typed_data.NativeInt16List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [_native_typed_data.NativeByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Int16Array, _native_typed_data.NativeInt16List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeInt32List = class NativeInt32List extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeInt32List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt32List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeInt32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt32List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Int32List);
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeInt32List._create1(source);
-    }
-    static _create1(arg) {
-      return new Int32Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Int32Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Int32Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeInt32List[dart.implements] = () => [typed_data.Int32List];
-  dart.setSignature(_native_typed_data.NativeInt32List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Int32Array, _native_typed_data.NativeInt32List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeInt8List = class NativeInt8List extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeInt8List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt8List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return _native_typed_data.NativeInt8List._check(length == null ? _native_typed_data.NativeInt8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt8List._create3(buffer, offsetInBytes, length));
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Int8List);
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeInt8List._create1(source);
-    }
-    static _create1(arg) {
-      return new Int8Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Int8Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Int8Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeInt8List[dart.implements] = () => [typed_data.Int8List];
-  dart.setSignature(_native_typed_data.NativeInt8List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(typed_data.Int8List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Int8Array, _native_typed_data.NativeInt8List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeUint16List = class NativeUint16List extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeUint16List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(list) {
-      return _native_typed_data.NativeUint16List._create1(_native_typed_data._ensureNativeList(list));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeUint16List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint16List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Uint16List);
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeUint16List._create1(source);
-    }
-    static _create1(arg) {
-      return new Uint16Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Uint16Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Uint16Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeUint16List[dart.implements] = () => [typed_data.Uint16List];
-  dart.setSignature(_native_typed_data.NativeUint16List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Uint16Array, _native_typed_data.NativeUint16List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeUint32List = class NativeUint32List extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeUint32List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint32List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeUint32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint32List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Uint32List);
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeUint32List._create1(source);
-    }
-    static _create1(arg) {
-      return new Uint32Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Uint32Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Uint32Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeUint32List[dart.implements] = () => [typed_data.Uint32List];
-  dart.setSignature(_native_typed_data.NativeUint32List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Uint32Array, _native_typed_data.NativeUint32List);
-  dart.defineExtensionNames([
-    'runtimeType',
-    'length',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeUint8ClampedList = class NativeUint8ClampedList extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeUint8ClampedList._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8ClampedList._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Uint8ClampedList);
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    set [dartx.length](value) {
-      super[dartx.length] = value;
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeUint8ClampedList._create1(source);
-    }
-    static _create1(arg) {
-      return new Uint8ClampedArray(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Uint8ClampedArray(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Uint8ClampedArray(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeUint8ClampedList[dart.implements] = () => [typed_data.Uint8ClampedList];
-  dart.setSignature(_native_typed_data.NativeUint8ClampedList, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Uint8ClampedArray, _native_typed_data.NativeUint8ClampedList);
-  dart.registerExtension(dart.global.CanvasPixelArray, _native_typed_data.NativeUint8ClampedList);
-  dart.defineExtensionNames([
-    'runtimeType',
-    'length',
-    '_get',
-    'sublist'
-  ]);
-  _native_typed_data.NativeUint8List = class NativeUint8List extends _native_typed_data.NativeTypedArrayOfInt {
-    static new(length) {
-      return _native_typed_data.NativeUint8List._create1(_native_typed_data._checkLength(length));
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint8List._create1(_native_typed_data._ensureNativeList(elements));
-    }
-    static view(buffer, offsetInBytes, length) {
-      _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
-      return length == null ? _native_typed_data.NativeUint8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8List._create3(buffer, offsetInBytes, length);
-    }
-    get [dartx.runtimeType]() {
-      return dart.wrapType(typed_data.Uint8List);
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    set [dartx.length](value) {
-      super[dartx.length] = value;
-    }
-    [dartx._get](index) {
-      _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
-      return this[index];
-    }
-    [dartx.sublist](start, end) {
-      if (end === void 0) end = null;
-      end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
-      let source = this.subarray(start, end);
-      return _native_typed_data.NativeUint8List._create1(source);
-    }
-    static _create1(arg) {
-      return new Uint8Array(arg);
-    }
-    static _create2(arg1, arg2) {
-      return new Uint8Array(arg1, arg2);
-    }
-    static _create3(arg1, arg2, arg3) {
-      return new Uint8Array(arg1, arg2, arg3);
-    }
-  };
-  _native_typed_data.NativeUint8List[dart.implements] = () => [typed_data.Uint8List];
-  dart.setSignature(_native_typed_data.NativeUint8List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [core.int]),
-      fromList: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [ListOfint()]),
-      view: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [typed_data.ByteBuffer, core.int, core.int])
-    }),
-    methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
-    statics: () => ({
-      _create1: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [dart.dynamic]),
-      _create2: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [dart.dynamic, dart.dynamic]),
-      _create3: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create1', '_create2', '_create3']
-  });
-  dart.registerExtension(dart.global.Uint8Array, _native_typed_data.NativeUint8List);
-  _native_typed_data.NativeFloat32x4 = class NativeFloat32x4 extends core.Object {
-    static _truncate(x) {
-      _native_typed_data.NativeFloat32x4._list[dartx._set](0, core.num._check(x));
-      return _native_typed_data.NativeFloat32x4._list[dartx._get](0);
-    }
-    new(x, y, z, w) {
-      this.x = core.double._check(_native_typed_data.NativeFloat32x4._truncate(x));
-      this.y = core.double._check(_native_typed_data.NativeFloat32x4._truncate(y));
-      this.z = core.double._check(_native_typed_data.NativeFloat32x4._truncate(z));
-      this.w = core.double._check(_native_typed_data.NativeFloat32x4._truncate(w));
-      if (!(typeof x == 'number')) dart.throw(new core.ArgumentError(x));
-      if (!(typeof y == 'number')) dart.throw(new core.ArgumentError(y));
-      if (!(typeof z == 'number')) dart.throw(new core.ArgumentError(z));
-      if (!(typeof w == 'number')) dart.throw(new core.ArgumentError(w));
-    }
-    splat(v) {
-      NativeFloat32x4.prototype.new.call(this, v, v, v, v);
-    }
-    zero() {
-      NativeFloat32x4.prototype._truncated.call(this, 0.0, 0.0, 0.0, 0.0);
-    }
-    static fromInt32x4Bits(i) {
-      _native_typed_data.NativeFloat32x4._uint32view[dartx._set](0, i.x);
-      _native_typed_data.NativeFloat32x4._uint32view[dartx._set](1, i.y);
-      _native_typed_data.NativeFloat32x4._uint32view[dartx._set](2, i.z);
-      _native_typed_data.NativeFloat32x4._uint32view[dartx._set](3, i.w);
-      return new _native_typed_data.NativeFloat32x4._truncated(_native_typed_data.NativeFloat32x4._list[dartx._get](0), _native_typed_data.NativeFloat32x4._list[dartx._get](1), _native_typed_data.NativeFloat32x4._list[dartx._get](2), _native_typed_data.NativeFloat32x4._list[dartx._get](3));
-    }
-    fromFloat64x2(v) {
-      NativeFloat32x4.prototype._truncated.call(this, core.double._check(_native_typed_data.NativeFloat32x4._truncate(v.x)), core.double._check(_native_typed_data.NativeFloat32x4._truncate(v.y)), 0.0, 0.0);
-    }
-    _doubles(x, y, z, w) {
-      this.x = core.double._check(_native_typed_data.NativeFloat32x4._truncate(x));
-      this.y = core.double._check(_native_typed_data.NativeFloat32x4._truncate(y));
-      this.z = core.double._check(_native_typed_data.NativeFloat32x4._truncate(z));
-      this.w = core.double._check(_native_typed_data.NativeFloat32x4._truncate(w));
-    }
-    _truncated(x, y, z, w) {
-      this.x = x;
-      this.y = y;
-      this.z = z;
-      this.w = w;
-    }
-    toString() {
-      return dart.str`[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;
-    }
-    ['+'](other) {
-      let _x = dart.notNull(this.x) + dart.notNull(other.x);
-      let _y = dart.notNull(this.y) + dart.notNull(other.y);
-      let _z = dart.notNull(this.z) + dart.notNull(other.z);
-      let _w = dart.notNull(this.w) + dart.notNull(other.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    _negate() {
-      return new _native_typed_data.NativeFloat32x4._truncated(-dart.notNull(this.x), -dart.notNull(this.y), -dart.notNull(this.z), -dart.notNull(this.w));
-    }
-    ['-'](other) {
-      let _x = dart.notNull(this.x) - dart.notNull(other.x);
-      let _y = dart.notNull(this.y) - dart.notNull(other.y);
-      let _z = dart.notNull(this.z) - dart.notNull(other.z);
-      let _w = dart.notNull(this.w) - dart.notNull(other.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    ['*'](other) {
-      let _x = dart.notNull(this.x) * dart.notNull(other.x);
-      let _y = dart.notNull(this.y) * dart.notNull(other.y);
-      let _z = dart.notNull(this.z) * dart.notNull(other.z);
-      let _w = dart.notNull(this.w) * dart.notNull(other.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    ['/'](other) {
-      let _x = dart.notNull(this.x) / dart.notNull(other.x);
-      let _y = dart.notNull(this.y) / dart.notNull(other.y);
-      let _z = dart.notNull(this.z) / dart.notNull(other.z);
-      let _w = dart.notNull(this.w) / dart.notNull(other.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    lessThan(other) {
-      let _cx = dart.notNull(this.x) < dart.notNull(other.x);
-      let _cy = dart.notNull(this.y) < dart.notNull(other.y);
-      let _cz = dart.notNull(this.z) < dart.notNull(other.z);
-      let _cw = dart.notNull(this.w) < dart.notNull(other.w);
-      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
-    }
-    lessThanOrEqual(other) {
-      let _cx = dart.notNull(this.x) <= dart.notNull(other.x);
-      let _cy = dart.notNull(this.y) <= dart.notNull(other.y);
-      let _cz = dart.notNull(this.z) <= dart.notNull(other.z);
-      let _cw = dart.notNull(this.w) <= dart.notNull(other.w);
-      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
-    }
-    greaterThan(other) {
-      let _cx = dart.notNull(this.x) > dart.notNull(other.x);
-      let _cy = dart.notNull(this.y) > dart.notNull(other.y);
-      let _cz = dart.notNull(this.z) > dart.notNull(other.z);
-      let _cw = dart.notNull(this.w) > dart.notNull(other.w);
-      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
-    }
-    greaterThanOrEqual(other) {
-      let _cx = dart.notNull(this.x) >= dart.notNull(other.x);
-      let _cy = dart.notNull(this.y) >= dart.notNull(other.y);
-      let _cz = dart.notNull(this.z) >= dart.notNull(other.z);
-      let _cw = dart.notNull(this.w) >= dart.notNull(other.w);
-      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
-    }
-    equal(other) {
-      let _cx = this.x == other.x;
-      let _cy = this.y == other.y;
-      let _cz = this.z == other.z;
-      let _cw = this.w == other.w;
-      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
-    }
-    notEqual(other) {
-      let _cx = this.x != other.x;
-      let _cy = this.y != other.y;
-      let _cz = this.z != other.z;
-      let _cw = this.w != other.w;
-      return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
-    }
-    scale(s) {
-      let _x = dart.notNull(s) * dart.notNull(this.x);
-      let _y = dart.notNull(s) * dart.notNull(this.y);
-      let _z = dart.notNull(s) * dart.notNull(this.z);
-      let _w = dart.notNull(s) * dart.notNull(this.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    abs() {
-      let _x = this.x[dartx.abs]();
-      let _y = this.y[dartx.abs]();
-      let _z = this.z[dartx.abs]();
-      let _w = this.w[dartx.abs]();
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    clamp(lowerLimit, upperLimit) {
-      let _lx = lowerLimit.x;
-      let _ly = lowerLimit.y;
-      let _lz = lowerLimit.z;
-      let _lw = lowerLimit.w;
-      let _ux = upperLimit.x;
-      let _uy = upperLimit.y;
-      let _uz = upperLimit.z;
-      let _uw = upperLimit.w;
-      let _x = this.x;
-      let _y = this.y;
-      let _z = this.z;
-      let _w = this.w;
-      _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
-      _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
-      _z = dart.notNull(_z) > dart.notNull(_uz) ? _uz : _z;
-      _w = dart.notNull(_w) > dart.notNull(_uw) ? _uw : _w;
-      _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
-      _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
-      _z = dart.notNull(_z) < dart.notNull(_lz) ? _lz : _z;
-      _w = dart.notNull(_w) < dart.notNull(_lw) ? _lw : _w;
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    get signMask() {
-      let view = _native_typed_data.NativeFloat32x4._uint32view;
-      let mx = null, my = null, mz = null, mw = null;
-      _native_typed_data.NativeFloat32x4._list[dartx._set](0, this.x);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](1, this.y);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](2, this.z);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](3, this.w);
-      mx = (dart.notNull(view[dartx._get](0)) & 2147483648) >>> 31;
-      my = (dart.notNull(view[dartx._get](1)) & 2147483648) >>> 30;
-      mz = (dart.notNull(view[dartx._get](2)) & 2147483648) >>> 29;
-      mw = (dart.notNull(view[dartx._get](3)) & 2147483648) >>> 28;
-      return core.int._check(dart.dsend(dart.dsend(dart.dsend(mx, '|', my), '|', mz), '|', mw));
-    }
-    shuffle(mask) {
-      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
-        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
-      }
-      _native_typed_data.NativeFloat32x4._list[dartx._set](0, this.x);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](1, this.y);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](2, this.z);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](3, this.w);
-      let _x = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) & 3);
-      let _y = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
-      let _z = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
-      let _w = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    shuffleMix(other, mask) {
-      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
-        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
-      }
-      _native_typed_data.NativeFloat32x4._list[dartx._set](0, this.x);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](1, this.y);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](2, this.z);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](3, this.w);
-      let _x = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) & 3);
-      let _y = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](0, other.x);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](1, other.y);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](2, other.z);
-      _native_typed_data.NativeFloat32x4._list[dartx._set](3, other.w);
-      let _z = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
-      let _w = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    withX(newX) {
-      return new _native_typed_data.NativeFloat32x4._truncated(core.double._check(_native_typed_data.NativeFloat32x4._truncate(newX)), this.y, this.z, this.w);
-    }
-    withY(newY) {
-      return new _native_typed_data.NativeFloat32x4._truncated(this.x, core.double._check(_native_typed_data.NativeFloat32x4._truncate(newY)), this.z, this.w);
-    }
-    withZ(newZ) {
-      return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, core.double._check(_native_typed_data.NativeFloat32x4._truncate(newZ)), this.w);
-    }
-    withW(newW) {
-      return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, this.z, core.double._check(_native_typed_data.NativeFloat32x4._truncate(newW)));
-    }
-    min(other) {
-      let _x = dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x;
-      let _y = dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y;
-      let _z = dart.notNull(this.z) < dart.notNull(other.z) ? this.z : other.z;
-      let _w = dart.notNull(this.w) < dart.notNull(other.w) ? this.w : other.w;
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    max(other) {
-      let _x = dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x;
-      let _y = dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y;
-      let _z = dart.notNull(this.z) > dart.notNull(other.z) ? this.z : other.z;
-      let _w = dart.notNull(this.w) > dart.notNull(other.w) ? this.w : other.w;
-      return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
-    }
-    sqrt() {
-      let _x = math.sqrt(this.x);
-      let _y = math.sqrt(this.y);
-      let _z = math.sqrt(this.z);
-      let _w = math.sqrt(this.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    reciprocal() {
-      let _x = 1.0 / dart.notNull(this.x);
-      let _y = 1.0 / dart.notNull(this.y);
-      let _z = 1.0 / dart.notNull(this.z);
-      let _w = 1.0 / dart.notNull(this.w);
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-    reciprocalSqrt() {
-      let _x = math.sqrt(1.0 / dart.notNull(this.x));
-      let _y = math.sqrt(1.0 / dart.notNull(this.y));
-      let _z = math.sqrt(1.0 / dart.notNull(this.z));
-      let _w = math.sqrt(1.0 / dart.notNull(this.w));
-      return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
-    }
-  };
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, 'splat');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, 'zero');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, 'fromFloat64x2');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, '_doubles');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, '_truncated');
-  _native_typed_data.NativeFloat32x4[dart.implements] = () => [typed_data.Float32x4];
-  dart.setSignature(_native_typed_data.NativeFloat32x4, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double, core.double, core.double, core.double]),
-      splat: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double]),
-      zero: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, []),
-      fromInt32x4Bits: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [typed_data.Int32x4]),
-      fromFloat64x2: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [typed_data.Float64x2]),
-      _doubles: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double, core.double, core.double, core.double]),
-      _truncated: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double, core.double, core.double, core.double])
-    }),
-    fields: () => ({
-      x: core.double,
-      y: core.double,
-      z: core.double,
-      w: core.double
-    }),
-    getters: () => ({signMask: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      '+': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
-      _negate: dart.definiteFunctionType(typed_data.Float32x4, []),
-      '-': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
-      '*': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
-      '/': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
-      lessThan: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
-      lessThanOrEqual: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
-      greaterThan: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
-      greaterThanOrEqual: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
-      equal: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
-      notEqual: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
-      scale: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
-      abs: dart.definiteFunctionType(typed_data.Float32x4, []),
-      clamp: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4]),
-      shuffle: dart.definiteFunctionType(typed_data.Float32x4, [core.int]),
-      shuffleMix: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4, core.int]),
-      withX: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
-      withY: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
-      withZ: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
-      withW: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
-      min: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
-      max: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
-      sqrt: dart.definiteFunctionType(typed_data.Float32x4, []),
-      reciprocal: dart.definiteFunctionType(typed_data.Float32x4, []),
-      reciprocalSqrt: dart.definiteFunctionType(typed_data.Float32x4, [])
-    }),
-    sfields: () => ({
-      _list: _native_typed_data.NativeFloat32List,
-      _uint32view: typed_data.Uint32List
-    }),
-    statics: () => ({_truncate: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
-    names: ['_truncate']
-  });
-  dart.defineLazy(_native_typed_data.NativeFloat32x4, {
-    get _list() {
-      return _native_typed_data.NativeFloat32List.new(4);
-    },
-    get _uint32view() {
-      return _native_typed_data.NativeFloat32x4._list[dartx.buffer][dartx.asUint32List]();
-    }
-  });
-  _native_typed_data.NativeInt32x4 = class NativeInt32x4 extends core.Object {
-    static _truncate(x) {
-      _native_typed_data.NativeInt32x4._list[dartx._set](0, core.int._check(x));
-      return _native_typed_data.NativeInt32x4._list[dartx._get](0);
-    }
-    new(x, y, z, w) {
-      this.x = core.int._check(_native_typed_data.NativeInt32x4._truncate(x));
-      this.y = core.int._check(_native_typed_data.NativeInt32x4._truncate(y));
-      this.z = core.int._check(_native_typed_data.NativeInt32x4._truncate(z));
-      this.w = core.int._check(_native_typed_data.NativeInt32x4._truncate(w));
-      if (x != this.x && !(typeof x == 'number')) dart.throw(new core.ArgumentError(x));
-      if (y != this.y && !(typeof y == 'number')) dart.throw(new core.ArgumentError(y));
-      if (z != this.z && !(typeof z == 'number')) dart.throw(new core.ArgumentError(z));
-      if (w != this.w && !(typeof w == 'number')) dart.throw(new core.ArgumentError(w));
-    }
-    bool(x, y, z, w) {
-      this.x = dart.test(x) ? -1 : 0;
-      this.y = dart.test(y) ? -1 : 0;
-      this.z = dart.test(z) ? -1 : 0;
-      this.w = dart.test(w) ? -1 : 0;
-    }
-    static fromFloat32x4Bits(f) {
-      let floatList = _native_typed_data.NativeFloat32x4._list;
-      floatList[dartx._set](0, f.x);
-      floatList[dartx._set](1, f.y);
-      floatList[dartx._set](2, f.z);
-      floatList[dartx._set](3, f.w);
-      let view = _native_typed_data.NativeInt32List._check(floatList[dartx.buffer][dartx.asInt32List]());
-      return new _native_typed_data.NativeInt32x4._truncated(view[dartx._get](0), view[dartx._get](1), view[dartx._get](2), view[dartx._get](3));
-    }
-    _truncated(x, y, z, w) {
-      this.x = x;
-      this.y = y;
-      this.z = z;
-      this.w = w;
-    }
-    toString() {
-      return dart.str`[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;
-    }
-    ['|'](other) {
-      return new _native_typed_data.NativeInt32x4._truncated(this.x | other.x, this.y | other.y, this.z | other.z, this.w | other.w);
-    }
-    ['&'](other) {
-      return new _native_typed_data.NativeInt32x4._truncated(this.x & other.x, this.y & other.y, this.z & other.z, this.w & other.w);
-    }
-    ['^'](other) {
-      return new _native_typed_data.NativeInt32x4._truncated(this.x ^ other.x, this.y ^ other.y, this.z ^ other.z, this.w ^ other.w);
-    }
-    ['+'](other) {
-      return new _native_typed_data.NativeInt32x4._truncated(this.x + other.x | 0, this.y + other.y | 0, this.z + other.z | 0, this.w + other.w | 0);
-    }
-    ['-'](other) {
-      return new _native_typed_data.NativeInt32x4._truncated(this.x - other.x | 0, this.y - other.y | 0, this.z - other.z | 0, this.w - other.w | 0);
-    }
-    _negate() {
-      return new _native_typed_data.NativeInt32x4._truncated(-this.x | 0, -this.y | 0, -this.z | 0, -this.w | 0);
-    }
-    get signMask() {
-      let mx = (dart.notNull(this.x) & 2147483648) >>> 31;
-      let my = (dart.notNull(this.y) & 2147483648) >>> 31;
-      let mz = (dart.notNull(this.z) & 2147483648) >>> 31;
-      let mw = (dart.notNull(this.w) & 2147483648) >>> 31;
-      return (mx | my << 1 | mz << 2 | mw << 3) >>> 0;
-    }
-    shuffle(mask) {
-      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
-        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
-      }
-      _native_typed_data.NativeInt32x4._list[dartx._set](0, this.x);
-      _native_typed_data.NativeInt32x4._list[dartx._set](1, this.y);
-      _native_typed_data.NativeInt32x4._list[dartx._set](2, this.z);
-      _native_typed_data.NativeInt32x4._list[dartx._set](3, this.w);
-      let _x = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) & 3);
-      let _y = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
-      let _z = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
-      let _w = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
-      return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
-    }
-    shuffleMix(other, mask) {
-      if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
-        dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
-      }
-      _native_typed_data.NativeInt32x4._list[dartx._set](0, this.x);
-      _native_typed_data.NativeInt32x4._list[dartx._set](1, this.y);
-      _native_typed_data.NativeInt32x4._list[dartx._set](2, this.z);
-      _native_typed_data.NativeInt32x4._list[dartx._set](3, this.w);
-      let _x = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) & 3);
-      let _y = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
-      _native_typed_data.NativeInt32x4._list[dartx._set](0, other.x);
-      _native_typed_data.NativeInt32x4._list[dartx._set](1, other.y);
-      _native_typed_data.NativeInt32x4._list[dartx._set](2, other.z);
-      _native_typed_data.NativeInt32x4._list[dartx._set](3, other.w);
-      let _z = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
-      let _w = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
-      return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
-    }
-    withX(x) {
-      let _x = core.int._check(_native_typed_data.NativeInt32x4._truncate(x));
-      return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
-    }
-    withY(y) {
-      let _y = core.int._check(_native_typed_data.NativeInt32x4._truncate(y));
-      return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
-    }
-    withZ(z) {
-      let _z = core.int._check(_native_typed_data.NativeInt32x4._truncate(z));
-      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
-    }
-    withW(w) {
-      let _w = core.int._check(_native_typed_data.NativeInt32x4._truncate(w));
-      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
-    }
-    get flagX() {
-      return this.x != 0;
-    }
-    get flagY() {
-      return this.y != 0;
-    }
-    get flagZ() {
-      return this.z != 0;
-    }
-    get flagW() {
-      return this.w != 0;
-    }
-    withFlagX(flagX) {
-      let _x = dart.test(flagX) ? -1 : 0;
-      return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
-    }
-    withFlagY(flagY) {
-      let _y = dart.test(flagY) ? -1 : 0;
-      return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
-    }
-    withFlagZ(flagZ) {
-      let _z = dart.test(flagZ) ? -1 : 0;
-      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
-    }
-    withFlagW(flagW) {
-      let _w = dart.test(flagW) ? -1 : 0;
-      return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
-    }
-    select(trueValue, falseValue) {
-      let floatList = _native_typed_data.NativeFloat32x4._list;
-      let intView = _native_typed_data.NativeFloat32x4._uint32view;
-      floatList[dartx._set](0, trueValue.x);
-      floatList[dartx._set](1, trueValue.y);
-      floatList[dartx._set](2, trueValue.z);
-      floatList[dartx._set](3, trueValue.w);
-      let stx = intView[dartx._get](0);
-      let sty = intView[dartx._get](1);
-      let stz = intView[dartx._get](2);
-      let stw = intView[dartx._get](3);
-      floatList[dartx._set](0, falseValue.x);
-      floatList[dartx._set](1, falseValue.y);
-      floatList[dartx._set](2, falseValue.z);
-      floatList[dartx._set](3, falseValue.w);
-      let sfx = intView[dartx._get](0);
-      let sfy = intView[dartx._get](1);
-      let sfz = intView[dartx._get](2);
-      let sfw = intView[dartx._get](3);
-      let _x = (dart.notNull(this.x) & dart.notNull(stx) | ~dart.notNull(this.x) & dart.notNull(sfx)) >>> 0;
-      let _y = (dart.notNull(this.y) & dart.notNull(sty) | ~dart.notNull(this.y) & dart.notNull(sfy)) >>> 0;
-      let _z = (dart.notNull(this.z) & dart.notNull(stz) | ~dart.notNull(this.z) & dart.notNull(sfz)) >>> 0;
-      let _w = (dart.notNull(this.w) & dart.notNull(stw) | ~dart.notNull(this.w) & dart.notNull(sfw)) >>> 0;
-      intView[dartx._set](0, _x);
-      intView[dartx._set](1, _y);
-      intView[dartx._set](2, _z);
-      intView[dartx._set](3, _w);
-      return new _native_typed_data.NativeFloat32x4._truncated(floatList[dartx._get](0), floatList[dartx._get](1), floatList[dartx._get](2), floatList[dartx._get](3));
-    }
-  };
-  dart.defineNamedConstructor(_native_typed_data.NativeInt32x4, 'bool');
-  dart.defineNamedConstructor(_native_typed_data.NativeInt32x4, '_truncated');
-  _native_typed_data.NativeInt32x4[dart.implements] = () => [typed_data.Int32x4];
-  dart.setSignature(_native_typed_data.NativeInt32x4, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [core.int, core.int, core.int, core.int]),
-      bool: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [core.bool, core.bool, core.bool, core.bool]),
-      fromFloat32x4Bits: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [typed_data.Float32x4]),
-      _truncated: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [core.int, core.int, core.int, core.int])
-    }),
-    fields: () => ({
-      x: core.int,
-      y: core.int,
-      z: core.int,
-      w: core.int
-    }),
-    getters: () => ({
-      signMask: dart.definiteFunctionType(core.int, []),
-      flagX: dart.definiteFunctionType(core.bool, []),
-      flagY: dart.definiteFunctionType(core.bool, []),
-      flagZ: dart.definiteFunctionType(core.bool, []),
-      flagW: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      '|': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
-      '&': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
-      '^': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
-      '+': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
-      '-': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
-      _negate: dart.definiteFunctionType(typed_data.Int32x4, []),
-      shuffle: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
-      shuffleMix: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4, core.int]),
-      withX: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
-      withY: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
-      withZ: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
-      withW: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
-      withFlagX: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
-      withFlagY: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
-      withFlagZ: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
-      withFlagW: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
-      select: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4])
-    }),
-    sfields: () => ({_list: _native_typed_data.NativeInt32List}),
-    statics: () => ({_truncate: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
-    names: ['_truncate']
-  });
-  dart.defineLazy(_native_typed_data.NativeInt32x4, {
-    get _list() {
-      return _native_typed_data.NativeInt32List.new(4);
-    }
-  });
-  _native_typed_data.NativeFloat64x2 = class NativeFloat64x2 extends core.Object {
-    new(x, y) {
-      this.x = x;
-      this.y = y;
-      if (!(typeof this.x == 'number')) dart.throw(new core.ArgumentError(this.x));
-      if (!(typeof this.y == 'number')) dart.throw(new core.ArgumentError(this.y));
-    }
-    splat(v) {
-      NativeFloat64x2.prototype.new.call(this, v, v);
-    }
-    zero() {
-      NativeFloat64x2.prototype.splat.call(this, 0.0);
-    }
-    fromFloat32x4(v) {
-      NativeFloat64x2.prototype.new.call(this, v.x, v.y);
-    }
-    _doubles(x, y) {
-      this.x = x;
-      this.y = y;
-    }
-    toString() {
-      return dart.str`[${this.x}, ${this.y}]`;
-    }
-    ['+'](other) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) + dart.notNull(other.x), dart.notNull(this.y) + dart.notNull(other.y));
-    }
-    _negate() {
-      return new _native_typed_data.NativeFloat64x2._doubles(-dart.notNull(this.x), -dart.notNull(this.y));
-    }
-    ['-'](other) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) - dart.notNull(other.x), dart.notNull(this.y) - dart.notNull(other.y));
-    }
-    ['*'](other) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(other.x), dart.notNull(this.y) * dart.notNull(other.y));
-    }
-    ['/'](other) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) / dart.notNull(other.x), dart.notNull(this.y) / dart.notNull(other.y));
-    }
-    scale(s) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(s), dart.notNull(this.y) * dart.notNull(s));
-    }
-    abs() {
-      return new _native_typed_data.NativeFloat64x2._doubles(this.x[dartx.abs](), this.y[dartx.abs]());
-    }
-    clamp(lowerLimit, upperLimit) {
-      let _lx = lowerLimit.x;
-      let _ly = lowerLimit.y;
-      let _ux = upperLimit.x;
-      let _uy = upperLimit.y;
-      let _x = this.x;
-      let _y = this.y;
-      _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
-      _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
-      _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
-      _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
-      return new _native_typed_data.NativeFloat64x2._doubles(_x, _y);
-    }
-    get signMask() {
-      let view = _native_typed_data.NativeFloat64x2._uint32View;
-      _native_typed_data.NativeFloat64x2._list[dartx._set](0, this.x);
-      _native_typed_data.NativeFloat64x2._list[dartx._set](1, this.y);
-      let mx = (dart.notNull(view[dartx._get](1)) & 2147483648) >>> 31;
-      let my = (dart.notNull(view[dartx._get](3)) & 2147483648) >>> 31;
-      return (mx | my << 1) >>> 0;
-    }
-    withX(x) {
-      if (!(typeof x == 'number')) dart.throw(new core.ArgumentError(x));
-      return new _native_typed_data.NativeFloat64x2._doubles(x, this.y);
-    }
-    withY(y) {
-      if (!(typeof y == 'number')) dart.throw(new core.ArgumentError(y));
-      return new _native_typed_data.NativeFloat64x2._doubles(this.x, y);
-    }
-    min(other) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y);
-    }
-    max(other) {
-      return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y);
-    }
-    sqrt() {
-      return new _native_typed_data.NativeFloat64x2._doubles(math.sqrt(this.x), math.sqrt(this.y));
-    }
-  };
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, 'splat');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, 'zero');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, 'fromFloat32x4');
-  dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, '_doubles');
-  _native_typed_data.NativeFloat64x2[dart.implements] = () => [typed_data.Float64x2];
-  dart.setSignature(_native_typed_data.NativeFloat64x2, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [core.double, core.double]),
-      splat: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [core.double]),
-      zero: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, []),
-      fromFloat32x4: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [typed_data.Float32x4]),
-      _doubles: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [core.double, core.double])
-    }),
-    fields: () => ({
-      x: core.double,
-      y: core.double
-    }),
-    getters: () => ({signMask: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      '+': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
-      _negate: dart.definiteFunctionType(typed_data.Float64x2, []),
-      '-': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
-      '*': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
-      '/': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
-      scale: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
-      abs: dart.definiteFunctionType(typed_data.Float64x2, []),
-      clamp: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2, typed_data.Float64x2]),
-      withX: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
-      withY: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
-      min: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
-      max: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
-      sqrt: dart.definiteFunctionType(typed_data.Float64x2, [])
-    }),
-    sfields: () => ({
-      _list: _native_typed_data.NativeFloat64List,
-      _uint32View: _native_typed_data.NativeUint32List
-    })
-  });
-  dart.defineLazy(_native_typed_data.NativeFloat64x2, {
-    get _list() {
-      return _native_typed_data.NativeFloat64List.new(2);
-    },
-    set _list(_) {},
-    get _uint32View() {
-      return _native_typed_data.NativeUint32List._check(_native_typed_data.NativeFloat64x2._list[dartx.buffer][dartx.asUint32List]());
-    },
-    set _uint32View(_) {}
-  });
-  _native_typed_data._isInvalidArrayIndex = function(index) {
-    return index >>> 0 !== index;
-  };
-  dart.lazyFn(_native_typed_data._isInvalidArrayIndex, () => intTobool());
-  _native_typed_data._checkValidIndex = function(index, list, length) {
-    if (dart.test(_native_typed_data._isInvalidArrayIndex(index)) || index >= dart.notNull(length)) {
-      dart.throw(_js_helper.diagnoseIndexError(list, index));
-    }
-  };
-  dart.lazyFn(_native_typed_data._checkValidIndex, () => intAndListAndintTovoid());
-  _native_typed_data._checkValidRange = function(start, end, length) {
-    if (dart.test(_native_typed_data._isInvalidArrayIndex(start)) || (end == null ? dart.notNull(start) > dart.notNull(length) : dart.test(_native_typed_data._isInvalidArrayIndex(end)) || dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length))) {
-      dart.throw(_js_helper.diagnoseRangeError(start, end, length));
-    }
-    if (end == null) return length;
-    return end;
-  };
-  dart.fn(_native_typed_data._checkValidRange, intAndintAndintToint());
-  async._Callback = dart.typedef('_Callback', () => dart.functionType(dart.void, []));
-  async._TakeCallback = dart.typedef('_TakeCallback', () => dart.functionType(dart.void, [async._Callback]));
-  async._invokeErrorHandler = function(errorHandler, error, stackTrace) {
-    if (async.ZoneBinaryCallback.is(errorHandler)) {
-      return dart.dcall(errorHandler, error, stackTrace);
-    } else {
-      let unaryErrorHandler = async.ZoneUnaryCallback._check(errorHandler);
-      return dart.dcall(unaryErrorHandler, error);
-    }
-  };
-  dart.lazyFn(async._invokeErrorHandler, () => FunctionAndObjectAndStackTraceTodynamic());
-  async._registerErrorHandler = function(R) {
-    return (errorHandler, zone) => {
-      if (async.ZoneBinaryCallback.is(errorHandler)) {
-        return zone.registerBinaryCallback(dart.dynamic, dart.dynamic, core.StackTrace)(ZoneBinaryCallbackOfdynamic$dynamic$StackTrace().as(errorHandler));
-      } else {
-        return zone.registerUnaryCallback(dart.dynamic, dart.dynamic)(async.ZoneUnaryCallback.as(errorHandler));
-      }
-    };
-  };
-  dart.lazyFn(async._registerErrorHandler, () => FunctionAndZoneToFunction());
-  async.AsyncError = class AsyncError extends core.Object {
-    new(error, stackTrace) {
-      this.error = error;
-      this.stackTrace = stackTrace;
-    }
-    toString() {
-      return dart.str`${this.error}`;
-    }
-  };
-  async.AsyncError[dart.implements] = () => [core.Error];
-  dart.setSignature(async.AsyncError, {
-    constructors: () => ({new: dart.definiteFunctionType(async.AsyncError, [core.Object, core.StackTrace])}),
-    fields: () => ({
-      error: core.Object,
-      stackTrace: core.StackTrace
-    })
-  });
-  async._UncaughtAsyncError = class _UncaughtAsyncError extends async.AsyncError {
-    new(error, stackTrace) {
-      super.new(error, async._UncaughtAsyncError._getBestStackTrace(error, stackTrace));
-    }
-    static _getBestStackTrace(error, stackTrace) {
-      if (stackTrace != null) return stackTrace;
-      if (core.Error.is(error)) {
-        return error.stackTrace;
-      }
-      return null;
-    }
-    toString() {
-      let result = dart.str`Uncaught Error: ${this.error}`;
-      if (this.stackTrace != null) {
-        result = result + dart.str`\nStack Trace:\n${this.stackTrace}`;
-      }
-      return result;
-    }
-  };
-  dart.setSignature(async._UncaughtAsyncError, {
-    constructors: () => ({new: dart.definiteFunctionType(async._UncaughtAsyncError, [dart.dynamic, core.StackTrace])}),
-    statics: () => ({_getBestStackTrace: dart.definiteFunctionType(core.StackTrace, [dart.dynamic, core.StackTrace])}),
-    names: ['_getBestStackTrace']
-  });
-  const _controller$ = Symbol('_controller');
-  const _subscribe = Symbol('_subscribe');
-  const _createSubscription = Symbol('_createSubscription');
-  const _onListen = Symbol('_onListen');
-  async._StreamImpl$ = dart.generic(T => {
-    let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _StreamImpl extends async.Stream$(T) {
-      new() {
-        super.new();
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        cancelOnError = core.identical(true, cancelOnError);
-        let subscription = this[_createSubscription](onData, onError, onDone, cancelOnError);
-        this[_onListen](subscription);
-        return subscription;
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        return new (_BufferingStreamSubscriptionOfT())(onData, onError, onDone, cancelOnError);
-      }
-      [_onListen](subscription) {}
-    }
-    dart.setSignature(_StreamImpl, {
-      methods: () => ({
-        listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-        [_createSubscription]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
-        [_onListen]: dart.definiteFunctionType(dart.void, [async.StreamSubscription])
-      })
-    });
-    return _StreamImpl;
-  });
-  async._StreamImpl = _StreamImpl();
-  async._ControllerStream$ = dart.generic(T => {
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
-    class _ControllerStream extends async._StreamImpl$(T) {
-      new(controller) {
-        this[_controller$] = controller;
-        super.new();
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
-      }
-      get hashCode() {
-        return (dart.notNull(dart.hashCode(this[_controller$])) ^ 892482866) >>> 0;
-      }
-      ['=='](other) {
-        if (core.identical(this, other)) return true;
-        if (!async._ControllerStream.is(other)) return false;
-        let otherStream = async._ControllerStream._check(other);
-        return core.identical(otherStream[_controller$], this[_controller$]);
-      }
-    }
-    dart.setSignature(_ControllerStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ControllerStream$(T), [_StreamControllerLifecycleOfT()])}),
-      fields: () => ({[_controller$]: _StreamControllerLifecycleOfT()}),
-      methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])})
-    });
-    return _ControllerStream;
-  });
-  async._ControllerStream = _ControllerStream();
-  async._BroadcastStream$ = dart.generic(T => {
-    let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
-    class _BroadcastStream extends async._ControllerStream$(T) {
-      new(controller) {
-        super.new(controller);
-      }
-      get isBroadcast() {
-        return true;
-      }
-    }
-    dart.setSignature(_BroadcastStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BroadcastStream$(T), [_StreamControllerLifecycleOfT()])})
-    });
-    return _BroadcastStream;
-  });
-  async._BroadcastStream = _BroadcastStream();
-  const _eventState = Symbol('_eventState');
-  const _next$ = Symbol('_next');
-  const _previous$ = Symbol('_previous');
-  const _expectsEvent = Symbol('_expectsEvent');
-  const _toggleEventId = Symbol('_toggleEventId');
-  const _isFiring = Symbol('_isFiring');
-  const _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring');
-  const _removeAfterFiring = Symbol('_removeAfterFiring');
-  const _onPause = Symbol('_onPause');
-  const _onResume = Symbol('_onResume');
-  const _recordCancel = Symbol('_recordCancel');
-  const _onCancel = Symbol('_onCancel');
-  const _recordPause = Symbol('_recordPause');
-  const _recordResume = Symbol('_recordResume');
-  const _zone = Symbol('_zone');
-  const _state = Symbol('_state');
-  const _onData = Symbol('_onData');
-  const _onError = Symbol('_onError');
-  const _onDone = Symbol('_onDone');
-  const _cancelFuture = Symbol('_cancelFuture');
-  const _pending = Symbol('_pending');
-  const _setPendingEvents = Symbol('_setPendingEvents');
-  const _isCanceled = Symbol('_isCanceled');
-  const _isPaused = Symbol('_isPaused');
-  const _isInputPaused = Symbol('_isInputPaused');
-  const _inCallback = Symbol('_inCallback');
-  const _guardCallback = Symbol('_guardCallback');
-  const _decrementPauseCount = Symbol('_decrementPauseCount');
-  const _hasPending = Symbol('_hasPending');
-  const _mayResumeInput = Symbol('_mayResumeInput');
-  const _cancel = Symbol('_cancel');
-  const _isClosed$ = Symbol('_isClosed');
-  const _waitsForCancel = Symbol('_waitsForCancel');
-  const _canFire = Symbol('_canFire');
-  const _cancelOnError = Symbol('_cancelOnError');
-  const _incrementPauseCount = Symbol('_incrementPauseCount');
-  const _sendData = Symbol('_sendData');
-  const _addPending = Symbol('_addPending');
-  const _sendError = Symbol('_sendError');
-  const _sendDone = Symbol('_sendDone');
-  let const$5;
-  const _close$ = Symbol('_close');
-  const _checkState = Symbol('_checkState');
-  async._BufferingStreamSubscription$ = dart.generic(T => {
-    let _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
-    let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
-    let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _BufferingStreamSubscription extends core.Object {
-      new(onData, onError, onDone, cancelOnError) {
-        this[_zone] = async.Zone.current;
-        this[_state] = dart.test(cancelOnError) ? async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR : 0;
-        this[_onData] = null;
-        this[_onError] = null;
-        this[_onDone] = null;
-        this[_cancelFuture] = null;
-        this[_pending] = null;
-        this.onData(onData);
-        this.onError(onError);
-        this.onDone(onDone);
-      }
-      [_setPendingEvents](pendingEvents) {
-        _PendingEventsOfT()._check(pendingEvents);
-        dart.assert(this[_pending] == null);
-        if (pendingEvents == null) return;
-        this[_pending] = pendingEvents;
-        if (!dart.test(pendingEvents.isEmpty)) {
-          this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_HAS_PENDING) >>> 0;
-          this[_pending].schedule(this);
-        }
-      }
-      onData(handleData) {
-        if (handleData == null) handleData = async._nullDataHandler;
-        this[_onData] = this[_zone].registerUnaryCallback(dart.dynamic, T)(handleData);
-      }
-      onError(handleError) {
-        if (handleError == null) handleError = async._nullErrorHandler;
-        this[_onError] = async._registerErrorHandler(T)(handleError, this[_zone]);
-      }
-      onDone(handleDone) {
-        if (handleDone == null) handleDone = async._nullDoneHandler;
-        this[_onDone] = this[_zone].registerCallback(dart.void)(handleDone);
-      }
-      pause(resumeSignal) {
-        if (resumeSignal === void 0) resumeSignal = null;
-        if (dart.test(this[_isCanceled])) return;
-        let wasPaused = this[_isPaused];
-        let wasInputPaused = this[_isInputPaused];
-        this[_state] = (dart.notNull(this[_state]) + async._BufferingStreamSubscription._STATE_PAUSE_COUNT | async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
-        if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
-        if (!dart.test(wasPaused) && this[_pending] != null) this[_pending].cancelSchedule();
-        if (!dart.test(wasInputPaused) && !dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onPause));
-      }
-      resume() {
-        if (dart.test(this[_isCanceled])) return;
-        if (dart.test(this[_isPaused])) {
-          this[_decrementPauseCount]();
-          if (!dart.test(this[_isPaused])) {
-            if (dart.test(this[_hasPending]) && !dart.test(this[_pending].isEmpty)) {
-              this[_pending].schedule(this);
-            } else {
-              dart.assert(this[_mayResumeInput]);
-              this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
-              if (!dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onResume));
-            }
-          }
-        }
-      }
-      cancel() {
-        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
-        if (dart.test(this[_isCanceled])) return this[_cancelFuture];
-        this[_cancel]();
-        return this[_cancelFuture];
-      }
-      asFuture(E) {
-        return futureValue => {
-          if (futureValue === void 0) futureValue = null;
-          let result = new (async._Future$(E))();
-          this[_onDone] = dart.fn(() => {
-            result[_complete](futureValue);
-          }, VoidToNull());
-          this[_onError] = dart.fn((error, stackTrace) => {
-            this.cancel();
-            result[_completeError](error, core.StackTrace._check(stackTrace));
-          }, dynamicAnddynamicToNull());
-          return result;
-        };
-      }
-      get [_isInputPaused]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_INPUT_PAUSED) != 0;
-      }
-      get [_isClosed$]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CLOSED) != 0;
-      }
-      get [_isCanceled]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CANCELED) != 0;
-      }
-      get [_waitsForCancel]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) != 0;
-      }
-      get [_inCallback]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_IN_CALLBACK) != 0;
-      }
-      get [_hasPending]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_HAS_PENDING) != 0;
-      }
-      get [_isPaused]() {
-        return dart.notNull(this[_state]) >= async._BufferingStreamSubscription._STATE_PAUSE_COUNT;
-      }
-      get [_canFire]() {
-        return dart.notNull(this[_state]) < async._BufferingStreamSubscription._STATE_IN_CALLBACK;
-      }
-      get [_mayResumeInput]() {
-        return !dart.test(this[_isPaused]) && (this[_pending] == null || dart.test(this[_pending].isEmpty));
-      }
-      get [_cancelOnError]() {
-        return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR) != 0;
-      }
-      get isPaused() {
-        return this[_isPaused];
-      }
-      [_cancel]() {
-        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CANCELED) >>> 0;
-        if (dart.test(this[_hasPending])) {
-          this[_pending].cancelSchedule();
-        }
-        if (!dart.test(this[_inCallback])) this[_pending] = null;
-        this[_cancelFuture] = this[_onCancel]();
-      }
-      [_incrementPauseCount]() {
-        this[_state] = (dart.notNull(this[_state]) + async._BufferingStreamSubscription._STATE_PAUSE_COUNT | async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
-      }
-      [_decrementPauseCount]() {
-        dart.assert(this[_isPaused]);
-        this[_state] = dart.notNull(this[_state]) - async._BufferingStreamSubscription._STATE_PAUSE_COUNT;
-      }
-      [_add$](data) {
-        T._check(data);
-        dart.assert(!dart.test(this[_isClosed$]));
-        if (dart.test(this[_isCanceled])) return;
-        if (dart.test(this[_canFire])) {
-          this[_sendData](data);
-        } else {
-          this[_addPending](new (_DelayedDataOfT())(data));
-        }
-      }
-      [_addError](error, stackTrace) {
-        if (dart.test(this[_isCanceled])) return;
-        if (dart.test(this[_canFire])) {
-          this[_sendError](error, stackTrace);
-        } else {
-          this[_addPending](new async._DelayedError(error, stackTrace));
-        }
-      }
-      [_close$]() {
-        dart.assert(!dart.test(this[_isClosed$]));
-        if (dart.test(this[_isCanceled])) return;
-        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CLOSED) >>> 0;
-        if (dart.test(this[_canFire])) {
-          this[_sendDone]();
-        } else {
-          this[_addPending](const$5 || (const$5 = dart.const(new async._DelayedDone())));
-        }
-      }
-      [_onPause]() {
-        dart.assert(this[_isInputPaused]);
-      }
-      [_onResume]() {
-        dart.assert(!dart.test(this[_isInputPaused]));
-      }
-      [_onCancel]() {
-        dart.assert(this[_isCanceled]);
-        return null;
-      }
-      [_addPending](event) {
-        let pending = _StreamImplEventsOfT()._check(this[_pending]);
-        if (this[_pending] == null) {
-          pending = this[_pending] = new (_StreamImplEventsOfT())();
-        }
-        pending.add(event);
-        if (!dart.test(this[_hasPending])) {
-          this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_HAS_PENDING) >>> 0;
-          if (!dart.test(this[_isPaused])) {
-            this[_pending].schedule(this);
-          }
-        }
-      }
-      [_sendData](data) {
-        T._check(data);
-        dart.assert(!dart.test(this[_isCanceled]));
-        dart.assert(!dart.test(this[_isPaused]));
-        dart.assert(!dart.test(this[_inCallback]));
-        let wasInputPaused = this[_isInputPaused];
-        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-        this[_zone].runUnaryGuarded(dart.void, T)(this[_onData], data);
-        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-        this[_checkState](wasInputPaused);
-      }
-      [_sendError](error, stackTrace) {
-        dart.assert(!dart.test(this[_isCanceled]));
-        dart.assert(!dart.test(this[_isPaused]));
-        dart.assert(!dart.test(this[_inCallback]));
-        let wasInputPaused = this[_isInputPaused];
-        const sendError = (function() {
-          if (dart.test(this[_isCanceled]) && !dart.test(this[_waitsForCancel])) return;
-          this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-          if (ZoneBinaryCallbackOfdynamic$Object$StackTrace().is(this[_onError])) {
-            let errorCallback = ZoneBinaryCallbackOfdynamic$Object$StackTrace().as(this[_onError]);
-            this[_zone].runBinaryGuarded(dart.dynamic, core.Object, core.StackTrace)(errorCallback, error, stackTrace);
-          } else {
-            this[_zone].runUnaryGuarded(dart.dynamic, dart.dynamic)(async.ZoneUnaryCallback.as(this[_onError]), error);
-          }
-          this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-        }).bind(this);
-        dart.fn(sendError, VoidTovoid$());
-        if (dart.test(this[_cancelOnError])) {
-          this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
-          this[_cancel]();
-          if (async.Future.is(this[_cancelFuture])) {
-            this[_cancelFuture].whenComplete(sendError);
-          } else {
-            sendError();
-          }
-        } else {
-          sendError();
-          this[_checkState](wasInputPaused);
-        }
-      }
-      [_sendDone]() {
-        dart.assert(!dart.test(this[_isCanceled]));
-        dart.assert(!dart.test(this[_isPaused]));
-        dart.assert(!dart.test(this[_inCallback]));
-        const sendDone = (function() {
-          if (!dart.test(this[_waitsForCancel])) return;
-          this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CANCELED | async._BufferingStreamSubscription._STATE_CLOSED | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-          this[_zone].runGuarded(dart.void)(this[_onDone]);
-          this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-        }).bind(this);
-        dart.fn(sendDone, VoidTovoid$());
-        this[_cancel]();
-        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
-        if (async.Future.is(this[_cancelFuture])) {
-          this[_cancelFuture].whenComplete(sendDone);
-        } else {
-          sendDone();
-        }
-      }
-      [_guardCallback](callback) {
-        dart.assert(!dart.test(this[_inCallback]));
-        let wasInputPaused = this[_isInputPaused];
-        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-        callback();
-        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-        this[_checkState](wasInputPaused);
-      }
-      [_checkState](wasInputPaused) {
-        dart.assert(!dart.test(this[_inCallback]));
-        if (dart.test(this[_hasPending]) && dart.test(this[_pending].isEmpty)) {
-          this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_HAS_PENDING) >>> 0;
-          if (dart.test(this[_isInputPaused]) && dart.test(this[_mayResumeInput])) {
-            this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
-          }
-        }
-        while (true) {
-          if (dart.test(this[_isCanceled])) {
-            this[_pending] = null;
-            return;
-          }
-          let isInputPaused = this[_isInputPaused];
-          if (wasInputPaused == isInputPaused) break;
-          this[_state] = (dart.notNull(this[_state]) ^ async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-          if (dart.test(isInputPaused)) {
-            this[_onPause]();
-          } else {
-            this[_onResume]();
-          }
-          this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
-          wasInputPaused = isInputPaused;
-        }
-        if (dart.test(this[_hasPending]) && !dart.test(this[_isPaused])) {
-          this[_pending].schedule(this);
-        }
-      }
-    }
-    dart.addTypeTests(_BufferingStreamSubscription);
-    _BufferingStreamSubscription[dart.implements] = () => [StreamSubscriptionOfT(), _EventSinkOfT(), _EventDispatchOfT()];
-    dart.setSignature(_BufferingStreamSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BufferingStreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool])}),
-      fields: () => ({
-        [_onData]: TTovoid(),
-        [_onError]: core.Function,
-        [_onDone]: async._DoneHandler,
-        [_zone]: async.Zone,
-        [_state]: core.int,
-        [_cancelFuture]: async.Future,
-        [_pending]: _PendingEventsOfT()
-      }),
-      getters: () => ({
-        [_isInputPaused]: dart.definiteFunctionType(core.bool, []),
-        [_isClosed$]: dart.definiteFunctionType(core.bool, []),
-        [_isCanceled]: dart.definiteFunctionType(core.bool, []),
-        [_waitsForCancel]: dart.definiteFunctionType(core.bool, []),
-        [_inCallback]: dart.definiteFunctionType(core.bool, []),
-        [_hasPending]: dart.definiteFunctionType(core.bool, []),
-        [_isPaused]: dart.definiteFunctionType(core.bool, []),
-        [_canFire]: dart.definiteFunctionType(core.bool, []),
-        [_mayResumeInput]: dart.definiteFunctionType(core.bool, []),
-        [_cancelOnError]: dart.definiteFunctionType(core.bool, []),
-        isPaused: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        [_setPendingEvents]: dart.definiteFunctionType(dart.void, [_PendingEventsOfT()]),
-        onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
-        onError: dart.definiteFunctionType(dart.void, [core.Function]),
-        onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
-        resume: dart.definiteFunctionType(dart.void, []),
-        cancel: dart.definiteFunctionType(async.Future, []),
-        asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]]),
-        [_cancel]: dart.definiteFunctionType(dart.void, []),
-        [_incrementPauseCount]: dart.definiteFunctionType(dart.void, []),
-        [_decrementPauseCount]: dart.definiteFunctionType(dart.void, []),
-        [_add$]: dart.definiteFunctionType(dart.void, [T]),
-        [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_close$]: dart.definiteFunctionType(dart.void, []),
-        [_onPause]: dart.definiteFunctionType(dart.void, []),
-        [_onResume]: dart.definiteFunctionType(dart.void, []),
-        [_onCancel]: dart.definiteFunctionType(async.Future, []),
-        [_addPending]: dart.definiteFunctionType(dart.void, [async._DelayedEvent]),
-        [_sendData]: dart.definiteFunctionType(dart.void, [T]),
-        [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_sendDone]: dart.definiteFunctionType(dart.void, []),
-        [_guardCallback]: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        [_checkState]: dart.definiteFunctionType(dart.void, [core.bool])
-      }),
-      sfields: () => ({
-        _STATE_CANCEL_ON_ERROR: core.int,
-        _STATE_CLOSED: core.int,
-        _STATE_INPUT_PAUSED: core.int,
-        _STATE_CANCELED: core.int,
-        _STATE_WAIT_FOR_CANCEL: core.int,
-        _STATE_IN_CALLBACK: core.int,
-        _STATE_HAS_PENDING: core.int,
-        _STATE_PAUSE_COUNT: core.int,
-        _STATE_PAUSE_COUNT_SHIFT: core.int
-      })
-    });
-    return _BufferingStreamSubscription;
-  });
-  async._BufferingStreamSubscription = _BufferingStreamSubscription();
-  async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1;
-  async._BufferingStreamSubscription._STATE_CLOSED = 2;
-  async._BufferingStreamSubscription._STATE_INPUT_PAUSED = 4;
-  async._BufferingStreamSubscription._STATE_CANCELED = 8;
-  async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL = 16;
-  async._BufferingStreamSubscription._STATE_IN_CALLBACK = 32;
-  async._BufferingStreamSubscription._STATE_HAS_PENDING = 64;
-  async._BufferingStreamSubscription._STATE_PAUSE_COUNT = 128;
-  async._BufferingStreamSubscription._STATE_PAUSE_COUNT_SHIFT = 7;
-  async._ControllerSubscription$ = dart.generic(T => {
-    let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _ControllerSubscription extends async._BufferingStreamSubscription$(T) {
-      new(controller, onData, onError, onDone, cancelOnError) {
-        this[_controller$] = controller;
-        super.new(onData, onError, onDone, cancelOnError);
-      }
-      [_onCancel]() {
-        return this[_controller$][_recordCancel](this);
-      }
-      [_onPause]() {
-        this[_controller$][_recordPause](this);
-      }
-      [_onResume]() {
-        this[_controller$][_recordResume](this);
-      }
-    }
-    dart.setSignature(_ControllerSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ControllerSubscription$(T), [_StreamControllerLifecycleOfT(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
-      fields: () => ({[_controller$]: _StreamControllerLifecycleOfT()})
-    });
-    return _ControllerSubscription;
-  });
-  async._ControllerSubscription = _ControllerSubscription();
-  async._BroadcastSubscription$ = dart.generic(T => {
-    let _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
-    let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _BroadcastSubscription extends async._ControllerSubscription$(T) {
-      new(controller, onData, onError, onDone, cancelOnError) {
-        this[_eventState] = 0;
-        this[_next$] = null;
-        this[_previous$] = null;
-        super.new(controller, onData, onError, onDone, cancelOnError);
-        this[_next$] = this[_previous$] = this;
-      }
-      [_expectsEvent](eventId) {
-        return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_EVENT_ID) == eventId;
-      }
-      [_toggleEventId]() {
-        this[_eventState] = (dart.notNull(this[_eventState]) ^ async._BroadcastSubscription._STATE_EVENT_ID) >>> 0;
-      }
-      get [_isFiring]() {
-        return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_FIRING) != 0;
-      }
-      [_setRemoveAfterFiring]() {
-        dart.assert(this[_isFiring]);
-        this[_eventState] = (dart.notNull(this[_eventState]) | async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING) >>> 0;
-      }
-      get [_removeAfterFiring]() {
-        return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING) != 0;
-      }
-      [_onPause]() {}
-      [_onResume]() {}
-    }
-    dart.setSignature(_BroadcastSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BroadcastSubscription$(T), [_StreamControllerLifecycleOfT(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
-      fields: () => ({
-        [_eventState]: core.int,
-        [_next$]: _BroadcastSubscriptionOfT(),
-        [_previous$]: _BroadcastSubscriptionOfT()
-      }),
-      getters: () => ({
-        [_isFiring]: dart.definiteFunctionType(core.bool, []),
-        [_removeAfterFiring]: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        [_expectsEvent]: dart.definiteFunctionType(core.bool, [core.int]),
-        [_toggleEventId]: dart.definiteFunctionType(dart.void, []),
-        [_setRemoveAfterFiring]: dart.definiteFunctionType(dart.void, [])
-      }),
-      sfields: () => ({
-        _STATE_EVENT_ID: core.int,
-        _STATE_FIRING: core.int,
-        _STATE_REMOVE_AFTER_FIRING: core.int
-      })
-    });
-    return _BroadcastSubscription;
-  });
-  async._BroadcastSubscription = _BroadcastSubscription();
-  async._BroadcastSubscription._STATE_EVENT_ID = 1;
-  async._BroadcastSubscription._STATE_FIRING = 2;
-  async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4;
-  const _firstSubscription = Symbol('_firstSubscription');
-  const _lastSubscription = Symbol('_lastSubscription');
-  const _addStreamState = Symbol('_addStreamState');
-  const _doneFuture = Symbol('_doneFuture');
-  const _isEmpty = Symbol('_isEmpty');
-  const _hasOneListener = Symbol('_hasOneListener');
-  const _isAddingStream = Symbol('_isAddingStream');
-  const _mayAddEvent = Symbol('_mayAddEvent');
-  const _ensureDoneFuture = Symbol('_ensureDoneFuture');
-  const _addListener = Symbol('_addListener');
-  const _removeListener = Symbol('_removeListener');
-  const _callOnCancel = Symbol('_callOnCancel');
-  const _addEventError = Symbol('_addEventError');
-  const _forEachListener = Symbol('_forEachListener');
-  const _mayComplete = Symbol('_mayComplete');
-  const _asyncComplete = Symbol('_asyncComplete');
-  async._BroadcastStreamController$ = dart.generic(T => {
-    let _BroadcastStreamOfT = () => (_BroadcastStreamOfT = dart.constFn(async._BroadcastStream$(T)))();
-    let _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
-    let _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
-    let _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let _AddStreamStateOfT = () => (_AddStreamStateOfT = dart.constFn(async._AddStreamState$(T)))();
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
-    let _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
-    class _BroadcastStreamController extends core.Object {
-      new(onListen, onCancel) {
-        this.onListen = onListen;
-        this.onCancel = onCancel;
-        this[_state] = async._BroadcastStreamController._STATE_INITIAL;
-        this[_firstSubscription] = null;
-        this[_lastSubscription] = null;
-        this[_addStreamState] = null;
-        this[_doneFuture] = null;
-      }
-      get onPause() {
-        dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
-      }
-      set onPause(onPauseHandler) {
-        dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
-      }
-      get onResume() {
-        dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
-      }
-      set onResume(onResumeHandler) {
-        dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
-      }
-      get stream() {
-        return new (_BroadcastStreamOfT())(this);
-      }
-      get sink() {
-        return new (_StreamSinkWrapperOfT())(this);
-      }
-      get isClosed() {
-        return (dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_CLOSED) != 0;
-      }
-      get isPaused() {
-        return false;
-      }
-      get hasListener() {
-        return !dart.test(this[_isEmpty]);
-      }
-      get [_hasOneListener]() {
-        dart.assert(!dart.test(this[_isEmpty]));
-        return core.identical(this[_firstSubscription], this[_lastSubscription]);
-      }
-      get [_isFiring]() {
-        return (dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_FIRING) != 0;
-      }
-      get [_isAddingStream]() {
-        return (dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_ADDSTREAM) != 0;
-      }
-      get [_mayAddEvent]() {
-        return dart.notNull(this[_state]) < async._BroadcastStreamController._STATE_CLOSED;
-      }
-      [_ensureDoneFuture]() {
-        if (this[_doneFuture] != null) return this[_doneFuture];
-        return this[_doneFuture] = new async._Future();
-      }
-      get [_isEmpty]() {
-        return this[_firstSubscription] == null;
-      }
-      [_addListener](subscription) {
-        _BroadcastSubscriptionOfT()._check(subscription);
-        dart.assert(core.identical(subscription[_next$], subscription));
-        subscription[_eventState] = dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_EVENT_ID;
-        let oldLast = this[_lastSubscription];
-        this[_lastSubscription] = subscription;
-        subscription[_next$] = null;
-        subscription[_previous$] = oldLast;
-        if (oldLast == null) {
-          this[_firstSubscription] = subscription;
-        } else {
-          oldLast[_next$] = subscription;
-        }
-      }
-      [_removeListener](subscription) {
-        _BroadcastSubscriptionOfT()._check(subscription);
-        dart.assert(core.identical(subscription[_controller$], this));
-        dart.assert(!core.identical(subscription[_next$], subscription));
-        let previous = subscription[_previous$];
-        let next = subscription[_next$];
-        if (previous == null) {
-          this[_firstSubscription] = next;
-        } else {
-          previous[_next$] = next;
-        }
-        if (next == null) {
-          this[_lastSubscription] = previous;
-        } else {
-          next[_previous$] = previous;
-        }
-        subscription[_next$] = subscription[_previous$] = subscription;
-      }
-      [_subscribe](onData, onError, onDone, cancelOnError) {
-        if (dart.test(this.isClosed)) {
-          if (onDone == null) onDone = async._nullDoneHandler;
-          return new (_DoneStreamSubscriptionOfT())(onDone);
-        }
-        let subscription = new (_BroadcastSubscriptionOfT())(this, onData, onError, onDone, cancelOnError);
-        this[_addListener](_BroadcastSubscriptionOfT()._check(subscription));
-        if (core.identical(this[_firstSubscription], this[_lastSubscription])) {
-          async._runGuarded(this.onListen);
-        }
-        return subscription;
-      }
-      [_recordCancel](sub) {
-        StreamSubscriptionOfT()._check(sub);
-        let subscription = _BroadcastSubscriptionOfT()._check(sub);
-        if (core.identical(subscription[_next$], subscription)) return null;
-        if (dart.test(subscription[_isFiring])) {
-          subscription[_setRemoveAfterFiring]();
-        } else {
-          this[_removeListener](subscription);
-          if (!dart.test(this[_isFiring]) && dart.test(this[_isEmpty])) {
-            this[_callOnCancel]();
-          }
-        }
-        return null;
-      }
-      [_recordPause](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-      }
-      [_recordResume](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-      }
-      [_addEventError]() {
-        if (dart.test(this.isClosed)) {
-          return new core.StateError("Cannot add new events after calling close");
-        }
-        dart.assert(this[_isAddingStream]);
-        return new core.StateError("Cannot add new events while doing an addStream");
-      }
-      add(data) {
-        T._check(data);
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
-        this[_sendData](data);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        error = async._nonNullError(error);
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
-        let replacement = async.Zone.current.errorCallback(error, stackTrace);
-        if (replacement != null) {
-          error = async._nonNullError(replacement.error);
-          stackTrace = replacement.stackTrace;
-        }
-        this[_sendError](error, stackTrace);
-      }
-      close() {
-        if (dart.test(this.isClosed)) {
-          dart.assert(this[_doneFuture] != null);
-          return this[_doneFuture];
-        }
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
-        this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_CLOSED) >>> 0;
-        let doneFuture = this[_ensureDoneFuture]();
-        this[_sendDone]();
-        return doneFuture;
-      }
-      get done() {
-        return this[_ensureDoneFuture]();
-      }
-      addStream(stream, opts) {
-        StreamOfT()._check(stream);
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
-        this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_ADDSTREAM) >>> 0;
-        this[_addStreamState] = new (_AddStreamStateOfT())(this, stream, cancelOnError);
-        return this[_addStreamState].addStreamFuture;
-      }
-      [_add$](data) {
-        T._check(data);
-        this[_sendData](data);
-      }
-      [_addError](error, stackTrace) {
-        this[_sendError](error, stackTrace);
-      }
-      [_close$]() {
-        dart.assert(this[_isAddingStream]);
-        let addState = this[_addStreamState];
-        this[_addStreamState] = null;
-        this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_ADDSTREAM) >>> 0;
-        addState.complete();
-      }
-      [_forEachListener](action) {
-        if (dart.test(this[_isFiring])) {
-          dart.throw(new core.StateError("Cannot fire new event. Controller is already firing an event"));
-        }
-        if (dart.test(this[_isEmpty])) return;
-        let id = dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_EVENT_ID;
-        this[_state] = (dart.notNull(this[_state]) ^ (async._BroadcastStreamController._STATE_EVENT_ID | async._BroadcastStreamController._STATE_FIRING)) >>> 0;
-        let subscription = this[_firstSubscription];
-        while (subscription != null) {
-          if (dart.test(subscription[_expectsEvent](id))) {
-            subscription[_eventState] = (dart.notNull(subscription[_eventState]) | async._BroadcastSubscription._STATE_FIRING) >>> 0;
-            action(subscription);
-            subscription[_toggleEventId]();
-            let next = subscription[_next$];
-            if (dart.test(subscription[_removeAfterFiring])) {
-              this[_removeListener](subscription);
-            }
-            subscription[_eventState] = (dart.notNull(subscription[_eventState]) & ~async._BroadcastSubscription._STATE_FIRING) >>> 0;
-            subscription = next;
-          } else {
-            subscription = subscription[_next$];
-          }
-        }
-        this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_FIRING) >>> 0;
-        if (dart.test(this[_isEmpty])) {
-          this[_callOnCancel]();
-        }
-      }
-      [_callOnCancel]() {
-        dart.assert(this[_isEmpty]);
-        if (dart.test(this.isClosed) && dart.test(this[_doneFuture][_mayComplete])) {
-          this[_doneFuture][_asyncComplete](null);
-        }
-        async._runGuarded(this.onCancel);
-      }
-    }
-    dart.addTypeTests(_BroadcastStreamController);
-    _BroadcastStreamController[dart.implements] = () => [StreamControllerOfT(), _StreamControllerLifecycleOfT(), _EventSinkOfT(), _EventDispatchOfT()];
-    dart.setSignature(_BroadcastStreamController, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BroadcastStreamController$(T), [async.ControllerCallback, async.ControllerCancelCallback])}),
-      fields: () => ({
-        onListen: async.ControllerCallback,
-        onCancel: async.ControllerCancelCallback,
-        [_state]: core.int,
-        [_firstSubscription]: _BroadcastSubscriptionOfT(),
-        [_lastSubscription]: _BroadcastSubscriptionOfT(),
-        [_addStreamState]: _AddStreamStateOfT(),
-        [_doneFuture]: async._Future
-      }),
-      getters: () => ({
-        onPause: dart.definiteFunctionType(async.ControllerCallback, []),
-        onResume: dart.definiteFunctionType(async.ControllerCallback, []),
-        stream: dart.definiteFunctionType(async.Stream$(T), []),
-        sink: dart.definiteFunctionType(async.StreamSink$(T), []),
-        isClosed: dart.definiteFunctionType(core.bool, []),
-        isPaused: dart.definiteFunctionType(core.bool, []),
-        hasListener: dart.definiteFunctionType(core.bool, []),
-        [_hasOneListener]: dart.definiteFunctionType(core.bool, []),
-        [_isFiring]: dart.definiteFunctionType(core.bool, []),
-        [_isAddingStream]: dart.definiteFunctionType(core.bool, []),
-        [_mayAddEvent]: dart.definiteFunctionType(core.bool, []),
-        [_isEmpty]: dart.definiteFunctionType(core.bool, []),
-        done: dart.definiteFunctionType(async.Future, [])
-      }),
-      setters: () => ({
-        onPause: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        onResume: dart.definiteFunctionType(dart.void, [VoidTovoid()])
-      }),
-      methods: () => ({
-        [_ensureDoneFuture]: dart.definiteFunctionType(async._Future, []),
-        [_addListener]: dart.definiteFunctionType(dart.void, [_BroadcastSubscriptionOfT()]),
-        [_removeListener]: dart.definiteFunctionType(dart.void, [_BroadcastSubscriptionOfT()]),
-        [_subscribe]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
-        [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()]),
-        [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
-        [_recordResume]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
-        [_addEventError]: dart.definiteFunctionType(core.Error, []),
-        add: dart.definiteFunctionType(dart.void, [T]),
-        addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-        close: dart.definiteFunctionType(async.Future, []),
-        addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool}),
-        [_add$]: dart.definiteFunctionType(dart.void, [T]),
-        [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_close$]: dart.definiteFunctionType(dart.void, []),
-        [_forEachListener]: dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfTTovoid()]),
-        [_callOnCancel]: dart.definiteFunctionType(dart.void, [])
-      }),
-      sfields: () => ({
-        _STATE_INITIAL: core.int,
-        _STATE_EVENT_ID: core.int,
-        _STATE_FIRING: core.int,
-        _STATE_CLOSED: core.int,
-        _STATE_ADDSTREAM: core.int
-      })
-    });
-    return _BroadcastStreamController;
-  });
-  async._BroadcastStreamController = _BroadcastStreamController();
-  async._BroadcastStreamController._STATE_INITIAL = 0;
-  async._BroadcastStreamController._STATE_EVENT_ID = 1;
-  async._BroadcastStreamController._STATE_FIRING = 2;
-  async._BroadcastStreamController._STATE_CLOSED = 4;
-  async._BroadcastStreamController._STATE_ADDSTREAM = 8;
-  async._SyncBroadcastStreamController$ = dart.generic(T => {
-    let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
-    let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
-    let _BufferingStreamSubscriptionOfTToNull = () => (_BufferingStreamSubscriptionOfTToNull = dart.constFn(dart.definiteFunctionType(core.Null, [_BufferingStreamSubscriptionOfT()])))();
-    class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
-      new(onListen, onCancel) {
-        super.new(onListen, onCancel);
-      }
-      get [_mayAddEvent]() {
-        return dart.test(super[_mayAddEvent]) && !dart.test(this[_isFiring]);
-      }
-      [_addEventError]() {
-        if (dart.test(this[_isFiring])) {
-          return new core.StateError("Cannot fire new event. Controller is already firing an event");
-        }
-        return super[_addEventError]();
-      }
-      [_sendData](data) {
-        T._check(data);
-        if (dart.test(this[_isEmpty])) return;
-        if (dart.test(this[_hasOneListener])) {
-          this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_FIRING) >>> 0;
-          let subscription = this[_firstSubscription];
-          subscription[_add$](data);
-          this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_FIRING) >>> 0;
-          if (dart.test(this[_isEmpty])) {
-            this[_callOnCancel]();
-          }
-          return;
-        }
-        this[_forEachListener](dart.fn(subscription => {
-          subscription[_add$](data);
-        }, _BufferingStreamSubscriptionOfTToNull()));
-      }
-      [_sendError](error, stackTrace) {
-        if (dart.test(this[_isEmpty])) return;
-        this[_forEachListener](dart.fn(subscription => {
-          subscription[_addError](error, stackTrace);
-        }, _BufferingStreamSubscriptionOfTToNull()));
-      }
-      [_sendDone]() {
-        if (!dart.test(this[_isEmpty])) {
-          this[_forEachListener](dart.fn(subscription => {
-            subscription[_close$]();
-          }, _BufferingStreamSubscriptionOfTToNull()));
-        } else {
-          dart.assert(this[_doneFuture] != null);
-          dart.assert(this[_doneFuture][_mayComplete]);
-          this[_doneFuture][_asyncComplete](null);
-        }
-      }
-    }
-    _SyncBroadcastStreamController[dart.implements] = () => [SynchronousStreamControllerOfT()];
-    dart.setSignature(_SyncBroadcastStreamController, {
-      constructors: () => ({new: dart.definiteFunctionType(async._SyncBroadcastStreamController$(T), [VoidTovoid(), VoidTovoid()])}),
-      methods: () => ({
-        [_sendData]: dart.definiteFunctionType(dart.void, [T]),
-        [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_sendDone]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _SyncBroadcastStreamController;
-  });
-  async._SyncBroadcastStreamController = _SyncBroadcastStreamController();
-  let const$6;
-  async._AsyncBroadcastStreamController$ = dart.generic(T => {
-    let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
-    class _AsyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
-      new(onListen, onCancel) {
-        super.new(onListen, onCancel);
-      }
-      [_sendData](data) {
-        T._check(data);
-        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
-          subscription[_addPending](new (_DelayedDataOfT())(data));
-        }
-      }
-      [_sendError](error, stackTrace) {
-        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
-          subscription[_addPending](new async._DelayedError(error, stackTrace));
-        }
-      }
-      [_sendDone]() {
-        if (!dart.test(this[_isEmpty])) {
-          for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
-            subscription[_addPending](const$6 || (const$6 = dart.const(new async._DelayedDone())));
-          }
-        } else {
-          dart.assert(this[_doneFuture] != null);
-          dart.assert(this[_doneFuture][_mayComplete]);
-          this[_doneFuture][_asyncComplete](null);
-        }
-      }
-    }
-    dart.setSignature(_AsyncBroadcastStreamController, {
-      constructors: () => ({new: dart.definiteFunctionType(async._AsyncBroadcastStreamController$(T), [VoidTovoid(), VoidTovoid()])}),
-      methods: () => ({
-        [_sendData]: dart.definiteFunctionType(dart.void, [T]),
-        [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_sendDone]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _AsyncBroadcastStreamController;
-  });
-  async._AsyncBroadcastStreamController = _AsyncBroadcastStreamController();
-  const _addPendingEvent = Symbol('_addPendingEvent');
-  let const$7;
-  async._AsBroadcastStreamController$ = dart.generic(T => {
-    let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
-    let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    class _AsBroadcastStreamController extends async._SyncBroadcastStreamController$(T) {
-      new(onListen, onCancel) {
-        this[_pending] = null;
-        super.new(onListen, onCancel);
-      }
-      get [_hasPending]() {
-        return this[_pending] != null && !dart.test(this[_pending].isEmpty);
-      }
-      [_addPendingEvent](event) {
-        if (this[_pending] == null) {
-          this[_pending] = new (_StreamImplEventsOfT())();
-        }
-        this[_pending].add(event);
-      }
-      add(data) {
-        T._check(data);
-        if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
-          this[_addPendingEvent](new (_DelayedDataOfT())(data));
-          return;
-        }
-        super.add(data);
-        while (dart.test(this[_hasPending])) {
-          this[_pending].handleNext(this);
-        }
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
-          this[_addPendingEvent](new async._DelayedError(error, stackTrace));
-          return;
-        }
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
-        this[_sendError](error, stackTrace);
-        while (dart.test(this[_hasPending])) {
-          this[_pending].handleNext(this);
-        }
-      }
-      close() {
-        if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
-          this[_addPendingEvent](const$7 || (const$7 = dart.const(new async._DelayedDone())));
-          this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_CLOSED) >>> 0;
-          return super.done;
-        }
-        let result = super.close();
-        dart.assert(!dart.test(this[_hasPending]));
-        return result;
-      }
-      [_callOnCancel]() {
-        if (dart.test(this[_hasPending])) {
-          this[_pending].clear();
-          this[_pending] = null;
-        }
-        super[_callOnCancel]();
-      }
-    }
-    _AsBroadcastStreamController[dart.implements] = () => [_EventDispatchOfT()];
-    dart.setSignature(_AsBroadcastStreamController, {
-      constructors: () => ({new: dart.definiteFunctionType(async._AsBroadcastStreamController$(T), [VoidTovoid(), VoidTovoid()])}),
-      fields: () => ({[_pending]: _StreamImplEventsOfT()}),
-      getters: () => ({[_hasPending]: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({[_addPendingEvent]: dart.definiteFunctionType(dart.void, [async._DelayedEvent])})
-    });
-    return _AsBroadcastStreamController;
-  });
-  async._AsBroadcastStreamController = _AsBroadcastStreamController();
-  const _pauseCount = Symbol('_pauseCount');
-  const _resume = Symbol('_resume');
-  async._DoneSubscription$ = dart.generic(T => {
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _DoneSubscription extends core.Object {
-      new() {
-        this[_pauseCount] = 0;
-      }
-      onData(handleData) {}
-      onError(handleError) {}
-      onDone(handleDone) {}
-      pause(resumeSignal) {
-        if (resumeSignal === void 0) resumeSignal = null;
-        if (resumeSignal != null) resumeSignal.then(dart.void)(dart.bind(this, _resume));
-        this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
-      }
-      resume() {
-        this[_resume](null);
-      }
-      [_resume](_) {
-        if (dart.notNull(this[_pauseCount]) > 0) {
-          this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
-        }
-      }
-      cancel() {
-        return new async._Future.immediate(null);
-      }
-      get isPaused() {
-        return dart.notNull(this[_pauseCount]) > 0;
-      }
-      asFuture(E) {
-        return value => {
-          if (value === void 0) value = null;
-          return new (async._Future$(E))();
-        };
-      }
-    }
-    dart.addTypeTests(_DoneSubscription);
-    _DoneSubscription[dart.implements] = () => [StreamSubscriptionOfT()];
-    dart.setSignature(_DoneSubscription, {
-      fields: () => ({[_pauseCount]: core.int}),
-      getters: () => ({isPaused: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
-        onError: dart.definiteFunctionType(dart.void, [core.Function]),
-        onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
-        resume: dart.definiteFunctionType(dart.void, []),
-        [_resume]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-        cancel: dart.definiteFunctionType(async.Future, []),
-        asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]])
-      })
-    });
-    return _DoneSubscription;
-  });
-  async._DoneSubscription = _DoneSubscription();
-  async.DeferredLibrary = class DeferredLibrary extends core.Object {
-    new(libraryName, opts) {
-      let uri = opts && 'uri' in opts ? opts.uri : null;
-      this.libraryName = libraryName;
-      this.uri = uri;
-    }
-    load() {
-      dart.throw('DeferredLibrary not supported. ' + 'please use the `import "lib.dart" deferred as lib` syntax.');
-    }
-  };
-  dart.setSignature(async.DeferredLibrary, {
-    constructors: () => ({new: dart.definiteFunctionType(async.DeferredLibrary, [core.String], {uri: core.String})}),
-    fields: () => ({
-      libraryName: core.String,
-      uri: core.String
-    }),
-    methods: () => ({load: dart.definiteFunctionType(async.Future$(core.Null), [])})
-  });
-  const _s = Symbol('_s');
-  async.DeferredLoadException = class DeferredLoadException extends core.Object {
-    new(s) {
-      this[_s] = s;
-    }
-    toString() {
-      return dart.str`DeferredLoadException: '${this[_s]}'`;
-    }
-  };
-  async.DeferredLoadException[dart.implements] = () => [core.Exception];
-  dart.setSignature(async.DeferredLoadException, {
-    constructors: () => ({new: dart.definiteFunctionType(async.DeferredLoadException, [core.String])}),
-    fields: () => ({[_s]: core.String})
-  });
-  async.FutureOr$ = dart.generic(T => {
-    class FutureOr extends core.Object {
-      _() {
-        dart.throw(new core.UnsupportedError("FutureOr can't be instantiated"));
-      }
-    }
-    dart.addTypeTests(FutureOr);
-    dart.defineNamedConstructor(FutureOr, '_');
-    dart.setSignature(FutureOr, {
-      constructors: () => ({_: dart.definiteFunctionType(async.FutureOr$(T), [])})
-    });
-    return FutureOr;
-  });
-  async.FutureOr = FutureOr();
-  const _completeWithValue = Symbol('_completeWithValue');
-  let const$8;
-  async.Future$ = dart.flattenFutures(dart.generic(T => {
-    let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
-    let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
-    class Future extends core.Object {
-      static new(computation) {
-        let result = new (_FutureOfT())();
-        async.Timer.run(dart.fn(() => {
-          try {
-            result[_complete](computation());
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            async._completeWithErrorCallback(result, e, s);
-          }
-
-        }, VoidToNull()));
-        return result;
-      }
-      static microtask(computation) {
-        let result = new (_FutureOfT())();
-        async.scheduleMicrotask(dart.fn(() => {
-          try {
-            result[_complete](computation());
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            async._completeWithErrorCallback(result, e, s);
-          }
-
-        }, VoidToNull()));
-        return result;
-      }
-      static sync(computation) {
-        try {
-          let result = computation();
-          return FutureOfT().value(result);
-        } catch (error) {
-          let stackTrace = dart.stackTrace(error);
-          return FutureOfT().error(error, stackTrace);
-        }
-
-      }
-      static value(value) {
-        if (value === void 0) value = null;
-        return new (_FutureOfT()).immediate(value);
-      }
-      static error(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        error = async._nonNullError(error);
-        if (!core.identical(async.Zone.current, async._ROOT_ZONE)) {
-          let replacement = async.Zone.current.errorCallback(error, stackTrace);
-          if (replacement != null) {
-            error = async._nonNullError(replacement.error);
-            stackTrace = replacement.stackTrace;
-          }
-        }
-        return new (_FutureOfT()).immediateError(error, stackTrace);
-      }
-      static delayed(duration, computation) {
-        if (computation === void 0) computation = null;
-        let result = new (_FutureOfT())();
-        async.Timer.new(duration, dart.fn(() => {
-          try {
-            result[_complete](dart.nullSafe(computation, _ => _()));
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            async._completeWithErrorCallback(result, e, s);
-          }
-
-        }, VoidToNull()));
-        return result;
-      }
-      static wait(T) {
-        return (futures, opts) => {
-          let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false;
-          let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null;
-          let result = new (async._Future$(core.List$(T)))();
-          let values = null;
-          let remaining = 0;
-          let error = null;
-          let stackTrace = null;
-          function handleError(theError, theStackTrace) {
-            remaining--;
-            if (values != null) {
-              if (cleanUp != null) {
-                for (let value of values) {
-                  if (value != null) {
-                    async.Future.sync(dart.fn(() => {
-                      cleanUp(value);
-                    }, VoidToNull()));
-                  }
-                }
-              }
-              values = null;
-              if (remaining == 0 || dart.test(eagerError)) {
-                result[_completeError](theError, core.StackTrace._check(theStackTrace));
-              } else {
-                error = theError;
-                stackTrace = core.StackTrace._check(theStackTrace);
-              }
-            } else if (remaining == 0 && !dart.test(eagerError)) {
-              result[_completeError](error, stackTrace);
-            }
-          }
-          dart.fn(handleError, dynamicAnddynamicTovoid$());
-          try {
-            for (let future of futures) {
-              let pos = remaining;
-              future.then(dart.dynamic)(dart.fn(value => {
-                remaining--;
-                if (values != null) {
-                  values[dartx._set](pos, value);
-                  if (remaining == 0) {
-                    result[_completeWithValue](values);
-                  }
-                } else {
-                  if (cleanUp != null && value != null) {
-                    async.Future.sync(dart.fn(() => {
-                      cleanUp(value);
-                    }, VoidToNull()));
-                  }
-                  if (remaining == 0 && !dart.test(eagerError)) {
-                    result[_completeError](error, stackTrace);
-                  }
-                }
-              }, dart.definiteFunctionType(core.Null, [T])), {onError: handleError});
-              remaining++;
-            }
-            if (remaining == 0) {
-              return async.Future$(core.List$(T)).value(const$8 || (const$8 = dart.constList([], dart.dynamic)));
-            }
-            values = core.List$(T).new(remaining);
-          } catch (e) {
-            let st = dart.stackTrace(e);
-            if (remaining == 0 || dart.test(eagerError)) {
-              return async.Future$(core.List$(T)).error(e, st);
-            } else {
-              error = e;
-              stackTrace = st;
-            }
-          }
-
-          return result;
-        };
-      }
-      static any(T) {
-        return futures => {
-          let completer = async.Completer$(T).sync();
-          let onValue = dart.fn(value => {
-            if (!dart.test(completer.isCompleted)) completer.complete(value);
-          }, dart.definiteFunctionType(core.Null, [T]));
-          let onError = dart.fn((error, stack) => {
-            if (!dart.test(completer.isCompleted)) completer.completeError(error, core.StackTrace._check(stack));
-          }, dynamicAnddynamicToNull());
-          for (let future of futures) {
-            future.then(dart.dynamic)(onValue, {onError: onError});
-          }
-          return completer.future;
-        };
-      }
-      static forEach(input, f) {
-        let iterator = input[dartx.iterator];
-        return async.Future.doWhile(dart.fn(() => {
-          if (!dart.test(iterator.moveNext())) return false;
-          return async.Future.sync(dart.fn(() => dart.dcall(f, iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
-        }, VoidToObject$()));
-      }
-      static doWhile(f) {
-        let doneSignal = new async._Future();
-        let nextIteration = null;
-        nextIteration = async.Zone.current.bindUnaryCallback(dart.dynamic, core.bool)(dart.fn(keepGoing => {
-          if (dart.test(keepGoing)) {
-            async.Future.sync(f).then(dart.dynamic)(dynamicToFutureOr()._check(nextIteration), {onError: dart.bind(doneSignal, _completeError)});
-          } else {
-            doneSignal[_complete](null);
-          }
-        }, boolToNull()), {runGuarded: true});
-        dart.dcall(nextIteration, true);
-        return doneSignal;
-      }
-    }
-    dart.addTypeTests(Future);
-    dart.setSignature(Future, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
-        microtask: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
-        sync: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
-        value: dart.definiteFunctionType(async.Future$(T), [], [dart.dynamic]),
-        error: dart.definiteFunctionType(async.Future$(T), [core.Object], [core.StackTrace]),
-        delayed: dart.definiteFunctionType(async.Future$(T), [core.Duration], [VoidTodynamic()])
-      }),
-      sfields: () => ({_nullFuture: async._Future}),
-      statics: () => ({
-        wait: dart.definiteFunctionType(T => [async.Future$(core.List$(T)), [core.Iterable$(async.Future$(T))], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [T])}]),
-        any: dart.definiteFunctionType(T => [async.Future$(T), [core.Iterable$(async.Future$(T))]]),
-        forEach: dart.definiteFunctionType(async.Future, [core.Iterable, dynamicTodynamic()]),
-        doWhile: dart.definiteFunctionType(async.Future, [VoidTodynamic()])
-      }),
-      names: ['wait', 'any', 'forEach', 'doWhile']
-    });
-    return Future;
-  }));
-  async.Future = Future();
-  dart.defineLazy(async.Future, {
-    get _nullFuture() {
-      return async._Future._check(async.Future.value(null));
-    }
-  });
-  async.TimeoutException = class TimeoutException extends core.Object {
-    new(message, duration) {
-      if (duration === void 0) duration = null;
-      this.message = message;
-      this.duration = duration;
-    }
-    toString() {
-      let result = "TimeoutException";
-      if (this.duration != null) result = dart.str`TimeoutException after ${this.duration}`;
-      if (this.message != null) result = dart.str`${result}: ${this.message}`;
-      return result;
-    }
-  };
-  async.TimeoutException[dart.implements] = () => [core.Exception];
-  dart.setSignature(async.TimeoutException, {
-    constructors: () => ({new: dart.definiteFunctionType(async.TimeoutException, [core.String], [core.Duration])}),
-    fields: () => ({
-      message: core.String,
-      duration: core.Duration
-    })
-  });
-  async.Completer$ = dart.generic(T => {
-    let _AsyncCompleterOfT = () => (_AsyncCompleterOfT = dart.constFn(async._AsyncCompleter$(T)))();
-    let _SyncCompleterOfT = () => (_SyncCompleterOfT = dart.constFn(async._SyncCompleter$(T)))();
-    class Completer extends core.Object {
-      static new() {
-        return new (_AsyncCompleterOfT())();
-      }
-      static sync() {
-        return new (_SyncCompleterOfT())();
-      }
-    }
-    dart.addTypeTests(Completer);
-    dart.setSignature(Completer, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(async.Completer$(T), []),
-        sync: dart.definiteFunctionType(async.Completer$(T), [])
-      })
-    });
-    return Completer;
-  });
-  async.Completer = Completer();
-  async._completeWithErrorCallback = function(result, error, stackTrace) {
-    let replacement = async.Zone.current.errorCallback(error, core.StackTrace._check(stackTrace));
-    if (replacement != null) {
-      error = async._nonNullError(replacement.error);
-      stackTrace = replacement.stackTrace;
-    }
-    result[_completeError](error, core.StackTrace._check(stackTrace));
-  };
-  dart.lazyFn(async._completeWithErrorCallback, () => _FutureAnddynamicAnddynamicTovoid());
-  async._nonNullError = function(error) {
-    return error != null ? error : new core.NullThrownError();
-  };
-  dart.fn(async._nonNullError, ObjectToObject());
-  async._FutureOnValue$ = dart.generic((S, T) => {
-    const _FutureOnValue = dart.typedef('_FutureOnValue', () => dart.functionType(dart.dynamic, [S]));
-    return _FutureOnValue;
-  });
-  async._FutureOnValue = _FutureOnValue();
-  async._FutureErrorTest = dart.typedef('_FutureErrorTest', () => dart.functionType(core.bool, [dart.dynamic]));
-  async._FutureAction = dart.typedef('_FutureAction', () => dart.functionType(dart.dynamic, []));
-  async._Completer$ = dart.generic(T => {
-    let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
-    let CompleterOfT = () => (CompleterOfT = dart.constFn(async.Completer$(T)))();
-    class _Completer extends core.Object {
-      new() {
-        this.future = new (_FutureOfT())();
-      }
-      completeError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        error = async._nonNullError(error);
-        if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError("Future already completed"));
-        let replacement = async.Zone.current.errorCallback(error, stackTrace);
-        if (replacement != null) {
-          error = async._nonNullError(replacement.error);
-          stackTrace = replacement.stackTrace;
-        }
-        this[_completeError](error, stackTrace);
-      }
-      get isCompleted() {
-        return !dart.test(this.future[_mayComplete]);
-      }
-    }
-    dart.addTypeTests(_Completer);
-    _Completer[dart.implements] = () => [CompleterOfT()];
-    dart.setSignature(_Completer, {
-      fields: () => ({future: _FutureOfT()}),
-      getters: () => ({isCompleted: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({completeError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace])})
-    });
-    return _Completer;
-  });
-  async._Completer = _Completer();
-  const _asyncCompleteError = Symbol('_asyncCompleteError');
-  async._AsyncCompleter$ = dart.generic(T => {
-    class _AsyncCompleter extends async._Completer$(T) {
-      new() {
-        super.new();
-      }
-      complete(value) {
-        if (value === void 0) value = null;
-        if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError("Future already completed"));
-        this.future[_asyncComplete](value);
-      }
-      [_completeError](error, stackTrace) {
-        this.future[_asyncCompleteError](error, stackTrace);
-      }
-    }
-    dart.setSignature(_AsyncCompleter, {
-      methods: () => ({
-        complete: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
-        [_completeError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])
-      })
-    });
-    return _AsyncCompleter;
-  });
-  async._AsyncCompleter = _AsyncCompleter();
-  async._SyncCompleter$ = dart.generic(T => {
-    class _SyncCompleter extends async._Completer$(T) {
-      new() {
-        super.new();
-      }
-      complete(value) {
-        if (value === void 0) value = null;
-        if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError("Future already completed"));
-        this.future[_complete](value);
-      }
-      [_completeError](error, stackTrace) {
-        this.future[_completeError](error, stackTrace);
-      }
-    }
-    dart.setSignature(_SyncCompleter, {
-      methods: () => ({
-        complete: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
-        [_completeError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])
-      })
-    });
-    return _SyncCompleter;
-  });
-  async._SyncCompleter = _SyncCompleter();
-  const _nextListener = Symbol('_nextListener');
-  const _onValue = Symbol('_onValue');
-  const _errorTest = Symbol('_errorTest');
-  const _whenCompleteAction = Symbol('_whenCompleteAction');
-  async._FutureListener$ = dart.generic((S, T) => {
-    let _FutureOnValueOfS$T = () => (_FutureOnValueOfS$T = dart.constFn(async._FutureOnValue$(S, T)))();
-    let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
-    class _FutureListener extends core.Object {
-      then(result, onValue, errorCallback) {
-        this.result = result;
-        this.callback = onValue;
-        this.errorCallback = errorCallback;
-        this.state = errorCallback == null ? async._FutureListener.STATE_THEN : async._FutureListener.STATE_THEN_ONERROR;
-        this[_nextListener] = null;
-      }
-      catchError(result, errorCallback, test) {
-        this.result = result;
-        this.errorCallback = errorCallback;
-        this.callback = test;
-        this.state = test == null ? async._FutureListener.STATE_CATCHERROR : async._FutureListener.STATE_CATCHERROR_TEST;
-        this[_nextListener] = null;
-      }
-      whenComplete(result, onComplete) {
-        this.result = result;
-        this.callback = onComplete;
-        this.errorCallback = null;
-        this.state = async._FutureListener.STATE_WHENCOMPLETE;
-        this[_nextListener] = null;
-      }
-      get [_zone]() {
-        return this.result[_zone];
-      }
-      get handlesValue() {
-        return (dart.notNull(this.state) & async._FutureListener.MASK_VALUE) != 0;
-      }
-      get handlesError() {
-        return (dart.notNull(this.state) & async._FutureListener.MASK_ERROR) != 0;
-      }
-      get hasErrorTest() {
-        return this.state == async._FutureListener.STATE_CATCHERROR_TEST;
-      }
-      get handlesComplete() {
-        return this.state == async._FutureListener.STATE_WHENCOMPLETE;
-      }
-      get [_onValue]() {
-        dart.assert(this.handlesValue);
-        return _FutureOnValueOfS$T().as(this.callback);
-      }
-      get [_onError]() {
-        return this.errorCallback;
-      }
-      get [_errorTest]() {
-        dart.assert(this.hasErrorTest);
-        return async._FutureErrorTest.as(this.callback);
-      }
-      get [_whenCompleteAction]() {
-        dart.assert(this.handlesComplete);
-        return async._FutureAction.as(this.callback);
-      }
-      get hasErrorCallback() {
-        dart.assert(this.handlesError);
-        return this[_onError] != null;
-      }
-      handleValue(sourceResult) {
-        S._check(sourceResult);
-        return this[_zone].runUnary(dart.dynamic, S)(this[_onValue], sourceResult);
-      }
-      matchesErrorTest(asyncError) {
-        if (!dart.test(this.hasErrorTest)) return true;
-        let test = this[_errorTest];
-        return this[_zone].runUnary(core.bool, dart.dynamic)(this[_errorTest], asyncError.error);
-      }
-      handleError(asyncError) {
-        dart.assert(dart.test(this.handlesError) && dart.test(this.hasErrorCallback));
-        if (async.ZoneBinaryCallback.is(this.errorCallback)) {
-          let typedErrorCallback = ZoneBinaryCallbackOfObject$Object$StackTrace().as(this.errorCallback);
-          return this[_zone].runBinary(core.Object, core.Object, core.StackTrace)(typedErrorCallback, asyncError.error, asyncError.stackTrace);
-        } else {
-          return this[_zone].runUnary(dart.dynamic, dart.dynamic)(dynamicTodynamic()._check(this.errorCallback), asyncError.error);
-        }
-      }
-      handleWhenComplete() {
-        dart.assert(!dart.test(this.handlesError));
-        return this[_zone].run(dart.dynamic)(this[_whenCompleteAction]);
-      }
-    }
-    dart.addTypeTests(_FutureListener);
-    dart.defineNamedConstructor(_FutureListener, 'then');
-    dart.defineNamedConstructor(_FutureListener, 'catchError');
-    dart.defineNamedConstructor(_FutureListener, 'whenComplete');
-    dart.setSignature(_FutureListener, {
-      constructors: () => ({
-        then: dart.definiteFunctionType(async._FutureListener$(S, T), [_FutureOfT(), _FutureOnValueOfS$T(), core.Function]),
-        catchError: dart.definiteFunctionType(async._FutureListener$(S, T), [_FutureOfT(), core.Function, async._FutureErrorTest]),
-        whenComplete: dart.definiteFunctionType(async._FutureListener$(S, T), [_FutureOfT(), async._FutureAction])
-      }),
-      fields: () => ({
-        [_nextListener]: async._FutureListener,
-        result: _FutureOfT(),
-        state: core.int,
-        callback: core.Function,
-        errorCallback: core.Function
-      }),
-      getters: () => ({
-        [_zone]: dart.definiteFunctionType(async.Zone, []),
-        handlesValue: dart.definiteFunctionType(core.bool, []),
-        handlesError: dart.definiteFunctionType(core.bool, []),
-        hasErrorTest: dart.definiteFunctionType(core.bool, []),
-        handlesComplete: dart.definiteFunctionType(core.bool, []),
-        [_onValue]: dart.definiteFunctionType(async._FutureOnValue$(S, T), []),
-        [_onError]: dart.definiteFunctionType(core.Function, []),
-        [_errorTest]: dart.definiteFunctionType(async._FutureErrorTest, []),
-        [_whenCompleteAction]: dart.definiteFunctionType(async._FutureAction, []),
-        hasErrorCallback: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        handleValue: dart.definiteFunctionType(dart.dynamic, [S]),
-        matchesErrorTest: dart.definiteFunctionType(core.bool, [async.AsyncError]),
-        handleError: dart.definiteFunctionType(dart.dynamic, [async.AsyncError]),
-        handleWhenComplete: dart.definiteFunctionType(dart.dynamic, [])
-      }),
-      sfields: () => ({
-        MASK_VALUE: core.int,
-        MASK_ERROR: core.int,
-        MASK_TEST_ERROR: core.int,
-        MASK_WHENCOMPLETE: core.int,
-        STATE_CHAIN: core.int,
-        STATE_THEN: core.int,
-        STATE_THEN_ONERROR: core.int,
-        STATE_CATCHERROR: core.int,
-        STATE_CATCHERROR_TEST: core.int,
-        STATE_WHENCOMPLETE: core.int
-      })
-    });
-    return _FutureListener;
-  });
-  async._FutureListener = _FutureListener();
-  async._FutureListener.MASK_VALUE = 1;
-  async._FutureListener.MASK_ERROR = 2;
-  async._FutureListener.MASK_TEST_ERROR = 4;
-  async._FutureListener.MASK_WHENCOMPLETE = 8;
-  async._FutureListener.STATE_CHAIN = 0;
-  async._FutureListener.STATE_THEN_ONERROR = 3;
-  async._FutureListener.STATE_CATCHERROR_TEST = 6;
-  dart.defineLazy(async._FutureListener, {
-    get STATE_THEN() {
-      return async._FutureListener.MASK_VALUE;
-    },
-    get STATE_CATCHERROR() {
-      return async._FutureListener.MASK_ERROR;
-    },
-    get STATE_WHENCOMPLETE() {
-      return async._FutureListener.MASK_WHENCOMPLETE;
-    }
-  });
-  const _resultOrListeners = Symbol('_resultOrListeners');
-  const _isPendingComplete = Symbol('_isPendingComplete');
-  const _mayAddListener = Symbol('_mayAddListener');
-  const _isChained = Symbol('_isChained');
-  const _isComplete = Symbol('_isComplete');
-  const _hasError = Symbol('_hasError');
-  const _setChained = Symbol('_setChained');
-  const _thenNoZoneRegistration = Symbol('_thenNoZoneRegistration');
-  const _setPendingComplete = Symbol('_setPendingComplete');
-  const _clearPendingComplete = Symbol('_clearPendingComplete');
-  const _error = Symbol('_error');
-  const _chainSource = Symbol('_chainSource');
-  const _setValue = Symbol('_setValue');
-  const _setErrorObject = Symbol('_setErrorObject');
-  const _setError = Symbol('_setError');
-  const _cloneResult = Symbol('_cloneResult');
-  const _prependListeners = Symbol('_prependListeners');
-  const _reverseListeners = Symbol('_reverseListeners');
-  const _removeListeners = Symbol('_removeListeners');
-  async._Future$ = dart.flattenFutures(dart.generic(T => {
-    let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
-    let _FutureListenerOfT$T = () => (_FutureListenerOfT$T = dart.constFn(async._FutureListener$(T, T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
-    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
-    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
-    class _Future extends core.Object {
-      new() {
-        this[_zone] = async.Zone.current;
-        this[_state] = async._Future._INCOMPLETE;
-        this[_resultOrListeners] = null;
-      }
-      immediate(value) {
-        this[_zone] = async.Zone.current;
-        this[_state] = async._Future._INCOMPLETE;
-        this[_resultOrListeners] = null;
-        this[_asyncComplete](value);
-      }
-      immediateError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_zone] = async.Zone.current;
-        this[_state] = async._Future._INCOMPLETE;
-        this[_resultOrListeners] = null;
-        this[_asyncCompleteError](error, stackTrace);
-      }
-      get [_mayComplete]() {
-        return this[_state] == async._Future._INCOMPLETE;
-      }
-      get [_isPendingComplete]() {
-        return this[_state] == async._Future._PENDING_COMPLETE;
-      }
-      get [_mayAddListener]() {
-        return dart.notNull(this[_state]) <= async._Future._PENDING_COMPLETE;
-      }
-      get [_isChained]() {
-        return this[_state] == async._Future._CHAINED;
-      }
-      get [_isComplete]() {
-        return dart.notNull(this[_state]) >= async._Future._VALUE;
-      }
-      get [_hasError]() {
-        return this[_state] == async._Future._ERROR;
-      }
-      [_setChained](source) {
-        dart.assert(this[_mayAddListener]);
-        this[_state] = async._Future._CHAINED;
-        this[_resultOrListeners] = source;
-      }
-      then(E) {
-        return (f, opts) => {
-          let onError = opts && 'onError' in opts ? opts.onError : null;
-          let currentZone = async.Zone.current;
-          let registered = null;
-          if (!core.identical(currentZone, async._ROOT_ZONE)) {
-            f = currentZone.registerUnaryCallback(async.FutureOr$(E), T)(f);
-            if (onError != null) {
-              onError = async._registerErrorHandler(T)(onError, currentZone);
-            }
-          }
-          return this[_thenNoZoneRegistration](E)(f, onError);
-        };
-      }
-      [_thenNoZoneRegistration](E) {
-        return (f, onError) => {
-          let result = new (async._Future$(E))();
-          this[_addListener](new (async._FutureListener$(T, E)).then(result, f, onError));
-          return result;
-        };
-      }
-      catchError(onError, opts) {
-        let test = opts && 'test' in opts ? opts.test : null;
-        let result = new (_FutureOfT())();
-        if (!core.identical(result[_zone], async._ROOT_ZONE)) {
-          onError = async._registerErrorHandler(T)(onError, result[_zone]);
-          if (test != null) test = result[_zone].registerUnaryCallback(core.bool, dart.dynamic)(test);
-        }
-        this[_addListener](new (_FutureListenerOfT$T()).catchError(result, onError, test));
-        return result;
-      }
-      whenComplete(action) {
-        let result = new (_FutureOfT())();
-        if (!core.identical(result[_zone], async._ROOT_ZONE)) {
-          action = result[_zone].registerCallback(dart.dynamic)(action);
-        }
-        this[_addListener](new (_FutureListenerOfT$T()).whenComplete(result, action));
-        return result;
-      }
-      asStream() {
-        return StreamOfT().fromFuture(this);
-      }
-      [_setPendingComplete]() {
-        dart.assert(this[_mayComplete]);
-        this[_state] = async._Future._PENDING_COMPLETE;
-      }
-      [_clearPendingComplete]() {
-        dart.assert(this[_isPendingComplete]);
-        this[_state] = async._Future._INCOMPLETE;
-      }
-      get [_error]() {
-        dart.assert(this[_hasError]);
-        return async.AsyncError._check(this[_resultOrListeners]);
-      }
-      get [_chainSource]() {
-        dart.assert(this[_isChained]);
-        return async._Future._check(this[_resultOrListeners]);
-      }
-      [_setValue](value) {
-        T._check(value);
-        dart.assert(!dart.test(this[_isComplete]));
-        this[_state] = async._Future._VALUE;
-        this[_resultOrListeners] = value;
-      }
-      [_setErrorObject](error) {
-        dart.assert(!dart.test(this[_isComplete]));
-        this[_state] = async._Future._ERROR;
-        this[_resultOrListeners] = error;
-      }
-      [_setError](error, stackTrace) {
-        this[_setErrorObject](new async.AsyncError(error, stackTrace));
-      }
-      [_cloneResult](source) {
-        dart.assert(!dart.test(this[_isComplete]));
-        dart.assert(source[_isComplete]);
-        this[_state] = source[_state];
-        this[_resultOrListeners] = source[_resultOrListeners];
-      }
-      [_addListener](listener) {
-        dart.assert(listener[_nextListener] == null);
-        if (dart.test(this[_mayAddListener])) {
-          listener[_nextListener] = async._FutureListener._check(this[_resultOrListeners]);
-          this[_resultOrListeners] = listener;
-        } else {
-          if (dart.test(this[_isChained])) {
-            let source = this[_chainSource];
-            if (!dart.test(source[_isComplete])) {
-              source[_addListener](listener);
-              return;
-            }
-            this[_cloneResult](source);
-          }
-          dart.assert(this[_isComplete]);
-          this[_zone].scheduleMicrotask(dart.fn(() => {
-            async._Future._propagateToListeners(this, listener);
-          }, VoidToNull()));
-        }
-      }
-      [_prependListeners](listeners) {
-        if (listeners == null) return;
-        if (dart.test(this[_mayAddListener])) {
-          let existingListeners = async._FutureListener._check(this[_resultOrListeners]);
-          this[_resultOrListeners] = listeners;
-          if (existingListeners != null) {
-            let cursor = listeners;
-            while (cursor[_nextListener] != null) {
-              cursor = cursor[_nextListener];
-            }
-            cursor[_nextListener] = existingListeners;
-          }
-        } else {
-          if (dart.test(this[_isChained])) {
-            let source = this[_chainSource];
-            if (!dart.test(source[_isComplete])) {
-              source[_prependListeners](listeners);
-              return;
-            }
-            this[_cloneResult](source);
-          }
-          dart.assert(this[_isComplete]);
-          listeners = this[_reverseListeners](listeners);
-          this[_zone].scheduleMicrotask(dart.fn(() => {
-            async._Future._propagateToListeners(this, listeners);
-          }, VoidToNull()));
-        }
-      }
-      [_removeListeners]() {
-        dart.assert(!dart.test(this[_isComplete]));
-        let current = async._FutureListener._check(this[_resultOrListeners]);
-        this[_resultOrListeners] = null;
-        return this[_reverseListeners](current);
-      }
-      [_reverseListeners](listeners) {
-        let prev = null;
-        let current = listeners;
-        while (current != null) {
-          let next = current[_nextListener];
-          current[_nextListener] = prev;
-          prev = current;
-          current = next;
-        }
-        return prev;
-      }
-      static _chainForeignFuture(source, target) {
-        dart.assert(!dart.test(target[_isComplete]));
-        dart.assert(!async._Future.is(source));
-        target[_setPendingComplete]();
-        try {
-          source.then(dart.dynamic)(dart.fn(value => {
-            dart.assert(target[_isPendingComplete]);
-            target[_clearPendingComplete]();
-            target[_complete](value);
-          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
-              if (stackTrace === void 0) stackTrace = null;
-              dart.assert(target[_isPendingComplete]);
-              target[_completeError](error, core.StackTrace._check(stackTrace));
-            }, dynamic__ToNull())});
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          async.scheduleMicrotask(dart.fn(() => {
-            target[_completeError](e, s);
-          }, VoidToNull()));
-        }
-
-      }
-      static _chainCoreFuture(source, target) {
-        dart.assert(target[_mayAddListener]);
-        while (dart.test(source[_isChained])) {
-          source = source[_chainSource];
-        }
-        if (dart.test(source[_isComplete])) {
-          let listeners = target[_removeListeners]();
-          target[_cloneResult](source);
-          async._Future._propagateToListeners(target, listeners);
-        } else {
-          let listeners = async._FutureListener._check(target[_resultOrListeners]);
-          target[_setChained](source);
-          source[_prependListeners](listeners);
-        }
-      }
-      [_complete](value) {
-        dart.assert(!dart.test(this[_isComplete]));
-        if (async.Future.is(value)) {
-          if (async._Future.is(value)) {
-            async._Future._chainCoreFuture(value, this);
-          } else {
-            async._Future._chainForeignFuture(value, this);
-          }
-        } else {
-          let listeners = this[_removeListeners]();
-          this[_setValue](T.as(value));
-          async._Future._propagateToListeners(this, listeners);
-        }
-      }
-      [_completeWithValue](value) {
-        T._check(value);
-        dart.assert(!dart.test(this[_isComplete]));
-        dart.assert(!async.Future.is(value));
-        let listeners = this[_removeListeners]();
-        this[_setValue](value);
-        async._Future._propagateToListeners(this, listeners);
-      }
-      [_completeError](error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        dart.assert(!dart.test(this[_isComplete]));
-        let listeners = this[_removeListeners]();
-        this[_setError](error, stackTrace);
-        async._Future._propagateToListeners(this, listeners);
-      }
-      [_asyncComplete](value) {
-        dart.assert(!dart.test(this[_isComplete]));
-        if (async.Future.is(value)) {
-          let typedFuture = FutureOfT().as(value);
-          if (async._Future.is(typedFuture)) {
-            let coreFuture = _FutureOfT()._check(typedFuture);
-            if (dart.test(coreFuture[_hasError])) {
-              this[_setPendingComplete]();
-              this[_zone].scheduleMicrotask(dart.fn(() => {
-                async._Future._chainCoreFuture(coreFuture, this);
-              }, VoidToNull()));
-            } else {
-              async._Future._chainCoreFuture(coreFuture, this);
-            }
-          } else {
-            async._Future._chainForeignFuture(typedFuture, this);
-          }
-          return;
-        }
-        let typedValue = T.as(value);
-        this[_setPendingComplete]();
-        this[_zone].scheduleMicrotask(dart.fn(() => {
-          this[_completeWithValue](typedValue);
-        }, VoidToNull()));
-      }
-      [_asyncCompleteError](error, stackTrace) {
-        dart.assert(!dart.test(this[_isComplete]));
-        this[_setPendingComplete]();
-        this[_zone].scheduleMicrotask(dart.fn(() => {
-          this[_completeError](error, stackTrace);
-        }, VoidToNull()));
-      }
-      static _propagateToListeners(source, listeners) {
-        while (true) {
-          dart.assert(source[_isComplete]);
-          let hasError = source[_hasError];
-          if (listeners == null) {
-            if (dart.test(hasError)) {
-              let asyncError = source[_error];
-              source[_zone].handleUncaughtError(dart.dynamic)(asyncError.error, asyncError.stackTrace);
-            }
-            return;
-          }
-          while (listeners[_nextListener] != null) {
-            let listener = listeners;
-            listeners = listener[_nextListener];
-            listener[_nextListener] = null;
-            async._Future._propagateToListeners(source, listener);
-          }
-          let listener = listeners;
-          let sourceResult = source[_resultOrListeners];
-          let listenerHasError = hasError;
-          let listenerValueOrError = sourceResult;
-          if (dart.test(hasError) || dart.test(listener.handlesValue) || dart.test(listener.handlesComplete)) {
-            let zone = listener[_zone];
-            if (dart.test(hasError) && !dart.test(source[_zone].inSameErrorZone(zone))) {
-              let asyncError = source[_error];
-              source[_zone].handleUncaughtError(dart.dynamic)(asyncError.error, asyncError.stackTrace);
-              return;
-            }
-            let oldZone = null;
-            if (!core.identical(async.Zone.current, zone)) {
-              oldZone = async.Zone._enter(zone);
-            }
-            function handleWhenCompleteCallback() {
-              dart.assert(!dart.test(listener.handlesValue));
-              dart.assert(!dart.test(listener.handlesError));
-              let completeResult = null;
-              try {
-                completeResult = listener.handleWhenComplete();
-              } catch (e) {
-                let s = dart.stackTrace(e);
-                if (dart.test(hasError) && core.identical(source[_error].error, e)) {
-                  listenerValueOrError = source[_error];
-                } else {
-                  listenerValueOrError = new async.AsyncError(e, s);
-                }
-                listenerHasError = true;
-                return;
-              }
-
-              if (async.Future.is(completeResult)) {
-                if (async._Future.is(completeResult) && dart.test(completeResult[_isComplete])) {
-                  if (dart.test(completeResult[_hasError])) {
-                    listenerValueOrError = completeResult[_error];
-                    listenerHasError = true;
-                  }
-                  return;
-                }
-                let originalSource = source;
-                listenerValueOrError = completeResult.then(dart.dynamic)(dart.fn(_ => originalSource, dynamicTo_Future()));
-                listenerHasError = false;
-              }
-            }
-            dart.fn(handleWhenCompleteCallback, VoidTovoid$());
-            function handleValueCallback() {
-              try {
-                listenerValueOrError = listener.handleValue(sourceResult);
-              } catch (e) {
-                let s = dart.stackTrace(e);
-                listenerValueOrError = new async.AsyncError(e, s);
-                listenerHasError = true;
-              }
-
-            }
-            dart.fn(handleValueCallback, VoidTovoid$());
-            function handleError() {
-              try {
-                let asyncError = source[_error];
-                if (dart.test(listener.matchesErrorTest(asyncError)) && dart.test(listener.hasErrorCallback)) {
-                  listenerValueOrError = listener.handleError(asyncError);
-                  listenerHasError = false;
-                }
-              } catch (e) {
-                let s = dart.stackTrace(e);
-                if (core.identical(source[_error].error, e)) {
-                  listenerValueOrError = source[_error];
-                } else {
-                  listenerValueOrError = new async.AsyncError(e, s);
-                }
-                listenerHasError = true;
-              }
-
-            }
-            dart.fn(handleError, VoidTovoid$());
-            if (dart.test(listener.handlesComplete)) {
-              handleWhenCompleteCallback();
-            } else if (!dart.test(hasError)) {
-              if (dart.test(listener.handlesValue)) {
-                handleValueCallback();
-              }
-            } else {
-              if (dart.test(listener.handlesError)) {
-                handleError();
-              }
-            }
-            if (oldZone != null) async.Zone._leave(oldZone);
-            if (async.Future.is(listenerValueOrError)) {
-              let chainSource = async.Future._check(listenerValueOrError);
-              let result = listener.result;
-              if (async._Future.is(chainSource)) {
-                if (dart.test(chainSource[_isComplete])) {
-                  listeners = result[_removeListeners]();
-                  result[_cloneResult](chainSource);
-                  source = chainSource;
-                  continue;
-                } else {
-                  async._Future._chainCoreFuture(chainSource, result);
-                }
-              } else {
-                async._Future._chainForeignFuture(chainSource, result);
-              }
-              return;
-            }
-          }
-          let result = listener.result;
-          listeners = result[_removeListeners]();
-          if (!dart.test(listenerHasError)) {
-            result[_setValue](listenerValueOrError);
-          } else {
-            let asyncError = async.AsyncError._check(listenerValueOrError);
-            result[_setErrorObject](asyncError);
-          }
-          source = result;
-        }
-      }
-      timeout(timeLimit, opts) {
-        let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
-        if (dart.test(this[_isComplete])) return new (_FutureOfT()).immediate(this);
-        let result = new (_FutureOfT())();
-        let timer = null;
-        if (onTimeout == null) {
-          timer = async.Timer.new(timeLimit, dart.fn(() => {
-            result[_completeError](new async.TimeoutException("Future not completed", timeLimit));
-          }, VoidToNull()));
-        } else {
-          let zone = async.Zone.current;
-          onTimeout = zone.registerCallback(dart.dynamic)(onTimeout);
-          timer = async.Timer.new(timeLimit, dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
+          if (!seenFirst) {
             try {
-              result[_complete](zone.run(dart.dynamic)(onTimeout));
+              dart.throw(_internal.IterableElementError.noElement());
             } catch (e) {
               let s = dart.stackTrace(e);
-              result[_completeError](e, s);
-            }
-
-          }, VoidToNull()));
-        }
-        this.then(dart.dynamic)(dart.fn(v => {
-          if (dart.test(timer.isActive)) {
-            timer.cancel();
-            result[_completeWithValue](v);
-          }
-        }, TToNull()), {onError: dart.fn((e, s) => {
-            if (dart.test(timer.isActive)) {
-              timer.cancel();
-              result[_completeError](e, core.StackTrace._check(s));
-            }
-          }, dynamicAnddynamicToNull())});
-        return result;
-      }
-    }
-    dart.addTypeTests(_Future);
-    dart.defineNamedConstructor(_Future, 'immediate');
-    dart.defineNamedConstructor(_Future, 'immediateError');
-    _Future[dart.implements] = () => [FutureOfT()];
-    dart.setSignature(_Future, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(async._Future$(T), []),
-        immediate: dart.definiteFunctionType(async._Future$(T), [dart.dynamic]),
-        immediateError: dart.definiteFunctionType(async._Future$(T), [dart.dynamic], [core.StackTrace])
-      }),
-      fields: () => ({
-        [_state]: core.int,
-        [_zone]: async.Zone,
-        [_resultOrListeners]: dart.dynamic
-      }),
-      getters: () => ({
-        [_mayComplete]: dart.definiteFunctionType(core.bool, []),
-        [_isPendingComplete]: dart.definiteFunctionType(core.bool, []),
-        [_mayAddListener]: dart.definiteFunctionType(core.bool, []),
-        [_isChained]: dart.definiteFunctionType(core.bool, []),
-        [_isComplete]: dart.definiteFunctionType(core.bool, []),
-        [_hasError]: dart.definiteFunctionType(core.bool, []),
-        [_error]: dart.definiteFunctionType(async.AsyncError, []),
-        [_chainSource]: dart.definiteFunctionType(async._Future, [])
-      }),
-      methods: () => ({
-        [_setChained]: dart.definiteFunctionType(dart.void, [async._Future]),
-        then: dart.definiteFunctionType(E => [async.Future$(E), [dart.functionType(async.FutureOr$(E), [T])], {onError: core.Function}]),
-        [_thenNoZoneRegistration]: dart.definiteFunctionType(E => [async.Future$(E), [TTodynamic(), core.Function]]),
-        catchError: dart.definiteFunctionType(async.Future$(T), [core.Function], {test: dynamicTobool()}),
-        whenComplete: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
-        asStream: dart.definiteFunctionType(async.Stream$(T), []),
-        [_setPendingComplete]: dart.definiteFunctionType(dart.void, []),
-        [_clearPendingComplete]: dart.definiteFunctionType(dart.void, []),
-        [_setValue]: dart.definiteFunctionType(dart.void, [T]),
-        [_setErrorObject]: dart.definiteFunctionType(dart.void, [async.AsyncError]),
-        [_setError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_cloneResult]: dart.definiteFunctionType(dart.void, [async._Future]),
-        [_addListener]: dart.definiteFunctionType(dart.void, [async._FutureListener]),
-        [_prependListeners]: dart.definiteFunctionType(dart.void, [async._FutureListener]),
-        [_removeListeners]: dart.definiteFunctionType(async._FutureListener, []),
-        [_reverseListeners]: dart.definiteFunctionType(async._FutureListener, [async._FutureListener]),
-        [_complete]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-        [_completeWithValue]: dart.definiteFunctionType(dart.void, [T]),
-        [_completeError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-        [_asyncComplete]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-        [_asyncCompleteError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
-        timeout: dart.definiteFunctionType(async.Future$(T), [core.Duration], {onTimeout: VoidTodynamic()})
-      }),
-      sfields: () => ({
-        _INCOMPLETE: core.int,
-        _PENDING_COMPLETE: core.int,
-        _CHAINED: core.int,
-        _VALUE: core.int,
-        _ERROR: core.int
-      }),
-      statics: () => ({
-        _chainForeignFuture: dart.definiteFunctionType(dart.void, [async.Future, async._Future]),
-        _chainCoreFuture: dart.definiteFunctionType(dart.void, [async._Future, async._Future]),
-        _propagateToListeners: dart.definiteFunctionType(dart.void, [async._Future, async._FutureListener])
-      }),
-      names: ['_chainForeignFuture', '_chainCoreFuture', '_propagateToListeners']
-    });
-    return _Future;
-  }));
-  async._Future = _Future();
-  async._Future._INCOMPLETE = 0;
-  async._Future._PENDING_COMPLETE = 1;
-  async._Future._CHAINED = 2;
-  async._Future._VALUE = 4;
-  async._Future._ERROR = 8;
-  async._AsyncCallback = dart.typedef('_AsyncCallback', () => dart.functionType(dart.void, []));
-  async._AsyncCallbackEntry = class _AsyncCallbackEntry extends core.Object {
-    new(callback) {
-      this.callback = callback;
-      this.next = null;
-    }
-  };
-  dart.setSignature(async._AsyncCallbackEntry, {
-    constructors: () => ({new: dart.definiteFunctionType(async._AsyncCallbackEntry, [async._AsyncCallback])}),
-    fields: () => ({
-      callback: async._AsyncCallback,
-      next: async._AsyncCallbackEntry
-    })
-  });
-  async._nextCallback = null;
-  async._lastCallback = null;
-  async._lastPriorityCallback = null;
-  async._isInCallbackLoop = false;
-  async._microtaskLoop = function() {
-    while (async._nextCallback != null) {
-      async._lastPriorityCallback = null;
-      let entry = async._nextCallback;
-      async._nextCallback = entry.next;
-      if (async._nextCallback == null) async._lastCallback = null;
-      entry.callback();
-    }
-  };
-  dart.fn(async._microtaskLoop, VoidTovoid$());
-  async._startMicrotaskLoop = function() {
-    async._isInCallbackLoop = true;
-    try {
-      async._microtaskLoop();
-    } finally {
-      async._lastPriorityCallback = null;
-      async._isInCallbackLoop = false;
-      if (async._nextCallback != null) {
-        async._AsyncRun._scheduleImmediate(async._startMicrotaskLoop);
-      }
-    }
-  };
-  dart.fn(async._startMicrotaskLoop, VoidTovoid$());
-  async._scheduleAsyncCallback = function(callback) {
-    let newEntry = new async._AsyncCallbackEntry(callback);
-    if (async._nextCallback == null) {
-      async._nextCallback = async._lastCallback = newEntry;
-      if (!dart.test(async._isInCallbackLoop)) {
-        async._AsyncRun._scheduleImmediate(async._startMicrotaskLoop);
-      }
-    } else {
-      async._lastCallback.next = newEntry;
-      async._lastCallback = newEntry;
-    }
-  };
-  dart.fn(async._scheduleAsyncCallback, _AsyncCallbackTovoid());
-  async._schedulePriorityAsyncCallback = function(callback) {
-    if (async._nextCallback == null) {
-      async._scheduleAsyncCallback(callback);
-      async._lastPriorityCallback = async._lastCallback;
-      return;
-    }
-    let entry = new async._AsyncCallbackEntry(callback);
-    if (async._lastPriorityCallback == null) {
-      entry.next = async._nextCallback;
-      async._nextCallback = async._lastPriorityCallback = entry;
-    } else {
-      entry.next = async._lastPriorityCallback.next;
-      async._lastPriorityCallback.next = entry;
-      async._lastPriorityCallback = entry;
-      if (entry.next == null) {
-        async._lastCallback = entry;
-      }
-    }
-  };
-  dart.fn(async._schedulePriorityAsyncCallback, _AsyncCallbackTovoid());
-  const _scheduleMicrotask = Symbol('_scheduleMicrotask');
-  async.scheduleMicrotask = function(callback) {
-    let currentZone = async._Zone._check(async.Zone.current);
-    if (core.identical(async._ROOT_ZONE, currentZone)) {
-      async._rootScheduleMicrotask(null, null, async._ROOT_ZONE, callback);
-      return;
-    }
-    let implementation = currentZone[_scheduleMicrotask];
-    if (core.identical(async._ROOT_ZONE, implementation.zone) && dart.test(async._ROOT_ZONE.inSameErrorZone(currentZone))) {
-      async._rootScheduleMicrotask(null, null, currentZone, currentZone.registerCallback(dart.void)(callback));
-      return;
-    }
-    async.Zone.current.scheduleMicrotask(async.Zone.current.bindCallback(dart.void)(callback, {runGuarded: true}));
-  };
-  dart.fn(async.scheduleMicrotask, _AsyncCallbackTovoid());
-  async._AsyncRun = class _AsyncRun extends core.Object {
-    static _scheduleImmediate(callback) {
-      async._AsyncRun._scheduleImmediateClosure(callback);
-    }
-    static _initializeScheduleImmediate() {
-      if (_isolate_helper.global.scheduleImmediate != null) {
-        return async._AsyncRun._scheduleImmediateJsOverride;
-      }
-      if (_isolate_helper.global.MutationObserver != null && _isolate_helper.global.document != null) {
-        let div = _isolate_helper.global.document.createElement("div");
-        let span = _isolate_helper.global.document.createElement("span");
-        let storedCallback = null;
-        function internalCallback(_) {
-          _isolate_helper.leaveJsAsync();
-          let f = storedCallback;
-          storedCallback = null;
-          f();
-        }
-        dart.fn(internalCallback, dynamicToNull$());
-        ;
-        let observer = new _isolate_helper.global.MutationObserver(internalCallback);
-        observer.observe(div, {childList: true});
-        return dart.fn(callback => {
-          dart.assert(storedCallback == null);
-          _isolate_helper.enterJsAsync();
-          storedCallback = callback;
-          div.firstChild ? div.removeChild(span) : div.appendChild(span);
-        }, FnToNull());
-      } else if (_isolate_helper.global.setImmediate != null) {
-        return async._AsyncRun._scheduleImmediateWithSetImmediate;
-      }
-      return async._AsyncRun._scheduleImmediateWithTimer;
-    }
-    static _scheduleImmediateJsOverride(callback) {
-      function internalCallback() {
-        _isolate_helper.leaveJsAsync();
-        callback();
-      }
-      dart.fn(internalCallback, VoidToNull());
-      ;
-      _isolate_helper.enterJsAsync();
-      _isolate_helper.global.scheduleImmediate(internalCallback);
-    }
-    static _scheduleImmediateWithSetImmediate(callback) {
-      function internalCallback() {
-        _isolate_helper.leaveJsAsync();
-        callback();
-      }
-      dart.fn(internalCallback, VoidToNull());
-      ;
-      _isolate_helper.enterJsAsync();
-      _isolate_helper.global.setImmediate(internalCallback);
-    }
-    static _scheduleImmediateWithTimer(callback) {
-      async.Timer._createTimer(core.Duration.ZERO, callback);
-    }
-  };
-  dart.setSignature(async._AsyncRun, {
-    sfields: () => ({_scheduleImmediateClosure: async._TakeCallback}),
-    statics: () => ({
-      _scheduleImmediate: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      _initializeScheduleImmediate: dart.definiteFunctionType(async._TakeCallback, []),
-      _scheduleImmediateJsOverride: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      _scheduleImmediateWithSetImmediate: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      _scheduleImmediateWithTimer: dart.definiteFunctionType(dart.void, [VoidTovoid()])
-    }),
-    names: ['_scheduleImmediate', '_initializeScheduleImmediate', '_scheduleImmediateJsOverride', '_scheduleImmediateWithSetImmediate', '_scheduleImmediateWithTimer']
-  });
-  dart.defineLazy(async._AsyncRun, {
-    get _scheduleImmediateClosure() {
-      return async._AsyncRun._initializeScheduleImmediate();
-    }
-  });
-  async._TimerCallback = dart.typedef('_TimerCallback', () => dart.functionType(dart.void, []));
-  async.StreamSubscription$ = dart.generic(T => {
-    class StreamSubscription extends core.Object {}
-    dart.addTypeTests(StreamSubscription);
-    return StreamSubscription;
-  });
-  async.StreamSubscription = StreamSubscription();
-  async.EventSink$ = dart.generic(T => {
-    let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
-    class EventSink extends core.Object {}
-    dart.addTypeTests(EventSink);
-    EventSink[dart.implements] = () => [SinkOfT()];
-    return EventSink;
-  });
-  async.EventSink = EventSink();
-  const _stream = Symbol('_stream');
-  async.StreamView$ = dart.generic(T => {
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class StreamView extends async.Stream$(T) {
-      new(stream) {
-        this[_stream] = stream;
-        super._internal();
-      }
-      get isBroadcast() {
-        return this[_stream].isBroadcast;
-      }
-      asBroadcastStream(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        return this[_stream].asBroadcastStream({onListen: onListen, onCancel: onCancel});
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        return this[_stream].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-      }
-    }
-    dart.setSignature(StreamView, {
-      constructors: () => ({new: dart.definiteFunctionType(async.StreamView$(T), [StreamOfT()])}),
-      fields: () => ({[_stream]: StreamOfT()}),
-      methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-    });
-    return StreamView;
-  });
-  async.StreamView = StreamView();
-  async.StreamConsumer$ = dart.generic(S => {
-    class StreamConsumer extends core.Object {}
-    dart.addTypeTests(StreamConsumer);
-    return StreamConsumer;
-  });
-  async.StreamConsumer = StreamConsumer();
-  async.StreamSink$ = dart.generic(S => {
-    let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
-    let StreamConsumerOfS = () => (StreamConsumerOfS = dart.constFn(async.StreamConsumer$(S)))();
-    class StreamSink extends core.Object {}
-    dart.addTypeTests(StreamSink);
-    StreamSink[dart.implements] = () => [EventSinkOfS(), StreamConsumerOfS()];
-    return StreamSink;
-  });
-  async.StreamSink = StreamSink();
-  async.StreamTransformer$ = dart.generic((S, T) => {
-    let _StreamSubscriptionTransformerOfS$T = () => (_StreamSubscriptionTransformerOfS$T = dart.constFn(async._StreamSubscriptionTransformer$(S, T)))();
-    let _StreamHandlerTransformerOfS$T = () => (_StreamHandlerTransformerOfS$T = dart.constFn(async._StreamHandlerTransformer$(S, T)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let StreamOfSAndboolToStreamSubscriptionOfT = () => (StreamOfSAndboolToStreamSubscriptionOfT = dart.constFn(dart.functionType(StreamSubscriptionOfT(), [StreamOfS(), core.bool])))();
-    let SAndEventSinkOfTTovoid = () => (SAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [S, EventSinkOfT()])))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    let ObjectAndStackTraceAndEventSinkOfTTovoid = () => (ObjectAndStackTraceAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [core.Object, core.StackTrace, EventSinkOfT()])))();
-    let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
-    class StreamTransformer extends core.Object {
-      static new(transformer) {
-        return new (_StreamSubscriptionTransformerOfS$T())(transformer);
-      }
-      static fromHandlers(opts) {
-        return new (_StreamHandlerTransformerOfS$T())(opts);
-      }
-    }
-    dart.addTypeTests(StreamTransformer);
-    dart.setSignature(StreamTransformer, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(async.StreamTransformer$(S, T), [StreamOfSAndboolToStreamSubscriptionOfT()]),
-        fromHandlers: dart.definiteFunctionType(async.StreamTransformer$(S, T), [], {handleData: SAndEventSinkOfTTovoid(), handleError: ObjectAndStackTraceAndEventSinkOfTTovoid(), handleDone: EventSinkOfTTovoid()})
-      })
-    });
-    return StreamTransformer;
-  });
-  async.StreamTransformer = StreamTransformer();
-  async.StreamIterator$ = dart.generic(T => {
-    let _StreamIteratorImplOfT = () => (_StreamIteratorImplOfT = dart.constFn(async._StreamIteratorImpl$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class StreamIterator extends core.Object {
-      static new(stream) {
-        return new (_StreamIteratorImplOfT())(stream);
-      }
-    }
-    dart.addTypeTests(StreamIterator);
-    dart.setSignature(StreamIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(async.StreamIterator$(T), [StreamOfT()])})
-    });
-    return StreamIterator;
-  });
-  async.StreamIterator = StreamIterator();
-  async._ControllerEventSinkWrapper$ = dart.generic(T => {
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    class _ControllerEventSinkWrapper extends core.Object {
-      new(sink) {
-        this[_sink] = sink;
-      }
-      add(data) {
-        T._check(data);
-        this[_sink].add(data);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_sink].addError(error, stackTrace);
-      }
-      close() {
-        this[_sink].close();
-      }
-    }
-    dart.addTypeTests(_ControllerEventSinkWrapper);
-    _ControllerEventSinkWrapper[dart.implements] = () => [EventSinkOfT()];
-    dart.setSignature(_ControllerEventSinkWrapper, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ControllerEventSinkWrapper$(T), [async.EventSink])}),
-      fields: () => ({[_sink]: async.EventSink}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [T]),
-        addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-        close: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _ControllerEventSinkWrapper;
-  });
-  async._ControllerEventSinkWrapper = _ControllerEventSinkWrapper();
-  async.ControllerCallback = dart.typedef('ControllerCallback', () => dart.functionType(dart.void, []));
-  async.ControllerCancelCallback = dart.typedef('ControllerCancelCallback', () => dart.functionType(dart.dynamic, []));
-  async.StreamController$ = dart.generic(T => {
-    let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
-    let _AsyncStreamControllerOfT = () => (_AsyncStreamControllerOfT = dart.constFn(async._AsyncStreamController$(T)))();
-    let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
-    let _AsyncBroadcastStreamControllerOfT = () => (_AsyncBroadcastStreamControllerOfT = dart.constFn(async._AsyncBroadcastStreamController$(T)))();
-    let StreamSinkOfT = () => (StreamSinkOfT = dart.constFn(async.StreamSink$(T)))();
-    class StreamController extends core.Object {
-      static new(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onPause = opts && 'onPause' in opts ? opts.onPause : null;
-        let onResume = opts && 'onResume' in opts ? opts.onResume : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        let sync = opts && 'sync' in opts ? opts.sync : false;
-        return dart.test(sync) ? new (_SyncStreamControllerOfT())(onListen, onPause, onResume, onCancel) : new (_AsyncStreamControllerOfT())(onListen, onPause, onResume, onCancel);
-      }
-      static broadcast(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        let sync = opts && 'sync' in opts ? opts.sync : false;
-        return dart.test(sync) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_AsyncBroadcastStreamControllerOfT())(onListen, onCancel);
-      }
-    }
-    dart.addTypeTests(StreamController);
-    StreamController[dart.implements] = () => [StreamSinkOfT()];
-    dart.setSignature(StreamController, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(async.StreamController$(T), [], {onListen: VoidTovoid(), onPause: VoidTovoid(), onResume: VoidTovoid(), onCancel: VoidTodynamic(), sync: core.bool}),
-        broadcast: dart.definiteFunctionType(async.StreamController$(T), [], {onListen: VoidTovoid(), onCancel: VoidTovoid(), sync: core.bool})
-      })
-    });
-    return StreamController;
-  });
-  async.StreamController = StreamController();
-  async.SynchronousStreamController$ = dart.generic(T => {
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    class SynchronousStreamController extends core.Object {}
-    dart.addTypeTests(SynchronousStreamController);
-    SynchronousStreamController[dart.implements] = () => [StreamControllerOfT()];
-    return SynchronousStreamController;
-  });
-  async.SynchronousStreamController = SynchronousStreamController();
-  async._StreamControllerLifecycle$ = dart.generic(T => {
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    class _StreamControllerLifecycle extends core.Object {
-      [_recordPause](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-      }
-      [_recordResume](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-      }
-      [_recordCancel](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-        return null;
-      }
-    }
-    dart.addTypeTests(_StreamControllerLifecycle);
-    dart.setSignature(_StreamControllerLifecycle, {
-      methods: () => ({
-        [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
-        [_recordResume]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
-        [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()])
-      })
-    });
-    return _StreamControllerLifecycle;
-  });
-  async._StreamControllerLifecycle = _StreamControllerLifecycle();
-  const _varData = Symbol('_varData');
-  const _isInitialState = Symbol('_isInitialState');
-  const _subscription = Symbol('_subscription');
-  const _pendingEvents = Symbol('_pendingEvents');
-  const _ensurePendingEvents = Symbol('_ensurePendingEvents');
-  const _badEventState = Symbol('_badEventState');
-  let const$9;
-  async._StreamController$ = dart.generic(T => {
-    let _ControllerStreamOfT = () => (_ControllerStreamOfT = dart.constFn(async._ControllerStream$(T)))();
-    let _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
-    let _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
-    let _StreamControllerAddStreamStateOfT = () => (_StreamControllerAddStreamStateOfT = dart.constFn(async._StreamControllerAddStreamState$(T)))();
-    let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
-    let _ControllerSubscriptionOfT = () => (_ControllerSubscriptionOfT = dart.constFn(async._ControllerSubscription$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _StreamController extends core.Object {
-      new(onListen, onPause, onResume, onCancel) {
-        this.onListen = onListen;
-        this.onPause = onPause;
-        this.onResume = onResume;
-        this.onCancel = onCancel;
-        this[_varData] = null;
-        this[_state] = async._StreamController._STATE_INITIAL;
-        this[_doneFuture] = null;
-      }
-      get stream() {
-        return new (_ControllerStreamOfT())(this);
-      }
-      get sink() {
-        return new (_StreamSinkWrapperOfT())(this);
-      }
-      get [_isCanceled]() {
-        return (dart.notNull(this[_state]) & async._StreamController._STATE_CANCELED) != 0;
-      }
-      get hasListener() {
-        return (dart.notNull(this[_state]) & async._StreamController._STATE_SUBSCRIBED) != 0;
-      }
-      get [_isInitialState]() {
-        return (dart.notNull(this[_state]) & async._StreamController._STATE_SUBSCRIPTION_MASK) == async._StreamController._STATE_INITIAL;
-      }
-      get isClosed() {
-        return (dart.notNull(this[_state]) & async._StreamController._STATE_CLOSED) != 0;
-      }
-      get isPaused() {
-        return dart.test(this.hasListener) ? this[_subscription][_isInputPaused] : !dart.test(this[_isCanceled]);
-      }
-      get [_isAddingStream]() {
-        return (dart.notNull(this[_state]) & async._StreamController._STATE_ADDSTREAM) != 0;
-      }
-      get [_mayAddEvent]() {
-        return dart.notNull(this[_state]) < async._StreamController._STATE_CLOSED;
-      }
-      get [_pendingEvents]() {
-        dart.assert(this[_isInitialState]);
-        if (!dart.test(this[_isAddingStream])) {
-          return _PendingEventsOfT().as(this[_varData]);
-        }
-        let state = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-        return _PendingEventsOfT().as(state.varData);
-      }
-      [_ensurePendingEvents]() {
-        dart.assert(this[_isInitialState]);
-        if (!dart.test(this[_isAddingStream])) {
-          if (this[_varData] == null) this[_varData] = new (_StreamImplEventsOfT())();
-          return _StreamImplEventsOfT().as(this[_varData]);
-        }
-        let state = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-        if (state.varData == null) state.varData = new (_StreamImplEventsOfT())();
-        return _StreamImplEventsOfT().as(state.varData);
-      }
-      get [_subscription]() {
-        dart.assert(this.hasListener);
-        if (dart.test(this[_isAddingStream])) {
-          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-          return _ControllerSubscriptionOfT().as(addState.varData);
-        }
-        return _ControllerSubscriptionOfT().as(this[_varData]);
-      }
-      [_badEventState]() {
-        if (dart.test(this.isClosed)) {
-          return new core.StateError("Cannot add event after closing");
-        }
-        dart.assert(this[_isAddingStream]);
-        return new core.StateError("Cannot add event while adding a stream");
-      }
-      addStream(source, opts) {
-        StreamOfT()._check(source);
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
-        if (dart.test(this[_isCanceled])) return new async._Future.immediate(null);
-        let addState = new (_StreamControllerAddStreamStateOfT())(this, this[_varData], source, cancelOnError);
-        this[_varData] = addState;
-        this[_state] = (dart.notNull(this[_state]) | async._StreamController._STATE_ADDSTREAM) >>> 0;
-        return addState.addStreamFuture;
-      }
-      get done() {
-        return this[_ensureDoneFuture]();
-      }
-      [_ensureDoneFuture]() {
-        if (this[_doneFuture] == null) {
-          this[_doneFuture] = dart.test(this[_isCanceled]) ? async.Future._nullFuture : new async._Future();
-        }
-        return this[_doneFuture];
-      }
-      add(value) {
-        T._check(value);
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
-        this[_add$](value);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
-        error = async._nonNullError(error);
-        let replacement = async.Zone.current.errorCallback(error, stackTrace);
-        if (replacement != null) {
-          error = async._nonNullError(replacement.error);
-          stackTrace = replacement.stackTrace;
-        }
-        this[_addError](error, stackTrace);
-      }
-      close() {
-        if (dart.test(this.isClosed)) {
-          return this[_ensureDoneFuture]();
-        }
-        if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
-        this[_closeUnchecked]();
-        return this[_ensureDoneFuture]();
-      }
-      [_closeUnchecked]() {
-        this[_state] = (dart.notNull(this[_state]) | async._StreamController._STATE_CLOSED) >>> 0;
-        if (dart.test(this.hasListener)) {
-          this[_sendDone]();
-        } else if (dart.test(this[_isInitialState])) {
-          this[_ensurePendingEvents]().add(const$9 || (const$9 = dart.const(new async._DelayedDone())));
-        }
-      }
-      [_add$](value) {
-        T._check(value);
-        if (dart.test(this.hasListener)) {
-          this[_sendData](value);
-        } else if (dart.test(this[_isInitialState])) {
-          this[_ensurePendingEvents]().add(new (_DelayedDataOfT())(value));
-        }
-      }
-      [_addError](error, stackTrace) {
-        if (dart.test(this.hasListener)) {
-          this[_sendError](error, stackTrace);
-        } else if (dart.test(this[_isInitialState])) {
-          this[_ensurePendingEvents]().add(new async._DelayedError(error, stackTrace));
-        }
-      }
-      [_close$]() {
-        dart.assert(this[_isAddingStream]);
-        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-        this[_varData] = addState.varData;
-        this[_state] = (dart.notNull(this[_state]) & ~async._StreamController._STATE_ADDSTREAM) >>> 0;
-        addState.complete();
-      }
-      [_subscribe](onData, onError, onDone, cancelOnError) {
-        if (!dart.test(this[_isInitialState])) {
-          dart.throw(new core.StateError("Stream has already been listened to."));
-        }
-        let subscription = new (_ControllerSubscriptionOfT())(this, onData, onError, onDone, cancelOnError);
-        let pendingEvents = this[_pendingEvents];
-        this[_state] = (dart.notNull(this[_state]) | async._StreamController._STATE_SUBSCRIBED) >>> 0;
-        if (dart.test(this[_isAddingStream])) {
-          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-          addState.varData = subscription;
-          addState.resume();
-        } else {
-          this[_varData] = subscription;
-        }
-        subscription[_setPendingEvents](pendingEvents);
-        subscription[_guardCallback](dart.fn(() => {
-          async._runGuarded(this.onListen);
-        }, VoidToNull()));
-        return subscription;
-      }
-      [_recordCancel](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-        let result = null;
-        if (dart.test(this[_isAddingStream])) {
-          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-          result = addState.cancel();
-        }
-        this[_varData] = null;
-        this[_state] = (dart.notNull(this[_state]) & ~(async._StreamController._STATE_SUBSCRIBED | async._StreamController._STATE_ADDSTREAM) | async._StreamController._STATE_CANCELED) >>> 0;
-        if (this.onCancel != null) {
-          if (result == null) {
-            try {
-              result = async.Future._check(this.onCancel());
-            } catch (e) {
-              let s = dart.stackTrace(e);
-              result = new async._Future();
-              result[_asyncCompleteError](e, s);
+              async._completeWithErrorCallback(result, e, s);
             }
 
           } else {
-            result = result.whenComplete(this.onCancel);
+            result[_complete](value);
           }
-        }
-        const complete = (function() {
-          if (this[_doneFuture] != null && dart.test(this[_doneFuture][_mayComplete])) {
-            this[_doneFuture][_asyncComplete](null);
-          }
-        }).bind(this);
-        dart.fn(complete, VoidTovoid$());
-        if (result != null) {
-          result = result.whenComplete(complete);
-        } else {
-          complete();
-        }
+        }, VoidToNull()), cancelOnError: true});
+      return result;
+    }
+    fold(S) {
+      return (initialValue, combine) => {
+        let result = new (async._Future$(S))();
+        let value = initialValue;
+        let subscription = null;
+        subscription = this.listen(dart.fn(element => {
+          async._runUserCode(dart.fn(() => combine(value, element), dart.definiteFunctionType(S, [])), dart.fn(newValue => {
+            value = newValue;
+          }, dart.definiteFunctionType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
+        }, TToNull()), {onError: dart.fn((e, st) => {
+            result[_completeError](e, core.StackTrace._check(st));
+          }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
+            result[_complete](value);
+          }, VoidToNull()), cancelOnError: true});
         return result;
-      }
-      [_recordPause](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-        if (dart.test(this[_isAddingStream])) {
-          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-          addState.pause();
+      };
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      let result = new (_FutureOfString())();
+      let buffer = new core.StringBuffer();
+      let subscription = null;
+      let first = true;
+      subscription = this.listen(dart.fn(element => {
+        if (!first) {
+          buffer.write(separator);
         }
-        async._runGuarded(this.onPause);
-      }
-      [_recordResume](subscription) {
-        StreamSubscriptionOfT()._check(subscription);
-        if (dart.test(this[_isAddingStream])) {
-          let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
-          addState.resume();
-        }
-        async._runGuarded(this.onResume);
-      }
-    }
-    dart.addTypeTests(_StreamController);
-    _StreamController[dart.implements] = () => [StreamControllerOfT(), _StreamControllerLifecycleOfT(), _EventSinkOfT(), _EventDispatchOfT()];
-    dart.setSignature(_StreamController, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamController$(T), [async.ControllerCallback, async.ControllerCallback, async.ControllerCallback, async.ControllerCancelCallback])}),
-      fields: () => ({
-        [_varData]: dart.dynamic,
-        [_state]: core.int,
-        [_doneFuture]: async._Future,
-        onListen: async.ControllerCallback,
-        onPause: async.ControllerCallback,
-        onResume: async.ControllerCallback,
-        onCancel: async.ControllerCancelCallback
-      }),
-      getters: () => ({
-        stream: dart.definiteFunctionType(async.Stream$(T), []),
-        sink: dart.definiteFunctionType(async.StreamSink$(T), []),
-        [_isCanceled]: dart.definiteFunctionType(core.bool, []),
-        hasListener: dart.definiteFunctionType(core.bool, []),
-        [_isInitialState]: dart.definiteFunctionType(core.bool, []),
-        isClosed: dart.definiteFunctionType(core.bool, []),
-        isPaused: dart.definiteFunctionType(core.bool, []),
-        [_isAddingStream]: dart.definiteFunctionType(core.bool, []),
-        [_mayAddEvent]: dart.definiteFunctionType(core.bool, []),
-        [_pendingEvents]: dart.definiteFunctionType(async._PendingEvents$(T), []),
-        [_subscription]: dart.definiteFunctionType(async._ControllerSubscription$(T), []),
-        done: dart.definiteFunctionType(async.Future, [])
-      }),
-      methods: () => ({
-        [_ensurePendingEvents]: dart.definiteFunctionType(async._StreamImplEvents$(T), []),
-        [_badEventState]: dart.definiteFunctionType(core.Error, []),
-        addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool}),
-        [_ensureDoneFuture]: dart.definiteFunctionType(async.Future, []),
-        add: dart.definiteFunctionType(dart.void, [T]),
-        addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-        close: dart.definiteFunctionType(async.Future, []),
-        [_closeUnchecked]: dart.definiteFunctionType(dart.void, []),
-        [_add$]: dart.definiteFunctionType(dart.void, [T]),
-        [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_close$]: dart.definiteFunctionType(dart.void, []),
-        [_subscribe]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
-        [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()]),
-        [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
-        [_recordResume]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()])
-      }),
-      sfields: () => ({
-        _STATE_INITIAL: core.int,
-        _STATE_SUBSCRIBED: core.int,
-        _STATE_CANCELED: core.int,
-        _STATE_SUBSCRIPTION_MASK: core.int,
-        _STATE_CLOSED: core.int,
-        _STATE_ADDSTREAM: core.int
-      })
-    });
-    return _StreamController;
-  });
-  async._StreamController = _StreamController();
-  async._StreamController._STATE_INITIAL = 0;
-  async._StreamController._STATE_SUBSCRIBED = 1;
-  async._StreamController._STATE_CANCELED = 2;
-  async._StreamController._STATE_SUBSCRIPTION_MASK = 3;
-  async._StreamController._STATE_CLOSED = 4;
-  async._StreamController._STATE_ADDSTREAM = 8;
-  async._SyncStreamControllerDispatch$ = dart.generic(T => {
-    let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
-    class _SyncStreamControllerDispatch extends core.Object {
-      [_sendData](data) {
-        T._check(data);
-        this[_subscription][_add$](data);
-      }
-      [_sendError](error, stackTrace) {
-        this[_subscription][_addError](error, stackTrace);
-      }
-      [_sendDone]() {
-        this[_subscription][_close$]();
-      }
-    }
-    dart.addTypeTests(_SyncStreamControllerDispatch);
-    _SyncStreamControllerDispatch[dart.implements] = () => [_StreamControllerOfT(), SynchronousStreamControllerOfT()];
-    dart.setSignature(_SyncStreamControllerDispatch, {
-      methods: () => ({
-        [_sendData]: dart.definiteFunctionType(dart.void, [T]),
-        [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_sendDone]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _SyncStreamControllerDispatch;
-  });
-  async._SyncStreamControllerDispatch = _SyncStreamControllerDispatch();
-  let const$10;
-  async._AsyncStreamControllerDispatch$ = dart.generic(T => {
-    let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
-    let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    class _AsyncStreamControllerDispatch extends core.Object {
-      [_sendData](data) {
-        T._check(data);
-        this[_subscription][_addPending](new (_DelayedDataOfT())(data));
-      }
-      [_sendError](error, stackTrace) {
-        this[_subscription][_addPending](new async._DelayedError(error, stackTrace));
-      }
-      [_sendDone]() {
-        this[_subscription][_addPending](const$10 || (const$10 = dart.const(new async._DelayedDone())));
-      }
-    }
-    dart.addTypeTests(_AsyncStreamControllerDispatch);
-    _AsyncStreamControllerDispatch[dart.implements] = () => [_StreamControllerOfT()];
-    dart.setSignature(_AsyncStreamControllerDispatch, {
-      methods: () => ({
-        [_sendData]: dart.definiteFunctionType(dart.void, [T]),
-        [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-        [_sendDone]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _AsyncStreamControllerDispatch;
-  });
-  async._AsyncStreamControllerDispatch = _AsyncStreamControllerDispatch();
-  async._AsyncStreamController$ = dart.generic(T => {
-    class _AsyncStreamController extends dart.mixin(async._StreamController$(T), async._AsyncStreamControllerDispatch$(T)) {
-      new(onListen, onPause, onResume, onCancel) {
-        super.new(onListen, onPause, onResume, onCancel);
-      }
-    }
-    return _AsyncStreamController;
-  });
-  async._AsyncStreamController = _AsyncStreamController();
-  async._SyncStreamController$ = dart.generic(T => {
-    class _SyncStreamController extends dart.mixin(async._StreamController$(T), async._SyncStreamControllerDispatch$(T)) {
-      new(onListen, onPause, onResume, onCancel) {
-        super.new(onListen, onPause, onResume, onCancel);
-      }
-    }
-    return _SyncStreamController;
-  });
-  async._SyncStreamController = _SyncStreamController();
-  async._NotificationHandler = dart.typedef('_NotificationHandler', () => dart.functionType(dart.dynamic, []));
-  async._runGuarded = function(notificationHandler) {
-    if (notificationHandler == null) return null;
-    try {
-      let result = notificationHandler();
-      if (async.Future.is(result)) return result;
-      return null;
-    } catch (e) {
-      let s = dart.stackTrace(e);
-      async.Zone.current.handleUncaughtError(dart.dynamic)(e, s);
-    }
-
-  };
-  dart.fn(async._runGuarded, _NotificationHandlerToFuture());
-  const _target = Symbol('_target');
-  async._StreamSinkWrapper$ = dart.generic(T => {
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let StreamSinkOfT = () => (StreamSinkOfT = dart.constFn(async.StreamSink$(T)))();
-    class _StreamSinkWrapper extends core.Object {
-      new(target) {
-        this[_target] = target;
-      }
-      add(data) {
-        T._check(data);
-        this[_target].add(data);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_target].addError(error, stackTrace);
-      }
-      close() {
-        return this[_target].close();
-      }
-      addStream(source, opts) {
-        StreamOfT()._check(source);
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
-        return this[_target].addStream(source, {cancelOnError: cancelOnError});
-      }
-      get done() {
-        return this[_target].done;
-      }
-    }
-    dart.addTypeTests(_StreamSinkWrapper);
-    _StreamSinkWrapper[dart.implements] = () => [StreamSinkOfT()];
-    dart.setSignature(_StreamSinkWrapper, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamSinkWrapper$(T), [async.StreamController])}),
-      fields: () => ({[_target]: async.StreamController}),
-      getters: () => ({done: dart.definiteFunctionType(async.Future, [])}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [T]),
-        addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-        close: dart.definiteFunctionType(async.Future, []),
-        addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool})
-      })
-    });
-    return _StreamSinkWrapper;
-  });
-  async._StreamSinkWrapper = _StreamSinkWrapper();
-  async._AddStreamState$ = dart.generic(T => {
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    class _AddStreamState extends core.Object {
-      new(controller, source, cancelOnError) {
-        this.addStreamFuture = new async._Future();
-        this.addSubscription = source.listen(dart.bind(controller, _add$), {onError: core.Function._check(dart.test(cancelOnError) ? async._AddStreamState.makeErrorHandler(controller) : dart.bind(controller, _addError)), onDone: dart.bind(controller, _close$), cancelOnError: cancelOnError});
-      }
-      static makeErrorHandler(controller) {
-        return dart.fn((e, s) => {
-          controller[_addError](e, s);
-          controller[_close$]();
-        }, dynamicAndStackTraceToNull());
-      }
-      pause() {
-        this.addSubscription.pause();
-      }
-      resume() {
-        this.addSubscription.resume();
-      }
-      cancel() {
-        let cancel = this.addSubscription.cancel();
-        if (cancel == null) {
-          this.addStreamFuture[_asyncComplete](null);
-          return null;
-        }
-        return cancel.whenComplete(dart.fn(() => {
-          this.addStreamFuture[_asyncComplete](null);
-        }, VoidToNull()));
-      }
-      complete() {
-        this.addStreamFuture[_asyncComplete](null);
-      }
-    }
-    dart.addTypeTests(_AddStreamState);
-    dart.setSignature(_AddStreamState, {
-      constructors: () => ({new: dart.definiteFunctionType(async._AddStreamState$(T), [_EventSinkOfT(), async.Stream, core.bool])}),
-      fields: () => ({
-        addStreamFuture: async._Future,
-        addSubscription: async.StreamSubscription
-      }),
-      methods: () => ({
-        pause: dart.definiteFunctionType(dart.void, []),
-        resume: dart.definiteFunctionType(dart.void, []),
-        cancel: dart.definiteFunctionType(async.Future, []),
-        complete: dart.definiteFunctionType(dart.void, [])
-      }),
-      statics: () => ({makeErrorHandler: dart.definiteFunctionType(dart.dynamic, [async._EventSink])}),
-      names: ['makeErrorHandler']
-    });
-    return _AddStreamState;
-  });
-  async._AddStreamState = _AddStreamState();
-  async._StreamControllerAddStreamState$ = dart.generic(T => {
-    let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    class _StreamControllerAddStreamState extends async._AddStreamState$(T) {
-      new(controller, varData, source, cancelOnError) {
-        this.varData = varData;
-        super.new(controller, source, cancelOnError);
-        if (dart.test(controller.isPaused)) {
-          this.addSubscription.pause();
-        }
-      }
-    }
-    dart.setSignature(_StreamControllerAddStreamState, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamControllerAddStreamState$(T), [_StreamControllerOfT(), dart.dynamic, async.Stream, core.bool])}),
-      fields: () => ({varData: dart.dynamic})
-    });
-    return _StreamControllerAddStreamState;
-  });
-  async._StreamControllerAddStreamState = _StreamControllerAddStreamState();
-  async._EventSink$ = dart.generic(T => {
-    class _EventSink extends core.Object {}
-    dart.addTypeTests(_EventSink);
-    return _EventSink;
-  });
-  async._EventSink = _EventSink();
-  async._EventDispatch$ = dart.generic(T => {
-    class _EventDispatch extends core.Object {}
-    dart.addTypeTests(_EventDispatch);
-    return _EventDispatch;
-  });
-  async._EventDispatch = _EventDispatch();
-  async._EventGenerator$ = dart.generic(T => {
-    const _EventGenerator = dart.typedef('_EventGenerator', () => dart.functionType(async._PendingEvents$(T), []));
-    return _EventGenerator;
-  });
-  async._EventGenerator = _EventGenerator();
-  const _isUsed = Symbol('_isUsed');
-  async._GeneratedStreamImpl$ = dart.generic(T => {
-    let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let _EventGeneratorOfT = () => (_EventGeneratorOfT = dart.constFn(async._EventGenerator$(T)))();
-    class _GeneratedStreamImpl extends async._StreamImpl$(T) {
-      new(pending) {
-        this[_pending] = pending;
-        this[_isUsed] = false;
-        super.new();
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        if (dart.test(this[_isUsed])) dart.throw(new core.StateError("Stream has already been listened to."));
-        this[_isUsed] = true;
-        let _ = new (_BufferingStreamSubscriptionOfT())(onData, onError, onDone, cancelOnError);
-        _[_setPendingEvents](this[_pending]());
-        return _;
-      }
-    }
-    dart.setSignature(_GeneratedStreamImpl, {
-      constructors: () => ({new: dart.definiteFunctionType(async._GeneratedStreamImpl$(T), [_EventGeneratorOfT()])}),
-      fields: () => ({
-        [_pending]: _EventGeneratorOfT(),
-        [_isUsed]: core.bool
-      })
-    });
-    return _GeneratedStreamImpl;
-  });
-  async._GeneratedStreamImpl = _GeneratedStreamImpl();
-  const _iterator$ = Symbol('_iterator');
-  const _eventScheduled = Symbol('_eventScheduled');
-  async._PendingEvents$ = dart.generic(T => {
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    class _PendingEvents extends core.Object {
-      new() {
-        this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
-      }
-      get isScheduled() {
-        return this[_state] == async._PendingEvents._STATE_SCHEDULED;
-      }
-      get [_eventScheduled]() {
-        return dart.notNull(this[_state]) >= async._PendingEvents._STATE_SCHEDULED;
-      }
-      schedule(dispatch) {
-        _EventDispatchOfT()._check(dispatch);
-        if (dart.test(this.isScheduled)) return;
-        dart.assert(!dart.test(this.isEmpty));
-        if (dart.test(this[_eventScheduled])) {
-          dart.assert(this[_state] == async._PendingEvents._STATE_CANCELED);
-          this[_state] = async._PendingEvents._STATE_SCHEDULED;
-          return;
-        }
-        async.scheduleMicrotask(dart.fn(() => {
-          let oldState = this[_state];
-          this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
-          if (oldState == async._PendingEvents._STATE_CANCELED) return;
-          this.handleNext(dispatch);
-        }, VoidToNull()));
-        this[_state] = async._PendingEvents._STATE_SCHEDULED;
-      }
-      cancelSchedule() {
-        if (dart.test(this.isScheduled)) this[_state] = async._PendingEvents._STATE_CANCELED;
-      }
-    }
-    dart.addTypeTests(_PendingEvents);
-    dart.setSignature(_PendingEvents, {
-      fields: () => ({[_state]: core.int}),
-      getters: () => ({
-        isScheduled: dart.definiteFunctionType(core.bool, []),
-        [_eventScheduled]: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        schedule: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
-        cancelSchedule: dart.definiteFunctionType(dart.void, [])
-      }),
-      sfields: () => ({
-        _STATE_UNSCHEDULED: core.int,
-        _STATE_SCHEDULED: core.int,
-        _STATE_CANCELED: core.int
-      })
-    });
-    return _PendingEvents;
-  });
-  async._PendingEvents = _PendingEvents();
-  async._PendingEvents._STATE_UNSCHEDULED = 0;
-  async._PendingEvents._STATE_SCHEDULED = 1;
-  async._PendingEvents._STATE_CANCELED = 3;
-  async._IterablePendingEvents$ = dart.generic(T => {
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
-    let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
-    class _IterablePendingEvents extends async._PendingEvents$(T) {
-      new(data) {
-        this[_iterator$] = data[dartx.iterator];
-        super.new();
-      }
-      get isEmpty() {
-        return this[_iterator$] == null;
-      }
-      handleNext(dispatch) {
-        _EventDispatchOfT()._check(dispatch);
-        if (this[_iterator$] == null) {
-          dart.throw(new core.StateError("No events pending."));
-        }
-        let isDone = null;
+        first = false;
         try {
-          isDone = !dart.test(this[_iterator$].moveNext());
+          buffer.write(element);
         } catch (e) {
           let s = dart.stackTrace(e);
-          this[_iterator$] = null;
-          dispatch[_sendError](e, s);
-          return;
+          async._cancelAndErrorWithReplacement(subscription, result, e, s);
         }
 
-        if (!dart.test(isDone)) {
-          dispatch[_sendData](this[_iterator$].current);
-        } else {
-          this[_iterator$] = null;
-          dispatch[_sendDone]();
-        }
-      }
-      clear() {
-        if (dart.test(this.isScheduled)) this.cancelSchedule();
-        this[_iterator$] = null;
-      }
+      }, TToNull()), {onError: dart.fn(e => {
+          result[_completeError](e);
+        }, dynamicToNull$()), onDone: dart.fn(() => {
+          result[_complete](buffer.toString());
+        }, VoidToNull()), cancelOnError: true});
+      return result;
     }
-    dart.setSignature(_IterablePendingEvents, {
-      constructors: () => ({new: dart.definiteFunctionType(async._IterablePendingEvents$(T), [IterableOfT()])}),
-      fields: () => ({[_iterator$]: IteratorOfT()}),
-      getters: () => ({isEmpty: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        handleNext: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
-        clear: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _IterablePendingEvents;
-  });
-  async._IterablePendingEvents = _IterablePendingEvents();
-  async._DataHandler$ = dart.generic(T => {
-    const _DataHandler = dart.typedef('_DataHandler', () => dart.functionType(dart.void, [T]));
-    return _DataHandler;
-  });
-  async._DataHandler = _DataHandler();
-  async._DoneHandler = dart.typedef('_DoneHandler', () => dart.functionType(dart.void, []));
-  async._nullDataHandler = function(value) {
-  };
-  dart.fn(async._nullDataHandler, dynamicTovoid$());
-  async._nullErrorHandler = function(error, stackTrace) {
-    if (stackTrace === void 0) stackTrace = null;
-    async.Zone.current.handleUncaughtError(dart.dynamic)(error, stackTrace);
-  };
-  dart.lazyFn(async._nullErrorHandler, () => dynamic__Tovoid());
-  async._nullDoneHandler = function() {
-  };
-  dart.fn(async._nullDoneHandler, VoidTovoid$());
-  async._DelayedEvent$ = dart.generic(T => {
-    class _DelayedEvent extends core.Object {
-      new() {
-        this.next = null;
-      }
-    }
-    dart.addTypeTests(_DelayedEvent);
-    dart.setSignature(_DelayedEvent, {
-      fields: () => ({next: async._DelayedEvent})
-    });
-    return _DelayedEvent;
-  });
-  async._DelayedEvent = _DelayedEvent();
-  async._DelayedData$ = dart.generic(T => {
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    class _DelayedData extends async._DelayedEvent$(T) {
-      new(value) {
-        this.value = value;
-        super.new();
-      }
-      perform(dispatch) {
-        _EventDispatchOfT()._check(dispatch);
-        dispatch[_sendData](this.value);
-      }
-    }
-    dart.setSignature(_DelayedData, {
-      constructors: () => ({new: dart.definiteFunctionType(async._DelayedData$(T), [T])}),
-      fields: () => ({value: T}),
-      methods: () => ({perform: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()])})
-    });
-    return _DelayedData;
-  });
-  async._DelayedData = _DelayedData();
-  async._DelayedError = class _DelayedError extends async._DelayedEvent {
-    new(error, stackTrace) {
-      this.error = error;
-      this.stackTrace = stackTrace;
-      super.new();
-    }
-    perform(dispatch) {
-      dispatch[_sendError](this.error, this.stackTrace);
-    }
-  };
-  dart.addSimpleTypeTests(async._DelayedError);
-  dart.setSignature(async._DelayedError, {
-    constructors: () => ({new: dart.definiteFunctionType(async._DelayedError, [dart.dynamic, core.StackTrace])}),
-    fields: () => ({
-      error: dart.dynamic,
-      stackTrace: core.StackTrace
-    }),
-    methods: () => ({perform: dart.definiteFunctionType(dart.void, [async._EventDispatch])})
-  });
-  async._DelayedDone = class _DelayedDone extends core.Object {
-    new() {
-    }
-    perform(dispatch) {
-      dispatch[_sendDone]();
-    }
-    get next() {
-      return null;
-    }
-    set next(_) {
-      dart.throw(new core.StateError("No events after a done."));
-    }
-  };
-  async._DelayedDone[dart.implements] = () => [async._DelayedEvent];
-  dart.setSignature(async._DelayedDone, {
-    constructors: () => ({new: dart.definiteFunctionType(async._DelayedDone, [])}),
-    getters: () => ({next: dart.definiteFunctionType(async._DelayedEvent, [])}),
-    setters: () => ({next: dart.definiteFunctionType(dart.void, [async._DelayedEvent])}),
-    methods: () => ({perform: dart.definiteFunctionType(dart.void, [async._EventDispatch])})
-  });
-  async._StreamImplEvents$ = dart.generic(T => {
-    let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
-    class _StreamImplEvents extends async._PendingEvents$(T) {
-      new() {
-        this.firstPendingEvent = null;
-        this.lastPendingEvent = null;
-        super.new();
-      }
-      get isEmpty() {
-        return this.lastPendingEvent == null;
-      }
-      add(event) {
-        if (this.lastPendingEvent == null) {
-          this.firstPendingEvent = this.lastPendingEvent = event;
-        } else {
-          this.lastPendingEvent = this.lastPendingEvent.next = event;
-        }
-      }
-      handleNext(dispatch) {
-        _EventDispatchOfT()._check(dispatch);
-        dart.assert(!dart.test(this.isScheduled));
-        let event = this.firstPendingEvent;
-        this.firstPendingEvent = event.next;
-        if (this.firstPendingEvent == null) {
-          this.lastPendingEvent = null;
-        }
-        event.perform(dispatch);
-      }
-      clear() {
-        if (dart.test(this.isScheduled)) this.cancelSchedule();
-        this.firstPendingEvent = this.lastPendingEvent = null;
-      }
-    }
-    dart.setSignature(_StreamImplEvents, {
-      fields: () => ({
-        firstPendingEvent: async._DelayedEvent,
-        lastPendingEvent: async._DelayedEvent
-      }),
-      getters: () => ({isEmpty: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [async._DelayedEvent]),
-        handleNext: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
-        clear: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _StreamImplEvents;
-  });
-  async._StreamImplEvents = _StreamImplEvents();
-  const _unlink = Symbol('_unlink');
-  const _insertBefore = Symbol('_insertBefore');
-  async._BroadcastLinkedList = class _BroadcastLinkedList extends core.Object {
-    new() {
-      this[_next$] = null;
-      this[_previous$] = null;
-    }
-    [_unlink]() {
-      this[_previous$][_next$] = this[_next$];
-      this[_next$][_previous$] = this[_previous$];
-      this[_next$] = this[_previous$] = this;
-    }
-    [_insertBefore](newNext) {
-      let newPrevious = newNext[_previous$];
-      newPrevious[_next$] = this;
-      newNext[_previous$] = this[_previous$];
-      this[_previous$][_next$] = newNext;
-      this[_previous$] = newPrevious;
-    }
-  };
-  dart.setSignature(async._BroadcastLinkedList, {
-    fields: () => ({
-      [_next$]: async._BroadcastLinkedList,
-      [_previous$]: async._BroadcastLinkedList
-    }),
-    methods: () => ({
-      [_unlink]: dart.definiteFunctionType(dart.void, []),
-      [_insertBefore]: dart.definiteFunctionType(dart.void, [async._BroadcastLinkedList])
-    })
-  });
-  async._BroadcastCallback$ = dart.generic(T => {
-    const _BroadcastCallback = dart.typedef('_BroadcastCallback', () => dart.functionType(dart.void, [async.StreamSubscription$(T)]));
-    return _BroadcastCallback;
-  });
-  async._BroadcastCallback = _BroadcastCallback();
-  const _schedule = Symbol('_schedule');
-  const _isSent = Symbol('_isSent');
-  const _isScheduled = Symbol('_isScheduled');
-  async._DoneStreamSubscription$ = dart.generic(T => {
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _DoneStreamSubscription extends core.Object {
-      new(onDone) {
-        this[_onDone] = onDone;
-        this[_zone] = async.Zone.current;
-        this[_state] = 0;
-        this[_schedule]();
-      }
-      get [_isSent]() {
-        return (dart.notNull(this[_state]) & async._DoneStreamSubscription._DONE_SENT) != 0;
-      }
-      get [_isScheduled]() {
-        return (dart.notNull(this[_state]) & async._DoneStreamSubscription._SCHEDULED) != 0;
-      }
-      get isPaused() {
-        return dart.notNull(this[_state]) >= async._DoneStreamSubscription._PAUSED;
-      }
-      [_schedule]() {
-        if (dart.test(this[_isScheduled])) return;
-        this[_zone].scheduleMicrotask(dart.bind(this, _sendDone));
-        this[_state] = (dart.notNull(this[_state]) | async._DoneStreamSubscription._SCHEDULED) >>> 0;
-      }
-      onData(handleData) {}
-      onError(handleError) {}
-      onDone(handleDone) {
-        this[_onDone] = handleDone;
-      }
-      pause(resumeSignal) {
-        if (resumeSignal === void 0) resumeSignal = null;
-        this[_state] = dart.notNull(this[_state]) + async._DoneStreamSubscription._PAUSED;
-        if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
-      }
-      resume() {
-        if (dart.test(this.isPaused)) {
-          this[_state] = dart.notNull(this[_state]) - async._DoneStreamSubscription._PAUSED;
-          if (!dart.test(this.isPaused) && !dart.test(this[_isSent])) {
-            this[_schedule]();
+    contains(needle) {
+      let future = new (_FutureOfbool())();
+      let subscription = null;
+      subscription = this.listen(dart.fn(element => {
+        async._runUserCode(dart.fn(() => dart.equals(element, needle), VoidTobool()), dart.fn(isMatch => {
+          if (dart.test(isMatch)) {
+            async._cancelAndValue(subscription, future, true);
           }
-        }
-      }
-      cancel() {
-        return null;
-      }
-      asFuture(E) {
-        return futureValue => {
-          if (futureValue === void 0) futureValue = null;
-          let result = new (async._Future$(E))();
-          this[_onDone] = dart.fn(() => {
-            result[_completeWithValue](null);
-          }, VoidToNull());
-          return result;
-        };
-      }
-      [_sendDone]() {
-        this[_state] = (dart.notNull(this[_state]) & ~async._DoneStreamSubscription._SCHEDULED) >>> 0;
-        if (dart.test(this.isPaused)) return;
-        this[_state] = (dart.notNull(this[_state]) | async._DoneStreamSubscription._DONE_SENT) >>> 0;
-        if (this[_onDone] != null) this[_zone].runGuarded(dart.void)(this[_onDone]);
-      }
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](false);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
     }
-    dart.addTypeTests(_DoneStreamSubscription);
-    _DoneStreamSubscription[dart.implements] = () => [StreamSubscriptionOfT()];
-    dart.setSignature(_DoneStreamSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._DoneStreamSubscription$(T), [async._DoneHandler])}),
-      fields: () => ({
-        [_zone]: async.Zone,
-        [_state]: core.int,
-        [_onDone]: async._DoneHandler
-      }),
-      getters: () => ({
-        [_isSent]: dart.definiteFunctionType(core.bool, []),
-        [_isScheduled]: dart.definiteFunctionType(core.bool, []),
-        isPaused: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        [_schedule]: dart.definiteFunctionType(dart.void, []),
-        onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
-        onError: dart.definiteFunctionType(dart.void, [core.Function]),
-        onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
-        resume: dart.definiteFunctionType(dart.void, []),
-        cancel: dart.definiteFunctionType(async.Future, []),
-        asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]]),
-        [_sendDone]: dart.definiteFunctionType(dart.void, [])
-      }),
-      sfields: () => ({
-        _DONE_SENT: core.int,
-        _SCHEDULED: core.int,
-        _PAUSED: core.int
-      })
-    });
-    return _DoneStreamSubscription;
-  });
-  async._DoneStreamSubscription = _DoneStreamSubscription();
-  async._DoneStreamSubscription._DONE_SENT = 1;
-  async._DoneStreamSubscription._SCHEDULED = 2;
-  async._DoneStreamSubscription._PAUSED = 4;
-  const _source$ = Symbol('_source');
-  const _onListenHandler = Symbol('_onListenHandler');
-  const _onCancelHandler = Symbol('_onCancelHandler');
-  const _cancelSubscription = Symbol('_cancelSubscription');
-  const _pauseSubscription = Symbol('_pauseSubscription');
-  const _resumeSubscription = Symbol('_resumeSubscription');
-  const _isSubscriptionPaused = Symbol('_isSubscriptionPaused');
-  async._AsBroadcastStream$ = dart.generic(T => {
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let _AsBroadcastStreamControllerOfT = () => (_AsBroadcastStreamControllerOfT = dart.constFn(async._AsBroadcastStreamController$(T)))();
-    let _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
-    let _BroadcastSubscriptionWrapperOfT = () => (_BroadcastSubscriptionWrapperOfT = dart.constFn(async._BroadcastSubscriptionWrapper$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let _BroadcastCallbackOfT = () => (_BroadcastCallbackOfT = dart.constFn(async._BroadcastCallback$(T)))();
-    class _AsBroadcastStream extends async.Stream$(T) {
-      new(source, onListenHandler, onCancelHandler) {
-        this[_source$] = source;
-        this[_onListenHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfT())(onListenHandler);
-        this[_onCancelHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfT())(onCancelHandler);
-        this[_zone] = async.Zone.current;
-        this[_controller$] = null;
-        this[_subscription] = null;
-        super.new();
-        this[_controller$] = new (_AsBroadcastStreamControllerOfT())(dart.bind(this, _onListen), dart.bind(this, _onCancel));
-      }
-      get isBroadcast() {
-        return true;
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        if (this[_controller$] == null || dart.test(this[_controller$].isClosed)) {
-          return new (_DoneStreamSubscriptionOfT())(onDone);
-        }
-        if (this[_subscription] == null) {
-          this[_subscription] = this[_source$].listen(dart.bind(this[_controller$], 'add'), {onError: dart.bind(this[_controller$], 'addError'), onDone: dart.bind(this[_controller$], 'close')});
-        }
-        cancelOnError = core.identical(true, cancelOnError);
-        return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
-      }
-      [_onCancel]() {
-        let shutdown = this[_controller$] == null || dart.test(this[_controller$].isClosed);
-        if (this[_onCancelHandler] != null) {
-          this[_zone].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT())(this[_onCancelHandler], new (_BroadcastSubscriptionWrapperOfT())(this));
-        }
-        if (shutdown) {
-          if (this[_subscription] != null) {
-            this[_subscription].cancel();
-            this[_subscription] = null;
+    forEach(action) {
+      let future = new async._Future();
+      let subscription = null;
+      subscription = this.listen(dart.fn(element => {
+        async._runUserCode(dart.fn(() => action(element), VoidTovoid$()), dart.fn(_ => {
+        }, dynamicToNull$()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](null);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    every(test) {
+      let future = new (_FutureOfbool())();
+      let subscription = null;
+      subscription = this.listen(dart.fn(element => {
+        async._runUserCode(dart.fn(() => test(element), VoidTobool()), dart.fn(isMatch => {
+          if (!dart.test(isMatch)) {
+            async._cancelAndValue(subscription, future, false);
           }
-        }
-      }
-      [_onListen]() {
-        if (this[_onListenHandler] != null) {
-          this[_zone].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT())(this[_onListenHandler], new (_BroadcastSubscriptionWrapperOfT())(this));
-        }
-      }
-      [_cancelSubscription]() {
-        if (this[_subscription] == null) return;
-        let subscription = this[_subscription];
-        this[_subscription] = null;
-        this[_controller$] = null;
-        subscription.cancel();
-      }
-      [_pauseSubscription](resumeSignal) {
-        if (this[_subscription] == null) return;
-        this[_subscription].pause(resumeSignal);
-      }
-      [_resumeSubscription]() {
-        if (this[_subscription] == null) return;
-        this[_subscription].resume();
-      }
-      get [_isSubscriptionPaused]() {
-        if (this[_subscription] == null) return false;
-        return this[_subscription].isPaused;
-      }
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](true);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
     }
-    dart.setSignature(_AsBroadcastStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._AsBroadcastStream$(T), [StreamOfT(), _BroadcastCallbackOfT(), _BroadcastCallbackOfT()])}),
-      fields: () => ({
-        [_source$]: StreamOfT(),
-        [_onListenHandler]: _BroadcastCallbackOfT(),
-        [_onCancelHandler]: _BroadcastCallbackOfT(),
-        [_zone]: async.Zone,
-        [_controller$]: _AsBroadcastStreamControllerOfT(),
-        [_subscription]: StreamSubscriptionOfT()
-      }),
-      getters: () => ({[_isSubscriptionPaused]: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-        [_onCancel]: dart.definiteFunctionType(dart.void, []),
-        [_onListen]: dart.definiteFunctionType(dart.void, []),
-        [_cancelSubscription]: dart.definiteFunctionType(dart.void, []),
-        [_pauseSubscription]: dart.definiteFunctionType(dart.void, [async.Future]),
-        [_resumeSubscription]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _AsBroadcastStream;
-  });
-  async._AsBroadcastStream = _AsBroadcastStream();
-  async._BroadcastSubscriptionWrapper$ = dart.generic(T => {
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _BroadcastSubscriptionWrapper extends core.Object {
-      new(stream) {
-        this[_stream] = stream;
-      }
-      onData(handleData) {
-        dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
-      }
-      onError(handleError) {
-        dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
-      }
-      onDone(handleDone) {
-        dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
-      }
-      pause(resumeSignal) {
-        if (resumeSignal === void 0) resumeSignal = null;
-        this[_stream][_pauseSubscription](resumeSignal);
-      }
-      resume() {
-        this[_stream][_resumeSubscription]();
-      }
-      cancel() {
-        this[_stream][_cancelSubscription]();
-        return null;
-      }
-      get isPaused() {
-        return this[_stream][_isSubscriptionPaused];
-      }
-      asFuture(E) {
-        return futureValue => {
-          if (futureValue === void 0) futureValue = null;
-          dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
-        };
-      }
-    }
-    dart.addTypeTests(_BroadcastSubscriptionWrapper);
-    _BroadcastSubscriptionWrapper[dart.implements] = () => [StreamSubscriptionOfT()];
-    dart.setSignature(_BroadcastSubscriptionWrapper, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BroadcastSubscriptionWrapper$(T), [async._AsBroadcastStream])}),
-      fields: () => ({[_stream]: async._AsBroadcastStream}),
-      getters: () => ({isPaused: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
-        onError: dart.definiteFunctionType(dart.void, [core.Function]),
-        onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
-        resume: dart.definiteFunctionType(dart.void, []),
-        cancel: dart.definiteFunctionType(async.Future, []),
-        asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]])
-      })
-    });
-    return _BroadcastSubscriptionWrapper;
-  });
-  async._BroadcastSubscriptionWrapper = _BroadcastSubscriptionWrapper();
-  const _current$1 = Symbol('_current');
-  const _futureOrPrefetch = Symbol('_futureOrPrefetch');
-  const _clear = Symbol('_clear');
-  async._StreamIteratorImpl$ = dart.generic(T => {
-    let StreamIteratorOfT = () => (StreamIteratorOfT = dart.constFn(async.StreamIterator$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _StreamIteratorImpl extends core.Object {
-      new(stream) {
-        this[_subscription] = null;
-        this[_current$1] = null;
-        this[_futureOrPrefetch] = null;
-        this[_state] = async._StreamIteratorImpl._STATE_FOUND;
-        this[_subscription] = stream.listen(dart.bind(this, _onData), {onError: dart.bind(this, _onError), onDone: dart.bind(this, _onDone), cancelOnError: true});
-      }
-      get current() {
-        return this[_current$1];
-      }
-      moveNext() {
-        if (this[_state] == async._StreamIteratorImpl._STATE_DONE) {
-          return new (_FutureOfbool()).immediate(false);
-        }
-        if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
-          dart.throw(new core.StateError("Already waiting for next."));
-        }
-        if (this[_state] == async._StreamIteratorImpl._STATE_FOUND) {
-          this[_state] = async._StreamIteratorImpl._STATE_MOVING;
-          this[_current$1] = null;
-          let result = new (_FutureOfbool())();
-          this[_futureOrPrefetch] = result;
-          return result;
-        } else {
-          dart.assert(dart.notNull(this[_state]) >= async._StreamIteratorImpl._STATE_EXTRA_DATA);
-          switch (this[_state]) {
-            case async._StreamIteratorImpl._STATE_EXTRA_DATA:
-            {
-              this[_state] = async._StreamIteratorImpl._STATE_FOUND;
-              this[_current$1] = T.as(this[_futureOrPrefetch]);
-              this[_futureOrPrefetch] = null;
-              this[_subscription].resume();
-              return new (_FutureOfbool()).immediate(true);
-            }
-            case async._StreamIteratorImpl._STATE_EXTRA_ERROR:
-            {
-              let prefetch = async.AsyncError._check(this[_futureOrPrefetch]);
-              this[_clear]();
-              return new (_FutureOfbool()).immediateError(prefetch.error, prefetch.stackTrace);
-            }
-            case async._StreamIteratorImpl._STATE_EXTRA_DONE:
-            {
-              this[_clear]();
-              return new (_FutureOfbool()).immediate(false);
-            }
+    any(test) {
+      let future = new (_FutureOfbool())();
+      let subscription = null;
+      subscription = this.listen(dart.fn(element => {
+        async._runUserCode(dart.fn(() => test(element), VoidTobool()), dart.fn(isMatch => {
+          if (dart.test(isMatch)) {
+            async._cancelAndValue(subscription, future, true);
           }
-        }
-      }
-      [_clear]() {
-        this[_subscription] = null;
-        this[_futureOrPrefetch] = null;
-        this[_current$1] = null;
-        this[_state] = async._StreamIteratorImpl._STATE_DONE;
-      }
-      cancel() {
-        let subscription = this[_subscription];
-        if (subscription == null) return null;
-        if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
-          let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
-          this[_clear]();
-          hasNext[_complete](false);
-        } else {
-          this[_clear]();
-        }
-        return subscription.cancel();
-      }
-      [_onData](data) {
-        T._check(data);
-        if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
-          this[_current$1] = data;
-          let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
-          this[_futureOrPrefetch] = null;
-          this[_state] = async._StreamIteratorImpl._STATE_FOUND;
-          hasNext[_complete](true);
-          return;
-        }
-        this[_subscription].pause();
-        dart.assert(this[_futureOrPrefetch] == null);
-        this[_futureOrPrefetch] = data;
-        this[_state] = async._StreamIteratorImpl._STATE_EXTRA_DATA;
-      }
-      [_onError](error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
-          let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
-          this[_clear]();
-          hasNext[_completeError](error, stackTrace);
-          return;
-        }
-        this[_subscription].pause();
-        dart.assert(this[_futureOrPrefetch] == null);
-        this[_futureOrPrefetch] = new async.AsyncError(error, stackTrace);
-        this[_state] = async._StreamIteratorImpl._STATE_EXTRA_ERROR;
-      }
-      [_onDone]() {
-        if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
-          let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
-          this[_clear]();
-          hasNext[_complete](false);
-          return;
-        }
-        this[_subscription].pause();
-        this[_futureOrPrefetch] = null;
-        this[_state] = async._StreamIteratorImpl._STATE_EXTRA_DONE;
-      }
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](false);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
     }
-    dart.addTypeTests(_StreamIteratorImpl);
-    _StreamIteratorImpl[dart.implements] = () => [StreamIteratorOfT()];
-    dart.setSignature(_StreamIteratorImpl, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamIteratorImpl$(T), [StreamOfT()])}),
-      fields: () => ({
-        [_subscription]: async.StreamSubscription,
-        [_current$1]: T,
-        [_futureOrPrefetch]: dart.dynamic,
-        [_state]: core.int
-      }),
-      getters: () => ({current: dart.definiteFunctionType(T, [])}),
-      methods: () => ({
-        moveNext: dart.definiteFunctionType(async.Future$(core.bool), []),
-        [_clear]: dart.definiteFunctionType(dart.void, []),
-        cancel: dart.definiteFunctionType(async.Future, []),
-        [_onData]: dart.definiteFunctionType(dart.void, [T]),
-        [_onError]: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-        [_onDone]: dart.definiteFunctionType(dart.void, [])
-      }),
-      sfields: () => ({
-        _STATE_FOUND: core.int,
-        _STATE_DONE: core.int,
-        _STATE_MOVING: core.int,
-        _STATE_EXTRA_DATA: core.int,
-        _STATE_EXTRA_ERROR: core.int,
-        _STATE_EXTRA_DONE: core.int
-      })
-    });
-    return _StreamIteratorImpl;
-  });
-  async._StreamIteratorImpl = _StreamIteratorImpl();
-  async._StreamIteratorImpl._STATE_FOUND = 0;
-  async._StreamIteratorImpl._STATE_DONE = 1;
-  async._StreamIteratorImpl._STATE_MOVING = 2;
-  async._StreamIteratorImpl._STATE_EXTRA_DATA = 3;
-  async._StreamIteratorImpl._STATE_EXTRA_ERROR = 4;
-  async._StreamIteratorImpl._STATE_EXTRA_DONE = 5;
-  async._EmptyStream$ = dart.generic(T => {
-    let _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _EmptyStream extends async.Stream$(T) {
-      new() {
-        super._internal();
-      }
-      get isBroadcast() {
-        return true;
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        return new (_DoneStreamSubscriptionOfT())(onDone);
-      }
-    }
-    dart.setSignature(_EmptyStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._EmptyStream$(T), [])}),
-      methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-    });
-    return _EmptyStream;
-  });
-  async._EmptyStream = _EmptyStream();
-  async._runUserCode = function(userCode, onSuccess, onError) {
-    try {
-      dart.dcall(onSuccess, userCode());
-    } catch (e) {
-      let s = dart.stackTrace(e);
-      let replacement = async.Zone.current.errorCallback(e, s);
-      if (replacement == null) {
-        dart.dcall(onError, e, s);
-      } else {
-        let error = async._nonNullError(replacement.error);
-        let stackTrace = replacement.stackTrace;
-        dart.dcall(onError, error, stackTrace);
-      }
-    }
-
-  };
-  dart.lazyFn(async._runUserCode, () => FnAndFnAndFnTodynamic());
-  async._cancelAndError = function(subscription, future, error, stackTrace) {
-    let cancelFuture = subscription.cancel();
-    if (async.Future.is(cancelFuture)) {
-      cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), VoidTovoid$()));
-    } else {
-      future[_completeError](error, stackTrace);
-    }
-  };
-  dart.lazyFn(async._cancelAndError, () => StreamSubscriptionAnd_FutureAnddynamic__Tovoid());
-  async._cancelAndErrorWithReplacement = function(subscription, future, error, stackTrace) {
-    let replacement = async.Zone.current.errorCallback(error, stackTrace);
-    if (replacement != null) {
-      error = async._nonNullError(replacement.error);
-      stackTrace = replacement.stackTrace;
-    }
-    async._cancelAndError(subscription, future, error, stackTrace);
-  };
-  dart.lazyFn(async._cancelAndErrorWithReplacement, () => StreamSubscriptionAnd_FutureAnddynamic__Tovoid());
-  async._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [dart.dynamic, core.StackTrace]));
-  async._cancelAndErrorClosure = function(subscription, future) {
-    return dart.fn((error, stackTrace) => {
-      async._cancelAndError(subscription, future, error, stackTrace);
-    }, dynamicAndStackTraceToNull());
-  };
-  dart.fn(async._cancelAndErrorClosure, StreamSubscriptionAnd_FutureTo_ErrorCallback());
-  async._cancelAndValue = function(subscription, future, value) {
-    let cancelFuture = subscription.cancel();
-    if (async.Future.is(cancelFuture)) {
-      cancelFuture.whenComplete(dart.fn(() => future[_complete](value), VoidTovoid$()));
-    } else {
-      future[_complete](value);
-    }
-  };
-  dart.fn(async._cancelAndValue, StreamSubscriptionAnd_FutureAnddynamicTovoid());
-  const _handleData = Symbol('_handleData');
-  const _handleError = Symbol('_handleError');
-  const _handleDone = Symbol('_handleDone');
-  async._ForwardingStream$ = dart.generic((S, T) => {
-    let _ForwardingStreamSubscriptionOfS$T = () => (_ForwardingStreamSubscriptionOfS$T = dart.constFn(async._ForwardingStreamSubscription$(S, T)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _ForwardingStream extends async.Stream$(T) {
-      new(source) {
-        this[_source$] = source;
-        super.new();
-      }
-      get isBroadcast() {
-        return this[_source$].isBroadcast;
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        cancelOnError = core.identical(true, cancelOnError);
-        return this[_createSubscription](onData, onError, onDone, cancelOnError);
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        return new (_ForwardingStreamSubscriptionOfS$T())(this, onData, onError, onDone, cancelOnError);
-      }
-      [_handleData](data, sink) {
-        S._check(data);
-        _EventSinkOfT()._check(sink);
-        sink[_add$](T.as(data));
-      }
-      [_handleError](error, stackTrace, sink) {
-        _EventSinkOfT()._check(sink);
-        sink[_addError](error, stackTrace);
-      }
-      [_handleDone](sink) {
-        _EventSinkOfT()._check(sink);
-        sink[_close$]();
-      }
-    }
-    dart.setSignature(_ForwardingStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ForwardingStream$(S, T), [StreamOfS()])}),
-      fields: () => ({[_source$]: StreamOfS()}),
-      methods: () => ({
-        listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-        [_createSubscription]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
-        [_handleData]: dart.definiteFunctionType(dart.void, [S, _EventSinkOfT()]),
-        [_handleError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace, _EventSinkOfT()]),
-        [_handleDone]: dart.definiteFunctionType(dart.void, [_EventSinkOfT()])
-      })
-    });
-    return _ForwardingStream;
-  });
-  async._ForwardingStream = _ForwardingStream();
-  async._ForwardingStreamSubscription$ = dart.generic((S, T) => {
-    let _ForwardingStreamOfS$T = () => (_ForwardingStreamOfS$T = dart.constFn(async._ForwardingStream$(S, T)))();
-    let StreamSubscriptionOfS = () => (StreamSubscriptionOfS = dart.constFn(async.StreamSubscription$(S)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _ForwardingStreamSubscription extends async._BufferingStreamSubscription$(T) {
-      new(stream, onData, onError, onDone, cancelOnError) {
-        this[_stream] = stream;
-        this[_subscription] = null;
-        super.new(onData, onError, onDone, cancelOnError);
-        this[_subscription] = this[_stream][_source$].listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)});
-      }
-      [_add$](data) {
-        T._check(data);
-        if (dart.test(this[_isClosed$])) return;
-        super[_add$](data);
-      }
-      [_addError](error, stackTrace) {
-        if (dart.test(this[_isClosed$])) return;
-        super[_addError](error, stackTrace);
-      }
-      [_onPause]() {
-        if (this[_subscription] == null) return;
-        this[_subscription].pause();
-      }
-      [_onResume]() {
-        if (this[_subscription] == null) return;
-        this[_subscription].resume();
-      }
-      [_onCancel]() {
-        if (this[_subscription] != null) {
-          let subscription = this[_subscription];
-          this[_subscription] = null;
-          return subscription.cancel();
-        }
-        return null;
-      }
-      [_handleData](data) {
-        S._check(data);
-        this[_stream][_handleData](data, this);
-      }
-      [_handleError](error, stackTrace) {
-        this[_stream][_handleError](error, stackTrace, this);
-      }
-      [_handleDone]() {
-        this[_stream][_handleDone](this);
-      }
-    }
-    dart.setSignature(_ForwardingStreamSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ForwardingStreamSubscription$(S, T), [_ForwardingStreamOfS$T(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
-      fields: () => ({
-        [_stream]: _ForwardingStreamOfS$T(),
-        [_subscription]: StreamSubscriptionOfS()
-      }),
-      methods: () => ({
-        [_handleData]: dart.definiteFunctionType(dart.void, [S]),
-        [_handleError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
-        [_handleDone]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _ForwardingStreamSubscription;
-  });
-  async._ForwardingStreamSubscription = _ForwardingStreamSubscription();
-  async._Predicate$ = dart.generic(T => {
-    const _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.bool, [T]));
-    return _Predicate;
-  });
-  async._Predicate = _Predicate();
-  async._addErrorWithReplacement = function(sink, error, stackTrace) {
-    let replacement = async.Zone.current.errorCallback(error, core.StackTrace._check(stackTrace));
-    if (replacement != null) {
-      error = async._nonNullError(replacement.error);
-      stackTrace = replacement.stackTrace;
-    }
-    sink[_addError](error, core.StackTrace._check(stackTrace));
-  };
-  dart.fn(async._addErrorWithReplacement, _EventSinkAnddynamicAnddynamicTovoid());
-  const _test = Symbol('_test');
-  async._WhereStream$ = dart.generic(T => {
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let _PredicateOfT = () => (_PredicateOfT = dart.constFn(async._Predicate$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _WhereStream extends async._ForwardingStream$(T, T) {
-      new(source, test) {
-        this[_test] = test;
-        super.new(source);
-      }
-      [_handleData](inputEvent, sink) {
-        T._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        let satisfies = null;
-        try {
-          satisfies = this[_test](inputEvent);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          async._addErrorWithReplacement(sink, e, s);
-          return;
-        }
-
-        if (dart.test(satisfies)) {
-          sink[_add$](inputEvent);
-        }
-      }
-    }
-    dart.setSignature(_WhereStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._WhereStream$(T), [StreamOfT(), _PredicateOfT()])}),
-      fields: () => ({[_test]: _PredicateOfT()})
-    });
-    return _WhereStream;
-  });
-  async._WhereStream = _WhereStream();
-  async._Transformation$ = dart.generic((S, T) => {
-    const _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S]));
-    return _Transformation;
-  });
-  async._Transformation = _Transformation$();
-  const _transform = Symbol('_transform');
-  async._MapStream$ = dart.generic((S, T) => {
-    let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(async._Transformation$(S, T)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    class _MapStream extends async._ForwardingStream$(S, T) {
-      new(source, transform) {
-        this[_transform] = transform;
-        super.new(source);
-      }
-      [_handleData](inputEvent, sink) {
-        S._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        let outputEvent = null;
-        try {
-          outputEvent = this[_transform](inputEvent);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          async._addErrorWithReplacement(sink, e, s);
-          return;
-        }
-
-        sink[_add$](outputEvent);
-      }
-    }
-    dart.setSignature(_MapStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._MapStream$(S, T), [StreamOfS(), _TransformationOfS$T()])}),
-      fields: () => ({[_transform]: _TransformationOfS$T()})
-    });
-    return _MapStream;
-  });
-  async._MapStream = _MapStream();
-  const _expand = Symbol('_expand');
-  async._ExpandStream$ = dart.generic((S, T) => {
-    let _TransformationOfS$IterableOfT = () => (_TransformationOfS$IterableOfT = dart.constFn(async._Transformation$(S, IterableOfT())))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
-    class _ExpandStream extends async._ForwardingStream$(S, T) {
-      new(source, expand) {
-        this[_expand] = expand;
-        super.new(source);
-      }
-      [_handleData](inputEvent, sink) {
-        S._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        try {
-          for (let value of this[_expand](inputEvent)) {
-            sink[_add$](value);
-          }
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          async._addErrorWithReplacement(sink, e, s);
-        }
-
-      }
-    }
-    dart.setSignature(_ExpandStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ExpandStream$(S, T), [StreamOfS(), _TransformationOfS$IterableOfT()])}),
-      fields: () => ({[_expand]: _TransformationOfS$IterableOfT()})
-    });
-    return _ExpandStream;
-  });
-  async._ExpandStream = _ExpandStream();
-  async._ErrorTest = dart.typedef('_ErrorTest', () => dart.functionType(core.bool, [dart.dynamic]));
-  async._HandleErrorStream$ = dart.generic(T => {
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _HandleErrorStream extends async._ForwardingStream$(T, T) {
-      new(source, onError, test) {
-        this[_transform] = onError;
-        this[_test] = test;
-        super.new(source);
-      }
-      [_handleError](error, stackTrace, sink) {
-        _EventSinkOfT()._check(sink);
-        let matches = true;
-        if (this[_test] != null) {
-          try {
-            matches = dart.dcall(this[_test], error);
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            async._addErrorWithReplacement(sink, e, s);
-            return;
-          }
-
-        }
-        if (dart.test(matches)) {
-          try {
-            async._invokeErrorHandler(this[_transform], error, stackTrace);
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            if (core.identical(e, error)) {
-              sink[_addError](error, stackTrace);
-            } else {
-              async._addErrorWithReplacement(sink, e, s);
-            }
-            return;
-          }
-
-        } else {
-          sink[_addError](error, stackTrace);
-        }
-      }
-    }
-    dart.setSignature(_HandleErrorStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._HandleErrorStream$(T), [StreamOfT(), core.Function, dynamicTobool()])}),
-      fields: () => ({
-        [_transform]: core.Function,
-        [_test]: async._ErrorTest
-      }),
-      methods: () => ({[_handleError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace, _EventSinkOfT()])})
-    });
-    return _HandleErrorStream;
-  });
-  async._HandleErrorStream = _HandleErrorStream();
-  const _count = Symbol('_count');
-  async._TakeStream$ = dart.generic(T => {
-    let _StateStreamSubscriptionOfT = () => (_StateStreamSubscriptionOfT = dart.constFn(async._StateStreamSubscription$(T)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _TakeStream extends async._ForwardingStream$(T, T) {
-      new(source, count) {
-        this[_count] = count;
-        super.new(source);
-        if (!(typeof count == 'number')) dart.throw(new core.ArgumentError(count));
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        return new (_StateStreamSubscriptionOfT())(this, onData, onError, onDone, cancelOnError, this[_count]);
-      }
-      [_handleData](inputEvent, sink) {
-        T._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        let subscription = _StateStreamSubscriptionOfT()._check(sink);
-        let count = subscription[_count];
-        if (dart.notNull(count) > 0) {
-          sink[_add$](inputEvent);
-          count = dart.notNull(count) - 1;
-          subscription[_count] = count;
-          if (count == 0) {
-            sink[_close$]();
-          }
-        }
-      }
-    }
-    dart.setSignature(_TakeStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._TakeStream$(T), [StreamOfT(), core.int])}),
-      fields: () => ({[_count]: core.int})
-    });
-    return _TakeStream;
-  });
-  async._TakeStream = _TakeStream();
-  const _sharedState = Symbol('_sharedState');
-  const _flag = Symbol('_flag');
-  async._StateStreamSubscription$ = dart.generic(T => {
-    let _ForwardingStreamOfT$T = () => (_ForwardingStreamOfT$T = dart.constFn(async._ForwardingStream$(T, T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _StateStreamSubscription extends async._ForwardingStreamSubscription$(T, T) {
-      new(stream, onData, onError, onDone, cancelOnError, sharedState) {
-        this[_sharedState] = sharedState;
-        super.new(stream, onData, onError, onDone, cancelOnError);
-      }
-      get [_flag]() {
-        return core.bool._check(this[_sharedState]);
-      }
-      set [_flag](flag) {
-        this[_sharedState] = flag;
-      }
-      get [_count]() {
-        return core.int._check(this[_sharedState]);
-      }
-      set [_count](count) {
-        this[_sharedState] = count;
-      }
-    }
-    dart.setSignature(_StateStreamSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StateStreamSubscription$(T), [_ForwardingStreamOfT$T(), TTovoid(), core.Function, VoidTovoid(), core.bool, dart.dynamic])}),
-      fields: () => ({[_sharedState]: dart.dynamic}),
-      getters: () => ({
-        [_flag]: dart.definiteFunctionType(core.bool, []),
-        [_count]: dart.definiteFunctionType(core.int, [])
-      }),
-      setters: () => ({
-        [_flag]: dart.definiteFunctionType(dart.void, [core.bool]),
-        [_count]: dart.definiteFunctionType(dart.void, [core.int])
-      })
-    });
-    return _StateStreamSubscription;
-  });
-  async._StateStreamSubscription = _StateStreamSubscription();
-  async._TakeWhileStream$ = dart.generic(T => {
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let _PredicateOfT = () => (_PredicateOfT = dart.constFn(async._Predicate$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _TakeWhileStream extends async._ForwardingStream$(T, T) {
-      new(source, test) {
-        this[_test] = test;
-        super.new(source);
-      }
-      [_handleData](inputEvent, sink) {
-        T._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        let satisfies = null;
-        try {
-          satisfies = this[_test](inputEvent);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          async._addErrorWithReplacement(sink, e, s);
-          sink[_close$]();
-          return;
-        }
-
-        if (dart.test(satisfies)) {
-          sink[_add$](inputEvent);
-        } else {
-          sink[_close$]();
-        }
-      }
-    }
-    dart.setSignature(_TakeWhileStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._TakeWhileStream$(T), [StreamOfT(), _PredicateOfT()])}),
-      fields: () => ({[_test]: _PredicateOfT()})
-    });
-    return _TakeWhileStream;
-  });
-  async._TakeWhileStream = _TakeWhileStream();
-  async._SkipStream$ = dart.generic(T => {
-    let _StateStreamSubscriptionOfT = () => (_StateStreamSubscriptionOfT = dart.constFn(async._StateStreamSubscription$(T)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _SkipStream extends async._ForwardingStream$(T, T) {
-      new(source, count) {
-        this[_count] = count;
-        super.new(source);
-        if (!(typeof count == 'number') || dart.notNull(count) < 0) dart.throw(new core.ArgumentError(count));
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        return new (_StateStreamSubscriptionOfT())(this, onData, onError, onDone, cancelOnError, this[_count]);
-      }
-      [_handleData](inputEvent, sink) {
-        T._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        let subscription = _StateStreamSubscriptionOfT()._check(sink);
-        let count = subscription[_count];
-        if (dart.notNull(count) > 0) {
-          subscription[_count] = dart.notNull(count) - 1;
-          return;
-        }
-        sink[_add$](inputEvent);
-      }
-    }
-    dart.setSignature(_SkipStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._SkipStream$(T), [StreamOfT(), core.int])}),
-      fields: () => ({[_count]: core.int})
-    });
-    return _SkipStream;
-  });
-  async._SkipStream = _SkipStream();
-  async._SkipWhileStream$ = dart.generic(T => {
-    let _StateStreamSubscriptionOfT = () => (_StateStreamSubscriptionOfT = dart.constFn(async._StateStreamSubscription$(T)))();
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let _PredicateOfT = () => (_PredicateOfT = dart.constFn(async._Predicate$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _SkipWhileStream extends async._ForwardingStream$(T, T) {
-      new(source, test) {
-        this[_test] = test;
-        super.new(source);
-      }
-      [_createSubscription](onData, onError, onDone, cancelOnError) {
-        return new (_StateStreamSubscriptionOfT())(this, onData, onError, onDone, cancelOnError, false);
-      }
-      [_handleData](inputEvent, sink) {
-        T._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        let subscription = _StateStreamSubscriptionOfT()._check(sink);
-        let hasFailed = subscription[_flag];
-        if (dart.test(hasFailed)) {
-          sink[_add$](inputEvent);
-          return;
-        }
-        let satisfies = null;
-        try {
-          satisfies = this[_test](inputEvent);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          async._addErrorWithReplacement(sink, e, s);
-          subscription[_flag] = true;
-          return;
-        }
-
-        if (!dart.test(satisfies)) {
-          subscription[_flag] = true;
-          sink[_add$](inputEvent);
-        }
-      }
-    }
-    dart.setSignature(_SkipWhileStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._SkipWhileStream$(T), [StreamOfT(), _PredicateOfT()])}),
-      fields: () => ({[_test]: _PredicateOfT()})
-    });
-    return _SkipWhileStream;
-  });
-  async._SkipWhileStream = _SkipWhileStream();
-  async._Equality$ = dart.generic(T => {
-    const _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [T, T]));
-    return _Equality;
-  });
-  async._Equality = _Equality();
-  const _equals = Symbol('_equals');
-  async._DistinctStream$ = dart.generic(T => {
-    let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
-    let _EqualityOfT = () => (_EqualityOfT = dart.constFn(async._Equality$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class _DistinctStream extends async._ForwardingStream$(T, T) {
-      new(source, equals) {
-        this[_previous$] = async._DistinctStream._SENTINEL;
-        this[_equals] = equals;
-        super.new(source);
-      }
-      [_handleData](inputEvent, sink) {
-        T._check(inputEvent);
-        _EventSinkOfT()._check(sink);
-        if (core.identical(this[_previous$], async._DistinctStream._SENTINEL)) {
-          this[_previous$] = inputEvent;
-          return sink[_add$](inputEvent);
-        } else {
-          let isEqual = null;
-          try {
-            if (this[_equals] == null) {
-              isEqual = dart.equals(this[_previous$], inputEvent);
-            } else {
-              isEqual = this[_equals](T.as(this[_previous$]), inputEvent);
-            }
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            async._addErrorWithReplacement(sink, e, s);
-            return null;
-          }
-
-          if (!dart.test(isEqual)) {
-            sink[_add$](inputEvent);
-            this[_previous$] = inputEvent;
-          }
-        }
-      }
-    }
-    dart.setSignature(_DistinctStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._DistinctStream$(T), [StreamOfT(), _EqualityOfT()])}),
-      fields: () => ({
-        [_equals]: _EqualityOfT(),
-        [_previous$]: core.Object
-      }),
-      sfields: () => ({_SENTINEL: core.Object})
-    });
-    return _DistinctStream;
-  });
-  async._DistinctStream = _DistinctStream();
-  dart.defineLazy(async._DistinctStream, {
-    get _SENTINEL() {
-      return new core.Object();
-    },
-    set _SENTINEL(_) {}
-  });
-  async._EventSinkWrapper$ = dart.generic(T => {
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    class _EventSinkWrapper extends core.Object {
-      new(sink) {
-        this[_sink] = sink;
-      }
-      add(data) {
-        T._check(data);
-        this[_sink][_add$](data);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_sink][_addError](error, stackTrace);
-      }
-      close() {
-        this[_sink][_close$]();
-      }
-    }
-    dart.addTypeTests(_EventSinkWrapper);
-    _EventSinkWrapper[dart.implements] = () => [EventSinkOfT()];
-    dart.setSignature(_EventSinkWrapper, {
-      constructors: () => ({new: dart.definiteFunctionType(async._EventSinkWrapper$(T), [async._EventSink])}),
-      fields: () => ({[_sink]: async._EventSink}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [T]),
-        addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-        close: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _EventSinkWrapper;
-  });
-  async._EventSinkWrapper = _EventSinkWrapper();
-  const _transformerSink = Symbol('_transformerSink');
-  const _isSubscribed = Symbol('_isSubscribed');
-  async._SinkTransformerStreamSubscription$ = dart.generic((S, T) => {
-    let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
-    let StreamSubscriptionOfS = () => (StreamSubscriptionOfS = dart.constFn(async.StreamSubscription$(S)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _SinkMapperOfS$T = () => (_SinkMapperOfS$T = dart.constFn(async._SinkMapper$(S, T)))();
-    let _EventSinkWrapperOfT = () => (_EventSinkWrapperOfT = dart.constFn(async._EventSinkWrapper$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _SinkTransformerStreamSubscription extends async._BufferingStreamSubscription$(T) {
-      new(source, mapper, onData, onError, onDone, cancelOnError) {
-        this[_transformerSink] = null;
-        this[_subscription] = null;
-        super.new(onData, onError, onDone, cancelOnError);
-        let eventSink = new (_EventSinkWrapperOfT())(this);
-        this[_transformerSink] = mapper(eventSink);
-        this[_subscription] = source.listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)});
-      }
-      get [_isSubscribed]() {
-        return this[_subscription] != null;
-      }
-      [_add$](data) {
-        T._check(data);
-        if (dart.test(this[_isClosed$])) {
-          dart.throw(new core.StateError("Stream is already closed"));
-        }
-        super[_add$](data);
-      }
-      [_addError](error, stackTrace) {
-        if (dart.test(this[_isClosed$])) {
-          dart.throw(new core.StateError("Stream is already closed"));
-        }
-        super[_addError](error, stackTrace);
-      }
-      [_close$]() {
-        if (dart.test(this[_isClosed$])) {
-          dart.throw(new core.StateError("Stream is already closed"));
-        }
-        super[_close$]();
-      }
-      [_onPause]() {
-        if (dart.test(this[_isSubscribed])) this[_subscription].pause();
-      }
-      [_onResume]() {
-        if (dart.test(this[_isSubscribed])) this[_subscription].resume();
-      }
-      [_onCancel]() {
-        if (dart.test(this[_isSubscribed])) {
-          let subscription = this[_subscription];
-          this[_subscription] = null;
-          subscription.cancel();
-        }
-        return null;
-      }
-      [_handleData](data) {
-        S._check(data);
-        try {
-          this[_transformerSink].add(data);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          this[_addError](e, s);
-        }
-
-      }
-      [_handleError](error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        try {
-          this[_transformerSink].addError(error, core.StackTrace._check(stackTrace));
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          if (core.identical(e, error)) {
-            this[_addError](error, core.StackTrace._check(stackTrace));
-          } else {
-            this[_addError](e, s);
-          }
-        }
-
-      }
-      [_handleDone]() {
-        try {
-          this[_subscription] = null;
-          this[_transformerSink].close();
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          this[_addError](e, s);
-        }
-
-      }
-    }
-    dart.setSignature(_SinkTransformerStreamSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(async._SinkTransformerStreamSubscription$(S, T), [StreamOfS(), _SinkMapperOfS$T(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
-      fields: () => ({
-        [_transformerSink]: EventSinkOfS(),
-        [_subscription]: StreamSubscriptionOfS()
-      }),
-      getters: () => ({[_isSubscribed]: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        [_handleData]: dart.definiteFunctionType(dart.void, [S]),
-        [_handleError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [dart.dynamic]),
-        [_handleDone]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _SinkTransformerStreamSubscription;
-  });
-  async._SinkTransformerStreamSubscription = _SinkTransformerStreamSubscription();
-  async._SinkMapper$ = dart.generic((S, T) => {
-    const _SinkMapper = dart.typedef('_SinkMapper', () => dart.functionType(async.EventSink$(S), [async.EventSink$(T)]));
-    return _SinkMapper;
-  });
-  async._SinkMapper = _SinkMapper();
-  const _sinkMapper = Symbol('_sinkMapper');
-  async._StreamSinkTransformer$ = dart.generic((S, T) => {
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _BoundSinkStreamOfS$T = () => (_BoundSinkStreamOfS$T = dart.constFn(async._BoundSinkStream$(S, T)))();
-    let StreamTransformerOfS$T = () => (StreamTransformerOfS$T = dart.constFn(async.StreamTransformer$(S, T)))();
-    let _SinkMapperOfS$T = () => (_SinkMapperOfS$T = dart.constFn(async._SinkMapper$(S, T)))();
-    class _StreamSinkTransformer extends core.Object {
-      new(sinkMapper) {
-        this[_sinkMapper] = sinkMapper;
-      }
-      bind(stream) {
-        StreamOfS()._check(stream);
-        return new (_BoundSinkStreamOfS$T())(stream, this[_sinkMapper]);
-      }
-    }
-    dart.addTypeTests(_StreamSinkTransformer);
-    _StreamSinkTransformer[dart.implements] = () => [StreamTransformerOfS$T()];
-    dart.setSignature(_StreamSinkTransformer, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamSinkTransformer$(S, T), [_SinkMapperOfS$T()])}),
-      fields: () => ({[_sinkMapper]: _SinkMapperOfS$T()}),
-      methods: () => ({bind: dart.definiteFunctionType(async.Stream$(T), [StreamOfS()])})
-    });
-    return _StreamSinkTransformer;
-  });
-  async._StreamSinkTransformer = _StreamSinkTransformer();
-  async._BoundSinkStream$ = dart.generic((S, T) => {
-    let _SinkTransformerStreamSubscriptionOfS$T = () => (_SinkTransformerStreamSubscriptionOfS$T = dart.constFn(async._SinkTransformerStreamSubscription$(S, T)))();
-    let _SinkMapperOfS$T = () => (_SinkMapperOfS$T = dart.constFn(async._SinkMapper$(S, T)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _BoundSinkStream extends async.Stream$(T) {
-      get isBroadcast() {
-        return this[_stream].isBroadcast;
-      }
-      new(stream, sinkMapper) {
-        this[_stream] = stream;
-        this[_sinkMapper] = sinkMapper;
-        super.new();
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        cancelOnError = core.identical(true, cancelOnError);
-        let subscription = new (_SinkTransformerStreamSubscriptionOfS$T())(this[_stream], this[_sinkMapper], onData, onError, onDone, cancelOnError);
-        return subscription;
-      }
-    }
-    dart.setSignature(_BoundSinkStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BoundSinkStream$(S, T), [StreamOfS(), _SinkMapperOfS$T()])}),
-      fields: () => ({
-        [_sinkMapper]: _SinkMapperOfS$T(),
-        [_stream]: StreamOfS()
-      }),
-      methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-    });
-    return _BoundSinkStream;
-  });
-  async._BoundSinkStream = _BoundSinkStream();
-  async._TransformDataHandler$ = dart.generic((S, T) => {
-    const _TransformDataHandler = dart.typedef('_TransformDataHandler', () => dart.functionType(dart.void, [S, async.EventSink$(T)]));
-    return _TransformDataHandler;
-  });
-  async._TransformDataHandler = _TransformDataHandler();
-  async._TransformErrorHandler$ = dart.generic(T => {
-    const _TransformErrorHandler = dart.typedef('_TransformErrorHandler', () => dart.functionType(dart.void, [core.Object, core.StackTrace, async.EventSink$(T)]));
-    return _TransformErrorHandler;
-  });
-  async._TransformErrorHandler = _TransformErrorHandler();
-  async._TransformDoneHandler$ = dart.generic(T => {
-    const _TransformDoneHandler = dart.typedef('_TransformDoneHandler', () => dart.functionType(dart.void, [async.EventSink$(T)]));
-    return _TransformDoneHandler;
-  });
-  async._TransformDoneHandler = _TransformDoneHandler();
-  async._HandlerEventSink$ = dart.generic((S, T) => {
-    let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
-    let _TransformDataHandlerOfS$T = () => (_TransformDataHandlerOfS$T = dart.constFn(async._TransformDataHandler$(S, T)))();
-    let _TransformErrorHandlerOfT = () => (_TransformErrorHandlerOfT = dart.constFn(async._TransformErrorHandler$(T)))();
-    let _TransformDoneHandlerOfT = () => (_TransformDoneHandlerOfT = dart.constFn(async._TransformDoneHandler$(T)))();
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    class _HandlerEventSink extends core.Object {
-      new(handleData, handleError, handleDone, sink) {
-        this[_handleData] = handleData;
-        this[_handleError] = handleError;
-        this[_handleDone] = handleDone;
-        this[_sink] = sink;
-      }
-      add(data) {
-        S._check(data);
-        this[_handleData](data, this[_sink]);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_handleError](error, stackTrace, this[_sink]);
-      }
-      close() {
-        this[_handleDone](this[_sink]);
-      }
-    }
-    dart.addTypeTests(_HandlerEventSink);
-    _HandlerEventSink[dart.implements] = () => [EventSinkOfS()];
-    dart.setSignature(_HandlerEventSink, {
-      constructors: () => ({new: dart.definiteFunctionType(async._HandlerEventSink$(S, T), [_TransformDataHandlerOfS$T(), _TransformErrorHandlerOfT(), _TransformDoneHandlerOfT(), EventSinkOfT()])}),
-      fields: () => ({
-        [_handleData]: _TransformDataHandlerOfS$T(),
-        [_handleError]: _TransformErrorHandlerOfT(),
-        [_handleDone]: _TransformDoneHandlerOfT(),
-        [_sink]: EventSinkOfT()
-      }),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [S]),
-        addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-        close: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _HandlerEventSink;
-  });
-  async._HandlerEventSink = _HandlerEventSink();
-  async._StreamHandlerTransformer$ = dart.generic((S, T) => {
-    let _HandlerEventSinkOfS$T = () => (_HandlerEventSinkOfS$T = dart.constFn(async._HandlerEventSink$(S, T)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let SAndEventSinkOfTTovoid = () => (SAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [S, EventSinkOfT()])))();
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    let ObjectAndStackTraceAndEventSinkOfTTovoid = () => (ObjectAndStackTraceAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [core.Object, core.StackTrace, EventSinkOfT()])))();
-    let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
-    let EventSinkOfTTo_HandlerEventSinkOfS$T = () => (EventSinkOfTTo_HandlerEventSinkOfS$T = dart.constFn(dart.definiteFunctionType(_HandlerEventSinkOfS$T(), [EventSinkOfT()])))();
-    class _StreamHandlerTransformer extends async._StreamSinkTransformer$(S, T) {
-      new(opts) {
-        let handleData = opts && 'handleData' in opts ? opts.handleData : null;
-        let handleError = opts && 'handleError' in opts ? opts.handleError : null;
-        let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null;
-        super.new(dart.fn(outputSink => {
-          if (handleData == null) handleData = async._StreamHandlerTransformer._defaultHandleData;
-          if (handleError == null) handleError = async._StreamHandlerTransformer._defaultHandleError;
-          if (handleDone == null) handleDone = async._StreamHandlerTransformer._defaultHandleDone;
-          return new (_HandlerEventSinkOfS$T())(handleData, handleError, handleDone, outputSink);
-        }, EventSinkOfTTo_HandlerEventSinkOfS$T()));
-      }
-      bind(stream) {
-        StreamOfS()._check(stream);
-        return super.bind(stream);
-      }
-      static _defaultHandleData(data, sink) {
-        sink.add(data);
-      }
-      static _defaultHandleError(error, stackTrace, sink) {
-        sink.addError(error, stackTrace);
-      }
-      static _defaultHandleDone(sink) {
-        sink.close();
-      }
-    }
-    dart.setSignature(_StreamHandlerTransformer, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamHandlerTransformer$(S, T), [], {handleData: SAndEventSinkOfTTovoid(), handleError: ObjectAndStackTraceAndEventSinkOfTTovoid(), handleDone: EventSinkOfTTovoid()})}),
-      statics: () => ({
-        _defaultHandleData: dart.definiteFunctionType(dart.void, [dart.dynamic, async.EventSink]),
-        _defaultHandleError: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace, async.EventSink]),
-        _defaultHandleDone: dart.definiteFunctionType(dart.void, [async.EventSink])
-      }),
-      names: ['_defaultHandleData', '_defaultHandleError', '_defaultHandleDone']
-    });
-    return _StreamHandlerTransformer;
-  });
-  async._StreamHandlerTransformer = _StreamHandlerTransformer();
-  async._SubscriptionTransformer$ = dart.generic((S, T) => {
-    const _SubscriptionTransformer = dart.typedef('_SubscriptionTransformer', () => dart.functionType(async.StreamSubscription$(T), [async.Stream$(S), core.bool]));
-    return _SubscriptionTransformer;
-  });
-  async._SubscriptionTransformer = _SubscriptionTransformer();
-  const _transformer = Symbol('_transformer');
-  async._StreamSubscriptionTransformer$ = dart.generic((S, T) => {
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _BoundSubscriptionStreamOfS$T = () => (_BoundSubscriptionStreamOfS$T = dart.constFn(async._BoundSubscriptionStream$(S, T)))();
-    let StreamTransformerOfS$T = () => (StreamTransformerOfS$T = dart.constFn(async.StreamTransformer$(S, T)))();
-    let _SubscriptionTransformerOfS$T = () => (_SubscriptionTransformerOfS$T = dart.constFn(async._SubscriptionTransformer$(S, T)))();
-    class _StreamSubscriptionTransformer extends core.Object {
-      new(transformer) {
-        this[_transformer] = transformer;
-      }
-      bind(stream) {
-        StreamOfS()._check(stream);
-        return new (_BoundSubscriptionStreamOfS$T())(stream, this[_transformer]);
-      }
-    }
-    dart.addTypeTests(_StreamSubscriptionTransformer);
-    _StreamSubscriptionTransformer[dart.implements] = () => [StreamTransformerOfS$T()];
-    dart.setSignature(_StreamSubscriptionTransformer, {
-      constructors: () => ({new: dart.definiteFunctionType(async._StreamSubscriptionTransformer$(S, T), [_SubscriptionTransformerOfS$T()])}),
-      fields: () => ({[_transformer]: _SubscriptionTransformerOfS$T()}),
-      methods: () => ({bind: dart.definiteFunctionType(async.Stream$(T), [StreamOfS()])})
-    });
-    return _StreamSubscriptionTransformer;
-  });
-  async._StreamSubscriptionTransformer = _StreamSubscriptionTransformer();
-  async._BoundSubscriptionStream$ = dart.generic((S, T) => {
-    let _SubscriptionTransformerOfS$T = () => (_SubscriptionTransformerOfS$T = dart.constFn(async._SubscriptionTransformer$(S, T)))();
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _BoundSubscriptionStream extends async.Stream$(T) {
-      new(stream, transformer) {
-        this[_stream] = stream;
-        this[_transformer] = transformer;
-        super.new();
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        cancelOnError = core.identical(true, cancelOnError);
-        let result = this[_transformer](this[_stream], cancelOnError);
-        result.onData(onData);
-        result.onError(onError);
-        result.onDone(onDone);
-        return result;
-      }
-    }
-    dart.setSignature(_BoundSubscriptionStream, {
-      constructors: () => ({new: dart.definiteFunctionType(async._BoundSubscriptionStream$(S, T), [StreamOfS(), _SubscriptionTransformerOfS$T()])}),
-      fields: () => ({
-        [_transformer]: _SubscriptionTransformerOfS$T(),
-        [_stream]: StreamOfS()
-      }),
-      methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-    });
-    return _BoundSubscriptionStream;
-  });
-  async._BoundSubscriptionStream = _BoundSubscriptionStream();
-  async.Timer = class Timer extends core.Object {
-    static new(duration, callback) {
-      if (dart.equals(async.Zone.current, async.Zone.ROOT)) {
-        return async.Zone.current.createTimer(duration, callback);
-      }
-      return async.Zone.current.createTimer(duration, async.Zone.current.bindCallback(dart.void)(callback, {runGuarded: true}));
-    }
-    static periodic(duration, callback) {
-      if (dart.equals(async.Zone.current, async.Zone.ROOT)) {
-        return async.Zone.current.createPeriodicTimer(duration, callback);
-      }
-      let boundCallback = async.Zone.current.bindUnaryCallback(dart.dynamic, async.Timer)(callback, {runGuarded: true});
-      return async.Zone.current.createPeriodicTimer(duration, boundCallback);
-    }
-    static run(callback) {
-      async.Timer.new(core.Duration.ZERO, callback);
-    }
-    static _createTimer(duration, callback) {
-      let milliseconds = duration.inMilliseconds;
-      if (dart.notNull(milliseconds) < 0) milliseconds = 0;
-      return new _isolate_helper.TimerImpl(milliseconds, callback);
-    }
-    static _createPeriodicTimer(duration, callback) {
-      let milliseconds = duration.inMilliseconds;
-      if (dart.notNull(milliseconds) < 0) milliseconds = 0;
-      return new _isolate_helper.TimerImpl.periodic(milliseconds, callback);
-    }
-  };
-  dart.setSignature(async.Timer, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
-      periodic: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()])
-    }),
-    statics: () => ({
-      run: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      _createTimer: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
-      _createPeriodicTimer: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()])
-    }),
-    names: ['run', '_createTimer', '_createPeriodicTimer']
-  });
-  async.ZoneCallback$ = dart.generic(R => {
-    const ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(R, []));
-    return ZoneCallback;
-  });
-  async.ZoneCallback = ZoneCallback();
-  async.ZoneUnaryCallback$ = dart.generic((R, T) => {
-    const ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionType(R, [T]));
-    return ZoneUnaryCallback;
-  });
-  async.ZoneUnaryCallback = ZoneUnaryCallback();
-  async.ZoneBinaryCallback$ = dart.generic((R, T1, T2) => {
-    const ZoneBinaryCallback = dart.typedef('ZoneBinaryCallback', () => dart.functionType(R, [T1, T2]));
-    return ZoneBinaryCallback;
-  });
-  async.ZoneBinaryCallback = ZoneBinaryCallback();
-  async.HandleUncaughtErrorHandler$ = dart.generic(R => {
-    const HandleUncaughtErrorHandler = dart.typedef('HandleUncaughtErrorHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]));
-    return HandleUncaughtErrorHandler;
-  });
-  async.HandleUncaughtErrorHandler = HandleUncaughtErrorHandler();
-  async.RunHandler$ = dart.generic(R => {
-    const RunHandler = dart.typedef('RunHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]));
-    return RunHandler;
-  });
-  async.RunHandler = RunHandler();
-  async.RunUnaryHandler$ = dart.generic((R, T) => {
-    const RunUnaryHandler = dart.typedef('RunUnaryHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]));
-    return RunUnaryHandler;
-  });
-  async.RunUnaryHandler = RunUnaryHandler();
-  async.RunBinaryHandler$ = dart.generic((R, T1, T2) => {
-    const RunBinaryHandler = dart.typedef('RunBinaryHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]));
-    return RunBinaryHandler;
-  });
-  async.RunBinaryHandler = RunBinaryHandler();
-  async.RegisterCallbackHandler$ = dart.generic(R => {
-    const RegisterCallbackHandler = dart.typedef('RegisterCallbackHandler', () => dart.functionType(async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]));
-    return RegisterCallbackHandler;
-  });
-  async.RegisterCallbackHandler = RegisterCallbackHandler();
-  async.RegisterUnaryCallbackHandler$ = dart.generic((R, T) => {
-    const RegisterUnaryCallbackHandler = dart.typedef('RegisterUnaryCallbackHandler', () => dart.functionType(async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])]));
-    return RegisterUnaryCallbackHandler;
-  });
-  async.RegisterUnaryCallbackHandler = RegisterUnaryCallbackHandler();
-  async.RegisterBinaryCallbackHandler$ = dart.generic((R, T1, T2) => {
-    const RegisterBinaryCallbackHandler = dart.typedef('RegisterBinaryCallbackHandler', () => dart.functionType(async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])]));
-    return RegisterBinaryCallbackHandler;
-  });
-  async.RegisterBinaryCallbackHandler = RegisterBinaryCallbackHandler();
-  async.ErrorCallbackHandler = dart.typedef('ErrorCallbackHandler', () => dart.functionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]));
-  async.ScheduleMicrotaskHandler = dart.typedef('ScheduleMicrotaskHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidTovoid()]));
-  async.CreateTimerHandler = dart.typedef('CreateTimerHandler', () => dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidTovoid()]));
-  async.CreatePeriodicTimerHandler = dart.typedef('CreatePeriodicTimerHandler', () => dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerTovoid()]));
-  async.PrintHandler = dart.typedef('PrintHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]));
-  async.ForkHandler = dart.typedef('ForkHandler', () => dart.functionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map]));
-  async._ZoneFunction$ = dart.generic(T => {
-    class _ZoneFunction extends core.Object {
-      new(zone, func) {
-        this.zone = zone;
-        this.function = func;
-      }
-    }
-    dart.addTypeTests(_ZoneFunction);
-    dart.setSignature(_ZoneFunction, {
-      constructors: () => ({new: dart.definiteFunctionType(async._ZoneFunction$(T), [async._Zone, T])}),
-      fields: () => ({
-        zone: async._Zone,
-        function: T
-      })
-    });
-    return _ZoneFunction;
-  });
-  async._ZoneFunction = _ZoneFunction();
-  async.ZoneSpecification = class ZoneSpecification extends core.Object {
-    static new(opts) {
-      return new async._ZoneSpecification(opts);
-    }
-    static from(other, opts) {
-      let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
-      let run = opts && 'run' in opts ? opts.run : null;
-      let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
-      let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
-      let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
-      let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
-      let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
-      let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
-      let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
-      let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
-      let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
-      let print = opts && 'print' in opts ? opts.print : null;
-      let fork = opts && 'fork' in opts ? opts.fork : null;
-      return async.ZoneSpecification.new({handleUncaughtError: (handleUncaughtError != null ? handleUncaughtError : other.handleUncaughtError), run: (run != null ? run : other.run), runUnary: (runUnary != null ? runUnary : other.runUnary), runBinary: (runBinary != null ? runBinary : other.runBinary), registerCallback: (registerCallback != null ? registerCallback : other.registerCallback), registerUnaryCallback: (registerUnaryCallback != null ? registerUnaryCallback : other.registerUnaryCallback), registerBinaryCallback: (registerBinaryCallback != null ? registerBinaryCallback : other.registerBinaryCallback), errorCallback: (errorCallback != null ? errorCallback : other.errorCallback), scheduleMicrotask: (scheduleMicrotask != null ? scheduleMicrotask : other.scheduleMicrotask), createTimer: (createTimer != null ? createTimer : other.createTimer), createPeriodicTimer: (createPeriodicTimer != null ? createPeriodicTimer : other.createPeriodicTimer), print: (print != null ? print : other.print), fork: (fork != null ? fork : other.fork)});
-    }
-  };
-  dart.setSignature(async.ZoneSpecification, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(async.ZoneSpecification, [], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler}),
-      from: dart.definiteFunctionType(async.ZoneSpecification, [async.ZoneSpecification], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler})
-    })
-  });
-  async._ZoneSpecification = class _ZoneSpecification extends core.Object {
-    new(opts) {
-      let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
-      let run = opts && 'run' in opts ? opts.run : null;
-      let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
-      let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
-      let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
-      let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
-      let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
-      let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
-      let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
-      let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
-      let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
-      let print = opts && 'print' in opts ? opts.print : null;
-      let fork = opts && 'fork' in opts ? opts.fork : null;
-      this.handleUncaughtError = handleUncaughtError;
-      this.run = run;
-      this.runUnary = runUnary;
-      this.runBinary = runBinary;
-      this.registerCallback = registerCallback;
-      this.registerUnaryCallback = registerUnaryCallback;
-      this.registerBinaryCallback = registerBinaryCallback;
-      this.errorCallback = errorCallback;
-      this.scheduleMicrotask = scheduleMicrotask;
-      this.createTimer = createTimer;
-      this.createPeriodicTimer = createPeriodicTimer;
-      this.print = print;
-      this.fork = fork;
-    }
-  };
-  async._ZoneSpecification[dart.implements] = () => [async.ZoneSpecification];
-  dart.setSignature(async._ZoneSpecification, {
-    constructors: () => ({new: dart.definiteFunctionType(async._ZoneSpecification, [], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler})}),
-    fields: () => ({
-      handleUncaughtError: async.HandleUncaughtErrorHandler,
-      run: async.RunHandler,
-      runUnary: async.RunUnaryHandler,
-      runBinary: async.RunBinaryHandler,
-      registerCallback: async.RegisterCallbackHandler,
-      registerUnaryCallback: async.RegisterUnaryCallbackHandler,
-      registerBinaryCallback: async.RegisterBinaryCallbackHandler,
-      errorCallback: async.ErrorCallbackHandler,
-      scheduleMicrotask: async.ScheduleMicrotaskHandler,
-      createTimer: async.CreateTimerHandler,
-      createPeriodicTimer: async.CreatePeriodicTimerHandler,
-      print: async.PrintHandler,
-      fork: async.ForkHandler
-    })
-  });
-  async.ZoneDelegate = class ZoneDelegate extends core.Object {};
-  async.Zone = class Zone extends core.Object {
-    _() {
-    }
-    static get current() {
-      return async.Zone._current;
-    }
-    static _enter(zone) {
-      dart.assert(zone != null);
-      dart.assert(!core.identical(zone, async.Zone._current));
-      let previous = async.Zone._current;
-      async.Zone._current = zone;
-      return previous;
-    }
-    static _leave(previous) {
-      dart.assert(previous != null);
-      async.Zone._current = previous;
-    }
-  };
-  dart.defineNamedConstructor(async.Zone, '_');
-  dart.setSignature(async.Zone, {
-    constructors: () => ({_: dart.definiteFunctionType(async.Zone, [])}),
-    sfields: () => ({
-      ROOT: async.Zone,
-      _current: async.Zone
-    }),
-    sgetters: () => ({current: dart.definiteFunctionType(async.Zone, [])}),
-    statics: () => ({
-      _enter: dart.definiteFunctionType(async.Zone, [async.Zone]),
-      _leave: dart.definiteFunctionType(dart.void, [async.Zone])
-    }),
-    names: ['_enter', '_leave']
-  });
-  dart.defineLazy(async.Zone, {
-    get ROOT() {
-      return async._ROOT_ZONE;
-    },
-    get _current() {
-      return async._ROOT_ZONE;
-    },
-    set _current(_) {}
-  });
-  const _delegate = Symbol('_delegate');
-  async._parentDelegate = function(zone) {
-    if (zone.parent == null) return null;
-    return zone.parent[_delegate];
-  };
-  dart.lazyFn(async._parentDelegate, () => _ZoneToZoneDelegate());
-  const _delegationTarget = Symbol('_delegationTarget');
-  const _handleUncaughtError = Symbol('_handleUncaughtError');
-  const _run = Symbol('_run');
-  const _runUnary = Symbol('_runUnary');
-  const _runBinary = Symbol('_runBinary');
-  const _registerCallback = Symbol('_registerCallback');
-  const _registerUnaryCallback = Symbol('_registerUnaryCallback');
-  const _registerBinaryCallback = Symbol('_registerBinaryCallback');
-  const _errorCallback = Symbol('_errorCallback');
-  const _createTimer = Symbol('_createTimer');
-  const _createPeriodicTimer = Symbol('_createPeriodicTimer');
-  const _print = Symbol('_print');
-  const _fork = Symbol('_fork');
-  async._ZoneDelegate = class _ZoneDelegate extends core.Object {
-    new(delegationTarget) {
-      this[_delegationTarget] = delegationTarget;
-    }
-    handleUncaughtError(R) {
-      return (zone, error, stackTrace) => {
-        let implementation = this[_delegationTarget][_handleUncaughtError];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return R.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, error, stackTrace));
-      };
-    }
-    run(R) {
-      return (zone, f) => {
-        let implementation = this[_delegationTarget][_run];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return R.as(handler(implZone, async._parentDelegate(implZone), zone, f));
-      };
-    }
-    runUnary(R, T) {
-      return (zone, f, arg) => {
-        let implementation = this[_delegationTarget][_runUnary];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return R.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, f, arg));
-      };
-    }
-    runBinary(R, T1, T2) {
-      return (zone, f, arg1, arg2) => {
-        let implementation = this[_delegationTarget][_runBinary];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return R.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, f, arg1, arg2));
-      };
-    }
-    registerCallback(R) {
-      return (zone, f) => {
-        let implementation = this[_delegationTarget][_registerCallback];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return async.ZoneCallback$(R).as(handler(implZone, async._parentDelegate(implZone), zone, f));
-      };
-    }
-    registerUnaryCallback(R, T) {
-      return (zone, f) => {
-        let implementation = this[_delegationTarget][_registerUnaryCallback];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return async.ZoneUnaryCallback$(R, T).as(handler(implZone, async._parentDelegate(implZone), zone, f));
-      };
-    }
-    registerBinaryCallback(R, T1, T2) {
-      return (zone, f) => {
-        let implementation = this[_delegationTarget][_registerBinaryCallback];
-        let implZone = implementation.zone;
-        let handler = implementation.function;
-        return async.ZoneBinaryCallback$(R, T1, T2).as(handler(implZone, async._parentDelegate(implZone), zone, f));
-      };
-    }
-    errorCallback(zone, error, stackTrace) {
-      let implementation = this[_delegationTarget][_errorCallback];
-      let implZone = implementation.zone;
-      if (core.identical(implZone, async._ROOT_ZONE)) return null;
-      let handler = implementation.function;
-      return handler(implZone, async._parentDelegate(implZone), zone, error, stackTrace);
-    }
-    scheduleMicrotask(zone, f) {
-      let implementation = this[_delegationTarget][_scheduleMicrotask];
-      let implZone = implementation.zone;
-      let handler = implementation.function;
-      handler(implZone, async._parentDelegate(implZone), zone, f);
-    }
-    createTimer(zone, duration, f) {
-      let implementation = this[_delegationTarget][_createTimer];
-      let implZone = implementation.zone;
-      let handler = implementation.function;
-      return handler(implZone, async._parentDelegate(implZone), zone, duration, f);
-    }
-    createPeriodicTimer(zone, period, f) {
-      let implementation = this[_delegationTarget][_createPeriodicTimer];
-      let implZone = implementation.zone;
-      let handler = implementation.function;
-      return handler(implZone, async._parentDelegate(implZone), zone, period, f);
-    }
-    print(zone, line) {
-      let implementation = this[_delegationTarget][_print];
-      let implZone = implementation.zone;
-      let handler = implementation.function;
-      handler(implZone, async._parentDelegate(implZone), zone, line);
-    }
-    fork(zone, specification, zoneValues) {
-      let implementation = this[_delegationTarget][_fork];
-      let implZone = implementation.zone;
-      let handler = implementation.function;
-      return handler(implZone, async._parentDelegate(implZone), zone, specification, zoneValues);
-    }
-  };
-  async._ZoneDelegate[dart.implements] = () => [async.ZoneDelegate];
-  dart.setSignature(async._ZoneDelegate, {
-    constructors: () => ({new: dart.definiteFunctionType(async._ZoneDelegate, [async._Zone])}),
-    fields: () => ({[_delegationTarget]: async._Zone}),
-    methods: () => ({
-      handleUncaughtError: dart.definiteFunctionType(R => [R, [async.Zone, dart.dynamic, core.StackTrace]]),
-      run: dart.definiteFunctionType(R => [R, [async.Zone, dart.functionType(R, [])]]),
-      runUnary: dart.definiteFunctionType((R, T) => [R, [async.Zone, dart.functionType(R, [T]), T]]),
-      runBinary: dart.definiteFunctionType((R, T1, T2) => [R, [async.Zone, dart.functionType(R, [T1, T2]), T1, T2]]),
-      registerCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [async.Zone, dart.functionType(R, [])]]),
-      registerUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, dart.functionType(R, [T])]]),
-      registerBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, dart.functionType(R, [T1, T2])]]),
-      errorCallback: dart.definiteFunctionType(async.AsyncError, [async.Zone, core.Object, core.StackTrace]),
-      scheduleMicrotask: dart.definiteFunctionType(dart.void, [async.Zone, VoidTodynamic()]),
-      createTimer: dart.definiteFunctionType(async.Timer, [async.Zone, core.Duration, VoidTovoid()]),
-      createPeriodicTimer: dart.definiteFunctionType(async.Timer, [async.Zone, core.Duration, TimerTovoid()]),
-      print: dart.definiteFunctionType(dart.void, [async.Zone, core.String]),
-      fork: dart.definiteFunctionType(async.Zone, [async.Zone, async.ZoneSpecification, core.Map])
-    })
-  });
-  const _map$ = Symbol('_map');
-  async._Zone = class _Zone extends core.Object {
-    new() {
-    }
-    inSameErrorZone(otherZone) {
-      return core.identical(this, otherZone) || core.identical(this.errorZone, otherZone.errorZone);
-    }
-  };
-  async._Zone[dart.implements] = () => [async.Zone];
-  dart.setSignature(async._Zone, {
-    constructors: () => ({new: dart.definiteFunctionType(async._Zone, [])}),
-    methods: () => ({inSameErrorZone: dart.definiteFunctionType(core.bool, [async.Zone])})
-  });
-  const _delegateCache = Symbol('_delegateCache');
-  async._CustomZone = class _CustomZone extends async._Zone {
-    get [_delegate]() {
-      if (this[_delegateCache] != null) return this[_delegateCache];
-      this[_delegateCache] = new async._ZoneDelegate(this);
-      return this[_delegateCache];
-    }
-    new(parent, specification, map) {
-      this.parent = parent;
-      this[_map$] = map;
-      this[_run] = null;
-      this[_runUnary] = null;
-      this[_runBinary] = null;
-      this[_registerCallback] = null;
-      this[_registerUnaryCallback] = null;
-      this[_registerBinaryCallback] = null;
-      this[_errorCallback] = null;
-      this[_scheduleMicrotask] = null;
-      this[_createTimer] = null;
-      this[_createPeriodicTimer] = null;
-      this[_print] = null;
-      this[_fork] = null;
-      this[_handleUncaughtError] = null;
-      this[_delegateCache] = null;
-      super.new();
-      this[_run] = specification.run != null ? new (_ZoneFunctionOfRunHandler())(this, specification.run) : this.parent[_run];
-      this[_runUnary] = specification.runUnary != null ? new (_ZoneFunctionOfRunUnaryHandler())(this, specification.runUnary) : this.parent[_runUnary];
-      this[_runBinary] = specification.runBinary != null ? new (_ZoneFunctionOfRunBinaryHandler())(this, specification.runBinary) : this.parent[_runBinary];
-      this[_registerCallback] = specification.registerCallback != null ? new (_ZoneFunctionOfRegisterCallbackHandler())(this, specification.registerCallback) : this.parent[_registerCallback];
-      this[_registerUnaryCallback] = specification.registerUnaryCallback != null ? new (_ZoneFunctionOfRegisterUnaryCallbackHandler())(this, specification.registerUnaryCallback) : this.parent[_registerUnaryCallback];
-      this[_registerBinaryCallback] = specification.registerBinaryCallback != null ? new (_ZoneFunctionOfRegisterBinaryCallbackHandler())(this, specification.registerBinaryCallback) : this.parent[_registerBinaryCallback];
-      this[_errorCallback] = specification.errorCallback != null ? new (_ZoneFunctionOfErrorCallbackHandler())(this, specification.errorCallback) : this.parent[_errorCallback];
-      this[_scheduleMicrotask] = specification.scheduleMicrotask != null ? new (_ZoneFunctionOfScheduleMicrotaskHandler())(this, specification.scheduleMicrotask) : this.parent[_scheduleMicrotask];
-      this[_createTimer] = specification.createTimer != null ? new (_ZoneFunctionOfCreateTimerHandler())(this, specification.createTimer) : this.parent[_createTimer];
-      this[_createPeriodicTimer] = specification.createPeriodicTimer != null ? new (_ZoneFunctionOfCreatePeriodicTimerHandler())(this, specification.createPeriodicTimer) : this.parent[_createPeriodicTimer];
-      this[_print] = specification.print != null ? new (_ZoneFunctionOfPrintHandler())(this, specification.print) : this.parent[_print];
-      this[_fork] = specification.fork != null ? new (_ZoneFunctionOfForkHandler())(this, specification.fork) : this.parent[_fork];
-      this[_handleUncaughtError] = specification.handleUncaughtError != null ? new (_ZoneFunctionOfHandleUncaughtErrorHandler())(this, specification.handleUncaughtError) : this.parent[_handleUncaughtError];
-    }
-    get errorZone() {
-      return this[_handleUncaughtError].zone;
-    }
-    runGuarded(R) {
-      return f => {
-        try {
-          return this.run(R)(f);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          return this.handleUncaughtError(R)(e, s);
-        }
-
-      };
-    }
-    runUnaryGuarded(R, T) {
-      return (f, arg) => {
-        try {
-          return this.runUnary(R, T)(f, arg);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          return this.handleUncaughtError(R)(e, s);
-        }
-
-      };
-    }
-    runBinaryGuarded(R, T1, T2) {
-      return (f, arg1, arg2) => {
-        try {
-          return this.runBinary(R, T1, T2)(f, arg1, arg2);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          return this.handleUncaughtError(R)(e, s);
-        }
-
-      };
-    }
-    bindCallback(R) {
-      return (f, opts) => {
-        let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
-        let registered = this.registerCallback(R)(f);
-        if (dart.test(runGuarded)) {
-          return dart.fn(() => this.runGuarded(R)(registered), dart.definiteFunctionType(R, []));
-        } else {
-          return dart.fn(() => this.run(R)(registered), dart.definiteFunctionType(R, []));
-        }
-      };
-    }
-    bindUnaryCallback(R, T) {
-      return (f, opts) => {
-        let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
-        let registered = this.registerUnaryCallback(R, T)(f);
-        if (dart.test(runGuarded)) {
-          return dart.fn(arg => this.runUnaryGuarded(R, T)(registered, arg), dart.definiteFunctionType(R, [T]));
-        } else {
-          return dart.fn(arg => this.runUnary(R, T)(registered, arg), dart.definiteFunctionType(R, [T]));
-        }
-      };
-    }
-    bindBinaryCallback(R, T1, T2) {
-      return (f, opts) => {
-        let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
-        let registered = this.registerBinaryCallback(R, T1, T2)(f);
-        if (dart.test(runGuarded)) {
-          return dart.fn((arg1, arg2) => this.runBinaryGuarded(R, T1, T2)(registered, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
-        } else {
-          return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2)(registered, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
-        }
-      };
-    }
-    _get(key) {
-      let result = this[_map$][dartx._get](key);
-      if (result != null || dart.test(this[_map$][dartx.containsKey](key))) return result;
-      if (this.parent != null) {
-        let value = this.parent._get(key);
-        if (value != null) {
-          this[_map$][dartx._set](key, value);
-        }
-        return value;
-      }
-      dart.assert(dart.equals(this, async._ROOT_ZONE));
-      return null;
-    }
-    handleUncaughtError(R) {
-      return (error, stackTrace) => {
-        let implementation = this[_handleUncaughtError];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return R.as(dart.dcall(handler, implementation.zone, parentDelegate, this, error, stackTrace));
-      };
-    }
-    fork(opts) {
-      let specification = opts && 'specification' in opts ? opts.specification : null;
-      let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
-      let implementation = this[_fork];
-      dart.assert(implementation != null);
-      let parentDelegate = async._parentDelegate(implementation.zone);
-      let handler = implementation.function;
-      return handler(implementation.zone, parentDelegate, this, specification, zoneValues);
-    }
-    run(R) {
-      return f => {
-        let implementation = this[_run];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return R.as(handler(implementation.zone, parentDelegate, this, f));
-      };
-    }
-    runUnary(R, T) {
-      return (f, arg) => {
-        let implementation = this[_runUnary];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return R.as(dart.dcall(handler, implementation.zone, parentDelegate, this, f, arg));
-      };
-    }
-    runBinary(R, T1, T2) {
-      return (f, arg1, arg2) => {
-        let implementation = this[_runBinary];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return R.as(dart.dcall(handler, implementation.zone, parentDelegate, this, f, arg1, arg2));
-      };
-    }
-    registerCallback(R) {
-      return callback => {
-        let implementation = this[_registerCallback];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return async.ZoneCallback$(R).as(handler(implementation.zone, parentDelegate, this, callback));
-      };
-    }
-    registerUnaryCallback(R, T) {
-      return callback => {
-        let implementation = this[_registerUnaryCallback];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return async.ZoneUnaryCallback$(R, T).as(handler(implementation.zone, parentDelegate, this, callback));
-      };
-    }
-    registerBinaryCallback(R, T1, T2) {
-      return callback => {
-        let implementation = this[_registerBinaryCallback];
-        dart.assert(implementation != null);
-        let parentDelegate = async._parentDelegate(implementation.zone);
-        let handler = implementation.function;
-        return async.ZoneBinaryCallback$(R, T1, T2).as(handler(implementation.zone, parentDelegate, this, callback));
-      };
-    }
-    errorCallback(error, stackTrace) {
-      let implementation = this[_errorCallback];
-      dart.assert(implementation != null);
-      let implementationZone = implementation.zone;
-      if (core.identical(implementationZone, async._ROOT_ZONE)) return null;
-      let parentDelegate = async._parentDelegate(async._Zone._check(implementationZone));
-      let handler = implementation.function;
-      return handler(implementationZone, parentDelegate, this, error, stackTrace);
-    }
-    scheduleMicrotask(f) {
-      let implementation = this[_scheduleMicrotask];
-      dart.assert(implementation != null);
-      let parentDelegate = async._parentDelegate(implementation.zone);
-      let handler = implementation.function;
-      return handler(implementation.zone, parentDelegate, this, f);
-    }
-    createTimer(duration, f) {
-      let implementation = this[_createTimer];
-      dart.assert(implementation != null);
-      let parentDelegate = async._parentDelegate(implementation.zone);
-      let handler = implementation.function;
-      return handler(implementation.zone, parentDelegate, this, duration, f);
-    }
-    createPeriodicTimer(duration, f) {
-      let implementation = this[_createPeriodicTimer];
-      dart.assert(implementation != null);
-      let parentDelegate = async._parentDelegate(implementation.zone);
-      let handler = implementation.function;
-      return handler(implementation.zone, parentDelegate, this, duration, f);
-    }
-    print(line) {
-      let implementation = this[_print];
-      dart.assert(implementation != null);
-      let parentDelegate = async._parentDelegate(implementation.zone);
-      let handler = implementation.function;
-      return handler(implementation.zone, parentDelegate, this, line);
-    }
-  };
-  dart.setSignature(async._CustomZone, {
-    constructors: () => ({new: dart.definiteFunctionType(async._CustomZone, [async._Zone, async.ZoneSpecification, core.Map])}),
-    fields: () => ({
-      [_run]: _ZoneFunctionOfRunHandler(),
-      [_runUnary]: _ZoneFunctionOfRunUnaryHandler(),
-      [_runBinary]: _ZoneFunctionOfRunBinaryHandler(),
-      [_registerCallback]: _ZoneFunctionOfRegisterCallbackHandler(),
-      [_registerUnaryCallback]: _ZoneFunctionOfRegisterUnaryCallbackHandler(),
-      [_registerBinaryCallback]: _ZoneFunctionOfRegisterBinaryCallbackHandler(),
-      [_errorCallback]: _ZoneFunctionOfErrorCallbackHandler(),
-      [_scheduleMicrotask]: _ZoneFunctionOfScheduleMicrotaskHandler(),
-      [_createTimer]: _ZoneFunctionOfCreateTimerHandler(),
-      [_createPeriodicTimer]: _ZoneFunctionOfCreatePeriodicTimerHandler(),
-      [_print]: _ZoneFunctionOfPrintHandler(),
-      [_fork]: _ZoneFunctionOfForkHandler(),
-      [_handleUncaughtError]: _ZoneFunctionOfHandleUncaughtErrorHandler(),
-      [_delegateCache]: async.ZoneDelegate,
-      parent: async._Zone,
-      [_map$]: core.Map
-    }),
-    getters: () => ({
-      [_delegate]: dart.definiteFunctionType(async.ZoneDelegate, []),
-      errorZone: dart.definiteFunctionType(async.Zone, [])
-    }),
-    methods: () => ({
-      runGuarded: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
-      runUnaryGuarded: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
-      runBinaryGuarded: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
-      bindCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])], {runGuarded: core.bool}]),
-      bindUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])], {runGuarded: core.bool}]),
-      bindBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])], {runGuarded: core.bool}]),
-      _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
-      handleUncaughtError: dart.definiteFunctionType(R => [R, [dart.dynamic, core.StackTrace]]),
-      fork: dart.definiteFunctionType(async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}),
-      run: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
-      runUnary: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
-      runBinary: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
-      registerCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])]]),
-      registerUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])]]),
-      registerBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])]]),
-      errorCallback: dart.definiteFunctionType(async.AsyncError, [core.Object, core.StackTrace]),
-      scheduleMicrotask: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      createTimer: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
-      createPeriodicTimer: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()]),
-      print: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  async._rootHandleUncaughtError = function(R) {
-    return (self, parent, zone, error, stackTrace) => {
-      async._schedulePriorityAsyncCallback(dart.fn(() => {
-        if (error == null) error = new core.NullThrownError();
-        if (stackTrace == null) dart.throw(error);
-        async._rethrow(error, stackTrace);
-      }, VoidToNull()));
-    };
-  };
-  dart.lazyFn(async._rootHandleUncaughtError, () => ZoneAndZoneDelegateAndZone__ToR());
-  async._rethrow = function(error, stackTrace) {
-    error.stack = dart.toString(stackTrace);
-    throw error;
-  };
-  dart.lazyFn(async._rethrow, () => ObjectAndStackTraceTovoid());
-  async._rootRun = function(R) {
-    return (self, parent, zone, f) => {
-      if (dart.equals(async.Zone._current, zone)) return f();
-      let old = async.Zone._enter(zone);
-      try {
-        return f();
-      } finally {
-        async.Zone._leave(old);
-      }
-    };
-  };
-  dart.fn(async._rootRun, ZoneAndZoneDelegateAndZone__ToR$());
-  async._rootRunUnary = function(R, T) {
-    return (self, parent, zone, f, arg) => {
-      if (dart.equals(async.Zone._current, zone)) return f(arg);
-      let old = async.Zone._enter(zone);
-      try {
-        return f(arg);
-      } finally {
-        async.Zone._leave(old);
-      }
-    };
-  };
-  dart.fn(async._rootRunUnary, ZoneAndZoneDelegateAndZone__ToR$0());
-  async._rootRunBinary = function(R, T1, T2) {
-    return (self, parent, zone, f, arg1, arg2) => {
-      if (dart.equals(async.Zone._current, zone)) return f(arg1, arg2);
-      let old = async.Zone._enter(zone);
-      try {
-        return f(arg1, arg2);
-      } finally {
-        async.Zone._leave(old);
-      }
-    };
-  };
-  dart.fn(async._rootRunBinary, ZoneAndZoneDelegateAndZone__ToR$1());
-  async._rootRegisterCallback = function(R) {
-    return (self, parent, zone, f) => {
-      return f;
-    };
-  };
-  dart.fn(async._rootRegisterCallback, ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR());
-  async._rootRegisterUnaryCallback = function(R, T) {
-    return (self, parent, zone, f) => {
-      return f;
-    };
-  };
-  dart.fn(async._rootRegisterUnaryCallback, ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T());
-  async._rootRegisterBinaryCallback = function(R, T1, T2) {
-    return (self, parent, zone, f) => {
-      return f;
-    };
-  };
-  dart.fn(async._rootRegisterBinaryCallback, ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2());
-  async._rootErrorCallback = function(self, parent, zone, error, stackTrace) {
-    return null;
-  };
-  dart.lazyFn(async._rootErrorCallback, () => ZoneAndZoneDelegateAndZone__ToAsyncError());
-  async._rootScheduleMicrotask = function(self, parent, zone, f) {
-    if (!core.identical(async._ROOT_ZONE, zone)) {
-      let hasErrorHandler = !dart.test(async._ROOT_ZONE.inSameErrorZone(zone));
-      f = zone.bindCallback(dart.dynamic)(f, {runGuarded: hasErrorHandler});
-      zone = async._ROOT_ZONE;
-    }
-    async._scheduleAsyncCallback(f);
-  };
-  dart.fn(async._rootScheduleMicrotask, ZoneAndZoneDelegateAndZone__Tovoid());
-  async._rootCreateTimer = function(self, parent, zone, duration, callback) {
-    if (!core.identical(async._ROOT_ZONE, zone)) {
-      callback = zone.bindCallback(dart.void)(callback);
-    }
-    return async.Timer._createTimer(duration, callback);
-  };
-  dart.lazyFn(async._rootCreateTimer, () => ZoneAndZoneDelegateAndZone__ToTimer());
-  async._rootCreatePeriodicTimer = function(self, parent, zone, duration, callback) {
-    if (!core.identical(async._ROOT_ZONE, zone)) {
-      callback = zone.bindUnaryCallback(dart.dynamic, async.Timer)(callback);
-    }
-    return async.Timer._createPeriodicTimer(duration, callback);
-  };
-  dart.lazyFn(async._rootCreatePeriodicTimer, () => ZoneAndZoneDelegateAndZone__ToTimer$());
-  async._rootPrint = function(self, parent, zone, line) {
-    _internal.printToConsole(line);
-  };
-  dart.lazyFn(async._rootPrint, () => ZoneAndZoneDelegateAndZone__Tovoid$());
-  async._printToZone = function(line) {
-    async.Zone.current.print(line);
-  };
-  dart.lazyFn(async._printToZone, () => StringTovoid$());
-  let const$11;
-  async._rootFork = function(self, parent, zone, specification, zoneValues) {
-    _internal.printToZone = async._printToZone;
-    if (specification == null) {
-      specification = const$11 || (const$11 = dart.const(async.ZoneSpecification.new()));
-    } else if (!async._ZoneSpecification.is(specification)) {
-      dart.throw(new core.ArgumentError("ZoneSpecifications must be instantiated" + " with the provided constructor."));
-    }
-    let valueMap = null;
-    if (zoneValues == null) {
-      if (async._Zone.is(zone)) {
-        valueMap = zone[_map$];
-      } else {
-        valueMap = collection.HashMap.new();
-      }
-    } else {
-      valueMap = collection.HashMap.from(zoneValues);
-    }
-    return new async._CustomZone(async._Zone._check(zone), specification, valueMap);
-  };
-  dart.lazyFn(async._rootFork, () => ZoneAndZoneDelegateAndZone__ToZone());
-  let const$12;
-  let const$13;
-  let const$14;
-  let const$15;
-  let const$16;
-  let const$17;
-  let const$18;
-  let const$19;
-  let const$20;
-  let const$21;
-  let const$22;
-  let const$23;
-  let const$24;
-  async._RootZone = class _RootZone extends async._Zone {
-    new() {
-      super.new();
-    }
-    get [_run]() {
-      return const$12 || (const$12 = dart.const(new (_ZoneFunctionOfRunHandler())(async._ROOT_ZONE, dart.gbind(async._rootRun, dart.dynamic))));
-    }
-    get [_runUnary]() {
-      return const$13 || (const$13 = dart.const(new (_ZoneFunctionOfRunUnaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunUnary, dart.dynamic, dart.dynamic))));
-    }
-    get [_runBinary]() {
-      return const$14 || (const$14 = dart.const(new (_ZoneFunctionOfRunBinaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunBinary, dart.dynamic, dart.dynamic, dart.dynamic))));
-    }
-    get [_registerCallback]() {
-      return const$15 || (const$15 = dart.const(new (_ZoneFunctionOfRegisterCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterCallback, dart.dynamic))));
-    }
-    get [_registerUnaryCallback]() {
-      return const$16 || (const$16 = dart.const(new (_ZoneFunctionOfRegisterUnaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterUnaryCallback, dart.dynamic, dart.dynamic))));
-    }
-    get [_registerBinaryCallback]() {
-      return const$17 || (const$17 = dart.const(new (_ZoneFunctionOfRegisterBinaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterBinaryCallback, dart.dynamic, dart.dynamic, dart.dynamic))));
-    }
-    get [_errorCallback]() {
-      return const$18 || (const$18 = dart.const(new (_ZoneFunctionOfErrorCallbackHandler())(async._ROOT_ZONE, async._rootErrorCallback)));
-    }
-    get [_scheduleMicrotask]() {
-      return const$19 || (const$19 = dart.const(new (_ZoneFunctionOfScheduleMicrotaskHandler())(async._ROOT_ZONE, async._rootScheduleMicrotask)));
-    }
-    get [_createTimer]() {
-      return const$20 || (const$20 = dart.const(new (_ZoneFunctionOfCreateTimerHandler())(async._ROOT_ZONE, async._rootCreateTimer)));
-    }
-    get [_createPeriodicTimer]() {
-      return const$21 || (const$21 = dart.const(new (_ZoneFunctionOfCreatePeriodicTimerHandler())(async._ROOT_ZONE, async._rootCreatePeriodicTimer)));
-    }
-    get [_print]() {
-      return const$22 || (const$22 = dart.const(new (_ZoneFunctionOfPrintHandler())(async._ROOT_ZONE, async._rootPrint)));
-    }
-    get [_fork]() {
-      return const$23 || (const$23 = dart.const(new (_ZoneFunctionOfForkHandler())(async._ROOT_ZONE, async._rootFork)));
-    }
-    get [_handleUncaughtError]() {
-      return const$24 || (const$24 = dart.const(new (_ZoneFunctionOfHandleUncaughtErrorHandler())(async._ROOT_ZONE, dart.gbind(async._rootHandleUncaughtError, dart.dynamic))));
-    }
-    get parent() {
-      return null;
-    }
-    get [_map$]() {
-      return async._RootZone._rootMap;
-    }
-    get [_delegate]() {
-      if (async._RootZone._rootDelegate != null) return async._RootZone._rootDelegate;
-      return async._RootZone._rootDelegate = new async._ZoneDelegate(this);
-    }
-    get errorZone() {
-      return this;
-    }
-    runGuarded(R) {
-      return f => {
-        try {
-          if (core.identical(async._ROOT_ZONE, async.Zone._current)) {
-            return f();
-          }
-          return async._rootRun(R)(null, null, this, f);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          return this.handleUncaughtError(R)(e, s);
-        }
-
-      };
-    }
-    runUnaryGuarded(R, T) {
-      return (f, arg) => {
-        try {
-          if (core.identical(async._ROOT_ZONE, async.Zone._current)) {
-            return f(arg);
-          }
-          return async._rootRunUnary(R, T)(null, null, this, f, arg);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          return this.handleUncaughtError(R)(e, s);
-        }
-
-      };
-    }
-    runBinaryGuarded(R, T1, T2) {
-      return (f, arg1, arg2) => {
-        try {
-          if (core.identical(async._ROOT_ZONE, async.Zone._current)) {
-            return f(arg1, arg2);
-          }
-          return async._rootRunBinary(R, T1, T2)(null, null, this, f, arg1, arg2);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          return this.handleUncaughtError(R)(e, s);
-        }
-
-      };
-    }
-    bindCallback(R) {
-      return (f, opts) => {
-        let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
-        if (dart.test(runGuarded)) {
-          return dart.fn(() => this.runGuarded(R)(f), dart.definiteFunctionType(R, []));
-        } else {
-          return dart.fn(() => this.run(R)(f), dart.definiteFunctionType(R, []));
-        }
-      };
-    }
-    bindUnaryCallback(R, T) {
-      return (f, opts) => {
-        let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
-        if (dart.test(runGuarded)) {
-          return dart.fn(arg => this.runUnaryGuarded(R, T)(f, arg), dart.definiteFunctionType(R, [T]));
-        } else {
-          return dart.fn(arg => this.runUnary(R, T)(f, arg), dart.definiteFunctionType(R, [T]));
-        }
-      };
-    }
-    bindBinaryCallback(R, T1, T2) {
-      return (f, opts) => {
-        let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
-        if (dart.test(runGuarded)) {
-          return dart.fn((arg1, arg2) => this.runBinaryGuarded(R, T1, T2)(f, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
-        } else {
-          return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2)(f, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
-        }
-      };
-    }
-    _get(key) {
-      return null;
-    }
-    handleUncaughtError(R) {
-      return (error, stackTrace) => {
-        return async._rootHandleUncaughtError(R)(null, null, this, error, stackTrace);
-      };
-    }
-    fork(opts) {
-      let specification = opts && 'specification' in opts ? opts.specification : null;
-      let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
-      return async._rootFork(null, null, this, specification, zoneValues);
-    }
-    run(R) {
-      return f => {
-        if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f();
-        return async._rootRun(R)(null, null, this, f);
-      };
-    }
-    runUnary(R, T) {
-      return (f, arg) => {
-        if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(arg);
-        return async._rootRunUnary(R, T)(null, null, this, f, arg);
-      };
-    }
-    runBinary(R, T1, T2) {
-      return (f, arg1, arg2) => {
-        if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(arg1, arg2);
-        return async._rootRunBinary(R, T1, T2)(null, null, this, f, arg1, arg2);
-      };
-    }
-    registerCallback(R) {
-      return f => {
-        return f;
-      };
-    }
-    registerUnaryCallback(R, T) {
-      return f => {
-        return f;
-      };
-    }
-    registerBinaryCallback(R, T1, T2) {
-      return f => {
-        return f;
-      };
-    }
-    errorCallback(error, stackTrace) {
-      return null;
-    }
-    scheduleMicrotask(f) {
-      async._rootScheduleMicrotask(null, null, this, f);
-    }
-    createTimer(duration, f) {
-      return async.Timer._createTimer(duration, f);
-    }
-    createPeriodicTimer(duration, f) {
-      return async.Timer._createPeriodicTimer(duration, f);
-    }
-    print(line) {
-      _internal.printToConsole(line);
-    }
-  };
-  dart.setSignature(async._RootZone, {
-    constructors: () => ({new: dart.definiteFunctionType(async._RootZone, [])}),
-    getters: () => ({
-      [_run]: dart.definiteFunctionType(async._ZoneFunction$(async.RunHandler), []),
-      [_runUnary]: dart.definiteFunctionType(async._ZoneFunction$(async.RunUnaryHandler), []),
-      [_runBinary]: dart.definiteFunctionType(async._ZoneFunction$(async.RunBinaryHandler), []),
-      [_registerCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.RegisterCallbackHandler), []),
-      [_registerUnaryCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.RegisterUnaryCallbackHandler), []),
-      [_registerBinaryCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.RegisterBinaryCallbackHandler), []),
-      [_errorCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.ErrorCallbackHandler), []),
-      [_scheduleMicrotask]: dart.definiteFunctionType(async._ZoneFunction$(async.ScheduleMicrotaskHandler), []),
-      [_createTimer]: dart.definiteFunctionType(async._ZoneFunction$(async.CreateTimerHandler), []),
-      [_createPeriodicTimer]: dart.definiteFunctionType(async._ZoneFunction$(async.CreatePeriodicTimerHandler), []),
-      [_print]: dart.definiteFunctionType(async._ZoneFunction$(async.PrintHandler), []),
-      [_fork]: dart.definiteFunctionType(async._ZoneFunction$(async.ForkHandler), []),
-      [_handleUncaughtError]: dart.definiteFunctionType(async._ZoneFunction$(async.HandleUncaughtErrorHandler), []),
-      parent: dart.definiteFunctionType(async._Zone, []),
-      [_map$]: dart.definiteFunctionType(core.Map, []),
-      [_delegate]: dart.definiteFunctionType(async.ZoneDelegate, []),
-      errorZone: dart.definiteFunctionType(async.Zone, [])
-    }),
-    methods: () => ({
-      runGuarded: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
-      runUnaryGuarded: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
-      runBinaryGuarded: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
-      bindCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])], {runGuarded: core.bool}]),
-      bindUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])], {runGuarded: core.bool}]),
-      bindBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])], {runGuarded: core.bool}]),
-      _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
-      handleUncaughtError: dart.definiteFunctionType(R => [R, [dart.dynamic, core.StackTrace]]),
-      fork: dart.definiteFunctionType(async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}),
-      run: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
-      runUnary: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
-      runBinary: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
-      registerCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])]]),
-      registerUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])]]),
-      registerBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])]]),
-      errorCallback: dart.definiteFunctionType(async.AsyncError, [core.Object, core.StackTrace]),
-      scheduleMicrotask: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      createTimer: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
-      createPeriodicTimer: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()]),
-      print: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    sfields: () => ({
-      _rootMap: core.Map,
-      _rootDelegate: async.ZoneDelegate
-    })
-  });
-  async._RootZone._rootDelegate = null;
-  dart.defineLazy(async._RootZone, {
-    get _rootMap() {
-      return collection.HashMap.new();
-    },
-    set _rootMap(_) {}
-  });
-  async._ROOT_ZONE = dart.const(new async._RootZone());
-  async.runZoned = function(R) {
-    return (body, opts) => {
-      let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
-      let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null;
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let errorHandler = null;
-      if (onError != null) {
-        errorHandler = dart.fn((self, parent, zone, error, stackTrace) => {
-          try {
-            if (ZoneBinaryCallbackOfdynamic$dynamic$StackTrace().is(onError)) {
-              return R.as(self.parent.runBinary(dart.dynamic, dart.dynamic, core.StackTrace)(onError, error, stackTrace));
-            }
-            return self.parent.runUnary(dart.dynamic, dart.dynamic)(dynamicTodynamic()._check(onError), error);
-          } catch (e) {
-            let s = dart.stackTrace(e);
-            if (core.identical(e, error)) {
-              return parent.handleUncaughtError(dart.dynamic)(zone, error, stackTrace);
-            } else {
-              return parent.handleUncaughtError(dart.dynamic)(zone, e, s);
-            }
-          }
-
-        }, ZoneAndZoneDelegateAndZone__Todynamic());
-      }
-      if (zoneSpecification == null) {
-        zoneSpecification = async.ZoneSpecification.new({handleUncaughtError: errorHandler});
-      } else if (errorHandler != null) {
-        zoneSpecification = async.ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler});
-      }
-      let zone = async.Zone.current.fork({specification: zoneSpecification, zoneValues: zoneValues});
-      if (onError != null) {
-        return zone.runGuarded(R)(body);
-      } else {
-        return zone.run(R)(body);
-      }
-    };
-  };
-  dart.lazyFn(async.runZoned, () => Fn__ToR());
-  collection._USE_ES6_MAPS = true;
-  const _length$1 = Symbol('_length');
-  const _strings$ = Symbol('_strings');
-  const _nums$ = Symbol('_nums');
-  const _rest$ = Symbol('_rest');
-  const _keys = Symbol('_keys');
-  const _containsKey = Symbol('_containsKey');
-  const _getBucket$ = Symbol('_getBucket');
-  const _findBucketIndex = Symbol('_findBucketIndex');
-  const _computeKeys = Symbol('_computeKeys');
-  const _get = Symbol('_get');
-  const _addHashTableEntry$ = Symbol('_addHashTableEntry');
-  const _set = Symbol('_set');
-  const _computeHashCode = Symbol('_computeHashCode');
-  const _removeHashTableEntry$ = Symbol('_removeHashTableEntry');
-  const _remove = Symbol('_remove');
-  collection._HashMap$ = dart.generic((K, V) => {
-    let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
-    let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let ListOfK = () => (ListOfK = dart.constFn(core.List$(K)))();
-    let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
-    let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
-    class _HashMap extends core.Object {
-      new() {
-        this[_length$1] = 0;
-        this[_strings$] = null;
-        this[_nums$] = null;
-        this[_rest$] = null;
-        this[_keys] = null;
-      }
-      get length() {
-        return this[_length$1];
-      }
-      get isEmpty() {
-        return this[_length$1] == 0;
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      get keys() {
-        return new (_HashMapKeyIterableOfK())(this);
-      }
-      get values() {
-        return MappedIterableOfK$V().new(this.keys, dart.fn(each => this._get(each), KToV()));
-      }
-      containsKey(key) {
-        if (dart.test(collection._HashMap._isStringKey(key))) {
-          let strings = this[_strings$];
-          return strings == null ? false : collection._HashMap._hasTableEntry(strings, key);
-        } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-          let nums = this[_nums$];
-          return nums == null ? false : collection._HashMap._hasTableEntry(nums, key);
-        } else {
-          return this[_containsKey](key);
-        }
-      }
-      [_containsKey](key) {
-        let rest = this[_rest$];
-        if (rest == null) return false;
-        let bucket = this[_getBucket$](rest, key);
-        return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
-      }
-      containsValue(value) {
-        return this[_computeKeys]()[dartx.any](dart.fn(each => dart.equals(this._get(each), value), KTobool()));
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        other[dartx.forEach](dart.fn((key, value) => {
-          this._set(key, value);
-        }, KAndVToNull()));
-      }
-      _get(key) {
-        if (dart.test(collection._HashMap._isStringKey(key))) {
-          let strings = this[_strings$];
-          return V._check(strings == null ? null : collection._HashMap._getTableEntry(strings, key));
-        } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-          let nums = this[_nums$];
-          return V._check(nums == null ? null : collection._HashMap._getTableEntry(nums, key));
-        } else {
-          return this[_get](key);
-        }
-      }
-      [_get](key) {
-        let rest = this[_rest$];
-        if (rest == null) return null;
-        let bucket = this[_getBucket$](rest, key);
-        let index = this[_findBucketIndex](bucket, key);
-        return V._check(dart.notNull(index) < 0 ? null : bucket[dart.notNull(index) + 1]);
-      }
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        if (dart.test(collection._HashMap._isStringKey(key))) {
-          let strings = this[_strings$];
-          if (strings == null) this[_strings$] = strings = collection._HashMap._newHashTable();
-          this[_addHashTableEntry$](strings, key, value);
-        } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-          let nums = this[_nums$];
-          if (nums == null) this[_nums$] = nums = collection._HashMap._newHashTable();
-          this[_addHashTableEntry$](nums, key, value);
-        } else {
-          this[_set](key, value);
-        }
-        return value;
-      }
-      [_set](key, value) {
-        K._check(key);
-        V._check(value);
-        let rest = this[_rest$];
-        if (rest == null) this[_rest$] = rest = collection._HashMap._newHashTable();
-        let hash = this[_computeHashCode](key);
-        let bucket = rest[hash];
-        if (bucket == null) {
-          collection._HashMap._setTableEntry(rest, hash, [key, value]);
-          this[_length$1] = dart.notNull(this[_length$1]) + 1;
-          this[_keys] = null;
-        } else {
-          let index = this[_findBucketIndex](bucket, key);
-          if (dart.notNull(index) >= 0) {
-            bucket[dart.notNull(index) + 1] = value;
-          } else {
-            bucket.push(key, value);
-            this[_length$1] = dart.notNull(this[_length$1]) + 1;
-            this[_keys] = null;
-          }
-        }
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        if (dart.test(this.containsKey(key))) return this._get(key);
-        let value = ifAbsent();
-        this._set(key, value);
-        return value;
-      }
-      remove(key) {
-        if (dart.test(collection._HashMap._isStringKey(key))) {
-          return this[_removeHashTableEntry$](this[_strings$], key);
-        } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-          return this[_removeHashTableEntry$](this[_nums$], key);
-        } else {
-          return this[_remove](key);
-        }
-      }
-      [_remove](key) {
-        let rest = this[_rest$];
-        if (rest == null) return null;
-        let bucket = this[_getBucket$](rest, key);
-        let index = this[_findBucketIndex](bucket, key);
-        if (dart.notNull(index) < 0) return null;
-        this[_length$1] = dart.notNull(this[_length$1]) - 1;
-        this[_keys] = null;
-        return bucket.splice(index, 2)[1];
-      }
-      clear() {
-        if (dart.notNull(this[_length$1]) > 0) {
-          this[_strings$] = this[_nums$] = this[_rest$] = this[_keys] = null;
-          this[_length$1] = 0;
-        }
-      }
-      forEach(action) {
-        let keys = this[_computeKeys]();
-        for (let i = 0, length = keys[dartx.length]; i < dart.notNull(length); i++) {
-          let key = keys[i];
-          action(K._check(key), this._get(key));
-          if (keys !== this[_keys]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-      }
-      [_computeKeys]() {
-        if (this[_keys] != null) return this[_keys];
-        let result = ListOfK().new(this[_length$1]);
-        let index = 0;
-        let strings = this[_strings$];
-        if (strings != null) {
-          let names = Object.getOwnPropertyNames(strings);
-          let entries = names.length;
-          for (let i = 0; i < entries; i++) {
-            let key = names[i];
-            result[index] = key;
-            index++;
-          }
-        }
-        let nums = this[_nums$];
-        if (nums != null) {
-          let names = Object.getOwnPropertyNames(nums);
-          let entries = names.length;
-          for (let i = 0; i < entries; i++) {
-            let key = +names[i];
-            result[index] = key;
-            index++;
-          }
-        }
-        let rest = this[_rest$];
-        if (rest != null) {
-          let names = Object.getOwnPropertyNames(rest);
-          let entries = names.length;
-          for (let i = 0; i < entries; i++) {
-            let key = names[i];
-            let bucket = rest[key];
-            let length = bucket.length;
-            for (let i = 0; i < length; i = i + 2) {
-              let key = bucket[i];
-              result[index] = key;
-              index++;
-            }
-          }
-        }
-        dart.assert(index == this[_length$1]);
-        return this[_keys] = result;
-      }
-      [_addHashTableEntry$](table, key, value) {
-        K._check(key);
-        V._check(value);
-        if (!dart.test(collection._HashMap._hasTableEntry(table, key))) {
-          this[_length$1] = dart.notNull(this[_length$1]) + 1;
-          this[_keys] = null;
-        }
-        collection._HashMap._setTableEntry(table, key, value);
-      }
-      [_removeHashTableEntry$](table, key) {
-        if (table != null && dart.test(collection._HashMap._hasTableEntry(table, key))) {
-          let value = V._check(collection._HashMap._getTableEntry(table, key));
-          collection._HashMap._deleteTableEntry(table, key);
-          this[_length$1] = dart.notNull(this[_length$1]) - 1;
-          this[_keys] = null;
-          return value;
-        } else {
-          return null;
-        }
-      }
-      static _isStringKey(key) {
-        return typeof key == 'string' && key != '__proto__';
-      }
-      static _isNumericKey(key) {
-        return typeof key == 'number' && (key & 0x3ffffff) === key;
-      }
-      [_computeHashCode](key) {
-        return dart.hashCode(key) & 0x3ffffff;
-      }
-      static _hasTableEntry(table, key) {
-        let entry = table[key];
-        return entry != null;
-      }
-      static _getTableEntry(table, key) {
-        let entry = table[key];
-        return entry === table ? null : entry;
-      }
-      static _setTableEntry(table, key, value) {
-        if (value == null) {
-          table[key] = table;
-        } else {
-          table[key] = value;
-        }
-      }
-      static _deleteTableEntry(table, key) {
-        delete table[key];
-      }
-      [_getBucket$](table, key) {
-        let hash = this[_computeHashCode](key);
-        return table[hash];
-      }
-      [_findBucketIndex](bucket, key) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i = i + 2) {
-          if (dart.equals(bucket[i], key)) return i;
-        }
-        return -1;
-      }
-      static _newHashTable() {
-        let table = Object.create(null);
-        let temporaryKey = '<non-identifier-key>';
-        collection._HashMap._setTableEntry(table, temporaryKey, table);
-        collection._HashMap._deleteTableEntry(table, temporaryKey);
-        return table;
-      }
-    }
-    dart.addTypeTests(_HashMap);
-    _HashMap[dart.implements] = () => [HashMapOfK$V()];
-    dart.setSignature(_HashMap, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._HashMap$(K, V), [])}),
-      fields: () => ({
-        [_length$1]: core.int,
-        [_strings$]: dart.dynamic,
-        [_nums$]: dart.dynamic,
-        [_rest$]: dart.dynamic,
-        [_keys]: ListOfK()
-      }),
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        keys: dart.definiteFunctionType(core.Iterable$(K), []),
-        values: dart.definiteFunctionType(core.Iterable$(V), [])
-      }),
-      methods: () => ({
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_containsKey]: dart.definiteFunctionType(core.bool, [core.Object]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
-        _get: dart.definiteFunctionType(V, [core.Object]),
-        [_get]: dart.definiteFunctionType(V, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [K, V]),
-        [_set]: dart.definiteFunctionType(dart.void, [K, V]),
-        putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
-        remove: dart.definiteFunctionType(V, [core.Object]),
-        [_remove]: dart.definiteFunctionType(V, [core.Object]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
-        [_computeKeys]: dart.definiteFunctionType(core.List$(K), []),
-        [_addHashTableEntry$]: dart.definiteFunctionType(dart.void, [dart.dynamic, K, V]),
-        [_removeHashTableEntry$]: dart.definiteFunctionType(V, [dart.dynamic, core.Object]),
-        [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
-        [_getBucket$]: dart.definiteFunctionType(core.List, [dart.dynamic, dart.dynamic]),
-        [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, core.Object])
-      }),
-      statics: () => ({
-        _isStringKey: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _isNumericKey: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _hasTableEntry: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-        _getTableEntry: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-        _setTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-        _deleteTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-        _newHashTable: dart.definiteFunctionType(dart.dynamic, [])
-      }),
-      names: ['_isStringKey', '_isNumericKey', '_hasTableEntry', '_getTableEntry', '_setTableEntry', '_deleteTableEntry', '_newHashTable']
-    });
-    dart.defineExtensionMembers(_HashMap, [
-      'containsKey',
-      'containsValue',
-      'addAll',
-      '_get',
-      '_set',
-      'putIfAbsent',
-      'remove',
-      'clear',
-      'forEach',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'keys',
-      'values'
-    ]);
-    return _HashMap;
-  });
-  collection._HashMap = _HashMap();
-  collection._IdentityHashMap$ = dart.generic((K, V) => {
-    class _IdentityHashMap extends collection._HashMap$(K, V) {
-      new() {
-        super.new();
-      }
-      [_computeHashCode](key) {
-        return core.identityHashCode(key) & 0x3ffffff;
-      }
-      [_findBucketIndex](bucket, key) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i = i + 2) {
-          if (core.identical(bucket[i], key)) return i;
-        }
-        return -1;
-      }
-    }
-    return _IdentityHashMap;
-  });
-  collection._IdentityHashMap = _IdentityHashMap();
-  const _equals$ = Symbol('_equals');
-  const _hashCode = Symbol('_hashCode');
-  const _validKey = Symbol('_validKey');
-  collection._CustomHashMap$ = dart.generic((K, V) => {
-    let _EqualityOfK = () => (_EqualityOfK = dart.constFn(collection._Equality$(K)))();
-    let _HasherOfK = () => (_HasherOfK = dart.constFn(collection._Hasher$(K)))();
-    class _CustomHashMap extends collection._HashMap$(K, V) {
-      new(equals, hashCode, validKey) {
-        this[_equals$] = equals;
-        this[_hashCode] = hashCode;
-        this[_validKey] = validKey != null ? validKey : dart.fn(v => K.is(v), ObjectTobool());
-        super.new();
-      }
-      _get(key) {
-        if (!dart.test(this[_validKey](key))) return null;
-        return super[_get](key);
-      }
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        super[_set](key, value);
-        return value;
-      }
-      containsKey(key) {
-        if (!dart.test(this[_validKey](key))) return false;
-        return super[_containsKey](key);
-      }
-      remove(key) {
-        if (!dart.test(this[_validKey](key))) return null;
-        return super[_remove](key);
-      }
-      [_computeHashCode](key) {
-        return this[_hashCode](K._check(key)) & 0x3ffffff;
-      }
-      [_findBucketIndex](bucket, key) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i = i + 2) {
-          if (dart.test(this[_equals$](bucket[i], K._check(key)))) return i;
-        }
-        return -1;
-      }
-      toString() {
-        return collection.Maps.mapToString(this);
-      }
-    }
-    dart.setSignature(_CustomHashMap, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._CustomHashMap$(K, V), [_EqualityOfK(), _HasherOfK(), _PredicateOfObject()])}),
-      fields: () => ({
-        [_equals$]: _EqualityOfK(),
-        [_hashCode]: _HasherOfK(),
-        [_validKey]: _PredicateOfObject()
-      })
-    });
-    dart.defineExtensionMembers(_CustomHashMap, ['_get', '_set', 'containsKey', 'remove']);
-    return _CustomHashMap;
-  });
-  collection._CustomHashMap = _CustomHashMap();
-  const _map$0 = Symbol('_map');
-  collection._HashMapKeyIterable$ = dart.generic(E => {
-    let _HashMapKeyIteratorOfE = () => (_HashMapKeyIteratorOfE = dart.constFn(collection._HashMapKeyIterator$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let _HashMapOfE$dynamic = () => (_HashMapOfE$dynamic = dart.constFn(collection._HashMap$(E, dart.dynamic)))();
-    class _HashMapKeyIterable extends core.Iterable$(E) {
-      new(map) {
-        this[_map$0] = map;
-        super.new();
-      }
-      get length() {
-        return this[_map$0][_length$1];
-      }
-      get isEmpty() {
-        return this[_map$0][_length$1] == 0;
-      }
-      get iterator() {
-        return new (_HashMapKeyIteratorOfE())(this[_map$0], this[_map$0][_computeKeys]());
-      }
-      contains(element) {
-        return this[_map$0].containsKey(element);
-      }
-      forEach(f) {
-        let keys = this[_map$0][_computeKeys]();
-        for (let i = 0, length = keys.length; i < length; i++) {
-          f(keys[i]);
-          if (keys !== this[_map$0][_keys]) {
-            dart.throw(new core.ConcurrentModificationError(this[_map$0]));
-          }
-        }
-      }
-    }
-    _HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(_HashMapKeyIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._HashMapKeyIterable$(E), [_HashMapOfE$dynamic()])}),
-      fields: () => ({[_map$0]: _HashMapOfE$dynamic()}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(_HashMapKeyIterable, [
-      'contains',
-      'forEach',
-      'length',
-      'isEmpty',
-      'iterator'
-    ]);
-    return _HashMapKeyIterable;
-  });
-  collection._HashMapKeyIterable = _HashMapKeyIterable();
-  const _offset = Symbol('_offset');
-  const _current$2 = Symbol('_current');
-  collection._HashMapKeyIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let _HashMapOfE$dynamic = () => (_HashMapOfE$dynamic = dart.constFn(collection._HashMap$(E, dart.dynamic)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    class _HashMapKeyIterator extends core.Object {
-      new(map, keys) {
-        this[_map$0] = map;
-        this[_keys] = keys;
-        this[_offset] = 0;
-        this[_current$2] = null;
-      }
-      get current() {
-        return this[_current$2];
-      }
-      moveNext() {
-        let keys = this[_keys];
-        let offset = this[_offset];
-        if (keys !== this[_map$0][_keys]) {
-          dart.throw(new core.ConcurrentModificationError(this[_map$0]));
-        } else if (dart.notNull(offset) >= keys.length) {
-          this[_current$2] = null;
-          return false;
-        } else {
-          this[_current$2] = keys[offset];
-          this[_offset] = dart.notNull(offset) + 1;
-          return true;
-        }
-      }
-    }
-    dart.addTypeTests(_HashMapKeyIterator);
-    _HashMapKeyIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_HashMapKeyIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._HashMapKeyIterator$(E), [_HashMapOfE$dynamic(), ListOfE()])}),
-      fields: () => ({
-        [_map$0]: _HashMapOfE$dynamic(),
-        [_keys]: ListOfE(),
-        [_offset]: core.int,
-        [_current$2]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _HashMapKeyIterator;
-  });
-  collection._HashMapKeyIterator = _HashMapKeyIterator();
-  collection._LinkedIdentityHashMap$ = dart.generic((K, V) => {
-    let _Es6LinkedIdentityHashMapOfK$V = () => (_Es6LinkedIdentityHashMapOfK$V = dart.constFn(collection._Es6LinkedIdentityHashMap$(K, V)))();
-    let _LinkedIdentityHashMapOfK$V = () => (_LinkedIdentityHashMapOfK$V = dart.constFn(collection._LinkedIdentityHashMap$(K, V)))();
-    class _LinkedIdentityHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
-      static get _supportsEs6Maps() {
-        return true;
-      }
-      static es6() {
-        return collection._USE_ES6_MAPS && dart.test(collection._LinkedIdentityHashMap._supportsEs6Maps) ? new (_Es6LinkedIdentityHashMapOfK$V())() : new (_LinkedIdentityHashMapOfK$V())();
-      }
-      new() {
-        super.new();
-      }
-      internalComputeHashCode(key) {
-        return core.identityHashCode(key) & 0x3ffffff;
-      }
-      internalFindBucketIndex(bucket, key) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          let cell = bucket[i];
-          if (core.identical(cell.hashMapCellKey, key)) return i;
-        }
-        return -1;
-      }
-    }
-    dart.setSignature(_LinkedIdentityHashMap, {
-      constructors: () => ({
-        es6: dart.definiteFunctionType(collection._LinkedIdentityHashMap$(K, V), []),
-        new: dart.definiteFunctionType(collection._LinkedIdentityHashMap$(K, V), [])
-      }),
-      sgetters: () => ({_supportsEs6Maps: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _LinkedIdentityHashMap;
-  });
-  collection._LinkedIdentityHashMap = _LinkedIdentityHashMap();
-  const _modifications$ = Symbol('_modifications');
-  const _modified$ = Symbol('_modified');
-  collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
-    let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
-    let _Es6MapIterableOfV = () => (_Es6MapIterableOfV = dart.constFn(collection._Es6MapIterable$(V)))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
-    let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
-    class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
-      new() {
-        this[_map$0] = new Map();
-        this[_modifications$] = 0;
-        super.new();
-      }
-      get length() {
-        return this[_map$0].size;
-      }
-      get isEmpty() {
-        return this.length == 0;
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      get keys() {
-        return new (_Es6MapIterableOfK())(this, true);
-      }
-      get values() {
-        return new (_Es6MapIterableOfV())(this, false);
-      }
-      containsKey(key) {
-        return this[_map$0].has(key);
-      }
-      containsValue(value) {
-        return this.values[dartx.any](dart.fn(each => dart.equals(each, value), VTobool()));
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        other[dartx.forEach](dart.fn((key, value) => {
-          this._set(key, value);
-        }, KAndVToNull()));
-      }
-      _get(key) {
-        return this[_map$0].get(key);
-      }
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        this[_map$0].set(key, value);
-        this[_modified$]();
-        return value;
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        if (dart.test(this.containsKey(key))) return this._get(key);
-        let value = ifAbsent();
-        this._set(key, value);
-        return value;
-      }
-      remove(key) {
-        let value = this._get(key);
-        this[_map$0].delete(key);
-        this[_modified$]();
-        return value;
-      }
-      clear() {
-        this[_map$0].clear();
-        this[_modified$]();
-      }
-      forEach(action) {
-        let jsEntries = this[_map$0].entries();
-        let modifications = this[_modifications$];
-        while (true) {
-          let next = jsEntries.next();
-          let done = next.done;
-          if (done) break;
-          let entry = next.value;
-          let key = entry[0];
-          let value = entry[1];
-          action(K._check(key), V._check(value));
-          if (modifications != this[_modifications$]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-        }
-      }
-      [_modified$]() {
-        this[_modifications$] = dart.notNull(this[_modifications$]) + 1 & 67108863;
-      }
-      toString() {
-        return collection.Maps.mapToString(this);
-      }
-    }
-    _Es6LinkedIdentityHashMap[dart.implements] = () => [InternalMapOfK$V()];
-    dart.setSignature(_Es6LinkedIdentityHashMap, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._Es6LinkedIdentityHashMap$(K, V), [])}),
-      fields: () => ({
-        [_map$0]: dart.dynamic,
-        [_modifications$]: core.int
-      }),
-      methods: () => ({[_modified$]: dart.definiteFunctionType(dart.void, [])})
-    });
-    dart.defineExtensionMembers(_Es6LinkedIdentityHashMap, [
-      'containsKey',
-      'containsValue',
-      'addAll',
-      '_get',
-      '_set',
-      'putIfAbsent',
-      'remove',
-      'clear',
-      'forEach',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'keys',
-      'values'
-    ]);
-    return _Es6LinkedIdentityHashMap;
-  });
-  collection._Es6LinkedIdentityHashMap = _Es6LinkedIdentityHashMap();
-  const _isKeys = Symbol('_isKeys');
-  collection._Es6MapIterable$ = dart.generic(E => {
-    let _Es6MapIteratorOfE = () => (_Es6MapIteratorOfE = dart.constFn(collection._Es6MapIterator$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    class _Es6MapIterable extends core.Iterable$(E) {
-      new(map, isKeys) {
-        this[_map$0] = map;
-        this[_isKeys] = isKeys;
-        super.new();
-      }
-      get length() {
-        return core.int._check(dart.dload(this[_map$0], 'length'));
-      }
-      get isEmpty() {
-        return core.bool._check(dart.dload(this[_map$0], 'isEmpty'));
-      }
-      get iterator() {
-        return new (_Es6MapIteratorOfE())(this[_map$0], core.int._check(dart.dload(this[_map$0], _modifications$)), this[_isKeys]);
-      }
-      contains(element) {
-        return core.bool._check(dart.dsend(this[_map$0], 'containsKey', element));
-      }
-      forEach(f) {
-        let jsIterator = null;
-        if (dart.test(this[_isKeys])) {
-          jsIterator = dart.dload(this[_map$0], _map$0).keys();
-        } else {
-          jsIterator = dart.dload(this[_map$0], _map$0).values();
-        }
-        let modifications = core.int._check(dart.dload(this[_map$0], _modifications$));
-        while (true) {
-          let next = jsIterator.next();
-          let done = next.done;
-          if (done) break;
-          let value = next.value;
-          f(E._check(value));
-          if (!dart.equals(modifications, dart.dload(this[_map$0], _modifications$))) {
-            dart.throw(new core.ConcurrentModificationError(this[_map$0]));
-          }
-        }
-      }
-    }
-    _Es6MapIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(_Es6MapIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._Es6MapIterable$(E), [dart.dynamic, core.bool])}),
-      fields: () => ({
-        [_map$0]: dart.dynamic,
-        [_isKeys]: core.bool
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
-    });
-    dart.defineExtensionMembers(_Es6MapIterable, [
-      'contains',
-      'forEach',
-      'length',
-      'isEmpty',
-      'iterator'
-    ]);
-    return _Es6MapIterable;
-  });
-  collection._Es6MapIterable = _Es6MapIterable();
-  const _jsIterator$ = Symbol('_jsIterator');
-  const _next$0 = Symbol('_next');
-  const _done = Symbol('_done');
-  collection._Es6MapIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class _Es6MapIterator extends core.Object {
-      new(map, modifications, isKeys) {
-        this[_map$0] = map;
-        this[_modifications$] = modifications;
-        this[_isKeys] = isKeys;
-        this[_jsIterator$] = null;
-        this[_next$0] = null;
-        this[_current$2] = null;
-        this[_done] = null;
-        if (dart.test(this[_isKeys])) {
-          this[_jsIterator$] = dart.dload(this[_map$0], _map$0).keys();
-        } else {
-          this[_jsIterator$] = dart.dload(this[_map$0], _map$0).values();
-        }
-        this[_done] = false;
-      }
-      get current() {
-        return this[_current$2];
-      }
-      moveNext() {
-        if (!dart.equals(this[_modifications$], dart.dload(this[_map$0], _modifications$))) {
-          dart.throw(new core.ConcurrentModificationError(this[_map$0]));
-        }
-        if (dart.test(this[_done])) return false;
-        this[_next$0] = this[_jsIterator$].next();
-        let done = this[_next$0].done;
-        if (done) {
-          this[_current$2] = null;
-          this[_done] = true;
-          return false;
-        } else {
-          this[_current$2] = this[_next$0].value;
-          return true;
-        }
-      }
-    }
-    dart.addTypeTests(_Es6MapIterator);
-    _Es6MapIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_Es6MapIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._Es6MapIterator$(E), [dart.dynamic, core.int, core.bool])}),
-      fields: () => ({
-        [_map$0]: dart.dynamic,
-        [_modifications$]: core.int,
-        [_isKeys]: core.bool,
-        [_jsIterator$]: dart.dynamic,
-        [_next$0]: dart.dynamic,
-        [_current$2]: E,
-        [_done]: core.bool
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _Es6MapIterator;
-  });
-  collection._Es6MapIterator = _Es6MapIterator();
-  collection._LinkedCustomHashMap$ = dart.generic((K, V) => {
-    let _EqualityOfK = () => (_EqualityOfK = dart.constFn(collection._Equality$(K)))();
-    let _HasherOfK = () => (_HasherOfK = dart.constFn(collection._Hasher$(K)))();
-    class _LinkedCustomHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
-      new(equals, hashCode, validKey) {
-        this[_equals$] = equals;
-        this[_hashCode] = hashCode;
-        this[_validKey] = validKey != null ? validKey : dart.fn(v => K.is(v), ObjectTobool());
-        super.new();
-      }
-      _get(key) {
-        if (!dart.test(this[_validKey](key))) return null;
-        return super.internalGet(key);
-      }
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        super.internalSet(key, value);
-        return value;
-      }
-      containsKey(key) {
-        if (!dart.test(this[_validKey](key))) return false;
-        return super.internalContainsKey(key);
-      }
-      remove(key) {
-        if (!dart.test(this[_validKey](key))) return null;
-        return super.internalRemove(key);
-      }
-      internalComputeHashCode(key) {
-        return this[_hashCode](K._check(key)) & 0x3ffffff;
-      }
-      internalFindBucketIndex(bucket, key) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          let cell = bucket[i];
-          if (dart.test(this[_equals$](cell.hashMapCellKey, K._check(key)))) return i;
-        }
-        return -1;
-      }
-    }
-    dart.setSignature(_LinkedCustomHashMap, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._LinkedCustomHashMap$(K, V), [_EqualityOfK(), _HasherOfK(), _PredicateOfObject()])}),
-      fields: () => ({
-        [_equals$]: _EqualityOfK(),
-        [_hashCode]: _HasherOfK(),
-        [_validKey]: _PredicateOfObject()
-      })
-    });
-    dart.defineExtensionMembers(_LinkedCustomHashMap, ['_get', '_set', 'containsKey', 'remove']);
-    return _LinkedCustomHashMap;
-  });
-  collection._LinkedCustomHashMap = _LinkedCustomHashMap();
-  const _elements = Symbol('_elements');
-  const _newSet = Symbol('_newSet');
-  const _computeElements = Symbol('_computeElements');
-  const _contains = Symbol('_contains');
-  const _lookup = Symbol('_lookup');
-  const _add$0 = Symbol('_add');
-  collection.SetMixin$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
-    let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
-    let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
-    let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
-    let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
-    let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    class SetMixin extends core.Object {
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this.iterator);
-      }
-      get isEmpty() {
-        return this.length == 0;
-      }
-      get isNotEmpty() {
-        return this.length != 0;
-      }
-      clear() {
-        this.removeAll(this.toList());
-      }
-      addAll(elements) {
-        IterableOfE()._check(elements);
-        for (let element of elements)
-          this.add(element);
-      }
-      removeAll(elements) {
-        for (let element of elements)
-          this.remove(element);
-      }
-      retainAll(elements) {
-        let toRemove = this.toSet();
-        for (let o of elements) {
-          toRemove.remove(o);
-        }
-        this.removeAll(toRemove);
-      }
-      removeWhere(test) {
-        let toRemove = [];
-        for (let element of this) {
-          if (dart.test(test(element))) toRemove[dartx.add](element);
-        }
-        this.removeAll(toRemove);
-      }
-      retainWhere(test) {
-        let toRemove = [];
-        for (let element of this) {
-          if (!dart.test(test(element))) toRemove[dartx.add](element);
-        }
-        this.removeAll(toRemove);
-      }
-      containsAll(other) {
-        for (let o of other) {
-          if (!dart.test(this.contains(o))) return false;
-        }
-        return true;
-      }
-      union(other) {
-        SetOfE()._check(other);
-        let _ = this.toSet();
-        _.addAll(other);
-        return _;
-      }
-      intersection(other) {
-        let result = this.toSet();
-        for (let element of this) {
-          if (!dart.test(other.contains(element))) result.remove(element);
-        }
-        return result;
-      }
-      difference(other) {
-        let result = this.toSet();
-        for (let element of this) {
-          if (dart.test(other.contains(element))) result.remove(element);
-        }
-        return result;
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let result = dart.test(growable) ? (() => {
-          let _ = ListOfE().new();
-          _[dartx.length] = this.length;
-          return _;
-        })() : ListOfE().new(this.length);
-        let i = 0;
-        for (let element of this)
-          result[dartx._set](i++, element);
-        return result;
-      }
-      map(T) {
-        return f => {
-          return new (_internal.EfficientLengthMappedIterable$(E, T))(this, f);
-        };
-      }
-      get single() {
-        if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
-        let it = this.iterator;
-        if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
-        let result = it.current;
-        return result;
-      }
-      toString() {
-        return collection.IterableBase.iterableToFullString(this, '{', '}');
-      }
-      where(f) {
-        return new (WhereIterableOfE())(this, f);
-      }
-      expand(T) {
-        return f => {
-          return new (_internal.ExpandIterable$(E, T))(this, f);
-        };
-      }
-      forEach(f) {
-        for (let element of this)
-          f(element);
-      }
-      reduce(combine) {
-        EAndEToE()._check(combine);
-        let iterator = this.iterator;
-        if (!dart.test(iterator.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let value = iterator.current;
-        while (dart.test(iterator.moveNext())) {
-          value = combine(value, iterator.current);
-        }
-        return value;
-      }
-      fold(T) {
-        return (initialValue, combine) => {
-          let value = initialValue;
-          for (let element of this)
-            value = combine(value, element);
-          return value;
-        };
-      }
-      every(f) {
-        for (let element of this) {
-          if (!dart.test(f(element))) return false;
-        }
-        return true;
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        let iterator = this.iterator;
-        if (!dart.test(iterator.moveNext())) return "";
-        let buffer = new core.StringBuffer();
-        if (separator == null || separator == "") {
-          do {
-            buffer.write(dart.str`${iterator.current}`);
-          } while (dart.test(iterator.moveNext()));
-        } else {
-          buffer.write(dart.str`${iterator.current}`);
-          while (dart.test(iterator.moveNext())) {
-            buffer.write(separator);
-            buffer.write(dart.str`${iterator.current}`);
-          }
-        }
-        return buffer.toString();
-      }
-      any(test) {
-        for (let element of this) {
-          if (dart.test(test(element))) return true;
-        }
-        return false;
-      }
-      take(n) {
-        return TakeIterableOfE().new(this, n);
-      }
-      takeWhile(test) {
-        return new (TakeWhileIterableOfE())(this, test);
-      }
-      skip(n) {
-        return SkipIterableOfE().new(this, n);
-      }
-      skipWhile(test) {
-        return new (SkipWhileIterableOfE())(this, test);
-      }
-      get first() {
-        let it = this.iterator;
-        if (!dart.test(it.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        return it.current;
-      }
-      get last() {
-        let it = this.iterator;
-        if (!dart.test(it.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let result = null;
-        do {
-          result = it.current;
-        } while (dart.test(it.moveNext()));
-        return result;
-      }
-      firstWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        for (let element of this) {
-          if (dart.test(test(element))) return element;
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      lastWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let result = null;
-        let foundMatching = false;
-        for (let element of this) {
-          if (dart.test(test(element))) {
-            result = element;
-            foundMatching = true;
-          }
-        }
-        if (foundMatching) return result;
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      singleWhere(test) {
-        let result = null;
-        let foundMatching = false;
-        for (let element of this) {
-          if (dart.test(test(element))) {
-            if (foundMatching) {
-              dart.throw(_internal.IterableElementError.tooMany());
-            }
-            result = element;
-            foundMatching = true;
-          }
-        }
-        if (foundMatching) return result;
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      elementAt(index) {
-        if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
-        core.RangeError.checkNotNegative(index, "index");
-        let elementIndex = 0;
-        for (let element of this) {
-          if (index == elementIndex) return element;
-          elementIndex++;
-        }
-        dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
-      }
-    }
-    dart.addTypeTests(SetMixin);
-    SetMixin[dart.implements] = () => [SetOfE()];
-    dart.setSignature(SetMixin, {
-      getters: () => ({
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        single: dart.definiteFunctionType(E, []),
-        first: dart.definiteFunctionType(E, []),
-        last: dart.definiteFunctionType(E, [])
-      }),
-      methods: () => ({
-        clear: dart.definiteFunctionType(dart.void, []),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        removeAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
-        retainAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        containsAll: dart.definiteFunctionType(core.bool, [IterableOfObject()]),
-        union: dart.definiteFunctionType(core.Set$(E), [SetOfE()]),
-        intersection: dart.definiteFunctionType(core.Set$(E), [SetOfObject()]),
-        difference: dart.definiteFunctionType(core.Set$(E), [SetOfObject()]),
-        toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
-        map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
-        where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
-        forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
-        reduce: dart.definiteFunctionType(E, [EAndEToE()]),
-        fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
-        every: dart.definiteFunctionType(core.bool, [ETobool()]),
-        join: dart.definiteFunctionType(core.String, [], [core.String]),
-        any: dart.definiteFunctionType(core.bool, [ETobool()]),
-        take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        singleWhere: dart.definiteFunctionType(E, [ETobool()]),
-        elementAt: dart.definiteFunctionType(E, [core.int])
-      })
-    });
-    dart.defineExtensionMembers(SetMixin, [
-      'toList',
-      'map',
-      'toString',
-      'where',
-      'expand',
-      'forEach',
-      'reduce',
-      'fold',
-      'every',
-      'join',
-      'any',
-      'take',
-      'takeWhile',
-      'skip',
-      'skipWhile',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'elementAt',
-      'isEmpty',
-      'isNotEmpty',
-      'single',
-      'first',
-      'last'
-    ]);
-    return SetMixin;
-  });
-  collection.SetMixin = SetMixin();
-  collection.SetBase$ = dart.generic(E => {
-    class SetBase extends collection.SetMixin$(E) {
-      static setToString(set) {
-        return collection.IterableBase.iterableToFullString(set, '{', '}');
-      }
-    }
-    dart.setSignature(SetBase, {
-      statics: () => ({setToString: dart.definiteFunctionType(core.String, [core.Set])}),
-      names: ['setToString']
-    });
-    return SetBase;
-  });
-  collection.SetBase = SetBase();
-  collection._HashSetBase$ = dart.generic(E => {
-    class _HashSetBase extends collection.SetBase$(E) {
-      difference(other) {
-        let result = this[_newSet]();
-        for (let element of this) {
-          if (!dart.test(other.contains(element))) result.add(element);
-        }
-        return result;
-      }
-      intersection(other) {
-        let result = this[_newSet]();
-        for (let element of this) {
-          if (dart.test(other.contains(element))) result.add(element);
-        }
-        return result;
-      }
-      toSet() {
-        return (() => {
-          let _ = this[_newSet]();
-          _.addAll(this);
-          return _;
-        })();
-      }
-    }
-    dart.setSignature(_HashSetBase, {
-      methods: () => ({toSet: dart.definiteFunctionType(core.Set$(E), [])})
-    });
-    dart.defineExtensionMembers(_HashSetBase, ['toSet']);
-    return _HashSetBase;
-  });
-  collection._HashSetBase = _HashSetBase();
-  collection._HashSet$ = dart.generic(E => {
-    let _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
-    let _HashSetIteratorOfE = () => (_HashSetIteratorOfE = dart.constFn(collection._HashSetIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
-    class _HashSet extends collection._HashSetBase$(E) {
-      new() {
-        this[_length$1] = 0;
-        this[_strings$] = null;
-        this[_nums$] = null;
-        this[_rest$] = null;
-        this[_elements] = null;
-      }
-      [_newSet]() {
-        return new (_HashSetOfE())();
-      }
-      get iterator() {
-        return new (_HashSetIteratorOfE())(this, this[_computeElements]());
-      }
-      get length() {
-        return this[_length$1];
-      }
-      get isEmpty() {
-        return this[_length$1] == 0;
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      contains(object) {
-        if (dart.test(collection._HashSet._isStringElement(object))) {
-          let strings = this[_strings$];
-          return strings == null ? false : collection._HashSet._hasTableEntry(strings, object);
-        } else if (dart.test(collection._HashSet._isNumericElement(object))) {
-          let nums = this[_nums$];
-          return nums == null ? false : collection._HashSet._hasTableEntry(nums, object);
-        } else {
-          return this[_contains](object);
-        }
-      }
-      [_contains](object) {
-        let rest = this[_rest$];
-        if (rest == null) return false;
-        let bucket = this[_getBucket$](rest, object);
-        return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
-      }
-      lookup(object) {
-        if (dart.test(collection._HashSet._isStringElement(object)) || dart.test(collection._HashSet._isNumericElement(object))) {
-          return E._check(dart.test(this.contains(object)) ? object : null);
-        }
-        return this[_lookup](object);
-      }
-      [_lookup](object) {
-        let rest = this[_rest$];
-        if (rest == null) return null;
-        let bucket = this[_getBucket$](rest, object);
-        let index = this[_findBucketIndex](bucket, object);
-        if (dart.notNull(index) < 0) return null;
-        return bucket[dartx._get](index);
-      }
-      add(element) {
-        E._check(element);
-        if (dart.test(collection._HashSet._isStringElement(element))) {
-          let strings = this[_strings$];
-          if (strings == null) this[_strings$] = strings = collection._HashSet._newHashTable();
-          return this[_addHashTableEntry$](strings, element);
-        } else if (dart.test(collection._HashSet._isNumericElement(element))) {
-          let nums = this[_nums$];
-          if (nums == null) this[_nums$] = nums = collection._HashSet._newHashTable();
-          return this[_addHashTableEntry$](nums, element);
-        } else {
-          return this[_add$0](element);
-        }
-      }
-      [_add$0](element) {
-        E._check(element);
-        let rest = this[_rest$];
-        if (rest == null) this[_rest$] = rest = collection._HashSet._newHashTable();
-        let hash = this[_computeHashCode](element);
-        let bucket = rest[hash];
-        if (bucket == null) {
-          collection._HashSet._setTableEntry(rest, hash, [element]);
-        } else {
-          let index = this[_findBucketIndex](bucket, element);
-          if (dart.notNull(index) >= 0) return false;
-          bucket.push(element);
-        }
-        this[_length$1] = dart.notNull(this[_length$1]) + 1;
-        this[_elements] = null;
-        return true;
-      }
-      addAll(objects) {
-        IterableOfE()._check(objects);
-        for (let each of objects) {
-          this.add(each);
-        }
-      }
-      remove(object) {
-        if (dart.test(collection._HashSet._isStringElement(object))) {
-          return this[_removeHashTableEntry$](this[_strings$], object);
-        } else if (dart.test(collection._HashSet._isNumericElement(object))) {
-          return this[_removeHashTableEntry$](this[_nums$], object);
-        } else {
-          return this[_remove](object);
-        }
-      }
-      [_remove](object) {
-        let rest = this[_rest$];
-        if (rest == null) return false;
-        let bucket = this[_getBucket$](rest, object);
-        let index = this[_findBucketIndex](bucket, object);
-        if (dart.notNull(index) < 0) return false;
-        this[_length$1] = dart.notNull(this[_length$1]) - 1;
-        this[_elements] = null;
-        bucket.splice(index, 1);
-        return true;
-      }
-      clear() {
-        if (dart.notNull(this[_length$1]) > 0) {
-          this[_strings$] = this[_nums$] = this[_rest$] = this[_elements] = null;
-          this[_length$1] = 0;
-        }
-      }
-      [_computeElements]() {
-        if (this[_elements] != null) return this[_elements];
-        let result = ListOfE().new(this[_length$1]);
-        let index = 0;
-        let strings = this[_strings$];
-        if (strings != null) {
-          let names = Object.getOwnPropertyNames(strings);
-          let entries = names.length;
-          for (let i = 0; i < entries; i++) {
-            let element = names[i];
-            result[index] = element;
-            index++;
-          }
-        }
-        let nums = this[_nums$];
-        if (nums != null) {
-          let names = Object.getOwnPropertyNames(nums);
-          let entries = names.length;
-          for (let i = 0; i < entries; i++) {
-            let element = +names[i];
-            result[index] = element;
-            index++;
-          }
-        }
-        let rest = this[_rest$];
-        if (rest != null) {
-          let names = Object.getOwnPropertyNames(rest);
-          let entries = names.length;
-          for (let i = 0; i < entries; i++) {
-            let entry = names[i];
-            let bucket = rest[entry];
-            let length = bucket.length;
-            for (let i = 0; i < length; i++) {
-              result[index] = bucket[i];
-              index++;
-            }
-          }
-        }
-        dart.assert(index == this[_length$1]);
-        return this[_elements] = result;
-      }
-      [_addHashTableEntry$](table, element) {
-        E._check(element);
-        if (dart.test(collection._HashSet._hasTableEntry(table, element))) return false;
-        collection._HashSet._setTableEntry(table, element, 0);
-        this[_length$1] = dart.notNull(this[_length$1]) + 1;
-        this[_elements] = null;
-        return true;
-      }
-      [_removeHashTableEntry$](table, element) {
-        if (table != null && dart.test(collection._HashSet._hasTableEntry(table, element))) {
-          collection._HashSet._deleteTableEntry(table, element);
-          this[_length$1] = dart.notNull(this[_length$1]) - 1;
-          this[_elements] = null;
-          return true;
-        } else {
-          return false;
-        }
-      }
-      static _isStringElement(element) {
-        return typeof element == 'string' && element != '__proto__';
-      }
-      static _isNumericElement(element) {
-        return typeof element == 'number' && (element & 0x3ffffff) === element;
-      }
-      [_computeHashCode](element) {
-        return dart.hashCode(element) & 0x3ffffff;
-      }
-      static _hasTableEntry(table, key) {
-        let entry = table[key];
-        return entry != null;
-      }
-      static _setTableEntry(table, key, value) {
-        dart.assert(value != null);
-        table[key] = value;
-      }
-      static _deleteTableEntry(table, key) {
-        delete table[key];
-      }
-      [_getBucket$](table, element) {
-        let hash = this[_computeHashCode](element);
-        return table[hash];
-      }
-      [_findBucketIndex](bucket, element) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          if (dart.equals(bucket[i], element)) return i;
-        }
-        return -1;
-      }
-      static _newHashTable() {
-        let table = Object.create(null);
-        let temporaryKey = '<non-identifier-key>';
-        collection._HashSet._setTableEntry(table, temporaryKey, table);
-        collection._HashSet._deleteTableEntry(table, temporaryKey);
-        return table;
-      }
-    }
-    _HashSet[dart.implements] = () => [HashSetOfE()];
-    dart.setSignature(_HashSet, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._HashSet$(E), [])}),
-      fields: () => ({
-        [_length$1]: core.int,
-        [_strings$]: dart.dynamic,
-        [_nums$]: dart.dynamic,
-        [_rest$]: dart.dynamic,
-        [_elements]: ListOfE()
-      }),
-      getters: () => ({
-        iterator: dart.definiteFunctionType(core.Iterator$(E), []),
-        length: dart.definiteFunctionType(core.int, [])
-      }),
-      methods: () => ({
-        [_newSet]: dart.definiteFunctionType(core.Set$(E), []),
-        contains: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_contains]: dart.definiteFunctionType(core.bool, [core.Object]),
-        lookup: dart.definiteFunctionType(E, [core.Object]),
-        [_lookup]: dart.definiteFunctionType(E, [core.Object]),
-        add: dart.definiteFunctionType(core.bool, [E]),
-        [_add$0]: dart.definiteFunctionType(core.bool, [E]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_remove]: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_computeElements]: dart.definiteFunctionType(core.List$(E), []),
-        [_addHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
-        [_removeHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
-        [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
-        [_getBucket$]: dart.definiteFunctionType(core.List$(E), [dart.dynamic, dart.dynamic]),
-        [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])
-      }),
-      statics: () => ({
-        _isStringElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _isNumericElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _hasTableEntry: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-        _setTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-        _deleteTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-        _newHashTable: dart.definiteFunctionType(dart.dynamic, [])
-      }),
-      names: ['_isStringElement', '_isNumericElement', '_hasTableEntry', '_setTableEntry', '_deleteTableEntry', '_newHashTable']
-    });
-    dart.defineExtensionMembers(_HashSet, [
-      'contains',
-      'iterator',
-      'length',
-      'isEmpty',
-      'isNotEmpty'
-    ]);
-    return _HashSet;
-  });
-  collection._HashSet = _HashSet();
-  collection._IdentityHashSet$ = dart.generic(E => {
-    let _IdentityHashSetOfE = () => (_IdentityHashSetOfE = dart.constFn(collection._IdentityHashSet$(E)))();
-    class _IdentityHashSet extends collection._HashSet$(E) {
-      new() {
-        super.new();
-      }
-      [_newSet]() {
-        return new (_IdentityHashSetOfE())();
-      }
-      [_computeHashCode](key) {
-        return core.identityHashCode(key) & 0x3ffffff;
-      }
-      [_findBucketIndex](bucket, element) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          if (core.identical(bucket[i], element)) return i;
-        }
-        return -1;
-      }
-    }
-    return _IdentityHashSet;
-  });
-  collection._IdentityHashSet = _IdentityHashSet();
-  const _equality = Symbol('_equality');
-  const _hasher = Symbol('_hasher');
-  collection._CustomHashSet$ = dart.generic(E => {
-    let _CustomHashSetOfE = () => (_CustomHashSetOfE = dart.constFn(collection._CustomHashSet$(E)))();
-    let _EqualityOfE = () => (_EqualityOfE = dart.constFn(collection._Equality$(E)))();
-    let _HasherOfE = () => (_HasherOfE = dart.constFn(collection._Hasher$(E)))();
-    class _CustomHashSet extends collection._HashSet$(E) {
-      new(equality, hasher, validKey) {
-        this[_equality] = equality;
-        this[_hasher] = hasher;
-        this[_validKey] = validKey != null ? validKey : dart.fn(x => E.is(x), ObjectTobool());
-        super.new();
-      }
-      [_newSet]() {
-        return new (_CustomHashSetOfE())(this[_equality], this[_hasher], this[_validKey]);
-      }
-      [_findBucketIndex](bucket, element) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          if (dart.test(this[_equality](bucket[i], E._check(element)))) return i;
-        }
-        return -1;
-      }
-      [_computeHashCode](element) {
-        return this[_hasher](E._check(element)) & 0x3ffffff;
-      }
-      add(object) {
-        E._check(object);
-        return super[_add$0](object);
-      }
-      contains(object) {
-        if (!dart.test(this[_validKey](object))) return false;
-        return super[_contains](object);
-      }
-      lookup(object) {
-        if (!dart.test(this[_validKey](object))) return null;
-        return super[_lookup](object);
-      }
-      remove(object) {
-        if (!dart.test(this[_validKey](object))) return false;
-        return super[_remove](object);
-      }
-    }
-    dart.setSignature(_CustomHashSet, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._CustomHashSet$(E), [_EqualityOfE(), _HasherOfE(), _PredicateOfObject()])}),
-      fields: () => ({
-        [_equality]: _EqualityOfE(),
-        [_hasher]: _HasherOfE(),
-        [_validKey]: _PredicateOfObject()
-      })
-    });
-    dart.defineExtensionMembers(_CustomHashSet, ['contains']);
-    return _CustomHashSet;
-  });
-  collection._CustomHashSet = _CustomHashSet();
-  collection._HashSetIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    class _HashSetIterator extends core.Object {
-      new(set, elements) {
-        this[_set] = set;
-        this[_elements] = elements;
-        this[_offset] = 0;
-        this[_current$2] = null;
-      }
-      get current() {
-        return this[_current$2];
-      }
-      moveNext() {
-        let elements = this[_elements];
-        let offset = this[_offset];
-        if (elements !== dart.dload(this[_set], _elements)) {
-          dart.throw(new core.ConcurrentModificationError(this[_set]));
-        } else if (dart.notNull(offset) >= elements.length) {
-          this[_current$2] = null;
-          return false;
-        } else {
-          this[_current$2] = elements[offset];
-          this[_offset] = dart.notNull(offset) + 1;
-          return true;
-        }
-      }
-    }
-    dart.addTypeTests(_HashSetIterator);
-    _HashSetIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_HashSetIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._HashSetIterator$(E), [dart.dynamic, ListOfE()])}),
-      fields: () => ({
-        [_set]: dart.dynamic,
-        [_elements]: ListOfE(),
-        [_offset]: core.int,
-        [_current$2]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _HashSetIterator;
-  });
-  collection._HashSetIterator = _HashSetIterator();
-  const _first$ = Symbol('_first');
-  const _last$ = Symbol('_last');
-  const _unsupported = Symbol('_unsupported');
-  const _getTableEntry = Symbol('_getTableEntry');
-  const _element = Symbol('_element');
-  const _newLinkedCell$ = Symbol('_newLinkedCell');
-  const _unlinkCell$ = Symbol('_unlinkCell');
-  const _filterWhere = Symbol('_filterWhere');
-  const _previous$0 = Symbol('_previous');
-  collection._LinkedHashSet$ = dart.generic(E => {
-    let _LinkedHashSetOfE = () => (_LinkedHashSetOfE = dart.constFn(collection._LinkedHashSet$(E)))();
-    let _LinkedHashSetIteratorOfE = () => (_LinkedHashSetIteratorOfE = dart.constFn(collection._LinkedHashSetIterator$(E)))();
-    let _LinkedHashSetCellOfE = () => (_LinkedHashSetCellOfE = dart.constFn(collection._LinkedHashSetCell$(E)))();
-    let LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    class _LinkedHashSet extends collection._HashSetBase$(E) {
-      new() {
-        this[_length$1] = 0;
-        this[_strings$] = null;
-        this[_nums$] = null;
-        this[_rest$] = null;
-        this[_first$] = null;
-        this[_last$] = null;
-        this[_modifications$] = 0;
-      }
-      [_newSet]() {
-        return new (_LinkedHashSetOfE())();
-      }
-      [_unsupported](operation) {
-        dart.throw(dart.str`LinkedHashSet: unsupported ${operation}`);
-      }
-      get iterator() {
-        return new (_LinkedHashSetIteratorOfE())(this, this[_modifications$]);
-      }
-      get length() {
-        return this[_length$1];
-      }
-      get isEmpty() {
-        return this[_length$1] == 0;
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      contains(object) {
-        if (dart.test(collection._LinkedHashSet._isStringElement(object))) {
-          let strings = this[_strings$];
-          if (strings == null) return false;
-          let cell = this[_getTableEntry](strings, object);
-          return cell != null;
-        } else if (dart.test(collection._LinkedHashSet._isNumericElement(object))) {
-          let nums = this[_nums$];
-          if (nums == null) return false;
-          let cell = this[_getTableEntry](nums, object);
-          return cell != null;
-        } else {
-          return this[_contains](object);
-        }
-      }
-      [_contains](object) {
-        let rest = this[_rest$];
-        if (rest == null) return false;
-        let bucket = this[_getBucket$](rest, object);
-        return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
-      }
-      lookup(object) {
-        if (dart.test(collection._LinkedHashSet._isStringElement(object)) || dart.test(collection._LinkedHashSet._isNumericElement(object))) {
-          return E._check(dart.test(this.contains(object)) ? object : null);
-        } else {
-          return this[_lookup](object);
-        }
-      }
-      [_lookup](object) {
-        let rest = this[_rest$];
-        if (rest == null) return null;
-        let bucket = this[_getBucket$](rest, object);
-        let index = this[_findBucketIndex](bucket, object);
-        if (dart.notNull(index) < 0) return null;
-        return bucket[dartx._get](index)[_element];
-      }
-      forEach(action) {
-        let cell = this[_first$];
-        let modifications = this[_modifications$];
-        while (cell != null) {
-          action(cell[_element]);
-          if (modifications != this[_modifications$]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-          cell = cell[_next$0];
-        }
-      }
-      get first() {
-        if (this[_first$] == null) dart.throw(new core.StateError("No elements"));
-        return this[_first$][_element];
-      }
-      get last() {
-        if (this[_last$] == null) dart.throw(new core.StateError("No elements"));
-        return this[_last$][_element];
-      }
-      add(element) {
-        E._check(element);
-        if (dart.test(collection._LinkedHashSet._isStringElement(element))) {
-          let strings = this[_strings$];
-          if (strings == null) this[_strings$] = strings = collection._LinkedHashSet._newHashTable();
-          return this[_addHashTableEntry$](strings, element);
-        } else if (dart.test(collection._LinkedHashSet._isNumericElement(element))) {
-          let nums = this[_nums$];
-          if (nums == null) this[_nums$] = nums = collection._LinkedHashSet._newHashTable();
-          return this[_addHashTableEntry$](nums, element);
-        } else {
-          return this[_add$0](element);
-        }
-      }
-      [_add$0](element) {
-        E._check(element);
-        let rest = this[_rest$];
-        if (rest == null) this[_rest$] = rest = collection._LinkedHashSet._newHashTable();
-        let hash = this[_computeHashCode](element);
-        let bucket = rest[hash];
-        if (bucket == null) {
-          let cell = this[_newLinkedCell$](element);
-          collection._LinkedHashSet._setTableEntry(rest, hash, [cell]);
-        } else {
-          let index = this[_findBucketIndex](bucket, element);
-          if (dart.notNull(index) >= 0) return false;
-          let cell = this[_newLinkedCell$](element);
-          bucket.push(cell);
-        }
-        return true;
-      }
-      remove(object) {
-        if (dart.test(collection._LinkedHashSet._isStringElement(object))) {
-          return this[_removeHashTableEntry$](this[_strings$], object);
-        } else if (dart.test(collection._LinkedHashSet._isNumericElement(object))) {
-          return this[_removeHashTableEntry$](this[_nums$], object);
-        } else {
-          return this[_remove](object);
-        }
-      }
-      [_remove](object) {
-        let rest = this[_rest$];
-        if (rest == null) return false;
-        let bucket = this[_getBucket$](rest, object);
-        let index = this[_findBucketIndex](bucket, object);
-        if (dart.notNull(index) < 0) return false;
-        let cell = bucket.splice(index, 1)[0];
-        this[_unlinkCell$](cell);
-        return true;
-      }
-      removeWhere(test) {
-        this[_filterWhere](test, true);
-      }
-      retainWhere(test) {
-        this[_filterWhere](test, false);
-      }
-      [_filterWhere](test, removeMatching) {
-        let cell = this[_first$];
-        while (cell != null) {
-          let element = cell[_element];
-          let next = cell[_next$0];
-          let modifications = this[_modifications$];
-          let shouldRemove = removeMatching == test(element);
-          if (modifications != this[_modifications$]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-          if (shouldRemove) this.remove(element);
-          cell = next;
-        }
-      }
-      clear() {
-        if (dart.notNull(this[_length$1]) > 0) {
-          this[_strings$] = this[_nums$] = this[_rest$] = this[_first$] = this[_last$] = null;
-          this[_length$1] = 0;
-          this[_modified$]();
-        }
-      }
-      [_addHashTableEntry$](table, element) {
-        E._check(element);
-        let cell = this[_getTableEntry](table, element);
-        if (cell != null) return false;
-        collection._LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell$](element));
-        return true;
-      }
-      [_removeHashTableEntry$](table, element) {
-        if (table == null) return false;
-        let cell = this[_getTableEntry](table, element);
-        if (cell == null) return false;
-        this[_unlinkCell$](cell);
-        collection._LinkedHashSet._deleteTableEntry(table, element);
-        return true;
-      }
-      [_modified$]() {
-        this[_modifications$] = dart.notNull(this[_modifications$]) + 1 & 67108863;
-      }
-      [_newLinkedCell$](element) {
-        E._check(element);
-        let cell = new (_LinkedHashSetCellOfE())(element);
-        if (this[_first$] == null) {
-          this[_first$] = this[_last$] = cell;
-        } else {
-          let last = this[_last$];
-          cell[_previous$0] = last;
-          this[_last$] = last[_next$0] = cell;
-        }
-        this[_length$1] = dart.notNull(this[_length$1]) + 1;
-        this[_modified$]();
-        return cell;
-      }
-      [_unlinkCell$](cell) {
-        _LinkedHashSetCellOfE()._check(cell);
-        let previous = cell[_previous$0];
-        let next = cell[_next$0];
-        if (previous == null) {
-          dart.assert(dart.equals(cell, this[_first$]));
-          this[_first$] = next;
-        } else {
-          previous[_next$0] = next;
-        }
-        if (next == null) {
-          dart.assert(dart.equals(cell, this[_last$]));
-          this[_last$] = previous;
-        } else {
-          next[_previous$0] = previous;
-        }
-        this[_length$1] = dart.notNull(this[_length$1]) - 1;
-        this[_modified$]();
-      }
-      static _isStringElement(element) {
-        return typeof element == 'string' && element != '__proto__';
-      }
-      static _isNumericElement(element) {
-        return typeof element == 'number' && (element & 0x3ffffff) === element;
-      }
-      [_computeHashCode](element) {
-        return dart.hashCode(element) & 0x3ffffff;
-      }
-      [_getTableEntry](table, key) {
-        return table[key];
-      }
-      static _setTableEntry(table, key, value) {
-        dart.assert(value != null);
-        table[key] = value;
-      }
-      static _deleteTableEntry(table, key) {
-        delete table[key];
-      }
-      [_getBucket$](table, element) {
-        let hash = this[_computeHashCode](element);
-        return table[hash];
-      }
-      [_findBucketIndex](bucket, element) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          let cell = bucket[i];
-          if (dart.equals(cell[_element], element)) return i;
-        }
-        return -1;
-      }
-      static _newHashTable() {
-        let table = Object.create(null);
-        let temporaryKey = '<non-identifier-key>';
-        collection._LinkedHashSet._setTableEntry(table, temporaryKey, table);
-        collection._LinkedHashSet._deleteTableEntry(table, temporaryKey);
-        return table;
-      }
-    }
-    _LinkedHashSet[dart.implements] = () => [LinkedHashSetOfE()];
-    dart.setSignature(_LinkedHashSet, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSet$(E), [])}),
-      fields: () => ({
-        [_length$1]: core.int,
-        [_strings$]: dart.dynamic,
-        [_nums$]: dart.dynamic,
-        [_rest$]: dart.dynamic,
-        [_first$]: _LinkedHashSetCellOfE(),
-        [_last$]: _LinkedHashSetCellOfE(),
-        [_modifications$]: core.int
-      }),
-      getters: () => ({
-        iterator: dart.definiteFunctionType(core.Iterator$(E), []),
-        length: dart.definiteFunctionType(core.int, [])
-      }),
-      methods: () => ({
-        [_newSet]: dart.definiteFunctionType(core.Set$(E), []),
-        [_unsupported]: dart.definiteFunctionType(dart.void, [core.String]),
-        contains: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_contains]: dart.definiteFunctionType(core.bool, [core.Object]),
-        lookup: dart.definiteFunctionType(E, [core.Object]),
-        [_lookup]: dart.definiteFunctionType(E, [core.Object]),
-        add: dart.definiteFunctionType(core.bool, [E]),
-        [_add$0]: dart.definiteFunctionType(core.bool, [E]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_remove]: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_filterWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
-        [_addHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
-        [_removeHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
-        [_modified$]: dart.definiteFunctionType(dart.void, []),
-        [_newLinkedCell$]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E]),
-        [_unlinkCell$]: dart.definiteFunctionType(dart.void, [_LinkedHashSetCellOfE()]),
-        [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
-        [_getTableEntry]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [dart.dynamic, dart.dynamic]),
-        [_getBucket$]: dart.definiteFunctionType(core.List$(collection._LinkedHashSetCell$(E)), [dart.dynamic, dart.dynamic]),
-        [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])
-      }),
-      statics: () => ({
-        _isStringElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _isNumericElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-        _setTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-        _deleteTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-        _newHashTable: dart.definiteFunctionType(dart.dynamic, [])
-      }),
-      names: ['_isStringElement', '_isNumericElement', '_setTableEntry', '_deleteTableEntry', '_newHashTable']
-    });
-    dart.defineExtensionMembers(_LinkedHashSet, [
-      'contains',
-      'forEach',
-      'iterator',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'last'
-    ]);
-    return _LinkedHashSet;
-  });
-  collection._LinkedHashSet = _LinkedHashSet();
-  collection._LinkedIdentityHashSet$ = dart.generic(E => {
-    let _LinkedIdentityHashSetOfE = () => (_LinkedIdentityHashSetOfE = dart.constFn(collection._LinkedIdentityHashSet$(E)))();
-    class _LinkedIdentityHashSet extends collection._LinkedHashSet$(E) {
-      new() {
-        super.new();
-      }
-      [_newSet]() {
-        return new (_LinkedIdentityHashSetOfE())();
-      }
-      [_computeHashCode](key) {
-        return core.identityHashCode(key) & 0x3ffffff;
-      }
-      [_findBucketIndex](bucket, element) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          let cell = bucket[i];
-          if (core.identical(cell[_element], element)) return i;
-        }
-        return -1;
-      }
-    }
-    return _LinkedIdentityHashSet;
-  });
-  collection._LinkedIdentityHashSet = _LinkedIdentityHashSet();
-  collection._LinkedCustomHashSet$ = dart.generic(E => {
-    let _LinkedCustomHashSetOfE = () => (_LinkedCustomHashSetOfE = dart.constFn(collection._LinkedCustomHashSet$(E)))();
-    let _EqualityOfE = () => (_EqualityOfE = dart.constFn(collection._Equality$(E)))();
-    let _HasherOfE = () => (_HasherOfE = dart.constFn(collection._Hasher$(E)))();
-    class _LinkedCustomHashSet extends collection._LinkedHashSet$(E) {
-      new(equality, hasher, validKey) {
-        this[_equality] = equality;
-        this[_hasher] = hasher;
-        this[_validKey] = validKey != null ? validKey : dart.fn(x => E.is(x), ObjectTobool());
-        super.new();
-      }
-      [_newSet]() {
-        return new (_LinkedCustomHashSetOfE())(this[_equality], this[_hasher], this[_validKey]);
-      }
-      [_findBucketIndex](bucket, element) {
-        if (bucket == null) return -1;
-        let length = bucket.length;
-        for (let i = 0; i < length; i++) {
-          let cell = bucket[i];
-          if (dart.test(this[_equality](cell[_element], E._check(element)))) return i;
-        }
-        return -1;
-      }
-      [_computeHashCode](element) {
-        return this[_hasher](E._check(element)) & 0x3ffffff;
-      }
-      add(element) {
-        E._check(element);
-        return super[_add$0](element);
-      }
-      contains(object) {
-        if (!dart.test(this[_validKey](object))) return false;
-        return super[_contains](object);
-      }
-      lookup(object) {
-        if (!dart.test(this[_validKey](object))) return null;
-        return super[_lookup](object);
-      }
-      remove(object) {
-        if (!dart.test(this[_validKey](object))) return false;
-        return super[_remove](object);
-      }
-      containsAll(elements) {
-        for (let element of elements) {
-          if (!dart.test(this[_validKey](element)) || !dart.test(this.contains(element))) return false;
-        }
-        return true;
-      }
-      removeAll(elements) {
-        for (let element of elements) {
-          if (dart.test(this[_validKey](element))) {
-            super[_remove](element);
-          }
-        }
-      }
-    }
-    dart.setSignature(_LinkedCustomHashSet, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._LinkedCustomHashSet$(E), [_EqualityOfE(), _HasherOfE(), _PredicateOfObject()])}),
-      fields: () => ({
-        [_equality]: _EqualityOfE(),
-        [_hasher]: _HasherOfE(),
-        [_validKey]: _PredicateOfObject()
-      })
-    });
-    dart.defineExtensionMembers(_LinkedCustomHashSet, ['contains']);
-    return _LinkedCustomHashSet;
-  });
-  collection._LinkedCustomHashSet = _LinkedCustomHashSet();
-  collection._LinkedHashSetCell$ = dart.generic(E => {
-    let _LinkedHashSetCellOfE = () => (_LinkedHashSetCellOfE = dart.constFn(collection._LinkedHashSetCell$(E)))();
-    class _LinkedHashSetCell extends core.Object {
-      new(element) {
-        this[_element] = element;
-        this[_next$0] = null;
-        this[_previous$0] = null;
-      }
-    }
-    dart.addTypeTests(_LinkedHashSetCell);
-    dart.setSignature(_LinkedHashSetCell, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E])}),
-      fields: () => ({
-        [_element]: E,
-        [_next$0]: _LinkedHashSetCellOfE(),
-        [_previous$0]: _LinkedHashSetCellOfE()
-      })
-    });
-    return _LinkedHashSetCell;
-  });
-  collection._LinkedHashSetCell = _LinkedHashSetCell();
-  const _cell$ = Symbol('_cell');
-  collection._LinkedHashSetIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class _LinkedHashSetIterator extends core.Object {
-      new(set, modifications) {
-        this[_set] = set;
-        this[_modifications$] = modifications;
-        this[_cell$] = null;
-        this[_current$2] = null;
-        this[_cell$] = this[_set][_first$];
-      }
-      get current() {
-        return this[_current$2];
-      }
-      moveNext() {
-        if (this[_modifications$] != this[_set][_modifications$]) {
-          dart.throw(new core.ConcurrentModificationError(this[_set]));
-        } else if (this[_cell$] == null) {
-          this[_current$2] = null;
-          return false;
-        } else {
-          this[_current$2] = E._check(this[_cell$][_element]);
-          this[_cell$] = this[_cell$][_next$0];
-          return true;
-        }
-      }
-    }
-    dart.addTypeTests(_LinkedHashSetIterator);
-    _LinkedHashSetIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_LinkedHashSetIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSetIterator$(E), [collection._LinkedHashSet, core.int])}),
-      fields: () => ({
-        [_set]: collection._LinkedHashSet,
-        [_modifications$]: core.int,
-        [_cell$]: collection._LinkedHashSetCell,
-        [_current$2]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _LinkedHashSetIterator;
-  });
-  collection._LinkedHashSetIterator = _LinkedHashSetIterator();
-  const _source$0 = Symbol('_source');
-  collection.UnmodifiableListView$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
-      new(source) {
-        this[_source$0] = source;
-      }
-      get length() {
-        return this[_source$0][dartx.length];
-      }
-      set length(value) {
-        super.length = value;
-      }
-      _get(index) {
-        return this[_source$0][dartx.elementAt](index);
-      }
-    }
-    dart.setSignature(UnmodifiableListView, {
-      constructors: () => ({new: dart.definiteFunctionType(collection.UnmodifiableListView$(E), [IterableOfE()])}),
-      fields: () => ({[_source$0]: IterableOfE()}),
-      getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-      methods: () => ({_get: dart.definiteFunctionType(E, [core.int])})
-    });
-    dart.defineExtensionMembers(UnmodifiableListView, ['_get', 'length']);
-    return UnmodifiableListView;
-  });
-  collection.UnmodifiableListView = UnmodifiableListView();
-  collection._defaultEquals = function(a, b) {
-    return dart.equals(a, b);
-  };
-  dart.lazyFn(collection._defaultEquals, () => dynamicAnddynamicTobool());
-  collection._defaultHashCode = function(a) {
-    return dart.hashCode(a);
-  };
-  dart.fn(collection._defaultHashCode, dynamicToint());
-  collection._Equality$ = dart.generic(K => {
-    const _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [K, K]));
-    return _Equality;
-  });
-  collection._Equality = _Equality$();
-  collection._Hasher$ = dart.generic(K => {
-    const _Hasher = dart.typedef('_Hasher', () => dart.functionType(core.int, [K]));
-    return _Hasher;
-  });
-  collection._Hasher = _Hasher();
-  collection.HashMap$ = dart.generic((K, V) => {
-    let _HashMapOfK$V = () => (_HashMapOfK$V = dart.constFn(collection._HashMap$(K, V)))();
-    let _IdentityHashMapOfK$V = () => (_IdentityHashMapOfK$V = dart.constFn(collection._IdentityHashMap$(K, V)))();
-    let _CustomHashMapOfK$V = () => (_CustomHashMapOfK$V = dart.constFn(collection._CustomHashMap$(K, V)))();
-    let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndKTobool = () => (KAndKTobool = dart.constFn(dart.functionType(core.bool, [K, K])))();
-    let KToint = () => (KToint = dart.constFn(dart.functionType(core.int, [K])))();
-    let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
-    let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
-    let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
-    let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    class HashMap extends core.Object {
-      static new(opts) {
-        let equals = opts && 'equals' in opts ? opts.equals : null;
-        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
-        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
-        if (isValidKey == null) {
-          if (hashCode == null) {
-            if (equals == null) {
-              return new (_HashMapOfK$V())();
-            }
-            hashCode = collection._defaultHashCode;
-          } else {
-            if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
-              return new (_IdentityHashMapOfK$V())();
-            }
-            if (equals == null) {
-              equals = collection._defaultEquals;
-            }
-          }
-        } else {
-          if (hashCode == null) {
-            hashCode = collection._defaultHashCode;
-          }
-          if (equals == null) {
-            equals = collection._defaultEquals;
-          }
-        }
-        return new (_CustomHashMapOfK$V())(equals, hashCode, isValidKey);
-      }
-      static identity() {
-        return new (_IdentityHashMapOfK$V())();
-      }
-      static from(other) {
-        let result = HashMapOfK$V().new();
-        other[dartx.forEach](dart.fn((k, v) => {
-          result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicToNull()));
-        return result;
-      }
-      static fromIterable(iterable, opts) {
-        let key = opts && 'key' in opts ? opts.key : null;
-        let value = opts && 'value' in opts ? opts.value : null;
-        let map = HashMapOfK$V().new();
-        collection.Maps._fillMapWithMappedIterable(map, iterable, key, value);
-        return map;
-      }
-      static fromIterables(keys, values) {
-        let map = HashMapOfK$V().new();
-        collection.Maps._fillMapWithIterables(map, keys, values);
-        return map;
-      }
-    }
-    dart.addTypeTests(HashMap);
-    HashMap[dart.implements] = () => [MapOfK$V()];
-    dart.setSignature(HashMap, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.HashMap$(K, V), [], {equals: KAndKTobool(), hashCode: KToint(), isValidKey: _PredicateOfObject()}),
-        identity: dart.definiteFunctionType(collection.HashMap$(K, V), []),
-        from: dart.definiteFunctionType(collection.HashMap$(K, V), [core.Map]),
-        fromIterable: dart.definiteFunctionType(collection.HashMap$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV()}),
-        fromIterables: dart.definiteFunctionType(collection.HashMap$(K, V), [IterableOfK(), IterableOfV()])
-      })
-    });
-    return HashMap;
-  });
-  collection.HashMap = HashMap();
-  collection.HashSet$ = dart.generic(E => {
-    let _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
-    let _IdentityHashSetOfE = () => (_IdentityHashSetOfE = dart.constFn(collection._IdentityHashSet$(E)))();
-    let _CustomHashSetOfE = () => (_CustomHashSetOfE = dart.constFn(collection._CustomHashSet$(E)))();
-    let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let EAndETobool = () => (EAndETobool = dart.constFn(dart.functionType(core.bool, [E, E])))();
-    let EToint = () => (EToint = dart.constFn(dart.functionType(core.int, [E])))();
-    class HashSet extends core.Object {
-      static new(opts) {
-        let equals = opts && 'equals' in opts ? opts.equals : null;
-        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
-        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
-        if (isValidKey == null) {
-          if (hashCode == null) {
-            if (equals == null) {
-              return new (_HashSetOfE())();
-            }
-            hashCode = collection._defaultHashCode;
-          } else {
-            if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
-              return new (_IdentityHashSetOfE())();
-            }
-            if (equals == null) {
-              equals = collection._defaultEquals;
-            }
-          }
-        } else {
-          if (hashCode == null) {
-            hashCode = collection._defaultHashCode;
-          }
-          if (equals == null) {
-            equals = collection._defaultEquals;
-          }
-        }
-        return new (_CustomHashSetOfE())(equals, hashCode, isValidKey);
-      }
-      static identity() {
-        return new (_IdentityHashSetOfE())();
-      }
-      static from(elements) {
-        let result = HashSetOfE().new();
-        for (let e of elements) {
-          let element = E.as(e);
-          result.add(element);
-        }
-        return result;
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this.iterator);
-      }
-    }
-    dart.addTypeTests(HashSet);
-    HashSet[dart.implements] = () => [SetOfE()];
-    dart.setSignature(HashSet, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.HashSet$(E), [], {equals: EAndETobool(), hashCode: EToint(), isValidKey: _PredicateOfObject()}),
-        identity: dart.definiteFunctionType(collection.HashSet$(E), []),
-        from: dart.definiteFunctionType(collection.HashSet$(E), [core.Iterable])
-      })
-    });
-    return HashSet;
-  });
-  collection.HashSet = HashSet();
-  collection.IterableMixin$ = dart.generic(E => {
-    let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
-    let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
-    let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
-    let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
-    let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
-    let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    class IterableMixin extends core.Object {
-      map(T) {
-        return f => {
-          return _internal.MappedIterable$(E, T).new(this, f);
-        };
-      }
-      where(f) {
-        return new (WhereIterableOfE())(this, f);
-      }
-      expand(T) {
-        return f => {
-          return new (_internal.ExpandIterable$(E, T))(this, f);
-        };
-      }
-      contains(element) {
-        for (let e of this) {
-          if (dart.equals(e, element)) return true;
-        }
-        return false;
-      }
-      forEach(f) {
-        for (let element of this)
-          f(element);
-      }
-      reduce(combine) {
-        EAndEToE()._check(combine);
-        let iterator = this.iterator;
-        if (!dart.test(iterator.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let value = iterator.current;
-        while (dart.test(iterator.moveNext())) {
-          value = combine(value, iterator.current);
-        }
-        return value;
-      }
-      fold(T) {
-        return (initialValue, combine) => {
-          let value = initialValue;
-          for (let element of this)
-            value = combine(value, element);
-          return value;
-        };
-      }
-      every(f) {
-        for (let element of this) {
-          if (!dart.test(f(element))) return false;
-        }
-        return true;
-      }
-      join(separator) {
-        if (separator === void 0) separator = "";
-        let iterator = this.iterator;
-        if (!dart.test(iterator.moveNext())) return "";
-        let buffer = new core.StringBuffer();
-        if (separator == null || separator == "") {
-          do {
-            buffer.write(dart.str`${iterator.current}`);
-          } while (dart.test(iterator.moveNext()));
-        } else {
-          buffer.write(dart.str`${iterator.current}`);
-          while (dart.test(iterator.moveNext())) {
-            buffer.write(separator);
-            buffer.write(dart.str`${iterator.current}`);
-          }
-        }
-        return buffer.toString();
-      }
-      any(f) {
-        for (let element of this) {
-          if (dart.test(f(element))) return true;
-        }
-        return false;
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        return ListOfE().from(this, {growable: growable});
-      }
-      toSet() {
-        return SetOfE().from(this);
-      }
-      get length() {
-        dart.assert(!_internal.EfficientLength.is(this));
-        let count = 0;
-        let it = this[dartx.iterator];
-        while (dart.test(it.moveNext())) {
-          count++;
-        }
-        return count;
-      }
-      get isEmpty() {
-        return !dart.test(this[dartx.iterator].moveNext());
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      take(count) {
-        return TakeIterableOfE().new(this, count);
-      }
-      takeWhile(test) {
-        return new (TakeWhileIterableOfE())(this, test);
-      }
-      skip(count) {
-        return SkipIterableOfE().new(this, count);
-      }
-      skipWhile(test) {
-        return new (SkipWhileIterableOfE())(this, test);
-      }
-      get first() {
-        let it = this[dartx.iterator];
-        if (!dart.test(it.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        return it.current;
-      }
-      get last() {
-        let it = this[dartx.iterator];
-        if (!dart.test(it.moveNext())) {
-          dart.throw(_internal.IterableElementError.noElement());
-        }
-        let result = null;
-        do {
-          result = it.current;
-        } while (dart.test(it.moveNext()));
-        return result;
-      }
-      get single() {
-        let it = this[dartx.iterator];
-        if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
-        let result = it.current;
-        if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
-        return result;
-      }
-      firstWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        for (let element of this) {
-          if (dart.test(test(element))) return element;
-        }
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      lastWhere(test, opts) {
-        let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-        VoidToE()._check(orElse);
-        let result = null;
-        let foundMatching = false;
-        for (let element of this) {
-          if (dart.test(test(element))) {
-            result = element;
-            foundMatching = true;
-          }
-        }
-        if (foundMatching) return result;
-        if (orElse != null) return orElse();
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      singleWhere(test) {
-        let result = null;
-        let foundMatching = false;
-        for (let element of this) {
-          if (dart.test(test(element))) {
-            if (foundMatching) {
-              dart.throw(_internal.IterableElementError.tooMany());
-            }
-            result = element;
-            foundMatching = true;
-          }
-        }
-        if (foundMatching) return result;
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      elementAt(index) {
-        if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
-        core.RangeError.checkNotNegative(index, "index");
-        let elementIndex = 0;
-        for (let element of this) {
-          if (index == elementIndex) return element;
-          elementIndex++;
-        }
-        dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
-      }
-      toString() {
-        return collection.IterableBase.iterableToShortString(this, '(', ')');
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this.iterator);
-      }
-    }
-    dart.addTypeTests(IterableMixin);
-    IterableMixin[dart.implements] = () => [IterableOfE()];
-    dart.setSignature(IterableMixin, {
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        first: dart.definiteFunctionType(E, []),
-        last: dart.definiteFunctionType(E, []),
-        single: dart.definiteFunctionType(E, [])
-      }),
-      methods: () => ({
-        map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
-        where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
-        contains: dart.definiteFunctionType(core.bool, [core.Object]),
-        forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
-        reduce: dart.definiteFunctionType(E, [EAndEToE()]),
-        fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
-        every: dart.definiteFunctionType(core.bool, [ETobool()]),
-        join: dart.definiteFunctionType(core.String, [], [core.String]),
-        any: dart.definiteFunctionType(core.bool, [ETobool()]),
-        toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
-        toSet: dart.definiteFunctionType(core.Set$(E), []),
-        take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
-        skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
-        firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
-        singleWhere: dart.definiteFunctionType(E, [ETobool()]),
-        elementAt: dart.definiteFunctionType(E, [core.int])
-      })
-    });
-    dart.defineExtensionMembers(IterableMixin, [
-      'map',
-      'where',
-      'expand',
-      'contains',
-      'forEach',
-      'reduce',
-      'fold',
-      'every',
-      'join',
-      'any',
-      'toList',
-      'toSet',
-      'take',
-      'takeWhile',
-      'skip',
-      'skipWhile',
-      'firstWhere',
-      'lastWhere',
-      'singleWhere',
-      'elementAt',
-      'toString',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'last',
-      'single'
-    ]);
-    return IterableMixin;
-  });
-  collection.IterableMixin = IterableMixin();
-  dart.defineLazy(collection, {
-    get _toStringVisiting() {
-      return [];
-    }
-  });
-  collection._isToStringVisiting = function(o) {
-    for (let i = 0; i < dart.notNull(collection._toStringVisiting[dartx.length]); i++) {
-      if (core.identical(o, collection._toStringVisiting[dartx._get](i))) return true;
-    }
-    return false;
-  };
-  dart.lazyFn(collection._isToStringVisiting, () => ObjectTobool());
-  collection._iterablePartsToStrings = function(iterable, parts) {
-    let LENGTH_LIMIT = 80;
-    let HEAD_COUNT = 3;
-    let TAIL_COUNT = 2;
-    let MAX_COUNT = 100;
-    let OVERHEAD = 2;
-    let ELLIPSIS_SIZE = 3;
-    let length = 0;
-    let count = 0;
-    let it = iterable[dartx.iterator];
-    while (dart.notNull(length) < LENGTH_LIMIT || count < HEAD_COUNT) {
-      if (!dart.test(it.moveNext())) return;
-      let next = dart.str`${it.current}`;
-      parts[dartx.add](next);
-      length = dart.notNull(length) + (dart.notNull(next[dartx.length]) + OVERHEAD);
-      count++;
-    }
-    let penultimateString = null;
-    let ultimateString = null;
-    let penultimate = null;
-    let ultimate = null;
-    if (!dart.test(it.moveNext())) {
-      if (count <= HEAD_COUNT + TAIL_COUNT) return;
-      ultimateString = core.String._check(parts[dartx.removeLast]());
-      penultimateString = core.String._check(parts[dartx.removeLast]());
-    } else {
-      penultimate = it.current;
-      count++;
-      if (!dart.test(it.moveNext())) {
-        if (count <= HEAD_COUNT + 1) {
-          parts[dartx.add](dart.str`${penultimate}`);
-          return;
-        }
-        ultimateString = dart.str`${penultimate}`;
-        penultimateString = core.String._check(parts[dartx.removeLast]());
-        length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + OVERHEAD);
-      } else {
-        ultimate = it.current;
+    get length() {
+      let future = new (_FutureOfint())();
+      let count = 0;
+      this.listen(dart.fn(_ => {
         count++;
-        dart.assert(count < MAX_COUNT);
-        while (dart.test(it.moveNext())) {
-          penultimate = ultimate;
-          ultimate = it.current;
-          count++;
-          if (count > MAX_COUNT) {
-            while (dart.notNull(length) > LENGTH_LIMIT - ELLIPSIS_SIZE - OVERHEAD && count > HEAD_COUNT) {
-              length = dart.notNull(length) - dart.notNull(core.num._check(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD)));
-              count--;
-            }
-            parts[dartx.add]("...");
-            return;
-          }
-        }
-        penultimateString = dart.str`${penultimate}`;
-        ultimateString = dart.str`${ultimate}`;
-        length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + dart.notNull(penultimateString[dartx.length]) + 2 * OVERHEAD);
-      }
-    }
-    let elision = null;
-    if (count > dart.notNull(parts[dartx.length]) + TAIL_COUNT) {
-      elision = "...";
-      length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
-    }
-    while (dart.notNull(length) > LENGTH_LIMIT && dart.notNull(parts[dartx.length]) > HEAD_COUNT) {
-      length = dart.notNull(length) - dart.notNull(core.num._check(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD)));
-      if (elision == null) {
-        elision = "...";
-        length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
-      }
-    }
-    if (elision != null) {
-      parts[dartx.add](elision);
-    }
-    parts[dartx.add](penultimateString);
-    parts[dartx.add](ultimateString);
-  };
-  dart.lazyFn(collection._iterablePartsToStrings, () => IterableAndListTovoid());
-  const _iterator$0 = Symbol('_iterator');
-  const _state$ = Symbol('_state');
-  const _move = Symbol('_move');
-  collection.HasNextIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class HasNextIterator extends core.Object {
-      new(iterator) {
-        this[_iterator$0] = iterator;
-        this[_state$] = collection.HasNextIterator._NOT_MOVED_YET;
-      }
-      get hasNext() {
-        if (this[_state$] == collection.HasNextIterator._NOT_MOVED_YET) this[_move]();
-        return this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
-      }
-      next() {
-        if (!dart.test(this.hasNext)) dart.throw(new core.StateError("No more elements"));
-        dart.assert(this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT);
-        let result = this[_iterator$0].current;
-        this[_move]();
-        return result;
-      }
-      [_move]() {
-        if (dart.test(this[_iterator$0].moveNext())) {
-          this[_state$] = collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
-        } else {
-          this[_state$] = collection.HasNextIterator._NO_NEXT;
-        }
-      }
-    }
-    dart.addTypeTests(HasNextIterator);
-    dart.setSignature(HasNextIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection.HasNextIterator$(E), [IteratorOfE()])}),
-      fields: () => ({
-        [_iterator$0]: IteratorOfE(),
-        [_state$]: core.int
-      }),
-      getters: () => ({hasNext: dart.definiteFunctionType(core.bool, [])}),
-      methods: () => ({
-        next: dart.definiteFunctionType(E, []),
-        [_move]: dart.definiteFunctionType(dart.void, [])
-      }),
-      sfields: () => ({
-        _HAS_NEXT_AND_NEXT_IN_CURRENT: core.int,
-        _NO_NEXT: core.int,
-        _NOT_MOVED_YET: core.int
-      })
-    });
-    return HasNextIterator;
-  });
-  collection.HasNextIterator = HasNextIterator();
-  collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT = 0;
-  collection.HasNextIterator._NO_NEXT = 1;
-  collection.HasNextIterator._NOT_MOVED_YET = 2;
-  collection.LinkedHashMap$ = dart.generic((K, V) => {
-    let JsLinkedHashMapOfK$V = () => (JsLinkedHashMapOfK$V = dart.constFn(_js_helper.JsLinkedHashMap$(K, V)))();
-    let _LinkedIdentityHashMapOfK$V = () => (_LinkedIdentityHashMapOfK$V = dart.constFn(collection._LinkedIdentityHashMap$(K, V)))();
-    let _LinkedCustomHashMapOfK$V = () => (_LinkedCustomHashMapOfK$V = dart.constFn(collection._LinkedCustomHashMap$(K, V)))();
-    let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
-    let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
-    let KAndKTobool = () => (KAndKTobool = dart.constFn(dart.functionType(core.bool, [K, K])))();
-    let KToint = () => (KToint = dart.constFn(dart.functionType(core.int, [K])))();
-    let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
-    let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
-    let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
-    let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    class LinkedHashMap extends core.Object {
-      static new(opts) {
-        let equals = opts && 'equals' in opts ? opts.equals : null;
-        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
-        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
-        if (isValidKey == null) {
-          if (hashCode == null) {
-            if (equals == null) {
-              return JsLinkedHashMapOfK$V().es6();
-            }
-            hashCode = collection._defaultHashCode;
-          } else {
-            if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
-              return _LinkedIdentityHashMapOfK$V().es6();
-            }
-            if (equals == null) {
-              equals = collection._defaultEquals;
-            }
-          }
-        } else {
-          if (hashCode == null) {
-            hashCode = collection._defaultHashCode;
-          }
-          if (equals == null) {
-            equals = collection._defaultEquals;
-          }
-        }
-        return new (_LinkedCustomHashMapOfK$V())(equals, hashCode, isValidKey);
-      }
-      static identity() {
-        return _LinkedIdentityHashMapOfK$V().es6();
-      }
-      static from(other) {
-        let result = LinkedHashMapOfK$V().new();
-        other[dartx.forEach](dart.fn((k, v) => {
-          result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicToNull()));
-        return result;
-      }
-      static fromIterable(iterable, opts) {
-        let key = opts && 'key' in opts ? opts.key : null;
-        let value = opts && 'value' in opts ? opts.value : null;
-        let map = LinkedHashMapOfK$V().new();
-        collection.Maps._fillMapWithMappedIterable(map, iterable, key, value);
-        return map;
-      }
-      static fromIterables(keys, values) {
-        let map = LinkedHashMapOfK$V().new();
-        collection.Maps._fillMapWithIterables(map, keys, values);
-        return map;
-      }
-    }
-    dart.addTypeTests(LinkedHashMap);
-    LinkedHashMap[dart.implements] = () => [HashMapOfK$V()];
-    dart.setSignature(LinkedHashMap, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [], {equals: KAndKTobool(), hashCode: KToint(), isValidKey: _PredicateOfObject()}),
-        identity: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), []),
-        from: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [core.Map]),
-        fromIterable: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV()}),
-        fromIterables: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [IterableOfK(), IterableOfV()])
-      })
-    });
-    return LinkedHashMap;
-  });
-  collection.LinkedHashMap = LinkedHashMap();
-  collection.LinkedHashSet$ = dart.generic(E => {
-    let _LinkedHashSetOfE = () => (_LinkedHashSetOfE = dart.constFn(collection._LinkedHashSet$(E)))();
-    let _LinkedIdentityHashSetOfE = () => (_LinkedIdentityHashSetOfE = dart.constFn(collection._LinkedIdentityHashSet$(E)))();
-    let _LinkedCustomHashSetOfE = () => (_LinkedCustomHashSetOfE = dart.constFn(collection._LinkedCustomHashSet$(E)))();
-    let LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
-    let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
-    let EAndETobool = () => (EAndETobool = dart.constFn(dart.functionType(core.bool, [E, E])))();
-    let EToint = () => (EToint = dart.constFn(dart.functionType(core.int, [E])))();
-    class LinkedHashSet extends core.Object {
-      static new(opts) {
-        let equals = opts && 'equals' in opts ? opts.equals : null;
-        let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
-        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
-        if (isValidKey == null) {
-          if (hashCode == null) {
-            if (equals == null) {
-              return new (_LinkedHashSetOfE())();
-            }
-            hashCode = collection._defaultHashCode;
-          } else {
-            if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
-              return new (_LinkedIdentityHashSetOfE())();
-            }
-            if (equals == null) {
-              equals = collection._defaultEquals;
-            }
-          }
-        } else {
-          if (hashCode == null) {
-            hashCode = collection._defaultHashCode;
-          }
-          if (equals == null) {
-            equals = collection._defaultEquals;
-          }
-        }
-        return new (_LinkedCustomHashSetOfE())(equals, hashCode, isValidKey);
-      }
-      static identity() {
-        return new (_LinkedIdentityHashSetOfE())();
-      }
-      static from(elements) {
-        let result = LinkedHashSetOfE().new();
-        for (let element of elements) {
-          let e = E.as(element);
-          result.add(e);
-        }
-        return result;
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this.iterator);
-      }
-    }
-    dart.addTypeTests(LinkedHashSet);
-    LinkedHashSet[dart.implements] = () => [HashSetOfE()];
-    dart.setSignature(LinkedHashSet, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.LinkedHashSet$(E), [], {equals: EAndETobool(), hashCode: EToint(), isValidKey: _PredicateOfObject()}),
-        identity: dart.definiteFunctionType(collection.LinkedHashSet$(E), []),
-        from: dart.definiteFunctionType(collection.LinkedHashSet$(E), [core.Iterable])
-      })
-    });
-    return LinkedHashSet;
-  });
-  collection.LinkedHashSet = LinkedHashSet();
-  const _modificationCount = Symbol('_modificationCount');
-  const _insertBefore$ = Symbol('_insertBefore');
-  const _list = Symbol('_list');
-  const _unlink$ = Symbol('_unlink');
-  collection.LinkedList$ = dart.generic(E => {
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let _LinkedListIteratorOfE = () => (_LinkedListIteratorOfE = dart.constFn(collection._LinkedListIterator$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    class LinkedList extends core.Iterable$(E) {
-      new() {
-        this[_modificationCount] = 0;
-        this[_length$1] = 0;
-        this[_first$] = null;
-        super.new();
-      }
-      addFirst(entry) {
-        E._check(entry);
-        this[_insertBefore$](this[_first$], entry, {updateFirst: true});
-        this[_first$] = entry;
-      }
-      add(entry) {
-        E._check(entry);
-        this[_insertBefore$](this[_first$], entry, {updateFirst: false});
-      }
-      addAll(entries) {
-        IterableOfE()._check(entries);
-        entries[dartx.forEach](dart.bind(this, 'add'));
-      }
-      remove(entry) {
-        E._check(entry);
-        if (!dart.equals(entry[_list], this)) return false;
-        this[_unlink$](entry);
-        return true;
-      }
-      get iterator() {
-        return new (_LinkedListIteratorOfE())(this);
-      }
-      get length() {
-        return this[_length$1];
-      }
-      clear() {
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        if (dart.test(this.isEmpty)) return;
-        let next = this[_first$];
-        do {
-          let entry = next;
-          next = entry[_next$0];
-          entry[_next$0] = entry[_previous$0] = entry[_list] = null;
-        } while (!core.identical(next, this[_first$]));
-        this[_first$] = null;
-        this[_length$1] = 0;
-      }
-      get first() {
-        if (dart.test(this.isEmpty)) {
-          dart.throw(new core.StateError('No such element'));
-        }
-        return this[_first$];
-      }
-      get last() {
-        if (dart.test(this.isEmpty)) {
-          dart.throw(new core.StateError('No such element'));
-        }
-        return this[_first$][_previous$0];
-      }
-      get single() {
-        if (dart.test(this.isEmpty)) {
-          dart.throw(new core.StateError('No such element'));
-        }
-        if (dart.notNull(this[_length$1]) > 1) {
-          dart.throw(new core.StateError('Too many elements'));
-        }
-        return this[_first$];
-      }
-      forEach(action) {
-        let modificationCount = this[_modificationCount];
-        if (dart.test(this.isEmpty)) return;
-        let current = this[_first$];
-        do {
-          action(current);
-          if (modificationCount != this[_modificationCount]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-          current = current[_next$0];
-        } while (!core.identical(current, this[_first$]));
-      }
-      get isEmpty() {
-        return this[_length$1] == 0;
-      }
-      [_insertBefore$](entry, newEntry, opts) {
-        E._check(entry);
-        E._check(newEntry);
-        let updateFirst = opts && 'updateFirst' in opts ? opts.updateFirst : null;
-        if (newEntry.list != null) {
-          dart.throw(new core.StateError('LinkedListEntry is already in a LinkedList'));
-        }
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        newEntry[_list] = this;
-        if (dart.test(this.isEmpty)) {
-          dart.assert(entry == null);
-          newEntry[_previous$0] = newEntry[_next$0] = newEntry;
-          this[_first$] = newEntry;
-          this[_length$1] = dart.notNull(this[_length$1]) + 1;
-          return;
-        }
-        let predecessor = entry[_previous$0];
-        let successor = entry;
-        newEntry[_previous$0] = predecessor;
-        newEntry[_next$0] = successor;
-        predecessor[_next$0] = newEntry;
-        successor[_previous$0] = newEntry;
-        if (dart.test(updateFirst) && core.identical(entry, this[_first$])) {
-          this[_first$] = newEntry;
-        }
-        this[_length$1] = dart.notNull(this[_length$1]) + 1;
-      }
-      [_unlink$](entry) {
-        E._check(entry);
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        entry[_next$0][_previous$0] = entry[_previous$0];
-        let next = entry[_previous$0][_next$0] = entry[_next$0];
-        this[_length$1] = dart.notNull(this[_length$1]) - 1;
-        entry[_list] = entry[_next$0] = entry[_previous$0] = null;
-        if (dart.test(this.isEmpty)) {
-          this[_first$] = null;
-        } else if (core.identical(entry, this[_first$])) {
-          this[_first$] = next;
-        }
-      }
-    }
-    dart.setSignature(LinkedList, {
-      constructors: () => ({new: dart.definiteFunctionType(collection.LinkedList$(E), [])}),
-      fields: () => ({
-        [_modificationCount]: core.int,
-        [_length$1]: core.int,
-        [_first$]: E
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({
-        addFirst: dart.definiteFunctionType(dart.void, [E]),
-        add: dart.definiteFunctionType(dart.void, [E]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        remove: dart.definiteFunctionType(core.bool, [E]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        [_insertBefore$]: dart.definiteFunctionType(dart.void, [E, E], {updateFirst: core.bool}),
-        [_unlink$]: dart.definiteFunctionType(dart.void, [E])
-      })
-    });
-    dart.defineExtensionMembers(LinkedList, [
-      'forEach',
-      'iterator',
-      'length',
-      'first',
-      'last',
-      'single',
-      'isEmpty'
-    ]);
-    return LinkedList;
-  });
-  collection.LinkedList = LinkedList();
-  const _visitedFirst = Symbol('_visitedFirst');
-  collection._LinkedListIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let LinkedListOfE = () => (LinkedListOfE = dart.constFn(collection.LinkedList$(E)))();
-    let LinkedListEntryOfE = () => (LinkedListEntryOfE = dart.constFn(collection.LinkedListEntry$(E)))();
-    class _LinkedListIterator extends core.Object {
-      new(list) {
-        this[_list] = list;
-        this[_modificationCount] = list[_modificationCount];
-        this[_next$0] = list[_first$];
-        this[_visitedFirst] = false;
-        this[_current$2] = null;
-      }
-      get current() {
-        return this[_current$2];
-      }
-      moveNext() {
-        if (this[_modificationCount] != this[_list][_modificationCount]) {
-          dart.throw(new core.ConcurrentModificationError(this));
-        }
-        if (dart.test(this[_list].isEmpty) || dart.test(this[_visitedFirst]) && core.identical(this[_next$0], this[_list].first)) {
-          this[_current$2] = null;
-          return false;
-        }
-        this[_visitedFirst] = true;
-        this[_current$2] = E._check(this[_next$0]);
-        this[_next$0] = this[_next$0][_next$0];
-        return true;
-      }
-    }
-    dart.addTypeTests(_LinkedListIterator);
-    _LinkedListIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_LinkedListIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._LinkedListIterator$(E), [LinkedListOfE()])}),
-      fields: () => ({
-        [_list]: LinkedListOfE(),
-        [_modificationCount]: core.int,
-        [_current$2]: E,
-        [_next$0]: LinkedListEntryOfE(),
-        [_visitedFirst]: core.bool
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _LinkedListIterator;
-  });
-  collection._LinkedListIterator = _LinkedListIterator();
-  collection.LinkedListEntry$ = dart.generic(E => {
-    let LinkedListOfE = () => (LinkedListOfE = dart.constFn(collection.LinkedList$(E)))();
-    class LinkedListEntry extends core.Object {
-      new() {
-        this[_list] = null;
-        this[_next$0] = null;
-        this[_previous$0] = null;
-      }
-      get list() {
-        return this[_list];
-      }
-      unlink() {
-        this[_list][_unlink$](E._check(this));
-      }
-      get next() {
-        if (core.identical(this, this[_next$0])) return null;
-        return this[_next$0];
-      }
-      get previous() {
-        if (core.identical(this, this[_previous$0])) return null;
-        return this[_previous$0];
-      }
-      insertAfter(entry) {
-        E._check(entry);
-        this[_list][_insertBefore$](this[_next$0], entry, {updateFirst: false});
-      }
-      insertBefore(entry) {
-        E._check(entry);
-        this[_list][_insertBefore$](E.as(this), entry, {updateFirst: true});
-      }
-    }
-    dart.addTypeTests(LinkedListEntry);
-    dart.setSignature(LinkedListEntry, {
-      fields: () => ({
-        [_list]: LinkedListOfE(),
-        [_next$0]: E,
-        [_previous$0]: E
-      }),
-      getters: () => ({
-        list: dart.definiteFunctionType(collection.LinkedList$(E), []),
-        next: dart.definiteFunctionType(E, []),
-        previous: dart.definiteFunctionType(E, [])
-      }),
-      methods: () => ({
-        unlink: dart.definiteFunctionType(dart.void, []),
-        insertAfter: dart.definiteFunctionType(dart.void, [E]),
-        insertBefore: dart.definiteFunctionType(dart.void, [E])
-      })
-    });
-    return LinkedListEntry;
-  });
-  collection.LinkedListEntry = LinkedListEntry();
-  collection.MapMixin$ = dart.generic((K, V) => {
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let _MapBaseValueIterableOfK$V = () => (_MapBaseValueIterableOfK$V = dart.constFn(collection._MapBaseValueIterable$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    class MapMixin extends core.Object {
-      forEach(action) {
-        for (let key of this.keys) {
-          action(key, this._get(key));
-        }
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        for (let key of other[dartx.keys]) {
-          this._set(key, other[dartx._get](key));
-        }
-      }
-      containsValue(value) {
-        for (let key of this.keys) {
-          if (dart.equals(this._get(key), value)) return true;
-        }
-        return false;
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        if (dart.test(this.containsKey(key))) {
-          return this._get(key);
-        }
-        return this._set(key, ifAbsent());
-      }
-      containsKey(key) {
-        return this.keys[dartx.contains](key);
-      }
-      get length() {
-        return this.keys[dartx.length];
-      }
-      get isEmpty() {
-        return this.keys[dartx.isEmpty];
-      }
-      get isNotEmpty() {
-        return this.keys[dartx.isNotEmpty];
-      }
-      get values() {
-        return new (_MapBaseValueIterableOfK$V())(this);
-      }
-      toString() {
-        return collection.Maps.mapToString(this);
-      }
-    }
-    dart.addTypeTests(MapMixin);
-    MapMixin[dart.implements] = () => [MapOfK$V()];
-    dart.setSignature(MapMixin, {
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        values: dart.definiteFunctionType(core.Iterable$(V), [])
-      }),
-      methods: () => ({
-        forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object])
-      })
-    });
-    dart.defineExtensionMembers(MapMixin, [
-      'forEach',
-      'addAll',
-      'containsValue',
-      'putIfAbsent',
-      'containsKey',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'values'
-    ]);
-    return MapMixin;
-  });
-  collection.MapMixin = MapMixin();
-  collection.MapBase$ = dart.generic((K, V) => {
-    class MapBase extends dart.mixin(core.Object, collection.MapMixin$(K, V)) {}
-    return MapBase;
-  });
-  collection.MapBase = MapBase();
-  collection._UnmodifiableMapMixin$ = dart.generic((K, V) => {
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    class _UnmodifiableMapMixin extends core.Object {
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
-        return value;
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
-      }
-      clear() {
-        dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
-      }
-      remove(key) {
-        dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
-      }
-    }
-    dart.addTypeTests(_UnmodifiableMapMixin);
-    _UnmodifiableMapMixin[dart.implements] = () => [MapOfK$V()];
-    dart.setSignature(_UnmodifiableMapMixin, {
-      methods: () => ({
-        _set: dart.definiteFunctionType(dart.void, [K, V]),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        remove: dart.definiteFunctionType(V, [core.Object]),
-        putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()])
-      })
-    });
-    dart.defineExtensionMembers(_UnmodifiableMapMixin, [
-      '_set',
-      'addAll',
-      'clear',
-      'remove',
-      'putIfAbsent'
-    ]);
-    return _UnmodifiableMapMixin;
-  });
-  collection._UnmodifiableMapMixin = _UnmodifiableMapMixin();
-  collection.UnmodifiableMapBase$ = dart.generic((K, V) => {
-    class UnmodifiableMapBase extends dart.mixin(collection.MapBase$(K, V), collection._UnmodifiableMapMixin$(K, V)) {
-      new() {
-        super.new();
-      }
-    }
-    return UnmodifiableMapBase;
-  });
-  collection.UnmodifiableMapBase = UnmodifiableMapBase();
-  collection._MapBaseValueIterable$ = dart.generic((K, V) => {
-    let _MapBaseValueIteratorOfK$V = () => (_MapBaseValueIteratorOfK$V = dart.constFn(collection._MapBaseValueIterator$(K, V)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    class _MapBaseValueIterable extends core.Iterable$(V) {
-      new(map) {
-        this[_map$0] = map;
-        super.new();
-      }
-      get length() {
-        return this[_map$0][dartx.length];
-      }
-      get isEmpty() {
-        return this[_map$0][dartx.isEmpty];
-      }
-      get isNotEmpty() {
-        return this[_map$0][dartx.isNotEmpty];
-      }
-      get first() {
-        return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.first]);
-      }
-      get single() {
-        return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.single]);
-      }
-      get last() {
-        return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.last]);
-      }
-      get iterator() {
-        return new (_MapBaseValueIteratorOfK$V())(this[_map$0]);
-      }
-    }
-    _MapBaseValueIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(_MapBaseValueIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._MapBaseValueIterable$(K, V), [MapOfK$V()])}),
-      fields: () => ({[_map$0]: MapOfK$V()}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(V), [])})
-    });
-    dart.defineExtensionMembers(_MapBaseValueIterable, [
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'single',
-      'last',
-      'iterator'
-    ]);
-    return _MapBaseValueIterable;
-  });
-  collection._MapBaseValueIterable = _MapBaseValueIterable();
-  collection._MapBaseValueIterator$ = dart.generic((K, V) => {
-    let IteratorOfK = () => (IteratorOfK = dart.constFn(core.Iterator$(K)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let IteratorOfV = () => (IteratorOfV = dart.constFn(core.Iterator$(V)))();
-    class _MapBaseValueIterator extends core.Object {
-      new(map) {
-        this[_map$0] = map;
-        this[_keys] = map[dartx.keys][dartx.iterator];
-        this[_current$2] = null;
-      }
-      moveNext() {
-        if (dart.test(this[_keys].moveNext())) {
-          this[_current$2] = this[_map$0][dartx._get](this[_keys].current);
-          return true;
-        }
-        this[_current$2] = null;
-        return false;
-      }
-      get current() {
-        return this[_current$2];
-      }
-    }
-    dart.addTypeTests(_MapBaseValueIterator);
-    _MapBaseValueIterator[dart.implements] = () => [IteratorOfV()];
-    dart.setSignature(_MapBaseValueIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._MapBaseValueIterator$(K, V), [MapOfK$V()])}),
-      fields: () => ({
-        [_keys]: IteratorOfK(),
-        [_map$0]: MapOfK$V(),
-        [_current$2]: V
-      }),
-      getters: () => ({current: dart.definiteFunctionType(V, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _MapBaseValueIterator;
-  });
-  collection._MapBaseValueIterator = _MapBaseValueIterator();
-  collection.MapView$ = dart.generic((K, V) => {
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    class MapView extends core.Object {
-      new(map) {
-        this[_map$0] = map;
-      }
-      _get(key) {
-        return this[_map$0][dartx._get](key);
-      }
-      _set(key, value) {
-        K._check(key);
-        V._check(value);
-        this[_map$0][dartx._set](key, value);
-        return value;
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        this[_map$0][dartx.addAll](other);
-      }
-      clear() {
-        this[_map$0][dartx.clear]();
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        return this[_map$0][dartx.putIfAbsent](key, ifAbsent);
-      }
-      containsKey(key) {
-        return this[_map$0][dartx.containsKey](key);
-      }
-      containsValue(value) {
-        return this[_map$0][dartx.containsValue](value);
-      }
-      forEach(action) {
-        this[_map$0][dartx.forEach](action);
-      }
-      get isEmpty() {
-        return this[_map$0][dartx.isEmpty];
-      }
-      get isNotEmpty() {
-        return this[_map$0][dartx.isNotEmpty];
-      }
-      get length() {
-        return this[_map$0][dartx.length];
-      }
-      get keys() {
-        return this[_map$0][dartx.keys];
-      }
-      remove(key) {
-        return this[_map$0][dartx.remove](key);
-      }
-      toString() {
-        return dart.toString(this[_map$0]);
-      }
-      get values() {
-        return this[_map$0][dartx.values];
-      }
-    }
-    dart.addTypeTests(MapView);
-    MapView[dart.implements] = () => [MapOfK$V()];
-    dart.setSignature(MapView, {
-      constructors: () => ({new: dart.definiteFunctionType(collection.MapView$(K, V), [MapOfK$V()])}),
-      fields: () => ({[_map$0]: MapOfK$V()}),
-      getters: () => ({
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        length: dart.definiteFunctionType(core.int, []),
-        keys: dart.definiteFunctionType(core.Iterable$(K), []),
-        values: dart.definiteFunctionType(core.Iterable$(V), [])
-      }),
-      methods: () => ({
-        _get: dart.definiteFunctionType(V, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [K, V]),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
-        remove: dart.definiteFunctionType(V, [core.Object])
-      })
-    });
-    dart.defineExtensionMembers(MapView, [
-      '_get',
-      '_set',
-      'addAll',
-      'clear',
-      'putIfAbsent',
-      'containsKey',
-      'containsValue',
-      'forEach',
-      'remove',
-      'isEmpty',
-      'isNotEmpty',
-      'length',
-      'keys',
-      'values'
-    ]);
-    return MapView;
-  });
-  collection.MapView = MapView();
-  collection.UnmodifiableMapView$ = dart.generic((K, V) => {
-    class UnmodifiableMapView extends dart.mixin(collection.MapView$(K, V), collection._UnmodifiableMapMixin$(K, V)) {
-      new(map) {
-        super.new(map);
-      }
-    }
-    return UnmodifiableMapView;
-  });
-  collection.UnmodifiableMapView = UnmodifiableMapView();
-  collection.Maps = class Maps extends core.Object {
-    static containsValue(map, value) {
-      for (let v of map[dartx.values]) {
-        if (dart.equals(v, value)) {
-          return true;
-        }
-      }
-      return false;
-    }
-    static containsKey(map, key) {
-      for (let k of map[dartx.keys]) {
-        if (dart.equals(k, key)) {
-          return true;
-        }
-      }
-      return false;
-    }
-    static putIfAbsent(map, key, ifAbsent) {
-      if (dart.test(map[dartx.containsKey](key))) {
-        return map[dartx._get](key);
-      }
-      let v = ifAbsent();
-      map[dartx._set](key, v);
-      return v;
-    }
-    static clear(map) {
-      for (let k of map[dartx.keys][dartx.toList]()) {
-        map[dartx.remove](k);
-      }
-    }
-    static forEach(map, f) {
-      for (let k of map[dartx.keys]) {
-        dart.dcall(f, k, map[dartx._get](k));
-      }
-    }
-    static getValues(map) {
-      return map[dartx.keys][dartx.map](dart.dynamic)(dart.fn(key => map[dartx._get](key), dynamicTodynamic$()));
-    }
-    static length(map) {
-      return map[dartx.keys][dartx.length];
-    }
-    static isEmpty(map) {
-      return map[dartx.keys][dartx.isEmpty];
-    }
-    static isNotEmpty(map) {
-      return map[dartx.keys][dartx.isNotEmpty];
-    }
-    static mapToString(m) {
-      if (dart.test(collection._isToStringVisiting(m))) {
-        return '{...}';
-      }
-      let result = new core.StringBuffer();
-      try {
-        collection._toStringVisiting[dartx.add](m);
-        result.write('{');
-        let first = true;
-        m[dartx.forEach](dart.fn((k, v) => {
-          if (!first) {
-            result.write(', ');
-          }
-          first = false;
-          result.write(k);
-          result.write(': ');
-          result.write(v);
-        }, dynamicAnddynamicToNull()));
-        result.write('}');
-      } finally {
-        dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
-        collection._toStringVisiting[dartx.removeLast]();
-      }
-      return result.toString();
-    }
-    static _id(x) {
-      return x;
-    }
-    static _fillMapWithMappedIterable(map, iterable, key, value) {
-      if (key == null) key = collection.Maps._id;
-      if (value == null) value = collection.Maps._id;
-      for (let element of iterable) {
-        map[dartx._set](dart.dcall(key, element), dart.dcall(value, element));
-      }
-    }
-    static _fillMapWithIterables(map, keys, values) {
-      let keyIterator = keys[dartx.iterator];
-      let valueIterator = values[dartx.iterator];
-      let hasNextKey = keyIterator.moveNext();
-      let hasNextValue = valueIterator.moveNext();
-      while (dart.test(hasNextKey) && dart.test(hasNextValue)) {
-        map[dartx._set](keyIterator.current, valueIterator.current);
-        hasNextKey = keyIterator.moveNext();
-        hasNextValue = valueIterator.moveNext();
-      }
-      if (dart.test(hasNextKey) || dart.test(hasNextValue)) {
-        dart.throw(new core.ArgumentError("Iterables do not have same length."));
-      }
-    }
-  };
-  dart.setSignature(collection.Maps, {
-    statics: () => ({
-      containsValue: dart.definiteFunctionType(core.bool, [core.Map, core.Object]),
-      containsKey: dart.definiteFunctionType(core.bool, [core.Map, core.Object]),
-      putIfAbsent: dart.definiteFunctionType(dart.dynamic, [core.Map, dart.dynamic, VoidTodynamic()]),
-      clear: dart.definiteFunctionType(dart.dynamic, [core.Map]),
-      forEach: dart.definiteFunctionType(dart.dynamic, [core.Map, dynamicAnddynamicTovoid()]),
-      getValues: dart.definiteFunctionType(core.Iterable, [core.Map]),
-      length: dart.definiteFunctionType(core.int, [core.Map]),
-      isEmpty: dart.definiteFunctionType(core.bool, [core.Map]),
-      isNotEmpty: dart.definiteFunctionType(core.bool, [core.Map]),
-      mapToString: dart.definiteFunctionType(core.String, [core.Map]),
-      _id: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _fillMapWithMappedIterable: dart.definiteFunctionType(dart.void, [core.Map, core.Iterable, dynamicTodynamic(), dynamicTodynamic()]),
-      _fillMapWithIterables: dart.definiteFunctionType(dart.void, [core.Map, core.Iterable, core.Iterable])
-    }),
-    names: ['containsValue', 'containsKey', 'putIfAbsent', 'clear', 'forEach', 'getValues', 'length', 'isEmpty', 'isNotEmpty', 'mapToString', '_id', '_fillMapWithMappedIterable', '_fillMapWithIterables']
-  });
-  collection.Queue$ = dart.generic(E => {
-    let ListQueueOfE = () => (ListQueueOfE = dart.constFn(collection.ListQueue$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class Queue extends core.Object {
-      static new() {
-        return new (ListQueueOfE())();
-      }
-      static from(elements) {
-        return ListQueueOfE().from(elements);
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this.iterator);
-      }
-    }
-    dart.addTypeTests(Queue);
-    Queue[dart.implements] = () => [IterableOfE(), _internal.EfficientLength];
-    dart.setSignature(Queue, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.Queue$(E), []),
-        from: dart.definiteFunctionType(collection.Queue$(E), [core.Iterable])
-      })
-    });
-    return Queue;
-  });
-  collection.Queue = Queue();
-  const _previousLink = Symbol('_previousLink');
-  const _nextLink = Symbol('_nextLink');
-  const _link = Symbol('_link');
-  collection._DoubleLink$ = dart.generic(E => {
-    class _DoubleLink extends core.Object {
-      new() {
-        this[_previousLink] = null;
-        this[_nextLink] = null;
-      }
-      [_link](previous, next) {
-        E._check(previous);
-        E._check(next);
-        this[_nextLink] = next;
-        this[_previousLink] = previous;
-        if (previous != null) previous[_nextLink] = this;
-        if (next != null) next[_previousLink] = this;
-      }
-      [_unlink$]() {
-        if (this[_previousLink] != null) this[_previousLink][_nextLink] = this[_nextLink];
-        if (this[_nextLink] != null) this[_nextLink][_previousLink] = this[_previousLink];
-        this[_nextLink] = null;
-        this[_previousLink] = null;
-      }
-    }
-    dart.addTypeTests(_DoubleLink);
-    dart.setSignature(_DoubleLink, {
-      fields: () => ({
-        [_previousLink]: E,
-        [_nextLink]: E
-      }),
-      methods: () => ({
-        [_link]: dart.definiteFunctionType(dart.void, [E, E]),
-        [_unlink$]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _DoubleLink;
-  });
-  collection._DoubleLink = _DoubleLink();
-  collection.DoubleLinkedQueueEntry$ = dart.generic(E => {
-    let _UserDoubleLinkedQueueEntryOfE = () => (_UserDoubleLinkedQueueEntryOfE = dart.constFn(collection._UserDoubleLinkedQueueEntry$(E)))();
-    class DoubleLinkedQueueEntry extends core.Object {
-      static new(element) {
-        return new (_UserDoubleLinkedQueueEntryOfE())(element);
-      }
-    }
-    dart.addTypeTests(DoubleLinkedQueueEntry);
-    dart.setSignature(DoubleLinkedQueueEntry, {
-      constructors: () => ({new: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), [E])})
-    });
-    return DoubleLinkedQueueEntry;
-  });
-  collection.DoubleLinkedQueueEntry = DoubleLinkedQueueEntry();
-  collection._UserDoubleLinkedQueueEntry$ = dart.generic(E => {
-    let _UserDoubleLinkedQueueEntryOfE = () => (_UserDoubleLinkedQueueEntryOfE = dart.constFn(collection._UserDoubleLinkedQueueEntry$(E)))();
-    let DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
-    class _UserDoubleLinkedQueueEntry extends collection._DoubleLink {
-      new(element) {
-        this.element = element;
-        super.new();
-      }
-      append(e) {
-        E._check(e);
-        new (_UserDoubleLinkedQueueEntryOfE())(e)[_link](this, this[_nextLink]);
-      }
-      prepend(e) {
-        E._check(e);
-        new (_UserDoubleLinkedQueueEntryOfE())(e)[_link](this[_previousLink], this);
-      }
-      remove() {
-        this[_unlink$]();
-        return this.element;
-      }
-      previousEntry() {
-        return this[_previousLink];
-      }
-      nextEntry() {
-        return this[_nextLink];
-      }
-    }
-    _UserDoubleLinkedQueueEntry[dart.implements] = () => [DoubleLinkedQueueEntryOfE()];
-    dart.setSignature(_UserDoubleLinkedQueueEntry, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._UserDoubleLinkedQueueEntry$(E), [E])}),
-      fields: () => ({element: E}),
-      methods: () => ({
-        append: dart.definiteFunctionType(dart.void, [E]),
-        prepend: dart.definiteFunctionType(dart.void, [E]),
-        remove: dart.definiteFunctionType(E, []),
-        previousEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
-        nextEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), [])
-      })
-    });
-    return _UserDoubleLinkedQueueEntry;
-  }, _UserDoubleLinkedQueueEntry => {
-    dart.setBaseClass(_UserDoubleLinkedQueueEntry, collection._DoubleLink$(_UserDoubleLinkedQueueEntry));
-  });
-  collection._UserDoubleLinkedQueueEntry = _UserDoubleLinkedQueueEntry();
-  const _queue = Symbol('_queue');
-  const _append = Symbol('_append');
-  const _prepend = Symbol('_prepend');
-  const _asNonSentinelEntry = Symbol('_asNonSentinelEntry');
-  collection._DoubleLinkedQueueEntry$ = dart.generic(E => {
-    let _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
-    let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
-    class _DoubleLinkedQueueEntry extends collection._DoubleLink {
-      new(queue) {
-        this[_queue] = queue;
-        super.new();
-      }
-      [_append](e) {
-        E._check(e);
-        new (_DoubleLinkedQueueElementOfE())(e, this[_queue])[_link](this, this[_nextLink]);
-      }
-      [_prepend](e) {
-        E._check(e);
-        new (_DoubleLinkedQueueElementOfE())(e, this[_queue])[_link](this[_previousLink], this);
-      }
-      nextEntry() {
-        return this[_nextLink][_asNonSentinelEntry]();
-      }
-      previousEntry() {
-        return this[_previousLink][_asNonSentinelEntry]();
-      }
-    }
-    dart.setSignature(_DoubleLinkedQueueEntry, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueEntry$(E), [DoubleLinkedQueueOfE()])}),
-      fields: () => ({[_queue]: DoubleLinkedQueueOfE()}),
-      methods: () => ({
-        [_append]: dart.definiteFunctionType(dart.void, [E]),
-        [_prepend]: dart.definiteFunctionType(dart.void, [E]),
-        nextEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
-        previousEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), [])
-      })
-    });
-    return _DoubleLinkedQueueEntry;
-  }, _DoubleLinkedQueueEntry => {
-    dart.setBaseClass(_DoubleLinkedQueueEntry, collection._DoubleLink$(_DoubleLinkedQueueEntry));
-  });
-  collection._DoubleLinkedQueueEntry = _DoubleLinkedQueueEntry();
-  const _elementCount = Symbol('_elementCount');
-  collection._DoubleLinkedQueueElement$ = dart.generic(E => {
-    let DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
-    let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
-    class _DoubleLinkedQueueElement extends collection._DoubleLinkedQueueEntry$(E) {
-      new(element, queue) {
-        this.element = element;
-        super.new(queue);
-      }
-      append(e) {
-        E._check(e);
-        this[_append](e);
-        if (this[_queue] != null) {
-          let o = this[_queue];
-          o[_elementCount] = dart.notNull(o[_elementCount]) + 1;
-        }
-      }
-      prepend(e) {
-        E._check(e);
-        this[_prepend](e);
-        if (this[_queue] != null) {
-          let o = this[_queue];
-          o[_elementCount] = dart.notNull(o[_elementCount]) + 1;
-        }
-      }
-      [_remove]() {
-        this[_queue] = null;
-        this[_unlink$]();
-        return this.element;
-      }
-      remove() {
-        if (this[_queue] != null) {
-          let o = this[_queue];
-          o[_elementCount] = dart.notNull(o[_elementCount]) - 1;
-        }
-        return this[_remove]();
-      }
-      [_asNonSentinelEntry]() {
-        return this;
-      }
-    }
-    _DoubleLinkedQueueElement[dart.implements] = () => [DoubleLinkedQueueEntryOfE()];
-    dart.setSignature(_DoubleLinkedQueueElement, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueElement$(E), [E, DoubleLinkedQueueOfE()])}),
-      fields: () => ({element: E}),
-      methods: () => ({
-        append: dart.definiteFunctionType(dart.void, [E]),
-        prepend: dart.definiteFunctionType(dart.void, [E]),
-        [_remove]: dart.definiteFunctionType(E, []),
-        remove: dart.definiteFunctionType(E, []),
-        [_asNonSentinelEntry]: dart.definiteFunctionType(collection._DoubleLinkedQueueElement$(E), [])
-      })
-    });
-    return _DoubleLinkedQueueElement;
-  });
-  collection._DoubleLinkedQueueElement = _DoubleLinkedQueueElement();
-  collection._DoubleLinkedQueueSentinel$ = dart.generic(E => {
-    let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
-    class _DoubleLinkedQueueSentinel extends collection._DoubleLinkedQueueEntry$(E) {
-      new(queue) {
-        super.new(queue);
-        this[_previousLink] = this;
-        this[_nextLink] = this;
-      }
-      [_asNonSentinelEntry]() {
-        return null;
-      }
-      [_remove]() {
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-      get element() {
-        dart.throw(_internal.IterableElementError.noElement());
-      }
-    }
-    dart.setSignature(_DoubleLinkedQueueSentinel, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueSentinel$(E), [DoubleLinkedQueueOfE()])}),
-      getters: () => ({element: dart.definiteFunctionType(E, [])}),
-      methods: () => ({
-        [_asNonSentinelEntry]: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
-        [_remove]: dart.definiteFunctionType(E, [])
-      })
-    });
-    return _DoubleLinkedQueueSentinel;
-  });
-  collection._DoubleLinkedQueueSentinel = _DoubleLinkedQueueSentinel();
-  const _sentinel = Symbol('_sentinel');
-  collection.DoubleLinkedQueue$ = dart.generic(E => {
-    let _DoubleLinkedQueueSentinelOfE = () => (_DoubleLinkedQueueSentinelOfE = dart.constFn(collection._DoubleLinkedQueueSentinel$(E)))();
-    let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
-    let _DoubleLinkedQueueIteratorOfE = () => (_DoubleLinkedQueueIteratorOfE = dart.constFn(collection._DoubleLinkedQueueIterator$(E)))();
-    let QueueOfE = () => (QueueOfE = dart.constFn(collection.Queue$(E)))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    let DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
-    let DoubleLinkedQueueEntryOfETovoid = () => (DoubleLinkedQueueEntryOfETovoid = dart.constFn(dart.functionType(dart.void, [DoubleLinkedQueueEntryOfE()])))();
-    class DoubleLinkedQueue extends core.Iterable$(E) {
-      new() {
-        this[_sentinel] = null;
-        this[_elementCount] = 0;
-        super.new();
-        this[_sentinel] = new (_DoubleLinkedQueueSentinelOfE())(this);
-      }
-      static from(elements) {
-        let list = new (DoubleLinkedQueueOfE())();
-        for (let e of elements) {
-          let element = E.as(e);
-          list.addLast(element);
-        }
-        return DoubleLinkedQueueOfE()._check(list);
-      }
-      get length() {
-        return this[_elementCount];
-      }
-      addLast(value) {
-        E._check(value);
-        this[_sentinel][_prepend](value);
-        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
-      }
-      addFirst(value) {
-        E._check(value);
-        this[_sentinel][_append](value);
-        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
-      }
-      add(value) {
-        E._check(value);
-        this[_sentinel][_prepend](value);
-        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
-      }
-      addAll(iterable) {
-        IterableOfE()._check(iterable);
-        for (let value of iterable) {
-          this[_sentinel][_prepend](value);
-          this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
-        }
-      }
-      removeLast() {
-        let lastEntry = this[_sentinel][_previousLink];
-        let result = lastEntry[_remove]();
-        this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
-        return result;
-      }
-      removeFirst() {
-        let firstEntry = this[_sentinel][_nextLink];
-        let result = firstEntry[_remove]();
-        this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
-        return result;
-      }
-      remove(o) {
-        let entry = this[_sentinel][_nextLink];
-        while (!core.identical(entry, this[_sentinel])) {
-          if (dart.equals(entry.element, o)) {
-            entry[_remove]();
-            this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
-            return true;
-          }
-          entry = entry[_nextLink];
-        }
-        return false;
-      }
-      [_filter](test, removeMatching) {
-        let entry = this[_sentinel][_nextLink];
-        while (!core.identical(entry, this[_sentinel])) {
-          let next = entry[_nextLink];
-          if (core.identical(removeMatching, test(entry.element))) {
-            entry[_remove]();
-            this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
-          }
-          entry = next;
-        }
-      }
-      removeWhere(test) {
-        this[_filter](test, true);
-      }
-      retainWhere(test) {
-        this[_filter](test, false);
-      }
-      get first() {
-        let firstEntry = this[_sentinel][_nextLink];
-        return firstEntry.element;
-      }
-      get last() {
-        let lastEntry = this[_sentinel][_previousLink];
-        return lastEntry.element;
-      }
-      get single() {
-        if (core.identical(this[_sentinel][_nextLink], this[_sentinel][_previousLink])) {
-          let entry = this[_sentinel][_nextLink];
-          return entry.element;
-        }
-        dart.throw(_internal.IterableElementError.tooMany());
-      }
-      lastEntry() {
-        return this[_sentinel].previousEntry();
-      }
-      firstEntry() {
-        return this[_sentinel].nextEntry();
-      }
-      get isEmpty() {
-        return core.identical(this[_sentinel][_nextLink], this[_sentinel]);
-      }
-      clear() {
-        this[_sentinel][_nextLink] = this[_sentinel];
-        this[_sentinel][_previousLink] = this[_sentinel];
-        this[_elementCount] = 0;
-      }
-      forEachEntry(f) {
-        let entry = this[_sentinel][_nextLink];
-        while (!core.identical(entry, this[_sentinel])) {
-          let nextEntry = entry[_nextLink];
-          let element = _DoubleLinkedQueueElementOfE()._check(entry);
-          f(element);
-          entry = nextEntry;
-        }
-      }
-      get iterator() {
-        return new (_DoubleLinkedQueueIteratorOfE())(this[_sentinel]);
-      }
-      toString() {
-        return collection.IterableBase.iterableToFullString(this, '{', '}');
-      }
-    }
-    DoubleLinkedQueue[dart.implements] = () => [QueueOfE()];
-    dart.setSignature(DoubleLinkedQueue, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.DoubleLinkedQueue$(E), []),
-        from: dart.definiteFunctionType(collection.DoubleLinkedQueue$(E), [core.Iterable])
-      }),
-      fields: () => ({
-        [_sentinel]: _DoubleLinkedQueueSentinelOfE(),
-        [_elementCount]: core.int
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(collection._DoubleLinkedQueueIterator$(E), [])}),
-      methods: () => ({
-        addLast: dart.definiteFunctionType(dart.void, [E]),
-        addFirst: dart.definiteFunctionType(dart.void, [E]),
-        add: dart.definiteFunctionType(dart.void, [E]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        removeLast: dart.definiteFunctionType(E, []),
-        removeFirst: dart.definiteFunctionType(E, []),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_filter]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        lastEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
-        firstEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
-        clear: dart.definiteFunctionType(dart.void, []),
-        forEachEntry: dart.definiteFunctionType(dart.void, [DoubleLinkedQueueEntryOfETovoid()])
-      })
-    });
-    dart.defineExtensionMembers(DoubleLinkedQueue, [
-      'toString',
-      'length',
-      'first',
-      'last',
-      'single',
-      'isEmpty',
-      'iterator'
-    ]);
-    return DoubleLinkedQueue;
-  });
-  collection.DoubleLinkedQueue = DoubleLinkedQueue();
-  const _nextEntry = Symbol('_nextEntry');
-  collection._DoubleLinkedQueueIterator$ = dart.generic(E => {
-    let _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let _DoubleLinkedQueueSentinelOfE = () => (_DoubleLinkedQueueSentinelOfE = dart.constFn(collection._DoubleLinkedQueueSentinel$(E)))();
-    let _DoubleLinkedQueueEntryOfE = () => (_DoubleLinkedQueueEntryOfE = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
-    class _DoubleLinkedQueueIterator extends core.Object {
-      new(sentinel) {
-        this[_sentinel] = sentinel;
-        this[_nextEntry] = sentinel[_nextLink];
-        this[_current$2] = null;
-      }
-      moveNext() {
-        if (core.identical(this[_nextEntry], this[_sentinel])) {
-          this[_current$2] = null;
-          this[_nextEntry] = null;
-          this[_sentinel] = null;
-          return false;
-        }
-        let elementEntry = _DoubleLinkedQueueElementOfE()._check(this[_nextEntry]);
-        if (elementEntry[_queue] == null) {
-          dart.throw(new core.ConcurrentModificationError(this[_sentinel][_queue]));
-        }
-        this[_current$2] = elementEntry.element;
-        this[_nextEntry] = elementEntry[_nextLink];
-        return true;
-      }
-      get current() {
-        return this[_current$2];
-      }
-    }
-    dart.addTypeTests(_DoubleLinkedQueueIterator);
-    _DoubleLinkedQueueIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_DoubleLinkedQueueIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueIterator$(E), [_DoubleLinkedQueueSentinelOfE()])}),
-      fields: () => ({
-        [_sentinel]: _DoubleLinkedQueueSentinelOfE(),
-        [_nextEntry]: _DoubleLinkedQueueEntryOfE(),
-        [_current$2]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _DoubleLinkedQueueIterator;
-  });
-  collection._DoubleLinkedQueueIterator = _DoubleLinkedQueueIterator();
-  const _head = Symbol('_head');
-  const _tail = Symbol('_tail');
-  const _table = Symbol('_table');
-  const _checkModification = Symbol('_checkModification');
-  const _writeToList = Symbol('_writeToList');
-  const _preGrow = Symbol('_preGrow');
-  const _grow = Symbol('_grow');
-  collection.ListQueue$ = dart.generic(E => {
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let ListQueueOfE = () => (ListQueueOfE = dart.constFn(collection.ListQueue$(E)))();
-    let _ListQueueIteratorOfE = () => (_ListQueueIteratorOfE = dart.constFn(collection._ListQueueIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let QueueOfE = () => (QueueOfE = dart.constFn(collection.Queue$(E)))();
-    let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    class ListQueue extends core.Iterable$(E) {
-      new(initialCapacity) {
-        if (initialCapacity === void 0) initialCapacity = null;
-        this[_head] = 0;
-        this[_tail] = 0;
-        this[_table] = null;
-        this[_modificationCount] = 0;
-        super.new();
-        if (initialCapacity == null || dart.notNull(initialCapacity) < collection.ListQueue._INITIAL_CAPACITY) {
-          initialCapacity = collection.ListQueue._INITIAL_CAPACITY;
-        } else if (!dart.test(collection.ListQueue._isPowerOf2(initialCapacity))) {
-          initialCapacity = collection.ListQueue._nextPowerOf2(initialCapacity);
-        }
-        dart.assert(collection.ListQueue._isPowerOf2(initialCapacity));
-        this[_table] = ListOfE().new(initialCapacity);
-      }
-      static from(elements) {
-        if (core.List.is(elements)) {
-          let length = elements[dartx.length];
-          let queue = new (ListQueueOfE())(dart.notNull(length) + 1);
-          dart.assert(dart.notNull(queue[_table][dartx.length]) > dart.notNull(length));
-          for (let i = 0; i < dart.notNull(length); i++) {
-            queue[_table][dartx._set](i, E.as(elements[dartx._get](i)));
-          }
-          queue[_tail] = length;
-          return queue;
-        } else {
-          let capacity = collection.ListQueue._INITIAL_CAPACITY;
-          if (_internal.EfficientLength.is(elements)) {
-            capacity = elements[dartx.length];
-          }
-          let result = new (ListQueueOfE())(capacity);
-          for (let element of elements) {
-            result.addLast(E.as(element));
-          }
-          return result;
-        }
-      }
-      get iterator() {
-        return new (_ListQueueIteratorOfE())(this);
-      }
-      forEach(action) {
-        let modificationCount = this[_modificationCount];
-        for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0) {
-          action(this[_table][dartx._get](i));
-          this[_checkModification](modificationCount);
-        }
-      }
-      get isEmpty() {
-        return this[_head] == this[_tail];
-      }
-      get length() {
-        return (dart.notNull(this[_tail]) - dart.notNull(this[_head]) & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
-      }
-      get first() {
-        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
-        return this[_table][dartx._get](this[_head]);
-      }
-      get last() {
-        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
-        return this[_table][dartx._get]((dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0);
-      }
-      get single() {
-        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
-        if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
-        return this[_table][dartx._get](this[_head]);
-      }
-      elementAt(index) {
-        core.RangeError.checkValidIndex(index, this);
-        return this[_table][dartx._get]((dart.notNull(this[_head]) + dart.notNull(index) & dart.notNull(this[_table][dartx.length]) - 1) >>> 0);
-      }
-      toList(opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let list = null;
-        if (dart.test(growable)) {
-          list = ListOfE().new();
-          list[dartx.length] = this.length;
-        } else {
-          list = ListOfE().new(this.length);
-        }
-        this[_writeToList](list);
-        return list;
-      }
-      add(value) {
-        E._check(value);
-        this[_add$0](value);
-      }
-      addAll(elements) {
-        IterableOfE()._check(elements);
-        if (ListOfE().is(elements)) {
-          let list = elements;
-          let addCount = list[dartx.length];
-          let length = this.length;
-          if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this[_table][dartx.length])) {
-            this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
-            this[_table][dartx.setRange](length, dart.notNull(length) + dart.notNull(addCount), list, 0);
-            this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
-          } else {
-            let endSpace = dart.notNull(this[_table][dartx.length]) - dart.notNull(this[_tail]);
-            if (dart.notNull(addCount) < endSpace) {
-              this[_table][dartx.setRange](this[_tail], dart.notNull(this[_tail]) + dart.notNull(addCount), list, 0);
-              this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
-            } else {
-              let preSpace = dart.notNull(addCount) - endSpace;
-              this[_table][dartx.setRange](this[_tail], dart.notNull(this[_tail]) + endSpace, list, 0);
-              this[_table][dartx.setRange](0, preSpace, list, endSpace);
-              this[_tail] = preSpace;
-            }
-          }
-          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        } else {
-          for (let element of elements)
-            this[_add$0](element);
-        }
-      }
-      remove(value) {
-        for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0) {
-          let element = this[_table][dartx._get](i);
-          if (dart.equals(element, value)) {
-            this[_remove](i);
-            this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-            return true;
-          }
-        }
-        return false;
-      }
-      [_filterWhere](test, removeMatching) {
-        let modificationCount = this[_modificationCount];
-        let i = this[_head];
-        while (i != this[_tail]) {
-          let element = this[_table][dartx._get](i);
-          let remove = core.identical(removeMatching, test(element));
-          this[_checkModification](modificationCount);
-          if (remove) {
-            i = this[_remove](i);
-            modificationCount = this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-          } else {
-            i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
-          }
-        }
-      }
-      removeWhere(test) {
-        this[_filterWhere](test, true);
-      }
-      retainWhere(test) {
-        this[_filterWhere](test, false);
-      }
-      clear() {
-        if (this[_head] != this[_tail]) {
-          for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0) {
-            this[_table][dartx._set](i, null);
-          }
-          this[_head] = this[_tail] = 0;
-          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        }
-      }
-      toString() {
-        return collection.IterableBase.iterableToFullString(this, "{", "}");
-      }
-      addLast(value) {
-        E._check(value);
-        this[_add$0](value);
-      }
-      addFirst(value) {
-        E._check(value);
-        this[_head] = (dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
-        this[_table][dartx._set](this[_head], value);
-        if (this[_head] == this[_tail]) this[_grow]();
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-      }
-      removeFirst() {
-        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        let result = this[_table][dartx._get](this[_head]);
-        this[_table][dartx._set](this[_head], null);
-        this[_head] = (dart.notNull(this[_head]) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
-        return result;
-      }
-      removeLast() {
-        if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        this[_tail] = (dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
-        let result = this[_table][dartx._get](this[_tail]);
-        this[_table][dartx._set](this[_tail], null);
-        return result;
-      }
-      static _isPowerOf2(number) {
-        return (dart.notNull(number) & dart.notNull(number) - 1) == 0;
-      }
-      static _nextPowerOf2(number) {
-        dart.assert(dart.notNull(number) > 0);
-        number = (dart.notNull(number) << 1 >>> 0) - 1;
-        for (;;) {
-          let nextNumber = (dart.notNull(number) & dart.notNull(number) - 1) >>> 0;
-          if (nextNumber == 0) return number;
-          number = nextNumber;
-        }
-      }
-      [_checkModification](expectedModificationCount) {
-        if (expectedModificationCount != this[_modificationCount]) {
-          dart.throw(new core.ConcurrentModificationError(this));
-        }
-      }
-      [_add$0](element) {
-        E._check(element);
-        this[_table][dartx._set](this[_tail], element);
-        this[_tail] = (dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
-        if (this[_head] == this[_tail]) this[_grow]();
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-      }
-      [_remove](offset) {
-        let mask = dart.notNull(this[_table][dartx.length]) - 1;
-        let startDistance = (dart.notNull(offset) - dart.notNull(this[_head]) & mask) >>> 0;
-        let endDistance = (dart.notNull(this[_tail]) - dart.notNull(offset) & mask) >>> 0;
-        if (startDistance < endDistance) {
-          let i = offset;
-          while (i != this[_head]) {
-            let prevOffset = (dart.notNull(i) - 1 & mask) >>> 0;
-            this[_table][dartx._set](i, this[_table][dartx._get](prevOffset));
-            i = prevOffset;
-          }
-          this[_table][dartx._set](this[_head], null);
-          this[_head] = (dart.notNull(this[_head]) + 1 & mask) >>> 0;
-          return (dart.notNull(offset) + 1 & mask) >>> 0;
-        } else {
-          this[_tail] = (dart.notNull(this[_tail]) - 1 & mask) >>> 0;
-          let i = offset;
-          while (i != this[_tail]) {
-            let nextOffset = (dart.notNull(i) + 1 & mask) >>> 0;
-            this[_table][dartx._set](i, this[_table][dartx._get](nextOffset));
-            i = nextOffset;
-          }
-          this[_table][dartx._set](this[_tail], null);
-          return offset;
-        }
-      }
-      [_grow]() {
-        let newTable = ListOfE().new(dart.notNull(this[_table][dartx.length]) * 2);
-        let split = dart.notNull(this[_table][dartx.length]) - dart.notNull(this[_head]);
-        newTable[dartx.setRange](0, split, this[_table], this[_head]);
-        newTable[dartx.setRange](split, split + dart.notNull(this[_head]), this[_table], 0);
-        this[_head] = 0;
-        this[_tail] = this[_table][dartx.length];
-        this[_table] = newTable;
-      }
-      [_writeToList](target) {
-        ListOfE()._check(target);
-        dart.assert(dart.notNull(target[dartx.length]) >= dart.notNull(this.length));
-        if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) {
-          let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]);
-          target[dartx.setRange](0, length, this[_table], this[_head]);
-          return length;
-        } else {
-          let firstPartSize = dart.notNull(this[_table][dartx.length]) - dart.notNull(this[_head]);
-          target[dartx.setRange](0, firstPartSize, this[_table], this[_head]);
-          target[dartx.setRange](firstPartSize, firstPartSize + dart.notNull(this[_tail]), this[_table], 0);
-          return dart.notNull(this[_tail]) + firstPartSize;
-        }
-      }
-      [_preGrow](newElementCount) {
-        dart.assert(dart.notNull(newElementCount) >= dart.notNull(this.length));
-        newElementCount = dart.notNull(newElementCount) + newElementCount[dartx['>>']](1);
-        let newCapacity = collection.ListQueue._nextPowerOf2(newElementCount);
-        let newTable = ListOfE().new(newCapacity);
-        this[_tail] = this[_writeToList](newTable);
-        this[_table] = newTable;
-        this[_head] = 0;
-      }
-    }
-    ListQueue[dart.implements] = () => [QueueOfE()];
-    dart.setSignature(ListQueue, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.ListQueue$(E), [], [core.int]),
-        from: dart.definiteFunctionType(collection.ListQueue$(E), [core.Iterable])
-      }),
-      fields: () => ({
-        [_table]: ListOfE(),
-        [_head]: core.int,
-        [_tail]: core.int,
-        [_modificationCount]: core.int
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [E]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        [_filterWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        addLast: dart.definiteFunctionType(dart.void, [E]),
-        addFirst: dart.definiteFunctionType(dart.void, [E]),
-        removeFirst: dart.definiteFunctionType(E, []),
-        removeLast: dart.definiteFunctionType(E, []),
-        [_checkModification]: dart.definiteFunctionType(dart.void, [core.int]),
-        [_add$0]: dart.definiteFunctionType(dart.void, [E]),
-        [_remove]: dart.definiteFunctionType(core.int, [core.int]),
-        [_grow]: dart.definiteFunctionType(dart.void, []),
-        [_writeToList]: dart.definiteFunctionType(core.int, [ListOfE()]),
-        [_preGrow]: dart.definiteFunctionType(dart.void, [core.int])
-      }),
-      sfields: () => ({_INITIAL_CAPACITY: core.int}),
-      statics: () => ({
-        _isPowerOf2: dart.definiteFunctionType(core.bool, [core.int]),
-        _nextPowerOf2: dart.definiteFunctionType(core.int, [core.int])
-      }),
-      names: ['_isPowerOf2', '_nextPowerOf2']
-    });
-    dart.defineExtensionMembers(ListQueue, [
-      'forEach',
-      'elementAt',
-      'toList',
-      'toString',
-      'iterator',
-      'isEmpty',
-      'length',
-      'first',
-      'last',
-      'single'
-    ]);
-    return ListQueue;
-  });
-  collection.ListQueue = ListQueue();
-  collection.ListQueue._INITIAL_CAPACITY = 8;
-  const _end = Symbol('_end');
-  const _position = Symbol('_position');
-  collection._ListQueueIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let ListQueueOfE = () => (ListQueueOfE = dart.constFn(collection.ListQueue$(E)))();
-    class _ListQueueIterator extends core.Object {
-      new(queue) {
-        this[_queue] = queue;
-        this[_end] = queue[_tail];
-        this[_modificationCount] = queue[_modificationCount];
-        this[_position] = queue[_head];
-        this[_current$2] = null;
-      }
-      get current() {
-        return this[_current$2];
-      }
-      moveNext() {
-        this[_queue][_checkModification](this[_modificationCount]);
-        if (this[_position] == this[_end]) {
-          this[_current$2] = null;
-          return false;
-        }
-        this[_current$2] = this[_queue][_table][dartx._get](this[_position]);
-        this[_position] = (dart.notNull(this[_position]) + 1 & dart.notNull(this[_queue][_table][dartx.length]) - 1) >>> 0;
-        return true;
-      }
-    }
-    dart.addTypeTests(_ListQueueIterator);
-    _ListQueueIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_ListQueueIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._ListQueueIterator$(E), [ListQueueOfE()])}),
-      fields: () => ({
-        [_queue]: ListQueueOfE(),
-        [_end]: core.int,
-        [_modificationCount]: core.int,
-        [_position]: core.int,
-        [_current$2]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _ListQueueIterator;
-  });
-  collection._ListQueueIterator = _ListQueueIterator();
-  collection._Predicate$ = dart.generic(T => {
-    const _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.bool, [T]));
-    return _Predicate;
-  });
-  collection._Predicate = _Predicate$();
-  collection._SplayTreeNode$ = dart.generic(K => {
-    let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
-    class _SplayTreeNode extends core.Object {
-      new(key) {
-        this.key = key;
-        this.left = null;
-        this.right = null;
-      }
-    }
-    dart.addTypeTests(_SplayTreeNode);
-    dart.setSignature(_SplayTreeNode, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeNode$(K), [K])}),
-      fields: () => ({
-        key: K,
-        left: _SplayTreeNodeOfK(),
-        right: _SplayTreeNodeOfK()
-      })
-    });
-    return _SplayTreeNode;
-  });
-  collection._SplayTreeNode = _SplayTreeNode();
-  collection._SplayTreeMapNode$ = dart.generic((K, V) => {
-    class _SplayTreeMapNode extends collection._SplayTreeNode$(K) {
-      new(key, value) {
-        this.value = value;
-        super.new(key);
-      }
-    }
-    dart.setSignature(_SplayTreeMapNode, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeMapNode$(K, V), [K, V])}),
-      fields: () => ({value: V})
-    });
-    return _SplayTreeMapNode;
-  });
-  collection._SplayTreeMapNode = _SplayTreeMapNode();
-  const _count$ = Symbol('_count');
-  const _splayCount = Symbol('_splayCount');
-  const _root = Symbol('_root');
-  const _dummy = Symbol('_dummy');
-  const _comparator = Symbol('_comparator');
-  const _compare = Symbol('_compare');
-  const _splay = Symbol('_splay');
-  const _splayMin = Symbol('_splayMin');
-  const _splayMax = Symbol('_splayMax');
-  const _addNewRoot = Symbol('_addNewRoot');
-  const _clear$ = Symbol('_clear');
-  collection._SplayTree$ = dart.generic((K, Node) => {
-    class _SplayTree extends core.Object {
-      new() {
-        this[_count$] = 0;
-        this[_modificationCount] = 0;
-        this[_splayCount] = 0;
-      }
-      [_splay](key) {
-        K._check(key);
-        if (this[_root] == null) return -1;
-        let left = this[_dummy];
-        let right = this[_dummy];
-        let current = this[_root];
-        let comp = null;
-        while (true) {
-          comp = this[_compare](current.key, key);
-          if (dart.notNull(comp) > 0) {
-            if (current.left == null) break;
-            comp = this[_compare](current.left.key, key);
-            if (dart.notNull(comp) > 0) {
-              let tmp = current.left;
-              current.left = tmp.right;
-              tmp.right = current;
-              current = Node._check(tmp);
-              if (current.left == null) break;
-            }
-            right.left = current;
-            right = current;
-            current = Node._check(current.left);
-          } else if (dart.notNull(comp) < 0) {
-            if (current.right == null) break;
-            comp = this[_compare](current.right.key, key);
-            if (dart.notNull(comp) < 0) {
-              let tmp = Node._check(current.right);
-              current.right = tmp.left;
-              tmp.left = current;
-              current = tmp;
-              if (current.right == null) break;
-            }
-            left.right = current;
-            left = current;
-            current = Node._check(current.right);
-          } else {
-            break;
-          }
-        }
-        left.right = current.left;
-        right.left = current.right;
-        current.left = this[_dummy].right;
-        current.right = this[_dummy].left;
-        this[_root] = current;
-        this[_dummy].right = null;
-        this[_dummy].left = null;
-        this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
-        return comp;
-      }
-      [_splayMin](node) {
-        Node._check(node);
-        let current = node;
-        while (current.left != null) {
-          let left = Node._check(current.left);
-          current.left = left.right;
-          left.right = current;
-          current = left;
-        }
-        return current;
-      }
-      [_splayMax](node) {
-        Node._check(node);
-        let current = node;
-        while (current.right != null) {
-          let right = Node._check(current.right);
-          current.right = right.left;
-          right.left = current;
-          current = right;
-        }
-        return current;
-      }
-      [_remove](key) {
-        K._check(key);
-        if (this[_root] == null) return null;
-        let comp = this[_splay](key);
-        if (comp != 0) return null;
-        let result = this[_root];
-        this[_count$] = dart.notNull(this[_count$]) - 1;
-        if (this[_root].left == null) {
-          this[_root] = Node._check(this[_root].right);
-        } else {
-          let right = Node._check(this[_root].right);
-          this[_root] = this[_splayMax](Node._check(this[_root].left));
-          this[_root].right = right;
-        }
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        return result;
-      }
-      [_addNewRoot](node, comp) {
-        Node._check(node);
-        this[_count$] = dart.notNull(this[_count$]) + 1;
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        if (this[_root] == null) {
-          this[_root] = node;
-          return;
-        }
-        if (dart.notNull(comp) < 0) {
-          node.left = this[_root];
-          node.right = this[_root].right;
-          this[_root].right = null;
-        } else {
-          node.right = this[_root];
-          node.left = this[_root].left;
-          this[_root].left = null;
-        }
-        this[_root] = node;
-      }
-      get [_first$]() {
-        if (this[_root] == null) return null;
-        this[_root] = this[_splayMin](this[_root]);
-        return this[_root];
-      }
-      get [_last$]() {
-        if (this[_root] == null) return null;
-        this[_root] = this[_splayMax](this[_root]);
-        return this[_root];
-      }
-      [_clear$]() {
-        this[_root] = null;
-        this[_count$] = 0;
-        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-      }
-    }
-    dart.addTypeTests(_SplayTree);
-    dart.setSignature(_SplayTree, {
-      fields: () => ({
-        [_count$]: core.int,
-        [_modificationCount]: core.int,
-        [_splayCount]: core.int
-      }),
-      getters: () => ({
-        [_first$]: dart.definiteFunctionType(Node, []),
-        [_last$]: dart.definiteFunctionType(Node, [])
-      }),
-      methods: () => ({
-        [_splay]: dart.definiteFunctionType(core.int, [K]),
-        [_splayMin]: dart.definiteFunctionType(Node, [Node]),
-        [_splayMax]: dart.definiteFunctionType(Node, [Node]),
-        [_remove]: dart.definiteFunctionType(Node, [K]),
-        [_addNewRoot]: dart.definiteFunctionType(dart.void, [Node, core.int]),
-        [_clear$]: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _SplayTree;
-  });
-  collection._SplayTree = _SplayTree();
-  collection._TypeTest$ = dart.generic(T => {
-    class _TypeTest extends core.Object {
-      test(v) {
-        return T.is(v);
-      }
-    }
-    dart.addTypeTests(_TypeTest);
-    dart.setSignature(_TypeTest, {
-      methods: () => ({test: dart.definiteFunctionType(core.bool, [dart.dynamic])})
-    });
-    return _TypeTest;
-  });
-  collection._TypeTest = _TypeTest();
-  collection.SplayTreeMap$ = dart.generic((K, V) => {
-    let _SplayTreeMapNodeOfK$V = () => (_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
-    let ComparatorOfK = () => (ComparatorOfK = dart.constFn(core.Comparator$(K)))();
-    let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let _SplayTreeNodeIteratorOfK = () => (_SplayTreeNodeIteratorOfK = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
-    let _SplayTreeKeyIterableOfK = () => (_SplayTreeKeyIterableOfK = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
-    let _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
-    let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
-    let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
-    let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
-    class SplayTreeMap extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {
-      new(compare, isValidKey) {
-        if (compare === void 0) compare = null;
-        if (isValidKey === void 0) isValidKey = null;
-        this[_dummy] = new (_SplayTreeMapNodeOfK$V())(null, null);
-        this[_comparator] = (() => {
-          let l = compare;
-          return l != null ? l : ComparatorOfK().as(core.Comparable.compare);
-        })();
-        this[_validKey] = (() => {
-          let l = isValidKey;
-          return l != null ? l : dart.fn(v => K.is(v), dynamicTobool$());
-        })();
-        this[_root] = null;
-        super.new();
-      }
-      static from(other, compare, isValidKey) {
-        if (compare === void 0) compare = null;
-        if (isValidKey === void 0) isValidKey = null;
-        let result = new (SplayTreeMapOfK$V())(compare, isValidKey);
-        other[dartx.forEach](dart.fn((k, v) => {
-          result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicToNull()));
-        return result;
-      }
-      static fromIterable(iterable, opts) {
-        let key = opts && 'key' in opts ? opts.key : null;
-        let value = opts && 'value' in opts ? opts.value : null;
-        let compare = opts && 'compare' in opts ? opts.compare : null;
-        let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
-        let map = new (SplayTreeMapOfK$V())(compare, isValidKey);
-        collection.Maps._fillMapWithMappedIterable(map, iterable, key, value);
-        return map;
-      }
-      static fromIterables(keys, values, compare, isValidKey) {
-        if (compare === void 0) compare = null;
-        if (isValidKey === void 0) isValidKey = null;
-        let map = new (SplayTreeMapOfK$V())(compare, isValidKey);
-        collection.Maps._fillMapWithIterables(map, keys, values);
-        return map;
-      }
-      [_compare](key1, key2) {
-        K._check(key1);
-        K._check(key2);
-        return this[_comparator](key1, key2);
-      }
-      _internal() {
-        this[_dummy] = new (_SplayTreeMapNodeOfK$V())(null, null);
-        this[_root] = null;
-        this[_comparator] = null;
-        this[_validKey] = null;
-        super.new();
-      }
-      _get(key) {
-        if (!dart.test(dart.dcall(this[_validKey], key))) return null;
-        if (this[_root] != null) {
-          let comp = this[_splay](K.as(key));
-          if (comp == 0) {
-            return this[_root].value;
-          }
-        }
-        return null;
-      }
-      remove(key) {
-        if (!dart.test(dart.dcall(this[_validKey], key))) return null;
-        let mapRoot = this[_remove](K.as(key));
-        if (mapRoot != null) return mapRoot.value;
-        return null;
-      }
-      _set(key, value) {
-        (() => {
-          K._check(key);
-          V._check(value);
-          if (key == null) dart.throw(new core.ArgumentError(key));
-          let comp = this[_splay](key);
-          if (comp == 0) {
-            this[_root].value = value;
-            return;
-          }
-          this[_addNewRoot](new (_SplayTreeMapNodeOfK$V())(key, value), comp);
-        })();
-        return value;
-      }
-      putIfAbsent(key, ifAbsent) {
-        K._check(key);
-        VoidToV()._check(ifAbsent);
-        if (key == null) dart.throw(new core.ArgumentError(key));
-        let comp = this[_splay](key);
-        if (comp == 0) {
-          return this[_root].value;
-        }
-        let modificationCount = this[_modificationCount];
-        let splayCount = this[_splayCount];
-        let value = ifAbsent();
-        if (modificationCount != this[_modificationCount]) {
-          dart.throw(new core.ConcurrentModificationError(this));
-        }
-        if (splayCount != this[_splayCount]) {
-          comp = this[_splay](key);
-          dart.assert(comp != 0);
-        }
-        this[_addNewRoot](new (_SplayTreeMapNodeOfK$V())(key, value), comp);
-        return value;
-      }
-      addAll(other) {
-        MapOfK$V()._check(other);
-        other[dartx.forEach](dart.fn((key, value) => {
-          this._set(key, value);
-        }, KAndVToNull()));
-      }
-      get isEmpty() {
-        return this[_root] == null;
-      }
-      get isNotEmpty() {
-        return !dart.test(this.isEmpty);
-      }
-      forEach(f) {
-        let nodes = new (_SplayTreeNodeIteratorOfK())(this);
-        while (dart.test(nodes.moveNext())) {
-          let node = _SplayTreeMapNodeOfK$V()._check(nodes.current);
-          f(node.key, node.value);
-        }
-      }
-      get length() {
-        return this[_count$];
-      }
-      clear() {
-        this[_clear$]();
-      }
-      containsKey(key) {
-        return dart.test(dart.dcall(this[_validKey], key)) && this[_splay](K.as(key)) == 0;
-      }
-      containsValue(value) {
-        let found = false;
-        let initialSplayCount = this[_splayCount];
-        const visit = (function(node) {
-          while (node != null) {
-            if (dart.equals(node.value, value)) return true;
-            if (initialSplayCount != this[_splayCount]) {
-              dart.throw(new core.ConcurrentModificationError(this));
-            }
-            if (node.right != null && dart.test(visit(collection._SplayTreeMapNode._check(node.right)))) return true;
-            node = collection._SplayTreeMapNode._check(node.left);
-          }
-          return false;
-        }).bind(this);
-        dart.fn(visit, _SplayTreeMapNodeTobool());
-        return visit(this[_root]);
-      }
-      get keys() {
-        return new (_SplayTreeKeyIterableOfK())(this);
-      }
-      get values() {
-        return new (_SplayTreeValueIterableOfK$V())(this);
-      }
-      toString() {
-        return collection.Maps.mapToString(this);
-      }
-      firstKey() {
-        if (this[_root] == null) return null;
-        return this[_first$].key;
-      }
-      lastKey() {
-        if (this[_root] == null) return null;
-        return this[_last$].key;
-      }
-      lastKeyBefore(key) {
-        K._check(key);
-        if (key == null) dart.throw(new core.ArgumentError(key));
-        if (this[_root] == null) return null;
-        let comp = this[_splay](key);
-        if (dart.notNull(comp) < 0) return this[_root].key;
-        let node = this[_root].left;
-        if (node == null) return null;
-        while (node.right != null) {
-          node = node.right;
-        }
-        return node.key;
-      }
-      firstKeyAfter(key) {
-        K._check(key);
-        if (key == null) dart.throw(new core.ArgumentError(key));
-        if (this[_root] == null) return null;
-        let comp = this[_splay](key);
-        if (dart.notNull(comp) > 0) return this[_root].key;
-        let node = this[_root].right;
-        if (node == null) return null;
-        while (node.left != null) {
-          node = node.left;
-        }
-        return node.key;
-      }
-    }
-    dart.defineNamedConstructor(SplayTreeMap, '_internal');
-    SplayTreeMap[dart.implements] = () => [MapOfK$V()];
-    dart.setSignature(SplayTreeMap, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [], [ComparatorOfK(), dynamicTobool()]),
-        from: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [core.Map], [ComparatorOfK(), dynamicTobool()]),
-        fromIterable: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV(), compare: ComparatorOfK(), isValidKey: dynamicTobool()}),
-        fromIterables: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [IterableOfK(), IterableOfV()], [ComparatorOfK(), dynamicTobool()]),
-        _internal: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [])
-      }),
-      fields: () => ({
-        [_root]: _SplayTreeMapNodeOfK$V(),
-        [_dummy]: _SplayTreeMapNodeOfK$V(),
-        [_comparator]: ComparatorOfK(),
-        [_validKey]: collection._Predicate
-      }),
-      getters: () => ({
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, []),
-        length: dart.definiteFunctionType(core.int, []),
-        keys: dart.definiteFunctionType(core.Iterable$(K), []),
-        values: dart.definiteFunctionType(core.Iterable$(V), [])
-      }),
-      methods: () => ({
-        [_compare]: dart.definiteFunctionType(core.int, [K, K]),
-        _get: dart.definiteFunctionType(V, [core.Object]),
-        remove: dart.definiteFunctionType(V, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [K, V]),
-        putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
-        addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
-        forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        firstKey: dart.definiteFunctionType(K, []),
-        lastKey: dart.definiteFunctionType(K, []),
-        lastKeyBefore: dart.definiteFunctionType(K, [K]),
-        firstKeyAfter: dart.definiteFunctionType(K, [K])
-      })
-    });
-    dart.defineExtensionMembers(SplayTreeMap, [
-      '_get',
-      'remove',
-      '_set',
-      'putIfAbsent',
-      'addAll',
-      'forEach',
-      'clear',
-      'containsKey',
-      'containsValue',
-      'isEmpty',
-      'isNotEmpty',
-      'length',
-      'keys',
-      'values'
-    ]);
-    return SplayTreeMap;
-  });
-  collection.SplayTreeMap = SplayTreeMap();
-  const _workList = Symbol('_workList');
-  const _tree = Symbol('_tree');
-  const _currentNode = Symbol('_currentNode');
-  const _findLeftMostDescendent = Symbol('_findLeftMostDescendent');
-  const _getValue = Symbol('_getValue');
-  const _rebuildWorkList = Symbol('_rebuildWorkList');
-  collection._SplayTreeIterator$ = dart.generic((K, T) => {
-    let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
-    let JSArrayOf_SplayTreeNodeOfK = () => (JSArrayOf_SplayTreeNodeOfK = dart.constFn(_interceptors.JSArray$(_SplayTreeNodeOfK())))();
-    let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
-    let ListOf_SplayTreeNodeOfK = () => (ListOf_SplayTreeNodeOfK = dart.constFn(core.List$(_SplayTreeNodeOfK())))();
-    let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
-    class _SplayTreeIterator extends core.Object {
-      new(tree) {
-        this[_workList] = JSArrayOf_SplayTreeNodeOfK().of([]);
-        this[_tree] = tree;
-        this[_modificationCount] = tree[_modificationCount];
-        this[_splayCount] = tree[_splayCount];
-        this[_currentNode] = null;
-        this[_findLeftMostDescendent](tree[_root]);
-      }
-      startAt(tree, startKey) {
-        this[_workList] = JSArrayOf_SplayTreeNodeOfK().of([]);
-        this[_tree] = tree;
-        this[_modificationCount] = tree[_modificationCount];
-        this[_splayCount] = null;
-        this[_currentNode] = null;
-        if (tree[_root] == null) return;
-        let compare = tree[_splay](startKey);
-        this[_splayCount] = tree[_splayCount];
-        if (dart.notNull(compare) < 0) {
-          this[_findLeftMostDescendent](tree[_root].right);
-        } else {
-          this[_workList][dartx.add](tree[_root]);
-        }
-      }
-      get current() {
-        if (this[_currentNode] == null) return null;
-        return this[_getValue](this[_currentNode]);
-      }
-      [_findLeftMostDescendent](node) {
-        _SplayTreeNodeOfK()._check(node);
-        while (node != null) {
-          this[_workList][dartx.add](node);
-          node = node.left;
-        }
-      }
-      [_rebuildWorkList](currentNode) {
-        _SplayTreeNodeOfK()._check(currentNode);
-        dart.assert(!dart.test(this[_workList][dartx.isEmpty]));
-        this[_workList][dartx.clear]();
-        if (currentNode == null) {
-          this[_findLeftMostDescendent](this[_tree][_root]);
-        } else {
-          this[_tree][_splay](currentNode.key);
-          this[_findLeftMostDescendent](this[_tree][_root].right);
-          dart.assert(!dart.test(this[_workList][dartx.isEmpty]));
-        }
-      }
-      moveNext() {
-        if (this[_modificationCount] != this[_tree][_modificationCount]) {
-          dart.throw(new core.ConcurrentModificationError(this[_tree]));
-        }
-        if (dart.test(this[_workList][dartx.isEmpty])) {
-          this[_currentNode] = null;
-          return false;
-        }
-        if (this[_tree][_splayCount] != this[_splayCount] && this[_currentNode] != null) {
-          this[_rebuildWorkList](this[_currentNode]);
-        }
-        this[_currentNode] = this[_workList][dartx.removeLast]();
-        this[_findLeftMostDescendent](this[_currentNode].right);
-        return true;
-      }
-    }
-    dart.addTypeTests(_SplayTreeIterator);
-    dart.defineNamedConstructor(_SplayTreeIterator, 'startAt');
-    _SplayTreeIterator[dart.implements] = () => [IteratorOfT()];
-    dart.setSignature(_SplayTreeIterator, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection._SplayTreeIterator$(K, T), [_SplayTreeOfK$_SplayTreeNodeOfK()]),
-        startAt: dart.definiteFunctionType(collection._SplayTreeIterator$(K, T), [_SplayTreeOfK$_SplayTreeNodeOfK(), K])
-      }),
-      fields: () => ({
-        [_tree]: _SplayTreeOfK$_SplayTreeNodeOfK(),
-        [_workList]: ListOf_SplayTreeNodeOfK(),
-        [_modificationCount]: core.int,
-        [_splayCount]: core.int,
-        [_currentNode]: _SplayTreeNodeOfK()
-      }),
-      getters: () => ({current: dart.definiteFunctionType(T, [])}),
-      methods: () => ({
-        [_findLeftMostDescendent]: dart.definiteFunctionType(dart.void, [_SplayTreeNodeOfK()]),
-        [_rebuildWorkList]: dart.definiteFunctionType(dart.void, [_SplayTreeNodeOfK()]),
-        moveNext: dart.definiteFunctionType(core.bool, [])
-      })
-    });
-    return _SplayTreeIterator;
-  });
-  collection._SplayTreeIterator = _SplayTreeIterator();
-  const _copyNode = Symbol('_copyNode');
-  collection._SplayTreeKeyIterable$ = dart.generic(K => {
-    let _SplayTreeKeyIteratorOfK = () => (_SplayTreeKeyIteratorOfK = dart.constFn(collection._SplayTreeKeyIterator$(K)))();
-    let SplayTreeSetOfK = () => (SplayTreeSetOfK = dart.constFn(collection.SplayTreeSet$(K)))();
-    let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
-    let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
-    class _SplayTreeKeyIterable extends core.Iterable$(K) {
-      new(tree) {
-        this[_tree] = tree;
-        super.new();
-      }
-      get length() {
-        return this[_tree][_count$];
-      }
-      get isEmpty() {
-        return this[_tree][_count$] == 0;
-      }
-      get iterator() {
-        return new (_SplayTreeKeyIteratorOfK())(this[_tree]);
-      }
-      toSet() {
-        let set = new (SplayTreeSetOfK())(this[_tree][_comparator], this[_tree][_validKey]);
-        set[_count$] = this[_tree][_count$];
-        set[_root] = set[_copyNode](this[_tree][_root]);
-        return set;
-      }
-    }
-    _SplayTreeKeyIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(_SplayTreeKeyIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeKeyIterable$(K), [_SplayTreeOfK$_SplayTreeNodeOfK()])}),
-      fields: () => ({[_tree]: _SplayTreeOfK$_SplayTreeNodeOfK()}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(K), [])})
-    });
-    dart.defineExtensionMembers(_SplayTreeKeyIterable, ['toSet', 'length', 'isEmpty', 'iterator']);
-    return _SplayTreeKeyIterable;
-  });
-  collection._SplayTreeKeyIterable = _SplayTreeKeyIterable();
-  collection._SplayTreeValueIterable$ = dart.generic((K, V) => {
-    let _SplayTreeValueIteratorOfK$V = () => (_SplayTreeValueIteratorOfK$V = dart.constFn(collection._SplayTreeValueIterator$(K, V)))();
-    let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
-    class _SplayTreeValueIterable extends core.Iterable$(V) {
-      new(map) {
-        this[_map$0] = map;
-        super.new();
-      }
-      get length() {
-        return this[_map$0][_count$];
-      }
-      get isEmpty() {
-        return this[_map$0][_count$] == 0;
-      }
-      get iterator() {
-        return new (_SplayTreeValueIteratorOfK$V())(this[_map$0]);
-      }
-    }
-    _SplayTreeValueIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(_SplayTreeValueIterable, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeValueIterable$(K, V), [SplayTreeMapOfK$V()])}),
-      fields: () => ({[_map$0]: SplayTreeMapOfK$V()}),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(V), [])})
-    });
-    dart.defineExtensionMembers(_SplayTreeValueIterable, ['length', 'isEmpty', 'iterator']);
-    return _SplayTreeValueIterable;
-  });
-  collection._SplayTreeValueIterable = _SplayTreeValueIterable();
-  collection._SplayTreeKeyIterator$ = dart.generic(K => {
-    let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
-    let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
-    class _SplayTreeKeyIterator extends collection._SplayTreeIterator$(K, K) {
-      new(map) {
-        super.new(map);
-      }
-      [_getValue](node) {
-        _SplayTreeNodeOfK()._check(node);
-        return node.key;
-      }
-    }
-    dart.setSignature(_SplayTreeKeyIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeKeyIterator$(K), [_SplayTreeOfK$_SplayTreeNodeOfK()])}),
-      methods: () => ({[_getValue]: dart.definiteFunctionType(K, [_SplayTreeNodeOfK()])})
-    });
-    return _SplayTreeKeyIterator;
-  });
-  collection._SplayTreeKeyIterator = _SplayTreeKeyIterator();
-  collection._SplayTreeValueIterator$ = dart.generic((K, V) => {
-    let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
-    let _SplayTreeMapNodeOfK$V = () => (_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
-    let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
-    class _SplayTreeValueIterator extends collection._SplayTreeIterator$(K, V) {
-      new(map) {
-        super.new(map);
-      }
-      [_getValue](node) {
-        _SplayTreeNodeOfK()._check(node);
-        let mapNode = _SplayTreeMapNodeOfK$V().as(node);
-        return mapNode.value;
-      }
-    }
-    dart.setSignature(_SplayTreeValueIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeValueIterator$(K, V), [SplayTreeMapOfK$V()])}),
-      methods: () => ({[_getValue]: dart.definiteFunctionType(V, [_SplayTreeNodeOfK()])})
-    });
-    return _SplayTreeValueIterator;
-  });
-  collection._SplayTreeValueIterator = _SplayTreeValueIterator();
-  collection._SplayTreeNodeIterator$ = dart.generic(K => {
-    let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
-    let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
-    class _SplayTreeNodeIterator extends collection._SplayTreeIterator$(K, collection._SplayTreeNode$(K)) {
-      new(tree) {
-        super.new(tree);
-      }
-      startAt(tree, startKey) {
-        super.startAt(tree, startKey);
-      }
-      [_getValue](node) {
-        _SplayTreeNodeOfK()._check(node);
-        return node;
-      }
-    }
-    dart.defineNamedConstructor(_SplayTreeNodeIterator, 'startAt');
-    dart.setSignature(_SplayTreeNodeIterator, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection._SplayTreeNodeIterator$(K), [_SplayTreeOfK$_SplayTreeNodeOfK()]),
-        startAt: dart.definiteFunctionType(collection._SplayTreeNodeIterator$(K), [_SplayTreeOfK$_SplayTreeNodeOfK(), K])
-      }),
-      methods: () => ({[_getValue]: dart.definiteFunctionType(collection._SplayTreeNode$(K), [_SplayTreeNodeOfK()])})
-    });
-    return _SplayTreeNodeIterator;
-  });
-  collection._SplayTreeNodeIterator = _SplayTreeNodeIterator();
-  const _clone = Symbol('_clone');
-  collection.SplayTreeSet$ = dart.generic(E => {
-    let _SplayTreeNodeOfE = () => (_SplayTreeNodeOfE = dart.constFn(collection._SplayTreeNode$(E)))();
-    let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
-    let SplayTreeSetOfE = () => (SplayTreeSetOfE = dart.constFn(collection.SplayTreeSet$(E)))();
-    let _SplayTreeKeyIteratorOfE = () => (_SplayTreeKeyIteratorOfE = dart.constFn(collection._SplayTreeKeyIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
-    class SplayTreeSet extends dart.mixin(collection._SplayTree$(E, collection._SplayTreeNode$(E)), collection.IterableMixin$(E), collection.SetMixin$(E)) {
-      new(compare, isValidKey) {
-        if (compare === void 0) compare = null;
-        if (isValidKey === void 0) isValidKey = null;
-        this[_dummy] = new (_SplayTreeNodeOfE())(null);
-        this[_comparator] = (() => {
-          let l = compare;
-          return l != null ? l : ComparatorOfE().as(core.Comparable.compare);
-        })();
-        this[_validKey] = (() => {
-          let l = isValidKey;
-          return l != null ? l : dart.fn(v => E.is(v), dynamicTobool$());
-        })();
-        this[_root] = null;
-        super.new();
-      }
-      static from(elements, compare, isValidKey) {
-        if (compare === void 0) compare = null;
-        if (isValidKey === void 0) isValidKey = null;
-        let result = new (SplayTreeSetOfE())(compare, isValidKey);
-        for (let element of elements) {
-          let e = E.as(element);
-          result.add(e);
-        }
-        return result;
-      }
-      [_compare](e1, e2) {
-        E._check(e1);
-        E._check(e2);
-        return this[_comparator](e1, e2);
-      }
-      get iterator() {
-        return new (_SplayTreeKeyIteratorOfE())(this);
-      }
-      get length() {
-        return this[_count$];
-      }
-      get isEmpty() {
-        return this[_root] == null;
-      }
-      get isNotEmpty() {
-        return this[_root] != null;
-      }
-      get first() {
-        if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
-        return this[_first$].key;
-      }
-      get last() {
-        if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
-        return this[_last$].key;
-      }
-      get single() {
-        if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
-        if (dart.notNull(this[_count$]) > 1) dart.throw(_internal.IterableElementError.tooMany());
-        return this[_root].key;
-      }
-      contains(object) {
-        return dart.test(dart.dcall(this[_validKey], object)) && this[_splay](E.as(object)) == 0;
-      }
-      add(element) {
-        E._check(element);
-        let compare = this[_splay](element);
-        if (compare == 0) return false;
-        this[_addNewRoot](new (_SplayTreeNodeOfE())(element), compare);
-        return true;
-      }
-      remove(object) {
-        if (!dart.test(dart.dcall(this[_validKey], object))) return false;
-        return this[_remove](E.as(object)) != null;
-      }
-      addAll(elements) {
-        IterableOfE()._check(elements);
-        for (let element of elements) {
-          let compare = this[_splay](element);
-          if (compare != 0) {
-            this[_addNewRoot](new (_SplayTreeNodeOfE())(element), compare);
-          }
-        }
-      }
-      removeAll(elements) {
-        for (let element of elements) {
-          if (dart.test(dart.dcall(this[_validKey], element))) this[_remove](E.as(element));
-        }
-      }
-      retainAll(elements) {
-        let retainSet = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
-        let modificationCount = this[_modificationCount];
-        for (let object of elements) {
-          if (modificationCount != this[_modificationCount]) {
-            dart.throw(new core.ConcurrentModificationError(this));
-          }
-          if (dart.test(dart.dcall(this[_validKey], object)) && this[_splay](E.as(object)) == 0) {
-            retainSet.add(this[_root].key);
-          }
-        }
-        if (retainSet[_count$] != this[_count$]) {
-          this[_root] = retainSet[_root];
-          this[_count$] = retainSet[_count$];
-          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-        }
-      }
-      lookup(object) {
-        if (!dart.test(dart.dcall(this[_validKey], object))) return null;
-        let comp = this[_splay](E.as(object));
-        if (comp != 0) return null;
-        return this[_root].key;
-      }
-      intersection(other) {
-        let result = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
-        for (let element of this) {
-          if (dart.test(other.contains(element))) result.add(element);
-        }
-        return result;
-      }
-      difference(other) {
-        let result = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
-        for (let element of this) {
-          if (!dart.test(other.contains(element))) result.add(element);
-        }
-        return result;
-      }
-      union(other) {
-        SetOfE()._check(other);
-        let _ = this[_clone]();
-        _.addAll(other);
-        return _;
-      }
-      [_clone]() {
-        let set = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
-        set[_count$] = this[_count$];
-        set[_root] = this[_copyNode](this[_root]);
-        return set;
-      }
-      [_copyNode](node) {
-        _SplayTreeNodeOfE()._check(node);
-        if (node == null) return null;
-        let _ = new (_SplayTreeNodeOfE())(node.key);
-        _.left = this[_copyNode](node.left);
-        _.right = this[_copyNode](node.right);
-        return _;
-      }
-      clear() {
-        this[_clear$]();
-      }
-      toSet() {
-        return this[_clone]();
-      }
-      toString() {
-        return collection.IterableBase.iterableToFullString(this, '{', '}');
-      }
-    }
-    dart.setSignature(SplayTreeSet, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(collection.SplayTreeSet$(E), [], [ComparatorOfE(), dynamicTobool()]),
-        from: dart.definiteFunctionType(collection.SplayTreeSet$(E), [core.Iterable], [ComparatorOfE(), dynamicTobool()])
-      }),
-      fields: () => ({
-        [_root]: _SplayTreeNodeOfE(),
-        [_dummy]: _SplayTreeNodeOfE(),
-        [_comparator]: ComparatorOfE(),
-        [_validKey]: collection._Predicate
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({
-        [_compare]: dart.definiteFunctionType(core.int, [E, E]),
-        add: dart.definiteFunctionType(core.bool, [E]),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        lookup: dart.definiteFunctionType(E, [core.Object]),
-        [_clone]: dart.definiteFunctionType(collection.SplayTreeSet$(E), []),
-        [_copyNode]: dart.definiteFunctionType(collection._SplayTreeNode$(E), [_SplayTreeNodeOfE()])
-      })
-    });
-    dart.defineExtensionMembers(SplayTreeSet, [
-      'contains',
-      'toSet',
-      'toString',
-      'iterator',
-      'length',
-      'isEmpty',
-      'isNotEmpty',
-      'first',
-      'last',
-      'single'
-    ]);
-    return SplayTreeSet;
-  });
-  collection.SplayTreeSet = SplayTreeSet();
-  const _processed = Symbol('_processed');
-  const _computeKeys$ = Symbol('_computeKeys');
-  const _original = Symbol('_original');
-  convert._convertJsonToDart = function(json, reviver) {
-    dart.assert(reviver != null);
-    function walk(e) {
-      if (e == null || typeof e != "object") {
-        return e;
-      }
-      if (Object.getPrototypeOf(e) === Array.prototype) {
-        for (let i = 0; i < e.length; i++) {
-          let item = e[i];
-          e[i] = dart.dcall(reviver, i, walk(item));
-        }
-        return e;
-      }
-      let map = new convert._JsonMap(e);
-      let processed = map[_processed];
-      let keys = map[_computeKeys$]();
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        let key = keys[dartx._get](i);
-        let revived = dart.dcall(reviver, key, walk(e[key]));
-        processed[key] = revived;
-      }
-      map[_original] = processed;
-      return map;
-    }
-    dart.fn(walk, dynamicTodynamic$());
-    return dart.dcall(reviver, null, walk(json));
-  };
-  dart.fn(convert._convertJsonToDart, dynamicAndFnTodynamic());
-  convert._convertJsonToDartLazy = function(object) {
-    if (object == null) return null;
-    if (typeof object != "object") {
-      return object;
-    }
-    if (Object.getPrototypeOf(object) !== Array.prototype) {
-      return new convert._JsonMap(object);
-    }
-    for (let i = 0; i < object.length; i++) {
-      let item = object[i];
-      object[i] = convert._convertJsonToDartLazy(item);
-    }
-    return object;
-  };
-  dart.fn(convert._convertJsonToDartLazy, dynamicTodynamic$());
-  const _data = Symbol('_data');
-  const _isUpgraded = Symbol('_isUpgraded');
-  const _upgradedMap = Symbol('_upgradedMap');
-  const _process$ = Symbol('_process');
-  const _upgrade = Symbol('_upgrade');
-  convert._JsonMap = class _JsonMap extends core.Object {
-    new(original) {
-      this[_processed] = convert._JsonMap._newJavaScriptObject();
-      this[_original] = original;
-      this[_data] = null;
-    }
-    _get(key) {
-      if (dart.test(this[_isUpgraded])) {
-        return this[_upgradedMap][dartx._get](key);
-      } else if (!(typeof key == 'string')) {
-        return null;
-      } else {
-        let result = convert._JsonMap._getProperty(this[_processed], core.String._check(key));
-        if (dart.test(convert._JsonMap._isUnprocessed(result))) result = this[_process$](core.String._check(key));
-        return result;
-      }
-    }
-    get length() {
-      return dart.test(this[_isUpgraded]) ? this[_upgradedMap][dartx.length] : this[_computeKeys$]()[dartx.length];
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](count);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
     }
     get isEmpty() {
-      return this.length == 0;
+      let future = new (_FutureOfbool())();
+      let subscription = null;
+      subscription = this.listen(dart.fn(_ => {
+        async._cancelAndValue(subscription, future, false);
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](true);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    toList() {
+      let result = JSArrayOfT().of([]);
+      let future = new (_FutureOfListOfT())();
+      this.listen(dart.fn(data => {
+        result[dartx.add](data);
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](result);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    toSet() {
+      let result = SetOfT().new();
+      let future = new (_FutureOfSetOfT())();
+      this.listen(dart.fn(data => {
+        result.add(data);
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_complete](result);
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    drain(E) {
+      return futureValue => {
+        if (futureValue === void 0) futureValue = null;
+        return this.listen(null, {cancelOnError: true}).asFuture(E)(futureValue);
+      };
+    }
+    take(count) {
+      return new (_TakeStreamOfT())(this, count);
+    }
+    takeWhile(test) {
+      return new (_TakeWhileStreamOfT())(this, test);
+    }
+    skip(count) {
+      return new (_SkipStreamOfT())(this, count);
+    }
+    skipWhile(test) {
+      return new (_SkipWhileStreamOfT())(this, test);
+    }
+    distinct(equals) {
+      if (equals === void 0) equals = null;
+      return new (_DistinctStreamOfT())(this, equals);
+    }
+    get first() {
+      let future = new (_FutureOfT())();
+      let subscription = null;
+      subscription = this.listen(dart.fn(value => {
+        async._cancelAndValue(subscription, future, value);
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          try {
+            dart.throw(_internal.IterableElementError.noElement());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._completeWithErrorCallback(future, e, s);
+          }
+
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    get last() {
+      let future = new (_FutureOfT())();
+      let result = null;
+      let foundResult = false;
+      this.listen(dart.fn(value => {
+        foundResult = true;
+        result = value;
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          if (foundResult) {
+            future[_complete](result);
+            return;
+          }
+          try {
+            dart.throw(_internal.IterableElementError.noElement());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._completeWithErrorCallback(future, e, s);
+          }
+
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    get single() {
+      let future = new (_FutureOfT())();
+      let result = null;
+      let foundResult = false;
+      let subscription = null;
+      subscription = this.listen(dart.fn(value => {
+        if (foundResult) {
+          try {
+            dart.throw(_internal.IterableElementError.tooMany());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._cancelAndErrorWithReplacement(subscription, future, e, s);
+          }
+
+          return;
+        }
+        foundResult = true;
+        result = value;
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          if (foundResult) {
+            future[_complete](result);
+            return;
+          }
+          try {
+            dart.throw(_internal.IterableElementError.noElement());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._completeWithErrorCallback(future, e, s);
+          }
+
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    firstWhere(test, opts) {
+      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
+      let future = new async._Future();
+      let subscription = null;
+      subscription = this.listen(dart.fn(value => {
+        async._runUserCode(dart.fn(() => test(value), VoidTobool()), dart.fn(isMatch => {
+          if (dart.test(isMatch)) {
+            async._cancelAndValue(subscription, future, value);
+          }
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          if (defaultValue != null) {
+            async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
+            return;
+          }
+          try {
+            dart.throw(_internal.IterableElementError.noElement());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._completeWithErrorCallback(future, e, s);
+          }
+
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    lastWhere(test, opts) {
+      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
+      let future = new async._Future();
+      let result = null;
+      let foundResult = false;
+      let subscription = null;
+      subscription = this.listen(dart.fn(value => {
+        async._runUserCode(dart.fn(() => true == test(value), VoidTobool()), dart.fn(isMatch => {
+          if (dart.test(isMatch)) {
+            foundResult = true;
+            result = value;
+          }
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          if (foundResult) {
+            future[_complete](result);
+            return;
+          }
+          if (defaultValue != null) {
+            async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
+            return;
+          }
+          try {
+            dart.throw(_internal.IterableElementError.noElement());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._completeWithErrorCallback(future, e, s);
+          }
+
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    singleWhere(test) {
+      let future = new (_FutureOfT())();
+      let result = null;
+      let foundResult = false;
+      let subscription = null;
+      subscription = this.listen(dart.fn(value => {
+        async._runUserCode(dart.fn(() => true == test(value), VoidTobool()), dart.fn(isMatch => {
+          if (dart.test(isMatch)) {
+            if (foundResult) {
+              try {
+                dart.throw(_internal.IterableElementError.tooMany());
+              } catch (e) {
+                let s = dart.stackTrace(e);
+                async._cancelAndErrorWithReplacement(subscription, future, e, s);
+              }
+
+              return;
+            }
+            foundResult = true;
+            result = value;
+          }
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          if (foundResult) {
+            future[_complete](result);
+            return;
+          }
+          try {
+            dart.throw(_internal.IterableElementError.noElement());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            async._completeWithErrorCallback(future, e, s);
+          }
+
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    elementAt(index) {
+      if (!(typeof index == 'number') || dart.notNull(index) < 0) dart.throw(new core.ArgumentError(index));
+      let future = new (_FutureOfT())();
+      let subscription = null;
+      let elementIndex = 0;
+      subscription = this.listen(dart.fn(value => {
+        if (index == elementIndex) {
+          async._cancelAndValue(subscription, future, value);
+          return;
+        }
+        elementIndex = elementIndex + 1;
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
+        }, VoidToNull()), cancelOnError: true});
+      return future;
+    }
+    timeout(timeLimit, opts) {
+      let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
+      let controller = null;
+      let subscription = null;
+      let timer = null;
+      let zone = null;
+      let timeout = null;
+      function onData(event) {
+        timer.cancel();
+        controller.add(event);
+        timer = zone.createTimer(timeLimit, timeout);
+      }
+      dart.fn(onData, TTovoid$());
+      function onError(error, stackTrace) {
+        timer.cancel();
+        dart.assert(async._StreamController.is(controller) || async._BroadcastStreamController.is(controller));
+        let eventSink = controller;
+        dart.dsend(eventSink, _addError, error, stackTrace);
+        timer = zone.createTimer(timeLimit, timeout);
+      }
+      dart.fn(onError, dynamicAndStackTraceTovoid());
+      function onDone() {
+        timer.cancel();
+        controller.close();
+      }
+      dart.fn(onDone, VoidTovoid$());
+      const onListen = (function() {
+        zone = async.Zone.current;
+        if (onTimeout == null) {
+          timeout = dart.fn(() => {
+            controller.addError(new async.TimeoutException("No stream event", timeLimit), null);
+          }, VoidToNull());
+        } else {
+          let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfT())(onTimeout);
+          let wrapper = new async._ControllerEventSinkWrapper(null);
+          timeout = dart.fn(() => {
+            wrapper[_sink] = controller;
+            zone.runUnaryGuarded(dart.dynamic, EventSinkOfT())(registeredOnTimeout, wrapper);
+            wrapper[_sink] = null;
+          }, VoidToNull());
+        }
+        subscription = this.listen(onData, {onError: onError, onDone: onDone});
+        timer = zone.createTimer(timeLimit, timeout);
+      }).bind(this);
+      dart.fn(onListen, VoidTovoid$());
+      function onCancel() {
+        timer.cancel();
+        let result = subscription.cancel();
+        subscription = null;
+        return result;
+      }
+      dart.fn(onCancel, VoidToFuture());
+      controller = dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_SyncStreamControllerOfT())(onListen, dart.fn(() => {
+        timer.cancel();
+        subscription.pause();
+      }, VoidToNull()), dart.fn(() => {
+        subscription.resume();
+        timer = zone.createTimer(timeLimit, timeout);
+      }, VoidToNull()), onCancel);
+      return controller.stream;
+    }
+  }
+  dart.addTypeTests(Stream);
+  dart.defineNamedConstructor(Stream, '_internal');
+  dart.setSignature(Stream, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(async.Stream$(T), []),
+      _internal: dart.definiteFunctionType(async.Stream$(T), []),
+      empty: dart.definiteFunctionType(async.Stream$(T), []),
+      fromFuture: dart.definiteFunctionType(async.Stream$(T), [FutureOfT()]),
+      fromFutures: dart.definiteFunctionType(async.Stream$(T), [IterableOfFutureOfT()]),
+      fromIterable: dart.definiteFunctionType(async.Stream$(T), [IterableOfT()]),
+      periodic: dart.definiteFunctionType(async.Stream$(T), [core.Duration], [intToT()]),
+      eventTransformed: dart.definiteFunctionType(async.Stream$(T), [async.Stream, EventSinkOfTToEventSink()])
+    }),
+    getters: () => ({
+      isBroadcast: dart.definiteFunctionType(core.bool, []),
+      length: dart.definiteFunctionType(async.Future$(core.int), []),
+      isEmpty: dart.definiteFunctionType(async.Future$(core.bool), []),
+      first: dart.definiteFunctionType(async.Future$(T), []),
+      last: dart.definiteFunctionType(async.Future$(T), []),
+      single: dart.definiteFunctionType(async.Future$(T), [])
+    }),
+    methods: () => ({
+      asBroadcastStream: dart.definiteFunctionType(async.Stream$(T), [], {onListen: StreamSubscriptionOfTTovoid(), onCancel: StreamSubscriptionOfTTovoid()}),
+      where: dart.definiteFunctionType(async.Stream$(T), [TTobool()]),
+      map: dart.definiteFunctionType(S => [async.Stream$(S), [dart.functionType(S, [T])]]),
+      asyncMap: dart.definiteFunctionType(E => [async.Stream$(E), [TTodynamic()]]),
+      asyncExpand: dart.definiteFunctionType(E => [async.Stream$(E), [dart.functionType(async.Stream$(E), [T])]]),
+      handleError: dart.definiteFunctionType(async.Stream$(T), [core.Function], {test: dynamicTobool()}),
+      expand: dart.definiteFunctionType(S => [async.Stream$(S), [dart.functionType(core.Iterable$(S), [T])]]),
+      pipe: dart.definiteFunctionType(async.Future, [StreamConsumerOfT()]),
+      transform: dart.definiteFunctionType(S => [async.Stream$(S), [async.StreamTransformer$(T, S)]]),
+      reduce: dart.definiteFunctionType(async.Future$(T), [TAndTToT()]),
+      fold: dart.definiteFunctionType(S => [async.Future$(S), [S, dart.functionType(S, [S, T])]]),
+      join: dart.definiteFunctionType(async.Future$(core.String), [], [core.String]),
+      contains: dart.definiteFunctionType(async.Future$(core.bool), [core.Object]),
+      forEach: dart.definiteFunctionType(async.Future, [TTovoid()]),
+      every: dart.definiteFunctionType(async.Future$(core.bool), [TTobool()]),
+      any: dart.definiteFunctionType(async.Future$(core.bool), [TTobool()]),
+      toList: dart.definiteFunctionType(async.Future$(core.List$(T)), []),
+      toSet: dart.definiteFunctionType(async.Future$(core.Set$(T)), []),
+      drain: dart.definiteFunctionType(E => [async.Future$(E), [], [E]]),
+      take: dart.definiteFunctionType(async.Stream$(T), [core.int]),
+      takeWhile: dart.definiteFunctionType(async.Stream$(T), [TTobool()]),
+      skip: dart.definiteFunctionType(async.Stream$(T), [core.int]),
+      skipWhile: dart.definiteFunctionType(async.Stream$(T), [TTobool()]),
+      distinct: dart.definiteFunctionType(async.Stream$(T), [], [TAndTTobool()]),
+      firstWhere: dart.definiteFunctionType(async.Future, [TTobool()], {defaultValue: VoidToObject()}),
+      lastWhere: dart.definiteFunctionType(async.Future, [TTobool()], {defaultValue: VoidToObject()}),
+      singleWhere: dart.definiteFunctionType(async.Future$(T), [TTobool()]),
+      elementAt: dart.definiteFunctionType(async.Future$(T), [core.int]),
+      timeout: dart.definiteFunctionType(async.Stream$(T), [core.Duration], {onTimeout: EventSinkOfTTovoid()})
+    })
+  });
+  return Stream;
+});
+async.Stream = Stream();
+_isolate_helper.ReceivePortImpl = class ReceivePortImpl extends async.Stream {
+  new() {
+    ReceivePortImpl.prototype.fromRawReceivePort.call(this, new _isolate_helper.RawReceivePortImpl(null));
+  }
+  weak() {
+    ReceivePortImpl.prototype.fromRawReceivePort.call(this, new _isolate_helper.RawReceivePortImpl.weak(null));
+  }
+  fromRawReceivePort(rawPort) {
+    this[_rawPort] = rawPort;
+    this[_controller] = null;
+    super.new();
+    this[_controller] = async.StreamController.new({onCancel: dart.bind(this, 'close'), sync: true});
+    this[_rawPort].handler = dart.bind(this[_controller], 'add');
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  close() {
+    this[_rawPort].close();
+    this[_controller].close();
+  }
+  get sendPort() {
+    return this[_rawPort].sendPort;
+  }
+};
+dart.addSimpleTypeTests(_isolate_helper.ReceivePortImpl);
+dart.defineNamedConstructor(_isolate_helper.ReceivePortImpl, 'weak');
+dart.defineNamedConstructor(_isolate_helper.ReceivePortImpl, 'fromRawReceivePort');
+_isolate_helper.ReceivePortImpl[dart.implements] = () => [isolate.ReceivePort];
+dart.setSignature(_isolate_helper.ReceivePortImpl, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_isolate_helper.ReceivePortImpl, []),
+    weak: dart.definiteFunctionType(_isolate_helper.ReceivePortImpl, []),
+    fromRawReceivePort: dart.definiteFunctionType(_isolate_helper.ReceivePortImpl, [isolate.RawReceivePort])
+  }),
+  fields: () => ({
+    [_rawPort]: isolate.RawReceivePort,
+    [_controller]: async.StreamController
+  }),
+  getters: () => ({sendPort: dart.definiteFunctionType(isolate.SendPort, [])}),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription, [dynamicTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _once = Symbol('_once');
+const _inEventLoop = Symbol('_inEventLoop');
+const _handle = Symbol('_handle');
+_isolate_helper.TimerImpl = class TimerImpl extends core.Object {
+  new(milliseconds, callback) {
+    this[_once] = true;
+    this[_inEventLoop] = false;
+    this[_handle] = null;
+    if (milliseconds == 0 && (!dart.test(_isolate_helper.hasTimer()) || dart.test(_isolate_helper._globalState.isWorker))) {
+      const internalCallback = (function() {
+        this[_handle] = null;
+        callback();
+      }).bind(this);
+      dart.fn(internalCallback, VoidTovoid$());
+      this[_handle] = 1;
+      _isolate_helper._globalState.topEventLoop.enqueue(_isolate_helper._globalState.currentContext, internalCallback, 'timer');
+      this[_inEventLoop] = true;
+    } else if (dart.test(_isolate_helper.hasTimer())) {
+      const internalCallback = (function() {
+        this[_handle] = null;
+        _isolate_helper.leaveJsAsync();
+        callback();
+      }).bind(this);
+      dart.fn(internalCallback, VoidTovoid$());
+      _isolate_helper.enterJsAsync();
+      this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
+    } else {
+      dart.assert(dart.notNull(milliseconds) > 0);
+      dart.throw(new core.UnsupportedError("Timer greater than 0."));
+    }
+  }
+  periodic(milliseconds, callback) {
+    this[_once] = false;
+    this[_inEventLoop] = false;
+    this[_handle] = null;
+    if (dart.test(_isolate_helper.hasTimer())) {
+      _isolate_helper.enterJsAsync();
+      this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
+        callback(this);
+      }, VoidToNull()), milliseconds);
+    } else {
+      dart.throw(new core.UnsupportedError("Periodic timer."));
+    }
+  }
+  cancel() {
+    if (dart.test(_isolate_helper.hasTimer())) {
+      if (dart.test(this[_inEventLoop])) {
+        dart.throw(new core.UnsupportedError("Timer in event loop cannot be canceled."));
+      }
+      if (this[_handle] == null) return;
+      _isolate_helper.leaveJsAsync();
+      if (dart.test(this[_once])) {
+        _isolate_helper.global.clearTimeout(this[_handle]);
+      } else {
+        _isolate_helper.global.clearInterval(this[_handle]);
+      }
+      this[_handle] = null;
+    } else {
+      dart.throw(new core.UnsupportedError("Canceling a timer."));
+    }
+  }
+  get isActive() {
+    return this[_handle] != null;
+  }
+};
+dart.defineNamedConstructor(_isolate_helper.TimerImpl, 'periodic');
+_isolate_helper.TimerImpl[dart.implements] = () => [async.Timer];
+dart.setSignature(_isolate_helper.TimerImpl, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_isolate_helper.TimerImpl, [core.int, VoidTovoid()]),
+    periodic: dart.definiteFunctionType(_isolate_helper.TimerImpl, [core.int, TimerTovoid()])
+  }),
+  fields: () => ({
+    [_once]: core.bool,
+    [_inEventLoop]: core.bool,
+    [_handle]: core.int
+  }),
+  getters: () => ({isActive: dart.definiteFunctionType(core.bool, [])}),
+  methods: () => ({cancel: dart.definiteFunctionType(dart.void, [])})
+});
+_isolate_helper.hasTimer = function() {
+  return _isolate_helper.global.setTimeout != null;
+};
+dart.lazyFn(_isolate_helper.hasTimer, () => VoidTobool());
+_isolate_helper.CapabilityImpl = class CapabilityImpl extends core.Object {
+  new() {
+    CapabilityImpl.prototype._internal.call(this, _js_helper.random64());
+  }
+  _internal(id) {
+    this[_id] = id;
+  }
+  get hashCode() {
+    let hash = this[_id];
+    hash = (hash[dartx['>>']](0) ^ (dart.notNull(hash) / 4294967296)[dartx.truncate]()) >>> 0;
+    hash = ((~dart.notNull(hash) >>> 0) + (dart.notNull(hash) << 15 >>> 0) & 4294967295) >>> 0;
+    hash = (dart.notNull(hash) ^ hash[dartx['>>']](12)) >>> 0;
+    hash = (dart.notNull(hash) * 5 & 4294967295) >>> 0;
+    hash = (dart.notNull(hash) ^ hash[dartx['>>']](4)) >>> 0;
+    hash = (dart.notNull(hash) * 2057 & 4294967295) >>> 0;
+    hash = (dart.notNull(hash) ^ hash[dartx['>>']](16)) >>> 0;
+    return hash;
+  }
+  ['=='](other) {
+    if (core.identical(other, this)) return true;
+    if (_isolate_helper.CapabilityImpl.is(other)) {
+      return core.identical(this[_id], other[_id]);
+    }
+    return false;
+  }
+};
+dart.defineNamedConstructor(_isolate_helper.CapabilityImpl, '_internal');
+_isolate_helper.CapabilityImpl[dart.implements] = () => [isolate.Capability];
+dart.setSignature(_isolate_helper.CapabilityImpl, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_isolate_helper.CapabilityImpl, []),
+    _internal: dart.definiteFunctionType(_isolate_helper.CapabilityImpl, [core.int])
+  }),
+  fields: () => ({[_id]: core.int}),
+  methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])})
+});
+_isolate_helper._serializeMessage = function(message) {
+  return new _isolate_helper._Serializer().serialize(message);
+};
+dart.fn(_isolate_helper._serializeMessage, dynamicTodynamic$());
+_isolate_helper._deserializeMessage = function(message) {
+  return new _isolate_helper._Deserializer().deserialize(message);
+};
+dart.fn(_isolate_helper._deserializeMessage, dynamicTodynamic$());
+_isolate_helper._clone = function(message) {
+  let serializer = new _isolate_helper._Serializer({serializeSendPorts: false});
+  let deserializer = new _isolate_helper._Deserializer();
+  return deserializer.deserialize(serializer.serialize(message));
+};
+dart.fn(_isolate_helper._clone, dynamicTodynamic$());
+const _serializeSendPorts = Symbol('_serializeSendPorts');
+_isolate_helper._Serializer = class _Serializer extends core.Object {
+  new(opts) {
+    let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.serializeSendPorts : true;
+    this.serializedObjectIds = MapOfdynamic$int().identity();
+    this[_serializeSendPorts] = core.bool._check(serializeSendPorts);
+  }
+  serialize(x) {
+    if (dart.test(this.isPrimitive(x))) return this.serializePrimitive(x);
+    let serializationId = this.serializedObjectIds[dartx._get](x);
+    if (serializationId != null) return this.makeRef(serializationId);
+    serializationId = this.serializedObjectIds[dartx.length];
+    this.serializedObjectIds[dartx._set](x, serializationId);
+    if (_native_typed_data.NativeByteBuffer.is(x)) return this.serializeByteBuffer(x);
+    if (_native_typed_data.NativeTypedData.is(x)) return this.serializeTypedData(x);
+    if (_interceptors.JSIndexable.is(x)) return this.serializeJSIndexable(x);
+    if (_js_helper.InternalMap.is(x)) return this.serializeMap(x);
+    if (_interceptors.JSObject.is(x)) return this.serializeJSObject(x);
+    if (_interceptors.Interceptor.is(x)) this.unsupported(x);
+    if (isolate.RawReceivePort.is(x)) {
+      this.unsupported(x, "RawReceivePorts can't be transmitted:");
+    }
+    if (_isolate_helper._NativeJsSendPort.is(x)) return this.serializeJsSendPort(x);
+    if (_isolate_helper._WorkerSendPort.is(x)) return this.serializeWorkerSendPort(x);
+    if (core.Function.is(x)) return this.serializeClosure(x);
+    return this.serializeDartObject(x);
+  }
+  unsupported(x, message) {
+    if (message === void 0) message = null;
+    if (message == null) message = "Can't transmit:";
+    dart.throw(new core.UnsupportedError(dart.str`${message} ${x}`));
+  }
+  makeRef(serializationId) {
+    return JSArrayOfObject().of(["ref", serializationId]);
+  }
+  isPrimitive(x) {
+    return x == null || typeof x == 'string' || typeof x == 'number' || typeof x == 'boolean';
+  }
+  serializePrimitive(primitive) {
+    return primitive;
+  }
+  serializeByteBuffer(buffer) {
+    return JSArrayOfObject().of(["buffer", buffer]);
+  }
+  serializeTypedData(data) {
+    return JSArrayOfObject().of(["typed", data]);
+  }
+  serializeJSIndexable(indexable) {
+    dart.assert(!(typeof indexable == 'string'));
+    let serialized = core.List._check(this.serializeArray(_interceptors.JSArray._check(indexable)));
+    if (_interceptors.JSFixedArray.is(indexable)) return JSArrayOfObject().of(["fixed", serialized]);
+    if (_interceptors.JSExtendableArray.is(indexable)) return JSArrayOfObject().of(["extendable", serialized]);
+    if (_interceptors.JSMutableArray.is(indexable)) return JSArrayOfObject().of(["mutable", serialized]);
+    if (_interceptors.JSArray.is(indexable)) return JSArrayOfObject().of(["const", serialized]);
+    this.unsupported(indexable, "Can't serialize indexable: ");
+    return null;
+  }
+  serializeArray(x) {
+    let serialized = [];
+    serialized[dartx.length] = x[dartx.length];
+    for (let i = 0; i < dart.notNull(x[dartx.length]); i++) {
+      serialized[dartx._set](i, this.serialize(x[dartx._get](i)));
+    }
+    return serialized;
+  }
+  serializeArrayInPlace(x) {
+    for (let i = 0; i < dart.notNull(x[dartx.length]); i++) {
+      x[dartx._set](i, this.serialize(x[dartx._get](i)));
+    }
+    return x;
+  }
+  serializeMap(x) {
+    let serializeTearOff = dart.bind(this, 'serialize');
+    return JSArrayOfObject().of(['map', x.keys[dartx.map](dart.dynamic)(dynamicTodynamic()._check(serializeTearOff))[dartx.toList](), x.values[dartx.map](dart.dynamic)(dynamicTodynamic()._check(serializeTearOff))[dartx.toList]()]);
+  }
+  serializeJSObject(x) {
+    if (!!x.constructor && x.constructor !== Object) {
+      this.unsupported(x, "Only plain JS Objects are supported:");
+    }
+    let keys = Object.keys(x);
+    let values = [];
+    values[dartx.length] = keys[dartx.length];
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      values[dartx._set](i, this.serialize(x[keys[dartx._get](i)]));
+    }
+    return JSArrayOfObject().of(['js-object', keys, values]);
+  }
+  serializeWorkerSendPort(x) {
+    if (dart.test(this[_serializeSendPorts])) {
+      return JSArrayOfObject().of(['sendport', x[_workerId], x[_isolateId], x[_receivePortId]]);
+    }
+    return JSArrayOfObject().of(['raw sendport', x]);
+  }
+  serializeJsSendPort(x) {
+    if (dart.test(this[_serializeSendPorts])) {
+      let workerId = _isolate_helper._globalState.currentManagerId;
+      return JSArrayOfObject().of(['sendport', workerId, x[_isolateId], x[_receivePort][_id]]);
+    }
+    return JSArrayOfObject().of(['raw sendport', x]);
+  }
+  serializeCapability(x) {
+    return JSArrayOfObject().of(['capability', x[_id]]);
+  }
+  serializeClosure(x) {
+    let name = _isolate_helper.IsolateNatives._getJSFunctionName(x);
+    if (name == null) {
+      this.unsupported(x, "Closures can't be transmitted:");
+    }
+    return JSArrayOfString().of(['function', name]);
+  }
+  serializeDartObject(x) {
+    let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CLASS_ID_EXTRACTOR);
+    let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CLASS_FIELDS_EXTRACTOR);
+    let classId = classExtractor(x);
+    let fields = fieldsExtractor(x);
+    return ['dart', classId, this.serializeArrayInPlace(_interceptors.JSArray._check(fields))];
+  }
+};
+dart.setSignature(_isolate_helper._Serializer, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._Serializer, [], {serializeSendPorts: dart.dynamic})}),
+  fields: () => ({
+    [_serializeSendPorts]: core.bool,
+    serializedObjectIds: MapOfdynamic$int()
+  }),
+  methods: () => ({
+    serialize: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    unsupported: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.String]),
+    makeRef: dart.definiteFunctionType(dart.dynamic, [core.int]),
+    isPrimitive: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    serializePrimitive: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    serializeByteBuffer: dart.definiteFunctionType(dart.dynamic, [_native_typed_data.NativeByteBuffer]),
+    serializeTypedData: dart.definiteFunctionType(dart.dynamic, [_native_typed_data.NativeTypedData]),
+    serializeJSIndexable: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSIndexable]),
+    serializeArray: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSArray]),
+    serializeArrayInPlace: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSArray]),
+    serializeMap: dart.definiteFunctionType(dart.dynamic, [_js_helper.InternalMap]),
+    serializeJSObject: dart.definiteFunctionType(dart.dynamic, [_interceptors.JSObject]),
+    serializeWorkerSendPort: dart.definiteFunctionType(dart.dynamic, [_isolate_helper._WorkerSendPort]),
+    serializeJsSendPort: dart.definiteFunctionType(dart.dynamic, [_isolate_helper._NativeJsSendPort]),
+    serializeCapability: dart.definiteFunctionType(dart.dynamic, [_isolate_helper.CapabilityImpl]),
+    serializeClosure: dart.definiteFunctionType(dart.dynamic, [core.Function]),
+    serializeDartObject: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+  })
+});
+const _adjustSendPorts = Symbol('_adjustSendPorts');
+_isolate_helper._Deserializer = class _Deserializer extends core.Object {
+  new(opts) {
+    let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendPorts : true;
+    this.deserializedObjects = core.List.new();
+    this[_adjustSendPorts] = core.bool._check(adjustSendPorts);
+  }
+  deserialize(x) {
+    if (dart.test(this.isPrimitive(x))) return this.deserializePrimitive(x);
+    if (!_interceptors.JSArray.is(x)) dart.throw(new core.ArgumentError(dart.str`Bad serialized message: ${x}`));
+    switch (dart.dload(x, 'first')) {
+      case "ref":
+      {
+        return this.deserializeRef(x);
+      }
+      case "buffer":
+      {
+        return this.deserializeByteBuffer(x);
+      }
+      case "typed":
+      {
+        return this.deserializeTypedData(x);
+      }
+      case "fixed":
+      {
+        return this.deserializeFixed(x);
+      }
+      case "extendable":
+      {
+        return this.deserializeExtendable(x);
+      }
+      case "mutable":
+      {
+        return this.deserializeMutable(x);
+      }
+      case "const":
+      {
+        return this.deserializeConst(x);
+      }
+      case "map":
+      {
+        return this.deserializeMap(_js_helper.InternalMap._check(x));
+      }
+      case "sendport":
+      {
+        return this.deserializeSendPort(x);
+      }
+      case "raw sendport":
+      {
+        return this.deserializeRawSendPort(x);
+      }
+      case "js-object":
+      {
+        return this.deserializeJSObject(x);
+      }
+      case "function":
+      {
+        return this.deserializeClosure(x);
+      }
+      case "dart":
+      {
+        return this.deserializeDartObject(x);
+      }
+      default:
+      {
+        dart.throw(dart.str`couldn't deserialize: ${x}`);
+      }
+    }
+  }
+  isPrimitive(x) {
+    return x == null || typeof x == 'string' || typeof x == 'number' || typeof x == 'boolean';
+  }
+  deserializePrimitive(x) {
+    return x;
+  }
+  deserializeRef(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'ref'));
+    let serializationId = core.int._check(dart.dindex(x, 1));
+    return this.deserializedObjects[dartx._get](serializationId);
+  }
+  deserializeByteBuffer(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'buffer'));
+    let result = _native_typed_data.NativeByteBuffer._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return result;
+  }
+  deserializeTypedData(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'typed'));
+    let result = _native_typed_data.NativeTypedData._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return result;
+  }
+  deserializeArrayInPlace(x) {
+    for (let i = 0; i < dart.notNull(x[dartx.length]); i++) {
+      x[dartx._set](i, this.deserialize(x[dartx._get](i)));
+    }
+    return x;
+  }
+  deserializeFixed(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'fixed'));
+    let result = core.List._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(_interceptors.JSArray._check(result)));
+  }
+  deserializeExtendable(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'extendable'));
+    let result = core.List._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace(_interceptors.JSArray._check(result)));
+  }
+  deserializeMutable(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'mutable'));
+    let result = core.List._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return this.deserializeArrayInPlace(_interceptors.JSArray._check(result));
+  }
+  deserializeConst(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'const'));
+    let result = core.List._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(_interceptors.JSArray._check(result)));
+  }
+  deserializeMap(x) {
+    dart.assert(dart.equals(x._get(0), 'map'));
+    let keys = core.List._check(x._get(1));
+    let values = core.List._check(x._get(2));
+    let result = dart.map();
+    this.deserializedObjects[dartx.add](result);
+    keys = keys[dartx.map](dart.dynamic)(dart.bind(this, 'deserialize'))[dartx.toList]();
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      result[dartx._set](keys[dartx._get](i), this.deserialize(values[dartx._get](i)));
+    }
+    return result;
+  }
+  deserializeSendPort(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'sendport'));
+    let managerId = core.int._check(dart.dindex(x, 1));
+    let isolateId = core.int._check(dart.dindex(x, 2));
+    let receivePortId = core.int._check(dart.dindex(x, 3));
+    let result = null;
+    if (managerId == _isolate_helper._globalState.currentManagerId) {
+      let isolate = _isolate_helper._globalState.isolates[dartx._get](isolateId);
+      if (isolate == null) return null;
+      let receivePort = isolate.lookup(receivePortId);
+      if (receivePort == null) return null;
+      result = new _isolate_helper._NativeJsSendPort(receivePort, isolateId);
+    } else {
+      result = new _isolate_helper._WorkerSendPort(managerId, isolateId, receivePortId);
+    }
+    this.deserializedObjects[dartx.add](result);
+    return result;
+  }
+  deserializeRawSendPort(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport'));
+    let result = isolate.SendPort._check(dart.dindex(x, 1));
+    this.deserializedObjects[dartx.add](result);
+    return result;
+  }
+  deserializeJSObject(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'js-object'));
+    let keys = core.List._check(dart.dindex(x, 1));
+    let values = core.List._check(dart.dindex(x, 2));
+    let o = {};
+    this.deserializedObjects[dartx.add](o);
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      o[keys[dartx._get](i)] = this.deserialize(values[dartx._get](i));
+    }
+    return o;
+  }
+  deserializeClosure(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'function'));
+    let name = core.String._check(dart.dindex(x, 1));
+    let result = core.Function._check(_isolate_helper.IsolateNatives._getJSFunctionFromName(name));
+    this.deserializedObjects[dartx.add](result);
+    return result;
+  }
+  deserializeDartObject(x) {
+    dart.assert(dart.equals(dart.dindex(x, 0), 'dart'));
+    let classId = core.String._check(dart.dindex(x, 1));
+    let fields = core.List._check(dart.dindex(x, 2));
+    let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.INSTANCE_FROM_CLASS_ID);
+    let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.INITIALIZE_EMPTY_INSTANCE);
+    let emptyInstance = instanceFromClassId(classId);
+    this.deserializedObjects[dartx.add](emptyInstance);
+    this.deserializeArrayInPlace(_interceptors.JSArray._check(fields));
+    return initializeObject(classId, emptyInstance, fields);
+  }
+};
+dart.setSignature(_isolate_helper._Deserializer, {
+  constructors: () => ({new: dart.definiteFunctionType(_isolate_helper._Deserializer, [], {adjustSendPorts: dart.dynamic})}),
+  fields: () => ({
+    [_adjustSendPorts]: core.bool,
+    deserializedObjects: core.List
+  }),
+  methods: () => ({
+    deserialize: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    isPrimitive: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    deserializePrimitive: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    deserializeRef: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    deserializeByteBuffer: dart.definiteFunctionType(_native_typed_data.NativeByteBuffer, [dart.dynamic]),
+    deserializeTypedData: dart.definiteFunctionType(_native_typed_data.NativeTypedData, [dart.dynamic]),
+    deserializeArrayInPlace: dart.definiteFunctionType(core.List, [_interceptors.JSArray]),
+    deserializeFixed: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    deserializeExtendable: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    deserializeMutable: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    deserializeConst: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    deserializeMap: dart.definiteFunctionType(core.Map, [_js_helper.InternalMap]),
+    deserializeSendPort: dart.definiteFunctionType(isolate.SendPort, [dart.dynamic]),
+    deserializeRawSendPort: dart.definiteFunctionType(isolate.SendPort, [dart.dynamic]),
+    deserializeJSObject: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    deserializeClosure: dart.definiteFunctionType(core.Function, [dart.dynamic]),
+    deserializeDartObject: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+  })
+});
+_js_embedded_names.DISPATCH_PROPERTY_NAME = "dispatchPropertyName";
+_js_embedded_names.TYPE_INFORMATION = 'typeInformation';
+_js_embedded_names.GLOBAL_FUNCTIONS = 'globalFunctions';
+_js_embedded_names.STATICS = 'statics';
+_js_embedded_names.INTERCEPTED_NAMES = 'interceptedNames';
+_js_embedded_names.MANGLED_GLOBAL_NAMES = 'mangledGlobalNames';
+_js_embedded_names.MANGLED_NAMES = 'mangledNames';
+_js_embedded_names.LIBRARIES = 'libraries';
+_js_embedded_names.FINISHED_CLASSES = 'finishedClasses';
+_js_embedded_names.ALL_CLASSES = 'allClasses';
+_js_embedded_names.METADATA = 'metadata';
+_js_embedded_names.INTERCEPTORS_BY_TAG = 'interceptorsByTag';
+_js_embedded_names.LEAF_TAGS = 'leafTags';
+_js_embedded_names.LAZIES = 'lazies';
+_js_embedded_names.GET_ISOLATE_TAG = 'getIsolateTag';
+_js_embedded_names.ISOLATE_TAG = 'isolateTag';
+_js_embedded_names.CURRENT_SCRIPT = 'currentScript';
+_js_embedded_names.DEFERRED_LIBRARY_URIS = 'deferredLibraryUris';
+_js_embedded_names.DEFERRED_LIBRARY_HASHES = 'deferredLibraryHashes';
+_js_embedded_names.INITIALIZE_LOADED_HUNK = 'initializeLoadedHunk';
+_js_embedded_names.IS_HUNK_LOADED = 'isHunkLoaded';
+_js_embedded_names.IS_HUNK_INITIALIZED = 'isHunkInitialized';
+_js_embedded_names.DEFERRED_INITIALIZED = 'deferredInitialized';
+_js_embedded_names.CLASS_ID_EXTRACTOR = 'classIdExtractor';
+_js_embedded_names.CLASS_FIELDS_EXTRACTOR = 'classFieldsExtractor';
+_js_embedded_names.INSTANCE_FROM_CLASS_ID = "instanceFromClassId";
+_js_embedded_names.INITIALIZE_EMPTY_INSTANCE = "initializeEmptyInstance";
+_js_embedded_names.TYPEDEF_TYPE_PROPERTY_NAME = "$typedefType";
+_js_embedded_names.TYPEDEF_PREDICATE_PROPERTY_NAME = "$$isTypedef";
+_js_embedded_names.NATIVE_SUPERCLASS_TAG_NAME = "$nativeSuperclassTag";
+_js_embedded_names.MAP_TYPE_TO_INTERCEPTOR = "mapTypeToInterceptor";
+_js_helper._Patch = class _Patch extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_js_helper._Patch, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._Patch, [])})
+});
+_js_helper.patch = dart.const(new _js_helper._Patch());
+_js_helper.InternalMap$ = dart.generic((K, V) => {
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  class InternalMap extends core.Object {}
+  dart.addTypeTests(InternalMap);
+  InternalMap[dart.implements] = () => [MapOfK$V()];
+  return InternalMap;
+});
+_js_helper.InternalMap = InternalMap();
+_js_helper.Primitives = class Primitives extends core.Object {
+  static initializeStatics(id) {
+    _js_helper.Primitives.mirrorFunctionCacheName = dart.notNull(_js_helper.Primitives.mirrorFunctionCacheName) + dart.str`_${id}`;
+    _js_helper.Primitives.mirrorInvokeCacheName = dart.notNull(_js_helper.Primitives.mirrorInvokeCacheName) + dart.str`_${id}`;
+  }
+  static objectHashCode(object) {
+    let hash = object.$identityHash;
+    if (hash == null) {
+      hash = Math.random() * 0x3fffffff | 0;
+      object.$identityHash = hash;
+    }
+    return hash;
+  }
+  static _parseIntError(source, handleError) {
+    if (handleError == null) dart.throw(new core.FormatException(source));
+    return handleError(source);
+  }
+  static parseInt(source, radix, handleError) {
+    _js_helper.checkString(source);
+    let re = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i;
+    let match = re.exec(source);
+    let digitsIndex = 1;
+    let hexIndex = 2;
+    let decimalIndex = 3;
+    let nonDecimalHexIndex = 4;
+    if (match == null) {
+      return _js_helper.Primitives._parseIntError(source, handleError);
+    }
+    let decimalMatch = match[dartx._get](decimalIndex);
+    if (radix == null) {
+      if (decimalMatch != null) {
+        return parseInt(source, 10);
+      }
+      if (match[dartx._get](hexIndex) != null) {
+        return parseInt(source, 16);
+      }
+      return _js_helper.Primitives._parseIntError(source, handleError);
+    }
+    if (!(typeof radix == 'number')) {
+      dart.throw(new core.ArgumentError.value(radix, 'radix', 'is not an integer'));
+    }
+    if (dart.notNull(radix) < 2 || dart.notNull(radix) > 36) {
+      dart.throw(new core.RangeError.range(radix, 2, 36, 'radix'));
+    }
+    if (radix == 10 && decimalMatch != null) {
+      return parseInt(source, 10);
+    }
+    if (dart.notNull(radix) < 10 || decimalMatch == null) {
+      let maxCharCode = null;
+      if (dart.notNull(radix) <= 10) {
+        maxCharCode = 48 - 1 + dart.notNull(radix);
+      } else {
+        maxCharCode = 97 - 10 - 1 + dart.notNull(radix);
+      }
+      dart.assert(typeof match[dartx._get](digitsIndex) == 'string');
+      let digitsPart = match[digitsIndex];
+      for (let i = 0; i < dart.notNull(digitsPart[dartx.length]); i++) {
+        let characterCode = (dart.notNull(digitsPart[dartx.codeUnitAt](i)) | 32) >>> 0;
+        if (characterCode > dart.notNull(maxCharCode)) {
+          return _js_helper.Primitives._parseIntError(source, handleError);
+        }
+      }
+    }
+    return parseInt(source, radix);
+  }
+  static _parseDoubleError(source, handleError) {
+    if (handleError == null) {
+      dart.throw(new core.FormatException('Invalid double', source));
+    }
+    return handleError(source);
+  }
+  static parseDouble(source, handleError) {
+    _js_helper.checkString(source);
+    if (!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(source)) {
+      return _js_helper.Primitives._parseDoubleError(source, handleError);
+    }
+    let result = parseFloat(source);
+    if (dart.test(result[dartx.isNaN])) {
+      let trimmed = source[dartx.trim]();
+      if (trimmed == 'NaN' || trimmed == '+NaN' || trimmed == '-NaN') {
+        return result;
+      }
+      return _js_helper.Primitives._parseDoubleError(source, handleError);
+    }
+    return result;
+  }
+  static objectTypeName(object) {
+    return dart.toString(_js_helper.getRuntimeType(object));
+  }
+  static objectToString(object) {
+    let name = dart.typeName(dart.getReifiedType(object));
+    return dart.str`Instance of '${name}'`;
+  }
+  static dateNow() {
+    return Date.now();
+  }
+  static initTicker() {
+    if (_js_helper.Primitives.timerFrequency != null) return;
+    _js_helper.Primitives.timerFrequency = 1000;
+    _js_helper.Primitives.timerTicks = _js_helper.Primitives.dateNow;
+    if (typeof window == "undefined") return;
+    let jsWindow = window;
+    if (jsWindow == null) return;
+    let performance = jsWindow.performance;
+    if (performance == null) return;
+    if (typeof performance.now != "function") return;
+    _js_helper.Primitives.timerFrequency = 1000000;
+    _js_helper.Primitives.timerTicks = dart.fn(() => (1000 * performance.now())[dartx.floor](), VoidToint());
+  }
+  static get isD8() {
+    return typeof version == "function" && typeof os == "object" && "system" in os;
+  }
+  static get isJsshell() {
+    return typeof version == "function" && typeof system == "function";
+  }
+  static currentUri() {
+    if (!!self.location) {
+      return self.location.href;
+    }
+    return null;
+  }
+  static _fromCharCodeApply(array) {
+    let kMaxApply = 500;
+    let end = array[dartx.length];
+    if (dart.notNull(end) <= kMaxApply) {
+      return String.fromCharCode.apply(null, array);
+    }
+    let result = '';
+    for (let i = 0; i < dart.notNull(end); i = i + kMaxApply) {
+      let chunkEnd = i + kMaxApply < dart.notNull(end) ? i + kMaxApply : end;
+      result = result + String.fromCharCode.apply(null, array.slice(i, chunkEnd));
+    }
+    return result;
+  }
+  static stringFromCodePoints(codePoints) {
+    let a = JSArrayOfint().of([]);
+    for (let i of codePoints) {
+      if (!(typeof i == 'number')) dart.throw(_js_helper.argumentErrorValue(i));
+      if (dart.notNull(i) <= 65535) {
+        a[dartx.add](i);
+      } else if (dart.notNull(i) <= 1114111) {
+        a[dartx.add](55296 + (dart.notNull(i) - 65536 >> 10 & 1023));
+        a[dartx.add](56320 + (dart.notNull(i) & 1023));
+      } else {
+        dart.throw(_js_helper.argumentErrorValue(i));
+      }
+    }
+    return _js_helper.Primitives._fromCharCodeApply(a);
+  }
+  static stringFromCharCodes(charCodes) {
+    for (let i of charCodes) {
+      if (!(typeof i == 'number')) dart.throw(_js_helper.argumentErrorValue(i));
+      if (dart.notNull(i) < 0) dart.throw(_js_helper.argumentErrorValue(i));
+      if (dart.notNull(i) > 65535) return _js_helper.Primitives.stringFromCodePoints(charCodes);
+    }
+    return _js_helper.Primitives._fromCharCodeApply(charCodes);
+  }
+  static stringFromNativeUint8List(charCodes, start, end) {
+    let kMaxApply = 500;
+    if (dart.notNull(end) <= kMaxApply && start == 0 && end == charCodes[dartx.length]) {
+      return String.fromCharCode.apply(null, charCodes);
+    }
+    let result = '';
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + kMaxApply) {
+      let chunkEnd = dart.notNull(i) + kMaxApply < dart.notNull(end) ? dart.notNull(i) + kMaxApply : end;
+      result = result + String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd));
+    }
+    return result;
+  }
+  static stringFromCharCode(charCode) {
+    if (0 <= dart.notNull(charCode)) {
+      if (dart.notNull(charCode) <= 65535) {
+        return String.fromCharCode(charCode);
+      }
+      if (dart.notNull(charCode) <= 1114111) {
+        let bits = dart.notNull(charCode) - 65536;
+        let low = 56320 | bits & 1023;
+        let high = (55296 | bits[dartx['>>']](10)) >>> 0;
+        return String.fromCharCode(high, low);
+      }
+    }
+    dart.throw(new core.RangeError.range(charCode, 0, 1114111));
+  }
+  static stringConcatUnchecked(string1, string2) {
+    return _foreign_helper.JS_STRING_CONCAT(string1, string2);
+  }
+  static flattenString(str) {
+    return str.charCodeAt(0) == 0 ? str : str;
+  }
+  static getTimeZoneName(receiver) {
+    let d = _js_helper.Primitives.lazyAsJsDate(receiver);
+    let match = /\((.*)\)/.exec(d.toString());
+    if (match != null) return core.String._check(match[dartx._get](1));
+    match = /^[A-Z,a-z]{3}\s[A-Z,a-z]{3}\s\d+\s\d{2}:\d{2}:\d{2}\s([A-Z]{3,5})\s\d{4}$/.exec(d.toString());
+    if (match != null) return core.String._check(match[dartx._get](1));
+    match = /(?:GMT|UTC)[+-]\d{4}/.exec(d.toString());
+    if (match != null) return core.String._check(match[dartx._get](0));
+    return "";
+  }
+  static getTimeZoneOffsetInMinutes(receiver) {
+    return -_js_helper.Primitives.lazyAsJsDate(receiver).getTimezoneOffset();
+  }
+  static valueFromDecomposedDate(years, month, day, hours, minutes, seconds, milliseconds, isUtc) {
+    let MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
+    _js_helper.checkInt(years);
+    _js_helper.checkInt(month);
+    _js_helper.checkInt(day);
+    _js_helper.checkInt(hours);
+    _js_helper.checkInt(minutes);
+    _js_helper.checkInt(seconds);
+    _js_helper.checkInt(milliseconds);
+    _js_helper.checkBool(isUtc);
+    let jsMonth = dart.notNull(month) - 1;
+    let value = null;
+    if (dart.test(isUtc)) {
+      value = Date.UTC(years, jsMonth, day, hours, minutes, seconds, milliseconds);
+    } else {
+      value = new Date(years, jsMonth, day, hours, minutes, seconds, milliseconds).valueOf();
+    }
+    if (dart.test(value[dartx.isNaN]) || dart.notNull(value) < -MAX_MILLISECONDS_SINCE_EPOCH || dart.notNull(value) > MAX_MILLISECONDS_SINCE_EPOCH) {
+      return null;
+    }
+    if (dart.notNull(years) <= 0 || dart.notNull(years) < 100) return core.num._check(_js_helper.Primitives.patchUpY2K(value, years, isUtc));
+    return value;
+  }
+  static patchUpY2K(value, years, isUtc) {
+    let date = new Date(value);
+    if (dart.test(isUtc)) {
+      date.setUTCFullYear(years);
+    } else {
+      date.setFullYear(years);
+    }
+    return date.valueOf();
+  }
+  static lazyAsJsDate(receiver) {
+    if (receiver.date === void 0) {
+      receiver.date = new Date(receiver.millisecondsSinceEpoch);
+    }
+    return receiver.date;
+  }
+  static getYear(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCFullYear() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getFullYear() + 0;
+  }
+  static getMonth(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMonth() + 1 : _js_helper.Primitives.lazyAsJsDate(receiver).getMonth() + 1;
+  }
+  static getDay(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDate() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDate() + 0;
+  }
+  static getHours(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCHours() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getHours() + 0;
+  }
+  static getMinutes(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMinutes() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMinutes() + 0;
+  }
+  static getSeconds(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCSeconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getSeconds() + 0;
+  }
+  static getMilliseconds(receiver) {
+    return dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getMilliseconds() + 0;
+  }
+  static getWeekday(receiver) {
+    let weekday = dart.test(receiver.isUtc) ? _js_helper.Primitives.lazyAsJsDate(receiver).getUTCDay() + 0 : _js_helper.Primitives.lazyAsJsDate(receiver).getDay() + 0;
+    return (weekday + 6)[dartx['%']](7) + 1;
+  }
+  static valueFromDateString(str) {
+    if (!(typeof str == 'string')) dart.throw(_js_helper.argumentErrorValue(str));
+    let value = Date.parse(str);
+    if (dart.test(value[dartx.isNaN])) dart.throw(_js_helper.argumentErrorValue(str));
+    return value;
+  }
+  static getProperty(object, key) {
+    if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
+      dart.throw(_js_helper.argumentErrorValue(object));
+    }
+    return object[key];
+  }
+  static setProperty(object, key, value) {
+    if (object == null || typeof object == 'boolean' || typeof object == 'number' || typeof object == 'string') {
+      dart.throw(_js_helper.argumentErrorValue(object));
+    }
+    object[key] = value;
+  }
+  static extractStackTrace(error) {
+    return _js_helper.getTraceFromException(error.$thrownJsError);
+  }
+};
+dart.setSignature(_js_helper.Primitives, {
+  sfields: () => ({
+    mirrorFunctionCacheName: core.String,
+    mirrorInvokeCacheName: core.String,
+    DOLLAR_CHAR_VALUE: core.int,
+    timerFrequency: core.int,
+    timerTicks: core.Function
+  }),
+  sgetters: () => ({
+    isD8: dart.definiteFunctionType(core.bool, []),
+    isJsshell: dart.definiteFunctionType(core.bool, [])
+  }),
+  statics: () => ({
+    initializeStatics: dart.definiteFunctionType(dart.void, [core.int]),
+    objectHashCode: dart.definiteFunctionType(core.int, [dart.dynamic]),
+    _parseIntError: dart.definiteFunctionType(core.int, [core.String, StringToint()]),
+    parseInt: dart.definiteFunctionType(core.int, [core.String, core.int, StringToint()]),
+    _parseDoubleError: dart.definiteFunctionType(core.double, [core.String, StringTodouble()]),
+    parseDouble: dart.definiteFunctionType(core.double, [core.String, StringTodouble()]),
+    objectTypeName: dart.definiteFunctionType(core.String, [core.Object]),
+    objectToString: dart.definiteFunctionType(core.String, [core.Object]),
+    dateNow: dart.definiteFunctionType(core.int, []),
+    initTicker: dart.definiteFunctionType(dart.void, []),
+    currentUri: dart.definiteFunctionType(core.String, []),
+    _fromCharCodeApply: dart.definiteFunctionType(core.String, [ListOfint()]),
+    stringFromCodePoints: dart.definiteFunctionType(core.String, [JSArrayOfint()]),
+    stringFromCharCodes: dart.definiteFunctionType(core.String, [JSArrayOfint()]),
+    stringFromNativeUint8List: dart.definiteFunctionType(core.String, [_native_typed_data.NativeUint8List, core.int, core.int]),
+    stringFromCharCode: dart.definiteFunctionType(core.String, [core.int]),
+    stringConcatUnchecked: dart.definiteFunctionType(core.String, [core.String, core.String]),
+    flattenString: dart.definiteFunctionType(core.String, [core.String]),
+    getTimeZoneName: dart.definiteFunctionType(core.String, [core.DateTime]),
+    getTimeZoneOffsetInMinutes: dart.definiteFunctionType(core.int, [core.DateTime]),
+    valueFromDecomposedDate: dart.definiteFunctionType(core.num, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.bool]),
+    patchUpY2K: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    lazyAsJsDate: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getYear: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getMonth: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getDay: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getHours: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getMinutes: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getSeconds: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getMilliseconds: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    getWeekday: dart.definiteFunctionType(dart.dynamic, [core.DateTime]),
+    valueFromDateString: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    getProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    setProperty: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    extractStackTrace: dart.definiteFunctionType(core.StackTrace, [core.Error])
+  }),
+  names: ['initializeStatics', 'objectHashCode', '_parseIntError', 'parseInt', '_parseDoubleError', 'parseDouble', 'objectTypeName', 'objectToString', 'dateNow', 'initTicker', 'currentUri', '_fromCharCodeApply', 'stringFromCodePoints', 'stringFromCharCodes', 'stringFromNativeUint8List', 'stringFromCharCode', 'stringConcatUnchecked', 'flattenString', 'getTimeZoneName', 'getTimeZoneOffsetInMinutes', 'valueFromDecomposedDate', 'patchUpY2K', 'lazyAsJsDate', 'getYear', 'getMonth', 'getDay', 'getHours', 'getMinutes', 'getSeconds', 'getMilliseconds', 'getWeekday', 'valueFromDateString', 'getProperty', 'setProperty', 'extractStackTrace']
+});
+_js_helper.Primitives.mirrorFunctionCacheName = '$cachedFunction';
+_js_helper.Primitives.mirrorInvokeCacheName = '$cachedInvocation';
+_js_helper.Primitives.DOLLAR_CHAR_VALUE = 36;
+_js_helper.Primitives.timerFrequency = null;
+_js_helper.Primitives.timerTicks = null;
+_js_helper.diagnoseIndexError = function(indexable, index) {
+  if (!(typeof index == 'number')) return new core.ArgumentError.value(index, 'index');
+  let length = core.int._check(dart.dload(indexable, 'length'));
+  if (dart.test(dart.dsend(index, '<', 0)) || dart.test(dart.dsend(index, '>=', length))) {
+    return core.RangeError.index(core.int._check(index), indexable, 'index', null, length);
+  }
+  return new core.RangeError.value(core.num._check(index), 'index');
+};
+dart.lazyFn(_js_helper.diagnoseIndexError, () => dynamicAnddynamicToError());
+_js_helper.diagnoseRangeError = function(start, end, length) {
+  if (!(typeof start == 'number')) {
+    return new core.ArgumentError.value(start, 'start');
+  }
+  if (dart.test(dart.dsend(start, '<', 0)) || dart.test(dart.dsend(start, '>', length))) {
+    return new core.RangeError.range(core.num._check(start), 0, core.int._check(length), 'start');
+  }
+  if (end != null) {
+    if (!(typeof end == 'number')) {
+      return new core.ArgumentError.value(end, 'end');
+    }
+    if (dart.test(dart.dsend(end, '<', start)) || dart.test(dart.dsend(end, '>', length))) {
+      return new core.RangeError.range(core.num._check(end), core.int._check(start), core.int._check(length), 'end');
+    }
+  }
+  return new core.ArgumentError.value(end, "end");
+};
+dart.lazyFn(_js_helper.diagnoseRangeError, () => dynamicAnddynamicAnddynamicToError());
+_js_helper.stringLastIndexOfUnchecked = function(receiver, element, start) {
+  return receiver.lastIndexOf(element, start);
+};
+dart.fn(_js_helper.stringLastIndexOfUnchecked, dynamicAnddynamicAnddynamicTodynamic());
+_js_helper.argumentErrorValue = function(object) {
+  return new core.ArgumentError.value(object);
+};
+dart.lazyFn(_js_helper.argumentErrorValue, () => dynamicToArgumentError());
+_js_helper.checkNull = function(object) {
+  if (object == null) dart.throw(_js_helper.argumentErrorValue(object));
+  return object;
+};
+dart.fn(_js_helper.checkNull, dynamicTodynamic$());
+_js_helper.checkNum = function(value) {
+  if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
+  return value;
+};
+dart.fn(_js_helper.checkNum, dynamicTodynamic$());
+_js_helper.checkInt = function(value) {
+  if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
+  return value;
+};
+dart.fn(_js_helper.checkInt, dynamicTodynamic$());
+_js_helper.checkBool = function(value) {
+  if (!(typeof value == 'boolean')) dart.throw(_js_helper.argumentErrorValue(value));
+  return value;
+};
+dart.fn(_js_helper.checkBool, dynamicTodynamic$());
+_js_helper.checkString = function(value) {
+  if (!(typeof value == 'string')) dart.throw(_js_helper.argumentErrorValue(value));
+  return value;
+};
+dart.fn(_js_helper.checkString, dynamicTodynamic$());
+_js_helper.throwRuntimeError = function(message) {
+  dart.throw(new _js_helper.RuntimeError(message));
+};
+dart.fn(_js_helper.throwRuntimeError, dynamicTodynamic$());
+_js_helper.throwAbstractClassInstantiationError = function(className) {
+  dart.throw(new core.AbstractClassInstantiationError(core.String._check(className)));
+};
+dart.fn(_js_helper.throwAbstractClassInstantiationError, dynamicTodynamic$());
+_js_helper.throwConcurrentModificationError = function(collection) {
+  dart.throw(new core.ConcurrentModificationError(collection));
+};
+dart.fn(_js_helper.throwConcurrentModificationError, dynamicTodynamic$());
+const _message = Symbol('_message');
+const _method = Symbol('_method');
+core.Error = class Error extends core.Object {
+  new() {
+  }
+  static safeToString(object) {
+    if (typeof object == 'number' || typeof object == 'boolean' || null == object) {
+      return dart.toString(object);
+    }
+    if (typeof object == 'string') {
+      return core.Error._stringToSafeString(object);
+    }
+    return core.Error._objectToString(object);
+  }
+  static _stringToSafeString(string) {
+    return _js_helper.jsonEncodeNative(string);
+  }
+  static _objectToString(object) {
+    return _js_helper.Primitives.objectToString(object);
+  }
+  get stackTrace() {
+    return _js_helper.Primitives.extractStackTrace(this);
+  }
+};
+dart.setSignature(core.Error, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Error, [])}),
+  getters: () => ({stackTrace: dart.definiteFunctionType(core.StackTrace, [])}),
+  statics: () => ({
+    safeToString: dart.definiteFunctionType(core.String, [core.Object]),
+    _stringToSafeString: dart.definiteFunctionType(core.String, [core.String]),
+    _objectToString: dart.definiteFunctionType(core.String, [core.Object])
+  }),
+  names: ['safeToString', '_stringToSafeString', '_objectToString']
+});
+_js_helper.NullError = class NullError extends core.Error {
+  new(message, match) {
+    this[_message] = message;
+    this[_method] = core.String._check(match == null ? null : match.method);
+    super.new();
+  }
+  toString() {
+    if (this[_method] == null) return dart.str`NullError: ${this[_message]}`;
+    return dart.str`NullError: method not found: '${this[_method]}' on null`;
+  }
+};
+_js_helper.NullError[dart.implements] = () => [core.NoSuchMethodError];
+dart.setSignature(_js_helper.NullError, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.NullError, [core.String, dart.dynamic])}),
+  fields: () => ({
+    [_message]: core.String,
+    [_method]: core.String
+  })
+});
+const _receiver = Symbol('_receiver');
+_js_helper.JsNoSuchMethodError = class JsNoSuchMethodError extends core.Error {
+  new(message, match) {
+    this[_message] = message;
+    this[_method] = core.String._check(match == null ? null : match.method);
+    this[_receiver] = core.String._check(match == null ? null : match.receiver);
+    super.new();
+  }
+  toString() {
+    if (this[_method] == null) return dart.str`NoSuchMethodError: ${this[_message]}`;
+    if (this[_receiver] == null) {
+      return dart.str`NoSuchMethodError: method not found: '${this[_method]}' (${this[_message]})`;
+    }
+    return "NoSuchMethodError: " + dart.str`method not found: '${this[_method]}' on '${this[_receiver]}' (${this[_message]})`;
+  }
+};
+_js_helper.JsNoSuchMethodError[dart.implements] = () => [core.NoSuchMethodError];
+dart.setSignature(_js_helper.JsNoSuchMethodError, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.JsNoSuchMethodError, [core.String, dart.dynamic])}),
+  fields: () => ({
+    [_message]: core.String,
+    [_method]: core.String,
+    [_receiver]: core.String
+  })
+});
+_js_helper.UnknownJsTypeError = class UnknownJsTypeError extends core.Error {
+  new(message) {
+    this[_message] = message;
+    super.new();
+  }
+  toString() {
+    return dart.test(this[_message][dartx.isEmpty]) ? 'Error' : dart.str`Error: ${this[_message]}`;
+  }
+};
+dart.setSignature(_js_helper.UnknownJsTypeError, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.UnknownJsTypeError, [core.String])}),
+  fields: () => ({[_message]: core.String})
+});
+_js_helper.getTraceFromException = function(exception) {
+  return new _js_helper._StackTrace(exception);
+};
+dart.lazyFn(_js_helper.getTraceFromException, () => dynamicToStackTrace());
+const _exception = Symbol('_exception');
+const _trace = Symbol('_trace');
+_js_helper._StackTrace = class _StackTrace extends core.Object {
+  new(exception) {
+    this[_exception] = exception;
+    this[_trace] = null;
+  }
+  toString() {
+    if (this[_trace] != null) return this[_trace];
+    let trace = null;
+    if (this[_exception] !== null && typeof this[_exception] === "object") {
+      trace = this[_exception].stack;
+    }
+    return this[_trace] = trace == null ? '' : trace;
+  }
+};
+_js_helper._StackTrace[dart.implements] = () => [core.StackTrace];
+dart.setSignature(_js_helper._StackTrace, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._StackTrace, [dart.dynamic])}),
+  fields: () => ({
+    [_exception]: dart.dynamic,
+    [_trace]: core.String
+  })
+});
+_js_helper.objectHashCode = function(object) {
+  if (object == null || typeof object != 'object') {
+    return dart.hashCode(object);
+  } else {
+    return _js_helper.Primitives.objectHashCode(object);
+  }
+};
+dart.fn(_js_helper.objectHashCode, dynamicToint());
+_js_helper.fillLiteralMap = function(keyValuePairs, result) {
+  let index = 0;
+  let length = _js_helper.getLength(keyValuePairs);
+  while (index < dart.notNull(length)) {
+    let key = _js_helper.getIndex(keyValuePairs, index++);
+    let value = _js_helper.getIndex(keyValuePairs, index++);
+    result[dartx._set](key, value);
+  }
+  return result;
+};
+dart.lazyFn(_js_helper.fillLiteralMap, () => dynamicAndMapTodynamic());
+_js_helper.jsHasOwnProperty = function(jsObject, property) {
+  return jsObject.hasOwnProperty(property);
+};
+dart.lazyFn(_js_helper.jsHasOwnProperty, () => dynamicAndStringTobool());
+_js_helper.jsPropertyAccess = function(jsObject, property) {
+  return jsObject[property];
+};
+dart.lazyFn(_js_helper.jsPropertyAccess, () => dynamicAndStringTodynamic());
+_js_helper.getFallThroughError = function() {
+  return new _js_helper.FallThroughErrorImplementation();
+};
+dart.fn(_js_helper.getFallThroughError, VoidTodynamic$());
+_js_helper.Creates = class Creates extends core.Object {
+  new(types) {
+    this.types = types;
+  }
+};
+dart.setSignature(_js_helper.Creates, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.Creates, [core.String])}),
+  fields: () => ({types: core.String})
+});
+_js_helper.Returns = class Returns extends core.Object {
+  new(types) {
+    this.types = types;
+  }
+};
+dart.setSignature(_js_helper.Returns, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.Returns, [core.String])}),
+  fields: () => ({types: core.String})
+});
+_js_helper.JSName = class JSName extends core.Object {
+  new(name) {
+    this.name = name;
+  }
+};
+dart.setSignature(_js_helper.JSName, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.JSName, [core.String])}),
+  fields: () => ({name: core.String})
+});
+_js_helper.JavaScriptIndexingBehavior = class JavaScriptIndexingBehavior extends core.Object {};
+_js_helper.TypeErrorImplementation = class TypeErrorImplementation extends core.Error {
+  new(value, actualType, expectedType) {
+    this.message = dart.str`Type '${actualType}' is not a subtype ` + dart.str`of type '${expectedType}'`;
+    super.new();
+  }
+  fromMessage(message) {
+    this.message = message;
+    super.new();
+  }
+  toString() {
+    return this.message;
+  }
+};
+dart.defineNamedConstructor(_js_helper.TypeErrorImplementation, 'fromMessage');
+_js_helper.TypeErrorImplementation[dart.implements] = () => [core.TypeError];
+dart.setSignature(_js_helper.TypeErrorImplementation, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_js_helper.TypeErrorImplementation, [core.Object, core.Object, core.Object]),
+    fromMessage: dart.definiteFunctionType(_js_helper.TypeErrorImplementation, [core.String])
+  }),
+  fields: () => ({message: core.String})
+});
+_js_helper.CastErrorImplementation = class CastErrorImplementation extends core.Error {
+  new(value, actualType, expectedType) {
+    this.message = dart.str`CastError: Casting value of type '${actualType}' to` + dart.str` incompatible type '${expectedType}'`;
+    super.new();
+  }
+  toString() {
+    return this.message;
+  }
+};
+_js_helper.CastErrorImplementation[dart.implements] = () => [core.CastError];
+dart.setSignature(_js_helper.CastErrorImplementation, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.CastErrorImplementation, [core.Object, core.Object, core.Object])}),
+  fields: () => ({message: core.String})
+});
+_js_helper.StrongModeTypeError = class StrongModeTypeError extends core.Error {
+  new(value, actualType, expectedType) {
+    this.message = dart.str`Type '${actualType}' is not a subtype ` + dart.str`of type '${expectedType}' in strong mode`;
+    super.new();
+  }
+  toString() {
+    return this.message;
+  }
+};
+_js_helper.StrongModeTypeError[dart.implements] = () => [core.TypeError, core.StrongModeError];
+dart.setSignature(_js_helper.StrongModeTypeError, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.StrongModeTypeError, [core.Object, core.Object, core.Object])}),
+  fields: () => ({message: core.String})
+});
+_js_helper.StrongModeCastError = class StrongModeCastError extends core.Error {
+  new(value, actualType, expectedType) {
+    this.message = dart.str`CastError: Casting value of type '${actualType}' to` + dart.str` type '${expectedType}' which is incompatible in strong mode`;
+    super.new();
+  }
+  toString() {
+    return this.message;
+  }
+};
+_js_helper.StrongModeCastError[dart.implements] = () => [core.CastError, core.StrongModeError];
+dart.setSignature(_js_helper.StrongModeCastError, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.StrongModeCastError, [core.Object, core.Object, core.Object])}),
+  fields: () => ({message: core.String})
+});
+_js_helper.StrongModeErrorImplementation = class StrongModeErrorImplementation extends core.Error {
+  new(message) {
+    this.message = message;
+    super.new();
+  }
+  toString() {
+    return this.message;
+  }
+};
+_js_helper.StrongModeErrorImplementation[dart.implements] = () => [core.StrongModeError];
+dart.setSignature(_js_helper.StrongModeErrorImplementation, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.StrongModeErrorImplementation, [core.String])}),
+  fields: () => ({message: core.String})
+});
+core.FallThroughError = class FallThroughError extends core.Error {
+  new() {
+    super.new();
+  }
+};
+dart.setSignature(core.FallThroughError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.FallThroughError, [])})
+});
+_js_helper.FallThroughErrorImplementation = class FallThroughErrorImplementation extends core.FallThroughError {
+  new() {
+    super.new();
+  }
+  toString() {
+    return "Switch case fall-through.";
+  }
+};
+dart.setSignature(_js_helper.FallThroughErrorImplementation, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.FallThroughErrorImplementation, [])})
+});
+_js_helper.RuntimeError = class RuntimeError extends core.Error {
+  new(message) {
+    this.message = message;
+    super.new();
+  }
+  toString() {
+    return dart.str`RuntimeError: ${this.message}`;
+  }
+};
+dart.setSignature(_js_helper.RuntimeError, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.RuntimeError, [dart.dynamic])}),
+  fields: () => ({message: dart.dynamic})
+});
+core.AssertionError = class AssertionError extends core.Error {
+  new() {
+    super.new();
+  }
+  toString() {
+    return "Assertion failed";
+  }
+};
+dart.setSignature(core.AssertionError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.AssertionError, [])})
+});
+_js_helper.AssertionErrorWithMessage = class AssertionErrorWithMessage extends core.AssertionError {
+  new(message) {
+    this[_message] = message;
+    super.new();
+  }
+  toString() {
+    return dart.str`Assertion failed: ${this[_message]}`;
+  }
+};
+dart.setSignature(_js_helper.AssertionErrorWithMessage, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.AssertionErrorWithMessage, [core.Object])}),
+  fields: () => ({[_message]: core.Object})
+});
+_js_helper.random64 = function() {
+  let int32a = Math.random() * 0x100000000 >>> 0;
+  let int32b = Math.random() * 0x100000000 >>> 0;
+  return int32a + int32b * 4294967296;
+};
+dart.fn(_js_helper.random64, VoidToint());
+_js_helper.jsonEncodeNative = function(string) {
+  return JSON.stringify(string);
+};
+dart.lazyFn(_js_helper.jsonEncodeNative, () => StringToString$());
+const _jsIterator = Symbol('_jsIterator');
+const _current$0 = Symbol('_current');
+_js_helper.SyncIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class SyncIterator extends core.Object {
+    new(jsIterator) {
+      this[_jsIterator] = jsIterator;
+      this[_current$0] = null;
+    }
+    get current() {
+      return this[_current$0];
+    }
+    moveNext() {
+      let ret = this[_jsIterator].next();
+      this[_current$0] = ret.value;
+      return !ret.done;
+    }
+  }
+  dart.addTypeTests(SyncIterator);
+  SyncIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(SyncIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_js_helper.SyncIterator$(E), [dart.dynamic])}),
+    fields: () => ({
+      [_jsIterator]: dart.dynamic,
+      [_current$0]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return SyncIterator;
+});
+_js_helper.SyncIterator = SyncIterator();
+const _generator = Symbol('_generator');
+const _args = Symbol('_args');
+collection.IterableBase$ = dart.generic(E => {
+  class IterableBase extends core.Iterable$(E) {
+    new() {
+      super.new();
+    }
+    static iterableToShortString(iterable, leftDelimiter, rightDelimiter) {
+      if (leftDelimiter === void 0) leftDelimiter = '(';
+      if (rightDelimiter === void 0) rightDelimiter = ')';
+      if (dart.test(collection._isToStringVisiting(iterable))) {
+        if (leftDelimiter == "(" && rightDelimiter == ")") {
+          return "(...)";
+        }
+        return dart.str`${leftDelimiter}...${rightDelimiter}`;
+      }
+      let parts = [];
+      collection._toStringVisiting[dartx.add](iterable);
+      try {
+        collection._iterablePartsToStrings(iterable, parts);
+      } finally {
+        dart.assert(core.identical(collection._toStringVisiting[dartx.last], iterable));
+        collection._toStringVisiting[dartx.removeLast]();
+      }
+      return (() => {
+        let _ = new core.StringBuffer(leftDelimiter);
+        _.writeAll(parts, ", ");
+        _.write(rightDelimiter);
+        return _;
+      })().toString();
+    }
+    static iterableToFullString(iterable, leftDelimiter, rightDelimiter) {
+      if (leftDelimiter === void 0) leftDelimiter = '(';
+      if (rightDelimiter === void 0) rightDelimiter = ')';
+      if (dart.test(collection._isToStringVisiting(iterable))) {
+        return dart.str`${leftDelimiter}...${rightDelimiter}`;
+      }
+      let buffer = new core.StringBuffer(leftDelimiter);
+      collection._toStringVisiting[dartx.add](iterable);
+      try {
+        buffer.writeAll(iterable, ", ");
+      } finally {
+        dart.assert(core.identical(collection._toStringVisiting[dartx.last], iterable));
+        collection._toStringVisiting[dartx.removeLast]();
+      }
+      buffer.write(rightDelimiter);
+      return buffer.toString();
+    }
+  }
+  dart.setSignature(IterableBase, {
+    constructors: () => ({new: dart.definiteFunctionType(collection.IterableBase$(E), [])}),
+    statics: () => ({
+      iterableToShortString: dart.definiteFunctionType(core.String, [core.Iterable], [core.String, core.String]),
+      iterableToFullString: dart.definiteFunctionType(core.String, [core.Iterable], [core.String, core.String])
+    }),
+    names: ['iterableToShortString', 'iterableToFullString']
+  });
+  return IterableBase;
+});
+collection.IterableBase = IterableBase();
+_js_helper.SyncIterable$ = dart.generic(E => {
+  let SyncIteratorOfE = () => (SyncIteratorOfE = dart.constFn(_js_helper.SyncIterator$(E)))();
+  class SyncIterable extends collection.IterableBase$(E) {
+    new(generator, args) {
+      this[_generator] = generator;
+      this[_args] = args;
+      super.new();
+    }
+    [_jsIterator]() {
+      return this[_generator](...this[_args]);
+    }
+    get iterator() {
+      return new (SyncIteratorOfE())(this[_jsIterator]());
+    }
+  }
+  dart.setSignature(SyncIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_js_helper.SyncIterable$(E), [dart.dynamic, dart.dynamic])}),
+    fields: () => ({
+      [_generator]: dart.dynamic,
+      [_args]: dart.dynamic
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({[_jsIterator]: dart.definiteFunctionType(dart.dynamic, [])})
+  });
+  dart.defineExtensionMembers(SyncIterable, ['iterator']);
+  return SyncIterable;
+});
+_js_helper.SyncIterable = SyncIterable();
+_js_helper.BooleanConversionAssertionError = class BooleanConversionAssertionError extends core.AssertionError {
+  new() {
+    super.new();
+  }
+  toString() {
+    return 'Failed assertion: boolean expression must not be null';
+  }
+};
+_js_helper.NoThrows = class NoThrows extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_js_helper.NoThrows, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.NoThrows, [])})
+});
+_js_helper.NoInline = class NoInline extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_js_helper.NoInline, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.NoInline, [])})
+});
+_js_helper.Native = class Native extends core.Object {
+  new(name) {
+    this.name = name;
+  }
+};
+dart.setSignature(_js_helper.Native, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.Native, [core.String])}),
+  fields: () => ({name: core.String})
+});
+_js_helper.JsPeerInterface = class JsPeerInterface extends core.Object {
+  new(opts) {
+    let name = opts && 'name' in opts ? opts.name : null;
+    this.name = name;
+  }
+};
+dart.setSignature(_js_helper.JsPeerInterface, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.JsPeerInterface, [], {name: core.String})}),
+  fields: () => ({name: core.String})
+});
+_js_helper.SupportJsExtensionMethods = class SupportJsExtensionMethods extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_js_helper.SupportJsExtensionMethods, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.SupportJsExtensionMethods, [])})
+});
+const _length$0 = Symbol('_length');
+const _strings = Symbol('_strings');
+const _nums = Symbol('_nums');
+const _rest = Symbol('_rest');
+const _first = Symbol('_first');
+const _last = Symbol('_last');
+const _modifications = Symbol('_modifications');
+const _containsTableEntry = Symbol('_containsTableEntry');
+const _getBucket = Symbol('_getBucket');
+const _getTableCell = Symbol('_getTableCell');
+const _newHashTable = Symbol('_newHashTable');
+const _addHashTableEntry = Symbol('_addHashTableEntry');
+const _getTableBucket = Symbol('_getTableBucket');
+const _newLinkedCell = Symbol('_newLinkedCell');
+const _setTableEntry = Symbol('_setTableEntry');
+const _removeHashTableEntry = Symbol('_removeHashTableEntry');
+const _unlinkCell = Symbol('_unlinkCell');
+const _modified = Symbol('_modified');
+const _next = Symbol('_next');
+const _deleteTableEntry = Symbol('_deleteTableEntry');
+const _previous = Symbol('_previous');
+_js_helper.JsLinkedHashMap$ = dart.generic((K, V) => {
+  let JsLinkedHashMapOfK$V = () => (JsLinkedHashMapOfK$V = dart.constFn(_js_helper.JsLinkedHashMap$(K, V)))();
+  let LinkedHashMapKeyIterableOfK = () => (LinkedHashMapKeyIterableOfK = dart.constFn(_js_helper.LinkedHashMapKeyIterable$(K)))();
+  let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
+  let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
+  let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
+  let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
+  class JsLinkedHashMap extends core.Object {
+    new() {
+      this[_length$0] = 0;
+      this[_strings] = null;
+      this[_nums] = null;
+      this[_rest] = null;
+      this[_first] = null;
+      this[_last] = null;
+      this[_modifications] = 0;
+    }
+    static es6() {
+      return new (JsLinkedHashMapOfK$V())();
+    }
+    get length() {
+      return this[_length$0];
+    }
+    get isEmpty() {
+      return this[_length$0] == 0;
     }
     get isNotEmpty() {
-      return dart.notNull(this.length) > 0;
+      return !dart.test(this.isEmpty);
     }
     get keys() {
-      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.keys];
-      return new convert._JsonMapKeyIterable(this);
+      return new (LinkedHashMapKeyIterableOfK())(this);
     }
     get values() {
-      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.values];
-      return MappedIterableOfString$dynamic().new(this[_computeKeys$](), dart.fn(each => this._get(each), dynamicTodynamic$()));
+      return MappedIterableOfK$V().new(this.keys, dart.fn(each => this._get(each), KToV()));
+    }
+    containsKey(key) {
+      if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
+        let strings = this[_strings];
+        if (strings == null) return false;
+        return this[_containsTableEntry](strings, key);
+      } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
+        let nums = this[_nums];
+        if (nums == null) return false;
+        return this[_containsTableEntry](nums, key);
+      } else {
+        return this.internalContainsKey(key);
+      }
+    }
+    internalContainsKey(key) {
+      let rest = this[_rest];
+      if (rest == null) return false;
+      let bucket = this[_getBucket](rest, key);
+      return dart.notNull(this.internalFindBucketIndex(bucket, key)) >= 0;
+    }
+    containsValue(value) {
+      return this.keys[dartx.any](dart.fn(each => dart.equals(this._get(each), value), KTobool()));
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      other[dartx.forEach](dart.fn((key, value) => {
+        this._set(key, value);
+      }, KAndVToNull()));
+    }
+    _get(key) {
+      if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
+        let strings = this[_strings];
+        if (strings == null) return null;
+        let cell = this[_getTableCell](strings, key);
+        return cell == null ? null : cell.hashMapCellValue;
+      } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
+        let nums = this[_nums];
+        if (nums == null) return null;
+        let cell = this[_getTableCell](nums, key);
+        return cell == null ? null : cell.hashMapCellValue;
+      } else {
+        return this.internalGet(key);
+      }
+    }
+    internalGet(key) {
+      let rest = this[_rest];
+      if (rest == null) return null;
+      let bucket = this[_getBucket](rest, key);
+      let index = this.internalFindBucketIndex(bucket, key);
+      if (dart.notNull(index) < 0) return null;
+      let cell = bucket[index];
+      return cell.hashMapCellValue;
     }
     _set(key, value) {
-      if (dart.test(this[_isUpgraded])) {
-        this[_upgradedMap][dartx._set](key, value);
-      } else if (dart.test(this.containsKey(key))) {
-        let processed = this[_processed];
-        convert._JsonMap._setProperty(processed, core.String._check(key), value);
-        let original = this[_original];
-        if (!core.identical(original, processed)) {
-          convert._JsonMap._setProperty(original, core.String._check(key), null);
-        }
+      K._check(key);
+      V._check(value);
+      if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
+        let strings = this[_strings];
+        if (strings == null) this[_strings] = strings = this[_newHashTable]();
+        this[_addHashTableEntry](strings, key, value);
+      } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
+        let nums = this[_nums];
+        if (nums == null) this[_nums] = nums = this[_newHashTable]();
+        this[_addHashTableEntry](nums, key, value);
       } else {
-        this[_upgrade]()[dartx._set](key, value);
+        this.internalSet(key, value);
       }
       return value;
     }
-    addAll(other) {
-      other[dartx.forEach](dart.fn((key, value) => {
-        this._set(key, value);
-      }, dynamicAnddynamicToNull()));
-    }
-    containsValue(value) {
-      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
-      let keys = this[_computeKeys$]();
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        let key = keys[dartx._get](i);
-        if (dart.equals(this._get(key), value)) return true;
+    internalSet(key, value) {
+      K._check(key);
+      V._check(value);
+      let rest = this[_rest];
+      if (rest == null) this[_rest] = rest = this[_newHashTable]();
+      let hash = this.internalComputeHashCode(key);
+      let bucket = this[_getTableBucket](rest, hash);
+      if (bucket == null) {
+        let cell = this[_newLinkedCell](key, value);
+        this[_setTableEntry](rest, hash, [cell]);
+      } else {
+        let index = this.internalFindBucketIndex(bucket, key);
+        if (dart.notNull(index) >= 0) {
+          let cell = bucket[index];
+          cell.hashMapCellValue = value;
+        } else {
+          let cell = this[_newLinkedCell](key, value);
+          bucket.push(cell);
+        }
       }
-      return false;
-    }
-    containsKey(key) {
-      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsKey](key);
-      if (!(typeof key == 'string')) return false;
-      return convert._JsonMap._hasProperty(this[_original], core.String._check(key));
     }
     putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
       if (dart.test(this.containsKey(key))) return this._get(key);
       let value = ifAbsent();
       this._set(key, value);
       return value;
     }
     remove(key) {
-      if (!dart.test(this[_isUpgraded]) && !dart.test(this.containsKey(key))) return null;
-      return this[_upgrade]()[dartx.remove](key);
+      if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
+        return this[_removeHashTableEntry](this[_strings], key);
+      } else if (dart.test(_js_helper.JsLinkedHashMap._isNumericKey(key))) {
+        return this[_removeHashTableEntry](this[_nums], key);
+      } else {
+        return this.internalRemove(key);
+      }
+    }
+    internalRemove(key) {
+      let rest = this[_rest];
+      if (rest == null) return null;
+      let bucket = this[_getBucket](rest, key);
+      let index = this.internalFindBucketIndex(bucket, key);
+      if (dart.notNull(index) < 0) return null;
+      let cell = bucket.splice(index, 1)[0];
+      this[_unlinkCell](cell);
+      return cell.hashMapCellValue;
     }
     clear() {
-      if (dart.test(this[_isUpgraded])) {
-        this[_upgradedMap][dartx.clear]();
-      } else {
-        if (this[_data] != null) {
-          dart.dsend(this[_data], 'clear');
-        }
-        this[_original] = this[_processed] = null;
-        this[_data] = dart.map();
+      if (dart.notNull(this[_length$0]) > 0) {
+        this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last] = null;
+        this[_length$0] = 0;
+        this[_modified]();
       }
     }
-    forEach(f) {
-      if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.forEach](f);
-      let keys = this[_computeKeys$]();
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        let key = keys[dartx._get](i);
-        let value = convert._JsonMap._getProperty(this[_processed], key);
-        if (dart.test(convert._JsonMap._isUnprocessed(value))) {
-          value = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original], key));
-          convert._JsonMap._setProperty(this[_processed], key, value);
-        }
-        dart.dcall(f, key, value);
-        if (!core.identical(keys, this[_data])) {
+    forEach(action) {
+      let cell = this[_first];
+      let modifications = this[_modifications];
+      while (cell != null) {
+        action(cell.hashMapCellKey, cell.hashMapCellValue);
+        if (modifications != this[_modifications]) {
           dart.throw(new core.ConcurrentModificationError(this));
         }
+        cell = cell[_next];
       }
     }
+    [_addHashTableEntry](table, key, value) {
+      K._check(key);
+      V._check(value);
+      let cell = this[_getTableCell](table, key);
+      if (cell == null) {
+        this[_setTableEntry](table, key, this[_newLinkedCell](key, value));
+      } else {
+        cell.hashMapCellValue = value;
+      }
+    }
+    [_removeHashTableEntry](table, key) {
+      if (table == null) return null;
+      let cell = this[_getTableCell](table, key);
+      if (cell == null) return null;
+      this[_unlinkCell](cell);
+      this[_deleteTableEntry](table, key);
+      return cell.hashMapCellValue;
+    }
+    [_modified]() {
+      this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863;
+    }
+    [_newLinkedCell](key, value) {
+      K._check(key);
+      V._check(value);
+      let cell = new (LinkedHashMapCellOfK$V())(key, value);
+      if (this[_first] == null) {
+        this[_first] = this[_last] = cell;
+      } else {
+        let last = this[_last];
+        cell[_previous] = last;
+        this[_last] = last[_next] = cell;
+      }
+      this[_length$0] = dart.notNull(this[_length$0]) + 1;
+      this[_modified]();
+      return cell;
+    }
+    [_unlinkCell](cell) {
+      LinkedHashMapCellOfK$V()._check(cell);
+      let previous = cell[_previous];
+      let next = cell[_next];
+      if (previous == null) {
+        dart.assert(dart.equals(cell, this[_first]));
+        this[_first] = next;
+      } else {
+        previous[_next] = next;
+      }
+      if (next == null) {
+        dart.assert(dart.equals(cell, this[_last]));
+        this[_last] = previous;
+      } else {
+        next[_previous] = previous;
+      }
+      this[_length$0] = dart.notNull(this[_length$0]) - 1;
+      this[_modified]();
+    }
+    static _isStringKey(key) {
+      return typeof key == 'string';
+    }
+    static _isNumericKey(key) {
+      return typeof key == 'number' && (key & 0x3ffffff) === key;
+    }
+    internalComputeHashCode(key) {
+      return dart.hashCode(key) & 0x3ffffff;
+    }
+    [_getBucket](table, key) {
+      let hash = this.internalComputeHashCode(key);
+      return this[_getTableBucket](table, hash);
+    }
+    internalFindBucketIndex(bucket, key) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        let cell = bucket[i];
+        if (dart.equals(cell.hashMapCellKey, key)) return i;
+      }
+      return -1;
+    }
     toString() {
       return collection.Maps.mapToString(this);
     }
-    get [_isUpgraded]() {
-      return this[_processed] == null;
+    [_getTableCell](table, key) {
+      return table[key];
     }
-    get [_upgradedMap]() {
-      dart.assert(this[_isUpgraded]);
-      return this[_data];
+    [_getTableBucket](table, key) {
+      return table[key];
     }
-    [_computeKeys$]() {
-      dart.assert(!dart.test(this[_isUpgraded]));
-      let keys = core.List._check(this[_data]);
-      if (keys == null) {
-        keys = this[_data] = convert._JsonMap._getPropertyNames(this[_original]);
-      }
-      return keys;
+    [_setTableEntry](table, key, value) {
+      dart.assert(value != null);
+      table[key] = value;
     }
-    [_upgrade]() {
-      if (dart.test(this[_isUpgraded])) return this[_upgradedMap];
-      let result = dart.map();
-      let keys = this[_computeKeys$]();
-      for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
-        let key = keys[dartx._get](i);
-        result[dartx._set](key, this._get(key));
-      }
-      if (dart.test(keys[dartx.isEmpty])) {
-        keys[dartx.add](null);
-      } else {
-        keys[dartx.clear]();
-      }
-      this[_original] = this[_processed] = null;
-      this[_data] = result;
-      dart.assert(this[_isUpgraded]);
-      return result;
+    [_deleteTableEntry](table, key) {
+      delete table[key];
     }
-    [_process$](key) {
-      if (!dart.test(convert._JsonMap._hasProperty(this[_original], key))) return null;
-      let result = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original], key));
-      return convert._JsonMap._setProperty(this[_processed], key, result);
+    [_containsTableEntry](table, key) {
+      let cell = this[_getTableCell](table, key);
+      return cell != null;
     }
-    static _hasProperty(object, key) {
-      return Object.prototype.hasOwnProperty.call(object, key);
+    [_newHashTable]() {
+      let table = Object.create(null);
+      let temporaryKey = '<non-identifier-key>';
+      this[_setTableEntry](table, temporaryKey, table);
+      this[_deleteTableEntry](table, temporaryKey);
+      return table;
     }
-    static _getProperty(object, key) {
-      return object[key];
-    }
-    static _setProperty(object, key, value) {
-      return object[key] = value;
-    }
-    static _getPropertyNames(object) {
-      return Object.keys(object);
-    }
-    static _isUnprocessed(object) {
-      return typeof object == "undefined";
-    }
-    static _newJavaScriptObject() {
-      return Object.create(null);
-    }
-  };
-  convert._JsonMap[dart.implements] = () => [collection.LinkedHashMap];
-  dart.setSignature(convert._JsonMap, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonMap, [dart.dynamic])}),
+  }
+  dart.addTypeTests(JsLinkedHashMap);
+  JsLinkedHashMap[dart.implements] = () => [LinkedHashMapOfK$V(), InternalMapOfK$V()];
+  dart.setSignature(JsLinkedHashMap, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(_js_helper.JsLinkedHashMap$(K, V), []),
+      es6: dart.definiteFunctionType(_js_helper.JsLinkedHashMap$(K, V), [])
+    }),
     fields: () => ({
-      [_original]: dart.dynamic,
-      [_processed]: dart.dynamic,
-      [_data]: dart.dynamic
+      [_length$0]: core.int,
+      [_strings]: dart.dynamic,
+      [_nums]: dart.dynamic,
+      [_rest]: dart.dynamic,
+      [_first]: LinkedHashMapCellOfK$V(),
+      [_last]: LinkedHashMapCellOfK$V(),
+      [_modifications]: core.int
     }),
     getters: () => ({
       length: dart.definiteFunctionType(core.int, []),
       isEmpty: dart.definiteFunctionType(core.bool, []),
       isNotEmpty: dart.definiteFunctionType(core.bool, []),
-      keys: dart.definiteFunctionType(core.Iterable, []),
-      values: dart.definiteFunctionType(core.Iterable, []),
-      [_isUpgraded]: dart.definiteFunctionType(core.bool, []),
-      [_upgradedMap]: dart.definiteFunctionType(core.Map, [])
+      keys: dart.definiteFunctionType(core.Iterable$(K), []),
+      values: dart.definiteFunctionType(core.Iterable$(V), [])
     }),
     methods: () => ({
-      _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
-      _set: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      addAll: dart.definiteFunctionType(dart.void, [core.Map]),
-      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
       containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-      putIfAbsent: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, VoidTodynamic()]),
-      remove: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+      internalContainsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
+      _get: dart.definiteFunctionType(V, [core.Object]),
+      internalGet: dart.definiteFunctionType(V, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [K, V]),
+      internalSet: dart.definiteFunctionType(dart.void, [K, V]),
+      putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
+      remove: dart.definiteFunctionType(V, [core.Object]),
+      internalRemove: dart.definiteFunctionType(V, [core.Object]),
       clear: dart.definiteFunctionType(dart.void, []),
-      forEach: dart.definiteFunctionType(dart.void, [dynamicAnddynamicTovoid()]),
-      [_computeKeys$]: dart.definiteFunctionType(core.List$(core.String), []),
-      [_upgrade]: dart.definiteFunctionType(core.Map, []),
-      [_process$]: dart.definiteFunctionType(dart.dynamic, [core.String])
+      forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
+      [_addHashTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, K, V]),
+      [_removeHashTableEntry]: dart.definiteFunctionType(V, [dart.dynamic, core.Object]),
+      [_modified]: dart.definiteFunctionType(dart.void, []),
+      [_newLinkedCell]: dart.definiteFunctionType(_js_helper.LinkedHashMapCell$(K, V), [K, V]),
+      [_unlinkCell]: dart.definiteFunctionType(dart.void, [LinkedHashMapCellOfK$V()]),
+      internalComputeHashCode: dart.definiteFunctionType(core.int, [dart.dynamic]),
+      [_getBucket]: dart.definiteFunctionType(core.List$(_js_helper.LinkedHashMapCell$(K, V)), [dart.dynamic, dart.dynamic]),
+      internalFindBucketIndex: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic]),
+      [_getTableCell]: dart.definiteFunctionType(_js_helper.LinkedHashMapCell$(K, V), [dart.dynamic, dart.dynamic]),
+      [_getTableBucket]: dart.definiteFunctionType(core.List$(_js_helper.LinkedHashMapCell$(K, V)), [dart.dynamic, dart.dynamic]),
+      [_setTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+      [_deleteTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+      [_containsTableEntry]: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+      [_newHashTable]: dart.definiteFunctionType(dart.dynamic, [])
     }),
     statics: () => ({
-      _hasProperty: dart.definiteFunctionType(core.bool, [dart.dynamic, core.String]),
-      _getProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String]),
-      _setProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, dart.dynamic]),
-      _getPropertyNames: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      _isUnprocessed: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      _newJavaScriptObject: dart.definiteFunctionType(dart.dynamic, [])
+      _isStringKey: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _isNumericKey: dart.definiteFunctionType(core.bool, [dart.dynamic])
     }),
-    names: ['_hasProperty', '_getProperty', '_setProperty', '_getPropertyNames', '_isUnprocessed', '_newJavaScriptObject']
+    names: ['_isStringKey', '_isNumericKey']
   });
-  dart.defineExtensionMembers(convert._JsonMap, [
+  dart.defineExtensionMembers(JsLinkedHashMap, [
+    'containsKey',
+    'containsValue',
+    'addAll',
     '_get',
     '_set',
-    'addAll',
-    'containsValue',
-    'containsKey',
     'putIfAbsent',
     'remove',
     'clear',
@@ -29255,2908 +12874,19189 @@
     'keys',
     'values'
   ]);
-  const _parent = Symbol('_parent');
-  convert._JsonMapKeyIterable = class _JsonMapKeyIterable extends _internal.ListIterable {
-    new(parent) {
-      this[_parent] = parent;
+  return JsLinkedHashMap;
+});
+_js_helper.JsLinkedHashMap = JsLinkedHashMap();
+_js_helper.Es6LinkedHashMap$ = dart.generic((K, V) => {
+  class Es6LinkedHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
+    new() {
+      super.new();
+    }
+    [_getTableCell](table, key) {
+      return table.get(key);
+    }
+    [_getTableBucket](table, key) {
+      return table.get(key);
+    }
+    [_setTableEntry](table, key, value) {
+      table.set(key, value);
+    }
+    [_deleteTableEntry](table, key) {
+      table.delete(key);
+    }
+    [_containsTableEntry](table, key) {
+      return table.has(key);
+    }
+    [_newHashTable]() {
+      return new Map();
+    }
+  }
+  return Es6LinkedHashMap;
+});
+_js_helper.Es6LinkedHashMap = Es6LinkedHashMap();
+_js_helper.LinkedHashMapCell$ = dart.generic((K, V) => {
+  let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
+  class LinkedHashMapCell extends core.Object {
+    new(hashMapCellKey, hashMapCellValue) {
+      this.hashMapCellKey = hashMapCellKey;
+      this.hashMapCellValue = hashMapCellValue;
+      this[_next] = null;
+      this[_previous] = null;
+    }
+  }
+  dart.addTypeTests(LinkedHashMapCell);
+  dart.setSignature(LinkedHashMapCell, {
+    constructors: () => ({new: dart.definiteFunctionType(_js_helper.LinkedHashMapCell$(K, V), [K, V])}),
+    fields: () => ({
+      hashMapCellKey: K,
+      hashMapCellValue: V,
+      [_next]: LinkedHashMapCellOfK$V(),
+      [_previous]: LinkedHashMapCellOfK$V()
+    })
+  });
+  return LinkedHashMapCell;
+});
+_js_helper.LinkedHashMapCell = LinkedHashMapCell();
+const _map = Symbol('_map');
+_js_helper.LinkedHashMapKeyIterable$ = dart.generic(E => {
+  let LinkedHashMapKeyIteratorOfE = () => (LinkedHashMapKeyIteratorOfE = dart.constFn(_js_helper.LinkedHashMapKeyIterator$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let JsLinkedHashMapOfE$dynamic = () => (JsLinkedHashMapOfE$dynamic = dart.constFn(_js_helper.JsLinkedHashMap$(E, dart.dynamic)))();
+  class LinkedHashMapKeyIterable extends core.Iterable$(E) {
+    new(map) {
+      this[_map] = map;
       super.new();
     }
     get length() {
-      return this[_parent].length;
+      return this[_map][_length$0];
     }
-    elementAt(index) {
-      return core.String._check(dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.elementAt](index) : this[_parent][_computeKeys$]()[dartx._get](index));
+    get isEmpty() {
+      return this[_map][_length$0] == 0;
     }
     get iterator() {
-      return dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.iterator] : this[_parent][_computeKeys$]()[dartx.iterator];
+      return new (LinkedHashMapKeyIteratorOfE())(this[_map], this[_map][_modifications]);
     }
-    contains(key) {
-      return this[_parent].containsKey(key);
+    contains(element) {
+      return this[_map].containsKey(element);
     }
-  };
-  dart.addSimpleTypeTests(convert._JsonMapKeyIterable);
-  dart.setSignature(convert._JsonMapKeyIterable, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonMapKeyIterable, [convert._JsonMap])}),
-    fields: () => ({[_parent]: convert._JsonMap}),
-    methods: () => ({elementAt: dart.definiteFunctionType(core.String, [core.int])})
-  });
-  dart.defineExtensionMembers(convert._JsonMapKeyIterable, ['elementAt', 'contains', 'length', 'iterator']);
-  const _reviver = Symbol('_reviver');
-  const _sink$ = Symbol('_sink');
-  const _stringSink = Symbol('_stringSink');
-  convert.StringConversionSinkMixin = class StringConversionSinkMixin extends core.Object {
-    add(str) {
-      this.addSlice(str, 0, str[dartx.length], false);
-    }
-    asUtf8Sink(allowMalformed) {
-      return new convert._Utf8ConversionSink(this, allowMalformed);
-    }
-    asStringSink() {
-      return new convert._StringConversionSinkAsStringSinkAdapter(this);
-    }
-  };
-  convert.StringConversionSinkMixin[dart.implements] = () => [convert.StringConversionSink];
-  dart.setSignature(convert.StringConversionSinkMixin, {
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [core.String]),
-      asUtf8Sink: dart.definiteFunctionType(convert.ByteConversionSink, [core.bool]),
-      asStringSink: dart.definiteFunctionType(convert.ClosableStringSink, [])
-    })
-  });
-  convert.StringConversionSinkBase = class StringConversionSinkBase extends convert.StringConversionSinkMixin {};
-  convert._StringSinkConversionSink = class _StringSinkConversionSink extends convert.StringConversionSinkBase {
-    new(stringSink) {
-      this[_stringSink] = stringSink;
-    }
-    close() {}
-    addSlice(str, start, end, isLast) {
-      if (start != 0 || end != str[dartx.length]) {
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          this[_stringSink].writeCharCode(str[dartx.codeUnitAt](i));
+    forEach(f) {
+      let cell = this[_map][_first];
+      let modifications = this[_map][_modifications];
+      while (cell != null) {
+        f(cell.hashMapCellKey);
+        if (modifications != this[_map][_modifications]) {
+          dart.throw(new core.ConcurrentModificationError(this[_map]));
         }
-      } else {
-        this[_stringSink].write(str);
+        cell = cell[_next];
       }
-      if (dart.test(isLast)) this.close();
     }
-    add(str) {
-      this[_stringSink].write(str);
-    }
-    asUtf8Sink(allowMalformed) {
-      return new convert._Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed);
-    }
-    asStringSink() {
-      return convert.ClosableStringSink.fromStringSink(this[_stringSink], dart.bind(this, 'close'));
-    }
-  };
-  dart.setSignature(convert._StringSinkConversionSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._StringSinkConversionSink, [core.StringSink])}),
-    fields: () => ({[_stringSink]: core.StringSink}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
-    })
+  }
+  LinkedHashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(LinkedHashMapKeyIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(_js_helper.LinkedHashMapKeyIterable$(E), [JsLinkedHashMapOfE$dynamic()])}),
+    fields: () => ({[_map]: JsLinkedHashMapOfE$dynamic()}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
   });
-  convert._JsonDecoderSink = class _JsonDecoderSink extends convert._StringSinkConversionSink {
-    new(reviver, sink) {
-      this[_reviver] = reviver;
-      this[_sink$] = sink;
-      super.new(new core.StringBuffer());
+  dart.defineExtensionMembers(LinkedHashMapKeyIterable, [
+    'contains',
+    'forEach',
+    'length',
+    'isEmpty',
+    'iterator'
+  ]);
+  return LinkedHashMapKeyIterable;
+});
+_js_helper.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable();
+const _cell = Symbol('_cell');
+_js_helper.LinkedHashMapKeyIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let JsLinkedHashMapOfE$dynamic = () => (JsLinkedHashMapOfE$dynamic = dart.constFn(_js_helper.JsLinkedHashMap$(E, dart.dynamic)))();
+  let LinkedHashMapCellOfE$dynamic = () => (LinkedHashMapCellOfE$dynamic = dart.constFn(_js_helper.LinkedHashMapCell$(E, dart.dynamic)))();
+  class LinkedHashMapKeyIterator extends core.Object {
+    new(map, modifications) {
+      this[_map] = map;
+      this[_modifications] = modifications;
+      this[_cell] = null;
+      this[_current$0] = null;
+      this[_cell] = this[_map][_first];
     }
-    close() {
-      super.close();
-      let buffer = core.StringBuffer._check(this[_stringSink]);
-      let accumulated = dart.toString(buffer);
-      buffer.clear();
-      let decoded = convert._parseJson(accumulated, this[_reviver]);
-      this[_sink$].add(decoded);
-      this[_sink$].close();
+    get current() {
+      return this[_current$0];
     }
-  };
-  dart.setSignature(convert._JsonDecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonDecoderSink, [convert._Reviver, SinkOfObject()])}),
+    moveNext() {
+      if (this[_modifications] != this[_map][_modifications]) {
+        dart.throw(new core.ConcurrentModificationError(this[_map]));
+      } else if (this[_cell] == null) {
+        this[_current$0] = null;
+        return false;
+      } else {
+        this[_current$0] = this[_cell].hashMapCellKey;
+        this[_cell] = this[_cell][_next];
+        return true;
+      }
+    }
+  }
+  dart.addTypeTests(LinkedHashMapKeyIterator);
+  LinkedHashMapKeyIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(LinkedHashMapKeyIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(_js_helper.LinkedHashMapKeyIterator$(E), [JsLinkedHashMapOfE$dynamic(), core.int])}),
     fields: () => ({
-      [_reviver]: convert._Reviver,
-      [_sink$]: SinkOfObject()
-    })
+      [_map]: JsLinkedHashMapOfE$dynamic(),
+      [_modifications]: core.int,
+      [_cell]: LinkedHashMapCellOfE$dynamic(),
+      [_current$0]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
   });
-  const _allowInvalid = Symbol('_allowInvalid');
-  let const$25;
-  let const$26;
-  let const$27;
-  let const$28;
-  let const$29;
-  convert.Codec$ = dart.generic((S, T) => {
-    let _InvertedCodecOfT$S = () => (_InvertedCodecOfT$S = dart.constFn(convert._InvertedCodec$(T, S)))();
-    class Codec extends core.Object {
-      new() {
+  return LinkedHashMapKeyIterator;
+});
+_js_helper.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator();
+_js_helper.defineProperty = function(obj, property, value) {
+  Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true});
+};
+dart.lazyFn(_js_helper.defineProperty, () => dynamicAndStringAnddynamicTovoid());
+_js_helper.convertDartClosureToJS = function(F) {
+  return (closure, arity) => {
+    return closure;
+  };
+};
+dart.fn(_js_helper.convertDartClosureToJS, FAndintToF());
+_js_helper.setNativeSubclassDispatchRecord = function(proto, interceptor) {
+};
+dart.fn(_js_helper.setNativeSubclassDispatchRecord, dynamicAnddynamicTodynamic$());
+_js_helper.findDispatchTagForInterceptorClass = function(interceptorClassConstructor) {
+};
+dart.fn(_js_helper.findDispatchTagForInterceptorClass, dynamicTodynamic$());
+_js_helper.makeLeafDispatchRecord = function(interceptor) {
+};
+dart.fn(_js_helper.makeLeafDispatchRecord, dynamicTodynamic$());
+const _nativeRegExp = Symbol('_nativeRegExp');
+_js_helper.regExpGetNative = function(regexp) {
+  return regexp[_nativeRegExp];
+};
+dart.lazyFn(_js_helper.regExpGetNative, () => JSSyntaxRegExpTodynamic());
+const _nativeGlobalVersion = Symbol('_nativeGlobalVersion');
+_js_helper.regExpGetGlobalNative = function(regexp) {
+  let nativeRegexp = regexp[_nativeGlobalVersion];
+  nativeRegexp.lastIndex = 0;
+  return nativeRegexp;
+};
+dart.lazyFn(_js_helper.regExpGetGlobalNative, () => JSSyntaxRegExpTodynamic());
+const _nativeAnchoredVersion = Symbol('_nativeAnchoredVersion');
+_js_helper.regExpCaptureCount = function(regexp) {
+  let nativeAnchoredRegExp = regexp[_nativeAnchoredVersion];
+  let match = nativeAnchoredRegExp.exec('');
+  return core.int._check(dart.dsend(dart.dload(match, 'length'), '-', 2));
+};
+dart.lazyFn(_js_helper.regExpCaptureCount, () => JSSyntaxRegExpToint());
+const _nativeGlobalRegExp = Symbol('_nativeGlobalRegExp');
+const _nativeAnchoredRegExp = Symbol('_nativeAnchoredRegExp');
+const _isMultiLine = Symbol('_isMultiLine');
+const _isCaseSensitive = Symbol('_isCaseSensitive');
+const _execGlobal = Symbol('_execGlobal');
+const _execAnchored = Symbol('_execAnchored');
+_js_helper.JSSyntaxRegExp = class JSSyntaxRegExp extends core.Object {
+  toString() {
+    return dart.str`RegExp/${this.pattern}/`;
+  }
+  new(source, opts) {
+    let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
+    let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
+    this.pattern = source;
+    this[_nativeRegExp] = _js_helper.JSSyntaxRegExp.makeNative(source, multiLine, caseSensitive, false);
+    this[_nativeGlobalRegExp] = null;
+    this[_nativeAnchoredRegExp] = null;
+  }
+  get [_nativeGlobalVersion]() {
+    if (this[_nativeGlobalRegExp] != null) return this[_nativeGlobalRegExp];
+    return this[_nativeGlobalRegExp] = _js_helper.JSSyntaxRegExp.makeNative(this.pattern, this[_isMultiLine], this[_isCaseSensitive], true);
+  }
+  get [_nativeAnchoredVersion]() {
+    if (this[_nativeAnchoredRegExp] != null) return this[_nativeAnchoredRegExp];
+    return this[_nativeAnchoredRegExp] = _js_helper.JSSyntaxRegExp.makeNative(dart.str`${this.pattern}|()`, this[_isMultiLine], this[_isCaseSensitive], true);
+  }
+  get [_isMultiLine]() {
+    return this[_nativeRegExp].multiline;
+  }
+  get [_isCaseSensitive]() {
+    return !this[_nativeRegExp].ignoreCase;
+  }
+  static makeNative(source, multiLine, caseSensitive, global) {
+    _js_helper.checkString(source);
+    let m = dart.test(multiLine) ? 'm' : '';
+    let i = dart.test(caseSensitive) ? '' : 'i';
+    let g = dart.test(global) ? 'g' : '';
+    let regexp = (function() {
+      try {
+        return new RegExp(source, m + i + g);
+      } catch (e) {
+        return e;
       }
-      encode(input) {
-        S._check(input);
-        return this.encoder.convert(input);
-      }
-      decode(encoded) {
-        T._check(encoded);
-        return this.decoder.convert(encoded);
-      }
-      fuse(R) {
-        return other => {
-          convert.Codec$(T, R)._check(other);
-          return new (convert._FusedCodec$(S, T, R))(this, other);
-        };
-      }
-      get inverted() {
-        return new (_InvertedCodecOfT$S())(this);
-      }
+
+    })();
+    if (regexp instanceof RegExp) return regexp;
+    let errorMessage = String(regexp);
+    dart.throw(new core.FormatException(dart.str`Illegal RegExp pattern: ${source}, ${errorMessage}`));
+  }
+  firstMatch(string) {
+    let m = this[_nativeRegExp].exec(_js_helper.checkString(string));
+    if (m == null) return null;
+    return new _js_helper._MatchImplementation(this, m);
+  }
+  hasMatch(string) {
+    return this[_nativeRegExp].test(_js_helper.checkString(string));
+  }
+  stringMatch(string) {
+    let match = this.firstMatch(string);
+    if (match != null) return match.group(0);
+    return null;
+  }
+  allMatches(string, start) {
+    if (start === void 0) start = 0;
+    _js_helper.checkString(string);
+    _js_helper.checkInt(start);
+    if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[dartx.length])) {
+      dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
     }
-    dart.addTypeTests(Codec);
-    dart.setSignature(Codec, {
-      constructors: () => ({new: dart.definiteFunctionType(convert.Codec$(S, T), [])}),
-      getters: () => ({inverted: dart.definiteFunctionType(convert.Codec$(T, S), [])}),
-      methods: () => ({
-        encode: dart.definiteFunctionType(T, [S]),
-        decode: dart.definiteFunctionType(S, [T]),
-        fuse: dart.definiteFunctionType(R => [convert.Codec$(S, R), [convert.Codec$(T, R)]])
-      })
-    });
-    return Codec;
-  });
-  convert.Codec = Codec();
-  core.String = class String extends core.Object {
-    static fromCharCodes(charCodes, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      if (_interceptors.JSArray.is(charCodes)) {
-        return core.String._stringFromJSArray(JSArrayOfint()._check(charCodes), start, end);
-      }
-      if (_native_typed_data.NativeUint8List.is(charCodes)) {
-        return core.String._stringFromUint8List(charCodes, start, end);
-      }
-      return core.String._stringFromIterable(charCodes, start, end);
+    return new _js_helper._AllMatchesIterable(this, string, start);
+  }
+  [_execGlobal](string, start) {
+    let regexp = this[_nativeGlobalVersion];
+    regexp.lastIndex = start;
+    let match = regexp.exec(string);
+    if (match == null) return null;
+    return new _js_helper._MatchImplementation(this, ListOfString()._check(match));
+  }
+  [_execAnchored](string, start) {
+    let regexp = this[_nativeAnchoredVersion];
+    regexp.lastIndex = start;
+    let match = regexp.exec(string);
+    if (match == null) return null;
+    if (match[dartx._get](dart.notNull(match[dartx.length]) - 1) != null) return null;
+    match[dartx.length] = dart.notNull(match[dartx.length]) - 1;
+    return new _js_helper._MatchImplementation(this, ListOfString()._check(match));
+  }
+  matchAsPrefix(string, start) {
+    if (start === void 0) start = 0;
+    if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(string[dartx.length])) {
+      dart.throw(new core.RangeError.range(start, 0, string[dartx.length]));
     }
-    static fromCharCode(charCode) {
-      return _js_helper.Primitives.stringFromCharCode(charCode);
+    return this[_execAnchored](string, start);
+  }
+  get isMultiLine() {
+    return this[_isMultiLine];
+  }
+  get isCaseSensitive() {
+    return this[_isCaseSensitive];
+  }
+};
+_js_helper.JSSyntaxRegExp[dart.implements] = () => [core.RegExp];
+dart.setSignature(_js_helper.JSSyntaxRegExp, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.JSSyntaxRegExp, [core.String], {multiLine: core.bool, caseSensitive: core.bool})}),
+  fields: () => ({
+    pattern: core.String,
+    [_nativeRegExp]: dart.dynamic,
+    [_nativeGlobalRegExp]: dart.dynamic,
+    [_nativeAnchoredRegExp]: dart.dynamic
+  }),
+  getters: () => ({
+    [_nativeGlobalVersion]: dart.definiteFunctionType(dart.dynamic, []),
+    [_nativeAnchoredVersion]: dart.definiteFunctionType(dart.dynamic, []),
+    [_isMultiLine]: dart.definiteFunctionType(core.bool, []),
+    [_isCaseSensitive]: dart.definiteFunctionType(core.bool, []),
+    isMultiLine: dart.definiteFunctionType(core.bool, []),
+    isCaseSensitive: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    firstMatch: dart.definiteFunctionType(core.Match, [core.String]),
+    hasMatch: dart.definiteFunctionType(core.bool, [core.String]),
+    stringMatch: dart.definiteFunctionType(core.String, [core.String]),
+    allMatches: dart.definiteFunctionType(core.Iterable$(core.Match), [core.String], [core.int]),
+    [_execGlobal]: dart.definiteFunctionType(core.Match, [core.String, core.int]),
+    [_execAnchored]: dart.definiteFunctionType(core.Match, [core.String, core.int]),
+    matchAsPrefix: dart.definiteFunctionType(core.Match, [core.String], [core.int])
+  }),
+  statics: () => ({makeNative: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool, core.bool, core.bool])}),
+  names: ['makeNative']
+});
+dart.defineExtensionMembers(_js_helper.JSSyntaxRegExp, ['allMatches', 'matchAsPrefix']);
+const _match = Symbol('_match');
+_js_helper._MatchImplementation = class _MatchImplementation extends core.Object {
+  new(pattern, match) {
+    this.pattern = pattern;
+    this[_match] = match;
+    dart.assert(typeof this[_match].input == 'string');
+    dart.assert(typeof this[_match].index == 'number');
+  }
+  get input() {
+    return this[_match].input;
+  }
+  get start() {
+    return this[_match].index;
+  }
+  get end() {
+    return dart.notNull(this.start) + dart.notNull(this[_match][dartx._get](0)[dartx.length]);
+  }
+  group(index) {
+    return this[_match][dartx._get](index);
+  }
+  _get(index) {
+    return this.group(index);
+  }
+  get groupCount() {
+    return dart.notNull(this[_match][dartx.length]) - 1;
+  }
+  groups(groups) {
+    let out = JSArrayOfString().of([]);
+    for (let i of groups) {
+      out[dartx.add](this.group(i));
     }
-    static fromEnvironment(name, opts) {
-      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
-      dart.throw(new core.UnsupportedError('String.fromEnvironment can only be used as a const constructor'));
-    }
-    static _stringFromJSArray(list, start, endOrNull) {
-      let len = list[dartx.length];
-      let end = core.RangeError.checkValidRange(start, endOrNull, len);
-      if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) {
-        list = JSArrayOfint()._check(list[dartx.sublist](start, end));
-      }
-      return _js_helper.Primitives.stringFromCharCodes(list);
-    }
-    static _stringFromUint8List(charCodes, start, endOrNull) {
-      let len = charCodes[dartx.length];
-      let end = core.RangeError.checkValidRange(start, endOrNull, len);
-      return _js_helper.Primitives.stringFromNativeUint8List(charCodes, start, end);
-    }
-    static _stringFromIterable(charCodes, start, end) {
-      if (dart.notNull(start) < 0) dart.throw(new core.RangeError.range(start, 0, charCodes[dartx.length]));
-      if (end != null && dart.notNull(end) < dart.notNull(start)) {
-        dart.throw(new core.RangeError.range(end, start, charCodes[dartx.length]));
-      }
-      let it = charCodes[dartx.iterator];
-      for (let i = 0; i < dart.notNull(start); i++) {
-        if (!dart.test(it.moveNext())) {
-          dart.throw(new core.RangeError.range(start, 0, i));
+    return out;
+  }
+};
+_js_helper._MatchImplementation[dart.implements] = () => [core.Match];
+dart.setSignature(_js_helper._MatchImplementation, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._MatchImplementation, [core.Pattern, ListOfString()])}),
+  fields: () => ({
+    pattern: core.Pattern,
+    [_match]: ListOfString()
+  }),
+  getters: () => ({
+    input: dart.definiteFunctionType(core.String, []),
+    start: dart.definiteFunctionType(core.int, []),
+    end: dart.definiteFunctionType(core.int, []),
+    groupCount: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    group: dart.definiteFunctionType(core.String, [core.int]),
+    _get: dart.definiteFunctionType(core.String, [core.int]),
+    groups: dart.definiteFunctionType(core.List$(core.String), [ListOfint()])
+  })
+});
+const _re = Symbol('_re');
+const _string$ = Symbol('_string');
+const _start$ = Symbol('_start');
+core.Match = class Match extends core.Object {};
+_js_helper._AllMatchesIterable = class _AllMatchesIterable extends collection.IterableBase$(core.Match) {
+  new(re, string, start) {
+    this[_re] = re;
+    this[_string$] = string;
+    this[_start$] = start;
+    super.new();
+  }
+  get iterator() {
+    return new _js_helper._AllMatchesIterator(this[_re], this[_string$], this[_start$]);
+  }
+};
+dart.addSimpleTypeTests(_js_helper._AllMatchesIterable);
+dart.setSignature(_js_helper._AllMatchesIterable, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._AllMatchesIterable, [_js_helper.JSSyntaxRegExp, core.String, core.int])}),
+  fields: () => ({
+    [_re]: _js_helper.JSSyntaxRegExp,
+    [_string$]: core.String,
+    [_start$]: core.int
+  }),
+  getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(core.Match), [])})
+});
+dart.defineExtensionMembers(_js_helper._AllMatchesIterable, ['iterator']);
+const _regExp = Symbol('_regExp');
+const _nextIndex = Symbol('_nextIndex');
+_js_helper._AllMatchesIterator = class _AllMatchesIterator extends core.Object {
+  new(regExp, string, nextIndex) {
+    this[_regExp] = regExp;
+    this[_string$] = string;
+    this[_nextIndex] = nextIndex;
+    this[_current$0] = null;
+  }
+  get current() {
+    return this[_current$0];
+  }
+  moveNext() {
+    if (this[_string$] == null) return false;
+    if (dart.notNull(this[_nextIndex]) <= dart.notNull(this[_string$][dartx.length])) {
+      let match = this[_regExp][_execGlobal](this[_string$], this[_nextIndex]);
+      if (match != null) {
+        this[_current$0] = match;
+        let nextIndex = match.end;
+        if (match.start == nextIndex) {
+          nextIndex = dart.notNull(nextIndex) + 1;
         }
+        this[_nextIndex] = nextIndex;
+        return true;
       }
-      let list = JSArrayOfint().of([]);
-      if (end == null) {
-        while (dart.test(it.moveNext()))
-          list[dartx.add](it.current);
+    }
+    this[_current$0] = null;
+    this[_string$] = null;
+    return false;
+  }
+};
+_js_helper._AllMatchesIterator[dart.implements] = () => [IteratorOfMatch()];
+dart.setSignature(_js_helper._AllMatchesIterator, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._AllMatchesIterator, [_js_helper.JSSyntaxRegExp, core.String, core.int])}),
+  fields: () => ({
+    [_regExp]: _js_helper.JSSyntaxRegExp,
+    [_string$]: core.String,
+    [_nextIndex]: core.int,
+    [_current$0]: core.Match
+  }),
+  getters: () => ({current: dart.definiteFunctionType(core.Match, [])}),
+  methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+});
+_js_helper.firstMatchAfter = function(regExp, string, start) {
+  return regExp[_execGlobal](string, start);
+};
+dart.lazyFn(_js_helper.firstMatchAfter, () => JSSyntaxRegExpAndStringAndintToMatch());
+_js_helper.stringIndexOfStringUnchecked = function(receiver, other, startIndex) {
+  return receiver.indexOf(other, startIndex);
+};
+dart.fn(_js_helper.stringIndexOfStringUnchecked, dynamicAnddynamicAnddynamicToint());
+_js_helper.substring1Unchecked = function(receiver, startIndex) {
+  return receiver.substring(startIndex);
+};
+dart.lazyFn(_js_helper.substring1Unchecked, () => dynamicAnddynamicToString());
+_js_helper.substring2Unchecked = function(receiver, startIndex, endIndex) {
+  return receiver.substring(startIndex, endIndex);
+};
+dart.lazyFn(_js_helper.substring2Unchecked, () => dynamicAnddynamicAnddynamicToString());
+_js_helper.stringContainsStringUnchecked = function(receiver, other, startIndex) {
+  return dart.notNull(_js_helper.stringIndexOfStringUnchecked(receiver, other, startIndex)) >= 0;
+};
+dart.lazyFn(_js_helper.stringContainsStringUnchecked, () => dynamicAnddynamicAnddynamicTobool());
+_js_helper.StringMatch = class StringMatch extends core.Object {
+  new(start, input, pattern) {
+    this.start = start;
+    this.input = input;
+    this.pattern = pattern;
+  }
+  get end() {
+    return dart.notNull(this.start) + dart.notNull(this.pattern[dartx.length]);
+  }
+  _get(g) {
+    return this.group(g);
+  }
+  get groupCount() {
+    return 0;
+  }
+  group(group_) {
+    if (group_ != 0) {
+      dart.throw(new core.RangeError.value(group_));
+    }
+    return this.pattern;
+  }
+  groups(groups_) {
+    let result = ListOfString().new();
+    for (let g of groups_) {
+      result[dartx.add](this.group(g));
+    }
+    return result;
+  }
+};
+_js_helper.StringMatch[dart.implements] = () => [core.Match];
+dart.setSignature(_js_helper.StringMatch, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper.StringMatch, [core.int, core.String, core.String])}),
+  fields: () => ({
+    start: core.int,
+    input: core.String,
+    pattern: core.String
+  }),
+  getters: () => ({
+    end: dart.definiteFunctionType(core.int, []),
+    groupCount: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    _get: dart.definiteFunctionType(core.String, [core.int]),
+    group: dart.definiteFunctionType(core.String, [core.int]),
+    groups: dart.definiteFunctionType(core.List$(core.String), [ListOfint()])
+  })
+});
+_js_helper.allMatchesInStringUnchecked = function(pattern, string, startIndex) {
+  return new _js_helper._StringAllMatchesIterable(string, pattern, startIndex);
+};
+dart.lazyFn(_js_helper.allMatchesInStringUnchecked, () => StringAndStringAndintToIterableOfMatch());
+const _input = Symbol('_input');
+const _pattern = Symbol('_pattern');
+const _index$0 = Symbol('_index');
+_js_helper._StringAllMatchesIterable = class _StringAllMatchesIterable extends core.Iterable$(core.Match) {
+  new(input, pattern, index) {
+    this[_input] = input;
+    this[_pattern] = pattern;
+    this[_index$0] = index;
+    super.new();
+  }
+  get iterator() {
+    return new _js_helper._StringAllMatchesIterator(this[_input], this[_pattern], this[_index$0]);
+  }
+  get first() {
+    let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index$0]);
+    if (dart.notNull(index) >= 0) {
+      return new _js_helper.StringMatch(index, this[_input], this[_pattern]);
+    }
+    dart.throw(_internal.IterableElementError.noElement());
+  }
+};
+dart.addSimpleTypeTests(_js_helper._StringAllMatchesIterable);
+dart.setSignature(_js_helper._StringAllMatchesIterable, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._StringAllMatchesIterable, [core.String, core.String, core.int])}),
+  fields: () => ({
+    [_input]: core.String,
+    [_pattern]: core.String,
+    [_index$0]: core.int
+  }),
+  getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(core.Match), [])})
+});
+dart.defineExtensionMembers(_js_helper._StringAllMatchesIterable, ['iterator', 'first']);
+_js_helper._StringAllMatchesIterator = class _StringAllMatchesIterator extends core.Object {
+  new(input, pattern, index) {
+    this[_input] = input;
+    this[_pattern] = pattern;
+    this[_index$0] = index;
+    this[_current$0] = null;
+  }
+  moveNext() {
+    if (dart.notNull(this[_index$0]) + dart.notNull(this[_pattern][dartx.length]) > dart.notNull(this[_input][dartx.length])) {
+      this[_current$0] = null;
+      return false;
+    }
+    let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index$0]);
+    if (dart.notNull(index) < 0) {
+      this[_index$0] = dart.notNull(this[_input][dartx.length]) + 1;
+      this[_current$0] = null;
+      return false;
+    }
+    let end = dart.notNull(index) + dart.notNull(this[_pattern][dartx.length]);
+    this[_current$0] = new _js_helper.StringMatch(index, this[_input], this[_pattern]);
+    if (end == this[_index$0]) end++;
+    this[_index$0] = end;
+    return true;
+  }
+  get current() {
+    return this[_current$0];
+  }
+};
+_js_helper._StringAllMatchesIterator[dart.implements] = () => [IteratorOfMatch()];
+dart.setSignature(_js_helper._StringAllMatchesIterator, {
+  constructors: () => ({new: dart.definiteFunctionType(_js_helper._StringAllMatchesIterator, [core.String, core.String, core.int])}),
+  fields: () => ({
+    [_input]: core.String,
+    [_pattern]: core.String,
+    [_index$0]: core.int,
+    [_current$0]: core.Match
+  }),
+  getters: () => ({current: dart.definiteFunctionType(core.Match, [])}),
+  methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+});
+_js_helper.stringContainsUnchecked = function(receiver, other, startIndex) {
+  if (typeof other == 'string') {
+    return _js_helper.stringContainsStringUnchecked(receiver, other, startIndex);
+  } else if (_js_helper.JSSyntaxRegExp.is(other)) {
+    return other.hasMatch(receiver[dartx.substring](startIndex));
+  } else {
+    let substr = receiver[dartx.substring](startIndex);
+    return core.bool._check(dart.dload(dart.dsend(other, 'allMatches', substr), 'isNotEmpty'));
+  }
+};
+dart.lazyFn(_js_helper.stringContainsUnchecked, () => StringAnddynamicAndintTobool());
+_js_helper.stringReplaceJS = function(receiver, replacer, replacement) {
+  replacement = replacement.replace(/\$/g, "$$$$");
+  return receiver.replace(replacer, replacement);
+};
+dart.lazyFn(_js_helper.stringReplaceJS, () => dynamicAnddynamicAnddynamicToString());
+_js_helper.stringReplaceFirstRE = function(receiver, regexp, replacement, startIndex) {
+  let match = regexp[_execGlobal](receiver, startIndex);
+  if (match == null) return receiver;
+  let start = match.start;
+  let end = match.end;
+  return _js_helper.stringReplaceRangeUnchecked(receiver, start, end, replacement);
+};
+dart.lazyFn(_js_helper.stringReplaceFirstRE, () => StringAndJSSyntaxRegExpAndString__ToString());
+_js_helper.quoteStringForRegExp = function(string) {
+  return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
+};
+dart.lazyFn(_js_helper.quoteStringForRegExp, () => dynamicToString());
+_js_helper.stringReplaceAllUnchecked = function(receiver, pattern, replacement) {
+  _js_helper.checkString(replacement);
+  if (typeof pattern == 'string') {
+    if (pattern == "") {
+      if (receiver == "") {
+        return replacement;
       } else {
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          if (!dart.test(it.moveNext())) {
-            dart.throw(new core.RangeError.range(end, start, i));
-          }
-          list[dartx.add](it.current);
-        }
-      }
-      return _js_helper.Primitives.stringFromCharCodes(JSArrayOfint()._check(list));
-    }
-  };
-  core.String.is = function is_String(o) {
-    return typeof o == "string";
-  };
-  core.String.as = function as_String(o) {
-    if (typeof o == "string" || o == null) return o;
-    return dart.as(o, core.String);
-  };
-  core.String._check = function check_String(o) {
-    if (typeof o == "string" || o == null) return o;
-    return dart.check(o, core.String);
-  };
-  core.String[dart.implements] = () => [ComparableOfString(), core.Pattern];
-  dart.setSignature(core.String, {
-    constructors: () => ({
-      fromCharCodes: dart.definiteFunctionType(core.String, [IterableOfint()], [core.int, core.int]),
-      fromCharCode: dart.definiteFunctionType(core.String, [core.int]),
-      fromEnvironment: dart.definiteFunctionType(core.String, [core.String], {defaultValue: core.String})
-    }),
-    statics: () => ({
-      _stringFromJSArray: dart.definiteFunctionType(core.String, [JSArrayOfint(), core.int, core.int]),
-      _stringFromUint8List: dart.definiteFunctionType(core.String, [_native_typed_data.NativeUint8List, core.int, core.int]),
-      _stringFromIterable: dart.definiteFunctionType(core.String, [IterableOfint(), core.int, core.int])
-    }),
-    names: ['_stringFromJSArray', '_stringFromUint8List', '_stringFromIterable']
-  });
-  core.List$ = dart.generic(E => {
-    let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let intToE = () => (intToE = dart.constFn(dart.functionType(E, [core.int])))();
-    class List extends core.Object {
-      static new(length) {
-        if (length === void 0) length = null;
-        let list = null;
-        if (length == null) {
-          list = [];
-        } else {
-          if (!(typeof length == 'number') || dart.notNull(length) < 0) {
-            dart.throw(new core.ArgumentError(dart.str`Length must be a non-negative integer: ${length}`));
-          }
-          list = _interceptors.JSArray.markFixedList(new Array(length));
-        }
-        return JSArrayOfE().typed(list);
-      }
-      static filled(length, fill) {
-        let result = ListOfE().new(length);
-        if (length != 0 && fill != null) {
-          for (let i = 0; i < dart.notNull(result[dartx.length]); i++) {
-            result[dartx._set](i, fill);
-          }
-        }
-        return result;
-      }
-      static from(elements, opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let list = ListOfE().new();
-        for (let e of elements) {
-          list[dartx.add](E._check(e));
-        }
-        if (dart.test(growable)) return list;
-        return _internal.makeListFixedLength(E)(list);
-      }
-      static generate(length, generator, opts) {
-        let growable = opts && 'growable' in opts ? opts.growable : true;
-        let result = null;
-        if (dart.test(growable)) {
-          result = JSArrayOfE().of([]);
-          result[dartx.length] = length;
-        } else {
-          result = ListOfE().new(length);
-        }
+        let result = new core.StringBuffer();
+        let length = receiver[dartx.length];
+        result.write(replacement);
         for (let i = 0; i < dart.notNull(length); i++) {
-          result[dartx._set](i, generator(i));
+          result.write(receiver[dartx._get](i));
+          result.write(replacement);
         }
-        return result;
+        return result.toString();
       }
-      static unmodifiable(elements) {
-        let result = ListOfE().from(elements, {growable: false});
-        return _internal.makeFixedListUnmodifiable(E)(result);
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this[dartx.iterator]);
+    } else {
+      let quoted = _js_helper.quoteStringForRegExp(pattern);
+      let replacer = new RegExp(quoted, 'g');
+      return _js_helper.stringReplaceJS(receiver, replacer, replacement);
+    }
+  } else if (_js_helper.JSSyntaxRegExp.is(pattern)) {
+    let re = _js_helper.regExpGetGlobalNative(pattern);
+    return _js_helper.stringReplaceJS(receiver, re, replacement);
+  } else {
+    _js_helper.checkNull(pattern);
+    dart.throw("String.replaceAll(Pattern) UNIMPLEMENTED");
+  }
+};
+dart.lazyFn(_js_helper.stringReplaceAllUnchecked, () => StringAndPatternAndStringToString());
+_js_helper._matchString = function(match) {
+  return match._get(0);
+};
+dart.lazyFn(_js_helper._matchString, () => MatchToString$());
+_js_helper._stringIdentity = function(string) {
+  return string;
+};
+dart.lazyFn(_js_helper._stringIdentity, () => StringToString$());
+_js_helper.stringReplaceAllFuncUnchecked = function(receiver, pattern, onMatch, onNonMatch) {
+  if (onMatch == null) onMatch = _js_helper._matchString;
+  if (onNonMatch == null) onNonMatch = _js_helper._stringIdentity;
+  if (typeof pattern == 'string') {
+    return _js_helper.stringReplaceAllStringFuncUnchecked(receiver, pattern, onMatch, onNonMatch);
+  }
+  if (!core.Pattern.is(pattern)) {
+    dart.throw(new core.ArgumentError.value(pattern, 'pattern', 'is not a Pattern'));
+  }
+  let buffer = new core.StringBuffer();
+  let startIndex = 0;
+  for (let match of pattern[dartx.allMatches](receiver)) {
+    buffer.write(onNonMatch(receiver[dartx.substring](startIndex, match.start)));
+    buffer.write(onMatch(match));
+    startIndex = match.end;
+  }
+  buffer.write(onNonMatch(receiver[dartx.substring](startIndex)));
+  return buffer.toString();
+};
+dart.lazyFn(_js_helper.stringReplaceAllFuncUnchecked, () => StringAndPatternAndFn__ToString());
+_js_helper.stringReplaceAllEmptyFuncUnchecked = function(receiver, onMatch, onNonMatch) {
+  let buffer = new core.StringBuffer();
+  let length = receiver[dartx.length];
+  let i = 0;
+  buffer.write(onNonMatch(""));
+  while (i < dart.notNull(length)) {
+    buffer.write(onMatch(new _js_helper.StringMatch(i, receiver, "")));
+    let code = receiver[dartx.codeUnitAt](i);
+    if ((dart.notNull(code) & ~1023) == 55296 && dart.notNull(length) > i + 1) {
+      code = receiver[dartx.codeUnitAt](i + 1);
+      if ((dart.notNull(code) & ~1023) == 56320) {
+        buffer.write(onNonMatch(receiver[dartx.substring](i, i + 2)));
+        i = i + 2;
+        continue;
       }
     }
-    dart.addTypeTests(List);
-    List[dart.implements] = () => [IterableOfE(), _internal.EfficientLength];
-    dart.setSignature(List, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(core.List$(E), [], [core.int]),
-        filled: dart.definiteFunctionType(core.List$(E), [core.int, E]),
-        from: dart.definiteFunctionType(core.List$(E), [core.Iterable], {growable: core.bool}),
-        generate: dart.definiteFunctionType(core.List$(E), [core.int, intToE()], {growable: core.bool}),
-        unmodifiable: dart.definiteFunctionType(core.List$(E), [core.Iterable])
-      })
-    });
-    return List;
-  });
-  core.List = List();
-  convert.Encoding = class Encoding extends convert.Codec$(core.String, core.List$(core.int)) {
+    buffer.write(onNonMatch(receiver[dartx._get](i)));
+    i++;
+  }
+  buffer.write(onMatch(new _js_helper.StringMatch(i, receiver, "")));
+  buffer.write(onNonMatch(""));
+  return buffer.toString();
+};
+dart.lazyFn(_js_helper.stringReplaceAllEmptyFuncUnchecked, () => StringAndFnAndFnToString());
+_js_helper.stringReplaceAllStringFuncUnchecked = function(receiver, pattern, onMatch, onNonMatch) {
+  let patternLength = pattern[dartx.length];
+  if (patternLength == 0) {
+    return _js_helper.stringReplaceAllEmptyFuncUnchecked(receiver, onMatch, onNonMatch);
+  }
+  let length = receiver[dartx.length];
+  let buffer = new core.StringBuffer();
+  let startIndex = 0;
+  while (startIndex < dart.notNull(length)) {
+    let position = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
+    if (position == -1) {
+      break;
+    }
+    buffer.write(onNonMatch(receiver[dartx.substring](startIndex, position)));
+    buffer.write(onMatch(new _js_helper.StringMatch(position, receiver, pattern)));
+    startIndex = dart.notNull(position) + dart.notNull(patternLength);
+  }
+  buffer.write(onNonMatch(receiver[dartx.substring](startIndex)));
+  return buffer.toString();
+};
+dart.lazyFn(_js_helper.stringReplaceAllStringFuncUnchecked, () => StringAndStringAndFn__ToString());
+_js_helper.stringReplaceFirstUnchecked = function(receiver, pattern, replacement, startIndex) {
+  if (typeof pattern == 'string') {
+    let index = _js_helper.stringIndexOfStringUnchecked(receiver, pattern, startIndex);
+    if (dart.notNull(index) < 0) return receiver;
+    let end = dart.notNull(index) + dart.notNull(pattern[dartx.length]);
+    return _js_helper.stringReplaceRangeUnchecked(receiver, index, end, replacement);
+  }
+  if (_js_helper.JSSyntaxRegExp.is(pattern)) {
+    return startIndex == 0 ? _js_helper.stringReplaceJS(receiver, _js_helper.regExpGetNative(pattern), replacement) : _js_helper.stringReplaceFirstRE(receiver, pattern, replacement, startIndex);
+  }
+  _js_helper.checkNull(pattern);
+  let matches = pattern[dartx.allMatches](receiver, startIndex)[dartx.iterator];
+  if (!dart.test(matches.moveNext())) return receiver;
+  let match = matches.current;
+  return receiver[dartx.replaceRange](match.start, match.end, replacement);
+};
+dart.lazyFn(_js_helper.stringReplaceFirstUnchecked, () => StringAndPatternAndString__ToString());
+_js_helper.stringReplaceFirstMappedUnchecked = function(receiver, pattern, replace, startIndex) {
+  let matches = pattern[dartx.allMatches](receiver, startIndex)[dartx.iterator];
+  if (!dart.test(matches.moveNext())) return receiver;
+  let match = matches.current;
+  let replacement = dart.str`${replace(match)}`;
+  return receiver[dartx.replaceRange](match.start, match.end, replacement);
+};
+dart.lazyFn(_js_helper.stringReplaceFirstMappedUnchecked, () => StringAndPatternAndFn__ToString$());
+_js_helper.stringJoinUnchecked = function(array, separator) {
+  return array.join(separator);
+};
+dart.lazyFn(_js_helper.stringJoinUnchecked, () => dynamicAnddynamicToString());
+_js_helper.stringReplaceRangeUnchecked = function(receiver, start, end, replacement) {
+  let prefix = receiver.substring(0, start);
+  let suffix = receiver.substring(end);
+  return dart.str`${prefix}${replacement}${suffix}`;
+};
+dart.lazyFn(_js_helper.stringReplaceRangeUnchecked, () => StringAndintAndint__ToString());
+_js_helper.getRuntimeType = function(object) {
+  return dart.getReifiedType(object);
+};
+dart.fn(_js_helper.getRuntimeType, dynamicToType());
+_js_helper.getIndex = function(array, index) {
+  dart.assert(_js_helper.isJsArray(array));
+  return array[index];
+};
+dart.fn(_js_helper.getIndex, dynamicAndintTodynamic());
+_js_helper.getLength = function(array) {
+  dart.assert(_js_helper.isJsArray(array));
+  return array.length;
+};
+dart.fn(_js_helper.getLength, dynamicToint());
+_js_helper.isJsArray = function(value) {
+  return _interceptors.JSArray.is(value);
+};
+dart.lazyFn(_js_helper.isJsArray, () => dynamicTobool$());
+_js_mirrors.getName = function(symbol) {
+  return _internal.Symbol.getName(_internal.Symbol.as(symbol));
+};
+dart.lazyFn(_js_mirrors.getName, () => SymbolToString());
+_js_mirrors.getSymbol = function(name, library) {
+  return dart.throw(new core.UnimplementedError("MirrorSystem.getSymbol unimplemented"));
+};
+dart.lazyFn(_js_mirrors.getSymbol, () => dynamicAnddynamicToSymbol());
+dart.defineLazy(_js_mirrors, {
+  get currentJsMirrorSystem() {
+    return dart.throw(new core.UnimplementedError("MirrorSystem.currentJsMirrorSystem unimplemented"));
+  }
+});
+dart.defineLazy(_js_mirrors, {
+  get _typeMirror() {
+    return Symbol("_typeMirror");
+  }
+});
+_js_mirrors.reflect = function(reflectee) {
+  if (core.Function.is(reflectee)) {
+    return new _js_mirrors.JsClosureMirror._(reflectee);
+  } else {
+    return new _js_mirrors.JsInstanceMirror._(reflectee);
+  }
+};
+dart.lazyFn(_js_mirrors.reflect, () => dynamicToInstanceMirror());
+_js_mirrors.reflectType = function(key) {
+  let unwrapped = _js_mirrors._unwrap(key);
+  let property = Object.getOwnPropertyDescriptor(unwrapped, _js_mirrors._typeMirror);
+  if (property != null) {
+    return property.value;
+  }
+  let mirror = new _js_mirrors.JsClassMirror._(key);
+  unwrapped[_js_mirrors._typeMirror] = mirror;
+  return mirror;
+};
+dart.lazyFn(_js_mirrors.reflectType, () => TypeToTypeMirror());
+dart.defineLazy(_js_mirrors, {
+  get _dart() {
+    return dart;
+  }
+});
+_js_mirrors._dload = function(obj, name) {
+  return _js_mirrors._dart.dloadMirror(obj, name);
+};
+dart.lazyFn(_js_mirrors._dload, () => dynamicAndStringTodynamic());
+_js_mirrors._dput = function(obj, name, val) {
+  _js_mirrors._dart.dputMirror(obj, name, val);
+};
+dart.lazyFn(_js_mirrors._dput, () => dynamicAndStringAnddynamicTovoid());
+_js_mirrors._dcall = function(obj, args) {
+  return _js_mirrors._dart.dcall(obj, ...args);
+};
+dart.lazyFn(_js_mirrors._dcall, () => dynamicAndListTodynamic());
+_js_mirrors._dsend = function(obj, name, args) {
+  return _js_mirrors._dart.dsend(obj, name, ...args);
+};
+dart.lazyFn(_js_mirrors._dsend, () => dynamicAndStringAndListTodynamic());
+_js_mirrors._getGenericClass = function(obj) {
+  return _js_mirrors._dart.getGenericClass(obj);
+};
+dart.fn(_js_mirrors._getGenericClass, dynamicTodynamic$());
+_js_mirrors._getGenericArgs = function(obj) {
+  return _js_mirrors._dart.getGenericArgs(obj);
+};
+dart.fn(_js_mirrors._getGenericArgs, dynamicTodynamic$());
+_js_mirrors._defaultConstructorType = function(type) {
+  return _js_mirrors._dart.definiteFunctionType(type, []);
+};
+dart.fn(_js_mirrors._defaultConstructorType, dynamicTodynamic$());
+_js_mirrors._getMixins = function(type) {
+  return _js_mirrors._dart.getMixins(type, []);
+};
+dart.fn(_js_mirrors._getMixins, dynamicTodynamic$());
+_js_mirrors._Lazy$ = dart.generic(T => {
+  const _Lazy = dart.typedef('_Lazy', () => dart.functionType(T, []));
+  return _Lazy;
+});
+_js_mirrors._Lazy = _Lazy();
+_js_mirrors._getESSymbol = function(symbol) {
+  return _internal.Symbol.getNativeSymbol(_internal.Symbol.as(symbol));
+};
+dart.lazyFn(_js_mirrors._getESSymbol, () => SymbolTodynamic());
+_js_mirrors._getMember = function(symbol) {
+  let privateSymbol = _js_mirrors._getESSymbol(symbol);
+  if (privateSymbol != null) {
+    return privateSymbol;
+  }
+  let name = _js_mirrors.getName(symbol);
+  switch (name) {
+    case '[]':
+    {
+      name = '_get';
+      break;
+    }
+    case '[]=':
+    {
+      name = '_set';
+      break;
+    }
+    case 'unary-':
+    {
+      name = '_negate';
+      break;
+    }
+    case 'constructor':
+    case 'prototype':
+    {
+      name = dart.str`_${name}`;
+      break;
+    }
+  }
+  return name;
+};
+dart.lazyFn(_js_mirrors._getMember, () => SymbolTodynamic());
+_js_mirrors._getNameForESSymbol = function(member) {
+  dart.assert(typeof member == "symbol");
+  let str = dart.toString(member);
+  dart.assert(dart.test(str[dartx.startsWith]('Symbol(')) && dart.test(str[dartx.endsWith](')')));
+  return str[dartx.substring](7, dart.notNull(str[dartx.length]) - 1);
+};
+dart.lazyFn(_js_mirrors._getNameForESSymbol, () => dynamicToString());
+_js_mirrors._getSymbolForESSymbol = function(member) {
+  let name = _js_mirrors._getNameForESSymbol(member);
+  return new _internal.Symbol.es6(name, member);
+};
+dart.lazyFn(_js_mirrors._getSymbolForESSymbol, () => dynamicToSymbol());
+_js_mirrors._getSymbolForMember = function(member) {
+  if (typeof member == 'string') {
+    return core.Symbol.new(member);
+  } else {
+    let name = _js_mirrors._getNameForESSymbol(member);
+    return new _internal.Symbol.es6(name, member);
+  }
+};
+dart.lazyFn(_js_mirrors._getSymbolForMember, () => dynamicToSymbol());
+_js_mirrors._toDartMap = function(data) {
+  if (data == null) return dart.map({}, core.Symbol, dart.dynamic);
+  let map = MapOfSymbol$dynamic().new();
+  let publicMembers = Object.getOwnPropertyNames(data);
+  for (let member of core.Iterable._check(publicMembers)) {
+    let symbol = core.Symbol.new(core.String._check(member));
+    map[dartx._set](symbol, data[member]);
+  }
+  let privateMembers = Object.getOwnPropertySymbols(data);
+  for (let member of core.Iterable._check(privateMembers)) {
+    let symbol = _js_mirrors._getSymbolForESSymbol(member);
+    map[dartx._set](symbol, data[member]);
+  }
+  return map;
+};
+dart.lazyFn(_js_mirrors._toDartMap, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getConstructors = function(obj) {
+  let sig = _js_mirrors._dart.getConstructorSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getConstructors, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getFields = function(obj) {
+  let sig = _js_mirrors._dart.getFieldSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getFields, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getMethods = function(obj) {
+  let sig = _js_mirrors._dart.getMethodSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getMethods, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getGetters = function(obj) {
+  let sig = _js_mirrors._dart.getGetterSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getGetters, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getSetters = function(obj) {
+  let sig = _js_mirrors._dart.getSetterSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getSetters, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getStaticFields = function(obj) {
+  let sig = _js_mirrors._dart.getStaticFieldSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getStaticFields, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getStatics = function(obj) {
+  let sig = _js_mirrors._dart.getStaticSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getStatics, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getStaticGetters = function(obj) {
+  let sig = _js_mirrors._dart.getStaticGetterSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getStaticGetters, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._getStaticSetters = function(obj) {
+  let sig = _js_mirrors._dart.getStaticSetterSig(obj);
+  return _js_mirrors._toDartMap(sig);
+};
+dart.lazyFn(_js_mirrors._getStaticSetters, () => dynamicToMapOfSymbol$dynamic());
+_js_mirrors._unwrap = function(obj) {
+  return _js_mirrors._dart.unwrapType(obj);
+};
+dart.fn(_js_mirrors._unwrap, dynamicTodynamic$());
+_js_mirrors._wrap = function(obj) {
+  return _js_mirrors._dart.wrapType(obj);
+};
+dart.fn(_js_mirrors._wrap, dynamicTodynamic$());
+_js_mirrors._runtimeType = function(obj) {
+  return _js_mirrors._wrap(_js_mirrors._dart.getReifiedType(obj));
+};
+dart.fn(_js_mirrors._runtimeType, dynamicTodynamic$());
+_js_mirrors._unimplemented = function(t, i) {
+  dart.throw(new core.UnimplementedError(dart.str`${t}.${_js_mirrors.getName(i.memberName)} unimplemented`));
+};
+dart.fn(_js_mirrors._unimplemented, TypeAndInvocationTodynamic());
+_js_mirrors._toJsMap = function(map) {
+  let obj = {};
+  map[dartx.forEach](dart.fn((key, value) => {
+    obj[_js_mirrors.getName(key)] = value;
+  }, SymbolAnddynamicToNull()));
+  return obj;
+};
+dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
+_js_mirrors.JsMirror = class JsMirror extends core.Object {
+  noSuchMethod(i) {
+    _js_mirrors._unimplemented(this.runtimeType, i);
+  }
+};
+_js_mirrors.JsMirror[dart.implements] = () => [mirrors.Mirror];
+_js_mirrors.JsCombinatorMirror = class JsCombinatorMirror extends _js_mirrors.JsMirror {
+  get identifiers() {
+    return ListOfSymbol()._check(this.noSuchMethod(new dart.InvocationImpl('identifiers', [], {isGetter: true})));
+  }
+  get isShow() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isShow', [], {isGetter: true})));
+  }
+  get isHide() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isHide', [], {isGetter: true})));
+  }
+};
+_js_mirrors.JsCombinatorMirror[dart.implements] = () => [mirrors.CombinatorMirror];
+_js_mirrors.JsDeclarationMirror = class JsDeclarationMirror extends _js_mirrors.JsMirror {
+  get simpleName() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('simpleName', [], {isGetter: true})));
+  }
+  get qualifiedName() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
+  }
+  get owner() {
+    return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
+  }
+  get isPrivate() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
+  }
+  get isTopLevel() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
+  }
+  get location() {
+    return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
+  }
+  get metadata() {
+    return ListOfInstanceMirror()._check(this.noSuchMethod(new dart.InvocationImpl('metadata', [], {isGetter: true})));
+  }
+};
+_js_mirrors.JsDeclarationMirror[dart.implements] = () => [mirrors.DeclarationMirror];
+_js_mirrors.JsIsolateMirror = class JsIsolateMirror extends _js_mirrors.JsMirror {
+  get debugName() {
+    return core.String._check(this.noSuchMethod(new dart.InvocationImpl('debugName', [], {isGetter: true})));
+  }
+  get isCurrent() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isCurrent', [], {isGetter: true})));
+  }
+  get rootLibrary() {
+    return mirrors.LibraryMirror._check(this.noSuchMethod(new dart.InvocationImpl('rootLibrary', [], {isGetter: true})));
+  }
+};
+_js_mirrors.JsIsolateMirror[dart.implements] = () => [mirrors.IsolateMirror];
+_js_mirrors.JsLibraryDependencyMirror = class JsLibraryDependencyMirror extends _js_mirrors.JsMirror {
+  get isImport() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isImport', [], {isGetter: true})));
+  }
+  get isExport() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isExport', [], {isGetter: true})));
+  }
+  get sourceLibrary() {
+    return mirrors.LibraryMirror._check(this.noSuchMethod(new dart.InvocationImpl('sourceLibrary', [], {isGetter: true})));
+  }
+  get targetLibrary() {
+    return mirrors.LibraryMirror._check(this.noSuchMethod(new dart.InvocationImpl('targetLibrary', [], {isGetter: true})));
+  }
+  get prefix() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('prefix', [], {isGetter: true})));
+  }
+  get combinators() {
+    return ListOfCombinatorMirror()._check(this.noSuchMethod(new dart.InvocationImpl('combinators', [], {isGetter: true})));
+  }
+  get location() {
+    return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
+  }
+  get metadata() {
+    return ListOfInstanceMirror()._check(this.noSuchMethod(new dart.InvocationImpl('metadata', [], {isGetter: true})));
+  }
+};
+_js_mirrors.JsLibraryDependencyMirror[dart.implements] = () => [mirrors.LibraryDependencyMirror];
+_js_mirrors.JsObjectMirror = class JsObjectMirror extends _js_mirrors.JsMirror {
+  invoke(...args) {
+    return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('invoke', args, {isMethod: true})));
+  }
+  getField(...args) {
+    return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('getField', args, {isMethod: true})));
+  }
+  setField(...args) {
+    return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('setField', args, {isMethod: true})));
+  }
+};
+_js_mirrors.JsObjectMirror[dart.implements] = () => [mirrors.ObjectMirror];
+const _getAccessor = Symbol('_getAccessor');
+_js_mirrors.JsInstanceMirror = class JsInstanceMirror extends _js_mirrors.JsObjectMirror {
+  get hasReflectee() {
+    return true;
+  }
+  get type() {
+    if (this.reflectee == null) return mirrors.reflectClass(dart.wrapType(core.Null));
+    return mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._runtimeType(this.reflectee))));
+  }
+  _(reflectee) {
+    this.reflectee = reflectee;
+  }
+  ['=='](other) {
+    return _js_mirrors.JsInstanceMirror.is(other) && core.identical(this.reflectee, other.reflectee);
+  }
+  get hashCode() {
+    return (dart.notNull(core.identityHashCode(this.reflectee)) ^ 909522486) >>> 0;
+  }
+  [_getAccessor](reflectee, symbol, args, namedArgs) {
+    if (args === void 0) args = null;
+    if (namedArgs === void 0) namedArgs = null;
+    return _js_mirrors._getMember(symbol);
+  }
+  getField(symbol) {
+    let name = this[_getAccessor](this.reflectee, symbol);
+    let field = _js_mirrors._dload(this.reflectee, core.String._check(name));
+    return _js_mirrors.reflect(field);
+  }
+  setField(symbol, value) {
+    let name = this[_getAccessor](this.reflectee, symbol);
+    _js_mirrors._dput(this.reflectee, core.String._check(name), value);
+    return _js_mirrors.reflect(value);
+  }
+  invoke(symbol, args, namedArgs) {
+    if (namedArgs === void 0) namedArgs = null;
+    let name = this[_getAccessor](this.reflectee, symbol, args, namedArgs);
+    if (namedArgs != null) {
+      args = core.List.from(args);
+      args[dartx.add](_js_mirrors._toJsMap(namedArgs));
+    }
+    let result = _js_mirrors._dsend(this.reflectee, core.String._check(name), args);
+    return _js_mirrors.reflect(result);
+  }
+  toString() {
+    return dart.str`InstanceMirror on '${this.reflectee}'`;
+  }
+  delegate(...args) {
+    return this.noSuchMethod(new dart.InvocationImpl('delegate', args, {isMethod: true}));
+  }
+};
+dart.defineNamedConstructor(_js_mirrors.JsInstanceMirror, '_');
+_js_mirrors.JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror];
+dart.setSignature(_js_mirrors.JsInstanceMirror, {
+  constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsInstanceMirror, [dart.dynamic])}),
+  fields: () => ({reflectee: dart.dynamic}),
+  getters: () => ({
+    hasReflectee: dart.definiteFunctionType(core.bool, []),
+    type: dart.definiteFunctionType(mirrors.ClassMirror, [])
+  }),
+  methods: () => ({
+    '==': dart.definiteFunctionType(core.bool, [core.Object]),
+    [_getAccessor]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Symbol], [core.List, MapOfSymbol$dynamic()]),
+    getField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol]),
+    setField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.Object]),
+    invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])
+  })
+});
+_js_mirrors.JsClosureMirror = class JsClosureMirror extends _js_mirrors.JsInstanceMirror {
+  _(reflectee) {
+    super._(reflectee);
+  }
+  apply(args, namedArgs) {
+    if (namedArgs === void 0) namedArgs = null;
+    if (namedArgs != null) {
+      args = core.List.from(args);
+      args[dartx.add](_js_mirrors._toJsMap(namedArgs));
+    }
+    let result = _js_mirrors._dcall(this.reflectee, args);
+    return _js_mirrors.reflect(result);
+  }
+  delegate(...args) {
+    return this.noSuchMethod(new dart.InvocationImpl('delegate', args, {isMethod: true}));
+  }
+  get function() {
+    return mirrors.MethodMirror._check(this.noSuchMethod(new dart.InvocationImpl('function', [], {isGetter: true})));
+  }
+};
+dart.defineNamedConstructor(_js_mirrors.JsClosureMirror, '_');
+_js_mirrors.JsClosureMirror[dart.implements] = () => [mirrors.ClosureMirror];
+dart.setSignature(_js_mirrors.JsClosureMirror, {
+  constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsClosureMirror, [dart.dynamic])}),
+  methods: () => ({apply: dart.definiteFunctionType(mirrors.InstanceMirror, [core.List], [MapOfSymbol$dynamic()])})
+});
+const _metadata$ = Symbol('_metadata');
+const _cls = Symbol('_cls');
+let const$0;
+const _declarations = Symbol('_declarations');
+const _raw = Symbol('_raw');
+const _mixin = Symbol('_mixin');
+const _typeArguments = Symbol('_typeArguments');
+let const$1;
+_js_mirrors.JsClassMirror = class JsClassMirror extends _js_mirrors.JsMirror {
+  get metadata() {
+    if (this[_metadata$] == null) {
+      let unwrapped = _js_mirrors._unwrap(this[_cls]);
+      let fn = Object.hasOwnProperty.call(unwrapped, dart.metadata) ? unwrapped[dart.metadata] : null;
+      this[_metadata$] = fn == null ? const$0 || (const$0 = dart.constList([], mirrors.InstanceMirror)) : ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dcall(fn), 'map', dart.fn(i => _js_mirrors.reflect(i), dynamicToInstanceMirror()))));
+    }
+    return this[_metadata$];
+  }
+  get declarations() {
+    if (this[_declarations] == null) {
+      this[_declarations] = MapOfSymbol$DeclarationMirror().new();
+      let unwrapped = _js_mirrors._unwrap(this[_cls]);
+      let constructors = _js_mirrors._getConstructors(unwrapped);
+      constructors[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = _js_mirrors.getName(symbol);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      if (dart.test(constructors[dartx.isEmpty])) {
+        let name = 'new';
+        let ft = _js_mirrors._defaultConstructorType(_js_mirrors._unwrap(this[_cls]));
+        let symbol = core.Symbol.new(name);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
+      }
+      let fields = _js_mirrors._getFields(unwrapped);
+      fields[dartx.forEach](dart.fn((symbol, t) => {
+        let metadata = [];
+        if (core.List.is(t)) {
+          metadata = core.List._check(dart.dsend(dart.dsend(t, 'skip', 1), 'toList'));
+          t = dart.dindex(t, 0);
+        }
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
+      }, SymbolAnddynamicToNull()));
+      let methods = _js_mirrors._getMethods(unwrapped);
+      methods[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = _js_mirrors.getName(symbol);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      let getters = _js_mirrors._getGetters(unwrapped);
+      getters[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = _js_mirrors.getName(symbol);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      let setters = _js_mirrors._getSetters(unwrapped);
+      setters[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = dart.notNull(_js_mirrors.getName(symbol)) + '=';
+        symbol = new _internal.Symbol.es6(name, _js_mirrors._getESSymbol(symbol));
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      let staticFields = _js_mirrors._getStaticFields(unwrapped);
+      staticFields[dartx.forEach](dart.fn((symbol, t) => {
+        let name = _js_mirrors.getName(symbol);
+        let metadata = [];
+        if (core.List.is(t)) {
+          metadata = core.List._check(dart.dsend(dart.dsend(t, 'skip', 1), 'toList'));
+          t = dart.dindex(t, 0);
+        }
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
+      }, SymbolAnddynamicToNull()));
+      let statics = _js_mirrors._getStatics(unwrapped);
+      statics[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = _js_mirrors.getName(symbol);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      let staticGetters = _js_mirrors._getStaticGetters(unwrapped);
+      staticGetters[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = _js_mirrors.getName(symbol);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      let staticSetters = _js_mirrors._getStaticSetters(unwrapped);
+      staticSetters[dartx.forEach](dart.fn((symbol, ft) => {
+        let name = _js_mirrors.getName(symbol);
+        this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
+      }, SymbolAnddynamicToNull()));
+      this[_declarations] = MapOfSymbol$DeclarationMirror().unmodifiable(this[_declarations]);
+    }
+    return this[_declarations];
+  }
+  _(cls) {
+    this[_cls] = cls;
+    this[_raw] = _js_mirrors._getGenericClass(_js_mirrors._unwrap(cls));
+    this.simpleName = core.Symbol.new(_js_mirrors._unwrap(cls).name);
+    this[_mixin] = null;
+    this[_typeArguments] = null;
+    this[_metadata$] = null;
+    this[_declarations] = null;
+    let typeArgs = _js_mirrors._getGenericArgs(_js_mirrors._unwrap(cls));
+    if (typeArgs == null) {
+      this[_typeArguments] = const$1 || (const$1 = dart.constList([], mirrors.TypeMirror));
+    } else {
+      this[_typeArguments] = ListOfTypeMirror().unmodifiable(core.Iterable._check(dart.dsend(typeArgs, 'map', dart.fn(t => _js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(t))), dynamicToTypeMirror()))));
+    }
+  }
+  newInstance(constructorName, args, namedArgs) {
+    if (namedArgs === void 0) namedArgs = null;
+    let name = _js_mirrors.getName(constructorName);
+    dart.assert(namedArgs == null || dart.test(namedArgs[dartx.isEmpty]));
+    let instance = name == 'new' || name == '' ? new (_js_mirrors._unwrap(this[_cls]))(...args) : new (_js_mirrors._unwrap(this[_cls]))[name](...args);
+    return _js_mirrors.reflect(instance);
+  }
+  getField(symbol) {
+    let name = _js_mirrors.getName(symbol);
+    return _js_mirrors.reflect(_js_mirrors._unwrap(this[_cls])[name]);
+  }
+  setField(symbol, value) {
+    let name = _js_mirrors.getName(symbol);
+    _js_mirrors._unwrap(this[_cls])[name] = value;
+    return _js_mirrors.reflect(value);
+  }
+  invoke(symbol, args, namedArgs) {
+    if (namedArgs === void 0) namedArgs = null;
+    let name = _js_mirrors.getName(symbol);
+    if (namedArgs != null) {
+      args = core.List.from(args);
+      args[dartx.add](_js_mirrors._toJsMap(namedArgs));
+    }
+    let result = _js_mirrors._unwrap(this[_cls])[name](...args);
+    return _js_mirrors.reflect(result);
+  }
+  get superinterfaces() {
+    let interfaceThunk = _js_mirrors._unwrap(this[_cls])[dart.implements];
+    if (interfaceThunk == null) {
+      return JSArrayOfClassMirror().of([]);
+    } else {
+      let interfaces = interfaceThunk();
+      return ListOfClassMirror()._check(interfaces[dartx.map](mirrors.TypeMirror)(dart.fn(t => _js_mirrors.reflectType(t), TypeToTypeMirror()))[dartx.toList]());
+    }
+  }
+  get hasReflectedType() {
+    return true;
+  }
+  get reflectedType() {
+    return this[_cls];
+  }
+  get isOriginalDeclaration() {
+    return this[_raw] == null;
+  }
+  get typeArguments() {
+    return this[_typeArguments];
+  }
+  get originalDeclaration() {
+    if (this[_raw] == null) {
+      return this;
+    }
+    dart.throw(new core.UnimplementedError("ClassMirror.originalDeclaration unimplemented"));
+  }
+  get superclass() {
+    if (dart.equals(this[_cls], dart.wrapType(core.Object))) {
+      return null;
+    } else {
+      return mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(_js_mirrors._unwrap(this[_cls]).__proto__))));
+    }
+  }
+  get mixin() {
+    if (this[_mixin] != null) {
+      return this[_mixin];
+    }
+    let mixins = _js_mirrors._getMixins(_js_mirrors._unwrap(this[_cls]));
+    if (mixins == null || dart.test(dart.dload(mixins, 'isEmpty'))) {
+      this[_mixin] = this;
+      return this[_mixin];
+    }
+    if (dart.test(dart.dsend(dart.dload(mixins, 'length'), '>', 1))) {
+      dart.throw(new core.UnsupportedError("ClassMirror.mixin not yet supported for " + dart.str`classes (${this[_cls]}) with multiple mixins`));
+    }
+    this[_mixin] = mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(dart.dindex(mixins, 0)))));
+    return this[_mixin];
+  }
+  toString() {
+    return dart.str`ClassMirror on '${this[_cls]}'`;
+  }
+  get qualifiedName() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
+  }
+  get owner() {
+    return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
+  }
+  get isPrivate() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
+  }
+  get isTopLevel() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
+  }
+  get location() {
+    return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
+  }
+  isSubtypeOf(...args) {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSubtypeOf', args, {isMethod: true})));
+  }
+  isAssignableTo(...args) {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isAssignableTo', args, {isMethod: true})));
+  }
+  get typeVariables() {
+    return ListOfTypeVariableMirror()._check(this.noSuchMethod(new dart.InvocationImpl('typeVariables', [], {isGetter: true})));
+  }
+  isSubclassOf(...args) {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSubclassOf', args, {isMethod: true})));
+  }
+  get isAbstract() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isAbstract', [], {isGetter: true})));
+  }
+  get instanceMembers() {
+    return MapOfSymbol$MethodMirror()._check(this.noSuchMethod(new dart.InvocationImpl('instanceMembers', [], {isGetter: true})));
+  }
+  get staticMembers() {
+    return MapOfSymbol$MethodMirror()._check(this.noSuchMethod(new dart.InvocationImpl('staticMembers', [], {isGetter: true})));
+  }
+};
+dart.defineNamedConstructor(_js_mirrors.JsClassMirror, '_');
+_js_mirrors.JsClassMirror[dart.implements] = () => [mirrors.ClassMirror];
+dart.setSignature(_js_mirrors.JsClassMirror, {
+  constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsClassMirror, [core.Type])}),
+  fields: () => ({
+    [_cls]: core.Type,
+    simpleName: core.Symbol,
+    [_raw]: dart.dynamic,
+    [_mixin]: mirrors.ClassMirror,
+    [_typeArguments]: ListOfTypeMirror(),
+    [_metadata$]: ListOfInstanceMirror(),
+    [_declarations]: MapOfSymbol$DeclarationMirror()
+  }),
+  getters: () => ({
+    metadata: dart.definiteFunctionType(core.List$(mirrors.InstanceMirror), []),
+    declarations: dart.definiteFunctionType(core.Map$(core.Symbol, mirrors.DeclarationMirror), []),
+    superinterfaces: dart.definiteFunctionType(core.List$(mirrors.ClassMirror), []),
+    hasReflectedType: dart.definiteFunctionType(core.bool, []),
+    reflectedType: dart.definiteFunctionType(core.Type, []),
+    isOriginalDeclaration: dart.definiteFunctionType(core.bool, []),
+    typeArguments: dart.definiteFunctionType(core.List$(mirrors.TypeMirror), []),
+    originalDeclaration: dart.definiteFunctionType(mirrors.TypeMirror, []),
+    superclass: dart.definiteFunctionType(mirrors.ClassMirror, []),
+    mixin: dart.definiteFunctionType(mirrors.ClassMirror, [])
+  }),
+  methods: () => ({
+    newInstance: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()]),
+    getField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol]),
+    setField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.Object]),
+    invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])
+  })
+});
+const _symbol = Symbol('_symbol');
+const _name$0 = Symbol('_name');
+_js_mirrors.JsVariableMirror = class JsVariableMirror extends _js_mirrors.JsMirror {
+  get simpleName() {
+    return this[_symbol];
+  }
+  _(symbol, t, annotations) {
+    this[_symbol] = symbol;
+    this[_name$0] = _js_mirrors.getName(symbol);
+    this.type = _js_mirrors.reflectType(t);
+    this.metadata = ListOfInstanceMirror().unmodifiable(annotations[dartx.map](mirrors.InstanceMirror)(dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror())));
+    this.isStatic = false;
+    this.isFinal = false;
+  }
+  toString() {
+    return dart.str`VariableMirror on '${this[_name$0]}'`;
+  }
+  get qualifiedName() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
+  }
+  get owner() {
+    return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
+  }
+  get isPrivate() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
+  }
+  get isTopLevel() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
+  }
+  get location() {
+    return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
+  }
+  get isConst() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isConst', [], {isGetter: true})));
+  }
+};
+dart.defineNamedConstructor(_js_mirrors.JsVariableMirror, '_');
+_js_mirrors.JsVariableMirror[dart.implements] = () => [mirrors.VariableMirror];
+dart.setSignature(_js_mirrors.JsVariableMirror, {
+  constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsVariableMirror, [core.Symbol, core.Type, core.List])}),
+  fields: () => ({
+    [_symbol]: core.Symbol,
+    [_name$0]: core.String,
+    type: mirrors.TypeMirror,
+    metadata: ListOfInstanceMirror(),
+    isStatic: core.bool,
+    isFinal: core.bool
+  }),
+  getters: () => ({simpleName: dart.definiteFunctionType(core.Symbol, [])})
+});
+_js_mirrors.JsParameterMirror = class JsParameterMirror extends _js_mirrors.JsVariableMirror {
+  _(member, t, annotations) {
+    super._(member, t, annotations);
+  }
+  toString() {
+    return dart.str`ParameterMirror on '${this[_name$0]}'`;
+  }
+  get qualifiedName() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
+  }
+  get owner() {
+    return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
+  }
+  get isPrivate() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isPrivate', [], {isGetter: true})));
+  }
+  get isTopLevel() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
+  }
+  get location() {
+    return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
+  }
+  get isConst() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isConst', [], {isGetter: true})));
+  }
+  get isOptional() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isOptional', [], {isGetter: true})));
+  }
+  get isNamed() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isNamed', [], {isGetter: true})));
+  }
+  get hasDefaultValue() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('hasDefaultValue', [], {isGetter: true})));
+  }
+  get defaultValue() {
+    return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('defaultValue', [], {isGetter: true})));
+  }
+};
+dart.defineNamedConstructor(_js_mirrors.JsParameterMirror, '_');
+_js_mirrors.JsParameterMirror[dart.implements] = () => [mirrors.ParameterMirror];
+dart.setSignature(_js_mirrors.JsParameterMirror, {
+  constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsParameterMirror, [core.Symbol, core.Type, core.List])})
+});
+const _params = Symbol('_params');
+const _createParameterMirrorList = Symbol('_createParameterMirrorList');
+let const$2;
+let const$3;
+let const$4;
+_js_mirrors.JsMethodMirror = class JsMethodMirror extends _js_mirrors.JsMirror {
+  get isSetter() {
+    return this[_name$0][dartx.endsWith]('=');
+  }
+  get isPrivate() {
+    return this[_name$0][dartx.startsWith]('_');
+  }
+  get simpleName() {
+    return this[_symbol];
+  }
+  _constructor(cls, symbol, ftype) {
+    this[_symbol] = symbol;
+    this[_name$0] = _js_mirrors.getName(symbol);
+    this.isConstructor = true;
+    this.isStatic = false;
+    this[_params] = null;
+    this[_metadata$] = null;
+    this.isFinal = false;
+    this[_createParameterMirrorList](ftype);
+  }
+  _instanceMethod(cls, symbol, ftype) {
+    this[_symbol] = symbol;
+    this[_name$0] = _js_mirrors.getName(symbol);
+    this.isConstructor = false;
+    this.isStatic = false;
+    this[_params] = null;
+    this[_metadata$] = null;
+    this.isFinal = false;
+    this[_createParameterMirrorList](ftype);
+  }
+  _staticMethod(cls, symbol, ftype) {
+    this[_symbol] = symbol;
+    this[_name$0] = _js_mirrors.getName(symbol);
+    this.isConstructor = false;
+    this.isStatic = true;
+    this[_params] = null;
+    this[_metadata$] = null;
+    this.isFinal = false;
+    this[_createParameterMirrorList](ftype);
+  }
+  get constructorName() {
+    return dart.test(this.isConstructor) ? this[_symbol] : null;
+  }
+  get parameters() {
+    return this[_params];
+  }
+  get metadata() {
+    return this[_metadata$];
+  }
+  [_createParameterMirrorList](ftype) {
+    if (ftype == null) {
+      this[_params] = const$2 || (const$2 = dart.constList([], mirrors.ParameterMirror));
+      this[_metadata$] = const$3 || (const$3 = dart.constList([], mirrors.InstanceMirror));
+      return;
+    }
+    if (!core.Function.is(ftype) && core.List.is(ftype)) {
+      this[_metadata$] = ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dsend(ftype, 'skip', 1), 'map', dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror()))));
+      ftype = dart.dindex(ftype, 0);
+    } else {
+      this[_metadata$] = const$4 || (const$4 = dart.constList([], mirrors.InstanceMirror));
+    }
+    if (typeof ftype == "function") {
+      ftype = ftype.apply(null, JSArrayOfType().of([dart.dynamic, dart.dynamic, dart.dynamic]));
+    }
+    let args = core.List._check(dart.dload(ftype, 'args'));
+    let opts = core.List._check(dart.dload(ftype, 'optionals'));
+    let params = ListOfParameterMirror().new(dart.notNull(args[dartx.length]) + dart.notNull(opts[dartx.length]));
+    for (let i = 0; i < dart.notNull(args[dartx.length]); ++i) {
+      let type = args[dartx._get](i);
+      let metadata = dart.dindex(dart.dload(ftype, 'metadata'), i);
+      let param = new _js_mirrors.JsParameterMirror._(core.Symbol.new(''), core.Type._check(_js_mirrors._wrap(type)), core.List._check(metadata));
+      params[dartx._set](i, param);
+    }
+    for (let i = 0; i < dart.notNull(opts[dartx.length]); ++i) {
+      let type = opts[dartx._get](i);
+      let metadata = dart.dindex(dart.dload(ftype, 'metadata'), dart.notNull(args[dartx.length]) + i);
+      let param = new _js_mirrors.JsParameterMirror._(core.Symbol.new(''), core.Type._check(_js_mirrors._wrap(type)), core.List._check(metadata));
+      params[dartx._set](i + dart.notNull(args[dartx.length]), param);
+    }
+    this[_params] = ListOfParameterMirror().unmodifiable(params);
+  }
+  toString() {
+    return dart.str`MethodMirror on '${this[_name$0]}'`;
+  }
+  get qualifiedName() {
+    return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
+  }
+  get owner() {
+    return mirrors.DeclarationMirror._check(this.noSuchMethod(new dart.InvocationImpl('owner', [], {isGetter: true})));
+  }
+  get isTopLevel() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isTopLevel', [], {isGetter: true})));
+  }
+  get location() {
+    return mirrors.SourceLocation._check(this.noSuchMethod(new dart.InvocationImpl('location', [], {isGetter: true})));
+  }
+  get returnType() {
+    return mirrors.TypeMirror._check(this.noSuchMethod(new dart.InvocationImpl('returnType', [], {isGetter: true})));
+  }
+  get source() {
+    return core.String._check(this.noSuchMethod(new dart.InvocationImpl('source', [], {isGetter: true})));
+  }
+  get isAbstract() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isAbstract', [], {isGetter: true})));
+  }
+  get isSynthetic() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSynthetic', [], {isGetter: true})));
+  }
+  get isRegularMethod() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isRegularMethod', [], {isGetter: true})));
+  }
+  get isOperator() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isOperator', [], {isGetter: true})));
+  }
+  get isGetter() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isGetter', [], {isGetter: true})));
+  }
+  get isConstConstructor() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isConstConstructor', [], {isGetter: true})));
+  }
+  get isGenerativeConstructor() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isGenerativeConstructor', [], {isGetter: true})));
+  }
+  get isRedirectingConstructor() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isRedirectingConstructor', [], {isGetter: true})));
+  }
+  get isFactoryConstructor() {
+    return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isFactoryConstructor', [], {isGetter: true})));
+  }
+};
+dart.defineNamedConstructor(_js_mirrors.JsMethodMirror, '_constructor');
+dart.defineNamedConstructor(_js_mirrors.JsMethodMirror, '_instanceMethod');
+dart.defineNamedConstructor(_js_mirrors.JsMethodMirror, '_staticMethod');
+_js_mirrors.JsMethodMirror[dart.implements] = () => [mirrors.MethodMirror];
+dart.setSignature(_js_mirrors.JsMethodMirror, {
+  constructors: () => ({
+    _constructor: dart.definiteFunctionType(_js_mirrors.JsMethodMirror, [_js_mirrors.JsClassMirror, core.Symbol, dart.dynamic]),
+    _instanceMethod: dart.definiteFunctionType(_js_mirrors.JsMethodMirror, [_js_mirrors.JsClassMirror, core.Symbol, dart.dynamic]),
+    _staticMethod: dart.definiteFunctionType(_js_mirrors.JsMethodMirror, [_js_mirrors.JsClassMirror, core.Symbol, dart.dynamic])
+  }),
+  fields: () => ({
+    [_symbol]: core.Symbol,
+    [_name$0]: core.String,
+    [_params]: ListOfParameterMirror(),
+    [_metadata$]: ListOfInstanceMirror(),
+    isConstructor: core.bool,
+    isStatic: core.bool,
+    isFinal: core.bool
+  }),
+  getters: () => ({
+    isSetter: dart.definiteFunctionType(core.bool, []),
+    isPrivate: dart.definiteFunctionType(core.bool, []),
+    simpleName: dart.definiteFunctionType(core.Symbol, []),
+    constructorName: dart.definiteFunctionType(core.Symbol, []),
+    parameters: dart.definiteFunctionType(core.List$(mirrors.ParameterMirror), []),
+    metadata: dart.definiteFunctionType(core.List$(mirrors.InstanceMirror), [])
+  }),
+  methods: () => ({[_createParameterMirrorList]: dart.definiteFunctionType(dart.void, [dart.dynamic])})
+});
+_js_primitives.printString = function(string) {
+  if (typeof dartPrint == "function") {
+    dartPrint(string);
+    return;
+  }
+  if (typeof console == "object" && typeof console.log != "undefined") {
+    console.log(string);
+    return;
+  }
+  if (typeof window == "object") {
+    return;
+  }
+  if (typeof print == "function") {
+    print(string);
+    return;
+  }
+  throw "Unable to print message: " + String(string);
+};
+dart.lazyFn(_js_primitives.printString, () => StringTovoid$());
+_metadata.SupportedBrowser = class SupportedBrowser extends core.Object {
+  new(browserName, minimumVersion) {
+    if (minimumVersion === void 0) minimumVersion = null;
+    this.browserName = browserName;
+    this.minimumVersion = minimumVersion;
+  }
+};
+dart.setSignature(_metadata.SupportedBrowser, {
+  constructors: () => ({new: dart.definiteFunctionType(_metadata.SupportedBrowser, [core.String], [core.String])}),
+  fields: () => ({
+    browserName: core.String,
+    minimumVersion: core.String
+  }),
+  sfields: () => ({
+    CHROME: core.String,
+    FIREFOX: core.String,
+    IE: core.String,
+    OPERA: core.String,
+    SAFARI: core.String
+  })
+});
+_metadata.SupportedBrowser.CHROME = "Chrome";
+_metadata.SupportedBrowser.FIREFOX = "Firefox";
+_metadata.SupportedBrowser.IE = "Internet Explorer";
+_metadata.SupportedBrowser.OPERA = "Opera";
+_metadata.SupportedBrowser.SAFARI = "Safari";
+_metadata.Experimental = class Experimental extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_metadata.Experimental, {
+  constructors: () => ({new: dart.definiteFunctionType(_metadata.Experimental, [])})
+});
+_metadata.DomName = class DomName extends core.Object {
+  new(name) {
+    this.name = name;
+  }
+};
+dart.setSignature(_metadata.DomName, {
+  constructors: () => ({new: dart.definiteFunctionType(_metadata.DomName, [core.String])}),
+  fields: () => ({name: core.String})
+});
+_metadata.DocsEditable = class DocsEditable extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_metadata.DocsEditable, {
+  constructors: () => ({new: dart.definiteFunctionType(_metadata.DocsEditable, [])})
+});
+_metadata.Unstable = class Unstable extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(_metadata.Unstable, {
+  constructors: () => ({new: dart.definiteFunctionType(_metadata.Unstable, [])})
+});
+dart.defineExtensionNames([
+  'lengthInBytes',
+  'runtimeType',
+  'asUint8List',
+  'asInt8List',
+  'asUint8ClampedList',
+  'asUint16List',
+  'asInt16List',
+  'asUint32List',
+  'asInt32List',
+  'asUint64List',
+  'asInt64List',
+  'asInt32x4List',
+  'asFloat32List',
+  'asFloat64List',
+  'asFloat32x4List',
+  'asFloat64x2List',
+  'asByteData'
+]);
+_native_typed_data.NativeByteBuffer = class NativeByteBuffer extends core.Object {
+  get [dartx.lengthInBytes]() {
+    return this.byteLength;
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.ByteBuffer);
+  }
+  [dartx.asUint8List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeUint8List.view(this, offsetInBytes, length);
+  }
+  [dartx.asInt8List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeInt8List.view(this, offsetInBytes, length);
+  }
+  [dartx.asUint8ClampedList](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeUint8ClampedList.view(this, offsetInBytes, length);
+  }
+  [dartx.asUint16List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeUint16List.view(this, offsetInBytes, length);
+  }
+  [dartx.asInt16List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeInt16List.view(this, offsetInBytes, length);
+  }
+  [dartx.asUint32List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeUint32List.view(this, offsetInBytes, length);
+  }
+  [dartx.asInt32List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeInt32List.view(this, offsetInBytes, length);
+  }
+  [dartx.asUint64List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    dart.throw(new core.UnsupportedError("Uint64List not supported by dart2js."));
+  }
+  [dartx.asInt64List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    dart.throw(new core.UnsupportedError("Int64List not supported by dart2js."));
+  }
+  [dartx.asInt32x4List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    let storage = _native_typed_data.NativeInt32List._check(this[dartx.asInt32List](offsetInBytes, length != null ? dart.notNull(length) * 4 : null));
+    return new _native_typed_data.NativeInt32x4List._externalStorage(storage);
+  }
+  [dartx.asFloat32List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeFloat32List.view(this, offsetInBytes, length);
+  }
+  [dartx.asFloat64List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeFloat64List.view(this, offsetInBytes, length);
+  }
+  [dartx.asFloat32x4List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    let storage = _native_typed_data.NativeFloat32List._check(this[dartx.asFloat32List](offsetInBytes, length != null ? dart.notNull(length) * 4 : null));
+    return new _native_typed_data.NativeFloat32x4List._externalStorage(storage);
+  }
+  [dartx.asFloat64x2List](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    let storage = _native_typed_data.NativeFloat64List._check(this[dartx.asFloat64List](offsetInBytes, length != null ? dart.notNull(length) * 2 : null));
+    return new _native_typed_data.NativeFloat64x2List._externalStorage(storage);
+  }
+  [dartx.asByteData](offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return _native_typed_data.NativeByteData.view(this, offsetInBytes, length);
+  }
+};
+_native_typed_data.NativeByteBuffer[dart.implements] = () => [typed_data.ByteBuffer];
+dart.setSignature(_native_typed_data.NativeByteBuffer, {
+  getters: () => ({[dartx.lengthInBytes]: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    [dartx.asUint8List]: dart.definiteFunctionType(typed_data.Uint8List, [], [core.int, core.int]),
+    [dartx.asInt8List]: dart.definiteFunctionType(typed_data.Int8List, [], [core.int, core.int]),
+    [dartx.asUint8ClampedList]: dart.definiteFunctionType(typed_data.Uint8ClampedList, [], [core.int, core.int]),
+    [dartx.asUint16List]: dart.definiteFunctionType(typed_data.Uint16List, [], [core.int, core.int]),
+    [dartx.asInt16List]: dart.definiteFunctionType(typed_data.Int16List, [], [core.int, core.int]),
+    [dartx.asUint32List]: dart.definiteFunctionType(typed_data.Uint32List, [], [core.int, core.int]),
+    [dartx.asInt32List]: dart.definiteFunctionType(typed_data.Int32List, [], [core.int, core.int]),
+    [dartx.asUint64List]: dart.definiteFunctionType(typed_data.Uint64List, [], [core.int, core.int]),
+    [dartx.asInt64List]: dart.definiteFunctionType(typed_data.Int64List, [], [core.int, core.int]),
+    [dartx.asInt32x4List]: dart.definiteFunctionType(typed_data.Int32x4List, [], [core.int, core.int]),
+    [dartx.asFloat32List]: dart.definiteFunctionType(typed_data.Float32List, [], [core.int, core.int]),
+    [dartx.asFloat64List]: dart.definiteFunctionType(typed_data.Float64List, [], [core.int, core.int]),
+    [dartx.asFloat32x4List]: dart.definiteFunctionType(typed_data.Float32x4List, [], [core.int, core.int]),
+    [dartx.asFloat64x2List]: dart.definiteFunctionType(typed_data.Float64x2List, [], [core.int, core.int]),
+    [dartx.asByteData]: dart.definiteFunctionType(typed_data.ByteData, [], [core.int, core.int])
+  })
+});
+dart.registerExtension(dart.global.ArrayBuffer, _native_typed_data.NativeByteBuffer);
+const _storage = Symbol('_storage');
+typed_data.Float32x4 = class Float32x4 extends core.Object {
+  static new(x, y, z, w) {
+    return new _native_typed_data.NativeFloat32x4(x, y, z, w);
+  }
+  static splat(v) {
+    return new _native_typed_data.NativeFloat32x4.splat(v);
+  }
+  static zero() {
+    return new _native_typed_data.NativeFloat32x4.zero();
+  }
+  static fromInt32x4Bits(x) {
+    return _native_typed_data.NativeFloat32x4.fromInt32x4Bits(x);
+  }
+  static fromFloat64x2(v) {
+    return new _native_typed_data.NativeFloat32x4.fromFloat64x2(v);
+  }
+};
+dart.setSignature(typed_data.Float32x4, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Float32x4, [core.double, core.double, core.double, core.double]),
+    splat: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
+    zero: dart.definiteFunctionType(typed_data.Float32x4, []),
+    fromInt32x4Bits: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Int32x4]),
+    fromFloat64x2: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float64x2])
+  }),
+  sfields: () => ({
+    XXXX: core.int,
+    XXXY: core.int,
+    XXXZ: core.int,
+    XXXW: core.int,
+    XXYX: core.int,
+    XXYY: core.int,
+    XXYZ: core.int,
+    XXYW: core.int,
+    XXZX: core.int,
+    XXZY: core.int,
+    XXZZ: core.int,
+    XXZW: core.int,
+    XXWX: core.int,
+    XXWY: core.int,
+    XXWZ: core.int,
+    XXWW: core.int,
+    XYXX: core.int,
+    XYXY: core.int,
+    XYXZ: core.int,
+    XYXW: core.int,
+    XYYX: core.int,
+    XYYY: core.int,
+    XYYZ: core.int,
+    XYYW: core.int,
+    XYZX: core.int,
+    XYZY: core.int,
+    XYZZ: core.int,
+    XYZW: core.int,
+    XYWX: core.int,
+    XYWY: core.int,
+    XYWZ: core.int,
+    XYWW: core.int,
+    XZXX: core.int,
+    XZXY: core.int,
+    XZXZ: core.int,
+    XZXW: core.int,
+    XZYX: core.int,
+    XZYY: core.int,
+    XZYZ: core.int,
+    XZYW: core.int,
+    XZZX: core.int,
+    XZZY: core.int,
+    XZZZ: core.int,
+    XZZW: core.int,
+    XZWX: core.int,
+    XZWY: core.int,
+    XZWZ: core.int,
+    XZWW: core.int,
+    XWXX: core.int,
+    XWXY: core.int,
+    XWXZ: core.int,
+    XWXW: core.int,
+    XWYX: core.int,
+    XWYY: core.int,
+    XWYZ: core.int,
+    XWYW: core.int,
+    XWZX: core.int,
+    XWZY: core.int,
+    XWZZ: core.int,
+    XWZW: core.int,
+    XWWX: core.int,
+    XWWY: core.int,
+    XWWZ: core.int,
+    XWWW: core.int,
+    YXXX: core.int,
+    YXXY: core.int,
+    YXXZ: core.int,
+    YXXW: core.int,
+    YXYX: core.int,
+    YXYY: core.int,
+    YXYZ: core.int,
+    YXYW: core.int,
+    YXZX: core.int,
+    YXZY: core.int,
+    YXZZ: core.int,
+    YXZW: core.int,
+    YXWX: core.int,
+    YXWY: core.int,
+    YXWZ: core.int,
+    YXWW: core.int,
+    YYXX: core.int,
+    YYXY: core.int,
+    YYXZ: core.int,
+    YYXW: core.int,
+    YYYX: core.int,
+    YYYY: core.int,
+    YYYZ: core.int,
+    YYYW: core.int,
+    YYZX: core.int,
+    YYZY: core.int,
+    YYZZ: core.int,
+    YYZW: core.int,
+    YYWX: core.int,
+    YYWY: core.int,
+    YYWZ: core.int,
+    YYWW: core.int,
+    YZXX: core.int,
+    YZXY: core.int,
+    YZXZ: core.int,
+    YZXW: core.int,
+    YZYX: core.int,
+    YZYY: core.int,
+    YZYZ: core.int,
+    YZYW: core.int,
+    YZZX: core.int,
+    YZZY: core.int,
+    YZZZ: core.int,
+    YZZW: core.int,
+    YZWX: core.int,
+    YZWY: core.int,
+    YZWZ: core.int,
+    YZWW: core.int,
+    YWXX: core.int,
+    YWXY: core.int,
+    YWXZ: core.int,
+    YWXW: core.int,
+    YWYX: core.int,
+    YWYY: core.int,
+    YWYZ: core.int,
+    YWYW: core.int,
+    YWZX: core.int,
+    YWZY: core.int,
+    YWZZ: core.int,
+    YWZW: core.int,
+    YWWX: core.int,
+    YWWY: core.int,
+    YWWZ: core.int,
+    YWWW: core.int,
+    ZXXX: core.int,
+    ZXXY: core.int,
+    ZXXZ: core.int,
+    ZXXW: core.int,
+    ZXYX: core.int,
+    ZXYY: core.int,
+    ZXYZ: core.int,
+    ZXYW: core.int,
+    ZXZX: core.int,
+    ZXZY: core.int,
+    ZXZZ: core.int,
+    ZXZW: core.int,
+    ZXWX: core.int,
+    ZXWY: core.int,
+    ZXWZ: core.int,
+    ZXWW: core.int,
+    ZYXX: core.int,
+    ZYXY: core.int,
+    ZYXZ: core.int,
+    ZYXW: core.int,
+    ZYYX: core.int,
+    ZYYY: core.int,
+    ZYYZ: core.int,
+    ZYYW: core.int,
+    ZYZX: core.int,
+    ZYZY: core.int,
+    ZYZZ: core.int,
+    ZYZW: core.int,
+    ZYWX: core.int,
+    ZYWY: core.int,
+    ZYWZ: core.int,
+    ZYWW: core.int,
+    ZZXX: core.int,
+    ZZXY: core.int,
+    ZZXZ: core.int,
+    ZZXW: core.int,
+    ZZYX: core.int,
+    ZZYY: core.int,
+    ZZYZ: core.int,
+    ZZYW: core.int,
+    ZZZX: core.int,
+    ZZZY: core.int,
+    ZZZZ: core.int,
+    ZZZW: core.int,
+    ZZWX: core.int,
+    ZZWY: core.int,
+    ZZWZ: core.int,
+    ZZWW: core.int,
+    ZWXX: core.int,
+    ZWXY: core.int,
+    ZWXZ: core.int,
+    ZWXW: core.int,
+    ZWYX: core.int,
+    ZWYY: core.int,
+    ZWYZ: core.int,
+    ZWYW: core.int,
+    ZWZX: core.int,
+    ZWZY: core.int,
+    ZWZZ: core.int,
+    ZWZW: core.int,
+    ZWWX: core.int,
+    ZWWY: core.int,
+    ZWWZ: core.int,
+    ZWWW: core.int,
+    WXXX: core.int,
+    WXXY: core.int,
+    WXXZ: core.int,
+    WXXW: core.int,
+    WXYX: core.int,
+    WXYY: core.int,
+    WXYZ: core.int,
+    WXYW: core.int,
+    WXZX: core.int,
+    WXZY: core.int,
+    WXZZ: core.int,
+    WXZW: core.int,
+    WXWX: core.int,
+    WXWY: core.int,
+    WXWZ: core.int,
+    WXWW: core.int,
+    WYXX: core.int,
+    WYXY: core.int,
+    WYXZ: core.int,
+    WYXW: core.int,
+    WYYX: core.int,
+    WYYY: core.int,
+    WYYZ: core.int,
+    WYYW: core.int,
+    WYZX: core.int,
+    WYZY: core.int,
+    WYZZ: core.int,
+    WYZW: core.int,
+    WYWX: core.int,
+    WYWY: core.int,
+    WYWZ: core.int,
+    WYWW: core.int,
+    WZXX: core.int,
+    WZXY: core.int,
+    WZXZ: core.int,
+    WZXW: core.int,
+    WZYX: core.int,
+    WZYY: core.int,
+    WZYZ: core.int,
+    WZYW: core.int,
+    WZZX: core.int,
+    WZZY: core.int,
+    WZZZ: core.int,
+    WZZW: core.int,
+    WZWX: core.int,
+    WZWY: core.int,
+    WZWZ: core.int,
+    WZWW: core.int,
+    WWXX: core.int,
+    WWXY: core.int,
+    WWXZ: core.int,
+    WWXW: core.int,
+    WWYX: core.int,
+    WWYY: core.int,
+    WWYZ: core.int,
+    WWYW: core.int,
+    WWZX: core.int,
+    WWZY: core.int,
+    WWZZ: core.int,
+    WWZW: core.int,
+    WWWX: core.int,
+    WWWY: core.int,
+    WWWZ: core.int,
+    WWWW: core.int
+  })
+});
+typed_data.Float32x4.XXXX = 0;
+typed_data.Float32x4.XXXY = 64;
+typed_data.Float32x4.XXXZ = 128;
+typed_data.Float32x4.XXXW = 192;
+typed_data.Float32x4.XXYX = 16;
+typed_data.Float32x4.XXYY = 80;
+typed_data.Float32x4.XXYZ = 144;
+typed_data.Float32x4.XXYW = 208;
+typed_data.Float32x4.XXZX = 32;
+typed_data.Float32x4.XXZY = 96;
+typed_data.Float32x4.XXZZ = 160;
+typed_data.Float32x4.XXZW = 224;
+typed_data.Float32x4.XXWX = 48;
+typed_data.Float32x4.XXWY = 112;
+typed_data.Float32x4.XXWZ = 176;
+typed_data.Float32x4.XXWW = 240;
+typed_data.Float32x4.XYXX = 4;
+typed_data.Float32x4.XYXY = 68;
+typed_data.Float32x4.XYXZ = 132;
+typed_data.Float32x4.XYXW = 196;
+typed_data.Float32x4.XYYX = 20;
+typed_data.Float32x4.XYYY = 84;
+typed_data.Float32x4.XYYZ = 148;
+typed_data.Float32x4.XYYW = 212;
+typed_data.Float32x4.XYZX = 36;
+typed_data.Float32x4.XYZY = 100;
+typed_data.Float32x4.XYZZ = 164;
+typed_data.Float32x4.XYZW = 228;
+typed_data.Float32x4.XYWX = 52;
+typed_data.Float32x4.XYWY = 116;
+typed_data.Float32x4.XYWZ = 180;
+typed_data.Float32x4.XYWW = 244;
+typed_data.Float32x4.XZXX = 8;
+typed_data.Float32x4.XZXY = 72;
+typed_data.Float32x4.XZXZ = 136;
+typed_data.Float32x4.XZXW = 200;
+typed_data.Float32x4.XZYX = 24;
+typed_data.Float32x4.XZYY = 88;
+typed_data.Float32x4.XZYZ = 152;
+typed_data.Float32x4.XZYW = 216;
+typed_data.Float32x4.XZZX = 40;
+typed_data.Float32x4.XZZY = 104;
+typed_data.Float32x4.XZZZ = 168;
+typed_data.Float32x4.XZZW = 232;
+typed_data.Float32x4.XZWX = 56;
+typed_data.Float32x4.XZWY = 120;
+typed_data.Float32x4.XZWZ = 184;
+typed_data.Float32x4.XZWW = 248;
+typed_data.Float32x4.XWXX = 12;
+typed_data.Float32x4.XWXY = 76;
+typed_data.Float32x4.XWXZ = 140;
+typed_data.Float32x4.XWXW = 204;
+typed_data.Float32x4.XWYX = 28;
+typed_data.Float32x4.XWYY = 92;
+typed_data.Float32x4.XWYZ = 156;
+typed_data.Float32x4.XWYW = 220;
+typed_data.Float32x4.XWZX = 44;
+typed_data.Float32x4.XWZY = 108;
+typed_data.Float32x4.XWZZ = 172;
+typed_data.Float32x4.XWZW = 236;
+typed_data.Float32x4.XWWX = 60;
+typed_data.Float32x4.XWWY = 124;
+typed_data.Float32x4.XWWZ = 188;
+typed_data.Float32x4.XWWW = 252;
+typed_data.Float32x4.YXXX = 1;
+typed_data.Float32x4.YXXY = 65;
+typed_data.Float32x4.YXXZ = 129;
+typed_data.Float32x4.YXXW = 193;
+typed_data.Float32x4.YXYX = 17;
+typed_data.Float32x4.YXYY = 81;
+typed_data.Float32x4.YXYZ = 145;
+typed_data.Float32x4.YXYW = 209;
+typed_data.Float32x4.YXZX = 33;
+typed_data.Float32x4.YXZY = 97;
+typed_data.Float32x4.YXZZ = 161;
+typed_data.Float32x4.YXZW = 225;
+typed_data.Float32x4.YXWX = 49;
+typed_data.Float32x4.YXWY = 113;
+typed_data.Float32x4.YXWZ = 177;
+typed_data.Float32x4.YXWW = 241;
+typed_data.Float32x4.YYXX = 5;
+typed_data.Float32x4.YYXY = 69;
+typed_data.Float32x4.YYXZ = 133;
+typed_data.Float32x4.YYXW = 197;
+typed_data.Float32x4.YYYX = 21;
+typed_data.Float32x4.YYYY = 85;
+typed_data.Float32x4.YYYZ = 149;
+typed_data.Float32x4.YYYW = 213;
+typed_data.Float32x4.YYZX = 37;
+typed_data.Float32x4.YYZY = 101;
+typed_data.Float32x4.YYZZ = 165;
+typed_data.Float32x4.YYZW = 229;
+typed_data.Float32x4.YYWX = 53;
+typed_data.Float32x4.YYWY = 117;
+typed_data.Float32x4.YYWZ = 181;
+typed_data.Float32x4.YYWW = 245;
+typed_data.Float32x4.YZXX = 9;
+typed_data.Float32x4.YZXY = 73;
+typed_data.Float32x4.YZXZ = 137;
+typed_data.Float32x4.YZXW = 201;
+typed_data.Float32x4.YZYX = 25;
+typed_data.Float32x4.YZYY = 89;
+typed_data.Float32x4.YZYZ = 153;
+typed_data.Float32x4.YZYW = 217;
+typed_data.Float32x4.YZZX = 41;
+typed_data.Float32x4.YZZY = 105;
+typed_data.Float32x4.YZZZ = 169;
+typed_data.Float32x4.YZZW = 233;
+typed_data.Float32x4.YZWX = 57;
+typed_data.Float32x4.YZWY = 121;
+typed_data.Float32x4.YZWZ = 185;
+typed_data.Float32x4.YZWW = 249;
+typed_data.Float32x4.YWXX = 13;
+typed_data.Float32x4.YWXY = 77;
+typed_data.Float32x4.YWXZ = 141;
+typed_data.Float32x4.YWXW = 205;
+typed_data.Float32x4.YWYX = 29;
+typed_data.Float32x4.YWYY = 93;
+typed_data.Float32x4.YWYZ = 157;
+typed_data.Float32x4.YWYW = 221;
+typed_data.Float32x4.YWZX = 45;
+typed_data.Float32x4.YWZY = 109;
+typed_data.Float32x4.YWZZ = 173;
+typed_data.Float32x4.YWZW = 237;
+typed_data.Float32x4.YWWX = 61;
+typed_data.Float32x4.YWWY = 125;
+typed_data.Float32x4.YWWZ = 189;
+typed_data.Float32x4.YWWW = 253;
+typed_data.Float32x4.ZXXX = 2;
+typed_data.Float32x4.ZXXY = 66;
+typed_data.Float32x4.ZXXZ = 130;
+typed_data.Float32x4.ZXXW = 194;
+typed_data.Float32x4.ZXYX = 18;
+typed_data.Float32x4.ZXYY = 82;
+typed_data.Float32x4.ZXYZ = 146;
+typed_data.Float32x4.ZXYW = 210;
+typed_data.Float32x4.ZXZX = 34;
+typed_data.Float32x4.ZXZY = 98;
+typed_data.Float32x4.ZXZZ = 162;
+typed_data.Float32x4.ZXZW = 226;
+typed_data.Float32x4.ZXWX = 50;
+typed_data.Float32x4.ZXWY = 114;
+typed_data.Float32x4.ZXWZ = 178;
+typed_data.Float32x4.ZXWW = 242;
+typed_data.Float32x4.ZYXX = 6;
+typed_data.Float32x4.ZYXY = 70;
+typed_data.Float32x4.ZYXZ = 134;
+typed_data.Float32x4.ZYXW = 198;
+typed_data.Float32x4.ZYYX = 22;
+typed_data.Float32x4.ZYYY = 86;
+typed_data.Float32x4.ZYYZ = 150;
+typed_data.Float32x4.ZYYW = 214;
+typed_data.Float32x4.ZYZX = 38;
+typed_data.Float32x4.ZYZY = 102;
+typed_data.Float32x4.ZYZZ = 166;
+typed_data.Float32x4.ZYZW = 230;
+typed_data.Float32x4.ZYWX = 54;
+typed_data.Float32x4.ZYWY = 118;
+typed_data.Float32x4.ZYWZ = 182;
+typed_data.Float32x4.ZYWW = 246;
+typed_data.Float32x4.ZZXX = 10;
+typed_data.Float32x4.ZZXY = 74;
+typed_data.Float32x4.ZZXZ = 138;
+typed_data.Float32x4.ZZXW = 202;
+typed_data.Float32x4.ZZYX = 26;
+typed_data.Float32x4.ZZYY = 90;
+typed_data.Float32x4.ZZYZ = 154;
+typed_data.Float32x4.ZZYW = 218;
+typed_data.Float32x4.ZZZX = 42;
+typed_data.Float32x4.ZZZY = 106;
+typed_data.Float32x4.ZZZZ = 170;
+typed_data.Float32x4.ZZZW = 234;
+typed_data.Float32x4.ZZWX = 58;
+typed_data.Float32x4.ZZWY = 122;
+typed_data.Float32x4.ZZWZ = 186;
+typed_data.Float32x4.ZZWW = 250;
+typed_data.Float32x4.ZWXX = 14;
+typed_data.Float32x4.ZWXY = 78;
+typed_data.Float32x4.ZWXZ = 142;
+typed_data.Float32x4.ZWXW = 206;
+typed_data.Float32x4.ZWYX = 30;
+typed_data.Float32x4.ZWYY = 94;
+typed_data.Float32x4.ZWYZ = 158;
+typed_data.Float32x4.ZWYW = 222;
+typed_data.Float32x4.ZWZX = 46;
+typed_data.Float32x4.ZWZY = 110;
+typed_data.Float32x4.ZWZZ = 174;
+typed_data.Float32x4.ZWZW = 238;
+typed_data.Float32x4.ZWWX = 62;
+typed_data.Float32x4.ZWWY = 126;
+typed_data.Float32x4.ZWWZ = 190;
+typed_data.Float32x4.ZWWW = 254;
+typed_data.Float32x4.WXXX = 3;
+typed_data.Float32x4.WXXY = 67;
+typed_data.Float32x4.WXXZ = 131;
+typed_data.Float32x4.WXXW = 195;
+typed_data.Float32x4.WXYX = 19;
+typed_data.Float32x4.WXYY = 83;
+typed_data.Float32x4.WXYZ = 147;
+typed_data.Float32x4.WXYW = 211;
+typed_data.Float32x4.WXZX = 35;
+typed_data.Float32x4.WXZY = 99;
+typed_data.Float32x4.WXZZ = 163;
+typed_data.Float32x4.WXZW = 227;
+typed_data.Float32x4.WXWX = 51;
+typed_data.Float32x4.WXWY = 115;
+typed_data.Float32x4.WXWZ = 179;
+typed_data.Float32x4.WXWW = 243;
+typed_data.Float32x4.WYXX = 7;
+typed_data.Float32x4.WYXY = 71;
+typed_data.Float32x4.WYXZ = 135;
+typed_data.Float32x4.WYXW = 199;
+typed_data.Float32x4.WYYX = 23;
+typed_data.Float32x4.WYYY = 87;
+typed_data.Float32x4.WYYZ = 151;
+typed_data.Float32x4.WYYW = 215;
+typed_data.Float32x4.WYZX = 39;
+typed_data.Float32x4.WYZY = 103;
+typed_data.Float32x4.WYZZ = 167;
+typed_data.Float32x4.WYZW = 231;
+typed_data.Float32x4.WYWX = 55;
+typed_data.Float32x4.WYWY = 119;
+typed_data.Float32x4.WYWZ = 183;
+typed_data.Float32x4.WYWW = 247;
+typed_data.Float32x4.WZXX = 11;
+typed_data.Float32x4.WZXY = 75;
+typed_data.Float32x4.WZXZ = 139;
+typed_data.Float32x4.WZXW = 203;
+typed_data.Float32x4.WZYX = 27;
+typed_data.Float32x4.WZYY = 91;
+typed_data.Float32x4.WZYZ = 155;
+typed_data.Float32x4.WZYW = 219;
+typed_data.Float32x4.WZZX = 43;
+typed_data.Float32x4.WZZY = 107;
+typed_data.Float32x4.WZZZ = 171;
+typed_data.Float32x4.WZZW = 235;
+typed_data.Float32x4.WZWX = 59;
+typed_data.Float32x4.WZWY = 123;
+typed_data.Float32x4.WZWZ = 187;
+typed_data.Float32x4.WZWW = 251;
+typed_data.Float32x4.WWXX = 15;
+typed_data.Float32x4.WWXY = 79;
+typed_data.Float32x4.WWXZ = 143;
+typed_data.Float32x4.WWXW = 207;
+typed_data.Float32x4.WWYX = 31;
+typed_data.Float32x4.WWYY = 95;
+typed_data.Float32x4.WWYZ = 159;
+typed_data.Float32x4.WWYW = 223;
+typed_data.Float32x4.WWZX = 47;
+typed_data.Float32x4.WWZY = 111;
+typed_data.Float32x4.WWZZ = 175;
+typed_data.Float32x4.WWZW = 239;
+typed_data.Float32x4.WWWX = 63;
+typed_data.Float32x4.WWWY = 127;
+typed_data.Float32x4.WWWZ = 191;
+typed_data.Float32x4.WWWW = 255;
+_native_typed_data.NativeFloat32x4List = class NativeFloat32x4List extends dart.mixin(core.Object, collection.ListMixin$(typed_data.Float32x4), _internal.FixedLengthListMixin$(typed_data.Float32x4)) {
+  new(length) {
+    this[_storage] = _native_typed_data.NativeFloat32List.new(dart.notNull(length) * 4);
+  }
+  _externalStorage(storage) {
+    this[_storage] = storage;
+  }
+  _slowFromList(list) {
+    this[_storage] = _native_typed_data.NativeFloat32List.new(dart.notNull(list[dartx.length]) * 4);
+    for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
+      let e = list[dartx._get](i);
+      this[_storage][dartx._set](i * 4 + 0, e.x);
+      this[_storage][dartx._set](i * 4 + 1, e.y);
+      this[_storage][dartx._set](i * 4 + 2, e.z);
+      this[_storage][dartx._set](i * 4 + 3, e.w);
+    }
+  }
+  get runtimeType() {
+    return dart.wrapType(typed_data.Float32x4List);
+  }
+  static fromList(list) {
+    if (_native_typed_data.NativeFloat32x4List.is(list)) {
+      return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List.fromList(list[_storage]));
+    } else {
+      return new _native_typed_data.NativeFloat32x4List._slowFromList(list);
+    }
+  }
+  get buffer() {
+    return this[_storage][dartx.buffer];
+  }
+  get lengthInBytes() {
+    return this[_storage][dartx.lengthInBytes];
+  }
+  get offsetInBytes() {
+    return this[_storage][dartx.offsetInBytes];
+  }
+  get elementSizeInBytes() {
+    return typed_data.Float32x4List.BYTES_PER_ELEMENT;
+  }
+  get length() {
+    return (dart.notNull(this[_storage][dartx.length]) / 4)[dartx.truncate]();
+  }
+  set length(value) {
+    super.length = value;
+  }
+  _get(index) {
+    _native_typed_data._checkValidIndex(index, this, this.length);
+    let _x = this[_storage][dartx._get](dart.notNull(index) * 4 + 0);
+    let _y = this[_storage][dartx._get](dart.notNull(index) * 4 + 1);
+    let _z = this[_storage][dartx._get](dart.notNull(index) * 4 + 2);
+    let _w = this[_storage][dartx._get](dart.notNull(index) * 4 + 3);
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  _set(index, value) {
+    _native_typed_data._checkValidIndex(index, this, this.length);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 0, value.x);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 1, value.y);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 2, value.z);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 3, value.w);
+    return value;
+  }
+  sublist(start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this.length);
+    return new _native_typed_data.NativeFloat32x4List._externalStorage(_native_typed_data.NativeFloat32List._check(this[_storage][dartx.sublist](dart.notNull(start) * 4, dart.notNull(end) * 4)));
+  }
+};
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4List, '_externalStorage');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4List, '_slowFromList');
+_native_typed_data.NativeFloat32x4List[dart.implements] = () => [typed_data.Float32x4List];
+dart.setSignature(_native_typed_data.NativeFloat32x4List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [core.int]),
+    _externalStorage: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [_native_typed_data.NativeFloat32List]),
+    _slowFromList: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [ListOfFloat32x4()]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4List, [ListOfFloat32x4()])
+  }),
+  fields: () => ({[_storage]: _native_typed_data.NativeFloat32List}),
+  getters: () => ({
+    buffer: dart.definiteFunctionType(typed_data.ByteBuffer, []),
+    lengthInBytes: dart.definiteFunctionType(core.int, []),
+    offsetInBytes: dart.definiteFunctionType(core.int, []),
+    elementSizeInBytes: dart.definiteFunctionType(core.int, []),
+    length: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    _get: dart.definiteFunctionType(typed_data.Float32x4, [core.int]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32x4])
+  })
+});
+dart.defineExtensionMembers(_native_typed_data.NativeFloat32x4List, [
+  '_get',
+  '_set',
+  'sublist',
+  'buffer',
+  'lengthInBytes',
+  'offsetInBytes',
+  'elementSizeInBytes',
+  'length'
+]);
+typed_data.Int32x4 = class Int32x4 extends core.Object {
+  static new(x, y, z, w) {
+    return new _native_typed_data.NativeInt32x4(x, y, z, w);
+  }
+  static bool(x, y, z, w) {
+    return new _native_typed_data.NativeInt32x4.bool(x, y, z, w);
+  }
+  static fromFloat32x4Bits(x) {
+    return _native_typed_data.NativeInt32x4.fromFloat32x4Bits(x);
+  }
+};
+dart.setSignature(typed_data.Int32x4, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Int32x4, [core.int, core.int, core.int, core.int]),
+    bool: dart.definiteFunctionType(typed_data.Int32x4, [core.bool, core.bool, core.bool, core.bool]),
+    fromFloat32x4Bits: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4])
+  }),
+  sfields: () => ({
+    XXXX: core.int,
+    XXXY: core.int,
+    XXXZ: core.int,
+    XXXW: core.int,
+    XXYX: core.int,
+    XXYY: core.int,
+    XXYZ: core.int,
+    XXYW: core.int,
+    XXZX: core.int,
+    XXZY: core.int,
+    XXZZ: core.int,
+    XXZW: core.int,
+    XXWX: core.int,
+    XXWY: core.int,
+    XXWZ: core.int,
+    XXWW: core.int,
+    XYXX: core.int,
+    XYXY: core.int,
+    XYXZ: core.int,
+    XYXW: core.int,
+    XYYX: core.int,
+    XYYY: core.int,
+    XYYZ: core.int,
+    XYYW: core.int,
+    XYZX: core.int,
+    XYZY: core.int,
+    XYZZ: core.int,
+    XYZW: core.int,
+    XYWX: core.int,
+    XYWY: core.int,
+    XYWZ: core.int,
+    XYWW: core.int,
+    XZXX: core.int,
+    XZXY: core.int,
+    XZXZ: core.int,
+    XZXW: core.int,
+    XZYX: core.int,
+    XZYY: core.int,
+    XZYZ: core.int,
+    XZYW: core.int,
+    XZZX: core.int,
+    XZZY: core.int,
+    XZZZ: core.int,
+    XZZW: core.int,
+    XZWX: core.int,
+    XZWY: core.int,
+    XZWZ: core.int,
+    XZWW: core.int,
+    XWXX: core.int,
+    XWXY: core.int,
+    XWXZ: core.int,
+    XWXW: core.int,
+    XWYX: core.int,
+    XWYY: core.int,
+    XWYZ: core.int,
+    XWYW: core.int,
+    XWZX: core.int,
+    XWZY: core.int,
+    XWZZ: core.int,
+    XWZW: core.int,
+    XWWX: core.int,
+    XWWY: core.int,
+    XWWZ: core.int,
+    XWWW: core.int,
+    YXXX: core.int,
+    YXXY: core.int,
+    YXXZ: core.int,
+    YXXW: core.int,
+    YXYX: core.int,
+    YXYY: core.int,
+    YXYZ: core.int,
+    YXYW: core.int,
+    YXZX: core.int,
+    YXZY: core.int,
+    YXZZ: core.int,
+    YXZW: core.int,
+    YXWX: core.int,
+    YXWY: core.int,
+    YXWZ: core.int,
+    YXWW: core.int,
+    YYXX: core.int,
+    YYXY: core.int,
+    YYXZ: core.int,
+    YYXW: core.int,
+    YYYX: core.int,
+    YYYY: core.int,
+    YYYZ: core.int,
+    YYYW: core.int,
+    YYZX: core.int,
+    YYZY: core.int,
+    YYZZ: core.int,
+    YYZW: core.int,
+    YYWX: core.int,
+    YYWY: core.int,
+    YYWZ: core.int,
+    YYWW: core.int,
+    YZXX: core.int,
+    YZXY: core.int,
+    YZXZ: core.int,
+    YZXW: core.int,
+    YZYX: core.int,
+    YZYY: core.int,
+    YZYZ: core.int,
+    YZYW: core.int,
+    YZZX: core.int,
+    YZZY: core.int,
+    YZZZ: core.int,
+    YZZW: core.int,
+    YZWX: core.int,
+    YZWY: core.int,
+    YZWZ: core.int,
+    YZWW: core.int,
+    YWXX: core.int,
+    YWXY: core.int,
+    YWXZ: core.int,
+    YWXW: core.int,
+    YWYX: core.int,
+    YWYY: core.int,
+    YWYZ: core.int,
+    YWYW: core.int,
+    YWZX: core.int,
+    YWZY: core.int,
+    YWZZ: core.int,
+    YWZW: core.int,
+    YWWX: core.int,
+    YWWY: core.int,
+    YWWZ: core.int,
+    YWWW: core.int,
+    ZXXX: core.int,
+    ZXXY: core.int,
+    ZXXZ: core.int,
+    ZXXW: core.int,
+    ZXYX: core.int,
+    ZXYY: core.int,
+    ZXYZ: core.int,
+    ZXYW: core.int,
+    ZXZX: core.int,
+    ZXZY: core.int,
+    ZXZZ: core.int,
+    ZXZW: core.int,
+    ZXWX: core.int,
+    ZXWY: core.int,
+    ZXWZ: core.int,
+    ZXWW: core.int,
+    ZYXX: core.int,
+    ZYXY: core.int,
+    ZYXZ: core.int,
+    ZYXW: core.int,
+    ZYYX: core.int,
+    ZYYY: core.int,
+    ZYYZ: core.int,
+    ZYYW: core.int,
+    ZYZX: core.int,
+    ZYZY: core.int,
+    ZYZZ: core.int,
+    ZYZW: core.int,
+    ZYWX: core.int,
+    ZYWY: core.int,
+    ZYWZ: core.int,
+    ZYWW: core.int,
+    ZZXX: core.int,
+    ZZXY: core.int,
+    ZZXZ: core.int,
+    ZZXW: core.int,
+    ZZYX: core.int,
+    ZZYY: core.int,
+    ZZYZ: core.int,
+    ZZYW: core.int,
+    ZZZX: core.int,
+    ZZZY: core.int,
+    ZZZZ: core.int,
+    ZZZW: core.int,
+    ZZWX: core.int,
+    ZZWY: core.int,
+    ZZWZ: core.int,
+    ZZWW: core.int,
+    ZWXX: core.int,
+    ZWXY: core.int,
+    ZWXZ: core.int,
+    ZWXW: core.int,
+    ZWYX: core.int,
+    ZWYY: core.int,
+    ZWYZ: core.int,
+    ZWYW: core.int,
+    ZWZX: core.int,
+    ZWZY: core.int,
+    ZWZZ: core.int,
+    ZWZW: core.int,
+    ZWWX: core.int,
+    ZWWY: core.int,
+    ZWWZ: core.int,
+    ZWWW: core.int,
+    WXXX: core.int,
+    WXXY: core.int,
+    WXXZ: core.int,
+    WXXW: core.int,
+    WXYX: core.int,
+    WXYY: core.int,
+    WXYZ: core.int,
+    WXYW: core.int,
+    WXZX: core.int,
+    WXZY: core.int,
+    WXZZ: core.int,
+    WXZW: core.int,
+    WXWX: core.int,
+    WXWY: core.int,
+    WXWZ: core.int,
+    WXWW: core.int,
+    WYXX: core.int,
+    WYXY: core.int,
+    WYXZ: core.int,
+    WYXW: core.int,
+    WYYX: core.int,
+    WYYY: core.int,
+    WYYZ: core.int,
+    WYYW: core.int,
+    WYZX: core.int,
+    WYZY: core.int,
+    WYZZ: core.int,
+    WYZW: core.int,
+    WYWX: core.int,
+    WYWY: core.int,
+    WYWZ: core.int,
+    WYWW: core.int,
+    WZXX: core.int,
+    WZXY: core.int,
+    WZXZ: core.int,
+    WZXW: core.int,
+    WZYX: core.int,
+    WZYY: core.int,
+    WZYZ: core.int,
+    WZYW: core.int,
+    WZZX: core.int,
+    WZZY: core.int,
+    WZZZ: core.int,
+    WZZW: core.int,
+    WZWX: core.int,
+    WZWY: core.int,
+    WZWZ: core.int,
+    WZWW: core.int,
+    WWXX: core.int,
+    WWXY: core.int,
+    WWXZ: core.int,
+    WWXW: core.int,
+    WWYX: core.int,
+    WWYY: core.int,
+    WWYZ: core.int,
+    WWYW: core.int,
+    WWZX: core.int,
+    WWZY: core.int,
+    WWZZ: core.int,
+    WWZW: core.int,
+    WWWX: core.int,
+    WWWY: core.int,
+    WWWZ: core.int,
+    WWWW: core.int
+  })
+});
+typed_data.Int32x4.XXXX = 0;
+typed_data.Int32x4.XXXY = 64;
+typed_data.Int32x4.XXXZ = 128;
+typed_data.Int32x4.XXXW = 192;
+typed_data.Int32x4.XXYX = 16;
+typed_data.Int32x4.XXYY = 80;
+typed_data.Int32x4.XXYZ = 144;
+typed_data.Int32x4.XXYW = 208;
+typed_data.Int32x4.XXZX = 32;
+typed_data.Int32x4.XXZY = 96;
+typed_data.Int32x4.XXZZ = 160;
+typed_data.Int32x4.XXZW = 224;
+typed_data.Int32x4.XXWX = 48;
+typed_data.Int32x4.XXWY = 112;
+typed_data.Int32x4.XXWZ = 176;
+typed_data.Int32x4.XXWW = 240;
+typed_data.Int32x4.XYXX = 4;
+typed_data.Int32x4.XYXY = 68;
+typed_data.Int32x4.XYXZ = 132;
+typed_data.Int32x4.XYXW = 196;
+typed_data.Int32x4.XYYX = 20;
+typed_data.Int32x4.XYYY = 84;
+typed_data.Int32x4.XYYZ = 148;
+typed_data.Int32x4.XYYW = 212;
+typed_data.Int32x4.XYZX = 36;
+typed_data.Int32x4.XYZY = 100;
+typed_data.Int32x4.XYZZ = 164;
+typed_data.Int32x4.XYZW = 228;
+typed_data.Int32x4.XYWX = 52;
+typed_data.Int32x4.XYWY = 116;
+typed_data.Int32x4.XYWZ = 180;
+typed_data.Int32x4.XYWW = 244;
+typed_data.Int32x4.XZXX = 8;
+typed_data.Int32x4.XZXY = 72;
+typed_data.Int32x4.XZXZ = 136;
+typed_data.Int32x4.XZXW = 200;
+typed_data.Int32x4.XZYX = 24;
+typed_data.Int32x4.XZYY = 88;
+typed_data.Int32x4.XZYZ = 152;
+typed_data.Int32x4.XZYW = 216;
+typed_data.Int32x4.XZZX = 40;
+typed_data.Int32x4.XZZY = 104;
+typed_data.Int32x4.XZZZ = 168;
+typed_data.Int32x4.XZZW = 232;
+typed_data.Int32x4.XZWX = 56;
+typed_data.Int32x4.XZWY = 120;
+typed_data.Int32x4.XZWZ = 184;
+typed_data.Int32x4.XZWW = 248;
+typed_data.Int32x4.XWXX = 12;
+typed_data.Int32x4.XWXY = 76;
+typed_data.Int32x4.XWXZ = 140;
+typed_data.Int32x4.XWXW = 204;
+typed_data.Int32x4.XWYX = 28;
+typed_data.Int32x4.XWYY = 92;
+typed_data.Int32x4.XWYZ = 156;
+typed_data.Int32x4.XWYW = 220;
+typed_data.Int32x4.XWZX = 44;
+typed_data.Int32x4.XWZY = 108;
+typed_data.Int32x4.XWZZ = 172;
+typed_data.Int32x4.XWZW = 236;
+typed_data.Int32x4.XWWX = 60;
+typed_data.Int32x4.XWWY = 124;
+typed_data.Int32x4.XWWZ = 188;
+typed_data.Int32x4.XWWW = 252;
+typed_data.Int32x4.YXXX = 1;
+typed_data.Int32x4.YXXY = 65;
+typed_data.Int32x4.YXXZ = 129;
+typed_data.Int32x4.YXXW = 193;
+typed_data.Int32x4.YXYX = 17;
+typed_data.Int32x4.YXYY = 81;
+typed_data.Int32x4.YXYZ = 145;
+typed_data.Int32x4.YXYW = 209;
+typed_data.Int32x4.YXZX = 33;
+typed_data.Int32x4.YXZY = 97;
+typed_data.Int32x4.YXZZ = 161;
+typed_data.Int32x4.YXZW = 225;
+typed_data.Int32x4.YXWX = 49;
+typed_data.Int32x4.YXWY = 113;
+typed_data.Int32x4.YXWZ = 177;
+typed_data.Int32x4.YXWW = 241;
+typed_data.Int32x4.YYXX = 5;
+typed_data.Int32x4.YYXY = 69;
+typed_data.Int32x4.YYXZ = 133;
+typed_data.Int32x4.YYXW = 197;
+typed_data.Int32x4.YYYX = 21;
+typed_data.Int32x4.YYYY = 85;
+typed_data.Int32x4.YYYZ = 149;
+typed_data.Int32x4.YYYW = 213;
+typed_data.Int32x4.YYZX = 37;
+typed_data.Int32x4.YYZY = 101;
+typed_data.Int32x4.YYZZ = 165;
+typed_data.Int32x4.YYZW = 229;
+typed_data.Int32x4.YYWX = 53;
+typed_data.Int32x4.YYWY = 117;
+typed_data.Int32x4.YYWZ = 181;
+typed_data.Int32x4.YYWW = 245;
+typed_data.Int32x4.YZXX = 9;
+typed_data.Int32x4.YZXY = 73;
+typed_data.Int32x4.YZXZ = 137;
+typed_data.Int32x4.YZXW = 201;
+typed_data.Int32x4.YZYX = 25;
+typed_data.Int32x4.YZYY = 89;
+typed_data.Int32x4.YZYZ = 153;
+typed_data.Int32x4.YZYW = 217;
+typed_data.Int32x4.YZZX = 41;
+typed_data.Int32x4.YZZY = 105;
+typed_data.Int32x4.YZZZ = 169;
+typed_data.Int32x4.YZZW = 233;
+typed_data.Int32x4.YZWX = 57;
+typed_data.Int32x4.YZWY = 121;
+typed_data.Int32x4.YZWZ = 185;
+typed_data.Int32x4.YZWW = 249;
+typed_data.Int32x4.YWXX = 13;
+typed_data.Int32x4.YWXY = 77;
+typed_data.Int32x4.YWXZ = 141;
+typed_data.Int32x4.YWXW = 205;
+typed_data.Int32x4.YWYX = 29;
+typed_data.Int32x4.YWYY = 93;
+typed_data.Int32x4.YWYZ = 157;
+typed_data.Int32x4.YWYW = 221;
+typed_data.Int32x4.YWZX = 45;
+typed_data.Int32x4.YWZY = 109;
+typed_data.Int32x4.YWZZ = 173;
+typed_data.Int32x4.YWZW = 237;
+typed_data.Int32x4.YWWX = 61;
+typed_data.Int32x4.YWWY = 125;
+typed_data.Int32x4.YWWZ = 189;
+typed_data.Int32x4.YWWW = 253;
+typed_data.Int32x4.ZXXX = 2;
+typed_data.Int32x4.ZXXY = 66;
+typed_data.Int32x4.ZXXZ = 130;
+typed_data.Int32x4.ZXXW = 194;
+typed_data.Int32x4.ZXYX = 18;
+typed_data.Int32x4.ZXYY = 82;
+typed_data.Int32x4.ZXYZ = 146;
+typed_data.Int32x4.ZXYW = 210;
+typed_data.Int32x4.ZXZX = 34;
+typed_data.Int32x4.ZXZY = 98;
+typed_data.Int32x4.ZXZZ = 162;
+typed_data.Int32x4.ZXZW = 226;
+typed_data.Int32x4.ZXWX = 50;
+typed_data.Int32x4.ZXWY = 114;
+typed_data.Int32x4.ZXWZ = 178;
+typed_data.Int32x4.ZXWW = 242;
+typed_data.Int32x4.ZYXX = 6;
+typed_data.Int32x4.ZYXY = 70;
+typed_data.Int32x4.ZYXZ = 134;
+typed_data.Int32x4.ZYXW = 198;
+typed_data.Int32x4.ZYYX = 22;
+typed_data.Int32x4.ZYYY = 86;
+typed_data.Int32x4.ZYYZ = 150;
+typed_data.Int32x4.ZYYW = 214;
+typed_data.Int32x4.ZYZX = 38;
+typed_data.Int32x4.ZYZY = 102;
+typed_data.Int32x4.ZYZZ = 166;
+typed_data.Int32x4.ZYZW = 230;
+typed_data.Int32x4.ZYWX = 54;
+typed_data.Int32x4.ZYWY = 118;
+typed_data.Int32x4.ZYWZ = 182;
+typed_data.Int32x4.ZYWW = 246;
+typed_data.Int32x4.ZZXX = 10;
+typed_data.Int32x4.ZZXY = 74;
+typed_data.Int32x4.ZZXZ = 138;
+typed_data.Int32x4.ZZXW = 202;
+typed_data.Int32x4.ZZYX = 26;
+typed_data.Int32x4.ZZYY = 90;
+typed_data.Int32x4.ZZYZ = 154;
+typed_data.Int32x4.ZZYW = 218;
+typed_data.Int32x4.ZZZX = 42;
+typed_data.Int32x4.ZZZY = 106;
+typed_data.Int32x4.ZZZZ = 170;
+typed_data.Int32x4.ZZZW = 234;
+typed_data.Int32x4.ZZWX = 58;
+typed_data.Int32x4.ZZWY = 122;
+typed_data.Int32x4.ZZWZ = 186;
+typed_data.Int32x4.ZZWW = 250;
+typed_data.Int32x4.ZWXX = 14;
+typed_data.Int32x4.ZWXY = 78;
+typed_data.Int32x4.ZWXZ = 142;
+typed_data.Int32x4.ZWXW = 206;
+typed_data.Int32x4.ZWYX = 30;
+typed_data.Int32x4.ZWYY = 94;
+typed_data.Int32x4.ZWYZ = 158;
+typed_data.Int32x4.ZWYW = 222;
+typed_data.Int32x4.ZWZX = 46;
+typed_data.Int32x4.ZWZY = 110;
+typed_data.Int32x4.ZWZZ = 174;
+typed_data.Int32x4.ZWZW = 238;
+typed_data.Int32x4.ZWWX = 62;
+typed_data.Int32x4.ZWWY = 126;
+typed_data.Int32x4.ZWWZ = 190;
+typed_data.Int32x4.ZWWW = 254;
+typed_data.Int32x4.WXXX = 3;
+typed_data.Int32x4.WXXY = 67;
+typed_data.Int32x4.WXXZ = 131;
+typed_data.Int32x4.WXXW = 195;
+typed_data.Int32x4.WXYX = 19;
+typed_data.Int32x4.WXYY = 83;
+typed_data.Int32x4.WXYZ = 147;
+typed_data.Int32x4.WXYW = 211;
+typed_data.Int32x4.WXZX = 35;
+typed_data.Int32x4.WXZY = 99;
+typed_data.Int32x4.WXZZ = 163;
+typed_data.Int32x4.WXZW = 227;
+typed_data.Int32x4.WXWX = 51;
+typed_data.Int32x4.WXWY = 115;
+typed_data.Int32x4.WXWZ = 179;
+typed_data.Int32x4.WXWW = 243;
+typed_data.Int32x4.WYXX = 7;
+typed_data.Int32x4.WYXY = 71;
+typed_data.Int32x4.WYXZ = 135;
+typed_data.Int32x4.WYXW = 199;
+typed_data.Int32x4.WYYX = 23;
+typed_data.Int32x4.WYYY = 87;
+typed_data.Int32x4.WYYZ = 151;
+typed_data.Int32x4.WYYW = 215;
+typed_data.Int32x4.WYZX = 39;
+typed_data.Int32x4.WYZY = 103;
+typed_data.Int32x4.WYZZ = 167;
+typed_data.Int32x4.WYZW = 231;
+typed_data.Int32x4.WYWX = 55;
+typed_data.Int32x4.WYWY = 119;
+typed_data.Int32x4.WYWZ = 183;
+typed_data.Int32x4.WYWW = 247;
+typed_data.Int32x4.WZXX = 11;
+typed_data.Int32x4.WZXY = 75;
+typed_data.Int32x4.WZXZ = 139;
+typed_data.Int32x4.WZXW = 203;
+typed_data.Int32x4.WZYX = 27;
+typed_data.Int32x4.WZYY = 91;
+typed_data.Int32x4.WZYZ = 155;
+typed_data.Int32x4.WZYW = 219;
+typed_data.Int32x4.WZZX = 43;
+typed_data.Int32x4.WZZY = 107;
+typed_data.Int32x4.WZZZ = 171;
+typed_data.Int32x4.WZZW = 235;
+typed_data.Int32x4.WZWX = 59;
+typed_data.Int32x4.WZWY = 123;
+typed_data.Int32x4.WZWZ = 187;
+typed_data.Int32x4.WZWW = 251;
+typed_data.Int32x4.WWXX = 15;
+typed_data.Int32x4.WWXY = 79;
+typed_data.Int32x4.WWXZ = 143;
+typed_data.Int32x4.WWXW = 207;
+typed_data.Int32x4.WWYX = 31;
+typed_data.Int32x4.WWYY = 95;
+typed_data.Int32x4.WWYZ = 159;
+typed_data.Int32x4.WWYW = 223;
+typed_data.Int32x4.WWZX = 47;
+typed_data.Int32x4.WWZY = 111;
+typed_data.Int32x4.WWZZ = 175;
+typed_data.Int32x4.WWZW = 239;
+typed_data.Int32x4.WWWX = 63;
+typed_data.Int32x4.WWWY = 127;
+typed_data.Int32x4.WWWZ = 191;
+typed_data.Int32x4.WWWW = 255;
+_native_typed_data.NativeInt32x4List = class NativeInt32x4List extends dart.mixin(core.Object, collection.ListMixin$(typed_data.Int32x4), _internal.FixedLengthListMixin$(typed_data.Int32x4)) {
+  new(length) {
+    this[_storage] = _native_typed_data.NativeInt32List.new(dart.notNull(length) * 4);
+  }
+  _externalStorage(storage) {
+    this[_storage] = storage;
+  }
+  _slowFromList(list) {
+    this[_storage] = _native_typed_data.NativeInt32List.new(dart.notNull(list[dartx.length]) * 4);
+    for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
+      let e = list[dartx._get](i);
+      this[_storage][dartx._set](i * 4 + 0, e.x);
+      this[_storage][dartx._set](i * 4 + 1, e.y);
+      this[_storage][dartx._set](i * 4 + 2, e.z);
+      this[_storage][dartx._set](i * 4 + 3, e.w);
+    }
+  }
+  get runtimeType() {
+    return dart.wrapType(typed_data.Int32x4List);
+  }
+  static fromList(list) {
+    if (_native_typed_data.NativeInt32x4List.is(list)) {
+      return new _native_typed_data.NativeInt32x4List._externalStorage(_native_typed_data.NativeInt32List.fromList(list[_storage]));
+    } else {
+      return new _native_typed_data.NativeInt32x4List._slowFromList(list);
+    }
+  }
+  get buffer() {
+    return this[_storage][dartx.buffer];
+  }
+  get lengthInBytes() {
+    return this[_storage][dartx.lengthInBytes];
+  }
+  get offsetInBytes() {
+    return this[_storage][dartx.offsetInBytes];
+  }
+  get elementSizeInBytes() {
+    return typed_data.Int32x4List.BYTES_PER_ELEMENT;
+  }
+  get length() {
+    return (dart.notNull(this[_storage][dartx.length]) / 4)[dartx.truncate]();
+  }
+  set length(value) {
+    super.length = value;
+  }
+  _get(index) {
+    _native_typed_data._checkValidIndex(index, this, this.length);
+    let _x = this[_storage][dartx._get](dart.notNull(index) * 4 + 0);
+    let _y = this[_storage][dartx._get](dart.notNull(index) * 4 + 1);
+    let _z = this[_storage][dartx._get](dart.notNull(index) * 4 + 2);
+    let _w = this[_storage][dartx._get](dart.notNull(index) * 4 + 3);
+    return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
+  }
+  _set(index, value) {
+    _native_typed_data._checkValidIndex(index, this, this.length);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 0, value.x);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 1, value.y);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 2, value.z);
+    this[_storage][dartx._set](dart.notNull(index) * 4 + 3, value.w);
+    return value;
+  }
+  sublist(start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this.length);
+    return new _native_typed_data.NativeInt32x4List._externalStorage(typed_data.Int32List._check(this[_storage][dartx.sublist](dart.notNull(start) * 4, dart.notNull(end) * 4)));
+  }
+};
+dart.defineNamedConstructor(_native_typed_data.NativeInt32x4List, '_externalStorage');
+dart.defineNamedConstructor(_native_typed_data.NativeInt32x4List, '_slowFromList');
+_native_typed_data.NativeInt32x4List[dart.implements] = () => [typed_data.Int32x4List];
+dart.setSignature(_native_typed_data.NativeInt32x4List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [core.int]),
+    _externalStorage: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [typed_data.Int32List]),
+    _slowFromList: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [ListOfInt32x4()]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeInt32x4List, [ListOfInt32x4()])
+  }),
+  fields: () => ({[_storage]: typed_data.Int32List}),
+  getters: () => ({
+    buffer: dart.definiteFunctionType(typed_data.ByteBuffer, []),
+    lengthInBytes: dart.definiteFunctionType(core.int, []),
+    offsetInBytes: dart.definiteFunctionType(core.int, []),
+    elementSizeInBytes: dart.definiteFunctionType(core.int, []),
+    length: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    _get: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, typed_data.Int32x4])
+  })
+});
+dart.defineExtensionMembers(_native_typed_data.NativeInt32x4List, [
+  '_get',
+  '_set',
+  'sublist',
+  'buffer',
+  'lengthInBytes',
+  'offsetInBytes',
+  'elementSizeInBytes',
+  'length'
+]);
+typed_data.Float64x2 = class Float64x2 extends core.Object {
+  static new(x, y) {
+    return new _native_typed_data.NativeFloat64x2(x, y);
+  }
+  static splat(v) {
+    return new _native_typed_data.NativeFloat64x2.splat(v);
+  }
+  static zero() {
+    return new _native_typed_data.NativeFloat64x2.zero();
+  }
+  static fromFloat32x4(v) {
+    return new _native_typed_data.NativeFloat64x2.fromFloat32x4(v);
+  }
+};
+dart.setSignature(typed_data.Float64x2, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Float64x2, [core.double, core.double]),
+    splat: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
+    zero: dart.definiteFunctionType(typed_data.Float64x2, []),
+    fromFloat32x4: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float32x4])
+  })
+});
+_native_typed_data.NativeFloat64x2List = class NativeFloat64x2List extends dart.mixin(core.Object, collection.ListMixin$(typed_data.Float64x2), _internal.FixedLengthListMixin$(typed_data.Float64x2)) {
+  new(length) {
+    this[_storage] = _native_typed_data.NativeFloat64List.new(dart.notNull(length) * 2);
+  }
+  _externalStorage(storage) {
+    this[_storage] = storage;
+  }
+  _slowFromList(list) {
+    this[_storage] = _native_typed_data.NativeFloat64List.new(dart.notNull(list[dartx.length]) * 2);
+    for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
+      let e = list[dartx._get](i);
+      this[_storage][dartx._set](i * 2 + 0, e.x);
+      this[_storage][dartx._set](i * 2 + 1, e.y);
+    }
+  }
+  static fromList(list) {
+    if (_native_typed_data.NativeFloat64x2List.is(list)) {
+      return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List.fromList(list[_storage]));
+    } else {
+      return new _native_typed_data.NativeFloat64x2List._slowFromList(list);
+    }
+  }
+  get runtimeType() {
+    return dart.wrapType(typed_data.Float64x2List);
+  }
+  get buffer() {
+    return this[_storage][dartx.buffer];
+  }
+  get lengthInBytes() {
+    return this[_storage][dartx.lengthInBytes];
+  }
+  get offsetInBytes() {
+    return this[_storage][dartx.offsetInBytes];
+  }
+  get elementSizeInBytes() {
+    return typed_data.Float64x2List.BYTES_PER_ELEMENT;
+  }
+  get length() {
+    return (dart.notNull(this[_storage][dartx.length]) / 2)[dartx.truncate]();
+  }
+  set length(value) {
+    super.length = value;
+  }
+  _get(index) {
+    _native_typed_data._checkValidIndex(index, this, this.length);
+    let _x = this[_storage][dartx._get](dart.notNull(index) * 2 + 0);
+    let _y = this[_storage][dartx._get](dart.notNull(index) * 2 + 1);
+    return typed_data.Float64x2.new(_x, _y);
+  }
+  _set(index, value) {
+    _native_typed_data._checkValidIndex(index, this, this.length);
+    this[_storage][dartx._set](dart.notNull(index) * 2 + 0, value.x);
+    this[_storage][dartx._set](dart.notNull(index) * 2 + 1, value.y);
+    return value;
+  }
+  sublist(start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this.length);
+    return new _native_typed_data.NativeFloat64x2List._externalStorage(_native_typed_data.NativeFloat64List._check(this[_storage][dartx.sublist](dart.notNull(start) * 2, dart.notNull(end) * 2)));
+  }
+};
+dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2List, '_externalStorage');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2List, '_slowFromList');
+_native_typed_data.NativeFloat64x2List[dart.implements] = () => [typed_data.Float64x2List];
+dart.setSignature(_native_typed_data.NativeFloat64x2List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [core.int]),
+    _externalStorage: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [_native_typed_data.NativeFloat64List]),
+    _slowFromList: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [ListOfFloat64x2()]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2List, [ListOfFloat64x2()])
+  }),
+  fields: () => ({[_storage]: _native_typed_data.NativeFloat64List}),
+  getters: () => ({
+    buffer: dart.definiteFunctionType(typed_data.ByteBuffer, []),
+    lengthInBytes: dart.definiteFunctionType(core.int, []),
+    offsetInBytes: dart.definiteFunctionType(core.int, []),
+    elementSizeInBytes: dart.definiteFunctionType(core.int, []),
+    length: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    _get: dart.definiteFunctionType(typed_data.Float64x2, [core.int]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float64x2])
+  })
+});
+dart.defineExtensionMembers(_native_typed_data.NativeFloat64x2List, [
+  '_get',
+  '_set',
+  'sublist',
+  'buffer',
+  'lengthInBytes',
+  'offsetInBytes',
+  'elementSizeInBytes',
+  'length'
+]);
+const _invalidPosition = Symbol('_invalidPosition');
+const _checkPosition = Symbol('_checkPosition');
+dart.defineExtensionNames([
+  'buffer',
+  'lengthInBytes',
+  'offsetInBytes',
+  'elementSizeInBytes'
+]);
+_native_typed_data.NativeTypedData = class NativeTypedData extends core.Object {
+  get [dartx.buffer]() {
+    return this.buffer;
+  }
+  get [dartx.lengthInBytes]() {
+    return this.byteLength;
+  }
+  get [dartx.offsetInBytes]() {
+    return this.byteOffset;
+  }
+  get [dartx.elementSizeInBytes]() {
+    return this.BYTES_PER_ELEMENT;
+  }
+  [_invalidPosition](position, length, name) {
+    if (!(typeof position == 'number')) {
+      dart.throw(new core.ArgumentError.value(position, name, 'Invalid list position'));
+    } else {
+      dart.throw(new core.RangeError.range(position, 0, length, name));
+    }
+  }
+  [_checkPosition](position, length, name) {
+    if (position >>> 0 !== position || position > dart.notNull(length)) {
+      this[_invalidPosition](position, length, name);
+    }
+  }
+};
+_native_typed_data.NativeTypedData[dart.implements] = () => [typed_data.TypedData];
+dart.setSignature(_native_typed_data.NativeTypedData, {
+  getters: () => ({
+    [dartx.buffer]: dart.definiteFunctionType(typed_data.ByteBuffer, []),
+    [dartx.lengthInBytes]: dart.definiteFunctionType(core.int, []),
+    [dartx.offsetInBytes]: dart.definiteFunctionType(core.int, []),
+    [dartx.elementSizeInBytes]: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    [_invalidPosition]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.String]),
+    [_checkPosition]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.String])
+  })
+});
+dart.registerExtension(dart.global.ArrayBufferView, _native_typed_data.NativeTypedData);
+_native_typed_data._checkLength = function(length) {
+  if (!(typeof length == 'number')) dart.throw(new core.ArgumentError(dart.str`Invalid length ${length}`));
+  return core.int._check(length);
+};
+dart.fn(_native_typed_data._checkLength, dynamicToint());
+_native_typed_data._checkViewArguments = function(buffer, offsetInBytes, length) {
+  if (!_native_typed_data.NativeByteBuffer.is(buffer)) {
+    dart.throw(new core.ArgumentError('Invalid view buffer'));
+  }
+  if (!(typeof offsetInBytes == 'number')) {
+    dart.throw(new core.ArgumentError(dart.str`Invalid view offsetInBytes ${offsetInBytes}`));
+  }
+  if (length != null && !(typeof length == 'number')) {
+    dart.throw(new core.ArgumentError(dart.str`Invalid view length ${length}`));
+  }
+};
+dart.fn(_native_typed_data._checkViewArguments, dynamicAnddynamicAnddynamicTovoid());
+_native_typed_data._ensureNativeList = function(list) {
+  if (_interceptors.JSIndexable.is(list)) return list;
+  let result = core.List.new(list[dartx.length]);
+  for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
+    result[dartx._set](i, list[dartx._get](i));
+  }
+  return result;
+};
+dart.lazyFn(_native_typed_data._ensureNativeList, () => ListToList());
+const _getFloat32 = Symbol('_getFloat32');
+const _getFloat64 = Symbol('_getFloat64');
+const _getInt16 = Symbol('_getInt16');
+const _getInt32 = Symbol('_getInt32');
+const _getUint16 = Symbol('_getUint16');
+const _getUint32 = Symbol('_getUint32');
+const _setFloat32 = Symbol('_setFloat32');
+const _setFloat64 = Symbol('_setFloat64');
+const _setInt16 = Symbol('_setInt16');
+const _setInt32 = Symbol('_setInt32');
+const _setUint16 = Symbol('_setUint16');
+const _setUint32 = Symbol('_setUint32');
+dart.defineExtensionNames([
+  'runtimeType',
+  'elementSizeInBytes',
+  'getFloat32',
+  'getFloat64',
+  'getInt16',
+  'getInt32',
+  'getInt64',
+  'getInt8',
+  'getUint16',
+  'getUint32',
+  'getUint64',
+  'getUint8',
+  'setFloat32',
+  'setFloat64',
+  'setInt16',
+  'setInt32',
+  'setInt64',
+  'setInt8',
+  'setUint16',
+  'setUint32',
+  'setUint64',
+  'setUint8'
+]);
+_native_typed_data.NativeByteData = class NativeByteData extends _native_typed_data.NativeTypedData {
+  static new(length) {
+    return _native_typed_data.NativeByteData._create1(_native_typed_data._checkLength(length));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeByteData._create2(buffer, offsetInBytes) : _native_typed_data.NativeByteData._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.ByteData);
+  }
+  get [dartx.elementSizeInBytes]() {
+    return 1;
+  }
+  [dartx.getFloat32](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_getFloat32](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_getFloat32](...args) {
+    return this.getFloat32.apply(this, args);
+  }
+  [dartx.getFloat64](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_getFloat64](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_getFloat64](...args) {
+    return this.getFloat64.apply(this, args);
+  }
+  [dartx.getInt16](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_getInt16](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_getInt16](...args) {
+    return this.getInt16.apply(this, args);
+  }
+  [dartx.getInt32](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_getInt32](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_getInt32](...args) {
+    return this.getInt32.apply(this, args);
+  }
+  [dartx.getInt64](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    dart.throw(new core.UnsupportedError('Int64 accessor not supported by dart2js.'));
+  }
+  [dartx.getInt8](...args) {
+    return this.getInt8.apply(this, args);
+  }
+  [dartx.getUint16](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_getUint16](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_getUint16](...args) {
+    return this.getUint16.apply(this, args);
+  }
+  [dartx.getUint32](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_getUint32](byteOffset, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_getUint32](...args) {
+    return this.getUint32.apply(this, args);
+  }
+  [dartx.getUint64](byteOffset, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    dart.throw(new core.UnsupportedError('Uint64 accessor not supported by dart2js.'));
+  }
+  [dartx.getUint8](...args) {
+    return this.getUint8.apply(this, args);
+  }
+  [dartx.setFloat32](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_setFloat32](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_setFloat32](...args) {
+    return this.setFloat32.apply(this, args);
+  }
+  [dartx.setFloat64](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_setFloat64](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_setFloat64](...args) {
+    return this.setFloat64.apply(this, args);
+  }
+  [dartx.setInt16](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_setInt16](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_setInt16](...args) {
+    return this.setInt16.apply(this, args);
+  }
+  [dartx.setInt32](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_setInt32](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_setInt32](...args) {
+    return this.setInt32.apply(this, args);
+  }
+  [dartx.setInt64](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    dart.throw(new core.UnsupportedError('Int64 accessor not supported by dart2js.'));
+  }
+  [dartx.setInt8](...args) {
+    return this.setInt8.apply(this, args);
+  }
+  [dartx.setUint16](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_setUint16](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_setUint16](...args) {
+    return this.setUint16.apply(this, args);
+  }
+  [dartx.setUint32](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    return this[_setUint32](byteOffset, value, dart.equals(typed_data.Endianness.LITTLE_ENDIAN, endian));
+  }
+  [_setUint32](...args) {
+    return this.setUint32.apply(this, args);
+  }
+  [dartx.setUint64](byteOffset, value, endian) {
+    if (endian === void 0) endian = typed_data.Endianness.BIG_ENDIAN;
+    dart.throw(new core.UnsupportedError('Uint64 accessor not supported by dart2js.'));
+  }
+  [dartx.setUint8](...args) {
+    return this.setUint8.apply(this, args);
+  }
+  static _create1(arg) {
+    return new DataView(new ArrayBuffer(arg));
+  }
+  static _create2(arg1, arg2) {
+    return new DataView(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new DataView(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeByteData[dart.implements] = () => [typed_data.ByteData];
+dart.setSignature(_native_typed_data.NativeByteData, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeByteData, [core.int]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeByteData, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({
+    [dartx.getFloat32]: dart.definiteFunctionType(core.double, [core.int], [typed_data.Endianness]),
+    [_getFloat32]: dart.definiteFunctionType(core.double, [core.int], [core.bool]),
+    [dartx.getFloat64]: dart.definiteFunctionType(core.double, [core.int], [typed_data.Endianness]),
+    [_getFloat64]: dart.definiteFunctionType(core.double, [core.int], [core.bool]),
+    [dartx.getInt16]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
+    [_getInt16]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
+    [dartx.getInt32]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
+    [_getInt32]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
+    [dartx.getInt64]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
+    [dartx.getInt8]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.getUint16]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
+    [_getUint16]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
+    [dartx.getUint32]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
+    [_getUint32]: dart.definiteFunctionType(core.int, [core.int], [core.bool]),
+    [dartx.getUint64]: dart.definiteFunctionType(core.int, [core.int], [typed_data.Endianness]),
+    [dartx.getUint8]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.setFloat32]: dart.definiteFunctionType(dart.void, [core.int, core.num], [typed_data.Endianness]),
+    [_setFloat32]: dart.definiteFunctionType(dart.void, [core.int, core.num], [core.bool]),
+    [dartx.setFloat64]: dart.definiteFunctionType(dart.void, [core.int, core.num], [typed_data.Endianness]),
+    [_setFloat64]: dart.definiteFunctionType(dart.void, [core.int, core.num], [core.bool]),
+    [dartx.setInt16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
+    [_setInt16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
+    [dartx.setInt32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
+    [_setInt32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
+    [dartx.setInt64]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
+    [dartx.setInt8]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.setUint16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
+    [_setUint16]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
+    [dartx.setUint32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
+    [_setUint32]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.bool]),
+    [dartx.setUint64]: dart.definiteFunctionType(dart.void, [core.int, core.int], [typed_data.Endianness]),
+    [dartx.setUint8]: dart.definiteFunctionType(dart.void, [core.int, core.int])
+  }),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeByteData, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeByteData, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeByteData, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.DataView, _native_typed_data.NativeByteData);
+const _setRangeFast = Symbol('_setRangeFast');
+_native_typed_data.NativeTypedArray = class NativeTypedArray extends _native_typed_data.NativeTypedData {
+  [_setRangeFast](start, end, source, skipCount) {
+    let targetLength = this[dartx.length];
+    this[_checkPosition](start, targetLength, "start");
+    this[_checkPosition](end, targetLength, "end");
+    if (dart.notNull(start) > dart.notNull(end)) dart.throw(new core.RangeError.range(start, 0, end));
+    let count = dart.notNull(end) - dart.notNull(start);
+    if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError(skipCount));
+    let sourceLength = source[dartx.length];
+    if (dart.notNull(sourceLength) - dart.notNull(skipCount) < count) {
+      dart.throw(new core.StateError('Not enough elements'));
+    }
+    if (skipCount != 0 || sourceLength != count) {
+      source = source.subarray(skipCount, dart.notNull(skipCount) + count);
+    }
+    this.set(source, start);
+  }
+};
+_native_typed_data.NativeTypedArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior];
+dart.setSignature(_native_typed_data.NativeTypedArray, {
+  methods: () => ({[_setRangeFast]: dart.definiteFunctionType(dart.void, [core.int, core.int, _native_typed_data.NativeTypedArray, core.int])})
+});
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'setRange'
+]);
+_native_typed_data.NativeTypedArrayOfDouble = class NativeTypedArrayOfDouble extends dart.mixin(_native_typed_data.NativeTypedArray, collection.ListMixin$(core.double), _internal.FixedLengthListMixin$(core.double)) {
+  get length() {
+    return this.length;
+  }
+  set length(value) {
+    super.length = value;
+  }
+  _get(index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  _set(index, value) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    this[index] = value;
+    return value;
+  }
+  setRange(start, end, iterable, skipCount) {
+    if (skipCount === void 0) skipCount = 0;
+    if (_native_typed_data.NativeTypedArrayOfDouble.is(iterable)) {
+      this[_setRangeFast](start, end, iterable, skipCount);
+      return;
+    }
+    super[dartx.setRange](start, end, iterable, skipCount);
+  }
+};
+dart.setSignature(_native_typed_data.NativeTypedArrayOfDouble, {
+  getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    _get: dart.definiteFunctionType(core.double, [core.int]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, core.num])
+  })
+});
+dart.defineExtensionMembers(_native_typed_data.NativeTypedArrayOfDouble, ['_get', '_set', 'setRange', 'length']);
+dart.defineExtensionNames([
+  'length',
+  '_set',
+  'setRange'
+]);
+_native_typed_data.NativeTypedArrayOfInt = class NativeTypedArrayOfInt extends dart.mixin(_native_typed_data.NativeTypedArray, collection.ListMixin$(core.int), _internal.FixedLengthListMixin$(core.int)) {
+  get length() {
+    return this.length;
+  }
+  set length(value) {
+    super.length = value;
+  }
+  _set(index, value) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    this[index] = value;
+    return value;
+  }
+  setRange(start, end, iterable, skipCount) {
+    if (skipCount === void 0) skipCount = 0;
+    if (_native_typed_data.NativeTypedArrayOfInt.is(iterable)) {
+      this[_setRangeFast](start, end, iterable, skipCount);
+      return;
+    }
+    super[dartx.setRange](start, end, iterable, skipCount);
+  }
+};
+_native_typed_data.NativeTypedArrayOfInt[dart.implements] = () => [ListOfint()];
+dart.setSignature(_native_typed_data.NativeTypedArrayOfInt, {
+  getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({_set: dart.definiteFunctionType(dart.void, [core.int, core.int])})
+});
+dart.defineExtensionMembers(_native_typed_data.NativeTypedArrayOfInt, ['_set', 'setRange', 'length']);
+dart.defineExtensionNames([
+  'runtimeType',
+  'sublist'
+]);
+_native_typed_data.NativeFloat32List = class NativeFloat32List extends _native_typed_data.NativeTypedArrayOfDouble {
+  static new(length) {
+    return _native_typed_data.NativeFloat32List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeFloat32List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeFloat32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeFloat32List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Float32List);
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeFloat32List._create1(source);
+  }
+  static _create1(arg) {
+    return new Float32Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Float32Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Float32Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeFloat32List[dart.implements] = () => [typed_data.Float32List];
+dart.setSignature(_native_typed_data.NativeFloat32List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [ListOfdouble()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeFloat32List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Float32Array, _native_typed_data.NativeFloat32List);
+dart.defineExtensionNames([
+  'runtimeType',
+  'sublist'
+]);
+_native_typed_data.NativeFloat64List = class NativeFloat64List extends _native_typed_data.NativeTypedArrayOfDouble {
+  static new(length) {
+    return _native_typed_data.NativeFloat64List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeFloat64List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeFloat64List._create2(buffer, offsetInBytes) : _native_typed_data.NativeFloat64List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Float64List);
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeFloat64List._create1(source);
+  }
+  static _create1(arg) {
+    return new Float64Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Float64Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Float64Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeFloat64List[dart.implements] = () => [typed_data.Float64List];
+dart.setSignature(_native_typed_data.NativeFloat64List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [ListOfdouble()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeFloat64List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Float64Array, _native_typed_data.NativeFloat64List);
+dart.defineExtensionNames([
+  'runtimeType',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeInt16List = class NativeInt16List extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeInt16List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt16List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeInt16List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt16List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Int16List);
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeInt16List._create1(source);
+  }
+  static _create1(arg) {
+    return new Int16Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Int16Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Int16Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeInt16List[dart.implements] = () => [typed_data.Int16List];
+dart.setSignature(_native_typed_data.NativeInt16List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [_native_typed_data.NativeByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeInt16List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Int16Array, _native_typed_data.NativeInt16List);
+dart.defineExtensionNames([
+  'runtimeType',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeInt32List = class NativeInt32List extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeInt32List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt32List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeInt32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt32List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Int32List);
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeInt32List._create1(source);
+  }
+  static _create1(arg) {
+    return new Int32Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Int32Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Int32Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeInt32List[dart.implements] = () => [typed_data.Int32List];
+dart.setSignature(_native_typed_data.NativeInt32List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeInt32List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Int32Array, _native_typed_data.NativeInt32List);
+dart.defineExtensionNames([
+  'runtimeType',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeInt8List = class NativeInt8List extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeInt8List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt8List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return _native_typed_data.NativeInt8List._check(length == null ? _native_typed_data.NativeInt8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeInt8List._create3(buffer, offsetInBytes, length));
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Int8List);
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeInt8List._create1(source);
+  }
+  static _create1(arg) {
+    return new Int8Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Int8Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Int8Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeInt8List[dart.implements] = () => [typed_data.Int8List];
+dart.setSignature(_native_typed_data.NativeInt8List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeInt8List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(typed_data.Int8List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Int8Array, _native_typed_data.NativeInt8List);
+dart.defineExtensionNames([
+  'runtimeType',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeUint16List = class NativeUint16List extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeUint16List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(list) {
+    return _native_typed_data.NativeUint16List._create1(_native_typed_data._ensureNativeList(list));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeUint16List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint16List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Uint16List);
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeUint16List._create1(source);
+  }
+  static _create1(arg) {
+    return new Uint16Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Uint16Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Uint16Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeUint16List[dart.implements] = () => [typed_data.Uint16List];
+dart.setSignature(_native_typed_data.NativeUint16List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeUint16List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Uint16Array, _native_typed_data.NativeUint16List);
+dart.defineExtensionNames([
+  'runtimeType',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeUint32List = class NativeUint32List extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeUint32List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint32List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeUint32List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint32List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Uint32List);
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeUint32List._create1(source);
+  }
+  static _create1(arg) {
+    return new Uint32Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Uint32Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Uint32Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeUint32List[dart.implements] = () => [typed_data.Uint32List];
+dart.setSignature(_native_typed_data.NativeUint32List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeUint32List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Uint32Array, _native_typed_data.NativeUint32List);
+dart.defineExtensionNames([
+  'runtimeType',
+  'length',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeUint8ClampedList = class NativeUint8ClampedList extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint8ClampedList._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeUint8ClampedList._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8ClampedList._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Uint8ClampedList);
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  set [dartx.length](value) {
+    super[dartx.length] = value;
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeUint8ClampedList._create1(source);
+  }
+  static _create1(arg) {
+    return new Uint8ClampedArray(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Uint8ClampedArray(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Uint8ClampedArray(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeUint8ClampedList[dart.implements] = () => [typed_data.Uint8ClampedList];
+dart.setSignature(_native_typed_data.NativeUint8ClampedList, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeUint8ClampedList, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Uint8ClampedArray, _native_typed_data.NativeUint8ClampedList);
+dart.registerExtension(dart.global.CanvasPixelArray, _native_typed_data.NativeUint8ClampedList);
+dart.defineExtensionNames([
+  'runtimeType',
+  'length',
+  '_get',
+  'sublist'
+]);
+_native_typed_data.NativeUint8List = class NativeUint8List extends _native_typed_data.NativeTypedArrayOfInt {
+  static new(length) {
+    return _native_typed_data.NativeUint8List._create1(_native_typed_data._checkLength(length));
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint8List._create1(_native_typed_data._ensureNativeList(elements));
+  }
+  static view(buffer, offsetInBytes, length) {
+    _native_typed_data._checkViewArguments(buffer, offsetInBytes, length);
+    return length == null ? _native_typed_data.NativeUint8List._create2(buffer, offsetInBytes) : _native_typed_data.NativeUint8List._create3(buffer, offsetInBytes, length);
+  }
+  get [dartx.runtimeType]() {
+    return dart.wrapType(typed_data.Uint8List);
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  set [dartx.length](value) {
+    super[dartx.length] = value;
+  }
+  [dartx._get](index) {
+    _native_typed_data._checkValidIndex(index, this, this[dartx.length]);
+    return this[index];
+  }
+  [dartx.sublist](start, end) {
+    if (end === void 0) end = null;
+    end = _native_typed_data._checkValidRange(start, end, this[dartx.length]);
+    let source = this.subarray(start, end);
+    return _native_typed_data.NativeUint8List._create1(source);
+  }
+  static _create1(arg) {
+    return new Uint8Array(arg);
+  }
+  static _create2(arg1, arg2) {
+    return new Uint8Array(arg1, arg2);
+  }
+  static _create3(arg1, arg2, arg3) {
+    return new Uint8Array(arg1, arg2, arg3);
+  }
+};
+_native_typed_data.NativeUint8List[dart.implements] = () => [typed_data.Uint8List];
+dart.setSignature(_native_typed_data.NativeUint8List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [core.int]),
+    fromList: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [ListOfint()]),
+    view: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [typed_data.ByteBuffer, core.int, core.int])
+  }),
+  methods: () => ({[dartx._get]: dart.definiteFunctionType(core.int, [core.int])}),
+  statics: () => ({
+    _create1: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [dart.dynamic]),
+    _create2: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [dart.dynamic, dart.dynamic]),
+    _create3: dart.definiteFunctionType(_native_typed_data.NativeUint8List, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create1', '_create2', '_create3']
+});
+dart.registerExtension(dart.global.Uint8Array, _native_typed_data.NativeUint8List);
+_native_typed_data.NativeFloat32x4 = class NativeFloat32x4 extends core.Object {
+  static _truncate(x) {
+    _native_typed_data.NativeFloat32x4._list[dartx._set](0, core.num._check(x));
+    return _native_typed_data.NativeFloat32x4._list[dartx._get](0);
+  }
+  new(x, y, z, w) {
+    this.x = core.double._check(_native_typed_data.NativeFloat32x4._truncate(x));
+    this.y = core.double._check(_native_typed_data.NativeFloat32x4._truncate(y));
+    this.z = core.double._check(_native_typed_data.NativeFloat32x4._truncate(z));
+    this.w = core.double._check(_native_typed_data.NativeFloat32x4._truncate(w));
+    if (!(typeof x == 'number')) dart.throw(new core.ArgumentError(x));
+    if (!(typeof y == 'number')) dart.throw(new core.ArgumentError(y));
+    if (!(typeof z == 'number')) dart.throw(new core.ArgumentError(z));
+    if (!(typeof w == 'number')) dart.throw(new core.ArgumentError(w));
+  }
+  splat(v) {
+    NativeFloat32x4.prototype.new.call(this, v, v, v, v);
+  }
+  zero() {
+    NativeFloat32x4.prototype._truncated.call(this, 0.0, 0.0, 0.0, 0.0);
+  }
+  static fromInt32x4Bits(i) {
+    _native_typed_data.NativeFloat32x4._uint32view[dartx._set](0, i.x);
+    _native_typed_data.NativeFloat32x4._uint32view[dartx._set](1, i.y);
+    _native_typed_data.NativeFloat32x4._uint32view[dartx._set](2, i.z);
+    _native_typed_data.NativeFloat32x4._uint32view[dartx._set](3, i.w);
+    return new _native_typed_data.NativeFloat32x4._truncated(_native_typed_data.NativeFloat32x4._list[dartx._get](0), _native_typed_data.NativeFloat32x4._list[dartx._get](1), _native_typed_data.NativeFloat32x4._list[dartx._get](2), _native_typed_data.NativeFloat32x4._list[dartx._get](3));
+  }
+  fromFloat64x2(v) {
+    NativeFloat32x4.prototype._truncated.call(this, core.double._check(_native_typed_data.NativeFloat32x4._truncate(v.x)), core.double._check(_native_typed_data.NativeFloat32x4._truncate(v.y)), 0.0, 0.0);
+  }
+  _doubles(x, y, z, w) {
+    this.x = core.double._check(_native_typed_data.NativeFloat32x4._truncate(x));
+    this.y = core.double._check(_native_typed_data.NativeFloat32x4._truncate(y));
+    this.z = core.double._check(_native_typed_data.NativeFloat32x4._truncate(z));
+    this.w = core.double._check(_native_typed_data.NativeFloat32x4._truncate(w));
+  }
+  _truncated(x, y, z, w) {
+    this.x = x;
+    this.y = y;
+    this.z = z;
+    this.w = w;
+  }
+  toString() {
+    return dart.str`[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;
+  }
+  ['+'](other) {
+    let _x = dart.notNull(this.x) + dart.notNull(other.x);
+    let _y = dart.notNull(this.y) + dart.notNull(other.y);
+    let _z = dart.notNull(this.z) + dart.notNull(other.z);
+    let _w = dart.notNull(this.w) + dart.notNull(other.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  _negate() {
+    return new _native_typed_data.NativeFloat32x4._truncated(-dart.notNull(this.x), -dart.notNull(this.y), -dart.notNull(this.z), -dart.notNull(this.w));
+  }
+  ['-'](other) {
+    let _x = dart.notNull(this.x) - dart.notNull(other.x);
+    let _y = dart.notNull(this.y) - dart.notNull(other.y);
+    let _z = dart.notNull(this.z) - dart.notNull(other.z);
+    let _w = dart.notNull(this.w) - dart.notNull(other.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  ['*'](other) {
+    let _x = dart.notNull(this.x) * dart.notNull(other.x);
+    let _y = dart.notNull(this.y) * dart.notNull(other.y);
+    let _z = dart.notNull(this.z) * dart.notNull(other.z);
+    let _w = dart.notNull(this.w) * dart.notNull(other.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  ['/'](other) {
+    let _x = dart.notNull(this.x) / dart.notNull(other.x);
+    let _y = dart.notNull(this.y) / dart.notNull(other.y);
+    let _z = dart.notNull(this.z) / dart.notNull(other.z);
+    let _w = dart.notNull(this.w) / dart.notNull(other.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  lessThan(other) {
+    let _cx = dart.notNull(this.x) < dart.notNull(other.x);
+    let _cy = dart.notNull(this.y) < dart.notNull(other.y);
+    let _cz = dart.notNull(this.z) < dart.notNull(other.z);
+    let _cw = dart.notNull(this.w) < dart.notNull(other.w);
+    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
+  }
+  lessThanOrEqual(other) {
+    let _cx = dart.notNull(this.x) <= dart.notNull(other.x);
+    let _cy = dart.notNull(this.y) <= dart.notNull(other.y);
+    let _cz = dart.notNull(this.z) <= dart.notNull(other.z);
+    let _cw = dart.notNull(this.w) <= dart.notNull(other.w);
+    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
+  }
+  greaterThan(other) {
+    let _cx = dart.notNull(this.x) > dart.notNull(other.x);
+    let _cy = dart.notNull(this.y) > dart.notNull(other.y);
+    let _cz = dart.notNull(this.z) > dart.notNull(other.z);
+    let _cw = dart.notNull(this.w) > dart.notNull(other.w);
+    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
+  }
+  greaterThanOrEqual(other) {
+    let _cx = dart.notNull(this.x) >= dart.notNull(other.x);
+    let _cy = dart.notNull(this.y) >= dart.notNull(other.y);
+    let _cz = dart.notNull(this.z) >= dart.notNull(other.z);
+    let _cw = dart.notNull(this.w) >= dart.notNull(other.w);
+    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
+  }
+  equal(other) {
+    let _cx = this.x == other.x;
+    let _cy = this.y == other.y;
+    let _cz = this.z == other.z;
+    let _cw = this.w == other.w;
+    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
+  }
+  notEqual(other) {
+    let _cx = this.x != other.x;
+    let _cy = this.y != other.y;
+    let _cz = this.z != other.z;
+    let _cw = this.w != other.w;
+    return new _native_typed_data.NativeInt32x4._truncated(_cx ? -1 : 0, _cy ? -1 : 0, _cz ? -1 : 0, _cw ? -1 : 0);
+  }
+  scale(s) {
+    let _x = dart.notNull(s) * dart.notNull(this.x);
+    let _y = dart.notNull(s) * dart.notNull(this.y);
+    let _z = dart.notNull(s) * dart.notNull(this.z);
+    let _w = dart.notNull(s) * dart.notNull(this.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  abs() {
+    let _x = this.x[dartx.abs]();
+    let _y = this.y[dartx.abs]();
+    let _z = this.z[dartx.abs]();
+    let _w = this.w[dartx.abs]();
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  clamp(lowerLimit, upperLimit) {
+    let _lx = lowerLimit.x;
+    let _ly = lowerLimit.y;
+    let _lz = lowerLimit.z;
+    let _lw = lowerLimit.w;
+    let _ux = upperLimit.x;
+    let _uy = upperLimit.y;
+    let _uz = upperLimit.z;
+    let _uw = upperLimit.w;
+    let _x = this.x;
+    let _y = this.y;
+    let _z = this.z;
+    let _w = this.w;
+    _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
+    _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
+    _z = dart.notNull(_z) > dart.notNull(_uz) ? _uz : _z;
+    _w = dart.notNull(_w) > dart.notNull(_uw) ? _uw : _w;
+    _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
+    _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
+    _z = dart.notNull(_z) < dart.notNull(_lz) ? _lz : _z;
+    _w = dart.notNull(_w) < dart.notNull(_lw) ? _lw : _w;
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  get signMask() {
+    let view = _native_typed_data.NativeFloat32x4._uint32view;
+    let mx = null, my = null, mz = null, mw = null;
+    _native_typed_data.NativeFloat32x4._list[dartx._set](0, this.x);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](1, this.y);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](2, this.z);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](3, this.w);
+    mx = (dart.notNull(view[dartx._get](0)) & 2147483648) >>> 31;
+    my = (dart.notNull(view[dartx._get](1)) & 2147483648) >>> 30;
+    mz = (dart.notNull(view[dartx._get](2)) & 2147483648) >>> 29;
+    mw = (dart.notNull(view[dartx._get](3)) & 2147483648) >>> 28;
+    return core.int._check(dart.dsend(dart.dsend(dart.dsend(mx, '|', my), '|', mz), '|', mw));
+  }
+  shuffle(mask) {
+    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
+      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
+    }
+    _native_typed_data.NativeFloat32x4._list[dartx._set](0, this.x);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](1, this.y);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](2, this.z);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](3, this.w);
+    let _x = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) & 3);
+    let _y = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
+    let _z = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
+    let _w = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  shuffleMix(other, mask) {
+    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
+      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
+    }
+    _native_typed_data.NativeFloat32x4._list[dartx._set](0, this.x);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](1, this.y);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](2, this.z);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](3, this.w);
+    let _x = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) & 3);
+    let _y = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](0, other.x);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](1, other.y);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](2, other.z);
+    _native_typed_data.NativeFloat32x4._list[dartx._set](3, other.w);
+    let _z = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
+    let _w = _native_typed_data.NativeFloat32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  withX(newX) {
+    return new _native_typed_data.NativeFloat32x4._truncated(core.double._check(_native_typed_data.NativeFloat32x4._truncate(newX)), this.y, this.z, this.w);
+  }
+  withY(newY) {
+    return new _native_typed_data.NativeFloat32x4._truncated(this.x, core.double._check(_native_typed_data.NativeFloat32x4._truncate(newY)), this.z, this.w);
+  }
+  withZ(newZ) {
+    return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, core.double._check(_native_typed_data.NativeFloat32x4._truncate(newZ)), this.w);
+  }
+  withW(newW) {
+    return new _native_typed_data.NativeFloat32x4._truncated(this.x, this.y, this.z, core.double._check(_native_typed_data.NativeFloat32x4._truncate(newW)));
+  }
+  min(other) {
+    let _x = dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x;
+    let _y = dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y;
+    let _z = dart.notNull(this.z) < dart.notNull(other.z) ? this.z : other.z;
+    let _w = dart.notNull(this.w) < dart.notNull(other.w) ? this.w : other.w;
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  max(other) {
+    let _x = dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x;
+    let _y = dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y;
+    let _z = dart.notNull(this.z) > dart.notNull(other.z) ? this.z : other.z;
+    let _w = dart.notNull(this.w) > dart.notNull(other.w) ? this.w : other.w;
+    return new _native_typed_data.NativeFloat32x4._truncated(_x, _y, _z, _w);
+  }
+  sqrt() {
+    let _x = math.sqrt(this.x);
+    let _y = math.sqrt(this.y);
+    let _z = math.sqrt(this.z);
+    let _w = math.sqrt(this.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  reciprocal() {
+    let _x = 1.0 / dart.notNull(this.x);
+    let _y = 1.0 / dart.notNull(this.y);
+    let _z = 1.0 / dart.notNull(this.z);
+    let _w = 1.0 / dart.notNull(this.w);
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+  reciprocalSqrt() {
+    let _x = math.sqrt(1.0 / dart.notNull(this.x));
+    let _y = math.sqrt(1.0 / dart.notNull(this.y));
+    let _z = math.sqrt(1.0 / dart.notNull(this.z));
+    let _w = math.sqrt(1.0 / dart.notNull(this.w));
+    return new _native_typed_data.NativeFloat32x4._doubles(_x, _y, _z, _w);
+  }
+};
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, 'splat');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, 'zero');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, 'fromFloat64x2');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, '_doubles');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat32x4, '_truncated');
+_native_typed_data.NativeFloat32x4[dart.implements] = () => [typed_data.Float32x4];
+dart.setSignature(_native_typed_data.NativeFloat32x4, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double, core.double, core.double, core.double]),
+    splat: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double]),
+    zero: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, []),
+    fromInt32x4Bits: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [typed_data.Int32x4]),
+    fromFloat64x2: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [typed_data.Float64x2]),
+    _doubles: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double, core.double, core.double, core.double]),
+    _truncated: dart.definiteFunctionType(_native_typed_data.NativeFloat32x4, [core.double, core.double, core.double, core.double])
+  }),
+  fields: () => ({
+    x: core.double,
+    y: core.double,
+    z: core.double,
+    w: core.double
+  }),
+  getters: () => ({signMask: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    '+': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
+    _negate: dart.definiteFunctionType(typed_data.Float32x4, []),
+    '-': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
+    '*': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
+    '/': dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
+    lessThan: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
+    lessThanOrEqual: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
+    greaterThan: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
+    greaterThanOrEqual: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
+    equal: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
+    notEqual: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Float32x4]),
+    scale: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
+    abs: dart.definiteFunctionType(typed_data.Float32x4, []),
+    clamp: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4]),
+    shuffle: dart.definiteFunctionType(typed_data.Float32x4, [core.int]),
+    shuffleMix: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4, core.int]),
+    withX: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
+    withY: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
+    withZ: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
+    withW: dart.definiteFunctionType(typed_data.Float32x4, [core.double]),
+    min: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
+    max: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4]),
+    sqrt: dart.definiteFunctionType(typed_data.Float32x4, []),
+    reciprocal: dart.definiteFunctionType(typed_data.Float32x4, []),
+    reciprocalSqrt: dart.definiteFunctionType(typed_data.Float32x4, [])
+  }),
+  sfields: () => ({
+    _list: _native_typed_data.NativeFloat32List,
+    _uint32view: typed_data.Uint32List
+  }),
+  statics: () => ({_truncate: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
+  names: ['_truncate']
+});
+dart.defineLazy(_native_typed_data.NativeFloat32x4, {
+  get _list() {
+    return _native_typed_data.NativeFloat32List.new(4);
+  },
+  get _uint32view() {
+    return _native_typed_data.NativeFloat32x4._list[dartx.buffer][dartx.asUint32List]();
+  }
+});
+_native_typed_data.NativeInt32x4 = class NativeInt32x4 extends core.Object {
+  static _truncate(x) {
+    _native_typed_data.NativeInt32x4._list[dartx._set](0, core.int._check(x));
+    return _native_typed_data.NativeInt32x4._list[dartx._get](0);
+  }
+  new(x, y, z, w) {
+    this.x = core.int._check(_native_typed_data.NativeInt32x4._truncate(x));
+    this.y = core.int._check(_native_typed_data.NativeInt32x4._truncate(y));
+    this.z = core.int._check(_native_typed_data.NativeInt32x4._truncate(z));
+    this.w = core.int._check(_native_typed_data.NativeInt32x4._truncate(w));
+    if (x != this.x && !(typeof x == 'number')) dart.throw(new core.ArgumentError(x));
+    if (y != this.y && !(typeof y == 'number')) dart.throw(new core.ArgumentError(y));
+    if (z != this.z && !(typeof z == 'number')) dart.throw(new core.ArgumentError(z));
+    if (w != this.w && !(typeof w == 'number')) dart.throw(new core.ArgumentError(w));
+  }
+  bool(x, y, z, w) {
+    this.x = dart.test(x) ? -1 : 0;
+    this.y = dart.test(y) ? -1 : 0;
+    this.z = dart.test(z) ? -1 : 0;
+    this.w = dart.test(w) ? -1 : 0;
+  }
+  static fromFloat32x4Bits(f) {
+    let floatList = _native_typed_data.NativeFloat32x4._list;
+    floatList[dartx._set](0, f.x);
+    floatList[dartx._set](1, f.y);
+    floatList[dartx._set](2, f.z);
+    floatList[dartx._set](3, f.w);
+    let view = _native_typed_data.NativeInt32List._check(floatList[dartx.buffer][dartx.asInt32List]());
+    return new _native_typed_data.NativeInt32x4._truncated(view[dartx._get](0), view[dartx._get](1), view[dartx._get](2), view[dartx._get](3));
+  }
+  _truncated(x, y, z, w) {
+    this.x = x;
+    this.y = y;
+    this.z = z;
+    this.w = w;
+  }
+  toString() {
+    return dart.str`[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;
+  }
+  ['|'](other) {
+    return new _native_typed_data.NativeInt32x4._truncated(this.x | other.x, this.y | other.y, this.z | other.z, this.w | other.w);
+  }
+  ['&'](other) {
+    return new _native_typed_data.NativeInt32x4._truncated(this.x & other.x, this.y & other.y, this.z & other.z, this.w & other.w);
+  }
+  ['^'](other) {
+    return new _native_typed_data.NativeInt32x4._truncated(this.x ^ other.x, this.y ^ other.y, this.z ^ other.z, this.w ^ other.w);
+  }
+  ['+'](other) {
+    return new _native_typed_data.NativeInt32x4._truncated(this.x + other.x | 0, this.y + other.y | 0, this.z + other.z | 0, this.w + other.w | 0);
+  }
+  ['-'](other) {
+    return new _native_typed_data.NativeInt32x4._truncated(this.x - other.x | 0, this.y - other.y | 0, this.z - other.z | 0, this.w - other.w | 0);
+  }
+  _negate() {
+    return new _native_typed_data.NativeInt32x4._truncated(-this.x | 0, -this.y | 0, -this.z | 0, -this.w | 0);
+  }
+  get signMask() {
+    let mx = (dart.notNull(this.x) & 2147483648) >>> 31;
+    let my = (dart.notNull(this.y) & 2147483648) >>> 31;
+    let mz = (dart.notNull(this.z) & 2147483648) >>> 31;
+    let mw = (dart.notNull(this.w) & 2147483648) >>> 31;
+    return (mx | my << 1 | mz << 2 | mw << 3) >>> 0;
+  }
+  shuffle(mask) {
+    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
+      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
+    }
+    _native_typed_data.NativeInt32x4._list[dartx._set](0, this.x);
+    _native_typed_data.NativeInt32x4._list[dartx._set](1, this.y);
+    _native_typed_data.NativeInt32x4._list[dartx._set](2, this.z);
+    _native_typed_data.NativeInt32x4._list[dartx._set](3, this.w);
+    let _x = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) & 3);
+    let _y = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
+    let _z = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
+    let _w = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
+    return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
+  }
+  shuffleMix(other, mask) {
+    if (dart.notNull(mask) < 0 || dart.notNull(mask) > 255) {
+      dart.throw(new core.RangeError.range(mask, 0, 255, "mask"));
+    }
+    _native_typed_data.NativeInt32x4._list[dartx._set](0, this.x);
+    _native_typed_data.NativeInt32x4._list[dartx._set](1, this.y);
+    _native_typed_data.NativeInt32x4._list[dartx._set](2, this.z);
+    _native_typed_data.NativeInt32x4._list[dartx._set](3, this.w);
+    let _x = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) & 3);
+    let _y = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 2 & 3);
+    _native_typed_data.NativeInt32x4._list[dartx._set](0, other.x);
+    _native_typed_data.NativeInt32x4._list[dartx._set](1, other.y);
+    _native_typed_data.NativeInt32x4._list[dartx._set](2, other.z);
+    _native_typed_data.NativeInt32x4._list[dartx._set](3, other.w);
+    let _z = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 4 & 3);
+    let _w = _native_typed_data.NativeInt32x4._list[dartx._get](dart.notNull(mask) >> 6 & 3);
+    return new _native_typed_data.NativeInt32x4._truncated(_x, _y, _z, _w);
+  }
+  withX(x) {
+    let _x = core.int._check(_native_typed_data.NativeInt32x4._truncate(x));
+    return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
+  }
+  withY(y) {
+    let _y = core.int._check(_native_typed_data.NativeInt32x4._truncate(y));
+    return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
+  }
+  withZ(z) {
+    let _z = core.int._check(_native_typed_data.NativeInt32x4._truncate(z));
+    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
+  }
+  withW(w) {
+    let _w = core.int._check(_native_typed_data.NativeInt32x4._truncate(w));
+    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
+  }
+  get flagX() {
+    return this.x != 0;
+  }
+  get flagY() {
+    return this.y != 0;
+  }
+  get flagZ() {
+    return this.z != 0;
+  }
+  get flagW() {
+    return this.w != 0;
+  }
+  withFlagX(flagX) {
+    let _x = dart.test(flagX) ? -1 : 0;
+    return new _native_typed_data.NativeInt32x4._truncated(_x, this.y, this.z, this.w);
+  }
+  withFlagY(flagY) {
+    let _y = dart.test(flagY) ? -1 : 0;
+    return new _native_typed_data.NativeInt32x4._truncated(this.x, _y, this.z, this.w);
+  }
+  withFlagZ(flagZ) {
+    let _z = dart.test(flagZ) ? -1 : 0;
+    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, _z, this.w);
+  }
+  withFlagW(flagW) {
+    let _w = dart.test(flagW) ? -1 : 0;
+    return new _native_typed_data.NativeInt32x4._truncated(this.x, this.y, this.z, _w);
+  }
+  select(trueValue, falseValue) {
+    let floatList = _native_typed_data.NativeFloat32x4._list;
+    let intView = _native_typed_data.NativeFloat32x4._uint32view;
+    floatList[dartx._set](0, trueValue.x);
+    floatList[dartx._set](1, trueValue.y);
+    floatList[dartx._set](2, trueValue.z);
+    floatList[dartx._set](3, trueValue.w);
+    let stx = intView[dartx._get](0);
+    let sty = intView[dartx._get](1);
+    let stz = intView[dartx._get](2);
+    let stw = intView[dartx._get](3);
+    floatList[dartx._set](0, falseValue.x);
+    floatList[dartx._set](1, falseValue.y);
+    floatList[dartx._set](2, falseValue.z);
+    floatList[dartx._set](3, falseValue.w);
+    let sfx = intView[dartx._get](0);
+    let sfy = intView[dartx._get](1);
+    let sfz = intView[dartx._get](2);
+    let sfw = intView[dartx._get](3);
+    let _x = (dart.notNull(this.x) & dart.notNull(stx) | ~dart.notNull(this.x) & dart.notNull(sfx)) >>> 0;
+    let _y = (dart.notNull(this.y) & dart.notNull(sty) | ~dart.notNull(this.y) & dart.notNull(sfy)) >>> 0;
+    let _z = (dart.notNull(this.z) & dart.notNull(stz) | ~dart.notNull(this.z) & dart.notNull(sfz)) >>> 0;
+    let _w = (dart.notNull(this.w) & dart.notNull(stw) | ~dart.notNull(this.w) & dart.notNull(sfw)) >>> 0;
+    intView[dartx._set](0, _x);
+    intView[dartx._set](1, _y);
+    intView[dartx._set](2, _z);
+    intView[dartx._set](3, _w);
+    return new _native_typed_data.NativeFloat32x4._truncated(floatList[dartx._get](0), floatList[dartx._get](1), floatList[dartx._get](2), floatList[dartx._get](3));
+  }
+};
+dart.defineNamedConstructor(_native_typed_data.NativeInt32x4, 'bool');
+dart.defineNamedConstructor(_native_typed_data.NativeInt32x4, '_truncated');
+_native_typed_data.NativeInt32x4[dart.implements] = () => [typed_data.Int32x4];
+dart.setSignature(_native_typed_data.NativeInt32x4, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [core.int, core.int, core.int, core.int]),
+    bool: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [core.bool, core.bool, core.bool, core.bool]),
+    fromFloat32x4Bits: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [typed_data.Float32x4]),
+    _truncated: dart.definiteFunctionType(_native_typed_data.NativeInt32x4, [core.int, core.int, core.int, core.int])
+  }),
+  fields: () => ({
+    x: core.int,
+    y: core.int,
+    z: core.int,
+    w: core.int
+  }),
+  getters: () => ({
+    signMask: dart.definiteFunctionType(core.int, []),
+    flagX: dart.definiteFunctionType(core.bool, []),
+    flagY: dart.definiteFunctionType(core.bool, []),
+    flagZ: dart.definiteFunctionType(core.bool, []),
+    flagW: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    '|': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
+    '&': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
+    '^': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
+    '+': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
+    '-': dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4]),
+    _negate: dart.definiteFunctionType(typed_data.Int32x4, []),
+    shuffle: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
+    shuffleMix: dart.definiteFunctionType(typed_data.Int32x4, [typed_data.Int32x4, core.int]),
+    withX: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
+    withY: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
+    withZ: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
+    withW: dart.definiteFunctionType(typed_data.Int32x4, [core.int]),
+    withFlagX: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
+    withFlagY: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
+    withFlagZ: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
+    withFlagW: dart.definiteFunctionType(typed_data.Int32x4, [core.bool]),
+    select: dart.definiteFunctionType(typed_data.Float32x4, [typed_data.Float32x4, typed_data.Float32x4])
+  }),
+  sfields: () => ({_list: _native_typed_data.NativeInt32List}),
+  statics: () => ({_truncate: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
+  names: ['_truncate']
+});
+dart.defineLazy(_native_typed_data.NativeInt32x4, {
+  get _list() {
+    return _native_typed_data.NativeInt32List.new(4);
+  }
+});
+_native_typed_data.NativeFloat64x2 = class NativeFloat64x2 extends core.Object {
+  new(x, y) {
+    this.x = x;
+    this.y = y;
+    if (!(typeof this.x == 'number')) dart.throw(new core.ArgumentError(this.x));
+    if (!(typeof this.y == 'number')) dart.throw(new core.ArgumentError(this.y));
+  }
+  splat(v) {
+    NativeFloat64x2.prototype.new.call(this, v, v);
+  }
+  zero() {
+    NativeFloat64x2.prototype.splat.call(this, 0.0);
+  }
+  fromFloat32x4(v) {
+    NativeFloat64x2.prototype.new.call(this, v.x, v.y);
+  }
+  _doubles(x, y) {
+    this.x = x;
+    this.y = y;
+  }
+  toString() {
+    return dart.str`[${this.x}, ${this.y}]`;
+  }
+  ['+'](other) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) + dart.notNull(other.x), dart.notNull(this.y) + dart.notNull(other.y));
+  }
+  _negate() {
+    return new _native_typed_data.NativeFloat64x2._doubles(-dart.notNull(this.x), -dart.notNull(this.y));
+  }
+  ['-'](other) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) - dart.notNull(other.x), dart.notNull(this.y) - dart.notNull(other.y));
+  }
+  ['*'](other) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(other.x), dart.notNull(this.y) * dart.notNull(other.y));
+  }
+  ['/'](other) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) / dart.notNull(other.x), dart.notNull(this.y) / dart.notNull(other.y));
+  }
+  scale(s) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) * dart.notNull(s), dart.notNull(this.y) * dart.notNull(s));
+  }
+  abs() {
+    return new _native_typed_data.NativeFloat64x2._doubles(this.x[dartx.abs](), this.y[dartx.abs]());
+  }
+  clamp(lowerLimit, upperLimit) {
+    let _lx = lowerLimit.x;
+    let _ly = lowerLimit.y;
+    let _ux = upperLimit.x;
+    let _uy = upperLimit.y;
+    let _x = this.x;
+    let _y = this.y;
+    _x = dart.notNull(_x) > dart.notNull(_ux) ? _ux : _x;
+    _y = dart.notNull(_y) > dart.notNull(_uy) ? _uy : _y;
+    _x = dart.notNull(_x) < dart.notNull(_lx) ? _lx : _x;
+    _y = dart.notNull(_y) < dart.notNull(_ly) ? _ly : _y;
+    return new _native_typed_data.NativeFloat64x2._doubles(_x, _y);
+  }
+  get signMask() {
+    let view = _native_typed_data.NativeFloat64x2._uint32View;
+    _native_typed_data.NativeFloat64x2._list[dartx._set](0, this.x);
+    _native_typed_data.NativeFloat64x2._list[dartx._set](1, this.y);
+    let mx = (dart.notNull(view[dartx._get](1)) & 2147483648) >>> 31;
+    let my = (dart.notNull(view[dartx._get](3)) & 2147483648) >>> 31;
+    return (mx | my << 1) >>> 0;
+  }
+  withX(x) {
+    if (!(typeof x == 'number')) dart.throw(new core.ArgumentError(x));
+    return new _native_typed_data.NativeFloat64x2._doubles(x, this.y);
+  }
+  withY(y) {
+    if (!(typeof y == 'number')) dart.throw(new core.ArgumentError(y));
+    return new _native_typed_data.NativeFloat64x2._doubles(this.x, y);
+  }
+  min(other) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) < dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) < dart.notNull(other.y) ? this.y : other.y);
+  }
+  max(other) {
+    return new _native_typed_data.NativeFloat64x2._doubles(dart.notNull(this.x) > dart.notNull(other.x) ? this.x : other.x, dart.notNull(this.y) > dart.notNull(other.y) ? this.y : other.y);
+  }
+  sqrt() {
+    return new _native_typed_data.NativeFloat64x2._doubles(math.sqrt(this.x), math.sqrt(this.y));
+  }
+};
+dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, 'splat');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, 'zero');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, 'fromFloat32x4');
+dart.defineNamedConstructor(_native_typed_data.NativeFloat64x2, '_doubles');
+_native_typed_data.NativeFloat64x2[dart.implements] = () => [typed_data.Float64x2];
+dart.setSignature(_native_typed_data.NativeFloat64x2, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [core.double, core.double]),
+    splat: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [core.double]),
+    zero: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, []),
+    fromFloat32x4: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [typed_data.Float32x4]),
+    _doubles: dart.definiteFunctionType(_native_typed_data.NativeFloat64x2, [core.double, core.double])
+  }),
+  fields: () => ({
+    x: core.double,
+    y: core.double
+  }),
+  getters: () => ({signMask: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    '+': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
+    _negate: dart.definiteFunctionType(typed_data.Float64x2, []),
+    '-': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
+    '*': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
+    '/': dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
+    scale: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
+    abs: dart.definiteFunctionType(typed_data.Float64x2, []),
+    clamp: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2, typed_data.Float64x2]),
+    withX: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
+    withY: dart.definiteFunctionType(typed_data.Float64x2, [core.double]),
+    min: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
+    max: dart.definiteFunctionType(typed_data.Float64x2, [typed_data.Float64x2]),
+    sqrt: dart.definiteFunctionType(typed_data.Float64x2, [])
+  }),
+  sfields: () => ({
+    _list: _native_typed_data.NativeFloat64List,
+    _uint32View: _native_typed_data.NativeUint32List
+  })
+});
+dart.defineLazy(_native_typed_data.NativeFloat64x2, {
+  get _list() {
+    return _native_typed_data.NativeFloat64List.new(2);
+  },
+  set _list(_) {},
+  get _uint32View() {
+    return _native_typed_data.NativeUint32List._check(_native_typed_data.NativeFloat64x2._list[dartx.buffer][dartx.asUint32List]());
+  },
+  set _uint32View(_) {}
+});
+_native_typed_data._isInvalidArrayIndex = function(index) {
+  return index >>> 0 !== index;
+};
+dart.lazyFn(_native_typed_data._isInvalidArrayIndex, () => intTobool());
+_native_typed_data._checkValidIndex = function(index, list, length) {
+  if (dart.test(_native_typed_data._isInvalidArrayIndex(index)) || index >= dart.notNull(length)) {
+    dart.throw(_js_helper.diagnoseIndexError(list, index));
+  }
+};
+dart.lazyFn(_native_typed_data._checkValidIndex, () => intAndListAndintTovoid());
+_native_typed_data._checkValidRange = function(start, end, length) {
+  if (dart.test(_native_typed_data._isInvalidArrayIndex(start)) || (end == null ? dart.notNull(start) > dart.notNull(length) : dart.test(_native_typed_data._isInvalidArrayIndex(end)) || dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length))) {
+    dart.throw(_js_helper.diagnoseRangeError(start, end, length));
+  }
+  if (end == null) return length;
+  return end;
+};
+dart.fn(_native_typed_data._checkValidRange, intAndintAndintToint());
+async._Callback = dart.typedef('_Callback', () => dart.functionType(dart.void, []));
+async._TakeCallback = dart.typedef('_TakeCallback', () => dart.functionType(dart.void, [async._Callback]));
+async._invokeErrorHandler = function(errorHandler, error, stackTrace) {
+  if (async.ZoneBinaryCallback.is(errorHandler)) {
+    return dart.dcall(errorHandler, error, stackTrace);
+  } else {
+    let unaryErrorHandler = async.ZoneUnaryCallback._check(errorHandler);
+    return dart.dcall(unaryErrorHandler, error);
+  }
+};
+dart.lazyFn(async._invokeErrorHandler, () => FunctionAndObjectAndStackTraceTodynamic());
+async._registerErrorHandler = function(R) {
+  return (errorHandler, zone) => {
+    if (async.ZoneBinaryCallback.is(errorHandler)) {
+      return zone.registerBinaryCallback(dart.dynamic, dart.dynamic, core.StackTrace)(ZoneBinaryCallbackOfdynamic$dynamic$StackTrace().as(errorHandler));
+    } else {
+      return zone.registerUnaryCallback(dart.dynamic, dart.dynamic)(async.ZoneUnaryCallback.as(errorHandler));
+    }
+  };
+};
+dart.lazyFn(async._registerErrorHandler, () => FunctionAndZoneToFunction());
+async.AsyncError = class AsyncError extends core.Object {
+  new(error, stackTrace) {
+    this.error = error;
+    this.stackTrace = stackTrace;
+  }
+  toString() {
+    return dart.str`${this.error}`;
+  }
+};
+async.AsyncError[dart.implements] = () => [core.Error];
+dart.setSignature(async.AsyncError, {
+  constructors: () => ({new: dart.definiteFunctionType(async.AsyncError, [core.Object, core.StackTrace])}),
+  fields: () => ({
+    error: core.Object,
+    stackTrace: core.StackTrace
+  })
+});
+async._UncaughtAsyncError = class _UncaughtAsyncError extends async.AsyncError {
+  new(error, stackTrace) {
+    super.new(error, async._UncaughtAsyncError._getBestStackTrace(error, stackTrace));
+  }
+  static _getBestStackTrace(error, stackTrace) {
+    if (stackTrace != null) return stackTrace;
+    if (core.Error.is(error)) {
+      return error.stackTrace;
+    }
+    return null;
+  }
+  toString() {
+    let result = dart.str`Uncaught Error: ${this.error}`;
+    if (this.stackTrace != null) {
+      result = result + dart.str`\nStack Trace:\n${this.stackTrace}`;
+    }
+    return result;
+  }
+};
+dart.setSignature(async._UncaughtAsyncError, {
+  constructors: () => ({new: dart.definiteFunctionType(async._UncaughtAsyncError, [dart.dynamic, core.StackTrace])}),
+  statics: () => ({_getBestStackTrace: dart.definiteFunctionType(core.StackTrace, [dart.dynamic, core.StackTrace])}),
+  names: ['_getBestStackTrace']
+});
+const _controller$ = Symbol('_controller');
+const _subscribe = Symbol('_subscribe');
+const _createSubscription = Symbol('_createSubscription');
+const _onListen = Symbol('_onListen');
+async._StreamImpl$ = dart.generic(T => {
+  let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _StreamImpl extends async.Stream$(T) {
     new() {
       super.new();
     }
-    decodeStream(byteStream) {
-      return byteStream.transform(core.String)(this.decoder).fold(dart.dynamic)(new core.StringBuffer(), dart.fn((buffer, string) => ((() => {
-        dart.dsend(buffer, 'write', string);
-        return buffer;
-      })()), dynamicAndStringTodynamic())).then(core.String)(dart.fn(buffer => dart.toString(buffer), dynamicToString()));
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      cancelOnError = core.identical(true, cancelOnError);
+      let subscription = this[_createSubscription](onData, onError, onDone, cancelOnError);
+      this[_onListen](subscription);
+      return subscription;
     }
-    static getByName(name) {
-      if (name == null) return null;
-      name = name[dartx.toLowerCase]();
-      return convert.Encoding._nameToEncoding[dartx._get](name);
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      return new (_BufferingStreamSubscriptionOfT())(onData, onError, onDone, cancelOnError);
     }
-  };
-  dart.addSimpleTypeTests(convert.Encoding);
-  dart.setSignature(convert.Encoding, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Encoding, [])}),
-    methods: () => ({decodeStream: dart.definiteFunctionType(async.Future$(core.String), [StreamOfListOfint()])}),
-    sfields: () => ({_nameToEncoding: MapOfString$Encoding()}),
-    statics: () => ({getByName: dart.definiteFunctionType(convert.Encoding, [core.String])}),
-    names: ['getByName']
+    [_onListen](subscription) {}
+  }
+  dart.setSignature(_StreamImpl, {
+    methods: () => ({
+      listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+      [_createSubscription]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
+      [_onListen]: dart.definiteFunctionType(dart.void, [async.StreamSubscription])
+    })
   });
-  dart.defineLazy(convert.Encoding, {
-    get _nameToEncoding() {
-      return dart.map({"iso_8859-1:1987": convert.LATIN1, "iso-ir-100": convert.LATIN1, "iso_8859-1": convert.LATIN1, "iso-8859-1": convert.LATIN1, latin1: convert.LATIN1, l1: convert.LATIN1, ibm819: convert.LATIN1, cp819: convert.LATIN1, csisolatin1: convert.LATIN1, "iso-ir-6": convert.ASCII, "ansi_x3.4-1968": convert.ASCII, "ansi_x3.4-1986": convert.ASCII, "iso_646.irv:1991": convert.ASCII, "iso646-us": convert.ASCII, "us-ascii": convert.ASCII, us: convert.ASCII, ibm367: convert.ASCII, cp367: convert.ASCII, csascii: convert.ASCII, ascii: convert.ASCII, csutf8: convert.UTF8, "utf-8": convert.UTF8}, core.String, convert.Encoding);
-    },
-    set _nameToEncoding(_) {}
-  });
-  convert.AsciiCodec = class AsciiCodec extends convert.Encoding {
-    new(opts) {
-      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
-      this[_allowInvalid] = allowInvalid;
+  return _StreamImpl;
+});
+async._StreamImpl = _StreamImpl();
+async._ControllerStream$ = dart.generic(T => {
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
+  class _ControllerStream extends async._StreamImpl$(T) {
+    new(controller) {
+      this[_controller$] = controller;
       super.new();
     }
-    get name() {
-      return "us-ascii";
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
     }
-    decode(bytes, opts) {
-      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
-      if (allowInvalid == null) allowInvalid = this[_allowInvalid];
-      if (dart.test(allowInvalid)) {
-        return (const$25 || (const$25 = dart.const(new convert.AsciiDecoder({allowInvalid: true})))).convert(bytes);
-      } else {
-        return (const$26 || (const$26 = dart.const(new convert.AsciiDecoder({allowInvalid: false})))).convert(bytes);
-      }
+    get hashCode() {
+      return (dart.notNull(dart.hashCode(this[_controller$])) ^ 892482866) >>> 0;
     }
-    get encoder() {
-      return const$27 || (const$27 = dart.const(new convert.AsciiEncoder()));
+    ['=='](other) {
+      if (core.identical(this, other)) return true;
+      if (!async._ControllerStream.is(other)) return false;
+      let otherStream = async._ControllerStream._check(other);
+      return core.identical(otherStream[_controller$], this[_controller$]);
     }
-    get decoder() {
-      return dart.test(this[_allowInvalid]) ? const$28 || (const$28 = dart.const(new convert.AsciiDecoder({allowInvalid: true}))) : const$29 || (const$29 = dart.const(new convert.AsciiDecoder({allowInvalid: false})));
-    }
-  };
-  dart.setSignature(convert.AsciiCodec, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.AsciiCodec, [], {allowInvalid: core.bool})}),
-    fields: () => ({[_allowInvalid]: core.bool}),
-    getters: () => ({
-      name: dart.definiteFunctionType(core.String, []),
-      encoder: dart.definiteFunctionType(convert.AsciiEncoder, []),
-      decoder: dart.definiteFunctionType(convert.AsciiDecoder, [])
-    }),
-    methods: () => ({decode: dart.definiteFunctionType(core.String, [ListOfint()], {allowInvalid: core.bool})})
+  }
+  dart.setSignature(_ControllerStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ControllerStream$(T), [_StreamControllerLifecycleOfT()])}),
+    fields: () => ({[_controller$]: _StreamControllerLifecycleOfT()}),
+    methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])})
   });
-  convert.ASCII = dart.const(new convert.AsciiCodec());
-  convert._ASCII_MASK = 127;
-  const _subsetMask = Symbol('_subsetMask');
-  convert.Converter$ = dart.generic((S, T) => {
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let _ConverterStreamEventSinkOfS$dynamic = () => (_ConverterStreamEventSinkOfS$dynamic = dart.constFn(convert._ConverterStreamEventSink$(S, dart.dynamic)))();
-    let StreamTransformerOfS$T = () => (StreamTransformerOfS$T = dart.constFn(async.StreamTransformer$(S, T)))();
-    let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let EventSinkTo_ConverterStreamEventSinkOfS$dynamic = () => (EventSinkTo_ConverterStreamEventSinkOfS$dynamic = dart.constFn(dart.definiteFunctionType(_ConverterStreamEventSinkOfS$dynamic(), [async.EventSink])))();
-    class Converter extends core.Object {
-      new() {
-      }
-      fuse(TT) {
-        return other => {
-          convert.Converter$(T, TT)._check(other);
-          return new (convert._FusedConverter$(S, T, TT))(this, other);
-        };
-      }
-      startChunkedConversion(sink) {
-        SinkOfT()._check(sink);
-        dart.throw(new core.UnsupportedError(dart.str`This converter does not support chunked conversions: ${this}`));
-      }
-      bind(stream) {
-        StreamOfS()._check(stream);
-        return StreamOfT().eventTransformed(stream, dart.fn(sink => new (_ConverterStreamEventSinkOfS$dynamic())(this, sink), EventSinkTo_ConverterStreamEventSinkOfS$dynamic()));
-      }
+  return _ControllerStream;
+});
+async._ControllerStream = _ControllerStream();
+async._BroadcastStream$ = dart.generic(T => {
+  let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
+  class _BroadcastStream extends async._ControllerStream$(T) {
+    new(controller) {
+      super.new(controller);
     }
-    dart.addTypeTests(Converter);
-    Converter[dart.implements] = () => [StreamTransformerOfS$T()];
-    dart.setSignature(Converter, {
-      constructors: () => ({new: dart.definiteFunctionType(convert.Converter$(S, T), [])}),
-      methods: () => ({
-        fuse: dart.definiteFunctionType(TT => [convert.Converter$(S, TT), [convert.Converter$(T, TT)]]),
-        startChunkedConversion: dart.definiteFunctionType(core.Sink$(S), [SinkOfT()]),
-        bind: dart.definiteFunctionType(async.Stream$(T), [StreamOfS()])
-      })
-    });
-    return Converter;
+    get isBroadcast() {
+      return true;
+    }
+  }
+  dart.setSignature(_BroadcastStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BroadcastStream$(T), [_StreamControllerLifecycleOfT()])})
   });
-  convert.Converter = Converter();
-  convert._UnicodeSubsetEncoder = class _UnicodeSubsetEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
-    new(subsetMask) {
-      this[_subsetMask] = subsetMask;
-      super.new();
+  return _BroadcastStream;
+});
+async._BroadcastStream = _BroadcastStream();
+const _eventState = Symbol('_eventState');
+const _next$ = Symbol('_next');
+const _previous$ = Symbol('_previous');
+const _expectsEvent = Symbol('_expectsEvent');
+const _toggleEventId = Symbol('_toggleEventId');
+const _isFiring = Symbol('_isFiring');
+const _setRemoveAfterFiring = Symbol('_setRemoveAfterFiring');
+const _removeAfterFiring = Symbol('_removeAfterFiring');
+const _onPause = Symbol('_onPause');
+const _onResume = Symbol('_onResume');
+const _recordCancel = Symbol('_recordCancel');
+const _onCancel = Symbol('_onCancel');
+const _recordPause = Symbol('_recordPause');
+const _recordResume = Symbol('_recordResume');
+const _zone = Symbol('_zone');
+const _state = Symbol('_state');
+const _onData = Symbol('_onData');
+const _onError = Symbol('_onError');
+const _onDone = Symbol('_onDone');
+const _cancelFuture = Symbol('_cancelFuture');
+const _pending = Symbol('_pending');
+const _setPendingEvents = Symbol('_setPendingEvents');
+const _isCanceled = Symbol('_isCanceled');
+const _isPaused = Symbol('_isPaused');
+const _isInputPaused = Symbol('_isInputPaused');
+const _inCallback = Symbol('_inCallback');
+const _guardCallback = Symbol('_guardCallback');
+const _decrementPauseCount = Symbol('_decrementPauseCount');
+const _hasPending = Symbol('_hasPending');
+const _mayResumeInput = Symbol('_mayResumeInput');
+const _cancel = Symbol('_cancel');
+const _isClosed$ = Symbol('_isClosed');
+const _waitsForCancel = Symbol('_waitsForCancel');
+const _canFire = Symbol('_canFire');
+const _cancelOnError = Symbol('_cancelOnError');
+const _incrementPauseCount = Symbol('_incrementPauseCount');
+const _sendData = Symbol('_sendData');
+const _addPending = Symbol('_addPending');
+const _sendError = Symbol('_sendError');
+const _sendDone = Symbol('_sendDone');
+let const$5;
+const _close$ = Symbol('_close');
+const _checkState = Symbol('_checkState');
+async._BufferingStreamSubscription$ = dart.generic(T => {
+  let _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
+  let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
+  let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _BufferingStreamSubscription extends core.Object {
+    new(onData, onError, onDone, cancelOnError) {
+      this[_zone] = async.Zone.current;
+      this[_state] = dart.test(cancelOnError) ? async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR : 0;
+      this[_onData] = null;
+      this[_onError] = null;
+      this[_onDone] = null;
+      this[_cancelFuture] = null;
+      this[_pending] = null;
+      this.onData(onData);
+      this.onError(onError);
+      this.onDone(onDone);
     }
-    convert(string, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      let stringLength = string[dartx.length];
-      core.RangeError.checkValidRange(start, end, stringLength);
-      if (end == null) end = stringLength;
-      let length = dart.notNull(end) - dart.notNull(start);
-      let result = typed_data.Uint8List.new(length);
-      for (let i = 0; i < length; i++) {
-        let codeUnit = string[dartx.codeUnitAt](dart.notNull(start) + i);
-        if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
-          dart.throw(new core.ArgumentError("String contains invalid characters."));
+    [_setPendingEvents](pendingEvents) {
+      _PendingEventsOfT()._check(pendingEvents);
+      dart.assert(this[_pending] == null);
+      if (pendingEvents == null) return;
+      this[_pending] = pendingEvents;
+      if (!dart.test(pendingEvents.isEmpty)) {
+        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_HAS_PENDING) >>> 0;
+        this[_pending].schedule(this);
+      }
+    }
+    onData(handleData) {
+      if (handleData == null) handleData = async._nullDataHandler;
+      this[_onData] = this[_zone].registerUnaryCallback(dart.dynamic, T)(handleData);
+    }
+    onError(handleError) {
+      if (handleError == null) handleError = async._nullErrorHandler;
+      this[_onError] = async._registerErrorHandler(T)(handleError, this[_zone]);
+    }
+    onDone(handleDone) {
+      if (handleDone == null) handleDone = async._nullDoneHandler;
+      this[_onDone] = this[_zone].registerCallback(dart.void)(handleDone);
+    }
+    pause(resumeSignal) {
+      if (resumeSignal === void 0) resumeSignal = null;
+      if (dart.test(this[_isCanceled])) return;
+      let wasPaused = this[_isPaused];
+      let wasInputPaused = this[_isInputPaused];
+      this[_state] = (dart.notNull(this[_state]) + async._BufferingStreamSubscription._STATE_PAUSE_COUNT | async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
+      if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
+      if (!dart.test(wasPaused) && this[_pending] != null) this[_pending].cancelSchedule();
+      if (!dart.test(wasInputPaused) && !dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onPause));
+    }
+    resume() {
+      if (dart.test(this[_isCanceled])) return;
+      if (dart.test(this[_isPaused])) {
+        this[_decrementPauseCount]();
+        if (!dart.test(this[_isPaused])) {
+          if (dart.test(this[_hasPending]) && !dart.test(this[_pending].isEmpty)) {
+            this[_pending].schedule(this);
+          } else {
+            dart.assert(this[_mayResumeInput]);
+            this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
+            if (!dart.test(this[_inCallback])) this[_guardCallback](dart.bind(this, _onResume));
+          }
         }
-        result[dartx._set](i, codeUnit);
+      }
+    }
+    cancel() {
+      this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
+      if (dart.test(this[_isCanceled])) return this[_cancelFuture];
+      this[_cancel]();
+      return this[_cancelFuture];
+    }
+    asFuture(E) {
+      return futureValue => {
+        if (futureValue === void 0) futureValue = null;
+        let result = new (async._Future$(E))();
+        this[_onDone] = dart.fn(() => {
+          result[_complete](futureValue);
+        }, VoidToNull());
+        this[_onError] = dart.fn((error, stackTrace) => {
+          this.cancel();
+          result[_completeError](error, core.StackTrace._check(stackTrace));
+        }, dynamicAnddynamicToNull());
+        return result;
+      };
+    }
+    get [_isInputPaused]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_INPUT_PAUSED) != 0;
+    }
+    get [_isClosed$]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CLOSED) != 0;
+    }
+    get [_isCanceled]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CANCELED) != 0;
+    }
+    get [_waitsForCancel]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) != 0;
+    }
+    get [_inCallback]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_IN_CALLBACK) != 0;
+    }
+    get [_hasPending]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_HAS_PENDING) != 0;
+    }
+    get [_isPaused]() {
+      return dart.notNull(this[_state]) >= async._BufferingStreamSubscription._STATE_PAUSE_COUNT;
+    }
+    get [_canFire]() {
+      return dart.notNull(this[_state]) < async._BufferingStreamSubscription._STATE_IN_CALLBACK;
+    }
+    get [_mayResumeInput]() {
+      return !dart.test(this[_isPaused]) && (this[_pending] == null || dart.test(this[_pending].isEmpty));
+    }
+    get [_cancelOnError]() {
+      return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR) != 0;
+    }
+    get isPaused() {
+      return this[_isPaused];
+    }
+    [_cancel]() {
+      this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CANCELED) >>> 0;
+      if (dart.test(this[_hasPending])) {
+        this[_pending].cancelSchedule();
+      }
+      if (!dart.test(this[_inCallback])) this[_pending] = null;
+      this[_cancelFuture] = this[_onCancel]();
+    }
+    [_incrementPauseCount]() {
+      this[_state] = (dart.notNull(this[_state]) + async._BufferingStreamSubscription._STATE_PAUSE_COUNT | async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
+    }
+    [_decrementPauseCount]() {
+      dart.assert(this[_isPaused]);
+      this[_state] = dart.notNull(this[_state]) - async._BufferingStreamSubscription._STATE_PAUSE_COUNT;
+    }
+    [_add$](data) {
+      T._check(data);
+      dart.assert(!dart.test(this[_isClosed$]));
+      if (dart.test(this[_isCanceled])) return;
+      if (dart.test(this[_canFire])) {
+        this[_sendData](data);
+      } else {
+        this[_addPending](new (_DelayedDataOfT())(data));
+      }
+    }
+    [_addError](error, stackTrace) {
+      if (dart.test(this[_isCanceled])) return;
+      if (dart.test(this[_canFire])) {
+        this[_sendError](error, stackTrace);
+      } else {
+        this[_addPending](new async._DelayedError(error, stackTrace));
+      }
+    }
+    [_close$]() {
+      dart.assert(!dart.test(this[_isClosed$]));
+      if (dart.test(this[_isCanceled])) return;
+      this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CLOSED) >>> 0;
+      if (dart.test(this[_canFire])) {
+        this[_sendDone]();
+      } else {
+        this[_addPending](const$5 || (const$5 = dart.const(new async._DelayedDone())));
+      }
+    }
+    [_onPause]() {
+      dart.assert(this[_isInputPaused]);
+    }
+    [_onResume]() {
+      dart.assert(!dart.test(this[_isInputPaused]));
+    }
+    [_onCancel]() {
+      dart.assert(this[_isCanceled]);
+      return null;
+    }
+    [_addPending](event) {
+      let pending = _StreamImplEventsOfT()._check(this[_pending]);
+      if (this[_pending] == null) {
+        pending = this[_pending] = new (_StreamImplEventsOfT())();
+      }
+      pending.add(event);
+      if (!dart.test(this[_hasPending])) {
+        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_HAS_PENDING) >>> 0;
+        if (!dart.test(this[_isPaused])) {
+          this[_pending].schedule(this);
+        }
+      }
+    }
+    [_sendData](data) {
+      T._check(data);
+      dart.assert(!dart.test(this[_isCanceled]));
+      dart.assert(!dart.test(this[_isPaused]));
+      dart.assert(!dart.test(this[_inCallback]));
+      let wasInputPaused = this[_isInputPaused];
+      this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+      this[_zone].runUnaryGuarded(dart.void, T)(this[_onData], data);
+      this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+      this[_checkState](wasInputPaused);
+    }
+    [_sendError](error, stackTrace) {
+      dart.assert(!dart.test(this[_isCanceled]));
+      dart.assert(!dart.test(this[_isPaused]));
+      dart.assert(!dart.test(this[_inCallback]));
+      let wasInputPaused = this[_isInputPaused];
+      const sendError = (function() {
+        if (dart.test(this[_isCanceled]) && !dart.test(this[_waitsForCancel])) return;
+        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+        if (ZoneBinaryCallbackOfdynamic$Object$StackTrace().is(this[_onError])) {
+          let errorCallback = ZoneBinaryCallbackOfdynamic$Object$StackTrace().as(this[_onError]);
+          this[_zone].runBinaryGuarded(dart.dynamic, core.Object, core.StackTrace)(errorCallback, error, stackTrace);
+        } else {
+          this[_zone].runUnaryGuarded(dart.dynamic, dart.dynamic)(async.ZoneUnaryCallback.as(this[_onError]), error);
+        }
+        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+      }).bind(this);
+      dart.fn(sendError, VoidTovoid$());
+      if (dart.test(this[_cancelOnError])) {
+        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
+        this[_cancel]();
+        if (async.Future.is(this[_cancelFuture])) {
+          this[_cancelFuture].whenComplete(sendError);
+        } else {
+          sendError();
+        }
+      } else {
+        sendError();
+        this[_checkState](wasInputPaused);
+      }
+    }
+    [_sendDone]() {
+      dart.assert(!dart.test(this[_isCanceled]));
+      dart.assert(!dart.test(this[_isPaused]));
+      dart.assert(!dart.test(this[_inCallback]));
+      const sendDone = (function() {
+        if (!dart.test(this[_waitsForCancel])) return;
+        this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CANCELED | async._BufferingStreamSubscription._STATE_CLOSED | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+        this[_zone].runGuarded(dart.void)(this[_onDone]);
+        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+      }).bind(this);
+      dart.fn(sendDone, VoidTovoid$());
+      this[_cancel]();
+      this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
+      if (async.Future.is(this[_cancelFuture])) {
+        this[_cancelFuture].whenComplete(sendDone);
+      } else {
+        sendDone();
+      }
+    }
+    [_guardCallback](callback) {
+      dart.assert(!dart.test(this[_inCallback]));
+      let wasInputPaused = this[_isInputPaused];
+      this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+      callback();
+      this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+      this[_checkState](wasInputPaused);
+    }
+    [_checkState](wasInputPaused) {
+      dart.assert(!dart.test(this[_inCallback]));
+      if (dart.test(this[_hasPending]) && dart.test(this[_pending].isEmpty)) {
+        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_HAS_PENDING) >>> 0;
+        if (dart.test(this[_isInputPaused]) && dart.test(this[_mayResumeInput])) {
+          this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_INPUT_PAUSED) >>> 0;
+        }
+      }
+      while (true) {
+        if (dart.test(this[_isCanceled])) {
+          this[_pending] = null;
+          return;
+        }
+        let isInputPaused = this[_isInputPaused];
+        if (wasInputPaused == isInputPaused) break;
+        this[_state] = (dart.notNull(this[_state]) ^ async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+        if (dart.test(isInputPaused)) {
+          this[_onPause]();
+        } else {
+          this[_onResume]();
+        }
+        this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
+        wasInputPaused = isInputPaused;
+      }
+      if (dart.test(this[_hasPending]) && !dart.test(this[_isPaused])) {
+        this[_pending].schedule(this);
+      }
+    }
+  }
+  dart.addTypeTests(_BufferingStreamSubscription);
+  _BufferingStreamSubscription[dart.implements] = () => [StreamSubscriptionOfT(), _EventSinkOfT(), _EventDispatchOfT()];
+  dart.setSignature(_BufferingStreamSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BufferingStreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool])}),
+    fields: () => ({
+      [_onData]: TTovoid(),
+      [_onError]: core.Function,
+      [_onDone]: async._DoneHandler,
+      [_zone]: async.Zone,
+      [_state]: core.int,
+      [_cancelFuture]: async.Future,
+      [_pending]: _PendingEventsOfT()
+    }),
+    getters: () => ({
+      [_isInputPaused]: dart.definiteFunctionType(core.bool, []),
+      [_isClosed$]: dart.definiteFunctionType(core.bool, []),
+      [_isCanceled]: dart.definiteFunctionType(core.bool, []),
+      [_waitsForCancel]: dart.definiteFunctionType(core.bool, []),
+      [_inCallback]: dart.definiteFunctionType(core.bool, []),
+      [_hasPending]: dart.definiteFunctionType(core.bool, []),
+      [_isPaused]: dart.definiteFunctionType(core.bool, []),
+      [_canFire]: dart.definiteFunctionType(core.bool, []),
+      [_mayResumeInput]: dart.definiteFunctionType(core.bool, []),
+      [_cancelOnError]: dart.definiteFunctionType(core.bool, []),
+      isPaused: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      [_setPendingEvents]: dart.definiteFunctionType(dart.void, [_PendingEventsOfT()]),
+      onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
+      onError: dart.definiteFunctionType(dart.void, [core.Function]),
+      onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
+      resume: dart.definiteFunctionType(dart.void, []),
+      cancel: dart.definiteFunctionType(async.Future, []),
+      asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]]),
+      [_cancel]: dart.definiteFunctionType(dart.void, []),
+      [_incrementPauseCount]: dart.definiteFunctionType(dart.void, []),
+      [_decrementPauseCount]: dart.definiteFunctionType(dart.void, []),
+      [_add$]: dart.definiteFunctionType(dart.void, [T]),
+      [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_close$]: dart.definiteFunctionType(dart.void, []),
+      [_onPause]: dart.definiteFunctionType(dart.void, []),
+      [_onResume]: dart.definiteFunctionType(dart.void, []),
+      [_onCancel]: dart.definiteFunctionType(async.Future, []),
+      [_addPending]: dart.definiteFunctionType(dart.void, [async._DelayedEvent]),
+      [_sendData]: dart.definiteFunctionType(dart.void, [T]),
+      [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_sendDone]: dart.definiteFunctionType(dart.void, []),
+      [_guardCallback]: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      [_checkState]: dart.definiteFunctionType(dart.void, [core.bool])
+    }),
+    sfields: () => ({
+      _STATE_CANCEL_ON_ERROR: core.int,
+      _STATE_CLOSED: core.int,
+      _STATE_INPUT_PAUSED: core.int,
+      _STATE_CANCELED: core.int,
+      _STATE_WAIT_FOR_CANCEL: core.int,
+      _STATE_IN_CALLBACK: core.int,
+      _STATE_HAS_PENDING: core.int,
+      _STATE_PAUSE_COUNT: core.int,
+      _STATE_PAUSE_COUNT_SHIFT: core.int
+    })
+  });
+  return _BufferingStreamSubscription;
+});
+async._BufferingStreamSubscription = _BufferingStreamSubscription();
+async._BufferingStreamSubscription._STATE_CANCEL_ON_ERROR = 1;
+async._BufferingStreamSubscription._STATE_CLOSED = 2;
+async._BufferingStreamSubscription._STATE_INPUT_PAUSED = 4;
+async._BufferingStreamSubscription._STATE_CANCELED = 8;
+async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL = 16;
+async._BufferingStreamSubscription._STATE_IN_CALLBACK = 32;
+async._BufferingStreamSubscription._STATE_HAS_PENDING = 64;
+async._BufferingStreamSubscription._STATE_PAUSE_COUNT = 128;
+async._BufferingStreamSubscription._STATE_PAUSE_COUNT_SHIFT = 7;
+async._ControllerSubscription$ = dart.generic(T => {
+  let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _ControllerSubscription extends async._BufferingStreamSubscription$(T) {
+    new(controller, onData, onError, onDone, cancelOnError) {
+      this[_controller$] = controller;
+      super.new(onData, onError, onDone, cancelOnError);
+    }
+    [_onCancel]() {
+      return this[_controller$][_recordCancel](this);
+    }
+    [_onPause]() {
+      this[_controller$][_recordPause](this);
+    }
+    [_onResume]() {
+      this[_controller$][_recordResume](this);
+    }
+  }
+  dart.setSignature(_ControllerSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ControllerSubscription$(T), [_StreamControllerLifecycleOfT(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
+    fields: () => ({[_controller$]: _StreamControllerLifecycleOfT()})
+  });
+  return _ControllerSubscription;
+});
+async._ControllerSubscription = _ControllerSubscription();
+async._BroadcastSubscription$ = dart.generic(T => {
+  let _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
+  let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _BroadcastSubscription extends async._ControllerSubscription$(T) {
+    new(controller, onData, onError, onDone, cancelOnError) {
+      this[_eventState] = 0;
+      this[_next$] = null;
+      this[_previous$] = null;
+      super.new(controller, onData, onError, onDone, cancelOnError);
+      this[_next$] = this[_previous$] = this;
+    }
+    [_expectsEvent](eventId) {
+      return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_EVENT_ID) == eventId;
+    }
+    [_toggleEventId]() {
+      this[_eventState] = (dart.notNull(this[_eventState]) ^ async._BroadcastSubscription._STATE_EVENT_ID) >>> 0;
+    }
+    get [_isFiring]() {
+      return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_FIRING) != 0;
+    }
+    [_setRemoveAfterFiring]() {
+      dart.assert(this[_isFiring]);
+      this[_eventState] = (dart.notNull(this[_eventState]) | async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING) >>> 0;
+    }
+    get [_removeAfterFiring]() {
+      return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING) != 0;
+    }
+    [_onPause]() {}
+    [_onResume]() {}
+  }
+  dart.setSignature(_BroadcastSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BroadcastSubscription$(T), [_StreamControllerLifecycleOfT(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
+    fields: () => ({
+      [_eventState]: core.int,
+      [_next$]: _BroadcastSubscriptionOfT(),
+      [_previous$]: _BroadcastSubscriptionOfT()
+    }),
+    getters: () => ({
+      [_isFiring]: dart.definiteFunctionType(core.bool, []),
+      [_removeAfterFiring]: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      [_expectsEvent]: dart.definiteFunctionType(core.bool, [core.int]),
+      [_toggleEventId]: dart.definiteFunctionType(dart.void, []),
+      [_setRemoveAfterFiring]: dart.definiteFunctionType(dart.void, [])
+    }),
+    sfields: () => ({
+      _STATE_EVENT_ID: core.int,
+      _STATE_FIRING: core.int,
+      _STATE_REMOVE_AFTER_FIRING: core.int
+    })
+  });
+  return _BroadcastSubscription;
+});
+async._BroadcastSubscription = _BroadcastSubscription();
+async._BroadcastSubscription._STATE_EVENT_ID = 1;
+async._BroadcastSubscription._STATE_FIRING = 2;
+async._BroadcastSubscription._STATE_REMOVE_AFTER_FIRING = 4;
+const _firstSubscription = Symbol('_firstSubscription');
+const _lastSubscription = Symbol('_lastSubscription');
+const _addStreamState = Symbol('_addStreamState');
+const _doneFuture = Symbol('_doneFuture');
+const _isEmpty = Symbol('_isEmpty');
+const _hasOneListener = Symbol('_hasOneListener');
+const _isAddingStream = Symbol('_isAddingStream');
+const _mayAddEvent = Symbol('_mayAddEvent');
+const _ensureDoneFuture = Symbol('_ensureDoneFuture');
+const _addListener = Symbol('_addListener');
+const _removeListener = Symbol('_removeListener');
+const _callOnCancel = Symbol('_callOnCancel');
+const _addEventError = Symbol('_addEventError');
+const _forEachListener = Symbol('_forEachListener');
+const _mayComplete = Symbol('_mayComplete');
+const _asyncComplete = Symbol('_asyncComplete');
+async._BroadcastStreamController$ = dart.generic(T => {
+  let _BroadcastStreamOfT = () => (_BroadcastStreamOfT = dart.constFn(async._BroadcastStream$(T)))();
+  let _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
+  let _BroadcastSubscriptionOfT = () => (_BroadcastSubscriptionOfT = dart.constFn(async._BroadcastSubscription$(T)))();
+  let _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let _AddStreamStateOfT = () => (_AddStreamStateOfT = dart.constFn(async._AddStreamState$(T)))();
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
+  let _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
+  class _BroadcastStreamController extends core.Object {
+    new(onListen, onCancel) {
+      this.onListen = onListen;
+      this.onCancel = onCancel;
+      this[_state] = async._BroadcastStreamController._STATE_INITIAL;
+      this[_firstSubscription] = null;
+      this[_lastSubscription] = null;
+      this[_addStreamState] = null;
+      this[_doneFuture] = null;
+    }
+    get onPause() {
+      dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
+    }
+    set onPause(onPauseHandler) {
+      dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
+    }
+    get onResume() {
+      dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
+    }
+    set onResume(onResumeHandler) {
+      dart.throw(new core.UnsupportedError("Broadcast stream controllers do not support pause callbacks"));
+    }
+    get stream() {
+      return new (_BroadcastStreamOfT())(this);
+    }
+    get sink() {
+      return new (_StreamSinkWrapperOfT())(this);
+    }
+    get isClosed() {
+      return (dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_CLOSED) != 0;
+    }
+    get isPaused() {
+      return false;
+    }
+    get hasListener() {
+      return !dart.test(this[_isEmpty]);
+    }
+    get [_hasOneListener]() {
+      dart.assert(!dart.test(this[_isEmpty]));
+      return core.identical(this[_firstSubscription], this[_lastSubscription]);
+    }
+    get [_isFiring]() {
+      return (dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_FIRING) != 0;
+    }
+    get [_isAddingStream]() {
+      return (dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_ADDSTREAM) != 0;
+    }
+    get [_mayAddEvent]() {
+      return dart.notNull(this[_state]) < async._BroadcastStreamController._STATE_CLOSED;
+    }
+    [_ensureDoneFuture]() {
+      if (this[_doneFuture] != null) return this[_doneFuture];
+      return this[_doneFuture] = new async._Future();
+    }
+    get [_isEmpty]() {
+      return this[_firstSubscription] == null;
+    }
+    [_addListener](subscription) {
+      _BroadcastSubscriptionOfT()._check(subscription);
+      dart.assert(core.identical(subscription[_next$], subscription));
+      subscription[_eventState] = dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_EVENT_ID;
+      let oldLast = this[_lastSubscription];
+      this[_lastSubscription] = subscription;
+      subscription[_next$] = null;
+      subscription[_previous$] = oldLast;
+      if (oldLast == null) {
+        this[_firstSubscription] = subscription;
+      } else {
+        oldLast[_next$] = subscription;
+      }
+    }
+    [_removeListener](subscription) {
+      _BroadcastSubscriptionOfT()._check(subscription);
+      dart.assert(core.identical(subscription[_controller$], this));
+      dart.assert(!core.identical(subscription[_next$], subscription));
+      let previous = subscription[_previous$];
+      let next = subscription[_next$];
+      if (previous == null) {
+        this[_firstSubscription] = next;
+      } else {
+        previous[_next$] = next;
+      }
+      if (next == null) {
+        this[_lastSubscription] = previous;
+      } else {
+        next[_previous$] = previous;
+      }
+      subscription[_next$] = subscription[_previous$] = subscription;
+    }
+    [_subscribe](onData, onError, onDone, cancelOnError) {
+      if (dart.test(this.isClosed)) {
+        if (onDone == null) onDone = async._nullDoneHandler;
+        return new (_DoneStreamSubscriptionOfT())(onDone);
+      }
+      let subscription = new (_BroadcastSubscriptionOfT())(this, onData, onError, onDone, cancelOnError);
+      this[_addListener](_BroadcastSubscriptionOfT()._check(subscription));
+      if (core.identical(this[_firstSubscription], this[_lastSubscription])) {
+        async._runGuarded(this.onListen);
+      }
+      return subscription;
+    }
+    [_recordCancel](sub) {
+      StreamSubscriptionOfT()._check(sub);
+      let subscription = _BroadcastSubscriptionOfT()._check(sub);
+      if (core.identical(subscription[_next$], subscription)) return null;
+      if (dart.test(subscription[_isFiring])) {
+        subscription[_setRemoveAfterFiring]();
+      } else {
+        this[_removeListener](subscription);
+        if (!dart.test(this[_isFiring]) && dart.test(this[_isEmpty])) {
+          this[_callOnCancel]();
+        }
+      }
+      return null;
+    }
+    [_recordPause](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+    }
+    [_recordResume](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+    }
+    [_addEventError]() {
+      if (dart.test(this.isClosed)) {
+        return new core.StateError("Cannot add new events after calling close");
+      }
+      dart.assert(this[_isAddingStream]);
+      return new core.StateError("Cannot add new events while doing an addStream");
+    }
+    add(data) {
+      T._check(data);
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
+      this[_sendData](data);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      error = async._nonNullError(error);
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
+      let replacement = async.Zone.current.errorCallback(error, stackTrace);
+      if (replacement != null) {
+        error = async._nonNullError(replacement.error);
+        stackTrace = replacement.stackTrace;
+      }
+      this[_sendError](error, stackTrace);
+    }
+    close() {
+      if (dart.test(this.isClosed)) {
+        dart.assert(this[_doneFuture] != null);
+        return this[_doneFuture];
+      }
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
+      this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_CLOSED) >>> 0;
+      let doneFuture = this[_ensureDoneFuture]();
+      this[_sendDone]();
+      return doneFuture;
+    }
+    get done() {
+      return this[_ensureDoneFuture]();
+    }
+    addStream(stream, opts) {
+      StreamOfT()._check(stream);
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
+      this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_ADDSTREAM) >>> 0;
+      this[_addStreamState] = new (_AddStreamStateOfT())(this, stream, cancelOnError);
+      return this[_addStreamState].addStreamFuture;
+    }
+    [_add$](data) {
+      T._check(data);
+      this[_sendData](data);
+    }
+    [_addError](error, stackTrace) {
+      this[_sendError](error, stackTrace);
+    }
+    [_close$]() {
+      dart.assert(this[_isAddingStream]);
+      let addState = this[_addStreamState];
+      this[_addStreamState] = null;
+      this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_ADDSTREAM) >>> 0;
+      addState.complete();
+    }
+    [_forEachListener](action) {
+      if (dart.test(this[_isFiring])) {
+        dart.throw(new core.StateError("Cannot fire new event. Controller is already firing an event"));
+      }
+      if (dart.test(this[_isEmpty])) return;
+      let id = dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_EVENT_ID;
+      this[_state] = (dart.notNull(this[_state]) ^ (async._BroadcastStreamController._STATE_EVENT_ID | async._BroadcastStreamController._STATE_FIRING)) >>> 0;
+      let subscription = this[_firstSubscription];
+      while (subscription != null) {
+        if (dart.test(subscription[_expectsEvent](id))) {
+          subscription[_eventState] = (dart.notNull(subscription[_eventState]) | async._BroadcastSubscription._STATE_FIRING) >>> 0;
+          action(subscription);
+          subscription[_toggleEventId]();
+          let next = subscription[_next$];
+          if (dart.test(subscription[_removeAfterFiring])) {
+            this[_removeListener](subscription);
+          }
+          subscription[_eventState] = (dart.notNull(subscription[_eventState]) & ~async._BroadcastSubscription._STATE_FIRING) >>> 0;
+          subscription = next;
+        } else {
+          subscription = subscription[_next$];
+        }
+      }
+      this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_FIRING) >>> 0;
+      if (dart.test(this[_isEmpty])) {
+        this[_callOnCancel]();
+      }
+    }
+    [_callOnCancel]() {
+      dart.assert(this[_isEmpty]);
+      if (dart.test(this.isClosed) && dart.test(this[_doneFuture][_mayComplete])) {
+        this[_doneFuture][_asyncComplete](null);
+      }
+      async._runGuarded(this.onCancel);
+    }
+  }
+  dart.addTypeTests(_BroadcastStreamController);
+  _BroadcastStreamController[dart.implements] = () => [StreamControllerOfT(), _StreamControllerLifecycleOfT(), _EventSinkOfT(), _EventDispatchOfT()];
+  dart.setSignature(_BroadcastStreamController, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BroadcastStreamController$(T), [async.ControllerCallback, async.ControllerCancelCallback])}),
+    fields: () => ({
+      onListen: async.ControllerCallback,
+      onCancel: async.ControllerCancelCallback,
+      [_state]: core.int,
+      [_firstSubscription]: _BroadcastSubscriptionOfT(),
+      [_lastSubscription]: _BroadcastSubscriptionOfT(),
+      [_addStreamState]: _AddStreamStateOfT(),
+      [_doneFuture]: async._Future
+    }),
+    getters: () => ({
+      onPause: dart.definiteFunctionType(async.ControllerCallback, []),
+      onResume: dart.definiteFunctionType(async.ControllerCallback, []),
+      stream: dart.definiteFunctionType(async.Stream$(T), []),
+      sink: dart.definiteFunctionType(async.StreamSink$(T), []),
+      isClosed: dart.definiteFunctionType(core.bool, []),
+      isPaused: dart.definiteFunctionType(core.bool, []),
+      hasListener: dart.definiteFunctionType(core.bool, []),
+      [_hasOneListener]: dart.definiteFunctionType(core.bool, []),
+      [_isFiring]: dart.definiteFunctionType(core.bool, []),
+      [_isAddingStream]: dart.definiteFunctionType(core.bool, []),
+      [_mayAddEvent]: dart.definiteFunctionType(core.bool, []),
+      [_isEmpty]: dart.definiteFunctionType(core.bool, []),
+      done: dart.definiteFunctionType(async.Future, [])
+    }),
+    setters: () => ({
+      onPause: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      onResume: dart.definiteFunctionType(dart.void, [VoidTovoid()])
+    }),
+    methods: () => ({
+      [_ensureDoneFuture]: dart.definiteFunctionType(async._Future, []),
+      [_addListener]: dart.definiteFunctionType(dart.void, [_BroadcastSubscriptionOfT()]),
+      [_removeListener]: dart.definiteFunctionType(dart.void, [_BroadcastSubscriptionOfT()]),
+      [_subscribe]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
+      [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()]),
+      [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
+      [_recordResume]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
+      [_addEventError]: dart.definiteFunctionType(core.Error, []),
+      add: dart.definiteFunctionType(dart.void, [T]),
+      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+      close: dart.definiteFunctionType(async.Future, []),
+      addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool}),
+      [_add$]: dart.definiteFunctionType(dart.void, [T]),
+      [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_close$]: dart.definiteFunctionType(dart.void, []),
+      [_forEachListener]: dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfTTovoid()]),
+      [_callOnCancel]: dart.definiteFunctionType(dart.void, [])
+    }),
+    sfields: () => ({
+      _STATE_INITIAL: core.int,
+      _STATE_EVENT_ID: core.int,
+      _STATE_FIRING: core.int,
+      _STATE_CLOSED: core.int,
+      _STATE_ADDSTREAM: core.int
+    })
+  });
+  return _BroadcastStreamController;
+});
+async._BroadcastStreamController = _BroadcastStreamController();
+async._BroadcastStreamController._STATE_INITIAL = 0;
+async._BroadcastStreamController._STATE_EVENT_ID = 1;
+async._BroadcastStreamController._STATE_FIRING = 2;
+async._BroadcastStreamController._STATE_CLOSED = 4;
+async._BroadcastStreamController._STATE_ADDSTREAM = 8;
+async._SyncBroadcastStreamController$ = dart.generic(T => {
+  let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
+  let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
+  let _BufferingStreamSubscriptionOfTToNull = () => (_BufferingStreamSubscriptionOfTToNull = dart.constFn(dart.definiteFunctionType(core.Null, [_BufferingStreamSubscriptionOfT()])))();
+  class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
+    new(onListen, onCancel) {
+      super.new(onListen, onCancel);
+    }
+    get [_mayAddEvent]() {
+      return dart.test(super[_mayAddEvent]) && !dart.test(this[_isFiring]);
+    }
+    [_addEventError]() {
+      if (dart.test(this[_isFiring])) {
+        return new core.StateError("Cannot fire new event. Controller is already firing an event");
+      }
+      return super[_addEventError]();
+    }
+    [_sendData](data) {
+      T._check(data);
+      if (dart.test(this[_isEmpty])) return;
+      if (dart.test(this[_hasOneListener])) {
+        this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_FIRING) >>> 0;
+        let subscription = this[_firstSubscription];
+        subscription[_add$](data);
+        this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_FIRING) >>> 0;
+        if (dart.test(this[_isEmpty])) {
+          this[_callOnCancel]();
+        }
+        return;
+      }
+      this[_forEachListener](dart.fn(subscription => {
+        subscription[_add$](data);
+      }, _BufferingStreamSubscriptionOfTToNull()));
+    }
+    [_sendError](error, stackTrace) {
+      if (dart.test(this[_isEmpty])) return;
+      this[_forEachListener](dart.fn(subscription => {
+        subscription[_addError](error, stackTrace);
+      }, _BufferingStreamSubscriptionOfTToNull()));
+    }
+    [_sendDone]() {
+      if (!dart.test(this[_isEmpty])) {
+        this[_forEachListener](dart.fn(subscription => {
+          subscription[_close$]();
+        }, _BufferingStreamSubscriptionOfTToNull()));
+      } else {
+        dart.assert(this[_doneFuture] != null);
+        dart.assert(this[_doneFuture][_mayComplete]);
+        this[_doneFuture][_asyncComplete](null);
+      }
+    }
+  }
+  _SyncBroadcastStreamController[dart.implements] = () => [SynchronousStreamControllerOfT()];
+  dart.setSignature(_SyncBroadcastStreamController, {
+    constructors: () => ({new: dart.definiteFunctionType(async._SyncBroadcastStreamController$(T), [VoidTovoid(), VoidTovoid()])}),
+    methods: () => ({
+      [_sendData]: dart.definiteFunctionType(dart.void, [T]),
+      [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_sendDone]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _SyncBroadcastStreamController;
+});
+async._SyncBroadcastStreamController = _SyncBroadcastStreamController();
+let const$6;
+async._AsyncBroadcastStreamController$ = dart.generic(T => {
+  let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
+  class _AsyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
+    new(onListen, onCancel) {
+      super.new(onListen, onCancel);
+    }
+    [_sendData](data) {
+      T._check(data);
+      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
+        subscription[_addPending](new (_DelayedDataOfT())(data));
+      }
+    }
+    [_sendError](error, stackTrace) {
+      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
+        subscription[_addPending](new async._DelayedError(error, stackTrace));
+      }
+    }
+    [_sendDone]() {
+      if (!dart.test(this[_isEmpty])) {
+        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
+          subscription[_addPending](const$6 || (const$6 = dart.const(new async._DelayedDone())));
+        }
+      } else {
+        dart.assert(this[_doneFuture] != null);
+        dart.assert(this[_doneFuture][_mayComplete]);
+        this[_doneFuture][_asyncComplete](null);
+      }
+    }
+  }
+  dart.setSignature(_AsyncBroadcastStreamController, {
+    constructors: () => ({new: dart.definiteFunctionType(async._AsyncBroadcastStreamController$(T), [VoidTovoid(), VoidTovoid()])}),
+    methods: () => ({
+      [_sendData]: dart.definiteFunctionType(dart.void, [T]),
+      [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_sendDone]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _AsyncBroadcastStreamController;
+});
+async._AsyncBroadcastStreamController = _AsyncBroadcastStreamController();
+const _addPendingEvent = Symbol('_addPendingEvent');
+let const$7;
+async._AsBroadcastStreamController$ = dart.generic(T => {
+  let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
+  let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  class _AsBroadcastStreamController extends async._SyncBroadcastStreamController$(T) {
+    new(onListen, onCancel) {
+      this[_pending] = null;
+      super.new(onListen, onCancel);
+    }
+    get [_hasPending]() {
+      return this[_pending] != null && !dart.test(this[_pending].isEmpty);
+    }
+    [_addPendingEvent](event) {
+      if (this[_pending] == null) {
+        this[_pending] = new (_StreamImplEventsOfT())();
+      }
+      this[_pending].add(event);
+    }
+    add(data) {
+      T._check(data);
+      if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
+        this[_addPendingEvent](new (_DelayedDataOfT())(data));
+        return;
+      }
+      super.add(data);
+      while (dart.test(this[_hasPending])) {
+        this[_pending].handleNext(this);
+      }
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
+        this[_addPendingEvent](new async._DelayedError(error, stackTrace));
+        return;
+      }
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_addEventError]());
+      this[_sendError](error, stackTrace);
+      while (dart.test(this[_hasPending])) {
+        this[_pending].handleNext(this);
+      }
+    }
+    close() {
+      if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
+        this[_addPendingEvent](const$7 || (const$7 = dart.const(new async._DelayedDone())));
+        this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_CLOSED) >>> 0;
+        return super.done;
+      }
+      let result = super.close();
+      dart.assert(!dart.test(this[_hasPending]));
+      return result;
+    }
+    [_callOnCancel]() {
+      if (dart.test(this[_hasPending])) {
+        this[_pending].clear();
+        this[_pending] = null;
+      }
+      super[_callOnCancel]();
+    }
+  }
+  _AsBroadcastStreamController[dart.implements] = () => [_EventDispatchOfT()];
+  dart.setSignature(_AsBroadcastStreamController, {
+    constructors: () => ({new: dart.definiteFunctionType(async._AsBroadcastStreamController$(T), [VoidTovoid(), VoidTovoid()])}),
+    fields: () => ({[_pending]: _StreamImplEventsOfT()}),
+    getters: () => ({[_hasPending]: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({[_addPendingEvent]: dart.definiteFunctionType(dart.void, [async._DelayedEvent])})
+  });
+  return _AsBroadcastStreamController;
+});
+async._AsBroadcastStreamController = _AsBroadcastStreamController();
+const _pauseCount = Symbol('_pauseCount');
+const _resume = Symbol('_resume');
+async._DoneSubscription$ = dart.generic(T => {
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _DoneSubscription extends core.Object {
+    new() {
+      this[_pauseCount] = 0;
+    }
+    onData(handleData) {}
+    onError(handleError) {}
+    onDone(handleDone) {}
+    pause(resumeSignal) {
+      if (resumeSignal === void 0) resumeSignal = null;
+      if (resumeSignal != null) resumeSignal.then(dart.void)(dart.bind(this, _resume));
+      this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
+    }
+    resume() {
+      this[_resume](null);
+    }
+    [_resume](_) {
+      if (dart.notNull(this[_pauseCount]) > 0) {
+        this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
+      }
+    }
+    cancel() {
+      return new async._Future.immediate(null);
+    }
+    get isPaused() {
+      return dart.notNull(this[_pauseCount]) > 0;
+    }
+    asFuture(E) {
+      return value => {
+        if (value === void 0) value = null;
+        return new (async._Future$(E))();
+      };
+    }
+  }
+  dart.addTypeTests(_DoneSubscription);
+  _DoneSubscription[dart.implements] = () => [StreamSubscriptionOfT()];
+  dart.setSignature(_DoneSubscription, {
+    fields: () => ({[_pauseCount]: core.int}),
+    getters: () => ({isPaused: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
+      onError: dart.definiteFunctionType(dart.void, [core.Function]),
+      onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
+      resume: dart.definiteFunctionType(dart.void, []),
+      [_resume]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+      cancel: dart.definiteFunctionType(async.Future, []),
+      asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]])
+    })
+  });
+  return _DoneSubscription;
+});
+async._DoneSubscription = _DoneSubscription();
+async.DeferredLibrary = class DeferredLibrary extends core.Object {
+  new(libraryName, opts) {
+    let uri = opts && 'uri' in opts ? opts.uri : null;
+    this.libraryName = libraryName;
+    this.uri = uri;
+  }
+  load() {
+    dart.throw('DeferredLibrary not supported. ' + 'please use the `import "lib.dart" deferred as lib` syntax.');
+  }
+};
+dart.setSignature(async.DeferredLibrary, {
+  constructors: () => ({new: dart.definiteFunctionType(async.DeferredLibrary, [core.String], {uri: core.String})}),
+  fields: () => ({
+    libraryName: core.String,
+    uri: core.String
+  }),
+  methods: () => ({load: dart.definiteFunctionType(async.Future$(core.Null), [])})
+});
+const _s = Symbol('_s');
+async.DeferredLoadException = class DeferredLoadException extends core.Object {
+  new(s) {
+    this[_s] = s;
+  }
+  toString() {
+    return dart.str`DeferredLoadException: '${this[_s]}'`;
+  }
+};
+async.DeferredLoadException[dart.implements] = () => [core.Exception];
+dart.setSignature(async.DeferredLoadException, {
+  constructors: () => ({new: dart.definiteFunctionType(async.DeferredLoadException, [core.String])}),
+  fields: () => ({[_s]: core.String})
+});
+async.FutureOr$ = dart.generic(T => {
+  class FutureOr extends core.Object {
+    _() {
+      dart.throw(new core.UnsupportedError("FutureOr can't be instantiated"));
+    }
+  }
+  dart.addTypeTests(FutureOr);
+  dart.defineNamedConstructor(FutureOr, '_');
+  dart.setSignature(FutureOr, {
+    constructors: () => ({_: dart.definiteFunctionType(async.FutureOr$(T), [])})
+  });
+  return FutureOr;
+});
+async.FutureOr = FutureOr();
+const _completeWithValue = Symbol('_completeWithValue');
+let const$8;
+async.Future$ = dart.flattenFutures(dart.generic(T => {
+  let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
+  let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
+  class Future extends core.Object {
+    static new(computation) {
+      let result = new (_FutureOfT())();
+      async.Timer.run(dart.fn(() => {
+        try {
+          result[_complete](computation());
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          async._completeWithErrorCallback(result, e, s);
+        }
+
+      }, VoidToNull()));
+      return result;
+    }
+    static microtask(computation) {
+      let result = new (_FutureOfT())();
+      async.scheduleMicrotask(dart.fn(() => {
+        try {
+          result[_complete](computation());
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          async._completeWithErrorCallback(result, e, s);
+        }
+
+      }, VoidToNull()));
+      return result;
+    }
+    static sync(computation) {
+      try {
+        let result = computation();
+        return FutureOfT().value(result);
+      } catch (error) {
+        let stackTrace = dart.stackTrace(error);
+        return FutureOfT().error(error, stackTrace);
+      }
+
+    }
+    static value(value) {
+      if (value === void 0) value = null;
+      return new (_FutureOfT()).immediate(value);
+    }
+    static error(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      error = async._nonNullError(error);
+      if (!core.identical(async.Zone.current, async._ROOT_ZONE)) {
+        let replacement = async.Zone.current.errorCallback(error, stackTrace);
+        if (replacement != null) {
+          error = async._nonNullError(replacement.error);
+          stackTrace = replacement.stackTrace;
+        }
+      }
+      return new (_FutureOfT()).immediateError(error, stackTrace);
+    }
+    static delayed(duration, computation) {
+      if (computation === void 0) computation = null;
+      let result = new (_FutureOfT())();
+      async.Timer.new(duration, dart.fn(() => {
+        try {
+          result[_complete](dart.nullSafe(computation, _ => _()));
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          async._completeWithErrorCallback(result, e, s);
+        }
+
+      }, VoidToNull()));
+      return result;
+    }
+    static wait(T) {
+      return (futures, opts) => {
+        let eagerError = opts && 'eagerError' in opts ? opts.eagerError : false;
+        let cleanUp = opts && 'cleanUp' in opts ? opts.cleanUp : null;
+        let result = new (async._Future$(core.List$(T)))();
+        let values = null;
+        let remaining = 0;
+        let error = null;
+        let stackTrace = null;
+        function handleError(theError, theStackTrace) {
+          remaining--;
+          if (values != null) {
+            if (cleanUp != null) {
+              for (let value of values) {
+                if (value != null) {
+                  async.Future.sync(dart.fn(() => {
+                    cleanUp(value);
+                  }, VoidToNull()));
+                }
+              }
+            }
+            values = null;
+            if (remaining == 0 || dart.test(eagerError)) {
+              result[_completeError](theError, core.StackTrace._check(theStackTrace));
+            } else {
+              error = theError;
+              stackTrace = core.StackTrace._check(theStackTrace);
+            }
+          } else if (remaining == 0 && !dart.test(eagerError)) {
+            result[_completeError](error, stackTrace);
+          }
+        }
+        dart.fn(handleError, dynamicAnddynamicTovoid$());
+        try {
+          for (let future of futures) {
+            let pos = remaining;
+            future.then(dart.dynamic)(dart.fn(value => {
+              remaining--;
+              if (values != null) {
+                values[dartx._set](pos, value);
+                if (remaining == 0) {
+                  result[_completeWithValue](values);
+                }
+              } else {
+                if (cleanUp != null && value != null) {
+                  async.Future.sync(dart.fn(() => {
+                    cleanUp(value);
+                  }, VoidToNull()));
+                }
+                if (remaining == 0 && !dart.test(eagerError)) {
+                  result[_completeError](error, stackTrace);
+                }
+              }
+            }, dart.definiteFunctionType(core.Null, [T])), {onError: handleError});
+            remaining++;
+          }
+          if (remaining == 0) {
+            return async.Future$(core.List$(T)).value(const$8 || (const$8 = dart.constList([], dart.dynamic)));
+          }
+          values = core.List$(T).new(remaining);
+        } catch (e) {
+          let st = dart.stackTrace(e);
+          if (remaining == 0 || dart.test(eagerError)) {
+            return async.Future$(core.List$(T)).error(e, st);
+          } else {
+            error = e;
+            stackTrace = st;
+          }
+        }
+
+        return result;
+      };
+    }
+    static any(T) {
+      return futures => {
+        let completer = async.Completer$(T).sync();
+        let onValue = dart.fn(value => {
+          if (!dart.test(completer.isCompleted)) completer.complete(value);
+        }, dart.definiteFunctionType(core.Null, [T]));
+        let onError = dart.fn((error, stack) => {
+          if (!dart.test(completer.isCompleted)) completer.completeError(error, core.StackTrace._check(stack));
+        }, dynamicAnddynamicToNull());
+        for (let future of futures) {
+          future.then(dart.dynamic)(onValue, {onError: onError});
+        }
+        return completer.future;
+      };
+    }
+    static forEach(T) {
+      return (input, f) => {
+        let iterator = input[dartx.iterator];
+        return async.Future.doWhile(dart.fn(() => {
+          if (!dart.test(iterator.moveNext())) return false;
+          return async.Future.sync(dart.fn(() => f(iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
+        }, VoidToObject$()));
+      };
+    }
+    static doWhile(f) {
+      let doneSignal = new async._Future();
+      let nextIteration = null;
+      nextIteration = async.Zone.current.bindUnaryCallback(dart.dynamic, core.bool)(dart.fn(keepGoing => {
+        if (dart.test(keepGoing)) {
+          async.Future.sync(f).then(dart.dynamic)(dynamicToFutureOr()._check(nextIteration), {onError: dart.bind(doneSignal, _completeError)});
+        } else {
+          doneSignal[_complete](null);
+        }
+      }, boolToNull()), {runGuarded: true});
+      dart.dcall(nextIteration, true);
+      return doneSignal;
+    }
+  }
+  dart.addTypeTests(Future);
+  dart.setSignature(Future, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
+      microtask: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
+      sync: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
+      value: dart.definiteFunctionType(async.Future$(T), [], [dart.dynamic]),
+      error: dart.definiteFunctionType(async.Future$(T), [core.Object], [core.StackTrace]),
+      delayed: dart.definiteFunctionType(async.Future$(T), [core.Duration], [VoidTodynamic()])
+    }),
+    sfields: () => ({_nullFuture: async._Future}),
+    statics: () => ({
+      wait: dart.definiteFunctionType(T => [async.Future$(core.List$(T)), [core.Iterable$(async.Future$(T))], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [T])}]),
+      any: dart.definiteFunctionType(T => [async.Future$(T), [core.Iterable$(async.Future$(T))]]),
+      forEach: dart.definiteFunctionType(T => [async.Future, [core.Iterable$(T), dart.functionType(dart.dynamic, [T])]]),
+      doWhile: dart.definiteFunctionType(async.Future, [VoidTodynamic()])
+    }),
+    names: ['wait', 'any', 'forEach', 'doWhile']
+  });
+  return Future;
+}));
+async.Future = Future();
+dart.defineLazy(async.Future, {
+  get _nullFuture() {
+    return async._Future._check(async.Future.value(null));
+  }
+});
+async.TimeoutException = class TimeoutException extends core.Object {
+  new(message, duration) {
+    if (duration === void 0) duration = null;
+    this.message = message;
+    this.duration = duration;
+  }
+  toString() {
+    let result = "TimeoutException";
+    if (this.duration != null) result = dart.str`TimeoutException after ${this.duration}`;
+    if (this.message != null) result = dart.str`${result}: ${this.message}`;
+    return result;
+  }
+};
+async.TimeoutException[dart.implements] = () => [core.Exception];
+dart.setSignature(async.TimeoutException, {
+  constructors: () => ({new: dart.definiteFunctionType(async.TimeoutException, [core.String], [core.Duration])}),
+  fields: () => ({
+    message: core.String,
+    duration: core.Duration
+  })
+});
+async.Completer$ = dart.generic(T => {
+  let _AsyncCompleterOfT = () => (_AsyncCompleterOfT = dart.constFn(async._AsyncCompleter$(T)))();
+  let _SyncCompleterOfT = () => (_SyncCompleterOfT = dart.constFn(async._SyncCompleter$(T)))();
+  class Completer extends core.Object {
+    static new() {
+      return new (_AsyncCompleterOfT())();
+    }
+    static sync() {
+      return new (_SyncCompleterOfT())();
+    }
+  }
+  dart.addTypeTests(Completer);
+  dart.setSignature(Completer, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(async.Completer$(T), []),
+      sync: dart.definiteFunctionType(async.Completer$(T), [])
+    })
+  });
+  return Completer;
+});
+async.Completer = Completer();
+async._completeWithErrorCallback = function(result, error, stackTrace) {
+  let replacement = async.Zone.current.errorCallback(error, core.StackTrace._check(stackTrace));
+  if (replacement != null) {
+    error = async._nonNullError(replacement.error);
+    stackTrace = replacement.stackTrace;
+  }
+  result[_completeError](error, core.StackTrace._check(stackTrace));
+};
+dart.lazyFn(async._completeWithErrorCallback, () => _FutureAnddynamicAnddynamicTovoid());
+async._nonNullError = function(error) {
+  return error != null ? error : new core.NullThrownError();
+};
+dart.fn(async._nonNullError, ObjectToObject());
+async._FutureOnValue$ = dart.generic((S, T) => {
+  const _FutureOnValue = dart.typedef('_FutureOnValue', () => dart.functionType(dart.dynamic, [S]));
+  return _FutureOnValue;
+});
+async._FutureOnValue = _FutureOnValue();
+async._FutureErrorTest = dart.typedef('_FutureErrorTest', () => dart.functionType(core.bool, [dart.dynamic]));
+async._FutureAction = dart.typedef('_FutureAction', () => dart.functionType(dart.dynamic, []));
+async._Completer$ = dart.generic(T => {
+  let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
+  let CompleterOfT = () => (CompleterOfT = dart.constFn(async.Completer$(T)))();
+  class _Completer extends core.Object {
+    new() {
+      this.future = new (_FutureOfT())();
+    }
+    completeError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      error = async._nonNullError(error);
+      if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError("Future already completed"));
+      let replacement = async.Zone.current.errorCallback(error, stackTrace);
+      if (replacement != null) {
+        error = async._nonNullError(replacement.error);
+        stackTrace = replacement.stackTrace;
+      }
+      this[_completeError](error, stackTrace);
+    }
+    get isCompleted() {
+      return !dart.test(this.future[_mayComplete]);
+    }
+  }
+  dart.addTypeTests(_Completer);
+  _Completer[dart.implements] = () => [CompleterOfT()];
+  dart.setSignature(_Completer, {
+    fields: () => ({future: _FutureOfT()}),
+    getters: () => ({isCompleted: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({completeError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace])})
+  });
+  return _Completer;
+});
+async._Completer = _Completer();
+const _asyncCompleteError = Symbol('_asyncCompleteError');
+async._AsyncCompleter$ = dart.generic(T => {
+  class _AsyncCompleter extends async._Completer$(T) {
+    new() {
+      super.new();
+    }
+    complete(value) {
+      if (value === void 0) value = null;
+      if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError("Future already completed"));
+      this.future[_asyncComplete](value);
+    }
+    [_completeError](error, stackTrace) {
+      this.future[_asyncCompleteError](error, stackTrace);
+    }
+  }
+  dart.setSignature(_AsyncCompleter, {
+    methods: () => ({
+      complete: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
+      [_completeError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])
+    })
+  });
+  return _AsyncCompleter;
+});
+async._AsyncCompleter = _AsyncCompleter();
+async._SyncCompleter$ = dart.generic(T => {
+  class _SyncCompleter extends async._Completer$(T) {
+    new() {
+      super.new();
+    }
+    complete(value) {
+      if (value === void 0) value = null;
+      if (!dart.test(this.future[_mayComplete])) dart.throw(new core.StateError("Future already completed"));
+      this.future[_complete](value);
+    }
+    [_completeError](error, stackTrace) {
+      this.future[_completeError](error, stackTrace);
+    }
+  }
+  dart.setSignature(_SyncCompleter, {
+    methods: () => ({
+      complete: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
+      [_completeError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])
+    })
+  });
+  return _SyncCompleter;
+});
+async._SyncCompleter = _SyncCompleter();
+const _nextListener = Symbol('_nextListener');
+const _onValue = Symbol('_onValue');
+const _errorTest = Symbol('_errorTest');
+const _whenCompleteAction = Symbol('_whenCompleteAction');
+async._FutureListener$ = dart.generic((S, T) => {
+  let _FutureOnValueOfS$T = () => (_FutureOnValueOfS$T = dart.constFn(async._FutureOnValue$(S, T)))();
+  let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
+  class _FutureListener extends core.Object {
+    then(result, onValue, errorCallback) {
+      this.result = result;
+      this.callback = onValue;
+      this.errorCallback = errorCallback;
+      this.state = errorCallback == null ? async._FutureListener.STATE_THEN : async._FutureListener.STATE_THEN_ONERROR;
+      this[_nextListener] = null;
+    }
+    catchError(result, errorCallback, test) {
+      this.result = result;
+      this.errorCallback = errorCallback;
+      this.callback = test;
+      this.state = test == null ? async._FutureListener.STATE_CATCHERROR : async._FutureListener.STATE_CATCHERROR_TEST;
+      this[_nextListener] = null;
+    }
+    whenComplete(result, onComplete) {
+      this.result = result;
+      this.callback = onComplete;
+      this.errorCallback = null;
+      this.state = async._FutureListener.STATE_WHENCOMPLETE;
+      this[_nextListener] = null;
+    }
+    get [_zone]() {
+      return this.result[_zone];
+    }
+    get handlesValue() {
+      return (dart.notNull(this.state) & async._FutureListener.MASK_VALUE) != 0;
+    }
+    get handlesError() {
+      return (dart.notNull(this.state) & async._FutureListener.MASK_ERROR) != 0;
+    }
+    get hasErrorTest() {
+      return this.state == async._FutureListener.STATE_CATCHERROR_TEST;
+    }
+    get handlesComplete() {
+      return this.state == async._FutureListener.STATE_WHENCOMPLETE;
+    }
+    get [_onValue]() {
+      dart.assert(this.handlesValue);
+      return _FutureOnValueOfS$T().as(this.callback);
+    }
+    get [_onError]() {
+      return this.errorCallback;
+    }
+    get [_errorTest]() {
+      dart.assert(this.hasErrorTest);
+      return async._FutureErrorTest.as(this.callback);
+    }
+    get [_whenCompleteAction]() {
+      dart.assert(this.handlesComplete);
+      return async._FutureAction.as(this.callback);
+    }
+    get hasErrorCallback() {
+      dart.assert(this.handlesError);
+      return this[_onError] != null;
+    }
+    handleValue(sourceResult) {
+      S._check(sourceResult);
+      return this[_zone].runUnary(dart.dynamic, S)(this[_onValue], sourceResult);
+    }
+    matchesErrorTest(asyncError) {
+      if (!dart.test(this.hasErrorTest)) return true;
+      let test = this[_errorTest];
+      return this[_zone].runUnary(core.bool, dart.dynamic)(this[_errorTest], asyncError.error);
+    }
+    handleError(asyncError) {
+      dart.assert(dart.test(this.handlesError) && dart.test(this.hasErrorCallback));
+      if (async.ZoneBinaryCallback.is(this.errorCallback)) {
+        let typedErrorCallback = ZoneBinaryCallbackOfObject$Object$StackTrace().as(this.errorCallback);
+        return this[_zone].runBinary(core.Object, core.Object, core.StackTrace)(typedErrorCallback, asyncError.error, asyncError.stackTrace);
+      } else {
+        return this[_zone].runUnary(dart.dynamic, dart.dynamic)(dynamicTodynamic()._check(this.errorCallback), asyncError.error);
+      }
+    }
+    handleWhenComplete() {
+      dart.assert(!dart.test(this.handlesError));
+      return this[_zone].run(dart.dynamic)(this[_whenCompleteAction]);
+    }
+  }
+  dart.addTypeTests(_FutureListener);
+  dart.defineNamedConstructor(_FutureListener, 'then');
+  dart.defineNamedConstructor(_FutureListener, 'catchError');
+  dart.defineNamedConstructor(_FutureListener, 'whenComplete');
+  dart.setSignature(_FutureListener, {
+    constructors: () => ({
+      then: dart.definiteFunctionType(async._FutureListener$(S, T), [_FutureOfT(), _FutureOnValueOfS$T(), core.Function]),
+      catchError: dart.definiteFunctionType(async._FutureListener$(S, T), [_FutureOfT(), core.Function, async._FutureErrorTest]),
+      whenComplete: dart.definiteFunctionType(async._FutureListener$(S, T), [_FutureOfT(), async._FutureAction])
+    }),
+    fields: () => ({
+      [_nextListener]: async._FutureListener,
+      result: _FutureOfT(),
+      state: core.int,
+      callback: core.Function,
+      errorCallback: core.Function
+    }),
+    getters: () => ({
+      [_zone]: dart.definiteFunctionType(async.Zone, []),
+      handlesValue: dart.definiteFunctionType(core.bool, []),
+      handlesError: dart.definiteFunctionType(core.bool, []),
+      hasErrorTest: dart.definiteFunctionType(core.bool, []),
+      handlesComplete: dart.definiteFunctionType(core.bool, []),
+      [_onValue]: dart.definiteFunctionType(async._FutureOnValue$(S, T), []),
+      [_onError]: dart.definiteFunctionType(core.Function, []),
+      [_errorTest]: dart.definiteFunctionType(async._FutureErrorTest, []),
+      [_whenCompleteAction]: dart.definiteFunctionType(async._FutureAction, []),
+      hasErrorCallback: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      handleValue: dart.definiteFunctionType(dart.dynamic, [S]),
+      matchesErrorTest: dart.definiteFunctionType(core.bool, [async.AsyncError]),
+      handleError: dart.definiteFunctionType(dart.dynamic, [async.AsyncError]),
+      handleWhenComplete: dart.definiteFunctionType(dart.dynamic, [])
+    }),
+    sfields: () => ({
+      MASK_VALUE: core.int,
+      MASK_ERROR: core.int,
+      MASK_TEST_ERROR: core.int,
+      MASK_WHENCOMPLETE: core.int,
+      STATE_CHAIN: core.int,
+      STATE_THEN: core.int,
+      STATE_THEN_ONERROR: core.int,
+      STATE_CATCHERROR: core.int,
+      STATE_CATCHERROR_TEST: core.int,
+      STATE_WHENCOMPLETE: core.int
+    })
+  });
+  return _FutureListener;
+});
+async._FutureListener = _FutureListener();
+async._FutureListener.MASK_VALUE = 1;
+async._FutureListener.MASK_ERROR = 2;
+async._FutureListener.MASK_TEST_ERROR = 4;
+async._FutureListener.MASK_WHENCOMPLETE = 8;
+async._FutureListener.STATE_CHAIN = 0;
+async._FutureListener.STATE_THEN_ONERROR = 3;
+async._FutureListener.STATE_CATCHERROR_TEST = 6;
+dart.defineLazy(async._FutureListener, {
+  get STATE_THEN() {
+    return async._FutureListener.MASK_VALUE;
+  },
+  get STATE_CATCHERROR() {
+    return async._FutureListener.MASK_ERROR;
+  },
+  get STATE_WHENCOMPLETE() {
+    return async._FutureListener.MASK_WHENCOMPLETE;
+  }
+});
+const _resultOrListeners = Symbol('_resultOrListeners');
+const _isPendingComplete = Symbol('_isPendingComplete');
+const _mayAddListener = Symbol('_mayAddListener');
+const _isChained = Symbol('_isChained');
+const _isComplete = Symbol('_isComplete');
+const _hasError = Symbol('_hasError');
+const _setChained = Symbol('_setChained');
+const _thenNoZoneRegistration = Symbol('_thenNoZoneRegistration');
+const _setPendingComplete = Symbol('_setPendingComplete');
+const _clearPendingComplete = Symbol('_clearPendingComplete');
+const _error = Symbol('_error');
+const _chainSource = Symbol('_chainSource');
+const _setValue = Symbol('_setValue');
+const _setErrorObject = Symbol('_setErrorObject');
+const _setError = Symbol('_setError');
+const _cloneResult = Symbol('_cloneResult');
+const _prependListeners = Symbol('_prependListeners');
+const _reverseListeners = Symbol('_reverseListeners');
+const _removeListeners = Symbol('_removeListeners');
+async._Future$ = dart.flattenFutures(dart.generic(T => {
+  let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
+  let _FutureListenerOfT$T = () => (_FutureListenerOfT$T = dart.constFn(async._FutureListener$(T, T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
+  let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
+  let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
+  class _Future extends core.Object {
+    new() {
+      this[_zone] = async.Zone.current;
+      this[_state] = async._Future._INCOMPLETE;
+      this[_resultOrListeners] = null;
+    }
+    immediate(value) {
+      this[_zone] = async.Zone.current;
+      this[_state] = async._Future._INCOMPLETE;
+      this[_resultOrListeners] = null;
+      this[_asyncComplete](value);
+    }
+    immediateError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_zone] = async.Zone.current;
+      this[_state] = async._Future._INCOMPLETE;
+      this[_resultOrListeners] = null;
+      this[_asyncCompleteError](error, stackTrace);
+    }
+    get [_mayComplete]() {
+      return this[_state] == async._Future._INCOMPLETE;
+    }
+    get [_isPendingComplete]() {
+      return this[_state] == async._Future._PENDING_COMPLETE;
+    }
+    get [_mayAddListener]() {
+      return dart.notNull(this[_state]) <= async._Future._PENDING_COMPLETE;
+    }
+    get [_isChained]() {
+      return this[_state] == async._Future._CHAINED;
+    }
+    get [_isComplete]() {
+      return dart.notNull(this[_state]) >= async._Future._VALUE;
+    }
+    get [_hasError]() {
+      return this[_state] == async._Future._ERROR;
+    }
+    [_setChained](source) {
+      dart.assert(this[_mayAddListener]);
+      this[_state] = async._Future._CHAINED;
+      this[_resultOrListeners] = source;
+    }
+    then(E) {
+      return (f, opts) => {
+        let onError = opts && 'onError' in opts ? opts.onError : null;
+        let currentZone = async.Zone.current;
+        let registered = null;
+        if (!core.identical(currentZone, async._ROOT_ZONE)) {
+          f = currentZone.registerUnaryCallback(async.FutureOr$(E), T)(f);
+          if (onError != null) {
+            onError = async._registerErrorHandler(T)(onError, currentZone);
+          }
+        }
+        return this[_thenNoZoneRegistration](E)(f, onError);
+      };
+    }
+    [_thenNoZoneRegistration](E) {
+      return (f, onError) => {
+        let result = new (async._Future$(E))();
+        this[_addListener](new (async._FutureListener$(T, E)).then(result, f, onError));
+        return result;
+      };
+    }
+    catchError(onError, opts) {
+      let test = opts && 'test' in opts ? opts.test : null;
+      let result = new (_FutureOfT())();
+      if (!core.identical(result[_zone], async._ROOT_ZONE)) {
+        onError = async._registerErrorHandler(T)(onError, result[_zone]);
+        if (test != null) test = result[_zone].registerUnaryCallback(core.bool, dart.dynamic)(test);
+      }
+      this[_addListener](new (_FutureListenerOfT$T()).catchError(result, onError, test));
+      return result;
+    }
+    whenComplete(action) {
+      let result = new (_FutureOfT())();
+      if (!core.identical(result[_zone], async._ROOT_ZONE)) {
+        action = result[_zone].registerCallback(dart.dynamic)(action);
+      }
+      this[_addListener](new (_FutureListenerOfT$T()).whenComplete(result, action));
+      return result;
+    }
+    asStream() {
+      return StreamOfT().fromFuture(this);
+    }
+    [_setPendingComplete]() {
+      dart.assert(this[_mayComplete]);
+      this[_state] = async._Future._PENDING_COMPLETE;
+    }
+    [_clearPendingComplete]() {
+      dart.assert(this[_isPendingComplete]);
+      this[_state] = async._Future._INCOMPLETE;
+    }
+    get [_error]() {
+      dart.assert(this[_hasError]);
+      return async.AsyncError._check(this[_resultOrListeners]);
+    }
+    get [_chainSource]() {
+      dart.assert(this[_isChained]);
+      return async._Future._check(this[_resultOrListeners]);
+    }
+    [_setValue](value) {
+      T._check(value);
+      dart.assert(!dart.test(this[_isComplete]));
+      this[_state] = async._Future._VALUE;
+      this[_resultOrListeners] = value;
+    }
+    [_setErrorObject](error) {
+      dart.assert(!dart.test(this[_isComplete]));
+      this[_state] = async._Future._ERROR;
+      this[_resultOrListeners] = error;
+    }
+    [_setError](error, stackTrace) {
+      this[_setErrorObject](new async.AsyncError(error, stackTrace));
+    }
+    [_cloneResult](source) {
+      dart.assert(!dart.test(this[_isComplete]));
+      dart.assert(source[_isComplete]);
+      this[_state] = source[_state];
+      this[_resultOrListeners] = source[_resultOrListeners];
+    }
+    [_addListener](listener) {
+      dart.assert(listener[_nextListener] == null);
+      if (dart.test(this[_mayAddListener])) {
+        listener[_nextListener] = async._FutureListener._check(this[_resultOrListeners]);
+        this[_resultOrListeners] = listener;
+      } else {
+        if (dart.test(this[_isChained])) {
+          let source = this[_chainSource];
+          if (!dart.test(source[_isComplete])) {
+            source[_addListener](listener);
+            return;
+          }
+          this[_cloneResult](source);
+        }
+        dart.assert(this[_isComplete]);
+        this[_zone].scheduleMicrotask(dart.fn(() => {
+          async._Future._propagateToListeners(this, listener);
+        }, VoidToNull()));
+      }
+    }
+    [_prependListeners](listeners) {
+      if (listeners == null) return;
+      if (dart.test(this[_mayAddListener])) {
+        let existingListeners = async._FutureListener._check(this[_resultOrListeners]);
+        this[_resultOrListeners] = listeners;
+        if (existingListeners != null) {
+          let cursor = listeners;
+          while (cursor[_nextListener] != null) {
+            cursor = cursor[_nextListener];
+          }
+          cursor[_nextListener] = existingListeners;
+        }
+      } else {
+        if (dart.test(this[_isChained])) {
+          let source = this[_chainSource];
+          if (!dart.test(source[_isComplete])) {
+            source[_prependListeners](listeners);
+            return;
+          }
+          this[_cloneResult](source);
+        }
+        dart.assert(this[_isComplete]);
+        listeners = this[_reverseListeners](listeners);
+        this[_zone].scheduleMicrotask(dart.fn(() => {
+          async._Future._propagateToListeners(this, listeners);
+        }, VoidToNull()));
+      }
+    }
+    [_removeListeners]() {
+      dart.assert(!dart.test(this[_isComplete]));
+      let current = async._FutureListener._check(this[_resultOrListeners]);
+      this[_resultOrListeners] = null;
+      return this[_reverseListeners](current);
+    }
+    [_reverseListeners](listeners) {
+      let prev = null;
+      let current = listeners;
+      while (current != null) {
+        let next = current[_nextListener];
+        current[_nextListener] = prev;
+        prev = current;
+        current = next;
+      }
+      return prev;
+    }
+    static _chainForeignFuture(source, target) {
+      dart.assert(!dart.test(target[_isComplete]));
+      dart.assert(!async._Future.is(source));
+      target[_setPendingComplete]();
+      try {
+        source.then(dart.dynamic)(dart.fn(value => {
+          dart.assert(target[_isPendingComplete]);
+          target[_clearPendingComplete]();
+          target[_complete](value);
+        }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
+            if (stackTrace === void 0) stackTrace = null;
+            dart.assert(target[_isPendingComplete]);
+            target[_completeError](error, core.StackTrace._check(stackTrace));
+          }, dynamic__ToNull())});
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        async.scheduleMicrotask(dart.fn(() => {
+          target[_completeError](e, s);
+        }, VoidToNull()));
+      }
+
+    }
+    static _chainCoreFuture(source, target) {
+      dart.assert(target[_mayAddListener]);
+      while (dart.test(source[_isChained])) {
+        source = source[_chainSource];
+      }
+      if (dart.test(source[_isComplete])) {
+        let listeners = target[_removeListeners]();
+        target[_cloneResult](source);
+        async._Future._propagateToListeners(target, listeners);
+      } else {
+        let listeners = async._FutureListener._check(target[_resultOrListeners]);
+        target[_setChained](source);
+        source[_prependListeners](listeners);
+      }
+    }
+    [_complete](value) {
+      dart.assert(!dart.test(this[_isComplete]));
+      if (async.Future.is(value)) {
+        if (async._Future.is(value)) {
+          async._Future._chainCoreFuture(value, this);
+        } else {
+          async._Future._chainForeignFuture(value, this);
+        }
+      } else {
+        let listeners = this[_removeListeners]();
+        this[_setValue](T.as(value));
+        async._Future._propagateToListeners(this, listeners);
+      }
+    }
+    [_completeWithValue](value) {
+      T._check(value);
+      dart.assert(!dart.test(this[_isComplete]));
+      dart.assert(!async.Future.is(value));
+      let listeners = this[_removeListeners]();
+      this[_setValue](value);
+      async._Future._propagateToListeners(this, listeners);
+    }
+    [_completeError](error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      dart.assert(!dart.test(this[_isComplete]));
+      let listeners = this[_removeListeners]();
+      this[_setError](error, stackTrace);
+      async._Future._propagateToListeners(this, listeners);
+    }
+    [_asyncComplete](value) {
+      dart.assert(!dart.test(this[_isComplete]));
+      if (async.Future.is(value)) {
+        let typedFuture = FutureOfT().as(value);
+        if (async._Future.is(typedFuture)) {
+          let coreFuture = _FutureOfT()._check(typedFuture);
+          if (dart.test(coreFuture[_hasError])) {
+            this[_setPendingComplete]();
+            this[_zone].scheduleMicrotask(dart.fn(() => {
+              async._Future._chainCoreFuture(coreFuture, this);
+            }, VoidToNull()));
+          } else {
+            async._Future._chainCoreFuture(coreFuture, this);
+          }
+        } else {
+          async._Future._chainForeignFuture(typedFuture, this);
+        }
+        return;
+      }
+      let typedValue = T.as(value);
+      this[_setPendingComplete]();
+      this[_zone].scheduleMicrotask(dart.fn(() => {
+        this[_completeWithValue](typedValue);
+      }, VoidToNull()));
+    }
+    [_asyncCompleteError](error, stackTrace) {
+      dart.assert(!dart.test(this[_isComplete]));
+      this[_setPendingComplete]();
+      this[_zone].scheduleMicrotask(dart.fn(() => {
+        this[_completeError](error, stackTrace);
+      }, VoidToNull()));
+    }
+    static _propagateToListeners(source, listeners) {
+      while (true) {
+        dart.assert(source[_isComplete]);
+        let hasError = source[_hasError];
+        if (listeners == null) {
+          if (dart.test(hasError)) {
+            let asyncError = source[_error];
+            source[_zone].handleUncaughtError(dart.dynamic)(asyncError.error, asyncError.stackTrace);
+          }
+          return;
+        }
+        while (listeners[_nextListener] != null) {
+          let listener = listeners;
+          listeners = listener[_nextListener];
+          listener[_nextListener] = null;
+          async._Future._propagateToListeners(source, listener);
+        }
+        let listener = listeners;
+        let sourceResult = source[_resultOrListeners];
+        let listenerHasError = hasError;
+        let listenerValueOrError = sourceResult;
+        if (dart.test(hasError) || dart.test(listener.handlesValue) || dart.test(listener.handlesComplete)) {
+          let zone = listener[_zone];
+          if (dart.test(hasError) && !dart.test(source[_zone].inSameErrorZone(zone))) {
+            let asyncError = source[_error];
+            source[_zone].handleUncaughtError(dart.dynamic)(asyncError.error, asyncError.stackTrace);
+            return;
+          }
+          let oldZone = null;
+          if (!core.identical(async.Zone.current, zone)) {
+            oldZone = async.Zone._enter(zone);
+          }
+          function handleWhenCompleteCallback() {
+            dart.assert(!dart.test(listener.handlesValue));
+            dart.assert(!dart.test(listener.handlesError));
+            let completeResult = null;
+            try {
+              completeResult = listener.handleWhenComplete();
+            } catch (e) {
+              let s = dart.stackTrace(e);
+              if (dart.test(hasError) && core.identical(source[_error].error, e)) {
+                listenerValueOrError = source[_error];
+              } else {
+                listenerValueOrError = new async.AsyncError(e, s);
+              }
+              listenerHasError = true;
+              return;
+            }
+
+            if (async.Future.is(completeResult)) {
+              if (async._Future.is(completeResult) && dart.test(completeResult[_isComplete])) {
+                if (dart.test(completeResult[_hasError])) {
+                  listenerValueOrError = completeResult[_error];
+                  listenerHasError = true;
+                }
+                return;
+              }
+              let originalSource = source;
+              listenerValueOrError = completeResult.then(dart.dynamic)(dart.fn(_ => originalSource, dynamicTo_Future()));
+              listenerHasError = false;
+            }
+          }
+          dart.fn(handleWhenCompleteCallback, VoidTovoid$());
+          function handleValueCallback() {
+            try {
+              listenerValueOrError = listener.handleValue(sourceResult);
+            } catch (e) {
+              let s = dart.stackTrace(e);
+              listenerValueOrError = new async.AsyncError(e, s);
+              listenerHasError = true;
+            }
+
+          }
+          dart.fn(handleValueCallback, VoidTovoid$());
+          function handleError() {
+            try {
+              let asyncError = source[_error];
+              if (dart.test(listener.matchesErrorTest(asyncError)) && dart.test(listener.hasErrorCallback)) {
+                listenerValueOrError = listener.handleError(asyncError);
+                listenerHasError = false;
+              }
+            } catch (e) {
+              let s = dart.stackTrace(e);
+              if (core.identical(source[_error].error, e)) {
+                listenerValueOrError = source[_error];
+              } else {
+                listenerValueOrError = new async.AsyncError(e, s);
+              }
+              listenerHasError = true;
+            }
+
+          }
+          dart.fn(handleError, VoidTovoid$());
+          if (dart.test(listener.handlesComplete)) {
+            handleWhenCompleteCallback();
+          } else if (!dart.test(hasError)) {
+            if (dart.test(listener.handlesValue)) {
+              handleValueCallback();
+            }
+          } else {
+            if (dart.test(listener.handlesError)) {
+              handleError();
+            }
+          }
+          if (oldZone != null) async.Zone._leave(oldZone);
+          if (async.Future.is(listenerValueOrError)) {
+            let chainSource = async.Future._check(listenerValueOrError);
+            let result = listener.result;
+            if (async._Future.is(chainSource)) {
+              if (dart.test(chainSource[_isComplete])) {
+                listeners = result[_removeListeners]();
+                result[_cloneResult](chainSource);
+                source = chainSource;
+                continue;
+              } else {
+                async._Future._chainCoreFuture(chainSource, result);
+              }
+            } else {
+              async._Future._chainForeignFuture(chainSource, result);
+            }
+            return;
+          }
+        }
+        let result = listener.result;
+        listeners = result[_removeListeners]();
+        if (!dart.test(listenerHasError)) {
+          result[_setValue](listenerValueOrError);
+        } else {
+          let asyncError = async.AsyncError._check(listenerValueOrError);
+          result[_setErrorObject](asyncError);
+        }
+        source = result;
+      }
+    }
+    timeout(timeLimit, opts) {
+      let onTimeout = opts && 'onTimeout' in opts ? opts.onTimeout : null;
+      if (dart.test(this[_isComplete])) return new (_FutureOfT()).immediate(this);
+      let result = new (_FutureOfT())();
+      let timer = null;
+      if (onTimeout == null) {
+        timer = async.Timer.new(timeLimit, dart.fn(() => {
+          result[_completeError](new async.TimeoutException("Future not completed", timeLimit));
+        }, VoidToNull()));
+      } else {
+        let zone = async.Zone.current;
+        onTimeout = zone.registerCallback(dart.dynamic)(onTimeout);
+        timer = async.Timer.new(timeLimit, dart.fn(() => {
+          try {
+            result[_complete](zone.run(dart.dynamic)(onTimeout));
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            result[_completeError](e, s);
+          }
+
+        }, VoidToNull()));
+      }
+      this.then(dart.dynamic)(dart.fn(v => {
+        if (dart.test(timer.isActive)) {
+          timer.cancel();
+          result[_completeWithValue](v);
+        }
+      }, TToNull()), {onError: dart.fn((e, s) => {
+          if (dart.test(timer.isActive)) {
+            timer.cancel();
+            result[_completeError](e, core.StackTrace._check(s));
+          }
+        }, dynamicAnddynamicToNull())});
+      return result;
+    }
+  }
+  dart.addTypeTests(_Future);
+  dart.defineNamedConstructor(_Future, 'immediate');
+  dart.defineNamedConstructor(_Future, 'immediateError');
+  _Future[dart.implements] = () => [FutureOfT()];
+  dart.setSignature(_Future, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(async._Future$(T), []),
+      immediate: dart.definiteFunctionType(async._Future$(T), [dart.dynamic]),
+      immediateError: dart.definiteFunctionType(async._Future$(T), [dart.dynamic], [core.StackTrace])
+    }),
+    fields: () => ({
+      [_state]: core.int,
+      [_zone]: async.Zone,
+      [_resultOrListeners]: dart.dynamic
+    }),
+    getters: () => ({
+      [_mayComplete]: dart.definiteFunctionType(core.bool, []),
+      [_isPendingComplete]: dart.definiteFunctionType(core.bool, []),
+      [_mayAddListener]: dart.definiteFunctionType(core.bool, []),
+      [_isChained]: dart.definiteFunctionType(core.bool, []),
+      [_isComplete]: dart.definiteFunctionType(core.bool, []),
+      [_hasError]: dart.definiteFunctionType(core.bool, []),
+      [_error]: dart.definiteFunctionType(async.AsyncError, []),
+      [_chainSource]: dart.definiteFunctionType(async._Future, [])
+    }),
+    methods: () => ({
+      [_setChained]: dart.definiteFunctionType(dart.void, [async._Future]),
+      then: dart.definiteFunctionType(E => [async.Future$(E), [dart.functionType(async.FutureOr$(E), [T])], {onError: core.Function}]),
+      [_thenNoZoneRegistration]: dart.definiteFunctionType(E => [async.Future$(E), [TTodynamic(), core.Function]]),
+      catchError: dart.definiteFunctionType(async.Future$(T), [core.Function], {test: dynamicTobool()}),
+      whenComplete: dart.definiteFunctionType(async.Future$(T), [VoidTodynamic()]),
+      asStream: dart.definiteFunctionType(async.Stream$(T), []),
+      [_setPendingComplete]: dart.definiteFunctionType(dart.void, []),
+      [_clearPendingComplete]: dart.definiteFunctionType(dart.void, []),
+      [_setValue]: dart.definiteFunctionType(dart.void, [T]),
+      [_setErrorObject]: dart.definiteFunctionType(dart.void, [async.AsyncError]),
+      [_setError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_cloneResult]: dart.definiteFunctionType(dart.void, [async._Future]),
+      [_addListener]: dart.definiteFunctionType(dart.void, [async._FutureListener]),
+      [_prependListeners]: dart.definiteFunctionType(dart.void, [async._FutureListener]),
+      [_removeListeners]: dart.definiteFunctionType(async._FutureListener, []),
+      [_reverseListeners]: dart.definiteFunctionType(async._FutureListener, [async._FutureListener]),
+      [_complete]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+      [_completeWithValue]: dart.definiteFunctionType(dart.void, [T]),
+      [_completeError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+      [_asyncComplete]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+      [_asyncCompleteError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
+      timeout: dart.definiteFunctionType(async.Future$(T), [core.Duration], {onTimeout: VoidTodynamic()})
+    }),
+    sfields: () => ({
+      _INCOMPLETE: core.int,
+      _PENDING_COMPLETE: core.int,
+      _CHAINED: core.int,
+      _VALUE: core.int,
+      _ERROR: core.int
+    }),
+    statics: () => ({
+      _chainForeignFuture: dart.definiteFunctionType(dart.void, [async.Future, async._Future]),
+      _chainCoreFuture: dart.definiteFunctionType(dart.void, [async._Future, async._Future]),
+      _propagateToListeners: dart.definiteFunctionType(dart.void, [async._Future, async._FutureListener])
+    }),
+    names: ['_chainForeignFuture', '_chainCoreFuture', '_propagateToListeners']
+  });
+  return _Future;
+}));
+async._Future = _Future();
+async._Future._INCOMPLETE = 0;
+async._Future._PENDING_COMPLETE = 1;
+async._Future._CHAINED = 2;
+async._Future._VALUE = 4;
+async._Future._ERROR = 8;
+async._AsyncCallback = dart.typedef('_AsyncCallback', () => dart.functionType(dart.void, []));
+async._AsyncCallbackEntry = class _AsyncCallbackEntry extends core.Object {
+  new(callback) {
+    this.callback = callback;
+    this.next = null;
+  }
+};
+dart.setSignature(async._AsyncCallbackEntry, {
+  constructors: () => ({new: dart.definiteFunctionType(async._AsyncCallbackEntry, [async._AsyncCallback])}),
+  fields: () => ({
+    callback: async._AsyncCallback,
+    next: async._AsyncCallbackEntry
+  })
+});
+async._nextCallback = null;
+async._lastCallback = null;
+async._lastPriorityCallback = null;
+async._isInCallbackLoop = false;
+async._microtaskLoop = function() {
+  while (async._nextCallback != null) {
+    async._lastPriorityCallback = null;
+    let entry = async._nextCallback;
+    async._nextCallback = entry.next;
+    if (async._nextCallback == null) async._lastCallback = null;
+    entry.callback();
+  }
+};
+dart.fn(async._microtaskLoop, VoidTovoid$());
+async._startMicrotaskLoop = function() {
+  async._isInCallbackLoop = true;
+  try {
+    async._microtaskLoop();
+  } finally {
+    async._lastPriorityCallback = null;
+    async._isInCallbackLoop = false;
+    if (async._nextCallback != null) {
+      async._AsyncRun._scheduleImmediate(async._startMicrotaskLoop);
+    }
+  }
+};
+dart.fn(async._startMicrotaskLoop, VoidTovoid$());
+async._scheduleAsyncCallback = function(callback) {
+  let newEntry = new async._AsyncCallbackEntry(callback);
+  if (async._nextCallback == null) {
+    async._nextCallback = async._lastCallback = newEntry;
+    if (!dart.test(async._isInCallbackLoop)) {
+      async._AsyncRun._scheduleImmediate(async._startMicrotaskLoop);
+    }
+  } else {
+    async._lastCallback.next = newEntry;
+    async._lastCallback = newEntry;
+  }
+};
+dart.fn(async._scheduleAsyncCallback, _AsyncCallbackTovoid());
+async._schedulePriorityAsyncCallback = function(callback) {
+  if (async._nextCallback == null) {
+    async._scheduleAsyncCallback(callback);
+    async._lastPriorityCallback = async._lastCallback;
+    return;
+  }
+  let entry = new async._AsyncCallbackEntry(callback);
+  if (async._lastPriorityCallback == null) {
+    entry.next = async._nextCallback;
+    async._nextCallback = async._lastPriorityCallback = entry;
+  } else {
+    entry.next = async._lastPriorityCallback.next;
+    async._lastPriorityCallback.next = entry;
+    async._lastPriorityCallback = entry;
+    if (entry.next == null) {
+      async._lastCallback = entry;
+    }
+  }
+};
+dart.fn(async._schedulePriorityAsyncCallback, _AsyncCallbackTovoid());
+const _scheduleMicrotask = Symbol('_scheduleMicrotask');
+async.scheduleMicrotask = function(callback) {
+  let currentZone = async._Zone._check(async.Zone.current);
+  if (core.identical(async._ROOT_ZONE, currentZone)) {
+    async._rootScheduleMicrotask(null, null, async._ROOT_ZONE, callback);
+    return;
+  }
+  let implementation = currentZone[_scheduleMicrotask];
+  if (core.identical(async._ROOT_ZONE, implementation.zone) && dart.test(async._ROOT_ZONE.inSameErrorZone(currentZone))) {
+    async._rootScheduleMicrotask(null, null, currentZone, currentZone.registerCallback(dart.void)(callback));
+    return;
+  }
+  async.Zone.current.scheduleMicrotask(async.Zone.current.bindCallback(dart.void)(callback, {runGuarded: true}));
+};
+dart.fn(async.scheduleMicrotask, _AsyncCallbackTovoid());
+async._AsyncRun = class _AsyncRun extends core.Object {
+  static _scheduleImmediate(callback) {
+    async._AsyncRun._scheduleImmediateClosure(callback);
+  }
+  static _initializeScheduleImmediate() {
+    if (_isolate_helper.global.scheduleImmediate != null) {
+      return async._AsyncRun._scheduleImmediateJsOverride;
+    }
+    if (_isolate_helper.global.MutationObserver != null && _isolate_helper.global.document != null) {
+      let div = _isolate_helper.global.document.createElement("div");
+      let span = _isolate_helper.global.document.createElement("span");
+      let storedCallback = null;
+      function internalCallback(_) {
+        _isolate_helper.leaveJsAsync();
+        let f = storedCallback;
+        storedCallback = null;
+        f();
+      }
+      dart.fn(internalCallback, dynamicToNull$());
+      ;
+      let observer = new _isolate_helper.global.MutationObserver(internalCallback);
+      observer.observe(div, {childList: true});
+      return dart.fn(callback => {
+        dart.assert(storedCallback == null);
+        _isolate_helper.enterJsAsync();
+        storedCallback = callback;
+        div.firstChild ? div.removeChild(span) : div.appendChild(span);
+      }, FnToNull());
+    } else if (_isolate_helper.global.setImmediate != null) {
+      return async._AsyncRun._scheduleImmediateWithSetImmediate;
+    }
+    return async._AsyncRun._scheduleImmediateWithTimer;
+  }
+  static _scheduleImmediateJsOverride(callback) {
+    function internalCallback() {
+      _isolate_helper.leaveJsAsync();
+      callback();
+    }
+    dart.fn(internalCallback, VoidToNull());
+    ;
+    _isolate_helper.enterJsAsync();
+    _isolate_helper.global.scheduleImmediate(internalCallback);
+  }
+  static _scheduleImmediateWithSetImmediate(callback) {
+    function internalCallback() {
+      _isolate_helper.leaveJsAsync();
+      callback();
+    }
+    dart.fn(internalCallback, VoidToNull());
+    ;
+    _isolate_helper.enterJsAsync();
+    _isolate_helper.global.setImmediate(internalCallback);
+  }
+  static _scheduleImmediateWithTimer(callback) {
+    async.Timer._createTimer(core.Duration.ZERO, callback);
+  }
+};
+dart.setSignature(async._AsyncRun, {
+  sfields: () => ({_scheduleImmediateClosure: async._TakeCallback}),
+  statics: () => ({
+    _scheduleImmediate: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    _initializeScheduleImmediate: dart.definiteFunctionType(async._TakeCallback, []),
+    _scheduleImmediateJsOverride: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    _scheduleImmediateWithSetImmediate: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    _scheduleImmediateWithTimer: dart.definiteFunctionType(dart.void, [VoidTovoid()])
+  }),
+  names: ['_scheduleImmediate', '_initializeScheduleImmediate', '_scheduleImmediateJsOverride', '_scheduleImmediateWithSetImmediate', '_scheduleImmediateWithTimer']
+});
+dart.defineLazy(async._AsyncRun, {
+  get _scheduleImmediateClosure() {
+    return async._AsyncRun._initializeScheduleImmediate();
+  }
+});
+async._TimerCallback = dart.typedef('_TimerCallback', () => dart.functionType(dart.void, []));
+async.StreamSubscription$ = dart.generic(T => {
+  class StreamSubscription extends core.Object {}
+  dart.addTypeTests(StreamSubscription);
+  return StreamSubscription;
+});
+async.StreamSubscription = StreamSubscription();
+async.EventSink$ = dart.generic(T => {
+  let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
+  class EventSink extends core.Object {}
+  dart.addTypeTests(EventSink);
+  EventSink[dart.implements] = () => [SinkOfT()];
+  return EventSink;
+});
+async.EventSink = EventSink();
+const _stream = Symbol('_stream');
+async.StreamView$ = dart.generic(T => {
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class StreamView extends async.Stream$(T) {
+    new(stream) {
+      this[_stream] = stream;
+      super._internal();
+    }
+    get isBroadcast() {
+      return this[_stream].isBroadcast;
+    }
+    asBroadcastStream(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      return this[_stream].asBroadcastStream({onListen: onListen, onCancel: onCancel});
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      return this[_stream].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    }
+  }
+  dart.setSignature(StreamView, {
+    constructors: () => ({new: dart.definiteFunctionType(async.StreamView$(T), [StreamOfT()])}),
+    fields: () => ({[_stream]: StreamOfT()}),
+    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+  });
+  return StreamView;
+});
+async.StreamView = StreamView();
+async.StreamConsumer$ = dart.generic(S => {
+  class StreamConsumer extends core.Object {}
+  dart.addTypeTests(StreamConsumer);
+  return StreamConsumer;
+});
+async.StreamConsumer = StreamConsumer();
+async.StreamSink$ = dart.generic(S => {
+  let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
+  let StreamConsumerOfS = () => (StreamConsumerOfS = dart.constFn(async.StreamConsumer$(S)))();
+  class StreamSink extends core.Object {}
+  dart.addTypeTests(StreamSink);
+  StreamSink[dart.implements] = () => [EventSinkOfS(), StreamConsumerOfS()];
+  return StreamSink;
+});
+async.StreamSink = StreamSink();
+async.StreamTransformer$ = dart.generic((S, T) => {
+  let _StreamSubscriptionTransformerOfS$T = () => (_StreamSubscriptionTransformerOfS$T = dart.constFn(async._StreamSubscriptionTransformer$(S, T)))();
+  let _StreamHandlerTransformerOfS$T = () => (_StreamHandlerTransformerOfS$T = dart.constFn(async._StreamHandlerTransformer$(S, T)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let StreamOfSAndboolToStreamSubscriptionOfT = () => (StreamOfSAndboolToStreamSubscriptionOfT = dart.constFn(dart.functionType(StreamSubscriptionOfT(), [StreamOfS(), core.bool])))();
+  let SAndEventSinkOfTTovoid = () => (SAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [S, EventSinkOfT()])))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  let ObjectAndStackTraceAndEventSinkOfTTovoid = () => (ObjectAndStackTraceAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [core.Object, core.StackTrace, EventSinkOfT()])))();
+  let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
+  class StreamTransformer extends core.Object {
+    static new(transformer) {
+      return new (_StreamSubscriptionTransformerOfS$T())(transformer);
+    }
+    static fromHandlers(opts) {
+      return new (_StreamHandlerTransformerOfS$T())(opts);
+    }
+  }
+  dart.addTypeTests(StreamTransformer);
+  dart.setSignature(StreamTransformer, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(async.StreamTransformer$(S, T), [StreamOfSAndboolToStreamSubscriptionOfT()]),
+      fromHandlers: dart.definiteFunctionType(async.StreamTransformer$(S, T), [], {handleData: SAndEventSinkOfTTovoid(), handleError: ObjectAndStackTraceAndEventSinkOfTTovoid(), handleDone: EventSinkOfTTovoid()})
+    })
+  });
+  return StreamTransformer;
+});
+async.StreamTransformer = StreamTransformer();
+async.StreamIterator$ = dart.generic(T => {
+  let _StreamIteratorImplOfT = () => (_StreamIteratorImplOfT = dart.constFn(async._StreamIteratorImpl$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class StreamIterator extends core.Object {
+    static new(stream) {
+      return new (_StreamIteratorImplOfT())(stream);
+    }
+  }
+  dart.addTypeTests(StreamIterator);
+  dart.setSignature(StreamIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(async.StreamIterator$(T), [StreamOfT()])})
+  });
+  return StreamIterator;
+});
+async.StreamIterator = StreamIterator();
+async._ControllerEventSinkWrapper$ = dart.generic(T => {
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  class _ControllerEventSinkWrapper extends core.Object {
+    new(sink) {
+      this[_sink] = sink;
+    }
+    add(data) {
+      T._check(data);
+      this[_sink].add(data);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_sink].addError(error, stackTrace);
+    }
+    close() {
+      this[_sink].close();
+    }
+  }
+  dart.addTypeTests(_ControllerEventSinkWrapper);
+  _ControllerEventSinkWrapper[dart.implements] = () => [EventSinkOfT()];
+  dart.setSignature(_ControllerEventSinkWrapper, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ControllerEventSinkWrapper$(T), [async.EventSink])}),
+    fields: () => ({[_sink]: async.EventSink}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [T]),
+      addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+      close: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _ControllerEventSinkWrapper;
+});
+async._ControllerEventSinkWrapper = _ControllerEventSinkWrapper();
+async.ControllerCallback = dart.typedef('ControllerCallback', () => dart.functionType(dart.void, []));
+async.ControllerCancelCallback = dart.typedef('ControllerCancelCallback', () => dart.functionType(dart.dynamic, []));
+async.StreamController$ = dart.generic(T => {
+  let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
+  let _AsyncStreamControllerOfT = () => (_AsyncStreamControllerOfT = dart.constFn(async._AsyncStreamController$(T)))();
+  let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
+  let _AsyncBroadcastStreamControllerOfT = () => (_AsyncBroadcastStreamControllerOfT = dart.constFn(async._AsyncBroadcastStreamController$(T)))();
+  let StreamSinkOfT = () => (StreamSinkOfT = dart.constFn(async.StreamSink$(T)))();
+  class StreamController extends core.Object {
+    static new(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onPause = opts && 'onPause' in opts ? opts.onPause : null;
+      let onResume = opts && 'onResume' in opts ? opts.onResume : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      let sync = opts && 'sync' in opts ? opts.sync : false;
+      return dart.test(sync) ? new (_SyncStreamControllerOfT())(onListen, onPause, onResume, onCancel) : new (_AsyncStreamControllerOfT())(onListen, onPause, onResume, onCancel);
+    }
+    static broadcast(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      let sync = opts && 'sync' in opts ? opts.sync : false;
+      return dart.test(sync) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_AsyncBroadcastStreamControllerOfT())(onListen, onCancel);
+    }
+  }
+  dart.addTypeTests(StreamController);
+  StreamController[dart.implements] = () => [StreamSinkOfT()];
+  dart.setSignature(StreamController, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(async.StreamController$(T), [], {onListen: VoidTovoid(), onPause: VoidTovoid(), onResume: VoidTovoid(), onCancel: VoidTodynamic(), sync: core.bool}),
+      broadcast: dart.definiteFunctionType(async.StreamController$(T), [], {onListen: VoidTovoid(), onCancel: VoidTovoid(), sync: core.bool})
+    })
+  });
+  return StreamController;
+});
+async.StreamController = StreamController();
+async.SynchronousStreamController$ = dart.generic(T => {
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  class SynchronousStreamController extends core.Object {}
+  dart.addTypeTests(SynchronousStreamController);
+  SynchronousStreamController[dart.implements] = () => [StreamControllerOfT()];
+  return SynchronousStreamController;
+});
+async.SynchronousStreamController = SynchronousStreamController();
+async._StreamControllerLifecycle$ = dart.generic(T => {
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  class _StreamControllerLifecycle extends core.Object {
+    [_recordPause](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+    }
+    [_recordResume](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+    }
+    [_recordCancel](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+      return null;
+    }
+  }
+  dart.addTypeTests(_StreamControllerLifecycle);
+  dart.setSignature(_StreamControllerLifecycle, {
+    methods: () => ({
+      [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
+      [_recordResume]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
+      [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()])
+    })
+  });
+  return _StreamControllerLifecycle;
+});
+async._StreamControllerLifecycle = _StreamControllerLifecycle();
+const _varData = Symbol('_varData');
+const _isInitialState = Symbol('_isInitialState');
+const _subscription = Symbol('_subscription');
+const _pendingEvents = Symbol('_pendingEvents');
+const _ensurePendingEvents = Symbol('_ensurePendingEvents');
+const _badEventState = Symbol('_badEventState');
+let const$9;
+async._StreamController$ = dart.generic(T => {
+  let _ControllerStreamOfT = () => (_ControllerStreamOfT = dart.constFn(async._ControllerStream$(T)))();
+  let _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
+  let _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
+  let _StreamControllerAddStreamStateOfT = () => (_StreamControllerAddStreamStateOfT = dart.constFn(async._StreamControllerAddStreamState$(T)))();
+  let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
+  let _ControllerSubscriptionOfT = () => (_ControllerSubscriptionOfT = dart.constFn(async._ControllerSubscription$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _StreamController extends core.Object {
+    new(onListen, onPause, onResume, onCancel) {
+      this.onListen = onListen;
+      this.onPause = onPause;
+      this.onResume = onResume;
+      this.onCancel = onCancel;
+      this[_varData] = null;
+      this[_state] = async._StreamController._STATE_INITIAL;
+      this[_doneFuture] = null;
+    }
+    get stream() {
+      return new (_ControllerStreamOfT())(this);
+    }
+    get sink() {
+      return new (_StreamSinkWrapperOfT())(this);
+    }
+    get [_isCanceled]() {
+      return (dart.notNull(this[_state]) & async._StreamController._STATE_CANCELED) != 0;
+    }
+    get hasListener() {
+      return (dart.notNull(this[_state]) & async._StreamController._STATE_SUBSCRIBED) != 0;
+    }
+    get [_isInitialState]() {
+      return (dart.notNull(this[_state]) & async._StreamController._STATE_SUBSCRIPTION_MASK) == async._StreamController._STATE_INITIAL;
+    }
+    get isClosed() {
+      return (dart.notNull(this[_state]) & async._StreamController._STATE_CLOSED) != 0;
+    }
+    get isPaused() {
+      return dart.test(this.hasListener) ? this[_subscription][_isInputPaused] : !dart.test(this[_isCanceled]);
+    }
+    get [_isAddingStream]() {
+      return (dart.notNull(this[_state]) & async._StreamController._STATE_ADDSTREAM) != 0;
+    }
+    get [_mayAddEvent]() {
+      return dart.notNull(this[_state]) < async._StreamController._STATE_CLOSED;
+    }
+    get [_pendingEvents]() {
+      dart.assert(this[_isInitialState]);
+      if (!dart.test(this[_isAddingStream])) {
+        return _PendingEventsOfT().as(this[_varData]);
+      }
+      let state = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+      return _PendingEventsOfT().as(state.varData);
+    }
+    [_ensurePendingEvents]() {
+      dart.assert(this[_isInitialState]);
+      if (!dart.test(this[_isAddingStream])) {
+        if (this[_varData] == null) this[_varData] = new (_StreamImplEventsOfT())();
+        return _StreamImplEventsOfT().as(this[_varData]);
+      }
+      let state = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+      if (state.varData == null) state.varData = new (_StreamImplEventsOfT())();
+      return _StreamImplEventsOfT().as(state.varData);
+    }
+    get [_subscription]() {
+      dart.assert(this.hasListener);
+      if (dart.test(this[_isAddingStream])) {
+        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+        return _ControllerSubscriptionOfT().as(addState.varData);
+      }
+      return _ControllerSubscriptionOfT().as(this[_varData]);
+    }
+    [_badEventState]() {
+      if (dart.test(this.isClosed)) {
+        return new core.StateError("Cannot add event after closing");
+      }
+      dart.assert(this[_isAddingStream]);
+      return new core.StateError("Cannot add event while adding a stream");
+    }
+    addStream(source, opts) {
+      StreamOfT()._check(source);
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
+      if (dart.test(this[_isCanceled])) return new async._Future.immediate(null);
+      let addState = new (_StreamControllerAddStreamStateOfT())(this, this[_varData], source, cancelOnError);
+      this[_varData] = addState;
+      this[_state] = (dart.notNull(this[_state]) | async._StreamController._STATE_ADDSTREAM) >>> 0;
+      return addState.addStreamFuture;
+    }
+    get done() {
+      return this[_ensureDoneFuture]();
+    }
+    [_ensureDoneFuture]() {
+      if (this[_doneFuture] == null) {
+        this[_doneFuture] = dart.test(this[_isCanceled]) ? async.Future._nullFuture : new async._Future();
+      }
+      return this[_doneFuture];
+    }
+    add(value) {
+      T._check(value);
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
+      this[_add$](value);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
+      error = async._nonNullError(error);
+      let replacement = async.Zone.current.errorCallback(error, stackTrace);
+      if (replacement != null) {
+        error = async._nonNullError(replacement.error);
+        stackTrace = replacement.stackTrace;
+      }
+      this[_addError](error, stackTrace);
+    }
+    close() {
+      if (dart.test(this.isClosed)) {
+        return this[_ensureDoneFuture]();
+      }
+      if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
+      this[_closeUnchecked]();
+      return this[_ensureDoneFuture]();
+    }
+    [_closeUnchecked]() {
+      this[_state] = (dart.notNull(this[_state]) | async._StreamController._STATE_CLOSED) >>> 0;
+      if (dart.test(this.hasListener)) {
+        this[_sendDone]();
+      } else if (dart.test(this[_isInitialState])) {
+        this[_ensurePendingEvents]().add(const$9 || (const$9 = dart.const(new async._DelayedDone())));
+      }
+    }
+    [_add$](value) {
+      T._check(value);
+      if (dart.test(this.hasListener)) {
+        this[_sendData](value);
+      } else if (dart.test(this[_isInitialState])) {
+        this[_ensurePendingEvents]().add(new (_DelayedDataOfT())(value));
+      }
+    }
+    [_addError](error, stackTrace) {
+      if (dart.test(this.hasListener)) {
+        this[_sendError](error, stackTrace);
+      } else if (dart.test(this[_isInitialState])) {
+        this[_ensurePendingEvents]().add(new async._DelayedError(error, stackTrace));
+      }
+    }
+    [_close$]() {
+      dart.assert(this[_isAddingStream]);
+      let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+      this[_varData] = addState.varData;
+      this[_state] = (dart.notNull(this[_state]) & ~async._StreamController._STATE_ADDSTREAM) >>> 0;
+      addState.complete();
+    }
+    [_subscribe](onData, onError, onDone, cancelOnError) {
+      if (!dart.test(this[_isInitialState])) {
+        dart.throw(new core.StateError("Stream has already been listened to."));
+      }
+      let subscription = new (_ControllerSubscriptionOfT())(this, onData, onError, onDone, cancelOnError);
+      let pendingEvents = this[_pendingEvents];
+      this[_state] = (dart.notNull(this[_state]) | async._StreamController._STATE_SUBSCRIBED) >>> 0;
+      if (dart.test(this[_isAddingStream])) {
+        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+        addState.varData = subscription;
+        addState.resume();
+      } else {
+        this[_varData] = subscription;
+      }
+      subscription[_setPendingEvents](pendingEvents);
+      subscription[_guardCallback](dart.fn(() => {
+        async._runGuarded(this.onListen);
+      }, VoidToNull()));
+      return subscription;
+    }
+    [_recordCancel](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+      let result = null;
+      if (dart.test(this[_isAddingStream])) {
+        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+        result = addState.cancel();
+      }
+      this[_varData] = null;
+      this[_state] = (dart.notNull(this[_state]) & ~(async._StreamController._STATE_SUBSCRIBED | async._StreamController._STATE_ADDSTREAM) | async._StreamController._STATE_CANCELED) >>> 0;
+      if (this.onCancel != null) {
+        if (result == null) {
+          try {
+            result = async.Future._check(this.onCancel());
+          } catch (e) {
+            let s = dart.stackTrace(e);
+            result = new async._Future();
+            result[_asyncCompleteError](e, s);
+          }
+
+        } else {
+          result = result.whenComplete(this.onCancel);
+        }
+      }
+      const complete = (function() {
+        if (this[_doneFuture] != null && dart.test(this[_doneFuture][_mayComplete])) {
+          this[_doneFuture][_asyncComplete](null);
+        }
+      }).bind(this);
+      dart.fn(complete, VoidTovoid$());
+      if (result != null) {
+        result = result.whenComplete(complete);
+      } else {
+        complete();
       }
       return result;
     }
-    startChunkedConversion(sink) {
-      if (!convert.ByteConversionSink.is(sink)) {
-        sink = convert.ByteConversionSink.from(sink);
+    [_recordPause](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+      if (dart.test(this[_isAddingStream])) {
+        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+        addState.pause();
       }
-      return new convert._UnicodeSubsetEncoderSink(this[_subsetMask], convert.ByteConversionSink._check(sink));
+      async._runGuarded(this.onPause);
     }
-    bind(stream) {
-      return super.bind(stream);
-    }
-  };
-  dart.addSimpleTypeTests(convert._UnicodeSubsetEncoder);
-  dart.setSignature(convert._UnicodeSubsetEncoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetEncoder, [core.int])}),
-    fields: () => ({[_subsetMask]: core.int}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
-    })
-  });
-  convert.AsciiEncoder = class AsciiEncoder extends convert._UnicodeSubsetEncoder {
-    new() {
-      super.new(convert._ASCII_MASK);
-    }
-  };
-  dart.setSignature(convert.AsciiEncoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.AsciiEncoder, [])})
-  });
-  convert._UnicodeSubsetEncoderSink = class _UnicodeSubsetEncoderSink extends convert.StringConversionSinkBase {
-    new(subsetMask, sink) {
-      this[_subsetMask] = subsetMask;
-      this[_sink$] = sink;
-    }
-    close() {
-      this[_sink$].close();
-    }
-    addSlice(source, start, end, isLast) {
-      core.RangeError.checkValidRange(start, end, source[dartx.length]);
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let codeUnit = source[dartx.codeUnitAt](i);
-        if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
-          dart.throw(new core.ArgumentError(dart.str`Source contains invalid character with code point: ${codeUnit}.`));
-        }
+    [_recordResume](subscription) {
+      StreamSubscriptionOfT()._check(subscription);
+      if (dart.test(this[_isAddingStream])) {
+        let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
+        addState.resume();
       }
-      this[_sink$].add(source[dartx.codeUnits][dartx.sublist](start, end));
-      if (dart.test(isLast)) {
-        this.close();
-      }
+      async._runGuarded(this.onResume);
     }
-  };
-  dart.setSignature(convert._UnicodeSubsetEncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetEncoderSink, [core.int, convert.ByteConversionSink])}),
+  }
+  dart.addTypeTests(_StreamController);
+  _StreamController[dart.implements] = () => [StreamControllerOfT(), _StreamControllerLifecycleOfT(), _EventSinkOfT(), _EventDispatchOfT()];
+  dart.setSignature(_StreamController, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamController$(T), [async.ControllerCallback, async.ControllerCallback, async.ControllerCallback, async.ControllerCancelCallback])}),
     fields: () => ({
-      [_sink$]: convert.ByteConversionSink,
-      [_subsetMask]: core.int
+      [_varData]: dart.dynamic,
+      [_state]: core.int,
+      [_doneFuture]: async._Future,
+      onListen: async.ControllerCallback,
+      onPause: async.ControllerCallback,
+      onResume: async.ControllerCallback,
+      onCancel: async.ControllerCancelCallback
+    }),
+    getters: () => ({
+      stream: dart.definiteFunctionType(async.Stream$(T), []),
+      sink: dart.definiteFunctionType(async.StreamSink$(T), []),
+      [_isCanceled]: dart.definiteFunctionType(core.bool, []),
+      hasListener: dart.definiteFunctionType(core.bool, []),
+      [_isInitialState]: dart.definiteFunctionType(core.bool, []),
+      isClosed: dart.definiteFunctionType(core.bool, []),
+      isPaused: dart.definiteFunctionType(core.bool, []),
+      [_isAddingStream]: dart.definiteFunctionType(core.bool, []),
+      [_mayAddEvent]: dart.definiteFunctionType(core.bool, []),
+      [_pendingEvents]: dart.definiteFunctionType(async._PendingEvents$(T), []),
+      [_subscription]: dart.definiteFunctionType(async._ControllerSubscription$(T), []),
+      done: dart.definiteFunctionType(async.Future, [])
     }),
     methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
+      [_ensurePendingEvents]: dart.definiteFunctionType(async._StreamImplEvents$(T), []),
+      [_badEventState]: dart.definiteFunctionType(core.Error, []),
+      addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool}),
+      [_ensureDoneFuture]: dart.definiteFunctionType(async.Future, []),
+      add: dart.definiteFunctionType(dart.void, [T]),
+      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+      close: dart.definiteFunctionType(async.Future, []),
+      [_closeUnchecked]: dart.definiteFunctionType(dart.void, []),
+      [_add$]: dart.definiteFunctionType(dart.void, [T]),
+      [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_close$]: dart.definiteFunctionType(dart.void, []),
+      [_subscribe]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
+      [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()]),
+      [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
+      [_recordResume]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()])
+    }),
+    sfields: () => ({
+      _STATE_INITIAL: core.int,
+      _STATE_SUBSCRIBED: core.int,
+      _STATE_CANCELED: core.int,
+      _STATE_SUBSCRIPTION_MASK: core.int,
+      _STATE_CLOSED: core.int,
+      _STATE_ADDSTREAM: core.int
     })
   });
-  const _convertInvalid = Symbol('_convertInvalid');
-  convert._UnicodeSubsetDecoder = class _UnicodeSubsetDecoder extends convert.Converter$(core.List$(core.int), core.String) {
-    new(allowInvalid, subsetMask) {
-      this[_allowInvalid] = allowInvalid;
-      this[_subsetMask] = subsetMask;
+  return _StreamController;
+});
+async._StreamController = _StreamController();
+async._StreamController._STATE_INITIAL = 0;
+async._StreamController._STATE_SUBSCRIBED = 1;
+async._StreamController._STATE_CANCELED = 2;
+async._StreamController._STATE_SUBSCRIPTION_MASK = 3;
+async._StreamController._STATE_CLOSED = 4;
+async._StreamController._STATE_ADDSTREAM = 8;
+async._SyncStreamControllerDispatch$ = dart.generic(T => {
+  let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
+  let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
+  class _SyncStreamControllerDispatch extends core.Object {
+    [_sendData](data) {
+      T._check(data);
+      this[_subscription][_add$](data);
+    }
+    [_sendError](error, stackTrace) {
+      this[_subscription][_addError](error, stackTrace);
+    }
+    [_sendDone]() {
+      this[_subscription][_close$]();
+    }
+  }
+  dart.addTypeTests(_SyncStreamControllerDispatch);
+  _SyncStreamControllerDispatch[dart.implements] = () => [_StreamControllerOfT(), SynchronousStreamControllerOfT()];
+  dart.setSignature(_SyncStreamControllerDispatch, {
+    methods: () => ({
+      [_sendData]: dart.definiteFunctionType(dart.void, [T]),
+      [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_sendDone]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _SyncStreamControllerDispatch;
+});
+async._SyncStreamControllerDispatch = _SyncStreamControllerDispatch();
+let const$10;
+async._AsyncStreamControllerDispatch$ = dart.generic(T => {
+  let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
+  let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
+  class _AsyncStreamControllerDispatch extends core.Object {
+    [_sendData](data) {
+      T._check(data);
+      this[_subscription][_addPending](new (_DelayedDataOfT())(data));
+    }
+    [_sendError](error, stackTrace) {
+      this[_subscription][_addPending](new async._DelayedError(error, stackTrace));
+    }
+    [_sendDone]() {
+      this[_subscription][_addPending](const$10 || (const$10 = dart.const(new async._DelayedDone())));
+    }
+  }
+  dart.addTypeTests(_AsyncStreamControllerDispatch);
+  _AsyncStreamControllerDispatch[dart.implements] = () => [_StreamControllerOfT()];
+  dart.setSignature(_AsyncStreamControllerDispatch, {
+    methods: () => ({
+      [_sendData]: dart.definiteFunctionType(dart.void, [T]),
+      [_sendError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
+      [_sendDone]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _AsyncStreamControllerDispatch;
+});
+async._AsyncStreamControllerDispatch = _AsyncStreamControllerDispatch();
+async._AsyncStreamController$ = dart.generic(T => {
+  class _AsyncStreamController extends dart.mixin(async._StreamController$(T), async._AsyncStreamControllerDispatch$(T)) {
+    new(onListen, onPause, onResume, onCancel) {
+      super.new(onListen, onPause, onResume, onCancel);
+    }
+  }
+  return _AsyncStreamController;
+});
+async._AsyncStreamController = _AsyncStreamController();
+async._SyncStreamController$ = dart.generic(T => {
+  class _SyncStreamController extends dart.mixin(async._StreamController$(T), async._SyncStreamControllerDispatch$(T)) {
+    new(onListen, onPause, onResume, onCancel) {
+      super.new(onListen, onPause, onResume, onCancel);
+    }
+  }
+  return _SyncStreamController;
+});
+async._SyncStreamController = _SyncStreamController();
+async._NotificationHandler = dart.typedef('_NotificationHandler', () => dart.functionType(dart.dynamic, []));
+async._runGuarded = function(notificationHandler) {
+  if (notificationHandler == null) return null;
+  try {
+    let result = notificationHandler();
+    if (async.Future.is(result)) return result;
+    return null;
+  } catch (e) {
+    let s = dart.stackTrace(e);
+    async.Zone.current.handleUncaughtError(dart.dynamic)(e, s);
+  }
+
+};
+dart.fn(async._runGuarded, _NotificationHandlerToFuture());
+const _target = Symbol('_target');
+async._StreamSinkWrapper$ = dart.generic(T => {
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let StreamSinkOfT = () => (StreamSinkOfT = dart.constFn(async.StreamSink$(T)))();
+  class _StreamSinkWrapper extends core.Object {
+    new(target) {
+      this[_target] = target;
+    }
+    add(data) {
+      T._check(data);
+      this[_target].add(data);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_target].addError(error, stackTrace);
+    }
+    close() {
+      return this[_target].close();
+    }
+    addStream(source, opts) {
+      StreamOfT()._check(source);
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : true;
+      return this[_target].addStream(source, {cancelOnError: cancelOnError});
+    }
+    get done() {
+      return this[_target].done;
+    }
+  }
+  dart.addTypeTests(_StreamSinkWrapper);
+  _StreamSinkWrapper[dart.implements] = () => [StreamSinkOfT()];
+  dart.setSignature(_StreamSinkWrapper, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamSinkWrapper$(T), [async.StreamController])}),
+    fields: () => ({[_target]: async.StreamController}),
+    getters: () => ({done: dart.definiteFunctionType(async.Future, [])}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [T]),
+      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+      close: dart.definiteFunctionType(async.Future, []),
+      addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool})
+    })
+  });
+  return _StreamSinkWrapper;
+});
+async._StreamSinkWrapper = _StreamSinkWrapper();
+async._AddStreamState$ = dart.generic(T => {
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  class _AddStreamState extends core.Object {
+    new(controller, source, cancelOnError) {
+      this.addStreamFuture = new async._Future();
+      this.addSubscription = source.listen(dart.bind(controller, _add$), {onError: core.Function._check(dart.test(cancelOnError) ? async._AddStreamState.makeErrorHandler(controller) : dart.bind(controller, _addError)), onDone: dart.bind(controller, _close$), cancelOnError: cancelOnError});
+    }
+    static makeErrorHandler(controller) {
+      return dart.fn((e, s) => {
+        controller[_addError](e, s);
+        controller[_close$]();
+      }, dynamicAndStackTraceToNull());
+    }
+    pause() {
+      this.addSubscription.pause();
+    }
+    resume() {
+      this.addSubscription.resume();
+    }
+    cancel() {
+      let cancel = this.addSubscription.cancel();
+      if (cancel == null) {
+        this.addStreamFuture[_asyncComplete](null);
+        return null;
+      }
+      return cancel.whenComplete(dart.fn(() => {
+        this.addStreamFuture[_asyncComplete](null);
+      }, VoidToNull()));
+    }
+    complete() {
+      this.addStreamFuture[_asyncComplete](null);
+    }
+  }
+  dart.addTypeTests(_AddStreamState);
+  dart.setSignature(_AddStreamState, {
+    constructors: () => ({new: dart.definiteFunctionType(async._AddStreamState$(T), [_EventSinkOfT(), async.Stream, core.bool])}),
+    fields: () => ({
+      addStreamFuture: async._Future,
+      addSubscription: async.StreamSubscription
+    }),
+    methods: () => ({
+      pause: dart.definiteFunctionType(dart.void, []),
+      resume: dart.definiteFunctionType(dart.void, []),
+      cancel: dart.definiteFunctionType(async.Future, []),
+      complete: dart.definiteFunctionType(dart.void, [])
+    }),
+    statics: () => ({makeErrorHandler: dart.definiteFunctionType(dart.dynamic, [async._EventSink])}),
+    names: ['makeErrorHandler']
+  });
+  return _AddStreamState;
+});
+async._AddStreamState = _AddStreamState();
+async._StreamControllerAddStreamState$ = dart.generic(T => {
+  let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
+  class _StreamControllerAddStreamState extends async._AddStreamState$(T) {
+    new(controller, varData, source, cancelOnError) {
+      this.varData = varData;
+      super.new(controller, source, cancelOnError);
+      if (dart.test(controller.isPaused)) {
+        this.addSubscription.pause();
+      }
+    }
+  }
+  dart.setSignature(_StreamControllerAddStreamState, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamControllerAddStreamState$(T), [_StreamControllerOfT(), dart.dynamic, async.Stream, core.bool])}),
+    fields: () => ({varData: dart.dynamic})
+  });
+  return _StreamControllerAddStreamState;
+});
+async._StreamControllerAddStreamState = _StreamControllerAddStreamState();
+async._EventSink$ = dart.generic(T => {
+  class _EventSink extends core.Object {}
+  dart.addTypeTests(_EventSink);
+  return _EventSink;
+});
+async._EventSink = _EventSink();
+async._EventDispatch$ = dart.generic(T => {
+  class _EventDispatch extends core.Object {}
+  dart.addTypeTests(_EventDispatch);
+  return _EventDispatch;
+});
+async._EventDispatch = _EventDispatch();
+async._EventGenerator$ = dart.generic(T => {
+  const _EventGenerator = dart.typedef('_EventGenerator', () => dart.functionType(async._PendingEvents$(T), []));
+  return _EventGenerator;
+});
+async._EventGenerator = _EventGenerator();
+const _isUsed = Symbol('_isUsed');
+async._GeneratedStreamImpl$ = dart.generic(T => {
+  let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let _EventGeneratorOfT = () => (_EventGeneratorOfT = dart.constFn(async._EventGenerator$(T)))();
+  class _GeneratedStreamImpl extends async._StreamImpl$(T) {
+    new(pending) {
+      this[_pending] = pending;
+      this[_isUsed] = false;
       super.new();
     }
-    convert(bytes, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      let byteCount = bytes[dartx.length];
-      core.RangeError.checkValidRange(start, end, byteCount);
-      if (end == null) end = byteCount;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let byte = bytes[dartx._get](i);
-        if ((dart.notNull(byte) & ~dart.notNull(this[_subsetMask])) != 0) {
-          if (!dart.test(this[_allowInvalid])) {
-            dart.throw(new core.FormatException(dart.str`Invalid value in input: ${byte}`));
-          }
-          return this[_convertInvalid](bytes, start, end);
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      if (dart.test(this[_isUsed])) dart.throw(new core.StateError("Stream has already been listened to."));
+      this[_isUsed] = true;
+      let _ = new (_BufferingStreamSubscriptionOfT())(onData, onError, onDone, cancelOnError);
+      _[_setPendingEvents](this[_pending]());
+      return _;
+    }
+  }
+  dart.setSignature(_GeneratedStreamImpl, {
+    constructors: () => ({new: dart.definiteFunctionType(async._GeneratedStreamImpl$(T), [_EventGeneratorOfT()])}),
+    fields: () => ({
+      [_pending]: _EventGeneratorOfT(),
+      [_isUsed]: core.bool
+    })
+  });
+  return _GeneratedStreamImpl;
+});
+async._GeneratedStreamImpl = _GeneratedStreamImpl();
+const _iterator$ = Symbol('_iterator');
+const _eventScheduled = Symbol('_eventScheduled');
+async._PendingEvents$ = dart.generic(T => {
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  class _PendingEvents extends core.Object {
+    new() {
+      this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
+    }
+    get isScheduled() {
+      return this[_state] == async._PendingEvents._STATE_SCHEDULED;
+    }
+    get [_eventScheduled]() {
+      return dart.notNull(this[_state]) >= async._PendingEvents._STATE_SCHEDULED;
+    }
+    schedule(dispatch) {
+      _EventDispatchOfT()._check(dispatch);
+      if (dart.test(this.isScheduled)) return;
+      dart.assert(!dart.test(this.isEmpty));
+      if (dart.test(this[_eventScheduled])) {
+        dart.assert(this[_state] == async._PendingEvents._STATE_CANCELED);
+        this[_state] = async._PendingEvents._STATE_SCHEDULED;
+        return;
+      }
+      async.scheduleMicrotask(dart.fn(() => {
+        let oldState = this[_state];
+        this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
+        if (oldState == async._PendingEvents._STATE_CANCELED) return;
+        this.handleNext(dispatch);
+      }, VoidToNull()));
+      this[_state] = async._PendingEvents._STATE_SCHEDULED;
+    }
+    cancelSchedule() {
+      if (dart.test(this.isScheduled)) this[_state] = async._PendingEvents._STATE_CANCELED;
+    }
+  }
+  dart.addTypeTests(_PendingEvents);
+  dart.setSignature(_PendingEvents, {
+    fields: () => ({[_state]: core.int}),
+    getters: () => ({
+      isScheduled: dart.definiteFunctionType(core.bool, []),
+      [_eventScheduled]: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      schedule: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
+      cancelSchedule: dart.definiteFunctionType(dart.void, [])
+    }),
+    sfields: () => ({
+      _STATE_UNSCHEDULED: core.int,
+      _STATE_SCHEDULED: core.int,
+      _STATE_CANCELED: core.int
+    })
+  });
+  return _PendingEvents;
+});
+async._PendingEvents = _PendingEvents();
+async._PendingEvents._STATE_UNSCHEDULED = 0;
+async._PendingEvents._STATE_SCHEDULED = 1;
+async._PendingEvents._STATE_CANCELED = 3;
+async._IterablePendingEvents$ = dart.generic(T => {
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
+  let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
+  class _IterablePendingEvents extends async._PendingEvents$(T) {
+    new(data) {
+      this[_iterator$] = data[dartx.iterator];
+      super.new();
+    }
+    get isEmpty() {
+      return this[_iterator$] == null;
+    }
+    handleNext(dispatch) {
+      _EventDispatchOfT()._check(dispatch);
+      if (this[_iterator$] == null) {
+        dart.throw(new core.StateError("No events pending."));
+      }
+      let isDone = null;
+      try {
+        isDone = !dart.test(this[_iterator$].moveNext());
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        this[_iterator$] = null;
+        dispatch[_sendError](e, s);
+        return;
+      }
+
+      if (!dart.test(isDone)) {
+        dispatch[_sendData](this[_iterator$].current);
+      } else {
+        this[_iterator$] = null;
+        dispatch[_sendDone]();
+      }
+    }
+    clear() {
+      if (dart.test(this.isScheduled)) this.cancelSchedule();
+      this[_iterator$] = null;
+    }
+  }
+  dart.setSignature(_IterablePendingEvents, {
+    constructors: () => ({new: dart.definiteFunctionType(async._IterablePendingEvents$(T), [IterableOfT()])}),
+    fields: () => ({[_iterator$]: IteratorOfT()}),
+    getters: () => ({isEmpty: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      handleNext: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
+      clear: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _IterablePendingEvents;
+});
+async._IterablePendingEvents = _IterablePendingEvents();
+async._DataHandler$ = dart.generic(T => {
+  const _DataHandler = dart.typedef('_DataHandler', () => dart.functionType(dart.void, [T]));
+  return _DataHandler;
+});
+async._DataHandler = _DataHandler();
+async._DoneHandler = dart.typedef('_DoneHandler', () => dart.functionType(dart.void, []));
+async._nullDataHandler = function(value) {
+};
+dart.fn(async._nullDataHandler, dynamicTovoid$());
+async._nullErrorHandler = function(error, stackTrace) {
+  if (stackTrace === void 0) stackTrace = null;
+  async.Zone.current.handleUncaughtError(dart.dynamic)(error, stackTrace);
+};
+dart.lazyFn(async._nullErrorHandler, () => dynamic__Tovoid());
+async._nullDoneHandler = function() {
+};
+dart.fn(async._nullDoneHandler, VoidTovoid$());
+async._DelayedEvent$ = dart.generic(T => {
+  class _DelayedEvent extends core.Object {
+    new() {
+      this.next = null;
+    }
+  }
+  dart.addTypeTests(_DelayedEvent);
+  dart.setSignature(_DelayedEvent, {
+    fields: () => ({next: async._DelayedEvent})
+  });
+  return _DelayedEvent;
+});
+async._DelayedEvent = _DelayedEvent();
+async._DelayedData$ = dart.generic(T => {
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  class _DelayedData extends async._DelayedEvent$(T) {
+    new(value) {
+      this.value = value;
+      super.new();
+    }
+    perform(dispatch) {
+      _EventDispatchOfT()._check(dispatch);
+      dispatch[_sendData](this.value);
+    }
+  }
+  dart.setSignature(_DelayedData, {
+    constructors: () => ({new: dart.definiteFunctionType(async._DelayedData$(T), [T])}),
+    fields: () => ({value: T}),
+    methods: () => ({perform: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()])})
+  });
+  return _DelayedData;
+});
+async._DelayedData = _DelayedData();
+async._DelayedError = class _DelayedError extends async._DelayedEvent {
+  new(error, stackTrace) {
+    this.error = error;
+    this.stackTrace = stackTrace;
+    super.new();
+  }
+  perform(dispatch) {
+    dispatch[_sendError](this.error, this.stackTrace);
+  }
+};
+dart.addSimpleTypeTests(async._DelayedError);
+dart.setSignature(async._DelayedError, {
+  constructors: () => ({new: dart.definiteFunctionType(async._DelayedError, [dart.dynamic, core.StackTrace])}),
+  fields: () => ({
+    error: dart.dynamic,
+    stackTrace: core.StackTrace
+  }),
+  methods: () => ({perform: dart.definiteFunctionType(dart.void, [async._EventDispatch])})
+});
+async._DelayedDone = class _DelayedDone extends core.Object {
+  new() {
+  }
+  perform(dispatch) {
+    dispatch[_sendDone]();
+  }
+  get next() {
+    return null;
+  }
+  set next(_) {
+    dart.throw(new core.StateError("No events after a done."));
+  }
+};
+async._DelayedDone[dart.implements] = () => [async._DelayedEvent];
+dart.setSignature(async._DelayedDone, {
+  constructors: () => ({new: dart.definiteFunctionType(async._DelayedDone, [])}),
+  getters: () => ({next: dart.definiteFunctionType(async._DelayedEvent, [])}),
+  setters: () => ({next: dart.definiteFunctionType(dart.void, [async._DelayedEvent])}),
+  methods: () => ({perform: dart.definiteFunctionType(dart.void, [async._EventDispatch])})
+});
+async._StreamImplEvents$ = dart.generic(T => {
+  let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
+  class _StreamImplEvents extends async._PendingEvents$(T) {
+    new() {
+      this.firstPendingEvent = null;
+      this.lastPendingEvent = null;
+      super.new();
+    }
+    get isEmpty() {
+      return this.lastPendingEvent == null;
+    }
+    add(event) {
+      if (this.lastPendingEvent == null) {
+        this.firstPendingEvent = this.lastPendingEvent = event;
+      } else {
+        this.lastPendingEvent = this.lastPendingEvent.next = event;
+      }
+    }
+    handleNext(dispatch) {
+      _EventDispatchOfT()._check(dispatch);
+      dart.assert(!dart.test(this.isScheduled));
+      let event = this.firstPendingEvent;
+      this.firstPendingEvent = event.next;
+      if (this.firstPendingEvent == null) {
+        this.lastPendingEvent = null;
+      }
+      event.perform(dispatch);
+    }
+    clear() {
+      if (dart.test(this.isScheduled)) this.cancelSchedule();
+      this.firstPendingEvent = this.lastPendingEvent = null;
+    }
+  }
+  dart.setSignature(_StreamImplEvents, {
+    fields: () => ({
+      firstPendingEvent: async._DelayedEvent,
+      lastPendingEvent: async._DelayedEvent
+    }),
+    getters: () => ({isEmpty: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [async._DelayedEvent]),
+      handleNext: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
+      clear: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _StreamImplEvents;
+});
+async._StreamImplEvents = _StreamImplEvents();
+const _unlink = Symbol('_unlink');
+const _insertBefore = Symbol('_insertBefore');
+async._BroadcastLinkedList = class _BroadcastLinkedList extends core.Object {
+  new() {
+    this[_next$] = null;
+    this[_previous$] = null;
+  }
+  [_unlink]() {
+    this[_previous$][_next$] = this[_next$];
+    this[_next$][_previous$] = this[_previous$];
+    this[_next$] = this[_previous$] = this;
+  }
+  [_insertBefore](newNext) {
+    let newPrevious = newNext[_previous$];
+    newPrevious[_next$] = this;
+    newNext[_previous$] = this[_previous$];
+    this[_previous$][_next$] = newNext;
+    this[_previous$] = newPrevious;
+  }
+};
+dart.setSignature(async._BroadcastLinkedList, {
+  fields: () => ({
+    [_next$]: async._BroadcastLinkedList,
+    [_previous$]: async._BroadcastLinkedList
+  }),
+  methods: () => ({
+    [_unlink]: dart.definiteFunctionType(dart.void, []),
+    [_insertBefore]: dart.definiteFunctionType(dart.void, [async._BroadcastLinkedList])
+  })
+});
+async._BroadcastCallback$ = dart.generic(T => {
+  const _BroadcastCallback = dart.typedef('_BroadcastCallback', () => dart.functionType(dart.void, [async.StreamSubscription$(T)]));
+  return _BroadcastCallback;
+});
+async._BroadcastCallback = _BroadcastCallback();
+const _schedule = Symbol('_schedule');
+const _isSent = Symbol('_isSent');
+const _isScheduled = Symbol('_isScheduled');
+async._DoneStreamSubscription$ = dart.generic(T => {
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _DoneStreamSubscription extends core.Object {
+    new(onDone) {
+      this[_onDone] = onDone;
+      this[_zone] = async.Zone.current;
+      this[_state] = 0;
+      this[_schedule]();
+    }
+    get [_isSent]() {
+      return (dart.notNull(this[_state]) & async._DoneStreamSubscription._DONE_SENT) != 0;
+    }
+    get [_isScheduled]() {
+      return (dart.notNull(this[_state]) & async._DoneStreamSubscription._SCHEDULED) != 0;
+    }
+    get isPaused() {
+      return dart.notNull(this[_state]) >= async._DoneStreamSubscription._PAUSED;
+    }
+    [_schedule]() {
+      if (dart.test(this[_isScheduled])) return;
+      this[_zone].scheduleMicrotask(dart.bind(this, _sendDone));
+      this[_state] = (dart.notNull(this[_state]) | async._DoneStreamSubscription._SCHEDULED) >>> 0;
+    }
+    onData(handleData) {}
+    onError(handleError) {}
+    onDone(handleDone) {
+      this[_onDone] = handleDone;
+    }
+    pause(resumeSignal) {
+      if (resumeSignal === void 0) resumeSignal = null;
+      this[_state] = dart.notNull(this[_state]) + async._DoneStreamSubscription._PAUSED;
+      if (resumeSignal != null) resumeSignal.whenComplete(dart.bind(this, 'resume'));
+    }
+    resume() {
+      if (dart.test(this.isPaused)) {
+        this[_state] = dart.notNull(this[_state]) - async._DoneStreamSubscription._PAUSED;
+        if (!dart.test(this.isPaused) && !dart.test(this[_isSent])) {
+          this[_schedule]();
         }
       }
-      return core.String.fromCharCodes(bytes, start, end);
     }
-    [_convertInvalid](bytes, start, end) {
+    cancel() {
+      return null;
+    }
+    asFuture(E) {
+      return futureValue => {
+        if (futureValue === void 0) futureValue = null;
+        let result = new (async._Future$(E))();
+        this[_onDone] = dart.fn(() => {
+          result[_completeWithValue](null);
+        }, VoidToNull());
+        return result;
+      };
+    }
+    [_sendDone]() {
+      this[_state] = (dart.notNull(this[_state]) & ~async._DoneStreamSubscription._SCHEDULED) >>> 0;
+      if (dart.test(this.isPaused)) return;
+      this[_state] = (dart.notNull(this[_state]) | async._DoneStreamSubscription._DONE_SENT) >>> 0;
+      if (this[_onDone] != null) this[_zone].runGuarded(dart.void)(this[_onDone]);
+    }
+  }
+  dart.addTypeTests(_DoneStreamSubscription);
+  _DoneStreamSubscription[dart.implements] = () => [StreamSubscriptionOfT()];
+  dart.setSignature(_DoneStreamSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._DoneStreamSubscription$(T), [async._DoneHandler])}),
+    fields: () => ({
+      [_zone]: async.Zone,
+      [_state]: core.int,
+      [_onDone]: async._DoneHandler
+    }),
+    getters: () => ({
+      [_isSent]: dart.definiteFunctionType(core.bool, []),
+      [_isScheduled]: dart.definiteFunctionType(core.bool, []),
+      isPaused: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      [_schedule]: dart.definiteFunctionType(dart.void, []),
+      onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
+      onError: dart.definiteFunctionType(dart.void, [core.Function]),
+      onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
+      resume: dart.definiteFunctionType(dart.void, []),
+      cancel: dart.definiteFunctionType(async.Future, []),
+      asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]]),
+      [_sendDone]: dart.definiteFunctionType(dart.void, [])
+    }),
+    sfields: () => ({
+      _DONE_SENT: core.int,
+      _SCHEDULED: core.int,
+      _PAUSED: core.int
+    })
+  });
+  return _DoneStreamSubscription;
+});
+async._DoneStreamSubscription = _DoneStreamSubscription();
+async._DoneStreamSubscription._DONE_SENT = 1;
+async._DoneStreamSubscription._SCHEDULED = 2;
+async._DoneStreamSubscription._PAUSED = 4;
+const _source$ = Symbol('_source');
+const _onListenHandler = Symbol('_onListenHandler');
+const _onCancelHandler = Symbol('_onCancelHandler');
+const _cancelSubscription = Symbol('_cancelSubscription');
+const _pauseSubscription = Symbol('_pauseSubscription');
+const _resumeSubscription = Symbol('_resumeSubscription');
+const _isSubscriptionPaused = Symbol('_isSubscriptionPaused');
+async._AsBroadcastStream$ = dart.generic(T => {
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let _AsBroadcastStreamControllerOfT = () => (_AsBroadcastStreamControllerOfT = dart.constFn(async._AsBroadcastStreamController$(T)))();
+  let _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
+  let _BroadcastSubscriptionWrapperOfT = () => (_BroadcastSubscriptionWrapperOfT = dart.constFn(async._BroadcastSubscriptionWrapper$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let _BroadcastCallbackOfT = () => (_BroadcastCallbackOfT = dart.constFn(async._BroadcastCallback$(T)))();
+  class _AsBroadcastStream extends async.Stream$(T) {
+    new(source, onListenHandler, onCancelHandler) {
+      this[_source$] = source;
+      this[_onListenHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfT())(onListenHandler);
+      this[_onCancelHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfT())(onCancelHandler);
+      this[_zone] = async.Zone.current;
+      this[_controller$] = null;
+      this[_subscription] = null;
+      super.new();
+      this[_controller$] = new (_AsBroadcastStreamControllerOfT())(dart.bind(this, _onListen), dart.bind(this, _onCancel));
+    }
+    get isBroadcast() {
+      return true;
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      if (this[_controller$] == null || dart.test(this[_controller$].isClosed)) {
+        return new (_DoneStreamSubscriptionOfT())(onDone);
+      }
+      if (this[_subscription] == null) {
+        this[_subscription] = this[_source$].listen(dart.bind(this[_controller$], 'add'), {onError: dart.bind(this[_controller$], 'addError'), onDone: dart.bind(this[_controller$], 'close')});
+      }
+      cancelOnError = core.identical(true, cancelOnError);
+      return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
+    }
+    [_onCancel]() {
+      let shutdown = this[_controller$] == null || dart.test(this[_controller$].isClosed);
+      if (this[_onCancelHandler] != null) {
+        this[_zone].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT())(this[_onCancelHandler], new (_BroadcastSubscriptionWrapperOfT())(this));
+      }
+      if (shutdown) {
+        if (this[_subscription] != null) {
+          this[_subscription].cancel();
+          this[_subscription] = null;
+        }
+      }
+    }
+    [_onListen]() {
+      if (this[_onListenHandler] != null) {
+        this[_zone].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT())(this[_onListenHandler], new (_BroadcastSubscriptionWrapperOfT())(this));
+      }
+    }
+    [_cancelSubscription]() {
+      if (this[_subscription] == null) return;
+      let subscription = this[_subscription];
+      this[_subscription] = null;
+      this[_controller$] = null;
+      subscription.cancel();
+    }
+    [_pauseSubscription](resumeSignal) {
+      if (this[_subscription] == null) return;
+      this[_subscription].pause(resumeSignal);
+    }
+    [_resumeSubscription]() {
+      if (this[_subscription] == null) return;
+      this[_subscription].resume();
+    }
+    get [_isSubscriptionPaused]() {
+      if (this[_subscription] == null) return false;
+      return this[_subscription].isPaused;
+    }
+  }
+  dart.setSignature(_AsBroadcastStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._AsBroadcastStream$(T), [StreamOfT(), _BroadcastCallbackOfT(), _BroadcastCallbackOfT()])}),
+    fields: () => ({
+      [_source$]: StreamOfT(),
+      [_onListenHandler]: _BroadcastCallbackOfT(),
+      [_onCancelHandler]: _BroadcastCallbackOfT(),
+      [_zone]: async.Zone,
+      [_controller$]: _AsBroadcastStreamControllerOfT(),
+      [_subscription]: StreamSubscriptionOfT()
+    }),
+    getters: () => ({[_isSubscriptionPaused]: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+      [_onCancel]: dart.definiteFunctionType(dart.void, []),
+      [_onListen]: dart.definiteFunctionType(dart.void, []),
+      [_cancelSubscription]: dart.definiteFunctionType(dart.void, []),
+      [_pauseSubscription]: dart.definiteFunctionType(dart.void, [async.Future]),
+      [_resumeSubscription]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _AsBroadcastStream;
+});
+async._AsBroadcastStream = _AsBroadcastStream();
+async._BroadcastSubscriptionWrapper$ = dart.generic(T => {
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _BroadcastSubscriptionWrapper extends core.Object {
+    new(stream) {
+      this[_stream] = stream;
+    }
+    onData(handleData) {
+      dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
+    }
+    onError(handleError) {
+      dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
+    }
+    onDone(handleDone) {
+      dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
+    }
+    pause(resumeSignal) {
+      if (resumeSignal === void 0) resumeSignal = null;
+      this[_stream][_pauseSubscription](resumeSignal);
+    }
+    resume() {
+      this[_stream][_resumeSubscription]();
+    }
+    cancel() {
+      this[_stream][_cancelSubscription]();
+      return null;
+    }
+    get isPaused() {
+      return this[_stream][_isSubscriptionPaused];
+    }
+    asFuture(E) {
+      return futureValue => {
+        if (futureValue === void 0) futureValue = null;
+        dart.throw(new core.UnsupportedError("Cannot change handlers of asBroadcastStream source subscription."));
+      };
+    }
+  }
+  dart.addTypeTests(_BroadcastSubscriptionWrapper);
+  _BroadcastSubscriptionWrapper[dart.implements] = () => [StreamSubscriptionOfT()];
+  dart.setSignature(_BroadcastSubscriptionWrapper, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BroadcastSubscriptionWrapper$(T), [async._AsBroadcastStream])}),
+    fields: () => ({[_stream]: async._AsBroadcastStream}),
+    getters: () => ({isPaused: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
+      onError: dart.definiteFunctionType(dart.void, [core.Function]),
+      onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
+      resume: dart.definiteFunctionType(dart.void, []),
+      cancel: dart.definiteFunctionType(async.Future, []),
+      asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]])
+    })
+  });
+  return _BroadcastSubscriptionWrapper;
+});
+async._BroadcastSubscriptionWrapper = _BroadcastSubscriptionWrapper();
+const _current$1 = Symbol('_current');
+const _futureOrPrefetch = Symbol('_futureOrPrefetch');
+const _clear = Symbol('_clear');
+async._StreamIteratorImpl$ = dart.generic(T => {
+  let StreamIteratorOfT = () => (StreamIteratorOfT = dart.constFn(async.StreamIterator$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _StreamIteratorImpl extends core.Object {
+    new(stream) {
+      this[_subscription] = null;
+      this[_current$1] = null;
+      this[_futureOrPrefetch] = null;
+      this[_state] = async._StreamIteratorImpl._STATE_FOUND;
+      this[_subscription] = stream.listen(dart.bind(this, _onData), {onError: dart.bind(this, _onError), onDone: dart.bind(this, _onDone), cancelOnError: true});
+    }
+    get current() {
+      return this[_current$1];
+    }
+    moveNext() {
+      if (this[_state] == async._StreamIteratorImpl._STATE_DONE) {
+        return new (_FutureOfbool()).immediate(false);
+      }
+      if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
+        dart.throw(new core.StateError("Already waiting for next."));
+      }
+      if (this[_state] == async._StreamIteratorImpl._STATE_FOUND) {
+        this[_state] = async._StreamIteratorImpl._STATE_MOVING;
+        this[_current$1] = null;
+        let result = new (_FutureOfbool())();
+        this[_futureOrPrefetch] = result;
+        return result;
+      } else {
+        dart.assert(dart.notNull(this[_state]) >= async._StreamIteratorImpl._STATE_EXTRA_DATA);
+        switch (this[_state]) {
+          case async._StreamIteratorImpl._STATE_EXTRA_DATA:
+          {
+            this[_state] = async._StreamIteratorImpl._STATE_FOUND;
+            this[_current$1] = T.as(this[_futureOrPrefetch]);
+            this[_futureOrPrefetch] = null;
+            this[_subscription].resume();
+            return new (_FutureOfbool()).immediate(true);
+          }
+          case async._StreamIteratorImpl._STATE_EXTRA_ERROR:
+          {
+            let prefetch = async.AsyncError._check(this[_futureOrPrefetch]);
+            this[_clear]();
+            return new (_FutureOfbool()).immediateError(prefetch.error, prefetch.stackTrace);
+          }
+          case async._StreamIteratorImpl._STATE_EXTRA_DONE:
+          {
+            this[_clear]();
+            return new (_FutureOfbool()).immediate(false);
+          }
+        }
+      }
+    }
+    [_clear]() {
+      this[_subscription] = null;
+      this[_futureOrPrefetch] = null;
+      this[_current$1] = null;
+      this[_state] = async._StreamIteratorImpl._STATE_DONE;
+    }
+    cancel() {
+      let subscription = this[_subscription];
+      if (subscription == null) return null;
+      if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
+        let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
+        this[_clear]();
+        hasNext[_complete](false);
+      } else {
+        this[_clear]();
+      }
+      return subscription.cancel();
+    }
+    [_onData](data) {
+      T._check(data);
+      if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
+        this[_current$1] = data;
+        let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
+        this[_futureOrPrefetch] = null;
+        this[_state] = async._StreamIteratorImpl._STATE_FOUND;
+        hasNext[_complete](true);
+        return;
+      }
+      this[_subscription].pause();
+      dart.assert(this[_futureOrPrefetch] == null);
+      this[_futureOrPrefetch] = data;
+      this[_state] = async._StreamIteratorImpl._STATE_EXTRA_DATA;
+    }
+    [_onError](error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
+        let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
+        this[_clear]();
+        hasNext[_completeError](error, stackTrace);
+        return;
+      }
+      this[_subscription].pause();
+      dart.assert(this[_futureOrPrefetch] == null);
+      this[_futureOrPrefetch] = new async.AsyncError(error, stackTrace);
+      this[_state] = async._StreamIteratorImpl._STATE_EXTRA_ERROR;
+    }
+    [_onDone]() {
+      if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
+        let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
+        this[_clear]();
+        hasNext[_complete](false);
+        return;
+      }
+      this[_subscription].pause();
+      this[_futureOrPrefetch] = null;
+      this[_state] = async._StreamIteratorImpl._STATE_EXTRA_DONE;
+    }
+  }
+  dart.addTypeTests(_StreamIteratorImpl);
+  _StreamIteratorImpl[dart.implements] = () => [StreamIteratorOfT()];
+  dart.setSignature(_StreamIteratorImpl, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamIteratorImpl$(T), [StreamOfT()])}),
+    fields: () => ({
+      [_subscription]: async.StreamSubscription,
+      [_current$1]: T,
+      [_futureOrPrefetch]: dart.dynamic,
+      [_state]: core.int
+    }),
+    getters: () => ({current: dart.definiteFunctionType(T, [])}),
+    methods: () => ({
+      moveNext: dart.definiteFunctionType(async.Future$(core.bool), []),
+      [_clear]: dart.definiteFunctionType(dart.void, []),
+      cancel: dart.definiteFunctionType(async.Future, []),
+      [_onData]: dart.definiteFunctionType(dart.void, [T]),
+      [_onError]: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+      [_onDone]: dart.definiteFunctionType(dart.void, [])
+    }),
+    sfields: () => ({
+      _STATE_FOUND: core.int,
+      _STATE_DONE: core.int,
+      _STATE_MOVING: core.int,
+      _STATE_EXTRA_DATA: core.int,
+      _STATE_EXTRA_ERROR: core.int,
+      _STATE_EXTRA_DONE: core.int
+    })
+  });
+  return _StreamIteratorImpl;
+});
+async._StreamIteratorImpl = _StreamIteratorImpl();
+async._StreamIteratorImpl._STATE_FOUND = 0;
+async._StreamIteratorImpl._STATE_DONE = 1;
+async._StreamIteratorImpl._STATE_MOVING = 2;
+async._StreamIteratorImpl._STATE_EXTRA_DATA = 3;
+async._StreamIteratorImpl._STATE_EXTRA_ERROR = 4;
+async._StreamIteratorImpl._STATE_EXTRA_DONE = 5;
+async._EmptyStream$ = dart.generic(T => {
+  let _DoneStreamSubscriptionOfT = () => (_DoneStreamSubscriptionOfT = dart.constFn(async._DoneStreamSubscription$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _EmptyStream extends async.Stream$(T) {
+    new() {
+      super._internal();
+    }
+    get isBroadcast() {
+      return true;
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      return new (_DoneStreamSubscriptionOfT())(onDone);
+    }
+  }
+  dart.setSignature(_EmptyStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._EmptyStream$(T), [])}),
+    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+  });
+  return _EmptyStream;
+});
+async._EmptyStream = _EmptyStream();
+async._runUserCode = function(userCode, onSuccess, onError) {
+  try {
+    dart.dcall(onSuccess, userCode());
+  } catch (e) {
+    let s = dart.stackTrace(e);
+    let replacement = async.Zone.current.errorCallback(e, s);
+    if (replacement == null) {
+      dart.dcall(onError, e, s);
+    } else {
+      let error = async._nonNullError(replacement.error);
+      let stackTrace = replacement.stackTrace;
+      dart.dcall(onError, error, stackTrace);
+    }
+  }
+
+};
+dart.lazyFn(async._runUserCode, () => FnAndFnAndFnTodynamic());
+async._cancelAndError = function(subscription, future, error, stackTrace) {
+  let cancelFuture = subscription.cancel();
+  if (async.Future.is(cancelFuture)) {
+    cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), VoidTovoid$()));
+  } else {
+    future[_completeError](error, stackTrace);
+  }
+};
+dart.lazyFn(async._cancelAndError, () => StreamSubscriptionAnd_FutureAnddynamic__Tovoid());
+async._cancelAndErrorWithReplacement = function(subscription, future, error, stackTrace) {
+  let replacement = async.Zone.current.errorCallback(error, stackTrace);
+  if (replacement != null) {
+    error = async._nonNullError(replacement.error);
+    stackTrace = replacement.stackTrace;
+  }
+  async._cancelAndError(subscription, future, error, stackTrace);
+};
+dart.lazyFn(async._cancelAndErrorWithReplacement, () => StreamSubscriptionAnd_FutureAnddynamic__Tovoid());
+async._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [dart.dynamic, core.StackTrace]));
+async._cancelAndErrorClosure = function(subscription, future) {
+  return dart.fn((error, stackTrace) => {
+    async._cancelAndError(subscription, future, error, stackTrace);
+  }, dynamicAndStackTraceToNull());
+};
+dart.fn(async._cancelAndErrorClosure, StreamSubscriptionAnd_FutureTo_ErrorCallback());
+async._cancelAndValue = function(subscription, future, value) {
+  let cancelFuture = subscription.cancel();
+  if (async.Future.is(cancelFuture)) {
+    cancelFuture.whenComplete(dart.fn(() => future[_complete](value), VoidTovoid$()));
+  } else {
+    future[_complete](value);
+  }
+};
+dart.fn(async._cancelAndValue, StreamSubscriptionAnd_FutureAnddynamicTovoid());
+const _handleData = Symbol('_handleData');
+const _handleError = Symbol('_handleError');
+const _handleDone = Symbol('_handleDone');
+async._ForwardingStream$ = dart.generic((S, T) => {
+  let _ForwardingStreamSubscriptionOfS$T = () => (_ForwardingStreamSubscriptionOfS$T = dart.constFn(async._ForwardingStreamSubscription$(S, T)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _ForwardingStream extends async.Stream$(T) {
+    new(source) {
+      this[_source$] = source;
+      super.new();
+    }
+    get isBroadcast() {
+      return this[_source$].isBroadcast;
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      cancelOnError = core.identical(true, cancelOnError);
+      return this[_createSubscription](onData, onError, onDone, cancelOnError);
+    }
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      return new (_ForwardingStreamSubscriptionOfS$T())(this, onData, onError, onDone, cancelOnError);
+    }
+    [_handleData](data, sink) {
+      S._check(data);
+      _EventSinkOfT()._check(sink);
+      sink[_add$](T.as(data));
+    }
+    [_handleError](error, stackTrace, sink) {
+      _EventSinkOfT()._check(sink);
+      sink[_addError](error, stackTrace);
+    }
+    [_handleDone](sink) {
+      _EventSinkOfT()._check(sink);
+      sink[_close$]();
+    }
+  }
+  dart.setSignature(_ForwardingStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ForwardingStream$(S, T), [StreamOfS()])}),
+    fields: () => ({[_source$]: StreamOfS()}),
+    methods: () => ({
+      listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+      [_createSubscription]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
+      [_handleData]: dart.definiteFunctionType(dart.void, [S, _EventSinkOfT()]),
+      [_handleError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace, _EventSinkOfT()]),
+      [_handleDone]: dart.definiteFunctionType(dart.void, [_EventSinkOfT()])
+    })
+  });
+  return _ForwardingStream;
+});
+async._ForwardingStream = _ForwardingStream();
+async._ForwardingStreamSubscription$ = dart.generic((S, T) => {
+  let _ForwardingStreamOfS$T = () => (_ForwardingStreamOfS$T = dart.constFn(async._ForwardingStream$(S, T)))();
+  let StreamSubscriptionOfS = () => (StreamSubscriptionOfS = dart.constFn(async.StreamSubscription$(S)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _ForwardingStreamSubscription extends async._BufferingStreamSubscription$(T) {
+    new(stream, onData, onError, onDone, cancelOnError) {
+      this[_stream] = stream;
+      this[_subscription] = null;
+      super.new(onData, onError, onDone, cancelOnError);
+      this[_subscription] = this[_stream][_source$].listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)});
+    }
+    [_add$](data) {
+      T._check(data);
+      if (dart.test(this[_isClosed$])) return;
+      super[_add$](data);
+    }
+    [_addError](error, stackTrace) {
+      if (dart.test(this[_isClosed$])) return;
+      super[_addError](error, stackTrace);
+    }
+    [_onPause]() {
+      if (this[_subscription] == null) return;
+      this[_subscription].pause();
+    }
+    [_onResume]() {
+      if (this[_subscription] == null) return;
+      this[_subscription].resume();
+    }
+    [_onCancel]() {
+      if (this[_subscription] != null) {
+        let subscription = this[_subscription];
+        this[_subscription] = null;
+        return subscription.cancel();
+      }
+      return null;
+    }
+    [_handleData](data) {
+      S._check(data);
+      this[_stream][_handleData](data, this);
+    }
+    [_handleError](error, stackTrace) {
+      this[_stream][_handleError](error, stackTrace, this);
+    }
+    [_handleDone]() {
+      this[_stream][_handleDone](this);
+    }
+  }
+  dart.setSignature(_ForwardingStreamSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ForwardingStreamSubscription$(S, T), [_ForwardingStreamOfS$T(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
+    fields: () => ({
+      [_stream]: _ForwardingStreamOfS$T(),
+      [_subscription]: StreamSubscriptionOfS()
+    }),
+    methods: () => ({
+      [_handleData]: dart.definiteFunctionType(dart.void, [S]),
+      [_handleError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
+      [_handleDone]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _ForwardingStreamSubscription;
+});
+async._ForwardingStreamSubscription = _ForwardingStreamSubscription();
+async._Predicate$ = dart.generic(T => {
+  const _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.bool, [T]));
+  return _Predicate;
+});
+async._Predicate = _Predicate();
+async._addErrorWithReplacement = function(sink, error, stackTrace) {
+  let replacement = async.Zone.current.errorCallback(error, core.StackTrace._check(stackTrace));
+  if (replacement != null) {
+    error = async._nonNullError(replacement.error);
+    stackTrace = replacement.stackTrace;
+  }
+  sink[_addError](error, core.StackTrace._check(stackTrace));
+};
+dart.fn(async._addErrorWithReplacement, _EventSinkAnddynamicAnddynamicTovoid());
+const _test = Symbol('_test');
+async._WhereStream$ = dart.generic(T => {
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let _PredicateOfT = () => (_PredicateOfT = dart.constFn(async._Predicate$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _WhereStream extends async._ForwardingStream$(T, T) {
+    new(source, test) {
+      this[_test] = test;
+      super.new(source);
+    }
+    [_handleData](inputEvent, sink) {
+      T._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      let satisfies = null;
+      try {
+        satisfies = this[_test](inputEvent);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        async._addErrorWithReplacement(sink, e, s);
+        return;
+      }
+
+      if (dart.test(satisfies)) {
+        sink[_add$](inputEvent);
+      }
+    }
+  }
+  dart.setSignature(_WhereStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._WhereStream$(T), [StreamOfT(), _PredicateOfT()])}),
+    fields: () => ({[_test]: _PredicateOfT()})
+  });
+  return _WhereStream;
+});
+async._WhereStream = _WhereStream();
+async._Transformation$ = dart.generic((S, T) => {
+  const _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S]));
+  return _Transformation;
+});
+async._Transformation = _Transformation$();
+const _transform = Symbol('_transform');
+async._MapStream$ = dart.generic((S, T) => {
+  let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(async._Transformation$(S, T)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  class _MapStream extends async._ForwardingStream$(S, T) {
+    new(source, transform) {
+      this[_transform] = transform;
+      super.new(source);
+    }
+    [_handleData](inputEvent, sink) {
+      S._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      let outputEvent = null;
+      try {
+        outputEvent = this[_transform](inputEvent);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        async._addErrorWithReplacement(sink, e, s);
+        return;
+      }
+
+      sink[_add$](outputEvent);
+    }
+  }
+  dart.setSignature(_MapStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._MapStream$(S, T), [StreamOfS(), _TransformationOfS$T()])}),
+    fields: () => ({[_transform]: _TransformationOfS$T()})
+  });
+  return _MapStream;
+});
+async._MapStream = _MapStream();
+const _expand = Symbol('_expand');
+async._ExpandStream$ = dart.generic((S, T) => {
+  let _TransformationOfS$IterableOfT = () => (_TransformationOfS$IterableOfT = dart.constFn(async._Transformation$(S, IterableOfT())))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
+  class _ExpandStream extends async._ForwardingStream$(S, T) {
+    new(source, expand) {
+      this[_expand] = expand;
+      super.new(source);
+    }
+    [_handleData](inputEvent, sink) {
+      S._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      try {
+        for (let value of this[_expand](inputEvent)) {
+          sink[_add$](value);
+        }
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        async._addErrorWithReplacement(sink, e, s);
+      }
+
+    }
+  }
+  dart.setSignature(_ExpandStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ExpandStream$(S, T), [StreamOfS(), _TransformationOfS$IterableOfT()])}),
+    fields: () => ({[_expand]: _TransformationOfS$IterableOfT()})
+  });
+  return _ExpandStream;
+});
+async._ExpandStream = _ExpandStream();
+async._ErrorTest = dart.typedef('_ErrorTest', () => dart.functionType(core.bool, [dart.dynamic]));
+async._HandleErrorStream$ = dart.generic(T => {
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _HandleErrorStream extends async._ForwardingStream$(T, T) {
+    new(source, onError, test) {
+      this[_transform] = onError;
+      this[_test] = test;
+      super.new(source);
+    }
+    [_handleError](error, stackTrace, sink) {
+      _EventSinkOfT()._check(sink);
+      let matches = true;
+      if (this[_test] != null) {
+        try {
+          matches = dart.dcall(this[_test], error);
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          async._addErrorWithReplacement(sink, e, s);
+          return;
+        }
+
+      }
+      if (dart.test(matches)) {
+        try {
+          async._invokeErrorHandler(this[_transform], error, stackTrace);
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          if (core.identical(e, error)) {
+            sink[_addError](error, stackTrace);
+          } else {
+            async._addErrorWithReplacement(sink, e, s);
+          }
+          return;
+        }
+
+      } else {
+        sink[_addError](error, stackTrace);
+      }
+    }
+  }
+  dart.setSignature(_HandleErrorStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._HandleErrorStream$(T), [StreamOfT(), core.Function, dynamicTobool()])}),
+    fields: () => ({
+      [_transform]: core.Function,
+      [_test]: async._ErrorTest
+    }),
+    methods: () => ({[_handleError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace, _EventSinkOfT()])})
+  });
+  return _HandleErrorStream;
+});
+async._HandleErrorStream = _HandleErrorStream();
+const _count = Symbol('_count');
+async._TakeStream$ = dart.generic(T => {
+  let _StateStreamSubscriptionOfT = () => (_StateStreamSubscriptionOfT = dart.constFn(async._StateStreamSubscription$(T)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _TakeStream extends async._ForwardingStream$(T, T) {
+    new(source, count) {
+      this[_count] = count;
+      super.new(source);
+      if (!(typeof count == 'number')) dart.throw(new core.ArgumentError(count));
+    }
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      return new (_StateStreamSubscriptionOfT())(this, onData, onError, onDone, cancelOnError, this[_count]);
+    }
+    [_handleData](inputEvent, sink) {
+      T._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      let subscription = _StateStreamSubscriptionOfT()._check(sink);
+      let count = subscription[_count];
+      if (dart.notNull(count) > 0) {
+        sink[_add$](inputEvent);
+        count = dart.notNull(count) - 1;
+        subscription[_count] = count;
+        if (count == 0) {
+          sink[_close$]();
+        }
+      }
+    }
+  }
+  dart.setSignature(_TakeStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._TakeStream$(T), [StreamOfT(), core.int])}),
+    fields: () => ({[_count]: core.int})
+  });
+  return _TakeStream;
+});
+async._TakeStream = _TakeStream();
+const _sharedState = Symbol('_sharedState');
+const _flag = Symbol('_flag');
+async._StateStreamSubscription$ = dart.generic(T => {
+  let _ForwardingStreamOfT$T = () => (_ForwardingStreamOfT$T = dart.constFn(async._ForwardingStream$(T, T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _StateStreamSubscription extends async._ForwardingStreamSubscription$(T, T) {
+    new(stream, onData, onError, onDone, cancelOnError, sharedState) {
+      this[_sharedState] = sharedState;
+      super.new(stream, onData, onError, onDone, cancelOnError);
+    }
+    get [_flag]() {
+      return core.bool._check(this[_sharedState]);
+    }
+    set [_flag](flag) {
+      this[_sharedState] = flag;
+    }
+    get [_count]() {
+      return core.int._check(this[_sharedState]);
+    }
+    set [_count](count) {
+      this[_sharedState] = count;
+    }
+  }
+  dart.setSignature(_StateStreamSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StateStreamSubscription$(T), [_ForwardingStreamOfT$T(), TTovoid(), core.Function, VoidTovoid(), core.bool, dart.dynamic])}),
+    fields: () => ({[_sharedState]: dart.dynamic}),
+    getters: () => ({
+      [_flag]: dart.definiteFunctionType(core.bool, []),
+      [_count]: dart.definiteFunctionType(core.int, [])
+    }),
+    setters: () => ({
+      [_flag]: dart.definiteFunctionType(dart.void, [core.bool]),
+      [_count]: dart.definiteFunctionType(dart.void, [core.int])
+    })
+  });
+  return _StateStreamSubscription;
+});
+async._StateStreamSubscription = _StateStreamSubscription();
+async._TakeWhileStream$ = dart.generic(T => {
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let _PredicateOfT = () => (_PredicateOfT = dart.constFn(async._Predicate$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _TakeWhileStream extends async._ForwardingStream$(T, T) {
+    new(source, test) {
+      this[_test] = test;
+      super.new(source);
+    }
+    [_handleData](inputEvent, sink) {
+      T._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      let satisfies = null;
+      try {
+        satisfies = this[_test](inputEvent);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        async._addErrorWithReplacement(sink, e, s);
+        sink[_close$]();
+        return;
+      }
+
+      if (dart.test(satisfies)) {
+        sink[_add$](inputEvent);
+      } else {
+        sink[_close$]();
+      }
+    }
+  }
+  dart.setSignature(_TakeWhileStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._TakeWhileStream$(T), [StreamOfT(), _PredicateOfT()])}),
+    fields: () => ({[_test]: _PredicateOfT()})
+  });
+  return _TakeWhileStream;
+});
+async._TakeWhileStream = _TakeWhileStream();
+async._SkipStream$ = dart.generic(T => {
+  let _StateStreamSubscriptionOfT = () => (_StateStreamSubscriptionOfT = dart.constFn(async._StateStreamSubscription$(T)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _SkipStream extends async._ForwardingStream$(T, T) {
+    new(source, count) {
+      this[_count] = count;
+      super.new(source);
+      if (!(typeof count == 'number') || dart.notNull(count) < 0) dart.throw(new core.ArgumentError(count));
+    }
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      return new (_StateStreamSubscriptionOfT())(this, onData, onError, onDone, cancelOnError, this[_count]);
+    }
+    [_handleData](inputEvent, sink) {
+      T._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      let subscription = _StateStreamSubscriptionOfT()._check(sink);
+      let count = subscription[_count];
+      if (dart.notNull(count) > 0) {
+        subscription[_count] = dart.notNull(count) - 1;
+        return;
+      }
+      sink[_add$](inputEvent);
+    }
+  }
+  dart.setSignature(_SkipStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._SkipStream$(T), [StreamOfT(), core.int])}),
+    fields: () => ({[_count]: core.int})
+  });
+  return _SkipStream;
+});
+async._SkipStream = _SkipStream();
+async._SkipWhileStream$ = dart.generic(T => {
+  let _StateStreamSubscriptionOfT = () => (_StateStreamSubscriptionOfT = dart.constFn(async._StateStreamSubscription$(T)))();
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let _PredicateOfT = () => (_PredicateOfT = dart.constFn(async._Predicate$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _SkipWhileStream extends async._ForwardingStream$(T, T) {
+    new(source, test) {
+      this[_test] = test;
+      super.new(source);
+    }
+    [_createSubscription](onData, onError, onDone, cancelOnError) {
+      return new (_StateStreamSubscriptionOfT())(this, onData, onError, onDone, cancelOnError, false);
+    }
+    [_handleData](inputEvent, sink) {
+      T._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      let subscription = _StateStreamSubscriptionOfT()._check(sink);
+      let hasFailed = subscription[_flag];
+      if (dart.test(hasFailed)) {
+        sink[_add$](inputEvent);
+        return;
+      }
+      let satisfies = null;
+      try {
+        satisfies = this[_test](inputEvent);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        async._addErrorWithReplacement(sink, e, s);
+        subscription[_flag] = true;
+        return;
+      }
+
+      if (!dart.test(satisfies)) {
+        subscription[_flag] = true;
+        sink[_add$](inputEvent);
+      }
+    }
+  }
+  dart.setSignature(_SkipWhileStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._SkipWhileStream$(T), [StreamOfT(), _PredicateOfT()])}),
+    fields: () => ({[_test]: _PredicateOfT()})
+  });
+  return _SkipWhileStream;
+});
+async._SkipWhileStream = _SkipWhileStream();
+async._Equality$ = dart.generic(T => {
+  const _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [T, T]));
+  return _Equality;
+});
+async._Equality = _Equality();
+const _equals = Symbol('_equals');
+async._DistinctStream$ = dart.generic(T => {
+  let _EventSinkOfT = () => (_EventSinkOfT = dart.constFn(async._EventSink$(T)))();
+  let _EqualityOfT = () => (_EqualityOfT = dart.constFn(async._Equality$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class _DistinctStream extends async._ForwardingStream$(T, T) {
+    new(source, equals) {
+      this[_previous$] = async._DistinctStream._SENTINEL;
+      this[_equals] = equals;
+      super.new(source);
+    }
+    [_handleData](inputEvent, sink) {
+      T._check(inputEvent);
+      _EventSinkOfT()._check(sink);
+      if (core.identical(this[_previous$], async._DistinctStream._SENTINEL)) {
+        this[_previous$] = inputEvent;
+        return sink[_add$](inputEvent);
+      } else {
+        let isEqual = null;
+        try {
+          if (this[_equals] == null) {
+            isEqual = dart.equals(this[_previous$], inputEvent);
+          } else {
+            isEqual = this[_equals](T.as(this[_previous$]), inputEvent);
+          }
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          async._addErrorWithReplacement(sink, e, s);
+          return null;
+        }
+
+        if (!dart.test(isEqual)) {
+          sink[_add$](inputEvent);
+          this[_previous$] = inputEvent;
+        }
+      }
+    }
+  }
+  dart.setSignature(_DistinctStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._DistinctStream$(T), [StreamOfT(), _EqualityOfT()])}),
+    fields: () => ({
+      [_equals]: _EqualityOfT(),
+      [_previous$]: core.Object
+    }),
+    sfields: () => ({_SENTINEL: core.Object})
+  });
+  return _DistinctStream;
+});
+async._DistinctStream = _DistinctStream();
+dart.defineLazy(async._DistinctStream, {
+  get _SENTINEL() {
+    return new core.Object();
+  },
+  set _SENTINEL(_) {}
+});
+async._EventSinkWrapper$ = dart.generic(T => {
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  class _EventSinkWrapper extends core.Object {
+    new(sink) {
+      this[_sink] = sink;
+    }
+    add(data) {
+      T._check(data);
+      this[_sink][_add$](data);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_sink][_addError](error, stackTrace);
+    }
+    close() {
+      this[_sink][_close$]();
+    }
+  }
+  dart.addTypeTests(_EventSinkWrapper);
+  _EventSinkWrapper[dart.implements] = () => [EventSinkOfT()];
+  dart.setSignature(_EventSinkWrapper, {
+    constructors: () => ({new: dart.definiteFunctionType(async._EventSinkWrapper$(T), [async._EventSink])}),
+    fields: () => ({[_sink]: async._EventSink}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [T]),
+      addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+      close: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _EventSinkWrapper;
+});
+async._EventSinkWrapper = _EventSinkWrapper();
+const _transformerSink = Symbol('_transformerSink');
+const _isSubscribed = Symbol('_isSubscribed');
+async._SinkTransformerStreamSubscription$ = dart.generic((S, T) => {
+  let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
+  let StreamSubscriptionOfS = () => (StreamSubscriptionOfS = dart.constFn(async.StreamSubscription$(S)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _SinkMapperOfS$T = () => (_SinkMapperOfS$T = dart.constFn(async._SinkMapper$(S, T)))();
+  let _EventSinkWrapperOfT = () => (_EventSinkWrapperOfT = dart.constFn(async._EventSinkWrapper$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _SinkTransformerStreamSubscription extends async._BufferingStreamSubscription$(T) {
+    new(source, mapper, onData, onError, onDone, cancelOnError) {
+      this[_transformerSink] = null;
+      this[_subscription] = null;
+      super.new(onData, onError, onDone, cancelOnError);
+      let eventSink = new (_EventSinkWrapperOfT())(this);
+      this[_transformerSink] = mapper(eventSink);
+      this[_subscription] = source.listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)});
+    }
+    get [_isSubscribed]() {
+      return this[_subscription] != null;
+    }
+    [_add$](data) {
+      T._check(data);
+      if (dart.test(this[_isClosed$])) {
+        dart.throw(new core.StateError("Stream is already closed"));
+      }
+      super[_add$](data);
+    }
+    [_addError](error, stackTrace) {
+      if (dart.test(this[_isClosed$])) {
+        dart.throw(new core.StateError("Stream is already closed"));
+      }
+      super[_addError](error, stackTrace);
+    }
+    [_close$]() {
+      if (dart.test(this[_isClosed$])) {
+        dart.throw(new core.StateError("Stream is already closed"));
+      }
+      super[_close$]();
+    }
+    [_onPause]() {
+      if (dart.test(this[_isSubscribed])) this[_subscription].pause();
+    }
+    [_onResume]() {
+      if (dart.test(this[_isSubscribed])) this[_subscription].resume();
+    }
+    [_onCancel]() {
+      if (dart.test(this[_isSubscribed])) {
+        let subscription = this[_subscription];
+        this[_subscription] = null;
+        subscription.cancel();
+      }
+      return null;
+    }
+    [_handleData](data) {
+      S._check(data);
+      try {
+        this[_transformerSink].add(data);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        this[_addError](e, s);
+      }
+
+    }
+    [_handleError](error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      try {
+        this[_transformerSink].addError(error, core.StackTrace._check(stackTrace));
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        if (core.identical(e, error)) {
+          this[_addError](error, core.StackTrace._check(stackTrace));
+        } else {
+          this[_addError](e, s);
+        }
+      }
+
+    }
+    [_handleDone]() {
+      try {
+        this[_subscription] = null;
+        this[_transformerSink].close();
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        this[_addError](e, s);
+      }
+
+    }
+  }
+  dart.setSignature(_SinkTransformerStreamSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(async._SinkTransformerStreamSubscription$(S, T), [StreamOfS(), _SinkMapperOfS$T(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
+    fields: () => ({
+      [_transformerSink]: EventSinkOfS(),
+      [_subscription]: StreamSubscriptionOfS()
+    }),
+    getters: () => ({[_isSubscribed]: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      [_handleData]: dart.definiteFunctionType(dart.void, [S]),
+      [_handleError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [dart.dynamic]),
+      [_handleDone]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _SinkTransformerStreamSubscription;
+});
+async._SinkTransformerStreamSubscription = _SinkTransformerStreamSubscription();
+async._SinkMapper$ = dart.generic((S, T) => {
+  const _SinkMapper = dart.typedef('_SinkMapper', () => dart.functionType(async.EventSink$(S), [async.EventSink$(T)]));
+  return _SinkMapper;
+});
+async._SinkMapper = _SinkMapper();
+const _sinkMapper = Symbol('_sinkMapper');
+async._StreamSinkTransformer$ = dart.generic((S, T) => {
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _BoundSinkStreamOfS$T = () => (_BoundSinkStreamOfS$T = dart.constFn(async._BoundSinkStream$(S, T)))();
+  let StreamTransformerOfS$T = () => (StreamTransformerOfS$T = dart.constFn(async.StreamTransformer$(S, T)))();
+  let _SinkMapperOfS$T = () => (_SinkMapperOfS$T = dart.constFn(async._SinkMapper$(S, T)))();
+  class _StreamSinkTransformer extends core.Object {
+    new(sinkMapper) {
+      this[_sinkMapper] = sinkMapper;
+    }
+    bind(stream) {
+      StreamOfS()._check(stream);
+      return new (_BoundSinkStreamOfS$T())(stream, this[_sinkMapper]);
+    }
+  }
+  dart.addTypeTests(_StreamSinkTransformer);
+  _StreamSinkTransformer[dart.implements] = () => [StreamTransformerOfS$T()];
+  dart.setSignature(_StreamSinkTransformer, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamSinkTransformer$(S, T), [_SinkMapperOfS$T()])}),
+    fields: () => ({[_sinkMapper]: _SinkMapperOfS$T()}),
+    methods: () => ({bind: dart.definiteFunctionType(async.Stream$(T), [StreamOfS()])})
+  });
+  return _StreamSinkTransformer;
+});
+async._StreamSinkTransformer = _StreamSinkTransformer();
+async._BoundSinkStream$ = dart.generic((S, T) => {
+  let _SinkTransformerStreamSubscriptionOfS$T = () => (_SinkTransformerStreamSubscriptionOfS$T = dart.constFn(async._SinkTransformerStreamSubscription$(S, T)))();
+  let _SinkMapperOfS$T = () => (_SinkMapperOfS$T = dart.constFn(async._SinkMapper$(S, T)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _BoundSinkStream extends async.Stream$(T) {
+    get isBroadcast() {
+      return this[_stream].isBroadcast;
+    }
+    new(stream, sinkMapper) {
+      this[_stream] = stream;
+      this[_sinkMapper] = sinkMapper;
+      super.new();
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      cancelOnError = core.identical(true, cancelOnError);
+      let subscription = new (_SinkTransformerStreamSubscriptionOfS$T())(this[_stream], this[_sinkMapper], onData, onError, onDone, cancelOnError);
+      return subscription;
+    }
+  }
+  dart.setSignature(_BoundSinkStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BoundSinkStream$(S, T), [StreamOfS(), _SinkMapperOfS$T()])}),
+    fields: () => ({
+      [_sinkMapper]: _SinkMapperOfS$T(),
+      [_stream]: StreamOfS()
+    }),
+    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+  });
+  return _BoundSinkStream;
+});
+async._BoundSinkStream = _BoundSinkStream();
+async._TransformDataHandler$ = dart.generic((S, T) => {
+  const _TransformDataHandler = dart.typedef('_TransformDataHandler', () => dart.functionType(dart.void, [S, async.EventSink$(T)]));
+  return _TransformDataHandler;
+});
+async._TransformDataHandler = _TransformDataHandler();
+async._TransformErrorHandler$ = dart.generic(T => {
+  const _TransformErrorHandler = dart.typedef('_TransformErrorHandler', () => dart.functionType(dart.void, [core.Object, core.StackTrace, async.EventSink$(T)]));
+  return _TransformErrorHandler;
+});
+async._TransformErrorHandler = _TransformErrorHandler();
+async._TransformDoneHandler$ = dart.generic(T => {
+  const _TransformDoneHandler = dart.typedef('_TransformDoneHandler', () => dart.functionType(dart.void, [async.EventSink$(T)]));
+  return _TransformDoneHandler;
+});
+async._TransformDoneHandler = _TransformDoneHandler();
+async._HandlerEventSink$ = dart.generic((S, T) => {
+  let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
+  let _TransformDataHandlerOfS$T = () => (_TransformDataHandlerOfS$T = dart.constFn(async._TransformDataHandler$(S, T)))();
+  let _TransformErrorHandlerOfT = () => (_TransformErrorHandlerOfT = dart.constFn(async._TransformErrorHandler$(T)))();
+  let _TransformDoneHandlerOfT = () => (_TransformDoneHandlerOfT = dart.constFn(async._TransformDoneHandler$(T)))();
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  class _HandlerEventSink extends core.Object {
+    new(handleData, handleError, handleDone, sink) {
+      this[_handleData] = handleData;
+      this[_handleError] = handleError;
+      this[_handleDone] = handleDone;
+      this[_sink] = sink;
+    }
+    add(data) {
+      S._check(data);
+      this[_handleData](data, this[_sink]);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_handleError](error, stackTrace, this[_sink]);
+    }
+    close() {
+      this[_handleDone](this[_sink]);
+    }
+  }
+  dart.addTypeTests(_HandlerEventSink);
+  _HandlerEventSink[dart.implements] = () => [EventSinkOfS()];
+  dart.setSignature(_HandlerEventSink, {
+    constructors: () => ({new: dart.definiteFunctionType(async._HandlerEventSink$(S, T), [_TransformDataHandlerOfS$T(), _TransformErrorHandlerOfT(), _TransformDoneHandlerOfT(), EventSinkOfT()])}),
+    fields: () => ({
+      [_handleData]: _TransformDataHandlerOfS$T(),
+      [_handleError]: _TransformErrorHandlerOfT(),
+      [_handleDone]: _TransformDoneHandlerOfT(),
+      [_sink]: EventSinkOfT()
+    }),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [S]),
+      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+      close: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _HandlerEventSink;
+});
+async._HandlerEventSink = _HandlerEventSink();
+async._StreamHandlerTransformer$ = dart.generic((S, T) => {
+  let _HandlerEventSinkOfS$T = () => (_HandlerEventSinkOfS$T = dart.constFn(async._HandlerEventSink$(S, T)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let SAndEventSinkOfTTovoid = () => (SAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [S, EventSinkOfT()])))();
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  let ObjectAndStackTraceAndEventSinkOfTTovoid = () => (ObjectAndStackTraceAndEventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [core.Object, core.StackTrace, EventSinkOfT()])))();
+  let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
+  let EventSinkOfTTo_HandlerEventSinkOfS$T = () => (EventSinkOfTTo_HandlerEventSinkOfS$T = dart.constFn(dart.definiteFunctionType(_HandlerEventSinkOfS$T(), [EventSinkOfT()])))();
+  class _StreamHandlerTransformer extends async._StreamSinkTransformer$(S, T) {
+    new(opts) {
+      let handleData = opts && 'handleData' in opts ? opts.handleData : null;
+      let handleError = opts && 'handleError' in opts ? opts.handleError : null;
+      let handleDone = opts && 'handleDone' in opts ? opts.handleDone : null;
+      super.new(dart.fn(outputSink => {
+        if (handleData == null) handleData = async._StreamHandlerTransformer._defaultHandleData;
+        if (handleError == null) handleError = async._StreamHandlerTransformer._defaultHandleError;
+        if (handleDone == null) handleDone = async._StreamHandlerTransformer._defaultHandleDone;
+        return new (_HandlerEventSinkOfS$T())(handleData, handleError, handleDone, outputSink);
+      }, EventSinkOfTTo_HandlerEventSinkOfS$T()));
+    }
+    bind(stream) {
+      StreamOfS()._check(stream);
+      return super.bind(stream);
+    }
+    static _defaultHandleData(data, sink) {
+      sink.add(data);
+    }
+    static _defaultHandleError(error, stackTrace, sink) {
+      sink.addError(error, stackTrace);
+    }
+    static _defaultHandleDone(sink) {
+      sink.close();
+    }
+  }
+  dart.setSignature(_StreamHandlerTransformer, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamHandlerTransformer$(S, T), [], {handleData: SAndEventSinkOfTTovoid(), handleError: ObjectAndStackTraceAndEventSinkOfTTovoid(), handleDone: EventSinkOfTTovoid()})}),
+    statics: () => ({
+      _defaultHandleData: dart.definiteFunctionType(dart.void, [dart.dynamic, async.EventSink]),
+      _defaultHandleError: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace, async.EventSink]),
+      _defaultHandleDone: dart.definiteFunctionType(dart.void, [async.EventSink])
+    }),
+    names: ['_defaultHandleData', '_defaultHandleError', '_defaultHandleDone']
+  });
+  return _StreamHandlerTransformer;
+});
+async._StreamHandlerTransformer = _StreamHandlerTransformer();
+async._SubscriptionTransformer$ = dart.generic((S, T) => {
+  const _SubscriptionTransformer = dart.typedef('_SubscriptionTransformer', () => dart.functionType(async.StreamSubscription$(T), [async.Stream$(S), core.bool]));
+  return _SubscriptionTransformer;
+});
+async._SubscriptionTransformer = _SubscriptionTransformer();
+const _transformer = Symbol('_transformer');
+async._StreamSubscriptionTransformer$ = dart.generic((S, T) => {
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _BoundSubscriptionStreamOfS$T = () => (_BoundSubscriptionStreamOfS$T = dart.constFn(async._BoundSubscriptionStream$(S, T)))();
+  let StreamTransformerOfS$T = () => (StreamTransformerOfS$T = dart.constFn(async.StreamTransformer$(S, T)))();
+  let _SubscriptionTransformerOfS$T = () => (_SubscriptionTransformerOfS$T = dart.constFn(async._SubscriptionTransformer$(S, T)))();
+  class _StreamSubscriptionTransformer extends core.Object {
+    new(transformer) {
+      this[_transformer] = transformer;
+    }
+    bind(stream) {
+      StreamOfS()._check(stream);
+      return new (_BoundSubscriptionStreamOfS$T())(stream, this[_transformer]);
+    }
+  }
+  dart.addTypeTests(_StreamSubscriptionTransformer);
+  _StreamSubscriptionTransformer[dart.implements] = () => [StreamTransformerOfS$T()];
+  dart.setSignature(_StreamSubscriptionTransformer, {
+    constructors: () => ({new: dart.definiteFunctionType(async._StreamSubscriptionTransformer$(S, T), [_SubscriptionTransformerOfS$T()])}),
+    fields: () => ({[_transformer]: _SubscriptionTransformerOfS$T()}),
+    methods: () => ({bind: dart.definiteFunctionType(async.Stream$(T), [StreamOfS()])})
+  });
+  return _StreamSubscriptionTransformer;
+});
+async._StreamSubscriptionTransformer = _StreamSubscriptionTransformer();
+async._BoundSubscriptionStream$ = dart.generic((S, T) => {
+  let _SubscriptionTransformerOfS$T = () => (_SubscriptionTransformerOfS$T = dart.constFn(async._SubscriptionTransformer$(S, T)))();
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _BoundSubscriptionStream extends async.Stream$(T) {
+    new(stream, transformer) {
+      this[_stream] = stream;
+      this[_transformer] = transformer;
+      super.new();
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      cancelOnError = core.identical(true, cancelOnError);
+      let result = this[_transformer](this[_stream], cancelOnError);
+      result.onData(onData);
+      result.onError(onError);
+      result.onDone(onDone);
+      return result;
+    }
+  }
+  dart.setSignature(_BoundSubscriptionStream, {
+    constructors: () => ({new: dart.definiteFunctionType(async._BoundSubscriptionStream$(S, T), [StreamOfS(), _SubscriptionTransformerOfS$T()])}),
+    fields: () => ({
+      [_transformer]: _SubscriptionTransformerOfS$T(),
+      [_stream]: StreamOfS()
+    }),
+    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+  });
+  return _BoundSubscriptionStream;
+});
+async._BoundSubscriptionStream = _BoundSubscriptionStream();
+async.Timer = class Timer extends core.Object {
+  static new(duration, callback) {
+    if (dart.equals(async.Zone.current, async.Zone.ROOT)) {
+      return async.Zone.current.createTimer(duration, callback);
+    }
+    return async.Zone.current.createTimer(duration, async.Zone.current.bindCallback(dart.void)(callback, {runGuarded: true}));
+  }
+  static periodic(duration, callback) {
+    if (dart.equals(async.Zone.current, async.Zone.ROOT)) {
+      return async.Zone.current.createPeriodicTimer(duration, callback);
+    }
+    let boundCallback = async.Zone.current.bindUnaryCallback(dart.dynamic, async.Timer)(callback, {runGuarded: true});
+    return async.Zone.current.createPeriodicTimer(duration, boundCallback);
+  }
+  static run(callback) {
+    async.Timer.new(core.Duration.ZERO, callback);
+  }
+  static _createTimer(duration, callback) {
+    let milliseconds = duration.inMilliseconds;
+    if (dart.notNull(milliseconds) < 0) milliseconds = 0;
+    return new _isolate_helper.TimerImpl(milliseconds, callback);
+  }
+  static _createPeriodicTimer(duration, callback) {
+    let milliseconds = duration.inMilliseconds;
+    if (dart.notNull(milliseconds) < 0) milliseconds = 0;
+    return new _isolate_helper.TimerImpl.periodic(milliseconds, callback);
+  }
+};
+dart.setSignature(async.Timer, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
+    periodic: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()])
+  }),
+  statics: () => ({
+    run: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    _createTimer: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
+    _createPeriodicTimer: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()])
+  }),
+  names: ['run', '_createTimer', '_createPeriodicTimer']
+});
+async.ZoneCallback$ = dart.generic(R => {
+  const ZoneCallback = dart.typedef('ZoneCallback', () => dart.functionType(R, []));
+  return ZoneCallback;
+});
+async.ZoneCallback = ZoneCallback();
+async.ZoneUnaryCallback$ = dart.generic((R, T) => {
+  const ZoneUnaryCallback = dart.typedef('ZoneUnaryCallback', () => dart.functionType(R, [T]));
+  return ZoneUnaryCallback;
+});
+async.ZoneUnaryCallback = ZoneUnaryCallback();
+async.ZoneBinaryCallback$ = dart.generic((R, T1, T2) => {
+  const ZoneBinaryCallback = dart.typedef('ZoneBinaryCallback', () => dart.functionType(R, [T1, T2]));
+  return ZoneBinaryCallback;
+});
+async.ZoneBinaryCallback = ZoneBinaryCallback();
+async.HandleUncaughtErrorHandler$ = dart.generic(R => {
+  const HandleUncaughtErrorHandler = dart.typedef('HandleUncaughtErrorHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]));
+  return HandleUncaughtErrorHandler;
+});
+async.HandleUncaughtErrorHandler = HandleUncaughtErrorHandler();
+async.RunHandler$ = dart.generic(R => {
+  const RunHandler = dart.typedef('RunHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]));
+  return RunHandler;
+});
+async.RunHandler = RunHandler();
+async.RunUnaryHandler$ = dart.generic((R, T) => {
+  const RunUnaryHandler = dart.typedef('RunUnaryHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]));
+  return RunUnaryHandler;
+});
+async.RunUnaryHandler = RunUnaryHandler();
+async.RunBinaryHandler$ = dart.generic((R, T1, T2) => {
+  const RunBinaryHandler = dart.typedef('RunBinaryHandler', () => dart.functionType(R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]));
+  return RunBinaryHandler;
+});
+async.RunBinaryHandler = RunBinaryHandler();
+async.RegisterCallbackHandler$ = dart.generic(R => {
+  const RegisterCallbackHandler = dart.typedef('RegisterCallbackHandler', () => dart.functionType(async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]));
+  return RegisterCallbackHandler;
+});
+async.RegisterCallbackHandler = RegisterCallbackHandler();
+async.RegisterUnaryCallbackHandler$ = dart.generic((R, T) => {
+  const RegisterUnaryCallbackHandler = dart.typedef('RegisterUnaryCallbackHandler', () => dart.functionType(async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])]));
+  return RegisterUnaryCallbackHandler;
+});
+async.RegisterUnaryCallbackHandler = RegisterUnaryCallbackHandler();
+async.RegisterBinaryCallbackHandler$ = dart.generic((R, T1, T2) => {
+  const RegisterBinaryCallbackHandler = dart.typedef('RegisterBinaryCallbackHandler', () => dart.functionType(async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])]));
+  return RegisterBinaryCallbackHandler;
+});
+async.RegisterBinaryCallbackHandler = RegisterBinaryCallbackHandler();
+async.ErrorCallbackHandler = dart.typedef('ErrorCallbackHandler', () => dart.functionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace]));
+async.ScheduleMicrotaskHandler = dart.typedef('ScheduleMicrotaskHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidTovoid()]));
+async.CreateTimerHandler = dart.typedef('CreateTimerHandler', () => dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidTovoid()]));
+async.CreatePeriodicTimerHandler = dart.typedef('CreatePeriodicTimerHandler', () => dart.functionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerTovoid()]));
+async.PrintHandler = dart.typedef('PrintHandler', () => dart.functionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String]));
+async.ForkHandler = dart.typedef('ForkHandler', () => dart.functionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map]));
+async._ZoneFunction$ = dart.generic(T => {
+  class _ZoneFunction extends core.Object {
+    new(zone, func) {
+      this.zone = zone;
+      this.function = func;
+    }
+  }
+  dart.addTypeTests(_ZoneFunction);
+  dart.setSignature(_ZoneFunction, {
+    constructors: () => ({new: dart.definiteFunctionType(async._ZoneFunction$(T), [async._Zone, T])}),
+    fields: () => ({
+      zone: async._Zone,
+      function: T
+    })
+  });
+  return _ZoneFunction;
+});
+async._ZoneFunction = _ZoneFunction();
+async.ZoneSpecification = class ZoneSpecification extends core.Object {
+  static new(opts) {
+    return new async._ZoneSpecification(opts);
+  }
+  static from(other, opts) {
+    let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
+    let run = opts && 'run' in opts ? opts.run : null;
+    let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
+    let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
+    let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
+    let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
+    let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
+    let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
+    let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
+    let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
+    let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
+    let print = opts && 'print' in opts ? opts.print : null;
+    let fork = opts && 'fork' in opts ? opts.fork : null;
+    return async.ZoneSpecification.new({handleUncaughtError: (handleUncaughtError != null ? handleUncaughtError : other.handleUncaughtError), run: (run != null ? run : other.run), runUnary: (runUnary != null ? runUnary : other.runUnary), runBinary: (runBinary != null ? runBinary : other.runBinary), registerCallback: (registerCallback != null ? registerCallback : other.registerCallback), registerUnaryCallback: (registerUnaryCallback != null ? registerUnaryCallback : other.registerUnaryCallback), registerBinaryCallback: (registerBinaryCallback != null ? registerBinaryCallback : other.registerBinaryCallback), errorCallback: (errorCallback != null ? errorCallback : other.errorCallback), scheduleMicrotask: (scheduleMicrotask != null ? scheduleMicrotask : other.scheduleMicrotask), createTimer: (createTimer != null ? createTimer : other.createTimer), createPeriodicTimer: (createPeriodicTimer != null ? createPeriodicTimer : other.createPeriodicTimer), print: (print != null ? print : other.print), fork: (fork != null ? fork : other.fork)});
+  }
+};
+dart.setSignature(async.ZoneSpecification, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(async.ZoneSpecification, [], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler}),
+    from: dart.definiteFunctionType(async.ZoneSpecification, [async.ZoneSpecification], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler})
+  })
+});
+async._ZoneSpecification = class _ZoneSpecification extends core.Object {
+  new(opts) {
+    let handleUncaughtError = opts && 'handleUncaughtError' in opts ? opts.handleUncaughtError : null;
+    let run = opts && 'run' in opts ? opts.run : null;
+    let runUnary = opts && 'runUnary' in opts ? opts.runUnary : null;
+    let runBinary = opts && 'runBinary' in opts ? opts.runBinary : null;
+    let registerCallback = opts && 'registerCallback' in opts ? opts.registerCallback : null;
+    let registerUnaryCallback = opts && 'registerUnaryCallback' in opts ? opts.registerUnaryCallback : null;
+    let registerBinaryCallback = opts && 'registerBinaryCallback' in opts ? opts.registerBinaryCallback : null;
+    let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
+    let scheduleMicrotask = opts && 'scheduleMicrotask' in opts ? opts.scheduleMicrotask : null;
+    let createTimer = opts && 'createTimer' in opts ? opts.createTimer : null;
+    let createPeriodicTimer = opts && 'createPeriodicTimer' in opts ? opts.createPeriodicTimer : null;
+    let print = opts && 'print' in opts ? opts.print : null;
+    let fork = opts && 'fork' in opts ? opts.fork : null;
+    this.handleUncaughtError = handleUncaughtError;
+    this.run = run;
+    this.runUnary = runUnary;
+    this.runBinary = runBinary;
+    this.registerCallback = registerCallback;
+    this.registerUnaryCallback = registerUnaryCallback;
+    this.registerBinaryCallback = registerBinaryCallback;
+    this.errorCallback = errorCallback;
+    this.scheduleMicrotask = scheduleMicrotask;
+    this.createTimer = createTimer;
+    this.createPeriodicTimer = createPeriodicTimer;
+    this.print = print;
+    this.fork = fork;
+  }
+};
+async._ZoneSpecification[dart.implements] = () => [async.ZoneSpecification];
+dart.setSignature(async._ZoneSpecification, {
+  constructors: () => ({new: dart.definiteFunctionType(async._ZoneSpecification, [], {handleUncaughtError: async.HandleUncaughtErrorHandler, run: async.RunHandler, runUnary: async.RunUnaryHandler, runBinary: async.RunBinaryHandler, registerCallback: async.RegisterCallbackHandler, registerUnaryCallback: async.RegisterUnaryCallbackHandler, registerBinaryCallback: async.RegisterBinaryCallbackHandler, errorCallback: async.ErrorCallbackHandler, scheduleMicrotask: async.ScheduleMicrotaskHandler, createTimer: async.CreateTimerHandler, createPeriodicTimer: async.CreatePeriodicTimerHandler, print: async.PrintHandler, fork: async.ForkHandler})}),
+  fields: () => ({
+    handleUncaughtError: async.HandleUncaughtErrorHandler,
+    run: async.RunHandler,
+    runUnary: async.RunUnaryHandler,
+    runBinary: async.RunBinaryHandler,
+    registerCallback: async.RegisterCallbackHandler,
+    registerUnaryCallback: async.RegisterUnaryCallbackHandler,
+    registerBinaryCallback: async.RegisterBinaryCallbackHandler,
+    errorCallback: async.ErrorCallbackHandler,
+    scheduleMicrotask: async.ScheduleMicrotaskHandler,
+    createTimer: async.CreateTimerHandler,
+    createPeriodicTimer: async.CreatePeriodicTimerHandler,
+    print: async.PrintHandler,
+    fork: async.ForkHandler
+  })
+});
+async.ZoneDelegate = class ZoneDelegate extends core.Object {};
+async.Zone = class Zone extends core.Object {
+  _() {
+  }
+  static get current() {
+    return async.Zone._current;
+  }
+  static _enter(zone) {
+    dart.assert(zone != null);
+    dart.assert(!core.identical(zone, async.Zone._current));
+    let previous = async.Zone._current;
+    async.Zone._current = zone;
+    return previous;
+  }
+  static _leave(previous) {
+    dart.assert(previous != null);
+    async.Zone._current = previous;
+  }
+};
+dart.defineNamedConstructor(async.Zone, '_');
+dart.setSignature(async.Zone, {
+  constructors: () => ({_: dart.definiteFunctionType(async.Zone, [])}),
+  sfields: () => ({
+    ROOT: async.Zone,
+    _current: async.Zone
+  }),
+  sgetters: () => ({current: dart.definiteFunctionType(async.Zone, [])}),
+  statics: () => ({
+    _enter: dart.definiteFunctionType(async.Zone, [async.Zone]),
+    _leave: dart.definiteFunctionType(dart.void, [async.Zone])
+  }),
+  names: ['_enter', '_leave']
+});
+dart.defineLazy(async.Zone, {
+  get ROOT() {
+    return async._ROOT_ZONE;
+  },
+  get _current() {
+    return async._ROOT_ZONE;
+  },
+  set _current(_) {}
+});
+const _delegate = Symbol('_delegate');
+async._parentDelegate = function(zone) {
+  if (zone.parent == null) return null;
+  return zone.parent[_delegate];
+};
+dart.lazyFn(async._parentDelegate, () => _ZoneToZoneDelegate());
+const _delegationTarget = Symbol('_delegationTarget');
+const _handleUncaughtError = Symbol('_handleUncaughtError');
+const _run = Symbol('_run');
+const _runUnary = Symbol('_runUnary');
+const _runBinary = Symbol('_runBinary');
+const _registerCallback = Symbol('_registerCallback');
+const _registerUnaryCallback = Symbol('_registerUnaryCallback');
+const _registerBinaryCallback = Symbol('_registerBinaryCallback');
+const _errorCallback = Symbol('_errorCallback');
+const _createTimer = Symbol('_createTimer');
+const _createPeriodicTimer = Symbol('_createPeriodicTimer');
+const _print = Symbol('_print');
+const _fork = Symbol('_fork');
+async._ZoneDelegate = class _ZoneDelegate extends core.Object {
+  new(delegationTarget) {
+    this[_delegationTarget] = delegationTarget;
+  }
+  handleUncaughtError(R) {
+    return (zone, error, stackTrace) => {
+      let implementation = this[_delegationTarget][_handleUncaughtError];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return R.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, error, stackTrace));
+    };
+  }
+  run(R) {
+    return (zone, f) => {
+      let implementation = this[_delegationTarget][_run];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return R.as(handler(implZone, async._parentDelegate(implZone), zone, f));
+    };
+  }
+  runUnary(R, T) {
+    return (zone, f, arg) => {
+      let implementation = this[_delegationTarget][_runUnary];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return R.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, f, arg));
+    };
+  }
+  runBinary(R, T1, T2) {
+    return (zone, f, arg1, arg2) => {
+      let implementation = this[_delegationTarget][_runBinary];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return R.as(dart.dcall(handler, implZone, async._parentDelegate(implZone), zone, f, arg1, arg2));
+    };
+  }
+  registerCallback(R) {
+    return (zone, f) => {
+      let implementation = this[_delegationTarget][_registerCallback];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return async.ZoneCallback$(R).as(handler(implZone, async._parentDelegate(implZone), zone, f));
+    };
+  }
+  registerUnaryCallback(R, T) {
+    return (zone, f) => {
+      let implementation = this[_delegationTarget][_registerUnaryCallback];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return async.ZoneUnaryCallback$(R, T).as(handler(implZone, async._parentDelegate(implZone), zone, f));
+    };
+  }
+  registerBinaryCallback(R, T1, T2) {
+    return (zone, f) => {
+      let implementation = this[_delegationTarget][_registerBinaryCallback];
+      let implZone = implementation.zone;
+      let handler = implementation.function;
+      return async.ZoneBinaryCallback$(R, T1, T2).as(handler(implZone, async._parentDelegate(implZone), zone, f));
+    };
+  }
+  errorCallback(zone, error, stackTrace) {
+    let implementation = this[_delegationTarget][_errorCallback];
+    let implZone = implementation.zone;
+    if (core.identical(implZone, async._ROOT_ZONE)) return null;
+    let handler = implementation.function;
+    return handler(implZone, async._parentDelegate(implZone), zone, error, stackTrace);
+  }
+  scheduleMicrotask(zone, f) {
+    let implementation = this[_delegationTarget][_scheduleMicrotask];
+    let implZone = implementation.zone;
+    let handler = implementation.function;
+    handler(implZone, async._parentDelegate(implZone), zone, f);
+  }
+  createTimer(zone, duration, f) {
+    let implementation = this[_delegationTarget][_createTimer];
+    let implZone = implementation.zone;
+    let handler = implementation.function;
+    return handler(implZone, async._parentDelegate(implZone), zone, duration, f);
+  }
+  createPeriodicTimer(zone, period, f) {
+    let implementation = this[_delegationTarget][_createPeriodicTimer];
+    let implZone = implementation.zone;
+    let handler = implementation.function;
+    return handler(implZone, async._parentDelegate(implZone), zone, period, f);
+  }
+  print(zone, line) {
+    let implementation = this[_delegationTarget][_print];
+    let implZone = implementation.zone;
+    let handler = implementation.function;
+    handler(implZone, async._parentDelegate(implZone), zone, line);
+  }
+  fork(zone, specification, zoneValues) {
+    let implementation = this[_delegationTarget][_fork];
+    let implZone = implementation.zone;
+    let handler = implementation.function;
+    return handler(implZone, async._parentDelegate(implZone), zone, specification, zoneValues);
+  }
+};
+async._ZoneDelegate[dart.implements] = () => [async.ZoneDelegate];
+dart.setSignature(async._ZoneDelegate, {
+  constructors: () => ({new: dart.definiteFunctionType(async._ZoneDelegate, [async._Zone])}),
+  fields: () => ({[_delegationTarget]: async._Zone}),
+  methods: () => ({
+    handleUncaughtError: dart.definiteFunctionType(R => [R, [async.Zone, dart.dynamic, core.StackTrace]]),
+    run: dart.definiteFunctionType(R => [R, [async.Zone, dart.functionType(R, [])]]),
+    runUnary: dart.definiteFunctionType((R, T) => [R, [async.Zone, dart.functionType(R, [T]), T]]),
+    runBinary: dart.definiteFunctionType((R, T1, T2) => [R, [async.Zone, dart.functionType(R, [T1, T2]), T1, T2]]),
+    registerCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [async.Zone, dart.functionType(R, [])]]),
+    registerUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, dart.functionType(R, [T])]]),
+    registerBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, dart.functionType(R, [T1, T2])]]),
+    errorCallback: dart.definiteFunctionType(async.AsyncError, [async.Zone, core.Object, core.StackTrace]),
+    scheduleMicrotask: dart.definiteFunctionType(dart.void, [async.Zone, VoidTodynamic()]),
+    createTimer: dart.definiteFunctionType(async.Timer, [async.Zone, core.Duration, VoidTovoid()]),
+    createPeriodicTimer: dart.definiteFunctionType(async.Timer, [async.Zone, core.Duration, TimerTovoid()]),
+    print: dart.definiteFunctionType(dart.void, [async.Zone, core.String]),
+    fork: dart.definiteFunctionType(async.Zone, [async.Zone, async.ZoneSpecification, core.Map])
+  })
+});
+const _map$ = Symbol('_map');
+async._Zone = class _Zone extends core.Object {
+  new() {
+  }
+  inSameErrorZone(otherZone) {
+    return core.identical(this, otherZone) || core.identical(this.errorZone, otherZone.errorZone);
+  }
+};
+async._Zone[dart.implements] = () => [async.Zone];
+dart.setSignature(async._Zone, {
+  constructors: () => ({new: dart.definiteFunctionType(async._Zone, [])}),
+  methods: () => ({inSameErrorZone: dart.definiteFunctionType(core.bool, [async.Zone])})
+});
+const _delegateCache = Symbol('_delegateCache');
+async._CustomZone = class _CustomZone extends async._Zone {
+  get [_delegate]() {
+    if (this[_delegateCache] != null) return this[_delegateCache];
+    this[_delegateCache] = new async._ZoneDelegate(this);
+    return this[_delegateCache];
+  }
+  new(parent, specification, map) {
+    this.parent = parent;
+    this[_map$] = map;
+    this[_run] = null;
+    this[_runUnary] = null;
+    this[_runBinary] = null;
+    this[_registerCallback] = null;
+    this[_registerUnaryCallback] = null;
+    this[_registerBinaryCallback] = null;
+    this[_errorCallback] = null;
+    this[_scheduleMicrotask] = null;
+    this[_createTimer] = null;
+    this[_createPeriodicTimer] = null;
+    this[_print] = null;
+    this[_fork] = null;
+    this[_handleUncaughtError] = null;
+    this[_delegateCache] = null;
+    super.new();
+    this[_run] = specification.run != null ? new (_ZoneFunctionOfRunHandler())(this, specification.run) : this.parent[_run];
+    this[_runUnary] = specification.runUnary != null ? new (_ZoneFunctionOfRunUnaryHandler())(this, specification.runUnary) : this.parent[_runUnary];
+    this[_runBinary] = specification.runBinary != null ? new (_ZoneFunctionOfRunBinaryHandler())(this, specification.runBinary) : this.parent[_runBinary];
+    this[_registerCallback] = specification.registerCallback != null ? new (_ZoneFunctionOfRegisterCallbackHandler())(this, specification.registerCallback) : this.parent[_registerCallback];
+    this[_registerUnaryCallback] = specification.registerUnaryCallback != null ? new (_ZoneFunctionOfRegisterUnaryCallbackHandler())(this, specification.registerUnaryCallback) : this.parent[_registerUnaryCallback];
+    this[_registerBinaryCallback] = specification.registerBinaryCallback != null ? new (_ZoneFunctionOfRegisterBinaryCallbackHandler())(this, specification.registerBinaryCallback) : this.parent[_registerBinaryCallback];
+    this[_errorCallback] = specification.errorCallback != null ? new (_ZoneFunctionOfErrorCallbackHandler())(this, specification.errorCallback) : this.parent[_errorCallback];
+    this[_scheduleMicrotask] = specification.scheduleMicrotask != null ? new (_ZoneFunctionOfScheduleMicrotaskHandler())(this, specification.scheduleMicrotask) : this.parent[_scheduleMicrotask];
+    this[_createTimer] = specification.createTimer != null ? new (_ZoneFunctionOfCreateTimerHandler())(this, specification.createTimer) : this.parent[_createTimer];
+    this[_createPeriodicTimer] = specification.createPeriodicTimer != null ? new (_ZoneFunctionOfCreatePeriodicTimerHandler())(this, specification.createPeriodicTimer) : this.parent[_createPeriodicTimer];
+    this[_print] = specification.print != null ? new (_ZoneFunctionOfPrintHandler())(this, specification.print) : this.parent[_print];
+    this[_fork] = specification.fork != null ? new (_ZoneFunctionOfForkHandler())(this, specification.fork) : this.parent[_fork];
+    this[_handleUncaughtError] = specification.handleUncaughtError != null ? new (_ZoneFunctionOfHandleUncaughtErrorHandler())(this, specification.handleUncaughtError) : this.parent[_handleUncaughtError];
+  }
+  get errorZone() {
+    return this[_handleUncaughtError].zone;
+  }
+  runGuarded(R) {
+    return f => {
+      try {
+        return this.run(R)(f);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        return this.handleUncaughtError(R)(e, s);
+      }
+
+    };
+  }
+  runUnaryGuarded(R, T) {
+    return (f, arg) => {
+      try {
+        return this.runUnary(R, T)(f, arg);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        return this.handleUncaughtError(R)(e, s);
+      }
+
+    };
+  }
+  runBinaryGuarded(R, T1, T2) {
+    return (f, arg1, arg2) => {
+      try {
+        return this.runBinary(R, T1, T2)(f, arg1, arg2);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        return this.handleUncaughtError(R)(e, s);
+      }
+
+    };
+  }
+  bindCallback(R) {
+    return (f, opts) => {
+      let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
+      let registered = this.registerCallback(R)(f);
+      if (dart.test(runGuarded)) {
+        return dart.fn(() => this.runGuarded(R)(registered), dart.definiteFunctionType(R, []));
+      } else {
+        return dart.fn(() => this.run(R)(registered), dart.definiteFunctionType(R, []));
+      }
+    };
+  }
+  bindUnaryCallback(R, T) {
+    return (f, opts) => {
+      let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
+      let registered = this.registerUnaryCallback(R, T)(f);
+      if (dart.test(runGuarded)) {
+        return dart.fn(arg => this.runUnaryGuarded(R, T)(registered, arg), dart.definiteFunctionType(R, [T]));
+      } else {
+        return dart.fn(arg => this.runUnary(R, T)(registered, arg), dart.definiteFunctionType(R, [T]));
+      }
+    };
+  }
+  bindBinaryCallback(R, T1, T2) {
+    return (f, opts) => {
+      let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
+      let registered = this.registerBinaryCallback(R, T1, T2)(f);
+      if (dart.test(runGuarded)) {
+        return dart.fn((arg1, arg2) => this.runBinaryGuarded(R, T1, T2)(registered, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
+      } else {
+        return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2)(registered, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
+      }
+    };
+  }
+  _get(key) {
+    let result = this[_map$][dartx._get](key);
+    if (result != null || dart.test(this[_map$][dartx.containsKey](key))) return result;
+    if (this.parent != null) {
+      let value = this.parent._get(key);
+      if (value != null) {
+        this[_map$][dartx._set](key, value);
+      }
+      return value;
+    }
+    dart.assert(dart.equals(this, async._ROOT_ZONE));
+    return null;
+  }
+  handleUncaughtError(R) {
+    return (error, stackTrace) => {
+      let implementation = this[_handleUncaughtError];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return R.as(dart.dcall(handler, implementation.zone, parentDelegate, this, error, stackTrace));
+    };
+  }
+  fork(opts) {
+    let specification = opts && 'specification' in opts ? opts.specification : null;
+    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
+    let implementation = this[_fork];
+    dart.assert(implementation != null);
+    let parentDelegate = async._parentDelegate(implementation.zone);
+    let handler = implementation.function;
+    return handler(implementation.zone, parentDelegate, this, specification, zoneValues);
+  }
+  run(R) {
+    return f => {
+      let implementation = this[_run];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return R.as(handler(implementation.zone, parentDelegate, this, f));
+    };
+  }
+  runUnary(R, T) {
+    return (f, arg) => {
+      let implementation = this[_runUnary];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return R.as(dart.dcall(handler, implementation.zone, parentDelegate, this, f, arg));
+    };
+  }
+  runBinary(R, T1, T2) {
+    return (f, arg1, arg2) => {
+      let implementation = this[_runBinary];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return R.as(dart.dcall(handler, implementation.zone, parentDelegate, this, f, arg1, arg2));
+    };
+  }
+  registerCallback(R) {
+    return callback => {
+      let implementation = this[_registerCallback];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return async.ZoneCallback$(R).as(handler(implementation.zone, parentDelegate, this, callback));
+    };
+  }
+  registerUnaryCallback(R, T) {
+    return callback => {
+      let implementation = this[_registerUnaryCallback];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return async.ZoneUnaryCallback$(R, T).as(handler(implementation.zone, parentDelegate, this, callback));
+    };
+  }
+  registerBinaryCallback(R, T1, T2) {
+    return callback => {
+      let implementation = this[_registerBinaryCallback];
+      dart.assert(implementation != null);
+      let parentDelegate = async._parentDelegate(implementation.zone);
+      let handler = implementation.function;
+      return async.ZoneBinaryCallback$(R, T1, T2).as(handler(implementation.zone, parentDelegate, this, callback));
+    };
+  }
+  errorCallback(error, stackTrace) {
+    let implementation = this[_errorCallback];
+    dart.assert(implementation != null);
+    let implementationZone = implementation.zone;
+    if (core.identical(implementationZone, async._ROOT_ZONE)) return null;
+    let parentDelegate = async._parentDelegate(async._Zone._check(implementationZone));
+    let handler = implementation.function;
+    return handler(implementationZone, parentDelegate, this, error, stackTrace);
+  }
+  scheduleMicrotask(f) {
+    let implementation = this[_scheduleMicrotask];
+    dart.assert(implementation != null);
+    let parentDelegate = async._parentDelegate(implementation.zone);
+    let handler = implementation.function;
+    return handler(implementation.zone, parentDelegate, this, f);
+  }
+  createTimer(duration, f) {
+    let implementation = this[_createTimer];
+    dart.assert(implementation != null);
+    let parentDelegate = async._parentDelegate(implementation.zone);
+    let handler = implementation.function;
+    return handler(implementation.zone, parentDelegate, this, duration, f);
+  }
+  createPeriodicTimer(duration, f) {
+    let implementation = this[_createPeriodicTimer];
+    dart.assert(implementation != null);
+    let parentDelegate = async._parentDelegate(implementation.zone);
+    let handler = implementation.function;
+    return handler(implementation.zone, parentDelegate, this, duration, f);
+  }
+  print(line) {
+    let implementation = this[_print];
+    dart.assert(implementation != null);
+    let parentDelegate = async._parentDelegate(implementation.zone);
+    let handler = implementation.function;
+    return handler(implementation.zone, parentDelegate, this, line);
+  }
+};
+dart.setSignature(async._CustomZone, {
+  constructors: () => ({new: dart.definiteFunctionType(async._CustomZone, [async._Zone, async.ZoneSpecification, core.Map])}),
+  fields: () => ({
+    [_run]: _ZoneFunctionOfRunHandler(),
+    [_runUnary]: _ZoneFunctionOfRunUnaryHandler(),
+    [_runBinary]: _ZoneFunctionOfRunBinaryHandler(),
+    [_registerCallback]: _ZoneFunctionOfRegisterCallbackHandler(),
+    [_registerUnaryCallback]: _ZoneFunctionOfRegisterUnaryCallbackHandler(),
+    [_registerBinaryCallback]: _ZoneFunctionOfRegisterBinaryCallbackHandler(),
+    [_errorCallback]: _ZoneFunctionOfErrorCallbackHandler(),
+    [_scheduleMicrotask]: _ZoneFunctionOfScheduleMicrotaskHandler(),
+    [_createTimer]: _ZoneFunctionOfCreateTimerHandler(),
+    [_createPeriodicTimer]: _ZoneFunctionOfCreatePeriodicTimerHandler(),
+    [_print]: _ZoneFunctionOfPrintHandler(),
+    [_fork]: _ZoneFunctionOfForkHandler(),
+    [_handleUncaughtError]: _ZoneFunctionOfHandleUncaughtErrorHandler(),
+    [_delegateCache]: async.ZoneDelegate,
+    parent: async._Zone,
+    [_map$]: core.Map
+  }),
+  getters: () => ({
+    [_delegate]: dart.definiteFunctionType(async.ZoneDelegate, []),
+    errorZone: dart.definiteFunctionType(async.Zone, [])
+  }),
+  methods: () => ({
+    runGuarded: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
+    runUnaryGuarded: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
+    runBinaryGuarded: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
+    bindCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])], {runGuarded: core.bool}]),
+    bindUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])], {runGuarded: core.bool}]),
+    bindBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])], {runGuarded: core.bool}]),
+    _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    handleUncaughtError: dart.definiteFunctionType(R => [R, [dart.dynamic, core.StackTrace]]),
+    fork: dart.definiteFunctionType(async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}),
+    run: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
+    runUnary: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
+    runBinary: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
+    registerCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])]]),
+    registerUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])]]),
+    registerBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])]]),
+    errorCallback: dart.definiteFunctionType(async.AsyncError, [core.Object, core.StackTrace]),
+    scheduleMicrotask: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    createTimer: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
+    createPeriodicTimer: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()]),
+    print: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+async._rootHandleUncaughtError = function(R) {
+  return (self, parent, zone, error, stackTrace) => {
+    async._schedulePriorityAsyncCallback(dart.fn(() => {
+      if (error == null) error = new core.NullThrownError();
+      if (stackTrace == null) dart.throw(error);
+      async._rethrow(error, stackTrace);
+    }, VoidToNull()));
+  };
+};
+dart.lazyFn(async._rootHandleUncaughtError, () => ZoneAndZoneDelegateAndZone__ToR());
+async._rethrow = function(error, stackTrace) {
+  error.stack = dart.toString(stackTrace);
+  throw error;
+};
+dart.lazyFn(async._rethrow, () => ObjectAndStackTraceTovoid());
+async._rootRun = function(R) {
+  return (self, parent, zone, f) => {
+    if (dart.equals(async.Zone._current, zone)) return f();
+    let old = async.Zone._enter(zone);
+    try {
+      return f();
+    } finally {
+      async.Zone._leave(old);
+    }
+  };
+};
+dart.fn(async._rootRun, ZoneAndZoneDelegateAndZone__ToR$());
+async._rootRunUnary = function(R, T) {
+  return (self, parent, zone, f, arg) => {
+    if (dart.equals(async.Zone._current, zone)) return f(arg);
+    let old = async.Zone._enter(zone);
+    try {
+      return f(arg);
+    } finally {
+      async.Zone._leave(old);
+    }
+  };
+};
+dart.fn(async._rootRunUnary, ZoneAndZoneDelegateAndZone__ToR$0());
+async._rootRunBinary = function(R, T1, T2) {
+  return (self, parent, zone, f, arg1, arg2) => {
+    if (dart.equals(async.Zone._current, zone)) return f(arg1, arg2);
+    let old = async.Zone._enter(zone);
+    try {
+      return f(arg1, arg2);
+    } finally {
+      async.Zone._leave(old);
+    }
+  };
+};
+dart.fn(async._rootRunBinary, ZoneAndZoneDelegateAndZone__ToR$1());
+async._rootRegisterCallback = function(R) {
+  return (self, parent, zone, f) => {
+    return f;
+  };
+};
+dart.fn(async._rootRegisterCallback, ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR());
+async._rootRegisterUnaryCallback = function(R, T) {
+  return (self, parent, zone, f) => {
+    return f;
+  };
+};
+dart.fn(async._rootRegisterUnaryCallback, ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T());
+async._rootRegisterBinaryCallback = function(R, T1, T2) {
+  return (self, parent, zone, f) => {
+    return f;
+  };
+};
+dart.fn(async._rootRegisterBinaryCallback, ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2());
+async._rootErrorCallback = function(self, parent, zone, error, stackTrace) {
+  return null;
+};
+dart.lazyFn(async._rootErrorCallback, () => ZoneAndZoneDelegateAndZone__ToAsyncError());
+async._rootScheduleMicrotask = function(self, parent, zone, f) {
+  if (!core.identical(async._ROOT_ZONE, zone)) {
+    let hasErrorHandler = !dart.test(async._ROOT_ZONE.inSameErrorZone(zone));
+    f = zone.bindCallback(dart.dynamic)(f, {runGuarded: hasErrorHandler});
+    zone = async._ROOT_ZONE;
+  }
+  async._scheduleAsyncCallback(f);
+};
+dart.fn(async._rootScheduleMicrotask, ZoneAndZoneDelegateAndZone__Tovoid());
+async._rootCreateTimer = function(self, parent, zone, duration, callback) {
+  if (!core.identical(async._ROOT_ZONE, zone)) {
+    callback = zone.bindCallback(dart.void)(callback);
+  }
+  return async.Timer._createTimer(duration, callback);
+};
+dart.lazyFn(async._rootCreateTimer, () => ZoneAndZoneDelegateAndZone__ToTimer());
+async._rootCreatePeriodicTimer = function(self, parent, zone, duration, callback) {
+  if (!core.identical(async._ROOT_ZONE, zone)) {
+    callback = zone.bindUnaryCallback(dart.dynamic, async.Timer)(callback);
+  }
+  return async.Timer._createPeriodicTimer(duration, callback);
+};
+dart.lazyFn(async._rootCreatePeriodicTimer, () => ZoneAndZoneDelegateAndZone__ToTimer$());
+async._rootPrint = function(self, parent, zone, line) {
+  _internal.printToConsole(line);
+};
+dart.lazyFn(async._rootPrint, () => ZoneAndZoneDelegateAndZone__Tovoid$());
+async._printToZone = function(line) {
+  async.Zone.current.print(line);
+};
+dart.lazyFn(async._printToZone, () => StringTovoid$());
+let const$11;
+async._rootFork = function(self, parent, zone, specification, zoneValues) {
+  _internal.printToZone = async._printToZone;
+  if (specification == null) {
+    specification = const$11 || (const$11 = dart.const(async.ZoneSpecification.new()));
+  } else if (!async._ZoneSpecification.is(specification)) {
+    dart.throw(new core.ArgumentError("ZoneSpecifications must be instantiated" + " with the provided constructor."));
+  }
+  let valueMap = null;
+  if (zoneValues == null) {
+    if (async._Zone.is(zone)) {
+      valueMap = zone[_map$];
+    } else {
+      valueMap = collection.HashMap.new();
+    }
+  } else {
+    valueMap = collection.HashMap.from(zoneValues);
+  }
+  return new async._CustomZone(async._Zone._check(zone), specification, valueMap);
+};
+dart.lazyFn(async._rootFork, () => ZoneAndZoneDelegateAndZone__ToZone());
+let const$12;
+let const$13;
+let const$14;
+let const$15;
+let const$16;
+let const$17;
+let const$18;
+let const$19;
+let const$20;
+let const$21;
+let const$22;
+let const$23;
+let const$24;
+async._RootZone = class _RootZone extends async._Zone {
+  new() {
+    super.new();
+  }
+  get [_run]() {
+    return const$12 || (const$12 = dart.const(new (_ZoneFunctionOfRunHandler())(async._ROOT_ZONE, dart.gbind(async._rootRun, dart.dynamic))));
+  }
+  get [_runUnary]() {
+    return const$13 || (const$13 = dart.const(new (_ZoneFunctionOfRunUnaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunUnary, dart.dynamic, dart.dynamic))));
+  }
+  get [_runBinary]() {
+    return const$14 || (const$14 = dart.const(new (_ZoneFunctionOfRunBinaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunBinary, dart.dynamic, dart.dynamic, dart.dynamic))));
+  }
+  get [_registerCallback]() {
+    return const$15 || (const$15 = dart.const(new (_ZoneFunctionOfRegisterCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterCallback, dart.dynamic))));
+  }
+  get [_registerUnaryCallback]() {
+    return const$16 || (const$16 = dart.const(new (_ZoneFunctionOfRegisterUnaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterUnaryCallback, dart.dynamic, dart.dynamic))));
+  }
+  get [_registerBinaryCallback]() {
+    return const$17 || (const$17 = dart.const(new (_ZoneFunctionOfRegisterBinaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterBinaryCallback, dart.dynamic, dart.dynamic, dart.dynamic))));
+  }
+  get [_errorCallback]() {
+    return const$18 || (const$18 = dart.const(new (_ZoneFunctionOfErrorCallbackHandler())(async._ROOT_ZONE, async._rootErrorCallback)));
+  }
+  get [_scheduleMicrotask]() {
+    return const$19 || (const$19 = dart.const(new (_ZoneFunctionOfScheduleMicrotaskHandler())(async._ROOT_ZONE, async._rootScheduleMicrotask)));
+  }
+  get [_createTimer]() {
+    return const$20 || (const$20 = dart.const(new (_ZoneFunctionOfCreateTimerHandler())(async._ROOT_ZONE, async._rootCreateTimer)));
+  }
+  get [_createPeriodicTimer]() {
+    return const$21 || (const$21 = dart.const(new (_ZoneFunctionOfCreatePeriodicTimerHandler())(async._ROOT_ZONE, async._rootCreatePeriodicTimer)));
+  }
+  get [_print]() {
+    return const$22 || (const$22 = dart.const(new (_ZoneFunctionOfPrintHandler())(async._ROOT_ZONE, async._rootPrint)));
+  }
+  get [_fork]() {
+    return const$23 || (const$23 = dart.const(new (_ZoneFunctionOfForkHandler())(async._ROOT_ZONE, async._rootFork)));
+  }
+  get [_handleUncaughtError]() {
+    return const$24 || (const$24 = dart.const(new (_ZoneFunctionOfHandleUncaughtErrorHandler())(async._ROOT_ZONE, dart.gbind(async._rootHandleUncaughtError, dart.dynamic))));
+  }
+  get parent() {
+    return null;
+  }
+  get [_map$]() {
+    return async._RootZone._rootMap;
+  }
+  get [_delegate]() {
+    if (async._RootZone._rootDelegate != null) return async._RootZone._rootDelegate;
+    return async._RootZone._rootDelegate = new async._ZoneDelegate(this);
+  }
+  get errorZone() {
+    return this;
+  }
+  runGuarded(R) {
+    return f => {
+      try {
+        if (core.identical(async._ROOT_ZONE, async.Zone._current)) {
+          return f();
+        }
+        return async._rootRun(R)(null, null, this, f);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        return this.handleUncaughtError(R)(e, s);
+      }
+
+    };
+  }
+  runUnaryGuarded(R, T) {
+    return (f, arg) => {
+      try {
+        if (core.identical(async._ROOT_ZONE, async.Zone._current)) {
+          return f(arg);
+        }
+        return async._rootRunUnary(R, T)(null, null, this, f, arg);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        return this.handleUncaughtError(R)(e, s);
+      }
+
+    };
+  }
+  runBinaryGuarded(R, T1, T2) {
+    return (f, arg1, arg2) => {
+      try {
+        if (core.identical(async._ROOT_ZONE, async.Zone._current)) {
+          return f(arg1, arg2);
+        }
+        return async._rootRunBinary(R, T1, T2)(null, null, this, f, arg1, arg2);
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        return this.handleUncaughtError(R)(e, s);
+      }
+
+    };
+  }
+  bindCallback(R) {
+    return (f, opts) => {
+      let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
+      if (dart.test(runGuarded)) {
+        return dart.fn(() => this.runGuarded(R)(f), dart.definiteFunctionType(R, []));
+      } else {
+        return dart.fn(() => this.run(R)(f), dart.definiteFunctionType(R, []));
+      }
+    };
+  }
+  bindUnaryCallback(R, T) {
+    return (f, opts) => {
+      let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
+      if (dart.test(runGuarded)) {
+        return dart.fn(arg => this.runUnaryGuarded(R, T)(f, arg), dart.definiteFunctionType(R, [T]));
+      } else {
+        return dart.fn(arg => this.runUnary(R, T)(f, arg), dart.definiteFunctionType(R, [T]));
+      }
+    };
+  }
+  bindBinaryCallback(R, T1, T2) {
+    return (f, opts) => {
+      let runGuarded = opts && 'runGuarded' in opts ? opts.runGuarded : true;
+      if (dart.test(runGuarded)) {
+        return dart.fn((arg1, arg2) => this.runBinaryGuarded(R, T1, T2)(f, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
+      } else {
+        return dart.fn((arg1, arg2) => this.runBinary(R, T1, T2)(f, arg1, arg2), dart.definiteFunctionType(R, [T1, T2]));
+      }
+    };
+  }
+  _get(key) {
+    return null;
+  }
+  handleUncaughtError(R) {
+    return (error, stackTrace) => {
+      return async._rootHandleUncaughtError(R)(null, null, this, error, stackTrace);
+    };
+  }
+  fork(opts) {
+    let specification = opts && 'specification' in opts ? opts.specification : null;
+    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
+    return async._rootFork(null, null, this, specification, zoneValues);
+  }
+  run(R) {
+    return f => {
+      if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f();
+      return async._rootRun(R)(null, null, this, f);
+    };
+  }
+  runUnary(R, T) {
+    return (f, arg) => {
+      if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(arg);
+      return async._rootRunUnary(R, T)(null, null, this, f, arg);
+    };
+  }
+  runBinary(R, T1, T2) {
+    return (f, arg1, arg2) => {
+      if (core.identical(async.Zone._current, async._ROOT_ZONE)) return f(arg1, arg2);
+      return async._rootRunBinary(R, T1, T2)(null, null, this, f, arg1, arg2);
+    };
+  }
+  registerCallback(R) {
+    return f => {
+      return f;
+    };
+  }
+  registerUnaryCallback(R, T) {
+    return f => {
+      return f;
+    };
+  }
+  registerBinaryCallback(R, T1, T2) {
+    return f => {
+      return f;
+    };
+  }
+  errorCallback(error, stackTrace) {
+    return null;
+  }
+  scheduleMicrotask(f) {
+    async._rootScheduleMicrotask(null, null, this, f);
+  }
+  createTimer(duration, f) {
+    return async.Timer._createTimer(duration, f);
+  }
+  createPeriodicTimer(duration, f) {
+    return async.Timer._createPeriodicTimer(duration, f);
+  }
+  print(line) {
+    _internal.printToConsole(line);
+  }
+};
+dart.setSignature(async._RootZone, {
+  constructors: () => ({new: dart.definiteFunctionType(async._RootZone, [])}),
+  getters: () => ({
+    [_run]: dart.definiteFunctionType(async._ZoneFunction$(async.RunHandler), []),
+    [_runUnary]: dart.definiteFunctionType(async._ZoneFunction$(async.RunUnaryHandler), []),
+    [_runBinary]: dart.definiteFunctionType(async._ZoneFunction$(async.RunBinaryHandler), []),
+    [_registerCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.RegisterCallbackHandler), []),
+    [_registerUnaryCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.RegisterUnaryCallbackHandler), []),
+    [_registerBinaryCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.RegisterBinaryCallbackHandler), []),
+    [_errorCallback]: dart.definiteFunctionType(async._ZoneFunction$(async.ErrorCallbackHandler), []),
+    [_scheduleMicrotask]: dart.definiteFunctionType(async._ZoneFunction$(async.ScheduleMicrotaskHandler), []),
+    [_createTimer]: dart.definiteFunctionType(async._ZoneFunction$(async.CreateTimerHandler), []),
+    [_createPeriodicTimer]: dart.definiteFunctionType(async._ZoneFunction$(async.CreatePeriodicTimerHandler), []),
+    [_print]: dart.definiteFunctionType(async._ZoneFunction$(async.PrintHandler), []),
+    [_fork]: dart.definiteFunctionType(async._ZoneFunction$(async.ForkHandler), []),
+    [_handleUncaughtError]: dart.definiteFunctionType(async._ZoneFunction$(async.HandleUncaughtErrorHandler), []),
+    parent: dart.definiteFunctionType(async._Zone, []),
+    [_map$]: dart.definiteFunctionType(core.Map, []),
+    [_delegate]: dart.definiteFunctionType(async.ZoneDelegate, []),
+    errorZone: dart.definiteFunctionType(async.Zone, [])
+  }),
+  methods: () => ({
+    runGuarded: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
+    runUnaryGuarded: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
+    runBinaryGuarded: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
+    bindCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])], {runGuarded: core.bool}]),
+    bindUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])], {runGuarded: core.bool}]),
+    bindBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])], {runGuarded: core.bool}]),
+    _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    handleUncaughtError: dart.definiteFunctionType(R => [R, [dart.dynamic, core.StackTrace]]),
+    fork: dart.definiteFunctionType(async.Zone, [], {specification: async.ZoneSpecification, zoneValues: core.Map}),
+    run: dart.definiteFunctionType(R => [R, [dart.functionType(R, [])]]),
+    runUnary: dart.definiteFunctionType((R, T) => [R, [dart.functionType(R, [T]), T]]),
+    runBinary: dart.definiteFunctionType((R, T1, T2) => [R, [dart.functionType(R, [T1, T2]), T1, T2]]),
+    registerCallback: dart.definiteFunctionType(R => [async.ZoneCallback$(R), [dart.functionType(R, [])]]),
+    registerUnaryCallback: dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [dart.functionType(R, [T])]]),
+    registerBinaryCallback: dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [dart.functionType(R, [T1, T2])]]),
+    errorCallback: dart.definiteFunctionType(async.AsyncError, [core.Object, core.StackTrace]),
+    scheduleMicrotask: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    createTimer: dart.definiteFunctionType(async.Timer, [core.Duration, VoidTovoid()]),
+    createPeriodicTimer: dart.definiteFunctionType(async.Timer, [core.Duration, TimerTovoid()]),
+    print: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  sfields: () => ({
+    _rootMap: core.Map,
+    _rootDelegate: async.ZoneDelegate
+  })
+});
+async._RootZone._rootDelegate = null;
+dart.defineLazy(async._RootZone, {
+  get _rootMap() {
+    return collection.HashMap.new();
+  },
+  set _rootMap(_) {}
+});
+async._ROOT_ZONE = dart.const(new async._RootZone());
+async.runZoned = function(R) {
+  return (body, opts) => {
+    let zoneValues = opts && 'zoneValues' in opts ? opts.zoneValues : null;
+    let zoneSpecification = opts && 'zoneSpecification' in opts ? opts.zoneSpecification : null;
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let errorHandler = null;
+    if (onError != null) {
+      errorHandler = dart.fn((self, parent, zone, error, stackTrace) => {
+        try {
+          if (ZoneBinaryCallbackOfdynamic$dynamic$StackTrace().is(onError)) {
+            return R.as(self.parent.runBinary(dart.dynamic, dart.dynamic, core.StackTrace)(onError, error, stackTrace));
+          }
+          return self.parent.runUnary(dart.dynamic, dart.dynamic)(dynamicTodynamic()._check(onError), error);
+        } catch (e) {
+          let s = dart.stackTrace(e);
+          if (core.identical(e, error)) {
+            return parent.handleUncaughtError(dart.dynamic)(zone, error, stackTrace);
+          } else {
+            return parent.handleUncaughtError(dart.dynamic)(zone, e, s);
+          }
+        }
+
+      }, ZoneAndZoneDelegateAndZone__Todynamic());
+    }
+    if (zoneSpecification == null) {
+      zoneSpecification = async.ZoneSpecification.new({handleUncaughtError: errorHandler});
+    } else if (errorHandler != null) {
+      zoneSpecification = async.ZoneSpecification.from(zoneSpecification, {handleUncaughtError: errorHandler});
+    }
+    let zone = async.Zone.current.fork({specification: zoneSpecification, zoneValues: zoneValues});
+    if (onError != null) {
+      return zone.runGuarded(R)(body);
+    } else {
+      return zone.run(R)(body);
+    }
+  };
+};
+dart.lazyFn(async.runZoned, () => Fn__ToR());
+collection._USE_ES6_MAPS = true;
+const _length$1 = Symbol('_length');
+const _strings$ = Symbol('_strings');
+const _nums$ = Symbol('_nums');
+const _rest$ = Symbol('_rest');
+const _keys = Symbol('_keys');
+const _containsKey = Symbol('_containsKey');
+const _getBucket$ = Symbol('_getBucket');
+const _findBucketIndex = Symbol('_findBucketIndex');
+const _computeKeys = Symbol('_computeKeys');
+const _get = Symbol('_get');
+const _addHashTableEntry$ = Symbol('_addHashTableEntry');
+const _set = Symbol('_set');
+const _computeHashCode = Symbol('_computeHashCode');
+const _removeHashTableEntry$ = Symbol('_removeHashTableEntry');
+const _remove = Symbol('_remove');
+collection._HashMap$ = dart.generic((K, V) => {
+  let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
+  let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let ListOfK = () => (ListOfK = dart.constFn(core.List$(K)))();
+  let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
+  let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
+  class _HashMap extends core.Object {
+    new() {
+      this[_length$1] = 0;
+      this[_strings$] = null;
+      this[_nums$] = null;
+      this[_rest$] = null;
+      this[_keys] = null;
+    }
+    get length() {
+      return this[_length$1];
+    }
+    get isEmpty() {
+      return this[_length$1] == 0;
+    }
+    get isNotEmpty() {
+      return !dart.test(this.isEmpty);
+    }
+    get keys() {
+      return new (_HashMapKeyIterableOfK())(this);
+    }
+    get values() {
+      return MappedIterableOfK$V().new(this.keys, dart.fn(each => this._get(each), KToV()));
+    }
+    containsKey(key) {
+      if (dart.test(collection._HashMap._isStringKey(key))) {
+        let strings = this[_strings$];
+        return strings == null ? false : collection._HashMap._hasTableEntry(strings, key);
+      } else if (dart.test(collection._HashMap._isNumericKey(key))) {
+        let nums = this[_nums$];
+        return nums == null ? false : collection._HashMap._hasTableEntry(nums, key);
+      } else {
+        return this[_containsKey](key);
+      }
+    }
+    [_containsKey](key) {
+      let rest = this[_rest$];
+      if (rest == null) return false;
+      let bucket = this[_getBucket$](rest, key);
+      return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
+    }
+    containsValue(value) {
+      return this[_computeKeys]()[dartx.any](dart.fn(each => dart.equals(this._get(each), value), KTobool()));
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      other[dartx.forEach](dart.fn((key, value) => {
+        this._set(key, value);
+      }, KAndVToNull()));
+    }
+    _get(key) {
+      if (dart.test(collection._HashMap._isStringKey(key))) {
+        let strings = this[_strings$];
+        return V._check(strings == null ? null : collection._HashMap._getTableEntry(strings, key));
+      } else if (dart.test(collection._HashMap._isNumericKey(key))) {
+        let nums = this[_nums$];
+        return V._check(nums == null ? null : collection._HashMap._getTableEntry(nums, key));
+      } else {
+        return this[_get](key);
+      }
+    }
+    [_get](key) {
+      let rest = this[_rest$];
+      if (rest == null) return null;
+      let bucket = this[_getBucket$](rest, key);
+      let index = this[_findBucketIndex](bucket, key);
+      return V._check(dart.notNull(index) < 0 ? null : bucket[dart.notNull(index) + 1]);
+    }
+    _set(key, value) {
+      K._check(key);
+      V._check(value);
+      if (dart.test(collection._HashMap._isStringKey(key))) {
+        let strings = this[_strings$];
+        if (strings == null) this[_strings$] = strings = collection._HashMap._newHashTable();
+        this[_addHashTableEntry$](strings, key, value);
+      } else if (dart.test(collection._HashMap._isNumericKey(key))) {
+        let nums = this[_nums$];
+        if (nums == null) this[_nums$] = nums = collection._HashMap._newHashTable();
+        this[_addHashTableEntry$](nums, key, value);
+      } else {
+        this[_set](key, value);
+      }
+      return value;
+    }
+    [_set](key, value) {
+      K._check(key);
+      V._check(value);
+      let rest = this[_rest$];
+      if (rest == null) this[_rest$] = rest = collection._HashMap._newHashTable();
+      let hash = this[_computeHashCode](key);
+      let bucket = rest[hash];
+      if (bucket == null) {
+        collection._HashMap._setTableEntry(rest, hash, [key, value]);
+        this[_length$1] = dart.notNull(this[_length$1]) + 1;
+        this[_keys] = null;
+      } else {
+        let index = this[_findBucketIndex](bucket, key);
+        if (dart.notNull(index) >= 0) {
+          bucket[dart.notNull(index) + 1] = value;
+        } else {
+          bucket.push(key, value);
+          this[_length$1] = dart.notNull(this[_length$1]) + 1;
+          this[_keys] = null;
+        }
+      }
+    }
+    putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
+      if (dart.test(this.containsKey(key))) return this._get(key);
+      let value = ifAbsent();
+      this._set(key, value);
+      return value;
+    }
+    remove(key) {
+      if (dart.test(collection._HashMap._isStringKey(key))) {
+        return this[_removeHashTableEntry$](this[_strings$], key);
+      } else if (dart.test(collection._HashMap._isNumericKey(key))) {
+        return this[_removeHashTableEntry$](this[_nums$], key);
+      } else {
+        return this[_remove](key);
+      }
+    }
+    [_remove](key) {
+      let rest = this[_rest$];
+      if (rest == null) return null;
+      let bucket = this[_getBucket$](rest, key);
+      let index = this[_findBucketIndex](bucket, key);
+      if (dart.notNull(index) < 0) return null;
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
+      this[_keys] = null;
+      return bucket.splice(index, 2)[1];
+    }
+    clear() {
+      if (dart.notNull(this[_length$1]) > 0) {
+        this[_strings$] = this[_nums$] = this[_rest$] = this[_keys] = null;
+        this[_length$1] = 0;
+      }
+    }
+    forEach(action) {
+      let keys = this[_computeKeys]();
+      for (let i = 0, length = keys[dartx.length]; i < dart.notNull(length); i++) {
+        let key = keys[i];
+        action(K._check(key), this._get(key));
+        if (keys !== this[_keys]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+    }
+    [_computeKeys]() {
+      if (this[_keys] != null) return this[_keys];
+      let result = ListOfK().new(this[_length$1]);
+      let index = 0;
+      let strings = this[_strings$];
+      if (strings != null) {
+        let names = Object.getOwnPropertyNames(strings);
+        let entries = names.length;
+        for (let i = 0; i < entries; i++) {
+          let key = names[i];
+          result[index] = key;
+          index++;
+        }
+      }
+      let nums = this[_nums$];
+      if (nums != null) {
+        let names = Object.getOwnPropertyNames(nums);
+        let entries = names.length;
+        for (let i = 0; i < entries; i++) {
+          let key = +names[i];
+          result[index] = key;
+          index++;
+        }
+      }
+      let rest = this[_rest$];
+      if (rest != null) {
+        let names = Object.getOwnPropertyNames(rest);
+        let entries = names.length;
+        for (let i = 0; i < entries; i++) {
+          let key = names[i];
+          let bucket = rest[key];
+          let length = bucket.length;
+          for (let i = 0; i < length; i = i + 2) {
+            let key = bucket[i];
+            result[index] = key;
+            index++;
+          }
+        }
+      }
+      dart.assert(index == this[_length$1]);
+      return this[_keys] = result;
+    }
+    [_addHashTableEntry$](table, key, value) {
+      K._check(key);
+      V._check(value);
+      if (!dart.test(collection._HashMap._hasTableEntry(table, key))) {
+        this[_length$1] = dart.notNull(this[_length$1]) + 1;
+        this[_keys] = null;
+      }
+      collection._HashMap._setTableEntry(table, key, value);
+    }
+    [_removeHashTableEntry$](table, key) {
+      if (table != null && dart.test(collection._HashMap._hasTableEntry(table, key))) {
+        let value = V._check(collection._HashMap._getTableEntry(table, key));
+        collection._HashMap._deleteTableEntry(table, key);
+        this[_length$1] = dart.notNull(this[_length$1]) - 1;
+        this[_keys] = null;
+        return value;
+      } else {
+        return null;
+      }
+    }
+    static _isStringKey(key) {
+      return typeof key == 'string' && key != '__proto__';
+    }
+    static _isNumericKey(key) {
+      return typeof key == 'number' && (key & 0x3ffffff) === key;
+    }
+    [_computeHashCode](key) {
+      return dart.hashCode(key) & 0x3ffffff;
+    }
+    static _hasTableEntry(table, key) {
+      let entry = table[key];
+      return entry != null;
+    }
+    static _getTableEntry(table, key) {
+      let entry = table[key];
+      return entry === table ? null : entry;
+    }
+    static _setTableEntry(table, key, value) {
+      if (value == null) {
+        table[key] = table;
+      } else {
+        table[key] = value;
+      }
+    }
+    static _deleteTableEntry(table, key) {
+      delete table[key];
+    }
+    [_getBucket$](table, key) {
+      let hash = this[_computeHashCode](key);
+      return table[hash];
+    }
+    [_findBucketIndex](bucket, key) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i = i + 2) {
+        if (dart.equals(bucket[i], key)) return i;
+      }
+      return -1;
+    }
+    static _newHashTable() {
+      let table = Object.create(null);
+      let temporaryKey = '<non-identifier-key>';
+      collection._HashMap._setTableEntry(table, temporaryKey, table);
+      collection._HashMap._deleteTableEntry(table, temporaryKey);
+      return table;
+    }
+  }
+  dart.addTypeTests(_HashMap);
+  _HashMap[dart.implements] = () => [HashMapOfK$V()];
+  dart.setSignature(_HashMap, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._HashMap$(K, V), [])}),
+    fields: () => ({
+      [_length$1]: core.int,
+      [_strings$]: dart.dynamic,
+      [_nums$]: dart.dynamic,
+      [_rest$]: dart.dynamic,
+      [_keys]: ListOfK()
+    }),
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      keys: dart.definiteFunctionType(core.Iterable$(K), []),
+      values: dart.definiteFunctionType(core.Iterable$(V), [])
+    }),
+    methods: () => ({
+      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_containsKey]: dart.definiteFunctionType(core.bool, [core.Object]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
+      _get: dart.definiteFunctionType(V, [core.Object]),
+      [_get]: dart.definiteFunctionType(V, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [K, V]),
+      [_set]: dart.definiteFunctionType(dart.void, [K, V]),
+      putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
+      remove: dart.definiteFunctionType(V, [core.Object]),
+      [_remove]: dart.definiteFunctionType(V, [core.Object]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
+      [_computeKeys]: dart.definiteFunctionType(core.List$(K), []),
+      [_addHashTableEntry$]: dart.definiteFunctionType(dart.void, [dart.dynamic, K, V]),
+      [_removeHashTableEntry$]: dart.definiteFunctionType(V, [dart.dynamic, core.Object]),
+      [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
+      [_getBucket$]: dart.definiteFunctionType(core.List, [dart.dynamic, dart.dynamic]),
+      [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, core.Object])
+    }),
+    statics: () => ({
+      _isStringKey: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _isNumericKey: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _hasTableEntry: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+      _getTableEntry: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+      _setTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+      _deleteTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+      _newHashTable: dart.definiteFunctionType(dart.dynamic, [])
+    }),
+    names: ['_isStringKey', '_isNumericKey', '_hasTableEntry', '_getTableEntry', '_setTableEntry', '_deleteTableEntry', '_newHashTable']
+  });
+  dart.defineExtensionMembers(_HashMap, [
+    'containsKey',
+    'containsValue',
+    'addAll',
+    '_get',
+    '_set',
+    'putIfAbsent',
+    'remove',
+    'clear',
+    'forEach',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'keys',
+    'values'
+  ]);
+  return _HashMap;
+});
+collection._HashMap = _HashMap();
+collection._IdentityHashMap$ = dart.generic((K, V) => {
+  class _IdentityHashMap extends collection._HashMap$(K, V) {
+    new() {
+      super.new();
+    }
+    [_computeHashCode](key) {
+      return core.identityHashCode(key) & 0x3ffffff;
+    }
+    [_findBucketIndex](bucket, key) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i = i + 2) {
+        if (core.identical(bucket[i], key)) return i;
+      }
+      return -1;
+    }
+  }
+  return _IdentityHashMap;
+});
+collection._IdentityHashMap = _IdentityHashMap();
+const _equals$ = Symbol('_equals');
+const _hashCode = Symbol('_hashCode');
+const _validKey = Symbol('_validKey');
+collection._CustomHashMap$ = dart.generic((K, V) => {
+  let _EqualityOfK = () => (_EqualityOfK = dart.constFn(collection._Equality$(K)))();
+  let _HasherOfK = () => (_HasherOfK = dart.constFn(collection._Hasher$(K)))();
+  class _CustomHashMap extends collection._HashMap$(K, V) {
+    new(equals, hashCode, validKey) {
+      this[_equals$] = equals;
+      this[_hashCode] = hashCode;
+      this[_validKey] = validKey != null ? validKey : dart.fn(v => K.is(v), ObjectTobool());
+      super.new();
+    }
+    _get(key) {
+      if (!dart.test(this[_validKey](key))) return null;
+      return super[_get](key);
+    }
+    _set(key, value) {
+      K._check(key);
+      V._check(value);
+      super[_set](key, value);
+      return value;
+    }
+    containsKey(key) {
+      if (!dart.test(this[_validKey](key))) return false;
+      return super[_containsKey](key);
+    }
+    remove(key) {
+      if (!dart.test(this[_validKey](key))) return null;
+      return super[_remove](key);
+    }
+    [_computeHashCode](key) {
+      return this[_hashCode](K._check(key)) & 0x3ffffff;
+    }
+    [_findBucketIndex](bucket, key) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i = i + 2) {
+        if (dart.test(this[_equals$](bucket[i], K._check(key)))) return i;
+      }
+      return -1;
+    }
+    toString() {
+      return collection.Maps.mapToString(this);
+    }
+  }
+  dart.setSignature(_CustomHashMap, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._CustomHashMap$(K, V), [_EqualityOfK(), _HasherOfK(), _PredicateOfObject()])}),
+    fields: () => ({
+      [_equals$]: _EqualityOfK(),
+      [_hashCode]: _HasherOfK(),
+      [_validKey]: _PredicateOfObject()
+    })
+  });
+  dart.defineExtensionMembers(_CustomHashMap, ['_get', '_set', 'containsKey', 'remove']);
+  return _CustomHashMap;
+});
+collection._CustomHashMap = _CustomHashMap();
+const _map$0 = Symbol('_map');
+collection._HashMapKeyIterable$ = dart.generic(E => {
+  let _HashMapKeyIteratorOfE = () => (_HashMapKeyIteratorOfE = dart.constFn(collection._HashMapKeyIterator$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let _HashMapOfE$dynamic = () => (_HashMapOfE$dynamic = dart.constFn(collection._HashMap$(E, dart.dynamic)))();
+  class _HashMapKeyIterable extends core.Iterable$(E) {
+    new(map) {
+      this[_map$0] = map;
+      super.new();
+    }
+    get length() {
+      return this[_map$0][_length$1];
+    }
+    get isEmpty() {
+      return this[_map$0][_length$1] == 0;
+    }
+    get iterator() {
+      return new (_HashMapKeyIteratorOfE())(this[_map$0], this[_map$0][_computeKeys]());
+    }
+    contains(element) {
+      return this[_map$0].containsKey(element);
+    }
+    forEach(f) {
+      let keys = this[_map$0][_computeKeys]();
+      for (let i = 0, length = keys.length; i < length; i++) {
+        f(keys[i]);
+        if (keys !== this[_map$0][_keys]) {
+          dart.throw(new core.ConcurrentModificationError(this[_map$0]));
+        }
+      }
+    }
+  }
+  _HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(_HashMapKeyIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._HashMapKeyIterable$(E), [_HashMapOfE$dynamic()])}),
+    fields: () => ({[_map$0]: _HashMapOfE$dynamic()}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
+  });
+  dart.defineExtensionMembers(_HashMapKeyIterable, [
+    'contains',
+    'forEach',
+    'length',
+    'isEmpty',
+    'iterator'
+  ]);
+  return _HashMapKeyIterable;
+});
+collection._HashMapKeyIterable = _HashMapKeyIterable();
+const _offset = Symbol('_offset');
+const _current$2 = Symbol('_current');
+collection._HashMapKeyIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let _HashMapOfE$dynamic = () => (_HashMapOfE$dynamic = dart.constFn(collection._HashMap$(E, dart.dynamic)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  class _HashMapKeyIterator extends core.Object {
+    new(map, keys) {
+      this[_map$0] = map;
+      this[_keys] = keys;
+      this[_offset] = 0;
+      this[_current$2] = null;
+    }
+    get current() {
+      return this[_current$2];
+    }
+    moveNext() {
+      let keys = this[_keys];
+      let offset = this[_offset];
+      if (keys !== this[_map$0][_keys]) {
+        dart.throw(new core.ConcurrentModificationError(this[_map$0]));
+      } else if (dart.notNull(offset) >= keys.length) {
+        this[_current$2] = null;
+        return false;
+      } else {
+        this[_current$2] = keys[offset];
+        this[_offset] = dart.notNull(offset) + 1;
+        return true;
+      }
+    }
+  }
+  dart.addTypeTests(_HashMapKeyIterator);
+  _HashMapKeyIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_HashMapKeyIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._HashMapKeyIterator$(E), [_HashMapOfE$dynamic(), ListOfE()])}),
+    fields: () => ({
+      [_map$0]: _HashMapOfE$dynamic(),
+      [_keys]: ListOfE(),
+      [_offset]: core.int,
+      [_current$2]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _HashMapKeyIterator;
+});
+collection._HashMapKeyIterator = _HashMapKeyIterator();
+collection._LinkedIdentityHashMap$ = dart.generic((K, V) => {
+  let _Es6LinkedIdentityHashMapOfK$V = () => (_Es6LinkedIdentityHashMapOfK$V = dart.constFn(collection._Es6LinkedIdentityHashMap$(K, V)))();
+  let _LinkedIdentityHashMapOfK$V = () => (_LinkedIdentityHashMapOfK$V = dart.constFn(collection._LinkedIdentityHashMap$(K, V)))();
+  class _LinkedIdentityHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
+    static get _supportsEs6Maps() {
+      return true;
+    }
+    static es6() {
+      return collection._USE_ES6_MAPS && dart.test(collection._LinkedIdentityHashMap._supportsEs6Maps) ? new (_Es6LinkedIdentityHashMapOfK$V())() : new (_LinkedIdentityHashMapOfK$V())();
+    }
+    new() {
+      super.new();
+    }
+    internalComputeHashCode(key) {
+      return core.identityHashCode(key) & 0x3ffffff;
+    }
+    internalFindBucketIndex(bucket, key) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        let cell = bucket[i];
+        if (core.identical(cell.hashMapCellKey, key)) return i;
+      }
+      return -1;
+    }
+  }
+  dart.setSignature(_LinkedIdentityHashMap, {
+    constructors: () => ({
+      es6: dart.definiteFunctionType(collection._LinkedIdentityHashMap$(K, V), []),
+      new: dart.definiteFunctionType(collection._LinkedIdentityHashMap$(K, V), [])
+    }),
+    sgetters: () => ({_supportsEs6Maps: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _LinkedIdentityHashMap;
+});
+collection._LinkedIdentityHashMap = _LinkedIdentityHashMap();
+const _modifications$ = Symbol('_modifications');
+const _modified$ = Symbol('_modified');
+collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
+  let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
+  let _Es6MapIterableOfV = () => (_Es6MapIterableOfV = dart.constFn(collection._Es6MapIterable$(V)))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
+  let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
+  class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
+    new() {
+      this[_map$0] = new Map();
+      this[_modifications$] = 0;
+      super.new();
+    }
+    get length() {
+      return this[_map$0].size;
+    }
+    get isEmpty() {
+      return this.length == 0;
+    }
+    get isNotEmpty() {
+      return !dart.test(this.isEmpty);
+    }
+    get keys() {
+      return new (_Es6MapIterableOfK())(this, true);
+    }
+    get values() {
+      return new (_Es6MapIterableOfV())(this, false);
+    }
+    containsKey(key) {
+      return this[_map$0].has(key);
+    }
+    containsValue(value) {
+      return this.values[dartx.any](dart.fn(each => dart.equals(each, value), VTobool()));
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      other[dartx.forEach](dart.fn((key, value) => {
+        this._set(key, value);
+      }, KAndVToNull()));
+    }
+    _get(key) {
+      return this[_map$0].get(key);
+    }
+    _set(key, value) {
+      K._check(key);
+      V._check(value);
+      this[_map$0].set(key, value);
+      this[_modified$]();
+      return value;
+    }
+    putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
+      if (dart.test(this.containsKey(key))) return this._get(key);
+      let value = ifAbsent();
+      this._set(key, value);
+      return value;
+    }
+    remove(key) {
+      let value = this._get(key);
+      this[_map$0].delete(key);
+      this[_modified$]();
+      return value;
+    }
+    clear() {
+      this[_map$0].clear();
+      this[_modified$]();
+    }
+    forEach(action) {
+      let jsEntries = this[_map$0].entries();
+      let modifications = this[_modifications$];
+      while (true) {
+        let next = jsEntries.next();
+        let done = next.done;
+        if (done) break;
+        let entry = next.value;
+        let key = entry[0];
+        let value = entry[1];
+        action(K._check(key), V._check(value));
+        if (modifications != this[_modifications$]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+      }
+    }
+    [_modified$]() {
+      this[_modifications$] = dart.notNull(this[_modifications$]) + 1 & 67108863;
+    }
+    toString() {
+      return collection.Maps.mapToString(this);
+    }
+  }
+  _Es6LinkedIdentityHashMap[dart.implements] = () => [InternalMapOfK$V()];
+  dart.setSignature(_Es6LinkedIdentityHashMap, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._Es6LinkedIdentityHashMap$(K, V), [])}),
+    fields: () => ({
+      [_map$0]: dart.dynamic,
+      [_modifications$]: core.int
+    }),
+    methods: () => ({[_modified$]: dart.definiteFunctionType(dart.void, [])})
+  });
+  dart.defineExtensionMembers(_Es6LinkedIdentityHashMap, [
+    'containsKey',
+    'containsValue',
+    'addAll',
+    '_get',
+    '_set',
+    'putIfAbsent',
+    'remove',
+    'clear',
+    'forEach',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'keys',
+    'values'
+  ]);
+  return _Es6LinkedIdentityHashMap;
+});
+collection._Es6LinkedIdentityHashMap = _Es6LinkedIdentityHashMap();
+const _isKeys = Symbol('_isKeys');
+collection._Es6MapIterable$ = dart.generic(E => {
+  let _Es6MapIteratorOfE = () => (_Es6MapIteratorOfE = dart.constFn(collection._Es6MapIterator$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  class _Es6MapIterable extends core.Iterable$(E) {
+    new(map, isKeys) {
+      this[_map$0] = map;
+      this[_isKeys] = isKeys;
+      super.new();
+    }
+    get length() {
+      return core.int._check(dart.dload(this[_map$0], 'length'));
+    }
+    get isEmpty() {
+      return core.bool._check(dart.dload(this[_map$0], 'isEmpty'));
+    }
+    get iterator() {
+      return new (_Es6MapIteratorOfE())(this[_map$0], core.int._check(dart.dload(this[_map$0], _modifications$)), this[_isKeys]);
+    }
+    contains(element) {
+      return core.bool._check(dart.dsend(this[_map$0], 'containsKey', element));
+    }
+    forEach(f) {
+      let jsIterator = null;
+      if (dart.test(this[_isKeys])) {
+        jsIterator = dart.dload(this[_map$0], _map$0).keys();
+      } else {
+        jsIterator = dart.dload(this[_map$0], _map$0).values();
+      }
+      let modifications = core.int._check(dart.dload(this[_map$0], _modifications$));
+      while (true) {
+        let next = jsIterator.next();
+        let done = next.done;
+        if (done) break;
+        let value = next.value;
+        f(E._check(value));
+        if (!dart.equals(modifications, dart.dload(this[_map$0], _modifications$))) {
+          dart.throw(new core.ConcurrentModificationError(this[_map$0]));
+        }
+      }
+    }
+  }
+  _Es6MapIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(_Es6MapIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._Es6MapIterable$(E), [dart.dynamic, core.bool])}),
+    fields: () => ({
+      [_map$0]: dart.dynamic,
+      [_isKeys]: core.bool
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
+  });
+  dart.defineExtensionMembers(_Es6MapIterable, [
+    'contains',
+    'forEach',
+    'length',
+    'isEmpty',
+    'iterator'
+  ]);
+  return _Es6MapIterable;
+});
+collection._Es6MapIterable = _Es6MapIterable();
+const _jsIterator$ = Symbol('_jsIterator');
+const _next$0 = Symbol('_next');
+const _done = Symbol('_done');
+collection._Es6MapIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class _Es6MapIterator extends core.Object {
+    new(map, modifications, isKeys) {
+      this[_map$0] = map;
+      this[_modifications$] = modifications;
+      this[_isKeys] = isKeys;
+      this[_jsIterator$] = null;
+      this[_next$0] = null;
+      this[_current$2] = null;
+      this[_done] = null;
+      if (dart.test(this[_isKeys])) {
+        this[_jsIterator$] = dart.dload(this[_map$0], _map$0).keys();
+      } else {
+        this[_jsIterator$] = dart.dload(this[_map$0], _map$0).values();
+      }
+      this[_done] = false;
+    }
+    get current() {
+      return this[_current$2];
+    }
+    moveNext() {
+      if (!dart.equals(this[_modifications$], dart.dload(this[_map$0], _modifications$))) {
+        dart.throw(new core.ConcurrentModificationError(this[_map$0]));
+      }
+      if (dart.test(this[_done])) return false;
+      this[_next$0] = this[_jsIterator$].next();
+      let done = this[_next$0].done;
+      if (done) {
+        this[_current$2] = null;
+        this[_done] = true;
+        return false;
+      } else {
+        this[_current$2] = this[_next$0].value;
+        return true;
+      }
+    }
+  }
+  dart.addTypeTests(_Es6MapIterator);
+  _Es6MapIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_Es6MapIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._Es6MapIterator$(E), [dart.dynamic, core.int, core.bool])}),
+    fields: () => ({
+      [_map$0]: dart.dynamic,
+      [_modifications$]: core.int,
+      [_isKeys]: core.bool,
+      [_jsIterator$]: dart.dynamic,
+      [_next$0]: dart.dynamic,
+      [_current$2]: E,
+      [_done]: core.bool
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _Es6MapIterator;
+});
+collection._Es6MapIterator = _Es6MapIterator();
+collection._LinkedCustomHashMap$ = dart.generic((K, V) => {
+  let _EqualityOfK = () => (_EqualityOfK = dart.constFn(collection._Equality$(K)))();
+  let _HasherOfK = () => (_HasherOfK = dart.constFn(collection._Hasher$(K)))();
+  class _LinkedCustomHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
+    new(equals, hashCode, validKey) {
+      this[_equals$] = equals;
+      this[_hashCode] = hashCode;
+      this[_validKey] = validKey != null ? validKey : dart.fn(v => K.is(v), ObjectTobool());
+      super.new();
+    }
+    _get(key) {
+      if (!dart.test(this[_validKey](key))) return null;
+      return super.internalGet(key);
+    }
+    _set(key, value) {
+      K._check(key);
+      V._check(value);
+      super.internalSet(key, value);
+      return value;
+    }
+    containsKey(key) {
+      if (!dart.test(this[_validKey](key))) return false;
+      return super.internalContainsKey(key);
+    }
+    remove(key) {
+      if (!dart.test(this[_validKey](key))) return null;
+      return super.internalRemove(key);
+    }
+    internalComputeHashCode(key) {
+      return this[_hashCode](K._check(key)) & 0x3ffffff;
+    }
+    internalFindBucketIndex(bucket, key) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        let cell = bucket[i];
+        if (dart.test(this[_equals$](cell.hashMapCellKey, K._check(key)))) return i;
+      }
+      return -1;
+    }
+  }
+  dart.setSignature(_LinkedCustomHashMap, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._LinkedCustomHashMap$(K, V), [_EqualityOfK(), _HasherOfK(), _PredicateOfObject()])}),
+    fields: () => ({
+      [_equals$]: _EqualityOfK(),
+      [_hashCode]: _HasherOfK(),
+      [_validKey]: _PredicateOfObject()
+    })
+  });
+  dart.defineExtensionMembers(_LinkedCustomHashMap, ['_get', '_set', 'containsKey', 'remove']);
+  return _LinkedCustomHashMap;
+});
+collection._LinkedCustomHashMap = _LinkedCustomHashMap();
+const _elements = Symbol('_elements');
+const _newSet = Symbol('_newSet');
+const _computeElements = Symbol('_computeElements');
+const _contains = Symbol('_contains');
+const _lookup = Symbol('_lookup');
+const _add$0 = Symbol('_add');
+collection.SetMixin$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
+  let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
+  let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
+  let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
+  let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
+  let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  class SetMixin extends core.Object {
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this.iterator);
+    }
+    get isEmpty() {
+      return this.length == 0;
+    }
+    get isNotEmpty() {
+      return this.length != 0;
+    }
+    clear() {
+      this.removeAll(this.toList());
+    }
+    addAll(elements) {
+      IterableOfE()._check(elements);
+      for (let element of elements)
+        this.add(element);
+    }
+    removeAll(elements) {
+      for (let element of elements)
+        this.remove(element);
+    }
+    retainAll(elements) {
+      let toRemove = this.toSet();
+      for (let o of elements) {
+        toRemove.remove(o);
+      }
+      this.removeAll(toRemove);
+    }
+    removeWhere(test) {
+      let toRemove = [];
+      for (let element of this) {
+        if (dart.test(test(element))) toRemove[dartx.add](element);
+      }
+      this.removeAll(toRemove);
+    }
+    retainWhere(test) {
+      let toRemove = [];
+      for (let element of this) {
+        if (!dart.test(test(element))) toRemove[dartx.add](element);
+      }
+      this.removeAll(toRemove);
+    }
+    containsAll(other) {
+      for (let o of other) {
+        if (!dart.test(this.contains(o))) return false;
+      }
+      return true;
+    }
+    union(other) {
+      SetOfE()._check(other);
+      let _ = this.toSet();
+      _.addAll(other);
+      return _;
+    }
+    intersection(other) {
+      let result = this.toSet();
+      for (let element of this) {
+        if (!dart.test(other.contains(element))) result.remove(element);
+      }
+      return result;
+    }
+    difference(other) {
+      let result = this.toSet();
+      for (let element of this) {
+        if (dart.test(other.contains(element))) result.remove(element);
+      }
+      return result;
+    }
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let result = dart.test(growable) ? (() => {
+        let _ = ListOfE().new();
+        _[dartx.length] = this.length;
+        return _;
+      })() : ListOfE().new(this.length);
+      let i = 0;
+      for (let element of this)
+        result[dartx._set](i++, element);
+      return result;
+    }
+    map(T) {
+      return f => {
+        return new (_internal.EfficientLengthMappedIterable$(E, T))(this, f);
+      };
+    }
+    get single() {
+      if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
+      let it = this.iterator;
+      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
+      let result = it.current;
+      return result;
+    }
+    toString() {
+      return collection.IterableBase.iterableToFullString(this, '{', '}');
+    }
+    where(f) {
+      return new (WhereIterableOfE())(this, f);
+    }
+    expand(T) {
+      return f => {
+        return new (_internal.ExpandIterable$(E, T))(this, f);
+      };
+    }
+    forEach(f) {
+      for (let element of this)
+        f(element);
+    }
+    reduce(combine) {
+      EAndEToE()._check(combine);
+      let iterator = this.iterator;
+      if (!dart.test(iterator.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
+      let value = iterator.current;
+      while (dart.test(iterator.moveNext())) {
+        value = combine(value, iterator.current);
+      }
+      return value;
+    }
+    fold(T) {
+      return (initialValue, combine) => {
+        let value = initialValue;
+        for (let element of this)
+          value = combine(value, element);
+        return value;
+      };
+    }
+    every(f) {
+      for (let element of this) {
+        if (!dart.test(f(element))) return false;
+      }
+      return true;
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      let iterator = this.iterator;
+      if (!dart.test(iterator.moveNext())) return "";
       let buffer = new core.StringBuffer();
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let value = bytes[dartx._get](i);
-        if ((dart.notNull(value) & ~dart.notNull(this[_subsetMask])) != 0) value = 65533;
-        buffer.writeCharCode(value);
+      if (separator == null || separator == "") {
+        do {
+          buffer.write(dart.str`${iterator.current}`);
+        } while (dart.test(iterator.moveNext()));
+      } else {
+        buffer.write(dart.str`${iterator.current}`);
+        while (dart.test(iterator.moveNext())) {
+          buffer.write(separator);
+          buffer.write(dart.str`${iterator.current}`);
+        }
       }
       return buffer.toString();
     }
-    bind(stream) {
-      return super.bind(stream);
-    }
-  };
-  dart.addSimpleTypeTests(convert._UnicodeSubsetDecoder);
-  dart.setSignature(convert._UnicodeSubsetDecoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetDecoder, [core.bool, core.int])}),
-    fields: () => ({
-      [_allowInvalid]: core.bool,
-      [_subsetMask]: core.int
-    }),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.String, [ListOfint()], [core.int, core.int]),
-      [_convertInvalid]: dart.definiteFunctionType(core.String, [ListOfint(), core.int, core.int])
-    })
-  });
-  convert.AsciiDecoder = class AsciiDecoder extends convert._UnicodeSubsetDecoder {
-    new(opts) {
-      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
-      super.new(allowInvalid, convert._ASCII_MASK);
-    }
-    startChunkedConversion(sink) {
-      let stringSink = null;
-      if (convert.StringConversionSink.is(sink)) {
-        stringSink = sink;
-      } else {
-        stringSink = convert.StringConversionSink.from(sink);
+    any(test) {
+      for (let element of this) {
+        if (dart.test(test(element))) return true;
       }
-      if (dart.test(this[_allowInvalid])) {
-        return new convert._ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false));
-      } else {
-        return new convert._SimpleAsciiDecoderSink(stringSink);
+      return false;
+    }
+    take(n) {
+      return TakeIterableOfE().new(this, n);
+    }
+    takeWhile(test) {
+      return new (TakeWhileIterableOfE())(this, test);
+    }
+    skip(n) {
+      return SkipIterableOfE().new(this, n);
+    }
+    skipWhile(test) {
+      return new (SkipWhileIterableOfE())(this, test);
+    }
+    get first() {
+      let it = this.iterator;
+      if (!dart.test(it.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
       }
+      return it.current;
     }
-  };
-  dart.setSignature(convert.AsciiDecoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.AsciiDecoder, [], {allowInvalid: core.bool})})
-  });
-  const _utf8Sink = Symbol('_utf8Sink');
-  let const$30;
-  convert.ChunkedConversionSink$ = dart.generic(T => {
-    let _SimpleCallbackSinkOfT = () => (_SimpleCallbackSinkOfT = dart.constFn(convert._SimpleCallbackSink$(T)))();
-    let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
-    let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
-    let ListOfTTovoid = () => (ListOfTTovoid = dart.constFn(dart.functionType(dart.void, [ListOfT()])))();
-    class ChunkedConversionSink extends core.Object {
-      new() {
+    get last() {
+      let it = this.iterator;
+      if (!dart.test(it.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
       }
-      static withCallback(callback) {
-        return new (_SimpleCallbackSinkOfT())(callback);
-      }
-    }
-    dart.addTypeTests(ChunkedConversionSink);
-    ChunkedConversionSink[dart.implements] = () => [SinkOfT()];
-    dart.setSignature(ChunkedConversionSink, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(convert.ChunkedConversionSink$(T), []),
-        withCallback: dart.definiteFunctionType(convert.ChunkedConversionSink$(T), [ListOfTTovoid()])
-      })
-    });
-    return ChunkedConversionSink;
-  });
-  convert.ChunkedConversionSink = ChunkedConversionSink();
-  convert.ByteConversionSink = class ByteConversionSink extends convert.ChunkedConversionSink$(core.List$(core.int)) {
-    new() {
-      super.new();
-    }
-    static withCallback(callback) {
-      return new convert._ByteCallbackSink(callback);
-    }
-    static from(sink) {
-      return new convert._ByteAdapterSink(sink);
-    }
-  };
-  dart.addSimpleTypeTests(convert.ByteConversionSink);
-  dart.setSignature(convert.ByteConversionSink, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert.ByteConversionSink, []),
-      withCallback: dart.definiteFunctionType(convert.ByteConversionSink, [ListOfintTovoid()]),
-      from: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfListOfint()])
-    })
-  });
-  convert.ByteConversionSinkBase = class ByteConversionSinkBase extends convert.ByteConversionSink {
-    new() {
-      super.new();
-    }
-    addSlice(chunk, start, end, isLast) {
-      this.add(chunk[dartx.sublist](start, end));
-      if (dart.test(isLast)) this.close();
-    }
-  };
-  dart.setSignature(convert.ByteConversionSinkBase, {
-    methods: () => ({addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
-  });
-  convert._ErrorHandlingAsciiDecoderSink = class _ErrorHandlingAsciiDecoderSink extends convert.ByteConversionSinkBase {
-    new(utf8Sink) {
-      this[_utf8Sink] = utf8Sink;
-      super.new();
-    }
-    close() {
-      this[_utf8Sink].close();
-    }
-    add(source) {
-      this.addSlice(source, 0, source[dartx.length], false);
-    }
-    addSlice(source, start, end, isLast) {
-      core.RangeError.checkValidRange(start, end, source[dartx.length]);
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        if ((dart.notNull(source[dartx._get](i)) & ~convert._ASCII_MASK) != 0) {
-          if (dart.notNull(i) > dart.notNull(start)) this[_utf8Sink].addSlice(source, start, i, false);
-          this[_utf8Sink].add(const$30 || (const$30 = dart.constList([239, 191, 189], core.int)));
-          start = dart.notNull(i) + 1;
-        }
-      }
-      if (dart.notNull(start) < dart.notNull(end)) {
-        this[_utf8Sink].addSlice(source, start, end, isLast);
-      } else if (dart.test(isLast)) {
-        this.close();
-      }
-    }
-  };
-  dart.setSignature(convert._ErrorHandlingAsciiDecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._ErrorHandlingAsciiDecoderSink, [convert.ByteConversionSink])}),
-    fields: () => ({[_utf8Sink]: convert.ByteConversionSink}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()])
-    })
-  });
-  convert._SimpleAsciiDecoderSink = class _SimpleAsciiDecoderSink extends convert.ByteConversionSinkBase {
-    new(sink) {
-      this[_sink$] = sink;
-      super.new();
-    }
-    close() {
-      this[_sink$].close();
-    }
-    add(source) {
-      for (let i = 0; i < dart.notNull(source[dartx.length]); i++) {
-        if ((dart.notNull(source[dartx._get](i)) & ~convert._ASCII_MASK) != 0) {
-          dart.throw(new core.FormatException("Source contains non-ASCII bytes."));
-        }
-      }
-      this[_sink$].add(core.String.fromCharCodes(source));
-    }
-    addSlice(source, start, end, isLast) {
-      let length = source[dartx.length];
-      core.RangeError.checkValidRange(start, end, length);
-      if (dart.notNull(start) < dart.notNull(end)) {
-        if (start != 0 || end != length) {
-          source = source[dartx.sublist](start, end);
-        }
-        this.add(source);
-      }
-      if (dart.test(isLast)) this.close();
-    }
-  };
-  dart.setSignature(convert._SimpleAsciiDecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._SimpleAsciiDecoderSink, [core.Sink])}),
-    fields: () => ({[_sink$]: core.Sink}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()])
-    })
-  });
-  const _urlSafe = Symbol('_urlSafe');
-  convert.Base64Encoder = class Base64Encoder extends convert.Converter$(core.List$(core.int), core.String) {
-    new() {
-      this[_urlSafe] = false;
-      super.new();
-    }
-    urlSafe() {
-      this[_urlSafe] = true;
-      super.new();
-    }
-    convert(input) {
-      if (dart.test(input[dartx.isEmpty])) return "";
-      let encoder = new convert._Base64Encoder(this[_urlSafe]);
-      let buffer = encoder.encode(input, 0, input[dartx.length], true);
-      return core.String.fromCharCodes(buffer);
-    }
-    startChunkedConversion(sink) {
-      if (convert.StringConversionSink.is(sink)) {
-        return new convert._Utf8Base64EncoderSink(sink.asUtf8Sink(false), this[_urlSafe]);
-      }
-      return new convert._AsciiBase64EncoderSink(sink, this[_urlSafe]);
-    }
-  };
-  dart.addSimpleTypeTests(convert.Base64Encoder);
-  dart.defineNamedConstructor(convert.Base64Encoder, 'urlSafe');
-  dart.setSignature(convert.Base64Encoder, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert.Base64Encoder, []),
-      urlSafe: dart.definiteFunctionType(convert.Base64Encoder, [])
-    }),
-    fields: () => ({[_urlSafe]: core.bool}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.String, [ListOfint()]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
-    })
-  });
-  let const$31;
-  const _encoder = Symbol('_encoder');
-  let const$32;
-  let const$33;
-  convert.Base64Codec = class Base64Codec extends convert.Codec$(core.List$(core.int), core.String) {
-    new() {
-      this[_encoder] = const$31 || (const$31 = dart.const(new convert.Base64Encoder()));
-      super.new();
-    }
-    urlSafe() {
-      this[_encoder] = const$32 || (const$32 = dart.const(new convert.Base64Encoder.urlSafe()));
-      super.new();
-    }
-    get encoder() {
-      return this[_encoder];
-    }
-    get decoder() {
-      return const$33 || (const$33 = dart.const(new convert.Base64Decoder()));
-    }
-  };
-  dart.addSimpleTypeTests(convert.Base64Codec);
-  dart.defineNamedConstructor(convert.Base64Codec, 'urlSafe');
-  dart.setSignature(convert.Base64Codec, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert.Base64Codec, []),
-      urlSafe: dart.definiteFunctionType(convert.Base64Codec, [])
-    }),
-    fields: () => ({[_encoder]: convert.Base64Encoder}),
-    getters: () => ({
-      encoder: dart.definiteFunctionType(convert.Base64Encoder, []),
-      decoder: dart.definiteFunctionType(convert.Base64Decoder, [])
-    })
-  });
-  convert.BASE64 = dart.const(new convert.Base64Codec());
-  convert.BASE64URL = dart.const(new convert.Base64Codec.urlSafe());
-  convert._paddingChar = 61;
-  const _alphabet = Symbol('_alphabet');
-  const _state$0 = Symbol('_state');
-  convert._Base64Encoder = class _Base64Encoder extends core.Object {
-    new(urlSafe) {
-      this[_alphabet] = dart.test(urlSafe) ? convert._Base64Encoder._base64urlAlphabet : convert._Base64Encoder._base64Alphabet;
-      this[_state$0] = 0;
-    }
-    static _encodeState(count, bits) {
-      dart.assert(dart.notNull(count) <= convert._Base64Encoder._countMask);
-      return (dart.notNull(bits) << convert._Base64Encoder._valueShift | dart.notNull(count)) >>> 0;
-    }
-    static _stateBits(state) {
-      return state[dartx['>>']](convert._Base64Encoder._valueShift);
-    }
-    static _stateCount(state) {
-      return dart.notNull(state) & convert._Base64Encoder._countMask;
-    }
-    createBuffer(bufferLength) {
-      return typed_data.Uint8List.new(bufferLength);
-    }
-    encode(bytes, start, end, isLast) {
-      dart.assert(0 <= dart.notNull(start));
-      dart.assert(dart.notNull(start) <= dart.notNull(end));
-      dart.assert(bytes == null || dart.notNull(end) <= dart.notNull(bytes[dartx.length]));
-      let length = dart.notNull(end) - dart.notNull(start);
-      let count = convert._Base64Encoder._stateCount(this[_state$0]);
-      let byteCount = dart.notNull(count) + length;
-      let fullChunks = (byteCount / 3)[dartx.truncate]();
-      let partialChunkLength = byteCount - fullChunks * 3;
-      let bufferLength = fullChunks * 4;
-      if (dart.test(isLast) && partialChunkLength > 0) {
-        bufferLength = bufferLength + 4;
-      }
-      let output = this.createBuffer(bufferLength);
-      this[_state$0] = convert._Base64Encoder.encodeChunk(this[_alphabet], bytes, start, end, isLast, output, 0, this[_state$0]);
-      if (bufferLength > 0) return output;
-      return null;
-    }
-    static encodeChunk(alphabet, bytes, start, end, isLast, output, outputIndex, state) {
-      let bits = convert._Base64Encoder._stateBits(state);
-      let expectedChars = 3 - dart.notNull(convert._Base64Encoder._stateCount(state));
-      let byteOr = 0;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let byte = bytes[dartx._get](i);
-        byteOr = (dart.notNull(byteOr) | dart.notNull(byte)) >>> 0;
-        bits = (dart.notNull(bits) << 8 | dart.notNull(byte)) & 16777215;
-        expectedChars--;
-        if (expectedChars == 0) {
-          output[dartx._set]((() => {
-            let x = outputIndex;
-            outputIndex = dart.notNull(x) + 1;
-            return x;
-          })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 18 & convert._Base64Encoder._sixBitMask));
-          output[dartx._set]((() => {
-            let x = outputIndex;
-            outputIndex = dart.notNull(x) + 1;
-            return x;
-          })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 12 & convert._Base64Encoder._sixBitMask));
-          output[dartx._set]((() => {
-            let x = outputIndex;
-            outputIndex = dart.notNull(x) + 1;
-            return x;
-          })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 6 & convert._Base64Encoder._sixBitMask));
-          output[dartx._set]((() => {
-            let x = outputIndex;
-            outputIndex = dart.notNull(x) + 1;
-            return x;
-          })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) & convert._Base64Encoder._sixBitMask));
-          expectedChars = 3;
-          bits = 0;
-        }
-      }
-      if (dart.notNull(byteOr) >= 0 && dart.notNull(byteOr) <= 255) {
-        if (dart.test(isLast) && expectedChars < 3) {
-          convert._Base64Encoder.writeFinalChunk(alphabet, output, outputIndex, 3 - expectedChars, bits);
-          return 0;
-        }
-        return convert._Base64Encoder._encodeState(3 - expectedChars, bits);
-      }
-      let i = start;
-      while (dart.notNull(i) < dart.notNull(end)) {
-        let byte = bytes[dartx._get](i);
-        if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) break;
-        i = dart.notNull(i) + 1;
-      }
-      dart.throw(new core.ArgumentError.value(bytes, dart.str`Not a byte value at index ${i}: 0x${bytes[dartx._get](i)[dartx.toRadixString](16)}`));
-    }
-    static writeFinalChunk(alphabet, output, outputIndex, count, bits) {
-      dart.assert(dart.notNull(count) > 0);
-      if (count == 1) {
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 2 & convert._Base64Encoder._sixBitMask));
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) << 4 & convert._Base64Encoder._sixBitMask));
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), convert._paddingChar);
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), convert._paddingChar);
-      } else {
-        dart.assert(count == 2);
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 10 & convert._Base64Encoder._sixBitMask));
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 4 & convert._Base64Encoder._sixBitMask));
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) << 2 & convert._Base64Encoder._sixBitMask));
-        output[dartx._set]((() => {
-          let x = outputIndex;
-          outputIndex = dart.notNull(x) + 1;
-          return x;
-        })(), convert._paddingChar);
-      }
-    }
-  };
-  dart.setSignature(convert._Base64Encoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Base64Encoder, [core.bool])}),
-    fields: () => ({
-      [_state$0]: core.int,
-      [_alphabet]: core.String
-    }),
-    methods: () => ({
-      createBuffer: dart.definiteFunctionType(typed_data.Uint8List, [core.int]),
-      encode: dart.definiteFunctionType(typed_data.Uint8List, [ListOfint(), core.int, core.int, core.bool])
-    }),
-    sfields: () => ({
-      _base64Alphabet: core.String,
-      _base64urlAlphabet: core.String,
-      _valueShift: core.int,
-      _countMask: core.int,
-      _sixBitMask: core.int
-    }),
-    statics: () => ({
-      _encodeState: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      _stateBits: dart.definiteFunctionType(core.int, [core.int]),
-      _stateCount: dart.definiteFunctionType(core.int, [core.int]),
-      encodeChunk: dart.definiteFunctionType(core.int, [core.String, ListOfint(), core.int, core.int, core.bool, typed_data.Uint8List, core.int, core.int]),
-      writeFinalChunk: dart.definiteFunctionType(dart.void, [core.String, typed_data.Uint8List, core.int, core.int, core.int])
-    }),
-    names: ['_encodeState', '_stateBits', '_stateCount', 'encodeChunk', 'writeFinalChunk']
-  });
-  convert._Base64Encoder._base64Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-  convert._Base64Encoder._base64urlAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
-  convert._Base64Encoder._valueShift = 2;
-  convert._Base64Encoder._countMask = 3;
-  convert._Base64Encoder._sixBitMask = 63;
-  convert._BufferCachingBase64Encoder = class _BufferCachingBase64Encoder extends convert._Base64Encoder {
-    new(urlSafe) {
-      this.bufferCache = null;
-      super.new(urlSafe);
-    }
-    createBuffer(bufferLength) {
-      if (this.bufferCache == null || dart.notNull(this.bufferCache[dartx.length]) < dart.notNull(bufferLength)) {
-        this.bufferCache = typed_data.Uint8List.new(bufferLength);
-      }
-      return typed_data.Uint8List.view(this.bufferCache[dartx.buffer], 0, bufferLength);
-    }
-  };
-  dart.setSignature(convert._BufferCachingBase64Encoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._BufferCachingBase64Encoder, [core.bool])}),
-    fields: () => ({bufferCache: typed_data.Uint8List})
-  });
-  const _add$1 = Symbol('_add');
-  convert._Base64EncoderSink = class _Base64EncoderSink extends convert.ByteConversionSinkBase {
-    new() {
-      super.new();
-    }
-    add(source) {
-      this[_add$1](source, 0, source[dartx.length], false);
-    }
-    close() {
-      this[_add$1](null, 0, 0, true);
-    }
-    addSlice(source, start, end, isLast) {
-      if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
-      core.RangeError.checkValidRange(start, end, source[dartx.length]);
-      this[_add$1](source, start, end, isLast);
-    }
-  };
-  dart.setSignature(convert._Base64EncoderSink, {
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  convert._AsciiBase64EncoderSink = class _AsciiBase64EncoderSink extends convert._Base64EncoderSink {
-    new(sink, urlSafe) {
-      this[_sink$] = sink;
-      this[_encoder] = new convert._BufferCachingBase64Encoder(urlSafe);
-      super.new();
-    }
-    [_add$1](source, start, end, isLast) {
-      let buffer = this[_encoder].encode(source, start, end, isLast);
-      if (buffer != null) {
-        let string = core.String.fromCharCodes(buffer);
-        this[_sink$].add(string);
-      }
-      if (dart.test(isLast)) {
-        this[_sink$].close();
-      }
-    }
-  };
-  dart.setSignature(convert._AsciiBase64EncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._AsciiBase64EncoderSink, [SinkOfString(), core.bool])}),
-    fields: () => ({
-      [_sink$]: SinkOfString(),
-      [_encoder]: convert._Base64Encoder
-    }),
-    methods: () => ({[_add$1]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
-  });
-  convert._Utf8Base64EncoderSink = class _Utf8Base64EncoderSink extends convert._Base64EncoderSink {
-    new(sink, urlSafe) {
-      this[_sink$] = sink;
-      this[_encoder] = new convert._Base64Encoder(urlSafe);
-      super.new();
-    }
-    [_add$1](source, start, end, isLast) {
-      let buffer = this[_encoder].encode(source, start, end, isLast);
-      if (buffer != null) {
-        this[_sink$].addSlice(buffer, 0, buffer[dartx.length], isLast);
-      }
-    }
-  };
-  dart.setSignature(convert._Utf8Base64EncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Utf8Base64EncoderSink, [convert.ByteConversionSink, core.bool])}),
-    fields: () => ({
-      [_sink$]: convert.ByteConversionSink,
-      [_encoder]: convert._Base64Encoder
-    }),
-    methods: () => ({[_add$1]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
-  });
-  convert.Base64Decoder = class Base64Decoder extends convert.Converter$(core.String, core.List$(core.int)) {
-    new() {
-      super.new();
-    }
-    convert(input, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      end = core.RangeError.checkValidRange(start, end, input[dartx.length]);
-      if (start == end) return typed_data.Uint8List.new(0);
-      let decoder = new convert._Base64Decoder();
-      let buffer = decoder.decode(input, start, end);
-      decoder.close(input, end);
-      return buffer;
-    }
-    startChunkedConversion(sink) {
-      return new convert._Base64DecoderSink(sink);
-    }
-  };
-  dart.addSimpleTypeTests(convert.Base64Decoder);
-  dart.setSignature(convert.Base64Decoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Base64Decoder, [])}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
-    })
-  });
-  convert._Base64Decoder = class _Base64Decoder extends core.Object {
-    new() {
-      this[_state$0] = 0;
-    }
-    static _encodeCharacterState(count, bits) {
-      dart.assert(count == (dart.notNull(count) & convert._Base64Decoder._countMask));
-      return (dart.notNull(bits) << convert._Base64Decoder._valueShift | dart.notNull(count)) >>> 0;
-    }
-    static _stateCount(state) {
-      dart.assert(dart.notNull(state) >= 0);
-      return dart.notNull(state) & convert._Base64Decoder._countMask;
-    }
-    static _stateBits(state) {
-      dart.assert(dart.notNull(state) >= 0);
-      return state[dartx['>>']](convert._Base64Decoder._valueShift);
-    }
-    static _encodePaddingState(expectedPadding) {
-      dart.assert(dart.notNull(expectedPadding) >= 0);
-      dart.assert(dart.notNull(expectedPadding) <= 5);
-      return -dart.notNull(expectedPadding) - 1;
-    }
-    static _statePadding(state) {
-      dart.assert(dart.notNull(state) < 0);
-      return -dart.notNull(state) - 1;
-    }
-    static _hasSeenPadding(state) {
-      return dart.notNull(state) < 0;
-    }
-    decode(input, start, end) {
-      dart.assert(0 <= dart.notNull(start));
-      dart.assert(dart.notNull(start) <= dart.notNull(end));
-      dart.assert(dart.notNull(end) <= dart.notNull(input[dartx.length]));
-      if (dart.test(convert._Base64Decoder._hasSeenPadding(this[_state$0]))) {
-        this[_state$0] = convert._Base64Decoder._checkPadding(input, start, end, this[_state$0]);
-        return null;
-      }
-      if (start == end) return typed_data.Uint8List.new(0);
-      let buffer = convert._Base64Decoder._allocateBuffer(input, start, end, this[_state$0]);
-      this[_state$0] = convert._Base64Decoder.decodeChunk(input, start, end, buffer, 0, this[_state$0]);
-      return buffer;
-    }
-    close(input, end) {
-      if (dart.notNull(this[_state$0]) < dart.notNull(convert._Base64Decoder._encodePaddingState(0))) {
-        dart.throw(new core.FormatException("Missing padding character", input, end));
-      }
-      if (dart.notNull(this[_state$0]) > 0) {
-        dart.throw(new core.FormatException("Invalid length, must be multiple of four", input, end));
-      }
-      this[_state$0] = convert._Base64Decoder._encodePaddingState(0);
-    }
-    static decodeChunk(input, start, end, output, outIndex, state) {
-      dart.assert(!dart.test(convert._Base64Decoder._hasSeenPadding(state)));
-      let asciiMask = 127;
-      let asciiMax = 127;
-      let eightBitMask = 255;
-      let bitsPerCharacter = 6;
-      let bits = convert._Base64Decoder._stateBits(state);
-      let count = convert._Base64Decoder._stateCount(state);
-      let charOr = 0;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let char = input[dartx.codeUnitAt](i);
-        charOr = (dart.notNull(charOr) | dart.notNull(char)) >>> 0;
-        let code = convert._Base64Decoder._inverseAlphabet[dartx._get]((dart.notNull(char) & asciiMask) >>> 0);
-        if (dart.notNull(code) >= 0) {
-          bits = (bits[dartx['<<']](bitsPerCharacter) | dart.notNull(code)) & 16777215;
-          count = dart.notNull(count) + 1 & 3;
-          if (count == 0) {
-            dart.assert(dart.notNull(outIndex) + 3 <= dart.notNull(output[dartx.length]));
-            output[dartx._set]((() => {
-              let x = outIndex;
-              outIndex = dart.notNull(x) + 1;
-              return x;
-            })(), (bits[dartx['>>']](16) & eightBitMask) >>> 0);
-            output[dartx._set]((() => {
-              let x = outIndex;
-              outIndex = dart.notNull(x) + 1;
-              return x;
-            })(), (bits[dartx['>>']](8) & eightBitMask) >>> 0);
-            output[dartx._set]((() => {
-              let x = outIndex;
-              outIndex = dart.notNull(x) + 1;
-              return x;
-            })(), (dart.notNull(bits) & eightBitMask) >>> 0);
-            bits = 0;
-          }
-          continue;
-        } else if (code == convert._Base64Decoder._padding && dart.notNull(count) > 1) {
-          if (dart.notNull(charOr) < 0 || dart.notNull(charOr) > asciiMax) break;
-          if (count == 3) {
-            if ((dart.notNull(bits) & 3) != 0) {
-              dart.throw(new core.FormatException("Invalid encoding before padding", input, i));
-            }
-            output[dartx._set]((() => {
-              let x = outIndex;
-              outIndex = dart.notNull(x) + 1;
-              return x;
-            })(), bits[dartx['>>']](10));
-            output[dartx._set]((() => {
-              let x = outIndex;
-              outIndex = dart.notNull(x) + 1;
-              return x;
-            })(), bits[dartx['>>']](2));
-          } else {
-            if ((dart.notNull(bits) & 15) != 0) {
-              dart.throw(new core.FormatException("Invalid encoding before padding", input, i));
-            }
-            output[dartx._set]((() => {
-              let x = outIndex;
-              outIndex = dart.notNull(x) + 1;
-              return x;
-            })(), bits[dartx['>>']](4));
-          }
-          let expectedPadding = (3 - dart.notNull(count)) * 3;
-          if (char == convert._Base64Decoder._char_percent) {
-            expectedPadding = expectedPadding + 2;
-          }
-          state = convert._Base64Decoder._encodePaddingState(expectedPadding);
-          return convert._Base64Decoder._checkPadding(input, dart.notNull(i) + 1, end, state);
-        }
-        dart.throw(new core.FormatException("Invalid character", input, i));
-      }
-      if (dart.notNull(charOr) >= 0 && dart.notNull(charOr) <= asciiMax) {
-        return convert._Base64Decoder._encodeCharacterState(count, bits);
-      }
-      let i = null;
-      for (i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let char = input[dartx.codeUnitAt](i);
-        if (dart.notNull(char) < 0 || dart.notNull(char) > asciiMax) break;
-      }
-      dart.throw(new core.FormatException("Invalid character", input, i));
-    }
-    static _allocateBuffer(input, start, end, state) {
-      dart.assert(dart.notNull(state) >= 0);
-      let paddingStart = convert._Base64Decoder._trimPaddingChars(input, start, end);
-      let length = dart.notNull(convert._Base64Decoder._stateCount(state)) + (dart.notNull(paddingStart) - dart.notNull(start));
-      let bufferLength = length[dartx['>>']](2) * 3;
-      let remainderLength = length & 3;
-      if (remainderLength != 0 && dart.notNull(paddingStart) < dart.notNull(end)) {
-        bufferLength = bufferLength + (remainderLength - 1);
-      }
-      if (bufferLength > 0) return typed_data.Uint8List.new(bufferLength);
-      return null;
-    }
-    static _trimPaddingChars(input, start, end) {
-      let padding = 0;
-      let index = end;
-      let newEnd = end;
-      while (dart.notNull(index) > dart.notNull(start) && padding < 2) {
-        index = dart.notNull(index) - 1;
-        let char = input[dartx.codeUnitAt](index);
-        if (char == convert._paddingChar) {
-          padding++;
-          newEnd = index;
-          continue;
-        }
-        if ((dart.notNull(char) | 32) == convert._Base64Decoder._char_d) {
-          if (index == start) break;
-          index = dart.notNull(index) - 1;
-          char = input[dartx.codeUnitAt](index);
-        }
-        if (char == convert._Base64Decoder._char_3) {
-          if (index == start) break;
-          index = dart.notNull(index) - 1;
-          char = input[dartx.codeUnitAt](index);
-        }
-        if (char == convert._Base64Decoder._char_percent) {
-          padding++;
-          newEnd = index;
-          continue;
-        }
-        break;
-      }
-      return newEnd;
-    }
-    static _checkPadding(input, start, end, state) {
-      dart.assert(convert._Base64Decoder._hasSeenPadding(state));
-      if (start == end) return state;
-      let expectedPadding = convert._Base64Decoder._statePadding(state);
-      dart.assert(dart.notNull(expectedPadding) >= 0);
-      dart.assert(dart.notNull(expectedPadding) < 6);
-      while (dart.notNull(expectedPadding) > 0) {
-        let char = input[dartx.codeUnitAt](start);
-        if (expectedPadding == 3) {
-          if (char == convert._paddingChar) {
-            expectedPadding = dart.notNull(expectedPadding) - 3;
-            start = dart.notNull(start) + 1;
-            break;
-          }
-          if (char == convert._Base64Decoder._char_percent) {
-            expectedPadding = dart.notNull(expectedPadding) - 1;
-            start = dart.notNull(start) + 1;
-            if (start == end) break;
-            char = input[dartx.codeUnitAt](start);
-          } else {
-            break;
-          }
-        }
-        let expectedPartialPadding = expectedPadding;
-        if (dart.notNull(expectedPartialPadding) > 3) {
-          expectedPartialPadding = dart.notNull(expectedPartialPadding) - 3;
-        }
-        if (expectedPartialPadding == 2) {
-          if (char != convert._Base64Decoder._char_3) break;
-          start = dart.notNull(start) + 1;
-          expectedPadding = dart.notNull(expectedPadding) - 1;
-          if (start == end) break;
-          char = input[dartx.codeUnitAt](start);
-        }
-        if ((dart.notNull(char) | 32) != convert._Base64Decoder._char_d) break;
-        start = dart.notNull(start) + 1;
-        expectedPadding = dart.notNull(expectedPadding) - 1;
-        if (start == end) break;
-      }
-      if (start != end) {
-        dart.throw(new core.FormatException("Invalid padding character", input, start));
-      }
-      return convert._Base64Decoder._encodePaddingState(expectedPadding);
-    }
-  };
-  dart.setSignature(convert._Base64Decoder, {
-    fields: () => ({[_state$0]: core.int}),
-    methods: () => ({
-      decode: dart.definiteFunctionType(typed_data.Uint8List, [core.String, core.int, core.int]),
-      close: dart.definiteFunctionType(dart.void, [core.String, core.int])
-    }),
-    sfields: () => ({
-      _valueShift: core.int,
-      _countMask: core.int,
-      _invalid: core.int,
-      _padding: core.int,
-      __: core.int,
-      _p: core.int,
-      _inverseAlphabet: ListOfint(),
-      _char_percent: core.int,
-      _char_3: core.int,
-      _char_d: core.int
-    }),
-    statics: () => ({
-      _encodeCharacterState: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      _stateCount: dart.definiteFunctionType(core.int, [core.int]),
-      _stateBits: dart.definiteFunctionType(core.int, [core.int]),
-      _encodePaddingState: dart.definiteFunctionType(core.int, [core.int]),
-      _statePadding: dart.definiteFunctionType(core.int, [core.int]),
-      _hasSeenPadding: dart.definiteFunctionType(core.bool, [core.int]),
-      decodeChunk: dart.definiteFunctionType(core.int, [core.String, core.int, core.int, typed_data.Uint8List, core.int, core.int]),
-      _allocateBuffer: dart.definiteFunctionType(typed_data.Uint8List, [core.String, core.int, core.int, core.int]),
-      _trimPaddingChars: dart.definiteFunctionType(core.int, [core.String, core.int, core.int]),
-      _checkPadding: dart.definiteFunctionType(core.int, [core.String, core.int, core.int, core.int])
-    }),
-    names: ['_encodeCharacterState', '_stateCount', '_stateBits', '_encodePaddingState', '_statePadding', '_hasSeenPadding', 'decodeChunk', '_allocateBuffer', '_trimPaddingChars', '_checkPadding']
-  });
-  convert._Base64Decoder._valueShift = 2;
-  convert._Base64Decoder._countMask = 3;
-  convert._Base64Decoder._invalid = -2;
-  convert._Base64Decoder._padding = -1;
-  convert._Base64Decoder._char_percent = 37;
-  convert._Base64Decoder._char_3 = 51;
-  convert._Base64Decoder._char_d = 100;
-  dart.defineLazy(convert._Base64Decoder, {
-    get __() {
-      return convert._Base64Decoder._invalid;
-    },
-    get _p() {
-      return convert._Base64Decoder._padding;
-    },
-    get _inverseAlphabet() {
-      return typed_data.Int8List.fromList(JSArrayOfint().of([convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder._p, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, 62, convert._Base64Decoder.__, 62, convert._Base64Decoder.__, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder._p, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, 63, convert._Base64Decoder.__, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__]));
-    }
-  });
-  const _decoder = Symbol('_decoder');
-  convert._Base64DecoderSink = class _Base64DecoderSink extends convert.StringConversionSinkBase {
-    new(sink) {
-      this[_decoder] = new convert._Base64Decoder();
-      this[_sink$] = sink;
-    }
-    add(string) {
-      if (dart.test(string[dartx.isEmpty])) return;
-      let buffer = this[_decoder].decode(string, 0, string[dartx.length]);
-      if (buffer != null) this[_sink$].add(buffer);
-    }
-    close() {
-      this[_decoder].close(null, null);
-      this[_sink$].close();
-    }
-    addSlice(string, start, end, isLast) {
-      end = core.RangeError.checkValidRange(start, end, string[dartx.length]);
-      if (start == end) return;
-      let buffer = this[_decoder].decode(string, start, end);
-      if (buffer != null) this[_sink$].add(buffer);
-      if (dart.test(isLast)) {
-        this[_decoder].close(string, end);
-        this[_sink$].close();
-      }
-    }
-  };
-  dart.setSignature(convert._Base64DecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Base64DecoderSink, [SinkOfListOfint()])}),
-    fields: () => ({
-      [_sink$]: SinkOfListOfint(),
-      [_decoder]: convert._Base64Decoder
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
-    })
-  });
-  convert._ByteAdapterSink = class _ByteAdapterSink extends convert.ByteConversionSinkBase {
-    new(sink) {
-      this[_sink$] = sink;
-      super.new();
-    }
-    add(chunk) {
-      this[_sink$].add(chunk);
-    }
-    close() {
-      this[_sink$].close();
-    }
-  };
-  dart.setSignature(convert._ByteAdapterSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._ByteAdapterSink, [SinkOfListOfint()])}),
-    fields: () => ({[_sink$]: SinkOfListOfint()}),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _buffer = Symbol('_buffer');
-  const _callback = Symbol('_callback');
-  const _bufferIndex = Symbol('_bufferIndex');
-  convert._ByteCallbackSink = class _ByteCallbackSink extends convert.ByteConversionSinkBase {
-    new(callback) {
-      this[_buffer] = typed_data.Uint8List.new(convert._ByteCallbackSink._INITIAL_BUFFER_SIZE);
-      this[_callback] = callback;
-      this[_bufferIndex] = 0;
-      super.new();
-    }
-    add(chunk) {
-      let freeCount = dart.notNull(this[_buffer][dartx.length]) - dart.notNull(this[_bufferIndex]);
-      if (dart.notNull(chunk[dartx.length]) > freeCount) {
-        let oldLength = this[_buffer][dartx.length];
-        let newLength = dart.notNull(convert._ByteCallbackSink._roundToPowerOf2(dart.notNull(chunk[dartx.length]) + dart.notNull(oldLength))) * 2;
-        let grown = typed_data.Uint8List.new(newLength);
-        grown[dartx.setRange](0, this[_buffer][dartx.length], this[_buffer]);
-        this[_buffer] = grown;
-      }
-      this[_buffer][dartx.setRange](this[_bufferIndex], dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[dartx.length]), chunk);
-      this[_bufferIndex] = dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[dartx.length]);
-    }
-    static _roundToPowerOf2(v) {
-      dart.assert(dart.notNull(v) > 0);
-      v = dart.notNull(v) - 1;
-      v = (dart.notNull(v) | v[dartx['>>']](1)) >>> 0;
-      v = (dart.notNull(v) | v[dartx['>>']](2)) >>> 0;
-      v = (dart.notNull(v) | v[dartx['>>']](4)) >>> 0;
-      v = (dart.notNull(v) | v[dartx['>>']](8)) >>> 0;
-      v = (dart.notNull(v) | v[dartx['>>']](16)) >>> 0;
-      v = dart.notNull(v) + 1;
-      return v;
-    }
-    close() {
-      this[_callback](this[_buffer][dartx.sublist](0, this[_bufferIndex]));
-    }
-  };
-  dart.setSignature(convert._ByteCallbackSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._ByteCallbackSink, [ListOfintTovoid()])}),
-    fields: () => ({
-      [_callback]: ListOfintTovoid(),
-      [_buffer]: ListOfint(),
-      [_bufferIndex]: core.int
-    }),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [IterableOfint()]),
-      close: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({_INITIAL_BUFFER_SIZE: core.int}),
-    statics: () => ({_roundToPowerOf2: dart.definiteFunctionType(core.int, [core.int])}),
-    names: ['_roundToPowerOf2']
-  });
-  convert._ByteCallbackSink._INITIAL_BUFFER_SIZE = 1024;
-  convert._ChunkedConversionCallback$ = dart.generic(T => {
-    const _ChunkedConversionCallback = dart.typedef('_ChunkedConversionCallback', () => dart.functionType(dart.void, [T]));
-    return _ChunkedConversionCallback;
-  });
-  convert._ChunkedConversionCallback = _ChunkedConversionCallback();
-  convert.ChunkedConverter$ = dart.generic((S, T, S2, T2) => {
-    let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
-    let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
-    class ChunkedConverter extends convert.Converter$(S, T) {
-      new() {
-        super.new();
-      }
-      bind(other) {
-        return super.bind(StreamOfS()._check(other));
-      }
-      startChunkedConversion(sink) {
-        return super.startChunkedConversion(SinkOfT()._check(sink));
-      }
-    }
-    dart.setSignature(ChunkedConverter, {
-      constructors: () => ({new: dart.definiteFunctionType(convert.ChunkedConverter$(S, T, S2, T2), [])}),
-      methods: () => ({
-        bind: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-        startChunkedConversion: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-      })
-    });
-    return ChunkedConverter;
-  });
-  convert.ChunkedConverter = ChunkedConverter();
-  const _accumulated = Symbol('_accumulated');
-  convert._SimpleCallbackSink$ = dart.generic(T => {
-    let JSArrayOfT = () => (JSArrayOfT = dart.constFn(_interceptors.JSArray$(T)))();
-    let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
-    let _ChunkedConversionCallbackOfListOfT = () => (_ChunkedConversionCallbackOfListOfT = dart.constFn(convert._ChunkedConversionCallback$(ListOfT())))();
-    class _SimpleCallbackSink extends convert.ChunkedConversionSink$(T) {
-      new(callback) {
-        this[_accumulated] = JSArrayOfT().of([]);
-        this[_callback] = callback;
-        super.new();
-      }
-      add(chunk) {
-        T._check(chunk);
-        this[_accumulated][dartx.add](chunk);
-      }
-      close() {
-        this[_callback](this[_accumulated]);
-      }
-    }
-    dart.setSignature(_SimpleCallbackSink, {
-      constructors: () => ({new: dart.definiteFunctionType(convert._SimpleCallbackSink$(T), [_ChunkedConversionCallbackOfListOfT()])}),
-      fields: () => ({
-        [_callback]: _ChunkedConversionCallbackOfListOfT(),
-        [_accumulated]: ListOfT()
-      }),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [T]),
-        close: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _SimpleCallbackSink;
-  });
-  convert._SimpleCallbackSink = _SimpleCallbackSink();
-  const _eventSink = Symbol('_eventSink');
-  const _chunkedSink = Symbol('_chunkedSink');
-  convert._ConverterStreamEventSink$ = dart.generic((S, T) => {
-    let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
-    let SinkOfS = () => (SinkOfS = dart.constFn(core.Sink$(S)))();
-    let ConverterOfS$T = () => (ConverterOfS$T = dart.constFn(convert.Converter$(S, T)))();
-    let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
-    class _ConverterStreamEventSink extends core.Object {
-      new(converter, sink) {
-        this[_eventSink] = sink;
-        this[_chunkedSink] = converter.startChunkedConversion(sink);
-      }
-      add(o) {
-        S._check(o);
-        this[_chunkedSink].add(o);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_eventSink].addError(error, stackTrace);
-      }
-      close() {
-        this[_chunkedSink].close();
-      }
-    }
-    dart.addTypeTests(_ConverterStreamEventSink);
-    _ConverterStreamEventSink[dart.implements] = () => [EventSinkOfS()];
-    dart.setSignature(_ConverterStreamEventSink, {
-      constructors: () => ({new: dart.definiteFunctionType(convert._ConverterStreamEventSink$(S, T), [ConverterOfS$T(), EventSinkOfT()])}),
-      fields: () => ({
-        [_eventSink]: EventSinkOfT(),
-        [_chunkedSink]: SinkOfS()
-      }),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [S]),
-        addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-        close: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _ConverterStreamEventSink;
-  });
-  convert._ConverterStreamEventSink = _ConverterStreamEventSink();
-  const _second = Symbol('_second');
-  const _first$0 = Symbol('_first');
-  convert._FusedCodec$ = dart.generic((S, M, T) => {
-    let CodecOfS$M = () => (CodecOfS$M = dart.constFn(convert.Codec$(S, M)))();
-    let CodecOfM$T = () => (CodecOfM$T = dart.constFn(convert.Codec$(M, T)))();
-    class _FusedCodec extends convert.Codec$(S, T) {
-      get encoder() {
-        return this[_first$0].encoder.fuse(T)(this[_second].encoder);
-      }
-      get decoder() {
-        return this[_second].decoder.fuse(S)(this[_first$0].decoder);
-      }
-      new(first, second) {
-        this[_first$0] = first;
-        this[_second] = second;
-        super.new();
-      }
-    }
-    dart.setSignature(_FusedCodec, {
-      constructors: () => ({new: dart.definiteFunctionType(convert._FusedCodec$(S, M, T), [CodecOfS$M(), CodecOfM$T()])}),
-      fields: () => ({
-        [_first$0]: CodecOfS$M(),
-        [_second]: CodecOfM$T()
-      }),
-      getters: () => ({
-        encoder: dart.definiteFunctionType(convert.Converter$(S, T), []),
-        decoder: dart.definiteFunctionType(convert.Converter$(T, S), [])
-      })
-    });
-    return _FusedCodec;
-  });
-  convert._FusedCodec = _FusedCodec();
-  const _codec = Symbol('_codec');
-  convert._InvertedCodec$ = dart.generic((T, S) => {
-    let CodecOfS$T = () => (CodecOfS$T = dart.constFn(convert.Codec$(S, T)))();
-    class _InvertedCodec extends convert.Codec$(T, S) {
-      new(codec) {
-        this[_codec] = codec;
-        super.new();
-      }
-      get encoder() {
-        return this[_codec].decoder;
-      }
-      get decoder() {
-        return this[_codec].encoder;
-      }
-      get inverted() {
-        return this[_codec];
-      }
-    }
-    dart.setSignature(_InvertedCodec, {
-      constructors: () => ({new: dart.definiteFunctionType(convert._InvertedCodec$(T, S), [CodecOfS$T()])}),
-      fields: () => ({[_codec]: CodecOfS$T()}),
-      getters: () => ({
-        encoder: dart.definiteFunctionType(convert.Converter$(T, S), []),
-        decoder: dart.definiteFunctionType(convert.Converter$(S, T), [])
-      })
-    });
-    return _InvertedCodec;
-  });
-  convert._InvertedCodec = _InvertedCodec();
-  convert._FusedConverter$ = dart.generic((S, M, T) => {
-    let ConverterOfS$M = () => (ConverterOfS$M = dart.constFn(convert.Converter$(S, M)))();
-    let ConverterOfM$T = () => (ConverterOfM$T = dart.constFn(convert.Converter$(M, T)))();
-    let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
-    class _FusedConverter extends convert.Converter$(S, T) {
-      new(first, second) {
-        this[_first$0] = first;
-        this[_second] = second;
-        super.new();
-      }
-      convert(input) {
-        S._check(input);
-        return this[_second].convert(this[_first$0].convert(input));
-      }
-      startChunkedConversion(sink) {
-        SinkOfT()._check(sink);
-        return this[_first$0].startChunkedConversion(this[_second].startChunkedConversion(sink));
-      }
-    }
-    dart.setSignature(_FusedConverter, {
-      constructors: () => ({new: dart.definiteFunctionType(convert._FusedConverter$(S, M, T), [ConverterOfS$M(), ConverterOfM$T()])}),
-      fields: () => ({
-        [_first$0]: ConverterOfS$M(),
-        [_second]: ConverterOfM$T()
-      }),
-      methods: () => ({convert: dart.definiteFunctionType(T, [S])})
-    });
-    return _FusedConverter;
-  });
-  convert._FusedConverter = _FusedConverter();
-  const _name$1 = Symbol('_name');
-  let const$34;
-  let const$35;
-  let const$36;
-  let const$37;
-  let const$38;
-  let const$39;
-  let const$40;
-  let const$41;
-  convert.HtmlEscapeMode = class HtmlEscapeMode extends core.Object {
-    _(name, escapeLtGt, escapeQuot, escapeApos, escapeSlash) {
-      this[_name$1] = name;
-      this.escapeLtGt = escapeLtGt;
-      this.escapeQuot = escapeQuot;
-      this.escapeApos = escapeApos;
-      this.escapeSlash = escapeSlash;
-    }
-    new(opts) {
-      let name = opts && 'name' in opts ? opts.name : "custom";
-      let escapeLtGt = opts && 'escapeLtGt' in opts ? opts.escapeLtGt : false;
-      let escapeQuot = opts && 'escapeQuot' in opts ? opts.escapeQuot : false;
-      let escapeApos = opts && 'escapeApos' in opts ? opts.escapeApos : false;
-      let escapeSlash = opts && 'escapeSlash' in opts ? opts.escapeSlash : false;
-      this.escapeLtGt = escapeLtGt;
-      this.escapeQuot = escapeQuot;
-      this.escapeApos = escapeApos;
-      this.escapeSlash = escapeSlash;
-      this[_name$1] = name;
-    }
-    toString() {
-      return this[_name$1];
-    }
-  };
-  dart.defineNamedConstructor(convert.HtmlEscapeMode, '_');
-  dart.setSignature(convert.HtmlEscapeMode, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(convert.HtmlEscapeMode, [core.String, core.bool, core.bool, core.bool, core.bool]),
-      new: dart.definiteFunctionType(convert.HtmlEscapeMode, [], {name: core.String, escapeLtGt: core.bool, escapeQuot: core.bool, escapeApos: core.bool, escapeSlash: core.bool})
-    }),
-    fields: () => ({
-      [_name$1]: core.String,
-      escapeLtGt: core.bool,
-      escapeQuot: core.bool,
-      escapeApos: core.bool,
-      escapeSlash: core.bool
-    }),
-    sfields: () => ({
-      UNKNOWN: convert.HtmlEscapeMode,
-      ATTRIBUTE: convert.HtmlEscapeMode,
-      SQ_ATTRIBUTE: convert.HtmlEscapeMode,
-      ELEMENT: convert.HtmlEscapeMode
-    })
-  });
-  dart.defineLazy(convert.HtmlEscapeMode, {
-    get UNKNOWN() {
-      return const$38 || (const$38 = dart.const(new convert.HtmlEscapeMode._('unknown', true, true, true, true)));
-    },
-    get ATTRIBUTE() {
-      return const$39 || (const$39 = dart.const(new convert.HtmlEscapeMode._('attribute', true, true, false, false)));
-    },
-    get SQ_ATTRIBUTE() {
-      return const$40 || (const$40 = dart.const(new convert.HtmlEscapeMode._('attribute', true, false, true, false)));
-    },
-    get ELEMENT() {
-      return const$41 || (const$41 = dart.const(new convert.HtmlEscapeMode._('element', true, false, false, false)));
-    }
-  });
-  const _convert = Symbol('_convert');
-  convert.HtmlEscape = class HtmlEscape extends convert.Converter$(core.String, core.String) {
-    new(mode) {
-      if (mode === void 0) mode = convert.HtmlEscapeMode.UNKNOWN;
-      this.mode = mode;
-      super.new();
-    }
-    convert(text) {
-      let val = this[_convert](text, 0, text[dartx.length]);
-      return val == null ? text : val;
-    }
-    [_convert](text, start, end) {
       let result = null;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let ch = text[dartx._get](i);
-        let replacement = null;
-        switch (ch) {
-          case '&':
-          {
-            replacement = '&amp;';
-            break;
-          }
-          case '"':
-          {
-            if (dart.test(this.mode.escapeQuot)) replacement = '&quot;';
-            break;
-          }
-          case "'":
-          {
-            if (dart.test(this.mode.escapeApos)) replacement = '&#39;';
-            break;
-          }
-          case '<':
-          {
-            if (dart.test(this.mode.escapeLtGt)) replacement = '&lt;';
-            break;
-          }
-          case '>':
-          {
-            if (dart.test(this.mode.escapeLtGt)) replacement = '&gt;';
-            break;
-          }
-          case '/':
-          {
-            if (dart.test(this.mode.escapeSlash)) replacement = '&#47;';
-            break;
-          }
-        }
-        if (replacement != null) {
-          if (result == null) result = new core.StringBuffer();
-          if (dart.notNull(i) > dart.notNull(start)) result.write(text[dartx.substring](start, i));
-          result.write(replacement);
-          start = dart.notNull(i) + 1;
+      do {
+        result = it.current;
+      } while (dart.test(it.moveNext()));
+      return result;
+    }
+    firstWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      for (let element of this) {
+        if (dart.test(test(element))) return element;
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    lastWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let result = null;
+      let foundMatching = false;
+      for (let element of this) {
+        if (dart.test(test(element))) {
+          result = element;
+          foundMatching = true;
         }
       }
-      if (result == null) return null;
-      if (dart.notNull(end) > dart.notNull(start)) result.write(text[dartx.substring](start, end));
-      return dart.toString(result);
+      if (foundMatching) return result;
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
     }
-    startChunkedConversion(sink) {
-      if (!convert.StringConversionSink.is(sink)) {
-        sink = convert.StringConversionSink.from(sink);
+    singleWhere(test) {
+      let result = null;
+      let foundMatching = false;
+      for (let element of this) {
+        if (dart.test(test(element))) {
+          if (foundMatching) {
+            dart.throw(_internal.IterableElementError.tooMany());
+          }
+          result = element;
+          foundMatching = true;
+        }
       }
-      return new convert._HtmlEscapeSink(this, convert.StringConversionSink._check(sink));
+      if (foundMatching) return result;
+      dart.throw(_internal.IterableElementError.noElement());
     }
-  };
-  dart.addSimpleTypeTests(convert.HtmlEscape);
-  dart.setSignature(convert.HtmlEscape, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.HtmlEscape, [], [convert.HtmlEscapeMode])}),
-    fields: () => ({mode: convert.HtmlEscapeMode}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.String, [core.String]),
-      [_convert]: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfString()])
-    })
-  });
-  convert.HTML_ESCAPE = dart.const(new convert.HtmlEscape());
-  const _escape = Symbol('_escape');
-  convert._HtmlEscapeSink = class _HtmlEscapeSink extends convert.StringConversionSinkBase {
-    new(escape, sink) {
-      this[_escape] = escape;
-      this[_sink$] = sink;
-    }
-    addSlice(chunk, start, end, isLast) {
-      let val = this[_escape][_convert](chunk, start, end);
-      if (val == null) {
-        this[_sink$].addSlice(chunk, start, end, isLast);
-      } else {
-        this[_sink$].add(val);
-        if (dart.test(isLast)) this[_sink$].close();
+    elementAt(index) {
+      if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
+      core.RangeError.checkNotNegative(index, "index");
+      let elementIndex = 0;
+      for (let element of this) {
+        if (index == elementIndex) return element;
+        elementIndex++;
       }
+      dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
     }
-    close() {
-      this[_sink$].close();
-    }
-  };
-  dart.setSignature(convert._HtmlEscapeSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._HtmlEscapeSink, [convert.HtmlEscape, convert.StringConversionSink])}),
-    fields: () => ({
-      [_escape]: convert.HtmlEscape,
-      [_sink$]: convert.StringConversionSink
-    }),
-    methods: () => ({
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  convert.JsonUnsupportedObjectError = class JsonUnsupportedObjectError extends core.Error {
-    new(unsupportedObject, opts) {
-      let cause = opts && 'cause' in opts ? opts.cause : null;
-      this.unsupportedObject = unsupportedObject;
-      this.cause = cause;
-      super.new();
-    }
-    toString() {
-      if (this.cause != null) {
-        return "Converting object to an encodable object failed.";
-      } else {
-        return "Converting object did not return an encodable object.";
-      }
-    }
-  };
-  dart.setSignature(convert.JsonUnsupportedObjectError, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.JsonUnsupportedObjectError, [dart.dynamic], {cause: dart.dynamic})}),
-    fields: () => ({
-      unsupportedObject: dart.dynamic,
-      cause: dart.dynamic
-    })
-  });
-  convert.JsonCyclicError = class JsonCyclicError extends convert.JsonUnsupportedObjectError {
-    new(object) {
-      super.new(object);
-    }
-    toString() {
-      return "Cyclic error in JSON stringify";
-    }
-  };
-  dart.setSignature(convert.JsonCyclicError, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.JsonCyclicError, [core.Object])})
-  });
-  const _toEncodable = Symbol('_toEncodable');
-  let const$42;
-  let const$43;
-  convert.JsonCodec = class JsonCodec extends convert.Codec$(core.Object, core.String) {
-    new(opts) {
-      let reviver = opts && 'reviver' in opts ? opts.reviver : null;
-      let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
-      this[_reviver] = reviver;
-      this[_toEncodable] = toEncodable;
-      super.new();
-    }
-    withReviver(reviver) {
-      JsonCodec.prototype.new.call(this, {reviver: reviver});
-    }
-    decode(source, opts) {
-      let reviver = opts && 'reviver' in opts ? opts.reviver : null;
-      if (reviver == null) reviver = this[_reviver];
-      if (reviver == null) return this.decoder.convert(source);
-      return new convert.JsonDecoder(reviver).convert(source);
-    }
-    encode(value, opts) {
-      let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
-      if (toEncodable == null) toEncodable = this[_toEncodable];
-      if (toEncodable == null) return this.encoder.convert(value);
-      return new convert.JsonEncoder(toEncodable).convert(value);
-    }
-    get encoder() {
-      if (this[_toEncodable] == null) return const$42 || (const$42 = dart.const(new convert.JsonEncoder()));
-      return new convert.JsonEncoder(this[_toEncodable]);
-    }
-    get decoder() {
-      if (this[_reviver] == null) return const$43 || (const$43 = dart.const(new convert.JsonDecoder()));
-      return new convert.JsonDecoder(this[_reviver]);
-    }
-  };
-  dart.addSimpleTypeTests(convert.JsonCodec);
-  dart.defineNamedConstructor(convert.JsonCodec, 'withReviver');
-  dart.setSignature(convert.JsonCodec, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert.JsonCodec, [], {reviver: dynamicAnddynamicTodynamic(), toEncodable: dynamicTodynamic()}),
-      withReviver: dart.definiteFunctionType(convert.JsonCodec, [dynamicAnddynamicTodynamic()])
-    }),
-    fields: () => ({
-      [_reviver]: convert._Reviver,
-      [_toEncodable]: convert._ToEncodable
-    }),
+  }
+  dart.addTypeTests(SetMixin);
+  SetMixin[dart.implements] = () => [SetOfE()];
+  dart.setSignature(SetMixin, {
     getters: () => ({
-      encoder: dart.definiteFunctionType(convert.JsonEncoder, []),
-      decoder: dart.definiteFunctionType(convert.JsonDecoder, [])
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      single: dart.definiteFunctionType(E, []),
+      first: dart.definiteFunctionType(E, []),
+      last: dart.definiteFunctionType(E, [])
     }),
     methods: () => ({
-      decode: dart.definiteFunctionType(dart.dynamic, [core.String], {reviver: dynamicAnddynamicTodynamic()}),
-      encode: dart.definiteFunctionType(core.String, [core.Object], {toEncodable: dynamicTodynamic()})
+      clear: dart.definiteFunctionType(dart.void, []),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      removeAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
+      retainAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      containsAll: dart.definiteFunctionType(core.bool, [IterableOfObject()]),
+      union: dart.definiteFunctionType(core.Set$(E), [SetOfE()]),
+      intersection: dart.definiteFunctionType(core.Set$(E), [SetOfObject()]),
+      difference: dart.definiteFunctionType(core.Set$(E), [SetOfObject()]),
+      toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
+      map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
+      where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
+      forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
+      reduce: dart.definiteFunctionType(E, [EAndEToE()]),
+      fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
+      every: dart.definiteFunctionType(core.bool, [ETobool()]),
+      join: dart.definiteFunctionType(core.String, [], [core.String]),
+      any: dart.definiteFunctionType(core.bool, [ETobool()]),
+      take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      singleWhere: dart.definiteFunctionType(E, [ETobool()]),
+      elementAt: dart.definiteFunctionType(E, [core.int])
     })
   });
-  convert.JSON = dart.const(new convert.JsonCodec());
-  convert._Reviver = dart.typedef('_Reviver', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
-  convert._ToEncodable = dart.typedef('_ToEncodable', () => dart.functionType(dart.dynamic, [dart.dynamic]));
-  convert.JsonEncoder = class JsonEncoder extends convert.Converter$(core.Object, core.String) {
-    new(toEncodable) {
-      if (toEncodable === void 0) toEncodable = null;
-      this.indent = null;
-      this[_toEncodable] = toEncodable;
-      super.new();
+  dart.defineExtensionMembers(SetMixin, [
+    'toList',
+    'map',
+    'toString',
+    'where',
+    'expand',
+    'forEach',
+    'reduce',
+    'fold',
+    'every',
+    'join',
+    'any',
+    'take',
+    'takeWhile',
+    'skip',
+    'skipWhile',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'elementAt',
+    'isEmpty',
+    'isNotEmpty',
+    'single',
+    'first',
+    'last'
+  ]);
+  return SetMixin;
+});
+collection.SetMixin = SetMixin();
+collection.SetBase$ = dart.generic(E => {
+  class SetBase extends collection.SetMixin$(E) {
+    static setToString(set) {
+      return collection.IterableBase.iterableToFullString(set, '{', '}');
     }
-    withIndent(indent, toEncodable) {
-      if (toEncodable === void 0) toEncodable = null;
-      this.indent = indent;
-      this[_toEncodable] = toEncodable;
-      super.new();
-    }
-    convert(object) {
-      return convert._JsonStringStringifier.stringify(object, this[_toEncodable], this.indent);
-    }
-    startChunkedConversion(sink) {
-      if (!convert.StringConversionSink.is(sink)) {
-        sink = convert.StringConversionSink.from(sink);
-      } else if (convert._Utf8EncoderSink.is(sink)) {
-        return new convert._JsonUtf8EncoderSink(sink[_sink$], this[_toEncodable], convert.JsonUtf8Encoder._utf8Encode(this.indent), convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE);
-      }
-      return new convert._JsonEncoderSink(convert.StringConversionSink._check(sink), this[_toEncodable], this.indent);
-    }
-    bind(stream) {
-      return super.bind(stream);
-    }
-    fuse(T) {
-      return other => {
-        if (convert.Utf8Encoder.is(other)) {
-          return convert.Converter$(core.Object, T).as(new convert.JsonUtf8Encoder(this.indent, this[_toEncodable]));
-        }
-        return super.fuse(T)(other);
-      };
-    }
-  };
-  dart.addSimpleTypeTests(convert.JsonEncoder);
-  dart.defineNamedConstructor(convert.JsonEncoder, 'withIndent');
-  dart.setSignature(convert.JsonEncoder, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert.JsonEncoder, [], [dynamicTodynamic()]),
-      withIndent: dart.definiteFunctionType(convert.JsonEncoder, [core.String], [dynamicTodynamic()])
-    }),
-    fields: () => ({
-      indent: core.String,
-      [_toEncodable]: convert._ToEncodable
-    }),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.String, [core.Object]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ChunkedConversionSink$(core.Object), [SinkOfString()])
-    })
+  }
+  dart.setSignature(SetBase, {
+    statics: () => ({setToString: dart.definiteFunctionType(core.String, [core.Set])}),
+    names: ['setToString']
   });
-  const _indent = Symbol('_indent');
-  const _bufferSize = Symbol('_bufferSize');
-  convert.JsonUtf8Encoder = class JsonUtf8Encoder extends convert.Converter$(core.Object, core.List$(core.int)) {
-    new(indent, toEncodable, bufferSize) {
-      if (indent === void 0) indent = null;
-      if (toEncodable === void 0) toEncodable = null;
-      if (bufferSize === void 0) bufferSize = convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE;
-      this[_indent] = convert.JsonUtf8Encoder._utf8Encode(indent);
-      this[_toEncodable] = toEncodable;
-      this[_bufferSize] = bufferSize;
-      super.new();
-    }
-    static _utf8Encode(string) {
-      if (string == null) return null;
-      if (dart.test(string[dartx.isEmpty])) return typed_data.Uint8List.new(0);
-      checkAscii: {
-        for (let i = 0; i < dart.notNull(string[dartx.length]); i++) {
-          if (dart.notNull(string[dartx.codeUnitAt](i)) >= 128) break checkAscii;
-        }
-        return string[dartx.codeUnits];
-      }
-      return convert.UTF8.encode(string);
-    }
-    convert(object) {
-      let bytes = JSArrayOfListOfint().of([]);
-      function addChunk(chunk, start, end) {
-        if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk[dartx.length])) {
-          let length = dart.notNull(end) - dart.notNull(start);
-          chunk = typed_data.Uint8List.view(chunk[dartx.buffer], dart.notNull(chunk[dartx.offsetInBytes]) + dart.notNull(start), length);
-        }
-        bytes[dartx.add](chunk);
-      }
-      dart.fn(addChunk, Uint8ListAndintAndintTovoid$());
-      convert._JsonUtf8Stringifier.stringify(object, this[_indent], this[_toEncodable], this[_bufferSize], addChunk);
-      if (bytes[dartx.length] == 1) return bytes[dartx._get](0);
-      let length = 0;
-      for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
-        length = dart.notNull(length) + dart.notNull(bytes[dartx._get](i)[dartx.length]);
-      }
-      let result = typed_data.Uint8List.new(length);
-      for (let i = 0, offset = 0; i < dart.notNull(bytes[dartx.length]); i++) {
-        let byteList = bytes[dartx._get](i);
-        let end = offset + dart.notNull(byteList[dartx.length]);
-        result[dartx.setRange](offset, end, byteList);
-        offset = end;
+  return SetBase;
+});
+collection.SetBase = SetBase();
+collection._HashSetBase$ = dart.generic(E => {
+  class _HashSetBase extends collection.SetBase$(E) {
+    difference(other) {
+      let result = this[_newSet]();
+      for (let element of this) {
+        if (!dart.test(other.contains(element))) result.add(element);
       }
       return result;
     }
-    startChunkedConversion(sink) {
-      let byteSink = null;
-      if (convert.ByteConversionSink.is(sink)) {
-        byteSink = sink;
-      } else {
-        byteSink = convert.ByteConversionSink.from(sink);
+    intersection(other) {
+      let result = this[_newSet]();
+      for (let element of this) {
+        if (dart.test(other.contains(element))) result.add(element);
       }
-      return new convert._JsonUtf8EncoderSink(byteSink, this[_toEncodable], this[_indent], this[_bufferSize]);
+      return result;
     }
-    bind(stream) {
-      return super.bind(stream);
-    }
-  };
-  dart.addSimpleTypeTests(convert.JsonUtf8Encoder);
-  dart.setSignature(convert.JsonUtf8Encoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.JsonUtf8Encoder, [], [core.String, dynamicTodynamic(), core.int])}),
-    fields: () => ({
-      [_indent]: ListOfint(),
-      [_toEncodable]: convert._ToEncodable,
-      [_bufferSize]: core.int
-    }),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [core.Object]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ChunkedConversionSink$(core.Object), [SinkOfListOfint()])
-    }),
-    sfields: () => ({DEFAULT_BUFFER_SIZE: core.int}),
-    statics: () => ({_utf8Encode: dart.definiteFunctionType(core.List$(core.int), [core.String])}),
-    names: ['_utf8Encode']
-  });
-  convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE = 256;
-  const _isDone = Symbol('_isDone');
-  convert._JsonEncoderSink = class _JsonEncoderSink extends convert.ChunkedConversionSink$(core.Object) {
-    new(sink, toEncodable, indent) {
-      this[_sink$] = sink;
-      this[_toEncodable] = toEncodable;
-      this[_indent] = indent;
-      this[_isDone] = false;
-      super.new();
-    }
-    add(o) {
-      if (dart.test(this[_isDone])) {
-        dart.throw(new core.StateError("Only one call to add allowed"));
-      }
-      this[_isDone] = true;
-      let stringSink = this[_sink$].asStringSink();
-      convert._JsonStringStringifier.printOn(o, stringSink, this[_toEncodable], this[_indent]);
-      stringSink.close();
-    }
-    close() {}
-  };
-  dart.addSimpleTypeTests(convert._JsonEncoderSink);
-  dart.setSignature(convert._JsonEncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonEncoderSink, [convert.StringConversionSink, convert._ToEncodable, core.String])}),
-    fields: () => ({
-      [_indent]: core.String,
-      [_toEncodable]: convert._ToEncodable,
-      [_sink$]: convert.StringConversionSink,
-      [_isDone]: core.bool
-    }),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [core.Object]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _addChunk = Symbol('_addChunk');
-  convert._JsonUtf8EncoderSink = class _JsonUtf8EncoderSink extends convert.ChunkedConversionSink$(core.Object) {
-    new(sink, toEncodable, indent, bufferSize) {
-      this[_sink$] = sink;
-      this[_toEncodable] = toEncodable;
-      this[_indent] = indent;
-      this[_bufferSize] = bufferSize;
-      this[_isDone] = false;
-      super.new();
-    }
-    [_addChunk](chunk, start, end) {
-      this[_sink$].addSlice(chunk, start, end, false);
-    }
-    add(object) {
-      if (dart.test(this[_isDone])) {
-        dart.throw(new core.StateError("Only one call to add allowed"));
-      }
-      this[_isDone] = true;
-      convert._JsonUtf8Stringifier.stringify(object, this[_indent], this[_toEncodable], this[_bufferSize], dart.bind(this, _addChunk));
-      this[_sink$].close();
-    }
-    close() {
-      if (!dart.test(this[_isDone])) {
-        this[_isDone] = true;
-        this[_sink$].close();
-      }
-    }
-  };
-  dart.addSimpleTypeTests(convert._JsonUtf8EncoderSink);
-  dart.setSignature(convert._JsonUtf8EncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8EncoderSink, [convert.ByteConversionSink, convert._ToEncodable, ListOfint(), core.int])}),
-    fields: () => ({
-      [_sink$]: convert.ByteConversionSink,
-      [_indent]: ListOfint(),
-      [_toEncodable]: convert._ToEncodable,
-      [_bufferSize]: core.int,
-      [_isDone]: core.bool
-    }),
-    methods: () => ({
-      [_addChunk]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List, core.int, core.int]),
-      add: dart.definiteFunctionType(dart.void, [core.Object]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  convert.JsonDecoder = class JsonDecoder extends convert.Converter$(core.String, core.Object) {
-    new(reviver) {
-      if (reviver === void 0) reviver = null;
-      this[_reviver] = reviver;
-      super.new();
-    }
-    convert(input) {
-      return convert._parseJson(input, this[_reviver]);
-    }
-    startChunkedConversion(sink) {
-      return new convert._JsonDecoderSink(this[_reviver], sink);
-    }
-    bind(stream) {
-      return super.bind(stream);
-    }
-  };
-  dart.addSimpleTypeTests(convert.JsonDecoder);
-  dart.setSignature(convert.JsonDecoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.JsonDecoder, [], [dynamicAnddynamicTodynamic()])}),
-    fields: () => ({[_reviver]: convert._Reviver}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfObject()])
-    })
-  });
-  convert._parseJson = function(source, reviver) {
-    if (!(typeof source == 'string')) dart.throw(_js_helper.argumentErrorValue(source));
-    let parsed = null;
-    try {
-      parsed = JSON.parse(source);
-    } catch (e) {
-      dart.throw(new core.FormatException(String(e)));
-    }
-
-    if (reviver == null) {
-      return convert._convertJsonToDartLazy(parsed);
-    } else {
-      return convert._convertJsonToDart(parsed, reviver);
-    }
-  };
-  dart.fn(convert._parseJson, StringAndFnTodynamic());
-  convert._defaultToEncodable = function(object) {
-    return dart.dsend(object, 'toJson');
-  };
-  dart.fn(convert._defaultToEncodable, dynamicTodynamic$());
-  const _seen = Symbol('_seen');
-  const _checkCycle = Symbol('_checkCycle');
-  const _removeSeen = Symbol('_removeSeen');
-  convert._JsonStringifier = class _JsonStringifier extends core.Object {
-    new(toEncodable) {
-      this[_seen] = core.List.new();
-      this[_toEncodable] = (() => {
-        let l = toEncodable;
-        return l != null ? l : convert._defaultToEncodable;
+    toSet() {
+      return (() => {
+        let _ = this[_newSet]();
+        _.addAll(this);
+        return _;
       })();
     }
-    static hexDigit(x) {
-      return dart.notNull(x) < 10 ? 48 + dart.notNull(x) : 87 + dart.notNull(x);
+  }
+  dart.setSignature(_HashSetBase, {
+    methods: () => ({toSet: dart.definiteFunctionType(core.Set$(E), [])})
+  });
+  dart.defineExtensionMembers(_HashSetBase, ['toSet']);
+  return _HashSetBase;
+});
+collection._HashSetBase = _HashSetBase();
+collection._HashSet$ = dart.generic(E => {
+  let _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
+  let _HashSetIteratorOfE = () => (_HashSetIteratorOfE = dart.constFn(collection._HashSetIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
+  class _HashSet extends collection._HashSetBase$(E) {
+    new() {
+      this[_length$1] = 0;
+      this[_strings$] = null;
+      this[_nums$] = null;
+      this[_rest$] = null;
+      this[_elements] = null;
     }
-    writeStringContent(s) {
-      let offset = 0;
-      let length = s[dartx.length];
-      for (let i = 0; i < dart.notNull(length); i++) {
-        let charCode = s[dartx.codeUnitAt](i);
-        if (dart.notNull(charCode) > convert._JsonStringifier.BACKSLASH) continue;
-        if (dart.notNull(charCode) < 32) {
-          if (i > offset) this.writeStringSlice(s, offset, i);
-          offset = i + 1;
-          this.writeCharCode(convert._JsonStringifier.BACKSLASH);
-          switch (charCode) {
-            case convert._JsonStringifier.BACKSPACE:
-            {
-              this.writeCharCode(convert._JsonStringifier.CHAR_b);
-              break;
-            }
-            case convert._JsonStringifier.TAB:
-            {
-              this.writeCharCode(convert._JsonStringifier.CHAR_t);
-              break;
-            }
-            case convert._JsonStringifier.NEWLINE:
-            {
-              this.writeCharCode(convert._JsonStringifier.CHAR_n);
-              break;
-            }
-            case convert._JsonStringifier.FORM_FEED:
-            {
-              this.writeCharCode(convert._JsonStringifier.CHAR_f);
-              break;
-            }
-            case convert._JsonStringifier.CARRIAGE_RETURN:
-            {
-              this.writeCharCode(convert._JsonStringifier.CHAR_r);
-              break;
-            }
-            default:
-            {
-              this.writeCharCode(convert._JsonStringifier.CHAR_u);
-              this.writeCharCode(convert._JsonStringifier.CHAR_0);
-              this.writeCharCode(convert._JsonStringifier.CHAR_0);
-              this.writeCharCode(convert._JsonStringifier.hexDigit(dart.notNull(charCode) >> 4 & 15));
-              this.writeCharCode(convert._JsonStringifier.hexDigit(dart.notNull(charCode) & 15));
-              break;
-            }
+    [_newSet]() {
+      return new (_HashSetOfE())();
+    }
+    get iterator() {
+      return new (_HashSetIteratorOfE())(this, this[_computeElements]());
+    }
+    get length() {
+      return this[_length$1];
+    }
+    get isEmpty() {
+      return this[_length$1] == 0;
+    }
+    get isNotEmpty() {
+      return !dart.test(this.isEmpty);
+    }
+    contains(object) {
+      if (dart.test(collection._HashSet._isStringElement(object))) {
+        let strings = this[_strings$];
+        return strings == null ? false : collection._HashSet._hasTableEntry(strings, object);
+      } else if (dart.test(collection._HashSet._isNumericElement(object))) {
+        let nums = this[_nums$];
+        return nums == null ? false : collection._HashSet._hasTableEntry(nums, object);
+      } else {
+        return this[_contains](object);
+      }
+    }
+    [_contains](object) {
+      let rest = this[_rest$];
+      if (rest == null) return false;
+      let bucket = this[_getBucket$](rest, object);
+      return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
+    }
+    lookup(object) {
+      if (dart.test(collection._HashSet._isStringElement(object)) || dart.test(collection._HashSet._isNumericElement(object))) {
+        return E._check(dart.test(this.contains(object)) ? object : null);
+      }
+      return this[_lookup](object);
+    }
+    [_lookup](object) {
+      let rest = this[_rest$];
+      if (rest == null) return null;
+      let bucket = this[_getBucket$](rest, object);
+      let index = this[_findBucketIndex](bucket, object);
+      if (dart.notNull(index) < 0) return null;
+      return bucket[dartx._get](index);
+    }
+    add(element) {
+      E._check(element);
+      if (dart.test(collection._HashSet._isStringElement(element))) {
+        let strings = this[_strings$];
+        if (strings == null) this[_strings$] = strings = collection._HashSet._newHashTable();
+        return this[_addHashTableEntry$](strings, element);
+      } else if (dart.test(collection._HashSet._isNumericElement(element))) {
+        let nums = this[_nums$];
+        if (nums == null) this[_nums$] = nums = collection._HashSet._newHashTable();
+        return this[_addHashTableEntry$](nums, element);
+      } else {
+        return this[_add$0](element);
+      }
+    }
+    [_add$0](element) {
+      E._check(element);
+      let rest = this[_rest$];
+      if (rest == null) this[_rest$] = rest = collection._HashSet._newHashTable();
+      let hash = this[_computeHashCode](element);
+      let bucket = rest[hash];
+      if (bucket == null) {
+        collection._HashSet._setTableEntry(rest, hash, [element]);
+      } else {
+        let index = this[_findBucketIndex](bucket, element);
+        if (dart.notNull(index) >= 0) return false;
+        bucket.push(element);
+      }
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
+      this[_elements] = null;
+      return true;
+    }
+    addAll(objects) {
+      IterableOfE()._check(objects);
+      for (let each of objects) {
+        this.add(each);
+      }
+    }
+    remove(object) {
+      if (dart.test(collection._HashSet._isStringElement(object))) {
+        return this[_removeHashTableEntry$](this[_strings$], object);
+      } else if (dart.test(collection._HashSet._isNumericElement(object))) {
+        return this[_removeHashTableEntry$](this[_nums$], object);
+      } else {
+        return this[_remove](object);
+      }
+    }
+    [_remove](object) {
+      let rest = this[_rest$];
+      if (rest == null) return false;
+      let bucket = this[_getBucket$](rest, object);
+      let index = this[_findBucketIndex](bucket, object);
+      if (dart.notNull(index) < 0) return false;
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
+      this[_elements] = null;
+      bucket.splice(index, 1);
+      return true;
+    }
+    clear() {
+      if (dart.notNull(this[_length$1]) > 0) {
+        this[_strings$] = this[_nums$] = this[_rest$] = this[_elements] = null;
+        this[_length$1] = 0;
+      }
+    }
+    [_computeElements]() {
+      if (this[_elements] != null) return this[_elements];
+      let result = ListOfE().new(this[_length$1]);
+      let index = 0;
+      let strings = this[_strings$];
+      if (strings != null) {
+        let names = Object.getOwnPropertyNames(strings);
+        let entries = names.length;
+        for (let i = 0; i < entries; i++) {
+          let element = names[i];
+          result[index] = element;
+          index++;
+        }
+      }
+      let nums = this[_nums$];
+      if (nums != null) {
+        let names = Object.getOwnPropertyNames(nums);
+        let entries = names.length;
+        for (let i = 0; i < entries; i++) {
+          let element = +names[i];
+          result[index] = element;
+          index++;
+        }
+      }
+      let rest = this[_rest$];
+      if (rest != null) {
+        let names = Object.getOwnPropertyNames(rest);
+        let entries = names.length;
+        for (let i = 0; i < entries; i++) {
+          let entry = names[i];
+          let bucket = rest[entry];
+          let length = bucket.length;
+          for (let i = 0; i < length; i++) {
+            result[index] = bucket[i];
+            index++;
           }
-        } else if (charCode == convert._JsonStringifier.QUOTE || charCode == convert._JsonStringifier.BACKSLASH) {
-          if (i > offset) this.writeStringSlice(s, offset, i);
-          offset = i + 1;
-          this.writeCharCode(convert._JsonStringifier.BACKSLASH);
-          this.writeCharCode(charCode);
         }
       }
-      if (offset == 0) {
-        this.writeString(s);
-      } else if (offset < dart.notNull(length)) {
-        this.writeStringSlice(s, offset, length);
-      }
+      dart.assert(index == this[_length$1]);
+      return this[_elements] = result;
     }
-    [_checkCycle](object) {
-      for (let i = 0; i < dart.notNull(this[_seen][dartx.length]); i++) {
-        if (core.identical(object, this[_seen][dartx._get](i))) {
-          dart.throw(new convert.JsonCyclicError(object));
-        }
-      }
-      this[_seen][dartx.add](object);
+    [_addHashTableEntry$](table, element) {
+      E._check(element);
+      if (dart.test(collection._HashSet._hasTableEntry(table, element))) return false;
+      collection._HashSet._setTableEntry(table, element, 0);
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
+      this[_elements] = null;
+      return true;
     }
-    [_removeSeen](object) {
-      dart.assert(!dart.test(this[_seen][dartx.isEmpty]));
-      dart.assert(core.identical(this[_seen][dartx.last], object));
-      this[_seen][dartx.removeLast]();
-    }
-    writeObject(object) {
-      if (dart.test(this.writeJsonValue(object))) return;
-      this[_checkCycle](object);
-      try {
-        let customJson = dart.dcall(this[_toEncodable], object);
-        if (!dart.test(this.writeJsonValue(customJson))) {
-          dart.throw(new convert.JsonUnsupportedObjectError(object));
-        }
-        this[_removeSeen](object);
-      } catch (e) {
-        dart.throw(new convert.JsonUnsupportedObjectError(object, {cause: e}));
-      }
-
-    }
-    writeJsonValue(object) {
-      if (typeof object == 'number') {
-        if (!dart.test(object[dartx.isFinite])) return false;
-        this.writeNumber(object);
+    [_removeHashTableEntry$](table, element) {
+      if (table != null && dart.test(collection._HashSet._hasTableEntry(table, element))) {
+        collection._HashSet._deleteTableEntry(table, element);
+        this[_length$1] = dart.notNull(this[_length$1]) - 1;
+        this[_elements] = null;
         return true;
-      } else if (core.identical(object, true)) {
-        this.writeString('true');
-        return true;
-      } else if (core.identical(object, false)) {
-        this.writeString('false');
-        return true;
-      } else if (object == null) {
-        this.writeString('null');
-        return true;
-      } else if (typeof object == 'string') {
-        this.writeString('"');
-        this.writeStringContent(object);
-        this.writeString('"');
-        return true;
-      } else if (core.List.is(object)) {
-        this[_checkCycle](object);
-        this.writeList(object);
-        this[_removeSeen](object);
-        return true;
-      } else if (core.Map.is(object)) {
-        this[_checkCycle](object);
-        let success = this.writeMap(object);
-        this[_removeSeen](object);
-        return success;
       } else {
         return false;
       }
     }
-    writeList(list) {
-      this.writeString('[');
-      if (dart.notNull(list[dartx.length]) > 0) {
-        this.writeObject(list[dartx._get](0));
-        for (let i = 1; i < dart.notNull(list[dartx.length]); i++) {
-          this.writeString(',');
-          this.writeObject(list[dartx._get](i));
-        }
-      }
-      this.writeString(']');
+    static _isStringElement(element) {
+      return typeof element == 'string' && element != '__proto__';
     }
-    writeMap(map) {
-      if (dart.test(map[dartx.isEmpty])) {
-        this.writeString("{}");
-        return true;
-      }
-      let keyValueList = core.List.new(dart.notNull(map[dartx.length]) * 2);
-      let i = 0;
-      let allStringKeys = true;
-      map[dartx.forEach](dart.fn((key, value) => {
-        if (!(typeof key == 'string')) {
-          allStringKeys = false;
-        }
-        keyValueList[dartx._set](i++, key);
-        keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicToNull()));
-      if (!allStringKeys) return false;
-      this.writeString('{');
-      let separator = '"';
-      for (let i = 0; i < dart.notNull(keyValueList[dartx.length]); i = i + 2) {
-        this.writeString(separator);
-        separator = ',"';
-        this.writeStringContent(core.String._check(keyValueList[dartx._get](i)));
-        this.writeString('":');
-        this.writeObject(keyValueList[dartx._get](i + 1));
-      }
-      this.writeString('}');
-      return true;
+    static _isNumericElement(element) {
+      return typeof element == 'number' && (element & 0x3ffffff) === element;
     }
-  };
-  dart.setSignature(convert._JsonStringifier, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringifier, [dynamicTodynamic()])}),
+    [_computeHashCode](element) {
+      return dart.hashCode(element) & 0x3ffffff;
+    }
+    static _hasTableEntry(table, key) {
+      let entry = table[key];
+      return entry != null;
+    }
+    static _setTableEntry(table, key, value) {
+      dart.assert(value != null);
+      table[key] = value;
+    }
+    static _deleteTableEntry(table, key) {
+      delete table[key];
+    }
+    [_getBucket$](table, element) {
+      let hash = this[_computeHashCode](element);
+      return table[hash];
+    }
+    [_findBucketIndex](bucket, element) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        if (dart.equals(bucket[i], element)) return i;
+      }
+      return -1;
+    }
+    static _newHashTable() {
+      let table = Object.create(null);
+      let temporaryKey = '<non-identifier-key>';
+      collection._HashSet._setTableEntry(table, temporaryKey, table);
+      collection._HashSet._deleteTableEntry(table, temporaryKey);
+      return table;
+    }
+  }
+  _HashSet[dart.implements] = () => [HashSetOfE()];
+  dart.setSignature(_HashSet, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._HashSet$(E), [])}),
     fields: () => ({
-      [_seen]: core.List,
-      [_toEncodable]: convert._ToEncodable
+      [_length$1]: core.int,
+      [_strings$]: dart.dynamic,
+      [_nums$]: dart.dynamic,
+      [_rest$]: dart.dynamic,
+      [_elements]: ListOfE()
+    }),
+    getters: () => ({
+      iterator: dart.definiteFunctionType(core.Iterator$(E), []),
+      length: dart.definiteFunctionType(core.int, [])
     }),
     methods: () => ({
-      writeStringContent: dart.definiteFunctionType(dart.void, [core.String]),
-      [_checkCycle]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_removeSeen]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      writeObject: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      writeJsonValue: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      writeList: dart.definiteFunctionType(dart.void, [core.List]),
-      writeMap: dart.definiteFunctionType(core.bool, [core.Map])
+      [_newSet]: dart.definiteFunctionType(core.Set$(E), []),
+      contains: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_contains]: dart.definiteFunctionType(core.bool, [core.Object]),
+      lookup: dart.definiteFunctionType(E, [core.Object]),
+      [_lookup]: dart.definiteFunctionType(E, [core.Object]),
+      add: dart.definiteFunctionType(core.bool, [E]),
+      [_add$0]: dart.definiteFunctionType(core.bool, [E]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_remove]: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_computeElements]: dart.definiteFunctionType(core.List$(E), []),
+      [_addHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
+      [_removeHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
+      [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
+      [_getBucket$]: dart.definiteFunctionType(core.List$(E), [dart.dynamic, dart.dynamic]),
+      [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])
     }),
-    sfields: () => ({
-      BACKSPACE: core.int,
-      TAB: core.int,
-      NEWLINE: core.int,
-      CARRIAGE_RETURN: core.int,
-      FORM_FEED: core.int,
-      QUOTE: core.int,
-      CHAR_0: core.int,
-      BACKSLASH: core.int,
-      CHAR_b: core.int,
-      CHAR_f: core.int,
-      CHAR_n: core.int,
-      CHAR_r: core.int,
-      CHAR_t: core.int,
-      CHAR_u: core.int
+    statics: () => ({
+      _isStringElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _isNumericElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _hasTableEntry: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+      _setTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+      _deleteTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+      _newHashTable: dart.definiteFunctionType(dart.dynamic, [])
     }),
-    statics: () => ({hexDigit: dart.definiteFunctionType(core.int, [core.int])}),
-    names: ['hexDigit']
+    names: ['_isStringElement', '_isNumericElement', '_hasTableEntry', '_setTableEntry', '_deleteTableEntry', '_newHashTable']
   });
-  convert._JsonStringifier.BACKSPACE = 8;
-  convert._JsonStringifier.TAB = 9;
-  convert._JsonStringifier.NEWLINE = 10;
-  convert._JsonStringifier.CARRIAGE_RETURN = 13;
-  convert._JsonStringifier.FORM_FEED = 12;
-  convert._JsonStringifier.QUOTE = 34;
-  convert._JsonStringifier.CHAR_0 = 48;
-  convert._JsonStringifier.BACKSLASH = 92;
-  convert._JsonStringifier.CHAR_b = 98;
-  convert._JsonStringifier.CHAR_f = 102;
-  convert._JsonStringifier.CHAR_n = 110;
-  convert._JsonStringifier.CHAR_r = 114;
-  convert._JsonStringifier.CHAR_t = 116;
-  convert._JsonStringifier.CHAR_u = 117;
-  const _indentLevel = Symbol('_indentLevel');
-  convert._JsonPrettyPrintMixin = class _JsonPrettyPrintMixin extends core.Object {
+  dart.defineExtensionMembers(_HashSet, [
+    'contains',
+    'iterator',
+    'length',
+    'isEmpty',
+    'isNotEmpty'
+  ]);
+  return _HashSet;
+});
+collection._HashSet = _HashSet();
+collection._IdentityHashSet$ = dart.generic(E => {
+  let _IdentityHashSetOfE = () => (_IdentityHashSetOfE = dart.constFn(collection._IdentityHashSet$(E)))();
+  class _IdentityHashSet extends collection._HashSet$(E) {
     new() {
-      this[_indentLevel] = 0;
+      super.new();
     }
-    writeList(list) {
-      if (dart.test(list[dartx.isEmpty])) {
-        this.writeString('[]');
-      } else {
-        this.writeString('[\n');
-        this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
-        this.writeIndentation(this[_indentLevel]);
-        this.writeObject(list[dartx._get](0));
-        for (let i = 1; i < dart.notNull(list[dartx.length]); i++) {
-          this.writeString(',\n');
-          this.writeIndentation(this[_indentLevel]);
-          this.writeObject(list[dartx._get](i));
-        }
-        this.writeString('\n');
-        this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1;
-        this.writeIndentation(this[_indentLevel]);
-        this.writeString(']');
+    [_newSet]() {
+      return new (_IdentityHashSetOfE())();
+    }
+    [_computeHashCode](key) {
+      return core.identityHashCode(key) & 0x3ffffff;
+    }
+    [_findBucketIndex](bucket, element) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        if (core.identical(bucket[i], element)) return i;
       }
+      return -1;
     }
-    writeMap(map) {
-      if (dart.test(map[dartx.isEmpty])) {
-        this.writeString("{}");
+  }
+  return _IdentityHashSet;
+});
+collection._IdentityHashSet = _IdentityHashSet();
+const _equality = Symbol('_equality');
+const _hasher = Symbol('_hasher');
+collection._CustomHashSet$ = dart.generic(E => {
+  let _CustomHashSetOfE = () => (_CustomHashSetOfE = dart.constFn(collection._CustomHashSet$(E)))();
+  let _EqualityOfE = () => (_EqualityOfE = dart.constFn(collection._Equality$(E)))();
+  let _HasherOfE = () => (_HasherOfE = dart.constFn(collection._Hasher$(E)))();
+  class _CustomHashSet extends collection._HashSet$(E) {
+    new(equality, hasher, validKey) {
+      this[_equality] = equality;
+      this[_hasher] = hasher;
+      this[_validKey] = validKey != null ? validKey : dart.fn(x => E.is(x), ObjectTobool());
+      super.new();
+    }
+    [_newSet]() {
+      return new (_CustomHashSetOfE())(this[_equality], this[_hasher], this[_validKey]);
+    }
+    [_findBucketIndex](bucket, element) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        if (dart.test(this[_equality](bucket[i], E._check(element)))) return i;
+      }
+      return -1;
+    }
+    [_computeHashCode](element) {
+      return this[_hasher](E._check(element)) & 0x3ffffff;
+    }
+    add(object) {
+      E._check(object);
+      return super[_add$0](object);
+    }
+    contains(object) {
+      if (!dart.test(this[_validKey](object))) return false;
+      return super[_contains](object);
+    }
+    lookup(object) {
+      if (!dart.test(this[_validKey](object))) return null;
+      return super[_lookup](object);
+    }
+    remove(object) {
+      if (!dart.test(this[_validKey](object))) return false;
+      return super[_remove](object);
+    }
+  }
+  dart.setSignature(_CustomHashSet, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._CustomHashSet$(E), [_EqualityOfE(), _HasherOfE(), _PredicateOfObject()])}),
+    fields: () => ({
+      [_equality]: _EqualityOfE(),
+      [_hasher]: _HasherOfE(),
+      [_validKey]: _PredicateOfObject()
+    })
+  });
+  dart.defineExtensionMembers(_CustomHashSet, ['contains']);
+  return _CustomHashSet;
+});
+collection._CustomHashSet = _CustomHashSet();
+collection._HashSetIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  class _HashSetIterator extends core.Object {
+    new(set, elements) {
+      this[_set] = set;
+      this[_elements] = elements;
+      this[_offset] = 0;
+      this[_current$2] = null;
+    }
+    get current() {
+      return this[_current$2];
+    }
+    moveNext() {
+      let elements = this[_elements];
+      let offset = this[_offset];
+      if (elements !== dart.dload(this[_set], _elements)) {
+        dart.throw(new core.ConcurrentModificationError(this[_set]));
+      } else if (dart.notNull(offset) >= elements.length) {
+        this[_current$2] = null;
+        return false;
+      } else {
+        this[_current$2] = elements[offset];
+        this[_offset] = dart.notNull(offset) + 1;
         return true;
       }
-      let keyValueList = core.List.new(dart.notNull(map[dartx.length]) * 2);
-      let i = 0;
-      let allStringKeys = true;
-      map[dartx.forEach](dart.fn((key, value) => {
-        if (!(typeof key == 'string')) {
-          allStringKeys = false;
+    }
+  }
+  dart.addTypeTests(_HashSetIterator);
+  _HashSetIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_HashSetIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._HashSetIterator$(E), [dart.dynamic, ListOfE()])}),
+    fields: () => ({
+      [_set]: dart.dynamic,
+      [_elements]: ListOfE(),
+      [_offset]: core.int,
+      [_current$2]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _HashSetIterator;
+});
+collection._HashSetIterator = _HashSetIterator();
+const _first$ = Symbol('_first');
+const _last$ = Symbol('_last');
+const _unsupported = Symbol('_unsupported');
+const _getTableEntry = Symbol('_getTableEntry');
+const _element = Symbol('_element');
+const _newLinkedCell$ = Symbol('_newLinkedCell');
+const _unlinkCell$ = Symbol('_unlinkCell');
+const _filterWhere = Symbol('_filterWhere');
+const _previous$0 = Symbol('_previous');
+collection._LinkedHashSet$ = dart.generic(E => {
+  let _LinkedHashSetOfE = () => (_LinkedHashSetOfE = dart.constFn(collection._LinkedHashSet$(E)))();
+  let _LinkedHashSetIteratorOfE = () => (_LinkedHashSetIteratorOfE = dart.constFn(collection._LinkedHashSetIterator$(E)))();
+  let _LinkedHashSetCellOfE = () => (_LinkedHashSetCellOfE = dart.constFn(collection._LinkedHashSetCell$(E)))();
+  let LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  class _LinkedHashSet extends collection._HashSetBase$(E) {
+    new() {
+      this[_length$1] = 0;
+      this[_strings$] = null;
+      this[_nums$] = null;
+      this[_rest$] = null;
+      this[_first$] = null;
+      this[_last$] = null;
+      this[_modifications$] = 0;
+    }
+    [_newSet]() {
+      return new (_LinkedHashSetOfE())();
+    }
+    [_unsupported](operation) {
+      dart.throw(dart.str`LinkedHashSet: unsupported ${operation}`);
+    }
+    get iterator() {
+      return new (_LinkedHashSetIteratorOfE())(this, this[_modifications$]);
+    }
+    get length() {
+      return this[_length$1];
+    }
+    get isEmpty() {
+      return this[_length$1] == 0;
+    }
+    get isNotEmpty() {
+      return !dart.test(this.isEmpty);
+    }
+    contains(object) {
+      if (dart.test(collection._LinkedHashSet._isStringElement(object))) {
+        let strings = this[_strings$];
+        if (strings == null) return false;
+        let cell = this[_getTableEntry](strings, object);
+        return cell != null;
+      } else if (dart.test(collection._LinkedHashSet._isNumericElement(object))) {
+        let nums = this[_nums$];
+        if (nums == null) return false;
+        let cell = this[_getTableEntry](nums, object);
+        return cell != null;
+      } else {
+        return this[_contains](object);
+      }
+    }
+    [_contains](object) {
+      let rest = this[_rest$];
+      if (rest == null) return false;
+      let bucket = this[_getBucket$](rest, object);
+      return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
+    }
+    lookup(object) {
+      if (dart.test(collection._LinkedHashSet._isStringElement(object)) || dart.test(collection._LinkedHashSet._isNumericElement(object))) {
+        return E._check(dart.test(this.contains(object)) ? object : null);
+      } else {
+        return this[_lookup](object);
+      }
+    }
+    [_lookup](object) {
+      let rest = this[_rest$];
+      if (rest == null) return null;
+      let bucket = this[_getBucket$](rest, object);
+      let index = this[_findBucketIndex](bucket, object);
+      if (dart.notNull(index) < 0) return null;
+      return bucket[dartx._get](index)[_element];
+    }
+    forEach(action) {
+      let cell = this[_first$];
+      let modifications = this[_modifications$];
+      while (cell != null) {
+        action(cell[_element]);
+        if (modifications != this[_modifications$]) {
+          dart.throw(new core.ConcurrentModificationError(this));
         }
-        keyValueList[dartx._set](i++, key);
-        keyValueList[dartx._set](i++, value);
+        cell = cell[_next$0];
+      }
+    }
+    get first() {
+      if (this[_first$] == null) dart.throw(new core.StateError("No elements"));
+      return this[_first$][_element];
+    }
+    get last() {
+      if (this[_last$] == null) dart.throw(new core.StateError("No elements"));
+      return this[_last$][_element];
+    }
+    add(element) {
+      E._check(element);
+      if (dart.test(collection._LinkedHashSet._isStringElement(element))) {
+        let strings = this[_strings$];
+        if (strings == null) this[_strings$] = strings = collection._LinkedHashSet._newHashTable();
+        return this[_addHashTableEntry$](strings, element);
+      } else if (dart.test(collection._LinkedHashSet._isNumericElement(element))) {
+        let nums = this[_nums$];
+        if (nums == null) this[_nums$] = nums = collection._LinkedHashSet._newHashTable();
+        return this[_addHashTableEntry$](nums, element);
+      } else {
+        return this[_add$0](element);
+      }
+    }
+    [_add$0](element) {
+      E._check(element);
+      let rest = this[_rest$];
+      if (rest == null) this[_rest$] = rest = collection._LinkedHashSet._newHashTable();
+      let hash = this[_computeHashCode](element);
+      let bucket = rest[hash];
+      if (bucket == null) {
+        let cell = this[_newLinkedCell$](element);
+        collection._LinkedHashSet._setTableEntry(rest, hash, [cell]);
+      } else {
+        let index = this[_findBucketIndex](bucket, element);
+        if (dart.notNull(index) >= 0) return false;
+        let cell = this[_newLinkedCell$](element);
+        bucket.push(cell);
+      }
+      return true;
+    }
+    remove(object) {
+      if (dart.test(collection._LinkedHashSet._isStringElement(object))) {
+        return this[_removeHashTableEntry$](this[_strings$], object);
+      } else if (dart.test(collection._LinkedHashSet._isNumericElement(object))) {
+        return this[_removeHashTableEntry$](this[_nums$], object);
+      } else {
+        return this[_remove](object);
+      }
+    }
+    [_remove](object) {
+      let rest = this[_rest$];
+      if (rest == null) return false;
+      let bucket = this[_getBucket$](rest, object);
+      let index = this[_findBucketIndex](bucket, object);
+      if (dart.notNull(index) < 0) return false;
+      let cell = bucket.splice(index, 1)[0];
+      this[_unlinkCell$](cell);
+      return true;
+    }
+    removeWhere(test) {
+      this[_filterWhere](test, true);
+    }
+    retainWhere(test) {
+      this[_filterWhere](test, false);
+    }
+    [_filterWhere](test, removeMatching) {
+      let cell = this[_first$];
+      while (cell != null) {
+        let element = cell[_element];
+        let next = cell[_next$0];
+        let modifications = this[_modifications$];
+        let shouldRemove = removeMatching == test(element);
+        if (modifications != this[_modifications$]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+        if (shouldRemove) this.remove(element);
+        cell = next;
+      }
+    }
+    clear() {
+      if (dart.notNull(this[_length$1]) > 0) {
+        this[_strings$] = this[_nums$] = this[_rest$] = this[_first$] = this[_last$] = null;
+        this[_length$1] = 0;
+        this[_modified$]();
+      }
+    }
+    [_addHashTableEntry$](table, element) {
+      E._check(element);
+      let cell = this[_getTableEntry](table, element);
+      if (cell != null) return false;
+      collection._LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell$](element));
+      return true;
+    }
+    [_removeHashTableEntry$](table, element) {
+      if (table == null) return false;
+      let cell = this[_getTableEntry](table, element);
+      if (cell == null) return false;
+      this[_unlinkCell$](cell);
+      collection._LinkedHashSet._deleteTableEntry(table, element);
+      return true;
+    }
+    [_modified$]() {
+      this[_modifications$] = dart.notNull(this[_modifications$]) + 1 & 67108863;
+    }
+    [_newLinkedCell$](element) {
+      E._check(element);
+      let cell = new (_LinkedHashSetCellOfE())(element);
+      if (this[_first$] == null) {
+        this[_first$] = this[_last$] = cell;
+      } else {
+        let last = this[_last$];
+        cell[_previous$0] = last;
+        this[_last$] = last[_next$0] = cell;
+      }
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
+      this[_modified$]();
+      return cell;
+    }
+    [_unlinkCell$](cell) {
+      _LinkedHashSetCellOfE()._check(cell);
+      let previous = cell[_previous$0];
+      let next = cell[_next$0];
+      if (previous == null) {
+        dart.assert(dart.equals(cell, this[_first$]));
+        this[_first$] = next;
+      } else {
+        previous[_next$0] = next;
+      }
+      if (next == null) {
+        dart.assert(dart.equals(cell, this[_last$]));
+        this[_last$] = previous;
+      } else {
+        next[_previous$0] = previous;
+      }
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
+      this[_modified$]();
+    }
+    static _isStringElement(element) {
+      return typeof element == 'string' && element != '__proto__';
+    }
+    static _isNumericElement(element) {
+      return typeof element == 'number' && (element & 0x3ffffff) === element;
+    }
+    [_computeHashCode](element) {
+      return dart.hashCode(element) & 0x3ffffff;
+    }
+    [_getTableEntry](table, key) {
+      return table[key];
+    }
+    static _setTableEntry(table, key, value) {
+      dart.assert(value != null);
+      table[key] = value;
+    }
+    static _deleteTableEntry(table, key) {
+      delete table[key];
+    }
+    [_getBucket$](table, element) {
+      let hash = this[_computeHashCode](element);
+      return table[hash];
+    }
+    [_findBucketIndex](bucket, element) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        let cell = bucket[i];
+        if (dart.equals(cell[_element], element)) return i;
+      }
+      return -1;
+    }
+    static _newHashTable() {
+      let table = Object.create(null);
+      let temporaryKey = '<non-identifier-key>';
+      collection._LinkedHashSet._setTableEntry(table, temporaryKey, table);
+      collection._LinkedHashSet._deleteTableEntry(table, temporaryKey);
+      return table;
+    }
+  }
+  _LinkedHashSet[dart.implements] = () => [LinkedHashSetOfE()];
+  dart.setSignature(_LinkedHashSet, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSet$(E), [])}),
+    fields: () => ({
+      [_length$1]: core.int,
+      [_strings$]: dart.dynamic,
+      [_nums$]: dart.dynamic,
+      [_rest$]: dart.dynamic,
+      [_first$]: _LinkedHashSetCellOfE(),
+      [_last$]: _LinkedHashSetCellOfE(),
+      [_modifications$]: core.int
+    }),
+    getters: () => ({
+      iterator: dart.definiteFunctionType(core.Iterator$(E), []),
+      length: dart.definiteFunctionType(core.int, [])
+    }),
+    methods: () => ({
+      [_newSet]: dart.definiteFunctionType(core.Set$(E), []),
+      [_unsupported]: dart.definiteFunctionType(dart.void, [core.String]),
+      contains: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_contains]: dart.definiteFunctionType(core.bool, [core.Object]),
+      lookup: dart.definiteFunctionType(E, [core.Object]),
+      [_lookup]: dart.definiteFunctionType(E, [core.Object]),
+      add: dart.definiteFunctionType(core.bool, [E]),
+      [_add$0]: dart.definiteFunctionType(core.bool, [E]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_remove]: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_filterWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
+      [_addHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
+      [_removeHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
+      [_modified$]: dart.definiteFunctionType(dart.void, []),
+      [_newLinkedCell$]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E]),
+      [_unlinkCell$]: dart.definiteFunctionType(dart.void, [_LinkedHashSetCellOfE()]),
+      [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
+      [_getTableEntry]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [dart.dynamic, dart.dynamic]),
+      [_getBucket$]: dart.definiteFunctionType(core.List$(collection._LinkedHashSetCell$(E)), [dart.dynamic, dart.dynamic]),
+      [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])
+    }),
+    statics: () => ({
+      _isStringElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _isNumericElement: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+      _setTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+      _deleteTableEntry: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+      _newHashTable: dart.definiteFunctionType(dart.dynamic, [])
+    }),
+    names: ['_isStringElement', '_isNumericElement', '_setTableEntry', '_deleteTableEntry', '_newHashTable']
+  });
+  dart.defineExtensionMembers(_LinkedHashSet, [
+    'contains',
+    'forEach',
+    'iterator',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'last'
+  ]);
+  return _LinkedHashSet;
+});
+collection._LinkedHashSet = _LinkedHashSet();
+collection._LinkedIdentityHashSet$ = dart.generic(E => {
+  let _LinkedIdentityHashSetOfE = () => (_LinkedIdentityHashSetOfE = dart.constFn(collection._LinkedIdentityHashSet$(E)))();
+  class _LinkedIdentityHashSet extends collection._LinkedHashSet$(E) {
+    new() {
+      super.new();
+    }
+    [_newSet]() {
+      return new (_LinkedIdentityHashSetOfE())();
+    }
+    [_computeHashCode](key) {
+      return core.identityHashCode(key) & 0x3ffffff;
+    }
+    [_findBucketIndex](bucket, element) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        let cell = bucket[i];
+        if (core.identical(cell[_element], element)) return i;
+      }
+      return -1;
+    }
+  }
+  return _LinkedIdentityHashSet;
+});
+collection._LinkedIdentityHashSet = _LinkedIdentityHashSet();
+collection._LinkedCustomHashSet$ = dart.generic(E => {
+  let _LinkedCustomHashSetOfE = () => (_LinkedCustomHashSetOfE = dart.constFn(collection._LinkedCustomHashSet$(E)))();
+  let _EqualityOfE = () => (_EqualityOfE = dart.constFn(collection._Equality$(E)))();
+  let _HasherOfE = () => (_HasherOfE = dart.constFn(collection._Hasher$(E)))();
+  class _LinkedCustomHashSet extends collection._LinkedHashSet$(E) {
+    new(equality, hasher, validKey) {
+      this[_equality] = equality;
+      this[_hasher] = hasher;
+      this[_validKey] = validKey != null ? validKey : dart.fn(x => E.is(x), ObjectTobool());
+      super.new();
+    }
+    [_newSet]() {
+      return new (_LinkedCustomHashSetOfE())(this[_equality], this[_hasher], this[_validKey]);
+    }
+    [_findBucketIndex](bucket, element) {
+      if (bucket == null) return -1;
+      let length = bucket.length;
+      for (let i = 0; i < length; i++) {
+        let cell = bucket[i];
+        if (dart.test(this[_equality](cell[_element], E._check(element)))) return i;
+      }
+      return -1;
+    }
+    [_computeHashCode](element) {
+      return this[_hasher](E._check(element)) & 0x3ffffff;
+    }
+    add(element) {
+      E._check(element);
+      return super[_add$0](element);
+    }
+    contains(object) {
+      if (!dart.test(this[_validKey](object))) return false;
+      return super[_contains](object);
+    }
+    lookup(object) {
+      if (!dart.test(this[_validKey](object))) return null;
+      return super[_lookup](object);
+    }
+    remove(object) {
+      if (!dart.test(this[_validKey](object))) return false;
+      return super[_remove](object);
+    }
+    containsAll(elements) {
+      for (let element of elements) {
+        if (!dart.test(this[_validKey](element)) || !dart.test(this.contains(element))) return false;
+      }
+      return true;
+    }
+    removeAll(elements) {
+      for (let element of elements) {
+        if (dart.test(this[_validKey](element))) {
+          super[_remove](element);
+        }
+      }
+    }
+  }
+  dart.setSignature(_LinkedCustomHashSet, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._LinkedCustomHashSet$(E), [_EqualityOfE(), _HasherOfE(), _PredicateOfObject()])}),
+    fields: () => ({
+      [_equality]: _EqualityOfE(),
+      [_hasher]: _HasherOfE(),
+      [_validKey]: _PredicateOfObject()
+    })
+  });
+  dart.defineExtensionMembers(_LinkedCustomHashSet, ['contains']);
+  return _LinkedCustomHashSet;
+});
+collection._LinkedCustomHashSet = _LinkedCustomHashSet();
+collection._LinkedHashSetCell$ = dart.generic(E => {
+  let _LinkedHashSetCellOfE = () => (_LinkedHashSetCellOfE = dart.constFn(collection._LinkedHashSetCell$(E)))();
+  class _LinkedHashSetCell extends core.Object {
+    new(element) {
+      this[_element] = element;
+      this[_next$0] = null;
+      this[_previous$0] = null;
+    }
+  }
+  dart.addTypeTests(_LinkedHashSetCell);
+  dart.setSignature(_LinkedHashSetCell, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E])}),
+    fields: () => ({
+      [_element]: E,
+      [_next$0]: _LinkedHashSetCellOfE(),
+      [_previous$0]: _LinkedHashSetCellOfE()
+    })
+  });
+  return _LinkedHashSetCell;
+});
+collection._LinkedHashSetCell = _LinkedHashSetCell();
+const _cell$ = Symbol('_cell');
+collection._LinkedHashSetIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class _LinkedHashSetIterator extends core.Object {
+    new(set, modifications) {
+      this[_set] = set;
+      this[_modifications$] = modifications;
+      this[_cell$] = null;
+      this[_current$2] = null;
+      this[_cell$] = this[_set][_first$];
+    }
+    get current() {
+      return this[_current$2];
+    }
+    moveNext() {
+      if (this[_modifications$] != this[_set][_modifications$]) {
+        dart.throw(new core.ConcurrentModificationError(this[_set]));
+      } else if (this[_cell$] == null) {
+        this[_current$2] = null;
+        return false;
+      } else {
+        this[_current$2] = E._check(this[_cell$][_element]);
+        this[_cell$] = this[_cell$][_next$0];
+        return true;
+      }
+    }
+  }
+  dart.addTypeTests(_LinkedHashSetIterator);
+  _LinkedHashSetIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_LinkedHashSetIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSetIterator$(E), [collection._LinkedHashSet, core.int])}),
+    fields: () => ({
+      [_set]: collection._LinkedHashSet,
+      [_modifications$]: core.int,
+      [_cell$]: collection._LinkedHashSetCell,
+      [_current$2]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _LinkedHashSetIterator;
+});
+collection._LinkedHashSetIterator = _LinkedHashSetIterator();
+const _source$0 = Symbol('_source');
+collection.UnmodifiableListView$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
+    new(source) {
+      this[_source$0] = source;
+    }
+    get length() {
+      return this[_source$0][dartx.length];
+    }
+    set length(value) {
+      super.length = value;
+    }
+    _get(index) {
+      return this[_source$0][dartx.elementAt](index);
+    }
+  }
+  dart.setSignature(UnmodifiableListView, {
+    constructors: () => ({new: dart.definiteFunctionType(collection.UnmodifiableListView$(E), [IterableOfE()])}),
+    fields: () => ({[_source$0]: IterableOfE()}),
+    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
+    methods: () => ({_get: dart.definiteFunctionType(E, [core.int])})
+  });
+  dart.defineExtensionMembers(UnmodifiableListView, ['_get', 'length']);
+  return UnmodifiableListView;
+});
+collection.UnmodifiableListView = UnmodifiableListView();
+collection._defaultEquals = function(a, b) {
+  return dart.equals(a, b);
+};
+dart.lazyFn(collection._defaultEquals, () => dynamicAnddynamicTobool());
+collection._defaultHashCode = function(a) {
+  return dart.hashCode(a);
+};
+dart.fn(collection._defaultHashCode, dynamicToint());
+collection._Equality$ = dart.generic(K => {
+  const _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [K, K]));
+  return _Equality;
+});
+collection._Equality = _Equality$();
+collection._Hasher$ = dart.generic(K => {
+  const _Hasher = dart.typedef('_Hasher', () => dart.functionType(core.int, [K]));
+  return _Hasher;
+});
+collection._Hasher = _Hasher();
+collection.HashMap$ = dart.generic((K, V) => {
+  let _HashMapOfK$V = () => (_HashMapOfK$V = dart.constFn(collection._HashMap$(K, V)))();
+  let _IdentityHashMapOfK$V = () => (_IdentityHashMapOfK$V = dart.constFn(collection._IdentityHashMap$(K, V)))();
+  let _CustomHashMapOfK$V = () => (_CustomHashMapOfK$V = dart.constFn(collection._CustomHashMap$(K, V)))();
+  let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let KAndKTobool = () => (KAndKTobool = dart.constFn(dart.functionType(core.bool, [K, K])))();
+  let KToint = () => (KToint = dart.constFn(dart.functionType(core.int, [K])))();
+  let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
+  let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
+  let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
+  let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
+  class HashMap extends core.Object {
+    static new(opts) {
+      let equals = opts && 'equals' in opts ? opts.equals : null;
+      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
+      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
+      if (isValidKey == null) {
+        if (hashCode == null) {
+          if (equals == null) {
+            return new (_HashMapOfK$V())();
+          }
+          hashCode = collection._defaultHashCode;
+        } else {
+          if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
+            return new (_IdentityHashMapOfK$V())();
+          }
+          if (equals == null) {
+            equals = collection._defaultEquals;
+          }
+        }
+      } else {
+        if (hashCode == null) {
+          hashCode = collection._defaultHashCode;
+        }
+        if (equals == null) {
+          equals = collection._defaultEquals;
+        }
+      }
+      return new (_CustomHashMapOfK$V())(equals, hashCode, isValidKey);
+    }
+    static identity() {
+      return new (_IdentityHashMapOfK$V())();
+    }
+    static from(other) {
+      let result = HashMapOfK$V().new();
+      other[dartx.forEach](dart.fn((k, v) => {
+        result._set(K.as(k), V.as(v));
       }, dynamicAnddynamicToNull()));
-      if (!allStringKeys) return false;
-      this.writeString('{\n');
+      return result;
+    }
+    static fromIterable(iterable, opts) {
+      let key = opts && 'key' in opts ? opts.key : null;
+      let value = opts && 'value' in opts ? opts.value : null;
+      let map = HashMapOfK$V().new();
+      collection.Maps._fillMapWithMappedIterable(map, iterable, key, value);
+      return map;
+    }
+    static fromIterables(keys, values) {
+      let map = HashMapOfK$V().new();
+      collection.Maps._fillMapWithIterables(map, keys, values);
+      return map;
+    }
+  }
+  dart.addTypeTests(HashMap);
+  HashMap[dart.implements] = () => [MapOfK$V()];
+  dart.setSignature(HashMap, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.HashMap$(K, V), [], {equals: KAndKTobool(), hashCode: KToint(), isValidKey: _PredicateOfObject()}),
+      identity: dart.definiteFunctionType(collection.HashMap$(K, V), []),
+      from: dart.definiteFunctionType(collection.HashMap$(K, V), [core.Map]),
+      fromIterable: dart.definiteFunctionType(collection.HashMap$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV()}),
+      fromIterables: dart.definiteFunctionType(collection.HashMap$(K, V), [IterableOfK(), IterableOfV()])
+    })
+  });
+  return HashMap;
+});
+collection.HashMap = HashMap();
+collection.HashSet$ = dart.generic(E => {
+  let _HashSetOfE = () => (_HashSetOfE = dart.constFn(collection._HashSet$(E)))();
+  let _IdentityHashSetOfE = () => (_IdentityHashSetOfE = dart.constFn(collection._IdentityHashSet$(E)))();
+  let _CustomHashSetOfE = () => (_CustomHashSetOfE = dart.constFn(collection._CustomHashSet$(E)))();
+  let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let EAndETobool = () => (EAndETobool = dart.constFn(dart.functionType(core.bool, [E, E])))();
+  let EToint = () => (EToint = dart.constFn(dart.functionType(core.int, [E])))();
+  class HashSet extends core.Object {
+    static new(opts) {
+      let equals = opts && 'equals' in opts ? opts.equals : null;
+      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
+      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
+      if (isValidKey == null) {
+        if (hashCode == null) {
+          if (equals == null) {
+            return new (_HashSetOfE())();
+          }
+          hashCode = collection._defaultHashCode;
+        } else {
+          if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
+            return new (_IdentityHashSetOfE())();
+          }
+          if (equals == null) {
+            equals = collection._defaultEquals;
+          }
+        }
+      } else {
+        if (hashCode == null) {
+          hashCode = collection._defaultHashCode;
+        }
+        if (equals == null) {
+          equals = collection._defaultEquals;
+        }
+      }
+      return new (_CustomHashSetOfE())(equals, hashCode, isValidKey);
+    }
+    static identity() {
+      return new (_IdentityHashSetOfE())();
+    }
+    static from(elements) {
+      let result = HashSetOfE().new();
+      for (let e of elements) {
+        let element = E.as(e);
+        result.add(element);
+      }
+      return result;
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this.iterator);
+    }
+  }
+  dart.addTypeTests(HashSet);
+  HashSet[dart.implements] = () => [SetOfE()];
+  dart.setSignature(HashSet, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.HashSet$(E), [], {equals: EAndETobool(), hashCode: EToint(), isValidKey: _PredicateOfObject()}),
+      identity: dart.definiteFunctionType(collection.HashSet$(E), []),
+      from: dart.definiteFunctionType(collection.HashSet$(E), [core.Iterable])
+    })
+  });
+  return HashSet;
+});
+collection.HashSet = HashSet();
+collection.IterableMixin$ = dart.generic(E => {
+  let WhereIterableOfE = () => (WhereIterableOfE = dart.constFn(_internal.WhereIterable$(E)))();
+  let EAndEToE = () => (EAndEToE = dart.constFn(dart.functionType(E, [E, E])))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  let TakeIterableOfE = () => (TakeIterableOfE = dart.constFn(_internal.TakeIterable$(E)))();
+  let TakeWhileIterableOfE = () => (TakeWhileIterableOfE = dart.constFn(_internal.TakeWhileIterable$(E)))();
+  let SkipIterableOfE = () => (SkipIterableOfE = dart.constFn(_internal.SkipIterable$(E)))();
+  let SkipWhileIterableOfE = () => (SkipWhileIterableOfE = dart.constFn(_internal.SkipWhileIterable$(E)))();
+  let VoidToE = () => (VoidToE = dart.constFn(dart.functionType(E, [])))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  class IterableMixin extends core.Object {
+    map(T) {
+      return f => {
+        return _internal.MappedIterable$(E, T).new(this, f);
+      };
+    }
+    where(f) {
+      return new (WhereIterableOfE())(this, f);
+    }
+    expand(T) {
+      return f => {
+        return new (_internal.ExpandIterable$(E, T))(this, f);
+      };
+    }
+    contains(element) {
+      for (let e of this) {
+        if (dart.equals(e, element)) return true;
+      }
+      return false;
+    }
+    forEach(f) {
+      for (let element of this)
+        f(element);
+    }
+    reduce(combine) {
+      EAndEToE()._check(combine);
+      let iterator = this.iterator;
+      if (!dart.test(iterator.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
+      let value = iterator.current;
+      while (dart.test(iterator.moveNext())) {
+        value = combine(value, iterator.current);
+      }
+      return value;
+    }
+    fold(T) {
+      return (initialValue, combine) => {
+        let value = initialValue;
+        for (let element of this)
+          value = combine(value, element);
+        return value;
+      };
+    }
+    every(f) {
+      for (let element of this) {
+        if (!dart.test(f(element))) return false;
+      }
+      return true;
+    }
+    join(separator) {
+      if (separator === void 0) separator = "";
+      let iterator = this.iterator;
+      if (!dart.test(iterator.moveNext())) return "";
+      let buffer = new core.StringBuffer();
+      if (separator == null || separator == "") {
+        do {
+          buffer.write(dart.str`${iterator.current}`);
+        } while (dart.test(iterator.moveNext()));
+      } else {
+        buffer.write(dart.str`${iterator.current}`);
+        while (dart.test(iterator.moveNext())) {
+          buffer.write(separator);
+          buffer.write(dart.str`${iterator.current}`);
+        }
+      }
+      return buffer.toString();
+    }
+    any(f) {
+      for (let element of this) {
+        if (dart.test(f(element))) return true;
+      }
+      return false;
+    }
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      return ListOfE().from(this, {growable: growable});
+    }
+    toSet() {
+      return SetOfE().from(this);
+    }
+    get length() {
+      dart.assert(!_internal.EfficientLength.is(this));
+      let count = 0;
+      let it = this[dartx.iterator];
+      while (dart.test(it.moveNext())) {
+        count++;
+      }
+      return count;
+    }
+    get isEmpty() {
+      return !dart.test(this[dartx.iterator].moveNext());
+    }
+    get isNotEmpty() {
+      return !dart.test(this.isEmpty);
+    }
+    take(count) {
+      return TakeIterableOfE().new(this, count);
+    }
+    takeWhile(test) {
+      return new (TakeWhileIterableOfE())(this, test);
+    }
+    skip(count) {
+      return SkipIterableOfE().new(this, count);
+    }
+    skipWhile(test) {
+      return new (SkipWhileIterableOfE())(this, test);
+    }
+    get first() {
+      let it = this[dartx.iterator];
+      if (!dart.test(it.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
+      return it.current;
+    }
+    get last() {
+      let it = this[dartx.iterator];
+      if (!dart.test(it.moveNext())) {
+        dart.throw(_internal.IterableElementError.noElement());
+      }
+      let result = null;
+      do {
+        result = it.current;
+      } while (dart.test(it.moveNext()));
+      return result;
+    }
+    get single() {
+      let it = this[dartx.iterator];
+      if (!dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
+      let result = it.current;
+      if (dart.test(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
+      return result;
+    }
+    firstWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      for (let element of this) {
+        if (dart.test(test(element))) return element;
+      }
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    lastWhere(test, opts) {
+      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+      VoidToE()._check(orElse);
+      let result = null;
+      let foundMatching = false;
+      for (let element of this) {
+        if (dart.test(test(element))) {
+          result = element;
+          foundMatching = true;
+        }
+      }
+      if (foundMatching) return result;
+      if (orElse != null) return orElse();
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    singleWhere(test) {
+      let result = null;
+      let foundMatching = false;
+      for (let element of this) {
+        if (dart.test(test(element))) {
+          if (foundMatching) {
+            dart.throw(_internal.IterableElementError.tooMany());
+          }
+          result = element;
+          foundMatching = true;
+        }
+      }
+      if (foundMatching) return result;
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    elementAt(index) {
+      if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
+      core.RangeError.checkNotNegative(index, "index");
+      let elementIndex = 0;
+      for (let element of this) {
+        if (index == elementIndex) return element;
+        elementIndex++;
+      }
+      dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
+    }
+    toString() {
+      return collection.IterableBase.iterableToShortString(this, '(', ')');
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this.iterator);
+    }
+  }
+  dart.addTypeTests(IterableMixin);
+  IterableMixin[dart.implements] = () => [IterableOfE()];
+  dart.setSignature(IterableMixin, {
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      first: dart.definiteFunctionType(E, []),
+      last: dart.definiteFunctionType(E, []),
+      single: dart.definiteFunctionType(E, [])
+    }),
+    methods: () => ({
+      map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [E])]]),
+      where: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]),
+      contains: dart.definiteFunctionType(core.bool, [core.Object]),
+      forEach: dart.definiteFunctionType(dart.void, [ETovoid()]),
+      reduce: dart.definiteFunctionType(E, [EAndEToE()]),
+      fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, E])]]),
+      every: dart.definiteFunctionType(core.bool, [ETobool()]),
+      join: dart.definiteFunctionType(core.String, [], [core.String]),
+      any: dart.definiteFunctionType(core.bool, [ETobool()]),
+      toList: dart.definiteFunctionType(core.List$(E), [], {growable: core.bool}),
+      toSet: dart.definiteFunctionType(core.Set$(E), []),
+      take: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      takeWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      skip: dart.definiteFunctionType(core.Iterable$(E), [core.int]),
+      skipWhile: dart.definiteFunctionType(core.Iterable$(E), [ETobool()]),
+      firstWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      lastWhere: dart.definiteFunctionType(E, [ETobool()], {orElse: VoidToE()}),
+      singleWhere: dart.definiteFunctionType(E, [ETobool()]),
+      elementAt: dart.definiteFunctionType(E, [core.int])
+    })
+  });
+  dart.defineExtensionMembers(IterableMixin, [
+    'map',
+    'where',
+    'expand',
+    'contains',
+    'forEach',
+    'reduce',
+    'fold',
+    'every',
+    'join',
+    'any',
+    'toList',
+    'toSet',
+    'take',
+    'takeWhile',
+    'skip',
+    'skipWhile',
+    'firstWhere',
+    'lastWhere',
+    'singleWhere',
+    'elementAt',
+    'toString',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'last',
+    'single'
+  ]);
+  return IterableMixin;
+});
+collection.IterableMixin = IterableMixin();
+dart.defineLazy(collection, {
+  get _toStringVisiting() {
+    return [];
+  }
+});
+collection._isToStringVisiting = function(o) {
+  for (let i = 0; i < dart.notNull(collection._toStringVisiting[dartx.length]); i++) {
+    if (core.identical(o, collection._toStringVisiting[dartx._get](i))) return true;
+  }
+  return false;
+};
+dart.lazyFn(collection._isToStringVisiting, () => ObjectTobool());
+collection._iterablePartsToStrings = function(iterable, parts) {
+  let LENGTH_LIMIT = 80;
+  let HEAD_COUNT = 3;
+  let TAIL_COUNT = 2;
+  let MAX_COUNT = 100;
+  let OVERHEAD = 2;
+  let ELLIPSIS_SIZE = 3;
+  let length = 0;
+  let count = 0;
+  let it = iterable[dartx.iterator];
+  while (dart.notNull(length) < LENGTH_LIMIT || count < HEAD_COUNT) {
+    if (!dart.test(it.moveNext())) return;
+    let next = dart.str`${it.current}`;
+    parts[dartx.add](next);
+    length = dart.notNull(length) + (dart.notNull(next[dartx.length]) + OVERHEAD);
+    count++;
+  }
+  let penultimateString = null;
+  let ultimateString = null;
+  let penultimate = null;
+  let ultimate = null;
+  if (!dart.test(it.moveNext())) {
+    if (count <= HEAD_COUNT + TAIL_COUNT) return;
+    ultimateString = core.String._check(parts[dartx.removeLast]());
+    penultimateString = core.String._check(parts[dartx.removeLast]());
+  } else {
+    penultimate = it.current;
+    count++;
+    if (!dart.test(it.moveNext())) {
+      if (count <= HEAD_COUNT + 1) {
+        parts[dartx.add](dart.str`${penultimate}`);
+        return;
+      }
+      ultimateString = dart.str`${penultimate}`;
+      penultimateString = core.String._check(parts[dartx.removeLast]());
+      length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + OVERHEAD);
+    } else {
+      ultimate = it.current;
+      count++;
+      dart.assert(count < MAX_COUNT);
+      while (dart.test(it.moveNext())) {
+        penultimate = ultimate;
+        ultimate = it.current;
+        count++;
+        if (count > MAX_COUNT) {
+          while (dart.notNull(length) > LENGTH_LIMIT - ELLIPSIS_SIZE - OVERHEAD && count > HEAD_COUNT) {
+            length = dart.notNull(length) - dart.notNull(core.num._check(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD)));
+            count--;
+          }
+          parts[dartx.add]("...");
+          return;
+        }
+      }
+      penultimateString = dart.str`${penultimate}`;
+      ultimateString = dart.str`${ultimate}`;
+      length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + dart.notNull(penultimateString[dartx.length]) + 2 * OVERHEAD);
+    }
+  }
+  let elision = null;
+  if (count > dart.notNull(parts[dartx.length]) + TAIL_COUNT) {
+    elision = "...";
+    length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
+  }
+  while (dart.notNull(length) > LENGTH_LIMIT && dart.notNull(parts[dartx.length]) > HEAD_COUNT) {
+    length = dart.notNull(length) - dart.notNull(core.num._check(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD)));
+    if (elision == null) {
+      elision = "...";
+      length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
+    }
+  }
+  if (elision != null) {
+    parts[dartx.add](elision);
+  }
+  parts[dartx.add](penultimateString);
+  parts[dartx.add](ultimateString);
+};
+dart.lazyFn(collection._iterablePartsToStrings, () => IterableAndListTovoid());
+const _iterator$0 = Symbol('_iterator');
+const _state$ = Symbol('_state');
+const _move = Symbol('_move');
+collection.HasNextIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class HasNextIterator extends core.Object {
+    new(iterator) {
+      this[_iterator$0] = iterator;
+      this[_state$] = collection.HasNextIterator._NOT_MOVED_YET;
+    }
+    get hasNext() {
+      if (this[_state$] == collection.HasNextIterator._NOT_MOVED_YET) this[_move]();
+      return this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
+    }
+    next() {
+      if (!dart.test(this.hasNext)) dart.throw(new core.StateError("No more elements"));
+      dart.assert(this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT);
+      let result = this[_iterator$0].current;
+      this[_move]();
+      return result;
+    }
+    [_move]() {
+      if (dart.test(this[_iterator$0].moveNext())) {
+        this[_state$] = collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
+      } else {
+        this[_state$] = collection.HasNextIterator._NO_NEXT;
+      }
+    }
+  }
+  dart.addTypeTests(HasNextIterator);
+  dart.setSignature(HasNextIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection.HasNextIterator$(E), [IteratorOfE()])}),
+    fields: () => ({
+      [_iterator$0]: IteratorOfE(),
+      [_state$]: core.int
+    }),
+    getters: () => ({hasNext: dart.definiteFunctionType(core.bool, [])}),
+    methods: () => ({
+      next: dart.definiteFunctionType(E, []),
+      [_move]: dart.definiteFunctionType(dart.void, [])
+    }),
+    sfields: () => ({
+      _HAS_NEXT_AND_NEXT_IN_CURRENT: core.int,
+      _NO_NEXT: core.int,
+      _NOT_MOVED_YET: core.int
+    })
+  });
+  return HasNextIterator;
+});
+collection.HasNextIterator = HasNextIterator();
+collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT = 0;
+collection.HasNextIterator._NO_NEXT = 1;
+collection.HasNextIterator._NOT_MOVED_YET = 2;
+collection.LinkedHashMap$ = dart.generic((K, V) => {
+  let JsLinkedHashMapOfK$V = () => (JsLinkedHashMapOfK$V = dart.constFn(_js_helper.JsLinkedHashMap$(K, V)))();
+  let _LinkedIdentityHashMapOfK$V = () => (_LinkedIdentityHashMapOfK$V = dart.constFn(collection._LinkedIdentityHashMap$(K, V)))();
+  let _LinkedCustomHashMapOfK$V = () => (_LinkedCustomHashMapOfK$V = dart.constFn(collection._LinkedCustomHashMap$(K, V)))();
+  let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
+  let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+  let KAndKTobool = () => (KAndKTobool = dart.constFn(dart.functionType(core.bool, [K, K])))();
+  let KToint = () => (KToint = dart.constFn(dart.functionType(core.int, [K])))();
+  let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
+  let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
+  let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
+  let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
+  class LinkedHashMap extends core.Object {
+    static new(opts) {
+      let equals = opts && 'equals' in opts ? opts.equals : null;
+      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
+      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
+      if (isValidKey == null) {
+        if (hashCode == null) {
+          if (equals == null) {
+            return JsLinkedHashMapOfK$V().es6();
+          }
+          hashCode = collection._defaultHashCode;
+        } else {
+          if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
+            return _LinkedIdentityHashMapOfK$V().es6();
+          }
+          if (equals == null) {
+            equals = collection._defaultEquals;
+          }
+        }
+      } else {
+        if (hashCode == null) {
+          hashCode = collection._defaultHashCode;
+        }
+        if (equals == null) {
+          equals = collection._defaultEquals;
+        }
+      }
+      return new (_LinkedCustomHashMapOfK$V())(equals, hashCode, isValidKey);
+    }
+    static identity() {
+      return _LinkedIdentityHashMapOfK$V().es6();
+    }
+    static from(other) {
+      let result = LinkedHashMapOfK$V().new();
+      other[dartx.forEach](dart.fn((k, v) => {
+        result._set(K.as(k), V.as(v));
+      }, dynamicAnddynamicToNull()));
+      return result;
+    }
+    static fromIterable(iterable, opts) {
+      let key = opts && 'key' in opts ? opts.key : null;
+      let value = opts && 'value' in opts ? opts.value : null;
+      let map = LinkedHashMapOfK$V().new();
+      collection.Maps._fillMapWithMappedIterable(map, iterable, key, value);
+      return map;
+    }
+    static fromIterables(keys, values) {
+      let map = LinkedHashMapOfK$V().new();
+      collection.Maps._fillMapWithIterables(map, keys, values);
+      return map;
+    }
+  }
+  dart.addTypeTests(LinkedHashMap);
+  LinkedHashMap[dart.implements] = () => [HashMapOfK$V()];
+  dart.setSignature(LinkedHashMap, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [], {equals: KAndKTobool(), hashCode: KToint(), isValidKey: _PredicateOfObject()}),
+      identity: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), []),
+      from: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [core.Map]),
+      fromIterable: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV()}),
+      fromIterables: dart.definiteFunctionType(collection.LinkedHashMap$(K, V), [IterableOfK(), IterableOfV()])
+    })
+  });
+  return LinkedHashMap;
+});
+collection.LinkedHashMap = LinkedHashMap();
+collection.LinkedHashSet$ = dart.generic(E => {
+  let _LinkedHashSetOfE = () => (_LinkedHashSetOfE = dart.constFn(collection._LinkedHashSet$(E)))();
+  let _LinkedIdentityHashSetOfE = () => (_LinkedIdentityHashSetOfE = dart.constFn(collection._LinkedIdentityHashSet$(E)))();
+  let _LinkedCustomHashSetOfE = () => (_LinkedCustomHashSetOfE = dart.constFn(collection._LinkedCustomHashSet$(E)))();
+  let LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
+  let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
+  let EAndETobool = () => (EAndETobool = dart.constFn(dart.functionType(core.bool, [E, E])))();
+  let EToint = () => (EToint = dart.constFn(dart.functionType(core.int, [E])))();
+  class LinkedHashSet extends core.Object {
+    static new(opts) {
+      let equals = opts && 'equals' in opts ? opts.equals : null;
+      let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
+      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
+      if (isValidKey == null) {
+        if (hashCode == null) {
+          if (equals == null) {
+            return new (_LinkedHashSetOfE())();
+          }
+          hashCode = collection._defaultHashCode;
+        } else {
+          if (core.identical(core.identityHashCode, hashCode) && core.identical(core.identical, equals)) {
+            return new (_LinkedIdentityHashSetOfE())();
+          }
+          if (equals == null) {
+            equals = collection._defaultEquals;
+          }
+        }
+      } else {
+        if (hashCode == null) {
+          hashCode = collection._defaultHashCode;
+        }
+        if (equals == null) {
+          equals = collection._defaultEquals;
+        }
+      }
+      return new (_LinkedCustomHashSetOfE())(equals, hashCode, isValidKey);
+    }
+    static identity() {
+      return new (_LinkedIdentityHashSetOfE())();
+    }
+    static from(elements) {
+      let result = LinkedHashSetOfE().new();
+      for (let element of elements) {
+        let e = E.as(element);
+        result.add(e);
+      }
+      return result;
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this.iterator);
+    }
+  }
+  dart.addTypeTests(LinkedHashSet);
+  LinkedHashSet[dart.implements] = () => [HashSetOfE()];
+  dart.setSignature(LinkedHashSet, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.LinkedHashSet$(E), [], {equals: EAndETobool(), hashCode: EToint(), isValidKey: _PredicateOfObject()}),
+      identity: dart.definiteFunctionType(collection.LinkedHashSet$(E), []),
+      from: dart.definiteFunctionType(collection.LinkedHashSet$(E), [core.Iterable])
+    })
+  });
+  return LinkedHashSet;
+});
+collection.LinkedHashSet = LinkedHashSet();
+const _modificationCount = Symbol('_modificationCount');
+const _insertBefore$ = Symbol('_insertBefore');
+const _list = Symbol('_list');
+const _unlink$ = Symbol('_unlink');
+collection.LinkedList$ = dart.generic(E => {
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let _LinkedListIteratorOfE = () => (_LinkedListIteratorOfE = dart.constFn(collection._LinkedListIterator$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  class LinkedList extends core.Iterable$(E) {
+    new() {
+      this[_modificationCount] = 0;
+      this[_length$1] = 0;
+      this[_first$] = null;
+      super.new();
+    }
+    addFirst(entry) {
+      E._check(entry);
+      this[_insertBefore$](this[_first$], entry, {updateFirst: true});
+      this[_first$] = entry;
+    }
+    add(entry) {
+      E._check(entry);
+      this[_insertBefore$](this[_first$], entry, {updateFirst: false});
+    }
+    addAll(entries) {
+      IterableOfE()._check(entries);
+      entries[dartx.forEach](dart.bind(this, 'add'));
+    }
+    remove(entry) {
+      E._check(entry);
+      if (!dart.equals(entry[_list], this)) return false;
+      this[_unlink$](entry);
+      return true;
+    }
+    get iterator() {
+      return new (_LinkedListIteratorOfE())(this);
+    }
+    get length() {
+      return this[_length$1];
+    }
+    clear() {
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      if (dart.test(this.isEmpty)) return;
+      let next = this[_first$];
+      do {
+        let entry = next;
+        next = entry[_next$0];
+        entry[_next$0] = entry[_previous$0] = entry[_list] = null;
+      } while (!core.identical(next, this[_first$]));
+      this[_first$] = null;
+      this[_length$1] = 0;
+    }
+    get first() {
+      if (dart.test(this.isEmpty)) {
+        dart.throw(new core.StateError('No such element'));
+      }
+      return this[_first$];
+    }
+    get last() {
+      if (dart.test(this.isEmpty)) {
+        dart.throw(new core.StateError('No such element'));
+      }
+      return this[_first$][_previous$0];
+    }
+    get single() {
+      if (dart.test(this.isEmpty)) {
+        dart.throw(new core.StateError('No such element'));
+      }
+      if (dart.notNull(this[_length$1]) > 1) {
+        dart.throw(new core.StateError('Too many elements'));
+      }
+      return this[_first$];
+    }
+    forEach(action) {
+      let modificationCount = this[_modificationCount];
+      if (dart.test(this.isEmpty)) return;
+      let current = this[_first$];
+      do {
+        action(current);
+        if (modificationCount != this[_modificationCount]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+        current = current[_next$0];
+      } while (!core.identical(current, this[_first$]));
+    }
+    get isEmpty() {
+      return this[_length$1] == 0;
+    }
+    [_insertBefore$](entry, newEntry, opts) {
+      E._check(entry);
+      E._check(newEntry);
+      let updateFirst = opts && 'updateFirst' in opts ? opts.updateFirst : null;
+      if (newEntry.list != null) {
+        dart.throw(new core.StateError('LinkedListEntry is already in a LinkedList'));
+      }
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      newEntry[_list] = this;
+      if (dart.test(this.isEmpty)) {
+        dart.assert(entry == null);
+        newEntry[_previous$0] = newEntry[_next$0] = newEntry;
+        this[_first$] = newEntry;
+        this[_length$1] = dart.notNull(this[_length$1]) + 1;
+        return;
+      }
+      let predecessor = entry[_previous$0];
+      let successor = entry;
+      newEntry[_previous$0] = predecessor;
+      newEntry[_next$0] = successor;
+      predecessor[_next$0] = newEntry;
+      successor[_previous$0] = newEntry;
+      if (dart.test(updateFirst) && core.identical(entry, this[_first$])) {
+        this[_first$] = newEntry;
+      }
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
+    }
+    [_unlink$](entry) {
+      E._check(entry);
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      entry[_next$0][_previous$0] = entry[_previous$0];
+      let next = entry[_previous$0][_next$0] = entry[_next$0];
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
+      entry[_list] = entry[_next$0] = entry[_previous$0] = null;
+      if (dart.test(this.isEmpty)) {
+        this[_first$] = null;
+      } else if (core.identical(entry, this[_first$])) {
+        this[_first$] = next;
+      }
+    }
+  }
+  dart.setSignature(LinkedList, {
+    constructors: () => ({new: dart.definiteFunctionType(collection.LinkedList$(E), [])}),
+    fields: () => ({
+      [_modificationCount]: core.int,
+      [_length$1]: core.int,
+      [_first$]: E
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({
+      addFirst: dart.definiteFunctionType(dart.void, [E]),
+      add: dart.definiteFunctionType(dart.void, [E]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      remove: dart.definiteFunctionType(core.bool, [E]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      [_insertBefore$]: dart.definiteFunctionType(dart.void, [E, E], {updateFirst: core.bool}),
+      [_unlink$]: dart.definiteFunctionType(dart.void, [E])
+    })
+  });
+  dart.defineExtensionMembers(LinkedList, [
+    'forEach',
+    'iterator',
+    'length',
+    'first',
+    'last',
+    'single',
+    'isEmpty'
+  ]);
+  return LinkedList;
+});
+collection.LinkedList = LinkedList();
+const _visitedFirst = Symbol('_visitedFirst');
+collection._LinkedListIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let LinkedListOfE = () => (LinkedListOfE = dart.constFn(collection.LinkedList$(E)))();
+  let LinkedListEntryOfE = () => (LinkedListEntryOfE = dart.constFn(collection.LinkedListEntry$(E)))();
+  class _LinkedListIterator extends core.Object {
+    new(list) {
+      this[_list] = list;
+      this[_modificationCount] = list[_modificationCount];
+      this[_next$0] = list[_first$];
+      this[_visitedFirst] = false;
+      this[_current$2] = null;
+    }
+    get current() {
+      return this[_current$2];
+    }
+    moveNext() {
+      if (this[_modificationCount] != this[_list][_modificationCount]) {
+        dart.throw(new core.ConcurrentModificationError(this));
+      }
+      if (dart.test(this[_list].isEmpty) || dart.test(this[_visitedFirst]) && core.identical(this[_next$0], this[_list].first)) {
+        this[_current$2] = null;
+        return false;
+      }
+      this[_visitedFirst] = true;
+      this[_current$2] = E._check(this[_next$0]);
+      this[_next$0] = this[_next$0][_next$0];
+      return true;
+    }
+  }
+  dart.addTypeTests(_LinkedListIterator);
+  _LinkedListIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_LinkedListIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._LinkedListIterator$(E), [LinkedListOfE()])}),
+    fields: () => ({
+      [_list]: LinkedListOfE(),
+      [_modificationCount]: core.int,
+      [_current$2]: E,
+      [_next$0]: LinkedListEntryOfE(),
+      [_visitedFirst]: core.bool
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _LinkedListIterator;
+});
+collection._LinkedListIterator = _LinkedListIterator();
+collection.LinkedListEntry$ = dart.generic(E => {
+  let LinkedListOfE = () => (LinkedListOfE = dart.constFn(collection.LinkedList$(E)))();
+  class LinkedListEntry extends core.Object {
+    new() {
+      this[_list] = null;
+      this[_next$0] = null;
+      this[_previous$0] = null;
+    }
+    get list() {
+      return this[_list];
+    }
+    unlink() {
+      this[_list][_unlink$](E._check(this));
+    }
+    get next() {
+      if (core.identical(this, this[_next$0])) return null;
+      return this[_next$0];
+    }
+    get previous() {
+      if (core.identical(this, this[_previous$0])) return null;
+      return this[_previous$0];
+    }
+    insertAfter(entry) {
+      E._check(entry);
+      this[_list][_insertBefore$](this[_next$0], entry, {updateFirst: false});
+    }
+    insertBefore(entry) {
+      E._check(entry);
+      this[_list][_insertBefore$](E.as(this), entry, {updateFirst: true});
+    }
+  }
+  dart.addTypeTests(LinkedListEntry);
+  dart.setSignature(LinkedListEntry, {
+    fields: () => ({
+      [_list]: LinkedListOfE(),
+      [_next$0]: E,
+      [_previous$0]: E
+    }),
+    getters: () => ({
+      list: dart.definiteFunctionType(collection.LinkedList$(E), []),
+      next: dart.definiteFunctionType(E, []),
+      previous: dart.definiteFunctionType(E, [])
+    }),
+    methods: () => ({
+      unlink: dart.definiteFunctionType(dart.void, []),
+      insertAfter: dart.definiteFunctionType(dart.void, [E]),
+      insertBefore: dart.definiteFunctionType(dart.void, [E])
+    })
+  });
+  return LinkedListEntry;
+});
+collection.LinkedListEntry = LinkedListEntry();
+collection.MapMixin$ = dart.generic((K, V) => {
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let _MapBaseValueIterableOfK$V = () => (_MapBaseValueIterableOfK$V = dart.constFn(collection._MapBaseValueIterable$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  class MapMixin extends core.Object {
+    forEach(action) {
+      for (let key of this.keys) {
+        action(key, this._get(key));
+      }
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      for (let key of other[dartx.keys]) {
+        this._set(key, other[dartx._get](key));
+      }
+    }
+    containsValue(value) {
+      for (let key of this.keys) {
+        if (dart.equals(this._get(key), value)) return true;
+      }
+      return false;
+    }
+    putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
+      if (dart.test(this.containsKey(key))) {
+        return this._get(key);
+      }
+      return this._set(key, ifAbsent());
+    }
+    containsKey(key) {
+      return this.keys[dartx.contains](key);
+    }
+    get length() {
+      return this.keys[dartx.length];
+    }
+    get isEmpty() {
+      return this.keys[dartx.isEmpty];
+    }
+    get isNotEmpty() {
+      return this.keys[dartx.isNotEmpty];
+    }
+    get values() {
+      return new (_MapBaseValueIterableOfK$V())(this);
+    }
+    toString() {
+      return collection.Maps.mapToString(this);
+    }
+  }
+  dart.addTypeTests(MapMixin);
+  MapMixin[dart.implements] = () => [MapOfK$V()];
+  dart.setSignature(MapMixin, {
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      values: dart.definiteFunctionType(core.Iterable$(V), [])
+    }),
+    methods: () => ({
+      forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
+      containsKey: dart.definiteFunctionType(core.bool, [core.Object])
+    })
+  });
+  dart.defineExtensionMembers(MapMixin, [
+    'forEach',
+    'addAll',
+    'containsValue',
+    'putIfAbsent',
+    'containsKey',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'values'
+  ]);
+  return MapMixin;
+});
+collection.MapMixin = MapMixin();
+collection.MapBase$ = dart.generic((K, V) => {
+  class MapBase extends dart.mixin(core.Object, collection.MapMixin$(K, V)) {}
+  return MapBase;
+});
+collection.MapBase = MapBase();
+collection._UnmodifiableMapMixin$ = dart.generic((K, V) => {
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  class _UnmodifiableMapMixin extends core.Object {
+    _set(key, value) {
+      K._check(key);
+      V._check(value);
+      dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
+      return value;
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
+    }
+    clear() {
+      dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
+    }
+    remove(key) {
+      dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
+    }
+    putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
+      dart.throw(new core.UnsupportedError("Cannot modify unmodifiable map"));
+    }
+  }
+  dart.addTypeTests(_UnmodifiableMapMixin);
+  _UnmodifiableMapMixin[dart.implements] = () => [MapOfK$V()];
+  dart.setSignature(_UnmodifiableMapMixin, {
+    methods: () => ({
+      _set: dart.definiteFunctionType(dart.void, [K, V]),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      remove: dart.definiteFunctionType(V, [core.Object]),
+      putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()])
+    })
+  });
+  dart.defineExtensionMembers(_UnmodifiableMapMixin, [
+    '_set',
+    'addAll',
+    'clear',
+    'remove',
+    'putIfAbsent'
+  ]);
+  return _UnmodifiableMapMixin;
+});
+collection._UnmodifiableMapMixin = _UnmodifiableMapMixin();
+collection.UnmodifiableMapBase$ = dart.generic((K, V) => {
+  class UnmodifiableMapBase extends dart.mixin(collection.MapBase$(K, V), collection._UnmodifiableMapMixin$(K, V)) {
+    new() {
+      super.new();
+    }
+  }
+  return UnmodifiableMapBase;
+});
+collection.UnmodifiableMapBase = UnmodifiableMapBase();
+collection._MapBaseValueIterable$ = dart.generic((K, V) => {
+  let _MapBaseValueIteratorOfK$V = () => (_MapBaseValueIteratorOfK$V = dart.constFn(collection._MapBaseValueIterator$(K, V)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  class _MapBaseValueIterable extends core.Iterable$(V) {
+    new(map) {
+      this[_map$0] = map;
+      super.new();
+    }
+    get length() {
+      return this[_map$0][dartx.length];
+    }
+    get isEmpty() {
+      return this[_map$0][dartx.isEmpty];
+    }
+    get isNotEmpty() {
+      return this[_map$0][dartx.isNotEmpty];
+    }
+    get first() {
+      return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.first]);
+    }
+    get single() {
+      return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.single]);
+    }
+    get last() {
+      return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.last]);
+    }
+    get iterator() {
+      return new (_MapBaseValueIteratorOfK$V())(this[_map$0]);
+    }
+  }
+  _MapBaseValueIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(_MapBaseValueIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._MapBaseValueIterable$(K, V), [MapOfK$V()])}),
+    fields: () => ({[_map$0]: MapOfK$V()}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(V), [])})
+  });
+  dart.defineExtensionMembers(_MapBaseValueIterable, [
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'single',
+    'last',
+    'iterator'
+  ]);
+  return _MapBaseValueIterable;
+});
+collection._MapBaseValueIterable = _MapBaseValueIterable();
+collection._MapBaseValueIterator$ = dart.generic((K, V) => {
+  let IteratorOfK = () => (IteratorOfK = dart.constFn(core.Iterator$(K)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let IteratorOfV = () => (IteratorOfV = dart.constFn(core.Iterator$(V)))();
+  class _MapBaseValueIterator extends core.Object {
+    new(map) {
+      this[_map$0] = map;
+      this[_keys] = map[dartx.keys][dartx.iterator];
+      this[_current$2] = null;
+    }
+    moveNext() {
+      if (dart.test(this[_keys].moveNext())) {
+        this[_current$2] = this[_map$0][dartx._get](this[_keys].current);
+        return true;
+      }
+      this[_current$2] = null;
+      return false;
+    }
+    get current() {
+      return this[_current$2];
+    }
+  }
+  dart.addTypeTests(_MapBaseValueIterator);
+  _MapBaseValueIterator[dart.implements] = () => [IteratorOfV()];
+  dart.setSignature(_MapBaseValueIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._MapBaseValueIterator$(K, V), [MapOfK$V()])}),
+    fields: () => ({
+      [_keys]: IteratorOfK(),
+      [_map$0]: MapOfK$V(),
+      [_current$2]: V
+    }),
+    getters: () => ({current: dart.definiteFunctionType(V, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _MapBaseValueIterator;
+});
+collection._MapBaseValueIterator = _MapBaseValueIterator();
+collection.MapView$ = dart.generic((K, V) => {
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  class MapView extends core.Object {
+    new(map) {
+      this[_map$0] = map;
+    }
+    _get(key) {
+      return this[_map$0][dartx._get](key);
+    }
+    _set(key, value) {
+      K._check(key);
+      V._check(value);
+      this[_map$0][dartx._set](key, value);
+      return value;
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      this[_map$0][dartx.addAll](other);
+    }
+    clear() {
+      this[_map$0][dartx.clear]();
+    }
+    putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
+      return this[_map$0][dartx.putIfAbsent](key, ifAbsent);
+    }
+    containsKey(key) {
+      return this[_map$0][dartx.containsKey](key);
+    }
+    containsValue(value) {
+      return this[_map$0][dartx.containsValue](value);
+    }
+    forEach(action) {
+      this[_map$0][dartx.forEach](action);
+    }
+    get isEmpty() {
+      return this[_map$0][dartx.isEmpty];
+    }
+    get isNotEmpty() {
+      return this[_map$0][dartx.isNotEmpty];
+    }
+    get length() {
+      return this[_map$0][dartx.length];
+    }
+    get keys() {
+      return this[_map$0][dartx.keys];
+    }
+    remove(key) {
+      return this[_map$0][dartx.remove](key);
+    }
+    toString() {
+      return dart.toString(this[_map$0]);
+    }
+    get values() {
+      return this[_map$0][dartx.values];
+    }
+  }
+  dart.addTypeTests(MapView);
+  MapView[dart.implements] = () => [MapOfK$V()];
+  dart.setSignature(MapView, {
+    constructors: () => ({new: dart.definiteFunctionType(collection.MapView$(K, V), [MapOfK$V()])}),
+    fields: () => ({[_map$0]: MapOfK$V()}),
+    getters: () => ({
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      length: dart.definiteFunctionType(core.int, []),
+      keys: dart.definiteFunctionType(core.Iterable$(K), []),
+      values: dart.definiteFunctionType(core.Iterable$(V), [])
+    }),
+    methods: () => ({
+      _get: dart.definiteFunctionType(V, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [K, V]),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
+      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
+      remove: dart.definiteFunctionType(V, [core.Object])
+    })
+  });
+  dart.defineExtensionMembers(MapView, [
+    '_get',
+    '_set',
+    'addAll',
+    'clear',
+    'putIfAbsent',
+    'containsKey',
+    'containsValue',
+    'forEach',
+    'remove',
+    'isEmpty',
+    'isNotEmpty',
+    'length',
+    'keys',
+    'values'
+  ]);
+  return MapView;
+});
+collection.MapView = MapView();
+collection.UnmodifiableMapView$ = dart.generic((K, V) => {
+  class UnmodifiableMapView extends dart.mixin(collection.MapView$(K, V), collection._UnmodifiableMapMixin$(K, V)) {
+    new(map) {
+      super.new(map);
+    }
+  }
+  return UnmodifiableMapView;
+});
+collection.UnmodifiableMapView = UnmodifiableMapView();
+collection.Maps = class Maps extends core.Object {
+  static containsValue(map, value) {
+    for (let v of map[dartx.values]) {
+      if (dart.equals(v, value)) {
+        return true;
+      }
+    }
+    return false;
+  }
+  static containsKey(map, key) {
+    for (let k of map[dartx.keys]) {
+      if (dart.equals(k, key)) {
+        return true;
+      }
+    }
+    return false;
+  }
+  static putIfAbsent(map, key, ifAbsent) {
+    if (dart.test(map[dartx.containsKey](key))) {
+      return map[dartx._get](key);
+    }
+    let v = ifAbsent();
+    map[dartx._set](key, v);
+    return v;
+  }
+  static clear(map) {
+    for (let k of map[dartx.keys][dartx.toList]()) {
+      map[dartx.remove](k);
+    }
+  }
+  static forEach(map, f) {
+    for (let k of map[dartx.keys]) {
+      dart.dcall(f, k, map[dartx._get](k));
+    }
+  }
+  static getValues(map) {
+    return map[dartx.keys][dartx.map](dart.dynamic)(dart.fn(key => map[dartx._get](key), dynamicTodynamic$()));
+  }
+  static length(map) {
+    return map[dartx.keys][dartx.length];
+  }
+  static isEmpty(map) {
+    return map[dartx.keys][dartx.isEmpty];
+  }
+  static isNotEmpty(map) {
+    return map[dartx.keys][dartx.isNotEmpty];
+  }
+  static mapToString(m) {
+    if (dart.test(collection._isToStringVisiting(m))) {
+      return '{...}';
+    }
+    let result = new core.StringBuffer();
+    try {
+      collection._toStringVisiting[dartx.add](m);
+      result.write('{');
+      let first = true;
+      m[dartx.forEach](dart.fn((k, v) => {
+        if (!first) {
+          result.write(', ');
+        }
+        first = false;
+        result.write(k);
+        result.write(': ');
+        result.write(v);
+      }, dynamicAnddynamicToNull()));
+      result.write('}');
+    } finally {
+      dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
+      collection._toStringVisiting[dartx.removeLast]();
+    }
+    return result.toString();
+  }
+  static _id(x) {
+    return x;
+  }
+  static _fillMapWithMappedIterable(map, iterable, key, value) {
+    if (key == null) key = collection.Maps._id;
+    if (value == null) value = collection.Maps._id;
+    for (let element of iterable) {
+      map[dartx._set](dart.dcall(key, element), dart.dcall(value, element));
+    }
+  }
+  static _fillMapWithIterables(map, keys, values) {
+    let keyIterator = keys[dartx.iterator];
+    let valueIterator = values[dartx.iterator];
+    let hasNextKey = keyIterator.moveNext();
+    let hasNextValue = valueIterator.moveNext();
+    while (dart.test(hasNextKey) && dart.test(hasNextValue)) {
+      map[dartx._set](keyIterator.current, valueIterator.current);
+      hasNextKey = keyIterator.moveNext();
+      hasNextValue = valueIterator.moveNext();
+    }
+    if (dart.test(hasNextKey) || dart.test(hasNextValue)) {
+      dart.throw(new core.ArgumentError("Iterables do not have same length."));
+    }
+  }
+};
+dart.setSignature(collection.Maps, {
+  statics: () => ({
+    containsValue: dart.definiteFunctionType(core.bool, [core.Map, core.Object]),
+    containsKey: dart.definiteFunctionType(core.bool, [core.Map, core.Object]),
+    putIfAbsent: dart.definiteFunctionType(dart.dynamic, [core.Map, dart.dynamic, VoidTodynamic()]),
+    clear: dart.definiteFunctionType(dart.dynamic, [core.Map]),
+    forEach: dart.definiteFunctionType(dart.dynamic, [core.Map, dynamicAnddynamicTovoid()]),
+    getValues: dart.definiteFunctionType(core.Iterable, [core.Map]),
+    length: dart.definiteFunctionType(core.int, [core.Map]),
+    isEmpty: dart.definiteFunctionType(core.bool, [core.Map]),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [core.Map]),
+    mapToString: dart.definiteFunctionType(core.String, [core.Map]),
+    _id: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _fillMapWithMappedIterable: dart.definiteFunctionType(dart.void, [core.Map, core.Iterable, dynamicTodynamic(), dynamicTodynamic()]),
+    _fillMapWithIterables: dart.definiteFunctionType(dart.void, [core.Map, core.Iterable, core.Iterable])
+  }),
+  names: ['containsValue', 'containsKey', 'putIfAbsent', 'clear', 'forEach', 'getValues', 'length', 'isEmpty', 'isNotEmpty', 'mapToString', '_id', '_fillMapWithMappedIterable', '_fillMapWithIterables']
+});
+collection.Queue$ = dart.generic(E => {
+  let ListQueueOfE = () => (ListQueueOfE = dart.constFn(collection.ListQueue$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class Queue extends core.Object {
+    static new() {
+      return new (ListQueueOfE())();
+    }
+    static from(elements) {
+      return ListQueueOfE().from(elements);
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this.iterator);
+    }
+  }
+  dart.addTypeTests(Queue);
+  Queue[dart.implements] = () => [IterableOfE(), _internal.EfficientLength];
+  dart.setSignature(Queue, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.Queue$(E), []),
+      from: dart.definiteFunctionType(collection.Queue$(E), [core.Iterable])
+    })
+  });
+  return Queue;
+});
+collection.Queue = Queue();
+const _previousLink = Symbol('_previousLink');
+const _nextLink = Symbol('_nextLink');
+const _link = Symbol('_link');
+collection._DoubleLink$ = dart.generic(E => {
+  class _DoubleLink extends core.Object {
+    new() {
+      this[_previousLink] = null;
+      this[_nextLink] = null;
+    }
+    [_link](previous, next) {
+      E._check(previous);
+      E._check(next);
+      this[_nextLink] = next;
+      this[_previousLink] = previous;
+      if (previous != null) previous[_nextLink] = this;
+      if (next != null) next[_previousLink] = this;
+    }
+    [_unlink$]() {
+      if (this[_previousLink] != null) this[_previousLink][_nextLink] = this[_nextLink];
+      if (this[_nextLink] != null) this[_nextLink][_previousLink] = this[_previousLink];
+      this[_nextLink] = null;
+      this[_previousLink] = null;
+    }
+  }
+  dart.addTypeTests(_DoubleLink);
+  dart.setSignature(_DoubleLink, {
+    fields: () => ({
+      [_previousLink]: E,
+      [_nextLink]: E
+    }),
+    methods: () => ({
+      [_link]: dart.definiteFunctionType(dart.void, [E, E]),
+      [_unlink$]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _DoubleLink;
+});
+collection._DoubleLink = _DoubleLink();
+collection.DoubleLinkedQueueEntry$ = dart.generic(E => {
+  let _UserDoubleLinkedQueueEntryOfE = () => (_UserDoubleLinkedQueueEntryOfE = dart.constFn(collection._UserDoubleLinkedQueueEntry$(E)))();
+  class DoubleLinkedQueueEntry extends core.Object {
+    static new(element) {
+      return new (_UserDoubleLinkedQueueEntryOfE())(element);
+    }
+  }
+  dart.addTypeTests(DoubleLinkedQueueEntry);
+  dart.setSignature(DoubleLinkedQueueEntry, {
+    constructors: () => ({new: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), [E])})
+  });
+  return DoubleLinkedQueueEntry;
+});
+collection.DoubleLinkedQueueEntry = DoubleLinkedQueueEntry();
+collection._UserDoubleLinkedQueueEntry$ = dart.generic(E => {
+  let _UserDoubleLinkedQueueEntryOfE = () => (_UserDoubleLinkedQueueEntryOfE = dart.constFn(collection._UserDoubleLinkedQueueEntry$(E)))();
+  let DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
+  class _UserDoubleLinkedQueueEntry extends collection._DoubleLink {
+    new(element) {
+      this.element = element;
+      super.new();
+    }
+    append(e) {
+      E._check(e);
+      new (_UserDoubleLinkedQueueEntryOfE())(e)[_link](this, this[_nextLink]);
+    }
+    prepend(e) {
+      E._check(e);
+      new (_UserDoubleLinkedQueueEntryOfE())(e)[_link](this[_previousLink], this);
+    }
+    remove() {
+      this[_unlink$]();
+      return this.element;
+    }
+    previousEntry() {
+      return this[_previousLink];
+    }
+    nextEntry() {
+      return this[_nextLink];
+    }
+  }
+  _UserDoubleLinkedQueueEntry[dart.implements] = () => [DoubleLinkedQueueEntryOfE()];
+  dart.setSignature(_UserDoubleLinkedQueueEntry, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._UserDoubleLinkedQueueEntry$(E), [E])}),
+    fields: () => ({element: E}),
+    methods: () => ({
+      append: dart.definiteFunctionType(dart.void, [E]),
+      prepend: dart.definiteFunctionType(dart.void, [E]),
+      remove: dart.definiteFunctionType(E, []),
+      previousEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
+      nextEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), [])
+    })
+  });
+  return _UserDoubleLinkedQueueEntry;
+}, _UserDoubleLinkedQueueEntry => {
+  dart.setBaseClass(_UserDoubleLinkedQueueEntry, collection._DoubleLink$(_UserDoubleLinkedQueueEntry));
+});
+collection._UserDoubleLinkedQueueEntry = _UserDoubleLinkedQueueEntry();
+const _queue = Symbol('_queue');
+const _append = Symbol('_append');
+const _prepend = Symbol('_prepend');
+const _asNonSentinelEntry = Symbol('_asNonSentinelEntry');
+collection._DoubleLinkedQueueEntry$ = dart.generic(E => {
+  let _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
+  let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
+  class _DoubleLinkedQueueEntry extends collection._DoubleLink {
+    new(queue) {
+      this[_queue] = queue;
+      super.new();
+    }
+    [_append](e) {
+      E._check(e);
+      new (_DoubleLinkedQueueElementOfE())(e, this[_queue])[_link](this, this[_nextLink]);
+    }
+    [_prepend](e) {
+      E._check(e);
+      new (_DoubleLinkedQueueElementOfE())(e, this[_queue])[_link](this[_previousLink], this);
+    }
+    nextEntry() {
+      return this[_nextLink][_asNonSentinelEntry]();
+    }
+    previousEntry() {
+      return this[_previousLink][_asNonSentinelEntry]();
+    }
+  }
+  dart.setSignature(_DoubleLinkedQueueEntry, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueEntry$(E), [DoubleLinkedQueueOfE()])}),
+    fields: () => ({[_queue]: DoubleLinkedQueueOfE()}),
+    methods: () => ({
+      [_append]: dart.definiteFunctionType(dart.void, [E]),
+      [_prepend]: dart.definiteFunctionType(dart.void, [E]),
+      nextEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
+      previousEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), [])
+    })
+  });
+  return _DoubleLinkedQueueEntry;
+}, _DoubleLinkedQueueEntry => {
+  dart.setBaseClass(_DoubleLinkedQueueEntry, collection._DoubleLink$(_DoubleLinkedQueueEntry));
+});
+collection._DoubleLinkedQueueEntry = _DoubleLinkedQueueEntry();
+const _elementCount = Symbol('_elementCount');
+collection._DoubleLinkedQueueElement$ = dart.generic(E => {
+  let DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
+  let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
+  class _DoubleLinkedQueueElement extends collection._DoubleLinkedQueueEntry$(E) {
+    new(element, queue) {
+      this.element = element;
+      super.new(queue);
+    }
+    append(e) {
+      E._check(e);
+      this[_append](e);
+      if (this[_queue] != null) {
+        let o = this[_queue];
+        o[_elementCount] = dart.notNull(o[_elementCount]) + 1;
+      }
+    }
+    prepend(e) {
+      E._check(e);
+      this[_prepend](e);
+      if (this[_queue] != null) {
+        let o = this[_queue];
+        o[_elementCount] = dart.notNull(o[_elementCount]) + 1;
+      }
+    }
+    [_remove]() {
+      this[_queue] = null;
+      this[_unlink$]();
+      return this.element;
+    }
+    remove() {
+      if (this[_queue] != null) {
+        let o = this[_queue];
+        o[_elementCount] = dart.notNull(o[_elementCount]) - 1;
+      }
+      return this[_remove]();
+    }
+    [_asNonSentinelEntry]() {
+      return this;
+    }
+  }
+  _DoubleLinkedQueueElement[dart.implements] = () => [DoubleLinkedQueueEntryOfE()];
+  dart.setSignature(_DoubleLinkedQueueElement, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueElement$(E), [E, DoubleLinkedQueueOfE()])}),
+    fields: () => ({element: E}),
+    methods: () => ({
+      append: dart.definiteFunctionType(dart.void, [E]),
+      prepend: dart.definiteFunctionType(dart.void, [E]),
+      [_remove]: dart.definiteFunctionType(E, []),
+      remove: dart.definiteFunctionType(E, []),
+      [_asNonSentinelEntry]: dart.definiteFunctionType(collection._DoubleLinkedQueueElement$(E), [])
+    })
+  });
+  return _DoubleLinkedQueueElement;
+});
+collection._DoubleLinkedQueueElement = _DoubleLinkedQueueElement();
+collection._DoubleLinkedQueueSentinel$ = dart.generic(E => {
+  let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
+  class _DoubleLinkedQueueSentinel extends collection._DoubleLinkedQueueEntry$(E) {
+    new(queue) {
+      super.new(queue);
+      this[_previousLink] = this;
+      this[_nextLink] = this;
+    }
+    [_asNonSentinelEntry]() {
+      return null;
+    }
+    [_remove]() {
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+    get element() {
+      dart.throw(_internal.IterableElementError.noElement());
+    }
+  }
+  dart.setSignature(_DoubleLinkedQueueSentinel, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueSentinel$(E), [DoubleLinkedQueueOfE()])}),
+    getters: () => ({element: dart.definiteFunctionType(E, [])}),
+    methods: () => ({
+      [_asNonSentinelEntry]: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
+      [_remove]: dart.definiteFunctionType(E, [])
+    })
+  });
+  return _DoubleLinkedQueueSentinel;
+});
+collection._DoubleLinkedQueueSentinel = _DoubleLinkedQueueSentinel();
+const _sentinel = Symbol('_sentinel');
+collection.DoubleLinkedQueue$ = dart.generic(E => {
+  let _DoubleLinkedQueueSentinelOfE = () => (_DoubleLinkedQueueSentinelOfE = dart.constFn(collection._DoubleLinkedQueueSentinel$(E)))();
+  let DoubleLinkedQueueOfE = () => (DoubleLinkedQueueOfE = dart.constFn(collection.DoubleLinkedQueue$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
+  let _DoubleLinkedQueueIteratorOfE = () => (_DoubleLinkedQueueIteratorOfE = dart.constFn(collection._DoubleLinkedQueueIterator$(E)))();
+  let QueueOfE = () => (QueueOfE = dart.constFn(collection.Queue$(E)))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  let DoubleLinkedQueueEntryOfE = () => (DoubleLinkedQueueEntryOfE = dart.constFn(collection.DoubleLinkedQueueEntry$(E)))();
+  let DoubleLinkedQueueEntryOfETovoid = () => (DoubleLinkedQueueEntryOfETovoid = dart.constFn(dart.functionType(dart.void, [DoubleLinkedQueueEntryOfE()])))();
+  class DoubleLinkedQueue extends core.Iterable$(E) {
+    new() {
+      this[_sentinel] = null;
+      this[_elementCount] = 0;
+      super.new();
+      this[_sentinel] = new (_DoubleLinkedQueueSentinelOfE())(this);
+    }
+    static from(elements) {
+      let list = new (DoubleLinkedQueueOfE())();
+      for (let e of elements) {
+        let element = E.as(e);
+        list.addLast(element);
+      }
+      return DoubleLinkedQueueOfE()._check(list);
+    }
+    get length() {
+      return this[_elementCount];
+    }
+    addLast(value) {
+      E._check(value);
+      this[_sentinel][_prepend](value);
+      this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
+    }
+    addFirst(value) {
+      E._check(value);
+      this[_sentinel][_append](value);
+      this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
+    }
+    add(value) {
+      E._check(value);
+      this[_sentinel][_prepend](value);
+      this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
+    }
+    addAll(iterable) {
+      IterableOfE()._check(iterable);
+      for (let value of iterable) {
+        this[_sentinel][_prepend](value);
+        this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
+      }
+    }
+    removeLast() {
+      let lastEntry = this[_sentinel][_previousLink];
+      let result = lastEntry[_remove]();
+      this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
+      return result;
+    }
+    removeFirst() {
+      let firstEntry = this[_sentinel][_nextLink];
+      let result = firstEntry[_remove]();
+      this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
+      return result;
+    }
+    remove(o) {
+      let entry = this[_sentinel][_nextLink];
+      while (!core.identical(entry, this[_sentinel])) {
+        if (dart.equals(entry.element, o)) {
+          entry[_remove]();
+          this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
+          return true;
+        }
+        entry = entry[_nextLink];
+      }
+      return false;
+    }
+    [_filter](test, removeMatching) {
+      let entry = this[_sentinel][_nextLink];
+      while (!core.identical(entry, this[_sentinel])) {
+        let next = entry[_nextLink];
+        if (core.identical(removeMatching, test(entry.element))) {
+          entry[_remove]();
+          this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
+        }
+        entry = next;
+      }
+    }
+    removeWhere(test) {
+      this[_filter](test, true);
+    }
+    retainWhere(test) {
+      this[_filter](test, false);
+    }
+    get first() {
+      let firstEntry = this[_sentinel][_nextLink];
+      return firstEntry.element;
+    }
+    get last() {
+      let lastEntry = this[_sentinel][_previousLink];
+      return lastEntry.element;
+    }
+    get single() {
+      if (core.identical(this[_sentinel][_nextLink], this[_sentinel][_previousLink])) {
+        let entry = this[_sentinel][_nextLink];
+        return entry.element;
+      }
+      dart.throw(_internal.IterableElementError.tooMany());
+    }
+    lastEntry() {
+      return this[_sentinel].previousEntry();
+    }
+    firstEntry() {
+      return this[_sentinel].nextEntry();
+    }
+    get isEmpty() {
+      return core.identical(this[_sentinel][_nextLink], this[_sentinel]);
+    }
+    clear() {
+      this[_sentinel][_nextLink] = this[_sentinel];
+      this[_sentinel][_previousLink] = this[_sentinel];
+      this[_elementCount] = 0;
+    }
+    forEachEntry(f) {
+      let entry = this[_sentinel][_nextLink];
+      while (!core.identical(entry, this[_sentinel])) {
+        let nextEntry = entry[_nextLink];
+        let element = _DoubleLinkedQueueElementOfE()._check(entry);
+        f(element);
+        entry = nextEntry;
+      }
+    }
+    get iterator() {
+      return new (_DoubleLinkedQueueIteratorOfE())(this[_sentinel]);
+    }
+    toString() {
+      return collection.IterableBase.iterableToFullString(this, '{', '}');
+    }
+  }
+  DoubleLinkedQueue[dart.implements] = () => [QueueOfE()];
+  dart.setSignature(DoubleLinkedQueue, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.DoubleLinkedQueue$(E), []),
+      from: dart.definiteFunctionType(collection.DoubleLinkedQueue$(E), [core.Iterable])
+    }),
+    fields: () => ({
+      [_sentinel]: _DoubleLinkedQueueSentinelOfE(),
+      [_elementCount]: core.int
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(collection._DoubleLinkedQueueIterator$(E), [])}),
+    methods: () => ({
+      addLast: dart.definiteFunctionType(dart.void, [E]),
+      addFirst: dart.definiteFunctionType(dart.void, [E]),
+      add: dart.definiteFunctionType(dart.void, [E]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      removeLast: dart.definiteFunctionType(E, []),
+      removeFirst: dart.definiteFunctionType(E, []),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_filter]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      lastEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
+      firstEntry: dart.definiteFunctionType(collection.DoubleLinkedQueueEntry$(E), []),
+      clear: dart.definiteFunctionType(dart.void, []),
+      forEachEntry: dart.definiteFunctionType(dart.void, [DoubleLinkedQueueEntryOfETovoid()])
+    })
+  });
+  dart.defineExtensionMembers(DoubleLinkedQueue, [
+    'toString',
+    'length',
+    'first',
+    'last',
+    'single',
+    'isEmpty',
+    'iterator'
+  ]);
+  return DoubleLinkedQueue;
+});
+collection.DoubleLinkedQueue = DoubleLinkedQueue();
+const _nextEntry = Symbol('_nextEntry');
+collection._DoubleLinkedQueueIterator$ = dart.generic(E => {
+  let _DoubleLinkedQueueElementOfE = () => (_DoubleLinkedQueueElementOfE = dart.constFn(collection._DoubleLinkedQueueElement$(E)))();
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let _DoubleLinkedQueueSentinelOfE = () => (_DoubleLinkedQueueSentinelOfE = dart.constFn(collection._DoubleLinkedQueueSentinel$(E)))();
+  let _DoubleLinkedQueueEntryOfE = () => (_DoubleLinkedQueueEntryOfE = dart.constFn(collection._DoubleLinkedQueueEntry$(E)))();
+  class _DoubleLinkedQueueIterator extends core.Object {
+    new(sentinel) {
+      this[_sentinel] = sentinel;
+      this[_nextEntry] = sentinel[_nextLink];
+      this[_current$2] = null;
+    }
+    moveNext() {
+      if (core.identical(this[_nextEntry], this[_sentinel])) {
+        this[_current$2] = null;
+        this[_nextEntry] = null;
+        this[_sentinel] = null;
+        return false;
+      }
+      let elementEntry = _DoubleLinkedQueueElementOfE()._check(this[_nextEntry]);
+      if (elementEntry[_queue] == null) {
+        dart.throw(new core.ConcurrentModificationError(this[_sentinel][_queue]));
+      }
+      this[_current$2] = elementEntry.element;
+      this[_nextEntry] = elementEntry[_nextLink];
+      return true;
+    }
+    get current() {
+      return this[_current$2];
+    }
+  }
+  dart.addTypeTests(_DoubleLinkedQueueIterator);
+  _DoubleLinkedQueueIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_DoubleLinkedQueueIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._DoubleLinkedQueueIterator$(E), [_DoubleLinkedQueueSentinelOfE()])}),
+    fields: () => ({
+      [_sentinel]: _DoubleLinkedQueueSentinelOfE(),
+      [_nextEntry]: _DoubleLinkedQueueEntryOfE(),
+      [_current$2]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _DoubleLinkedQueueIterator;
+});
+collection._DoubleLinkedQueueIterator = _DoubleLinkedQueueIterator();
+const _head = Symbol('_head');
+const _tail = Symbol('_tail');
+const _table = Symbol('_table');
+const _checkModification = Symbol('_checkModification');
+const _writeToList = Symbol('_writeToList');
+const _preGrow = Symbol('_preGrow');
+const _grow = Symbol('_grow');
+collection.ListQueue$ = dart.generic(E => {
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let ListQueueOfE = () => (ListQueueOfE = dart.constFn(collection.ListQueue$(E)))();
+  let _ListQueueIteratorOfE = () => (_ListQueueIteratorOfE = dart.constFn(collection._ListQueueIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let QueueOfE = () => (QueueOfE = dart.constFn(collection.Queue$(E)))();
+  let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  class ListQueue extends core.Iterable$(E) {
+    new(initialCapacity) {
+      if (initialCapacity === void 0) initialCapacity = null;
+      this[_head] = 0;
+      this[_tail] = 0;
+      this[_table] = null;
+      this[_modificationCount] = 0;
+      super.new();
+      if (initialCapacity == null || dart.notNull(initialCapacity) < collection.ListQueue._INITIAL_CAPACITY) {
+        initialCapacity = collection.ListQueue._INITIAL_CAPACITY;
+      } else if (!dart.test(collection.ListQueue._isPowerOf2(initialCapacity))) {
+        initialCapacity = collection.ListQueue._nextPowerOf2(initialCapacity);
+      }
+      dart.assert(collection.ListQueue._isPowerOf2(initialCapacity));
+      this[_table] = ListOfE().new(initialCapacity);
+    }
+    static from(elements) {
+      if (core.List.is(elements)) {
+        let length = elements[dartx.length];
+        let queue = new (ListQueueOfE())(dart.notNull(length) + 1);
+        dart.assert(dart.notNull(queue[_table][dartx.length]) > dart.notNull(length));
+        for (let i = 0; i < dart.notNull(length); i++) {
+          queue[_table][dartx._set](i, E.as(elements[dartx._get](i)));
+        }
+        queue[_tail] = length;
+        return queue;
+      } else {
+        let capacity = collection.ListQueue._INITIAL_CAPACITY;
+        if (_internal.EfficientLength.is(elements)) {
+          capacity = elements[dartx.length];
+        }
+        let result = new (ListQueueOfE())(capacity);
+        for (let element of elements) {
+          result.addLast(E.as(element));
+        }
+        return result;
+      }
+    }
+    get iterator() {
+      return new (_ListQueueIteratorOfE())(this);
+    }
+    forEach(action) {
+      let modificationCount = this[_modificationCount];
+      for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0) {
+        action(this[_table][dartx._get](i));
+        this[_checkModification](modificationCount);
+      }
+    }
+    get isEmpty() {
+      return this[_head] == this[_tail];
+    }
+    get length() {
+      return (dart.notNull(this[_tail]) - dart.notNull(this[_head]) & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
+    }
+    get first() {
+      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
+      return this[_table][dartx._get](this[_head]);
+    }
+    get last() {
+      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
+      return this[_table][dartx._get]((dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0);
+    }
+    get single() {
+      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
+      if (dart.notNull(this.length) > 1) dart.throw(_internal.IterableElementError.tooMany());
+      return this[_table][dartx._get](this[_head]);
+    }
+    elementAt(index) {
+      core.RangeError.checkValidIndex(index, this);
+      return this[_table][dartx._get]((dart.notNull(this[_head]) + dart.notNull(index) & dart.notNull(this[_table][dartx.length]) - 1) >>> 0);
+    }
+    toList(opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let list = null;
+      if (dart.test(growable)) {
+        list = ListOfE().new();
+        list[dartx.length] = this.length;
+      } else {
+        list = ListOfE().new(this.length);
+      }
+      this[_writeToList](list);
+      return list;
+    }
+    add(value) {
+      E._check(value);
+      this[_add$0](value);
+    }
+    addAll(elements) {
+      IterableOfE()._check(elements);
+      if (ListOfE().is(elements)) {
+        let list = elements;
+        let addCount = list[dartx.length];
+        let length = this.length;
+        if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this[_table][dartx.length])) {
+          this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
+          this[_table][dartx.setRange](length, dart.notNull(length) + dart.notNull(addCount), list, 0);
+          this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
+        } else {
+          let endSpace = dart.notNull(this[_table][dartx.length]) - dart.notNull(this[_tail]);
+          if (dart.notNull(addCount) < endSpace) {
+            this[_table][dartx.setRange](this[_tail], dart.notNull(this[_tail]) + dart.notNull(addCount), list, 0);
+            this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
+          } else {
+            let preSpace = dart.notNull(addCount) - endSpace;
+            this[_table][dartx.setRange](this[_tail], dart.notNull(this[_tail]) + endSpace, list, 0);
+            this[_table][dartx.setRange](0, preSpace, list, endSpace);
+            this[_tail] = preSpace;
+          }
+        }
+        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      } else {
+        for (let element of elements)
+          this[_add$0](element);
+      }
+    }
+    remove(value) {
+      for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0) {
+        let element = this[_table][dartx._get](i);
+        if (dart.equals(element, value)) {
+          this[_remove](i);
+          this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+          return true;
+        }
+      }
+      return false;
+    }
+    [_filterWhere](test, removeMatching) {
+      let modificationCount = this[_modificationCount];
+      let i = this[_head];
+      while (i != this[_tail]) {
+        let element = this[_table][dartx._get](i);
+        let remove = core.identical(removeMatching, test(element));
+        this[_checkModification](modificationCount);
+        if (remove) {
+          i = this[_remove](i);
+          modificationCount = this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+        } else {
+          i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
+        }
+      }
+    }
+    removeWhere(test) {
+      this[_filterWhere](test, true);
+    }
+    retainWhere(test) {
+      this[_filterWhere](test, false);
+    }
+    clear() {
+      if (this[_head] != this[_tail]) {
+        for (let i = this[_head]; i != this[_tail]; i = (dart.notNull(i) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0) {
+          this[_table][dartx._set](i, null);
+        }
+        this[_head] = this[_tail] = 0;
+        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      }
+    }
+    toString() {
+      return collection.IterableBase.iterableToFullString(this, "{", "}");
+    }
+    addLast(value) {
+      E._check(value);
+      this[_add$0](value);
+    }
+    addFirst(value) {
+      E._check(value);
+      this[_head] = (dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
+      this[_table][dartx._set](this[_head], value);
+      if (this[_head] == this[_tail]) this[_grow]();
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+    }
+    removeFirst() {
+      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      let result = this[_table][dartx._get](this[_head]);
+      this[_table][dartx._set](this[_head], null);
+      this[_head] = (dart.notNull(this[_head]) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
+      return result;
+    }
+    removeLast() {
+      if (this[_head] == this[_tail]) dart.throw(_internal.IterableElementError.noElement());
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      this[_tail] = (dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
+      let result = this[_table][dartx._get](this[_tail]);
+      this[_table][dartx._set](this[_tail], null);
+      return result;
+    }
+    static _isPowerOf2(number) {
+      return (dart.notNull(number) & dart.notNull(number) - 1) == 0;
+    }
+    static _nextPowerOf2(number) {
+      dart.assert(dart.notNull(number) > 0);
+      number = (dart.notNull(number) << 1 >>> 0) - 1;
+      for (;;) {
+        let nextNumber = (dart.notNull(number) & dart.notNull(number) - 1) >>> 0;
+        if (nextNumber == 0) return number;
+        number = nextNumber;
+      }
+    }
+    [_checkModification](expectedModificationCount) {
+      if (expectedModificationCount != this[_modificationCount]) {
+        dart.throw(new core.ConcurrentModificationError(this));
+      }
+    }
+    [_add$0](element) {
+      E._check(element);
+      this[_table][dartx._set](this[_tail], element);
+      this[_tail] = (dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
+      if (this[_head] == this[_tail]) this[_grow]();
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+    }
+    [_remove](offset) {
+      let mask = dart.notNull(this[_table][dartx.length]) - 1;
+      let startDistance = (dart.notNull(offset) - dart.notNull(this[_head]) & mask) >>> 0;
+      let endDistance = (dart.notNull(this[_tail]) - dart.notNull(offset) & mask) >>> 0;
+      if (startDistance < endDistance) {
+        let i = offset;
+        while (i != this[_head]) {
+          let prevOffset = (dart.notNull(i) - 1 & mask) >>> 0;
+          this[_table][dartx._set](i, this[_table][dartx._get](prevOffset));
+          i = prevOffset;
+        }
+        this[_table][dartx._set](this[_head], null);
+        this[_head] = (dart.notNull(this[_head]) + 1 & mask) >>> 0;
+        return (dart.notNull(offset) + 1 & mask) >>> 0;
+      } else {
+        this[_tail] = (dart.notNull(this[_tail]) - 1 & mask) >>> 0;
+        let i = offset;
+        while (i != this[_tail]) {
+          let nextOffset = (dart.notNull(i) + 1 & mask) >>> 0;
+          this[_table][dartx._set](i, this[_table][dartx._get](nextOffset));
+          i = nextOffset;
+        }
+        this[_table][dartx._set](this[_tail], null);
+        return offset;
+      }
+    }
+    [_grow]() {
+      let newTable = ListOfE().new(dart.notNull(this[_table][dartx.length]) * 2);
+      let split = dart.notNull(this[_table][dartx.length]) - dart.notNull(this[_head]);
+      newTable[dartx.setRange](0, split, this[_table], this[_head]);
+      newTable[dartx.setRange](split, split + dart.notNull(this[_head]), this[_table], 0);
+      this[_head] = 0;
+      this[_tail] = this[_table][dartx.length];
+      this[_table] = newTable;
+    }
+    [_writeToList](target) {
+      ListOfE()._check(target);
+      dart.assert(dart.notNull(target[dartx.length]) >= dart.notNull(this.length));
+      if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) {
+        let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]);
+        target[dartx.setRange](0, length, this[_table], this[_head]);
+        return length;
+      } else {
+        let firstPartSize = dart.notNull(this[_table][dartx.length]) - dart.notNull(this[_head]);
+        target[dartx.setRange](0, firstPartSize, this[_table], this[_head]);
+        target[dartx.setRange](firstPartSize, firstPartSize + dart.notNull(this[_tail]), this[_table], 0);
+        return dart.notNull(this[_tail]) + firstPartSize;
+      }
+    }
+    [_preGrow](newElementCount) {
+      dart.assert(dart.notNull(newElementCount) >= dart.notNull(this.length));
+      newElementCount = dart.notNull(newElementCount) + newElementCount[dartx['>>']](1);
+      let newCapacity = collection.ListQueue._nextPowerOf2(newElementCount);
+      let newTable = ListOfE().new(newCapacity);
+      this[_tail] = this[_writeToList](newTable);
+      this[_table] = newTable;
+      this[_head] = 0;
+    }
+  }
+  ListQueue[dart.implements] = () => [QueueOfE()];
+  dart.setSignature(ListQueue, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.ListQueue$(E), [], [core.int]),
+      from: dart.definiteFunctionType(collection.ListQueue$(E), [core.Iterable])
+    }),
+    fields: () => ({
+      [_table]: ListOfE(),
+      [_head]: core.int,
+      [_tail]: core.int,
+      [_modificationCount]: core.int
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [E]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      [_filterWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      addLast: dart.definiteFunctionType(dart.void, [E]),
+      addFirst: dart.definiteFunctionType(dart.void, [E]),
+      removeFirst: dart.definiteFunctionType(E, []),
+      removeLast: dart.definiteFunctionType(E, []),
+      [_checkModification]: dart.definiteFunctionType(dart.void, [core.int]),
+      [_add$0]: dart.definiteFunctionType(dart.void, [E]),
+      [_remove]: dart.definiteFunctionType(core.int, [core.int]),
+      [_grow]: dart.definiteFunctionType(dart.void, []),
+      [_writeToList]: dart.definiteFunctionType(core.int, [ListOfE()]),
+      [_preGrow]: dart.definiteFunctionType(dart.void, [core.int])
+    }),
+    sfields: () => ({_INITIAL_CAPACITY: core.int}),
+    statics: () => ({
+      _isPowerOf2: dart.definiteFunctionType(core.bool, [core.int]),
+      _nextPowerOf2: dart.definiteFunctionType(core.int, [core.int])
+    }),
+    names: ['_isPowerOf2', '_nextPowerOf2']
+  });
+  dart.defineExtensionMembers(ListQueue, [
+    'forEach',
+    'elementAt',
+    'toList',
+    'toString',
+    'iterator',
+    'isEmpty',
+    'length',
+    'first',
+    'last',
+    'single'
+  ]);
+  return ListQueue;
+});
+collection.ListQueue = ListQueue();
+collection.ListQueue._INITIAL_CAPACITY = 8;
+const _end = Symbol('_end');
+const _position = Symbol('_position');
+collection._ListQueueIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let ListQueueOfE = () => (ListQueueOfE = dart.constFn(collection.ListQueue$(E)))();
+  class _ListQueueIterator extends core.Object {
+    new(queue) {
+      this[_queue] = queue;
+      this[_end] = queue[_tail];
+      this[_modificationCount] = queue[_modificationCount];
+      this[_position] = queue[_head];
+      this[_current$2] = null;
+    }
+    get current() {
+      return this[_current$2];
+    }
+    moveNext() {
+      this[_queue][_checkModification](this[_modificationCount]);
+      if (this[_position] == this[_end]) {
+        this[_current$2] = null;
+        return false;
+      }
+      this[_current$2] = this[_queue][_table][dartx._get](this[_position]);
+      this[_position] = (dart.notNull(this[_position]) + 1 & dart.notNull(this[_queue][_table][dartx.length]) - 1) >>> 0;
+      return true;
+    }
+  }
+  dart.addTypeTests(_ListQueueIterator);
+  _ListQueueIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_ListQueueIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._ListQueueIterator$(E), [ListQueueOfE()])}),
+    fields: () => ({
+      [_queue]: ListQueueOfE(),
+      [_end]: core.int,
+      [_modificationCount]: core.int,
+      [_position]: core.int,
+      [_current$2]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _ListQueueIterator;
+});
+collection._ListQueueIterator = _ListQueueIterator();
+collection._Predicate$ = dart.generic(T => {
+  const _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.bool, [T]));
+  return _Predicate;
+});
+collection._Predicate = _Predicate$();
+collection._SplayTreeNode$ = dart.generic(K => {
+  let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
+  class _SplayTreeNode extends core.Object {
+    new(key) {
+      this.key = key;
+      this.left = null;
+      this.right = null;
+    }
+  }
+  dart.addTypeTests(_SplayTreeNode);
+  dart.setSignature(_SplayTreeNode, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeNode$(K), [K])}),
+    fields: () => ({
+      key: K,
+      left: _SplayTreeNodeOfK(),
+      right: _SplayTreeNodeOfK()
+    })
+  });
+  return _SplayTreeNode;
+});
+collection._SplayTreeNode = _SplayTreeNode();
+collection._SplayTreeMapNode$ = dart.generic((K, V) => {
+  class _SplayTreeMapNode extends collection._SplayTreeNode$(K) {
+    new(key, value) {
+      this.value = value;
+      super.new(key);
+    }
+  }
+  dart.setSignature(_SplayTreeMapNode, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeMapNode$(K, V), [K, V])}),
+    fields: () => ({value: V})
+  });
+  return _SplayTreeMapNode;
+});
+collection._SplayTreeMapNode = _SplayTreeMapNode();
+const _count$ = Symbol('_count');
+const _splayCount = Symbol('_splayCount');
+const _root = Symbol('_root');
+const _dummy = Symbol('_dummy');
+const _comparator = Symbol('_comparator');
+const _compare = Symbol('_compare');
+const _splay = Symbol('_splay');
+const _splayMin = Symbol('_splayMin');
+const _splayMax = Symbol('_splayMax');
+const _addNewRoot = Symbol('_addNewRoot');
+const _clear$ = Symbol('_clear');
+collection._SplayTree$ = dart.generic((K, Node) => {
+  class _SplayTree extends core.Object {
+    new() {
+      this[_count$] = 0;
+      this[_modificationCount] = 0;
+      this[_splayCount] = 0;
+    }
+    [_splay](key) {
+      K._check(key);
+      if (this[_root] == null) return -1;
+      let left = this[_dummy];
+      let right = this[_dummy];
+      let current = this[_root];
+      let comp = null;
+      while (true) {
+        comp = this[_compare](current.key, key);
+        if (dart.notNull(comp) > 0) {
+          if (current.left == null) break;
+          comp = this[_compare](current.left.key, key);
+          if (dart.notNull(comp) > 0) {
+            let tmp = current.left;
+            current.left = tmp.right;
+            tmp.right = current;
+            current = Node._check(tmp);
+            if (current.left == null) break;
+          }
+          right.left = current;
+          right = current;
+          current = Node._check(current.left);
+        } else if (dart.notNull(comp) < 0) {
+          if (current.right == null) break;
+          comp = this[_compare](current.right.key, key);
+          if (dart.notNull(comp) < 0) {
+            let tmp = Node._check(current.right);
+            current.right = tmp.left;
+            tmp.left = current;
+            current = tmp;
+            if (current.right == null) break;
+          }
+          left.right = current;
+          left = current;
+          current = Node._check(current.right);
+        } else {
+          break;
+        }
+      }
+      left.right = current.left;
+      right.left = current.right;
+      current.left = this[_dummy].right;
+      current.right = this[_dummy].left;
+      this[_root] = current;
+      this[_dummy].right = null;
+      this[_dummy].left = null;
+      this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
+      return comp;
+    }
+    [_splayMin](node) {
+      Node._check(node);
+      let current = node;
+      while (current.left != null) {
+        let left = Node._check(current.left);
+        current.left = left.right;
+        left.right = current;
+        current = left;
+      }
+      return current;
+    }
+    [_splayMax](node) {
+      Node._check(node);
+      let current = node;
+      while (current.right != null) {
+        let right = Node._check(current.right);
+        current.right = right.left;
+        right.left = current;
+        current = right;
+      }
+      return current;
+    }
+    [_remove](key) {
+      K._check(key);
+      if (this[_root] == null) return null;
+      let comp = this[_splay](key);
+      if (comp != 0) return null;
+      let result = this[_root];
+      this[_count$] = dart.notNull(this[_count$]) - 1;
+      if (this[_root].left == null) {
+        this[_root] = Node._check(this[_root].right);
+      } else {
+        let right = Node._check(this[_root].right);
+        this[_root] = this[_splayMax](Node._check(this[_root].left));
+        this[_root].right = right;
+      }
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      return result;
+    }
+    [_addNewRoot](node, comp) {
+      Node._check(node);
+      this[_count$] = dart.notNull(this[_count$]) + 1;
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      if (this[_root] == null) {
+        this[_root] = node;
+        return;
+      }
+      if (dart.notNull(comp) < 0) {
+        node.left = this[_root];
+        node.right = this[_root].right;
+        this[_root].right = null;
+      } else {
+        node.right = this[_root];
+        node.left = this[_root].left;
+        this[_root].left = null;
+      }
+      this[_root] = node;
+    }
+    get [_first$]() {
+      if (this[_root] == null) return null;
+      this[_root] = this[_splayMin](this[_root]);
+      return this[_root];
+    }
+    get [_last$]() {
+      if (this[_root] == null) return null;
+      this[_root] = this[_splayMax](this[_root]);
+      return this[_root];
+    }
+    [_clear$]() {
+      this[_root] = null;
+      this[_count$] = 0;
+      this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+    }
+  }
+  dart.addTypeTests(_SplayTree);
+  dart.setSignature(_SplayTree, {
+    fields: () => ({
+      [_count$]: core.int,
+      [_modificationCount]: core.int,
+      [_splayCount]: core.int
+    }),
+    getters: () => ({
+      [_first$]: dart.definiteFunctionType(Node, []),
+      [_last$]: dart.definiteFunctionType(Node, [])
+    }),
+    methods: () => ({
+      [_splay]: dart.definiteFunctionType(core.int, [K]),
+      [_splayMin]: dart.definiteFunctionType(Node, [Node]),
+      [_splayMax]: dart.definiteFunctionType(Node, [Node]),
+      [_remove]: dart.definiteFunctionType(Node, [K]),
+      [_addNewRoot]: dart.definiteFunctionType(dart.void, [Node, core.int]),
+      [_clear$]: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _SplayTree;
+});
+collection._SplayTree = _SplayTree();
+collection._TypeTest$ = dart.generic(T => {
+  class _TypeTest extends core.Object {
+    test(v) {
+      return T.is(v);
+    }
+  }
+  dart.addTypeTests(_TypeTest);
+  dart.setSignature(_TypeTest, {
+    methods: () => ({test: dart.definiteFunctionType(core.bool, [dart.dynamic])})
+  });
+  return _TypeTest;
+});
+collection._TypeTest = _TypeTest();
+collection.SplayTreeMap$ = dart.generic((K, V) => {
+  let _SplayTreeMapNodeOfK$V = () => (_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
+  let ComparatorOfK = () => (ComparatorOfK = dart.constFn(core.Comparator$(K)))();
+  let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let _SplayTreeNodeIteratorOfK = () => (_SplayTreeNodeIteratorOfK = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
+  let _SplayTreeKeyIterableOfK = () => (_SplayTreeKeyIterableOfK = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
+  let _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
+  let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
+  let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
+  let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
+  class SplayTreeMap extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {
+    new(compare, isValidKey) {
+      if (compare === void 0) compare = null;
+      if (isValidKey === void 0) isValidKey = null;
+      this[_dummy] = new (_SplayTreeMapNodeOfK$V())(null, null);
+      this[_comparator] = (() => {
+        let l = compare;
+        return l != null ? l : ComparatorOfK().as(core.Comparable.compare);
+      })();
+      this[_validKey] = (() => {
+        let l = isValidKey;
+        return l != null ? l : dart.fn(v => K.is(v), dynamicTobool$());
+      })();
+      this[_root] = null;
+      super.new();
+    }
+    static from(other, compare, isValidKey) {
+      if (compare === void 0) compare = null;
+      if (isValidKey === void 0) isValidKey = null;
+      let result = new (SplayTreeMapOfK$V())(compare, isValidKey);
+      other[dartx.forEach](dart.fn((k, v) => {
+        result._set(K.as(k), V.as(v));
+      }, dynamicAnddynamicToNull()));
+      return result;
+    }
+    static fromIterable(iterable, opts) {
+      let key = opts && 'key' in opts ? opts.key : null;
+      let value = opts && 'value' in opts ? opts.value : null;
+      let compare = opts && 'compare' in opts ? opts.compare : null;
+      let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
+      let map = new (SplayTreeMapOfK$V())(compare, isValidKey);
+      collection.Maps._fillMapWithMappedIterable(map, iterable, key, value);
+      return map;
+    }
+    static fromIterables(keys, values, compare, isValidKey) {
+      if (compare === void 0) compare = null;
+      if (isValidKey === void 0) isValidKey = null;
+      let map = new (SplayTreeMapOfK$V())(compare, isValidKey);
+      collection.Maps._fillMapWithIterables(map, keys, values);
+      return map;
+    }
+    [_compare](key1, key2) {
+      K._check(key1);
+      K._check(key2);
+      return this[_comparator](key1, key2);
+    }
+    _internal() {
+      this[_dummy] = new (_SplayTreeMapNodeOfK$V())(null, null);
+      this[_root] = null;
+      this[_comparator] = null;
+      this[_validKey] = null;
+      super.new();
+    }
+    _get(key) {
+      if (!dart.test(dart.dcall(this[_validKey], key))) return null;
+      if (this[_root] != null) {
+        let comp = this[_splay](K.as(key));
+        if (comp == 0) {
+          return this[_root].value;
+        }
+      }
+      return null;
+    }
+    remove(key) {
+      if (!dart.test(dart.dcall(this[_validKey], key))) return null;
+      let mapRoot = this[_remove](K.as(key));
+      if (mapRoot != null) return mapRoot.value;
+      return null;
+    }
+    _set(key, value) {
+      (() => {
+        K._check(key);
+        V._check(value);
+        if (key == null) dart.throw(new core.ArgumentError(key));
+        let comp = this[_splay](key);
+        if (comp == 0) {
+          this[_root].value = value;
+          return;
+        }
+        this[_addNewRoot](new (_SplayTreeMapNodeOfK$V())(key, value), comp);
+      })();
+      return value;
+    }
+    putIfAbsent(key, ifAbsent) {
+      K._check(key);
+      VoidToV()._check(ifAbsent);
+      if (key == null) dart.throw(new core.ArgumentError(key));
+      let comp = this[_splay](key);
+      if (comp == 0) {
+        return this[_root].value;
+      }
+      let modificationCount = this[_modificationCount];
+      let splayCount = this[_splayCount];
+      let value = ifAbsent();
+      if (modificationCount != this[_modificationCount]) {
+        dart.throw(new core.ConcurrentModificationError(this));
+      }
+      if (splayCount != this[_splayCount]) {
+        comp = this[_splay](key);
+        dart.assert(comp != 0);
+      }
+      this[_addNewRoot](new (_SplayTreeMapNodeOfK$V())(key, value), comp);
+      return value;
+    }
+    addAll(other) {
+      MapOfK$V()._check(other);
+      other[dartx.forEach](dart.fn((key, value) => {
+        this._set(key, value);
+      }, KAndVToNull()));
+    }
+    get isEmpty() {
+      return this[_root] == null;
+    }
+    get isNotEmpty() {
+      return !dart.test(this.isEmpty);
+    }
+    forEach(f) {
+      let nodes = new (_SplayTreeNodeIteratorOfK())(this);
+      while (dart.test(nodes.moveNext())) {
+        let node = _SplayTreeMapNodeOfK$V()._check(nodes.current);
+        f(node.key, node.value);
+      }
+    }
+    get length() {
+      return this[_count$];
+    }
+    clear() {
+      this[_clear$]();
+    }
+    containsKey(key) {
+      return dart.test(dart.dcall(this[_validKey], key)) && this[_splay](K.as(key)) == 0;
+    }
+    containsValue(value) {
+      let found = false;
+      let initialSplayCount = this[_splayCount];
+      const visit = (function(node) {
+        while (node != null) {
+          if (dart.equals(node.value, value)) return true;
+          if (initialSplayCount != this[_splayCount]) {
+            dart.throw(new core.ConcurrentModificationError(this));
+          }
+          if (node.right != null && dart.test(visit(collection._SplayTreeMapNode._check(node.right)))) return true;
+          node = collection._SplayTreeMapNode._check(node.left);
+        }
+        return false;
+      }).bind(this);
+      dart.fn(visit, _SplayTreeMapNodeTobool());
+      return visit(this[_root]);
+    }
+    get keys() {
+      return new (_SplayTreeKeyIterableOfK())(this);
+    }
+    get values() {
+      return new (_SplayTreeValueIterableOfK$V())(this);
+    }
+    toString() {
+      return collection.Maps.mapToString(this);
+    }
+    firstKey() {
+      if (this[_root] == null) return null;
+      return this[_first$].key;
+    }
+    lastKey() {
+      if (this[_root] == null) return null;
+      return this[_last$].key;
+    }
+    lastKeyBefore(key) {
+      K._check(key);
+      if (key == null) dart.throw(new core.ArgumentError(key));
+      if (this[_root] == null) return null;
+      let comp = this[_splay](key);
+      if (dart.notNull(comp) < 0) return this[_root].key;
+      let node = this[_root].left;
+      if (node == null) return null;
+      while (node.right != null) {
+        node = node.right;
+      }
+      return node.key;
+    }
+    firstKeyAfter(key) {
+      K._check(key);
+      if (key == null) dart.throw(new core.ArgumentError(key));
+      if (this[_root] == null) return null;
+      let comp = this[_splay](key);
+      if (dart.notNull(comp) > 0) return this[_root].key;
+      let node = this[_root].right;
+      if (node == null) return null;
+      while (node.left != null) {
+        node = node.left;
+      }
+      return node.key;
+    }
+  }
+  dart.defineNamedConstructor(SplayTreeMap, '_internal');
+  SplayTreeMap[dart.implements] = () => [MapOfK$V()];
+  dart.setSignature(SplayTreeMap, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [], [ComparatorOfK(), dynamicTobool()]),
+      from: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [core.Map], [ComparatorOfK(), dynamicTobool()]),
+      fromIterable: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV(), compare: ComparatorOfK(), isValidKey: dynamicTobool()}),
+      fromIterables: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [IterableOfK(), IterableOfV()], [ComparatorOfK(), dynamicTobool()]),
+      _internal: dart.definiteFunctionType(collection.SplayTreeMap$(K, V), [])
+    }),
+    fields: () => ({
+      [_root]: _SplayTreeMapNodeOfK$V(),
+      [_dummy]: _SplayTreeMapNodeOfK$V(),
+      [_comparator]: ComparatorOfK(),
+      [_validKey]: collection._Predicate
+    }),
+    getters: () => ({
+      isEmpty: dart.definiteFunctionType(core.bool, []),
+      isNotEmpty: dart.definiteFunctionType(core.bool, []),
+      length: dart.definiteFunctionType(core.int, []),
+      keys: dart.definiteFunctionType(core.Iterable$(K), []),
+      values: dart.definiteFunctionType(core.Iterable$(V), [])
+    }),
+    methods: () => ({
+      [_compare]: dart.definiteFunctionType(core.int, [K, K]),
+      _get: dart.definiteFunctionType(V, [core.Object]),
+      remove: dart.definiteFunctionType(V, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [K, V]),
+      putIfAbsent: dart.definiteFunctionType(V, [K, VoidToV()]),
+      addAll: dart.definiteFunctionType(dart.void, [MapOfK$V()]),
+      forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
+      clear: dart.definiteFunctionType(dart.void, []),
+      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      firstKey: dart.definiteFunctionType(K, []),
+      lastKey: dart.definiteFunctionType(K, []),
+      lastKeyBefore: dart.definiteFunctionType(K, [K]),
+      firstKeyAfter: dart.definiteFunctionType(K, [K])
+    })
+  });
+  dart.defineExtensionMembers(SplayTreeMap, [
+    '_get',
+    'remove',
+    '_set',
+    'putIfAbsent',
+    'addAll',
+    'forEach',
+    'clear',
+    'containsKey',
+    'containsValue',
+    'isEmpty',
+    'isNotEmpty',
+    'length',
+    'keys',
+    'values'
+  ]);
+  return SplayTreeMap;
+});
+collection.SplayTreeMap = SplayTreeMap();
+const _workList = Symbol('_workList');
+const _tree = Symbol('_tree');
+const _currentNode = Symbol('_currentNode');
+const _findLeftMostDescendent = Symbol('_findLeftMostDescendent');
+const _getValue = Symbol('_getValue');
+const _rebuildWorkList = Symbol('_rebuildWorkList');
+collection._SplayTreeIterator$ = dart.generic((K, T) => {
+  let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
+  let JSArrayOf_SplayTreeNodeOfK = () => (JSArrayOf_SplayTreeNodeOfK = dart.constFn(_interceptors.JSArray$(_SplayTreeNodeOfK())))();
+  let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
+  let ListOf_SplayTreeNodeOfK = () => (ListOf_SplayTreeNodeOfK = dart.constFn(core.List$(_SplayTreeNodeOfK())))();
+  let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
+  class _SplayTreeIterator extends core.Object {
+    new(tree) {
+      this[_workList] = JSArrayOf_SplayTreeNodeOfK().of([]);
+      this[_tree] = tree;
+      this[_modificationCount] = tree[_modificationCount];
+      this[_splayCount] = tree[_splayCount];
+      this[_currentNode] = null;
+      this[_findLeftMostDescendent](tree[_root]);
+    }
+    startAt(tree, startKey) {
+      this[_workList] = JSArrayOf_SplayTreeNodeOfK().of([]);
+      this[_tree] = tree;
+      this[_modificationCount] = tree[_modificationCount];
+      this[_splayCount] = null;
+      this[_currentNode] = null;
+      if (tree[_root] == null) return;
+      let compare = tree[_splay](startKey);
+      this[_splayCount] = tree[_splayCount];
+      if (dart.notNull(compare) < 0) {
+        this[_findLeftMostDescendent](tree[_root].right);
+      } else {
+        this[_workList][dartx.add](tree[_root]);
+      }
+    }
+    get current() {
+      if (this[_currentNode] == null) return null;
+      return this[_getValue](this[_currentNode]);
+    }
+    [_findLeftMostDescendent](node) {
+      _SplayTreeNodeOfK()._check(node);
+      while (node != null) {
+        this[_workList][dartx.add](node);
+        node = node.left;
+      }
+    }
+    [_rebuildWorkList](currentNode) {
+      _SplayTreeNodeOfK()._check(currentNode);
+      dart.assert(!dart.test(this[_workList][dartx.isEmpty]));
+      this[_workList][dartx.clear]();
+      if (currentNode == null) {
+        this[_findLeftMostDescendent](this[_tree][_root]);
+      } else {
+        this[_tree][_splay](currentNode.key);
+        this[_findLeftMostDescendent](this[_tree][_root].right);
+        dart.assert(!dart.test(this[_workList][dartx.isEmpty]));
+      }
+    }
+    moveNext() {
+      if (this[_modificationCount] != this[_tree][_modificationCount]) {
+        dart.throw(new core.ConcurrentModificationError(this[_tree]));
+      }
+      if (dart.test(this[_workList][dartx.isEmpty])) {
+        this[_currentNode] = null;
+        return false;
+      }
+      if (this[_tree][_splayCount] != this[_splayCount] && this[_currentNode] != null) {
+        this[_rebuildWorkList](this[_currentNode]);
+      }
+      this[_currentNode] = this[_workList][dartx.removeLast]();
+      this[_findLeftMostDescendent](this[_currentNode].right);
+      return true;
+    }
+  }
+  dart.addTypeTests(_SplayTreeIterator);
+  dart.defineNamedConstructor(_SplayTreeIterator, 'startAt');
+  _SplayTreeIterator[dart.implements] = () => [IteratorOfT()];
+  dart.setSignature(_SplayTreeIterator, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection._SplayTreeIterator$(K, T), [_SplayTreeOfK$_SplayTreeNodeOfK()]),
+      startAt: dart.definiteFunctionType(collection._SplayTreeIterator$(K, T), [_SplayTreeOfK$_SplayTreeNodeOfK(), K])
+    }),
+    fields: () => ({
+      [_tree]: _SplayTreeOfK$_SplayTreeNodeOfK(),
+      [_workList]: ListOf_SplayTreeNodeOfK(),
+      [_modificationCount]: core.int,
+      [_splayCount]: core.int,
+      [_currentNode]: _SplayTreeNodeOfK()
+    }),
+    getters: () => ({current: dart.definiteFunctionType(T, [])}),
+    methods: () => ({
+      [_findLeftMostDescendent]: dart.definiteFunctionType(dart.void, [_SplayTreeNodeOfK()]),
+      [_rebuildWorkList]: dart.definiteFunctionType(dart.void, [_SplayTreeNodeOfK()]),
+      moveNext: dart.definiteFunctionType(core.bool, [])
+    })
+  });
+  return _SplayTreeIterator;
+});
+collection._SplayTreeIterator = _SplayTreeIterator();
+const _copyNode = Symbol('_copyNode');
+collection._SplayTreeKeyIterable$ = dart.generic(K => {
+  let _SplayTreeKeyIteratorOfK = () => (_SplayTreeKeyIteratorOfK = dart.constFn(collection._SplayTreeKeyIterator$(K)))();
+  let SplayTreeSetOfK = () => (SplayTreeSetOfK = dart.constFn(collection.SplayTreeSet$(K)))();
+  let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
+  let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
+  class _SplayTreeKeyIterable extends core.Iterable$(K) {
+    new(tree) {
+      this[_tree] = tree;
+      super.new();
+    }
+    get length() {
+      return this[_tree][_count$];
+    }
+    get isEmpty() {
+      return this[_tree][_count$] == 0;
+    }
+    get iterator() {
+      return new (_SplayTreeKeyIteratorOfK())(this[_tree]);
+    }
+    toSet() {
+      let set = new (SplayTreeSetOfK())(this[_tree][_comparator], this[_tree][_validKey]);
+      set[_count$] = this[_tree][_count$];
+      set[_root] = set[_copyNode](this[_tree][_root]);
+      return set;
+    }
+  }
+  _SplayTreeKeyIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(_SplayTreeKeyIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeKeyIterable$(K), [_SplayTreeOfK$_SplayTreeNodeOfK()])}),
+    fields: () => ({[_tree]: _SplayTreeOfK$_SplayTreeNodeOfK()}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(K), [])})
+  });
+  dart.defineExtensionMembers(_SplayTreeKeyIterable, ['toSet', 'length', 'isEmpty', 'iterator']);
+  return _SplayTreeKeyIterable;
+});
+collection._SplayTreeKeyIterable = _SplayTreeKeyIterable();
+collection._SplayTreeValueIterable$ = dart.generic((K, V) => {
+  let _SplayTreeValueIteratorOfK$V = () => (_SplayTreeValueIteratorOfK$V = dart.constFn(collection._SplayTreeValueIterator$(K, V)))();
+  let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
+  class _SplayTreeValueIterable extends core.Iterable$(V) {
+    new(map) {
+      this[_map$0] = map;
+      super.new();
+    }
+    get length() {
+      return this[_map$0][_count$];
+    }
+    get isEmpty() {
+      return this[_map$0][_count$] == 0;
+    }
+    get iterator() {
+      return new (_SplayTreeValueIteratorOfK$V())(this[_map$0]);
+    }
+  }
+  _SplayTreeValueIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(_SplayTreeValueIterable, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeValueIterable$(K, V), [SplayTreeMapOfK$V()])}),
+    fields: () => ({[_map$0]: SplayTreeMapOfK$V()}),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(V), [])})
+  });
+  dart.defineExtensionMembers(_SplayTreeValueIterable, ['length', 'isEmpty', 'iterator']);
+  return _SplayTreeValueIterable;
+});
+collection._SplayTreeValueIterable = _SplayTreeValueIterable();
+collection._SplayTreeKeyIterator$ = dart.generic(K => {
+  let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
+  let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
+  class _SplayTreeKeyIterator extends collection._SplayTreeIterator$(K, K) {
+    new(map) {
+      super.new(map);
+    }
+    [_getValue](node) {
+      _SplayTreeNodeOfK()._check(node);
+      return node.key;
+    }
+  }
+  dart.setSignature(_SplayTreeKeyIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeKeyIterator$(K), [_SplayTreeOfK$_SplayTreeNodeOfK()])}),
+    methods: () => ({[_getValue]: dart.definiteFunctionType(K, [_SplayTreeNodeOfK()])})
+  });
+  return _SplayTreeKeyIterator;
+});
+collection._SplayTreeKeyIterator = _SplayTreeKeyIterator();
+collection._SplayTreeValueIterator$ = dart.generic((K, V) => {
+  let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
+  let _SplayTreeMapNodeOfK$V = () => (_SplayTreeMapNodeOfK$V = dart.constFn(collection._SplayTreeMapNode$(K, V)))();
+  let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
+  class _SplayTreeValueIterator extends collection._SplayTreeIterator$(K, V) {
+    new(map) {
+      super.new(map);
+    }
+    [_getValue](node) {
+      _SplayTreeNodeOfK()._check(node);
+      let mapNode = _SplayTreeMapNodeOfK$V().as(node);
+      return mapNode.value;
+    }
+  }
+  dart.setSignature(_SplayTreeValueIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeValueIterator$(K, V), [SplayTreeMapOfK$V()])}),
+    methods: () => ({[_getValue]: dart.definiteFunctionType(V, [_SplayTreeNodeOfK()])})
+  });
+  return _SplayTreeValueIterator;
+});
+collection._SplayTreeValueIterator = _SplayTreeValueIterator();
+collection._SplayTreeNodeIterator$ = dart.generic(K => {
+  let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
+  let _SplayTreeOfK$_SplayTreeNodeOfK = () => (_SplayTreeOfK$_SplayTreeNodeOfK = dart.constFn(collection._SplayTree$(K, _SplayTreeNodeOfK())))();
+  class _SplayTreeNodeIterator extends collection._SplayTreeIterator$(K, collection._SplayTreeNode$(K)) {
+    new(tree) {
+      super.new(tree);
+    }
+    startAt(tree, startKey) {
+      super.startAt(tree, startKey);
+    }
+    [_getValue](node) {
+      _SplayTreeNodeOfK()._check(node);
+      return node;
+    }
+  }
+  dart.defineNamedConstructor(_SplayTreeNodeIterator, 'startAt');
+  dart.setSignature(_SplayTreeNodeIterator, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection._SplayTreeNodeIterator$(K), [_SplayTreeOfK$_SplayTreeNodeOfK()]),
+      startAt: dart.definiteFunctionType(collection._SplayTreeNodeIterator$(K), [_SplayTreeOfK$_SplayTreeNodeOfK(), K])
+    }),
+    methods: () => ({[_getValue]: dart.definiteFunctionType(collection._SplayTreeNode$(K), [_SplayTreeNodeOfK()])})
+  });
+  return _SplayTreeNodeIterator;
+});
+collection._SplayTreeNodeIterator = _SplayTreeNodeIterator();
+const _clone = Symbol('_clone');
+collection.SplayTreeSet$ = dart.generic(E => {
+  let _SplayTreeNodeOfE = () => (_SplayTreeNodeOfE = dart.constFn(collection._SplayTreeNode$(E)))();
+  let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
+  let SplayTreeSetOfE = () => (SplayTreeSetOfE = dart.constFn(collection.SplayTreeSet$(E)))();
+  let _SplayTreeKeyIteratorOfE = () => (_SplayTreeKeyIteratorOfE = dart.constFn(collection._SplayTreeKeyIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
+  class SplayTreeSet extends dart.mixin(collection._SplayTree$(E, collection._SplayTreeNode$(E)), collection.IterableMixin$(E), collection.SetMixin$(E)) {
+    new(compare, isValidKey) {
+      if (compare === void 0) compare = null;
+      if (isValidKey === void 0) isValidKey = null;
+      this[_dummy] = new (_SplayTreeNodeOfE())(null);
+      this[_comparator] = (() => {
+        let l = compare;
+        return l != null ? l : ComparatorOfE().as(core.Comparable.compare);
+      })();
+      this[_validKey] = (() => {
+        let l = isValidKey;
+        return l != null ? l : dart.fn(v => E.is(v), dynamicTobool$());
+      })();
+      this[_root] = null;
+      super.new();
+    }
+    static from(elements, compare, isValidKey) {
+      if (compare === void 0) compare = null;
+      if (isValidKey === void 0) isValidKey = null;
+      let result = new (SplayTreeSetOfE())(compare, isValidKey);
+      for (let element of elements) {
+        let e = E.as(element);
+        result.add(e);
+      }
+      return result;
+    }
+    [_compare](e1, e2) {
+      E._check(e1);
+      E._check(e2);
+      return this[_comparator](e1, e2);
+    }
+    get iterator() {
+      return new (_SplayTreeKeyIteratorOfE())(this);
+    }
+    get length() {
+      return this[_count$];
+    }
+    get isEmpty() {
+      return this[_root] == null;
+    }
+    get isNotEmpty() {
+      return this[_root] != null;
+    }
+    get first() {
+      if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this[_first$].key;
+    }
+    get last() {
+      if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this[_last$].key;
+    }
+    get single() {
+      if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
+      if (dart.notNull(this[_count$]) > 1) dart.throw(_internal.IterableElementError.tooMany());
+      return this[_root].key;
+    }
+    contains(object) {
+      return dart.test(dart.dcall(this[_validKey], object)) && this[_splay](E.as(object)) == 0;
+    }
+    add(element) {
+      E._check(element);
+      let compare = this[_splay](element);
+      if (compare == 0) return false;
+      this[_addNewRoot](new (_SplayTreeNodeOfE())(element), compare);
+      return true;
+    }
+    remove(object) {
+      if (!dart.test(dart.dcall(this[_validKey], object))) return false;
+      return this[_remove](E.as(object)) != null;
+    }
+    addAll(elements) {
+      IterableOfE()._check(elements);
+      for (let element of elements) {
+        let compare = this[_splay](element);
+        if (compare != 0) {
+          this[_addNewRoot](new (_SplayTreeNodeOfE())(element), compare);
+        }
+      }
+    }
+    removeAll(elements) {
+      for (let element of elements) {
+        if (dart.test(dart.dcall(this[_validKey], element))) this[_remove](E.as(element));
+      }
+    }
+    retainAll(elements) {
+      let retainSet = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
+      let modificationCount = this[_modificationCount];
+      for (let object of elements) {
+        if (modificationCount != this[_modificationCount]) {
+          dart.throw(new core.ConcurrentModificationError(this));
+        }
+        if (dart.test(dart.dcall(this[_validKey], object)) && this[_splay](E.as(object)) == 0) {
+          retainSet.add(this[_root].key);
+        }
+      }
+      if (retainSet[_count$] != this[_count$]) {
+        this[_root] = retainSet[_root];
+        this[_count$] = retainSet[_count$];
+        this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
+      }
+    }
+    lookup(object) {
+      if (!dart.test(dart.dcall(this[_validKey], object))) return null;
+      let comp = this[_splay](E.as(object));
+      if (comp != 0) return null;
+      return this[_root].key;
+    }
+    intersection(other) {
+      let result = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
+      for (let element of this) {
+        if (dart.test(other.contains(element))) result.add(element);
+      }
+      return result;
+    }
+    difference(other) {
+      let result = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
+      for (let element of this) {
+        if (!dart.test(other.contains(element))) result.add(element);
+      }
+      return result;
+    }
+    union(other) {
+      SetOfE()._check(other);
+      let _ = this[_clone]();
+      _.addAll(other);
+      return _;
+    }
+    [_clone]() {
+      let set = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
+      set[_count$] = this[_count$];
+      set[_root] = this[_copyNode](this[_root]);
+      return set;
+    }
+    [_copyNode](node) {
+      _SplayTreeNodeOfE()._check(node);
+      if (node == null) return null;
+      let _ = new (_SplayTreeNodeOfE())(node.key);
+      _.left = this[_copyNode](node.left);
+      _.right = this[_copyNode](node.right);
+      return _;
+    }
+    clear() {
+      this[_clear$]();
+    }
+    toSet() {
+      return this[_clone]();
+    }
+    toString() {
+      return collection.IterableBase.iterableToFullString(this, '{', '}');
+    }
+  }
+  dart.setSignature(SplayTreeSet, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(collection.SplayTreeSet$(E), [], [ComparatorOfE(), dynamicTobool()]),
+      from: dart.definiteFunctionType(collection.SplayTreeSet$(E), [core.Iterable], [ComparatorOfE(), dynamicTobool()])
+    }),
+    fields: () => ({
+      [_root]: _SplayTreeNodeOfE(),
+      [_dummy]: _SplayTreeNodeOfE(),
+      [_comparator]: ComparatorOfE(),
+      [_validKey]: collection._Predicate
+    }),
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({
+      [_compare]: dart.definiteFunctionType(core.int, [E, E]),
+      add: dart.definiteFunctionType(core.bool, [E]),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      lookup: dart.definiteFunctionType(E, [core.Object]),
+      [_clone]: dart.definiteFunctionType(collection.SplayTreeSet$(E), []),
+      [_copyNode]: dart.definiteFunctionType(collection._SplayTreeNode$(E), [_SplayTreeNodeOfE()])
+    })
+  });
+  dart.defineExtensionMembers(SplayTreeSet, [
+    'contains',
+    'toSet',
+    'toString',
+    'iterator',
+    'length',
+    'isEmpty',
+    'isNotEmpty',
+    'first',
+    'last',
+    'single'
+  ]);
+  return SplayTreeSet;
+});
+collection.SplayTreeSet = SplayTreeSet();
+const _processed = Symbol('_processed');
+const _computeKeys$ = Symbol('_computeKeys');
+const _original = Symbol('_original');
+convert._convertJsonToDart = function(json, reviver) {
+  dart.assert(reviver != null);
+  function walk(e) {
+    if (e == null || typeof e != "object") {
+      return e;
+    }
+    if (Object.getPrototypeOf(e) === Array.prototype) {
+      for (let i = 0; i < e.length; i++) {
+        let item = e[i];
+        e[i] = dart.dcall(reviver, i, walk(item));
+      }
+      return e;
+    }
+    let map = new convert._JsonMap(e);
+    let processed = map[_processed];
+    let keys = map[_computeKeys$]();
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      let key = keys[dartx._get](i);
+      let revived = dart.dcall(reviver, key, walk(e[key]));
+      processed[key] = revived;
+    }
+    map[_original] = processed;
+    return map;
+  }
+  dart.fn(walk, dynamicTodynamic$());
+  return dart.dcall(reviver, null, walk(json));
+};
+dart.fn(convert._convertJsonToDart, dynamicAndFnTodynamic());
+convert._convertJsonToDartLazy = function(object) {
+  if (object == null) return null;
+  if (typeof object != "object") {
+    return object;
+  }
+  if (Object.getPrototypeOf(object) !== Array.prototype) {
+    return new convert._JsonMap(object);
+  }
+  for (let i = 0; i < object.length; i++) {
+    let item = object[i];
+    object[i] = convert._convertJsonToDartLazy(item);
+  }
+  return object;
+};
+dart.fn(convert._convertJsonToDartLazy, dynamicTodynamic$());
+const _data = Symbol('_data');
+const _isUpgraded = Symbol('_isUpgraded');
+const _upgradedMap = Symbol('_upgradedMap');
+const _process$ = Symbol('_process');
+const _upgrade = Symbol('_upgrade');
+convert._JsonMap = class _JsonMap extends core.Object {
+  new(original) {
+    this[_processed] = convert._JsonMap._newJavaScriptObject();
+    this[_original] = original;
+    this[_data] = null;
+  }
+  _get(key) {
+    if (dart.test(this[_isUpgraded])) {
+      return this[_upgradedMap][dartx._get](key);
+    } else if (!(typeof key == 'string')) {
+      return null;
+    } else {
+      let result = convert._JsonMap._getProperty(this[_processed], core.String._check(key));
+      if (dart.test(convert._JsonMap._isUnprocessed(result))) result = this[_process$](core.String._check(key));
+      return result;
+    }
+  }
+  get length() {
+    return dart.test(this[_isUpgraded]) ? this[_upgradedMap][dartx.length] : this[_computeKeys$]()[dartx.length];
+  }
+  get isEmpty() {
+    return this.length == 0;
+  }
+  get isNotEmpty() {
+    return dart.notNull(this.length) > 0;
+  }
+  get keys() {
+    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.keys];
+    return new convert._JsonMapKeyIterable(this);
+  }
+  get values() {
+    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.values];
+    return MappedIterableOfString$dynamic().new(this[_computeKeys$](), dart.fn(each => this._get(each), dynamicTodynamic$()));
+  }
+  _set(key, value) {
+    if (dart.test(this[_isUpgraded])) {
+      this[_upgradedMap][dartx._set](key, value);
+    } else if (dart.test(this.containsKey(key))) {
+      let processed = this[_processed];
+      convert._JsonMap._setProperty(processed, core.String._check(key), value);
+      let original = this[_original];
+      if (!core.identical(original, processed)) {
+        convert._JsonMap._setProperty(original, core.String._check(key), null);
+      }
+    } else {
+      this[_upgrade]()[dartx._set](key, value);
+    }
+    return value;
+  }
+  addAll(other) {
+    other[dartx.forEach](dart.fn((key, value) => {
+      this._set(key, value);
+    }, dynamicAnddynamicToNull()));
+  }
+  containsValue(value) {
+    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
+    let keys = this[_computeKeys$]();
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      let key = keys[dartx._get](i);
+      if (dart.equals(this._get(key), value)) return true;
+    }
+    return false;
+  }
+  containsKey(key) {
+    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsKey](key);
+    if (!(typeof key == 'string')) return false;
+    return convert._JsonMap._hasProperty(this[_original], core.String._check(key));
+  }
+  putIfAbsent(key, ifAbsent) {
+    if (dart.test(this.containsKey(key))) return this._get(key);
+    let value = ifAbsent();
+    this._set(key, value);
+    return value;
+  }
+  remove(key) {
+    if (!dart.test(this[_isUpgraded]) && !dart.test(this.containsKey(key))) return null;
+    return this[_upgrade]()[dartx.remove](key);
+  }
+  clear() {
+    if (dart.test(this[_isUpgraded])) {
+      this[_upgradedMap][dartx.clear]();
+    } else {
+      if (this[_data] != null) {
+        dart.dsend(this[_data], 'clear');
+      }
+      this[_original] = this[_processed] = null;
+      this[_data] = dart.map();
+    }
+  }
+  forEach(f) {
+    if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.forEach](f);
+    let keys = this[_computeKeys$]();
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      let key = keys[dartx._get](i);
+      let value = convert._JsonMap._getProperty(this[_processed], key);
+      if (dart.test(convert._JsonMap._isUnprocessed(value))) {
+        value = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original], key));
+        convert._JsonMap._setProperty(this[_processed], key, value);
+      }
+      dart.dcall(f, key, value);
+      if (!core.identical(keys, this[_data])) {
+        dart.throw(new core.ConcurrentModificationError(this));
+      }
+    }
+  }
+  toString() {
+    return collection.Maps.mapToString(this);
+  }
+  get [_isUpgraded]() {
+    return this[_processed] == null;
+  }
+  get [_upgradedMap]() {
+    dart.assert(this[_isUpgraded]);
+    return this[_data];
+  }
+  [_computeKeys$]() {
+    dart.assert(!dart.test(this[_isUpgraded]));
+    let keys = core.List._check(this[_data]);
+    if (keys == null) {
+      keys = this[_data] = convert._JsonMap._getPropertyNames(this[_original]);
+    }
+    return keys;
+  }
+  [_upgrade]() {
+    if (dart.test(this[_isUpgraded])) return this[_upgradedMap];
+    let result = dart.map();
+    let keys = this[_computeKeys$]();
+    for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
+      let key = keys[dartx._get](i);
+      result[dartx._set](key, this._get(key));
+    }
+    if (dart.test(keys[dartx.isEmpty])) {
+      keys[dartx.add](null);
+    } else {
+      keys[dartx.clear]();
+    }
+    this[_original] = this[_processed] = null;
+    this[_data] = result;
+    dart.assert(this[_isUpgraded]);
+    return result;
+  }
+  [_process$](key) {
+    if (!dart.test(convert._JsonMap._hasProperty(this[_original], key))) return null;
+    let result = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original], key));
+    return convert._JsonMap._setProperty(this[_processed], key, result);
+  }
+  static _hasProperty(object, key) {
+    return Object.prototype.hasOwnProperty.call(object, key);
+  }
+  static _getProperty(object, key) {
+    return object[key];
+  }
+  static _setProperty(object, key, value) {
+    return object[key] = value;
+  }
+  static _getPropertyNames(object) {
+    return Object.keys(object);
+  }
+  static _isUnprocessed(object) {
+    return typeof object == "undefined";
+  }
+  static _newJavaScriptObject() {
+    return Object.create(null);
+  }
+};
+convert._JsonMap[dart.implements] = () => [collection.LinkedHashMap];
+dart.setSignature(convert._JsonMap, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonMap, [dart.dynamic])}),
+  fields: () => ({
+    [_original]: dart.dynamic,
+    [_processed]: dart.dynamic,
+    [_data]: dart.dynamic
+  }),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, []),
+    keys: dart.definiteFunctionType(core.Iterable, []),
+    values: dart.definiteFunctionType(core.Iterable, []),
+    [_isUpgraded]: dart.definiteFunctionType(core.bool, []),
+    [_upgradedMap]: dart.definiteFunctionType(core.Map, [])
+  }),
+  methods: () => ({
+    _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    _set: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    addAll: dart.definiteFunctionType(dart.void, [core.Map]),
+    containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+    containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+    putIfAbsent: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, VoidTodynamic()]),
+    remove: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    forEach: dart.definiteFunctionType(dart.void, [dynamicAnddynamicTovoid()]),
+    [_computeKeys$]: dart.definiteFunctionType(core.List$(core.String), []),
+    [_upgrade]: dart.definiteFunctionType(core.Map, []),
+    [_process$]: dart.definiteFunctionType(dart.dynamic, [core.String])
+  }),
+  statics: () => ({
+    _hasProperty: dart.definiteFunctionType(core.bool, [dart.dynamic, core.String]),
+    _getProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String]),
+    _setProperty: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, dart.dynamic]),
+    _getPropertyNames: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    _isUnprocessed: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    _newJavaScriptObject: dart.definiteFunctionType(dart.dynamic, [])
+  }),
+  names: ['_hasProperty', '_getProperty', '_setProperty', '_getPropertyNames', '_isUnprocessed', '_newJavaScriptObject']
+});
+dart.defineExtensionMembers(convert._JsonMap, [
+  '_get',
+  '_set',
+  'addAll',
+  'containsValue',
+  'containsKey',
+  'putIfAbsent',
+  'remove',
+  'clear',
+  'forEach',
+  'length',
+  'isEmpty',
+  'isNotEmpty',
+  'keys',
+  'values'
+]);
+const _parent = Symbol('_parent');
+convert._JsonMapKeyIterable = class _JsonMapKeyIterable extends _internal.ListIterable {
+  new(parent) {
+    this[_parent] = parent;
+    super.new();
+  }
+  get length() {
+    return this[_parent].length;
+  }
+  elementAt(index) {
+    return core.String._check(dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.elementAt](index) : this[_parent][_computeKeys$]()[dartx._get](index));
+  }
+  get iterator() {
+    return dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.iterator] : this[_parent][_computeKeys$]()[dartx.iterator];
+  }
+  contains(key) {
+    return this[_parent].containsKey(key);
+  }
+};
+dart.addSimpleTypeTests(convert._JsonMapKeyIterable);
+dart.setSignature(convert._JsonMapKeyIterable, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonMapKeyIterable, [convert._JsonMap])}),
+  fields: () => ({[_parent]: convert._JsonMap}),
+  methods: () => ({elementAt: dart.definiteFunctionType(core.String, [core.int])})
+});
+dart.defineExtensionMembers(convert._JsonMapKeyIterable, ['elementAt', 'contains', 'length', 'iterator']);
+const _reviver = Symbol('_reviver');
+const _sink$ = Symbol('_sink');
+const _stringSink = Symbol('_stringSink');
+convert.StringConversionSinkMixin = class StringConversionSinkMixin extends core.Object {
+  add(str) {
+    this.addSlice(str, 0, str[dartx.length], false);
+  }
+  asUtf8Sink(allowMalformed) {
+    return new convert._Utf8ConversionSink(this, allowMalformed);
+  }
+  asStringSink() {
+    return new convert._StringConversionSinkAsStringSinkAdapter(this);
+  }
+};
+convert.StringConversionSinkMixin[dart.implements] = () => [convert.StringConversionSink];
+dart.setSignature(convert.StringConversionSinkMixin, {
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [core.String]),
+    asUtf8Sink: dart.definiteFunctionType(convert.ByteConversionSink, [core.bool]),
+    asStringSink: dart.definiteFunctionType(convert.ClosableStringSink, [])
+  })
+});
+convert.StringConversionSinkBase = class StringConversionSinkBase extends convert.StringConversionSinkMixin {};
+convert._StringSinkConversionSink = class _StringSinkConversionSink extends convert.StringConversionSinkBase {
+  new(stringSink) {
+    this[_stringSink] = stringSink;
+  }
+  close() {}
+  addSlice(str, start, end, isLast) {
+    if (start != 0 || end != str[dartx.length]) {
+      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+        this[_stringSink].writeCharCode(str[dartx.codeUnitAt](i));
+      }
+    } else {
+      this[_stringSink].write(str);
+    }
+    if (dart.test(isLast)) this.close();
+  }
+  add(str) {
+    this[_stringSink].write(str);
+  }
+  asUtf8Sink(allowMalformed) {
+    return new convert._Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed);
+  }
+  asStringSink() {
+    return convert.ClosableStringSink.fromStringSink(this[_stringSink], dart.bind(this, 'close'));
+  }
+};
+dart.setSignature(convert._StringSinkConversionSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._StringSinkConversionSink, [core.StringSink])}),
+  fields: () => ({[_stringSink]: core.StringSink}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
+  })
+});
+convert._JsonDecoderSink = class _JsonDecoderSink extends convert._StringSinkConversionSink {
+  new(reviver, sink) {
+    this[_reviver] = reviver;
+    this[_sink$] = sink;
+    super.new(new core.StringBuffer());
+  }
+  close() {
+    super.close();
+    let buffer = core.StringBuffer._check(this[_stringSink]);
+    let accumulated = dart.toString(buffer);
+    buffer.clear();
+    let decoded = convert._parseJson(accumulated, this[_reviver]);
+    this[_sink$].add(decoded);
+    this[_sink$].close();
+  }
+};
+dart.setSignature(convert._JsonDecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonDecoderSink, [convert._Reviver, SinkOfObject()])}),
+  fields: () => ({
+    [_reviver]: convert._Reviver,
+    [_sink$]: SinkOfObject()
+  })
+});
+const _allowInvalid = Symbol('_allowInvalid');
+let const$25;
+let const$26;
+let const$27;
+let const$28;
+let const$29;
+convert.Codec$ = dart.generic((S, T) => {
+  let _InvertedCodecOfT$S = () => (_InvertedCodecOfT$S = dart.constFn(convert._InvertedCodec$(T, S)))();
+  class Codec extends core.Object {
+    new() {
+    }
+    encode(input) {
+      S._check(input);
+      return this.encoder.convert(input);
+    }
+    decode(encoded) {
+      T._check(encoded);
+      return this.decoder.convert(encoded);
+    }
+    fuse(R) {
+      return other => {
+        convert.Codec$(T, R)._check(other);
+        return new (convert._FusedCodec$(S, T, R))(this, other);
+      };
+    }
+    get inverted() {
+      return new (_InvertedCodecOfT$S())(this);
+    }
+  }
+  dart.addTypeTests(Codec);
+  dart.setSignature(Codec, {
+    constructors: () => ({new: dart.definiteFunctionType(convert.Codec$(S, T), [])}),
+    getters: () => ({inverted: dart.definiteFunctionType(convert.Codec$(T, S), [])}),
+    methods: () => ({
+      encode: dart.definiteFunctionType(T, [S]),
+      decode: dart.definiteFunctionType(S, [T]),
+      fuse: dart.definiteFunctionType(R => [convert.Codec$(S, R), [convert.Codec$(T, R)]])
+    })
+  });
+  return Codec;
+});
+convert.Codec = Codec();
+core.String = class String extends core.Object {
+  static fromCharCodes(charCodes, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    if (_interceptors.JSArray.is(charCodes)) {
+      return core.String._stringFromJSArray(JSArrayOfint()._check(charCodes), start, end);
+    }
+    if (_native_typed_data.NativeUint8List.is(charCodes)) {
+      return core.String._stringFromUint8List(charCodes, start, end);
+    }
+    return core.String._stringFromIterable(charCodes, start, end);
+  }
+  static fromCharCode(charCode) {
+    return _js_helper.Primitives.stringFromCharCode(charCode);
+  }
+  static fromEnvironment(name, opts) {
+    let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : null;
+    dart.throw(new core.UnsupportedError('String.fromEnvironment can only be used as a const constructor'));
+  }
+  static _stringFromJSArray(list, start, endOrNull) {
+    let len = list[dartx.length];
+    let end = core.RangeError.checkValidRange(start, endOrNull, len);
+    if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) {
+      list = JSArrayOfint()._check(list[dartx.sublist](start, end));
+    }
+    return _js_helper.Primitives.stringFromCharCodes(list);
+  }
+  static _stringFromUint8List(charCodes, start, endOrNull) {
+    let len = charCodes[dartx.length];
+    let end = core.RangeError.checkValidRange(start, endOrNull, len);
+    return _js_helper.Primitives.stringFromNativeUint8List(charCodes, start, end);
+  }
+  static _stringFromIterable(charCodes, start, end) {
+    if (dart.notNull(start) < 0) dart.throw(new core.RangeError.range(start, 0, charCodes[dartx.length]));
+    if (end != null && dart.notNull(end) < dart.notNull(start)) {
+      dart.throw(new core.RangeError.range(end, start, charCodes[dartx.length]));
+    }
+    let it = charCodes[dartx.iterator];
+    for (let i = 0; i < dart.notNull(start); i++) {
+      if (!dart.test(it.moveNext())) {
+        dart.throw(new core.RangeError.range(start, 0, i));
+      }
+    }
+    let list = JSArrayOfint().of([]);
+    if (end == null) {
+      while (dart.test(it.moveNext()))
+        list[dartx.add](it.current);
+    } else {
+      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+        if (!dart.test(it.moveNext())) {
+          dart.throw(new core.RangeError.range(end, start, i));
+        }
+        list[dartx.add](it.current);
+      }
+    }
+    return _js_helper.Primitives.stringFromCharCodes(JSArrayOfint()._check(list));
+  }
+};
+core.String.is = function is_String(o) {
+  return typeof o == "string";
+};
+core.String.as = function as_String(o) {
+  if (typeof o == "string" || o == null) return o;
+  return dart.as(o, core.String);
+};
+core.String._check = function check_String(o) {
+  if (typeof o == "string" || o == null) return o;
+  return dart.check(o, core.String);
+};
+core.String[dart.implements] = () => [ComparableOfString(), core.Pattern];
+dart.setSignature(core.String, {
+  constructors: () => ({
+    fromCharCodes: dart.definiteFunctionType(core.String, [IterableOfint()], [core.int, core.int]),
+    fromCharCode: dart.definiteFunctionType(core.String, [core.int]),
+    fromEnvironment: dart.definiteFunctionType(core.String, [core.String], {defaultValue: core.String})
+  }),
+  statics: () => ({
+    _stringFromJSArray: dart.definiteFunctionType(core.String, [JSArrayOfint(), core.int, core.int]),
+    _stringFromUint8List: dart.definiteFunctionType(core.String, [_native_typed_data.NativeUint8List, core.int, core.int]),
+    _stringFromIterable: dart.definiteFunctionType(core.String, [IterableOfint(), core.int, core.int])
+  }),
+  names: ['_stringFromJSArray', '_stringFromUint8List', '_stringFromIterable']
+});
+core.List$ = dart.generic(E => {
+  let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let intToE = () => (intToE = dart.constFn(dart.functionType(E, [core.int])))();
+  class List extends core.Object {
+    static new(length) {
+      if (length === void 0) length = null;
+      let list = null;
+      if (length == null) {
+        list = [];
+      } else {
+        if (!(typeof length == 'number') || dart.notNull(length) < 0) {
+          dart.throw(new core.ArgumentError(dart.str`Length must be a non-negative integer: ${length}`));
+        }
+        list = _interceptors.JSArray.markFixedList(new Array(length));
+      }
+      return JSArrayOfE().typed(list);
+    }
+    static filled(length, fill) {
+      let result = ListOfE().new(length);
+      if (length != 0 && fill != null) {
+        for (let i = 0; i < dart.notNull(result[dartx.length]); i++) {
+          result[dartx._set](i, fill);
+        }
+      }
+      return result;
+    }
+    static from(elements, opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let list = ListOfE().new();
+      for (let e of elements) {
+        list[dartx.add](E._check(e));
+      }
+      if (dart.test(growable)) return list;
+      return _internal.makeListFixedLength(E)(list);
+    }
+    static generate(length, generator, opts) {
+      let growable = opts && 'growable' in opts ? opts.growable : true;
+      let result = null;
+      if (dart.test(growable)) {
+        result = JSArrayOfE().of([]);
+        result[dartx.length] = length;
+      } else {
+        result = ListOfE().new(length);
+      }
+      for (let i = 0; i < dart.notNull(length); i++) {
+        result[dartx._set](i, generator(i));
+      }
+      return result;
+    }
+    static unmodifiable(elements) {
+      let result = ListOfE().from(elements, {growable: false});
+      return _internal.makeFixedListUnmodifiable(E)(result);
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this[dartx.iterator]);
+    }
+  }
+  dart.addTypeTests(List);
+  List[dart.implements] = () => [IterableOfE(), _internal.EfficientLength];
+  dart.setSignature(List, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(core.List$(E), [], [core.int]),
+      filled: dart.definiteFunctionType(core.List$(E), [core.int, E]),
+      from: dart.definiteFunctionType(core.List$(E), [core.Iterable], {growable: core.bool}),
+      generate: dart.definiteFunctionType(core.List$(E), [core.int, intToE()], {growable: core.bool}),
+      unmodifiable: dart.definiteFunctionType(core.List$(E), [core.Iterable])
+    })
+  });
+  return List;
+});
+core.List = List();
+convert.Encoding = class Encoding extends convert.Codec$(core.String, core.List$(core.int)) {
+  new() {
+    super.new();
+  }
+  decodeStream(byteStream) {
+    return byteStream.transform(core.String)(this.decoder).fold(dart.dynamic)(new core.StringBuffer(), dart.fn((buffer, string) => ((() => {
+      dart.dsend(buffer, 'write', string);
+      return buffer;
+    })()), dynamicAndStringTodynamic())).then(core.String)(dart.fn(buffer => dart.toString(buffer), dynamicToString()));
+  }
+  static getByName(name) {
+    if (name == null) return null;
+    name = name[dartx.toLowerCase]();
+    return convert.Encoding._nameToEncoding[dartx._get](name);
+  }
+};
+dart.addSimpleTypeTests(convert.Encoding);
+dart.setSignature(convert.Encoding, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Encoding, [])}),
+  methods: () => ({decodeStream: dart.definiteFunctionType(async.Future$(core.String), [StreamOfListOfint()])}),
+  sfields: () => ({_nameToEncoding: MapOfString$Encoding()}),
+  statics: () => ({getByName: dart.definiteFunctionType(convert.Encoding, [core.String])}),
+  names: ['getByName']
+});
+dart.defineLazy(convert.Encoding, {
+  get _nameToEncoding() {
+    return dart.map({"iso_8859-1:1987": convert.LATIN1, "iso-ir-100": convert.LATIN1, "iso_8859-1": convert.LATIN1, "iso-8859-1": convert.LATIN1, latin1: convert.LATIN1, l1: convert.LATIN1, ibm819: convert.LATIN1, cp819: convert.LATIN1, csisolatin1: convert.LATIN1, "iso-ir-6": convert.ASCII, "ansi_x3.4-1968": convert.ASCII, "ansi_x3.4-1986": convert.ASCII, "iso_646.irv:1991": convert.ASCII, "iso646-us": convert.ASCII, "us-ascii": convert.ASCII, us: convert.ASCII, ibm367: convert.ASCII, cp367: convert.ASCII, csascii: convert.ASCII, ascii: convert.ASCII, csutf8: convert.UTF8, "utf-8": convert.UTF8}, core.String, convert.Encoding);
+  },
+  set _nameToEncoding(_) {}
+});
+convert.AsciiCodec = class AsciiCodec extends convert.Encoding {
+  new(opts) {
+    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
+    this[_allowInvalid] = allowInvalid;
+    super.new();
+  }
+  get name() {
+    return "us-ascii";
+  }
+  decode(bytes, opts) {
+    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
+    if (allowInvalid == null) allowInvalid = this[_allowInvalid];
+    if (dart.test(allowInvalid)) {
+      return (const$25 || (const$25 = dart.const(new convert.AsciiDecoder({allowInvalid: true})))).convert(bytes);
+    } else {
+      return (const$26 || (const$26 = dart.const(new convert.AsciiDecoder({allowInvalid: false})))).convert(bytes);
+    }
+  }
+  get encoder() {
+    return const$27 || (const$27 = dart.const(new convert.AsciiEncoder()));
+  }
+  get decoder() {
+    return dart.test(this[_allowInvalid]) ? const$28 || (const$28 = dart.const(new convert.AsciiDecoder({allowInvalid: true}))) : const$29 || (const$29 = dart.const(new convert.AsciiDecoder({allowInvalid: false})));
+  }
+};
+dart.setSignature(convert.AsciiCodec, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.AsciiCodec, [], {allowInvalid: core.bool})}),
+  fields: () => ({[_allowInvalid]: core.bool}),
+  getters: () => ({
+    name: dart.definiteFunctionType(core.String, []),
+    encoder: dart.definiteFunctionType(convert.AsciiEncoder, []),
+    decoder: dart.definiteFunctionType(convert.AsciiDecoder, [])
+  }),
+  methods: () => ({decode: dart.definiteFunctionType(core.String, [ListOfint()], {allowInvalid: core.bool})})
+});
+convert.ASCII = dart.const(new convert.AsciiCodec());
+convert._ASCII_MASK = 127;
+const _subsetMask = Symbol('_subsetMask');
+convert.Converter$ = dart.generic((S, T) => {
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let _ConverterStreamEventSinkOfS$dynamic = () => (_ConverterStreamEventSinkOfS$dynamic = dart.constFn(convert._ConverterStreamEventSink$(S, dart.dynamic)))();
+  let StreamTransformerOfS$T = () => (StreamTransformerOfS$T = dart.constFn(async.StreamTransformer$(S, T)))();
+  let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let EventSinkTo_ConverterStreamEventSinkOfS$dynamic = () => (EventSinkTo_ConverterStreamEventSinkOfS$dynamic = dart.constFn(dart.definiteFunctionType(_ConverterStreamEventSinkOfS$dynamic(), [async.EventSink])))();
+  class Converter extends core.Object {
+    new() {
+    }
+    fuse(TT) {
+      return other => {
+        convert.Converter$(T, TT)._check(other);
+        return new (convert._FusedConverter$(S, T, TT))(this, other);
+      };
+    }
+    startChunkedConversion(sink) {
+      SinkOfT()._check(sink);
+      dart.throw(new core.UnsupportedError(dart.str`This converter does not support chunked conversions: ${this}`));
+    }
+    bind(stream) {
+      StreamOfS()._check(stream);
+      return StreamOfT().eventTransformed(stream, dart.fn(sink => new (_ConverterStreamEventSinkOfS$dynamic())(this, sink), EventSinkTo_ConverterStreamEventSinkOfS$dynamic()));
+    }
+  }
+  dart.addTypeTests(Converter);
+  Converter[dart.implements] = () => [StreamTransformerOfS$T()];
+  dart.setSignature(Converter, {
+    constructors: () => ({new: dart.definiteFunctionType(convert.Converter$(S, T), [])}),
+    methods: () => ({
+      fuse: dart.definiteFunctionType(TT => [convert.Converter$(S, TT), [convert.Converter$(T, TT)]]),
+      startChunkedConversion: dart.definiteFunctionType(core.Sink$(S), [SinkOfT()]),
+      bind: dart.definiteFunctionType(async.Stream$(T), [StreamOfS()])
+    })
+  });
+  return Converter;
+});
+convert.Converter = Converter();
+convert._UnicodeSubsetEncoder = class _UnicodeSubsetEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
+  new(subsetMask) {
+    this[_subsetMask] = subsetMask;
+    super.new();
+  }
+  convert(string, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    let stringLength = string[dartx.length];
+    core.RangeError.checkValidRange(start, end, stringLength);
+    if (end == null) end = stringLength;
+    let length = dart.notNull(end) - dart.notNull(start);
+    let result = typed_data.Uint8List.new(length);
+    for (let i = 0; i < length; i++) {
+      let codeUnit = string[dartx.codeUnitAt](dart.notNull(start) + i);
+      if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
+        dart.throw(new core.ArgumentError("String contains invalid characters."));
+      }
+      result[dartx._set](i, codeUnit);
+    }
+    return result;
+  }
+  startChunkedConversion(sink) {
+    if (!convert.ByteConversionSink.is(sink)) {
+      sink = convert.ByteConversionSink.from(sink);
+    }
+    return new convert._UnicodeSubsetEncoderSink(this[_subsetMask], convert.ByteConversionSink._check(sink));
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+};
+dart.addSimpleTypeTests(convert._UnicodeSubsetEncoder);
+dart.setSignature(convert._UnicodeSubsetEncoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetEncoder, [core.int])}),
+  fields: () => ({[_subsetMask]: core.int}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
+  })
+});
+convert.AsciiEncoder = class AsciiEncoder extends convert._UnicodeSubsetEncoder {
+  new() {
+    super.new(convert._ASCII_MASK);
+  }
+};
+dart.setSignature(convert.AsciiEncoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.AsciiEncoder, [])})
+});
+convert._UnicodeSubsetEncoderSink = class _UnicodeSubsetEncoderSink extends convert.StringConversionSinkBase {
+  new(subsetMask, sink) {
+    this[_subsetMask] = subsetMask;
+    this[_sink$] = sink;
+  }
+  close() {
+    this[_sink$].close();
+  }
+  addSlice(source, start, end, isLast) {
+    core.RangeError.checkValidRange(start, end, source[dartx.length]);
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let codeUnit = source[dartx.codeUnitAt](i);
+      if ((dart.notNull(codeUnit) & ~dart.notNull(this[_subsetMask])) != 0) {
+        dart.throw(new core.ArgumentError(dart.str`Source contains invalid character with code point: ${codeUnit}.`));
+      }
+    }
+    this[_sink$].add(source[dartx.codeUnits][dartx.sublist](start, end));
+    if (dart.test(isLast)) {
+      this.close();
+    }
+  }
+};
+dart.setSignature(convert._UnicodeSubsetEncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetEncoderSink, [core.int, convert.ByteConversionSink])}),
+  fields: () => ({
+    [_sink$]: convert.ByteConversionSink,
+    [_subsetMask]: core.int
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
+  })
+});
+const _convertInvalid = Symbol('_convertInvalid');
+convert._UnicodeSubsetDecoder = class _UnicodeSubsetDecoder extends convert.Converter$(core.List$(core.int), core.String) {
+  new(allowInvalid, subsetMask) {
+    this[_allowInvalid] = allowInvalid;
+    this[_subsetMask] = subsetMask;
+    super.new();
+  }
+  convert(bytes, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    let byteCount = bytes[dartx.length];
+    core.RangeError.checkValidRange(start, end, byteCount);
+    if (end == null) end = byteCount;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let byte = bytes[dartx._get](i);
+      if ((dart.notNull(byte) & ~dart.notNull(this[_subsetMask])) != 0) {
+        if (!dart.test(this[_allowInvalid])) {
+          dart.throw(new core.FormatException(dart.str`Invalid value in input: ${byte}`));
+        }
+        return this[_convertInvalid](bytes, start, end);
+      }
+    }
+    return core.String.fromCharCodes(bytes, start, end);
+  }
+  [_convertInvalid](bytes, start, end) {
+    let buffer = new core.StringBuffer();
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let value = bytes[dartx._get](i);
+      if ((dart.notNull(value) & ~dart.notNull(this[_subsetMask])) != 0) value = 65533;
+      buffer.writeCharCode(value);
+    }
+    return buffer.toString();
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+};
+dart.addSimpleTypeTests(convert._UnicodeSubsetDecoder);
+dart.setSignature(convert._UnicodeSubsetDecoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetDecoder, [core.bool, core.int])}),
+  fields: () => ({
+    [_allowInvalid]: core.bool,
+    [_subsetMask]: core.int
+  }),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.String, [ListOfint()], [core.int, core.int]),
+    [_convertInvalid]: dart.definiteFunctionType(core.String, [ListOfint(), core.int, core.int])
+  })
+});
+convert.AsciiDecoder = class AsciiDecoder extends convert._UnicodeSubsetDecoder {
+  new(opts) {
+    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
+    super.new(allowInvalid, convert._ASCII_MASK);
+  }
+  startChunkedConversion(sink) {
+    let stringSink = null;
+    if (convert.StringConversionSink.is(sink)) {
+      stringSink = sink;
+    } else {
+      stringSink = convert.StringConversionSink.from(sink);
+    }
+    if (dart.test(this[_allowInvalid])) {
+      return new convert._ErrorHandlingAsciiDecoderSink(stringSink.asUtf8Sink(false));
+    } else {
+      return new convert._SimpleAsciiDecoderSink(stringSink);
+    }
+  }
+};
+dart.setSignature(convert.AsciiDecoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.AsciiDecoder, [], {allowInvalid: core.bool})})
+});
+const _utf8Sink = Symbol('_utf8Sink');
+let const$30;
+convert.ChunkedConversionSink$ = dart.generic(T => {
+  let _SimpleCallbackSinkOfT = () => (_SimpleCallbackSinkOfT = dart.constFn(convert._SimpleCallbackSink$(T)))();
+  let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
+  let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
+  let ListOfTTovoid = () => (ListOfTTovoid = dart.constFn(dart.functionType(dart.void, [ListOfT()])))();
+  class ChunkedConversionSink extends core.Object {
+    new() {
+    }
+    static withCallback(callback) {
+      return new (_SimpleCallbackSinkOfT())(callback);
+    }
+  }
+  dart.addTypeTests(ChunkedConversionSink);
+  ChunkedConversionSink[dart.implements] = () => [SinkOfT()];
+  dart.setSignature(ChunkedConversionSink, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(convert.ChunkedConversionSink$(T), []),
+      withCallback: dart.definiteFunctionType(convert.ChunkedConversionSink$(T), [ListOfTTovoid()])
+    })
+  });
+  return ChunkedConversionSink;
+});
+convert.ChunkedConversionSink = ChunkedConversionSink();
+convert.ByteConversionSink = class ByteConversionSink extends convert.ChunkedConversionSink$(core.List$(core.int)) {
+  new() {
+    super.new();
+  }
+  static withCallback(callback) {
+    return new convert._ByteCallbackSink(callback);
+  }
+  static from(sink) {
+    return new convert._ByteAdapterSink(sink);
+  }
+};
+dart.addSimpleTypeTests(convert.ByteConversionSink);
+dart.setSignature(convert.ByteConversionSink, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert.ByteConversionSink, []),
+    withCallback: dart.definiteFunctionType(convert.ByteConversionSink, [ListOfintTovoid()]),
+    from: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfListOfint()])
+  })
+});
+convert.ByteConversionSinkBase = class ByteConversionSinkBase extends convert.ByteConversionSink {
+  new() {
+    super.new();
+  }
+  addSlice(chunk, start, end, isLast) {
+    this.add(chunk[dartx.sublist](start, end));
+    if (dart.test(isLast)) this.close();
+  }
+};
+dart.setSignature(convert.ByteConversionSinkBase, {
+  methods: () => ({addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
+});
+convert._ErrorHandlingAsciiDecoderSink = class _ErrorHandlingAsciiDecoderSink extends convert.ByteConversionSinkBase {
+  new(utf8Sink) {
+    this[_utf8Sink] = utf8Sink;
+    super.new();
+  }
+  close() {
+    this[_utf8Sink].close();
+  }
+  add(source) {
+    this.addSlice(source, 0, source[dartx.length], false);
+  }
+  addSlice(source, start, end, isLast) {
+    core.RangeError.checkValidRange(start, end, source[dartx.length]);
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      if ((dart.notNull(source[dartx._get](i)) & ~convert._ASCII_MASK) != 0) {
+        if (dart.notNull(i) > dart.notNull(start)) this[_utf8Sink].addSlice(source, start, i, false);
+        this[_utf8Sink].add(const$30 || (const$30 = dart.constList([239, 191, 189], core.int)));
+        start = dart.notNull(i) + 1;
+      }
+    }
+    if (dart.notNull(start) < dart.notNull(end)) {
+      this[_utf8Sink].addSlice(source, start, end, isLast);
+    } else if (dart.test(isLast)) {
+      this.close();
+    }
+  }
+};
+dart.setSignature(convert._ErrorHandlingAsciiDecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._ErrorHandlingAsciiDecoderSink, [convert.ByteConversionSink])}),
+  fields: () => ({[_utf8Sink]: convert.ByteConversionSink}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()])
+  })
+});
+convert._SimpleAsciiDecoderSink = class _SimpleAsciiDecoderSink extends convert.ByteConversionSinkBase {
+  new(sink) {
+    this[_sink$] = sink;
+    super.new();
+  }
+  close() {
+    this[_sink$].close();
+  }
+  add(source) {
+    for (let i = 0; i < dart.notNull(source[dartx.length]); i++) {
+      if ((dart.notNull(source[dartx._get](i)) & ~convert._ASCII_MASK) != 0) {
+        dart.throw(new core.FormatException("Source contains non-ASCII bytes."));
+      }
+    }
+    this[_sink$].add(core.String.fromCharCodes(source));
+  }
+  addSlice(source, start, end, isLast) {
+    let length = source[dartx.length];
+    core.RangeError.checkValidRange(start, end, length);
+    if (dart.notNull(start) < dart.notNull(end)) {
+      if (start != 0 || end != length) {
+        source = source[dartx.sublist](start, end);
+      }
+      this.add(source);
+    }
+    if (dart.test(isLast)) this.close();
+  }
+};
+dart.setSignature(convert._SimpleAsciiDecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._SimpleAsciiDecoderSink, [core.Sink])}),
+  fields: () => ({[_sink$]: core.Sink}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()])
+  })
+});
+const _urlSafe = Symbol('_urlSafe');
+convert.Base64Encoder = class Base64Encoder extends convert.Converter$(core.List$(core.int), core.String) {
+  new() {
+    this[_urlSafe] = false;
+    super.new();
+  }
+  urlSafe() {
+    this[_urlSafe] = true;
+    super.new();
+  }
+  convert(input) {
+    if (dart.test(input[dartx.isEmpty])) return "";
+    let encoder = new convert._Base64Encoder(this[_urlSafe]);
+    let buffer = encoder.encode(input, 0, input[dartx.length], true);
+    return core.String.fromCharCodes(buffer);
+  }
+  startChunkedConversion(sink) {
+    if (convert.StringConversionSink.is(sink)) {
+      return new convert._Utf8Base64EncoderSink(sink.asUtf8Sink(false), this[_urlSafe]);
+    }
+    return new convert._AsciiBase64EncoderSink(sink, this[_urlSafe]);
+  }
+};
+dart.addSimpleTypeTests(convert.Base64Encoder);
+dart.defineNamedConstructor(convert.Base64Encoder, 'urlSafe');
+dart.setSignature(convert.Base64Encoder, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert.Base64Encoder, []),
+    urlSafe: dart.definiteFunctionType(convert.Base64Encoder, [])
+  }),
+  fields: () => ({[_urlSafe]: core.bool}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.String, [ListOfint()]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
+  })
+});
+let const$31;
+const _encoder = Symbol('_encoder');
+let const$32;
+let const$33;
+convert.Base64Codec = class Base64Codec extends convert.Codec$(core.List$(core.int), core.String) {
+  new() {
+    this[_encoder] = const$31 || (const$31 = dart.const(new convert.Base64Encoder()));
+    super.new();
+  }
+  urlSafe() {
+    this[_encoder] = const$32 || (const$32 = dart.const(new convert.Base64Encoder.urlSafe()));
+    super.new();
+  }
+  get encoder() {
+    return this[_encoder];
+  }
+  get decoder() {
+    return const$33 || (const$33 = dart.const(new convert.Base64Decoder()));
+  }
+};
+dart.addSimpleTypeTests(convert.Base64Codec);
+dart.defineNamedConstructor(convert.Base64Codec, 'urlSafe');
+dart.setSignature(convert.Base64Codec, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert.Base64Codec, []),
+    urlSafe: dart.definiteFunctionType(convert.Base64Codec, [])
+  }),
+  fields: () => ({[_encoder]: convert.Base64Encoder}),
+  getters: () => ({
+    encoder: dart.definiteFunctionType(convert.Base64Encoder, []),
+    decoder: dart.definiteFunctionType(convert.Base64Decoder, [])
+  })
+});
+convert.BASE64 = dart.const(new convert.Base64Codec());
+convert.BASE64URL = dart.const(new convert.Base64Codec.urlSafe());
+convert._paddingChar = 61;
+const _alphabet = Symbol('_alphabet');
+const _state$0 = Symbol('_state');
+convert._Base64Encoder = class _Base64Encoder extends core.Object {
+  new(urlSafe) {
+    this[_alphabet] = dart.test(urlSafe) ? convert._Base64Encoder._base64urlAlphabet : convert._Base64Encoder._base64Alphabet;
+    this[_state$0] = 0;
+  }
+  static _encodeState(count, bits) {
+    dart.assert(dart.notNull(count) <= convert._Base64Encoder._countMask);
+    return (dart.notNull(bits) << convert._Base64Encoder._valueShift | dart.notNull(count)) >>> 0;
+  }
+  static _stateBits(state) {
+    return state[dartx['>>']](convert._Base64Encoder._valueShift);
+  }
+  static _stateCount(state) {
+    return dart.notNull(state) & convert._Base64Encoder._countMask;
+  }
+  createBuffer(bufferLength) {
+    return typed_data.Uint8List.new(bufferLength);
+  }
+  encode(bytes, start, end, isLast) {
+    dart.assert(0 <= dart.notNull(start));
+    dart.assert(dart.notNull(start) <= dart.notNull(end));
+    dart.assert(bytes == null || dart.notNull(end) <= dart.notNull(bytes[dartx.length]));
+    let length = dart.notNull(end) - dart.notNull(start);
+    let count = convert._Base64Encoder._stateCount(this[_state$0]);
+    let byteCount = dart.notNull(count) + length;
+    let fullChunks = (byteCount / 3)[dartx.truncate]();
+    let partialChunkLength = byteCount - fullChunks * 3;
+    let bufferLength = fullChunks * 4;
+    if (dart.test(isLast) && partialChunkLength > 0) {
+      bufferLength = bufferLength + 4;
+    }
+    let output = this.createBuffer(bufferLength);
+    this[_state$0] = convert._Base64Encoder.encodeChunk(this[_alphabet], bytes, start, end, isLast, output, 0, this[_state$0]);
+    if (bufferLength > 0) return output;
+    return null;
+  }
+  static encodeChunk(alphabet, bytes, start, end, isLast, output, outputIndex, state) {
+    let bits = convert._Base64Encoder._stateBits(state);
+    let expectedChars = 3 - dart.notNull(convert._Base64Encoder._stateCount(state));
+    let byteOr = 0;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let byte = bytes[dartx._get](i);
+      byteOr = (dart.notNull(byteOr) | dart.notNull(byte)) >>> 0;
+      bits = (dart.notNull(bits) << 8 | dart.notNull(byte)) & 16777215;
+      expectedChars--;
+      if (expectedChars == 0) {
+        output[dartx._set]((() => {
+          let x = outputIndex;
+          outputIndex = dart.notNull(x) + 1;
+          return x;
+        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 18 & convert._Base64Encoder._sixBitMask));
+        output[dartx._set]((() => {
+          let x = outputIndex;
+          outputIndex = dart.notNull(x) + 1;
+          return x;
+        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 12 & convert._Base64Encoder._sixBitMask));
+        output[dartx._set]((() => {
+          let x = outputIndex;
+          outputIndex = dart.notNull(x) + 1;
+          return x;
+        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 6 & convert._Base64Encoder._sixBitMask));
+        output[dartx._set]((() => {
+          let x = outputIndex;
+          outputIndex = dart.notNull(x) + 1;
+          return x;
+        })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) & convert._Base64Encoder._sixBitMask));
+        expectedChars = 3;
+        bits = 0;
+      }
+    }
+    if (dart.notNull(byteOr) >= 0 && dart.notNull(byteOr) <= 255) {
+      if (dart.test(isLast) && expectedChars < 3) {
+        convert._Base64Encoder.writeFinalChunk(alphabet, output, outputIndex, 3 - expectedChars, bits);
+        return 0;
+      }
+      return convert._Base64Encoder._encodeState(3 - expectedChars, bits);
+    }
+    let i = start;
+    while (dart.notNull(i) < dart.notNull(end)) {
+      let byte = bytes[dartx._get](i);
+      if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) break;
+      i = dart.notNull(i) + 1;
+    }
+    dart.throw(new core.ArgumentError.value(bytes, dart.str`Not a byte value at index ${i}: 0x${bytes[dartx._get](i)[dartx.toRadixString](16)}`));
+  }
+  static writeFinalChunk(alphabet, output, outputIndex, count, bits) {
+    dart.assert(dart.notNull(count) > 0);
+    if (count == 1) {
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 2 & convert._Base64Encoder._sixBitMask));
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) << 4 & convert._Base64Encoder._sixBitMask));
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), convert._paddingChar);
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), convert._paddingChar);
+    } else {
+      dart.assert(count == 2);
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 10 & convert._Base64Encoder._sixBitMask));
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) >> 4 & convert._Base64Encoder._sixBitMask));
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), alphabet[dartx.codeUnitAt](dart.notNull(bits) << 2 & convert._Base64Encoder._sixBitMask));
+      output[dartx._set]((() => {
+        let x = outputIndex;
+        outputIndex = dart.notNull(x) + 1;
+        return x;
+      })(), convert._paddingChar);
+    }
+  }
+};
+dart.setSignature(convert._Base64Encoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Base64Encoder, [core.bool])}),
+  fields: () => ({
+    [_state$0]: core.int,
+    [_alphabet]: core.String
+  }),
+  methods: () => ({
+    createBuffer: dart.definiteFunctionType(typed_data.Uint8List, [core.int]),
+    encode: dart.definiteFunctionType(typed_data.Uint8List, [ListOfint(), core.int, core.int, core.bool])
+  }),
+  sfields: () => ({
+    _base64Alphabet: core.String,
+    _base64urlAlphabet: core.String,
+    _valueShift: core.int,
+    _countMask: core.int,
+    _sixBitMask: core.int
+  }),
+  statics: () => ({
+    _encodeState: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    _stateBits: dart.definiteFunctionType(core.int, [core.int]),
+    _stateCount: dart.definiteFunctionType(core.int, [core.int]),
+    encodeChunk: dart.definiteFunctionType(core.int, [core.String, ListOfint(), core.int, core.int, core.bool, typed_data.Uint8List, core.int, core.int]),
+    writeFinalChunk: dart.definiteFunctionType(dart.void, [core.String, typed_data.Uint8List, core.int, core.int, core.int])
+  }),
+  names: ['_encodeState', '_stateBits', '_stateCount', 'encodeChunk', 'writeFinalChunk']
+});
+convert._Base64Encoder._base64Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+convert._Base64Encoder._base64urlAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
+convert._Base64Encoder._valueShift = 2;
+convert._Base64Encoder._countMask = 3;
+convert._Base64Encoder._sixBitMask = 63;
+convert._BufferCachingBase64Encoder = class _BufferCachingBase64Encoder extends convert._Base64Encoder {
+  new(urlSafe) {
+    this.bufferCache = null;
+    super.new(urlSafe);
+  }
+  createBuffer(bufferLength) {
+    if (this.bufferCache == null || dart.notNull(this.bufferCache[dartx.length]) < dart.notNull(bufferLength)) {
+      this.bufferCache = typed_data.Uint8List.new(bufferLength);
+    }
+    return typed_data.Uint8List.view(this.bufferCache[dartx.buffer], 0, bufferLength);
+  }
+};
+dart.setSignature(convert._BufferCachingBase64Encoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._BufferCachingBase64Encoder, [core.bool])}),
+  fields: () => ({bufferCache: typed_data.Uint8List})
+});
+const _add$1 = Symbol('_add');
+convert._Base64EncoderSink = class _Base64EncoderSink extends convert.ByteConversionSinkBase {
+  new() {
+    super.new();
+  }
+  add(source) {
+    this[_add$1](source, 0, source[dartx.length], false);
+  }
+  close() {
+    this[_add$1](null, 0, 0, true);
+  }
+  addSlice(source, start, end, isLast) {
+    if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
+    core.RangeError.checkValidRange(start, end, source[dartx.length]);
+    this[_add$1](source, start, end, isLast);
+  }
+};
+dart.setSignature(convert._Base64EncoderSink, {
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+convert._AsciiBase64EncoderSink = class _AsciiBase64EncoderSink extends convert._Base64EncoderSink {
+  new(sink, urlSafe) {
+    this[_sink$] = sink;
+    this[_encoder] = new convert._BufferCachingBase64Encoder(urlSafe);
+    super.new();
+  }
+  [_add$1](source, start, end, isLast) {
+    let buffer = this[_encoder].encode(source, start, end, isLast);
+    if (buffer != null) {
+      let string = core.String.fromCharCodes(buffer);
+      this[_sink$].add(string);
+    }
+    if (dart.test(isLast)) {
+      this[_sink$].close();
+    }
+  }
+};
+dart.setSignature(convert._AsciiBase64EncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._AsciiBase64EncoderSink, [SinkOfString(), core.bool])}),
+  fields: () => ({
+    [_sink$]: SinkOfString(),
+    [_encoder]: convert._Base64Encoder
+  }),
+  methods: () => ({[_add$1]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
+});
+convert._Utf8Base64EncoderSink = class _Utf8Base64EncoderSink extends convert._Base64EncoderSink {
+  new(sink, urlSafe) {
+    this[_sink$] = sink;
+    this[_encoder] = new convert._Base64Encoder(urlSafe);
+    super.new();
+  }
+  [_add$1](source, start, end, isLast) {
+    let buffer = this[_encoder].encode(source, start, end, isLast);
+    if (buffer != null) {
+      this[_sink$].addSlice(buffer, 0, buffer[dartx.length], isLast);
+    }
+  }
+};
+dart.setSignature(convert._Utf8Base64EncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Utf8Base64EncoderSink, [convert.ByteConversionSink, core.bool])}),
+  fields: () => ({
+    [_sink$]: convert.ByteConversionSink,
+    [_encoder]: convert._Base64Encoder
+  }),
+  methods: () => ({[_add$1]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
+});
+convert.Base64Decoder = class Base64Decoder extends convert.Converter$(core.String, core.List$(core.int)) {
+  new() {
+    super.new();
+  }
+  convert(input, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    end = core.RangeError.checkValidRange(start, end, input[dartx.length]);
+    if (start == end) return typed_data.Uint8List.new(0);
+    let decoder = new convert._Base64Decoder();
+    let buffer = decoder.decode(input, start, end);
+    decoder.close(input, end);
+    return buffer;
+  }
+  startChunkedConversion(sink) {
+    return new convert._Base64DecoderSink(sink);
+  }
+};
+dart.addSimpleTypeTests(convert.Base64Decoder);
+dart.setSignature(convert.Base64Decoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Base64Decoder, [])}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
+  })
+});
+convert._Base64Decoder = class _Base64Decoder extends core.Object {
+  new() {
+    this[_state$0] = 0;
+  }
+  static _encodeCharacterState(count, bits) {
+    dart.assert(count == (dart.notNull(count) & convert._Base64Decoder._countMask));
+    return (dart.notNull(bits) << convert._Base64Decoder._valueShift | dart.notNull(count)) >>> 0;
+  }
+  static _stateCount(state) {
+    dart.assert(dart.notNull(state) >= 0);
+    return dart.notNull(state) & convert._Base64Decoder._countMask;
+  }
+  static _stateBits(state) {
+    dart.assert(dart.notNull(state) >= 0);
+    return state[dartx['>>']](convert._Base64Decoder._valueShift);
+  }
+  static _encodePaddingState(expectedPadding) {
+    dart.assert(dart.notNull(expectedPadding) >= 0);
+    dart.assert(dart.notNull(expectedPadding) <= 5);
+    return -dart.notNull(expectedPadding) - 1;
+  }
+  static _statePadding(state) {
+    dart.assert(dart.notNull(state) < 0);
+    return -dart.notNull(state) - 1;
+  }
+  static _hasSeenPadding(state) {
+    return dart.notNull(state) < 0;
+  }
+  decode(input, start, end) {
+    dart.assert(0 <= dart.notNull(start));
+    dart.assert(dart.notNull(start) <= dart.notNull(end));
+    dart.assert(dart.notNull(end) <= dart.notNull(input[dartx.length]));
+    if (dart.test(convert._Base64Decoder._hasSeenPadding(this[_state$0]))) {
+      this[_state$0] = convert._Base64Decoder._checkPadding(input, start, end, this[_state$0]);
+      return null;
+    }
+    if (start == end) return typed_data.Uint8List.new(0);
+    let buffer = convert._Base64Decoder._allocateBuffer(input, start, end, this[_state$0]);
+    this[_state$0] = convert._Base64Decoder.decodeChunk(input, start, end, buffer, 0, this[_state$0]);
+    return buffer;
+  }
+  close(input, end) {
+    if (dart.notNull(this[_state$0]) < dart.notNull(convert._Base64Decoder._encodePaddingState(0))) {
+      dart.throw(new core.FormatException("Missing padding character", input, end));
+    }
+    if (dart.notNull(this[_state$0]) > 0) {
+      dart.throw(new core.FormatException("Invalid length, must be multiple of four", input, end));
+    }
+    this[_state$0] = convert._Base64Decoder._encodePaddingState(0);
+  }
+  static decodeChunk(input, start, end, output, outIndex, state) {
+    dart.assert(!dart.test(convert._Base64Decoder._hasSeenPadding(state)));
+    let asciiMask = 127;
+    let asciiMax = 127;
+    let eightBitMask = 255;
+    let bitsPerCharacter = 6;
+    let bits = convert._Base64Decoder._stateBits(state);
+    let count = convert._Base64Decoder._stateCount(state);
+    let charOr = 0;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let char = input[dartx.codeUnitAt](i);
+      charOr = (dart.notNull(charOr) | dart.notNull(char)) >>> 0;
+      let code = convert._Base64Decoder._inverseAlphabet[dartx._get]((dart.notNull(char) & asciiMask) >>> 0);
+      if (dart.notNull(code) >= 0) {
+        bits = (bits[dartx['<<']](bitsPerCharacter) | dart.notNull(code)) & 16777215;
+        count = dart.notNull(count) + 1 & 3;
+        if (count == 0) {
+          dart.assert(dart.notNull(outIndex) + 3 <= dart.notNull(output[dartx.length]));
+          output[dartx._set]((() => {
+            let x = outIndex;
+            outIndex = dart.notNull(x) + 1;
+            return x;
+          })(), (bits[dartx['>>']](16) & eightBitMask) >>> 0);
+          output[dartx._set]((() => {
+            let x = outIndex;
+            outIndex = dart.notNull(x) + 1;
+            return x;
+          })(), (bits[dartx['>>']](8) & eightBitMask) >>> 0);
+          output[dartx._set]((() => {
+            let x = outIndex;
+            outIndex = dart.notNull(x) + 1;
+            return x;
+          })(), (dart.notNull(bits) & eightBitMask) >>> 0);
+          bits = 0;
+        }
+        continue;
+      } else if (code == convert._Base64Decoder._padding && dart.notNull(count) > 1) {
+        if (dart.notNull(charOr) < 0 || dart.notNull(charOr) > asciiMax) break;
+        if (count == 3) {
+          if ((dart.notNull(bits) & 3) != 0) {
+            dart.throw(new core.FormatException("Invalid encoding before padding", input, i));
+          }
+          output[dartx._set]((() => {
+            let x = outIndex;
+            outIndex = dart.notNull(x) + 1;
+            return x;
+          })(), bits[dartx['>>']](10));
+          output[dartx._set]((() => {
+            let x = outIndex;
+            outIndex = dart.notNull(x) + 1;
+            return x;
+          })(), bits[dartx['>>']](2));
+        } else {
+          if ((dart.notNull(bits) & 15) != 0) {
+            dart.throw(new core.FormatException("Invalid encoding before padding", input, i));
+          }
+          output[dartx._set]((() => {
+            let x = outIndex;
+            outIndex = dart.notNull(x) + 1;
+            return x;
+          })(), bits[dartx['>>']](4));
+        }
+        let expectedPadding = (3 - dart.notNull(count)) * 3;
+        if (char == convert._Base64Decoder._char_percent) {
+          expectedPadding = expectedPadding + 2;
+        }
+        state = convert._Base64Decoder._encodePaddingState(expectedPadding);
+        return convert._Base64Decoder._checkPadding(input, dart.notNull(i) + 1, end, state);
+      }
+      dart.throw(new core.FormatException("Invalid character", input, i));
+    }
+    if (dart.notNull(charOr) >= 0 && dart.notNull(charOr) <= asciiMax) {
+      return convert._Base64Decoder._encodeCharacterState(count, bits);
+    }
+    let i = null;
+    for (i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let char = input[dartx.codeUnitAt](i);
+      if (dart.notNull(char) < 0 || dart.notNull(char) > asciiMax) break;
+    }
+    dart.throw(new core.FormatException("Invalid character", input, i));
+  }
+  static _allocateBuffer(input, start, end, state) {
+    dart.assert(dart.notNull(state) >= 0);
+    let paddingStart = convert._Base64Decoder._trimPaddingChars(input, start, end);
+    let length = dart.notNull(convert._Base64Decoder._stateCount(state)) + (dart.notNull(paddingStart) - dart.notNull(start));
+    let bufferLength = length[dartx['>>']](2) * 3;
+    let remainderLength = length & 3;
+    if (remainderLength != 0 && dart.notNull(paddingStart) < dart.notNull(end)) {
+      bufferLength = bufferLength + (remainderLength - 1);
+    }
+    if (bufferLength > 0) return typed_data.Uint8List.new(bufferLength);
+    return null;
+  }
+  static _trimPaddingChars(input, start, end) {
+    let padding = 0;
+    let index = end;
+    let newEnd = end;
+    while (dart.notNull(index) > dart.notNull(start) && padding < 2) {
+      index = dart.notNull(index) - 1;
+      let char = input[dartx.codeUnitAt](index);
+      if (char == convert._paddingChar) {
+        padding++;
+        newEnd = index;
+        continue;
+      }
+      if ((dart.notNull(char) | 32) == convert._Base64Decoder._char_d) {
+        if (index == start) break;
+        index = dart.notNull(index) - 1;
+        char = input[dartx.codeUnitAt](index);
+      }
+      if (char == convert._Base64Decoder._char_3) {
+        if (index == start) break;
+        index = dart.notNull(index) - 1;
+        char = input[dartx.codeUnitAt](index);
+      }
+      if (char == convert._Base64Decoder._char_percent) {
+        padding++;
+        newEnd = index;
+        continue;
+      }
+      break;
+    }
+    return newEnd;
+  }
+  static _checkPadding(input, start, end, state) {
+    dart.assert(convert._Base64Decoder._hasSeenPadding(state));
+    if (start == end) return state;
+    let expectedPadding = convert._Base64Decoder._statePadding(state);
+    dart.assert(dart.notNull(expectedPadding) >= 0);
+    dart.assert(dart.notNull(expectedPadding) < 6);
+    while (dart.notNull(expectedPadding) > 0) {
+      let char = input[dartx.codeUnitAt](start);
+      if (expectedPadding == 3) {
+        if (char == convert._paddingChar) {
+          expectedPadding = dart.notNull(expectedPadding) - 3;
+          start = dart.notNull(start) + 1;
+          break;
+        }
+        if (char == convert._Base64Decoder._char_percent) {
+          expectedPadding = dart.notNull(expectedPadding) - 1;
+          start = dart.notNull(start) + 1;
+          if (start == end) break;
+          char = input[dartx.codeUnitAt](start);
+        } else {
+          break;
+        }
+      }
+      let expectedPartialPadding = expectedPadding;
+      if (dart.notNull(expectedPartialPadding) > 3) {
+        expectedPartialPadding = dart.notNull(expectedPartialPadding) - 3;
+      }
+      if (expectedPartialPadding == 2) {
+        if (char != convert._Base64Decoder._char_3) break;
+        start = dart.notNull(start) + 1;
+        expectedPadding = dart.notNull(expectedPadding) - 1;
+        if (start == end) break;
+        char = input[dartx.codeUnitAt](start);
+      }
+      if ((dart.notNull(char) | 32) != convert._Base64Decoder._char_d) break;
+      start = dart.notNull(start) + 1;
+      expectedPadding = dart.notNull(expectedPadding) - 1;
+      if (start == end) break;
+    }
+    if (start != end) {
+      dart.throw(new core.FormatException("Invalid padding character", input, start));
+    }
+    return convert._Base64Decoder._encodePaddingState(expectedPadding);
+  }
+};
+dart.setSignature(convert._Base64Decoder, {
+  fields: () => ({[_state$0]: core.int}),
+  methods: () => ({
+    decode: dart.definiteFunctionType(typed_data.Uint8List, [core.String, core.int, core.int]),
+    close: dart.definiteFunctionType(dart.void, [core.String, core.int])
+  }),
+  sfields: () => ({
+    _valueShift: core.int,
+    _countMask: core.int,
+    _invalid: core.int,
+    _padding: core.int,
+    __: core.int,
+    _p: core.int,
+    _inverseAlphabet: ListOfint(),
+    _char_percent: core.int,
+    _char_3: core.int,
+    _char_d: core.int
+  }),
+  statics: () => ({
+    _encodeCharacterState: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    _stateCount: dart.definiteFunctionType(core.int, [core.int]),
+    _stateBits: dart.definiteFunctionType(core.int, [core.int]),
+    _encodePaddingState: dart.definiteFunctionType(core.int, [core.int]),
+    _statePadding: dart.definiteFunctionType(core.int, [core.int]),
+    _hasSeenPadding: dart.definiteFunctionType(core.bool, [core.int]),
+    decodeChunk: dart.definiteFunctionType(core.int, [core.String, core.int, core.int, typed_data.Uint8List, core.int, core.int]),
+    _allocateBuffer: dart.definiteFunctionType(typed_data.Uint8List, [core.String, core.int, core.int, core.int]),
+    _trimPaddingChars: dart.definiteFunctionType(core.int, [core.String, core.int, core.int]),
+    _checkPadding: dart.definiteFunctionType(core.int, [core.String, core.int, core.int, core.int])
+  }),
+  names: ['_encodeCharacterState', '_stateCount', '_stateBits', '_encodePaddingState', '_statePadding', '_hasSeenPadding', 'decodeChunk', '_allocateBuffer', '_trimPaddingChars', '_checkPadding']
+});
+convert._Base64Decoder._valueShift = 2;
+convert._Base64Decoder._countMask = 3;
+convert._Base64Decoder._invalid = -2;
+convert._Base64Decoder._padding = -1;
+convert._Base64Decoder._char_percent = 37;
+convert._Base64Decoder._char_3 = 51;
+convert._Base64Decoder._char_d = 100;
+dart.defineLazy(convert._Base64Decoder, {
+  get __() {
+    return convert._Base64Decoder._invalid;
+  },
+  get _p() {
+    return convert._Base64Decoder._padding;
+  },
+  get _inverseAlphabet() {
+    return typed_data.Int8List.fromList(JSArrayOfint().of([convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder._p, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, 62, convert._Base64Decoder.__, 62, convert._Base64Decoder.__, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder._p, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, 63, convert._Base64Decoder.__, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__, convert._Base64Decoder.__]));
+  }
+});
+const _decoder = Symbol('_decoder');
+convert._Base64DecoderSink = class _Base64DecoderSink extends convert.StringConversionSinkBase {
+  new(sink) {
+    this[_decoder] = new convert._Base64Decoder();
+    this[_sink$] = sink;
+  }
+  add(string) {
+    if (dart.test(string[dartx.isEmpty])) return;
+    let buffer = this[_decoder].decode(string, 0, string[dartx.length]);
+    if (buffer != null) this[_sink$].add(buffer);
+  }
+  close() {
+    this[_decoder].close(null, null);
+    this[_sink$].close();
+  }
+  addSlice(string, start, end, isLast) {
+    end = core.RangeError.checkValidRange(start, end, string[dartx.length]);
+    if (start == end) return;
+    let buffer = this[_decoder].decode(string, start, end);
+    if (buffer != null) this[_sink$].add(buffer);
+    if (dart.test(isLast)) {
+      this[_decoder].close(string, end);
+      this[_sink$].close();
+    }
+  }
+};
+dart.setSignature(convert._Base64DecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Base64DecoderSink, [SinkOfListOfint()])}),
+  fields: () => ({
+    [_sink$]: SinkOfListOfint(),
+    [_decoder]: convert._Base64Decoder
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
+  })
+});
+convert._ByteAdapterSink = class _ByteAdapterSink extends convert.ByteConversionSinkBase {
+  new(sink) {
+    this[_sink$] = sink;
+    super.new();
+  }
+  add(chunk) {
+    this[_sink$].add(chunk);
+  }
+  close() {
+    this[_sink$].close();
+  }
+};
+dart.setSignature(convert._ByteAdapterSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._ByteAdapterSink, [SinkOfListOfint()])}),
+  fields: () => ({[_sink$]: SinkOfListOfint()}),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _buffer = Symbol('_buffer');
+const _callback = Symbol('_callback');
+const _bufferIndex = Symbol('_bufferIndex');
+convert._ByteCallbackSink = class _ByteCallbackSink extends convert.ByteConversionSinkBase {
+  new(callback) {
+    this[_buffer] = typed_data.Uint8List.new(convert._ByteCallbackSink._INITIAL_BUFFER_SIZE);
+    this[_callback] = callback;
+    this[_bufferIndex] = 0;
+    super.new();
+  }
+  add(chunk) {
+    let freeCount = dart.notNull(this[_buffer][dartx.length]) - dart.notNull(this[_bufferIndex]);
+    if (dart.notNull(chunk[dartx.length]) > freeCount) {
+      let oldLength = this[_buffer][dartx.length];
+      let newLength = dart.notNull(convert._ByteCallbackSink._roundToPowerOf2(dart.notNull(chunk[dartx.length]) + dart.notNull(oldLength))) * 2;
+      let grown = typed_data.Uint8List.new(newLength);
+      grown[dartx.setRange](0, this[_buffer][dartx.length], this[_buffer]);
+      this[_buffer] = grown;
+    }
+    this[_buffer][dartx.setRange](this[_bufferIndex], dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[dartx.length]), chunk);
+    this[_bufferIndex] = dart.notNull(this[_bufferIndex]) + dart.notNull(chunk[dartx.length]);
+  }
+  static _roundToPowerOf2(v) {
+    dart.assert(dart.notNull(v) > 0);
+    v = dart.notNull(v) - 1;
+    v = (dart.notNull(v) | v[dartx['>>']](1)) >>> 0;
+    v = (dart.notNull(v) | v[dartx['>>']](2)) >>> 0;
+    v = (dart.notNull(v) | v[dartx['>>']](4)) >>> 0;
+    v = (dart.notNull(v) | v[dartx['>>']](8)) >>> 0;
+    v = (dart.notNull(v) | v[dartx['>>']](16)) >>> 0;
+    v = dart.notNull(v) + 1;
+    return v;
+  }
+  close() {
+    this[_callback](this[_buffer][dartx.sublist](0, this[_bufferIndex]));
+  }
+};
+dart.setSignature(convert._ByteCallbackSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._ByteCallbackSink, [ListOfintTovoid()])}),
+  fields: () => ({
+    [_callback]: ListOfintTovoid(),
+    [_buffer]: ListOfint(),
+    [_bufferIndex]: core.int
+  }),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [IterableOfint()]),
+    close: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({_INITIAL_BUFFER_SIZE: core.int}),
+  statics: () => ({_roundToPowerOf2: dart.definiteFunctionType(core.int, [core.int])}),
+  names: ['_roundToPowerOf2']
+});
+convert._ByteCallbackSink._INITIAL_BUFFER_SIZE = 1024;
+convert._ChunkedConversionCallback$ = dart.generic(T => {
+  const _ChunkedConversionCallback = dart.typedef('_ChunkedConversionCallback', () => dart.functionType(dart.void, [T]));
+  return _ChunkedConversionCallback;
+});
+convert._ChunkedConversionCallback = _ChunkedConversionCallback();
+convert.ChunkedConverter$ = dart.generic((S, T, S2, T2) => {
+  let StreamOfS = () => (StreamOfS = dart.constFn(async.Stream$(S)))();
+  let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
+  class ChunkedConverter extends convert.Converter$(S, T) {
+    new() {
+      super.new();
+    }
+    bind(other) {
+      return super.bind(StreamOfS()._check(other));
+    }
+    startChunkedConversion(sink) {
+      return super.startChunkedConversion(SinkOfT()._check(sink));
+    }
+  }
+  dart.setSignature(ChunkedConverter, {
+    constructors: () => ({new: dart.definiteFunctionType(convert.ChunkedConverter$(S, T, S2, T2), [])}),
+    methods: () => ({
+      bind: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+      startChunkedConversion: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+    })
+  });
+  return ChunkedConverter;
+});
+convert.ChunkedConverter = ChunkedConverter();
+const _accumulated = Symbol('_accumulated');
+convert._SimpleCallbackSink$ = dart.generic(T => {
+  let JSArrayOfT = () => (JSArrayOfT = dart.constFn(_interceptors.JSArray$(T)))();
+  let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
+  let _ChunkedConversionCallbackOfListOfT = () => (_ChunkedConversionCallbackOfListOfT = dart.constFn(convert._ChunkedConversionCallback$(ListOfT())))();
+  class _SimpleCallbackSink extends convert.ChunkedConversionSink$(T) {
+    new(callback) {
+      this[_accumulated] = JSArrayOfT().of([]);
+      this[_callback] = callback;
+      super.new();
+    }
+    add(chunk) {
+      T._check(chunk);
+      this[_accumulated][dartx.add](chunk);
+    }
+    close() {
+      this[_callback](this[_accumulated]);
+    }
+  }
+  dart.setSignature(_SimpleCallbackSink, {
+    constructors: () => ({new: dart.definiteFunctionType(convert._SimpleCallbackSink$(T), [_ChunkedConversionCallbackOfListOfT()])}),
+    fields: () => ({
+      [_callback]: _ChunkedConversionCallbackOfListOfT(),
+      [_accumulated]: ListOfT()
+    }),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [T]),
+      close: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _SimpleCallbackSink;
+});
+convert._SimpleCallbackSink = _SimpleCallbackSink();
+const _eventSink = Symbol('_eventSink');
+const _chunkedSink = Symbol('_chunkedSink');
+convert._ConverterStreamEventSink$ = dart.generic((S, T) => {
+  let EventSinkOfS = () => (EventSinkOfS = dart.constFn(async.EventSink$(S)))();
+  let SinkOfS = () => (SinkOfS = dart.constFn(core.Sink$(S)))();
+  let ConverterOfS$T = () => (ConverterOfS$T = dart.constFn(convert.Converter$(S, T)))();
+  let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
+  class _ConverterStreamEventSink extends core.Object {
+    new(converter, sink) {
+      this[_eventSink] = sink;
+      this[_chunkedSink] = converter.startChunkedConversion(sink);
+    }
+    add(o) {
+      S._check(o);
+      this[_chunkedSink].add(o);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_eventSink].addError(error, stackTrace);
+    }
+    close() {
+      this[_chunkedSink].close();
+    }
+  }
+  dart.addTypeTests(_ConverterStreamEventSink);
+  _ConverterStreamEventSink[dart.implements] = () => [EventSinkOfS()];
+  dart.setSignature(_ConverterStreamEventSink, {
+    constructors: () => ({new: dart.definiteFunctionType(convert._ConverterStreamEventSink$(S, T), [ConverterOfS$T(), EventSinkOfT()])}),
+    fields: () => ({
+      [_eventSink]: EventSinkOfT(),
+      [_chunkedSink]: SinkOfS()
+    }),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [S]),
+      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+      close: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _ConverterStreamEventSink;
+});
+convert._ConverterStreamEventSink = _ConverterStreamEventSink();
+const _second = Symbol('_second');
+const _first$0 = Symbol('_first');
+convert._FusedCodec$ = dart.generic((S, M, T) => {
+  let CodecOfS$M = () => (CodecOfS$M = dart.constFn(convert.Codec$(S, M)))();
+  let CodecOfM$T = () => (CodecOfM$T = dart.constFn(convert.Codec$(M, T)))();
+  class _FusedCodec extends convert.Codec$(S, T) {
+    get encoder() {
+      return this[_first$0].encoder.fuse(T)(this[_second].encoder);
+    }
+    get decoder() {
+      return this[_second].decoder.fuse(S)(this[_first$0].decoder);
+    }
+    new(first, second) {
+      this[_first$0] = first;
+      this[_second] = second;
+      super.new();
+    }
+  }
+  dart.setSignature(_FusedCodec, {
+    constructors: () => ({new: dart.definiteFunctionType(convert._FusedCodec$(S, M, T), [CodecOfS$M(), CodecOfM$T()])}),
+    fields: () => ({
+      [_first$0]: CodecOfS$M(),
+      [_second]: CodecOfM$T()
+    }),
+    getters: () => ({
+      encoder: dart.definiteFunctionType(convert.Converter$(S, T), []),
+      decoder: dart.definiteFunctionType(convert.Converter$(T, S), [])
+    })
+  });
+  return _FusedCodec;
+});
+convert._FusedCodec = _FusedCodec();
+const _codec = Symbol('_codec');
+convert._InvertedCodec$ = dart.generic((T, S) => {
+  let CodecOfS$T = () => (CodecOfS$T = dart.constFn(convert.Codec$(S, T)))();
+  class _InvertedCodec extends convert.Codec$(T, S) {
+    new(codec) {
+      this[_codec] = codec;
+      super.new();
+    }
+    get encoder() {
+      return this[_codec].decoder;
+    }
+    get decoder() {
+      return this[_codec].encoder;
+    }
+    get inverted() {
+      return this[_codec];
+    }
+  }
+  dart.setSignature(_InvertedCodec, {
+    constructors: () => ({new: dart.definiteFunctionType(convert._InvertedCodec$(T, S), [CodecOfS$T()])}),
+    fields: () => ({[_codec]: CodecOfS$T()}),
+    getters: () => ({
+      encoder: dart.definiteFunctionType(convert.Converter$(T, S), []),
+      decoder: dart.definiteFunctionType(convert.Converter$(S, T), [])
+    })
+  });
+  return _InvertedCodec;
+});
+convert._InvertedCodec = _InvertedCodec();
+convert._FusedConverter$ = dart.generic((S, M, T) => {
+  let ConverterOfS$M = () => (ConverterOfS$M = dart.constFn(convert.Converter$(S, M)))();
+  let ConverterOfM$T = () => (ConverterOfM$T = dart.constFn(convert.Converter$(M, T)))();
+  let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
+  class _FusedConverter extends convert.Converter$(S, T) {
+    new(first, second) {
+      this[_first$0] = first;
+      this[_second] = second;
+      super.new();
+    }
+    convert(input) {
+      S._check(input);
+      return this[_second].convert(this[_first$0].convert(input));
+    }
+    startChunkedConversion(sink) {
+      SinkOfT()._check(sink);
+      return this[_first$0].startChunkedConversion(this[_second].startChunkedConversion(sink));
+    }
+  }
+  dart.setSignature(_FusedConverter, {
+    constructors: () => ({new: dart.definiteFunctionType(convert._FusedConverter$(S, M, T), [ConverterOfS$M(), ConverterOfM$T()])}),
+    fields: () => ({
+      [_first$0]: ConverterOfS$M(),
+      [_second]: ConverterOfM$T()
+    }),
+    methods: () => ({convert: dart.definiteFunctionType(T, [S])})
+  });
+  return _FusedConverter;
+});
+convert._FusedConverter = _FusedConverter();
+const _name$1 = Symbol('_name');
+let const$34;
+let const$35;
+let const$36;
+let const$37;
+let const$38;
+let const$39;
+let const$40;
+let const$41;
+convert.HtmlEscapeMode = class HtmlEscapeMode extends core.Object {
+  _(name, escapeLtGt, escapeQuot, escapeApos, escapeSlash) {
+    this[_name$1] = name;
+    this.escapeLtGt = escapeLtGt;
+    this.escapeQuot = escapeQuot;
+    this.escapeApos = escapeApos;
+    this.escapeSlash = escapeSlash;
+  }
+  new(opts) {
+    let name = opts && 'name' in opts ? opts.name : "custom";
+    let escapeLtGt = opts && 'escapeLtGt' in opts ? opts.escapeLtGt : false;
+    let escapeQuot = opts && 'escapeQuot' in opts ? opts.escapeQuot : false;
+    let escapeApos = opts && 'escapeApos' in opts ? opts.escapeApos : false;
+    let escapeSlash = opts && 'escapeSlash' in opts ? opts.escapeSlash : false;
+    this.escapeLtGt = escapeLtGt;
+    this.escapeQuot = escapeQuot;
+    this.escapeApos = escapeApos;
+    this.escapeSlash = escapeSlash;
+    this[_name$1] = name;
+  }
+  toString() {
+    return this[_name$1];
+  }
+};
+dart.defineNamedConstructor(convert.HtmlEscapeMode, '_');
+dart.setSignature(convert.HtmlEscapeMode, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(convert.HtmlEscapeMode, [core.String, core.bool, core.bool, core.bool, core.bool]),
+    new: dart.definiteFunctionType(convert.HtmlEscapeMode, [], {name: core.String, escapeLtGt: core.bool, escapeQuot: core.bool, escapeApos: core.bool, escapeSlash: core.bool})
+  }),
+  fields: () => ({
+    [_name$1]: core.String,
+    escapeLtGt: core.bool,
+    escapeQuot: core.bool,
+    escapeApos: core.bool,
+    escapeSlash: core.bool
+  }),
+  sfields: () => ({
+    UNKNOWN: convert.HtmlEscapeMode,
+    ATTRIBUTE: convert.HtmlEscapeMode,
+    SQ_ATTRIBUTE: convert.HtmlEscapeMode,
+    ELEMENT: convert.HtmlEscapeMode
+  })
+});
+dart.defineLazy(convert.HtmlEscapeMode, {
+  get UNKNOWN() {
+    return const$38 || (const$38 = dart.const(new convert.HtmlEscapeMode._('unknown', true, true, true, true)));
+  },
+  get ATTRIBUTE() {
+    return const$39 || (const$39 = dart.const(new convert.HtmlEscapeMode._('attribute', true, true, false, false)));
+  },
+  get SQ_ATTRIBUTE() {
+    return const$40 || (const$40 = dart.const(new convert.HtmlEscapeMode._('attribute', true, false, true, false)));
+  },
+  get ELEMENT() {
+    return const$41 || (const$41 = dart.const(new convert.HtmlEscapeMode._('element', true, false, false, false)));
+  }
+});
+const _convert = Symbol('_convert');
+convert.HtmlEscape = class HtmlEscape extends convert.Converter$(core.String, core.String) {
+  new(mode) {
+    if (mode === void 0) mode = convert.HtmlEscapeMode.UNKNOWN;
+    this.mode = mode;
+    super.new();
+  }
+  convert(text) {
+    let val = this[_convert](text, 0, text[dartx.length]);
+    return val == null ? text : val;
+  }
+  [_convert](text, start, end) {
+    let result = null;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let ch = text[dartx._get](i);
+      let replacement = null;
+      switch (ch) {
+        case '&':
+        {
+          replacement = '&amp;';
+          break;
+        }
+        case '"':
+        {
+          if (dart.test(this.mode.escapeQuot)) replacement = '&quot;';
+          break;
+        }
+        case "'":
+        {
+          if (dart.test(this.mode.escapeApos)) replacement = '&#39;';
+          break;
+        }
+        case '<':
+        {
+          if (dart.test(this.mode.escapeLtGt)) replacement = '&lt;';
+          break;
+        }
+        case '>':
+        {
+          if (dart.test(this.mode.escapeLtGt)) replacement = '&gt;';
+          break;
+        }
+        case '/':
+        {
+          if (dart.test(this.mode.escapeSlash)) replacement = '&#47;';
+          break;
+        }
+      }
+      if (replacement != null) {
+        if (result == null) result = new core.StringBuffer();
+        if (dart.notNull(i) > dart.notNull(start)) result.write(text[dartx.substring](start, i));
+        result.write(replacement);
+        start = dart.notNull(i) + 1;
+      }
+    }
+    if (result == null) return null;
+    if (dart.notNull(end) > dart.notNull(start)) result.write(text[dartx.substring](start, end));
+    return dart.toString(result);
+  }
+  startChunkedConversion(sink) {
+    if (!convert.StringConversionSink.is(sink)) {
+      sink = convert.StringConversionSink.from(sink);
+    }
+    return new convert._HtmlEscapeSink(this, convert.StringConversionSink._check(sink));
+  }
+};
+dart.addSimpleTypeTests(convert.HtmlEscape);
+dart.setSignature(convert.HtmlEscape, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.HtmlEscape, [], [convert.HtmlEscapeMode])}),
+  fields: () => ({mode: convert.HtmlEscapeMode}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.String, [core.String]),
+    [_convert]: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfString()])
+  })
+});
+convert.HTML_ESCAPE = dart.const(new convert.HtmlEscape());
+const _escape = Symbol('_escape');
+convert._HtmlEscapeSink = class _HtmlEscapeSink extends convert.StringConversionSinkBase {
+  new(escape, sink) {
+    this[_escape] = escape;
+    this[_sink$] = sink;
+  }
+  addSlice(chunk, start, end, isLast) {
+    let val = this[_escape][_convert](chunk, start, end);
+    if (val == null) {
+      this[_sink$].addSlice(chunk, start, end, isLast);
+    } else {
+      this[_sink$].add(val);
+      if (dart.test(isLast)) this[_sink$].close();
+    }
+  }
+  close() {
+    this[_sink$].close();
+  }
+};
+dart.setSignature(convert._HtmlEscapeSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._HtmlEscapeSink, [convert.HtmlEscape, convert.StringConversionSink])}),
+  fields: () => ({
+    [_escape]: convert.HtmlEscape,
+    [_sink$]: convert.StringConversionSink
+  }),
+  methods: () => ({
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+convert.JsonUnsupportedObjectError = class JsonUnsupportedObjectError extends core.Error {
+  new(unsupportedObject, opts) {
+    let cause = opts && 'cause' in opts ? opts.cause : null;
+    this.unsupportedObject = unsupportedObject;
+    this.cause = cause;
+    super.new();
+  }
+  toString() {
+    if (this.cause != null) {
+      return "Converting object to an encodable object failed.";
+    } else {
+      return "Converting object did not return an encodable object.";
+    }
+  }
+};
+dart.setSignature(convert.JsonUnsupportedObjectError, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.JsonUnsupportedObjectError, [dart.dynamic], {cause: dart.dynamic})}),
+  fields: () => ({
+    unsupportedObject: dart.dynamic,
+    cause: dart.dynamic
+  })
+});
+convert.JsonCyclicError = class JsonCyclicError extends convert.JsonUnsupportedObjectError {
+  new(object) {
+    super.new(object);
+  }
+  toString() {
+    return "Cyclic error in JSON stringify";
+  }
+};
+dart.setSignature(convert.JsonCyclicError, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.JsonCyclicError, [core.Object])})
+});
+const _toEncodable = Symbol('_toEncodable');
+let const$42;
+let const$43;
+convert.JsonCodec = class JsonCodec extends convert.Codec$(core.Object, core.String) {
+  new(opts) {
+    let reviver = opts && 'reviver' in opts ? opts.reviver : null;
+    let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
+    this[_reviver] = reviver;
+    this[_toEncodable] = toEncodable;
+    super.new();
+  }
+  withReviver(reviver) {
+    JsonCodec.prototype.new.call(this, {reviver: reviver});
+  }
+  decode(source, opts) {
+    let reviver = opts && 'reviver' in opts ? opts.reviver : null;
+    if (reviver == null) reviver = this[_reviver];
+    if (reviver == null) return this.decoder.convert(source);
+    return new convert.JsonDecoder(reviver).convert(source);
+  }
+  encode(value, opts) {
+    let toEncodable = opts && 'toEncodable' in opts ? opts.toEncodable : null;
+    if (toEncodable == null) toEncodable = this[_toEncodable];
+    if (toEncodable == null) return this.encoder.convert(value);
+    return new convert.JsonEncoder(toEncodable).convert(value);
+  }
+  get encoder() {
+    if (this[_toEncodable] == null) return const$42 || (const$42 = dart.const(new convert.JsonEncoder()));
+    return new convert.JsonEncoder(this[_toEncodable]);
+  }
+  get decoder() {
+    if (this[_reviver] == null) return const$43 || (const$43 = dart.const(new convert.JsonDecoder()));
+    return new convert.JsonDecoder(this[_reviver]);
+  }
+};
+dart.addSimpleTypeTests(convert.JsonCodec);
+dart.defineNamedConstructor(convert.JsonCodec, 'withReviver');
+dart.setSignature(convert.JsonCodec, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert.JsonCodec, [], {reviver: dynamicAnddynamicTodynamic(), toEncodable: dynamicTodynamic()}),
+    withReviver: dart.definiteFunctionType(convert.JsonCodec, [dynamicAnddynamicTodynamic()])
+  }),
+  fields: () => ({
+    [_reviver]: convert._Reviver,
+    [_toEncodable]: convert._ToEncodable
+  }),
+  getters: () => ({
+    encoder: dart.definiteFunctionType(convert.JsonEncoder, []),
+    decoder: dart.definiteFunctionType(convert.JsonDecoder, [])
+  }),
+  methods: () => ({
+    decode: dart.definiteFunctionType(dart.dynamic, [core.String], {reviver: dynamicAnddynamicTodynamic()}),
+    encode: dart.definiteFunctionType(core.String, [core.Object], {toEncodable: dynamicTodynamic()})
+  })
+});
+convert.JSON = dart.const(new convert.JsonCodec());
+convert._Reviver = dart.typedef('_Reviver', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
+convert._ToEncodable = dart.typedef('_ToEncodable', () => dart.functionType(dart.dynamic, [dart.dynamic]));
+convert.JsonEncoder = class JsonEncoder extends convert.Converter$(core.Object, core.String) {
+  new(toEncodable) {
+    if (toEncodable === void 0) toEncodable = null;
+    this.indent = null;
+    this[_toEncodable] = toEncodable;
+    super.new();
+  }
+  withIndent(indent, toEncodable) {
+    if (toEncodable === void 0) toEncodable = null;
+    this.indent = indent;
+    this[_toEncodable] = toEncodable;
+    super.new();
+  }
+  convert(object) {
+    return convert._JsonStringStringifier.stringify(object, this[_toEncodable], this.indent);
+  }
+  startChunkedConversion(sink) {
+    if (!convert.StringConversionSink.is(sink)) {
+      sink = convert.StringConversionSink.from(sink);
+    } else if (convert._Utf8EncoderSink.is(sink)) {
+      return new convert._JsonUtf8EncoderSink(sink[_sink$], this[_toEncodable], convert.JsonUtf8Encoder._utf8Encode(this.indent), convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE);
+    }
+    return new convert._JsonEncoderSink(convert.StringConversionSink._check(sink), this[_toEncodable], this.indent);
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+  fuse(T) {
+    return other => {
+      if (convert.Utf8Encoder.is(other)) {
+        return convert.Converter$(core.Object, T).as(new convert.JsonUtf8Encoder(this.indent, this[_toEncodable]));
+      }
+      return super.fuse(T)(other);
+    };
+  }
+};
+dart.addSimpleTypeTests(convert.JsonEncoder);
+dart.defineNamedConstructor(convert.JsonEncoder, 'withIndent');
+dart.setSignature(convert.JsonEncoder, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert.JsonEncoder, [], [dynamicTodynamic()]),
+    withIndent: dart.definiteFunctionType(convert.JsonEncoder, [core.String], [dynamicTodynamic()])
+  }),
+  fields: () => ({
+    indent: core.String,
+    [_toEncodable]: convert._ToEncodable
+  }),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.String, [core.Object]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ChunkedConversionSink$(core.Object), [SinkOfString()])
+  })
+});
+const _indent = Symbol('_indent');
+const _bufferSize = Symbol('_bufferSize');
+convert.JsonUtf8Encoder = class JsonUtf8Encoder extends convert.Converter$(core.Object, core.List$(core.int)) {
+  new(indent, toEncodable, bufferSize) {
+    if (indent === void 0) indent = null;
+    if (toEncodable === void 0) toEncodable = null;
+    if (bufferSize === void 0) bufferSize = convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE;
+    this[_indent] = convert.JsonUtf8Encoder._utf8Encode(indent);
+    this[_toEncodable] = toEncodable;
+    this[_bufferSize] = bufferSize;
+    super.new();
+  }
+  static _utf8Encode(string) {
+    if (string == null) return null;
+    if (dart.test(string[dartx.isEmpty])) return typed_data.Uint8List.new(0);
+    checkAscii: {
+      for (let i = 0; i < dart.notNull(string[dartx.length]); i++) {
+        if (dart.notNull(string[dartx.codeUnitAt](i)) >= 128) break checkAscii;
+      }
+      return string[dartx.codeUnits];
+    }
+    return convert.UTF8.encode(string);
+  }
+  convert(object) {
+    let bytes = JSArrayOfListOfint().of([]);
+    function addChunk(chunk, start, end) {
+      if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(chunk[dartx.length])) {
+        let length = dart.notNull(end) - dart.notNull(start);
+        chunk = typed_data.Uint8List.view(chunk[dartx.buffer], dart.notNull(chunk[dartx.offsetInBytes]) + dart.notNull(start), length);
+      }
+      bytes[dartx.add](chunk);
+    }
+    dart.fn(addChunk, Uint8ListAndintAndintTovoid$());
+    convert._JsonUtf8Stringifier.stringify(object, this[_indent], this[_toEncodable], this[_bufferSize], addChunk);
+    if (bytes[dartx.length] == 1) return bytes[dartx._get](0);
+    let length = 0;
+    for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
+      length = dart.notNull(length) + dart.notNull(bytes[dartx._get](i)[dartx.length]);
+    }
+    let result = typed_data.Uint8List.new(length);
+    for (let i = 0, offset = 0; i < dart.notNull(bytes[dartx.length]); i++) {
+      let byteList = bytes[dartx._get](i);
+      let end = offset + dart.notNull(byteList[dartx.length]);
+      result[dartx.setRange](offset, end, byteList);
+      offset = end;
+    }
+    return result;
+  }
+  startChunkedConversion(sink) {
+    let byteSink = null;
+    if (convert.ByteConversionSink.is(sink)) {
+      byteSink = sink;
+    } else {
+      byteSink = convert.ByteConversionSink.from(sink);
+    }
+    return new convert._JsonUtf8EncoderSink(byteSink, this[_toEncodable], this[_indent], this[_bufferSize]);
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+};
+dart.addSimpleTypeTests(convert.JsonUtf8Encoder);
+dart.setSignature(convert.JsonUtf8Encoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.JsonUtf8Encoder, [], [core.String, dynamicTodynamic(), core.int])}),
+  fields: () => ({
+    [_indent]: ListOfint(),
+    [_toEncodable]: convert._ToEncodable,
+    [_bufferSize]: core.int
+  }),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [core.Object]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ChunkedConversionSink$(core.Object), [SinkOfListOfint()])
+  }),
+  sfields: () => ({DEFAULT_BUFFER_SIZE: core.int}),
+  statics: () => ({_utf8Encode: dart.definiteFunctionType(core.List$(core.int), [core.String])}),
+  names: ['_utf8Encode']
+});
+convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE = 256;
+const _isDone = Symbol('_isDone');
+convert._JsonEncoderSink = class _JsonEncoderSink extends convert.ChunkedConversionSink$(core.Object) {
+  new(sink, toEncodable, indent) {
+    this[_sink$] = sink;
+    this[_toEncodable] = toEncodable;
+    this[_indent] = indent;
+    this[_isDone] = false;
+    super.new();
+  }
+  add(o) {
+    if (dart.test(this[_isDone])) {
+      dart.throw(new core.StateError("Only one call to add allowed"));
+    }
+    this[_isDone] = true;
+    let stringSink = this[_sink$].asStringSink();
+    convert._JsonStringStringifier.printOn(o, stringSink, this[_toEncodable], this[_indent]);
+    stringSink.close();
+  }
+  close() {}
+};
+dart.addSimpleTypeTests(convert._JsonEncoderSink);
+dart.setSignature(convert._JsonEncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonEncoderSink, [convert.StringConversionSink, convert._ToEncodable, core.String])}),
+  fields: () => ({
+    [_indent]: core.String,
+    [_toEncodable]: convert._ToEncodable,
+    [_sink$]: convert.StringConversionSink,
+    [_isDone]: core.bool
+  }),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [core.Object]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _addChunk = Symbol('_addChunk');
+convert._JsonUtf8EncoderSink = class _JsonUtf8EncoderSink extends convert.ChunkedConversionSink$(core.Object) {
+  new(sink, toEncodable, indent, bufferSize) {
+    this[_sink$] = sink;
+    this[_toEncodable] = toEncodable;
+    this[_indent] = indent;
+    this[_bufferSize] = bufferSize;
+    this[_isDone] = false;
+    super.new();
+  }
+  [_addChunk](chunk, start, end) {
+    this[_sink$].addSlice(chunk, start, end, false);
+  }
+  add(object) {
+    if (dart.test(this[_isDone])) {
+      dart.throw(new core.StateError("Only one call to add allowed"));
+    }
+    this[_isDone] = true;
+    convert._JsonUtf8Stringifier.stringify(object, this[_indent], this[_toEncodable], this[_bufferSize], dart.bind(this, _addChunk));
+    this[_sink$].close();
+  }
+  close() {
+    if (!dart.test(this[_isDone])) {
+      this[_isDone] = true;
+      this[_sink$].close();
+    }
+  }
+};
+dart.addSimpleTypeTests(convert._JsonUtf8EncoderSink);
+dart.setSignature(convert._JsonUtf8EncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8EncoderSink, [convert.ByteConversionSink, convert._ToEncodable, ListOfint(), core.int])}),
+  fields: () => ({
+    [_sink$]: convert.ByteConversionSink,
+    [_indent]: ListOfint(),
+    [_toEncodable]: convert._ToEncodable,
+    [_bufferSize]: core.int,
+    [_isDone]: core.bool
+  }),
+  methods: () => ({
+    [_addChunk]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List, core.int, core.int]),
+    add: dart.definiteFunctionType(dart.void, [core.Object]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+convert.JsonDecoder = class JsonDecoder extends convert.Converter$(core.String, core.Object) {
+  new(reviver) {
+    if (reviver === void 0) reviver = null;
+    this[_reviver] = reviver;
+    super.new();
+  }
+  convert(input) {
+    return convert._parseJson(input, this[_reviver]);
+  }
+  startChunkedConversion(sink) {
+    return new convert._JsonDecoderSink(this[_reviver], sink);
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+};
+dart.addSimpleTypeTests(convert.JsonDecoder);
+dart.setSignature(convert.JsonDecoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.JsonDecoder, [], [dynamicAnddynamicTodynamic()])}),
+  fields: () => ({[_reviver]: convert._Reviver}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfObject()])
+  })
+});
+convert._parseJson = function(source, reviver) {
+  if (!(typeof source == 'string')) dart.throw(_js_helper.argumentErrorValue(source));
+  let parsed = null;
+  try {
+    parsed = JSON.parse(source);
+  } catch (e) {
+    dart.throw(new core.FormatException(String(e)));
+  }
+
+  if (reviver == null) {
+    return convert._convertJsonToDartLazy(parsed);
+  } else {
+    return convert._convertJsonToDart(parsed, reviver);
+  }
+};
+dart.fn(convert._parseJson, StringAndFnTodynamic());
+convert._defaultToEncodable = function(object) {
+  return dart.dsend(object, 'toJson');
+};
+dart.fn(convert._defaultToEncodable, dynamicTodynamic$());
+const _seen = Symbol('_seen');
+const _checkCycle = Symbol('_checkCycle');
+const _removeSeen = Symbol('_removeSeen');
+convert._JsonStringifier = class _JsonStringifier extends core.Object {
+  new(toEncodable) {
+    this[_seen] = core.List.new();
+    this[_toEncodable] = (() => {
+      let l = toEncodable;
+      return l != null ? l : convert._defaultToEncodable;
+    })();
+  }
+  static hexDigit(x) {
+    return dart.notNull(x) < 10 ? 48 + dart.notNull(x) : 87 + dart.notNull(x);
+  }
+  writeStringContent(s) {
+    let offset = 0;
+    let length = s[dartx.length];
+    for (let i = 0; i < dart.notNull(length); i++) {
+      let charCode = s[dartx.codeUnitAt](i);
+      if (dart.notNull(charCode) > convert._JsonStringifier.BACKSLASH) continue;
+      if (dart.notNull(charCode) < 32) {
+        if (i > offset) this.writeStringSlice(s, offset, i);
+        offset = i + 1;
+        this.writeCharCode(convert._JsonStringifier.BACKSLASH);
+        switch (charCode) {
+          case convert._JsonStringifier.BACKSPACE:
+          {
+            this.writeCharCode(convert._JsonStringifier.CHAR_b);
+            break;
+          }
+          case convert._JsonStringifier.TAB:
+          {
+            this.writeCharCode(convert._JsonStringifier.CHAR_t);
+            break;
+          }
+          case convert._JsonStringifier.NEWLINE:
+          {
+            this.writeCharCode(convert._JsonStringifier.CHAR_n);
+            break;
+          }
+          case convert._JsonStringifier.FORM_FEED:
+          {
+            this.writeCharCode(convert._JsonStringifier.CHAR_f);
+            break;
+          }
+          case convert._JsonStringifier.CARRIAGE_RETURN:
+          {
+            this.writeCharCode(convert._JsonStringifier.CHAR_r);
+            break;
+          }
+          default:
+          {
+            this.writeCharCode(convert._JsonStringifier.CHAR_u);
+            this.writeCharCode(convert._JsonStringifier.CHAR_0);
+            this.writeCharCode(convert._JsonStringifier.CHAR_0);
+            this.writeCharCode(convert._JsonStringifier.hexDigit(dart.notNull(charCode) >> 4 & 15));
+            this.writeCharCode(convert._JsonStringifier.hexDigit(dart.notNull(charCode) & 15));
+            break;
+          }
+        }
+      } else if (charCode == convert._JsonStringifier.QUOTE || charCode == convert._JsonStringifier.BACKSLASH) {
+        if (i > offset) this.writeStringSlice(s, offset, i);
+        offset = i + 1;
+        this.writeCharCode(convert._JsonStringifier.BACKSLASH);
+        this.writeCharCode(charCode);
+      }
+    }
+    if (offset == 0) {
+      this.writeString(s);
+    } else if (offset < dart.notNull(length)) {
+      this.writeStringSlice(s, offset, length);
+    }
+  }
+  [_checkCycle](object) {
+    for (let i = 0; i < dart.notNull(this[_seen][dartx.length]); i++) {
+      if (core.identical(object, this[_seen][dartx._get](i))) {
+        dart.throw(new convert.JsonCyclicError(object));
+      }
+    }
+    this[_seen][dartx.add](object);
+  }
+  [_removeSeen](object) {
+    dart.assert(!dart.test(this[_seen][dartx.isEmpty]));
+    dart.assert(core.identical(this[_seen][dartx.last], object));
+    this[_seen][dartx.removeLast]();
+  }
+  writeObject(object) {
+    if (dart.test(this.writeJsonValue(object))) return;
+    this[_checkCycle](object);
+    try {
+      let customJson = dart.dcall(this[_toEncodable], object);
+      if (!dart.test(this.writeJsonValue(customJson))) {
+        dart.throw(new convert.JsonUnsupportedObjectError(object));
+      }
+      this[_removeSeen](object);
+    } catch (e) {
+      dart.throw(new convert.JsonUnsupportedObjectError(object, {cause: e}));
+    }
+
+  }
+  writeJsonValue(object) {
+    if (typeof object == 'number') {
+      if (!dart.test(object[dartx.isFinite])) return false;
+      this.writeNumber(object);
+      return true;
+    } else if (core.identical(object, true)) {
+      this.writeString('true');
+      return true;
+    } else if (core.identical(object, false)) {
+      this.writeString('false');
+      return true;
+    } else if (object == null) {
+      this.writeString('null');
+      return true;
+    } else if (typeof object == 'string') {
+      this.writeString('"');
+      this.writeStringContent(object);
+      this.writeString('"');
+      return true;
+    } else if (core.List.is(object)) {
+      this[_checkCycle](object);
+      this.writeList(object);
+      this[_removeSeen](object);
+      return true;
+    } else if (core.Map.is(object)) {
+      this[_checkCycle](object);
+      let success = this.writeMap(object);
+      this[_removeSeen](object);
+      return success;
+    } else {
+      return false;
+    }
+  }
+  writeList(list) {
+    this.writeString('[');
+    if (dart.notNull(list[dartx.length]) > 0) {
+      this.writeObject(list[dartx._get](0));
+      for (let i = 1; i < dart.notNull(list[dartx.length]); i++) {
+        this.writeString(',');
+        this.writeObject(list[dartx._get](i));
+      }
+    }
+    this.writeString(']');
+  }
+  writeMap(map) {
+    if (dart.test(map[dartx.isEmpty])) {
+      this.writeString("{}");
+      return true;
+    }
+    let keyValueList = core.List.new(dart.notNull(map[dartx.length]) * 2);
+    let i = 0;
+    let allStringKeys = true;
+    map[dartx.forEach](dart.fn((key, value) => {
+      if (!(typeof key == 'string')) {
+        allStringKeys = false;
+      }
+      keyValueList[dartx._set](i++, key);
+      keyValueList[dartx._set](i++, value);
+    }, dynamicAnddynamicToNull()));
+    if (!allStringKeys) return false;
+    this.writeString('{');
+    let separator = '"';
+    for (let i = 0; i < dart.notNull(keyValueList[dartx.length]); i = i + 2) {
+      this.writeString(separator);
+      separator = ',"';
+      this.writeStringContent(core.String._check(keyValueList[dartx._get](i)));
+      this.writeString('":');
+      this.writeObject(keyValueList[dartx._get](i + 1));
+    }
+    this.writeString('}');
+    return true;
+  }
+};
+dart.setSignature(convert._JsonStringifier, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringifier, [dynamicTodynamic()])}),
+  fields: () => ({
+    [_seen]: core.List,
+    [_toEncodable]: convert._ToEncodable
+  }),
+  methods: () => ({
+    writeStringContent: dart.definiteFunctionType(dart.void, [core.String]),
+    [_checkCycle]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_removeSeen]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    writeObject: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    writeJsonValue: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    writeList: dart.definiteFunctionType(dart.void, [core.List]),
+    writeMap: dart.definiteFunctionType(core.bool, [core.Map])
+  }),
+  sfields: () => ({
+    BACKSPACE: core.int,
+    TAB: core.int,
+    NEWLINE: core.int,
+    CARRIAGE_RETURN: core.int,
+    FORM_FEED: core.int,
+    QUOTE: core.int,
+    CHAR_0: core.int,
+    BACKSLASH: core.int,
+    CHAR_b: core.int,
+    CHAR_f: core.int,
+    CHAR_n: core.int,
+    CHAR_r: core.int,
+    CHAR_t: core.int,
+    CHAR_u: core.int
+  }),
+  statics: () => ({hexDigit: dart.definiteFunctionType(core.int, [core.int])}),
+  names: ['hexDigit']
+});
+convert._JsonStringifier.BACKSPACE = 8;
+convert._JsonStringifier.TAB = 9;
+convert._JsonStringifier.NEWLINE = 10;
+convert._JsonStringifier.CARRIAGE_RETURN = 13;
+convert._JsonStringifier.FORM_FEED = 12;
+convert._JsonStringifier.QUOTE = 34;
+convert._JsonStringifier.CHAR_0 = 48;
+convert._JsonStringifier.BACKSLASH = 92;
+convert._JsonStringifier.CHAR_b = 98;
+convert._JsonStringifier.CHAR_f = 102;
+convert._JsonStringifier.CHAR_n = 110;
+convert._JsonStringifier.CHAR_r = 114;
+convert._JsonStringifier.CHAR_t = 116;
+convert._JsonStringifier.CHAR_u = 117;
+const _indentLevel = Symbol('_indentLevel');
+convert._JsonPrettyPrintMixin = class _JsonPrettyPrintMixin extends core.Object {
+  new() {
+    this[_indentLevel] = 0;
+  }
+  writeList(list) {
+    if (dart.test(list[dartx.isEmpty])) {
+      this.writeString('[]');
+    } else {
+      this.writeString('[\n');
       this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
-      let separator = "";
-      for (let i = 0; i < dart.notNull(keyValueList[dartx.length]); i = i + 2) {
-        this.writeString(separator);
-        separator = ",\n";
+      this.writeIndentation(this[_indentLevel]);
+      this.writeObject(list[dartx._get](0));
+      for (let i = 1; i < dart.notNull(list[dartx.length]); i++) {
+        this.writeString(',\n');
         this.writeIndentation(this[_indentLevel]);
-        this.writeString('"');
-        this.writeStringContent(core.String._check(keyValueList[dartx._get](i)));
-        this.writeString('": ');
-        this.writeObject(keyValueList[dartx._get](i + 1));
+        this.writeObject(list[dartx._get](i));
       }
       this.writeString('\n');
       this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1;
       this.writeIndentation(this[_indentLevel]);
-      this.writeString('}');
+      this.writeString(']');
+    }
+  }
+  writeMap(map) {
+    if (dart.test(map[dartx.isEmpty])) {
+      this.writeString("{}");
       return true;
     }
-  };
-  convert._JsonPrettyPrintMixin[dart.implements] = () => [convert._JsonStringifier];
-  dart.setSignature(convert._JsonPrettyPrintMixin, {
-    fields: () => ({[_indentLevel]: core.int}),
-    methods: () => ({
-      writeList: dart.definiteFunctionType(dart.void, [core.List]),
-      writeMap: dart.definiteFunctionType(core.bool, [core.Map])
-    })
-  });
-  convert._JsonStringStringifier = class _JsonStringStringifier extends convert._JsonStringifier {
-    new(sink, _toEncodable) {
-      this[_sink$] = sink;
-      super.new(dynamicTodynamic()._check(_toEncodable));
-    }
-    static stringify(object, toEncodable, indent) {
-      let output = new core.StringBuffer();
-      convert._JsonStringStringifier.printOn(object, output, toEncodable, indent);
-      return output.toString();
-    }
-    static printOn(object, output, toEncodable, indent) {
-      let stringifier = null;
-      if (indent == null) {
-        stringifier = new convert._JsonStringStringifier(output, toEncodable);
-      } else {
-        stringifier = new convert._JsonStringStringifierPretty(output, toEncodable, indent);
+    let keyValueList = core.List.new(dart.notNull(map[dartx.length]) * 2);
+    let i = 0;
+    let allStringKeys = true;
+    map[dartx.forEach](dart.fn((key, value) => {
+      if (!(typeof key == 'string')) {
+        allStringKeys = false;
       }
-      dart.dsend(stringifier, 'writeObject', object);
+      keyValueList[dartx._set](i++, key);
+      keyValueList[dartx._set](i++, value);
+    }, dynamicAnddynamicToNull()));
+    if (!allStringKeys) return false;
+    this.writeString('{\n');
+    this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
+    let separator = "";
+    for (let i = 0; i < dart.notNull(keyValueList[dartx.length]); i = i + 2) {
+      this.writeString(separator);
+      separator = ",\n";
+      this.writeIndentation(this[_indentLevel]);
+      this.writeString('"');
+      this.writeStringContent(core.String._check(keyValueList[dartx._get](i)));
+      this.writeString('": ');
+      this.writeObject(keyValueList[dartx._get](i + 1));
     }
-    writeNumber(number) {
-      this[_sink$].write(dart.toString(number));
+    this.writeString('\n');
+    this[_indentLevel] = dart.notNull(this[_indentLevel]) - 1;
+    this.writeIndentation(this[_indentLevel]);
+    this.writeString('}');
+    return true;
+  }
+};
+convert._JsonPrettyPrintMixin[dart.implements] = () => [convert._JsonStringifier];
+dart.setSignature(convert._JsonPrettyPrintMixin, {
+  fields: () => ({[_indentLevel]: core.int}),
+  methods: () => ({
+    writeList: dart.definiteFunctionType(dart.void, [core.List]),
+    writeMap: dart.definiteFunctionType(core.bool, [core.Map])
+  })
+});
+convert._JsonStringStringifier = class _JsonStringStringifier extends convert._JsonStringifier {
+  new(sink, _toEncodable) {
+    this[_sink$] = sink;
+    super.new(dynamicTodynamic()._check(_toEncodable));
+  }
+  static stringify(object, toEncodable, indent) {
+    let output = new core.StringBuffer();
+    convert._JsonStringStringifier.printOn(object, output, toEncodable, indent);
+    return output.toString();
+  }
+  static printOn(object, output, toEncodable, indent) {
+    let stringifier = null;
+    if (indent == null) {
+      stringifier = new convert._JsonStringStringifier(output, toEncodable);
+    } else {
+      stringifier = new convert._JsonStringStringifierPretty(output, toEncodable, indent);
     }
-    writeString(string) {
-      this[_sink$].write(string);
+    dart.dsend(stringifier, 'writeObject', object);
+  }
+  writeNumber(number) {
+    this[_sink$].write(dart.toString(number));
+  }
+  writeString(string) {
+    this[_sink$].write(string);
+  }
+  writeStringSlice(string, start, end) {
+    this[_sink$].write(string[dartx.substring](start, end));
+  }
+  writeCharCode(charCode) {
+    this[_sink$].writeCharCode(charCode);
+  }
+};
+dart.setSignature(convert._JsonStringStringifier, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringStringifier, [core.StringSink, dart.dynamic])}),
+  fields: () => ({[_sink$]: core.StringSink}),
+  methods: () => ({
+    writeNumber: dart.definiteFunctionType(dart.void, [core.num]),
+    writeString: dart.definiteFunctionType(dart.void, [core.String]),
+    writeStringSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int]),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int])
+  }),
+  statics: () => ({
+    stringify: dart.definiteFunctionType(core.String, [dart.dynamic, dynamicTodynamic(), core.String]),
+    printOn: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StringSink, dynamicTodynamic(), core.String])
+  }),
+  names: ['stringify', 'printOn']
+});
+convert._JsonStringStringifierPretty = class _JsonStringStringifierPretty extends dart.mixin(convert._JsonStringStringifier, convert._JsonPrettyPrintMixin) {
+  new(sink, toEncodable, indent) {
+    this[_indent] = indent;
+    super.new(sink, toEncodable);
+  }
+  writeIndentation(count) {
+    for (let i = 0; i < dart.notNull(count); i++)
+      this.writeString(this[_indent]);
+  }
+};
+dart.setSignature(convert._JsonStringStringifierPretty, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringStringifierPretty, [core.StringSink, dynamicTodynamic(), core.String])}),
+  fields: () => ({[_indent]: core.String}),
+  methods: () => ({writeIndentation: dart.definiteFunctionType(dart.void, [core.int])})
+});
+convert._AddChunk = dart.typedef('_AddChunk', () => dart.functionType(dart.void, [typed_data.Uint8List, core.int, core.int]));
+convert._JsonUtf8Stringifier = class _JsonUtf8Stringifier extends convert._JsonStringifier {
+  new(toEncodable, bufferSize, addChunk) {
+    this.addChunk = addChunk;
+    this.bufferSize = bufferSize;
+    this.buffer = typed_data.Uint8List.new(bufferSize);
+    this.index = 0;
+    super.new(toEncodable);
+  }
+  static stringify(object, indent, toEncodable, bufferSize, addChunk) {
+    let stringifier = null;
+    if (indent != null) {
+      stringifier = new convert._JsonUtf8StringifierPretty(toEncodable, indent, bufferSize, addChunk);
+    } else {
+      stringifier = new convert._JsonUtf8Stringifier(toEncodable, bufferSize, addChunk);
     }
-    writeStringSlice(string, start, end) {
-      this[_sink$].write(string[dartx.substring](start, end));
+    stringifier.writeObject(object);
+    stringifier.flush();
+  }
+  flush() {
+    if (dart.notNull(this.index) > 0) {
+      this.addChunk(this.buffer, 0, this.index);
     }
-    writeCharCode(charCode) {
-      this[_sink$].writeCharCode(charCode);
+    this.buffer = null;
+    this.index = 0;
+  }
+  writeNumber(number) {
+    this.writeAsciiString(dart.toString(number));
+  }
+  writeAsciiString(string) {
+    for (let i = 0; i < dart.notNull(string[dartx.length]); i++) {
+      let char = string[dartx.codeUnitAt](i);
+      dart.assert(dart.notNull(char) <= 127);
+      this.writeByte(char);
     }
-  };
-  dart.setSignature(convert._JsonStringStringifier, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringStringifier, [core.StringSink, dart.dynamic])}),
-    fields: () => ({[_sink$]: core.StringSink}),
-    methods: () => ({
-      writeNumber: dart.definiteFunctionType(dart.void, [core.num]),
-      writeString: dart.definiteFunctionType(dart.void, [core.String]),
-      writeStringSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int]),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int])
-    }),
-    statics: () => ({
-      stringify: dart.definiteFunctionType(core.String, [dart.dynamic, dynamicTodynamic(), core.String]),
-      printOn: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StringSink, dynamicTodynamic(), core.String])
-    }),
-    names: ['stringify', 'printOn']
-  });
-  convert._JsonStringStringifierPretty = class _JsonStringStringifierPretty extends dart.mixin(convert._JsonStringStringifier, convert._JsonPrettyPrintMixin) {
-    new(sink, toEncodable, indent) {
-      this[_indent] = indent;
-      super.new(sink, toEncodable);
-    }
-    writeIndentation(count) {
-      for (let i = 0; i < dart.notNull(count); i++)
-        this.writeString(this[_indent]);
-    }
-  };
-  dart.setSignature(convert._JsonStringStringifierPretty, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringStringifierPretty, [core.StringSink, dynamicTodynamic(), core.String])}),
-    fields: () => ({[_indent]: core.String}),
-    methods: () => ({writeIndentation: dart.definiteFunctionType(dart.void, [core.int])})
-  });
-  convert._AddChunk = dart.typedef('_AddChunk', () => dart.functionType(dart.void, [typed_data.Uint8List, core.int, core.int]));
-  convert._JsonUtf8Stringifier = class _JsonUtf8Stringifier extends convert._JsonStringifier {
-    new(toEncodable, bufferSize, addChunk) {
-      this.addChunk = addChunk;
-      this.bufferSize = bufferSize;
-      this.buffer = typed_data.Uint8List.new(bufferSize);
-      this.index = 0;
-      super.new(toEncodable);
-    }
-    static stringify(object, indent, toEncodable, bufferSize, addChunk) {
-      let stringifier = null;
-      if (indent != null) {
-        stringifier = new convert._JsonUtf8StringifierPretty(toEncodable, indent, bufferSize, addChunk);
-      } else {
-        stringifier = new convert._JsonUtf8Stringifier(toEncodable, bufferSize, addChunk);
-      }
-      stringifier.writeObject(object);
-      stringifier.flush();
-    }
-    flush() {
-      if (dart.notNull(this.index) > 0) {
-        this.addChunk(this.buffer, 0, this.index);
-      }
-      this.buffer = null;
-      this.index = 0;
-    }
-    writeNumber(number) {
-      this.writeAsciiString(dart.toString(number));
-    }
-    writeAsciiString(string) {
-      for (let i = 0; i < dart.notNull(string[dartx.length]); i++) {
-        let char = string[dartx.codeUnitAt](i);
-        dart.assert(dart.notNull(char) <= 127);
+  }
+  writeString(string) {
+    this.writeStringSlice(string, 0, string[dartx.length]);
+  }
+  writeStringSlice(string, start, end) {
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let char = string[dartx.codeUnitAt](i);
+      if (dart.notNull(char) <= 127) {
         this.writeByte(char);
-      }
-    }
-    writeString(string) {
-      this.writeStringSlice(string, 0, string[dartx.length]);
-    }
-    writeStringSlice(string, start, end) {
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let char = string[dartx.codeUnitAt](i);
-        if (dart.notNull(char) <= 127) {
-          this.writeByte(char);
-        } else {
-          if ((dart.notNull(char) & 64512) == 55296 && dart.notNull(i) + 1 < dart.notNull(end)) {
-            let nextChar = string[dartx.codeUnitAt](dart.notNull(i) + 1);
-            if ((dart.notNull(nextChar) & 64512) == 56320) {
-              char = 65536 + ((dart.notNull(char) & 1023) << 10) + (dart.notNull(nextChar) & 1023);
-              this.writeFourByteCharCode(char);
-              i = dart.notNull(i) + 1;
-              continue;
-            }
-          }
-          this.writeMultiByteCharCode(char);
-        }
-      }
-    }
-    writeCharCode(charCode) {
-      if (dart.notNull(charCode) <= 127) {
-        this.writeByte(charCode);
-        return;
-      }
-      this.writeMultiByteCharCode(charCode);
-    }
-    writeMultiByteCharCode(charCode) {
-      if (dart.notNull(charCode) <= 2047) {
-        this.writeByte((192 | charCode[dartx['>>']](6)) >>> 0);
-        this.writeByte(128 | dart.notNull(charCode) & 63);
-        return;
-      }
-      if (dart.notNull(charCode) <= 65535) {
-        this.writeByte((224 | charCode[dartx['>>']](12)) >>> 0);
-        this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
-        this.writeByte(128 | dart.notNull(charCode) & 63);
-        return;
-      }
-      this.writeFourByteCharCode(charCode);
-    }
-    writeFourByteCharCode(charCode) {
-      dart.assert(dart.notNull(charCode) <= 1114111);
-      this.writeByte((240 | charCode[dartx['>>']](18)) >>> 0);
-      this.writeByte(128 | dart.notNull(charCode) >> 12 & 63);
-      this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
-      this.writeByte(128 | dart.notNull(charCode) & 63);
-    }
-    writeByte(byte) {
-      dart.assert(dart.notNull(byte) <= 255);
-      if (this.index == this.buffer[dartx.length]) {
-        this.addChunk(this.buffer, 0, this.index);
-        this.buffer = typed_data.Uint8List.new(this.bufferSize);
-        this.index = 0;
-      }
-      this.buffer[dartx._set]((() => {
-        let x = this.index;
-        this.index = dart.notNull(x) + 1;
-        return x;
-      })(), byte);
-    }
-  };
-  dart.setSignature(convert._JsonUtf8Stringifier, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8Stringifier, [dynamicTodynamic(), core.int, convert._AddChunk])}),
-    fields: () => ({
-      bufferSize: core.int,
-      addChunk: convert._AddChunk,
-      buffer: typed_data.Uint8List,
-      index: core.int
-    }),
-    methods: () => ({
-      flush: dart.definiteFunctionType(dart.void, []),
-      writeNumber: dart.definiteFunctionType(dart.void, [core.num]),
-      writeAsciiString: dart.definiteFunctionType(dart.void, [core.String]),
-      writeString: dart.definiteFunctionType(dart.void, [core.String]),
-      writeStringSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int]),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      writeMultiByteCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      writeFourByteCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      writeByte: dart.definiteFunctionType(dart.void, [core.int])
-    }),
-    statics: () => ({stringify: dart.definiteFunctionType(dart.void, [core.Object, ListOfint(), dynamicTodynamic(), core.int, Uint8ListAndintAndintTovoid()])}),
-    names: ['stringify']
-  });
-  convert._JsonUtf8StringifierPretty = class _JsonUtf8StringifierPretty extends dart.mixin(convert._JsonUtf8Stringifier, convert._JsonPrettyPrintMixin) {
-    new(toEncodable, indent, bufferSize, addChunk) {
-      this.indent = indent;
-      super.new(toEncodable, core.int._check(bufferSize), addChunk);
-    }
-    writeIndentation(count) {
-      let indent = this.indent;
-      let indentLength = indent[dartx.length];
-      if (indentLength == 1) {
-        let char = indent[dartx._get](0);
-        while (dart.notNull(count) > 0) {
-          this.writeByte(char);
-          count = dart.notNull(count) - 1;
-        }
-        return;
-      }
-      while (dart.notNull(count) > 0) {
-        count = dart.notNull(count) - 1;
-        let end = dart.notNull(this.index) + dart.notNull(indentLength);
-        if (end <= dart.notNull(this.buffer[dartx.length])) {
-          this.buffer[dartx.setRange](this.index, end, indent);
-          this.index = end;
-        } else {
-          for (let i = 0; i < dart.notNull(indentLength); i++) {
-            this.writeByte(indent[dartx._get](i));
-          }
-        }
-      }
-    }
-  };
-  dart.setSignature(convert._JsonUtf8StringifierPretty, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8StringifierPretty, [dynamicTodynamic(), ListOfint(), dart.dynamic, Uint8ListAndintAndintTovoid()])}),
-    fields: () => ({indent: ListOfint()}),
-    methods: () => ({writeIndentation: dart.definiteFunctionType(dart.void, [core.int])})
-  });
-  let const$44;
-  let const$45;
-  let const$46;
-  let const$47;
-  let const$48;
-  convert.Latin1Codec = class Latin1Codec extends convert.Encoding {
-    new(opts) {
-      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
-      this[_allowInvalid] = allowInvalid;
-      super.new();
-    }
-    get name() {
-      return "iso-8859-1";
-    }
-    decode(bytes, opts) {
-      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
-      if (allowInvalid == null) allowInvalid = this[_allowInvalid];
-      if (dart.test(allowInvalid)) {
-        return (const$44 || (const$44 = dart.const(new convert.Latin1Decoder({allowInvalid: true})))).convert(bytes);
       } else {
-        return (const$45 || (const$45 = dart.const(new convert.Latin1Decoder({allowInvalid: false})))).convert(bytes);
-      }
-    }
-    get encoder() {
-      return const$46 || (const$46 = dart.const(new convert.Latin1Encoder()));
-    }
-    get decoder() {
-      return dart.test(this[_allowInvalid]) ? const$47 || (const$47 = dart.const(new convert.Latin1Decoder({allowInvalid: true}))) : const$48 || (const$48 = dart.const(new convert.Latin1Decoder({allowInvalid: false})));
-    }
-  };
-  dart.setSignature(convert.Latin1Codec, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Latin1Codec, [], {allowInvalid: core.bool})}),
-    fields: () => ({[_allowInvalid]: core.bool}),
-    getters: () => ({
-      name: dart.definiteFunctionType(core.String, []),
-      encoder: dart.definiteFunctionType(convert.Latin1Encoder, []),
-      decoder: dart.definiteFunctionType(convert.Latin1Decoder, [])
-    }),
-    methods: () => ({decode: dart.definiteFunctionType(core.String, [ListOfint()], {allowInvalid: core.bool})})
-  });
-  convert.LATIN1 = dart.const(new convert.Latin1Codec());
-  convert._LATIN1_MASK = 255;
-  convert.Latin1Encoder = class Latin1Encoder extends convert._UnicodeSubsetEncoder {
-    new() {
-      super.new(convert._LATIN1_MASK);
-    }
-  };
-  dart.setSignature(convert.Latin1Encoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Latin1Encoder, [])})
-  });
-  convert.Latin1Decoder = class Latin1Decoder extends convert._UnicodeSubsetDecoder {
-    new(opts) {
-      let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
-      super.new(allowInvalid, convert._LATIN1_MASK);
-    }
-    startChunkedConversion(sink) {
-      let stringSink = null;
-      if (convert.StringConversionSink.is(sink)) {
-        stringSink = sink;
-      } else {
-        stringSink = convert.StringConversionSink.from(sink);
-      }
-      if (!dart.test(this[_allowInvalid])) return new convert._Latin1DecoderSink(stringSink);
-      return new convert._Latin1AllowInvalidDecoderSink(stringSink);
-    }
-  };
-  dart.setSignature(convert.Latin1Decoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Latin1Decoder, [], {allowInvalid: core.bool})})
-  });
-  const _addSliceToSink = Symbol('_addSliceToSink');
-  convert._Latin1DecoderSink = class _Latin1DecoderSink extends convert.ByteConversionSinkBase {
-    new(sink) {
-      this[_sink$] = sink;
-      super.new();
-    }
-    close() {
-      this[_sink$].close();
-      this[_sink$] = null;
-    }
-    add(source) {
-      this.addSlice(source, 0, source[dartx.length], false);
-    }
-    [_addSliceToSink](source, start, end, isLast) {
-      this[_sink$].add(core.String.fromCharCodes(source, start, end));
-      if (dart.test(isLast)) this.close();
-    }
-    addSlice(source, start, end, isLast) {
-      end = core.RangeError.checkValidRange(start, end, source[dartx.length]);
-      if (start == end) return;
-      if (!typed_data.Uint8List.is(source)) {
-        convert._Latin1DecoderSink._checkValidLatin1(source, start, end);
-      }
-      this[_addSliceToSink](source, start, end, isLast);
-    }
-    static _checkValidLatin1(source, start, end) {
-      let mask = 0;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        mask = (dart.notNull(mask) | dart.notNull(source[dartx._get](i))) >>> 0;
-      }
-      if (dart.notNull(mask) >= 0 && dart.notNull(mask) <= convert._LATIN1_MASK) {
-        return;
-      }
-      convert._Latin1DecoderSink._reportInvalidLatin1(source, start, end);
-    }
-    static _reportInvalidLatin1(source, start, end) {
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let char = source[dartx._get](i);
-        if (dart.notNull(char) < 0 || dart.notNull(char) > convert._LATIN1_MASK) {
-          dart.throw(new core.FormatException("Source contains non-Latin-1 characters.", source, i));
-        }
-      }
-      dart.assert(false);
-    }
-  };
-  dart.setSignature(convert._Latin1DecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Latin1DecoderSink, [convert.StringConversionSink])}),
-    fields: () => ({[_sink$]: convert.StringConversionSink}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      [_addSliceToSink]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])
-    }),
-    statics: () => ({
-      _checkValidLatin1: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int]),
-      _reportInvalidLatin1: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int])
-    }),
-    names: ['_checkValidLatin1', '_reportInvalidLatin1']
-  });
-  let const$49;
-  convert._Latin1AllowInvalidDecoderSink = class _Latin1AllowInvalidDecoderSink extends convert._Latin1DecoderSink {
-    new(sink) {
-      super.new(sink);
-    }
-    addSlice(source, start, end, isLast) {
-      core.RangeError.checkValidRange(start, end, source[dartx.length]);
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let char = source[dartx._get](i);
-        if (dart.notNull(char) > convert._LATIN1_MASK || dart.notNull(char) < 0) {
-          if (dart.notNull(i) > dart.notNull(start)) this[_addSliceToSink](source, start, i, false);
-          this[_addSliceToSink](const$49 || (const$49 = dart.constList([65533], core.int)), 0, 1, false);
-          start = dart.notNull(i) + 1;
-        }
-      }
-      if (dart.notNull(start) < dart.notNull(end)) {
-        this[_addSliceToSink](source, start, end, isLast);
-      }
-      if (dart.test(isLast)) {
-        this.close();
-      }
-    }
-  };
-  dart.setSignature(convert._Latin1AllowInvalidDecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Latin1AllowInvalidDecoderSink, [convert.StringConversionSink])})
-  });
-  convert._LF = 10;
-  convert._CR = 13;
-  convert.LineSplitter = class LineSplitter extends core.Object {
-    new() {
-    }
-    static split(lines, start, end) {
-      return dart.syncStar(function*(lines, start, end) {
-        if (start === void 0) start = 0;
-        if (end === void 0) end = null;
-        end = core.RangeError.checkValidRange(start, end, lines[dartx.length]);
-        let sliceStart = start;
-        let char = 0;
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          let previousChar = char;
-          char = lines[dartx.codeUnitAt](i);
-          if (char != convert._CR) {
-            if (char != convert._LF) continue;
-            if (previousChar == convert._CR) {
-              sliceStart = dart.notNull(i) + 1;
-              continue;
-            }
-          }
-          yield lines[dartx.substring](sliceStart, i);
-          sliceStart = dart.notNull(i) + 1;
-        }
-        if (dart.notNull(sliceStart) < dart.notNull(end)) {
-          yield lines[dartx.substring](sliceStart, end);
-        }
-      }, core.String, lines, start, end);
-    }
-    convert(data) {
-      let lines = JSArrayOfString().of([]);
-      let end = data[dartx.length];
-      let sliceStart = 0;
-      let char = 0;
-      for (let i = 0; i < dart.notNull(end); i++) {
-        let previousChar = char;
-        char = data[dartx.codeUnitAt](i);
-        if (char != convert._CR) {
-          if (char != convert._LF) continue;
-          if (previousChar == convert._CR) {
-            sliceStart = i + 1;
+        if ((dart.notNull(char) & 64512) == 55296 && dart.notNull(i) + 1 < dart.notNull(end)) {
+          let nextChar = string[dartx.codeUnitAt](dart.notNull(i) + 1);
+          if ((dart.notNull(nextChar) & 64512) == 56320) {
+            char = 65536 + ((dart.notNull(char) & 1023) << 10) + (dart.notNull(nextChar) & 1023);
+            this.writeFourByteCharCode(char);
+            i = dart.notNull(i) + 1;
             continue;
           }
         }
-        lines[dartx.add](data[dartx.substring](sliceStart, i));
-        sliceStart = i + 1;
+        this.writeMultiByteCharCode(char);
       }
-      if (sliceStart < dart.notNull(end)) {
-        lines[dartx.add](data[dartx.substring](sliceStart, end));
+    }
+  }
+  writeCharCode(charCode) {
+    if (dart.notNull(charCode) <= 127) {
+      this.writeByte(charCode);
+      return;
+    }
+    this.writeMultiByteCharCode(charCode);
+  }
+  writeMultiByteCharCode(charCode) {
+    if (dart.notNull(charCode) <= 2047) {
+      this.writeByte((192 | charCode[dartx['>>']](6)) >>> 0);
+      this.writeByte(128 | dart.notNull(charCode) & 63);
+      return;
+    }
+    if (dart.notNull(charCode) <= 65535) {
+      this.writeByte((224 | charCode[dartx['>>']](12)) >>> 0);
+      this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
+      this.writeByte(128 | dart.notNull(charCode) & 63);
+      return;
+    }
+    this.writeFourByteCharCode(charCode);
+  }
+  writeFourByteCharCode(charCode) {
+    dart.assert(dart.notNull(charCode) <= 1114111);
+    this.writeByte((240 | charCode[dartx['>>']](18)) >>> 0);
+    this.writeByte(128 | dart.notNull(charCode) >> 12 & 63);
+    this.writeByte(128 | dart.notNull(charCode) >> 6 & 63);
+    this.writeByte(128 | dart.notNull(charCode) & 63);
+  }
+  writeByte(byte) {
+    dart.assert(dart.notNull(byte) <= 255);
+    if (this.index == this.buffer[dartx.length]) {
+      this.addChunk(this.buffer, 0, this.index);
+      this.buffer = typed_data.Uint8List.new(this.bufferSize);
+      this.index = 0;
+    }
+    this.buffer[dartx._set]((() => {
+      let x = this.index;
+      this.index = dart.notNull(x) + 1;
+      return x;
+    })(), byte);
+  }
+};
+dart.setSignature(convert._JsonUtf8Stringifier, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8Stringifier, [dynamicTodynamic(), core.int, convert._AddChunk])}),
+  fields: () => ({
+    bufferSize: core.int,
+    addChunk: convert._AddChunk,
+    buffer: typed_data.Uint8List,
+    index: core.int
+  }),
+  methods: () => ({
+    flush: dart.definiteFunctionType(dart.void, []),
+    writeNumber: dart.definiteFunctionType(dart.void, [core.num]),
+    writeAsciiString: dart.definiteFunctionType(dart.void, [core.String]),
+    writeString: dart.definiteFunctionType(dart.void, [core.String]),
+    writeStringSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int]),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    writeMultiByteCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    writeFourByteCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    writeByte: dart.definiteFunctionType(dart.void, [core.int])
+  }),
+  statics: () => ({stringify: dart.definiteFunctionType(dart.void, [core.Object, ListOfint(), dynamicTodynamic(), core.int, Uint8ListAndintAndintTovoid()])}),
+  names: ['stringify']
+});
+convert._JsonUtf8StringifierPretty = class _JsonUtf8StringifierPretty extends dart.mixin(convert._JsonUtf8Stringifier, convert._JsonPrettyPrintMixin) {
+  new(toEncodable, indent, bufferSize, addChunk) {
+    this.indent = indent;
+    super.new(toEncodable, core.int._check(bufferSize), addChunk);
+  }
+  writeIndentation(count) {
+    let indent = this.indent;
+    let indentLength = indent[dartx.length];
+    if (indentLength == 1) {
+      let char = indent[dartx._get](0);
+      while (dart.notNull(count) > 0) {
+        this.writeByte(char);
+        count = dart.notNull(count) - 1;
       }
-      return lines;
+      return;
     }
-    startChunkedConversion(sink) {
-      if (!convert.StringConversionSink.is(sink)) {
-        sink = convert.StringConversionSink.from(sink);
-      }
-      return new convert._LineSplitterSink(convert.StringConversionSink._check(sink));
-    }
-    bind(stream) {
-      return StreamOfString().eventTransformed(stream, dart.fn(sink => new convert._LineSplitterEventSink(sink), EventSinkOfStringTo_LineSplitterEventSink()));
-    }
-  };
-  convert.LineSplitter[dart.implements] = () => [StreamTransformerOfString$String()];
-  dart.setSignature(convert.LineSplitter, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.LineSplitter, [])}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.String), [core.String]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfString()]),
-      bind: dart.definiteFunctionType(async.Stream$(core.String), [StreamOfString()])
-    }),
-    statics: () => ({split: dart.definiteFunctionType(core.Iterable$(core.String), [core.String], [core.int, core.int])}),
-    names: ['split']
-  });
-  const _carry = Symbol('_carry');
-  const _skipLeadingLF = Symbol('_skipLeadingLF');
-  const _addLines = Symbol('_addLines');
-  convert._LineSplitterSink = class _LineSplitterSink extends convert.StringConversionSinkBase {
-    new(sink) {
-      this[_sink$] = sink;
-      this[_carry] = null;
-      this[_skipLeadingLF] = false;
-    }
-    addSlice(chunk, start, end, isLast) {
-      end = core.RangeError.checkValidRange(start, end, chunk[dartx.length]);
-      if (dart.notNull(start) >= dart.notNull(end)) {
-        if (dart.test(isLast)) this.close();
-        return;
-      }
-      if (this[_carry] != null) {
-        dart.assert(!dart.test(this[_skipLeadingLF]));
-        chunk = dart.notNull(this[_carry]) + dart.notNull(chunk[dartx.substring](start, end));
-        start = 0;
-        end = chunk[dartx.length];
-        this[_carry] = null;
-      } else if (dart.test(this[_skipLeadingLF])) {
-        if (chunk[dartx.codeUnitAt](start) == convert._LF) {
-          start = dart.notNull(start) + 1;
+    while (dart.notNull(count) > 0) {
+      count = dart.notNull(count) - 1;
+      let end = dart.notNull(this.index) + dart.notNull(indentLength);
+      if (end <= dart.notNull(this.buffer[dartx.length])) {
+        this.buffer[dartx.setRange](this.index, end, indent);
+        this.index = end;
+      } else {
+        for (let i = 0; i < dart.notNull(indentLength); i++) {
+          this.writeByte(indent[dartx._get](i));
         }
-        this[_skipLeadingLF] = false;
       }
-      this[_addLines](chunk, start, end);
-      if (dart.test(isLast)) this.close();
     }
-    close() {
-      if (this[_carry] != null) {
-        this[_sink$].add(this[_carry]);
-        this[_carry] = null;
+  }
+};
+dart.setSignature(convert._JsonUtf8StringifierPretty, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8StringifierPretty, [dynamicTodynamic(), ListOfint(), dart.dynamic, Uint8ListAndintAndintTovoid()])}),
+  fields: () => ({indent: ListOfint()}),
+  methods: () => ({writeIndentation: dart.definiteFunctionType(dart.void, [core.int])})
+});
+let const$44;
+let const$45;
+let const$46;
+let const$47;
+let const$48;
+convert.Latin1Codec = class Latin1Codec extends convert.Encoding {
+  new(opts) {
+    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
+    this[_allowInvalid] = allowInvalid;
+    super.new();
+  }
+  get name() {
+    return "iso-8859-1";
+  }
+  decode(bytes, opts) {
+    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
+    if (allowInvalid == null) allowInvalid = this[_allowInvalid];
+    if (dart.test(allowInvalid)) {
+      return (const$44 || (const$44 = dart.const(new convert.Latin1Decoder({allowInvalid: true})))).convert(bytes);
+    } else {
+      return (const$45 || (const$45 = dart.const(new convert.Latin1Decoder({allowInvalid: false})))).convert(bytes);
+    }
+  }
+  get encoder() {
+    return const$46 || (const$46 = dart.const(new convert.Latin1Encoder()));
+  }
+  get decoder() {
+    return dart.test(this[_allowInvalid]) ? const$47 || (const$47 = dart.const(new convert.Latin1Decoder({allowInvalid: true}))) : const$48 || (const$48 = dart.const(new convert.Latin1Decoder({allowInvalid: false})));
+  }
+};
+dart.setSignature(convert.Latin1Codec, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Latin1Codec, [], {allowInvalid: core.bool})}),
+  fields: () => ({[_allowInvalid]: core.bool}),
+  getters: () => ({
+    name: dart.definiteFunctionType(core.String, []),
+    encoder: dart.definiteFunctionType(convert.Latin1Encoder, []),
+    decoder: dart.definiteFunctionType(convert.Latin1Decoder, [])
+  }),
+  methods: () => ({decode: dart.definiteFunctionType(core.String, [ListOfint()], {allowInvalid: core.bool})})
+});
+convert.LATIN1 = dart.const(new convert.Latin1Codec());
+convert._LATIN1_MASK = 255;
+convert.Latin1Encoder = class Latin1Encoder extends convert._UnicodeSubsetEncoder {
+  new() {
+    super.new(convert._LATIN1_MASK);
+  }
+};
+dart.setSignature(convert.Latin1Encoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Latin1Encoder, [])})
+});
+convert.Latin1Decoder = class Latin1Decoder extends convert._UnicodeSubsetDecoder {
+  new(opts) {
+    let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
+    super.new(allowInvalid, convert._LATIN1_MASK);
+  }
+  startChunkedConversion(sink) {
+    let stringSink = null;
+    if (convert.StringConversionSink.is(sink)) {
+      stringSink = sink;
+    } else {
+      stringSink = convert.StringConversionSink.from(sink);
+    }
+    if (!dart.test(this[_allowInvalid])) return new convert._Latin1DecoderSink(stringSink);
+    return new convert._Latin1AllowInvalidDecoderSink(stringSink);
+  }
+};
+dart.setSignature(convert.Latin1Decoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Latin1Decoder, [], {allowInvalid: core.bool})})
+});
+const _addSliceToSink = Symbol('_addSliceToSink');
+convert._Latin1DecoderSink = class _Latin1DecoderSink extends convert.ByteConversionSinkBase {
+  new(sink) {
+    this[_sink$] = sink;
+    super.new();
+  }
+  close() {
+    this[_sink$].close();
+    this[_sink$] = null;
+  }
+  add(source) {
+    this.addSlice(source, 0, source[dartx.length], false);
+  }
+  [_addSliceToSink](source, start, end, isLast) {
+    this[_sink$].add(core.String.fromCharCodes(source, start, end));
+    if (dart.test(isLast)) this.close();
+  }
+  addSlice(source, start, end, isLast) {
+    end = core.RangeError.checkValidRange(start, end, source[dartx.length]);
+    if (start == end) return;
+    if (!typed_data.Uint8List.is(source)) {
+      convert._Latin1DecoderSink._checkValidLatin1(source, start, end);
+    }
+    this[_addSliceToSink](source, start, end, isLast);
+  }
+  static _checkValidLatin1(source, start, end) {
+    let mask = 0;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      mask = (dart.notNull(mask) | dart.notNull(source[dartx._get](i))) >>> 0;
+    }
+    if (dart.notNull(mask) >= 0 && dart.notNull(mask) <= convert._LATIN1_MASK) {
+      return;
+    }
+    convert._Latin1DecoderSink._reportInvalidLatin1(source, start, end);
+  }
+  static _reportInvalidLatin1(source, start, end) {
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let char = source[dartx._get](i);
+      if (dart.notNull(char) < 0 || dart.notNull(char) > convert._LATIN1_MASK) {
+        dart.throw(new core.FormatException("Source contains non-Latin-1 characters.", source, i));
       }
-      this[_sink$].close();
     }
-    [_addLines](lines, start, end) {
+    dart.assert(false);
+  }
+};
+dart.setSignature(convert._Latin1DecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Latin1DecoderSink, [convert.StringConversionSink])}),
+  fields: () => ({[_sink$]: convert.StringConversionSink}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    [_addSliceToSink]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])
+  }),
+  statics: () => ({
+    _checkValidLatin1: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int]),
+    _reportInvalidLatin1: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int])
+  }),
+  names: ['_checkValidLatin1', '_reportInvalidLatin1']
+});
+let const$49;
+convert._Latin1AllowInvalidDecoderSink = class _Latin1AllowInvalidDecoderSink extends convert._Latin1DecoderSink {
+  new(sink) {
+    super.new(sink);
+  }
+  addSlice(source, start, end, isLast) {
+    core.RangeError.checkValidRange(start, end, source[dartx.length]);
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let char = source[dartx._get](i);
+      if (dart.notNull(char) > convert._LATIN1_MASK || dart.notNull(char) < 0) {
+        if (dart.notNull(i) > dart.notNull(start)) this[_addSliceToSink](source, start, i, false);
+        this[_addSliceToSink](const$49 || (const$49 = dart.constList([65533], core.int)), 0, 1, false);
+        start = dart.notNull(i) + 1;
+      }
+    }
+    if (dart.notNull(start) < dart.notNull(end)) {
+      this[_addSliceToSink](source, start, end, isLast);
+    }
+    if (dart.test(isLast)) {
+      this.close();
+    }
+  }
+};
+dart.setSignature(convert._Latin1AllowInvalidDecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Latin1AllowInvalidDecoderSink, [convert.StringConversionSink])})
+});
+convert._LF = 10;
+convert._CR = 13;
+convert.LineSplitter = class LineSplitter extends core.Object {
+  new() {
+  }
+  static split(lines, start, end) {
+    return dart.syncStar(function*(lines, start, end) {
+      if (start === void 0) start = 0;
+      if (end === void 0) end = null;
+      end = core.RangeError.checkValidRange(start, end, lines[dartx.length]);
       let sliceStart = start;
       let char = 0;
       for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
@@ -32169,5559 +32069,15965 @@
             continue;
           }
         }
-        this[_sink$].add(lines[dartx.substring](sliceStart, i));
+        yield lines[dartx.substring](sliceStart, i);
         sliceStart = dart.notNull(i) + 1;
       }
       if (dart.notNull(sliceStart) < dart.notNull(end)) {
-        this[_carry] = lines[dartx.substring](sliceStart, end);
-      } else {
-        this[_skipLeadingLF] = char == convert._CR;
+        yield lines[dartx.substring](sliceStart, end);
       }
-    }
-  };
-  dart.setSignature(convert._LineSplitterSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._LineSplitterSink, [convert.StringConversionSink])}),
-    fields: () => ({
-      [_sink$]: convert.StringConversionSink,
-      [_carry]: core.String,
-      [_skipLeadingLF]: core.bool
-    }),
-    methods: () => ({
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
-      close: dart.definiteFunctionType(dart.void, []),
-      [_addLines]: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int])
-    })
-  });
-  convert._LineSplitterEventSink = class _LineSplitterEventSink extends convert._LineSplitterSink {
-    new(eventSink) {
-      this[_eventSink] = eventSink;
-      super.new(convert.StringConversionSink.from(eventSink));
-    }
-    addError(o, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      this[_eventSink].addError(o, stackTrace);
-    }
-  };
-  convert._LineSplitterEventSink[dart.implements] = () => [EventSinkOfString()];
-  dart.setSignature(convert._LineSplitterEventSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._LineSplitterEventSink, [EventSinkOfString()])}),
-    fields: () => ({[_eventSink]: EventSinkOfString()}),
-    methods: () => ({addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace])})
-  });
-  convert.StringConversionSink = class StringConversionSink extends convert.ChunkedConversionSink$(core.String) {
-    new() {
-      super.new();
-    }
-    static withCallback(callback) {
-      return new convert._StringCallbackSink(callback);
-    }
-    static from(sink) {
-      return new convert._StringAdapterSink(sink);
-    }
-    static fromStringSink(sink) {
-      return new convert._StringSinkConversionSink(sink);
-    }
-  };
-  dart.addSimpleTypeTests(convert.StringConversionSink);
-  dart.setSignature(convert.StringConversionSink, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert.StringConversionSink, []),
-      withCallback: dart.definiteFunctionType(convert.StringConversionSink, [StringTovoid()]),
-      from: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfString()]),
-      fromStringSink: dart.definiteFunctionType(convert.StringConversionSink, [core.StringSink])
-    })
-  });
-  core.StringSink = class StringSink extends core.Object {};
-  convert.ClosableStringSink = class ClosableStringSink extends core.StringSink {
-    static fromStringSink(sink, onClose) {
-      return new convert._ClosableStringSink(sink, onClose);
-    }
-  };
-  dart.setSignature(convert.ClosableStringSink, {
-    constructors: () => ({fromStringSink: dart.definiteFunctionType(convert.ClosableStringSink, [core.StringSink, VoidTovoid()])})
-  });
-  convert._StringSinkCloseCallback = dart.typedef('_StringSinkCloseCallback', () => dart.functionType(dart.void, []));
-  convert._ClosableStringSink = class _ClosableStringSink extends core.Object {
-    new(sink, callback) {
-      this[_sink$] = sink;
-      this[_callback] = callback;
-    }
-    close() {
-      this[_callback]();
-    }
-    writeCharCode(charCode) {
-      this[_sink$].writeCharCode(charCode);
-    }
-    write(o) {
-      this[_sink$].write(o);
-    }
-    writeln(o) {
-      if (o === void 0) o = "";
-      this[_sink$].writeln(o);
-    }
-    writeAll(objects, separator) {
-      if (separator === void 0) separator = "";
-      this[_sink$].writeAll(objects, separator);
-    }
-  };
-  convert._ClosableStringSink[dart.implements] = () => [convert.ClosableStringSink];
-  dart.setSignature(convert._ClosableStringSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._ClosableStringSink, [core.StringSink, convert._StringSinkCloseCallback])}),
-    fields: () => ({
-      [_callback]: convert._StringSinkCloseCallback,
-      [_sink$]: core.StringSink
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      write: dart.definiteFunctionType(dart.void, [core.Object]),
-      writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String])
-    })
-  });
-  const _flush = Symbol('_flush');
-  convert._StringConversionSinkAsStringSinkAdapter = class _StringConversionSinkAsStringSinkAdapter extends core.Object {
-    new(chunkedSink) {
-      this[_chunkedSink] = chunkedSink;
-      this[_buffer] = new core.StringBuffer();
-    }
-    close() {
-      if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
-      this[_chunkedSink].close();
-    }
-    writeCharCode(charCode) {
-      this[_buffer].writeCharCode(charCode);
-      if (dart.notNull(this[_buffer].length) > convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE) this[_flush]();
-    }
-    write(o) {
-      if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
-      this[_chunkedSink].add(dart.toString(o));
-    }
-    writeln(o) {
-      if (o === void 0) o = "";
-      this[_buffer].writeln(o);
-      if (dart.notNull(this[_buffer].length) > convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE) this[_flush]();
-    }
-    writeAll(objects, separator) {
-      if (separator === void 0) separator = "";
-      if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
-      let iterator = objects[dartx.iterator];
-      if (!dart.test(iterator.moveNext())) return;
-      if (dart.test(separator[dartx.isEmpty])) {
-        do {
-          this[_chunkedSink].add(dart.toString(iterator.current));
-        } while (dart.test(iterator.moveNext()));
-      } else {
-        this[_chunkedSink].add(dart.toString(iterator.current));
-        while (dart.test(iterator.moveNext())) {
-          this.write(separator);
-          this[_chunkedSink].add(dart.toString(iterator.current));
+    }, core.String, lines, start, end);
+  }
+  convert(data) {
+    let lines = JSArrayOfString().of([]);
+    let end = data[dartx.length];
+    let sliceStart = 0;
+    let char = 0;
+    for (let i = 0; i < dart.notNull(end); i++) {
+      let previousChar = char;
+      char = data[dartx.codeUnitAt](i);
+      if (char != convert._CR) {
+        if (char != convert._LF) continue;
+        if (previousChar == convert._CR) {
+          sliceStart = i + 1;
+          continue;
         }
       }
+      lines[dartx.add](data[dartx.substring](sliceStart, i));
+      sliceStart = i + 1;
     }
-    [_flush]() {
+    if (sliceStart < dart.notNull(end)) {
+      lines[dartx.add](data[dartx.substring](sliceStart, end));
+    }
+    return lines;
+  }
+  startChunkedConversion(sink) {
+    if (!convert.StringConversionSink.is(sink)) {
+      sink = convert.StringConversionSink.from(sink);
+    }
+    return new convert._LineSplitterSink(convert.StringConversionSink._check(sink));
+  }
+  bind(stream) {
+    return StreamOfString().eventTransformed(stream, dart.fn(sink => new convert._LineSplitterEventSink(sink), EventSinkOfStringTo_LineSplitterEventSink()));
+  }
+};
+convert.LineSplitter[dart.implements] = () => [StreamTransformerOfString$String()];
+dart.setSignature(convert.LineSplitter, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.LineSplitter, [])}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.String), [core.String]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfString()]),
+    bind: dart.definiteFunctionType(async.Stream$(core.String), [StreamOfString()])
+  }),
+  statics: () => ({split: dart.definiteFunctionType(core.Iterable$(core.String), [core.String], [core.int, core.int])}),
+  names: ['split']
+});
+const _carry = Symbol('_carry');
+const _skipLeadingLF = Symbol('_skipLeadingLF');
+const _addLines = Symbol('_addLines');
+convert._LineSplitterSink = class _LineSplitterSink extends convert.StringConversionSinkBase {
+  new(sink) {
+    this[_sink$] = sink;
+    this[_carry] = null;
+    this[_skipLeadingLF] = false;
+  }
+  addSlice(chunk, start, end, isLast) {
+    end = core.RangeError.checkValidRange(start, end, chunk[dartx.length]);
+    if (dart.notNull(start) >= dart.notNull(end)) {
+      if (dart.test(isLast)) this.close();
+      return;
+    }
+    if (this[_carry] != null) {
+      dart.assert(!dart.test(this[_skipLeadingLF]));
+      chunk = dart.notNull(this[_carry]) + dart.notNull(chunk[dartx.substring](start, end));
+      start = 0;
+      end = chunk[dartx.length];
+      this[_carry] = null;
+    } else if (dart.test(this[_skipLeadingLF])) {
+      if (chunk[dartx.codeUnitAt](start) == convert._LF) {
+        start = dart.notNull(start) + 1;
+      }
+      this[_skipLeadingLF] = false;
+    }
+    this[_addLines](chunk, start, end);
+    if (dart.test(isLast)) this.close();
+  }
+  close() {
+    if (this[_carry] != null) {
+      this[_sink$].add(this[_carry]);
+      this[_carry] = null;
+    }
+    this[_sink$].close();
+  }
+  [_addLines](lines, start, end) {
+    let sliceStart = start;
+    let char = 0;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let previousChar = char;
+      char = lines[dartx.codeUnitAt](i);
+      if (char != convert._CR) {
+        if (char != convert._LF) continue;
+        if (previousChar == convert._CR) {
+          sliceStart = dart.notNull(i) + 1;
+          continue;
+        }
+      }
+      this[_sink$].add(lines[dartx.substring](sliceStart, i));
+      sliceStart = dart.notNull(i) + 1;
+    }
+    if (dart.notNull(sliceStart) < dart.notNull(end)) {
+      this[_carry] = lines[dartx.substring](sliceStart, end);
+    } else {
+      this[_skipLeadingLF] = char == convert._CR;
+    }
+  }
+};
+dart.setSignature(convert._LineSplitterSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._LineSplitterSink, [convert.StringConversionSink])}),
+  fields: () => ({
+    [_sink$]: convert.StringConversionSink,
+    [_carry]: core.String,
+    [_skipLeadingLF]: core.bool
+  }),
+  methods: () => ({
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
+    close: dart.definiteFunctionType(dart.void, []),
+    [_addLines]: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int])
+  })
+});
+convert._LineSplitterEventSink = class _LineSplitterEventSink extends convert._LineSplitterSink {
+  new(eventSink) {
+    this[_eventSink] = eventSink;
+    super.new(convert.StringConversionSink.from(eventSink));
+  }
+  addError(o, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    this[_eventSink].addError(o, stackTrace);
+  }
+};
+convert._LineSplitterEventSink[dart.implements] = () => [EventSinkOfString()];
+dart.setSignature(convert._LineSplitterEventSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._LineSplitterEventSink, [EventSinkOfString()])}),
+  fields: () => ({[_eventSink]: EventSinkOfString()}),
+  methods: () => ({addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace])})
+});
+convert.StringConversionSink = class StringConversionSink extends convert.ChunkedConversionSink$(core.String) {
+  new() {
+    super.new();
+  }
+  static withCallback(callback) {
+    return new convert._StringCallbackSink(callback);
+  }
+  static from(sink) {
+    return new convert._StringAdapterSink(sink);
+  }
+  static fromStringSink(sink) {
+    return new convert._StringSinkConversionSink(sink);
+  }
+};
+dart.addSimpleTypeTests(convert.StringConversionSink);
+dart.setSignature(convert.StringConversionSink, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert.StringConversionSink, []),
+    withCallback: dart.definiteFunctionType(convert.StringConversionSink, [StringTovoid()]),
+    from: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfString()]),
+    fromStringSink: dart.definiteFunctionType(convert.StringConversionSink, [core.StringSink])
+  })
+});
+core.StringSink = class StringSink extends core.Object {};
+convert.ClosableStringSink = class ClosableStringSink extends core.StringSink {
+  static fromStringSink(sink, onClose) {
+    return new convert._ClosableStringSink(sink, onClose);
+  }
+};
+dart.setSignature(convert.ClosableStringSink, {
+  constructors: () => ({fromStringSink: dart.definiteFunctionType(convert.ClosableStringSink, [core.StringSink, VoidTovoid()])})
+});
+convert._StringSinkCloseCallback = dart.typedef('_StringSinkCloseCallback', () => dart.functionType(dart.void, []));
+convert._ClosableStringSink = class _ClosableStringSink extends core.Object {
+  new(sink, callback) {
+    this[_sink$] = sink;
+    this[_callback] = callback;
+  }
+  close() {
+    this[_callback]();
+  }
+  writeCharCode(charCode) {
+    this[_sink$].writeCharCode(charCode);
+  }
+  write(o) {
+    this[_sink$].write(o);
+  }
+  writeln(o) {
+    if (o === void 0) o = "";
+    this[_sink$].writeln(o);
+  }
+  writeAll(objects, separator) {
+    if (separator === void 0) separator = "";
+    this[_sink$].writeAll(objects, separator);
+  }
+};
+convert._ClosableStringSink[dart.implements] = () => [convert.ClosableStringSink];
+dart.setSignature(convert._ClosableStringSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._ClosableStringSink, [core.StringSink, convert._StringSinkCloseCallback])}),
+  fields: () => ({
+    [_callback]: convert._StringSinkCloseCallback,
+    [_sink$]: core.StringSink
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    write: dart.definiteFunctionType(dart.void, [core.Object]),
+    writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String])
+  })
+});
+const _flush = Symbol('_flush');
+convert._StringConversionSinkAsStringSinkAdapter = class _StringConversionSinkAsStringSinkAdapter extends core.Object {
+  new(chunkedSink) {
+    this[_chunkedSink] = chunkedSink;
+    this[_buffer] = new core.StringBuffer();
+  }
+  close() {
+    if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
+    this[_chunkedSink].close();
+  }
+  writeCharCode(charCode) {
+    this[_buffer].writeCharCode(charCode);
+    if (dart.notNull(this[_buffer].length) > convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE) this[_flush]();
+  }
+  write(o) {
+    if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
+    this[_chunkedSink].add(dart.toString(o));
+  }
+  writeln(o) {
+    if (o === void 0) o = "";
+    this[_buffer].writeln(o);
+    if (dart.notNull(this[_buffer].length) > convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE) this[_flush]();
+  }
+  writeAll(objects, separator) {
+    if (separator === void 0) separator = "";
+    if (dart.test(this[_buffer].isNotEmpty)) this[_flush]();
+    let iterator = objects[dartx.iterator];
+    if (!dart.test(iterator.moveNext())) return;
+    if (dart.test(separator[dartx.isEmpty])) {
+      do {
+        this[_chunkedSink].add(dart.toString(iterator.current));
+      } while (dart.test(iterator.moveNext()));
+    } else {
+      this[_chunkedSink].add(dart.toString(iterator.current));
+      while (dart.test(iterator.moveNext())) {
+        this.write(separator);
+        this[_chunkedSink].add(dart.toString(iterator.current));
+      }
+    }
+  }
+  [_flush]() {
+    let accumulated = dart.toString(this[_buffer]);
+    this[_buffer].clear();
+    this[_chunkedSink].add(accumulated);
+  }
+};
+convert._StringConversionSinkAsStringSinkAdapter[dart.implements] = () => [convert.ClosableStringSink];
+dart.setSignature(convert._StringConversionSinkAsStringSinkAdapter, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._StringConversionSinkAsStringSinkAdapter, [convert.StringConversionSink])}),
+  fields: () => ({
+    [_buffer]: core.StringBuffer,
+    [_chunkedSink]: convert.StringConversionSink
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    write: dart.definiteFunctionType(dart.void, [core.Object]),
+    writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
+    [_flush]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({_MIN_STRING_SIZE: core.int})
+});
+convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE = 16;
+convert._StringCallbackSink = class _StringCallbackSink extends convert._StringSinkConversionSink {
+  new(callback) {
+    this[_callback] = callback;
+    super.new(new core.StringBuffer());
+  }
+  close() {
+    let buffer = core.StringBuffer._check(this[_stringSink]);
+    let accumulated = dart.toString(buffer);
+    buffer.clear();
+    this[_callback](accumulated);
+  }
+  asUtf8Sink(allowMalformed) {
+    return new convert._Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed);
+  }
+};
+dart.setSignature(convert._StringCallbackSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._StringCallbackSink, [StringTovoid()])}),
+  fields: () => ({[_callback]: StringTovoid()})
+});
+convert._StringAdapterSink = class _StringAdapterSink extends convert.StringConversionSinkBase {
+  new(sink) {
+    this[_sink$] = sink;
+  }
+  add(str) {
+    this[_sink$].add(str);
+  }
+  addSlice(str, start, end, isLast) {
+    if (start == 0 && end == str[dartx.length]) {
+      this.add(str);
+    } else {
+      this.add(str[dartx.substring](start, end));
+    }
+    if (dart.test(isLast)) this.close();
+  }
+  close() {
+    this[_sink$].close();
+  }
+};
+dart.setSignature(convert._StringAdapterSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._StringAdapterSink, [SinkOfString()])}),
+  fields: () => ({[_sink$]: SinkOfString()}),
+  methods: () => ({
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+convert._Utf8StringSinkAdapter = class _Utf8StringSinkAdapter extends convert.ByteConversionSink {
+  new(sink, stringSink, allowMalformed) {
+    this[_sink$] = sink;
+    this[_decoder] = new convert._Utf8Decoder(stringSink, allowMalformed);
+    super.new();
+  }
+  close() {
+    this[_decoder].close();
+    if (this[_sink$] != null) this[_sink$].close();
+  }
+  add(chunk) {
+    this.addSlice(chunk, 0, chunk[dartx.length], false);
+  }
+  addSlice(codeUnits, startIndex, endIndex, isLast) {
+    this[_decoder].convert(codeUnits, startIndex, endIndex);
+    if (dart.test(isLast)) this.close();
+  }
+};
+dart.setSignature(convert._Utf8StringSinkAdapter, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Utf8StringSinkAdapter, [core.Sink, core.StringSink, core.bool])}),
+  fields: () => ({
+    [_decoder]: convert._Utf8Decoder,
+    [_sink$]: core.Sink
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])
+  })
+});
+convert._Utf8ConversionSink = class _Utf8ConversionSink extends convert.ByteConversionSink {
+  new(sink, allowMalformed) {
+    _Utf8ConversionSink.prototype._.call(this, sink, new core.StringBuffer(), allowMalformed);
+  }
+  _(chunkedSink, stringBuffer, allowMalformed) {
+    this[_chunkedSink] = chunkedSink;
+    this[_decoder] = new convert._Utf8Decoder(stringBuffer, allowMalformed);
+    this[_buffer] = stringBuffer;
+    super.new();
+  }
+  close() {
+    this[_decoder].close();
+    if (dart.test(this[_buffer].isNotEmpty)) {
       let accumulated = dart.toString(this[_buffer]);
       this[_buffer].clear();
-      this[_chunkedSink].add(accumulated);
+      this[_chunkedSink].addSlice(accumulated, 0, accumulated[dartx.length], true);
+    } else {
+      this[_chunkedSink].close();
     }
-  };
-  convert._StringConversionSinkAsStringSinkAdapter[dart.implements] = () => [convert.ClosableStringSink];
-  dart.setSignature(convert._StringConversionSinkAsStringSinkAdapter, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._StringConversionSinkAsStringSinkAdapter, [convert.StringConversionSink])}),
-    fields: () => ({
-      [_buffer]: core.StringBuffer,
-      [_chunkedSink]: convert.StringConversionSink
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      write: dart.definiteFunctionType(dart.void, [core.Object]),
-      writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
-      [_flush]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({_MIN_STRING_SIZE: core.int})
-  });
-  convert._StringConversionSinkAsStringSinkAdapter._MIN_STRING_SIZE = 16;
-  convert._StringCallbackSink = class _StringCallbackSink extends convert._StringSinkConversionSink {
-    new(callback) {
-      this[_callback] = callback;
-      super.new(new core.StringBuffer());
+  }
+  add(chunk) {
+    this.addSlice(chunk, 0, chunk[dartx.length], false);
+  }
+  addSlice(chunk, startIndex, endIndex, isLast) {
+    this[_decoder].convert(chunk, startIndex, endIndex);
+    if (dart.test(this[_buffer].isNotEmpty)) {
+      let accumulated = dart.toString(this[_buffer]);
+      this[_chunkedSink].addSlice(accumulated, 0, accumulated[dartx.length], isLast);
+      this[_buffer].clear();
+      return;
     }
-    close() {
-      let buffer = core.StringBuffer._check(this[_stringSink]);
-      let accumulated = dart.toString(buffer);
-      buffer.clear();
-      this[_callback](accumulated);
+    if (dart.test(isLast)) this.close();
+  }
+};
+dart.defineNamedConstructor(convert._Utf8ConversionSink, '_');
+dart.setSignature(convert._Utf8ConversionSink, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert._Utf8ConversionSink, [convert.StringConversionSink, core.bool]),
+    _: dart.definiteFunctionType(convert._Utf8ConversionSink, [convert.StringConversionSink, core.StringBuffer, core.bool])
+  }),
+  fields: () => ({
+    [_decoder]: convert._Utf8Decoder,
+    [_chunkedSink]: convert.StringConversionSink,
+    [_buffer]: core.StringBuffer
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])
+  })
+});
+convert.UNICODE_REPLACEMENT_CHARACTER_RUNE = 65533;
+convert.UNICODE_BOM_CHARACTER_RUNE = 65279;
+const _allowMalformed = Symbol('_allowMalformed');
+let const$50;
+convert.Utf8Codec = class Utf8Codec extends convert.Encoding {
+  new(opts) {
+    let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
+    this[_allowMalformed] = allowMalformed;
+    super.new();
+  }
+  get name() {
+    return "utf-8";
+  }
+  decode(codeUnits, opts) {
+    let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : null;
+    if (allowMalformed == null) allowMalformed = this[_allowMalformed];
+    return new convert.Utf8Decoder({allowMalformed: allowMalformed}).convert(codeUnits);
+  }
+  get encoder() {
+    return const$50 || (const$50 = dart.const(new convert.Utf8Encoder()));
+  }
+  get decoder() {
+    return new convert.Utf8Decoder({allowMalformed: this[_allowMalformed]});
+  }
+};
+dart.setSignature(convert.Utf8Codec, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Utf8Codec, [], {allowMalformed: core.bool})}),
+  fields: () => ({[_allowMalformed]: core.bool}),
+  getters: () => ({
+    name: dart.definiteFunctionType(core.String, []),
+    encoder: dart.definiteFunctionType(convert.Utf8Encoder, []),
+    decoder: dart.definiteFunctionType(convert.Utf8Decoder, [])
+  }),
+  methods: () => ({decode: dart.definiteFunctionType(core.String, [ListOfint()], {allowMalformed: core.bool})})
+});
+convert.UTF8 = dart.const(new convert.Utf8Codec());
+const _fillBuffer = Symbol('_fillBuffer');
+const _writeSurrogate = Symbol('_writeSurrogate');
+convert.Utf8Encoder = class Utf8Encoder extends convert.Converter$(core.String, core.List$(core.int)) {
+  new() {
+    super.new();
+  }
+  convert(string, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    let stringLength = string[dartx.length];
+    core.RangeError.checkValidRange(start, end, stringLength);
+    if (end == null) end = stringLength;
+    let length = dart.notNull(end) - dart.notNull(start);
+    if (length == 0) return typed_data.Uint8List.new(0);
+    let encoder = new convert._Utf8Encoder.withBufferSize(length * 3);
+    let endPosition = encoder[_fillBuffer](string, start, end);
+    dart.assert(dart.notNull(endPosition) >= dart.notNull(end) - 1);
+    if (endPosition != end) {
+      let lastCodeUnit = string[dartx.codeUnitAt](dart.notNull(end) - 1);
+      dart.assert(convert._isLeadSurrogate(lastCodeUnit));
+      let wasCombined = encoder[_writeSurrogate](lastCodeUnit, 0);
+      dart.assert(!dart.test(wasCombined));
     }
-    asUtf8Sink(allowMalformed) {
-      return new convert._Utf8StringSinkAdapter(this, this[_stringSink], allowMalformed);
+    return encoder[_buffer][dartx.sublist](0, encoder[_bufferIndex]);
+  }
+  startChunkedConversion(sink) {
+    if (!convert.ByteConversionSink.is(sink)) {
+      sink = convert.ByteConversionSink.from(sink);
     }
-  };
-  dart.setSignature(convert._StringCallbackSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._StringCallbackSink, [StringTovoid()])}),
-    fields: () => ({[_callback]: StringTovoid()})
-  });
-  convert._StringAdapterSink = class _StringAdapterSink extends convert.StringConversionSinkBase {
-    new(sink) {
-      this[_sink$] = sink;
+    return new convert._Utf8EncoderSink(convert.ByteConversionSink._check(sink));
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+};
+dart.addSimpleTypeTests(convert.Utf8Encoder);
+dart.setSignature(convert.Utf8Encoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Utf8Encoder, [])}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
+  })
+});
+convert._Utf8Encoder = class _Utf8Encoder extends core.Object {
+  new() {
+    _Utf8Encoder.prototype.withBufferSize.call(this, convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE);
+  }
+  withBufferSize(bufferSize) {
+    this[_buffer] = convert._Utf8Encoder._createBuffer(bufferSize);
+    this[_carry] = 0;
+    this[_bufferIndex] = 0;
+  }
+  static _createBuffer(size) {
+    return typed_data.Uint8List.new(size);
+  }
+  [_writeSurrogate](leadingSurrogate, nextCodeUnit) {
+    if (dart.test(convert._isTailSurrogate(nextCodeUnit))) {
+      let rune = convert._combineSurrogatePair(leadingSurrogate, nextCodeUnit);
+      dart.assert(dart.notNull(rune) > convert._THREE_BYTE_LIMIT);
+      dart.assert(dart.notNull(rune) <= convert._FOUR_BYTE_LIMIT);
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), (240 | rune[dartx['>>']](18)) >>> 0);
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), 128 | dart.notNull(rune) >> 12 & 63);
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), 128 | dart.notNull(rune) >> 6 & 63);
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), 128 | dart.notNull(rune) & 63);
+      return true;
+    } else {
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), (224 | leadingSurrogate[dartx['>>']](12)) >>> 0);
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), 128 | dart.notNull(leadingSurrogate) >> 6 & 63);
+      this[_buffer][dartx._set]((() => {
+        let x = this[_bufferIndex];
+        this[_bufferIndex] = dart.notNull(x) + 1;
+        return x;
+      })(), 128 | dart.notNull(leadingSurrogate) & 63);
+      return false;
     }
-    add(str) {
-      this[_sink$].add(str);
+  }
+  [_fillBuffer](str, start, end) {
+    if (start != end && dart.test(convert._isLeadSurrogate(str[dartx.codeUnitAt](dart.notNull(end) - 1)))) {
+      end = dart.notNull(end) - 1;
     }
-    addSlice(str, start, end, isLast) {
-      if (start == 0 && end == str[dartx.length]) {
-        this.add(str);
+    let stringIndex = null;
+    for (stringIndex = start; dart.notNull(stringIndex) < dart.notNull(end); stringIndex = dart.notNull(stringIndex) + 1) {
+      let codeUnit = str[dartx.codeUnitAt](stringIndex);
+      if (dart.notNull(codeUnit) <= convert._ONE_BYTE_LIMIT) {
+        if (dart.notNull(this[_bufferIndex]) >= dart.notNull(this[_buffer][dartx.length])) break;
+        this[_buffer][dartx._set]((() => {
+          let x = this[_bufferIndex];
+          this[_bufferIndex] = dart.notNull(x) + 1;
+          return x;
+        })(), codeUnit);
+      } else if (dart.test(convert._isLeadSurrogate(codeUnit))) {
+        if (dart.notNull(this[_bufferIndex]) + 3 >= dart.notNull(this[_buffer][dartx.length])) break;
+        let nextCodeUnit = str[dartx.codeUnitAt](dart.notNull(stringIndex) + 1);
+        let wasCombined = this[_writeSurrogate](codeUnit, nextCodeUnit);
+        if (dart.test(wasCombined)) {
+          stringIndex = dart.notNull(stringIndex) + 1;
+        }
       } else {
-        this.add(str[dartx.substring](start, end));
-      }
-      if (dart.test(isLast)) this.close();
-    }
-    close() {
-      this[_sink$].close();
-    }
-  };
-  dart.setSignature(convert._StringAdapterSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._StringAdapterSink, [SinkOfString()])}),
-    fields: () => ({[_sink$]: SinkOfString()}),
-    methods: () => ({
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  convert._Utf8StringSinkAdapter = class _Utf8StringSinkAdapter extends convert.ByteConversionSink {
-    new(sink, stringSink, allowMalformed) {
-      this[_sink$] = sink;
-      this[_decoder] = new convert._Utf8Decoder(stringSink, allowMalformed);
-      super.new();
-    }
-    close() {
-      this[_decoder].close();
-      if (this[_sink$] != null) this[_sink$].close();
-    }
-    add(chunk) {
-      this.addSlice(chunk, 0, chunk[dartx.length], false);
-    }
-    addSlice(codeUnits, startIndex, endIndex, isLast) {
-      this[_decoder].convert(codeUnits, startIndex, endIndex);
-      if (dart.test(isLast)) this.close();
-    }
-  };
-  dart.setSignature(convert._Utf8StringSinkAdapter, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Utf8StringSinkAdapter, [core.Sink, core.StringSink, core.bool])}),
-    fields: () => ({
-      [_decoder]: convert._Utf8Decoder,
-      [_sink$]: core.Sink
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])
-    })
-  });
-  convert._Utf8ConversionSink = class _Utf8ConversionSink extends convert.ByteConversionSink {
-    new(sink, allowMalformed) {
-      _Utf8ConversionSink.prototype._.call(this, sink, new core.StringBuffer(), allowMalformed);
-    }
-    _(chunkedSink, stringBuffer, allowMalformed) {
-      this[_chunkedSink] = chunkedSink;
-      this[_decoder] = new convert._Utf8Decoder(stringBuffer, allowMalformed);
-      this[_buffer] = stringBuffer;
-      super.new();
-    }
-    close() {
-      this[_decoder].close();
-      if (dart.test(this[_buffer].isNotEmpty)) {
-        let accumulated = dart.toString(this[_buffer]);
-        this[_buffer].clear();
-        this[_chunkedSink].addSlice(accumulated, 0, accumulated[dartx.length], true);
-      } else {
-        this[_chunkedSink].close();
-      }
-    }
-    add(chunk) {
-      this.addSlice(chunk, 0, chunk[dartx.length], false);
-    }
-    addSlice(chunk, startIndex, endIndex, isLast) {
-      this[_decoder].convert(chunk, startIndex, endIndex);
-      if (dart.test(this[_buffer].isNotEmpty)) {
-        let accumulated = dart.toString(this[_buffer]);
-        this[_chunkedSink].addSlice(accumulated, 0, accumulated[dartx.length], isLast);
-        this[_buffer].clear();
-        return;
-      }
-      if (dart.test(isLast)) this.close();
-    }
-  };
-  dart.defineNamedConstructor(convert._Utf8ConversionSink, '_');
-  dart.setSignature(convert._Utf8ConversionSink, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert._Utf8ConversionSink, [convert.StringConversionSink, core.bool]),
-      _: dart.definiteFunctionType(convert._Utf8ConversionSink, [convert.StringConversionSink, core.StringBuffer, core.bool])
-    }),
-    fields: () => ({
-      [_decoder]: convert._Utf8Decoder,
-      [_chunkedSink]: convert.StringConversionSink,
-      [_buffer]: core.StringBuffer
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])
-    })
-  });
-  convert.UNICODE_REPLACEMENT_CHARACTER_RUNE = 65533;
-  convert.UNICODE_BOM_CHARACTER_RUNE = 65279;
-  const _allowMalformed = Symbol('_allowMalformed');
-  let const$50;
-  convert.Utf8Codec = class Utf8Codec extends convert.Encoding {
-    new(opts) {
-      let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
-      this[_allowMalformed] = allowMalformed;
-      super.new();
-    }
-    get name() {
-      return "utf-8";
-    }
-    decode(codeUnits, opts) {
-      let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : null;
-      if (allowMalformed == null) allowMalformed = this[_allowMalformed];
-      return new convert.Utf8Decoder({allowMalformed: allowMalformed}).convert(codeUnits);
-    }
-    get encoder() {
-      return const$50 || (const$50 = dart.const(new convert.Utf8Encoder()));
-    }
-    get decoder() {
-      return new convert.Utf8Decoder({allowMalformed: this[_allowMalformed]});
-    }
-  };
-  dart.setSignature(convert.Utf8Codec, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Utf8Codec, [], {allowMalformed: core.bool})}),
-    fields: () => ({[_allowMalformed]: core.bool}),
-    getters: () => ({
-      name: dart.definiteFunctionType(core.String, []),
-      encoder: dart.definiteFunctionType(convert.Utf8Encoder, []),
-      decoder: dart.definiteFunctionType(convert.Utf8Decoder, [])
-    }),
-    methods: () => ({decode: dart.definiteFunctionType(core.String, [ListOfint()], {allowMalformed: core.bool})})
-  });
-  convert.UTF8 = dart.const(new convert.Utf8Codec());
-  const _fillBuffer = Symbol('_fillBuffer');
-  const _writeSurrogate = Symbol('_writeSurrogate');
-  convert.Utf8Encoder = class Utf8Encoder extends convert.Converter$(core.String, core.List$(core.int)) {
-    new() {
-      super.new();
-    }
-    convert(string, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      let stringLength = string[dartx.length];
-      core.RangeError.checkValidRange(start, end, stringLength);
-      if (end == null) end = stringLength;
-      let length = dart.notNull(end) - dart.notNull(start);
-      if (length == 0) return typed_data.Uint8List.new(0);
-      let encoder = new convert._Utf8Encoder.withBufferSize(length * 3);
-      let endPosition = encoder[_fillBuffer](string, start, end);
-      dart.assert(dart.notNull(endPosition) >= dart.notNull(end) - 1);
-      if (endPosition != end) {
-        let lastCodeUnit = string[dartx.codeUnitAt](dart.notNull(end) - 1);
-        dart.assert(convert._isLeadSurrogate(lastCodeUnit));
-        let wasCombined = encoder[_writeSurrogate](lastCodeUnit, 0);
-        dart.assert(!dart.test(wasCombined));
-      }
-      return encoder[_buffer][dartx.sublist](0, encoder[_bufferIndex]);
-    }
-    startChunkedConversion(sink) {
-      if (!convert.ByteConversionSink.is(sink)) {
-        sink = convert.ByteConversionSink.from(sink);
-      }
-      return new convert._Utf8EncoderSink(convert.ByteConversionSink._check(sink));
-    }
-    bind(stream) {
-      return super.bind(stream);
-    }
-  };
-  dart.addSimpleTypeTests(convert.Utf8Encoder);
-  dart.setSignature(convert.Utf8Encoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Utf8Encoder, [])}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
-    })
-  });
-  convert._Utf8Encoder = class _Utf8Encoder extends core.Object {
-    new() {
-      _Utf8Encoder.prototype.withBufferSize.call(this, convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE);
-    }
-    withBufferSize(bufferSize) {
-      this[_buffer] = convert._Utf8Encoder._createBuffer(bufferSize);
-      this[_carry] = 0;
-      this[_bufferIndex] = 0;
-    }
-    static _createBuffer(size) {
-      return typed_data.Uint8List.new(size);
-    }
-    [_writeSurrogate](leadingSurrogate, nextCodeUnit) {
-      if (dart.test(convert._isTailSurrogate(nextCodeUnit))) {
-        let rune = convert._combineSurrogatePair(leadingSurrogate, nextCodeUnit);
-        dart.assert(dart.notNull(rune) > convert._THREE_BYTE_LIMIT);
-        dart.assert(dart.notNull(rune) <= convert._FOUR_BYTE_LIMIT);
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), (240 | rune[dartx['>>']](18)) >>> 0);
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), 128 | dart.notNull(rune) >> 12 & 63);
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), 128 | dart.notNull(rune) >> 6 & 63);
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), 128 | dart.notNull(rune) & 63);
-        return true;
-      } else {
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), (224 | leadingSurrogate[dartx['>>']](12)) >>> 0);
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), 128 | dart.notNull(leadingSurrogate) >> 6 & 63);
-        this[_buffer][dartx._set]((() => {
-          let x = this[_bufferIndex];
-          this[_bufferIndex] = dart.notNull(x) + 1;
-          return x;
-        })(), 128 | dart.notNull(leadingSurrogate) & 63);
-        return false;
-      }
-    }
-    [_fillBuffer](str, start, end) {
-      if (start != end && dart.test(convert._isLeadSurrogate(str[dartx.codeUnitAt](dart.notNull(end) - 1)))) {
-        end = dart.notNull(end) - 1;
-      }
-      let stringIndex = null;
-      for (stringIndex = start; dart.notNull(stringIndex) < dart.notNull(end); stringIndex = dart.notNull(stringIndex) + 1) {
-        let codeUnit = str[dartx.codeUnitAt](stringIndex);
-        if (dart.notNull(codeUnit) <= convert._ONE_BYTE_LIMIT) {
-          if (dart.notNull(this[_bufferIndex]) >= dart.notNull(this[_buffer][dartx.length])) break;
+        let rune = codeUnit;
+        if (dart.notNull(rune) <= convert._TWO_BYTE_LIMIT) {
+          if (dart.notNull(this[_bufferIndex]) + 1 >= dart.notNull(this[_buffer][dartx.length])) break;
           this[_buffer][dartx._set]((() => {
             let x = this[_bufferIndex];
             this[_bufferIndex] = dart.notNull(x) + 1;
             return x;
-          })(), codeUnit);
-        } else if (dart.test(convert._isLeadSurrogate(codeUnit))) {
-          if (dart.notNull(this[_bufferIndex]) + 3 >= dart.notNull(this[_buffer][dartx.length])) break;
-          let nextCodeUnit = str[dartx.codeUnitAt](dart.notNull(stringIndex) + 1);
-          let wasCombined = this[_writeSurrogate](codeUnit, nextCodeUnit);
-          if (dart.test(wasCombined)) {
-            stringIndex = dart.notNull(stringIndex) + 1;
-          }
+          })(), (192 | rune[dartx['>>']](6)) >>> 0);
+          this[_buffer][dartx._set]((() => {
+            let x = this[_bufferIndex];
+            this[_bufferIndex] = dart.notNull(x) + 1;
+            return x;
+          })(), 128 | dart.notNull(rune) & 63);
         } else {
-          let rune = codeUnit;
-          if (dart.notNull(rune) <= convert._TWO_BYTE_LIMIT) {
-            if (dart.notNull(this[_bufferIndex]) + 1 >= dart.notNull(this[_buffer][dartx.length])) break;
-            this[_buffer][dartx._set]((() => {
-              let x = this[_bufferIndex];
-              this[_bufferIndex] = dart.notNull(x) + 1;
-              return x;
-            })(), (192 | rune[dartx['>>']](6)) >>> 0);
-            this[_buffer][dartx._set]((() => {
-              let x = this[_bufferIndex];
-              this[_bufferIndex] = dart.notNull(x) + 1;
-              return x;
-            })(), 128 | dart.notNull(rune) & 63);
-          } else {
-            dart.assert(dart.notNull(rune) <= convert._THREE_BYTE_LIMIT);
-            if (dart.notNull(this[_bufferIndex]) + 2 >= dart.notNull(this[_buffer][dartx.length])) break;
-            this[_buffer][dartx._set]((() => {
-              let x = this[_bufferIndex];
-              this[_bufferIndex] = dart.notNull(x) + 1;
-              return x;
-            })(), (224 | rune[dartx['>>']](12)) >>> 0);
-            this[_buffer][dartx._set]((() => {
-              let x = this[_bufferIndex];
-              this[_bufferIndex] = dart.notNull(x) + 1;
-              return x;
-            })(), 128 | dart.notNull(rune) >> 6 & 63);
-            this[_buffer][dartx._set]((() => {
-              let x = this[_bufferIndex];
-              this[_bufferIndex] = dart.notNull(x) + 1;
-              return x;
-            })(), 128 | dart.notNull(rune) & 63);
-          }
+          dart.assert(dart.notNull(rune) <= convert._THREE_BYTE_LIMIT);
+          if (dart.notNull(this[_bufferIndex]) + 2 >= dart.notNull(this[_buffer][dartx.length])) break;
+          this[_buffer][dartx._set]((() => {
+            let x = this[_bufferIndex];
+            this[_bufferIndex] = dart.notNull(x) + 1;
+            return x;
+          })(), (224 | rune[dartx['>>']](12)) >>> 0);
+          this[_buffer][dartx._set]((() => {
+            let x = this[_bufferIndex];
+            this[_bufferIndex] = dart.notNull(x) + 1;
+            return x;
+          })(), 128 | dart.notNull(rune) >> 6 & 63);
+          this[_buffer][dartx._set]((() => {
+            let x = this[_bufferIndex];
+            this[_bufferIndex] = dart.notNull(x) + 1;
+            return x;
+          })(), 128 | dart.notNull(rune) & 63);
         }
       }
-      return stringIndex;
     }
-  };
-  dart.defineNamedConstructor(convert._Utf8Encoder, 'withBufferSize');
-  dart.setSignature(convert._Utf8Encoder, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(convert._Utf8Encoder, []),
-      withBufferSize: dart.definiteFunctionType(convert._Utf8Encoder, [core.int])
-    }),
-    fields: () => ({
-      [_carry]: core.int,
-      [_bufferIndex]: core.int,
-      [_buffer]: ListOfint()
-    }),
-    methods: () => ({
-      [_writeSurrogate]: dart.definiteFunctionType(core.bool, [core.int, core.int]),
-      [_fillBuffer]: dart.definiteFunctionType(core.int, [core.String, core.int, core.int])
-    }),
-    sfields: () => ({_DEFAULT_BYTE_BUFFER_SIZE: core.int}),
-    statics: () => ({_createBuffer: dart.definiteFunctionType(core.List$(core.int), [core.int])}),
-    names: ['_createBuffer']
-  });
-  convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE = 1024;
-  convert._Utf8EncoderSink = class _Utf8EncoderSink extends dart.mixin(convert._Utf8Encoder, convert.StringConversionSinkMixin) {
-    new(sink) {
-      this[_sink$] = sink;
-      super.new();
+    return stringIndex;
+  }
+};
+dart.defineNamedConstructor(convert._Utf8Encoder, 'withBufferSize');
+dart.setSignature(convert._Utf8Encoder, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(convert._Utf8Encoder, []),
+    withBufferSize: dart.definiteFunctionType(convert._Utf8Encoder, [core.int])
+  }),
+  fields: () => ({
+    [_carry]: core.int,
+    [_bufferIndex]: core.int,
+    [_buffer]: ListOfint()
+  }),
+  methods: () => ({
+    [_writeSurrogate]: dart.definiteFunctionType(core.bool, [core.int, core.int]),
+    [_fillBuffer]: dart.definiteFunctionType(core.int, [core.String, core.int, core.int])
+  }),
+  sfields: () => ({_DEFAULT_BYTE_BUFFER_SIZE: core.int}),
+  statics: () => ({_createBuffer: dart.definiteFunctionType(core.List$(core.int), [core.int])}),
+  names: ['_createBuffer']
+});
+convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE = 1024;
+convert._Utf8EncoderSink = class _Utf8EncoderSink extends dart.mixin(convert._Utf8Encoder, convert.StringConversionSinkMixin) {
+  new(sink) {
+    this[_sink$] = sink;
+    super.new();
+  }
+  close() {
+    if (this[_carry] != 0) {
+      this.addSlice("", 0, 0, true);
+      return;
     }
-    close() {
-      if (this[_carry] != 0) {
-        this.addSlice("", 0, 0, true);
-        return;
-      }
-      this[_sink$].close();
+    this[_sink$].close();
+  }
+  addSlice(str, start, end, isLast) {
+    this[_bufferIndex] = 0;
+    if (start == end && !dart.test(isLast)) {
+      return;
     }
-    addSlice(str, start, end, isLast) {
-      this[_bufferIndex] = 0;
-      if (start == end && !dart.test(isLast)) {
-        return;
-      }
-      if (this[_carry] != 0) {
-        let nextCodeUnit = 0;
-        if (start != end) {
-          nextCodeUnit = str[dartx.codeUnitAt](start);
-        } else {
-          dart.assert(isLast);
-        }
-        let wasCombined = this[_writeSurrogate](this[_carry], nextCodeUnit);
-        dart.assert(!dart.test(wasCombined) || start != end);
-        if (dart.test(wasCombined)) {
-          start = dart.notNull(start) + 1;
-        }
-        this[_carry] = 0;
-      }
-      do {
-        start = this[_fillBuffer](str, start, end);
-        let isLastSlice = dart.test(isLast) && start == end;
-        if (start == dart.notNull(end) - 1 && dart.test(convert._isLeadSurrogate(str[dartx.codeUnitAt](start)))) {
-          if (dart.test(isLast) && dart.notNull(this[_bufferIndex]) < dart.notNull(this[_buffer][dartx.length]) - 3) {
-            let hasBeenCombined = this[_writeSurrogate](str[dartx.codeUnitAt](start), 0);
-            dart.assert(!dart.test(hasBeenCombined));
-          } else {
-            this[_carry] = str[dartx.codeUnitAt](start);
-          }
-          start = dart.notNull(start) + 1;
-        }
-        this[_sink$].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice);
-        this[_bufferIndex] = 0;
-      } while (dart.notNull(start) < dart.notNull(end));
-      if (dart.test(isLast)) this.close();
-    }
-  };
-  dart.setSignature(convert._Utf8EncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Utf8EncoderSink, [convert.ByteConversionSink])}),
-    fields: () => ({[_sink$]: convert.ByteConversionSink}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
-    })
-  });
-  convert.Utf8Decoder = class Utf8Decoder extends convert.Converter$(core.List$(core.int), core.String) {
-    new(opts) {
-      let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
-      this[_allowMalformed] = allowMalformed;
-      super.new();
-    }
-    convert(codeUnits, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      let result = convert.Utf8Decoder._convertIntercepted(this[_allowMalformed], codeUnits, start, end);
-      if (result != null) {
-        return result;
-      }
-      let length = codeUnits[dartx.length];
-      core.RangeError.checkValidRange(start, end, length);
-      if (end == null) end = length;
-      let buffer = new core.StringBuffer();
-      let decoder = new convert._Utf8Decoder(buffer, this[_allowMalformed]);
-      decoder.convert(codeUnits, start, end);
-      decoder.close();
-      return buffer.toString();
-    }
-    startChunkedConversion(sink) {
-      let stringSink = null;
-      if (convert.StringConversionSink.is(sink)) {
-        stringSink = sink;
+    if (this[_carry] != 0) {
+      let nextCodeUnit = 0;
+      if (start != end) {
+        nextCodeUnit = str[dartx.codeUnitAt](start);
       } else {
-        stringSink = convert.StringConversionSink.from(sink);
+        dart.assert(isLast);
       }
-      return stringSink.asUtf8Sink(this[_allowMalformed]);
+      let wasCombined = this[_writeSurrogate](this[_carry], nextCodeUnit);
+      dart.assert(!dart.test(wasCombined) || start != end);
+      if (dart.test(wasCombined)) {
+        start = dart.notNull(start) + 1;
+      }
+      this[_carry] = 0;
     }
-    bind(stream) {
-      return super.bind(stream);
+    do {
+      start = this[_fillBuffer](str, start, end);
+      let isLastSlice = dart.test(isLast) && start == end;
+      if (start == dart.notNull(end) - 1 && dart.test(convert._isLeadSurrogate(str[dartx.codeUnitAt](start)))) {
+        if (dart.test(isLast) && dart.notNull(this[_bufferIndex]) < dart.notNull(this[_buffer][dartx.length]) - 3) {
+          let hasBeenCombined = this[_writeSurrogate](str[dartx.codeUnitAt](start), 0);
+          dart.assert(!dart.test(hasBeenCombined));
+        } else {
+          this[_carry] = str[dartx.codeUnitAt](start);
+        }
+        start = dart.notNull(start) + 1;
+      }
+      this[_sink$].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice);
+      this[_bufferIndex] = 0;
+    } while (dart.notNull(start) < dart.notNull(end));
+    if (dart.test(isLast)) this.close();
+  }
+};
+dart.setSignature(convert._Utf8EncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Utf8EncoderSink, [convert.ByteConversionSink])}),
+  fields: () => ({[_sink$]: convert.ByteConversionSink}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
+  })
+});
+convert.Utf8Decoder = class Utf8Decoder extends convert.Converter$(core.List$(core.int), core.String) {
+  new(opts) {
+    let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
+    this[_allowMalformed] = allowMalformed;
+    super.new();
+  }
+  convert(codeUnits, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    let result = convert.Utf8Decoder._convertIntercepted(this[_allowMalformed], codeUnits, start, end);
+    if (result != null) {
+      return result;
     }
-    fuse(T) {
-      return next => {
-        return super.fuse(T)(next);
-      };
+    let length = codeUnits[dartx.length];
+    core.RangeError.checkValidRange(start, end, length);
+    if (end == null) end = length;
+    let buffer = new core.StringBuffer();
+    let decoder = new convert._Utf8Decoder(buffer, this[_allowMalformed]);
+    decoder.convert(codeUnits, start, end);
+    decoder.close();
+    return buffer.toString();
+  }
+  startChunkedConversion(sink) {
+    let stringSink = null;
+    if (convert.StringConversionSink.is(sink)) {
+      stringSink = sink;
+    } else {
+      stringSink = convert.StringConversionSink.from(sink);
     }
-    static _convertIntercepted(allowMalformed, codeUnits, start, end) {
-      return null;
-    }
-  };
-  dart.addSimpleTypeTests(convert.Utf8Decoder);
-  dart.setSignature(convert.Utf8Decoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert.Utf8Decoder, [], {allowMalformed: core.bool})}),
-    fields: () => ({[_allowMalformed]: core.bool}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.String, [ListOfint()], [core.int, core.int]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
-    }),
-    statics: () => ({_convertIntercepted: dart.definiteFunctionType(core.String, [core.bool, ListOfint(), core.int, core.int])}),
-    names: ['_convertIntercepted']
-  });
-  convert._ONE_BYTE_LIMIT = 127;
-  convert._TWO_BYTE_LIMIT = 2047;
-  convert._THREE_BYTE_LIMIT = 65535;
-  convert._FOUR_BYTE_LIMIT = 1114111;
-  convert._SURROGATE_MASK = 63488;
-  convert._SURROGATE_TAG_MASK = 64512;
-  convert._SURROGATE_VALUE_MASK = 1023;
-  convert._LEAD_SURROGATE_MIN = 55296;
-  convert._TAIL_SURROGATE_MIN = 56320;
-  convert._isLeadSurrogate = function(codeUnit) {
-    return (dart.notNull(codeUnit) & convert._SURROGATE_TAG_MASK) == convert._LEAD_SURROGATE_MIN;
-  };
-  dart.lazyFn(convert._isLeadSurrogate, () => intTobool());
-  convert._isTailSurrogate = function(codeUnit) {
-    return (dart.notNull(codeUnit) & convert._SURROGATE_TAG_MASK) == convert._TAIL_SURROGATE_MIN;
-  };
-  dart.lazyFn(convert._isTailSurrogate, () => intTobool());
-  convert._combineSurrogatePair = function(lead, tail) {
-    return (65536 + ((dart.notNull(lead) & convert._SURROGATE_VALUE_MASK) << 10) | dart.notNull(tail) & convert._SURROGATE_VALUE_MASK) >>> 0;
-  };
-  dart.fn(convert._combineSurrogatePair, intAndintToint());
-  const _isFirstCharacter = Symbol('_isFirstCharacter');
-  const _value = Symbol('_value');
-  const _expectedUnits = Symbol('_expectedUnits');
-  const _extraUnits = Symbol('_extraUnits');
-  convert._Utf8Decoder = class _Utf8Decoder extends core.Object {
-    new(stringSink, allowMalformed) {
-      this[_stringSink] = stringSink;
-      this[_allowMalformed] = allowMalformed;
-      this[_isFirstCharacter] = true;
+    return stringSink.asUtf8Sink(this[_allowMalformed]);
+  }
+  bind(stream) {
+    return super.bind(stream);
+  }
+  fuse(T) {
+    return next => {
+      return super.fuse(T)(next);
+    };
+  }
+  static _convertIntercepted(allowMalformed, codeUnits, start, end) {
+    return null;
+  }
+};
+dart.addSimpleTypeTests(convert.Utf8Decoder);
+dart.setSignature(convert.Utf8Decoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert.Utf8Decoder, [], {allowMalformed: core.bool})}),
+  fields: () => ({[_allowMalformed]: core.bool}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.String, [ListOfint()], [core.int, core.int]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
+  }),
+  statics: () => ({_convertIntercepted: dart.definiteFunctionType(core.String, [core.bool, ListOfint(), core.int, core.int])}),
+  names: ['_convertIntercepted']
+});
+convert._ONE_BYTE_LIMIT = 127;
+convert._TWO_BYTE_LIMIT = 2047;
+convert._THREE_BYTE_LIMIT = 65535;
+convert._FOUR_BYTE_LIMIT = 1114111;
+convert._SURROGATE_MASK = 63488;
+convert._SURROGATE_TAG_MASK = 64512;
+convert._SURROGATE_VALUE_MASK = 1023;
+convert._LEAD_SURROGATE_MIN = 55296;
+convert._TAIL_SURROGATE_MIN = 56320;
+convert._isLeadSurrogate = function(codeUnit) {
+  return (dart.notNull(codeUnit) & convert._SURROGATE_TAG_MASK) == convert._LEAD_SURROGATE_MIN;
+};
+dart.lazyFn(convert._isLeadSurrogate, () => intTobool());
+convert._isTailSurrogate = function(codeUnit) {
+  return (dart.notNull(codeUnit) & convert._SURROGATE_TAG_MASK) == convert._TAIL_SURROGATE_MIN;
+};
+dart.lazyFn(convert._isTailSurrogate, () => intTobool());
+convert._combineSurrogatePair = function(lead, tail) {
+  return (65536 + ((dart.notNull(lead) & convert._SURROGATE_VALUE_MASK) << 10) | dart.notNull(tail) & convert._SURROGATE_VALUE_MASK) >>> 0;
+};
+dart.fn(convert._combineSurrogatePair, intAndintToint());
+const _isFirstCharacter = Symbol('_isFirstCharacter');
+const _value = Symbol('_value');
+const _expectedUnits = Symbol('_expectedUnits');
+const _extraUnits = Symbol('_extraUnits');
+convert._Utf8Decoder = class _Utf8Decoder extends core.Object {
+  new(stringSink, allowMalformed) {
+    this[_stringSink] = stringSink;
+    this[_allowMalformed] = allowMalformed;
+    this[_isFirstCharacter] = true;
+    this[_value] = 0;
+    this[_expectedUnits] = 0;
+    this[_extraUnits] = 0;
+  }
+  get hasPartialInput() {
+    return dart.notNull(this[_expectedUnits]) > 0;
+  }
+  close() {
+    this.flush();
+  }
+  flush() {
+    if (dart.test(this.hasPartialInput)) {
+      if (!dart.test(this[_allowMalformed])) {
+        dart.throw(new core.FormatException("Unfinished UTF-8 octet sequence"));
+      }
+      this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE);
       this[_value] = 0;
       this[_expectedUnits] = 0;
       this[_extraUnits] = 0;
     }
-    get hasPartialInput() {
-      return dart.notNull(this[_expectedUnits]) > 0;
-    }
-    close() {
-      this.flush();
-    }
-    flush() {
-      if (dart.test(this.hasPartialInput)) {
-        if (!dart.test(this[_allowMalformed])) {
-          dart.throw(new core.FormatException("Unfinished UTF-8 octet sequence"));
-        }
-        this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE);
-        this[_value] = 0;
-        this[_expectedUnits] = 0;
-        this[_extraUnits] = 0;
+  }
+  convert(codeUnits, startIndex, endIndex) {
+    let value = this[_value];
+    let expectedUnits = this[_expectedUnits];
+    let extraUnits = this[_extraUnits];
+    this[_value] = 0;
+    this[_expectedUnits] = 0;
+    this[_extraUnits] = 0;
+    function scanOneByteCharacters(units, from) {
+      let to = endIndex;
+      let mask = convert._ONE_BYTE_LIMIT;
+      for (let i = from; dart.notNull(i) < dart.notNull(to); i = dart.notNull(i) + 1) {
+        let unit = dart.dindex(units, i);
+        if (!dart.equals(dart.dsend(unit, '&', mask), unit)) return dart.notNull(i) - dart.notNull(from);
       }
+      return dart.notNull(to) - dart.notNull(from);
     }
-    convert(codeUnits, startIndex, endIndex) {
-      let value = this[_value];
-      let expectedUnits = this[_expectedUnits];
-      let extraUnits = this[_extraUnits];
-      this[_value] = 0;
-      this[_expectedUnits] = 0;
-      this[_extraUnits] = 0;
-      function scanOneByteCharacters(units, from) {
-        let to = endIndex;
-        let mask = convert._ONE_BYTE_LIMIT;
-        for (let i = from; dart.notNull(i) < dart.notNull(to); i = dart.notNull(i) + 1) {
-          let unit = dart.dindex(units, i);
-          if (!dart.equals(dart.dsend(unit, '&', mask), unit)) return dart.notNull(i) - dart.notNull(from);
-        }
-        return dart.notNull(to) - dart.notNull(from);
-      }
-      dart.fn(scanOneByteCharacters, dynamicAndintToint());
-      const addSingleBytes = (function(from, to) {
-        dart.assert(dart.notNull(from) >= dart.notNull(startIndex) && dart.notNull(from) <= dart.notNull(endIndex));
-        dart.assert(dart.notNull(to) >= dart.notNull(startIndex) && dart.notNull(to) <= dart.notNull(endIndex));
-        this[_stringSink].write(core.String.fromCharCodes(codeUnits, from, to));
-      }).bind(this);
-      dart.fn(addSingleBytes, intAndintTovoid());
-      let i = startIndex;
-      loop:
-        while (true) {
-          multibyte:
-            if (dart.notNull(expectedUnits) > 0) {
-              do {
-                if (i == endIndex) {
-                  break loop;
-                }
-                let unit = codeUnits[dartx._get](i);
-                if ((dart.notNull(unit) & 192) != 128) {
-                  expectedUnits = 0;
-                  if (!dart.test(this[_allowMalformed])) {
-                    dart.throw(new core.FormatException(dart.str`Bad UTF-8 encoding 0x${unit[dartx.toRadixString](16)}`));
-                  }
-                  this[_isFirstCharacter] = false;
-                  this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE);
-                  break multibyte;
-                } else {
-                  value = (dart.notNull(value) << 6 | dart.notNull(unit) & 63) >>> 0;
-                  expectedUnits = dart.notNull(expectedUnits) - 1;
-                  i = dart.notNull(i) + 1;
-                }
-              } while (dart.notNull(expectedUnits) > 0);
-              if (dart.notNull(value) <= dart.notNull(convert._Utf8Decoder._LIMITS[dartx._get](dart.notNull(extraUnits) - 1))) {
+    dart.fn(scanOneByteCharacters, dynamicAndintToint());
+    const addSingleBytes = (function(from, to) {
+      dart.assert(dart.notNull(from) >= dart.notNull(startIndex) && dart.notNull(from) <= dart.notNull(endIndex));
+      dart.assert(dart.notNull(to) >= dart.notNull(startIndex) && dart.notNull(to) <= dart.notNull(endIndex));
+      this[_stringSink].write(core.String.fromCharCodes(codeUnits, from, to));
+    }).bind(this);
+    dart.fn(addSingleBytes, intAndintTovoid());
+    let i = startIndex;
+    loop:
+      while (true) {
+        multibyte:
+          if (dart.notNull(expectedUnits) > 0) {
+            do {
+              if (i == endIndex) {
+                break loop;
+              }
+              let unit = codeUnits[dartx._get](i);
+              if ((dart.notNull(unit) & 192) != 128) {
+                expectedUnits = 0;
                 if (!dart.test(this[_allowMalformed])) {
-                  dart.throw(new core.FormatException(dart.str`Overlong encoding of 0x${value[dartx.toRadixString](16)}`));
+                  dart.throw(new core.FormatException(dart.str`Bad UTF-8 encoding 0x${unit[dartx.toRadixString](16)}`));
                 }
-                expectedUnits = extraUnits = 0;
-                value = convert.UNICODE_REPLACEMENT_CHARACTER_RUNE;
+                this[_isFirstCharacter] = false;
+                this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE);
+                break multibyte;
+              } else {
+                value = (dart.notNull(value) << 6 | dart.notNull(unit) & 63) >>> 0;
+                expectedUnits = dart.notNull(expectedUnits) - 1;
+                i = dart.notNull(i) + 1;
               }
-              if (dart.notNull(value) > convert._FOUR_BYTE_LIMIT) {
-                if (!dart.test(this[_allowMalformed])) {
-                  dart.throw(new core.FormatException("Character outside valid Unicode range: " + dart.str`0x${value[dartx.toRadixString](16)}`));
-                }
-                value = convert.UNICODE_REPLACEMENT_CHARACTER_RUNE;
-              }
-              if (!dart.test(this[_isFirstCharacter]) || value != convert.UNICODE_BOM_CHARACTER_RUNE) {
-                this[_stringSink].writeCharCode(value);
-              }
-              this[_isFirstCharacter] = false;
-            }
-          while (dart.notNull(i) < dart.notNull(endIndex)) {
-            let oneBytes = scanOneByteCharacters(codeUnits, i);
-            if (dart.notNull(oneBytes) > 0) {
-              this[_isFirstCharacter] = false;
-              addSingleBytes(i, dart.notNull(i) + dart.notNull(oneBytes));
-              i = dart.notNull(i) + dart.notNull(oneBytes);
-              if (i == endIndex) break;
-            }
-            let unit = codeUnits[dartx._get]((() => {
-              let x = i;
-              i = dart.notNull(x) + 1;
-              return x;
-            })());
-            if (dart.notNull(unit) < 0) {
+            } while (dart.notNull(expectedUnits) > 0);
+            if (dart.notNull(value) <= dart.notNull(convert._Utf8Decoder._LIMITS[dartx._get](dart.notNull(extraUnits) - 1))) {
               if (!dart.test(this[_allowMalformed])) {
-                dart.throw(new core.FormatException(dart.str`Negative UTF-8 code unit: -0x${(-dart.notNull(unit))[dartx.toRadixString](16)}`));
+                dart.throw(new core.FormatException(dart.str`Overlong encoding of 0x${value[dartx.toRadixString](16)}`));
               }
-              this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE);
-            } else {
-              dart.assert(dart.notNull(unit) > convert._ONE_BYTE_LIMIT);
-              if ((dart.notNull(unit) & 224) == 192) {
-                value = dart.notNull(unit) & 31;
-                expectedUnits = extraUnits = 1;
-                continue loop;
-              }
-              if ((dart.notNull(unit) & 240) == 224) {
-                value = dart.notNull(unit) & 15;
-                expectedUnits = extraUnits = 2;
-                continue loop;
-              }
-              if ((dart.notNull(unit) & 248) == 240 && dart.notNull(unit) < 245) {
-                value = dart.notNull(unit) & 7;
-                expectedUnits = extraUnits = 3;
-                continue loop;
-              }
+              expectedUnits = extraUnits = 0;
+              value = convert.UNICODE_REPLACEMENT_CHARACTER_RUNE;
+            }
+            if (dart.notNull(value) > convert._FOUR_BYTE_LIMIT) {
               if (!dart.test(this[_allowMalformed])) {
-                dart.throw(new core.FormatException(dart.str`Bad UTF-8 encoding 0x${unit[dartx.toRadixString](16)}`));
+                dart.throw(new core.FormatException("Character outside valid Unicode range: " + dart.str`0x${value[dartx.toRadixString](16)}`));
               }
               value = convert.UNICODE_REPLACEMENT_CHARACTER_RUNE;
-              expectedUnits = extraUnits = 0;
-              this[_isFirstCharacter] = false;
+            }
+            if (!dart.test(this[_isFirstCharacter]) || value != convert.UNICODE_BOM_CHARACTER_RUNE) {
               this[_stringSink].writeCharCode(value);
             }
+            this[_isFirstCharacter] = false;
           }
-          break loop;
-        }
-      if (dart.notNull(expectedUnits) > 0) {
-        this[_value] = value;
-        this[_expectedUnits] = expectedUnits;
-        this[_extraUnits] = extraUnits;
-      }
-    }
-  };
-  dart.setSignature(convert._Utf8Decoder, {
-    constructors: () => ({new: dart.definiteFunctionType(convert._Utf8Decoder, [core.StringSink, core.bool])}),
-    fields: () => ({
-      [_allowMalformed]: core.bool,
-      [_stringSink]: core.StringSink,
-      [_isFirstCharacter]: core.bool,
-      [_value]: core.int,
-      [_expectedUnits]: core.int,
-      [_extraUnits]: core.int
-    }),
-    getters: () => ({hasPartialInput: dart.definiteFunctionType(core.bool, [])}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      flush: dart.definiteFunctionType(dart.void, []),
-      convert: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int])
-    }),
-    sfields: () => ({_LIMITS: ListOfint()})
-  });
-  convert._Utf8Decoder._LIMITS = dart.constList([convert._ONE_BYTE_LIMIT, convert._TWO_BYTE_LIMIT, convert._THREE_BYTE_LIMIT, convert._FOUR_BYTE_LIMIT], core.int);
-  core._symbolToString = function(symbol) {
-    return _internal.Symbol.getName(_internal.Symbol._check(symbol));
-  };
-  dart.lazyFn(core._symbolToString, () => SymbolToString());
-  core.StrongModeError = class StrongModeError extends core.Error {
-    new() {
-      super.new();
-    }
-  };
-  core.Deprecated = class Deprecated extends core.Object {
-    new(expires) {
-      this.expires = expires;
-    }
-    toString() {
-      return dart.str`Deprecated feature. Will be removed ${this.expires}`;
-    }
-  };
-  dart.setSignature(core.Deprecated, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Deprecated, [core.String])}),
-    fields: () => ({expires: core.String})
-  });
-  core._Override = class _Override extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(core._Override, {
-    constructors: () => ({new: dart.definiteFunctionType(core._Override, [])})
-  });
-  core.deprecated = dart.const(new core.Deprecated("next release"));
-  core.override = dart.const(new core._Override());
-  core._Proxy = class _Proxy extends core.Object {
-    new() {
-    }
-  };
-  dart.setSignature(core._Proxy, {
-    constructors: () => ({new: dart.definiteFunctionType(core._Proxy, [])})
-  });
-  core.proxy = dart.const(new core._Proxy());
-  dart.defineExtensionNames([
-    'toString'
-  ]);
-  core.bool = class bool extends core.Object {
-    static fromEnvironment(name, opts) {
-      let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : false;
-      dart.throw(new core.UnsupportedError('bool.fromEnvironment can only be used as a const constructor'));
-    }
-    [dartx.toString]() {
-      return this ? "true" : "false";
-    }
-  };
-  core.bool.is = function is_bool(o) {
-    return o === true || o === false;
-  };
-  core.bool.as = function as_bool(o) {
-    if (o === true || o === false || o == null) return o;
-    return dart.as(o, core.bool);
-  };
-  core.bool._check = function check_bool(o) {
-    if (o === true || o === false || o == null) return o;
-    return dart.check(o, core.bool);
-  };
-  dart.setSignature(core.bool, {
-    constructors: () => ({fromEnvironment: dart.definiteFunctionType(core.bool, [core.String], {defaultValue: core.bool})})
-  });
-  core.Comparator$ = dart.generic(T => {
-    const Comparator = dart.typedef('Comparator', () => dart.functionType(core.int, [T, T]));
-    return Comparator;
-  });
-  core.Comparator = Comparator();
-  core.Comparable$ = dart.generic(T => {
-    class Comparable extends core.Object {
-      static compare(a, b) {
-        return a[dartx.compareTo](b);
-      }
-    }
-    dart.addTypeTests(Comparable);
-    dart.setSignature(Comparable, {
-      statics: () => ({compare: dart.definiteFunctionType(core.int, [core.Comparable, core.Comparable])}),
-      names: ['compare']
-    });
-    return Comparable;
-  });
-  core.Comparable = Comparable();
-  const _value$ = Symbol('_value');
-  core.DateTime = class DateTime extends core.Object {
-    new(year, month, day, hour, minute, second, millisecond, microsecond) {
-      if (month === void 0) month = 1;
-      if (day === void 0) day = 1;
-      if (hour === void 0) hour = 0;
-      if (minute === void 0) minute = 0;
-      if (second === void 0) second = 0;
-      if (millisecond === void 0) millisecond = 0;
-      if (microsecond === void 0) microsecond = 0;
-      DateTime.prototype._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, false);
-    }
-    utc(year, month, day, hour, minute, second, millisecond, microsecond) {
-      if (month === void 0) month = 1;
-      if (day === void 0) day = 1;
-      if (hour === void 0) hour = 0;
-      if (minute === void 0) minute = 0;
-      if (second === void 0) second = 0;
-      if (millisecond === void 0) millisecond = 0;
-      if (microsecond === void 0) microsecond = 0;
-      DateTime.prototype._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, true);
-    }
-    now() {
-      DateTime.prototype._now.call(this);
-    }
-    static parse(formattedString) {
-      let re = core.RegExp.new('^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)' + '(?:[ T](\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d{1,6}))?)?)?' + '( ?[zZ]| ?([-+])(\\d\\d)(?::?(\\d\\d))?)?)?$');
-      let match = re.firstMatch(formattedString);
-      if (match != null) {
-        function parseIntOrZero(matched) {
-          if (matched == null) return 0;
-          return core.int.parse(matched);
-        }
-        dart.fn(parseIntOrZero, StringToint$());
-        function parseMilliAndMicroseconds(matched) {
-          if (matched == null) return 0;
-          let length = matched[dartx.length];
-          dart.assert(dart.notNull(length) >= 1);
-          dart.assert(dart.notNull(length) <= 6);
-          let result = 0;
-          for (let i = 0; i < 6; i++) {
-            result = result * 10;
-            if (i < dart.notNull(matched[dartx.length])) {
-              result = result + ((dart.notNull(matched[dartx.codeUnitAt](i)) ^ 48) >>> 0);
+        while (dart.notNull(i) < dart.notNull(endIndex)) {
+          let oneBytes = scanOneByteCharacters(codeUnits, i);
+          if (dart.notNull(oneBytes) > 0) {
+            this[_isFirstCharacter] = false;
+            addSingleBytes(i, dart.notNull(i) + dart.notNull(oneBytes));
+            i = dart.notNull(i) + dart.notNull(oneBytes);
+            if (i == endIndex) break;
+          }
+          let unit = codeUnits[dartx._get]((() => {
+            let x = i;
+            i = dart.notNull(x) + 1;
+            return x;
+          })());
+          if (dart.notNull(unit) < 0) {
+            if (!dart.test(this[_allowMalformed])) {
+              dart.throw(new core.FormatException(dart.str`Negative UTF-8 code unit: -0x${(-dart.notNull(unit))[dartx.toRadixString](16)}`));
             }
-          }
-          return result;
-        }
-        dart.fn(parseMilliAndMicroseconds, StringToint$());
-        let years = core.int.parse(match._get(1));
-        let month = core.int.parse(match._get(2));
-        let day = core.int.parse(match._get(3));
-        let hour = parseIntOrZero(match._get(4));
-        let minute = parseIntOrZero(match._get(5));
-        let second = parseIntOrZero(match._get(6));
-        let addOneMillisecond = false;
-        let milliAndMicroseconds = parseMilliAndMicroseconds(match._get(7));
-        let millisecond = (dart.notNull(milliAndMicroseconds) / core.Duration.MICROSECONDS_PER_MILLISECOND)[dartx.truncate]();
-        let microsecond = dart.asInt(milliAndMicroseconds[dartx.remainder](core.Duration.MICROSECONDS_PER_MILLISECOND));
-        let isUtc = false;
-        if (match._get(8) != null) {
-          isUtc = true;
-          if (match._get(9) != null) {
-            let sign = match._get(9) == '-' ? -1 : 1;
-            let hourDifference = core.int.parse(match._get(10));
-            let minuteDifference = parseIntOrZero(match._get(11));
-            minuteDifference = dart.notNull(minuteDifference) + 60 * dart.notNull(hourDifference);
-            minute = dart.notNull(minute) - sign * dart.notNull(minuteDifference);
+            this[_stringSink].writeCharCode(convert.UNICODE_REPLACEMENT_CHARACTER_RUNE);
+          } else {
+            dart.assert(dart.notNull(unit) > convert._ONE_BYTE_LIMIT);
+            if ((dart.notNull(unit) & 224) == 192) {
+              value = dart.notNull(unit) & 31;
+              expectedUnits = extraUnits = 1;
+              continue loop;
+            }
+            if ((dart.notNull(unit) & 240) == 224) {
+              value = dart.notNull(unit) & 15;
+              expectedUnits = extraUnits = 2;
+              continue loop;
+            }
+            if ((dart.notNull(unit) & 248) == 240 && dart.notNull(unit) < 245) {
+              value = dart.notNull(unit) & 7;
+              expectedUnits = extraUnits = 3;
+              continue loop;
+            }
+            if (!dart.test(this[_allowMalformed])) {
+              dart.throw(new core.FormatException(dart.str`Bad UTF-8 encoding 0x${unit[dartx.toRadixString](16)}`));
+            }
+            value = convert.UNICODE_REPLACEMENT_CHARACTER_RUNE;
+            expectedUnits = extraUnits = 0;
+            this[_isFirstCharacter] = false;
+            this[_stringSink].writeCharCode(value);
           }
         }
-        let value = core.DateTime._brokenDownDateToValue(years, month, day, hour, minute, second, millisecond, microsecond, isUtc);
-        if (value == null) {
-          dart.throw(new core.FormatException("Time out of range", formattedString));
+        break loop;
+      }
+    if (dart.notNull(expectedUnits) > 0) {
+      this[_value] = value;
+      this[_expectedUnits] = expectedUnits;
+      this[_extraUnits] = extraUnits;
+    }
+  }
+};
+dart.setSignature(convert._Utf8Decoder, {
+  constructors: () => ({new: dart.definiteFunctionType(convert._Utf8Decoder, [core.StringSink, core.bool])}),
+  fields: () => ({
+    [_allowMalformed]: core.bool,
+    [_stringSink]: core.StringSink,
+    [_isFirstCharacter]: core.bool,
+    [_value]: core.int,
+    [_expectedUnits]: core.int,
+    [_extraUnits]: core.int
+  }),
+  getters: () => ({hasPartialInput: dart.definiteFunctionType(core.bool, [])}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    flush: dart.definiteFunctionType(dart.void, []),
+    convert: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int])
+  }),
+  sfields: () => ({_LIMITS: ListOfint()})
+});
+convert._Utf8Decoder._LIMITS = dart.constList([convert._ONE_BYTE_LIMIT, convert._TWO_BYTE_LIMIT, convert._THREE_BYTE_LIMIT, convert._FOUR_BYTE_LIMIT], core.int);
+core._symbolToString = function(symbol) {
+  return _internal.Symbol.getName(_internal.Symbol._check(symbol));
+};
+dart.lazyFn(core._symbolToString, () => SymbolToString());
+core.StrongModeError = class StrongModeError extends core.Error {
+  new() {
+    super.new();
+  }
+};
+core.Deprecated = class Deprecated extends core.Object {
+  new(expires) {
+    this.expires = expires;
+  }
+  toString() {
+    return dart.str`Deprecated feature. Will be removed ${this.expires}`;
+  }
+};
+dart.setSignature(core.Deprecated, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Deprecated, [core.String])}),
+  fields: () => ({expires: core.String})
+});
+core._Override = class _Override extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(core._Override, {
+  constructors: () => ({new: dart.definiteFunctionType(core._Override, [])})
+});
+core.deprecated = dart.const(new core.Deprecated("next release"));
+core.override = dart.const(new core._Override());
+core._Proxy = class _Proxy extends core.Object {
+  new() {
+  }
+};
+dart.setSignature(core._Proxy, {
+  constructors: () => ({new: dart.definiteFunctionType(core._Proxy, [])})
+});
+core.proxy = dart.const(new core._Proxy());
+dart.defineExtensionNames([
+  'toString'
+]);
+core.bool = class bool extends core.Object {
+  static fromEnvironment(name, opts) {
+    let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : false;
+    dart.throw(new core.UnsupportedError('bool.fromEnvironment can only be used as a const constructor'));
+  }
+  [dartx.toString]() {
+    return this ? "true" : "false";
+  }
+};
+core.bool.is = function is_bool(o) {
+  return o === true || o === false;
+};
+core.bool.as = function as_bool(o) {
+  if (o === true || o === false || o == null) return o;
+  return dart.as(o, core.bool);
+};
+core.bool._check = function check_bool(o) {
+  if (o === true || o === false || o == null) return o;
+  return dart.check(o, core.bool);
+};
+dart.setSignature(core.bool, {
+  constructors: () => ({fromEnvironment: dart.definiteFunctionType(core.bool, [core.String], {defaultValue: core.bool})})
+});
+core.Comparator$ = dart.generic(T => {
+  const Comparator = dart.typedef('Comparator', () => dart.functionType(core.int, [T, T]));
+  return Comparator;
+});
+core.Comparator = Comparator();
+core.Comparable$ = dart.generic(T => {
+  class Comparable extends core.Object {
+    static compare(a, b) {
+      return a[dartx.compareTo](b);
+    }
+  }
+  dart.addTypeTests(Comparable);
+  dart.setSignature(Comparable, {
+    statics: () => ({compare: dart.definiteFunctionType(core.int, [core.Comparable, core.Comparable])}),
+    names: ['compare']
+  });
+  return Comparable;
+});
+core.Comparable = Comparable();
+const _value$ = Symbol('_value');
+core.DateTime = class DateTime extends core.Object {
+  new(year, month, day, hour, minute, second, millisecond, microsecond) {
+    if (month === void 0) month = 1;
+    if (day === void 0) day = 1;
+    if (hour === void 0) hour = 0;
+    if (minute === void 0) minute = 0;
+    if (second === void 0) second = 0;
+    if (millisecond === void 0) millisecond = 0;
+    if (microsecond === void 0) microsecond = 0;
+    DateTime.prototype._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, false);
+  }
+  utc(year, month, day, hour, minute, second, millisecond, microsecond) {
+    if (month === void 0) month = 1;
+    if (day === void 0) day = 1;
+    if (hour === void 0) hour = 0;
+    if (minute === void 0) minute = 0;
+    if (second === void 0) second = 0;
+    if (millisecond === void 0) millisecond = 0;
+    if (microsecond === void 0) microsecond = 0;
+    DateTime.prototype._internal.call(this, year, month, day, hour, minute, second, millisecond, microsecond, true);
+  }
+  now() {
+    DateTime.prototype._now.call(this);
+  }
+  static parse(formattedString) {
+    let re = core.RegExp.new('^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)' + '(?:[ T](\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d{1,6}))?)?)?' + '( ?[zZ]| ?([-+])(\\d\\d)(?::?(\\d\\d))?)?)?$');
+    let match = re.firstMatch(formattedString);
+    if (match != null) {
+      function parseIntOrZero(matched) {
+        if (matched == null) return 0;
+        return core.int.parse(matched);
+      }
+      dart.fn(parseIntOrZero, StringToint$());
+      function parseMilliAndMicroseconds(matched) {
+        if (matched == null) return 0;
+        let length = matched[dartx.length];
+        dart.assert(dart.notNull(length) >= 1);
+        dart.assert(dart.notNull(length) <= 6);
+        let result = 0;
+        for (let i = 0; i < 6; i++) {
+          result = result * 10;
+          if (i < dart.notNull(matched[dartx.length])) {
+            result = result + ((dart.notNull(matched[dartx.codeUnitAt](i)) ^ 48) >>> 0);
+          }
         }
-        return new core.DateTime._withValue(value, {isUtc: isUtc});
-      } else {
-        dart.throw(new core.FormatException("Invalid date format", formattedString));
+        return result;
       }
-    }
-    fromMillisecondsSinceEpoch(millisecondsSinceEpoch, opts) {
-      let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
-      DateTime.prototype._withValue.call(this, millisecondsSinceEpoch, {isUtc: isUtc});
-    }
-    fromMicrosecondsSinceEpoch(microsecondsSinceEpoch, opts) {
-      let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
-      DateTime.prototype._withValue.call(this, core.DateTime._microsecondInRoundedMilliseconds(microsecondsSinceEpoch), {isUtc: isUtc});
-    }
-    _withValue(value, opts) {
-      let isUtc = opts && 'isUtc' in opts ? opts.isUtc : null;
-      this[_value$] = value;
-      this.isUtc = isUtc;
-      if (dart.notNull(this.millisecondsSinceEpoch[dartx.abs]()) > core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH || this.millisecondsSinceEpoch[dartx.abs]() == core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH && this.microsecond != 0) {
-        dart.throw(new core.ArgumentError(this.millisecondsSinceEpoch));
+      dart.fn(parseMilliAndMicroseconds, StringToint$());
+      let years = core.int.parse(match._get(1));
+      let month = core.int.parse(match._get(2));
+      let day = core.int.parse(match._get(3));
+      let hour = parseIntOrZero(match._get(4));
+      let minute = parseIntOrZero(match._get(5));
+      let second = parseIntOrZero(match._get(6));
+      let addOneMillisecond = false;
+      let milliAndMicroseconds = parseMilliAndMicroseconds(match._get(7));
+      let millisecond = (dart.notNull(milliAndMicroseconds) / core.Duration.MICROSECONDS_PER_MILLISECOND)[dartx.truncate]();
+      let microsecond = dart.asInt(milliAndMicroseconds[dartx.remainder](core.Duration.MICROSECONDS_PER_MILLISECOND));
+      let isUtc = false;
+      if (match._get(8) != null) {
+        isUtc = true;
+        if (match._get(9) != null) {
+          let sign = match._get(9) == '-' ? -1 : 1;
+          let hourDifference = core.int.parse(match._get(10));
+          let minuteDifference = parseIntOrZero(match._get(11));
+          minuteDifference = dart.notNull(minuteDifference) + 60 * dart.notNull(hourDifference);
+          minute = dart.notNull(minute) - sign * dart.notNull(minuteDifference);
+        }
       }
-      if (this.isUtc == null) dart.throw(new core.ArgumentError(this.isUtc));
-    }
-    ['=='](other) {
-      if (!core.DateTime.is(other)) return false;
-      return dart.equals(this[_value$], dart.dload(other, _value$)) && dart.equals(this.isUtc, dart.dload(other, 'isUtc'));
-    }
-    isBefore(other) {
-      return dart.notNull(this[_value$]) < dart.notNull(other[_value$]);
-    }
-    isAfter(other) {
-      return dart.notNull(this[_value$]) > dart.notNull(other[_value$]);
-    }
-    isAtSameMomentAs(other) {
-      return this[_value$] == other[_value$];
-    }
-    compareTo(other) {
-      return this[_value$][dartx.compareTo](other[_value$]);
-    }
-    get hashCode() {
-      return (dart.notNull(this[_value$]) ^ this[_value$][dartx['>>']](30)) & 1073741823;
-    }
-    toLocal() {
-      if (dart.test(this.isUtc)) {
-        return new core.DateTime._withValue(this[_value$], {isUtc: false});
+      let value = core.DateTime._brokenDownDateToValue(years, month, day, hour, minute, second, millisecond, microsecond, isUtc);
+      if (value == null) {
+        dart.throw(new core.FormatException("Time out of range", formattedString));
       }
-      return this;
+      return new core.DateTime._withValue(value, {isUtc: isUtc});
+    } else {
+      dart.throw(new core.FormatException("Invalid date format", formattedString));
     }
-    toUtc() {
-      if (dart.test(this.isUtc)) return this;
-      return new core.DateTime._withValue(this[_value$], {isUtc: true});
+  }
+  fromMillisecondsSinceEpoch(millisecondsSinceEpoch, opts) {
+    let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
+    DateTime.prototype._withValue.call(this, millisecondsSinceEpoch, {isUtc: isUtc});
+  }
+  fromMicrosecondsSinceEpoch(microsecondsSinceEpoch, opts) {
+    let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false;
+    DateTime.prototype._withValue.call(this, core.DateTime._microsecondInRoundedMilliseconds(microsecondsSinceEpoch), {isUtc: isUtc});
+  }
+  _withValue(value, opts) {
+    let isUtc = opts && 'isUtc' in opts ? opts.isUtc : null;
+    this[_value$] = value;
+    this.isUtc = isUtc;
+    if (dart.notNull(this.millisecondsSinceEpoch[dartx.abs]()) > core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH || this.millisecondsSinceEpoch[dartx.abs]() == core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH && this.microsecond != 0) {
+      dart.throw(new core.ArgumentError(this.millisecondsSinceEpoch));
     }
-    static _fourDigits(n) {
-      let absN = n[dartx.abs]();
-      let sign = dart.notNull(n) < 0 ? "-" : "";
-      if (dart.notNull(absN) >= 1000) return dart.str`${n}`;
-      if (dart.notNull(absN) >= 100) return dart.str`${sign}0${absN}`;
-      if (dart.notNull(absN) >= 10) return dart.str`${sign}00${absN}`;
-      return dart.str`${sign}000${absN}`;
+    if (this.isUtc == null) dart.throw(new core.ArgumentError(this.isUtc));
+  }
+  ['=='](other) {
+    if (!core.DateTime.is(other)) return false;
+    return dart.equals(this[_value$], dart.dload(other, _value$)) && dart.equals(this.isUtc, dart.dload(other, 'isUtc'));
+  }
+  isBefore(other) {
+    return dart.notNull(this[_value$]) < dart.notNull(other[_value$]);
+  }
+  isAfter(other) {
+    return dart.notNull(this[_value$]) > dart.notNull(other[_value$]);
+  }
+  isAtSameMomentAs(other) {
+    return this[_value$] == other[_value$];
+  }
+  compareTo(other) {
+    return this[_value$][dartx.compareTo](other[_value$]);
+  }
+  get hashCode() {
+    return (dart.notNull(this[_value$]) ^ this[_value$][dartx['>>']](30)) & 1073741823;
+  }
+  toLocal() {
+    if (dart.test(this.isUtc)) {
+      return new core.DateTime._withValue(this[_value$], {isUtc: false});
     }
-    static _sixDigits(n) {
-      dart.assert(dart.notNull(n) < -9999 || dart.notNull(n) > 9999);
-      let absN = n[dartx.abs]();
-      let sign = dart.notNull(n) < 0 ? "-" : "+";
-      if (dart.notNull(absN) >= 100000) return dart.str`${sign}${absN}`;
-      return dart.str`${sign}0${absN}`;
+    return this;
+  }
+  toUtc() {
+    if (dart.test(this.isUtc)) return this;
+    return new core.DateTime._withValue(this[_value$], {isUtc: true});
+  }
+  static _fourDigits(n) {
+    let absN = n[dartx.abs]();
+    let sign = dart.notNull(n) < 0 ? "-" : "";
+    if (dart.notNull(absN) >= 1000) return dart.str`${n}`;
+    if (dart.notNull(absN) >= 100) return dart.str`${sign}0${absN}`;
+    if (dart.notNull(absN) >= 10) return dart.str`${sign}00${absN}`;
+    return dart.str`${sign}000${absN}`;
+  }
+  static _sixDigits(n) {
+    dart.assert(dart.notNull(n) < -9999 || dart.notNull(n) > 9999);
+    let absN = n[dartx.abs]();
+    let sign = dart.notNull(n) < 0 ? "-" : "+";
+    if (dart.notNull(absN) >= 100000) return dart.str`${sign}${absN}`;
+    return dart.str`${sign}0${absN}`;
+  }
+  static _threeDigits(n) {
+    if (dart.notNull(n) >= 100) return dart.str`${n}`;
+    if (dart.notNull(n) >= 10) return dart.str`0${n}`;
+    return dart.str`00${n}`;
+  }
+  static _twoDigits(n) {
+    if (dart.notNull(n) >= 10) return dart.str`${n}`;
+    return dart.str`0${n}`;
+  }
+  toString() {
+    let y = core.DateTime._fourDigits(this.year);
+    let m = core.DateTime._twoDigits(this.month);
+    let d = core.DateTime._twoDigits(this.day);
+    let h = core.DateTime._twoDigits(this.hour);
+    let min = core.DateTime._twoDigits(this.minute);
+    let sec = core.DateTime._twoDigits(this.second);
+    let ms = core.DateTime._threeDigits(this.millisecond);
+    let us = this.microsecond == 0 ? "" : core.DateTime._threeDigits(this.microsecond);
+    if (dart.test(this.isUtc)) {
+      return dart.str`${y}-${m}-${d} ${h}:${min}:${sec}.${ms}${us}Z`;
+    } else {
+      return dart.str`${y}-${m}-${d} ${h}:${min}:${sec}.${ms}${us}`;
     }
-    static _threeDigits(n) {
-      if (dart.notNull(n) >= 100) return dart.str`${n}`;
-      if (dart.notNull(n) >= 10) return dart.str`0${n}`;
-      return dart.str`00${n}`;
+  }
+  toIso8601String() {
+    let y = dart.notNull(this.year) >= -9999 && dart.notNull(this.year) <= 9999 ? core.DateTime._fourDigits(this.year) : core.DateTime._sixDigits(this.year);
+    let m = core.DateTime._twoDigits(this.month);
+    let d = core.DateTime._twoDigits(this.day);
+    let h = core.DateTime._twoDigits(this.hour);
+    let min = core.DateTime._twoDigits(this.minute);
+    let sec = core.DateTime._twoDigits(this.second);
+    let ms = core.DateTime._threeDigits(this.millisecond);
+    let us = this.microsecond == 0 ? "" : core.DateTime._threeDigits(this.microsecond);
+    if (dart.test(this.isUtc)) {
+      return dart.str`${y}-${m}-${d}T${h}:${min}:${sec}.${ms}${us}Z`;
+    } else {
+      return dart.str`${y}-${m}-${d}T${h}:${min}:${sec}.${ms}${us}`;
     }
-    static _twoDigits(n) {
+  }
+  add(duration) {
+    return new core.DateTime._withValue(dart.notNull(this[_value$]) + dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
+  }
+  subtract(duration) {
+    return new core.DateTime._withValue(dart.notNull(this[_value$]) - dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
+  }
+  difference(other) {
+    return new core.Duration({milliseconds: dart.notNull(this[_value$]) - dart.notNull(other[_value$])});
+  }
+  _internal(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
+    this.isUtc = typeof isUtc == 'boolean' ? isUtc : dart.throw(new core.ArgumentError.value(isUtc, 'isUtc'));
+    this[_value$] = core.int._check(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc)));
+  }
+  _now() {
+    this.isUtc = false;
+    this[_value$] = _js_helper.Primitives.dateNow();
+  }
+  static _brokenDownDateToValue(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
+    return dart.asInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc));
+  }
+  get millisecondsSinceEpoch() {
+    return this[_value$];
+  }
+  get microsecondsSinceEpoch() {
+    return dart.notNull(this[_value$]) * 1000;
+  }
+  get timeZoneName() {
+    if (dart.test(this.isUtc)) return "UTC";
+    return _js_helper.Primitives.getTimeZoneName(this);
+  }
+  get timeZoneOffset() {
+    if (dart.test(this.isUtc)) return new core.Duration();
+    return new core.Duration({minutes: _js_helper.Primitives.getTimeZoneOffsetInMinutes(this)});
+  }
+  get year() {
+    return core.int._check(_js_helper.Primitives.getYear(this));
+  }
+  get month() {
+    return core.int._check(_js_helper.Primitives.getMonth(this));
+  }
+  get day() {
+    return core.int._check(_js_helper.Primitives.getDay(this));
+  }
+  get hour() {
+    return core.int._check(_js_helper.Primitives.getHours(this));
+  }
+  get minute() {
+    return core.int._check(_js_helper.Primitives.getMinutes(this));
+  }
+  get second() {
+    return core.int._check(_js_helper.Primitives.getSeconds(this));
+  }
+  get millisecond() {
+    return core.int._check(_js_helper.Primitives.getMilliseconds(this));
+  }
+  get microsecond() {
+    return 0;
+  }
+  get weekday() {
+    return core.int._check(_js_helper.Primitives.getWeekday(this));
+  }
+  static _microsecondInRoundedMilliseconds(microsecond) {
+    return (dart.notNull(microsecond) / 1000)[dartx.round]();
+  }
+};
+dart.defineNamedConstructor(core.DateTime, 'utc');
+dart.defineNamedConstructor(core.DateTime, 'now');
+dart.defineNamedConstructor(core.DateTime, 'fromMillisecondsSinceEpoch');
+dart.defineNamedConstructor(core.DateTime, 'fromMicrosecondsSinceEpoch');
+dart.defineNamedConstructor(core.DateTime, '_withValue');
+dart.defineNamedConstructor(core.DateTime, '_internal');
+dart.defineNamedConstructor(core.DateTime, '_now');
+core.DateTime[dart.implements] = () => [ComparableOfDateTime()];
+dart.setSignature(core.DateTime, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(core.DateTime, [core.int], [core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
+    utc: dart.definiteFunctionType(core.DateTime, [core.int], [core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
+    now: dart.definiteFunctionType(core.DateTime, []),
+    fromMillisecondsSinceEpoch: dart.definiteFunctionType(core.DateTime, [core.int], {isUtc: core.bool}),
+    fromMicrosecondsSinceEpoch: dart.definiteFunctionType(core.DateTime, [core.int], {isUtc: core.bool}),
+    _withValue: dart.definiteFunctionType(core.DateTime, [core.int], {isUtc: core.bool}),
+    _internal: dart.definiteFunctionType(core.DateTime, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.bool]),
+    _now: dart.definiteFunctionType(core.DateTime, [])
+  }),
+  fields: () => ({
+    [_value$]: core.int,
+    isUtc: core.bool
+  }),
+  getters: () => ({
+    millisecondsSinceEpoch: dart.definiteFunctionType(core.int, []),
+    microsecondsSinceEpoch: dart.definiteFunctionType(core.int, []),
+    timeZoneName: dart.definiteFunctionType(core.String, []),
+    timeZoneOffset: dart.definiteFunctionType(core.Duration, []),
+    year: dart.definiteFunctionType(core.int, []),
+    month: dart.definiteFunctionType(core.int, []),
+    day: dart.definiteFunctionType(core.int, []),
+    hour: dart.definiteFunctionType(core.int, []),
+    minute: dart.definiteFunctionType(core.int, []),
+    second: dart.definiteFunctionType(core.int, []),
+    millisecond: dart.definiteFunctionType(core.int, []),
+    microsecond: dart.definiteFunctionType(core.int, []),
+    weekday: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    isBefore: dart.definiteFunctionType(core.bool, [core.DateTime]),
+    isAfter: dart.definiteFunctionType(core.bool, [core.DateTime]),
+    isAtSameMomentAs: dart.definiteFunctionType(core.bool, [core.DateTime]),
+    compareTo: dart.definiteFunctionType(core.int, [core.DateTime]),
+    toLocal: dart.definiteFunctionType(core.DateTime, []),
+    toUtc: dart.definiteFunctionType(core.DateTime, []),
+    toIso8601String: dart.definiteFunctionType(core.String, []),
+    add: dart.definiteFunctionType(core.DateTime, [core.Duration]),
+    subtract: dart.definiteFunctionType(core.DateTime, [core.Duration]),
+    difference: dart.definiteFunctionType(core.Duration, [core.DateTime])
+  }),
+  sfields: () => ({
+    MONDAY: core.int,
+    TUESDAY: core.int,
+    WEDNESDAY: core.int,
+    THURSDAY: core.int,
+    FRIDAY: core.int,
+    SATURDAY: core.int,
+    SUNDAY: core.int,
+    DAYS_PER_WEEK: core.int,
+    JANUARY: core.int,
+    FEBRUARY: core.int,
+    MARCH: core.int,
+    APRIL: core.int,
+    MAY: core.int,
+    JUNE: core.int,
+    JULY: core.int,
+    AUGUST: core.int,
+    SEPTEMBER: core.int,
+    OCTOBER: core.int,
+    NOVEMBER: core.int,
+    DECEMBER: core.int,
+    MONTHS_PER_YEAR: core.int,
+    _MAX_MILLISECONDS_SINCE_EPOCH: core.int
+  }),
+  statics: () => ({
+    parse: dart.definiteFunctionType(core.DateTime, [core.String]),
+    _fourDigits: dart.definiteFunctionType(core.String, [core.int]),
+    _sixDigits: dart.definiteFunctionType(core.String, [core.int]),
+    _threeDigits: dart.definiteFunctionType(core.String, [core.int]),
+    _twoDigits: dart.definiteFunctionType(core.String, [core.int]),
+    _brokenDownDateToValue: dart.definiteFunctionType(core.int, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.bool]),
+    _microsecondInRoundedMilliseconds: dart.definiteFunctionType(core.int, [core.int])
+  }),
+  names: ['parse', '_fourDigits', '_sixDigits', '_threeDigits', '_twoDigits', '_brokenDownDateToValue', '_microsecondInRoundedMilliseconds']
+});
+dart.defineExtensionMembers(core.DateTime, ['compareTo']);
+core.DateTime.MONDAY = 1;
+core.DateTime.TUESDAY = 2;
+core.DateTime.WEDNESDAY = 3;
+core.DateTime.THURSDAY = 4;
+core.DateTime.FRIDAY = 5;
+core.DateTime.SATURDAY = 6;
+core.DateTime.SUNDAY = 7;
+core.DateTime.DAYS_PER_WEEK = 7;
+core.DateTime.JANUARY = 1;
+core.DateTime.FEBRUARY = 2;
+core.DateTime.MARCH = 3;
+core.DateTime.APRIL = 4;
+core.DateTime.MAY = 5;
+core.DateTime.JUNE = 6;
+core.DateTime.JULY = 7;
+core.DateTime.AUGUST = 8;
+core.DateTime.SEPTEMBER = 9;
+core.DateTime.OCTOBER = 10;
+core.DateTime.NOVEMBER = 11;
+core.DateTime.DECEMBER = 12;
+core.DateTime.MONTHS_PER_YEAR = 12;
+core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
+const _duration = Symbol('_duration');
+core.Duration = class Duration extends core.Object {
+  new(opts) {
+    let days = opts && 'days' in opts ? opts.days : 0;
+    let hours = opts && 'hours' in opts ? opts.hours : 0;
+    let minutes = opts && 'minutes' in opts ? opts.minutes : 0;
+    let seconds = opts && 'seconds' in opts ? opts.seconds : 0;
+    let milliseconds = opts && 'milliseconds' in opts ? opts.milliseconds : 0;
+    let microseconds = opts && 'microseconds' in opts ? opts.microseconds : 0;
+    Duration.prototype._microseconds.call(this, core.Duration.MICROSECONDS_PER_DAY * dart.notNull(days) + core.Duration.MICROSECONDS_PER_HOUR * dart.notNull(hours) + core.Duration.MICROSECONDS_PER_MINUTE * dart.notNull(minutes) + core.Duration.MICROSECONDS_PER_SECOND * dart.notNull(seconds) + core.Duration.MICROSECONDS_PER_MILLISECOND * dart.notNull(milliseconds) + dart.notNull(microseconds));
+  }
+  _microseconds(duration) {
+    this[_duration] = duration;
+  }
+  ['+'](other) {
+    return new core.Duration._microseconds(dart.notNull(this[_duration]) + dart.notNull(other[_duration]));
+  }
+  ['-'](other) {
+    return new core.Duration._microseconds(dart.notNull(this[_duration]) - dart.notNull(other[_duration]));
+  }
+  ['*'](factor) {
+    return new core.Duration._microseconds((dart.notNull(this[_duration]) * dart.notNull(factor))[dartx.round]());
+  }
+  ['~/'](quotient) {
+    if (quotient == 0) dart.throw(new core.IntegerDivisionByZeroException());
+    return new core.Duration._microseconds((dart.notNull(this[_duration]) / dart.notNull(quotient))[dartx.truncate]());
+  }
+  ['<'](other) {
+    return dart.notNull(this[_duration]) < dart.notNull(other[_duration]);
+  }
+  ['>'](other) {
+    return dart.notNull(this[_duration]) > dart.notNull(other[_duration]);
+  }
+  ['<='](other) {
+    return dart.notNull(this[_duration]) <= dart.notNull(other[_duration]);
+  }
+  ['>='](other) {
+    return dart.notNull(this[_duration]) >= dart.notNull(other[_duration]);
+  }
+  get inDays() {
+    return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_DAY)[dartx.truncate]();
+  }
+  get inHours() {
+    return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_HOUR)[dartx.truncate]();
+  }
+  get inMinutes() {
+    return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_MINUTE)[dartx.truncate]();
+  }
+  get inSeconds() {
+    return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_SECOND)[dartx.truncate]();
+  }
+  get inMilliseconds() {
+    return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_MILLISECOND)[dartx.truncate]();
+  }
+  get inMicroseconds() {
+    return this[_duration];
+  }
+  ['=='](other) {
+    if (!core.Duration.is(other)) return false;
+    return dart.equals(this[_duration], dart.dload(other, _duration));
+  }
+  get hashCode() {
+    return dart.hashCode(this[_duration]);
+  }
+  compareTo(other) {
+    return this[_duration][dartx.compareTo](other[_duration]);
+  }
+  toString() {
+    function sixDigits(n) {
+      if (dart.notNull(n) >= 100000) return dart.str`${n}`;
+      if (dart.notNull(n) >= 10000) return dart.str`0${n}`;
+      if (dart.notNull(n) >= 1000) return dart.str`00${n}`;
+      if (dart.notNull(n) >= 100) return dart.str`000${n}`;
+      if (dart.notNull(n) >= 10) return dart.str`0000${n}`;
+      return dart.str`00000${n}`;
+    }
+    dart.fn(sixDigits, intToString());
+    function twoDigits(n) {
       if (dart.notNull(n) >= 10) return dart.str`${n}`;
       return dart.str`0${n}`;
     }
-    toString() {
-      let y = core.DateTime._fourDigits(this.year);
-      let m = core.DateTime._twoDigits(this.month);
-      let d = core.DateTime._twoDigits(this.day);
-      let h = core.DateTime._twoDigits(this.hour);
-      let min = core.DateTime._twoDigits(this.minute);
-      let sec = core.DateTime._twoDigits(this.second);
-      let ms = core.DateTime._threeDigits(this.millisecond);
-      let us = this.microsecond == 0 ? "" : core.DateTime._threeDigits(this.microsecond);
-      if (dart.test(this.isUtc)) {
-        return dart.str`${y}-${m}-${d} ${h}:${min}:${sec}.${ms}${us}Z`;
-      } else {
-        return dart.str`${y}-${m}-${d} ${h}:${min}:${sec}.${ms}${us}`;
+    dart.fn(twoDigits, intToString());
+    if (dart.notNull(this.inMicroseconds) < 0) {
+      return dart.str`-${this._negate()}`;
+    }
+    let twoDigitMinutes = twoDigits(dart.asInt(this.inMinutes[dartx.remainder](core.Duration.MINUTES_PER_HOUR)));
+    let twoDigitSeconds = twoDigits(dart.asInt(this.inSeconds[dartx.remainder](core.Duration.SECONDS_PER_MINUTE)));
+    let sixDigitUs = sixDigits(dart.asInt(this.inMicroseconds[dartx.remainder](core.Duration.MICROSECONDS_PER_SECOND)));
+    return dart.str`${this.inHours}:${twoDigitMinutes}:${twoDigitSeconds}.${sixDigitUs}`;
+  }
+  get isNegative() {
+    return dart.notNull(this[_duration]) < 0;
+  }
+  abs() {
+    return new core.Duration._microseconds(this[_duration][dartx.abs]());
+  }
+  _negate() {
+    return new core.Duration._microseconds(-dart.notNull(this[_duration]));
+  }
+};
+dart.defineNamedConstructor(core.Duration, '_microseconds');
+core.Duration[dart.implements] = () => [ComparableOfDuration()];
+dart.setSignature(core.Duration, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(core.Duration, [], {days: core.int, hours: core.int, minutes: core.int, seconds: core.int, milliseconds: core.int, microseconds: core.int}),
+    _microseconds: dart.definiteFunctionType(core.Duration, [core.int])
+  }),
+  fields: () => ({[_duration]: core.int}),
+  getters: () => ({
+    inDays: dart.definiteFunctionType(core.int, []),
+    inHours: dart.definiteFunctionType(core.int, []),
+    inMinutes: dart.definiteFunctionType(core.int, []),
+    inSeconds: dart.definiteFunctionType(core.int, []),
+    inMilliseconds: dart.definiteFunctionType(core.int, []),
+    inMicroseconds: dart.definiteFunctionType(core.int, []),
+    isNegative: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    '+': dart.definiteFunctionType(core.Duration, [core.Duration]),
+    '-': dart.definiteFunctionType(core.Duration, [core.Duration]),
+    '*': dart.definiteFunctionType(core.Duration, [core.num]),
+    '~/': dart.definiteFunctionType(core.Duration, [core.int]),
+    '<': dart.definiteFunctionType(core.bool, [core.Duration]),
+    '>': dart.definiteFunctionType(core.bool, [core.Duration]),
+    '<=': dart.definiteFunctionType(core.bool, [core.Duration]),
+    '>=': dart.definiteFunctionType(core.bool, [core.Duration]),
+    compareTo: dart.definiteFunctionType(core.int, [core.Duration]),
+    abs: dart.definiteFunctionType(core.Duration, []),
+    _negate: dart.definiteFunctionType(core.Duration, [])
+  }),
+  sfields: () => ({
+    MICROSECONDS_PER_MILLISECOND: core.int,
+    MILLISECONDS_PER_SECOND: core.int,
+    SECONDS_PER_MINUTE: core.int,
+    MINUTES_PER_HOUR: core.int,
+    HOURS_PER_DAY: core.int,
+    MICROSECONDS_PER_SECOND: core.int,
+    MICROSECONDS_PER_MINUTE: core.int,
+    MICROSECONDS_PER_HOUR: core.int,
+    MICROSECONDS_PER_DAY: core.int,
+    MILLISECONDS_PER_MINUTE: core.int,
+    MILLISECONDS_PER_HOUR: core.int,
+    MILLISECONDS_PER_DAY: core.int,
+    SECONDS_PER_HOUR: core.int,
+    SECONDS_PER_DAY: core.int,
+    MINUTES_PER_DAY: core.int,
+    ZERO: core.Duration
+  })
+});
+dart.defineExtensionMembers(core.Duration, ['compareTo']);
+core.Duration.MICROSECONDS_PER_MILLISECOND = 1000;
+core.Duration.MILLISECONDS_PER_SECOND = 1000;
+core.Duration.SECONDS_PER_MINUTE = 60;
+core.Duration.MINUTES_PER_HOUR = 60;
+core.Duration.HOURS_PER_DAY = 24;
+dart.defineLazy(core.Duration, {
+  get MICROSECONDS_PER_SECOND() {
+    return core.Duration.MICROSECONDS_PER_MILLISECOND * core.Duration.MILLISECONDS_PER_SECOND;
+  },
+  get MICROSECONDS_PER_MINUTE() {
+    return core.Duration.MICROSECONDS_PER_SECOND * core.Duration.SECONDS_PER_MINUTE;
+  },
+  get MICROSECONDS_PER_HOUR() {
+    return core.Duration.MICROSECONDS_PER_MINUTE * core.Duration.MINUTES_PER_HOUR;
+  },
+  get MICROSECONDS_PER_DAY() {
+    return core.Duration.MICROSECONDS_PER_HOUR * core.Duration.HOURS_PER_DAY;
+  },
+  get MILLISECONDS_PER_MINUTE() {
+    return core.Duration.MILLISECONDS_PER_SECOND * core.Duration.SECONDS_PER_MINUTE;
+  },
+  get MILLISECONDS_PER_HOUR() {
+    return core.Duration.MILLISECONDS_PER_MINUTE * core.Duration.MINUTES_PER_HOUR;
+  },
+  get MILLISECONDS_PER_DAY() {
+    return core.Duration.MILLISECONDS_PER_HOUR * core.Duration.HOURS_PER_DAY;
+  },
+  get SECONDS_PER_HOUR() {
+    return core.Duration.SECONDS_PER_MINUTE * core.Duration.MINUTES_PER_HOUR;
+  },
+  get SECONDS_PER_DAY() {
+    return core.Duration.SECONDS_PER_HOUR * core.Duration.HOURS_PER_DAY;
+  },
+  get MINUTES_PER_DAY() {
+    return core.Duration.MINUTES_PER_HOUR * core.Duration.HOURS_PER_DAY;
+  },
+  get ZERO() {
+    return dart.const(new core.Duration({seconds: 0}));
+  }
+});
+core.TypeError = class TypeError extends core.AssertionError {
+  new() {
+    super.new();
+  }
+};
+core.CastError = class CastError extends core.Error {
+  new() {
+    super.new();
+  }
+};
+core.NullThrownError = class NullThrownError extends core.Error {
+  new() {
+    super.new();
+  }
+  toString() {
+    return "Throw of null.";
+  }
+};
+const _hasValue = Symbol('_hasValue');
+const _errorName = Symbol('_errorName');
+const _errorExplanation = Symbol('_errorExplanation');
+core.ArgumentError = class ArgumentError extends core.Error {
+  new(message) {
+    if (message === void 0) message = null;
+    this.message = message;
+    this.invalidValue = null;
+    this[_hasValue] = false;
+    this.name = null;
+    super.new();
+  }
+  value(value, name, message) {
+    if (name === void 0) name = null;
+    if (message === void 0) message = null;
+    this.name = name;
+    this.message = message;
+    this.invalidValue = value;
+    this[_hasValue] = true;
+    super.new();
+  }
+  notNull(name) {
+    if (name === void 0) name = null;
+    this.name = name;
+    this[_hasValue] = false;
+    this.message = "Must not be null";
+    this.invalidValue = null;
+    super.new();
+  }
+  get [_errorName]() {
+    return dart.str`Invalid argument${!dart.test(this[_hasValue]) ? "(s)" : ""}`;
+  }
+  get [_errorExplanation]() {
+    return "";
+  }
+  toString() {
+    let nameString = "";
+    if (this.name != null) {
+      nameString = dart.str` (${this.name})`;
+    }
+    let message = this.message == null ? "" : dart.str`: ${this.message}`;
+    let prefix = dart.str`${this[_errorName]}${nameString}${message}`;
+    if (!dart.test(this[_hasValue])) return prefix;
+    let explanation = this[_errorExplanation];
+    let errorValue = core.Error.safeToString(this.invalidValue);
+    return dart.str`${prefix}${explanation}: ${errorValue}`;
+  }
+};
+dart.defineNamedConstructor(core.ArgumentError, 'value');
+dart.defineNamedConstructor(core.ArgumentError, 'notNull');
+dart.setSignature(core.ArgumentError, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(core.ArgumentError, [], [dart.dynamic]),
+    value: dart.definiteFunctionType(core.ArgumentError, [dart.dynamic], [core.String, core.String]),
+    notNull: dart.definiteFunctionType(core.ArgumentError, [], [core.String])
+  }),
+  fields: () => ({
+    [_hasValue]: core.bool,
+    invalidValue: dart.dynamic,
+    name: core.String,
+    message: dart.dynamic
+  }),
+  getters: () => ({
+    [_errorName]: dart.definiteFunctionType(core.String, []),
+    [_errorExplanation]: dart.definiteFunctionType(core.String, [])
+  })
+});
+core.RangeError = class RangeError extends core.ArgumentError {
+  new(message) {
+    this.start = null;
+    this.end = null;
+    super.new(message);
+  }
+  value(value, name, message) {
+    if (name === void 0) name = null;
+    if (message === void 0) message = null;
+    this.start = null;
+    this.end = null;
+    super.value(value, name, message != null ? message : "Value not in range");
+  }
+  range(invalidValue, minValue, maxValue, name, message) {
+    if (name === void 0) name = null;
+    if (message === void 0) message = null;
+    this.start = minValue;
+    this.end = maxValue;
+    super.value(invalidValue, name, message != null ? message : "Invalid value");
+  }
+  static index(index, indexable, name, message, length) {
+    return new core.IndexError(index, indexable, name, message, length);
+  }
+  static checkValueInInterval(value, minValue, maxValue, name, message) {
+    if (name === void 0) name = null;
+    if (message === void 0) message = null;
+    if (dart.notNull(value) < dart.notNull(minValue) || dart.notNull(value) > dart.notNull(maxValue)) {
+      dart.throw(new core.RangeError.range(value, minValue, maxValue, name, message));
+    }
+  }
+  static checkValidIndex(index, indexable, name, length, message) {
+    if (name === void 0) name = null;
+    if (length === void 0) length = null;
+    if (message === void 0) message = null;
+    if (length == null) length = core.int._check(dart.dload(indexable, 'length'));
+    if (0 > dart.notNull(index) || dart.notNull(index) >= dart.notNull(length)) {
+      if (name == null) name = "index";
+      dart.throw(core.RangeError.index(index, indexable, name, message, length));
+    }
+  }
+  static checkValidRange(start, end, length, startName, endName, message) {
+    if (startName === void 0) startName = null;
+    if (endName === void 0) endName = null;
+    if (message === void 0) message = null;
+    if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(length)) {
+      if (startName == null) startName = "start";
+      dart.throw(new core.RangeError.range(start, 0, length, startName, message));
+    }
+    if (end != null) {
+      if (dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length)) {
+        if (endName == null) endName = "end";
+        dart.throw(new core.RangeError.range(end, start, length, endName, message));
       }
+      return end;
     }
-    toIso8601String() {
-      let y = dart.notNull(this.year) >= -9999 && dart.notNull(this.year) <= 9999 ? core.DateTime._fourDigits(this.year) : core.DateTime._sixDigits(this.year);
-      let m = core.DateTime._twoDigits(this.month);
-      let d = core.DateTime._twoDigits(this.day);
-      let h = core.DateTime._twoDigits(this.hour);
-      let min = core.DateTime._twoDigits(this.minute);
-      let sec = core.DateTime._twoDigits(this.second);
-      let ms = core.DateTime._threeDigits(this.millisecond);
-      let us = this.microsecond == 0 ? "" : core.DateTime._threeDigits(this.microsecond);
-      if (dart.test(this.isUtc)) {
-        return dart.str`${y}-${m}-${d}T${h}:${min}:${sec}.${ms}${us}Z`;
-      } else {
-        return dart.str`${y}-${m}-${d}T${h}:${min}:${sec}.${ms}${us}`;
+    return length;
+  }
+  static checkNotNegative(value, name, message) {
+    if (name === void 0) name = null;
+    if (message === void 0) message = null;
+    if (dart.notNull(value) < 0) dart.throw(new core.RangeError.range(value, 0, null, name, message));
+  }
+  get [_errorName]() {
+    return "RangeError";
+  }
+  get [_errorExplanation]() {
+    dart.assert(this[_hasValue]);
+    let explanation = "";
+    if (this.start == null) {
+      if (this.end != null) {
+        explanation = dart.str`: Not less than or equal to ${this.end}`;
       }
-    }
-    add(duration) {
-      return new core.DateTime._withValue(dart.notNull(this[_value$]) + dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
-    }
-    subtract(duration) {
-      return new core.DateTime._withValue(dart.notNull(this[_value$]) - dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
-    }
-    difference(other) {
-      return new core.Duration({milliseconds: dart.notNull(this[_value$]) - dart.notNull(other[_value$])});
-    }
-    _internal(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
-      this.isUtc = typeof isUtc == 'boolean' ? isUtc : dart.throw(new core.ArgumentError.value(isUtc, 'isUtc'));
-      this[_value$] = core.int._check(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc)));
-    }
-    _now() {
-      this.isUtc = false;
-      this[_value$] = _js_helper.Primitives.dateNow();
-    }
-    static _brokenDownDateToValue(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
-      return dart.asInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc));
-    }
-    get millisecondsSinceEpoch() {
-      return this[_value$];
-    }
-    get microsecondsSinceEpoch() {
-      return dart.notNull(this[_value$]) * 1000;
-    }
-    get timeZoneName() {
-      if (dart.test(this.isUtc)) return "UTC";
-      return _js_helper.Primitives.getTimeZoneName(this);
-    }
-    get timeZoneOffset() {
-      if (dart.test(this.isUtc)) return new core.Duration();
-      return new core.Duration({minutes: _js_helper.Primitives.getTimeZoneOffsetInMinutes(this)});
-    }
-    get year() {
-      return core.int._check(_js_helper.Primitives.getYear(this));
-    }
-    get month() {
-      return core.int._check(_js_helper.Primitives.getMonth(this));
-    }
-    get day() {
-      return core.int._check(_js_helper.Primitives.getDay(this));
-    }
-    get hour() {
-      return core.int._check(_js_helper.Primitives.getHours(this));
-    }
-    get minute() {
-      return core.int._check(_js_helper.Primitives.getMinutes(this));
-    }
-    get second() {
-      return core.int._check(_js_helper.Primitives.getSeconds(this));
-    }
-    get millisecond() {
-      return core.int._check(_js_helper.Primitives.getMilliseconds(this));
-    }
-    get microsecond() {
-      return 0;
-    }
-    get weekday() {
-      return core.int._check(_js_helper.Primitives.getWeekday(this));
-    }
-    static _microsecondInRoundedMilliseconds(microsecond) {
-      return (dart.notNull(microsecond) / 1000)[dartx.round]();
-    }
-  };
-  dart.defineNamedConstructor(core.DateTime, 'utc');
-  dart.defineNamedConstructor(core.DateTime, 'now');
-  dart.defineNamedConstructor(core.DateTime, 'fromMillisecondsSinceEpoch');
-  dart.defineNamedConstructor(core.DateTime, 'fromMicrosecondsSinceEpoch');
-  dart.defineNamedConstructor(core.DateTime, '_withValue');
-  dart.defineNamedConstructor(core.DateTime, '_internal');
-  dart.defineNamedConstructor(core.DateTime, '_now');
-  core.DateTime[dart.implements] = () => [ComparableOfDateTime()];
-  dart.setSignature(core.DateTime, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(core.DateTime, [core.int], [core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
-      utc: dart.definiteFunctionType(core.DateTime, [core.int], [core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
-      now: dart.definiteFunctionType(core.DateTime, []),
-      fromMillisecondsSinceEpoch: dart.definiteFunctionType(core.DateTime, [core.int], {isUtc: core.bool}),
-      fromMicrosecondsSinceEpoch: dart.definiteFunctionType(core.DateTime, [core.int], {isUtc: core.bool}),
-      _withValue: dart.definiteFunctionType(core.DateTime, [core.int], {isUtc: core.bool}),
-      _internal: dart.definiteFunctionType(core.DateTime, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.bool]),
-      _now: dart.definiteFunctionType(core.DateTime, [])
-    }),
-    fields: () => ({
-      [_value$]: core.int,
-      isUtc: core.bool
-    }),
-    getters: () => ({
-      millisecondsSinceEpoch: dart.definiteFunctionType(core.int, []),
-      microsecondsSinceEpoch: dart.definiteFunctionType(core.int, []),
-      timeZoneName: dart.definiteFunctionType(core.String, []),
-      timeZoneOffset: dart.definiteFunctionType(core.Duration, []),
-      year: dart.definiteFunctionType(core.int, []),
-      month: dart.definiteFunctionType(core.int, []),
-      day: dart.definiteFunctionType(core.int, []),
-      hour: dart.definiteFunctionType(core.int, []),
-      minute: dart.definiteFunctionType(core.int, []),
-      second: dart.definiteFunctionType(core.int, []),
-      millisecond: dart.definiteFunctionType(core.int, []),
-      microsecond: dart.definiteFunctionType(core.int, []),
-      weekday: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      isBefore: dart.definiteFunctionType(core.bool, [core.DateTime]),
-      isAfter: dart.definiteFunctionType(core.bool, [core.DateTime]),
-      isAtSameMomentAs: dart.definiteFunctionType(core.bool, [core.DateTime]),
-      compareTo: dart.definiteFunctionType(core.int, [core.DateTime]),
-      toLocal: dart.definiteFunctionType(core.DateTime, []),
-      toUtc: dart.definiteFunctionType(core.DateTime, []),
-      toIso8601String: dart.definiteFunctionType(core.String, []),
-      add: dart.definiteFunctionType(core.DateTime, [core.Duration]),
-      subtract: dart.definiteFunctionType(core.DateTime, [core.Duration]),
-      difference: dart.definiteFunctionType(core.Duration, [core.DateTime])
-    }),
-    sfields: () => ({
-      MONDAY: core.int,
-      TUESDAY: core.int,
-      WEDNESDAY: core.int,
-      THURSDAY: core.int,
-      FRIDAY: core.int,
-      SATURDAY: core.int,
-      SUNDAY: core.int,
-      DAYS_PER_WEEK: core.int,
-      JANUARY: core.int,
-      FEBRUARY: core.int,
-      MARCH: core.int,
-      APRIL: core.int,
-      MAY: core.int,
-      JUNE: core.int,
-      JULY: core.int,
-      AUGUST: core.int,
-      SEPTEMBER: core.int,
-      OCTOBER: core.int,
-      NOVEMBER: core.int,
-      DECEMBER: core.int,
-      MONTHS_PER_YEAR: core.int,
-      _MAX_MILLISECONDS_SINCE_EPOCH: core.int
-    }),
-    statics: () => ({
-      parse: dart.definiteFunctionType(core.DateTime, [core.String]),
-      _fourDigits: dart.definiteFunctionType(core.String, [core.int]),
-      _sixDigits: dart.definiteFunctionType(core.String, [core.int]),
-      _threeDigits: dart.definiteFunctionType(core.String, [core.int]),
-      _twoDigits: dart.definiteFunctionType(core.String, [core.int]),
-      _brokenDownDateToValue: dart.definiteFunctionType(core.int, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.bool]),
-      _microsecondInRoundedMilliseconds: dart.definiteFunctionType(core.int, [core.int])
-    }),
-    names: ['parse', '_fourDigits', '_sixDigits', '_threeDigits', '_twoDigits', '_brokenDownDateToValue', '_microsecondInRoundedMilliseconds']
-  });
-  dart.defineExtensionMembers(core.DateTime, ['compareTo']);
-  core.DateTime.MONDAY = 1;
-  core.DateTime.TUESDAY = 2;
-  core.DateTime.WEDNESDAY = 3;
-  core.DateTime.THURSDAY = 4;
-  core.DateTime.FRIDAY = 5;
-  core.DateTime.SATURDAY = 6;
-  core.DateTime.SUNDAY = 7;
-  core.DateTime.DAYS_PER_WEEK = 7;
-  core.DateTime.JANUARY = 1;
-  core.DateTime.FEBRUARY = 2;
-  core.DateTime.MARCH = 3;
-  core.DateTime.APRIL = 4;
-  core.DateTime.MAY = 5;
-  core.DateTime.JUNE = 6;
-  core.DateTime.JULY = 7;
-  core.DateTime.AUGUST = 8;
-  core.DateTime.SEPTEMBER = 9;
-  core.DateTime.OCTOBER = 10;
-  core.DateTime.NOVEMBER = 11;
-  core.DateTime.DECEMBER = 12;
-  core.DateTime.MONTHS_PER_YEAR = 12;
-  core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000;
-  const _duration = Symbol('_duration');
-  core.Duration = class Duration extends core.Object {
-    new(opts) {
-      let days = opts && 'days' in opts ? opts.days : 0;
-      let hours = opts && 'hours' in opts ? opts.hours : 0;
-      let minutes = opts && 'minutes' in opts ? opts.minutes : 0;
-      let seconds = opts && 'seconds' in opts ? opts.seconds : 0;
-      let milliseconds = opts && 'milliseconds' in opts ? opts.milliseconds : 0;
-      let microseconds = opts && 'microseconds' in opts ? opts.microseconds : 0;
-      Duration.prototype._microseconds.call(this, core.Duration.MICROSECONDS_PER_DAY * dart.notNull(days) + core.Duration.MICROSECONDS_PER_HOUR * dart.notNull(hours) + core.Duration.MICROSECONDS_PER_MINUTE * dart.notNull(minutes) + core.Duration.MICROSECONDS_PER_SECOND * dart.notNull(seconds) + core.Duration.MICROSECONDS_PER_MILLISECOND * dart.notNull(milliseconds) + dart.notNull(microseconds));
-    }
-    _microseconds(duration) {
-      this[_duration] = duration;
-    }
-    ['+'](other) {
-      return new core.Duration._microseconds(dart.notNull(this[_duration]) + dart.notNull(other[_duration]));
-    }
-    ['-'](other) {
-      return new core.Duration._microseconds(dart.notNull(this[_duration]) - dart.notNull(other[_duration]));
-    }
-    ['*'](factor) {
-      return new core.Duration._microseconds((dart.notNull(this[_duration]) * dart.notNull(factor))[dartx.round]());
-    }
-    ['~/'](quotient) {
-      if (quotient == 0) dart.throw(new core.IntegerDivisionByZeroException());
-      return new core.Duration._microseconds((dart.notNull(this[_duration]) / dart.notNull(quotient))[dartx.truncate]());
-    }
-    ['<'](other) {
-      return dart.notNull(this[_duration]) < dart.notNull(other[_duration]);
-    }
-    ['>'](other) {
-      return dart.notNull(this[_duration]) > dart.notNull(other[_duration]);
-    }
-    ['<='](other) {
-      return dart.notNull(this[_duration]) <= dart.notNull(other[_duration]);
-    }
-    ['>='](other) {
-      return dart.notNull(this[_duration]) >= dart.notNull(other[_duration]);
-    }
-    get inDays() {
-      return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_DAY)[dartx.truncate]();
-    }
-    get inHours() {
-      return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_HOUR)[dartx.truncate]();
-    }
-    get inMinutes() {
-      return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_MINUTE)[dartx.truncate]();
-    }
-    get inSeconds() {
-      return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_SECOND)[dartx.truncate]();
-    }
-    get inMilliseconds() {
-      return (dart.notNull(this[_duration]) / core.Duration.MICROSECONDS_PER_MILLISECOND)[dartx.truncate]();
-    }
-    get inMicroseconds() {
-      return this[_duration];
-    }
-    ['=='](other) {
-      if (!core.Duration.is(other)) return false;
-      return dart.equals(this[_duration], dart.dload(other, _duration));
-    }
-    get hashCode() {
-      return dart.hashCode(this[_duration]);
-    }
-    compareTo(other) {
-      return this[_duration][dartx.compareTo](other[_duration]);
-    }
-    toString() {
-      function sixDigits(n) {
-        if (dart.notNull(n) >= 100000) return dart.str`${n}`;
-        if (dart.notNull(n) >= 10000) return dart.str`0${n}`;
-        if (dart.notNull(n) >= 1000) return dart.str`00${n}`;
-        if (dart.notNull(n) >= 100) return dart.str`000${n}`;
-        if (dart.notNull(n) >= 10) return dart.str`0000${n}`;
-        return dart.str`00000${n}`;
-      }
-      dart.fn(sixDigits, intToString());
-      function twoDigits(n) {
-        if (dart.notNull(n) >= 10) return dart.str`${n}`;
-        return dart.str`0${n}`;
-      }
-      dart.fn(twoDigits, intToString());
-      if (dart.notNull(this.inMicroseconds) < 0) {
-        return dart.str`-${this._negate()}`;
-      }
-      let twoDigitMinutes = twoDigits(dart.asInt(this.inMinutes[dartx.remainder](core.Duration.MINUTES_PER_HOUR)));
-      let twoDigitSeconds = twoDigits(dart.asInt(this.inSeconds[dartx.remainder](core.Duration.SECONDS_PER_MINUTE)));
-      let sixDigitUs = sixDigits(dart.asInt(this.inMicroseconds[dartx.remainder](core.Duration.MICROSECONDS_PER_SECOND)));
-      return dart.str`${this.inHours}:${twoDigitMinutes}:${twoDigitSeconds}.${sixDigitUs}`;
-    }
-    get isNegative() {
-      return dart.notNull(this[_duration]) < 0;
-    }
-    abs() {
-      return new core.Duration._microseconds(this[_duration][dartx.abs]());
-    }
-    _negate() {
-      return new core.Duration._microseconds(-dart.notNull(this[_duration]));
-    }
-  };
-  dart.defineNamedConstructor(core.Duration, '_microseconds');
-  core.Duration[dart.implements] = () => [ComparableOfDuration()];
-  dart.setSignature(core.Duration, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(core.Duration, [], {days: core.int, hours: core.int, minutes: core.int, seconds: core.int, milliseconds: core.int, microseconds: core.int}),
-      _microseconds: dart.definiteFunctionType(core.Duration, [core.int])
-    }),
-    fields: () => ({[_duration]: core.int}),
-    getters: () => ({
-      inDays: dart.definiteFunctionType(core.int, []),
-      inHours: dart.definiteFunctionType(core.int, []),
-      inMinutes: dart.definiteFunctionType(core.int, []),
-      inSeconds: dart.definiteFunctionType(core.int, []),
-      inMilliseconds: dart.definiteFunctionType(core.int, []),
-      inMicroseconds: dart.definiteFunctionType(core.int, []),
-      isNegative: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      '+': dart.definiteFunctionType(core.Duration, [core.Duration]),
-      '-': dart.definiteFunctionType(core.Duration, [core.Duration]),
-      '*': dart.definiteFunctionType(core.Duration, [core.num]),
-      '~/': dart.definiteFunctionType(core.Duration, [core.int]),
-      '<': dart.definiteFunctionType(core.bool, [core.Duration]),
-      '>': dart.definiteFunctionType(core.bool, [core.Duration]),
-      '<=': dart.definiteFunctionType(core.bool, [core.Duration]),
-      '>=': dart.definiteFunctionType(core.bool, [core.Duration]),
-      compareTo: dart.definiteFunctionType(core.int, [core.Duration]),
-      abs: dart.definiteFunctionType(core.Duration, []),
-      _negate: dart.definiteFunctionType(core.Duration, [])
-    }),
-    sfields: () => ({
-      MICROSECONDS_PER_MILLISECOND: core.int,
-      MILLISECONDS_PER_SECOND: core.int,
-      SECONDS_PER_MINUTE: core.int,
-      MINUTES_PER_HOUR: core.int,
-      HOURS_PER_DAY: core.int,
-      MICROSECONDS_PER_SECOND: core.int,
-      MICROSECONDS_PER_MINUTE: core.int,
-      MICROSECONDS_PER_HOUR: core.int,
-      MICROSECONDS_PER_DAY: core.int,
-      MILLISECONDS_PER_MINUTE: core.int,
-      MILLISECONDS_PER_HOUR: core.int,
-      MILLISECONDS_PER_DAY: core.int,
-      SECONDS_PER_HOUR: core.int,
-      SECONDS_PER_DAY: core.int,
-      MINUTES_PER_DAY: core.int,
-      ZERO: core.Duration
-    })
-  });
-  dart.defineExtensionMembers(core.Duration, ['compareTo']);
-  core.Duration.MICROSECONDS_PER_MILLISECOND = 1000;
-  core.Duration.MILLISECONDS_PER_SECOND = 1000;
-  core.Duration.SECONDS_PER_MINUTE = 60;
-  core.Duration.MINUTES_PER_HOUR = 60;
-  core.Duration.HOURS_PER_DAY = 24;
-  dart.defineLazy(core.Duration, {
-    get MICROSECONDS_PER_SECOND() {
-      return core.Duration.MICROSECONDS_PER_MILLISECOND * core.Duration.MILLISECONDS_PER_SECOND;
-    },
-    get MICROSECONDS_PER_MINUTE() {
-      return core.Duration.MICROSECONDS_PER_SECOND * core.Duration.SECONDS_PER_MINUTE;
-    },
-    get MICROSECONDS_PER_HOUR() {
-      return core.Duration.MICROSECONDS_PER_MINUTE * core.Duration.MINUTES_PER_HOUR;
-    },
-    get MICROSECONDS_PER_DAY() {
-      return core.Duration.MICROSECONDS_PER_HOUR * core.Duration.HOURS_PER_DAY;
-    },
-    get MILLISECONDS_PER_MINUTE() {
-      return core.Duration.MILLISECONDS_PER_SECOND * core.Duration.SECONDS_PER_MINUTE;
-    },
-    get MILLISECONDS_PER_HOUR() {
-      return core.Duration.MILLISECONDS_PER_MINUTE * core.Duration.MINUTES_PER_HOUR;
-    },
-    get MILLISECONDS_PER_DAY() {
-      return core.Duration.MILLISECONDS_PER_HOUR * core.Duration.HOURS_PER_DAY;
-    },
-    get SECONDS_PER_HOUR() {
-      return core.Duration.SECONDS_PER_MINUTE * core.Duration.MINUTES_PER_HOUR;
-    },
-    get SECONDS_PER_DAY() {
-      return core.Duration.SECONDS_PER_HOUR * core.Duration.HOURS_PER_DAY;
-    },
-    get MINUTES_PER_DAY() {
-      return core.Duration.MINUTES_PER_HOUR * core.Duration.HOURS_PER_DAY;
-    },
-    get ZERO() {
-      return dart.const(new core.Duration({seconds: 0}));
-    }
-  });
-  core.TypeError = class TypeError extends core.AssertionError {
-    new() {
-      super.new();
-    }
-  };
-  core.CastError = class CastError extends core.Error {
-    new() {
-      super.new();
-    }
-  };
-  core.NullThrownError = class NullThrownError extends core.Error {
-    new() {
-      super.new();
-    }
-    toString() {
-      return "Throw of null.";
-    }
-  };
-  const _hasValue = Symbol('_hasValue');
-  const _errorName = Symbol('_errorName');
-  const _errorExplanation = Symbol('_errorExplanation');
-  core.ArgumentError = class ArgumentError extends core.Error {
-    new(message) {
-      if (message === void 0) message = null;
-      this.message = message;
-      this.invalidValue = null;
-      this[_hasValue] = false;
-      this.name = null;
-      super.new();
-    }
-    value(value, name, message) {
-      if (name === void 0) name = null;
-      if (message === void 0) message = null;
-      this.name = name;
-      this.message = message;
-      this.invalidValue = value;
-      this[_hasValue] = true;
-      super.new();
-    }
-    notNull(name) {
-      if (name === void 0) name = null;
-      this.name = name;
-      this[_hasValue] = false;
-      this.message = "Must not be null";
-      this.invalidValue = null;
-      super.new();
-    }
-    get [_errorName]() {
-      return dart.str`Invalid argument${!dart.test(this[_hasValue]) ? "(s)" : ""}`;
-    }
-    get [_errorExplanation]() {
-      return "";
-    }
-    toString() {
-      let nameString = "";
-      if (this.name != null) {
-        nameString = dart.str` (${this.name})`;
-      }
-      let message = this.message == null ? "" : dart.str`: ${this.message}`;
-      let prefix = dart.str`${this[_errorName]}${nameString}${message}`;
-      if (!dart.test(this[_hasValue])) return prefix;
-      let explanation = this[_errorExplanation];
-      let errorValue = core.Error.safeToString(this.invalidValue);
-      return dart.str`${prefix}${explanation}: ${errorValue}`;
-    }
-  };
-  dart.defineNamedConstructor(core.ArgumentError, 'value');
-  dart.defineNamedConstructor(core.ArgumentError, 'notNull');
-  dart.setSignature(core.ArgumentError, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(core.ArgumentError, [], [dart.dynamic]),
-      value: dart.definiteFunctionType(core.ArgumentError, [dart.dynamic], [core.String, core.String]),
-      notNull: dart.definiteFunctionType(core.ArgumentError, [], [core.String])
-    }),
-    fields: () => ({
-      [_hasValue]: core.bool,
-      invalidValue: dart.dynamic,
-      name: core.String,
-      message: dart.dynamic
-    }),
-    getters: () => ({
-      [_errorName]: dart.definiteFunctionType(core.String, []),
-      [_errorExplanation]: dart.definiteFunctionType(core.String, [])
-    })
-  });
-  core.RangeError = class RangeError extends core.ArgumentError {
-    new(message) {
-      this.start = null;
-      this.end = null;
-      super.new(message);
-    }
-    value(value, name, message) {
-      if (name === void 0) name = null;
-      if (message === void 0) message = null;
-      this.start = null;
-      this.end = null;
-      super.value(value, name, message != null ? message : "Value not in range");
-    }
-    range(invalidValue, minValue, maxValue, name, message) {
-      if (name === void 0) name = null;
-      if (message === void 0) message = null;
-      this.start = minValue;
-      this.end = maxValue;
-      super.value(invalidValue, name, message != null ? message : "Invalid value");
-    }
-    static index(index, indexable, name, message, length) {
-      return new core.IndexError(index, indexable, name, message, length);
-    }
-    static checkValueInInterval(value, minValue, maxValue, name, message) {
-      if (name === void 0) name = null;
-      if (message === void 0) message = null;
-      if (dart.notNull(value) < dart.notNull(minValue) || dart.notNull(value) > dart.notNull(maxValue)) {
-        dart.throw(new core.RangeError.range(value, minValue, maxValue, name, message));
-      }
-    }
-    static checkValidIndex(index, indexable, name, length, message) {
-      if (name === void 0) name = null;
-      if (length === void 0) length = null;
-      if (message === void 0) message = null;
-      if (length == null) length = core.int._check(dart.dload(indexable, 'length'));
-      if (0 > dart.notNull(index) || dart.notNull(index) >= dart.notNull(length)) {
-        if (name == null) name = "index";
-        dart.throw(core.RangeError.index(index, indexable, name, message, length));
-      }
-    }
-    static checkValidRange(start, end, length, startName, endName, message) {
-      if (startName === void 0) startName = null;
-      if (endName === void 0) endName = null;
-      if (message === void 0) message = null;
-      if (0 > dart.notNull(start) || dart.notNull(start) > dart.notNull(length)) {
-        if (startName == null) startName = "start";
-        dart.throw(new core.RangeError.range(start, 0, length, startName, message));
-      }
-      if (end != null) {
-        if (dart.notNull(start) > dart.notNull(end) || dart.notNull(end) > dart.notNull(length)) {
-          if (endName == null) endName = "end";
-          dart.throw(new core.RangeError.range(end, start, length, endName, message));
-        }
-        return end;
-      }
-      return length;
-    }
-    static checkNotNegative(value, name, message) {
-      if (name === void 0) name = null;
-      if (message === void 0) message = null;
-      if (dart.notNull(value) < 0) dart.throw(new core.RangeError.range(value, 0, null, name, message));
-    }
-    get [_errorName]() {
-      return "RangeError";
-    }
-    get [_errorExplanation]() {
-      dart.assert(this[_hasValue]);
-      let explanation = "";
-      if (this.start == null) {
-        if (this.end != null) {
-          explanation = dart.str`: Not less than or equal to ${this.end}`;
-        }
-      } else if (this.end == null) {
-        explanation = dart.str`: Not greater than or equal to ${this.start}`;
-      } else if (dart.notNull(this.end) > dart.notNull(this.start)) {
-        explanation = dart.str`: Not in range ${this.start}..${this.end}, inclusive`;
-      } else if (dart.notNull(this.end) < dart.notNull(this.start)) {
-        explanation = ": Valid value range is empty";
-      } else {
-        explanation = dart.str`: Only valid value is ${this.start}`;
-      }
-      return explanation;
-    }
-  };
-  dart.defineNamedConstructor(core.RangeError, 'value');
-  dart.defineNamedConstructor(core.RangeError, 'range');
-  dart.setSignature(core.RangeError, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(core.RangeError, [dart.dynamic]),
-      value: dart.definiteFunctionType(core.RangeError, [core.num], [core.String, core.String]),
-      range: dart.definiteFunctionType(core.RangeError, [core.num, core.int, core.int], [core.String, core.String]),
-      index: dart.definiteFunctionType(core.RangeError, [core.int, dart.dynamic], [core.String, core.String, core.int])
-    }),
-    fields: () => ({
-      start: core.num,
-      end: core.num
-    }),
-    statics: () => ({
-      checkValueInInterval: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.String, core.String]),
-      checkValidIndex: dart.definiteFunctionType(dart.void, [core.int, dart.dynamic], [core.String, core.int, core.String]),
-      checkValidRange: dart.definiteFunctionType(core.int, [core.int, core.int, core.int], [core.String, core.String, core.String]),
-      checkNotNegative: dart.definiteFunctionType(dart.void, [core.int], [core.String, core.String])
-    }),
-    names: ['checkValueInInterval', 'checkValidIndex', 'checkValidRange', 'checkNotNegative']
-  });
-  core.IndexError = class IndexError extends core.ArgumentError {
-    new(invalidValue, indexable, name, message, length) {
-      if (name === void 0) name = null;
-      if (message === void 0) message = null;
-      if (length === void 0) length = null;
-      this.indexable = indexable;
-      this.length = core.int._check(length != null ? length : dart.dload(indexable, 'length'));
-      super.value(invalidValue, name, message != null ? message : "Index out of range");
-    }
-    get start() {
-      return 0;
-    }
-    get end() {
-      return dart.notNull(this.length) - 1;
-    }
-    get [_errorName]() {
-      return "RangeError";
-    }
-    get [_errorExplanation]() {
-      dart.assert(this[_hasValue]);
-      if (dart.test(dart.dsend(this.invalidValue, '<', 0))) {
-        return ": index must not be negative";
-      }
-      if (this.length == 0) {
-        return ": no indices are valid";
-      }
-      return dart.str`: index should be less than ${this.length}`;
-    }
-  };
-  core.IndexError[dart.implements] = () => [core.RangeError];
-  dart.setSignature(core.IndexError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.IndexError, [core.int, dart.dynamic], [core.String, core.String, core.int])}),
-    fields: () => ({
-      indexable: dart.dynamic,
-      length: core.int
-    }),
-    getters: () => ({
-      start: dart.definiteFunctionType(core.int, []),
-      end: dart.definiteFunctionType(core.int, [])
-    })
-  });
-  const _className = Symbol('_className');
-  core.AbstractClassInstantiationError = class AbstractClassInstantiationError extends core.Error {
-    new(className) {
-      this[_className] = className;
-      super.new();
-    }
-    toString() {
-      return dart.str`Cannot instantiate abstract class: '${this[_className]}'`;
-    }
-  };
-  dart.setSignature(core.AbstractClassInstantiationError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.AbstractClassInstantiationError, [core.String])}),
-    fields: () => ({[_className]: core.String})
-  });
-  const _receiver$ = Symbol('_receiver');
-  const _memberName = Symbol('_memberName');
-  const _arguments = Symbol('_arguments');
-  const _namedArguments = Symbol('_namedArguments');
-  const _existingArgumentNames = Symbol('_existingArgumentNames');
-  core.NoSuchMethodError = class NoSuchMethodError extends core.Error {
-    new(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames) {
-      if (existingArgumentNames === void 0) existingArgumentNames = null;
-      this[_receiver$] = receiver;
-      this[_memberName] = memberName;
-      this[_arguments] = positionalArguments;
-      this[_namedArguments] = namedArguments;
-      this[_existingArgumentNames] = existingArgumentNames;
-      super.new();
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      let i = 0;
-      if (this[_arguments] != null) {
-        for (; i < dart.notNull(this[_arguments][dartx.length]); i++) {
-          if (i > 0) {
-            sb.write(", ");
-          }
-          sb.write(core.Error.safeToString(this[_arguments][dartx._get](i)));
-        }
-      }
-      if (this[_namedArguments] != null) {
-        this[_namedArguments][dartx.forEach](dart.fn((key, value) => {
-          if (i > 0) {
-            sb.write(", ");
-          }
-          sb.write(core._symbolToString(key));
-          sb.write(": ");
-          sb.write(core.Error.safeToString(value));
-          i++;
-        }, SymbolAnddynamicToNull()));
-      }
-      if (this[_existingArgumentNames] == null) {
-        return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Arguments: [${sb}]`;
-      } else {
-        let actualParameters = sb.toString();
-        sb = new core.StringBuffer();
-        for (let i = 0; i < dart.notNull(this[_existingArgumentNames][dartx.length]); i++) {
-          if (i > 0) {
-            sb.write(", ");
-          }
-          sb.write(this[_existingArgumentNames][dartx._get](i));
-        }
-        let formalParameters = sb.toString();
-        return "NoSuchMethodError: incorrect number of arguments passed to " + dart.str`method named '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Tried calling: ${this[_memberName]}(${actualParameters})\n` + dart.str`Found: ${this[_memberName]}(${formalParameters})`;
-      }
-    }
-  };
-  dart.setSignature(core.NoSuchMethodError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.NoSuchMethodError, [core.Object, core.Symbol, core.List, MapOfSymbol$dynamic()], [core.List])}),
-    fields: () => ({
-      [_receiver$]: core.Object,
-      [_memberName]: core.Symbol,
-      [_arguments]: core.List,
-      [_namedArguments]: MapOfSymbol$dynamic(),
-      [_existingArgumentNames]: core.List
-    })
-  });
-  core.UnsupportedError = class UnsupportedError extends core.Error {
-    new(message) {
-      this.message = message;
-      super.new();
-    }
-    toString() {
-      return dart.str`Unsupported operation: ${this.message}`;
-    }
-  };
-  dart.setSignature(core.UnsupportedError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.UnsupportedError, [core.String])}),
-    fields: () => ({message: core.String})
-  });
-  core.UnimplementedError = class UnimplementedError extends core.Error {
-    new(message) {
-      if (message === void 0) message = null;
-      this.message = message;
-      super.new();
-    }
-    toString() {
-      return this.message != null ? dart.str`UnimplementedError: ${this.message}` : "UnimplementedError";
-    }
-  };
-  core.UnimplementedError[dart.implements] = () => [core.UnsupportedError];
-  dart.setSignature(core.UnimplementedError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.UnimplementedError, [], [core.String])}),
-    fields: () => ({message: core.String})
-  });
-  core.StateError = class StateError extends core.Error {
-    new(message) {
-      this.message = message;
-      super.new();
-    }
-    toString() {
-      return dart.str`Bad state: ${this.message}`;
-    }
-  };
-  dart.setSignature(core.StateError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.StateError, [core.String])}),
-    fields: () => ({message: core.String})
-  });
-  core.ConcurrentModificationError = class ConcurrentModificationError extends core.Error {
-    new(modifiedObject) {
-      if (modifiedObject === void 0) modifiedObject = null;
-      this.modifiedObject = modifiedObject;
-      super.new();
-    }
-    toString() {
-      if (this.modifiedObject == null) {
-        return "Concurrent modification during iteration.";
-      }
-      return "Concurrent modification during iteration: " + dart.str`${core.Error.safeToString(this.modifiedObject)}.`;
-    }
-  };
-  dart.setSignature(core.ConcurrentModificationError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.ConcurrentModificationError, [], [core.Object])}),
-    fields: () => ({modifiedObject: core.Object})
-  });
-  core.OutOfMemoryError = class OutOfMemoryError extends core.Object {
-    new() {
-    }
-    toString() {
-      return "Out of Memory";
-    }
-    get stackTrace() {
-      return null;
-    }
-  };
-  core.OutOfMemoryError[dart.implements] = () => [core.Error];
-  dart.setSignature(core.OutOfMemoryError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.OutOfMemoryError, [])}),
-    getters: () => ({stackTrace: dart.definiteFunctionType(core.StackTrace, [])})
-  });
-  core.StackOverflowError = class StackOverflowError extends core.Object {
-    new() {
-    }
-    toString() {
-      return "Stack Overflow";
-    }
-    get stackTrace() {
-      return null;
-    }
-  };
-  core.StackOverflowError[dart.implements] = () => [core.Error];
-  dart.setSignature(core.StackOverflowError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.StackOverflowError, [])}),
-    getters: () => ({stackTrace: dart.definiteFunctionType(core.StackTrace, [])})
-  });
-  core.CyclicInitializationError = class CyclicInitializationError extends core.Error {
-    new(variableName) {
-      if (variableName === void 0) variableName = null;
-      this.variableName = variableName;
-      super.new();
-    }
-    toString() {
-      return this.variableName == null ? "Reading static variable during its initialization" : dart.str`Reading static variable '${this.variableName}' during its initialization`;
-    }
-  };
-  dart.setSignature(core.CyclicInitializationError, {
-    constructors: () => ({new: dart.definiteFunctionType(core.CyclicInitializationError, [], [core.String])}),
-    fields: () => ({variableName: core.String})
-  });
-  core.Exception = class Exception extends core.Object {
-    static new(message) {
-      if (message === void 0) message = null;
-      return new core._Exception(message);
-    }
-  };
-  dart.setSignature(core.Exception, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Exception, [], [dart.dynamic])})
-  });
-  core._Exception = class _Exception extends core.Object {
-    new(message) {
-      if (message === void 0) message = null;
-      this.message = message;
-    }
-    toString() {
-      if (this.message == null) return "Exception";
-      return dart.str`Exception: ${this.message}`;
-    }
-  };
-  core._Exception[dart.implements] = () => [core.Exception];
-  dart.setSignature(core._Exception, {
-    constructors: () => ({new: dart.definiteFunctionType(core._Exception, [], [dart.dynamic])}),
-    fields: () => ({message: dart.dynamic})
-  });
-  core.FormatException = class FormatException extends core.Object {
-    new(message, source, offset) {
-      if (message === void 0) message = "";
-      if (source === void 0) source = null;
-      if (offset === void 0) offset = null;
-      this.message = message;
-      this.source = source;
-      this.offset = offset;
-    }
-    toString() {
-      let report = "FormatException";
-      if (this.message != null && "" != this.message) {
-        report = dart.str`${report}: ${this.message}`;
-      }
-      let offset = this.offset;
-      if (!(typeof this.source == 'string')) {
-        if (offset != null) {
-          report = report + dart.str` (at offset ${offset})`;
-        }
-        return report;
-      }
-      if (offset != null && (dart.notNull(offset) < 0 || dart.notNull(offset) > dart.notNull(core.num._check(dart.dload(this.source, 'length'))))) {
-        offset = null;
-      }
-      if (offset == null) {
-        let source = core.String._check(this.source);
-        if (dart.notNull(source[dartx.length]) > 78) {
-          source = dart.notNull(source[dartx.substring](0, 75)) + "...";
-        }
-        return dart.str`${report}\n${source}`;
-      }
-      let lineNum = 1;
-      let lineStart = 0;
-      let lastWasCR = null;
-      for (let i = 0; i < dart.notNull(offset); i++) {
-        let char = core.int._check(dart.dsend(this.source, 'codeUnitAt', i));
-        if (char == 10) {
-          if (lineStart != i || !dart.test(lastWasCR)) {
-            lineNum++;
-          }
-          lineStart = i + 1;
-          lastWasCR = false;
-        } else if (char == 13) {
-          lineNum++;
-          lineStart = i + 1;
-          lastWasCR = true;
-        }
-      }
-      if (lineNum > 1) {
-        report = report + dart.str` (at line ${lineNum}, character ${dart.notNull(offset) - lineStart + 1})\n`;
-      } else {
-        report = report + dart.str` (at character ${dart.notNull(offset) + 1})\n`;
-      }
-      let lineEnd = core.int._check(dart.dload(this.source, 'length'));
-      for (let i = offset; dart.notNull(i) < dart.notNull(core.num._check(dart.dload(this.source, 'length'))); i = dart.notNull(i) + 1) {
-        let char = core.int._check(dart.dsend(this.source, 'codeUnitAt', i));
-        if (char == 10 || char == 13) {
-          lineEnd = i;
-          break;
-        }
-      }
-      let length = dart.notNull(lineEnd) - lineStart;
-      let start = lineStart;
-      let end = lineEnd;
-      let prefix = "";
-      let postfix = "";
-      if (length > 78) {
-        let index = dart.notNull(offset) - lineStart;
-        if (index < 75) {
-          end = start + 75;
-          postfix = "...";
-        } else if (dart.notNull(end) - dart.notNull(offset) < 75) {
-          start = dart.notNull(end) - 75;
-          prefix = "...";
-        } else {
-          start = dart.notNull(offset) - 36;
-          end = dart.notNull(offset) + 36;
-          prefix = postfix = "...";
-        }
-      }
-      let slice = core.String._check(dart.dsend(this.source, 'substring', start, end));
-      let markOffset = dart.notNull(offset) - start + dart.notNull(prefix[dartx.length]);
-      return dart.str`${report}${prefix}${slice}${postfix}\n${" "[dartx['*']](markOffset)}^\n`;
-    }
-  };
-  core.FormatException[dart.implements] = () => [core.Exception];
-  dart.setSignature(core.FormatException, {
-    constructors: () => ({new: dart.definiteFunctionType(core.FormatException, [], [core.String, dart.dynamic, core.int])}),
-    fields: () => ({
-      message: core.String,
-      source: dart.dynamic,
-      offset: core.int
-    })
-  });
-  core.IntegerDivisionByZeroException = class IntegerDivisionByZeroException extends core.Object {
-    new() {
-    }
-    toString() {
-      return "IntegerDivisionByZeroException";
-    }
-  };
-  core.IntegerDivisionByZeroException[dart.implements] = () => [core.Exception];
-  dart.setSignature(core.IntegerDivisionByZeroException, {
-    constructors: () => ({new: dart.definiteFunctionType(core.IntegerDivisionByZeroException, [])})
-  });
-  const _getKey = Symbol('_getKey');
-  core.Expando$ = dart.generic(T => {
-    class Expando extends core.Object {
-      new(name) {
-        if (name === void 0) name = null;
-        this.name = name;
-      }
-      toString() {
-        return dart.str`Expando:${this.name}`;
-      }
-      _get(object) {
-        let values = _js_helper.Primitives.getProperty(object, core.Expando._EXPANDO_PROPERTY_NAME);
-        return T._check(values == null ? null : _js_helper.Primitives.getProperty(values, this[_getKey]()));
-      }
-      _set(object, value) {
-        T._check(value);
-        let values = _js_helper.Primitives.getProperty(object, core.Expando._EXPANDO_PROPERTY_NAME);
-        if (values == null) {
-          values = new core.Object();
-          _js_helper.Primitives.setProperty(object, core.Expando._EXPANDO_PROPERTY_NAME, values);
-        }
-        _js_helper.Primitives.setProperty(values, this[_getKey](), value);
-        return value;
-      }
-      [_getKey]() {
-        let key = core.String._check(_js_helper.Primitives.getProperty(this, core.Expando._KEY_PROPERTY_NAME));
-        if (key == null) {
-          key = dart.str`expando\$key\$${(() => {
-            let x = core.Expando._keyCount;
-            core.Expando._keyCount = dart.notNull(x) + 1;
-            return x;
-          })()}`;
-          _js_helper.Primitives.setProperty(this, core.Expando._KEY_PROPERTY_NAME, key);
-        }
-        return key;
-      }
-    }
-    dart.addTypeTests(Expando);
-    dart.setSignature(Expando, {
-      constructors: () => ({new: dart.definiteFunctionType(core.Expando$(T), [], [core.String])}),
-      fields: () => ({name: core.String}),
-      methods: () => ({
-        _get: dart.definiteFunctionType(T, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [core.Object, T]),
-        [_getKey]: dart.definiteFunctionType(core.String, [])
-      }),
-      sfields: () => ({
-        _KEY_PROPERTY_NAME: core.String,
-        _EXPANDO_PROPERTY_NAME: core.String,
-        _keyCount: core.int
-      })
-    });
-    return Expando;
-  });
-  core.Expando = Expando();
-  core.Expando._KEY_PROPERTY_NAME = 'expando$key';
-  core.Expando._EXPANDO_PROPERTY_NAME = 'expando$values';
-  core.Expando._keyCount = 0;
-  core.Function = class Function extends core.Object {
-    static apply(f, positionalArguments, namedArguments) {
-      if (namedArguments === void 0) namedArguments = null;
-      return dart.dcall.apply(null, [f].concat(positionalArguments));
-    }
-    static _toMangledNames(namedArguments) {
-      let result = dart.map({}, core.String, dart.dynamic);
-      namedArguments[dartx.forEach](dart.fn((symbol, value) => {
-        result[dartx._set](core._symbolToString(symbol), value);
-      }, SymbolAnddynamicToNull()));
-      return result;
-    }
-  };
-  core.Function.is = function is_Function(o) {
-    return typeof o == "function";
-  };
-  core.Function.as = function as_Function(o) {
-    if (typeof o == "function" || o == null) return o;
-    return dart.as(o, core.Function);
-  };
-  core.Function._check = function check_String(o) {
-    if (typeof o == "function" || o == null) return o;
-    return dart.check(o, core.Function);
-  };
-  dart.setSignature(core.Function, {
-    statics: () => ({
-      apply: dart.definiteFunctionType(dart.dynamic, [core.Function, core.List], [MapOfSymbol$dynamic()]),
-      _toMangledNames: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [MapOfSymbol$dynamic()])
-    }),
-    names: ['apply', '_toMangledNames']
-  });
-  core.identical = function(a, b) {
-    return a == null ? b == null : a === b;
-  };
-  dart.fn(core.identical, ObjectAndObjectTobool());
-  core.identityHashCode = function(object) {
-    return _js_helper.objectHashCode(object);
-  };
-  dart.fn(core.identityHashCode, ObjectToint());
-  core._Generator$ = dart.generic(E => {
-    const _Generator = dart.typedef('_Generator', () => dart.functionType(E, [core.int]));
-    return _Generator;
-  });
-  core._Generator = _Generator();
-  const _end$ = Symbol('_end');
-  const _start$0 = Symbol('_start');
-  const _generator$ = Symbol('_generator');
-  core._GeneratorIterable$ = dart.generic(E => {
-    let _GeneratorOfE = () => (_GeneratorOfE = dart.constFn(core._Generator$(E)))();
-    let _GeneratorIteratorOfE = () => (_GeneratorIteratorOfE = dart.constFn(core._GeneratorIterator$(E)))();
-    let EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
-    let _GeneratorIterableOfE = () => (_GeneratorIterableOfE = dart.constFn(core._GeneratorIterable$(E)))();
-    class _GeneratorIterable extends core.Iterable$(E) {
-      new(end, generator) {
-        this[_end$] = end;
-        this[_start$0] = 0;
-        this[_generator$] = generator != null ? generator : _GeneratorOfE().as(core._GeneratorIterable._id);
-        super.new();
-      }
-      slice(start, end, generator) {
-        this[_start$0] = start;
-        this[_end$] = end;
-        this[_generator$] = generator;
-        super.new();
-      }
-      get iterator() {
-        return new (_GeneratorIteratorOfE())(this[_start$0], this[_end$], this[_generator$]);
-      }
-      get length() {
-        return dart.notNull(this[_end$]) - dart.notNull(this[_start$0]);
-      }
-      skip(count) {
-        core.RangeError.checkNotNegative(count, "count");
-        if (count == 0) return this;
-        let newStart = dart.notNull(this[_start$0]) + dart.notNull(count);
-        if (newStart >= dart.notNull(this[_end$])) return new (EmptyIterableOfE())();
-        return new (_GeneratorIterableOfE()).slice(newStart, this[_end$], this[_generator$]);
-      }
-      take(count) {
-        core.RangeError.checkNotNegative(count, "count");
-        if (count == 0) return new (EmptyIterableOfE())();
-        let newEnd = dart.notNull(this[_start$0]) + dart.notNull(count);
-        if (newEnd >= dart.notNull(this[_end$])) return this;
-        return new (_GeneratorIterableOfE()).slice(this[_start$0], newEnd, this[_generator$]);
-      }
-      static _id(n) {
-        return n;
-      }
-    }
-    dart.defineNamedConstructor(_GeneratorIterable, 'slice');
-    _GeneratorIterable[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(_GeneratorIterable, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(core._GeneratorIterable$(E), [core.int, _GeneratorOfE()]),
-        slice: dart.definiteFunctionType(core._GeneratorIterable$(E), [core.int, core.int, _GeneratorOfE()])
-      }),
-      fields: () => ({
-        [_start$0]: core.int,
-        [_end$]: core.int,
-        [_generator$]: _GeneratorOfE()
-      }),
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      statics: () => ({_id: dart.definiteFunctionType(core.int, [core.int])}),
-      names: ['_id']
-    });
-    dart.defineExtensionMembers(_GeneratorIterable, ['skip', 'take', 'iterator', 'length']);
-    return _GeneratorIterable;
-  });
-  core._GeneratorIterable = _GeneratorIterable();
-  const _index$1 = Symbol('_index');
-  const _current$3 = Symbol('_current');
-  core._GeneratorIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    let _GeneratorOfE = () => (_GeneratorOfE = dart.constFn(core._Generator$(E)))();
-    class _GeneratorIterator extends core.Object {
-      new(index, end, generator) {
-        this[_index$1] = index;
-        this[_end$] = end;
-        this[_generator$] = generator;
-        this[_current$3] = null;
-      }
-      moveNext() {
-        if (dart.notNull(this[_index$1]) < dart.notNull(this[_end$])) {
-          this[_current$3] = this[_generator$](this[_index$1]);
-          this[_index$1] = dart.notNull(this[_index$1]) + 1;
-          return true;
-        } else {
-          this[_current$3] = null;
-          return false;
-        }
-      }
-      get current() {
-        return this[_current$3];
-      }
-    }
-    dart.addTypeTests(_GeneratorIterator);
-    _GeneratorIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_GeneratorIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(core._GeneratorIterator$(E), [core.int, core.int, _GeneratorOfE()])}),
-      fields: () => ({
-        [_end$]: core.int,
-        [_generator$]: _GeneratorOfE(),
-        [_index$1]: core.int,
-        [_current$3]: E
-      }),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _GeneratorIterator;
-  });
-  core._GeneratorIterator = _GeneratorIterator();
-  core.BidirectionalIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class BidirectionalIterator extends core.Object {}
-    dart.addTypeTests(BidirectionalIterator);
-    BidirectionalIterator[dart.implements] = () => [IteratorOfE()];
-    return BidirectionalIterator;
-  });
-  core.BidirectionalIterator = BidirectionalIterator();
-  core.Map$ = dart.generic((K, V) => {
-    let JsLinkedHashMapOfK$V = () => (JsLinkedHashMapOfK$V = dart.constFn(_js_helper.JsLinkedHashMap$(K, V)))();
-    let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
-    let UnmodifiableMapViewOfK$V = () => (UnmodifiableMapViewOfK$V = dart.constFn(collection.UnmodifiableMapView$(K, V)))();
-    let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
-    let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
-    let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
-    let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    class Map extends core.Object {
-      static new() {
-        return JsLinkedHashMapOfK$V().es6();
-      }
-      static from(other) {
-        return LinkedHashMapOfK$V().from(other);
-      }
-      static unmodifiable(other) {
-        return new (UnmodifiableMapViewOfK$V())(MapOfK$V().from(other));
-      }
-      static identity() {
-        return LinkedHashMapOfK$V().identity();
-      }
-      static fromIterable(iterable, opts) {
-        return LinkedHashMapOfK$V().fromIterable(iterable, opts);
-      }
-      static fromIterables(keys, values) {
-        return LinkedHashMapOfK$V().fromIterables(keys, values);
-      }
-    }
-    dart.addTypeTests(Map);
-    dart.setSignature(Map, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(core.Map$(K, V), []),
-        from: dart.definiteFunctionType(core.Map$(K, V), [core.Map]),
-        unmodifiable: dart.definiteFunctionType(core.Map$(K, V), [core.Map]),
-        identity: dart.definiteFunctionType(core.Map$(K, V), []),
-        fromIterable: dart.definiteFunctionType(core.Map$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV()}),
-        fromIterables: dart.definiteFunctionType(core.Map$(K, V), [IterableOfK(), IterableOfV()])
-      })
-    });
-    return Map;
-  });
-  core.Map = Map$();
-  core.Null = class Null extends core.Object {
-    static _uninstantiable() {
-      dart.throw(new core.UnsupportedError('class Null cannot be instantiated'));
-    }
-    toString() {
-      return "null";
-    }
-  };
-  core.Null.is = function is_Null(o) {
-    return o == null;
-  };
-  core.Null.as = function as_Null(o) {
-    if (o == null) return o;
-    return dart.as(o, core.Null);
-  };
-  core.Null._check = function check_Null(o) {
-    if (o == null) return o;
-    return dart.check(o, core.Null);
-  };
-  dart.setSignature(core.Null, {
-    constructors: () => ({_uninstantiable: dart.definiteFunctionType(core.Null, [])})
-  });
-  core.Pattern = class Pattern extends core.Object {};
-  core.print = function(object) {
-    let line = dart.str`${object}`;
-    if (_internal.printToZone == null) {
-      _internal.printToConsole(line);
+    } else if (this.end == null) {
+      explanation = dart.str`: Not greater than or equal to ${this.start}`;
+    } else if (dart.notNull(this.end) > dart.notNull(this.start)) {
+      explanation = dart.str`: Not in range ${this.start}..${this.end}, inclusive`;
+    } else if (dart.notNull(this.end) < dart.notNull(this.start)) {
+      explanation = ": Valid value range is empty";
     } else {
-      dart.dcall(_internal.printToZone, line);
+      explanation = dart.str`: Only valid value is ${this.start}`;
     }
-  };
-  dart.fn(core.print, ObjectTovoid());
-  core.RegExp = class RegExp extends core.Object {
-    static new(source, opts) {
-      let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
-      let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
-      return new _js_helper.JSSyntaxRegExp(source, {multiLine: multiLine, caseSensitive: caseSensitive});
+    return explanation;
+  }
+};
+dart.defineNamedConstructor(core.RangeError, 'value');
+dart.defineNamedConstructor(core.RangeError, 'range');
+dart.setSignature(core.RangeError, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(core.RangeError, [dart.dynamic]),
+    value: dart.definiteFunctionType(core.RangeError, [core.num], [core.String, core.String]),
+    range: dart.definiteFunctionType(core.RangeError, [core.num, core.int, core.int], [core.String, core.String]),
+    index: dart.definiteFunctionType(core.RangeError, [core.int, dart.dynamic], [core.String, core.String, core.int])
+  }),
+  fields: () => ({
+    start: core.num,
+    end: core.num
+  }),
+  statics: () => ({
+    checkValueInInterval: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.String, core.String]),
+    checkValidIndex: dart.definiteFunctionType(dart.void, [core.int, dart.dynamic], [core.String, core.int, core.String]),
+    checkValidRange: dart.definiteFunctionType(core.int, [core.int, core.int, core.int], [core.String, core.String, core.String]),
+    checkNotNegative: dart.definiteFunctionType(dart.void, [core.int], [core.String, core.String])
+  }),
+  names: ['checkValueInInterval', 'checkValidIndex', 'checkValidRange', 'checkNotNegative']
+});
+core.IndexError = class IndexError extends core.ArgumentError {
+  new(invalidValue, indexable, name, message, length) {
+    if (name === void 0) name = null;
+    if (message === void 0) message = null;
+    if (length === void 0) length = null;
+    this.indexable = indexable;
+    this.length = core.int._check(length != null ? length : dart.dload(indexable, 'length'));
+    super.value(invalidValue, name, message != null ? message : "Index out of range");
+  }
+  get start() {
+    return 0;
+  }
+  get end() {
+    return dart.notNull(this.length) - 1;
+  }
+  get [_errorName]() {
+    return "RangeError";
+  }
+  get [_errorExplanation]() {
+    dart.assert(this[_hasValue]);
+    if (dart.test(dart.dsend(this.invalidValue, '<', 0))) {
+      return ": index must not be negative";
     }
-  };
-  core.RegExp[dart.implements] = () => [core.Pattern];
-  dart.setSignature(core.RegExp, {
-    constructors: () => ({new: dart.definiteFunctionType(core.RegExp, [core.String], {multiLine: core.bool, caseSensitive: core.bool})})
-  });
-  core.Set$ = dart.generic(E => {
-    let LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    class Set extends core.Iterable$(E) {
-      static new() {
-        return LinkedHashSetOfE().new();
-      }
-      static identity() {
-        return LinkedHashSetOfE().identity();
-      }
-      static from(elements) {
-        return LinkedHashSetOfE().from(elements);
+    if (this.length == 0) {
+      return ": no indices are valid";
+    }
+    return dart.str`: index should be less than ${this.length}`;
+  }
+};
+core.IndexError[dart.implements] = () => [core.RangeError];
+dart.setSignature(core.IndexError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.IndexError, [core.int, dart.dynamic], [core.String, core.String, core.int])}),
+  fields: () => ({
+    indexable: dart.dynamic,
+    length: core.int
+  }),
+  getters: () => ({
+    start: dart.definiteFunctionType(core.int, []),
+    end: dart.definiteFunctionType(core.int, [])
+  })
+});
+const _className = Symbol('_className');
+core.AbstractClassInstantiationError = class AbstractClassInstantiationError extends core.Error {
+  new(className) {
+    this[_className] = className;
+    super.new();
+  }
+  toString() {
+    return dart.str`Cannot instantiate abstract class: '${this[_className]}'`;
+  }
+};
+dart.setSignature(core.AbstractClassInstantiationError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.AbstractClassInstantiationError, [core.String])}),
+  fields: () => ({[_className]: core.String})
+});
+const _receiver$ = Symbol('_receiver');
+const _memberName = Symbol('_memberName');
+const _arguments = Symbol('_arguments');
+const _namedArguments = Symbol('_namedArguments');
+const _existingArgumentNames = Symbol('_existingArgumentNames');
+core.NoSuchMethodError = class NoSuchMethodError extends core.Error {
+  new(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames) {
+    if (existingArgumentNames === void 0) existingArgumentNames = null;
+    this[_receiver$] = receiver;
+    this[_memberName] = memberName;
+    this[_arguments] = positionalArguments;
+    this[_namedArguments] = namedArguments;
+    this[_existingArgumentNames] = existingArgumentNames;
+    super.new();
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    let i = 0;
+    if (this[_arguments] != null) {
+      for (; i < dart.notNull(this[_arguments][dartx.length]); i++) {
+        if (i > 0) {
+          sb.write(", ");
+        }
+        sb.write(core.Error.safeToString(this[_arguments][dartx._get](i)));
       }
     }
-    Set[dart.implements] = () => [_internal.EfficientLength];
-    dart.setSignature(Set, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(core.Set$(E), []),
-        identity: dart.definiteFunctionType(core.Set$(E), []),
-        from: dart.definiteFunctionType(core.Set$(E), [IterableOfE()])
-      })
-    });
-    return Set;
-  });
-  core.Set = Set();
-  core.Sink$ = dart.generic(T => {
-    class Sink extends core.Object {}
-    dart.addTypeTests(Sink);
-    return Sink;
-  });
-  core.Sink = Sink();
-  core.StackTrace = class StackTrace extends core.Object {
-    new() {
+    if (this[_namedArguments] != null) {
+      this[_namedArguments][dartx.forEach](dart.fn((key, value) => {
+        if (i > 0) {
+          sb.write(", ");
+        }
+        sb.write(core._symbolToString(key));
+        sb.write(": ");
+        sb.write(core.Error.safeToString(value));
+        i++;
+      }, SymbolAnddynamicToNull()));
     }
-    static fromString(stackTraceString) {
-      return new core._StringStackTrace(stackTraceString);
+    if (this[_existingArgumentNames] == null) {
+      return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Arguments: [${sb}]`;
+    } else {
+      let actualParameters = sb.toString();
+      sb = new core.StringBuffer();
+      for (let i = 0; i < dart.notNull(this[_existingArgumentNames][dartx.length]); i++) {
+        if (i > 0) {
+          sb.write(", ");
+        }
+        sb.write(this[_existingArgumentNames][dartx._get](i));
+      }
+      let formalParameters = sb.toString();
+      return "NoSuchMethodError: incorrect number of arguments passed to " + dart.str`method named '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Tried calling: ${this[_memberName]}(${actualParameters})\n` + dart.str`Found: ${this[_memberName]}(${formalParameters})`;
     }
-    static get current() {
-      return _js_helper.getTraceFromException(new Error());
+  }
+};
+dart.setSignature(core.NoSuchMethodError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.NoSuchMethodError, [core.Object, core.Symbol, core.List, MapOfSymbol$dynamic()], [core.List])}),
+  fields: () => ({
+    [_receiver$]: core.Object,
+    [_memberName]: core.Symbol,
+    [_arguments]: core.List,
+    [_namedArguments]: MapOfSymbol$dynamic(),
+    [_existingArgumentNames]: core.List
+  })
+});
+core.UnsupportedError = class UnsupportedError extends core.Error {
+  new(message) {
+    this.message = message;
+    super.new();
+  }
+  toString() {
+    return dart.str`Unsupported operation: ${this.message}`;
+  }
+};
+dart.setSignature(core.UnsupportedError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.UnsupportedError, [core.String])}),
+  fields: () => ({message: core.String})
+});
+core.UnimplementedError = class UnimplementedError extends core.Error {
+  new(message) {
+    if (message === void 0) message = null;
+    this.message = message;
+    super.new();
+  }
+  toString() {
+    return this.message != null ? dart.str`UnimplementedError: ${this.message}` : "UnimplementedError";
+  }
+};
+core.UnimplementedError[dart.implements] = () => [core.UnsupportedError];
+dart.setSignature(core.UnimplementedError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.UnimplementedError, [], [core.String])}),
+  fields: () => ({message: core.String})
+});
+core.StateError = class StateError extends core.Error {
+  new(message) {
+    this.message = message;
+    super.new();
+  }
+  toString() {
+    return dart.str`Bad state: ${this.message}`;
+  }
+};
+dart.setSignature(core.StateError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.StateError, [core.String])}),
+  fields: () => ({message: core.String})
+});
+core.ConcurrentModificationError = class ConcurrentModificationError extends core.Error {
+  new(modifiedObject) {
+    if (modifiedObject === void 0) modifiedObject = null;
+    this.modifiedObject = modifiedObject;
+    super.new();
+  }
+  toString() {
+    if (this.modifiedObject == null) {
+      return "Concurrent modification during iteration.";
     }
-  };
-  dart.setSignature(core.StackTrace, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(core.StackTrace, []),
-      fromString: dart.definiteFunctionType(core.StackTrace, [core.String])
-    }),
-    sgetters: () => ({current: dart.definiteFunctionType(core.StackTrace, [])})
-  });
-  const _stackTrace = Symbol('_stackTrace');
-  core._StringStackTrace = class _StringStackTrace extends core.Object {
-    new(stackTrace) {
-      this[_stackTrace] = stackTrace;
+    return "Concurrent modification during iteration: " + dart.str`${core.Error.safeToString(this.modifiedObject)}.`;
+  }
+};
+dart.setSignature(core.ConcurrentModificationError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.ConcurrentModificationError, [], [core.Object])}),
+  fields: () => ({modifiedObject: core.Object})
+});
+core.OutOfMemoryError = class OutOfMemoryError extends core.Object {
+  new() {
+  }
+  toString() {
+    return "Out of Memory";
+  }
+  get stackTrace() {
+    return null;
+  }
+};
+core.OutOfMemoryError[dart.implements] = () => [core.Error];
+dart.setSignature(core.OutOfMemoryError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.OutOfMemoryError, [])}),
+  getters: () => ({stackTrace: dart.definiteFunctionType(core.StackTrace, [])})
+});
+core.StackOverflowError = class StackOverflowError extends core.Object {
+  new() {
+  }
+  toString() {
+    return "Stack Overflow";
+  }
+  get stackTrace() {
+    return null;
+  }
+};
+core.StackOverflowError[dart.implements] = () => [core.Error];
+dart.setSignature(core.StackOverflowError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.StackOverflowError, [])}),
+  getters: () => ({stackTrace: dart.definiteFunctionType(core.StackTrace, [])})
+});
+core.CyclicInitializationError = class CyclicInitializationError extends core.Error {
+  new(variableName) {
+    if (variableName === void 0) variableName = null;
+    this.variableName = variableName;
+    super.new();
+  }
+  toString() {
+    return this.variableName == null ? "Reading static variable during its initialization" : dart.str`Reading static variable '${this.variableName}' during its initialization`;
+  }
+};
+dart.setSignature(core.CyclicInitializationError, {
+  constructors: () => ({new: dart.definiteFunctionType(core.CyclicInitializationError, [], [core.String])}),
+  fields: () => ({variableName: core.String})
+});
+core.Exception = class Exception extends core.Object {
+  static new(message) {
+    if (message === void 0) message = null;
+    return new core._Exception(message);
+  }
+};
+dart.setSignature(core.Exception, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Exception, [], [dart.dynamic])})
+});
+core._Exception = class _Exception extends core.Object {
+  new(message) {
+    if (message === void 0) message = null;
+    this.message = message;
+  }
+  toString() {
+    if (this.message == null) return "Exception";
+    return dart.str`Exception: ${this.message}`;
+  }
+};
+core._Exception[dart.implements] = () => [core.Exception];
+dart.setSignature(core._Exception, {
+  constructors: () => ({new: dart.definiteFunctionType(core._Exception, [], [dart.dynamic])}),
+  fields: () => ({message: dart.dynamic})
+});
+core.FormatException = class FormatException extends core.Object {
+  new(message, source, offset) {
+    if (message === void 0) message = "";
+    if (source === void 0) source = null;
+    if (offset === void 0) offset = null;
+    this.message = message;
+    this.source = source;
+    this.offset = offset;
+  }
+  toString() {
+    let report = "FormatException";
+    if (this.message != null && "" != this.message) {
+      report = dart.str`${report}: ${this.message}`;
+    }
+    let offset = this.offset;
+    if (!(typeof this.source == 'string')) {
+      if (offset != null) {
+        report = report + dart.str` (at offset ${offset})`;
+      }
+      return report;
+    }
+    if (offset != null && (dart.notNull(offset) < 0 || dart.notNull(offset) > dart.notNull(core.num._check(dart.dload(this.source, 'length'))))) {
+      offset = null;
+    }
+    if (offset == null) {
+      let source = core.String._check(this.source);
+      if (dart.notNull(source[dartx.length]) > 78) {
+        source = dart.notNull(source[dartx.substring](0, 75)) + "...";
+      }
+      return dart.str`${report}\n${source}`;
+    }
+    let lineNum = 1;
+    let lineStart = 0;
+    let lastWasCR = null;
+    for (let i = 0; i < dart.notNull(offset); i++) {
+      let char = core.int._check(dart.dsend(this.source, 'codeUnitAt', i));
+      if (char == 10) {
+        if (lineStart != i || !dart.test(lastWasCR)) {
+          lineNum++;
+        }
+        lineStart = i + 1;
+        lastWasCR = false;
+      } else if (char == 13) {
+        lineNum++;
+        lineStart = i + 1;
+        lastWasCR = true;
+      }
+    }
+    if (lineNum > 1) {
+      report = report + dart.str` (at line ${lineNum}, character ${dart.notNull(offset) - lineStart + 1})\n`;
+    } else {
+      report = report + dart.str` (at character ${dart.notNull(offset) + 1})\n`;
+    }
+    let lineEnd = core.int._check(dart.dload(this.source, 'length'));
+    for (let i = offset; dart.notNull(i) < dart.notNull(core.num._check(dart.dload(this.source, 'length'))); i = dart.notNull(i) + 1) {
+      let char = core.int._check(dart.dsend(this.source, 'codeUnitAt', i));
+      if (char == 10 || char == 13) {
+        lineEnd = i;
+        break;
+      }
+    }
+    let length = dart.notNull(lineEnd) - lineStart;
+    let start = lineStart;
+    let end = lineEnd;
+    let prefix = "";
+    let postfix = "";
+    if (length > 78) {
+      let index = dart.notNull(offset) - lineStart;
+      if (index < 75) {
+        end = start + 75;
+        postfix = "...";
+      } else if (dart.notNull(end) - dart.notNull(offset) < 75) {
+        start = dart.notNull(end) - 75;
+        prefix = "...";
+      } else {
+        start = dart.notNull(offset) - 36;
+        end = dart.notNull(offset) + 36;
+        prefix = postfix = "...";
+      }
+    }
+    let slice = core.String._check(dart.dsend(this.source, 'substring', start, end));
+    let markOffset = dart.notNull(offset) - start + dart.notNull(prefix[dartx.length]);
+    return dart.str`${report}${prefix}${slice}${postfix}\n${" "[dartx['*']](markOffset)}^\n`;
+  }
+};
+core.FormatException[dart.implements] = () => [core.Exception];
+dart.setSignature(core.FormatException, {
+  constructors: () => ({new: dart.definiteFunctionType(core.FormatException, [], [core.String, dart.dynamic, core.int])}),
+  fields: () => ({
+    message: core.String,
+    source: dart.dynamic,
+    offset: core.int
+  })
+});
+core.IntegerDivisionByZeroException = class IntegerDivisionByZeroException extends core.Object {
+  new() {
+  }
+  toString() {
+    return "IntegerDivisionByZeroException";
+  }
+};
+core.IntegerDivisionByZeroException[dart.implements] = () => [core.Exception];
+dart.setSignature(core.IntegerDivisionByZeroException, {
+  constructors: () => ({new: dart.definiteFunctionType(core.IntegerDivisionByZeroException, [])})
+});
+const _getKey = Symbol('_getKey');
+core.Expando$ = dart.generic(T => {
+  class Expando extends core.Object {
+    new(name) {
+      if (name === void 0) name = null;
+      this.name = name;
     }
     toString() {
-      return this[_stackTrace];
+      return dart.str`Expando:${this.name}`;
     }
-  };
-  core._StringStackTrace[dart.implements] = () => [core.StackTrace];
-  dart.setSignature(core._StringStackTrace, {
-    constructors: () => ({new: dart.definiteFunctionType(core._StringStackTrace, [core.String])}),
-    fields: () => ({[_stackTrace]: core.String})
-  });
-  const _stop = Symbol('_stop');
-  core.Stopwatch = class Stopwatch extends core.Object {
-    get frequency() {
-      return core.Stopwatch._frequency;
+    _get(object) {
+      let values = _js_helper.Primitives.getProperty(object, core.Expando._EXPANDO_PROPERTY_NAME);
+      return T._check(values == null ? null : _js_helper.Primitives.getProperty(values, this[_getKey]()));
     }
-    new() {
-      this[_start$0] = null;
-      this[_stop] = null;
-      core.Stopwatch._initTicker();
-    }
-    start() {
-      if (dart.test(this.isRunning)) return;
-      if (this[_start$0] == null) {
-        this[_start$0] = core.Stopwatch._now();
-      } else {
-        this[_start$0] = dart.notNull(core.Stopwatch._now()) - (dart.notNull(this[_stop]) - dart.notNull(this[_start$0]));
-        this[_stop] = null;
+    _set(object, value) {
+      T._check(value);
+      let values = _js_helper.Primitives.getProperty(object, core.Expando._EXPANDO_PROPERTY_NAME);
+      if (values == null) {
+        values = new core.Object();
+        _js_helper.Primitives.setProperty(object, core.Expando._EXPANDO_PROPERTY_NAME, values);
       }
+      _js_helper.Primitives.setProperty(values, this[_getKey](), value);
+      return value;
     }
-    stop() {
-      if (!dart.test(this.isRunning)) return;
-      this[_stop] = core.Stopwatch._now();
-    }
-    reset() {
-      if (this[_start$0] == null) return;
-      this[_start$0] = core.Stopwatch._now();
-      if (this[_stop] != null) {
-        this[_stop] = this[_start$0];
+    [_getKey]() {
+      let key = core.String._check(_js_helper.Primitives.getProperty(this, core.Expando._KEY_PROPERTY_NAME));
+      if (key == null) {
+        key = dart.str`expando\$key\$${(() => {
+          let x = core.Expando._keyCount;
+          core.Expando._keyCount = dart.notNull(x) + 1;
+          return x;
+        })()}`;
+        _js_helper.Primitives.setProperty(this, core.Expando._KEY_PROPERTY_NAME, key);
       }
+      return key;
     }
-    get elapsedTicks() {
-      if (this[_start$0] == null) {
-        return 0;
-      }
-      return this[_stop] == null ? dart.notNull(core.Stopwatch._now()) - dart.notNull(this[_start$0]) : dart.notNull(this[_stop]) - dart.notNull(this[_start$0]);
-    }
-    get elapsed() {
-      return new core.Duration({microseconds: this.elapsedMicroseconds});
-    }
-    get elapsedMicroseconds() {
-      return (dart.notNull(this.elapsedTicks) * 1000000 / dart.notNull(this.frequency))[dartx.truncate]();
-    }
-    get elapsedMilliseconds() {
-      return (dart.notNull(this.elapsedTicks) * 1000 / dart.notNull(this.frequency))[dartx.truncate]();
-    }
-    get isRunning() {
-      return this[_start$0] != null && this[_stop] == null;
-    }
-    static _initTicker() {
-      _js_helper.Primitives.initTicker();
-      core.Stopwatch._frequency = _js_helper.Primitives.timerFrequency;
-    }
-    static _now() {
-      return core.int._check(dart.dsend(_js_helper.Primitives, 'timerTicks'));
-    }
-  };
-  dart.setSignature(core.Stopwatch, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Stopwatch, [])}),
-    fields: () => ({
-      [_start$0]: core.int,
-      [_stop]: core.int
-    }),
-    getters: () => ({
-      frequency: dart.definiteFunctionType(core.int, []),
-      elapsedTicks: dart.definiteFunctionType(core.int, []),
-      elapsed: dart.definiteFunctionType(core.Duration, []),
-      elapsedMicroseconds: dart.definiteFunctionType(core.int, []),
-      elapsedMilliseconds: dart.definiteFunctionType(core.int, []),
-      isRunning: dart.definiteFunctionType(core.bool, [])
-    }),
+  }
+  dart.addTypeTests(Expando);
+  dart.setSignature(Expando, {
+    constructors: () => ({new: dart.definiteFunctionType(core.Expando$(T), [], [core.String])}),
+    fields: () => ({name: core.String}),
     methods: () => ({
-      start: dart.definiteFunctionType(dart.void, []),
-      stop: dart.definiteFunctionType(dart.void, []),
-      reset: dart.definiteFunctionType(dart.void, [])
+      _get: dart.definiteFunctionType(T, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [core.Object, T]),
+      [_getKey]: dart.definiteFunctionType(core.String, [])
     }),
-    sfields: () => ({_frequency: core.int}),
-    statics: () => ({
-      _initTicker: dart.definiteFunctionType(dart.void, []),
-      _now: dart.definiteFunctionType(core.int, [])
-    }),
-    names: ['_initTicker', '_now']
+    sfields: () => ({
+      _KEY_PROPERTY_NAME: core.String,
+      _EXPANDO_PROPERTY_NAME: core.String,
+      _keyCount: core.int
+    })
   });
-  core.Stopwatch._frequency = null;
-  core.Runes = class Runes extends core.Iterable$(core.int) {
-    new(string) {
-      this.string = string;
+  return Expando;
+});
+core.Expando = Expando();
+core.Expando._KEY_PROPERTY_NAME = 'expando$key';
+core.Expando._EXPANDO_PROPERTY_NAME = 'expando$values';
+core.Expando._keyCount = 0;
+core.Function = class Function extends core.Object {
+  static apply(f, positionalArguments, namedArguments) {
+    if (namedArguments === void 0) namedArguments = null;
+    return dart.dcall.apply(null, [f].concat(positionalArguments));
+  }
+  static _toMangledNames(namedArguments) {
+    let result = dart.map({}, core.String, dart.dynamic);
+    namedArguments[dartx.forEach](dart.fn((symbol, value) => {
+      result[dartx._set](core._symbolToString(symbol), value);
+    }, SymbolAnddynamicToNull()));
+    return result;
+  }
+};
+core.Function.is = function is_Function(o) {
+  return typeof o == "function";
+};
+core.Function.as = function as_Function(o) {
+  if (typeof o == "function" || o == null) return o;
+  return dart.as(o, core.Function);
+};
+core.Function._check = function check_String(o) {
+  if (typeof o == "function" || o == null) return o;
+  return dart.check(o, core.Function);
+};
+dart.setSignature(core.Function, {
+  statics: () => ({
+    apply: dart.definiteFunctionType(dart.dynamic, [core.Function, core.List], [MapOfSymbol$dynamic()]),
+    _toMangledNames: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [MapOfSymbol$dynamic()])
+  }),
+  names: ['apply', '_toMangledNames']
+});
+core.identical = function(a, b) {
+  return a == null ? b == null : a === b;
+};
+dart.fn(core.identical, ObjectAndObjectTobool());
+core.identityHashCode = function(object) {
+  return _js_helper.objectHashCode(object);
+};
+dart.fn(core.identityHashCode, ObjectToint());
+core._Generator$ = dart.generic(E => {
+  const _Generator = dart.typedef('_Generator', () => dart.functionType(E, [core.int]));
+  return _Generator;
+});
+core._Generator = _Generator();
+const _end$ = Symbol('_end');
+const _start$0 = Symbol('_start');
+const _generator$ = Symbol('_generator');
+core._GeneratorIterable$ = dart.generic(E => {
+  let _GeneratorOfE = () => (_GeneratorOfE = dart.constFn(core._Generator$(E)))();
+  let _GeneratorIteratorOfE = () => (_GeneratorIteratorOfE = dart.constFn(core._GeneratorIterator$(E)))();
+  let EmptyIterableOfE = () => (EmptyIterableOfE = dart.constFn(_internal.EmptyIterable$(E)))();
+  let _GeneratorIterableOfE = () => (_GeneratorIterableOfE = dart.constFn(core._GeneratorIterable$(E)))();
+  class _GeneratorIterable extends core.Iterable$(E) {
+    new(end, generator) {
+      this[_end$] = end;
+      this[_start$0] = 0;
+      this[_generator$] = generator != null ? generator : _GeneratorOfE().as(core._GeneratorIterable._id);
+      super.new();
+    }
+    slice(start, end, generator) {
+      this[_start$0] = start;
+      this[_end$] = end;
+      this[_generator$] = generator;
       super.new();
     }
     get iterator() {
-      return new core.RuneIterator(this.string);
-    }
-    get last() {
-      if (this.string[dartx.length] == 0) {
-        dart.throw(new core.StateError('No elements.'));
-      }
-      let length = this.string[dartx.length];
-      let code = this.string[dartx.codeUnitAt](dart.notNull(length) - 1);
-      if (dart.test(core._isTrailSurrogate(code)) && dart.notNull(this.string[dartx.length]) > 1) {
-        let previousCode = this.string[dartx.codeUnitAt](dart.notNull(length) - 2);
-        if (dart.test(core._isLeadSurrogate(previousCode))) {
-          return core._combineSurrogatePair(previousCode, code);
-        }
-      }
-      return code;
-    }
-  };
-  dart.addSimpleTypeTests(core.Runes);
-  dart.setSignature(core.Runes, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Runes, [core.String])}),
-    fields: () => ({string: core.String}),
-    getters: () => ({iterator: dart.definiteFunctionType(core.RuneIterator, [])})
-  });
-  dart.defineExtensionMembers(core.Runes, ['iterator', 'last']);
-  core._isLeadSurrogate = function(code) {
-    return (dart.notNull(code) & 64512) == 55296;
-  };
-  dart.fn(core._isLeadSurrogate, intTobool());
-  core._isTrailSurrogate = function(code) {
-    return (dart.notNull(code) & 64512) == 56320;
-  };
-  dart.fn(core._isTrailSurrogate, intTobool());
-  core._combineSurrogatePair = function(start, end) {
-    return 65536 + ((dart.notNull(start) & 1023) << 10) + (dart.notNull(end) & 1023);
-  };
-  dart.fn(core._combineSurrogatePair, intAndintToint());
-  const _position$ = Symbol('_position');
-  const _nextPosition = Symbol('_nextPosition');
-  const _currentCodePoint = Symbol('_currentCodePoint');
-  const _checkSplitSurrogate = Symbol('_checkSplitSurrogate');
-  core.RuneIterator = class RuneIterator extends core.Object {
-    new(string) {
-      this.string = string;
-      this[_position$] = 0;
-      this[_nextPosition] = 0;
-      this[_currentCodePoint] = null;
-    }
-    at(string, index) {
-      this.string = string;
-      this[_position$] = index;
-      this[_nextPosition] = index;
-      this[_currentCodePoint] = null;
-      core.RangeError.checkValueInInterval(index, 0, string[dartx.length]);
-      this[_checkSplitSurrogate](index);
-    }
-    [_checkSplitSurrogate](index) {
-      if (dart.notNull(index) > 0 && dart.notNull(index) < dart.notNull(this.string[dartx.length]) && dart.test(core._isLeadSurrogate(this.string[dartx.codeUnitAt](dart.notNull(index) - 1))) && dart.test(core._isTrailSurrogate(this.string[dartx.codeUnitAt](index)))) {
-        dart.throw(new core.ArgumentError(dart.str`Index inside surrogate pair: ${index}`));
-      }
-    }
-    get rawIndex() {
-      return this[_position$] != this[_nextPosition] ? this[_position$] : null;
-    }
-    set rawIndex(rawIndex) {
-      core.RangeError.checkValidIndex(rawIndex, this.string, "rawIndex");
-      this.reset(rawIndex);
-      this.moveNext();
-    }
-    reset(rawIndex) {
-      if (rawIndex === void 0) rawIndex = 0;
-      core.RangeError.checkValueInInterval(rawIndex, 0, this.string[dartx.length], "rawIndex");
-      this[_checkSplitSurrogate](rawIndex);
-      this[_position$] = this[_nextPosition] = rawIndex;
-      this[_currentCodePoint] = null;
-    }
-    get current() {
-      return this[_currentCodePoint];
-    }
-    get currentSize() {
-      return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position$]);
-    }
-    get currentAsString() {
-      if (this[_position$] == this[_nextPosition]) return null;
-      if (dart.notNull(this[_position$]) + 1 == this[_nextPosition]) return this.string[dartx._get](this[_position$]);
-      return this.string[dartx.substring](this[_position$], this[_nextPosition]);
-    }
-    moveNext() {
-      this[_position$] = this[_nextPosition];
-      if (this[_position$] == this.string[dartx.length]) {
-        this[_currentCodePoint] = null;
-        return false;
-      }
-      let codeUnit = this.string[dartx.codeUnitAt](this[_position$]);
-      let nextPosition = dart.notNull(this[_position$]) + 1;
-      if (dart.test(core._isLeadSurrogate(codeUnit)) && nextPosition < dart.notNull(this.string[dartx.length])) {
-        let nextCodeUnit = this.string[dartx.codeUnitAt](nextPosition);
-        if (dart.test(core._isTrailSurrogate(nextCodeUnit))) {
-          this[_nextPosition] = nextPosition + 1;
-          this[_currentCodePoint] = core._combineSurrogatePair(codeUnit, nextCodeUnit);
-          return true;
-        }
-      }
-      this[_nextPosition] = nextPosition;
-      this[_currentCodePoint] = codeUnit;
-      return true;
-    }
-    movePrevious() {
-      this[_nextPosition] = this[_position$];
-      if (this[_position$] == 0) {
-        this[_currentCodePoint] = null;
-        return false;
-      }
-      let position = dart.notNull(this[_position$]) - 1;
-      let codeUnit = this.string[dartx.codeUnitAt](position);
-      if (dart.test(core._isTrailSurrogate(codeUnit)) && position > 0) {
-        let prevCodeUnit = this.string[dartx.codeUnitAt](position - 1);
-        if (dart.test(core._isLeadSurrogate(prevCodeUnit))) {
-          this[_position$] = position - 1;
-          this[_currentCodePoint] = core._combineSurrogatePair(prevCodeUnit, codeUnit);
-          return true;
-        }
-      }
-      this[_position$] = position;
-      this[_currentCodePoint] = codeUnit;
-      return true;
-    }
-  };
-  dart.defineNamedConstructor(core.RuneIterator, 'at');
-  core.RuneIterator[dart.implements] = () => [BidirectionalIteratorOfint()];
-  dart.setSignature(core.RuneIterator, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(core.RuneIterator, [core.String]),
-      at: dart.definiteFunctionType(core.RuneIterator, [core.String, core.int])
-    }),
-    fields: () => ({
-      string: core.String,
-      [_position$]: core.int,
-      [_nextPosition]: core.int,
-      [_currentCodePoint]: core.int
-    }),
-    getters: () => ({
-      rawIndex: dart.definiteFunctionType(core.int, []),
-      current: dart.definiteFunctionType(core.int, []),
-      currentSize: dart.definiteFunctionType(core.int, []),
-      currentAsString: dart.definiteFunctionType(core.String, [])
-    }),
-    setters: () => ({rawIndex: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [_checkSplitSurrogate]: dart.definiteFunctionType(dart.void, [core.int]),
-      reset: dart.definiteFunctionType(dart.void, [], [core.int]),
-      moveNext: dart.definiteFunctionType(core.bool, []),
-      movePrevious: dart.definiteFunctionType(core.bool, [])
-    })
-  });
-  const _contents = Symbol('_contents');
-  const _writeString = Symbol('_writeString');
-  core.StringBuffer = class StringBuffer extends core.Object {
-    new(content) {
-      if (content === void 0) content = "";
-      this[_contents] = dart.str`${content}`;
+      return new (_GeneratorIteratorOfE())(this[_start$0], this[_end$], this[_generator$]);
     }
     get length() {
-      return this[_contents][dartx.length];
+      return dart.notNull(this[_end$]) - dart.notNull(this[_start$0]);
     }
-    get isEmpty() {
-      return this.length == 0;
+    skip(count) {
+      core.RangeError.checkNotNegative(count, "count");
+      if (count == 0) return this;
+      let newStart = dart.notNull(this[_start$0]) + dart.notNull(count);
+      if (newStart >= dart.notNull(this[_end$])) return new (EmptyIterableOfE())();
+      return new (_GeneratorIterableOfE()).slice(newStart, this[_end$], this[_generator$]);
     }
-    get isNotEmpty() {
-      return !dart.test(this.isEmpty);
+    take(count) {
+      core.RangeError.checkNotNegative(count, "count");
+      if (count == 0) return new (EmptyIterableOfE())();
+      let newEnd = dart.notNull(this[_start$0]) + dart.notNull(count);
+      if (newEnd >= dart.notNull(this[_end$])) return this;
+      return new (_GeneratorIterableOfE()).slice(this[_start$0], newEnd, this[_generator$]);
     }
-    write(obj) {
-      this[_writeString](dart.str`${obj}`);
+    static _id(n) {
+      return n;
     }
-    writeCharCode(charCode) {
-      this[_writeString](core.String.fromCharCode(charCode));
-    }
-    writeAll(objects, separator) {
-      if (separator === void 0) separator = "";
-      this[_contents] = core.StringBuffer._writeAll(this[_contents], objects, separator);
-    }
-    writeln(obj) {
-      if (obj === void 0) obj = "";
-      this[_writeString](dart.str`${obj}\n`);
-    }
-    clear() {
-      this[_contents] = "";
-    }
-    toString() {
-      return _js_helper.Primitives.flattenString(this[_contents]);
-    }
-    [_writeString](str) {
-      this[_contents] = _js_helper.Primitives.stringConcatUnchecked(this[_contents], core.String._check(str));
-    }
-    static _writeAll(string, objects, separator) {
-      let iterator = objects[dartx.iterator];
-      if (!dart.test(iterator.moveNext())) return string;
-      if (dart.test(separator[dartx.isEmpty])) {
-        do {
-          string = core.StringBuffer._writeOne(string, iterator.current);
-        } while (dart.test(iterator.moveNext()));
-      } else {
-        string = core.StringBuffer._writeOne(string, iterator.current);
-        while (dart.test(iterator.moveNext())) {
-          string = core.StringBuffer._writeOne(string, separator);
-          string = core.StringBuffer._writeOne(string, iterator.current);
-        }
-      }
-      return string;
-    }
-    static _writeOne(string, obj) {
-      return _js_helper.Primitives.stringConcatUnchecked(string, dart.str`${obj}`);
-    }
-  };
-  core.StringBuffer[dart.implements] = () => [core.StringSink];
-  dart.setSignature(core.StringBuffer, {
-    constructors: () => ({new: dart.definiteFunctionType(core.StringBuffer, [], [core.Object])}),
-    fields: () => ({[_contents]: core.String}),
-    getters: () => ({
-      length: dart.definiteFunctionType(core.int, []),
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }
+  dart.defineNamedConstructor(_GeneratorIterable, 'slice');
+  _GeneratorIterable[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(_GeneratorIterable, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(core._GeneratorIterable$(E), [core.int, _GeneratorOfE()]),
+      slice: dart.definiteFunctionType(core._GeneratorIterable$(E), [core.int, core.int, _GeneratorOfE()])
     }),
-    methods: () => ({
-      write: dart.definiteFunctionType(dart.void, [core.Object]),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
-      writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      clear: dart.definiteFunctionType(dart.void, []),
-      [_writeString]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+    fields: () => ({
+      [_start$0]: core.int,
+      [_end$]: core.int,
+      [_generator$]: _GeneratorOfE()
     }),
-    statics: () => ({
-      _writeAll: dart.definiteFunctionType(core.String, [core.String, core.Iterable, core.String]),
-      _writeOne: dart.definiteFunctionType(core.String, [core.String, core.Object])
-    }),
-    names: ['_writeAll', '_writeOne']
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    statics: () => ({_id: dart.definiteFunctionType(core.int, [core.int])}),
+    names: ['_id']
   });
-  core.Symbol = class Symbol extends core.Object {
-    static new(name) {
-      return new _internal.Symbol(name);
+  dart.defineExtensionMembers(_GeneratorIterable, ['skip', 'take', 'iterator', 'length']);
+  return _GeneratorIterable;
+});
+core._GeneratorIterable = _GeneratorIterable();
+const _index$1 = Symbol('_index');
+const _current$3 = Symbol('_current');
+core._GeneratorIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  let _GeneratorOfE = () => (_GeneratorOfE = dart.constFn(core._Generator$(E)))();
+  class _GeneratorIterator extends core.Object {
+    new(index, end, generator) {
+      this[_index$1] = index;
+      this[_end$] = end;
+      this[_generator$] = generator;
+      this[_current$3] = null;
     }
-  };
-  dart.setSignature(core.Symbol, {
-    constructors: () => ({new: dart.definiteFunctionType(core.Symbol, [core.String])})
-  });
-  const _userInfo = Symbol('_userInfo');
-  const _host = Symbol('_host');
-  const _port = Symbol('_port');
-  const _path = Symbol('_path');
-  const _query = Symbol('_query');
-  const _fragment = Symbol('_fragment');
-  const _pathSegments = Symbol('_pathSegments');
-  const _queryParameters = Symbol('_queryParameters');
-  const _queryParameterLists = Symbol('_queryParameterLists');
-  const _writeAuthority = Symbol('_writeAuthority');
-  let const$51;
-  const _mergePaths = Symbol('_mergePaths');
-  const _toWindowsFilePath = Symbol('_toWindowsFilePath');
-  const _toFilePath = Symbol('_toFilePath');
-  const _isPathAbsolute = Symbol('_isPathAbsolute');
-  core.Uri = class Uri extends core.Object {
-    _internal(scheme, userInfo, host, port, path, query, fragment) {
-      this.scheme = scheme;
-      this[_userInfo] = userInfo;
-      this[_host] = host;
-      this[_port] = port;
-      this[_path] = path;
-      this[_query] = query;
-      this[_fragment] = fragment;
-      this[_pathSegments] = null;
-      this[_queryParameters] = null;
-      this[_queryParameterLists] = null;
-    }
-    static new(opts) {
-      let scheme = opts && 'scheme' in opts ? opts.scheme : "";
-      let userInfo = opts && 'userInfo' in opts ? opts.userInfo : "";
-      let host = opts && 'host' in opts ? opts.host : null;
-      let port = opts && 'port' in opts ? opts.port : null;
-      let path = opts && 'path' in opts ? opts.path : null;
-      let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
-      let query = opts && 'query' in opts ? opts.query : null;
-      let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
-      let fragment = opts && 'fragment' in opts ? opts.fragment : null;
-      scheme = core.Uri._makeScheme(scheme, 0, core.Uri._stringOrNullLength(scheme));
-      userInfo = core.Uri._makeUserInfo(userInfo, 0, core.Uri._stringOrNullLength(userInfo));
-      host = core.Uri._makeHost(host, 0, core.Uri._stringOrNullLength(host), false);
-      if (query == "") query = null;
-      query = core.Uri._makeQuery(query, 0, core.Uri._stringOrNullLength(query), queryParameters);
-      fragment = core.Uri._makeFragment(fragment, 0, core.Uri._stringOrNullLength(fragment));
-      port = core.Uri._makePort(port, scheme);
-      let isFile = scheme == "file";
-      if (host == null && (dart.test(userInfo[dartx.isNotEmpty]) || port != null || isFile)) {
-        host = "";
-      }
-      let hasAuthority = host != null;
-      path = core.Uri._makePath(path, 0, core.Uri._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
-      if (dart.test(scheme[dartx.isEmpty]) && host == null && !dart.test(path[dartx.startsWith]('/'))) {
-        path = core.Uri._normalizeRelativePath(path);
+    moveNext() {
+      if (dart.notNull(this[_index$1]) < dart.notNull(this[_end$])) {
+        this[_current$3] = this[_generator$](this[_index$1]);
+        this[_index$1] = dart.notNull(this[_index$1]) + 1;
+        return true;
       } else {
-        path = core.Uri._removeDotSegments(path);
+        this[_current$3] = null;
+        return false;
       }
-      return new core.Uri._internal(scheme, userInfo, host, port, path, query, fragment);
     }
-    static http(authority, unencodedPath, queryParameters) {
-      if (queryParameters === void 0) queryParameters = null;
-      return core.Uri._makeHttpUri("http", authority, unencodedPath, queryParameters);
+    get current() {
+      return this[_current$3];
     }
-    static https(authority, unencodedPath, queryParameters) {
-      if (queryParameters === void 0) queryParameters = null;
-      return core.Uri._makeHttpUri("https", authority, unencodedPath, queryParameters);
+  }
+  dart.addTypeTests(_GeneratorIterator);
+  _GeneratorIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_GeneratorIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(core._GeneratorIterator$(E), [core.int, core.int, _GeneratorOfE()])}),
+    fields: () => ({
+      [_end$]: core.int,
+      [_generator$]: _GeneratorOfE(),
+      [_index$1]: core.int,
+      [_current$3]: E
+    }),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _GeneratorIterator;
+});
+core._GeneratorIterator = _GeneratorIterator();
+core.BidirectionalIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class BidirectionalIterator extends core.Object {}
+  dart.addTypeTests(BidirectionalIterator);
+  BidirectionalIterator[dart.implements] = () => [IteratorOfE()];
+  return BidirectionalIterator;
+});
+core.BidirectionalIterator = BidirectionalIterator();
+core.Map$ = dart.generic((K, V) => {
+  let JsLinkedHashMapOfK$V = () => (JsLinkedHashMapOfK$V = dart.constFn(_js_helper.JsLinkedHashMap$(K, V)))();
+  let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
+  let UnmodifiableMapViewOfK$V = () => (UnmodifiableMapViewOfK$V = dart.constFn(collection.UnmodifiableMapView$(K, V)))();
+  let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
+  let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
+  let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
+  let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
+  let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
+  class Map extends core.Object {
+    static new() {
+      return JsLinkedHashMapOfK$V().es6();
     }
-    get authority() {
-      if (!dart.test(this.hasAuthority)) return "";
-      let sb = new core.StringBuffer();
-      this[_writeAuthority](sb);
-      return sb.toString();
+    static from(other) {
+      return LinkedHashMapOfK$V().from(other);
     }
-    get userInfo() {
-      return this[_userInfo];
+    static unmodifiable(other) {
+      return new (UnmodifiableMapViewOfK$V())(MapOfK$V().from(other));
     }
-    get host() {
-      if (this[_host] == null) return "";
-      if (dart.test(this[_host][dartx.startsWith]('['))) {
-        return this[_host][dartx.substring](1, dart.notNull(this[_host][dartx.length]) - 1);
-      }
-      return this[_host];
+    static identity() {
+      return LinkedHashMapOfK$V().identity();
     }
-    get port() {
-      if (this[_port] == null) return core.Uri._defaultPort(this.scheme);
-      return this[_port];
+    static fromIterable(iterable, opts) {
+      return LinkedHashMapOfK$V().fromIterable(iterable, opts);
     }
-    static _defaultPort(scheme) {
-      if (scheme == "http") return 80;
-      if (scheme == "https") return 443;
+    static fromIterables(keys, values) {
+      return LinkedHashMapOfK$V().fromIterables(keys, values);
+    }
+  }
+  dart.addTypeTests(Map);
+  dart.setSignature(Map, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(core.Map$(K, V), []),
+      from: dart.definiteFunctionType(core.Map$(K, V), [core.Map]),
+      unmodifiable: dart.definiteFunctionType(core.Map$(K, V), [core.Map]),
+      identity: dart.definiteFunctionType(core.Map$(K, V), []),
+      fromIterable: dart.definiteFunctionType(core.Map$(K, V), [core.Iterable], {key: dynamicToK(), value: dynamicToV()}),
+      fromIterables: dart.definiteFunctionType(core.Map$(K, V), [IterableOfK(), IterableOfV()])
+    })
+  });
+  return Map;
+});
+core.Map = Map$();
+core.Null = class Null extends core.Object {
+  static _uninstantiable() {
+    dart.throw(new core.UnsupportedError('class Null cannot be instantiated'));
+  }
+  toString() {
+    return "null";
+  }
+};
+core.Null.is = function is_Null(o) {
+  return o == null;
+};
+core.Null.as = function as_Null(o) {
+  if (o == null) return o;
+  return dart.as(o, core.Null);
+};
+core.Null._check = function check_Null(o) {
+  if (o == null) return o;
+  return dart.check(o, core.Null);
+};
+dart.setSignature(core.Null, {
+  constructors: () => ({_uninstantiable: dart.definiteFunctionType(core.Null, [])})
+});
+core.Pattern = class Pattern extends core.Object {};
+core.print = function(object) {
+  let line = dart.str`${object}`;
+  if (_internal.printToZone == null) {
+    _internal.printToConsole(line);
+  } else {
+    dart.dcall(_internal.printToZone, line);
+  }
+};
+dart.fn(core.print, ObjectTovoid());
+core.RegExp = class RegExp extends core.Object {
+  static new(source, opts) {
+    let multiLine = opts && 'multiLine' in opts ? opts.multiLine : false;
+    let caseSensitive = opts && 'caseSensitive' in opts ? opts.caseSensitive : true;
+    return new _js_helper.JSSyntaxRegExp(source, {multiLine: multiLine, caseSensitive: caseSensitive});
+  }
+};
+core.RegExp[dart.implements] = () => [core.Pattern];
+dart.setSignature(core.RegExp, {
+  constructors: () => ({new: dart.definiteFunctionType(core.RegExp, [core.String], {multiLine: core.bool, caseSensitive: core.bool})})
+});
+core.Set$ = dart.generic(E => {
+  let LinkedHashSetOfE = () => (LinkedHashSetOfE = dart.constFn(collection.LinkedHashSet$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  class Set extends core.Iterable$(E) {
+    static new() {
+      return LinkedHashSetOfE().new();
+    }
+    static identity() {
+      return LinkedHashSetOfE().identity();
+    }
+    static from(elements) {
+      return LinkedHashSetOfE().from(elements);
+    }
+  }
+  Set[dart.implements] = () => [_internal.EfficientLength];
+  dart.setSignature(Set, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(core.Set$(E), []),
+      identity: dart.definiteFunctionType(core.Set$(E), []),
+      from: dart.definiteFunctionType(core.Set$(E), [IterableOfE()])
+    })
+  });
+  return Set;
+});
+core.Set = Set();
+core.Sink$ = dart.generic(T => {
+  class Sink extends core.Object {}
+  dart.addTypeTests(Sink);
+  return Sink;
+});
+core.Sink = Sink();
+core.StackTrace = class StackTrace extends core.Object {
+  new() {
+  }
+  static fromString(stackTraceString) {
+    return new core._StringStackTrace(stackTraceString);
+  }
+  static get current() {
+    return _js_helper.getTraceFromException(new Error());
+  }
+};
+dart.setSignature(core.StackTrace, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(core.StackTrace, []),
+    fromString: dart.definiteFunctionType(core.StackTrace, [core.String])
+  }),
+  sgetters: () => ({current: dart.definiteFunctionType(core.StackTrace, [])})
+});
+const _stackTrace = Symbol('_stackTrace');
+core._StringStackTrace = class _StringStackTrace extends core.Object {
+  new(stackTrace) {
+    this[_stackTrace] = stackTrace;
+  }
+  toString() {
+    return this[_stackTrace];
+  }
+};
+core._StringStackTrace[dart.implements] = () => [core.StackTrace];
+dart.setSignature(core._StringStackTrace, {
+  constructors: () => ({new: dart.definiteFunctionType(core._StringStackTrace, [core.String])}),
+  fields: () => ({[_stackTrace]: core.String})
+});
+const _stop = Symbol('_stop');
+core.Stopwatch = class Stopwatch extends core.Object {
+  get frequency() {
+    return core.Stopwatch._frequency;
+  }
+  new() {
+    this[_start$0] = null;
+    this[_stop] = null;
+    core.Stopwatch._initTicker();
+  }
+  start() {
+    if (dart.test(this.isRunning)) return;
+    if (this[_start$0] == null) {
+      this[_start$0] = core.Stopwatch._now();
+    } else {
+      this[_start$0] = dart.notNull(core.Stopwatch._now()) - (dart.notNull(this[_stop]) - dart.notNull(this[_start$0]));
+      this[_stop] = null;
+    }
+  }
+  stop() {
+    if (!dart.test(this.isRunning)) return;
+    this[_stop] = core.Stopwatch._now();
+  }
+  reset() {
+    if (this[_start$0] == null) return;
+    this[_start$0] = core.Stopwatch._now();
+    if (this[_stop] != null) {
+      this[_stop] = this[_start$0];
+    }
+  }
+  get elapsedTicks() {
+    if (this[_start$0] == null) {
       return 0;
     }
-    get path() {
-      return this[_path];
+    return this[_stop] == null ? dart.notNull(core.Stopwatch._now()) - dart.notNull(this[_start$0]) : dart.notNull(this[_stop]) - dart.notNull(this[_start$0]);
+  }
+  get elapsed() {
+    return new core.Duration({microseconds: this.elapsedMicroseconds});
+  }
+  get elapsedMicroseconds() {
+    return (dart.notNull(this.elapsedTicks) * 1000000 / dart.notNull(this.frequency))[dartx.truncate]();
+  }
+  get elapsedMilliseconds() {
+    return (dart.notNull(this.elapsedTicks) * 1000 / dart.notNull(this.frequency))[dartx.truncate]();
+  }
+  get isRunning() {
+    return this[_start$0] != null && this[_stop] == null;
+  }
+  static _initTicker() {
+    _js_helper.Primitives.initTicker();
+    core.Stopwatch._frequency = _js_helper.Primitives.timerFrequency;
+  }
+  static _now() {
+    return core.int._check(dart.dsend(_js_helper.Primitives, 'timerTicks'));
+  }
+};
+dart.setSignature(core.Stopwatch, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Stopwatch, [])}),
+  fields: () => ({
+    [_start$0]: core.int,
+    [_stop]: core.int
+  }),
+  getters: () => ({
+    frequency: dart.definiteFunctionType(core.int, []),
+    elapsedTicks: dart.definiteFunctionType(core.int, []),
+    elapsed: dart.definiteFunctionType(core.Duration, []),
+    elapsedMicroseconds: dart.definiteFunctionType(core.int, []),
+    elapsedMilliseconds: dart.definiteFunctionType(core.int, []),
+    isRunning: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    start: dart.definiteFunctionType(dart.void, []),
+    stop: dart.definiteFunctionType(dart.void, []),
+    reset: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({_frequency: core.int}),
+  statics: () => ({
+    _initTicker: dart.definiteFunctionType(dart.void, []),
+    _now: dart.definiteFunctionType(core.int, [])
+  }),
+  names: ['_initTicker', '_now']
+});
+core.Stopwatch._frequency = null;
+core.Runes = class Runes extends core.Iterable$(core.int) {
+  new(string) {
+    this.string = string;
+    super.new();
+  }
+  get iterator() {
+    return new core.RuneIterator(this.string);
+  }
+  get last() {
+    if (this.string[dartx.length] == 0) {
+      dart.throw(new core.StateError('No elements.'));
     }
-    get query() {
-      return this[_query] == null ? "" : this[_query];
-    }
-    get fragment() {
-      return this[_fragment] == null ? "" : this[_fragment];
-    }
-    static parse(uri, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      let EOI = -1;
-      let scheme = "";
-      let userinfo = "";
-      let host = null;
-      let port = null;
-      let path = null;
-      let query = null;
-      let fragment = null;
-      if (end == null) end = uri[dartx.length];
-      let index = start;
-      let pathStart = start;
-      let char = EOI;
-      function parseAuth() {
-        if (index == end) {
-          char = EOI;
-          return;
-        }
-        let authStart = index;
-        let lastColon = -1;
-        let lastAt = -1;
-        char = uri[dartx.codeUnitAt](index);
-        while (dart.notNull(index) < dart.notNull(end)) {
-          char = uri[dartx.codeUnitAt](index);
-          if (char == core.Uri._SLASH || char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
-            break;
-          }
-          if (char == core.Uri._AT_SIGN) {
-            lastAt = index;
-            lastColon = -1;
-          } else if (char == core.Uri._COLON) {
-            lastColon = index;
-          } else if (char == core.Uri._LEFT_BRACKET) {
-            lastColon = -1;
-            let endBracket = uri[dartx.indexOf](']', dart.notNull(index) + 1);
-            if (endBracket == -1) {
-              index = end;
-              char = EOI;
-              break;
-            } else {
-              index = endBracket;
-            }
-          }
-          index = dart.notNull(index) + 1;
-          char = EOI;
-        }
-        let hostStart = authStart;
-        let hostEnd = index;
-        if (dart.notNull(lastAt) >= 0) {
-          userinfo = core.Uri._makeUserInfo(uri, authStart, lastAt);
-          hostStart = dart.notNull(lastAt) + 1;
-        }
-        if (dart.notNull(lastColon) >= 0) {
-          let portNumber = null;
-          if (dart.notNull(lastColon) + 1 < dart.notNull(index)) {
-            portNumber = 0;
-            for (let i = dart.notNull(lastColon) + 1; i < dart.notNull(index); i++) {
-              let digit = uri[dartx.codeUnitAt](i);
-              if (core.Uri._ZERO > dart.notNull(digit) || core.Uri._NINE < dart.notNull(digit)) {
-                core.Uri._fail(uri, i, "Invalid port number");
-              }
-              portNumber = dart.notNull(portNumber) * 10 + (dart.notNull(digit) - core.Uri._ZERO);
-            }
-          }
-          port = core.Uri._makePort(portNumber, scheme);
-          hostEnd = lastColon;
-        }
-        host = core.Uri._makeHost(uri, hostStart, hostEnd, true);
-        if (dart.notNull(index) < dart.notNull(end)) {
-          char = uri[dartx.codeUnitAt](index);
-        }
+    let length = this.string[dartx.length];
+    let code = this.string[dartx.codeUnitAt](dart.notNull(length) - 1);
+    if (dart.test(core._isTrailSurrogate(code)) && dart.notNull(this.string[dartx.length]) > 1) {
+      let previousCode = this.string[dartx.codeUnitAt](dart.notNull(length) - 2);
+      if (dart.test(core._isLeadSurrogate(previousCode))) {
+        return core._combineSurrogatePair(previousCode, code);
       }
-      dart.fn(parseAuth, VoidTovoid$());
-      let NOT_IN_PATH = 0;
-      let IN_PATH = 1;
-      let ALLOW_AUTH = 2;
-      let state = NOT_IN_PATH;
-      let i = index;
-      while (dart.notNull(i) < dart.notNull(end)) {
-        char = uri[dartx.codeUnitAt](i);
-        if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
-          state = NOT_IN_PATH;
+    }
+    return code;
+  }
+};
+dart.addSimpleTypeTests(core.Runes);
+dart.setSignature(core.Runes, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Runes, [core.String])}),
+  fields: () => ({string: core.String}),
+  getters: () => ({iterator: dart.definiteFunctionType(core.RuneIterator, [])})
+});
+dart.defineExtensionMembers(core.Runes, ['iterator', 'last']);
+core._isLeadSurrogate = function(code) {
+  return (dart.notNull(code) & 64512) == 55296;
+};
+dart.fn(core._isLeadSurrogate, intTobool());
+core._isTrailSurrogate = function(code) {
+  return (dart.notNull(code) & 64512) == 56320;
+};
+dart.fn(core._isTrailSurrogate, intTobool());
+core._combineSurrogatePair = function(start, end) {
+  return 65536 + ((dart.notNull(start) & 1023) << 10) + (dart.notNull(end) & 1023);
+};
+dart.fn(core._combineSurrogatePair, intAndintToint());
+const _position$ = Symbol('_position');
+const _nextPosition = Symbol('_nextPosition');
+const _currentCodePoint = Symbol('_currentCodePoint');
+const _checkSplitSurrogate = Symbol('_checkSplitSurrogate');
+core.RuneIterator = class RuneIterator extends core.Object {
+  new(string) {
+    this.string = string;
+    this[_position$] = 0;
+    this[_nextPosition] = 0;
+    this[_currentCodePoint] = null;
+  }
+  at(string, index) {
+    this.string = string;
+    this[_position$] = index;
+    this[_nextPosition] = index;
+    this[_currentCodePoint] = null;
+    core.RangeError.checkValueInInterval(index, 0, string[dartx.length]);
+    this[_checkSplitSurrogate](index);
+  }
+  [_checkSplitSurrogate](index) {
+    if (dart.notNull(index) > 0 && dart.notNull(index) < dart.notNull(this.string[dartx.length]) && dart.test(core._isLeadSurrogate(this.string[dartx.codeUnitAt](dart.notNull(index) - 1))) && dart.test(core._isTrailSurrogate(this.string[dartx.codeUnitAt](index)))) {
+      dart.throw(new core.ArgumentError(dart.str`Index inside surrogate pair: ${index}`));
+    }
+  }
+  get rawIndex() {
+    return this[_position$] != this[_nextPosition] ? this[_position$] : null;
+  }
+  set rawIndex(rawIndex) {
+    core.RangeError.checkValidIndex(rawIndex, this.string, "rawIndex");
+    this.reset(rawIndex);
+    this.moveNext();
+  }
+  reset(rawIndex) {
+    if (rawIndex === void 0) rawIndex = 0;
+    core.RangeError.checkValueInInterval(rawIndex, 0, this.string[dartx.length], "rawIndex");
+    this[_checkSplitSurrogate](rawIndex);
+    this[_position$] = this[_nextPosition] = rawIndex;
+    this[_currentCodePoint] = null;
+  }
+  get current() {
+    return this[_currentCodePoint];
+  }
+  get currentSize() {
+    return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position$]);
+  }
+  get currentAsString() {
+    if (this[_position$] == this[_nextPosition]) return null;
+    if (dart.notNull(this[_position$]) + 1 == this[_nextPosition]) return this.string[dartx._get](this[_position$]);
+    return this.string[dartx.substring](this[_position$], this[_nextPosition]);
+  }
+  moveNext() {
+    this[_position$] = this[_nextPosition];
+    if (this[_position$] == this.string[dartx.length]) {
+      this[_currentCodePoint] = null;
+      return false;
+    }
+    let codeUnit = this.string[dartx.codeUnitAt](this[_position$]);
+    let nextPosition = dart.notNull(this[_position$]) + 1;
+    if (dart.test(core._isLeadSurrogate(codeUnit)) && nextPosition < dart.notNull(this.string[dartx.length])) {
+      let nextCodeUnit = this.string[dartx.codeUnitAt](nextPosition);
+      if (dart.test(core._isTrailSurrogate(nextCodeUnit))) {
+        this[_nextPosition] = nextPosition + 1;
+        this[_currentCodePoint] = core._combineSurrogatePair(codeUnit, nextCodeUnit);
+        return true;
+      }
+    }
+    this[_nextPosition] = nextPosition;
+    this[_currentCodePoint] = codeUnit;
+    return true;
+  }
+  movePrevious() {
+    this[_nextPosition] = this[_position$];
+    if (this[_position$] == 0) {
+      this[_currentCodePoint] = null;
+      return false;
+    }
+    let position = dart.notNull(this[_position$]) - 1;
+    let codeUnit = this.string[dartx.codeUnitAt](position);
+    if (dart.test(core._isTrailSurrogate(codeUnit)) && position > 0) {
+      let prevCodeUnit = this.string[dartx.codeUnitAt](position - 1);
+      if (dart.test(core._isLeadSurrogate(prevCodeUnit))) {
+        this[_position$] = position - 1;
+        this[_currentCodePoint] = core._combineSurrogatePair(prevCodeUnit, codeUnit);
+        return true;
+      }
+    }
+    this[_position$] = position;
+    this[_currentCodePoint] = codeUnit;
+    return true;
+  }
+};
+dart.defineNamedConstructor(core.RuneIterator, 'at');
+core.RuneIterator[dart.implements] = () => [BidirectionalIteratorOfint()];
+dart.setSignature(core.RuneIterator, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(core.RuneIterator, [core.String]),
+    at: dart.definiteFunctionType(core.RuneIterator, [core.String, core.int])
+  }),
+  fields: () => ({
+    string: core.String,
+    [_position$]: core.int,
+    [_nextPosition]: core.int,
+    [_currentCodePoint]: core.int
+  }),
+  getters: () => ({
+    rawIndex: dart.definiteFunctionType(core.int, []),
+    current: dart.definiteFunctionType(core.int, []),
+    currentSize: dart.definiteFunctionType(core.int, []),
+    currentAsString: dart.definiteFunctionType(core.String, [])
+  }),
+  setters: () => ({rawIndex: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [_checkSplitSurrogate]: dart.definiteFunctionType(dart.void, [core.int]),
+    reset: dart.definiteFunctionType(dart.void, [], [core.int]),
+    moveNext: dart.definiteFunctionType(core.bool, []),
+    movePrevious: dart.definiteFunctionType(core.bool, [])
+  })
+});
+const _contents = Symbol('_contents');
+const _writeString = Symbol('_writeString');
+core.StringBuffer = class StringBuffer extends core.Object {
+  new(content) {
+    if (content === void 0) content = "";
+    this[_contents] = dart.str`${content}`;
+  }
+  get length() {
+    return this[_contents][dartx.length];
+  }
+  get isEmpty() {
+    return this.length == 0;
+  }
+  get isNotEmpty() {
+    return !dart.test(this.isEmpty);
+  }
+  write(obj) {
+    this[_writeString](dart.str`${obj}`);
+  }
+  writeCharCode(charCode) {
+    this[_writeString](core.String.fromCharCode(charCode));
+  }
+  writeAll(objects, separator) {
+    if (separator === void 0) separator = "";
+    this[_contents] = core.StringBuffer._writeAll(this[_contents], objects, separator);
+  }
+  writeln(obj) {
+    if (obj === void 0) obj = "";
+    this[_writeString](dart.str`${obj}\n`);
+  }
+  clear() {
+    this[_contents] = "";
+  }
+  toString() {
+    return _js_helper.Primitives.flattenString(this[_contents]);
+  }
+  [_writeString](str) {
+    this[_contents] = _js_helper.Primitives.stringConcatUnchecked(this[_contents], core.String._check(str));
+  }
+  static _writeAll(string, objects, separator) {
+    let iterator = objects[dartx.iterator];
+    if (!dart.test(iterator.moveNext())) return string;
+    if (dart.test(separator[dartx.isEmpty])) {
+      do {
+        string = core.StringBuffer._writeOne(string, iterator.current);
+      } while (dart.test(iterator.moveNext()));
+    } else {
+      string = core.StringBuffer._writeOne(string, iterator.current);
+      while (dart.test(iterator.moveNext())) {
+        string = core.StringBuffer._writeOne(string, separator);
+        string = core.StringBuffer._writeOne(string, iterator.current);
+      }
+    }
+    return string;
+  }
+  static _writeOne(string, obj) {
+    return _js_helper.Primitives.stringConcatUnchecked(string, dart.str`${obj}`);
+  }
+};
+core.StringBuffer[dart.implements] = () => [core.StringSink];
+dart.setSignature(core.StringBuffer, {
+  constructors: () => ({new: dart.definiteFunctionType(core.StringBuffer, [], [core.Object])}),
+  fields: () => ({[_contents]: core.String}),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    write: dart.definiteFunctionType(dart.void, [core.Object]),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
+    writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    [_writeString]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  statics: () => ({
+    _writeAll: dart.definiteFunctionType(core.String, [core.String, core.Iterable, core.String]),
+    _writeOne: dart.definiteFunctionType(core.String, [core.String, core.Object])
+  }),
+  names: ['_writeAll', '_writeOne']
+});
+core.Symbol = class Symbol extends core.Object {
+  static new(name) {
+    return new _internal.Symbol(name);
+  }
+};
+dart.setSignature(core.Symbol, {
+  constructors: () => ({new: dart.definiteFunctionType(core.Symbol, [core.String])})
+});
+const _userInfo = Symbol('_userInfo');
+const _host = Symbol('_host');
+const _port = Symbol('_port');
+const _path = Symbol('_path');
+const _query = Symbol('_query');
+const _fragment = Symbol('_fragment');
+const _pathSegments = Symbol('_pathSegments');
+const _queryParameters = Symbol('_queryParameters');
+const _queryParameterLists = Symbol('_queryParameterLists');
+const _writeAuthority = Symbol('_writeAuthority');
+let const$51;
+const _mergePaths = Symbol('_mergePaths');
+const _toWindowsFilePath = Symbol('_toWindowsFilePath');
+const _toFilePath = Symbol('_toFilePath');
+const _isPathAbsolute = Symbol('_isPathAbsolute');
+core.Uri = class Uri extends core.Object {
+  _internal(scheme, userInfo, host, port, path, query, fragment) {
+    this.scheme = scheme;
+    this[_userInfo] = userInfo;
+    this[_host] = host;
+    this[_port] = port;
+    this[_path] = path;
+    this[_query] = query;
+    this[_fragment] = fragment;
+    this[_pathSegments] = null;
+    this[_queryParameters] = null;
+    this[_queryParameterLists] = null;
+  }
+  static new(opts) {
+    let scheme = opts && 'scheme' in opts ? opts.scheme : "";
+    let userInfo = opts && 'userInfo' in opts ? opts.userInfo : "";
+    let host = opts && 'host' in opts ? opts.host : null;
+    let port = opts && 'port' in opts ? opts.port : null;
+    let path = opts && 'path' in opts ? opts.path : null;
+    let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
+    let query = opts && 'query' in opts ? opts.query : null;
+    let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
+    let fragment = opts && 'fragment' in opts ? opts.fragment : null;
+    scheme = core.Uri._makeScheme(scheme, 0, core.Uri._stringOrNullLength(scheme));
+    userInfo = core.Uri._makeUserInfo(userInfo, 0, core.Uri._stringOrNullLength(userInfo));
+    host = core.Uri._makeHost(host, 0, core.Uri._stringOrNullLength(host), false);
+    if (query == "") query = null;
+    query = core.Uri._makeQuery(query, 0, core.Uri._stringOrNullLength(query), queryParameters);
+    fragment = core.Uri._makeFragment(fragment, 0, core.Uri._stringOrNullLength(fragment));
+    port = core.Uri._makePort(port, scheme);
+    let isFile = scheme == "file";
+    if (host == null && (dart.test(userInfo[dartx.isNotEmpty]) || port != null || isFile)) {
+      host = "";
+    }
+    let hasAuthority = host != null;
+    path = core.Uri._makePath(path, 0, core.Uri._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
+    if (dart.test(scheme[dartx.isEmpty]) && host == null && !dart.test(path[dartx.startsWith]('/'))) {
+      path = core.Uri._normalizeRelativePath(path);
+    } else {
+      path = core.Uri._removeDotSegments(path);
+    }
+    return new core.Uri._internal(scheme, userInfo, host, port, path, query, fragment);
+  }
+  static http(authority, unencodedPath, queryParameters) {
+    if (queryParameters === void 0) queryParameters = null;
+    return core.Uri._makeHttpUri("http", authority, unencodedPath, queryParameters);
+  }
+  static https(authority, unencodedPath, queryParameters) {
+    if (queryParameters === void 0) queryParameters = null;
+    return core.Uri._makeHttpUri("https", authority, unencodedPath, queryParameters);
+  }
+  get authority() {
+    if (!dart.test(this.hasAuthority)) return "";
+    let sb = new core.StringBuffer();
+    this[_writeAuthority](sb);
+    return sb.toString();
+  }
+  get userInfo() {
+    return this[_userInfo];
+  }
+  get host() {
+    if (this[_host] == null) return "";
+    if (dart.test(this[_host][dartx.startsWith]('['))) {
+      return this[_host][dartx.substring](1, dart.notNull(this[_host][dartx.length]) - 1);
+    }
+    return this[_host];
+  }
+  get port() {
+    if (this[_port] == null) return core.Uri._defaultPort(this.scheme);
+    return this[_port];
+  }
+  static _defaultPort(scheme) {
+    if (scheme == "http") return 80;
+    if (scheme == "https") return 443;
+    return 0;
+  }
+  get path() {
+    return this[_path];
+  }
+  get query() {
+    return this[_query] == null ? "" : this[_query];
+  }
+  get fragment() {
+    return this[_fragment] == null ? "" : this[_fragment];
+  }
+  static parse(uri, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    let EOI = -1;
+    let scheme = "";
+    let userinfo = "";
+    let host = null;
+    let port = null;
+    let path = null;
+    let query = null;
+    let fragment = null;
+    if (end == null) end = uri[dartx.length];
+    let index = start;
+    let pathStart = start;
+    let char = EOI;
+    function parseAuth() {
+      if (index == end) {
+        char = EOI;
+        return;
+      }
+      let authStart = index;
+      let lastColon = -1;
+      let lastAt = -1;
+      char = uri[dartx.codeUnitAt](index);
+      while (dart.notNull(index) < dart.notNull(end)) {
+        char = uri[dartx.codeUnitAt](index);
+        if (char == core.Uri._SLASH || char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
           break;
         }
-        if (char == core.Uri._SLASH) {
-          state = i == start ? ALLOW_AUTH : IN_PATH;
-          break;
-        }
-        if (char == core.Uri._COLON) {
-          if (i == start) core.Uri._fail(uri, start, "Invalid empty scheme");
-          scheme = core.Uri._makeScheme(uri, start, i);
-          i = dart.notNull(i) + 1;
-          pathStart = i;
-          if (i == end) {
+        if (char == core.Uri._AT_SIGN) {
+          lastAt = index;
+          lastColon = -1;
+        } else if (char == core.Uri._COLON) {
+          lastColon = index;
+        } else if (char == core.Uri._LEFT_BRACKET) {
+          lastColon = -1;
+          let endBracket = uri[dartx.indexOf](']', dart.notNull(index) + 1);
+          if (endBracket == -1) {
+            index = end;
             char = EOI;
-            state = NOT_IN_PATH;
+            break;
           } else {
-            char = uri[dartx.codeUnitAt](i);
-            if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
-              state = NOT_IN_PATH;
-            } else if (char == core.Uri._SLASH) {
-              state = ALLOW_AUTH;
-            } else {
-              state = IN_PATH;
-            }
+            index = endBracket;
           }
-          break;
         }
-        i = dart.notNull(i) + 1;
+        index = dart.notNull(index) + 1;
         char = EOI;
       }
-      index = i;
-      if (state == ALLOW_AUTH) {
-        dart.assert(char == core.Uri._SLASH);
-        index = dart.notNull(index) + 1;
-        if (index == end) {
+      let hostStart = authStart;
+      let hostEnd = index;
+      if (dart.notNull(lastAt) >= 0) {
+        userinfo = core.Uri._makeUserInfo(uri, authStart, lastAt);
+        hostStart = dart.notNull(lastAt) + 1;
+      }
+      if (dart.notNull(lastColon) >= 0) {
+        let portNumber = null;
+        if (dart.notNull(lastColon) + 1 < dart.notNull(index)) {
+          portNumber = 0;
+          for (let i = dart.notNull(lastColon) + 1; i < dart.notNull(index); i++) {
+            let digit = uri[dartx.codeUnitAt](i);
+            if (core.Uri._ZERO > dart.notNull(digit) || core.Uri._NINE < dart.notNull(digit)) {
+              core.Uri._fail(uri, i, "Invalid port number");
+            }
+            portNumber = dart.notNull(portNumber) * 10 + (dart.notNull(digit) - core.Uri._ZERO);
+          }
+        }
+        port = core.Uri._makePort(portNumber, scheme);
+        hostEnd = lastColon;
+      }
+      host = core.Uri._makeHost(uri, hostStart, hostEnd, true);
+      if (dart.notNull(index) < dart.notNull(end)) {
+        char = uri[dartx.codeUnitAt](index);
+      }
+    }
+    dart.fn(parseAuth, VoidTovoid$());
+    let NOT_IN_PATH = 0;
+    let IN_PATH = 1;
+    let ALLOW_AUTH = 2;
+    let state = NOT_IN_PATH;
+    let i = index;
+    while (dart.notNull(i) < dart.notNull(end)) {
+      char = uri[dartx.codeUnitAt](i);
+      if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
+        state = NOT_IN_PATH;
+        break;
+      }
+      if (char == core.Uri._SLASH) {
+        state = i == start ? ALLOW_AUTH : IN_PATH;
+        break;
+      }
+      if (char == core.Uri._COLON) {
+        if (i == start) core.Uri._fail(uri, start, "Invalid empty scheme");
+        scheme = core.Uri._makeScheme(uri, start, i);
+        i = dart.notNull(i) + 1;
+        pathStart = i;
+        if (i == end) {
           char = EOI;
           state = NOT_IN_PATH;
         } else {
-          char = uri[dartx.codeUnitAt](index);
-          if (char == core.Uri._SLASH) {
-            index = dart.notNull(index) + 1;
-            parseAuth();
-            pathStart = index;
-          }
-          if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN || char == EOI) {
+          char = uri[dartx.codeUnitAt](i);
+          if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
             state = NOT_IN_PATH;
+          } else if (char == core.Uri._SLASH) {
+            state = ALLOW_AUTH;
           } else {
             state = IN_PATH;
           }
         }
+        break;
       }
-      dart.assert(state == IN_PATH || state == NOT_IN_PATH);
-      if (state == IN_PATH) {
-        while ((index = dart.notNull(index) + 1) < dart.notNull(end)) {
-          char = uri[dartx.codeUnitAt](index);
-          if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
-            break;
-          }
-          char = EOI;
-        }
+      i = dart.notNull(i) + 1;
+      char = EOI;
+    }
+    index = i;
+    if (state == ALLOW_AUTH) {
+      dart.assert(char == core.Uri._SLASH);
+      index = dart.notNull(index) + 1;
+      if (index == end) {
+        char = EOI;
         state = NOT_IN_PATH;
-      }
-      dart.assert(state == NOT_IN_PATH);
-      let hasAuthority = host != null;
-      path = core.Uri._makePath(uri, pathStart, index, null, scheme, hasAuthority);
-      if (char == core.Uri._QUESTION) {
-        let numberSignIndex = -1;
-        for (let i = dart.notNull(index) + 1; i < dart.notNull(end); i++) {
-          if (uri[dartx.codeUnitAt](i) == core.Uri._NUMBER_SIGN) {
-            numberSignIndex = i;
-            break;
-          }
+      } else {
+        char = uri[dartx.codeUnitAt](index);
+        if (char == core.Uri._SLASH) {
+          index = dart.notNull(index) + 1;
+          parseAuth();
+          pathStart = index;
         }
-        if (numberSignIndex < 0) {
-          query = core.Uri._makeQuery(uri, dart.notNull(index) + 1, end, null);
+        if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN || char == EOI) {
+          state = NOT_IN_PATH;
         } else {
-          query = core.Uri._makeQuery(uri, dart.notNull(index) + 1, numberSignIndex, null);
-          fragment = core.Uri._makeFragment(uri, numberSignIndex + 1, end);
+          state = IN_PATH;
         }
-      } else if (char == core.Uri._NUMBER_SIGN) {
-        fragment = core.Uri._makeFragment(uri, dart.notNull(index) + 1, end);
       }
-      return new core.Uri._internal(scheme, userinfo, host, port, path, query, fragment);
     }
-    static _fail(uri, index, message) {
-      dart.throw(new core.FormatException(message, uri, index));
+    dart.assert(state == IN_PATH || state == NOT_IN_PATH);
+    if (state == IN_PATH) {
+      while ((index = dart.notNull(index) + 1) < dart.notNull(end)) {
+        char = uri[dartx.codeUnitAt](index);
+        if (char == core.Uri._QUESTION || char == core.Uri._NUMBER_SIGN) {
+          break;
+        }
+        char = EOI;
+      }
+      state = NOT_IN_PATH;
     }
-    static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) {
-      let userInfo = "";
-      let host = null;
-      let port = null;
-      if (authority != null && dart.test(authority[dartx.isNotEmpty])) {
-        let hostStart = 0;
-        let hasUserInfo = false;
-        for (let i = 0; i < dart.notNull(authority[dartx.length]); i++) {
-          if (authority[dartx.codeUnitAt](i) == core.Uri._AT_SIGN) {
-            hasUserInfo = true;
-            userInfo = authority[dartx.substring](0, i);
-            hostStart = i + 1;
-            break;
-          }
+    dart.assert(state == NOT_IN_PATH);
+    let hasAuthority = host != null;
+    path = core.Uri._makePath(uri, pathStart, index, null, scheme, hasAuthority);
+    if (char == core.Uri._QUESTION) {
+      let numberSignIndex = -1;
+      for (let i = dart.notNull(index) + 1; i < dart.notNull(end); i++) {
+        if (uri[dartx.codeUnitAt](i) == core.Uri._NUMBER_SIGN) {
+          numberSignIndex = i;
+          break;
         }
-        let hostEnd = hostStart;
-        if (hostStart < dart.notNull(authority[dartx.length]) && authority[dartx.codeUnitAt](hostStart) == core.Uri._LEFT_BRACKET) {
-          for (; hostEnd < dart.notNull(authority[dartx.length]); hostEnd++) {
-            if (authority[dartx.codeUnitAt](hostEnd) == core.Uri._RIGHT_BRACKET) break;
-          }
-          if (hostEnd == authority[dartx.length]) {
-            dart.throw(new core.FormatException("Invalid IPv6 host entry.", authority, hostStart));
-          }
-          core.Uri.parseIPv6Address(authority, hostStart + 1, hostEnd);
-          hostEnd++;
-          if (hostEnd != authority[dartx.length] && authority[dartx.codeUnitAt](hostEnd) != core.Uri._COLON) {
-            dart.throw(new core.FormatException("Invalid end of authority", authority, hostEnd));
-          }
+      }
+      if (numberSignIndex < 0) {
+        query = core.Uri._makeQuery(uri, dart.notNull(index) + 1, end, null);
+      } else {
+        query = core.Uri._makeQuery(uri, dart.notNull(index) + 1, numberSignIndex, null);
+        fragment = core.Uri._makeFragment(uri, numberSignIndex + 1, end);
+      }
+    } else if (char == core.Uri._NUMBER_SIGN) {
+      fragment = core.Uri._makeFragment(uri, dart.notNull(index) + 1, end);
+    }
+    return new core.Uri._internal(scheme, userinfo, host, port, path, query, fragment);
+  }
+  static _fail(uri, index, message) {
+    dart.throw(new core.FormatException(message, uri, index));
+  }
+  static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) {
+    let userInfo = "";
+    let host = null;
+    let port = null;
+    if (authority != null && dart.test(authority[dartx.isNotEmpty])) {
+      let hostStart = 0;
+      let hasUserInfo = false;
+      for (let i = 0; i < dart.notNull(authority[dartx.length]); i++) {
+        if (authority[dartx.codeUnitAt](i) == core.Uri._AT_SIGN) {
+          hasUserInfo = true;
+          userInfo = authority[dartx.substring](0, i);
+          hostStart = i + 1;
+          break;
         }
-        let hasPort = false;
+      }
+      let hostEnd = hostStart;
+      if (hostStart < dart.notNull(authority[dartx.length]) && authority[dartx.codeUnitAt](hostStart) == core.Uri._LEFT_BRACKET) {
         for (; hostEnd < dart.notNull(authority[dartx.length]); hostEnd++) {
-          if (authority[dartx.codeUnitAt](hostEnd) == core.Uri._COLON) {
-            let portString = authority[dartx.substring](hostEnd + 1);
-            if (dart.test(portString[dartx.isNotEmpty])) port = core.int.parse(portString);
-            break;
-          }
+          if (authority[dartx.codeUnitAt](hostEnd) == core.Uri._RIGHT_BRACKET) break;
         }
-        host = authority[dartx.substring](hostStart, hostEnd);
-      }
-      return core.Uri.new({scheme: scheme, userInfo: userInfo, host: core.String._check(host), port: core.int._check(port), pathSegments: unencodedPath[dartx.split]("/"), queryParameters: queryParameters});
-    }
-    static file(path, opts) {
-      let windows = opts && 'windows' in opts ? opts.windows : null;
-      windows = windows == null ? core.Uri._isWindows : windows;
-      return core.Uri._check(dart.test(windows) ? core.Uri._makeWindowsFileUrl(path, false) : core.Uri._makeFileUri(path, false));
-    }
-    static directory(path, opts) {
-      let windows = opts && 'windows' in opts ? opts.windows : null;
-      windows = windows == null ? core.Uri._isWindows : windows;
-      return core.Uri._check(dart.test(windows) ? core.Uri._makeWindowsFileUrl(path, true) : core.Uri._makeFileUri(path, true));
-    }
-    static dataFromString(content, opts) {
-      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
-      let encoding = opts && 'encoding' in opts ? opts.encoding : null;
-      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
-      let base64 = opts && 'base64' in opts ? opts.base64 : false;
-      let data = core.UriData.fromString(content, {mimeType: mimeType, encoding: encoding, parameters: parameters, base64: base64});
-      return data.uri;
-    }
-    static dataFromBytes(bytes, opts) {
-      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
-      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
-      let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
-      let data = core.UriData.fromBytes(bytes, {mimeType: mimeType, parameters: parameters, percentEncoded: percentEncoded});
-      return data.uri;
-    }
-    static get base() {
-      let uri = _js_helper.Primitives.currentUri();
-      if (uri != null) return core.Uri.parse(uri);
-      dart.throw(new core.UnsupportedError("'Uri.base' is not supported"));
-    }
-    static get _isWindows() {
-      return false;
-    }
-    static _checkNonWindowsPathReservedCharacters(segments, argumentError) {
-      segments[dartx.forEach](dart.fn(segment => {
-        if (dart.test(segment[dartx.contains]("/"))) {
-          if (dart.test(argumentError)) {
-            dart.throw(new core.ArgumentError(dart.str`Illegal path character ${segment}`));
-          } else {
-            dart.throw(new core.UnsupportedError(dart.str`Illegal path character ${segment}`));
-          }
+        if (hostEnd == authority[dartx.length]) {
+          dart.throw(new core.FormatException("Invalid IPv6 host entry.", authority, hostStart));
         }
-      }, StringToNull()));
-    }
-    static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) {
-      if (firstSegment === void 0) firstSegment = 0;
-      for (let segment of segments[dartx.skip](firstSegment)) {
-        if (dart.test(segment[dartx.contains](core.RegExp.new('["*/:<>?\\\\|]')))) {
-          if (dart.test(argumentError)) {
-            dart.throw(new core.ArgumentError("Illegal character in path"));
-          } else {
-            dart.throw(new core.UnsupportedError("Illegal character in path"));
-          }
+        core.Uri.parseIPv6Address(authority, hostStart + 1, hostEnd);
+        hostEnd++;
+        if (hostEnd != authority[dartx.length] && authority[dartx.codeUnitAt](hostEnd) != core.Uri._COLON) {
+          dart.throw(new core.FormatException("Invalid end of authority", authority, hostEnd));
         }
       }
+      let hasPort = false;
+      for (; hostEnd < dart.notNull(authority[dartx.length]); hostEnd++) {
+        if (authority[dartx.codeUnitAt](hostEnd) == core.Uri._COLON) {
+          let portString = authority[dartx.substring](hostEnd + 1);
+          if (dart.test(portString[dartx.isNotEmpty])) port = core.int.parse(portString);
+          break;
+        }
+      }
+      host = authority[dartx.substring](hostStart, hostEnd);
     }
-    static _checkWindowsDriveLetter(charCode, argumentError) {
-      if (core.Uri._UPPER_CASE_A <= dart.notNull(charCode) && dart.notNull(charCode) <= core.Uri._UPPER_CASE_Z || core.Uri._LOWER_CASE_A <= dart.notNull(charCode) && dart.notNull(charCode) <= core.Uri._LOWER_CASE_Z) {
-        return;
-      }
-      if (dart.test(argumentError)) {
-        dart.throw(new core.ArgumentError("Illegal drive letter " + core.String.fromCharCode(charCode)));
-      } else {
-        dart.throw(new core.UnsupportedError("Illegal drive letter " + core.String.fromCharCode(charCode)));
-      }
-    }
-    static _makeFileUri(path, slashTerminated) {
-      let sep = "/";
-      let segments = path[dartx.split](sep);
-      if (dart.test(slashTerminated) && dart.test(segments[dartx.isNotEmpty]) && dart.test(segments[dartx.last][dartx.isNotEmpty])) {
-        segments[dartx.add]("");
-      }
-      if (dart.test(path[dartx.startsWith](sep))) {
-        return core.Uri.new({scheme: "file", pathSegments: segments});
-      } else {
-        return core.Uri.new({pathSegments: segments});
-      }
-    }
-    static _makeWindowsFileUrl(path, slashTerminated) {
-      if (dart.test(path[dartx.startsWith]("\\\\?\\"))) {
-        if (dart.test(path[dartx.startsWith]("UNC\\", 4))) {
-          path = path[dartx.replaceRange](0, 7, '\\');
+    return core.Uri.new({scheme: scheme, userInfo: userInfo, host: core.String._check(host), port: core.int._check(port), pathSegments: unencodedPath[dartx.split]("/"), queryParameters: queryParameters});
+  }
+  static file(path, opts) {
+    let windows = opts && 'windows' in opts ? opts.windows : null;
+    windows = windows == null ? core.Uri._isWindows : windows;
+    return core.Uri._check(dart.test(windows) ? core.Uri._makeWindowsFileUrl(path, false) : core.Uri._makeFileUri(path, false));
+  }
+  static directory(path, opts) {
+    let windows = opts && 'windows' in opts ? opts.windows : null;
+    windows = windows == null ? core.Uri._isWindows : windows;
+    return core.Uri._check(dart.test(windows) ? core.Uri._makeWindowsFileUrl(path, true) : core.Uri._makeFileUri(path, true));
+  }
+  static dataFromString(content, opts) {
+    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
+    let encoding = opts && 'encoding' in opts ? opts.encoding : null;
+    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
+    let base64 = opts && 'base64' in opts ? opts.base64 : false;
+    let data = core.UriData.fromString(content, {mimeType: mimeType, encoding: encoding, parameters: parameters, base64: base64});
+    return data.uri;
+  }
+  static dataFromBytes(bytes, opts) {
+    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
+    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
+    let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
+    let data = core.UriData.fromBytes(bytes, {mimeType: mimeType, parameters: parameters, percentEncoded: percentEncoded});
+    return data.uri;
+  }
+  static get base() {
+    let uri = _js_helper.Primitives.currentUri();
+    if (uri != null) return core.Uri.parse(uri);
+    dart.throw(new core.UnsupportedError("'Uri.base' is not supported"));
+  }
+  static get _isWindows() {
+    return false;
+  }
+  static _checkNonWindowsPathReservedCharacters(segments, argumentError) {
+    segments[dartx.forEach](dart.fn(segment => {
+      if (dart.test(segment[dartx.contains]("/"))) {
+        if (dart.test(argumentError)) {
+          dart.throw(new core.ArgumentError(dart.str`Illegal path character ${segment}`));
         } else {
-          path = path[dartx.substring](4);
-          if (dart.notNull(path[dartx.length]) < 3 || path[dartx.codeUnitAt](1) != core.Uri._COLON || path[dartx.codeUnitAt](2) != core.Uri._BACKSLASH) {
-            dart.throw(new core.ArgumentError("Windows paths with \\\\?\\ prefix must be absolute"));
-          }
+          dart.throw(new core.UnsupportedError(dart.str`Illegal path character ${segment}`));
         }
-      } else {
-        path = path[dartx.replaceAll]("/", '\\');
       }
-      let sep = '\\';
-      if (dart.notNull(path[dartx.length]) > 1 && path[dartx.codeUnitAt](1) == core.Uri._COLON) {
-        core.Uri._checkWindowsDriveLetter(path[dartx.codeUnitAt](0), true);
-        if (path[dartx.length] == 2 || path[dartx.codeUnitAt](2) != core.Uri._BACKSLASH) {
-          dart.throw(new core.ArgumentError("Windows paths with drive letter must be absolute"));
+    }, StringToNull()));
+  }
+  static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) {
+    if (firstSegment === void 0) firstSegment = 0;
+    for (let segment of segments[dartx.skip](firstSegment)) {
+      if (dart.test(segment[dartx.contains](core.RegExp.new('["*/:<>?\\\\|]')))) {
+        if (dart.test(argumentError)) {
+          dart.throw(new core.ArgumentError("Illegal character in path"));
+        } else {
+          dart.throw(new core.UnsupportedError("Illegal character in path"));
         }
+      }
+    }
+  }
+  static _checkWindowsDriveLetter(charCode, argumentError) {
+    if (core.Uri._UPPER_CASE_A <= dart.notNull(charCode) && dart.notNull(charCode) <= core.Uri._UPPER_CASE_Z || core.Uri._LOWER_CASE_A <= dart.notNull(charCode) && dart.notNull(charCode) <= core.Uri._LOWER_CASE_Z) {
+      return;
+    }
+    if (dart.test(argumentError)) {
+      dart.throw(new core.ArgumentError("Illegal drive letter " + core.String.fromCharCode(charCode)));
+    } else {
+      dart.throw(new core.UnsupportedError("Illegal drive letter " + core.String.fromCharCode(charCode)));
+    }
+  }
+  static _makeFileUri(path, slashTerminated) {
+    let sep = "/";
+    let segments = path[dartx.split](sep);
+    if (dart.test(slashTerminated) && dart.test(segments[dartx.isNotEmpty]) && dart.test(segments[dartx.last][dartx.isNotEmpty])) {
+      segments[dartx.add]("");
+    }
+    if (dart.test(path[dartx.startsWith](sep))) {
+      return core.Uri.new({scheme: "file", pathSegments: segments});
+    } else {
+      return core.Uri.new({pathSegments: segments});
+    }
+  }
+  static _makeWindowsFileUrl(path, slashTerminated) {
+    if (dart.test(path[dartx.startsWith]("\\\\?\\"))) {
+      if (dart.test(path[dartx.startsWith]("UNC\\", 4))) {
+        path = path[dartx.replaceRange](0, 7, '\\');
+      } else {
+        path = path[dartx.substring](4);
+        if (dart.notNull(path[dartx.length]) < 3 || path[dartx.codeUnitAt](1) != core.Uri._COLON || path[dartx.codeUnitAt](2) != core.Uri._BACKSLASH) {
+          dart.throw(new core.ArgumentError("Windows paths with \\\\?\\ prefix must be absolute"));
+        }
+      }
+    } else {
+      path = path[dartx.replaceAll]("/", '\\');
+    }
+    let sep = '\\';
+    if (dart.notNull(path[dartx.length]) > 1 && path[dartx.codeUnitAt](1) == core.Uri._COLON) {
+      core.Uri._checkWindowsDriveLetter(path[dartx.codeUnitAt](0), true);
+      if (path[dartx.length] == 2 || path[dartx.codeUnitAt](2) != core.Uri._BACKSLASH) {
+        dart.throw(new core.ArgumentError("Windows paths with drive letter must be absolute"));
+      }
+      let pathSegments = path[dartx.split](sep);
+      if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
+        pathSegments[dartx.add]("");
+      }
+      core.Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1);
+      return core.Uri.new({scheme: "file", pathSegments: pathSegments});
+    }
+    if (dart.test(path[dartx.startsWith](sep))) {
+      if (dart.test(path[dartx.startsWith](sep, 1))) {
+        let pathStart = path[dartx.indexOf]('\\', 2);
+        let hostPart = dart.notNull(pathStart) < 0 ? path[dartx.substring](2) : path[dartx.substring](2, pathStart);
+        let pathPart = dart.notNull(pathStart) < 0 ? "" : path[dartx.substring](dart.notNull(pathStart) + 1);
+        let pathSegments = pathPart[dartx.split](sep);
+        core.Uri._checkWindowsPathReservedCharacters(pathSegments, true);
+        if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
+          pathSegments[dartx.add]("");
+        }
+        return core.Uri.new({scheme: "file", host: hostPart, pathSegments: pathSegments});
+      } else {
         let pathSegments = path[dartx.split](sep);
         if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
           pathSegments[dartx.add]("");
         }
-        core.Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1);
+        core.Uri._checkWindowsPathReservedCharacters(pathSegments, true);
         return core.Uri.new({scheme: "file", pathSegments: pathSegments});
       }
-      if (dart.test(path[dartx.startsWith](sep))) {
-        if (dart.test(path[dartx.startsWith](sep, 1))) {
-          let pathStart = path[dartx.indexOf]('\\', 2);
-          let hostPart = dart.notNull(pathStart) < 0 ? path[dartx.substring](2) : path[dartx.substring](2, pathStart);
-          let pathPart = dart.notNull(pathStart) < 0 ? "" : path[dartx.substring](dart.notNull(pathStart) + 1);
-          let pathSegments = pathPart[dartx.split](sep);
-          core.Uri._checkWindowsPathReservedCharacters(pathSegments, true);
-          if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
-            pathSegments[dartx.add]("");
-          }
-          return core.Uri.new({scheme: "file", host: hostPart, pathSegments: pathSegments});
-        } else {
-          let pathSegments = path[dartx.split](sep);
-          if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
-            pathSegments[dartx.add]("");
-          }
-          core.Uri._checkWindowsPathReservedCharacters(pathSegments, true);
-          return core.Uri.new({scheme: "file", pathSegments: pathSegments});
-        }
-      } else {
-        let pathSegments = path[dartx.split](sep);
-        core.Uri._checkWindowsPathReservedCharacters(pathSegments, true);
-        if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.isNotEmpty]) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
-          pathSegments[dartx.add]("");
-        }
-        return core.Uri.new({pathSegments: pathSegments});
+    } else {
+      let pathSegments = path[dartx.split](sep);
+      core.Uri._checkWindowsPathReservedCharacters(pathSegments, true);
+      if (dart.test(slashTerminated) && dart.test(pathSegments[dartx.isNotEmpty]) && dart.test(pathSegments[dartx.last][dartx.isNotEmpty])) {
+        pathSegments[dartx.add]("");
       }
+      return core.Uri.new({pathSegments: pathSegments});
     }
-    replace(opts) {
-      let scheme = opts && 'scheme' in opts ? opts.scheme : null;
-      let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
-      let host = opts && 'host' in opts ? opts.host : null;
-      let port = opts && 'port' in opts ? opts.port : null;
-      let path = opts && 'path' in opts ? opts.path : null;
-      let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
-      let query = opts && 'query' in opts ? opts.query : null;
-      let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
-      let fragment = opts && 'fragment' in opts ? opts.fragment : null;
-      let schemeChanged = false;
-      if (scheme != null) {
-        scheme = core.Uri._makeScheme(scheme, 0, scheme[dartx.length]);
-        schemeChanged = true;
-      } else {
-        scheme = this.scheme;
-      }
-      let isFile = scheme == "file";
-      if (userInfo != null) {
-        userInfo = core.Uri._makeUserInfo(userInfo, 0, userInfo[dartx.length]);
-      } else {
-        userInfo = this[_userInfo];
-      }
-      if (port != null) {
+  }
+  replace(opts) {
+    let scheme = opts && 'scheme' in opts ? opts.scheme : null;
+    let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null;
+    let host = opts && 'host' in opts ? opts.host : null;
+    let port = opts && 'port' in opts ? opts.port : null;
+    let path = opts && 'path' in opts ? opts.path : null;
+    let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : null;
+    let query = opts && 'query' in opts ? opts.query : null;
+    let queryParameters = opts && 'queryParameters' in opts ? opts.queryParameters : null;
+    let fragment = opts && 'fragment' in opts ? opts.fragment : null;
+    let schemeChanged = false;
+    if (scheme != null) {
+      scheme = core.Uri._makeScheme(scheme, 0, scheme[dartx.length]);
+      schemeChanged = true;
+    } else {
+      scheme = this.scheme;
+    }
+    let isFile = scheme == "file";
+    if (userInfo != null) {
+      userInfo = core.Uri._makeUserInfo(userInfo, 0, userInfo[dartx.length]);
+    } else {
+      userInfo = this[_userInfo];
+    }
+    if (port != null) {
+      port = core.Uri._makePort(port, scheme);
+    } else {
+      port = this[_port];
+      if (schemeChanged) {
         port = core.Uri._makePort(port, scheme);
-      } else {
-        port = this[_port];
-        if (schemeChanged) {
-          port = core.Uri._makePort(port, scheme);
+      }
+    }
+    if (host != null) {
+      host = core.Uri._makeHost(host, 0, host[dartx.length], false);
+    } else if (dart.test(this.hasAuthority)) {
+      host = this[_host];
+    } else if (dart.test(userInfo[dartx.isNotEmpty]) || port != null || isFile) {
+      host = "";
+    }
+    let hasAuthority = host != null;
+    if (path != null || pathSegments != null) {
+      path = core.Uri._makePath(path, 0, core.Uri._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
+    } else {
+      path = this[_path];
+      if ((isFile || hasAuthority && !dart.test(path[dartx.isEmpty])) && !dart.test(path[dartx.startsWith]('/'))) {
+        path = "/" + dart.notNull(path);
+      }
+    }
+    if (query != null || queryParameters != null) {
+      query = core.Uri._makeQuery(query, 0, core.Uri._stringOrNullLength(query), queryParameters);
+    } else {
+      query = this[_query];
+    }
+    if (fragment != null) {
+      fragment = core.Uri._makeFragment(fragment, 0, fragment[dartx.length]);
+    } else {
+      fragment = this[_fragment];
+    }
+    return new core.Uri._internal(scheme, userInfo, host, port, path, query, fragment);
+  }
+  removeFragment() {
+    if (!dart.test(this.hasFragment)) return this;
+    return new core.Uri._internal(this.scheme, this[_userInfo], this[_host], this[_port], this[_path], this[_query], null);
+  }
+  get pathSegments() {
+    let result = this[_pathSegments];
+    if (result != null) return result;
+    let pathToSplit = this.path;
+    if (dart.test(pathToSplit[dartx.isNotEmpty]) && pathToSplit[dartx.codeUnitAt](0) == core.Uri._SLASH) {
+      pathToSplit = pathToSplit[dartx.substring](1);
+    }
+    result = pathToSplit == "" ? const$51 || (const$51 = dart.constList([], core.String)) : ListOfString().unmodifiable(pathToSplit[dartx.split]("/")[dartx.map](core.String)(core.Uri.decodeComponent));
+    this[_pathSegments] = result;
+    return result;
+  }
+  get queryParameters() {
+    if (this[_queryParameters] == null) {
+      this[_queryParameters] = new (UnmodifiableMapViewOfString$String())(core.Uri.splitQueryString(this.query));
+    }
+    return this[_queryParameters];
+  }
+  get queryParametersAll() {
+    if (this[_queryParameterLists] == null) {
+      let queryParameterLists = core.Uri._splitQueryStringAll(this.query);
+      for (let key of queryParameterLists[dartx.keys]) {
+        queryParameterLists[dartx._set](key, ListOfString().unmodifiable(core.Iterable._check(queryParameterLists[dartx._get](key))));
+      }
+      this[_queryParameterLists] = MapOfString$ListOfString().unmodifiable(queryParameterLists);
+    }
+    return this[_queryParameterLists];
+  }
+  normalizePath() {
+    let path = core.Uri._normalizePath(this[_path], this.scheme, this.hasAuthority);
+    if (core.identical(path, this[_path])) return this;
+    return this.replace({path: path});
+  }
+  static _makePort(port, scheme) {
+    if (port != null && port == core.Uri._defaultPort(scheme)) return null;
+    return port;
+  }
+  static _makeHost(host, start, end, strictIPv6) {
+    if (host == null) return null;
+    if (start == end) return "";
+    if (host[dartx.codeUnitAt](start) == core.Uri._LEFT_BRACKET) {
+      if (host[dartx.codeUnitAt](dart.notNull(end) - 1) != core.Uri._RIGHT_BRACKET) {
+        core.Uri._fail(host, start, 'Missing end `]` to match `[` in host');
+      }
+      core.Uri.parseIPv6Address(host, dart.notNull(start) + 1, dart.notNull(end) - 1);
+      return host[dartx.substring](start, end)[dartx.toLowerCase]();
+    }
+    if (!dart.test(strictIPv6)) {
+      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+        if (host[dartx.codeUnitAt](i) == core.Uri._COLON) {
+          core.Uri.parseIPv6Address(host, start, end);
+          return dart.str`[${host}]`;
         }
       }
-      if (host != null) {
-        host = core.Uri._makeHost(host, 0, host[dartx.length], false);
-      } else if (dart.test(this.hasAuthority)) {
-        host = this[_host];
-      } else if (dart.test(userInfo[dartx.isNotEmpty]) || port != null || isFile) {
-        host = "";
-      }
-      let hasAuthority = host != null;
-      if (path != null || pathSegments != null) {
-        path = core.Uri._makePath(path, 0, core.Uri._stringOrNullLength(path), pathSegments, scheme, hasAuthority);
-      } else {
-        path = this[_path];
-        if ((isFile || hasAuthority && !dart.test(path[dartx.isEmpty])) && !dart.test(path[dartx.startsWith]('/'))) {
-          path = "/" + dart.notNull(path);
+    }
+    return core.Uri._normalizeRegName(host, start, end);
+  }
+  static _isRegNameChar(char) {
+    return dart.notNull(char) < 127 && (dart.notNull(core.Uri._regNameTable[dartx._get](char[dartx['>>']](4))) & 1 << (dart.notNull(char) & 15)) != 0;
+  }
+  static _normalizeRegName(host, start, end) {
+    let buffer = null;
+    let sectionStart = start;
+    let index = start;
+    let isNormalized = true;
+    while (dart.notNull(index) < dart.notNull(end)) {
+      let char = host[dartx.codeUnitAt](index);
+      if (char == core.Uri._PERCENT) {
+        let replacement = core.Uri._normalizeEscape(host, index, true);
+        if (replacement == null && isNormalized) {
+          index = dart.notNull(index) + 3;
+          continue;
         }
-      }
-      if (query != null || queryParameters != null) {
-        query = core.Uri._makeQuery(query, 0, core.Uri._stringOrNullLength(query), queryParameters);
-      } else {
-        query = this[_query];
-      }
-      if (fragment != null) {
-        fragment = core.Uri._makeFragment(fragment, 0, fragment[dartx.length]);
-      } else {
-        fragment = this[_fragment];
-      }
-      return new core.Uri._internal(scheme, userInfo, host, port, path, query, fragment);
-    }
-    removeFragment() {
-      if (!dart.test(this.hasFragment)) return this;
-      return new core.Uri._internal(this.scheme, this[_userInfo], this[_host], this[_port], this[_path], this[_query], null);
-    }
-    get pathSegments() {
-      let result = this[_pathSegments];
-      if (result != null) return result;
-      let pathToSplit = this.path;
-      if (dart.test(pathToSplit[dartx.isNotEmpty]) && pathToSplit[dartx.codeUnitAt](0) == core.Uri._SLASH) {
-        pathToSplit = pathToSplit[dartx.substring](1);
-      }
-      result = pathToSplit == "" ? const$51 || (const$51 = dart.constList([], core.String)) : ListOfString().unmodifiable(pathToSplit[dartx.split]("/")[dartx.map](core.String)(core.Uri.decodeComponent));
-      this[_pathSegments] = result;
-      return result;
-    }
-    get queryParameters() {
-      if (this[_queryParameters] == null) {
-        this[_queryParameters] = new (UnmodifiableMapViewOfString$String())(core.Uri.splitQueryString(this.query));
-      }
-      return this[_queryParameters];
-    }
-    get queryParametersAll() {
-      if (this[_queryParameterLists] == null) {
-        let queryParameterLists = core.Uri._splitQueryStringAll(this.query);
-        for (let key of queryParameterLists[dartx.keys]) {
-          queryParameterLists[dartx._set](key, ListOfString().unmodifiable(core.Iterable._check(queryParameterLists[dartx._get](key))));
+        if (buffer == null) buffer = new core.StringBuffer();
+        let slice = host[dartx.substring](sectionStart, index);
+        if (!isNormalized) slice = slice[dartx.toLowerCase]();
+        buffer.write(slice);
+        let sourceLength = 3;
+        if (replacement == null) {
+          replacement = host[dartx.substring](index, dart.notNull(index) + 3);
+        } else if (replacement == "%") {
+          replacement = "%25";
+          sourceLength = 1;
         }
-        this[_queryParameterLists] = MapOfString$ListOfString().unmodifiable(queryParameterLists);
-      }
-      return this[_queryParameterLists];
-    }
-    normalizePath() {
-      let path = core.Uri._normalizePath(this[_path], this.scheme, this.hasAuthority);
-      if (core.identical(path, this[_path])) return this;
-      return this.replace({path: path});
-    }
-    static _makePort(port, scheme) {
-      if (port != null && port == core.Uri._defaultPort(scheme)) return null;
-      return port;
-    }
-    static _makeHost(host, start, end, strictIPv6) {
-      if (host == null) return null;
-      if (start == end) return "";
-      if (host[dartx.codeUnitAt](start) == core.Uri._LEFT_BRACKET) {
-        if (host[dartx.codeUnitAt](dart.notNull(end) - 1) != core.Uri._RIGHT_BRACKET) {
-          core.Uri._fail(host, start, 'Missing end `]` to match `[` in host');
+        buffer.write(replacement);
+        index = dart.notNull(index) + sourceLength;
+        sectionStart = index;
+        isNormalized = true;
+      } else if (dart.test(core.Uri._isRegNameChar(char))) {
+        if (isNormalized && core.Uri._UPPER_CASE_A <= dart.notNull(char) && core.Uri._UPPER_CASE_Z >= dart.notNull(char)) {
+          if (buffer == null) buffer = new core.StringBuffer();
+          if (dart.notNull(sectionStart) < dart.notNull(index)) {
+            buffer.write(host[dartx.substring](sectionStart, index));
+            sectionStart = index;
+          }
+          isNormalized = false;
         }
-        core.Uri.parseIPv6Address(host, dart.notNull(start) + 1, dart.notNull(end) - 1);
-        return host[dartx.substring](start, end)[dartx.toLowerCase]();
-      }
-      if (!dart.test(strictIPv6)) {
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          if (host[dartx.codeUnitAt](i) == core.Uri._COLON) {
-            core.Uri.parseIPv6Address(host, start, end);
-            return dart.str`[${host}]`;
+        index = dart.notNull(index) + 1;
+      } else if (dart.test(core.Uri._isGeneralDelimiter(char))) {
+        core.Uri._fail(host, index, "Invalid character");
+      } else {
+        let sourceLength = 1;
+        if ((dart.notNull(char) & 64512) == 55296 && dart.notNull(index) + 1 < dart.notNull(end)) {
+          let tail = host[dartx.codeUnitAt](dart.notNull(index) + 1);
+          if ((dart.notNull(tail) & 64512) == 56320) {
+            char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNull(tail) & 1023;
+            sourceLength = 2;
           }
         }
+        if (buffer == null) buffer = new core.StringBuffer();
+        let slice = host[dartx.substring](sectionStart, index);
+        if (!isNormalized) slice = slice[dartx.toLowerCase]();
+        buffer.write(slice);
+        buffer.write(core.Uri._escapeChar(char));
+        index = dart.notNull(index) + sourceLength;
+        sectionStart = index;
       }
-      return core.Uri._normalizeRegName(host, start, end);
     }
-    static _isRegNameChar(char) {
-      return dart.notNull(char) < 127 && (dart.notNull(core.Uri._regNameTable[dartx._get](char[dartx['>>']](4))) & 1 << (dart.notNull(char) & 15)) != 0;
+    if (buffer == null) return host[dartx.substring](start, end);
+    if (dart.notNull(sectionStart) < dart.notNull(end)) {
+      let slice = host[dartx.substring](sectionStart, end);
+      if (!isNormalized) slice = slice[dartx.toLowerCase]();
+      buffer.write(slice);
     }
-    static _normalizeRegName(host, start, end) {
-      let buffer = null;
-      let sectionStart = start;
-      let index = start;
-      let isNormalized = true;
-      while (dart.notNull(index) < dart.notNull(end)) {
-        let char = host[dartx.codeUnitAt](index);
+    return dart.toString(buffer);
+  }
+  static _makeScheme(scheme, start, end) {
+    if (start == end) return "";
+    let firstCodeUnit = scheme[dartx.codeUnitAt](start);
+    if (!dart.test(core.Uri._isAlphabeticCharacter(firstCodeUnit))) {
+      core.Uri._fail(scheme, start, "Scheme not starting with alphabetic character");
+    }
+    let containsUpperCase = false;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let codeUnit = scheme[dartx.codeUnitAt](i);
+      if (!dart.test(core.Uri._isSchemeCharacter(codeUnit))) {
+        core.Uri._fail(scheme, i, "Illegal scheme character");
+      }
+      if (core.Uri._UPPER_CASE_A <= dart.notNull(codeUnit) && dart.notNull(codeUnit) <= core.Uri._UPPER_CASE_Z) {
+        containsUpperCase = true;
+      }
+    }
+    scheme = scheme[dartx.substring](start, end);
+    if (containsUpperCase) scheme = scheme[dartx.toLowerCase]();
+    return scheme;
+  }
+  static _makeUserInfo(userInfo, start, end) {
+    if (userInfo == null) return "";
+    return core.Uri._normalize(userInfo, start, end, core.Uri._userinfoTable);
+  }
+  static _makePath(path, start, end, pathSegments, scheme, hasAuthority) {
+    let isFile = scheme == "file";
+    let ensureLeadingSlash = isFile || dart.test(hasAuthority);
+    if (path == null && pathSegments == null) return isFile ? "/" : "";
+    if (path != null && pathSegments != null) {
+      dart.throw(new core.ArgumentError('Both path and pathSegments specified'));
+    }
+    let result = null;
+    if (path != null) {
+      result = core.Uri._normalize(path, start, end, core.Uri._pathCharOrSlashTable);
+    } else {
+      result = pathSegments[dartx.map](core.String)(dart.fn(s => core.Uri._uriEncode(core.Uri._pathCharTable, s, convert.UTF8, false), StringToString$()))[dartx.join]("/");
+    }
+    if (dart.test(dart.dload(result, 'isEmpty'))) {
+      if (isFile) return "/";
+    } else if (ensureLeadingSlash && !dart.test(dart.dsend(result, 'startsWith', '/'))) {
+      result = "/" + dart.notNull(core.String._check(result));
+    }
+    result = core.Uri._normalizePath(core.String._check(result), scheme, hasAuthority);
+    return core.String._check(result);
+  }
+  static _normalizePath(path, scheme, hasAuthority) {
+    if (dart.test(scheme[dartx.isEmpty]) && !dart.test(hasAuthority) && !dart.test(path[dartx.startsWith]('/'))) {
+      return core.Uri._normalizeRelativePath(path);
+    }
+    return core.Uri._removeDotSegments(path);
+  }
+  static _makeQuery(query, start, end, queryParameters) {
+    if (query == null && queryParameters == null) return null;
+    if (query != null && queryParameters != null) {
+      dart.throw(new core.ArgumentError('Both query and queryParameters specified'));
+    }
+    if (query != null) return core.Uri._normalize(query, start, end, core.Uri._queryCharTable);
+    let result = new core.StringBuffer();
+    let separator = "";
+    function writeParameter(key, value) {
+      result.write(separator);
+      separator = "&";
+      result.write(core.Uri.encodeQueryComponent(key));
+      if (value != null && dart.test(value[dartx.isNotEmpty])) {
+        result.write("=");
+        result.write(core.Uri.encodeQueryComponent(value));
+      }
+    }
+    dart.fn(writeParameter, StringAndStringTovoid$());
+    queryParameters[dartx.forEach](dart.fn((key, value) => {
+      if (value == null || typeof value == 'string') {
+        writeParameter(key, core.String._check(value));
+      } else {
+        let values = core.Iterable._check(value);
+        for (let value of values) {
+          core.String._check(value);
+          writeParameter(key, value);
+        }
+      }
+    }, StringAnddynamicToNull()));
+    return result.toString();
+  }
+  static _makeFragment(fragment, start, end) {
+    if (fragment == null) return null;
+    return core.Uri._normalize(fragment, start, end, core.Uri._queryCharTable);
+  }
+  static _stringOrNullLength(s) {
+    return s == null ? 0 : s[dartx.length];
+  }
+  static _normalizeEscape(source, index, lowerCase) {
+    dart.assert(source[dartx.codeUnitAt](index) == core.Uri._PERCENT);
+    if (dart.notNull(index) + 2 >= dart.notNull(source[dartx.length])) {
+      return "%";
+    }
+    let firstDigit = source[dartx.codeUnitAt](dart.notNull(index) + 1);
+    let secondDigit = source[dartx.codeUnitAt](dart.notNull(index) + 2);
+    let firstDigitValue = core.Uri._parseHexDigit(firstDigit);
+    let secondDigitValue = core.Uri._parseHexDigit(secondDigit);
+    if (dart.notNull(firstDigitValue) < 0 || dart.notNull(secondDigitValue) < 0) {
+      return "%";
+    }
+    let value = dart.notNull(firstDigitValue) * 16 + dart.notNull(secondDigitValue);
+    if (dart.test(core.Uri._isUnreservedChar(value))) {
+      if (dart.test(lowerCase) && core.Uri._UPPER_CASE_A <= value && core.Uri._UPPER_CASE_Z >= value) {
+        value = (value | 32) >>> 0;
+      }
+      return core.String.fromCharCode(value);
+    }
+    if (dart.notNull(firstDigit) >= core.Uri._LOWER_CASE_A || dart.notNull(secondDigit) >= core.Uri._LOWER_CASE_A) {
+      return source[dartx.substring](index, dart.notNull(index) + 3)[dartx.toUpperCase]();
+    }
+    return null;
+  }
+  static _parseHexDigit(char) {
+    let digit = (dart.notNull(char) ^ core.Uri._ZERO) >>> 0;
+    if (digit <= 9) return digit;
+    let lowerCase = (dart.notNull(char) | 32) >>> 0;
+    if (core.Uri._LOWER_CASE_A <= lowerCase && lowerCase <= core.Uri._LOWER_CASE_F) {
+      return lowerCase - (core.Uri._LOWER_CASE_A - 10);
+    }
+    return -1;
+  }
+  static _escapeChar(char) {
+    dart.assert(dart.notNull(char) <= 1114111);
+    let codeUnits = null;
+    if (dart.notNull(char) < 128) {
+      codeUnits = ListOfint().new(3);
+      codeUnits[dartx._set](0, core.Uri._PERCENT);
+      codeUnits[dartx._set](1, core.Uri._hexDigits[dartx.codeUnitAt](char[dartx['>>']](4)));
+      codeUnits[dartx._set](2, core.Uri._hexDigits[dartx.codeUnitAt](dart.notNull(char) & 15));
+    } else {
+      let flag = 192;
+      let encodedBytes = 2;
+      if (dart.notNull(char) > 2047) {
+        flag = 224;
+        encodedBytes = 3;
+        if (dart.notNull(char) > 65535) {
+          encodedBytes = 4;
+          flag = 240;
+        }
+      }
+      codeUnits = ListOfint().new(3 * encodedBytes);
+      let index = 0;
+      while (--encodedBytes >= 0) {
+        let byte = (char[dartx['>>']](6 * encodedBytes) & 63 | flag) >>> 0;
+        codeUnits[dartx._set](index, core.Uri._PERCENT);
+        codeUnits[dartx._set](index + 1, core.Uri._hexDigits[dartx.codeUnitAt](byte[dartx['>>']](4)));
+        codeUnits[dartx._set](index + 2, core.Uri._hexDigits[dartx.codeUnitAt](byte & 15));
+        index = index + 3;
+        flag = 128;
+      }
+    }
+    return core.String.fromCharCodes(codeUnits);
+  }
+  static _normalize(component, start, end, charTable) {
+    let buffer = null;
+    let sectionStart = start;
+    let index = start;
+    while (dart.notNull(index) < dart.notNull(end)) {
+      let char = component[dartx.codeUnitAt](index);
+      if (dart.notNull(char) < 127 && (dart.notNull(charTable[dartx._get](char[dartx['>>']](4))) & 1 << (dart.notNull(char) & 15)) != 0) {
+        index = dart.notNull(index) + 1;
+      } else {
+        let replacement = null;
+        let sourceLength = null;
         if (char == core.Uri._PERCENT) {
-          let replacement = core.Uri._normalizeEscape(host, index, true);
-          if (replacement == null && isNormalized) {
+          replacement = core.Uri._normalizeEscape(component, index, false);
+          if (replacement == null) {
             index = dart.notNull(index) + 3;
             continue;
           }
-          if (buffer == null) buffer = new core.StringBuffer();
-          let slice = host[dartx.substring](sectionStart, index);
-          if (!isNormalized) slice = slice[dartx.toLowerCase]();
-          buffer.write(slice);
-          let sourceLength = 3;
-          if (replacement == null) {
-            replacement = host[dartx.substring](index, dart.notNull(index) + 3);
-          } else if (replacement == "%") {
+          if ("%" == replacement) {
             replacement = "%25";
             sourceLength = 1;
+          } else {
+            sourceLength = 3;
           }
-          buffer.write(replacement);
-          index = dart.notNull(index) + sourceLength;
-          sectionStart = index;
-          isNormalized = true;
-        } else if (dart.test(core.Uri._isRegNameChar(char))) {
-          if (isNormalized && core.Uri._UPPER_CASE_A <= dart.notNull(char) && core.Uri._UPPER_CASE_Z >= dart.notNull(char)) {
-            if (buffer == null) buffer = new core.StringBuffer();
-            if (dart.notNull(sectionStart) < dart.notNull(index)) {
-              buffer.write(host[dartx.substring](sectionStart, index));
-              sectionStart = index;
-            }
-            isNormalized = false;
-          }
-          index = dart.notNull(index) + 1;
         } else if (dart.test(core.Uri._isGeneralDelimiter(char))) {
-          core.Uri._fail(host, index, "Invalid character");
+          core.Uri._fail(component, index, "Invalid character");
         } else {
-          let sourceLength = 1;
-          if ((dart.notNull(char) & 64512) == 55296 && dart.notNull(index) + 1 < dart.notNull(end)) {
-            let tail = host[dartx.codeUnitAt](dart.notNull(index) + 1);
-            if ((dart.notNull(tail) & 64512) == 56320) {
-              char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNull(tail) & 1023;
-              sourceLength = 2;
+          sourceLength = 1;
+          if ((dart.notNull(char) & 64512) == 55296) {
+            if (dart.notNull(index) + 1 < dart.notNull(end)) {
+              let tail = component[dartx.codeUnitAt](dart.notNull(index) + 1);
+              if ((dart.notNull(tail) & 64512) == 56320) {
+                sourceLength = 2;
+                char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNull(tail) & 1023;
+              }
             }
           }
-          if (buffer == null) buffer = new core.StringBuffer();
-          let slice = host[dartx.substring](sectionStart, index);
-          if (!isNormalized) slice = slice[dartx.toLowerCase]();
-          buffer.write(slice);
-          buffer.write(core.Uri._escapeChar(char));
-          index = dart.notNull(index) + sourceLength;
-          sectionStart = index;
+          replacement = core.Uri._escapeChar(char);
         }
+        if (buffer == null) buffer = new core.StringBuffer();
+        buffer.write(component[dartx.substring](sectionStart, index));
+        buffer.write(replacement);
+        index = dart.notNull(index) + dart.notNull(sourceLength);
+        sectionStart = index;
       }
-      if (buffer == null) return host[dartx.substring](start, end);
-      if (dart.notNull(sectionStart) < dart.notNull(end)) {
-        let slice = host[dartx.substring](sectionStart, end);
-        if (!isNormalized) slice = slice[dartx.toLowerCase]();
-        buffer.write(slice);
-      }
-      return dart.toString(buffer);
     }
-    static _makeScheme(scheme, start, end) {
-      if (start == end) return "";
-      let firstCodeUnit = scheme[dartx.codeUnitAt](start);
-      if (!dart.test(core.Uri._isAlphabeticCharacter(firstCodeUnit))) {
-        core.Uri._fail(scheme, start, "Scheme not starting with alphabetic character");
-      }
-      let containsUpperCase = false;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let codeUnit = scheme[dartx.codeUnitAt](i);
-        if (!dart.test(core.Uri._isSchemeCharacter(codeUnit))) {
-          core.Uri._fail(scheme, i, "Illegal scheme character");
-        }
-        if (core.Uri._UPPER_CASE_A <= dart.notNull(codeUnit) && dart.notNull(codeUnit) <= core.Uri._UPPER_CASE_Z) {
-          containsUpperCase = true;
-        }
-      }
-      scheme = scheme[dartx.substring](start, end);
-      if (containsUpperCase) scheme = scheme[dartx.toLowerCase]();
-      return scheme;
+    if (buffer == null) {
+      return component[dartx.substring](start, end);
     }
-    static _makeUserInfo(userInfo, start, end) {
-      if (userInfo == null) return "";
-      return core.Uri._normalize(userInfo, start, end, core.Uri._userinfoTable);
+    if (dart.notNull(sectionStart) < dart.notNull(end)) {
+      buffer.write(component[dartx.substring](sectionStart, end));
     }
-    static _makePath(path, start, end, pathSegments, scheme, hasAuthority) {
-      let isFile = scheme == "file";
-      let ensureLeadingSlash = isFile || dart.test(hasAuthority);
-      if (path == null && pathSegments == null) return isFile ? "/" : "";
-      if (path != null && pathSegments != null) {
-        dart.throw(new core.ArgumentError('Both path and pathSegments specified'));
-      }
-      let result = null;
-      if (path != null) {
-        result = core.Uri._normalize(path, start, end, core.Uri._pathCharOrSlashTable);
-      } else {
-        result = pathSegments[dartx.map](core.String)(dart.fn(s => core.Uri._uriEncode(core.Uri._pathCharTable, s, convert.UTF8, false), StringToString$()))[dartx.join]("/");
-      }
-      if (dart.test(dart.dload(result, 'isEmpty'))) {
-        if (isFile) return "/";
-      } else if (ensureLeadingSlash && !dart.test(dart.dsend(result, 'startsWith', '/'))) {
-        result = "/" + dart.notNull(core.String._check(result));
-      }
-      result = core.Uri._normalizePath(core.String._check(result), scheme, hasAuthority);
-      return core.String._check(result);
+    return dart.toString(buffer);
+  }
+  static _isSchemeCharacter(ch) {
+    return dart.notNull(ch) < 128 && (dart.notNull(core.Uri._schemeTable[dartx._get](ch[dartx['>>']](4))) & 1 << (dart.notNull(ch) & 15)) != 0;
+  }
+  static _isGeneralDelimiter(ch) {
+    return dart.notNull(ch) <= core.Uri._RIGHT_BRACKET && (dart.notNull(core.Uri._genDelimitersTable[dartx._get](ch[dartx['>>']](4))) & 1 << (dart.notNull(ch) & 15)) != 0;
+  }
+  get isAbsolute() {
+    return this.scheme != "" && this.fragment == "";
+  }
+  [_mergePaths](base, reference) {
+    let backCount = 0;
+    let refStart = 0;
+    while (dart.test(reference[dartx.startsWith]("../", refStart))) {
+      refStart = refStart + 3;
+      backCount++;
     }
-    static _normalizePath(path, scheme, hasAuthority) {
-      if (dart.test(scheme[dartx.isEmpty]) && !dart.test(hasAuthority) && !dart.test(path[dartx.startsWith]('/'))) {
-        return core.Uri._normalizeRelativePath(path);
+    let baseEnd = base[dartx.lastIndexOf]('/');
+    while (dart.notNull(baseEnd) > 0 && backCount > 0) {
+      let newEnd = base[dartx.lastIndexOf]('/', dart.notNull(baseEnd) - 1);
+      if (dart.notNull(newEnd) < 0) {
+        break;
       }
-      return core.Uri._removeDotSegments(path);
+      let delta = dart.notNull(baseEnd) - dart.notNull(newEnd);
+      if ((delta == 2 || delta == 3) && base[dartx.codeUnitAt](dart.notNull(newEnd) + 1) == core.Uri._DOT && (delta == 2 || base[dartx.codeUnitAt](dart.notNull(newEnd) + 2) == core.Uri._DOT)) {
+        break;
+      }
+      baseEnd = newEnd;
+      backCount--;
     }
-    static _makeQuery(query, start, end, queryParameters) {
-      if (query == null && queryParameters == null) return null;
-      if (query != null && queryParameters != null) {
-        dart.throw(new core.ArgumentError('Both query and queryParameters specified'));
-      }
-      if (query != null) return core.Uri._normalize(query, start, end, core.Uri._queryCharTable);
-      let result = new core.StringBuffer();
-      let separator = "";
-      function writeParameter(key, value) {
-        result.write(separator);
-        separator = "&";
-        result.write(core.Uri.encodeQueryComponent(key));
-        if (value != null && dart.test(value[dartx.isNotEmpty])) {
-          result.write("=");
-          result.write(core.Uri.encodeQueryComponent(value));
-        }
-      }
-      dart.fn(writeParameter, StringAndStringTovoid$());
-      queryParameters[dartx.forEach](dart.fn((key, value) => {
-        if (value == null || typeof value == 'string') {
-          writeParameter(key, core.String._check(value));
-        } else {
-          let values = core.Iterable._check(value);
-          for (let value of values) {
-            core.String._check(value);
-            writeParameter(key, value);
+    return base[dartx.replaceRange](dart.notNull(baseEnd) + 1, null, reference[dartx.substring](refStart - 3 * backCount));
+  }
+  static _mayContainDotSegments(path) {
+    if (dart.test(path[dartx.startsWith]('.'))) return true;
+    let index = path[dartx.indexOf]("/.");
+    return index != -1;
+  }
+  static _removeDotSegments(path) {
+    if (!dart.test(core.Uri._mayContainDotSegments(path))) return path;
+    dart.assert(path[dartx.isNotEmpty]);
+    let output = JSArrayOfString().of([]);
+    let appendSlash = false;
+    for (let segment of path[dartx.split]("/")) {
+      appendSlash = false;
+      if (segment == "..") {
+        if (dart.test(output[dartx.isNotEmpty])) {
+          output[dartx.removeLast]();
+          if (dart.test(output[dartx.isEmpty])) {
+            output[dartx.add]("");
           }
         }
-      }, StringAnddynamicToNull()));
-      return result.toString();
-    }
-    static _makeFragment(fragment, start, end) {
-      if (fragment == null) return null;
-      return core.Uri._normalize(fragment, start, end, core.Uri._queryCharTable);
-    }
-    static _stringOrNullLength(s) {
-      return s == null ? 0 : s[dartx.length];
-    }
-    static _normalizeEscape(source, index, lowerCase) {
-      dart.assert(source[dartx.codeUnitAt](index) == core.Uri._PERCENT);
-      if (dart.notNull(index) + 2 >= dart.notNull(source[dartx.length])) {
-        return "%";
+        appendSlash = true;
+      } else if ("." == segment) {
+        appendSlash = true;
+      } else {
+        output[dartx.add](segment);
       }
-      let firstDigit = source[dartx.codeUnitAt](dart.notNull(index) + 1);
-      let secondDigit = source[dartx.codeUnitAt](dart.notNull(index) + 2);
-      let firstDigitValue = core.Uri._parseHexDigit(firstDigit);
-      let secondDigitValue = core.Uri._parseHexDigit(secondDigit);
-      if (dart.notNull(firstDigitValue) < 0 || dart.notNull(secondDigitValue) < 0) {
-        return "%";
-      }
-      let value = dart.notNull(firstDigitValue) * 16 + dart.notNull(secondDigitValue);
-      if (dart.test(core.Uri._isUnreservedChar(value))) {
-        if (dart.test(lowerCase) && core.Uri._UPPER_CASE_A <= value && core.Uri._UPPER_CASE_Z >= value) {
-          value = (value | 32) >>> 0;
+    }
+    if (appendSlash) output[dartx.add]("");
+    return output[dartx.join]("/");
+  }
+  static _normalizeRelativePath(path) {
+    dart.assert(!dart.test(path[dartx.startsWith]('/')));
+    if (!dart.test(core.Uri._mayContainDotSegments(path))) return path;
+    dart.assert(path[dartx.isNotEmpty]);
+    let output = JSArrayOfString().of([]);
+    let appendSlash = false;
+    for (let segment of path[dartx.split]("/")) {
+      appendSlash = false;
+      if (".." == segment) {
+        if (!dart.test(output[dartx.isEmpty]) && output[dartx.last] != "..") {
+          output[dartx.removeLast]();
+          appendSlash = true;
+        } else {
+          output[dartx.add]("..");
         }
-        return core.String.fromCharCode(value);
+      } else if ("." == segment) {
+        appendSlash = true;
+      } else {
+        output[dartx.add](segment);
       }
-      if (dart.notNull(firstDigit) >= core.Uri._LOWER_CASE_A || dart.notNull(secondDigit) >= core.Uri._LOWER_CASE_A) {
-        return source[dartx.substring](index, dart.notNull(index) + 3)[dartx.toUpperCase]();
-      }
-      return null;
     }
-    static _parseHexDigit(char) {
-      let digit = (dart.notNull(char) ^ core.Uri._ZERO) >>> 0;
-      if (digit <= 9) return digit;
-      let lowerCase = (dart.notNull(char) | 32) >>> 0;
-      if (core.Uri._LOWER_CASE_A <= lowerCase && lowerCase <= core.Uri._LOWER_CASE_F) {
-        return lowerCase - (core.Uri._LOWER_CASE_A - 10);
+    if (dart.test(output[dartx.isEmpty]) || output[dartx.length] == 1 && dart.test(output[dartx._get](0)[dartx.isEmpty])) {
+      return "./";
+    }
+    if (appendSlash || output[dartx.last] == '..') output[dartx.add]("");
+    return output[dartx.join]("/");
+  }
+  resolve(reference) {
+    return this.resolveUri(core.Uri.parse(reference));
+  }
+  resolveUri(reference) {
+    let targetScheme = null;
+    let targetUserInfo = "";
+    let targetHost = null;
+    let targetPort = null;
+    let targetPath = null;
+    let targetQuery = null;
+    if (dart.test(reference.scheme[dartx.isNotEmpty])) {
+      targetScheme = reference.scheme;
+      if (dart.test(reference.hasAuthority)) {
+        targetUserInfo = reference.userInfo;
+        targetHost = reference.host;
+        targetPort = dart.test(reference.hasPort) ? reference.port : null;
+      }
+      targetPath = core.Uri._removeDotSegments(reference.path);
+      if (dart.test(reference.hasQuery)) {
+        targetQuery = reference.query;
+      }
+    } else {
+      targetScheme = this.scheme;
+      if (dart.test(reference.hasAuthority)) {
+        targetUserInfo = reference.userInfo;
+        targetHost = reference.host;
+        targetPort = core.Uri._makePort(dart.test(reference.hasPort) ? reference.port : null, targetScheme);
+        targetPath = core.Uri._removeDotSegments(reference.path);
+        if (dart.test(reference.hasQuery)) targetQuery = reference.query;
+      } else {
+        targetUserInfo = this[_userInfo];
+        targetHost = this[_host];
+        targetPort = this[_port];
+        if (reference.path == "") {
+          targetPath = this[_path];
+          if (dart.test(reference.hasQuery)) {
+            targetQuery = reference.query;
+          } else {
+            targetQuery = this[_query];
+          }
+        } else {
+          if (dart.test(reference.hasAbsolutePath)) {
+            targetPath = core.Uri._removeDotSegments(reference.path);
+          } else {
+            if (dart.test(this.hasEmptyPath)) {
+              if (!dart.test(this.hasScheme) && !dart.test(this.hasAuthority)) {
+                targetPath = reference.path;
+              } else {
+                targetPath = core.Uri._removeDotSegments("/" + dart.notNull(reference.path));
+              }
+            } else {
+              let mergedPath = this[_mergePaths](this[_path], reference.path);
+              if (dart.test(this.hasScheme) || dart.test(this.hasAuthority) || dart.test(this.hasAbsolutePath)) {
+                targetPath = core.Uri._removeDotSegments(mergedPath);
+              } else {
+                targetPath = core.Uri._normalizeRelativePath(mergedPath);
+              }
+            }
+          }
+          if (dart.test(reference.hasQuery)) targetQuery = reference.query;
+        }
+      }
+    }
+    let fragment = dart.test(reference.hasFragment) ? reference.fragment : null;
+    return new core.Uri._internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
+  }
+  get hasScheme() {
+    return this.scheme[dartx.isNotEmpty];
+  }
+  get hasAuthority() {
+    return this[_host] != null;
+  }
+  get hasPort() {
+    return this[_port] != null;
+  }
+  get hasQuery() {
+    return this[_query] != null;
+  }
+  get hasFragment() {
+    return this[_fragment] != null;
+  }
+  get hasEmptyPath() {
+    return this[_path][dartx.isEmpty];
+  }
+  get hasAbsolutePath() {
+    return this[_path][dartx.startsWith]('/');
+  }
+  get origin() {
+    if (this.scheme == "" || this[_host] == null || this[_host] == "") {
+      dart.throw(new core.StateError(dart.str`Cannot use origin without a scheme: ${this}`));
+    }
+    if (this.scheme != "http" && this.scheme != "https") {
+      dart.throw(new core.StateError(dart.str`Origin is only applicable schemes http and https: ${this}`));
+    }
+    if (this[_port] == null) return dart.str`${this.scheme}://${this[_host]}`;
+    return dart.str`${this.scheme}://${this[_host]}:${this[_port]}`;
+  }
+  toFilePath(opts) {
+    let windows = opts && 'windows' in opts ? opts.windows : null;
+    if (this.scheme != "" && this.scheme != "file") {
+      dart.throw(new core.UnsupportedError(dart.str`Cannot extract a file path from a ${this.scheme} URI`));
+    }
+    if (this.query != "") {
+      dart.throw(new core.UnsupportedError("Cannot extract a file path from a URI with a query component"));
+    }
+    if (this.fragment != "") {
+      dart.throw(new core.UnsupportedError("Cannot extract a file path from a URI with a fragment component"));
+    }
+    if (windows == null) windows = core.Uri._isWindows;
+    return dart.test(windows) ? this[_toWindowsFilePath]() : this[_toFilePath]();
+  }
+  [_toFilePath]() {
+    if (this.host != "") {
+      dart.throw(new core.UnsupportedError("Cannot extract a non-Windows file path from a file URI " + "with an authority"));
+    }
+    core.Uri._checkNonWindowsPathReservedCharacters(this.pathSegments, false);
+    let result = new core.StringBuffer();
+    if (dart.test(this[_isPathAbsolute])) result.write("/");
+    result.writeAll(this.pathSegments, "/");
+    return result.toString();
+  }
+  [_toWindowsFilePath]() {
+    let hasDriveLetter = false;
+    let segments = this.pathSegments;
+    if (dart.notNull(segments[dartx.length]) > 0 && segments[dartx._get](0)[dartx.length] == 2 && segments[dartx._get](0)[dartx.codeUnitAt](1) == core.Uri._COLON) {
+      core.Uri._checkWindowsDriveLetter(segments[dartx._get](0)[dartx.codeUnitAt](0), false);
+      core.Uri._checkWindowsPathReservedCharacters(segments, false, 1);
+      hasDriveLetter = true;
+    } else {
+      core.Uri._checkWindowsPathReservedCharacters(segments, false);
+    }
+    let result = new core.StringBuffer();
+    if (dart.test(this[_isPathAbsolute]) && !hasDriveLetter) result.write("\\");
+    if (this.host != "") {
+      result.write("\\");
+      result.write(this.host);
+      result.write("\\");
+    }
+    result.writeAll(segments, "\\");
+    if (hasDriveLetter && segments[dartx.length] == 1) result.write("\\");
+    return result.toString();
+  }
+  get [_isPathAbsolute]() {
+    if (this.path == null || dart.test(this.path[dartx.isEmpty])) return false;
+    return this.path[dartx.startsWith]('/');
+  }
+  [_writeAuthority](ss) {
+    if (dart.test(this[_userInfo][dartx.isNotEmpty])) {
+      ss.write(this[_userInfo]);
+      ss.write("@");
+    }
+    if (this[_host] != null) ss.write(this[_host]);
+    if (this[_port] != null) {
+      ss.write(":");
+      ss.write(this[_port]);
+    }
+  }
+  get data() {
+    return this.scheme == "data" ? core.UriData.fromUri(this) : null;
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    core.Uri._addIfNonEmpty(sb, this.scheme, this.scheme, ':');
+    if (dart.test(this.hasAuthority) || dart.test(this.path[dartx.startsWith]("//")) || this.scheme == "file") {
+      sb.write("//");
+      this[_writeAuthority](sb);
+    }
+    sb.write(this.path);
+    if (this[_query] != null) {
+      sb.write("?");
+      sb.write(this[_query]);
+    }
+    if (this[_fragment] != null) {
+      sb.write("#");
+      sb.write(this[_fragment]);
+    }
+    return sb.toString();
+  }
+  ['=='](other) {
+    if (!core.Uri.is(other)) return false;
+    let uri = core.Uri._check(other);
+    return this.scheme == uri.scheme && this.hasAuthority == uri.hasAuthority && this.userInfo == uri.userInfo && this.host == uri.host && this.port == uri.port && this.path == uri.path && this.hasQuery == uri.hasQuery && this.query == uri.query && this.hasFragment == uri.hasFragment && this.fragment == uri.fragment;
+  }
+  get hashCode() {
+    function combine(part, current) {
+      return core.int._check(dart.dsend(dart.dsend(dart.dsend(current, '*', 31), '+', dart.hashCode(part)), '&', 1073741823));
+    }
+    dart.fn(combine, dynamicAnddynamicToint());
+    return combine(this.scheme, combine(this.userInfo, combine(this.host, combine(this.port, combine(this.path, combine(this.query, combine(this.fragment, 1)))))));
+  }
+  static _addIfNonEmpty(sb, test, first, second) {
+    if ("" != test) {
+      sb.write(first);
+      sb.write(second);
+    }
+  }
+  static encodeComponent(component) {
+    return core.Uri._uriEncode(core.Uri._unreserved2396Table, component, convert.UTF8, false);
+  }
+  static encodeQueryComponent(component, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return core.Uri._uriEncode(core.Uri._unreservedTable, component, encoding, true);
+  }
+  static decodeComponent(encodedComponent) {
+    return core.Uri._uriDecode(encodedComponent, 0, encodedComponent[dartx.length], convert.UTF8, false);
+  }
+  static decodeQueryComponent(encodedComponent, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return core.Uri._uriDecode(encodedComponent, 0, encodedComponent[dartx.length], encoding, true);
+  }
+  static encodeFull(uri) {
+    return core.Uri._uriEncode(core.Uri._encodeFullTable, uri, convert.UTF8, false);
+  }
+  static decodeFull(uri) {
+    return core.Uri._uriDecode(uri, 0, uri[dartx.length], convert.UTF8, false);
+  }
+  static splitQueryString(query, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return query[dartx.split]("&")[dartx.fold](MapOfString$String())(dart.map({}, core.String, core.String), dart.fn((map, element) => {
+      let index = element[dartx.indexOf]("=");
+      if (index == -1) {
+        if (element != "") {
+          map[dartx._set](core.Uri.decodeQueryComponent(element, {encoding: encoding}), "");
+        }
+      } else if (index != 0) {
+        let key = element[dartx.substring](0, index);
+        let value = element[dartx.substring](dart.notNull(index) + 1);
+        map[dartx._set](core.Uri.decodeQueryComponent(key, {encoding: encoding}), core.Uri.decodeQueryComponent(value, {encoding: encoding}));
+      }
+      return map;
+    }, MapOfString$StringAndStringToMapOfString$String()));
+  }
+  static _createList() {
+    return [];
+  }
+  static _splitQueryStringAll(query, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    let result = dart.map();
+    let i = 0;
+    let start = 0;
+    let equalsIndex = -1;
+    function parsePair(start, equalsIndex, end) {
+      let key = null;
+      let value = null;
+      if (start == end) return;
+      if (dart.notNull(equalsIndex) < 0) {
+        key = core.Uri._uriDecode(query, start, end, encoding, true);
+        value = "";
+      } else {
+        key = core.Uri._uriDecode(query, start, equalsIndex, encoding, true);
+        value = core.Uri._uriDecode(query, dart.notNull(equalsIndex) + 1, end, encoding, true);
+      }
+      dart.dsend(result[dartx.putIfAbsent](key, core.Uri._createList), 'add', value);
+    }
+    dart.fn(parsePair, intAndintAndintTovoid());
+    let _equals = 61;
+    let _ampersand = 38;
+    while (i < dart.notNull(query[dartx.length])) {
+      let char = query[dartx.codeUnitAt](i);
+      if (char == _equals) {
+        if (equalsIndex < 0) equalsIndex = i;
+      } else if (char == _ampersand) {
+        parsePair(start, equalsIndex, i);
+        start = i + 1;
+        equalsIndex = -1;
+      }
+      i++;
+    }
+    parsePair(start, equalsIndex, i);
+    return result;
+  }
+  static parseIPv4Address(host) {
+    function error(msg) {
+      dart.throw(new core.FormatException(dart.str`Illegal IPv4 address, ${msg}`));
+    }
+    dart.fn(error, StringTovoid$());
+    let bytes = host[dartx.split]('.');
+    if (bytes[dartx.length] != 4) {
+      error('IPv4 address should contain exactly 4 parts');
+    }
+    return bytes[dartx.map](core.int)(dart.fn(byteString => {
+      let byte = core.int.parse(byteString);
+      if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) {
+        error('each part must be in the range of `0..255`');
+      }
+      return byte;
+    }, StringToint$()))[dartx.toList]();
+  }
+  static parseIPv6Address(host, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    if (end == null) end = host[dartx.length];
+    function error(msg, position) {
+      if (position === void 0) position = null;
+      dart.throw(new core.FormatException(dart.str`Illegal IPv6 address, ${msg}`, host, core.int._check(position)));
+    }
+    dart.fn(error, String__Tovoid());
+    function parseHex(start, end) {
+      if (dart.notNull(end) - dart.notNull(start) > 4) {
+        error('an IPv6 part can only contain a maximum of 4 hex digits', start);
+      }
+      let value = core.int.parse(host[dartx.substring](start, end), {radix: 16});
+      if (dart.notNull(value) < 0 || dart.notNull(value) > (1 << 16) - 1) {
+        error('each part must be in the range of `0x0..0xFFFF`', start);
+      }
+      return value;
+    }
+    dart.fn(parseHex, intAndintToint());
+    if (dart.notNull(host[dartx.length]) < 2) error('address is too short');
+    let parts = JSArrayOfint().of([]);
+    let wildcardSeen = false;
+    let partStart = start;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      if (host[dartx.codeUnitAt](i) == core.Uri._COLON) {
+        if (i == start) {
+          i = dart.notNull(i) + 1;
+          if (host[dartx.codeUnitAt](i) != core.Uri._COLON) {
+            error('invalid start colon.', i);
+          }
+          partStart = i;
+        }
+        if (i == partStart) {
+          if (wildcardSeen) {
+            error('only one wildcard `::` is allowed', i);
+          }
+          wildcardSeen = true;
+          parts[dartx.add](-1);
+        } else {
+          parts[dartx.add](parseHex(partStart, i));
+        }
+        partStart = dart.notNull(i) + 1;
+      }
+    }
+    if (parts[dartx.length] == 0) error('too few parts');
+    let atEnd = partStart == end;
+    let isLastWildcard = parts[dartx.last] == -1;
+    if (atEnd && !isLastWildcard) {
+      error('expected a part after last `:`', end);
+    }
+    if (!atEnd) {
+      try {
+        parts[dartx.add](parseHex(partStart, end));
+      } catch (e) {
+        try {
+          let last = core.Uri.parseIPv4Address(host[dartx.substring](partStart, end));
+          parts[dartx.add]((dart.notNull(last[dartx._get](0)) << 8 | dart.notNull(last[dartx._get](1))) >>> 0);
+          parts[dartx.add]((dart.notNull(last[dartx._get](2)) << 8 | dart.notNull(last[dartx._get](3))) >>> 0);
+        } catch (e) {
+          error('invalid end of IPv6 address.', partStart);
+        }
+
+      }
+
+    }
+    if (wildcardSeen) {
+      if (dart.notNull(parts[dartx.length]) > 7) {
+        error('an address with a wildcard must have less than 7 parts');
+      }
+    } else if (parts[dartx.length] != 8) {
+      error('an address without a wildcard must contain exactly 8 parts');
+    }
+    let bytes = typed_data.Uint8List.new(16);
+    for (let i = 0, index = 0; i < dart.notNull(parts[dartx.length]); i++) {
+      let value = parts[dartx._get](i);
+      if (value == -1) {
+        let wildCardLength = 9 - dart.notNull(parts[dartx.length]);
+        for (let j = 0; j < wildCardLength; j++) {
+          bytes[dartx._set](index, 0);
+          bytes[dartx._set](index + 1, 0);
+          index = index + 2;
+        }
+      } else {
+        bytes[dartx._set](index, value[dartx['>>']](8));
+        bytes[dartx._set](index + 1, dart.notNull(value) & 255);
+        index = index + 2;
+      }
+    }
+    return bytes;
+  }
+  static _uriEncode(canonicalTable, text, encoding, spaceToPlus) {
+    if (core.identical(encoding, convert.UTF8) && dart.test(core.Uri._needsNoEncoding.hasMatch(text))) {
+      return text;
+    }
+    let result = new core.StringBuffer();
+    let bytes = encoding.encode(text);
+    for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
+      let byte = bytes[dartx._get](i);
+      if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[dartx._get](byte[dartx['>>']](4))) & 1 << (dart.notNull(byte) & 15)) != 0) {
+        result.writeCharCode(byte);
+      } else if (dart.test(spaceToPlus) && byte == core.Uri._SPACE) {
+        result.write('+');
+      } else {
+        let hexDigits = '0123456789ABCDEF';
+        result.write('%');
+        result.write(hexDigits[dartx._get](dart.notNull(byte) >> 4 & 15));
+        result.write(hexDigits[dartx._get](dart.notNull(byte) & 15));
+      }
+    }
+    return result.toString();
+  }
+  static _hexCharPairToByte(s, pos) {
+    let byte = 0;
+    for (let i = 0; i < 2; i++) {
+      let charCode = s[dartx.codeUnitAt](dart.notNull(pos) + i);
+      if (48 <= dart.notNull(charCode) && dart.notNull(charCode) <= 57) {
+        byte = byte * 16 + dart.notNull(charCode) - 48;
+      } else {
+        charCode = (dart.notNull(charCode) | 32) >>> 0;
+        if (97 <= dart.notNull(charCode) && dart.notNull(charCode) <= 102) {
+          byte = byte * 16 + dart.notNull(charCode) - 87;
+        } else {
+          dart.throw(new core.ArgumentError("Invalid URL encoding"));
+        }
+      }
+    }
+    return byte;
+  }
+  static _uriDecode(text, start, end, encoding, plusToSpace) {
+    dart.assert(0 <= dart.notNull(start));
+    dart.assert(dart.notNull(start) <= dart.notNull(end));
+    dart.assert(dart.notNull(end) <= dart.notNull(text[dartx.length]));
+    dart.assert(encoding != null);
+    let simple = true;
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      let codeUnit = text[dartx.codeUnitAt](i);
+      if (dart.notNull(codeUnit) > 127 || codeUnit == core.Uri._PERCENT || dart.test(plusToSpace) && codeUnit == core.Uri._PLUS) {
+        simple = false;
+        break;
+      }
+    }
+    let bytes = null;
+    if (simple) {
+      if (dart.equals(convert.UTF8, encoding) || dart.equals(convert.LATIN1, encoding) || dart.equals(convert.ASCII, encoding)) {
+        return text[dartx.substring](start, end);
+      } else {
+        bytes = text[dartx.substring](start, end)[dartx.codeUnits];
+      }
+    } else {
+      bytes = ListOfint().new();
+      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+        let codeUnit = text[dartx.codeUnitAt](i);
+        if (dart.notNull(codeUnit) > 127) {
+          dart.throw(new core.ArgumentError("Illegal percent encoding in URI"));
+        }
+        if (codeUnit == core.Uri._PERCENT) {
+          if (dart.notNull(i) + 3 > dart.notNull(text[dartx.length])) {
+            dart.throw(new core.ArgumentError('Truncated URI'));
+          }
+          bytes[dartx.add](core.Uri._hexCharPairToByte(text, dart.notNull(i) + 1));
+          i = dart.notNull(i) + 2;
+        } else if (dart.test(plusToSpace) && codeUnit == core.Uri._PLUS) {
+          bytes[dartx.add](core.Uri._SPACE);
+        } else {
+          bytes[dartx.add](codeUnit);
+        }
+      }
+    }
+    return encoding.decode(bytes);
+  }
+  static _isAlphabeticCharacter(codeUnit) {
+    let lowerCase = (dart.notNull(codeUnit) | 32) >>> 0;
+    return core.Uri._LOWER_CASE_A <= lowerCase && lowerCase <= core.Uri._LOWER_CASE_Z;
+  }
+  static _isUnreservedChar(char) {
+    return dart.notNull(char) < 127 && (dart.notNull(core.Uri._unreservedTable[dartx._get](char[dartx['>>']](4))) & 1 << (dart.notNull(char) & 15)) != 0;
+  }
+};
+dart.defineNamedConstructor(core.Uri, '_internal');
+dart.setSignature(core.Uri, {
+  constructors: () => ({
+    _internal: dart.definiteFunctionType(core.Uri, [core.String, core.String, core.String, core.int, core.String, core.String, core.String]),
+    new: dart.definiteFunctionType(core.Uri, [], {scheme: core.String, userInfo: core.String, host: core.String, port: core.int, path: core.String, pathSegments: IterableOfString(), query: core.String, queryParameters: MapOfString$dynamic(), fragment: core.String}),
+    http: dart.definiteFunctionType(core.Uri, [core.String, core.String], [MapOfString$String()]),
+    https: dart.definiteFunctionType(core.Uri, [core.String, core.String], [MapOfString$String()]),
+    file: dart.definiteFunctionType(core.Uri, [core.String], {windows: core.bool}),
+    directory: dart.definiteFunctionType(core.Uri, [core.String], {windows: core.bool}),
+    dataFromString: dart.definiteFunctionType(core.Uri, [core.String], {mimeType: core.String, encoding: convert.Encoding, parameters: MapOfString$String(), base64: core.bool}),
+    dataFromBytes: dart.definiteFunctionType(core.Uri, [ListOfint()], {mimeType: dart.dynamic, parameters: MapOfString$String(), percentEncoded: dart.dynamic})
+  }),
+  fields: () => ({
+    scheme: core.String,
+    [_userInfo]: core.String,
+    [_host]: core.String,
+    [_port]: core.int,
+    [_path]: core.String,
+    [_query]: core.String,
+    [_fragment]: core.String,
+    [_pathSegments]: ListOfString(),
+    [_queryParameters]: MapOfString$String(),
+    [_queryParameterLists]: MapOfString$ListOfString()
+  }),
+  getters: () => ({
+    authority: dart.definiteFunctionType(core.String, []),
+    userInfo: dart.definiteFunctionType(core.String, []),
+    host: dart.definiteFunctionType(core.String, []),
+    port: dart.definiteFunctionType(core.int, []),
+    path: dart.definiteFunctionType(core.String, []),
+    query: dart.definiteFunctionType(core.String, []),
+    fragment: dart.definiteFunctionType(core.String, []),
+    pathSegments: dart.definiteFunctionType(core.List$(core.String), []),
+    queryParameters: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
+    queryParametersAll: dart.definiteFunctionType(core.Map$(core.String, core.List$(core.String)), []),
+    isAbsolute: dart.definiteFunctionType(core.bool, []),
+    hasScheme: dart.definiteFunctionType(core.bool, []),
+    hasAuthority: dart.definiteFunctionType(core.bool, []),
+    hasPort: dart.definiteFunctionType(core.bool, []),
+    hasQuery: dart.definiteFunctionType(core.bool, []),
+    hasFragment: dart.definiteFunctionType(core.bool, []),
+    hasEmptyPath: dart.definiteFunctionType(core.bool, []),
+    hasAbsolutePath: dart.definiteFunctionType(core.bool, []),
+    origin: dart.definiteFunctionType(core.String, []),
+    [_isPathAbsolute]: dart.definiteFunctionType(core.bool, []),
+    data: dart.definiteFunctionType(core.UriData, [])
+  }),
+  methods: () => ({
+    replace: dart.definiteFunctionType(core.Uri, [], {scheme: core.String, userInfo: core.String, host: core.String, port: core.int, path: core.String, pathSegments: IterableOfString(), query: core.String, queryParameters: MapOfString$dynamic(), fragment: core.String}),
+    removeFragment: dart.definiteFunctionType(core.Uri, []),
+    normalizePath: dart.definiteFunctionType(core.Uri, []),
+    [_mergePaths]: dart.definiteFunctionType(core.String, [core.String, core.String]),
+    resolve: dart.definiteFunctionType(core.Uri, [core.String]),
+    resolveUri: dart.definiteFunctionType(core.Uri, [core.Uri]),
+    toFilePath: dart.definiteFunctionType(core.String, [], {windows: core.bool}),
+    [_toFilePath]: dart.definiteFunctionType(core.String, []),
+    [_toWindowsFilePath]: dart.definiteFunctionType(core.String, []),
+    [_writeAuthority]: dart.definiteFunctionType(dart.void, [core.StringSink])
+  }),
+  sfields: () => ({
+    _SPACE: core.int,
+    _DOUBLE_QUOTE: core.int,
+    _NUMBER_SIGN: core.int,
+    _PERCENT: core.int,
+    _ASTERISK: core.int,
+    _PLUS: core.int,
+    _DOT: core.int,
+    _SLASH: core.int,
+    _ZERO: core.int,
+    _NINE: core.int,
+    _COLON: core.int,
+    _LESS: core.int,
+    _GREATER: core.int,
+    _QUESTION: core.int,
+    _AT_SIGN: core.int,
+    _UPPER_CASE_A: core.int,
+    _UPPER_CASE_F: core.int,
+    _UPPER_CASE_Z: core.int,
+    _LEFT_BRACKET: core.int,
+    _BACKSLASH: core.int,
+    _RIGHT_BRACKET: core.int,
+    _LOWER_CASE_A: core.int,
+    _LOWER_CASE_F: core.int,
+    _LOWER_CASE_Z: core.int,
+    _BAR: core.int,
+    _hexDigits: core.String,
+    _unreservedTable: ListOfint(),
+    _unreserved2396Table: ListOfint(),
+    _encodeFullTable: ListOfint(),
+    _schemeTable: ListOfint(),
+    _schemeLowerTable: ListOfint(),
+    _subDelimitersTable: ListOfint(),
+    _genDelimitersTable: ListOfint(),
+    _userinfoTable: ListOfint(),
+    _regNameTable: ListOfint(),
+    _pathCharTable: ListOfint(),
+    _pathCharOrSlashTable: ListOfint(),
+    _queryCharTable: ListOfint(),
+    _needsNoEncoding: core.RegExp
+  }),
+  sgetters: () => ({
+    base: dart.definiteFunctionType(core.Uri, []),
+    _isWindows: dart.definiteFunctionType(core.bool, [])
+  }),
+  statics: () => ({
+    _defaultPort: dart.definiteFunctionType(core.int, [core.String]),
+    parse: dart.definiteFunctionType(core.Uri, [core.String], [core.int, core.int]),
+    _fail: dart.definiteFunctionType(dart.void, [core.String, core.int, core.String]),
+    _makeHttpUri: dart.definiteFunctionType(core.Uri, [core.String, core.String, core.String, MapOfString$String()]),
+    _checkNonWindowsPathReservedCharacters: dart.definiteFunctionType(dart.dynamic, [ListOfString(), core.bool]),
+    _checkWindowsPathReservedCharacters: dart.definiteFunctionType(dart.dynamic, [ListOfString(), core.bool], [core.int]),
+    _checkWindowsDriveLetter: dart.definiteFunctionType(dart.dynamic, [core.int, core.bool]),
+    _makeFileUri: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
+    _makeWindowsFileUrl: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
+    _makePort: dart.definiteFunctionType(core.int, [core.int, core.String]),
+    _makeHost: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, core.bool]),
+    _isRegNameChar: dart.definiteFunctionType(core.bool, [core.int]),
+    _normalizeRegName: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
+    _makeScheme: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
+    _makeUserInfo: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
+    _makePath: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, IterableOfString(), core.String, core.bool]),
+    _normalizePath: dart.definiteFunctionType(core.String, [core.String, core.String, core.bool]),
+    _makeQuery: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, MapOfString$dynamic()]),
+    _makeFragment: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
+    _stringOrNullLength: dart.definiteFunctionType(core.int, [core.String]),
+    _normalizeEscape: dart.definiteFunctionType(core.String, [core.String, core.int, core.bool]),
+    _parseHexDigit: dart.definiteFunctionType(core.int, [core.int]),
+    _escapeChar: dart.definiteFunctionType(core.String, [core.int]),
+    _normalize: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, ListOfint()]),
+    _isSchemeCharacter: dart.definiteFunctionType(core.bool, [core.int]),
+    _isGeneralDelimiter: dart.definiteFunctionType(core.bool, [core.int]),
+    _mayContainDotSegments: dart.definiteFunctionType(core.bool, [core.String]),
+    _removeDotSegments: dart.definiteFunctionType(core.String, [core.String]),
+    _normalizeRelativePath: dart.definiteFunctionType(core.String, [core.String]),
+    _addIfNonEmpty: dart.definiteFunctionType(dart.void, [core.StringBuffer, core.String, core.String, core.String]),
+    encodeComponent: dart.definiteFunctionType(core.String, [core.String]),
+    encodeQueryComponent: dart.definiteFunctionType(core.String, [core.String], {encoding: convert.Encoding}),
+    decodeComponent: dart.definiteFunctionType(core.String, [core.String]),
+    decodeQueryComponent: dart.definiteFunctionType(core.String, [core.String], {encoding: convert.Encoding}),
+    encodeFull: dart.definiteFunctionType(core.String, [core.String]),
+    decodeFull: dart.definiteFunctionType(core.String, [core.String]),
+    splitQueryString: dart.definiteFunctionType(core.Map$(core.String, core.String), [core.String], {encoding: convert.Encoding}),
+    _createList: dart.definiteFunctionType(core.List, []),
+    _splitQueryStringAll: dart.definiteFunctionType(core.Map, [core.String], {encoding: convert.Encoding}),
+    parseIPv4Address: dart.definiteFunctionType(core.List$(core.int), [core.String]),
+    parseIPv6Address: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
+    _uriEncode: dart.definiteFunctionType(core.String, [ListOfint(), core.String, convert.Encoding, core.bool]),
+    _hexCharPairToByte: dart.definiteFunctionType(core.int, [core.String, core.int]),
+    _uriDecode: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, convert.Encoding, core.bool]),
+    _isAlphabeticCharacter: dart.definiteFunctionType(core.bool, [core.int]),
+    _isUnreservedChar: dart.definiteFunctionType(core.bool, [core.int])
+  }),
+  names: ['_defaultPort', 'parse', '_fail', '_makeHttpUri', '_checkNonWindowsPathReservedCharacters', '_checkWindowsPathReservedCharacters', '_checkWindowsDriveLetter', '_makeFileUri', '_makeWindowsFileUrl', '_makePort', '_makeHost', '_isRegNameChar', '_normalizeRegName', '_makeScheme', '_makeUserInfo', '_makePath', '_normalizePath', '_makeQuery', '_makeFragment', '_stringOrNullLength', '_normalizeEscape', '_parseHexDigit', '_escapeChar', '_normalize', '_isSchemeCharacter', '_isGeneralDelimiter', '_mayContainDotSegments', '_removeDotSegments', '_normalizeRelativePath', '_addIfNonEmpty', 'encodeComponent', 'encodeQueryComponent', 'decodeComponent', 'decodeQueryComponent', 'encodeFull', 'decodeFull', 'splitQueryString', '_createList', '_splitQueryStringAll', 'parseIPv4Address', 'parseIPv6Address', '_uriEncode', '_hexCharPairToByte', '_uriDecode', '_isAlphabeticCharacter', '_isUnreservedChar']
+});
+core.Uri._SPACE = 32;
+core.Uri._DOUBLE_QUOTE = 34;
+core.Uri._NUMBER_SIGN = 35;
+core.Uri._PERCENT = 37;
+core.Uri._ASTERISK = 42;
+core.Uri._PLUS = 43;
+core.Uri._DOT = 46;
+core.Uri._SLASH = 47;
+core.Uri._ZERO = 48;
+core.Uri._NINE = 57;
+core.Uri._COLON = 58;
+core.Uri._LESS = 60;
+core.Uri._GREATER = 62;
+core.Uri._QUESTION = 63;
+core.Uri._AT_SIGN = 64;
+core.Uri._UPPER_CASE_A = 65;
+core.Uri._UPPER_CASE_F = 70;
+core.Uri._UPPER_CASE_Z = 90;
+core.Uri._LEFT_BRACKET = 91;
+core.Uri._BACKSLASH = 92;
+core.Uri._RIGHT_BRACKET = 93;
+core.Uri._LOWER_CASE_A = 97;
+core.Uri._LOWER_CASE_F = 102;
+core.Uri._LOWER_CASE_Z = 122;
+core.Uri._BAR = 124;
+core.Uri._hexDigits = "0123456789ABCDEF";
+core.Uri._unreservedTable = dart.constList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431], core.int);
+core.Uri._unreserved2396Table = dart.constList([0, 0, 26498, 1023, 65534, 34815, 65534, 18431], core.int);
+core.Uri._encodeFullTable = dart.constList([0, 0, 65498, 45055, 65535, 34815, 65534, 18431], core.int);
+core.Uri._schemeTable = dart.constList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047], core.int);
+core.Uri._schemeLowerTable = dart.constList([0, 0, 26624, 1023, 0, 0, 65534, 2047], core.int);
+core.Uri._subDelimitersTable = dart.constList([0, 0, 32722, 11263, 65534, 34815, 65534, 18431], core.int);
+core.Uri._genDelimitersTable = dart.constList([0, 0, 32776, 33792, 1, 10240, 0, 0], core.int);
+core.Uri._userinfoTable = dart.constList([0, 0, 32722, 12287, 65534, 34815, 65534, 18431], core.int);
+core.Uri._regNameTable = dart.constList([0, 0, 32754, 11263, 65534, 34815, 65534, 18431], core.int);
+core.Uri._pathCharTable = dart.constList([0, 0, 32722, 12287, 65535, 34815, 65534, 18431], core.int);
+core.Uri._pathCharOrSlashTable = dart.constList([0, 0, 65490, 12287, 65535, 34815, 65534, 18431], core.int);
+core.Uri._queryCharTable = dart.constList([0, 0, 65490, 45055, 65535, 34815, 65534, 18431], core.int);
+dart.defineLazy(core.Uri, {
+  get _needsNoEncoding() {
+    return core.RegExp.new('^[\\-\\.0-9A-Z_a-z~]*$');
+  }
+});
+const _text = Symbol('_text');
+const _separatorIndices = Symbol('_separatorIndices');
+const _uriCache = Symbol('_uriCache');
+core.UriData = class UriData extends core.Object {
+  _(text, separatorIndices, uriCache) {
+    this[_text] = text;
+    this[_separatorIndices] = separatorIndices;
+    this[_uriCache] = uriCache;
+  }
+  static fromString(content, opts) {
+    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
+    let encoding = opts && 'encoding' in opts ? opts.encoding : null;
+    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
+    let base64 = opts && 'base64' in opts ? opts.base64 : false;
+    let buffer = new core.StringBuffer();
+    let indices = JSArrayOfint().of([core.UriData._noScheme]);
+    let charsetName = null;
+    let encodingName = null;
+    if (parameters != null) charsetName = parameters[dartx._get]("charset");
+    if (encoding == null) {
+      if (charsetName != null) {
+        encoding = convert.Encoding.getByName(charsetName);
+      }
+    } else if (charsetName == null) {
+      encodingName = encoding.name;
+    }
+    let t = encoding;
+    t == null ? encoding = convert.ASCII : t;
+    core.UriData._writeUri(mimeType, encodingName, parameters, buffer, indices);
+    indices[dartx.add](buffer.length);
+    if (dart.test(base64)) {
+      buffer.write(';base64,');
+      indices[dartx.add](dart.notNull(buffer.length) - 1);
+      buffer.write(encoding.fuse(core.String)(convert.BASE64).encode(content));
+    } else {
+      buffer.write(',');
+      core.UriData._uriEncodeBytes(core.UriData._uricTable, encoding.encode(content), buffer);
+    }
+    return new core.UriData._(buffer.toString(), indices, null);
+  }
+  static fromBytes(bytes, opts) {
+    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
+    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
+    let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
+    let buffer = new core.StringBuffer();
+    let indices = JSArrayOfint().of([core.UriData._noScheme]);
+    core.UriData._writeUri(core.String._check(mimeType), null, parameters, buffer, indices);
+    indices[dartx.add](buffer.length);
+    if (dart.test(percentEncoded)) {
+      buffer.write(',');
+      core.UriData._uriEncodeBytes(core.UriData._uricTable, bytes, buffer);
+    } else {
+      buffer.write(';base64,');
+      indices[dartx.add](dart.notNull(buffer.length) - 1);
+      convert.BASE64.encoder.startChunkedConversion(convert.StringConversionSink.fromStringSink(buffer)).addSlice(bytes, 0, bytes[dartx.length], true);
+    }
+    return new core.UriData._(buffer.toString(), indices, null);
+  }
+  static fromUri(uri) {
+    if (uri.scheme != "data") {
+      dart.throw(new core.ArgumentError.value(uri, "uri", "Scheme must be 'data'"));
+    }
+    if (dart.test(uri.hasAuthority)) {
+      dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have authority"));
+    }
+    if (dart.test(uri.hasFragment)) {
+      dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have a fragment part"));
+    }
+    if (!dart.test(uri.hasQuery)) {
+      return core.UriData._parse(uri.path, 0, uri);
+    }
+    return core.UriData._parse(dart.str`${uri}`, 5, uri);
+  }
+  static _writeUri(mimeType, charsetName, parameters, buffer, indices) {
+    if (mimeType == null || mimeType == "text/plain") {
+      mimeType = "";
+    }
+    if (dart.test(mimeType[dartx.isEmpty]) || core.identical(mimeType, "application/octet-stream")) {
+      buffer.write(mimeType);
+    } else {
+      let slashIndex = core.UriData._validateMimeType(mimeType);
+      if (dart.notNull(slashIndex) < 0) {
+        dart.throw(new core.ArgumentError.value(mimeType, "mimeType", "Invalid MIME type"));
+      }
+      buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, mimeType[dartx.substring](0, slashIndex), convert.UTF8, false));
+      buffer.write("/");
+      buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, mimeType[dartx.substring](dart.notNull(slashIndex) + 1), convert.UTF8, false));
+    }
+    if (charsetName != null) {
+      if (indices != null) {
+        indices[dartx.add](buffer.length);
+        indices[dartx.add](dart.notNull(buffer.length) + 8);
+      }
+      buffer.write(";charset=");
+      buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, charsetName, convert.UTF8, false));
+    }
+    dart.nullSafe(parameters, _ => _[dartx.forEach](dart.fn((key, value) => {
+      if (dart.test(key[dartx.isEmpty])) {
+        dart.throw(new core.ArgumentError.value("", "Parameter names must not be empty"));
+      }
+      if (dart.test(value[dartx.isEmpty])) {
+        dart.throw(new core.ArgumentError.value("", "Parameter values must not be empty", dart.str`parameters["${key}"]`));
+      }
+      if (indices != null) indices[dartx.add](buffer.length);
+      buffer.write(';');
+      buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, key, convert.UTF8, false));
+      if (indices != null) indices[dartx.add](buffer.length);
+      buffer.write('=');
+      buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, value, convert.UTF8, false));
+    }, StringAndStringToNull())));
+  }
+  static _validateMimeType(mimeType) {
+    let slashIndex = -1;
+    for (let i = 0; i < dart.notNull(mimeType[dartx.length]); i++) {
+      let char = mimeType[dartx.codeUnitAt](i);
+      if (char != core.Uri._SLASH) continue;
+      if (slashIndex < 0) {
+        slashIndex = i;
+        continue;
       }
       return -1;
     }
-    static _escapeChar(char) {
-      dart.assert(dart.notNull(char) <= 1114111);
-      let codeUnits = null;
-      if (dart.notNull(char) < 128) {
-        codeUnits = ListOfint().new(3);
-        codeUnits[dartx._set](0, core.Uri._PERCENT);
-        codeUnits[dartx._set](1, core.Uri._hexDigits[dartx.codeUnitAt](char[dartx['>>']](4)));
-        codeUnits[dartx._set](2, core.Uri._hexDigits[dartx.codeUnitAt](dart.notNull(char) & 15));
-      } else {
-        let flag = 192;
-        let encodedBytes = 2;
-        if (dart.notNull(char) > 2047) {
-          flag = 224;
-          encodedBytes = 3;
-          if (dart.notNull(char) > 65535) {
-            encodedBytes = 4;
-            flag = 240;
-          }
-        }
-        codeUnits = ListOfint().new(3 * encodedBytes);
-        let index = 0;
-        while (--encodedBytes >= 0) {
-          let byte = (char[dartx['>>']](6 * encodedBytes) & 63 | flag) >>> 0;
-          codeUnits[dartx._set](index, core.Uri._PERCENT);
-          codeUnits[dartx._set](index + 1, core.Uri._hexDigits[dartx.codeUnitAt](byte[dartx['>>']](4)));
-          codeUnits[dartx._set](index + 2, core.Uri._hexDigits[dartx.codeUnitAt](byte & 15));
-          index = index + 3;
-          flag = 128;
-        }
-      }
-      return core.String.fromCharCodes(codeUnits);
+    return slashIndex;
+  }
+  static parse(uri) {
+    if (!dart.test(uri[dartx.startsWith]("data:"))) {
+      dart.throw(new core.FormatException("Does not start with 'data:'", uri, 0));
     }
-    static _normalize(component, start, end, charTable) {
-      let buffer = null;
-      let sectionStart = start;
-      let index = start;
-      while (dart.notNull(index) < dart.notNull(end)) {
-        let char = component[dartx.codeUnitAt](index);
-        if (dart.notNull(char) < 127 && (dart.notNull(charTable[dartx._get](char[dartx['>>']](4))) & 1 << (dart.notNull(char) & 15)) != 0) {
-          index = dart.notNull(index) + 1;
-        } else {
-          let replacement = null;
-          let sourceLength = null;
-          if (char == core.Uri._PERCENT) {
-            replacement = core.Uri._normalizeEscape(component, index, false);
-            if (replacement == null) {
-              index = dart.notNull(index) + 3;
-              continue;
-            }
-            if ("%" == replacement) {
-              replacement = "%25";
-              sourceLength = 1;
-            } else {
-              sourceLength = 3;
-            }
-          } else if (dart.test(core.Uri._isGeneralDelimiter(char))) {
-            core.Uri._fail(component, index, "Invalid character");
-          } else {
-            sourceLength = 1;
-            if ((dart.notNull(char) & 64512) == 55296) {
-              if (dart.notNull(index) + 1 < dart.notNull(end)) {
-                let tail = component[dartx.codeUnitAt](dart.notNull(index) + 1);
-                if ((dart.notNull(tail) & 64512) == 56320) {
-                  sourceLength = 2;
-                  char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNull(tail) & 1023;
-                }
-              }
-            }
-            replacement = core.Uri._escapeChar(char);
-          }
-          if (buffer == null) buffer = new core.StringBuffer();
-          buffer.write(component[dartx.substring](sectionStart, index));
-          buffer.write(replacement);
-          index = dart.notNull(index) + dart.notNull(sourceLength);
-          sectionStart = index;
-        }
-      }
-      if (buffer == null) {
-        return component[dartx.substring](start, end);
-      }
-      if (dart.notNull(sectionStart) < dart.notNull(end)) {
-        buffer.write(component[dartx.substring](sectionStart, end));
-      }
-      return dart.toString(buffer);
+    return core.UriData._parse(uri, 5, null);
+  }
+  get uri() {
+    if (this[_uriCache] != null) return this[_uriCache];
+    let path = this[_text];
+    let query = null;
+    let colonIndex = this[_separatorIndices][dartx._get](0);
+    let queryIndex = this[_text][dartx.indexOf]('?', dart.notNull(colonIndex) + 1);
+    let end = null;
+    if (dart.notNull(queryIndex) >= 0) {
+      query = this[_text][dartx.substring](dart.notNull(queryIndex) + 1);
+      end = queryIndex;
     }
-    static _isSchemeCharacter(ch) {
-      return dart.notNull(ch) < 128 && (dart.notNull(core.Uri._schemeTable[dartx._get](ch[dartx['>>']](4))) & 1 << (dart.notNull(ch) & 15)) != 0;
+    path = this[_text][dartx.substring](dart.notNull(colonIndex) + 1, end);
+    this[_uriCache] = new core.Uri._internal("data", "", null, null, path, query, null);
+    return this[_uriCache];
+  }
+  get mimeType() {
+    let start = dart.notNull(this[_separatorIndices][dartx._get](0)) + 1;
+    let end = this[_separatorIndices][dartx._get](1);
+    if (start == end) return "text/plain";
+    return core.Uri._uriDecode(this[_text], start, end, convert.UTF8, false);
+  }
+  get charset() {
+    let parameterStart = 1;
+    let parameterEnd = dart.notNull(this[_separatorIndices][dartx.length]) - 1;
+    if (dart.test(this.isBase64)) {
+      parameterEnd = parameterEnd - 1;
     }
-    static _isGeneralDelimiter(ch) {
-      return dart.notNull(ch) <= core.Uri._RIGHT_BRACKET && (dart.notNull(core.Uri._genDelimitersTable[dartx._get](ch[dartx['>>']](4))) & 1 << (dart.notNull(ch) & 15)) != 0;
-    }
-    get isAbsolute() {
-      return this.scheme != "" && this.fragment == "";
-    }
-    [_mergePaths](base, reference) {
-      let backCount = 0;
-      let refStart = 0;
-      while (dart.test(reference[dartx.startsWith]("../", refStart))) {
-        refStart = refStart + 3;
-        backCount++;
-      }
-      let baseEnd = base[dartx.lastIndexOf]('/');
-      while (dart.notNull(baseEnd) > 0 && backCount > 0) {
-        let newEnd = base[dartx.lastIndexOf]('/', dart.notNull(baseEnd) - 1);
-        if (dart.notNull(newEnd) < 0) {
-          break;
-        }
-        let delta = dart.notNull(baseEnd) - dart.notNull(newEnd);
-        if ((delta == 2 || delta == 3) && base[dartx.codeUnitAt](dart.notNull(newEnd) + 1) == core.Uri._DOT && (delta == 2 || base[dartx.codeUnitAt](dart.notNull(newEnd) + 2) == core.Uri._DOT)) {
-          break;
-        }
-        baseEnd = newEnd;
-        backCount--;
-      }
-      return base[dartx.replaceRange](dart.notNull(baseEnd) + 1, null, reference[dartx.substring](refStart - 3 * backCount));
-    }
-    static _mayContainDotSegments(path) {
-      if (dart.test(path[dartx.startsWith]('.'))) return true;
-      let index = path[dartx.indexOf]("/.");
-      return index != -1;
-    }
-    static _removeDotSegments(path) {
-      if (!dart.test(core.Uri._mayContainDotSegments(path))) return path;
-      dart.assert(path[dartx.isNotEmpty]);
-      let output = JSArrayOfString().of([]);
-      let appendSlash = false;
-      for (let segment of path[dartx.split]("/")) {
-        appendSlash = false;
-        if (segment == "..") {
-          if (dart.test(output[dartx.isNotEmpty])) {
-            output[dartx.removeLast]();
-            if (dart.test(output[dartx.isEmpty])) {
-              output[dartx.add]("");
-            }
-          }
-          appendSlash = true;
-        } else if ("." == segment) {
-          appendSlash = true;
-        } else {
-          output[dartx.add](segment);
-        }
-      }
-      if (appendSlash) output[dartx.add]("");
-      return output[dartx.join]("/");
-    }
-    static _normalizeRelativePath(path) {
-      dart.assert(!dart.test(path[dartx.startsWith]('/')));
-      if (!dart.test(core.Uri._mayContainDotSegments(path))) return path;
-      dart.assert(path[dartx.isNotEmpty]);
-      let output = JSArrayOfString().of([]);
-      let appendSlash = false;
-      for (let segment of path[dartx.split]("/")) {
-        appendSlash = false;
-        if (".." == segment) {
-          if (!dart.test(output[dartx.isEmpty]) && output[dartx.last] != "..") {
-            output[dartx.removeLast]();
-            appendSlash = true;
-          } else {
-            output[dartx.add]("..");
-          }
-        } else if ("." == segment) {
-          appendSlash = true;
-        } else {
-          output[dartx.add](segment);
-        }
-      }
-      if (dart.test(output[dartx.isEmpty]) || output[dartx.length] == 1 && dart.test(output[dartx._get](0)[dartx.isEmpty])) {
-        return "./";
-      }
-      if (appendSlash || output[dartx.last] == '..') output[dartx.add]("");
-      return output[dartx.join]("/");
-    }
-    resolve(reference) {
-      return this.resolveUri(core.Uri.parse(reference));
-    }
-    resolveUri(reference) {
-      let targetScheme = null;
-      let targetUserInfo = "";
-      let targetHost = null;
-      let targetPort = null;
-      let targetPath = null;
-      let targetQuery = null;
-      if (dart.test(reference.scheme[dartx.isNotEmpty])) {
-        targetScheme = reference.scheme;
-        if (dart.test(reference.hasAuthority)) {
-          targetUserInfo = reference.userInfo;
-          targetHost = reference.host;
-          targetPort = dart.test(reference.hasPort) ? reference.port : null;
-        }
-        targetPath = core.Uri._removeDotSegments(reference.path);
-        if (dart.test(reference.hasQuery)) {
-          targetQuery = reference.query;
-        }
-      } else {
-        targetScheme = this.scheme;
-        if (dart.test(reference.hasAuthority)) {
-          targetUserInfo = reference.userInfo;
-          targetHost = reference.host;
-          targetPort = core.Uri._makePort(dart.test(reference.hasPort) ? reference.port : null, targetScheme);
-          targetPath = core.Uri._removeDotSegments(reference.path);
-          if (dart.test(reference.hasQuery)) targetQuery = reference.query;
-        } else {
-          targetUserInfo = this[_userInfo];
-          targetHost = this[_host];
-          targetPort = this[_port];
-          if (reference.path == "") {
-            targetPath = this[_path];
-            if (dart.test(reference.hasQuery)) {
-              targetQuery = reference.query;
-            } else {
-              targetQuery = this[_query];
-            }
-          } else {
-            if (dart.test(reference.hasAbsolutePath)) {
-              targetPath = core.Uri._removeDotSegments(reference.path);
-            } else {
-              if (dart.test(this.hasEmptyPath)) {
-                if (!dart.test(this.hasScheme) && !dart.test(this.hasAuthority)) {
-                  targetPath = reference.path;
-                } else {
-                  targetPath = core.Uri._removeDotSegments("/" + dart.notNull(reference.path));
-                }
-              } else {
-                let mergedPath = this[_mergePaths](this[_path], reference.path);
-                if (dart.test(this.hasScheme) || dart.test(this.hasAuthority) || dart.test(this.hasAbsolutePath)) {
-                  targetPath = core.Uri._removeDotSegments(mergedPath);
-                } else {
-                  targetPath = core.Uri._normalizeRelativePath(mergedPath);
-                }
-              }
-            }
-            if (dart.test(reference.hasQuery)) targetQuery = reference.query;
-          }
-        }
-      }
-      let fragment = dart.test(reference.hasFragment) ? reference.fragment : null;
-      return new core.Uri._internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
-    }
-    get hasScheme() {
-      return this.scheme[dartx.isNotEmpty];
-    }
-    get hasAuthority() {
-      return this[_host] != null;
-    }
-    get hasPort() {
-      return this[_port] != null;
-    }
-    get hasQuery() {
-      return this[_query] != null;
-    }
-    get hasFragment() {
-      return this[_fragment] != null;
-    }
-    get hasEmptyPath() {
-      return this[_path][dartx.isEmpty];
-    }
-    get hasAbsolutePath() {
-      return this[_path][dartx.startsWith]('/');
-    }
-    get origin() {
-      if (this.scheme == "" || this[_host] == null || this[_host] == "") {
-        dart.throw(new core.StateError(dart.str`Cannot use origin without a scheme: ${this}`));
-      }
-      if (this.scheme != "http" && this.scheme != "https") {
-        dart.throw(new core.StateError(dart.str`Origin is only applicable schemes http and https: ${this}`));
-      }
-      if (this[_port] == null) return dart.str`${this.scheme}://${this[_host]}`;
-      return dart.str`${this.scheme}://${this[_host]}:${this[_port]}`;
-    }
-    toFilePath(opts) {
-      let windows = opts && 'windows' in opts ? opts.windows : null;
-      if (this.scheme != "" && this.scheme != "file") {
-        dart.throw(new core.UnsupportedError(dart.str`Cannot extract a file path from a ${this.scheme} URI`));
-      }
-      if (this.query != "") {
-        dart.throw(new core.UnsupportedError("Cannot extract a file path from a URI with a query component"));
-      }
-      if (this.fragment != "") {
-        dart.throw(new core.UnsupportedError("Cannot extract a file path from a URI with a fragment component"));
-      }
-      if (windows == null) windows = core.Uri._isWindows;
-      return dart.test(windows) ? this[_toWindowsFilePath]() : this[_toFilePath]();
-    }
-    [_toFilePath]() {
-      if (this.host != "") {
-        dart.throw(new core.UnsupportedError("Cannot extract a non-Windows file path from a file URI " + "with an authority"));
-      }
-      core.Uri._checkNonWindowsPathReservedCharacters(this.pathSegments, false);
-      let result = new core.StringBuffer();
-      if (dart.test(this[_isPathAbsolute])) result.write("/");
-      result.writeAll(this.pathSegments, "/");
-      return result.toString();
-    }
-    [_toWindowsFilePath]() {
-      let hasDriveLetter = false;
-      let segments = this.pathSegments;
-      if (dart.notNull(segments[dartx.length]) > 0 && segments[dartx._get](0)[dartx.length] == 2 && segments[dartx._get](0)[dartx.codeUnitAt](1) == core.Uri._COLON) {
-        core.Uri._checkWindowsDriveLetter(segments[dartx._get](0)[dartx.codeUnitAt](0), false);
-        core.Uri._checkWindowsPathReservedCharacters(segments, false, 1);
-        hasDriveLetter = true;
-      } else {
-        core.Uri._checkWindowsPathReservedCharacters(segments, false);
-      }
-      let result = new core.StringBuffer();
-      if (dart.test(this[_isPathAbsolute]) && !hasDriveLetter) result.write("\\");
-      if (this.host != "") {
-        result.write("\\");
-        result.write(this.host);
-        result.write("\\");
-      }
-      result.writeAll(segments, "\\");
-      if (hasDriveLetter && segments[dartx.length] == 1) result.write("\\");
-      return result.toString();
-    }
-    get [_isPathAbsolute]() {
-      if (this.path == null || dart.test(this.path[dartx.isEmpty])) return false;
-      return this.path[dartx.startsWith]('/');
-    }
-    [_writeAuthority](ss) {
-      if (dart.test(this[_userInfo][dartx.isNotEmpty])) {
-        ss.write(this[_userInfo]);
-        ss.write("@");
-      }
-      if (this[_host] != null) ss.write(this[_host]);
-      if (this[_port] != null) {
-        ss.write(":");
-        ss.write(this[_port]);
+    for (let i = parameterStart; i < parameterEnd; i = i + 2) {
+      let keyStart = dart.notNull(this[_separatorIndices][dartx._get](i)) + 1;
+      let keyEnd = this[_separatorIndices][dartx._get](i + 1);
+      if (keyEnd == keyStart + 7 && dart.test(this[_text][dartx.startsWith]("charset", keyStart))) {
+        return core.Uri._uriDecode(this[_text], dart.notNull(keyEnd) + 1, this[_separatorIndices][dartx._get](i + 2), convert.UTF8, false);
       }
     }
-    get data() {
-      return this.scheme == "data" ? core.UriData.fromUri(this) : null;
+    return "US-ASCII";
+  }
+  get isBase64() {
+    return this[_separatorIndices][dartx.length][dartx.isOdd];
+  }
+  get contentText() {
+    return this[_text][dartx.substring](dart.notNull(this[_separatorIndices][dartx.last]) + 1);
+  }
+  contentAsBytes() {
+    let text = this[_text];
+    let start = dart.notNull(this[_separatorIndices][dartx.last]) + 1;
+    if (dart.test(this.isBase64)) {
+      return convert.BASE64.decoder.convert(text, start);
     }
-    toString() {
-      let sb = new core.StringBuffer();
-      core.Uri._addIfNonEmpty(sb, this.scheme, this.scheme, ':');
-      if (dart.test(this.hasAuthority) || dart.test(this.path[dartx.startsWith]("//")) || this.scheme == "file") {
-        sb.write("//");
-        this[_writeAuthority](sb);
-      }
-      sb.write(this.path);
-      if (this[_query] != null) {
-        sb.write("?");
-        sb.write(this[_query]);
-      }
-      if (this[_fragment] != null) {
-        sb.write("#");
-        sb.write(this[_fragment]);
-      }
-      return sb.toString();
-    }
-    ['=='](other) {
-      if (!core.Uri.is(other)) return false;
-      let uri = core.Uri._check(other);
-      return this.scheme == uri.scheme && this.hasAuthority == uri.hasAuthority && this.userInfo == uri.userInfo && this.host == uri.host && this.port == uri.port && this.path == uri.path && this.hasQuery == uri.hasQuery && this.query == uri.query && this.hasFragment == uri.hasFragment && this.fragment == uri.fragment;
-    }
-    get hashCode() {
-      function combine(part, current) {
-        return core.int._check(dart.dsend(dart.dsend(dart.dsend(current, '*', 31), '+', dart.hashCode(part)), '&', 1073741823));
-      }
-      dart.fn(combine, dynamicAnddynamicToint());
-      return combine(this.scheme, combine(this.userInfo, combine(this.host, combine(this.port, combine(this.path, combine(this.query, combine(this.fragment, 1)))))));
-    }
-    static _addIfNonEmpty(sb, test, first, second) {
-      if ("" != test) {
-        sb.write(first);
-        sb.write(second);
+    let percent = 37;
+    let length = dart.notNull(text[dartx.length]) - start;
+    for (let i = start; i < dart.notNull(text[dartx.length]); i++) {
+      let codeUnit = text[dartx.codeUnitAt](i);
+      if (codeUnit == percent) {
+        i = i + 2;
+        length = length - 2;
       }
     }
-    static encodeComponent(component) {
-      return core.Uri._uriEncode(core.Uri._unreserved2396Table, component, convert.UTF8, false);
-    }
-    static encodeQueryComponent(component, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return core.Uri._uriEncode(core.Uri._unreservedTable, component, encoding, true);
-    }
-    static decodeComponent(encodedComponent) {
-      return core.Uri._uriDecode(encodedComponent, 0, encodedComponent[dartx.length], convert.UTF8, false);
-    }
-    static decodeQueryComponent(encodedComponent, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return core.Uri._uriDecode(encodedComponent, 0, encodedComponent[dartx.length], encoding, true);
-    }
-    static encodeFull(uri) {
-      return core.Uri._uriEncode(core.Uri._encodeFullTable, uri, convert.UTF8, false);
-    }
-    static decodeFull(uri) {
-      return core.Uri._uriDecode(uri, 0, uri[dartx.length], convert.UTF8, false);
-    }
-    static splitQueryString(query, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return query[dartx.split]("&")[dartx.fold](MapOfString$String())(dart.map({}, core.String, core.String), dart.fn((map, element) => {
-        let index = element[dartx.indexOf]("=");
-        if (index == -1) {
-          if (element != "") {
-            map[dartx._set](core.Uri.decodeQueryComponent(element, {encoding: encoding}), "");
-          }
-        } else if (index != 0) {
-          let key = element[dartx.substring](0, index);
-          let value = element[dartx.substring](dart.notNull(index) + 1);
-          map[dartx._set](core.Uri.decodeQueryComponent(key, {encoding: encoding}), core.Uri.decodeQueryComponent(value, {encoding: encoding}));
-        }
-        return map;
-      }, MapOfString$StringAndStringToMapOfString$String()));
-    }
-    static _createList() {
-      return [];
-    }
-    static _splitQueryStringAll(query, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      let result = dart.map();
-      let i = 0;
-      let start = 0;
-      let equalsIndex = -1;
-      function parsePair(start, equalsIndex, end) {
-        let key = null;
-        let value = null;
-        if (start == end) return;
-        if (dart.notNull(equalsIndex) < 0) {
-          key = core.Uri._uriDecode(query, start, end, encoding, true);
-          value = "";
-        } else {
-          key = core.Uri._uriDecode(query, start, equalsIndex, encoding, true);
-          value = core.Uri._uriDecode(query, dart.notNull(equalsIndex) + 1, end, encoding, true);
-        }
-        dart.dsend(result[dartx.putIfAbsent](key, core.Uri._createList), 'add', value);
-      }
-      dart.fn(parsePair, intAndintAndintTovoid());
-      let _equals = 61;
-      let _ampersand = 38;
-      while (i < dart.notNull(query[dartx.length])) {
-        let char = query[dartx.codeUnitAt](i);
-        if (char == _equals) {
-          if (equalsIndex < 0) equalsIndex = i;
-        } else if (char == _ampersand) {
-          parsePair(start, equalsIndex, i);
-          start = i + 1;
-          equalsIndex = -1;
-        }
-        i++;
-      }
-      parsePair(start, equalsIndex, i);
+    let result = typed_data.Uint8List.new(length);
+    if (length == text[dartx.length]) {
+      result[dartx.setRange](0, length, text[dartx.codeUnits], start);
       return result;
     }
-    static parseIPv4Address(host) {
-      function error(msg) {
-        dart.throw(new core.FormatException(dart.str`Illegal IPv4 address, ${msg}`));
-      }
-      dart.fn(error, StringTovoid$());
-      let bytes = host[dartx.split]('.');
-      if (bytes[dartx.length] != 4) {
-        error('IPv4 address should contain exactly 4 parts');
-      }
-      return bytes[dartx.map](core.int)(dart.fn(byteString => {
-        let byte = core.int.parse(byteString);
-        if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) {
-          error('each part must be in the range of `0..255`');
-        }
-        return byte;
-      }, StringToint$()))[dartx.toList]();
-    }
-    static parseIPv6Address(host, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      if (end == null) end = host[dartx.length];
-      function error(msg, position) {
-        if (position === void 0) position = null;
-        dart.throw(new core.FormatException(dart.str`Illegal IPv6 address, ${msg}`, host, core.int._check(position)));
-      }
-      dart.fn(error, String__Tovoid());
-      function parseHex(start, end) {
-        if (dart.notNull(end) - dart.notNull(start) > 4) {
-          error('an IPv6 part can only contain a maximum of 4 hex digits', start);
-        }
-        let value = core.int.parse(host[dartx.substring](start, end), {radix: 16});
-        if (dart.notNull(value) < 0 || dart.notNull(value) > (1 << 16) - 1) {
-          error('each part must be in the range of `0x0..0xFFFF`', start);
-        }
-        return value;
-      }
-      dart.fn(parseHex, intAndintToint());
-      if (dart.notNull(host[dartx.length]) < 2) error('address is too short');
-      let parts = JSArrayOfint().of([]);
-      let wildcardSeen = false;
-      let partStart = start;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        if (host[dartx.codeUnitAt](i) == core.Uri._COLON) {
-          if (i == start) {
-            i = dart.notNull(i) + 1;
-            if (host[dartx.codeUnitAt](i) != core.Uri._COLON) {
-              error('invalid start colon.', i);
-            }
-            partStart = i;
-          }
-          if (i == partStart) {
-            if (wildcardSeen) {
-              error('only one wildcard `::` is allowed', i);
-            }
-            wildcardSeen = true;
-            parts[dartx.add](-1);
-          } else {
-            parts[dartx.add](parseHex(partStart, i));
-          }
-          partStart = dart.notNull(i) + 1;
-        }
-      }
-      if (parts[dartx.length] == 0) error('too few parts');
-      let atEnd = partStart == end;
-      let isLastWildcard = parts[dartx.last] == -1;
-      if (atEnd && !isLastWildcard) {
-        error('expected a part after last `:`', end);
-      }
-      if (!atEnd) {
-        try {
-          parts[dartx.add](parseHex(partStart, end));
-        } catch (e) {
-          try {
-            let last = core.Uri.parseIPv4Address(host[dartx.substring](partStart, end));
-            parts[dartx.add]((dart.notNull(last[dartx._get](0)) << 8 | dart.notNull(last[dartx._get](1))) >>> 0);
-            parts[dartx.add]((dart.notNull(last[dartx._get](2)) << 8 | dart.notNull(last[dartx._get](3))) >>> 0);
-          } catch (e) {
-            error('invalid end of IPv6 address.', partStart);
-          }
-
-        }
-
-      }
-      if (wildcardSeen) {
-        if (dart.notNull(parts[dartx.length]) > 7) {
-          error('an address with a wildcard must have less than 7 parts');
-        }
-      } else if (parts[dartx.length] != 8) {
-        error('an address without a wildcard must contain exactly 8 parts');
-      }
-      let bytes = typed_data.Uint8List.new(16);
-      for (let i = 0, index = 0; i < dart.notNull(parts[dartx.length]); i++) {
-        let value = parts[dartx._get](i);
-        if (value == -1) {
-          let wildCardLength = 9 - dart.notNull(parts[dartx.length]);
-          for (let j = 0; j < wildCardLength; j++) {
-            bytes[dartx._set](index, 0);
-            bytes[dartx._set](index + 1, 0);
-            index = index + 2;
-          }
-        } else {
-          bytes[dartx._set](index, value[dartx['>>']](8));
-          bytes[dartx._set](index + 1, dart.notNull(value) & 255);
-          index = index + 2;
-        }
-      }
-      return bytes;
-    }
-    static _uriEncode(canonicalTable, text, encoding, spaceToPlus) {
-      if (core.identical(encoding, convert.UTF8) && dart.test(core.Uri._needsNoEncoding.hasMatch(text))) {
-        return text;
-      }
-      let result = new core.StringBuffer();
-      let bytes = encoding.encode(text);
-      for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
-        let byte = bytes[dartx._get](i);
-        if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[dartx._get](byte[dartx['>>']](4))) & 1 << (dart.notNull(byte) & 15)) != 0) {
-          result.writeCharCode(byte);
-        } else if (dart.test(spaceToPlus) && byte == core.Uri._SPACE) {
-          result.write('+');
-        } else {
-          let hexDigits = '0123456789ABCDEF';
-          result.write('%');
-          result.write(hexDigits[dartx._get](dart.notNull(byte) >> 4 & 15));
-          result.write(hexDigits[dartx._get](dart.notNull(byte) & 15));
-        }
-      }
-      return result.toString();
-    }
-    static _hexCharPairToByte(s, pos) {
-      let byte = 0;
-      for (let i = 0; i < 2; i++) {
-        let charCode = s[dartx.codeUnitAt](dart.notNull(pos) + i);
-        if (48 <= dart.notNull(charCode) && dart.notNull(charCode) <= 57) {
-          byte = byte * 16 + dart.notNull(charCode) - 48;
-        } else {
-          charCode = (dart.notNull(charCode) | 32) >>> 0;
-          if (97 <= dart.notNull(charCode) && dart.notNull(charCode) <= 102) {
-            byte = byte * 16 + dart.notNull(charCode) - 87;
-          } else {
-            dart.throw(new core.ArgumentError("Invalid URL encoding"));
-          }
-        }
-      }
-      return byte;
-    }
-    static _uriDecode(text, start, end, encoding, plusToSpace) {
-      dart.assert(0 <= dart.notNull(start));
-      dart.assert(dart.notNull(start) <= dart.notNull(end));
-      dart.assert(dart.notNull(end) <= dart.notNull(text[dartx.length]));
-      dart.assert(encoding != null);
-      let simple = true;
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        let codeUnit = text[dartx.codeUnitAt](i);
-        if (dart.notNull(codeUnit) > 127 || codeUnit == core.Uri._PERCENT || dart.test(plusToSpace) && codeUnit == core.Uri._PLUS) {
-          simple = false;
-          break;
-        }
-      }
-      let bytes = null;
-      if (simple) {
-        if (dart.equals(convert.UTF8, encoding) || dart.equals(convert.LATIN1, encoding) || dart.equals(convert.ASCII, encoding)) {
-          return text[dartx.substring](start, end);
-        } else {
-          bytes = text[dartx.substring](start, end)[dartx.codeUnits];
-        }
+    let index = 0;
+    for (let i = start; i < dart.notNull(text[dartx.length]); i++) {
+      let codeUnit = text[dartx.codeUnitAt](i);
+      if (codeUnit != percent) {
+        result[dartx._set](index++, codeUnit);
       } else {
-        bytes = ListOfint().new();
-        for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-          let codeUnit = text[dartx.codeUnitAt](i);
-          if (dart.notNull(codeUnit) > 127) {
-            dart.throw(new core.ArgumentError("Illegal percent encoding in URI"));
-          }
-          if (codeUnit == core.Uri._PERCENT) {
-            if (dart.notNull(i) + 3 > dart.notNull(text[dartx.length])) {
-              dart.throw(new core.ArgumentError('Truncated URI'));
-            }
-            bytes[dartx.add](core.Uri._hexCharPairToByte(text, dart.notNull(i) + 1));
-            i = dart.notNull(i) + 2;
-          } else if (dart.test(plusToSpace) && codeUnit == core.Uri._PLUS) {
-            bytes[dartx.add](core.Uri._SPACE);
-          } else {
-            bytes[dartx.add](codeUnit);
+        if (i + 2 < dart.notNull(text[dartx.length])) {
+          let digit1 = core.Uri._parseHexDigit(text[dartx.codeUnitAt](i + 1));
+          let digit2 = core.Uri._parseHexDigit(text[dartx.codeUnitAt](i + 2));
+          if (dart.notNull(digit1) >= 0 && dart.notNull(digit2) >= 0) {
+            let byte = dart.notNull(digit1) * 16 + dart.notNull(digit2);
+            result[dartx._set](index++, byte);
+            i = i + 2;
+            continue;
           }
         }
+        dart.throw(new core.FormatException("Invalid percent escape", text, i));
       }
-      return encoding.decode(bytes);
     }
-    static _isAlphabeticCharacter(codeUnit) {
-      let lowerCase = (dart.notNull(codeUnit) | 32) >>> 0;
-      return core.Uri._LOWER_CASE_A <= lowerCase && lowerCase <= core.Uri._LOWER_CASE_Z;
-    }
-    static _isUnreservedChar(char) {
-      return dart.notNull(char) < 127 && (dart.notNull(core.Uri._unreservedTable[dartx._get](char[dartx['>>']](4))) & 1 << (dart.notNull(char) & 15)) != 0;
-    }
-  };
-  dart.defineNamedConstructor(core.Uri, '_internal');
-  dart.setSignature(core.Uri, {
-    constructors: () => ({
-      _internal: dart.definiteFunctionType(core.Uri, [core.String, core.String, core.String, core.int, core.String, core.String, core.String]),
-      new: dart.definiteFunctionType(core.Uri, [], {scheme: core.String, userInfo: core.String, host: core.String, port: core.int, path: core.String, pathSegments: IterableOfString(), query: core.String, queryParameters: MapOfString$dynamic(), fragment: core.String}),
-      http: dart.definiteFunctionType(core.Uri, [core.String, core.String], [MapOfString$String()]),
-      https: dart.definiteFunctionType(core.Uri, [core.String, core.String], [MapOfString$String()]),
-      file: dart.definiteFunctionType(core.Uri, [core.String], {windows: core.bool}),
-      directory: dart.definiteFunctionType(core.Uri, [core.String], {windows: core.bool}),
-      dataFromString: dart.definiteFunctionType(core.Uri, [core.String], {mimeType: core.String, encoding: convert.Encoding, parameters: MapOfString$String(), base64: core.bool}),
-      dataFromBytes: dart.definiteFunctionType(core.Uri, [ListOfint()], {mimeType: dart.dynamic, parameters: MapOfString$String(), percentEncoded: dart.dynamic})
-    }),
-    fields: () => ({
-      scheme: core.String,
-      [_userInfo]: core.String,
-      [_host]: core.String,
-      [_port]: core.int,
-      [_path]: core.String,
-      [_query]: core.String,
-      [_fragment]: core.String,
-      [_pathSegments]: ListOfString(),
-      [_queryParameters]: MapOfString$String(),
-      [_queryParameterLists]: MapOfString$ListOfString()
-    }),
-    getters: () => ({
-      authority: dart.definiteFunctionType(core.String, []),
-      userInfo: dart.definiteFunctionType(core.String, []),
-      host: dart.definiteFunctionType(core.String, []),
-      port: dart.definiteFunctionType(core.int, []),
-      path: dart.definiteFunctionType(core.String, []),
-      query: dart.definiteFunctionType(core.String, []),
-      fragment: dart.definiteFunctionType(core.String, []),
-      pathSegments: dart.definiteFunctionType(core.List$(core.String), []),
-      queryParameters: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-      queryParametersAll: dart.definiteFunctionType(core.Map$(core.String, core.List$(core.String)), []),
-      isAbsolute: dart.definiteFunctionType(core.bool, []),
-      hasScheme: dart.definiteFunctionType(core.bool, []),
-      hasAuthority: dart.definiteFunctionType(core.bool, []),
-      hasPort: dart.definiteFunctionType(core.bool, []),
-      hasQuery: dart.definiteFunctionType(core.bool, []),
-      hasFragment: dart.definiteFunctionType(core.bool, []),
-      hasEmptyPath: dart.definiteFunctionType(core.bool, []),
-      hasAbsolutePath: dart.definiteFunctionType(core.bool, []),
-      origin: dart.definiteFunctionType(core.String, []),
-      [_isPathAbsolute]: dart.definiteFunctionType(core.bool, []),
-      data: dart.definiteFunctionType(core.UriData, [])
-    }),
-    methods: () => ({
-      replace: dart.definiteFunctionType(core.Uri, [], {scheme: core.String, userInfo: core.String, host: core.String, port: core.int, path: core.String, pathSegments: IterableOfString(), query: core.String, queryParameters: MapOfString$dynamic(), fragment: core.String}),
-      removeFragment: dart.definiteFunctionType(core.Uri, []),
-      normalizePath: dart.definiteFunctionType(core.Uri, []),
-      [_mergePaths]: dart.definiteFunctionType(core.String, [core.String, core.String]),
-      resolve: dart.definiteFunctionType(core.Uri, [core.String]),
-      resolveUri: dart.definiteFunctionType(core.Uri, [core.Uri]),
-      toFilePath: dart.definiteFunctionType(core.String, [], {windows: core.bool}),
-      [_toFilePath]: dart.definiteFunctionType(core.String, []),
-      [_toWindowsFilePath]: dart.definiteFunctionType(core.String, []),
-      [_writeAuthority]: dart.definiteFunctionType(dart.void, [core.StringSink])
-    }),
-    sfields: () => ({
-      _SPACE: core.int,
-      _DOUBLE_QUOTE: core.int,
-      _NUMBER_SIGN: core.int,
-      _PERCENT: core.int,
-      _ASTERISK: core.int,
-      _PLUS: core.int,
-      _DOT: core.int,
-      _SLASH: core.int,
-      _ZERO: core.int,
-      _NINE: core.int,
-      _COLON: core.int,
-      _LESS: core.int,
-      _GREATER: core.int,
-      _QUESTION: core.int,
-      _AT_SIGN: core.int,
-      _UPPER_CASE_A: core.int,
-      _UPPER_CASE_F: core.int,
-      _UPPER_CASE_Z: core.int,
-      _LEFT_BRACKET: core.int,
-      _BACKSLASH: core.int,
-      _RIGHT_BRACKET: core.int,
-      _LOWER_CASE_A: core.int,
-      _LOWER_CASE_F: core.int,
-      _LOWER_CASE_Z: core.int,
-      _BAR: core.int,
-      _hexDigits: core.String,
-      _unreservedTable: ListOfint(),
-      _unreserved2396Table: ListOfint(),
-      _encodeFullTable: ListOfint(),
-      _schemeTable: ListOfint(),
-      _schemeLowerTable: ListOfint(),
-      _subDelimitersTable: ListOfint(),
-      _genDelimitersTable: ListOfint(),
-      _userinfoTable: ListOfint(),
-      _regNameTable: ListOfint(),
-      _pathCharTable: ListOfint(),
-      _pathCharOrSlashTable: ListOfint(),
-      _queryCharTable: ListOfint(),
-      _needsNoEncoding: core.RegExp
-    }),
-    sgetters: () => ({
-      base: dart.definiteFunctionType(core.Uri, []),
-      _isWindows: dart.definiteFunctionType(core.bool, [])
-    }),
-    statics: () => ({
-      _defaultPort: dart.definiteFunctionType(core.int, [core.String]),
-      parse: dart.definiteFunctionType(core.Uri, [core.String], [core.int, core.int]),
-      _fail: dart.definiteFunctionType(dart.void, [core.String, core.int, core.String]),
-      _makeHttpUri: dart.definiteFunctionType(core.Uri, [core.String, core.String, core.String, MapOfString$String()]),
-      _checkNonWindowsPathReservedCharacters: dart.definiteFunctionType(dart.dynamic, [ListOfString(), core.bool]),
-      _checkWindowsPathReservedCharacters: dart.definiteFunctionType(dart.dynamic, [ListOfString(), core.bool], [core.int]),
-      _checkWindowsDriveLetter: dart.definiteFunctionType(dart.dynamic, [core.int, core.bool]),
-      _makeFileUri: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
-      _makeWindowsFileUrl: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
-      _makePort: dart.definiteFunctionType(core.int, [core.int, core.String]),
-      _makeHost: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, core.bool]),
-      _isRegNameChar: dart.definiteFunctionType(core.bool, [core.int]),
-      _normalizeRegName: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
-      _makeScheme: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
-      _makeUserInfo: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
-      _makePath: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, IterableOfString(), core.String, core.bool]),
-      _normalizePath: dart.definiteFunctionType(core.String, [core.String, core.String, core.bool]),
-      _makeQuery: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, MapOfString$dynamic()]),
-      _makeFragment: dart.definiteFunctionType(core.String, [core.String, core.int, core.int]),
-      _stringOrNullLength: dart.definiteFunctionType(core.int, [core.String]),
-      _normalizeEscape: dart.definiteFunctionType(core.String, [core.String, core.int, core.bool]),
-      _parseHexDigit: dart.definiteFunctionType(core.int, [core.int]),
-      _escapeChar: dart.definiteFunctionType(core.String, [core.int]),
-      _normalize: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, ListOfint()]),
-      _isSchemeCharacter: dart.definiteFunctionType(core.bool, [core.int]),
-      _isGeneralDelimiter: dart.definiteFunctionType(core.bool, [core.int]),
-      _mayContainDotSegments: dart.definiteFunctionType(core.bool, [core.String]),
-      _removeDotSegments: dart.definiteFunctionType(core.String, [core.String]),
-      _normalizeRelativePath: dart.definiteFunctionType(core.String, [core.String]),
-      _addIfNonEmpty: dart.definiteFunctionType(dart.void, [core.StringBuffer, core.String, core.String, core.String]),
-      encodeComponent: dart.definiteFunctionType(core.String, [core.String]),
-      encodeQueryComponent: dart.definiteFunctionType(core.String, [core.String], {encoding: convert.Encoding}),
-      decodeComponent: dart.definiteFunctionType(core.String, [core.String]),
-      decodeQueryComponent: dart.definiteFunctionType(core.String, [core.String], {encoding: convert.Encoding}),
-      encodeFull: dart.definiteFunctionType(core.String, [core.String]),
-      decodeFull: dart.definiteFunctionType(core.String, [core.String]),
-      splitQueryString: dart.definiteFunctionType(core.Map$(core.String, core.String), [core.String], {encoding: convert.Encoding}),
-      _createList: dart.definiteFunctionType(core.List, []),
-      _splitQueryStringAll: dart.definiteFunctionType(core.Map, [core.String], {encoding: convert.Encoding}),
-      parseIPv4Address: dart.definiteFunctionType(core.List$(core.int), [core.String]),
-      parseIPv6Address: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.int, core.int]),
-      _uriEncode: dart.definiteFunctionType(core.String, [ListOfint(), core.String, convert.Encoding, core.bool]),
-      _hexCharPairToByte: dart.definiteFunctionType(core.int, [core.String, core.int]),
-      _uriDecode: dart.definiteFunctionType(core.String, [core.String, core.int, core.int, convert.Encoding, core.bool]),
-      _isAlphabeticCharacter: dart.definiteFunctionType(core.bool, [core.int]),
-      _isUnreservedChar: dart.definiteFunctionType(core.bool, [core.int])
-    }),
-    names: ['_defaultPort', 'parse', '_fail', '_makeHttpUri', '_checkNonWindowsPathReservedCharacters', '_checkWindowsPathReservedCharacters', '_checkWindowsDriveLetter', '_makeFileUri', '_makeWindowsFileUrl', '_makePort', '_makeHost', '_isRegNameChar', '_normalizeRegName', '_makeScheme', '_makeUserInfo', '_makePath', '_normalizePath', '_makeQuery', '_makeFragment', '_stringOrNullLength', '_normalizeEscape', '_parseHexDigit', '_escapeChar', '_normalize', '_isSchemeCharacter', '_isGeneralDelimiter', '_mayContainDotSegments', '_removeDotSegments', '_normalizeRelativePath', '_addIfNonEmpty', 'encodeComponent', 'encodeQueryComponent', 'decodeComponent', 'decodeQueryComponent', 'encodeFull', 'decodeFull', 'splitQueryString', '_createList', '_splitQueryStringAll', 'parseIPv4Address', 'parseIPv6Address', '_uriEncode', '_hexCharPairToByte', '_uriDecode', '_isAlphabeticCharacter', '_isUnreservedChar']
-  });
-  core.Uri._SPACE = 32;
-  core.Uri._DOUBLE_QUOTE = 34;
-  core.Uri._NUMBER_SIGN = 35;
-  core.Uri._PERCENT = 37;
-  core.Uri._ASTERISK = 42;
-  core.Uri._PLUS = 43;
-  core.Uri._DOT = 46;
-  core.Uri._SLASH = 47;
-  core.Uri._ZERO = 48;
-  core.Uri._NINE = 57;
-  core.Uri._COLON = 58;
-  core.Uri._LESS = 60;
-  core.Uri._GREATER = 62;
-  core.Uri._QUESTION = 63;
-  core.Uri._AT_SIGN = 64;
-  core.Uri._UPPER_CASE_A = 65;
-  core.Uri._UPPER_CASE_F = 70;
-  core.Uri._UPPER_CASE_Z = 90;
-  core.Uri._LEFT_BRACKET = 91;
-  core.Uri._BACKSLASH = 92;
-  core.Uri._RIGHT_BRACKET = 93;
-  core.Uri._LOWER_CASE_A = 97;
-  core.Uri._LOWER_CASE_F = 102;
-  core.Uri._LOWER_CASE_Z = 122;
-  core.Uri._BAR = 124;
-  core.Uri._hexDigits = "0123456789ABCDEF";
-  core.Uri._unreservedTable = dart.constList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431], core.int);
-  core.Uri._unreserved2396Table = dart.constList([0, 0, 26498, 1023, 65534, 34815, 65534, 18431], core.int);
-  core.Uri._encodeFullTable = dart.constList([0, 0, 65498, 45055, 65535, 34815, 65534, 18431], core.int);
-  core.Uri._schemeTable = dart.constList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047], core.int);
-  core.Uri._schemeLowerTable = dart.constList([0, 0, 26624, 1023, 0, 0, 65534, 2047], core.int);
-  core.Uri._subDelimitersTable = dart.constList([0, 0, 32722, 11263, 65534, 34815, 65534, 18431], core.int);
-  core.Uri._genDelimitersTable = dart.constList([0, 0, 32776, 33792, 1, 10240, 0, 0], core.int);
-  core.Uri._userinfoTable = dart.constList([0, 0, 32722, 12287, 65534, 34815, 65534, 18431], core.int);
-  core.Uri._regNameTable = dart.constList([0, 0, 32754, 11263, 65534, 34815, 65534, 18431], core.int);
-  core.Uri._pathCharTable = dart.constList([0, 0, 32722, 12287, 65535, 34815, 65534, 18431], core.int);
-  core.Uri._pathCharOrSlashTable = dart.constList([0, 0, 65490, 12287, 65535, 34815, 65534, 18431], core.int);
-  core.Uri._queryCharTable = dart.constList([0, 0, 65490, 45055, 65535, 34815, 65534, 18431], core.int);
-  dart.defineLazy(core.Uri, {
-    get _needsNoEncoding() {
-      return core.RegExp.new('^[\\-\\.0-9A-Z_a-z~]*$');
-    }
-  });
-  const _text = Symbol('_text');
-  const _separatorIndices = Symbol('_separatorIndices');
-  const _uriCache = Symbol('_uriCache');
-  core.UriData = class UriData extends core.Object {
-    _(text, separatorIndices, uriCache) {
-      this[_text] = text;
-      this[_separatorIndices] = separatorIndices;
-      this[_uriCache] = uriCache;
-    }
-    static fromString(content, opts) {
-      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
-      let encoding = opts && 'encoding' in opts ? opts.encoding : null;
-      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
-      let base64 = opts && 'base64' in opts ? opts.base64 : false;
-      let buffer = new core.StringBuffer();
-      let indices = JSArrayOfint().of([core.UriData._noScheme]);
-      let charsetName = null;
-      let encodingName = null;
-      if (parameters != null) charsetName = parameters[dartx._get]("charset");
+    dart.assert(index == result[dartx.length]);
+    return result;
+  }
+  contentAsString(opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : null;
+    if (encoding == null) {
+      let charset = this.charset;
+      encoding = convert.Encoding.getByName(charset);
       if (encoding == null) {
-        if (charsetName != null) {
-          encoding = convert.Encoding.getByName(charsetName);
-        }
-      } else if (charsetName == null) {
-        encodingName = encoding.name;
+        dart.throw(new core.UnsupportedError(dart.str`Unknown charset: ${charset}`));
       }
-      let t = encoding;
-      t == null ? encoding = convert.ASCII : t;
-      core.UriData._writeUri(mimeType, encodingName, parameters, buffer, indices);
-      indices[dartx.add](buffer.length);
-      if (dart.test(base64)) {
-        buffer.write(';base64,');
-        indices[dartx.add](dart.notNull(buffer.length) - 1);
-        buffer.write(encoding.fuse(core.String)(convert.BASE64).encode(content));
-      } else {
-        buffer.write(',');
-        core.UriData._uriEncodeBytes(core.UriData._uricTable, encoding.encode(content), buffer);
-      }
-      return new core.UriData._(buffer.toString(), indices, null);
     }
-    static fromBytes(bytes, opts) {
-      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : "application/octet-stream";
-      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
-      let percentEncoded = opts && 'percentEncoded' in opts ? opts.percentEncoded : false;
-      let buffer = new core.StringBuffer();
-      let indices = JSArrayOfint().of([core.UriData._noScheme]);
-      core.UriData._writeUri(core.String._check(mimeType), null, parameters, buffer, indices);
-      indices[dartx.add](buffer.length);
-      if (dart.test(percentEncoded)) {
-        buffer.write(',');
-        core.UriData._uriEncodeBytes(core.UriData._uricTable, bytes, buffer);
-      } else {
-        buffer.write(';base64,');
-        indices[dartx.add](dart.notNull(buffer.length) - 1);
-        convert.BASE64.encoder.startChunkedConversion(convert.StringConversionSink.fromStringSink(buffer)).addSlice(bytes, 0, bytes[dartx.length], true);
-      }
-      return new core.UriData._(buffer.toString(), indices, null);
+    let text = this[_text];
+    let start = dart.notNull(this[_separatorIndices][dartx.last]) + 1;
+    if (dart.test(this.isBase64)) {
+      let converter = convert.BASE64.decoder.fuse(core.String)(encoding.decoder);
+      return converter.convert(text[dartx.substring](start));
     }
-    static fromUri(uri) {
-      if (uri.scheme != "data") {
-        dart.throw(new core.ArgumentError.value(uri, "uri", "Scheme must be 'data'"));
-      }
-      if (dart.test(uri.hasAuthority)) {
-        dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have authority"));
-      }
-      if (dart.test(uri.hasFragment)) {
-        dart.throw(new core.ArgumentError.value(uri, "uri", "Data uri must not have a fragment part"));
-      }
-      if (!dart.test(uri.hasQuery)) {
-        return core.UriData._parse(uri.path, 0, uri);
-      }
-      return core.UriData._parse(dart.str`${uri}`, 5, uri);
+    return core.Uri._uriDecode(text, start, text[dartx.length], encoding, false);
+  }
+  get parameters() {
+    let result = dart.map({}, core.String, core.String);
+    for (let i = 3; i < dart.notNull(this[_separatorIndices][dartx.length]); i = i + 2) {
+      let start = dart.notNull(this[_separatorIndices][dartx._get](i - 2)) + 1;
+      let equals = this[_separatorIndices][dartx._get](i - 1);
+      let end = this[_separatorIndices][dartx._get](i);
+      let key = core.Uri._uriDecode(this[_text], start, equals, convert.UTF8, false);
+      let value = core.Uri._uriDecode(this[_text], dart.notNull(equals) + 1, end, convert.UTF8, false);
+      result[dartx._set](key, value);
     }
-    static _writeUri(mimeType, charsetName, parameters, buffer, indices) {
-      if (mimeType == null || mimeType == "text/plain") {
-        mimeType = "";
-      }
-      if (dart.test(mimeType[dartx.isEmpty]) || core.identical(mimeType, "application/octet-stream")) {
-        buffer.write(mimeType);
-      } else {
-        let slashIndex = core.UriData._validateMimeType(mimeType);
+    return result;
+  }
+  static _parse(text, start, sourceUri) {
+    dart.assert(start == 0 || start == 5);
+    dart.assert(start == 5 == text[dartx.startsWith]("data:"));
+    let comma = 44;
+    let slash = 47;
+    let semicolon = 59;
+    let equals = 61;
+    let indices = JSArrayOfint().of([dart.notNull(start) - 1]);
+    let slashIndex = -1;
+    let char = null;
+    let i = start;
+    for (; dart.notNull(i) < dart.notNull(text[dartx.length]); i = dart.notNull(i) + 1) {
+      char = text[dartx.codeUnitAt](i);
+      if (dart.equals(char, comma) || dart.equals(char, semicolon)) break;
+      if (dart.equals(char, slash)) {
         if (dart.notNull(slashIndex) < 0) {
-          dart.throw(new core.ArgumentError.value(mimeType, "mimeType", "Invalid MIME type"));
-        }
-        buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, mimeType[dartx.substring](0, slashIndex), convert.UTF8, false));
-        buffer.write("/");
-        buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, mimeType[dartx.substring](dart.notNull(slashIndex) + 1), convert.UTF8, false));
-      }
-      if (charsetName != null) {
-        if (indices != null) {
-          indices[dartx.add](buffer.length);
-          indices[dartx.add](dart.notNull(buffer.length) + 8);
-        }
-        buffer.write(";charset=");
-        buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, charsetName, convert.UTF8, false));
-      }
-      dart.nullSafe(parameters, _ => _[dartx.forEach](dart.fn((key, value) => {
-        if (dart.test(key[dartx.isEmpty])) {
-          dart.throw(new core.ArgumentError.value("", "Parameter names must not be empty"));
-        }
-        if (dart.test(value[dartx.isEmpty])) {
-          dart.throw(new core.ArgumentError.value("", "Parameter values must not be empty", dart.str`parameters["${key}"]`));
-        }
-        if (indices != null) indices[dartx.add](buffer.length);
-        buffer.write(';');
-        buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, key, convert.UTF8, false));
-        if (indices != null) indices[dartx.add](buffer.length);
-        buffer.write('=');
-        buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, value, convert.UTF8, false));
-      }, StringAndStringToNull())));
-    }
-    static _validateMimeType(mimeType) {
-      let slashIndex = -1;
-      for (let i = 0; i < dart.notNull(mimeType[dartx.length]); i++) {
-        let char = mimeType[dartx.codeUnitAt](i);
-        if (char != core.Uri._SLASH) continue;
-        if (slashIndex < 0) {
           slashIndex = i;
           continue;
         }
-        return -1;
-      }
-      return slashIndex;
-    }
-    static parse(uri) {
-      if (!dart.test(uri[dartx.startsWith]("data:"))) {
-        dart.throw(new core.FormatException("Does not start with 'data:'", uri, 0));
-      }
-      return core.UriData._parse(uri, 5, null);
-    }
-    get uri() {
-      if (this[_uriCache] != null) return this[_uriCache];
-      let path = this[_text];
-      let query = null;
-      let colonIndex = this[_separatorIndices][dartx._get](0);
-      let queryIndex = this[_text][dartx.indexOf]('?', dart.notNull(colonIndex) + 1);
-      let end = null;
-      if (dart.notNull(queryIndex) >= 0) {
-        query = this[_text][dartx.substring](dart.notNull(queryIndex) + 1);
-        end = queryIndex;
-      }
-      path = this[_text][dartx.substring](dart.notNull(colonIndex) + 1, end);
-      this[_uriCache] = new core.Uri._internal("data", "", null, null, path, query, null);
-      return this[_uriCache];
-    }
-    get mimeType() {
-      let start = dart.notNull(this[_separatorIndices][dartx._get](0)) + 1;
-      let end = this[_separatorIndices][dartx._get](1);
-      if (start == end) return "text/plain";
-      return core.Uri._uriDecode(this[_text], start, end, convert.UTF8, false);
-    }
-    get charset() {
-      let parameterStart = 1;
-      let parameterEnd = dart.notNull(this[_separatorIndices][dartx.length]) - 1;
-      if (dart.test(this.isBase64)) {
-        parameterEnd = parameterEnd - 1;
-      }
-      for (let i = parameterStart; i < parameterEnd; i = i + 2) {
-        let keyStart = dart.notNull(this[_separatorIndices][dartx._get](i)) + 1;
-        let keyEnd = this[_separatorIndices][dartx._get](i + 1);
-        if (keyEnd == keyStart + 7 && dart.test(this[_text][dartx.startsWith]("charset", keyStart))) {
-          return core.Uri._uriDecode(this[_text], dart.notNull(keyEnd) + 1, this[_separatorIndices][dartx._get](i + 2), convert.UTF8, false);
-        }
-      }
-      return "US-ASCII";
-    }
-    get isBase64() {
-      return this[_separatorIndices][dartx.length][dartx.isOdd];
-    }
-    get contentText() {
-      return this[_text][dartx.substring](dart.notNull(this[_separatorIndices][dartx.last]) + 1);
-    }
-    contentAsBytes() {
-      let text = this[_text];
-      let start = dart.notNull(this[_separatorIndices][dartx.last]) + 1;
-      if (dart.test(this.isBase64)) {
-        return convert.BASE64.decoder.convert(text, start);
-      }
-      let percent = 37;
-      let length = dart.notNull(text[dartx.length]) - start;
-      for (let i = start; i < dart.notNull(text[dartx.length]); i++) {
-        let codeUnit = text[dartx.codeUnitAt](i);
-        if (codeUnit == percent) {
-          i = i + 2;
-          length = length - 2;
-        }
-      }
-      let result = typed_data.Uint8List.new(length);
-      if (length == text[dartx.length]) {
-        result[dartx.setRange](0, length, text[dartx.codeUnits], start);
-        return result;
-      }
-      let index = 0;
-      for (let i = start; i < dart.notNull(text[dartx.length]); i++) {
-        let codeUnit = text[dartx.codeUnitAt](i);
-        if (codeUnit != percent) {
-          result[dartx._set](index++, codeUnit);
-        } else {
-          if (i + 2 < dart.notNull(text[dartx.length])) {
-            let digit1 = core.Uri._parseHexDigit(text[dartx.codeUnitAt](i + 1));
-            let digit2 = core.Uri._parseHexDigit(text[dartx.codeUnitAt](i + 2));
-            if (dart.notNull(digit1) >= 0 && dart.notNull(digit2) >= 0) {
-              let byte = dart.notNull(digit1) * 16 + dart.notNull(digit2);
-              result[dartx._set](index++, byte);
-              i = i + 2;
-              continue;
-            }
-          }
-          dart.throw(new core.FormatException("Invalid percent escape", text, i));
-        }
-      }
-      dart.assert(index == result[dartx.length]);
-      return result;
-    }
-    contentAsString(opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : null;
-      if (encoding == null) {
-        let charset = this.charset;
-        encoding = convert.Encoding.getByName(charset);
-        if (encoding == null) {
-          dart.throw(new core.UnsupportedError(dart.str`Unknown charset: ${charset}`));
-        }
-      }
-      let text = this[_text];
-      let start = dart.notNull(this[_separatorIndices][dartx.last]) + 1;
-      if (dart.test(this.isBase64)) {
-        let converter = convert.BASE64.decoder.fuse(core.String)(encoding.decoder);
-        return converter.convert(text[dartx.substring](start));
-      }
-      return core.Uri._uriDecode(text, start, text[dartx.length], encoding, false);
-    }
-    get parameters() {
-      let result = dart.map({}, core.String, core.String);
-      for (let i = 3; i < dart.notNull(this[_separatorIndices][dartx.length]); i = i + 2) {
-        let start = dart.notNull(this[_separatorIndices][dartx._get](i - 2)) + 1;
-        let equals = this[_separatorIndices][dartx._get](i - 1);
-        let end = this[_separatorIndices][dartx._get](i);
-        let key = core.Uri._uriDecode(this[_text], start, equals, convert.UTF8, false);
-        let value = core.Uri._uriDecode(this[_text], dart.notNull(equals) + 1, end, convert.UTF8, false);
-        result[dartx._set](key, value);
-      }
-      return result;
-    }
-    static _parse(text, start, sourceUri) {
-      dart.assert(start == 0 || start == 5);
-      dart.assert(start == 5 == text[dartx.startsWith]("data:"));
-      let comma = 44;
-      let slash = 47;
-      let semicolon = 59;
-      let equals = 61;
-      let indices = JSArrayOfint().of([dart.notNull(start) - 1]);
-      let slashIndex = -1;
-      let char = null;
-      let i = start;
-      for (; dart.notNull(i) < dart.notNull(text[dartx.length]); i = dart.notNull(i) + 1) {
-        char = text[dartx.codeUnitAt](i);
-        if (dart.equals(char, comma) || dart.equals(char, semicolon)) break;
-        if (dart.equals(char, slash)) {
-          if (dart.notNull(slashIndex) < 0) {
-            slashIndex = i;
-            continue;
-          }
-          dart.throw(new core.FormatException("Invalid MIME type", text, i));
-        }
-      }
-      if (dart.notNull(slashIndex) < 0 && dart.notNull(i) > dart.notNull(start)) {
         dart.throw(new core.FormatException("Invalid MIME type", text, i));
       }
-      while (!dart.equals(char, comma)) {
-        indices[dartx.add](i);
-        i = dart.notNull(i) + 1;
-        let equalsIndex = -1;
-        for (; dart.notNull(i) < dart.notNull(text[dartx.length]); i = dart.notNull(i) + 1) {
-          char = text[dartx.codeUnitAt](i);
-          if (dart.equals(char, equals)) {
-            if (dart.notNull(equalsIndex) < 0) equalsIndex = i;
-          } else if (dart.equals(char, semicolon) || dart.equals(char, comma)) {
-            break;
-          }
-        }
-        if (dart.notNull(equalsIndex) >= 0) {
-          indices[dartx.add](equalsIndex);
-        } else {
-          let lastSeparator = indices[dartx.last];
-          if (!dart.equals(char, comma) || i != dart.notNull(lastSeparator) + 7 || !dart.test(text[dartx.startsWith]("base64", dart.notNull(lastSeparator) + 1))) {
-            dart.throw(new core.FormatException("Expecting '='", text, i));
-          }
+    }
+    if (dart.notNull(slashIndex) < 0 && dart.notNull(i) > dart.notNull(start)) {
+      dart.throw(new core.FormatException("Invalid MIME type", text, i));
+    }
+    while (!dart.equals(char, comma)) {
+      indices[dartx.add](i);
+      i = dart.notNull(i) + 1;
+      let equalsIndex = -1;
+      for (; dart.notNull(i) < dart.notNull(text[dartx.length]); i = dart.notNull(i) + 1) {
+        char = text[dartx.codeUnitAt](i);
+        if (dart.equals(char, equals)) {
+          if (dart.notNull(equalsIndex) < 0) equalsIndex = i;
+        } else if (dart.equals(char, semicolon) || dart.equals(char, comma)) {
           break;
         }
       }
-      indices[dartx.add](i);
-      return new core.UriData._(text, indices, sourceUri);
+      if (dart.notNull(equalsIndex) >= 0) {
+        indices[dartx.add](equalsIndex);
+      } else {
+        let lastSeparator = indices[dartx.last];
+        if (!dart.equals(char, comma) || i != dart.notNull(lastSeparator) + 7 || !dart.test(text[dartx.startsWith]("base64", dart.notNull(lastSeparator) + 1))) {
+          dart.throw(new core.FormatException("Expecting '='", text, i));
+        }
+        break;
+      }
     }
-    static _uriEncodeBytes(canonicalTable, bytes, buffer) {
-      let byteOr = 0;
+    indices[dartx.add](i);
+    return new core.UriData._(text, indices, sourceUri);
+  }
+  static _uriEncodeBytes(canonicalTable, bytes, buffer) {
+    let byteOr = 0;
+    for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
+      let byte = bytes[dartx._get](i);
+      byteOr = (dart.notNull(byteOr) | dart.notNull(byte)) >>> 0;
+      if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[dartx._get](byte[dartx['>>']](4))) & 1 << (dart.notNull(byte) & 15)) != 0) {
+        buffer.writeCharCode(byte);
+      } else {
+        buffer.writeCharCode(core.Uri._PERCENT);
+        buffer.writeCharCode(core.Uri._hexDigits[dartx.codeUnitAt](byte[dartx['>>']](4)));
+        buffer.writeCharCode(core.Uri._hexDigits[dartx.codeUnitAt](dart.notNull(byte) & 15));
+      }
+    }
+    if ((dart.notNull(byteOr) & ~255) != 0) {
       for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
         let byte = bytes[dartx._get](i);
-        byteOr = (dart.notNull(byteOr) | dart.notNull(byte)) >>> 0;
-        if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[dartx._get](byte[dartx['>>']](4))) & 1 << (dart.notNull(byte) & 15)) != 0) {
-          buffer.writeCharCode(byte);
-        } else {
-          buffer.writeCharCode(core.Uri._PERCENT);
-          buffer.writeCharCode(core.Uri._hexDigits[dartx.codeUnitAt](byte[dartx['>>']](4)));
-          buffer.writeCharCode(core.Uri._hexDigits[dartx.codeUnitAt](dart.notNull(byte) & 15));
+        if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) {
+          dart.throw(new core.ArgumentError.value(byte, "non-byte value"));
         }
       }
-      if ((dart.notNull(byteOr) & ~255) != 0) {
-        for (let i = 0; i < dart.notNull(bytes[dartx.length]); i++) {
-          let byte = bytes[dartx._get](i);
-          if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) {
-            dart.throw(new core.ArgumentError.value(byte, "non-byte value"));
+    }
+  }
+  toString() {
+    return this[_separatorIndices][dartx._get](0) == core.UriData._noScheme ? dart.str`data:${this[_text]}` : this[_text];
+  }
+};
+dart.defineNamedConstructor(core.UriData, '_');
+dart.setSignature(core.UriData, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(core.UriData, [core.String, ListOfint(), core.Uri]),
+    fromString: dart.definiteFunctionType(core.UriData, [core.String], {mimeType: core.String, encoding: convert.Encoding, parameters: MapOfString$String(), base64: core.bool}),
+    fromBytes: dart.definiteFunctionType(core.UriData, [ListOfint()], {mimeType: dart.dynamic, parameters: MapOfString$String(), percentEncoded: dart.dynamic}),
+    fromUri: dart.definiteFunctionType(core.UriData, [core.Uri])
+  }),
+  fields: () => ({
+    [_text]: core.String,
+    [_separatorIndices]: ListOfint(),
+    [_uriCache]: core.Uri
+  }),
+  getters: () => ({
+    uri: dart.definiteFunctionType(core.Uri, []),
+    mimeType: dart.definiteFunctionType(core.String, []),
+    charset: dart.definiteFunctionType(core.String, []),
+    isBase64: dart.definiteFunctionType(core.bool, []),
+    contentText: dart.definiteFunctionType(core.String, []),
+    parameters: dart.definiteFunctionType(core.Map$(core.String, core.String), [])
+  }),
+  methods: () => ({
+    contentAsBytes: dart.definiteFunctionType(core.List$(core.int), []),
+    contentAsString: dart.definiteFunctionType(core.String, [], {encoding: convert.Encoding})
+  }),
+  sfields: () => ({
+    _noScheme: core.int,
+    _tokenCharTable: ListOfint(),
+    _uricTable: ListOfint()
+  }),
+  statics: () => ({
+    _writeUri: dart.definiteFunctionType(dart.void, [core.String, core.String, MapOfString$String(), core.StringBuffer, core.List]),
+    _validateMimeType: dart.definiteFunctionType(core.int, [core.String]),
+    parse: dart.definiteFunctionType(core.UriData, [core.String]),
+    _parse: dart.definiteFunctionType(core.UriData, [core.String, core.int, core.Uri]),
+    _uriEncodeBytes: dart.definiteFunctionType(dart.void, [ListOfint(), ListOfint(), core.StringSink])
+  }),
+  names: ['_writeUri', '_validateMimeType', 'parse', '_parse', '_uriEncodeBytes']
+});
+core.UriData._noScheme = -1;
+core.UriData._tokenCharTable = dart.constList([0, 0, 27858, 1023, 65534, 51199, 65535, 32767], core.int);
+core.UriData._uricTable = core.Uri._queryCharTable;
+developer.debugger = function(opts) {
+  let when = opts && 'when' in opts ? opts.when : true;
+  let message = opts && 'message' in opts ? opts.message : null;
+  if (dart.test(when)) {
+    debugger;
+  }
+  return when;
+};
+dart.fn(developer.debugger, __Tobool());
+developer.inspect = function(object) {
+  return object;
+};
+dart.fn(developer.inspect, ObjectToObject());
+developer.log = function(message, opts) {
+  let time = opts && 'time' in opts ? opts.time : null;
+  let sequenceNumber = opts && 'sequenceNumber' in opts ? opts.sequenceNumber : null;
+  let level = opts && 'level' in opts ? opts.level : 0;
+  let name = opts && 'name' in opts ? opts.name : '';
+  let zone = opts && 'zone' in opts ? opts.zone : null;
+  let error = opts && 'error' in opts ? opts.error : null;
+  let stackTrace = opts && 'stackTrace' in opts ? opts.stackTrace : null;
+};
+dart.fn(developer.log, String__Tovoid$());
+dart.defineLazy(developer, {
+  get _extensions() {
+    return MapOfString$ServiceExtensionHandler().new();
+  }
+});
+developer._clockValue = 0;
+const _result = Symbol('_result');
+const _errorCode = Symbol('_errorCode');
+const _errorDetail = Symbol('_errorDetail');
+const _isError = Symbol('_isError');
+const _toString = Symbol('_toString');
+developer.ServiceExtensionResponse = class ServiceExtensionResponse extends core.Object {
+  result(result) {
+    this[_result] = result;
+    this[_errorCode] = null;
+    this[_errorDetail] = null;
+    if (!(typeof this[_result] == 'string')) {
+      dart.throw(new core.ArgumentError.value(this[_result], "result", "Must be a String"));
+    }
+  }
+  error(errorCode, errorDetail) {
+    this[_result] = null;
+    this[_errorCode] = errorCode;
+    this[_errorDetail] = errorDetail;
+    developer.ServiceExtensionResponse._validateErrorCode(this[_errorCode]);
+    if (!(typeof this[_errorDetail] == 'string')) {
+      dart.throw(new core.ArgumentError.value(this[_errorDetail], "errorDetail", "Must be a String"));
+    }
+  }
+  static _errorCodeMessage(errorCode) {
+    developer.ServiceExtensionResponse._validateErrorCode(errorCode);
+    if (errorCode == developer.ServiceExtensionResponse.kInvalidParams) {
+      return "Invalid params";
+    }
+    return "Server error";
+  }
+  static _validateErrorCode(errorCode) {
+    if (!(typeof errorCode == 'number')) {
+      dart.throw(new core.ArgumentError.value(errorCode, "errorCode", "Must be an int"));
+    }
+    if (errorCode == developer.ServiceExtensionResponse.invalidParams) {
+      return;
+    }
+    if (dart.notNull(errorCode) >= developer.ServiceExtensionResponse.extensionErrorMin && dart.notNull(errorCode) <= developer.ServiceExtensionResponse.extensionErrorMax) {
+      return;
+    }
+    dart.throw(new core.ArgumentError.value(errorCode, "errorCode", "Out of range"));
+  }
+  [_isError]() {
+    return this[_errorCode] != null && this[_errorDetail] != null;
+  }
+  [_toString]() {
+    if (this[_result] != null) {
+      return this[_result];
+    } else {
+      dart.assert(this[_errorCode] != null);
+      dart.assert(this[_errorDetail] != null);
+      return convert.JSON.encode(dart.map({code: this[_errorCode], message: developer.ServiceExtensionResponse._errorCodeMessage(this[_errorCode]), data: dart.map({details: this[_errorDetail]}, core.String, core.String)}, core.String, core.Object));
+    }
+  }
+};
+dart.defineNamedConstructor(developer.ServiceExtensionResponse, 'result');
+dart.defineNamedConstructor(developer.ServiceExtensionResponse, 'error');
+dart.setSignature(developer.ServiceExtensionResponse, {
+  constructors: () => ({
+    result: dart.definiteFunctionType(developer.ServiceExtensionResponse, [core.String]),
+    error: dart.definiteFunctionType(developer.ServiceExtensionResponse, [core.int, core.String])
+  }),
+  fields: () => ({
+    [_result]: core.String,
+    [_errorCode]: core.int,
+    [_errorDetail]: core.String
+  }),
+  methods: () => ({
+    [_isError]: dart.definiteFunctionType(core.bool, []),
+    [_toString]: dart.definiteFunctionType(core.String, [])
+  }),
+  sfields: () => ({
+    kInvalidParams: core.int,
+    kExtensionError: core.int,
+    kExtensionErrorMax: core.int,
+    kExtensionErrorMin: core.int,
+    invalidParams: core.int,
+    extensionError: core.int,
+    extensionErrorMax: core.int,
+    extensionErrorMin: core.int
+  }),
+  statics: () => ({
+    _errorCodeMessage: dart.definiteFunctionType(core.String, [core.int]),
+    _validateErrorCode: dart.definiteFunctionType(dart.dynamic, [core.int])
+  }),
+  names: ['_errorCodeMessage', '_validateErrorCode']
+});
+developer.ServiceExtensionResponse.invalidParams = -32602;
+developer.ServiceExtensionResponse.extensionError = -32000;
+developer.ServiceExtensionResponse.extensionErrorMax = -32000;
+developer.ServiceExtensionResponse.extensionErrorMin = -32016;
+dart.defineLazy(developer.ServiceExtensionResponse, {
+  get kInvalidParams() {
+    return developer.ServiceExtensionResponse.invalidParams;
+  },
+  get kExtensionError() {
+    return developer.ServiceExtensionResponse.extensionError;
+  },
+  get kExtensionErrorMax() {
+    return developer.ServiceExtensionResponse.extensionErrorMax;
+  },
+  get kExtensionErrorMin() {
+    return developer.ServiceExtensionResponse.extensionErrorMin;
+  }
+});
+developer.ServiceExtensionHandler = dart.typedef('ServiceExtensionHandler', () => dart.functionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()]));
+developer.registerExtension = function(method, handler) {
+  if (!(typeof method == 'string')) {
+    dart.throw(new core.ArgumentError.value(method, 'method', 'Must be a String'));
+  }
+  if (!dart.test(method[dartx.startsWith]('ext.'))) {
+    dart.throw(new core.ArgumentError.value(method, 'method', 'Must begin with ext.'));
+  }
+  if (developer._lookupExtension(method) != null) {
+    dart.throw(new core.ArgumentError(dart.str`Extension already registered: ${method}`));
+  }
+  if (!developer.ServiceExtensionHandler.is(handler)) {
+    dart.throw(new core.ArgumentError.value(handler, 'handler', 'Must be a ServiceExtensionHandler'));
+  }
+  developer._registerExtension(method, handler);
+};
+dart.fn(developer.registerExtension, StringAndServiceExtensionHandlerTovoid());
+developer.postEvent = function(eventKind, eventData) {
+  if (!(typeof eventKind == 'string')) {
+    dart.throw(new core.ArgumentError.value(eventKind, 'eventKind', 'Must be a String'));
+  }
+  if (!core.Map.is(eventData)) {
+    dart.throw(new core.ArgumentError.value(eventData, 'eventData', 'Must be a Map'));
+  }
+  let eventDataAsString = convert.JSON.encode(eventData);
+  developer._postEvent(eventKind, eventDataAsString);
+};
+dart.fn(developer.postEvent, StringAndMapTovoid());
+developer._postEvent = function(eventKind, eventData) {
+};
+dart.fn(developer._postEvent, StringAndStringTodynamic());
+developer._lookupExtension = function(method) {
+  return developer._extensions[dartx._get](method);
+};
+dart.fn(developer._lookupExtension, StringToServiceExtensionHandler());
+developer._registerExtension = function(method, handler) {
+  developer._extensions[dartx._set](method, handler);
+};
+dart.fn(developer._registerExtension, StringAndServiceExtensionHandlerTodynamic());
+developer.UserTag = class UserTag extends core.Object {
+  static new(label) {
+    return developer._FakeUserTag.new(label);
+  }
+  static get defaultTag() {
+    return developer._FakeUserTag._defaultTag;
+  }
+};
+dart.setSignature(developer.UserTag, {
+  constructors: () => ({new: dart.definiteFunctionType(developer.UserTag, [core.String])}),
+  sfields: () => ({MAX_USER_TAGS: core.int}),
+  sgetters: () => ({defaultTag: dart.definiteFunctionType(developer.UserTag, [])})
+});
+developer.UserTag.MAX_USER_TAGS = 64;
+developer._FakeUserTag = class _FakeUserTag extends core.Object {
+  real(label) {
+    this.label = label;
+  }
+  static new(label) {
+    let existingTag = developer._FakeUserTag._instances[dartx._get](label);
+    if (existingTag != null) {
+      return developer._FakeUserTag._check(existingTag);
+    }
+    if (developer._FakeUserTag._instances[dartx.length] == developer.UserTag.MAX_USER_TAGS) {
+      dart.throw(new core.UnsupportedError(dart.str`UserTag instance limit (${developer.UserTag.MAX_USER_TAGS}) reached.`));
+    }
+    let instance = new developer._FakeUserTag.real(label);
+    developer._FakeUserTag._instances[dartx._set](label, instance);
+    return instance;
+  }
+  makeCurrent() {
+    let old = developer._currentTag;
+    developer._currentTag = this;
+    return old;
+  }
+};
+dart.defineNamedConstructor(developer._FakeUserTag, 'real');
+developer._FakeUserTag[dart.implements] = () => [developer.UserTag];
+dart.setSignature(developer._FakeUserTag, {
+  constructors: () => ({
+    real: dart.definiteFunctionType(developer._FakeUserTag, [core.String]),
+    new: dart.definiteFunctionType(developer._FakeUserTag, [core.String])
+  }),
+  fields: () => ({label: core.String}),
+  methods: () => ({makeCurrent: dart.definiteFunctionType(developer.UserTag, [])}),
+  sfields: () => ({
+    _instances: core.Map,
+    _defaultTag: developer.UserTag
+  })
+});
+dart.defineLazy(developer._FakeUserTag, {
+  get _instances() {
+    return dart.map();
+  },
+  set _instances(_) {},
+  get _defaultTag() {
+    return developer._FakeUserTag.new('Default');
+  }
+});
+dart.defineLazy(developer, {
+  get _currentTag() {
+    return developer._FakeUserTag._defaultTag;
+  },
+  set _currentTag(_) {}
+});
+developer.getCurrentTag = function() {
+  return developer._currentTag;
+};
+dart.fn(developer.getCurrentTag, VoidToUserTag());
+developer.Metric = class Metric extends core.Object {
+  new(name, description) {
+    this.name = name;
+    this.description = description;
+    if (this.name == 'vm' || dart.test(this.name[dartx.contains]('/'))) {
+      dart.throw(new core.ArgumentError('Invalid Metric name.'));
+    }
+  }
+};
+dart.setSignature(developer.Metric, {
+  constructors: () => ({new: dart.definiteFunctionType(developer.Metric, [core.String, core.String])}),
+  fields: () => ({
+    name: core.String,
+    description: core.String
+  })
+});
+const _value$0 = Symbol('_value');
+const _toJSON = Symbol('_toJSON');
+developer.Gauge = class Gauge extends developer.Metric {
+  get value() {
+    return this[_value$0];
+  }
+  set value(v) {
+    if (dart.notNull(v) < dart.notNull(this.min)) {
+      v = this.min;
+    } else if (dart.notNull(v) > dart.notNull(this.max)) {
+      v = this.max;
+    }
+    this[_value$0] = v;
+  }
+  new(name, description, min, max) {
+    this.min = min;
+    this.max = max;
+    this[_value$0] = null;
+    super.new(name, description);
+    if (!(typeof this.min == 'number')) {
+      dart.throw(new core.ArgumentError('min must be a double'));
+    }
+    if (!(typeof this.max == 'number')) {
+      dart.throw(new core.ArgumentError('max must be a double'));
+    }
+    if (!(dart.notNull(this.min) < dart.notNull(this.max))) {
+      dart.throw(new core.ArgumentError('min must be less than max'));
+    }
+    this[_value$0] = this.min;
+  }
+  [_toJSON]() {
+    let map = dart.map({type: 'Gauge', id: dart.str`metrics/${this.name}`, name: this.name, description: this.description, value: this.value, min: this.min, max: this.max}, core.String, core.Object);
+    return map;
+  }
+};
+dart.setSignature(developer.Gauge, {
+  constructors: () => ({new: dart.definiteFunctionType(developer.Gauge, [core.String, core.String, core.double, core.double])}),
+  fields: () => ({
+    min: core.double,
+    max: core.double,
+    [_value$0]: core.double
+  }),
+  getters: () => ({value: dart.definiteFunctionType(core.double, [])}),
+  setters: () => ({value: dart.definiteFunctionType(dart.void, [core.double])}),
+  methods: () => ({[_toJSON]: dart.definiteFunctionType(core.Map, [])})
+});
+developer.Counter = class Counter extends developer.Metric {
+  new(name, description) {
+    this[_value$0] = 0.0;
+    super.new(name, description);
+  }
+  get value() {
+    return this[_value$0];
+  }
+  set value(v) {
+    this[_value$0] = v;
+  }
+  [_toJSON]() {
+    let map = dart.map({type: 'Counter', id: dart.str`metrics/${this.name}`, name: this.name, description: this.description, value: this.value}, core.String, core.Object);
+    return map;
+  }
+};
+dart.setSignature(developer.Counter, {
+  constructors: () => ({new: dart.definiteFunctionType(developer.Counter, [core.String, core.String])}),
+  fields: () => ({[_value$0]: core.double}),
+  getters: () => ({value: dart.definiteFunctionType(core.double, [])}),
+  setters: () => ({value: dart.definiteFunctionType(dart.void, [core.double])}),
+  methods: () => ({[_toJSON]: dart.definiteFunctionType(core.Map, [])})
+});
+developer.Metrics = class Metrics extends core.Object {
+  static register(metric) {
+    if (!developer.Metric.is(metric)) {
+      dart.throw(new core.ArgumentError('metric must be a Metric'));
+    }
+    if (developer.Metrics._metrics[dartx._get](metric.name) != null) {
+      dart.throw(new core.ArgumentError('Registered metrics have unique names'));
+    }
+    developer.Metrics._metrics[dartx._set](metric.name, metric);
+  }
+  static deregister(metric) {
+    if (!developer.Metric.is(metric)) {
+      dart.throw(new core.ArgumentError('metric must be a Metric'));
+    }
+    developer.Metrics._metrics[dartx.remove](metric.name);
+  }
+  static _printMetric(id) {
+    let metric = developer.Metrics._metrics[dartx._get](id);
+    if (metric == null) {
+      return null;
+    }
+    return convert.JSON.encode(metric[_toJSON]());
+  }
+  static _printMetrics() {
+    let metrics = [];
+    for (let metric of developer.Metrics._metrics[dartx.values]) {
+      metrics[dartx.add](metric[_toJSON]());
+    }
+    let map = dart.map({type: 'MetricList', metrics: metrics}, core.String, core.Object);
+    return convert.JSON.encode(map);
+  }
+};
+dart.setSignature(developer.Metrics, {
+  sfields: () => ({_metrics: MapOfString$Metric()}),
+  statics: () => ({
+    register: dart.definiteFunctionType(dart.void, [developer.Metric]),
+    deregister: dart.definiteFunctionType(dart.void, [developer.Metric]),
+    _printMetric: dart.definiteFunctionType(core.String, [core.String]),
+    _printMetrics: dart.definiteFunctionType(core.String, [])
+  }),
+  names: ['register', 'deregister', '_printMetric', '_printMetrics']
+});
+dart.defineLazy(developer.Metrics, {
+  get _metrics() {
+    return MapOfString$Metric().new();
+  }
+});
+developer._isProduct = false;
+developer.TimelineSyncFunction = dart.typedef('TimelineSyncFunction', () => dart.functionType(dart.dynamic, []));
+developer.TimelineAsyncFunction = dart.typedef('TimelineAsyncFunction', () => dart.functionType(async.Future, []));
+const _appendArguments = Symbol('_appendArguments');
+developer.Timeline = class Timeline extends core.Object {
+  static startSync(name, opts) {
+    let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
+    if (developer._isProduct) {
+      return;
+    }
+    if (!(typeof name == 'string')) {
+      dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
+    }
+    if (!dart.test(developer._isDartStreamEnabled())) {
+      developer.Timeline._stack[dartx.add](null);
+      return;
+    }
+    let block = new developer._SyncBlock._(name, developer._getTraceClock(), developer._getThreadCpuClock());
+    if (core.Map.is(arguments$)) {
+      block[_appendArguments](arguments$);
+    }
+    developer.Timeline._stack[dartx.add](block);
+  }
+  static finishSync() {
+    if (developer._isProduct) {
+      return;
+    }
+    if (developer.Timeline._stack[dartx.length] == 0) {
+      dart.throw(new core.StateError('Uneven calls to startSync and finishSync'));
+    }
+    let block = developer.Timeline._stack[dartx.removeLast]();
+    if (block == null) {
+      return;
+    }
+    block.finish();
+  }
+  static instantSync(name, opts) {
+    let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
+    if (developer._isProduct) {
+      return;
+    }
+    if (!(typeof name == 'string')) {
+      dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
+    }
+    if (!dart.test(developer._isDartStreamEnabled())) {
+      return;
+    }
+    let instantArguments = null;
+    if (core.Map.is(arguments$)) {
+      instantArguments = core.Map.from(arguments$);
+    }
+    developer._reportInstantEvent(developer._getTraceClock(), 'Dart', name, developer._argumentsAsJson(instantArguments));
+  }
+  static timeSync(name, func, opts) {
+    let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
+    developer.Timeline.startSync(name, {arguments: arguments$});
+    try {
+      return func();
+    } finally {
+      developer.Timeline.finishSync();
+    }
+  }
+  static get now() {
+    return developer._getTraceClock();
+  }
+};
+dart.setSignature(developer.Timeline, {
+  sfields: () => ({
+    _stack: ListOf_SyncBlock(),
+    _isolateId: core.int,
+    _isolateIdString: core.String
+  }),
+  sgetters: () => ({now: dart.definiteFunctionType(core.int, [])}),
+  statics: () => ({
+    startSync: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
+    finishSync: dart.definiteFunctionType(dart.void, []),
+    instantSync: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
+    timeSync: dart.definiteFunctionType(dart.dynamic, [core.String, developer.TimelineSyncFunction], {arguments: core.Map})
+  }),
+  names: ['startSync', 'finishSync', 'instantSync', 'timeSync']
+});
+dart.defineLazy(developer.Timeline, {
+  get _stack() {
+    return ListOf_SyncBlock().new();
+  },
+  get _isolateId() {
+    return developer._getIsolateNum();
+  },
+  get _isolateIdString() {
+    return dart.toString(developer.Timeline._isolateId);
+  }
+});
+const _stack = Symbol('_stack');
+const _taskId = Symbol('_taskId');
+const _start$1 = Symbol('_start');
+const _finish = Symbol('_finish');
+developer.TimelineTask = class TimelineTask extends core.Object {
+  new() {
+    this[_stack] = JSArrayOf_AsyncBlock().of([]);
+    this[_taskId] = developer._getNextAsyncId();
+  }
+  withTaskId(taskId) {
+    this[_stack] = JSArrayOf_AsyncBlock().of([]);
+    this[_taskId] = taskId;
+    if (!(typeof taskId == 'number')) {
+      dart.throw(new core.ArgumentError.value(taskId, 'taskId', 'Must be an int'));
+    }
+  }
+  start(name, opts) {
+    let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
+    if (developer._isProduct) {
+      return;
+    }
+    if (!(typeof name == 'string')) {
+      dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
+    }
+    let block = new developer._AsyncBlock._(name, this[_taskId]);
+    if (core.Map.is(arguments$)) {
+      block[_appendArguments](arguments$);
+    }
+    this[_stack][dartx.add](block);
+    block[_start$1]();
+  }
+  instant(name, opts) {
+    let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
+    if (developer._isProduct) {
+      return;
+    }
+    if (!(typeof name == 'string')) {
+      dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
+    }
+    let instantArguments = null;
+    if (core.Map.is(arguments$)) {
+      instantArguments = core.Map.from(arguments$);
+    }
+    developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'n', 'Dart', name, developer._argumentsAsJson(instantArguments));
+  }
+  finish() {
+    if (developer._isProduct) {
+      return;
+    }
+    if (this[_stack][dartx.length] == 0) {
+      dart.throw(new core.StateError('Uneven calls to start and finish'));
+    }
+    let block = this[_stack][dartx.removeLast]();
+    block[_finish]();
+  }
+  pass() {
+    if (dart.notNull(this[_stack][dartx.length]) > 0) {
+      dart.throw(new core.StateError('You cannot pass a TimelineTask without finishing all started ' + 'operations'));
+    }
+    let r = this[_taskId];
+    return r;
+  }
+};
+dart.defineNamedConstructor(developer.TimelineTask, 'withTaskId');
+dart.setSignature(developer.TimelineTask, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(developer.TimelineTask, []),
+    withTaskId: dart.definiteFunctionType(developer.TimelineTask, [core.int])
+  }),
+  fields: () => ({
+    [_taskId]: core.int,
+    [_stack]: ListOf_AsyncBlock()
+  }),
+  methods: () => ({
+    start: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
+    instant: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
+    finish: dart.definiteFunctionType(dart.void, []),
+    pass: dart.definiteFunctionType(core.int, [])
+  })
+});
+const _arguments$ = Symbol('_arguments');
+developer._AsyncBlock = class _AsyncBlock extends core.Object {
+  _(name, taskId) {
+    this.name = name;
+    this[_taskId] = taskId;
+    this.category = 'Dart';
+    this[_arguments$] = null;
+  }
+  [_start$1]() {
+    developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'b', this.category, this.name, developer._argumentsAsJson(this[_arguments$]));
+  }
+  [_finish]() {
+    developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'e', this.category, this.name, developer._argumentsAsJson(null));
+  }
+  [_appendArguments](arguments$) {
+    if (this[_arguments$] == null) {
+      this[_arguments$] = dart.map();
+    }
+    this[_arguments$][dartx.addAll](arguments$);
+  }
+};
+dart.defineNamedConstructor(developer._AsyncBlock, '_');
+dart.setSignature(developer._AsyncBlock, {
+  constructors: () => ({_: dart.definiteFunctionType(developer._AsyncBlock, [core.String, core.int])}),
+  fields: () => ({
+    category: core.String,
+    name: core.String,
+    [_taskId]: core.int,
+    [_arguments$]: core.Map
+  }),
+  methods: () => ({
+    [_start$1]: dart.definiteFunctionType(dart.void, []),
+    [_finish]: dart.definiteFunctionType(dart.void, []),
+    [_appendArguments]: dart.definiteFunctionType(dart.void, [core.Map])
+  })
+});
+const _startCpu = Symbol('_startCpu');
+developer._SyncBlock = class _SyncBlock extends core.Object {
+  _(name, start, startCpu) {
+    this.name = name;
+    this[_start$1] = start;
+    this[_startCpu] = startCpu;
+    this.category = 'Dart';
+    this[_arguments$] = null;
+  }
+  finish() {
+    developer._reportCompleteEvent(this[_start$1], this[_startCpu], this.category, this.name, developer._argumentsAsJson(this[_arguments$]));
+  }
+  [_appendArguments](arguments$) {
+    if (arguments$ == null) {
+      return;
+    }
+    if (this[_arguments$] == null) {
+      this[_arguments$] = dart.map();
+    }
+    this[_arguments$][dartx.addAll](arguments$);
+  }
+};
+dart.defineNamedConstructor(developer._SyncBlock, '_');
+dart.setSignature(developer._SyncBlock, {
+  constructors: () => ({_: dart.definiteFunctionType(developer._SyncBlock, [core.String, core.int, core.int])}),
+  fields: () => ({
+    category: core.String,
+    name: core.String,
+    [_arguments$]: core.Map,
+    [_start$1]: core.int,
+    [_startCpu]: core.int
+  }),
+  methods: () => ({
+    finish: dart.definiteFunctionType(dart.void, []),
+    [_appendArguments]: dart.definiteFunctionType(dart.void, [core.Map])
+  })
+});
+developer._fastPathArguments = null;
+developer._argumentsAsJson = function(arguments$) {
+  if (arguments$ == null || arguments$[dartx.length] == 0) {
+    if (developer._fastPathArguments == null) {
+      developer._fastPathArguments = dart.str`{"isolateNumber":"${developer.Timeline._isolateId}"}`;
+    }
+    return developer._fastPathArguments;
+  }
+  arguments$[dartx._set]('isolateNumber', developer.Timeline._isolateIdString);
+  return convert.JSON.encode(arguments$);
+};
+dart.fn(developer._argumentsAsJson, MapToString());
+developer._isDartStreamEnabled = function() {
+  return false;
+};
+dart.fn(developer._isDartStreamEnabled, VoidTobool());
+developer._getNextAsyncId = function() {
+  return 0;
+};
+dart.fn(developer._getNextAsyncId, VoidToint());
+developer._getTraceClock = function() {
+  let x = developer._clockValue;
+  developer._clockValue = dart.notNull(x) + 1;
+  return x;
+};
+dart.fn(developer._getTraceClock, VoidToint());
+developer._getThreadCpuClock = function() {
+  return -1;
+};
+dart.fn(developer._getThreadCpuClock, VoidToint());
+developer._getIsolateNum = function() {
+  return 0;
+};
+dart.fn(developer._getIsolateNum, VoidToint());
+developer._reportTaskEvent = function(start, taskId, phase, category, name, argumentsAsJson) {
+};
+dart.fn(developer._reportTaskEvent, intAndintAndString__Tovoid());
+developer._reportCompleteEvent = function(start, startCpu, category, name, argumentsAsJson) {
+};
+dart.fn(developer._reportCompleteEvent, intAndintAndString__Tovoid$());
+developer._reportInstantEvent = function(start, category, name, argumentsAsJson) {
+};
+dart.fn(developer._reportInstantEvent, intAndStringAndString__Tovoid());
+developer.ServiceProtocolInfo = class ServiceProtocolInfo extends core.Object {
+  new(serverUri) {
+    this.majorVersion = developer._getServiceMajorVersion();
+    this.minorVersion = developer._getServiceMinorVersion();
+    this.serverUri = serverUri;
+  }
+  toString() {
+    if (this.serverUri != null) {
+      return dart.str`Dart VM Service Protocol v${this.majorVersion}.${this.minorVersion} ` + dart.str`listening on ${this.serverUri}`;
+    } else {
+      return dart.str`Dart VM Service Protocol v${this.majorVersion}.${this.minorVersion}`;
+    }
+  }
+};
+dart.setSignature(developer.ServiceProtocolInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(developer.ServiceProtocolInfo, [core.Uri])}),
+  fields: () => ({
+    majorVersion: core.int,
+    minorVersion: core.int,
+    serverUri: core.Uri
+  })
+});
+developer.Service = class Service extends core.Object {
+  static getInfo() {
+    return dart.async(function*() {
+      let receivePort = isolate.RawReceivePort.new();
+      let uriCompleter = CompleterOfUri().new();
+      receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), UriTovoid());
+      developer._getServerInfo(receivePort.sendPort);
+      let uri = (yield uriCompleter.future);
+      receivePort.close();
+      return new developer.ServiceProtocolInfo(uri);
+    }, developer.ServiceProtocolInfo);
+  }
+  static controlWebServer(opts) {
+    return dart.async(function*(opts) {
+      let enable = opts && 'enable' in opts ? opts.enable : false;
+      if (!(typeof enable == 'boolean')) {
+        dart.throw(new core.ArgumentError.value(enable, 'enable', 'Must be a bool'));
+      }
+      let receivePort = isolate.RawReceivePort.new();
+      let uriCompleter = CompleterOfUri().new();
+      receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), UriTovoid());
+      developer._webServerControl(receivePort.sendPort, enable);
+      let uri = (yield uriCompleter.future);
+      receivePort.close();
+      return new developer.ServiceProtocolInfo(uri);
+    }, developer.ServiceProtocolInfo, opts);
+  }
+};
+dart.setSignature(developer.Service, {
+  statics: () => ({
+    getInfo: dart.definiteFunctionType(async.Future$(developer.ServiceProtocolInfo), []),
+    controlWebServer: dart.definiteFunctionType(async.Future$(developer.ServiceProtocolInfo), [], {enable: core.bool})
+  }),
+  names: ['getInfo', 'controlWebServer']
+});
+developer._getServerInfo = function(sp) {
+  sp.send(null);
+};
+dart.lazyFn(developer._getServerInfo, () => SendPortTovoid());
+developer._webServerControl = function(sp, enable) {
+  sp.send(null);
+};
+dart.lazyFn(developer._webServerControl, () => SendPortAndboolTovoid());
+developer._getServiceMajorVersion = function() {
+  return 0;
+};
+dart.fn(developer._getServiceMajorVersion, VoidToint());
+developer._getServiceMinorVersion = function() {
+  return 0;
+};
+dart.fn(developer._getServiceMinorVersion, VoidToint());
+io.BytesBuilder = class BytesBuilder extends core.Object {
+  static new(opts) {
+    let copy = opts && 'copy' in opts ? opts.copy : true;
+    if (dart.test(copy)) {
+      return new io._CopyingBytesBuilder();
+    } else {
+      return new io._BytesBuilder();
+    }
+  }
+};
+dart.setSignature(io.BytesBuilder, {
+  constructors: () => ({new: dart.definiteFunctionType(io.BytesBuilder, [], {copy: core.bool})})
+});
+const _length$2 = Symbol('_length');
+const _buffer$ = Symbol('_buffer');
+const _pow2roundup = Symbol('_pow2roundup');
+io._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
+  new() {
+    this[_length$2] = 0;
+    this[_buffer$] = null;
+  }
+  add(bytes) {
+    let bytesLength = bytes[dartx.length];
+    if (bytesLength == 0) return;
+    let required = dart.notNull(this[_length$2]) + dart.notNull(bytesLength);
+    if (this[_buffer$] == null) {
+      let size = this[_pow2roundup](required);
+      size = math.max(core.int)(size, io._CopyingBytesBuilder._INIT_SIZE);
+      this[_buffer$] = typed_data.Uint8List.new(size);
+    } else if (dart.notNull(this[_buffer$][dartx.length]) < required) {
+      let size = dart.notNull(this[_pow2roundup](required)) * 2;
+      let newBuffer = typed_data.Uint8List.new(size);
+      newBuffer[dartx.setRange](0, this[_buffer$][dartx.length], this[_buffer$]);
+      this[_buffer$] = newBuffer;
+    }
+    dart.assert(dart.notNull(this[_buffer$][dartx.length]) >= required);
+    if (typed_data.Uint8List.is(bytes)) {
+      this[_buffer$][dartx.setRange](this[_length$2], required, bytes);
+    } else {
+      for (let i = 0; i < dart.notNull(bytesLength); i++) {
+        this[_buffer$][dartx._set](dart.notNull(this[_length$2]) + i, bytes[dartx._get](i));
+      }
+    }
+    this[_length$2] = required;
+  }
+  addByte(byte) {
+    this.add(JSArrayOfint().of([byte]));
+  }
+  takeBytes() {
+    if (this[_buffer$] == null) return typed_data.Uint8List.new(0);
+    let buffer = typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]);
+    this.clear();
+    return buffer;
+  }
+  toBytes() {
+    if (this[_buffer$] == null) return typed_data.Uint8List.new(0);
+    return typed_data.Uint8List.fromList(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
+  }
+  get length() {
+    return this[_length$2];
+  }
+  get isEmpty() {
+    return this[_length$2] == 0;
+  }
+  get isNotEmpty() {
+    return this[_length$2] != 0;
+  }
+  clear() {
+    this[_length$2] = 0;
+    this[_buffer$] = null;
+  }
+  [_pow2roundup](x) {
+    x = dart.notNull(x) - 1;
+    x = (dart.notNull(x) | x[dartx['>>']](1)) >>> 0;
+    x = (dart.notNull(x) | x[dartx['>>']](2)) >>> 0;
+    x = (dart.notNull(x) | x[dartx['>>']](4)) >>> 0;
+    x = (dart.notNull(x) | x[dartx['>>']](8)) >>> 0;
+    x = (dart.notNull(x) | x[dartx['>>']](16)) >>> 0;
+    return dart.notNull(x) + 1;
+  }
+};
+io._CopyingBytesBuilder[dart.implements] = () => [io.BytesBuilder];
+dart.setSignature(io._CopyingBytesBuilder, {
+  fields: () => ({
+    [_length$2]: core.int,
+    [_buffer$]: typed_data.Uint8List
+  }),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addByte: dart.definiteFunctionType(dart.void, [core.int]),
+    takeBytes: dart.definiteFunctionType(core.List$(core.int), []),
+    toBytes: dart.definiteFunctionType(core.List$(core.int), []),
+    clear: dart.definiteFunctionType(dart.void, []),
+    [_pow2roundup]: dart.definiteFunctionType(core.int, [core.int])
+  }),
+  sfields: () => ({_INIT_SIZE: core.int})
+});
+io._CopyingBytesBuilder._INIT_SIZE = 1024;
+const _chunks = Symbol('_chunks');
+io._BytesBuilder = class _BytesBuilder extends core.Object {
+  new() {
+    this[_chunks] = JSArrayOfListOfint().of([]);
+    this[_length$2] = 0;
+  }
+  add(bytes) {
+    if (!typed_data.Uint8List.is(bytes)) {
+      bytes = typed_data.Uint8List.fromList(bytes);
+    }
+    this[_chunks][dartx.add](bytes);
+    this[_length$2] = dart.notNull(this[_length$2]) + dart.notNull(bytes[dartx.length]);
+  }
+  addByte(byte) {
+    this.add(JSArrayOfint().of([byte]));
+  }
+  takeBytes() {
+    if (this[_chunks][dartx.length] == 0) return typed_data.Uint8List.new(0);
+    if (this[_chunks][dartx.length] == 1) {
+      let buffer = this[_chunks][dartx.single];
+      this.clear();
+      return buffer;
+    }
+    let buffer = typed_data.Uint8List.new(this[_length$2]);
+    let offset = 0;
+    for (let chunk of this[_chunks]) {
+      buffer[dartx.setRange](offset, dart.notNull(offset) + dart.notNull(chunk[dartx.length]), chunk);
+      offset = dart.notNull(offset) + dart.notNull(chunk[dartx.length]);
+    }
+    this.clear();
+    return buffer;
+  }
+  toBytes() {
+    if (this[_chunks][dartx.length] == 0) return typed_data.Uint8List.new(0);
+    let buffer = typed_data.Uint8List.new(this[_length$2]);
+    let offset = 0;
+    for (let chunk of this[_chunks]) {
+      buffer[dartx.setRange](offset, dart.notNull(offset) + dart.notNull(chunk[dartx.length]), chunk);
+      offset = dart.notNull(offset) + dart.notNull(chunk[dartx.length]);
+    }
+    return buffer;
+  }
+  get length() {
+    return this[_length$2];
+  }
+  get isEmpty() {
+    return this[_length$2] == 0;
+  }
+  get isNotEmpty() {
+    return this[_length$2] != 0;
+  }
+  clear() {
+    this[_length$2] = 0;
+    this[_chunks][dartx.clear]();
+  }
+};
+io._BytesBuilder[dart.implements] = () => [io.BytesBuilder];
+dart.setSignature(io._BytesBuilder, {
+  fields: () => ({
+    [_length$2]: core.int,
+    [_chunks]: ListOfListOfint()
+  }),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addByte: dart.definiteFunctionType(dart.void, [core.int]),
+    takeBytes: dart.definiteFunctionType(core.List$(core.int), []),
+    toBytes: dart.definiteFunctionType(core.List$(core.int), []),
+    clear: dart.definiteFunctionType(dart.void, [])
+  })
+});
+io._SUCCESS_RESPONSE = 0;
+io._ILLEGAL_ARGUMENT_RESPONSE = 1;
+io._OSERROR_RESPONSE = 2;
+io._FILE_CLOSED_RESPONSE = 3;
+io._ERROR_RESPONSE_ERROR_TYPE = 0;
+io._OSERROR_RESPONSE_ERROR_CODE = 1;
+io._OSERROR_RESPONSE_MESSAGE = 2;
+io._isErrorResponse = function(response) {
+  return core.List.is(response) && !dart.equals(response[dartx._get](0), io._SUCCESS_RESPONSE);
+};
+dart.fn(io._isErrorResponse, dynamicTobool$());
+io._exceptionFromResponse = function(response, message, path) {
+  dart.assert(io._isErrorResponse(response));
+  switch (dart.dindex(response, io._ERROR_RESPONSE_ERROR_TYPE)) {
+    case io._ILLEGAL_ARGUMENT_RESPONSE:
+    {
+      return new core.ArgumentError();
+    }
+    case io._OSERROR_RESPONSE:
+    {
+      let err = new io.OSError(core.String._check(dart.dindex(response, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(response, io._OSERROR_RESPONSE_ERROR_CODE)));
+      return new io.FileSystemException(message, path, err);
+    }
+    case io._FILE_CLOSED_RESPONSE:
+    {
+      return new io.FileSystemException("File closed", path);
+    }
+    default:
+    {
+      return core.Exception.new("Unknown error");
+    }
+  }
+};
+dart.fn(io._exceptionFromResponse, dynamicAndStringAndStringTodynamic());
+io.IOException = class IOException extends core.Object {
+  toString() {
+    return "IOException";
+  }
+};
+io.IOException[dart.implements] = () => [core.Exception];
+io.OSError = class OSError extends core.Object {
+  new(message, errorCode) {
+    if (message === void 0) message = "";
+    if (errorCode === void 0) errorCode = io.OSError.noErrorCode;
+    this.message = message;
+    this.errorCode = errorCode;
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    sb.write("OS Error");
+    if (!dart.test(this.message[dartx.isEmpty])) {
+      sb.write(": ");
+      sb.write(this.message);
+      if (this.errorCode != io.OSError.noErrorCode) {
+        sb.write(", errno = ");
+        sb.write(dart.toString(this.errorCode));
+      }
+    } else if (this.errorCode != io.OSError.noErrorCode) {
+      sb.write(": errno = ");
+      sb.write(dart.toString(this.errorCode));
+    }
+    return sb.toString();
+  }
+};
+dart.setSignature(io.OSError, {
+  constructors: () => ({new: dart.definiteFunctionType(io.OSError, [], [core.String, core.int])}),
+  fields: () => ({
+    message: core.String,
+    errorCode: core.int
+  }),
+  sfields: () => ({noErrorCode: core.int})
+});
+io.OSError.noErrorCode = -1;
+io._BufferAndStart = class _BufferAndStart extends core.Object {
+  new(buffer, start) {
+    this.buffer = buffer;
+    this.start = start;
+  }
+};
+dart.setSignature(io._BufferAndStart, {
+  constructors: () => ({new: dart.definiteFunctionType(io._BufferAndStart, [core.List, core.int])}),
+  fields: () => ({
+    buffer: core.List,
+    start: core.int
+  })
+});
+io._ensureFastAndSerializableByteData = function(buffer, start, end) {
+  if (typed_data.Uint8List.is(buffer) || typed_data.Int8List.is(buffer)) {
+    return new io._BufferAndStart(buffer, start);
+  }
+  let length = dart.notNull(end) - dart.notNull(start);
+  let newBuffer = typed_data.Uint8List.new(length);
+  let j = start;
+  for (let i = 0; i < length; i++) {
+    let value = core.int._check(buffer[dartx._get](j));
+    if (!(typeof value == 'number')) {
+      dart.throw(new core.ArgumentError(dart.str`List element is not an integer at index ${j}`));
+    }
+    newBuffer[dartx._set](i, value);
+    j = dart.notNull(j) + 1;
+  }
+  return new io._BufferAndStart(newBuffer, 0);
+};
+dart.fn(io._ensureFastAndSerializableByteData, ListAndintAndintTo_BufferAndStart());
+io._IOCrypto = class _IOCrypto extends core.Object {
+  static getRandomBytes(count) {
+    dart.throw(new core.UnsupportedError("_IOCrypto.getRandomBytes"));
+  }
+};
+dart.setSignature(io._IOCrypto, {
+  statics: () => ({getRandomBytes: dart.definiteFunctionType(typed_data.Uint8List, [core.int])}),
+  names: ['getRandomBytes']
+});
+io._CryptoUtils = class _CryptoUtils extends core.Object {
+  static bytesToHex(bytes) {
+    let result = new core.StringBuffer();
+    for (let part of bytes) {
+      result.write(dart.str`${dart.notNull(part) < 16 ? '0' : ''}${part[dartx.toRadixString](16)}`);
+    }
+    return result.toString();
+  }
+  static bytesToBase64(bytes, urlSafe, addLineSeparator) {
+    if (urlSafe === void 0) urlSafe = false;
+    if (addLineSeparator === void 0) addLineSeparator = false;
+    let len = bytes[dartx.length];
+    if (len == 0) {
+      return "";
+    }
+    let lookup = dart.test(urlSafe) ? io._CryptoUtils._encodeTableUrlSafe : io._CryptoUtils._encodeTable;
+    let remainderLength = dart.asInt(len[dartx.remainder](3));
+    let chunkLength = dart.notNull(len) - dart.notNull(remainderLength);
+    let outputLen = (dart.notNull(len) / 3)[dartx.truncate]() * 4 + (dart.notNull(remainderLength) > 0 ? 4 : 0);
+    if (dart.test(addLineSeparator)) {
+      outputLen = outputLen + (((outputLen - 1) / io._CryptoUtils.LINE_LENGTH)[dartx.truncate]() << 1 >>> 0);
+    }
+    let out = ListOfint().new(outputLen);
+    let j = 0, i = 0, c = 0;
+    while (i < chunkLength) {
+      let x = (dart.notNull(bytes[dartx._get](i++)) << 16 & 16777215 | dart.notNull(bytes[dartx._get](i++)) << 8 & 16777215 | dart.notNull(bytes[dartx._get](i++))) >>> 0;
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](x[dartx['>>']](18)));
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](x >> 12 & 63));
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](x >> 6 & 63));
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](x & 63));
+      if (dart.test(addLineSeparator) && ++c == 19 && j < outputLen - 2) {
+        out[dartx._set](j++, io._CryptoUtils.CR);
+        out[dartx._set](j++, io._CryptoUtils.LF);
+        c = 0;
+      }
+    }
+    if (remainderLength == 1) {
+      let x = bytes[dartx._get](i);
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](x[dartx['>>']](2)));
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](dart.notNull(x) << 4 & 63));
+      out[dartx._set](j++, io._CryptoUtils.PAD);
+      out[dartx._set](j++, io._CryptoUtils.PAD);
+    } else if (remainderLength == 2) {
+      let x = bytes[dartx._get](i);
+      let y = bytes[dartx._get](i + 1);
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](x[dartx['>>']](2)));
+      out[dartx._set](j++, lookup[dartx.codeUnitAt]((dart.notNull(x) << 4 | dart.notNull(y) >> 4) & 63));
+      out[dartx._set](j++, lookup[dartx.codeUnitAt](dart.notNull(y) << 2 & 63));
+      out[dartx._set](j++, io._CryptoUtils.PAD);
+    }
+    return core.String.fromCharCodes(out);
+  }
+  static base64StringToBytes(input, ignoreInvalidCharacters) {
+    if (ignoreInvalidCharacters === void 0) ignoreInvalidCharacters = true;
+    let len = input[dartx.length];
+    if (len == 0) {
+      return ListOfint().new(0);
+    }
+    let extrasLen = 0;
+    for (let i = 0; i < dart.notNull(len); i++) {
+      let c = io._CryptoUtils._decodeTable[dartx._get](input[dartx.codeUnitAt](i));
+      if (dart.notNull(c) < 0) {
+        extrasLen++;
+        if (c == -2 && !dart.test(ignoreInvalidCharacters)) {
+          dart.throw(new core.FormatException(dart.str`Invalid character: ${input[dartx._get](i)}`));
+        }
+      }
+    }
+    if ((dart.notNull(len) - extrasLen)[dartx['%']](4) != 0) {
+      dart.throw(new core.FormatException(dart.str`Size of Base 64 characters in Input\n          must be a multiple of 4. Input: ${input}`));
+    }
+    let padLength = 0;
+    for (let i = dart.notNull(len) - 1; i >= 0; i--) {
+      let currentCodeUnit = input[dartx.codeUnitAt](i);
+      if (dart.notNull(io._CryptoUtils._decodeTable[dartx._get](currentCodeUnit)) > 0) break;
+      if (currentCodeUnit == io._CryptoUtils.PAD) padLength++;
+    }
+    let outputLen = ((dart.notNull(len) - extrasLen) * 6)[dartx['>>']](3) - padLength;
+    let out = ListOfint().new(outputLen);
+    for (let i = 0, o = 0; o < outputLen;) {
+      let x = 0;
+      for (let j = 4; j > 0;) {
+        let c = io._CryptoUtils._decodeTable[dartx._get](input[dartx.codeUnitAt](i++));
+        if (dart.notNull(c) >= 0) {
+          x = (x << 6 & 16777215 | dart.notNull(c)) >>> 0;
+          j--;
+        }
+      }
+      out[dartx._set](o++, x[dartx['>>']](16));
+      if (o < outputLen) {
+        out[dartx._set](o++, x >> 8 & 255);
+        if (o < outputLen) out[dartx._set](o++, x & 255);
+      }
+    }
+    return out;
+  }
+};
+dart.setSignature(io._CryptoUtils, {
+  sfields: () => ({
+    PAD: core.int,
+    CR: core.int,
+    LF: core.int,
+    LINE_LENGTH: core.int,
+    _encodeTable: core.String,
+    _encodeTableUrlSafe: core.String,
+    _decodeTable: ListOfint()
+  }),
+  statics: () => ({
+    bytesToHex: dart.definiteFunctionType(core.String, [ListOfint()]),
+    bytesToBase64: dart.definiteFunctionType(core.String, [ListOfint()], [core.bool, core.bool]),
+    base64StringToBytes: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.bool])
+  }),
+  names: ['bytesToHex', 'bytesToBase64', 'base64StringToBytes']
+});
+io._CryptoUtils.PAD = 61;
+io._CryptoUtils.CR = 13;
+io._CryptoUtils.LF = 10;
+io._CryptoUtils.LINE_LENGTH = 76;
+io._CryptoUtils._encodeTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+io._CryptoUtils._encodeTableUrlSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
+io._CryptoUtils._decodeTable = dart.constList([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, 0, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2], core.int);
+io._MASK_8 = 255;
+io._MASK_32 = 4294967295;
+io._BITS_PER_BYTE = 8;
+io._BYTES_PER_WORD = 4;
+const _chunkSizeInWords = Symbol('_chunkSizeInWords');
+const _digestSizeInWords = Symbol('_digestSizeInWords');
+const _bigEndianWords = Symbol('_bigEndianWords');
+const _pendingData = Symbol('_pendingData');
+const _lengthInBytes = Symbol('_lengthInBytes');
+const _currentChunk = Symbol('_currentChunk');
+const _h = Symbol('_h');
+const _digestCalled = Symbol('_digestCalled');
+const _iterate = Symbol('_iterate');
+const _resultAsBytes = Symbol('_resultAsBytes');
+const _finalizeData = Symbol('_finalizeData');
+const _add32 = Symbol('_add32');
+const _roundUp = Symbol('_roundUp');
+const _rotl32 = Symbol('_rotl32');
+const _wordToBytes = Symbol('_wordToBytes');
+const _bytesToChunk = Symbol('_bytesToChunk');
+const _updateHash = Symbol('_updateHash');
+io._HashBase = class _HashBase extends core.Object {
+  new(chunkSizeInWords, digestSizeInWords, bigEndianWords) {
+    this[_chunkSizeInWords] = chunkSizeInWords;
+    this[_digestSizeInWords] = digestSizeInWords;
+    this[_bigEndianWords] = bigEndianWords;
+    this[_pendingData] = JSArrayOfint().of([]);
+    this[_lengthInBytes] = 0;
+    this[_currentChunk] = null;
+    this[_h] = null;
+    this[_digestCalled] = false;
+    this[_currentChunk] = ListOfint().new(this[_chunkSizeInWords]);
+    this[_h] = ListOfint().new(this[_digestSizeInWords]);
+  }
+  add(data) {
+    if (dart.test(this[_digestCalled])) {
+      dart.throw(new core.StateError('Hash update method called after digest was retrieved'));
+    }
+    this[_lengthInBytes] = dart.notNull(this[_lengthInBytes]) + dart.notNull(data[dartx.length]);
+    this[_pendingData][dartx.addAll](data);
+    this[_iterate]();
+  }
+  close() {
+    if (dart.test(this[_digestCalled])) {
+      return ListOfint()._check(this[_resultAsBytes]());
+    }
+    this[_digestCalled] = true;
+    this[_finalizeData]();
+    this[_iterate]();
+    dart.assert(this[_pendingData][dartx.length] == 0);
+    return ListOfint()._check(this[_resultAsBytes]());
+  }
+  get blockSize() {
+    return dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD;
+  }
+  [_add32](x, y) {
+    return dart.dsend(dart.dsend(x, '+', y), '&', io._MASK_32);
+  }
+  [_roundUp](val, n) {
+    return dart.dsend(dart.dsend(dart.dsend(val, '+', n), '-', 1), '&', dart.dsend(n, '_negate'));
+  }
+  [_rotl32](val, shift) {
+    let mod_shift = dart.notNull(shift) & 31;
+    return (val[dartx['<<']](mod_shift) & io._MASK_32 | ((dart.notNull(val) & io._MASK_32) >>> 0)[dartx['>>']](32 - mod_shift)) >>> 0;
+  }
+  [_resultAsBytes]() {
+    let result = [];
+    for (let i = 0; i < dart.notNull(this[_h][dartx.length]); i++) {
+      result[dartx.addAll](core.Iterable._check(this[_wordToBytes](this[_h][dartx._get](i))));
+    }
+    return result;
+  }
+  [_bytesToChunk](data, dataIndex) {
+    dart.assert(dart.notNull(data[dartx.length]) - dart.notNull(dataIndex) >= dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD);
+    for (let wordIndex = 0; wordIndex < dart.notNull(this[_chunkSizeInWords]); wordIndex++) {
+      let w3 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dataIndex) : data[dartx._get](dart.notNull(dataIndex) + 3);
+      let w2 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dart.notNull(dataIndex) + 1) : data[dartx._get](dart.notNull(dataIndex) + 2);
+      let w1 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dart.notNull(dataIndex) + 2) : data[dartx._get](dart.notNull(dataIndex) + 1);
+      let w0 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dart.notNull(dataIndex) + 3) : data[dartx._get](dataIndex);
+      dataIndex = dart.notNull(dataIndex) + 4;
+      let word = (dart.notNull(w3) & 255) << 24 >>> 0;
+      word = (word | (dart.notNull(w2) & io._MASK_8) << 16) >>> 0;
+      word = (word | (dart.notNull(w1) & io._MASK_8) << 8) >>> 0;
+      word = (word | dart.notNull(w0) & io._MASK_8) >>> 0;
+      this[_currentChunk][dartx._set](wordIndex, word);
+    }
+  }
+  [_wordToBytes](word) {
+    let bytes = ListOfint().new(io._BYTES_PER_WORD);
+    bytes[dartx._set](0, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 24 : 0) & io._MASK_8);
+    bytes[dartx._set](1, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 16 : 8) & io._MASK_8);
+    bytes[dartx._set](2, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 8 : 16) & io._MASK_8);
+    bytes[dartx._set](3, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 0 : 24) & io._MASK_8);
+    return bytes;
+  }
+  [_iterate]() {
+    let len = this[_pendingData][dartx.length];
+    let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD;
+    if (dart.notNull(len) >= chunkSizeInBytes) {
+      let index = 0;
+      for (; dart.notNull(len) - index >= chunkSizeInBytes; index = index + chunkSizeInBytes) {
+        this[_bytesToChunk](this[_pendingData], index);
+        this[_updateHash](this[_currentChunk]);
+      }
+      this[_pendingData] = this[_pendingData][dartx.sublist](index, len);
+    }
+  }
+  [_finalizeData]() {
+    this[_pendingData][dartx.add](128);
+    let contentsLength = dart.notNull(this[_lengthInBytes]) + 9;
+    let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD;
+    let finalizedLength = this[_roundUp](contentsLength, chunkSizeInBytes);
+    let zeroPadding = dart.dsend(finalizedLength, '-', contentsLength);
+    for (let i = 0; i < dart.notNull(core.num._check(zeroPadding)); i++) {
+      this[_pendingData][dartx.add](0);
+    }
+    let lengthInBits = dart.notNull(this[_lengthInBytes]) * io._BITS_PER_BYTE;
+    dart.assert(lengthInBits < dart.notNull(math.pow(2, 32)));
+    if (dart.test(this[_bigEndianWords])) {
+      this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes](0)));
+      this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes]((lengthInBits & io._MASK_32) >>> 0)));
+    } else {
+      this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes]((lengthInBits & io._MASK_32) >>> 0)));
+      this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes](0)));
+    }
+  }
+};
+dart.setSignature(io._HashBase, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HashBase, [core.int, core.int, core.bool])}),
+  fields: () => ({
+    [_chunkSizeInWords]: core.int,
+    [_digestSizeInWords]: core.int,
+    [_bigEndianWords]: core.bool,
+    [_lengthInBytes]: core.int,
+    [_pendingData]: ListOfint(),
+    [_currentChunk]: ListOfint(),
+    [_h]: ListOfint(),
+    [_digestCalled]: core.bool
+  }),
+  getters: () => ({blockSize: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.dynamic, [ListOfint()]),
+    close: dart.definiteFunctionType(core.List$(core.int), []),
+    [_add32]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    [_roundUp]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    [_rotl32]: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    [_resultAsBytes]: dart.definiteFunctionType(dart.dynamic, []),
+    [_bytesToChunk]: dart.definiteFunctionType(dart.dynamic, [ListOfint(), core.int]),
+    [_wordToBytes]: dart.definiteFunctionType(dart.dynamic, [core.int]),
+    [_iterate]: dart.definiteFunctionType(dart.dynamic, []),
+    [_finalizeData]: dart.definiteFunctionType(dart.dynamic, [])
+  })
+});
+io._MD5 = class _MD5 extends io._HashBase {
+  new() {
+    super.new(16, 4, false);
+    this[_h][dartx._set](0, 1732584193);
+    this[_h][dartx._set](1, 4023233417);
+    this[_h][dartx._set](2, 2562383102);
+    this[_h][dartx._set](3, 271733878);
+  }
+  newInstance() {
+    return new io._MD5();
+  }
+  [_updateHash](m) {
+    dart.assert(m[dartx.length] == 16);
+    let a = this[_h][dartx._get](0);
+    let b = this[_h][dartx._get](1);
+    let c = this[_h][dartx._get](2);
+    let d = this[_h][dartx._get](3);
+    let t0 = null;
+    let t1 = null;
+    for (let i = 0; i < 64; i++) {
+      if (i < 16) {
+        t0 = (dart.notNull(b) & dart.notNull(c) | ~dart.notNull(b) & io._MASK_32 & dart.notNull(d)) >>> 0;
+        t1 = i;
+      } else if (i < 32) {
+        t0 = (dart.notNull(d) & dart.notNull(b) | ~dart.notNull(d) & io._MASK_32 & dart.notNull(c)) >>> 0;
+        t1 = (5 * i + 1)[dartx['%']](16);
+      } else if (i < 48) {
+        t0 = (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0;
+        t1 = (3 * i + 5)[dartx['%']](16);
+      } else {
+        t0 = (dart.notNull(c) ^ (dart.notNull(b) | ~dart.notNull(d) & io._MASK_32)) >>> 0;
+        t1 = (7 * i)[dartx['%']](16);
+      }
+      let temp = d;
+      d = c;
+      c = b;
+      b = core.int._check(this[_add32](b, this[_rotl32](core.int._check(this[_add32](this[_add32](a, t0), this[_add32](io._MD5._k[dartx._get](i), m[dartx._get](core.int._check(t1))))), io._MD5._r[dartx._get](i))));
+      a = temp;
+    }
+    this[_h][dartx._set](0, core.int._check(this[_add32](a, this[_h][dartx._get](0))));
+    this[_h][dartx._set](1, core.int._check(this[_add32](b, this[_h][dartx._get](1))));
+    this[_h][dartx._set](2, core.int._check(this[_add32](c, this[_h][dartx._get](2))));
+    this[_h][dartx._set](3, core.int._check(this[_add32](d, this[_h][dartx._get](3))));
+  }
+};
+dart.setSignature(io._MD5, {
+  constructors: () => ({new: dart.definiteFunctionType(io._MD5, [])}),
+  methods: () => ({
+    newInstance: dart.definiteFunctionType(io._MD5, []),
+    [_updateHash]: dart.definiteFunctionType(dart.void, [ListOfint()])
+  }),
+  sfields: () => ({
+    _k: ListOfint(),
+    _r: ListOfint()
+  })
+});
+io._MD5._k = dart.constList([3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426, 2821735955, 4249261313, 1770035416, 2336552879, 4294925233, 2304563134, 1804603682, 4254626195, 2792965006, 1236535329, 4129170786, 3225465664, 643717713, 3921069994, 3593408605, 38016083, 3634488961, 3889429448, 568446438, 3275163606, 4107603335, 1163531501, 2850285829, 4243563512, 1735328473, 2368359562, 4294588738, 2272392833, 1839030562, 4259657740, 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074, 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645, 4096336452, 1126891415, 2878612391, 4237533241, 1700485571, 2399980690, 4293915773, 2240044497, 1873313359, 4264355552, 2734768916, 1309151649, 4149444226, 3174756917, 718787259, 3951481745], core.int);
+io._MD5._r = dart.constList([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21], core.int);
+const _w = Symbol('_w');
+io._SHA1 = class _SHA1 extends io._HashBase {
+  new() {
+    this[_w] = ListOfint().new(80);
+    super.new(16, 5, true);
+    this[_h][dartx._set](0, 1732584193);
+    this[_h][dartx._set](1, 4023233417);
+    this[_h][dartx._set](2, 2562383102);
+    this[_h][dartx._set](3, 271733878);
+    this[_h][dartx._set](4, 3285377520);
+  }
+  newInstance() {
+    return new io._SHA1();
+  }
+  [_updateHash](m) {
+    dart.assert(m[dartx.length] == 16);
+    let a = this[_h][dartx._get](0);
+    let b = this[_h][dartx._get](1);
+    let c = this[_h][dartx._get](2);
+    let d = this[_h][dartx._get](3);
+    let e = this[_h][dartx._get](4);
+    for (let i = 0; i < 80; i++) {
+      if (i < 16) {
+        this[_w][dartx._set](i, m[dartx._get](i));
+      } else {
+        let n = (dart.notNull(this[_w][dartx._get](i - 3)) ^ dart.notNull(this[_w][dartx._get](i - 8)) ^ dart.notNull(this[_w][dartx._get](i - 14)) ^ dart.notNull(this[_w][dartx._get](i - 16))) >>> 0;
+        this[_w][dartx._set](i, this[_rotl32](n, 1));
+      }
+      let t = this[_add32](this[_add32](this[_rotl32](a, 5), e), this[_w][dartx._get](i));
+      if (i < 20) {
+        t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | ~dart.notNull(b) & dart.notNull(d)) >>> 0), 1518500249);
+      } else if (i < 40) {
+        t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 1859775393);
+      } else if (i < 60) {
+        t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | dart.notNull(b) & dart.notNull(d) | dart.notNull(c) & dart.notNull(d)) >>> 0), 2400959708);
+      } else {
+        t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 3395469782);
+      }
+      e = d;
+      d = c;
+      c = this[_rotl32](b, 30);
+      b = a;
+      a = core.int._check(dart.dsend(t, '&', io._MASK_32));
+    }
+    this[_h][dartx._set](0, core.int._check(this[_add32](a, this[_h][dartx._get](0))));
+    this[_h][dartx._set](1, core.int._check(this[_add32](b, this[_h][dartx._get](1))));
+    this[_h][dartx._set](2, core.int._check(this[_add32](c, this[_h][dartx._get](2))));
+    this[_h][dartx._set](3, core.int._check(this[_add32](d, this[_h][dartx._get](3))));
+    this[_h][dartx._set](4, core.int._check(this[_add32](e, this[_h][dartx._get](4))));
+  }
+};
+dart.setSignature(io._SHA1, {
+  constructors: () => ({new: dart.definiteFunctionType(io._SHA1, [])}),
+  fields: () => ({[_w]: ListOfint()}),
+  methods: () => ({
+    newInstance: dart.definiteFunctionType(io._SHA1, []),
+    [_updateHash]: dart.definiteFunctionType(dart.void, [ListOfint()])
+  })
+});
+io.ZLibOption = class ZLibOption extends core.Object {};
+dart.setSignature(io.ZLibOption, {
+  sfields: () => ({
+    MIN_WINDOW_BITS: core.int,
+    MAX_WINDOW_BITS: core.int,
+    DEFAULT_WINDOW_BITS: core.int,
+    MIN_LEVEL: core.int,
+    MAX_LEVEL: core.int,
+    DEFAULT_LEVEL: core.int,
+    MIN_MEM_LEVEL: core.int,
+    MAX_MEM_LEVEL: core.int,
+    DEFAULT_MEM_LEVEL: core.int,
+    STRATEGY_FILTERED: core.int,
+    STRATEGY_HUFFMAN_ONLY: core.int,
+    STRATEGY_RLE: core.int,
+    STRATEGY_FIXED: core.int,
+    STRATEGY_DEFAULT: core.int
+  })
+});
+io.ZLibOption.MIN_WINDOW_BITS = 8;
+io.ZLibOption.MAX_WINDOW_BITS = 15;
+io.ZLibOption.DEFAULT_WINDOW_BITS = 15;
+io.ZLibOption.MIN_LEVEL = -1;
+io.ZLibOption.MAX_LEVEL = 9;
+io.ZLibOption.DEFAULT_LEVEL = 6;
+io.ZLibOption.MIN_MEM_LEVEL = 1;
+io.ZLibOption.MAX_MEM_LEVEL = 9;
+io.ZLibOption.DEFAULT_MEM_LEVEL = 8;
+io.ZLibOption.STRATEGY_FILTERED = 1;
+io.ZLibOption.STRATEGY_HUFFMAN_ONLY = 2;
+io.ZLibOption.STRATEGY_RLE = 3;
+io.ZLibOption.STRATEGY_FIXED = 4;
+io.ZLibOption.STRATEGY_DEFAULT = 0;
+io.ZLibCodec = class ZLibCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
+  new(opts) {
+    let level = opts && 'level' in opts ? opts.level : io.ZLibOption.DEFAULT_LEVEL;
+    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
+    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : io.ZLibOption.DEFAULT_MEM_LEVEL;
+    let strategy = opts && 'strategy' in opts ? opts.strategy : io.ZLibOption.STRATEGY_DEFAULT;
+    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
+    let raw = opts && 'raw' in opts ? opts.raw : false;
+    let gzip = opts && 'gzip' in opts ? opts.gzip : false;
+    this.level = level;
+    this.windowBits = windowBits;
+    this.memLevel = memLevel;
+    this.strategy = strategy;
+    this.dictionary = dictionary;
+    this.raw = raw;
+    this.gzip = gzip;
+    super.new();
+    io._validateZLibeLevel(this.level);
+    io._validateZLibMemLevel(this.memLevel);
+    io._validateZLibStrategy(this.strategy);
+    io._validateZLibWindowBits(this.windowBits);
+  }
+  _default() {
+    this.level = io.ZLibOption.DEFAULT_LEVEL;
+    this.windowBits = io.ZLibOption.DEFAULT_WINDOW_BITS;
+    this.memLevel = io.ZLibOption.DEFAULT_MEM_LEVEL;
+    this.strategy = io.ZLibOption.STRATEGY_DEFAULT;
+    this.raw = false;
+    this.gzip = false;
+    this.dictionary = null;
+    super.new();
+  }
+  get encoder() {
+    return new io.ZLibEncoder({gzip: false, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
+  }
+  get decoder() {
+    return new io.ZLibDecoder({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
+  }
+};
+dart.addSimpleTypeTests(io.ZLibCodec);
+dart.defineNamedConstructor(io.ZLibCodec, '_default');
+dart.setSignature(io.ZLibCodec, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.ZLibCodec, [], {level: core.int, windowBits: core.int, memLevel: core.int, strategy: core.int, dictionary: ListOfint(), raw: core.bool, gzip: core.bool}),
+    _default: dart.definiteFunctionType(io.ZLibCodec, [])
+  }),
+  fields: () => ({
+    gzip: core.bool,
+    level: core.int,
+    memLevel: core.int,
+    strategy: core.int,
+    windowBits: core.int,
+    raw: core.bool,
+    dictionary: ListOfint()
+  }),
+  getters: () => ({
+    encoder: dart.definiteFunctionType(io.ZLibEncoder, []),
+    decoder: dart.definiteFunctionType(io.ZLibDecoder, [])
+  })
+});
+io.ZLIB = dart.const(new io.ZLibCodec._default());
+io.GZipCodec = class GZipCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
+  new(opts) {
+    let level = opts && 'level' in opts ? opts.level : io.ZLibOption.DEFAULT_LEVEL;
+    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
+    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : io.ZLibOption.DEFAULT_MEM_LEVEL;
+    let strategy = opts && 'strategy' in opts ? opts.strategy : io.ZLibOption.STRATEGY_DEFAULT;
+    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
+    let raw = opts && 'raw' in opts ? opts.raw : false;
+    let gzip = opts && 'gzip' in opts ? opts.gzip : true;
+    this.level = level;
+    this.windowBits = windowBits;
+    this.memLevel = memLevel;
+    this.strategy = strategy;
+    this.dictionary = dictionary;
+    this.raw = raw;
+    this.gzip = gzip;
+    super.new();
+    io._validateZLibeLevel(this.level);
+    io._validateZLibMemLevel(this.memLevel);
+    io._validateZLibStrategy(this.strategy);
+    io._validateZLibWindowBits(this.windowBits);
+  }
+  _default() {
+    this.level = io.ZLibOption.DEFAULT_LEVEL;
+    this.windowBits = io.ZLibOption.DEFAULT_WINDOW_BITS;
+    this.memLevel = io.ZLibOption.DEFAULT_MEM_LEVEL;
+    this.strategy = io.ZLibOption.STRATEGY_DEFAULT;
+    this.raw = false;
+    this.gzip = true;
+    this.dictionary = null;
+    super.new();
+  }
+  get encoder() {
+    return new io.ZLibEncoder({gzip: true, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
+  }
+  get decoder() {
+    return new io.ZLibDecoder({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
+  }
+};
+dart.addSimpleTypeTests(io.GZipCodec);
+dart.defineNamedConstructor(io.GZipCodec, '_default');
+dart.setSignature(io.GZipCodec, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.GZipCodec, [], {level: core.int, windowBits: core.int, memLevel: core.int, strategy: core.int, dictionary: ListOfint(), raw: core.bool, gzip: core.bool}),
+    _default: dart.definiteFunctionType(io.GZipCodec, [])
+  }),
+  fields: () => ({
+    gzip: core.bool,
+    level: core.int,
+    memLevel: core.int,
+    strategy: core.int,
+    windowBits: core.int,
+    dictionary: ListOfint(),
+    raw: core.bool
+  }),
+  getters: () => ({
+    encoder: dart.definiteFunctionType(io.ZLibEncoder, []),
+    decoder: dart.definiteFunctionType(io.ZLibDecoder, [])
+  })
+});
+io.GZIP = dart.const(new io.GZipCodec._default());
+io.ZLibEncoder = class ZLibEncoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
+  new(opts) {
+    let gzip = opts && 'gzip' in opts ? opts.gzip : false;
+    let level = opts && 'level' in opts ? opts.level : io.ZLibOption.DEFAULT_LEVEL;
+    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
+    let memLevel = opts && 'memLevel' in opts ? opts.memLevel : io.ZLibOption.DEFAULT_MEM_LEVEL;
+    let strategy = opts && 'strategy' in opts ? opts.strategy : io.ZLibOption.STRATEGY_DEFAULT;
+    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
+    let raw = opts && 'raw' in opts ? opts.raw : false;
+    this.gzip = gzip;
+    this.level = level;
+    this.windowBits = windowBits;
+    this.memLevel = memLevel;
+    this.strategy = strategy;
+    this.dictionary = dictionary;
+    this.raw = raw;
+    super.new();
+    io._validateZLibeLevel(this.level);
+    io._validateZLibMemLevel(this.memLevel);
+    io._validateZLibStrategy(this.strategy);
+    io._validateZLibWindowBits(this.windowBits);
+  }
+  convert(bytes) {
+    let sink = new io._BufferSink();
+    let _ = this.startChunkedConversion(sink);
+    _.add(bytes);
+    _.close();
+    return sink.builder.takeBytes();
+  }
+  startChunkedConversion(sink) {
+    if (!convert.ByteConversionSink.is(sink)) {
+      sink = convert.ByteConversionSink.from(sink);
+    }
+    return new io._ZLibEncoderSink(convert.ByteConversionSink._check(sink), this.gzip, this.level, this.windowBits, this.memLevel, this.strategy, this.dictionary, this.raw);
+  }
+};
+dart.addSimpleTypeTests(io.ZLibEncoder);
+dart.setSignature(io.ZLibEncoder, {
+  constructors: () => ({new: dart.definiteFunctionType(io.ZLibEncoder, [], {gzip: core.bool, level: core.int, windowBits: core.int, memLevel: core.int, strategy: core.int, dictionary: ListOfint(), raw: core.bool})}),
+  fields: () => ({
+    gzip: core.bool,
+    level: core.int,
+    memLevel: core.int,
+    strategy: core.int,
+    windowBits: core.int,
+    dictionary: ListOfint(),
+    raw: core.bool
+  }),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [ListOfint()]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfListOfint()])
+  })
+});
+io.ZLibDecoder = class ZLibDecoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
+  new(opts) {
+    let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
+    let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
+    let raw = opts && 'raw' in opts ? opts.raw : false;
+    this.windowBits = windowBits;
+    this.dictionary = dictionary;
+    this.raw = raw;
+    super.new();
+    io._validateZLibWindowBits(this.windowBits);
+  }
+  convert(bytes) {
+    let sink = new io._BufferSink();
+    let _ = this.startChunkedConversion(sink);
+    _.add(bytes);
+    _.close();
+    return sink.builder.takeBytes();
+  }
+  startChunkedConversion(sink) {
+    if (!convert.ByteConversionSink.is(sink)) {
+      sink = convert.ByteConversionSink.from(sink);
+    }
+    return new io._ZLibDecoderSink(convert.ByteConversionSink._check(sink), this.windowBits, this.dictionary, this.raw);
+  }
+};
+dart.addSimpleTypeTests(io.ZLibDecoder);
+dart.setSignature(io.ZLibDecoder, {
+  constructors: () => ({new: dart.definiteFunctionType(io.ZLibDecoder, [], {windowBits: core.int, dictionary: ListOfint(), raw: core.bool})}),
+  fields: () => ({
+    windowBits: core.int,
+    dictionary: ListOfint(),
+    raw: core.bool
+  }),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [ListOfint()]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfListOfint()])
+  })
+});
+io._BufferSink = class _BufferSink extends convert.ByteConversionSink {
+  new() {
+    this.builder = io.BytesBuilder.new({copy: false});
+    super.new();
+  }
+  add(chunk) {
+    this.builder.add(chunk);
+  }
+  addSlice(chunk, start, end, isLast) {
+    if (typed_data.Uint8List.is(chunk)) {
+      let list = chunk;
+      this.builder.add(typed_data.Uint8List.view(list[dartx.buffer], start, dart.notNull(end) - dart.notNull(start)));
+    } else {
+      this.builder.add(chunk[dartx.sublist](start, end));
+    }
+  }
+  close() {}
+};
+dart.setSignature(io._BufferSink, {
+  fields: () => ({builder: io.BytesBuilder}),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _sink$0 = Symbol('_sink');
+const _filter$ = Symbol('_filter');
+const _closed = Symbol('_closed');
+const _empty = Symbol('_empty');
+let const$52;
+io._FilterSink = class _FilterSink extends convert.ByteConversionSink {
+  new(sink, filter) {
+    this[_sink$0] = sink;
+    this[_filter$] = filter;
+    this[_closed] = false;
+    this[_empty] = true;
+    super.new();
+  }
+  add(data) {
+    this.addSlice(data, 0, data[dartx.length], false);
+  }
+  addSlice(data, start, end, isLast) {
+    if (dart.test(this[_closed])) return;
+    if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
+    core.RangeError.checkValidRange(start, end, data[dartx.length]);
+    try {
+      this[_empty] = false;
+      let bufferAndStart = io._ensureFastAndSerializableByteData(data, start, end);
+      this[_filter$].process(ListOfint()._check(bufferAndStart.buffer), bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
+      let out = null;
+      while ((out = this[_filter$].processed({flush: false})) != null) {
+        this[_sink$0].add(ListOfint()._check(out));
+      }
+    } catch (e) {
+      this[_closed] = true;
+      throw e;
+    }
+
+    if (dart.test(isLast)) this.close();
+  }
+  close() {
+    if (dart.test(this[_closed])) return;
+    if (dart.test(this[_empty])) this[_filter$].process(const$52 || (const$52 = dart.constList([], core.int)), 0, 0);
+    try {
+      let out = null;
+      while ((out = this[_filter$].processed({end: true})) != null) {
+        this[_sink$0].add(ListOfint()._check(out));
+      }
+    } catch (e) {
+      this[_closed] = true;
+      dart.throw(e);
+    }
+
+    this[_closed] = true;
+    this[_sink$0].close();
+  }
+};
+dart.setSignature(io._FilterSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._FilterSink, [convert.ByteConversionSink, io._Filter])}),
+  fields: () => ({
+    [_filter$]: io._Filter,
+    [_sink$0]: convert.ByteConversionSink,
+    [_closed]: core.bool,
+    [_empty]: core.bool
+  }),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+io._ZLibEncoderSink = class _ZLibEncoderSink extends io._FilterSink {
+  new(sink, gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
+    super.new(sink, io._Filter._newZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw));
+  }
+};
+dart.setSignature(io._ZLibEncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ZLibEncoderSink, [convert.ByteConversionSink, core.bool, core.int, core.int, core.int, core.int, ListOfint(), core.bool])})
+});
+io._ZLibDecoderSink = class _ZLibDecoderSink extends io._FilterSink {
+  new(sink, windowBits, dictionary, raw) {
+    super.new(sink, io._Filter._newZLibInflateFilter(windowBits, dictionary, raw));
+  }
+};
+dart.setSignature(io._ZLibDecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ZLibDecoderSink, [convert.ByteConversionSink, core.int, ListOfint(), core.bool])})
+});
+io._Filter = class _Filter extends core.Object {
+  static _newZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
+    dart.throw(new core.UnsupportedError("_newZLibDeflateFilter"));
+  }
+  static _newZLibInflateFilter(windowBits, dictionary, raw) {
+    dart.throw(new core.UnsupportedError("_newZLibInflateFilter"));
+  }
+};
+dart.setSignature(io._Filter, {
+  statics: () => ({
+    _newZLibDeflateFilter: dart.definiteFunctionType(io._Filter, [core.bool, core.int, core.int, core.int, core.int, ListOfint(), core.bool]),
+    _newZLibInflateFilter: dart.definiteFunctionType(io._Filter, [core.int, ListOfint(), core.bool])
+  }),
+  names: ['_newZLibDeflateFilter', '_newZLibInflateFilter']
+});
+io._validateZLibWindowBits = function(windowBits) {
+  if (io.ZLibOption.MIN_WINDOW_BITS > dart.notNull(windowBits) || io.ZLibOption.MAX_WINDOW_BITS < dart.notNull(windowBits)) {
+    dart.throw(new core.RangeError.range(windowBits, io.ZLibOption.MIN_WINDOW_BITS, io.ZLibOption.MAX_WINDOW_BITS));
+  }
+};
+dart.fn(io._validateZLibWindowBits, intTovoid());
+io._validateZLibeLevel = function(level) {
+  if (io.ZLibOption.MIN_LEVEL > dart.notNull(level) || io.ZLibOption.MAX_LEVEL < dart.notNull(level)) {
+    dart.throw(new core.RangeError.range(level, io.ZLibOption.MIN_LEVEL, io.ZLibOption.MAX_LEVEL));
+  }
+};
+dart.fn(io._validateZLibeLevel, intTovoid());
+io._validateZLibMemLevel = function(memLevel) {
+  if (io.ZLibOption.MIN_MEM_LEVEL > dart.notNull(memLevel) || io.ZLibOption.MAX_MEM_LEVEL < dart.notNull(memLevel)) {
+    dart.throw(new core.RangeError.range(memLevel, io.ZLibOption.MIN_MEM_LEVEL, io.ZLibOption.MAX_MEM_LEVEL));
+  }
+};
+dart.fn(io._validateZLibMemLevel, intTovoid());
+let const$53;
+io._validateZLibStrategy = function(strategy) {
+  let strategies = const$53 || (const$53 = dart.constList([io.ZLibOption.STRATEGY_FILTERED, io.ZLibOption.STRATEGY_HUFFMAN_ONLY, io.ZLibOption.STRATEGY_RLE, io.ZLibOption.STRATEGY_FIXED, io.ZLibOption.STRATEGY_DEFAULT], core.int));
+  if (strategies[dartx.indexOf](strategy) == -1) {
+    dart.throw(new core.ArgumentError("Unsupported 'strategy'"));
+  }
+};
+dart.fn(io._validateZLibStrategy, intTovoid());
+io.Directory = class Directory extends core.Object {
+  static new(path) {
+    return new io._Directory(path);
+  }
+  static fromUri(uri) {
+    return io.Directory.new(uri.toFilePath());
+  }
+  static get current() {
+    return io._Directory.current;
+  }
+  static set current(path) {
+    io._Directory.current = path;
+  }
+  static get systemTemp() {
+    return io._Directory.systemTemp;
+  }
+};
+io.Directory[dart.implements] = () => [io.FileSystemEntity];
+dart.setSignature(io.Directory, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.Directory, [core.String]),
+    fromUri: dart.definiteFunctionType(io.Directory, [core.Uri])
+  }),
+  fields: () => ({path: core.String}),
+  sgetters: () => ({
+    current: dart.definiteFunctionType(io.Directory, []),
+    systemTemp: dart.definiteFunctionType(io.Directory, [])
+  }),
+  ssetters: () => ({current: dart.definiteFunctionType(dart.void, [dart.dynamic])})
+});
+const _isErrorResponse = Symbol('_isErrorResponse');
+const _exceptionOrErrorFromResponse = Symbol('_exceptionOrErrorFromResponse');
+const _absolutePath = Symbol('_absolutePath');
+const _computeExistingIndex = Symbol('_computeExistingIndex');
+const _delete = Symbol('_delete');
+const _deleteSync = Symbol('_deleteSync');
+const _type = Symbol('_type');
+io.FileSystemEntity = class FileSystemEntity extends core.Object {
+  get uri() {
+    return core.Uri.file(this.path);
+  }
+  resolveSymbolicLinks() {
+    return io._IOService._dispatch(io._FILE_RESOLVE_SYMBOLIC_LINKS, JSArrayOfString().of([this.path])).then(core.String)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot resolve symbolic links", this.path));
+      }
+      return FutureOrOfString()._check(response);
+    }, dynamicToFutureOrOfString()));
+  }
+  resolveSymbolicLinksSync() {
+    let result = io.FileSystemEntity._resolveSymbolicLinks(this.path);
+    io.FileSystemEntity._throwIfError(result, "Cannot resolve symbolic links", this.path);
+    return core.String._check(result);
+  }
+  delete(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    return this[_delete]({recursive: recursive});
+  }
+  deleteSync(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    return this[_deleteSync]({recursive: recursive});
+  }
+  watch(opts) {
+    let events = opts && 'events' in opts ? opts.events : io.FileSystemEvent.ALL;
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    return io._FileSystemWatcher._watch(io.FileSystemEntity._trimTrailingPathSeparators(this.path), events, recursive);
+  }
+  static identical(path1, path2) {
+    return io._IOService._dispatch(io._FILE_IDENTICAL, JSArrayOfString().of([path1, path2])).then(core.bool)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, dart.str`Error in FileSystemEntity.identical(${path1}, ${path2})`, ""));
+      }
+      return FutureOrOfbool()._check(response);
+    }, dynamicToFutureOrOfbool()));
+  }
+  get isAbsolute() {
+    if (dart.test(io.Platform.isWindows)) {
+      return this.path[dartx.startsWith](io.FileSystemEntity._absoluteWindowsPathPattern);
+    } else {
+      return this.path[dartx.startsWith]('/');
+    }
+  }
+  get [_absolutePath]() {
+    if (dart.test(this.isAbsolute)) return this.path;
+    let current = io.Directory.current.path;
+    if (dart.test(current[dartx.endsWith]('/')) || dart.test(io.Platform.isWindows) && dart.test(current[dartx.endsWith]('\\'))) {
+      return dart.str`${current}${this.path}`;
+    } else {
+      return dart.str`${current}${io.Platform.pathSeparator}${this.path}`;
+    }
+  }
+  static identicalSync(path1, path2) {
+    let result = io.FileSystemEntity._identical(path1, path2);
+    io.FileSystemEntity._throwIfError(result, 'Error in FileSystemEntity.identicalSync');
+    return core.bool._check(result);
+  }
+  static get isWatchSupported() {
+    return io._FileSystemWatcher.isSupported;
+  }
+  static type(path, opts) {
+    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
+    return io.FileSystemEntity._getTypeAsync(path, followLinks).then(io.FileSystemEntityType)(io.FileSystemEntityType._lookup);
+  }
+  static typeSync(path, opts) {
+    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
+    return io.FileSystemEntityType._lookup(io.FileSystemEntity._getTypeSync(path, followLinks));
+  }
+  static isLink(path) {
+    return io.FileSystemEntity._getTypeAsync(path, false).then(core.bool)(dart.fn(type => type == io.FileSystemEntityType.LINK[_type], intTobool()));
+  }
+  static isFile(path) {
+    return io.FileSystemEntity._getTypeAsync(path, true).then(core.bool)(dart.fn(type => type == io.FileSystemEntityType.FILE[_type], intTobool()));
+  }
+  static isDirectory(path) {
+    return io.FileSystemEntity._getTypeAsync(path, true).then(core.bool)(dart.fn(type => type == io.FileSystemEntityType.DIRECTORY[_type], intTobool()));
+  }
+  static isLinkSync(path) {
+    return io.FileSystemEntity._getTypeSync(path, false) == io.FileSystemEntityType.LINK[_type];
+  }
+  static isFileSync(path) {
+    return io.FileSystemEntity._getTypeSync(path, true) == io.FileSystemEntityType.FILE[_type];
+  }
+  static isDirectorySync(path) {
+    return io.FileSystemEntity._getTypeSync(path, true) == io.FileSystemEntityType.DIRECTORY[_type];
+  }
+  static _getType(path, followLinks) {
+    dart.throw(new core.UnsupportedError("FileSystemEntity._getType"));
+  }
+  static _identical(path1, path2) {
+    dart.throw(new core.UnsupportedError("FileSystemEntity._identical"));
+  }
+  static _resolveSymbolicLinks(path) {
+    dart.throw(new core.UnsupportedError("FileSystemEntity._resolveSymbolicLinks"));
+  }
+  static parentOf(path) {
+    let rootEnd = -1;
+    if (dart.test(io.Platform.isWindows)) {
+      if (dart.test(path[dartx.startsWith](io.FileSystemEntity._absoluteWindowsPathPattern))) {
+        rootEnd = path[dartx.indexOf](core.RegExp.new('[/\\\\]'), 2);
+        if (rootEnd == -1) return path;
+      } else if (dart.test(path[dartx.startsWith]('\\')) || dart.test(path[dartx.startsWith]('/'))) {
+        rootEnd = 0;
+      }
+    } else if (dart.test(path[dartx.startsWith]('/'))) {
+      rootEnd = 0;
+    }
+    let pos = path[dartx.lastIndexOf](io.FileSystemEntity._parentRegExp);
+    if (dart.notNull(pos) > dart.notNull(rootEnd)) {
+      return path[dartx.substring](0, dart.notNull(pos) + 1);
+    } else if (dart.notNull(rootEnd) > -1) {
+      return path[dartx.substring](0, dart.notNull(rootEnd) + 1);
+    } else {
+      return '.';
+    }
+  }
+  get parent() {
+    return io.Directory.new(io.FileSystemEntity.parentOf(this.path));
+  }
+  static _getTypeSync(path, followLinks) {
+    let result = io.FileSystemEntity._getType(path, followLinks);
+    io.FileSystemEntity._throwIfError(result, 'Error getting type of FileSystemEntity');
+    return core.int._check(result);
+  }
+  static _getTypeAsync(path, followLinks) {
+    return io._IOService._dispatch(io._FILE_TYPE, JSArrayOfObject().of([path, followLinks])).then(core.int)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Error getting type", path));
+      }
+      return FutureOrOfint()._check(response);
+    }, dynamicToFutureOrOfint()));
+  }
+  static _throwIfError(result, msg, path) {
+    if (path === void 0) path = null;
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException(msg, path, result));
+    } else if (core.ArgumentError.is(result)) {
+      dart.throw(result);
+    }
+  }
+  static _trimTrailingPathSeparators(path) {
+    if (!(typeof path == 'string')) return path;
+    if (dart.test(io.Platform.isWindows)) {
+      while (dart.notNull(path[dartx.length]) > 1 && (dart.test(path[dartx.endsWith](io.Platform.pathSeparator)) || dart.test(path[dartx.endsWith]('/')))) {
+        path = path[dartx.substring](0, dart.notNull(path[dartx.length]) - 1);
+      }
+    } else {
+      while (dart.notNull(path[dartx.length]) > 1 && dart.test(path[dartx.endsWith](io.Platform.pathSeparator))) {
+        path = path[dartx.substring](0, dart.notNull(path[dartx.length]) - 1);
+      }
+    }
+    return path;
+  }
+  static _ensureTrailingPathSeparators(path) {
+    if (!(typeof path == 'string')) return path;
+    if (dart.test(path[dartx.isEmpty])) path = '.';
+    if (dart.test(io.Platform.isWindows)) {
+      while (!dart.test(path[dartx.endsWith](io.Platform.pathSeparator)) && !dart.test(path[dartx.endsWith]('/'))) {
+        path = dart.str`${path}${io.Platform.pathSeparator}`;
+      }
+    } else {
+      while (!dart.test(path[dartx.endsWith](io.Platform.pathSeparator))) {
+        path = dart.str`${path}${io.Platform.pathSeparator}`;
+      }
+    }
+    return path;
+  }
+};
+dart.setSignature(io.FileSystemEntity, {
+  getters: () => ({
+    uri: dart.definiteFunctionType(core.Uri, []),
+    isAbsolute: dart.definiteFunctionType(core.bool, []),
+    [_absolutePath]: dart.definiteFunctionType(core.String, []),
+    parent: dart.definiteFunctionType(io.Directory, [])
+  }),
+  methods: () => ({
+    resolveSymbolicLinks: dart.definiteFunctionType(async.Future$(core.String), []),
+    resolveSymbolicLinksSync: dart.definiteFunctionType(core.String, []),
+    delete: dart.definiteFunctionType(async.Future$(io.FileSystemEntity), [], {recursive: core.bool}),
+    deleteSync: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
+    watch: dart.definiteFunctionType(async.Stream$(io.FileSystemEvent), [], {events: core.int, recursive: core.bool})
+  }),
+  sfields: () => ({
+    _absoluteWindowsPathPattern: core.RegExp,
+    _parentRegExp: core.RegExp
+  }),
+  sgetters: () => ({isWatchSupported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    identical: dart.definiteFunctionType(async.Future$(core.bool), [core.String, core.String]),
+    identicalSync: dart.definiteFunctionType(core.bool, [core.String, core.String]),
+    type: dart.definiteFunctionType(async.Future$(io.FileSystemEntityType), [core.String], {followLinks: core.bool}),
+    typeSync: dart.definiteFunctionType(io.FileSystemEntityType, [core.String], {followLinks: core.bool}),
+    isLink: dart.definiteFunctionType(async.Future$(core.bool), [core.String]),
+    isFile: dart.definiteFunctionType(async.Future$(core.bool), [core.String]),
+    isDirectory: dart.definiteFunctionType(async.Future$(core.bool), [core.String]),
+    isLinkSync: dart.definiteFunctionType(core.bool, [core.String]),
+    isFileSync: dart.definiteFunctionType(core.bool, [core.String]),
+    isDirectorySync: dart.definiteFunctionType(core.bool, [core.String]),
+    _getType: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
+    _identical: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    _resolveSymbolicLinks: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    parentOf: dart.definiteFunctionType(core.String, [core.String]),
+    _getTypeSync: dart.definiteFunctionType(core.int, [core.String, core.bool]),
+    _getTypeAsync: dart.definiteFunctionType(async.Future$(core.int), [core.String, core.bool]),
+    _throwIfError: dart.definiteFunctionType(dart.dynamic, [core.Object, core.String], [core.String]),
+    _trimTrailingPathSeparators: dart.definiteFunctionType(core.String, [core.String]),
+    _ensureTrailingPathSeparators: dart.definiteFunctionType(core.String, [core.String])
+  }),
+  names: ['identical', 'identicalSync', 'type', 'typeSync', 'isLink', 'isFile', 'isDirectory', 'isLinkSync', 'isFileSync', 'isDirectorySync', '_getType', '_identical', '_resolveSymbolicLinks', 'parentOf', '_getTypeSync', '_getTypeAsync', '_throwIfError', '_trimTrailingPathSeparators', '_ensureTrailingPathSeparators']
+});
+dart.defineLazy(io.FileSystemEntity, {
+  get _absoluteWindowsPathPattern() {
+    return core.RegExp.new('^(\\\\\\\\|[a-zA-Z]:[/\\\\])');
+  },
+  get _parentRegExp() {
+    return dart.test(io.Platform.isWindows) ? core.RegExp.new('[^/\\\\][/\\\\]+[^/\\\\]') : core.RegExp.new('[^/]/+[^/]');
+  }
+});
+io._Directory = class _Directory extends io.FileSystemEntity {
+  new(path) {
+    this.path = path;
+    if (!(typeof this.path == 'string')) {
+      dart.throw(new core.ArgumentError(dart.str`${core.Error.safeToString(this.path)} ` + 'is not a String'));
+    }
+  }
+  static _current() {
+    dart.throw(new core.UnsupportedError("Directory._current"));
+  }
+  static _setCurrent(path) {
+    dart.throw(new core.UnsupportedError("Directory_SetCurrent"));
+  }
+  static _createTemp(path) {
+    dart.throw(new core.UnsupportedError("Directory._createTemp"));
+  }
+  static _systemTemp() {
+    dart.throw(new core.UnsupportedError("Directory._systemTemp"));
+  }
+  static _exists(path) {
+    dart.throw(new core.UnsupportedError("Directory._exists"));
+  }
+  static _create(path) {
+    dart.throw(new core.UnsupportedError("Directory._create"));
+  }
+  static _deleteNative(path, recursive) {
+    dart.throw(new core.UnsupportedError("Directory._deleteNative"));
+  }
+  static _rename(path, newPath) {
+    dart.throw(new core.UnsupportedError("Directory._rename"));
+  }
+  static _fillWithDirectoryListing(list, path, recursive, followLinks) {
+    dart.throw(new core.UnsupportedError("Directory._fillWithDirectoryListing"));
+  }
+  static get current() {
+    let result = io._Directory._current();
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Getting current working directory failed", "", result));
+    }
+    return new io._Directory(core.String._check(result));
+  }
+  static set current(path) {
+    if (io.Directory.is(path)) path = dart.dload(path, 'path');
+    let result = io._Directory._setCurrent(path);
+    if (core.ArgumentError.is(result)) dart.throw(result);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Setting current working directory failed", core.String._check(path), result));
+    }
+  }
+  get uri() {
+    return core.Uri.directory(this.path);
+  }
+  exists() {
+    return io._IOService._dispatch(io._DIRECTORY_EXISTS, JSArrayOfString().of([this.path])).then(core.bool)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionOrErrorFromResponse](response, "Exists failed"));
+      }
+      return dart.equals(response, 1);
+    }, dynamicTobool$()));
+  }
+  existsSync() {
+    let result = io._Directory._exists(this.path);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Exists failed", this.path, result));
+    }
+    return dart.equals(result, 1);
+  }
+  get absolute() {
+    return io.Directory.new(this[_absolutePath]);
+  }
+  stat() {
+    return io.FileStat.stat(this.path);
+  }
+  statSync() {
+    return io.FileStat.statSync(this.path);
+  }
+  [_computeExistingIndex](dirsToCreate) {
+    let future = null;
+    let notFound = dirsToCreate[dartx.length];
+    for (let i = 0; i < dart.notNull(dirsToCreate[dartx.length]); i++) {
+      if (future == null) {
+        future = dart.dsend(dart.dsend(dirsToCreate[dartx._get](i), 'exists'), 'then', dart.fn(e => dart.test(e) ? i : notFound, dynamicToint()));
+      } else {
+        future = dart.dsend(future, 'then', dart.fn(index => {
+          if (!dart.equals(index, notFound)) {
+            return async.Future.value(index);
+          }
+          return dart.dsend(dart.dsend(dirsToCreate[dartx._get](i), 'exists'), 'then', dart.fn(e => dart.test(e) ? i : notFound, dynamicToint()));
+        }, dynamicTodynamic$()));
+      }
+    }
+    if (future == null) {
+      return FutureOfint().value(notFound);
+    } else {
+      return FutureOfint()._check(future);
+    }
+  }
+  create(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      return this.exists().then(io.Directory)(dart.fn(exists => {
+        if (dart.test(exists)) return this;
+        if (this.path != this.parent.path) {
+          return this.parent.create({recursive: true}).then(io.Directory)(dart.fn(_ => this.create(), DirectoryToFutureOfDirectory()));
+        } else {
+          return this.create();
+        }
+      }, boolToFutureOrOfDirectory()));
+    } else {
+      return io._IOService._dispatch(io._DIRECTORY_CREATE, JSArrayOfString().of([this.path])).then(io._Directory)(dart.fn(response => {
+        if (dart.test(this[_isErrorResponse](response))) {
+          dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation failed"));
+        }
+        return this;
+      }, dynamicTo_Directory()));
+    }
+  }
+  createSync(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      if (dart.test(this.existsSync())) return;
+      if (this.path != this.parent.path) {
+        this.parent.createSync({recursive: true});
+      }
+    }
+    let result = io._Directory._create(this.path);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Creation failed", this.path, result));
+    }
+  }
+  static get systemTemp() {
+    return io.Directory.new(io._Directory._systemTemp());
+  }
+  createTemp(prefix) {
+    if (prefix === void 0) prefix = null;
+    if (prefix == null) prefix = '';
+    if (this.path == '') {
+      dart.throw(new core.ArgumentError("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
+    }
+    let fullPrefix = null;
+    if (dart.test(this.path[dartx.endsWith]('/')) || dart.test(io.Platform.isWindows) && dart.test(this.path[dartx.endsWith]('\\'))) {
+      fullPrefix = dart.str`${this.path}${prefix}`;
+    } else {
+      fullPrefix = dart.str`${this.path}${io.Platform.pathSeparator}${prefix}`;
+    }
+    return io._IOService._dispatch(io._DIRECTORY_CREATE_TEMP, JSArrayOfString().of([fullPrefix])).then(io.Directory)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation of temporary directory failed"));
+      }
+      return io.Directory.new(core.String._check(response));
+    }, dynamicToDirectory()));
+  }
+  createTempSync(prefix) {
+    if (prefix === void 0) prefix = null;
+    if (prefix == null) prefix = '';
+    if (this.path == '') {
+      dart.throw(new core.ArgumentError("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
+    }
+    let fullPrefix = null;
+    if (dart.test(this.path[dartx.endsWith]('/')) || dart.test(io.Platform.isWindows) && dart.test(this.path[dartx.endsWith]('\\'))) {
+      fullPrefix = dart.str`${this.path}${prefix}`;
+    } else {
+      fullPrefix = dart.str`${this.path}${io.Platform.pathSeparator}${prefix}`;
+    }
+    let result = io._Directory._createTemp(fullPrefix);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Creation of temporary directory failed", fullPrefix, result));
+    }
+    return io.Directory.new(core.String._check(result));
+  }
+  [_delete](opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    return io._IOService._dispatch(io._DIRECTORY_DELETE, JSArrayOfObject().of([this.path, recursive])).then(io._Directory)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionOrErrorFromResponse](response, "Deletion failed"));
+      }
+      return this;
+    }, dynamicTo_Directory()));
+  }
+  [_deleteSync](opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    let result = io._Directory._deleteNative(this.path, recursive);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Deletion failed", this.path, result));
+    }
+  }
+  rename(newPath) {
+    return io._IOService._dispatch(io._DIRECTORY_RENAME, JSArrayOfString().of([this.path, newPath])).then(io.Directory)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionOrErrorFromResponse](response, "Rename failed"));
+      }
+      return io.Directory.new(newPath);
+    }, dynamicToDirectory()));
+  }
+  renameSync(newPath) {
+    if (!(typeof newPath == 'string')) {
+      dart.throw(new core.ArgumentError());
+    }
+    let result = io._Directory._rename(this.path, newPath);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("Rename failed", this.path, result));
+    }
+    return io.Directory.new(newPath);
+  }
+  list(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
+    return StreamOfFileSystemEntity()._check(new io._AsyncDirectoryLister(io.FileSystemEntity._ensureTrailingPathSeparators(this.path), recursive, followLinks).stream);
+  }
+  listSync(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
+    if (!(typeof recursive == 'boolean') || !(typeof followLinks == 'boolean')) {
+      dart.throw(new core.ArgumentError());
+    }
+    let result = JSArrayOfFileSystemEntity().of([]);
+    io._Directory._fillWithDirectoryListing(result, io.FileSystemEntity._ensureTrailingPathSeparators(this.path), recursive, followLinks);
+    return result;
+  }
+  toString() {
+    return dart.str`Directory: '${this.path}'`;
+  }
+  [_isErrorResponse](response) {
+    return core.List.is(response) && !dart.equals(response[dartx._get](0), io._SUCCESS_RESPONSE);
+  }
+  [_exceptionOrErrorFromResponse](response, message) {
+    dart.assert(this[_isErrorResponse](response));
+    switch (dart.dindex(response, io._ERROR_RESPONSE_ERROR_TYPE)) {
+      case io._ILLEGAL_ARGUMENT_RESPONSE:
+      {
+        return new core.ArgumentError();
+      }
+      case io._OSERROR_RESPONSE:
+      {
+        let err = new io.OSError(core.String._check(dart.dindex(response, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(response, io._OSERROR_RESPONSE_ERROR_CODE)));
+        return new io.FileSystemException(message, this.path, err);
+      }
+      default:
+      {
+        return core.Exception.new("Unknown error");
+      }
+    }
+  }
+};
+io._Directory[dart.implements] = () => [io.Directory];
+dart.setSignature(io._Directory, {
+  constructors: () => ({new: dart.definiteFunctionType(io._Directory, [core.String])}),
+  fields: () => ({path: core.String}),
+  getters: () => ({absolute: dart.definiteFunctionType(io.Directory, [])}),
+  methods: () => ({
+    exists: dart.definiteFunctionType(async.Future$(core.bool), []),
+    existsSync: dart.definiteFunctionType(core.bool, []),
+    stat: dart.definiteFunctionType(async.Future$(io.FileStat), []),
+    statSync: dart.definiteFunctionType(io.FileStat, []),
+    [_computeExistingIndex]: dart.definiteFunctionType(async.Future$(core.int), [core.List]),
+    create: dart.definiteFunctionType(async.Future$(io.Directory), [], {recursive: core.bool}),
+    createSync: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
+    createTemp: dart.definiteFunctionType(async.Future$(io.Directory), [], [core.String]),
+    createTempSync: dart.definiteFunctionType(io.Directory, [], [core.String]),
+    [_delete]: dart.definiteFunctionType(async.Future$(io.Directory), [], {recursive: core.bool}),
+    [_deleteSync]: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
+    rename: dart.definiteFunctionType(async.Future$(io.Directory), [core.String]),
+    renameSync: dart.definiteFunctionType(io.Directory, [core.String]),
+    list: dart.definiteFunctionType(async.Stream$(io.FileSystemEntity), [], {recursive: core.bool, followLinks: core.bool}),
+    listSync: dart.definiteFunctionType(core.List$(io.FileSystemEntity), [], {recursive: core.bool, followLinks: core.bool}),
+    [_isErrorResponse]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [_exceptionOrErrorFromResponse]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String])
+  }),
+  sgetters: () => ({
+    current: dart.definiteFunctionType(io.Directory, []),
+    systemTemp: dart.definiteFunctionType(io.Directory, [])
+  }),
+  ssetters: () => ({current: dart.definiteFunctionType(dart.void, [dart.dynamic])}),
+  statics: () => ({
+    _current: dart.definiteFunctionType(dart.dynamic, []),
+    _setCurrent: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _createTemp: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _systemTemp: dart.definiteFunctionType(core.String, []),
+    _exists: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _create: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _deleteNative: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
+    _rename: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    _fillWithDirectoryListing: dart.definiteFunctionType(dart.void, [ListOfFileSystemEntity(), core.String, core.bool, core.bool])
+  }),
+  names: ['_current', '_setCurrent', '_createTemp', '_systemTemp', '_exists', '_create', '_deleteNative', '_rename', '_fillWithDirectoryListing']
+});
+io._AsyncDirectoryListerOps = class _AsyncDirectoryListerOps extends core.Object {
+  static new(pointer) {
+    dart.throw(new core.UnsupportedError("Directory._list"));
+  }
+};
+dart.setSignature(io._AsyncDirectoryListerOps, {
+  constructors: () => ({new: dart.definiteFunctionType(io._AsyncDirectoryListerOps, [core.int])})
+});
+const _ops = Symbol('_ops');
+const _pointer = Symbol('_pointer');
+const _cleanup = Symbol('_cleanup');
+io._AsyncDirectoryLister = class _AsyncDirectoryLister extends core.Object {
+  new(path, recursive, followLinks) {
+    this.closeCompleter = async.Completer.new();
+    this.path = path;
+    this.recursive = recursive;
+    this.followLinks = followLinks;
+    this.controller = null;
+    this.canceled = false;
+    this.nextRunning = false;
+    this.closed = false;
+    this[_ops] = null;
+    this.controller = async.StreamController.new({onListen: dart.bind(this, 'onListen'), onResume: dart.bind(this, 'onResume'), onCancel: dart.bind(this, 'onCancel'), sync: true});
+  }
+  [_pointer]() {
+    return this[_ops] == null ? null : this[_ops].getPointer();
+  }
+  get stream() {
+    return this.controller.stream;
+  }
+  onListen() {
+    io._IOService._dispatch(io._DIRECTORY_LIST_START, JSArrayOfObject().of([this.path, this.recursive, this.followLinks])).then(dart.dynamic)(dart.fn(response => {
+      if (typeof response == 'number') {
+        this[_ops] = io._AsyncDirectoryListerOps.new(response);
+        this.next();
+      } else if (core.Error.is(response)) {
+        this.controller.addError(response, response.stackTrace);
+        this.close();
+      } else {
+        this.error(response);
+        this.close();
+      }
+    }, dynamicToNull$()));
+  }
+  onResume() {
+    if (!dart.test(this.nextRunning)) {
+      this.next();
+    }
+  }
+  onCancel() {
+    this.canceled = true;
+    if (!dart.test(this.nextRunning)) {
+      this.close();
+    }
+    return this.closeCompleter.future;
+  }
+  next() {
+    if (dart.test(this.canceled)) {
+      this.close();
+      return;
+    }
+    if (dart.test(this.controller.isPaused) || dart.test(this.nextRunning)) {
+      return;
+    }
+    let pointer = this[_pointer]();
+    if (pointer == null) {
+      return;
+    }
+    this.nextRunning = true;
+    io._IOService._dispatch(io._DIRECTORY_LIST_NEXT, JSArrayOfint().of([pointer])).then(dart.dynamic)(dart.fn(result => {
+      this.nextRunning = false;
+      if (core.List.is(result)) {
+        this.next();
+        dart.assert(result[dartx.length][dartx['%']](2) == 0);
+        for (let i = 0; i < dart.notNull(result[dartx.length]); i++) {
+          dart.assert(i[dartx['%']](2) == 0);
+          switch (result[dartx._get](i++)) {
+            case io._AsyncDirectoryLister.LIST_FILE:
+            {
+              this.controller.add(io.File.new(core.String._check(result[dartx._get](i))));
+              break;
+            }
+            case io._AsyncDirectoryLister.LIST_DIRECTORY:
+            {
+              this.controller.add(io.Directory.new(core.String._check(result[dartx._get](i))));
+              break;
+            }
+            case io._AsyncDirectoryLister.LIST_LINK:
+            {
+              this.controller.add(io.Link.new(core.String._check(result[dartx._get](i))));
+              break;
+            }
+            case io._AsyncDirectoryLister.LIST_ERROR:
+            {
+              this.error(result[dartx._get](i));
+              break;
+            }
+            case io._AsyncDirectoryLister.LIST_DONE:
+            {
+              this.canceled = true;
+              return;
+            }
+          }
+        }
+      } else {
+        this.controller.addError(new io.FileSystemException("Internal error"));
+      }
+    }, dynamicToNull$()));
+  }
+  [_cleanup]() {
+    this.controller.close();
+    this.closeCompleter.complete();
+    this[_ops] = null;
+  }
+  close() {
+    if (dart.test(this.closed)) {
+      return;
+    }
+    if (dart.test(this.nextRunning)) {
+      return;
+    }
+    this.closed = true;
+    let pointer = this[_pointer]();
+    if (pointer == null) {
+      this[_cleanup]();
+    } else {
+      io._IOService._dispatch(io._DIRECTORY_LIST_STOP, JSArrayOfint().of([pointer])).whenComplete(dart.bind(this, _cleanup));
+    }
+  }
+  error(message) {
+    let errorType = dart.dindex(dart.dindex(message, io._AsyncDirectoryLister.RESPONSE_ERROR), io._ERROR_RESPONSE_ERROR_TYPE);
+    if (dart.equals(errorType, io._ILLEGAL_ARGUMENT_RESPONSE)) {
+      this.controller.addError(new core.ArgumentError());
+    } else if (dart.equals(errorType, io._OSERROR_RESPONSE)) {
+      let responseError = dart.dindex(message, io._AsyncDirectoryLister.RESPONSE_ERROR);
+      let err = new io.OSError(core.String._check(dart.dindex(responseError, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(responseError, io._OSERROR_RESPONSE_ERROR_CODE)));
+      let errorPath = dart.dindex(message, io._AsyncDirectoryLister.RESPONSE_PATH);
+      if (errorPath == null) errorPath = this.path;
+      this.controller.addError(new io.FileSystemException("Directory listing failed", core.String._check(errorPath), err));
+    } else {
+      this.controller.addError(new io.FileSystemException("Internal error"));
+    }
+  }
+};
+dart.setSignature(io._AsyncDirectoryLister, {
+  constructors: () => ({new: dart.definiteFunctionType(io._AsyncDirectoryLister, [core.String, core.bool, core.bool])}),
+  fields: () => ({
+    path: core.String,
+    recursive: core.bool,
+    followLinks: core.bool,
+    controller: async.StreamController,
+    canceled: core.bool,
+    nextRunning: core.bool,
+    closed: core.bool,
+    [_ops]: io._AsyncDirectoryListerOps,
+    closeCompleter: async.Completer
+  }),
+  getters: () => ({stream: dart.definiteFunctionType(async.Stream, [])}),
+  methods: () => ({
+    [_pointer]: dart.definiteFunctionType(core.int, []),
+    onListen: dart.definiteFunctionType(dart.void, []),
+    onResume: dart.definiteFunctionType(dart.void, []),
+    onCancel: dart.definiteFunctionType(async.Future, []),
+    next: dart.definiteFunctionType(dart.void, []),
+    [_cleanup]: dart.definiteFunctionType(dart.void, []),
+    close: dart.definiteFunctionType(dart.void, []),
+    error: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  sfields: () => ({
+    LIST_FILE: core.int,
+    LIST_DIRECTORY: core.int,
+    LIST_LINK: core.int,
+    LIST_ERROR: core.int,
+    LIST_DONE: core.int,
+    RESPONSE_TYPE: core.int,
+    RESPONSE_PATH: core.int,
+    RESPONSE_COMPLETE: core.int,
+    RESPONSE_ERROR: core.int
+  })
+});
+io._AsyncDirectoryLister.LIST_FILE = 0;
+io._AsyncDirectoryLister.LIST_DIRECTORY = 1;
+io._AsyncDirectoryLister.LIST_LINK = 2;
+io._AsyncDirectoryLister.LIST_ERROR = 3;
+io._AsyncDirectoryLister.LIST_DONE = 4;
+io._AsyncDirectoryLister.RESPONSE_TYPE = 0;
+io._AsyncDirectoryLister.RESPONSE_PATH = 1;
+io._AsyncDirectoryLister.RESPONSE_COMPLETE = 1;
+io._AsyncDirectoryLister.RESPONSE_ERROR = 2;
+io._EventHandler = class _EventHandler extends core.Object {
+  static _sendData(sender, sendPort, data) {
+    dart.throw(new core.UnsupportedError("EventHandler._sendData"));
+  }
+};
+dart.setSignature(io._EventHandler, {
+  statics: () => ({_sendData: dart.definiteFunctionType(dart.void, [core.Object, isolate.SendPort, core.int])}),
+  names: ['_sendData']
+});
+const _mode = Symbol('_mode');
+io.FileMode = class FileMode extends core.Object {
+  _internal(mode) {
+    this[_mode] = mode;
+  }
+};
+dart.defineNamedConstructor(io.FileMode, '_internal');
+dart.setSignature(io.FileMode, {
+  constructors: () => ({_internal: dart.definiteFunctionType(io.FileMode, [core.int])}),
+  fields: () => ({[_mode]: core.int}),
+  sfields: () => ({
+    READ: io.FileMode,
+    WRITE: io.FileMode,
+    APPEND: io.FileMode,
+    WRITE_ONLY: io.FileMode,
+    WRITE_ONLY_APPEND: io.FileMode
+  })
+});
+dart.defineLazy(io.FileMode, {
+  get READ() {
+    return dart.const(new io.FileMode._internal(0));
+  },
+  get WRITE() {
+    return dart.const(new io.FileMode._internal(1));
+  },
+  get APPEND() {
+    return dart.const(new io.FileMode._internal(2));
+  },
+  get WRITE_ONLY() {
+    return dart.const(new io.FileMode._internal(3));
+  },
+  get WRITE_ONLY_APPEND() {
+    return dart.const(new io.FileMode._internal(4));
+  }
+});
+io.READ = io.FileMode.READ;
+io.WRITE = io.FileMode.WRITE;
+io.APPEND = io.FileMode.APPEND;
+io.WRITE_ONLY = io.FileMode.WRITE_ONLY;
+io.WRITE_ONLY_APPEND = io.FileMode.WRITE_ONLY_APPEND;
+io.FileLock = class FileLock extends core.Object {
+  new(index) {
+    this.index = index;
+  }
+  toString() {
+    return {
+      0: "FileLock.SHARED",
+      1: "FileLock.EXCLUSIVE"
+    }[this.index];
+  }
+};
+dart.setSignature(io.FileLock, {
+  fields: () => ({index: core.int})
+});
+dart.defineEnumValues(io.FileLock, [
+  'SHARED',
+  'EXCLUSIVE'
+]);
+io.File = class File extends core.Object {
+  static new(path) {
+    return new io._File(path);
+  }
+  static fromUri(uri) {
+    return io.File.new(uri.toFilePath());
+  }
+};
+io.File[dart.implements] = () => [io.FileSystemEntity];
+dart.setSignature(io.File, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.File, [core.String]),
+    fromUri: dart.definiteFunctionType(io.File, [core.Uri])
+  })
+});
+io.RandomAccessFile = class RandomAccessFile extends core.Object {};
+io.FileSystemException = class FileSystemException extends core.Object {
+  new(message, path, osError) {
+    if (message === void 0) message = "";
+    if (path === void 0) path = "";
+    if (osError === void 0) osError = null;
+    this.message = message;
+    this.path = path;
+    this.osError = osError;
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    sb.write("FileSystemException");
+    if (!dart.test(this.message[dartx.isEmpty])) {
+      sb.write(dart.str`: ${this.message}`);
+      if (this.path != null) {
+        sb.write(dart.str`, path = '${this.path}'`);
+      }
+      if (this.osError != null) {
+        sb.write(dart.str` (${this.osError})`);
+      }
+    } else if (this.osError != null) {
+      sb.write(dart.str`: ${this.osError}`);
+      if (this.path != null) {
+        sb.write(dart.str`, path = '${this.path}'`);
+      }
+    } else if (this.path != null) {
+      sb.write(dart.str`: ${this.path}`);
+    }
+    return sb.toString();
+  }
+};
+io.FileSystemException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.FileSystemException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.FileSystemException, [], [core.String, core.String, io.OSError])}),
+  fields: () => ({
+    message: core.String,
+    path: core.String,
+    osError: io.OSError
+  })
+});
+io._BLOCK_SIZE = 64 * 1024;
+const _closeCompleter = Symbol('_closeCompleter');
+const _path$ = Symbol('_path');
+const _position$0 = Symbol('_position');
+const _end$0 = Symbol('_end');
+const _controller$0 = Symbol('_controller');
+const _openedFile = Symbol('_openedFile');
+const _unsubscribed = Symbol('_unsubscribed');
+const _readInProgress = Symbol('_readInProgress');
+const _atEnd = Symbol('_atEnd');
+const _setupController = Symbol('_setupController');
+const _start$2 = Symbol('_start');
+const _readBlock = Symbol('_readBlock');
+const _closeFile = Symbol('_closeFile');
+io._FileStream = class _FileStream extends async.Stream$(core.List$(core.int)) {
+  new(path, position, end) {
+    this[_closeCompleter] = async.Completer.new();
+    this[_path$] = path;
+    this[_position$0] = position;
+    this[_end$0] = end;
+    this[_controller$0] = null;
+    this[_openedFile] = null;
+    this[_unsubscribed] = false;
+    this[_readInProgress] = true;
+    this[_closed] = false;
+    this[_atEnd] = false;
+    super.new();
+    if (this[_position$0] == null) this[_position$0] = 0;
+  }
+  forStdin() {
+    this[_closeCompleter] = async.Completer.new();
+    this[_position$0] = 0;
+    this[_controller$0] = null;
+    this[_path$] = null;
+    this[_openedFile] = null;
+    this[_end$0] = null;
+    this[_unsubscribed] = false;
+    this[_readInProgress] = true;
+    this[_closed] = false;
+    this[_atEnd] = false;
+    super.new();
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    this[_setupController]();
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  [_setupController]() {
+    this[_controller$0] = StreamControllerOfListOfint().new({sync: true, onListen: dart.bind(this, _start$2), onResume: dart.bind(this, _readBlock), onCancel: dart.fn(() => {
+        this[_unsubscribed] = true;
+        return this[_closeFile]();
+      }, VoidToFuture())});
+  }
+  [_closeFile]() {
+    if (dart.test(this[_readInProgress]) || dart.test(this[_closed])) {
+      return this[_closeCompleter].future;
+    }
+    this[_closed] = true;
+    const done = (function() {
+      this[_closeCompleter].complete();
+      this[_controller$0].close();
+    }).bind(this);
+    dart.fn(done, VoidTovoid$());
+    this[_openedFile].close().catchError(dart.bind(this[_controller$0], 'addError')).whenComplete(done);
+    return this[_closeCompleter].future;
+  }
+  [_readBlock]() {
+    if (dart.test(this[_readInProgress])) return;
+    if (dart.test(this[_atEnd])) {
+      this[_closeFile]();
+      return;
+    }
+    this[_readInProgress] = true;
+    let readBytes = io._BLOCK_SIZE;
+    if (this[_end$0] != null) {
+      readBytes = math.min(core.int)(readBytes, dart.notNull(this[_end$0]) - dart.notNull(this[_position$0]));
+      if (dart.notNull(readBytes) < 0) {
+        this[_readInProgress] = false;
+        if (!dart.test(this[_unsubscribed])) {
+          this[_controller$0].addError(new core.RangeError(dart.str`Bad end position: ${this[_end$0]}`));
+          this[_closeFile]();
+          this[_unsubscribed] = true;
+        }
+        return;
+      }
+    }
+    this[_openedFile].read(readBytes).then(dart.dynamic)(dart.fn(block => {
+      this[_readInProgress] = false;
+      if (dart.test(this[_unsubscribed])) {
+        this[_closeFile]();
+        return;
+      }
+      this[_position$0] = dart.notNull(this[_position$0]) + dart.notNull(block[dartx.length]);
+      if (dart.notNull(block[dartx.length]) < dart.notNull(readBytes) || this[_end$0] != null && this[_position$0] == this[_end$0]) {
+        this[_atEnd] = true;
+      }
+      if (!dart.test(this[_atEnd]) && !dart.test(this[_controller$0].isPaused)) {
+        this[_readBlock]();
+      }
+      this[_controller$0].add(block);
+      if (dart.test(this[_atEnd])) {
+        this[_closeFile]();
+      }
+    }, ListOfintToNull())).catchError(dart.fn((e, s) => {
+      if (!dart.test(this[_unsubscribed])) {
+        this[_controller$0].addError(e, core.StackTrace._check(s));
+        this[_closeFile]();
+        this[_unsubscribed] = true;
+      }
+    }, dynamicAnddynamicToNull()));
+  }
+  [_start$2]() {
+    if (dart.notNull(this[_position$0]) < 0) {
+      this[_controller$0].addError(new core.RangeError(dart.str`Bad start position: ${this[_position$0]}`));
+      this[_controller$0].close();
+      this[_closeCompleter].complete();
+      return;
+    }
+    const onReady = (function(file) {
+      this[_openedFile] = file;
+      this[_readInProgress] = false;
+      this[_readBlock]();
+    }).bind(this);
+    dart.fn(onReady, RandomAccessFileTovoid());
+    const onOpenFile = (function(file) {
+      if (dart.notNull(this[_position$0]) > 0) {
+        file.setPosition(this[_position$0]).then(dart.void)(onReady, {onError: dart.fn((e, s) => {
+            this[_controller$0].addError(e, core.StackTrace._check(s));
+            this[_readInProgress] = false;
+            this[_closeFile]();
+          }, dynamicAnddynamicToNull())});
+      } else {
+        onReady(file);
+      }
+    }).bind(this);
+    dart.fn(onOpenFile, RandomAccessFileTovoid());
+    const openFailed = (function(error, stackTrace) {
+      this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
+      this[_controller$0].close();
+      this[_closeCompleter].complete();
+    }).bind(this);
+    dart.fn(openFailed, dynamicAnddynamicTovoid$());
+    if (this[_path$] != null) {
+      io.File.new(this[_path$]).open({mode: io.FileMode.READ}).then(dart.void)(onOpenFile, {onError: openFailed});
+    } else {
+      try {
+        onOpenFile(io._File._openStdioSync(0));
+      } catch (e) {
+        let s = dart.stackTrace(e);
+        openFailed(e, s);
+      }
+
+    }
+  }
+};
+dart.addSimpleTypeTests(io._FileStream);
+dart.defineNamedConstructor(io._FileStream, 'forStdin');
+dart.setSignature(io._FileStream, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._FileStream, [core.String, core.int, core.int]),
+    forStdin: dart.definiteFunctionType(io._FileStream, [])
+  }),
+  fields: () => ({
+    [_controller$0]: StreamControllerOfListOfint(),
+    [_path$]: core.String,
+    [_openedFile]: io.RandomAccessFile,
+    [_position$0]: core.int,
+    [_end$0]: core.int,
+    [_closeCompleter]: async.Completer,
+    [_unsubscribed]: core.bool,
+    [_readInProgress]: core.bool,
+    [_closed]: core.bool,
+    [_atEnd]: core.bool
+  }),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    [_setupController]: dart.definiteFunctionType(dart.void, []),
+    [_closeFile]: dart.definiteFunctionType(async.Future, []),
+    [_readBlock]: dart.definiteFunctionType(dart.void, []),
+    [_start$2]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _file = Symbol('_file');
+const _openFuture = Symbol('_openFuture');
+io._FileStreamConsumer = class _FileStreamConsumer extends async.StreamConsumer$(core.List$(core.int)) {
+  new(file, mode) {
+    this[_file] = file;
+    this[_openFuture] = null;
+    this[_openFuture] = this[_file].open({mode: mode});
+  }
+  fromStdio(fd) {
+    this[_file] = null;
+    this[_openFuture] = null;
+    dart.assert(1 <= dart.notNull(fd) && dart.notNull(fd) <= 2);
+    this[_openFuture] = FutureOfRandomAccessFile().value(io._File._openStdioSync(fd));
+  }
+  addStream(stream) {
+    let completer = CompleterOfFile().sync();
+    this[_openFuture].then(dart.dynamic)(dart.fn(openedFile => {
+      let _subscription = null;
+      function error(e, stackTrace) {
+        if (stackTrace === void 0) stackTrace = null;
+        dart.dsend(_subscription, 'cancel');
+        openedFile.close();
+        completer.completeError(e, stackTrace);
+      }
+      dart.fn(error, dynamic__Tovoid());
+      _subscription = stream.listen(dart.fn(d => {
+        dart.dsend(_subscription, 'pause');
+        try {
+          openedFile.writeFrom(d, 0, d[dartx.length]).then(dart.dynamic)(dart.fn(_ => dart.dsend(_subscription, 'resume'), RandomAccessFileToFutureOr()), {onError: error});
+        } catch (e) {
+          let stackTrace = dart.stackTrace(e);
+          error(e, stackTrace);
+        }
+
+      }, ListOfintToNull()), {onDone: dart.fn(() => {
+          completer.complete(this[_file]);
+        }, VoidToNull()), onError: error, cancelOnError: true});
+    }, RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
+    return completer.future;
+  }
+  close() {
+    return this[_openFuture].then(io.File)(dart.fn(openedFile => openedFile.close(), RandomAccessFileToFutureOfRandomAccessFile()));
+  }
+};
+dart.addSimpleTypeTests(io._FileStreamConsumer);
+dart.defineNamedConstructor(io._FileStreamConsumer, 'fromStdio');
+dart.setSignature(io._FileStreamConsumer, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._FileStreamConsumer, [io.File, io.FileMode]),
+    fromStdio: dart.definiteFunctionType(io._FileStreamConsumer, [core.int])
+  }),
+  fields: () => ({
+    [_file]: io.File,
+    [_openFuture]: FutureOfRandomAccessFile()
+  }),
+  methods: () => ({
+    addStream: dart.definiteFunctionType(async.Future$(io.File), [StreamOfListOfint()]),
+    close: dart.definiteFunctionType(async.Future$(io.File), [])
+  })
+});
+const _tryDecode = Symbol('_tryDecode');
+let const$54;
+let const$55;
+io._File = class _File extends io.FileSystemEntity {
+  new(path) {
+    this.path = path;
+    if (!(typeof this.path == 'string')) {
+      dart.throw(new core.ArgumentError(dart.str`${core.Error.safeToString(this.path)} ` + 'is not a String'));
+    }
+  }
+  exists() {
+    return io._IOService._dispatch(io._FILE_EXISTS, JSArrayOfString().of([this.path])).then(core.bool)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot check existence", this.path));
+      }
+      return FutureOrOfbool()._check(response);
+    }, dynamicToFutureOrOfbool()));
+  }
+  static _exists(path) {
+    dart.throw(new core.UnsupportedError("File._exists"));
+  }
+  existsSync() {
+    let result = io._File._exists(this.path);
+    io._File.throwIfError(result, "Cannot check existence of file", this.path);
+    return core.bool._check(result);
+  }
+  get absolute() {
+    return io.File.new(this[_absolutePath]);
+  }
+  stat() {
+    return io.FileStat.stat(this.path);
+  }
+  statSync() {
+    return io.FileStat.statSync(this.path);
+  }
+  create(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    let result = dart.test(recursive) ? this.parent.create({recursive: true}) : async.Future.value(null);
+    return result.then(dart.dynamic)(dart.fn(_ => io._IOService._dispatch(io._FILE_CREATE, JSArrayOfString().of([this.path])), dynamicToFuture())).then(io._File)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot create file", this.path));
+      }
+      return this;
+    }, dynamicTo_File()));
+  }
+  static _create(path) {
+    dart.throw(new core.UnsupportedError("File._create"));
+  }
+  static _createLink(path, target) {
+    dart.throw(new core.UnsupportedError("File._createLink"));
+  }
+  static _linkTarget(path) {
+    dart.throw(new core.UnsupportedError("File._linkTarget"));
+  }
+  createSync(opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      this.parent.createSync({recursive: true});
+    }
+    let result = io._File._create(this.path);
+    io._File.throwIfError(result, "Cannot create file", this.path);
+  }
+  [_delete](opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      return io.Directory.new(this.path).delete({recursive: true}).then(io._File)(dart.fn(_ => this, FileSystemEntityTo_File()));
+    }
+    return io._IOService._dispatch(io._FILE_DELETE, JSArrayOfString().of([this.path])).then(io._File)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot delete file", this.path));
+      }
+      return this;
+    }, dynamicTo_File()));
+  }
+  static _deleteNative(path) {
+    dart.throw(new core.UnsupportedError("File._deleteNative"));
+  }
+  static _deleteLinkNative(path) {
+    dart.throw(new core.UnsupportedError("File._deleteLinkNative"));
+  }
+  [_deleteSync](opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      return io.Directory.new(this.path).deleteSync({recursive: true});
+    }
+    let result = io._File._deleteNative(this.path);
+    io._File.throwIfError(result, "Cannot delete file", this.path);
+  }
+  rename(newPath) {
+    return io._IOService._dispatch(io._FILE_RENAME, JSArrayOfString().of([this.path, newPath])).then(io.File)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, dart.str`Cannot rename file to '${newPath}'`, this.path));
+      }
+      return io.File.new(newPath);
+    }, dynamicToFile()));
+  }
+  static _rename(oldPath, newPath) {
+    dart.throw(new core.UnsupportedError("File._rename"));
+  }
+  static _renameLink(oldPath, newPath) {
+    dart.throw(new core.UnsupportedError("File._renameLink"));
+  }
+  renameSync(newPath) {
+    let result = io._File._rename(this.path, newPath);
+    io._File.throwIfError(result, dart.str`Cannot rename file to '${newPath}'`, this.path);
+    return io.File.new(newPath);
+  }
+  copy(newPath) {
+    return io._IOService._dispatch(io._FILE_COPY, JSArrayOfString().of([this.path, newPath])).then(io.File)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, dart.str`Cannot copy file to '${newPath}'`, this.path));
+      }
+      return io.File.new(newPath);
+    }, dynamicToFile()));
+  }
+  static _copy(oldPath, newPath) {
+    dart.throw(new core.UnsupportedError("File._copy"));
+  }
+  copySync(newPath) {
+    let result = io._File._copy(this.path, newPath);
+    io._File.throwIfError(result, dart.str`Cannot copy file to '${newPath}'`, this.path);
+    return io.File.new(newPath);
+  }
+  open(opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.READ;
+    if (!dart.equals(mode, io.FileMode.READ) && !dart.equals(mode, io.FileMode.WRITE) && !dart.equals(mode, io.FileMode.APPEND) && !dart.equals(mode, io.FileMode.WRITE_ONLY) && !dart.equals(mode, io.FileMode.WRITE_ONLY_APPEND)) {
+      return FutureOfRandomAccessFile().error(new core.ArgumentError('Invalid file mode for this operation'));
+    }
+    return io._IOService._dispatch(io._FILE_OPEN, JSArrayOfObject().of([this.path, mode[_mode]])).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot open file", this.path));
+      }
+      return new io._RandomAccessFile(core.int._check(response), this.path);
+    }, dynamicTo_RandomAccessFile()));
+  }
+  length() {
+    return io._IOService._dispatch(io._FILE_LENGTH_FROM_PATH, JSArrayOfString().of([this.path])).then(core.int)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot retrieve length of file", this.path));
+      }
+      return FutureOrOfint()._check(response);
+    }, dynamicToFutureOrOfint()));
+  }
+  static _lengthFromPath(path) {
+    dart.throw(new core.UnsupportedError("File._lengthFromPath"));
+  }
+  lengthSync() {
+    let result = io._File._lengthFromPath(this.path);
+    io._File.throwIfError(result, "Cannot retrieve length of file", this.path);
+    return core.int._check(result);
+  }
+  lastModified() {
+    return io._IOService._dispatch(io._FILE_LAST_MODIFIED, JSArrayOfString().of([this.path])).then(core.DateTime)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "Cannot retrieve modification time", this.path));
+      }
+      return new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(response));
+    }, dynamicToDateTime()));
+  }
+  static _lastModified(path) {
+    dart.throw(new core.UnsupportedError("File._lastModified"));
+  }
+  lastModifiedSync() {
+    let ms = io._File._lastModified(this.path);
+    io._File.throwIfError(ms, "Cannot retrieve modification time", this.path);
+    return new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(ms));
+  }
+  static _open(path, mode) {
+    dart.throw(new core.UnsupportedError("File._open"));
+  }
+  openSync(opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.READ;
+    if (!dart.equals(mode, io.FileMode.READ) && !dart.equals(mode, io.FileMode.WRITE) && !dart.equals(mode, io.FileMode.APPEND) && !dart.equals(mode, io.FileMode.WRITE_ONLY) && !dart.equals(mode, io.FileMode.WRITE_ONLY_APPEND)) {
+      dart.throw(new core.ArgumentError('Invalid file mode for this operation'));
+    }
+    let id = io._File._open(this.path, mode[_mode]);
+    io._File.throwIfError(id, "Cannot open file", this.path);
+    return new io._RandomAccessFile(core.int._check(id), this.path);
+  }
+  static _openStdio(fd) {
+    dart.throw(new core.UnsupportedError("File._openStdio"));
+  }
+  static _openStdioSync(fd) {
+    let id = io._File._openStdio(fd);
+    if (id == 0) {
+      dart.throw(new io.FileSystemException(dart.str`Cannot open stdio file for: ${fd}`));
+    }
+    return new io._RandomAccessFile(id, "");
+  }
+  openRead(start, end) {
+    if (start === void 0) start = null;
+    if (end === void 0) end = null;
+    return new io._FileStream(this.path, start, end);
+  }
+  openWrite(opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    if (!dart.equals(mode, io.FileMode.WRITE) && !dart.equals(mode, io.FileMode.APPEND) && !dart.equals(mode, io.FileMode.WRITE_ONLY) && !dart.equals(mode, io.FileMode.WRITE_ONLY_APPEND)) {
+      dart.throw(new core.ArgumentError('Invalid file mode for this operation'));
+    }
+    let consumer = new io._FileStreamConsumer(this, mode);
+    return io.IOSink.new(consumer, {encoding: encoding});
+  }
+  readAsBytes() {
+    function readDataChunked(file) {
+      let builder = io.BytesBuilder.new({copy: false});
+      let completer = async.Completer.new();
+      function read() {
+        dart.dsend(dart.dsend(file, 'read', io._BLOCK_SIZE), 'then', dart.fn(data => {
+          if (dart.test(dart.dsend(dart.dload(data, 'length'), '>', 0))) {
+            builder.add(ListOfint()._check(data));
+            read();
+          } else {
+            completer.complete(builder.takeBytes());
+          }
+        }, dynamicToNull$()), {onError: dart.bind(completer, 'completeError')});
+      }
+      dart.fn(read, VoidTovoid$());
+      read();
+      return FutureOfListOfint()._check(completer.future);
+    }
+    dart.fn(readDataChunked, dynamicToFutureOfListOfint());
+    return this.open().then(ListOfint())(dart.fn(file => file.length().then(ListOfint())(dart.fn(length => {
+      if (length == 0) {
+        return readDataChunked(file);
+      }
+      return file.read(length);
+    }, intToFutureOfListOfint())).whenComplete(dart.bind(file, 'close')), RandomAccessFileToFutureOfListOfint()));
+  }
+  readAsBytesSync() {
+    let opened = this.openSync();
+    try {
+      let data = null;
+      let length = opened.lengthSync();
+      if (length == 0) {
+        let builder = io.BytesBuilder.new({copy: false});
+        do {
+          data = opened.readSync(io._BLOCK_SIZE);
+          if (dart.test(dart.dsend(dart.dload(data, 'length'), '>', 0))) builder.add(ListOfint()._check(data));
+        } while (dart.test(dart.dsend(dart.dload(data, 'length'), '>', 0)));
+        data = builder.takeBytes();
+      } else {
+        data = opened.readSync(length);
+      }
+      return ListOfint()._check(data);
+    } finally {
+      opened.closeSync();
+    }
+  }
+  [_tryDecode](bytes, encoding) {
+    try {
+      return encoding.decode(bytes);
+    } catch (_) {
+      dart.throw(new io.FileSystemException(dart.str`Failed to decode data using encoding '${encoding.name}'`, this.path));
+    }
+
+  }
+  readAsString(opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return this.readAsBytes().then(core.String)(dart.fn(bytes => this[_tryDecode](bytes, encoding), ListOfintToString()));
+  }
+  readAsStringSync(opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return this[_tryDecode](this.readAsBytesSync(), encoding);
+  }
+  readAsLines(opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return this.readAsString({encoding: encoding}).then(ListOfString())(dart.bind(const$54 || (const$54 = dart.const(new convert.LineSplitter())), 'convert'));
+  }
+  readAsLinesSync(opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return (const$55 || (const$55 = dart.const(new convert.LineSplitter()))).convert(this.readAsStringSync({encoding: encoding}));
+  }
+  writeAsBytes(bytes, opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
+    let flush = opts && 'flush' in opts ? opts.flush : false;
+    return this.open({mode: mode}).then(io.File)(dart.fn(file => file.writeFrom(bytes, 0, bytes[dartx.length]).then(dart.dynamic)(dart.fn(_ => {
+      if (dart.test(flush)) return file.flush().then(io._File)(dart.fn(_ => this, RandomAccessFileTo_File()));
+      return this;
+    }, RandomAccessFileToObject())).whenComplete(dart.bind(file, 'close')), RandomAccessFileToFutureOrOfFile()));
+  }
+  writeAsBytesSync(bytes, opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
+    let flush = opts && 'flush' in opts ? opts.flush : false;
+    let opened = this.openSync({mode: mode});
+    try {
+      opened.writeFromSync(bytes, 0, bytes[dartx.length]);
+      if (dart.test(flush)) opened.flushSync();
+    } finally {
+      opened.closeSync();
+    }
+  }
+  writeAsString(contents, opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    let flush = opts && 'flush' in opts ? opts.flush : false;
+    try {
+      return this.writeAsBytes(encoding.encode(contents), {mode: mode, flush: flush});
+    } catch (e) {
+      return FutureOfFile().error(e);
+    }
+
+  }
+  writeAsStringSync(contents, opts) {
+    let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    let flush = opts && 'flush' in opts ? opts.flush : false;
+    this.writeAsBytesSync(encoding.encode(contents), {mode: mode, flush: flush});
+  }
+  toString() {
+    return dart.str`File: '${this.path}'`;
+  }
+  static throwIfError(result, msg, path) {
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException(msg, path, result));
+    }
+  }
+};
+io._File[dart.implements] = () => [io.File];
+dart.setSignature(io._File, {
+  constructors: () => ({new: dart.definiteFunctionType(io._File, [core.String])}),
+  fields: () => ({path: core.String}),
+  getters: () => ({absolute: dart.definiteFunctionType(io.File, [])}),
+  methods: () => ({
+    exists: dart.definiteFunctionType(async.Future$(core.bool), []),
+    existsSync: dart.definiteFunctionType(core.bool, []),
+    stat: dart.definiteFunctionType(async.Future$(io.FileStat), []),
+    statSync: dart.definiteFunctionType(io.FileStat, []),
+    create: dart.definiteFunctionType(async.Future$(io.File), [], {recursive: core.bool}),
+    createSync: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
+    [_delete]: dart.definiteFunctionType(async.Future$(io.File), [], {recursive: core.bool}),
+    [_deleteSync]: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
+    rename: dart.definiteFunctionType(async.Future$(io.File), [core.String]),
+    renameSync: dart.definiteFunctionType(io.File, [core.String]),
+    copy: dart.definiteFunctionType(async.Future$(io.File), [core.String]),
+    copySync: dart.definiteFunctionType(io.File, [core.String]),
+    open: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [], {mode: io.FileMode}),
+    length: dart.definiteFunctionType(async.Future$(core.int), []),
+    lengthSync: dart.definiteFunctionType(core.int, []),
+    lastModified: dart.definiteFunctionType(async.Future$(core.DateTime), []),
+    lastModifiedSync: dart.definiteFunctionType(core.DateTime, []),
+    openSync: dart.definiteFunctionType(io.RandomAccessFile, [], {mode: io.FileMode}),
+    openRead: dart.definiteFunctionType(async.Stream$(core.List$(core.int)), [], [core.int, core.int]),
+    openWrite: dart.definiteFunctionType(io.IOSink, [], {mode: io.FileMode, encoding: convert.Encoding}),
+    readAsBytes: dart.definiteFunctionType(async.Future$(core.List$(core.int)), []),
+    readAsBytesSync: dart.definiteFunctionType(core.List$(core.int), []),
+    [_tryDecode]: dart.definiteFunctionType(core.String, [ListOfint(), convert.Encoding]),
+    readAsString: dart.definiteFunctionType(async.Future$(core.String), [], {encoding: convert.Encoding}),
+    readAsStringSync: dart.definiteFunctionType(core.String, [], {encoding: convert.Encoding}),
+    readAsLines: dart.definiteFunctionType(async.Future$(core.List$(core.String)), [], {encoding: convert.Encoding}),
+    readAsLinesSync: dart.definiteFunctionType(core.List$(core.String), [], {encoding: convert.Encoding}),
+    writeAsBytes: dart.definiteFunctionType(async.Future$(io.File), [ListOfint()], {mode: io.FileMode, flush: core.bool}),
+    writeAsBytesSync: dart.definiteFunctionType(dart.void, [ListOfint()], {mode: io.FileMode, flush: core.bool}),
+    writeAsString: dart.definiteFunctionType(async.Future$(io.File), [core.String], {mode: io.FileMode, encoding: convert.Encoding, flush: core.bool}),
+    writeAsStringSync: dart.definiteFunctionType(dart.void, [core.String], {mode: io.FileMode, encoding: convert.Encoding, flush: core.bool})
+  }),
+  statics: () => ({
+    _exists: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _create: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _createLink: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    _linkTarget: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _deleteNative: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _deleteLinkNative: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _rename: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    _renameLink: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    _copy: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    _lengthFromPath: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _lastModified: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    _open: dart.definiteFunctionType(dart.dynamic, [core.String, core.int]),
+    _openStdio: dart.definiteFunctionType(core.int, [core.int]),
+    _openStdioSync: dart.definiteFunctionType(io.RandomAccessFile, [core.int]),
+    throwIfError: dart.definiteFunctionType(dart.dynamic, [core.Object, core.String, core.String])
+  }),
+  names: ['_exists', '_create', '_createLink', '_linkTarget', '_deleteNative', '_deleteLinkNative', '_rename', '_renameLink', '_copy', '_lengthFromPath', '_lastModified', '_open', '_openStdio', '_openStdioSync', 'throwIfError']
+});
+io._RandomAccessFileOps = class _RandomAccessFileOps extends core.Object {
+  static new(pointer) {
+    dart.throw(new core.UnsupportedError("RandomAccessFile"));
+  }
+};
+dart.setSignature(io._RandomAccessFileOps, {
+  constructors: () => ({new: dart.definiteFunctionType(io._RandomAccessFileOps, [core.int])})
+});
+const _asyncDispatched = Symbol('_asyncDispatched');
+const _fileService = Symbol('_fileService');
+const _resourceInfo = Symbol('_resourceInfo');
+const _maybeConnectHandler = Symbol('_maybeConnectHandler');
+const _maybePerformCleanup = Symbol('_maybePerformCleanup');
+const _dispatch = Symbol('_dispatch');
+const _checkAvailable = Symbol('_checkAvailable');
+io._RandomAccessFile = class _RandomAccessFile extends core.Object {
+  new(pointer, path) {
+    this.path = path;
+    this[_asyncDispatched] = false;
+    this[_fileService] = null;
+    this[_resourceInfo] = null;
+    this[_ops] = null;
+    this.closed = false;
+    this[_ops] = io._RandomAccessFileOps.new(pointer);
+    this[_resourceInfo] = new io._FileResourceInfo(this);
+    this[_maybeConnectHandler]();
+  }
+  [_maybePerformCleanup]() {
+    if (dart.test(this.closed)) {
+      io._FileResourceInfo.FileClosed(this[_resourceInfo]);
+    }
+  }
+  [_maybeConnectHandler]() {
+    if (!dart.test(io._RandomAccessFile._connectedResourceHandler)) {
+      developer.registerExtension('ext.dart.io.getOpenFiles', io._FileResourceInfo.getOpenFiles);
+      developer.registerExtension('ext.dart.io.getFileByID', io._FileResourceInfo.getFileInfoMapByID);
+      io._RandomAccessFile._connectedResourceHandler = true;
+    }
+  }
+  close() {
+    return this[_dispatch](io._FILE_CLOSE, [null], {markClosed: true}).then(io._RandomAccessFile)(dart.fn(result => {
+      if (!dart.equals(result, -1)) {
+        this.closed = dart.test(this.closed) || dart.equals(result, 0);
+        this[_maybePerformCleanup]();
+        return this;
+      } else {
+        dart.throw(new io.FileSystemException("Cannot close file", this.path));
+      }
+    }, dynamicTo_RandomAccessFile()));
+  }
+  closeSync() {
+    this[_checkAvailable]();
+    let id = this[_ops].close();
+    if (id == -1) {
+      dart.throw(new io.FileSystemException("Cannot close file", this.path));
+    }
+    this.closed = dart.test(this.closed) || id == 0;
+    this[_maybePerformCleanup]();
+  }
+  readByte() {
+    return this[_dispatch](io._FILE_READ_BYTE, [null]).then(core.int)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "readByte failed", this.path));
+      }
+      this[_resourceInfo].addRead(1);
+      return FutureOrOfint()._check(response);
+    }, dynamicToFutureOrOfint()));
+  }
+  readByteSync() {
+    this[_checkAvailable]();
+    let result = this[_ops].readByte();
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("readByte failed", this.path, result));
+    }
+    this[_resourceInfo].addRead(1);
+    return core.int._check(result);
+  }
+  read(bytes) {
+    if (!(typeof bytes == 'number')) {
+      dart.throw(new core.ArgumentError(bytes));
+    }
+    return this[_dispatch](io._FILE_READ, JSArrayOfint().of([null, bytes])).then(ListOfint())(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "read failed", this.path));
+      }
+      this[_resourceInfo].addRead(core.int._check(dart.dload(dart.dindex(response, 1), 'length')));
+      return FutureOrOfListOfint()._check(dart.dindex(response, 1));
+    }, dynamicToFutureOrOfListOfint()));
+  }
+  readSync(bytes) {
+    this[_checkAvailable]();
+    if (!(typeof bytes == 'number')) {
+      dart.throw(new core.ArgumentError(bytes));
+    }
+    let result = this[_ops].read(bytes);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("readSync failed", this.path, result));
+    }
+    this[_resourceInfo].addRead(core.int._check(dart.dload(result, 'length')));
+    return ListOfint()._check(result);
+  }
+  readInto(buffer, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError());
+    }
+    end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
+    if (end == start) {
+      return FutureOfint().value(0);
+    }
+    let length = dart.notNull(end) - dart.notNull(start);
+    return this[_dispatch](io._FILE_READ_INTO, JSArrayOfint().of([null, length])).then(core.int)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "readInto failed", this.path));
+      }
+      let read = dart.dindex(response, 1);
+      let data = dart.dindex(response, 2);
+      buffer[dartx.setRange](start, dart.asInt(dart.notNull(start) + dart.notNull(core.num._check(read))), IterableOfint()._check(data));
+      this[_resourceInfo].addRead(core.int._check(read));
+      return FutureOrOfint()._check(read);
+    }, dynamicToFutureOrOfint()));
+  }
+  readIntoSync(buffer, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    this[_checkAvailable]();
+    if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError());
+    }
+    end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
+    if (end == start) {
+      return 0;
+    }
+    let result = this[_ops].readInto(buffer, start, end);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("readInto failed", this.path, result));
+    }
+    this[_resourceInfo].addRead(core.int._check(result));
+    return core.int._check(result);
+  }
+  writeByte(value) {
+    if (!(typeof value == 'number')) {
+      dart.throw(new core.ArgumentError(value));
+    }
+    return this[_dispatch](io._FILE_WRITE_BYTE, JSArrayOfint().of([null, value])).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "writeByte failed", this.path));
+      }
+      this[_resourceInfo].addWrite(1);
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  writeByteSync(value) {
+    this[_checkAvailable]();
+    if (!(typeof value == 'number')) {
+      dart.throw(new core.ArgumentError(value));
+    }
+    let result = this[_ops].writeByte(value);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("writeByte failed", this.path, result));
+    }
+    this[_resourceInfo].addWrite(1);
+    return core.int._check(result);
+  }
+  writeFrom(buffer, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError("Invalid arguments to writeFrom"));
+    }
+    end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
+    if (end == start) {
+      return FutureOfRandomAccessFile().value(this);
+    }
+    let result = null;
+    try {
+      result = io._ensureFastAndSerializableByteData(buffer, start, end);
+    } catch (e) {
+      return FutureOfRandomAccessFile().error(e);
+    }
+
+    let request = core.List.new(4);
+    request[dartx._set](0, null);
+    request[dartx._set](1, result.buffer);
+    request[dartx._set](2, result.start);
+    request[dartx._set](3, dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
+    return this[_dispatch](io._FILE_WRITE_FROM, request).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "writeFrom failed", this.path));
+      }
+      this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  writeFromSync(buffer, start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = null;
+    this[_checkAvailable]();
+    if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError("Invalid arguments to writeFromSync"));
+    }
+    end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
+    if (end == start) {
+      return;
+    }
+    let bufferAndStart = io._ensureFastAndSerializableByteData(buffer, start, end);
+    let result = this[_ops].writeFrom(ListOfint()._check(bufferAndStart.buffer), bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("writeFrom failed", this.path, result));
+    }
+    this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
+  }
+  writeString(string, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    if (!convert.Encoding.is(encoding)) {
+      dart.throw(new core.ArgumentError(encoding));
+    }
+    let data = encoding.encode(string);
+    return this.writeFrom(data, 0, data[dartx.length]);
+  }
+  writeStringSync(string, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    if (!convert.Encoding.is(encoding)) {
+      dart.throw(new core.ArgumentError(encoding));
+    }
+    let data = encoding.encode(string);
+    this.writeFromSync(data, 0, data[dartx.length]);
+  }
+  position() {
+    return this[_dispatch](io._FILE_POSITION, [null]).then(core.int)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "position failed", this.path));
+      }
+      return FutureOrOfint()._check(response);
+    }, dynamicToFutureOrOfint()));
+  }
+  positionSync() {
+    this[_checkAvailable]();
+    let result = this[_ops].position();
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("position failed", this.path, result));
+    }
+    return core.int._check(result);
+  }
+  setPosition(position) {
+    return this[_dispatch](io._FILE_SET_POSITION, JSArrayOfint().of([null, position])).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "setPosition failed", this.path));
+      }
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  setPositionSync(position) {
+    this[_checkAvailable]();
+    let result = this[_ops].setPosition(position);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("setPosition failed", this.path, result));
+    }
+  }
+  truncate(length) {
+    return this[_dispatch](io._FILE_TRUNCATE, JSArrayOfint().of([null, length])).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "truncate failed", this.path));
+      }
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  truncateSync(length) {
+    this[_checkAvailable]();
+    let result = this[_ops].truncate(length);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("truncate failed", this.path, result));
+    }
+  }
+  length() {
+    return this[_dispatch](io._FILE_LENGTH, [null]).then(core.int)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "length failed", this.path));
+      }
+      return FutureOrOfint()._check(response);
+    }, dynamicToFutureOrOfint()));
+  }
+  lengthSync() {
+    this[_checkAvailable]();
+    let result = this[_ops].length();
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("length failed", this.path, result));
+    }
+    return core.int._check(result);
+  }
+  flush() {
+    return this[_dispatch](io._FILE_FLUSH, [null]).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, "flush failed", this.path));
+      }
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  flushSync() {
+    this[_checkAvailable]();
+    let result = this[_ops].flush();
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException("flush failed", this.path, result));
+    }
+  }
+  lock(mode, start, end) {
+    if (mode === void 0) mode = io.FileLock.EXCLUSIVE;
+    if (start === void 0) start = 0;
+    if (end === void 0) end = -1;
+    if (!io.FileLock.is(mode) || !(typeof start == 'number') || !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError());
+    }
+    if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end != -1 && dart.notNull(start) >= dart.notNull(end)) {
+      dart.throw(new core.ArgumentError());
+    }
+    let lock = dart.equals(mode, io.FileLock.EXCLUSIVE) ? io._RandomAccessFile.LOCK_EXCLUSIVE : io._RandomAccessFile.LOCK_SHARED;
+    return this[_dispatch](io._FILE_LOCK, JSArrayOfint().of([null, lock, start, end])).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, 'lock failed', this.path));
+      }
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  unlock(start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = -1;
+    if (!(typeof start == 'number') || !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError());
+    }
+    if (start == end) {
+      dart.throw(new core.ArgumentError());
+    }
+    return this[_dispatch](io._FILE_LOCK, JSArrayOfint().of([null, io._RandomAccessFile.LOCK_UNLOCK, start, end])).then(io._RandomAccessFile)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        dart.throw(io._exceptionFromResponse(response, 'unlock failed', this.path));
+      }
+      return this;
+    }, dynamicTo_RandomAccessFile()));
+  }
+  lockSync(mode, start, end) {
+    if (mode === void 0) mode = io.FileLock.EXCLUSIVE;
+    if (start === void 0) start = 0;
+    if (end === void 0) end = -1;
+    this[_checkAvailable]();
+    if (!io.FileLock.is(mode) || !(typeof start == 'number') || !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError());
+    }
+    if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end != -1 && dart.notNull(start) >= dart.notNull(end)) {
+      dart.throw(new core.ArgumentError());
+    }
+    let lock = dart.equals(mode, io.FileLock.EXCLUSIVE) ? io._RandomAccessFile.LOCK_EXCLUSIVE : io._RandomAccessFile.LOCK_SHARED;
+    let result = this[_ops].lock(lock, start, end);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException('lock failed', this.path, result));
+    }
+  }
+  unlockSync(start, end) {
+    if (start === void 0) start = 0;
+    if (end === void 0) end = -1;
+    this[_checkAvailable]();
+    if (!(typeof start == 'number') || !(typeof end == 'number')) {
+      dart.throw(new core.ArgumentError());
+    }
+    if (start == end) {
+      dart.throw(new core.ArgumentError());
+    }
+    let result = this[_ops].lock(io._RandomAccessFile.LOCK_UNLOCK, start, end);
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException('unlock failed', this.path, result));
+    }
+  }
+  [_pointer]() {
+    return this[_ops].getPointer();
+  }
+  [_dispatch](request, data, opts) {
+    let markClosed = opts && 'markClosed' in opts ? opts.markClosed : false;
+    if (dart.test(this.closed)) {
+      return async.Future.error(new io.FileSystemException("File closed", this.path));
+    }
+    if (dart.test(this[_asyncDispatched])) {
+      let msg = "An async operation is currently pending";
+      return async.Future.error(new io.FileSystemException(msg, this.path));
+    }
+    if (dart.test(markClosed)) {
+      this.closed = true;
+    }
+    this[_asyncDispatched] = true;
+    data[dartx._set](0, this[_pointer]());
+    return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
+      this[_asyncDispatched] = false;
+    }, VoidToNull()));
+  }
+  [_checkAvailable]() {
+    if (dart.test(this[_asyncDispatched])) {
+      dart.throw(new io.FileSystemException("An async operation is currently pending", this.path));
+    }
+    if (dart.test(this.closed)) {
+      dart.throw(new io.FileSystemException("File closed", this.path));
+    }
+  }
+};
+io._RandomAccessFile[dart.implements] = () => [io.RandomAccessFile];
+dart.setSignature(io._RandomAccessFile, {
+  constructors: () => ({new: dart.definiteFunctionType(io._RandomAccessFile, [core.int, core.String])}),
+  fields: () => ({
+    path: core.String,
+    [_asyncDispatched]: core.bool,
+    [_fileService]: isolate.SendPort,
+    [_resourceInfo]: io._FileResourceInfo,
+    [_ops]: io._RandomAccessFileOps,
+    closed: core.bool
+  }),
+  methods: () => ({
+    [_maybePerformCleanup]: dart.definiteFunctionType(dart.void, []),
+    [_maybeConnectHandler]: dart.definiteFunctionType(dart.dynamic, []),
+    close: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), []),
+    closeSync: dart.definiteFunctionType(dart.void, []),
+    readByte: dart.definiteFunctionType(async.Future$(core.int), []),
+    readByteSync: dart.definiteFunctionType(core.int, []),
+    read: dart.definiteFunctionType(async.Future$(core.List$(core.int)), [core.int]),
+    readSync: dart.definiteFunctionType(core.List$(core.int), [core.int]),
+    readInto: dart.definiteFunctionType(async.Future$(core.int), [ListOfint()], [core.int, core.int]),
+    readIntoSync: dart.definiteFunctionType(core.int, [ListOfint()], [core.int, core.int]),
+    writeByte: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.int]),
+    writeByteSync: dart.definiteFunctionType(core.int, [core.int]),
+    writeFrom: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [ListOfint()], [core.int, core.int]),
+    writeFromSync: dart.definiteFunctionType(dart.void, [ListOfint()], [core.int, core.int]),
+    writeString: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.String], {encoding: convert.Encoding}),
+    writeStringSync: dart.definiteFunctionType(dart.void, [core.String], {encoding: convert.Encoding}),
+    position: dart.definiteFunctionType(async.Future$(core.int), []),
+    positionSync: dart.definiteFunctionType(core.int, []),
+    setPosition: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.int]),
+    setPositionSync: dart.definiteFunctionType(dart.void, [core.int]),
+    truncate: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.int]),
+    truncateSync: dart.definiteFunctionType(dart.void, [core.int]),
+    length: dart.definiteFunctionType(async.Future$(core.int), []),
+    lengthSync: dart.definiteFunctionType(core.int, []),
+    flush: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), []),
+    flushSync: dart.definiteFunctionType(dart.void, []),
+    lock: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [], [io.FileLock, core.int, core.int]),
+    unlock: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [], [core.int, core.int]),
+    lockSync: dart.definiteFunctionType(dart.void, [], [io.FileLock, core.int, core.int]),
+    unlockSync: dart.definiteFunctionType(dart.void, [], [core.int, core.int]),
+    [_pointer]: dart.definiteFunctionType(core.int, []),
+    [_dispatch]: dart.definiteFunctionType(async.Future, [core.int, core.List], {markClosed: core.bool}),
+    [_checkAvailable]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    _connectedResourceHandler: core.bool,
+    LOCK_UNLOCK: core.int,
+    LOCK_SHARED: core.int,
+    LOCK_EXCLUSIVE: core.int
+  })
+});
+io._RandomAccessFile._connectedResourceHandler = false;
+io._RandomAccessFile.LOCK_UNLOCK = 0;
+io._RandomAccessFile.LOCK_SHARED = 1;
+io._RandomAccessFile.LOCK_EXCLUSIVE = 2;
+let const$56;
+io.FileSystemEntityType = class FileSystemEntityType extends core.Object {
+  _internal(type) {
+    this[_type] = type;
+  }
+  static _lookup(type) {
+    return io.FileSystemEntityType._typeList[dartx._get](type);
+  }
+  toString() {
+    return (const$56 || (const$56 = dart.constList(['FILE', 'DIRECTORY', 'LINK', 'NOT_FOUND'], core.String)))[dartx._get](this[_type]);
+  }
+};
+dart.defineNamedConstructor(io.FileSystemEntityType, '_internal');
+dart.setSignature(io.FileSystemEntityType, {
+  constructors: () => ({_internal: dart.definiteFunctionType(io.FileSystemEntityType, [core.int])}),
+  fields: () => ({[_type]: core.int}),
+  sfields: () => ({
+    FILE: io.FileSystemEntityType,
+    DIRECTORY: io.FileSystemEntityType,
+    LINK: io.FileSystemEntityType,
+    NOT_FOUND: io.FileSystemEntityType,
+    _typeList: ListOfFileSystemEntityType()
+  }),
+  statics: () => ({_lookup: dart.definiteFunctionType(io.FileSystemEntityType, [core.int])}),
+  names: ['_lookup']
+});
+dart.defineLazy(io.FileSystemEntityType, {
+  get FILE() {
+    return dart.const(new io.FileSystemEntityType._internal(0));
+  },
+  get DIRECTORY() {
+    return dart.const(new io.FileSystemEntityType._internal(1));
+  },
+  get LINK() {
+    return dart.const(new io.FileSystemEntityType._internal(2));
+  },
+  get NOT_FOUND() {
+    return dart.const(new io.FileSystemEntityType._internal(3));
+  },
+  get _typeList() {
+    return dart.constList([io.FileSystemEntityType.FILE, io.FileSystemEntityType.DIRECTORY, io.FileSystemEntityType.LINK, io.FileSystemEntityType.NOT_FOUND], io.FileSystemEntityType);
+  }
+});
+let const$57;
+io.FileStat = class FileStat extends core.Object {
+  _internal(changed, modified, accessed, type, mode, size) {
+    this.changed = changed;
+    this.modified = modified;
+    this.accessed = accessed;
+    this.type = type;
+    this.mode = mode;
+    this.size = size;
+  }
+  _internalNotFound() {
+    this.changed = null;
+    this.modified = null;
+    this.accessed = null;
+    this.type = io.FileSystemEntityType.NOT_FOUND;
+    this.mode = 0;
+    this.size = -1;
+  }
+  static _statSync(path) {
+    dart.throw(new core.UnsupportedError("FileStat.stat"));
+  }
+  static statSync(path) {
+    if (dart.test(io.Platform.isWindows)) {
+      path = io.FileSystemEntity._trimTrailingPathSeparators(path);
+    }
+    let data = io.FileStat._statSync(path);
+    if (io.OSError.is(data)) return io.FileStat._notFound;
+    return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dindex(data, io.FileStat._CHANGED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dindex(data, io.FileStat._MODIFIED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dindex(data, io.FileStat._ACCESSED_TIME))), io.FileSystemEntityType._lookup(core.int._check(dart.dindex(data, io.FileStat._TYPE))), core.int._check(dart.dindex(data, io.FileStat._MODE)), core.int._check(dart.dindex(data, io.FileStat._SIZE)));
+  }
+  static stat(path) {
+    if (dart.test(io.Platform.isWindows)) {
+      path = io.FileSystemEntity._trimTrailingPathSeparators(path);
+    }
+    return io._IOService._dispatch(io._FILE_STAT, JSArrayOfString().of([path])).then(io.FileStat)(dart.fn(response => {
+      if (dart.test(io._isErrorResponse(response))) {
+        return io.FileStat._notFound;
+      }
+      let data = core.List._check(dart.dindex(response, 1));
+      return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(data[dartx._get](io.FileStat._CHANGED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(data[dartx._get](io.FileStat._MODIFIED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(data[dartx._get](io.FileStat._ACCESSED_TIME))), io.FileSystemEntityType._lookup(core.int._check(data[dartx._get](io.FileStat._TYPE))), core.int._check(data[dartx._get](io.FileStat._MODE)), core.int._check(data[dartx._get](io.FileStat._SIZE)));
+    }, dynamicToFileStat()));
+  }
+  toString() {
+    return dart.str`FileStat: type ${this.type}\n          changed ${this.changed}\n          modified ${this.modified}\n          accessed ${this.accessed}\n          mode ${this.modeString()}\n          size ${this.size}`;
+  }
+  modeString() {
+    let permissions = dart.notNull(this.mode) & 4095;
+    let codes = const$57 || (const$57 = dart.constList(['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx'], core.String));
+    let result = [];
+    if ((permissions & 2048) != 0) result[dartx.add]("(suid) ");
+    if ((permissions & 1024) != 0) result[dartx.add]("(guid) ");
+    if ((permissions & 512) != 0) result[dartx.add]("(sticky) ");
+    result[dartx.add](codes[dartx._get](permissions >> 6 & 7));
+    result[dartx.add](codes[dartx._get](permissions >> 3 & 7));
+    result[dartx.add](codes[dartx._get](permissions & 7));
+    return result[dartx.join]();
+  }
+};
+dart.defineNamedConstructor(io.FileStat, '_internal');
+dart.defineNamedConstructor(io.FileStat, '_internalNotFound');
+dart.setSignature(io.FileStat, {
+  constructors: () => ({
+    _internal: dart.definiteFunctionType(io.FileStat, [core.DateTime, core.DateTime, core.DateTime, io.FileSystemEntityType, core.int, core.int]),
+    _internalNotFound: dart.definiteFunctionType(io.FileStat, [])
+  }),
+  fields: () => ({
+    changed: core.DateTime,
+    modified: core.DateTime,
+    accessed: core.DateTime,
+    type: io.FileSystemEntityType,
+    mode: core.int,
+    size: core.int
+  }),
+  methods: () => ({modeString: dart.definiteFunctionType(core.String, [])}),
+  sfields: () => ({
+    _TYPE: core.int,
+    _CHANGED_TIME: core.int,
+    _MODIFIED_TIME: core.int,
+    _ACCESSED_TIME: core.int,
+    _MODE: core.int,
+    _SIZE: core.int,
+    _notFound: io.FileStat
+  }),
+  statics: () => ({
+    _statSync: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    statSync: dart.definiteFunctionType(io.FileStat, [core.String]),
+    stat: dart.definiteFunctionType(async.Future$(io.FileStat), [core.String])
+  }),
+  names: ['_statSync', 'statSync', 'stat']
+});
+io.FileStat._TYPE = 0;
+io.FileStat._CHANGED_TIME = 1;
+io.FileStat._MODIFIED_TIME = 2;
+io.FileStat._ACCESSED_TIME = 3;
+io.FileStat._MODE = 4;
+io.FileStat._SIZE = 5;
+dart.defineLazy(io.FileStat, {
+  get _notFound() {
+    return dart.const(new io.FileStat._internalNotFound());
+  }
+});
+io.FileSystemEvent = class FileSystemEvent extends core.Object {
+  _(type, path, isDirectory) {
+    this.type = type;
+    this.path = path;
+    this.isDirectory = isDirectory;
+  }
+};
+dart.defineNamedConstructor(io.FileSystemEvent, '_');
+dart.setSignature(io.FileSystemEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(io.FileSystemEvent, [core.int, core.String, core.bool])}),
+  fields: () => ({
+    type: core.int,
+    path: core.String,
+    isDirectory: core.bool
+  }),
+  sfields: () => ({
+    CREATE: core.int,
+    MODIFY: core.int,
+    DELETE: core.int,
+    MOVE: core.int,
+    ALL: core.int,
+    _MODIFY_ATTRIBUTES: core.int,
+    _DELETE_SELF: core.int,
+    _IS_DIR: core.int
+  })
+});
+io.FileSystemEvent.CREATE = 1 << 0;
+io.FileSystemEvent.MODIFY = 1 << 1;
+io.FileSystemEvent.DELETE = 1 << 2;
+io.FileSystemEvent.MOVE = 1 << 3;
+io.FileSystemEvent._MODIFY_ATTRIBUTES = 1 << 4;
+io.FileSystemEvent._DELETE_SELF = 1 << 5;
+io.FileSystemEvent._IS_DIR = 1 << 6;
+dart.defineLazy(io.FileSystemEvent, {
+  get ALL() {
+    return io.FileSystemEvent.CREATE | io.FileSystemEvent.MODIFY | io.FileSystemEvent.DELETE | io.FileSystemEvent.MOVE;
+  }
+});
+io.FileSystemCreateEvent = class FileSystemCreateEvent extends io.FileSystemEvent {
+  _(path, isDirectory) {
+    super._(io.FileSystemEvent.CREATE, core.String._check(path), core.bool._check(isDirectory));
+  }
+  toString() {
+    return dart.str`FileSystemCreateEvent('${this.path}')`;
+  }
+};
+dart.defineNamedConstructor(io.FileSystemCreateEvent, '_');
+dart.setSignature(io.FileSystemCreateEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(io.FileSystemCreateEvent, [dart.dynamic, dart.dynamic])})
+});
+io.FileSystemModifyEvent = class FileSystemModifyEvent extends io.FileSystemEvent {
+  _(path, isDirectory, contentChanged) {
+    this.contentChanged = contentChanged;
+    super._(io.FileSystemEvent.MODIFY, core.String._check(path), core.bool._check(isDirectory));
+  }
+  toString() {
+    return dart.str`FileSystemModifyEvent('${this.path}', contentChanged=${this.contentChanged})`;
+  }
+};
+dart.defineNamedConstructor(io.FileSystemModifyEvent, '_');
+dart.setSignature(io.FileSystemModifyEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(io.FileSystemModifyEvent, [dart.dynamic, dart.dynamic, core.bool])}),
+  fields: () => ({contentChanged: core.bool})
+});
+io.FileSystemDeleteEvent = class FileSystemDeleteEvent extends io.FileSystemEvent {
+  _(path, isDirectory) {
+    super._(io.FileSystemEvent.DELETE, core.String._check(path), core.bool._check(isDirectory));
+  }
+  toString() {
+    return dart.str`FileSystemDeleteEvent('${this.path}')`;
+  }
+};
+dart.defineNamedConstructor(io.FileSystemDeleteEvent, '_');
+dart.setSignature(io.FileSystemDeleteEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(io.FileSystemDeleteEvent, [dart.dynamic, dart.dynamic])})
+});
+io.FileSystemMoveEvent = class FileSystemMoveEvent extends io.FileSystemEvent {
+  _(path, isDirectory, destination) {
+    this.destination = destination;
+    super._(io.FileSystemEvent.MOVE, core.String._check(path), core.bool._check(isDirectory));
+  }
+  toString() {
+    let buffer = new core.StringBuffer();
+    buffer.write(dart.str`FileSystemMoveEvent('${this.path}'`);
+    if (this.destination != null) buffer.write(dart.str`, '${this.destination}'`);
+    buffer.write(')');
+    return buffer.toString();
+  }
+};
+dart.defineNamedConstructor(io.FileSystemMoveEvent, '_');
+dart.setSignature(io.FileSystemMoveEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(io.FileSystemMoveEvent, [dart.dynamic, dart.dynamic, core.String])}),
+  fields: () => ({destination: core.String})
+});
+io._FileSystemWatcher = class _FileSystemWatcher extends core.Object {
+  static _watch(path, events, recursive) {
+    dart.throw(new core.UnsupportedError("_FileSystemWatcher.watch"));
+  }
+  static get isSupported() {
+    dart.throw(new core.UnsupportedError("_FileSystemWatcher.isSupported"));
+  }
+};
+dart.setSignature(io._FileSystemWatcher, {
+  sgetters: () => ({isSupported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({_watch: dart.definiteFunctionType(async.Stream$(io.FileSystemEvent), [core.String, core.int, core.bool])}),
+  names: ['_watch']
+});
+io.HttpStatus = class HttpStatus extends core.Object {};
+dart.setSignature(io.HttpStatus, {
+  sfields: () => ({
+    CONTINUE: core.int,
+    SWITCHING_PROTOCOLS: core.int,
+    OK: core.int,
+    CREATED: core.int,
+    ACCEPTED: core.int,
+    NON_AUTHORITATIVE_INFORMATION: core.int,
+    NO_CONTENT: core.int,
+    RESET_CONTENT: core.int,
+    PARTIAL_CONTENT: core.int,
+    MULTIPLE_CHOICES: core.int,
+    MOVED_PERMANENTLY: core.int,
+    FOUND: core.int,
+    MOVED_TEMPORARILY: core.int,
+    SEE_OTHER: core.int,
+    NOT_MODIFIED: core.int,
+    USE_PROXY: core.int,
+    TEMPORARY_REDIRECT: core.int,
+    BAD_REQUEST: core.int,
+    UNAUTHORIZED: core.int,
+    PAYMENT_REQUIRED: core.int,
+    FORBIDDEN: core.int,
+    NOT_FOUND: core.int,
+    METHOD_NOT_ALLOWED: core.int,
+    NOT_ACCEPTABLE: core.int,
+    PROXY_AUTHENTICATION_REQUIRED: core.int,
+    REQUEST_TIMEOUT: core.int,
+    CONFLICT: core.int,
+    GONE: core.int,
+    LENGTH_REQUIRED: core.int,
+    PRECONDITION_FAILED: core.int,
+    REQUEST_ENTITY_TOO_LARGE: core.int,
+    REQUEST_URI_TOO_LONG: core.int,
+    UNSUPPORTED_MEDIA_TYPE: core.int,
+    REQUESTED_RANGE_NOT_SATISFIABLE: core.int,
+    EXPECTATION_FAILED: core.int,
+    INTERNAL_SERVER_ERROR: core.int,
+    NOT_IMPLEMENTED: core.int,
+    BAD_GATEWAY: core.int,
+    SERVICE_UNAVAILABLE: core.int,
+    GATEWAY_TIMEOUT: core.int,
+    HTTP_VERSION_NOT_SUPPORTED: core.int,
+    NETWORK_CONNECT_TIMEOUT_ERROR: core.int
+  })
+});
+io.HttpStatus.CONTINUE = 100;
+io.HttpStatus.SWITCHING_PROTOCOLS = 101;
+io.HttpStatus.OK = 200;
+io.HttpStatus.CREATED = 201;
+io.HttpStatus.ACCEPTED = 202;
+io.HttpStatus.NON_AUTHORITATIVE_INFORMATION = 203;
+io.HttpStatus.NO_CONTENT = 204;
+io.HttpStatus.RESET_CONTENT = 205;
+io.HttpStatus.PARTIAL_CONTENT = 206;
+io.HttpStatus.MULTIPLE_CHOICES = 300;
+io.HttpStatus.MOVED_PERMANENTLY = 301;
+io.HttpStatus.FOUND = 302;
+io.HttpStatus.MOVED_TEMPORARILY = 302;
+io.HttpStatus.SEE_OTHER = 303;
+io.HttpStatus.NOT_MODIFIED = 304;
+io.HttpStatus.USE_PROXY = 305;
+io.HttpStatus.TEMPORARY_REDIRECT = 307;
+io.HttpStatus.BAD_REQUEST = 400;
+io.HttpStatus.UNAUTHORIZED = 401;
+io.HttpStatus.PAYMENT_REQUIRED = 402;
+io.HttpStatus.FORBIDDEN = 403;
+io.HttpStatus.NOT_FOUND = 404;
+io.HttpStatus.METHOD_NOT_ALLOWED = 405;
+io.HttpStatus.NOT_ACCEPTABLE = 406;
+io.HttpStatus.PROXY_AUTHENTICATION_REQUIRED = 407;
+io.HttpStatus.REQUEST_TIMEOUT = 408;
+io.HttpStatus.CONFLICT = 409;
+io.HttpStatus.GONE = 410;
+io.HttpStatus.LENGTH_REQUIRED = 411;
+io.HttpStatus.PRECONDITION_FAILED = 412;
+io.HttpStatus.REQUEST_ENTITY_TOO_LARGE = 413;
+io.HttpStatus.REQUEST_URI_TOO_LONG = 414;
+io.HttpStatus.UNSUPPORTED_MEDIA_TYPE = 415;
+io.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE = 416;
+io.HttpStatus.EXPECTATION_FAILED = 417;
+io.HttpStatus.INTERNAL_SERVER_ERROR = 500;
+io.HttpStatus.NOT_IMPLEMENTED = 501;
+io.HttpStatus.BAD_GATEWAY = 502;
+io.HttpStatus.SERVICE_UNAVAILABLE = 503;
+io.HttpStatus.GATEWAY_TIMEOUT = 504;
+io.HttpStatus.HTTP_VERSION_NOT_SUPPORTED = 505;
+io.HttpStatus.NETWORK_CONNECT_TIMEOUT_ERROR = 599;
+io.HttpServer = class HttpServer extends core.Object {
+  static bind(address, port, opts) {
+    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
+    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
+    let shared = opts && 'shared' in opts ? opts.shared : false;
+    return io._HttpServer.bind(address, port, backlog, v6Only, shared);
+  }
+  static bindSecure(address, port, context, opts) {
+    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
+    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let shared = opts && 'shared' in opts ? opts.shared : false;
+    return io._HttpServer.bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared);
+  }
+  static listenOn(serverSocket) {
+    return new io._HttpServer.listenOn(serverSocket);
+  }
+};
+io.HttpServer[dart.implements] = () => [StreamOfHttpRequest()];
+dart.setSignature(io.HttpServer, {
+  constructors: () => ({listenOn: dart.definiteFunctionType(io.HttpServer, [io.ServerSocket])}),
+  fields: () => ({
+    serverHeader: core.String,
+    autoCompress: core.bool,
+    idleTimeout: core.Duration
+  }),
+  statics: () => ({
+    bind: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int], {backlog: core.int, v6Only: core.bool, shared: core.bool}),
+    bindSecure: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int, io.SecurityContext], {backlog: core.int, v6Only: core.bool, requestClientCertificate: core.bool, shared: core.bool})
+  }),
+  names: ['bind', 'bindSecure']
+});
+io.HttpConnectionsInfo = class HttpConnectionsInfo extends core.Object {
+  new() {
+    this.total = 0;
+    this.active = 0;
+    this.idle = 0;
+    this.closing = 0;
+  }
+};
+dart.setSignature(io.HttpConnectionsInfo, {
+  fields: () => ({
+    total: core.int,
+    active: core.int,
+    idle: core.int,
+    closing: core.int
+  })
+});
+io.HttpHeaders = class HttpHeaders extends core.Object {
+  new() {
+    this.date = null;
+    this.expires = null;
+    this.ifModifiedSince = null;
+    this.host = null;
+    this.port = null;
+    this.contentType = null;
+    this.contentLength = null;
+    this.persistentConnection = null;
+    this.chunkedTransferEncoding = null;
+  }
+};
+dart.setSignature(io.HttpHeaders, {
+  fields: () => ({
+    date: core.DateTime,
+    expires: core.DateTime,
+    ifModifiedSince: core.DateTime,
+    host: core.String,
+    port: core.int,
+    contentType: io.ContentType,
+    contentLength: core.int,
+    persistentConnection: core.bool,
+    chunkedTransferEncoding: core.bool
+  }),
+  sfields: () => ({
+    ACCEPT: core.String,
+    ACCEPT_CHARSET: core.String,
+    ACCEPT_ENCODING: core.String,
+    ACCEPT_LANGUAGE: core.String,
+    ACCEPT_RANGES: core.String,
+    AGE: core.String,
+    ALLOW: core.String,
+    AUTHORIZATION: core.String,
+    CACHE_CONTROL: core.String,
+    CONNECTION: core.String,
+    CONTENT_ENCODING: core.String,
+    CONTENT_LANGUAGE: core.String,
+    CONTENT_LENGTH: core.String,
+    CONTENT_LOCATION: core.String,
+    CONTENT_MD5: core.String,
+    CONTENT_RANGE: core.String,
+    CONTENT_TYPE: core.String,
+    DATE: core.String,
+    ETAG: core.String,
+    EXPECT: core.String,
+    EXPIRES: core.String,
+    FROM: core.String,
+    HOST: core.String,
+    IF_MATCH: core.String,
+    IF_MODIFIED_SINCE: core.String,
+    IF_NONE_MATCH: core.String,
+    IF_RANGE: core.String,
+    IF_UNMODIFIED_SINCE: core.String,
+    LAST_MODIFIED: core.String,
+    LOCATION: core.String,
+    MAX_FORWARDS: core.String,
+    PRAGMA: core.String,
+    PROXY_AUTHENTICATE: core.String,
+    PROXY_AUTHORIZATION: core.String,
+    RANGE: core.String,
+    REFERER: core.String,
+    RETRY_AFTER: core.String,
+    SERVER: core.String,
+    TE: core.String,
+    TRAILER: core.String,
+    TRANSFER_ENCODING: core.String,
+    UPGRADE: core.String,
+    USER_AGENT: core.String,
+    VARY: core.String,
+    VIA: core.String,
+    WARNING: core.String,
+    WWW_AUTHENTICATE: core.String,
+    COOKIE: core.String,
+    SET_COOKIE: core.String,
+    GENERAL_HEADERS: ListOfString(),
+    ENTITY_HEADERS: ListOfString(),
+    RESPONSE_HEADERS: ListOfString(),
+    REQUEST_HEADERS: ListOfString()
+  })
+});
+io.HttpHeaders.ACCEPT = "accept";
+io.HttpHeaders.ACCEPT_CHARSET = "accept-charset";
+io.HttpHeaders.ACCEPT_ENCODING = "accept-encoding";
+io.HttpHeaders.ACCEPT_LANGUAGE = "accept-language";
+io.HttpHeaders.ACCEPT_RANGES = "accept-ranges";
+io.HttpHeaders.AGE = "age";
+io.HttpHeaders.ALLOW = "allow";
+io.HttpHeaders.AUTHORIZATION = "authorization";
+io.HttpHeaders.CACHE_CONTROL = "cache-control";
+io.HttpHeaders.CONNECTION = "connection";
+io.HttpHeaders.CONTENT_ENCODING = "content-encoding";
+io.HttpHeaders.CONTENT_LANGUAGE = "content-language";
+io.HttpHeaders.CONTENT_LENGTH = "content-length";
+io.HttpHeaders.CONTENT_LOCATION = "content-location";
+io.HttpHeaders.CONTENT_MD5 = "content-md5";
+io.HttpHeaders.CONTENT_RANGE = "content-range";
+io.HttpHeaders.CONTENT_TYPE = "content-type";
+io.HttpHeaders.DATE = "date";
+io.HttpHeaders.ETAG = "etag";
+io.HttpHeaders.EXPECT = "expect";
+io.HttpHeaders.EXPIRES = "expires";
+io.HttpHeaders.FROM = "from";
+io.HttpHeaders.HOST = "host";
+io.HttpHeaders.IF_MATCH = "if-match";
+io.HttpHeaders.IF_MODIFIED_SINCE = "if-modified-since";
+io.HttpHeaders.IF_NONE_MATCH = "if-none-match";
+io.HttpHeaders.IF_RANGE = "if-range";
+io.HttpHeaders.IF_UNMODIFIED_SINCE = "if-unmodified-since";
+io.HttpHeaders.LAST_MODIFIED = "last-modified";
+io.HttpHeaders.LOCATION = "location";
+io.HttpHeaders.MAX_FORWARDS = "max-forwards";
+io.HttpHeaders.PRAGMA = "pragma";
+io.HttpHeaders.PROXY_AUTHENTICATE = "proxy-authenticate";
+io.HttpHeaders.PROXY_AUTHORIZATION = "proxy-authorization";
+io.HttpHeaders.RANGE = "range";
+io.HttpHeaders.REFERER = "referer";
+io.HttpHeaders.RETRY_AFTER = "retry-after";
+io.HttpHeaders.SERVER = "server";
+io.HttpHeaders.TE = "te";
+io.HttpHeaders.TRAILER = "trailer";
+io.HttpHeaders.TRANSFER_ENCODING = "transfer-encoding";
+io.HttpHeaders.UPGRADE = "upgrade";
+io.HttpHeaders.USER_AGENT = "user-agent";
+io.HttpHeaders.VARY = "vary";
+io.HttpHeaders.VIA = "via";
+io.HttpHeaders.WARNING = "warning";
+io.HttpHeaders.WWW_AUTHENTICATE = "www-authenticate";
+io.HttpHeaders.COOKIE = "cookie";
+io.HttpHeaders.SET_COOKIE = "set-cookie";
+dart.defineLazy(io.HttpHeaders, {
+  get GENERAL_HEADERS() {
+    return dart.constList([io.HttpHeaders.CACHE_CONTROL, io.HttpHeaders.CONNECTION, io.HttpHeaders.DATE, io.HttpHeaders.PRAGMA, io.HttpHeaders.TRAILER, io.HttpHeaders.TRANSFER_ENCODING, io.HttpHeaders.UPGRADE, io.HttpHeaders.VIA, io.HttpHeaders.WARNING], core.String);
+  },
+  get ENTITY_HEADERS() {
+    return dart.constList([io.HttpHeaders.ALLOW, io.HttpHeaders.CONTENT_ENCODING, io.HttpHeaders.CONTENT_LANGUAGE, io.HttpHeaders.CONTENT_LENGTH, io.HttpHeaders.CONTENT_LOCATION, io.HttpHeaders.CONTENT_MD5, io.HttpHeaders.CONTENT_RANGE, io.HttpHeaders.CONTENT_TYPE, io.HttpHeaders.EXPIRES, io.HttpHeaders.LAST_MODIFIED], core.String);
+  },
+  get RESPONSE_HEADERS() {
+    return dart.constList([io.HttpHeaders.ACCEPT_RANGES, io.HttpHeaders.AGE, io.HttpHeaders.ETAG, io.HttpHeaders.LOCATION, io.HttpHeaders.PROXY_AUTHENTICATE, io.HttpHeaders.RETRY_AFTER, io.HttpHeaders.SERVER, io.HttpHeaders.VARY, io.HttpHeaders.WWW_AUTHENTICATE], core.String);
+  },
+  get REQUEST_HEADERS() {
+    return dart.constList([io.HttpHeaders.ACCEPT, io.HttpHeaders.ACCEPT_CHARSET, io.HttpHeaders.ACCEPT_ENCODING, io.HttpHeaders.ACCEPT_LANGUAGE, io.HttpHeaders.AUTHORIZATION, io.HttpHeaders.EXPECT, io.HttpHeaders.FROM, io.HttpHeaders.HOST, io.HttpHeaders.IF_MATCH, io.HttpHeaders.IF_MODIFIED_SINCE, io.HttpHeaders.IF_NONE_MATCH, io.HttpHeaders.IF_RANGE, io.HttpHeaders.IF_UNMODIFIED_SINCE, io.HttpHeaders.MAX_FORWARDS, io.HttpHeaders.PROXY_AUTHORIZATION, io.HttpHeaders.RANGE, io.HttpHeaders.REFERER, io.HttpHeaders.TE, io.HttpHeaders.USER_AGENT], core.String);
+  }
+});
+io.HeaderValue = class HeaderValue extends core.Object {
+  static new(value, parameters) {
+    if (value === void 0) value = "";
+    if (parameters === void 0) parameters = null;
+    return new io._HeaderValue(value, parameters);
+  }
+  static parse(value, opts) {
+    let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
+    let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
+    let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
+    return io._HeaderValue.parse(value, {parameterSeparator: parameterSeparator, valueSeparator: valueSeparator, preserveBackslash: preserveBackslash});
+  }
+};
+dart.setSignature(io.HeaderValue, {
+  constructors: () => ({new: dart.definiteFunctionType(io.HeaderValue, [], [core.String, MapOfString$String()])}),
+  statics: () => ({parse: dart.definiteFunctionType(io.HeaderValue, [core.String], {parameterSeparator: core.String, valueSeparator: core.String, preserveBackslash: core.bool})}),
+  names: ['parse']
+});
+io.HttpSession = class HttpSession extends core.Object {};
+io.HttpSession[dart.implements] = () => [core.Map];
+io.ContentType = class ContentType extends core.Object {
+  static new(primaryType, subType, opts) {
+    let charset = opts && 'charset' in opts ? opts.charset : null;
+    let parameters = opts && 'parameters' in opts ? opts.parameters : null;
+    return new io._ContentType(primaryType, subType, charset, parameters);
+  }
+  static parse(value) {
+    return io._ContentType.parse(value);
+  }
+};
+io.ContentType[dart.implements] = () => [io.HeaderValue];
+dart.setSignature(io.ContentType, {
+  constructors: () => ({new: dart.definiteFunctionType(io.ContentType, [core.String, core.String], {charset: core.String, parameters: MapOfString$String()})}),
+  sfields: () => ({
+    TEXT: io.ContentType,
+    HTML: io.ContentType,
+    JSON: io.ContentType,
+    BINARY: io.ContentType
+  }),
+  statics: () => ({parse: dart.definiteFunctionType(io.ContentType, [core.String])}),
+  names: ['parse']
+});
+dart.defineLazy(io.ContentType, {
+  get TEXT() {
+    return io.ContentType.new("text", "plain", {charset: "utf-8"});
+  },
+  get HTML() {
+    return io.ContentType.new("text", "html", {charset: "utf-8"});
+  },
+  get JSON() {
+    return io.ContentType.new("application", "json", {charset: "utf-8"});
+  },
+  get BINARY() {
+    return io.ContentType.new("application", "octet-stream");
+  }
+});
+io.Cookie = class Cookie extends core.Object {
+  static new(name, value) {
+    if (name === void 0) name = null;
+    if (value === void 0) value = null;
+    return new io._Cookie(name, value);
+  }
+  static fromSetCookieValue(value) {
+    return new io._Cookie.fromSetCookieValue(value);
+  }
+};
+dart.setSignature(io.Cookie, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.Cookie, [], [core.String, core.String]),
+    fromSetCookieValue: dart.definiteFunctionType(io.Cookie, [core.String])
+  }),
+  fields: () => ({
+    name: core.String,
+    value: core.String,
+    expires: core.DateTime,
+    maxAge: core.int,
+    domain: core.String,
+    path: core.String,
+    secure: core.bool,
+    httpOnly: core.bool
+  })
+});
+io.HttpRequest = class HttpRequest extends core.Object {};
+io.HttpRequest[dart.implements] = () => [StreamOfListOfint()];
+io.HttpResponse = class HttpResponse extends core.Object {
+  new() {
+    this.contentLength = null;
+    this.statusCode = null;
+    this.reasonPhrase = null;
+    this.persistentConnection = null;
+    this.deadline = null;
+    this.bufferOutput = null;
+  }
+};
+io.HttpResponse[dart.implements] = () => [io.IOSink];
+dart.setSignature(io.HttpResponse, {
+  fields: () => ({
+    contentLength: core.int,
+    statusCode: core.int,
+    reasonPhrase: core.String,
+    persistentConnection: core.bool,
+    deadline: core.Duration,
+    bufferOutput: core.bool
+  })
+});
+io.HttpClient = class HttpClient extends core.Object {
+  static new(opts) {
+    let context = opts && 'context' in opts ? opts.context : null;
+    return new io._HttpClient(context);
+  }
+  static findProxyFromEnvironment(url, opts) {
+    let environment = opts && 'environment' in opts ? opts.environment : null;
+    return io._HttpClient._findProxyFromEnvironment(url, environment);
+  }
+};
+dart.setSignature(io.HttpClient, {
+  constructors: () => ({new: dart.definiteFunctionType(io.HttpClient, [], {context: io.SecurityContext})}),
+  fields: () => ({
+    idleTimeout: core.Duration,
+    maxConnectionsPerHost: core.int,
+    autoUncompress: core.bool,
+    userAgent: core.String
+  }),
+  sfields: () => ({
+    DEFAULT_HTTP_PORT: core.int,
+    DEFAULT_HTTPS_PORT: core.int
+  }),
+  statics: () => ({findProxyFromEnvironment: dart.definiteFunctionType(core.String, [core.Uri], {environment: MapOfString$String()})}),
+  names: ['findProxyFromEnvironment']
+});
+io.HttpClient.DEFAULT_HTTP_PORT = 80;
+io.HttpClient.DEFAULT_HTTPS_PORT = 443;
+io.HttpClientRequest = class HttpClientRequest extends core.Object {
+  new() {
+    this.persistentConnection = null;
+    this.followRedirects = null;
+    this.maxRedirects = null;
+    this.contentLength = null;
+    this.bufferOutput = null;
+  }
+};
+io.HttpClientRequest[dart.implements] = () => [io.IOSink];
+dart.setSignature(io.HttpClientRequest, {
+  fields: () => ({
+    persistentConnection: core.bool,
+    followRedirects: core.bool,
+    maxRedirects: core.int,
+    contentLength: core.int,
+    bufferOutput: core.bool
+  })
+});
+io.HttpClientResponse = class HttpClientResponse extends core.Object {};
+io.HttpClientResponse[dart.implements] = () => [StreamOfListOfint()];
+io.HttpClientCredentials = class HttpClientCredentials extends core.Object {};
+io.HttpClientBasicCredentials = class HttpClientBasicCredentials extends io.HttpClientCredentials {
+  static new(username, password) {
+    return new io._HttpClientBasicCredentials(username, password);
+  }
+};
+dart.setSignature(io.HttpClientBasicCredentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io.HttpClientBasicCredentials, [core.String, core.String])})
+});
+io.HttpClientDigestCredentials = class HttpClientDigestCredentials extends io.HttpClientCredentials {
+  static new(username, password) {
+    return new io._HttpClientDigestCredentials(username, password);
+  }
+};
+dart.setSignature(io.HttpClientDigestCredentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io.HttpClientDigestCredentials, [core.String, core.String])})
+});
+io.HttpConnectionInfo = class HttpConnectionInfo extends core.Object {};
+io.RedirectInfo = class RedirectInfo extends core.Object {};
+io.DetachedSocket = class DetachedSocket extends core.Object {};
+io.HttpException = class HttpException extends core.Object {
+  new(message, opts) {
+    let uri = opts && 'uri' in opts ? opts.uri : null;
+    this.message = message;
+    this.uri = uri;
+  }
+  toString() {
+    let b = new core.StringBuffer();
+    b.write('HttpException: ');
+    b.write(this.message);
+    if (this.uri != null) {
+      b.write(dart.str`, uri = ${this.uri}`);
+    }
+    return b.toString();
+  }
+};
+io.HttpException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.HttpException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.HttpException, [core.String], {uri: core.Uri})}),
+  fields: () => ({
+    message: core.String,
+    uri: core.Uri
+  })
+});
+io.RedirectException = class RedirectException extends core.Object {
+  new(message, redirects) {
+    this.message = message;
+    this.redirects = redirects;
+  }
+  toString() {
+    return dart.str`RedirectException: ${this.message}`;
+  }
+  get uri() {
+    return this.redirects[dartx.last].location;
+  }
+};
+io.RedirectException[dart.implements] = () => [io.HttpException];
+dart.setSignature(io.RedirectException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.RedirectException, [core.String, ListOfRedirectInfo()])}),
+  fields: () => ({
+    message: core.String,
+    redirects: ListOfRedirectInfo()
+  }),
+  getters: () => ({uri: dart.definiteFunctionType(core.Uri, [])})
+});
+let const$58;
+let const$59;
+let const$60;
+let const$61;
+let const$62;
+let const$63;
+let const$64;
+let const$65;
+let const$66;
+io.HttpDate = class HttpDate extends core.Object {
+  static format(date) {
+    let wkday = const$58 || (const$58 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
+    let month = const$59 || (const$59 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
+    let d = date.toUtc();
+    let sb = new core.StringBuffer();
+    sb.write(wkday[dartx._get](dart.notNull(d.weekday) - 1));
+    sb.write(", ");
+    sb.write(dart.notNull(d.day) <= 9 ? "0" : "");
+    sb.write(dart.toString(d.day));
+    sb.write(" ");
+    sb.write(month[dartx._get](dart.notNull(d.month) - 1));
+    sb.write(" ");
+    sb.write(dart.toString(d.year));
+    sb.write(dart.notNull(d.hour) <= 9 ? " 0" : " ");
+    sb.write(dart.toString(d.hour));
+    sb.write(dart.notNull(d.minute) <= 9 ? ":0" : ":");
+    sb.write(dart.toString(d.minute));
+    sb.write(dart.notNull(d.second) <= 9 ? ":0" : ":");
+    sb.write(dart.toString(d.second));
+    sb.write(" GMT");
+    return sb.toString();
+  }
+  static parse(date) {
+    let SP = 32;
+    let wkdays = const$60 || (const$60 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
+    let weekdays = const$61 || (const$61 = dart.constList(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], core.String));
+    let months = const$62 || (const$62 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
+    let wkdaysLowerCase = const$63 || (const$63 = dart.constList(["mon", "tue", "wed", "thu", "fri", "sat", "sun"], core.String));
+    let weekdaysLowerCase = const$64 || (const$64 = dart.constList(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], core.String));
+    let monthsLowerCase = const$65 || (const$65 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
+    let formatRfc1123 = 0;
+    let formatRfc850 = 1;
+    let formatAsctime = 2;
+    let index = 0;
+    let tmp = null;
+    let format = null;
+    function expect(s) {
+      if (dart.notNull(date[dartx.length]) - dart.notNull(index) < dart.notNull(s[dartx.length])) {
+        dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+      }
+      let tmp = date[dartx.substring](index, dart.notNull(index) + dart.notNull(s[dartx.length]));
+      if (tmp != s) {
+        dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+      }
+      index = dart.notNull(index) + dart.notNull(s[dartx.length]);
+    }
+    dart.fn(expect, StringTovoid$());
+    function expectWeekday() {
+      let weekday = null;
+      let pos = date[dartx.indexOf](",", index);
+      if (pos == -1) {
+        let pos = date[dartx.indexOf](" ", index);
+        if (pos == -1) dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+        tmp = date[dartx.substring](index, pos);
+        index = dart.notNull(pos) + 1;
+        weekday = wkdays[dartx.indexOf](tmp);
+        if (weekday != -1) {
+          format = formatAsctime;
+          return weekday;
+        }
+      } else {
+        tmp = date[dartx.substring](index, pos);
+        index = dart.notNull(pos) + 1;
+        weekday = wkdays[dartx.indexOf](tmp);
+        if (weekday != -1) {
+          format = formatRfc1123;
+          return weekday;
+        }
+        weekday = weekdays[dartx.indexOf](tmp);
+        if (weekday != -1) {
+          format = formatRfc850;
+          return weekday;
+        }
+      }
+      dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+    }
+    dart.fn(expectWeekday, VoidToint());
+    function expectMonth(separator) {
+      let pos = date[dartx.indexOf](separator, index);
+      if (dart.notNull(pos) - dart.notNull(index) != 3) dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+      tmp = date[dartx.substring](index, pos);
+      index = dart.notNull(pos) + 1;
+      let month = months[dartx.indexOf](tmp);
+      if (month != -1) return month;
+      dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+    }
+    dart.fn(expectMonth, StringToint$());
+    function expectNum(separator) {
+      let pos = null;
+      if (dart.notNull(separator[dartx.length]) > 0) {
+        pos = date[dartx.indexOf](separator, index);
+      } else {
+        pos = date[dartx.length];
+      }
+      let tmp = date[dartx.substring](index, pos);
+      index = dart.notNull(pos) + dart.notNull(separator[dartx.length]);
+      try {
+        let value = core.int.parse(tmp);
+        return value;
+      } catch (e) {
+        if (core.FormatException.is(e)) {
+          dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+        } else
+          throw e;
+      }
+
+    }
+    dart.fn(expectNum, StringToint$());
+    function expectEnd() {
+      if (index != date[dartx.length]) {
+        dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
+      }
+    }
+    dart.fn(expectEnd, VoidTovoid$());
+    let weekday = expectWeekday();
+    let day = null;
+    let month = null;
+    let year = null;
+    let hours = null;
+    let minutes = null;
+    let seconds = null;
+    if (format == formatAsctime) {
+      month = expectMonth(" ");
+      if (date[dartx.codeUnitAt](index) == SP) {
+        index = dart.notNull(index) + 1;
+      }
+      day = expectNum(" ");
+      hours = expectNum(":");
+      minutes = expectNum(":");
+      seconds = expectNum(" ");
+      year = expectNum("");
+    } else {
+      expect(" ");
+      day = expectNum(format == formatRfc1123 ? " " : "-");
+      month = expectMonth(format == formatRfc1123 ? " " : "-");
+      year = expectNum(" ");
+      hours = expectNum(":");
+      minutes = expectNum(":");
+      seconds = expectNum(" ");
+      expect("GMT");
+    }
+    expectEnd();
+    return new core.DateTime.utc(year, dart.notNull(month) + 1, day, hours, minutes, seconds, 0);
+  }
+  static _parseCookieDate(date) {
+    let monthsLowerCase = const$66 || (const$66 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
+    let position = 0;
+    function error() {
+      dart.throw(new io.HttpException(dart.str`Invalid cookie date ${date}`));
+    }
+    dart.fn(error, VoidTovoid$());
+    function isEnd() {
+      return position == date[dartx.length];
+    }
+    dart.fn(isEnd, VoidTobool());
+    function isDelimiter(s) {
+      let char = s[dartx.codeUnitAt](0);
+      if (char == 9) return true;
+      if (dart.notNull(char) >= 32 && dart.notNull(char) <= 47) return true;
+      if (dart.notNull(char) >= 59 && dart.notNull(char) <= 64) return true;
+      if (dart.notNull(char) >= 91 && dart.notNull(char) <= 96) return true;
+      if (dart.notNull(char) >= 123 && dart.notNull(char) <= 126) return true;
+      return false;
+    }
+    dart.fn(isDelimiter, StringTobool$());
+    function isNonDelimiter(s) {
+      let char = s[dartx.codeUnitAt](0);
+      if (dart.notNull(char) >= 0 && dart.notNull(char) <= 8) return true;
+      if (dart.notNull(char) >= 10 && dart.notNull(char) <= 31) return true;
+      if (dart.notNull(char) >= 48 && dart.notNull(char) <= 57) return true;
+      if (char == 58) return true;
+      if (dart.notNull(char) >= 65 && dart.notNull(char) <= 90) return true;
+      if (dart.notNull(char) >= 97 && dart.notNull(char) <= 122) return true;
+      if (dart.notNull(char) >= 127 && dart.notNull(char) <= 255) return true;
+      return false;
+    }
+    dart.fn(isNonDelimiter, StringTobool$());
+    function isDigit(s) {
+      let char = s[dartx.codeUnitAt](0);
+      if (dart.notNull(char) > 47 && dart.notNull(char) < 58) return true;
+      return false;
+    }
+    dart.fn(isDigit, StringTobool$());
+    function getMonth(month) {
+      if (dart.notNull(month[dartx.length]) < 3) return -1;
+      return monthsLowerCase[dartx.indexOf](month[dartx.substring](0, 3));
+    }
+    dart.fn(getMonth, StringToint$());
+    function toInt(s) {
+      let index = 0;
+      for (; index < dart.notNull(s[dartx.length]) && dart.test(isDigit(s[dartx._get](index))); index++)
+        ;
+      return core.int.parse(s[dartx.substring](0, index));
+    }
+    dart.fn(toInt, StringToint$());
+    let tokens = [];
+    while (!dart.test(isEnd())) {
+      while (!dart.test(isEnd()) && dart.test(isDelimiter(date[dartx._get](position))))
+        position++;
+      let start = position;
+      while (!dart.test(isEnd()) && dart.test(isNonDelimiter(date[dartx._get](position))))
+        position++;
+      tokens[dartx.add](date[dartx.substring](start, position)[dartx.toLowerCase]());
+      while (!dart.test(isEnd()) && dart.test(isDelimiter(date[dartx._get](position))))
+        position++;
+    }
+    let timeStr = null;
+    let dayOfMonthStr = null;
+    let monthStr = null;
+    let yearStr = null;
+    for (let token of tokens) {
+      if (dart.test(dart.dsend(dart.dload(token, 'length'), '<', 1))) continue;
+      if (timeStr == null && dart.test(dart.dsend(dart.dload(token, 'length'), '>=', 5)) && dart.test(isDigit(core.String._check(dart.dindex(token, 0)))) && (dart.equals(dart.dindex(token, 1), ":") || dart.test(isDigit(core.String._check(dart.dindex(token, 1)))) && dart.equals(dart.dindex(token, 2), ":"))) {
+        timeStr = core.String._check(token);
+      } else if (dayOfMonthStr == null && dart.test(isDigit(core.String._check(dart.dindex(token, 0))))) {
+        dayOfMonthStr = core.String._check(token);
+      } else if (monthStr == null && dart.notNull(getMonth(core.String._check(token))) >= 0) {
+        monthStr = core.String._check(token);
+      } else if (yearStr == null && dart.test(dart.dsend(dart.dload(token, 'length'), '>=', 2)) && dart.test(isDigit(core.String._check(dart.dindex(token, 0)))) && dart.test(isDigit(core.String._check(dart.dindex(token, 1))))) {
+        yearStr = core.String._check(token);
+      }
+    }
+    if (timeStr == null || dayOfMonthStr == null || monthStr == null || yearStr == null) {
+      error();
+    }
+    let year = toInt(yearStr);
+    if (dart.notNull(year) >= 70 && dart.notNull(year) <= 99) {
+      year = dart.notNull(year) + 1900;
+    } else if (dart.notNull(year) >= 0 && dart.notNull(year) <= 69) {
+      year = dart.notNull(year) + 2000;
+    }
+    if (dart.notNull(year) < 1601) error();
+    let dayOfMonth = toInt(dayOfMonthStr);
+    if (dart.notNull(dayOfMonth) < 1 || dart.notNull(dayOfMonth) > 31) error();
+    let month = dart.notNull(getMonth(monthStr)) + 1;
+    let timeList = timeStr[dartx.split](":");
+    if (timeList[dartx.length] != 3) error();
+    let hour = toInt(timeList[dartx._get](0));
+    let minute = toInt(timeList[dartx._get](1));
+    let second = toInt(timeList[dartx._get](2));
+    if (dart.notNull(hour) > 23) error();
+    if (dart.notNull(minute) > 59) error();
+    if (dart.notNull(second) > 59) error();
+    return new core.DateTime.utc(year, month, dayOfMonth, hour, minute, second, 0);
+  }
+};
+dart.setSignature(io.HttpDate, {
+  statics: () => ({
+    format: dart.definiteFunctionType(core.String, [core.DateTime]),
+    parse: dart.definiteFunctionType(core.DateTime, [core.String]),
+    _parseCookieDate: dart.definiteFunctionType(core.DateTime, [core.String])
+  }),
+  names: ['format', 'parse', '_parseCookieDate']
+});
+const _headers = Symbol('_headers');
+const _defaultPortForScheme = Symbol('_defaultPortForScheme');
+const _mutable = Symbol('_mutable');
+const _noFoldingHeaders = Symbol('_noFoldingHeaders');
+const _contentLength = Symbol('_contentLength');
+const _persistentConnection = Symbol('_persistentConnection');
+const _chunkedTransferEncoding = Symbol('_chunkedTransferEncoding');
+const _host$ = Symbol('_host');
+const _port$ = Symbol('_port');
+const _checkMutable = Symbol('_checkMutable');
+const _addAll = Symbol('_addAll');
+const _add$2 = Symbol('_add');
+const _set$ = Symbol('_set');
+const _addValue = Symbol('_addValue');
+const _updateHostHeader = Symbol('_updateHostHeader');
+const _addDate = Symbol('_addDate');
+const _addHost = Symbol('_addHost');
+const _addExpires = Symbol('_addExpires');
+const _addConnection = Symbol('_addConnection');
+const _addContentType = Symbol('_addContentType');
+const _addContentLength = Symbol('_addContentLength');
+const _addTransferEncoding = Symbol('_addTransferEncoding');
+const _addIfModifiedSince = Symbol('_addIfModifiedSince');
+const _foldHeader = Symbol('_foldHeader');
+const _finalize = Symbol('_finalize');
+const _write = Symbol('_write');
+const _parseCookies = Symbol('_parseCookies');
+io._HttpHeaders = class _HttpHeaders extends core.Object {
+  new(protocolVersion, opts) {
+    let defaultPortForScheme = opts && 'defaultPortForScheme' in opts ? opts.defaultPortForScheme : io.HttpClient.DEFAULT_HTTP_PORT;
+    let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
+    this.protocolVersion = protocolVersion;
+    this[_headers] = HashMapOfString$ListOfString().new();
+    this[_defaultPortForScheme] = defaultPortForScheme;
+    this[_mutable] = true;
+    this[_noFoldingHeaders] = null;
+    this[_contentLength] = -1;
+    this[_persistentConnection] = true;
+    this[_chunkedTransferEncoding] = false;
+    this[_host$] = null;
+    this[_port$] = null;
+    if (initialHeaders != null) {
+      initialHeaders[_headers][dartx.forEach](dart.fn((name, value) => this[_headers][dartx._set](name, value), StringAndListOfStringToListOfString()));
+      this[_contentLength] = initialHeaders[_contentLength];
+      this[_persistentConnection] = initialHeaders[_persistentConnection];
+      this[_chunkedTransferEncoding] = initialHeaders[_chunkedTransferEncoding];
+      this[_host$] = initialHeaders[_host$];
+      this[_port$] = initialHeaders[_port$];
+    }
+    if (this.protocolVersion == "1.0") {
+      this[_persistentConnection] = false;
+      this[_chunkedTransferEncoding] = false;
+    }
+  }
+  _get(name) {
+    return this[_headers][dartx._get](name[dartx.toLowerCase]());
+  }
+  value(name) {
+    name = name[dartx.toLowerCase]();
+    let values = this[_headers][dartx._get](name);
+    if (values == null) return null;
+    if (dart.notNull(values[dartx.length]) > 1) {
+      dart.throw(new io.HttpException(dart.str`More than one value for header ${name}`));
+    }
+    return values[dartx._get](0);
+  }
+  add(name, value) {
+    this[_checkMutable]();
+    this[_addAll](io._HttpHeaders._validateField(name), value);
+  }
+  [_addAll](name, value) {
+    dart.assert(name == io._HttpHeaders._validateField(name));
+    if (core.Iterable.is(value)) {
+      for (let v of value) {
+        this[_add$2](name, io._HttpHeaders._validateValue(v));
+      }
+    } else {
+      this[_add$2](name, io._HttpHeaders._validateValue(value));
+    }
+  }
+  set(name, value) {
+    this[_checkMutable]();
+    name = io._HttpHeaders._validateField(name);
+    this[_headers][dartx.remove](name);
+    if (name == io.HttpHeaders.TRANSFER_ENCODING) {
+      this[_chunkedTransferEncoding] = false;
+    }
+    this[_addAll](name, value);
+  }
+  remove(name, value) {
+    this[_checkMutable]();
+    name = io._HttpHeaders._validateField(name);
+    value = io._HttpHeaders._validateValue(value);
+    let values = this[_headers][dartx._get](name);
+    if (values != null) {
+      let index = values[dartx.indexOf](core.String._check(value));
+      if (index != -1) {
+        values[dartx.removeRange](index, dart.notNull(index) + 1);
+      }
+      if (values[dartx.length] == 0) this[_headers][dartx.remove](name);
+    }
+    if (name == io.HttpHeaders.TRANSFER_ENCODING && dart.equals(value, "chunked")) {
+      this[_chunkedTransferEncoding] = false;
+    }
+  }
+  removeAll(name) {
+    this[_checkMutable]();
+    name = io._HttpHeaders._validateField(name);
+    this[_headers][dartx.remove](name);
+  }
+  forEach(f) {
+    this[_headers][dartx.forEach](f);
+  }
+  noFolding(name) {
+    if (this[_noFoldingHeaders] == null) this[_noFoldingHeaders] = ListOfString().new();
+    this[_noFoldingHeaders][dartx.add](name);
+  }
+  get persistentConnection() {
+    return this[_persistentConnection];
+  }
+  set persistentConnection(persistentConnection) {
+    this[_checkMutable]();
+    if (persistentConnection == this[_persistentConnection]) return;
+    if (dart.test(persistentConnection)) {
+      if (this.protocolVersion == "1.1") {
+        this.remove(io.HttpHeaders.CONNECTION, "close");
+      } else {
+        if (this[_contentLength] == -1) {
+          dart.throw(new io.HttpException("Trying to set 'Connection: Keep-Alive' on HTTP 1.0 headers with " + "no ContentLength"));
+        }
+        this.add(io.HttpHeaders.CONNECTION, "keep-alive");
+      }
+    } else {
+      if (this.protocolVersion == "1.1") {
+        this.add(io.HttpHeaders.CONNECTION, "close");
+      } else {
+        this.remove(io.HttpHeaders.CONNECTION, "keep-alive");
+      }
+    }
+    this[_persistentConnection] = persistentConnection;
+  }
+  get contentLength() {
+    return this[_contentLength];
+  }
+  set contentLength(contentLength) {
+    this[_checkMutable]();
+    if (this.protocolVersion == "1.0" && dart.test(this.persistentConnection) && contentLength == -1) {
+      dart.throw(new io.HttpException("Trying to clear ContentLength on HTTP 1.0 headers with " + "'Connection: Keep-Alive' set"));
+    }
+    if (this[_contentLength] == contentLength) return;
+    this[_contentLength] = contentLength;
+    if (dart.notNull(this[_contentLength]) >= 0) {
+      if (dart.test(this.chunkedTransferEncoding)) this.chunkedTransferEncoding = false;
+      this[_set$](io.HttpHeaders.CONTENT_LENGTH, dart.toString(contentLength));
+    } else {
+      this.removeAll(io.HttpHeaders.CONTENT_LENGTH);
+      if (this.protocolVersion == "1.1") {
+        this.chunkedTransferEncoding = true;
+      }
+    }
+  }
+  get chunkedTransferEncoding() {
+    return this[_chunkedTransferEncoding];
+  }
+  set chunkedTransferEncoding(chunkedTransferEncoding) {
+    this[_checkMutable]();
+    if (dart.test(chunkedTransferEncoding) && this.protocolVersion == "1.0") {
+      dart.throw(new io.HttpException("Trying to set 'Transfer-Encoding: Chunked' on HTTP 1.0 headers"));
+    }
+    if (chunkedTransferEncoding == this[_chunkedTransferEncoding]) return;
+    if (dart.test(chunkedTransferEncoding)) {
+      let values = this[_headers][dartx._get](io.HttpHeaders.TRANSFER_ENCODING);
+      if (values == null || values[dartx.last] != "chunked") {
+        this[_addValue](io.HttpHeaders.TRANSFER_ENCODING, "chunked");
+      }
+      this.contentLength = -1;
+    } else {
+      this.remove(io.HttpHeaders.TRANSFER_ENCODING, "chunked");
+    }
+    this[_chunkedTransferEncoding] = chunkedTransferEncoding;
+  }
+  get host() {
+    return this[_host$];
+  }
+  set host(host) {
+    this[_checkMutable]();
+    this[_host$] = host;
+    this[_updateHostHeader]();
+  }
+  get port() {
+    return this[_port$];
+  }
+  set port(port) {
+    this[_checkMutable]();
+    this[_port$] = port;
+    this[_updateHostHeader]();
+  }
+  get ifModifiedSince() {
+    let values = this[_headers][dartx._get](io.HttpHeaders.IF_MODIFIED_SINCE);
+    if (values != null) {
+      try {
+        return io.HttpDate.parse(values[dartx._get](0));
+      } catch (e) {
+        if (core.Exception.is(e)) {
+          return null;
+        } else
+          throw e;
+      }
+
+    }
+    return null;
+  }
+  set ifModifiedSince(ifModifiedSince) {
+    this[_checkMutable]();
+    let formatted = io.HttpDate.format(ifModifiedSince.toUtc());
+    this[_set$](io.HttpHeaders.IF_MODIFIED_SINCE, formatted);
+  }
+  get date() {
+    let values = this[_headers][dartx._get](io.HttpHeaders.DATE);
+    if (values != null) {
+      try {
+        return io.HttpDate.parse(values[dartx._get](0));
+      } catch (e) {
+        if (core.Exception.is(e)) {
+          return null;
+        } else
+          throw e;
+      }
+
+    }
+    return null;
+  }
+  set date(date) {
+    this[_checkMutable]();
+    let formatted = io.HttpDate.format(date.toUtc());
+    this[_set$]("date", formatted);
+  }
+  get expires() {
+    let values = this[_headers][dartx._get](io.HttpHeaders.EXPIRES);
+    if (values != null) {
+      try {
+        return io.HttpDate.parse(values[dartx._get](0));
+      } catch (e) {
+        if (core.Exception.is(e)) {
+          return null;
+        } else
+          throw e;
+      }
+
+    }
+    return null;
+  }
+  set expires(expires) {
+    this[_checkMutable]();
+    let formatted = io.HttpDate.format(expires.toUtc());
+    this[_set$](io.HttpHeaders.EXPIRES, formatted);
+  }
+  get contentType() {
+    let values = this[_headers][dartx._get]("content-type");
+    if (values != null) {
+      return io.ContentType.parse(values[dartx._get](0));
+    } else {
+      return null;
+    }
+  }
+  set contentType(contentType) {
+    this[_checkMutable]();
+    this[_set$](io.HttpHeaders.CONTENT_TYPE, dart.toString(contentType));
+  }
+  clear() {
+    this[_checkMutable]();
+    this[_headers][dartx.clear]();
+    this[_contentLength] = -1;
+    this[_persistentConnection] = true;
+    this[_chunkedTransferEncoding] = false;
+    this[_host$] = null;
+    this[_port$] = null;
+  }
+  [_add$2](name, value) {
+    dart.assert(name == io._HttpHeaders._validateField(name));
+    switch (name[dartx.length]) {
+      case 4:
+      {
+        if (io.HttpHeaders.DATE == name) {
+          this[_addDate](name, value);
+          return;
+        }
+        if (io.HttpHeaders.HOST == name) {
+          this[_addHost](name, value);
+          return;
+        }
+        break;
+      }
+      case 7:
+      {
+        if (io.HttpHeaders.EXPIRES == name) {
+          this[_addExpires](name, value);
+          return;
+        }
+        break;
+      }
+      case 10:
+      {
+        if (io.HttpHeaders.CONNECTION == name) {
+          this[_addConnection](name, value);
+          return;
+        }
+        break;
+      }
+      case 12:
+      {
+        if (io.HttpHeaders.CONTENT_TYPE == name) {
+          this[_addContentType](name, value);
+          return;
+        }
+        break;
+      }
+      case 14:
+      {
+        if (io.HttpHeaders.CONTENT_LENGTH == name) {
+          this[_addContentLength](name, value);
+          return;
+        }
+        break;
+      }
+      case 17:
+      {
+        if (io.HttpHeaders.TRANSFER_ENCODING == name) {
+          this[_addTransferEncoding](name, value);
+          return;
+        }
+        if (io.HttpHeaders.IF_MODIFIED_SINCE == name) {
+          this[_addIfModifiedSince](name, value);
+          return;
+        }
+      }
+    }
+    this[_addValue](name, value);
+  }
+  [_addContentLength](name, value) {
+    if (typeof value == 'number') {
+      this.contentLength = value;
+    } else if (typeof value == 'string') {
+      this.contentLength = core.int.parse(value);
+    } else {
+      dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
+    }
+  }
+  [_addTransferEncoding](name, value) {
+    if (dart.equals(value, "chunked")) {
+      this.chunkedTransferEncoding = true;
+    } else {
+      this[_addValue](io.HttpHeaders.TRANSFER_ENCODING, value);
+    }
+  }
+  [_addDate](name, value) {
+    if (core.DateTime.is(value)) {
+      this.date = value;
+    } else if (typeof value == 'string') {
+      this[_set$](io.HttpHeaders.DATE, value);
+    } else {
+      dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
+    }
+  }
+  [_addExpires](name, value) {
+    if (core.DateTime.is(value)) {
+      this.expires = value;
+    } else if (typeof value == 'string') {
+      this[_set$](io.HttpHeaders.EXPIRES, value);
+    } else {
+      dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
+    }
+  }
+  [_addIfModifiedSince](name, value) {
+    if (core.DateTime.is(value)) {
+      this.ifModifiedSince = value;
+    } else if (typeof value == 'string') {
+      this[_set$](io.HttpHeaders.IF_MODIFIED_SINCE, value);
+    } else {
+      dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
+    }
+  }
+  [_addHost](name, value) {
+    if (typeof value == 'string') {
+      let pos = value[dartx.indexOf](":");
+      if (pos == -1) {
+        this[_host$] = value;
+        this[_port$] = io.HttpClient.DEFAULT_HTTP_PORT;
+      } else {
+        if (dart.notNull(pos) > 0) {
+          this[_host$] = value[dartx.substring](0, pos);
+        } else {
+          this[_host$] = null;
+        }
+        if (dart.notNull(pos) + 1 == value[dartx.length]) {
+          this[_port$] = io.HttpClient.DEFAULT_HTTP_PORT;
+        } else {
+          try {
+            this[_port$] = core.int.parse(value[dartx.substring](dart.notNull(pos) + 1));
+          } catch (e) {
+            if (core.FormatException.is(e)) {
+              this[_port$] = null;
+            } else
+              throw e;
+          }
+
+        }
+      }
+      this[_set$](io.HttpHeaders.HOST, value);
+    } else {
+      dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
+    }
+  }
+  [_addConnection](name, value) {
+    let lowerCaseValue = dart.dsend(value, 'toLowerCase');
+    if (dart.equals(lowerCaseValue, 'close')) {
+      this[_persistentConnection] = false;
+    } else if (dart.equals(lowerCaseValue, 'keep-alive')) {
+      this[_persistentConnection] = true;
+    }
+    this[_addValue](name, value);
+  }
+  [_addContentType](name, value) {
+    this[_set$](io.HttpHeaders.CONTENT_TYPE, core.String._check(value));
+  }
+  [_addValue](name, value) {
+    let values = this[_headers][dartx._get](name);
+    if (values == null) {
+      values = ListOfString().new();
+      this[_headers][dartx._set](name, values);
+    }
+    if (core.DateTime.is(value)) {
+      values[dartx.add](io.HttpDate.format(value));
+    } else if (typeof value == 'string') {
+      values[dartx.add](value);
+    } else {
+      values[dartx.add](core.String._check(io._HttpHeaders._validateValue(dart.toString(value))));
+    }
+  }
+  [_set$](name, value) {
+    dart.assert(name == io._HttpHeaders._validateField(name));
+    let values = ListOfString().new();
+    this[_headers][dartx._set](name, values);
+    values[dartx.add](value);
+  }
+  [_checkMutable]() {
+    if (!dart.test(this[_mutable])) dart.throw(new io.HttpException("HTTP headers are not mutable"));
+  }
+  [_updateHostHeader]() {
+    let defaultPort = this[_port$] == null || this[_port$] == this[_defaultPortForScheme];
+    this[_set$]("host", defaultPort ? this.host : dart.str`${this.host}:${this[_port$]}`);
+  }
+  [_foldHeader](name) {
+    if (name == io.HttpHeaders.SET_COOKIE || this[_noFoldingHeaders] != null && this[_noFoldingHeaders][dartx.indexOf](name) != -1) {
+      return false;
+    }
+    return true;
+  }
+  [_finalize]() {
+    this[_mutable] = false;
+  }
+  [_write](buffer, offset) {
+    function write(bytes) {
+      let len = bytes[dartx.length];
+      for (let i = 0; i < dart.notNull(len); i++) {
+        buffer[dartx._set](dart.notNull(offset) + i, bytes[dartx._get](i));
+      }
+      offset = dart.notNull(offset) + dart.notNull(len);
+    }
+    dart.fn(write, ListOfintTovoid$());
+    for (let name of this[_headers][dartx.keys]) {
+      let values = this[_headers][dartx._get](name);
+      let fold = core.bool._check(this[_foldHeader](name));
+      let nameData = name[dartx.codeUnits];
+      write(nameData);
+      buffer[dartx._set]((() => {
+        let x = offset;
+        offset = dart.notNull(x) + 1;
+        return x;
+      })(), io._CharCode.COLON);
+      buffer[dartx._set]((() => {
+        let x = offset;
+        offset = dart.notNull(x) + 1;
+        return x;
+      })(), io._CharCode.SP);
+      for (let i = 0; i < dart.notNull(values[dartx.length]); i++) {
+        if (i > 0) {
+          if (dart.test(fold)) {
+            buffer[dartx._set]((() => {
+              let x = offset;
+              offset = dart.notNull(x) + 1;
+              return x;
+            })(), io._CharCode.COMMA);
+            buffer[dartx._set]((() => {
+              let x = offset;
+              offset = dart.notNull(x) + 1;
+              return x;
+            })(), io._CharCode.SP);
+          } else {
+            buffer[dartx._set]((() => {
+              let x = offset;
+              offset = dart.notNull(x) + 1;
+              return x;
+            })(), io._CharCode.CR);
+            buffer[dartx._set]((() => {
+              let x = offset;
+              offset = dart.notNull(x) + 1;
+              return x;
+            })(), io._CharCode.LF);
+            write(nameData);
+            buffer[dartx._set]((() => {
+              let x = offset;
+              offset = dart.notNull(x) + 1;
+              return x;
+            })(), io._CharCode.COLON);
+            buffer[dartx._set]((() => {
+              let x = offset;
+              offset = dart.notNull(x) + 1;
+              return x;
+            })(), io._CharCode.SP);
+          }
+        }
+        write(values[dartx._get](i)[dartx.codeUnits]);
+      }
+      buffer[dartx._set]((() => {
+        let x = offset;
+        offset = dart.notNull(x) + 1;
+        return x;
+      })(), io._CharCode.CR);
+      buffer[dartx._set]((() => {
+        let x = offset;
+        offset = dart.notNull(x) + 1;
+        return x;
+      })(), io._CharCode.LF);
+    }
+    return offset;
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    this[_headers][dartx.forEach](dart.fn((name, values) => {
+      sb.write(name);
+      sb.write(": ");
+      let fold = core.bool._check(this[_foldHeader](name));
+      for (let i = 0; i < dart.notNull(values[dartx.length]); i++) {
+        if (i > 0) {
+          if (dart.test(fold)) {
+            sb.write(", ");
+          } else {
+            sb.write("\n");
+            sb.write(name);
+            sb.write(": ");
+          }
+        }
+        sb.write(values[dartx._get](i));
+      }
+      sb.write("\n");
+    }, StringAndListOfStringToNull()));
+    return sb.toString();
+  }
+  [_parseCookies]() {
+    let cookies = ListOfCookie().new();
+    function parseCookieString(s) {
+      let index = 0;
+      function done() {
+        return index == -1 || index == s[dartx.length];
+      }
+      dart.fn(done, VoidTobool());
+      function skipWS() {
+        while (!dart.test(done())) {
+          if (s[dartx._get](index) != " " && s[dartx._get](index) != "\t") return;
+          index = dart.notNull(index) + 1;
+        }
+      }
+      dart.fn(skipWS, VoidTovoid$());
+      function parseName() {
+        let start = index;
+        while (!dart.test(done())) {
+          if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == "=") break;
+          index = dart.notNull(index) + 1;
+        }
+        return s[dartx.substring](start, index);
+      }
+      dart.fn(parseName, VoidToString$());
+      function parseValue() {
+        let start = index;
+        while (!dart.test(done())) {
+          if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == ";") break;
+          index = dart.notNull(index) + 1;
+        }
+        return s[dartx.substring](start, index);
+      }
+      dart.fn(parseValue, VoidToString$());
+      function expect(expected) {
+        if (dart.test(done())) return false;
+        if (s[dartx._get](index) != expected) return false;
+        index = dart.notNull(index) + 1;
+        return true;
+      }
+      dart.fn(expect, StringTobool$());
+      while (!dart.test(done())) {
+        skipWS();
+        if (dart.test(done())) return;
+        let name = parseName();
+        skipWS();
+        if (!dart.test(expect("="))) {
+          index = s[dartx.indexOf](';', index);
+          continue;
+        }
+        skipWS();
+        let value = parseValue();
+        try {
+          cookies[dartx.add](new io._Cookie(name, value));
+        } catch (_) {
+        }
+
+        skipWS();
+        if (dart.test(done())) return;
+        if (!dart.test(expect(";"))) {
+          index = s[dartx.indexOf](';', index);
+          continue;
+        }
+      }
+    }
+    dart.fn(parseCookieString, StringTovoid$());
+    let values = this[_headers][dartx._get](io.HttpHeaders.COOKIE);
+    if (values != null) {
+      values[dartx.forEach](dart.fn(headerValue => parseCookieString(headerValue), StringTovoid$()));
+    }
+    return cookies;
+  }
+  static _validateField(field) {
+    for (let i = 0; i < dart.notNull(field[dartx.length]); i++) {
+      if (!dart.test(io._HttpParser._isTokenChar(field[dartx.codeUnitAt](i)))) {
+        dart.throw(new core.FormatException(dart.str`Invalid HTTP header field name: ${convert.JSON.encode(field)}`));
+      }
+    }
+    return field[dartx.toLowerCase]();
+  }
+  static _validateValue(value) {
+    if (!(typeof value == 'string')) return value;
+    for (let i = 0; i < dart.notNull(core.num._check(dart.dload(value, 'length'))); i++) {
+      if (!dart.test(io._HttpParser._isValueChar(core.int._check(dart.dsend(value, 'codeUnitAt', i))))) {
+        dart.throw(new core.FormatException(dart.str`Invalid HTTP header field value: ${convert.JSON.encode(value)}`));
+      }
+    }
+    return value;
+  }
+};
+io._HttpHeaders[dart.implements] = () => [io.HttpHeaders];
+dart.setSignature(io._HttpHeaders, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpHeaders, [core.String], {defaultPortForScheme: core.int, initialHeaders: io._HttpHeaders})}),
+  fields: () => ({
+    [_headers]: MapOfString$ListOfString(),
+    protocolVersion: core.String,
+    [_mutable]: core.bool,
+    [_noFoldingHeaders]: ListOfString(),
+    [_contentLength]: core.int,
+    [_persistentConnection]: core.bool,
+    [_chunkedTransferEncoding]: core.bool,
+    [_host$]: core.String,
+    [_port$]: core.int,
+    [_defaultPortForScheme]: core.int
+  }),
+  getters: () => ({
+    persistentConnection: dart.definiteFunctionType(core.bool, []),
+    contentLength: dart.definiteFunctionType(core.int, []),
+    chunkedTransferEncoding: dart.definiteFunctionType(core.bool, []),
+    host: dart.definiteFunctionType(core.String, []),
+    port: dart.definiteFunctionType(core.int, []),
+    ifModifiedSince: dart.definiteFunctionType(core.DateTime, []),
+    date: dart.definiteFunctionType(core.DateTime, []),
+    expires: dart.definiteFunctionType(core.DateTime, []),
+    contentType: dart.definiteFunctionType(io.ContentType, [])
+  }),
+  setters: () => ({
+    persistentConnection: dart.definiteFunctionType(dart.void, [core.bool]),
+    contentLength: dart.definiteFunctionType(dart.void, [core.int]),
+    chunkedTransferEncoding: dart.definiteFunctionType(dart.void, [core.bool]),
+    host: dart.definiteFunctionType(dart.void, [core.String]),
+    port: dart.definiteFunctionType(dart.void, [core.int]),
+    ifModifiedSince: dart.definiteFunctionType(dart.void, [core.DateTime]),
+    date: dart.definiteFunctionType(dart.void, [core.DateTime]),
+    expires: dart.definiteFunctionType(dart.void, [core.DateTime]),
+    contentType: dart.definiteFunctionType(dart.void, [io.ContentType])
+  }),
+  methods: () => ({
+    _get: dart.definiteFunctionType(core.List$(core.String), [core.String]),
+    value: dart.definiteFunctionType(core.String, [core.String]),
+    add: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
+    [_addAll]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    set: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
+    remove: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
+    removeAll: dart.definiteFunctionType(dart.void, [core.String]),
+    forEach: dart.definiteFunctionType(dart.void, [StringAndListOfStringTovoid()]),
+    noFolding: dart.definiteFunctionType(dart.void, [core.String]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    [_add$2]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addContentLength]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addTransferEncoding]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addDate]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addExpires]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addIfModifiedSince]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addHost]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addConnection]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addContentType]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_addValue]: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
+    [_set$]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [_checkMutable]: dart.definiteFunctionType(dart.dynamic, []),
+    [_updateHostHeader]: dart.definiteFunctionType(dart.dynamic, []),
+    [_foldHeader]: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    [_finalize]: dart.definiteFunctionType(dart.void, []),
+    [_write]: dart.definiteFunctionType(core.int, [typed_data.Uint8List, core.int]),
+    [_parseCookies]: dart.definiteFunctionType(core.List$(io.Cookie), [])
+  }),
+  statics: () => ({
+    _validateField: dart.definiteFunctionType(core.String, [core.String]),
+    _validateValue: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+  }),
+  names: ['_validateField', '_validateValue']
+});
+const _value$1 = Symbol('_value');
+const _parameters = Symbol('_parameters');
+const _unmodifiableParameters = Symbol('_unmodifiableParameters');
+const _parse = Symbol('_parse');
+const _ensureParameters = Symbol('_ensureParameters');
+io._HeaderValue = class _HeaderValue extends core.Object {
+  new(value, parameters) {
+    if (value === void 0) value = "";
+    if (parameters === void 0) parameters = null;
+    this[_value$1] = value;
+    this[_parameters] = null;
+    this[_unmodifiableParameters] = null;
+    if (parameters != null) {
+      this[_parameters] = HashMapOfString$String().from(parameters);
+    }
+  }
+  static parse(value, opts) {
+    let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
+    let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
+    let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
+    let result = new io._HeaderValue();
+    result[_parse](value, core.String._check(parameterSeparator), core.String._check(valueSeparator), core.bool._check(preserveBackslash));
+    return result;
+  }
+  get value() {
+    return this[_value$1];
+  }
+  [_ensureParameters]() {
+    if (this[_parameters] == null) {
+      this[_parameters] = HashMapOfString$String().new();
+    }
+  }
+  get parameters() {
+    this[_ensureParameters]();
+    if (this[_unmodifiableParameters] == null) {
+      this[_unmodifiableParameters] = new (UnmodifiableMapViewOfString$String())(this[_parameters]);
+    }
+    return this[_unmodifiableParameters];
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    sb.write(this[_value$1]);
+    if (this.parameters != null && dart.notNull(this.parameters[dartx.length]) > 0) {
+      this[_parameters][dartx.forEach](dart.fn((name, value) => {
+        sb.write("; ");
+        sb.write(name);
+        sb.write("=");
+        sb.write(value);
+      }, StringAndStringToNull()));
+    }
+    return sb.toString();
+  }
+  [_parse](s, parameterSeparator, valueSeparator, preserveBackslash) {
+    let index = 0;
+    function done() {
+      return index == s[dartx.length];
+    }
+    dart.fn(done, VoidTobool());
+    function skipWS() {
+      while (!dart.test(done())) {
+        if (s[dartx._get](index) != " " && s[dartx._get](index) != "\t") return;
+        index++;
+      }
+    }
+    dart.fn(skipWS, VoidTovoid$());
+    function parseValue() {
+      let start = index;
+      while (!dart.test(done())) {
+        if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == valueSeparator || s[dartx._get](index) == parameterSeparator) break;
+        index++;
+      }
+      return s[dartx.substring](start, index);
+    }
+    dart.fn(parseValue, VoidToString$());
+    function expect(expected) {
+      if (dart.test(done()) || s[dartx._get](index) != expected) {
+        dart.throw(new io.HttpException("Failed to parse header value"));
+      }
+      index++;
+    }
+    dart.fn(expect, StringTovoid$());
+    function maybeExpect(expected) {
+      if (s[dartx._get](index) == expected) index++;
+    }
+    dart.fn(maybeExpect, StringTovoid$());
+    const parseParameters = (function() {
+      let parameters = HashMapOfString$String().new();
+      this[_parameters] = new (UnmodifiableMapViewOfString$String())(parameters);
+      function parseParameterName() {
+        let start = index;
+        while (!dart.test(done())) {
+          if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == "=" || s[dartx._get](index) == parameterSeparator || s[dartx._get](index) == valueSeparator) break;
+          index++;
+        }
+        return s[dartx.substring](start, index)[dartx.toLowerCase]();
+      }
+      dart.fn(parseParameterName, VoidToString$());
+      function parseParameterValue() {
+        if (!dart.test(done()) && s[dartx._get](index) == "\"") {
+          let sb = new core.StringBuffer();
+          index++;
+          while (!dart.test(done())) {
+            if (s[dartx._get](index) == "\\") {
+              if (index + 1 == s[dartx.length]) {
+                dart.throw(new io.HttpException("Failed to parse header value"));
+              }
+              if (dart.test(preserveBackslash) && s[dartx._get](index + 1) != "\"") {
+                sb.write(s[dartx._get](index));
+              }
+              index++;
+            } else if (s[dartx._get](index) == "\"") {
+              index++;
+              break;
+            }
+            sb.write(s[dartx._get](index));
+            index++;
+          }
+          return sb.toString();
+        } else {
+          let val = parseValue();
+          return val == "" ? null : val;
+        }
+      }
+      dart.fn(parseParameterValue, VoidToString$());
+      while (!dart.test(done())) {
+        skipWS();
+        if (dart.test(done())) return;
+        let name = parseParameterName();
+        skipWS();
+        if (dart.test(done())) {
+          parameters._set(name, null);
+          return;
+        }
+        maybeExpect("=");
+        skipWS();
+        if (dart.test(done())) {
+          parameters._set(name, null);
+          return;
+        }
+        let value = parseParameterValue();
+        if (name == 'charset' && io._ContentType.is(this)) {
+          value = value[dartx.toLowerCase]();
+        }
+        parameters._set(name, value);
+        skipWS();
+        if (dart.test(done())) return;
+        if (s[dartx._get](index) == valueSeparator) return;
+        expect(parameterSeparator);
+      }
+    }).bind(this);
+    dart.fn(parseParameters, VoidTovoid$());
+    skipWS();
+    this[_value$1] = parseValue();
+    skipWS();
+    if (dart.test(done())) return;
+    maybeExpect(parameterSeparator);
+    parseParameters();
+  }
+};
+io._HeaderValue[dart.implements] = () => [io.HeaderValue];
+dart.setSignature(io._HeaderValue, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HeaderValue, [], [core.String, MapOfString$String()])}),
+  fields: () => ({
+    [_value$1]: core.String,
+    [_parameters]: MapOfString$String(),
+    [_unmodifiableParameters]: MapOfString$String()
+  }),
+  getters: () => ({
+    value: dart.definiteFunctionType(core.String, []),
+    parameters: dart.definiteFunctionType(core.Map$(core.String, core.String), [])
+  }),
+  methods: () => ({
+    [_ensureParameters]: dart.definiteFunctionType(dart.void, []),
+    [_parse]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String, core.bool])
+  }),
+  statics: () => ({parse: dart.definiteFunctionType(io._HeaderValue, [core.String], {parameterSeparator: dart.dynamic, valueSeparator: dart.dynamic, preserveBackslash: dart.dynamic})}),
+  names: ['parse']
+});
+const _primaryType = Symbol('_primaryType');
+const _subType = Symbol('_subType');
+io._ContentType = class _ContentType extends io._HeaderValue {
+  new(primaryType, subType, charset, parameters) {
+    this[_primaryType] = primaryType;
+    this[_subType] = subType;
+    super.new("");
+    if (this[_primaryType] == null) this[_primaryType] = "";
+    if (this[_subType] == null) this[_subType] = "";
+    this[_value$1] = dart.str`${this[_primaryType]}/${this[_subType]}`;
+    if (parameters != null) {
+      this[_ensureParameters]();
+      parameters[dartx.forEach](dart.fn((key, value) => {
+        let lowerCaseKey = key[dartx.toLowerCase]();
+        if (lowerCaseKey == "charset") {
+          value = value[dartx.toLowerCase]();
+        }
+        this[_parameters][dartx._set](lowerCaseKey, value);
+      }, StringAndStringToNull()));
+    }
+    if (charset != null) {
+      this[_ensureParameters]();
+      this[_parameters][dartx._set]("charset", charset[dartx.toLowerCase]());
+    }
+  }
+  _() {
+    this[_primaryType] = "";
+    this[_subType] = "";
+    super.new();
+  }
+  static parse(value) {
+    let result = new io._ContentType._();
+    result[_parse](value, ";", null, false);
+    let index = result[_value$1][dartx.indexOf]("/");
+    if (index == -1 || index == dart.notNull(result[_value$1][dartx.length]) - 1) {
+      result[_primaryType] = result[_value$1][dartx.trim]()[dartx.toLowerCase]();
+      result[_subType] = "";
+    } else {
+      result[_primaryType] = result[_value$1][dartx.substring](0, index)[dartx.trim]()[dartx.toLowerCase]();
+      result[_subType] = result[_value$1][dartx.substring](dart.notNull(index) + 1)[dartx.trim]()[dartx.toLowerCase]();
+    }
+    return result;
+  }
+  get mimeType() {
+    return dart.str`${this.primaryType}/${this.subType}`;
+  }
+  get primaryType() {
+    return this[_primaryType];
+  }
+  get subType() {
+    return this[_subType];
+  }
+  get charset() {
+    return this.parameters[dartx._get]("charset");
+  }
+};
+dart.defineNamedConstructor(io._ContentType, '_');
+io._ContentType[dart.implements] = () => [io.ContentType];
+dart.setSignature(io._ContentType, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._ContentType, [core.String, core.String, core.String, MapOfString$String()]),
+    _: dart.definiteFunctionType(io._ContentType, [])
+  }),
+  fields: () => ({
+    [_primaryType]: core.String,
+    [_subType]: core.String
+  }),
+  getters: () => ({
+    mimeType: dart.definiteFunctionType(core.String, []),
+    primaryType: dart.definiteFunctionType(core.String, []),
+    subType: dart.definiteFunctionType(core.String, []),
+    charset: dart.definiteFunctionType(core.String, [])
+  }),
+  statics: () => ({parse: dart.definiteFunctionType(io._ContentType, [core.String])}),
+  names: ['parse']
+});
+const _validate = Symbol('_validate');
+const _parseSetCookieValue = Symbol('_parseSetCookieValue');
+let const$67;
+io._Cookie = class _Cookie extends core.Object {
+  new(name, value) {
+    if (name === void 0) name = null;
+    if (value === void 0) value = null;
+    this.name = name;
+    this.value = value;
+    this.expires = null;
+    this.maxAge = null;
+    this.domain = null;
+    this.path = null;
+    this.httpOnly = false;
+    this.secure = false;
+    this.httpOnly = true;
+    this[_validate]();
+  }
+  fromSetCookieValue(value) {
+    this.name = null;
+    this.value = null;
+    this.expires = null;
+    this.maxAge = null;
+    this.domain = null;
+    this.path = null;
+    this.httpOnly = false;
+    this.secure = false;
+    this[_parseSetCookieValue](value);
+  }
+  [_parseSetCookieValue](s) {
+    let index = 0;
+    function done() {
+      return index == s[dartx.length];
+    }
+    dart.fn(done, VoidTobool());
+    function parseName() {
+      let start = index;
+      while (!dart.test(done())) {
+        if (s[dartx._get](index) == "=") break;
+        index++;
+      }
+      return s[dartx.substring](start, index)[dartx.trim]();
+    }
+    dart.fn(parseName, VoidToString$());
+    function parseValue() {
+      let start = index;
+      while (!dart.test(done())) {
+        if (s[dartx._get](index) == ";") break;
+        index++;
+      }
+      return s[dartx.substring](start, index)[dartx.trim]();
+    }
+    dart.fn(parseValue, VoidToString$());
+    function expect(expected) {
+      if (dart.test(done())) dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
+      if (s[dartx._get](index) != expected) {
+        dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
+      }
+      index++;
+    }
+    dart.fn(expect, StringTovoid$());
+    const parseAttributes = (function() {
+      function parseAttributeName() {
+        let start = index;
+        while (!dart.test(done())) {
+          if (s[dartx._get](index) == "=" || s[dartx._get](index) == ";") break;
+          index++;
+        }
+        return s[dartx.substring](start, index)[dartx.trim]()[dartx.toLowerCase]();
+      }
+      dart.fn(parseAttributeName, VoidToString$());
+      function parseAttributeValue() {
+        let start = index;
+        while (!dart.test(done())) {
+          if (s[dartx._get](index) == ";") break;
+          index++;
+        }
+        return s[dartx.substring](start, index)[dartx.trim]()[dartx.toLowerCase]();
+      }
+      dart.fn(parseAttributeValue, VoidToString$());
+      while (!dart.test(done())) {
+        let name = parseAttributeName();
+        let value = "";
+        if (!dart.test(done()) && s[dartx._get](index) == "=") {
+          index++;
+          value = parseAttributeValue();
+        }
+        if (name == "expires") {
+          this.expires = io.HttpDate._parseCookieDate(value);
+        } else if (name == "max-age") {
+          this.maxAge = core.int.parse(value);
+        } else if (name == "domain") {
+          this.domain = value;
+        } else if (name == "path") {
+          this.path = value;
+        } else if (name == "httponly") {
+          this.httpOnly = true;
+        } else if (name == "secure") {
+          this.secure = true;
+        }
+        if (!dart.test(done())) index++;
+      }
+    }).bind(this);
+    dart.fn(parseAttributes, VoidTovoid$());
+    this.name = parseName();
+    if (dart.test(done()) || this.name[dartx.length] == 0) {
+      dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
+    }
+    index++;
+    this.value = parseValue();
+    this[_validate]();
+    if (dart.test(done())) return;
+    index++;
+    parseAttributes();
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    sb.write(this.name);
+    sb.write("=");
+    sb.write(this.value);
+    if (this.expires != null) {
+      sb.write("; Expires=");
+      sb.write(io.HttpDate.format(this.expires));
+    }
+    if (this.maxAge != null) {
+      sb.write("; Max-Age=");
+      sb.write(this.maxAge);
+    }
+    if (this.domain != null) {
+      sb.write("; Domain=");
+      sb.write(this.domain);
+    }
+    if (this.path != null) {
+      sb.write("; Path=");
+      sb.write(this.path);
+    }
+    if (dart.test(this.secure)) sb.write("; Secure");
+    if (dart.test(this.httpOnly)) sb.write("; HttpOnly");
+    return sb.toString();
+  }
+  [_validate]() {
+    let SEPERATORS = const$67 || (const$67 = dart.constList(["(", ")", "<", ">", "@", ",", ";", ":", "\\", '"', "/", "[", "]", "?", "=", "{", "}"], core.String));
+    for (let i = 0; i < dart.notNull(this.name[dartx.length]); i++) {
+      let codeUnit = this.name[dartx.codeUnits][dartx._get](i);
+      if (dart.notNull(codeUnit) <= 32 || dart.notNull(codeUnit) >= 127 || dart.notNull(SEPERATORS[dartx.indexOf](this.name[dartx._get](i))) >= 0) {
+        dart.throw(new core.FormatException(dart.str`Invalid character in cookie name, code unit: '${codeUnit}'`));
+      }
+    }
+    for (let i = 0; i < dart.notNull(this.value[dartx.length]); i++) {
+      let codeUnit = this.value[dartx.codeUnits][dartx._get](i);
+      if (!(codeUnit == 33 || dart.notNull(codeUnit) >= 35 && dart.notNull(codeUnit) <= 43 || dart.notNull(codeUnit) >= 45 && dart.notNull(codeUnit) <= 58 || dart.notNull(codeUnit) >= 60 && dart.notNull(codeUnit) <= 91 || dart.notNull(codeUnit) >= 93 && dart.notNull(codeUnit) <= 126)) {
+        dart.throw(new core.FormatException(dart.str`Invalid character in cookie value, code unit: '${codeUnit}'`));
+      }
+    }
+  }
+};
+dart.defineNamedConstructor(io._Cookie, 'fromSetCookieValue');
+io._Cookie[dart.implements] = () => [io.Cookie];
+dart.setSignature(io._Cookie, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._Cookie, [], [core.String, core.String]),
+    fromSetCookieValue: dart.definiteFunctionType(io._Cookie, [core.String])
+  }),
+  fields: () => ({
+    name: core.String,
+    value: core.String,
+    expires: core.DateTime,
+    maxAge: core.int,
+    domain: core.String,
+    path: core.String,
+    httpOnly: core.bool,
+    secure: core.bool
+  }),
+  methods: () => ({
+    [_parseSetCookieValue]: dart.definiteFunctionType(dart.void, [core.String]),
+    [_validate]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+io._OUTGOING_BUFFER_SIZE = 8 * 1024;
+const _transferLength = Symbol('_transferLength');
+const _dataCompleter = Symbol('_dataCompleter');
+const _stream$ = Symbol('_stream');
+io._HttpIncoming = class _HttpIncoming extends async.Stream$(core.List$(core.int)) {
+  get transferLength() {
+    return this[_transferLength];
+  }
+  new(headers, transferLength, stream) {
+    this[_dataCompleter] = async.Completer.new();
+    this.headers = headers;
+    this[_transferLength] = transferLength;
+    this[_stream$] = stream;
+    this.fullBodyRead = false;
+    this.upgraded = false;
+    this.statusCode = null;
+    this.reasonPhrase = null;
+    this.method = null;
+    this.uri = null;
+    this.hasSubscriber = false;
+    super.new();
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    this.hasSubscriber = true;
+    return this[_stream$].handleError(dart.fn(error => {
+      dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
+    }, dynamicToNull$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  get dataDone() {
+    return this[_dataCompleter].future;
+  }
+  close(closing) {
+    this.fullBodyRead = true;
+    this.hasSubscriber = true;
+    this[_dataCompleter].complete(closing);
+  }
+};
+dart.addSimpleTypeTests(io._HttpIncoming);
+dart.setSignature(io._HttpIncoming, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpIncoming, [io._HttpHeaders, core.int, StreamOfListOfint()])}),
+  fields: () => ({
+    [_transferLength]: core.int,
+    [_dataCompleter]: async.Completer,
+    [_stream$]: StreamOfListOfint(),
+    fullBodyRead: core.bool,
+    headers: io._HttpHeaders,
+    upgraded: core.bool,
+    statusCode: core.int,
+    reasonPhrase: core.String,
+    method: core.String,
+    uri: core.Uri,
+    hasSubscriber: core.bool
+  }),
+  getters: () => ({
+    transferLength: dart.definiteFunctionType(core.int, []),
+    dataDone: dart.definiteFunctionType(async.Future, [])
+  }),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    close: dart.definiteFunctionType(dart.void, [core.bool])
+  })
+});
+const _incoming = Symbol('_incoming');
+const _cookies = Symbol('_cookies');
+io._HttpInboundMessage = class _HttpInboundMessage extends async.Stream$(core.List$(core.int)) {
+  new(incoming) {
+    this[_incoming] = incoming;
+    this[_cookies] = null;
+    super.new();
+  }
+  get cookies() {
+    if (this[_cookies] != null) return this[_cookies];
+    return this[_cookies] = this.headers[_parseCookies]();
+  }
+  get headers() {
+    return this[_incoming].headers;
+  }
+  get protocolVersion() {
+    return this.headers.protocolVersion;
+  }
+  get contentLength() {
+    return this.headers.contentLength;
+  }
+  get persistentConnection() {
+    return this.headers.persistentConnection;
+  }
+};
+dart.addSimpleTypeTests(io._HttpInboundMessage);
+dart.setSignature(io._HttpInboundMessage, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpInboundMessage, [io._HttpIncoming])}),
+  fields: () => ({
+    [_incoming]: io._HttpIncoming,
+    [_cookies]: ListOfCookie()
+  }),
+  getters: () => ({
+    cookies: dart.definiteFunctionType(core.List$(io.Cookie), []),
+    headers: dart.definiteFunctionType(io._HttpHeaders, []),
+    protocolVersion: dart.definiteFunctionType(core.String, []),
+    contentLength: dart.definiteFunctionType(core.int, []),
+    persistentConnection: dart.definiteFunctionType(core.bool, [])
+  })
+});
+const _httpServer = Symbol('_httpServer');
+const _httpConnection = Symbol('_httpConnection');
+const _session = Symbol('_session');
+const _requestedUri = Symbol('_requestedUri');
+const _sessionManagerInstance = Symbol('_sessionManagerInstance');
+const _sessionManager = Symbol('_sessionManager');
+const _markSeen = Symbol('_markSeen');
+const _socket = Symbol('_socket');
+const _destroyed = Symbol('_destroyed');
+io._HttpRequest = class _HttpRequest extends io._HttpInboundMessage {
+  new(response, _incoming, httpServer, httpConnection) {
+    this.response = response;
+    this[_httpServer] = httpServer;
+    this[_httpConnection] = httpConnection;
+    this[_session] = null;
+    this[_requestedUri] = null;
+    super.new(_incoming);
+    if (this.headers.protocolVersion == "1.1") {
+      let _ = this.response.headers;
+      _.chunkedTransferEncoding = true;
+      _.persistentConnection = this.headers.persistentConnection;
+    }
+    if (this[_httpServer][_sessionManagerInstance] != null) {
+      let sessionIds = this.cookies[dartx.where](dart.fn(cookie => cookie.name[dartx.toUpperCase]() == io._DART_SESSION_ID, CookieTobool()))[dartx.map](core.String)(dart.fn(cookie => cookie.value, CookieToString()));
+      for (let sessionId of sessionIds) {
+        this[_session] = this[_httpServer][_sessionManager].getSession(sessionId);
+        if (this[_session] != null) {
+          this[_session][_markSeen]();
+          break;
+        }
+      }
+    }
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_incoming].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  get uri() {
+    return this[_incoming].uri;
+  }
+  get requestedUri() {
+    if (this[_requestedUri] == null) {
+      let proto = this.headers._get('x-forwarded-proto');
+      let scheme = proto != null ? proto[dartx.first] : io.SecureSocket.is(this[_httpConnection][_socket]) ? "https" : "http";
+      let hostList = this.headers._get('x-forwarded-host');
+      let host = null;
+      if (hostList != null) {
+        host = hostList[dartx.first];
+      } else {
+        hostList = this.headers._get('host');
+        if (hostList != null) {
+          host = hostList[dartx.first];
+        } else {
+          host = dart.str`${this[_httpServer].address.host}:${this[_httpServer].port}`;
+        }
+      }
+      this[_requestedUri] = core.Uri.parse(dart.str`${scheme}://${host}${this.uri}`);
+    }
+    return this[_requestedUri];
+  }
+  get method() {
+    return this[_incoming].method;
+  }
+  get session() {
+    if (this[_session] != null) {
+      if (dart.test(this[_session][_destroyed])) {
+        this[_session] = null;
+        return this.session;
+      }
+      return this[_session];
+    }
+    return this[_session] = this[_httpServer][_sessionManager].createSession();
+  }
+  get connectionInfo() {
+    return this[_httpConnection].connectionInfo;
+  }
+  get certificate() {
+    let socket = this[_httpConnection][_socket];
+    if (io.SecureSocket.is(socket)) return socket.peerCertificate;
+    return null;
+  }
+};
+io._HttpRequest[dart.implements] = () => [io.HttpRequest];
+dart.setSignature(io._HttpRequest, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpRequest, [io.HttpResponse, io._HttpIncoming, io._HttpServer, io._HttpConnection])}),
+  fields: () => ({
+    response: io.HttpResponse,
+    [_httpServer]: io._HttpServer,
+    [_httpConnection]: io._HttpConnection,
+    [_session]: io._HttpSession,
+    [_requestedUri]: core.Uri
+  }),
+  getters: () => ({
+    uri: dart.definiteFunctionType(core.Uri, []),
+    requestedUri: dart.definiteFunctionType(core.Uri, []),
+    method: dart.definiteFunctionType(core.String, []),
+    session: dart.definiteFunctionType(io.HttpSession, []),
+    connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
+    certificate: dart.definiteFunctionType(io.X509Certificate, [])
+  }),
+  methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+});
+const _responseRedirects = Symbol('_responseRedirects');
+const _httpRequest = Symbol('_httpRequest');
+const _httpClient = Symbol('_httpClient');
+const _httpClientConnection = Symbol('_httpClientConnection');
+const _openUrlFromRequest = Symbol('_openUrlFromRequest');
+const _connectionClosed = Symbol('_connectionClosed');
+const _shouldAuthenticateProxy = Symbol('_shouldAuthenticateProxy');
+const _shouldAuthenticate = Symbol('_shouldAuthenticate');
+const _proxy = Symbol('_proxy');
+const _findProxyCredentials = Symbol('_findProxyCredentials');
+const _findCredentials = Symbol('_findCredentials');
+const _removeProxyCredentials = Symbol('_removeProxyCredentials');
+const _removeCredentials = Symbol('_removeCredentials');
+const _authenticateProxy = Symbol('_authenticateProxy');
+const _authenticate = Symbol('_authenticate');
+io._HttpClientResponse = class _HttpClientResponse extends io._HttpInboundMessage {
+  get redirects() {
+    return this[_httpRequest][_responseRedirects];
+  }
+  new(_incoming, httpRequest, httpClient) {
+    this[_httpRequest] = httpRequest;
+    this[_httpClient] = httpClient;
+    super.new(_incoming);
+    _incoming.uri = this[_httpRequest].uri;
+  }
+  get statusCode() {
+    return this[_incoming].statusCode;
+  }
+  get reasonPhrase() {
+    return this[_incoming].reasonPhrase;
+  }
+  get certificate() {
+    let socket = this[_httpRequest][_httpClientConnection][_socket];
+    if (io.SecureSocket.is(socket)) return socket.peerCertificate;
+    dart.throw(new core.UnsupportedError("Socket is not a SecureSocket"));
+  }
+  get cookies() {
+    if (this[_cookies] != null) return this[_cookies];
+    this[_cookies] = ListOfCookie().new();
+    let values = this.headers._get(io.HttpHeaders.SET_COOKIE);
+    if (values != null) {
+      values[dartx.forEach](dart.fn(value => {
+        this[_cookies][dartx.add](io.Cookie.fromSetCookieValue(value));
+      }, StringToNull()));
+    }
+    return this[_cookies];
+  }
+  get isRedirect() {
+    if (this[_httpRequest].method == "GET" || this[_httpRequest].method == "HEAD") {
+      return this.statusCode == io.HttpStatus.MOVED_PERMANENTLY || this.statusCode == io.HttpStatus.FOUND || this.statusCode == io.HttpStatus.SEE_OTHER || this.statusCode == io.HttpStatus.TEMPORARY_REDIRECT;
+    } else if (this[_httpRequest].method == "POST") {
+      return this.statusCode == io.HttpStatus.SEE_OTHER;
+    }
+    return false;
+  }
+  redirect(method, url, followLoops) {
+    if (method === void 0) method = null;
+    if (url === void 0) url = null;
+    if (followLoops === void 0) followLoops = null;
+    if (method == null) {
+      if (this.statusCode == io.HttpStatus.SEE_OTHER && this[_httpRequest].method == "POST") {
+        method = "GET";
+      } else {
+        method = this[_httpRequest].method;
+      }
+    }
+    if (url == null) {
+      let location = this.headers.value(io.HttpHeaders.LOCATION);
+      if (location == null) {
+        dart.throw(new core.StateError("Response has no Location header for redirect"));
+      }
+      url = core.Uri.parse(location);
+    }
+    if (followLoops != true) {
+      for (let redirect of this.redirects) {
+        if (dart.equals(redirect.location, url)) {
+          return FutureOfHttpClientResponse().error(new io.RedirectException("Redirect loop detected", this.redirects));
+        }
+      }
+    }
+    return this[_httpClient][_openUrlFromRequest](method, url, this[_httpRequest]).then(io.HttpClientResponse)(dart.fn(request => {
+      let _ = request[_responseRedirects];
+      _[dartx.addAll](this.redirects);
+      _[dartx.add](new io._RedirectInfo(this.statusCode, method, url));
+      return request.close();
+    }, _HttpClientRequestToFutureOfHttpClientResponse()));
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    if (dart.test(this[_incoming].upgraded)) {
+      this[_httpRequest][_httpClientConnection].destroy();
+      return StreamSubscriptionOfListOfint()._check(async.Stream.fromIterable([]).listen(null, {onDone: onDone}));
+    }
+    let stream = this[_incoming];
+    if (dart.test(this[_httpClient].autoUncompress) && this.headers.value(io.HttpHeaders.CONTENT_ENCODING) == "gzip") {
+      stream = io._HttpIncoming._check(stream.transform(ListOfint())(io.GZIP.decoder));
+    }
+    return stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  detachSocket() {
+    this[_httpClient][_connectionClosed](this[_httpRequest][_httpClientConnection]);
+    return this[_httpRequest][_httpClientConnection].detachSocket();
+  }
+  get connectionInfo() {
+    return this[_httpRequest].connectionInfo;
+  }
+  get [_shouldAuthenticateProxy]() {
+    let challenge = this.headers._get(io.HttpHeaders.PROXY_AUTHENTICATE);
+    return this.statusCode == io.HttpStatus.PROXY_AUTHENTICATION_REQUIRED && challenge != null && challenge[dartx.length] == 1;
+  }
+  get [_shouldAuthenticate]() {
+    let challenge = this.headers._get(io.HttpHeaders.WWW_AUTHENTICATE);
+    return this.statusCode == io.HttpStatus.UNAUTHORIZED && challenge != null && challenge[dartx.length] == 1;
+  }
+  [_authenticate](proxyAuth) {
+    const retry = (function() {
+      return this.drain(dart.dynamic)().then(io.HttpClientResponse)(dart.fn(_ => this[_httpClient][_openUrlFromRequest](this[_httpRequest].method, this[_httpRequest].uri, this[_httpRequest]).then(io.HttpClientResponse)(dart.fn(request => request.close(), _HttpClientRequestToFutureOfHttpClientResponse())), dynamicToFutureOfHttpClientResponse()));
+    }).bind(this);
+    dart.fn(retry, VoidToFutureOfHttpClientResponse());
+    const authChallenge = (function() {
+      return dart.test(proxyAuth) ? this.headers._get(io.HttpHeaders.PROXY_AUTHENTICATE) : this.headers._get(io.HttpHeaders.WWW_AUTHENTICATE);
+    }).bind(this);
+    dart.fn(authChallenge, VoidToListOfString());
+    const findCredentials = (function(scheme) {
+      return dart.test(proxyAuth) ? this[_httpClient][_findProxyCredentials](this[_httpRequest][_proxy], scheme) : this[_httpClient][_findCredentials](this[_httpRequest].uri, scheme);
+    }).bind(this);
+    dart.fn(findCredentials, _AuthenticationSchemeTo_Credentials());
+    const removeCredentials = (function(cr) {
+      if (dart.test(proxyAuth)) {
+        this[_httpClient][_removeProxyCredentials](cr);
+      } else {
+        this[_httpClient][_removeCredentials](cr);
+      }
+    }).bind(this);
+    dart.fn(removeCredentials, _CredentialsTovoid());
+    const requestAuthentication = (function(scheme, realm) {
+      if (dart.test(proxyAuth)) {
+        if (this[_httpClient][_authenticateProxy] == null) {
+          return async.Future.value(false);
+        }
+        let proxy = this[_httpRequest][_proxy];
+        return async.Future._check(dart.dsend(this[_httpClient], _authenticateProxy, proxy.host, proxy.port, dart.toString(scheme), realm));
+      } else {
+        if (this[_httpClient][_authenticate] == null) {
+          return async.Future.value(false);
+        }
+        return async.Future._check(dart.dsend(this[_httpClient], _authenticate, this[_httpRequest].uri, dart.toString(scheme), realm));
+      }
+    }).bind(this);
+    dart.fn(requestAuthentication, _AuthenticationSchemeAndStringToFuture());
+    let challenge = authChallenge();
+    dart.assert(challenge != null || challenge[dartx.length] == 1);
+    let header = io._HeaderValue.parse(challenge[dartx._get](0), {parameterSeparator: ","});
+    let scheme = io._AuthenticationScheme.fromString(header.value);
+    let realm = header.parameters[dartx._get]("realm");
+    let cr = findCredentials(scheme);
+    if (cr != null) {
+      if (dart.equals(cr.scheme, io._AuthenticationScheme.BASIC) && !dart.test(cr.used)) {
+        return retry();
+      }
+      if (dart.equals(cr.scheme, io._AuthenticationScheme.DIGEST) && (header.parameters[dartx._get]("algorithm") == null || header.parameters[dartx._get]("algorithm")[dartx.toLowerCase]() == "md5")) {
+        if (cr.nonce == null || cr.nonce == header.parameters[dartx._get]("nonce")) {
+          if (cr.nonce == null) {
+            let _ = cr;
+            _.nonce = header.parameters[dartx._get]("nonce");
+            _.algorithm = "MD5";
+            _.qop = header.parameters[dartx._get]("qop");
+            _.nonceCount = 0;
+          }
+          return retry();
+        } else if (header.parameters[dartx._get]("stale") != null && header.parameters[dartx._get]("stale")[dartx.toLowerCase]() == "true") {
+          cr.nonce = header.parameters[dartx._get]("nonce");
+          return retry();
+        }
+      }
+    }
+    if (cr != null) {
+      removeCredentials(cr);
+      cr = null;
+    }
+    return requestAuthentication(scheme, realm).then(io.HttpClientResponse)(dart.fn(credsAvailable => {
+      if (dart.test(credsAvailable)) {
+        cr = this[_httpClient][_findCredentials](this[_httpRequest].uri, scheme);
+        return retry();
+      } else {
+        return this;
+      }
+    }, dynamicToFutureOrOfHttpClientResponse()));
+  }
+};
+io._HttpClientResponse[dart.implements] = () => [io.HttpClientResponse];
+dart.setSignature(io._HttpClientResponse, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpClientResponse, [io._HttpIncoming, io._HttpClientRequest, io._HttpClient])}),
+  fields: () => ({
+    [_httpClient]: io._HttpClient,
+    [_httpRequest]: io._HttpClientRequest
+  }),
+  getters: () => ({
+    redirects: dart.definiteFunctionType(core.List$(io.RedirectInfo), []),
+    statusCode: dart.definiteFunctionType(core.int, []),
+    reasonPhrase: dart.definiteFunctionType(core.String, []),
+    certificate: dart.definiteFunctionType(io.X509Certificate, []),
+    isRedirect: dart.definiteFunctionType(core.bool, []),
+    connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
+    [_shouldAuthenticateProxy]: dart.definiteFunctionType(core.bool, []),
+    [_shouldAuthenticate]: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    redirect: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), [], [core.String, core.Uri, core.bool]),
+    listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
+    [_authenticate]: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), [core.bool])
+  })
+});
+const _uri = Symbol('_uri');
+const _outgoing = Symbol('_outgoing');
+const _encodingSet = Symbol('_encodingSet');
+const _bufferOutput = Symbol('_bufferOutput');
+const _encodingMutable = Symbol('_encodingMutable');
+const _encoding = Symbol('_encoding');
+const _isConnectionClosed = Symbol('_isConnectionClosed');
+const _doneCompleter = Symbol('_doneCompleter');
+const _target$ = Symbol('_target');
+const _controllerInstance = Symbol('_controllerInstance');
+const _controllerCompleter = Symbol('_controllerCompleter');
+const _isClosed$0 = Symbol('_isClosed');
+const _isBound = Symbol('_isBound');
+const _hasError$ = Symbol('_hasError');
+const _closeTarget = Symbol('_closeTarget');
+const _completeDoneValue = Symbol('_completeDoneValue');
+const _completeDoneError = Symbol('_completeDoneError');
+io._StreamSinkImpl$ = dart.generic(T => {
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  let StreamSinkOfT = () => (StreamSinkOfT = dart.constFn(async.StreamSink$(T)))();
+  let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
+  class _StreamSinkImpl extends core.Object {
+    new(target) {
+      this[_doneCompleter] = async.Completer.new();
+      this[_target$] = target;
+      this[_controllerInstance] = null;
+      this[_controllerCompleter] = null;
+      this[_isClosed$0] = false;
+      this[_isBound] = false;
+      this[_hasError$] = false;
+    }
+    add(data) {
+      T._check(data);
+      if (dart.test(this[_isClosed$0])) return;
+      this[_controller$0].add(data);
+    }
+    addError(error, stackTrace) {
+      if (stackTrace === void 0) stackTrace = null;
+      this[_controller$0].addError(error, stackTrace);
+    }
+    addStream(stream) {
+      StreamOfT()._check(stream);
+      if (dart.test(this[_isBound])) {
+        dart.throw(new core.StateError("StreamSink is already bound to a stream"));
+      }
+      this[_isBound] = true;
+      if (dart.test(this[_hasError$])) return this.done;
+      const targetAddStream = (function() {
+        return this[_target$].addStream(stream).whenComplete(dart.fn(() => {
+          this[_isBound] = false;
+        }, VoidToNull()));
+      }).bind(this);
+      dart.fn(targetAddStream, VoidToFuture());
+      if (this[_controllerInstance] == null) return targetAddStream();
+      let future = this[_controllerCompleter].future;
+      this[_controllerInstance].close();
+      return future.then(dart.dynamic)(dart.fn(_ => targetAddStream(), dynamicToFuture()));
+    }
+    flush() {
+      if (dart.test(this[_isBound])) {
+        dart.throw(new core.StateError("StreamSink is bound to a stream"));
+      }
+      if (this[_controllerInstance] == null) return async.Future.value(this);
+      this[_isBound] = true;
+      let future = this[_controllerCompleter].future;
+      this[_controllerInstance].close();
+      return future.whenComplete(dart.fn(() => {
+        this[_isBound] = false;
+      }, VoidToNull()));
+    }
+    close() {
+      if (dart.test(this[_isBound])) {
+        dart.throw(new core.StateError("StreamSink is bound to a stream"));
+      }
+      if (!dart.test(this[_isClosed$0])) {
+        this[_isClosed$0] = true;
+        if (this[_controllerInstance] != null) {
+          this[_controllerInstance].close();
+        } else {
+          this[_closeTarget]();
+        }
+      }
+      return this.done;
+    }
+    [_closeTarget]() {
+      this[_target$].close().then(dart.void)(dart.bind(this, _completeDoneValue), {onError: dart.bind(this, _completeDoneError)});
+    }
+    get done() {
+      return this[_doneCompleter].future;
+    }
+    [_completeDoneValue](value) {
+      if (!dart.test(this[_doneCompleter].isCompleted)) {
+        this[_doneCompleter].complete(value);
+      }
+    }
+    [_completeDoneError](error, stackTrace) {
+      if (!dart.test(this[_doneCompleter].isCompleted)) {
+        this[_hasError$] = true;
+        this[_doneCompleter].completeError(error, stackTrace);
+      }
+    }
+    get [_controller$0]() {
+      if (dart.test(this[_isBound])) {
+        dart.throw(new core.StateError("StreamSink is bound to a stream"));
+      }
+      if (dart.test(this[_isClosed$0])) {
+        dart.throw(new core.StateError("StreamSink is closed"));
+      }
+      if (this[_controllerInstance] == null) {
+        this[_controllerInstance] = StreamControllerOfT().new({sync: true});
+        this[_controllerCompleter] = async.Completer.new();
+        this[_target$].addStream(this[_controller$0].stream).then(dart.dynamic)(dart.fn(_ => {
+          if (dart.test(this[_isBound])) {
+            this[_controllerCompleter].complete(this);
+            this[_controllerCompleter] = null;
+            this[_controllerInstance] = null;
+          } else {
+            this[_closeTarget]();
+          }
+        }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
+            if (dart.test(this[_isBound])) {
+              this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
+              this[_controllerCompleter] = null;
+              this[_controllerInstance] = null;
+            } else {
+              this[_completeDoneError](error, core.StackTrace._check(stackTrace));
+            }
+          }, dynamicAnddynamicToNull())});
+      }
+      return this[_controllerInstance];
+    }
+  }
+  dart.addTypeTests(_StreamSinkImpl);
+  _StreamSinkImpl[dart.implements] = () => [StreamSinkOfT()];
+  dart.setSignature(_StreamSinkImpl, {
+    constructors: () => ({new: dart.definiteFunctionType(io._StreamSinkImpl$(T), [StreamConsumerOfT()])}),
+    fields: () => ({
+      [_target$]: StreamConsumerOfT(),
+      [_doneCompleter]: async.Completer,
+      [_controllerInstance]: StreamControllerOfT(),
+      [_controllerCompleter]: async.Completer,
+      [_isClosed$0]: core.bool,
+      [_isBound]: core.bool,
+      [_hasError$]: core.bool
+    }),
+    getters: () => ({
+      done: dart.definiteFunctionType(async.Future, []),
+      [_controller$0]: dart.definiteFunctionType(async.StreamController$(T), [])
+    }),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [T]),
+      addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+      addStream: dart.definiteFunctionType(async.Future, [StreamOfT()]),
+      flush: dart.definiteFunctionType(async.Future, []),
+      close: dart.definiteFunctionType(async.Future, []),
+      [_closeTarget]: dart.definiteFunctionType(dart.void, []),
+      [_completeDoneValue]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+      [_completeDoneError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])
+    })
+  });
+  return _StreamSinkImpl;
+});
+io._StreamSinkImpl = _StreamSinkImpl();
+io._IOSinkImpl = class _IOSinkImpl extends io._StreamSinkImpl$(core.List$(core.int)) {
+  new(target, encoding) {
+    this[_encoding] = encoding;
+    this[_encodingMutable] = true;
+    super.new(target);
+  }
+  get encoding() {
+    return this[_encoding];
+  }
+  set encoding(value) {
+    if (!dart.test(this[_encodingMutable])) {
+      dart.throw(new core.StateError("IOSink encoding is not mutable"));
+    }
+    this[_encoding] = value;
+  }
+  write(obj) {
+    let string = dart.str`${obj}`;
+    if (dart.test(string[dartx.isEmpty])) return;
+    this.add(this[_encoding].encode(string));
+  }
+  writeAll(objects, separator) {
+    if (separator === void 0) separator = "";
+    let iterator = objects[dartx.iterator];
+    if (!dart.test(iterator.moveNext())) return;
+    if (dart.test(separator[dartx.isEmpty])) {
+      do {
+        this.write(iterator.current);
+      } while (dart.test(iterator.moveNext()));
+    } else {
+      this.write(iterator.current);
+      while (dart.test(iterator.moveNext())) {
+        this.write(separator);
+        this.write(iterator.current);
+      }
+    }
+  }
+  writeln(object) {
+    if (object === void 0) object = "";
+    this.write(object);
+    this.write("\n");
+  }
+  writeCharCode(charCode) {
+    this.write(core.String.fromCharCode(charCode));
+  }
+};
+dart.addSimpleTypeTests(io._IOSinkImpl);
+io._IOSinkImpl[dart.implements] = () => [io.IOSink];
+dart.setSignature(io._IOSinkImpl, {
+  constructors: () => ({new: dart.definiteFunctionType(io._IOSinkImpl, [StreamConsumerOfListOfint(), convert.Encoding])}),
+  fields: () => ({
+    [_encoding]: convert.Encoding,
+    [_encodingMutable]: core.bool
+  }),
+  getters: () => ({encoding: dart.definiteFunctionType(convert.Encoding, [])}),
+  setters: () => ({encoding: dart.definiteFunctionType(dart.void, [convert.Encoding])}),
+  methods: () => ({
+    write: dart.definiteFunctionType(dart.void, [core.Object]),
+    writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
+    writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int])
+  })
+});
+io._HttpOutboundMessage$ = dart.generic(T => {
+  class _HttpOutboundMessage extends io._IOSinkImpl {
+    new(uri, protocolVersion, outgoing, opts) {
+      let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
+      this[_uri] = uri;
+      this.headers = new io._HttpHeaders(protocolVersion, {defaultPortForScheme: uri.scheme == 'https' ? io.HttpClient.DEFAULT_HTTPS_PORT : io.HttpClient.DEFAULT_HTTP_PORT, initialHeaders: initialHeaders});
+      this[_outgoing] = outgoing;
+      this[_encodingSet] = false;
+      this[_bufferOutput] = true;
+      super.new(outgoing, null);
+      this[_outgoing].outbound = this;
+      this[_encodingMutable] = false;
+    }
+    get contentLength() {
+      return this.headers.contentLength;
+    }
+    set contentLength(contentLength) {
+      this.headers.contentLength = contentLength;
+    }
+    get persistentConnection() {
+      return this.headers.persistentConnection;
+    }
+    set persistentConnection(p) {
+      this.headers.persistentConnection = p;
+    }
+    get bufferOutput() {
+      return this[_bufferOutput];
+    }
+    set bufferOutput(bufferOutput) {
+      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
+      this[_bufferOutput] = bufferOutput;
+    }
+    get encoding() {
+      if (dart.test(this[_encodingSet]) && dart.test(this[_outgoing].headersWritten)) {
+        return this[_encoding];
+      }
+      let charset = null;
+      if (this.headers.contentType != null && this.headers.contentType.charset != null) {
+        charset = this.headers.contentType.charset;
+      } else {
+        charset = "iso-8859-1";
+      }
+      return convert.Encoding.getByName(core.String._check(charset));
+    }
+    set encoding(value) {
+      super.encoding = value;
+    }
+    add(data) {
+      if (data[dartx.length] == 0) return;
+      super.add(data);
+    }
+    write(obj) {
+      if (!dart.test(this[_encodingSet])) {
+        this[_encoding] = this.encoding;
+        this[_encodingSet] = true;
+      }
+      super.write(obj);
+    }
+    get [_isConnectionClosed]() {
+      return false;
+    }
+  }
+  dart.addTypeTests(_HttpOutboundMessage);
+  dart.setSignature(_HttpOutboundMessage, {
+    constructors: () => ({new: dart.definiteFunctionType(io._HttpOutboundMessage$(T), [core.Uri, core.String, io._HttpOutgoing], {initialHeaders: io._HttpHeaders})}),
+    fields: () => ({
+      [_encodingSet]: core.bool,
+      [_bufferOutput]: core.bool,
+      [_uri]: core.Uri,
+      [_outgoing]: io._HttpOutgoing,
+      headers: io._HttpHeaders
+    }),
+    getters: () => ({
+      contentLength: dart.definiteFunctionType(core.int, []),
+      persistentConnection: dart.definiteFunctionType(core.bool, []),
+      bufferOutput: dart.definiteFunctionType(core.bool, []),
+      [_isConnectionClosed]: dart.definiteFunctionType(core.bool, [])
+    }),
+    setters: () => ({
+      contentLength: dart.definiteFunctionType(dart.void, [core.int]),
+      persistentConnection: dart.definiteFunctionType(dart.void, [core.bool]),
+      bufferOutput: dart.definiteFunctionType(dart.void, [core.bool])
+    })
+  });
+  return _HttpOutboundMessage;
+});
+io._HttpOutboundMessage = _HttpOutboundMessage();
+const _statusCode = Symbol('_statusCode');
+const _reasonPhrase = Symbol('_reasonPhrase');
+const _deadline = Symbol('_deadline');
+const _deadlineTimer = Symbol('_deadlineTimer');
+const _isClosing = Symbol('_isClosing');
+const _findReasonPhrase = Symbol('_findReasonPhrase');
+const _isNew = Symbol('_isNew');
+const _writeHeader = Symbol('_writeHeader');
+io._HttpResponse = class _HttpResponse extends io._HttpOutboundMessage$(io.HttpResponse) {
+  new(uri, protocolVersion, outgoing, defaultHeaders, serverHeader) {
+    this[_statusCode] = 200;
+    this[_reasonPhrase] = null;
+    this[_cookies] = null;
+    this[_httpRequest] = null;
+    this[_deadline] = null;
+    this[_deadlineTimer] = null;
+    super.new(uri, protocolVersion, outgoing, {initialHeaders: io._HttpHeaders._check(defaultHeaders)});
+    if (serverHeader != null) this.headers.set('server', serverHeader);
+  }
+  get [_isConnectionClosed]() {
+    return this[_httpRequest][_httpConnection][_isClosing];
+  }
+  get cookies() {
+    if (this[_cookies] == null) this[_cookies] = ListOfCookie().new();
+    return this[_cookies];
+  }
+  get statusCode() {
+    return this[_statusCode];
+  }
+  set statusCode(statusCode) {
+    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
+    this[_statusCode] = statusCode;
+  }
+  get reasonPhrase() {
+    return this[_findReasonPhrase](this.statusCode);
+  }
+  set reasonPhrase(reasonPhrase) {
+    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
+    this[_reasonPhrase] = reasonPhrase;
+  }
+  redirect(location, opts) {
+    let status = opts && 'status' in opts ? opts.status : io.HttpStatus.MOVED_TEMPORARILY;
+    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
+    this.statusCode = status;
+    this.headers.set("location", dart.toString(location));
+    return this.close();
+  }
+  detachSocket(opts) {
+    let writeHeaders = opts && 'writeHeaders' in opts ? opts.writeHeaders : true;
+    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Headers already sent"));
+    this.deadline = null;
+    let future = this[_httpRequest][_httpConnection].detachSocket();
+    if (dart.test(writeHeaders)) {
+      let headersFuture = this[_outgoing].writeHeaders({drainRequest: false, setOutgoing: false});
+      dart.assert(headersFuture == null);
+    } else {
+      this[_outgoing].headersWritten = true;
+    }
+    this.close();
+    this.done.catchError(dart.fn(_ => {
+    }, dynamicToNull$()));
+    return future;
+  }
+  get connectionInfo() {
+    return this[_httpRequest].connectionInfo;
+  }
+  get deadline() {
+    return this[_deadline];
+  }
+  set deadline(d) {
+    if (this[_deadlineTimer] != null) this[_deadlineTimer].cancel();
+    this[_deadline] = d;
+    if (this[_deadline] == null) return;
+    this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
+      this[_httpRequest][_httpConnection].destroy();
+    }, VoidToNull()));
+  }
+  [_writeHeader]() {
+    let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
+    let offset = 0;
+    function write(bytes) {
+      let len = bytes[dartx.length];
+      for (let i = 0; i < dart.notNull(len); i++) {
+        buffer[dartx._set](dart.notNull(offset) + i, bytes[dartx._get](i));
+      }
+      offset = dart.notNull(offset) + dart.notNull(len);
+    }
+    dart.fn(write, ListOfintTovoid$());
+    if (this.headers.protocolVersion == "1.1") {
+      write(io._Const.HTTP11);
+    } else {
+      write(io._Const.HTTP10);
+    }
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.SP);
+    write(dart.toString(this.statusCode)[dartx.codeUnits]);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.SP);
+    write(this.reasonPhrase[dartx.codeUnits]);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.CR);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.LF);
+    let session = this[_httpRequest][_session];
+    if (session != null && !dart.test(session[_destroyed])) {
+      session[_isNew] = false;
+      let found = false;
+      for (let i = 0; i < dart.notNull(this.cookies[dartx.length]); i++) {
+        if (this.cookies[dartx._get](i).name[dartx.toUpperCase]() == io._DART_SESSION_ID) {
+          let _ = this.cookies[dartx._get](i);
+          _.value = session.id;
+          _.httpOnly = true;
+          _.path = "/";
+          found = true;
+        }
+      }
+      if (!found) {
+        let cookie = io.Cookie.new(io._DART_SESSION_ID, session.id);
+        this.cookies[dartx.add](((() => {
+          cookie.httpOnly = true;
+          cookie.path = "/";
+          return cookie;
+        })()));
+      }
+    }
+    if (this[_cookies] != null) {
+      this[_cookies][dartx.forEach](dart.fn(cookie => {
+        this.headers.add(io.HttpHeaders.SET_COOKIE, cookie);
+      }, CookieToNull()));
+    }
+    this.headers[_finalize]();
+    offset = this.headers[_write](buffer, offset);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.CR);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.LF);
+    this[_outgoing].setHeader(buffer, offset);
+  }
+  [_findReasonPhrase](statusCode) {
+    if (this[_reasonPhrase] != null) {
+      return this[_reasonPhrase];
+    }
+    switch (statusCode) {
+      case io.HttpStatus.CONTINUE:
+      {
+        return "Continue";
+      }
+      case io.HttpStatus.SWITCHING_PROTOCOLS:
+      {
+        return "Switching Protocols";
+      }
+      case io.HttpStatus.OK:
+      {
+        return "OK";
+      }
+      case io.HttpStatus.CREATED:
+      {
+        return "Created";
+      }
+      case io.HttpStatus.ACCEPTED:
+      {
+        return "Accepted";
+      }
+      case io.HttpStatus.NON_AUTHORITATIVE_INFORMATION:
+      {
+        return "Non-Authoritative Information";
+      }
+      case io.HttpStatus.NO_CONTENT:
+      {
+        return "No Content";
+      }
+      case io.HttpStatus.RESET_CONTENT:
+      {
+        return "Reset Content";
+      }
+      case io.HttpStatus.PARTIAL_CONTENT:
+      {
+        return "Partial Content";
+      }
+      case io.HttpStatus.MULTIPLE_CHOICES:
+      {
+        return "Multiple Choices";
+      }
+      case io.HttpStatus.MOVED_PERMANENTLY:
+      {
+        return "Moved Permanently";
+      }
+      case io.HttpStatus.FOUND:
+      {
+        return "Found";
+      }
+      case io.HttpStatus.SEE_OTHER:
+      {
+        return "See Other";
+      }
+      case io.HttpStatus.NOT_MODIFIED:
+      {
+        return "Not Modified";
+      }
+      case io.HttpStatus.USE_PROXY:
+      {
+        return "Use Proxy";
+      }
+      case io.HttpStatus.TEMPORARY_REDIRECT:
+      {
+        return "Temporary Redirect";
+      }
+      case io.HttpStatus.BAD_REQUEST:
+      {
+        return "Bad Request";
+      }
+      case io.HttpStatus.UNAUTHORIZED:
+      {
+        return "Unauthorized";
+      }
+      case io.HttpStatus.PAYMENT_REQUIRED:
+      {
+        return "Payment Required";
+      }
+      case io.HttpStatus.FORBIDDEN:
+      {
+        return "Forbidden";
+      }
+      case io.HttpStatus.NOT_FOUND:
+      {
+        return "Not Found";
+      }
+      case io.HttpStatus.METHOD_NOT_ALLOWED:
+      {
+        return "Method Not Allowed";
+      }
+      case io.HttpStatus.NOT_ACCEPTABLE:
+      {
+        return "Not Acceptable";
+      }
+      case io.HttpStatus.PROXY_AUTHENTICATION_REQUIRED:
+      {
+        return "Proxy Authentication Required";
+      }
+      case io.HttpStatus.REQUEST_TIMEOUT:
+      {
+        return "Request Time-out";
+      }
+      case io.HttpStatus.CONFLICT:
+      {
+        return "Conflict";
+      }
+      case io.HttpStatus.GONE:
+      {
+        return "Gone";
+      }
+      case io.HttpStatus.LENGTH_REQUIRED:
+      {
+        return "Length Required";
+      }
+      case io.HttpStatus.PRECONDITION_FAILED:
+      {
+        return "Precondition Failed";
+      }
+      case io.HttpStatus.REQUEST_ENTITY_TOO_LARGE:
+      {
+        return "Request Entity Too Large";
+      }
+      case io.HttpStatus.REQUEST_URI_TOO_LONG:
+      {
+        return "Request-URI Too Large";
+      }
+      case io.HttpStatus.UNSUPPORTED_MEDIA_TYPE:
+      {
+        return "Unsupported Media Type";
+      }
+      case io.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE:
+      {
+        return "Requested range not satisfiable";
+      }
+      case io.HttpStatus.EXPECTATION_FAILED:
+      {
+        return "Expectation Failed";
+      }
+      case io.HttpStatus.INTERNAL_SERVER_ERROR:
+      {
+        return "Internal Server Error";
+      }
+      case io.HttpStatus.NOT_IMPLEMENTED:
+      {
+        return "Not Implemented";
+      }
+      case io.HttpStatus.BAD_GATEWAY:
+      {
+        return "Bad Gateway";
+      }
+      case io.HttpStatus.SERVICE_UNAVAILABLE:
+      {
+        return "Service Unavailable";
+      }
+      case io.HttpStatus.GATEWAY_TIMEOUT:
+      {
+        return "Gateway Time-out";
+      }
+      case io.HttpStatus.HTTP_VERSION_NOT_SUPPORTED:
+      {
+        return "Http Version not supported";
+      }
+      default:
+      {
+        return dart.str`Status ${statusCode}`;
+      }
+    }
+  }
+};
+dart.addSimpleTypeTests(io._HttpResponse);
+io._HttpResponse[dart.implements] = () => [io.HttpResponse];
+dart.setSignature(io._HttpResponse, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpResponse, [core.Uri, core.String, io._HttpOutgoing, io.HttpHeaders, core.String])}),
+  fields: () => ({
+    [_statusCode]: core.int,
+    [_reasonPhrase]: core.String,
+    [_cookies]: ListOfCookie(),
+    [_httpRequest]: io._HttpRequest,
+    [_deadline]: core.Duration,
+    [_deadlineTimer]: async.Timer
+  }),
+  getters: () => ({
+    cookies: dart.definiteFunctionType(core.List$(io.Cookie), []),
+    statusCode: dart.definiteFunctionType(core.int, []),
+    reasonPhrase: dart.definiteFunctionType(core.String, []),
+    connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
+    deadline: dart.definiteFunctionType(core.Duration, [])
+  }),
+  setters: () => ({
+    statusCode: dart.definiteFunctionType(dart.void, [core.int]),
+    reasonPhrase: dart.definiteFunctionType(dart.void, [core.String]),
+    deadline: dart.definiteFunctionType(dart.void, [core.Duration])
+  }),
+  methods: () => ({
+    redirect: dart.definiteFunctionType(async.Future, [core.Uri], {status: core.int}),
+    detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), [], {writeHeaders: core.bool}),
+    [_writeHeader]: dart.definiteFunctionType(dart.void, []),
+    [_findReasonPhrase]: dart.definiteFunctionType(core.String, [core.int])
+  })
+});
+const _responseCompleter = Symbol('_responseCompleter');
+const _response = Symbol('_response');
+const _followRedirects = Symbol('_followRedirects');
+const _maxRedirects = Symbol('_maxRedirects');
+const _onIncoming = Symbol('_onIncoming');
+const _onError$ = Symbol('_onError');
+const _proxyTunnel = Symbol('_proxyTunnel');
+const _requestUri = Symbol('_requestUri');
+io._HttpClientRequest = class _HttpClientRequest extends io._HttpOutboundMessage$(io.HttpClientResponse) {
+  new(outgoing, uri, method, proxy, httpClient, httpClientConnection) {
+    this.cookies = ListOfCookie().new();
+    this[_responseCompleter] = CompleterOfHttpClientResponse().new();
+    this[_responseRedirects] = JSArrayOfRedirectInfo().of([]);
+    this.method = method;
+    this[_proxy] = proxy;
+    this[_httpClient] = httpClient;
+    this[_httpClientConnection] = httpClientConnection;
+    this.uri = uri;
+    this[_response] = null;
+    this[_followRedirects] = true;
+    this[_maxRedirects] = 5;
+    super.new(uri, "1.1", outgoing);
+    if (this.method == "GET" || this.method == "HEAD") {
+      this.contentLength = 0;
+    } else {
+      this.headers.chunkedTransferEncoding = true;
+    }
+  }
+  get done() {
+    if (this[_response] == null) {
+      this[_response] = async.Future.wait(dart.dynamic)(JSArrayOfFuture().of([this[_responseCompleter].future, super.done]), {eagerError: true}).then(io.HttpClientResponse)(dart.fn(list => FutureOrOfHttpClientResponse()._check(list[dartx._get](0)), ListToFutureOrOfHttpClientResponse()));
+    }
+    return this[_response];
+  }
+  close() {
+    super.close();
+    return this.done;
+  }
+  get maxRedirects() {
+    return this[_maxRedirects];
+  }
+  set maxRedirects(maxRedirects) {
+    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Request already sent"));
+    this[_maxRedirects] = maxRedirects;
+  }
+  get followRedirects() {
+    return this[_followRedirects];
+  }
+  set followRedirects(followRedirects) {
+    if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Request already sent"));
+    this[_followRedirects] = followRedirects;
+  }
+  get connectionInfo() {
+    return this[_httpClientConnection].connectionInfo;
+  }
+  [_onIncoming](incoming) {
+    let response = new io._HttpClientResponse(incoming, this, this[_httpClient]);
+    let future = null;
+    if (dart.test(this.followRedirects) && dart.test(response.isRedirect)) {
+      if (dart.notNull(response.redirects[dartx.length]) < dart.notNull(this.maxRedirects)) {
+        future = response.drain(dart.dynamic)().then(io.HttpClientResponse)(dart.fn(_ => response.redirect(), dynamicToFutureOfHttpClientResponse()));
+      } else {
+        future = response.drain(dart.dynamic)().then(io.HttpClientResponse)(dart.fn(_ => FutureOfHttpClientResponse().error(new io.RedirectException("Redirect limit exceeded", response.redirects)), dynamicToFutureOfHttpClientResponse()));
+      }
+    } else if (dart.test(response[_shouldAuthenticateProxy])) {
+      future = response[_authenticate](true);
+    } else if (dart.test(response[_shouldAuthenticate])) {
+      future = response[_authenticate](false);
+    } else {
+      future = FutureOfHttpClientResponse().value(response);
+    }
+    future.then(dart.void)(dart.fn(v => this[_responseCompleter].complete(v), HttpClientResponseTovoid()), {onError: dart.bind(this[_responseCompleter], 'completeError')});
+  }
+  [_onError$](error, stackTrace) {
+    this[_responseCompleter].completeError(error, stackTrace);
+  }
+  [_requestUri]() {
+    const uriStartingFromPath = (function() {
+      let result = this.uri.path;
+      if (dart.test(result[dartx.isEmpty])) result = "/";
+      if (dart.test(this.uri.hasQuery)) {
+        result = dart.str`${result}?${this.uri.query}`;
+      }
+      return result;
+    }).bind(this);
+    dart.fn(uriStartingFromPath, VoidToString$());
+    if (dart.test(this[_proxy].isDirect)) {
+      return uriStartingFromPath();
+    } else {
+      if (this.method == "CONNECT") {
+        return dart.str`${this.uri.host}:${this.uri.port}`;
+      } else {
+        if (dart.test(this[_httpClientConnection][_proxyTunnel])) {
+          return uriStartingFromPath();
+        } else {
+          return dart.toString(this.uri.removeFragment());
+        }
+      }
+    }
+  }
+  [_writeHeader]() {
+    let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
+    let offset = 0;
+    function write(bytes) {
+      let len = bytes[dartx.length];
+      for (let i = 0; i < dart.notNull(len); i++) {
+        buffer[dartx._set](dart.notNull(offset) + i, bytes[dartx._get](i));
+      }
+      offset = dart.notNull(offset) + dart.notNull(len);
+    }
+    dart.fn(write, ListOfintTovoid$());
+    write(this.method[dartx.codeUnits]);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.SP);
+    write(this[_requestUri]()[dartx.codeUnits]);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.SP);
+    write(io._Const.HTTP11);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.CR);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.LF);
+    if (!dart.test(this.cookies[dartx.isEmpty])) {
+      let sb = new core.StringBuffer();
+      for (let i = 0; i < dart.notNull(this.cookies[dartx.length]); i++) {
+        if (i > 0) sb.write("; ");
+        sb.write(this.cookies[dartx._get](i).name);
+        sb.write("=");
+        sb.write(this.cookies[dartx._get](i).value);
+      }
+      this.headers.add(io.HttpHeaders.COOKIE, sb.toString());
+    }
+    this.headers[_finalize]();
+    offset = this.headers[_write](buffer, offset);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.CR);
+    buffer[dartx._set]((() => {
+      let x = offset;
+      offset = dart.notNull(x) + 1;
+      return x;
+    })(), io._CharCode.LF);
+    this[_outgoing].setHeader(buffer, offset);
+  }
+};
+dart.addSimpleTypeTests(io._HttpClientRequest);
+io._HttpClientRequest[dart.implements] = () => [io.HttpClientRequest];
+dart.setSignature(io._HttpClientRequest, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpClientRequest, [io._HttpOutgoing, core.Uri, core.String, io._Proxy, io._HttpClient, io._HttpClientConnection])}),
+  fields: () => ({
+    method: core.String,
+    uri: core.Uri,
+    cookies: ListOfCookie(),
+    [_httpClient]: io._HttpClient,
+    [_httpClientConnection]: io._HttpClientConnection,
+    [_responseCompleter]: CompleterOfHttpClientResponse(),
+    [_proxy]: io._Proxy,
+    [_response]: FutureOfHttpClientResponse(),
+    [_followRedirects]: core.bool,
+    [_maxRedirects]: core.int,
+    [_responseRedirects]: ListOfRedirectInfo()
+  }),
+  getters: () => ({
+    done: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), []),
+    maxRedirects: dart.definiteFunctionType(core.int, []),
+    followRedirects: dart.definiteFunctionType(core.bool, []),
+    connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, [])
+  }),
+  setters: () => ({
+    maxRedirects: dart.definiteFunctionType(dart.void, [core.int]),
+    followRedirects: dart.definiteFunctionType(dart.void, [core.bool])
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), []),
+    [_onIncoming]: dart.definiteFunctionType(dart.void, [io._HttpIncoming]),
+    [_onError$]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
+    [_requestUri]: dart.definiteFunctionType(core.String, []),
+    [_writeHeader]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _consume = Symbol('_consume');
+io._HttpGZipSink = class _HttpGZipSink extends convert.ByteConversionSink {
+  new(consume) {
+    this[_consume] = consume;
+    super.new();
+  }
+  add(chunk) {
+    dart.dcall(this[_consume], chunk);
+  }
+  addSlice(chunk, start, end, isLast) {
+    if (typed_data.Uint8List.is(chunk)) {
+      dart.dcall(this[_consume], typed_data.Uint8List.view(chunk[dartx.buffer], start, dart.notNull(end) - dart.notNull(start)));
+    } else {
+      dart.dcall(this[_consume], chunk[dartx.sublist](start, dart.notNull(end) - dart.notNull(start)));
+    }
+  }
+  close() {}
+};
+dart.setSignature(io._HttpGZipSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpGZipSink, [core.Function])}),
+  fields: () => ({[_consume]: core.Function}),
+  methods: () => ({
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool]),
+    close: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _closeFuture = Symbol('_closeFuture');
+const _pendingChunkedFooter = Symbol('_pendingChunkedFooter');
+const _bytesWritten = Symbol('_bytesWritten');
+const _gzip = Symbol('_gzip');
+const _gzipSink = Symbol('_gzipSink');
+const _gzipAdd = Symbol('_gzipAdd');
+const _gzipBuffer = Symbol('_gzipBuffer');
+const _gzipBufferLength = Symbol('_gzipBufferLength');
+const _socketError = Symbol('_socketError');
+const _addGZipChunk = Symbol('_addGZipChunk');
+const _addChunk$ = Symbol('_addChunk');
+const _chunkHeader = Symbol('_chunkHeader');
+const _ignoreError = Symbol('_ignoreError');
+let const$68;
+io._HttpOutgoing = class _HttpOutgoing extends core.Object {
+  new(socket) {
+    this[_doneCompleter] = async.Completer.new();
+    this.socket = socket;
+    this.ignoreBody = false;
+    this.headersWritten = false;
+    this[_buffer$] = null;
+    this[_length$2] = 0;
+    this[_closeFuture] = null;
+    this.chunked = false;
+    this[_pendingChunkedFooter] = 0;
+    this.contentLength = null;
+    this[_bytesWritten] = 0;
+    this[_gzip] = false;
+    this[_gzipSink] = null;
+    this[_gzipAdd] = null;
+    this[_gzipBuffer] = null;
+    this[_gzipBufferLength] = 0;
+    this[_socketError] = false;
+    this.outbound = null;
+  }
+  writeHeaders(opts) {
+    let drainRequest = opts && 'drainRequest' in opts ? opts.drainRequest : true;
+    let setOutgoing = opts && 'setOutgoing' in opts ? opts.setOutgoing : true;
+    const write = (function() {
+      try {
+        this.outbound[_writeHeader]();
+      } catch (_) {
+        return async.Future.error(new io.HttpException(dart.str`Headers size exceeded the of '${io._OUTGOING_BUFFER_SIZE}'` + " bytes"));
+      }
+
+      return null;
+    }).bind(this);
+    dart.fn(write, VoidToFuture());
+    if (dart.test(this.headersWritten)) return null;
+    this.headersWritten = true;
+    let drainFuture = null;
+    let gzip = false;
+    if (io._HttpResponse.is(this.outbound)) {
+      let response = io._HttpResponse._check(this.outbound);
+      if (dart.test(response[_httpRequest][_httpServer].autoCompress) && dart.test(this.outbound.bufferOutput) && dart.test(this.outbound.headers.chunkedTransferEncoding)) {
+        let acceptEncodings = response[_httpRequest].headers._get(io.HttpHeaders.ACCEPT_ENCODING);
+        let contentEncoding = this.outbound.headers._get(io.HttpHeaders.CONTENT_ENCODING);
+        if (acceptEncodings != null && dart.test(acceptEncodings[dartx.expand](dart.dynamic)(dart.fn(list => core.Iterable._check(dart.dsend(list, 'split', ",")), dynamicToIterable()))[dartx.any](dart.fn(encoding => dart.equals(dart.dsend(dart.dsend(encoding, 'trim'), 'toLowerCase'), "gzip"), dynamicTobool$()))) && contentEncoding == null) {
+          this.outbound.headers.set(io.HttpHeaders.CONTENT_ENCODING, "gzip");
+          gzip = true;
+        }
+      }
+      if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
+        drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
+        }, dynamicToNull$()));
+      }
+    } else {
+      drainRequest = false;
+    }
+    if (dart.test(this.ignoreBody)) {
+      return write();
+    }
+    if (dart.test(setOutgoing)) {
+      let contentLength = this.outbound.headers.contentLength;
+      if (dart.test(this.outbound.headers.chunkedTransferEncoding)) {
+        this.chunked = true;
+        if (gzip) this.gzip = true;
+      } else if (dart.notNull(contentLength) >= 0) {
+        this.contentLength = contentLength;
+      }
+    }
+    if (drainFuture != null) {
+      return drainFuture.then(dart.dynamic)(dart.fn(_ => write(), dynamicToFuture()));
+    }
+    return write();
+  }
+  addStream(stream) {
+    if (dart.test(this[_socketError])) {
+      stream.listen(null).cancel();
+      return async.Future.value(this.outbound);
+    }
+    if (dart.test(this.ignoreBody)) {
+      stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
+      }, dynamicToNull$()));
+      let future = this.writeHeaders();
+      if (future != null) {
+        return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
+      }
+      return this.close();
+    }
+    let sub = null;
+    let controller = async.StreamController.new({onPause: dart.fn(() => dart.dsend(sub, 'pause'), VoidTovoid$()), onResume: dart.fn(() => dart.dsend(sub, 'resume'), VoidTovoid$()), sync: true});
+    const onData = (function(data) {
+      if (dart.test(this[_socketError])) return;
+      if (dart.equals(dart.dload(data, 'length'), 0)) return;
+      if (dart.test(this.chunked)) {
+        if (dart.test(this[_gzip])) {
+          this[_gzipAdd] = dart.bind(controller, 'add');
+          this[_addGZipChunk](data, dart.bind(this[_gzipSink], 'add'));
+          this[_gzipAdd] = null;
+          return;
+        }
+        this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), dart.bind(controller, 'add'));
+        this[_pendingChunkedFooter] = 2;
+      } else {
+        if (this.contentLength != null) {
+          this[_bytesWritten] = dart.notNull(this[_bytesWritten]) + dart.notNull(core.num._check(dart.dload(data, 'length')));
+          if (dart.notNull(this[_bytesWritten]) > dart.notNull(this.contentLength)) {
+            controller.addError(new io.HttpException("Content size exceeds specified contentLength. " + dart.str`${this[_bytesWritten]} bytes written while expected ` + dart.str`${this.contentLength}. ` + dart.str`[${core.String.fromCharCodes(IterableOfint()._check(data))}]`));
+            return;
           }
         }
       }
-    }
-    toString() {
-      return this[_separatorIndices][dartx._get](0) == core.UriData._noScheme ? dart.str`data:${this[_text]}` : this[_text];
-    }
-  };
-  dart.defineNamedConstructor(core.UriData, '_');
-  dart.setSignature(core.UriData, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(core.UriData, [core.String, ListOfint(), core.Uri]),
-      fromString: dart.definiteFunctionType(core.UriData, [core.String], {mimeType: core.String, encoding: convert.Encoding, parameters: MapOfString$String(), base64: core.bool}),
-      fromBytes: dart.definiteFunctionType(core.UriData, [ListOfint()], {mimeType: dart.dynamic, parameters: MapOfString$String(), percentEncoded: dart.dynamic}),
-      fromUri: dart.definiteFunctionType(core.UriData, [core.Uri])
-    }),
-    fields: () => ({
-      [_text]: core.String,
-      [_separatorIndices]: ListOfint(),
-      [_uriCache]: core.Uri
-    }),
-    getters: () => ({
-      uri: dart.definiteFunctionType(core.Uri, []),
-      mimeType: dart.definiteFunctionType(core.String, []),
-      charset: dart.definiteFunctionType(core.String, []),
-      isBase64: dart.definiteFunctionType(core.bool, []),
-      contentText: dart.definiteFunctionType(core.String, []),
-      parameters: dart.definiteFunctionType(core.Map$(core.String, core.String), [])
-    }),
-    methods: () => ({
-      contentAsBytes: dart.definiteFunctionType(core.List$(core.int), []),
-      contentAsString: dart.definiteFunctionType(core.String, [], {encoding: convert.Encoding})
-    }),
-    sfields: () => ({
-      _noScheme: core.int,
-      _tokenCharTable: ListOfint(),
-      _uricTable: ListOfint()
-    }),
-    statics: () => ({
-      _writeUri: dart.definiteFunctionType(dart.void, [core.String, core.String, MapOfString$String(), core.StringBuffer, core.List]),
-      _validateMimeType: dart.definiteFunctionType(core.int, [core.String]),
-      parse: dart.definiteFunctionType(core.UriData, [core.String]),
-      _parse: dart.definiteFunctionType(core.UriData, [core.String, core.int, core.Uri]),
-      _uriEncodeBytes: dart.definiteFunctionType(dart.void, [ListOfint(), ListOfint(), core.StringSink])
-    }),
-    names: ['_writeUri', '_validateMimeType', 'parse', '_parse', '_uriEncodeBytes']
-  });
-  core.UriData._noScheme = -1;
-  core.UriData._tokenCharTable = dart.constList([0, 0, 27858, 1023, 65534, 51199, 65535, 32767], core.int);
-  core.UriData._uricTable = core.Uri._queryCharTable;
-  developer.debugger = function(opts) {
-    let when = opts && 'when' in opts ? opts.when : true;
-    let message = opts && 'message' in opts ? opts.message : null;
-    if (dart.test(when)) {
-      debugger;
-    }
-    return when;
-  };
-  dart.fn(developer.debugger, __Tobool());
-  developer.inspect = function(object) {
-    return object;
-  };
-  dart.fn(developer.inspect, ObjectToObject());
-  developer.log = function(message, opts) {
-    let time = opts && 'time' in opts ? opts.time : null;
-    let sequenceNumber = opts && 'sequenceNumber' in opts ? opts.sequenceNumber : null;
-    let level = opts && 'level' in opts ? opts.level : 0;
-    let name = opts && 'name' in opts ? opts.name : '';
-    let zone = opts && 'zone' in opts ? opts.zone : null;
-    let error = opts && 'error' in opts ? opts.error : null;
-    let stackTrace = opts && 'stackTrace' in opts ? opts.stackTrace : null;
-  };
-  dart.fn(developer.log, String__Tovoid$());
-  dart.defineLazy(developer, {
-    get _extensions() {
-      return MapOfString$ServiceExtensionHandler().new();
-    }
-  });
-  developer._clockValue = 0;
-  const _result = Symbol('_result');
-  const _errorCode = Symbol('_errorCode');
-  const _errorDetail = Symbol('_errorDetail');
-  const _isError = Symbol('_isError');
-  const _toString = Symbol('_toString');
-  developer.ServiceExtensionResponse = class ServiceExtensionResponse extends core.Object {
-    result(result) {
-      this[_result] = result;
-      this[_errorCode] = null;
-      this[_errorDetail] = null;
-      if (!(typeof this[_result] == 'string')) {
-        dart.throw(new core.ArgumentError.value(this[_result], "result", "Must be a String"));
+      this[_addChunk$](data, dart.bind(controller, 'add'));
+    }).bind(this);
+    dart.fn(onData, dynamicTovoid$());
+    sub = stream.listen(onData, {onError: dart.bind(controller, 'addError'), onDone: dart.bind(controller, 'close'), cancelOnError: true});
+    if (!dart.test(this.headersWritten)) {
+      let future = this.writeHeaders();
+      if (future != null) {
+        dart.dsend(sub, 'pause', future);
       }
     }
-    error(errorCode, errorDetail) {
-      this[_result] = null;
-      this[_errorCode] = errorCode;
-      this[_errorDetail] = errorDetail;
-      developer.ServiceExtensionResponse._validateErrorCode(this[_errorCode]);
-      if (!(typeof this[_errorDetail] == 'string')) {
-        dart.throw(new core.ArgumentError.value(this[_errorDetail], "errorDetail", "Must be a String"));
+    return this.socket.addStream(StreamOfListOfint()._check(controller.stream)).then(io._HttpOutboundMessage)(dart.fn(_ => this.outbound, dynamicTo_HttpOutboundMessage()), {onError: dart.fn((error, stackTrace) => {
+        if (dart.test(this[_gzip])) this[_gzipSink].close();
+        this[_socketError] = true;
+        this[_doneCompleter].completeError(error, core.StackTrace._check(stackTrace));
+        if (dart.test(this[_ignoreError](error))) {
+          return this.outbound;
+        } else {
+          dart.throw(error);
+        }
+      }, dynamicAnddynamicTo_HttpOutboundMessage())});
+  }
+  close() {
+    if (this[_closeFuture] != null) return this[_closeFuture];
+    if (dart.test(this[_socketError])) return async.Future.value(this.outbound);
+    if (dart.test(this.outbound[_isConnectionClosed])) return async.Future.value(this.outbound);
+    if (!dart.test(this.headersWritten) && !dart.test(this.ignoreBody)) {
+      if (this.outbound.headers.contentLength == -1) {
+        this.outbound.headers.chunkedTransferEncoding = false;
+        this.outbound.headers.contentLength = 0;
+      } else if (dart.notNull(this.outbound.headers.contentLength) > 0) {
+        let error = new io.HttpException("No content even though contentLength was specified to be " + dart.str`greater than 0: ${this.outbound.headers.contentLength}.`, {uri: this.outbound[_uri]});
+        this[_doneCompleter].completeError(error);
+        return this[_closeFuture] = async.Future.error(error);
       }
     }
-    static _errorCodeMessage(errorCode) {
-      developer.ServiceExtensionResponse._validateErrorCode(errorCode);
-      if (errorCode == developer.ServiceExtensionResponse.kInvalidParams) {
-        return "Invalid params";
+    if (this.contentLength != null) {
+      if (dart.notNull(this[_bytesWritten]) < dart.notNull(this.contentLength)) {
+        let error = new io.HttpException("Content size below specified contentLength. " + dart.str` ${this[_bytesWritten]} bytes written but expected ` + dart.str`${this.contentLength}.`, {uri: this.outbound[_uri]});
+        this[_doneCompleter].completeError(error);
+        return this[_closeFuture] = async.Future.error(error);
       }
-      return "Server error";
     }
-    static _validateErrorCode(errorCode) {
-      if (!(typeof errorCode == 'number')) {
-        dart.throw(new core.ArgumentError.value(errorCode, "errorCode", "Must be an int"));
+    const finalize = (function() {
+      if (dart.test(this.chunked)) {
+        if (dart.test(this[_gzip])) {
+          this[_gzipAdd] = dart.bind(this.socket, 'add');
+          if (dart.notNull(this[_gzipBufferLength]) > 0) {
+            this[_gzipSink].add(typed_data.Uint8List.view(this[_gzipBuffer][dartx.buffer], 0, this[_gzipBufferLength]));
+          }
+          this[_gzipBuffer] = null;
+          this[_gzipSink].close();
+          this[_gzipAdd] = null;
+        }
+        this[_addChunk$](this[_chunkHeader](0), dart.bind(this.socket, 'add'));
       }
-      if (errorCode == developer.ServiceExtensionResponse.invalidParams) {
-        return;
+      if (dart.notNull(this[_length$2]) > 0) {
+        this.socket.add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
       }
-      if (dart.notNull(errorCode) >= developer.ServiceExtensionResponse.extensionErrorMin && dart.notNull(errorCode) <= developer.ServiceExtensionResponse.extensionErrorMax) {
-        return;
-      }
-      dart.throw(new core.ArgumentError.value(errorCode, "errorCode", "Out of range"));
+      this[_buffer$] = null;
+      return this.socket.flush().then(io._HttpOutboundMessage)(dart.fn(_ => {
+        this[_doneCompleter].complete(this.socket);
+        return this.outbound;
+      }, dynamicTo_HttpOutboundMessage()), {onError: dart.fn((error, stackTrace) => {
+          this[_doneCompleter].completeError(error, core.StackTrace._check(stackTrace));
+          if (dart.test(this[_ignoreError](error))) {
+            return this.outbound;
+          } else {
+            dart.throw(error);
+          }
+        }, dynamicAnddynamicTo_HttpOutboundMessage())});
+    }).bind(this);
+    dart.fn(finalize, VoidToFuture());
+    let future = this.writeHeaders();
+    if (future != null) {
+      return this[_closeFuture] = future.whenComplete(finalize);
     }
-    [_isError]() {
-      return this[_errorCode] != null && this[_errorDetail] != null;
+    return this[_closeFuture] = finalize();
+  }
+  get done() {
+    return this[_doneCompleter].future;
+  }
+  setHeader(data, length) {
+    dart.assert(this[_length$2] == 0);
+    dart.assert(data[dartx.length] == io._OUTGOING_BUFFER_SIZE);
+    this[_buffer$] = typed_data.Uint8List._check(data);
+    this[_length$2] = length;
+  }
+  set gzip(value) {
+    this[_gzip] = value;
+    if (dart.test(this[_gzip])) {
+      this[_gzipBuffer] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
+      dart.assert(this[_gzipSink] == null);
+      this[_gzipSink] = new io.ZLibEncoder({gzip: true}).startChunkedConversion(new io._HttpGZipSink(dart.fn(data => {
+        if (this[_gzipAdd] == null) return;
+        this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
+        this[_pendingChunkedFooter] = 2;
+        this[_addChunk$](data, ListOfintTovoid()._check(this[_gzipAdd]));
+      }, dynamicToNull$())));
     }
-    [_toString]() {
-      if (this[_result] != null) {
-        return this[_result];
+  }
+  [_ignoreError](error) {
+    return (io.SocketException.is(error) || io.TlsException.is(error)) && io.HttpResponse.is(this.outbound);
+  }
+  [_addGZipChunk](chunk, add) {
+    if (!dart.test(this.outbound.bufferOutput)) {
+      add(ListOfint()._check(chunk));
+      return;
+    }
+    if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', dart.notNull(this[_gzipBuffer][dartx.length]) - dart.notNull(this[_gzipBufferLength])))) {
+      add(typed_data.Uint8List.view(this[_gzipBuffer][dartx.buffer], 0, this[_gzipBufferLength]));
+      this[_gzipBuffer] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
+      this[_gzipBufferLength] = 0;
+    }
+    if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', io._OUTGOING_BUFFER_SIZE))) {
+      add(ListOfint()._check(chunk));
+    } else {
+      this[_gzipBuffer][dartx.setRange](this[_gzipBufferLength], dart.asInt(dart.notNull(this[_gzipBufferLength]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')))), IterableOfint()._check(chunk));
+      this[_gzipBufferLength] = dart.notNull(this[_gzipBufferLength]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
+    }
+  }
+  [_addChunk$](chunk, add) {
+    if (!dart.test(this.outbound.bufferOutput)) {
+      if (this[_buffer$] != null) {
+        add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
+        this[_buffer$] = null;
+        this[_length$2] = 0;
+      }
+      add(ListOfint()._check(chunk));
+      return;
+    }
+    if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', dart.notNull(this[_buffer$][dartx.length]) - dart.notNull(this[_length$2])))) {
+      add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
+      this[_buffer$] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
+      this[_length$2] = 0;
+    }
+    if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', io._OUTGOING_BUFFER_SIZE))) {
+      add(ListOfint()._check(chunk));
+    } else {
+      this[_buffer$][dartx.setRange](this[_length$2], dart.asInt(dart.notNull(this[_length$2]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')))), IterableOfint()._check(chunk));
+      this[_length$2] = dart.notNull(this[_length$2]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
+    }
+  }
+  [_chunkHeader](length) {
+    let hexDigits = const$68 || (const$68 = dart.constList([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70], core.int));
+    if (length == 0) {
+      if (this[_pendingChunkedFooter] == 2) return io._HttpOutgoing._footerAndChunk0Length;
+      return io._HttpOutgoing._chunk0Length;
+    }
+    let size = this[_pendingChunkedFooter];
+    let len = length;
+    while (dart.notNull(len) > 0) {
+      size = dart.notNull(size) + 1;
+      len = len[dartx['>>']](4);
+    }
+    let footerAndHeader = typed_data.Uint8List.new(dart.notNull(size) + 2);
+    if (this[_pendingChunkedFooter] == 2) {
+      footerAndHeader[dartx._set](0, io._CharCode.CR);
+      footerAndHeader[dartx._set](1, io._CharCode.LF);
+    }
+    let index = size;
+    while (dart.notNull(index) > dart.notNull(this[_pendingChunkedFooter])) {
+      footerAndHeader[dartx._set]((index = dart.notNull(index) - 1), hexDigits[dartx._get](dart.notNull(length) & 15));
+      length = length[dartx['>>']](4);
+    }
+    footerAndHeader[dartx._set](dart.notNull(size) + 0, io._CharCode.CR);
+    footerAndHeader[dartx._set](dart.notNull(size) + 1, io._CharCode.LF);
+    return footerAndHeader;
+  }
+};
+io._HttpOutgoing[dart.implements] = () => [StreamConsumerOfListOfint()];
+dart.setSignature(io._HttpOutgoing, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpOutgoing, [io.Socket])}),
+  fields: () => ({
+    [_doneCompleter]: async.Completer,
+    socket: io.Socket,
+    ignoreBody: core.bool,
+    headersWritten: core.bool,
+    [_buffer$]: typed_data.Uint8List,
+    [_length$2]: core.int,
+    [_closeFuture]: async.Future,
+    chunked: core.bool,
+    [_pendingChunkedFooter]: core.int,
+    contentLength: core.int,
+    [_bytesWritten]: core.int,
+    [_gzip]: core.bool,
+    [_gzipSink]: convert.ByteConversionSink,
+    [_gzipAdd]: core.Function,
+    [_gzipBuffer]: typed_data.Uint8List,
+    [_gzipBufferLength]: core.int,
+    [_socketError]: core.bool,
+    outbound: io._HttpOutboundMessage
+  }),
+  getters: () => ({done: dart.definiteFunctionType(async.Future, [])}),
+  setters: () => ({gzip: dart.definiteFunctionType(dart.void, [core.bool])}),
+  methods: () => ({
+    writeHeaders: dart.definiteFunctionType(async.Future, [], {drainRequest: core.bool, setOutgoing: core.bool}),
+    addStream: dart.definiteFunctionType(async.Future, [StreamOfListOfint()]),
+    close: dart.definiteFunctionType(async.Future, []),
+    setHeader: dart.definiteFunctionType(dart.void, [ListOfint(), core.int]),
+    [_ignoreError]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [_addGZipChunk]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
+    [_addChunk$]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
+    [_chunkHeader]: dart.definiteFunctionType(core.List$(core.int), [core.int])
+  }),
+  sfields: () => ({
+    _footerAndChunk0Length: ListOfint(),
+    _chunk0Length: ListOfint()
+  })
+});
+dart.defineLazy(io._HttpOutgoing, {
+  get _footerAndChunk0Length() {
+    return dart.constList([io._CharCode.CR, io._CharCode.LF, 48, io._CharCode.CR, io._CharCode.LF, io._CharCode.CR, io._CharCode.LF], core.int);
+  },
+  get _chunk0Length() {
+    return dart.constList([48, io._CharCode.CR, io._CharCode.LF, io._CharCode.CR, io._CharCode.LF], core.int);
+  }
+});
+const _context = Symbol('_context');
+const _httpParser = Symbol('_httpParser');
+const _subscription$ = Symbol('_subscription');
+const _dispose = Symbol('_dispose');
+const _idleTimer = Symbol('_idleTimer');
+const _currentUri = Symbol('_currentUri');
+const _nextResponseCompleter = Symbol('_nextResponseCompleter');
+const _streamFuture = Symbol('_streamFuture');
+const _proxyCredentials = Symbol('_proxyCredentials');
+const _returnConnection = Symbol('_returnConnection');
+io._HttpClientConnection = class _HttpClientConnection extends core.Object {
+  new(key, socket, httpClient, proxyTunnel, context) {
+    if (proxyTunnel === void 0) proxyTunnel = false;
+    if (context === void 0) context = null;
+    this.key = key;
+    this[_socket] = socket;
+    this[_httpClient] = httpClient;
+    this[_proxyTunnel] = proxyTunnel;
+    this[_context] = context;
+    this[_httpParser] = io._HttpParser.responseParser();
+    this[_subscription$] = null;
+    this[_dispose] = false;
+    this[_idleTimer] = null;
+    this.closed = false;
+    this[_currentUri] = null;
+    this[_nextResponseCompleter] = null;
+    this[_streamFuture] = null;
+    this[_httpParser].listenToStream(this[_socket]);
+    this[_subscription$] = this[_httpParser].listen(dart.fn(incoming => {
+      this[_subscription$].pause();
+      if (this[_nextResponseCompleter] == null) {
+        dart.throw(new io.HttpException("Unexpected response (unsolicited response without request).", {uri: this[_currentUri]}));
+      }
+      if (incoming.statusCode == 100) {
+        incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
+          this[_subscription$].resume();
+        }, dynamicToNull$())).catchError(dart.fn((error, stackTrace) => {
+          if (stackTrace === void 0) stackTrace = null;
+          this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
+          this[_nextResponseCompleter] = null;
+        }, dynamic__ToNull$()));
       } else {
-        dart.assert(this[_errorCode] != null);
-        dart.assert(this[_errorDetail] != null);
-        return convert.JSON.encode(dart.map({code: this[_errorCode], message: developer.ServiceExtensionResponse._errorCodeMessage(this[_errorCode]), data: dart.map({details: this[_errorDetail]}, core.String, core.String)}, core.String, core.Object));
+        this[_nextResponseCompleter].complete(incoming);
+        this[_nextResponseCompleter] = null;
+      }
+    }, _HttpIncomingToNull()), {onError: dart.fn((error, stackTrace) => {
+        if (stackTrace === void 0) stackTrace = null;
+        if (this[_nextResponseCompleter] != null) {
+          this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
+          this[_nextResponseCompleter] = null;
+        }
+      }, dynamic__ToNull$()), onDone: dart.fn(() => {
+        if (this[_nextResponseCompleter] != null) {
+          this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
+          this[_nextResponseCompleter] = null;
+        }
+        this.close();
+      }, VoidToNull())});
+  }
+  send(uri, port, method, proxy) {
+    if (dart.test(this.closed)) {
+      dart.throw(new io.HttpException("Socket closed before request was sent", {uri: uri}));
+    }
+    this[_currentUri] = uri;
+    this[_subscription$].pause();
+    let proxyCreds = null;
+    let creds = null;
+    let outgoing = new io._HttpOutgoing(this[_socket]);
+    let request = new io._HttpClientRequest(outgoing, uri, method, proxy, this[_httpClient], this);
+    let host = uri.host;
+    if (dart.test(host[dartx.contains](':'))) host = dart.str`[${host}]`;
+    request.headers.host = host;
+    request.headers.port = port;
+    request.headers[_add$2](io.HttpHeaders.ACCEPT_ENCODING, "gzip");
+    if (this[_httpClient].userAgent != null) {
+      request.headers[_add$2]('user-agent', this[_httpClient].userAgent);
+    }
+    if (dart.test(proxy.isAuthenticated)) {
+      let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${proxy.username}:${proxy.password}`));
+      request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, dart.str`Basic ${auth}`);
+    } else if (!dart.test(proxy.isDirect) && dart.notNull(this[_httpClient][_proxyCredentials][dartx.length]) > 0) {
+      proxyCreds = this[_httpClient][_findProxyCredentials](proxy);
+      if (proxyCreds != null) {
+        proxyCreds.authorize(request);
       }
     }
-  };
-  dart.defineNamedConstructor(developer.ServiceExtensionResponse, 'result');
-  dart.defineNamedConstructor(developer.ServiceExtensionResponse, 'error');
-  dart.setSignature(developer.ServiceExtensionResponse, {
-    constructors: () => ({
-      result: dart.definiteFunctionType(developer.ServiceExtensionResponse, [core.String]),
-      error: dart.definiteFunctionType(developer.ServiceExtensionResponse, [core.int, core.String])
-    }),
-    fields: () => ({
-      [_result]: core.String,
-      [_errorCode]: core.int,
-      [_errorDetail]: core.String
-    }),
-    methods: () => ({
-      [_isError]: dart.definiteFunctionType(core.bool, []),
-      [_toString]: dart.definiteFunctionType(core.String, [])
-    }),
-    sfields: () => ({
-      kInvalidParams: core.int,
-      kExtensionError: core.int,
-      kExtensionErrorMax: core.int,
-      kExtensionErrorMin: core.int,
-      invalidParams: core.int,
-      extensionError: core.int,
-      extensionErrorMax: core.int,
-      extensionErrorMin: core.int
-    }),
-    statics: () => ({
-      _errorCodeMessage: dart.definiteFunctionType(core.String, [core.int]),
-      _validateErrorCode: dart.definiteFunctionType(dart.dynamic, [core.int])
-    }),
-    names: ['_errorCodeMessage', '_validateErrorCode']
-  });
-  developer.ServiceExtensionResponse.invalidParams = -32602;
-  developer.ServiceExtensionResponse.extensionError = -32000;
-  developer.ServiceExtensionResponse.extensionErrorMax = -32000;
-  developer.ServiceExtensionResponse.extensionErrorMin = -32016;
-  dart.defineLazy(developer.ServiceExtensionResponse, {
-    get kInvalidParams() {
-      return developer.ServiceExtensionResponse.invalidParams;
-    },
-    get kExtensionError() {
-      return developer.ServiceExtensionResponse.extensionError;
-    },
-    get kExtensionErrorMax() {
-      return developer.ServiceExtensionResponse.extensionErrorMax;
-    },
-    get kExtensionErrorMin() {
-      return developer.ServiceExtensionResponse.extensionErrorMin;
-    }
-  });
-  developer.ServiceExtensionHandler = dart.typedef('ServiceExtensionHandler', () => dart.functionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()]));
-  developer.registerExtension = function(method, handler) {
-    if (!(typeof method == 'string')) {
-      dart.throw(new core.ArgumentError.value(method, 'method', 'Must be a String'));
-    }
-    if (!dart.test(method[dartx.startsWith]('ext.'))) {
-      dart.throw(new core.ArgumentError.value(method, 'method', 'Must begin with ext.'));
-    }
-    if (developer._lookupExtension(method) != null) {
-      dart.throw(new core.ArgumentError(dart.str`Extension already registered: ${method}`));
-    }
-    if (!developer.ServiceExtensionHandler.is(handler)) {
-      dart.throw(new core.ArgumentError.value(handler, 'handler', 'Must be a ServiceExtensionHandler'));
-    }
-    developer._registerExtension(method, handler);
-  };
-  dart.fn(developer.registerExtension, StringAndServiceExtensionHandlerTovoid());
-  developer.postEvent = function(eventKind, eventData) {
-    if (!(typeof eventKind == 'string')) {
-      dart.throw(new core.ArgumentError.value(eventKind, 'eventKind', 'Must be a String'));
-    }
-    if (!core.Map.is(eventData)) {
-      dart.throw(new core.ArgumentError.value(eventData, 'eventData', 'Must be a Map'));
-    }
-    let eventDataAsString = convert.JSON.encode(eventData);
-    developer._postEvent(eventKind, eventDataAsString);
-  };
-  dart.fn(developer.postEvent, StringAndMapTovoid());
-  developer._postEvent = function(eventKind, eventData) {
-  };
-  dart.fn(developer._postEvent, StringAndStringTodynamic());
-  developer._lookupExtension = function(method) {
-    return developer._extensions[dartx._get](method);
-  };
-  dart.fn(developer._lookupExtension, StringToServiceExtensionHandler());
-  developer._registerExtension = function(method, handler) {
-    developer._extensions[dartx._set](method, handler);
-  };
-  dart.fn(developer._registerExtension, StringAndServiceExtensionHandlerTodynamic());
-  developer.UserTag = class UserTag extends core.Object {
-    static new(label) {
-      return developer._FakeUserTag.new(label);
-    }
-    static get defaultTag() {
-      return developer._FakeUserTag._defaultTag;
-    }
-  };
-  dart.setSignature(developer.UserTag, {
-    constructors: () => ({new: dart.definiteFunctionType(developer.UserTag, [core.String])}),
-    sfields: () => ({MAX_USER_TAGS: core.int}),
-    sgetters: () => ({defaultTag: dart.definiteFunctionType(developer.UserTag, [])})
-  });
-  developer.UserTag.MAX_USER_TAGS = 64;
-  developer._FakeUserTag = class _FakeUserTag extends core.Object {
-    real(label) {
-      this.label = label;
-    }
-    static new(label) {
-      let existingTag = developer._FakeUserTag._instances[dartx._get](label);
-      if (existingTag != null) {
-        return developer._FakeUserTag._check(existingTag);
-      }
-      if (developer._FakeUserTag._instances[dartx.length] == developer.UserTag.MAX_USER_TAGS) {
-        dart.throw(new core.UnsupportedError(dart.str`UserTag instance limit (${developer.UserTag.MAX_USER_TAGS}) reached.`));
-      }
-      let instance = new developer._FakeUserTag.real(label);
-      developer._FakeUserTag._instances[dartx._set](label, instance);
-      return instance;
-    }
-    makeCurrent() {
-      let old = developer._currentTag;
-      developer._currentTag = this;
-      return old;
-    }
-  };
-  dart.defineNamedConstructor(developer._FakeUserTag, 'real');
-  developer._FakeUserTag[dart.implements] = () => [developer.UserTag];
-  dart.setSignature(developer._FakeUserTag, {
-    constructors: () => ({
-      real: dart.definiteFunctionType(developer._FakeUserTag, [core.String]),
-      new: dart.definiteFunctionType(developer._FakeUserTag, [core.String])
-    }),
-    fields: () => ({label: core.String}),
-    methods: () => ({makeCurrent: dart.definiteFunctionType(developer.UserTag, [])}),
-    sfields: () => ({
-      _instances: core.Map,
-      _defaultTag: developer.UserTag
-    })
-  });
-  dart.defineLazy(developer._FakeUserTag, {
-    get _instances() {
-      return dart.map();
-    },
-    set _instances(_) {},
-    get _defaultTag() {
-      return developer._FakeUserTag.new('Default');
-    }
-  });
-  dart.defineLazy(developer, {
-    get _currentTag() {
-      return developer._FakeUserTag._defaultTag;
-    },
-    set _currentTag(_) {}
-  });
-  developer.getCurrentTag = function() {
-    return developer._currentTag;
-  };
-  dart.fn(developer.getCurrentTag, VoidToUserTag());
-  developer.Metric = class Metric extends core.Object {
-    new(name, description) {
-      this.name = name;
-      this.description = description;
-      if (this.name == 'vm' || dart.test(this.name[dartx.contains]('/'))) {
-        dart.throw(new core.ArgumentError('Invalid Metric name.'));
+    if (uri.userInfo != null && !dart.test(uri.userInfo[dartx.isEmpty])) {
+      let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(uri.userInfo));
+      request.headers.set(io.HttpHeaders.AUTHORIZATION, dart.str`Basic ${auth}`);
+    } else {
+      creds = this[_httpClient][_findCredentials](uri);
+      if (creds != null) {
+        creds.authorize(request);
       }
     }
-  };
-  dart.setSignature(developer.Metric, {
-    constructors: () => ({new: dart.definiteFunctionType(developer.Metric, [core.String, core.String])}),
-    fields: () => ({
-      name: core.String,
-      description: core.String
-    })
-  });
-  const _value$0 = Symbol('_value');
-  const _toJSON = Symbol('_toJSON');
-  developer.Gauge = class Gauge extends developer.Metric {
-    get value() {
-      return this[_value$0];
+    this[_httpParser].isHead = method == "HEAD";
+    this[_streamFuture] = outgoing.done.then(dart.dynamic)(dart.fn(s => {
+      this[_nextResponseCompleter] = CompleterOf_HttpIncoming().new();
+      this[_nextResponseCompleter].future.then(dart.dynamic)(dart.fn(incoming => {
+        this[_currentUri] = null;
+        incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
+          if (dart.test(incoming.upgraded)) {
+            this[_httpClient][_connectionClosed](this);
+            this.startTimer();
+            return;
+          }
+          if (dart.test(this.closed)) return;
+          if (!dart.test(closing) && !dart.test(this[_dispose]) && dart.test(incoming.headers.persistentConnection) && dart.test(request.persistentConnection)) {
+            this[_httpClient][_returnConnection](this);
+            this[_subscription$].resume();
+          } else {
+            this.destroy();
+          }
+        }, dynamicToNull$()));
+        if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
+          let authInfo = incoming.headers._get("proxy-authentication-info");
+          if (authInfo != null && authInfo[dartx.length] == 1) {
+            let header = io._HeaderValue.parse(authInfo[dartx._get](0), {parameterSeparator: ','});
+            let nextnonce = header.parameters[dartx._get]("nextnonce");
+            if (nextnonce != null) proxyCreds.nonce = nextnonce;
+          }
+        }
+        if (creds != null && dart.equals(creds.scheme, io._AuthenticationScheme.DIGEST)) {
+          let authInfo = incoming.headers._get("authentication-info");
+          if (authInfo != null && authInfo[dartx.length] == 1) {
+            let header = io._HeaderValue.parse(authInfo[dartx._get](0), {parameterSeparator: ','});
+            let nextnonce = header.parameters[dartx._get]("nextnonce");
+            if (nextnonce != null) creds.nonce = nextnonce;
+          }
+        }
+        request[_onIncoming](incoming);
+      }, _HttpIncomingToNull())).catchError(dart.fn(error => {
+        dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
+      }, dynamicToNull$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
+        this.destroy();
+        request[_onError$](error, core.StackTrace._check(stackTrace));
+      }, dynamicAnddynamicToNull()));
+      this[_subscription$].resume();
+      return s;
+    }, dynamicTodynamic$()), {onError: dart.fn(e => {
+        this.destroy();
+      }, dynamicToNull$())});
+    return request;
+  }
+  detachSocket() {
+    return this[_streamFuture].then(io._DetachedSocket)(dart.fn(_ => new io._DetachedSocket(this[_socket], this[_httpParser].detachIncoming()), dynamicTo_DetachedSocket()));
+  }
+  destroy() {
+    this.closed = true;
+    this[_httpClient][_connectionClosed](this);
+    this[_socket].destroy();
+  }
+  close() {
+    this.closed = true;
+    this[_httpClient][_connectionClosed](this);
+    this[_streamFuture].then(dart.void)(dart.fn(_ => this[_socket].destroy(), dynamicTovoid$()));
+  }
+  createProxyTunnel(host, port, proxy, callback) {
+    let request = this.send(core.Uri.new({host: core.String._check(host), port: core.int._check(port)}), core.int._check(port), "CONNECT", io._Proxy._check(proxy));
+    if (dart.test(dart.dload(proxy, 'isAuthenticated'))) {
+      let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${dart.dload(proxy, 'username')}:${dart.dload(proxy, 'password')}`));
+      request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, dart.str`Basic ${auth}`);
     }
-    set value(v) {
-      if (dart.notNull(v) < dart.notNull(this.min)) {
-        v = this.min;
-      } else if (dart.notNull(v) > dart.notNull(this.max)) {
-        v = this.max;
+    return request.close().then(io.SecureSocket)(dart.fn(response => {
+      if (response.statusCode != io.HttpStatus.OK) {
+        dart.throw("Proxy failed to establish tunnel " + dart.str`(${response.statusCode} ${response.reasonPhrase})`);
       }
-      this[_value$0] = v;
+      let socket = io._HttpClientResponse.as(response)[_httpRequest][_httpClientConnection][_socket];
+      return io.SecureSocket.secure(socket, {host: host, context: this[_context], onBadCertificate: X509CertificateTobool()._check(callback)});
+    }, HttpClientResponseToFutureOfSecureSocket())).then(io._HttpClientConnection)(dart.fn(secureSocket => {
+      let key = core.String._check(io._HttpClientConnection.makeKey(true, core.String._check(host), core.int._check(port)));
+      return new io._HttpClientConnection(key, secureSocket, request[_httpClient], true);
+    }, SecureSocketTo_HttpClientConnection()));
+  }
+  get connectionInfo() {
+    return io._HttpConnectionInfo.create(this[_socket]);
+  }
+  static makeKey(isSecure, host, port) {
+    return dart.test(isSecure) ? dart.str`ssh:${host}:${port}` : dart.str`${host}:${port}`;
+  }
+  stopTimer() {
+    if (this[_idleTimer] != null) {
+      this[_idleTimer].cancel();
+      this[_idleTimer] = null;
     }
-    new(name, description, min, max) {
-      this.min = min;
-      this.max = max;
-      this[_value$0] = null;
-      super.new(name, description);
-      if (!(typeof this.min == 'number')) {
-        dart.throw(new core.ArgumentError('min must be a double'));
-      }
-      if (!(typeof this.max == 'number')) {
-        dart.throw(new core.ArgumentError('max must be a double'));
-      }
-      if (!(dart.notNull(this.min) < dart.notNull(this.max))) {
-        dart.throw(new core.ArgumentError('min must be less than max'));
-      }
-      this[_value$0] = this.min;
+  }
+  startTimer() {
+    dart.assert(this[_idleTimer] == null);
+    this[_idleTimer] = async.Timer.new(this[_httpClient].idleTimeout, dart.fn(() => {
+      this[_idleTimer] = null;
+      this.close();
+    }, VoidToNull()));
+  }
+};
+dart.setSignature(io._HttpClientConnection, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpClientConnection, [core.String, io.Socket, io._HttpClient], [core.bool, io.SecurityContext])}),
+  fields: () => ({
+    key: core.String,
+    [_socket]: io.Socket,
+    [_proxyTunnel]: core.bool,
+    [_context]: io.SecurityContext,
+    [_httpParser]: io._HttpParser,
+    [_subscription$]: async.StreamSubscription,
+    [_httpClient]: io._HttpClient,
+    [_dispose]: core.bool,
+    [_idleTimer]: async.Timer,
+    closed: core.bool,
+    [_currentUri]: core.Uri,
+    [_nextResponseCompleter]: CompleterOf_HttpIncoming(),
+    [_streamFuture]: async.Future
+  }),
+  getters: () => ({connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, [])}),
+  methods: () => ({
+    send: dart.definiteFunctionType(io._HttpClientRequest, [core.Uri, core.int, core.String, io._Proxy]),
+    detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
+    destroy: dart.definiteFunctionType(dart.void, []),
+    close: dart.definiteFunctionType(dart.void, []),
+    createProxyTunnel: dart.definiteFunctionType(async.Future$(io._HttpClientConnection), [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    stopTimer: dart.definiteFunctionType(dart.void, []),
+    startTimer: dart.definiteFunctionType(dart.void, [])
+  }),
+  statics: () => ({makeKey: dart.definiteFunctionType(dart.dynamic, [core.bool, core.String, core.int])}),
+  names: ['makeKey']
+});
+io._ConnectionInfo = class _ConnectionInfo extends core.Object {
+  new(connection, proxy) {
+    this.connection = connection;
+    this.proxy = proxy;
+  }
+};
+dart.setSignature(io._ConnectionInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ConnectionInfo, [io._HttpClientConnection, io._Proxy])}),
+  fields: () => ({
+    connection: io._HttpClientConnection,
+    proxy: io._Proxy
+  })
+});
+const _idle = Symbol('_idle');
+const _active = Symbol('_active');
+const _pending$ = Symbol('_pending');
+const _connecting = Symbol('_connecting');
+const _checkPending = Symbol('_checkPending');
+const _connectionsChanged = Symbol('_connectionsChanged');
+const _badCertificateCallback = Symbol('_badCertificateCallback');
+const _getConnectionTarget = Symbol('_getConnectionTarget');
+io._ConnectionTarget = class _ConnectionTarget extends core.Object {
+  new(key, host, port, isSecure, context) {
+    this[_idle] = HashSetOf_HttpClientConnection().new();
+    this[_active] = HashSetOf_HttpClientConnection().new();
+    this[_pending$] = new collection.ListQueue();
+    this.key = key;
+    this.host = host;
+    this.port = port;
+    this.isSecure = isSecure;
+    this.context = context;
+    this[_connecting] = 0;
+  }
+  get isEmpty() {
+    return dart.test(this[_idle].isEmpty) && dart.test(this[_active].isEmpty) && this[_connecting] == 0;
+  }
+  get hasIdle() {
+    return this[_idle].isNotEmpty;
+  }
+  get hasActive() {
+    return dart.test(this[_active].isNotEmpty) || dart.notNull(this[_connecting]) > 0;
+  }
+  takeIdle() {
+    dart.assert(this.hasIdle);
+    let connection = this[_idle].first;
+    this[_idle].remove(connection);
+    connection.stopTimer();
+    this[_active].add(connection);
+    return connection;
+  }
+  [_checkPending]() {
+    if (dart.test(this[_pending$].isNotEmpty)) {
+      dart.dcall(this[_pending$].removeFirst());
     }
-    [_toJSON]() {
-      let map = dart.map({type: 'Gauge', id: dart.str`metrics/${this.name}`, name: this.name, description: this.description, value: this.value, min: this.min, max: this.max}, core.String, core.Object);
-      return map;
+  }
+  addNewActive(connection) {
+    this[_active].add(connection);
+  }
+  returnConnection(connection) {
+    dart.assert(this[_active].contains(connection));
+    this[_active].remove(connection);
+    this[_idle].add(connection);
+    connection.startTimer();
+    this[_checkPending]();
+  }
+  connectionClosed(connection) {
+    dart.assert(!dart.test(this[_active].contains(connection)) || !dart.test(this[_idle].contains(connection)));
+    this[_active].remove(connection);
+    this[_idle].remove(connection);
+    this[_checkPending]();
+  }
+  close(force) {
+    for (let c of this[_idle].toList()) {
+      c.close();
     }
-  };
-  dart.setSignature(developer.Gauge, {
-    constructors: () => ({new: dart.definiteFunctionType(developer.Gauge, [core.String, core.String, core.double, core.double])}),
-    fields: () => ({
-      min: core.double,
-      max: core.double,
-      [_value$0]: core.double
-    }),
-    getters: () => ({value: dart.definiteFunctionType(core.double, [])}),
-    setters: () => ({value: dart.definiteFunctionType(dart.void, [core.double])}),
-    methods: () => ({[_toJSON]: dart.definiteFunctionType(core.Map, [])})
-  });
-  developer.Counter = class Counter extends developer.Metric {
-    new(name, description) {
-      this[_value$0] = 0.0;
-      super.new(name, description);
+    if (dart.test(force)) {
+      for (let c of this[_active].toList()) {
+        c.destroy();
+      }
     }
-    get value() {
-      return this[_value$0];
+  }
+  connect(uriHost, uriPort, proxy, client) {
+    if (dart.test(this.hasIdle)) {
+      let connection = this.takeIdle();
+      client[_connectionsChanged]();
+      return FutureOf_ConnectionInfo().value(new io._ConnectionInfo(connection, proxy));
     }
-    set value(v) {
-      this[_value$0] = v;
+    if (client.maxConnectionsPerHost != null && dart.notNull(this[_active].length) + dart.notNull(this[_connecting]) >= dart.notNull(client.maxConnectionsPerHost)) {
+      let completer = async.Completer.new();
+      this[_pending$].add(dart.fn(() => {
+        this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
+      }, VoidToNull()));
+      return FutureOf_ConnectionInfo()._check(completer.future);
     }
-    [_toJSON]() {
-      let map = dart.map({type: 'Counter', id: dart.str`metrics/${this.name}`, name: this.name, description: this.description, value: this.value}, core.String, core.Object);
-      return map;
+    let currentBadCertificateCallback = client[_badCertificateCallback];
+    function callback(certificate) {
+      if (currentBadCertificateCallback == null) return false;
+      return currentBadCertificateCallback(certificate, uriHost, uriPort);
     }
-  };
-  dart.setSignature(developer.Counter, {
-    constructors: () => ({new: dart.definiteFunctionType(developer.Counter, [core.String, core.String])}),
-    fields: () => ({[_value$0]: core.double}),
-    getters: () => ({value: dart.definiteFunctionType(core.double, [])}),
-    setters: () => ({value: dart.definiteFunctionType(dart.void, [core.double])}),
-    methods: () => ({[_toJSON]: dart.definiteFunctionType(core.Map, [])})
-  });
-  developer.Metrics = class Metrics extends core.Object {
-    static register(metric) {
-      if (!developer.Metric.is(metric)) {
-        dart.throw(new core.ArgumentError('metric must be a Metric'));
+    dart.fn(callback, X509CertificateTobool$());
+    let socketFuture = dart.test(this.isSecure) && dart.test(proxy.isDirect) ? io.SecureSocket.connect(this.host, this.port, {context: this.context, onBadCertificate: callback}) : io.Socket.connect(this.host, this.port);
+    this[_connecting] = dart.notNull(this[_connecting]) + 1;
+    return socketFuture.then(io._ConnectionInfo)(dart.fn(socket => {
+      this[_connecting] = dart.notNull(this[_connecting]) - 1;
+      dart.dsend(socket, 'setOption', io.SocketOption.TCP_NODELAY, true);
+      let connection = new io._HttpClientConnection(this.key, io.Socket._check(socket), client, false, this.context);
+      if (dart.test(this.isSecure) && !dart.test(proxy.isDirect)) {
+        connection[_dispose] = true;
+        return connection.createProxyTunnel(uriHost, uriPort, proxy, callback).then(io._ConnectionInfo)(dart.fn(tunnel => {
+          client[_getConnectionTarget](uriHost, uriPort, true).addNewActive(tunnel);
+          return new io._ConnectionInfo(tunnel, proxy);
+        }, _HttpClientConnectionTo_ConnectionInfo()));
+      } else {
+        this.addNewActive(connection);
+        return new io._ConnectionInfo(connection, proxy);
       }
-      if (developer.Metrics._metrics[dartx._get](metric.name) != null) {
-        dart.throw(new core.ArgumentError('Registered metrics have unique names'));
+    }, dynamicToFutureOrOf_ConnectionInfo()), {onError: dart.fn(error => {
+        this[_connecting] = dart.notNull(this[_connecting]) - 1;
+        this[_checkPending]();
+        dart.throw(error);
+      }, dynamicToNull$())});
+  }
+};
+dart.setSignature(io._ConnectionTarget, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ConnectionTarget, [core.String, core.String, core.int, core.bool, io.SecurityContext])}),
+  fields: () => ({
+    key: core.String,
+    host: core.String,
+    port: core.int,
+    isSecure: core.bool,
+    context: io.SecurityContext,
+    [_idle]: SetOf_HttpClientConnection(),
+    [_active]: SetOf_HttpClientConnection(),
+    [_pending$]: collection.Queue,
+    [_connecting]: core.int
+  }),
+  getters: () => ({
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    hasIdle: dart.definiteFunctionType(core.bool, []),
+    hasActive: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    takeIdle: dart.definiteFunctionType(io._HttpClientConnection, []),
+    [_checkPending]: dart.definiteFunctionType(dart.dynamic, []),
+    addNewActive: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
+    returnConnection: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
+    connectionClosed: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
+    close: dart.definiteFunctionType(dart.void, [core.bool]),
+    connect: dart.definiteFunctionType(async.Future$(io._ConnectionInfo), [core.String, core.int, io._Proxy, io._HttpClient])
+  })
+});
+io.BadCertificateCallback = dart.typedef('BadCertificateCallback', () => dart.functionType(core.bool, [io.X509Certificate, core.String, core.int]));
+const _idleTimeout = Symbol('_idleTimeout');
+let const$69;
+const _connectionTargets = Symbol('_connectionTargets');
+const _credentials = Symbol('_credentials');
+const _closing = Symbol('_closing');
+const _closingForcefully = Symbol('_closingForcefully');
+const _findProxy = Symbol('_findProxy');
+const _openUrl = Symbol('_openUrl');
+const _closeConnections = Symbol('_closeConnections');
+let const$70;
+const _getConnection = Symbol('_getConnection');
+io._HttpClient = class _HttpClient extends core.Object {
+  get idleTimeout() {
+    return this[_idleTimeout];
+  }
+  new(context) {
+    this[_connectionTargets] = HashMapOfString$_ConnectionTarget().new();
+    this[_credentials] = JSArrayOf_Credentials().of([]);
+    this[_proxyCredentials] = JSArrayOf_ProxyCredentials().of([]);
+    this.userAgent = io._getHttpVersion();
+    this[_context] = context;
+    this[_closing] = false;
+    this[_closingForcefully] = false;
+    this[_authenticate] = null;
+    this[_authenticateProxy] = null;
+    this[_findProxy] = io.HttpClient.findProxyFromEnvironment;
+    this[_idleTimeout] = const$69 || (const$69 = dart.const(new core.Duration({seconds: 15})));
+    this[_badCertificateCallback] = null;
+    this.maxConnectionsPerHost = null;
+    this.autoUncompress = true;
+  }
+  set idleTimeout(timeout) {
+    this[_idleTimeout] = timeout;
+    for (let c of this[_connectionTargets][dartx.values]) {
+      for (let idle of c[_idle]) {
+        idle.stopTimer();
+        idle.startTimer();
       }
-      developer.Metrics._metrics[dartx._set](metric.name, metric);
     }
-    static deregister(metric) {
-      if (!developer.Metric.is(metric)) {
-        dart.throw(new core.ArgumentError('metric must be a Metric'));
+  }
+  set badCertificateCallback(callback) {
+    this[_badCertificateCallback] = callback;
+  }
+  open(method, host, port, path) {
+    let hashMark = 35;
+    let questionMark = 63;
+    let fragmentStart = path[dartx.length];
+    let queryStart = path[dartx.length];
+    for (let i = dart.notNull(path[dartx.length]) - 1; i >= 0; i--) {
+      let char = path[dartx.codeUnitAt](i);
+      if (char == hashMark) {
+        fragmentStart = i;
+        queryStart = i;
+      } else if (char == questionMark) {
+        queryStart = i;
       }
-      developer.Metrics._metrics[dartx.remove](metric.name);
     }
-    static _printMetric(id) {
-      let metric = developer.Metrics._metrics[dartx._get](id);
-      if (metric == null) {
-        return null;
-      }
-      return convert.JSON.encode(metric[_toJSON]());
+    let query = null;
+    if (dart.notNull(queryStart) < dart.notNull(fragmentStart)) {
+      query = path[dartx.substring](dart.notNull(queryStart) + 1, fragmentStart);
+      path = path[dartx.substring](0, queryStart);
     }
-    static _printMetrics() {
-      let metrics = [];
-      for (let metric of developer.Metrics._metrics[dartx.values]) {
-        metrics[dartx.add](metric[_toJSON]());
-      }
-      let map = dart.map({type: 'MetricList', metrics: metrics}, core.String, core.Object);
-      return convert.JSON.encode(map);
+    let uri = core.Uri.new({scheme: "http", host: host, port: port, path: path, query: query});
+    return this[_openUrl](method, uri);
+  }
+  openUrl(method, url) {
+    return this[_openUrl](method, url);
+  }
+  get(host, port, path) {
+    return this.open("get", host, port, path);
+  }
+  getUrl(url) {
+    return this[_openUrl]("get", url);
+  }
+  post(host, port, path) {
+    return this.open("post", host, port, path);
+  }
+  postUrl(url) {
+    return this[_openUrl]("post", url);
+  }
+  put(host, port, path) {
+    return this.open("put", host, port, path);
+  }
+  putUrl(url) {
+    return this[_openUrl]("put", url);
+  }
+  delete(host, port, path) {
+    return this.open("delete", host, port, path);
+  }
+  deleteUrl(url) {
+    return this[_openUrl]("delete", url);
+  }
+  head(host, port, path) {
+    return this.open("head", host, port, path);
+  }
+  headUrl(url) {
+    return this[_openUrl]("head", url);
+  }
+  patch(host, port, path) {
+    return this.open("patch", host, port, path);
+  }
+  patchUrl(url) {
+    return this[_openUrl]("patch", url);
+  }
+  close(opts) {
+    let force = opts && 'force' in opts ? opts.force : false;
+    this[_closing] = true;
+    this[_closingForcefully] = force;
+    this[_closeConnections](this[_closingForcefully]);
+    dart.assert(!dart.test(this[_connectionTargets][dartx.values][dartx.any](dart.fn(s => s.hasIdle, _ConnectionTargetTobool()))));
+    dart.assert(!dart.test(force) || !dart.test(this[_connectionTargets][dartx.values][dartx.any](dart.fn(s => s[_active].isNotEmpty, _ConnectionTargetTobool()))));
+  }
+  set authenticate(f) {
+    this[_authenticate] = f;
+  }
+  addCredentials(url, realm, cr) {
+    this[_credentials][dartx.add](new io._SiteCredentials(url, realm, io._HttpClientCredentials._check(cr)));
+  }
+  set authenticateProxy(f) {
+    this[_authenticateProxy] = f;
+  }
+  addProxyCredentials(host, port, realm, cr) {
+    this[_proxyCredentials][dartx.add](new io._ProxyCredentials(host, port, realm, io._HttpClientCredentials._check(cr)));
+  }
+  set findProxy(f) {
+    return this[_findProxy] = f;
+  }
+  [_openUrl](method, uri) {
+    uri = uri.removeFragment();
+    if (method == null) {
+      dart.throw(new core.ArgumentError(method));
     }
-  };
-  dart.setSignature(developer.Metrics, {
-    sfields: () => ({_metrics: MapOfString$Metric()}),
-    statics: () => ({
-      register: dart.definiteFunctionType(dart.void, [developer.Metric]),
-      deregister: dart.definiteFunctionType(dart.void, [developer.Metric]),
-      _printMetric: dart.definiteFunctionType(core.String, [core.String]),
-      _printMetrics: dart.definiteFunctionType(core.String, [])
-    }),
-    names: ['register', 'deregister', '_printMetric', '_printMetrics']
-  });
-  dart.defineLazy(developer.Metrics, {
-    get _metrics() {
-      return MapOfString$Metric().new();
+    if (method != "CONNECT") {
+      if (dart.test(uri.host[dartx.isEmpty])) {
+        dart.throw(new core.ArgumentError(dart.str`No host specified in URI ${uri}`));
+      } else if (uri.scheme != "http" && uri.scheme != "https") {
+        dart.throw(new core.ArgumentError(dart.str`Unsupported scheme '${uri.scheme}' in URI ${uri}`));
+      }
     }
-  });
-  developer._isProduct = false;
-  developer.TimelineSyncFunction = dart.typedef('TimelineSyncFunction', () => dart.functionType(dart.dynamic, []));
-  developer.TimelineAsyncFunction = dart.typedef('TimelineAsyncFunction', () => dart.functionType(async.Future, []));
-  const _appendArguments = Symbol('_appendArguments');
-  developer.Timeline = class Timeline extends core.Object {
-    static startSync(name, opts) {
-      let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
-      if (developer._isProduct) {
-        return;
-      }
-      if (!(typeof name == 'string')) {
-        dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
-      }
-      if (!dart.test(developer._isDartStreamEnabled())) {
-        developer.Timeline._stack[dartx.add](null);
-        return;
-      }
-      let block = new developer._SyncBlock._(name, developer._getTraceClock(), developer._getThreadCpuClock());
-      if (core.Map.is(arguments$)) {
-        block[_appendArguments](arguments$);
-      }
-      developer.Timeline._stack[dartx.add](block);
+    let isSecure = uri.scheme == "https";
+    let port = uri.port;
+    if (port == 0) {
+      port = isSecure ? io.HttpClient.DEFAULT_HTTPS_PORT : io.HttpClient.DEFAULT_HTTP_PORT;
     }
-    static finishSync() {
-      if (developer._isProduct) {
-        return;
-      }
-      if (developer.Timeline._stack[dartx.length] == 0) {
-        dart.throw(new core.StateError('Uneven calls to startSync and finishSync'));
-      }
-      let block = developer.Timeline._stack[dartx.removeLast]();
-      if (block == null) {
-        return;
-      }
-      block.finish();
-    }
-    static instantSync(name, opts) {
-      let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
-      if (developer._isProduct) {
-        return;
-      }
-      if (!(typeof name == 'string')) {
-        dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
-      }
-      if (!dart.test(developer._isDartStreamEnabled())) {
-        return;
-      }
-      let instantArguments = null;
-      if (core.Map.is(arguments$)) {
-        instantArguments = core.Map.from(arguments$);
-      }
-      developer._reportInstantEvent(developer._getTraceClock(), 'Dart', name, developer._argumentsAsJson(instantArguments));
-    }
-    static timeSync(name, func, opts) {
-      let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
-      developer.Timeline.startSync(name, {arguments: arguments$});
+    let proxyConf = const$70 || (const$70 = dart.const(new io._ProxyConfiguration.direct()));
+    if (this[_findProxy] != null) {
       try {
-        return func();
-      } finally {
-        developer.Timeline.finishSync();
+        proxyConf = new io._ProxyConfiguration(core.String._check(dart.dcall(this[_findProxy], uri)));
+      } catch (error) {
+        let stackTrace = dart.stackTrace(error);
+        return FutureOf_HttpClientRequest().error(error, stackTrace);
+      }
+
+    }
+    return this[_getConnection](uri.host, port, proxyConf, isSecure).then(io._HttpClientRequest)(dart.fn(info => {
+      function send(info) {
+        return info.connection.send(uri, port, method[dartx.toUpperCase](), info.proxy);
+      }
+      dart.fn(send, _ConnectionInfoTo_HttpClientRequest());
+      if (dart.test(info.connection.closed)) {
+        return this[_getConnection](uri.host, port, proxyConf, isSecure).then(io._HttpClientRequest)(send);
+      }
+      return send(info);
+    }, _ConnectionInfoToFutureOrOf_HttpClientRequest()));
+  }
+  [_openUrlFromRequest](method, uri, previous) {
+    let resolved = previous.uri.resolveUri(uri);
+    return this[_openUrl](method, resolved).then(io._HttpClientRequest)(dart.fn(request => {
+      request.followRedirects = previous.followRedirects;
+      request.maxRedirects = previous.maxRedirects;
+      for (let header of previous.headers[_headers][dartx.keys]) {
+        if (request.headers._get(header) == null) {
+          request.headers.set(header, previous.headers._get(header));
+        }
+      }
+      request.headers.chunkedTransferEncoding = false;
+      request.contentLength = 0;
+      return request;
+    }, _HttpClientRequestTo_HttpClientRequest()));
+  }
+  [_returnConnection](connection) {
+    this[_connectionTargets][dartx._get](connection.key).returnConnection(connection);
+    this[_connectionsChanged]();
+  }
+  [_connectionClosed](connection) {
+    connection.stopTimer();
+    let connectionTarget = this[_connectionTargets][dartx._get](connection.key);
+    if (connectionTarget != null) {
+      connectionTarget.connectionClosed(connection);
+      if (dart.test(connectionTarget.isEmpty)) {
+        this[_connectionTargets][dartx.remove](connection.key);
+      }
+      this[_connectionsChanged]();
+    }
+  }
+  [_connectionsChanged]() {
+    if (dart.test(this[_closing])) {
+      this[_closeConnections](this[_closingForcefully]);
+    }
+  }
+  [_closeConnections](force) {
+    for (let connectionTarget of this[_connectionTargets][dartx.values][dartx.toList]()) {
+      connectionTarget.close(force);
+    }
+  }
+  [_getConnectionTarget](host, port, isSecure) {
+    let key = core.String._check(io._HttpClientConnection.makeKey(isSecure, host, port));
+    return this[_connectionTargets][dartx.putIfAbsent](key, dart.fn(() => new io._ConnectionTarget(key, host, port, isSecure, this[_context]), VoidTo_ConnectionTarget()));
+  }
+  [_getConnection](uriHost, uriPort, proxyConf, isSecure) {
+    let proxies = proxyConf.proxies[dartx.iterator];
+    const connect = (function(error) {
+      if (!dart.test(proxies.moveNext())) return FutureOf_ConnectionInfo().error(error);
+      let proxy = proxies.current;
+      let host = dart.test(proxy.isDirect) ? uriHost : proxy.host;
+      let port = dart.test(proxy.isDirect) ? uriPort : proxy.port;
+      return this[_getConnectionTarget](host, port, isSecure).connect(uriHost, uriPort, proxy, this).catchError(connect);
+    }).bind(this);
+    dart.fn(connect, dynamicToFutureOf_ConnectionInfo());
+    return FutureOf_ConnectionInfo().new(dart.fn(() => connect(new io.HttpException("No proxies given")), VoidToFutureOf_ConnectionInfo()));
+  }
+  [_findCredentials](url, scheme) {
+    if (scheme === void 0) scheme = null;
+    let cr = this[_credentials][dartx.fold](io._SiteCredentials)(null, dart.fn((prev, value) => {
+      let siteCredentials = io._SiteCredentials.as(value);
+      if (dart.test(siteCredentials.applies(url, scheme))) {
+        if (prev == null) return io._SiteCredentials._check(value);
+        return dart.notNull(siteCredentials.uri.path[dartx.length]) > dart.notNull(prev.uri.path[dartx.length]) ? siteCredentials : prev;
+      } else {
+        return prev;
+      }
+    }, _SiteCredentialsAnd_CredentialsTo_SiteCredentials()));
+    return cr;
+  }
+  [_findProxyCredentials](proxy, scheme) {
+    if (scheme === void 0) scheme = null;
+    let it = this[_proxyCredentials][dartx.iterator];
+    while (dart.test(it.moveNext())) {
+      if (dart.test(it.current.applies(proxy, scheme))) {
+        return it.current;
       }
     }
-    static get now() {
-      return developer._getTraceClock();
+    return null;
+  }
+  [_removeCredentials](cr) {
+    let index = this[_credentials][dartx.indexOf](cr);
+    if (index != -1) {
+      this[_credentials][dartx.removeAt](index);
     }
-  };
-  dart.setSignature(developer.Timeline, {
-    sfields: () => ({
-      _stack: ListOf_SyncBlock(),
-      _isolateId: core.int,
-      _isolateIdString: core.String
-    }),
-    sgetters: () => ({now: dart.definiteFunctionType(core.int, [])}),
-    statics: () => ({
-      startSync: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
-      finishSync: dart.definiteFunctionType(dart.void, []),
-      instantSync: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
-      timeSync: dart.definiteFunctionType(dart.dynamic, [core.String, developer.TimelineSyncFunction], {arguments: core.Map})
-    }),
-    names: ['startSync', 'finishSync', 'instantSync', 'timeSync']
-  });
-  dart.defineLazy(developer.Timeline, {
-    get _stack() {
-      return ListOf_SyncBlock().new();
-    },
-    get _isolateId() {
-      return developer._getIsolateNum();
-    },
-    get _isolateIdString() {
-      return dart.toString(developer.Timeline._isolateId);
+  }
+  [_removeProxyCredentials](cr) {
+    let index = this[_proxyCredentials][dartx.indexOf](io._ProxyCredentials._check(cr));
+    if (index != -1) {
+      this[_proxyCredentials][dartx.removeAt](index);
     }
-  });
-  const _stack = Symbol('_stack');
-  const _taskId = Symbol('_taskId');
-  const _start$1 = Symbol('_start');
-  const _finish = Symbol('_finish');
-  developer.TimelineTask = class TimelineTask extends core.Object {
-    new() {
-      this[_stack] = JSArrayOf_AsyncBlock().of([]);
-      this[_taskId] = developer._getNextAsyncId();
+  }
+  static _findProxyFromEnvironment(url, environment) {
+    function checkNoProxy(option) {
+      if (option == null) return null;
+      let names = option[dartx.split](",")[dartx.map](core.String)(dart.fn(s => s[dartx.trim](), StringToString$()))[dartx.iterator];
+      while (dart.test(names.moveNext())) {
+        let name = names.current;
+        if (dart.test(name[dartx.startsWith]("[")) && dart.test(name[dartx.endsWith]("]")) && dart.str`[${url.host}]` == name || dart.test(name[dartx.isNotEmpty]) && dart.test(url.host[dartx.endsWith](name))) {
+          return "DIRECT";
+        }
+      }
+      return null;
     }
-    withTaskId(taskId) {
-      this[_stack] = JSArrayOf_AsyncBlock().of([]);
-      this[_taskId] = taskId;
-      if (!(typeof taskId == 'number')) {
-        dart.throw(new core.ArgumentError.value(taskId, 'taskId', 'Must be an int'));
+    dart.fn(checkNoProxy, StringToString$());
+    function checkProxy(option) {
+      if (option == null) return null;
+      option = option[dartx.trim]();
+      if (dart.test(option[dartx.isEmpty])) return null;
+      let pos = option[dartx.indexOf]("://");
+      if (dart.notNull(pos) >= 0) {
+        option = option[dartx.substring](dart.notNull(pos) + 3);
+      }
+      pos = option[dartx.indexOf]("/");
+      if (dart.notNull(pos) >= 0) {
+        option = option[dartx.substring](0, pos);
+      }
+      if (option[dartx.indexOf]("[") == 0) {
+        let pos = option[dartx.lastIndexOf](":");
+        if (dart.notNull(option[dartx.indexOf]("]")) > dart.notNull(pos)) option = dart.str`${option}:1080`;
+      } else {
+        if (option[dartx.indexOf](":") == -1) option = dart.str`${option}:1080`;
+      }
+      return dart.str`PROXY ${option}`;
+    }
+    dart.fn(checkProxy, StringToString$());
+    if (environment == null) environment = io._HttpClient._platformEnvironmentCache;
+    let proxyCfg = null;
+    let noProxy = environment[dartx._get]("no_proxy");
+    if (noProxy == null) noProxy = environment[dartx._get]("NO_PROXY");
+    if ((proxyCfg = checkNoProxy(noProxy)) != null) {
+      return proxyCfg;
+    }
+    if (url.scheme == "http") {
+      let proxy = environment[dartx._get]("http_proxy");
+      if (proxy == null) proxy = environment[dartx._get]("HTTP_PROXY");
+      if ((proxyCfg = checkProxy(proxy)) != null) {
+        return proxyCfg;
+      }
+    } else if (url.scheme == "https") {
+      let proxy = environment[dartx._get]("https_proxy");
+      if (proxy == null) proxy = environment[dartx._get]("HTTPS_PROXY");
+      if ((proxyCfg = checkProxy(proxy)) != null) {
+        return proxyCfg;
       }
     }
-    start(name, opts) {
-      let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
-      if (developer._isProduct) {
-        return;
-      }
-      if (!(typeof name == 'string')) {
-        dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
-      }
-      let block = new developer._AsyncBlock._(name, this[_taskId]);
-      if (core.Map.is(arguments$)) {
-        block[_appendArguments](arguments$);
-      }
-      this[_stack][dartx.add](block);
-      block[_start$1]();
+    return "DIRECT";
+  }
+};
+io._HttpClient[dart.implements] = () => [io.HttpClient];
+dart.setSignature(io._HttpClient, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpClient, [io.SecurityContext])}),
+  fields: () => ({
+    [_closing]: core.bool,
+    [_closingForcefully]: core.bool,
+    [_connectionTargets]: MapOfString$_ConnectionTarget(),
+    [_credentials]: ListOf_Credentials(),
+    [_proxyCredentials]: ListOf_ProxyCredentials(),
+    [_context]: io.SecurityContext,
+    [_authenticate]: core.Function,
+    [_authenticateProxy]: core.Function,
+    [_findProxy]: core.Function,
+    [_idleTimeout]: core.Duration,
+    [_badCertificateCallback]: io.BadCertificateCallback,
+    maxConnectionsPerHost: core.int,
+    autoUncompress: core.bool,
+    userAgent: core.String
+  }),
+  getters: () => ({idleTimeout: dart.definiteFunctionType(core.Duration, [])}),
+  setters: () => ({
+    idleTimeout: dart.definiteFunctionType(dart.void, [core.Duration]),
+    badCertificateCallback: dart.definiteFunctionType(dart.void, [X509CertificateAndStringAndintTobool()]),
+    authenticate: dart.definiteFunctionType(dart.void, [UriAndStringAndStringToFutureOfbool()]),
+    authenticateProxy: dart.definiteFunctionType(dart.void, [StringAndintAndString__ToFutureOfbool()]),
+    findProxy: dart.definiteFunctionType(dart.void, [UriToString()])
+  }),
+  methods: () => ({
+    open: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.String, core.int, core.String]),
+    openUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.Uri]),
+    get: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
+    getUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
+    post: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
+    postUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
+    put: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
+    putUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
+    delete: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
+    deleteUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
+    head: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
+    headUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
+    patch: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
+    patchUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
+    close: dart.definiteFunctionType(dart.void, [], {force: core.bool}),
+    addCredentials: dart.definiteFunctionType(dart.void, [core.Uri, core.String, io.HttpClientCredentials]),
+    addProxyCredentials: dart.definiteFunctionType(dart.void, [core.String, core.int, core.String, io.HttpClientCredentials]),
+    [_openUrl]: dart.definiteFunctionType(async.Future$(io._HttpClientRequest), [core.String, core.Uri]),
+    [_openUrlFromRequest]: dart.definiteFunctionType(async.Future$(io._HttpClientRequest), [core.String, core.Uri, io._HttpClientRequest]),
+    [_returnConnection]: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
+    [_connectionClosed]: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
+    [_connectionsChanged]: dart.definiteFunctionType(dart.void, []),
+    [_closeConnections]: dart.definiteFunctionType(dart.void, [core.bool]),
+    [_getConnectionTarget]: dart.definiteFunctionType(io._ConnectionTarget, [core.String, core.int, core.bool]),
+    [_getConnection]: dart.definiteFunctionType(async.Future$(io._ConnectionInfo), [core.String, core.int, io._ProxyConfiguration, core.bool]),
+    [_findCredentials]: dart.definiteFunctionType(io._SiteCredentials, [core.Uri], [io._AuthenticationScheme]),
+    [_findProxyCredentials]: dart.definiteFunctionType(io._ProxyCredentials, [io._Proxy], [io._AuthenticationScheme]),
+    [_removeCredentials]: dart.definiteFunctionType(dart.void, [io._Credentials]),
+    [_removeProxyCredentials]: dart.definiteFunctionType(dart.void, [io._Credentials])
+  }),
+  sfields: () => ({_platformEnvironmentCache: MapOfString$String()}),
+  statics: () => ({_findProxyFromEnvironment: dart.definiteFunctionType(core.String, [core.Uri, MapOfString$String()])}),
+  names: ['_findProxyFromEnvironment']
+});
+dart.defineLazy(io._HttpClient, {
+  get _platformEnvironmentCache() {
+    return io.Platform.environment;
+  },
+  set _platformEnvironmentCache(_) {}
+});
+const _state$1 = Symbol('_state');
+const _idleMark = Symbol('_idleMark');
+const _owner = Symbol('_owner');
+const _serviceId = Symbol('_serviceId');
+const _markActive = Symbol('_markActive');
+const _markIdle = Symbol('_markIdle');
+const _handleRequest = Symbol('_handleRequest');
+const _isActive = Symbol('_isActive');
+const _isIdle = Symbol('_isIdle');
+const _isDetached = Symbol('_isDetached');
+const _serviceTypePath = Symbol('_serviceTypePath');
+const _serviceTypeName = Symbol('_serviceTypeName');
+const _servicePath = Symbol('_servicePath');
+const _serviceType = Symbol('_serviceType');
+const _toJSON$ = Symbol('_toJSON');
+const __serviceId = Symbol('__serviceId');
+io._ServiceObject = class _ServiceObject extends core.Object {
+  new() {
+    this[__serviceId] = 0;
+  }
+  get [_serviceId]() {
+    if (this[__serviceId] == 0) this[__serviceId] = (() => {
+      let x = io._nextServiceId;
+      io._nextServiceId = dart.notNull(x) + 1;
+      return x;
+    })();
+    return this[__serviceId];
+  }
+  get [_servicePath]() {
+    return dart.str`${this[_serviceTypePath]}/${this[_serviceId]}`;
+  }
+  [_serviceType](ref) {
+    if (dart.test(ref)) return dart.str`@${this[_serviceTypeName]}`;
+    return this[_serviceTypeName];
+  }
+};
+dart.setSignature(io._ServiceObject, {
+  fields: () => ({[__serviceId]: core.int}),
+  getters: () => ({
+    [_serviceId]: dart.definiteFunctionType(core.int, []),
+    [_servicePath]: dart.definiteFunctionType(core.String, [])
+  }),
+  methods: () => ({[_serviceType]: dart.definiteFunctionType(core.String, [core.bool])})
+});
+io._HttpConnection = class _HttpConnection extends dart.mixin(collection.LinkedListEntry, io._ServiceObject) {
+  new(socket, httpServer) {
+    this[_socket] = socket;
+    this[_httpServer] = httpServer;
+    this[_httpParser] = io._HttpParser.requestParser();
+    this[_state$1] = io._HttpConnection._IDLE;
+    this[_subscription$] = null;
+    this[_idleMark] = false;
+    this[_streamFuture] = null;
+    super.new();
+    try {
+      dart.dput(this[_socket], _owner, this);
+    } catch (_) {
+      core.print(_);
     }
-    instant(name, opts) {
-      let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
-      if (developer._isProduct) {
-        return;
-      }
-      if (!(typeof name == 'string')) {
-        dart.throw(new core.ArgumentError.value(name, 'name', 'Must be a String'));
-      }
-      let instantArguments = null;
-      if (core.Map.is(arguments$)) {
-        instantArguments = core.Map.from(arguments$);
-      }
-      developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'n', 'Dart', name, developer._argumentsAsJson(instantArguments));
-    }
-    finish() {
-      if (developer._isProduct) {
-        return;
-      }
-      if (this[_stack][dartx.length] == 0) {
-        dart.throw(new core.StateError('Uneven calls to start and finish'));
-      }
-      let block = this[_stack][dartx.removeLast]();
-      block[_finish]();
-    }
-    pass() {
-      if (dart.notNull(this[_stack][dartx.length]) > 0) {
-        dart.throw(new core.StateError('You cannot pass a TimelineTask without finishing all started ' + 'operations'));
-      }
-      let r = this[_taskId];
+
+    io._HttpConnection._connections[dartx._set](this[_serviceId], this);
+    this[_httpParser].listenToStream(StreamOfListOfint()._check(this[_socket]));
+    this[_subscription$] = this[_httpParser].listen(dart.fn(incoming => {
+      this[_httpServer][_markActive](this);
+      incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
+        if (dart.test(closing)) this.destroy();
+      }, dynamicToNull$()));
+      this[_subscription$].pause();
+      this[_state$1] = io._HttpConnection._ACTIVE;
+      let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
+      let response = new io._HttpResponse(incoming.uri, incoming.headers.protocolVersion, outgoing, this[_httpServer].defaultResponseHeaders, this[_httpServer].serverHeader);
+      let request = new io._HttpRequest(response, incoming, this[_httpServer], this);
+      this[_streamFuture] = outgoing.done.then(dart.dynamic)(dart.fn(_ => {
+        response.deadline = null;
+        if (this[_state$1] == io._HttpConnection._DETACHED) return;
+        if (dart.test(response.persistentConnection) && dart.test(request.persistentConnection) && dart.test(incoming.fullBodyRead) && !dart.test(this[_httpParser].upgrade) && !dart.test(this[_httpServer].closed)) {
+          this[_state$1] = io._HttpConnection._IDLE;
+          this[_idleMark] = false;
+          this[_httpServer][_markIdle](this);
+          this[_subscription$].resume();
+        } else {
+          this.destroy();
+        }
+      }, dynamicToNull$()), {onError: dart.fn(_ => {
+          this.destroy();
+        }, dynamicToNull$())});
+      outgoing.ignoreBody = request.method == "HEAD";
+      response[_httpRequest] = request;
+      this[_httpServer][_handleRequest](request);
+    }, _HttpIncomingToNull()), {onDone: dart.fn(() => {
+        this.destroy();
+      }, VoidToNull()), onError: dart.fn(error => {
+        this.destroy();
+      }, dynamicToNull$())});
+  }
+  markIdle() {
+    this[_idleMark] = true;
+  }
+  get isMarkedIdle() {
+    return this[_idleMark];
+  }
+  destroy() {
+    if (this[_state$1] == io._HttpConnection._CLOSING || this[_state$1] == io._HttpConnection._DETACHED) return;
+    this[_state$1] = io._HttpConnection._CLOSING;
+    dart.dsend(this[_socket], 'destroy');
+    this[_httpServer][_connectionClosed](this);
+    io._HttpConnection._connections[dartx.remove](this[_serviceId]);
+  }
+  detachSocket() {
+    this[_state$1] = io._HttpConnection._DETACHED;
+    this[_httpServer][_connectionClosed](this);
+    let detachedIncoming = this[_httpParser].detachIncoming();
+    return this[_streamFuture].then(io._DetachedSocket)(dart.fn(_ => {
+      io._HttpConnection._connections[dartx.remove](this[_serviceId]);
+      return new io._DetachedSocket(this[_socket], detachedIncoming);
+    }, dynamicTo_DetachedSocket()));
+  }
+  get connectionInfo() {
+    return io._HttpConnectionInfo.create(io.Socket._check(this[_socket]));
+  }
+  get [_isActive]() {
+    return this[_state$1] == io._HttpConnection._ACTIVE;
+  }
+  get [_isIdle]() {
+    return this[_state$1] == io._HttpConnection._IDLE;
+  }
+  get [_isClosing]() {
+    return this[_state$1] == io._HttpConnection._CLOSING;
+  }
+  get [_isDetached]() {
+    return this[_state$1] == io._HttpConnection._DETACHED;
+  }
+  get [_serviceTypePath]() {
+    return 'io/http/serverconnections';
+  }
+  get [_serviceTypeName]() {
+    return 'HttpServerConnection';
+  }
+  [_toJSON$](ref) {
+    let name = dart.str`${dart.dload(dart.dload(this[_socket], 'address'), 'host')}:${dart.dload(this[_socket], 'port')} <-> ` + dart.str`${dart.dload(dart.dload(this[_socket], 'remoteAddress'), 'host')}:${dart.dload(this[_socket], 'remotePort')}`;
+    let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: name, user_name: name}, core.String, dart.dynamic);
+    if (dart.test(ref)) {
       return r;
     }
-  };
-  dart.defineNamedConstructor(developer.TimelineTask, 'withTaskId');
-  dart.setSignature(developer.TimelineTask, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(developer.TimelineTask, []),
-      withTaskId: dart.definiteFunctionType(developer.TimelineTask, [core.int])
-    }),
-    fields: () => ({
-      [_taskId]: core.int,
-      [_stack]: ListOf_AsyncBlock()
-    }),
-    methods: () => ({
-      start: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
-      instant: dart.definiteFunctionType(dart.void, [core.String], {arguments: core.Map}),
-      finish: dart.definiteFunctionType(dart.void, []),
-      pass: dart.definiteFunctionType(core.int, [])
-    })
-  });
-  const _arguments$ = Symbol('_arguments');
-  developer._AsyncBlock = class _AsyncBlock extends core.Object {
-    _(name, taskId) {
-      this.name = name;
-      this[_taskId] = taskId;
-      this.category = 'Dart';
-      this[_arguments$] = null;
+    r[dartx._set]('server', this[_httpServer][_toJSON$](true));
+    try {
+      r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON$, true));
+    } catch (_) {
+      r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
     }
-    [_start$1]() {
-      developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'b', this.category, this.name, developer._argumentsAsJson(this[_arguments$]));
-    }
-    [_finish]() {
-      developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'e', this.category, this.name, developer._argumentsAsJson(null));
-    }
-    [_appendArguments](arguments$) {
-      if (this[_arguments$] == null) {
-        this[_arguments$] = dart.map();
+
+    switch (this[_state$1]) {
+      case io._HttpConnection._ACTIVE:
+      {
+        r[dartx._set]('state', "Active");
+        break;
       }
-      this[_arguments$][dartx.addAll](arguments$);
+      case io._HttpConnection._IDLE:
+      {
+        r[dartx._set]('state', "Idle");
+        break;
+      }
+      case io._HttpConnection._CLOSING:
+      {
+        r[dartx._set]('state', "Closing");
+        break;
+      }
+      case io._HttpConnection._DETACHED:
+      {
+        r[dartx._set]('state', "Detached");
+        break;
+      }
+      default:
+      {
+        r[dartx._set]('state', 'Unknown');
+        break;
+      }
     }
-  };
-  dart.defineNamedConstructor(developer._AsyncBlock, '_');
-  dart.setSignature(developer._AsyncBlock, {
-    constructors: () => ({_: dart.definiteFunctionType(developer._AsyncBlock, [core.String, core.int])}),
-    fields: () => ({
-      category: core.String,
-      name: core.String,
-      [_taskId]: core.int,
-      [_arguments$]: core.Map
-    }),
-    methods: () => ({
-      [_start$1]: dart.definiteFunctionType(dart.void, []),
-      [_finish]: dart.definiteFunctionType(dart.void, []),
-      [_appendArguments]: dart.definiteFunctionType(dart.void, [core.Map])
-    })
-  });
-  const _startCpu = Symbol('_startCpu');
-  developer._SyncBlock = class _SyncBlock extends core.Object {
-    _(name, start, startCpu) {
-      this.name = name;
-      this[_start$1] = start;
-      this[_startCpu] = startCpu;
-      this.category = 'Dart';
-      this[_arguments$] = null;
+    return r;
+  }
+};
+dart.setBaseClass(io._HttpConnection, dart.mixin(collection.LinkedListEntry$(io._HttpConnection), io._ServiceObject));
+dart.addSimpleTypeTests(io._HttpConnection);
+dart.setSignature(io._HttpConnection, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpConnection, [dart.dynamic, io._HttpServer])}),
+  fields: () => ({
+    [_socket]: dart.dynamic,
+    [_httpServer]: io._HttpServer,
+    [_httpParser]: io._HttpParser,
+    [_state$1]: core.int,
+    [_subscription$]: async.StreamSubscription,
+    [_idleMark]: core.bool,
+    [_streamFuture]: async.Future
+  }),
+  getters: () => ({
+    isMarkedIdle: dart.definiteFunctionType(core.bool, []),
+    connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
+    [_isActive]: dart.definiteFunctionType(core.bool, []),
+    [_isIdle]: dart.definiteFunctionType(core.bool, []),
+    [_isClosing]: dart.definiteFunctionType(core.bool, []),
+    [_isDetached]: dart.definiteFunctionType(core.bool, []),
+    [_serviceTypePath]: dart.definiteFunctionType(core.String, []),
+    [_serviceTypeName]: dart.definiteFunctionType(core.String, [])
+  }),
+  methods: () => ({
+    markIdle: dart.definiteFunctionType(dart.void, []),
+    destroy: dart.definiteFunctionType(dart.void, []),
+    detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
+    [_toJSON$]: dart.definiteFunctionType(core.Map, [core.bool])
+  }),
+  sfields: () => ({
+    _ACTIVE: core.int,
+    _IDLE: core.int,
+    _CLOSING: core.int,
+    _DETACHED: core.int,
+    _connections: MapOfint$_HttpConnection()
+  })
+});
+io._HttpConnection._ACTIVE = 0;
+io._HttpConnection._IDLE = 1;
+io._HttpConnection._CLOSING = 2;
+io._HttpConnection._DETACHED = 3;
+dart.defineLazy(io._HttpConnection, {
+  get _connections() {
+    return HashMapOfint$_HttpConnection().new();
+  },
+  set _connections(_) {}
+});
+const _activeConnections = Symbol('_activeConnections');
+const _idleConnections = Symbol('_idleConnections');
+const _serverSocket = Symbol('_serverSocket');
+const _closeServer = Symbol('_closeServer');
+let const$71;
+let const$72;
+io._HttpServer = class _HttpServer extends dart.mixin(async.Stream$(io.HttpRequest), io._ServiceObject) {
+  static bind(address, port, backlog, v6Only, shared) {
+    return io.ServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io._HttpServer)(dart.fn(socket => new io._HttpServer._(socket, true), ServerSocketTo_HttpServer()));
+  }
+  static bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared) {
+    return io.SecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, shared: shared}).then(io._HttpServer)(dart.fn(socket => new io._HttpServer._(socket, true), SecureServerSocketTo_HttpServer()));
+  }
+  _(serverSocket, closeServer) {
+    this.defaultResponseHeaders = io._HttpServer._initDefaultResponseHeaders();
+    this[_activeConnections] = new (LinkedListOf_HttpConnection())();
+    this[_idleConnections] = new (LinkedListOf_HttpConnection())();
+    this[_serverSocket] = serverSocket;
+    this[_closeServer] = closeServer;
+    this.serverHeader = null;
+    this.autoCompress = false;
+    this[_idleTimeout] = null;
+    this[_idleTimer] = null;
+    this[_sessionManagerInstance] = null;
+    this.closed = false;
+    this[_controller$0] = null;
+    super.new();
+    this[_controller$0] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
+    this.idleTimeout = const$71 || (const$71 = dart.const(new core.Duration({seconds: 120})));
+    io._HttpServer._servers[dartx._set](this[_serviceId], this);
+    dart.dput(this[_serverSocket], _owner, this);
+  }
+  listenOn(serverSocket) {
+    this.defaultResponseHeaders = io._HttpServer._initDefaultResponseHeaders();
+    this[_activeConnections] = new (LinkedListOf_HttpConnection())();
+    this[_idleConnections] = new (LinkedListOf_HttpConnection())();
+    this[_serverSocket] = serverSocket;
+    this[_closeServer] = false;
+    this.serverHeader = null;
+    this.autoCompress = false;
+    this[_idleTimeout] = null;
+    this[_idleTimer] = null;
+    this[_sessionManagerInstance] = null;
+    this.closed = false;
+    this[_controller$0] = null;
+    super.new();
+    this[_controller$0] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
+    this.idleTimeout = const$72 || (const$72 = dart.const(new core.Duration({seconds: 120})));
+    io._HttpServer._servers[dartx._set](this[_serviceId], this);
+    try {
+      dart.dput(this[_serverSocket], _owner, this);
+    } catch (_) {
     }
-    finish() {
-      developer._reportCompleteEvent(this[_start$1], this[_startCpu], this.category, this.name, developer._argumentsAsJson(this[_arguments$]));
+
+  }
+  static _initDefaultResponseHeaders() {
+    let defaultResponseHeaders = new io._HttpHeaders('1.1');
+    defaultResponseHeaders.contentType = io.ContentType.TEXT;
+    defaultResponseHeaders.set('X-Frame-Options', 'SAMEORIGIN');
+    defaultResponseHeaders.set('X-Content-Type-Options', 'nosniff');
+    defaultResponseHeaders.set('X-XSS-Protection', '1; mode=block');
+    return defaultResponseHeaders;
+  }
+  get idleTimeout() {
+    return this[_idleTimeout];
+  }
+  set idleTimeout(duration) {
+    if (this[_idleTimer] != null) {
+      this[_idleTimer].cancel();
+      this[_idleTimer] = null;
     }
-    [_appendArguments](arguments$) {
-      if (arguments$ == null) {
+    this[_idleTimeout] = duration;
+    if (this[_idleTimeout] != null) {
+      this[_idleTimer] = async.Timer.periodic(this[_idleTimeout], dart.fn(_ => {
+        for (let idle of this[_idleConnections].toList()) {
+          if (dart.test(idle.isMarkedIdle)) {
+            idle.destroy();
+          } else {
+            idle.markIdle();
+          }
+        }
+      }, TimerToNull()));
+    }
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    dart.dsend(this[_serverSocket], 'listen', dart.fn(socket => {
+      socket.setOption(io.SocketOption.TCP_NODELAY, true);
+      let connection = new io._HttpConnection(socket, this);
+      this[_idleConnections].add(connection);
+    }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
+        if (!io.HandshakeException.is(error)) {
+          this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
+        }
+      }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  close(opts) {
+    let force = opts && 'force' in opts ? opts.force : false;
+    this.closed = true;
+    let result = null;
+    if (this[_serverSocket] != null && dart.test(this[_closeServer])) {
+      result = async.Future._check(dart.dsend(this[_serverSocket], 'close'));
+    } else {
+      result = async.Future.value();
+    }
+    this.idleTimeout = null;
+    if (dart.test(force)) {
+      for (let c of this[_activeConnections].toList()) {
+        c.destroy();
+      }
+      dart.assert(this[_activeConnections].isEmpty);
+    }
+    for (let c of this[_idleConnections].toList()) {
+      c.destroy();
+    }
+    this[_maybePerformCleanup]();
+    return result;
+  }
+  [_maybePerformCleanup]() {
+    if (dart.test(this.closed) && dart.test(this[_idleConnections].isEmpty) && dart.test(this[_activeConnections].isEmpty) && this[_sessionManagerInstance] != null) {
+      this[_sessionManagerInstance].close();
+      this[_sessionManagerInstance] = null;
+      io._HttpServer._servers[dartx.remove](this[_serviceId]);
+    }
+  }
+  get port() {
+    if (dart.test(this.closed)) dart.throw(new io.HttpException("HttpServer is not bound to a socket"));
+    return core.int._check(dart.dload(this[_serverSocket], 'port'));
+  }
+  get address() {
+    if (dart.test(this.closed)) dart.throw(new io.HttpException("HttpServer is not bound to a socket"));
+    return io.InternetAddress._check(dart.dload(this[_serverSocket], 'address'));
+  }
+  set sessionTimeout(timeout) {
+    this[_sessionManager].sessionTimeout = timeout;
+  }
+  [_handleRequest](request) {
+    if (!dart.test(this.closed)) {
+      this[_controller$0].add(request);
+    } else {
+      request[_httpConnection].destroy();
+    }
+  }
+  [_connectionClosed](connection) {
+    connection.unlink();
+    this[_maybePerformCleanup]();
+  }
+  [_markIdle](connection) {
+    this[_activeConnections].remove(connection);
+    this[_idleConnections].add(connection);
+  }
+  [_markActive](connection) {
+    this[_idleConnections].remove(connection);
+    this[_activeConnections].add(connection);
+  }
+  get [_sessionManager]() {
+    if (this[_sessionManagerInstance] == null) {
+      this[_sessionManagerInstance] = new io._HttpSessionManager();
+    }
+    return this[_sessionManagerInstance];
+  }
+  connectionsInfo() {
+    let result = new io.HttpConnectionsInfo();
+    result.total = dart.notNull(this[_activeConnections].length) + dart.notNull(this[_idleConnections].length);
+    this[_activeConnections].forEach(dart.fn(conn => {
+      if (dart.test(conn[_isActive])) {
+        result.active = dart.notNull(result.active) + 1;
+      } else {
+        dart.assert(conn[_isClosing]);
+        result.closing = dart.notNull(result.closing) + 1;
+      }
+    }, _HttpConnectionToNull()));
+    this[_idleConnections].forEach(dart.fn(conn => {
+      result.idle = dart.notNull(result.idle) + 1;
+      dart.assert(conn[_isIdle]);
+    }, _HttpConnectionToNull()));
+    return result;
+  }
+  get [_serviceTypePath]() {
+    return 'io/http/servers';
+  }
+  get [_serviceTypeName]() {
+    return 'HttpServer';
+  }
+  [_toJSON$](ref) {
+    let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: dart.str`${this.address.host}:${this.port}`, user_name: dart.str`${this.address.host}:${this.port}`}, core.String, dart.dynamic);
+    if (dart.test(ref)) {
+      return r;
+    }
+    try {
+      r[dartx._set]('socket', dart.dsend(this[_serverSocket], _toJSON$, true));
+    } catch (_) {
+      r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
+    }
+
+    r[dartx._set]('port', this.port);
+    r[dartx._set]('address', this.address.host);
+    r[dartx._set]('active', this[_activeConnections].map(core.Map)(dart.fn(c => c[_toJSON$](true), _HttpConnectionToMap()))[dartx.toList]());
+    r[dartx._set]('idle', this[_idleConnections].map(core.Map)(dart.fn(c => c[_toJSON$](true), _HttpConnectionToMap()))[dartx.toList]());
+    r[dartx._set]('closed', this.closed);
+    return r;
+  }
+};
+dart.addSimpleTypeTests(io._HttpServer);
+dart.defineNamedConstructor(io._HttpServer, '_');
+dart.defineNamedConstructor(io._HttpServer, 'listenOn');
+io._HttpServer[dart.implements] = () => [io.HttpServer];
+dart.setSignature(io._HttpServer, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(io._HttpServer, [dart.dynamic, core.bool]),
+    listenOn: dart.definiteFunctionType(io._HttpServer, [dart.dynamic])
+  }),
+  fields: () => ({
+    serverHeader: core.String,
+    defaultResponseHeaders: io.HttpHeaders,
+    autoCompress: core.bool,
+    [_idleTimeout]: core.Duration,
+    [_idleTimer]: async.Timer,
+    [_sessionManagerInstance]: io._HttpSessionManager,
+    closed: core.bool,
+    [_serverSocket]: dart.dynamic,
+    [_closeServer]: core.bool,
+    [_activeConnections]: LinkedListOf_HttpConnection(),
+    [_idleConnections]: LinkedListOf_HttpConnection(),
+    [_controller$0]: StreamControllerOfHttpRequest()
+  }),
+  getters: () => ({
+    idleTimeout: dart.definiteFunctionType(core.Duration, []),
+    port: dart.definiteFunctionType(core.int, []),
+    address: dart.definiteFunctionType(io.InternetAddress, []),
+    [_sessionManager]: dart.definiteFunctionType(io._HttpSessionManager, []),
+    [_serviceTypePath]: dart.definiteFunctionType(core.String, []),
+    [_serviceTypeName]: dart.definiteFunctionType(core.String, [])
+  }),
+  setters: () => ({
+    idleTimeout: dart.definiteFunctionType(dart.void, [core.Duration]),
+    sessionTimeout: dart.definiteFunctionType(dart.void, [core.int])
+  }),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(io.HttpRequest), [HttpRequestTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    close: dart.definiteFunctionType(async.Future, [], {force: core.bool}),
+    [_maybePerformCleanup]: dart.definiteFunctionType(dart.void, []),
+    [_handleRequest]: dart.definiteFunctionType(dart.void, [io._HttpRequest]),
+    [_connectionClosed]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
+    [_markIdle]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
+    [_markActive]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
+    connectionsInfo: dart.definiteFunctionType(io.HttpConnectionsInfo, []),
+    [_toJSON$]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
+  }),
+  sfields: () => ({_servers: MapOfint$_HttpServer()}),
+  statics: () => ({
+    bind: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int, core.int, core.bool, core.bool]),
+    bindSecure: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int, io.SecurityContext, core.int, core.bool, core.bool, core.bool]),
+    _initDefaultResponseHeaders: dart.definiteFunctionType(io.HttpHeaders, [])
+  }),
+  names: ['bind', 'bindSecure', '_initDefaultResponseHeaders']
+});
+dart.defineLazy(io._HttpServer, {
+  get _servers() {
+    return MapOfint$_HttpServer().new();
+  },
+  set _servers(_) {}
+});
+io._Proxy = class _Proxy extends core.Object {
+  new(host, port, username, password) {
+    this.host = host;
+    this.port = port;
+    this.username = username;
+    this.password = password;
+    this.isDirect = false;
+  }
+  direct() {
+    this.host = null;
+    this.port = null;
+    this.username = null;
+    this.password = null;
+    this.isDirect = true;
+  }
+  get isAuthenticated() {
+    return this.username != null;
+  }
+};
+dart.defineNamedConstructor(io._Proxy, 'direct');
+dart.setSignature(io._Proxy, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._Proxy, [core.String, core.int, core.String, core.String]),
+    direct: dart.definiteFunctionType(io._Proxy, [])
+  }),
+  fields: () => ({
+    host: core.String,
+    port: core.int,
+    username: core.String,
+    password: core.String,
+    isDirect: core.bool
+  }),
+  getters: () => ({isAuthenticated: dart.definiteFunctionType(core.bool, [])})
+});
+let const$73;
+let const$74;
+io._ProxyConfiguration = class _ProxyConfiguration extends core.Object {
+  new(configuration) {
+    this.proxies = ListOf_Proxy().new();
+    if (configuration == null) {
+      dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
+    }
+    let list = configuration[dartx.split](";");
+    list[dartx.forEach](dart.fn(proxy => {
+      proxy = proxy[dartx.trim]();
+      if (!dart.test(proxy[dartx.isEmpty])) {
+        if (dart.test(proxy[dartx.startsWith](io._ProxyConfiguration.PROXY_PREFIX))) {
+          let username = null;
+          let password = null;
+          proxy = proxy[dartx.substring](io._ProxyConfiguration.PROXY_PREFIX[dartx.length])[dartx.trim]();
+          let at = proxy[dartx.indexOf]("@");
+          if (at != -1) {
+            let userinfo = proxy[dartx.substring](0, at)[dartx.trim]();
+            proxy = proxy[dartx.substring](dart.notNull(at) + 1)[dartx.trim]();
+            let colon = userinfo[dartx.indexOf](":");
+            if (colon == -1 || colon == 0 || colon == dart.notNull(proxy[dartx.length]) - 1) {
+              dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
+            }
+            username = userinfo[dartx.substring](0, colon)[dartx.trim]();
+            password = userinfo[dartx.substring](dart.notNull(colon) + 1)[dartx.trim]();
+          }
+          let colon = proxy[dartx.lastIndexOf](":");
+          if (colon == -1 || colon == 0 || colon == dart.notNull(proxy[dartx.length]) - 1) {
+            dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
+          }
+          let host = proxy[dartx.substring](0, colon)[dartx.trim]();
+          if (dart.test(host[dartx.startsWith]("[")) && dart.test(host[dartx.endsWith]("]"))) {
+            host = host[dartx.substring](1, dart.notNull(host[dartx.length]) - 1);
+          }
+          let portString = proxy[dartx.substring](dart.notNull(colon) + 1)[dartx.trim]();
+          let port = null;
+          try {
+            port = core.int.parse(portString);
+          } catch (e) {
+            if (core.FormatException.is(e)) {
+              dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}, ` + dart.str`invalid port '${portString}'`));
+            } else
+              throw e;
+          }
+
+          this.proxies[dartx.add](new io._Proxy(host, port, username, password));
+        } else if (proxy[dartx.trim]() == io._ProxyConfiguration.DIRECT_PREFIX) {
+          this.proxies[dartx.add](new io._Proxy.direct());
+        } else {
+          dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
+        }
+      }
+    }, StringToNull()));
+  }
+  direct() {
+    this.proxies = const$74 || (const$74 = dart.constList([const$73 || (const$73 = dart.const(new io._Proxy.direct()))], io._Proxy));
+  }
+};
+dart.defineNamedConstructor(io._ProxyConfiguration, 'direct');
+dart.setSignature(io._ProxyConfiguration, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._ProxyConfiguration, [core.String]),
+    direct: dart.definiteFunctionType(io._ProxyConfiguration, [])
+  }),
+  fields: () => ({proxies: ListOf_Proxy()}),
+  sfields: () => ({
+    PROXY_PREFIX: core.String,
+    DIRECT_PREFIX: core.String
+  })
+});
+io._ProxyConfiguration.PROXY_PREFIX = "PROXY ";
+io._ProxyConfiguration.DIRECT_PREFIX = "DIRECT";
+io._HttpConnectionInfo = class _HttpConnectionInfo extends core.Object {
+  new() {
+    this.remoteAddress = null;
+    this.remotePort = null;
+    this.localPort = null;
+  }
+  static create(socket) {
+    if (socket == null) return null;
+    try {
+      let info = new io._HttpConnectionInfo();
+      info.remoteAddress = socket.remoteAddress;
+      info.remotePort = socket.remotePort;
+      info.localPort = socket.port;
+      return info;
+    } catch (e) {
+    }
+
+    return null;
+  }
+};
+io._HttpConnectionInfo[dart.implements] = () => [io.HttpConnectionInfo];
+dart.setSignature(io._HttpConnectionInfo, {
+  fields: () => ({
+    remoteAddress: io.InternetAddress,
+    remotePort: core.int,
+    localPort: core.int
+  }),
+  statics: () => ({create: dart.definiteFunctionType(io._HttpConnectionInfo, [io.Socket])}),
+  names: ['create']
+});
+io._DetachedSocket = class _DetachedSocket extends async.Stream$(core.List$(core.int)) {
+  new(socket, incoming) {
+    this[_socket] = socket;
+    this[_incoming] = incoming;
+    super.new();
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_incoming].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  get encoding() {
+    return convert.Encoding._check(dart.dload(this[_socket], 'encoding'));
+  }
+  set encoding(value) {
+    dart.dput(this[_socket], 'encoding', value);
+  }
+  write(obj) {
+    dart.dsend(this[_socket], 'write', obj);
+  }
+  writeln(obj) {
+    if (obj === void 0) obj = "";
+    dart.dsend(this[_socket], 'writeln', obj);
+  }
+  writeCharCode(charCode) {
+    dart.dsend(this[_socket], 'writeCharCode', charCode);
+  }
+  writeAll(objects, separator) {
+    if (separator === void 0) separator = "";
+    dart.dsend(this[_socket], 'writeAll', objects, separator);
+  }
+  add(bytes) {
+    dart.dsend(this[_socket], 'add', bytes);
+  }
+  addError(error, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    return dart.dsend(this[_socket], 'addError', error, stackTrace);
+  }
+  addStream(stream) {
+    return FutureOfSocket()._check(dart.dsend(this[_socket], 'addStream', stream));
+  }
+  destroy() {
+    dart.dsend(this[_socket], 'destroy');
+  }
+  flush() {
+    return async.Future._check(dart.dsend(this[_socket], 'flush'));
+  }
+  close() {
+    return async.Future._check(dart.dsend(this[_socket], 'close'));
+  }
+  get done() {
+    return FutureOfSocket()._check(dart.dload(this[_socket], 'done'));
+  }
+  get port() {
+    return core.int._check(dart.dload(this[_socket], 'port'));
+  }
+  get address() {
+    return io.InternetAddress._check(dart.dload(this[_socket], 'address'));
+  }
+  get remoteAddress() {
+    return io.InternetAddress._check(dart.dload(this[_socket], 'remoteAddress'));
+  }
+  get remotePort() {
+    return core.int._check(dart.dload(this[_socket], 'remotePort'));
+  }
+  setOption(option, enabled) {
+    return core.bool._check(dart.dsend(this[_socket], 'setOption', option, enabled));
+  }
+  [_toJSON$](ref) {
+    return core.Map._check(dart.dsend(this[_socket], _toJSON$, ref));
+  }
+  set [_owner](owner) {
+    dart.dput(this[_socket], _owner, owner);
+  }
+};
+dart.addSimpleTypeTests(io._DetachedSocket);
+io._DetachedSocket[dart.implements] = () => [io.Socket];
+dart.setSignature(io._DetachedSocket, {
+  constructors: () => ({new: dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic, StreamOfListOfint()])}),
+  fields: () => ({
+    [_incoming]: StreamOfListOfint(),
+    [_socket]: dart.dynamic
+  }),
+  getters: () => ({
+    encoding: dart.definiteFunctionType(convert.Encoding, []),
+    done: dart.definiteFunctionType(async.Future$(io.Socket), []),
+    port: dart.definiteFunctionType(core.int, []),
+    address: dart.definiteFunctionType(io.InternetAddress, []),
+    remoteAddress: dart.definiteFunctionType(io.InternetAddress, []),
+    remotePort: dart.definiteFunctionType(core.int, [])
+  }),
+  setters: () => ({
+    encoding: dart.definiteFunctionType(dart.void, [convert.Encoding]),
+    [_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    write: dart.definiteFunctionType(dart.void, [core.Object]),
+    writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+    addStream: dart.definiteFunctionType(async.Future$(io.Socket), [StreamOfListOfint()]),
+    destroy: dart.definiteFunctionType(dart.void, []),
+    flush: dart.definiteFunctionType(async.Future, []),
+    close: dart.definiteFunctionType(async.Future, []),
+    setOption: dart.definiteFunctionType(core.bool, [io.SocketOption, core.bool]),
+    [_toJSON$]: dart.definiteFunctionType(core.Map, [core.bool])
+  })
+});
+const _scheme = Symbol('_scheme');
+io._AuthenticationScheme = class _AuthenticationScheme extends core.Object {
+  new(scheme) {
+    this[_scheme] = scheme;
+  }
+  static fromString(scheme) {
+    if (scheme[dartx.toLowerCase]() == "basic") return io._AuthenticationScheme.BASIC;
+    if (scheme[dartx.toLowerCase]() == "digest") return io._AuthenticationScheme.DIGEST;
+    return io._AuthenticationScheme.UNKNOWN;
+  }
+  toString() {
+    if (dart.equals(this, io._AuthenticationScheme.BASIC)) return "Basic";
+    if (dart.equals(this, io._AuthenticationScheme.DIGEST)) return "Digest";
+    return "Unknown";
+  }
+};
+dart.setSignature(io._AuthenticationScheme, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io._AuthenticationScheme, [core.int]),
+    fromString: dart.definiteFunctionType(io._AuthenticationScheme, [core.String])
+  }),
+  fields: () => ({[_scheme]: core.int}),
+  sfields: () => ({
+    UNKNOWN: io._AuthenticationScheme,
+    BASIC: io._AuthenticationScheme,
+    DIGEST: io._AuthenticationScheme
+  })
+});
+dart.defineLazy(io._AuthenticationScheme, {
+  get UNKNOWN() {
+    return dart.const(new io._AuthenticationScheme(-1));
+  },
+  get BASIC() {
+    return dart.const(new io._AuthenticationScheme(0));
+  },
+  get DIGEST() {
+    return dart.const(new io._AuthenticationScheme(1));
+  }
+});
+io._Credentials = class _Credentials extends core.Object {
+  new(credentials, realm) {
+    this.credentials = credentials;
+    this.realm = realm;
+    this.used = false;
+    this.ha1 = null;
+    this.nonce = null;
+    this.algorithm = null;
+    this.qop = null;
+    this.nonceCount = null;
+    if (dart.equals(this.credentials.scheme, io._AuthenticationScheme.DIGEST)) {
+      let creds = io._HttpClientDigestCredentials._check(this.credentials);
+      let hasher = new io._MD5();
+      hasher.add(convert.UTF8.encode(creds.username));
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(this.realm[dartx.codeUnits]);
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(convert.UTF8.encode(creds.password));
+      this.ha1 = io._CryptoUtils.bytesToHex(hasher.close());
+    }
+  }
+  get scheme() {
+    return this.credentials.scheme;
+  }
+};
+dart.setSignature(io._Credentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io._Credentials, [io._HttpClientCredentials, core.String])}),
+  fields: () => ({
+    credentials: io._HttpClientCredentials,
+    realm: core.String,
+    used: core.bool,
+    ha1: core.String,
+    nonce: core.String,
+    algorithm: core.String,
+    qop: core.String,
+    nonceCount: core.int
+  }),
+  getters: () => ({scheme: dart.definiteFunctionType(io._AuthenticationScheme, [])})
+});
+io._SiteCredentials = class _SiteCredentials extends io._Credentials {
+  new(uri, realm, creds) {
+    this.uri = uri;
+    super.new(creds, core.String._check(realm));
+  }
+  applies(uri, scheme) {
+    if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
+    if (uri.host != this.uri.host) return false;
+    let thisPort = this.uri.port == 0 ? io.HttpClient.DEFAULT_HTTP_PORT : this.uri.port;
+    let otherPort = uri.port == 0 ? io.HttpClient.DEFAULT_HTTP_PORT : uri.port;
+    if (otherPort != thisPort) return false;
+    return uri.path[dartx.startsWith](this.uri.path);
+  }
+  authorize(request) {
+    if (dart.equals(this.credentials.scheme, io._AuthenticationScheme.DIGEST) && this.nonce == null) {
+      return;
+    }
+    this.credentials.authorize(this, request);
+    this.used = true;
+  }
+};
+dart.setSignature(io._SiteCredentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io._SiteCredentials, [core.Uri, dart.dynamic, io._HttpClientCredentials])}),
+  fields: () => ({uri: core.Uri}),
+  methods: () => ({
+    applies: dart.definiteFunctionType(core.bool, [core.Uri, io._AuthenticationScheme]),
+    authorize: dart.definiteFunctionType(dart.void, [io.HttpClientRequest])
+  })
+});
+io._ProxyCredentials = class _ProxyCredentials extends io._Credentials {
+  new(host, port, realm, creds) {
+    this.host = host;
+    this.port = port;
+    super.new(creds, core.String._check(realm));
+  }
+  applies(proxy, scheme) {
+    if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
+    return proxy.host == this.host && proxy.port == this.port;
+  }
+  authorize(request) {
+    if (dart.equals(this.credentials.scheme, io._AuthenticationScheme.DIGEST) && this.nonce == null) {
+      return;
+    }
+    this.credentials.authorizeProxy(this, request);
+  }
+};
+dart.setSignature(io._ProxyCredentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ProxyCredentials, [core.String, core.int, dart.dynamic, io._HttpClientCredentials])}),
+  fields: () => ({
+    host: core.String,
+    port: core.int
+  }),
+  methods: () => ({
+    applies: dart.definiteFunctionType(core.bool, [io._Proxy, io._AuthenticationScheme]),
+    authorize: dart.definiteFunctionType(dart.void, [io.HttpClientRequest])
+  })
+});
+io._HttpClientCredentials = class _HttpClientCredentials extends core.Object {};
+io._HttpClientCredentials[dart.implements] = () => [io.HttpClientCredentials];
+io._HttpClientBasicCredentials = class _HttpClientBasicCredentials extends io._HttpClientCredentials {
+  new(username, password) {
+    this.username = username;
+    this.password = password;
+  }
+  get scheme() {
+    return io._AuthenticationScheme.BASIC;
+  }
+  authorization() {
+    let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${this.username}:${this.password}`));
+    return dart.str`Basic ${auth}`;
+  }
+  authorize(_, request) {
+    request.headers.set(io.HttpHeaders.AUTHORIZATION, this.authorization());
+  }
+  authorizeProxy(_, request) {
+    request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, this.authorization());
+  }
+};
+io._HttpClientBasicCredentials[dart.implements] = () => [io.HttpClientBasicCredentials];
+dart.setSignature(io._HttpClientBasicCredentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpClientBasicCredentials, [core.String, core.String])}),
+  fields: () => ({
+    username: core.String,
+    password: core.String
+  }),
+  getters: () => ({scheme: dart.definiteFunctionType(io._AuthenticationScheme, [])}),
+  methods: () => ({
+    authorization: dart.definiteFunctionType(core.String, []),
+    authorize: dart.definiteFunctionType(dart.void, [io._Credentials, io.HttpClientRequest]),
+    authorizeProxy: dart.definiteFunctionType(dart.void, [io._ProxyCredentials, io.HttpClientRequest])
+  })
+});
+io._HttpClientDigestCredentials = class _HttpClientDigestCredentials extends io._HttpClientCredentials {
+  new(username, password) {
+    this.username = username;
+    this.password = password;
+  }
+  get scheme() {
+    return io._AuthenticationScheme.DIGEST;
+  }
+  authorization(credentials, request) {
+    let requestUri = request[_requestUri]();
+    let hasher = new io._MD5();
+    hasher.add(request.method[dartx.codeUnits]);
+    hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+    hasher.add(requestUri[dartx.codeUnits]);
+    let ha2 = io._CryptoUtils.bytesToHex(hasher.close());
+    let qop = null;
+    let cnonce = null;
+    let nc = null;
+    let x = null;
+    hasher = new io._MD5();
+    hasher.add(credentials.ha1[dartx.codeUnits]);
+    hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+    if (credentials.qop == "auth") {
+      qop = credentials.qop;
+      cnonce = io._CryptoUtils.bytesToHex(io._IOCrypto.getRandomBytes(4));
+      credentials.nonceCount = dart.notNull(credentials.nonceCount) + 1;
+      nc = credentials.nonceCount[dartx.toRadixString](16);
+      nc = dart.notNull("00000000"[dartx.substring](0, 8 - dart.notNull(nc[dartx.length]) + 1)) + dart.notNull(nc);
+      hasher.add(credentials.nonce[dartx.codeUnits]);
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(nc[dartx.codeUnits]);
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(cnonce[dartx.codeUnits]);
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(credentials.qop[dartx.codeUnits]);
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(ha2[dartx.codeUnits]);
+    } else {
+      hasher.add(credentials.nonce[dartx.codeUnits]);
+      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
+      hasher.add(ha2[dartx.codeUnits]);
+    }
+    let response = io._CryptoUtils.bytesToHex(hasher.close());
+    let buffer = new core.StringBuffer();
+    buffer.write('Digest ');
+    buffer.write(dart.str`username="${this.username}"`);
+    buffer.write(dart.str`, realm="${credentials.realm}"`);
+    buffer.write(dart.str`, nonce="${credentials.nonce}"`);
+    buffer.write(dart.str`, uri="${requestUri}"`);
+    buffer.write(dart.str`, algorithm="${credentials.algorithm}"`);
+    if (qop == "auth") {
+      buffer.write(dart.str`, qop="${qop}"`);
+      buffer.write(dart.str`, cnonce="${cnonce}"`);
+      buffer.write(dart.str`, nc="${nc}"`);
+    }
+    buffer.write(dart.str`, response="${response}"`);
+    return buffer.toString();
+  }
+  authorize(credentials, request) {
+    request.headers.set(io.HttpHeaders.AUTHORIZATION, this.authorization(credentials, io._HttpClientRequest._check(request)));
+  }
+  authorizeProxy(credentials, request) {
+    request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, this.authorization(credentials, io._HttpClientRequest._check(request)));
+  }
+};
+io._HttpClientDigestCredentials[dart.implements] = () => [io.HttpClientDigestCredentials];
+dart.setSignature(io._HttpClientDigestCredentials, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpClientDigestCredentials, [core.String, core.String])}),
+  fields: () => ({
+    username: core.String,
+    password: core.String
+  }),
+  getters: () => ({scheme: dart.definiteFunctionType(io._AuthenticationScheme, [])}),
+  methods: () => ({
+    authorization: dart.definiteFunctionType(core.String, [io._Credentials, io._HttpClientRequest]),
+    authorize: dart.definiteFunctionType(dart.void, [io._Credentials, io.HttpClientRequest]),
+    authorizeProxy: dart.definiteFunctionType(dart.void, [io._ProxyCredentials, io.HttpClientRequest])
+  })
+});
+io._RedirectInfo = class _RedirectInfo extends core.Object {
+  new(statusCode, method, location) {
+    this.statusCode = statusCode;
+    this.method = method;
+    this.location = location;
+  }
+};
+io._RedirectInfo[dart.implements] = () => [io.RedirectInfo];
+dart.setSignature(io._RedirectInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._RedirectInfo, [core.int, core.String, core.Uri])}),
+  fields: () => ({
+    statusCode: core.int,
+    method: core.String,
+    location: core.Uri
+  })
+});
+io._getHttpVersion = function() {
+  let version = io.Platform.version;
+  let index = version[dartx.indexOf]('.', dart.notNull(version[dartx.indexOf]('.')) + 1);
+  version = version[dartx.substring](0, index);
+  return dart.str`Dart/${version} (dart:io)`;
+};
+dart.fn(io._getHttpVersion, VoidToString$());
+io._Const = class _Const extends core.Object {};
+dart.setSignature(io._Const, {
+  sfields: () => ({
+    HTTP: ListOfint(),
+    HTTP1DOT: ListOfint(),
+    HTTP10: ListOfint(),
+    HTTP11: ListOfint(),
+    T: core.bool,
+    F: core.bool,
+    SEPARATOR_MAP: ListOfbool()
+  })
+});
+io._Const.HTTP = dart.constList([72, 84, 84, 80], core.int);
+io._Const.HTTP1DOT = dart.constList([72, 84, 84, 80, 47, 49, 46], core.int);
+io._Const.HTTP10 = dart.constList([72, 84, 84, 80, 47, 49, 46, 48], core.int);
+io._Const.HTTP11 = dart.constList([72, 84, 84, 80, 47, 49, 46, 49], core.int);
+io._Const.T = true;
+io._Const.F = false;
+dart.defineLazy(io._Const, {
+  get SEPARATOR_MAP() {
+    return dart.constList([io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.T, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.T, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F], core.bool);
+  }
+});
+io._CharCode = class _CharCode extends core.Object {};
+dart.setSignature(io._CharCode, {
+  sfields: () => ({
+    HT: core.int,
+    LF: core.int,
+    CR: core.int,
+    SP: core.int,
+    AMPERSAND: core.int,
+    COMMA: core.int,
+    DASH: core.int,
+    SLASH: core.int,
+    ZERO: core.int,
+    ONE: core.int,
+    COLON: core.int,
+    SEMI_COLON: core.int,
+    EQUAL: core.int
+  })
+});
+io._CharCode.HT = 9;
+io._CharCode.LF = 10;
+io._CharCode.CR = 13;
+io._CharCode.SP = 32;
+io._CharCode.AMPERSAND = 38;
+io._CharCode.COMMA = 44;
+io._CharCode.DASH = 45;
+io._CharCode.SLASH = 47;
+io._CharCode.ZERO = 48;
+io._CharCode.ONE = 49;
+io._CharCode.COLON = 58;
+io._CharCode.SEMI_COLON = 59;
+io._CharCode.EQUAL = 61;
+io._State = class _State extends core.Object {};
+dart.setSignature(io._State, {
+  sfields: () => ({
+    START: core.int,
+    METHOD_OR_RESPONSE_HTTP_VERSION: core.int,
+    RESPONSE_HTTP_VERSION: core.int,
+    REQUEST_LINE_METHOD: core.int,
+    REQUEST_LINE_URI: core.int,
+    REQUEST_LINE_HTTP_VERSION: core.int,
+    REQUEST_LINE_ENDING: core.int,
+    RESPONSE_LINE_STATUS_CODE: core.int,
+    RESPONSE_LINE_REASON_PHRASE: core.int,
+    RESPONSE_LINE_ENDING: core.int,
+    HEADER_START: core.int,
+    HEADER_FIELD: core.int,
+    HEADER_VALUE_START: core.int,
+    HEADER_VALUE: core.int,
+    HEADER_VALUE_FOLDING_OR_ENDING: core.int,
+    HEADER_VALUE_FOLD_OR_END: core.int,
+    HEADER_ENDING: core.int,
+    CHUNK_SIZE_STARTING_CR: core.int,
+    CHUNK_SIZE_STARTING_LF: core.int,
+    CHUNK_SIZE: core.int,
+    CHUNK_SIZE_EXTENSION: core.int,
+    CHUNK_SIZE_ENDING: core.int,
+    CHUNKED_BODY_DONE_CR: core.int,
+    CHUNKED_BODY_DONE_LF: core.int,
+    BODY: core.int,
+    CLOSED: core.int,
+    UPGRADED: core.int,
+    FAILURE: core.int,
+    FIRST_BODY_STATE: core.int
+  })
+});
+io._State.START = 0;
+io._State.METHOD_OR_RESPONSE_HTTP_VERSION = 1;
+io._State.RESPONSE_HTTP_VERSION = 2;
+io._State.REQUEST_LINE_METHOD = 3;
+io._State.REQUEST_LINE_URI = 4;
+io._State.REQUEST_LINE_HTTP_VERSION = 5;
+io._State.REQUEST_LINE_ENDING = 6;
+io._State.RESPONSE_LINE_STATUS_CODE = 7;
+io._State.RESPONSE_LINE_REASON_PHRASE = 8;
+io._State.RESPONSE_LINE_ENDING = 9;
+io._State.HEADER_START = 10;
+io._State.HEADER_FIELD = 11;
+io._State.HEADER_VALUE_START = 12;
+io._State.HEADER_VALUE = 13;
+io._State.HEADER_VALUE_FOLDING_OR_ENDING = 14;
+io._State.HEADER_VALUE_FOLD_OR_END = 15;
+io._State.HEADER_ENDING = 16;
+io._State.CHUNK_SIZE_STARTING_CR = 17;
+io._State.CHUNK_SIZE_STARTING_LF = 18;
+io._State.CHUNK_SIZE = 19;
+io._State.CHUNK_SIZE_EXTENSION = 20;
+io._State.CHUNK_SIZE_ENDING = 21;
+io._State.CHUNKED_BODY_DONE_CR = 22;
+io._State.CHUNKED_BODY_DONE_LF = 23;
+io._State.BODY = 24;
+io._State.CLOSED = 25;
+io._State.UPGRADED = 26;
+io._State.FAILURE = 27;
+dart.defineLazy(io._State, {
+  get FIRST_BODY_STATE() {
+    return io._State.CHUNK_SIZE_STARTING_CR;
+  }
+});
+io._HttpVersion = class _HttpVersion extends core.Object {};
+dart.setSignature(io._HttpVersion, {
+  sfields: () => ({
+    UNDETERMINED: core.int,
+    HTTP10: core.int,
+    HTTP11: core.int
+  })
+});
+io._HttpVersion.UNDETERMINED = 0;
+io._HttpVersion.HTTP10 = 1;
+io._HttpVersion.HTTP11 = 2;
+io._MessageType = class _MessageType extends core.Object {};
+dart.setSignature(io._MessageType, {
+  sfields: () => ({
+    UNDETERMINED: core.int,
+    REQUEST: core.int,
+    RESPONSE: core.int
+  })
+});
+io._MessageType.UNDETERMINED = 0;
+io._MessageType.REQUEST = 1;
+io._MessageType.RESPONSE = 0;
+const _injectData = Symbol('_injectData');
+const _userOnData = Symbol('_userOnData');
+const _isCanceled$ = Symbol('_isCanceled');
+const _pauseCount$ = Symbol('_pauseCount');
+const _scheduled = Symbol('_scheduled');
+const _maybeScheduleData = Symbol('_maybeScheduleData');
+io._HttpDetachedStreamSubscription = class _HttpDetachedStreamSubscription extends core.Object {
+  new(subscription, injectData, userOnData) {
+    this[_subscription$] = subscription;
+    this[_injectData] = injectData;
+    this[_userOnData] = userOnData;
+    this[_isCanceled$] = false;
+    this[_pauseCount$] = 1;
+    this[_scheduled] = false;
+  }
+  get isPaused() {
+    return this[_subscription$].isPaused;
+  }
+  asFuture(T) {
+    return futureValue => {
+      if (futureValue === void 0) futureValue = null;
+      return this[_subscription$].asFuture(T)(futureValue);
+    };
+  }
+  cancel() {
+    this[_isCanceled$] = true;
+    this[_injectData] = null;
+    return this[_subscription$].cancel();
+  }
+  onData(handleData) {
+    this[_userOnData] = handleData;
+    this[_subscription$].onData(handleData);
+  }
+  onDone(handleDone) {
+    this[_subscription$].onDone(handleDone);
+  }
+  onError(handleError) {
+    this[_subscription$].onError(handleError);
+  }
+  pause(resumeSignal) {
+    if (resumeSignal === void 0) resumeSignal = null;
+    if (this[_injectData] == null) {
+      this[_subscription$].pause(resumeSignal);
+    } else {
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
+      if (resumeSignal != null) {
+        resumeSignal.whenComplete(dart.bind(this, 'resume'));
+      }
+    }
+  }
+  resume() {
+    if (this[_injectData] == null) {
+      this[_subscription$].resume();
+    } else {
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
+      this[_maybeScheduleData]();
+    }
+  }
+  [_maybeScheduleData]() {
+    if (dart.test(this[_scheduled])) return;
+    if (this[_pauseCount$] != 0) return;
+    this[_scheduled] = true;
+    async.scheduleMicrotask(dart.fn(() => {
+      this[_scheduled] = false;
+      if (dart.notNull(this[_pauseCount$]) > 0 || dart.test(this[_isCanceled$])) return;
+      let data = this[_injectData];
+      this[_injectData] = null;
+      this[_subscription$].resume();
+      if (this[_userOnData] != null) {
+        dart.dcall(this[_userOnData], data);
+      }
+    }, VoidToNull()));
+  }
+};
+io._HttpDetachedStreamSubscription[dart.implements] = () => [StreamSubscriptionOfListOfint()];
+dart.setSignature(io._HttpDetachedStreamSubscription, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpDetachedStreamSubscription, [StreamSubscriptionOfListOfint(), ListOfint(), core.Function])}),
+  fields: () => ({
+    [_subscription$]: StreamSubscriptionOfListOfint(),
+    [_injectData]: ListOfint(),
+    [_isCanceled$]: core.bool,
+    [_pauseCount$]: core.int,
+    [_userOnData]: core.Function,
+    [_scheduled]: core.bool
+  }),
+  getters: () => ({isPaused: dart.definiteFunctionType(core.bool, [])}),
+  methods: () => ({
+    asFuture: dart.definiteFunctionType(T => [async.Future$(T), [], [T]]),
+    cancel: dart.definiteFunctionType(async.Future, []),
+    onData: dart.definiteFunctionType(dart.void, [ListOfintTovoid()]),
+    onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+    onError: dart.definiteFunctionType(dart.void, [core.Function]),
+    pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
+    resume: dart.definiteFunctionType(dart.void, []),
+    [_maybeScheduleData]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+io._HttpDetachedIncoming = class _HttpDetachedIncoming extends async.Stream$(core.List$(core.int)) {
+  new(subscription, bufferedData) {
+    this.subscription = subscription;
+    this.bufferedData = bufferedData;
+    super.new();
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    if (this.subscription != null) {
+      this.subscription.onData(onData);
+      this.subscription.onError(onError);
+      this.subscription.onDone(onDone);
+      if (this.bufferedData == null) {
+        return StreamSubscriptionOfListOfint()._check(((() => {
+          this.subscription.resume();
+          return this.subscription;
+        })()));
+      }
+      let _ = new io._HttpDetachedStreamSubscription(StreamSubscriptionOfListOfint()._check(this.subscription), this.bufferedData, onData);
+      _.resume();
+      return _;
+    } else {
+      return StreamOfint().fromIterable(this.bufferedData).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    }
+  }
+};
+dart.addSimpleTypeTests(io._HttpDetachedIncoming);
+dart.setSignature(io._HttpDetachedIncoming, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpDetachedIncoming, [async.StreamSubscription, ListOfint()])}),
+  fields: () => ({
+    subscription: async.StreamSubscription,
+    bufferedData: ListOfint()
+  }),
+  methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+});
+const _method$ = Symbol('_method');
+const _uri_or_reason_phrase = Symbol('_uri_or_reason_phrase');
+const _headerField = Symbol('_headerField');
+const _headerValue = Symbol('_headerValue');
+const _requestParser = Symbol('_requestParser');
+const _parserCalled = Symbol('_parserCalled');
+const _index$2 = Symbol('_index');
+const _httpVersionIndex = Symbol('_httpVersionIndex');
+const _messageType = Symbol('_messageType');
+const _statusCodeLength = Symbol('_statusCodeLength');
+const _httpVersion = Symbol('_httpVersion');
+const _connectionUpgrade = Symbol('_connectionUpgrade');
+const _chunked = Symbol('_chunked');
+const _noMessageBody = Symbol('_noMessageBody');
+const _remainingContent = Symbol('_remainingContent');
+const _socketSubscription = Symbol('_socketSubscription');
+const _paused = Symbol('_paused');
+const _bodyPaused = Symbol('_bodyPaused');
+const _bodyController = Symbol('_bodyController');
+const _pauseStateChanged = Symbol('_pauseStateChanged');
+const _reset = Symbol('_reset');
+const _onData$ = Symbol('_onData');
+const _onDone$ = Symbol('_onDone');
+const _doParse = Symbol('_doParse');
+const _reportError = Symbol('_reportError');
+const _createIncoming = Symbol('_createIncoming');
+const _closeIncoming = Symbol('_closeIncoming');
+const _headersEnd = Symbol('_headersEnd');
+const _expect = Symbol('_expect');
+const _caseInsensitiveCompare = Symbol('_caseInsensitiveCompare');
+const _expectHexDigit = Symbol('_expectHexDigit');
+const _releaseBuffer = Symbol('_releaseBuffer');
+io._HttpParser = class _HttpParser extends async.Stream$(io._HttpIncoming) {
+  static requestParser() {
+    return new io._HttpParser._(true);
+  }
+  static responseParser() {
+    return new io._HttpParser._(false);
+  }
+  _(requestParser) {
+    this[_method$] = JSArrayOfint().of([]);
+    this[_uri_or_reason_phrase] = JSArrayOfint().of([]);
+    this[_headerField] = JSArrayOfint().of([]);
+    this[_headerValue] = JSArrayOfint().of([]);
+    this[_requestParser] = requestParser;
+    this[_parserCalled] = false;
+    this[_buffer$] = null;
+    this[_index$2] = null;
+    this[_state$1] = null;
+    this[_httpVersionIndex] = null;
+    this[_messageType] = null;
+    this[_statusCode] = 0;
+    this[_statusCodeLength] = 0;
+    this[_httpVersion] = null;
+    this[_transferLength] = -1;
+    this[_persistentConnection] = null;
+    this[_connectionUpgrade] = null;
+    this[_chunked] = null;
+    this[_noMessageBody] = false;
+    this[_remainingContent] = -1;
+    this[_headers] = null;
+    this[_incoming] = null;
+    this[_socketSubscription] = null;
+    this[_paused] = true;
+    this[_bodyPaused] = false;
+    this[_controller$0] = null;
+    this[_bodyController] = null;
+    super.new();
+    this[_controller$0] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
+        this[_paused] = false;
+      }, VoidToNull()), onPause: dart.fn(() => {
+        this[_paused] = true;
+        this[_pauseStateChanged]();
+      }, VoidToNull()), onResume: dart.fn(() => {
+        this[_paused] = false;
+        this[_pauseStateChanged]();
+      }, VoidToNull()), onCancel: dart.fn(() => {
+        if (this[_socketSubscription] != null) {
+          this[_socketSubscription].cancel();
+        }
+      }, VoidToNull())});
+    this[_reset]();
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  listenToStream(stream) {
+    this[_socketSubscription] = stream.listen(dart.bind(this, _onData$), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this, _onDone$)});
+  }
+  [_parse]() {
+    try {
+      this[_doParse]();
+    } catch (e) {
+      let s = dart.stackTrace(e);
+      this[_state$1] = io._State.FAILURE;
+      this[_reportError](e, s);
+    }
+
+  }
+  [_headersEnd]() {
+    this[_headers][_mutable] = false;
+    this[_transferLength] = this[_headers].contentLength;
+    if (dart.test(this[_chunked])) this[_transferLength] = -1;
+    if (this[_messageType] == io._MessageType.REQUEST && dart.notNull(this[_transferLength]) < 0 && this[_chunked] == false) {
+      this[_transferLength] = 0;
+    }
+    if (dart.test(this[_connectionUpgrade])) {
+      this[_state$1] = io._State.UPGRADED;
+      this[_transferLength] = 0;
+    }
+    this[_createIncoming](this[_transferLength]);
+    if (dart.test(this[_requestParser])) {
+      this[_incoming].method = core.String.fromCharCodes(this[_method$]);
+      this[_incoming].uri = core.Uri.parse(core.String.fromCharCodes(this[_uri_or_reason_phrase]));
+    } else {
+      this[_incoming].statusCode = this[_statusCode];
+      this[_incoming].reasonPhrase = core.String.fromCharCodes(this[_uri_or_reason_phrase]);
+    }
+    this[_method$][dartx.clear]();
+    this[_uri_or_reason_phrase][dartx.clear]();
+    if (dart.test(this[_connectionUpgrade])) {
+      this[_incoming].upgraded = true;
+      this[_parserCalled] = false;
+      let tmp = this[_incoming];
+      this[_closeIncoming]();
+      this[_controller$0].add(tmp);
+      return true;
+    }
+    if (this[_transferLength] == 0 || this[_messageType] == io._MessageType.RESPONSE && dart.test(this[_noMessageBody])) {
+      this[_reset]();
+      let tmp = this[_incoming];
+      this[_closeIncoming]();
+      this[_controller$0].add(tmp);
+      return false;
+    } else if (dart.test(this[_chunked])) {
+      this[_state$1] = io._State.CHUNK_SIZE;
+      this[_remainingContent] = 0;
+    } else if (dart.notNull(this[_transferLength]) > 0) {
+      this[_remainingContent] = this[_transferLength];
+      this[_state$1] = io._State.BODY;
+    } else {
+      this[_state$1] = io._State.BODY;
+    }
+    this[_parserCalled] = false;
+    this[_controller$0].add(this[_incoming]);
+    return true;
+  }
+  [_doParse]() {
+    dart.assert(!dart.test(this[_parserCalled]));
+    this[_parserCalled] = true;
+    if (this[_state$1] == io._State.CLOSED) {
+      dart.throw(new io.HttpException("Data on closed connection"));
+    }
+    if (this[_state$1] == io._State.FAILURE) {
+      dart.throw(new io.HttpException("Data on failed connection"));
+    }
+    while (this[_buffer$] != null && dart.notNull(this[_index$2]) < dart.notNull(this[_buffer$][dartx.length]) && this[_state$1] != io._State.FAILURE && this[_state$1] != io._State.UPGRADED) {
+      if (this[_incoming] != null && dart.test(this[_bodyPaused]) || this[_incoming] == null && dart.test(this[_paused])) {
+        this[_parserCalled] = false;
         return;
       }
-      if (this[_arguments$] == null) {
-        this[_arguments$] = dart.map();
-      }
-      this[_arguments$][dartx.addAll](arguments$);
-    }
-  };
-  dart.defineNamedConstructor(developer._SyncBlock, '_');
-  dart.setSignature(developer._SyncBlock, {
-    constructors: () => ({_: dart.definiteFunctionType(developer._SyncBlock, [core.String, core.int, core.int])}),
-    fields: () => ({
-      category: core.String,
-      name: core.String,
-      [_arguments$]: core.Map,
-      [_start$1]: core.int,
-      [_startCpu]: core.int
-    }),
-    methods: () => ({
-      finish: dart.definiteFunctionType(dart.void, []),
-      [_appendArguments]: dart.definiteFunctionType(dart.void, [core.Map])
-    })
-  });
-  developer._fastPathArguments = null;
-  developer._argumentsAsJson = function(arguments$) {
-    if (arguments$ == null || arguments$[dartx.length] == 0) {
-      if (developer._fastPathArguments == null) {
-        developer._fastPathArguments = dart.str`{"isolateNumber":"${developer.Timeline._isolateId}"}`;
-      }
-      return developer._fastPathArguments;
-    }
-    arguments$[dartx._set]('isolateNumber', developer.Timeline._isolateIdString);
-    return convert.JSON.encode(arguments$);
-  };
-  dart.fn(developer._argumentsAsJson, MapToString());
-  developer._isDartStreamEnabled = function() {
-    return false;
-  };
-  dart.fn(developer._isDartStreamEnabled, VoidTobool());
-  developer._getNextAsyncId = function() {
-    return 0;
-  };
-  dart.fn(developer._getNextAsyncId, VoidToint());
-  developer._getTraceClock = function() {
-    let x = developer._clockValue;
-    developer._clockValue = dart.notNull(x) + 1;
-    return x;
-  };
-  dart.fn(developer._getTraceClock, VoidToint());
-  developer._getThreadCpuClock = function() {
-    return -1;
-  };
-  dart.fn(developer._getThreadCpuClock, VoidToint());
-  developer._getIsolateNum = function() {
-    return 0;
-  };
-  dart.fn(developer._getIsolateNum, VoidToint());
-  developer._reportTaskEvent = function(start, taskId, phase, category, name, argumentsAsJson) {
-  };
-  dart.fn(developer._reportTaskEvent, intAndintAndString__Tovoid());
-  developer._reportCompleteEvent = function(start, startCpu, category, name, argumentsAsJson) {
-  };
-  dart.fn(developer._reportCompleteEvent, intAndintAndString__Tovoid$());
-  developer._reportInstantEvent = function(start, category, name, argumentsAsJson) {
-  };
-  dart.fn(developer._reportInstantEvent, intAndStringAndString__Tovoid());
-  developer.ServiceProtocolInfo = class ServiceProtocolInfo extends core.Object {
-    new(serverUri) {
-      this.majorVersion = developer._getServiceMajorVersion();
-      this.minorVersion = developer._getServiceMinorVersion();
-      this.serverUri = serverUri;
-    }
-    toString() {
-      if (this.serverUri != null) {
-        return dart.str`Dart VM Service Protocol v${this.majorVersion}.${this.minorVersion} ` + dart.str`listening on ${this.serverUri}`;
-      } else {
-        return dart.str`Dart VM Service Protocol v${this.majorVersion}.${this.minorVersion}`;
-      }
-    }
-  };
-  dart.setSignature(developer.ServiceProtocolInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(developer.ServiceProtocolInfo, [core.Uri])}),
-    fields: () => ({
-      majorVersion: core.int,
-      minorVersion: core.int,
-      serverUri: core.Uri
-    })
-  });
-  developer.Service = class Service extends core.Object {
-    static getInfo() {
-      return dart.async(function*() {
-        let receivePort = isolate.RawReceivePort.new();
-        let uriCompleter = CompleterOfUri().new();
-        receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), UriTovoid());
-        developer._getServerInfo(receivePort.sendPort);
-        let uri = (yield uriCompleter.future);
-        receivePort.close();
-        return new developer.ServiceProtocolInfo(uri);
-      }, developer.ServiceProtocolInfo);
-    }
-    static controlWebServer(opts) {
-      return dart.async(function*(opts) {
-        let enable = opts && 'enable' in opts ? opts.enable : false;
-        if (!(typeof enable == 'boolean')) {
-          dart.throw(new core.ArgumentError.value(enable, 'enable', 'Must be a bool'));
+      let byte = this[_buffer$][dartx._get]((() => {
+        let x = this[_index$2];
+        this[_index$2] = dart.notNull(x) + 1;
+        return x;
+      })());
+      switch (this[_state$1]) {
+        case io._State.START:
+        {
+          if (byte == io._Const.HTTP[dartx._get](0)) {
+            this[_httpVersionIndex] = 1;
+            this[_state$1] = io._State.METHOD_OR_RESPONSE_HTTP_VERSION;
+          } else {
+            if (!dart.test(io._HttpParser._isTokenChar(byte))) {
+              dart.throw(new io.HttpException("Invalid request method"));
+            }
+            this[_method$][dartx.add](byte);
+            if (!dart.test(this[_requestParser])) {
+              dart.throw(new io.HttpException("Invalid response line"));
+            }
+            this[_state$1] = io._State.REQUEST_LINE_METHOD;
+          }
+          break;
         }
-        let receivePort = isolate.RawReceivePort.new();
-        let uriCompleter = CompleterOfUri().new();
-        receivePort.handler = dart.fn(uri => uriCompleter.complete(uri), UriTovoid());
-        developer._webServerControl(receivePort.sendPort, enable);
-        let uri = (yield uriCompleter.future);
-        receivePort.close();
-        return new developer.ServiceProtocolInfo(uri);
-      }, developer.ServiceProtocolInfo, opts);
-    }
-  };
-  dart.setSignature(developer.Service, {
-    statics: () => ({
-      getInfo: dart.definiteFunctionType(async.Future$(developer.ServiceProtocolInfo), []),
-      controlWebServer: dart.definiteFunctionType(async.Future$(developer.ServiceProtocolInfo), [], {enable: core.bool})
-    }),
-    names: ['getInfo', 'controlWebServer']
-  });
-  developer._getServerInfo = function(sp) {
-    sp.send(null);
-  };
-  dart.lazyFn(developer._getServerInfo, () => SendPortTovoid());
-  developer._webServerControl = function(sp, enable) {
-    sp.send(null);
-  };
-  dart.lazyFn(developer._webServerControl, () => SendPortAndboolTovoid());
-  developer._getServiceMajorVersion = function() {
-    return 0;
-  };
-  dart.fn(developer._getServiceMajorVersion, VoidToint());
-  developer._getServiceMinorVersion = function() {
-    return 0;
-  };
-  dart.fn(developer._getServiceMinorVersion, VoidToint());
-  io.BytesBuilder = class BytesBuilder extends core.Object {
-    static new(opts) {
-      let copy = opts && 'copy' in opts ? opts.copy : true;
-      if (dart.test(copy)) {
-        return new io._CopyingBytesBuilder();
-      } else {
-        return new io._BytesBuilder();
-      }
-    }
-  };
-  dart.setSignature(io.BytesBuilder, {
-    constructors: () => ({new: dart.definiteFunctionType(io.BytesBuilder, [], {copy: core.bool})})
-  });
-  const _length$2 = Symbol('_length');
-  const _buffer$ = Symbol('_buffer');
-  const _pow2roundup = Symbol('_pow2roundup');
-  io._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
-    new() {
-      this[_length$2] = 0;
-      this[_buffer$] = null;
-    }
-    add(bytes) {
-      let bytesLength = bytes[dartx.length];
-      if (bytesLength == 0) return;
-      let required = dart.notNull(this[_length$2]) + dart.notNull(bytesLength);
-      if (this[_buffer$] == null) {
-        let size = this[_pow2roundup](required);
-        size = math.max(core.int)(size, io._CopyingBytesBuilder._INIT_SIZE);
-        this[_buffer$] = typed_data.Uint8List.new(size);
-      } else if (dart.notNull(this[_buffer$][dartx.length]) < required) {
-        let size = dart.notNull(this[_pow2roundup](required)) * 2;
-        let newBuffer = typed_data.Uint8List.new(size);
-        newBuffer[dartx.setRange](0, this[_buffer$][dartx.length], this[_buffer$]);
-        this[_buffer$] = newBuffer;
-      }
-      dart.assert(dart.notNull(this[_buffer$][dartx.length]) >= required);
-      if (typed_data.Uint8List.is(bytes)) {
-        this[_buffer$][dartx.setRange](this[_length$2], required, bytes);
-      } else {
-        for (let i = 0; i < dart.notNull(bytesLength); i++) {
-          this[_buffer$][dartx._set](dart.notNull(this[_length$2]) + i, bytes[dartx._get](i));
+        case io._State.METHOD_OR_RESPONSE_HTTP_VERSION:
+        {
+          if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(io._Const.HTTP[dartx.length]) && byte == io._Const.HTTP[dartx._get](this[_httpVersionIndex])) {
+            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+          } else if (this[_httpVersionIndex] == io._Const.HTTP[dartx.length] && byte == io._CharCode.SLASH) {
+            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+            if (dart.test(this[_requestParser])) {
+              dart.throw(new io.HttpException("Invalid request line"));
+            }
+            this[_state$1] = io._State.RESPONSE_HTTP_VERSION;
+          } else {
+            for (let i = 0; i < dart.notNull(this[_httpVersionIndex]); i++) {
+              this[_method$][dartx.add](io._Const.HTTP[dartx._get](i));
+            }
+            if (byte == io._CharCode.SP) {
+              this[_state$1] = io._State.REQUEST_LINE_URI;
+            } else {
+              this[_method$][dartx.add](byte);
+              this[_httpVersion] = io._HttpVersion.UNDETERMINED;
+              if (!dart.test(this[_requestParser])) {
+                dart.throw(new io.HttpException("Invalid response line"));
+              }
+              this[_state$1] = io._State.REQUEST_LINE_METHOD;
+            }
+          }
+          break;
+        }
+        case io._State.RESPONSE_HTTP_VERSION:
+        {
+          if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(io._Const.HTTP1DOT[dartx.length])) {
+            this[_expect](byte, io._Const.HTTP1DOT[dartx._get](this[_httpVersionIndex]));
+            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+          } else if (this[_httpVersionIndex] == io._Const.HTTP1DOT[dartx.length] && byte == io._CharCode.ONE) {
+            this[_httpVersion] = io._HttpVersion.HTTP11;
+            this[_persistentConnection] = true;
+            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+          } else if (this[_httpVersionIndex] == io._Const.HTTP1DOT[dartx.length] && byte == io._CharCode.ZERO) {
+            this[_httpVersion] = io._HttpVersion.HTTP10;
+            this[_persistentConnection] = false;
+            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+          } else if (this[_httpVersionIndex] == dart.notNull(io._Const.HTTP1DOT[dartx.length]) + 1) {
+            this[_expect](byte, io._CharCode.SP);
+            this[_state$1] = io._State.RESPONSE_LINE_STATUS_CODE;
+          } else {
+            dart.throw(new io.HttpException("Invalid response line"));
+          }
+          break;
+        }
+        case io._State.REQUEST_LINE_METHOD:
+        {
+          if (byte == io._CharCode.SP) {
+            this[_state$1] = io._State.REQUEST_LINE_URI;
+          } else {
+            if (dart.test(io._Const.SEPARATOR_MAP[dartx._get](byte)) || byte == io._CharCode.CR || byte == io._CharCode.LF) {
+              dart.throw(new io.HttpException("Invalid request method"));
+            }
+            this[_method$][dartx.add](byte);
+          }
+          break;
+        }
+        case io._State.REQUEST_LINE_URI:
+        {
+          if (byte == io._CharCode.SP) {
+            if (this[_uri_or_reason_phrase][dartx.length] == 0) {
+              dart.throw(new io.HttpException("Invalid request URI"));
+            }
+            this[_state$1] = io._State.REQUEST_LINE_HTTP_VERSION;
+            this[_httpVersionIndex] = 0;
+          } else {
+            if (byte == io._CharCode.CR || byte == io._CharCode.LF) {
+              dart.throw(new io.HttpException("Invalid request URI"));
+            }
+            this[_uri_or_reason_phrase][dartx.add](byte);
+          }
+          break;
+        }
+        case io._State.REQUEST_LINE_HTTP_VERSION:
+        {
+          if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(io._Const.HTTP1DOT[dartx.length])) {
+            this[_expect](byte, io._Const.HTTP11[dartx._get](this[_httpVersionIndex]));
+            this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+          } else if (this[_httpVersionIndex] == io._Const.HTTP1DOT[dartx.length]) {
+            if (byte == io._CharCode.ONE) {
+              this[_httpVersion] = io._HttpVersion.HTTP11;
+              this[_persistentConnection] = true;
+              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+            } else if (byte == io._CharCode.ZERO) {
+              this[_httpVersion] = io._HttpVersion.HTTP10;
+              this[_persistentConnection] = false;
+              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
+            } else {
+              dart.throw(new io.HttpException("Invalid response line"));
+            }
+          } else {
+            if (byte == io._CharCode.CR) {
+              this[_state$1] = io._State.REQUEST_LINE_ENDING;
+            } else {
+              this[_expect](byte, io._CharCode.LF);
+              this[_messageType] = io._MessageType.REQUEST;
+              this[_state$1] = io._State.HEADER_START;
+            }
+          }
+          break;
+        }
+        case io._State.REQUEST_LINE_ENDING:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          this[_messageType] = io._MessageType.REQUEST;
+          this[_state$1] = io._State.HEADER_START;
+          break;
+        }
+        case io._State.RESPONSE_LINE_STATUS_CODE:
+        {
+          if (byte == io._CharCode.SP) {
+            this[_state$1] = io._State.RESPONSE_LINE_REASON_PHRASE;
+          } else if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.RESPONSE_LINE_ENDING;
+          } else {
+            this[_statusCodeLength] = dart.notNull(this[_statusCodeLength]) + 1;
+            if (dart.notNull(byte) < 48 && 57 < dart.notNull(byte) || dart.notNull(this[_statusCodeLength]) > 3) {
+              dart.throw(new io.HttpException("Invalid response status code"));
+            } else {
+              this[_statusCode] = dart.notNull(this[_statusCode]) * 10 + dart.notNull(byte) - 48;
+            }
+          }
+          break;
+        }
+        case io._State.RESPONSE_LINE_REASON_PHRASE:
+        {
+          if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.RESPONSE_LINE_ENDING;
+          } else {
+            if (byte == io._CharCode.CR || byte == io._CharCode.LF) {
+              dart.throw(new io.HttpException("Invalid response reason phrase"));
+            }
+            this[_uri_or_reason_phrase][dartx.add](byte);
+          }
+          break;
+        }
+        case io._State.RESPONSE_LINE_ENDING:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          this[_messageType] == io._MessageType.RESPONSE;
+          if (dart.notNull(this[_statusCode]) < 100 || dart.notNull(this[_statusCode]) > 599) {
+            dart.throw(new io.HttpException("Invalid response status code"));
+          } else {
+            if (dart.notNull(this[_statusCode]) <= 199 || this[_statusCode] == 204 || this[_statusCode] == 304) {
+              this[_noMessageBody] = true;
+            }
+          }
+          this[_state$1] = io._State.HEADER_START;
+          break;
+        }
+        case io._State.HEADER_START:
+        {
+          this[_headers] = new io._HttpHeaders(this.version);
+          if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.HEADER_ENDING;
+          } else if (byte == io._CharCode.LF) {
+            this[_state$1] = io._State.HEADER_ENDING;
+            this[_index$2] = dart.notNull(this[_index$2]) - 1;
+          } else {
+            this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
+            this[_state$1] = io._State.HEADER_FIELD;
+          }
+          break;
+        }
+        case io._State.HEADER_FIELD:
+        {
+          if (byte == io._CharCode.COLON) {
+            this[_state$1] = io._State.HEADER_VALUE_START;
+          } else {
+            if (!dart.test(io._HttpParser._isTokenChar(byte))) {
+              dart.throw(new io.HttpException("Invalid header field name"));
+            }
+            this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
+          }
+          break;
+        }
+        case io._State.HEADER_VALUE_START:
+        {
+          if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
+          } else if (byte == io._CharCode.LF) {
+            this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
+          } else if (byte != io._CharCode.SP && byte != io._CharCode.HT) {
+            this[_headerValue][dartx.add](byte);
+            this[_state$1] = io._State.HEADER_VALUE;
+          }
+          break;
+        }
+        case io._State.HEADER_VALUE:
+        {
+          if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
+          } else if (byte == io._CharCode.LF) {
+            this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
+          } else {
+            this[_headerValue][dartx.add](byte);
+          }
+          break;
+        }
+        case io._State.HEADER_VALUE_FOLDING_OR_ENDING:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
+          break;
+        }
+        case io._State.HEADER_VALUE_FOLD_OR_END:
+        {
+          if (byte == io._CharCode.SP || byte == io._CharCode.HT) {
+            this[_state$1] = io._State.HEADER_VALUE_START;
+          } else {
+            let headerField = core.String.fromCharCodes(this[_headerField]);
+            let headerValue = core.String.fromCharCodes(this[_headerValue]);
+            if (headerField == "transfer-encoding" && dart.test(this[_caseInsensitiveCompare]("chunked"[dartx.codeUnits], this[_headerValue]))) {
+              this[_chunked] = true;
+            }
+            if (headerField == "connection") {
+              let tokens = io._HttpParser._tokenizeFieldValue(headerValue);
+              for (let i = 0; i < dart.notNull(tokens[dartx.length]); i++) {
+                if (dart.test(this[_caseInsensitiveCompare]("upgrade"[dartx.codeUnits], tokens[dartx._get](i)[dartx.codeUnits]))) {
+                  this[_connectionUpgrade] = true;
+                }
+                this[_headers][_add$2](headerField, tokens[dartx._get](i));
+              }
+            } else {
+              this[_headers][_add$2](headerField, headerValue);
+            }
+            this[_headerField][dartx.clear]();
+            this[_headerValue][dartx.clear]();
+            if (byte == io._CharCode.CR) {
+              this[_state$1] = io._State.HEADER_ENDING;
+            } else if (byte == io._CharCode.LF) {
+              this[_state$1] = io._State.HEADER_ENDING;
+              this[_index$2] = dart.notNull(this[_index$2]) - 1;
+            } else {
+              this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
+              this[_state$1] = io._State.HEADER_FIELD;
+            }
+          }
+          break;
+        }
+        case io._State.HEADER_ENDING:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          if (dart.test(this[_headersEnd]())) {
+            return;
+          } else {
+            break;
+          }
+          return;
+        }
+        case io._State.CHUNK_SIZE_STARTING_CR:
+        {
+          this[_expect](byte, io._CharCode.CR);
+          this[_state$1] = io._State.CHUNK_SIZE_STARTING_LF;
+          break;
+        }
+        case io._State.CHUNK_SIZE_STARTING_LF:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          this[_state$1] = io._State.CHUNK_SIZE;
+          break;
+        }
+        case io._State.CHUNK_SIZE:
+        {
+          if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.CHUNK_SIZE_ENDING;
+          } else if (byte == io._CharCode.SEMI_COLON) {
+            this[_state$1] = io._State.CHUNK_SIZE_EXTENSION;
+          } else {
+            let value = this[_expectHexDigit](byte);
+            this[_remainingContent] = dart.notNull(this[_remainingContent]) * 16 + dart.notNull(value);
+          }
+          break;
+        }
+        case io._State.CHUNK_SIZE_EXTENSION:
+        {
+          if (byte == io._CharCode.CR) {
+            this[_state$1] = io._State.CHUNK_SIZE_ENDING;
+          }
+          break;
+        }
+        case io._State.CHUNK_SIZE_ENDING:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          if (dart.notNull(this[_remainingContent]) > 0) {
+            this[_state$1] = io._State.BODY;
+          } else {
+            this[_state$1] = io._State.CHUNKED_BODY_DONE_CR;
+          }
+          break;
+        }
+        case io._State.CHUNKED_BODY_DONE_CR:
+        {
+          this[_expect](byte, io._CharCode.CR);
+          this[_state$1] = io._State.CHUNKED_BODY_DONE_LF;
+          break;
+        }
+        case io._State.CHUNKED_BODY_DONE_LF:
+        {
+          this[_expect](byte, io._CharCode.LF);
+          this[_reset]();
+          this[_closeIncoming]();
+          break;
+        }
+        case io._State.BODY:
+        {
+          this[_index$2] = dart.notNull(this[_index$2]) - 1;
+          let dataAvailable = dart.notNull(this[_buffer$][dartx.length]) - dart.notNull(this[_index$2]);
+          if (dart.notNull(this[_remainingContent]) >= 0 && dart.notNull(dataAvailable) > dart.notNull(this[_remainingContent])) {
+            dataAvailable = this[_remainingContent];
+          }
+          let data = typed_data.Uint8List.view(this[_buffer$][dartx.buffer], dart.notNull(this[_buffer$][dartx.offsetInBytes]) + dart.notNull(this[_index$2]), dataAvailable);
+          this[_bodyController].add(data);
+          if (this[_remainingContent] != -1) {
+            this[_remainingContent] = dart.notNull(this[_remainingContent]) - dart.notNull(data[dartx.length]);
+          }
+          this[_index$2] = dart.notNull(this[_index$2]) + dart.notNull(data[dartx.length]);
+          if (this[_remainingContent] == 0) {
+            if (!dart.test(this[_chunked])) {
+              this[_reset]();
+              this[_closeIncoming]();
+            } else {
+              this[_state$1] = io._State.CHUNK_SIZE_STARTING_CR;
+            }
+          }
+          break;
+        }
+        case io._State.FAILURE:
+        {
+          dart.assert(false);
+          break;
+        }
+        default:
+        {
+          dart.assert(false);
+          break;
         }
       }
-      this[_length$2] = required;
     }
-    addByte(byte) {
-      this.add(JSArrayOfint().of([byte]));
-    }
-    takeBytes() {
-      if (this[_buffer$] == null) return typed_data.Uint8List.new(0);
-      let buffer = typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]);
-      this.clear();
-      return buffer;
-    }
-    toBytes() {
-      if (this[_buffer$] == null) return typed_data.Uint8List.new(0);
-      return typed_data.Uint8List.fromList(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
-    }
-    get length() {
-      return this[_length$2];
-    }
-    get isEmpty() {
-      return this[_length$2] == 0;
-    }
-    get isNotEmpty() {
-      return this[_length$2] != 0;
-    }
-    clear() {
-      this[_length$2] = 0;
-      this[_buffer$] = null;
-    }
-    [_pow2roundup](x) {
-      x = dart.notNull(x) - 1;
-      x = (dart.notNull(x) | x[dartx['>>']](1)) >>> 0;
-      x = (dart.notNull(x) | x[dartx['>>']](2)) >>> 0;
-      x = (dart.notNull(x) | x[dartx['>>']](4)) >>> 0;
-      x = (dart.notNull(x) | x[dartx['>>']](8)) >>> 0;
-      x = (dart.notNull(x) | x[dartx['>>']](16)) >>> 0;
-      return dart.notNull(x) + 1;
-    }
-  };
-  io._CopyingBytesBuilder[dart.implements] = () => [io.BytesBuilder];
-  dart.setSignature(io._CopyingBytesBuilder, {
-    fields: () => ({
-      [_length$2]: core.int,
-      [_buffer$]: typed_data.Uint8List
-    }),
-    getters: () => ({
-      length: dart.definiteFunctionType(core.int, []),
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      isNotEmpty: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addByte: dart.definiteFunctionType(dart.void, [core.int]),
-      takeBytes: dart.definiteFunctionType(core.List$(core.int), []),
-      toBytes: dart.definiteFunctionType(core.List$(core.int), []),
-      clear: dart.definiteFunctionType(dart.void, []),
-      [_pow2roundup]: dart.definiteFunctionType(core.int, [core.int])
-    }),
-    sfields: () => ({_INIT_SIZE: core.int})
-  });
-  io._CopyingBytesBuilder._INIT_SIZE = 1024;
-  const _chunks = Symbol('_chunks');
-  io._BytesBuilder = class _BytesBuilder extends core.Object {
-    new() {
-      this[_chunks] = JSArrayOfListOfint().of([]);
-      this[_length$2] = 0;
-    }
-    add(bytes) {
-      if (!typed_data.Uint8List.is(bytes)) {
-        bytes = typed_data.Uint8List.fromList(bytes);
+    this[_parserCalled] = false;
+    if (this[_buffer$] != null && this[_index$2] == this[_buffer$][dartx.length]) {
+      this[_releaseBuffer]();
+      if (this[_state$1] != io._State.UPGRADED && this[_state$1] != io._State.FAILURE) {
+        this[_socketSubscription].resume();
       }
-      this[_chunks][dartx.add](bytes);
-      this[_length$2] = dart.notNull(this[_length$2]) + dart.notNull(bytes[dartx.length]);
     }
-    addByte(byte) {
-      this.add(JSArrayOfint().of([byte]));
-    }
-    takeBytes() {
-      if (this[_chunks][dartx.length] == 0) return typed_data.Uint8List.new(0);
-      if (this[_chunks][dartx.length] == 1) {
-        let buffer = this[_chunks][dartx.single];
-        this.clear();
-        return buffer;
+  }
+  [_onData$](buffer) {
+    this[_socketSubscription].pause();
+    dart.assert(this[_buffer$] == null);
+    this[_buffer$] = typed_data.Uint8List._check(buffer);
+    this[_index$2] = 0;
+    this[_parse]();
+  }
+  [_onDone$]() {
+    this[_socketSubscription] = null;
+    if (this[_state$1] == io._State.CLOSED || this[_state$1] == io._State.FAILURE) return;
+    if (this[_incoming] != null) {
+      if (this[_state$1] != io._State.UPGRADED && !(this[_state$1] == io._State.START && !dart.test(this[_requestParser])) && !(this[_state$1] == io._State.BODY && !dart.test(this[_chunked]) && this[_transferLength] == -1)) {
+        this[_bodyController].addError(new io.HttpException("Connection closed while receiving data"));
       }
-      let buffer = typed_data.Uint8List.new(this[_length$2]);
-      let offset = 0;
-      for (let chunk of this[_chunks]) {
-        buffer[dartx.setRange](offset, dart.notNull(offset) + dart.notNull(chunk[dartx.length]), chunk);
-        offset = dart.notNull(offset) + dart.notNull(chunk[dartx.length]);
+      this[_closeIncoming](true);
+      this[_controller$0].close();
+      return;
+    }
+    if (this[_state$1] == io._State.START) {
+      if (!dart.test(this[_requestParser])) {
+        this[_reportError](new io.HttpException("Connection closed before full header was received"));
       }
-      this.clear();
-      return buffer;
+      this[_controller$0].close();
+      return;
     }
-    toBytes() {
-      if (this[_chunks][dartx.length] == 0) return typed_data.Uint8List.new(0);
-      let buffer = typed_data.Uint8List.new(this[_length$2]);
-      let offset = 0;
-      for (let chunk of this[_chunks]) {
-        buffer[dartx.setRange](offset, dart.notNull(offset) + dart.notNull(chunk[dartx.length]), chunk);
-        offset = dart.notNull(offset) + dart.notNull(chunk[dartx.length]);
+    if (this[_state$1] == io._State.UPGRADED) {
+      this[_controller$0].close();
+      return;
+    }
+    if (dart.notNull(this[_state$1]) < io._State.FIRST_BODY_STATE) {
+      this[_state$1] = io._State.FAILURE;
+      this[_reportError](new io.HttpException("Connection closed before full header was received"));
+      this[_controller$0].close();
+      return;
+    }
+    if (!dart.test(this[_chunked]) && this[_transferLength] == -1) {
+      this[_state$1] = io._State.CLOSED;
+    } else {
+      this[_state$1] = io._State.FAILURE;
+      this[_reportError](new io.HttpException("Connection closed before full body was received"));
+    }
+    this[_controller$0].close();
+  }
+  get version() {
+    switch (this[_httpVersion]) {
+      case io._HttpVersion.HTTP10:
+      {
+        return "1.0";
       }
-      return buffer;
+      case io._HttpVersion.HTTP11:
+      {
+        return "1.1";
+      }
     }
-    get length() {
-      return this[_length$2];
+    return null;
+  }
+  get messageType() {
+    return this[_messageType];
+  }
+  get transferLength() {
+    return this[_transferLength];
+  }
+  get upgrade() {
+    return dart.test(this[_connectionUpgrade]) && this[_state$1] == io._State.UPGRADED;
+  }
+  get persistentConnection() {
+    return this[_persistentConnection];
+  }
+  set isHead(value) {
+    if (dart.test(value)) this[_noMessageBody] = true;
+  }
+  detachIncoming() {
+    this[_state$1] = io._State.UPGRADED;
+    return new io._HttpDetachedIncoming(this[_socketSubscription], this.readUnparsedData());
+  }
+  readUnparsedData() {
+    if (this[_buffer$] == null) return null;
+    if (this[_index$2] == this[_buffer$][dartx.length]) return null;
+    let result = this[_buffer$][dartx.sublist](this[_index$2]);
+    this[_releaseBuffer]();
+    return result;
+  }
+  [_reset]() {
+    if (this[_state$1] == io._State.UPGRADED) return;
+    this[_state$1] = io._State.START;
+    this[_messageType] = io._MessageType.UNDETERMINED;
+    this[_headerField][dartx.clear]();
+    this[_headerValue][dartx.clear]();
+    this[_method$][dartx.clear]();
+    this[_uri_or_reason_phrase][dartx.clear]();
+    this[_statusCode] = 0;
+    this[_statusCodeLength] = 0;
+    this[_httpVersion] = io._HttpVersion.UNDETERMINED;
+    this[_transferLength] = -1;
+    this[_persistentConnection] = false;
+    this[_connectionUpgrade] = false;
+    this[_chunked] = false;
+    this[_noMessageBody] = false;
+    this[_remainingContent] = -1;
+    this[_headers] = null;
+  }
+  [_releaseBuffer]() {
+    this[_buffer$] = null;
+    this[_index$2] = null;
+  }
+  static _isTokenChar(byte) {
+    return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 && !dart.test(io._Const.SEPARATOR_MAP[dartx._get](byte));
+  }
+  static _isValueChar(byte) {
+    return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 || byte == io._CharCode.SP || byte == io._CharCode.HT;
+  }
+  static _tokenizeFieldValue(headerValue) {
+    let tokens = ListOfString().new();
+    let start = 0;
+    let index = 0;
+    while (index < dart.notNull(headerValue[dartx.length])) {
+      if (headerValue[dartx._get](index) == ",") {
+        tokens[dartx.add](headerValue[dartx.substring](start, index));
+        start = index + 1;
+      } else if (headerValue[dartx._get](index) == " " || headerValue[dartx._get](index) == "\t") {
+        start++;
+      }
+      index++;
     }
-    get isEmpty() {
-      return this[_length$2] == 0;
+    tokens[dartx.add](headerValue[dartx.substring](start, index));
+    return tokens;
+  }
+  static _toLowerCaseByte(x) {
+    return (dart.notNull(x) - 65 & 127) < 26 ? (dart.notNull(x) | 32) >>> 0 : x;
+  }
+  [_caseInsensitiveCompare](expected, value) {
+    if (expected[dartx.length] != value[dartx.length]) return false;
+    for (let i = 0; i < dart.notNull(expected[dartx.length]); i++) {
+      if (expected[dartx._get](i) != io._HttpParser._toLowerCaseByte(value[dartx._get](i))) return false;
     }
-    get isNotEmpty() {
-      return this[_length$2] != 0;
+    return true;
+  }
+  [_expect](val1, val2) {
+    if (val1 != val2) {
+      dart.throw(new io.HttpException("Failed to parse HTTP"));
     }
-    clear() {
-      this[_length$2] = 0;
-      this[_chunks][dartx.clear]();
+  }
+  [_expectHexDigit](byte) {
+    if (48 <= dart.notNull(byte) && dart.notNull(byte) <= 57) {
+      return dart.notNull(byte) - 48;
+    } else if (65 <= dart.notNull(byte) && dart.notNull(byte) <= 70) {
+      return dart.notNull(byte) - 65 + 10;
+    } else if (97 <= dart.notNull(byte) && dart.notNull(byte) <= 102) {
+      return dart.notNull(byte) - 97 + 10;
+    } else {
+      dart.throw(new io.HttpException("Failed to parse HTTP"));
     }
-  };
-  io._BytesBuilder[dart.implements] = () => [io.BytesBuilder];
-  dart.setSignature(io._BytesBuilder, {
-    fields: () => ({
-      [_length$2]: core.int,
-      [_chunks]: ListOfListOfint()
-    }),
-    getters: () => ({
-      length: dart.definiteFunctionType(core.int, []),
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      isNotEmpty: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addByte: dart.definiteFunctionType(dart.void, [core.int]),
-      takeBytes: dart.definiteFunctionType(core.List$(core.int), []),
-      toBytes: dart.definiteFunctionType(core.List$(core.int), []),
-      clear: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  io._SUCCESS_RESPONSE = 0;
-  io._ILLEGAL_ARGUMENT_RESPONSE = 1;
-  io._OSERROR_RESPONSE = 2;
-  io._FILE_CLOSED_RESPONSE = 3;
-  io._ERROR_RESPONSE_ERROR_TYPE = 0;
-  io._OSERROR_RESPONSE_ERROR_CODE = 1;
-  io._OSERROR_RESPONSE_MESSAGE = 2;
-  io._isErrorResponse = function(response) {
+  }
+  [_createIncoming](transferLength) {
+    dart.assert(this[_incoming] == null);
+    dart.assert(this[_bodyController] == null);
+    dart.assert(!dart.test(this[_bodyPaused]));
+    let incoming = null;
+    this[_bodyController] = StreamControllerOfListOfint().new({sync: true, onListen: dart.fn(() => {
+        if (!dart.equals(incoming, this[_incoming])) return;
+        dart.assert(this[_bodyPaused]);
+        this[_bodyPaused] = false;
+        this[_pauseStateChanged]();
+      }, VoidToNull()), onPause: dart.fn(() => {
+        if (!dart.equals(incoming, this[_incoming])) return;
+        dart.assert(!dart.test(this[_bodyPaused]));
+        this[_bodyPaused] = true;
+        this[_pauseStateChanged]();
+      }, VoidToNull()), onResume: dart.fn(() => {
+        if (!dart.equals(incoming, this[_incoming])) return;
+        dart.assert(this[_bodyPaused]);
+        this[_bodyPaused] = false;
+        this[_pauseStateChanged]();
+      }, VoidToNull()), onCancel: dart.fn(() => {
+        if (!dart.equals(incoming, this[_incoming])) return;
+        if (this[_socketSubscription] != null) {
+          this[_socketSubscription].cancel();
+        }
+        this[_closeIncoming](true);
+        this[_controller$0].close();
+      }, VoidToNull())});
+    incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
+    this[_bodyPaused] = true;
+    this[_pauseStateChanged]();
+  }
+  [_closeIncoming](closing) {
+    if (closing === void 0) closing = false;
+    if (this[_incoming] == null) return;
+    let tmp = this[_incoming];
+    tmp.close(closing);
+    this[_incoming] = null;
+    if (this[_bodyController] != null) {
+      this[_bodyController].close();
+      this[_bodyController] = null;
+    }
+    this[_bodyPaused] = false;
+    this[_pauseStateChanged]();
+  }
+  [_pauseStateChanged]() {
+    if (this[_incoming] != null) {
+      if (!dart.test(this[_bodyPaused]) && !dart.test(this[_parserCalled])) {
+        this[_parse]();
+      }
+    } else {
+      if (!dart.test(this[_paused]) && !dart.test(this[_parserCalled])) {
+        this[_parse]();
+      }
+    }
+  }
+  [_reportError](error, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    if (this[_socketSubscription] != null) this[_socketSubscription].cancel();
+    this[_state$1] = io._State.FAILURE;
+    this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
+    this[_controller$0].close();
+  }
+};
+dart.addSimpleTypeTests(io._HttpParser);
+dart.defineNamedConstructor(io._HttpParser, '_');
+dart.setSignature(io._HttpParser, {
+  constructors: () => ({
+    requestParser: dart.definiteFunctionType(io._HttpParser, []),
+    responseParser: dart.definiteFunctionType(io._HttpParser, []),
+    _: dart.definiteFunctionType(io._HttpParser, [core.bool])
+  }),
+  fields: () => ({
+    [_parserCalled]: core.bool,
+    [_buffer$]: typed_data.Uint8List,
+    [_index$2]: core.int,
+    [_requestParser]: core.bool,
+    [_state$1]: core.int,
+    [_httpVersionIndex]: core.int,
+    [_messageType]: core.int,
+    [_statusCode]: core.int,
+    [_statusCodeLength]: core.int,
+    [_method$]: ListOfint(),
+    [_uri_or_reason_phrase]: ListOfint(),
+    [_headerField]: ListOfint(),
+    [_headerValue]: ListOfint(),
+    [_httpVersion]: core.int,
+    [_transferLength]: core.int,
+    [_persistentConnection]: core.bool,
+    [_connectionUpgrade]: core.bool,
+    [_chunked]: core.bool,
+    [_noMessageBody]: core.bool,
+    [_remainingContent]: core.int,
+    [_headers]: io._HttpHeaders,
+    [_incoming]: io._HttpIncoming,
+    [_socketSubscription]: async.StreamSubscription,
+    [_paused]: core.bool,
+    [_bodyPaused]: core.bool,
+    [_controller$0]: StreamControllerOf_HttpIncoming(),
+    [_bodyController]: StreamControllerOfListOfint()
+  }),
+  getters: () => ({
+    version: dart.definiteFunctionType(core.String, []),
+    messageType: dart.definiteFunctionType(core.int, []),
+    transferLength: dart.definiteFunctionType(core.int, []),
+    upgrade: dart.definiteFunctionType(core.bool, []),
+    persistentConnection: dart.definiteFunctionType(core.bool, [])
+  }),
+  setters: () => ({isHead: dart.definiteFunctionType(dart.void, [core.bool])}),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(io._HttpIncoming), [_HttpIncomingTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    listenToStream: dart.definiteFunctionType(dart.void, [StreamOfListOfint()]),
+    [_parse]: dart.definiteFunctionType(dart.void, []),
+    [_headersEnd]: dart.definiteFunctionType(core.bool, []),
+    [_doParse]: dart.definiteFunctionType(dart.void, []),
+    [_onData$]: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    [_onDone$]: dart.definiteFunctionType(dart.void, []),
+    detachIncoming: dart.definiteFunctionType(io._HttpDetachedIncoming, []),
+    readUnparsedData: dart.definiteFunctionType(core.List$(core.int), []),
+    [_reset]: dart.definiteFunctionType(dart.void, []),
+    [_releaseBuffer]: dart.definiteFunctionType(dart.void, []),
+    [_caseInsensitiveCompare]: dart.definiteFunctionType(core.bool, [ListOfint(), ListOfint()]),
+    [_expect]: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    [_expectHexDigit]: dart.definiteFunctionType(core.int, [core.int]),
+    [_createIncoming]: dart.definiteFunctionType(dart.void, [core.int]),
+    [_closeIncoming]: dart.definiteFunctionType(dart.void, [], [core.bool]),
+    [_pauseStateChanged]: dart.definiteFunctionType(dart.void, []),
+    [_reportError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [dart.dynamic])
+  }),
+  statics: () => ({
+    _isTokenChar: dart.definiteFunctionType(core.bool, [core.int]),
+    _isValueChar: dart.definiteFunctionType(core.bool, [core.int]),
+    _tokenizeFieldValue: dart.definiteFunctionType(core.List$(core.String), [core.String]),
+    _toLowerCaseByte: dart.definiteFunctionType(core.int, [core.int])
+  }),
+  names: ['_isTokenChar', '_isValueChar', '_tokenizeFieldValue', '_toLowerCaseByte']
+});
+io._DART_SESSION_ID = "DARTSESSID";
+const _data$ = Symbol('_data');
+const _lastSeen = Symbol('_lastSeen');
+const _timeoutCallback = Symbol('_timeoutCallback');
+const _prev = Symbol('_prev');
+const _next$1 = Symbol('_next');
+const _removeFromTimeoutQueue = Symbol('_removeFromTimeoutQueue');
+const _sessions = Symbol('_sessions');
+const _bumpToEnd = Symbol('_bumpToEnd');
+io._HttpSession = class _HttpSession extends core.Object {
+  new(sessionManager, id) {
+    this[_data$] = collection.HashMap.new();
+    this[_sessionManager] = sessionManager;
+    this.id = id;
+    this[_lastSeen] = new core.DateTime.now();
+    this[_destroyed] = false;
+    this[_isNew] = true;
+    this[_timeoutCallback] = null;
+    this[_prev] = null;
+    this[_next$1] = null;
+  }
+  destroy() {
+    this[_destroyed] = true;
+    this[_sessionManager][_removeFromTimeoutQueue](this);
+    this[_sessionManager][_sessions][dartx.remove](this.id);
+  }
+  [_markSeen]() {
+    this[_lastSeen] = new core.DateTime.now();
+    this[_sessionManager][_bumpToEnd](this);
+  }
+  get lastSeen() {
+    return this[_lastSeen];
+  }
+  get isNew() {
+    return this[_isNew];
+  }
+  set onTimeout(callback) {
+    this[_timeoutCallback] = callback;
+  }
+  containsValue(value) {
+    return this[_data$][dartx.containsValue](value);
+  }
+  containsKey(key) {
+    return this[_data$][dartx.containsKey](key);
+  }
+  _get(key) {
+    return this[_data$][dartx._get](key);
+  }
+  _set(key, value) {
+    this[_data$][dartx._set](key, value);
+    return value;
+  }
+  putIfAbsent(key, ifAbsent) {
+    return this[_data$][dartx.putIfAbsent](key, ifAbsent);
+  }
+  addAll(other) {
+    return this[_data$][dartx.addAll](other);
+  }
+  remove(key) {
+    return this[_data$][dartx.remove](key);
+  }
+  clear() {
+    this[_data$][dartx.clear]();
+  }
+  forEach(f) {
+    this[_data$][dartx.forEach](f);
+  }
+  get keys() {
+    return this[_data$][dartx.keys];
+  }
+  get values() {
+    return this[_data$][dartx.values];
+  }
+  get length() {
+    return this[_data$][dartx.length];
+  }
+  get isEmpty() {
+    return this[_data$][dartx.isEmpty];
+  }
+  get isNotEmpty() {
+    return this[_data$][dartx.isNotEmpty];
+  }
+  toString() {
+    return dart.str`HttpSession id:${this.id} ${this[_data$]}`;
+  }
+};
+io._HttpSession[dart.implements] = () => [io.HttpSession];
+dart.setSignature(io._HttpSession, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpSession, [io._HttpSessionManager, core.String])}),
+  fields: () => ({
+    [_destroyed]: core.bool,
+    [_isNew]: core.bool,
+    [_lastSeen]: core.DateTime,
+    [_timeoutCallback]: core.Function,
+    [_sessionManager]: io._HttpSessionManager,
+    [_prev]: io._HttpSession,
+    [_next$1]: io._HttpSession,
+    id: core.String,
+    [_data$]: core.Map
+  }),
+  getters: () => ({
+    lastSeen: dart.definiteFunctionType(core.DateTime, []),
+    isNew: dart.definiteFunctionType(core.bool, []),
+    keys: dart.definiteFunctionType(core.Iterable, []),
+    values: dart.definiteFunctionType(core.Iterable, []),
+    length: dart.definiteFunctionType(core.int, []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }),
+  setters: () => ({onTimeout: dart.definiteFunctionType(dart.void, [VoidTovoid()])}),
+  methods: () => ({
+    destroy: dart.definiteFunctionType(dart.void, []),
+    [_markSeen]: dart.definiteFunctionType(dart.void, []),
+    containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+    containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+    _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    _set: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    putIfAbsent: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, VoidTodynamic()]),
+    addAll: dart.definiteFunctionType(dart.void, [core.Map]),
+    remove: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    forEach: dart.definiteFunctionType(dart.void, [dynamicAnddynamicTovoid()])
+  })
+});
+dart.defineExtensionMembers(io._HttpSession, [
+  'containsValue',
+  'containsKey',
+  '_get',
+  '_set',
+  'putIfAbsent',
+  'addAll',
+  'remove',
+  'clear',
+  'forEach',
+  'keys',
+  'values',
+  'length',
+  'isEmpty',
+  'isNotEmpty'
+]);
+const _sessionTimeout = Symbol('_sessionTimeout');
+const _head$ = Symbol('_head');
+const _tail$ = Symbol('_tail');
+const _timer = Symbol('_timer');
+const _addToTimeoutQueue = Symbol('_addToTimeoutQueue');
+const _stopTimer = Symbol('_stopTimer');
+const _startTimer = Symbol('_startTimer');
+const _timerTimeout = Symbol('_timerTimeout');
+io._HttpSessionManager = class _HttpSessionManager extends core.Object {
+  new() {
+    this[_sessions] = dart.map({}, core.String, io._HttpSession);
+    this[_sessionTimeout] = 20 * 60;
+    this[_head$] = null;
+    this[_tail$] = null;
+    this[_timer] = null;
+  }
+  createSessionId() {
+    let _KEY_LENGTH = 16;
+    let data = io._IOCrypto.getRandomBytes(_KEY_LENGTH);
+    return io._CryptoUtils.bytesToHex(data);
+  }
+  getSession(id) {
+    return this[_sessions][dartx._get](id);
+  }
+  createSession() {
+    let id = this.createSessionId();
+    while (dart.test(this[_sessions][dartx.containsKey](id))) {
+      id = this.createSessionId();
+    }
+    let session = this[_sessions][dartx._set](id, new io._HttpSession(this, id));
+    this[_addToTimeoutQueue](session);
+    return session;
+  }
+  set sessionTimeout(timeout) {
+    this[_sessionTimeout] = timeout;
+    this[_stopTimer]();
+    this[_startTimer]();
+  }
+  close() {
+    this[_stopTimer]();
+  }
+  [_bumpToEnd](session) {
+    this[_removeFromTimeoutQueue](session);
+    this[_addToTimeoutQueue](session);
+  }
+  [_addToTimeoutQueue](session) {
+    if (this[_head$] == null) {
+      dart.assert(this[_tail$] == null);
+      this[_tail$] = this[_head$] = session;
+      this[_startTimer]();
+    } else {
+      dart.assert(this[_timer] != null);
+      dart.assert(this[_tail$] != null);
+      this[_tail$][_next$1] = session;
+      session[_prev] = this[_tail$];
+      this[_tail$] = session;
+    }
+  }
+  [_removeFromTimeoutQueue](session) {
+    if (session[_next$1] != null) {
+      session[_next$1][_prev] = session[_prev];
+    }
+    if (session[_prev] != null) {
+      session[_prev][_next$1] = session[_next$1];
+    }
+    if (dart.equals(this[_head$], session)) {
+      this[_head$] = session[_next$1];
+      this[_stopTimer]();
+      this[_startTimer]();
+    }
+    if (dart.equals(this[_tail$], session)) {
+      this[_tail$] = session[_prev];
+    }
+    session[_next$1] = session[_prev] = null;
+  }
+  [_timerTimeout]() {
+    this[_stopTimer]();
+    dart.assert(this[_head$] != null);
+    let session = this[_head$];
+    session.destroy();
+    if (session[_timeoutCallback] != null) {
+      dart.dsend(session, _timeoutCallback);
+    }
+  }
+  [_startTimer]() {
+    dart.assert(this[_timer] == null);
+    if (this[_head$] != null) {
+      let seconds = new core.DateTime.now().difference(this[_head$].lastSeen).inSeconds;
+      this[_timer] = async.Timer.new(new core.Duration({seconds: dart.notNull(this[_sessionTimeout]) - dart.notNull(seconds)}), dart.bind(this, _timerTimeout));
+    }
+  }
+  [_stopTimer]() {
+    if (this[_timer] != null) {
+      this[_timer].cancel();
+      this[_timer] = null;
+    }
+  }
+};
+dart.setSignature(io._HttpSessionManager, {
+  constructors: () => ({new: dart.definiteFunctionType(io._HttpSessionManager, [])}),
+  fields: () => ({
+    [_sessions]: MapOfString$_HttpSession(),
+    [_sessionTimeout]: core.int,
+    [_head$]: io._HttpSession,
+    [_tail$]: io._HttpSession,
+    [_timer]: async.Timer
+  }),
+  setters: () => ({sessionTimeout: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    createSessionId: dart.definiteFunctionType(core.String, []),
+    getSession: dart.definiteFunctionType(io._HttpSession, [core.String]),
+    createSession: dart.definiteFunctionType(io._HttpSession, []),
+    close: dart.definiteFunctionType(dart.void, []),
+    [_bumpToEnd]: dart.definiteFunctionType(dart.void, [io._HttpSession]),
+    [_addToTimeoutQueue]: dart.definiteFunctionType(dart.void, [io._HttpSession]),
+    [_removeFromTimeoutQueue]: dart.definiteFunctionType(dart.void, [io._HttpSession]),
+    [_timerTimeout]: dart.definiteFunctionType(dart.void, []),
+    [_startTimer]: dart.definiteFunctionType(dart.void, []),
+    [_stopTimer]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+io._IOResourceInfo = class _IOResourceInfo extends core.Object {
+  static get timestamp() {
+    return dart.notNull(io._IOResourceInfo._startTime) + dart.notNull(io._IOResourceInfo._sw.elapsedMicroseconds) / 1000;
+  }
+  new(type) {
+    this.type = type;
+    this.id = io._IOResourceInfo.getNextID();
+  }
+  get referenceValueMap() {
+    return dart.map({type: dart.str`@${this.type}`, id: this.id, name: this.name}, core.String, core.String);
+  }
+  static getNextID() {
+    return (() => {
+      let x = io._IOResourceInfo._count;
+      io._IOResourceInfo._count = dart.notNull(x) + 1;
+      return x;
+    })();
+  }
+};
+dart.setSignature(io._IOResourceInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._IOResourceInfo, [core.String])}),
+  fields: () => ({
+    type: core.String,
+    id: core.int
+  }),
+  getters: () => ({referenceValueMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
+  sfields: () => ({
+    _count: core.int,
+    _sw: core.Stopwatch,
+    _startTime: core.int
+  }),
+  sgetters: () => ({timestamp: dart.definiteFunctionType(core.double, [])}),
+  statics: () => ({getNextID: dart.definiteFunctionType(core.int, [])}),
+  names: ['getNextID']
+});
+io._IOResourceInfo._count = 0;
+dart.defineLazy(io._IOResourceInfo, {
+  get _sw() {
+    return (() => {
+      let _ = new core.Stopwatch();
+      _.start();
+      return _;
+    })();
+  },
+  get _startTime() {
+    return new core.DateTime.now().millisecondsSinceEpoch;
+  }
+});
+io._ReadWriteResourceInfo = class _ReadWriteResourceInfo extends io._IOResourceInfo {
+  addRead(bytes) {
+    this.totalRead = dart.notNull(this.totalRead) + dart.notNull(bytes);
+    this.readCount = dart.notNull(this.readCount) + 1;
+    this.lastRead = io._IOResourceInfo.timestamp;
+  }
+  didRead() {
+    this.addRead(0);
+  }
+  addWrite(bytes) {
+    this.totalWritten = dart.notNull(this.totalWritten) + dart.notNull(bytes);
+    this.writeCount = dart.notNull(this.writeCount) + 1;
+    this.lastWrite = io._IOResourceInfo.timestamp;
+  }
+  new(type) {
+    this.totalRead = 0;
+    this.totalWritten = 0;
+    this.readCount = 0;
+    this.writeCount = 0;
+    this.lastRead = 0.0;
+    this.lastWrite = 0.0;
+    super.new(type);
+  }
+  get fullValueMap() {
+    return dart.map({type: this.type, id: this.id, name: this.name, totalRead: this.totalRead, totalWritten: this.totalWritten, readCount: this.readCount, writeCount: this.writeCount, lastRead: this.lastRead, lastWrite: this.lastWrite}, core.String, core.String);
+  }
+};
+dart.setSignature(io._ReadWriteResourceInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ReadWriteResourceInfo, [core.String])}),
+  fields: () => ({
+    totalRead: core.int,
+    totalWritten: core.int,
+    readCount: core.int,
+    writeCount: core.int,
+    lastRead: core.double,
+    lastWrite: core.double
+  }),
+  getters: () => ({fullValueMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
+  methods: () => ({
+    addRead: dart.definiteFunctionType(dart.void, [core.int]),
+    didRead: dart.definiteFunctionType(dart.void, []),
+    addWrite: dart.definiteFunctionType(dart.void, [core.int])
+  })
+});
+io._FileResourceInfo = class _FileResourceInfo extends io._ReadWriteResourceInfo {
+  new(file) {
+    this.file = file;
+    super.new(io._FileResourceInfo.TYPE);
+    io._FileResourceInfo.FileOpened(this);
+  }
+  static FileOpened(info) {
+    dart.assert(!dart.test(io._FileResourceInfo.openFiles[dartx.containsKey](info.id)));
+    io._FileResourceInfo.openFiles[dartx._set](info.id, info);
+  }
+  static FileClosed(info) {
+    dart.assert(io._FileResourceInfo.openFiles[dartx.containsKey](info.id));
+    io._FileResourceInfo.openFiles[dartx.remove](info.id);
+  }
+  static getOpenFilesList() {
+    return ListOfMapOfString$String().from(io._FileResourceInfo.openFiles[dartx.values][dartx.map](MapOfString$String())(dart.fn(e => e.referenceValueMap, _FileResourceInfoToMapOfString$String())));
+  }
+  static getOpenFiles(func, params) {
+    dart.assert(dart.equals(func, 'ext.dart.io.getOpenFiles'));
+    let data = dart.map({type: '_openfiles', data: io._FileResourceInfo.getOpenFilesList()}, core.String, core.Object);
+    let json = convert.JSON.encode(data);
+    return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
+  }
+  getFileInfoMap() {
+    let result = this.fullValueMap;
+    return result;
+  }
+  static getFileInfoMapByID(func, params) {
+    dart.assert(dart.dsend(params, 'containsKey', 'id'));
+    let id = core.int.parse(core.String._check(dart.dindex(params, 'id')));
+    let result = dart.test(io._FileResourceInfo.openFiles[dartx.containsKey](id)) ? io._FileResourceInfo.openFiles[dartx._get](id).getFileInfoMap() : dart.map();
+    let json = convert.JSON.encode(result);
+    return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
+  }
+  get name() {
+    return dart.str`${dart.dload(this.file, 'path')}`;
+  }
+};
+dart.setSignature(io._FileResourceInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._FileResourceInfo, [dart.dynamic])}),
+  fields: () => ({file: dart.dynamic}),
+  getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
+  methods: () => ({getFileInfoMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
+  sfields: () => ({
+    TYPE: core.String,
+    openFiles: MapOfint$_FileResourceInfo()
+  }),
+  statics: () => ({
+    FileOpened: dart.definiteFunctionType(dart.dynamic, [io._FileResourceInfo]),
+    FileClosed: dart.definiteFunctionType(dart.dynamic, [io._FileResourceInfo]),
+    getOpenFilesList: dart.definiteFunctionType(core.Iterable$(core.Map$(core.String, core.String)), []),
+    getOpenFiles: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [dart.dynamic, dart.dynamic]),
+    getFileInfoMapByID: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [dart.dynamic, dart.dynamic])
+  }),
+  names: ['FileOpened', 'FileClosed', 'getOpenFilesList', 'getOpenFiles', 'getFileInfoMapByID']
+});
+io._FileResourceInfo.TYPE = '_file';
+dart.defineLazy(io._FileResourceInfo, {
+  get openFiles() {
+    return MapOfint$_FileResourceInfo().new();
+  },
+  set openFiles(_) {}
+});
+const _arguments$0 = Symbol('_arguments');
+const _workingDirectory = Symbol('_workingDirectory');
+io._ProcessResourceInfo = class _ProcessResourceInfo extends io._IOResourceInfo {
+  new(process) {
+    this.process = process;
+    this.startedAt = io._IOResourceInfo.timestamp;
+    super.new(io._ProcessResourceInfo.TYPE);
+    io._ProcessResourceInfo.ProcessStarted(this);
+  }
+  get name() {
+    return core.String._check(dart.dload(this.process, _path$));
+  }
+  stopped() {
+    io._ProcessResourceInfo.ProcessStopped(this);
+  }
+  get fullValueMap() {
+    return dart.map({type: this.type, id: this.id, name: this.name, pid: core.String._check(dart.dload(this.process, 'pid')), startedAt: this.startedAt, arguments: core.String._check(dart.dload(this.process, _arguments$0)), workingDirectory: core.String._check(dart.dload(this.process, _workingDirectory) == null ? '.' : dart.dload(this.process, _workingDirectory))}, core.String, core.String);
+  }
+  static ProcessStarted(info) {
+    dart.assert(!dart.test(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](info.id)));
+    io._ProcessResourceInfo.startedProcesses[dartx._set](info.id, info);
+  }
+  static ProcessStopped(info) {
+    dart.assert(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](info.id));
+    io._ProcessResourceInfo.startedProcesses[dartx.remove](info.id);
+  }
+  static getStartedProcessesList() {
+    return ListOfMapOfString$String().from(io._ProcessResourceInfo.startedProcesses[dartx.values][dartx.map](MapOfString$String())(dart.fn(e => e.referenceValueMap, _ProcessResourceInfoToMapOfString$String())));
+  }
+  static getStartedProcesses(func, params) {
+    dart.assert(func == 'ext.dart.io.getProcesses');
+    let data = dart.map({type: '_startedprocesses', data: io._ProcessResourceInfo.getStartedProcessesList()}, core.String, core.Object);
+    let json = convert.JSON.encode(data);
+    return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
+  }
+  static getProcessInfoMapById(func, params) {
+    let id = core.int.parse(params[dartx._get]('id'));
+    let result = dart.test(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](id)) ? io._ProcessResourceInfo.startedProcesses[dartx._get](id).fullValueMap : dart.map();
+    let json = convert.JSON.encode(result);
+    return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
+  }
+};
+dart.setSignature(io._ProcessResourceInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ProcessResourceInfo, [dart.dynamic])}),
+  fields: () => ({
+    process: dart.dynamic,
+    startedAt: core.double
+  }),
+  getters: () => ({
+    name: dart.definiteFunctionType(core.String, []),
+    fullValueMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])
+  }),
+  methods: () => ({stopped: dart.definiteFunctionType(dart.void, [])}),
+  sfields: () => ({
+    TYPE: core.String,
+    startedProcesses: MapOfint$_ProcessResourceInfo()
+  }),
+  statics: () => ({
+    ProcessStarted: dart.definiteFunctionType(dart.dynamic, [io._ProcessResourceInfo]),
+    ProcessStopped: dart.definiteFunctionType(dart.dynamic, [io._ProcessResourceInfo]),
+    getStartedProcessesList: dart.definiteFunctionType(core.Iterable$(core.Map$(core.String, core.String)), []),
+    getStartedProcesses: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()]),
+    getProcessInfoMapById: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()])
+  }),
+  names: ['ProcessStarted', 'ProcessStopped', 'getStartedProcessesList', 'getStartedProcesses', 'getProcessInfoMapById']
+});
+io._ProcessResourceInfo.TYPE = '_process';
+dart.defineLazy(io._ProcessResourceInfo, {
+  get startedProcesses() {
+    return MapOfint$_ProcessResourceInfo().new();
+  },
+  set startedProcesses(_) {}
+});
+io._SocketResourceInfo = class _SocketResourceInfo extends io._ReadWriteResourceInfo {
+  new(socket) {
+    this.socket = socket;
+    super.new(io._SocketResourceInfo.TYPE);
+    io._SocketResourceInfo.SocketOpened(this);
+  }
+  get name() {
+    if (dart.test(dart.dload(this.socket, 'isListening'))) {
+      return dart.str`listening:${dart.dload(dart.dload(this.socket, 'address'), 'host')}:${dart.dload(this.socket, 'port')}`;
+    }
+    let remote = '';
+    try {
+      let remoteHost = dart.dload(dart.dload(this.socket, 'remoteAddress'), 'host');
+      let remotePort = dart.dload(this.socket, 'remotePort');
+      remote = dart.str` -> ${remoteHost}:${remotePort}`;
+    } catch (e) {
+    }
+
+    return dart.str`${dart.dload(dart.dload(this.socket, 'address'), 'host')}:${dart.dload(this.socket, 'port')}${remote}`;
+  }
+  static getOpenSocketsList() {
+    return ListOfMapOfString$String().from(io._SocketResourceInfo.openSockets[dartx.values][dartx.map](MapOfString$String())(dart.fn(e => e.referenceValueMap, _SocketResourceInfoToMapOfString$String())));
+  }
+  getSocketInfoMap() {
+    let result = this.fullValueMap;
+    result[dartx._set]('socketType', dart.test(dart.dload(this.socket, 'isTcp')) ? io._SocketResourceInfo.TCP_STRING : io._SocketResourceInfo.UDP_STRING);
+    result[dartx._set]('listening', core.String._check(dart.dload(this.socket, 'isListening')));
+    result[dartx._set]('host', core.String._check(dart.dload(dart.dload(this.socket, 'address'), 'host')));
+    result[dartx._set]('port', core.String._check(dart.dload(this.socket, 'port')));
+    if (!dart.test(dart.dload(this.socket, 'isListening'))) {
+      try {
+        result[dartx._set]('remoteHost', core.String._check(dart.dload(dart.dload(this.socket, 'remoteAddress'), 'host')));
+        result[dartx._set]('remotePort', core.String._check(dart.dload(this.socket, 'remotePort')));
+      } catch (e) {
+        result[dartx._set]('remotePort', 'NA');
+        result[dartx._set]('remoteHost', 'NA');
+      }
+
+    } else {
+      result[dartx._set]('remotePort', 'NA');
+      result[dartx._set]('remoteHost', 'NA');
+    }
+    result[dartx._set]('addressType', core.String._check(dart.dload(dart.dload(dart.dload(this.socket, 'address'), 'type'), 'name')));
+    return result;
+  }
+  static getSocketInfoMapByID(func, params) {
+    dart.assert(params[dartx.containsKey]('id'));
+    let id = core.int.parse(params[dartx._get]('id'));
+    let result = dart.test(io._SocketResourceInfo.openSockets[dartx.containsKey](id)) ? io._SocketResourceInfo.openSockets[dartx._get](id).getSocketInfoMap() : dart.map();
+    let json = convert.JSON.encode(result);
+    return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
+  }
+  static getOpenSockets(func, params) {
+    dart.assert(dart.equals(func, 'ext.dart.io.getOpenSockets'));
+    let data = dart.map({type: '_opensockets', data: io._SocketResourceInfo.getOpenSocketsList()}, core.String, core.Object);
+    let json = convert.JSON.encode(data);
+    return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
+  }
+  static SocketOpened(info) {
+    dart.assert(!dart.test(io._SocketResourceInfo.openSockets[dartx.containsKey](info.id)));
+    io._SocketResourceInfo.openSockets[dartx._set](info.id, info);
+  }
+  static SocketClosed(info) {
+    dart.assert(io._SocketResourceInfo.openSockets[dartx.containsKey](info.id));
+    io._SocketResourceInfo.openSockets[dartx.remove](info.id);
+  }
+};
+dart.setSignature(io._SocketResourceInfo, {
+  constructors: () => ({new: dart.definiteFunctionType(io._SocketResourceInfo, [dart.dynamic])}),
+  fields: () => ({socket: dart.dynamic}),
+  getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
+  methods: () => ({getSocketInfoMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
+  sfields: () => ({
+    TCP_STRING: core.String,
+    UDP_STRING: core.String,
+    TYPE: core.String,
+    openSockets: MapOfint$_SocketResourceInfo()
+  }),
+  statics: () => ({
+    getOpenSocketsList: dart.definiteFunctionType(core.Iterable$(core.Map$(core.String, core.String)), []),
+    getSocketInfoMapByID: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()]),
+    getOpenSockets: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [dart.dynamic, dart.dynamic]),
+    SocketOpened: dart.definiteFunctionType(dart.dynamic, [io._SocketResourceInfo]),
+    SocketClosed: dart.definiteFunctionType(dart.dynamic, [io._SocketResourceInfo])
+  }),
+  names: ['getOpenSocketsList', 'getSocketInfoMapByID', 'getOpenSockets', 'SocketOpened', 'SocketClosed']
+});
+io._SocketResourceInfo.TCP_STRING = 'TCP';
+io._SocketResourceInfo.UDP_STRING = 'UDP';
+io._SocketResourceInfo.TYPE = '_socket';
+dart.defineLazy(io._SocketResourceInfo, {
+  get openSockets() {
+    return MapOfint$_SocketResourceInfo().new();
+  },
+  set openSockets(_) {}
+});
+io.IOSink = class IOSink extends core.Object {
+  static new(target, opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
+    return new io._IOSinkImpl(target, encoding);
+  }
+};
+io.IOSink[dart.implements] = () => [StreamSinkOfListOfint(), core.StringSink];
+dart.setSignature(io.IOSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io.IOSink, [StreamConsumerOfListOfint()], {encoding: convert.Encoding})}),
+  fields: () => ({encoding: convert.Encoding})
+});
+io._FILE_EXISTS = 0;
+io._FILE_CREATE = 1;
+io._FILE_DELETE = 2;
+io._FILE_RENAME = 3;
+io._FILE_COPY = 4;
+io._FILE_OPEN = 5;
+io._FILE_RESOLVE_SYMBOLIC_LINKS = 6;
+io._FILE_CLOSE = 7;
+io._FILE_POSITION = 8;
+io._FILE_SET_POSITION = 9;
+io._FILE_TRUNCATE = 10;
+io._FILE_LENGTH = 11;
+io._FILE_LENGTH_FROM_PATH = 12;
+io._FILE_LAST_MODIFIED = 13;
+io._FILE_FLUSH = 14;
+io._FILE_READ_BYTE = 15;
+io._FILE_WRITE_BYTE = 16;
+io._FILE_READ = 17;
+io._FILE_READ_INTO = 18;
+io._FILE_WRITE_FROM = 19;
+io._FILE_CREATE_LINK = 20;
+io._FILE_DELETE_LINK = 21;
+io._FILE_RENAME_LINK = 22;
+io._FILE_LINK_TARGET = 23;
+io._FILE_TYPE = 24;
+io._FILE_IDENTICAL = 25;
+io._FILE_STAT = 26;
+io._FILE_LOCK = 27;
+io._SOCKET_LOOKUP = 28;
+io._SOCKET_LIST_INTERFACES = 29;
+io._SOCKET_REVERSE_LOOKUP = 30;
+io._DIRECTORY_CREATE = 31;
+io._DIRECTORY_DELETE = 32;
+io._DIRECTORY_EXISTS = 33;
+io._DIRECTORY_CREATE_TEMP = 34;
+io._DIRECTORY_LIST_START = 35;
+io._DIRECTORY_LIST_NEXT = 36;
+io._DIRECTORY_LIST_STOP = 37;
+io._DIRECTORY_RENAME = 38;
+io._SSL_PROCESS_FILTER = 39;
+io._IOService = class _IOService extends core.Object {
+  static _dispatch(request, data) {
+    dart.throw(new core.UnsupportedError("_IOService._dispatch"));
+  }
+};
+dart.setSignature(io._IOService, {
+  statics: () => ({_dispatch: dart.definiteFunctionType(async.Future, [core.int, core.List])}),
+  names: ['_dispatch']
+});
+io.Link = class Link extends core.Object {
+  static new(path) {
+    return new io._Link(path);
+  }
+  static fromUri(uri) {
+    return io.Link.new(uri.toFilePath());
+  }
+};
+io.Link[dart.implements] = () => [io.FileSystemEntity];
+dart.setSignature(io.Link, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.Link, [core.String]),
+    fromUri: dart.definiteFunctionType(io.Link, [core.Uri])
+  })
+});
+const _makeWindowsLinkTarget = Symbol('_makeWindowsLinkTarget');
+const _exceptionFromResponse = Symbol('_exceptionFromResponse');
+io._Link = class _Link extends io.FileSystemEntity {
+  new(path) {
+    this.path = path;
+    if (!(typeof this.path == 'string')) {
+      dart.throw(new core.ArgumentError(dart.str`${core.Error.safeToString(this.path)} ` + 'is not a String'));
+    }
+  }
+  toString() {
+    return dart.str`Link: '${this.path}'`;
+  }
+  exists() {
+    return io.FileSystemEntity.isLink(this.path);
+  }
+  existsSync() {
+    return io.FileSystemEntity.isLinkSync(this.path);
+  }
+  get absolute() {
+    return io.Link.new(this[_absolutePath]);
+  }
+  stat() {
+    return io.FileStat.stat(this.path);
+  }
+  statSync() {
+    return io.FileStat.statSync(this.path);
+  }
+  create(target, opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(io.Platform.isWindows)) {
+      target = this[_makeWindowsLinkTarget](target);
+    }
+    let result = dart.test(recursive) ? this.parent.create({recursive: true}) : async.Future.value(null);
+    return result.then(dart.dynamic)(dart.fn(_ => io._IOService._dispatch(io._FILE_CREATE_LINK, JSArrayOfString().of([this.path, target])), dynamicToFuture())).then(io._Link)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionFromResponse](response, dart.str`Cannot create link to target '${target}'`, this.path));
+      }
+      return this;
+    }, dynamicTo_Link()));
+  }
+  createSync(target, opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      this.parent.createSync({recursive: true});
+    }
+    if (dart.test(io.Platform.isWindows)) {
+      target = this[_makeWindowsLinkTarget](target);
+    }
+    let result = io._File._createLink(this.path, target);
+    io._Link.throwIfError(result, "Cannot create link", this.path);
+  }
+  [_makeWindowsLinkTarget](target) {
+    let base = core.Uri.file(dart.str`${io.Directory.current.path}\\`);
+    let link = core.Uri.file(this.path);
+    let destination = core.Uri.file(target);
+    let result = base.resolveUri(link).resolveUri(destination).toFilePath();
+    if (dart.notNull(result[dartx.length]) > 3 && result[dartx._get](1) == ':' && result[dartx._get](2) == '\\') {
+      return dart.str`\\??\\${result}`;
+    } else {
+      dart.throw(new io.FileSystemException(dart.str`Target ${result} of Link.create on Windows cannot be converted` + ' to start with a drive letter.  Unexpected error.'));
+    }
+  }
+  updateSync(target) {
+    this.deleteSync();
+    this.createSync(target);
+  }
+  update(target) {
+    return this.delete().then(io.Link)(dart.fn(_ => this.create(target), FileSystemEntityToFutureOfLink()));
+  }
+  [_delete](opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      return io.Directory.new(this.path).delete({recursive: true}).then(io._Link)(dart.fn(_ => this, FileSystemEntityTo_Link()));
+    }
+    return io._IOService._dispatch(io._FILE_DELETE_LINK, JSArrayOfString().of([this.path])).then(io._Link)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionFromResponse](response, "Cannot delete link", this.path));
+      }
+      return this;
+    }, dynamicTo_Link()));
+  }
+  [_deleteSync](opts) {
+    let recursive = opts && 'recursive' in opts ? opts.recursive : false;
+    if (dart.test(recursive)) {
+      return io.Directory.new(this.path).deleteSync({recursive: true});
+    }
+    let result = io._File._deleteLinkNative(this.path);
+    io._Link.throwIfError(result, "Cannot delete link", this.path);
+  }
+  rename(newPath) {
+    return io._IOService._dispatch(io._FILE_RENAME_LINK, JSArrayOfString().of([this.path, newPath])).then(io.Link)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionFromResponse](response, dart.str`Cannot rename link to '${newPath}'`, this.path));
+      }
+      return io.Link.new(newPath);
+    }, dynamicToLink()));
+  }
+  renameSync(newPath) {
+    let result = io._File._renameLink(this.path, newPath);
+    io._Link.throwIfError(result, dart.str`Cannot rename link '${this.path}' to '${newPath}'`);
+    return io.Link.new(newPath);
+  }
+  target() {
+    return io._IOService._dispatch(io._FILE_LINK_TARGET, JSArrayOfString().of([this.path])).then(core.String)(dart.fn(response => {
+      if (dart.test(this[_isErrorResponse](response))) {
+        dart.throw(this[_exceptionFromResponse](response, "Cannot get target of link", this.path));
+      }
+      return FutureOrOfString()._check(response);
+    }, dynamicToFutureOrOfString()));
+  }
+  targetSync() {
+    let result = io._File._linkTarget(this.path);
+    io._Link.throwIfError(result, "Cannot read link", this.path);
+    return core.String._check(result);
+  }
+  static throwIfError(result, msg, path) {
+    if (path === void 0) path = "";
+    if (io.OSError.is(result)) {
+      dart.throw(new io.FileSystemException(msg, path, result));
+    }
+  }
+  [_isErrorResponse](response) {
     return core.List.is(response) && !dart.equals(response[dartx._get](0), io._SUCCESS_RESPONSE);
-  };
-  dart.fn(io._isErrorResponse, dynamicTobool$());
-  io._exceptionFromResponse = function(response, message, path) {
-    dart.assert(io._isErrorResponse(response));
+  }
+  [_exceptionFromResponse](response, message, path) {
+    dart.assert(this[_isErrorResponse](response));
     switch (dart.dindex(response, io._ERROR_RESPONSE_ERROR_TYPE)) {
       case io._ILLEGAL_ARGUMENT_RESPONSE:
       {
@@ -37732,9641 +48038,356 @@
         let err = new io.OSError(core.String._check(dart.dindex(response, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(response, io._OSERROR_RESPONSE_ERROR_CODE)));
         return new io.FileSystemException(message, path, err);
       }
-      case io._FILE_CLOSED_RESPONSE:
-      {
-        return new io.FileSystemException("File closed", path);
-      }
       default:
       {
         return core.Exception.new("Unknown error");
       }
     }
-  };
-  dart.fn(io._exceptionFromResponse, dynamicAndStringAndStringTodynamic());
-  io.IOException = class IOException extends core.Object {
-    toString() {
-      return "IOException";
-    }
-  };
-  io.IOException[dart.implements] = () => [core.Exception];
-  io.OSError = class OSError extends core.Object {
-    new(message, errorCode) {
-      if (message === void 0) message = "";
-      if (errorCode === void 0) errorCode = io.OSError.noErrorCode;
-      this.message = message;
-      this.errorCode = errorCode;
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      sb.write("OS Error");
-      if (!dart.test(this.message[dartx.isEmpty])) {
-        sb.write(": ");
-        sb.write(this.message);
-        if (this.errorCode != io.OSError.noErrorCode) {
-          sb.write(", errno = ");
-          sb.write(dart.toString(this.errorCode));
-        }
-      } else if (this.errorCode != io.OSError.noErrorCode) {
-        sb.write(": errno = ");
-        sb.write(dart.toString(this.errorCode));
-      }
-      return sb.toString();
-    }
-  };
-  dart.setSignature(io.OSError, {
-    constructors: () => ({new: dart.definiteFunctionType(io.OSError, [], [core.String, core.int])}),
-    fields: () => ({
-      message: core.String,
-      errorCode: core.int
-    }),
-    sfields: () => ({noErrorCode: core.int})
-  });
-  io.OSError.noErrorCode = -1;
-  io._BufferAndStart = class _BufferAndStart extends core.Object {
-    new(buffer, start) {
-      this.buffer = buffer;
-      this.start = start;
-    }
-  };
-  dart.setSignature(io._BufferAndStart, {
-    constructors: () => ({new: dart.definiteFunctionType(io._BufferAndStart, [core.List, core.int])}),
-    fields: () => ({
-      buffer: core.List,
-      start: core.int
-    })
-  });
-  io._ensureFastAndSerializableByteData = function(buffer, start, end) {
-    if (typed_data.Uint8List.is(buffer) || typed_data.Int8List.is(buffer)) {
-      return new io._BufferAndStart(buffer, start);
-    }
-    let length = dart.notNull(end) - dart.notNull(start);
-    let newBuffer = typed_data.Uint8List.new(length);
-    let j = start;
-    for (let i = 0; i < length; i++) {
-      let value = core.int._check(buffer[dartx._get](j));
-      if (!(typeof value == 'number')) {
-        dart.throw(new core.ArgumentError(dart.str`List element is not an integer at index ${j}`));
-      }
-      newBuffer[dartx._set](i, value);
-      j = dart.notNull(j) + 1;
-    }
-    return new io._BufferAndStart(newBuffer, 0);
-  };
-  dart.fn(io._ensureFastAndSerializableByteData, ListAndintAndintTo_BufferAndStart());
-  io._IOCrypto = class _IOCrypto extends core.Object {
-    static getRandomBytes(count) {
-      dart.throw(new core.UnsupportedError("_IOCrypto.getRandomBytes"));
-    }
-  };
-  dart.setSignature(io._IOCrypto, {
-    statics: () => ({getRandomBytes: dart.definiteFunctionType(typed_data.Uint8List, [core.int])}),
-    names: ['getRandomBytes']
-  });
-  io._CryptoUtils = class _CryptoUtils extends core.Object {
-    static bytesToHex(bytes) {
-      let result = new core.StringBuffer();
-      for (let part of bytes) {
-        result.write(dart.str`${dart.notNull(part) < 16 ? '0' : ''}${part[dartx.toRadixString](16)}`);
-      }
-      return result.toString();
-    }
-    static bytesToBase64(bytes, urlSafe, addLineSeparator) {
-      if (urlSafe === void 0) urlSafe = false;
-      if (addLineSeparator === void 0) addLineSeparator = false;
-      let len = bytes[dartx.length];
-      if (len == 0) {
-        return "";
-      }
-      let lookup = dart.test(urlSafe) ? io._CryptoUtils._encodeTableUrlSafe : io._CryptoUtils._encodeTable;
-      let remainderLength = dart.asInt(len[dartx.remainder](3));
-      let chunkLength = dart.notNull(len) - dart.notNull(remainderLength);
-      let outputLen = (dart.notNull(len) / 3)[dartx.truncate]() * 4 + (dart.notNull(remainderLength) > 0 ? 4 : 0);
-      if (dart.test(addLineSeparator)) {
-        outputLen = outputLen + (((outputLen - 1) / io._CryptoUtils.LINE_LENGTH)[dartx.truncate]() << 1 >>> 0);
-      }
-      let out = ListOfint().new(outputLen);
-      let j = 0, i = 0, c = 0;
-      while (i < chunkLength) {
-        let x = (dart.notNull(bytes[dartx._get](i++)) << 16 & 16777215 | dart.notNull(bytes[dartx._get](i++)) << 8 & 16777215 | dart.notNull(bytes[dartx._get](i++))) >>> 0;
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](x[dartx['>>']](18)));
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](x >> 12 & 63));
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](x >> 6 & 63));
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](x & 63));
-        if (dart.test(addLineSeparator) && ++c == 19 && j < outputLen - 2) {
-          out[dartx._set](j++, io._CryptoUtils.CR);
-          out[dartx._set](j++, io._CryptoUtils.LF);
-          c = 0;
-        }
-      }
-      if (remainderLength == 1) {
-        let x = bytes[dartx._get](i);
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](x[dartx['>>']](2)));
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](dart.notNull(x) << 4 & 63));
-        out[dartx._set](j++, io._CryptoUtils.PAD);
-        out[dartx._set](j++, io._CryptoUtils.PAD);
-      } else if (remainderLength == 2) {
-        let x = bytes[dartx._get](i);
-        let y = bytes[dartx._get](i + 1);
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](x[dartx['>>']](2)));
-        out[dartx._set](j++, lookup[dartx.codeUnitAt]((dart.notNull(x) << 4 | dart.notNull(y) >> 4) & 63));
-        out[dartx._set](j++, lookup[dartx.codeUnitAt](dart.notNull(y) << 2 & 63));
-        out[dartx._set](j++, io._CryptoUtils.PAD);
-      }
-      return core.String.fromCharCodes(out);
-    }
-    static base64StringToBytes(input, ignoreInvalidCharacters) {
-      if (ignoreInvalidCharacters === void 0) ignoreInvalidCharacters = true;
-      let len = input[dartx.length];
-      if (len == 0) {
-        return ListOfint().new(0);
-      }
-      let extrasLen = 0;
-      for (let i = 0; i < dart.notNull(len); i++) {
-        let c = io._CryptoUtils._decodeTable[dartx._get](input[dartx.codeUnitAt](i));
-        if (dart.notNull(c) < 0) {
-          extrasLen++;
-          if (c == -2 && !dart.test(ignoreInvalidCharacters)) {
-            dart.throw(new core.FormatException(dart.str`Invalid character: ${input[dartx._get](i)}`));
-          }
-        }
-      }
-      if ((dart.notNull(len) - extrasLen)[dartx['%']](4) != 0) {
-        dart.throw(new core.FormatException(dart.str`Size of Base 64 characters in Input\n          must be a multiple of 4. Input: ${input}`));
-      }
-      let padLength = 0;
-      for (let i = dart.notNull(len) - 1; i >= 0; i--) {
-        let currentCodeUnit = input[dartx.codeUnitAt](i);
-        if (dart.notNull(io._CryptoUtils._decodeTable[dartx._get](currentCodeUnit)) > 0) break;
-        if (currentCodeUnit == io._CryptoUtils.PAD) padLength++;
-      }
-      let outputLen = ((dart.notNull(len) - extrasLen) * 6)[dartx['>>']](3) - padLength;
-      let out = ListOfint().new(outputLen);
-      for (let i = 0, o = 0; o < outputLen;) {
-        let x = 0;
-        for (let j = 4; j > 0;) {
-          let c = io._CryptoUtils._decodeTable[dartx._get](input[dartx.codeUnitAt](i++));
-          if (dart.notNull(c) >= 0) {
-            x = (x << 6 & 16777215 | dart.notNull(c)) >>> 0;
-            j--;
-          }
-        }
-        out[dartx._set](o++, x[dartx['>>']](16));
-        if (o < outputLen) {
-          out[dartx._set](o++, x >> 8 & 255);
-          if (o < outputLen) out[dartx._set](o++, x & 255);
-        }
-      }
-      return out;
-    }
-  };
-  dart.setSignature(io._CryptoUtils, {
-    sfields: () => ({
-      PAD: core.int,
-      CR: core.int,
-      LF: core.int,
-      LINE_LENGTH: core.int,
-      _encodeTable: core.String,
-      _encodeTableUrlSafe: core.String,
-      _decodeTable: ListOfint()
-    }),
-    statics: () => ({
-      bytesToHex: dart.definiteFunctionType(core.String, [ListOfint()]),
-      bytesToBase64: dart.definiteFunctionType(core.String, [ListOfint()], [core.bool, core.bool]),
-      base64StringToBytes: dart.definiteFunctionType(core.List$(core.int), [core.String], [core.bool])
-    }),
-    names: ['bytesToHex', 'bytesToBase64', 'base64StringToBytes']
-  });
-  io._CryptoUtils.PAD = 61;
-  io._CryptoUtils.CR = 13;
-  io._CryptoUtils.LF = 10;
-  io._CryptoUtils.LINE_LENGTH = 76;
-  io._CryptoUtils._encodeTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-  io._CryptoUtils._encodeTableUrlSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
-  io._CryptoUtils._decodeTable = dart.constList([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, 0, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2], core.int);
-  io._MASK_8 = 255;
-  io._MASK_32 = 4294967295;
-  io._BITS_PER_BYTE = 8;
-  io._BYTES_PER_WORD = 4;
-  const _chunkSizeInWords = Symbol('_chunkSizeInWords');
-  const _digestSizeInWords = Symbol('_digestSizeInWords');
-  const _bigEndianWords = Symbol('_bigEndianWords');
-  const _pendingData = Symbol('_pendingData');
-  const _lengthInBytes = Symbol('_lengthInBytes');
-  const _currentChunk = Symbol('_currentChunk');
-  const _h = Symbol('_h');
-  const _digestCalled = Symbol('_digestCalled');
-  const _iterate = Symbol('_iterate');
-  const _resultAsBytes = Symbol('_resultAsBytes');
-  const _finalizeData = Symbol('_finalizeData');
-  const _add32 = Symbol('_add32');
-  const _roundUp = Symbol('_roundUp');
-  const _rotl32 = Symbol('_rotl32');
-  const _wordToBytes = Symbol('_wordToBytes');
-  const _bytesToChunk = Symbol('_bytesToChunk');
-  const _updateHash = Symbol('_updateHash');
-  io._HashBase = class _HashBase extends core.Object {
-    new(chunkSizeInWords, digestSizeInWords, bigEndianWords) {
-      this[_chunkSizeInWords] = chunkSizeInWords;
-      this[_digestSizeInWords] = digestSizeInWords;
-      this[_bigEndianWords] = bigEndianWords;
-      this[_pendingData] = JSArrayOfint().of([]);
-      this[_lengthInBytes] = 0;
-      this[_currentChunk] = null;
-      this[_h] = null;
-      this[_digestCalled] = false;
-      this[_currentChunk] = ListOfint().new(this[_chunkSizeInWords]);
-      this[_h] = ListOfint().new(this[_digestSizeInWords]);
-    }
-    add(data) {
-      if (dart.test(this[_digestCalled])) {
-        dart.throw(new core.StateError('Hash update method called after digest was retrieved'));
-      }
-      this[_lengthInBytes] = dart.notNull(this[_lengthInBytes]) + dart.notNull(data[dartx.length]);
-      this[_pendingData][dartx.addAll](data);
-      this[_iterate]();
-    }
-    close() {
-      if (dart.test(this[_digestCalled])) {
-        return ListOfint()._check(this[_resultAsBytes]());
-      }
-      this[_digestCalled] = true;
-      this[_finalizeData]();
-      this[_iterate]();
-      dart.assert(this[_pendingData][dartx.length] == 0);
-      return ListOfint()._check(this[_resultAsBytes]());
-    }
-    get blockSize() {
-      return dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD;
-    }
-    [_add32](x, y) {
-      return dart.dsend(dart.dsend(x, '+', y), '&', io._MASK_32);
-    }
-    [_roundUp](val, n) {
-      return dart.dsend(dart.dsend(dart.dsend(val, '+', n), '-', 1), '&', dart.dsend(n, '_negate'));
-    }
-    [_rotl32](val, shift) {
-      let mod_shift = dart.notNull(shift) & 31;
-      return (val[dartx['<<']](mod_shift) & io._MASK_32 | ((dart.notNull(val) & io._MASK_32) >>> 0)[dartx['>>']](32 - mod_shift)) >>> 0;
-    }
-    [_resultAsBytes]() {
-      let result = [];
-      for (let i = 0; i < dart.notNull(this[_h][dartx.length]); i++) {
-        result[dartx.addAll](core.Iterable._check(this[_wordToBytes](this[_h][dartx._get](i))));
-      }
-      return result;
-    }
-    [_bytesToChunk](data, dataIndex) {
-      dart.assert(dart.notNull(data[dartx.length]) - dart.notNull(dataIndex) >= dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD);
-      for (let wordIndex = 0; wordIndex < dart.notNull(this[_chunkSizeInWords]); wordIndex++) {
-        let w3 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dataIndex) : data[dartx._get](dart.notNull(dataIndex) + 3);
-        let w2 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dart.notNull(dataIndex) + 1) : data[dartx._get](dart.notNull(dataIndex) + 2);
-        let w1 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dart.notNull(dataIndex) + 2) : data[dartx._get](dart.notNull(dataIndex) + 1);
-        let w0 = dart.test(this[_bigEndianWords]) ? data[dartx._get](dart.notNull(dataIndex) + 3) : data[dartx._get](dataIndex);
-        dataIndex = dart.notNull(dataIndex) + 4;
-        let word = (dart.notNull(w3) & 255) << 24 >>> 0;
-        word = (word | (dart.notNull(w2) & io._MASK_8) << 16) >>> 0;
-        word = (word | (dart.notNull(w1) & io._MASK_8) << 8) >>> 0;
-        word = (word | dart.notNull(w0) & io._MASK_8) >>> 0;
-        this[_currentChunk][dartx._set](wordIndex, word);
-      }
-    }
-    [_wordToBytes](word) {
-      let bytes = ListOfint().new(io._BYTES_PER_WORD);
-      bytes[dartx._set](0, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 24 : 0) & io._MASK_8);
-      bytes[dartx._set](1, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 16 : 8) & io._MASK_8);
-      bytes[dartx._set](2, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 8 : 16) & io._MASK_8);
-      bytes[dartx._set](3, word[dartx['>>']](dart.test(this[_bigEndianWords]) ? 0 : 24) & io._MASK_8);
-      return bytes;
-    }
-    [_iterate]() {
-      let len = this[_pendingData][dartx.length];
-      let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD;
-      if (dart.notNull(len) >= chunkSizeInBytes) {
-        let index = 0;
-        for (; dart.notNull(len) - index >= chunkSizeInBytes; index = index + chunkSizeInBytes) {
-          this[_bytesToChunk](this[_pendingData], index);
-          this[_updateHash](this[_currentChunk]);
-        }
-        this[_pendingData] = this[_pendingData][dartx.sublist](index, len);
-      }
-    }
-    [_finalizeData]() {
-      this[_pendingData][dartx.add](128);
-      let contentsLength = dart.notNull(this[_lengthInBytes]) + 9;
-      let chunkSizeInBytes = dart.notNull(this[_chunkSizeInWords]) * io._BYTES_PER_WORD;
-      let finalizedLength = this[_roundUp](contentsLength, chunkSizeInBytes);
-      let zeroPadding = dart.dsend(finalizedLength, '-', contentsLength);
-      for (let i = 0; i < dart.notNull(core.num._check(zeroPadding)); i++) {
-        this[_pendingData][dartx.add](0);
-      }
-      let lengthInBits = dart.notNull(this[_lengthInBytes]) * io._BITS_PER_BYTE;
-      dart.assert(lengthInBits < dart.notNull(math.pow(2, 32)));
-      if (dart.test(this[_bigEndianWords])) {
-        this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes](0)));
-        this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes]((lengthInBits & io._MASK_32) >>> 0)));
-      } else {
-        this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes]((lengthInBits & io._MASK_32) >>> 0)));
-        this[_pendingData][dartx.addAll](IterableOfint()._check(this[_wordToBytes](0)));
-      }
-    }
-  };
-  dart.setSignature(io._HashBase, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HashBase, [core.int, core.int, core.bool])}),
-    fields: () => ({
-      [_chunkSizeInWords]: core.int,
-      [_digestSizeInWords]: core.int,
-      [_bigEndianWords]: core.bool,
-      [_lengthInBytes]: core.int,
-      [_pendingData]: ListOfint(),
-      [_currentChunk]: ListOfint(),
-      [_h]: ListOfint(),
-      [_digestCalled]: core.bool
-    }),
-    getters: () => ({blockSize: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.dynamic, [ListOfint()]),
-      close: dart.definiteFunctionType(core.List$(core.int), []),
-      [_add32]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      [_roundUp]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      [_rotl32]: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      [_resultAsBytes]: dart.definiteFunctionType(dart.dynamic, []),
-      [_bytesToChunk]: dart.definiteFunctionType(dart.dynamic, [ListOfint(), core.int]),
-      [_wordToBytes]: dart.definiteFunctionType(dart.dynamic, [core.int]),
-      [_iterate]: dart.definiteFunctionType(dart.dynamic, []),
-      [_finalizeData]: dart.definiteFunctionType(dart.dynamic, [])
-    })
-  });
-  io._MD5 = class _MD5 extends io._HashBase {
-    new() {
-      super.new(16, 4, false);
-      this[_h][dartx._set](0, 1732584193);
-      this[_h][dartx._set](1, 4023233417);
-      this[_h][dartx._set](2, 2562383102);
-      this[_h][dartx._set](3, 271733878);
-    }
-    newInstance() {
-      return new io._MD5();
-    }
-    [_updateHash](m) {
-      dart.assert(m[dartx.length] == 16);
-      let a = this[_h][dartx._get](0);
-      let b = this[_h][dartx._get](1);
-      let c = this[_h][dartx._get](2);
-      let d = this[_h][dartx._get](3);
-      let t0 = null;
-      let t1 = null;
-      for (let i = 0; i < 64; i++) {
-        if (i < 16) {
-          t0 = (dart.notNull(b) & dart.notNull(c) | ~dart.notNull(b) & io._MASK_32 & dart.notNull(d)) >>> 0;
-          t1 = i;
-        } else if (i < 32) {
-          t0 = (dart.notNull(d) & dart.notNull(b) | ~dart.notNull(d) & io._MASK_32 & dart.notNull(c)) >>> 0;
-          t1 = (5 * i + 1)[dartx['%']](16);
-        } else if (i < 48) {
-          t0 = (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0;
-          t1 = (3 * i + 5)[dartx['%']](16);
-        } else {
-          t0 = (dart.notNull(c) ^ (dart.notNull(b) | ~dart.notNull(d) & io._MASK_32)) >>> 0;
-          t1 = (7 * i)[dartx['%']](16);
-        }
-        let temp = d;
-        d = c;
-        c = b;
-        b = core.int._check(this[_add32](b, this[_rotl32](core.int._check(this[_add32](this[_add32](a, t0), this[_add32](io._MD5._k[dartx._get](i), m[dartx._get](core.int._check(t1))))), io._MD5._r[dartx._get](i))));
-        a = temp;
-      }
-      this[_h][dartx._set](0, core.int._check(this[_add32](a, this[_h][dartx._get](0))));
-      this[_h][dartx._set](1, core.int._check(this[_add32](b, this[_h][dartx._get](1))));
-      this[_h][dartx._set](2, core.int._check(this[_add32](c, this[_h][dartx._get](2))));
-      this[_h][dartx._set](3, core.int._check(this[_add32](d, this[_h][dartx._get](3))));
-    }
-  };
-  dart.setSignature(io._MD5, {
-    constructors: () => ({new: dart.definiteFunctionType(io._MD5, [])}),
-    methods: () => ({
-      newInstance: dart.definiteFunctionType(io._MD5, []),
-      [_updateHash]: dart.definiteFunctionType(dart.void, [ListOfint()])
-    }),
-    sfields: () => ({
-      _k: ListOfint(),
-      _r: ListOfint()
-    })
-  });
-  io._MD5._k = dart.constList([3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426, 2821735955, 4249261313, 1770035416, 2336552879, 4294925233, 2304563134, 1804603682, 4254626195, 2792965006, 1236535329, 4129170786, 3225465664, 643717713, 3921069994, 3593408605, 38016083, 3634488961, 3889429448, 568446438, 3275163606, 4107603335, 1163531501, 2850285829, 4243563512, 1735328473, 2368359562, 4294588738, 2272392833, 1839030562, 4259657740, 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074, 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645, 4096336452, 1126891415, 2878612391, 4237533241, 1700485571, 2399980690, 4293915773, 2240044497, 1873313359, 4264355552, 2734768916, 1309151649, 4149444226, 3174756917, 718787259, 3951481745], core.int);
-  io._MD5._r = dart.constList([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21], core.int);
-  const _w = Symbol('_w');
-  io._SHA1 = class _SHA1 extends io._HashBase {
-    new() {
-      this[_w] = ListOfint().new(80);
-      super.new(16, 5, true);
-      this[_h][dartx._set](0, 1732584193);
-      this[_h][dartx._set](1, 4023233417);
-      this[_h][dartx._set](2, 2562383102);
-      this[_h][dartx._set](3, 271733878);
-      this[_h][dartx._set](4, 3285377520);
-    }
-    newInstance() {
-      return new io._SHA1();
-    }
-    [_updateHash](m) {
-      dart.assert(m[dartx.length] == 16);
-      let a = this[_h][dartx._get](0);
-      let b = this[_h][dartx._get](1);
-      let c = this[_h][dartx._get](2);
-      let d = this[_h][dartx._get](3);
-      let e = this[_h][dartx._get](4);
-      for (let i = 0; i < 80; i++) {
-        if (i < 16) {
-          this[_w][dartx._set](i, m[dartx._get](i));
-        } else {
-          let n = (dart.notNull(this[_w][dartx._get](i - 3)) ^ dart.notNull(this[_w][dartx._get](i - 8)) ^ dart.notNull(this[_w][dartx._get](i - 14)) ^ dart.notNull(this[_w][dartx._get](i - 16))) >>> 0;
-          this[_w][dartx._set](i, this[_rotl32](n, 1));
-        }
-        let t = this[_add32](this[_add32](this[_rotl32](a, 5), e), this[_w][dartx._get](i));
-        if (i < 20) {
-          t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | ~dart.notNull(b) & dart.notNull(d)) >>> 0), 1518500249);
-        } else if (i < 40) {
-          t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 1859775393);
-        } else if (i < 60) {
-          t = this[_add32](this[_add32](t, (dart.notNull(b) & dart.notNull(c) | dart.notNull(b) & dart.notNull(d) | dart.notNull(c) & dart.notNull(d)) >>> 0), 2400959708);
-        } else {
-          t = this[_add32](this[_add32](t, (dart.notNull(b) ^ dart.notNull(c) ^ dart.notNull(d)) >>> 0), 3395469782);
-        }
-        e = d;
-        d = c;
-        c = this[_rotl32](b, 30);
-        b = a;
-        a = core.int._check(dart.dsend(t, '&', io._MASK_32));
-      }
-      this[_h][dartx._set](0, core.int._check(this[_add32](a, this[_h][dartx._get](0))));
-      this[_h][dartx._set](1, core.int._check(this[_add32](b, this[_h][dartx._get](1))));
-      this[_h][dartx._set](2, core.int._check(this[_add32](c, this[_h][dartx._get](2))));
-      this[_h][dartx._set](3, core.int._check(this[_add32](d, this[_h][dartx._get](3))));
-      this[_h][dartx._set](4, core.int._check(this[_add32](e, this[_h][dartx._get](4))));
-    }
-  };
-  dart.setSignature(io._SHA1, {
-    constructors: () => ({new: dart.definiteFunctionType(io._SHA1, [])}),
-    fields: () => ({[_w]: ListOfint()}),
-    methods: () => ({
-      newInstance: dart.definiteFunctionType(io._SHA1, []),
-      [_updateHash]: dart.definiteFunctionType(dart.void, [ListOfint()])
-    })
-  });
-  io.ZLibOption = class ZLibOption extends core.Object {};
-  dart.setSignature(io.ZLibOption, {
-    sfields: () => ({
-      MIN_WINDOW_BITS: core.int,
-      MAX_WINDOW_BITS: core.int,
-      DEFAULT_WINDOW_BITS: core.int,
-      MIN_LEVEL: core.int,
-      MAX_LEVEL: core.int,
-      DEFAULT_LEVEL: core.int,
-      MIN_MEM_LEVEL: core.int,
-      MAX_MEM_LEVEL: core.int,
-      DEFAULT_MEM_LEVEL: core.int,
-      STRATEGY_FILTERED: core.int,
-      STRATEGY_HUFFMAN_ONLY: core.int,
-      STRATEGY_RLE: core.int,
-      STRATEGY_FIXED: core.int,
-      STRATEGY_DEFAULT: core.int
-    })
-  });
-  io.ZLibOption.MIN_WINDOW_BITS = 8;
-  io.ZLibOption.MAX_WINDOW_BITS = 15;
-  io.ZLibOption.DEFAULT_WINDOW_BITS = 15;
-  io.ZLibOption.MIN_LEVEL = -1;
-  io.ZLibOption.MAX_LEVEL = 9;
-  io.ZLibOption.DEFAULT_LEVEL = 6;
-  io.ZLibOption.MIN_MEM_LEVEL = 1;
-  io.ZLibOption.MAX_MEM_LEVEL = 9;
-  io.ZLibOption.DEFAULT_MEM_LEVEL = 8;
-  io.ZLibOption.STRATEGY_FILTERED = 1;
-  io.ZLibOption.STRATEGY_HUFFMAN_ONLY = 2;
-  io.ZLibOption.STRATEGY_RLE = 3;
-  io.ZLibOption.STRATEGY_FIXED = 4;
-  io.ZLibOption.STRATEGY_DEFAULT = 0;
-  io.ZLibCodec = class ZLibCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
-    new(opts) {
-      let level = opts && 'level' in opts ? opts.level : io.ZLibOption.DEFAULT_LEVEL;
-      let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
-      let memLevel = opts && 'memLevel' in opts ? opts.memLevel : io.ZLibOption.DEFAULT_MEM_LEVEL;
-      let strategy = opts && 'strategy' in opts ? opts.strategy : io.ZLibOption.STRATEGY_DEFAULT;
-      let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
-      let raw = opts && 'raw' in opts ? opts.raw : false;
-      let gzip = opts && 'gzip' in opts ? opts.gzip : false;
-      this.level = level;
-      this.windowBits = windowBits;
-      this.memLevel = memLevel;
-      this.strategy = strategy;
-      this.dictionary = dictionary;
-      this.raw = raw;
-      this.gzip = gzip;
-      super.new();
-      io._validateZLibeLevel(this.level);
-      io._validateZLibMemLevel(this.memLevel);
-      io._validateZLibStrategy(this.strategy);
-      io._validateZLibWindowBits(this.windowBits);
-    }
-    _default() {
-      this.level = io.ZLibOption.DEFAULT_LEVEL;
-      this.windowBits = io.ZLibOption.DEFAULT_WINDOW_BITS;
-      this.memLevel = io.ZLibOption.DEFAULT_MEM_LEVEL;
-      this.strategy = io.ZLibOption.STRATEGY_DEFAULT;
-      this.raw = false;
-      this.gzip = false;
-      this.dictionary = null;
-      super.new();
-    }
-    get encoder() {
-      return new io.ZLibEncoder({gzip: false, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
-    }
-    get decoder() {
-      return new io.ZLibDecoder({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
-    }
-  };
-  dart.addSimpleTypeTests(io.ZLibCodec);
-  dart.defineNamedConstructor(io.ZLibCodec, '_default');
-  dart.setSignature(io.ZLibCodec, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.ZLibCodec, [], {level: core.int, windowBits: core.int, memLevel: core.int, strategy: core.int, dictionary: ListOfint(), raw: core.bool, gzip: core.bool}),
-      _default: dart.definiteFunctionType(io.ZLibCodec, [])
-    }),
-    fields: () => ({
-      gzip: core.bool,
-      level: core.int,
-      memLevel: core.int,
-      strategy: core.int,
-      windowBits: core.int,
-      raw: core.bool,
-      dictionary: ListOfint()
-    }),
-    getters: () => ({
-      encoder: dart.definiteFunctionType(io.ZLibEncoder, []),
-      decoder: dart.definiteFunctionType(io.ZLibDecoder, [])
-    })
-  });
-  io.ZLIB = dart.const(new io.ZLibCodec._default());
-  io.GZipCodec = class GZipCodec extends convert.Codec$(core.List$(core.int), core.List$(core.int)) {
-    new(opts) {
-      let level = opts && 'level' in opts ? opts.level : io.ZLibOption.DEFAULT_LEVEL;
-      let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
-      let memLevel = opts && 'memLevel' in opts ? opts.memLevel : io.ZLibOption.DEFAULT_MEM_LEVEL;
-      let strategy = opts && 'strategy' in opts ? opts.strategy : io.ZLibOption.STRATEGY_DEFAULT;
-      let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
-      let raw = opts && 'raw' in opts ? opts.raw : false;
-      let gzip = opts && 'gzip' in opts ? opts.gzip : true;
-      this.level = level;
-      this.windowBits = windowBits;
-      this.memLevel = memLevel;
-      this.strategy = strategy;
-      this.dictionary = dictionary;
-      this.raw = raw;
-      this.gzip = gzip;
-      super.new();
-      io._validateZLibeLevel(this.level);
-      io._validateZLibMemLevel(this.memLevel);
-      io._validateZLibStrategy(this.strategy);
-      io._validateZLibWindowBits(this.windowBits);
-    }
-    _default() {
-      this.level = io.ZLibOption.DEFAULT_LEVEL;
-      this.windowBits = io.ZLibOption.DEFAULT_WINDOW_BITS;
-      this.memLevel = io.ZLibOption.DEFAULT_MEM_LEVEL;
-      this.strategy = io.ZLibOption.STRATEGY_DEFAULT;
-      this.raw = false;
-      this.gzip = true;
-      this.dictionary = null;
-      super.new();
-    }
-    get encoder() {
-      return new io.ZLibEncoder({gzip: true, level: this.level, windowBits: this.windowBits, memLevel: this.memLevel, strategy: this.strategy, dictionary: this.dictionary, raw: this.raw});
-    }
-    get decoder() {
-      return new io.ZLibDecoder({windowBits: this.windowBits, dictionary: this.dictionary, raw: this.raw});
-    }
-  };
-  dart.addSimpleTypeTests(io.GZipCodec);
-  dart.defineNamedConstructor(io.GZipCodec, '_default');
-  dart.setSignature(io.GZipCodec, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.GZipCodec, [], {level: core.int, windowBits: core.int, memLevel: core.int, strategy: core.int, dictionary: ListOfint(), raw: core.bool, gzip: core.bool}),
-      _default: dart.definiteFunctionType(io.GZipCodec, [])
-    }),
-    fields: () => ({
-      gzip: core.bool,
-      level: core.int,
-      memLevel: core.int,
-      strategy: core.int,
-      windowBits: core.int,
-      dictionary: ListOfint(),
-      raw: core.bool
-    }),
-    getters: () => ({
-      encoder: dart.definiteFunctionType(io.ZLibEncoder, []),
-      decoder: dart.definiteFunctionType(io.ZLibDecoder, [])
-    })
-  });
-  io.GZIP = dart.const(new io.GZipCodec._default());
-  io.ZLibEncoder = class ZLibEncoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
-    new(opts) {
-      let gzip = opts && 'gzip' in opts ? opts.gzip : false;
-      let level = opts && 'level' in opts ? opts.level : io.ZLibOption.DEFAULT_LEVEL;
-      let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
-      let memLevel = opts && 'memLevel' in opts ? opts.memLevel : io.ZLibOption.DEFAULT_MEM_LEVEL;
-      let strategy = opts && 'strategy' in opts ? opts.strategy : io.ZLibOption.STRATEGY_DEFAULT;
-      let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
-      let raw = opts && 'raw' in opts ? opts.raw : false;
-      this.gzip = gzip;
-      this.level = level;
-      this.windowBits = windowBits;
-      this.memLevel = memLevel;
-      this.strategy = strategy;
-      this.dictionary = dictionary;
-      this.raw = raw;
-      super.new();
-      io._validateZLibeLevel(this.level);
-      io._validateZLibMemLevel(this.memLevel);
-      io._validateZLibStrategy(this.strategy);
-      io._validateZLibWindowBits(this.windowBits);
-    }
-    convert(bytes) {
-      let sink = new io._BufferSink();
-      let _ = this.startChunkedConversion(sink);
-      _.add(bytes);
-      _.close();
-      return sink.builder.takeBytes();
-    }
-    startChunkedConversion(sink) {
-      if (!convert.ByteConversionSink.is(sink)) {
-        sink = convert.ByteConversionSink.from(sink);
-      }
-      return new io._ZLibEncoderSink(convert.ByteConversionSink._check(sink), this.gzip, this.level, this.windowBits, this.memLevel, this.strategy, this.dictionary, this.raw);
-    }
-  };
-  dart.addSimpleTypeTests(io.ZLibEncoder);
-  dart.setSignature(io.ZLibEncoder, {
-    constructors: () => ({new: dart.definiteFunctionType(io.ZLibEncoder, [], {gzip: core.bool, level: core.int, windowBits: core.int, memLevel: core.int, strategy: core.int, dictionary: ListOfint(), raw: core.bool})}),
-    fields: () => ({
-      gzip: core.bool,
-      level: core.int,
-      memLevel: core.int,
-      strategy: core.int,
-      windowBits: core.int,
-      dictionary: ListOfint(),
-      raw: core.bool
-    }),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [ListOfint()]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfListOfint()])
-    })
-  });
-  io.ZLibDecoder = class ZLibDecoder extends convert.Converter$(core.List$(core.int), core.List$(core.int)) {
-    new(opts) {
-      let windowBits = opts && 'windowBits' in opts ? opts.windowBits : io.ZLibOption.DEFAULT_WINDOW_BITS;
-      let dictionary = opts && 'dictionary' in opts ? opts.dictionary : null;
-      let raw = opts && 'raw' in opts ? opts.raw : false;
-      this.windowBits = windowBits;
-      this.dictionary = dictionary;
-      this.raw = raw;
-      super.new();
-      io._validateZLibWindowBits(this.windowBits);
-    }
-    convert(bytes) {
-      let sink = new io._BufferSink();
-      let _ = this.startChunkedConversion(sink);
-      _.add(bytes);
-      _.close();
-      return sink.builder.takeBytes();
-    }
-    startChunkedConversion(sink) {
-      if (!convert.ByteConversionSink.is(sink)) {
-        sink = convert.ByteConversionSink.from(sink);
-      }
-      return new io._ZLibDecoderSink(convert.ByteConversionSink._check(sink), this.windowBits, this.dictionary, this.raw);
-    }
-  };
-  dart.addSimpleTypeTests(io.ZLibDecoder);
-  dart.setSignature(io.ZLibDecoder, {
-    constructors: () => ({new: dart.definiteFunctionType(io.ZLibDecoder, [], {windowBits: core.int, dictionary: ListOfint(), raw: core.bool})}),
-    fields: () => ({
-      windowBits: core.int,
-      dictionary: ListOfint(),
-      raw: core.bool
-    }),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [ListOfint()]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfListOfint()])
-    })
-  });
-  io._BufferSink = class _BufferSink extends convert.ByteConversionSink {
-    new() {
-      this.builder = io.BytesBuilder.new({copy: false});
-      super.new();
-    }
-    add(chunk) {
-      this.builder.add(chunk);
-    }
-    addSlice(chunk, start, end, isLast) {
-      if (typed_data.Uint8List.is(chunk)) {
-        let list = chunk;
-        this.builder.add(typed_data.Uint8List.view(list[dartx.buffer], start, dart.notNull(end) - dart.notNull(start)));
-      } else {
-        this.builder.add(chunk[dartx.sublist](start, end));
-      }
-    }
-    close() {}
-  };
-  dart.setSignature(io._BufferSink, {
-    fields: () => ({builder: io.BytesBuilder}),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _sink$0 = Symbol('_sink');
-  const _filter$ = Symbol('_filter');
-  const _closed = Symbol('_closed');
-  const _empty = Symbol('_empty');
-  let const$52;
-  io._FilterSink = class _FilterSink extends convert.ByteConversionSink {
-    new(sink, filter) {
-      this[_sink$0] = sink;
-      this[_filter$] = filter;
-      this[_closed] = false;
-      this[_empty] = true;
-      super.new();
-    }
-    add(data) {
-      this.addSlice(data, 0, data[dartx.length], false);
-    }
-    addSlice(data, start, end, isLast) {
-      if (dart.test(this[_closed])) return;
-      if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
-      core.RangeError.checkValidRange(start, end, data[dartx.length]);
-      try {
-        this[_empty] = false;
-        let bufferAndStart = io._ensureFastAndSerializableByteData(data, start, end);
-        this[_filter$].process(ListOfint()._check(bufferAndStart.buffer), bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
-        let out = null;
-        while ((out = this[_filter$].processed({flush: false})) != null) {
-          this[_sink$0].add(ListOfint()._check(out));
-        }
-      } catch (e) {
-        this[_closed] = true;
-        throw e;
-      }
-
-      if (dart.test(isLast)) this.close();
-    }
-    close() {
-      if (dart.test(this[_closed])) return;
-      if (dart.test(this[_empty])) this[_filter$].process(const$52 || (const$52 = dart.constList([], core.int)), 0, 0);
-      try {
-        let out = null;
-        while ((out = this[_filter$].processed({end: true})) != null) {
-          this[_sink$0].add(ListOfint()._check(out));
-        }
-      } catch (e) {
-        this[_closed] = true;
-        dart.throw(e);
-      }
-
-      this[_closed] = true;
-      this[_sink$0].close();
-    }
-  };
-  dart.setSignature(io._FilterSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._FilterSink, [convert.ByteConversionSink, io._Filter])}),
-    fields: () => ({
-      [_filter$]: io._Filter,
-      [_sink$0]: convert.ByteConversionSink,
-      [_closed]: core.bool,
-      [_empty]: core.bool
-    }),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  io._ZLibEncoderSink = class _ZLibEncoderSink extends io._FilterSink {
-    new(sink, gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
-      super.new(sink, io._Filter._newZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw));
-    }
-  };
-  dart.setSignature(io._ZLibEncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ZLibEncoderSink, [convert.ByteConversionSink, core.bool, core.int, core.int, core.int, core.int, ListOfint(), core.bool])})
-  });
-  io._ZLibDecoderSink = class _ZLibDecoderSink extends io._FilterSink {
-    new(sink, windowBits, dictionary, raw) {
-      super.new(sink, io._Filter._newZLibInflateFilter(windowBits, dictionary, raw));
-    }
-  };
-  dart.setSignature(io._ZLibDecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ZLibDecoderSink, [convert.ByteConversionSink, core.int, ListOfint(), core.bool])})
-  });
-  io._Filter = class _Filter extends core.Object {
-    static _newZLibDeflateFilter(gzip, level, windowBits, memLevel, strategy, dictionary, raw) {
-      dart.throw(new core.UnsupportedError("_newZLibDeflateFilter"));
-    }
-    static _newZLibInflateFilter(windowBits, dictionary, raw) {
-      dart.throw(new core.UnsupportedError("_newZLibInflateFilter"));
-    }
-  };
-  dart.setSignature(io._Filter, {
-    statics: () => ({
-      _newZLibDeflateFilter: dart.definiteFunctionType(io._Filter, [core.bool, core.int, core.int, core.int, core.int, ListOfint(), core.bool]),
-      _newZLibInflateFilter: dart.definiteFunctionType(io._Filter, [core.int, ListOfint(), core.bool])
-    }),
-    names: ['_newZLibDeflateFilter', '_newZLibInflateFilter']
-  });
-  io._validateZLibWindowBits = function(windowBits) {
-    if (io.ZLibOption.MIN_WINDOW_BITS > dart.notNull(windowBits) || io.ZLibOption.MAX_WINDOW_BITS < dart.notNull(windowBits)) {
-      dart.throw(new core.RangeError.range(windowBits, io.ZLibOption.MIN_WINDOW_BITS, io.ZLibOption.MAX_WINDOW_BITS));
-    }
-  };
-  dart.fn(io._validateZLibWindowBits, intTovoid());
-  io._validateZLibeLevel = function(level) {
-    if (io.ZLibOption.MIN_LEVEL > dart.notNull(level) || io.ZLibOption.MAX_LEVEL < dart.notNull(level)) {
-      dart.throw(new core.RangeError.range(level, io.ZLibOption.MIN_LEVEL, io.ZLibOption.MAX_LEVEL));
-    }
-  };
-  dart.fn(io._validateZLibeLevel, intTovoid());
-  io._validateZLibMemLevel = function(memLevel) {
-    if (io.ZLibOption.MIN_MEM_LEVEL > dart.notNull(memLevel) || io.ZLibOption.MAX_MEM_LEVEL < dart.notNull(memLevel)) {
-      dart.throw(new core.RangeError.range(memLevel, io.ZLibOption.MIN_MEM_LEVEL, io.ZLibOption.MAX_MEM_LEVEL));
-    }
-  };
-  dart.fn(io._validateZLibMemLevel, intTovoid());
-  let const$53;
-  io._validateZLibStrategy = function(strategy) {
-    let strategies = const$53 || (const$53 = dart.constList([io.ZLibOption.STRATEGY_FILTERED, io.ZLibOption.STRATEGY_HUFFMAN_ONLY, io.ZLibOption.STRATEGY_RLE, io.ZLibOption.STRATEGY_FIXED, io.ZLibOption.STRATEGY_DEFAULT], core.int));
-    if (strategies[dartx.indexOf](strategy) == -1) {
-      dart.throw(new core.ArgumentError("Unsupported 'strategy'"));
-    }
-  };
-  dart.fn(io._validateZLibStrategy, intTovoid());
-  io.Directory = class Directory extends core.Object {
-    static new(path) {
-      return new io._Directory(path);
-    }
-    static fromUri(uri) {
-      return io.Directory.new(uri.toFilePath());
-    }
-    static get current() {
-      return io._Directory.current;
-    }
-    static set current(path) {
-      io._Directory.current = path;
-    }
-    static get systemTemp() {
-      return io._Directory.systemTemp;
-    }
-  };
-  io.Directory[dart.implements] = () => [io.FileSystemEntity];
-  dart.setSignature(io.Directory, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.Directory, [core.String]),
-      fromUri: dart.definiteFunctionType(io.Directory, [core.Uri])
-    }),
-    fields: () => ({path: core.String}),
-    sgetters: () => ({
-      current: dart.definiteFunctionType(io.Directory, []),
-      systemTemp: dart.definiteFunctionType(io.Directory, [])
-    }),
-    ssetters: () => ({current: dart.definiteFunctionType(dart.void, [dart.dynamic])})
-  });
-  const _isErrorResponse = Symbol('_isErrorResponse');
-  const _exceptionOrErrorFromResponse = Symbol('_exceptionOrErrorFromResponse');
-  const _absolutePath = Symbol('_absolutePath');
-  const _computeExistingIndex = Symbol('_computeExistingIndex');
-  const _delete = Symbol('_delete');
-  const _deleteSync = Symbol('_deleteSync');
-  const _type = Symbol('_type');
-  io.FileSystemEntity = class FileSystemEntity extends core.Object {
-    get uri() {
-      return core.Uri.file(this.path);
-    }
-    resolveSymbolicLinks() {
-      return io._IOService._dispatch(io._FILE_RESOLVE_SYMBOLIC_LINKS, JSArrayOfString().of([this.path])).then(core.String)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot resolve symbolic links", this.path));
-        }
-        return FutureOrOfString()._check(response);
-      }, dynamicToFutureOrOfString()));
-    }
-    resolveSymbolicLinksSync() {
-      let result = io.FileSystemEntity._resolveSymbolicLinks(this.path);
-      io.FileSystemEntity._throwIfError(result, "Cannot resolve symbolic links", this.path);
+  }
+};
+io._Link[dart.implements] = () => [io.Link];
+dart.setSignature(io._Link, {
+  constructors: () => ({new: dart.definiteFunctionType(io._Link, [core.String])}),
+  fields: () => ({path: core.String}),
+  getters: () => ({absolute: dart.definiteFunctionType(io.Link, [])}),
+  methods: () => ({
+    exists: dart.definiteFunctionType(async.Future$(core.bool), []),
+    existsSync: dart.definiteFunctionType(core.bool, []),
+    stat: dart.definiteFunctionType(async.Future$(io.FileStat), []),
+    statSync: dart.definiteFunctionType(io.FileStat, []),
+    create: dart.definiteFunctionType(async.Future$(io.Link), [core.String], {recursive: core.bool}),
+    createSync: dart.definiteFunctionType(dart.void, [core.String], {recursive: core.bool}),
+    [_makeWindowsLinkTarget]: dart.definiteFunctionType(core.String, [core.String]),
+    updateSync: dart.definiteFunctionType(dart.void, [core.String]),
+    update: dart.definiteFunctionType(async.Future$(io.Link), [core.String]),
+    [_delete]: dart.definiteFunctionType(async.Future$(io.Link), [], {recursive: core.bool}),
+    [_deleteSync]: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
+    rename: dart.definiteFunctionType(async.Future$(io.Link), [core.String]),
+    renameSync: dart.definiteFunctionType(io.Link, [core.String]),
+    target: dart.definiteFunctionType(async.Future$(core.String), []),
+    targetSync: dart.definiteFunctionType(core.String, []),
+    [_isErrorResponse]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [_exceptionFromResponse]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, core.String])
+  }),
+  statics: () => ({throwIfError: dart.definiteFunctionType(dart.dynamic, [core.Object, core.String], [core.String])}),
+  names: ['throwIfError']
+});
+io.Platform = class Platform extends core.Object {
+  static get numberOfProcessors() {
+    return io.Platform._numberOfProcessors;
+  }
+  static get pathSeparator() {
+    return io.Platform._pathSeparator;
+  }
+  static get operatingSystem() {
+    return io.Platform._operatingSystem;
+  }
+  static get localHostname() {
+    return io.Platform._localHostname;
+  }
+  static get environment() {
+    return io._Platform.environment;
+  }
+  static get executable() {
+    return io._Platform.executable;
+  }
+  static get resolvedExecutable() {
+    return io._Platform.resolvedExecutable;
+  }
+  static get script() {
+    return io._Platform.script;
+  }
+  static get executableArguments() {
+    return io._Platform.executableArguments;
+  }
+  static get packageRoot() {
+    return io._Platform.packageRoot;
+  }
+  static get packageConfig() {
+    return io._Platform.packageConfig;
+  }
+  static get version() {
+    return io.Platform._version;
+  }
+};
+dart.setSignature(io.Platform, {
+  sfields: () => ({
+    _numberOfProcessors: core.int,
+    _pathSeparator: core.String,
+    _operatingSystem: core.String,
+    _localHostname: core.String,
+    _version: core.String,
+    isLinux: core.bool,
+    isMacOS: core.bool,
+    isWindows: core.bool,
+    isAndroid: core.bool,
+    isIOS: core.bool
+  }),
+  sgetters: () => ({
+    numberOfProcessors: dart.definiteFunctionType(core.int, []),
+    pathSeparator: dart.definiteFunctionType(core.String, []),
+    operatingSystem: dart.definiteFunctionType(core.String, []),
+    localHostname: dart.definiteFunctionType(core.String, []),
+    environment: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
+    executable: dart.definiteFunctionType(core.String, []),
+    resolvedExecutable: dart.definiteFunctionType(core.String, []),
+    script: dart.definiteFunctionType(core.Uri, []),
+    executableArguments: dart.definiteFunctionType(core.List$(core.String), []),
+    packageRoot: dart.definiteFunctionType(core.String, []),
+    packageConfig: dart.definiteFunctionType(core.String, []),
+    version: dart.definiteFunctionType(core.String, [])
+  })
+});
+dart.defineLazy(io.Platform, {
+  get _numberOfProcessors() {
+    return io._Platform.numberOfProcessors;
+  },
+  get _pathSeparator() {
+    return io._Platform.pathSeparator;
+  },
+  get _operatingSystem() {
+    return io._Platform.operatingSystem;
+  },
+  get _localHostname() {
+    return io._Platform.localHostname;
+  },
+  get _version() {
+    return io._Platform.version;
+  },
+  get isLinux() {
+    return io.Platform._operatingSystem == "linux";
+  },
+  get isMacOS() {
+    return io.Platform._operatingSystem == "macos";
+  },
+  get isWindows() {
+    return io.Platform._operatingSystem == "windows";
+  },
+  get isAndroid() {
+    return io.Platform._operatingSystem == "android";
+  },
+  get isIOS() {
+    return io.Platform._operatingSystem == "ios";
+  }
+});
+io._Platform = class _Platform extends core.Object {
+  static _numberOfProcessors() {
+    dart.throw(new core.UnsupportedError("Platform._numberOfProcessors"));
+  }
+  static _pathSeparator() {
+    dart.throw(new core.UnsupportedError("Platform._pathSeparator"));
+  }
+  static _operatingSystem() {
+    dart.throw(new core.UnsupportedError("Platform._operatingSystem"));
+  }
+  static _localHostname() {
+    dart.throw(new core.UnsupportedError("Platform._localHostname"));
+  }
+  static _executable() {
+    dart.throw(new core.UnsupportedError("Platform._executable"));
+  }
+  static _resolvedExecutable() {
+    dart.throw(new core.UnsupportedError("Platform._resolvedExecutable"));
+  }
+  static _environment() {
+    dart.throw(new core.UnsupportedError("Platform._environment"));
+  }
+  static _executableArguments() {
+    dart.throw(new core.UnsupportedError("Platform._executableArguments"));
+  }
+  static _packageRoot() {
+    dart.throw(new core.UnsupportedError("Platform._packageRoot"));
+  }
+  static _packageConfig() {
+    dart.throw(new core.UnsupportedError("Platform._packageConfig"));
+  }
+  static _version() {
+    dart.throw(new core.UnsupportedError("Platform._version"));
+  }
+  static get numberOfProcessors() {
+    return io._Platform._numberOfProcessors();
+  }
+  static get pathSeparator() {
+    return io._Platform._pathSeparator();
+  }
+  static get operatingSystem() {
+    return io._Platform._operatingSystem();
+  }
+  static get localHostname() {
+    let result = io._Platform._localHostname();
+    if (io.OSError.is(result)) {
+      dart.throw(result);
+    } else {
       return core.String._check(result);
     }
-    delete(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      return this[_delete]({recursive: recursive});
-    }
-    deleteSync(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      return this[_deleteSync]({recursive: recursive});
-    }
-    watch(opts) {
-      let events = opts && 'events' in opts ? opts.events : io.FileSystemEvent.ALL;
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      return io._FileSystemWatcher._watch(io.FileSystemEntity._trimTrailingPathSeparators(this.path), events, recursive);
-    }
-    static identical(path1, path2) {
-      return io._IOService._dispatch(io._FILE_IDENTICAL, JSArrayOfString().of([path1, path2])).then(core.bool)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, dart.str`Error in FileSystemEntity.identical(${path1}, ${path2})`, ""));
-        }
-        return FutureOrOfbool()._check(response);
-      }, dynamicToFutureOrOfbool()));
-    }
-    get isAbsolute() {
-      if (dart.test(io.Platform.isWindows)) {
-        return this.path[dartx.startsWith](io.FileSystemEntity._absoluteWindowsPathPattern);
-      } else {
-        return this.path[dartx.startsWith]('/');
-      }
-    }
-    get [_absolutePath]() {
-      if (dart.test(this.isAbsolute)) return this.path;
-      let current = io.Directory.current.path;
-      if (dart.test(current[dartx.endsWith]('/')) || dart.test(io.Platform.isWindows) && dart.test(current[dartx.endsWith]('\\'))) {
-        return dart.str`${current}${this.path}`;
-      } else {
-        return dart.str`${current}${io.Platform.pathSeparator}${this.path}`;
-      }
-    }
-    static identicalSync(path1, path2) {
-      let result = io.FileSystemEntity._identical(path1, path2);
-      io.FileSystemEntity._throwIfError(result, 'Error in FileSystemEntity.identicalSync');
-      return core.bool._check(result);
-    }
-    static get isWatchSupported() {
-      return io._FileSystemWatcher.isSupported;
-    }
-    static type(path, opts) {
-      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
-      return io.FileSystemEntity._getTypeAsync(path, followLinks).then(io.FileSystemEntityType)(io.FileSystemEntityType._lookup);
-    }
-    static typeSync(path, opts) {
-      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
-      return io.FileSystemEntityType._lookup(io.FileSystemEntity._getTypeSync(path, followLinks));
-    }
-    static isLink(path) {
-      return io.FileSystemEntity._getTypeAsync(path, false).then(core.bool)(dart.fn(type => type == io.FileSystemEntityType.LINK[_type], intTobool()));
-    }
-    static isFile(path) {
-      return io.FileSystemEntity._getTypeAsync(path, true).then(core.bool)(dart.fn(type => type == io.FileSystemEntityType.FILE[_type], intTobool()));
-    }
-    static isDirectory(path) {
-      return io.FileSystemEntity._getTypeAsync(path, true).then(core.bool)(dart.fn(type => type == io.FileSystemEntityType.DIRECTORY[_type], intTobool()));
-    }
-    static isLinkSync(path) {
-      return io.FileSystemEntity._getTypeSync(path, false) == io.FileSystemEntityType.LINK[_type];
-    }
-    static isFileSync(path) {
-      return io.FileSystemEntity._getTypeSync(path, true) == io.FileSystemEntityType.FILE[_type];
-    }
-    static isDirectorySync(path) {
-      return io.FileSystemEntity._getTypeSync(path, true) == io.FileSystemEntityType.DIRECTORY[_type];
-    }
-    static _getType(path, followLinks) {
-      dart.throw(new core.UnsupportedError("FileSystemEntity._getType"));
-    }
-    static _identical(path1, path2) {
-      dart.throw(new core.UnsupportedError("FileSystemEntity._identical"));
-    }
-    static _resolveSymbolicLinks(path) {
-      dart.throw(new core.UnsupportedError("FileSystemEntity._resolveSymbolicLinks"));
-    }
-    static parentOf(path) {
-      let rootEnd = -1;
-      if (dart.test(io.Platform.isWindows)) {
-        if (dart.test(path[dartx.startsWith](io.FileSystemEntity._absoluteWindowsPathPattern))) {
-          rootEnd = path[dartx.indexOf](core.RegExp.new('[/\\\\]'), 2);
-          if (rootEnd == -1) return path;
-        } else if (dart.test(path[dartx.startsWith]('\\')) || dart.test(path[dartx.startsWith]('/'))) {
-          rootEnd = 0;
-        }
-      } else if (dart.test(path[dartx.startsWith]('/'))) {
-        rootEnd = 0;
-      }
-      let pos = path[dartx.lastIndexOf](io.FileSystemEntity._parentRegExp);
-      if (dart.notNull(pos) > dart.notNull(rootEnd)) {
-        return path[dartx.substring](0, dart.notNull(pos) + 1);
-      } else if (dart.notNull(rootEnd) > -1) {
-        return path[dartx.substring](0, dart.notNull(rootEnd) + 1);
-      } else {
-        return '.';
-      }
-    }
-    get parent() {
-      return io.Directory.new(io.FileSystemEntity.parentOf(this.path));
-    }
-    static _getTypeSync(path, followLinks) {
-      let result = io.FileSystemEntity._getType(path, followLinks);
-      io.FileSystemEntity._throwIfError(result, 'Error getting type of FileSystemEntity');
-      return core.int._check(result);
-    }
-    static _getTypeAsync(path, followLinks) {
-      return io._IOService._dispatch(io._FILE_TYPE, JSArrayOfObject().of([path, followLinks])).then(core.int)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Error getting type", path));
-        }
-        return FutureOrOfint()._check(response);
-      }, dynamicToFutureOrOfint()));
-    }
-    static _throwIfError(result, msg, path) {
-      if (path === void 0) path = null;
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException(msg, path, result));
-      } else if (core.ArgumentError.is(result)) {
-        dart.throw(result);
-      }
-    }
-    static _trimTrailingPathSeparators(path) {
-      if (!(typeof path == 'string')) return path;
-      if (dart.test(io.Platform.isWindows)) {
-        while (dart.notNull(path[dartx.length]) > 1 && (dart.test(path[dartx.endsWith](io.Platform.pathSeparator)) || dart.test(path[dartx.endsWith]('/')))) {
-          path = path[dartx.substring](0, dart.notNull(path[dartx.length]) - 1);
-        }
-      } else {
-        while (dart.notNull(path[dartx.length]) > 1 && dart.test(path[dartx.endsWith](io.Platform.pathSeparator))) {
-          path = path[dartx.substring](0, dart.notNull(path[dartx.length]) - 1);
-        }
-      }
-      return path;
-    }
-    static _ensureTrailingPathSeparators(path) {
-      if (!(typeof path == 'string')) return path;
-      if (dart.test(path[dartx.isEmpty])) path = '.';
-      if (dart.test(io.Platform.isWindows)) {
-        while (!dart.test(path[dartx.endsWith](io.Platform.pathSeparator)) && !dart.test(path[dartx.endsWith]('/'))) {
-          path = dart.str`${path}${io.Platform.pathSeparator}`;
-        }
-      } else {
-        while (!dart.test(path[dartx.endsWith](io.Platform.pathSeparator))) {
-          path = dart.str`${path}${io.Platform.pathSeparator}`;
-        }
-      }
-      return path;
-    }
-  };
-  dart.setSignature(io.FileSystemEntity, {
-    getters: () => ({
-      uri: dart.definiteFunctionType(core.Uri, []),
-      isAbsolute: dart.definiteFunctionType(core.bool, []),
-      [_absolutePath]: dart.definiteFunctionType(core.String, []),
-      parent: dart.definiteFunctionType(io.Directory, [])
-    }),
-    methods: () => ({
-      resolveSymbolicLinks: dart.definiteFunctionType(async.Future$(core.String), []),
-      resolveSymbolicLinksSync: dart.definiteFunctionType(core.String, []),
-      delete: dart.definiteFunctionType(async.Future$(io.FileSystemEntity), [], {recursive: core.bool}),
-      deleteSync: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
-      watch: dart.definiteFunctionType(async.Stream$(io.FileSystemEvent), [], {events: core.int, recursive: core.bool})
-    }),
-    sfields: () => ({
-      _absoluteWindowsPathPattern: core.RegExp,
-      _parentRegExp: core.RegExp
-    }),
-    sgetters: () => ({isWatchSupported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      identical: dart.definiteFunctionType(async.Future$(core.bool), [core.String, core.String]),
-      identicalSync: dart.definiteFunctionType(core.bool, [core.String, core.String]),
-      type: dart.definiteFunctionType(async.Future$(io.FileSystemEntityType), [core.String], {followLinks: core.bool}),
-      typeSync: dart.definiteFunctionType(io.FileSystemEntityType, [core.String], {followLinks: core.bool}),
-      isLink: dart.definiteFunctionType(async.Future$(core.bool), [core.String]),
-      isFile: dart.definiteFunctionType(async.Future$(core.bool), [core.String]),
-      isDirectory: dart.definiteFunctionType(async.Future$(core.bool), [core.String]),
-      isLinkSync: dart.definiteFunctionType(core.bool, [core.String]),
-      isFileSync: dart.definiteFunctionType(core.bool, [core.String]),
-      isDirectorySync: dart.definiteFunctionType(core.bool, [core.String]),
-      _getType: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
-      _identical: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      _resolveSymbolicLinks: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      parentOf: dart.definiteFunctionType(core.String, [core.String]),
-      _getTypeSync: dart.definiteFunctionType(core.int, [core.String, core.bool]),
-      _getTypeAsync: dart.definiteFunctionType(async.Future$(core.int), [core.String, core.bool]),
-      _throwIfError: dart.definiteFunctionType(dart.dynamic, [core.Object, core.String], [core.String]),
-      _trimTrailingPathSeparators: dart.definiteFunctionType(core.String, [core.String]),
-      _ensureTrailingPathSeparators: dart.definiteFunctionType(core.String, [core.String])
-    }),
-    names: ['identical', 'identicalSync', 'type', 'typeSync', 'isLink', 'isFile', 'isDirectory', 'isLinkSync', 'isFileSync', 'isDirectorySync', '_getType', '_identical', '_resolveSymbolicLinks', 'parentOf', '_getTypeSync', '_getTypeAsync', '_throwIfError', '_trimTrailingPathSeparators', '_ensureTrailingPathSeparators']
-  });
-  dart.defineLazy(io.FileSystemEntity, {
-    get _absoluteWindowsPathPattern() {
-      return core.RegExp.new('^(\\\\\\\\|[a-zA-Z]:[/\\\\])');
-    },
-    get _parentRegExp() {
-      return dart.test(io.Platform.isWindows) ? core.RegExp.new('[^/\\\\][/\\\\]+[^/\\\\]') : core.RegExp.new('[^/]/+[^/]');
-    }
-  });
-  io._Directory = class _Directory extends io.FileSystemEntity {
-    new(path) {
-      this.path = path;
-      if (!(typeof this.path == 'string')) {
-        dart.throw(new core.ArgumentError(dart.str`${core.Error.safeToString(this.path)} ` + 'is not a String'));
-      }
-    }
-    static _current() {
-      dart.throw(new core.UnsupportedError("Directory._current"));
-    }
-    static _setCurrent(path) {
-      dart.throw(new core.UnsupportedError("Directory_SetCurrent"));
-    }
-    static _createTemp(path) {
-      dart.throw(new core.UnsupportedError("Directory._createTemp"));
-    }
-    static _systemTemp() {
-      dart.throw(new core.UnsupportedError("Directory._systemTemp"));
-    }
-    static _exists(path) {
-      dart.throw(new core.UnsupportedError("Directory._exists"));
-    }
-    static _create(path) {
-      dart.throw(new core.UnsupportedError("Directory._create"));
-    }
-    static _deleteNative(path, recursive) {
-      dart.throw(new core.UnsupportedError("Directory._deleteNative"));
-    }
-    static _rename(path, newPath) {
-      dart.throw(new core.UnsupportedError("Directory._rename"));
-    }
-    static _fillWithDirectoryListing(list, path, recursive, followLinks) {
-      dart.throw(new core.UnsupportedError("Directory._fillWithDirectoryListing"));
-    }
-    static get current() {
-      let result = io._Directory._current();
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Getting current working directory failed", "", result));
-      }
-      return new io._Directory(core.String._check(result));
-    }
-    static set current(path) {
-      if (io.Directory.is(path)) path = dart.dload(path, 'path');
-      let result = io._Directory._setCurrent(path);
-      if (core.ArgumentError.is(result)) dart.throw(result);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Setting current working directory failed", core.String._check(path), result));
-      }
-    }
-    get uri() {
-      return core.Uri.directory(this.path);
-    }
-    exists() {
-      return io._IOService._dispatch(io._DIRECTORY_EXISTS, JSArrayOfString().of([this.path])).then(core.bool)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionOrErrorFromResponse](response, "Exists failed"));
-        }
-        return dart.equals(response, 1);
-      }, dynamicTobool$()));
-    }
-    existsSync() {
-      let result = io._Directory._exists(this.path);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Exists failed", this.path, result));
-      }
-      return dart.equals(result, 1);
-    }
-    get absolute() {
-      return io.Directory.new(this[_absolutePath]);
-    }
-    stat() {
-      return io.FileStat.stat(this.path);
-    }
-    statSync() {
-      return io.FileStat.statSync(this.path);
-    }
-    [_computeExistingIndex](dirsToCreate) {
-      let future = null;
-      let notFound = dirsToCreate[dartx.length];
-      for (let i = 0; i < dart.notNull(dirsToCreate[dartx.length]); i++) {
-        if (future == null) {
-          future = dart.dsend(dart.dsend(dirsToCreate[dartx._get](i), 'exists'), 'then', dart.fn(e => dart.test(e) ? i : notFound, dynamicToint()));
-        } else {
-          future = dart.dsend(future, 'then', dart.fn(index => {
-            if (!dart.equals(index, notFound)) {
-              return async.Future.value(index);
-            }
-            return dart.dsend(dart.dsend(dirsToCreate[dartx._get](i), 'exists'), 'then', dart.fn(e => dart.test(e) ? i : notFound, dynamicToint()));
-          }, dynamicTodynamic$()));
-        }
-      }
-      if (future == null) {
-        return FutureOfint().value(notFound);
-      } else {
-        return FutureOfint()._check(future);
-      }
-    }
-    create(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        return this.exists().then(io.Directory)(dart.fn(exists => {
-          if (dart.test(exists)) return this;
-          if (this.path != this.parent.path) {
-            return this.parent.create({recursive: true}).then(io.Directory)(dart.fn(_ => this.create(), DirectoryToFutureOfDirectory()));
-          } else {
-            return this.create();
+  }
+  static get executableArguments() {
+    return io._Platform._executableArguments();
+  }
+  static get environment() {
+    if (io._Platform._environmentCache == null) {
+      let env = io._Platform._environment();
+      if (!io.OSError.is(env)) {
+        let isWindows = io._Platform.operatingSystem == 'windows';
+        let result = isWindows ? new io._CaseInsensitiveStringMap() : core.Map.new();
+        for (let str of core.Iterable._check(env)) {
+          let equalsIndex = dart.dsend(str, 'indexOf', '=');
+          if (dart.test(dart.dsend(equalsIndex, '>', 0))) {
+            result[dartx._set](dart.dsend(str, 'substring', 0, equalsIndex), dart.dsend(str, 'substring', dart.dsend(equalsIndex, '+', 1)));
           }
-        }, boolToFutureOrOfDirectory()));
+        }
+        io._Platform._environmentCache = new (UnmodifiableMapViewOfString$String())(MapOfString$String()._check(result));
       } else {
-        return io._IOService._dispatch(io._DIRECTORY_CREATE, JSArrayOfString().of([this.path])).then(io._Directory)(dart.fn(response => {
-          if (dart.test(this[_isErrorResponse](response))) {
-            dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation failed"));
-          }
-          return this;
-        }, dynamicTo_Directory()));
+        io._Platform._environmentCache = env;
       }
     }
-    createSync(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        if (dart.test(this.existsSync())) return;
-        if (this.path != this.parent.path) {
-          this.parent.createSync({recursive: true});
-        }
-      }
-      let result = io._Directory._create(this.path);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Creation failed", this.path, result));
-      }
+    if (io.OSError.is(io._Platform._environmentCache)) {
+      dart.throw(io._Platform._environmentCache);
+    } else {
+      return MapOfString$String()._check(io._Platform._environmentCache);
     }
-    static get systemTemp() {
-      return io.Directory.new(io._Directory._systemTemp());
-    }
-    createTemp(prefix) {
-      if (prefix === void 0) prefix = null;
-      if (prefix == null) prefix = '';
-      if (this.path == '') {
-        dart.throw(new core.ArgumentError("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
-      }
-      let fullPrefix = null;
-      if (dart.test(this.path[dartx.endsWith]('/')) || dart.test(io.Platform.isWindows) && dart.test(this.path[dartx.endsWith]('\\'))) {
-        fullPrefix = dart.str`${this.path}${prefix}`;
-      } else {
-        fullPrefix = dart.str`${this.path}${io.Platform.pathSeparator}${prefix}`;
-      }
-      return io._IOService._dispatch(io._DIRECTORY_CREATE_TEMP, JSArrayOfString().of([fullPrefix])).then(io.Directory)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionOrErrorFromResponse](response, "Creation of temporary directory failed"));
-        }
-        return io.Directory.new(core.String._check(response));
-      }, dynamicToDirectory()));
-    }
-    createTempSync(prefix) {
-      if (prefix === void 0) prefix = null;
-      if (prefix == null) prefix = '';
-      if (this.path == '') {
-        dart.throw(new core.ArgumentError("Directory.createTemp called with an empty path. " + "To use the system temp directory, use Directory.systemTemp"));
-      }
-      let fullPrefix = null;
-      if (dart.test(this.path[dartx.endsWith]('/')) || dart.test(io.Platform.isWindows) && dart.test(this.path[dartx.endsWith]('\\'))) {
-        fullPrefix = dart.str`${this.path}${prefix}`;
-      } else {
-        fullPrefix = dart.str`${this.path}${io.Platform.pathSeparator}${prefix}`;
-      }
-      let result = io._Directory._createTemp(fullPrefix);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Creation of temporary directory failed", fullPrefix, result));
-      }
-      return io.Directory.new(core.String._check(result));
-    }
-    [_delete](opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      return io._IOService._dispatch(io._DIRECTORY_DELETE, JSArrayOfObject().of([this.path, recursive])).then(io._Directory)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionOrErrorFromResponse](response, "Deletion failed"));
-        }
-        return this;
-      }, dynamicTo_Directory()));
-    }
-    [_deleteSync](opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      let result = io._Directory._deleteNative(this.path, recursive);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Deletion failed", this.path, result));
-      }
-    }
-    rename(newPath) {
-      return io._IOService._dispatch(io._DIRECTORY_RENAME, JSArrayOfString().of([this.path, newPath])).then(io.Directory)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionOrErrorFromResponse](response, "Rename failed"));
-        }
-        return io.Directory.new(newPath);
-      }, dynamicToDirectory()));
-    }
-    renameSync(newPath) {
-      if (!(typeof newPath == 'string')) {
-        dart.throw(new core.ArgumentError());
-      }
-      let result = io._Directory._rename(this.path, newPath);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("Rename failed", this.path, result));
-      }
-      return io.Directory.new(newPath);
-    }
-    list(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
-      return StreamOfFileSystemEntity()._check(new io._AsyncDirectoryLister(io.FileSystemEntity._ensureTrailingPathSeparators(this.path), recursive, followLinks).stream);
-    }
-    listSync(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      let followLinks = opts && 'followLinks' in opts ? opts.followLinks : true;
-      if (!(typeof recursive == 'boolean') || !(typeof followLinks == 'boolean')) {
-        dart.throw(new core.ArgumentError());
-      }
-      let result = JSArrayOfFileSystemEntity().of([]);
-      io._Directory._fillWithDirectoryListing(result, io.FileSystemEntity._ensureTrailingPathSeparators(this.path), recursive, followLinks);
-      return result;
-    }
-    toString() {
-      return dart.str`Directory: '${this.path}'`;
-    }
-    [_isErrorResponse](response) {
-      return core.List.is(response) && !dart.equals(response[dartx._get](0), io._SUCCESS_RESPONSE);
-    }
-    [_exceptionOrErrorFromResponse](response, message) {
-      dart.assert(this[_isErrorResponse](response));
-      switch (dart.dindex(response, io._ERROR_RESPONSE_ERROR_TYPE)) {
-        case io._ILLEGAL_ARGUMENT_RESPONSE:
-        {
-          return new core.ArgumentError();
-        }
-        case io._OSERROR_RESPONSE:
-        {
-          let err = new io.OSError(core.String._check(dart.dindex(response, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(response, io._OSERROR_RESPONSE_ERROR_CODE)));
-          return new io.FileSystemException(message, this.path, err);
-        }
-        default:
-        {
-          return core.Exception.new("Unknown error");
-        }
-      }
-    }
-  };
-  io._Directory[dart.implements] = () => [io.Directory];
-  dart.setSignature(io._Directory, {
-    constructors: () => ({new: dart.definiteFunctionType(io._Directory, [core.String])}),
-    fields: () => ({path: core.String}),
-    getters: () => ({absolute: dart.definiteFunctionType(io.Directory, [])}),
-    methods: () => ({
-      exists: dart.definiteFunctionType(async.Future$(core.bool), []),
-      existsSync: dart.definiteFunctionType(core.bool, []),
-      stat: dart.definiteFunctionType(async.Future$(io.FileStat), []),
-      statSync: dart.definiteFunctionType(io.FileStat, []),
-      [_computeExistingIndex]: dart.definiteFunctionType(async.Future$(core.int), [core.List]),
-      create: dart.definiteFunctionType(async.Future$(io.Directory), [], {recursive: core.bool}),
-      createSync: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
-      createTemp: dart.definiteFunctionType(async.Future$(io.Directory), [], [core.String]),
-      createTempSync: dart.definiteFunctionType(io.Directory, [], [core.String]),
-      [_delete]: dart.definiteFunctionType(async.Future$(io.Directory), [], {recursive: core.bool}),
-      [_deleteSync]: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
-      rename: dart.definiteFunctionType(async.Future$(io.Directory), [core.String]),
-      renameSync: dart.definiteFunctionType(io.Directory, [core.String]),
-      list: dart.definiteFunctionType(async.Stream$(io.FileSystemEntity), [], {recursive: core.bool, followLinks: core.bool}),
-      listSync: dart.definiteFunctionType(core.List$(io.FileSystemEntity), [], {recursive: core.bool, followLinks: core.bool}),
-      [_isErrorResponse]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [_exceptionOrErrorFromResponse]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String])
-    }),
-    sgetters: () => ({
-      current: dart.definiteFunctionType(io.Directory, []),
-      systemTemp: dart.definiteFunctionType(io.Directory, [])
-    }),
-    ssetters: () => ({current: dart.definiteFunctionType(dart.void, [dart.dynamic])}),
-    statics: () => ({
-      _current: dart.definiteFunctionType(dart.dynamic, []),
-      _setCurrent: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _createTemp: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _systemTemp: dart.definiteFunctionType(core.String, []),
-      _exists: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _create: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _deleteNative: dart.definiteFunctionType(dart.dynamic, [core.String, core.bool]),
-      _rename: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      _fillWithDirectoryListing: dart.definiteFunctionType(dart.void, [ListOfFileSystemEntity(), core.String, core.bool, core.bool])
-    }),
-    names: ['_current', '_setCurrent', '_createTemp', '_systemTemp', '_exists', '_create', '_deleteNative', '_rename', '_fillWithDirectoryListing']
-  });
-  io._AsyncDirectoryListerOps = class _AsyncDirectoryListerOps extends core.Object {
-    static new(pointer) {
-      dart.throw(new core.UnsupportedError("Directory._list"));
-    }
-  };
-  dart.setSignature(io._AsyncDirectoryListerOps, {
-    constructors: () => ({new: dart.definiteFunctionType(io._AsyncDirectoryListerOps, [core.int])})
-  });
-  const _ops = Symbol('_ops');
-  const _pointer = Symbol('_pointer');
-  const _cleanup = Symbol('_cleanup');
-  io._AsyncDirectoryLister = class _AsyncDirectoryLister extends core.Object {
-    new(path, recursive, followLinks) {
-      this.closeCompleter = async.Completer.new();
-      this.path = path;
-      this.recursive = recursive;
-      this.followLinks = followLinks;
-      this.controller = null;
-      this.canceled = false;
-      this.nextRunning = false;
-      this.closed = false;
-      this[_ops] = null;
-      this.controller = async.StreamController.new({onListen: dart.bind(this, 'onListen'), onResume: dart.bind(this, 'onResume'), onCancel: dart.bind(this, 'onCancel'), sync: true});
-    }
-    [_pointer]() {
-      return this[_ops] == null ? null : this[_ops].getPointer();
-    }
-    get stream() {
-      return this.controller.stream;
-    }
-    onListen() {
-      io._IOService._dispatch(io._DIRECTORY_LIST_START, JSArrayOfObject().of([this.path, this.recursive, this.followLinks])).then(dart.dynamic)(dart.fn(response => {
-        if (typeof response == 'number') {
-          this[_ops] = io._AsyncDirectoryListerOps.new(response);
-          this.next();
-        } else if (core.Error.is(response)) {
-          this.controller.addError(response, response.stackTrace);
-          this.close();
-        } else {
-          this.error(response);
-          this.close();
-        }
-      }, dynamicToNull$()));
-    }
-    onResume() {
-      if (!dart.test(this.nextRunning)) {
-        this.next();
-      }
-    }
-    onCancel() {
-      this.canceled = true;
-      if (!dart.test(this.nextRunning)) {
-        this.close();
-      }
-      return this.closeCompleter.future;
-    }
-    next() {
-      if (dart.test(this.canceled)) {
-        this.close();
-        return;
-      }
-      if (dart.test(this.controller.isPaused) || dart.test(this.nextRunning)) {
-        return;
-      }
-      let pointer = this[_pointer]();
-      if (pointer == null) {
-        return;
-      }
-      this.nextRunning = true;
-      io._IOService._dispatch(io._DIRECTORY_LIST_NEXT, JSArrayOfint().of([pointer])).then(dart.dynamic)(dart.fn(result => {
-        this.nextRunning = false;
-        if (core.List.is(result)) {
-          this.next();
-          dart.assert(result[dartx.length][dartx['%']](2) == 0);
-          for (let i = 0; i < dart.notNull(result[dartx.length]); i++) {
-            dart.assert(i[dartx['%']](2) == 0);
-            switch (result[dartx._get](i++)) {
-              case io._AsyncDirectoryLister.LIST_FILE:
-              {
-                this.controller.add(io.File.new(core.String._check(result[dartx._get](i))));
-                break;
-              }
-              case io._AsyncDirectoryLister.LIST_DIRECTORY:
-              {
-                this.controller.add(io.Directory.new(core.String._check(result[dartx._get](i))));
-                break;
-              }
-              case io._AsyncDirectoryLister.LIST_LINK:
-              {
-                this.controller.add(io.Link.new(core.String._check(result[dartx._get](i))));
-                break;
-              }
-              case io._AsyncDirectoryLister.LIST_ERROR:
-              {
-                this.error(result[dartx._get](i));
-                break;
-              }
-              case io._AsyncDirectoryLister.LIST_DONE:
-              {
-                this.canceled = true;
-                return;
-              }
-            }
-          }
-        } else {
-          this.controller.addError(new io.FileSystemException("Internal error"));
-        }
-      }, dynamicToNull$()));
-    }
-    [_cleanup]() {
-      this.controller.close();
-      this.closeCompleter.complete();
-      this[_ops] = null;
-    }
-    close() {
-      if (dart.test(this.closed)) {
-        return;
-      }
-      if (dart.test(this.nextRunning)) {
-        return;
-      }
-      this.closed = true;
-      let pointer = this[_pointer]();
-      if (pointer == null) {
-        this[_cleanup]();
-      } else {
-        io._IOService._dispatch(io._DIRECTORY_LIST_STOP, JSArrayOfint().of([pointer])).whenComplete(dart.bind(this, _cleanup));
-      }
-    }
-    error(message) {
-      let errorType = dart.dindex(dart.dindex(message, io._AsyncDirectoryLister.RESPONSE_ERROR), io._ERROR_RESPONSE_ERROR_TYPE);
-      if (dart.equals(errorType, io._ILLEGAL_ARGUMENT_RESPONSE)) {
-        this.controller.addError(new core.ArgumentError());
-      } else if (dart.equals(errorType, io._OSERROR_RESPONSE)) {
-        let responseError = dart.dindex(message, io._AsyncDirectoryLister.RESPONSE_ERROR);
-        let err = new io.OSError(core.String._check(dart.dindex(responseError, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(responseError, io._OSERROR_RESPONSE_ERROR_CODE)));
-        let errorPath = dart.dindex(message, io._AsyncDirectoryLister.RESPONSE_PATH);
-        if (errorPath == null) errorPath = this.path;
-        this.controller.addError(new io.FileSystemException("Directory listing failed", core.String._check(errorPath), err));
-      } else {
-        this.controller.addError(new io.FileSystemException("Internal error"));
-      }
-    }
-  };
-  dart.setSignature(io._AsyncDirectoryLister, {
-    constructors: () => ({new: dart.definiteFunctionType(io._AsyncDirectoryLister, [core.String, core.bool, core.bool])}),
-    fields: () => ({
-      path: core.String,
-      recursive: core.bool,
-      followLinks: core.bool,
-      controller: async.StreamController,
-      canceled: core.bool,
-      nextRunning: core.bool,
-      closed: core.bool,
-      [_ops]: io._AsyncDirectoryListerOps,
-      closeCompleter: async.Completer
-    }),
-    getters: () => ({stream: dart.definiteFunctionType(async.Stream, [])}),
-    methods: () => ({
-      [_pointer]: dart.definiteFunctionType(core.int, []),
-      onListen: dart.definiteFunctionType(dart.void, []),
-      onResume: dart.definiteFunctionType(dart.void, []),
-      onCancel: dart.definiteFunctionType(async.Future, []),
-      next: dart.definiteFunctionType(dart.void, []),
-      [_cleanup]: dart.definiteFunctionType(dart.void, []),
-      close: dart.definiteFunctionType(dart.void, []),
-      error: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    }),
-    sfields: () => ({
-      LIST_FILE: core.int,
-      LIST_DIRECTORY: core.int,
-      LIST_LINK: core.int,
-      LIST_ERROR: core.int,
-      LIST_DONE: core.int,
-      RESPONSE_TYPE: core.int,
-      RESPONSE_PATH: core.int,
-      RESPONSE_COMPLETE: core.int,
-      RESPONSE_ERROR: core.int
-    })
-  });
-  io._AsyncDirectoryLister.LIST_FILE = 0;
-  io._AsyncDirectoryLister.LIST_DIRECTORY = 1;
-  io._AsyncDirectoryLister.LIST_LINK = 2;
-  io._AsyncDirectoryLister.LIST_ERROR = 3;
-  io._AsyncDirectoryLister.LIST_DONE = 4;
-  io._AsyncDirectoryLister.RESPONSE_TYPE = 0;
-  io._AsyncDirectoryLister.RESPONSE_PATH = 1;
-  io._AsyncDirectoryLister.RESPONSE_COMPLETE = 1;
-  io._AsyncDirectoryLister.RESPONSE_ERROR = 2;
-  io._EventHandler = class _EventHandler extends core.Object {
-    static _sendData(sender, sendPort, data) {
-      dart.throw(new core.UnsupportedError("EventHandler._sendData"));
-    }
-  };
-  dart.setSignature(io._EventHandler, {
-    statics: () => ({_sendData: dart.definiteFunctionType(dart.void, [core.Object, isolate.SendPort, core.int])}),
-    names: ['_sendData']
-  });
-  const _mode = Symbol('_mode');
-  io.FileMode = class FileMode extends core.Object {
-    _internal(mode) {
-      this[_mode] = mode;
-    }
-  };
-  dart.defineNamedConstructor(io.FileMode, '_internal');
-  dart.setSignature(io.FileMode, {
-    constructors: () => ({_internal: dart.definiteFunctionType(io.FileMode, [core.int])}),
-    fields: () => ({[_mode]: core.int}),
-    sfields: () => ({
-      READ: io.FileMode,
-      WRITE: io.FileMode,
-      APPEND: io.FileMode,
-      WRITE_ONLY: io.FileMode,
-      WRITE_ONLY_APPEND: io.FileMode
-    })
-  });
-  dart.defineLazy(io.FileMode, {
-    get READ() {
-      return dart.const(new io.FileMode._internal(0));
-    },
-    get WRITE() {
-      return dart.const(new io.FileMode._internal(1));
-    },
-    get APPEND() {
-      return dart.const(new io.FileMode._internal(2));
-    },
-    get WRITE_ONLY() {
-      return dart.const(new io.FileMode._internal(3));
-    },
-    get WRITE_ONLY_APPEND() {
-      return dart.const(new io.FileMode._internal(4));
-    }
-  });
-  io.READ = io.FileMode.READ;
-  io.WRITE = io.FileMode.WRITE;
-  io.APPEND = io.FileMode.APPEND;
-  io.WRITE_ONLY = io.FileMode.WRITE_ONLY;
-  io.WRITE_ONLY_APPEND = io.FileMode.WRITE_ONLY_APPEND;
-  io.FileLock = class FileLock extends core.Object {
-    new(index) {
-      this.index = index;
-    }
-    toString() {
-      return {
-        0: "FileLock.SHARED",
-        1: "FileLock.EXCLUSIVE"
-      }[this.index];
-    }
-  };
-  dart.setSignature(io.FileLock, {
-    fields: () => ({index: core.int})
-  });
-  dart.defineEnumValues(io.FileLock, [
-    'SHARED',
-    'EXCLUSIVE'
-  ]);
-  io.File = class File extends core.Object {
-    static new(path) {
-      return new io._File(path);
-    }
-    static fromUri(uri) {
-      return io.File.new(uri.toFilePath());
-    }
-  };
-  io.File[dart.implements] = () => [io.FileSystemEntity];
-  dart.setSignature(io.File, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.File, [core.String]),
-      fromUri: dart.definiteFunctionType(io.File, [core.Uri])
-    })
-  });
-  io.RandomAccessFile = class RandomAccessFile extends core.Object {};
-  io.FileSystemException = class FileSystemException extends core.Object {
-    new(message, path, osError) {
-      if (message === void 0) message = "";
-      if (path === void 0) path = "";
-      if (osError === void 0) osError = null;
-      this.message = message;
-      this.path = path;
-      this.osError = osError;
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      sb.write("FileSystemException");
-      if (!dart.test(this.message[dartx.isEmpty])) {
-        sb.write(dart.str`: ${this.message}`);
-        if (this.path != null) {
-          sb.write(dart.str`, path = '${this.path}'`);
-        }
-        if (this.osError != null) {
-          sb.write(dart.str` (${this.osError})`);
-        }
-      } else if (this.osError != null) {
-        sb.write(dart.str`: ${this.osError}`);
-        if (this.path != null) {
-          sb.write(dart.str`, path = '${this.path}'`);
-        }
-      } else if (this.path != null) {
-        sb.write(dart.str`: ${this.path}`);
-      }
-      return sb.toString();
-    }
-  };
-  io.FileSystemException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.FileSystemException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.FileSystemException, [], [core.String, core.String, io.OSError])}),
-    fields: () => ({
-      message: core.String,
-      path: core.String,
-      osError: io.OSError
-    })
-  });
-  io._BLOCK_SIZE = 64 * 1024;
-  const _closeCompleter = Symbol('_closeCompleter');
-  const _path$ = Symbol('_path');
-  const _position$0 = Symbol('_position');
-  const _end$0 = Symbol('_end');
-  const _controller$0 = Symbol('_controller');
-  const _openedFile = Symbol('_openedFile');
-  const _unsubscribed = Symbol('_unsubscribed');
-  const _readInProgress = Symbol('_readInProgress');
-  const _atEnd = Symbol('_atEnd');
-  const _setupController = Symbol('_setupController');
-  const _start$2 = Symbol('_start');
-  const _readBlock = Symbol('_readBlock');
-  const _closeFile = Symbol('_closeFile');
-  io._FileStream = class _FileStream extends async.Stream$(core.List$(core.int)) {
-    new(path, position, end) {
-      this[_closeCompleter] = async.Completer.new();
-      this[_path$] = path;
-      this[_position$0] = position;
-      this[_end$0] = end;
-      this[_controller$0] = null;
-      this[_openedFile] = null;
-      this[_unsubscribed] = false;
-      this[_readInProgress] = true;
-      this[_closed] = false;
-      this[_atEnd] = false;
-      super.new();
-      if (this[_position$0] == null) this[_position$0] = 0;
-    }
-    forStdin() {
-      this[_closeCompleter] = async.Completer.new();
-      this[_position$0] = 0;
-      this[_controller$0] = null;
-      this[_path$] = null;
-      this[_openedFile] = null;
-      this[_end$0] = null;
-      this[_unsubscribed] = false;
-      this[_readInProgress] = true;
-      this[_closed] = false;
-      this[_atEnd] = false;
-      super.new();
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      this[_setupController]();
-      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    [_setupController]() {
-      this[_controller$0] = StreamControllerOfListOfint().new({sync: true, onListen: dart.bind(this, _start$2), onResume: dart.bind(this, _readBlock), onCancel: dart.fn(() => {
-          this[_unsubscribed] = true;
-          return this[_closeFile]();
-        }, VoidToFuture())});
-    }
-    [_closeFile]() {
-      if (dart.test(this[_readInProgress]) || dart.test(this[_closed])) {
-        return this[_closeCompleter].future;
-      }
-      this[_closed] = true;
-      const done = (function() {
-        this[_closeCompleter].complete();
-        this[_controller$0].close();
-      }).bind(this);
-      dart.fn(done, VoidTovoid$());
-      this[_openedFile].close().catchError(dart.bind(this[_controller$0], 'addError')).whenComplete(done);
-      return this[_closeCompleter].future;
-    }
-    [_readBlock]() {
-      if (dart.test(this[_readInProgress])) return;
-      if (dart.test(this[_atEnd])) {
-        this[_closeFile]();
-        return;
-      }
-      this[_readInProgress] = true;
-      let readBytes = io._BLOCK_SIZE;
-      if (this[_end$0] != null) {
-        readBytes = math.min(core.int)(readBytes, dart.notNull(this[_end$0]) - dart.notNull(this[_position$0]));
-        if (dart.notNull(readBytes) < 0) {
-          this[_readInProgress] = false;
-          if (!dart.test(this[_unsubscribed])) {
-            this[_controller$0].addError(new core.RangeError(dart.str`Bad end position: ${this[_end$0]}`));
-            this[_closeFile]();
-            this[_unsubscribed] = true;
-          }
-          return;
-        }
-      }
-      this[_openedFile].read(readBytes).then(dart.dynamic)(dart.fn(block => {
-        this[_readInProgress] = false;
-        if (dart.test(this[_unsubscribed])) {
-          this[_closeFile]();
-          return;
-        }
-        this[_position$0] = dart.notNull(this[_position$0]) + dart.notNull(block[dartx.length]);
-        if (dart.notNull(block[dartx.length]) < dart.notNull(readBytes) || this[_end$0] != null && this[_position$0] == this[_end$0]) {
-          this[_atEnd] = true;
-        }
-        if (!dart.test(this[_atEnd]) && !dart.test(this[_controller$0].isPaused)) {
-          this[_readBlock]();
-        }
-        this[_controller$0].add(block);
-        if (dart.test(this[_atEnd])) {
-          this[_closeFile]();
-        }
-      }, ListOfintToNull())).catchError(dart.fn((e, s) => {
-        if (!dart.test(this[_unsubscribed])) {
-          this[_controller$0].addError(e, core.StackTrace._check(s));
-          this[_closeFile]();
-          this[_unsubscribed] = true;
-        }
-      }, dynamicAnddynamicToNull()));
-    }
-    [_start$2]() {
-      if (dart.notNull(this[_position$0]) < 0) {
-        this[_controller$0].addError(new core.RangeError(dart.str`Bad start position: ${this[_position$0]}`));
-        this[_controller$0].close();
-        this[_closeCompleter].complete();
-        return;
-      }
-      const onReady = (function(file) {
-        this[_openedFile] = file;
-        this[_readInProgress] = false;
-        this[_readBlock]();
-      }).bind(this);
-      dart.fn(onReady, RandomAccessFileTovoid());
-      const onOpenFile = (function(file) {
-        if (dart.notNull(this[_position$0]) > 0) {
-          file.setPosition(this[_position$0]).then(dart.void)(onReady, {onError: dart.fn((e, s) => {
-              this[_controller$0].addError(e, core.StackTrace._check(s));
-              this[_readInProgress] = false;
-              this[_closeFile]();
-            }, dynamicAnddynamicToNull())});
-        } else {
-          onReady(file);
-        }
-      }).bind(this);
-      dart.fn(onOpenFile, RandomAccessFileTovoid());
-      const openFailed = (function(error, stackTrace) {
-        this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
-        this[_controller$0].close();
-        this[_closeCompleter].complete();
-      }).bind(this);
-      dart.fn(openFailed, dynamicAnddynamicTovoid$());
-      if (this[_path$] != null) {
-        io.File.new(this[_path$]).open({mode: io.FileMode.READ}).then(dart.void)(onOpenFile, {onError: openFailed});
-      } else {
-        try {
-          onOpenFile(io._File._openStdioSync(0));
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          openFailed(e, s);
-        }
-
-      }
-    }
-  };
-  dart.addSimpleTypeTests(io._FileStream);
-  dart.defineNamedConstructor(io._FileStream, 'forStdin');
-  dart.setSignature(io._FileStream, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._FileStream, [core.String, core.int, core.int]),
-      forStdin: dart.definiteFunctionType(io._FileStream, [])
-    }),
-    fields: () => ({
-      [_controller$0]: StreamControllerOfListOfint(),
-      [_path$]: core.String,
-      [_openedFile]: io.RandomAccessFile,
-      [_position$0]: core.int,
-      [_end$0]: core.int,
-      [_closeCompleter]: async.Completer,
-      [_unsubscribed]: core.bool,
-      [_readInProgress]: core.bool,
-      [_closed]: core.bool,
-      [_atEnd]: core.bool
-    }),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      [_setupController]: dart.definiteFunctionType(dart.void, []),
-      [_closeFile]: dart.definiteFunctionType(async.Future, []),
-      [_readBlock]: dart.definiteFunctionType(dart.void, []),
-      [_start$2]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _file = Symbol('_file');
-  const _openFuture = Symbol('_openFuture');
-  io._FileStreamConsumer = class _FileStreamConsumer extends async.StreamConsumer$(core.List$(core.int)) {
-    new(file, mode) {
-      this[_file] = file;
-      this[_openFuture] = null;
-      this[_openFuture] = this[_file].open({mode: mode});
-    }
-    fromStdio(fd) {
-      this[_file] = null;
-      this[_openFuture] = null;
-      dart.assert(1 <= dart.notNull(fd) && dart.notNull(fd) <= 2);
-      this[_openFuture] = FutureOfRandomAccessFile().value(io._File._openStdioSync(fd));
-    }
-    addStream(stream) {
-      let completer = CompleterOfFile().sync();
-      this[_openFuture].then(dart.dynamic)(dart.fn(openedFile => {
-        let _subscription = null;
-        function error(e, stackTrace) {
-          if (stackTrace === void 0) stackTrace = null;
-          dart.dsend(_subscription, 'cancel');
-          openedFile.close();
-          completer.completeError(e, stackTrace);
-        }
-        dart.fn(error, dynamic__Tovoid());
-        _subscription = stream.listen(dart.fn(d => {
-          dart.dsend(_subscription, 'pause');
-          try {
-            openedFile.writeFrom(d, 0, d[dartx.length]).then(dart.dynamic)(dart.fn(_ => dart.dsend(_subscription, 'resume'), RandomAccessFileToFutureOr()), {onError: error});
-          } catch (e) {
-            let stackTrace = dart.stackTrace(e);
-            error(e, stackTrace);
-          }
-
-        }, ListOfintToNull()), {onDone: dart.fn(() => {
-            completer.complete(this[_file]);
-          }, VoidToNull()), onError: error, cancelOnError: true});
-      }, RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
-      return completer.future;
-    }
-    close() {
-      return this[_openFuture].then(io.File)(dart.fn(openedFile => openedFile.close(), RandomAccessFileToFutureOfRandomAccessFile()));
-    }
-  };
-  dart.addSimpleTypeTests(io._FileStreamConsumer);
-  dart.defineNamedConstructor(io._FileStreamConsumer, 'fromStdio');
-  dart.setSignature(io._FileStreamConsumer, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._FileStreamConsumer, [io.File, io.FileMode]),
-      fromStdio: dart.definiteFunctionType(io._FileStreamConsumer, [core.int])
-    }),
-    fields: () => ({
-      [_file]: io.File,
-      [_openFuture]: FutureOfRandomAccessFile()
-    }),
-    methods: () => ({
-      addStream: dart.definiteFunctionType(async.Future$(io.File), [StreamOfListOfint()]),
-      close: dart.definiteFunctionType(async.Future$(io.File), [])
-    })
-  });
-  const _tryDecode = Symbol('_tryDecode');
-  let const$54;
-  let const$55;
-  io._File = class _File extends io.FileSystemEntity {
-    new(path) {
-      this.path = path;
-      if (!(typeof this.path == 'string')) {
-        dart.throw(new core.ArgumentError(dart.str`${core.Error.safeToString(this.path)} ` + 'is not a String'));
-      }
-    }
-    exists() {
-      return io._IOService._dispatch(io._FILE_EXISTS, JSArrayOfString().of([this.path])).then(core.bool)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot check existence", this.path));
-        }
-        return FutureOrOfbool()._check(response);
-      }, dynamicToFutureOrOfbool()));
-    }
-    static _exists(path) {
-      dart.throw(new core.UnsupportedError("File._exists"));
-    }
-    existsSync() {
-      let result = io._File._exists(this.path);
-      io._File.throwIfError(result, "Cannot check existence of file", this.path);
-      return core.bool._check(result);
-    }
-    get absolute() {
-      return io.File.new(this[_absolutePath]);
-    }
-    stat() {
-      return io.FileStat.stat(this.path);
-    }
-    statSync() {
-      return io.FileStat.statSync(this.path);
-    }
-    create(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      let result = dart.test(recursive) ? this.parent.create({recursive: true}) : async.Future.value(null);
-      return result.then(dart.dynamic)(dart.fn(_ => io._IOService._dispatch(io._FILE_CREATE, JSArrayOfString().of([this.path])), dynamicToFuture())).then(io._File)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot create file", this.path));
-        }
-        return this;
-      }, dynamicTo_File()));
-    }
-    static _create(path) {
-      dart.throw(new core.UnsupportedError("File._create"));
-    }
-    static _createLink(path, target) {
-      dart.throw(new core.UnsupportedError("File._createLink"));
-    }
-    static _linkTarget(path) {
-      dart.throw(new core.UnsupportedError("File._linkTarget"));
-    }
-    createSync(opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        this.parent.createSync({recursive: true});
-      }
-      let result = io._File._create(this.path);
-      io._File.throwIfError(result, "Cannot create file", this.path);
-    }
-    [_delete](opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        return io.Directory.new(this.path).delete({recursive: true}).then(io._File)(dart.fn(_ => this, FileSystemEntityTo_File()));
-      }
-      return io._IOService._dispatch(io._FILE_DELETE, JSArrayOfString().of([this.path])).then(io._File)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot delete file", this.path));
-        }
-        return this;
-      }, dynamicTo_File()));
-    }
-    static _deleteNative(path) {
-      dart.throw(new core.UnsupportedError("File._deleteNative"));
-    }
-    static _deleteLinkNative(path) {
-      dart.throw(new core.UnsupportedError("File._deleteLinkNative"));
-    }
-    [_deleteSync](opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        return io.Directory.new(this.path).deleteSync({recursive: true});
-      }
-      let result = io._File._deleteNative(this.path);
-      io._File.throwIfError(result, "Cannot delete file", this.path);
-    }
-    rename(newPath) {
-      return io._IOService._dispatch(io._FILE_RENAME, JSArrayOfString().of([this.path, newPath])).then(io.File)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, dart.str`Cannot rename file to '${newPath}'`, this.path));
-        }
-        return io.File.new(newPath);
-      }, dynamicToFile()));
-    }
-    static _rename(oldPath, newPath) {
-      dart.throw(new core.UnsupportedError("File._rename"));
-    }
-    static _renameLink(oldPath, newPath) {
-      dart.throw(new core.UnsupportedError("File._renameLink"));
-    }
-    renameSync(newPath) {
-      let result = io._File._rename(this.path, newPath);
-      io._File.throwIfError(result, dart.str`Cannot rename file to '${newPath}'`, this.path);
-      return io.File.new(newPath);
-    }
-    copy(newPath) {
-      return io._IOService._dispatch(io._FILE_COPY, JSArrayOfString().of([this.path, newPath])).then(io.File)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, dart.str`Cannot copy file to '${newPath}'`, this.path));
-        }
-        return io.File.new(newPath);
-      }, dynamicToFile()));
-    }
-    static _copy(oldPath, newPath) {
-      dart.throw(new core.UnsupportedError("File._copy"));
-    }
-    copySync(newPath) {
-      let result = io._File._copy(this.path, newPath);
-      io._File.throwIfError(result, dart.str`Cannot copy file to '${newPath}'`, this.path);
-      return io.File.new(newPath);
-    }
-    open(opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.READ;
-      if (!dart.equals(mode, io.FileMode.READ) && !dart.equals(mode, io.FileMode.WRITE) && !dart.equals(mode, io.FileMode.APPEND) && !dart.equals(mode, io.FileMode.WRITE_ONLY) && !dart.equals(mode, io.FileMode.WRITE_ONLY_APPEND)) {
-        return FutureOfRandomAccessFile().error(new core.ArgumentError('Invalid file mode for this operation'));
-      }
-      return io._IOService._dispatch(io._FILE_OPEN, JSArrayOfObject().of([this.path, mode[_mode]])).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot open file", this.path));
-        }
-        return new io._RandomAccessFile(core.int._check(response), this.path);
-      }, dynamicTo_RandomAccessFile()));
-    }
-    length() {
-      return io._IOService._dispatch(io._FILE_LENGTH_FROM_PATH, JSArrayOfString().of([this.path])).then(core.int)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot retrieve length of file", this.path));
-        }
-        return FutureOrOfint()._check(response);
-      }, dynamicToFutureOrOfint()));
-    }
-    static _lengthFromPath(path) {
-      dart.throw(new core.UnsupportedError("File._lengthFromPath"));
-    }
-    lengthSync() {
-      let result = io._File._lengthFromPath(this.path);
-      io._File.throwIfError(result, "Cannot retrieve length of file", this.path);
-      return core.int._check(result);
-    }
-    lastModified() {
-      return io._IOService._dispatch(io._FILE_LAST_MODIFIED, JSArrayOfString().of([this.path])).then(core.DateTime)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "Cannot retrieve modification time", this.path));
-        }
-        return new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(response));
-      }, dynamicToDateTime()));
-    }
-    static _lastModified(path) {
-      dart.throw(new core.UnsupportedError("File._lastModified"));
-    }
-    lastModifiedSync() {
-      let ms = io._File._lastModified(this.path);
-      io._File.throwIfError(ms, "Cannot retrieve modification time", this.path);
-      return new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(ms));
-    }
-    static _open(path, mode) {
-      dart.throw(new core.UnsupportedError("File._open"));
-    }
-    openSync(opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.READ;
-      if (!dart.equals(mode, io.FileMode.READ) && !dart.equals(mode, io.FileMode.WRITE) && !dart.equals(mode, io.FileMode.APPEND) && !dart.equals(mode, io.FileMode.WRITE_ONLY) && !dart.equals(mode, io.FileMode.WRITE_ONLY_APPEND)) {
-        dart.throw(new core.ArgumentError('Invalid file mode for this operation'));
-      }
-      let id = io._File._open(this.path, mode[_mode]);
-      io._File.throwIfError(id, "Cannot open file", this.path);
-      return new io._RandomAccessFile(core.int._check(id), this.path);
-    }
-    static _openStdio(fd) {
-      dart.throw(new core.UnsupportedError("File._openStdio"));
-    }
-    static _openStdioSync(fd) {
-      let id = io._File._openStdio(fd);
-      if (id == 0) {
-        dart.throw(new io.FileSystemException(dart.str`Cannot open stdio file for: ${fd}`));
-      }
-      return new io._RandomAccessFile(id, "");
-    }
-    openRead(start, end) {
-      if (start === void 0) start = null;
-      if (end === void 0) end = null;
-      return new io._FileStream(this.path, start, end);
-    }
-    openWrite(opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      if (!dart.equals(mode, io.FileMode.WRITE) && !dart.equals(mode, io.FileMode.APPEND) && !dart.equals(mode, io.FileMode.WRITE_ONLY) && !dart.equals(mode, io.FileMode.WRITE_ONLY_APPEND)) {
-        dart.throw(new core.ArgumentError('Invalid file mode for this operation'));
-      }
-      let consumer = new io._FileStreamConsumer(this, mode);
-      return io.IOSink.new(consumer, {encoding: encoding});
-    }
-    readAsBytes() {
-      function readDataChunked(file) {
-        let builder = io.BytesBuilder.new({copy: false});
-        let completer = async.Completer.new();
-        function read() {
-          dart.dsend(dart.dsend(file, 'read', io._BLOCK_SIZE), 'then', dart.fn(data => {
-            if (dart.test(dart.dsend(dart.dload(data, 'length'), '>', 0))) {
-              builder.add(ListOfint()._check(data));
-              read();
-            } else {
-              completer.complete(builder.takeBytes());
-            }
-          }, dynamicToNull$()), {onError: dart.bind(completer, 'completeError')});
-        }
-        dart.fn(read, VoidTovoid$());
-        read();
-        return FutureOfListOfint()._check(completer.future);
-      }
-      dart.fn(readDataChunked, dynamicToFutureOfListOfint());
-      return this.open().then(ListOfint())(dart.fn(file => file.length().then(ListOfint())(dart.fn(length => {
-        if (length == 0) {
-          return readDataChunked(file);
-        }
-        return file.read(length);
-      }, intToFutureOfListOfint())).whenComplete(dart.bind(file, 'close')), RandomAccessFileToFutureOfListOfint()));
-    }
-    readAsBytesSync() {
-      let opened = this.openSync();
-      try {
-        let data = null;
-        let length = opened.lengthSync();
-        if (length == 0) {
-          let builder = io.BytesBuilder.new({copy: false});
-          do {
-            data = opened.readSync(io._BLOCK_SIZE);
-            if (dart.test(dart.dsend(dart.dload(data, 'length'), '>', 0))) builder.add(ListOfint()._check(data));
-          } while (dart.test(dart.dsend(dart.dload(data, 'length'), '>', 0)));
-          data = builder.takeBytes();
-        } else {
-          data = opened.readSync(length);
-        }
-        return ListOfint()._check(data);
-      } finally {
-        opened.closeSync();
-      }
-    }
-    [_tryDecode](bytes, encoding) {
-      try {
-        return encoding.decode(bytes);
-      } catch (_) {
-        dart.throw(new io.FileSystemException(dart.str`Failed to decode data using encoding '${encoding.name}'`, this.path));
-      }
-
-    }
-    readAsString(opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return this.readAsBytes().then(core.String)(dart.fn(bytes => this[_tryDecode](bytes, encoding), ListOfintToString()));
-    }
-    readAsStringSync(opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return this[_tryDecode](this.readAsBytesSync(), encoding);
-    }
-    readAsLines(opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return this.readAsString({encoding: encoding}).then(ListOfString())(dart.bind(const$54 || (const$54 = dart.const(new convert.LineSplitter())), 'convert'));
-    }
-    readAsLinesSync(opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return (const$55 || (const$55 = dart.const(new convert.LineSplitter()))).convert(this.readAsStringSync({encoding: encoding}));
-    }
-    writeAsBytes(bytes, opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
-      let flush = opts && 'flush' in opts ? opts.flush : false;
-      return this.open({mode: mode}).then(io.File)(dart.fn(file => file.writeFrom(bytes, 0, bytes[dartx.length]).then(dart.dynamic)(dart.fn(_ => {
-        if (dart.test(flush)) return file.flush().then(io._File)(dart.fn(_ => this, RandomAccessFileTo_File()));
-        return this;
-      }, RandomAccessFileToObject())).whenComplete(dart.bind(file, 'close')), RandomAccessFileToFutureOrOfFile()));
-    }
-    writeAsBytesSync(bytes, opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
-      let flush = opts && 'flush' in opts ? opts.flush : false;
-      let opened = this.openSync({mode: mode});
-      try {
-        opened.writeFromSync(bytes, 0, bytes[dartx.length]);
-        if (dart.test(flush)) opened.flushSync();
-      } finally {
-        opened.closeSync();
-      }
-    }
-    writeAsString(contents, opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      let flush = opts && 'flush' in opts ? opts.flush : false;
-      try {
-        return this.writeAsBytes(encoding.encode(contents), {mode: mode, flush: flush});
-      } catch (e) {
-        return FutureOfFile().error(e);
-      }
-
-    }
-    writeAsStringSync(contents, opts) {
-      let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      let flush = opts && 'flush' in opts ? opts.flush : false;
-      this.writeAsBytesSync(encoding.encode(contents), {mode: mode, flush: flush});
-    }
-    toString() {
-      return dart.str`File: '${this.path}'`;
-    }
-    static throwIfError(result, msg, path) {
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException(msg, path, result));
-      }
-    }
-  };
-  io._File[dart.implements] = () => [io.File];
-  dart.setSignature(io._File, {
-    constructors: () => ({new: dart.definiteFunctionType(io._File, [core.String])}),
-    fields: () => ({path: core.String}),
-    getters: () => ({absolute: dart.definiteFunctionType(io.File, [])}),
-    methods: () => ({
-      exists: dart.definiteFunctionType(async.Future$(core.bool), []),
-      existsSync: dart.definiteFunctionType(core.bool, []),
-      stat: dart.definiteFunctionType(async.Future$(io.FileStat), []),
-      statSync: dart.definiteFunctionType(io.FileStat, []),
-      create: dart.definiteFunctionType(async.Future$(io.File), [], {recursive: core.bool}),
-      createSync: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
-      [_delete]: dart.definiteFunctionType(async.Future$(io.File), [], {recursive: core.bool}),
-      [_deleteSync]: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
-      rename: dart.definiteFunctionType(async.Future$(io.File), [core.String]),
-      renameSync: dart.definiteFunctionType(io.File, [core.String]),
-      copy: dart.definiteFunctionType(async.Future$(io.File), [core.String]),
-      copySync: dart.definiteFunctionType(io.File, [core.String]),
-      open: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [], {mode: io.FileMode}),
-      length: dart.definiteFunctionType(async.Future$(core.int), []),
-      lengthSync: dart.definiteFunctionType(core.int, []),
-      lastModified: dart.definiteFunctionType(async.Future$(core.DateTime), []),
-      lastModifiedSync: dart.definiteFunctionType(core.DateTime, []),
-      openSync: dart.definiteFunctionType(io.RandomAccessFile, [], {mode: io.FileMode}),
-      openRead: dart.definiteFunctionType(async.Stream$(core.List$(core.int)), [], [core.int, core.int]),
-      openWrite: dart.definiteFunctionType(io.IOSink, [], {mode: io.FileMode, encoding: convert.Encoding}),
-      readAsBytes: dart.definiteFunctionType(async.Future$(core.List$(core.int)), []),
-      readAsBytesSync: dart.definiteFunctionType(core.List$(core.int), []),
-      [_tryDecode]: dart.definiteFunctionType(core.String, [ListOfint(), convert.Encoding]),
-      readAsString: dart.definiteFunctionType(async.Future$(core.String), [], {encoding: convert.Encoding}),
-      readAsStringSync: dart.definiteFunctionType(core.String, [], {encoding: convert.Encoding}),
-      readAsLines: dart.definiteFunctionType(async.Future$(core.List$(core.String)), [], {encoding: convert.Encoding}),
-      readAsLinesSync: dart.definiteFunctionType(core.List$(core.String), [], {encoding: convert.Encoding}),
-      writeAsBytes: dart.definiteFunctionType(async.Future$(io.File), [ListOfint()], {mode: io.FileMode, flush: core.bool}),
-      writeAsBytesSync: dart.definiteFunctionType(dart.void, [ListOfint()], {mode: io.FileMode, flush: core.bool}),
-      writeAsString: dart.definiteFunctionType(async.Future$(io.File), [core.String], {mode: io.FileMode, encoding: convert.Encoding, flush: core.bool}),
-      writeAsStringSync: dart.definiteFunctionType(dart.void, [core.String], {mode: io.FileMode, encoding: convert.Encoding, flush: core.bool})
-    }),
-    statics: () => ({
-      _exists: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _create: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _createLink: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      _linkTarget: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _deleteNative: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _deleteLinkNative: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _rename: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      _renameLink: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      _copy: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      _lengthFromPath: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _lastModified: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      _open: dart.definiteFunctionType(dart.dynamic, [core.String, core.int]),
-      _openStdio: dart.definiteFunctionType(core.int, [core.int]),
-      _openStdioSync: dart.definiteFunctionType(io.RandomAccessFile, [core.int]),
-      throwIfError: dart.definiteFunctionType(dart.dynamic, [core.Object, core.String, core.String])
-    }),
-    names: ['_exists', '_create', '_createLink', '_linkTarget', '_deleteNative', '_deleteLinkNative', '_rename', '_renameLink', '_copy', '_lengthFromPath', '_lastModified', '_open', '_openStdio', '_openStdioSync', 'throwIfError']
-  });
-  io._RandomAccessFileOps = class _RandomAccessFileOps extends core.Object {
-    static new(pointer) {
-      dart.throw(new core.UnsupportedError("RandomAccessFile"));
-    }
-  };
-  dart.setSignature(io._RandomAccessFileOps, {
-    constructors: () => ({new: dart.definiteFunctionType(io._RandomAccessFileOps, [core.int])})
-  });
-  const _asyncDispatched = Symbol('_asyncDispatched');
-  const _fileService = Symbol('_fileService');
-  const _resourceInfo = Symbol('_resourceInfo');
-  const _maybeConnectHandler = Symbol('_maybeConnectHandler');
-  const _maybePerformCleanup = Symbol('_maybePerformCleanup');
-  const _dispatch = Symbol('_dispatch');
-  const _checkAvailable = Symbol('_checkAvailable');
-  io._RandomAccessFile = class _RandomAccessFile extends core.Object {
-    new(pointer, path) {
-      this.path = path;
-      this[_asyncDispatched] = false;
-      this[_fileService] = null;
-      this[_resourceInfo] = null;
-      this[_ops] = null;
-      this.closed = false;
-      this[_ops] = io._RandomAccessFileOps.new(pointer);
-      this[_resourceInfo] = new io._FileResourceInfo(this);
-      this[_maybeConnectHandler]();
-    }
-    [_maybePerformCleanup]() {
-      if (dart.test(this.closed)) {
-        io._FileResourceInfo.FileClosed(this[_resourceInfo]);
-      }
-    }
-    [_maybeConnectHandler]() {
-      if (!dart.test(io._RandomAccessFile._connectedResourceHandler)) {
-        developer.registerExtension('ext.dart.io.getOpenFiles', io._FileResourceInfo.getOpenFiles);
-        developer.registerExtension('ext.dart.io.getFileByID', io._FileResourceInfo.getFileInfoMapByID);
-        io._RandomAccessFile._connectedResourceHandler = true;
-      }
-    }
-    close() {
-      return this[_dispatch](io._FILE_CLOSE, [null], {markClosed: true}).then(io._RandomAccessFile)(dart.fn(result => {
-        if (!dart.equals(result, -1)) {
-          this.closed = dart.test(this.closed) || dart.equals(result, 0);
-          this[_maybePerformCleanup]();
-          return this;
-        } else {
-          dart.throw(new io.FileSystemException("Cannot close file", this.path));
-        }
-      }, dynamicTo_RandomAccessFile()));
-    }
-    closeSync() {
-      this[_checkAvailable]();
-      let id = this[_ops].close();
-      if (id == -1) {
-        dart.throw(new io.FileSystemException("Cannot close file", this.path));
-      }
-      this.closed = dart.test(this.closed) || id == 0;
-      this[_maybePerformCleanup]();
-    }
-    readByte() {
-      return this[_dispatch](io._FILE_READ_BYTE, [null]).then(core.int)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "readByte failed", this.path));
-        }
-        this[_resourceInfo].addRead(1);
-        return FutureOrOfint()._check(response);
-      }, dynamicToFutureOrOfint()));
-    }
-    readByteSync() {
-      this[_checkAvailable]();
-      let result = this[_ops].readByte();
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("readByte failed", this.path, result));
-      }
-      this[_resourceInfo].addRead(1);
-      return core.int._check(result);
-    }
-    read(bytes) {
-      if (!(typeof bytes == 'number')) {
-        dart.throw(new core.ArgumentError(bytes));
-      }
-      return this[_dispatch](io._FILE_READ, JSArrayOfint().of([null, bytes])).then(ListOfint())(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "read failed", this.path));
-        }
-        this[_resourceInfo].addRead(core.int._check(dart.dload(dart.dindex(response, 1), 'length')));
-        return FutureOrOfListOfint()._check(dart.dindex(response, 1));
-      }, dynamicToFutureOrOfListOfint()));
-    }
-    readSync(bytes) {
-      this[_checkAvailable]();
-      if (!(typeof bytes == 'number')) {
-        dart.throw(new core.ArgumentError(bytes));
-      }
-      let result = this[_ops].read(bytes);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("readSync failed", this.path, result));
-      }
-      this[_resourceInfo].addRead(core.int._check(dart.dload(result, 'length')));
-      return ListOfint()._check(result);
-    }
-    readInto(buffer, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError());
-      }
-      end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
-      if (end == start) {
-        return FutureOfint().value(0);
-      }
-      let length = dart.notNull(end) - dart.notNull(start);
-      return this[_dispatch](io._FILE_READ_INTO, JSArrayOfint().of([null, length])).then(core.int)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "readInto failed", this.path));
-        }
-        let read = dart.dindex(response, 1);
-        let data = dart.dindex(response, 2);
-        buffer[dartx.setRange](start, dart.asInt(dart.notNull(start) + dart.notNull(core.num._check(read))), IterableOfint()._check(data));
-        this[_resourceInfo].addRead(core.int._check(read));
-        return FutureOrOfint()._check(read);
-      }, dynamicToFutureOrOfint()));
-    }
-    readIntoSync(buffer, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      this[_checkAvailable]();
-      if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError());
-      }
-      end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
-      if (end == start) {
-        return 0;
-      }
-      let result = this[_ops].readInto(buffer, start, end);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("readInto failed", this.path, result));
-      }
-      this[_resourceInfo].addRead(core.int._check(result));
-      return core.int._check(result);
-    }
-    writeByte(value) {
-      if (!(typeof value == 'number')) {
-        dart.throw(new core.ArgumentError(value));
-      }
-      return this[_dispatch](io._FILE_WRITE_BYTE, JSArrayOfint().of([null, value])).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "writeByte failed", this.path));
-        }
-        this[_resourceInfo].addWrite(1);
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    writeByteSync(value) {
-      this[_checkAvailable]();
-      if (!(typeof value == 'number')) {
-        dart.throw(new core.ArgumentError(value));
-      }
-      let result = this[_ops].writeByte(value);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("writeByte failed", this.path, result));
-      }
-      this[_resourceInfo].addWrite(1);
-      return core.int._check(result);
-    }
-    writeFrom(buffer, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError("Invalid arguments to writeFrom"));
-      }
-      end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
-      if (end == start) {
-        return FutureOfRandomAccessFile().value(this);
-      }
-      let result = null;
-      try {
-        result = io._ensureFastAndSerializableByteData(buffer, start, end);
-      } catch (e) {
-        return FutureOfRandomAccessFile().error(e);
-      }
-
-      let request = core.List.new(4);
-      request[dartx._set](0, null);
-      request[dartx._set](1, result.buffer);
-      request[dartx._set](2, result.start);
-      request[dartx._set](3, dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
-      return this[_dispatch](io._FILE_WRITE_FROM, request).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "writeFrom failed", this.path));
-        }
-        this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(result.start)));
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    writeFromSync(buffer, start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = null;
-      this[_checkAvailable]();
-      if (!core.List.is(buffer) || start != null && !(typeof start == 'number') || end != null && !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError("Invalid arguments to writeFromSync"));
-      }
-      end = core.RangeError.checkValidRange(start, end, buffer[dartx.length]);
-      if (end == start) {
-        return;
-      }
-      let bufferAndStart = io._ensureFastAndSerializableByteData(buffer, start, end);
-      let result = this[_ops].writeFrom(ListOfint()._check(bufferAndStart.buffer), bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("writeFrom failed", this.path, result));
-      }
-      this[_resourceInfo].addWrite(dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
-    }
-    writeString(string, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      if (!convert.Encoding.is(encoding)) {
-        dart.throw(new core.ArgumentError(encoding));
-      }
-      let data = encoding.encode(string);
-      return this.writeFrom(data, 0, data[dartx.length]);
-    }
-    writeStringSync(string, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      if (!convert.Encoding.is(encoding)) {
-        dart.throw(new core.ArgumentError(encoding));
-      }
-      let data = encoding.encode(string);
-      this.writeFromSync(data, 0, data[dartx.length]);
-    }
-    position() {
-      return this[_dispatch](io._FILE_POSITION, [null]).then(core.int)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "position failed", this.path));
-        }
-        return FutureOrOfint()._check(response);
-      }, dynamicToFutureOrOfint()));
-    }
-    positionSync() {
-      this[_checkAvailable]();
-      let result = this[_ops].position();
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("position failed", this.path, result));
-      }
-      return core.int._check(result);
-    }
-    setPosition(position) {
-      return this[_dispatch](io._FILE_SET_POSITION, JSArrayOfint().of([null, position])).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "setPosition failed", this.path));
-        }
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    setPositionSync(position) {
-      this[_checkAvailable]();
-      let result = this[_ops].setPosition(position);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("setPosition failed", this.path, result));
-      }
-    }
-    truncate(length) {
-      return this[_dispatch](io._FILE_TRUNCATE, JSArrayOfint().of([null, length])).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "truncate failed", this.path));
-        }
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    truncateSync(length) {
-      this[_checkAvailable]();
-      let result = this[_ops].truncate(length);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("truncate failed", this.path, result));
-      }
-    }
-    length() {
-      return this[_dispatch](io._FILE_LENGTH, [null]).then(core.int)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "length failed", this.path));
-        }
-        return FutureOrOfint()._check(response);
-      }, dynamicToFutureOrOfint()));
-    }
-    lengthSync() {
-      this[_checkAvailable]();
-      let result = this[_ops].length();
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("length failed", this.path, result));
-      }
-      return core.int._check(result);
-    }
-    flush() {
-      return this[_dispatch](io._FILE_FLUSH, [null]).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, "flush failed", this.path));
-        }
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    flushSync() {
-      this[_checkAvailable]();
-      let result = this[_ops].flush();
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException("flush failed", this.path, result));
-      }
-    }
-    lock(mode, start, end) {
-      if (mode === void 0) mode = io.FileLock.EXCLUSIVE;
-      if (start === void 0) start = 0;
-      if (end === void 0) end = -1;
-      if (!io.FileLock.is(mode) || !(typeof start == 'number') || !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError());
-      }
-      if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end != -1 && dart.notNull(start) >= dart.notNull(end)) {
-        dart.throw(new core.ArgumentError());
-      }
-      let lock = dart.equals(mode, io.FileLock.EXCLUSIVE) ? io._RandomAccessFile.LOCK_EXCLUSIVE : io._RandomAccessFile.LOCK_SHARED;
-      return this[_dispatch](io._FILE_LOCK, JSArrayOfint().of([null, lock, start, end])).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, 'lock failed', this.path));
-        }
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    unlock(start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = -1;
-      if (!(typeof start == 'number') || !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError());
-      }
-      if (start == end) {
-        dart.throw(new core.ArgumentError());
-      }
-      return this[_dispatch](io._FILE_LOCK, JSArrayOfint().of([null, io._RandomAccessFile.LOCK_UNLOCK, start, end])).then(io._RandomAccessFile)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          dart.throw(io._exceptionFromResponse(response, 'unlock failed', this.path));
-        }
-        return this;
-      }, dynamicTo_RandomAccessFile()));
-    }
-    lockSync(mode, start, end) {
-      if (mode === void 0) mode = io.FileLock.EXCLUSIVE;
-      if (start === void 0) start = 0;
-      if (end === void 0) end = -1;
-      this[_checkAvailable]();
-      if (!io.FileLock.is(mode) || !(typeof start == 'number') || !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError());
-      }
-      if (dart.notNull(start) < 0 || dart.notNull(end) < -1 || end != -1 && dart.notNull(start) >= dart.notNull(end)) {
-        dart.throw(new core.ArgumentError());
-      }
-      let lock = dart.equals(mode, io.FileLock.EXCLUSIVE) ? io._RandomAccessFile.LOCK_EXCLUSIVE : io._RandomAccessFile.LOCK_SHARED;
-      let result = this[_ops].lock(lock, start, end);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException('lock failed', this.path, result));
-      }
-    }
-    unlockSync(start, end) {
-      if (start === void 0) start = 0;
-      if (end === void 0) end = -1;
-      this[_checkAvailable]();
-      if (!(typeof start == 'number') || !(typeof end == 'number')) {
-        dart.throw(new core.ArgumentError());
-      }
-      if (start == end) {
-        dart.throw(new core.ArgumentError());
-      }
-      let result = this[_ops].lock(io._RandomAccessFile.LOCK_UNLOCK, start, end);
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException('unlock failed', this.path, result));
-      }
-    }
-    [_pointer]() {
-      return this[_ops].getPointer();
-    }
-    [_dispatch](request, data, opts) {
-      let markClosed = opts && 'markClosed' in opts ? opts.markClosed : false;
-      if (dart.test(this.closed)) {
-        return async.Future.error(new io.FileSystemException("File closed", this.path));
-      }
-      if (dart.test(this[_asyncDispatched])) {
-        let msg = "An async operation is currently pending";
-        return async.Future.error(new io.FileSystemException(msg, this.path));
-      }
-      if (dart.test(markClosed)) {
-        this.closed = true;
-      }
-      this[_asyncDispatched] = true;
-      data[dartx._set](0, this[_pointer]());
-      return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
-        this[_asyncDispatched] = false;
-      }, VoidToNull()));
-    }
-    [_checkAvailable]() {
-      if (dart.test(this[_asyncDispatched])) {
-        dart.throw(new io.FileSystemException("An async operation is currently pending", this.path));
-      }
-      if (dart.test(this.closed)) {
-        dart.throw(new io.FileSystemException("File closed", this.path));
-      }
-    }
-  };
-  io._RandomAccessFile[dart.implements] = () => [io.RandomAccessFile];
-  dart.setSignature(io._RandomAccessFile, {
-    constructors: () => ({new: dart.definiteFunctionType(io._RandomAccessFile, [core.int, core.String])}),
-    fields: () => ({
-      path: core.String,
-      [_asyncDispatched]: core.bool,
-      [_fileService]: isolate.SendPort,
-      [_resourceInfo]: io._FileResourceInfo,
-      [_ops]: io._RandomAccessFileOps,
-      closed: core.bool
-    }),
-    methods: () => ({
-      [_maybePerformCleanup]: dart.definiteFunctionType(dart.void, []),
-      [_maybeConnectHandler]: dart.definiteFunctionType(dart.dynamic, []),
-      close: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), []),
-      closeSync: dart.definiteFunctionType(dart.void, []),
-      readByte: dart.definiteFunctionType(async.Future$(core.int), []),
-      readByteSync: dart.definiteFunctionType(core.int, []),
-      read: dart.definiteFunctionType(async.Future$(core.List$(core.int)), [core.int]),
-      readSync: dart.definiteFunctionType(core.List$(core.int), [core.int]),
-      readInto: dart.definiteFunctionType(async.Future$(core.int), [ListOfint()], [core.int, core.int]),
-      readIntoSync: dart.definiteFunctionType(core.int, [ListOfint()], [core.int, core.int]),
-      writeByte: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.int]),
-      writeByteSync: dart.definiteFunctionType(core.int, [core.int]),
-      writeFrom: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [ListOfint()], [core.int, core.int]),
-      writeFromSync: dart.definiteFunctionType(dart.void, [ListOfint()], [core.int, core.int]),
-      writeString: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.String], {encoding: convert.Encoding}),
-      writeStringSync: dart.definiteFunctionType(dart.void, [core.String], {encoding: convert.Encoding}),
-      position: dart.definiteFunctionType(async.Future$(core.int), []),
-      positionSync: dart.definiteFunctionType(core.int, []),
-      setPosition: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.int]),
-      setPositionSync: dart.definiteFunctionType(dart.void, [core.int]),
-      truncate: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [core.int]),
-      truncateSync: dart.definiteFunctionType(dart.void, [core.int]),
-      length: dart.definiteFunctionType(async.Future$(core.int), []),
-      lengthSync: dart.definiteFunctionType(core.int, []),
-      flush: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), []),
-      flushSync: dart.definiteFunctionType(dart.void, []),
-      lock: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [], [io.FileLock, core.int, core.int]),
-      unlock: dart.definiteFunctionType(async.Future$(io.RandomAccessFile), [], [core.int, core.int]),
-      lockSync: dart.definiteFunctionType(dart.void, [], [io.FileLock, core.int, core.int]),
-      unlockSync: dart.definiteFunctionType(dart.void, [], [core.int, core.int]),
-      [_pointer]: dart.definiteFunctionType(core.int, []),
-      [_dispatch]: dart.definiteFunctionType(async.Future, [core.int, core.List], {markClosed: core.bool}),
-      [_checkAvailable]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      _connectedResourceHandler: core.bool,
-      LOCK_UNLOCK: core.int,
-      LOCK_SHARED: core.int,
-      LOCK_EXCLUSIVE: core.int
-    })
-  });
-  io._RandomAccessFile._connectedResourceHandler = false;
-  io._RandomAccessFile.LOCK_UNLOCK = 0;
-  io._RandomAccessFile.LOCK_SHARED = 1;
-  io._RandomAccessFile.LOCK_EXCLUSIVE = 2;
-  let const$56;
-  io.FileSystemEntityType = class FileSystemEntityType extends core.Object {
-    _internal(type) {
-      this[_type] = type;
-    }
-    static _lookup(type) {
-      return io.FileSystemEntityType._typeList[dartx._get](type);
-    }
-    toString() {
-      return (const$56 || (const$56 = dart.constList(['FILE', 'DIRECTORY', 'LINK', 'NOT_FOUND'], core.String)))[dartx._get](this[_type]);
-    }
-  };
-  dart.defineNamedConstructor(io.FileSystemEntityType, '_internal');
-  dart.setSignature(io.FileSystemEntityType, {
-    constructors: () => ({_internal: dart.definiteFunctionType(io.FileSystemEntityType, [core.int])}),
-    fields: () => ({[_type]: core.int}),
-    sfields: () => ({
-      FILE: io.FileSystemEntityType,
-      DIRECTORY: io.FileSystemEntityType,
-      LINK: io.FileSystemEntityType,
-      NOT_FOUND: io.FileSystemEntityType,
-      _typeList: ListOfFileSystemEntityType()
-    }),
-    statics: () => ({_lookup: dart.definiteFunctionType(io.FileSystemEntityType, [core.int])}),
-    names: ['_lookup']
-  });
-  dart.defineLazy(io.FileSystemEntityType, {
-    get FILE() {
-      return dart.const(new io.FileSystemEntityType._internal(0));
-    },
-    get DIRECTORY() {
-      return dart.const(new io.FileSystemEntityType._internal(1));
-    },
-    get LINK() {
-      return dart.const(new io.FileSystemEntityType._internal(2));
-    },
-    get NOT_FOUND() {
-      return dart.const(new io.FileSystemEntityType._internal(3));
-    },
-    get _typeList() {
-      return dart.constList([io.FileSystemEntityType.FILE, io.FileSystemEntityType.DIRECTORY, io.FileSystemEntityType.LINK, io.FileSystemEntityType.NOT_FOUND], io.FileSystemEntityType);
-    }
-  });
-  let const$57;
-  io.FileStat = class FileStat extends core.Object {
-    _internal(changed, modified, accessed, type, mode, size) {
-      this.changed = changed;
-      this.modified = modified;
-      this.accessed = accessed;
-      this.type = type;
-      this.mode = mode;
-      this.size = size;
-    }
-    _internalNotFound() {
-      this.changed = null;
-      this.modified = null;
-      this.accessed = null;
-      this.type = io.FileSystemEntityType.NOT_FOUND;
-      this.mode = 0;
-      this.size = -1;
-    }
-    static _statSync(path) {
-      dart.throw(new core.UnsupportedError("FileStat.stat"));
-    }
-    static statSync(path) {
-      if (dart.test(io.Platform.isWindows)) {
-        path = io.FileSystemEntity._trimTrailingPathSeparators(path);
-      }
-      let data = io.FileStat._statSync(path);
-      if (io.OSError.is(data)) return io.FileStat._notFound;
-      return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dindex(data, io.FileStat._CHANGED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dindex(data, io.FileStat._MODIFIED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(dart.dindex(data, io.FileStat._ACCESSED_TIME))), io.FileSystemEntityType._lookup(core.int._check(dart.dindex(data, io.FileStat._TYPE))), core.int._check(dart.dindex(data, io.FileStat._MODE)), core.int._check(dart.dindex(data, io.FileStat._SIZE)));
-    }
-    static stat(path) {
-      if (dart.test(io.Platform.isWindows)) {
-        path = io.FileSystemEntity._trimTrailingPathSeparators(path);
-      }
-      return io._IOService._dispatch(io._FILE_STAT, JSArrayOfString().of([path])).then(io.FileStat)(dart.fn(response => {
-        if (dart.test(io._isErrorResponse(response))) {
-          return io.FileStat._notFound;
-        }
-        let data = core.List._check(dart.dindex(response, 1));
-        return new io.FileStat._internal(new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(data[dartx._get](io.FileStat._CHANGED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(data[dartx._get](io.FileStat._MODIFIED_TIME))), new core.DateTime.fromMillisecondsSinceEpoch(core.int._check(data[dartx._get](io.FileStat._ACCESSED_TIME))), io.FileSystemEntityType._lookup(core.int._check(data[dartx._get](io.FileStat._TYPE))), core.int._check(data[dartx._get](io.FileStat._MODE)), core.int._check(data[dartx._get](io.FileStat._SIZE)));
-      }, dynamicToFileStat()));
-    }
-    toString() {
-      return dart.str`FileStat: type ${this.type}\n          changed ${this.changed}\n          modified ${this.modified}\n          accessed ${this.accessed}\n          mode ${this.modeString()}\n          size ${this.size}`;
-    }
-    modeString() {
-      let permissions = dart.notNull(this.mode) & 4095;
-      let codes = const$57 || (const$57 = dart.constList(['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx'], core.String));
-      let result = [];
-      if ((permissions & 2048) != 0) result[dartx.add]("(suid) ");
-      if ((permissions & 1024) != 0) result[dartx.add]("(guid) ");
-      if ((permissions & 512) != 0) result[dartx.add]("(sticky) ");
-      result[dartx.add](codes[dartx._get](permissions >> 6 & 7));
-      result[dartx.add](codes[dartx._get](permissions >> 3 & 7));
-      result[dartx.add](codes[dartx._get](permissions & 7));
-      return result[dartx.join]();
-    }
-  };
-  dart.defineNamedConstructor(io.FileStat, '_internal');
-  dart.defineNamedConstructor(io.FileStat, '_internalNotFound');
-  dart.setSignature(io.FileStat, {
-    constructors: () => ({
-      _internal: dart.definiteFunctionType(io.FileStat, [core.DateTime, core.DateTime, core.DateTime, io.FileSystemEntityType, core.int, core.int]),
-      _internalNotFound: dart.definiteFunctionType(io.FileStat, [])
-    }),
-    fields: () => ({
-      changed: core.DateTime,
-      modified: core.DateTime,
-      accessed: core.DateTime,
-      type: io.FileSystemEntityType,
-      mode: core.int,
-      size: core.int
-    }),
-    methods: () => ({modeString: dart.definiteFunctionType(core.String, [])}),
-    sfields: () => ({
-      _TYPE: core.int,
-      _CHANGED_TIME: core.int,
-      _MODIFIED_TIME: core.int,
-      _ACCESSED_TIME: core.int,
-      _MODE: core.int,
-      _SIZE: core.int,
-      _notFound: io.FileStat
-    }),
-    statics: () => ({
-      _statSync: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      statSync: dart.definiteFunctionType(io.FileStat, [core.String]),
-      stat: dart.definiteFunctionType(async.Future$(io.FileStat), [core.String])
-    }),
-    names: ['_statSync', 'statSync', 'stat']
-  });
-  io.FileStat._TYPE = 0;
-  io.FileStat._CHANGED_TIME = 1;
-  io.FileStat._MODIFIED_TIME = 2;
-  io.FileStat._ACCESSED_TIME = 3;
-  io.FileStat._MODE = 4;
-  io.FileStat._SIZE = 5;
-  dart.defineLazy(io.FileStat, {
-    get _notFound() {
-      return dart.const(new io.FileStat._internalNotFound());
-    }
-  });
-  io.FileSystemEvent = class FileSystemEvent extends core.Object {
-    _(type, path, isDirectory) {
-      this.type = type;
-      this.path = path;
-      this.isDirectory = isDirectory;
-    }
-  };
-  dart.defineNamedConstructor(io.FileSystemEvent, '_');
-  dart.setSignature(io.FileSystemEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(io.FileSystemEvent, [core.int, core.String, core.bool])}),
-    fields: () => ({
-      type: core.int,
-      path: core.String,
-      isDirectory: core.bool
-    }),
-    sfields: () => ({
-      CREATE: core.int,
-      MODIFY: core.int,
-      DELETE: core.int,
-      MOVE: core.int,
-      ALL: core.int,
-      _MODIFY_ATTRIBUTES: core.int,
-      _DELETE_SELF: core.int,
-      _IS_DIR: core.int
-    })
-  });
-  io.FileSystemEvent.CREATE = 1 << 0;
-  io.FileSystemEvent.MODIFY = 1 << 1;
-  io.FileSystemEvent.DELETE = 1 << 2;
-  io.FileSystemEvent.MOVE = 1 << 3;
-  io.FileSystemEvent._MODIFY_ATTRIBUTES = 1 << 4;
-  io.FileSystemEvent._DELETE_SELF = 1 << 5;
-  io.FileSystemEvent._IS_DIR = 1 << 6;
-  dart.defineLazy(io.FileSystemEvent, {
-    get ALL() {
-      return io.FileSystemEvent.CREATE | io.FileSystemEvent.MODIFY | io.FileSystemEvent.DELETE | io.FileSystemEvent.MOVE;
-    }
-  });
-  io.FileSystemCreateEvent = class FileSystemCreateEvent extends io.FileSystemEvent {
-    _(path, isDirectory) {
-      super._(io.FileSystemEvent.CREATE, core.String._check(path), core.bool._check(isDirectory));
-    }
-    toString() {
-      return dart.str`FileSystemCreateEvent('${this.path}')`;
-    }
-  };
-  dart.defineNamedConstructor(io.FileSystemCreateEvent, '_');
-  dart.setSignature(io.FileSystemCreateEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(io.FileSystemCreateEvent, [dart.dynamic, dart.dynamic])})
-  });
-  io.FileSystemModifyEvent = class FileSystemModifyEvent extends io.FileSystemEvent {
-    _(path, isDirectory, contentChanged) {
-      this.contentChanged = contentChanged;
-      super._(io.FileSystemEvent.MODIFY, core.String._check(path), core.bool._check(isDirectory));
-    }
-    toString() {
-      return dart.str`FileSystemModifyEvent('${this.path}', contentChanged=${this.contentChanged})`;
-    }
-  };
-  dart.defineNamedConstructor(io.FileSystemModifyEvent, '_');
-  dart.setSignature(io.FileSystemModifyEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(io.FileSystemModifyEvent, [dart.dynamic, dart.dynamic, core.bool])}),
-    fields: () => ({contentChanged: core.bool})
-  });
-  io.FileSystemDeleteEvent = class FileSystemDeleteEvent extends io.FileSystemEvent {
-    _(path, isDirectory) {
-      super._(io.FileSystemEvent.DELETE, core.String._check(path), core.bool._check(isDirectory));
-    }
-    toString() {
-      return dart.str`FileSystemDeleteEvent('${this.path}')`;
-    }
-  };
-  dart.defineNamedConstructor(io.FileSystemDeleteEvent, '_');
-  dart.setSignature(io.FileSystemDeleteEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(io.FileSystemDeleteEvent, [dart.dynamic, dart.dynamic])})
-  });
-  io.FileSystemMoveEvent = class FileSystemMoveEvent extends io.FileSystemEvent {
-    _(path, isDirectory, destination) {
-      this.destination = destination;
-      super._(io.FileSystemEvent.MOVE, core.String._check(path), core.bool._check(isDirectory));
-    }
-    toString() {
-      let buffer = new core.StringBuffer();
-      buffer.write(dart.str`FileSystemMoveEvent('${this.path}'`);
-      if (this.destination != null) buffer.write(dart.str`, '${this.destination}'`);
-      buffer.write(')');
-      return buffer.toString();
-    }
-  };
-  dart.defineNamedConstructor(io.FileSystemMoveEvent, '_');
-  dart.setSignature(io.FileSystemMoveEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(io.FileSystemMoveEvent, [dart.dynamic, dart.dynamic, core.String])}),
-    fields: () => ({destination: core.String})
-  });
-  io._FileSystemWatcher = class _FileSystemWatcher extends core.Object {
-    static _watch(path, events, recursive) {
-      dart.throw(new core.UnsupportedError("_FileSystemWatcher.watch"));
-    }
-    static get isSupported() {
-      dart.throw(new core.UnsupportedError("_FileSystemWatcher.isSupported"));
-    }
-  };
-  dart.setSignature(io._FileSystemWatcher, {
-    sgetters: () => ({isSupported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({_watch: dart.definiteFunctionType(async.Stream$(io.FileSystemEvent), [core.String, core.int, core.bool])}),
-    names: ['_watch']
-  });
-  io.HttpStatus = class HttpStatus extends core.Object {};
-  dart.setSignature(io.HttpStatus, {
-    sfields: () => ({
-      CONTINUE: core.int,
-      SWITCHING_PROTOCOLS: core.int,
-      OK: core.int,
-      CREATED: core.int,
-      ACCEPTED: core.int,
-      NON_AUTHORITATIVE_INFORMATION: core.int,
-      NO_CONTENT: core.int,
-      RESET_CONTENT: core.int,
-      PARTIAL_CONTENT: core.int,
-      MULTIPLE_CHOICES: core.int,
-      MOVED_PERMANENTLY: core.int,
-      FOUND: core.int,
-      MOVED_TEMPORARILY: core.int,
-      SEE_OTHER: core.int,
-      NOT_MODIFIED: core.int,
-      USE_PROXY: core.int,
-      TEMPORARY_REDIRECT: core.int,
-      BAD_REQUEST: core.int,
-      UNAUTHORIZED: core.int,
-      PAYMENT_REQUIRED: core.int,
-      FORBIDDEN: core.int,
-      NOT_FOUND: core.int,
-      METHOD_NOT_ALLOWED: core.int,
-      NOT_ACCEPTABLE: core.int,
-      PROXY_AUTHENTICATION_REQUIRED: core.int,
-      REQUEST_TIMEOUT: core.int,
-      CONFLICT: core.int,
-      GONE: core.int,
-      LENGTH_REQUIRED: core.int,
-      PRECONDITION_FAILED: core.int,
-      REQUEST_ENTITY_TOO_LARGE: core.int,
-      REQUEST_URI_TOO_LONG: core.int,
-      UNSUPPORTED_MEDIA_TYPE: core.int,
-      REQUESTED_RANGE_NOT_SATISFIABLE: core.int,
-      EXPECTATION_FAILED: core.int,
-      INTERNAL_SERVER_ERROR: core.int,
-      NOT_IMPLEMENTED: core.int,
-      BAD_GATEWAY: core.int,
-      SERVICE_UNAVAILABLE: core.int,
-      GATEWAY_TIMEOUT: core.int,
-      HTTP_VERSION_NOT_SUPPORTED: core.int,
-      NETWORK_CONNECT_TIMEOUT_ERROR: core.int
-    })
-  });
-  io.HttpStatus.CONTINUE = 100;
-  io.HttpStatus.SWITCHING_PROTOCOLS = 101;
-  io.HttpStatus.OK = 200;
-  io.HttpStatus.CREATED = 201;
-  io.HttpStatus.ACCEPTED = 202;
-  io.HttpStatus.NON_AUTHORITATIVE_INFORMATION = 203;
-  io.HttpStatus.NO_CONTENT = 204;
-  io.HttpStatus.RESET_CONTENT = 205;
-  io.HttpStatus.PARTIAL_CONTENT = 206;
-  io.HttpStatus.MULTIPLE_CHOICES = 300;
-  io.HttpStatus.MOVED_PERMANENTLY = 301;
-  io.HttpStatus.FOUND = 302;
-  io.HttpStatus.MOVED_TEMPORARILY = 302;
-  io.HttpStatus.SEE_OTHER = 303;
-  io.HttpStatus.NOT_MODIFIED = 304;
-  io.HttpStatus.USE_PROXY = 305;
-  io.HttpStatus.TEMPORARY_REDIRECT = 307;
-  io.HttpStatus.BAD_REQUEST = 400;
-  io.HttpStatus.UNAUTHORIZED = 401;
-  io.HttpStatus.PAYMENT_REQUIRED = 402;
-  io.HttpStatus.FORBIDDEN = 403;
-  io.HttpStatus.NOT_FOUND = 404;
-  io.HttpStatus.METHOD_NOT_ALLOWED = 405;
-  io.HttpStatus.NOT_ACCEPTABLE = 406;
-  io.HttpStatus.PROXY_AUTHENTICATION_REQUIRED = 407;
-  io.HttpStatus.REQUEST_TIMEOUT = 408;
-  io.HttpStatus.CONFLICT = 409;
-  io.HttpStatus.GONE = 410;
-  io.HttpStatus.LENGTH_REQUIRED = 411;
-  io.HttpStatus.PRECONDITION_FAILED = 412;
-  io.HttpStatus.REQUEST_ENTITY_TOO_LARGE = 413;
-  io.HttpStatus.REQUEST_URI_TOO_LONG = 414;
-  io.HttpStatus.UNSUPPORTED_MEDIA_TYPE = 415;
-  io.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE = 416;
-  io.HttpStatus.EXPECTATION_FAILED = 417;
-  io.HttpStatus.INTERNAL_SERVER_ERROR = 500;
-  io.HttpStatus.NOT_IMPLEMENTED = 501;
-  io.HttpStatus.BAD_GATEWAY = 502;
-  io.HttpStatus.SERVICE_UNAVAILABLE = 503;
-  io.HttpStatus.GATEWAY_TIMEOUT = 504;
-  io.HttpStatus.HTTP_VERSION_NOT_SUPPORTED = 505;
-  io.HttpStatus.NETWORK_CONNECT_TIMEOUT_ERROR = 599;
-  io.HttpServer = class HttpServer extends core.Object {
-    static bind(address, port, opts) {
-      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
-      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
-      let shared = opts && 'shared' in opts ? opts.shared : false;
-      return io._HttpServer.bind(address, port, backlog, v6Only, shared);
-    }
-    static bindSecure(address, port, context, opts) {
-      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
-      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let shared = opts && 'shared' in opts ? opts.shared : false;
-      return io._HttpServer.bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared);
-    }
-    static listenOn(serverSocket) {
-      return new io._HttpServer.listenOn(serverSocket);
-    }
-  };
-  io.HttpServer[dart.implements] = () => [StreamOfHttpRequest()];
-  dart.setSignature(io.HttpServer, {
-    constructors: () => ({listenOn: dart.definiteFunctionType(io.HttpServer, [io.ServerSocket])}),
-    fields: () => ({
-      serverHeader: core.String,
-      autoCompress: core.bool,
-      idleTimeout: core.Duration
-    }),
-    statics: () => ({
-      bind: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int], {backlog: core.int, v6Only: core.bool, shared: core.bool}),
-      bindSecure: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int, io.SecurityContext], {backlog: core.int, v6Only: core.bool, requestClientCertificate: core.bool, shared: core.bool})
-    }),
-    names: ['bind', 'bindSecure']
-  });
-  io.HttpConnectionsInfo = class HttpConnectionsInfo extends core.Object {
+  }
+  static get version() {
+    return io._Platform._version();
+  }
+};
+dart.setSignature(io._Platform, {
+  sfields: () => ({
+    executable: core.String,
+    resolvedExecutable: core.String,
+    packageRoot: core.String,
+    packageConfig: core.String,
+    _environmentCache: dart.dynamic,
+    script: core.Uri
+  }),
+  sgetters: () => ({
+    numberOfProcessors: dart.definiteFunctionType(core.int, []),
+    pathSeparator: dart.definiteFunctionType(core.String, []),
+    operatingSystem: dart.definiteFunctionType(core.String, []),
+    localHostname: dart.definiteFunctionType(core.String, []),
+    executableArguments: dart.definiteFunctionType(core.List$(core.String), []),
+    environment: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
+    version: dart.definiteFunctionType(core.String, [])
+  }),
+  statics: () => ({
+    _numberOfProcessors: dart.definiteFunctionType(core.int, []),
+    _pathSeparator: dart.definiteFunctionType(core.String, []),
+    _operatingSystem: dart.definiteFunctionType(core.String, []),
+    _localHostname: dart.definiteFunctionType(dart.dynamic, []),
+    _executable: dart.definiteFunctionType(dart.dynamic, []),
+    _resolvedExecutable: dart.definiteFunctionType(dart.dynamic, []),
+    _environment: dart.definiteFunctionType(dart.dynamic, []),
+    _executableArguments: dart.definiteFunctionType(core.List$(core.String), []),
+    _packageRoot: dart.definiteFunctionType(core.String, []),
+    _packageConfig: dart.definiteFunctionType(core.String, []),
+    _version: dart.definiteFunctionType(core.String, [])
+  }),
+  names: ['_numberOfProcessors', '_pathSeparator', '_operatingSystem', '_localHostname', '_executable', '_resolvedExecutable', '_environment', '_executableArguments', '_packageRoot', '_packageConfig', '_version']
+});
+io._Platform._environmentCache = null;
+io._Platform.script = null;
+dart.defineLazy(io._Platform, {
+  get executable() {
+    return core.String._check(io._Platform._executable());
+  },
+  set executable(_) {},
+  get resolvedExecutable() {
+    return core.String._check(io._Platform._resolvedExecutable());
+  },
+  set resolvedExecutable(_) {},
+  get packageRoot() {
+    return io._Platform._packageRoot();
+  },
+  set packageRoot(_) {},
+  get packageConfig() {
+    return io._Platform._packageConfig();
+  },
+  set packageConfig(_) {}
+});
+const _map$1 = Symbol('_map');
+io._CaseInsensitiveStringMap$ = dart.generic(V => {
+  let MapOfString$V = () => (MapOfString$V = dart.constFn(core.Map$(core.String, V)))();
+  let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
+  let StringAndVTovoid = () => (StringAndVTovoid = dart.constFn(dart.functionType(dart.void, [core.String, V])))();
+  class _CaseInsensitiveStringMap extends core.Object {
     new() {
-      this.total = 0;
-      this.active = 0;
-      this.idle = 0;
-      this.closing = 0;
-    }
-  };
-  dart.setSignature(io.HttpConnectionsInfo, {
-    fields: () => ({
-      total: core.int,
-      active: core.int,
-      idle: core.int,
-      closing: core.int
-    })
-  });
-  io.HttpHeaders = class HttpHeaders extends core.Object {
-    new() {
-      this.date = null;
-      this.expires = null;
-      this.ifModifiedSince = null;
-      this.host = null;
-      this.port = null;
-      this.contentType = null;
-      this.contentLength = null;
-      this.persistentConnection = null;
-      this.chunkedTransferEncoding = null;
-    }
-  };
-  dart.setSignature(io.HttpHeaders, {
-    fields: () => ({
-      date: core.DateTime,
-      expires: core.DateTime,
-      ifModifiedSince: core.DateTime,
-      host: core.String,
-      port: core.int,
-      contentType: io.ContentType,
-      contentLength: core.int,
-      persistentConnection: core.bool,
-      chunkedTransferEncoding: core.bool
-    }),
-    sfields: () => ({
-      ACCEPT: core.String,
-      ACCEPT_CHARSET: core.String,
-      ACCEPT_ENCODING: core.String,
-      ACCEPT_LANGUAGE: core.String,
-      ACCEPT_RANGES: core.String,
-      AGE: core.String,
-      ALLOW: core.String,
-      AUTHORIZATION: core.String,
-      CACHE_CONTROL: core.String,
-      CONNECTION: core.String,
-      CONTENT_ENCODING: core.String,
-      CONTENT_LANGUAGE: core.String,
-      CONTENT_LENGTH: core.String,
-      CONTENT_LOCATION: core.String,
-      CONTENT_MD5: core.String,
-      CONTENT_RANGE: core.String,
-      CONTENT_TYPE: core.String,
-      DATE: core.String,
-      ETAG: core.String,
-      EXPECT: core.String,
-      EXPIRES: core.String,
-      FROM: core.String,
-      HOST: core.String,
-      IF_MATCH: core.String,
-      IF_MODIFIED_SINCE: core.String,
-      IF_NONE_MATCH: core.String,
-      IF_RANGE: core.String,
-      IF_UNMODIFIED_SINCE: core.String,
-      LAST_MODIFIED: core.String,
-      LOCATION: core.String,
-      MAX_FORWARDS: core.String,
-      PRAGMA: core.String,
-      PROXY_AUTHENTICATE: core.String,
-      PROXY_AUTHORIZATION: core.String,
-      RANGE: core.String,
-      REFERER: core.String,
-      RETRY_AFTER: core.String,
-      SERVER: core.String,
-      TE: core.String,
-      TRAILER: core.String,
-      TRANSFER_ENCODING: core.String,
-      UPGRADE: core.String,
-      USER_AGENT: core.String,
-      VARY: core.String,
-      VIA: core.String,
-      WARNING: core.String,
-      WWW_AUTHENTICATE: core.String,
-      COOKIE: core.String,
-      SET_COOKIE: core.String,
-      GENERAL_HEADERS: ListOfString(),
-      ENTITY_HEADERS: ListOfString(),
-      RESPONSE_HEADERS: ListOfString(),
-      REQUEST_HEADERS: ListOfString()
-    })
-  });
-  io.HttpHeaders.ACCEPT = "accept";
-  io.HttpHeaders.ACCEPT_CHARSET = "accept-charset";
-  io.HttpHeaders.ACCEPT_ENCODING = "accept-encoding";
-  io.HttpHeaders.ACCEPT_LANGUAGE = "accept-language";
-  io.HttpHeaders.ACCEPT_RANGES = "accept-ranges";
-  io.HttpHeaders.AGE = "age";
-  io.HttpHeaders.ALLOW = "allow";
-  io.HttpHeaders.AUTHORIZATION = "authorization";
-  io.HttpHeaders.CACHE_CONTROL = "cache-control";
-  io.HttpHeaders.CONNECTION = "connection";
-  io.HttpHeaders.CONTENT_ENCODING = "content-encoding";
-  io.HttpHeaders.CONTENT_LANGUAGE = "content-language";
-  io.HttpHeaders.CONTENT_LENGTH = "content-length";
-  io.HttpHeaders.CONTENT_LOCATION = "content-location";
-  io.HttpHeaders.CONTENT_MD5 = "content-md5";
-  io.HttpHeaders.CONTENT_RANGE = "content-range";
-  io.HttpHeaders.CONTENT_TYPE = "content-type";
-  io.HttpHeaders.DATE = "date";
-  io.HttpHeaders.ETAG = "etag";
-  io.HttpHeaders.EXPECT = "expect";
-  io.HttpHeaders.EXPIRES = "expires";
-  io.HttpHeaders.FROM = "from";
-  io.HttpHeaders.HOST = "host";
-  io.HttpHeaders.IF_MATCH = "if-match";
-  io.HttpHeaders.IF_MODIFIED_SINCE = "if-modified-since";
-  io.HttpHeaders.IF_NONE_MATCH = "if-none-match";
-  io.HttpHeaders.IF_RANGE = "if-range";
-  io.HttpHeaders.IF_UNMODIFIED_SINCE = "if-unmodified-since";
-  io.HttpHeaders.LAST_MODIFIED = "last-modified";
-  io.HttpHeaders.LOCATION = "location";
-  io.HttpHeaders.MAX_FORWARDS = "max-forwards";
-  io.HttpHeaders.PRAGMA = "pragma";
-  io.HttpHeaders.PROXY_AUTHENTICATE = "proxy-authenticate";
-  io.HttpHeaders.PROXY_AUTHORIZATION = "proxy-authorization";
-  io.HttpHeaders.RANGE = "range";
-  io.HttpHeaders.REFERER = "referer";
-  io.HttpHeaders.RETRY_AFTER = "retry-after";
-  io.HttpHeaders.SERVER = "server";
-  io.HttpHeaders.TE = "te";
-  io.HttpHeaders.TRAILER = "trailer";
-  io.HttpHeaders.TRANSFER_ENCODING = "transfer-encoding";
-  io.HttpHeaders.UPGRADE = "upgrade";
-  io.HttpHeaders.USER_AGENT = "user-agent";
-  io.HttpHeaders.VARY = "vary";
-  io.HttpHeaders.VIA = "via";
-  io.HttpHeaders.WARNING = "warning";
-  io.HttpHeaders.WWW_AUTHENTICATE = "www-authenticate";
-  io.HttpHeaders.COOKIE = "cookie";
-  io.HttpHeaders.SET_COOKIE = "set-cookie";
-  dart.defineLazy(io.HttpHeaders, {
-    get GENERAL_HEADERS() {
-      return dart.constList([io.HttpHeaders.CACHE_CONTROL, io.HttpHeaders.CONNECTION, io.HttpHeaders.DATE, io.HttpHeaders.PRAGMA, io.HttpHeaders.TRAILER, io.HttpHeaders.TRANSFER_ENCODING, io.HttpHeaders.UPGRADE, io.HttpHeaders.VIA, io.HttpHeaders.WARNING], core.String);
-    },
-    get ENTITY_HEADERS() {
-      return dart.constList([io.HttpHeaders.ALLOW, io.HttpHeaders.CONTENT_ENCODING, io.HttpHeaders.CONTENT_LANGUAGE, io.HttpHeaders.CONTENT_LENGTH, io.HttpHeaders.CONTENT_LOCATION, io.HttpHeaders.CONTENT_MD5, io.HttpHeaders.CONTENT_RANGE, io.HttpHeaders.CONTENT_TYPE, io.HttpHeaders.EXPIRES, io.HttpHeaders.LAST_MODIFIED], core.String);
-    },
-    get RESPONSE_HEADERS() {
-      return dart.constList([io.HttpHeaders.ACCEPT_RANGES, io.HttpHeaders.AGE, io.HttpHeaders.ETAG, io.HttpHeaders.LOCATION, io.HttpHeaders.PROXY_AUTHENTICATE, io.HttpHeaders.RETRY_AFTER, io.HttpHeaders.SERVER, io.HttpHeaders.VARY, io.HttpHeaders.WWW_AUTHENTICATE], core.String);
-    },
-    get REQUEST_HEADERS() {
-      return dart.constList([io.HttpHeaders.ACCEPT, io.HttpHeaders.ACCEPT_CHARSET, io.HttpHeaders.ACCEPT_ENCODING, io.HttpHeaders.ACCEPT_LANGUAGE, io.HttpHeaders.AUTHORIZATION, io.HttpHeaders.EXPECT, io.HttpHeaders.FROM, io.HttpHeaders.HOST, io.HttpHeaders.IF_MATCH, io.HttpHeaders.IF_MODIFIED_SINCE, io.HttpHeaders.IF_NONE_MATCH, io.HttpHeaders.IF_RANGE, io.HttpHeaders.IF_UNMODIFIED_SINCE, io.HttpHeaders.MAX_FORWARDS, io.HttpHeaders.PROXY_AUTHORIZATION, io.HttpHeaders.RANGE, io.HttpHeaders.REFERER, io.HttpHeaders.TE, io.HttpHeaders.USER_AGENT], core.String);
-    }
-  });
-  io.HeaderValue = class HeaderValue extends core.Object {
-    static new(value, parameters) {
-      if (value === void 0) value = "";
-      if (parameters === void 0) parameters = null;
-      return new io._HeaderValue(value, parameters);
-    }
-    static parse(value, opts) {
-      let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
-      let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
-      let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
-      return io._HeaderValue.parse(value, {parameterSeparator: parameterSeparator, valueSeparator: valueSeparator, preserveBackslash: preserveBackslash});
-    }
-  };
-  dart.setSignature(io.HeaderValue, {
-    constructors: () => ({new: dart.definiteFunctionType(io.HeaderValue, [], [core.String, MapOfString$String()])}),
-    statics: () => ({parse: dart.definiteFunctionType(io.HeaderValue, [core.String], {parameterSeparator: core.String, valueSeparator: core.String, preserveBackslash: core.bool})}),
-    names: ['parse']
-  });
-  io.HttpSession = class HttpSession extends core.Object {};
-  io.HttpSession[dart.implements] = () => [core.Map];
-  io.ContentType = class ContentType extends core.Object {
-    static new(primaryType, subType, opts) {
-      let charset = opts && 'charset' in opts ? opts.charset : null;
-      let parameters = opts && 'parameters' in opts ? opts.parameters : null;
-      return new io._ContentType(primaryType, subType, charset, parameters);
-    }
-    static parse(value) {
-      return io._ContentType.parse(value);
-    }
-  };
-  io.ContentType[dart.implements] = () => [io.HeaderValue];
-  dart.setSignature(io.ContentType, {
-    constructors: () => ({new: dart.definiteFunctionType(io.ContentType, [core.String, core.String], {charset: core.String, parameters: MapOfString$String()})}),
-    sfields: () => ({
-      TEXT: io.ContentType,
-      HTML: io.ContentType,
-      JSON: io.ContentType,
-      BINARY: io.ContentType
-    }),
-    statics: () => ({parse: dart.definiteFunctionType(io.ContentType, [core.String])}),
-    names: ['parse']
-  });
-  dart.defineLazy(io.ContentType, {
-    get TEXT() {
-      return io.ContentType.new("text", "plain", {charset: "utf-8"});
-    },
-    get HTML() {
-      return io.ContentType.new("text", "html", {charset: "utf-8"});
-    },
-    get JSON() {
-      return io.ContentType.new("application", "json", {charset: "utf-8"});
-    },
-    get BINARY() {
-      return io.ContentType.new("application", "octet-stream");
-    }
-  });
-  io.Cookie = class Cookie extends core.Object {
-    static new(name, value) {
-      if (name === void 0) name = null;
-      if (value === void 0) value = null;
-      return new io._Cookie(name, value);
-    }
-    static fromSetCookieValue(value) {
-      return new io._Cookie.fromSetCookieValue(value);
-    }
-  };
-  dart.setSignature(io.Cookie, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.Cookie, [], [core.String, core.String]),
-      fromSetCookieValue: dart.definiteFunctionType(io.Cookie, [core.String])
-    }),
-    fields: () => ({
-      name: core.String,
-      value: core.String,
-      expires: core.DateTime,
-      maxAge: core.int,
-      domain: core.String,
-      path: core.String,
-      secure: core.bool,
-      httpOnly: core.bool
-    })
-  });
-  io.HttpRequest = class HttpRequest extends core.Object {};
-  io.HttpRequest[dart.implements] = () => [StreamOfListOfint()];
-  io.HttpResponse = class HttpResponse extends core.Object {
-    new() {
-      this.contentLength = null;
-      this.statusCode = null;
-      this.reasonPhrase = null;
-      this.persistentConnection = null;
-      this.deadline = null;
-      this.bufferOutput = null;
-    }
-  };
-  io.HttpResponse[dart.implements] = () => [io.IOSink];
-  dart.setSignature(io.HttpResponse, {
-    fields: () => ({
-      contentLength: core.int,
-      statusCode: core.int,
-      reasonPhrase: core.String,
-      persistentConnection: core.bool,
-      deadline: core.Duration,
-      bufferOutput: core.bool
-    })
-  });
-  io.HttpClient = class HttpClient extends core.Object {
-    static new(opts) {
-      let context = opts && 'context' in opts ? opts.context : null;
-      return new io._HttpClient(context);
-    }
-    static findProxyFromEnvironment(url, opts) {
-      let environment = opts && 'environment' in opts ? opts.environment : null;
-      return io._HttpClient._findProxyFromEnvironment(url, environment);
-    }
-  };
-  dart.setSignature(io.HttpClient, {
-    constructors: () => ({new: dart.definiteFunctionType(io.HttpClient, [], {context: io.SecurityContext})}),
-    fields: () => ({
-      idleTimeout: core.Duration,
-      maxConnectionsPerHost: core.int,
-      autoUncompress: core.bool,
-      userAgent: core.String
-    }),
-    sfields: () => ({
-      DEFAULT_HTTP_PORT: core.int,
-      DEFAULT_HTTPS_PORT: core.int
-    }),
-    statics: () => ({findProxyFromEnvironment: dart.definiteFunctionType(core.String, [core.Uri], {environment: MapOfString$String()})}),
-    names: ['findProxyFromEnvironment']
-  });
-  io.HttpClient.DEFAULT_HTTP_PORT = 80;
-  io.HttpClient.DEFAULT_HTTPS_PORT = 443;
-  io.HttpClientRequest = class HttpClientRequest extends core.Object {
-    new() {
-      this.persistentConnection = null;
-      this.followRedirects = null;
-      this.maxRedirects = null;
-      this.contentLength = null;
-      this.bufferOutput = null;
-    }
-  };
-  io.HttpClientRequest[dart.implements] = () => [io.IOSink];
-  dart.setSignature(io.HttpClientRequest, {
-    fields: () => ({
-      persistentConnection: core.bool,
-      followRedirects: core.bool,
-      maxRedirects: core.int,
-      contentLength: core.int,
-      bufferOutput: core.bool
-    })
-  });
-  io.HttpClientResponse = class HttpClientResponse extends core.Object {};
-  io.HttpClientResponse[dart.implements] = () => [StreamOfListOfint()];
-  io.HttpClientCredentials = class HttpClientCredentials extends core.Object {};
-  io.HttpClientBasicCredentials = class HttpClientBasicCredentials extends io.HttpClientCredentials {
-    static new(username, password) {
-      return new io._HttpClientBasicCredentials(username, password);
-    }
-  };
-  dart.setSignature(io.HttpClientBasicCredentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io.HttpClientBasicCredentials, [core.String, core.String])})
-  });
-  io.HttpClientDigestCredentials = class HttpClientDigestCredentials extends io.HttpClientCredentials {
-    static new(username, password) {
-      return new io._HttpClientDigestCredentials(username, password);
-    }
-  };
-  dart.setSignature(io.HttpClientDigestCredentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io.HttpClientDigestCredentials, [core.String, core.String])})
-  });
-  io.HttpConnectionInfo = class HttpConnectionInfo extends core.Object {};
-  io.RedirectInfo = class RedirectInfo extends core.Object {};
-  io.DetachedSocket = class DetachedSocket extends core.Object {};
-  io.HttpException = class HttpException extends core.Object {
-    new(message, opts) {
-      let uri = opts && 'uri' in opts ? opts.uri : null;
-      this.message = message;
-      this.uri = uri;
-    }
-    toString() {
-      let b = new core.StringBuffer();
-      b.write('HttpException: ');
-      b.write(this.message);
-      if (this.uri != null) {
-        b.write(dart.str`, uri = ${this.uri}`);
-      }
-      return b.toString();
-    }
-  };
-  io.HttpException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.HttpException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.HttpException, [core.String], {uri: core.Uri})}),
-    fields: () => ({
-      message: core.String,
-      uri: core.Uri
-    })
-  });
-  io.RedirectException = class RedirectException extends core.Object {
-    new(message, redirects) {
-      this.message = message;
-      this.redirects = redirects;
-    }
-    toString() {
-      return dart.str`RedirectException: ${this.message}`;
-    }
-    get uri() {
-      return this.redirects[dartx.last].location;
-    }
-  };
-  io.RedirectException[dart.implements] = () => [io.HttpException];
-  dart.setSignature(io.RedirectException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.RedirectException, [core.String, ListOfRedirectInfo()])}),
-    fields: () => ({
-      message: core.String,
-      redirects: ListOfRedirectInfo()
-    }),
-    getters: () => ({uri: dart.definiteFunctionType(core.Uri, [])})
-  });
-  let const$58;
-  let const$59;
-  let const$60;
-  let const$61;
-  let const$62;
-  let const$63;
-  let const$64;
-  let const$65;
-  let const$66;
-  io.HttpDate = class HttpDate extends core.Object {
-    static format(date) {
-      let wkday = const$58 || (const$58 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
-      let month = const$59 || (const$59 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
-      let d = date.toUtc();
-      let sb = new core.StringBuffer();
-      sb.write(wkday[dartx._get](dart.notNull(d.weekday) - 1));
-      sb.write(", ");
-      sb.write(dart.notNull(d.day) <= 9 ? "0" : "");
-      sb.write(dart.toString(d.day));
-      sb.write(" ");
-      sb.write(month[dartx._get](dart.notNull(d.month) - 1));
-      sb.write(" ");
-      sb.write(dart.toString(d.year));
-      sb.write(dart.notNull(d.hour) <= 9 ? " 0" : " ");
-      sb.write(dart.toString(d.hour));
-      sb.write(dart.notNull(d.minute) <= 9 ? ":0" : ":");
-      sb.write(dart.toString(d.minute));
-      sb.write(dart.notNull(d.second) <= 9 ? ":0" : ":");
-      sb.write(dart.toString(d.second));
-      sb.write(" GMT");
-      return sb.toString();
-    }
-    static parse(date) {
-      let SP = 32;
-      let wkdays = const$60 || (const$60 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
-      let weekdays = const$61 || (const$61 = dart.constList(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], core.String));
-      let months = const$62 || (const$62 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
-      let wkdaysLowerCase = const$63 || (const$63 = dart.constList(["mon", "tue", "wed", "thu", "fri", "sat", "sun"], core.String));
-      let weekdaysLowerCase = const$64 || (const$64 = dart.constList(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], core.String));
-      let monthsLowerCase = const$65 || (const$65 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
-      let formatRfc1123 = 0;
-      let formatRfc850 = 1;
-      let formatAsctime = 2;
-      let index = 0;
-      let tmp = null;
-      let format = null;
-      function expect(s) {
-        if (dart.notNull(date[dartx.length]) - dart.notNull(index) < dart.notNull(s[dartx.length])) {
-          dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-        }
-        let tmp = date[dartx.substring](index, dart.notNull(index) + dart.notNull(s[dartx.length]));
-        if (tmp != s) {
-          dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-        }
-        index = dart.notNull(index) + dart.notNull(s[dartx.length]);
-      }
-      dart.fn(expect, StringTovoid$());
-      function expectWeekday() {
-        let weekday = null;
-        let pos = date[dartx.indexOf](",", index);
-        if (pos == -1) {
-          let pos = date[dartx.indexOf](" ", index);
-          if (pos == -1) dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-          tmp = date[dartx.substring](index, pos);
-          index = dart.notNull(pos) + 1;
-          weekday = wkdays[dartx.indexOf](tmp);
-          if (weekday != -1) {
-            format = formatAsctime;
-            return weekday;
-          }
-        } else {
-          tmp = date[dartx.substring](index, pos);
-          index = dart.notNull(pos) + 1;
-          weekday = wkdays[dartx.indexOf](tmp);
-          if (weekday != -1) {
-            format = formatRfc1123;
-            return weekday;
-          }
-          weekday = weekdays[dartx.indexOf](tmp);
-          if (weekday != -1) {
-            format = formatRfc850;
-            return weekday;
-          }
-        }
-        dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-      }
-      dart.fn(expectWeekday, VoidToint());
-      function expectMonth(separator) {
-        let pos = date[dartx.indexOf](separator, index);
-        if (dart.notNull(pos) - dart.notNull(index) != 3) dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-        tmp = date[dartx.substring](index, pos);
-        index = dart.notNull(pos) + 1;
-        let month = months[dartx.indexOf](tmp);
-        if (month != -1) return month;
-        dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-      }
-      dart.fn(expectMonth, StringToint$());
-      function expectNum(separator) {
-        let pos = null;
-        if (dart.notNull(separator[dartx.length]) > 0) {
-          pos = date[dartx.indexOf](separator, index);
-        } else {
-          pos = date[dartx.length];
-        }
-        let tmp = date[dartx.substring](index, pos);
-        index = dart.notNull(pos) + dart.notNull(separator[dartx.length]);
-        try {
-          let value = core.int.parse(tmp);
-          return value;
-        } catch (e) {
-          if (core.FormatException.is(e)) {
-            dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-          } else
-            throw e;
-        }
-
-      }
-      dart.fn(expectNum, StringToint$());
-      function expectEnd() {
-        if (index != date[dartx.length]) {
-          dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
-        }
-      }
-      dart.fn(expectEnd, VoidTovoid$());
-      let weekday = expectWeekday();
-      let day = null;
-      let month = null;
-      let year = null;
-      let hours = null;
-      let minutes = null;
-      let seconds = null;
-      if (format == formatAsctime) {
-        month = expectMonth(" ");
-        if (date[dartx.codeUnitAt](index) == SP) {
-          index = dart.notNull(index) + 1;
-        }
-        day = expectNum(" ");
-        hours = expectNum(":");
-        minutes = expectNum(":");
-        seconds = expectNum(" ");
-        year = expectNum("");
-      } else {
-        expect(" ");
-        day = expectNum(format == formatRfc1123 ? " " : "-");
-        month = expectMonth(format == formatRfc1123 ? " " : "-");
-        year = expectNum(" ");
-        hours = expectNum(":");
-        minutes = expectNum(":");
-        seconds = expectNum(" ");
-        expect("GMT");
-      }
-      expectEnd();
-      return new core.DateTime.utc(year, dart.notNull(month) + 1, day, hours, minutes, seconds, 0);
-    }
-    static _parseCookieDate(date) {
-      let monthsLowerCase = const$66 || (const$66 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
-      let position = 0;
-      function error() {
-        dart.throw(new io.HttpException(dart.str`Invalid cookie date ${date}`));
-      }
-      dart.fn(error, VoidTovoid$());
-      function isEnd() {
-        return position == date[dartx.length];
-      }
-      dart.fn(isEnd, VoidTobool());
-      function isDelimiter(s) {
-        let char = s[dartx.codeUnitAt](0);
-        if (char == 9) return true;
-        if (dart.notNull(char) >= 32 && dart.notNull(char) <= 47) return true;
-        if (dart.notNull(char) >= 59 && dart.notNull(char) <= 64) return true;
-        if (dart.notNull(char) >= 91 && dart.notNull(char) <= 96) return true;
-        if (dart.notNull(char) >= 123 && dart.notNull(char) <= 126) return true;
-        return false;
-      }
-      dart.fn(isDelimiter, StringTobool$());
-      function isNonDelimiter(s) {
-        let char = s[dartx.codeUnitAt](0);
-        if (dart.notNull(char) >= 0 && dart.notNull(char) <= 8) return true;
-        if (dart.notNull(char) >= 10 && dart.notNull(char) <= 31) return true;
-        if (dart.notNull(char) >= 48 && dart.notNull(char) <= 57) return true;
-        if (char == 58) return true;
-        if (dart.notNull(char) >= 65 && dart.notNull(char) <= 90) return true;
-        if (dart.notNull(char) >= 97 && dart.notNull(char) <= 122) return true;
-        if (dart.notNull(char) >= 127 && dart.notNull(char) <= 255) return true;
-        return false;
-      }
-      dart.fn(isNonDelimiter, StringTobool$());
-      function isDigit(s) {
-        let char = s[dartx.codeUnitAt](0);
-        if (dart.notNull(char) > 47 && dart.notNull(char) < 58) return true;
-        return false;
-      }
-      dart.fn(isDigit, StringTobool$());
-      function getMonth(month) {
-        if (dart.notNull(month[dartx.length]) < 3) return -1;
-        return monthsLowerCase[dartx.indexOf](month[dartx.substring](0, 3));
-      }
-      dart.fn(getMonth, StringToint$());
-      function toInt(s) {
-        let index = 0;
-        for (; index < dart.notNull(s[dartx.length]) && dart.test(isDigit(s[dartx._get](index))); index++)
-          ;
-        return core.int.parse(s[dartx.substring](0, index));
-      }
-      dart.fn(toInt, StringToint$());
-      let tokens = [];
-      while (!dart.test(isEnd())) {
-        while (!dart.test(isEnd()) && dart.test(isDelimiter(date[dartx._get](position))))
-          position++;
-        let start = position;
-        while (!dart.test(isEnd()) && dart.test(isNonDelimiter(date[dartx._get](position))))
-          position++;
-        tokens[dartx.add](date[dartx.substring](start, position)[dartx.toLowerCase]());
-        while (!dart.test(isEnd()) && dart.test(isDelimiter(date[dartx._get](position))))
-          position++;
-      }
-      let timeStr = null;
-      let dayOfMonthStr = null;
-      let monthStr = null;
-      let yearStr = null;
-      for (let token of tokens) {
-        if (dart.test(dart.dsend(dart.dload(token, 'length'), '<', 1))) continue;
-        if (timeStr == null && dart.test(dart.dsend(dart.dload(token, 'length'), '>=', 5)) && dart.test(isDigit(core.String._check(dart.dindex(token, 0)))) && (dart.equals(dart.dindex(token, 1), ":") || dart.test(isDigit(core.String._check(dart.dindex(token, 1)))) && dart.equals(dart.dindex(token, 2), ":"))) {
-          timeStr = core.String._check(token);
-        } else if (dayOfMonthStr == null && dart.test(isDigit(core.String._check(dart.dindex(token, 0))))) {
-          dayOfMonthStr = core.String._check(token);
-        } else if (monthStr == null && dart.notNull(getMonth(core.String._check(token))) >= 0) {
-          monthStr = core.String._check(token);
-        } else if (yearStr == null && dart.test(dart.dsend(dart.dload(token, 'length'), '>=', 2)) && dart.test(isDigit(core.String._check(dart.dindex(token, 0)))) && dart.test(isDigit(core.String._check(dart.dindex(token, 1))))) {
-          yearStr = core.String._check(token);
-        }
-      }
-      if (timeStr == null || dayOfMonthStr == null || monthStr == null || yearStr == null) {
-        error();
-      }
-      let year = toInt(yearStr);
-      if (dart.notNull(year) >= 70 && dart.notNull(year) <= 99) {
-        year = dart.notNull(year) + 1900;
-      } else if (dart.notNull(year) >= 0 && dart.notNull(year) <= 69) {
-        year = dart.notNull(year) + 2000;
-      }
-      if (dart.notNull(year) < 1601) error();
-      let dayOfMonth = toInt(dayOfMonthStr);
-      if (dart.notNull(dayOfMonth) < 1 || dart.notNull(dayOfMonth) > 31) error();
-      let month = dart.notNull(getMonth(monthStr)) + 1;
-      let timeList = timeStr[dartx.split](":");
-      if (timeList[dartx.length] != 3) error();
-      let hour = toInt(timeList[dartx._get](0));
-      let minute = toInt(timeList[dartx._get](1));
-      let second = toInt(timeList[dartx._get](2));
-      if (dart.notNull(hour) > 23) error();
-      if (dart.notNull(minute) > 59) error();
-      if (dart.notNull(second) > 59) error();
-      return new core.DateTime.utc(year, month, dayOfMonth, hour, minute, second, 0);
-    }
-  };
-  dart.setSignature(io.HttpDate, {
-    statics: () => ({
-      format: dart.definiteFunctionType(core.String, [core.DateTime]),
-      parse: dart.definiteFunctionType(core.DateTime, [core.String]),
-      _parseCookieDate: dart.definiteFunctionType(core.DateTime, [core.String])
-    }),
-    names: ['format', 'parse', '_parseCookieDate']
-  });
-  const _headers = Symbol('_headers');
-  const _defaultPortForScheme = Symbol('_defaultPortForScheme');
-  const _mutable = Symbol('_mutable');
-  const _noFoldingHeaders = Symbol('_noFoldingHeaders');
-  const _contentLength = Symbol('_contentLength');
-  const _persistentConnection = Symbol('_persistentConnection');
-  const _chunkedTransferEncoding = Symbol('_chunkedTransferEncoding');
-  const _host$ = Symbol('_host');
-  const _port$ = Symbol('_port');
-  const _checkMutable = Symbol('_checkMutable');
-  const _addAll = Symbol('_addAll');
-  const _add$2 = Symbol('_add');
-  const _set$ = Symbol('_set');
-  const _addValue = Symbol('_addValue');
-  const _updateHostHeader = Symbol('_updateHostHeader');
-  const _addDate = Symbol('_addDate');
-  const _addHost = Symbol('_addHost');
-  const _addExpires = Symbol('_addExpires');
-  const _addConnection = Symbol('_addConnection');
-  const _addContentType = Symbol('_addContentType');
-  const _addContentLength = Symbol('_addContentLength');
-  const _addTransferEncoding = Symbol('_addTransferEncoding');
-  const _addIfModifiedSince = Symbol('_addIfModifiedSince');
-  const _foldHeader = Symbol('_foldHeader');
-  const _finalize = Symbol('_finalize');
-  const _write = Symbol('_write');
-  const _parseCookies = Symbol('_parseCookies');
-  io._HttpHeaders = class _HttpHeaders extends core.Object {
-    new(protocolVersion, opts) {
-      let defaultPortForScheme = opts && 'defaultPortForScheme' in opts ? opts.defaultPortForScheme : io.HttpClient.DEFAULT_HTTP_PORT;
-      let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
-      this.protocolVersion = protocolVersion;
-      this[_headers] = HashMapOfString$ListOfString().new();
-      this[_defaultPortForScheme] = defaultPortForScheme;
-      this[_mutable] = true;
-      this[_noFoldingHeaders] = null;
-      this[_contentLength] = -1;
-      this[_persistentConnection] = true;
-      this[_chunkedTransferEncoding] = false;
-      this[_host$] = null;
-      this[_port$] = null;
-      if (initialHeaders != null) {
-        initialHeaders[_headers][dartx.forEach](dart.fn((name, value) => this[_headers][dartx._set](name, value), StringAndListOfStringToListOfString()));
-        this[_contentLength] = initialHeaders[_contentLength];
-        this[_persistentConnection] = initialHeaders[_persistentConnection];
-        this[_chunkedTransferEncoding] = initialHeaders[_chunkedTransferEncoding];
-        this[_host$] = initialHeaders[_host$];
-        this[_port$] = initialHeaders[_port$];
-      }
-      if (this.protocolVersion == "1.0") {
-        this[_persistentConnection] = false;
-        this[_chunkedTransferEncoding] = false;
-      }
-    }
-    _get(name) {
-      return this[_headers][dartx._get](name[dartx.toLowerCase]());
-    }
-    value(name) {
-      name = name[dartx.toLowerCase]();
-      let values = this[_headers][dartx._get](name);
-      if (values == null) return null;
-      if (dart.notNull(values[dartx.length]) > 1) {
-        dart.throw(new io.HttpException(dart.str`More than one value for header ${name}`));
-      }
-      return values[dartx._get](0);
-    }
-    add(name, value) {
-      this[_checkMutable]();
-      this[_addAll](io._HttpHeaders._validateField(name), value);
-    }
-    [_addAll](name, value) {
-      dart.assert(name == io._HttpHeaders._validateField(name));
-      if (core.Iterable.is(value)) {
-        for (let v of value) {
-          this[_add$2](name, io._HttpHeaders._validateValue(v));
-        }
-      } else {
-        this[_add$2](name, io._HttpHeaders._validateValue(value));
-      }
-    }
-    set(name, value) {
-      this[_checkMutable]();
-      name = io._HttpHeaders._validateField(name);
-      this[_headers][dartx.remove](name);
-      if (name == io.HttpHeaders.TRANSFER_ENCODING) {
-        this[_chunkedTransferEncoding] = false;
-      }
-      this[_addAll](name, value);
-    }
-    remove(name, value) {
-      this[_checkMutable]();
-      name = io._HttpHeaders._validateField(name);
-      value = io._HttpHeaders._validateValue(value);
-      let values = this[_headers][dartx._get](name);
-      if (values != null) {
-        let index = values[dartx.indexOf](core.String._check(value));
-        if (index != -1) {
-          values[dartx.removeRange](index, dart.notNull(index) + 1);
-        }
-        if (values[dartx.length] == 0) this[_headers][dartx.remove](name);
-      }
-      if (name == io.HttpHeaders.TRANSFER_ENCODING && dart.equals(value, "chunked")) {
-        this[_chunkedTransferEncoding] = false;
-      }
-    }
-    removeAll(name) {
-      this[_checkMutable]();
-      name = io._HttpHeaders._validateField(name);
-      this[_headers][dartx.remove](name);
-    }
-    forEach(f) {
-      this[_headers][dartx.forEach](f);
-    }
-    noFolding(name) {
-      if (this[_noFoldingHeaders] == null) this[_noFoldingHeaders] = ListOfString().new();
-      this[_noFoldingHeaders][dartx.add](name);
-    }
-    get persistentConnection() {
-      return this[_persistentConnection];
-    }
-    set persistentConnection(persistentConnection) {
-      this[_checkMutable]();
-      if (persistentConnection == this[_persistentConnection]) return;
-      if (dart.test(persistentConnection)) {
-        if (this.protocolVersion == "1.1") {
-          this.remove(io.HttpHeaders.CONNECTION, "close");
-        } else {
-          if (this[_contentLength] == -1) {
-            dart.throw(new io.HttpException("Trying to set 'Connection: Keep-Alive' on HTTP 1.0 headers with " + "no ContentLength"));
-          }
-          this.add(io.HttpHeaders.CONNECTION, "keep-alive");
-        }
-      } else {
-        if (this.protocolVersion == "1.1") {
-          this.add(io.HttpHeaders.CONNECTION, "close");
-        } else {
-          this.remove(io.HttpHeaders.CONNECTION, "keep-alive");
-        }
-      }
-      this[_persistentConnection] = persistentConnection;
-    }
-    get contentLength() {
-      return this[_contentLength];
-    }
-    set contentLength(contentLength) {
-      this[_checkMutable]();
-      if (this.protocolVersion == "1.0" && dart.test(this.persistentConnection) && contentLength == -1) {
-        dart.throw(new io.HttpException("Trying to clear ContentLength on HTTP 1.0 headers with " + "'Connection: Keep-Alive' set"));
-      }
-      if (this[_contentLength] == contentLength) return;
-      this[_contentLength] = contentLength;
-      if (dart.notNull(this[_contentLength]) >= 0) {
-        if (dart.test(this.chunkedTransferEncoding)) this.chunkedTransferEncoding = false;
-        this[_set$](io.HttpHeaders.CONTENT_LENGTH, dart.toString(contentLength));
-      } else {
-        this.removeAll(io.HttpHeaders.CONTENT_LENGTH);
-        if (this.protocolVersion == "1.1") {
-          this.chunkedTransferEncoding = true;
-        }
-      }
-    }
-    get chunkedTransferEncoding() {
-      return this[_chunkedTransferEncoding];
-    }
-    set chunkedTransferEncoding(chunkedTransferEncoding) {
-      this[_checkMutable]();
-      if (dart.test(chunkedTransferEncoding) && this.protocolVersion == "1.0") {
-        dart.throw(new io.HttpException("Trying to set 'Transfer-Encoding: Chunked' on HTTP 1.0 headers"));
-      }
-      if (chunkedTransferEncoding == this[_chunkedTransferEncoding]) return;
-      if (dart.test(chunkedTransferEncoding)) {
-        let values = this[_headers][dartx._get](io.HttpHeaders.TRANSFER_ENCODING);
-        if (values == null || values[dartx.last] != "chunked") {
-          this[_addValue](io.HttpHeaders.TRANSFER_ENCODING, "chunked");
-        }
-        this.contentLength = -1;
-      } else {
-        this.remove(io.HttpHeaders.TRANSFER_ENCODING, "chunked");
-      }
-      this[_chunkedTransferEncoding] = chunkedTransferEncoding;
-    }
-    get host() {
-      return this[_host$];
-    }
-    set host(host) {
-      this[_checkMutable]();
-      this[_host$] = host;
-      this[_updateHostHeader]();
-    }
-    get port() {
-      return this[_port$];
-    }
-    set port(port) {
-      this[_checkMutable]();
-      this[_port$] = port;
-      this[_updateHostHeader]();
-    }
-    get ifModifiedSince() {
-      let values = this[_headers][dartx._get](io.HttpHeaders.IF_MODIFIED_SINCE);
-      if (values != null) {
-        try {
-          return io.HttpDate.parse(values[dartx._get](0));
-        } catch (e) {
-          if (core.Exception.is(e)) {
-            return null;
-          } else
-            throw e;
-        }
-
-      }
-      return null;
-    }
-    set ifModifiedSince(ifModifiedSince) {
-      this[_checkMutable]();
-      let formatted = io.HttpDate.format(ifModifiedSince.toUtc());
-      this[_set$](io.HttpHeaders.IF_MODIFIED_SINCE, formatted);
-    }
-    get date() {
-      let values = this[_headers][dartx._get](io.HttpHeaders.DATE);
-      if (values != null) {
-        try {
-          return io.HttpDate.parse(values[dartx._get](0));
-        } catch (e) {
-          if (core.Exception.is(e)) {
-            return null;
-          } else
-            throw e;
-        }
-
-      }
-      return null;
-    }
-    set date(date) {
-      this[_checkMutable]();
-      let formatted = io.HttpDate.format(date.toUtc());
-      this[_set$]("date", formatted);
-    }
-    get expires() {
-      let values = this[_headers][dartx._get](io.HttpHeaders.EXPIRES);
-      if (values != null) {
-        try {
-          return io.HttpDate.parse(values[dartx._get](0));
-        } catch (e) {
-          if (core.Exception.is(e)) {
-            return null;
-          } else
-            throw e;
-        }
-
-      }
-      return null;
-    }
-    set expires(expires) {
-      this[_checkMutable]();
-      let formatted = io.HttpDate.format(expires.toUtc());
-      this[_set$](io.HttpHeaders.EXPIRES, formatted);
-    }
-    get contentType() {
-      let values = this[_headers][dartx._get]("content-type");
-      if (values != null) {
-        return io.ContentType.parse(values[dartx._get](0));
-      } else {
-        return null;
-      }
-    }
-    set contentType(contentType) {
-      this[_checkMutable]();
-      this[_set$](io.HttpHeaders.CONTENT_TYPE, dart.toString(contentType));
-    }
-    clear() {
-      this[_checkMutable]();
-      this[_headers][dartx.clear]();
-      this[_contentLength] = -1;
-      this[_persistentConnection] = true;
-      this[_chunkedTransferEncoding] = false;
-      this[_host$] = null;
-      this[_port$] = null;
-    }
-    [_add$2](name, value) {
-      dart.assert(name == io._HttpHeaders._validateField(name));
-      switch (name[dartx.length]) {
-        case 4:
-        {
-          if (io.HttpHeaders.DATE == name) {
-            this[_addDate](name, value);
-            return;
-          }
-          if (io.HttpHeaders.HOST == name) {
-            this[_addHost](name, value);
-            return;
-          }
-          break;
-        }
-        case 7:
-        {
-          if (io.HttpHeaders.EXPIRES == name) {
-            this[_addExpires](name, value);
-            return;
-          }
-          break;
-        }
-        case 10:
-        {
-          if (io.HttpHeaders.CONNECTION == name) {
-            this[_addConnection](name, value);
-            return;
-          }
-          break;
-        }
-        case 12:
-        {
-          if (io.HttpHeaders.CONTENT_TYPE == name) {
-            this[_addContentType](name, value);
-            return;
-          }
-          break;
-        }
-        case 14:
-        {
-          if (io.HttpHeaders.CONTENT_LENGTH == name) {
-            this[_addContentLength](name, value);
-            return;
-          }
-          break;
-        }
-        case 17:
-        {
-          if (io.HttpHeaders.TRANSFER_ENCODING == name) {
-            this[_addTransferEncoding](name, value);
-            return;
-          }
-          if (io.HttpHeaders.IF_MODIFIED_SINCE == name) {
-            this[_addIfModifiedSince](name, value);
-            return;
-          }
-        }
-      }
-      this[_addValue](name, value);
-    }
-    [_addContentLength](name, value) {
-      if (typeof value == 'number') {
-        this.contentLength = value;
-      } else if (typeof value == 'string') {
-        this.contentLength = core.int.parse(value);
-      } else {
-        dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
-      }
-    }
-    [_addTransferEncoding](name, value) {
-      if (dart.equals(value, "chunked")) {
-        this.chunkedTransferEncoding = true;
-      } else {
-        this[_addValue](io.HttpHeaders.TRANSFER_ENCODING, value);
-      }
-    }
-    [_addDate](name, value) {
-      if (core.DateTime.is(value)) {
-        this.date = value;
-      } else if (typeof value == 'string') {
-        this[_set$](io.HttpHeaders.DATE, value);
-      } else {
-        dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
-      }
-    }
-    [_addExpires](name, value) {
-      if (core.DateTime.is(value)) {
-        this.expires = value;
-      } else if (typeof value == 'string') {
-        this[_set$](io.HttpHeaders.EXPIRES, value);
-      } else {
-        dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
-      }
-    }
-    [_addIfModifiedSince](name, value) {
-      if (core.DateTime.is(value)) {
-        this.ifModifiedSince = value;
-      } else if (typeof value == 'string') {
-        this[_set$](io.HttpHeaders.IF_MODIFIED_SINCE, value);
-      } else {
-        dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
-      }
-    }
-    [_addHost](name, value) {
-      if (typeof value == 'string') {
-        let pos = value[dartx.indexOf](":");
-        if (pos == -1) {
-          this[_host$] = value;
-          this[_port$] = io.HttpClient.DEFAULT_HTTP_PORT;
-        } else {
-          if (dart.notNull(pos) > 0) {
-            this[_host$] = value[dartx.substring](0, pos);
-          } else {
-            this[_host$] = null;
-          }
-          if (dart.notNull(pos) + 1 == value[dartx.length]) {
-            this[_port$] = io.HttpClient.DEFAULT_HTTP_PORT;
-          } else {
-            try {
-              this[_port$] = core.int.parse(value[dartx.substring](dart.notNull(pos) + 1));
-            } catch (e) {
-              if (core.FormatException.is(e)) {
-                this[_port$] = null;
-              } else
-                throw e;
-            }
-
-          }
-        }
-        this[_set$](io.HttpHeaders.HOST, value);
-      } else {
-        dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
-      }
-    }
-    [_addConnection](name, value) {
-      let lowerCaseValue = dart.dsend(value, 'toLowerCase');
-      if (dart.equals(lowerCaseValue, 'close')) {
-        this[_persistentConnection] = false;
-      } else if (dart.equals(lowerCaseValue, 'keep-alive')) {
-        this[_persistentConnection] = true;
-      }
-      this[_addValue](name, value);
-    }
-    [_addContentType](name, value) {
-      this[_set$](io.HttpHeaders.CONTENT_TYPE, core.String._check(value));
-    }
-    [_addValue](name, value) {
-      let values = this[_headers][dartx._get](name);
-      if (values == null) {
-        values = ListOfString().new();
-        this[_headers][dartx._set](name, values);
-      }
-      if (core.DateTime.is(value)) {
-        values[dartx.add](io.HttpDate.format(value));
-      } else if (typeof value == 'string') {
-        values[dartx.add](value);
-      } else {
-        values[dartx.add](core.String._check(io._HttpHeaders._validateValue(dart.toString(value))));
-      }
-    }
-    [_set$](name, value) {
-      dart.assert(name == io._HttpHeaders._validateField(name));
-      let values = ListOfString().new();
-      this[_headers][dartx._set](name, values);
-      values[dartx.add](value);
-    }
-    [_checkMutable]() {
-      if (!dart.test(this[_mutable])) dart.throw(new io.HttpException("HTTP headers are not mutable"));
-    }
-    [_updateHostHeader]() {
-      let defaultPort = this[_port$] == null || this[_port$] == this[_defaultPortForScheme];
-      this[_set$]("host", defaultPort ? this.host : dart.str`${this.host}:${this[_port$]}`);
-    }
-    [_foldHeader](name) {
-      if (name == io.HttpHeaders.SET_COOKIE || this[_noFoldingHeaders] != null && this[_noFoldingHeaders][dartx.indexOf](name) != -1) {
-        return false;
-      }
-      return true;
-    }
-    [_finalize]() {
-      this[_mutable] = false;
-    }
-    [_write](buffer, offset) {
-      function write(bytes) {
-        let len = bytes[dartx.length];
-        for (let i = 0; i < dart.notNull(len); i++) {
-          buffer[dartx._set](dart.notNull(offset) + i, bytes[dartx._get](i));
-        }
-        offset = dart.notNull(offset) + dart.notNull(len);
-      }
-      dart.fn(write, ListOfintTovoid$());
-      for (let name of this[_headers][dartx.keys]) {
-        let values = this[_headers][dartx._get](name);
-        let fold = core.bool._check(this[_foldHeader](name));
-        let nameData = name[dartx.codeUnits];
-        write(nameData);
-        buffer[dartx._set]((() => {
-          let x = offset;
-          offset = dart.notNull(x) + 1;
-          return x;
-        })(), io._CharCode.COLON);
-        buffer[dartx._set]((() => {
-          let x = offset;
-          offset = dart.notNull(x) + 1;
-          return x;
-        })(), io._CharCode.SP);
-        for (let i = 0; i < dart.notNull(values[dartx.length]); i++) {
-          if (i > 0) {
-            if (dart.test(fold)) {
-              buffer[dartx._set]((() => {
-                let x = offset;
-                offset = dart.notNull(x) + 1;
-                return x;
-              })(), io._CharCode.COMMA);
-              buffer[dartx._set]((() => {
-                let x = offset;
-                offset = dart.notNull(x) + 1;
-                return x;
-              })(), io._CharCode.SP);
-            } else {
-              buffer[dartx._set]((() => {
-                let x = offset;
-                offset = dart.notNull(x) + 1;
-                return x;
-              })(), io._CharCode.CR);
-              buffer[dartx._set]((() => {
-                let x = offset;
-                offset = dart.notNull(x) + 1;
-                return x;
-              })(), io._CharCode.LF);
-              write(nameData);
-              buffer[dartx._set]((() => {
-                let x = offset;
-                offset = dart.notNull(x) + 1;
-                return x;
-              })(), io._CharCode.COLON);
-              buffer[dartx._set]((() => {
-                let x = offset;
-                offset = dart.notNull(x) + 1;
-                return x;
-              })(), io._CharCode.SP);
-            }
-          }
-          write(values[dartx._get](i)[dartx.codeUnits]);
-        }
-        buffer[dartx._set]((() => {
-          let x = offset;
-          offset = dart.notNull(x) + 1;
-          return x;
-        })(), io._CharCode.CR);
-        buffer[dartx._set]((() => {
-          let x = offset;
-          offset = dart.notNull(x) + 1;
-          return x;
-        })(), io._CharCode.LF);
-      }
-      return offset;
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      this[_headers][dartx.forEach](dart.fn((name, values) => {
-        sb.write(name);
-        sb.write(": ");
-        let fold = core.bool._check(this[_foldHeader](name));
-        for (let i = 0; i < dart.notNull(values[dartx.length]); i++) {
-          if (i > 0) {
-            if (dart.test(fold)) {
-              sb.write(", ");
-            } else {
-              sb.write("\n");
-              sb.write(name);
-              sb.write(": ");
-            }
-          }
-          sb.write(values[dartx._get](i));
-        }
-        sb.write("\n");
-      }, StringAndListOfStringToNull()));
-      return sb.toString();
-    }
-    [_parseCookies]() {
-      let cookies = ListOfCookie().new();
-      function parseCookieString(s) {
-        let index = 0;
-        function done() {
-          return index == -1 || index == s[dartx.length];
-        }
-        dart.fn(done, VoidTobool());
-        function skipWS() {
-          while (!dart.test(done())) {
-            if (s[dartx._get](index) != " " && s[dartx._get](index) != "\t") return;
-            index = dart.notNull(index) + 1;
-          }
-        }
-        dart.fn(skipWS, VoidTovoid$());
-        function parseName() {
-          let start = index;
-          while (!dart.test(done())) {
-            if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == "=") break;
-            index = dart.notNull(index) + 1;
-          }
-          return s[dartx.substring](start, index);
-        }
-        dart.fn(parseName, VoidToString$());
-        function parseValue() {
-          let start = index;
-          while (!dart.test(done())) {
-            if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == ";") break;
-            index = dart.notNull(index) + 1;
-          }
-          return s[dartx.substring](start, index);
-        }
-        dart.fn(parseValue, VoidToString$());
-        function expect(expected) {
-          if (dart.test(done())) return false;
-          if (s[dartx._get](index) != expected) return false;
-          index = dart.notNull(index) + 1;
-          return true;
-        }
-        dart.fn(expect, StringTobool$());
-        while (!dart.test(done())) {
-          skipWS();
-          if (dart.test(done())) return;
-          let name = parseName();
-          skipWS();
-          if (!dart.test(expect("="))) {
-            index = s[dartx.indexOf](';', index);
-            continue;
-          }
-          skipWS();
-          let value = parseValue();
-          try {
-            cookies[dartx.add](new io._Cookie(name, value));
-          } catch (_) {
-          }
-
-          skipWS();
-          if (dart.test(done())) return;
-          if (!dart.test(expect(";"))) {
-            index = s[dartx.indexOf](';', index);
-            continue;
-          }
-        }
-      }
-      dart.fn(parseCookieString, StringTovoid$());
-      let values = this[_headers][dartx._get](io.HttpHeaders.COOKIE);
-      if (values != null) {
-        values[dartx.forEach](dart.fn(headerValue => parseCookieString(headerValue), StringTovoid$()));
-      }
-      return cookies;
-    }
-    static _validateField(field) {
-      for (let i = 0; i < dart.notNull(field[dartx.length]); i++) {
-        if (!dart.test(io._HttpParser._isTokenChar(field[dartx.codeUnitAt](i)))) {
-          dart.throw(new core.FormatException(dart.str`Invalid HTTP header field name: ${convert.JSON.encode(field)}`));
-        }
-      }
-      return field[dartx.toLowerCase]();
-    }
-    static _validateValue(value) {
-      if (!(typeof value == 'string')) return value;
-      for (let i = 0; i < dart.notNull(core.num._check(dart.dload(value, 'length'))); i++) {
-        if (!dart.test(io._HttpParser._isValueChar(core.int._check(dart.dsend(value, 'codeUnitAt', i))))) {
-          dart.throw(new core.FormatException(dart.str`Invalid HTTP header field value: ${convert.JSON.encode(value)}`));
-        }
-      }
-      return value;
-    }
-  };
-  io._HttpHeaders[dart.implements] = () => [io.HttpHeaders];
-  dart.setSignature(io._HttpHeaders, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpHeaders, [core.String], {defaultPortForScheme: core.int, initialHeaders: io._HttpHeaders})}),
-    fields: () => ({
-      [_headers]: MapOfString$ListOfString(),
-      protocolVersion: core.String,
-      [_mutable]: core.bool,
-      [_noFoldingHeaders]: ListOfString(),
-      [_contentLength]: core.int,
-      [_persistentConnection]: core.bool,
-      [_chunkedTransferEncoding]: core.bool,
-      [_host$]: core.String,
-      [_port$]: core.int,
-      [_defaultPortForScheme]: core.int
-    }),
-    getters: () => ({
-      persistentConnection: dart.definiteFunctionType(core.bool, []),
-      contentLength: dart.definiteFunctionType(core.int, []),
-      chunkedTransferEncoding: dart.definiteFunctionType(core.bool, []),
-      host: dart.definiteFunctionType(core.String, []),
-      port: dart.definiteFunctionType(core.int, []),
-      ifModifiedSince: dart.definiteFunctionType(core.DateTime, []),
-      date: dart.definiteFunctionType(core.DateTime, []),
-      expires: dart.definiteFunctionType(core.DateTime, []),
-      contentType: dart.definiteFunctionType(io.ContentType, [])
-    }),
-    setters: () => ({
-      persistentConnection: dart.definiteFunctionType(dart.void, [core.bool]),
-      contentLength: dart.definiteFunctionType(dart.void, [core.int]),
-      chunkedTransferEncoding: dart.definiteFunctionType(dart.void, [core.bool]),
-      host: dart.definiteFunctionType(dart.void, [core.String]),
-      port: dart.definiteFunctionType(dart.void, [core.int]),
-      ifModifiedSince: dart.definiteFunctionType(dart.void, [core.DateTime]),
-      date: dart.definiteFunctionType(dart.void, [core.DateTime]),
-      expires: dart.definiteFunctionType(dart.void, [core.DateTime]),
-      contentType: dart.definiteFunctionType(dart.void, [io.ContentType])
-    }),
-    methods: () => ({
-      _get: dart.definiteFunctionType(core.List$(core.String), [core.String]),
-      value: dart.definiteFunctionType(core.String, [core.String]),
-      add: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
-      [_addAll]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      set: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
-      remove: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
-      removeAll: dart.definiteFunctionType(dart.void, [core.String]),
-      forEach: dart.definiteFunctionType(dart.void, [StringAndListOfStringTovoid()]),
-      noFolding: dart.definiteFunctionType(dart.void, [core.String]),
-      clear: dart.definiteFunctionType(dart.void, []),
-      [_add$2]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addContentLength]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addTransferEncoding]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addDate]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addExpires]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addIfModifiedSince]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addHost]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addConnection]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addContentType]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
-      [_addValue]: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
-      [_set$]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [_checkMutable]: dart.definiteFunctionType(dart.dynamic, []),
-      [_updateHostHeader]: dart.definiteFunctionType(dart.dynamic, []),
-      [_foldHeader]: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      [_finalize]: dart.definiteFunctionType(dart.void, []),
-      [_write]: dart.definiteFunctionType(core.int, [typed_data.Uint8List, core.int]),
-      [_parseCookies]: dart.definiteFunctionType(core.List$(io.Cookie), [])
-    }),
-    statics: () => ({
-      _validateField: dart.definiteFunctionType(core.String, [core.String]),
-      _validateValue: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-    }),
-    names: ['_validateField', '_validateValue']
-  });
-  const _value$1 = Symbol('_value');
-  const _parameters = Symbol('_parameters');
-  const _unmodifiableParameters = Symbol('_unmodifiableParameters');
-  const _parse = Symbol('_parse');
-  const _ensureParameters = Symbol('_ensureParameters');
-  io._HeaderValue = class _HeaderValue extends core.Object {
-    new(value, parameters) {
-      if (value === void 0) value = "";
-      if (parameters === void 0) parameters = null;
-      this[_value$1] = value;
-      this[_parameters] = null;
-      this[_unmodifiableParameters] = null;
-      if (parameters != null) {
-        this[_parameters] = HashMapOfString$String().from(parameters);
-      }
-    }
-    static parse(value, opts) {
-      let parameterSeparator = opts && 'parameterSeparator' in opts ? opts.parameterSeparator : ";";
-      let valueSeparator = opts && 'valueSeparator' in opts ? opts.valueSeparator : null;
-      let preserveBackslash = opts && 'preserveBackslash' in opts ? opts.preserveBackslash : false;
-      let result = new io._HeaderValue();
-      result[_parse](value, core.String._check(parameterSeparator), core.String._check(valueSeparator), core.bool._check(preserveBackslash));
-      return result;
-    }
-    get value() {
-      return this[_value$1];
-    }
-    [_ensureParameters]() {
-      if (this[_parameters] == null) {
-        this[_parameters] = HashMapOfString$String().new();
-      }
-    }
-    get parameters() {
-      this[_ensureParameters]();
-      if (this[_unmodifiableParameters] == null) {
-        this[_unmodifiableParameters] = new (UnmodifiableMapViewOfString$String())(this[_parameters]);
-      }
-      return this[_unmodifiableParameters];
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      sb.write(this[_value$1]);
-      if (this.parameters != null && dart.notNull(this.parameters[dartx.length]) > 0) {
-        this[_parameters][dartx.forEach](dart.fn((name, value) => {
-          sb.write("; ");
-          sb.write(name);
-          sb.write("=");
-          sb.write(value);
-        }, StringAndStringToNull()));
-      }
-      return sb.toString();
-    }
-    [_parse](s, parameterSeparator, valueSeparator, preserveBackslash) {
-      let index = 0;
-      function done() {
-        return index == s[dartx.length];
-      }
-      dart.fn(done, VoidTobool());
-      function skipWS() {
-        while (!dart.test(done())) {
-          if (s[dartx._get](index) != " " && s[dartx._get](index) != "\t") return;
-          index++;
-        }
-      }
-      dart.fn(skipWS, VoidTovoid$());
-      function parseValue() {
-        let start = index;
-        while (!dart.test(done())) {
-          if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == valueSeparator || s[dartx._get](index) == parameterSeparator) break;
-          index++;
-        }
-        return s[dartx.substring](start, index);
-      }
-      dart.fn(parseValue, VoidToString$());
-      function expect(expected) {
-        if (dart.test(done()) || s[dartx._get](index) != expected) {
-          dart.throw(new io.HttpException("Failed to parse header value"));
-        }
-        index++;
-      }
-      dart.fn(expect, StringTovoid$());
-      function maybeExpect(expected) {
-        if (s[dartx._get](index) == expected) index++;
-      }
-      dart.fn(maybeExpect, StringTovoid$());
-      const parseParameters = (function() {
-        let parameters = HashMapOfString$String().new();
-        this[_parameters] = new (UnmodifiableMapViewOfString$String())(parameters);
-        function parseParameterName() {
-          let start = index;
-          while (!dart.test(done())) {
-            if (s[dartx._get](index) == " " || s[dartx._get](index) == "\t" || s[dartx._get](index) == "=" || s[dartx._get](index) == parameterSeparator || s[dartx._get](index) == valueSeparator) break;
-            index++;
-          }
-          return s[dartx.substring](start, index)[dartx.toLowerCase]();
-        }
-        dart.fn(parseParameterName, VoidToString$());
-        function parseParameterValue() {
-          if (!dart.test(done()) && s[dartx._get](index) == "\"") {
-            let sb = new core.StringBuffer();
-            index++;
-            while (!dart.test(done())) {
-              if (s[dartx._get](index) == "\\") {
-                if (index + 1 == s[dartx.length]) {
-                  dart.throw(new io.HttpException("Failed to parse header value"));
-                }
-                if (dart.test(preserveBackslash) && s[dartx._get](index + 1) != "\"") {
-                  sb.write(s[dartx._get](index));
-                }
-                index++;
-              } else if (s[dartx._get](index) == "\"") {
-                index++;
-                break;
-              }
-              sb.write(s[dartx._get](index));
-              index++;
-            }
-            return sb.toString();
-          } else {
-            let val = parseValue();
-            return val == "" ? null : val;
-          }
-        }
-        dart.fn(parseParameterValue, VoidToString$());
-        while (!dart.test(done())) {
-          skipWS();
-          if (dart.test(done())) return;
-          let name = parseParameterName();
-          skipWS();
-          if (dart.test(done())) {
-            parameters._set(name, null);
-            return;
-          }
-          maybeExpect("=");
-          skipWS();
-          if (dart.test(done())) {
-            parameters._set(name, null);
-            return;
-          }
-          let value = parseParameterValue();
-          if (name == 'charset' && io._ContentType.is(this)) {
-            value = value[dartx.toLowerCase]();
-          }
-          parameters._set(name, value);
-          skipWS();
-          if (dart.test(done())) return;
-          if (s[dartx._get](index) == valueSeparator) return;
-          expect(parameterSeparator);
-        }
-      }).bind(this);
-      dart.fn(parseParameters, VoidTovoid$());
-      skipWS();
-      this[_value$1] = parseValue();
-      skipWS();
-      if (dart.test(done())) return;
-      maybeExpect(parameterSeparator);
-      parseParameters();
-    }
-  };
-  io._HeaderValue[dart.implements] = () => [io.HeaderValue];
-  dart.setSignature(io._HeaderValue, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HeaderValue, [], [core.String, MapOfString$String()])}),
-    fields: () => ({
-      [_value$1]: core.String,
-      [_parameters]: MapOfString$String(),
-      [_unmodifiableParameters]: MapOfString$String()
-    }),
-    getters: () => ({
-      value: dart.definiteFunctionType(core.String, []),
-      parameters: dart.definiteFunctionType(core.Map$(core.String, core.String), [])
-    }),
-    methods: () => ({
-      [_ensureParameters]: dart.definiteFunctionType(dart.void, []),
-      [_parse]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String, core.bool])
-    }),
-    statics: () => ({parse: dart.definiteFunctionType(io._HeaderValue, [core.String], {parameterSeparator: dart.dynamic, valueSeparator: dart.dynamic, preserveBackslash: dart.dynamic})}),
-    names: ['parse']
-  });
-  const _primaryType = Symbol('_primaryType');
-  const _subType = Symbol('_subType');
-  io._ContentType = class _ContentType extends io._HeaderValue {
-    new(primaryType, subType, charset, parameters) {
-      this[_primaryType] = primaryType;
-      this[_subType] = subType;
-      super.new("");
-      if (this[_primaryType] == null) this[_primaryType] = "";
-      if (this[_subType] == null) this[_subType] = "";
-      this[_value$1] = dart.str`${this[_primaryType]}/${this[_subType]}`;
-      if (parameters != null) {
-        this[_ensureParameters]();
-        parameters[dartx.forEach](dart.fn((key, value) => {
-          let lowerCaseKey = key[dartx.toLowerCase]();
-          if (lowerCaseKey == "charset") {
-            value = value[dartx.toLowerCase]();
-          }
-          this[_parameters][dartx._set](lowerCaseKey, value);
-        }, StringAndStringToNull()));
-      }
-      if (charset != null) {
-        this[_ensureParameters]();
-        this[_parameters][dartx._set]("charset", charset[dartx.toLowerCase]());
-      }
-    }
-    _() {
-      this[_primaryType] = "";
-      this[_subType] = "";
-      super.new();
-    }
-    static parse(value) {
-      let result = new io._ContentType._();
-      result[_parse](value, ";", null, false);
-      let index = result[_value$1][dartx.indexOf]("/");
-      if (index == -1 || index == dart.notNull(result[_value$1][dartx.length]) - 1) {
-        result[_primaryType] = result[_value$1][dartx.trim]()[dartx.toLowerCase]();
-        result[_subType] = "";
-      } else {
-        result[_primaryType] = result[_value$1][dartx.substring](0, index)[dartx.trim]()[dartx.toLowerCase]();
-        result[_subType] = result[_value$1][dartx.substring](dart.notNull(index) + 1)[dartx.trim]()[dartx.toLowerCase]();
-      }
-      return result;
-    }
-    get mimeType() {
-      return dart.str`${this.primaryType}/${this.subType}`;
-    }
-    get primaryType() {
-      return this[_primaryType];
-    }
-    get subType() {
-      return this[_subType];
-    }
-    get charset() {
-      return this.parameters[dartx._get]("charset");
-    }
-  };
-  dart.defineNamedConstructor(io._ContentType, '_');
-  io._ContentType[dart.implements] = () => [io.ContentType];
-  dart.setSignature(io._ContentType, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._ContentType, [core.String, core.String, core.String, MapOfString$String()]),
-      _: dart.definiteFunctionType(io._ContentType, [])
-    }),
-    fields: () => ({
-      [_primaryType]: core.String,
-      [_subType]: core.String
-    }),
-    getters: () => ({
-      mimeType: dart.definiteFunctionType(core.String, []),
-      primaryType: dart.definiteFunctionType(core.String, []),
-      subType: dart.definiteFunctionType(core.String, []),
-      charset: dart.definiteFunctionType(core.String, [])
-    }),
-    statics: () => ({parse: dart.definiteFunctionType(io._ContentType, [core.String])}),
-    names: ['parse']
-  });
-  const _validate = Symbol('_validate');
-  const _parseSetCookieValue = Symbol('_parseSetCookieValue');
-  let const$67;
-  io._Cookie = class _Cookie extends core.Object {
-    new(name, value) {
-      if (name === void 0) name = null;
-      if (value === void 0) value = null;
-      this.name = name;
-      this.value = value;
-      this.expires = null;
-      this.maxAge = null;
-      this.domain = null;
-      this.path = null;
-      this.httpOnly = false;
-      this.secure = false;
-      this.httpOnly = true;
-      this[_validate]();
-    }
-    fromSetCookieValue(value) {
-      this.name = null;
-      this.value = null;
-      this.expires = null;
-      this.maxAge = null;
-      this.domain = null;
-      this.path = null;
-      this.httpOnly = false;
-      this.secure = false;
-      this[_parseSetCookieValue](value);
-    }
-    [_parseSetCookieValue](s) {
-      let index = 0;
-      function done() {
-        return index == s[dartx.length];
-      }
-      dart.fn(done, VoidTobool());
-      function parseName() {
-        let start = index;
-        while (!dart.test(done())) {
-          if (s[dartx._get](index) == "=") break;
-          index++;
-        }
-        return s[dartx.substring](start, index)[dartx.trim]();
-      }
-      dart.fn(parseName, VoidToString$());
-      function parseValue() {
-        let start = index;
-        while (!dart.test(done())) {
-          if (s[dartx._get](index) == ";") break;
-          index++;
-        }
-        return s[dartx.substring](start, index)[dartx.trim]();
-      }
-      dart.fn(parseValue, VoidToString$());
-      function expect(expected) {
-        if (dart.test(done())) dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
-        if (s[dartx._get](index) != expected) {
-          dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
-        }
-        index++;
-      }
-      dart.fn(expect, StringTovoid$());
-      const parseAttributes = (function() {
-        function parseAttributeName() {
-          let start = index;
-          while (!dart.test(done())) {
-            if (s[dartx._get](index) == "=" || s[dartx._get](index) == ";") break;
-            index++;
-          }
-          return s[dartx.substring](start, index)[dartx.trim]()[dartx.toLowerCase]();
-        }
-        dart.fn(parseAttributeName, VoidToString$());
-        function parseAttributeValue() {
-          let start = index;
-          while (!dart.test(done())) {
-            if (s[dartx._get](index) == ";") break;
-            index++;
-          }
-          return s[dartx.substring](start, index)[dartx.trim]()[dartx.toLowerCase]();
-        }
-        dart.fn(parseAttributeValue, VoidToString$());
-        while (!dart.test(done())) {
-          let name = parseAttributeName();
-          let value = "";
-          if (!dart.test(done()) && s[dartx._get](index) == "=") {
-            index++;
-            value = parseAttributeValue();
-          }
-          if (name == "expires") {
-            this.expires = io.HttpDate._parseCookieDate(value);
-          } else if (name == "max-age") {
-            this.maxAge = core.int.parse(value);
-          } else if (name == "domain") {
-            this.domain = value;
-          } else if (name == "path") {
-            this.path = value;
-          } else if (name == "httponly") {
-            this.httpOnly = true;
-          } else if (name == "secure") {
-            this.secure = true;
-          }
-          if (!dart.test(done())) index++;
-        }
-      }).bind(this);
-      dart.fn(parseAttributes, VoidTovoid$());
-      this.name = parseName();
-      if (dart.test(done()) || this.name[dartx.length] == 0) {
-        dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
-      }
-      index++;
-      this.value = parseValue();
-      this[_validate]();
-      if (dart.test(done())) return;
-      index++;
-      parseAttributes();
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      sb.write(this.name);
-      sb.write("=");
-      sb.write(this.value);
-      if (this.expires != null) {
-        sb.write("; Expires=");
-        sb.write(io.HttpDate.format(this.expires));
-      }
-      if (this.maxAge != null) {
-        sb.write("; Max-Age=");
-        sb.write(this.maxAge);
-      }
-      if (this.domain != null) {
-        sb.write("; Domain=");
-        sb.write(this.domain);
-      }
-      if (this.path != null) {
-        sb.write("; Path=");
-        sb.write(this.path);
-      }
-      if (dart.test(this.secure)) sb.write("; Secure");
-      if (dart.test(this.httpOnly)) sb.write("; HttpOnly");
-      return sb.toString();
-    }
-    [_validate]() {
-      let SEPERATORS = const$67 || (const$67 = dart.constList(["(", ")", "<", ">", "@", ",", ";", ":", "\\", '"', "/", "[", "]", "?", "=", "{", "}"], core.String));
-      for (let i = 0; i < dart.notNull(this.name[dartx.length]); i++) {
-        let codeUnit = this.name[dartx.codeUnits][dartx._get](i);
-        if (dart.notNull(codeUnit) <= 32 || dart.notNull(codeUnit) >= 127 || dart.notNull(SEPERATORS[dartx.indexOf](this.name[dartx._get](i))) >= 0) {
-          dart.throw(new core.FormatException(dart.str`Invalid character in cookie name, code unit: '${codeUnit}'`));
-        }
-      }
-      for (let i = 0; i < dart.notNull(this.value[dartx.length]); i++) {
-        let codeUnit = this.value[dartx.codeUnits][dartx._get](i);
-        if (!(codeUnit == 33 || dart.notNull(codeUnit) >= 35 && dart.notNull(codeUnit) <= 43 || dart.notNull(codeUnit) >= 45 && dart.notNull(codeUnit) <= 58 || dart.notNull(codeUnit) >= 60 && dart.notNull(codeUnit) <= 91 || dart.notNull(codeUnit) >= 93 && dart.notNull(codeUnit) <= 126)) {
-          dart.throw(new core.FormatException(dart.str`Invalid character in cookie value, code unit: '${codeUnit}'`));
-        }
-      }
-    }
-  };
-  dart.defineNamedConstructor(io._Cookie, 'fromSetCookieValue');
-  io._Cookie[dart.implements] = () => [io.Cookie];
-  dart.setSignature(io._Cookie, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._Cookie, [], [core.String, core.String]),
-      fromSetCookieValue: dart.definiteFunctionType(io._Cookie, [core.String])
-    }),
-    fields: () => ({
-      name: core.String,
-      value: core.String,
-      expires: core.DateTime,
-      maxAge: core.int,
-      domain: core.String,
-      path: core.String,
-      httpOnly: core.bool,
-      secure: core.bool
-    }),
-    methods: () => ({
-      [_parseSetCookieValue]: dart.definiteFunctionType(dart.void, [core.String]),
-      [_validate]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  io._OUTGOING_BUFFER_SIZE = 8 * 1024;
-  const _transferLength = Symbol('_transferLength');
-  const _dataCompleter = Symbol('_dataCompleter');
-  const _stream$ = Symbol('_stream');
-  io._HttpIncoming = class _HttpIncoming extends async.Stream$(core.List$(core.int)) {
-    get transferLength() {
-      return this[_transferLength];
-    }
-    new(headers, transferLength, stream) {
-      this[_dataCompleter] = async.Completer.new();
-      this.headers = headers;
-      this[_transferLength] = transferLength;
-      this[_stream$] = stream;
-      this.fullBodyRead = false;
-      this.upgraded = false;
-      this.statusCode = null;
-      this.reasonPhrase = null;
-      this.method = null;
-      this.uri = null;
-      this.hasSubscriber = false;
-      super.new();
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      this.hasSubscriber = true;
-      return this[_stream$].handleError(dart.fn(error => {
-        dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
-      }, dynamicToNull$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    get dataDone() {
-      return this[_dataCompleter].future;
-    }
-    close(closing) {
-      this.fullBodyRead = true;
-      this.hasSubscriber = true;
-      this[_dataCompleter].complete(closing);
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpIncoming);
-  dart.setSignature(io._HttpIncoming, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpIncoming, [io._HttpHeaders, core.int, StreamOfListOfint()])}),
-    fields: () => ({
-      [_transferLength]: core.int,
-      [_dataCompleter]: async.Completer,
-      [_stream$]: StreamOfListOfint(),
-      fullBodyRead: core.bool,
-      headers: io._HttpHeaders,
-      upgraded: core.bool,
-      statusCode: core.int,
-      reasonPhrase: core.String,
-      method: core.String,
-      uri: core.Uri,
-      hasSubscriber: core.bool
-    }),
-    getters: () => ({
-      transferLength: dart.definiteFunctionType(core.int, []),
-      dataDone: dart.definiteFunctionType(async.Future, [])
-    }),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      close: dart.definiteFunctionType(dart.void, [core.bool])
-    })
-  });
-  const _incoming = Symbol('_incoming');
-  const _cookies = Symbol('_cookies');
-  io._HttpInboundMessage = class _HttpInboundMessage extends async.Stream$(core.List$(core.int)) {
-    new(incoming) {
-      this[_incoming] = incoming;
-      this[_cookies] = null;
-      super.new();
-    }
-    get cookies() {
-      if (this[_cookies] != null) return this[_cookies];
-      return this[_cookies] = this.headers[_parseCookies]();
-    }
-    get headers() {
-      return this[_incoming].headers;
-    }
-    get protocolVersion() {
-      return this.headers.protocolVersion;
-    }
-    get contentLength() {
-      return this.headers.contentLength;
-    }
-    get persistentConnection() {
-      return this.headers.persistentConnection;
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpInboundMessage);
-  dart.setSignature(io._HttpInboundMessage, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpInboundMessage, [io._HttpIncoming])}),
-    fields: () => ({
-      [_incoming]: io._HttpIncoming,
-      [_cookies]: ListOfCookie()
-    }),
-    getters: () => ({
-      cookies: dart.definiteFunctionType(core.List$(io.Cookie), []),
-      headers: dart.definiteFunctionType(io._HttpHeaders, []),
-      protocolVersion: dart.definiteFunctionType(core.String, []),
-      contentLength: dart.definiteFunctionType(core.int, []),
-      persistentConnection: dart.definiteFunctionType(core.bool, [])
-    })
-  });
-  const _httpServer = Symbol('_httpServer');
-  const _httpConnection = Symbol('_httpConnection');
-  const _session = Symbol('_session');
-  const _requestedUri = Symbol('_requestedUri');
-  const _sessionManagerInstance = Symbol('_sessionManagerInstance');
-  const _sessionManager = Symbol('_sessionManager');
-  const _markSeen = Symbol('_markSeen');
-  const _socket = Symbol('_socket');
-  const _destroyed = Symbol('_destroyed');
-  io._HttpRequest = class _HttpRequest extends io._HttpInboundMessage {
-    new(response, _incoming, httpServer, httpConnection) {
-      this.response = response;
-      this[_httpServer] = httpServer;
-      this[_httpConnection] = httpConnection;
-      this[_session] = null;
-      this[_requestedUri] = null;
-      super.new(_incoming);
-      if (this.headers.protocolVersion == "1.1") {
-        let _ = this.response.headers;
-        _.chunkedTransferEncoding = true;
-        _.persistentConnection = this.headers.persistentConnection;
-      }
-      if (this[_httpServer][_sessionManagerInstance] != null) {
-        let sessionIds = this.cookies[dartx.where](dart.fn(cookie => cookie.name[dartx.toUpperCase]() == io._DART_SESSION_ID, CookieTobool()))[dartx.map](core.String)(dart.fn(cookie => cookie.value, CookieToString()));
-        for (let sessionId of sessionIds) {
-          this[_session] = this[_httpServer][_sessionManager].getSession(sessionId);
-          if (this[_session] != null) {
-            this[_session][_markSeen]();
-            break;
-          }
-        }
-      }
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_incoming].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    get uri() {
-      return this[_incoming].uri;
-    }
-    get requestedUri() {
-      if (this[_requestedUri] == null) {
-        let proto = this.headers._get('x-forwarded-proto');
-        let scheme = proto != null ? proto[dartx.first] : io.SecureSocket.is(this[_httpConnection][_socket]) ? "https" : "http";
-        let hostList = this.headers._get('x-forwarded-host');
-        let host = null;
-        if (hostList != null) {
-          host = hostList[dartx.first];
-        } else {
-          hostList = this.headers._get('host');
-          if (hostList != null) {
-            host = hostList[dartx.first];
-          } else {
-            host = dart.str`${this[_httpServer].address.host}:${this[_httpServer].port}`;
-          }
-        }
-        this[_requestedUri] = core.Uri.parse(dart.str`${scheme}://${host}${this.uri}`);
-      }
-      return this[_requestedUri];
-    }
-    get method() {
-      return this[_incoming].method;
-    }
-    get session() {
-      if (this[_session] != null) {
-        if (dart.test(this[_session][_destroyed])) {
-          this[_session] = null;
-          return this.session;
-        }
-        return this[_session];
-      }
-      return this[_session] = this[_httpServer][_sessionManager].createSession();
-    }
-    get connectionInfo() {
-      return this[_httpConnection].connectionInfo;
-    }
-    get certificate() {
-      let socket = this[_httpConnection][_socket];
-      if (io.SecureSocket.is(socket)) return socket.peerCertificate;
-      return null;
-    }
-  };
-  io._HttpRequest[dart.implements] = () => [io.HttpRequest];
-  dart.setSignature(io._HttpRequest, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpRequest, [io.HttpResponse, io._HttpIncoming, io._HttpServer, io._HttpConnection])}),
-    fields: () => ({
-      response: io.HttpResponse,
-      [_httpServer]: io._HttpServer,
-      [_httpConnection]: io._HttpConnection,
-      [_session]: io._HttpSession,
-      [_requestedUri]: core.Uri
-    }),
-    getters: () => ({
-      uri: dart.definiteFunctionType(core.Uri, []),
-      requestedUri: dart.definiteFunctionType(core.Uri, []),
-      method: dart.definiteFunctionType(core.String, []),
-      session: dart.definiteFunctionType(io.HttpSession, []),
-      connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
-      certificate: dart.definiteFunctionType(io.X509Certificate, [])
-    }),
-    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-  });
-  const _responseRedirects = Symbol('_responseRedirects');
-  const _httpRequest = Symbol('_httpRequest');
-  const _httpClient = Symbol('_httpClient');
-  const _httpClientConnection = Symbol('_httpClientConnection');
-  const _openUrlFromRequest = Symbol('_openUrlFromRequest');
-  const _connectionClosed = Symbol('_connectionClosed');
-  const _shouldAuthenticateProxy = Symbol('_shouldAuthenticateProxy');
-  const _shouldAuthenticate = Symbol('_shouldAuthenticate');
-  const _proxy = Symbol('_proxy');
-  const _findProxyCredentials = Symbol('_findProxyCredentials');
-  const _findCredentials = Symbol('_findCredentials');
-  const _removeProxyCredentials = Symbol('_removeProxyCredentials');
-  const _removeCredentials = Symbol('_removeCredentials');
-  const _authenticateProxy = Symbol('_authenticateProxy');
-  const _authenticate = Symbol('_authenticate');
-  io._HttpClientResponse = class _HttpClientResponse extends io._HttpInboundMessage {
-    get redirects() {
-      return this[_httpRequest][_responseRedirects];
-    }
-    new(_incoming, httpRequest, httpClient) {
-      this[_httpRequest] = httpRequest;
-      this[_httpClient] = httpClient;
-      super.new(_incoming);
-      _incoming.uri = this[_httpRequest].uri;
-    }
-    get statusCode() {
-      return this[_incoming].statusCode;
-    }
-    get reasonPhrase() {
-      return this[_incoming].reasonPhrase;
-    }
-    get certificate() {
-      let socket = this[_httpRequest][_httpClientConnection][_socket];
-      if (io.SecureSocket.is(socket)) return socket.peerCertificate;
-      dart.throw(new core.UnsupportedError("Socket is not a SecureSocket"));
-    }
-    get cookies() {
-      if (this[_cookies] != null) return this[_cookies];
-      this[_cookies] = ListOfCookie().new();
-      let values = this.headers._get(io.HttpHeaders.SET_COOKIE);
-      if (values != null) {
-        values[dartx.forEach](dart.fn(value => {
-          this[_cookies][dartx.add](io.Cookie.fromSetCookieValue(value));
-        }, StringToNull()));
-      }
-      return this[_cookies];
-    }
-    get isRedirect() {
-      if (this[_httpRequest].method == "GET" || this[_httpRequest].method == "HEAD") {
-        return this.statusCode == io.HttpStatus.MOVED_PERMANENTLY || this.statusCode == io.HttpStatus.FOUND || this.statusCode == io.HttpStatus.SEE_OTHER || this.statusCode == io.HttpStatus.TEMPORARY_REDIRECT;
-      } else if (this[_httpRequest].method == "POST") {
-        return this.statusCode == io.HttpStatus.SEE_OTHER;
-      }
-      return false;
-    }
-    redirect(method, url, followLoops) {
-      if (method === void 0) method = null;
-      if (url === void 0) url = null;
-      if (followLoops === void 0) followLoops = null;
-      if (method == null) {
-        if (this.statusCode == io.HttpStatus.SEE_OTHER && this[_httpRequest].method == "POST") {
-          method = "GET";
-        } else {
-          method = this[_httpRequest].method;
-        }
-      }
-      if (url == null) {
-        let location = this.headers.value(io.HttpHeaders.LOCATION);
-        if (location == null) {
-          dart.throw(new core.StateError("Response has no Location header for redirect"));
-        }
-        url = core.Uri.parse(location);
-      }
-      if (followLoops != true) {
-        for (let redirect of this.redirects) {
-          if (dart.equals(redirect.location, url)) {
-            return FutureOfHttpClientResponse().error(new io.RedirectException("Redirect loop detected", this.redirects));
-          }
-        }
-      }
-      return this[_httpClient][_openUrlFromRequest](method, url, this[_httpRequest]).then(io.HttpClientResponse)(dart.fn(request => {
-        let _ = request[_responseRedirects];
-        _[dartx.addAll](this.redirects);
-        _[dartx.add](new io._RedirectInfo(this.statusCode, method, url));
-        return request.close();
-      }, _HttpClientRequestToFutureOfHttpClientResponse()));
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      if (dart.test(this[_incoming].upgraded)) {
-        this[_httpRequest][_httpClientConnection].destroy();
-        return StreamSubscriptionOfListOfint()._check(async.Stream.fromIterable([]).listen(null, {onDone: onDone}));
-      }
-      let stream = this[_incoming];
-      if (dart.test(this[_httpClient].autoUncompress) && this.headers.value(io.HttpHeaders.CONTENT_ENCODING) == "gzip") {
-        stream = io._HttpIncoming._check(stream.transform(ListOfint())(io.GZIP.decoder));
-      }
-      return stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    detachSocket() {
-      this[_httpClient][_connectionClosed](this[_httpRequest][_httpClientConnection]);
-      return this[_httpRequest][_httpClientConnection].detachSocket();
-    }
-    get connectionInfo() {
-      return this[_httpRequest].connectionInfo;
-    }
-    get [_shouldAuthenticateProxy]() {
-      let challenge = this.headers._get(io.HttpHeaders.PROXY_AUTHENTICATE);
-      return this.statusCode == io.HttpStatus.PROXY_AUTHENTICATION_REQUIRED && challenge != null && challenge[dartx.length] == 1;
-    }
-    get [_shouldAuthenticate]() {
-      let challenge = this.headers._get(io.HttpHeaders.WWW_AUTHENTICATE);
-      return this.statusCode == io.HttpStatus.UNAUTHORIZED && challenge != null && challenge[dartx.length] == 1;
-    }
-    [_authenticate](proxyAuth) {
-      const retry = (function() {
-        return this.drain(dart.dynamic)().then(io.HttpClientResponse)(dart.fn(_ => this[_httpClient][_openUrlFromRequest](this[_httpRequest].method, this[_httpRequest].uri, this[_httpRequest]).then(io.HttpClientResponse)(dart.fn(request => request.close(), _HttpClientRequestToFutureOfHttpClientResponse())), dynamicToFutureOfHttpClientResponse()));
-      }).bind(this);
-      dart.fn(retry, VoidToFutureOfHttpClientResponse());
-      const authChallenge = (function() {
-        return dart.test(proxyAuth) ? this.headers._get(io.HttpHeaders.PROXY_AUTHENTICATE) : this.headers._get(io.HttpHeaders.WWW_AUTHENTICATE);
-      }).bind(this);
-      dart.fn(authChallenge, VoidToListOfString());
-      const findCredentials = (function(scheme) {
-        return dart.test(proxyAuth) ? this[_httpClient][_findProxyCredentials](this[_httpRequest][_proxy], scheme) : this[_httpClient][_findCredentials](this[_httpRequest].uri, scheme);
-      }).bind(this);
-      dart.fn(findCredentials, _AuthenticationSchemeTo_Credentials());
-      const removeCredentials = (function(cr) {
-        if (dart.test(proxyAuth)) {
-          this[_httpClient][_removeProxyCredentials](cr);
-        } else {
-          this[_httpClient][_removeCredentials](cr);
-        }
-      }).bind(this);
-      dart.fn(removeCredentials, _CredentialsTovoid());
-      const requestAuthentication = (function(scheme, realm) {
-        if (dart.test(proxyAuth)) {
-          if (this[_httpClient][_authenticateProxy] == null) {
-            return async.Future.value(false);
-          }
-          let proxy = this[_httpRequest][_proxy];
-          return async.Future._check(dart.dsend(this[_httpClient], _authenticateProxy, proxy.host, proxy.port, dart.toString(scheme), realm));
-        } else {
-          if (this[_httpClient][_authenticate] == null) {
-            return async.Future.value(false);
-          }
-          return async.Future._check(dart.dsend(this[_httpClient], _authenticate, this[_httpRequest].uri, dart.toString(scheme), realm));
-        }
-      }).bind(this);
-      dart.fn(requestAuthentication, _AuthenticationSchemeAndStringToFuture());
-      let challenge = authChallenge();
-      dart.assert(challenge != null || challenge[dartx.length] == 1);
-      let header = io._HeaderValue.parse(challenge[dartx._get](0), {parameterSeparator: ","});
-      let scheme = io._AuthenticationScheme.fromString(header.value);
-      let realm = header.parameters[dartx._get]("realm");
-      let cr = findCredentials(scheme);
-      if (cr != null) {
-        if (dart.equals(cr.scheme, io._AuthenticationScheme.BASIC) && !dart.test(cr.used)) {
-          return retry();
-        }
-        if (dart.equals(cr.scheme, io._AuthenticationScheme.DIGEST) && (header.parameters[dartx._get]("algorithm") == null || header.parameters[dartx._get]("algorithm")[dartx.toLowerCase]() == "md5")) {
-          if (cr.nonce == null || cr.nonce == header.parameters[dartx._get]("nonce")) {
-            if (cr.nonce == null) {
-              let _ = cr;
-              _.nonce = header.parameters[dartx._get]("nonce");
-              _.algorithm = "MD5";
-              _.qop = header.parameters[dartx._get]("qop");
-              _.nonceCount = 0;
-            }
-            return retry();
-          } else if (header.parameters[dartx._get]("stale") != null && header.parameters[dartx._get]("stale")[dartx.toLowerCase]() == "true") {
-            cr.nonce = header.parameters[dartx._get]("nonce");
-            return retry();
-          }
-        }
-      }
-      if (cr != null) {
-        removeCredentials(cr);
-        cr = null;
-      }
-      return requestAuthentication(scheme, realm).then(io.HttpClientResponse)(dart.fn(credsAvailable => {
-        if (dart.test(credsAvailable)) {
-          cr = this[_httpClient][_findCredentials](this[_httpRequest].uri, scheme);
-          return retry();
-        } else {
-          return this;
-        }
-      }, dynamicToFutureOrOfHttpClientResponse()));
-    }
-  };
-  io._HttpClientResponse[dart.implements] = () => [io.HttpClientResponse];
-  dart.setSignature(io._HttpClientResponse, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpClientResponse, [io._HttpIncoming, io._HttpClientRequest, io._HttpClient])}),
-    fields: () => ({
-      [_httpClient]: io._HttpClient,
-      [_httpRequest]: io._HttpClientRequest
-    }),
-    getters: () => ({
-      redirects: dart.definiteFunctionType(core.List$(io.RedirectInfo), []),
-      statusCode: dart.definiteFunctionType(core.int, []),
-      reasonPhrase: dart.definiteFunctionType(core.String, []),
-      certificate: dart.definiteFunctionType(io.X509Certificate, []),
-      isRedirect: dart.definiteFunctionType(core.bool, []),
-      connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
-      [_shouldAuthenticateProxy]: dart.definiteFunctionType(core.bool, []),
-      [_shouldAuthenticate]: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      redirect: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), [], [core.String, core.Uri, core.bool]),
-      listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
-      [_authenticate]: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), [core.bool])
-    })
-  });
-  const _uri = Symbol('_uri');
-  const _outgoing = Symbol('_outgoing');
-  const _encodingSet = Symbol('_encodingSet');
-  const _bufferOutput = Symbol('_bufferOutput');
-  const _encodingMutable = Symbol('_encodingMutable');
-  const _encoding = Symbol('_encoding');
-  const _isConnectionClosed = Symbol('_isConnectionClosed');
-  const _doneCompleter = Symbol('_doneCompleter');
-  const _target$ = Symbol('_target');
-  const _controllerInstance = Symbol('_controllerInstance');
-  const _controllerCompleter = Symbol('_controllerCompleter');
-  const _isClosed$0 = Symbol('_isClosed');
-  const _isBound = Symbol('_isBound');
-  const _hasError$ = Symbol('_hasError');
-  const _closeTarget = Symbol('_closeTarget');
-  const _completeDoneValue = Symbol('_completeDoneValue');
-  const _completeDoneError = Symbol('_completeDoneError');
-  io._StreamSinkImpl$ = dart.generic(T => {
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    let StreamSinkOfT = () => (StreamSinkOfT = dart.constFn(async.StreamSink$(T)))();
-    let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
-    class _StreamSinkImpl extends core.Object {
-      new(target) {
-        this[_doneCompleter] = async.Completer.new();
-        this[_target$] = target;
-        this[_controllerInstance] = null;
-        this[_controllerCompleter] = null;
-        this[_isClosed$0] = false;
-        this[_isBound] = false;
-        this[_hasError$] = false;
-      }
-      add(data) {
-        T._check(data);
-        if (dart.test(this[_isClosed$0])) return;
-        this[_controller$0].add(data);
-      }
-      addError(error, stackTrace) {
-        if (stackTrace === void 0) stackTrace = null;
-        this[_controller$0].addError(error, stackTrace);
-      }
-      addStream(stream) {
-        StreamOfT()._check(stream);
-        if (dart.test(this[_isBound])) {
-          dart.throw(new core.StateError("StreamSink is already bound to a stream"));
-        }
-        this[_isBound] = true;
-        if (dart.test(this[_hasError$])) return this.done;
-        const targetAddStream = (function() {
-          return this[_target$].addStream(stream).whenComplete(dart.fn(() => {
-            this[_isBound] = false;
-          }, VoidToNull()));
-        }).bind(this);
-        dart.fn(targetAddStream, VoidToFuture());
-        if (this[_controllerInstance] == null) return targetAddStream();
-        let future = this[_controllerCompleter].future;
-        this[_controllerInstance].close();
-        return future.then(dart.dynamic)(dart.fn(_ => targetAddStream(), dynamicToFuture()));
-      }
-      flush() {
-        if (dart.test(this[_isBound])) {
-          dart.throw(new core.StateError("StreamSink is bound to a stream"));
-        }
-        if (this[_controllerInstance] == null) return async.Future.value(this);
-        this[_isBound] = true;
-        let future = this[_controllerCompleter].future;
-        this[_controllerInstance].close();
-        return future.whenComplete(dart.fn(() => {
-          this[_isBound] = false;
-        }, VoidToNull()));
-      }
-      close() {
-        if (dart.test(this[_isBound])) {
-          dart.throw(new core.StateError("StreamSink is bound to a stream"));
-        }
-        if (!dart.test(this[_isClosed$0])) {
-          this[_isClosed$0] = true;
-          if (this[_controllerInstance] != null) {
-            this[_controllerInstance].close();
-          } else {
-            this[_closeTarget]();
-          }
-        }
-        return this.done;
-      }
-      [_closeTarget]() {
-        this[_target$].close().then(dart.void)(dart.bind(this, _completeDoneValue), {onError: dart.bind(this, _completeDoneError)});
-      }
-      get done() {
-        return this[_doneCompleter].future;
-      }
-      [_completeDoneValue](value) {
-        if (!dart.test(this[_doneCompleter].isCompleted)) {
-          this[_doneCompleter].complete(value);
-        }
-      }
-      [_completeDoneError](error, stackTrace) {
-        if (!dart.test(this[_doneCompleter].isCompleted)) {
-          this[_hasError$] = true;
-          this[_doneCompleter].completeError(error, stackTrace);
-        }
-      }
-      get [_controller$0]() {
-        if (dart.test(this[_isBound])) {
-          dart.throw(new core.StateError("StreamSink is bound to a stream"));
-        }
-        if (dart.test(this[_isClosed$0])) {
-          dart.throw(new core.StateError("StreamSink is closed"));
-        }
-        if (this[_controllerInstance] == null) {
-          this[_controllerInstance] = StreamControllerOfT().new({sync: true});
-          this[_controllerCompleter] = async.Completer.new();
-          this[_target$].addStream(this[_controller$0].stream).then(dart.dynamic)(dart.fn(_ => {
-            if (dart.test(this[_isBound])) {
-              this[_controllerCompleter].complete(this);
-              this[_controllerCompleter] = null;
-              this[_controllerInstance] = null;
-            } else {
-              this[_closeTarget]();
-            }
-          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
-              if (dart.test(this[_isBound])) {
-                this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
-                this[_controllerCompleter] = null;
-                this[_controllerInstance] = null;
-              } else {
-                this[_completeDoneError](error, core.StackTrace._check(stackTrace));
-              }
-            }, dynamicAnddynamicToNull())});
-        }
-        return this[_controllerInstance];
-      }
-    }
-    dart.addTypeTests(_StreamSinkImpl);
-    _StreamSinkImpl[dart.implements] = () => [StreamSinkOfT()];
-    dart.setSignature(_StreamSinkImpl, {
-      constructors: () => ({new: dart.definiteFunctionType(io._StreamSinkImpl$(T), [StreamConsumerOfT()])}),
-      fields: () => ({
-        [_target$]: StreamConsumerOfT(),
-        [_doneCompleter]: async.Completer,
-        [_controllerInstance]: StreamControllerOfT(),
-        [_controllerCompleter]: async.Completer,
-        [_isClosed$0]: core.bool,
-        [_isBound]: core.bool,
-        [_hasError$]: core.bool
-      }),
-      getters: () => ({
-        done: dart.definiteFunctionType(async.Future, []),
-        [_controller$0]: dart.definiteFunctionType(async.StreamController$(T), [])
-      }),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [T]),
-        addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-        addStream: dart.definiteFunctionType(async.Future, [StreamOfT()]),
-        flush: dart.definiteFunctionType(async.Future, []),
-        close: dart.definiteFunctionType(async.Future, []),
-        [_closeTarget]: dart.definiteFunctionType(dart.void, []),
-        [_completeDoneValue]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-        [_completeDoneError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])
-      })
-    });
-    return _StreamSinkImpl;
-  });
-  io._StreamSinkImpl = _StreamSinkImpl();
-  io._IOSinkImpl = class _IOSinkImpl extends io._StreamSinkImpl$(core.List$(core.int)) {
-    new(target, encoding) {
-      this[_encoding] = encoding;
-      this[_encodingMutable] = true;
-      super.new(target);
-    }
-    get encoding() {
-      return this[_encoding];
-    }
-    set encoding(value) {
-      if (!dart.test(this[_encodingMutable])) {
-        dart.throw(new core.StateError("IOSink encoding is not mutable"));
-      }
-      this[_encoding] = value;
-    }
-    write(obj) {
-      let string = dart.str`${obj}`;
-      if (dart.test(string[dartx.isEmpty])) return;
-      this.add(this[_encoding].encode(string));
-    }
-    writeAll(objects, separator) {
-      if (separator === void 0) separator = "";
-      let iterator = objects[dartx.iterator];
-      if (!dart.test(iterator.moveNext())) return;
-      if (dart.test(separator[dartx.isEmpty])) {
-        do {
-          this.write(iterator.current);
-        } while (dart.test(iterator.moveNext()));
-      } else {
-        this.write(iterator.current);
-        while (dart.test(iterator.moveNext())) {
-          this.write(separator);
-          this.write(iterator.current);
-        }
-      }
-    }
-    writeln(object) {
-      if (object === void 0) object = "";
-      this.write(object);
-      this.write("\n");
-    }
-    writeCharCode(charCode) {
-      this.write(core.String.fromCharCode(charCode));
-    }
-  };
-  dart.addSimpleTypeTests(io._IOSinkImpl);
-  io._IOSinkImpl[dart.implements] = () => [io.IOSink];
-  dart.setSignature(io._IOSinkImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(io._IOSinkImpl, [StreamConsumerOfListOfint(), convert.Encoding])}),
-    fields: () => ({
-      [_encoding]: convert.Encoding,
-      [_encodingMutable]: core.bool
-    }),
-    getters: () => ({encoding: dart.definiteFunctionType(convert.Encoding, [])}),
-    setters: () => ({encoding: dart.definiteFunctionType(dart.void, [convert.Encoding])}),
-    methods: () => ({
-      write: dart.definiteFunctionType(dart.void, [core.Object]),
-      writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
-      writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int])
-    })
-  });
-  io._HttpOutboundMessage$ = dart.generic(T => {
-    class _HttpOutboundMessage extends io._IOSinkImpl {
-      new(uri, protocolVersion, outgoing, opts) {
-        let initialHeaders = opts && 'initialHeaders' in opts ? opts.initialHeaders : null;
-        this[_uri] = uri;
-        this.headers = new io._HttpHeaders(protocolVersion, {defaultPortForScheme: uri.scheme == 'https' ? io.HttpClient.DEFAULT_HTTPS_PORT : io.HttpClient.DEFAULT_HTTP_PORT, initialHeaders: initialHeaders});
-        this[_outgoing] = outgoing;
-        this[_encodingSet] = false;
-        this[_bufferOutput] = true;
-        super.new(outgoing, null);
-        this[_outgoing].outbound = this;
-        this[_encodingMutable] = false;
-      }
-      get contentLength() {
-        return this.headers.contentLength;
-      }
-      set contentLength(contentLength) {
-        this.headers.contentLength = contentLength;
-      }
-      get persistentConnection() {
-        return this.headers.persistentConnection;
-      }
-      set persistentConnection(p) {
-        this.headers.persistentConnection = p;
-      }
-      get bufferOutput() {
-        return this[_bufferOutput];
-      }
-      set bufferOutput(bufferOutput) {
-        if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
-        this[_bufferOutput] = bufferOutput;
-      }
-      get encoding() {
-        if (dart.test(this[_encodingSet]) && dart.test(this[_outgoing].headersWritten)) {
-          return this[_encoding];
-        }
-        let charset = null;
-        if (this.headers.contentType != null && this.headers.contentType.charset != null) {
-          charset = this.headers.contentType.charset;
-        } else {
-          charset = "iso-8859-1";
-        }
-        return convert.Encoding.getByName(core.String._check(charset));
-      }
-      set encoding(value) {
-        super.encoding = value;
-      }
-      add(data) {
-        if (data[dartx.length] == 0) return;
-        super.add(data);
-      }
-      write(obj) {
-        if (!dart.test(this[_encodingSet])) {
-          this[_encoding] = this.encoding;
-          this[_encodingSet] = true;
-        }
-        super.write(obj);
-      }
-      get [_isConnectionClosed]() {
-        return false;
-      }
-    }
-    dart.addTypeTests(_HttpOutboundMessage);
-    dart.setSignature(_HttpOutboundMessage, {
-      constructors: () => ({new: dart.definiteFunctionType(io._HttpOutboundMessage$(T), [core.Uri, core.String, io._HttpOutgoing], {initialHeaders: io._HttpHeaders})}),
-      fields: () => ({
-        [_encodingSet]: core.bool,
-        [_bufferOutput]: core.bool,
-        [_uri]: core.Uri,
-        [_outgoing]: io._HttpOutgoing,
-        headers: io._HttpHeaders
-      }),
-      getters: () => ({
-        contentLength: dart.definiteFunctionType(core.int, []),
-        persistentConnection: dart.definiteFunctionType(core.bool, []),
-        bufferOutput: dart.definiteFunctionType(core.bool, []),
-        [_isConnectionClosed]: dart.definiteFunctionType(core.bool, [])
-      }),
-      setters: () => ({
-        contentLength: dart.definiteFunctionType(dart.void, [core.int]),
-        persistentConnection: dart.definiteFunctionType(dart.void, [core.bool]),
-        bufferOutput: dart.definiteFunctionType(dart.void, [core.bool])
-      })
-    });
-    return _HttpOutboundMessage;
-  });
-  io._HttpOutboundMessage = _HttpOutboundMessage();
-  const _statusCode = Symbol('_statusCode');
-  const _reasonPhrase = Symbol('_reasonPhrase');
-  const _deadline = Symbol('_deadline');
-  const _deadlineTimer = Symbol('_deadlineTimer');
-  const _isClosing = Symbol('_isClosing');
-  const _findReasonPhrase = Symbol('_findReasonPhrase');
-  const _isNew = Symbol('_isNew');
-  const _writeHeader = Symbol('_writeHeader');
-  io._HttpResponse = class _HttpResponse extends io._HttpOutboundMessage$(io.HttpResponse) {
-    new(uri, protocolVersion, outgoing, defaultHeaders, serverHeader) {
-      this[_statusCode] = 200;
-      this[_reasonPhrase] = null;
-      this[_cookies] = null;
-      this[_httpRequest] = null;
-      this[_deadline] = null;
-      this[_deadlineTimer] = null;
-      super.new(uri, protocolVersion, outgoing, {initialHeaders: io._HttpHeaders._check(defaultHeaders)});
-      if (serverHeader != null) this.headers.set('server', serverHeader);
-    }
-    get [_isConnectionClosed]() {
-      return this[_httpRequest][_httpConnection][_isClosing];
-    }
-    get cookies() {
-      if (this[_cookies] == null) this[_cookies] = ListOfCookie().new();
-      return this[_cookies];
-    }
-    get statusCode() {
-      return this[_statusCode];
-    }
-    set statusCode(statusCode) {
-      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
-      this[_statusCode] = statusCode;
-    }
-    get reasonPhrase() {
-      return this[_findReasonPhrase](this.statusCode);
-    }
-    set reasonPhrase(reasonPhrase) {
-      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
-      this[_reasonPhrase] = reasonPhrase;
-    }
-    redirect(location, opts) {
-      let status = opts && 'status' in opts ? opts.status : io.HttpStatus.MOVED_TEMPORARILY;
-      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Header already sent"));
-      this.statusCode = status;
-      this.headers.set("location", dart.toString(location));
-      return this.close();
-    }
-    detachSocket(opts) {
-      let writeHeaders = opts && 'writeHeaders' in opts ? opts.writeHeaders : true;
-      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Headers already sent"));
-      this.deadline = null;
-      let future = this[_httpRequest][_httpConnection].detachSocket();
-      if (dart.test(writeHeaders)) {
-        let headersFuture = this[_outgoing].writeHeaders({drainRequest: false, setOutgoing: false});
-        dart.assert(headersFuture == null);
-      } else {
-        this[_outgoing].headersWritten = true;
-      }
-      this.close();
-      this.done.catchError(dart.fn(_ => {
-      }, dynamicToNull$()));
-      return future;
-    }
-    get connectionInfo() {
-      return this[_httpRequest].connectionInfo;
-    }
-    get deadline() {
-      return this[_deadline];
-    }
-    set deadline(d) {
-      if (this[_deadlineTimer] != null) this[_deadlineTimer].cancel();
-      this[_deadline] = d;
-      if (this[_deadline] == null) return;
-      this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
-        this[_httpRequest][_httpConnection].destroy();
-      }, VoidToNull()));
-    }
-    [_writeHeader]() {
-      let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
-      let offset = 0;
-      function write(bytes) {
-        let len = bytes[dartx.length];
-        for (let i = 0; i < dart.notNull(len); i++) {
-          buffer[dartx._set](dart.notNull(offset) + i, bytes[dartx._get](i));
-        }
-        offset = dart.notNull(offset) + dart.notNull(len);
-      }
-      dart.fn(write, ListOfintTovoid$());
-      if (this.headers.protocolVersion == "1.1") {
-        write(io._Const.HTTP11);
-      } else {
-        write(io._Const.HTTP10);
-      }
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.SP);
-      write(dart.toString(this.statusCode)[dartx.codeUnits]);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.SP);
-      write(this.reasonPhrase[dartx.codeUnits]);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.CR);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.LF);
-      let session = this[_httpRequest][_session];
-      if (session != null && !dart.test(session[_destroyed])) {
-        session[_isNew] = false;
-        let found = false;
-        for (let i = 0; i < dart.notNull(this.cookies[dartx.length]); i++) {
-          if (this.cookies[dartx._get](i).name[dartx.toUpperCase]() == io._DART_SESSION_ID) {
-            let _ = this.cookies[dartx._get](i);
-            _.value = session.id;
-            _.httpOnly = true;
-            _.path = "/";
-            found = true;
-          }
-        }
-        if (!found) {
-          let cookie = io.Cookie.new(io._DART_SESSION_ID, session.id);
-          this.cookies[dartx.add](((() => {
-            cookie.httpOnly = true;
-            cookie.path = "/";
-            return cookie;
-          })()));
-        }
-      }
-      if (this[_cookies] != null) {
-        this[_cookies][dartx.forEach](dart.fn(cookie => {
-          this.headers.add(io.HttpHeaders.SET_COOKIE, cookie);
-        }, CookieToNull()));
-      }
-      this.headers[_finalize]();
-      offset = this.headers[_write](buffer, offset);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.CR);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.LF);
-      this[_outgoing].setHeader(buffer, offset);
-    }
-    [_findReasonPhrase](statusCode) {
-      if (this[_reasonPhrase] != null) {
-        return this[_reasonPhrase];
-      }
-      switch (statusCode) {
-        case io.HttpStatus.CONTINUE:
-        {
-          return "Continue";
-        }
-        case io.HttpStatus.SWITCHING_PROTOCOLS:
-        {
-          return "Switching Protocols";
-        }
-        case io.HttpStatus.OK:
-        {
-          return "OK";
-        }
-        case io.HttpStatus.CREATED:
-        {
-          return "Created";
-        }
-        case io.HttpStatus.ACCEPTED:
-        {
-          return "Accepted";
-        }
-        case io.HttpStatus.NON_AUTHORITATIVE_INFORMATION:
-        {
-          return "Non-Authoritative Information";
-        }
-        case io.HttpStatus.NO_CONTENT:
-        {
-          return "No Content";
-        }
-        case io.HttpStatus.RESET_CONTENT:
-        {
-          return "Reset Content";
-        }
-        case io.HttpStatus.PARTIAL_CONTENT:
-        {
-          return "Partial Content";
-        }
-        case io.HttpStatus.MULTIPLE_CHOICES:
-        {
-          return "Multiple Choices";
-        }
-        case io.HttpStatus.MOVED_PERMANENTLY:
-        {
-          return "Moved Permanently";
-        }
-        case io.HttpStatus.FOUND:
-        {
-          return "Found";
-        }
-        case io.HttpStatus.SEE_OTHER:
-        {
-          return "See Other";
-        }
-        case io.HttpStatus.NOT_MODIFIED:
-        {
-          return "Not Modified";
-        }
-        case io.HttpStatus.USE_PROXY:
-        {
-          return "Use Proxy";
-        }
-        case io.HttpStatus.TEMPORARY_REDIRECT:
-        {
-          return "Temporary Redirect";
-        }
-        case io.HttpStatus.BAD_REQUEST:
-        {
-          return "Bad Request";
-        }
-        case io.HttpStatus.UNAUTHORIZED:
-        {
-          return "Unauthorized";
-        }
-        case io.HttpStatus.PAYMENT_REQUIRED:
-        {
-          return "Payment Required";
-        }
-        case io.HttpStatus.FORBIDDEN:
-        {
-          return "Forbidden";
-        }
-        case io.HttpStatus.NOT_FOUND:
-        {
-          return "Not Found";
-        }
-        case io.HttpStatus.METHOD_NOT_ALLOWED:
-        {
-          return "Method Not Allowed";
-        }
-        case io.HttpStatus.NOT_ACCEPTABLE:
-        {
-          return "Not Acceptable";
-        }
-        case io.HttpStatus.PROXY_AUTHENTICATION_REQUIRED:
-        {
-          return "Proxy Authentication Required";
-        }
-        case io.HttpStatus.REQUEST_TIMEOUT:
-        {
-          return "Request Time-out";
-        }
-        case io.HttpStatus.CONFLICT:
-        {
-          return "Conflict";
-        }
-        case io.HttpStatus.GONE:
-        {
-          return "Gone";
-        }
-        case io.HttpStatus.LENGTH_REQUIRED:
-        {
-          return "Length Required";
-        }
-        case io.HttpStatus.PRECONDITION_FAILED:
-        {
-          return "Precondition Failed";
-        }
-        case io.HttpStatus.REQUEST_ENTITY_TOO_LARGE:
-        {
-          return "Request Entity Too Large";
-        }
-        case io.HttpStatus.REQUEST_URI_TOO_LONG:
-        {
-          return "Request-URI Too Large";
-        }
-        case io.HttpStatus.UNSUPPORTED_MEDIA_TYPE:
-        {
-          return "Unsupported Media Type";
-        }
-        case io.HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE:
-        {
-          return "Requested range not satisfiable";
-        }
-        case io.HttpStatus.EXPECTATION_FAILED:
-        {
-          return "Expectation Failed";
-        }
-        case io.HttpStatus.INTERNAL_SERVER_ERROR:
-        {
-          return "Internal Server Error";
-        }
-        case io.HttpStatus.NOT_IMPLEMENTED:
-        {
-          return "Not Implemented";
-        }
-        case io.HttpStatus.BAD_GATEWAY:
-        {
-          return "Bad Gateway";
-        }
-        case io.HttpStatus.SERVICE_UNAVAILABLE:
-        {
-          return "Service Unavailable";
-        }
-        case io.HttpStatus.GATEWAY_TIMEOUT:
-        {
-          return "Gateway Time-out";
-        }
-        case io.HttpStatus.HTTP_VERSION_NOT_SUPPORTED:
-        {
-          return "Http Version not supported";
-        }
-        default:
-        {
-          return dart.str`Status ${statusCode}`;
-        }
-      }
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpResponse);
-  io._HttpResponse[dart.implements] = () => [io.HttpResponse];
-  dart.setSignature(io._HttpResponse, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpResponse, [core.Uri, core.String, io._HttpOutgoing, io.HttpHeaders, core.String])}),
-    fields: () => ({
-      [_statusCode]: core.int,
-      [_reasonPhrase]: core.String,
-      [_cookies]: ListOfCookie(),
-      [_httpRequest]: io._HttpRequest,
-      [_deadline]: core.Duration,
-      [_deadlineTimer]: async.Timer
-    }),
-    getters: () => ({
-      cookies: dart.definiteFunctionType(core.List$(io.Cookie), []),
-      statusCode: dart.definiteFunctionType(core.int, []),
-      reasonPhrase: dart.definiteFunctionType(core.String, []),
-      connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
-      deadline: dart.definiteFunctionType(core.Duration, [])
-    }),
-    setters: () => ({
-      statusCode: dart.definiteFunctionType(dart.void, [core.int]),
-      reasonPhrase: dart.definiteFunctionType(dart.void, [core.String]),
-      deadline: dart.definiteFunctionType(dart.void, [core.Duration])
-    }),
-    methods: () => ({
-      redirect: dart.definiteFunctionType(async.Future, [core.Uri], {status: core.int}),
-      detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), [], {writeHeaders: core.bool}),
-      [_writeHeader]: dart.definiteFunctionType(dart.void, []),
-      [_findReasonPhrase]: dart.definiteFunctionType(core.String, [core.int])
-    })
-  });
-  const _responseCompleter = Symbol('_responseCompleter');
-  const _response = Symbol('_response');
-  const _followRedirects = Symbol('_followRedirects');
-  const _maxRedirects = Symbol('_maxRedirects');
-  const _onIncoming = Symbol('_onIncoming');
-  const _onError$ = Symbol('_onError');
-  const _proxyTunnel = Symbol('_proxyTunnel');
-  const _requestUri = Symbol('_requestUri');
-  io._HttpClientRequest = class _HttpClientRequest extends io._HttpOutboundMessage$(io.HttpClientResponse) {
-    new(outgoing, uri, method, proxy, httpClient, httpClientConnection) {
-      this.cookies = ListOfCookie().new();
-      this[_responseCompleter] = CompleterOfHttpClientResponse().new();
-      this[_responseRedirects] = JSArrayOfRedirectInfo().of([]);
-      this.method = method;
-      this[_proxy] = proxy;
-      this[_httpClient] = httpClient;
-      this[_httpClientConnection] = httpClientConnection;
-      this.uri = uri;
-      this[_response] = null;
-      this[_followRedirects] = true;
-      this[_maxRedirects] = 5;
-      super.new(uri, "1.1", outgoing);
-      if (this.method == "GET" || this.method == "HEAD") {
-        this.contentLength = 0;
-      } else {
-        this.headers.chunkedTransferEncoding = true;
-      }
-    }
-    get done() {
-      if (this[_response] == null) {
-        this[_response] = async.Future.wait(dart.dynamic)(JSArrayOfFuture().of([this[_responseCompleter].future, super.done]), {eagerError: true}).then(io.HttpClientResponse)(dart.fn(list => FutureOrOfHttpClientResponse()._check(list[dartx._get](0)), ListToFutureOrOfHttpClientResponse()));
-      }
-      return this[_response];
-    }
-    close() {
-      super.close();
-      return this.done;
-    }
-    get maxRedirects() {
-      return this[_maxRedirects];
-    }
-    set maxRedirects(maxRedirects) {
-      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Request already sent"));
-      this[_maxRedirects] = maxRedirects;
-    }
-    get followRedirects() {
-      return this[_followRedirects];
-    }
-    set followRedirects(followRedirects) {
-      if (dart.test(this[_outgoing].headersWritten)) dart.throw(new core.StateError("Request already sent"));
-      this[_followRedirects] = followRedirects;
-    }
-    get connectionInfo() {
-      return this[_httpClientConnection].connectionInfo;
-    }
-    [_onIncoming](incoming) {
-      let response = new io._HttpClientResponse(incoming, this, this[_httpClient]);
-      let future = null;
-      if (dart.test(this.followRedirects) && dart.test(response.isRedirect)) {
-        if (dart.notNull(response.redirects[dartx.length]) < dart.notNull(this.maxRedirects)) {
-          future = response.drain(dart.dynamic)().then(io.HttpClientResponse)(dart.fn(_ => response.redirect(), dynamicToFutureOfHttpClientResponse()));
-        } else {
-          future = response.drain(dart.dynamic)().then(io.HttpClientResponse)(dart.fn(_ => FutureOfHttpClientResponse().error(new io.RedirectException("Redirect limit exceeded", response.redirects)), dynamicToFutureOfHttpClientResponse()));
-        }
-      } else if (dart.test(response[_shouldAuthenticateProxy])) {
-        future = response[_authenticate](true);
-      } else if (dart.test(response[_shouldAuthenticate])) {
-        future = response[_authenticate](false);
-      } else {
-        future = FutureOfHttpClientResponse().value(response);
-      }
-      future.then(dart.void)(dart.fn(v => this[_responseCompleter].complete(v), HttpClientResponseTovoid()), {onError: dart.bind(this[_responseCompleter], 'completeError')});
-    }
-    [_onError$](error, stackTrace) {
-      this[_responseCompleter].completeError(error, stackTrace);
-    }
-    [_requestUri]() {
-      const uriStartingFromPath = (function() {
-        let result = this.uri.path;
-        if (dart.test(result[dartx.isEmpty])) result = "/";
-        if (dart.test(this.uri.hasQuery)) {
-          result = dart.str`${result}?${this.uri.query}`;
-        }
-        return result;
-      }).bind(this);
-      dart.fn(uriStartingFromPath, VoidToString$());
-      if (dart.test(this[_proxy].isDirect)) {
-        return uriStartingFromPath();
-      } else {
-        if (this.method == "CONNECT") {
-          return dart.str`${this.uri.host}:${this.uri.port}`;
-        } else {
-          if (dart.test(this[_httpClientConnection][_proxyTunnel])) {
-            return uriStartingFromPath();
-          } else {
-            return dart.toString(this.uri.removeFragment());
-          }
-        }
-      }
-    }
-    [_writeHeader]() {
-      let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
-      let offset = 0;
-      function write(bytes) {
-        let len = bytes[dartx.length];
-        for (let i = 0; i < dart.notNull(len); i++) {
-          buffer[dartx._set](dart.notNull(offset) + i, bytes[dartx._get](i));
-        }
-        offset = dart.notNull(offset) + dart.notNull(len);
-      }
-      dart.fn(write, ListOfintTovoid$());
-      write(this.method[dartx.codeUnits]);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.SP);
-      write(this[_requestUri]()[dartx.codeUnits]);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.SP);
-      write(io._Const.HTTP11);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.CR);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.LF);
-      if (!dart.test(this.cookies[dartx.isEmpty])) {
-        let sb = new core.StringBuffer();
-        for (let i = 0; i < dart.notNull(this.cookies[dartx.length]); i++) {
-          if (i > 0) sb.write("; ");
-          sb.write(this.cookies[dartx._get](i).name);
-          sb.write("=");
-          sb.write(this.cookies[dartx._get](i).value);
-        }
-        this.headers.add(io.HttpHeaders.COOKIE, sb.toString());
-      }
-      this.headers[_finalize]();
-      offset = this.headers[_write](buffer, offset);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.CR);
-      buffer[dartx._set]((() => {
-        let x = offset;
-        offset = dart.notNull(x) + 1;
-        return x;
-      })(), io._CharCode.LF);
-      this[_outgoing].setHeader(buffer, offset);
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpClientRequest);
-  io._HttpClientRequest[dart.implements] = () => [io.HttpClientRequest];
-  dart.setSignature(io._HttpClientRequest, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpClientRequest, [io._HttpOutgoing, core.Uri, core.String, io._Proxy, io._HttpClient, io._HttpClientConnection])}),
-    fields: () => ({
-      method: core.String,
-      uri: core.Uri,
-      cookies: ListOfCookie(),
-      [_httpClient]: io._HttpClient,
-      [_httpClientConnection]: io._HttpClientConnection,
-      [_responseCompleter]: CompleterOfHttpClientResponse(),
-      [_proxy]: io._Proxy,
-      [_response]: FutureOfHttpClientResponse(),
-      [_followRedirects]: core.bool,
-      [_maxRedirects]: core.int,
-      [_responseRedirects]: ListOfRedirectInfo()
-    }),
-    getters: () => ({
-      done: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), []),
-      maxRedirects: dart.definiteFunctionType(core.int, []),
-      followRedirects: dart.definiteFunctionType(core.bool, []),
-      connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, [])
-    }),
-    setters: () => ({
-      maxRedirects: dart.definiteFunctionType(dart.void, [core.int]),
-      followRedirects: dart.definiteFunctionType(dart.void, [core.bool])
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), []),
-      [_onIncoming]: dart.definiteFunctionType(dart.void, [io._HttpIncoming]),
-      [_onError$]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
-      [_requestUri]: dart.definiteFunctionType(core.String, []),
-      [_writeHeader]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _consume = Symbol('_consume');
-  io._HttpGZipSink = class _HttpGZipSink extends convert.ByteConversionSink {
-    new(consume) {
-      this[_consume] = consume;
-      super.new();
-    }
-    add(chunk) {
-      dart.dcall(this[_consume], chunk);
-    }
-    addSlice(chunk, start, end, isLast) {
-      if (typed_data.Uint8List.is(chunk)) {
-        dart.dcall(this[_consume], typed_data.Uint8List.view(chunk[dartx.buffer], start, dart.notNull(end) - dart.notNull(start)));
-      } else {
-        dart.dcall(this[_consume], chunk[dartx.sublist](start, dart.notNull(end) - dart.notNull(start)));
-      }
-    }
-    close() {}
-  };
-  dart.setSignature(io._HttpGZipSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpGZipSink, [core.Function])}),
-    fields: () => ({[_consume]: core.Function}),
-    methods: () => ({
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addSlice: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool]),
-      close: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _closeFuture = Symbol('_closeFuture');
-  const _pendingChunkedFooter = Symbol('_pendingChunkedFooter');
-  const _bytesWritten = Symbol('_bytesWritten');
-  const _gzip = Symbol('_gzip');
-  const _gzipSink = Symbol('_gzipSink');
-  const _gzipAdd = Symbol('_gzipAdd');
-  const _gzipBuffer = Symbol('_gzipBuffer');
-  const _gzipBufferLength = Symbol('_gzipBufferLength');
-  const _socketError = Symbol('_socketError');
-  const _addGZipChunk = Symbol('_addGZipChunk');
-  const _addChunk$ = Symbol('_addChunk');
-  const _chunkHeader = Symbol('_chunkHeader');
-  const _ignoreError = Symbol('_ignoreError');
-  let const$68;
-  io._HttpOutgoing = class _HttpOutgoing extends core.Object {
-    new(socket) {
-      this[_doneCompleter] = async.Completer.new();
-      this.socket = socket;
-      this.ignoreBody = false;
-      this.headersWritten = false;
-      this[_buffer$] = null;
-      this[_length$2] = 0;
-      this[_closeFuture] = null;
-      this.chunked = false;
-      this[_pendingChunkedFooter] = 0;
-      this.contentLength = null;
-      this[_bytesWritten] = 0;
-      this[_gzip] = false;
-      this[_gzipSink] = null;
-      this[_gzipAdd] = null;
-      this[_gzipBuffer] = null;
-      this[_gzipBufferLength] = 0;
-      this[_socketError] = false;
-      this.outbound = null;
-    }
-    writeHeaders(opts) {
-      let drainRequest = opts && 'drainRequest' in opts ? opts.drainRequest : true;
-      let setOutgoing = opts && 'setOutgoing' in opts ? opts.setOutgoing : true;
-      const write = (function() {
-        try {
-          this.outbound[_writeHeader]();
-        } catch (_) {
-          return async.Future.error(new io.HttpException(dart.str`Headers size exceeded the of '${io._OUTGOING_BUFFER_SIZE}'` + " bytes"));
-        }
-
-        return null;
-      }).bind(this);
-      dart.fn(write, VoidToFuture());
-      if (dart.test(this.headersWritten)) return null;
-      this.headersWritten = true;
-      let drainFuture = null;
-      let gzip = false;
-      if (io._HttpResponse.is(this.outbound)) {
-        let response = io._HttpResponse._check(this.outbound);
-        if (dart.test(response[_httpRequest][_httpServer].autoCompress) && dart.test(this.outbound.bufferOutput) && dart.test(this.outbound.headers.chunkedTransferEncoding)) {
-          let acceptEncodings = response[_httpRequest].headers._get(io.HttpHeaders.ACCEPT_ENCODING);
-          let contentEncoding = this.outbound.headers._get(io.HttpHeaders.CONTENT_ENCODING);
-          if (acceptEncodings != null && dart.test(acceptEncodings[dartx.expand](dart.dynamic)(dart.fn(list => core.Iterable._check(dart.dsend(list, 'split', ",")), dynamicToIterable()))[dartx.any](dart.fn(encoding => dart.equals(dart.dsend(dart.dsend(encoding, 'trim'), 'toLowerCase'), "gzip"), dynamicTobool$()))) && contentEncoding == null) {
-            this.outbound.headers.set(io.HttpHeaders.CONTENT_ENCODING, "gzip");
-            gzip = true;
-          }
-        }
-        if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
-          drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
-          }, dynamicToNull$()));
-        }
-      } else {
-        drainRequest = false;
-      }
-      if (dart.test(this.ignoreBody)) {
-        return write();
-      }
-      if (dart.test(setOutgoing)) {
-        let contentLength = this.outbound.headers.contentLength;
-        if (dart.test(this.outbound.headers.chunkedTransferEncoding)) {
-          this.chunked = true;
-          if (gzip) this.gzip = true;
-        } else if (dart.notNull(contentLength) >= 0) {
-          this.contentLength = contentLength;
-        }
-      }
-      if (drainFuture != null) {
-        return drainFuture.then(dart.dynamic)(dart.fn(_ => write(), dynamicToFuture()));
-      }
-      return write();
-    }
-    addStream(stream) {
-      if (dart.test(this[_socketError])) {
-        stream.listen(null).cancel();
-        return async.Future.value(this.outbound);
-      }
-      if (dart.test(this.ignoreBody)) {
-        stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
-        }, dynamicToNull$()));
-        let future = this.writeHeaders();
-        if (future != null) {
-          return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
-        }
-        return this.close();
-      }
-      let sub = null;
-      let controller = async.StreamController.new({onPause: dart.fn(() => dart.dsend(sub, 'pause'), VoidTovoid$()), onResume: dart.fn(() => dart.dsend(sub, 'resume'), VoidTovoid$()), sync: true});
-      const onData = (function(data) {
-        if (dart.test(this[_socketError])) return;
-        if (dart.equals(dart.dload(data, 'length'), 0)) return;
-        if (dart.test(this.chunked)) {
-          if (dart.test(this[_gzip])) {
-            this[_gzipAdd] = dart.bind(controller, 'add');
-            this[_addGZipChunk](data, dart.bind(this[_gzipSink], 'add'));
-            this[_gzipAdd] = null;
-            return;
-          }
-          this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), dart.bind(controller, 'add'));
-          this[_pendingChunkedFooter] = 2;
-        } else {
-          if (this.contentLength != null) {
-            this[_bytesWritten] = dart.notNull(this[_bytesWritten]) + dart.notNull(core.num._check(dart.dload(data, 'length')));
-            if (dart.notNull(this[_bytesWritten]) > dart.notNull(this.contentLength)) {
-              controller.addError(new io.HttpException("Content size exceeds specified contentLength. " + dart.str`${this[_bytesWritten]} bytes written while expected ` + dart.str`${this.contentLength}. ` + dart.str`[${core.String.fromCharCodes(IterableOfint()._check(data))}]`));
-              return;
-            }
-          }
-        }
-        this[_addChunk$](data, dart.bind(controller, 'add'));
-      }).bind(this);
-      dart.fn(onData, dynamicTovoid$());
-      sub = stream.listen(onData, {onError: dart.bind(controller, 'addError'), onDone: dart.bind(controller, 'close'), cancelOnError: true});
-      if (!dart.test(this.headersWritten)) {
-        let future = this.writeHeaders();
-        if (future != null) {
-          dart.dsend(sub, 'pause', future);
-        }
-      }
-      return this.socket.addStream(StreamOfListOfint()._check(controller.stream)).then(io._HttpOutboundMessage)(dart.fn(_ => this.outbound, dynamicTo_HttpOutboundMessage()), {onError: dart.fn((error, stackTrace) => {
-          if (dart.test(this[_gzip])) this[_gzipSink].close();
-          this[_socketError] = true;
-          this[_doneCompleter].completeError(error, core.StackTrace._check(stackTrace));
-          if (dart.test(this[_ignoreError](error))) {
-            return this.outbound;
-          } else {
-            dart.throw(error);
-          }
-        }, dynamicAnddynamicTo_HttpOutboundMessage())});
-    }
-    close() {
-      if (this[_closeFuture] != null) return this[_closeFuture];
-      if (dart.test(this[_socketError])) return async.Future.value(this.outbound);
-      if (dart.test(this.outbound[_isConnectionClosed])) return async.Future.value(this.outbound);
-      if (!dart.test(this.headersWritten) && !dart.test(this.ignoreBody)) {
-        if (this.outbound.headers.contentLength == -1) {
-          this.outbound.headers.chunkedTransferEncoding = false;
-          this.outbound.headers.contentLength = 0;
-        } else if (dart.notNull(this.outbound.headers.contentLength) > 0) {
-          let error = new io.HttpException("No content even though contentLength was specified to be " + dart.str`greater than 0: ${this.outbound.headers.contentLength}.`, {uri: this.outbound[_uri]});
-          this[_doneCompleter].completeError(error);
-          return this[_closeFuture] = async.Future.error(error);
-        }
-      }
-      if (this.contentLength != null) {
-        if (dart.notNull(this[_bytesWritten]) < dart.notNull(this.contentLength)) {
-          let error = new io.HttpException("Content size below specified contentLength. " + dart.str` ${this[_bytesWritten]} bytes written but expected ` + dart.str`${this.contentLength}.`, {uri: this.outbound[_uri]});
-          this[_doneCompleter].completeError(error);
-          return this[_closeFuture] = async.Future.error(error);
-        }
-      }
-      const finalize = (function() {
-        if (dart.test(this.chunked)) {
-          if (dart.test(this[_gzip])) {
-            this[_gzipAdd] = dart.bind(this.socket, 'add');
-            if (dart.notNull(this[_gzipBufferLength]) > 0) {
-              this[_gzipSink].add(typed_data.Uint8List.view(this[_gzipBuffer][dartx.buffer], 0, this[_gzipBufferLength]));
-            }
-            this[_gzipBuffer] = null;
-            this[_gzipSink].close();
-            this[_gzipAdd] = null;
-          }
-          this[_addChunk$](this[_chunkHeader](0), dart.bind(this.socket, 'add'));
-        }
-        if (dart.notNull(this[_length$2]) > 0) {
-          this.socket.add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
-        }
-        this[_buffer$] = null;
-        return this.socket.flush().then(io._HttpOutboundMessage)(dart.fn(_ => {
-          this[_doneCompleter].complete(this.socket);
-          return this.outbound;
-        }, dynamicTo_HttpOutboundMessage()), {onError: dart.fn((error, stackTrace) => {
-            this[_doneCompleter].completeError(error, core.StackTrace._check(stackTrace));
-            if (dart.test(this[_ignoreError](error))) {
-              return this.outbound;
-            } else {
-              dart.throw(error);
-            }
-          }, dynamicAnddynamicTo_HttpOutboundMessage())});
-      }).bind(this);
-      dart.fn(finalize, VoidToFuture());
-      let future = this.writeHeaders();
-      if (future != null) {
-        return this[_closeFuture] = future.whenComplete(finalize);
-      }
-      return this[_closeFuture] = finalize();
-    }
-    get done() {
-      return this[_doneCompleter].future;
-    }
-    setHeader(data, length) {
-      dart.assert(this[_length$2] == 0);
-      dart.assert(data[dartx.length] == io._OUTGOING_BUFFER_SIZE);
-      this[_buffer$] = typed_data.Uint8List._check(data);
-      this[_length$2] = length;
-    }
-    set gzip(value) {
-      this[_gzip] = value;
-      if (dart.test(this[_gzip])) {
-        this[_gzipBuffer] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
-        dart.assert(this[_gzipSink] == null);
-        this[_gzipSink] = new io.ZLibEncoder({gzip: true}).startChunkedConversion(new io._HttpGZipSink(dart.fn(data => {
-          if (this[_gzipAdd] == null) return;
-          this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
-          this[_pendingChunkedFooter] = 2;
-          this[_addChunk$](data, ListOfintTovoid()._check(this[_gzipAdd]));
-        }, dynamicToNull$())));
-      }
-    }
-    [_ignoreError](error) {
-      return (io.SocketException.is(error) || io.TlsException.is(error)) && io.HttpResponse.is(this.outbound);
-    }
-    [_addGZipChunk](chunk, add) {
-      if (!dart.test(this.outbound.bufferOutput)) {
-        add(ListOfint()._check(chunk));
-        return;
-      }
-      if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', dart.notNull(this[_gzipBuffer][dartx.length]) - dart.notNull(this[_gzipBufferLength])))) {
-        add(typed_data.Uint8List.view(this[_gzipBuffer][dartx.buffer], 0, this[_gzipBufferLength]));
-        this[_gzipBuffer] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
-        this[_gzipBufferLength] = 0;
-      }
-      if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', io._OUTGOING_BUFFER_SIZE))) {
-        add(ListOfint()._check(chunk));
-      } else {
-        this[_gzipBuffer][dartx.setRange](this[_gzipBufferLength], dart.asInt(dart.notNull(this[_gzipBufferLength]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')))), IterableOfint()._check(chunk));
-        this[_gzipBufferLength] = dart.notNull(this[_gzipBufferLength]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
-      }
-    }
-    [_addChunk$](chunk, add) {
-      if (!dart.test(this.outbound.bufferOutput)) {
-        if (this[_buffer$] != null) {
-          add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
-          this[_buffer$] = null;
-          this[_length$2] = 0;
-        }
-        add(ListOfint()._check(chunk));
-        return;
-      }
-      if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', dart.notNull(this[_buffer$][dartx.length]) - dart.notNull(this[_length$2])))) {
-        add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
-        this[_buffer$] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
-        this[_length$2] = 0;
-      }
-      if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', io._OUTGOING_BUFFER_SIZE))) {
-        add(ListOfint()._check(chunk));
-      } else {
-        this[_buffer$][dartx.setRange](this[_length$2], dart.asInt(dart.notNull(this[_length$2]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')))), IterableOfint()._check(chunk));
-        this[_length$2] = dart.notNull(this[_length$2]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
-      }
-    }
-    [_chunkHeader](length) {
-      let hexDigits = const$68 || (const$68 = dart.constList([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70], core.int));
-      if (length == 0) {
-        if (this[_pendingChunkedFooter] == 2) return io._HttpOutgoing._footerAndChunk0Length;
-        return io._HttpOutgoing._chunk0Length;
-      }
-      let size = this[_pendingChunkedFooter];
-      let len = length;
-      while (dart.notNull(len) > 0) {
-        size = dart.notNull(size) + 1;
-        len = len[dartx['>>']](4);
-      }
-      let footerAndHeader = typed_data.Uint8List.new(dart.notNull(size) + 2);
-      if (this[_pendingChunkedFooter] == 2) {
-        footerAndHeader[dartx._set](0, io._CharCode.CR);
-        footerAndHeader[dartx._set](1, io._CharCode.LF);
-      }
-      let index = size;
-      while (dart.notNull(index) > dart.notNull(this[_pendingChunkedFooter])) {
-        footerAndHeader[dartx._set]((index = dart.notNull(index) - 1), hexDigits[dartx._get](dart.notNull(length) & 15));
-        length = length[dartx['>>']](4);
-      }
-      footerAndHeader[dartx._set](dart.notNull(size) + 0, io._CharCode.CR);
-      footerAndHeader[dartx._set](dart.notNull(size) + 1, io._CharCode.LF);
-      return footerAndHeader;
-    }
-  };
-  io._HttpOutgoing[dart.implements] = () => [StreamConsumerOfListOfint()];
-  dart.setSignature(io._HttpOutgoing, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpOutgoing, [io.Socket])}),
-    fields: () => ({
-      [_doneCompleter]: async.Completer,
-      socket: io.Socket,
-      ignoreBody: core.bool,
-      headersWritten: core.bool,
-      [_buffer$]: typed_data.Uint8List,
-      [_length$2]: core.int,
-      [_closeFuture]: async.Future,
-      chunked: core.bool,
-      [_pendingChunkedFooter]: core.int,
-      contentLength: core.int,
-      [_bytesWritten]: core.int,
-      [_gzip]: core.bool,
-      [_gzipSink]: convert.ByteConversionSink,
-      [_gzipAdd]: core.Function,
-      [_gzipBuffer]: typed_data.Uint8List,
-      [_gzipBufferLength]: core.int,
-      [_socketError]: core.bool,
-      outbound: io._HttpOutboundMessage
-    }),
-    getters: () => ({done: dart.definiteFunctionType(async.Future, [])}),
-    setters: () => ({gzip: dart.definiteFunctionType(dart.void, [core.bool])}),
-    methods: () => ({
-      writeHeaders: dart.definiteFunctionType(async.Future, [], {drainRequest: core.bool, setOutgoing: core.bool}),
-      addStream: dart.definiteFunctionType(async.Future, [StreamOfListOfint()]),
-      close: dart.definiteFunctionType(async.Future, []),
-      setHeader: dart.definiteFunctionType(dart.void, [ListOfint(), core.int]),
-      [_ignoreError]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [_addGZipChunk]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
-      [_addChunk$]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
-      [_chunkHeader]: dart.definiteFunctionType(core.List$(core.int), [core.int])
-    }),
-    sfields: () => ({
-      _footerAndChunk0Length: ListOfint(),
-      _chunk0Length: ListOfint()
-    })
-  });
-  dart.defineLazy(io._HttpOutgoing, {
-    get _footerAndChunk0Length() {
-      return dart.constList([io._CharCode.CR, io._CharCode.LF, 48, io._CharCode.CR, io._CharCode.LF, io._CharCode.CR, io._CharCode.LF], core.int);
-    },
-    get _chunk0Length() {
-      return dart.constList([48, io._CharCode.CR, io._CharCode.LF, io._CharCode.CR, io._CharCode.LF], core.int);
-    }
-  });
-  const _context = Symbol('_context');
-  const _httpParser = Symbol('_httpParser');
-  const _subscription$ = Symbol('_subscription');
-  const _dispose = Symbol('_dispose');
-  const _idleTimer = Symbol('_idleTimer');
-  const _currentUri = Symbol('_currentUri');
-  const _nextResponseCompleter = Symbol('_nextResponseCompleter');
-  const _streamFuture = Symbol('_streamFuture');
-  const _proxyCredentials = Symbol('_proxyCredentials');
-  const _returnConnection = Symbol('_returnConnection');
-  io._HttpClientConnection = class _HttpClientConnection extends core.Object {
-    new(key, socket, httpClient, proxyTunnel, context) {
-      if (proxyTunnel === void 0) proxyTunnel = false;
-      if (context === void 0) context = null;
-      this.key = key;
-      this[_socket] = socket;
-      this[_httpClient] = httpClient;
-      this[_proxyTunnel] = proxyTunnel;
-      this[_context] = context;
-      this[_httpParser] = io._HttpParser.responseParser();
-      this[_subscription$] = null;
-      this[_dispose] = false;
-      this[_idleTimer] = null;
-      this.closed = false;
-      this[_currentUri] = null;
-      this[_nextResponseCompleter] = null;
-      this[_streamFuture] = null;
-      this[_httpParser].listenToStream(this[_socket]);
-      this[_subscription$] = this[_httpParser].listen(dart.fn(incoming => {
-        this[_subscription$].pause();
-        if (this[_nextResponseCompleter] == null) {
-          dart.throw(new io.HttpException("Unexpected response (unsolicited response without request).", {uri: this[_currentUri]}));
-        }
-        if (incoming.statusCode == 100) {
-          incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
-            this[_subscription$].resume();
-          }, dynamicToNull$())).catchError(dart.fn((error, stackTrace) => {
-            if (stackTrace === void 0) stackTrace = null;
-            this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
-            this[_nextResponseCompleter] = null;
-          }, dynamic__ToNull$()));
-        } else {
-          this[_nextResponseCompleter].complete(incoming);
-          this[_nextResponseCompleter] = null;
-        }
-      }, _HttpIncomingToNull()), {onError: dart.fn((error, stackTrace) => {
-          if (stackTrace === void 0) stackTrace = null;
-          if (this[_nextResponseCompleter] != null) {
-            this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
-            this[_nextResponseCompleter] = null;
-          }
-        }, dynamic__ToNull$()), onDone: dart.fn(() => {
-          if (this[_nextResponseCompleter] != null) {
-            this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
-            this[_nextResponseCompleter] = null;
-          }
-          this.close();
-        }, VoidToNull())});
-    }
-    send(uri, port, method, proxy) {
-      if (dart.test(this.closed)) {
-        dart.throw(new io.HttpException("Socket closed before request was sent", {uri: uri}));
-      }
-      this[_currentUri] = uri;
-      this[_subscription$].pause();
-      let proxyCreds = null;
-      let creds = null;
-      let outgoing = new io._HttpOutgoing(this[_socket]);
-      let request = new io._HttpClientRequest(outgoing, uri, method, proxy, this[_httpClient], this);
-      let host = uri.host;
-      if (dart.test(host[dartx.contains](':'))) host = dart.str`[${host}]`;
-      request.headers.host = host;
-      request.headers.port = port;
-      request.headers[_add$2](io.HttpHeaders.ACCEPT_ENCODING, "gzip");
-      if (this[_httpClient].userAgent != null) {
-        request.headers[_add$2]('user-agent', this[_httpClient].userAgent);
-      }
-      if (dart.test(proxy.isAuthenticated)) {
-        let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${proxy.username}:${proxy.password}`));
-        request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, dart.str`Basic ${auth}`);
-      } else if (!dart.test(proxy.isDirect) && dart.notNull(this[_httpClient][_proxyCredentials][dartx.length]) > 0) {
-        proxyCreds = this[_httpClient][_findProxyCredentials](proxy);
-        if (proxyCreds != null) {
-          proxyCreds.authorize(request);
-        }
-      }
-      if (uri.userInfo != null && !dart.test(uri.userInfo[dartx.isEmpty])) {
-        let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(uri.userInfo));
-        request.headers.set(io.HttpHeaders.AUTHORIZATION, dart.str`Basic ${auth}`);
-      } else {
-        creds = this[_httpClient][_findCredentials](uri);
-        if (creds != null) {
-          creds.authorize(request);
-        }
-      }
-      this[_httpParser].isHead = method == "HEAD";
-      this[_streamFuture] = outgoing.done.then(dart.dynamic)(dart.fn(s => {
-        this[_nextResponseCompleter] = CompleterOf_HttpIncoming().new();
-        this[_nextResponseCompleter].future.then(dart.dynamic)(dart.fn(incoming => {
-          this[_currentUri] = null;
-          incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
-            if (dart.test(incoming.upgraded)) {
-              this[_httpClient][_connectionClosed](this);
-              this.startTimer();
-              return;
-            }
-            if (dart.test(this.closed)) return;
-            if (!dart.test(closing) && !dart.test(this[_dispose]) && dart.test(incoming.headers.persistentConnection) && dart.test(request.persistentConnection)) {
-              this[_httpClient][_returnConnection](this);
-              this[_subscription$].resume();
-            } else {
-              this.destroy();
-            }
-          }, dynamicToNull$()));
-          if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
-            let authInfo = incoming.headers._get("proxy-authentication-info");
-            if (authInfo != null && authInfo[dartx.length] == 1) {
-              let header = io._HeaderValue.parse(authInfo[dartx._get](0), {parameterSeparator: ','});
-              let nextnonce = header.parameters[dartx._get]("nextnonce");
-              if (nextnonce != null) proxyCreds.nonce = nextnonce;
-            }
-          }
-          if (creds != null && dart.equals(creds.scheme, io._AuthenticationScheme.DIGEST)) {
-            let authInfo = incoming.headers._get("authentication-info");
-            if (authInfo != null && authInfo[dartx.length] == 1) {
-              let header = io._HeaderValue.parse(authInfo[dartx._get](0), {parameterSeparator: ','});
-              let nextnonce = header.parameters[dartx._get]("nextnonce");
-              if (nextnonce != null) creds.nonce = nextnonce;
-            }
-          }
-          request[_onIncoming](incoming);
-        }, _HttpIncomingToNull())).catchError(dart.fn(error => {
-          dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
-        }, dynamicToNull$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
-          this.destroy();
-          request[_onError$](error, core.StackTrace._check(stackTrace));
-        }, dynamicAnddynamicToNull()));
-        this[_subscription$].resume();
-        return s;
-      }, dynamicTodynamic$()), {onError: dart.fn(e => {
-          this.destroy();
-        }, dynamicToNull$())});
-      return request;
-    }
-    detachSocket() {
-      return this[_streamFuture].then(io._DetachedSocket)(dart.fn(_ => new io._DetachedSocket(this[_socket], this[_httpParser].detachIncoming()), dynamicTo_DetachedSocket()));
-    }
-    destroy() {
-      this.closed = true;
-      this[_httpClient][_connectionClosed](this);
-      this[_socket].destroy();
-    }
-    close() {
-      this.closed = true;
-      this[_httpClient][_connectionClosed](this);
-      this[_streamFuture].then(dart.void)(dart.fn(_ => this[_socket].destroy(), dynamicTovoid$()));
-    }
-    createProxyTunnel(host, port, proxy, callback) {
-      let request = this.send(core.Uri.new({host: core.String._check(host), port: core.int._check(port)}), core.int._check(port), "CONNECT", io._Proxy._check(proxy));
-      if (dart.test(dart.dload(proxy, 'isAuthenticated'))) {
-        let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${dart.dload(proxy, 'username')}:${dart.dload(proxy, 'password')}`));
-        request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, dart.str`Basic ${auth}`);
-      }
-      return request.close().then(io.SecureSocket)(dart.fn(response => {
-        if (response.statusCode != io.HttpStatus.OK) {
-          dart.throw("Proxy failed to establish tunnel " + dart.str`(${response.statusCode} ${response.reasonPhrase})`);
-        }
-        let socket = io._HttpClientResponse.as(response)[_httpRequest][_httpClientConnection][_socket];
-        return io.SecureSocket.secure(socket, {host: host, context: this[_context], onBadCertificate: X509CertificateTobool()._check(callback)});
-      }, HttpClientResponseToFutureOfSecureSocket())).then(io._HttpClientConnection)(dart.fn(secureSocket => {
-        let key = core.String._check(io._HttpClientConnection.makeKey(true, core.String._check(host), core.int._check(port)));
-        return new io._HttpClientConnection(key, secureSocket, request[_httpClient], true);
-      }, SecureSocketTo_HttpClientConnection()));
-    }
-    get connectionInfo() {
-      return io._HttpConnectionInfo.create(this[_socket]);
-    }
-    static makeKey(isSecure, host, port) {
-      return dart.test(isSecure) ? dart.str`ssh:${host}:${port}` : dart.str`${host}:${port}`;
-    }
-    stopTimer() {
-      if (this[_idleTimer] != null) {
-        this[_idleTimer].cancel();
-        this[_idleTimer] = null;
-      }
-    }
-    startTimer() {
-      dart.assert(this[_idleTimer] == null);
-      this[_idleTimer] = async.Timer.new(this[_httpClient].idleTimeout, dart.fn(() => {
-        this[_idleTimer] = null;
-        this.close();
-      }, VoidToNull()));
-    }
-  };
-  dart.setSignature(io._HttpClientConnection, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpClientConnection, [core.String, io.Socket, io._HttpClient], [core.bool, io.SecurityContext])}),
-    fields: () => ({
-      key: core.String,
-      [_socket]: io.Socket,
-      [_proxyTunnel]: core.bool,
-      [_context]: io.SecurityContext,
-      [_httpParser]: io._HttpParser,
-      [_subscription$]: async.StreamSubscription,
-      [_httpClient]: io._HttpClient,
-      [_dispose]: core.bool,
-      [_idleTimer]: async.Timer,
-      closed: core.bool,
-      [_currentUri]: core.Uri,
-      [_nextResponseCompleter]: CompleterOf_HttpIncoming(),
-      [_streamFuture]: async.Future
-    }),
-    getters: () => ({connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, [])}),
-    methods: () => ({
-      send: dart.definiteFunctionType(io._HttpClientRequest, [core.Uri, core.int, core.String, io._Proxy]),
-      detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
-      destroy: dart.definiteFunctionType(dart.void, []),
-      close: dart.definiteFunctionType(dart.void, []),
-      createProxyTunnel: dart.definiteFunctionType(async.Future$(io._HttpClientConnection), [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      stopTimer: dart.definiteFunctionType(dart.void, []),
-      startTimer: dart.definiteFunctionType(dart.void, [])
-    }),
-    statics: () => ({makeKey: dart.definiteFunctionType(dart.dynamic, [core.bool, core.String, core.int])}),
-    names: ['makeKey']
-  });
-  io._ConnectionInfo = class _ConnectionInfo extends core.Object {
-    new(connection, proxy) {
-      this.connection = connection;
-      this.proxy = proxy;
-    }
-  };
-  dart.setSignature(io._ConnectionInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ConnectionInfo, [io._HttpClientConnection, io._Proxy])}),
-    fields: () => ({
-      connection: io._HttpClientConnection,
-      proxy: io._Proxy
-    })
-  });
-  const _idle = Symbol('_idle');
-  const _active = Symbol('_active');
-  const _pending$ = Symbol('_pending');
-  const _connecting = Symbol('_connecting');
-  const _checkPending = Symbol('_checkPending');
-  const _connectionsChanged = Symbol('_connectionsChanged');
-  const _badCertificateCallback = Symbol('_badCertificateCallback');
-  const _getConnectionTarget = Symbol('_getConnectionTarget');
-  io._ConnectionTarget = class _ConnectionTarget extends core.Object {
-    new(key, host, port, isSecure, context) {
-      this[_idle] = HashSetOf_HttpClientConnection().new();
-      this[_active] = HashSetOf_HttpClientConnection().new();
-      this[_pending$] = new collection.ListQueue();
-      this.key = key;
-      this.host = host;
-      this.port = port;
-      this.isSecure = isSecure;
-      this.context = context;
-      this[_connecting] = 0;
-    }
-    get isEmpty() {
-      return dart.test(this[_idle].isEmpty) && dart.test(this[_active].isEmpty) && this[_connecting] == 0;
-    }
-    get hasIdle() {
-      return this[_idle].isNotEmpty;
-    }
-    get hasActive() {
-      return dart.test(this[_active].isNotEmpty) || dart.notNull(this[_connecting]) > 0;
-    }
-    takeIdle() {
-      dart.assert(this.hasIdle);
-      let connection = this[_idle].first;
-      this[_idle].remove(connection);
-      connection.stopTimer();
-      this[_active].add(connection);
-      return connection;
-    }
-    [_checkPending]() {
-      if (dart.test(this[_pending$].isNotEmpty)) {
-        dart.dcall(this[_pending$].removeFirst());
-      }
-    }
-    addNewActive(connection) {
-      this[_active].add(connection);
-    }
-    returnConnection(connection) {
-      dart.assert(this[_active].contains(connection));
-      this[_active].remove(connection);
-      this[_idle].add(connection);
-      connection.startTimer();
-      this[_checkPending]();
-    }
-    connectionClosed(connection) {
-      dart.assert(!dart.test(this[_active].contains(connection)) || !dart.test(this[_idle].contains(connection)));
-      this[_active].remove(connection);
-      this[_idle].remove(connection);
-      this[_checkPending]();
-    }
-    close(force) {
-      for (let c of this[_idle].toList()) {
-        c.close();
-      }
-      if (dart.test(force)) {
-        for (let c of this[_active].toList()) {
-          c.destroy();
-        }
-      }
-    }
-    connect(uriHost, uriPort, proxy, client) {
-      if (dart.test(this.hasIdle)) {
-        let connection = this.takeIdle();
-        client[_connectionsChanged]();
-        return FutureOf_ConnectionInfo().value(new io._ConnectionInfo(connection, proxy));
-      }
-      if (client.maxConnectionsPerHost != null && dart.notNull(this[_active].length) + dart.notNull(this[_connecting]) >= dart.notNull(client.maxConnectionsPerHost)) {
-        let completer = async.Completer.new();
-        this[_pending$].add(dart.fn(() => {
-          this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
-        }, VoidToNull()));
-        return FutureOf_ConnectionInfo()._check(completer.future);
-      }
-      let currentBadCertificateCallback = client[_badCertificateCallback];
-      function callback(certificate) {
-        if (currentBadCertificateCallback == null) return false;
-        return currentBadCertificateCallback(certificate, uriHost, uriPort);
-      }
-      dart.fn(callback, X509CertificateTobool$());
-      let socketFuture = dart.test(this.isSecure) && dart.test(proxy.isDirect) ? io.SecureSocket.connect(this.host, this.port, {context: this.context, onBadCertificate: callback}) : io.Socket.connect(this.host, this.port);
-      this[_connecting] = dart.notNull(this[_connecting]) + 1;
-      return socketFuture.then(io._ConnectionInfo)(dart.fn(socket => {
-        this[_connecting] = dart.notNull(this[_connecting]) - 1;
-        dart.dsend(socket, 'setOption', io.SocketOption.TCP_NODELAY, true);
-        let connection = new io._HttpClientConnection(this.key, io.Socket._check(socket), client, false, this.context);
-        if (dart.test(this.isSecure) && !dart.test(proxy.isDirect)) {
-          connection[_dispose] = true;
-          return connection.createProxyTunnel(uriHost, uriPort, proxy, callback).then(io._ConnectionInfo)(dart.fn(tunnel => {
-            client[_getConnectionTarget](uriHost, uriPort, true).addNewActive(tunnel);
-            return new io._ConnectionInfo(tunnel, proxy);
-          }, _HttpClientConnectionTo_ConnectionInfo()));
-        } else {
-          this.addNewActive(connection);
-          return new io._ConnectionInfo(connection, proxy);
-        }
-      }, dynamicToFutureOrOf_ConnectionInfo()), {onError: dart.fn(error => {
-          this[_connecting] = dart.notNull(this[_connecting]) - 1;
-          this[_checkPending]();
-          dart.throw(error);
-        }, dynamicToNull$())});
-    }
-  };
-  dart.setSignature(io._ConnectionTarget, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ConnectionTarget, [core.String, core.String, core.int, core.bool, io.SecurityContext])}),
-    fields: () => ({
-      key: core.String,
-      host: core.String,
-      port: core.int,
-      isSecure: core.bool,
-      context: io.SecurityContext,
-      [_idle]: SetOf_HttpClientConnection(),
-      [_active]: SetOf_HttpClientConnection(),
-      [_pending$]: collection.Queue,
-      [_connecting]: core.int
-    }),
-    getters: () => ({
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      hasIdle: dart.definiteFunctionType(core.bool, []),
-      hasActive: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      takeIdle: dart.definiteFunctionType(io._HttpClientConnection, []),
-      [_checkPending]: dart.definiteFunctionType(dart.dynamic, []),
-      addNewActive: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
-      returnConnection: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
-      connectionClosed: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
-      close: dart.definiteFunctionType(dart.void, [core.bool]),
-      connect: dart.definiteFunctionType(async.Future$(io._ConnectionInfo), [core.String, core.int, io._Proxy, io._HttpClient])
-    })
-  });
-  io.BadCertificateCallback = dart.typedef('BadCertificateCallback', () => dart.functionType(core.bool, [io.X509Certificate, core.String, core.int]));
-  const _idleTimeout = Symbol('_idleTimeout');
-  let const$69;
-  const _connectionTargets = Symbol('_connectionTargets');
-  const _credentials = Symbol('_credentials');
-  const _closing = Symbol('_closing');
-  const _closingForcefully = Symbol('_closingForcefully');
-  const _findProxy = Symbol('_findProxy');
-  const _openUrl = Symbol('_openUrl');
-  const _closeConnections = Symbol('_closeConnections');
-  let const$70;
-  const _getConnection = Symbol('_getConnection');
-  io._HttpClient = class _HttpClient extends core.Object {
-    get idleTimeout() {
-      return this[_idleTimeout];
-    }
-    new(context) {
-      this[_connectionTargets] = HashMapOfString$_ConnectionTarget().new();
-      this[_credentials] = JSArrayOf_Credentials().of([]);
-      this[_proxyCredentials] = JSArrayOf_ProxyCredentials().of([]);
-      this.userAgent = io._getHttpVersion();
-      this[_context] = context;
-      this[_closing] = false;
-      this[_closingForcefully] = false;
-      this[_authenticate] = null;
-      this[_authenticateProxy] = null;
-      this[_findProxy] = io.HttpClient.findProxyFromEnvironment;
-      this[_idleTimeout] = const$69 || (const$69 = dart.const(new core.Duration({seconds: 15})));
-      this[_badCertificateCallback] = null;
-      this.maxConnectionsPerHost = null;
-      this.autoUncompress = true;
-    }
-    set idleTimeout(timeout) {
-      this[_idleTimeout] = timeout;
-      for (let c of this[_connectionTargets][dartx.values]) {
-        for (let idle of c[_idle]) {
-          idle.stopTimer();
-          idle.startTimer();
-        }
-      }
-    }
-    set badCertificateCallback(callback) {
-      this[_badCertificateCallback] = callback;
-    }
-    open(method, host, port, path) {
-      let hashMark = 35;
-      let questionMark = 63;
-      let fragmentStart = path[dartx.length];
-      let queryStart = path[dartx.length];
-      for (let i = dart.notNull(path[dartx.length]) - 1; i >= 0; i--) {
-        let char = path[dartx.codeUnitAt](i);
-        if (char == hashMark) {
-          fragmentStart = i;
-          queryStart = i;
-        } else if (char == questionMark) {
-          queryStart = i;
-        }
-      }
-      let query = null;
-      if (dart.notNull(queryStart) < dart.notNull(fragmentStart)) {
-        query = path[dartx.substring](dart.notNull(queryStart) + 1, fragmentStart);
-        path = path[dartx.substring](0, queryStart);
-      }
-      let uri = core.Uri.new({scheme: "http", host: host, port: port, path: path, query: query});
-      return this[_openUrl](method, uri);
-    }
-    openUrl(method, url) {
-      return this[_openUrl](method, url);
-    }
-    get(host, port, path) {
-      return this.open("get", host, port, path);
-    }
-    getUrl(url) {
-      return this[_openUrl]("get", url);
-    }
-    post(host, port, path) {
-      return this.open("post", host, port, path);
-    }
-    postUrl(url) {
-      return this[_openUrl]("post", url);
-    }
-    put(host, port, path) {
-      return this.open("put", host, port, path);
-    }
-    putUrl(url) {
-      return this[_openUrl]("put", url);
-    }
-    delete(host, port, path) {
-      return this.open("delete", host, port, path);
-    }
-    deleteUrl(url) {
-      return this[_openUrl]("delete", url);
-    }
-    head(host, port, path) {
-      return this.open("head", host, port, path);
-    }
-    headUrl(url) {
-      return this[_openUrl]("head", url);
-    }
-    patch(host, port, path) {
-      return this.open("patch", host, port, path);
-    }
-    patchUrl(url) {
-      return this[_openUrl]("patch", url);
-    }
-    close(opts) {
-      let force = opts && 'force' in opts ? opts.force : false;
-      this[_closing] = true;
-      this[_closingForcefully] = force;
-      this[_closeConnections](this[_closingForcefully]);
-      dart.assert(!dart.test(this[_connectionTargets][dartx.values][dartx.any](dart.fn(s => s.hasIdle, _ConnectionTargetTobool()))));
-      dart.assert(!dart.test(force) || !dart.test(this[_connectionTargets][dartx.values][dartx.any](dart.fn(s => s[_active].isNotEmpty, _ConnectionTargetTobool()))));
-    }
-    set authenticate(f) {
-      this[_authenticate] = f;
-    }
-    addCredentials(url, realm, cr) {
-      this[_credentials][dartx.add](new io._SiteCredentials(url, realm, io._HttpClientCredentials._check(cr)));
-    }
-    set authenticateProxy(f) {
-      this[_authenticateProxy] = f;
-    }
-    addProxyCredentials(host, port, realm, cr) {
-      this[_proxyCredentials][dartx.add](new io._ProxyCredentials(host, port, realm, io._HttpClientCredentials._check(cr)));
-    }
-    set findProxy(f) {
-      return this[_findProxy] = f;
-    }
-    [_openUrl](method, uri) {
-      uri = uri.removeFragment();
-      if (method == null) {
-        dart.throw(new core.ArgumentError(method));
-      }
-      if (method != "CONNECT") {
-        if (dart.test(uri.host[dartx.isEmpty])) {
-          dart.throw(new core.ArgumentError(dart.str`No host specified in URI ${uri}`));
-        } else if (uri.scheme != "http" && uri.scheme != "https") {
-          dart.throw(new core.ArgumentError(dart.str`Unsupported scheme '${uri.scheme}' in URI ${uri}`));
-        }
-      }
-      let isSecure = uri.scheme == "https";
-      let port = uri.port;
-      if (port == 0) {
-        port = isSecure ? io.HttpClient.DEFAULT_HTTPS_PORT : io.HttpClient.DEFAULT_HTTP_PORT;
-      }
-      let proxyConf = const$70 || (const$70 = dart.const(new io._ProxyConfiguration.direct()));
-      if (this[_findProxy] != null) {
-        try {
-          proxyConf = new io._ProxyConfiguration(core.String._check(dart.dcall(this[_findProxy], uri)));
-        } catch (error) {
-          let stackTrace = dart.stackTrace(error);
-          return FutureOf_HttpClientRequest().error(error, stackTrace);
-        }
-
-      }
-      return this[_getConnection](uri.host, port, proxyConf, isSecure).then(io._HttpClientRequest)(dart.fn(info => {
-        function send(info) {
-          return info.connection.send(uri, port, method[dartx.toUpperCase](), info.proxy);
-        }
-        dart.fn(send, _ConnectionInfoTo_HttpClientRequest());
-        if (dart.test(info.connection.closed)) {
-          return this[_getConnection](uri.host, port, proxyConf, isSecure).then(io._HttpClientRequest)(send);
-        }
-        return send(info);
-      }, _ConnectionInfoToFutureOrOf_HttpClientRequest()));
-    }
-    [_openUrlFromRequest](method, uri, previous) {
-      let resolved = previous.uri.resolveUri(uri);
-      return this[_openUrl](method, resolved).then(io._HttpClientRequest)(dart.fn(request => {
-        request.followRedirects = previous.followRedirects;
-        request.maxRedirects = previous.maxRedirects;
-        for (let header of previous.headers[_headers][dartx.keys]) {
-          if (request.headers._get(header) == null) {
-            request.headers.set(header, previous.headers._get(header));
-          }
-        }
-        request.headers.chunkedTransferEncoding = false;
-        request.contentLength = 0;
-        return request;
-      }, _HttpClientRequestTo_HttpClientRequest()));
-    }
-    [_returnConnection](connection) {
-      this[_connectionTargets][dartx._get](connection.key).returnConnection(connection);
-      this[_connectionsChanged]();
-    }
-    [_connectionClosed](connection) {
-      connection.stopTimer();
-      let connectionTarget = this[_connectionTargets][dartx._get](connection.key);
-      if (connectionTarget != null) {
-        connectionTarget.connectionClosed(connection);
-        if (dart.test(connectionTarget.isEmpty)) {
-          this[_connectionTargets][dartx.remove](connection.key);
-        }
-        this[_connectionsChanged]();
-      }
-    }
-    [_connectionsChanged]() {
-      if (dart.test(this[_closing])) {
-        this[_closeConnections](this[_closingForcefully]);
-      }
-    }
-    [_closeConnections](force) {
-      for (let connectionTarget of this[_connectionTargets][dartx.values][dartx.toList]()) {
-        connectionTarget.close(force);
-      }
-    }
-    [_getConnectionTarget](host, port, isSecure) {
-      let key = core.String._check(io._HttpClientConnection.makeKey(isSecure, host, port));
-      return this[_connectionTargets][dartx.putIfAbsent](key, dart.fn(() => new io._ConnectionTarget(key, host, port, isSecure, this[_context]), VoidTo_ConnectionTarget()));
-    }
-    [_getConnection](uriHost, uriPort, proxyConf, isSecure) {
-      let proxies = proxyConf.proxies[dartx.iterator];
-      const connect = (function(error) {
-        if (!dart.test(proxies.moveNext())) return FutureOf_ConnectionInfo().error(error);
-        let proxy = proxies.current;
-        let host = dart.test(proxy.isDirect) ? uriHost : proxy.host;
-        let port = dart.test(proxy.isDirect) ? uriPort : proxy.port;
-        return this[_getConnectionTarget](host, port, isSecure).connect(uriHost, uriPort, proxy, this).catchError(connect);
-      }).bind(this);
-      dart.fn(connect, dynamicToFutureOf_ConnectionInfo());
-      return FutureOf_ConnectionInfo().new(dart.fn(() => connect(new io.HttpException("No proxies given")), VoidToFutureOf_ConnectionInfo()));
-    }
-    [_findCredentials](url, scheme) {
-      if (scheme === void 0) scheme = null;
-      let cr = this[_credentials][dartx.fold](io._SiteCredentials)(null, dart.fn((prev, value) => {
-        let siteCredentials = io._SiteCredentials.as(value);
-        if (dart.test(siteCredentials.applies(url, scheme))) {
-          if (prev == null) return io._SiteCredentials._check(value);
-          return dart.notNull(siteCredentials.uri.path[dartx.length]) > dart.notNull(prev.uri.path[dartx.length]) ? siteCredentials : prev;
-        } else {
-          return prev;
-        }
-      }, _SiteCredentialsAnd_CredentialsTo_SiteCredentials()));
-      return cr;
-    }
-    [_findProxyCredentials](proxy, scheme) {
-      if (scheme === void 0) scheme = null;
-      let it = this[_proxyCredentials][dartx.iterator];
-      while (dart.test(it.moveNext())) {
-        if (dart.test(it.current.applies(proxy, scheme))) {
-          return it.current;
-        }
-      }
-      return null;
-    }
-    [_removeCredentials](cr) {
-      let index = this[_credentials][dartx.indexOf](cr);
-      if (index != -1) {
-        this[_credentials][dartx.removeAt](index);
-      }
-    }
-    [_removeProxyCredentials](cr) {
-      let index = this[_proxyCredentials][dartx.indexOf](io._ProxyCredentials._check(cr));
-      if (index != -1) {
-        this[_proxyCredentials][dartx.removeAt](index);
-      }
-    }
-    static _findProxyFromEnvironment(url, environment) {
-      function checkNoProxy(option) {
-        if (option == null) return null;
-        let names = option[dartx.split](",")[dartx.map](core.String)(dart.fn(s => s[dartx.trim](), StringToString$()))[dartx.iterator];
-        while (dart.test(names.moveNext())) {
-          let name = names.current;
-          if (dart.test(name[dartx.startsWith]("[")) && dart.test(name[dartx.endsWith]("]")) && dart.str`[${url.host}]` == name || dart.test(name[dartx.isNotEmpty]) && dart.test(url.host[dartx.endsWith](name))) {
-            return "DIRECT";
-          }
-        }
-        return null;
-      }
-      dart.fn(checkNoProxy, StringToString$());
-      function checkProxy(option) {
-        if (option == null) return null;
-        option = option[dartx.trim]();
-        if (dart.test(option[dartx.isEmpty])) return null;
-        let pos = option[dartx.indexOf]("://");
-        if (dart.notNull(pos) >= 0) {
-          option = option[dartx.substring](dart.notNull(pos) + 3);
-        }
-        pos = option[dartx.indexOf]("/");
-        if (dart.notNull(pos) >= 0) {
-          option = option[dartx.substring](0, pos);
-        }
-        if (option[dartx.indexOf]("[") == 0) {
-          let pos = option[dartx.lastIndexOf](":");
-          if (dart.notNull(option[dartx.indexOf]("]")) > dart.notNull(pos)) option = dart.str`${option}:1080`;
-        } else {
-          if (option[dartx.indexOf](":") == -1) option = dart.str`${option}:1080`;
-        }
-        return dart.str`PROXY ${option}`;
-      }
-      dart.fn(checkProxy, StringToString$());
-      if (environment == null) environment = io._HttpClient._platformEnvironmentCache;
-      let proxyCfg = null;
-      let noProxy = environment[dartx._get]("no_proxy");
-      if (noProxy == null) noProxy = environment[dartx._get]("NO_PROXY");
-      if ((proxyCfg = checkNoProxy(noProxy)) != null) {
-        return proxyCfg;
-      }
-      if (url.scheme == "http") {
-        let proxy = environment[dartx._get]("http_proxy");
-        if (proxy == null) proxy = environment[dartx._get]("HTTP_PROXY");
-        if ((proxyCfg = checkProxy(proxy)) != null) {
-          return proxyCfg;
-        }
-      } else if (url.scheme == "https") {
-        let proxy = environment[dartx._get]("https_proxy");
-        if (proxy == null) proxy = environment[dartx._get]("HTTPS_PROXY");
-        if ((proxyCfg = checkProxy(proxy)) != null) {
-          return proxyCfg;
-        }
-      }
-      return "DIRECT";
-    }
-  };
-  io._HttpClient[dart.implements] = () => [io.HttpClient];
-  dart.setSignature(io._HttpClient, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpClient, [io.SecurityContext])}),
-    fields: () => ({
-      [_closing]: core.bool,
-      [_closingForcefully]: core.bool,
-      [_connectionTargets]: MapOfString$_ConnectionTarget(),
-      [_credentials]: ListOf_Credentials(),
-      [_proxyCredentials]: ListOf_ProxyCredentials(),
-      [_context]: io.SecurityContext,
-      [_authenticate]: core.Function,
-      [_authenticateProxy]: core.Function,
-      [_findProxy]: core.Function,
-      [_idleTimeout]: core.Duration,
-      [_badCertificateCallback]: io.BadCertificateCallback,
-      maxConnectionsPerHost: core.int,
-      autoUncompress: core.bool,
-      userAgent: core.String
-    }),
-    getters: () => ({idleTimeout: dart.definiteFunctionType(core.Duration, [])}),
-    setters: () => ({
-      idleTimeout: dart.definiteFunctionType(dart.void, [core.Duration]),
-      badCertificateCallback: dart.definiteFunctionType(dart.void, [X509CertificateAndStringAndintTobool()]),
-      authenticate: dart.definiteFunctionType(dart.void, [UriAndStringAndStringToFutureOfbool()]),
-      authenticateProxy: dart.definiteFunctionType(dart.void, [StringAndintAndString__ToFutureOfbool()]),
-      findProxy: dart.definiteFunctionType(dart.void, [UriToString()])
-    }),
-    methods: () => ({
-      open: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.String, core.int, core.String]),
-      openUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.Uri]),
-      get: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
-      getUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
-      post: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
-      postUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
-      put: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
-      putUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
-      delete: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
-      deleteUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
-      head: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
-      headUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
-      patch: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.String, core.int, core.String]),
-      patchUrl: dart.definiteFunctionType(async.Future$(io.HttpClientRequest), [core.Uri]),
-      close: dart.definiteFunctionType(dart.void, [], {force: core.bool}),
-      addCredentials: dart.definiteFunctionType(dart.void, [core.Uri, core.String, io.HttpClientCredentials]),
-      addProxyCredentials: dart.definiteFunctionType(dart.void, [core.String, core.int, core.String, io.HttpClientCredentials]),
-      [_openUrl]: dart.definiteFunctionType(async.Future$(io._HttpClientRequest), [core.String, core.Uri]),
-      [_openUrlFromRequest]: dart.definiteFunctionType(async.Future$(io._HttpClientRequest), [core.String, core.Uri, io._HttpClientRequest]),
-      [_returnConnection]: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
-      [_connectionClosed]: dart.definiteFunctionType(dart.void, [io._HttpClientConnection]),
-      [_connectionsChanged]: dart.definiteFunctionType(dart.void, []),
-      [_closeConnections]: dart.definiteFunctionType(dart.void, [core.bool]),
-      [_getConnectionTarget]: dart.definiteFunctionType(io._ConnectionTarget, [core.String, core.int, core.bool]),
-      [_getConnection]: dart.definiteFunctionType(async.Future$(io._ConnectionInfo), [core.String, core.int, io._ProxyConfiguration, core.bool]),
-      [_findCredentials]: dart.definiteFunctionType(io._SiteCredentials, [core.Uri], [io._AuthenticationScheme]),
-      [_findProxyCredentials]: dart.definiteFunctionType(io._ProxyCredentials, [io._Proxy], [io._AuthenticationScheme]),
-      [_removeCredentials]: dart.definiteFunctionType(dart.void, [io._Credentials]),
-      [_removeProxyCredentials]: dart.definiteFunctionType(dart.void, [io._Credentials])
-    }),
-    sfields: () => ({_platformEnvironmentCache: MapOfString$String()}),
-    statics: () => ({_findProxyFromEnvironment: dart.definiteFunctionType(core.String, [core.Uri, MapOfString$String()])}),
-    names: ['_findProxyFromEnvironment']
-  });
-  dart.defineLazy(io._HttpClient, {
-    get _platformEnvironmentCache() {
-      return io.Platform.environment;
-    },
-    set _platformEnvironmentCache(_) {}
-  });
-  const _state$1 = Symbol('_state');
-  const _idleMark = Symbol('_idleMark');
-  const _owner = Symbol('_owner');
-  const _serviceId = Symbol('_serviceId');
-  const _markActive = Symbol('_markActive');
-  const _markIdle = Symbol('_markIdle');
-  const _handleRequest = Symbol('_handleRequest');
-  const _isActive = Symbol('_isActive');
-  const _isIdle = Symbol('_isIdle');
-  const _isDetached = Symbol('_isDetached');
-  const _serviceTypePath = Symbol('_serviceTypePath');
-  const _serviceTypeName = Symbol('_serviceTypeName');
-  const _servicePath = Symbol('_servicePath');
-  const _serviceType = Symbol('_serviceType');
-  const _toJSON$ = Symbol('_toJSON');
-  const __serviceId = Symbol('__serviceId');
-  io._ServiceObject = class _ServiceObject extends core.Object {
-    new() {
-      this[__serviceId] = 0;
-    }
-    get [_serviceId]() {
-      if (this[__serviceId] == 0) this[__serviceId] = (() => {
-        let x = io._nextServiceId;
-        io._nextServiceId = dart.notNull(x) + 1;
-        return x;
-      })();
-      return this[__serviceId];
-    }
-    get [_servicePath]() {
-      return dart.str`${this[_serviceTypePath]}/${this[_serviceId]}`;
-    }
-    [_serviceType](ref) {
-      if (dart.test(ref)) return dart.str`@${this[_serviceTypeName]}`;
-      return this[_serviceTypeName];
-    }
-  };
-  dart.setSignature(io._ServiceObject, {
-    fields: () => ({[__serviceId]: core.int}),
-    getters: () => ({
-      [_serviceId]: dart.definiteFunctionType(core.int, []),
-      [_servicePath]: dart.definiteFunctionType(core.String, [])
-    }),
-    methods: () => ({[_serviceType]: dart.definiteFunctionType(core.String, [core.bool])})
-  });
-  io._HttpConnection = class _HttpConnection extends dart.mixin(collection.LinkedListEntry, io._ServiceObject) {
-    new(socket, httpServer) {
-      this[_socket] = socket;
-      this[_httpServer] = httpServer;
-      this[_httpParser] = io._HttpParser.requestParser();
-      this[_state$1] = io._HttpConnection._IDLE;
-      this[_subscription$] = null;
-      this[_idleMark] = false;
-      this[_streamFuture] = null;
-      super.new();
-      try {
-        dart.dput(this[_socket], _owner, this);
-      } catch (_) {
-        core.print(_);
-      }
-
-      io._HttpConnection._connections[dartx._set](this[_serviceId], this);
-      this[_httpParser].listenToStream(StreamOfListOfint()._check(this[_socket]));
-      this[_subscription$] = this[_httpParser].listen(dart.fn(incoming => {
-        this[_httpServer][_markActive](this);
-        incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
-          if (dart.test(closing)) this.destroy();
-        }, dynamicToNull$()));
-        this[_subscription$].pause();
-        this[_state$1] = io._HttpConnection._ACTIVE;
-        let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
-        let response = new io._HttpResponse(incoming.uri, incoming.headers.protocolVersion, outgoing, this[_httpServer].defaultResponseHeaders, this[_httpServer].serverHeader);
-        let request = new io._HttpRequest(response, incoming, this[_httpServer], this);
-        this[_streamFuture] = outgoing.done.then(dart.dynamic)(dart.fn(_ => {
-          response.deadline = null;
-          if (this[_state$1] == io._HttpConnection._DETACHED) return;
-          if (dart.test(response.persistentConnection) && dart.test(request.persistentConnection) && dart.test(incoming.fullBodyRead) && !dart.test(this[_httpParser].upgrade) && !dart.test(this[_httpServer].closed)) {
-            this[_state$1] = io._HttpConnection._IDLE;
-            this[_idleMark] = false;
-            this[_httpServer][_markIdle](this);
-            this[_subscription$].resume();
-          } else {
-            this.destroy();
-          }
-        }, dynamicToNull$()), {onError: dart.fn(_ => {
-            this.destroy();
-          }, dynamicToNull$())});
-        outgoing.ignoreBody = request.method == "HEAD";
-        response[_httpRequest] = request;
-        this[_httpServer][_handleRequest](request);
-      }, _HttpIncomingToNull()), {onDone: dart.fn(() => {
-          this.destroy();
-        }, VoidToNull()), onError: dart.fn(error => {
-          this.destroy();
-        }, dynamicToNull$())});
-    }
-    markIdle() {
-      this[_idleMark] = true;
-    }
-    get isMarkedIdle() {
-      return this[_idleMark];
-    }
-    destroy() {
-      if (this[_state$1] == io._HttpConnection._CLOSING || this[_state$1] == io._HttpConnection._DETACHED) return;
-      this[_state$1] = io._HttpConnection._CLOSING;
-      dart.dsend(this[_socket], 'destroy');
-      this[_httpServer][_connectionClosed](this);
-      io._HttpConnection._connections[dartx.remove](this[_serviceId]);
-    }
-    detachSocket() {
-      this[_state$1] = io._HttpConnection._DETACHED;
-      this[_httpServer][_connectionClosed](this);
-      let detachedIncoming = this[_httpParser].detachIncoming();
-      return this[_streamFuture].then(io._DetachedSocket)(dart.fn(_ => {
-        io._HttpConnection._connections[dartx.remove](this[_serviceId]);
-        return new io._DetachedSocket(this[_socket], detachedIncoming);
-      }, dynamicTo_DetachedSocket()));
-    }
-    get connectionInfo() {
-      return io._HttpConnectionInfo.create(io.Socket._check(this[_socket]));
-    }
-    get [_isActive]() {
-      return this[_state$1] == io._HttpConnection._ACTIVE;
-    }
-    get [_isIdle]() {
-      return this[_state$1] == io._HttpConnection._IDLE;
-    }
-    get [_isClosing]() {
-      return this[_state$1] == io._HttpConnection._CLOSING;
-    }
-    get [_isDetached]() {
-      return this[_state$1] == io._HttpConnection._DETACHED;
-    }
-    get [_serviceTypePath]() {
-      return 'io/http/serverconnections';
-    }
-    get [_serviceTypeName]() {
-      return 'HttpServerConnection';
-    }
-    [_toJSON$](ref) {
-      let name = dart.str`${dart.dload(dart.dload(this[_socket], 'address'), 'host')}:${dart.dload(this[_socket], 'port')} <-> ` + dart.str`${dart.dload(dart.dload(this[_socket], 'remoteAddress'), 'host')}:${dart.dload(this[_socket], 'remotePort')}`;
-      let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: name, user_name: name}, core.String, dart.dynamic);
-      if (dart.test(ref)) {
-        return r;
-      }
-      r[dartx._set]('server', this[_httpServer][_toJSON$](true));
-      try {
-        r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON$, true));
-      } catch (_) {
-        r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
-      }
-
-      switch (this[_state$1]) {
-        case io._HttpConnection._ACTIVE:
-        {
-          r[dartx._set]('state', "Active");
-          break;
-        }
-        case io._HttpConnection._IDLE:
-        {
-          r[dartx._set]('state', "Idle");
-          break;
-        }
-        case io._HttpConnection._CLOSING:
-        {
-          r[dartx._set]('state', "Closing");
-          break;
-        }
-        case io._HttpConnection._DETACHED:
-        {
-          r[dartx._set]('state', "Detached");
-          break;
-        }
-        default:
-        {
-          r[dartx._set]('state', 'Unknown');
-          break;
-        }
-      }
-      return r;
-    }
-  };
-  dart.setBaseClass(io._HttpConnection, dart.mixin(collection.LinkedListEntry$(io._HttpConnection), io._ServiceObject));
-  dart.addSimpleTypeTests(io._HttpConnection);
-  dart.setSignature(io._HttpConnection, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpConnection, [dart.dynamic, io._HttpServer])}),
-    fields: () => ({
-      [_socket]: dart.dynamic,
-      [_httpServer]: io._HttpServer,
-      [_httpParser]: io._HttpParser,
-      [_state$1]: core.int,
-      [_subscription$]: async.StreamSubscription,
-      [_idleMark]: core.bool,
-      [_streamFuture]: async.Future
-    }),
-    getters: () => ({
-      isMarkedIdle: dart.definiteFunctionType(core.bool, []),
-      connectionInfo: dart.definiteFunctionType(io.HttpConnectionInfo, []),
-      [_isActive]: dart.definiteFunctionType(core.bool, []),
-      [_isIdle]: dart.definiteFunctionType(core.bool, []),
-      [_isClosing]: dart.definiteFunctionType(core.bool, []),
-      [_isDetached]: dart.definiteFunctionType(core.bool, []),
-      [_serviceTypePath]: dart.definiteFunctionType(core.String, []),
-      [_serviceTypeName]: dart.definiteFunctionType(core.String, [])
-    }),
-    methods: () => ({
-      markIdle: dart.definiteFunctionType(dart.void, []),
-      destroy: dart.definiteFunctionType(dart.void, []),
-      detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
-      [_toJSON$]: dart.definiteFunctionType(core.Map, [core.bool])
-    }),
-    sfields: () => ({
-      _ACTIVE: core.int,
-      _IDLE: core.int,
-      _CLOSING: core.int,
-      _DETACHED: core.int,
-      _connections: MapOfint$_HttpConnection()
-    })
-  });
-  io._HttpConnection._ACTIVE = 0;
-  io._HttpConnection._IDLE = 1;
-  io._HttpConnection._CLOSING = 2;
-  io._HttpConnection._DETACHED = 3;
-  dart.defineLazy(io._HttpConnection, {
-    get _connections() {
-      return HashMapOfint$_HttpConnection().new();
-    },
-    set _connections(_) {}
-  });
-  const _activeConnections = Symbol('_activeConnections');
-  const _idleConnections = Symbol('_idleConnections');
-  const _serverSocket = Symbol('_serverSocket');
-  const _closeServer = Symbol('_closeServer');
-  let const$71;
-  let const$72;
-  io._HttpServer = class _HttpServer extends dart.mixin(async.Stream$(io.HttpRequest), io._ServiceObject) {
-    static bind(address, port, backlog, v6Only, shared) {
-      return io.ServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io._HttpServer)(dart.fn(socket => new io._HttpServer._(socket, true), ServerSocketTo_HttpServer()));
-    }
-    static bindSecure(address, port, context, backlog, v6Only, requestClientCertificate, shared) {
-      return io.SecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, shared: shared}).then(io._HttpServer)(dart.fn(socket => new io._HttpServer._(socket, true), SecureServerSocketTo_HttpServer()));
-    }
-    _(serverSocket, closeServer) {
-      this.defaultResponseHeaders = io._HttpServer._initDefaultResponseHeaders();
-      this[_activeConnections] = new (LinkedListOf_HttpConnection())();
-      this[_idleConnections] = new (LinkedListOf_HttpConnection())();
-      this[_serverSocket] = serverSocket;
-      this[_closeServer] = closeServer;
-      this.serverHeader = null;
-      this.autoCompress = false;
-      this[_idleTimeout] = null;
-      this[_idleTimer] = null;
-      this[_sessionManagerInstance] = null;
-      this.closed = false;
-      this[_controller$0] = null;
-      super.new();
-      this[_controller$0] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
-      this.idleTimeout = const$71 || (const$71 = dart.const(new core.Duration({seconds: 120})));
-      io._HttpServer._servers[dartx._set](this[_serviceId], this);
-      dart.dput(this[_serverSocket], _owner, this);
-    }
-    listenOn(serverSocket) {
-      this.defaultResponseHeaders = io._HttpServer._initDefaultResponseHeaders();
-      this[_activeConnections] = new (LinkedListOf_HttpConnection())();
-      this[_idleConnections] = new (LinkedListOf_HttpConnection())();
-      this[_serverSocket] = serverSocket;
-      this[_closeServer] = false;
-      this.serverHeader = null;
-      this.autoCompress = false;
-      this[_idleTimeout] = null;
-      this[_idleTimer] = null;
-      this[_sessionManagerInstance] = null;
-      this.closed = false;
-      this[_controller$0] = null;
-      super.new();
-      this[_controller$0] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
-      this.idleTimeout = const$72 || (const$72 = dart.const(new core.Duration({seconds: 120})));
-      io._HttpServer._servers[dartx._set](this[_serviceId], this);
-      try {
-        dart.dput(this[_serverSocket], _owner, this);
-      } catch (_) {
-      }
-
-    }
-    static _initDefaultResponseHeaders() {
-      let defaultResponseHeaders = new io._HttpHeaders('1.1');
-      defaultResponseHeaders.contentType = io.ContentType.TEXT;
-      defaultResponseHeaders.set('X-Frame-Options', 'SAMEORIGIN');
-      defaultResponseHeaders.set('X-Content-Type-Options', 'nosniff');
-      defaultResponseHeaders.set('X-XSS-Protection', '1; mode=block');
-      return defaultResponseHeaders;
-    }
-    get idleTimeout() {
-      return this[_idleTimeout];
-    }
-    set idleTimeout(duration) {
-      if (this[_idleTimer] != null) {
-        this[_idleTimer].cancel();
-        this[_idleTimer] = null;
-      }
-      this[_idleTimeout] = duration;
-      if (this[_idleTimeout] != null) {
-        this[_idleTimer] = async.Timer.periodic(this[_idleTimeout], dart.fn(_ => {
-          for (let idle of this[_idleConnections].toList()) {
-            if (dart.test(idle.isMarkedIdle)) {
-              idle.destroy();
-            } else {
-              idle.markIdle();
-            }
-          }
-        }, TimerToNull()));
-      }
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      dart.dsend(this[_serverSocket], 'listen', dart.fn(socket => {
-        socket.setOption(io.SocketOption.TCP_NODELAY, true);
-        let connection = new io._HttpConnection(socket, this);
-        this[_idleConnections].add(connection);
-      }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
-          if (!io.HandshakeException.is(error)) {
-            this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
-          }
-        }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
-      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    close(opts) {
-      let force = opts && 'force' in opts ? opts.force : false;
-      this.closed = true;
-      let result = null;
-      if (this[_serverSocket] != null && dart.test(this[_closeServer])) {
-        result = async.Future._check(dart.dsend(this[_serverSocket], 'close'));
-      } else {
-        result = async.Future.value();
-      }
-      this.idleTimeout = null;
-      if (dart.test(force)) {
-        for (let c of this[_activeConnections].toList()) {
-          c.destroy();
-        }
-        dart.assert(this[_activeConnections].isEmpty);
-      }
-      for (let c of this[_idleConnections].toList()) {
-        c.destroy();
-      }
-      this[_maybePerformCleanup]();
-      return result;
-    }
-    [_maybePerformCleanup]() {
-      if (dart.test(this.closed) && dart.test(this[_idleConnections].isEmpty) && dart.test(this[_activeConnections].isEmpty) && this[_sessionManagerInstance] != null) {
-        this[_sessionManagerInstance].close();
-        this[_sessionManagerInstance] = null;
-        io._HttpServer._servers[dartx.remove](this[_serviceId]);
-      }
-    }
-    get port() {
-      if (dart.test(this.closed)) dart.throw(new io.HttpException("HttpServer is not bound to a socket"));
-      return core.int._check(dart.dload(this[_serverSocket], 'port'));
-    }
-    get address() {
-      if (dart.test(this.closed)) dart.throw(new io.HttpException("HttpServer is not bound to a socket"));
-      return io.InternetAddress._check(dart.dload(this[_serverSocket], 'address'));
-    }
-    set sessionTimeout(timeout) {
-      this[_sessionManager].sessionTimeout = timeout;
-    }
-    [_handleRequest](request) {
-      if (!dart.test(this.closed)) {
-        this[_controller$0].add(request);
-      } else {
-        request[_httpConnection].destroy();
-      }
-    }
-    [_connectionClosed](connection) {
-      connection.unlink();
-      this[_maybePerformCleanup]();
-    }
-    [_markIdle](connection) {
-      this[_activeConnections].remove(connection);
-      this[_idleConnections].add(connection);
-    }
-    [_markActive](connection) {
-      this[_idleConnections].remove(connection);
-      this[_activeConnections].add(connection);
-    }
-    get [_sessionManager]() {
-      if (this[_sessionManagerInstance] == null) {
-        this[_sessionManagerInstance] = new io._HttpSessionManager();
-      }
-      return this[_sessionManagerInstance];
-    }
-    connectionsInfo() {
-      let result = new io.HttpConnectionsInfo();
-      result.total = dart.notNull(this[_activeConnections].length) + dart.notNull(this[_idleConnections].length);
-      this[_activeConnections].forEach(dart.fn(conn => {
-        if (dart.test(conn[_isActive])) {
-          result.active = dart.notNull(result.active) + 1;
-        } else {
-          dart.assert(conn[_isClosing]);
-          result.closing = dart.notNull(result.closing) + 1;
-        }
-      }, _HttpConnectionToNull()));
-      this[_idleConnections].forEach(dart.fn(conn => {
-        result.idle = dart.notNull(result.idle) + 1;
-        dart.assert(conn[_isIdle]);
-      }, _HttpConnectionToNull()));
-      return result;
-    }
-    get [_serviceTypePath]() {
-      return 'io/http/servers';
-    }
-    get [_serviceTypeName]() {
-      return 'HttpServer';
-    }
-    [_toJSON$](ref) {
-      let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: dart.str`${this.address.host}:${this.port}`, user_name: dart.str`${this.address.host}:${this.port}`}, core.String, dart.dynamic);
-      if (dart.test(ref)) {
-        return r;
-      }
-      try {
-        r[dartx._set]('socket', dart.dsend(this[_serverSocket], _toJSON$, true));
-      } catch (_) {
-        r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
-      }
-
-      r[dartx._set]('port', this.port);
-      r[dartx._set]('address', this.address.host);
-      r[dartx._set]('active', this[_activeConnections].map(core.Map)(dart.fn(c => c[_toJSON$](true), _HttpConnectionToMap()))[dartx.toList]());
-      r[dartx._set]('idle', this[_idleConnections].map(core.Map)(dart.fn(c => c[_toJSON$](true), _HttpConnectionToMap()))[dartx.toList]());
-      r[dartx._set]('closed', this.closed);
-      return r;
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpServer);
-  dart.defineNamedConstructor(io._HttpServer, '_');
-  dart.defineNamedConstructor(io._HttpServer, 'listenOn');
-  io._HttpServer[dart.implements] = () => [io.HttpServer];
-  dart.setSignature(io._HttpServer, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(io._HttpServer, [dart.dynamic, core.bool]),
-      listenOn: dart.definiteFunctionType(io._HttpServer, [dart.dynamic])
-    }),
-    fields: () => ({
-      serverHeader: core.String,
-      defaultResponseHeaders: io.HttpHeaders,
-      autoCompress: core.bool,
-      [_idleTimeout]: core.Duration,
-      [_idleTimer]: async.Timer,
-      [_sessionManagerInstance]: io._HttpSessionManager,
-      closed: core.bool,
-      [_serverSocket]: dart.dynamic,
-      [_closeServer]: core.bool,
-      [_activeConnections]: LinkedListOf_HttpConnection(),
-      [_idleConnections]: LinkedListOf_HttpConnection(),
-      [_controller$0]: StreamControllerOfHttpRequest()
-    }),
-    getters: () => ({
-      idleTimeout: dart.definiteFunctionType(core.Duration, []),
-      port: dart.definiteFunctionType(core.int, []),
-      address: dart.definiteFunctionType(io.InternetAddress, []),
-      [_sessionManager]: dart.definiteFunctionType(io._HttpSessionManager, []),
-      [_serviceTypePath]: dart.definiteFunctionType(core.String, []),
-      [_serviceTypeName]: dart.definiteFunctionType(core.String, [])
-    }),
-    setters: () => ({
-      idleTimeout: dart.definiteFunctionType(dart.void, [core.Duration]),
-      sessionTimeout: dart.definiteFunctionType(dart.void, [core.int])
-    }),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(io.HttpRequest), [HttpRequestTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      close: dart.definiteFunctionType(async.Future, [], {force: core.bool}),
-      [_maybePerformCleanup]: dart.definiteFunctionType(dart.void, []),
-      [_handleRequest]: dart.definiteFunctionType(dart.void, [io._HttpRequest]),
-      [_connectionClosed]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
-      [_markIdle]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
-      [_markActive]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
-      connectionsInfo: dart.definiteFunctionType(io.HttpConnectionsInfo, []),
-      [_toJSON$]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
-    }),
-    sfields: () => ({_servers: MapOfint$_HttpServer()}),
-    statics: () => ({
-      bind: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int, core.int, core.bool, core.bool]),
-      bindSecure: dart.definiteFunctionType(async.Future$(io.HttpServer), [dart.dynamic, core.int, io.SecurityContext, core.int, core.bool, core.bool, core.bool]),
-      _initDefaultResponseHeaders: dart.definiteFunctionType(io.HttpHeaders, [])
-    }),
-    names: ['bind', 'bindSecure', '_initDefaultResponseHeaders']
-  });
-  dart.defineLazy(io._HttpServer, {
-    get _servers() {
-      return MapOfint$_HttpServer().new();
-    },
-    set _servers(_) {}
-  });
-  io._Proxy = class _Proxy extends core.Object {
-    new(host, port, username, password) {
-      this.host = host;
-      this.port = port;
-      this.username = username;
-      this.password = password;
-      this.isDirect = false;
-    }
-    direct() {
-      this.host = null;
-      this.port = null;
-      this.username = null;
-      this.password = null;
-      this.isDirect = true;
-    }
-    get isAuthenticated() {
-      return this.username != null;
-    }
-  };
-  dart.defineNamedConstructor(io._Proxy, 'direct');
-  dart.setSignature(io._Proxy, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._Proxy, [core.String, core.int, core.String, core.String]),
-      direct: dart.definiteFunctionType(io._Proxy, [])
-    }),
-    fields: () => ({
-      host: core.String,
-      port: core.int,
-      username: core.String,
-      password: core.String,
-      isDirect: core.bool
-    }),
-    getters: () => ({isAuthenticated: dart.definiteFunctionType(core.bool, [])})
-  });
-  let const$73;
-  let const$74;
-  io._ProxyConfiguration = class _ProxyConfiguration extends core.Object {
-    new(configuration) {
-      this.proxies = ListOf_Proxy().new();
-      if (configuration == null) {
-        dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
-      }
-      let list = configuration[dartx.split](";");
-      list[dartx.forEach](dart.fn(proxy => {
-        proxy = proxy[dartx.trim]();
-        if (!dart.test(proxy[dartx.isEmpty])) {
-          if (dart.test(proxy[dartx.startsWith](io._ProxyConfiguration.PROXY_PREFIX))) {
-            let username = null;
-            let password = null;
-            proxy = proxy[dartx.substring](io._ProxyConfiguration.PROXY_PREFIX[dartx.length])[dartx.trim]();
-            let at = proxy[dartx.indexOf]("@");
-            if (at != -1) {
-              let userinfo = proxy[dartx.substring](0, at)[dartx.trim]();
-              proxy = proxy[dartx.substring](dart.notNull(at) + 1)[dartx.trim]();
-              let colon = userinfo[dartx.indexOf](":");
-              if (colon == -1 || colon == 0 || colon == dart.notNull(proxy[dartx.length]) - 1) {
-                dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
-              }
-              username = userinfo[dartx.substring](0, colon)[dartx.trim]();
-              password = userinfo[dartx.substring](dart.notNull(colon) + 1)[dartx.trim]();
-            }
-            let colon = proxy[dartx.lastIndexOf](":");
-            if (colon == -1 || colon == 0 || colon == dart.notNull(proxy[dartx.length]) - 1) {
-              dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
-            }
-            let host = proxy[dartx.substring](0, colon)[dartx.trim]();
-            if (dart.test(host[dartx.startsWith]("[")) && dart.test(host[dartx.endsWith]("]"))) {
-              host = host[dartx.substring](1, dart.notNull(host[dartx.length]) - 1);
-            }
-            let portString = proxy[dartx.substring](dart.notNull(colon) + 1)[dartx.trim]();
-            let port = null;
-            try {
-              port = core.int.parse(portString);
-            } catch (e) {
-              if (core.FormatException.is(e)) {
-                dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}, ` + dart.str`invalid port '${portString}'`));
-              } else
-                throw e;
-            }
-
-            this.proxies[dartx.add](new io._Proxy(host, port, username, password));
-          } else if (proxy[dartx.trim]() == io._ProxyConfiguration.DIRECT_PREFIX) {
-            this.proxies[dartx.add](new io._Proxy.direct());
-          } else {
-            dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
-          }
-        }
-      }, StringToNull()));
-    }
-    direct() {
-      this.proxies = const$74 || (const$74 = dart.constList([const$73 || (const$73 = dart.const(new io._Proxy.direct()))], io._Proxy));
-    }
-  };
-  dart.defineNamedConstructor(io._ProxyConfiguration, 'direct');
-  dart.setSignature(io._ProxyConfiguration, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._ProxyConfiguration, [core.String]),
-      direct: dart.definiteFunctionType(io._ProxyConfiguration, [])
-    }),
-    fields: () => ({proxies: ListOf_Proxy()}),
-    sfields: () => ({
-      PROXY_PREFIX: core.String,
-      DIRECT_PREFIX: core.String
-    })
-  });
-  io._ProxyConfiguration.PROXY_PREFIX = "PROXY ";
-  io._ProxyConfiguration.DIRECT_PREFIX = "DIRECT";
-  io._HttpConnectionInfo = class _HttpConnectionInfo extends core.Object {
-    new() {
-      this.remoteAddress = null;
-      this.remotePort = null;
-      this.localPort = null;
-    }
-    static create(socket) {
-      if (socket == null) return null;
-      try {
-        let info = new io._HttpConnectionInfo();
-        info.remoteAddress = socket.remoteAddress;
-        info.remotePort = socket.remotePort;
-        info.localPort = socket.port;
-        return info;
-      } catch (e) {
-      }
-
-      return null;
-    }
-  };
-  io._HttpConnectionInfo[dart.implements] = () => [io.HttpConnectionInfo];
-  dart.setSignature(io._HttpConnectionInfo, {
-    fields: () => ({
-      remoteAddress: io.InternetAddress,
-      remotePort: core.int,
-      localPort: core.int
-    }),
-    statics: () => ({create: dart.definiteFunctionType(io._HttpConnectionInfo, [io.Socket])}),
-    names: ['create']
-  });
-  io._DetachedSocket = class _DetachedSocket extends async.Stream$(core.List$(core.int)) {
-    new(socket, incoming) {
-      this[_socket] = socket;
-      this[_incoming] = incoming;
-      super.new();
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_incoming].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    get encoding() {
-      return convert.Encoding._check(dart.dload(this[_socket], 'encoding'));
-    }
-    set encoding(value) {
-      dart.dput(this[_socket], 'encoding', value);
-    }
-    write(obj) {
-      dart.dsend(this[_socket], 'write', obj);
-    }
-    writeln(obj) {
-      if (obj === void 0) obj = "";
-      dart.dsend(this[_socket], 'writeln', obj);
-    }
-    writeCharCode(charCode) {
-      dart.dsend(this[_socket], 'writeCharCode', charCode);
-    }
-    writeAll(objects, separator) {
-      if (separator === void 0) separator = "";
-      dart.dsend(this[_socket], 'writeAll', objects, separator);
-    }
-    add(bytes) {
-      dart.dsend(this[_socket], 'add', bytes);
-    }
-    addError(error, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      return dart.dsend(this[_socket], 'addError', error, stackTrace);
-    }
-    addStream(stream) {
-      return FutureOfSocket()._check(dart.dsend(this[_socket], 'addStream', stream));
-    }
-    destroy() {
-      dart.dsend(this[_socket], 'destroy');
-    }
-    flush() {
-      return async.Future._check(dart.dsend(this[_socket], 'flush'));
-    }
-    close() {
-      return async.Future._check(dart.dsend(this[_socket], 'close'));
-    }
-    get done() {
-      return FutureOfSocket()._check(dart.dload(this[_socket], 'done'));
-    }
-    get port() {
-      return core.int._check(dart.dload(this[_socket], 'port'));
-    }
-    get address() {
-      return io.InternetAddress._check(dart.dload(this[_socket], 'address'));
-    }
-    get remoteAddress() {
-      return io.InternetAddress._check(dart.dload(this[_socket], 'remoteAddress'));
-    }
-    get remotePort() {
-      return core.int._check(dart.dload(this[_socket], 'remotePort'));
-    }
-    setOption(option, enabled) {
-      return core.bool._check(dart.dsend(this[_socket], 'setOption', option, enabled));
-    }
-    [_toJSON$](ref) {
-      return core.Map._check(dart.dsend(this[_socket], _toJSON$, ref));
-    }
-    set [_owner](owner) {
-      dart.dput(this[_socket], _owner, owner);
-    }
-  };
-  dart.addSimpleTypeTests(io._DetachedSocket);
-  io._DetachedSocket[dart.implements] = () => [io.Socket];
-  dart.setSignature(io._DetachedSocket, {
-    constructors: () => ({new: dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic, StreamOfListOfint()])}),
-    fields: () => ({
-      [_incoming]: StreamOfListOfint(),
-      [_socket]: dart.dynamic
-    }),
-    getters: () => ({
-      encoding: dart.definiteFunctionType(convert.Encoding, []),
-      done: dart.definiteFunctionType(async.Future$(io.Socket), []),
-      port: dart.definiteFunctionType(core.int, []),
-      address: dart.definiteFunctionType(io.InternetAddress, []),
-      remoteAddress: dart.definiteFunctionType(io.InternetAddress, []),
-      remotePort: dart.definiteFunctionType(core.int, [])
-    }),
-    setters: () => ({
-      encoding: dart.definiteFunctionType(dart.void, [convert.Encoding]),
-      [_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    }),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      write: dart.definiteFunctionType(dart.void, [core.Object]),
-      writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-      addStream: dart.definiteFunctionType(async.Future$(io.Socket), [StreamOfListOfint()]),
-      destroy: dart.definiteFunctionType(dart.void, []),
-      flush: dart.definiteFunctionType(async.Future, []),
-      close: dart.definiteFunctionType(async.Future, []),
-      setOption: dart.definiteFunctionType(core.bool, [io.SocketOption, core.bool]),
-      [_toJSON$]: dart.definiteFunctionType(core.Map, [core.bool])
-    })
-  });
-  const _scheme = Symbol('_scheme');
-  io._AuthenticationScheme = class _AuthenticationScheme extends core.Object {
-    new(scheme) {
-      this[_scheme] = scheme;
-    }
-    static fromString(scheme) {
-      if (scheme[dartx.toLowerCase]() == "basic") return io._AuthenticationScheme.BASIC;
-      if (scheme[dartx.toLowerCase]() == "digest") return io._AuthenticationScheme.DIGEST;
-      return io._AuthenticationScheme.UNKNOWN;
-    }
-    toString() {
-      if (dart.equals(this, io._AuthenticationScheme.BASIC)) return "Basic";
-      if (dart.equals(this, io._AuthenticationScheme.DIGEST)) return "Digest";
-      return "Unknown";
-    }
-  };
-  dart.setSignature(io._AuthenticationScheme, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io._AuthenticationScheme, [core.int]),
-      fromString: dart.definiteFunctionType(io._AuthenticationScheme, [core.String])
-    }),
-    fields: () => ({[_scheme]: core.int}),
-    sfields: () => ({
-      UNKNOWN: io._AuthenticationScheme,
-      BASIC: io._AuthenticationScheme,
-      DIGEST: io._AuthenticationScheme
-    })
-  });
-  dart.defineLazy(io._AuthenticationScheme, {
-    get UNKNOWN() {
-      return dart.const(new io._AuthenticationScheme(-1));
-    },
-    get BASIC() {
-      return dart.const(new io._AuthenticationScheme(0));
-    },
-    get DIGEST() {
-      return dart.const(new io._AuthenticationScheme(1));
-    }
-  });
-  io._Credentials = class _Credentials extends core.Object {
-    new(credentials, realm) {
-      this.credentials = credentials;
-      this.realm = realm;
-      this.used = false;
-      this.ha1 = null;
-      this.nonce = null;
-      this.algorithm = null;
-      this.qop = null;
-      this.nonceCount = null;
-      if (dart.equals(this.credentials.scheme, io._AuthenticationScheme.DIGEST)) {
-        let creds = io._HttpClientDigestCredentials._check(this.credentials);
-        let hasher = new io._MD5();
-        hasher.add(convert.UTF8.encode(creds.username));
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(this.realm[dartx.codeUnits]);
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(convert.UTF8.encode(creds.password));
-        this.ha1 = io._CryptoUtils.bytesToHex(hasher.close());
-      }
-    }
-    get scheme() {
-      return this.credentials.scheme;
-    }
-  };
-  dart.setSignature(io._Credentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io._Credentials, [io._HttpClientCredentials, core.String])}),
-    fields: () => ({
-      credentials: io._HttpClientCredentials,
-      realm: core.String,
-      used: core.bool,
-      ha1: core.String,
-      nonce: core.String,
-      algorithm: core.String,
-      qop: core.String,
-      nonceCount: core.int
-    }),
-    getters: () => ({scheme: dart.definiteFunctionType(io._AuthenticationScheme, [])})
-  });
-  io._SiteCredentials = class _SiteCredentials extends io._Credentials {
-    new(uri, realm, creds) {
-      this.uri = uri;
-      super.new(creds, core.String._check(realm));
-    }
-    applies(uri, scheme) {
-      if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
-      if (uri.host != this.uri.host) return false;
-      let thisPort = this.uri.port == 0 ? io.HttpClient.DEFAULT_HTTP_PORT : this.uri.port;
-      let otherPort = uri.port == 0 ? io.HttpClient.DEFAULT_HTTP_PORT : uri.port;
-      if (otherPort != thisPort) return false;
-      return uri.path[dartx.startsWith](this.uri.path);
-    }
-    authorize(request) {
-      if (dart.equals(this.credentials.scheme, io._AuthenticationScheme.DIGEST) && this.nonce == null) {
-        return;
-      }
-      this.credentials.authorize(this, request);
-      this.used = true;
-    }
-  };
-  dart.setSignature(io._SiteCredentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io._SiteCredentials, [core.Uri, dart.dynamic, io._HttpClientCredentials])}),
-    fields: () => ({uri: core.Uri}),
-    methods: () => ({
-      applies: dart.definiteFunctionType(core.bool, [core.Uri, io._AuthenticationScheme]),
-      authorize: dart.definiteFunctionType(dart.void, [io.HttpClientRequest])
-    })
-  });
-  io._ProxyCredentials = class _ProxyCredentials extends io._Credentials {
-    new(host, port, realm, creds) {
-      this.host = host;
-      this.port = port;
-      super.new(creds, core.String._check(realm));
-    }
-    applies(proxy, scheme) {
-      if (scheme != null && !dart.equals(this.credentials.scheme, scheme)) return false;
-      return proxy.host == this.host && proxy.port == this.port;
-    }
-    authorize(request) {
-      if (dart.equals(this.credentials.scheme, io._AuthenticationScheme.DIGEST) && this.nonce == null) {
-        return;
-      }
-      this.credentials.authorizeProxy(this, request);
-    }
-  };
-  dart.setSignature(io._ProxyCredentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ProxyCredentials, [core.String, core.int, dart.dynamic, io._HttpClientCredentials])}),
-    fields: () => ({
-      host: core.String,
-      port: core.int
-    }),
-    methods: () => ({
-      applies: dart.definiteFunctionType(core.bool, [io._Proxy, io._AuthenticationScheme]),
-      authorize: dart.definiteFunctionType(dart.void, [io.HttpClientRequest])
-    })
-  });
-  io._HttpClientCredentials = class _HttpClientCredentials extends core.Object {};
-  io._HttpClientCredentials[dart.implements] = () => [io.HttpClientCredentials];
-  io._HttpClientBasicCredentials = class _HttpClientBasicCredentials extends io._HttpClientCredentials {
-    new(username, password) {
-      this.username = username;
-      this.password = password;
-    }
-    get scheme() {
-      return io._AuthenticationScheme.BASIC;
-    }
-    authorization() {
-      let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${this.username}:${this.password}`));
-      return dart.str`Basic ${auth}`;
-    }
-    authorize(_, request) {
-      request.headers.set(io.HttpHeaders.AUTHORIZATION, this.authorization());
-    }
-    authorizeProxy(_, request) {
-      request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, this.authorization());
-    }
-  };
-  io._HttpClientBasicCredentials[dart.implements] = () => [io.HttpClientBasicCredentials];
-  dart.setSignature(io._HttpClientBasicCredentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpClientBasicCredentials, [core.String, core.String])}),
-    fields: () => ({
-      username: core.String,
-      password: core.String
-    }),
-    getters: () => ({scheme: dart.definiteFunctionType(io._AuthenticationScheme, [])}),
-    methods: () => ({
-      authorization: dart.definiteFunctionType(core.String, []),
-      authorize: dart.definiteFunctionType(dart.void, [io._Credentials, io.HttpClientRequest]),
-      authorizeProxy: dart.definiteFunctionType(dart.void, [io._ProxyCredentials, io.HttpClientRequest])
-    })
-  });
-  io._HttpClientDigestCredentials = class _HttpClientDigestCredentials extends io._HttpClientCredentials {
-    new(username, password) {
-      this.username = username;
-      this.password = password;
-    }
-    get scheme() {
-      return io._AuthenticationScheme.DIGEST;
-    }
-    authorization(credentials, request) {
-      let requestUri = request[_requestUri]();
-      let hasher = new io._MD5();
-      hasher.add(request.method[dartx.codeUnits]);
-      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-      hasher.add(requestUri[dartx.codeUnits]);
-      let ha2 = io._CryptoUtils.bytesToHex(hasher.close());
-      let qop = null;
-      let cnonce = null;
-      let nc = null;
-      let x = null;
-      hasher = new io._MD5();
-      hasher.add(credentials.ha1[dartx.codeUnits]);
-      hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-      if (credentials.qop == "auth") {
-        qop = credentials.qop;
-        cnonce = io._CryptoUtils.bytesToHex(io._IOCrypto.getRandomBytes(4));
-        credentials.nonceCount = dart.notNull(credentials.nonceCount) + 1;
-        nc = credentials.nonceCount[dartx.toRadixString](16);
-        nc = dart.notNull("00000000"[dartx.substring](0, 8 - dart.notNull(nc[dartx.length]) + 1)) + dart.notNull(nc);
-        hasher.add(credentials.nonce[dartx.codeUnits]);
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(nc[dartx.codeUnits]);
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(cnonce[dartx.codeUnits]);
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(credentials.qop[dartx.codeUnits]);
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(ha2[dartx.codeUnits]);
-      } else {
-        hasher.add(credentials.nonce[dartx.codeUnits]);
-        hasher.add(JSArrayOfint().of([io._CharCode.COLON]));
-        hasher.add(ha2[dartx.codeUnits]);
-      }
-      let response = io._CryptoUtils.bytesToHex(hasher.close());
-      let buffer = new core.StringBuffer();
-      buffer.write('Digest ');
-      buffer.write(dart.str`username="${this.username}"`);
-      buffer.write(dart.str`, realm="${credentials.realm}"`);
-      buffer.write(dart.str`, nonce="${credentials.nonce}"`);
-      buffer.write(dart.str`, uri="${requestUri}"`);
-      buffer.write(dart.str`, algorithm="${credentials.algorithm}"`);
-      if (qop == "auth") {
-        buffer.write(dart.str`, qop="${qop}"`);
-        buffer.write(dart.str`, cnonce="${cnonce}"`);
-        buffer.write(dart.str`, nc="${nc}"`);
-      }
-      buffer.write(dart.str`, response="${response}"`);
-      return buffer.toString();
-    }
-    authorize(credentials, request) {
-      request.headers.set(io.HttpHeaders.AUTHORIZATION, this.authorization(credentials, io._HttpClientRequest._check(request)));
-    }
-    authorizeProxy(credentials, request) {
-      request.headers.set(io.HttpHeaders.PROXY_AUTHORIZATION, this.authorization(credentials, io._HttpClientRequest._check(request)));
-    }
-  };
-  io._HttpClientDigestCredentials[dart.implements] = () => [io.HttpClientDigestCredentials];
-  dart.setSignature(io._HttpClientDigestCredentials, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpClientDigestCredentials, [core.String, core.String])}),
-    fields: () => ({
-      username: core.String,
-      password: core.String
-    }),
-    getters: () => ({scheme: dart.definiteFunctionType(io._AuthenticationScheme, [])}),
-    methods: () => ({
-      authorization: dart.definiteFunctionType(core.String, [io._Credentials, io._HttpClientRequest]),
-      authorize: dart.definiteFunctionType(dart.void, [io._Credentials, io.HttpClientRequest]),
-      authorizeProxy: dart.definiteFunctionType(dart.void, [io._ProxyCredentials, io.HttpClientRequest])
-    })
-  });
-  io._RedirectInfo = class _RedirectInfo extends core.Object {
-    new(statusCode, method, location) {
-      this.statusCode = statusCode;
-      this.method = method;
-      this.location = location;
-    }
-  };
-  io._RedirectInfo[dart.implements] = () => [io.RedirectInfo];
-  dart.setSignature(io._RedirectInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._RedirectInfo, [core.int, core.String, core.Uri])}),
-    fields: () => ({
-      statusCode: core.int,
-      method: core.String,
-      location: core.Uri
-    })
-  });
-  io._getHttpVersion = function() {
-    let version = io.Platform.version;
-    let index = version[dartx.indexOf]('.', dart.notNull(version[dartx.indexOf]('.')) + 1);
-    version = version[dartx.substring](0, index);
-    return dart.str`Dart/${version} (dart:io)`;
-  };
-  dart.fn(io._getHttpVersion, VoidToString$());
-  io._Const = class _Const extends core.Object {};
-  dart.setSignature(io._Const, {
-    sfields: () => ({
-      HTTP: ListOfint(),
-      HTTP1DOT: ListOfint(),
-      HTTP10: ListOfint(),
-      HTTP11: ListOfint(),
-      T: core.bool,
-      F: core.bool,
-      SEPARATOR_MAP: ListOfbool()
-    })
-  });
-  io._Const.HTTP = dart.constList([72, 84, 84, 80], core.int);
-  io._Const.HTTP1DOT = dart.constList([72, 84, 84, 80, 47, 49, 46], core.int);
-  io._Const.HTTP10 = dart.constList([72, 84, 84, 80, 47, 49, 46, 48], core.int);
-  io._Const.HTTP11 = dart.constList([72, 84, 84, 80, 47, 49, 46, 49], core.int);
-  io._Const.T = true;
-  io._Const.F = false;
-  dart.defineLazy(io._Const, {
-    get SEPARATOR_MAP() {
-      return dart.constList([io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.T, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.T, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.T, io._Const.F, io._Const.T, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F, io._Const.F], core.bool);
-    }
-  });
-  io._CharCode = class _CharCode extends core.Object {};
-  dart.setSignature(io._CharCode, {
-    sfields: () => ({
-      HT: core.int,
-      LF: core.int,
-      CR: core.int,
-      SP: core.int,
-      AMPERSAND: core.int,
-      COMMA: core.int,
-      DASH: core.int,
-      SLASH: core.int,
-      ZERO: core.int,
-      ONE: core.int,
-      COLON: core.int,
-      SEMI_COLON: core.int,
-      EQUAL: core.int
-    })
-  });
-  io._CharCode.HT = 9;
-  io._CharCode.LF = 10;
-  io._CharCode.CR = 13;
-  io._CharCode.SP = 32;
-  io._CharCode.AMPERSAND = 38;
-  io._CharCode.COMMA = 44;
-  io._CharCode.DASH = 45;
-  io._CharCode.SLASH = 47;
-  io._CharCode.ZERO = 48;
-  io._CharCode.ONE = 49;
-  io._CharCode.COLON = 58;
-  io._CharCode.SEMI_COLON = 59;
-  io._CharCode.EQUAL = 61;
-  io._State = class _State extends core.Object {};
-  dart.setSignature(io._State, {
-    sfields: () => ({
-      START: core.int,
-      METHOD_OR_RESPONSE_HTTP_VERSION: core.int,
-      RESPONSE_HTTP_VERSION: core.int,
-      REQUEST_LINE_METHOD: core.int,
-      REQUEST_LINE_URI: core.int,
-      REQUEST_LINE_HTTP_VERSION: core.int,
-      REQUEST_LINE_ENDING: core.int,
-      RESPONSE_LINE_STATUS_CODE: core.int,
-      RESPONSE_LINE_REASON_PHRASE: core.int,
-      RESPONSE_LINE_ENDING: core.int,
-      HEADER_START: core.int,
-      HEADER_FIELD: core.int,
-      HEADER_VALUE_START: core.int,
-      HEADER_VALUE: core.int,
-      HEADER_VALUE_FOLDING_OR_ENDING: core.int,
-      HEADER_VALUE_FOLD_OR_END: core.int,
-      HEADER_ENDING: core.int,
-      CHUNK_SIZE_STARTING_CR: core.int,
-      CHUNK_SIZE_STARTING_LF: core.int,
-      CHUNK_SIZE: core.int,
-      CHUNK_SIZE_EXTENSION: core.int,
-      CHUNK_SIZE_ENDING: core.int,
-      CHUNKED_BODY_DONE_CR: core.int,
-      CHUNKED_BODY_DONE_LF: core.int,
-      BODY: core.int,
-      CLOSED: core.int,
-      UPGRADED: core.int,
-      FAILURE: core.int,
-      FIRST_BODY_STATE: core.int
-    })
-  });
-  io._State.START = 0;
-  io._State.METHOD_OR_RESPONSE_HTTP_VERSION = 1;
-  io._State.RESPONSE_HTTP_VERSION = 2;
-  io._State.REQUEST_LINE_METHOD = 3;
-  io._State.REQUEST_LINE_URI = 4;
-  io._State.REQUEST_LINE_HTTP_VERSION = 5;
-  io._State.REQUEST_LINE_ENDING = 6;
-  io._State.RESPONSE_LINE_STATUS_CODE = 7;
-  io._State.RESPONSE_LINE_REASON_PHRASE = 8;
-  io._State.RESPONSE_LINE_ENDING = 9;
-  io._State.HEADER_START = 10;
-  io._State.HEADER_FIELD = 11;
-  io._State.HEADER_VALUE_START = 12;
-  io._State.HEADER_VALUE = 13;
-  io._State.HEADER_VALUE_FOLDING_OR_ENDING = 14;
-  io._State.HEADER_VALUE_FOLD_OR_END = 15;
-  io._State.HEADER_ENDING = 16;
-  io._State.CHUNK_SIZE_STARTING_CR = 17;
-  io._State.CHUNK_SIZE_STARTING_LF = 18;
-  io._State.CHUNK_SIZE = 19;
-  io._State.CHUNK_SIZE_EXTENSION = 20;
-  io._State.CHUNK_SIZE_ENDING = 21;
-  io._State.CHUNKED_BODY_DONE_CR = 22;
-  io._State.CHUNKED_BODY_DONE_LF = 23;
-  io._State.BODY = 24;
-  io._State.CLOSED = 25;
-  io._State.UPGRADED = 26;
-  io._State.FAILURE = 27;
-  dart.defineLazy(io._State, {
-    get FIRST_BODY_STATE() {
-      return io._State.CHUNK_SIZE_STARTING_CR;
-    }
-  });
-  io._HttpVersion = class _HttpVersion extends core.Object {};
-  dart.setSignature(io._HttpVersion, {
-    sfields: () => ({
-      UNDETERMINED: core.int,
-      HTTP10: core.int,
-      HTTP11: core.int
-    })
-  });
-  io._HttpVersion.UNDETERMINED = 0;
-  io._HttpVersion.HTTP10 = 1;
-  io._HttpVersion.HTTP11 = 2;
-  io._MessageType = class _MessageType extends core.Object {};
-  dart.setSignature(io._MessageType, {
-    sfields: () => ({
-      UNDETERMINED: core.int,
-      REQUEST: core.int,
-      RESPONSE: core.int
-    })
-  });
-  io._MessageType.UNDETERMINED = 0;
-  io._MessageType.REQUEST = 1;
-  io._MessageType.RESPONSE = 0;
-  const _injectData = Symbol('_injectData');
-  const _userOnData = Symbol('_userOnData');
-  const _isCanceled$ = Symbol('_isCanceled');
-  const _pauseCount$ = Symbol('_pauseCount');
-  const _scheduled = Symbol('_scheduled');
-  const _maybeScheduleData = Symbol('_maybeScheduleData');
-  io._HttpDetachedStreamSubscription = class _HttpDetachedStreamSubscription extends core.Object {
-    new(subscription, injectData, userOnData) {
-      this[_subscription$] = subscription;
-      this[_injectData] = injectData;
-      this[_userOnData] = userOnData;
-      this[_isCanceled$] = false;
-      this[_pauseCount$] = 1;
-      this[_scheduled] = false;
-    }
-    get isPaused() {
-      return this[_subscription$].isPaused;
-    }
-    asFuture(T) {
-      return futureValue => {
-        if (futureValue === void 0) futureValue = null;
-        return this[_subscription$].asFuture(T)(futureValue);
-      };
-    }
-    cancel() {
-      this[_isCanceled$] = true;
-      this[_injectData] = null;
-      return this[_subscription$].cancel();
-    }
-    onData(handleData) {
-      this[_userOnData] = handleData;
-      this[_subscription$].onData(handleData);
-    }
-    onDone(handleDone) {
-      this[_subscription$].onDone(handleDone);
-    }
-    onError(handleError) {
-      this[_subscription$].onError(handleError);
-    }
-    pause(resumeSignal) {
-      if (resumeSignal === void 0) resumeSignal = null;
-      if (this[_injectData] == null) {
-        this[_subscription$].pause(resumeSignal);
-      } else {
-        this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
-        if (resumeSignal != null) {
-          resumeSignal.whenComplete(dart.bind(this, 'resume'));
-        }
-      }
-    }
-    resume() {
-      if (this[_injectData] == null) {
-        this[_subscription$].resume();
-      } else {
-        this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
-        this[_maybeScheduleData]();
-      }
-    }
-    [_maybeScheduleData]() {
-      if (dart.test(this[_scheduled])) return;
-      if (this[_pauseCount$] != 0) return;
-      this[_scheduled] = true;
-      async.scheduleMicrotask(dart.fn(() => {
-        this[_scheduled] = false;
-        if (dart.notNull(this[_pauseCount$]) > 0 || dart.test(this[_isCanceled$])) return;
-        let data = this[_injectData];
-        this[_injectData] = null;
-        this[_subscription$].resume();
-        if (this[_userOnData] != null) {
-          dart.dcall(this[_userOnData], data);
-        }
-      }, VoidToNull()));
-    }
-  };
-  io._HttpDetachedStreamSubscription[dart.implements] = () => [StreamSubscriptionOfListOfint()];
-  dart.setSignature(io._HttpDetachedStreamSubscription, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpDetachedStreamSubscription, [StreamSubscriptionOfListOfint(), ListOfint(), core.Function])}),
-    fields: () => ({
-      [_subscription$]: StreamSubscriptionOfListOfint(),
-      [_injectData]: ListOfint(),
-      [_isCanceled$]: core.bool,
-      [_pauseCount$]: core.int,
-      [_userOnData]: core.Function,
-      [_scheduled]: core.bool
-    }),
-    getters: () => ({isPaused: dart.definiteFunctionType(core.bool, [])}),
-    methods: () => ({
-      asFuture: dart.definiteFunctionType(T => [async.Future$(T), [], [T]]),
-      cancel: dart.definiteFunctionType(async.Future, []),
-      onData: dart.definiteFunctionType(dart.void, [ListOfintTovoid()]),
-      onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-      onError: dart.definiteFunctionType(dart.void, [core.Function]),
-      pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
-      resume: dart.definiteFunctionType(dart.void, []),
-      [_maybeScheduleData]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  io._HttpDetachedIncoming = class _HttpDetachedIncoming extends async.Stream$(core.List$(core.int)) {
-    new(subscription, bufferedData) {
-      this.subscription = subscription;
-      this.bufferedData = bufferedData;
-      super.new();
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      if (this.subscription != null) {
-        this.subscription.onData(onData);
-        this.subscription.onError(onError);
-        this.subscription.onDone(onDone);
-        if (this.bufferedData == null) {
-          return StreamSubscriptionOfListOfint()._check(((() => {
-            this.subscription.resume();
-            return this.subscription;
-          })()));
-        }
-        let _ = new io._HttpDetachedStreamSubscription(StreamSubscriptionOfListOfint()._check(this.subscription), this.bufferedData, onData);
-        _.resume();
-        return _;
-      } else {
-        return StreamOfint().fromIterable(this.bufferedData).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-      }
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpDetachedIncoming);
-  dart.setSignature(io._HttpDetachedIncoming, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpDetachedIncoming, [async.StreamSubscription, ListOfint()])}),
-    fields: () => ({
-      subscription: async.StreamSubscription,
-      bufferedData: ListOfint()
-    }),
-    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-  });
-  const _method$ = Symbol('_method');
-  const _uri_or_reason_phrase = Symbol('_uri_or_reason_phrase');
-  const _headerField = Symbol('_headerField');
-  const _headerValue = Symbol('_headerValue');
-  const _requestParser = Symbol('_requestParser');
-  const _parserCalled = Symbol('_parserCalled');
-  const _index$2 = Symbol('_index');
-  const _httpVersionIndex = Symbol('_httpVersionIndex');
-  const _messageType = Symbol('_messageType');
-  const _statusCodeLength = Symbol('_statusCodeLength');
-  const _httpVersion = Symbol('_httpVersion');
-  const _connectionUpgrade = Symbol('_connectionUpgrade');
-  const _chunked = Symbol('_chunked');
-  const _noMessageBody = Symbol('_noMessageBody');
-  const _remainingContent = Symbol('_remainingContent');
-  const _socketSubscription = Symbol('_socketSubscription');
-  const _paused = Symbol('_paused');
-  const _bodyPaused = Symbol('_bodyPaused');
-  const _bodyController = Symbol('_bodyController');
-  const _pauseStateChanged = Symbol('_pauseStateChanged');
-  const _reset = Symbol('_reset');
-  const _onData$ = Symbol('_onData');
-  const _onDone$ = Symbol('_onDone');
-  const _doParse = Symbol('_doParse');
-  const _reportError = Symbol('_reportError');
-  const _createIncoming = Symbol('_createIncoming');
-  const _closeIncoming = Symbol('_closeIncoming');
-  const _headersEnd = Symbol('_headersEnd');
-  const _expect = Symbol('_expect');
-  const _caseInsensitiveCompare = Symbol('_caseInsensitiveCompare');
-  const _expectHexDigit = Symbol('_expectHexDigit');
-  const _releaseBuffer = Symbol('_releaseBuffer');
-  io._HttpParser = class _HttpParser extends async.Stream$(io._HttpIncoming) {
-    static requestParser() {
-      return new io._HttpParser._(true);
-    }
-    static responseParser() {
-      return new io._HttpParser._(false);
-    }
-    _(requestParser) {
-      this[_method$] = JSArrayOfint().of([]);
-      this[_uri_or_reason_phrase] = JSArrayOfint().of([]);
-      this[_headerField] = JSArrayOfint().of([]);
-      this[_headerValue] = JSArrayOfint().of([]);
-      this[_requestParser] = requestParser;
-      this[_parserCalled] = false;
-      this[_buffer$] = null;
-      this[_index$2] = null;
-      this[_state$1] = null;
-      this[_httpVersionIndex] = null;
-      this[_messageType] = null;
-      this[_statusCode] = 0;
-      this[_statusCodeLength] = 0;
-      this[_httpVersion] = null;
-      this[_transferLength] = -1;
-      this[_persistentConnection] = null;
-      this[_connectionUpgrade] = null;
-      this[_chunked] = null;
-      this[_noMessageBody] = false;
-      this[_remainingContent] = -1;
-      this[_headers] = null;
-      this[_incoming] = null;
-      this[_socketSubscription] = null;
-      this[_paused] = true;
-      this[_bodyPaused] = false;
-      this[_controller$0] = null;
-      this[_bodyController] = null;
-      super.new();
-      this[_controller$0] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
-          this[_paused] = false;
-        }, VoidToNull()), onPause: dart.fn(() => {
-          this[_paused] = true;
-          this[_pauseStateChanged]();
-        }, VoidToNull()), onResume: dart.fn(() => {
-          this[_paused] = false;
-          this[_pauseStateChanged]();
-        }, VoidToNull()), onCancel: dart.fn(() => {
-          if (this[_socketSubscription] != null) {
-            this[_socketSubscription].cancel();
-          }
-        }, VoidToNull())});
-      this[_reset]();
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    listenToStream(stream) {
-      this[_socketSubscription] = stream.listen(dart.bind(this, _onData$), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this, _onDone$)});
-    }
-    [_parse]() {
-      try {
-        this[_doParse]();
-      } catch (e) {
-        let s = dart.stackTrace(e);
-        this[_state$1] = io._State.FAILURE;
-        this[_reportError](e, s);
-      }
-
-    }
-    [_headersEnd]() {
-      this[_headers][_mutable] = false;
-      this[_transferLength] = this[_headers].contentLength;
-      if (dart.test(this[_chunked])) this[_transferLength] = -1;
-      if (this[_messageType] == io._MessageType.REQUEST && dart.notNull(this[_transferLength]) < 0 && this[_chunked] == false) {
-        this[_transferLength] = 0;
-      }
-      if (dart.test(this[_connectionUpgrade])) {
-        this[_state$1] = io._State.UPGRADED;
-        this[_transferLength] = 0;
-      }
-      this[_createIncoming](this[_transferLength]);
-      if (dart.test(this[_requestParser])) {
-        this[_incoming].method = core.String.fromCharCodes(this[_method$]);
-        this[_incoming].uri = core.Uri.parse(core.String.fromCharCodes(this[_uri_or_reason_phrase]));
-      } else {
-        this[_incoming].statusCode = this[_statusCode];
-        this[_incoming].reasonPhrase = core.String.fromCharCodes(this[_uri_or_reason_phrase]);
-      }
-      this[_method$][dartx.clear]();
-      this[_uri_or_reason_phrase][dartx.clear]();
-      if (dart.test(this[_connectionUpgrade])) {
-        this[_incoming].upgraded = true;
-        this[_parserCalled] = false;
-        let tmp = this[_incoming];
-        this[_closeIncoming]();
-        this[_controller$0].add(tmp);
-        return true;
-      }
-      if (this[_transferLength] == 0 || this[_messageType] == io._MessageType.RESPONSE && dart.test(this[_noMessageBody])) {
-        this[_reset]();
-        let tmp = this[_incoming];
-        this[_closeIncoming]();
-        this[_controller$0].add(tmp);
-        return false;
-      } else if (dart.test(this[_chunked])) {
-        this[_state$1] = io._State.CHUNK_SIZE;
-        this[_remainingContent] = 0;
-      } else if (dart.notNull(this[_transferLength]) > 0) {
-        this[_remainingContent] = this[_transferLength];
-        this[_state$1] = io._State.BODY;
-      } else {
-        this[_state$1] = io._State.BODY;
-      }
-      this[_parserCalled] = false;
-      this[_controller$0].add(this[_incoming]);
-      return true;
-    }
-    [_doParse]() {
-      dart.assert(!dart.test(this[_parserCalled]));
-      this[_parserCalled] = true;
-      if (this[_state$1] == io._State.CLOSED) {
-        dart.throw(new io.HttpException("Data on closed connection"));
-      }
-      if (this[_state$1] == io._State.FAILURE) {
-        dart.throw(new io.HttpException("Data on failed connection"));
-      }
-      while (this[_buffer$] != null && dart.notNull(this[_index$2]) < dart.notNull(this[_buffer$][dartx.length]) && this[_state$1] != io._State.FAILURE && this[_state$1] != io._State.UPGRADED) {
-        if (this[_incoming] != null && dart.test(this[_bodyPaused]) || this[_incoming] == null && dart.test(this[_paused])) {
-          this[_parserCalled] = false;
-          return;
-        }
-        let byte = this[_buffer$][dartx._get]((() => {
-          let x = this[_index$2];
-          this[_index$2] = dart.notNull(x) + 1;
-          return x;
-        })());
-        switch (this[_state$1]) {
-          case io._State.START:
-          {
-            if (byte == io._Const.HTTP[dartx._get](0)) {
-              this[_httpVersionIndex] = 1;
-              this[_state$1] = io._State.METHOD_OR_RESPONSE_HTTP_VERSION;
-            } else {
-              if (!dart.test(io._HttpParser._isTokenChar(byte))) {
-                dart.throw(new io.HttpException("Invalid request method"));
-              }
-              this[_method$][dartx.add](byte);
-              if (!dart.test(this[_requestParser])) {
-                dart.throw(new io.HttpException("Invalid response line"));
-              }
-              this[_state$1] = io._State.REQUEST_LINE_METHOD;
-            }
-            break;
-          }
-          case io._State.METHOD_OR_RESPONSE_HTTP_VERSION:
-          {
-            if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(io._Const.HTTP[dartx.length]) && byte == io._Const.HTTP[dartx._get](this[_httpVersionIndex])) {
-              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-            } else if (this[_httpVersionIndex] == io._Const.HTTP[dartx.length] && byte == io._CharCode.SLASH) {
-              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-              if (dart.test(this[_requestParser])) {
-                dart.throw(new io.HttpException("Invalid request line"));
-              }
-              this[_state$1] = io._State.RESPONSE_HTTP_VERSION;
-            } else {
-              for (let i = 0; i < dart.notNull(this[_httpVersionIndex]); i++) {
-                this[_method$][dartx.add](io._Const.HTTP[dartx._get](i));
-              }
-              if (byte == io._CharCode.SP) {
-                this[_state$1] = io._State.REQUEST_LINE_URI;
-              } else {
-                this[_method$][dartx.add](byte);
-                this[_httpVersion] = io._HttpVersion.UNDETERMINED;
-                if (!dart.test(this[_requestParser])) {
-                  dart.throw(new io.HttpException("Invalid response line"));
-                }
-                this[_state$1] = io._State.REQUEST_LINE_METHOD;
-              }
-            }
-            break;
-          }
-          case io._State.RESPONSE_HTTP_VERSION:
-          {
-            if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(io._Const.HTTP1DOT[dartx.length])) {
-              this[_expect](byte, io._Const.HTTP1DOT[dartx._get](this[_httpVersionIndex]));
-              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-            } else if (this[_httpVersionIndex] == io._Const.HTTP1DOT[dartx.length] && byte == io._CharCode.ONE) {
-              this[_httpVersion] = io._HttpVersion.HTTP11;
-              this[_persistentConnection] = true;
-              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-            } else if (this[_httpVersionIndex] == io._Const.HTTP1DOT[dartx.length] && byte == io._CharCode.ZERO) {
-              this[_httpVersion] = io._HttpVersion.HTTP10;
-              this[_persistentConnection] = false;
-              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-            } else if (this[_httpVersionIndex] == dart.notNull(io._Const.HTTP1DOT[dartx.length]) + 1) {
-              this[_expect](byte, io._CharCode.SP);
-              this[_state$1] = io._State.RESPONSE_LINE_STATUS_CODE;
-            } else {
-              dart.throw(new io.HttpException("Invalid response line"));
-            }
-            break;
-          }
-          case io._State.REQUEST_LINE_METHOD:
-          {
-            if (byte == io._CharCode.SP) {
-              this[_state$1] = io._State.REQUEST_LINE_URI;
-            } else {
-              if (dart.test(io._Const.SEPARATOR_MAP[dartx._get](byte)) || byte == io._CharCode.CR || byte == io._CharCode.LF) {
-                dart.throw(new io.HttpException("Invalid request method"));
-              }
-              this[_method$][dartx.add](byte);
-            }
-            break;
-          }
-          case io._State.REQUEST_LINE_URI:
-          {
-            if (byte == io._CharCode.SP) {
-              if (this[_uri_or_reason_phrase][dartx.length] == 0) {
-                dart.throw(new io.HttpException("Invalid request URI"));
-              }
-              this[_state$1] = io._State.REQUEST_LINE_HTTP_VERSION;
-              this[_httpVersionIndex] = 0;
-            } else {
-              if (byte == io._CharCode.CR || byte == io._CharCode.LF) {
-                dart.throw(new io.HttpException("Invalid request URI"));
-              }
-              this[_uri_or_reason_phrase][dartx.add](byte);
-            }
-            break;
-          }
-          case io._State.REQUEST_LINE_HTTP_VERSION:
-          {
-            if (dart.notNull(this[_httpVersionIndex]) < dart.notNull(io._Const.HTTP1DOT[dartx.length])) {
-              this[_expect](byte, io._Const.HTTP11[dartx._get](this[_httpVersionIndex]));
-              this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-            } else if (this[_httpVersionIndex] == io._Const.HTTP1DOT[dartx.length]) {
-              if (byte == io._CharCode.ONE) {
-                this[_httpVersion] = io._HttpVersion.HTTP11;
-                this[_persistentConnection] = true;
-                this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-              } else if (byte == io._CharCode.ZERO) {
-                this[_httpVersion] = io._HttpVersion.HTTP10;
-                this[_persistentConnection] = false;
-                this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
-              } else {
-                dart.throw(new io.HttpException("Invalid response line"));
-              }
-            } else {
-              if (byte == io._CharCode.CR) {
-                this[_state$1] = io._State.REQUEST_LINE_ENDING;
-              } else {
-                this[_expect](byte, io._CharCode.LF);
-                this[_messageType] = io._MessageType.REQUEST;
-                this[_state$1] = io._State.HEADER_START;
-              }
-            }
-            break;
-          }
-          case io._State.REQUEST_LINE_ENDING:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            this[_messageType] = io._MessageType.REQUEST;
-            this[_state$1] = io._State.HEADER_START;
-            break;
-          }
-          case io._State.RESPONSE_LINE_STATUS_CODE:
-          {
-            if (byte == io._CharCode.SP) {
-              this[_state$1] = io._State.RESPONSE_LINE_REASON_PHRASE;
-            } else if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.RESPONSE_LINE_ENDING;
-            } else {
-              this[_statusCodeLength] = dart.notNull(this[_statusCodeLength]) + 1;
-              if (dart.notNull(byte) < 48 && 57 < dart.notNull(byte) || dart.notNull(this[_statusCodeLength]) > 3) {
-                dart.throw(new io.HttpException("Invalid response status code"));
-              } else {
-                this[_statusCode] = dart.notNull(this[_statusCode]) * 10 + dart.notNull(byte) - 48;
-              }
-            }
-            break;
-          }
-          case io._State.RESPONSE_LINE_REASON_PHRASE:
-          {
-            if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.RESPONSE_LINE_ENDING;
-            } else {
-              if (byte == io._CharCode.CR || byte == io._CharCode.LF) {
-                dart.throw(new io.HttpException("Invalid response reason phrase"));
-              }
-              this[_uri_or_reason_phrase][dartx.add](byte);
-            }
-            break;
-          }
-          case io._State.RESPONSE_LINE_ENDING:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            this[_messageType] == io._MessageType.RESPONSE;
-            if (dart.notNull(this[_statusCode]) < 100 || dart.notNull(this[_statusCode]) > 599) {
-              dart.throw(new io.HttpException("Invalid response status code"));
-            } else {
-              if (dart.notNull(this[_statusCode]) <= 199 || this[_statusCode] == 204 || this[_statusCode] == 304) {
-                this[_noMessageBody] = true;
-              }
-            }
-            this[_state$1] = io._State.HEADER_START;
-            break;
-          }
-          case io._State.HEADER_START:
-          {
-            this[_headers] = new io._HttpHeaders(this.version);
-            if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.HEADER_ENDING;
-            } else if (byte == io._CharCode.LF) {
-              this[_state$1] = io._State.HEADER_ENDING;
-              this[_index$2] = dart.notNull(this[_index$2]) - 1;
-            } else {
-              this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
-              this[_state$1] = io._State.HEADER_FIELD;
-            }
-            break;
-          }
-          case io._State.HEADER_FIELD:
-          {
-            if (byte == io._CharCode.COLON) {
-              this[_state$1] = io._State.HEADER_VALUE_START;
-            } else {
-              if (!dart.test(io._HttpParser._isTokenChar(byte))) {
-                dart.throw(new io.HttpException("Invalid header field name"));
-              }
-              this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
-            }
-            break;
-          }
-          case io._State.HEADER_VALUE_START:
-          {
-            if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
-            } else if (byte == io._CharCode.LF) {
-              this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
-            } else if (byte != io._CharCode.SP && byte != io._CharCode.HT) {
-              this[_headerValue][dartx.add](byte);
-              this[_state$1] = io._State.HEADER_VALUE;
-            }
-            break;
-          }
-          case io._State.HEADER_VALUE:
-          {
-            if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
-            } else if (byte == io._CharCode.LF) {
-              this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
-            } else {
-              this[_headerValue][dartx.add](byte);
-            }
-            break;
-          }
-          case io._State.HEADER_VALUE_FOLDING_OR_ENDING:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
-            break;
-          }
-          case io._State.HEADER_VALUE_FOLD_OR_END:
-          {
-            if (byte == io._CharCode.SP || byte == io._CharCode.HT) {
-              this[_state$1] = io._State.HEADER_VALUE_START;
-            } else {
-              let headerField = core.String.fromCharCodes(this[_headerField]);
-              let headerValue = core.String.fromCharCodes(this[_headerValue]);
-              if (headerField == "transfer-encoding" && dart.test(this[_caseInsensitiveCompare]("chunked"[dartx.codeUnits], this[_headerValue]))) {
-                this[_chunked] = true;
-              }
-              if (headerField == "connection") {
-                let tokens = io._HttpParser._tokenizeFieldValue(headerValue);
-                for (let i = 0; i < dart.notNull(tokens[dartx.length]); i++) {
-                  if (dart.test(this[_caseInsensitiveCompare]("upgrade"[dartx.codeUnits], tokens[dartx._get](i)[dartx.codeUnits]))) {
-                    this[_connectionUpgrade] = true;
-                  }
-                  this[_headers][_add$2](headerField, tokens[dartx._get](i));
-                }
-              } else {
-                this[_headers][_add$2](headerField, headerValue);
-              }
-              this[_headerField][dartx.clear]();
-              this[_headerValue][dartx.clear]();
-              if (byte == io._CharCode.CR) {
-                this[_state$1] = io._State.HEADER_ENDING;
-              } else if (byte == io._CharCode.LF) {
-                this[_state$1] = io._State.HEADER_ENDING;
-                this[_index$2] = dart.notNull(this[_index$2]) - 1;
-              } else {
-                this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
-                this[_state$1] = io._State.HEADER_FIELD;
-              }
-            }
-            break;
-          }
-          case io._State.HEADER_ENDING:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            if (dart.test(this[_headersEnd]())) {
-              return;
-            } else {
-              break;
-            }
-            return;
-          }
-          case io._State.CHUNK_SIZE_STARTING_CR:
-          {
-            this[_expect](byte, io._CharCode.CR);
-            this[_state$1] = io._State.CHUNK_SIZE_STARTING_LF;
-            break;
-          }
-          case io._State.CHUNK_SIZE_STARTING_LF:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            this[_state$1] = io._State.CHUNK_SIZE;
-            break;
-          }
-          case io._State.CHUNK_SIZE:
-          {
-            if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.CHUNK_SIZE_ENDING;
-            } else if (byte == io._CharCode.SEMI_COLON) {
-              this[_state$1] = io._State.CHUNK_SIZE_EXTENSION;
-            } else {
-              let value = this[_expectHexDigit](byte);
-              this[_remainingContent] = dart.notNull(this[_remainingContent]) * 16 + dart.notNull(value);
-            }
-            break;
-          }
-          case io._State.CHUNK_SIZE_EXTENSION:
-          {
-            if (byte == io._CharCode.CR) {
-              this[_state$1] = io._State.CHUNK_SIZE_ENDING;
-            }
-            break;
-          }
-          case io._State.CHUNK_SIZE_ENDING:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            if (dart.notNull(this[_remainingContent]) > 0) {
-              this[_state$1] = io._State.BODY;
-            } else {
-              this[_state$1] = io._State.CHUNKED_BODY_DONE_CR;
-            }
-            break;
-          }
-          case io._State.CHUNKED_BODY_DONE_CR:
-          {
-            this[_expect](byte, io._CharCode.CR);
-            this[_state$1] = io._State.CHUNKED_BODY_DONE_LF;
-            break;
-          }
-          case io._State.CHUNKED_BODY_DONE_LF:
-          {
-            this[_expect](byte, io._CharCode.LF);
-            this[_reset]();
-            this[_closeIncoming]();
-            break;
-          }
-          case io._State.BODY:
-          {
-            this[_index$2] = dart.notNull(this[_index$2]) - 1;
-            let dataAvailable = dart.notNull(this[_buffer$][dartx.length]) - dart.notNull(this[_index$2]);
-            if (dart.notNull(this[_remainingContent]) >= 0 && dart.notNull(dataAvailable) > dart.notNull(this[_remainingContent])) {
-              dataAvailable = this[_remainingContent];
-            }
-            let data = typed_data.Uint8List.view(this[_buffer$][dartx.buffer], dart.notNull(this[_buffer$][dartx.offsetInBytes]) + dart.notNull(this[_index$2]), dataAvailable);
-            this[_bodyController].add(data);
-            if (this[_remainingContent] != -1) {
-              this[_remainingContent] = dart.notNull(this[_remainingContent]) - dart.notNull(data[dartx.length]);
-            }
-            this[_index$2] = dart.notNull(this[_index$2]) + dart.notNull(data[dartx.length]);
-            if (this[_remainingContent] == 0) {
-              if (!dart.test(this[_chunked])) {
-                this[_reset]();
-                this[_closeIncoming]();
-              } else {
-                this[_state$1] = io._State.CHUNK_SIZE_STARTING_CR;
-              }
-            }
-            break;
-          }
-          case io._State.FAILURE:
-          {
-            dart.assert(false);
-            break;
-          }
-          default:
-          {
-            dart.assert(false);
-            break;
-          }
-        }
-      }
-      this[_parserCalled] = false;
-      if (this[_buffer$] != null && this[_index$2] == this[_buffer$][dartx.length]) {
-        this[_releaseBuffer]();
-        if (this[_state$1] != io._State.UPGRADED && this[_state$1] != io._State.FAILURE) {
-          this[_socketSubscription].resume();
-        }
-      }
-    }
-    [_onData$](buffer) {
-      this[_socketSubscription].pause();
-      dart.assert(this[_buffer$] == null);
-      this[_buffer$] = typed_data.Uint8List._check(buffer);
-      this[_index$2] = 0;
-      this[_parse]();
-    }
-    [_onDone$]() {
-      this[_socketSubscription] = null;
-      if (this[_state$1] == io._State.CLOSED || this[_state$1] == io._State.FAILURE) return;
-      if (this[_incoming] != null) {
-        if (this[_state$1] != io._State.UPGRADED && !(this[_state$1] == io._State.START && !dart.test(this[_requestParser])) && !(this[_state$1] == io._State.BODY && !dart.test(this[_chunked]) && this[_transferLength] == -1)) {
-          this[_bodyController].addError(new io.HttpException("Connection closed while receiving data"));
-        }
-        this[_closeIncoming](true);
-        this[_controller$0].close();
-        return;
-      }
-      if (this[_state$1] == io._State.START) {
-        if (!dart.test(this[_requestParser])) {
-          this[_reportError](new io.HttpException("Connection closed before full header was received"));
-        }
-        this[_controller$0].close();
-        return;
-      }
-      if (this[_state$1] == io._State.UPGRADED) {
-        this[_controller$0].close();
-        return;
-      }
-      if (dart.notNull(this[_state$1]) < io._State.FIRST_BODY_STATE) {
-        this[_state$1] = io._State.FAILURE;
-        this[_reportError](new io.HttpException("Connection closed before full header was received"));
-        this[_controller$0].close();
-        return;
-      }
-      if (!dart.test(this[_chunked]) && this[_transferLength] == -1) {
-        this[_state$1] = io._State.CLOSED;
-      } else {
-        this[_state$1] = io._State.FAILURE;
-        this[_reportError](new io.HttpException("Connection closed before full body was received"));
-      }
-      this[_controller$0].close();
-    }
-    get version() {
-      switch (this[_httpVersion]) {
-        case io._HttpVersion.HTTP10:
-        {
-          return "1.0";
-        }
-        case io._HttpVersion.HTTP11:
-        {
-          return "1.1";
-        }
-      }
-      return null;
-    }
-    get messageType() {
-      return this[_messageType];
-    }
-    get transferLength() {
-      return this[_transferLength];
-    }
-    get upgrade() {
-      return dart.test(this[_connectionUpgrade]) && this[_state$1] == io._State.UPGRADED;
-    }
-    get persistentConnection() {
-      return this[_persistentConnection];
-    }
-    set isHead(value) {
-      if (dart.test(value)) this[_noMessageBody] = true;
-    }
-    detachIncoming() {
-      this[_state$1] = io._State.UPGRADED;
-      return new io._HttpDetachedIncoming(this[_socketSubscription], this.readUnparsedData());
-    }
-    readUnparsedData() {
-      if (this[_buffer$] == null) return null;
-      if (this[_index$2] == this[_buffer$][dartx.length]) return null;
-      let result = this[_buffer$][dartx.sublist](this[_index$2]);
-      this[_releaseBuffer]();
-      return result;
-    }
-    [_reset]() {
-      if (this[_state$1] == io._State.UPGRADED) return;
-      this[_state$1] = io._State.START;
-      this[_messageType] = io._MessageType.UNDETERMINED;
-      this[_headerField][dartx.clear]();
-      this[_headerValue][dartx.clear]();
-      this[_method$][dartx.clear]();
-      this[_uri_or_reason_phrase][dartx.clear]();
-      this[_statusCode] = 0;
-      this[_statusCodeLength] = 0;
-      this[_httpVersion] = io._HttpVersion.UNDETERMINED;
-      this[_transferLength] = -1;
-      this[_persistentConnection] = false;
-      this[_connectionUpgrade] = false;
-      this[_chunked] = false;
-      this[_noMessageBody] = false;
-      this[_remainingContent] = -1;
-      this[_headers] = null;
-    }
-    [_releaseBuffer]() {
-      this[_buffer$] = null;
-      this[_index$2] = null;
-    }
-    static _isTokenChar(byte) {
-      return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 && !dart.test(io._Const.SEPARATOR_MAP[dartx._get](byte));
-    }
-    static _isValueChar(byte) {
-      return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 || byte == io._CharCode.SP || byte == io._CharCode.HT;
-    }
-    static _tokenizeFieldValue(headerValue) {
-      let tokens = ListOfString().new();
-      let start = 0;
-      let index = 0;
-      while (index < dart.notNull(headerValue[dartx.length])) {
-        if (headerValue[dartx._get](index) == ",") {
-          tokens[dartx.add](headerValue[dartx.substring](start, index));
-          start = index + 1;
-        } else if (headerValue[dartx._get](index) == " " || headerValue[dartx._get](index) == "\t") {
-          start++;
-        }
-        index++;
-      }
-      tokens[dartx.add](headerValue[dartx.substring](start, index));
-      return tokens;
-    }
-    static _toLowerCaseByte(x) {
-      return (dart.notNull(x) - 65 & 127) < 26 ? (dart.notNull(x) | 32) >>> 0 : x;
-    }
-    [_caseInsensitiveCompare](expected, value) {
-      if (expected[dartx.length] != value[dartx.length]) return false;
-      for (let i = 0; i < dart.notNull(expected[dartx.length]); i++) {
-        if (expected[dartx._get](i) != io._HttpParser._toLowerCaseByte(value[dartx._get](i))) return false;
-      }
-      return true;
-    }
-    [_expect](val1, val2) {
-      if (val1 != val2) {
-        dart.throw(new io.HttpException("Failed to parse HTTP"));
-      }
-    }
-    [_expectHexDigit](byte) {
-      if (48 <= dart.notNull(byte) && dart.notNull(byte) <= 57) {
-        return dart.notNull(byte) - 48;
-      } else if (65 <= dart.notNull(byte) && dart.notNull(byte) <= 70) {
-        return dart.notNull(byte) - 65 + 10;
-      } else if (97 <= dart.notNull(byte) && dart.notNull(byte) <= 102) {
-        return dart.notNull(byte) - 97 + 10;
-      } else {
-        dart.throw(new io.HttpException("Failed to parse HTTP"));
-      }
-    }
-    [_createIncoming](transferLength) {
-      dart.assert(this[_incoming] == null);
-      dart.assert(this[_bodyController] == null);
-      dart.assert(!dart.test(this[_bodyPaused]));
-      let incoming = null;
-      this[_bodyController] = StreamControllerOfListOfint().new({sync: true, onListen: dart.fn(() => {
-          if (!dart.equals(incoming, this[_incoming])) return;
-          dart.assert(this[_bodyPaused]);
-          this[_bodyPaused] = false;
-          this[_pauseStateChanged]();
-        }, VoidToNull()), onPause: dart.fn(() => {
-          if (!dart.equals(incoming, this[_incoming])) return;
-          dart.assert(!dart.test(this[_bodyPaused]));
-          this[_bodyPaused] = true;
-          this[_pauseStateChanged]();
-        }, VoidToNull()), onResume: dart.fn(() => {
-          if (!dart.equals(incoming, this[_incoming])) return;
-          dart.assert(this[_bodyPaused]);
-          this[_bodyPaused] = false;
-          this[_pauseStateChanged]();
-        }, VoidToNull()), onCancel: dart.fn(() => {
-          if (!dart.equals(incoming, this[_incoming])) return;
-          if (this[_socketSubscription] != null) {
-            this[_socketSubscription].cancel();
-          }
-          this[_closeIncoming](true);
-          this[_controller$0].close();
-        }, VoidToNull())});
-      incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
-      this[_bodyPaused] = true;
-      this[_pauseStateChanged]();
-    }
-    [_closeIncoming](closing) {
-      if (closing === void 0) closing = false;
-      if (this[_incoming] == null) return;
-      let tmp = this[_incoming];
-      tmp.close(closing);
-      this[_incoming] = null;
-      if (this[_bodyController] != null) {
-        this[_bodyController].close();
-        this[_bodyController] = null;
-      }
-      this[_bodyPaused] = false;
-      this[_pauseStateChanged]();
-    }
-    [_pauseStateChanged]() {
-      if (this[_incoming] != null) {
-        if (!dart.test(this[_bodyPaused]) && !dart.test(this[_parserCalled])) {
-          this[_parse]();
-        }
-      } else {
-        if (!dart.test(this[_paused]) && !dart.test(this[_parserCalled])) {
-          this[_parse]();
-        }
-      }
-    }
-    [_reportError](error, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      if (this[_socketSubscription] != null) this[_socketSubscription].cancel();
-      this[_state$1] = io._State.FAILURE;
-      this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
-      this[_controller$0].close();
-    }
-  };
-  dart.addSimpleTypeTests(io._HttpParser);
-  dart.defineNamedConstructor(io._HttpParser, '_');
-  dart.setSignature(io._HttpParser, {
-    constructors: () => ({
-      requestParser: dart.definiteFunctionType(io._HttpParser, []),
-      responseParser: dart.definiteFunctionType(io._HttpParser, []),
-      _: dart.definiteFunctionType(io._HttpParser, [core.bool])
-    }),
-    fields: () => ({
-      [_parserCalled]: core.bool,
-      [_buffer$]: typed_data.Uint8List,
-      [_index$2]: core.int,
-      [_requestParser]: core.bool,
-      [_state$1]: core.int,
-      [_httpVersionIndex]: core.int,
-      [_messageType]: core.int,
-      [_statusCode]: core.int,
-      [_statusCodeLength]: core.int,
-      [_method$]: ListOfint(),
-      [_uri_or_reason_phrase]: ListOfint(),
-      [_headerField]: ListOfint(),
-      [_headerValue]: ListOfint(),
-      [_httpVersion]: core.int,
-      [_transferLength]: core.int,
-      [_persistentConnection]: core.bool,
-      [_connectionUpgrade]: core.bool,
-      [_chunked]: core.bool,
-      [_noMessageBody]: core.bool,
-      [_remainingContent]: core.int,
-      [_headers]: io._HttpHeaders,
-      [_incoming]: io._HttpIncoming,
-      [_socketSubscription]: async.StreamSubscription,
-      [_paused]: core.bool,
-      [_bodyPaused]: core.bool,
-      [_controller$0]: StreamControllerOf_HttpIncoming(),
-      [_bodyController]: StreamControllerOfListOfint()
-    }),
-    getters: () => ({
-      version: dart.definiteFunctionType(core.String, []),
-      messageType: dart.definiteFunctionType(core.int, []),
-      transferLength: dart.definiteFunctionType(core.int, []),
-      upgrade: dart.definiteFunctionType(core.bool, []),
-      persistentConnection: dart.definiteFunctionType(core.bool, [])
-    }),
-    setters: () => ({isHead: dart.definiteFunctionType(dart.void, [core.bool])}),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(io._HttpIncoming), [_HttpIncomingTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      listenToStream: dart.definiteFunctionType(dart.void, [StreamOfListOfint()]),
-      [_parse]: dart.definiteFunctionType(dart.void, []),
-      [_headersEnd]: dart.definiteFunctionType(core.bool, []),
-      [_doParse]: dart.definiteFunctionType(dart.void, []),
-      [_onData$]: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      [_onDone$]: dart.definiteFunctionType(dart.void, []),
-      detachIncoming: dart.definiteFunctionType(io._HttpDetachedIncoming, []),
-      readUnparsedData: dart.definiteFunctionType(core.List$(core.int), []),
-      [_reset]: dart.definiteFunctionType(dart.void, []),
-      [_releaseBuffer]: dart.definiteFunctionType(dart.void, []),
-      [_caseInsensitiveCompare]: dart.definiteFunctionType(core.bool, [ListOfint(), ListOfint()]),
-      [_expect]: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      [_expectHexDigit]: dart.definiteFunctionType(core.int, [core.int]),
-      [_createIncoming]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_closeIncoming]: dart.definiteFunctionType(dart.void, [], [core.bool]),
-      [_pauseStateChanged]: dart.definiteFunctionType(dart.void, []),
-      [_reportError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [dart.dynamic])
-    }),
-    statics: () => ({
-      _isTokenChar: dart.definiteFunctionType(core.bool, [core.int]),
-      _isValueChar: dart.definiteFunctionType(core.bool, [core.int]),
-      _tokenizeFieldValue: dart.definiteFunctionType(core.List$(core.String), [core.String]),
-      _toLowerCaseByte: dart.definiteFunctionType(core.int, [core.int])
-    }),
-    names: ['_isTokenChar', '_isValueChar', '_tokenizeFieldValue', '_toLowerCaseByte']
-  });
-  io._DART_SESSION_ID = "DARTSESSID";
-  const _data$ = Symbol('_data');
-  const _lastSeen = Symbol('_lastSeen');
-  const _timeoutCallback = Symbol('_timeoutCallback');
-  const _prev = Symbol('_prev');
-  const _next$1 = Symbol('_next');
-  const _removeFromTimeoutQueue = Symbol('_removeFromTimeoutQueue');
-  const _sessions = Symbol('_sessions');
-  const _bumpToEnd = Symbol('_bumpToEnd');
-  io._HttpSession = class _HttpSession extends core.Object {
-    new(sessionManager, id) {
-      this[_data$] = collection.HashMap.new();
-      this[_sessionManager] = sessionManager;
-      this.id = id;
-      this[_lastSeen] = new core.DateTime.now();
-      this[_destroyed] = false;
-      this[_isNew] = true;
-      this[_timeoutCallback] = null;
-      this[_prev] = null;
-      this[_next$1] = null;
-    }
-    destroy() {
-      this[_destroyed] = true;
-      this[_sessionManager][_removeFromTimeoutQueue](this);
-      this[_sessionManager][_sessions][dartx.remove](this.id);
-    }
-    [_markSeen]() {
-      this[_lastSeen] = new core.DateTime.now();
-      this[_sessionManager][_bumpToEnd](this);
-    }
-    get lastSeen() {
-      return this[_lastSeen];
-    }
-    get isNew() {
-      return this[_isNew];
-    }
-    set onTimeout(callback) {
-      this[_timeoutCallback] = callback;
-    }
-    containsValue(value) {
-      return this[_data$][dartx.containsValue](value);
+      this[_map$1] = MapOfString$V().new();
     }
     containsKey(key) {
-      return this[_data$][dartx.containsKey](key);
+      return typeof key == 'string' && dart.test(this[_map$1][dartx.containsKey](key[dartx.toUpperCase]()));
+    }
+    containsValue(value) {
+      return this[_map$1][dartx.containsValue](value);
     }
     _get(key) {
-      return this[_data$][dartx._get](key);
+      return typeof key == 'string' ? this[_map$1][dartx._get](key[dartx.toUpperCase]()) : null;
     }
     _set(key, value) {
-      this[_data$][dartx._set](key, value);
+      V._check(value);
+      this[_map$1][dartx._set](key[dartx.toUpperCase](), value);
       return value;
     }
     putIfAbsent(key, ifAbsent) {
-      return this[_data$][dartx.putIfAbsent](key, ifAbsent);
+      VoidToV()._check(ifAbsent);
+      return this[_map$1][dartx.putIfAbsent](key[dartx.toUpperCase](), ifAbsent);
     }
     addAll(other) {
-      return this[_data$][dartx.addAll](other);
+      other[dartx.forEach](dart.fn((key, value) => this._set(core.String._check(dart.dsend(key, 'toUpperCase')), V._check(value)), dynamicAnddynamicTovoid$()));
     }
     remove(key) {
-      return this[_data$][dartx.remove](key);
+      return typeof key == 'string' ? this[_map$1][dartx.remove](key[dartx.toUpperCase]()) : null;
     }
     clear() {
-      this[_data$][dartx.clear]();
+      this[_map$1][dartx.clear]();
     }
     forEach(f) {
-      this[_data$][dartx.forEach](f);
+      this[_map$1][dartx.forEach](f);
     }
     get keys() {
-      return this[_data$][dartx.keys];
+      return this[_map$1][dartx.keys];
     }
     get values() {
-      return this[_data$][dartx.values];
+      return this[_map$1][dartx.values];
     }
     get length() {
-      return this[_data$][dartx.length];
+      return this[_map$1][dartx.length];
     }
     get isEmpty() {
-      return this[_data$][dartx.isEmpty];
+      return this[_map$1][dartx.isEmpty];
     }
     get isNotEmpty() {
-      return this[_data$][dartx.isNotEmpty];
+      return this[_map$1][dartx.isNotEmpty];
     }
     toString() {
-      return dart.str`HttpSession id:${this.id} ${this[_data$]}`;
+      return dart.toString(this[_map$1]);
     }
-  };
-  io._HttpSession[dart.implements] = () => [io.HttpSession];
-  dart.setSignature(io._HttpSession, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpSession, [io._HttpSessionManager, core.String])}),
-    fields: () => ({
-      [_destroyed]: core.bool,
-      [_isNew]: core.bool,
-      [_lastSeen]: core.DateTime,
-      [_timeoutCallback]: core.Function,
-      [_sessionManager]: io._HttpSessionManager,
-      [_prev]: io._HttpSession,
-      [_next$1]: io._HttpSession,
-      id: core.String,
-      [_data$]: core.Map
-    }),
+  }
+  dart.addTypeTests(_CaseInsensitiveStringMap);
+  _CaseInsensitiveStringMap[dart.implements] = () => [MapOfString$V()];
+  dart.setSignature(_CaseInsensitiveStringMap, {
+    fields: () => ({[_map$1]: MapOfString$V()}),
     getters: () => ({
-      lastSeen: dart.definiteFunctionType(core.DateTime, []),
-      isNew: dart.definiteFunctionType(core.bool, []),
-      keys: dart.definiteFunctionType(core.Iterable, []),
-      values: dart.definiteFunctionType(core.Iterable, []),
+      keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
+      values: dart.definiteFunctionType(core.Iterable$(V), []),
       length: dart.definiteFunctionType(core.int, []),
       isEmpty: dart.definiteFunctionType(core.bool, []),
       isNotEmpty: dart.definiteFunctionType(core.bool, [])
     }),
-    setters: () => ({onTimeout: dart.definiteFunctionType(dart.void, [VoidTovoid()])}),
     methods: () => ({
-      destroy: dart.definiteFunctionType(dart.void, []),
-      [_markSeen]: dart.definiteFunctionType(dart.void, []),
-      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
       containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-      _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
-      _set: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      putIfAbsent: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, VoidTodynamic()]),
+      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+      _get: dart.definiteFunctionType(V, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [core.String, V]),
+      putIfAbsent: dart.definiteFunctionType(V, [core.String, VoidToV()]),
       addAll: dart.definiteFunctionType(dart.void, [core.Map]),
-      remove: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+      remove: dart.definiteFunctionType(V, [core.Object]),
       clear: dart.definiteFunctionType(dart.void, []),
-      forEach: dart.definiteFunctionType(dart.void, [dynamicAnddynamicTovoid()])
+      forEach: dart.definiteFunctionType(dart.void, [StringAndVTovoid()])
     })
   });
-  dart.defineExtensionMembers(io._HttpSession, [
-    'containsValue',
+  dart.defineExtensionMembers(_CaseInsensitiveStringMap, [
     'containsKey',
+    'containsValue',
     '_get',
     '_set',
     'putIfAbsent',
@@ -47380,3987 +48401,2942 @@
     'isEmpty',
     'isNotEmpty'
   ]);
-  const _sessionTimeout = Symbol('_sessionTimeout');
-  const _head$ = Symbol('_head');
-  const _tail$ = Symbol('_tail');
-  const _timer = Symbol('_timer');
-  const _addToTimeoutQueue = Symbol('_addToTimeoutQueue');
-  const _stopTimer = Symbol('_stopTimer');
-  const _startTimer = Symbol('_startTimer');
-  const _timerTimeout = Symbol('_timerTimeout');
-  io._HttpSessionManager = class _HttpSessionManager extends core.Object {
-    new() {
-      this[_sessions] = dart.map({}, core.String, io._HttpSession);
-      this[_sessionTimeout] = 20 * 60;
-      this[_head$] = null;
-      this[_tail$] = null;
-      this[_timer] = null;
-    }
-    createSessionId() {
-      let _KEY_LENGTH = 16;
-      let data = io._IOCrypto.getRandomBytes(_KEY_LENGTH);
-      return io._CryptoUtils.bytesToHex(data);
-    }
-    getSession(id) {
-      return this[_sessions][dartx._get](id);
-    }
-    createSession() {
-      let id = this.createSessionId();
-      while (dart.test(this[_sessions][dartx.containsKey](id))) {
-        id = this.createSessionId();
-      }
-      let session = this[_sessions][dartx._set](id, new io._HttpSession(this, id));
-      this[_addToTimeoutQueue](session);
-      return session;
-    }
-    set sessionTimeout(timeout) {
-      this[_sessionTimeout] = timeout;
-      this[_stopTimer]();
-      this[_startTimer]();
-    }
-    close() {
-      this[_stopTimer]();
-    }
-    [_bumpToEnd](session) {
-      this[_removeFromTimeoutQueue](session);
-      this[_addToTimeoutQueue](session);
-    }
-    [_addToTimeoutQueue](session) {
-      if (this[_head$] == null) {
-        dart.assert(this[_tail$] == null);
-        this[_tail$] = this[_head$] = session;
-        this[_startTimer]();
-      } else {
-        dart.assert(this[_timer] != null);
-        dart.assert(this[_tail$] != null);
-        this[_tail$][_next$1] = session;
-        session[_prev] = this[_tail$];
-        this[_tail$] = session;
-      }
-    }
-    [_removeFromTimeoutQueue](session) {
-      if (session[_next$1] != null) {
-        session[_next$1][_prev] = session[_prev];
-      }
-      if (session[_prev] != null) {
-        session[_prev][_next$1] = session[_next$1];
-      }
-      if (dart.equals(this[_head$], session)) {
-        this[_head$] = session[_next$1];
-        this[_stopTimer]();
-        this[_startTimer]();
-      }
-      if (dart.equals(this[_tail$], session)) {
-        this[_tail$] = session[_prev];
-      }
-      session[_next$1] = session[_prev] = null;
-    }
-    [_timerTimeout]() {
-      this[_stopTimer]();
-      dart.assert(this[_head$] != null);
-      let session = this[_head$];
-      session.destroy();
-      if (session[_timeoutCallback] != null) {
-        dart.dsend(session, _timeoutCallback);
-      }
-    }
-    [_startTimer]() {
-      dart.assert(this[_timer] == null);
-      if (this[_head$] != null) {
-        let seconds = new core.DateTime.now().difference(this[_head$].lastSeen).inSeconds;
-        this[_timer] = async.Timer.new(new core.Duration({seconds: dart.notNull(this[_sessionTimeout]) - dart.notNull(seconds)}), dart.bind(this, _timerTimeout));
-      }
-    }
-    [_stopTimer]() {
-      if (this[_timer] != null) {
-        this[_timer].cancel();
-        this[_timer] = null;
-      }
-    }
-  };
-  dart.setSignature(io._HttpSessionManager, {
-    constructors: () => ({new: dart.definiteFunctionType(io._HttpSessionManager, [])}),
-    fields: () => ({
-      [_sessions]: MapOfString$_HttpSession(),
-      [_sessionTimeout]: core.int,
-      [_head$]: io._HttpSession,
-      [_tail$]: io._HttpSession,
-      [_timer]: async.Timer
-    }),
-    setters: () => ({sessionTimeout: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      createSessionId: dart.definiteFunctionType(core.String, []),
-      getSession: dart.definiteFunctionType(io._HttpSession, [core.String]),
-      createSession: dart.definiteFunctionType(io._HttpSession, []),
-      close: dart.definiteFunctionType(dart.void, []),
-      [_bumpToEnd]: dart.definiteFunctionType(dart.void, [io._HttpSession]),
-      [_addToTimeoutQueue]: dart.definiteFunctionType(dart.void, [io._HttpSession]),
-      [_removeFromTimeoutQueue]: dart.definiteFunctionType(dart.void, [io._HttpSession]),
-      [_timerTimeout]: dart.definiteFunctionType(dart.void, []),
-      [_startTimer]: dart.definiteFunctionType(dart.void, []),
-      [_stopTimer]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  io._IOResourceInfo = class _IOResourceInfo extends core.Object {
-    static get timestamp() {
-      return dart.notNull(io._IOResourceInfo._startTime) + dart.notNull(io._IOResourceInfo._sw.elapsedMicroseconds) / 1000;
-    }
-    new(type) {
-      this.type = type;
-      this.id = io._IOResourceInfo.getNextID();
-    }
-    get referenceValueMap() {
-      return dart.map({type: dart.str`@${this.type}`, id: this.id, name: this.name}, core.String, core.String);
-    }
-    static getNextID() {
-      return (() => {
-        let x = io._IOResourceInfo._count;
-        io._IOResourceInfo._count = dart.notNull(x) + 1;
-        return x;
-      })();
-    }
-  };
-  dart.setSignature(io._IOResourceInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._IOResourceInfo, [core.String])}),
-    fields: () => ({
-      type: core.String,
-      id: core.int
-    }),
-    getters: () => ({referenceValueMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
-    sfields: () => ({
-      _count: core.int,
-      _sw: core.Stopwatch,
-      _startTime: core.int
-    }),
-    sgetters: () => ({timestamp: dart.definiteFunctionType(core.double, [])}),
-    statics: () => ({getNextID: dart.definiteFunctionType(core.int, [])}),
-    names: ['getNextID']
-  });
-  io._IOResourceInfo._count = 0;
-  dart.defineLazy(io._IOResourceInfo, {
-    get _sw() {
-      return (() => {
-        let _ = new core.Stopwatch();
-        _.start();
-        return _;
-      })();
-    },
-    get _startTime() {
-      return new core.DateTime.now().millisecondsSinceEpoch;
-    }
-  });
-  io._ReadWriteResourceInfo = class _ReadWriteResourceInfo extends io._IOResourceInfo {
-    addRead(bytes) {
-      this.totalRead = dart.notNull(this.totalRead) + dart.notNull(bytes);
-      this.readCount = dart.notNull(this.readCount) + 1;
-      this.lastRead = io._IOResourceInfo.timestamp;
-    }
-    didRead() {
-      this.addRead(0);
-    }
-    addWrite(bytes) {
-      this.totalWritten = dart.notNull(this.totalWritten) + dart.notNull(bytes);
-      this.writeCount = dart.notNull(this.writeCount) + 1;
-      this.lastWrite = io._IOResourceInfo.timestamp;
-    }
-    new(type) {
-      this.totalRead = 0;
-      this.totalWritten = 0;
-      this.readCount = 0;
-      this.writeCount = 0;
-      this.lastRead = 0.0;
-      this.lastWrite = 0.0;
-      super.new(type);
-    }
-    get fullValueMap() {
-      return dart.map({type: this.type, id: this.id, name: this.name, totalRead: this.totalRead, totalWritten: this.totalWritten, readCount: this.readCount, writeCount: this.writeCount, lastRead: this.lastRead, lastWrite: this.lastWrite}, core.String, core.String);
-    }
-  };
-  dart.setSignature(io._ReadWriteResourceInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ReadWriteResourceInfo, [core.String])}),
-    fields: () => ({
-      totalRead: core.int,
-      totalWritten: core.int,
-      readCount: core.int,
-      writeCount: core.int,
-      lastRead: core.double,
-      lastWrite: core.double
-    }),
-    getters: () => ({fullValueMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
-    methods: () => ({
-      addRead: dart.definiteFunctionType(dart.void, [core.int]),
-      didRead: dart.definiteFunctionType(dart.void, []),
-      addWrite: dart.definiteFunctionType(dart.void, [core.int])
-    })
-  });
-  io._FileResourceInfo = class _FileResourceInfo extends io._ReadWriteResourceInfo {
-    new(file) {
-      this.file = file;
-      super.new(io._FileResourceInfo.TYPE);
-      io._FileResourceInfo.FileOpened(this);
-    }
-    static FileOpened(info) {
-      dart.assert(!dart.test(io._FileResourceInfo.openFiles[dartx.containsKey](info.id)));
-      io._FileResourceInfo.openFiles[dartx._set](info.id, info);
-    }
-    static FileClosed(info) {
-      dart.assert(io._FileResourceInfo.openFiles[dartx.containsKey](info.id));
-      io._FileResourceInfo.openFiles[dartx.remove](info.id);
-    }
-    static getOpenFilesList() {
-      return ListOfMapOfString$String().from(io._FileResourceInfo.openFiles[dartx.values][dartx.map](MapOfString$String())(dart.fn(e => e.referenceValueMap, _FileResourceInfoToMapOfString$String())));
-    }
-    static getOpenFiles(func, params) {
-      dart.assert(dart.equals(func, 'ext.dart.io.getOpenFiles'));
-      let data = dart.map({type: '_openfiles', data: io._FileResourceInfo.getOpenFilesList()}, core.String, core.Object);
-      let json = convert.JSON.encode(data);
-      return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
-    }
-    getFileInfoMap() {
-      let result = this.fullValueMap;
-      return result;
-    }
-    static getFileInfoMapByID(func, params) {
-      dart.assert(dart.dsend(params, 'containsKey', 'id'));
-      let id = core.int.parse(core.String._check(dart.dindex(params, 'id')));
-      let result = dart.test(io._FileResourceInfo.openFiles[dartx.containsKey](id)) ? io._FileResourceInfo.openFiles[dartx._get](id).getFileInfoMap() : dart.map();
-      let json = convert.JSON.encode(result);
-      return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
-    }
-    get name() {
-      return dart.str`${dart.dload(this.file, 'path')}`;
-    }
-  };
-  dart.setSignature(io._FileResourceInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._FileResourceInfo, [dart.dynamic])}),
-    fields: () => ({file: dart.dynamic}),
-    getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
-    methods: () => ({getFileInfoMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
-    sfields: () => ({
-      TYPE: core.String,
-      openFiles: MapOfint$_FileResourceInfo()
-    }),
-    statics: () => ({
-      FileOpened: dart.definiteFunctionType(dart.dynamic, [io._FileResourceInfo]),
-      FileClosed: dart.definiteFunctionType(dart.dynamic, [io._FileResourceInfo]),
-      getOpenFilesList: dart.definiteFunctionType(core.Iterable$(core.Map$(core.String, core.String)), []),
-      getOpenFiles: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [dart.dynamic, dart.dynamic]),
-      getFileInfoMapByID: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [dart.dynamic, dart.dynamic])
-    }),
-    names: ['FileOpened', 'FileClosed', 'getOpenFilesList', 'getOpenFiles', 'getFileInfoMapByID']
-  });
-  io._FileResourceInfo.TYPE = '_file';
-  dart.defineLazy(io._FileResourceInfo, {
-    get openFiles() {
-      return MapOfint$_FileResourceInfo().new();
-    },
-    set openFiles(_) {}
-  });
-  const _arguments$0 = Symbol('_arguments');
-  const _workingDirectory = Symbol('_workingDirectory');
-  io._ProcessResourceInfo = class _ProcessResourceInfo extends io._IOResourceInfo {
-    new(process) {
-      this.process = process;
-      this.startedAt = io._IOResourceInfo.timestamp;
-      super.new(io._ProcessResourceInfo.TYPE);
-      io._ProcessResourceInfo.ProcessStarted(this);
-    }
-    get name() {
-      return core.String._check(dart.dload(this.process, _path$));
-    }
-    stopped() {
-      io._ProcessResourceInfo.ProcessStopped(this);
-    }
-    get fullValueMap() {
-      return dart.map({type: this.type, id: this.id, name: this.name, pid: core.String._check(dart.dload(this.process, 'pid')), startedAt: this.startedAt, arguments: core.String._check(dart.dload(this.process, _arguments$0)), workingDirectory: core.String._check(dart.dload(this.process, _workingDirectory) == null ? '.' : dart.dload(this.process, _workingDirectory))}, core.String, core.String);
-    }
-    static ProcessStarted(info) {
-      dart.assert(!dart.test(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](info.id)));
-      io._ProcessResourceInfo.startedProcesses[dartx._set](info.id, info);
-    }
-    static ProcessStopped(info) {
-      dart.assert(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](info.id));
-      io._ProcessResourceInfo.startedProcesses[dartx.remove](info.id);
-    }
-    static getStartedProcessesList() {
-      return ListOfMapOfString$String().from(io._ProcessResourceInfo.startedProcesses[dartx.values][dartx.map](MapOfString$String())(dart.fn(e => e.referenceValueMap, _ProcessResourceInfoToMapOfString$String())));
-    }
-    static getStartedProcesses(func, params) {
-      dart.assert(func == 'ext.dart.io.getProcesses');
-      let data = dart.map({type: '_startedprocesses', data: io._ProcessResourceInfo.getStartedProcessesList()}, core.String, core.Object);
-      let json = convert.JSON.encode(data);
-      return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
-    }
-    static getProcessInfoMapById(func, params) {
-      let id = core.int.parse(params[dartx._get]('id'));
-      let result = dart.test(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](id)) ? io._ProcessResourceInfo.startedProcesses[dartx._get](id).fullValueMap : dart.map();
-      let json = convert.JSON.encode(result);
-      return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
-    }
-  };
-  dart.setSignature(io._ProcessResourceInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ProcessResourceInfo, [dart.dynamic])}),
-    fields: () => ({
-      process: dart.dynamic,
-      startedAt: core.double
-    }),
-    getters: () => ({
-      name: dart.definiteFunctionType(core.String, []),
-      fullValueMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])
-    }),
-    methods: () => ({stopped: dart.definiteFunctionType(dart.void, [])}),
-    sfields: () => ({
-      TYPE: core.String,
-      startedProcesses: MapOfint$_ProcessResourceInfo()
-    }),
-    statics: () => ({
-      ProcessStarted: dart.definiteFunctionType(dart.dynamic, [io._ProcessResourceInfo]),
-      ProcessStopped: dart.definiteFunctionType(dart.dynamic, [io._ProcessResourceInfo]),
-      getStartedProcessesList: dart.definiteFunctionType(core.Iterable$(core.Map$(core.String, core.String)), []),
-      getStartedProcesses: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()]),
-      getProcessInfoMapById: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()])
-    }),
-    names: ['ProcessStarted', 'ProcessStopped', 'getStartedProcessesList', 'getStartedProcesses', 'getProcessInfoMapById']
-  });
-  io._ProcessResourceInfo.TYPE = '_process';
-  dart.defineLazy(io._ProcessResourceInfo, {
-    get startedProcesses() {
-      return MapOfint$_ProcessResourceInfo().new();
-    },
-    set startedProcesses(_) {}
-  });
-  io._SocketResourceInfo = class _SocketResourceInfo extends io._ReadWriteResourceInfo {
-    new(socket) {
-      this.socket = socket;
-      super.new(io._SocketResourceInfo.TYPE);
-      io._SocketResourceInfo.SocketOpened(this);
-    }
-    get name() {
-      if (dart.test(dart.dload(this.socket, 'isListening'))) {
-        return dart.str`listening:${dart.dload(dart.dload(this.socket, 'address'), 'host')}:${dart.dload(this.socket, 'port')}`;
-      }
-      let remote = '';
-      try {
-        let remoteHost = dart.dload(dart.dload(this.socket, 'remoteAddress'), 'host');
-        let remotePort = dart.dload(this.socket, 'remotePort');
-        remote = dart.str` -> ${remoteHost}:${remotePort}`;
-      } catch (e) {
-      }
-
-      return dart.str`${dart.dload(dart.dload(this.socket, 'address'), 'host')}:${dart.dload(this.socket, 'port')}${remote}`;
-    }
-    static getOpenSocketsList() {
-      return ListOfMapOfString$String().from(io._SocketResourceInfo.openSockets[dartx.values][dartx.map](MapOfString$String())(dart.fn(e => e.referenceValueMap, _SocketResourceInfoToMapOfString$String())));
-    }
-    getSocketInfoMap() {
-      let result = this.fullValueMap;
-      result[dartx._set]('socketType', dart.test(dart.dload(this.socket, 'isTcp')) ? io._SocketResourceInfo.TCP_STRING : io._SocketResourceInfo.UDP_STRING);
-      result[dartx._set]('listening', core.String._check(dart.dload(this.socket, 'isListening')));
-      result[dartx._set]('host', core.String._check(dart.dload(dart.dload(this.socket, 'address'), 'host')));
-      result[dartx._set]('port', core.String._check(dart.dload(this.socket, 'port')));
-      if (!dart.test(dart.dload(this.socket, 'isListening'))) {
-        try {
-          result[dartx._set]('remoteHost', core.String._check(dart.dload(dart.dload(this.socket, 'remoteAddress'), 'host')));
-          result[dartx._set]('remotePort', core.String._check(dart.dload(this.socket, 'remotePort')));
-        } catch (e) {
-          result[dartx._set]('remotePort', 'NA');
-          result[dartx._set]('remoteHost', 'NA');
-        }
-
-      } else {
-        result[dartx._set]('remotePort', 'NA');
-        result[dartx._set]('remoteHost', 'NA');
-      }
-      result[dartx._set]('addressType', core.String._check(dart.dload(dart.dload(dart.dload(this.socket, 'address'), 'type'), 'name')));
-      return result;
-    }
-    static getSocketInfoMapByID(func, params) {
-      dart.assert(params[dartx.containsKey]('id'));
-      let id = core.int.parse(params[dartx._get]('id'));
-      let result = dart.test(io._SocketResourceInfo.openSockets[dartx.containsKey](id)) ? io._SocketResourceInfo.openSockets[dartx._get](id).getSocketInfoMap() : dart.map();
-      let json = convert.JSON.encode(result);
-      return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
-    }
-    static getOpenSockets(func, params) {
-      dart.assert(dart.equals(func, 'ext.dart.io.getOpenSockets'));
-      let data = dart.map({type: '_opensockets', data: io._SocketResourceInfo.getOpenSocketsList()}, core.String, core.Object);
-      let json = convert.JSON.encode(data);
-      return FutureOfServiceExtensionResponse().value(new developer.ServiceExtensionResponse.result(json));
-    }
-    static SocketOpened(info) {
-      dart.assert(!dart.test(io._SocketResourceInfo.openSockets[dartx.containsKey](info.id)));
-      io._SocketResourceInfo.openSockets[dartx._set](info.id, info);
-    }
-    static SocketClosed(info) {
-      dart.assert(io._SocketResourceInfo.openSockets[dartx.containsKey](info.id));
-      io._SocketResourceInfo.openSockets[dartx.remove](info.id);
-    }
-  };
-  dart.setSignature(io._SocketResourceInfo, {
-    constructors: () => ({new: dart.definiteFunctionType(io._SocketResourceInfo, [dart.dynamic])}),
-    fields: () => ({socket: dart.dynamic}),
-    getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
-    methods: () => ({getSocketInfoMap: dart.definiteFunctionType(core.Map$(core.String, core.String), [])}),
-    sfields: () => ({
-      TCP_STRING: core.String,
-      UDP_STRING: core.String,
-      TYPE: core.String,
-      openSockets: MapOfint$_SocketResourceInfo()
-    }),
-    statics: () => ({
-      getOpenSocketsList: dart.definiteFunctionType(core.Iterable$(core.Map$(core.String, core.String)), []),
-      getSocketInfoMapByID: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [core.String, MapOfString$String()]),
-      getOpenSockets: dart.definiteFunctionType(async.Future$(developer.ServiceExtensionResponse), [dart.dynamic, dart.dynamic]),
-      SocketOpened: dart.definiteFunctionType(dart.dynamic, [io._SocketResourceInfo]),
-      SocketClosed: dart.definiteFunctionType(dart.dynamic, [io._SocketResourceInfo])
-    }),
-    names: ['getOpenSocketsList', 'getSocketInfoMapByID', 'getOpenSockets', 'SocketOpened', 'SocketClosed']
-  });
-  io._SocketResourceInfo.TCP_STRING = 'TCP';
-  io._SocketResourceInfo.UDP_STRING = 'UDP';
-  io._SocketResourceInfo.TYPE = '_socket';
-  dart.defineLazy(io._SocketResourceInfo, {
-    get openSockets() {
-      return MapOfint$_SocketResourceInfo().new();
-    },
-    set openSockets(_) {}
-  });
-  io.IOSink = class IOSink extends core.Object {
-    static new(target, opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-      return new io._IOSinkImpl(target, encoding);
-    }
-  };
-  io.IOSink[dart.implements] = () => [StreamSinkOfListOfint(), core.StringSink];
-  dart.setSignature(io.IOSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io.IOSink, [StreamConsumerOfListOfint()], {encoding: convert.Encoding})}),
-    fields: () => ({encoding: convert.Encoding})
-  });
-  io._FILE_EXISTS = 0;
-  io._FILE_CREATE = 1;
-  io._FILE_DELETE = 2;
-  io._FILE_RENAME = 3;
-  io._FILE_COPY = 4;
-  io._FILE_OPEN = 5;
-  io._FILE_RESOLVE_SYMBOLIC_LINKS = 6;
-  io._FILE_CLOSE = 7;
-  io._FILE_POSITION = 8;
-  io._FILE_SET_POSITION = 9;
-  io._FILE_TRUNCATE = 10;
-  io._FILE_LENGTH = 11;
-  io._FILE_LENGTH_FROM_PATH = 12;
-  io._FILE_LAST_MODIFIED = 13;
-  io._FILE_FLUSH = 14;
-  io._FILE_READ_BYTE = 15;
-  io._FILE_WRITE_BYTE = 16;
-  io._FILE_READ = 17;
-  io._FILE_READ_INTO = 18;
-  io._FILE_WRITE_FROM = 19;
-  io._FILE_CREATE_LINK = 20;
-  io._FILE_DELETE_LINK = 21;
-  io._FILE_RENAME_LINK = 22;
-  io._FILE_LINK_TARGET = 23;
-  io._FILE_TYPE = 24;
-  io._FILE_IDENTICAL = 25;
-  io._FILE_STAT = 26;
-  io._FILE_LOCK = 27;
-  io._SOCKET_LOOKUP = 28;
-  io._SOCKET_LIST_INTERFACES = 29;
-  io._SOCKET_REVERSE_LOOKUP = 30;
-  io._DIRECTORY_CREATE = 31;
-  io._DIRECTORY_DELETE = 32;
-  io._DIRECTORY_EXISTS = 33;
-  io._DIRECTORY_CREATE_TEMP = 34;
-  io._DIRECTORY_LIST_START = 35;
-  io._DIRECTORY_LIST_NEXT = 36;
-  io._DIRECTORY_LIST_STOP = 37;
-  io._DIRECTORY_RENAME = 38;
-  io._SSL_PROCESS_FILTER = 39;
-  io._IOService = class _IOService extends core.Object {
-    static _dispatch(request, data) {
-      dart.throw(new core.UnsupportedError("_IOService._dispatch"));
-    }
-  };
-  dart.setSignature(io._IOService, {
-    statics: () => ({_dispatch: dart.definiteFunctionType(async.Future, [core.int, core.List])}),
-    names: ['_dispatch']
-  });
-  io.Link = class Link extends core.Object {
-    static new(path) {
-      return new io._Link(path);
-    }
-    static fromUri(uri) {
-      return io.Link.new(uri.toFilePath());
-    }
-  };
-  io.Link[dart.implements] = () => [io.FileSystemEntity];
-  dart.setSignature(io.Link, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.Link, [core.String]),
-      fromUri: dart.definiteFunctionType(io.Link, [core.Uri])
-    })
-  });
-  const _makeWindowsLinkTarget = Symbol('_makeWindowsLinkTarget');
-  const _exceptionFromResponse = Symbol('_exceptionFromResponse');
-  io._Link = class _Link extends io.FileSystemEntity {
-    new(path) {
-      this.path = path;
-      if (!(typeof this.path == 'string')) {
-        dart.throw(new core.ArgumentError(dart.str`${core.Error.safeToString(this.path)} ` + 'is not a String'));
-      }
-    }
-    toString() {
-      return dart.str`Link: '${this.path}'`;
-    }
-    exists() {
-      return io.FileSystemEntity.isLink(this.path);
-    }
-    existsSync() {
-      return io.FileSystemEntity.isLinkSync(this.path);
-    }
-    get absolute() {
-      return io.Link.new(this[_absolutePath]);
-    }
-    stat() {
-      return io.FileStat.stat(this.path);
-    }
-    statSync() {
-      return io.FileStat.statSync(this.path);
-    }
-    create(target, opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(io.Platform.isWindows)) {
-        target = this[_makeWindowsLinkTarget](target);
-      }
-      let result = dart.test(recursive) ? this.parent.create({recursive: true}) : async.Future.value(null);
-      return result.then(dart.dynamic)(dart.fn(_ => io._IOService._dispatch(io._FILE_CREATE_LINK, JSArrayOfString().of([this.path, target])), dynamicToFuture())).then(io._Link)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionFromResponse](response, dart.str`Cannot create link to target '${target}'`, this.path));
-        }
-        return this;
-      }, dynamicTo_Link()));
-    }
-    createSync(target, opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        this.parent.createSync({recursive: true});
-      }
-      if (dart.test(io.Platform.isWindows)) {
-        target = this[_makeWindowsLinkTarget](target);
-      }
-      let result = io._File._createLink(this.path, target);
-      io._Link.throwIfError(result, "Cannot create link", this.path);
-    }
-    [_makeWindowsLinkTarget](target) {
-      let base = core.Uri.file(dart.str`${io.Directory.current.path}\\`);
-      let link = core.Uri.file(this.path);
-      let destination = core.Uri.file(target);
-      let result = base.resolveUri(link).resolveUri(destination).toFilePath();
-      if (dart.notNull(result[dartx.length]) > 3 && result[dartx._get](1) == ':' && result[dartx._get](2) == '\\') {
-        return dart.str`\\??\\${result}`;
-      } else {
-        dart.throw(new io.FileSystemException(dart.str`Target ${result} of Link.create on Windows cannot be converted` + ' to start with a drive letter.  Unexpected error.'));
-      }
-    }
-    updateSync(target) {
-      this.deleteSync();
-      this.createSync(target);
-    }
-    update(target) {
-      return this.delete().then(io.Link)(dart.fn(_ => this.create(target), FileSystemEntityToFutureOfLink()));
-    }
-    [_delete](opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        return io.Directory.new(this.path).delete({recursive: true}).then(io._Link)(dart.fn(_ => this, FileSystemEntityTo_Link()));
-      }
-      return io._IOService._dispatch(io._FILE_DELETE_LINK, JSArrayOfString().of([this.path])).then(io._Link)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionFromResponse](response, "Cannot delete link", this.path));
-        }
-        return this;
-      }, dynamicTo_Link()));
-    }
-    [_deleteSync](opts) {
-      let recursive = opts && 'recursive' in opts ? opts.recursive : false;
-      if (dart.test(recursive)) {
-        return io.Directory.new(this.path).deleteSync({recursive: true});
-      }
-      let result = io._File._deleteLinkNative(this.path);
-      io._Link.throwIfError(result, "Cannot delete link", this.path);
-    }
-    rename(newPath) {
-      return io._IOService._dispatch(io._FILE_RENAME_LINK, JSArrayOfString().of([this.path, newPath])).then(io.Link)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionFromResponse](response, dart.str`Cannot rename link to '${newPath}'`, this.path));
-        }
-        return io.Link.new(newPath);
-      }, dynamicToLink()));
-    }
-    renameSync(newPath) {
-      let result = io._File._renameLink(this.path, newPath);
-      io._Link.throwIfError(result, dart.str`Cannot rename link '${this.path}' to '${newPath}'`);
-      return io.Link.new(newPath);
-    }
-    target() {
-      return io._IOService._dispatch(io._FILE_LINK_TARGET, JSArrayOfString().of([this.path])).then(core.String)(dart.fn(response => {
-        if (dart.test(this[_isErrorResponse](response))) {
-          dart.throw(this[_exceptionFromResponse](response, "Cannot get target of link", this.path));
-        }
-        return FutureOrOfString()._check(response);
-      }, dynamicToFutureOrOfString()));
-    }
-    targetSync() {
-      let result = io._File._linkTarget(this.path);
-      io._Link.throwIfError(result, "Cannot read link", this.path);
-      return core.String._check(result);
-    }
-    static throwIfError(result, msg, path) {
-      if (path === void 0) path = "";
-      if (io.OSError.is(result)) {
-        dart.throw(new io.FileSystemException(msg, path, result));
-      }
-    }
-    [_isErrorResponse](response) {
-      return core.List.is(response) && !dart.equals(response[dartx._get](0), io._SUCCESS_RESPONSE);
-    }
-    [_exceptionFromResponse](response, message, path) {
-      dart.assert(this[_isErrorResponse](response));
-      switch (dart.dindex(response, io._ERROR_RESPONSE_ERROR_TYPE)) {
-        case io._ILLEGAL_ARGUMENT_RESPONSE:
-        {
-          return new core.ArgumentError();
-        }
-        case io._OSERROR_RESPONSE:
-        {
-          let err = new io.OSError(core.String._check(dart.dindex(response, io._OSERROR_RESPONSE_MESSAGE)), core.int._check(dart.dindex(response, io._OSERROR_RESPONSE_ERROR_CODE)));
-          return new io.FileSystemException(message, path, err);
-        }
-        default:
-        {
-          return core.Exception.new("Unknown error");
-        }
-      }
-    }
-  };
-  io._Link[dart.implements] = () => [io.Link];
-  dart.setSignature(io._Link, {
-    constructors: () => ({new: dart.definiteFunctionType(io._Link, [core.String])}),
-    fields: () => ({path: core.String}),
-    getters: () => ({absolute: dart.definiteFunctionType(io.Link, [])}),
-    methods: () => ({
-      exists: dart.definiteFunctionType(async.Future$(core.bool), []),
-      existsSync: dart.definiteFunctionType(core.bool, []),
-      stat: dart.definiteFunctionType(async.Future$(io.FileStat), []),
-      statSync: dart.definiteFunctionType(io.FileStat, []),
-      create: dart.definiteFunctionType(async.Future$(io.Link), [core.String], {recursive: core.bool}),
-      createSync: dart.definiteFunctionType(dart.void, [core.String], {recursive: core.bool}),
-      [_makeWindowsLinkTarget]: dart.definiteFunctionType(core.String, [core.String]),
-      updateSync: dart.definiteFunctionType(dart.void, [core.String]),
-      update: dart.definiteFunctionType(async.Future$(io.Link), [core.String]),
-      [_delete]: dart.definiteFunctionType(async.Future$(io.Link), [], {recursive: core.bool}),
-      [_deleteSync]: dart.definiteFunctionType(dart.void, [], {recursive: core.bool}),
-      rename: dart.definiteFunctionType(async.Future$(io.Link), [core.String]),
-      renameSync: dart.definiteFunctionType(io.Link, [core.String]),
-      target: dart.definiteFunctionType(async.Future$(core.String), []),
-      targetSync: dart.definiteFunctionType(core.String, []),
-      [_isErrorResponse]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [_exceptionFromResponse]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, core.String])
-    }),
-    statics: () => ({throwIfError: dart.definiteFunctionType(dart.dynamic, [core.Object, core.String], [core.String])}),
-    names: ['throwIfError']
-  });
-  io.Platform = class Platform extends core.Object {
-    static get numberOfProcessors() {
-      return io.Platform._numberOfProcessors;
-    }
-    static get pathSeparator() {
-      return io.Platform._pathSeparator;
-    }
-    static get operatingSystem() {
-      return io.Platform._operatingSystem;
-    }
-    static get localHostname() {
-      return io.Platform._localHostname;
-    }
-    static get environment() {
-      return io._Platform.environment;
-    }
-    static get executable() {
-      return io._Platform.executable;
-    }
-    static get resolvedExecutable() {
-      return io._Platform.resolvedExecutable;
-    }
-    static get script() {
-      return io._Platform.script;
-    }
-    static get executableArguments() {
-      return io._Platform.executableArguments;
-    }
-    static get packageRoot() {
-      return io._Platform.packageRoot;
-    }
-    static get packageConfig() {
-      return io._Platform.packageConfig;
-    }
-    static get version() {
-      return io.Platform._version;
-    }
-  };
-  dart.setSignature(io.Platform, {
-    sfields: () => ({
-      _numberOfProcessors: core.int,
-      _pathSeparator: core.String,
-      _operatingSystem: core.String,
-      _localHostname: core.String,
-      _version: core.String,
-      isLinux: core.bool,
-      isMacOS: core.bool,
-      isWindows: core.bool,
-      isAndroid: core.bool,
-      isIOS: core.bool
-    }),
-    sgetters: () => ({
-      numberOfProcessors: dart.definiteFunctionType(core.int, []),
-      pathSeparator: dart.definiteFunctionType(core.String, []),
-      operatingSystem: dart.definiteFunctionType(core.String, []),
-      localHostname: dart.definiteFunctionType(core.String, []),
-      environment: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-      executable: dart.definiteFunctionType(core.String, []),
-      resolvedExecutable: dart.definiteFunctionType(core.String, []),
-      script: dart.definiteFunctionType(core.Uri, []),
-      executableArguments: dart.definiteFunctionType(core.List$(core.String), []),
-      packageRoot: dart.definiteFunctionType(core.String, []),
-      packageConfig: dart.definiteFunctionType(core.String, []),
-      version: dart.definiteFunctionType(core.String, [])
-    })
-  });
-  dart.defineLazy(io.Platform, {
-    get _numberOfProcessors() {
-      return io._Platform.numberOfProcessors;
-    },
-    get _pathSeparator() {
-      return io._Platform.pathSeparator;
-    },
-    get _operatingSystem() {
-      return io._Platform.operatingSystem;
-    },
-    get _localHostname() {
-      return io._Platform.localHostname;
-    },
-    get _version() {
-      return io._Platform.version;
-    },
-    get isLinux() {
-      return io.Platform._operatingSystem == "linux";
-    },
-    get isMacOS() {
-      return io.Platform._operatingSystem == "macos";
-    },
-    get isWindows() {
-      return io.Platform._operatingSystem == "windows";
-    },
-    get isAndroid() {
-      return io.Platform._operatingSystem == "android";
-    },
-    get isIOS() {
-      return io.Platform._operatingSystem == "ios";
-    }
-  });
-  io._Platform = class _Platform extends core.Object {
-    static _numberOfProcessors() {
-      dart.throw(new core.UnsupportedError("Platform._numberOfProcessors"));
-    }
-    static _pathSeparator() {
-      dart.throw(new core.UnsupportedError("Platform._pathSeparator"));
-    }
-    static _operatingSystem() {
-      dart.throw(new core.UnsupportedError("Platform._operatingSystem"));
-    }
-    static _localHostname() {
-      dart.throw(new core.UnsupportedError("Platform._localHostname"));
-    }
-    static _executable() {
-      dart.throw(new core.UnsupportedError("Platform._executable"));
-    }
-    static _resolvedExecutable() {
-      dart.throw(new core.UnsupportedError("Platform._resolvedExecutable"));
-    }
-    static _environment() {
-      dart.throw(new core.UnsupportedError("Platform._environment"));
-    }
-    static _executableArguments() {
-      dart.throw(new core.UnsupportedError("Platform._executableArguments"));
-    }
-    static _packageRoot() {
-      dart.throw(new core.UnsupportedError("Platform._packageRoot"));
-    }
-    static _packageConfig() {
-      dart.throw(new core.UnsupportedError("Platform._packageConfig"));
-    }
-    static _version() {
-      dart.throw(new core.UnsupportedError("Platform._version"));
-    }
-    static get numberOfProcessors() {
-      return io._Platform._numberOfProcessors();
-    }
-    static get pathSeparator() {
-      return io._Platform._pathSeparator();
-    }
-    static get operatingSystem() {
-      return io._Platform._operatingSystem();
-    }
-    static get localHostname() {
-      let result = io._Platform._localHostname();
-      if (io.OSError.is(result)) {
-        dart.throw(result);
-      } else {
-        return core.String._check(result);
-      }
-    }
-    static get executableArguments() {
-      return io._Platform._executableArguments();
-    }
-    static get environment() {
-      if (io._Platform._environmentCache == null) {
-        let env = io._Platform._environment();
-        if (!io.OSError.is(env)) {
-          let isWindows = io._Platform.operatingSystem == 'windows';
-          let result = isWindows ? new io._CaseInsensitiveStringMap() : core.Map.new();
-          for (let str of core.Iterable._check(env)) {
-            let equalsIndex = dart.dsend(str, 'indexOf', '=');
-            if (dart.test(dart.dsend(equalsIndex, '>', 0))) {
-              result[dartx._set](dart.dsend(str, 'substring', 0, equalsIndex), dart.dsend(str, 'substring', dart.dsend(equalsIndex, '+', 1)));
-            }
-          }
-          io._Platform._environmentCache = new (UnmodifiableMapViewOfString$String())(MapOfString$String()._check(result));
-        } else {
-          io._Platform._environmentCache = env;
-        }
-      }
-      if (io.OSError.is(io._Platform._environmentCache)) {
-        dart.throw(io._Platform._environmentCache);
-      } else {
-        return MapOfString$String()._check(io._Platform._environmentCache);
-      }
-    }
-    static get version() {
-      return io._Platform._version();
-    }
-  };
-  dart.setSignature(io._Platform, {
-    sfields: () => ({
-      executable: core.String,
-      resolvedExecutable: core.String,
-      packageRoot: core.String,
-      packageConfig: core.String,
-      _environmentCache: dart.dynamic,
-      script: core.Uri
-    }),
-    sgetters: () => ({
-      numberOfProcessors: dart.definiteFunctionType(core.int, []),
-      pathSeparator: dart.definiteFunctionType(core.String, []),
-      operatingSystem: dart.definiteFunctionType(core.String, []),
-      localHostname: dart.definiteFunctionType(core.String, []),
-      executableArguments: dart.definiteFunctionType(core.List$(core.String), []),
-      environment: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-      version: dart.definiteFunctionType(core.String, [])
-    }),
-    statics: () => ({
-      _numberOfProcessors: dart.definiteFunctionType(core.int, []),
-      _pathSeparator: dart.definiteFunctionType(core.String, []),
-      _operatingSystem: dart.definiteFunctionType(core.String, []),
-      _localHostname: dart.definiteFunctionType(dart.dynamic, []),
-      _executable: dart.definiteFunctionType(dart.dynamic, []),
-      _resolvedExecutable: dart.definiteFunctionType(dart.dynamic, []),
-      _environment: dart.definiteFunctionType(dart.dynamic, []),
-      _executableArguments: dart.definiteFunctionType(core.List$(core.String), []),
-      _packageRoot: dart.definiteFunctionType(core.String, []),
-      _packageConfig: dart.definiteFunctionType(core.String, []),
-      _version: dart.definiteFunctionType(core.String, [])
-    }),
-    names: ['_numberOfProcessors', '_pathSeparator', '_operatingSystem', '_localHostname', '_executable', '_resolvedExecutable', '_environment', '_executableArguments', '_packageRoot', '_packageConfig', '_version']
-  });
-  io._Platform._environmentCache = null;
-  io._Platform.script = null;
-  dart.defineLazy(io._Platform, {
-    get executable() {
-      return core.String._check(io._Platform._executable());
-    },
-    set executable(_) {},
-    get resolvedExecutable() {
-      return core.String._check(io._Platform._resolvedExecutable());
-    },
-    set resolvedExecutable(_) {},
-    get packageRoot() {
-      return io._Platform._packageRoot();
-    },
-    set packageRoot(_) {},
-    get packageConfig() {
-      return io._Platform._packageConfig();
-    },
-    set packageConfig(_) {}
-  });
-  const _map$1 = Symbol('_map');
-  io._CaseInsensitiveStringMap$ = dart.generic(V => {
-    let MapOfString$V = () => (MapOfString$V = dart.constFn(core.Map$(core.String, V)))();
-    let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let StringAndVTovoid = () => (StringAndVTovoid = dart.constFn(dart.functionType(dart.void, [core.String, V])))();
-    class _CaseInsensitiveStringMap extends core.Object {
-      new() {
-        this[_map$1] = MapOfString$V().new();
-      }
-      containsKey(key) {
-        return typeof key == 'string' && dart.test(this[_map$1][dartx.containsKey](key[dartx.toUpperCase]()));
-      }
-      containsValue(value) {
-        return this[_map$1][dartx.containsValue](value);
-      }
-      _get(key) {
-        return typeof key == 'string' ? this[_map$1][dartx._get](key[dartx.toUpperCase]()) : null;
-      }
-      _set(key, value) {
-        V._check(value);
-        this[_map$1][dartx._set](key[dartx.toUpperCase](), value);
-        return value;
-      }
-      putIfAbsent(key, ifAbsent) {
-        VoidToV()._check(ifAbsent);
-        return this[_map$1][dartx.putIfAbsent](key[dartx.toUpperCase](), ifAbsent);
-      }
-      addAll(other) {
-        other[dartx.forEach](dart.fn((key, value) => this._set(core.String._check(dart.dsend(key, 'toUpperCase')), V._check(value)), dynamicAnddynamicTovoid$()));
-      }
-      remove(key) {
-        return typeof key == 'string' ? this[_map$1][dartx.remove](key[dartx.toUpperCase]()) : null;
-      }
-      clear() {
-        this[_map$1][dartx.clear]();
-      }
-      forEach(f) {
-        this[_map$1][dartx.forEach](f);
-      }
-      get keys() {
-        return this[_map$1][dartx.keys];
-      }
-      get values() {
-        return this[_map$1][dartx.values];
-      }
-      get length() {
-        return this[_map$1][dartx.length];
-      }
-      get isEmpty() {
-        return this[_map$1][dartx.isEmpty];
-      }
-      get isNotEmpty() {
-        return this[_map$1][dartx.isNotEmpty];
-      }
-      toString() {
-        return dart.toString(this[_map$1]);
-      }
-    }
-    dart.addTypeTests(_CaseInsensitiveStringMap);
-    _CaseInsensitiveStringMap[dart.implements] = () => [MapOfString$V()];
-    dart.setSignature(_CaseInsensitiveStringMap, {
-      fields: () => ({[_map$1]: MapOfString$V()}),
-      getters: () => ({
-        keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
-        values: dart.definiteFunctionType(core.Iterable$(V), []),
-        length: dart.definiteFunctionType(core.int, []),
-        isEmpty: dart.definiteFunctionType(core.bool, []),
-        isNotEmpty: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-        containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-        _get: dart.definiteFunctionType(V, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [core.String, V]),
-        putIfAbsent: dart.definiteFunctionType(V, [core.String, VoidToV()]),
-        addAll: dart.definiteFunctionType(dart.void, [core.Map]),
-        remove: dart.definiteFunctionType(V, [core.Object]),
-        clear: dart.definiteFunctionType(dart.void, []),
-        forEach: dart.definiteFunctionType(dart.void, [StringAndVTovoid()])
-      })
-    });
-    dart.defineExtensionMembers(_CaseInsensitiveStringMap, [
-      'containsKey',
-      'containsValue',
-      '_get',
-      '_set',
-      'putIfAbsent',
-      'addAll',
-      'remove',
-      'clear',
-      'forEach',
-      'keys',
-      'values',
-      'length',
-      'isEmpty',
-      'isNotEmpty'
-    ]);
-    return _CaseInsensitiveStringMap;
-  });
-  io._CaseInsensitiveStringMap = _CaseInsensitiveStringMap();
-  io._ProcessUtils = class _ProcessUtils extends core.Object {
-    static _exit(status) {
-      dart.throw(new core.UnsupportedError("ProcessUtils._exit"));
-    }
-    static _setExitCode(status) {
-      dart.throw(new core.UnsupportedError("ProcessUtils._setExitCode"));
-    }
-    static _getExitCode() {
-      dart.throw(new core.UnsupportedError("ProcessUtils._getExitCode"));
-    }
-    static _sleep(millis) {
-      dart.throw(new core.UnsupportedError("ProcessUtils._sleep"));
-    }
-    static _pid(process) {
-      dart.throw(new core.UnsupportedError("ProcessUtils._pid"));
-    }
-    static _watchSignal(signal) {
-      dart.throw(new core.UnsupportedError("ProcessUtils._watchSignal"));
-    }
-  };
-  dart.setSignature(io._ProcessUtils, {
-    statics: () => ({
-      _exit: dart.definiteFunctionType(dart.void, [core.int]),
-      _setExitCode: dart.definiteFunctionType(dart.void, [core.int]),
-      _getExitCode: dart.definiteFunctionType(core.int, []),
-      _sleep: dart.definiteFunctionType(dart.void, [core.int]),
-      _pid: dart.definiteFunctionType(core.int, [io.Process]),
-      _watchSignal: dart.definiteFunctionType(async.Stream$(io.ProcessSignal), [io.ProcessSignal])
-    }),
-    names: ['_exit', '_setExitCode', '_getExitCode', '_sleep', '_pid', '_watchSignal']
-  });
-  io.exit = function(code) {
+  return _CaseInsensitiveStringMap;
+});
+io._CaseInsensitiveStringMap = _CaseInsensitiveStringMap();
+io._ProcessUtils = class _ProcessUtils extends core.Object {
+  static _exit(status) {
+    dart.throw(new core.UnsupportedError("ProcessUtils._exit"));
+  }
+  static _setExitCode(status) {
+    dart.throw(new core.UnsupportedError("ProcessUtils._setExitCode"));
+  }
+  static _getExitCode() {
+    dart.throw(new core.UnsupportedError("ProcessUtils._getExitCode"));
+  }
+  static _sleep(millis) {
+    dart.throw(new core.UnsupportedError("ProcessUtils._sleep"));
+  }
+  static _pid(process) {
+    dart.throw(new core.UnsupportedError("ProcessUtils._pid"));
+  }
+  static _watchSignal(signal) {
+    dart.throw(new core.UnsupportedError("ProcessUtils._watchSignal"));
+  }
+};
+dart.setSignature(io._ProcessUtils, {
+  statics: () => ({
+    _exit: dart.definiteFunctionType(dart.void, [core.int]),
+    _setExitCode: dart.definiteFunctionType(dart.void, [core.int]),
+    _getExitCode: dart.definiteFunctionType(core.int, []),
+    _sleep: dart.definiteFunctionType(dart.void, [core.int]),
+    _pid: dart.definiteFunctionType(core.int, [io.Process]),
+    _watchSignal: dart.definiteFunctionType(async.Stream$(io.ProcessSignal), [io.ProcessSignal])
+  }),
+  names: ['_exit', '_setExitCode', '_getExitCode', '_sleep', '_pid', '_watchSignal']
+});
+io.exit = function(code) {
+  if (!(typeof code == 'number')) {
+    dart.throw(new core.ArgumentError("Integer value for exit code expected"));
+  }
+  io._ProcessUtils._exit(code);
+};
+dart.fn(io.exit, intTovoid());
+dart.copyProperties(io, {
+  set exitCode(code) {
     if (!(typeof code == 'number')) {
       dart.throw(new core.ArgumentError("Integer value for exit code expected"));
     }
-    io._ProcessUtils._exit(code);
-  };
-  dart.fn(io.exit, intTovoid());
-  dart.copyProperties(io, {
-    set exitCode(code) {
-      if (!(typeof code == 'number')) {
-        dart.throw(new core.ArgumentError("Integer value for exit code expected"));
-      }
-      io._ProcessUtils._setExitCode(code);
-    },
-    get exitCode() {
-      return io._ProcessUtils._getExitCode();
+    io._ProcessUtils._setExitCode(code);
+  },
+  get exitCode() {
+    return io._ProcessUtils._getExitCode();
+  }
+});
+io.sleep = function(duration) {
+  let milliseconds = duration.inMilliseconds;
+  if (dart.notNull(milliseconds) < 0) {
+    dart.throw(new core.ArgumentError("sleep: duration cannot be negative"));
+  }
+  io._ProcessUtils._sleep(milliseconds);
+};
+dart.fn(io.sleep, DurationTovoid());
+dart.copyProperties(io, {
+  get pid() {
+    return io._ProcessUtils._pid(null);
+  }
+});
+io.ProcessStartMode = class ProcessStartMode extends core.Object {
+  new(index) {
+    this.index = index;
+  }
+  toString() {
+    return {
+      0: "ProcessStartMode.NORMAL",
+      1: "ProcessStartMode.DETACHED",
+      2: "ProcessStartMode.DETACHED_WITH_STDIO"
+    }[this.index];
+  }
+};
+dart.setSignature(io.ProcessStartMode, {
+  fields: () => ({index: core.int})
+});
+dart.defineEnumValues(io.ProcessStartMode, [
+  'NORMAL',
+  'DETACHED',
+  'DETACHED_WITH_STDIO'
+]);
+io.Process = class Process extends core.Object {
+  new() {
+    this.exitCode = null;
+  }
+  static start(executable, arguments$, opts) {
+    let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
+    let environment = opts && 'environment' in opts ? opts.environment : null;
+    let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
+    let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
+    let mode = opts && 'mode' in opts ? opts.mode : io.ProcessStartMode.NORMAL;
+    dart.throw(new core.UnsupportedError("Process.start"));
+  }
+  static run(executable, arguments$, opts) {
+    let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
+    let environment = opts && 'environment' in opts ? opts.environment : null;
+    let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
+    let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
+    let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : io.SYSTEM_ENCODING;
+    let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : io.SYSTEM_ENCODING;
+    dart.throw(new core.UnsupportedError("Process.run"));
+  }
+  static runSync(executable, arguments$, opts) {
+    let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
+    let environment = opts && 'environment' in opts ? opts.environment : null;
+    let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
+    let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
+    let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : io.SYSTEM_ENCODING;
+    let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : io.SYSTEM_ENCODING;
+    dart.throw(new core.UnsupportedError("Process.runSync"));
+  }
+  static killPid(pid, signal) {
+    if (signal === void 0) signal = io.ProcessSignal.SIGTERM;
+    dart.throw(new core.UnsupportedError("Process.killPid"));
+  }
+};
+dart.setSignature(io.Process, {
+  fields: () => ({exitCode: FutureOfint()}),
+  statics: () => ({
+    start: dart.definiteFunctionType(async.Future$(io.Process), [core.String, ListOfString()], {workingDirectory: core.String, environment: MapOfString$String(), includeParentEnvironment: core.bool, runInShell: core.bool, mode: io.ProcessStartMode}),
+    run: dart.definiteFunctionType(async.Future$(io.ProcessResult), [core.String, ListOfString()], {workingDirectory: core.String, environment: MapOfString$String(), includeParentEnvironment: core.bool, runInShell: core.bool, stdoutEncoding: convert.Encoding, stderrEncoding: convert.Encoding}),
+    runSync: dart.definiteFunctionType(io.ProcessResult, [core.String, ListOfString()], {workingDirectory: core.String, environment: MapOfString$String(), includeParentEnvironment: core.bool, runInShell: core.bool, stdoutEncoding: convert.Encoding, stderrEncoding: convert.Encoding}),
+    killPid: dart.definiteFunctionType(core.bool, [core.int], [io.ProcessSignal])
+  }),
+  names: ['start', 'run', 'runSync', 'killPid']
+});
+io.ProcessResult = class ProcessResult extends core.Object {
+  new(pid, exitCode, stdout, stderr) {
+    this.pid = pid;
+    this.exitCode = exitCode;
+    this.stdout = stdout;
+    this.stderr = stderr;
+  }
+};
+dart.setSignature(io.ProcessResult, {
+  constructors: () => ({new: dart.definiteFunctionType(io.ProcessResult, [core.int, core.int, dart.dynamic, dart.dynamic])}),
+  fields: () => ({
+    exitCode: core.int,
+    stdout: dart.dynamic,
+    stderr: dart.dynamic,
+    pid: core.int
+  })
+});
+const _signalNumber = Symbol('_signalNumber');
+const _name$2 = Symbol('_name');
+io.ProcessSignal = class ProcessSignal extends core.Object {
+  _(signalNumber, name) {
+    this[_signalNumber] = signalNumber;
+    this[_name$2] = name;
+  }
+  toString() {
+    return this[_name$2];
+  }
+  watch() {
+    return io._ProcessUtils._watchSignal(this);
+  }
+};
+dart.defineNamedConstructor(io.ProcessSignal, '_');
+dart.setSignature(io.ProcessSignal, {
+  constructors: () => ({_: dart.definiteFunctionType(io.ProcessSignal, [core.int, core.String])}),
+  fields: () => ({
+    [_signalNumber]: core.int,
+    [_name$2]: core.String
+  }),
+  methods: () => ({watch: dart.definiteFunctionType(async.Stream$(io.ProcessSignal), [])}),
+  sfields: () => ({
+    SIGHUP: io.ProcessSignal,
+    SIGINT: io.ProcessSignal,
+    SIGQUIT: io.ProcessSignal,
+    SIGILL: io.ProcessSignal,
+    SIGTRAP: io.ProcessSignal,
+    SIGABRT: io.ProcessSignal,
+    SIGBUS: io.ProcessSignal,
+    SIGFPE: io.ProcessSignal,
+    SIGKILL: io.ProcessSignal,
+    SIGUSR1: io.ProcessSignal,
+    SIGSEGV: io.ProcessSignal,
+    SIGUSR2: io.ProcessSignal,
+    SIGPIPE: io.ProcessSignal,
+    SIGALRM: io.ProcessSignal,
+    SIGTERM: io.ProcessSignal,
+    SIGCHLD: io.ProcessSignal,
+    SIGCONT: io.ProcessSignal,
+    SIGSTOP: io.ProcessSignal,
+    SIGTSTP: io.ProcessSignal,
+    SIGTTIN: io.ProcessSignal,
+    SIGTTOU: io.ProcessSignal,
+    SIGURG: io.ProcessSignal,
+    SIGXCPU: io.ProcessSignal,
+    SIGXFSZ: io.ProcessSignal,
+    SIGVTALRM: io.ProcessSignal,
+    SIGPROF: io.ProcessSignal,
+    SIGWINCH: io.ProcessSignal,
+    SIGPOLL: io.ProcessSignal,
+    SIGSYS: io.ProcessSignal
+  })
+});
+dart.defineLazy(io.ProcessSignal, {
+  get SIGHUP() {
+    return dart.const(new io.ProcessSignal._(1, "SIGHUP"));
+  },
+  get SIGINT() {
+    return dart.const(new io.ProcessSignal._(2, "SIGINT"));
+  },
+  get SIGQUIT() {
+    return dart.const(new io.ProcessSignal._(3, "SIGQUIT"));
+  },
+  get SIGILL() {
+    return dart.const(new io.ProcessSignal._(4, "SIGILL"));
+  },
+  get SIGTRAP() {
+    return dart.const(new io.ProcessSignal._(5, "SIGTRAP"));
+  },
+  get SIGABRT() {
+    return dart.const(new io.ProcessSignal._(6, "SIGABRT"));
+  },
+  get SIGBUS() {
+    return dart.const(new io.ProcessSignal._(7, "SIGBUS"));
+  },
+  get SIGFPE() {
+    return dart.const(new io.ProcessSignal._(8, "SIGFPE"));
+  },
+  get SIGKILL() {
+    return dart.const(new io.ProcessSignal._(9, "SIGKILL"));
+  },
+  get SIGUSR1() {
+    return dart.const(new io.ProcessSignal._(10, "SIGUSR1"));
+  },
+  get SIGSEGV() {
+    return dart.const(new io.ProcessSignal._(11, "SIGSEGV"));
+  },
+  get SIGUSR2() {
+    return dart.const(new io.ProcessSignal._(12, "SIGUSR2"));
+  },
+  get SIGPIPE() {
+    return dart.const(new io.ProcessSignal._(13, "SIGPIPE"));
+  },
+  get SIGALRM() {
+    return dart.const(new io.ProcessSignal._(14, "SIGALRM"));
+  },
+  get SIGTERM() {
+    return dart.const(new io.ProcessSignal._(15, "SIGTERM"));
+  },
+  get SIGCHLD() {
+    return dart.const(new io.ProcessSignal._(17, "SIGCHLD"));
+  },
+  get SIGCONT() {
+    return dart.const(new io.ProcessSignal._(18, "SIGCONT"));
+  },
+  get SIGSTOP() {
+    return dart.const(new io.ProcessSignal._(19, "SIGSTOP"));
+  },
+  get SIGTSTP() {
+    return dart.const(new io.ProcessSignal._(20, "SIGTSTP"));
+  },
+  get SIGTTIN() {
+    return dart.const(new io.ProcessSignal._(21, "SIGTTIN"));
+  },
+  get SIGTTOU() {
+    return dart.const(new io.ProcessSignal._(22, "SIGTTOU"));
+  },
+  get SIGURG() {
+    return dart.const(new io.ProcessSignal._(23, "SIGURG"));
+  },
+  get SIGXCPU() {
+    return dart.const(new io.ProcessSignal._(24, "SIGXCPU"));
+  },
+  get SIGXFSZ() {
+    return dart.const(new io.ProcessSignal._(25, "SIGXFSZ"));
+  },
+  get SIGVTALRM() {
+    return dart.const(new io.ProcessSignal._(26, "SIGVTALRM"));
+  },
+  get SIGPROF() {
+    return dart.const(new io.ProcessSignal._(27, "SIGPROF"));
+  },
+  get SIGWINCH() {
+    return dart.const(new io.ProcessSignal._(28, "SIGWINCH"));
+  },
+  get SIGPOLL() {
+    return dart.const(new io.ProcessSignal._(29, "SIGPOLL"));
+  },
+  get SIGSYS() {
+    return dart.const(new io.ProcessSignal._(31, "SIGSYS"));
+  }
+});
+io.SignalException = class SignalException extends core.Object {
+  new(message, osError) {
+    if (osError === void 0) osError = null;
+    this.message = message;
+    this.osError = osError;
+  }
+  toString() {
+    let msg = "";
+    if (this.osError != null) {
+      msg = dart.str`, osError: ${this.osError}`;
     }
-  });
-  io.sleep = function(duration) {
-    let milliseconds = duration.inMilliseconds;
-    if (dart.notNull(milliseconds) < 0) {
-      dart.throw(new core.ArgumentError("sleep: duration cannot be negative"));
+    return dart.str`SignalException: ${this.message}${msg}`;
+  }
+};
+io.SignalException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.SignalException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.SignalException, [core.String], [dart.dynamic])}),
+  fields: () => ({
+    message: core.String,
+    osError: dart.dynamic
+  })
+});
+io.ProcessException = class ProcessException extends core.Object {
+  new(executable, arguments$, message, errorCode) {
+    if (message === void 0) message = "";
+    if (errorCode === void 0) errorCode = 0;
+    this.executable = executable;
+    this.arguments = arguments$;
+    this.message = message;
+    this.errorCode = errorCode;
+  }
+  toString() {
+    let msg = this.message == null ? dart.str`OS error code: ${this.errorCode}` : this.message;
+    let args = this.arguments[dartx.join](' ');
+    return dart.str`ProcessException: ${msg}\n  Command: ${this.executable} ${args}`;
+  }
+};
+io.ProcessException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.ProcessException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.ProcessException, [core.String, ListOfString()], [core.String, core.int])}),
+  fields: () => ({
+    executable: core.String,
+    arguments: ListOfString(),
+    message: core.String,
+    errorCode: core.int
+  })
+});
+const _detachRaw = Symbol('_detachRaw');
+io.SecureSocket = class SecureSocket extends core.Object {
+  static _(rawSocket) {
+    dart.throw(new core.UnsupportedError("SecureSocket constructor"));
+  }
+  static connect(host, port, opts) {
+    let context = opts && 'context' in opts ? opts.context : null;
+    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    return io.RawSecureSocket.connect(host, port, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}).then(io.SecureSocket)(dart.fn(rawSocket => io.SecureSocket._(rawSocket), RawSecureSocketToSecureSocket()));
+  }
+  static secure(socket, opts) {
+    let host = opts && 'host' in opts ? opts.host : null;
+    let context = opts && 'context' in opts ? opts.context : null;
+    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
+    let completer = async.Completer.new();
+    dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
+      completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
+    }, dynamicToNull$()));
+    return FutureOfSecureSocket()._check(completer.future);
+  }
+  static secureServer(socket, context, opts) {
+    let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    let completer = async.Completer.new();
+    dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
+      completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
+    }, dynamicToNull$()));
+    return FutureOfSecureSocket()._check(completer.future);
+  }
+};
+io.SecureSocket[dart.implements] = () => [io.Socket];
+dart.setSignature(io.SecureSocket, {
+  constructors: () => ({_: dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])}),
+  statics: () => ({
+    connect: dart.definiteFunctionType(async.Future$(io.SecureSocket), [dart.dynamic, core.int], {context: io.SecurityContext, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
+    secure: dart.definiteFunctionType(async.Future$(io.SecureSocket), [io.Socket], {host: dart.dynamic, context: io.SecurityContext, onBadCertificate: X509CertificateTobool()}),
+    secureServer: dart.definiteFunctionType(async.Future$(io.SecureSocket), [io.Socket, io.SecurityContext], {bufferedData: ListOfint(), requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString()})
+  }),
+  names: ['connect', 'secure', 'secureServer']
+});
+io.SecureServerSocket = class SecureServerSocket extends async.Stream$(io.SecureSocket) {
+  _(socket) {
+    this[_socket] = socket;
+    super.new();
+  }
+  static bind(address, port, context, opts) {
+    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
+    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    let shared = opts && 'shared' in opts ? opts.shared : false;
+    return io.RawSecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols, shared: shared}).then(io.SecureServerSocket)(dart.fn(serverSocket => new io.SecureServerSocket._(serverSocket), RawSecureServerSocketToSecureServerSocket()));
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_socket].map(io.SecureSocket)(dart.fn(rawSocket => io.SecureSocket._(rawSocket), RawSecureSocketToSecureSocket())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  get port() {
+    return this[_socket].port;
+  }
+  get address() {
+    return this[_socket].address;
+  }
+  close() {
+    return this[_socket].close().then(io.SecureServerSocket)(dart.fn(_ => this, RawSecureServerSocketToSecureServerSocket()));
+  }
+  set [_owner](owner) {
+    this[_socket][_owner] = owner;
+  }
+};
+dart.addSimpleTypeTests(io.SecureServerSocket);
+dart.defineNamedConstructor(io.SecureServerSocket, '_');
+dart.setSignature(io.SecureServerSocket, {
+  constructors: () => ({_: dart.definiteFunctionType(io.SecureServerSocket, [io.RawSecureServerSocket])}),
+  fields: () => ({[_socket]: io.RawSecureServerSocket}),
+  getters: () => ({
+    port: dart.definiteFunctionType(core.int, []),
+    address: dart.definiteFunctionType(io.InternetAddress, [])
+  }),
+  setters: () => ({[_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic])}),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(io.SecureSocket), [SecureSocketTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    close: dart.definiteFunctionType(async.Future$(io.SecureServerSocket), [])
+  }),
+  statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.SecureServerSocket), [dart.dynamic, core.int, io.SecurityContext], {backlog: core.int, v6Only: core.bool, requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString(), shared: core.bool})}),
+  names: ['bind']
+});
+const _onSubscriptionStateChange = Symbol('_onSubscriptionStateChange');
+const _onPauseStateChange = Symbol('_onPauseStateChange');
+io.RawSecureSocket = class RawSecureSocket extends core.Object {
+  static connect(host, port, opts) {
+    let context = opts && 'context' in opts ? opts.context : null;
+    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    io._RawSecureSocket._verifyFields(host, port, false, false, false, onBadCertificate);
+    return io.RawSocket.connect(host, port).then(io.RawSecureSocket)(dart.fn(socket => io.RawSecureSocket.secure(socket, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}), RawSocketToFutureOfRawSecureSocket()));
+  }
+  static secure(socket, opts) {
+    let subscription = opts && 'subscription' in opts ? opts.subscription : null;
+    let host = opts && 'host' in opts ? opts.host : null;
+    let context = opts && 'context' in opts ? opts.context : null;
+    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    socket.readEventsEnabled = false;
+    socket.writeEventsEnabled = false;
+    return io._RawSecureSocket.connect(host != null ? host : socket.address.host, socket.port, {is_server: false, socket: socket, subscription: subscription, context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols});
+  }
+  static secureServer(socket, context, opts) {
+    let subscription = opts && 'subscription' in opts ? opts.subscription : null;
+    let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    socket.readEventsEnabled = false;
+    socket.writeEventsEnabled = false;
+    return io._RawSecureSocket.connect(socket.address, socket.remotePort, {context: context, is_server: true, socket: socket, subscription: subscription, bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols});
+  }
+};
+io.RawSecureSocket[dart.implements] = () => [io.RawSocket];
+dart.setSignature(io.RawSecureSocket, {
+  statics: () => ({
+    connect: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), [dart.dynamic, core.int], {context: io.SecurityContext, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
+    secure: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), [io.RawSocket], {subscription: async.StreamSubscription, host: dart.dynamic, context: io.SecurityContext, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
+    secureServer: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), [io.RawSocket, io.SecurityContext], {subscription: async.StreamSubscription, bufferedData: ListOfint(), requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString()})
+  }),
+  names: ['connect', 'secure', 'secureServer']
+});
+io.RawSecureServerSocket = class RawSecureServerSocket extends async.Stream$(io.RawSecureSocket) {
+  _(socket, context, requestClientCertificate, requireClientCertificate, supportedProtocols) {
+    this[_socket] = socket;
+    this[_context] = context;
+    this.requestClientCertificate = requestClientCertificate;
+    this.requireClientCertificate = requireClientCertificate;
+    this.supportedProtocols = supportedProtocols;
+    this[_controller$0] = null;
+    this[_subscription$] = null;
+    this[_closed] = false;
+    super.new();
+    this[_controller$0] = StreamControllerOfRawSecureSocket().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
+  }
+  static bind(address, port, context, opts) {
+    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
+    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    let shared = opts && 'shared' in opts ? opts.shared : false;
+    return io.RawServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io.RawSecureServerSocket)(dart.fn(serverSocket => new io.RawSecureServerSocket._(serverSocket, context, requestClientCertificate, requireClientCertificate, supportedProtocols), RawServerSocketToRawSecureServerSocket()));
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  get port() {
+    return this[_socket].port;
+  }
+  get address() {
+    return this[_socket].address;
+  }
+  close() {
+    this[_closed] = true;
+    return this[_socket].close().then(io.RawSecureServerSocket)(dart.fn(_ => this, RawServerSocketToRawSecureServerSocket()));
+  }
+  [_onData$](connection) {
+    let remotePort = null;
+    try {
+      remotePort = connection.remotePort;
+    } catch (e) {
+      return;
     }
-    io._ProcessUtils._sleep(milliseconds);
-  };
-  dart.fn(io.sleep, DurationTovoid());
-  dart.copyProperties(io, {
-    get pid() {
-      return io._ProcessUtils._pid(null);
-    }
-  });
-  io.ProcessStartMode = class ProcessStartMode extends core.Object {
-    new(index) {
-      this.index = index;
-    }
-    toString() {
-      return {
-        0: "ProcessStartMode.NORMAL",
-        1: "ProcessStartMode.DETACHED",
-        2: "ProcessStartMode.DETACHED_WITH_STDIO"
-      }[this.index];
-    }
-  };
-  dart.setSignature(io.ProcessStartMode, {
-    fields: () => ({index: core.int})
-  });
-  dart.defineEnumValues(io.ProcessStartMode, [
-    'NORMAL',
-    'DETACHED',
-    'DETACHED_WITH_STDIO'
-  ]);
-  io.Process = class Process extends core.Object {
-    new() {
-      this.exitCode = null;
-    }
-    static start(executable, arguments$, opts) {
-      let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
-      let environment = opts && 'environment' in opts ? opts.environment : null;
-      let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
-      let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
-      let mode = opts && 'mode' in opts ? opts.mode : io.ProcessStartMode.NORMAL;
-      dart.throw(new core.UnsupportedError("Process.start"));
-    }
-    static run(executable, arguments$, opts) {
-      let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
-      let environment = opts && 'environment' in opts ? opts.environment : null;
-      let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
-      let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
-      let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : io.SYSTEM_ENCODING;
-      let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : io.SYSTEM_ENCODING;
-      dart.throw(new core.UnsupportedError("Process.run"));
-    }
-    static runSync(executable, arguments$, opts) {
-      let workingDirectory = opts && 'workingDirectory' in opts ? opts.workingDirectory : null;
-      let environment = opts && 'environment' in opts ? opts.environment : null;
-      let includeParentEnvironment = opts && 'includeParentEnvironment' in opts ? opts.includeParentEnvironment : true;
-      let runInShell = opts && 'runInShell' in opts ? opts.runInShell : false;
-      let stdoutEncoding = opts && 'stdoutEncoding' in opts ? opts.stdoutEncoding : io.SYSTEM_ENCODING;
-      let stderrEncoding = opts && 'stderrEncoding' in opts ? opts.stderrEncoding : io.SYSTEM_ENCODING;
-      dart.throw(new core.UnsupportedError("Process.runSync"));
-    }
-    static killPid(pid, signal) {
-      if (signal === void 0) signal = io.ProcessSignal.SIGTERM;
-      dart.throw(new core.UnsupportedError("Process.killPid"));
-    }
-  };
-  dart.setSignature(io.Process, {
-    fields: () => ({exitCode: FutureOfint()}),
-    statics: () => ({
-      start: dart.definiteFunctionType(async.Future$(io.Process), [core.String, ListOfString()], {workingDirectory: core.String, environment: MapOfString$String(), includeParentEnvironment: core.bool, runInShell: core.bool, mode: io.ProcessStartMode}),
-      run: dart.definiteFunctionType(async.Future$(io.ProcessResult), [core.String, ListOfString()], {workingDirectory: core.String, environment: MapOfString$String(), includeParentEnvironment: core.bool, runInShell: core.bool, stdoutEncoding: convert.Encoding, stderrEncoding: convert.Encoding}),
-      runSync: dart.definiteFunctionType(io.ProcessResult, [core.String, ListOfString()], {workingDirectory: core.String, environment: MapOfString$String(), includeParentEnvironment: core.bool, runInShell: core.bool, stdoutEncoding: convert.Encoding, stderrEncoding: convert.Encoding}),
-      killPid: dart.definiteFunctionType(core.bool, [core.int], [io.ProcessSignal])
-    }),
-    names: ['start', 'run', 'runSync', 'killPid']
-  });
-  io.ProcessResult = class ProcessResult extends core.Object {
-    new(pid, exitCode, stdout, stderr) {
-      this.pid = pid;
-      this.exitCode = exitCode;
-      this.stdout = stdout;
-      this.stderr = stderr;
-    }
-  };
-  dart.setSignature(io.ProcessResult, {
-    constructors: () => ({new: dart.definiteFunctionType(io.ProcessResult, [core.int, core.int, dart.dynamic, dart.dynamic])}),
-    fields: () => ({
-      exitCode: core.int,
-      stdout: dart.dynamic,
-      stderr: dart.dynamic,
-      pid: core.int
-    })
-  });
-  const _signalNumber = Symbol('_signalNumber');
-  const _name$2 = Symbol('_name');
-  io.ProcessSignal = class ProcessSignal extends core.Object {
-    _(signalNumber, name) {
-      this[_signalNumber] = signalNumber;
-      this[_name$2] = name;
-    }
-    toString() {
-      return this[_name$2];
-    }
-    watch() {
-      return io._ProcessUtils._watchSignal(this);
-    }
-  };
-  dart.defineNamedConstructor(io.ProcessSignal, '_');
-  dart.setSignature(io.ProcessSignal, {
-    constructors: () => ({_: dart.definiteFunctionType(io.ProcessSignal, [core.int, core.String])}),
-    fields: () => ({
-      [_signalNumber]: core.int,
-      [_name$2]: core.String
-    }),
-    methods: () => ({watch: dart.definiteFunctionType(async.Stream$(io.ProcessSignal), [])}),
-    sfields: () => ({
-      SIGHUP: io.ProcessSignal,
-      SIGINT: io.ProcessSignal,
-      SIGQUIT: io.ProcessSignal,
-      SIGILL: io.ProcessSignal,
-      SIGTRAP: io.ProcessSignal,
-      SIGABRT: io.ProcessSignal,
-      SIGBUS: io.ProcessSignal,
-      SIGFPE: io.ProcessSignal,
-      SIGKILL: io.ProcessSignal,
-      SIGUSR1: io.ProcessSignal,
-      SIGSEGV: io.ProcessSignal,
-      SIGUSR2: io.ProcessSignal,
-      SIGPIPE: io.ProcessSignal,
-      SIGALRM: io.ProcessSignal,
-      SIGTERM: io.ProcessSignal,
-      SIGCHLD: io.ProcessSignal,
-      SIGCONT: io.ProcessSignal,
-      SIGSTOP: io.ProcessSignal,
-      SIGTSTP: io.ProcessSignal,
-      SIGTTIN: io.ProcessSignal,
-      SIGTTOU: io.ProcessSignal,
-      SIGURG: io.ProcessSignal,
-      SIGXCPU: io.ProcessSignal,
-      SIGXFSZ: io.ProcessSignal,
-      SIGVTALRM: io.ProcessSignal,
-      SIGPROF: io.ProcessSignal,
-      SIGWINCH: io.ProcessSignal,
-      SIGPOLL: io.ProcessSignal,
-      SIGSYS: io.ProcessSignal
-    })
-  });
-  dart.defineLazy(io.ProcessSignal, {
-    get SIGHUP() {
-      return dart.const(new io.ProcessSignal._(1, "SIGHUP"));
-    },
-    get SIGINT() {
-      return dart.const(new io.ProcessSignal._(2, "SIGINT"));
-    },
-    get SIGQUIT() {
-      return dart.const(new io.ProcessSignal._(3, "SIGQUIT"));
-    },
-    get SIGILL() {
-      return dart.const(new io.ProcessSignal._(4, "SIGILL"));
-    },
-    get SIGTRAP() {
-      return dart.const(new io.ProcessSignal._(5, "SIGTRAP"));
-    },
-    get SIGABRT() {
-      return dart.const(new io.ProcessSignal._(6, "SIGABRT"));
-    },
-    get SIGBUS() {
-      return dart.const(new io.ProcessSignal._(7, "SIGBUS"));
-    },
-    get SIGFPE() {
-      return dart.const(new io.ProcessSignal._(8, "SIGFPE"));
-    },
-    get SIGKILL() {
-      return dart.const(new io.ProcessSignal._(9, "SIGKILL"));
-    },
-    get SIGUSR1() {
-      return dart.const(new io.ProcessSignal._(10, "SIGUSR1"));
-    },
-    get SIGSEGV() {
-      return dart.const(new io.ProcessSignal._(11, "SIGSEGV"));
-    },
-    get SIGUSR2() {
-      return dart.const(new io.ProcessSignal._(12, "SIGUSR2"));
-    },
-    get SIGPIPE() {
-      return dart.const(new io.ProcessSignal._(13, "SIGPIPE"));
-    },
-    get SIGALRM() {
-      return dart.const(new io.ProcessSignal._(14, "SIGALRM"));
-    },
-    get SIGTERM() {
-      return dart.const(new io.ProcessSignal._(15, "SIGTERM"));
-    },
-    get SIGCHLD() {
-      return dart.const(new io.ProcessSignal._(17, "SIGCHLD"));
-    },
-    get SIGCONT() {
-      return dart.const(new io.ProcessSignal._(18, "SIGCONT"));
-    },
-    get SIGSTOP() {
-      return dart.const(new io.ProcessSignal._(19, "SIGSTOP"));
-    },
-    get SIGTSTP() {
-      return dart.const(new io.ProcessSignal._(20, "SIGTSTP"));
-    },
-    get SIGTTIN() {
-      return dart.const(new io.ProcessSignal._(21, "SIGTTIN"));
-    },
-    get SIGTTOU() {
-      return dart.const(new io.ProcessSignal._(22, "SIGTTOU"));
-    },
-    get SIGURG() {
-      return dart.const(new io.ProcessSignal._(23, "SIGURG"));
-    },
-    get SIGXCPU() {
-      return dart.const(new io.ProcessSignal._(24, "SIGXCPU"));
-    },
-    get SIGXFSZ() {
-      return dart.const(new io.ProcessSignal._(25, "SIGXFSZ"));
-    },
-    get SIGVTALRM() {
-      return dart.const(new io.ProcessSignal._(26, "SIGVTALRM"));
-    },
-    get SIGPROF() {
-      return dart.const(new io.ProcessSignal._(27, "SIGPROF"));
-    },
-    get SIGWINCH() {
-      return dart.const(new io.ProcessSignal._(28, "SIGWINCH"));
-    },
-    get SIGPOLL() {
-      return dart.const(new io.ProcessSignal._(29, "SIGPOLL"));
-    },
-    get SIGSYS() {
-      return dart.const(new io.ProcessSignal._(31, "SIGSYS"));
-    }
-  });
-  io.SignalException = class SignalException extends core.Object {
-    new(message, osError) {
-      if (osError === void 0) osError = null;
-      this.message = message;
-      this.osError = osError;
-    }
-    toString() {
-      let msg = "";
-      if (this.osError != null) {
-        msg = dart.str`, osError: ${this.osError}`;
-      }
-      return dart.str`SignalException: ${this.message}${msg}`;
-    }
-  };
-  io.SignalException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.SignalException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.SignalException, [core.String], [dart.dynamic])}),
-    fields: () => ({
-      message: core.String,
-      osError: dart.dynamic
-    })
-  });
-  io.ProcessException = class ProcessException extends core.Object {
-    new(executable, arguments$, message, errorCode) {
-      if (message === void 0) message = "";
-      if (errorCode === void 0) errorCode = 0;
-      this.executable = executable;
-      this.arguments = arguments$;
-      this.message = message;
-      this.errorCode = errorCode;
-    }
-    toString() {
-      let msg = this.message == null ? dart.str`OS error code: ${this.errorCode}` : this.message;
-      let args = this.arguments[dartx.join](' ');
-      return dart.str`ProcessException: ${msg}\n  Command: ${this.executable} ${args}`;
-    }
-  };
-  io.ProcessException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.ProcessException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.ProcessException, [core.String, ListOfString()], [core.String, core.int])}),
-    fields: () => ({
-      executable: core.String,
-      arguments: ListOfString(),
-      message: core.String,
-      errorCode: core.int
-    })
-  });
-  const _detachRaw = Symbol('_detachRaw');
-  io.SecureSocket = class SecureSocket extends core.Object {
-    static _(rawSocket) {
-      dart.throw(new core.UnsupportedError("SecureSocket constructor"));
-    }
-    static connect(host, port, opts) {
-      let context = opts && 'context' in opts ? opts.context : null;
-      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      return io.RawSecureSocket.connect(host, port, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}).then(io.SecureSocket)(dart.fn(rawSocket => io.SecureSocket._(rawSocket), RawSecureSocketToSecureSocket()));
-    }
-    static secure(socket, opts) {
-      let host = opts && 'host' in opts ? opts.host : null;
-      let context = opts && 'context' in opts ? opts.context : null;
-      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
-      let completer = async.Completer.new();
-      dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
-        completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicToNull$()));
-      return FutureOfSecureSocket()._check(completer.future);
-    }
-    static secureServer(socket, context, opts) {
-      let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      let completer = async.Completer.new();
-      dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
-        completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicToNull$()));
-      return FutureOfSecureSocket()._check(completer.future);
-    }
-  };
-  io.SecureSocket[dart.implements] = () => [io.Socket];
-  dart.setSignature(io.SecureSocket, {
-    constructors: () => ({_: dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])}),
-    statics: () => ({
-      connect: dart.definiteFunctionType(async.Future$(io.SecureSocket), [dart.dynamic, core.int], {context: io.SecurityContext, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
-      secure: dart.definiteFunctionType(async.Future$(io.SecureSocket), [io.Socket], {host: dart.dynamic, context: io.SecurityContext, onBadCertificate: X509CertificateTobool()}),
-      secureServer: dart.definiteFunctionType(async.Future$(io.SecureSocket), [io.Socket, io.SecurityContext], {bufferedData: ListOfint(), requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString()})
-    }),
-    names: ['connect', 'secure', 'secureServer']
-  });
-  io.SecureServerSocket = class SecureServerSocket extends async.Stream$(io.SecureSocket) {
-    _(socket) {
-      this[_socket] = socket;
-      super.new();
-    }
-    static bind(address, port, context, opts) {
-      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
-      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      let shared = opts && 'shared' in opts ? opts.shared : false;
-      return io.RawSecureServerSocket.bind(address, port, context, {backlog: backlog, v6Only: v6Only, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols, shared: shared}).then(io.SecureServerSocket)(dart.fn(serverSocket => new io.SecureServerSocket._(serverSocket), RawSecureServerSocketToSecureServerSocket()));
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_socket].map(io.SecureSocket)(dart.fn(rawSocket => io.SecureSocket._(rawSocket), RawSecureSocketToSecureSocket())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    get port() {
-      return this[_socket].port;
-    }
-    get address() {
-      return this[_socket].address;
-    }
-    close() {
-      return this[_socket].close().then(io.SecureServerSocket)(dart.fn(_ => this, RawSecureServerSocketToSecureServerSocket()));
-    }
-    set [_owner](owner) {
-      this[_socket][_owner] = owner;
-    }
-  };
-  dart.addSimpleTypeTests(io.SecureServerSocket);
-  dart.defineNamedConstructor(io.SecureServerSocket, '_');
-  dart.setSignature(io.SecureServerSocket, {
-    constructors: () => ({_: dart.definiteFunctionType(io.SecureServerSocket, [io.RawSecureServerSocket])}),
-    fields: () => ({[_socket]: io.RawSecureServerSocket}),
-    getters: () => ({
-      port: dart.definiteFunctionType(core.int, []),
-      address: dart.definiteFunctionType(io.InternetAddress, [])
-    }),
-    setters: () => ({[_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic])}),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(io.SecureSocket), [SecureSocketTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      close: dart.definiteFunctionType(async.Future$(io.SecureServerSocket), [])
-    }),
-    statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.SecureServerSocket), [dart.dynamic, core.int, io.SecurityContext], {backlog: core.int, v6Only: core.bool, requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString(), shared: core.bool})}),
-    names: ['bind']
-  });
-  const _onSubscriptionStateChange = Symbol('_onSubscriptionStateChange');
-  const _onPauseStateChange = Symbol('_onPauseStateChange');
-  io.RawSecureSocket = class RawSecureSocket extends core.Object {
-    static connect(host, port, opts) {
-      let context = opts && 'context' in opts ? opts.context : null;
-      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      io._RawSecureSocket._verifyFields(host, port, false, false, false, onBadCertificate);
-      return io.RawSocket.connect(host, port).then(io.RawSecureSocket)(dart.fn(socket => io.RawSecureSocket.secure(socket, {context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols}), RawSocketToFutureOfRawSecureSocket()));
-    }
-    static secure(socket, opts) {
-      let subscription = opts && 'subscription' in opts ? opts.subscription : null;
-      let host = opts && 'host' in opts ? opts.host : null;
-      let context = opts && 'context' in opts ? opts.context : null;
-      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      socket.readEventsEnabled = false;
-      socket.writeEventsEnabled = false;
-      return io._RawSecureSocket.connect(host != null ? host : socket.address.host, socket.port, {is_server: false, socket: socket, subscription: subscription, context: context, onBadCertificate: onBadCertificate, supportedProtocols: supportedProtocols});
-    }
-    static secureServer(socket, context, opts) {
-      let subscription = opts && 'subscription' in opts ? opts.subscription : null;
-      let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      socket.readEventsEnabled = false;
-      socket.writeEventsEnabled = false;
-      return io._RawSecureSocket.connect(socket.address, socket.remotePort, {context: context, is_server: true, socket: socket, subscription: subscription, bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols});
-    }
-  };
-  io.RawSecureSocket[dart.implements] = () => [io.RawSocket];
-  dart.setSignature(io.RawSecureSocket, {
-    statics: () => ({
-      connect: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), [dart.dynamic, core.int], {context: io.SecurityContext, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
-      secure: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), [io.RawSocket], {subscription: async.StreamSubscription, host: dart.dynamic, context: io.SecurityContext, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
-      secureServer: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), [io.RawSocket, io.SecurityContext], {subscription: async.StreamSubscription, bufferedData: ListOfint(), requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString()})
-    }),
-    names: ['connect', 'secure', 'secureServer']
-  });
-  io.RawSecureServerSocket = class RawSecureServerSocket extends async.Stream$(io.RawSecureSocket) {
-    _(socket, context, requestClientCertificate, requireClientCertificate, supportedProtocols) {
-      this[_socket] = socket;
-      this[_context] = context;
-      this.requestClientCertificate = requestClientCertificate;
-      this.requireClientCertificate = requireClientCertificate;
-      this.supportedProtocols = supportedProtocols;
-      this[_controller$0] = null;
-      this[_subscription$] = null;
-      this[_closed] = false;
-      super.new();
-      this[_controller$0] = StreamControllerOfRawSecureSocket().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
-    }
-    static bind(address, port, context, opts) {
-      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
-      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      let shared = opts && 'shared' in opts ? opts.shared : false;
-      return io.RawServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io.RawSecureServerSocket)(dart.fn(serverSocket => new io.RawSecureServerSocket._(serverSocket, context, requestClientCertificate, requireClientCertificate, supportedProtocols), RawServerSocketToRawSecureServerSocket()));
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    get port() {
-      return this[_socket].port;
-    }
-    get address() {
-      return this[_socket].address;
-    }
-    close() {
-      this[_closed] = true;
-      return this[_socket].close().then(io.RawSecureServerSocket)(dart.fn(_ => this, RawServerSocketToRawSecureServerSocket()));
-    }
-    [_onData$](connection) {
-      let remotePort = null;
-      try {
-        remotePort = connection.remotePort;
-      } catch (e) {
-        return;
-      }
 
-      io._RawSecureSocket.connect(connection.address, core.int._check(remotePort), {context: this[_context], is_server: true, socket: connection, requestClientCertificate: this.requestClientCertificate, requireClientCertificate: this.requireClientCertificate, supportedProtocols: this.supportedProtocols}).then(dart.dynamic)(dart.fn(secureConnection => {
-        if (dart.test(this[_closed])) {
-          secureConnection.close();
-        } else {
-          this[_controller$0].add(secureConnection);
-        }
-      }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
-        if (!dart.test(this[_closed])) {
-          this[_controller$0].addError(e, core.StackTrace._check(s));
-        }
-      }, dynamicAnddynamicToNull()));
-    }
-    [_onPauseStateChange]() {
-      if (dart.test(this[_controller$0].isPaused)) {
-        this[_subscription$].pause();
+    io._RawSecureSocket.connect(connection.address, core.int._check(remotePort), {context: this[_context], is_server: true, socket: connection, requestClientCertificate: this.requestClientCertificate, requireClientCertificate: this.requireClientCertificate, supportedProtocols: this.supportedProtocols}).then(dart.dynamic)(dart.fn(secureConnection => {
+      if (dart.test(this[_closed])) {
+        secureConnection.close();
       } else {
-        this[_subscription$].resume();
+        this[_controller$0].add(secureConnection);
       }
-    }
-    [_onSubscriptionStateChange]() {
-      if (dart.test(this[_controller$0].hasListener)) {
-        this[_subscription$] = this[_socket].listen(dart.bind(this, _onData$), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this[_controller$0], 'close')});
-      } else {
-        this.close();
+    }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
+      if (!dart.test(this[_closed])) {
+        this[_controller$0].addError(e, core.StackTrace._check(s));
       }
+    }, dynamicAnddynamicToNull()));
+  }
+  [_onPauseStateChange]() {
+    if (dart.test(this[_controller$0].isPaused)) {
+      this[_subscription$].pause();
+    } else {
+      this[_subscription$].resume();
     }
-    set [_owner](owner) {
-      dart.dput(this[_socket], _owner, owner);
+  }
+  [_onSubscriptionStateChange]() {
+    if (dart.test(this[_controller$0].hasListener)) {
+      this[_subscription$] = this[_socket].listen(dart.bind(this, _onData$), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this[_controller$0], 'close')});
+    } else {
+      this.close();
     }
-  };
-  dart.addSimpleTypeTests(io.RawSecureServerSocket);
-  dart.defineNamedConstructor(io.RawSecureServerSocket, '_');
-  dart.setSignature(io.RawSecureServerSocket, {
-    constructors: () => ({_: dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket, io.SecurityContext, core.bool, core.bool, ListOfString()])}),
-    fields: () => ({
-      [_socket]: io.RawServerSocket,
-      [_controller$0]: StreamControllerOfRawSecureSocket(),
-      [_subscription$]: StreamSubscriptionOfRawSocket(),
-      [_context]: io.SecurityContext,
-      requestClientCertificate: core.bool,
-      requireClientCertificate: core.bool,
-      supportedProtocols: ListOfString(),
-      [_closed]: core.bool
-    }),
-    getters: () => ({
-      port: dart.definiteFunctionType(core.int, []),
-      address: dart.definiteFunctionType(io.InternetAddress, [])
-    }),
-    setters: () => ({[_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic])}),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(io.RawSecureSocket), [RawSecureSocketTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      close: dart.definiteFunctionType(async.Future$(io.RawSecureServerSocket), []),
-      [_onData$]: dart.definiteFunctionType(dart.void, [io.RawSocket]),
-      [_onPauseStateChange]: dart.definiteFunctionType(dart.void, []),
-      [_onSubscriptionStateChange]: dart.definiteFunctionType(dart.void, [])
-    }),
-    statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.RawSecureServerSocket), [dart.dynamic, core.int, io.SecurityContext], {backlog: core.int, v6Only: core.bool, requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString(), shared: core.bool})}),
-    names: ['bind']
-  });
-  io.X509Certificate = class X509Certificate extends core.Object {
-    static _() {
-      dart.throw(new core.UnsupportedError("X509Certificate constructor"));
+  }
+  set [_owner](owner) {
+    dart.dput(this[_socket], _owner, owner);
+  }
+};
+dart.addSimpleTypeTests(io.RawSecureServerSocket);
+dart.defineNamedConstructor(io.RawSecureServerSocket, '_');
+dart.setSignature(io.RawSecureServerSocket, {
+  constructors: () => ({_: dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket, io.SecurityContext, core.bool, core.bool, ListOfString()])}),
+  fields: () => ({
+    [_socket]: io.RawServerSocket,
+    [_controller$0]: StreamControllerOfRawSecureSocket(),
+    [_subscription$]: StreamSubscriptionOfRawSocket(),
+    [_context]: io.SecurityContext,
+    requestClientCertificate: core.bool,
+    requireClientCertificate: core.bool,
+    supportedProtocols: ListOfString(),
+    [_closed]: core.bool
+  }),
+  getters: () => ({
+    port: dart.definiteFunctionType(core.int, []),
+    address: dart.definiteFunctionType(io.InternetAddress, [])
+  }),
+  setters: () => ({[_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic])}),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(io.RawSecureSocket), [RawSecureSocketTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    close: dart.definiteFunctionType(async.Future$(io.RawSecureServerSocket), []),
+    [_onData$]: dart.definiteFunctionType(dart.void, [io.RawSocket]),
+    [_onPauseStateChange]: dart.definiteFunctionType(dart.void, []),
+    [_onSubscriptionStateChange]: dart.definiteFunctionType(dart.void, [])
+  }),
+  statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.RawSecureServerSocket), [dart.dynamic, core.int, io.SecurityContext], {backlog: core.int, v6Only: core.bool, requestClientCertificate: core.bool, requireClientCertificate: core.bool, supportedProtocols: ListOfString(), shared: core.bool})}),
+  names: ['bind']
+});
+io.X509Certificate = class X509Certificate extends core.Object {
+  static _() {
+    dart.throw(new core.UnsupportedError("X509Certificate constructor"));
+  }
+};
+dart.setSignature(io.X509Certificate, {
+  constructors: () => ({_: dart.definiteFunctionType(io.X509Certificate, [])})
+});
+io._FilterStatus = class _FilterStatus extends core.Object {
+  new() {
+    this.progress = false;
+    this.readEmpty = true;
+    this.writeEmpty = true;
+    this.readPlaintextNoLongerEmpty = false;
+    this.writePlaintextNoLongerFull = false;
+    this.readEncryptedNoLongerFull = false;
+    this.writeEncryptedNoLongerEmpty = false;
+  }
+};
+dart.setSignature(io._FilterStatus, {
+  constructors: () => ({new: dart.definiteFunctionType(io._FilterStatus, [])}),
+  fields: () => ({
+    progress: core.bool,
+    readEmpty: core.bool,
+    writeEmpty: core.bool,
+    readPlaintextNoLongerEmpty: core.bool,
+    writePlaintextNoLongerFull: core.bool,
+    readEncryptedNoLongerFull: core.bool,
+    writeEncryptedNoLongerEmpty: core.bool
+  })
+});
+const _handshakeComplete = Symbol('_handshakeComplete');
+const _status = Symbol('_status');
+const _filterStatus = Symbol('_filterStatus');
+const _secureFilter = Symbol('_secureFilter');
+const _bufferedData = Symbol('_bufferedData');
+const _bufferedDataIndex = Symbol('_bufferedDataIndex');
+const _writeEventsEnabled = Symbol('_writeEventsEnabled');
+const _readEventsEnabled = Symbol('_readEventsEnabled');
+const _pendingReadEvent = Symbol('_pendingReadEvent');
+const _socketClosedRead = Symbol('_socketClosedRead');
+const _socketClosedWrite = Symbol('_socketClosedWrite');
+const _closedRead = Symbol('_closedRead');
+const _closedWrite = Symbol('_closedWrite');
+const _connectPending = Symbol('_connectPending');
+const _filterPending = Symbol('_filterPending');
+const _filterActive = Symbol('_filterActive');
+const _selectedProtocol = Symbol('_selectedProtocol');
+const _secureHandshakeCompleteHandler = Symbol('_secureHandshakeCompleteHandler');
+const _onBadCertificateWrapper = Symbol('_onBadCertificateWrapper');
+const _eventDispatcher = Symbol('_eventDispatcher');
+const _doneHandler = Symbol('_doneHandler');
+const _secureHandshake = Symbol('_secureHandshake');
+const _sendWriteEvent = Symbol('_sendWriteEvent');
+const _completeCloseCompleter = Symbol('_completeCloseCompleter');
+const _close$0 = Symbol('_close');
+const _scheduleReadEvent = Symbol('_scheduleReadEvent');
+const _scheduleFilter = Symbol('_scheduleFilter');
+const _readHandler = Symbol('_readHandler');
+const _writeHandler = Symbol('_writeHandler');
+const _closeHandler = Symbol('_closeHandler');
+const _readSocket = Symbol('_readSocket');
+const _writeSocket = Symbol('_writeSocket');
+const _tryFilter = Symbol('_tryFilter');
+const _pushAllFilterStages = Symbol('_pushAllFilterStages');
+const _readSocketOrBufferedData = Symbol('_readSocketOrBufferedData');
+const _sendReadEvent = Symbol('_sendReadEvent');
+let const$75;
+io.RawSocketEvent = class RawSocketEvent extends core.Object {
+  _(value) {
+    this[_value$1] = value;
+  }
+  toString() {
+    return (const$75 || (const$75 = dart.constList(['RawSocketEvent:READ', 'RawSocketEvent:WRITE', 'RawSocketEvent:READ_CLOSED', 'RawSocketEvent:CLOSED'], core.String)))[dartx._get](this[_value$1]);
+  }
+};
+dart.defineNamedConstructor(io.RawSocketEvent, '_');
+dart.setSignature(io.RawSocketEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(io.RawSocketEvent, [core.int])}),
+  fields: () => ({[_value$1]: core.int}),
+  sfields: () => ({
+    READ: io.RawSocketEvent,
+    WRITE: io.RawSocketEvent,
+    READ_CLOSED: io.RawSocketEvent,
+    CLOSED: io.RawSocketEvent
+  })
+});
+dart.defineLazy(io.RawSocketEvent, {
+  get READ() {
+    return dart.const(new io.RawSocketEvent._(0));
+  },
+  get WRITE() {
+    return dart.const(new io.RawSocketEvent._(1));
+  },
+  get READ_CLOSED() {
+    return dart.const(new io.RawSocketEvent._(2));
+  },
+  get CLOSED() {
+    return dart.const(new io.RawSocketEvent._(3));
+  }
+});
+io._RawSecureSocket = class _RawSecureSocket extends async.Stream$(io.RawSocketEvent) {
+  static _isBufferEncrypted(identifier) {
+    return dart.notNull(identifier) >= dart.notNull(io._RawSecureSocket.READ_ENCRYPTED);
+  }
+  static connect(host, requestedPort, opts) {
+    let is_server = opts && 'is_server' in opts ? opts.is_server : null;
+    let context = opts && 'context' in opts ? opts.context : null;
+    let socket = opts && 'socket' in opts ? opts.socket : null;
+    let subscription = opts && 'subscription' in opts ? opts.subscription : null;
+    let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
+    let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
+    let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
+    io._RawSecureSocket._verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate);
+    if (io.InternetAddress.is(host)) host = dart.dload(host, 'host');
+    let address = socket.address;
+    if (host != null) {
+      address = io.InternetAddress._cloneWithNewHost(address, core.String._check(host));
     }
-  };
-  dart.setSignature(io.X509Certificate, {
-    constructors: () => ({_: dart.definiteFunctionType(io.X509Certificate, [])})
-  });
-  io._FilterStatus = class _FilterStatus extends core.Object {
-    new() {
-      this.progress = false;
-      this.readEmpty = true;
-      this.writeEmpty = true;
-      this.readPlaintextNoLongerEmpty = false;
-      this.writePlaintextNoLongerFull = false;
-      this.readEncryptedNoLongerFull = false;
-      this.writeEncryptedNoLongerEmpty = false;
+    return new io._RawSecureSocket(address, requestedPort, is_server, context, socket, StreamSubscriptionOfRawSocketEvent()._check(subscription), bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols)[_handshakeComplete].future;
+  }
+  new(address, requestedPort, is_server, context, socket, socketSubscription, bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols) {
+    this[_handshakeComplete] = CompleterOf_RawSecureSocket().new();
+    this[_status] = io._RawSecureSocket.HANDSHAKE;
+    this[_closeCompleter] = async.Completer.new();
+    this[_filterStatus] = new io._FilterStatus();
+    this[_secureFilter] = io._SecureFilter.new();
+    this.address = address;
+    this.is_server = is_server;
+    this.context = context;
+    this[_socket] = socket;
+    this[_socketSubscription] = socketSubscription;
+    this[_bufferedData] = bufferedData;
+    this.requestClientCertificate = requestClientCertificate;
+    this.requireClientCertificate = requireClientCertificate;
+    this.onBadCertificate = onBadCertificate;
+    this[_controller$0] = null;
+    this[_stream$] = null;
+    this[_bufferedDataIndex] = 0;
+    this[_writeEventsEnabled] = true;
+    this[_readEventsEnabled] = true;
+    this[_pauseCount$] = 0;
+    this[_pendingReadEvent] = false;
+    this[_socketClosedRead] = false;
+    this[_socketClosedWrite] = false;
+    this[_closedRead] = false;
+    this[_closedWrite] = false;
+    this[_connectPending] = true;
+    this[_filterPending] = false;
+    this[_filterActive] = false;
+    this[_selectedProtocol] = null;
+    super.new();
+    if (this.context == null) {
+      this.context = io.SecurityContext.defaultContext;
     }
-  };
-  dart.setSignature(io._FilterStatus, {
-    constructors: () => ({new: dart.definiteFunctionType(io._FilterStatus, [])}),
-    fields: () => ({
-      progress: core.bool,
-      readEmpty: core.bool,
-      writeEmpty: core.bool,
-      readPlaintextNoLongerEmpty: core.bool,
-      writePlaintextNoLongerFull: core.bool,
-      readEncryptedNoLongerFull: core.bool,
-      writeEncryptedNoLongerEmpty: core.bool
-    })
-  });
-  const _handshakeComplete = Symbol('_handshakeComplete');
-  const _status = Symbol('_status');
-  const _filterStatus = Symbol('_filterStatus');
-  const _secureFilter = Symbol('_secureFilter');
-  const _bufferedData = Symbol('_bufferedData');
-  const _bufferedDataIndex = Symbol('_bufferedDataIndex');
-  const _writeEventsEnabled = Symbol('_writeEventsEnabled');
-  const _readEventsEnabled = Symbol('_readEventsEnabled');
-  const _pendingReadEvent = Symbol('_pendingReadEvent');
-  const _socketClosedRead = Symbol('_socketClosedRead');
-  const _socketClosedWrite = Symbol('_socketClosedWrite');
-  const _closedRead = Symbol('_closedRead');
-  const _closedWrite = Symbol('_closedWrite');
-  const _connectPending = Symbol('_connectPending');
-  const _filterPending = Symbol('_filterPending');
-  const _filterActive = Symbol('_filterActive');
-  const _selectedProtocol = Symbol('_selectedProtocol');
-  const _secureHandshakeCompleteHandler = Symbol('_secureHandshakeCompleteHandler');
-  const _onBadCertificateWrapper = Symbol('_onBadCertificateWrapper');
-  const _eventDispatcher = Symbol('_eventDispatcher');
-  const _doneHandler = Symbol('_doneHandler');
-  const _secureHandshake = Symbol('_secureHandshake');
-  const _sendWriteEvent = Symbol('_sendWriteEvent');
-  const _completeCloseCompleter = Symbol('_completeCloseCompleter');
-  const _close$0 = Symbol('_close');
-  const _scheduleReadEvent = Symbol('_scheduleReadEvent');
-  const _scheduleFilter = Symbol('_scheduleFilter');
-  const _readHandler = Symbol('_readHandler');
-  const _writeHandler = Symbol('_writeHandler');
-  const _closeHandler = Symbol('_closeHandler');
-  const _readSocket = Symbol('_readSocket');
-  const _writeSocket = Symbol('_writeSocket');
-  const _tryFilter = Symbol('_tryFilter');
-  const _pushAllFilterStages = Symbol('_pushAllFilterStages');
-  const _readSocketOrBufferedData = Symbol('_readSocketOrBufferedData');
-  const _sendReadEvent = Symbol('_sendReadEvent');
-  let const$75;
-  io.RawSocketEvent = class RawSocketEvent extends core.Object {
-    _(value) {
-      this[_value$1] = value;
+    this[_controller$0] = StreamControllerOfRawSocketEvent().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
+    this[_stream$] = this[_controller$0].stream;
+    this[_secureFilter].init();
+    this[_secureFilter].registerHandshakeCompleteCallback(dart.bind(this, _secureHandshakeCompleteHandler));
+    if (this.onBadCertificate != null) {
+      this[_secureFilter].registerBadCertificateCallback(dart.bind(this, _onBadCertificateWrapper));
     }
-    toString() {
-      return (const$75 || (const$75 = dart.constList(['RawSocketEvent:READ', 'RawSocketEvent:WRITE', 'RawSocketEvent:READ_CLOSED', 'RawSocketEvent:CLOSED'], core.String)))[dartx._get](this[_value$1]);
-    }
-  };
-  dart.defineNamedConstructor(io.RawSocketEvent, '_');
-  dart.setSignature(io.RawSocketEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(io.RawSocketEvent, [core.int])}),
-    fields: () => ({[_value$1]: core.int}),
-    sfields: () => ({
-      READ: io.RawSocketEvent,
-      WRITE: io.RawSocketEvent,
-      READ_CLOSED: io.RawSocketEvent,
-      CLOSED: io.RawSocketEvent
-    })
-  });
-  dart.defineLazy(io.RawSocketEvent, {
-    get READ() {
-      return dart.const(new io.RawSocketEvent._(0));
-    },
-    get WRITE() {
-      return dart.const(new io.RawSocketEvent._(1));
-    },
-    get READ_CLOSED() {
-      return dart.const(new io.RawSocketEvent._(2));
-    },
-    get CLOSED() {
-      return dart.const(new io.RawSocketEvent._(3));
-    }
-  });
-  io._RawSecureSocket = class _RawSecureSocket extends async.Stream$(io.RawSocketEvent) {
-    static _isBufferEncrypted(identifier) {
-      return dart.notNull(identifier) >= dart.notNull(io._RawSecureSocket.READ_ENCRYPTED);
-    }
-    static connect(host, requestedPort, opts) {
-      let is_server = opts && 'is_server' in opts ? opts.is_server : null;
-      let context = opts && 'context' in opts ? opts.context : null;
-      let socket = opts && 'socket' in opts ? opts.socket : null;
-      let subscription = opts && 'subscription' in opts ? opts.subscription : null;
-      let bufferedData = opts && 'bufferedData' in opts ? opts.bufferedData : null;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
-      let onBadCertificate = opts && 'onBadCertificate' in opts ? opts.onBadCertificate : null;
-      let supportedProtocols = opts && 'supportedProtocols' in opts ? opts.supportedProtocols : null;
-      io._RawSecureSocket._verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate);
-      if (io.InternetAddress.is(host)) host = dart.dload(host, 'host');
-      let address = socket.address;
-      if (host != null) {
-        address = io.InternetAddress._cloneWithNewHost(address, core.String._check(host));
+    this[_socket].readEventsEnabled = true;
+    this[_socket].writeEventsEnabled = false;
+    if (this[_socketSubscription] == null) {
+      this[_socketSubscription] = this[_socket].listen(dart.bind(this, _eventDispatcher), {onError: dart.bind(this, _reportError), onDone: dart.bind(this, _doneHandler)});
+    } else {
+      if (dart.test(this[_socketSubscription].isPaused)) {
+        this[_socket].close();
+        dart.throw(new core.ArgumentError("Subscription passed to TLS upgrade is paused"));
       }
-      return new io._RawSecureSocket(address, requestedPort, is_server, context, socket, StreamSubscriptionOfRawSocketEvent()._check(subscription), bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols)[_handshakeComplete].future;
+      let s = this[_socket];
+      if (dart.test(dart.dload(dart.dload(s, _socket), 'closedReadEventSent'))) {
+        this[_eventDispatcher](io.RawSocketEvent.READ_CLOSED);
+      }
+      let _ = this[_socketSubscription];
+      _.onData(dart.bind(this, _eventDispatcher));
+      _.onError(dart.bind(this, _reportError));
+      _.onDone(dart.bind(this, _doneHandler));
     }
-    new(address, requestedPort, is_server, context, socket, socketSubscription, bufferedData, requestClientCertificate, requireClientCertificate, onBadCertificate, supportedProtocols) {
-      this[_handshakeComplete] = CompleterOf_RawSecureSocket().new();
-      this[_status] = io._RawSecureSocket.HANDSHAKE;
-      this[_closeCompleter] = async.Completer.new();
-      this[_filterStatus] = new io._FilterStatus();
-      this[_secureFilter] = io._SecureFilter.new();
-      this.address = address;
-      this.is_server = is_server;
-      this.context = context;
-      this[_socket] = socket;
-      this[_socketSubscription] = socketSubscription;
-      this[_bufferedData] = bufferedData;
-      this.requestClientCertificate = requestClientCertificate;
-      this.requireClientCertificate = requireClientCertificate;
-      this.onBadCertificate = onBadCertificate;
-      this[_controller$0] = null;
-      this[_stream$] = null;
-      this[_bufferedDataIndex] = 0;
-      this[_writeEventsEnabled] = true;
-      this[_readEventsEnabled] = true;
-      this[_pauseCount$] = 0;
-      this[_pendingReadEvent] = false;
-      this[_socketClosedRead] = false;
-      this[_socketClosedWrite] = false;
-      this[_closedRead] = false;
-      this[_closedWrite] = false;
-      this[_connectPending] = true;
-      this[_filterPending] = false;
-      this[_filterActive] = false;
-      this[_selectedProtocol] = null;
-      super.new();
-      if (this.context == null) {
-        this.context = io.SecurityContext.defaultContext;
-      }
-      this[_controller$0] = StreamControllerOfRawSocketEvent().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
-      this[_stream$] = this[_controller$0].stream;
-      this[_secureFilter].init();
-      this[_secureFilter].registerHandshakeCompleteCallback(dart.bind(this, _secureHandshakeCompleteHandler));
-      if (this.onBadCertificate != null) {
-        this[_secureFilter].registerBadCertificateCallback(dart.bind(this, _onBadCertificateWrapper));
-      }
-      this[_socket].readEventsEnabled = true;
-      this[_socket].writeEventsEnabled = false;
-      if (this[_socketSubscription] == null) {
-        this[_socketSubscription] = this[_socket].listen(dart.bind(this, _eventDispatcher), {onError: dart.bind(this, _reportError), onDone: dart.bind(this, _doneHandler)});
-      } else {
-        if (dart.test(this[_socketSubscription].isPaused)) {
-          this[_socket].close();
-          dart.throw(new core.ArgumentError("Subscription passed to TLS upgrade is paused"));
-        }
-        let s = this[_socket];
-        if (dart.test(dart.dload(dart.dload(s, _socket), 'closedReadEventSent'))) {
-          this[_eventDispatcher](io.RawSocketEvent.READ_CLOSED);
-        }
-        let _ = this[_socketSubscription];
-        _.onData(dart.bind(this, _eventDispatcher));
-        _.onError(dart.bind(this, _reportError));
-        _.onDone(dart.bind(this, _doneHandler));
-      }
-      try {
-        let encodedProtocols = io.SecurityContext._protocolsToLengthEncoding(supportedProtocols);
-        this[_secureFilter].connect(this.address.host, this.context, this.is_server, dart.test(this.requestClientCertificate) || dart.test(this.requireClientCertificate), this.requireClientCertificate, encodedProtocols);
-        this[_secureHandshake]();
-      } catch (e) {
-        let s = dart.stackTrace(e);
-        this[_reportError](e, s);
-      }
+    try {
+      let encodedProtocols = io.SecurityContext._protocolsToLengthEncoding(supportedProtocols);
+      this[_secureFilter].connect(this.address.host, this.context, this.is_server, dart.test(this.requestClientCertificate) || dart.test(this.requireClientCertificate), this.requireClientCertificate, encodedProtocols);
+      this[_secureHandshake]();
+    } catch (e) {
+      let s = dart.stackTrace(e);
+      this[_reportError](e, s);
+    }
 
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    this[_sendWriteEvent]();
+    return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  static _verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate) {
+    if (!(typeof host == 'string') && !io.InternetAddress.is(host)) {
+      dart.throw(new core.ArgumentError("host is not a String or an InternetAddress"));
     }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      this[_sendWriteEvent]();
-      return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    if (!(typeof requestedPort == 'number')) {
+      dart.throw(new core.ArgumentError("requestedPort is not an int"));
     }
-    static _verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate) {
-      if (!(typeof host == 'string') && !io.InternetAddress.is(host)) {
-        dart.throw(new core.ArgumentError("host is not a String or an InternetAddress"));
-      }
-      if (!(typeof requestedPort == 'number')) {
-        dart.throw(new core.ArgumentError("requestedPort is not an int"));
-      }
-      if (dart.notNull(requestedPort) < 0 || dart.notNull(requestedPort) > 65535) {
-        dart.throw(new core.ArgumentError("requestedPort is not in the range 0..65535"));
-      }
-      if (!(typeof requestClientCertificate == 'boolean')) {
-        dart.throw(new core.ArgumentError("requestClientCertificate is not a bool"));
-      }
-      if (!(typeof requireClientCertificate == 'boolean')) {
-        dart.throw(new core.ArgumentError("requireClientCertificate is not a bool"));
-      }
-      if (onBadCertificate != null && !core.Function.is(onBadCertificate)) {
-        dart.throw(new core.ArgumentError("onBadCertificate is not null or a Function"));
-      }
+    if (dart.notNull(requestedPort) < 0 || dart.notNull(requestedPort) > 65535) {
+      dart.throw(new core.ArgumentError("requestedPort is not in the range 0..65535"));
     }
-    get port() {
-      return this[_socket].port;
+    if (!(typeof requestClientCertificate == 'boolean')) {
+      dart.throw(new core.ArgumentError("requestClientCertificate is not a bool"));
     }
-    get remoteAddress() {
-      return this[_socket].remoteAddress;
+    if (!(typeof requireClientCertificate == 'boolean')) {
+      dart.throw(new core.ArgumentError("requireClientCertificate is not a bool"));
     }
-    get remotePort() {
-      return this[_socket].remotePort;
+    if (onBadCertificate != null && !core.Function.is(onBadCertificate)) {
+      dart.throw(new core.ArgumentError("onBadCertificate is not null or a Function"));
     }
-    set [_owner](owner) {
-      dart.dput(this[_socket], _owner, owner);
+  }
+  get port() {
+    return this[_socket].port;
+  }
+  get remoteAddress() {
+    return this[_socket].remoteAddress;
+  }
+  get remotePort() {
+    return this[_socket].remotePort;
+  }
+  set [_owner](owner) {
+    dart.dput(this[_socket], _owner, owner);
+  }
+  available() {
+    return this[_status] != io._RawSecureSocket.CONNECTED ? 0 : this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).length;
+  }
+  close() {
+    this.shutdown(io.SocketDirection.BOTH);
+    return FutureOfRawSecureSocket()._check(this[_closeCompleter].future);
+  }
+  [_completeCloseCompleter](dummy) {
+    if (dummy === void 0) dummy = null;
+    if (!dart.test(this[_closeCompleter].isCompleted)) this[_closeCompleter].complete(this);
+  }
+  [_close$0]() {
+    this[_closedWrite] = true;
+    this[_closedRead] = true;
+    if (this[_socket] != null) {
+      this[_socket].close().then(dart.void)(dart.bind(this, _completeCloseCompleter));
+    } else {
+      this[_completeCloseCompleter]();
     }
-    available() {
-      return this[_status] != io._RawSecureSocket.CONNECTED ? 0 : this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).length;
+    this[_socketClosedWrite] = true;
+    this[_socketClosedRead] = true;
+    if (!dart.test(this[_filterActive]) && this[_secureFilter] != null) {
+      this[_secureFilter].destroy();
+      this[_secureFilter] = null;
     }
-    close() {
-      this.shutdown(io.SocketDirection.BOTH);
-      return FutureOfRawSecureSocket()._check(this[_closeCompleter].future);
+    if (this[_socketSubscription] != null) {
+      this[_socketSubscription].cancel();
     }
-    [_completeCloseCompleter](dummy) {
-      if (dummy === void 0) dummy = null;
-      if (!dart.test(this[_closeCompleter].isCompleted)) this[_closeCompleter].complete(this);
-    }
-    [_close$0]() {
+    this[_controller$0].close();
+    this[_status] = io._RawSecureSocket.CLOSED;
+  }
+  shutdown(direction) {
+    if (dart.equals(direction, io.SocketDirection.SEND) || dart.equals(direction, io.SocketDirection.BOTH)) {
       this[_closedWrite] = true;
-      this[_closedRead] = true;
-      if (this[_socket] != null) {
-        this[_socket].close().then(dart.void)(dart.bind(this, _completeCloseCompleter));
-      } else {
-        this[_completeCloseCompleter]();
-      }
-      this[_socketClosedWrite] = true;
-      this[_socketClosedRead] = true;
-      if (!dart.test(this[_filterActive]) && this[_secureFilter] != null) {
-        this[_secureFilter].destroy();
-        this[_secureFilter] = null;
-      }
-      if (this[_socketSubscription] != null) {
-        this[_socketSubscription].cancel();
-      }
-      this[_controller$0].close();
-      this[_status] = io._RawSecureSocket.CLOSED;
-    }
-    shutdown(direction) {
-      if (dart.equals(direction, io.SocketDirection.SEND) || dart.equals(direction, io.SocketDirection.BOTH)) {
-        this[_closedWrite] = true;
-        if (dart.test(this[_filterStatus].writeEmpty)) {
-          this[_socket].shutdown(io.SocketDirection.SEND);
-          this[_socketClosedWrite] = true;
-          if (dart.test(this[_closedRead])) {
-            this[_close$0]();
-          }
-        }
-      }
-      if (dart.equals(direction, io.SocketDirection.RECEIVE) || dart.equals(direction, io.SocketDirection.BOTH)) {
-        this[_closedRead] = true;
-        this[_socketClosedRead] = true;
-        this[_socket].shutdown(io.SocketDirection.RECEIVE);
-        if (dart.test(this[_socketClosedWrite])) {
+      if (dart.test(this[_filterStatus].writeEmpty)) {
+        this[_socket].shutdown(io.SocketDirection.SEND);
+        this[_socketClosedWrite] = true;
+        if (dart.test(this[_closedRead])) {
           this[_close$0]();
         }
       }
     }
-    get writeEventsEnabled() {
-      return this[_writeEventsEnabled];
-    }
-    set writeEventsEnabled(value) {
-      this[_writeEventsEnabled] = value;
-      if (dart.test(value)) {
-        async.Timer.run(dart.fn(() => this[_sendWriteEvent](), VoidTovoid$()));
-      }
-    }
-    get readEventsEnabled() {
-      return this[_readEventsEnabled];
-    }
-    set readEventsEnabled(value) {
-      this[_readEventsEnabled] = value;
-      this[_scheduleReadEvent]();
-    }
-    read(length) {
-      if (length === void 0) length = null;
-      if (length != null && (!(typeof length == 'number') || dart.notNull(length) < 0)) {
-        dart.throw(new core.ArgumentError(dart.str`Invalid length parameter in SecureSocket.read (length: ${length})`));
-      }
-      if (dart.test(this[_closedRead])) {
-        dart.throw(new io.SocketException("Reading from a closed socket"));
-      }
-      if (this[_status] != io._RawSecureSocket.CONNECTED) {
-        return null;
-      }
-      let result = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).read(length);
-      this[_scheduleFilter]();
-      return result;
-    }
-    write(data, offset, bytes) {
-      if (offset === void 0) offset = null;
-      if (bytes === void 0) bytes = null;
-      if (bytes != null && (!(typeof bytes == 'number') || dart.notNull(bytes) < 0)) {
-        dart.throw(new core.ArgumentError(dart.str`Invalid bytes parameter in SecureSocket.read (bytes: ${bytes})`));
-      }
-      if (offset != null && (!(typeof offset == 'number') || dart.notNull(offset) < 0)) {
-        dart.throw(new core.ArgumentError(dart.str`Invalid offset parameter in SecureSocket.read (offset: ${offset})`));
-      }
-      if (dart.test(this[_closedWrite])) {
-        this[_controller$0].addError(new io.SocketException("Writing to a closed socket"));
-        return 0;
-      }
-      if (this[_status] != io._RawSecureSocket.CONNECTED) return 0;
-      if (offset == null) offset = 0;
-      if (bytes == null) bytes = dart.notNull(data[dartx.length]) - dart.notNull(offset);
-      let written = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).write(data, offset, bytes);
-      if (dart.notNull(written) > 0) {
-        this[_filterStatus].writeEmpty = false;
-      }
-      this[_scheduleFilter]();
-      return written;
-    }
-    get peerCertificate() {
-      return this[_secureFilter].peerCertificate;
-    }
-    get selectedProtocol() {
-      return this[_selectedProtocol];
-    }
-    [_onBadCertificateWrapper](certificate) {
-      if (this.onBadCertificate == null) return false;
-      let result = dart.dcall(this.onBadCertificate, certificate);
-      if (typeof result == 'boolean') return result;
-      dart.throw(new io.HandshakeException(dart.str`onBadCertificate callback returned non-boolean ${result}`));
-    }
-    setOption(option, enabled) {
-      if (this[_socket] == null) return false;
-      return this[_socket].setOption(option, enabled);
-    }
-    [_eventDispatcher](event) {
-      try {
-        if (dart.equals(event, io.RawSocketEvent.READ)) {
-          this[_readHandler]();
-        } else if (dart.equals(event, io.RawSocketEvent.WRITE)) {
-          this[_writeHandler]();
-        } else if (dart.equals(event, io.RawSocketEvent.READ_CLOSED)) {
-          this[_closeHandler]();
-        }
-      } catch (e) {
-        let stackTrace = dart.stackTrace(e);
-        this[_reportError](e, stackTrace);
-      }
-
-    }
-    [_readHandler]() {
-      this[_readSocket]();
-      this[_scheduleFilter]();
-    }
-    [_writeHandler]() {
-      this[_writeSocket]();
-      this[_scheduleFilter]();
-    }
-    [_doneHandler]() {
-      if (dart.test(this[_filterStatus].readEmpty)) {
+    if (dart.equals(direction, io.SocketDirection.RECEIVE) || dart.equals(direction, io.SocketDirection.BOTH)) {
+      this[_closedRead] = true;
+      this[_socketClosedRead] = true;
+      this[_socket].shutdown(io.SocketDirection.RECEIVE);
+      if (dart.test(this[_socketClosedWrite])) {
         this[_close$0]();
       }
     }
-    [_reportError](e, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      if (this[_status] == io._RawSecureSocket.CLOSED) {
-        return;
-      } else if (dart.test(this[_connectPending])) {
-        this[_handshakeComplete].completeError(e, stackTrace);
-      } else {
-        this[_controller$0].addError(e, stackTrace);
+  }
+  get writeEventsEnabled() {
+    return this[_writeEventsEnabled];
+  }
+  set writeEventsEnabled(value) {
+    this[_writeEventsEnabled] = value;
+    if (dart.test(value)) {
+      async.Timer.run(dart.fn(() => this[_sendWriteEvent](), VoidTovoid$()));
+    }
+  }
+  get readEventsEnabled() {
+    return this[_readEventsEnabled];
+  }
+  set readEventsEnabled(value) {
+    this[_readEventsEnabled] = value;
+    this[_scheduleReadEvent]();
+  }
+  read(length) {
+    if (length === void 0) length = null;
+    if (length != null && (!(typeof length == 'number') || dart.notNull(length) < 0)) {
+      dart.throw(new core.ArgumentError(dart.str`Invalid length parameter in SecureSocket.read (length: ${length})`));
+    }
+    if (dart.test(this[_closedRead])) {
+      dart.throw(new io.SocketException("Reading from a closed socket"));
+    }
+    if (this[_status] != io._RawSecureSocket.CONNECTED) {
+      return null;
+    }
+    let result = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).read(length);
+    this[_scheduleFilter]();
+    return result;
+  }
+  write(data, offset, bytes) {
+    if (offset === void 0) offset = null;
+    if (bytes === void 0) bytes = null;
+    if (bytes != null && (!(typeof bytes == 'number') || dart.notNull(bytes) < 0)) {
+      dart.throw(new core.ArgumentError(dart.str`Invalid bytes parameter in SecureSocket.read (bytes: ${bytes})`));
+    }
+    if (offset != null && (!(typeof offset == 'number') || dart.notNull(offset) < 0)) {
+      dart.throw(new core.ArgumentError(dart.str`Invalid offset parameter in SecureSocket.read (offset: ${offset})`));
+    }
+    if (dart.test(this[_closedWrite])) {
+      this[_controller$0].addError(new io.SocketException("Writing to a closed socket"));
+      return 0;
+    }
+    if (this[_status] != io._RawSecureSocket.CONNECTED) return 0;
+    if (offset == null) offset = 0;
+    if (bytes == null) bytes = dart.notNull(data[dartx.length]) - dart.notNull(offset);
+    let written = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).write(data, offset, bytes);
+    if (dart.notNull(written) > 0) {
+      this[_filterStatus].writeEmpty = false;
+    }
+    this[_scheduleFilter]();
+    return written;
+  }
+  get peerCertificate() {
+    return this[_secureFilter].peerCertificate;
+  }
+  get selectedProtocol() {
+    return this[_selectedProtocol];
+  }
+  [_onBadCertificateWrapper](certificate) {
+    if (this.onBadCertificate == null) return false;
+    let result = dart.dcall(this.onBadCertificate, certificate);
+    if (typeof result == 'boolean') return result;
+    dart.throw(new io.HandshakeException(dart.str`onBadCertificate callback returned non-boolean ${result}`));
+  }
+  setOption(option, enabled) {
+    if (this[_socket] == null) return false;
+    return this[_socket].setOption(option, enabled);
+  }
+  [_eventDispatcher](event) {
+    try {
+      if (dart.equals(event, io.RawSocketEvent.READ)) {
+        this[_readHandler]();
+      } else if (dart.equals(event, io.RawSocketEvent.WRITE)) {
+        this[_writeHandler]();
+      } else if (dart.equals(event, io.RawSocketEvent.READ_CLOSED)) {
+        this[_closeHandler]();
       }
+    } catch (e) {
+      let stackTrace = dart.stackTrace(e);
+      this[_reportError](e, stackTrace);
+    }
+
+  }
+  [_readHandler]() {
+    this[_readSocket]();
+    this[_scheduleFilter]();
+  }
+  [_writeHandler]() {
+    this[_writeSocket]();
+    this[_scheduleFilter]();
+  }
+  [_doneHandler]() {
+    if (dart.test(this[_filterStatus].readEmpty)) {
       this[_close$0]();
     }
-    [_closeHandler]() {
-      if (this[_status] == io._RawSecureSocket.CONNECTED) {
-        if (dart.test(this[_closedRead])) return;
-        this[_socketClosedRead] = true;
-        if (dart.test(this[_filterStatus].readEmpty)) {
-          this[_closedRead] = true;
-          this[_controller$0].add(io.RawSocketEvent.READ_CLOSED);
-          if (dart.test(this[_socketClosedWrite])) {
-            this[_close$0]();
-          }
-        } else {
-          this[_scheduleFilter]();
-        }
-      } else if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
-        this[_socketClosedRead] = true;
-        if (dart.test(this[_filterStatus].readEmpty)) {
-          this[_reportError](new io.HandshakeException('Connection terminated during handshake'), null);
-        } else {
-          this[_secureHandshake]();
-        }
-      }
+  }
+  [_reportError](e, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    if (this[_status] == io._RawSecureSocket.CLOSED) {
+      return;
+    } else if (dart.test(this[_connectPending])) {
+      this[_handshakeComplete].completeError(e, stackTrace);
+    } else {
+      this[_controller$0].addError(e, stackTrace);
     }
-    [_secureHandshake]() {
-      try {
-        this[_secureFilter].handshake();
-        this[_filterStatus].writeEmpty = false;
-        this[_readSocket]();
-        this[_writeSocket]();
+    this[_close$0]();
+  }
+  [_closeHandler]() {
+    if (this[_status] == io._RawSecureSocket.CONNECTED) {
+      if (dart.test(this[_closedRead])) return;
+      this[_socketClosedRead] = true;
+      if (dart.test(this[_filterStatus].readEmpty)) {
+        this[_closedRead] = true;
+        this[_controller$0].add(io.RawSocketEvent.READ_CLOSED);
+        if (dart.test(this[_socketClosedWrite])) {
+          this[_close$0]();
+        }
+      } else {
         this[_scheduleFilter]();
-      } catch (e) {
-        let stackTrace = dart.stackTrace(e);
-        this[_reportError](e, stackTrace);
       }
-
+    } else if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
+      this[_socketClosedRead] = true;
+      if (dart.test(this[_filterStatus].readEmpty)) {
+        this[_reportError](new io.HandshakeException('Connection terminated during handshake'), null);
+      } else {
+        this[_secureHandshake]();
+      }
     }
-    renegotiate(opts) {
-      let useSessionCache = opts && 'useSessionCache' in opts ? opts.useSessionCache : true;
-      let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
-      let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
-      if (this[_status] != io._RawSecureSocket.CONNECTED) {
-        dart.throw(new io.HandshakeException("Called renegotiate on a non-connected socket"));
-      }
-      this[_secureFilter].renegotiate(useSessionCache, requestClientCertificate, requireClientCertificate);
-      this[_status] = io._RawSecureSocket.HANDSHAKE;
+  }
+  [_secureHandshake]() {
+    try {
+      this[_secureFilter].handshake();
       this[_filterStatus].writeEmpty = false;
+      this[_readSocket]();
+      this[_writeSocket]();
       this[_scheduleFilter]();
+    } catch (e) {
+      let stackTrace = dart.stackTrace(e);
+      this[_reportError](e, stackTrace);
     }
-    [_secureHandshakeCompleteHandler]() {
-      this[_status] = io._RawSecureSocket.CONNECTED;
-      if (dart.test(this[_connectPending])) {
-        this[_connectPending] = false;
-        try {
-          this[_selectedProtocol] = this[_secureFilter].selectedProtocol();
-          async.Timer.run(dart.fn(() => this[_handshakeComplete].complete(this), VoidTovoid$()));
-        } catch (error) {
-          let stack = dart.stackTrace(error);
-          this[_handshakeComplete].completeError(error, stack);
-        }
 
-      }
+  }
+  renegotiate(opts) {
+    let useSessionCache = opts && 'useSessionCache' in opts ? opts.useSessionCache : true;
+    let requestClientCertificate = opts && 'requestClientCertificate' in opts ? opts.requestClientCertificate : false;
+    let requireClientCertificate = opts && 'requireClientCertificate' in opts ? opts.requireClientCertificate : false;
+    if (this[_status] != io._RawSecureSocket.CONNECTED) {
+      dart.throw(new io.HandshakeException("Called renegotiate on a non-connected socket"));
     }
-    [_onPauseStateChange]() {
-      if (dart.test(this[_controller$0].isPaused)) {
-        this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
-      } else {
-        this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
-        if (this[_pauseCount$] == 0) {
-          this[_scheduleReadEvent]();
-          this[_sendWriteEvent]();
-        }
+    this[_secureFilter].renegotiate(useSessionCache, requestClientCertificate, requireClientCertificate);
+    this[_status] = io._RawSecureSocket.HANDSHAKE;
+    this[_filterStatus].writeEmpty = false;
+    this[_scheduleFilter]();
+  }
+  [_secureHandshakeCompleteHandler]() {
+    this[_status] = io._RawSecureSocket.CONNECTED;
+    if (dart.test(this[_connectPending])) {
+      this[_connectPending] = false;
+      try {
+        this[_selectedProtocol] = this[_secureFilter].selectedProtocol();
+        async.Timer.run(dart.fn(() => this[_handshakeComplete].complete(this), VoidTovoid$()));
+      } catch (error) {
+        let stack = dart.stackTrace(error);
+        this[_handshakeComplete].completeError(error, stack);
       }
-      if (!dart.test(this[_socketClosedRead]) || !dart.test(this[_socketClosedWrite])) {
-        if (dart.test(this[_controller$0].isPaused)) {
-          this[_socketSubscription].pause();
-        } else {
-          this[_socketSubscription].resume();
-        }
-      }
+
     }
-    [_onSubscriptionStateChange]() {
-      if (dart.test(this[_controller$0].hasListener)) {
-      }
-    }
-    [_scheduleFilter]() {
-      this[_filterPending] = true;
-      this[_tryFilter]();
-    }
-    [_tryFilter]() {
-      if (this[_status] == io._RawSecureSocket.CLOSED) {
-        return;
-      }
-      if (dart.test(this[_filterPending]) && !dart.test(this[_filterActive])) {
-        this[_filterActive] = true;
-        this[_filterPending] = false;
-        this[_pushAllFilterStages]().then(dart.dynamic)(dart.fn(status => {
-          this[_filterStatus] = status;
-          this[_filterActive] = false;
-          if (this[_status] == io._RawSecureSocket.CLOSED) {
-            this[_secureFilter].destroy();
-            this[_secureFilter] = null;
-            return;
-          }
-          this[_socket].readEventsEnabled = true;
-          if (dart.test(this[_filterStatus].writeEmpty) && dart.test(this[_closedWrite]) && !dart.test(this[_socketClosedWrite])) {
-            this.shutdown(io.SocketDirection.SEND);
-            if (this[_status] == io._RawSecureSocket.CLOSED) {
-              return;
-            }
-          }
-          if (dart.test(this[_filterStatus].readEmpty) && dart.test(this[_socketClosedRead]) && !dart.test(this[_closedRead])) {
-            if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
-              this[_secureFilter].handshake();
-              if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
-                dart.throw(new io.HandshakeException('Connection terminated during handshake'));
-              }
-            }
-            this[_closeHandler]();
-          }
-          if (this[_status] == io._RawSecureSocket.CLOSED) {
-            return;
-          }
-          if (dart.test(this[_filterStatus].progress)) {
-            this[_filterPending] = true;
-            if (dart.test(this[_filterStatus].writeEncryptedNoLongerEmpty)) {
-              this[_writeSocket]();
-            }
-            if (dart.test(this[_filterStatus].writePlaintextNoLongerFull)) {
-              this[_sendWriteEvent]();
-            }
-            if (dart.test(this[_filterStatus].readEncryptedNoLongerFull)) {
-              this[_readSocket]();
-            }
-            if (dart.test(this[_filterStatus].readPlaintextNoLongerEmpty)) {
-              this[_scheduleReadEvent]();
-            }
-            if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
-              this[_secureHandshake]();
-            }
-          }
-          this[_tryFilter]();
-        }, _FilterStatusToNull())).catchError(dart.bind(this, _reportError));
-      }
-    }
-    [_readSocketOrBufferedData](bytes) {
-      if (this[_bufferedData] != null) {
-        if (dart.notNull(bytes) > dart.notNull(this[_bufferedData][dartx.length]) - dart.notNull(this[_bufferedDataIndex])) {
-          bytes = dart.notNull(this[_bufferedData][dartx.length]) - dart.notNull(this[_bufferedDataIndex]);
-        }
-        let result = this[_bufferedData][dartx.sublist](this[_bufferedDataIndex], dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes));
-        this[_bufferedDataIndex] = dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes);
-        if (this[_bufferedData][dartx.length] == this[_bufferedDataIndex]) {
-          this[_bufferedData] = null;
-        }
-        return result;
-      } else if (!dart.test(this[_socketClosedRead])) {
-        return this[_socket].read(bytes);
-      } else {
-        return null;
-      }
-    }
-    [_readSocket]() {
-      if (this[_status] == io._RawSecureSocket.CLOSED) return;
-      let buffer = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_ENCRYPTED);
-      if (dart.notNull(buffer.writeFromSource(dart.bind(this, _readSocketOrBufferedData))) > 0) {
-        this[_filterStatus].readEmpty = false;
-      } else {
-        this[_socket].readEventsEnabled = false;
-      }
-    }
-    [_writeSocket]() {
-      if (dart.test(this[_socketClosedWrite])) return;
-      let buffer = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_ENCRYPTED);
-      if (dart.test(buffer.readToSocket(this[_socket]))) {
-        this[_socket].writeEventsEnabled = true;
-      }
-    }
-    [_scheduleReadEvent]() {
-      if (!dart.test(this[_pendingReadEvent]) && dart.test(this[_readEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
-        this[_pendingReadEvent] = true;
-        async.Timer.run(dart.bind(this, _sendReadEvent));
-      }
-    }
-    [_sendReadEvent]() {
-      this[_pendingReadEvent] = false;
-      if (this[_status] != io._RawSecureSocket.CLOSED && dart.test(this[_readEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
-        this[_controller$0].add(io.RawSocketEvent.READ);
+  }
+  [_onPauseStateChange]() {
+    if (dart.test(this[_controller$0].isPaused)) {
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
+    } else {
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
+      if (this[_pauseCount$] == 0) {
         this[_scheduleReadEvent]();
+        this[_sendWriteEvent]();
       }
     }
-    [_sendWriteEvent]() {
-      if (!dart.test(this[_closedWrite]) && dart.test(this[_writeEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && dart.notNull(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).free) > 0) {
-        this[_writeEventsEnabled] = false;
-        this[_controller$0].add(io.RawSocketEvent.WRITE);
-      }
-    }
-    [_pushAllFilterStages]() {
-      let wasInHandshake = this[_status] != io._RawSecureSocket.CONNECTED;
-      let args = core.List.new(2 + dart.notNull(io._RawSecureSocket.NUM_BUFFERS) * 2);
-      args[dartx._set](0, this[_secureFilter][_pointer]());
-      args[dartx._set](1, wasInHandshake);
-      let bufs = this[_secureFilter].buffers;
-      for (let i = 0; i < dart.notNull(io._RawSecureSocket.NUM_BUFFERS); ++i) {
-        args[dartx._set](2 * i + 2, bufs[dartx._get](i).start);
-        args[dartx._set](2 * i + 3, bufs[dartx._get](i).end);
-      }
-      return io._IOService._dispatch(io._SSL_PROCESS_FILTER, args).then(io._FilterStatus)(dart.fn(response => {
-        if (dart.equals(dart.dload(response, 'length'), 2)) {
-          if (wasInHandshake) {
-            this[_reportError](new io.HandshakeException(dart.str`${dart.dindex(response, 1)} error ${dart.dindex(response, 0)}`), null);
-          } else {
-            this[_reportError](new io.TlsException(dart.str`${dart.dindex(response, 1)} error ${dart.dindex(response, 0)}`), null);
-          }
-        }
-        function start(index) {
-          return core.int._check(dart.dindex(response, 2 * dart.notNull(index)));
-        }
-        dart.fn(start, intToint());
-        function end(index) {
-          return core.int._check(dart.dindex(response, 2 * dart.notNull(index) + 1));
-        }
-        dart.fn(end, intToint());
-        let status = new io._FilterStatus();
-        status.writeEmpty = dart.test(bufs[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).isEmpty) && start(io._RawSecureSocket.WRITE_ENCRYPTED) == end(io._RawSecureSocket.WRITE_ENCRYPTED);
-        if (wasInHandshake) status.writeEmpty = false;
-        status.readEmpty = dart.test(bufs[dartx._get](io._RawSecureSocket.READ_ENCRYPTED).isEmpty) && start(io._RawSecureSocket.READ_PLAINTEXT) == end(io._RawSecureSocket.READ_PLAINTEXT);
-        let buffer = bufs[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT);
-        let new_start = start(io._RawSecureSocket.WRITE_PLAINTEXT);
-        if (new_start != buffer.start) {
-          status.progress = true;
-          if (buffer.free == 0) {
-            status.writePlaintextNoLongerFull = true;
-          }
-          buffer.start = new_start;
-        }
-        buffer = bufs[dartx._get](io._RawSecureSocket.READ_ENCRYPTED);
-        new_start = start(io._RawSecureSocket.READ_ENCRYPTED);
-        if (new_start != buffer.start) {
-          status.progress = true;
-          if (buffer.free == 0) {
-            status.readEncryptedNoLongerFull = true;
-          }
-          buffer.start = new_start;
-        }
-        buffer = bufs[dartx._get](io._RawSecureSocket.WRITE_ENCRYPTED);
-        let new_end = end(io._RawSecureSocket.WRITE_ENCRYPTED);
-        if (new_end != buffer.end) {
-          status.progress = true;
-          if (buffer.length == 0) {
-            status.writeEncryptedNoLongerEmpty = true;
-          }
-          buffer.end = new_end;
-        }
-        buffer = bufs[dartx._get](io._RawSecureSocket.READ_PLAINTEXT);
-        new_end = end(io._RawSecureSocket.READ_PLAINTEXT);
-        if (new_end != buffer.end) {
-          status.progress = true;
-          if (buffer.length == 0) {
-            status.readPlaintextNoLongerEmpty = true;
-          }
-          buffer.end = new_end;
-        }
-        return status;
-      }, dynamicTo_FilterStatus()));
-    }
-  };
-  dart.addSimpleTypeTests(io._RawSecureSocket);
-  io._RawSecureSocket[dart.implements] = () => [io.RawSecureSocket];
-  dart.setSignature(io._RawSecureSocket, {
-    constructors: () => ({new: dart.definiteFunctionType(io._RawSecureSocket, [io.InternetAddress, core.int, core.bool, io.SecurityContext, io.RawSocket, StreamSubscriptionOfRawSocketEvent(), ListOfint(), core.bool, core.bool, X509CertificateTodynamic(), ListOfString()])}),
-    fields: () => ({
-      [_socket]: io.RawSocket,
-      [_handshakeComplete]: CompleterOf_RawSecureSocket(),
-      [_controller$0]: StreamControllerOfRawSocketEvent(),
-      [_stream$]: StreamOfRawSocketEvent(),
-      [_socketSubscription]: StreamSubscriptionOfRawSocketEvent(),
-      [_bufferedData]: ListOfint(),
-      [_bufferedDataIndex]: core.int,
-      address: io.InternetAddress,
-      is_server: core.bool,
-      context: io.SecurityContext,
-      requestClientCertificate: core.bool,
-      requireClientCertificate: core.bool,
-      onBadCertificate: core.Function,
-      [_status]: core.int,
-      [_writeEventsEnabled]: core.bool,
-      [_readEventsEnabled]: core.bool,
-      [_pauseCount$]: core.int,
-      [_pendingReadEvent]: core.bool,
-      [_socketClosedRead]: core.bool,
-      [_socketClosedWrite]: core.bool,
-      [_closedRead]: core.bool,
-      [_closedWrite]: core.bool,
-      [_closeCompleter]: async.Completer,
-      [_filterStatus]: io._FilterStatus,
-      [_connectPending]: core.bool,
-      [_filterPending]: core.bool,
-      [_filterActive]: core.bool,
-      [_secureFilter]: io._SecureFilter,
-      [_selectedProtocol]: core.String
-    }),
-    getters: () => ({
-      port: dart.definiteFunctionType(core.int, []),
-      remoteAddress: dart.definiteFunctionType(io.InternetAddress, []),
-      remotePort: dart.definiteFunctionType(core.int, []),
-      writeEventsEnabled: dart.definiteFunctionType(core.bool, []),
-      readEventsEnabled: dart.definiteFunctionType(core.bool, []),
-      peerCertificate: dart.definiteFunctionType(io.X509Certificate, []),
-      selectedProtocol: dart.definiteFunctionType(core.String, [])
-    }),
-    setters: () => ({
-      [_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      writeEventsEnabled: dart.definiteFunctionType(dart.void, [core.bool]),
-      readEventsEnabled: dart.definiteFunctionType(dart.void, [core.bool])
-    }),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription$(io.RawSocketEvent), [RawSocketEventTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      available: dart.definiteFunctionType(core.int, []),
-      close: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), []),
-      [_completeCloseCompleter]: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
-      [_close$0]: dart.definiteFunctionType(dart.void, []),
-      shutdown: dart.definiteFunctionType(dart.void, [io.SocketDirection]),
-      read: dart.definiteFunctionType(core.List$(core.int), [], [core.int]),
-      write: dart.definiteFunctionType(core.int, [ListOfint()], [core.int, core.int]),
-      [_onBadCertificateWrapper]: dart.definiteFunctionType(core.bool, [io.X509Certificate]),
-      setOption: dart.definiteFunctionType(core.bool, [io.SocketOption, core.bool]),
-      [_eventDispatcher]: dart.definiteFunctionType(dart.void, [io.RawSocketEvent]),
-      [_readHandler]: dart.definiteFunctionType(dart.void, []),
-      [_writeHandler]: dart.definiteFunctionType(dart.void, []),
-      [_doneHandler]: dart.definiteFunctionType(dart.void, []),
-      [_reportError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-      [_closeHandler]: dart.definiteFunctionType(dart.void, []),
-      [_secureHandshake]: dart.definiteFunctionType(dart.void, []),
-      renegotiate: dart.definiteFunctionType(dart.void, [], {useSessionCache: core.bool, requestClientCertificate: core.bool, requireClientCertificate: core.bool}),
-      [_secureHandshakeCompleteHandler]: dart.definiteFunctionType(dart.void, []),
-      [_onPauseStateChange]: dart.definiteFunctionType(dart.void, []),
-      [_onSubscriptionStateChange]: dart.definiteFunctionType(dart.void, []),
-      [_scheduleFilter]: dart.definiteFunctionType(dart.void, []),
-      [_tryFilter]: dart.definiteFunctionType(dart.void, []),
-      [_readSocketOrBufferedData]: dart.definiteFunctionType(core.List$(core.int), [core.int]),
-      [_readSocket]: dart.definiteFunctionType(dart.void, []),
-      [_writeSocket]: dart.definiteFunctionType(dart.void, []),
-      [_scheduleReadEvent]: dart.definiteFunctionType(dart.dynamic, []),
-      [_sendReadEvent]: dart.definiteFunctionType(dart.dynamic, []),
-      [_sendWriteEvent]: dart.definiteFunctionType(dart.dynamic, []),
-      [_pushAllFilterStages]: dart.definiteFunctionType(async.Future$(io._FilterStatus), [])
-    }),
-    sfields: () => ({
-      HANDSHAKE: core.int,
-      CONNECTED: core.int,
-      CLOSED: core.int,
-      READ_PLAINTEXT: core.int,
-      WRITE_PLAINTEXT: core.int,
-      READ_ENCRYPTED: core.int,
-      WRITE_ENCRYPTED: core.int,
-      NUM_BUFFERS: core.int
-    }),
-    statics: () => ({
-      _isBufferEncrypted: dart.definiteFunctionType(core.bool, [core.int]),
-      connect: dart.definiteFunctionType(async.Future$(io._RawSecureSocket), [dart.dynamic, core.int], {is_server: core.bool, context: io.SecurityContext, socket: io.RawSocket, subscription: async.StreamSubscription, bufferedData: ListOfint(), requestClientCertificate: core.bool, requireClientCertificate: core.bool, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
-      _verifyFields: dart.definiteFunctionType(dart.void, [dart.dynamic, core.int, core.bool, core.bool, core.bool, core.Function])
-    }),
-    names: ['_isBufferEncrypted', 'connect', '_verifyFields']
-  });
-  io._RawSecureSocket.HANDSHAKE = 201;
-  io._RawSecureSocket.CONNECTED = 202;
-  io._RawSecureSocket.CLOSED = 203;
-  io._RawSecureSocket.READ_PLAINTEXT = 0;
-  io._RawSecureSocket.WRITE_PLAINTEXT = 1;
-  io._RawSecureSocket.READ_ENCRYPTED = 2;
-  io._RawSecureSocket.WRITE_ENCRYPTED = 3;
-  io._RawSecureSocket.NUM_BUFFERS = 4;
-  io._ExternalBuffer = class _ExternalBuffer extends core.Object {
-    new(size) {
-      this.size = size;
-      this.data = null;
-      this.start = null;
-      this.end = null;
-      this.start = core.int._check(this.end = core.int._check(dart.dsend(this.size, '~/', 2)));
-    }
-    advanceStart(bytes) {
-      dart.assert(dart.notNull(this.start) > dart.notNull(this.end) || dart.notNull(this.start) + dart.notNull(bytes) <= dart.notNull(this.end));
-      this.start = dart.notNull(this.start) + dart.notNull(bytes);
-      if (dart.notNull(this.start) >= dart.notNull(core.num._check(this.size))) {
-        this.start = dart.notNull(this.start) - dart.notNull(core.num._check(this.size));
-        dart.assert(dart.notNull(this.start) <= dart.notNull(this.end));
-        dart.assert(dart.notNull(this.start) < dart.notNull(core.num._check(this.size)));
-      }
-    }
-    advanceEnd(bytes) {
-      dart.assert(dart.notNull(this.start) <= dart.notNull(this.end) || dart.notNull(this.start) > dart.notNull(this.end) + dart.notNull(bytes));
-      this.end = dart.notNull(this.end) + dart.notNull(bytes);
-      if (dart.notNull(this.end) >= dart.notNull(core.num._check(this.size))) {
-        this.end = dart.notNull(this.end) - dart.notNull(core.num._check(this.size));
-        dart.assert(dart.notNull(this.end) < dart.notNull(this.start));
-        dart.assert(dart.notNull(this.end) < dart.notNull(core.num._check(this.size)));
-      }
-    }
-    get isEmpty() {
-      return this.end == this.start;
-    }
-    get length() {
-      return core.int._check(dart.notNull(this.start) > dart.notNull(this.end) ? dart.dsend(dart.dsend(this.size, '+', this.end), '-', this.start) : dart.notNull(this.end) - dart.notNull(this.start));
-    }
-    get linearLength() {
-      return core.int._check(dart.notNull(this.start) > dart.notNull(this.end) ? dart.dsend(this.size, '-', this.start) : dart.notNull(this.end) - dart.notNull(this.start));
-    }
-    get free() {
-      return core.int._check(dart.notNull(this.start) > dart.notNull(this.end) ? dart.notNull(this.start) - dart.notNull(this.end) - 1 : dart.dsend(dart.dsend(dart.dsend(this.size, '+', this.start), '-', this.end), '-', 1));
-    }
-    get linearFree() {
-      if (dart.notNull(this.start) > dart.notNull(this.end)) return dart.notNull(this.start) - dart.notNull(this.end) - 1;
-      if (this.start == 0) return core.int._check(dart.dsend(dart.dsend(this.size, '-', this.end), '-', 1));
-      return core.int._check(dart.dsend(this.size, '-', this.end));
-    }
-    read(bytes) {
-      if (bytes == null) {
-        bytes = this.length;
+    if (!dart.test(this[_socketClosedRead]) || !dart.test(this[_socketClosedWrite])) {
+      if (dart.test(this[_controller$0].isPaused)) {
+        this[_socketSubscription].pause();
       } else {
-        bytes = math.min(core.int)(bytes, this.length);
+        this[_socketSubscription].resume();
       }
-      if (bytes == 0) return null;
-      let result = typed_data.Uint8List.new(bytes);
-      let bytesRead = 0;
-      while (dart.notNull(bytesRead) < dart.notNull(bytes)) {
-        let toRead = math.min(core.int)(dart.notNull(bytes) - dart.notNull(bytesRead), this.linearLength);
-        result[dartx.setRange](bytesRead, dart.notNull(bytesRead) + dart.notNull(toRead), this.data, this.start);
-        this.advanceStart(toRead);
-        bytesRead = dart.notNull(bytesRead) + dart.notNull(toRead);
+    }
+  }
+  [_onSubscriptionStateChange]() {
+    if (dart.test(this[_controller$0].hasListener)) {
+    }
+  }
+  [_scheduleFilter]() {
+    this[_filterPending] = true;
+    this[_tryFilter]();
+  }
+  [_tryFilter]() {
+    if (this[_status] == io._RawSecureSocket.CLOSED) {
+      return;
+    }
+    if (dart.test(this[_filterPending]) && !dart.test(this[_filterActive])) {
+      this[_filterActive] = true;
+      this[_filterPending] = false;
+      this[_pushAllFilterStages]().then(dart.dynamic)(dart.fn(status => {
+        this[_filterStatus] = status;
+        this[_filterActive] = false;
+        if (this[_status] == io._RawSecureSocket.CLOSED) {
+          this[_secureFilter].destroy();
+          this[_secureFilter] = null;
+          return;
+        }
+        this[_socket].readEventsEnabled = true;
+        if (dart.test(this[_filterStatus].writeEmpty) && dart.test(this[_closedWrite]) && !dart.test(this[_socketClosedWrite])) {
+          this.shutdown(io.SocketDirection.SEND);
+          if (this[_status] == io._RawSecureSocket.CLOSED) {
+            return;
+          }
+        }
+        if (dart.test(this[_filterStatus].readEmpty) && dart.test(this[_socketClosedRead]) && !dart.test(this[_closedRead])) {
+          if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
+            this[_secureFilter].handshake();
+            if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
+              dart.throw(new io.HandshakeException('Connection terminated during handshake'));
+            }
+          }
+          this[_closeHandler]();
+        }
+        if (this[_status] == io._RawSecureSocket.CLOSED) {
+          return;
+        }
+        if (dart.test(this[_filterStatus].progress)) {
+          this[_filterPending] = true;
+          if (dart.test(this[_filterStatus].writeEncryptedNoLongerEmpty)) {
+            this[_writeSocket]();
+          }
+          if (dart.test(this[_filterStatus].writePlaintextNoLongerFull)) {
+            this[_sendWriteEvent]();
+          }
+          if (dart.test(this[_filterStatus].readEncryptedNoLongerFull)) {
+            this[_readSocket]();
+          }
+          if (dart.test(this[_filterStatus].readPlaintextNoLongerEmpty)) {
+            this[_scheduleReadEvent]();
+          }
+          if (this[_status] == io._RawSecureSocket.HANDSHAKE) {
+            this[_secureHandshake]();
+          }
+        }
+        this[_tryFilter]();
+      }, _FilterStatusToNull())).catchError(dart.bind(this, _reportError));
+    }
+  }
+  [_readSocketOrBufferedData](bytes) {
+    if (this[_bufferedData] != null) {
+      if (dart.notNull(bytes) > dart.notNull(this[_bufferedData][dartx.length]) - dart.notNull(this[_bufferedDataIndex])) {
+        bytes = dart.notNull(this[_bufferedData][dartx.length]) - dart.notNull(this[_bufferedDataIndex]);
+      }
+      let result = this[_bufferedData][dartx.sublist](this[_bufferedDataIndex], dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes));
+      this[_bufferedDataIndex] = dart.notNull(this[_bufferedDataIndex]) + dart.notNull(bytes);
+      if (this[_bufferedData][dartx.length] == this[_bufferedDataIndex]) {
+        this[_bufferedData] = null;
       }
       return result;
+    } else if (!dart.test(this[_socketClosedRead])) {
+      return this[_socket].read(bytes);
+    } else {
+      return null;
     }
-    write(inputData, offset, bytes) {
-      if (dart.notNull(bytes) > dart.notNull(this.free)) {
-        bytes = this.free;
-      }
-      let written = 0;
-      let toWrite = math.min(core.int)(bytes, this.linearFree);
-      while (dart.notNull(toWrite) > 0) {
-        this.data[dartx.setRange](this.end, dart.notNull(this.end) + dart.notNull(toWrite), inputData, offset);
-        this.advanceEnd(toWrite);
-        offset = dart.notNull(offset) + dart.notNull(toWrite);
-        written = dart.notNull(written) + dart.notNull(toWrite);
-        toWrite = math.min(core.int)(dart.notNull(bytes) - dart.notNull(written), this.linearFree);
-      }
-      return written;
+  }
+  [_readSocket]() {
+    if (this[_status] == io._RawSecureSocket.CLOSED) return;
+    let buffer = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_ENCRYPTED);
+    if (dart.notNull(buffer.writeFromSource(dart.bind(this, _readSocketOrBufferedData))) > 0) {
+      this[_filterStatus].readEmpty = false;
+    } else {
+      this[_socket].readEventsEnabled = false;
     }
-    writeFromSource(getData) {
-      let written = 0;
-      let toWrite = this.linearFree;
-      while (dart.notNull(toWrite) > 0) {
-        let inputData = getData(toWrite);
-        if (inputData == null || inputData[dartx.length] == 0) break;
-        let len = inputData[dartx.length];
-        this.data[dartx.setRange](this.end, dart.notNull(this.end) + dart.notNull(len), inputData);
-        this.advanceEnd(len);
-        written = dart.notNull(written) + dart.notNull(len);
-        toWrite = this.linearFree;
-      }
-      return written;
+  }
+  [_writeSocket]() {
+    if (dart.test(this[_socketClosedWrite])) return;
+    let buffer = this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_ENCRYPTED);
+    if (dart.test(buffer.readToSocket(this[_socket]))) {
+      this[_socket].writeEventsEnabled = true;
     }
-    readToSocket(socket) {
-      while (true) {
-        let toWrite = this.linearLength;
-        if (toWrite == 0) return false;
-        let bytes = socket.write(ListOfint()._check(this.data), this.start, toWrite);
-        this.advanceStart(bytes);
-        if (dart.notNull(bytes) < dart.notNull(toWrite)) {
-          return true;
-        }
-      }
+  }
+  [_scheduleReadEvent]() {
+    if (!dart.test(this[_pendingReadEvent]) && dart.test(this[_readEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
+      this[_pendingReadEvent] = true;
+      async.Timer.run(dart.bind(this, _sendReadEvent));
     }
-  };
-  dart.setSignature(io._ExternalBuffer, {
-    constructors: () => ({new: dart.definiteFunctionType(io._ExternalBuffer, [dart.dynamic])}),
-    fields: () => ({
-      data: core.List,
-      start: core.int,
-      end: core.int,
-      size: dart.dynamic
-    }),
-    getters: () => ({
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      length: dart.definiteFunctionType(core.int, []),
-      linearLength: dart.definiteFunctionType(core.int, []),
-      free: dart.definiteFunctionType(core.int, []),
-      linearFree: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      advanceStart: dart.definiteFunctionType(dart.void, [core.int]),
-      advanceEnd: dart.definiteFunctionType(dart.void, [core.int]),
-      read: dart.definiteFunctionType(core.List$(core.int), [core.int]),
-      write: dart.definiteFunctionType(core.int, [ListOfint(), core.int, core.int]),
-      writeFromSource: dart.definiteFunctionType(core.int, [intToListOfint()]),
-      readToSocket: dart.definiteFunctionType(core.bool, [io.RawSocket])
-    })
-  });
-  io._SecureFilter = class _SecureFilter extends core.Object {
-    static new() {
-      dart.throw(new core.UnsupportedError("_SecureFilter._SecureFilter"));
+  }
+  [_sendReadEvent]() {
+    this[_pendingReadEvent] = false;
+    if (this[_status] != io._RawSecureSocket.CLOSED && dart.test(this[_readEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
+      this[_controller$0].add(io.RawSocketEvent.READ);
+      this[_scheduleReadEvent]();
     }
-  };
-  dart.setSignature(io._SecureFilter, {
-    constructors: () => ({new: dart.definiteFunctionType(io._SecureFilter, [])})
-  });
-  io.TlsException = class TlsException extends core.Object {
-    new(message, osError) {
-      if (message === void 0) message = "";
-      if (osError === void 0) osError = null;
-      TlsException.prototype._.call(this, "TlsException", message, osError);
+  }
+  [_sendWriteEvent]() {
+    if (!dart.test(this[_closedWrite]) && dart.test(this[_writeEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && dart.notNull(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).free) > 0) {
+      this[_writeEventsEnabled] = false;
+      this[_controller$0].add(io.RawSocketEvent.WRITE);
     }
-    _(type, message, osError) {
-      this.type = type;
-      this.message = message;
-      this.osError = osError;
+  }
+  [_pushAllFilterStages]() {
+    let wasInHandshake = this[_status] != io._RawSecureSocket.CONNECTED;
+    let args = core.List.new(2 + dart.notNull(io._RawSecureSocket.NUM_BUFFERS) * 2);
+    args[dartx._set](0, this[_secureFilter][_pointer]());
+    args[dartx._set](1, wasInHandshake);
+    let bufs = this[_secureFilter].buffers;
+    for (let i = 0; i < dart.notNull(io._RawSecureSocket.NUM_BUFFERS); ++i) {
+      args[dartx._set](2 * i + 2, bufs[dartx._get](i).start);
+      args[dartx._set](2 * i + 3, bufs[dartx._get](i).end);
     }
-    toString() {
-      let sb = new core.StringBuffer();
-      sb.write(this.type);
-      if (!dart.test(this.message[dartx.isEmpty])) {
-        sb.write(dart.str`: ${this.message}`);
-        if (this.osError != null) {
-          sb.write(dart.str` (${this.osError})`);
-        }
-      } else if (this.osError != null) {
-        sb.write(dart.str`: ${this.osError}`);
-      }
-      return sb.toString();
-    }
-  };
-  dart.defineNamedConstructor(io.TlsException, '_');
-  io.TlsException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.TlsException, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.TlsException, [], [core.String, io.OSError]),
-      _: dart.definiteFunctionType(io.TlsException, [core.String, core.String, io.OSError])
-    }),
-    fields: () => ({
-      type: core.String,
-      message: core.String,
-      osError: io.OSError
-    })
-  });
-  io.HandshakeException = class HandshakeException extends io.TlsException {
-    new(message, osError) {
-      if (message === void 0) message = "";
-      if (osError === void 0) osError = null;
-      super._("HandshakeException", message, osError);
-    }
-  };
-  dart.setSignature(io.HandshakeException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.HandshakeException, [], [core.String, io.OSError])})
-  });
-  io.CertificateException = class CertificateException extends io.TlsException {
-    new(message, osError) {
-      if (message === void 0) message = "";
-      if (osError === void 0) osError = null;
-      super._("CertificateException", message, osError);
-    }
-  };
-  dart.setSignature(io.CertificateException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.CertificateException, [], [core.String, io.OSError])})
-  });
-  io.SecurityContext = class SecurityContext extends core.Object {
-    static new() {
-      dart.throw(new core.UnsupportedError("SecurityContext constructor"));
-    }
-    static get defaultContext() {
-      dart.throw(new core.UnsupportedError("default SecurityContext getter"));
-    }
-    static get alpnSupported() {
-      dart.throw(new core.UnsupportedError("SecurityContext alpnSupported getter"));
-    }
-    static _protocolsToLengthEncoding(protocols) {
-      if (protocols == null || protocols[dartx.length] == 0) {
-        return typed_data.Uint8List.new(0);
-      }
-      let protocolsLength = protocols[dartx.length];
-      let expectedLength = protocolsLength;
-      for (let i = 0; i < dart.notNull(protocolsLength); i++) {
-        let length = protocols[dartx._get](i)[dartx.length];
-        if (dart.notNull(length) > 0 && dart.notNull(length) <= 255) {
-          expectedLength = dart.notNull(expectedLength) + dart.notNull(length);
+    return io._IOService._dispatch(io._SSL_PROCESS_FILTER, args).then(io._FilterStatus)(dart.fn(response => {
+      if (dart.equals(dart.dload(response, 'length'), 2)) {
+        if (wasInHandshake) {
+          this[_reportError](new io.HandshakeException(dart.str`${dart.dindex(response, 1)} error ${dart.dindex(response, 0)}`), null);
         } else {
-          dart.throw(new core.ArgumentError(dart.str`Length of protocol must be between 1 and 255 (was: ${length}).`));
+          this[_reportError](new io.TlsException(dart.str`${dart.dindex(response, 1)} error ${dart.dindex(response, 0)}`), null);
         }
       }
-      if (dart.notNull(expectedLength) >= 1 << 13) {
-        dart.throw(new core.ArgumentError('The maximum message length supported is 2^13-1.'));
+      function start(index) {
+        return core.int._check(dart.dindex(response, 2 * dart.notNull(index)));
       }
-      let bytes = typed_data.Uint8List.new(expectedLength);
-      let bytesOffset = 0;
-      for (let i = 0; i < dart.notNull(protocolsLength); i++) {
-        let proto = protocols[dartx._get](i);
-        bytes[dartx._set](bytesOffset++, proto[dartx.length]);
-        let bits = 0;
-        for (let j = 0; j < dart.notNull(proto[dartx.length]); j++) {
-          let char = proto[dartx.codeUnitAt](j);
-          bits = (dart.notNull(bits) | dart.notNull(char)) >>> 0;
-          bytes[dartx._set](bytesOffset++, dart.notNull(char) & 255);
-        }
-        if (dart.notNull(bits) > 127) {
-          return io.SecurityContext._protocolsToLengthEncodingNonAsciiBailout(protocols);
-        }
+      dart.fn(start, intToint());
+      function end(index) {
+        return core.int._check(dart.dindex(response, 2 * dart.notNull(index) + 1));
       }
-      return bytes;
+      dart.fn(end, intToint());
+      let status = new io._FilterStatus();
+      status.writeEmpty = dart.test(bufs[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).isEmpty) && start(io._RawSecureSocket.WRITE_ENCRYPTED) == end(io._RawSecureSocket.WRITE_ENCRYPTED);
+      if (wasInHandshake) status.writeEmpty = false;
+      status.readEmpty = dart.test(bufs[dartx._get](io._RawSecureSocket.READ_ENCRYPTED).isEmpty) && start(io._RawSecureSocket.READ_PLAINTEXT) == end(io._RawSecureSocket.READ_PLAINTEXT);
+      let buffer = bufs[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT);
+      let new_start = start(io._RawSecureSocket.WRITE_PLAINTEXT);
+      if (new_start != buffer.start) {
+        status.progress = true;
+        if (buffer.free == 0) {
+          status.writePlaintextNoLongerFull = true;
+        }
+        buffer.start = new_start;
+      }
+      buffer = bufs[dartx._get](io._RawSecureSocket.READ_ENCRYPTED);
+      new_start = start(io._RawSecureSocket.READ_ENCRYPTED);
+      if (new_start != buffer.start) {
+        status.progress = true;
+        if (buffer.free == 0) {
+          status.readEncryptedNoLongerFull = true;
+        }
+        buffer.start = new_start;
+      }
+      buffer = bufs[dartx._get](io._RawSecureSocket.WRITE_ENCRYPTED);
+      let new_end = end(io._RawSecureSocket.WRITE_ENCRYPTED);
+      if (new_end != buffer.end) {
+        status.progress = true;
+        if (buffer.length == 0) {
+          status.writeEncryptedNoLongerEmpty = true;
+        }
+        buffer.end = new_end;
+      }
+      buffer = bufs[dartx._get](io._RawSecureSocket.READ_PLAINTEXT);
+      new_end = end(io._RawSecureSocket.READ_PLAINTEXT);
+      if (new_end != buffer.end) {
+        status.progress = true;
+        if (buffer.length == 0) {
+          status.readPlaintextNoLongerEmpty = true;
+        }
+        buffer.end = new_end;
+      }
+      return status;
+    }, dynamicTo_FilterStatus()));
+  }
+};
+dart.addSimpleTypeTests(io._RawSecureSocket);
+io._RawSecureSocket[dart.implements] = () => [io.RawSecureSocket];
+dart.setSignature(io._RawSecureSocket, {
+  constructors: () => ({new: dart.definiteFunctionType(io._RawSecureSocket, [io.InternetAddress, core.int, core.bool, io.SecurityContext, io.RawSocket, StreamSubscriptionOfRawSocketEvent(), ListOfint(), core.bool, core.bool, X509CertificateTodynamic(), ListOfString()])}),
+  fields: () => ({
+    [_socket]: io.RawSocket,
+    [_handshakeComplete]: CompleterOf_RawSecureSocket(),
+    [_controller$0]: StreamControllerOfRawSocketEvent(),
+    [_stream$]: StreamOfRawSocketEvent(),
+    [_socketSubscription]: StreamSubscriptionOfRawSocketEvent(),
+    [_bufferedData]: ListOfint(),
+    [_bufferedDataIndex]: core.int,
+    address: io.InternetAddress,
+    is_server: core.bool,
+    context: io.SecurityContext,
+    requestClientCertificate: core.bool,
+    requireClientCertificate: core.bool,
+    onBadCertificate: core.Function,
+    [_status]: core.int,
+    [_writeEventsEnabled]: core.bool,
+    [_readEventsEnabled]: core.bool,
+    [_pauseCount$]: core.int,
+    [_pendingReadEvent]: core.bool,
+    [_socketClosedRead]: core.bool,
+    [_socketClosedWrite]: core.bool,
+    [_closedRead]: core.bool,
+    [_closedWrite]: core.bool,
+    [_closeCompleter]: async.Completer,
+    [_filterStatus]: io._FilterStatus,
+    [_connectPending]: core.bool,
+    [_filterPending]: core.bool,
+    [_filterActive]: core.bool,
+    [_secureFilter]: io._SecureFilter,
+    [_selectedProtocol]: core.String
+  }),
+  getters: () => ({
+    port: dart.definiteFunctionType(core.int, []),
+    remoteAddress: dart.definiteFunctionType(io.InternetAddress, []),
+    remotePort: dart.definiteFunctionType(core.int, []),
+    writeEventsEnabled: dart.definiteFunctionType(core.bool, []),
+    readEventsEnabled: dart.definiteFunctionType(core.bool, []),
+    peerCertificate: dart.definiteFunctionType(io.X509Certificate, []),
+    selectedProtocol: dart.definiteFunctionType(core.String, [])
+  }),
+  setters: () => ({
+    [_owner]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    writeEventsEnabled: dart.definiteFunctionType(dart.void, [core.bool]),
+    readEventsEnabled: dart.definiteFunctionType(dart.void, [core.bool])
+  }),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription$(io.RawSocketEvent), [RawSocketEventTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    available: dart.definiteFunctionType(core.int, []),
+    close: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), []),
+    [_completeCloseCompleter]: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
+    [_close$0]: dart.definiteFunctionType(dart.void, []),
+    shutdown: dart.definiteFunctionType(dart.void, [io.SocketDirection]),
+    read: dart.definiteFunctionType(core.List$(core.int), [], [core.int]),
+    write: dart.definiteFunctionType(core.int, [ListOfint()], [core.int, core.int]),
+    [_onBadCertificateWrapper]: dart.definiteFunctionType(core.bool, [io.X509Certificate]),
+    setOption: dart.definiteFunctionType(core.bool, [io.SocketOption, core.bool]),
+    [_eventDispatcher]: dart.definiteFunctionType(dart.void, [io.RawSocketEvent]),
+    [_readHandler]: dart.definiteFunctionType(dart.void, []),
+    [_writeHandler]: dart.definiteFunctionType(dart.void, []),
+    [_doneHandler]: dart.definiteFunctionType(dart.void, []),
+    [_reportError]: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+    [_closeHandler]: dart.definiteFunctionType(dart.void, []),
+    [_secureHandshake]: dart.definiteFunctionType(dart.void, []),
+    renegotiate: dart.definiteFunctionType(dart.void, [], {useSessionCache: core.bool, requestClientCertificate: core.bool, requireClientCertificate: core.bool}),
+    [_secureHandshakeCompleteHandler]: dart.definiteFunctionType(dart.void, []),
+    [_onPauseStateChange]: dart.definiteFunctionType(dart.void, []),
+    [_onSubscriptionStateChange]: dart.definiteFunctionType(dart.void, []),
+    [_scheduleFilter]: dart.definiteFunctionType(dart.void, []),
+    [_tryFilter]: dart.definiteFunctionType(dart.void, []),
+    [_readSocketOrBufferedData]: dart.definiteFunctionType(core.List$(core.int), [core.int]),
+    [_readSocket]: dart.definiteFunctionType(dart.void, []),
+    [_writeSocket]: dart.definiteFunctionType(dart.void, []),
+    [_scheduleReadEvent]: dart.definiteFunctionType(dart.dynamic, []),
+    [_sendReadEvent]: dart.definiteFunctionType(dart.dynamic, []),
+    [_sendWriteEvent]: dart.definiteFunctionType(dart.dynamic, []),
+    [_pushAllFilterStages]: dart.definiteFunctionType(async.Future$(io._FilterStatus), [])
+  }),
+  sfields: () => ({
+    HANDSHAKE: core.int,
+    CONNECTED: core.int,
+    CLOSED: core.int,
+    READ_PLAINTEXT: core.int,
+    WRITE_PLAINTEXT: core.int,
+    READ_ENCRYPTED: core.int,
+    WRITE_ENCRYPTED: core.int,
+    NUM_BUFFERS: core.int
+  }),
+  statics: () => ({
+    _isBufferEncrypted: dart.definiteFunctionType(core.bool, [core.int]),
+    connect: dart.definiteFunctionType(async.Future$(io._RawSecureSocket), [dart.dynamic, core.int], {is_server: core.bool, context: io.SecurityContext, socket: io.RawSocket, subscription: async.StreamSubscription, bufferedData: ListOfint(), requestClientCertificate: core.bool, requireClientCertificate: core.bool, onBadCertificate: X509CertificateTobool(), supportedProtocols: ListOfString()}),
+    _verifyFields: dart.definiteFunctionType(dart.void, [dart.dynamic, core.int, core.bool, core.bool, core.bool, core.Function])
+  }),
+  names: ['_isBufferEncrypted', 'connect', '_verifyFields']
+});
+io._RawSecureSocket.HANDSHAKE = 201;
+io._RawSecureSocket.CONNECTED = 202;
+io._RawSecureSocket.CLOSED = 203;
+io._RawSecureSocket.READ_PLAINTEXT = 0;
+io._RawSecureSocket.WRITE_PLAINTEXT = 1;
+io._RawSecureSocket.READ_ENCRYPTED = 2;
+io._RawSecureSocket.WRITE_ENCRYPTED = 3;
+io._RawSecureSocket.NUM_BUFFERS = 4;
+io._ExternalBuffer = class _ExternalBuffer extends core.Object {
+  new(size) {
+    this.size = size;
+    this.data = null;
+    this.start = null;
+    this.end = null;
+    this.start = core.int._check(this.end = core.int._check(dart.dsend(this.size, '~/', 2)));
+  }
+  advanceStart(bytes) {
+    dart.assert(dart.notNull(this.start) > dart.notNull(this.end) || dart.notNull(this.start) + dart.notNull(bytes) <= dart.notNull(this.end));
+    this.start = dart.notNull(this.start) + dart.notNull(bytes);
+    if (dart.notNull(this.start) >= dart.notNull(core.num._check(this.size))) {
+      this.start = dart.notNull(this.start) - dart.notNull(core.num._check(this.size));
+      dart.assert(dart.notNull(this.start) <= dart.notNull(this.end));
+      dart.assert(dart.notNull(this.start) < dart.notNull(core.num._check(this.size)));
     }
-    static _protocolsToLengthEncodingNonAsciiBailout(protocols) {
-      function addProtocol(outBytes, protocol) {
-        let protocolBytes = convert.UTF8.encode(protocol);
-        let len = protocolBytes[dartx.length];
-        if (dart.notNull(len) > 255) {
-          dart.throw(new core.ArgumentError(dart.str`Length of protocol must be between 1 and 255 (was: ${len})`));
-        }
-        outBytes[dartx.add](len);
-        outBytes[dartx.addAll](protocolBytes);
-      }
-      dart.fn(addProtocol, ListOfintAndStringTovoid());
-      let bytes = JSArrayOfint().of([]);
-      for (let i = 0; i < dart.notNull(protocols[dartx.length]); i++) {
-        addProtocol(bytes, protocols[dartx._get](i));
-      }
-      if (dart.notNull(bytes[dartx.length]) >= 1 << 13) {
-        dart.throw(new core.ArgumentError('The maximum message length supported is 2^13-1.'));
-      }
-      return typed_data.Uint8List.fromList(bytes);
+  }
+  advanceEnd(bytes) {
+    dart.assert(dart.notNull(this.start) <= dart.notNull(this.end) || dart.notNull(this.start) > dart.notNull(this.end) + dart.notNull(bytes));
+    this.end = dart.notNull(this.end) + dart.notNull(bytes);
+    if (dart.notNull(this.end) >= dart.notNull(core.num._check(this.size))) {
+      this.end = dart.notNull(this.end) - dart.notNull(core.num._check(this.size));
+      dart.assert(dart.notNull(this.end) < dart.notNull(this.start));
+      dart.assert(dart.notNull(this.end) < dart.notNull(core.num._check(this.size)));
     }
-  };
-  dart.setSignature(io.SecurityContext, {
-    constructors: () => ({new: dart.definiteFunctionType(io.SecurityContext, [])}),
-    sgetters: () => ({
-      defaultContext: dart.definiteFunctionType(io.SecurityContext, []),
-      alpnSupported: dart.definiteFunctionType(core.bool, [])
-    }),
-    statics: () => ({
-      _protocolsToLengthEncoding: dart.definiteFunctionType(typed_data.Uint8List, [ListOfString()]),
-      _protocolsToLengthEncodingNonAsciiBailout: dart.definiteFunctionType(typed_data.Uint8List, [ListOfString()])
-    }),
-    names: ['_protocolsToLengthEncoding', '_protocolsToLengthEncodingNonAsciiBailout']
-  });
-  io._nextServiceId = 1;
-  io.InternetAddressType = class InternetAddressType extends core.Object {
-    _(value) {
-      this[_value$1] = value;
+  }
+  get isEmpty() {
+    return this.end == this.start;
+  }
+  get length() {
+    return core.int._check(dart.notNull(this.start) > dart.notNull(this.end) ? dart.dsend(dart.dsend(this.size, '+', this.end), '-', this.start) : dart.notNull(this.end) - dart.notNull(this.start));
+  }
+  get linearLength() {
+    return core.int._check(dart.notNull(this.start) > dart.notNull(this.end) ? dart.dsend(this.size, '-', this.start) : dart.notNull(this.end) - dart.notNull(this.start));
+  }
+  get free() {
+    return core.int._check(dart.notNull(this.start) > dart.notNull(this.end) ? dart.notNull(this.start) - dart.notNull(this.end) - 1 : dart.dsend(dart.dsend(dart.dsend(this.size, '+', this.start), '-', this.end), '-', 1));
+  }
+  get linearFree() {
+    if (dart.notNull(this.start) > dart.notNull(this.end)) return dart.notNull(this.start) - dart.notNull(this.end) - 1;
+    if (this.start == 0) return core.int._check(dart.dsend(dart.dsend(this.size, '-', this.end), '-', 1));
+    return core.int._check(dart.dsend(this.size, '-', this.end));
+  }
+  read(bytes) {
+    if (bytes == null) {
+      bytes = this.length;
+    } else {
+      bytes = math.min(core.int)(bytes, this.length);
     }
-    static _from(value) {
-      if (value == 0) return io.InternetAddressType.IP_V4;
-      if (value == 1) return io.InternetAddressType.IP_V6;
-      dart.throw(new core.ArgumentError(dart.str`Invalid type: ${value}`));
+    if (bytes == 0) return null;
+    let result = typed_data.Uint8List.new(bytes);
+    let bytesRead = 0;
+    while (dart.notNull(bytesRead) < dart.notNull(bytes)) {
+      let toRead = math.min(core.int)(dart.notNull(bytes) - dart.notNull(bytesRead), this.linearLength);
+      result[dartx.setRange](bytesRead, dart.notNull(bytesRead) + dart.notNull(toRead), this.data, this.start);
+      this.advanceStart(toRead);
+      bytesRead = dart.notNull(bytesRead) + dart.notNull(toRead);
     }
-    get name() {
-      switch (this[_value$1]) {
-        case -1:
-        {
-          return "ANY";
-        }
-        case 0:
-        {
-          return "IP_V4";
-        }
-        case 1:
-        {
-          return "IP_V6";
-        }
-        default:
-        {
-          dart.throw(new core.ArgumentError("Invalid InternetAddress"));
-        }
+    return result;
+  }
+  write(inputData, offset, bytes) {
+    if (dart.notNull(bytes) > dart.notNull(this.free)) {
+      bytes = this.free;
+    }
+    let written = 0;
+    let toWrite = math.min(core.int)(bytes, this.linearFree);
+    while (dart.notNull(toWrite) > 0) {
+      this.data[dartx.setRange](this.end, dart.notNull(this.end) + dart.notNull(toWrite), inputData, offset);
+      this.advanceEnd(toWrite);
+      offset = dart.notNull(offset) + dart.notNull(toWrite);
+      written = dart.notNull(written) + dart.notNull(toWrite);
+      toWrite = math.min(core.int)(dart.notNull(bytes) - dart.notNull(written), this.linearFree);
+    }
+    return written;
+  }
+  writeFromSource(getData) {
+    let written = 0;
+    let toWrite = this.linearFree;
+    while (dart.notNull(toWrite) > 0) {
+      let inputData = getData(toWrite);
+      if (inputData == null || inputData[dartx.length] == 0) break;
+      let len = inputData[dartx.length];
+      this.data[dartx.setRange](this.end, dart.notNull(this.end) + dart.notNull(len), inputData);
+      this.advanceEnd(len);
+      written = dart.notNull(written) + dart.notNull(len);
+      toWrite = this.linearFree;
+    }
+    return written;
+  }
+  readToSocket(socket) {
+    while (true) {
+      let toWrite = this.linearLength;
+      if (toWrite == 0) return false;
+      let bytes = socket.write(ListOfint()._check(this.data), this.start, toWrite);
+      this.advanceStart(bytes);
+      if (dart.notNull(bytes) < dart.notNull(toWrite)) {
+        return true;
       }
     }
-    toString() {
-      return dart.str`InternetAddressType: ${this.name}`;
+  }
+};
+dart.setSignature(io._ExternalBuffer, {
+  constructors: () => ({new: dart.definiteFunctionType(io._ExternalBuffer, [dart.dynamic])}),
+  fields: () => ({
+    data: core.List,
+    start: core.int,
+    end: core.int,
+    size: dart.dynamic
+  }),
+  getters: () => ({
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    length: dart.definiteFunctionType(core.int, []),
+    linearLength: dart.definiteFunctionType(core.int, []),
+    free: dart.definiteFunctionType(core.int, []),
+    linearFree: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    advanceStart: dart.definiteFunctionType(dart.void, [core.int]),
+    advanceEnd: dart.definiteFunctionType(dart.void, [core.int]),
+    read: dart.definiteFunctionType(core.List$(core.int), [core.int]),
+    write: dart.definiteFunctionType(core.int, [ListOfint(), core.int, core.int]),
+    writeFromSource: dart.definiteFunctionType(core.int, [intToListOfint()]),
+    readToSocket: dart.definiteFunctionType(core.bool, [io.RawSocket])
+  })
+});
+io._SecureFilter = class _SecureFilter extends core.Object {
+  static new() {
+    dart.throw(new core.UnsupportedError("_SecureFilter._SecureFilter"));
+  }
+};
+dart.setSignature(io._SecureFilter, {
+  constructors: () => ({new: dart.definiteFunctionType(io._SecureFilter, [])})
+});
+io.TlsException = class TlsException extends core.Object {
+  new(message, osError) {
+    if (message === void 0) message = "";
+    if (osError === void 0) osError = null;
+    TlsException.prototype._.call(this, "TlsException", message, osError);
+  }
+  _(type, message, osError) {
+    this.type = type;
+    this.message = message;
+    this.osError = osError;
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    sb.write(this.type);
+    if (!dart.test(this.message[dartx.isEmpty])) {
+      sb.write(dart.str`: ${this.message}`);
+      if (this.osError != null) {
+        sb.write(dart.str` (${this.osError})`);
+      }
+    } else if (this.osError != null) {
+      sb.write(dart.str`: ${this.osError}`);
     }
-  };
-  dart.defineNamedConstructor(io.InternetAddressType, '_');
-  dart.setSignature(io.InternetAddressType, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(io.InternetAddressType, [core.int]),
-      _from: dart.definiteFunctionType(io.InternetAddressType, [core.int])
-    }),
-    fields: () => ({[_value$1]: core.int}),
-    getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
-    sfields: () => ({
-      IP_V4: io.InternetAddressType,
-      IP_V6: io.InternetAddressType,
-      ANY: io.InternetAddressType
-    })
-  });
-  dart.defineLazy(io.InternetAddressType, {
-    get IP_V4() {
-      return dart.const(new io.InternetAddressType._(0));
-    },
-    get IP_V6() {
-      return dart.const(new io.InternetAddressType._(1));
-    },
-    get ANY() {
-      return dart.const(new io.InternetAddressType._(-1));
+    return sb.toString();
+  }
+};
+dart.defineNamedConstructor(io.TlsException, '_');
+io.TlsException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.TlsException, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.TlsException, [], [core.String, io.OSError]),
+    _: dart.definiteFunctionType(io.TlsException, [core.String, core.String, io.OSError])
+  }),
+  fields: () => ({
+    type: core.String,
+    message: core.String,
+    osError: io.OSError
+  })
+});
+io.HandshakeException = class HandshakeException extends io.TlsException {
+  new(message, osError) {
+    if (message === void 0) message = "";
+    if (osError === void 0) osError = null;
+    super._("HandshakeException", message, osError);
+  }
+};
+dart.setSignature(io.HandshakeException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.HandshakeException, [], [core.String, io.OSError])})
+});
+io.CertificateException = class CertificateException extends io.TlsException {
+  new(message, osError) {
+    if (message === void 0) message = "";
+    if (osError === void 0) osError = null;
+    super._("CertificateException", message, osError);
+  }
+};
+dart.setSignature(io.CertificateException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.CertificateException, [], [core.String, io.OSError])})
+});
+io.SecurityContext = class SecurityContext extends core.Object {
+  static new() {
+    dart.throw(new core.UnsupportedError("SecurityContext constructor"));
+  }
+  static get defaultContext() {
+    dart.throw(new core.UnsupportedError("default SecurityContext getter"));
+  }
+  static get alpnSupported() {
+    dart.throw(new core.UnsupportedError("SecurityContext alpnSupported getter"));
+  }
+  static _protocolsToLengthEncoding(protocols) {
+    if (protocols == null || protocols[dartx.length] == 0) {
+      return typed_data.Uint8List.new(0);
     }
-  });
-  io.InternetAddress = class InternetAddress extends core.Object {
-    static get LOOPBACK_IP_V4() {
-      dart.throw(new core.UnsupportedError("InternetAddress.LOOPBACK_IP_V4"));
+    let protocolsLength = protocols[dartx.length];
+    let expectedLength = protocolsLength;
+    for (let i = 0; i < dart.notNull(protocolsLength); i++) {
+      let length = protocols[dartx._get](i)[dartx.length];
+      if (dart.notNull(length) > 0 && dart.notNull(length) <= 255) {
+        expectedLength = dart.notNull(expectedLength) + dart.notNull(length);
+      } else {
+        dart.throw(new core.ArgumentError(dart.str`Length of protocol must be between 1 and 255 (was: ${length}).`));
+      }
     }
-    static get LOOPBACK_IP_V6() {
-      dart.throw(new core.UnsupportedError("InternetAddress.LOOPBACK_IP_V6"));
+    if (dart.notNull(expectedLength) >= 1 << 13) {
+      dart.throw(new core.ArgumentError('The maximum message length supported is 2^13-1.'));
     }
-    static get ANY_IP_V4() {
-      dart.throw(new core.UnsupportedError("InternetAddress.ANY_IP_V4"));
+    let bytes = typed_data.Uint8List.new(expectedLength);
+    let bytesOffset = 0;
+    for (let i = 0; i < dart.notNull(protocolsLength); i++) {
+      let proto = protocols[dartx._get](i);
+      bytes[dartx._set](bytesOffset++, proto[dartx.length]);
+      let bits = 0;
+      for (let j = 0; j < dart.notNull(proto[dartx.length]); j++) {
+        let char = proto[dartx.codeUnitAt](j);
+        bits = (dart.notNull(bits) | dart.notNull(char)) >>> 0;
+        bytes[dartx._set](bytesOffset++, dart.notNull(char) & 255);
+      }
+      if (dart.notNull(bits) > 127) {
+        return io.SecurityContext._protocolsToLengthEncodingNonAsciiBailout(protocols);
+      }
     }
-    static get ANY_IP_V6() {
-      dart.throw(new core.UnsupportedError("InternetAddress.ANY_IP_V6"));
+    return bytes;
+  }
+  static _protocolsToLengthEncodingNonAsciiBailout(protocols) {
+    function addProtocol(outBytes, protocol) {
+      let protocolBytes = convert.UTF8.encode(protocol);
+      let len = protocolBytes[dartx.length];
+      if (dart.notNull(len) > 255) {
+        dart.throw(new core.ArgumentError(dart.str`Length of protocol must be between 1 and 255 (was: ${len})`));
+      }
+      outBytes[dartx.add](len);
+      outBytes[dartx.addAll](protocolBytes);
     }
-    static new(address) {
-      dart.throw(new core.UnsupportedError("InternetAddress"));
+    dart.fn(addProtocol, ListOfintAndStringTovoid());
+    let bytes = JSArrayOfint().of([]);
+    for (let i = 0; i < dart.notNull(protocols[dartx.length]); i++) {
+      addProtocol(bytes, protocols[dartx._get](i));
     }
-    static lookup(host, opts) {
-      let type = opts && 'type' in opts ? opts.type : io.InternetAddressType.ANY;
-      dart.throw(new core.UnsupportedError("InternetAddress.lookup"));
+    if (dart.notNull(bytes[dartx.length]) >= 1 << 13) {
+      dart.throw(new core.ArgumentError('The maximum message length supported is 2^13-1.'));
     }
-    static _cloneWithNewHost(address, host) {
-      dart.throw(new core.UnsupportedError("InternetAddress._cloneWithNewHost"));
+    return typed_data.Uint8List.fromList(bytes);
+  }
+};
+dart.setSignature(io.SecurityContext, {
+  constructors: () => ({new: dart.definiteFunctionType(io.SecurityContext, [])}),
+  sgetters: () => ({
+    defaultContext: dart.definiteFunctionType(io.SecurityContext, []),
+    alpnSupported: dart.definiteFunctionType(core.bool, [])
+  }),
+  statics: () => ({
+    _protocolsToLengthEncoding: dart.definiteFunctionType(typed_data.Uint8List, [ListOfString()]),
+    _protocolsToLengthEncodingNonAsciiBailout: dart.definiteFunctionType(typed_data.Uint8List, [ListOfString()])
+  }),
+  names: ['_protocolsToLengthEncoding', '_protocolsToLengthEncodingNonAsciiBailout']
+});
+io._nextServiceId = 1;
+io.InternetAddressType = class InternetAddressType extends core.Object {
+  _(value) {
+    this[_value$1] = value;
+  }
+  static _from(value) {
+    if (value == 0) return io.InternetAddressType.IP_V4;
+    if (value == 1) return io.InternetAddressType.IP_V6;
+    dart.throw(new core.ArgumentError(dart.str`Invalid type: ${value}`));
+  }
+  get name() {
+    switch (this[_value$1]) {
+      case -1:
+      {
+        return "ANY";
+      }
+      case 0:
+      {
+        return "IP_V4";
+      }
+      case 1:
+      {
+        return "IP_V6";
+      }
+      default:
+      {
+        dart.throw(new core.ArgumentError("Invalid InternetAddress"));
+      }
     }
-  };
-  dart.setSignature(io.InternetAddress, {
-    constructors: () => ({new: dart.definiteFunctionType(io.InternetAddress, [core.String])}),
-    fields: () => ({type: io.InternetAddressType}),
-    sgetters: () => ({
-      LOOPBACK_IP_V4: dart.definiteFunctionType(io.InternetAddress, []),
-      LOOPBACK_IP_V6: dart.definiteFunctionType(io.InternetAddress, []),
-      ANY_IP_V4: dart.definiteFunctionType(io.InternetAddress, []),
-      ANY_IP_V6: dart.definiteFunctionType(io.InternetAddress, [])
-    }),
-    statics: () => ({
-      lookup: dart.definiteFunctionType(async.Future$(core.List$(io.InternetAddress)), [core.String], {type: io.InternetAddressType}),
-      _cloneWithNewHost: dart.definiteFunctionType(io.InternetAddress, [io.InternetAddress, core.String])
-    }),
-    names: ['lookup', '_cloneWithNewHost']
-  });
-  io.NetworkInterface = class NetworkInterface extends core.Object {
-    static get listSupported() {
-      dart.throw(new core.UnsupportedError("NetworkInterface.listSupported"));
+  }
+  toString() {
+    return dart.str`InternetAddressType: ${this.name}`;
+  }
+};
+dart.defineNamedConstructor(io.InternetAddressType, '_');
+dart.setSignature(io.InternetAddressType, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(io.InternetAddressType, [core.int]),
+    _from: dart.definiteFunctionType(io.InternetAddressType, [core.int])
+  }),
+  fields: () => ({[_value$1]: core.int}),
+  getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
+  sfields: () => ({
+    IP_V4: io.InternetAddressType,
+    IP_V6: io.InternetAddressType,
+    ANY: io.InternetAddressType
+  })
+});
+dart.defineLazy(io.InternetAddressType, {
+  get IP_V4() {
+    return dart.const(new io.InternetAddressType._(0));
+  },
+  get IP_V6() {
+    return dart.const(new io.InternetAddressType._(1));
+  },
+  get ANY() {
+    return dart.const(new io.InternetAddressType._(-1));
+  }
+});
+io.InternetAddress = class InternetAddress extends core.Object {
+  static get LOOPBACK_IP_V4() {
+    dart.throw(new core.UnsupportedError("InternetAddress.LOOPBACK_IP_V4"));
+  }
+  static get LOOPBACK_IP_V6() {
+    dart.throw(new core.UnsupportedError("InternetAddress.LOOPBACK_IP_V6"));
+  }
+  static get ANY_IP_V4() {
+    dart.throw(new core.UnsupportedError("InternetAddress.ANY_IP_V4"));
+  }
+  static get ANY_IP_V6() {
+    dart.throw(new core.UnsupportedError("InternetAddress.ANY_IP_V6"));
+  }
+  static new(address) {
+    dart.throw(new core.UnsupportedError("InternetAddress"));
+  }
+  static lookup(host, opts) {
+    let type = opts && 'type' in opts ? opts.type : io.InternetAddressType.ANY;
+    dart.throw(new core.UnsupportedError("InternetAddress.lookup"));
+  }
+  static _cloneWithNewHost(address, host) {
+    dart.throw(new core.UnsupportedError("InternetAddress._cloneWithNewHost"));
+  }
+};
+dart.setSignature(io.InternetAddress, {
+  constructors: () => ({new: dart.definiteFunctionType(io.InternetAddress, [core.String])}),
+  fields: () => ({type: io.InternetAddressType}),
+  sgetters: () => ({
+    LOOPBACK_IP_V4: dart.definiteFunctionType(io.InternetAddress, []),
+    LOOPBACK_IP_V6: dart.definiteFunctionType(io.InternetAddress, []),
+    ANY_IP_V4: dart.definiteFunctionType(io.InternetAddress, []),
+    ANY_IP_V6: dart.definiteFunctionType(io.InternetAddress, [])
+  }),
+  statics: () => ({
+    lookup: dart.definiteFunctionType(async.Future$(core.List$(io.InternetAddress)), [core.String], {type: io.InternetAddressType}),
+    _cloneWithNewHost: dart.definiteFunctionType(io.InternetAddress, [io.InternetAddress, core.String])
+  }),
+  names: ['lookup', '_cloneWithNewHost']
+});
+io.NetworkInterface = class NetworkInterface extends core.Object {
+  static get listSupported() {
+    dart.throw(new core.UnsupportedError("NetworkInterface.listSupported"));
+  }
+  static list(opts) {
+    let includeLoopback = opts && 'includeLoopback' in opts ? opts.includeLoopback : false;
+    let includeLinkLocal = opts && 'includeLinkLocal' in opts ? opts.includeLinkLocal : false;
+    let type = opts && 'type' in opts ? opts.type : io.InternetAddressType.ANY;
+    dart.throw(new core.UnsupportedError("NetworkInterface.list"));
+  }
+};
+dart.setSignature(io.NetworkInterface, {
+  sgetters: () => ({listSupported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({list: dart.definiteFunctionType(async.Future$(core.List$(io.NetworkInterface)), [], {includeLoopback: core.bool, includeLinkLocal: core.bool, type: io.InternetAddressType})}),
+  names: ['list']
+});
+io.RawServerSocket = class RawServerSocket extends core.Object {
+  static bind(address, port, opts) {
+    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
+    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
+    let shared = opts && 'shared' in opts ? opts.shared : false;
+    dart.throw(new core.UnsupportedError("RawServerSocket.bind"));
+  }
+};
+io.RawServerSocket[dart.implements] = () => [StreamOfRawSocket()];
+dart.setSignature(io.RawServerSocket, {
+  statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.RawServerSocket), [dart.dynamic, core.int], {backlog: core.int, v6Only: core.bool, shared: core.bool})}),
+  names: ['bind']
+});
+io.ServerSocket = class ServerSocket extends core.Object {
+  static bind(address, port, opts) {
+    let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
+    let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
+    let shared = opts && 'shared' in opts ? opts.shared : false;
+    dart.throw(new core.UnsupportedError("ServerSocket.bind"));
+  }
+};
+io.ServerSocket[dart.implements] = () => [StreamOfSocket()];
+dart.setSignature(io.ServerSocket, {
+  statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.ServerSocket), [dart.dynamic, core.int], {backlog: core.int, v6Only: core.bool, shared: core.bool})}),
+  names: ['bind']
+});
+io.SocketDirection = class SocketDirection extends core.Object {
+  _(value) {
+    this[_value$1] = value;
+  }
+};
+dart.defineNamedConstructor(io.SocketDirection, '_');
+dart.setSignature(io.SocketDirection, {
+  constructors: () => ({_: dart.definiteFunctionType(io.SocketDirection, [dart.dynamic])}),
+  fields: () => ({[_value$1]: dart.dynamic}),
+  sfields: () => ({
+    RECEIVE: io.SocketDirection,
+    SEND: io.SocketDirection,
+    BOTH: io.SocketDirection
+  })
+});
+dart.defineLazy(io.SocketDirection, {
+  get RECEIVE() {
+    return dart.const(new io.SocketDirection._(0));
+  },
+  get SEND() {
+    return dart.const(new io.SocketDirection._(1));
+  },
+  get BOTH() {
+    return dart.const(new io.SocketDirection._(2));
+  }
+});
+io.SocketOption = class SocketOption extends core.Object {
+  _(value) {
+    this[_value$1] = value;
+  }
+};
+dart.defineNamedConstructor(io.SocketOption, '_');
+dart.setSignature(io.SocketOption, {
+  constructors: () => ({_: dart.definiteFunctionType(io.SocketOption, [dart.dynamic])}),
+  fields: () => ({[_value$1]: dart.dynamic}),
+  sfields: () => ({
+    TCP_NODELAY: io.SocketOption,
+    _IP_MULTICAST_LOOP: io.SocketOption,
+    _IP_MULTICAST_HOPS: io.SocketOption,
+    _IP_MULTICAST_IF: io.SocketOption,
+    _IP_BROADCAST: io.SocketOption
+  })
+});
+dart.defineLazy(io.SocketOption, {
+  get TCP_NODELAY() {
+    return dart.const(new io.SocketOption._(0));
+  },
+  get _IP_MULTICAST_LOOP() {
+    return dart.const(new io.SocketOption._(1));
+  },
+  get _IP_MULTICAST_HOPS() {
+    return dart.const(new io.SocketOption._(2));
+  },
+  get _IP_MULTICAST_IF() {
+    return dart.const(new io.SocketOption._(3));
+  },
+  get _IP_BROADCAST() {
+    return dart.const(new io.SocketOption._(4));
+  }
+});
+io.RawSocket = class RawSocket extends core.Object {
+  new() {
+    this.readEventsEnabled = null;
+    this.writeEventsEnabled = null;
+  }
+  static connect(host, port, opts) {
+    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
+    dart.throw(new core.UnsupportedError("RawSocket constructor"));
+  }
+};
+io.RawSocket[dart.implements] = () => [StreamOfRawSocketEvent()];
+dart.setSignature(io.RawSocket, {
+  fields: () => ({
+    readEventsEnabled: core.bool,
+    writeEventsEnabled: core.bool
+  }),
+  statics: () => ({connect: dart.definiteFunctionType(async.Future$(io.RawSocket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic})}),
+  names: ['connect']
+});
+io.Socket = class Socket extends core.Object {
+  static connect(host, port, opts) {
+    let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
+    dart.throw(new core.UnsupportedError("Socket constructor"));
+  }
+};
+io.Socket[dart.implements] = () => [StreamOfListOfint(), io.IOSink];
+dart.setSignature(io.Socket, {
+  statics: () => ({connect: dart.definiteFunctionType(async.Future$(io.Socket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic})}),
+  names: ['connect']
+});
+io.Datagram = class Datagram extends core.Object {
+  new(data, address, port) {
+    this.data = data;
+    this.address = address;
+    this.port = port;
+  }
+};
+dart.setSignature(io.Datagram, {
+  constructors: () => ({new: dart.definiteFunctionType(io.Datagram, [ListOfint(), io.InternetAddress, core.int])}),
+  fields: () => ({
+    data: ListOfint(),
+    address: io.InternetAddress,
+    port: core.int
+  })
+});
+io.RawDatagramSocket = class RawDatagramSocket extends async.Stream$(io.RawSocketEvent) {
+  new() {
+    this.readEventsEnabled = null;
+    this.writeEventsEnabled = null;
+    this.multicastLoopback = null;
+    this.multicastHops = null;
+    this.multicastInterface = null;
+    this.broadcastEnabled = null;
+    super.new();
+  }
+  static bind(host, port, opts) {
+    let reuseAddress = opts && 'reuseAddress' in opts ? opts.reuseAddress : true;
+    dart.throw(new core.UnsupportedError("RawDatagramSocket.bind"));
+  }
+};
+dart.addSimpleTypeTests(io.RawDatagramSocket);
+dart.setSignature(io.RawDatagramSocket, {
+  fields: () => ({
+    readEventsEnabled: core.bool,
+    writeEventsEnabled: core.bool,
+    multicastLoopback: core.bool,
+    multicastHops: core.int,
+    multicastInterface: io.NetworkInterface,
+    broadcastEnabled: core.bool
+  }),
+  statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.RawDatagramSocket), [dart.dynamic, core.int], {reuseAddress: core.bool})}),
+  names: ['bind']
+});
+io.SocketException = class SocketException extends core.Object {
+  new(message, opts) {
+    let osError = opts && 'osError' in opts ? opts.osError : null;
+    let address = opts && 'address' in opts ? opts.address : null;
+    let port = opts && 'port' in opts ? opts.port : null;
+    this.message = message;
+    this.osError = osError;
+    this.address = address;
+    this.port = port;
+  }
+  closed() {
+    this.message = 'Socket has been closed';
+    this.osError = null;
+    this.address = null;
+    this.port = null;
+  }
+  toString() {
+    let sb = new core.StringBuffer();
+    sb.write("SocketException");
+    if (!dart.test(this.message[dartx.isEmpty])) {
+      sb.write(dart.str`: ${this.message}`);
+      if (this.osError != null) {
+        sb.write(dart.str` (${this.osError})`);
+      }
+    } else if (this.osError != null) {
+      sb.write(dart.str`: ${this.osError}`);
     }
-    static list(opts) {
-      let includeLoopback = opts && 'includeLoopback' in opts ? opts.includeLoopback : false;
-      let includeLinkLocal = opts && 'includeLinkLocal' in opts ? opts.includeLinkLocal : false;
-      let type = opts && 'type' in opts ? opts.type : io.InternetAddressType.ANY;
-      dart.throw(new core.UnsupportedError("NetworkInterface.list"));
+    if (this.address != null) {
+      sb.write(dart.str`, address = ${this.address.host}`);
     }
-  };
-  dart.setSignature(io.NetworkInterface, {
-    sgetters: () => ({listSupported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({list: dart.definiteFunctionType(async.Future$(core.List$(io.NetworkInterface)), [], {includeLoopback: core.bool, includeLinkLocal: core.bool, type: io.InternetAddressType})}),
-    names: ['list']
-  });
-  io.RawServerSocket = class RawServerSocket extends core.Object {
-    static bind(address, port, opts) {
-      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
-      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
-      let shared = opts && 'shared' in opts ? opts.shared : false;
-      dart.throw(new core.UnsupportedError("RawServerSocket.bind"));
+    if (this.port != null) {
+      sb.write(dart.str`, port = ${this.port}`);
     }
-  };
-  io.RawServerSocket[dart.implements] = () => [StreamOfRawSocket()];
-  dart.setSignature(io.RawServerSocket, {
-    statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.RawServerSocket), [dart.dynamic, core.int], {backlog: core.int, v6Only: core.bool, shared: core.bool})}),
-    names: ['bind']
-  });
-  io.ServerSocket = class ServerSocket extends core.Object {
-    static bind(address, port, opts) {
-      let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
-      let v6Only = opts && 'v6Only' in opts ? opts.v6Only : false;
-      let shared = opts && 'shared' in opts ? opts.shared : false;
-      dart.throw(new core.UnsupportedError("ServerSocket.bind"));
-    }
-  };
-  io.ServerSocket[dart.implements] = () => [StreamOfSocket()];
-  dart.setSignature(io.ServerSocket, {
-    statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.ServerSocket), [dart.dynamic, core.int], {backlog: core.int, v6Only: core.bool, shared: core.bool})}),
-    names: ['bind']
-  });
-  io.SocketDirection = class SocketDirection extends core.Object {
-    _(value) {
-      this[_value$1] = value;
-    }
-  };
-  dart.defineNamedConstructor(io.SocketDirection, '_');
-  dart.setSignature(io.SocketDirection, {
-    constructors: () => ({_: dart.definiteFunctionType(io.SocketDirection, [dart.dynamic])}),
-    fields: () => ({[_value$1]: dart.dynamic}),
-    sfields: () => ({
-      RECEIVE: io.SocketDirection,
-      SEND: io.SocketDirection,
-      BOTH: io.SocketDirection
-    })
-  });
-  dart.defineLazy(io.SocketDirection, {
-    get RECEIVE() {
-      return dart.const(new io.SocketDirection._(0));
-    },
-    get SEND() {
-      return dart.const(new io.SocketDirection._(1));
-    },
-    get BOTH() {
-      return dart.const(new io.SocketDirection._(2));
-    }
-  });
-  io.SocketOption = class SocketOption extends core.Object {
-    _(value) {
-      this[_value$1] = value;
-    }
-  };
-  dart.defineNamedConstructor(io.SocketOption, '_');
-  dart.setSignature(io.SocketOption, {
-    constructors: () => ({_: dart.definiteFunctionType(io.SocketOption, [dart.dynamic])}),
-    fields: () => ({[_value$1]: dart.dynamic}),
-    sfields: () => ({
-      TCP_NODELAY: io.SocketOption,
-      _IP_MULTICAST_LOOP: io.SocketOption,
-      _IP_MULTICAST_HOPS: io.SocketOption,
-      _IP_MULTICAST_IF: io.SocketOption,
-      _IP_BROADCAST: io.SocketOption
-    })
-  });
-  dart.defineLazy(io.SocketOption, {
-    get TCP_NODELAY() {
-      return dart.const(new io.SocketOption._(0));
-    },
-    get _IP_MULTICAST_LOOP() {
-      return dart.const(new io.SocketOption._(1));
-    },
-    get _IP_MULTICAST_HOPS() {
-      return dart.const(new io.SocketOption._(2));
-    },
-    get _IP_MULTICAST_IF() {
-      return dart.const(new io.SocketOption._(3));
-    },
-    get _IP_BROADCAST() {
-      return dart.const(new io.SocketOption._(4));
-    }
-  });
-  io.RawSocket = class RawSocket extends core.Object {
-    new() {
-      this.readEventsEnabled = null;
-      this.writeEventsEnabled = null;
-    }
-    static connect(host, port, opts) {
-      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
-      dart.throw(new core.UnsupportedError("RawSocket constructor"));
-    }
-  };
-  io.RawSocket[dart.implements] = () => [StreamOfRawSocketEvent()];
-  dart.setSignature(io.RawSocket, {
-    fields: () => ({
-      readEventsEnabled: core.bool,
-      writeEventsEnabled: core.bool
-    }),
-    statics: () => ({connect: dart.definiteFunctionType(async.Future$(io.RawSocket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic})}),
-    names: ['connect']
-  });
-  io.Socket = class Socket extends core.Object {
-    static connect(host, port, opts) {
-      let sourceAddress = opts && 'sourceAddress' in opts ? opts.sourceAddress : null;
-      dart.throw(new core.UnsupportedError("Socket constructor"));
-    }
-  };
-  io.Socket[dart.implements] = () => [StreamOfListOfint(), io.IOSink];
-  dart.setSignature(io.Socket, {
-    statics: () => ({connect: dart.definiteFunctionType(async.Future$(io.Socket), [dart.dynamic, core.int], {sourceAddress: dart.dynamic})}),
-    names: ['connect']
-  });
-  io.Datagram = class Datagram extends core.Object {
-    new(data, address, port) {
-      this.data = data;
-      this.address = address;
-      this.port = port;
-    }
-  };
-  dart.setSignature(io.Datagram, {
-    constructors: () => ({new: dart.definiteFunctionType(io.Datagram, [ListOfint(), io.InternetAddress, core.int])}),
-    fields: () => ({
-      data: ListOfint(),
-      address: io.InternetAddress,
-      port: core.int
-    })
-  });
-  io.RawDatagramSocket = class RawDatagramSocket extends async.Stream$(io.RawSocketEvent) {
-    new() {
-      this.readEventsEnabled = null;
-      this.writeEventsEnabled = null;
-      this.multicastLoopback = null;
-      this.multicastHops = null;
-      this.multicastInterface = null;
-      this.broadcastEnabled = null;
-      super.new();
-    }
-    static bind(host, port, opts) {
-      let reuseAddress = opts && 'reuseAddress' in opts ? opts.reuseAddress : true;
-      dart.throw(new core.UnsupportedError("RawDatagramSocket.bind"));
-    }
-  };
-  dart.addSimpleTypeTests(io.RawDatagramSocket);
-  dart.setSignature(io.RawDatagramSocket, {
-    fields: () => ({
-      readEventsEnabled: core.bool,
-      writeEventsEnabled: core.bool,
-      multicastLoopback: core.bool,
-      multicastHops: core.int,
-      multicastInterface: io.NetworkInterface,
-      broadcastEnabled: core.bool
-    }),
-    statics: () => ({bind: dart.definiteFunctionType(async.Future$(io.RawDatagramSocket), [dart.dynamic, core.int], {reuseAddress: core.bool})}),
-    names: ['bind']
-  });
-  io.SocketException = class SocketException extends core.Object {
-    new(message, opts) {
-      let osError = opts && 'osError' in opts ? opts.osError : null;
-      let address = opts && 'address' in opts ? opts.address : null;
-      let port = opts && 'port' in opts ? opts.port : null;
-      this.message = message;
-      this.osError = osError;
-      this.address = address;
-      this.port = port;
-    }
-    closed() {
-      this.message = 'Socket has been closed';
-      this.osError = null;
-      this.address = null;
-      this.port = null;
-    }
-    toString() {
-      let sb = new core.StringBuffer();
-      sb.write("SocketException");
-      if (!dart.test(this.message[dartx.isEmpty])) {
-        sb.write(dart.str`: ${this.message}`);
-        if (this.osError != null) {
-          sb.write(dart.str` (${this.osError})`);
+    return sb.toString();
+  }
+};
+dart.defineNamedConstructor(io.SocketException, 'closed');
+io.SocketException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.SocketException, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.SocketException, [core.String], {osError: io.OSError, address: io.InternetAddress, port: core.int}),
+    closed: dart.definiteFunctionType(io.SocketException, [])
+  }),
+  fields: () => ({
+    message: core.String,
+    osError: io.OSError,
+    address: io.InternetAddress,
+    port: core.int
+  })
+});
+io._STDIO_HANDLE_TYPE_TERMINAL = 0;
+io._STDIO_HANDLE_TYPE_PIPE = 1;
+io._STDIO_HANDLE_TYPE_FILE = 2;
+io._STDIO_HANDLE_TYPE_SOCKET = 3;
+io._STDIO_HANDLE_TYPE_OTHER = 4;
+io._StdStream = class _StdStream extends async.Stream$(core.List$(core.int)) {
+  new(stream) {
+    this[_stream$] = stream;
+    super.new();
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+};
+dart.addSimpleTypeTests(io._StdStream);
+dart.setSignature(io._StdStream, {
+  constructors: () => ({new: dart.definiteFunctionType(io._StdStream, [StreamOfListOfint()])}),
+  fields: () => ({[_stream$]: StreamOfListOfint()}),
+  methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+});
+io.Stdin = class Stdin extends io._StdStream {
+  _(stream) {
+    super.new(stream);
+  }
+  readLineSync(opts) {
+    let encoding = opts && 'encoding' in opts ? opts.encoding : io.SYSTEM_ENCODING;
+    let retainNewlines = opts && 'retainNewlines' in opts ? opts.retainNewlines : false;
+    let CR = 13;
+    let LF = 10;
+    let line = [];
+    let crIsNewline = dart.test(io.Platform.isWindows) && dart.equals(io.stdioType(io.stdin), io.StdioType.TERMINAL) && !dart.test(/* Unimplemented unknown name */lineMode);
+    if (dart.test(retainNewlines)) {
+      let byte = null;
+      do {
+        byte = this.readByteSync();
+        if (dart.notNull(byte) < 0) {
+          break;
         }
-      } else if (this.osError != null) {
-        sb.write(dart.str`: ${this.osError}`);
+        line[dartx.add](byte);
+      } while (byte != LF && !(byte == CR && crIsNewline));
+      if (dart.test(line[dartx.isEmpty])) {
+        return null;
       }
-      if (this.address != null) {
-        sb.write(dart.str`, address = ${this.address.host}`);
-      }
-      if (this.port != null) {
-        sb.write(dart.str`, port = ${this.port}`);
-      }
-      return sb.toString();
-    }
-  };
-  dart.defineNamedConstructor(io.SocketException, 'closed');
-  io.SocketException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.SocketException, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.SocketException, [core.String], {osError: io.OSError, address: io.InternetAddress, port: core.int}),
-      closed: dart.definiteFunctionType(io.SocketException, [])
-    }),
-    fields: () => ({
-      message: core.String,
-      osError: io.OSError,
-      address: io.InternetAddress,
-      port: core.int
-    })
-  });
-  io._STDIO_HANDLE_TYPE_TERMINAL = 0;
-  io._STDIO_HANDLE_TYPE_PIPE = 1;
-  io._STDIO_HANDLE_TYPE_FILE = 2;
-  io._STDIO_HANDLE_TYPE_SOCKET = 3;
-  io._STDIO_HANDLE_TYPE_OTHER = 4;
-  io._StdStream = class _StdStream extends async.Stream$(core.List$(core.int)) {
-    new(stream) {
-      this[_stream$] = stream;
-      super.new();
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-  };
-  dart.addSimpleTypeTests(io._StdStream);
-  dart.setSignature(io._StdStream, {
-    constructors: () => ({new: dart.definiteFunctionType(io._StdStream, [StreamOfListOfint()])}),
-    fields: () => ({[_stream$]: StreamOfListOfint()}),
-    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-  });
-  io.Stdin = class Stdin extends io._StdStream {
-    _(stream) {
-      super.new(stream);
-    }
-    readLineSync(opts) {
-      let encoding = opts && 'encoding' in opts ? opts.encoding : io.SYSTEM_ENCODING;
-      let retainNewlines = opts && 'retainNewlines' in opts ? opts.retainNewlines : false;
-      let CR = 13;
-      let LF = 10;
-      let line = [];
-      let crIsNewline = dart.test(io.Platform.isWindows) && dart.equals(io.stdioType(io.stdin), io.StdioType.TERMINAL) && !dart.test(/* Unimplemented unknown name */lineMode);
-      if (dart.test(retainNewlines)) {
-        let byte = null;
-        do {
-          byte = this.readByteSync();
-          if (dart.notNull(byte) < 0) {
-            break;
-          }
-          line[dartx.add](byte);
-        } while (byte != LF && !(byte == CR && crIsNewline));
-        if (dart.test(line[dartx.isEmpty])) {
-          return null;
+    } else if (crIsNewline) {
+      while (true) {
+        let byte = this.readByteSync();
+        if (dart.notNull(byte) < 0) {
+          if (dart.test(line[dartx.isEmpty])) return null;
+          break;
         }
-      } else if (crIsNewline) {
+        if (byte == LF || byte == CR) break;
+        line[dartx.add](byte);
+      }
+    } else {
+      outer:
         while (true) {
           let byte = this.readByteSync();
+          if (byte == LF) break;
+          if (byte == CR) {
+            do {
+              byte = this.readByteSync();
+              if (byte == LF) break outer;
+              line[dartx.add](CR);
+            } while (byte == CR);
+          }
           if (dart.notNull(byte) < 0) {
             if (dart.test(line[dartx.isEmpty])) return null;
             break;
           }
-          if (byte == LF || byte == CR) break;
           line[dartx.add](byte);
         }
-      } else {
-        outer:
-          while (true) {
-            let byte = this.readByteSync();
-            if (byte == LF) break;
-            if (byte == CR) {
-              do {
-                byte = this.readByteSync();
-                if (byte == LF) break outer;
-                line[dartx.add](CR);
-              } while (byte == CR);
-            }
-            if (dart.notNull(byte) < 0) {
-              if (dart.test(line[dartx.isEmpty])) return null;
-              break;
-            }
-            line[dartx.add](byte);
-          }
-      }
-      return encoding.decode(ListOfint()._check(line));
     }
-    set echoMode(enabled) {
-      dart.throw(new core.UnsupportedError("Stdin.echoMode"));
+    return encoding.decode(ListOfint()._check(line));
+  }
+  set echoMode(enabled) {
+    dart.throw(new core.UnsupportedError("Stdin.echoMode"));
+  }
+  set echoMode(enabled) {
+    dart.throw(new core.UnsupportedError("Stdin.echoMode"));
+  }
+  set lineMode(enabled) {
+    dart.throw(new core.UnsupportedError("Stdin.lineMode"));
+  }
+  set lineMode(enabled) {
+    dart.throw(new core.UnsupportedError("Stdin.lineMode"));
+  }
+  readByteSync() {
+    dart.throw(new core.UnsupportedError("Stdin.readByteSync"));
+  }
+};
+dart.defineNamedConstructor(io.Stdin, '_');
+io.Stdin[dart.implements] = () => [StreamOfListOfint()];
+dart.setSignature(io.Stdin, {
+  constructors: () => ({_: dart.definiteFunctionType(io.Stdin, [StreamOfListOfint()])}),
+  setters: () => ({
+    echoMode: dart.definiteFunctionType(dart.void, [core.bool]),
+    echoMode: dart.definiteFunctionType(dart.void, [core.bool]),
+    lineMode: dart.definiteFunctionType(dart.void, [core.bool]),
+    lineMode: dart.definiteFunctionType(dart.void, [core.bool])
+  }),
+  methods: () => ({
+    readLineSync: dart.definiteFunctionType(core.String, [], {encoding: convert.Encoding, retainNewlines: core.bool}),
+    readByteSync: dart.definiteFunctionType(core.int, [])
+  })
+});
+const _fd = Symbol('_fd');
+const _nonBlocking = Symbol('_nonBlocking');
+const _hasTerminal = Symbol('_hasTerminal');
+const _terminalColumns = Symbol('_terminalColumns');
+const _terminalLines = Symbol('_terminalLines');
+io._StdSink = class _StdSink extends core.Object {
+  new(sink) {
+    this[_sink$0] = sink;
+  }
+  get encoding() {
+    return this[_sink$0].encoding;
+  }
+  set encoding(encoding) {
+    this[_sink$0].encoding = encoding;
+  }
+  write(object) {
+    this[_sink$0].write(object);
+  }
+  writeln(object) {
+    if (object === void 0) object = "";
+    this[_sink$0].writeln(object);
+  }
+  writeAll(objects, sep) {
+    if (sep === void 0) sep = "";
+    this[_sink$0].writeAll(objects, sep);
+  }
+  add(data) {
+    this[_sink$0].add(data);
+  }
+  addError(error, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    this[_sink$0].addError(error, stackTrace);
+  }
+  writeCharCode(charCode) {
+    this[_sink$0].writeCharCode(charCode);
+  }
+  addStream(stream) {
+    return this[_sink$0].addStream(stream);
+  }
+  flush() {
+    return this[_sink$0].flush();
+  }
+  close() {
+    return this[_sink$0].close();
+  }
+  get done() {
+    return this[_sink$0].done;
+  }
+};
+io._StdSink[dart.implements] = () => [io.IOSink];
+dart.setSignature(io._StdSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._StdSink, [io.IOSink])}),
+  fields: () => ({[_sink$0]: io.IOSink}),
+  getters: () => ({
+    encoding: dart.definiteFunctionType(convert.Encoding, []),
+    done: dart.definiteFunctionType(async.Future, [])
+  }),
+  setters: () => ({encoding: dart.definiteFunctionType(dart.void, [convert.Encoding])}),
+  methods: () => ({
+    write: dart.definiteFunctionType(dart.void, [core.Object]),
+    writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+    writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
+    addStream: dart.definiteFunctionType(async.Future, [StreamOfListOfint()]),
+    flush: dart.definiteFunctionType(async.Future, []),
+    close: dart.definiteFunctionType(async.Future, [])
+  })
+});
+io.Stdout = class Stdout extends io._StdSink {
+  _(sink, fd) {
+    this[_fd] = fd;
+    this[_nonBlocking] = null;
+    super.new(sink);
+  }
+  get hasTerminal() {
+    return this[_hasTerminal](this[_fd]);
+  }
+  get terminalColumns() {
+    return this[_terminalColumns](this[_fd]);
+  }
+  get terminalLines() {
+    return this[_terminalLines](this[_fd]);
+  }
+  [_hasTerminal](fd) {
+    dart.throw(new core.UnsupportedError("Stdout.hasTerminal"));
+  }
+  [_terminalColumns](fd) {
+    dart.throw(new core.UnsupportedError("Stdout.terminalColumns"));
+  }
+  [_terminalLines](fd) {
+    dart.throw(new core.UnsupportedError("Stdout.terminalLines"));
+  }
+  get nonBlocking() {
+    if (this[_nonBlocking] == null) {
+      this[_nonBlocking] = io.IOSink.new(new io._FileStreamConsumer.fromStdio(this[_fd]));
     }
-    set echoMode(enabled) {
-      dart.throw(new core.UnsupportedError("Stdin.echoMode"));
-    }
-    set lineMode(enabled) {
-      dart.throw(new core.UnsupportedError("Stdin.lineMode"));
-    }
-    set lineMode(enabled) {
-      dart.throw(new core.UnsupportedError("Stdin.lineMode"));
-    }
-    readByteSync() {
-      dart.throw(new core.UnsupportedError("Stdin.readByteSync"));
-    }
-  };
-  dart.defineNamedConstructor(io.Stdin, '_');
-  io.Stdin[dart.implements] = () => [StreamOfListOfint()];
-  dart.setSignature(io.Stdin, {
-    constructors: () => ({_: dart.definiteFunctionType(io.Stdin, [StreamOfListOfint()])}),
-    setters: () => ({
-      echoMode: dart.definiteFunctionType(dart.void, [core.bool]),
-      echoMode: dart.definiteFunctionType(dart.void, [core.bool]),
-      lineMode: dart.definiteFunctionType(dart.void, [core.bool]),
-      lineMode: dart.definiteFunctionType(dart.void, [core.bool])
-    }),
-    methods: () => ({
-      readLineSync: dart.definiteFunctionType(core.String, [], {encoding: convert.Encoding, retainNewlines: core.bool}),
-      readByteSync: dart.definiteFunctionType(core.int, [])
-    })
-  });
-  const _fd = Symbol('_fd');
-  const _nonBlocking = Symbol('_nonBlocking');
-  const _hasTerminal = Symbol('_hasTerminal');
-  const _terminalColumns = Symbol('_terminalColumns');
-  const _terminalLines = Symbol('_terminalLines');
-  io._StdSink = class _StdSink extends core.Object {
-    new(sink) {
-      this[_sink$0] = sink;
-    }
-    get encoding() {
-      return this[_sink$0].encoding;
-    }
-    set encoding(encoding) {
-      this[_sink$0].encoding = encoding;
-    }
-    write(object) {
-      this[_sink$0].write(object);
-    }
-    writeln(object) {
-      if (object === void 0) object = "";
-      this[_sink$0].writeln(object);
-    }
-    writeAll(objects, sep) {
-      if (sep === void 0) sep = "";
-      this[_sink$0].writeAll(objects, sep);
-    }
-    add(data) {
-      this[_sink$0].add(data);
-    }
-    addError(error, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      this[_sink$0].addError(error, stackTrace);
-    }
-    writeCharCode(charCode) {
-      this[_sink$0].writeCharCode(charCode);
-    }
-    addStream(stream) {
-      return this[_sink$0].addStream(stream);
-    }
-    flush() {
-      return this[_sink$0].flush();
-    }
-    close() {
-      return this[_sink$0].close();
-    }
-    get done() {
-      return this[_sink$0].done;
-    }
-  };
-  io._StdSink[dart.implements] = () => [io.IOSink];
-  dart.setSignature(io._StdSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._StdSink, [io.IOSink])}),
-    fields: () => ({[_sink$0]: io.IOSink}),
-    getters: () => ({
-      encoding: dart.definiteFunctionType(convert.Encoding, []),
-      done: dart.definiteFunctionType(async.Future, [])
-    }),
-    setters: () => ({encoding: dart.definiteFunctionType(dart.void, [convert.Encoding])}),
-    methods: () => ({
-      write: dart.definiteFunctionType(dart.void, [core.Object]),
-      writeln: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      writeAll: dart.definiteFunctionType(dart.void, [core.Iterable], [core.String]),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-      writeCharCode: dart.definiteFunctionType(dart.void, [core.int]),
-      addStream: dart.definiteFunctionType(async.Future, [StreamOfListOfint()]),
-      flush: dart.definiteFunctionType(async.Future, []),
-      close: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  io.Stdout = class Stdout extends io._StdSink {
-    _(sink, fd) {
-      this[_fd] = fd;
-      this[_nonBlocking] = null;
-      super.new(sink);
-    }
-    get hasTerminal() {
-      return this[_hasTerminal](this[_fd]);
-    }
-    get terminalColumns() {
-      return this[_terminalColumns](this[_fd]);
-    }
-    get terminalLines() {
-      return this[_terminalLines](this[_fd]);
-    }
-    [_hasTerminal](fd) {
-      dart.throw(new core.UnsupportedError("Stdout.hasTerminal"));
-    }
-    [_terminalColumns](fd) {
-      dart.throw(new core.UnsupportedError("Stdout.terminalColumns"));
-    }
-    [_terminalLines](fd) {
-      dart.throw(new core.UnsupportedError("Stdout.terminalLines"));
-    }
-    get nonBlocking() {
-      if (this[_nonBlocking] == null) {
-        this[_nonBlocking] = io.IOSink.new(new io._FileStreamConsumer.fromStdio(this[_fd]));
-      }
-      return this[_nonBlocking];
-    }
-  };
-  dart.defineNamedConstructor(io.Stdout, '_');
-  io.Stdout[dart.implements] = () => [io.IOSink];
-  dart.setSignature(io.Stdout, {
-    constructors: () => ({_: dart.definiteFunctionType(io.Stdout, [io.IOSink, core.int])}),
-    fields: () => ({
-      [_fd]: core.int,
-      [_nonBlocking]: io.IOSink
-    }),
-    getters: () => ({
-      hasTerminal: dart.definiteFunctionType(core.bool, []),
-      terminalColumns: dart.definiteFunctionType(core.int, []),
-      terminalLines: dart.definiteFunctionType(core.int, []),
-      nonBlocking: dart.definiteFunctionType(io.IOSink, [])
-    }),
-    methods: () => ({
-      [_hasTerminal]: dart.definiteFunctionType(core.bool, [core.int]),
-      [_terminalColumns]: dart.definiteFunctionType(core.int, [core.int]),
-      [_terminalLines]: dart.definiteFunctionType(core.int, [core.int])
-    })
-  });
-  io.StdoutException = class StdoutException extends core.Object {
-    new(message, osError) {
-      if (osError === void 0) osError = null;
-      this.message = message;
-      this.osError = osError;
-    }
-    toString() {
-      return dart.str`StdoutException: ${this.message}${this.osError == null ? "" : dart.str`, ${this.osError}`}`;
-    }
-  };
-  io.StdoutException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.StdoutException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.StdoutException, [core.String], [io.OSError])}),
-    fields: () => ({
-      message: core.String,
-      osError: io.OSError
-    })
-  });
-  io._StdConsumer = class _StdConsumer extends core.Object {
-    new(fd) {
-      this[_file] = io._File._openStdioSync(fd);
-    }
-    addStream(stream) {
-      let completer = async.Completer.new();
-      let sub = null;
-      sub = stream.listen(dart.fn(data => {
-        try {
-          dart.dsend(this[_file], 'writeFromSync', data);
-        } catch (e) {
-          let s = dart.stackTrace(e);
-          dart.dsend(sub, 'cancel');
-          completer.completeError(e, s);
-        }
-
-      }, ListOfintToNull()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
-      return completer.future;
-    }
-    close() {
-      dart.dsend(this[_file], 'closeSync');
-      return async.Future.value();
-    }
-  };
-  io._StdConsumer[dart.implements] = () => [StreamConsumerOfListOfint()];
-  dart.setSignature(io._StdConsumer, {
-    constructors: () => ({new: dart.definiteFunctionType(io._StdConsumer, [core.int])}),
-    fields: () => ({[_file]: dart.dynamic}),
-    methods: () => ({
-      addStream: dart.definiteFunctionType(async.Future, [StreamOfListOfint()]),
-      close: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  io.StdioType = class StdioType extends core.Object {
-    _(name) {
-      this.name = name;
-    }
-    toString() {
-      return dart.str`StdioType: ${this.name}`;
-    }
-  };
-  dart.defineNamedConstructor(io.StdioType, '_');
-  dart.setSignature(io.StdioType, {
-    constructors: () => ({_: dart.definiteFunctionType(io.StdioType, [core.String])}),
-    fields: () => ({name: core.String}),
-    sfields: () => ({
-      TERMINAL: io.StdioType,
-      PIPE: io.StdioType,
-      FILE: io.StdioType,
-      OTHER: io.StdioType
-    })
-  });
-  dart.defineLazy(io.StdioType, {
-    get TERMINAL() {
-      return dart.const(new io.StdioType._("terminal"));
-    },
-    get PIPE() {
-      return dart.const(new io.StdioType._("pipe"));
-    },
-    get FILE() {
-      return dart.const(new io.StdioType._("file"));
-    },
-    get OTHER() {
-      return dart.const(new io.StdioType._("other"));
-    }
-  });
-  io._stdin = null;
-  io._stdout = null;
-  io._stderr = null;
-  dart.copyProperties(io, {
-    get stdin() {
-      if (io._stdin == null) {
-        io._stdin = io._StdIOUtils._getStdioInputStream();
-      }
-      return io._stdin;
-    }
-  });
-  dart.copyProperties(io, {
-    get stdout() {
-      if (io._stdout == null) {
-        io._stdout = io.Stdout._check(io._StdIOUtils._getStdioOutputStream(1));
-      }
-      return io._stdout;
-    }
-  });
-  dart.copyProperties(io, {
-    get stderr() {
-      if (io._stderr == null) {
-        io._stderr = io.Stdout._check(io._StdIOUtils._getStdioOutputStream(2));
-      }
-      return io._stderr;
-    }
-  });
-  io.stdioType = function(object) {
-    if (io._StdStream.is(object)) {
-      object = dart.dload(object, _stream$);
-    } else if (dart.equals(object, io.stdout) || dart.equals(object, io.stderr)) {
-      switch (io._StdIOUtils._getStdioHandleType(dart.equals(object, io.stdout) ? 1 : 2)) {
-        case io._STDIO_HANDLE_TYPE_TERMINAL:
-        {
-          return io.StdioType.TERMINAL;
-        }
-        case io._STDIO_HANDLE_TYPE_PIPE:
-        {
-          return io.StdioType.PIPE;
-        }
-        case io._STDIO_HANDLE_TYPE_FILE:
-        {
-          return io.StdioType.FILE;
-        }
-      }
-    }
-    if (io._FileStream.is(object)) {
-      return io.StdioType.FILE;
-    }
-    if (io.Socket.is(object)) {
-      let socketType = io._StdIOUtils._socketType(object);
-      if (socketType == null) return io.StdioType.OTHER;
-      switch (socketType) {
-        case io._STDIO_HANDLE_TYPE_TERMINAL:
-        {
-          return io.StdioType.TERMINAL;
-        }
-        case io._STDIO_HANDLE_TYPE_PIPE:
-        {
-          return io.StdioType.PIPE;
-        }
-        case io._STDIO_HANDLE_TYPE_FILE:
-        {
-          return io.StdioType.FILE;
-        }
-      }
-    }
-    if (io._IOSinkImpl.is(object)) {
+    return this[_nonBlocking];
+  }
+};
+dart.defineNamedConstructor(io.Stdout, '_');
+io.Stdout[dart.implements] = () => [io.IOSink];
+dart.setSignature(io.Stdout, {
+  constructors: () => ({_: dart.definiteFunctionType(io.Stdout, [io.IOSink, core.int])}),
+  fields: () => ({
+    [_fd]: core.int,
+    [_nonBlocking]: io.IOSink
+  }),
+  getters: () => ({
+    hasTerminal: dart.definiteFunctionType(core.bool, []),
+    terminalColumns: dart.definiteFunctionType(core.int, []),
+    terminalLines: dart.definiteFunctionType(core.int, []),
+    nonBlocking: dart.definiteFunctionType(io.IOSink, [])
+  }),
+  methods: () => ({
+    [_hasTerminal]: dart.definiteFunctionType(core.bool, [core.int]),
+    [_terminalColumns]: dart.definiteFunctionType(core.int, [core.int]),
+    [_terminalLines]: dart.definiteFunctionType(core.int, [core.int])
+  })
+});
+io.StdoutException = class StdoutException extends core.Object {
+  new(message, osError) {
+    if (osError === void 0) osError = null;
+    this.message = message;
+    this.osError = osError;
+  }
+  toString() {
+    return dart.str`StdoutException: ${this.message}${this.osError == null ? "" : dart.str`, ${this.osError}`}`;
+  }
+};
+io.StdoutException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.StdoutException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.StdoutException, [core.String], [io.OSError])}),
+  fields: () => ({
+    message: core.String,
+    osError: io.OSError
+  })
+});
+io._StdConsumer = class _StdConsumer extends core.Object {
+  new(fd) {
+    this[_file] = io._File._openStdioSync(fd);
+  }
+  addStream(stream) {
+    let completer = async.Completer.new();
+    let sub = null;
+    sub = stream.listen(dart.fn(data => {
       try {
-        if (io._FileStreamConsumer.is(object[_target$])) {
-          return io.StdioType.FILE;
-        }
+        dart.dsend(this[_file], 'writeFromSync', data);
       } catch (e) {
+        let s = dart.stackTrace(e);
+        dart.dsend(sub, 'cancel');
+        completer.completeError(e, s);
       }
 
+    }, ListOfintToNull()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
+    return completer.future;
+  }
+  close() {
+    dart.dsend(this[_file], 'closeSync');
+    return async.Future.value();
+  }
+};
+io._StdConsumer[dart.implements] = () => [StreamConsumerOfListOfint()];
+dart.setSignature(io._StdConsumer, {
+  constructors: () => ({new: dart.definiteFunctionType(io._StdConsumer, [core.int])}),
+  fields: () => ({[_file]: dart.dynamic}),
+  methods: () => ({
+    addStream: dart.definiteFunctionType(async.Future, [StreamOfListOfint()]),
+    close: dart.definiteFunctionType(async.Future, [])
+  })
+});
+io.StdioType = class StdioType extends core.Object {
+  _(name) {
+    this.name = name;
+  }
+  toString() {
+    return dart.str`StdioType: ${this.name}`;
+  }
+};
+dart.defineNamedConstructor(io.StdioType, '_');
+dart.setSignature(io.StdioType, {
+  constructors: () => ({_: dart.definiteFunctionType(io.StdioType, [core.String])}),
+  fields: () => ({name: core.String}),
+  sfields: () => ({
+    TERMINAL: io.StdioType,
+    PIPE: io.StdioType,
+    FILE: io.StdioType,
+    OTHER: io.StdioType
+  })
+});
+dart.defineLazy(io.StdioType, {
+  get TERMINAL() {
+    return dart.const(new io.StdioType._("terminal"));
+  },
+  get PIPE() {
+    return dart.const(new io.StdioType._("pipe"));
+  },
+  get FILE() {
+    return dart.const(new io.StdioType._("file"));
+  },
+  get OTHER() {
+    return dart.const(new io.StdioType._("other"));
+  }
+});
+io._stdin = null;
+io._stdout = null;
+io._stderr = null;
+dart.copyProperties(io, {
+  get stdin() {
+    if (io._stdin == null) {
+      io._stdin = io._StdIOUtils._getStdioInputStream();
     }
-    return io.StdioType.OTHER;
-  };
-  dart.fn(io.stdioType, dynamicToStdioType());
-  io._StdIOUtils = class _StdIOUtils extends core.Object {
-    static _getStdioOutputStream(fd) {
-      dart.throw(new core.UnsupportedError("StdIOUtils._getStdioOutputStream"));
+    return io._stdin;
+  }
+});
+dart.copyProperties(io, {
+  get stdout() {
+    if (io._stdout == null) {
+      io._stdout = io.Stdout._check(io._StdIOUtils._getStdioOutputStream(1));
     }
-    static _getStdioInputStream() {
-      dart.throw(new core.UnsupportedError("StdIOUtils._getStdioInputStream"));
+    return io._stdout;
+  }
+});
+dart.copyProperties(io, {
+  get stderr() {
+    if (io._stderr == null) {
+      io._stderr = io.Stdout._check(io._StdIOUtils._getStdioOutputStream(2));
     }
-    static _socketType(socket) {
-      dart.throw(new core.UnsupportedError("StdIOUtils._socketType"));
+    return io._stderr;
+  }
+});
+io.stdioType = function(object) {
+  if (io._StdStream.is(object)) {
+    object = dart.dload(object, _stream$);
+  } else if (dart.equals(object, io.stdout) || dart.equals(object, io.stderr)) {
+    switch (io._StdIOUtils._getStdioHandleType(dart.equals(object, io.stdout) ? 1 : 2)) {
+      case io._STDIO_HANDLE_TYPE_TERMINAL:
+      {
+        return io.StdioType.TERMINAL;
+      }
+      case io._STDIO_HANDLE_TYPE_PIPE:
+      {
+        return io.StdioType.PIPE;
+      }
+      case io._STDIO_HANDLE_TYPE_FILE:
+      {
+        return io.StdioType.FILE;
+      }
     }
-    static _getStdioHandleType(fd) {
-      dart.throw(new core.UnsupportedError("StdIOUtils._getStdioHandleType"));
+  }
+  if (io._FileStream.is(object)) {
+    return io.StdioType.FILE;
+  }
+  if (io.Socket.is(object)) {
+    let socketType = io._StdIOUtils._socketType(object);
+    if (socketType == null) return io.StdioType.OTHER;
+    switch (socketType) {
+      case io._STDIO_HANDLE_TYPE_TERMINAL:
+      {
+        return io.StdioType.TERMINAL;
+      }
+      case io._STDIO_HANDLE_TYPE_PIPE:
+      {
+        return io.StdioType.PIPE;
+      }
+      case io._STDIO_HANDLE_TYPE_FILE:
+      {
+        return io.StdioType.FILE;
+      }
     }
-  };
-  dart.setSignature(io._StdIOUtils, {
-    statics: () => ({
-      _getStdioOutputStream: dart.definiteFunctionType(dart.dynamic, [core.int]),
-      _getStdioInputStream: dart.definiteFunctionType(io.Stdin, []),
-      _socketType: dart.definiteFunctionType(core.int, [io.Socket]),
-      _getStdioHandleType: dart.definiteFunctionType(dart.dynamic, [core.int])
-    }),
-    names: ['_getStdioOutputStream', '_getStdioInputStream', '_socketType', '_getStdioHandleType']
-  });
-  let const$76;
-  let const$77;
-  let const$78;
-  let const$79;
-  io.SystemEncoding = class SystemEncoding extends convert.Encoding {
-    new() {
-      super.new();
+  }
+  if (io._IOSinkImpl.is(object)) {
+    try {
+      if (io._FileStreamConsumer.is(object[_target$])) {
+        return io.StdioType.FILE;
+      }
+    } catch (e) {
     }
-    get name() {
-      return 'system';
+
+  }
+  return io.StdioType.OTHER;
+};
+dart.fn(io.stdioType, dynamicToStdioType());
+io._StdIOUtils = class _StdIOUtils extends core.Object {
+  static _getStdioOutputStream(fd) {
+    dart.throw(new core.UnsupportedError("StdIOUtils._getStdioOutputStream"));
+  }
+  static _getStdioInputStream() {
+    dart.throw(new core.UnsupportedError("StdIOUtils._getStdioInputStream"));
+  }
+  static _socketType(socket) {
+    dart.throw(new core.UnsupportedError("StdIOUtils._socketType"));
+  }
+  static _getStdioHandleType(fd) {
+    dart.throw(new core.UnsupportedError("StdIOUtils._getStdioHandleType"));
+  }
+};
+dart.setSignature(io._StdIOUtils, {
+  statics: () => ({
+    _getStdioOutputStream: dart.definiteFunctionType(dart.dynamic, [core.int]),
+    _getStdioInputStream: dart.definiteFunctionType(io.Stdin, []),
+    _socketType: dart.definiteFunctionType(core.int, [io.Socket]),
+    _getStdioHandleType: dart.definiteFunctionType(dart.dynamic, [core.int])
+  }),
+  names: ['_getStdioOutputStream', '_getStdioInputStream', '_socketType', '_getStdioHandleType']
+});
+let const$76;
+let const$77;
+let const$78;
+let const$79;
+io.SystemEncoding = class SystemEncoding extends convert.Encoding {
+  new() {
+    super.new();
+  }
+  get name() {
+    return 'system';
+  }
+  encode(input) {
+    return this.encoder.convert(input);
+  }
+  decode(encoded) {
+    return this.decoder.convert(encoded);
+  }
+  get encoder() {
+    if (io.Platform.operatingSystem == "windows") {
+      return const$76 || (const$76 = dart.const(new io._WindowsCodePageEncoder()));
+    } else {
+      return const$77 || (const$77 = dart.const(new convert.Utf8Encoder()));
     }
-    encode(input) {
-      return this.encoder.convert(input);
+  }
+  get decoder() {
+    if (io.Platform.operatingSystem == "windows") {
+      return const$78 || (const$78 = dart.const(new io._WindowsCodePageDecoder()));
+    } else {
+      return const$79 || (const$79 = dart.const(new convert.Utf8Decoder()));
     }
-    decode(encoded) {
-      return this.decoder.convert(encoded);
+  }
+};
+dart.setSignature(io.SystemEncoding, {
+  constructors: () => ({new: dart.definiteFunctionType(io.SystemEncoding, [])}),
+  getters: () => ({
+    name: dart.definiteFunctionType(core.String, []),
+    encoder: dart.definiteFunctionType(convert.Converter$(core.String, core.List$(core.int)), []),
+    decoder: dart.definiteFunctionType(convert.Converter$(core.List$(core.int), core.String), [])
+  })
+});
+io.SYSTEM_ENCODING = dart.const(new io.SystemEncoding());
+io._WindowsCodePageEncoder = class _WindowsCodePageEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
+  new() {
+    super.new();
+  }
+  convert(input) {
+    let encoded = io._WindowsCodePageEncoder._encodeString(input);
+    if (encoded == null) {
+      dart.throw(new core.FormatException("Invalid character for encoding"));
     }
-    get encoder() {
-      if (io.Platform.operatingSystem == "windows") {
-        return const$76 || (const$76 = dart.const(new io._WindowsCodePageEncoder()));
+    return encoded;
+  }
+  startChunkedConversion(sink) {
+    return new io._WindowsCodePageEncoderSink(sink);
+  }
+  static _encodeString(string) {
+    dart.throw(new core.UnsupportedError("_WindowsCodePageEncoder._encodeString"));
+  }
+};
+dart.addSimpleTypeTests(io._WindowsCodePageEncoder);
+dart.setSignature(io._WindowsCodePageEncoder, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageEncoder, [])}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.List$(core.int), [core.String]),
+    startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
+  }),
+  statics: () => ({_encodeString: dart.definiteFunctionType(core.List$(core.int), [core.String])}),
+  names: ['_encodeString']
+});
+io._WindowsCodePageEncoderSink = class _WindowsCodePageEncoderSink extends convert.StringConversionSinkBase {
+  new(sink) {
+    this[_sink$0] = sink;
+  }
+  close() {
+    this[_sink$0].close();
+  }
+  add(string) {
+    let encoded = io._WindowsCodePageEncoder._encodeString(string);
+    if (encoded == null) {
+      dart.throw(new core.FormatException("Invalid character for encoding"));
+    }
+    this[_sink$0].add(encoded);
+  }
+  addSlice(source, start, end, isLast) {
+    if (start != 0 || end != source[dartx.length]) {
+      source = source[dartx.substring](start, end);
+    }
+    this.add(source);
+    if (dart.test(isLast)) this.close();
+  }
+};
+dart.setSignature(io._WindowsCodePageEncoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageEncoderSink, [SinkOfListOfint()])}),
+  fields: () => ({[_sink$0]: SinkOfListOfint()}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
+  })
+});
+io._WindowsCodePageDecoder = class _WindowsCodePageDecoder extends convert.Converter$(core.List$(core.int), core.String) {
+  new() {
+    super.new();
+  }
+  convert(input) {
+    return io._WindowsCodePageDecoder._decodeBytes(input);
+  }
+  startChunkedConversion(sink) {
+    return new io._WindowsCodePageDecoderSink(sink);
+  }
+  static _decodeBytes(bytes) {
+    dart.throw(new core.UnsupportedError("_WindowsCodePageDecoder._decodeBytes"));
+  }
+};
+dart.addSimpleTypeTests(io._WindowsCodePageDecoder);
+dart.setSignature(io._WindowsCodePageDecoder, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageDecoder, [])}),
+  methods: () => ({
+    convert: dart.definiteFunctionType(core.String, [ListOfint()]),
+    startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
+  }),
+  statics: () => ({_decodeBytes: dart.definiteFunctionType(core.String, [ListOfint()])}),
+  names: ['_decodeBytes']
+});
+io._WindowsCodePageDecoderSink = class _WindowsCodePageDecoderSink extends convert.ByteConversionSinkBase {
+  new(sink) {
+    this[_sink$0] = sink;
+    super.new();
+  }
+  close() {
+    this[_sink$0].close();
+  }
+  add(bytes) {
+    this[_sink$0].add(io._WindowsCodePageDecoder._decodeBytes(bytes));
+  }
+};
+dart.setSignature(io._WindowsCodePageDecoderSink, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageDecoderSink, [SinkOfString()])}),
+  fields: () => ({[_sink$0]: SinkOfString()}),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()])
+  })
+});
+io.WebSocketStatus = class WebSocketStatus extends core.Object {};
+dart.setSignature(io.WebSocketStatus, {
+  sfields: () => ({
+    NORMAL_CLOSURE: core.int,
+    GOING_AWAY: core.int,
+    PROTOCOL_ERROR: core.int,
+    UNSUPPORTED_DATA: core.int,
+    RESERVED_1004: core.int,
+    NO_STATUS_RECEIVED: core.int,
+    ABNORMAL_CLOSURE: core.int,
+    INVALID_FRAME_PAYLOAD_DATA: core.int,
+    POLICY_VIOLATION: core.int,
+    MESSAGE_TOO_BIG: core.int,
+    MISSING_MANDATORY_EXTENSION: core.int,
+    INTERNAL_SERVER_ERROR: core.int,
+    RESERVED_1015: core.int
+  })
+});
+io.WebSocketStatus.NORMAL_CLOSURE = 1000;
+io.WebSocketStatus.GOING_AWAY = 1001;
+io.WebSocketStatus.PROTOCOL_ERROR = 1002;
+io.WebSocketStatus.UNSUPPORTED_DATA = 1003;
+io.WebSocketStatus.RESERVED_1004 = 1004;
+io.WebSocketStatus.NO_STATUS_RECEIVED = 1005;
+io.WebSocketStatus.ABNORMAL_CLOSURE = 1006;
+io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA = 1007;
+io.WebSocketStatus.POLICY_VIOLATION = 1008;
+io.WebSocketStatus.MESSAGE_TOO_BIG = 1009;
+io.WebSocketStatus.MISSING_MANDATORY_EXTENSION = 1010;
+io.WebSocketStatus.INTERNAL_SERVER_ERROR = 1011;
+io.WebSocketStatus.RESERVED_1015 = 1015;
+const _createServerResponseHeader = Symbol('_createServerResponseHeader');
+const _createClientRequestHeader = Symbol('_createClientRequestHeader');
+const _createHeader = Symbol('_createHeader');
+io.CompressionOptions = class CompressionOptions extends core.Object {
+  new(opts) {
+    let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
+    let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
+    let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : null;
+    let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : null;
+    let enabled = opts && 'enabled' in opts ? opts.enabled : true;
+    this.clientNoContextTakeover = clientNoContextTakeover;
+    this.serverNoContextTakeover = serverNoContextTakeover;
+    this.clientMaxWindowBits = clientMaxWindowBits;
+    this.serverMaxWindowBits = serverMaxWindowBits;
+    this.enabled = enabled;
+  }
+  [_createServerResponseHeader](requested) {
+    let info = new io._CompressionMaxWindowBits();
+    let mwb = null;
+    let part = null;
+    if (dart.nullSafe(requested, _ => _.parameters) != null) {
+      part = requested.parameters[dartx._get](io._serverMaxWindowBits);
+    }
+    if (part != null) {
+      if (dart.notNull(part[dartx.length]) >= 2 && dart.test(part[dartx.startsWith]('0'))) {
+        dart.throw(new core.ArgumentError("Illegal 0 padding on value."));
       } else {
-        return const$77 || (const$77 = dart.const(new convert.Utf8Encoder()));
+        mwb = this.serverMaxWindowBits == null ? core.int.parse(part, {onError: dart.fn(source => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint$())}) : this.serverMaxWindowBits;
+        info.headerValue = dart.str`; server_max_window_bits=${mwb}`;
+        info.maxWindowBits = mwb;
       }
+    } else {
+      info.headerValue = "";
+      info.maxWindowBits = io._WebSocketImpl.DEFAULT_WINDOW_BITS;
     }
-    get decoder() {
-      if (io.Platform.operatingSystem == "windows") {
-        return const$78 || (const$78 = dart.const(new io._WindowsCodePageDecoder()));
+    return info;
+  }
+  [_createClientRequestHeader](requested, size) {
+    let info = "";
+    if (requested != null) {
+      info = dart.str`; client_max_window_bits=${size}`;
+    } else {
+      if (this.clientMaxWindowBits == null) {
+        info = "; client_max_window_bits";
       } else {
-        return const$79 || (const$79 = dart.const(new convert.Utf8Decoder()));
+        info = dart.str`; client_max_window_bits=${this.clientMaxWindowBits}`;
+      }
+      if (this.serverMaxWindowBits != null) {
+        info = info + dart.str`; server_max_window_bits=${this.serverMaxWindowBits}`;
       }
     }
-  };
-  dart.setSignature(io.SystemEncoding, {
-    constructors: () => ({new: dart.definiteFunctionType(io.SystemEncoding, [])}),
-    getters: () => ({
-      name: dart.definiteFunctionType(core.String, []),
-      encoder: dart.definiteFunctionType(convert.Converter$(core.String, core.List$(core.int)), []),
-      decoder: dart.definiteFunctionType(convert.Converter$(core.List$(core.int), core.String), [])
-    })
-  });
-  io.SYSTEM_ENCODING = dart.const(new io.SystemEncoding());
-  io._WindowsCodePageEncoder = class _WindowsCodePageEncoder extends convert.Converter$(core.String, core.List$(core.int)) {
-    new() {
-      super.new();
-    }
-    convert(input) {
-      let encoded = io._WindowsCodePageEncoder._encodeString(input);
-      if (encoded == null) {
-        dart.throw(new core.FormatException("Invalid character for encoding"));
-      }
-      return encoded;
-    }
-    startChunkedConversion(sink) {
-      return new io._WindowsCodePageEncoderSink(sink);
-    }
-    static _encodeString(string) {
-      dart.throw(new core.UnsupportedError("_WindowsCodePageEncoder._encodeString"));
-    }
-  };
-  dart.addSimpleTypeTests(io._WindowsCodePageEncoder);
-  dart.setSignature(io._WindowsCodePageEncoder, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageEncoder, [])}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.List$(core.int), [core.String]),
-      startChunkedConversion: dart.definiteFunctionType(convert.StringConversionSink, [SinkOfListOfint()])
-    }),
-    statics: () => ({_encodeString: dart.definiteFunctionType(core.List$(core.int), [core.String])}),
-    names: ['_encodeString']
-  });
-  io._WindowsCodePageEncoderSink = class _WindowsCodePageEncoderSink extends convert.StringConversionSinkBase {
-    new(sink) {
-      this[_sink$0] = sink;
-    }
-    close() {
-      this[_sink$0].close();
-    }
-    add(string) {
-      let encoded = io._WindowsCodePageEncoder._encodeString(string);
-      if (encoded == null) {
-        dart.throw(new core.FormatException("Invalid character for encoding"));
-      }
-      this[_sink$0].add(encoded);
-    }
-    addSlice(source, start, end, isLast) {
-      if (start != 0 || end != source[dartx.length]) {
-        source = source[dartx.substring](start, end);
-      }
-      this.add(source);
-      if (dart.test(isLast)) this.close();
-    }
-  };
-  dart.setSignature(io._WindowsCodePageEncoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageEncoderSink, [SinkOfListOfint()])}),
-    fields: () => ({[_sink$0]: SinkOfListOfint()}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
-    })
-  });
-  io._WindowsCodePageDecoder = class _WindowsCodePageDecoder extends convert.Converter$(core.List$(core.int), core.String) {
-    new() {
-      super.new();
-    }
-    convert(input) {
-      return io._WindowsCodePageDecoder._decodeBytes(input);
-    }
-    startChunkedConversion(sink) {
-      return new io._WindowsCodePageDecoderSink(sink);
-    }
-    static _decodeBytes(bytes) {
-      dart.throw(new core.UnsupportedError("_WindowsCodePageDecoder._decodeBytes"));
-    }
-  };
-  dart.addSimpleTypeTests(io._WindowsCodePageDecoder);
-  dart.setSignature(io._WindowsCodePageDecoder, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageDecoder, [])}),
-    methods: () => ({
-      convert: dart.definiteFunctionType(core.String, [ListOfint()]),
-      startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
-    }),
-    statics: () => ({_decodeBytes: dart.definiteFunctionType(core.String, [ListOfint()])}),
-    names: ['_decodeBytes']
-  });
-  io._WindowsCodePageDecoderSink = class _WindowsCodePageDecoderSink extends convert.ByteConversionSinkBase {
-    new(sink) {
-      this[_sink$0] = sink;
-      super.new();
-    }
-    close() {
-      this[_sink$0].close();
-    }
-    add(bytes) {
-      this[_sink$0].add(io._WindowsCodePageDecoder._decodeBytes(bytes));
-    }
-  };
-  dart.setSignature(io._WindowsCodePageDecoderSink, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageDecoderSink, [SinkOfString()])}),
-    fields: () => ({[_sink$0]: SinkOfString()}),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()])
-    })
-  });
-  io.WebSocketStatus = class WebSocketStatus extends core.Object {};
-  dart.setSignature(io.WebSocketStatus, {
-    sfields: () => ({
-      NORMAL_CLOSURE: core.int,
-      GOING_AWAY: core.int,
-      PROTOCOL_ERROR: core.int,
-      UNSUPPORTED_DATA: core.int,
-      RESERVED_1004: core.int,
-      NO_STATUS_RECEIVED: core.int,
-      ABNORMAL_CLOSURE: core.int,
-      INVALID_FRAME_PAYLOAD_DATA: core.int,
-      POLICY_VIOLATION: core.int,
-      MESSAGE_TOO_BIG: core.int,
-      MISSING_MANDATORY_EXTENSION: core.int,
-      INTERNAL_SERVER_ERROR: core.int,
-      RESERVED_1015: core.int
-    })
-  });
-  io.WebSocketStatus.NORMAL_CLOSURE = 1000;
-  io.WebSocketStatus.GOING_AWAY = 1001;
-  io.WebSocketStatus.PROTOCOL_ERROR = 1002;
-  io.WebSocketStatus.UNSUPPORTED_DATA = 1003;
-  io.WebSocketStatus.RESERVED_1004 = 1004;
-  io.WebSocketStatus.NO_STATUS_RECEIVED = 1005;
-  io.WebSocketStatus.ABNORMAL_CLOSURE = 1006;
-  io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA = 1007;
-  io.WebSocketStatus.POLICY_VIOLATION = 1008;
-  io.WebSocketStatus.MESSAGE_TOO_BIG = 1009;
-  io.WebSocketStatus.MISSING_MANDATORY_EXTENSION = 1010;
-  io.WebSocketStatus.INTERNAL_SERVER_ERROR = 1011;
-  io.WebSocketStatus.RESERVED_1015 = 1015;
-  const _createServerResponseHeader = Symbol('_createServerResponseHeader');
-  const _createClientRequestHeader = Symbol('_createClientRequestHeader');
-  const _createHeader = Symbol('_createHeader');
-  io.CompressionOptions = class CompressionOptions extends core.Object {
-    new(opts) {
-      let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
-      let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
-      let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : null;
-      let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : null;
-      let enabled = opts && 'enabled' in opts ? opts.enabled : true;
-      this.clientNoContextTakeover = clientNoContextTakeover;
-      this.serverNoContextTakeover = serverNoContextTakeover;
-      this.clientMaxWindowBits = clientMaxWindowBits;
-      this.serverMaxWindowBits = serverMaxWindowBits;
-      this.enabled = enabled;
-    }
-    [_createServerResponseHeader](requested) {
-      let info = new io._CompressionMaxWindowBits();
-      let mwb = null;
-      let part = null;
-      if (dart.nullSafe(requested, _ => _.parameters) != null) {
-        part = requested.parameters[dartx._get](io._serverMaxWindowBits);
-      }
-      if (part != null) {
-        if (dart.notNull(part[dartx.length]) >= 2 && dart.test(part[dartx.startsWith]('0'))) {
-          dart.throw(new core.ArgumentError("Illegal 0 padding on value."));
-        } else {
-          mwb = this.serverMaxWindowBits == null ? core.int.parse(part, {onError: dart.fn(source => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint$())}) : this.serverMaxWindowBits;
-          info.headerValue = dart.str`; server_max_window_bits=${mwb}`;
-          info.maxWindowBits = mwb;
-        }
-      } else {
-        info.headerValue = "";
-        info.maxWindowBits = io._WebSocketImpl.DEFAULT_WINDOW_BITS;
-      }
+    return info;
+  }
+  [_createHeader](requested) {
+    if (requested === void 0) requested = null;
+    let info = new io._CompressionMaxWindowBits("", 0);
+    if (!dart.test(this.enabled)) {
       return info;
     }
-    [_createClientRequestHeader](requested, size) {
-      let info = "";
-      if (requested != null) {
-        info = dart.str`; client_max_window_bits=${size}`;
-      } else {
-        if (this.clientMaxWindowBits == null) {
-          info = "; client_max_window_bits";
-        } else {
-          info = dart.str`; client_max_window_bits=${this.clientMaxWindowBits}`;
-        }
-        if (this.serverMaxWindowBits != null) {
-          info = info + dart.str`; server_max_window_bits=${this.serverMaxWindowBits}`;
-        }
+    info.headerValue = io._WebSocketImpl.PER_MESSAGE_DEFLATE;
+    if (dart.test(this.clientNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[dartx.containsKey](io._clientNoContextTakeover)))) {
+      info.headerValue = dart.notNull(info.headerValue) + "; client_no_context_takeover";
+    }
+    if (dart.test(this.serverNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[dartx.containsKey](io._serverNoContextTakeover)))) {
+      info.headerValue = dart.notNull(info.headerValue) + "; server_no_context_takeover";
+    }
+    let headerList = this[_createServerResponseHeader](requested);
+    info.headerValue = dart.notNull(info.headerValue) + dart.notNull(headerList.headerValue);
+    info.maxWindowBits = headerList.maxWindowBits;
+    info.headerValue = dart.notNull(info.headerValue) + dart.notNull(this[_createClientRequestHeader](requested, info.maxWindowBits));
+    return info;
+  }
+};
+dart.setSignature(io.CompressionOptions, {
+  constructors: () => ({new: dart.definiteFunctionType(io.CompressionOptions, [], {clientNoContextTakeover: core.bool, serverNoContextTakeover: core.bool, clientMaxWindowBits: core.int, serverMaxWindowBits: core.int, enabled: core.bool})}),
+  fields: () => ({
+    clientNoContextTakeover: core.bool,
+    serverNoContextTakeover: core.bool,
+    clientMaxWindowBits: core.int,
+    serverMaxWindowBits: core.int,
+    enabled: core.bool
+  }),
+  methods: () => ({
+    [_createServerResponseHeader]: dart.definiteFunctionType(io._CompressionMaxWindowBits, [io.HeaderValue]),
+    [_createClientRequestHeader]: dart.definiteFunctionType(core.String, [io.HeaderValue, core.int]),
+    [_createHeader]: dart.definiteFunctionType(io._CompressionMaxWindowBits, [], [io.HeaderValue])
+  }),
+  sfields: () => ({
+    DEFAULT: io.CompressionOptions,
+    OFF: io.CompressionOptions
+  })
+});
+dart.defineLazy(io.CompressionOptions, {
+  get DEFAULT() {
+    return dart.const(new io.CompressionOptions());
+  },
+  get OFF() {
+    return dart.const(new io.CompressionOptions({enabled: false}));
+  }
+});
+io.WebSocketTransformer = class WebSocketTransformer extends core.Object {
+  static new(opts) {
+    let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
+    let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
+    return new io._WebSocketTransformerImpl(protocolSelector, compression);
+  }
+  static upgrade(request, opts) {
+    let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
+    let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
+    return io._WebSocketTransformerImpl._upgrade(request, protocolSelector, compression);
+  }
+  static isUpgradeRequest(request) {
+    return io._WebSocketTransformerImpl._isUpgradeRequest(request);
+  }
+};
+io.WebSocketTransformer[dart.implements] = () => [StreamTransformerOfHttpRequest$WebSocket()];
+dart.setSignature(io.WebSocketTransformer, {
+  constructors: () => ({new: dart.definiteFunctionType(io.WebSocketTransformer, [], {protocolSelector: ListOfStringTodynamic(), compression: io.CompressionOptions})}),
+  statics: () => ({
+    upgrade: dart.definiteFunctionType(async.Future$(io.WebSocket), [io.HttpRequest], {protocolSelector: ListOfStringTodynamic(), compression: io.CompressionOptions}),
+    isUpgradeRequest: dart.definiteFunctionType(core.bool, [io.HttpRequest])
+  }),
+  names: ['upgrade', 'isUpgradeRequest']
+});
+io.WebSocket = class WebSocket extends core.Object {
+  static connect(url, opts) {
+    let protocols = opts && 'protocols' in opts ? opts.protocols : null;
+    let headers = opts && 'headers' in opts ? opts.headers : null;
+    let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
+    return io._WebSocketImpl.connect(url, protocols, headers, {compression: compression});
+  }
+  new() {
+    this.pingInterval = null;
+  }
+  static fromUpgradedSocket(socket, opts) {
+    let protocol = opts && 'protocol' in opts ? opts.protocol : null;
+    let serverSide = opts && 'serverSide' in opts ? opts.serverSide : null;
+    let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
+    if (serverSide == null) {
+      dart.throw(new core.ArgumentError("The serverSide argument must be passed " + "explicitly to WebSocket.fromUpgradedSocket."));
+    }
+    return new io._WebSocketImpl._fromSocket(socket, protocol, compression, serverSide);
+  }
+};
+io.WebSocket[dart.implements] = () => [async.Stream, async.StreamSink];
+dart.setSignature(io.WebSocket, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(io.WebSocket, []),
+    fromUpgradedSocket: dart.definiteFunctionType(io.WebSocket, [io.Socket], {protocol: core.String, serverSide: core.bool, compression: io.CompressionOptions})
+  }),
+  fields: () => ({pingInterval: core.Duration}),
+  sfields: () => ({
+    CONNECTING: core.int,
+    OPEN: core.int,
+    CLOSING: core.int,
+    CLOSED: core.int
+  }),
+  statics: () => ({connect: dart.definiteFunctionType(async.Future$(io.WebSocket), [core.String], {protocols: IterableOfString(), headers: MapOfString$dynamic(), compression: io.CompressionOptions})}),
+  names: ['connect']
+});
+io.WebSocket.CONNECTING = 0;
+io.WebSocket.OPEN = 1;
+io.WebSocket.CLOSING = 2;
+io.WebSocket.CLOSED = 3;
+io.WebSocketException = class WebSocketException extends core.Object {
+  new(message) {
+    if (message === void 0) message = "";
+    this.message = message;
+  }
+  toString() {
+    return dart.str`WebSocketException: ${this.message}`;
+  }
+};
+io.WebSocketException[dart.implements] = () => [io.IOException];
+dart.setSignature(io.WebSocketException, {
+  constructors: () => ({new: dart.definiteFunctionType(io.WebSocketException, [], [core.String])}),
+  fields: () => ({message: core.String})
+});
+io._webSocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
+io._clientNoContextTakeover = "client_no_context_takeover";
+io._serverNoContextTakeover = "server_no_context_takeover";
+io._clientMaxWindowBits = "client_max_window_bits";
+io._serverMaxWindowBits = "server_max_window_bits";
+io._WebSocketMessageType = class _WebSocketMessageType extends core.Object {};
+dart.setSignature(io._WebSocketMessageType, {
+  sfields: () => ({
+    NONE: core.int,
+    TEXT: core.int,
+    BINARY: core.int
+  })
+});
+io._WebSocketMessageType.NONE = 0;
+io._WebSocketMessageType.TEXT = 1;
+io._WebSocketMessageType.BINARY = 2;
+io._WebSocketOpcode = class _WebSocketOpcode extends core.Object {};
+dart.setSignature(io._WebSocketOpcode, {
+  sfields: () => ({
+    CONTINUATION: core.int,
+    TEXT: core.int,
+    BINARY: core.int,
+    RESERVED_3: core.int,
+    RESERVED_4: core.int,
+    RESERVED_5: core.int,
+    RESERVED_6: core.int,
+    RESERVED_7: core.int,
+    CLOSE: core.int,
+    PING: core.int,
+    PONG: core.int,
+    RESERVED_B: core.int,
+    RESERVED_C: core.int,
+    RESERVED_D: core.int,
+    RESERVED_E: core.int,
+    RESERVED_F: core.int
+  })
+});
+io._WebSocketOpcode.CONTINUATION = 0;
+io._WebSocketOpcode.TEXT = 1;
+io._WebSocketOpcode.BINARY = 2;
+io._WebSocketOpcode.RESERVED_3 = 3;
+io._WebSocketOpcode.RESERVED_4 = 4;
+io._WebSocketOpcode.RESERVED_5 = 5;
+io._WebSocketOpcode.RESERVED_6 = 6;
+io._WebSocketOpcode.RESERVED_7 = 7;
+io._WebSocketOpcode.CLOSE = 8;
+io._WebSocketOpcode.PING = 9;
+io._WebSocketOpcode.PONG = 10;
+io._WebSocketOpcode.RESERVED_B = 11;
+io._WebSocketOpcode.RESERVED_C = 12;
+io._WebSocketOpcode.RESERVED_D = 13;
+io._WebSocketOpcode.RESERVED_E = 14;
+io._WebSocketOpcode.RESERVED_F = 15;
+io._CompressionMaxWindowBits = class _CompressionMaxWindowBits extends core.Object {
+  new(headerValue, maxWindowBits) {
+    if (headerValue === void 0) headerValue = null;
+    if (maxWindowBits === void 0) maxWindowBits = null;
+    this.headerValue = headerValue;
+    this.maxWindowBits = maxWindowBits;
+  }
+  toString() {
+    return this.headerValue;
+  }
+};
+dart.setSignature(io._CompressionMaxWindowBits, {
+  constructors: () => ({new: dart.definiteFunctionType(io._CompressionMaxWindowBits, [], [core.String, core.int])}),
+  fields: () => ({
+    headerValue: core.String,
+    maxWindowBits: core.int
+  })
+});
+const _maskingBytes = Symbol('_maskingBytes');
+const _payload = Symbol('_payload');
+const _serverSide = Symbol('_serverSide');
+const _deflate = Symbol('_deflate');
+const _fin = Symbol('_fin');
+const _compressed = Symbol('_compressed');
+const _opcode = Symbol('_opcode');
+const _len = Symbol('_len');
+const _masked = Symbol('_masked');
+const _remainingLenBytes = Symbol('_remainingLenBytes');
+const _remainingMaskingKeyBytes = Symbol('_remainingMaskingKeyBytes');
+const _remainingPayloadBytes = Symbol('_remainingPayloadBytes');
+const _unmaskingIndex = Symbol('_unmaskingIndex');
+const _currentMessageType = Symbol('_currentMessageType');
+const _eventSink$ = Symbol('_eventSink');
+const _isControlFrame = Symbol('_isControlFrame');
+const _lengthDone = Symbol('_lengthDone');
+const _maskDone = Symbol('_maskDone');
+const _unmask = Symbol('_unmask');
+const _controlFrameEnd = Symbol('_controlFrameEnd');
+const _messageFrameEnd = Symbol('_messageFrameEnd');
+const _startPayload = Symbol('_startPayload');
+const _prepareForNextFrame = Symbol('_prepareForNextFrame');
+io._WebSocketProtocolTransformer = class _WebSocketProtocolTransformer extends core.Object {
+  new(serverSide, deflate) {
+    if (serverSide === void 0) serverSide = false;
+    if (deflate === void 0) deflate = null;
+    this[_maskingBytes] = core.List.new(4);
+    this[_payload] = io.BytesBuilder.new({copy: false});
+    this[_serverSide] = serverSide;
+    this[_deflate] = deflate;
+    this[_state$1] = io._WebSocketProtocolTransformer.START;
+    this[_fin] = false;
+    this[_compressed] = false;
+    this[_opcode] = -1;
+    this[_len] = -1;
+    this[_masked] = false;
+    this[_remainingLenBytes] = -1;
+    this[_remainingMaskingKeyBytes] = 4;
+    this[_remainingPayloadBytes] = -1;
+    this[_unmaskingIndex] = 0;
+    this[_currentMessageType] = io._WebSocketMessageType.NONE;
+    this.closeCode = io.WebSocketStatus.NO_STATUS_RECEIVED;
+    this.closeReason = "";
+    this[_eventSink$] = null;
+  }
+  bind(stream) {
+    return async.Stream.eventTransformed(stream, dart.fn(eventSink => {
+      if (this[_eventSink$] != null) {
+        dart.throw(new core.StateError("WebSocket transformer already used."));
       }
-      return info;
+      this[_eventSink$] = eventSink;
+      return this;
+    }, EventSinkTo_WebSocketProtocolTransformer()));
+  }
+  addError(error, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    this[_eventSink$].addError(error, stackTrace);
+  }
+  close() {
+    this[_eventSink$].close();
+  }
+  add(bytes) {
+    let buffer = typed_data.Uint8List.is(bytes) ? bytes : typed_data.Uint8List.fromList(bytes);
+    let index = 0;
+    let lastIndex = buffer[dartx.length];
+    if (this[_state$1] == io._WebSocketProtocolTransformer.CLOSED) {
+      dart.throw(new io.WebSocketException("Data on closed connection"));
     }
-    [_createHeader](requested) {
-      if (requested === void 0) requested = null;
-      let info = new io._CompressionMaxWindowBits("", 0);
-      if (!dart.test(this.enabled)) {
-        return info;
-      }
-      info.headerValue = io._WebSocketImpl.PER_MESSAGE_DEFLATE;
-      if (dart.test(this.clientNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[dartx.containsKey](io._clientNoContextTakeover)))) {
-        info.headerValue = dart.notNull(info.headerValue) + "; client_no_context_takeover";
-      }
-      if (dart.test(this.serverNoContextTakeover) && (requested == null || requested != null && dart.test(requested.parameters[dartx.containsKey](io._serverNoContextTakeover)))) {
-        info.headerValue = dart.notNull(info.headerValue) + "; server_no_context_takeover";
-      }
-      let headerList = this[_createServerResponseHeader](requested);
-      info.headerValue = dart.notNull(info.headerValue) + dart.notNull(headerList.headerValue);
-      info.maxWindowBits = headerList.maxWindowBits;
-      info.headerValue = dart.notNull(info.headerValue) + dart.notNull(this[_createClientRequestHeader](requested, info.maxWindowBits));
-      return info;
+    if (this[_state$1] == io._WebSocketProtocolTransformer.FAILURE) {
+      dart.throw(new io.WebSocketException("Data on failed connection"));
     }
-  };
-  dart.setSignature(io.CompressionOptions, {
-    constructors: () => ({new: dart.definiteFunctionType(io.CompressionOptions, [], {clientNoContextTakeover: core.bool, serverNoContextTakeover: core.bool, clientMaxWindowBits: core.int, serverMaxWindowBits: core.int, enabled: core.bool})}),
-    fields: () => ({
-      clientNoContextTakeover: core.bool,
-      serverNoContextTakeover: core.bool,
-      clientMaxWindowBits: core.int,
-      serverMaxWindowBits: core.int,
-      enabled: core.bool
-    }),
-    methods: () => ({
-      [_createServerResponseHeader]: dart.definiteFunctionType(io._CompressionMaxWindowBits, [io.HeaderValue]),
-      [_createClientRequestHeader]: dart.definiteFunctionType(core.String, [io.HeaderValue, core.int]),
-      [_createHeader]: dart.definiteFunctionType(io._CompressionMaxWindowBits, [], [io.HeaderValue])
-    }),
-    sfields: () => ({
-      DEFAULT: io.CompressionOptions,
-      OFF: io.CompressionOptions
-    })
-  });
-  dart.defineLazy(io.CompressionOptions, {
-    get DEFAULT() {
-      return dart.const(new io.CompressionOptions());
-    },
-    get OFF() {
-      return dart.const(new io.CompressionOptions({enabled: false}));
-    }
-  });
-  io.WebSocketTransformer = class WebSocketTransformer extends core.Object {
-    static new(opts) {
-      let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
-      let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
-      return new io._WebSocketTransformerImpl(protocolSelector, compression);
-    }
-    static upgrade(request, opts) {
-      let protocolSelector = opts && 'protocolSelector' in opts ? opts.protocolSelector : null;
-      let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
-      return io._WebSocketTransformerImpl._upgrade(request, protocolSelector, compression);
-    }
-    static isUpgradeRequest(request) {
-      return io._WebSocketTransformerImpl._isUpgradeRequest(request);
-    }
-  };
-  io.WebSocketTransformer[dart.implements] = () => [StreamTransformerOfHttpRequest$WebSocket()];
-  dart.setSignature(io.WebSocketTransformer, {
-    constructors: () => ({new: dart.definiteFunctionType(io.WebSocketTransformer, [], {protocolSelector: ListOfStringTodynamic(), compression: io.CompressionOptions})}),
-    statics: () => ({
-      upgrade: dart.definiteFunctionType(async.Future$(io.WebSocket), [io.HttpRequest], {protocolSelector: ListOfStringTodynamic(), compression: io.CompressionOptions}),
-      isUpgradeRequest: dart.definiteFunctionType(core.bool, [io.HttpRequest])
-    }),
-    names: ['upgrade', 'isUpgradeRequest']
-  });
-  io.WebSocket = class WebSocket extends core.Object {
-    static connect(url, opts) {
-      let protocols = opts && 'protocols' in opts ? opts.protocols : null;
-      let headers = opts && 'headers' in opts ? opts.headers : null;
-      let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
-      return io._WebSocketImpl.connect(url, protocols, headers, {compression: compression});
-    }
-    new() {
-      this.pingInterval = null;
-    }
-    static fromUpgradedSocket(socket, opts) {
-      let protocol = opts && 'protocol' in opts ? opts.protocol : null;
-      let serverSide = opts && 'serverSide' in opts ? opts.serverSide : null;
-      let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
-      if (serverSide == null) {
-        dart.throw(new core.ArgumentError("The serverSide argument must be passed " + "explicitly to WebSocket.fromUpgradedSocket."));
-      }
-      return new io._WebSocketImpl._fromSocket(socket, protocol, compression, serverSide);
-    }
-  };
-  io.WebSocket[dart.implements] = () => [async.Stream, async.StreamSink];
-  dart.setSignature(io.WebSocket, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(io.WebSocket, []),
-      fromUpgradedSocket: dart.definiteFunctionType(io.WebSocket, [io.Socket], {protocol: core.String, serverSide: core.bool, compression: io.CompressionOptions})
-    }),
-    fields: () => ({pingInterval: core.Duration}),
-    sfields: () => ({
-      CONNECTING: core.int,
-      OPEN: core.int,
-      CLOSING: core.int,
-      CLOSED: core.int
-    }),
-    statics: () => ({connect: dart.definiteFunctionType(async.Future$(io.WebSocket), [core.String], {protocols: IterableOfString(), headers: MapOfString$dynamic(), compression: io.CompressionOptions})}),
-    names: ['connect']
-  });
-  io.WebSocket.CONNECTING = 0;
-  io.WebSocket.OPEN = 1;
-  io.WebSocket.CLOSING = 2;
-  io.WebSocket.CLOSED = 3;
-  io.WebSocketException = class WebSocketException extends core.Object {
-    new(message) {
-      if (message === void 0) message = "";
-      this.message = message;
-    }
-    toString() {
-      return dart.str`WebSocketException: ${this.message}`;
-    }
-  };
-  io.WebSocketException[dart.implements] = () => [io.IOException];
-  dart.setSignature(io.WebSocketException, {
-    constructors: () => ({new: dart.definiteFunctionType(io.WebSocketException, [], [core.String])}),
-    fields: () => ({message: core.String})
-  });
-  io._webSocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
-  io._clientNoContextTakeover = "client_no_context_takeover";
-  io._serverNoContextTakeover = "server_no_context_takeover";
-  io._clientMaxWindowBits = "client_max_window_bits";
-  io._serverMaxWindowBits = "server_max_window_bits";
-  io._WebSocketMessageType = class _WebSocketMessageType extends core.Object {};
-  dart.setSignature(io._WebSocketMessageType, {
-    sfields: () => ({
-      NONE: core.int,
-      TEXT: core.int,
-      BINARY: core.int
-    })
-  });
-  io._WebSocketMessageType.NONE = 0;
-  io._WebSocketMessageType.TEXT = 1;
-  io._WebSocketMessageType.BINARY = 2;
-  io._WebSocketOpcode = class _WebSocketOpcode extends core.Object {};
-  dart.setSignature(io._WebSocketOpcode, {
-    sfields: () => ({
-      CONTINUATION: core.int,
-      TEXT: core.int,
-      BINARY: core.int,
-      RESERVED_3: core.int,
-      RESERVED_4: core.int,
-      RESERVED_5: core.int,
-      RESERVED_6: core.int,
-      RESERVED_7: core.int,
-      CLOSE: core.int,
-      PING: core.int,
-      PONG: core.int,
-      RESERVED_B: core.int,
-      RESERVED_C: core.int,
-      RESERVED_D: core.int,
-      RESERVED_E: core.int,
-      RESERVED_F: core.int
-    })
-  });
-  io._WebSocketOpcode.CONTINUATION = 0;
-  io._WebSocketOpcode.TEXT = 1;
-  io._WebSocketOpcode.BINARY = 2;
-  io._WebSocketOpcode.RESERVED_3 = 3;
-  io._WebSocketOpcode.RESERVED_4 = 4;
-  io._WebSocketOpcode.RESERVED_5 = 5;
-  io._WebSocketOpcode.RESERVED_6 = 6;
-  io._WebSocketOpcode.RESERVED_7 = 7;
-  io._WebSocketOpcode.CLOSE = 8;
-  io._WebSocketOpcode.PING = 9;
-  io._WebSocketOpcode.PONG = 10;
-  io._WebSocketOpcode.RESERVED_B = 11;
-  io._WebSocketOpcode.RESERVED_C = 12;
-  io._WebSocketOpcode.RESERVED_D = 13;
-  io._WebSocketOpcode.RESERVED_E = 14;
-  io._WebSocketOpcode.RESERVED_F = 15;
-  io._CompressionMaxWindowBits = class _CompressionMaxWindowBits extends core.Object {
-    new(headerValue, maxWindowBits) {
-      if (headerValue === void 0) headerValue = null;
-      if (maxWindowBits === void 0) maxWindowBits = null;
-      this.headerValue = headerValue;
-      this.maxWindowBits = maxWindowBits;
-    }
-    toString() {
-      return this.headerValue;
-    }
-  };
-  dart.setSignature(io._CompressionMaxWindowBits, {
-    constructors: () => ({new: dart.definiteFunctionType(io._CompressionMaxWindowBits, [], [core.String, core.int])}),
-    fields: () => ({
-      headerValue: core.String,
-      maxWindowBits: core.int
-    })
-  });
-  const _maskingBytes = Symbol('_maskingBytes');
-  const _payload = Symbol('_payload');
-  const _serverSide = Symbol('_serverSide');
-  const _deflate = Symbol('_deflate');
-  const _fin = Symbol('_fin');
-  const _compressed = Symbol('_compressed');
-  const _opcode = Symbol('_opcode');
-  const _len = Symbol('_len');
-  const _masked = Symbol('_masked');
-  const _remainingLenBytes = Symbol('_remainingLenBytes');
-  const _remainingMaskingKeyBytes = Symbol('_remainingMaskingKeyBytes');
-  const _remainingPayloadBytes = Symbol('_remainingPayloadBytes');
-  const _unmaskingIndex = Symbol('_unmaskingIndex');
-  const _currentMessageType = Symbol('_currentMessageType');
-  const _eventSink$ = Symbol('_eventSink');
-  const _isControlFrame = Symbol('_isControlFrame');
-  const _lengthDone = Symbol('_lengthDone');
-  const _maskDone = Symbol('_maskDone');
-  const _unmask = Symbol('_unmask');
-  const _controlFrameEnd = Symbol('_controlFrameEnd');
-  const _messageFrameEnd = Symbol('_messageFrameEnd');
-  const _startPayload = Symbol('_startPayload');
-  const _prepareForNextFrame = Symbol('_prepareForNextFrame');
-  io._WebSocketProtocolTransformer = class _WebSocketProtocolTransformer extends core.Object {
-    new(serverSide, deflate) {
-      if (serverSide === void 0) serverSide = false;
-      if (deflate === void 0) deflate = null;
-      this[_maskingBytes] = core.List.new(4);
-      this[_payload] = io.BytesBuilder.new({copy: false});
-      this[_serverSide] = serverSide;
-      this[_deflate] = deflate;
-      this[_state$1] = io._WebSocketProtocolTransformer.START;
-      this[_fin] = false;
-      this[_compressed] = false;
-      this[_opcode] = -1;
-      this[_len] = -1;
-      this[_masked] = false;
-      this[_remainingLenBytes] = -1;
-      this[_remainingMaskingKeyBytes] = 4;
-      this[_remainingPayloadBytes] = -1;
-      this[_unmaskingIndex] = 0;
-      this[_currentMessageType] = io._WebSocketMessageType.NONE;
-      this.closeCode = io.WebSocketStatus.NO_STATUS_RECEIVED;
-      this.closeReason = "";
-      this[_eventSink$] = null;
-    }
-    bind(stream) {
-      return async.Stream.eventTransformed(stream, dart.fn(eventSink => {
-        if (this[_eventSink$] != null) {
-          dart.throw(new core.StateError("WebSocket transformer already used."));
-        }
-        this[_eventSink$] = eventSink;
-        return this;
-      }, EventSinkTo_WebSocketProtocolTransformer()));
-    }
-    addError(error, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      this[_eventSink$].addError(error, stackTrace);
-    }
-    close() {
-      this[_eventSink$].close();
-    }
-    add(bytes) {
-      let buffer = typed_data.Uint8List.is(bytes) ? bytes : typed_data.Uint8List.fromList(bytes);
-      let index = 0;
-      let lastIndex = buffer[dartx.length];
-      if (this[_state$1] == io._WebSocketProtocolTransformer.CLOSED) {
-        dart.throw(new io.WebSocketException("Data on closed connection"));
-      }
-      if (this[_state$1] == io._WebSocketProtocolTransformer.FAILURE) {
-        dart.throw(new io.WebSocketException("Data on failed connection"));
-      }
-      while (dart.notNull(index) < dart.notNull(lastIndex) && this[_state$1] != io._WebSocketProtocolTransformer.CLOSED && this[_state$1] != io._WebSocketProtocolTransformer.FAILURE) {
-        let byte = buffer[dartx._get](index);
-        if (dart.notNull(this[_state$1]) <= io._WebSocketProtocolTransformer.LEN_REST) {
-          if (this[_state$1] == io._WebSocketProtocolTransformer.START) {
-            this[_fin] = (dart.notNull(byte) & io._WebSocketProtocolTransformer.FIN) != 0;
-            if ((dart.notNull(byte) & (io._WebSocketProtocolTransformer.RSV2 | io._WebSocketProtocolTransformer.RSV3)) != 0) {
-              dart.throw(new io.WebSocketException("Protocol error"));
-            }
-            this[_opcode] = dart.notNull(byte) & io._WebSocketProtocolTransformer.OPCODE;
-            if (this[_opcode] != io._WebSocketOpcode.CONTINUATION) {
-              if ((dart.notNull(byte) & io._WebSocketProtocolTransformer.RSV1) != 0) {
-                this[_compressed] = true;
-              } else {
-                this[_compressed] = false;
-              }
-            }
-            if (dart.notNull(this[_opcode]) <= io._WebSocketOpcode.BINARY) {
-              if (this[_opcode] == io._WebSocketOpcode.CONTINUATION) {
-                if (this[_currentMessageType] == io._WebSocketMessageType.NONE) {
-                  dart.throw(new io.WebSocketException("Protocol error"));
-                }
-              } else {
-                dart.assert(this[_opcode] == io._WebSocketOpcode.TEXT || this[_opcode] == io._WebSocketOpcode.BINARY);
-                if (this[_currentMessageType] != io._WebSocketMessageType.NONE) {
-                  dart.throw(new io.WebSocketException("Protocol error"));
-                }
-                this[_currentMessageType] = this[_opcode];
-              }
-            } else if (dart.notNull(this[_opcode]) >= io._WebSocketOpcode.CLOSE && dart.notNull(this[_opcode]) <= io._WebSocketOpcode.PONG) {
-              if (!dart.test(this[_fin])) dart.throw(new io.WebSocketException("Protocol error"));
+    while (dart.notNull(index) < dart.notNull(lastIndex) && this[_state$1] != io._WebSocketProtocolTransformer.CLOSED && this[_state$1] != io._WebSocketProtocolTransformer.FAILURE) {
+      let byte = buffer[dartx._get](index);
+      if (dart.notNull(this[_state$1]) <= io._WebSocketProtocolTransformer.LEN_REST) {
+        if (this[_state$1] == io._WebSocketProtocolTransformer.START) {
+          this[_fin] = (dart.notNull(byte) & io._WebSocketProtocolTransformer.FIN) != 0;
+          if ((dart.notNull(byte) & (io._WebSocketProtocolTransformer.RSV2 | io._WebSocketProtocolTransformer.RSV3)) != 0) {
+            dart.throw(new io.WebSocketException("Protocol error"));
+          }
+          this[_opcode] = dart.notNull(byte) & io._WebSocketProtocolTransformer.OPCODE;
+          if (this[_opcode] != io._WebSocketOpcode.CONTINUATION) {
+            if ((dart.notNull(byte) & io._WebSocketProtocolTransformer.RSV1) != 0) {
+              this[_compressed] = true;
             } else {
-              dart.throw(new io.WebSocketException("Protocol error"));
-            }
-            this[_state$1] = io._WebSocketProtocolTransformer.LEN_FIRST;
-          } else if (this[_state$1] == io._WebSocketProtocolTransformer.LEN_FIRST) {
-            this[_masked] = (dart.notNull(byte) & 128) != 0;
-            this[_len] = dart.notNull(byte) & 127;
-            if (dart.test(this[_isControlFrame]()) && dart.notNull(this[_len]) > 125) {
-              dart.throw(new io.WebSocketException("Protocol error"));
-            }
-            if (this[_len] == 126) {
-              this[_len] = 0;
-              this[_remainingLenBytes] = 2;
-              this[_state$1] = io._WebSocketProtocolTransformer.LEN_REST;
-            } else if (this[_len] == 127) {
-              this[_len] = 0;
-              this[_remainingLenBytes] = 8;
-              this[_state$1] = io._WebSocketProtocolTransformer.LEN_REST;
-            } else {
-              dart.assert(dart.notNull(this[_len]) < 126);
-              this[_lengthDone]();
-            }
-          } else {
-            dart.assert(this[_state$1] == io._WebSocketProtocolTransformer.LEN_REST);
-            this[_len] = (dart.notNull(this[_len]) << 8 | dart.notNull(byte)) >>> 0;
-            this[_remainingLenBytes] = dart.notNull(this[_remainingLenBytes]) - 1;
-            if (this[_remainingLenBytes] == 0) {
-              this[_lengthDone]();
+              this[_compressed] = false;
             }
           }
-        } else {
-          if (this[_state$1] == io._WebSocketProtocolTransformer.MASK) {
-            this[_maskingBytes][dartx._set](4 - (() => {
-              let x = this[_remainingMaskingKeyBytes];
-              this[_remainingMaskingKeyBytes] = dart.notNull(x) - 1;
-              return x;
-            })(), byte);
-            if (this[_remainingMaskingKeyBytes] == 0) {
-              this[_maskDone]();
-            }
-          } else {
-            dart.assert(this[_state$1] == io._WebSocketProtocolTransformer.PAYLOAD);
-            let payloadLength = math.min(core.int)(dart.notNull(lastIndex) - dart.notNull(index), this[_remainingPayloadBytes]);
-            this[_remainingPayloadBytes] = dart.notNull(this[_remainingPayloadBytes]) - dart.notNull(payloadLength);
-            if (dart.test(this[_masked])) {
-              this[_unmask](index, payloadLength, buffer);
-            }
-            this[_payload].add(typed_data.Uint8List.view(buffer[dartx.buffer], index, payloadLength));
-            index = dart.notNull(index) + dart.notNull(payloadLength);
-            if (dart.test(this[_isControlFrame]())) {
-              if (this[_remainingPayloadBytes] == 0) this[_controlFrameEnd]();
-            } else {
-              if (this[_currentMessageType] != io._WebSocketMessageType.TEXT && this[_currentMessageType] != io._WebSocketMessageType.BINARY) {
+          if (dart.notNull(this[_opcode]) <= io._WebSocketOpcode.BINARY) {
+            if (this[_opcode] == io._WebSocketOpcode.CONTINUATION) {
+              if (this[_currentMessageType] == io._WebSocketMessageType.NONE) {
                 dart.throw(new io.WebSocketException("Protocol error"));
               }
-              if (this[_remainingPayloadBytes] == 0) this[_messageFrameEnd]();
+            } else {
+              dart.assert(this[_opcode] == io._WebSocketOpcode.TEXT || this[_opcode] == io._WebSocketOpcode.BINARY);
+              if (this[_currentMessageType] != io._WebSocketMessageType.NONE) {
+                dart.throw(new io.WebSocketException("Protocol error"));
+              }
+              this[_currentMessageType] = this[_opcode];
             }
-            index = dart.notNull(index) - 1;
+          } else if (dart.notNull(this[_opcode]) >= io._WebSocketOpcode.CLOSE && dart.notNull(this[_opcode]) <= io._WebSocketOpcode.PONG) {
+            if (!dart.test(this[_fin])) dart.throw(new io.WebSocketException("Protocol error"));
+          } else {
+            dart.throw(new io.WebSocketException("Protocol error"));
+          }
+          this[_state$1] = io._WebSocketProtocolTransformer.LEN_FIRST;
+        } else if (this[_state$1] == io._WebSocketProtocolTransformer.LEN_FIRST) {
+          this[_masked] = (dart.notNull(byte) & 128) != 0;
+          this[_len] = dart.notNull(byte) & 127;
+          if (dart.test(this[_isControlFrame]()) && dart.notNull(this[_len]) > 125) {
+            dart.throw(new io.WebSocketException("Protocol error"));
+          }
+          if (this[_len] == 126) {
+            this[_len] = 0;
+            this[_remainingLenBytes] = 2;
+            this[_state$1] = io._WebSocketProtocolTransformer.LEN_REST;
+          } else if (this[_len] == 127) {
+            this[_len] = 0;
+            this[_remainingLenBytes] = 8;
+            this[_state$1] = io._WebSocketProtocolTransformer.LEN_REST;
+          } else {
+            dart.assert(dart.notNull(this[_len]) < 126);
+            this[_lengthDone]();
+          }
+        } else {
+          dart.assert(this[_state$1] == io._WebSocketProtocolTransformer.LEN_REST);
+          this[_len] = (dart.notNull(this[_len]) << 8 | dart.notNull(byte)) >>> 0;
+          this[_remainingLenBytes] = dart.notNull(this[_remainingLenBytes]) - 1;
+          if (this[_remainingLenBytes] == 0) {
+            this[_lengthDone]();
           }
         }
-        index = dart.notNull(index) + 1;
-      }
-    }
-    [_unmask](index, length, buffer) {
-      let BLOCK_SIZE = 16;
-      if (dart.notNull(length) >= BLOCK_SIZE) {
-        let startOffset = BLOCK_SIZE - (dart.notNull(index) & 15);
-        let end = dart.notNull(index) + startOffset;
-        for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
-          buffer[dartx._set](i, (dart.notNull(buffer[dartx._get](i)) ^ dart.notNull(core.int._check(this[_maskingBytes][dartx._get]((() => {
-            let x = this[_unmaskingIndex];
-            this[_unmaskingIndex] = dart.notNull(x) + 1;
+      } else {
+        if (this[_state$1] == io._WebSocketProtocolTransformer.MASK) {
+          this[_maskingBytes][dartx._set](4 - (() => {
+            let x = this[_remainingMaskingKeyBytes];
+            this[_remainingMaskingKeyBytes] = dart.notNull(x) - 1;
             return x;
-          })() & 3)))) >>> 0);
-        }
-        index = dart.notNull(index) + startOffset;
-        length = dart.notNull(length) - startOffset;
-        let blockCount = (dart.notNull(length) / BLOCK_SIZE)[dartx.truncate]();
-        if (blockCount > 0) {
-          let mask = 0;
-          for (let i = 3; i >= 0; i--) {
-            mask = (mask << 8 | dart.notNull(core.int._check(this[_maskingBytes][dartx._get](dart.notNull(this[_unmaskingIndex]) + i & 3)))) >>> 0;
+          })(), byte);
+          if (this[_remainingMaskingKeyBytes] == 0) {
+            this[_maskDone]();
           }
-          let blockMask = typed_data.Int32x4.new(mask, mask, mask, mask);
-          let blockBuffer = typed_data.Int32x4List.view(buffer[dartx.buffer], index, blockCount);
-          for (let i = 0; i < dart.notNull(blockBuffer.length); i++) {
-            blockBuffer._set(i, blockBuffer._get(i)['^'](blockMask));
+        } else {
+          dart.assert(this[_state$1] == io._WebSocketProtocolTransformer.PAYLOAD);
+          let payloadLength = math.min(core.int)(dart.notNull(lastIndex) - dart.notNull(index), this[_remainingPayloadBytes]);
+          this[_remainingPayloadBytes] = dart.notNull(this[_remainingPayloadBytes]) - dart.notNull(payloadLength);
+          if (dart.test(this[_masked])) {
+            this[_unmask](index, payloadLength, buffer);
           }
-          let bytes = blockCount * BLOCK_SIZE;
-          index = dart.notNull(index) + bytes;
-          length = dart.notNull(length) - bytes;
+          this[_payload].add(typed_data.Uint8List.view(buffer[dartx.buffer], index, payloadLength));
+          index = dart.notNull(index) + dart.notNull(payloadLength);
+          if (dart.test(this[_isControlFrame]())) {
+            if (this[_remainingPayloadBytes] == 0) this[_controlFrameEnd]();
+          } else {
+            if (this[_currentMessageType] != io._WebSocketMessageType.TEXT && this[_currentMessageType] != io._WebSocketMessageType.BINARY) {
+              dart.throw(new io.WebSocketException("Protocol error"));
+            }
+            if (this[_remainingPayloadBytes] == 0) this[_messageFrameEnd]();
+          }
+          index = dart.notNull(index) - 1;
         }
       }
-      let end = dart.notNull(index) + dart.notNull(length);
+      index = dart.notNull(index) + 1;
+    }
+  }
+  [_unmask](index, length, buffer) {
+    let BLOCK_SIZE = 16;
+    if (dart.notNull(length) >= BLOCK_SIZE) {
+      let startOffset = BLOCK_SIZE - (dart.notNull(index) & 15);
+      let end = dart.notNull(index) + startOffset;
       for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
         buffer[dartx._set](i, (dart.notNull(buffer[dartx._get](i)) ^ dart.notNull(core.int._check(this[_maskingBytes][dartx._get]((() => {
           let x = this[_unmaskingIndex];
@@ -51368,1753 +51344,1394 @@
           return x;
         })() & 3)))) >>> 0);
       }
-    }
-    [_lengthDone]() {
-      if (dart.test(this[_masked])) {
-        if (!dart.test(this[_serverSide])) {
-          dart.throw(new io.WebSocketException("Received masked frame from server"));
+      index = dart.notNull(index) + startOffset;
+      length = dart.notNull(length) - startOffset;
+      let blockCount = (dart.notNull(length) / BLOCK_SIZE)[dartx.truncate]();
+      if (blockCount > 0) {
+        let mask = 0;
+        for (let i = 3; i >= 0; i--) {
+          mask = (mask << 8 | dart.notNull(core.int._check(this[_maskingBytes][dartx._get](dart.notNull(this[_unmaskingIndex]) + i & 3)))) >>> 0;
         }
-        this[_state$1] = io._WebSocketProtocolTransformer.MASK;
-      } else {
-        if (dart.test(this[_serverSide])) {
-          dart.throw(new io.WebSocketException("Received unmasked frame from client"));
+        let blockMask = typed_data.Int32x4.new(mask, mask, mask, mask);
+        let blockBuffer = typed_data.Int32x4List.view(buffer[dartx.buffer], index, blockCount);
+        for (let i = 0; i < dart.notNull(blockBuffer.length); i++) {
+          blockBuffer._set(i, blockBuffer._get(i)['^'](blockMask));
         }
-        this[_remainingPayloadBytes] = this[_len];
-        this[_startPayload]();
+        let bytes = blockCount * BLOCK_SIZE;
+        index = dart.notNull(index) + bytes;
+        length = dart.notNull(length) - bytes;
       }
     }
-    [_maskDone]() {
+    let end = dart.notNull(index) + dart.notNull(length);
+    for (let i = index; dart.notNull(i) < end; i = dart.notNull(i) + 1) {
+      buffer[dartx._set](i, (dart.notNull(buffer[dartx._get](i)) ^ dart.notNull(core.int._check(this[_maskingBytes][dartx._get]((() => {
+        let x = this[_unmaskingIndex];
+        this[_unmaskingIndex] = dart.notNull(x) + 1;
+        return x;
+      })() & 3)))) >>> 0);
+    }
+  }
+  [_lengthDone]() {
+    if (dart.test(this[_masked])) {
+      if (!dart.test(this[_serverSide])) {
+        dart.throw(new io.WebSocketException("Received masked frame from server"));
+      }
+      this[_state$1] = io._WebSocketProtocolTransformer.MASK;
+    } else {
+      if (dart.test(this[_serverSide])) {
+        dart.throw(new io.WebSocketException("Received unmasked frame from client"));
+      }
       this[_remainingPayloadBytes] = this[_len];
       this[_startPayload]();
     }
-    [_startPayload]() {
-      if (this[_remainingPayloadBytes] == 0) {
-        if (dart.test(this[_isControlFrame]())) {
-          switch (this[_opcode]) {
-            case io._WebSocketOpcode.CLOSE:
-            {
-              this[_state$1] = io._WebSocketProtocolTransformer.CLOSED;
-              this[_eventSink$].close();
-              break;
-            }
-            case io._WebSocketOpcode.PING:
-            {
-              this[_eventSink$].add(new io._WebSocketPing());
-              break;
-            }
-            case io._WebSocketOpcode.PONG:
-            {
-              this[_eventSink$].add(new io._WebSocketPong());
-              break;
-            }
-          }
-          this[_prepareForNextFrame]();
-        } else {
-          this[_messageFrameEnd]();
-        }
-      } else {
-        this[_state$1] = io._WebSocketProtocolTransformer.PAYLOAD;
-      }
-    }
-    [_messageFrameEnd]() {
-      if (dart.test(this[_fin])) {
-        let bytes = this[_payload].takeBytes();
-        if (this[_deflate] != null && dart.test(this[_compressed])) {
-          bytes = this[_deflate].processIncomingMessage(bytes);
-        }
-        switch (this[_currentMessageType]) {
-          case io._WebSocketMessageType.TEXT:
+  }
+  [_maskDone]() {
+    this[_remainingPayloadBytes] = this[_len];
+    this[_startPayload]();
+  }
+  [_startPayload]() {
+    if (this[_remainingPayloadBytes] == 0) {
+      if (dart.test(this[_isControlFrame]())) {
+        switch (this[_opcode]) {
+          case io._WebSocketOpcode.CLOSE:
           {
-            this[_eventSink$].add(convert.UTF8.decode(bytes));
+            this[_state$1] = io._WebSocketProtocolTransformer.CLOSED;
+            this[_eventSink$].close();
             break;
           }
-          case io._WebSocketMessageType.BINARY:
+          case io._WebSocketOpcode.PING:
           {
-            this[_eventSink$].add(bytes);
+            this[_eventSink$].add(new io._WebSocketPing());
+            break;
+          }
+          case io._WebSocketOpcode.PONG:
+          {
+            this[_eventSink$].add(new io._WebSocketPong());
             break;
           }
         }
-        this[_currentMessageType] = io._WebSocketMessageType.NONE;
-      }
-      this[_prepareForNextFrame]();
-    }
-    [_controlFrameEnd]() {
-      switch (this[_opcode]) {
-        case io._WebSocketOpcode.CLOSE:
-        {
-          this.closeCode = io.WebSocketStatus.NO_STATUS_RECEIVED;
-          let payload = this[_payload].takeBytes();
-          if (dart.notNull(payload[dartx.length]) > 0) {
-            if (payload[dartx.length] == 1) {
-              dart.throw(new io.WebSocketException("Protocol error"));
-            }
-            this.closeCode = (dart.notNull(payload[dartx._get](0)) << 8 | dart.notNull(payload[dartx._get](1))) >>> 0;
-            if (this.closeCode == io.WebSocketStatus.NO_STATUS_RECEIVED) {
-              dart.throw(new io.WebSocketException("Protocol error"));
-            }
-            if (dart.notNull(payload[dartx.length]) > 2) {
-              this.closeReason = convert.UTF8.decode(payload[dartx.sublist](2));
-            }
-          }
-          this[_state$1] = io._WebSocketProtocolTransformer.CLOSED;
-          this[_eventSink$].close();
-          break;
-        }
-        case io._WebSocketOpcode.PING:
-        {
-          this[_eventSink$].add(new io._WebSocketPing(this[_payload].takeBytes()));
-          break;
-        }
-        case io._WebSocketOpcode.PONG:
-        {
-          this[_eventSink$].add(new io._WebSocketPong(this[_payload].takeBytes()));
-          break;
-        }
-      }
-      this[_prepareForNextFrame]();
-    }
-    [_isControlFrame]() {
-      return this[_opcode] == io._WebSocketOpcode.CLOSE || this[_opcode] == io._WebSocketOpcode.PING || this[_opcode] == io._WebSocketOpcode.PONG;
-    }
-    [_prepareForNextFrame]() {
-      if (this[_state$1] != io._WebSocketProtocolTransformer.CLOSED && this[_state$1] != io._WebSocketProtocolTransformer.FAILURE) this[_state$1] = io._WebSocketProtocolTransformer.START;
-      this[_fin] = false;
-      this[_opcode] = -1;
-      this[_len] = -1;
-      this[_remainingLenBytes] = -1;
-      this[_remainingMaskingKeyBytes] = 4;
-      this[_remainingPayloadBytes] = -1;
-      this[_unmaskingIndex] = 0;
-    }
-  };
-  io._WebSocketProtocolTransformer[dart.implements] = () => [StreamTransformerOfListOfint$dynamic(), EventSinkOfUint8List()];
-  dart.setSignature(io._WebSocketProtocolTransformer, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketProtocolTransformer, [], [core.bool, io._WebSocketPerMessageDeflate])}),
-    fields: () => ({
-      [_state$1]: core.int,
-      [_fin]: core.bool,
-      [_compressed]: core.bool,
-      [_opcode]: core.int,
-      [_len]: core.int,
-      [_masked]: core.bool,
-      [_remainingLenBytes]: core.int,
-      [_remainingMaskingKeyBytes]: core.int,
-      [_remainingPayloadBytes]: core.int,
-      [_unmaskingIndex]: core.int,
-      [_currentMessageType]: core.int,
-      closeCode: core.int,
-      closeReason: core.String,
-      [_eventSink$]: async.EventSink,
-      [_serverSide]: core.bool,
-      [_maskingBytes]: core.List,
-      [_payload]: io.BytesBuilder,
-      [_deflate]: io._WebSocketPerMessageDeflate
-    }),
-    methods: () => ({
-      bind: dart.definiteFunctionType(async.Stream, [async.Stream]),
-      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-      close: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [ListOfint()]),
-      [_unmask]: dart.definiteFunctionType(dart.void, [core.int, core.int, typed_data.Uint8List]),
-      [_lengthDone]: dart.definiteFunctionType(dart.void, []),
-      [_maskDone]: dart.definiteFunctionType(dart.void, []),
-      [_startPayload]: dart.definiteFunctionType(dart.void, []),
-      [_messageFrameEnd]: dart.definiteFunctionType(dart.void, []),
-      [_controlFrameEnd]: dart.definiteFunctionType(dart.void, []),
-      [_isControlFrame]: dart.definiteFunctionType(core.bool, []),
-      [_prepareForNextFrame]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      START: core.int,
-      LEN_FIRST: core.int,
-      LEN_REST: core.int,
-      MASK: core.int,
-      PAYLOAD: core.int,
-      CLOSED: core.int,
-      FAILURE: core.int,
-      FIN: core.int,
-      RSV1: core.int,
-      RSV2: core.int,
-      RSV3: core.int,
-      OPCODE: core.int
-    })
-  });
-  io._WebSocketProtocolTransformer.START = 0;
-  io._WebSocketProtocolTransformer.LEN_FIRST = 1;
-  io._WebSocketProtocolTransformer.LEN_REST = 2;
-  io._WebSocketProtocolTransformer.MASK = 3;
-  io._WebSocketProtocolTransformer.PAYLOAD = 4;
-  io._WebSocketProtocolTransformer.CLOSED = 5;
-  io._WebSocketProtocolTransformer.FAILURE = 6;
-  io._WebSocketProtocolTransformer.FIN = 128;
-  io._WebSocketProtocolTransformer.RSV1 = 64;
-  io._WebSocketProtocolTransformer.RSV2 = 32;
-  io._WebSocketProtocolTransformer.RSV3 = 16;
-  io._WebSocketProtocolTransformer.OPCODE = 15;
-  io._WebSocketPing = class _WebSocketPing extends core.Object {
-    new(payload) {
-      if (payload === void 0) payload = null;
-      this.payload = payload;
-    }
-  };
-  dart.setSignature(io._WebSocketPing, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketPing, [], [ListOfint()])}),
-    fields: () => ({payload: ListOfint()})
-  });
-  io._WebSocketPong = class _WebSocketPong extends core.Object {
-    new(payload) {
-      if (payload === void 0) payload = null;
-      this.payload = payload;
-    }
-  };
-  dart.setSignature(io._WebSocketPong, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketPong, [], [ListOfint()])}),
-    fields: () => ({payload: ListOfint()})
-  });
-  const _protocolSelector = Symbol('_protocolSelector');
-  const _compression = Symbol('_compression');
-  io._WebSocketTransformerImpl = class _WebSocketTransformerImpl extends core.Object {
-    new(protocolSelector, compression) {
-      this[_controller$0] = StreamControllerOfWebSocket().new({sync: true});
-      this[_protocolSelector] = protocolSelector;
-      this[_compression] = compression;
-    }
-    bind(stream) {
-      stream.listen(dart.fn(request => {
-        io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller$0].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
-      }, HttpRequestToNull()), {onDone: dart.fn(() => {
-          this[_controller$0].close();
-        }, VoidToNull())});
-      return this[_controller$0].stream;
-    }
-    static _upgrade(request, _protocolSelector, compression) {
-      let response = request.response;
-      if (!dart.test(io._WebSocketTransformerImpl._isUpgradeRequest(request))) {
-        response.statusCode = io.HttpStatus.BAD_REQUEST;
-        response.close();
-        return FutureOfWebSocket().error(new io.WebSocketException("Invalid WebSocket upgrade request"));
-      }
-      function upgrade(protocol) {
-        response.statusCode = io.HttpStatus.SWITCHING_PROTOCOLS;
-        response.headers.add(io.HttpHeaders.CONNECTION, "Upgrade");
-        response.headers.add(io.HttpHeaders.UPGRADE, "websocket");
-        let key = request.headers.value("Sec-WebSocket-Key");
-        let sha1 = new io._SHA1();
-        sha1.add(dart.str`${key}${io._webSocketGUID}`[dartx.codeUnits]);
-        let accept = io._CryptoUtils.bytesToBase64(sha1.close());
-        response.headers.add("Sec-WebSocket-Accept", accept);
-        if (protocol != null) {
-          response.headers.add("Sec-WebSocket-Protocol", protocol);
-        }
-        let deflate = io._WebSocketTransformerImpl._negotiateCompression(request, response, compression);
-        response.headers.contentLength = 0;
-        return response.detachSocket().then(io._WebSocketImpl)(dart.fn(socket => new io._WebSocketImpl._fromSocket(socket, protocol, compression, true, deflate), SocketTo_WebSocketImpl()));
-      }
-      dart.fn(upgrade, StringToFuture());
-      let protocols = request.headers._get('Sec-WebSocket-Protocol');
-      if (protocols != null && _protocolSelector != null) {
-        protocols = io._HttpParser._tokenizeFieldValue(protocols[dartx.join](', '));
-        return async.Future.new(dart.fn(() => dart.dcall(_protocolSelector, protocols), VoidTodynamic$())).then(dart.dynamic)(dart.fn(protocol => {
-          if (dart.notNull(protocols[dartx.indexOf](core.String._check(protocol))) < 0) {
-            dart.throw(new io.WebSocketException("Selected protocol is not in the list of available protocols"));
-          }
-          return protocol;
-        }, dynamicTodynamic$())).catchError(dart.fn(error => {
-          response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
-          response.close();
-          dart.throw(error);
-        }, dynamicToNull$())).then(io.WebSocket)(upgrade);
+        this[_prepareForNextFrame]();
       } else {
-        return FutureOfWebSocket()._check(upgrade(null));
+        this[_messageFrameEnd]();
+      }
+    } else {
+      this[_state$1] = io._WebSocketProtocolTransformer.PAYLOAD;
+    }
+  }
+  [_messageFrameEnd]() {
+    if (dart.test(this[_fin])) {
+      let bytes = this[_payload].takeBytes();
+      if (this[_deflate] != null && dart.test(this[_compressed])) {
+        bytes = this[_deflate].processIncomingMessage(bytes);
+      }
+      switch (this[_currentMessageType]) {
+        case io._WebSocketMessageType.TEXT:
+        {
+          this[_eventSink$].add(convert.UTF8.decode(bytes));
+          break;
+        }
+        case io._WebSocketMessageType.BINARY:
+        {
+          this[_eventSink$].add(bytes);
+          break;
+        }
+      }
+      this[_currentMessageType] = io._WebSocketMessageType.NONE;
+    }
+    this[_prepareForNextFrame]();
+  }
+  [_controlFrameEnd]() {
+    switch (this[_opcode]) {
+      case io._WebSocketOpcode.CLOSE:
+      {
+        this.closeCode = io.WebSocketStatus.NO_STATUS_RECEIVED;
+        let payload = this[_payload].takeBytes();
+        if (dart.notNull(payload[dartx.length]) > 0) {
+          if (payload[dartx.length] == 1) {
+            dart.throw(new io.WebSocketException("Protocol error"));
+          }
+          this.closeCode = (dart.notNull(payload[dartx._get](0)) << 8 | dart.notNull(payload[dartx._get](1))) >>> 0;
+          if (this.closeCode == io.WebSocketStatus.NO_STATUS_RECEIVED) {
+            dart.throw(new io.WebSocketException("Protocol error"));
+          }
+          if (dart.notNull(payload[dartx.length]) > 2) {
+            this.closeReason = convert.UTF8.decode(payload[dartx.sublist](2));
+          }
+        }
+        this[_state$1] = io._WebSocketProtocolTransformer.CLOSED;
+        this[_eventSink$].close();
+        break;
+      }
+      case io._WebSocketOpcode.PING:
+      {
+        this[_eventSink$].add(new io._WebSocketPing(this[_payload].takeBytes()));
+        break;
+      }
+      case io._WebSocketOpcode.PONG:
+      {
+        this[_eventSink$].add(new io._WebSocketPong(this[_payload].takeBytes()));
+        break;
       }
     }
-    static _negotiateCompression(request, response, compression) {
-      let extensionHeader = request.headers.value("Sec-WebSocket-Extensions");
-      let t = extensionHeader;
-      t == null ? extensionHeader = "" : t;
-      let hv = io.HeaderValue.parse(extensionHeader, {valueSeparator: ','});
-      if (dart.test(compression.enabled) && hv.value == io._WebSocketImpl.PER_MESSAGE_DEFLATE) {
-        let info = compression[_createHeader](hv);
-        response.headers.add("Sec-WebSocket-Extensions", info.headerValue);
-        let serverNoContextTakeover = dart.test(hv.parameters[dartx.containsKey](io._serverNoContextTakeover)) && dart.test(compression.serverNoContextTakeover);
-        let clientNoContextTakeover = dart.test(hv.parameters[dartx.containsKey](io._clientNoContextTakeover)) && dart.test(compression.clientNoContextTakeover);
-        let deflate = new io._WebSocketPerMessageDeflate({serverNoContextTakeover: serverNoContextTakeover, clientNoContextTakeover: clientNoContextTakeover, serverMaxWindowBits: info.maxWindowBits, clientMaxWindowBits: info.maxWindowBits, serverSide: true});
-        return deflate;
-      }
-      return null;
+    this[_prepareForNextFrame]();
+  }
+  [_isControlFrame]() {
+    return this[_opcode] == io._WebSocketOpcode.CLOSE || this[_opcode] == io._WebSocketOpcode.PING || this[_opcode] == io._WebSocketOpcode.PONG;
+  }
+  [_prepareForNextFrame]() {
+    if (this[_state$1] != io._WebSocketProtocolTransformer.CLOSED && this[_state$1] != io._WebSocketProtocolTransformer.FAILURE) this[_state$1] = io._WebSocketProtocolTransformer.START;
+    this[_fin] = false;
+    this[_opcode] = -1;
+    this[_len] = -1;
+    this[_remainingLenBytes] = -1;
+    this[_remainingMaskingKeyBytes] = 4;
+    this[_remainingPayloadBytes] = -1;
+    this[_unmaskingIndex] = 0;
+  }
+};
+io._WebSocketProtocolTransformer[dart.implements] = () => [StreamTransformerOfListOfint$dynamic(), EventSinkOfUint8List()];
+dart.setSignature(io._WebSocketProtocolTransformer, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketProtocolTransformer, [], [core.bool, io._WebSocketPerMessageDeflate])}),
+  fields: () => ({
+    [_state$1]: core.int,
+    [_fin]: core.bool,
+    [_compressed]: core.bool,
+    [_opcode]: core.int,
+    [_len]: core.int,
+    [_masked]: core.bool,
+    [_remainingLenBytes]: core.int,
+    [_remainingMaskingKeyBytes]: core.int,
+    [_remainingPayloadBytes]: core.int,
+    [_unmaskingIndex]: core.int,
+    [_currentMessageType]: core.int,
+    closeCode: core.int,
+    closeReason: core.String,
+    [_eventSink$]: async.EventSink,
+    [_serverSide]: core.bool,
+    [_maskingBytes]: core.List,
+    [_payload]: io.BytesBuilder,
+    [_deflate]: io._WebSocketPerMessageDeflate
+  }),
+  methods: () => ({
+    bind: dart.definiteFunctionType(async.Stream, [async.Stream]),
+    addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+    close: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    [_unmask]: dart.definiteFunctionType(dart.void, [core.int, core.int, typed_data.Uint8List]),
+    [_lengthDone]: dart.definiteFunctionType(dart.void, []),
+    [_maskDone]: dart.definiteFunctionType(dart.void, []),
+    [_startPayload]: dart.definiteFunctionType(dart.void, []),
+    [_messageFrameEnd]: dart.definiteFunctionType(dart.void, []),
+    [_controlFrameEnd]: dart.definiteFunctionType(dart.void, []),
+    [_isControlFrame]: dart.definiteFunctionType(core.bool, []),
+    [_prepareForNextFrame]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    START: core.int,
+    LEN_FIRST: core.int,
+    LEN_REST: core.int,
+    MASK: core.int,
+    PAYLOAD: core.int,
+    CLOSED: core.int,
+    FAILURE: core.int,
+    FIN: core.int,
+    RSV1: core.int,
+    RSV2: core.int,
+    RSV3: core.int,
+    OPCODE: core.int
+  })
+});
+io._WebSocketProtocolTransformer.START = 0;
+io._WebSocketProtocolTransformer.LEN_FIRST = 1;
+io._WebSocketProtocolTransformer.LEN_REST = 2;
+io._WebSocketProtocolTransformer.MASK = 3;
+io._WebSocketProtocolTransformer.PAYLOAD = 4;
+io._WebSocketProtocolTransformer.CLOSED = 5;
+io._WebSocketProtocolTransformer.FAILURE = 6;
+io._WebSocketProtocolTransformer.FIN = 128;
+io._WebSocketProtocolTransformer.RSV1 = 64;
+io._WebSocketProtocolTransformer.RSV2 = 32;
+io._WebSocketProtocolTransformer.RSV3 = 16;
+io._WebSocketProtocolTransformer.OPCODE = 15;
+io._WebSocketPing = class _WebSocketPing extends core.Object {
+  new(payload) {
+    if (payload === void 0) payload = null;
+    this.payload = payload;
+  }
+};
+dart.setSignature(io._WebSocketPing, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketPing, [], [ListOfint()])}),
+  fields: () => ({payload: ListOfint()})
+});
+io._WebSocketPong = class _WebSocketPong extends core.Object {
+  new(payload) {
+    if (payload === void 0) payload = null;
+    this.payload = payload;
+  }
+};
+dart.setSignature(io._WebSocketPong, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketPong, [], [ListOfint()])}),
+  fields: () => ({payload: ListOfint()})
+});
+const _protocolSelector = Symbol('_protocolSelector');
+const _compression = Symbol('_compression');
+io._WebSocketTransformerImpl = class _WebSocketTransformerImpl extends core.Object {
+  new(protocolSelector, compression) {
+    this[_controller$0] = StreamControllerOfWebSocket().new({sync: true});
+    this[_protocolSelector] = protocolSelector;
+    this[_compression] = compression;
+  }
+  bind(stream) {
+    stream.listen(dart.fn(request => {
+      io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller$0].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
+    }, HttpRequestToNull()), {onDone: dart.fn(() => {
+        this[_controller$0].close();
+      }, VoidToNull())});
+    return this[_controller$0].stream;
+  }
+  static _upgrade(request, _protocolSelector, compression) {
+    let response = request.response;
+    if (!dart.test(io._WebSocketTransformerImpl._isUpgradeRequest(request))) {
+      response.statusCode = io.HttpStatus.BAD_REQUEST;
+      response.close();
+      return FutureOfWebSocket().error(new io.WebSocketException("Invalid WebSocket upgrade request"));
     }
-    static _isUpgradeRequest(request) {
-      if (request.method != "GET") {
-        return false;
-      }
-      if (request.headers._get(io.HttpHeaders.CONNECTION) == null) {
-        return false;
-      }
-      let isUpgrade = false;
-      request.headers._get(io.HttpHeaders.CONNECTION)[dartx.forEach](dart.fn(value => {
-        if (value[dartx.toLowerCase]() == "upgrade") isUpgrade = true;
-      }, StringToNull()));
-      if (!isUpgrade) return false;
-      let upgrade = request.headers.value(io.HttpHeaders.UPGRADE);
-      if (upgrade == null || upgrade[dartx.toLowerCase]() != "websocket") {
-        return false;
-      }
-      let version = request.headers.value("Sec-WebSocket-Version");
-      if (version == null || version != "13") {
-        return false;
-      }
+    function upgrade(protocol) {
+      response.statusCode = io.HttpStatus.SWITCHING_PROTOCOLS;
+      response.headers.add(io.HttpHeaders.CONNECTION, "Upgrade");
+      response.headers.add(io.HttpHeaders.UPGRADE, "websocket");
       let key = request.headers.value("Sec-WebSocket-Key");
-      if (key == null) {
-        return false;
+      let sha1 = new io._SHA1();
+      sha1.add(dart.str`${key}${io._webSocketGUID}`[dartx.codeUnits]);
+      let accept = io._CryptoUtils.bytesToBase64(sha1.close());
+      response.headers.add("Sec-WebSocket-Accept", accept);
+      if (protocol != null) {
+        response.headers.add("Sec-WebSocket-Protocol", protocol);
       }
-      return true;
+      let deflate = io._WebSocketTransformerImpl._negotiateCompression(request, response, compression);
+      response.headers.contentLength = 0;
+      return response.detachSocket().then(io._WebSocketImpl)(dart.fn(socket => new io._WebSocketImpl._fromSocket(socket, protocol, compression, true, deflate), SocketTo_WebSocketImpl()));
     }
-  };
-  io._WebSocketTransformerImpl[dart.implements] = () => [io.WebSocketTransformer];
-  dart.setSignature(io._WebSocketTransformerImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketTransformerImpl, [core.Function, io.CompressionOptions])}),
-    fields: () => ({
-      [_controller$0]: StreamControllerOfWebSocket(),
-      [_protocolSelector]: core.Function,
-      [_compression]: io.CompressionOptions
-    }),
-    methods: () => ({bind: dart.definiteFunctionType(async.Stream$(io.WebSocket), [StreamOfHttpRequest()])}),
-    statics: () => ({
-      _upgrade: dart.definiteFunctionType(async.Future$(io.WebSocket), [io.HttpRequest, dart.dynamic, io.CompressionOptions]),
-      _negotiateCompression: dart.definiteFunctionType(io._WebSocketPerMessageDeflate, [io.HttpRequest, io.HttpResponse, io.CompressionOptions]),
-      _isUpgradeRequest: dart.definiteFunctionType(core.bool, [io.HttpRequest])
-    }),
-    names: ['_upgrade', '_negotiateCompression', '_isUpgradeRequest']
-  });
-  const _ensureDecoder = Symbol('_ensureDecoder');
-  const _ensureEncoder = Symbol('_ensureEncoder');
-  let const$80;
-  io._WebSocketPerMessageDeflate = class _WebSocketPerMessageDeflate extends core.Object {
-    new(opts) {
-      let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : io._WebSocketImpl.DEFAULT_WINDOW_BITS;
-      let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : io._WebSocketImpl.DEFAULT_WINDOW_BITS;
-      let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
-      let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
-      let serverSide = opts && 'serverSide' in opts ? opts.serverSide : false;
-      this.clientMaxWindowBits = clientMaxWindowBits;
-      this.serverMaxWindowBits = serverMaxWindowBits;
-      this.serverNoContextTakeover = serverNoContextTakeover;
-      this.clientNoContextTakeover = clientNoContextTakeover;
-      this.serverSide = serverSide;
+    dart.fn(upgrade, StringToFuture());
+    let protocols = request.headers._get('Sec-WebSocket-Protocol');
+    if (protocols != null && _protocolSelector != null) {
+      protocols = io._HttpParser._tokenizeFieldValue(protocols[dartx.join](', '));
+      return async.Future.new(dart.fn(() => dart.dcall(_protocolSelector, protocols), VoidTodynamic$())).then(dart.dynamic)(dart.fn(protocol => {
+        if (dart.notNull(protocols[dartx.indexOf](core.String._check(protocol))) < 0) {
+          dart.throw(new io.WebSocketException("Selected protocol is not in the list of available protocols"));
+        }
+        return protocol;
+      }, dynamicTodynamic$())).catchError(dart.fn(error => {
+        response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
+        response.close();
+        dart.throw(error);
+      }, dynamicToNull$())).then(io.WebSocket)(upgrade);
+    } else {
+      return FutureOfWebSocket()._check(upgrade(null));
+    }
+  }
+  static _negotiateCompression(request, response, compression) {
+    let extensionHeader = request.headers.value("Sec-WebSocket-Extensions");
+    let t = extensionHeader;
+    t == null ? extensionHeader = "" : t;
+    let hv = io.HeaderValue.parse(extensionHeader, {valueSeparator: ','});
+    if (dart.test(compression.enabled) && hv.value == io._WebSocketImpl.PER_MESSAGE_DEFLATE) {
+      let info = compression[_createHeader](hv);
+      response.headers.add("Sec-WebSocket-Extensions", info.headerValue);
+      let serverNoContextTakeover = dart.test(hv.parameters[dartx.containsKey](io._serverNoContextTakeover)) && dart.test(compression.serverNoContextTakeover);
+      let clientNoContextTakeover = dart.test(hv.parameters[dartx.containsKey](io._clientNoContextTakeover)) && dart.test(compression.clientNoContextTakeover);
+      let deflate = new io._WebSocketPerMessageDeflate({serverNoContextTakeover: serverNoContextTakeover, clientNoContextTakeover: clientNoContextTakeover, serverMaxWindowBits: info.maxWindowBits, clientMaxWindowBits: info.maxWindowBits, serverSide: true});
+      return deflate;
+    }
+    return null;
+  }
+  static _isUpgradeRequest(request) {
+    if (request.method != "GET") {
+      return false;
+    }
+    if (request.headers._get(io.HttpHeaders.CONNECTION) == null) {
+      return false;
+    }
+    let isUpgrade = false;
+    request.headers._get(io.HttpHeaders.CONNECTION)[dartx.forEach](dart.fn(value => {
+      if (value[dartx.toLowerCase]() == "upgrade") isUpgrade = true;
+    }, StringToNull()));
+    if (!isUpgrade) return false;
+    let upgrade = request.headers.value(io.HttpHeaders.UPGRADE);
+    if (upgrade == null || upgrade[dartx.toLowerCase]() != "websocket") {
+      return false;
+    }
+    let version = request.headers.value("Sec-WebSocket-Version");
+    if (version == null || version != "13") {
+      return false;
+    }
+    let key = request.headers.value("Sec-WebSocket-Key");
+    if (key == null) {
+      return false;
+    }
+    return true;
+  }
+};
+io._WebSocketTransformerImpl[dart.implements] = () => [io.WebSocketTransformer];
+dart.setSignature(io._WebSocketTransformerImpl, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketTransformerImpl, [core.Function, io.CompressionOptions])}),
+  fields: () => ({
+    [_controller$0]: StreamControllerOfWebSocket(),
+    [_protocolSelector]: core.Function,
+    [_compression]: io.CompressionOptions
+  }),
+  methods: () => ({bind: dart.definiteFunctionType(async.Stream$(io.WebSocket), [StreamOfHttpRequest()])}),
+  statics: () => ({
+    _upgrade: dart.definiteFunctionType(async.Future$(io.WebSocket), [io.HttpRequest, dart.dynamic, io.CompressionOptions]),
+    _negotiateCompression: dart.definiteFunctionType(io._WebSocketPerMessageDeflate, [io.HttpRequest, io.HttpResponse, io.CompressionOptions]),
+    _isUpgradeRequest: dart.definiteFunctionType(core.bool, [io.HttpRequest])
+  }),
+  names: ['_upgrade', '_negotiateCompression', '_isUpgradeRequest']
+});
+const _ensureDecoder = Symbol('_ensureDecoder');
+const _ensureEncoder = Symbol('_ensureEncoder');
+let const$80;
+io._WebSocketPerMessageDeflate = class _WebSocketPerMessageDeflate extends core.Object {
+  new(opts) {
+    let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : io._WebSocketImpl.DEFAULT_WINDOW_BITS;
+    let serverMaxWindowBits = opts && 'serverMaxWindowBits' in opts ? opts.serverMaxWindowBits : io._WebSocketImpl.DEFAULT_WINDOW_BITS;
+    let serverNoContextTakeover = opts && 'serverNoContextTakeover' in opts ? opts.serverNoContextTakeover : false;
+    let clientNoContextTakeover = opts && 'clientNoContextTakeover' in opts ? opts.clientNoContextTakeover : false;
+    let serverSide = opts && 'serverSide' in opts ? opts.serverSide : false;
+    this.clientMaxWindowBits = clientMaxWindowBits;
+    this.serverMaxWindowBits = serverMaxWindowBits;
+    this.serverNoContextTakeover = serverNoContextTakeover;
+    this.clientNoContextTakeover = clientNoContextTakeover;
+    this.serverSide = serverSide;
+    this.decoder = null;
+    this.encoder = null;
+  }
+  [_ensureDecoder]() {
+    if (this.decoder == null) {
+      this.decoder = io._Filter._newZLibInflateFilter(dart.test(this.serverSide) ? this.clientMaxWindowBits : this.serverMaxWindowBits, null, true);
+    }
+  }
+  [_ensureEncoder]() {
+    if (this.encoder == null) {
+      this.encoder = io._Filter._newZLibDeflateFilter(false, io.ZLibOption.DEFAULT_LEVEL, dart.test(this.serverSide) ? this.serverMaxWindowBits : this.clientMaxWindowBits, io.ZLibOption.DEFAULT_MEM_LEVEL, io.ZLibOption.STRATEGY_DEFAULT, null, true);
+    }
+  }
+  processIncomingMessage(msg) {
+    this[_ensureDecoder]();
+    let data = [];
+    data[dartx.addAll](msg);
+    data[dartx.addAll](const$80 || (const$80 = dart.constList([0, 0, 255, 255], core.int)));
+    this.decoder.process(ListOfint()._check(data), 0, data[dartx.length]);
+    let result = [];
+    let out = null;
+    while ((out = this.decoder.processed()) != null) {
+      result[dartx.addAll](core.Iterable._check(out));
+    }
+    if (dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || !dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
       this.decoder = null;
+    }
+    return typed_data.Uint8List.fromList(ListOfint()._check(result));
+  }
+  processOutgoingMessage(msg) {
+    this[_ensureEncoder]();
+    let result = [];
+    let buffer = null;
+    let out = null;
+    if (!typed_data.Uint8List.is(msg)) {
+      for (let i = 0; i < dart.notNull(msg[dartx.length]); i++) {
+        if (dart.notNull(msg[dartx._get](i)) < 0 || 255 < dart.notNull(msg[dartx._get](i))) {
+          dart.throw(new core.ArgumentError("List element is not a byte value " + dart.str`(value ${msg[dartx._get](i)} at index ${i})`));
+        }
+      }
+      buffer = typed_data.Uint8List.fromList(msg);
+    } else {
+      buffer = typed_data.Uint8List._check(msg);
+    }
+    this.encoder.process(buffer, 0, buffer[dartx.length]);
+    while ((out = this.encoder.processed()) != null) {
+      result[dartx.addAll](core.Iterable._check(out));
+    }
+    if (!dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
       this.encoder = null;
     }
-    [_ensureDecoder]() {
-      if (this.decoder == null) {
-        this.decoder = io._Filter._newZLibInflateFilter(dart.test(this.serverSide) ? this.clientMaxWindowBits : this.serverMaxWindowBits, null, true);
-      }
+    if (dart.notNull(result[dartx.length]) > 4) {
+      result = result[dartx.sublist](0, dart.notNull(result[dartx.length]) - 4);
     }
-    [_ensureEncoder]() {
-      if (this.encoder == null) {
-        this.encoder = io._Filter._newZLibDeflateFilter(false, io.ZLibOption.DEFAULT_LEVEL, dart.test(this.serverSide) ? this.serverMaxWindowBits : this.clientMaxWindowBits, io.ZLibOption.DEFAULT_MEM_LEVEL, io.ZLibOption.STRATEGY_DEFAULT, null, true);
+    return ListOfint()._check(result);
+  }
+};
+dart.setSignature(io._WebSocketPerMessageDeflate, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketPerMessageDeflate, [], {clientMaxWindowBits: core.int, serverMaxWindowBits: core.int, serverNoContextTakeover: core.bool, clientNoContextTakeover: core.bool, serverSide: core.bool})}),
+  fields: () => ({
+    serverNoContextTakeover: core.bool,
+    clientNoContextTakeover: core.bool,
+    clientMaxWindowBits: core.int,
+    serverMaxWindowBits: core.int,
+    serverSide: core.bool,
+    decoder: io._Filter,
+    encoder: io._Filter
+  }),
+  methods: () => ({
+    [_ensureDecoder]: dart.definiteFunctionType(dart.void, []),
+    [_ensureEncoder]: dart.definiteFunctionType(dart.void, []),
+    processIncomingMessage: dart.definiteFunctionType(typed_data.Uint8List, [ListOfint()]),
+    processOutgoingMessage: dart.definiteFunctionType(core.List$(core.int), [ListOfint()])
+  })
+});
+const _deflateHelper = Symbol('_deflateHelper');
+const _outCloseCode = Symbol('_outCloseCode');
+const _outCloseReason = Symbol('_outCloseReason');
+io._WebSocketOutgoingTransformer = class _WebSocketOutgoingTransformer extends core.Object {
+  new(webSocket) {
+    this.webSocket = webSocket;
+    this[_eventSink$] = null;
+    this[_deflateHelper] = null;
+    this[_deflateHelper] = this.webSocket[_deflate];
+  }
+  bind(stream) {
+    return StreamOfListOfint().eventTransformed(stream, dart.fn(eventSink => {
+      if (this[_eventSink$] != null) {
+        dart.throw(new core.StateError("WebSocket transformer already used"));
       }
+      this[_eventSink$] = eventSink;
+      return this;
+    }, EventSinkOfListOfintTo_WebSocketOutgoingTransformer()));
+  }
+  add(message) {
+    if (io._WebSocketPong.is(message)) {
+      this.addFrame(io._WebSocketOpcode.PONG, message.payload);
+      return;
     }
-    processIncomingMessage(msg) {
-      this[_ensureDecoder]();
-      let data = [];
-      data[dartx.addAll](msg);
-      data[dartx.addAll](const$80 || (const$80 = dart.constList([0, 0, 255, 255], core.int)));
-      this.decoder.process(ListOfint()._check(data), 0, data[dartx.length]);
-      let result = [];
-      let out = null;
-      while ((out = this.decoder.processed()) != null) {
-        result[dartx.addAll](core.Iterable._check(out));
-      }
-      if (dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || !dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
-        this.decoder = null;
-      }
-      return typed_data.Uint8List.fromList(ListOfint()._check(result));
+    if (io._WebSocketPing.is(message)) {
+      this.addFrame(io._WebSocketOpcode.PING, message.payload);
+      return;
     }
-    processOutgoingMessage(msg) {
-      this[_ensureEncoder]();
-      let result = [];
-      let buffer = null;
-      let out = null;
-      if (!typed_data.Uint8List.is(msg)) {
-        for (let i = 0; i < dart.notNull(msg[dartx.length]); i++) {
-          if (dart.notNull(msg[dartx._get](i)) < 0 || 255 < dart.notNull(msg[dartx._get](i))) {
-            dart.throw(new core.ArgumentError("List element is not a byte value " + dart.str`(value ${msg[dartx._get](i)} at index ${i})`));
-          }
-        }
-        buffer = typed_data.Uint8List.fromList(msg);
-      } else {
-        buffer = typed_data.Uint8List._check(msg);
-      }
-      this.encoder.process(buffer, 0, buffer[dartx.length]);
-      while ((out = this.encoder.processed()) != null) {
-        result[dartx.addAll](core.Iterable._check(out));
-      }
-      if (!dart.test(this.serverSide) && dart.test(this.clientNoContextTakeover) || dart.test(this.serverSide) && dart.test(this.serverNoContextTakeover)) {
-        this.encoder = null;
-      }
-      if (dart.notNull(result[dartx.length]) > 4) {
-        result = result[dartx.sublist](0, dart.notNull(result[dartx.length]) - 4);
-      }
-      return ListOfint()._check(result);
-    }
-  };
-  dart.setSignature(io._WebSocketPerMessageDeflate, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketPerMessageDeflate, [], {clientMaxWindowBits: core.int, serverMaxWindowBits: core.int, serverNoContextTakeover: core.bool, clientNoContextTakeover: core.bool, serverSide: core.bool})}),
-    fields: () => ({
-      serverNoContextTakeover: core.bool,
-      clientNoContextTakeover: core.bool,
-      clientMaxWindowBits: core.int,
-      serverMaxWindowBits: core.int,
-      serverSide: core.bool,
-      decoder: io._Filter,
-      encoder: io._Filter
-    }),
-    methods: () => ({
-      [_ensureDecoder]: dart.definiteFunctionType(dart.void, []),
-      [_ensureEncoder]: dart.definiteFunctionType(dart.void, []),
-      processIncomingMessage: dart.definiteFunctionType(typed_data.Uint8List, [ListOfint()]),
-      processOutgoingMessage: dart.definiteFunctionType(core.List$(core.int), [ListOfint()])
-    })
-  });
-  const _deflateHelper = Symbol('_deflateHelper');
-  const _outCloseCode = Symbol('_outCloseCode');
-  const _outCloseReason = Symbol('_outCloseReason');
-  io._WebSocketOutgoingTransformer = class _WebSocketOutgoingTransformer extends core.Object {
-    new(webSocket) {
-      this.webSocket = webSocket;
-      this[_eventSink$] = null;
-      this[_deflateHelper] = null;
-      this[_deflateHelper] = this.webSocket[_deflate];
-    }
-    bind(stream) {
-      return StreamOfListOfint().eventTransformed(stream, dart.fn(eventSink => {
-        if (this[_eventSink$] != null) {
-          dart.throw(new core.StateError("WebSocket transformer already used"));
-        }
-        this[_eventSink$] = eventSink;
-        return this;
-      }, EventSinkOfListOfintTo_WebSocketOutgoingTransformer()));
-    }
-    add(message) {
-      if (io._WebSocketPong.is(message)) {
-        this.addFrame(io._WebSocketOpcode.PONG, message.payload);
-        return;
-      }
-      if (io._WebSocketPing.is(message)) {
-        this.addFrame(io._WebSocketOpcode.PING, message.payload);
-        return;
-      }
-      let data = null;
-      let opcode = null;
-      if (message != null) {
-        if (typeof message == 'string') {
-          opcode = io._WebSocketOpcode.TEXT;
-          data = convert.UTF8.encode(message);
-        } else {
-          if (ListOfint().is(message)) {
-            data = message;
-            opcode = io._WebSocketOpcode.BINARY;
-          } else {
-            dart.throw(new core.ArgumentError(message));
-          }
-        }
-        if (this[_deflateHelper] != null) {
-          data = this[_deflateHelper].processOutgoingMessage(data);
-        }
-      } else {
+    let data = null;
+    let opcode = null;
+    if (message != null) {
+      if (typeof message == 'string') {
         opcode = io._WebSocketOpcode.TEXT;
-      }
-      this.addFrame(opcode, data);
-    }
-    addError(error, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      this[_eventSink$].addError(error, stackTrace);
-    }
-    close() {
-      let code = this.webSocket[_outCloseCode];
-      let reason = this.webSocket[_outCloseReason];
-      let data = null;
-      if (code != null) {
-        data = ListOfint().new();
-        data[dartx.add](dart.notNull(code) >> 8 & 255);
-        data[dartx.add](dart.notNull(code) & 255);
-        if (reason != null) {
-          data[dartx.addAll](convert.UTF8.encode(reason));
-        }
-      }
-      this.addFrame(io._WebSocketOpcode.CLOSE, data);
-      this[_eventSink$].close();
-    }
-    addFrame(opcode, data) {
-      return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
-        this[_eventSink$].add(e);
-      }, ListOfintToNull()));
-    }
-    static createFrame(opcode, data, serverSide, compressed) {
-      let mask = !dart.test(serverSide);
-      let dataLength = data == null ? 0 : data[dartx.length];
-      let headerSize = mask ? 6 : 2;
-      if (dart.notNull(dataLength) > 65535) {
-        headerSize = headerSize + 8;
-      } else if (dart.notNull(dataLength) > 125) {
-        headerSize = headerSize + 2;
-      }
-      let header = typed_data.Uint8List.new(headerSize);
-      let index = 0;
-      let hoc = (io._WebSocketProtocolTransformer.FIN | (dart.test(compressed) ? io._WebSocketProtocolTransformer.RSV1 : 0) | dart.notNull(opcode) & io._WebSocketProtocolTransformer.OPCODE) >>> 0;
-      header[dartx._set](index++, hoc);
-      let lengthBytes = 1;
-      if (dart.notNull(dataLength) > 65535) {
-        header[dartx._set](index++, 127);
-        lengthBytes = 8;
-      } else if (dart.notNull(dataLength) > 125) {
-        header[dartx._set](index++, 126);
-        lengthBytes = 2;
-      }
-      for (let i = 0; i < lengthBytes; i++) {
-        header[dartx._set](index++, dataLength[dartx['>>']]((lengthBytes - 1 - i) * 8) & 255);
-      }
-      if (mask) {
-        let i$ = 1;
-        header[dartx._set](i$, (dart.notNull(header[dartx._get](i$)) | 1 << 7) >>> 0);
-        let maskBytes = io._IOCrypto.getRandomBytes(4);
-        header[dartx.setRange](index, index + 4, maskBytes);
-        index = index + 4;
-        if (data != null) {
-          let list = null;
-          if (opcode == io._WebSocketOpcode.TEXT && typed_data.Uint8List.is(data)) {
-            list = data;
-          } else {
-            if (typed_data.Uint8List.is(data)) {
-              list = typed_data.Uint8List.fromList(data);
-            } else {
-              list = typed_data.Uint8List.new(data[dartx.length]);
-              for (let i = 0; i < dart.notNull(data[dartx.length]); i++) {
-                if (dart.notNull(data[dartx._get](i)) < 0 || 255 < dart.notNull(data[dartx._get](i))) {
-                  dart.throw(new core.ArgumentError("List element is not a byte value " + dart.str`(value ${data[dartx._get](i)} at index ${i})`));
-                }
-                list[dartx._set](i, data[dartx._get](i));
-              }
-            }
-          }
-          let BLOCK_SIZE = 16;
-          let blockCount = (dart.notNull(list[dartx.length]) / BLOCK_SIZE)[dartx.truncate]();
-          if (blockCount > 0) {
-            let mask = 0;
-            for (let i = 3; i >= 0; i--) {
-              mask = (mask << 8 | dart.notNull(maskBytes[dartx._get](i))) >>> 0;
-            }
-            let blockMask = typed_data.Int32x4.new(mask, mask, mask, mask);
-            let blockBuffer = typed_data.Int32x4List.view(list[dartx.buffer], 0, blockCount);
-            for (let i = 0; i < dart.notNull(blockBuffer.length); i++) {
-              blockBuffer._set(i, blockBuffer._get(i)['^'](blockMask));
-            }
-          }
-          for (let i = blockCount * BLOCK_SIZE; i < dart.notNull(list[dartx.length]); i++) {
-            list[dartx._set](i, (dart.notNull(list[dartx._get](i)) ^ dart.notNull(maskBytes[dartx._get](i & 3))) >>> 0);
-          }
-          data = list;
-        }
-      }
-      dart.assert(index == headerSize);
-      if (data == null) {
-        return JSArrayOfUint8List().of([header]);
+        data = convert.UTF8.encode(message);
       } else {
-        return JSArrayOfListOfint().of([header, data]);
-      }
-    }
-  };
-  io._WebSocketOutgoingTransformer[dart.implements] = () => [StreamTransformerOfdynamic$ListOfint(), async.EventSink];
-  dart.setSignature(io._WebSocketOutgoingTransformer, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [io._WebSocketImpl])}),
-    fields: () => ({
-      webSocket: io._WebSocketImpl,
-      [_eventSink$]: EventSinkOfListOfint(),
-      [_deflateHelper]: io._WebSocketPerMessageDeflate
-    }),
-    methods: () => ({
-      bind: dart.definiteFunctionType(async.Stream$(core.List$(core.int)), [async.Stream]),
-      add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
-      close: dart.definiteFunctionType(dart.void, []),
-      addFrame: dart.definiteFunctionType(dart.void, [core.int, ListOfint()])
-    }),
-    statics: () => ({createFrame: dart.definiteFunctionType(core.Iterable$(core.List$(core.int)), [core.int, ListOfint(), core.bool, core.bool])}),
-    names: ['createFrame']
-  });
-  const _issuedPause = Symbol('_issuedPause');
-  const _completer = Symbol('_completer');
-  const _onListen$ = Symbol('_onListen');
-  const _onPause$ = Symbol('_onPause');
-  const _onResume$ = Symbol('_onResume');
-  const _cancel$ = Symbol('_cancel');
-  const _done$ = Symbol('_done');
-  const _ensureController = Symbol('_ensureController');
-  io._WebSocketConsumer = class _WebSocketConsumer extends core.Object {
-    new(webSocket, socket) {
-      this[_closeCompleter] = async.Completer.new();
-      this.webSocket = webSocket;
-      this.socket = socket;
-      this[_controller$0] = null;
-      this[_subscription$] = null;
-      this[_issuedPause] = false;
-      this[_closed] = false;
-      this[_completer] = null;
-    }
-    [_onListen$]() {
-      if (this[_subscription$] != null) {
-        this[_subscription$].cancel();
-      }
-    }
-    [_onPause$]() {
-      if (this[_subscription$] != null) {
-        this[_subscription$].pause();
-      } else {
-        this[_issuedPause] = true;
-      }
-    }
-    [_onResume$]() {
-      if (this[_subscription$] != null) {
-        this[_subscription$].resume();
-      } else {
-        this[_issuedPause] = false;
-      }
-    }
-    [_cancel$]() {
-      if (this[_subscription$] != null) {
-        let subscription = this[_subscription$];
-        this[_subscription$] = null;
-        subscription.cancel();
-      }
-    }
-    [_ensureController]() {
-      if (this[_controller$0] != null) return;
-      this[_controller$0] = async.StreamController.new({sync: true, onPause: dart.bind(this, _onPause$), onResume: dart.bind(this, _onResume$), onCancel: dart.bind(this, _onListen$)});
-      let stream = this[_controller$0].stream.transform(ListOfint())(new io._WebSocketOutgoingTransformer(this.webSocket));
-      this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
-        this[_done$]();
-        this[_closeCompleter].complete(this.webSocket);
-      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
-          this[_closed] = true;
-          this[_cancel$]();
-          if (core.ArgumentError.is(error)) {
-            if (!dart.test(this[_done$](error, stackTrace))) {
-              this[_closeCompleter].completeError(error, stackTrace);
-            }
-          } else {
-            this[_done$]();
-            this[_closeCompleter].complete(this.webSocket);
-          }
-        }, dynamicAndStackTraceToNull())});
-    }
-    [_done$](error, stackTrace) {
-      if (error === void 0) error = null;
-      if (stackTrace === void 0) stackTrace = null;
-      if (this[_completer] == null) return false;
-      if (error != null) {
-        this[_completer].completeError(error, stackTrace);
-      } else {
-        this[_completer].complete(this.webSocket);
-      }
-      this[_completer] = null;
-      return true;
-    }
-    addStream(stream) {
-      if (dart.test(this[_closed])) {
-        stream.listen(null).cancel();
-        return async.Future.value(this.webSocket);
-      }
-      this[_ensureController]();
-      this[_completer] = async.Completer.new();
-      this[_subscription$] = stream.listen(dart.fn(data => {
-        this[_controller$0].add(data);
-      }, dynamicToNull$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
-      if (dart.test(this[_issuedPause])) {
-        this[_subscription$].pause();
-        this[_issuedPause] = false;
-      }
-      return this[_completer].future;
-    }
-    close() {
-      this[_ensureController]();
-      const closeSocket = (function() {
-        return this.socket.close().catchError(dart.fn(_ => {
-        }, dynamicToNull$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
-      }).bind(this);
-      dart.fn(closeSocket, VoidToFuture());
-      this[_controller$0].close();
-      return this[_closeCompleter].future.then(dart.dynamic)(dart.fn(_ => closeSocket(), dynamicToFuture()));
-    }
-    add(data) {
-      if (dart.test(this[_closed])) return;
-      this[_ensureController]();
-      this[_controller$0].add(data);
-    }
-    closeSocket() {
-      this[_closed] = true;
-      this[_cancel$]();
-      this.close();
-    }
-  };
-  io._WebSocketConsumer[dart.implements] = () => [async.StreamConsumer];
-  dart.setSignature(io._WebSocketConsumer, {
-    constructors: () => ({new: dart.definiteFunctionType(io._WebSocketConsumer, [io._WebSocketImpl, io.Socket])}),
-    fields: () => ({
-      webSocket: io._WebSocketImpl,
-      socket: io.Socket,
-      [_controller$0]: async.StreamController,
-      [_subscription$]: async.StreamSubscription,
-      [_issuedPause]: core.bool,
-      [_closed]: core.bool,
-      [_closeCompleter]: async.Completer,
-      [_completer]: async.Completer
-    }),
-    methods: () => ({
-      [_onListen$]: dart.definiteFunctionType(dart.void, []),
-      [_onPause$]: dart.definiteFunctionType(dart.void, []),
-      [_onResume$]: dart.definiteFunctionType(dart.void, []),
-      [_cancel$]: dart.definiteFunctionType(dart.void, []),
-      [_ensureController]: dart.definiteFunctionType(dart.dynamic, []),
-      [_done$]: dart.definiteFunctionType(core.bool, [], [dart.dynamic, core.StackTrace]),
-      addStream: dart.definiteFunctionType(async.Future, [async.Stream]),
-      close: dart.definiteFunctionType(async.Future, []),
-      add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      closeSocket: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  const _readyState = Symbol('_readyState');
-  const _writeClosed = Symbol('_writeClosed');
-  const _closeCode = Symbol('_closeCode');
-  const _closeReason = Symbol('_closeReason');
-  const _pingInterval = Symbol('_pingInterval');
-  const _pingTimer = Symbol('_pingTimer');
-  const _consumer = Symbol('_consumer');
-  const _closeTimer = Symbol('_closeTimer');
-  let const$81;
-  io._WebSocketImpl = class _WebSocketImpl extends dart.mixin(async.Stream, io._ServiceObject) {
-    static connect(url, protocols, headers, opts) {
-      let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
-      let uri = core.Uri.parse(url);
-      if (uri.scheme != "ws" && uri.scheme != "wss") {
-        dart.throw(new io.WebSocketException(dart.str`Unsupported URL scheme '${uri.scheme}'`));
-      }
-      let random = math.Random.new();
-      let nonceData = typed_data.Uint8List.new(16);
-      for (let i = 0; i < 16; i++) {
-        nonceData[dartx._set](i, random.nextInt(256));
-      }
-      let nonce = io._CryptoUtils.bytesToBase64(nonceData);
-      uri = core.Uri.new({scheme: uri.scheme == "wss" ? "https" : "http", userInfo: uri.userInfo, host: uri.host, port: uri.port, path: uri.path, query: uri.query, fragment: uri.fragment});
-      return io._WebSocketImpl._httpClient.openUrl("GET", uri).then(io.HttpClientResponse)(dart.fn(request => {
-        if (uri.userInfo != null && !dart.test(uri.userInfo[dartx.isEmpty])) {
-          let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(uri.userInfo));
-          request.headers.set(io.HttpHeaders.AUTHORIZATION, dart.str`Basic ${auth}`);
-        }
-        if (headers != null) {
-          headers[dartx.forEach](dart.fn((field, value) => request.headers.add(field, value), StringAnddynamicTovoid()));
-        }
-        let _ = request.headers;
-        _.set(io.HttpHeaders.CONNECTION, "Upgrade");
-        _.set(io.HttpHeaders.UPGRADE, "websocket");
-        _.set("Sec-WebSocket-Key", nonce);
-        _.set("Cache-Control", "no-cache");
-        _.set("Sec-WebSocket-Version", "13");
-        if (protocols != null) {
-          request.headers.add("Sec-WebSocket-Protocol", protocols[dartx.toList]());
-        }
-        if (dart.test(compression.enabled)) {
-          request.headers.add("Sec-WebSocket-Extensions", compression[_createHeader]());
-        }
-        return request.close();
-      }, HttpClientRequestToFutureOfHttpClientResponse())).then(io.WebSocket)(dart.fn(response => {
-        function error(message) {
-          response.detachSocket().then(dart.dynamic)(dart.fn(socket => {
-            socket.destroy();
-          }, SocketToNull()));
-          dart.throw(new io.WebSocketException(message));
-        }
-        dart.fn(error, StringTovoid$());
-        if (response.statusCode != io.HttpStatus.SWITCHING_PROTOCOLS || response.headers._get(io.HttpHeaders.CONNECTION) == null || !dart.test(response.headers._get(io.HttpHeaders.CONNECTION)[dartx.any](dart.fn(value => value[dartx.toLowerCase]() == "upgrade", StringTobool$()))) || response.headers.value(io.HttpHeaders.UPGRADE)[dartx.toLowerCase]() != "websocket") {
-          error(dart.str`Connection to '${uri}' was not upgraded to websocket`);
-        }
-        let accept = response.headers.value("Sec-WebSocket-Accept");
-        if (accept == null) {
-          error("Response did not contain a 'Sec-WebSocket-Accept' header");
-        }
-        let sha1 = new io._SHA1();
-        sha1.add(dart.str`${nonce}${io._webSocketGUID}`[dartx.codeUnits]);
-        let expectedAccept = sha1.close();
-        let receivedAccept = io._CryptoUtils.base64StringToBytes(accept);
-        if (expectedAccept[dartx.length] != receivedAccept[dartx.length]) {
-          error("Reasponse header 'Sec-WebSocket-Accept' is the wrong length");
-        }
-        for (let i = 0; i < dart.notNull(expectedAccept[dartx.length]); i++) {
-          if (expectedAccept[dartx._get](i) != receivedAccept[dartx._get](i)) {
-            error("Bad response 'Sec-WebSocket-Accept' header");
-          }
-        }
-        let protocol = response.headers.value('Sec-WebSocket-Protocol');
-        let deflate = io._WebSocketImpl.negotiateClientCompression(response, compression);
-        return response.detachSocket().then(io.WebSocket)(dart.fn(socket => new io._WebSocketImpl._fromSocket(socket, protocol, compression, false, deflate), SocketTo_WebSocketImpl()));
-      }, HttpClientResponseToFutureOfWebSocket()));
-    }
-    static negotiateClientCompression(response, compression) {
-      let extensionHeader = response.headers.value('Sec-WebSocket-Extensions');
-      if (extensionHeader == null) {
-        extensionHeader = "";
-      }
-      let hv = io.HeaderValue.parse(extensionHeader, {valueSeparator: ','});
-      if (dart.test(compression.enabled) && hv.value == io._WebSocketImpl.PER_MESSAGE_DEFLATE) {
-        let serverNoContextTakeover = hv.parameters[dartx.containsKey](io._serverNoContextTakeover);
-        let clientNoContextTakeover = hv.parameters[dartx.containsKey](io._clientNoContextTakeover);
-        function getWindowBits(type) {
-          let o = hv.parameters[dartx._get](type);
-          if (o == null) {
-            return io._WebSocketImpl.DEFAULT_WINDOW_BITS;
-          }
-          return core.int.parse(o, {onError: dart.fn(s => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint$())});
-        }
-        dart.fn(getWindowBits, StringToint$());
-        return new io._WebSocketPerMessageDeflate({clientMaxWindowBits: getWindowBits(io._clientMaxWindowBits), serverMaxWindowBits: getWindowBits(io._serverMaxWindowBits), clientNoContextTakeover: clientNoContextTakeover, serverNoContextTakeover: serverNoContextTakeover});
-      }
-      return null;
-    }
-    _fromSocket(socket, protocol, compression, serverSide, deflate) {
-      if (serverSide === void 0) serverSide = false;
-      if (deflate === void 0) deflate = null;
-      this[_socket] = socket;
-      this.protocol = protocol;
-      this[_serverSide] = serverSide;
-      this[_controller$0] = null;
-      this[_subscription$] = null;
-      this[_sink$0] = null;
-      this[_readyState] = io.WebSocket.CONNECTING;
-      this[_writeClosed] = false;
-      this[_closeCode] = null;
-      this[_closeReason] = null;
-      this[_pingInterval] = null;
-      this[_pingTimer] = null;
-      this[_consumer] = null;
-      this[_outCloseCode] = null;
-      this[_outCloseReason] = null;
-      this[_closeTimer] = null;
-      this[_deflate] = null;
-      super.new();
-      this[_consumer] = new io._WebSocketConsumer(this, io.Socket._check(this[_socket]));
-      this[_sink$0] = new io._StreamSinkImpl(this[_consumer]);
-      this[_readyState] = io.WebSocket.OPEN;
-      this[_deflate] = deflate;
-      let transformer = new io._WebSocketProtocolTransformer(this[_serverSide], this[_deflate]);
-      this[_subscription$] = async.StreamSubscription._check(dart.dsend(dart.dsend(this[_socket], 'transform', transformer), 'listen', dart.fn(data => {
-        if (io._WebSocketPing.is(data)) {
-          if (!dart.test(this[_writeClosed])) this[_consumer].add(new io._WebSocketPong(data.payload));
-        } else if (io._WebSocketPong.is(data)) {
-          this.pingInterval = this[_pingInterval];
+        if (ListOfint().is(message)) {
+          data = message;
+          opcode = io._WebSocketOpcode.BINARY;
         } else {
-          this[_controller$0].add(data);
+          dart.throw(new core.ArgumentError(message));
         }
-      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
-          if (this[_closeTimer] != null) this[_closeTimer].cancel();
-          if (core.FormatException.is(error)) {
-            this[_close$0](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
+      }
+      if (this[_deflateHelper] != null) {
+        data = this[_deflateHelper].processOutgoingMessage(data);
+      }
+    } else {
+      opcode = io._WebSocketOpcode.TEXT;
+    }
+    this.addFrame(opcode, data);
+  }
+  addError(error, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    this[_eventSink$].addError(error, stackTrace);
+  }
+  close() {
+    let code = this.webSocket[_outCloseCode];
+    let reason = this.webSocket[_outCloseReason];
+    let data = null;
+    if (code != null) {
+      data = ListOfint().new();
+      data[dartx.add](dart.notNull(code) >> 8 & 255);
+      data[dartx.add](dart.notNull(code) & 255);
+      if (reason != null) {
+        data[dartx.addAll](convert.UTF8.encode(reason));
+      }
+    }
+    this.addFrame(io._WebSocketOpcode.CLOSE, data);
+    this[_eventSink$].close();
+  }
+  addFrame(opcode, data) {
+    return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
+      this[_eventSink$].add(e);
+    }, ListOfintToNull()));
+  }
+  static createFrame(opcode, data, serverSide, compressed) {
+    let mask = !dart.test(serverSide);
+    let dataLength = data == null ? 0 : data[dartx.length];
+    let headerSize = mask ? 6 : 2;
+    if (dart.notNull(dataLength) > 65535) {
+      headerSize = headerSize + 8;
+    } else if (dart.notNull(dataLength) > 125) {
+      headerSize = headerSize + 2;
+    }
+    let header = typed_data.Uint8List.new(headerSize);
+    let index = 0;
+    let hoc = (io._WebSocketProtocolTransformer.FIN | (dart.test(compressed) ? io._WebSocketProtocolTransformer.RSV1 : 0) | dart.notNull(opcode) & io._WebSocketProtocolTransformer.OPCODE) >>> 0;
+    header[dartx._set](index++, hoc);
+    let lengthBytes = 1;
+    if (dart.notNull(dataLength) > 65535) {
+      header[dartx._set](index++, 127);
+      lengthBytes = 8;
+    } else if (dart.notNull(dataLength) > 125) {
+      header[dartx._set](index++, 126);
+      lengthBytes = 2;
+    }
+    for (let i = 0; i < lengthBytes; i++) {
+      header[dartx._set](index++, dataLength[dartx['>>']]((lengthBytes - 1 - i) * 8) & 255);
+    }
+    if (mask) {
+      let i$ = 1;
+      header[dartx._set](i$, (dart.notNull(header[dartx._get](i$)) | 1 << 7) >>> 0);
+      let maskBytes = io._IOCrypto.getRandomBytes(4);
+      header[dartx.setRange](index, index + 4, maskBytes);
+      index = index + 4;
+      if (data != null) {
+        let list = null;
+        if (opcode == io._WebSocketOpcode.TEXT && typed_data.Uint8List.is(data)) {
+          list = data;
+        } else {
+          if (typed_data.Uint8List.is(data)) {
+            list = typed_data.Uint8List.fromList(data);
           } else {
-            this[_close$0](io.WebSocketStatus.PROTOCOL_ERROR);
+            list = typed_data.Uint8List.new(data[dartx.length]);
+            for (let i = 0; i < dart.notNull(data[dartx.length]); i++) {
+              if (dart.notNull(data[dartx._get](i)) < 0 || 255 < dart.notNull(data[dartx._get](i))) {
+                dart.throw(new core.ArgumentError("List element is not a byte value " + dart.str`(value ${data[dartx._get](i)} at index ${i})`));
+              }
+              list[dartx._set](i, data[dartx._get](i));
+            }
           }
+        }
+        let BLOCK_SIZE = 16;
+        let blockCount = (dart.notNull(list[dartx.length]) / BLOCK_SIZE)[dartx.truncate]();
+        if (blockCount > 0) {
+          let mask = 0;
+          for (let i = 3; i >= 0; i--) {
+            mask = (mask << 8 | dart.notNull(maskBytes[dartx._get](i))) >>> 0;
+          }
+          let blockMask = typed_data.Int32x4.new(mask, mask, mask, mask);
+          let blockBuffer = typed_data.Int32x4List.view(list[dartx.buffer], 0, blockCount);
+          for (let i = 0; i < dart.notNull(blockBuffer.length); i++) {
+            blockBuffer._set(i, blockBuffer._get(i)['^'](blockMask));
+          }
+        }
+        for (let i = blockCount * BLOCK_SIZE; i < dart.notNull(list[dartx.length]); i++) {
+          list[dartx._set](i, (dart.notNull(list[dartx._get](i)) ^ dart.notNull(maskBytes[dartx._get](i & 3))) >>> 0);
+        }
+        data = list;
+      }
+    }
+    dart.assert(index == headerSize);
+    if (data == null) {
+      return JSArrayOfUint8List().of([header]);
+    } else {
+      return JSArrayOfListOfint().of([header, data]);
+    }
+  }
+};
+io._WebSocketOutgoingTransformer[dart.implements] = () => [StreamTransformerOfdynamic$ListOfint(), async.EventSink];
+dart.setSignature(io._WebSocketOutgoingTransformer, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [io._WebSocketImpl])}),
+  fields: () => ({
+    webSocket: io._WebSocketImpl,
+    [_eventSink$]: EventSinkOfListOfint(),
+    [_deflateHelper]: io._WebSocketPerMessageDeflate
+  }),
+  methods: () => ({
+    bind: dart.definiteFunctionType(async.Stream$(core.List$(core.int)), [async.Stream]),
+    add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
+    close: dart.definiteFunctionType(dart.void, []),
+    addFrame: dart.definiteFunctionType(dart.void, [core.int, ListOfint()])
+  }),
+  statics: () => ({createFrame: dart.definiteFunctionType(core.Iterable$(core.List$(core.int)), [core.int, ListOfint(), core.bool, core.bool])}),
+  names: ['createFrame']
+});
+const _issuedPause = Symbol('_issuedPause');
+const _completer = Symbol('_completer');
+const _onListen$ = Symbol('_onListen');
+const _onPause$ = Symbol('_onPause');
+const _onResume$ = Symbol('_onResume');
+const _cancel$ = Symbol('_cancel');
+const _done$ = Symbol('_done');
+const _ensureController = Symbol('_ensureController');
+io._WebSocketConsumer = class _WebSocketConsumer extends core.Object {
+  new(webSocket, socket) {
+    this[_closeCompleter] = async.Completer.new();
+    this.webSocket = webSocket;
+    this.socket = socket;
+    this[_controller$0] = null;
+    this[_subscription$] = null;
+    this[_issuedPause] = false;
+    this[_closed] = false;
+    this[_completer] = null;
+  }
+  [_onListen$]() {
+    if (this[_subscription$] != null) {
+      this[_subscription$].cancel();
+    }
+  }
+  [_onPause$]() {
+    if (this[_subscription$] != null) {
+      this[_subscription$].pause();
+    } else {
+      this[_issuedPause] = true;
+    }
+  }
+  [_onResume$]() {
+    if (this[_subscription$] != null) {
+      this[_subscription$].resume();
+    } else {
+      this[_issuedPause] = false;
+    }
+  }
+  [_cancel$]() {
+    if (this[_subscription$] != null) {
+      let subscription = this[_subscription$];
+      this[_subscription$] = null;
+      subscription.cancel();
+    }
+  }
+  [_ensureController]() {
+    if (this[_controller$0] != null) return;
+    this[_controller$0] = async.StreamController.new({sync: true, onPause: dart.bind(this, _onPause$), onResume: dart.bind(this, _onResume$), onCancel: dart.bind(this, _onListen$)});
+    let stream = this[_controller$0].stream.transform(ListOfint())(new io._WebSocketOutgoingTransformer(this.webSocket));
+    this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
+      this[_done$]();
+      this[_closeCompleter].complete(this.webSocket);
+    }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
+        this[_closed] = true;
+        this[_cancel$]();
+        if (core.ArgumentError.is(error)) {
+          if (!dart.test(this[_done$](error, stackTrace))) {
+            this[_closeCompleter].completeError(error, stackTrace);
+          }
+        } else {
+          this[_done$]();
+          this[_closeCompleter].complete(this.webSocket);
+        }
+      }, dynamicAndStackTraceToNull())});
+  }
+  [_done$](error, stackTrace) {
+    if (error === void 0) error = null;
+    if (stackTrace === void 0) stackTrace = null;
+    if (this[_completer] == null) return false;
+    if (error != null) {
+      this[_completer].completeError(error, stackTrace);
+    } else {
+      this[_completer].complete(this.webSocket);
+    }
+    this[_completer] = null;
+    return true;
+  }
+  addStream(stream) {
+    if (dart.test(this[_closed])) {
+      stream.listen(null).cancel();
+      return async.Future.value(this.webSocket);
+    }
+    this[_ensureController]();
+    this[_completer] = async.Completer.new();
+    this[_subscription$] = stream.listen(dart.fn(data => {
+      this[_controller$0].add(data);
+    }, dynamicToNull$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
+    if (dart.test(this[_issuedPause])) {
+      this[_subscription$].pause();
+      this[_issuedPause] = false;
+    }
+    return this[_completer].future;
+  }
+  close() {
+    this[_ensureController]();
+    const closeSocket = (function() {
+      return this.socket.close().catchError(dart.fn(_ => {
+      }, dynamicToNull$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
+    }).bind(this);
+    dart.fn(closeSocket, VoidToFuture());
+    this[_controller$0].close();
+    return this[_closeCompleter].future.then(dart.dynamic)(dart.fn(_ => closeSocket(), dynamicToFuture()));
+  }
+  add(data) {
+    if (dart.test(this[_closed])) return;
+    this[_ensureController]();
+    this[_controller$0].add(data);
+  }
+  closeSocket() {
+    this[_closed] = true;
+    this[_cancel$]();
+    this.close();
+  }
+};
+io._WebSocketConsumer[dart.implements] = () => [async.StreamConsumer];
+dart.setSignature(io._WebSocketConsumer, {
+  constructors: () => ({new: dart.definiteFunctionType(io._WebSocketConsumer, [io._WebSocketImpl, io.Socket])}),
+  fields: () => ({
+    webSocket: io._WebSocketImpl,
+    socket: io.Socket,
+    [_controller$0]: async.StreamController,
+    [_subscription$]: async.StreamSubscription,
+    [_issuedPause]: core.bool,
+    [_closed]: core.bool,
+    [_closeCompleter]: async.Completer,
+    [_completer]: async.Completer
+  }),
+  methods: () => ({
+    [_onListen$]: dart.definiteFunctionType(dart.void, []),
+    [_onPause$]: dart.definiteFunctionType(dart.void, []),
+    [_onResume$]: dart.definiteFunctionType(dart.void, []),
+    [_cancel$]: dart.definiteFunctionType(dart.void, []),
+    [_ensureController]: dart.definiteFunctionType(dart.dynamic, []),
+    [_done$]: dart.definiteFunctionType(core.bool, [], [dart.dynamic, core.StackTrace]),
+    addStream: dart.definiteFunctionType(async.Future, [async.Stream]),
+    close: dart.definiteFunctionType(async.Future, []),
+    add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    closeSocket: dart.definiteFunctionType(dart.void, [])
+  })
+});
+const _readyState = Symbol('_readyState');
+const _writeClosed = Symbol('_writeClosed');
+const _closeCode = Symbol('_closeCode');
+const _closeReason = Symbol('_closeReason');
+const _pingInterval = Symbol('_pingInterval');
+const _pingTimer = Symbol('_pingTimer');
+const _consumer = Symbol('_consumer');
+const _closeTimer = Symbol('_closeTimer');
+let const$81;
+io._WebSocketImpl = class _WebSocketImpl extends dart.mixin(async.Stream, io._ServiceObject) {
+  static connect(url, protocols, headers, opts) {
+    let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
+    let uri = core.Uri.parse(url);
+    if (uri.scheme != "ws" && uri.scheme != "wss") {
+      dart.throw(new io.WebSocketException(dart.str`Unsupported URL scheme '${uri.scheme}'`));
+    }
+    let random = math.Random.new();
+    let nonceData = typed_data.Uint8List.new(16);
+    for (let i = 0; i < 16; i++) {
+      nonceData[dartx._set](i, random.nextInt(256));
+    }
+    let nonce = io._CryptoUtils.bytesToBase64(nonceData);
+    uri = core.Uri.new({scheme: uri.scheme == "wss" ? "https" : "http", userInfo: uri.userInfo, host: uri.host, port: uri.port, path: uri.path, query: uri.query, fragment: uri.fragment});
+    return io._WebSocketImpl._httpClient.openUrl("GET", uri).then(io.HttpClientResponse)(dart.fn(request => {
+      if (uri.userInfo != null && !dart.test(uri.userInfo[dartx.isEmpty])) {
+        let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(uri.userInfo));
+        request.headers.set(io.HttpHeaders.AUTHORIZATION, dart.str`Basic ${auth}`);
+      }
+      if (headers != null) {
+        headers[dartx.forEach](dart.fn((field, value) => request.headers.add(field, value), StringAnddynamicTovoid()));
+      }
+      let _ = request.headers;
+      _.set(io.HttpHeaders.CONNECTION, "Upgrade");
+      _.set(io.HttpHeaders.UPGRADE, "websocket");
+      _.set("Sec-WebSocket-Key", nonce);
+      _.set("Cache-Control", "no-cache");
+      _.set("Sec-WebSocket-Version", "13");
+      if (protocols != null) {
+        request.headers.add("Sec-WebSocket-Protocol", protocols[dartx.toList]());
+      }
+      if (dart.test(compression.enabled)) {
+        request.headers.add("Sec-WebSocket-Extensions", compression[_createHeader]());
+      }
+      return request.close();
+    }, HttpClientRequestToFutureOfHttpClientResponse())).then(io.WebSocket)(dart.fn(response => {
+      function error(message) {
+        response.detachSocket().then(dart.dynamic)(dart.fn(socket => {
+          socket.destroy();
+        }, SocketToNull()));
+        dart.throw(new io.WebSocketException(message));
+      }
+      dart.fn(error, StringTovoid$());
+      if (response.statusCode != io.HttpStatus.SWITCHING_PROTOCOLS || response.headers._get(io.HttpHeaders.CONNECTION) == null || !dart.test(response.headers._get(io.HttpHeaders.CONNECTION)[dartx.any](dart.fn(value => value[dartx.toLowerCase]() == "upgrade", StringTobool$()))) || response.headers.value(io.HttpHeaders.UPGRADE)[dartx.toLowerCase]() != "websocket") {
+        error(dart.str`Connection to '${uri}' was not upgraded to websocket`);
+      }
+      let accept = response.headers.value("Sec-WebSocket-Accept");
+      if (accept == null) {
+        error("Response did not contain a 'Sec-WebSocket-Accept' header");
+      }
+      let sha1 = new io._SHA1();
+      sha1.add(dart.str`${nonce}${io._webSocketGUID}`[dartx.codeUnits]);
+      let expectedAccept = sha1.close();
+      let receivedAccept = io._CryptoUtils.base64StringToBytes(accept);
+      if (expectedAccept[dartx.length] != receivedAccept[dartx.length]) {
+        error("Reasponse header 'Sec-WebSocket-Accept' is the wrong length");
+      }
+      for (let i = 0; i < dart.notNull(expectedAccept[dartx.length]); i++) {
+        if (expectedAccept[dartx._get](i) != receivedAccept[dartx._get](i)) {
+          error("Bad response 'Sec-WebSocket-Accept' header");
+        }
+      }
+      let protocol = response.headers.value('Sec-WebSocket-Protocol');
+      let deflate = io._WebSocketImpl.negotiateClientCompression(response, compression);
+      return response.detachSocket().then(io.WebSocket)(dart.fn(socket => new io._WebSocketImpl._fromSocket(socket, protocol, compression, false, deflate), SocketTo_WebSocketImpl()));
+    }, HttpClientResponseToFutureOfWebSocket()));
+  }
+  static negotiateClientCompression(response, compression) {
+    let extensionHeader = response.headers.value('Sec-WebSocket-Extensions');
+    if (extensionHeader == null) {
+      extensionHeader = "";
+    }
+    let hv = io.HeaderValue.parse(extensionHeader, {valueSeparator: ','});
+    if (dart.test(compression.enabled) && hv.value == io._WebSocketImpl.PER_MESSAGE_DEFLATE) {
+      let serverNoContextTakeover = hv.parameters[dartx.containsKey](io._serverNoContextTakeover);
+      let clientNoContextTakeover = hv.parameters[dartx.containsKey](io._clientNoContextTakeover);
+      function getWindowBits(type) {
+        let o = hv.parameters[dartx._get](type);
+        if (o == null) {
+          return io._WebSocketImpl.DEFAULT_WINDOW_BITS;
+        }
+        return core.int.parse(o, {onError: dart.fn(s => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint$())});
+      }
+      dart.fn(getWindowBits, StringToint$());
+      return new io._WebSocketPerMessageDeflate({clientMaxWindowBits: getWindowBits(io._clientMaxWindowBits), serverMaxWindowBits: getWindowBits(io._serverMaxWindowBits), clientNoContextTakeover: clientNoContextTakeover, serverNoContextTakeover: serverNoContextTakeover});
+    }
+    return null;
+  }
+  _fromSocket(socket, protocol, compression, serverSide, deflate) {
+    if (serverSide === void 0) serverSide = false;
+    if (deflate === void 0) deflate = null;
+    this[_socket] = socket;
+    this.protocol = protocol;
+    this[_serverSide] = serverSide;
+    this[_controller$0] = null;
+    this[_subscription$] = null;
+    this[_sink$0] = null;
+    this[_readyState] = io.WebSocket.CONNECTING;
+    this[_writeClosed] = false;
+    this[_closeCode] = null;
+    this[_closeReason] = null;
+    this[_pingInterval] = null;
+    this[_pingTimer] = null;
+    this[_consumer] = null;
+    this[_outCloseCode] = null;
+    this[_outCloseReason] = null;
+    this[_closeTimer] = null;
+    this[_deflate] = null;
+    super.new();
+    this[_consumer] = new io._WebSocketConsumer(this, io.Socket._check(this[_socket]));
+    this[_sink$0] = new io._StreamSinkImpl(this[_consumer]);
+    this[_readyState] = io.WebSocket.OPEN;
+    this[_deflate] = deflate;
+    let transformer = new io._WebSocketProtocolTransformer(this[_serverSide], this[_deflate]);
+    this[_subscription$] = async.StreamSubscription._check(dart.dsend(dart.dsend(this[_socket], 'transform', transformer), 'listen', dart.fn(data => {
+      if (io._WebSocketPing.is(data)) {
+        if (!dart.test(this[_writeClosed])) this[_consumer].add(new io._WebSocketPong(data.payload));
+      } else if (io._WebSocketPong.is(data)) {
+        this.pingInterval = this[_pingInterval];
+      } else {
+        this[_controller$0].add(data);
+      }
+    }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
+        if (this[_closeTimer] != null) this[_closeTimer].cancel();
+        if (core.FormatException.is(error)) {
+          this[_close$0](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
+        } else {
+          this[_close$0](io.WebSocketStatus.PROTOCOL_ERROR);
+        }
+        this[_closeCode] = this[_outCloseCode];
+        this[_closeReason] = this[_outCloseReason];
+        this[_controller$0].close();
+      }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
+        if (this[_closeTimer] != null) this[_closeTimer].cancel();
+        if (this[_readyState] == io.WebSocket.OPEN) {
+          this[_readyState] = io.WebSocket.CLOSING;
+          if (!dart.test(io._WebSocketImpl._isReservedStatusCode(transformer.closeCode))) {
+            this[_close$0](transformer.closeCode, transformer.closeReason);
+          } else {
+            this[_close$0]();
+          }
+          this[_readyState] = io.WebSocket.CLOSED;
+        }
+        this[_closeCode] = transformer.closeCode;
+        this[_closeReason] = transformer.closeReason;
+        this[_controller$0].close();
+      }, VoidToNull()), cancelOnError: true}));
+    this[_subscription$].pause();
+    this[_controller$0] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$], 'resume'), onCancel: dart.fn(() => {
+        this[_subscription$].cancel();
+        this[_subscription$] = null;
+      }, VoidToNull()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
+    io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
+    try {
+      dart.dput(this[_socket], _owner, this);
+    } catch (_) {
+    }
+
+  }
+  listen(onData, opts) {
+    let onError = opts && 'onError' in opts ? opts.onError : null;
+    let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+    let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+  }
+  get pingInterval() {
+    return this[_pingInterval];
+  }
+  set pingInterval(interval) {
+    if (dart.test(this[_writeClosed])) return;
+    if (this[_pingTimer] != null) this[_pingTimer].cancel();
+    this[_pingInterval] = interval;
+    if (this[_pingInterval] == null) return;
+    this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
+      if (dart.test(this[_writeClosed])) return;
+      this[_consumer].add(new io._WebSocketPing());
+      this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
+        this[_close$0](io.WebSocketStatus.GOING_AWAY);
+      }, VoidToNull()));
+    }, VoidToNull()));
+  }
+  get readyState() {
+    return this[_readyState];
+  }
+  get extensions() {
+    return null;
+  }
+  get closeCode() {
+    return this[_closeCode];
+  }
+  get closeReason() {
+    return this[_closeReason];
+  }
+  add(data) {
+    this[_sink$0].add(data);
+  }
+  addError(error, stackTrace) {
+    if (stackTrace === void 0) stackTrace = null;
+    this[_sink$0].addError(error, stackTrace);
+  }
+  addStream(stream) {
+    return this[_sink$0].addStream(stream);
+  }
+  get done() {
+    return this[_sink$0].done;
+  }
+  close(code, reason) {
+    if (code === void 0) code = null;
+    if (reason === void 0) reason = null;
+    if (dart.test(io._WebSocketImpl._isReservedStatusCode(code))) {
+      dart.throw(new io.WebSocketException(dart.str`Reserved status code ${code}`));
+    }
+    if (this[_outCloseCode] == null) {
+      this[_outCloseCode] = code;
+      this[_outCloseReason] = reason;
+    }
+    if (!dart.test(this[_controller$0].isClosed)) {
+      if (!dart.test(this[_controller$0].hasListener) && this[_subscription$] != null) {
+        this[_controller$0].stream.drain(dart.dynamic)().catchError(dart.fn(_ => dart.map(), dynamicToMap()));
+      }
+      if (this[_closeTimer] == null) {
+        this[_closeTimer] = async.Timer.new(const$81 || (const$81 = dart.const(new core.Duration({seconds: 5}))), dart.fn(() => {
           this[_closeCode] = this[_outCloseCode];
           this[_closeReason] = this[_outCloseReason];
+          if (this[_subscription$] != null) this[_subscription$].cancel();
           this[_controller$0].close();
-        }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
-          if (this[_closeTimer] != null) this[_closeTimer].cancel();
-          if (this[_readyState] == io.WebSocket.OPEN) {
-            this[_readyState] = io.WebSocket.CLOSING;
-            if (!dart.test(io._WebSocketImpl._isReservedStatusCode(transformer.closeCode))) {
-              this[_close$0](transformer.closeCode, transformer.closeReason);
-            } else {
-              this[_close$0]();
-            }
-            this[_readyState] = io.WebSocket.CLOSED;
-          }
-          this[_closeCode] = transformer.closeCode;
-          this[_closeReason] = transformer.closeReason;
-          this[_controller$0].close();
-        }, VoidToNull()), cancelOnError: true}));
-      this[_subscription$].pause();
-      this[_controller$0] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$], 'resume'), onCancel: dart.fn(() => {
-          this[_subscription$].cancel();
-          this[_subscription$] = null;
-        }, VoidToNull()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
-      io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
-      try {
-        dart.dput(this[_socket], _owner, this);
-      } catch (_) {
-      }
-
-    }
-    listen(onData, opts) {
-      let onError = opts && 'onError' in opts ? opts.onError : null;
-      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-    }
-    get pingInterval() {
-      return this[_pingInterval];
-    }
-    set pingInterval(interval) {
-      if (dart.test(this[_writeClosed])) return;
-      if (this[_pingTimer] != null) this[_pingTimer].cancel();
-      this[_pingInterval] = interval;
-      if (this[_pingInterval] == null) return;
-      this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
-        if (dart.test(this[_writeClosed])) return;
-        this[_consumer].add(new io._WebSocketPing());
-        this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
-          this[_close$0](io.WebSocketStatus.GOING_AWAY);
+          io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
         }, VoidToNull()));
-      }, VoidToNull()));
-    }
-    get readyState() {
-      return this[_readyState];
-    }
-    get extensions() {
-      return null;
-    }
-    get closeCode() {
-      return this[_closeCode];
-    }
-    get closeReason() {
-      return this[_closeReason];
-    }
-    add(data) {
-      this[_sink$0].add(data);
-    }
-    addError(error, stackTrace) {
-      if (stackTrace === void 0) stackTrace = null;
-      this[_sink$0].addError(error, stackTrace);
-    }
-    addStream(stream) {
-      return this[_sink$0].addStream(stream);
-    }
-    get done() {
-      return this[_sink$0].done;
-    }
-    close(code, reason) {
-      if (code === void 0) code = null;
-      if (reason === void 0) reason = null;
-      if (dart.test(io._WebSocketImpl._isReservedStatusCode(code))) {
-        dart.throw(new io.WebSocketException(dart.str`Reserved status code ${code}`));
       }
-      if (this[_outCloseCode] == null) {
-        this[_outCloseCode] = code;
-        this[_outCloseReason] = reason;
-      }
-      if (!dart.test(this[_controller$0].isClosed)) {
-        if (!dart.test(this[_controller$0].hasListener) && this[_subscription$] != null) {
-          this[_controller$0].stream.drain(dart.dynamic)().catchError(dart.fn(_ => dart.map(), dynamicToMap()));
-        }
-        if (this[_closeTimer] == null) {
-          this[_closeTimer] = async.Timer.new(const$81 || (const$81 = dart.const(new core.Duration({seconds: 5}))), dart.fn(() => {
-            this[_closeCode] = this[_outCloseCode];
-            this[_closeReason] = this[_outCloseReason];
-            if (this[_subscription$] != null) this[_subscription$].cancel();
-            this[_controller$0].close();
-            io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
-          }, VoidToNull()));
-        }
-      }
-      return this[_sink$0].close();
     }
-    [_close$0](code, reason) {
-      if (code === void 0) code = null;
-      if (reason === void 0) reason = null;
-      if (dart.test(this[_writeClosed])) return;
-      if (this[_outCloseCode] == null) {
-        this[_outCloseCode] = code;
-        this[_outCloseReason] = reason;
-      }
-      this[_writeClosed] = true;
-      this[_consumer].closeSocket();
-      io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
+    return this[_sink$0].close();
+  }
+  [_close$0](code, reason) {
+    if (code === void 0) code = null;
+    if (reason === void 0) reason = null;
+    if (dart.test(this[_writeClosed])) return;
+    if (this[_outCloseCode] == null) {
+      this[_outCloseCode] = code;
+      this[_outCloseReason] = reason;
     }
-    get [_serviceTypePath]() {
-      return 'io/websockets';
-    }
-    get [_serviceTypeName]() {
-      return 'WebSocket';
-    }
-    [_toJSON$](ref) {
-      let name = dart.str`${dart.dload(dart.dload(this[_socket], 'address'), 'host')}:${dart.dload(this[_socket], 'port')}`;
-      let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: name, user_name: name}, core.String, dart.dynamic);
-      if (dart.test(ref)) {
-        return r;
-      }
-      try {
-        r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON$, true));
-      } catch (_) {
-        r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
-      }
-
+    this[_writeClosed] = true;
+    this[_consumer].closeSocket();
+    io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
+  }
+  get [_serviceTypePath]() {
+    return 'io/websockets';
+  }
+  get [_serviceTypeName]() {
+    return 'WebSocket';
+  }
+  [_toJSON$](ref) {
+    let name = dart.str`${dart.dload(dart.dload(this[_socket], 'address'), 'host')}:${dart.dload(this[_socket], 'port')}`;
+    let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: name, user_name: name}, core.String, dart.dynamic);
+    if (dart.test(ref)) {
       return r;
     }
-    static _isReservedStatusCode(code) {
-      return code != null && (dart.notNull(code) < io.WebSocketStatus.NORMAL_CLOSURE || code == io.WebSocketStatus.RESERVED_1004 || code == io.WebSocketStatus.NO_STATUS_RECEIVED || code == io.WebSocketStatus.ABNORMAL_CLOSURE || dart.notNull(code) > io.WebSocketStatus.INTERNAL_SERVER_ERROR && dart.notNull(code) < io.WebSocketStatus.RESERVED_1015 || dart.notNull(code) >= io.WebSocketStatus.RESERVED_1015 && dart.notNull(code) < 3000);
+    try {
+      r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON$, true));
+    } catch (_) {
+      r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
     }
-  };
-  dart.addSimpleTypeTests(io._WebSocketImpl);
-  dart.defineNamedConstructor(io._WebSocketImpl, '_fromSocket');
-  io._WebSocketImpl[dart.implements] = () => [io.WebSocket];
-  dart.setSignature(io._WebSocketImpl, {
-    constructors: () => ({_fromSocket: dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic, core.String, io.CompressionOptions], [core.bool, io._WebSocketPerMessageDeflate])}),
-    fields: () => ({
-      protocol: core.String,
-      [_controller$0]: async.StreamController,
-      [_subscription$]: async.StreamSubscription,
-      [_sink$0]: async.StreamSink,
-      [_socket]: dart.dynamic,
-      [_serverSide]: core.bool,
-      [_readyState]: core.int,
-      [_writeClosed]: core.bool,
-      [_closeCode]: core.int,
-      [_closeReason]: core.String,
-      [_pingInterval]: core.Duration,
-      [_pingTimer]: async.Timer,
-      [_consumer]: io._WebSocketConsumer,
-      [_outCloseCode]: core.int,
-      [_outCloseReason]: core.String,
-      [_closeTimer]: async.Timer,
-      [_deflate]: io._WebSocketPerMessageDeflate
-    }),
-    getters: () => ({
-      pingInterval: dart.definiteFunctionType(core.Duration, []),
-      readyState: dart.definiteFunctionType(core.int, []),
-      extensions: dart.definiteFunctionType(core.String, []),
-      closeCode: dart.definiteFunctionType(core.int, []),
-      closeReason: dart.definiteFunctionType(core.String, []),
-      done: dart.definiteFunctionType(async.Future, []),
-      [_serviceTypePath]: dart.definiteFunctionType(core.String, []),
-      [_serviceTypeName]: dart.definiteFunctionType(core.String, [])
-    }),
-    setters: () => ({pingInterval: dart.definiteFunctionType(dart.void, [core.Duration])}),
-    methods: () => ({
-      listen: dart.definiteFunctionType(async.StreamSubscription, [dynamicTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-      add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
-      addStream: dart.definiteFunctionType(async.Future, [async.Stream]),
-      close: dart.definiteFunctionType(async.Future, [], [core.int, core.String]),
-      [_close$0]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
-      [_toJSON$]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
-    }),
-    sfields: () => ({
-      _webSockets: MapOfint$_WebSocketImpl(),
-      DEFAULT_WINDOW_BITS: core.int,
-      PER_MESSAGE_DEFLATE: core.String,
-      _httpClient: io.HttpClient
-    }),
-    statics: () => ({
-      connect: dart.definiteFunctionType(async.Future$(io.WebSocket), [core.String, IterableOfString(), MapOfString$dynamic()], {compression: io.CompressionOptions}),
-      negotiateClientCompression: dart.definiteFunctionType(io._WebSocketPerMessageDeflate, [io.HttpClientResponse, io.CompressionOptions]),
-      _isReservedStatusCode: dart.definiteFunctionType(core.bool, [core.int])
-    }),
-    names: ['connect', 'negotiateClientCompression', '_isReservedStatusCode']
-  });
-  io._WebSocketImpl.DEFAULT_WINDOW_BITS = 15;
-  io._WebSocketImpl.PER_MESSAGE_DEFLATE = "permessage-deflate";
-  dart.defineLazy(io._WebSocketImpl, {
-    get _webSockets() {
-      return MapOfint$_WebSocketImpl().new();
-    },
-    set _webSockets(_) {},
-    get _httpClient() {
-      return io.HttpClient.new();
-    }
-  });
-  isolate.IsolateSpawnException = class IsolateSpawnException extends core.Object {
-    new(message) {
-      this.message = message;
-    }
-    toString() {
-      return dart.str`IsolateSpawnException: ${this.message}`;
-    }
-  };
-  isolate.IsolateSpawnException[dart.implements] = () => [core.Exception];
-  dart.setSignature(isolate.IsolateSpawnException, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate.IsolateSpawnException, [core.String])}),
-    fields: () => ({message: core.String})
-  });
-  const _pause = Symbol('_pause');
-  isolate.Isolate = class Isolate extends core.Object {
-    new(controlPort, opts) {
-      let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapability : null;
-      let terminateCapability = opts && 'terminateCapability' in opts ? opts.terminateCapability : null;
-      this.controlPort = controlPort;
-      this.pauseCapability = pauseCapability;
-      this.terminateCapability = terminateCapability;
-    }
-    static get current() {
-      return isolate.Isolate._currentIsolateCache;
-    }
-    static spawn(entryPoint, message, opts) {
-      let paused = opts && 'paused' in opts ? opts.paused : false;
-      try {
-        return _isolate_helper.IsolateNatives.spawnFunction(entryPoint, message, paused).then(isolate.Isolate)(dart.fn(msg => new isolate.Isolate(isolate.SendPort._check(msg[dartx._get](1)), {pauseCapability: isolate.Capability._check(msg[dartx._get](2)), terminateCapability: isolate.Capability._check(msg[dartx._get](3))}), ListToIsolate()));
-      } catch (e) {
-        let st = dart.stackTrace(e);
-        return FutureOfIsolate().error(e, st);
-      }
 
+    return r;
+  }
+  static _isReservedStatusCode(code) {
+    return code != null && (dart.notNull(code) < io.WebSocketStatus.NORMAL_CLOSURE || code == io.WebSocketStatus.RESERVED_1004 || code == io.WebSocketStatus.NO_STATUS_RECEIVED || code == io.WebSocketStatus.ABNORMAL_CLOSURE || dart.notNull(code) > io.WebSocketStatus.INTERNAL_SERVER_ERROR && dart.notNull(code) < io.WebSocketStatus.RESERVED_1015 || dart.notNull(code) >= io.WebSocketStatus.RESERVED_1015 && dart.notNull(code) < 3000);
+  }
+};
+dart.addSimpleTypeTests(io._WebSocketImpl);
+dart.defineNamedConstructor(io._WebSocketImpl, '_fromSocket');
+io._WebSocketImpl[dart.implements] = () => [io.WebSocket];
+dart.setSignature(io._WebSocketImpl, {
+  constructors: () => ({_fromSocket: dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic, core.String, io.CompressionOptions], [core.bool, io._WebSocketPerMessageDeflate])}),
+  fields: () => ({
+    protocol: core.String,
+    [_controller$0]: async.StreamController,
+    [_subscription$]: async.StreamSubscription,
+    [_sink$0]: async.StreamSink,
+    [_socket]: dart.dynamic,
+    [_serverSide]: core.bool,
+    [_readyState]: core.int,
+    [_writeClosed]: core.bool,
+    [_closeCode]: core.int,
+    [_closeReason]: core.String,
+    [_pingInterval]: core.Duration,
+    [_pingTimer]: async.Timer,
+    [_consumer]: io._WebSocketConsumer,
+    [_outCloseCode]: core.int,
+    [_outCloseReason]: core.String,
+    [_closeTimer]: async.Timer,
+    [_deflate]: io._WebSocketPerMessageDeflate
+  }),
+  getters: () => ({
+    pingInterval: dart.definiteFunctionType(core.Duration, []),
+    readyState: dart.definiteFunctionType(core.int, []),
+    extensions: dart.definiteFunctionType(core.String, []),
+    closeCode: dart.definiteFunctionType(core.int, []),
+    closeReason: dart.definiteFunctionType(core.String, []),
+    done: dart.definiteFunctionType(async.Future, []),
+    [_serviceTypePath]: dart.definiteFunctionType(core.String, []),
+    [_serviceTypeName]: dart.definiteFunctionType(core.String, [])
+  }),
+  setters: () => ({pingInterval: dart.definiteFunctionType(dart.void, [core.Duration])}),
+  methods: () => ({
+    listen: dart.definiteFunctionType(async.StreamSubscription, [dynamicTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+    add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
+    addStream: dart.definiteFunctionType(async.Future, [async.Stream]),
+    close: dart.definiteFunctionType(async.Future, [], [core.int, core.String]),
+    [_close$0]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
+    [_toJSON$]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
+  }),
+  sfields: () => ({
+    _webSockets: MapOfint$_WebSocketImpl(),
+    DEFAULT_WINDOW_BITS: core.int,
+    PER_MESSAGE_DEFLATE: core.String,
+    _httpClient: io.HttpClient
+  }),
+  statics: () => ({
+    connect: dart.definiteFunctionType(async.Future$(io.WebSocket), [core.String, IterableOfString(), MapOfString$dynamic()], {compression: io.CompressionOptions}),
+    negotiateClientCompression: dart.definiteFunctionType(io._WebSocketPerMessageDeflate, [io.HttpClientResponse, io.CompressionOptions]),
+    _isReservedStatusCode: dart.definiteFunctionType(core.bool, [core.int])
+  }),
+  names: ['connect', 'negotiateClientCompression', '_isReservedStatusCode']
+});
+io._WebSocketImpl.DEFAULT_WINDOW_BITS = 15;
+io._WebSocketImpl.PER_MESSAGE_DEFLATE = "permessage-deflate";
+dart.defineLazy(io._WebSocketImpl, {
+  get _webSockets() {
+    return MapOfint$_WebSocketImpl().new();
+  },
+  set _webSockets(_) {},
+  get _httpClient() {
+    return io.HttpClient.new();
+  }
+});
+isolate.IsolateSpawnException = class IsolateSpawnException extends core.Object {
+  new(message) {
+    this.message = message;
+  }
+  toString() {
+    return dart.str`IsolateSpawnException: ${this.message}`;
+  }
+};
+isolate.IsolateSpawnException[dart.implements] = () => [core.Exception];
+dart.setSignature(isolate.IsolateSpawnException, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate.IsolateSpawnException, [core.String])}),
+  fields: () => ({message: core.String})
+});
+const _pause = Symbol('_pause');
+isolate.Isolate = class Isolate extends core.Object {
+  new(controlPort, opts) {
+    let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapability : null;
+    let terminateCapability = opts && 'terminateCapability' in opts ? opts.terminateCapability : null;
+    this.controlPort = controlPort;
+    this.pauseCapability = pauseCapability;
+    this.terminateCapability = terminateCapability;
+  }
+  static get current() {
+    return isolate.Isolate._currentIsolateCache;
+  }
+  static spawn(entryPoint, message, opts) {
+    let paused = opts && 'paused' in opts ? opts.paused : false;
+    try {
+      return _isolate_helper.IsolateNatives.spawnFunction(entryPoint, message, paused).then(isolate.Isolate)(dart.fn(msg => new isolate.Isolate(isolate.SendPort._check(msg[dartx._get](1)), {pauseCapability: isolate.Capability._check(msg[dartx._get](2)), terminateCapability: isolate.Capability._check(msg[dartx._get](3))}), ListToIsolate()));
+    } catch (e) {
+      let st = dart.stackTrace(e);
+      return FutureOfIsolate().error(e, st);
     }
-    static spawnUri(uri, args, message, opts) {
-      let paused = opts && 'paused' in opts ? opts.paused : false;
-      let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null;
-      if (packageRoot != null) dart.throw(new core.UnimplementedError("packageRoot"));
-      try {
-        if (core.List.is(args)) {
-          for (let i = 0; i < dart.notNull(args[dartx.length]); i++) {
-            if (!(typeof args[dartx._get](i) == 'string')) {
-              dart.throw(new core.ArgumentError(dart.str`Args must be a list of Strings ${args}`));
-            }
+
+  }
+  static spawnUri(uri, args, message, opts) {
+    let paused = opts && 'paused' in opts ? opts.paused : false;
+    let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null;
+    if (packageRoot != null) dart.throw(new core.UnimplementedError("packageRoot"));
+    try {
+      if (core.List.is(args)) {
+        for (let i = 0; i < dart.notNull(args[dartx.length]); i++) {
+          if (!(typeof args[dartx._get](i) == 'string')) {
+            dart.throw(new core.ArgumentError(dart.str`Args must be a list of Strings ${args}`));
           }
-        } else if (args != null) {
-          dart.throw(new core.ArgumentError(dart.str`Args must be a list of Strings ${args}`));
         }
-        return _isolate_helper.IsolateNatives.spawnUri(uri, args, message, paused).then(isolate.Isolate)(dart.fn(msg => new isolate.Isolate(isolate.SendPort._check(msg[dartx._get](1)), {pauseCapability: isolate.Capability._check(msg[dartx._get](2)), terminateCapability: isolate.Capability._check(msg[dartx._get](3))}), ListToIsolate()));
-      } catch (e) {
-        let st = dart.stackTrace(e);
-        return FutureOfIsolate().error(e, st);
+      } else if (args != null) {
+        dart.throw(new core.ArgumentError(dart.str`Args must be a list of Strings ${args}`));
       }
+      return _isolate_helper.IsolateNatives.spawnUri(uri, args, message, paused).then(isolate.Isolate)(dart.fn(msg => new isolate.Isolate(isolate.SendPort._check(msg[dartx._get](1)), {pauseCapability: isolate.Capability._check(msg[dartx._get](2)), terminateCapability: isolate.Capability._check(msg[dartx._get](3))}), ListToIsolate()));
+    } catch (e) {
+      let st = dart.stackTrace(e);
+      return FutureOfIsolate().error(e, st);
+    }
 
+  }
+  pause(resumeCapability) {
+    if (resumeCapability === void 0) resumeCapability = null;
+    if (resumeCapability == null) resumeCapability = isolate.Capability.new();
+    this[_pause](resumeCapability);
+    return resumeCapability;
+  }
+  [_pause](resumeCapability) {
+    let message = core.List.new(3);
+    message[dartx._set](0, "pause");
+    message[dartx._set](1, this.pauseCapability);
+    message[dartx._set](2, resumeCapability);
+    this.controlPort.send(message);
+  }
+  resume(resumeCapability) {
+    let message = core.List.new(2);
+    message[dartx._set](0, "resume");
+    message[dartx._set](1, resumeCapability);
+    this.controlPort.send(message);
+  }
+  addOnExitListener(responsePort) {
+    let message = core.List.new(2);
+    message[dartx._set](0, "add-ondone");
+    message[dartx._set](1, responsePort);
+    this.controlPort.send(message);
+  }
+  removeOnExitListener(responsePort) {
+    let message = core.List.new(2);
+    message[dartx._set](0, "remove-ondone");
+    message[dartx._set](1, responsePort);
+    this.controlPort.send(message);
+  }
+  setErrorsFatal(errorsAreFatal) {
+    let message = core.List.new(3);
+    message[dartx._set](0, "set-errors-fatal");
+    message[dartx._set](1, this.terminateCapability);
+    message[dartx._set](2, errorsAreFatal);
+    this.controlPort.send(message);
+  }
+  kill(priority) {
+    if (priority === void 0) priority = isolate.Isolate.BEFORE_NEXT_EVENT;
+    this.controlPort.send(JSArrayOfObject().of(["kill", this.terminateCapability, priority]));
+  }
+  ping(responsePort, pingType) {
+    if (pingType === void 0) pingType = isolate.Isolate.IMMEDIATE;
+    let message = core.List.new(3);
+    message[dartx._set](0, "ping");
+    message[dartx._set](1, responsePort);
+    message[dartx._set](2, pingType);
+    this.controlPort.send(message);
+  }
+  addErrorListener(port) {
+    let message = core.List.new(2);
+    message[dartx._set](0, "getErrors");
+    message[dartx._set](1, port);
+    this.controlPort.send(message);
+  }
+  removeErrorListener(port) {
+    let message = core.List.new(2);
+    message[dartx._set](0, "stopErrors");
+    message[dartx._set](1, port);
+    this.controlPort.send(message);
+  }
+  get errors() {
+    let controller = null;
+    let port = null;
+    function handleError(message) {
+      let errorDescription = core.String._check(dart.dindex(message, 0));
+      let stackDescription = core.String._check(dart.dindex(message, 1));
+      let error = new isolate.RemoteError(errorDescription, stackDescription);
+      controller.addError(error, error.stackTrace);
     }
-    pause(resumeCapability) {
-      if (resumeCapability === void 0) resumeCapability = null;
-      if (resumeCapability == null) resumeCapability = isolate.Capability.new();
-      this[_pause](resumeCapability);
-      return resumeCapability;
+    dart.fn(handleError, dynamicTovoid$());
+    controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
+        port = isolate.RawReceivePort.new(handleError);
+        this.addErrorListener(port.sendPort);
+      }, VoidToNull()), onCancel: dart.fn(() => {
+        this.removeErrorListener(port.sendPort);
+        port.close();
+        port = null;
+      }, VoidToNull())});
+    return controller.stream;
+  }
+};
+dart.setSignature(isolate.Isolate, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate.Isolate, [isolate.SendPort], {pauseCapability: isolate.Capability, terminateCapability: isolate.Capability})}),
+  fields: () => ({
+    controlPort: isolate.SendPort,
+    pauseCapability: isolate.Capability,
+    terminateCapability: isolate.Capability
+  }),
+  getters: () => ({errors: dart.definiteFunctionType(async.Stream, [])}),
+  methods: () => ({
+    pause: dart.definiteFunctionType(isolate.Capability, [], [isolate.Capability]),
+    [_pause]: dart.definiteFunctionType(dart.void, [isolate.Capability]),
+    resume: dart.definiteFunctionType(dart.void, [isolate.Capability]),
+    addOnExitListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    removeOnExitListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    setErrorsFatal: dart.definiteFunctionType(dart.void, [core.bool]),
+    kill: dart.definiteFunctionType(dart.void, [], [core.int]),
+    ping: dart.definiteFunctionType(dart.void, [isolate.SendPort], [core.int]),
+    addErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
+    removeErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort])
+  }),
+  sfields: () => ({
+    IMMEDIATE: core.int,
+    BEFORE_NEXT_EVENT: core.int,
+    AS_EVENT: core.int,
+    _currentIsolateCache: isolate.Isolate
+  }),
+  sgetters: () => ({current: dart.definiteFunctionType(isolate.Isolate, [])}),
+  statics: () => ({
+    spawn: dart.definiteFunctionType(async.Future$(isolate.Isolate), [dynamicTovoid(), dart.dynamic], {paused: core.bool}),
+    spawnUri: dart.definiteFunctionType(async.Future$(isolate.Isolate), [core.Uri, ListOfString(), dart.dynamic], {paused: core.bool, packageRoot: core.Uri})
+  }),
+  names: ['spawn', 'spawnUri']
+});
+isolate.Isolate.IMMEDIATE = 0;
+isolate.Isolate.BEFORE_NEXT_EVENT = 1;
+isolate.Isolate.AS_EVENT = 2;
+dart.defineLazy(isolate.Isolate, {
+  get _currentIsolateCache() {
+    return _isolate_helper.IsolateNatives.currentIsolate;
+  }
+});
+isolate.SendPort = class SendPort extends core.Object {};
+isolate.SendPort[dart.implements] = () => [isolate.Capability];
+isolate.ReceivePort = class ReceivePort extends core.Object {
+  static new() {
+    return new _isolate_helper.ReceivePortImpl();
+  }
+  static fromRawReceivePort(rawPort) {
+    return new _isolate_helper.ReceivePortImpl.fromRawReceivePort(rawPort);
+  }
+};
+isolate.ReceivePort[dart.implements] = () => [async.Stream];
+dart.setSignature(isolate.ReceivePort, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(isolate.ReceivePort, []),
+    fromRawReceivePort: dart.definiteFunctionType(isolate.ReceivePort, [isolate.RawReceivePort])
+  })
+});
+isolate.RawReceivePort = class RawReceivePort extends core.Object {
+  static new(handler) {
+    if (handler === void 0) handler = null;
+    return new _isolate_helper.RawReceivePortImpl(handler);
+  }
+};
+dart.setSignature(isolate.RawReceivePort, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate.RawReceivePort, [], [dynamicTovoid()])})
+});
+isolate._IsolateUnhandledException = class _IsolateUnhandledException extends core.Object {
+  new(message, source, stackTrace) {
+    this.message = message;
+    this.source = source;
+    this.stackTrace = stackTrace;
+  }
+  toString() {
+    return 'IsolateUnhandledException: exception while handling message: ' + dart.str`${this.message} \n  ` + dart.str`${dart.toString(this.source)[dartx.replaceAll]("\n", "\n  ")}\n` + 'original stack trace:\n  ' + dart.str`${dart.toString(this.stackTrace)[dartx.replaceAll]("\n", "\n  ")}`;
+  }
+};
+isolate._IsolateUnhandledException[dart.implements] = () => [core.Exception];
+dart.setSignature(isolate._IsolateUnhandledException, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate._IsolateUnhandledException, [dart.dynamic, dart.dynamic, core.StackTrace])}),
+  fields: () => ({
+    message: dart.dynamic,
+    source: dart.dynamic,
+    stackTrace: core.StackTrace
+  })
+});
+const _description = Symbol('_description');
+isolate.RemoteError = class RemoteError extends core.Object {
+  new(description, stackDescription) {
+    this[_description] = description;
+    this.stackTrace = new isolate._RemoteStackTrace(stackDescription);
+  }
+  toString() {
+    return this[_description];
+  }
+};
+isolate.RemoteError[dart.implements] = () => [core.Error];
+dart.setSignature(isolate.RemoteError, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate.RemoteError, [core.String, core.String])}),
+  fields: () => ({
+    [_description]: core.String,
+    stackTrace: core.StackTrace
+  })
+});
+const _trace$ = Symbol('_trace');
+isolate._RemoteStackTrace = class _RemoteStackTrace extends core.Object {
+  new(trace) {
+    this[_trace$] = trace;
+  }
+  toString() {
+    return this[_trace$];
+  }
+};
+isolate._RemoteStackTrace[dart.implements] = () => [core.StackTrace];
+dart.setSignature(isolate._RemoteStackTrace, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate._RemoteStackTrace, [core.String])}),
+  fields: () => ({[_trace$]: core.String})
+});
+isolate.Capability = class Capability extends core.Object {
+  static new() {
+    return new _isolate_helper.CapabilityImpl();
+  }
+};
+dart.setSignature(isolate.Capability, {
+  constructors: () => ({new: dart.definiteFunctionType(isolate.Capability, [])})
+});
+dart.defineLazy(js, {
+  get _global() {
+    return dart.global;
+  }
+});
+dart.defineLazy(js, {
+  get context() {
+    return js.JsObject._check(js._wrapToDart(js._global));
+  }
+});
+const _jsObject = Symbol('_jsObject');
+js.JsObject = class JsObject extends core.Object {
+  _fromJs(jsObject) {
+    this[_jsObject] = jsObject;
+    dart.assert(this[_jsObject] != null);
+  }
+  static new(constructor, arguments$) {
+    if (arguments$ === void 0) arguments$ = null;
+    let ctor = constructor[_jsObject];
+    if (arguments$ == null) {
+      return js.JsObject._check(js._wrapToDart(new ctor()));
     }
-    [_pause](resumeCapability) {
-      let message = core.List.new(3);
-      message[dartx._set](0, "pause");
-      message[dartx._set](1, this.pauseCapability);
-      message[dartx._set](2, resumeCapability);
-      this.controlPort.send(message);
+    let unwrapped = core.List.from(arguments$[dartx.map](dart.dynamic)(js._convertToJS));
+    return js.JsObject._check(js._wrapToDart(new ctor(...unwrapped)));
+  }
+  static fromBrowserObject(object) {
+    if (typeof object == 'number' || typeof object == 'string' || typeof object == 'boolean' || object == null) {
+      dart.throw(new core.ArgumentError("object cannot be a num, string, bool, or null"));
     }
-    resume(resumeCapability) {
-      let message = core.List.new(2);
-      message[dartx._set](0, "resume");
-      message[dartx._set](1, resumeCapability);
-      this.controlPort.send(message);
-    }
-    addOnExitListener(responsePort) {
-      let message = core.List.new(2);
-      message[dartx._set](0, "add-ondone");
-      message[dartx._set](1, responsePort);
-      this.controlPort.send(message);
-    }
-    removeOnExitListener(responsePort) {
-      let message = core.List.new(2);
-      message[dartx._set](0, "remove-ondone");
-      message[dartx._set](1, responsePort);
-      this.controlPort.send(message);
-    }
-    setErrorsFatal(errorsAreFatal) {
-      let message = core.List.new(3);
-      message[dartx._set](0, "set-errors-fatal");
-      message[dartx._set](1, this.terminateCapability);
-      message[dartx._set](2, errorsAreFatal);
-      this.controlPort.send(message);
-    }
-    kill(priority) {
-      if (priority === void 0) priority = isolate.Isolate.BEFORE_NEXT_EVENT;
-      this.controlPort.send(JSArrayOfObject().of(["kill", this.terminateCapability, priority]));
-    }
-    ping(responsePort, pingType) {
-      if (pingType === void 0) pingType = isolate.Isolate.IMMEDIATE;
-      let message = core.List.new(3);
-      message[dartx._set](0, "ping");
-      message[dartx._set](1, responsePort);
-      message[dartx._set](2, pingType);
-      this.controlPort.send(message);
-    }
-    addErrorListener(port) {
-      let message = core.List.new(2);
-      message[dartx._set](0, "getErrors");
-      message[dartx._set](1, port);
-      this.controlPort.send(message);
-    }
-    removeErrorListener(port) {
-      let message = core.List.new(2);
-      message[dartx._set](0, "stopErrors");
-      message[dartx._set](1, port);
-      this.controlPort.send(message);
-    }
-    get errors() {
-      let controller = null;
-      let port = null;
-      function handleError(message) {
-        let errorDescription = core.String._check(dart.dindex(message, 0));
-        let stackDescription = core.String._check(dart.dindex(message, 1));
-        let error = new isolate.RemoteError(errorDescription, stackDescription);
-        controller.addError(error, error.stackTrace);
-      }
-      dart.fn(handleError, dynamicTovoid$());
-      controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
-          port = isolate.RawReceivePort.new(handleError);
-          this.addErrorListener(port.sendPort);
-        }, VoidToNull()), onCancel: dart.fn(() => {
-          this.removeErrorListener(port.sendPort);
-          port.close();
-          port = null;
-        }, VoidToNull())});
-      return controller.stream;
-    }
-  };
-  dart.setSignature(isolate.Isolate, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate.Isolate, [isolate.SendPort], {pauseCapability: isolate.Capability, terminateCapability: isolate.Capability})}),
-    fields: () => ({
-      controlPort: isolate.SendPort,
-      pauseCapability: isolate.Capability,
-      terminateCapability: isolate.Capability
-    }),
-    getters: () => ({errors: dart.definiteFunctionType(async.Stream, [])}),
-    methods: () => ({
-      pause: dart.definiteFunctionType(isolate.Capability, [], [isolate.Capability]),
-      [_pause]: dart.definiteFunctionType(dart.void, [isolate.Capability]),
-      resume: dart.definiteFunctionType(dart.void, [isolate.Capability]),
-      addOnExitListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      removeOnExitListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      setErrorsFatal: dart.definiteFunctionType(dart.void, [core.bool]),
-      kill: dart.definiteFunctionType(dart.void, [], [core.int]),
-      ping: dart.definiteFunctionType(dart.void, [isolate.SendPort], [core.int]),
-      addErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort]),
-      removeErrorListener: dart.definiteFunctionType(dart.void, [isolate.SendPort])
-    }),
-    sfields: () => ({
-      IMMEDIATE: core.int,
-      BEFORE_NEXT_EVENT: core.int,
-      AS_EVENT: core.int,
-      _currentIsolateCache: isolate.Isolate
-    }),
-    sgetters: () => ({current: dart.definiteFunctionType(isolate.Isolate, [])}),
-    statics: () => ({
-      spawn: dart.definiteFunctionType(async.Future$(isolate.Isolate), [dynamicTovoid(), dart.dynamic], {paused: core.bool}),
-      spawnUri: dart.definiteFunctionType(async.Future$(isolate.Isolate), [core.Uri, ListOfString(), dart.dynamic], {paused: core.bool, packageRoot: core.Uri})
-    }),
-    names: ['spawn', 'spawnUri']
-  });
-  isolate.Isolate.IMMEDIATE = 0;
-  isolate.Isolate.BEFORE_NEXT_EVENT = 1;
-  isolate.Isolate.AS_EVENT = 2;
-  dart.defineLazy(isolate.Isolate, {
-    get _currentIsolateCache() {
-      return _isolate_helper.IsolateNatives.currentIsolate;
-    }
-  });
-  isolate.SendPort = class SendPort extends core.Object {};
-  isolate.SendPort[dart.implements] = () => [isolate.Capability];
-  isolate.ReceivePort = class ReceivePort extends core.Object {
-    static new() {
-      return new _isolate_helper.ReceivePortImpl();
-    }
-    static fromRawReceivePort(rawPort) {
-      return new _isolate_helper.ReceivePortImpl.fromRawReceivePort(rawPort);
-    }
-  };
-  isolate.ReceivePort[dart.implements] = () => [async.Stream];
-  dart.setSignature(isolate.ReceivePort, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(isolate.ReceivePort, []),
-      fromRawReceivePort: dart.definiteFunctionType(isolate.ReceivePort, [isolate.RawReceivePort])
-    })
-  });
-  isolate.RawReceivePort = class RawReceivePort extends core.Object {
-    static new(handler) {
-      if (handler === void 0) handler = null;
-      return new _isolate_helper.RawReceivePortImpl(handler);
-    }
-  };
-  dart.setSignature(isolate.RawReceivePort, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate.RawReceivePort, [], [dynamicTovoid()])})
-  });
-  isolate._IsolateUnhandledException = class _IsolateUnhandledException extends core.Object {
-    new(message, source, stackTrace) {
-      this.message = message;
-      this.source = source;
-      this.stackTrace = stackTrace;
-    }
-    toString() {
-      return 'IsolateUnhandledException: exception while handling message: ' + dart.str`${this.message} \n  ` + dart.str`${dart.toString(this.source)[dartx.replaceAll]("\n", "\n  ")}\n` + 'original stack trace:\n  ' + dart.str`${dart.toString(this.stackTrace)[dartx.replaceAll]("\n", "\n  ")}`;
-    }
-  };
-  isolate._IsolateUnhandledException[dart.implements] = () => [core.Exception];
-  dart.setSignature(isolate._IsolateUnhandledException, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate._IsolateUnhandledException, [dart.dynamic, dart.dynamic, core.StackTrace])}),
-    fields: () => ({
-      message: dart.dynamic,
-      source: dart.dynamic,
-      stackTrace: core.StackTrace
-    })
-  });
-  const _description = Symbol('_description');
-  isolate.RemoteError = class RemoteError extends core.Object {
-    new(description, stackDescription) {
-      this[_description] = description;
-      this.stackTrace = new isolate._RemoteStackTrace(stackDescription);
-    }
-    toString() {
-      return this[_description];
-    }
-  };
-  isolate.RemoteError[dart.implements] = () => [core.Error];
-  dart.setSignature(isolate.RemoteError, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate.RemoteError, [core.String, core.String])}),
-    fields: () => ({
-      [_description]: core.String,
-      stackTrace: core.StackTrace
-    })
-  });
-  const _trace$ = Symbol('_trace');
-  isolate._RemoteStackTrace = class _RemoteStackTrace extends core.Object {
-    new(trace) {
-      this[_trace$] = trace;
-    }
-    toString() {
-      return this[_trace$];
-    }
-  };
-  isolate._RemoteStackTrace[dart.implements] = () => [core.StackTrace];
-  dart.setSignature(isolate._RemoteStackTrace, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate._RemoteStackTrace, [core.String])}),
-    fields: () => ({[_trace$]: core.String})
-  });
-  isolate.Capability = class Capability extends core.Object {
-    static new() {
-      return new _isolate_helper.CapabilityImpl();
-    }
-  };
-  dart.setSignature(isolate.Capability, {
-    constructors: () => ({new: dart.definiteFunctionType(isolate.Capability, [])})
-  });
-  dart.defineLazy(js, {
-    get _global() {
-      return dart.global;
-    }
-  });
-  dart.defineLazy(js, {
-    get context() {
-      return js.JsObject._check(js._wrapToDart(js._global));
-    }
-  });
-  const _jsObject = Symbol('_jsObject');
-  js.JsObject = class JsObject extends core.Object {
-    _fromJs(jsObject) {
-      this[_jsObject] = jsObject;
-      dart.assert(this[_jsObject] != null);
-    }
-    static new(constructor, arguments$) {
-      if (arguments$ === void 0) arguments$ = null;
-      let ctor = constructor[_jsObject];
-      if (arguments$ == null) {
-        return js.JsObject._check(js._wrapToDart(new ctor()));
-      }
-      let unwrapped = core.List.from(arguments$[dartx.map](dart.dynamic)(js._convertToJS));
-      return js.JsObject._check(js._wrapToDart(new ctor(...unwrapped)));
-    }
-    static fromBrowserObject(object) {
-      if (typeof object == 'number' || typeof object == 'string' || typeof object == 'boolean' || object == null) {
-        dart.throw(new core.ArgumentError("object cannot be a num, string, bool, or null"));
-      }
-      return js.JsObject._check(js._wrapToDart(js._convertToJS(object)));
-    }
-    static jsify(object) {
-      if (!core.Map.is(object) && !core.Iterable.is(object)) {
-        dart.throw(new core.ArgumentError("object must be a Map or Iterable"));
-      }
-      return js.JsObject._check(js._wrapToDart(js.JsObject._convertDataTree(object)));
-    }
-    static _convertDataTree(data) {
-      let _convertedObjects = collection.HashMap.identity();
-      function _convert(o) {
-        if (dart.test(_convertedObjects.containsKey(o))) {
-          return _convertedObjects._get(o);
-        }
-        if (core.Map.is(o)) {
-          let convertedMap = {};
-          _convertedObjects._set(o, convertedMap);
-          for (let key of o[dartx.keys]) {
-            convertedMap[key] = _convert(o[dartx._get](key));
-          }
-          return convertedMap;
-        } else if (core.Iterable.is(o)) {
-          let convertedList = [];
-          _convertedObjects._set(o, convertedList);
-          convertedList[dartx.addAll](o[dartx.map](dart.dynamic)(_convert));
-          return convertedList;
-        } else {
-          return js._convertToJS(o);
-        }
-      }
-      dart.fn(_convert, dynamicTodynamic$());
-      return _convert(data);
-    }
-    _get(property) {
-      if (!(typeof property == 'string') && !(typeof property == 'number')) {
-        dart.throw(new core.ArgumentError("property is not a String or num"));
-      }
-      return js._convertToDart(this[_jsObject][property]);
-    }
-    _set(property, value) {
-      if (!(typeof property == 'string') && !(typeof property == 'number')) {
-        dart.throw(new core.ArgumentError("property is not a String or num"));
-      }
-      this[_jsObject][property] = js._convertToJS(value);
-      return value;
-    }
-    get hashCode() {
-      return 0;
-    }
-    ['=='](other) {
-      return js.JsObject.is(other) && this[_jsObject] === other[_jsObject];
-    }
-    hasProperty(property) {
-      if (!(typeof property == 'string') && !(typeof property == 'number')) {
-        dart.throw(new core.ArgumentError("property is not a String or num"));
-      }
-      return property in this[_jsObject];
-    }
-    deleteProperty(property) {
-      if (!(typeof property == 'string') && !(typeof property == 'number')) {
-        dart.throw(new core.ArgumentError("property is not a String or num"));
-      }
-      delete this[_jsObject][property];
-    }
-    instanceof(type) {
-      return this[_jsObject] instanceof js._convertToJS(type);
-    }
-    toString() {
-      try {
-        return String(this[_jsObject]);
-      } catch (e) {
-        return super.toString();
-      }
-
-    }
-    callMethod(method, args) {
-      if (args === void 0) args = null;
-      if (!(typeof method == 'string') && !(typeof method == 'number')) {
-        dart.throw(new core.ArgumentError("method is not a String or num"));
-      }
-      if (args != null) args = core.List.from(args[dartx.map](dart.dynamic)(js._convertToJS));
-      let fn = this[_jsObject][method];
-      if (typeof fn !== "function") {
-        dart.throw(new core.NoSuchMethodError(this[_jsObject], core.Symbol.new(core.String._check(method)), args, dart.map({}, core.Symbol, dart.dynamic)));
-      }
-      return js._convertToDart(fn.apply(this[_jsObject], args));
-    }
-  };
-  dart.defineNamedConstructor(js.JsObject, '_fromJs');
-  dart.setSignature(js.JsObject, {
-    constructors: () => ({
-      _fromJs: dart.definiteFunctionType(js.JsObject, [dart.dynamic]),
-      new: dart.definiteFunctionType(js.JsObject, [js.JsFunction], [core.List]),
-      fromBrowserObject: dart.definiteFunctionType(js.JsObject, [dart.dynamic]),
-      jsify: dart.definiteFunctionType(js.JsObject, [dart.dynamic])
-    }),
-    fields: () => ({[_jsObject]: dart.dynamic}),
-    methods: () => ({
-      _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
-      _set: dart.definiteFunctionType(dart.dynamic, [core.Object, dart.dynamic]),
-      hasProperty: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      deleteProperty: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      instanceof: dart.definiteFunctionType(core.bool, [js.JsFunction]),
-      callMethod: dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [core.List])
-    }),
-    statics: () => ({_convertDataTree: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
-    names: ['_convertDataTree']
-  });
-  js.JsFunction = class JsFunction extends js.JsObject {
-    static withThis(f) {
-      return new js.JsFunction._fromJs(function() {
-        let args = [js._convertToDart(this)];
-        for (let arg of arguments) {
-          args.push(js._convertToDart(arg));
-        }
-        return js._convertToJS(f(...args));
-      });
-    }
-    _fromJs(jsObject) {
-      super._fromJs(jsObject);
-    }
-    apply(args, opts) {
-      let thisArg = opts && 'thisArg' in opts ? opts.thisArg : null;
-      return js._convertToDart(this[_jsObject].apply(js._convertToJS(thisArg), args == null ? null : core.List.from(args[dartx.map](dart.dynamic)(js._convertToJS))));
-    }
-  };
-  dart.defineNamedConstructor(js.JsFunction, '_fromJs');
-  dart.setSignature(js.JsFunction, {
-    constructors: () => ({
-      withThis: dart.definiteFunctionType(js.JsFunction, [core.Function]),
-      _fromJs: dart.definiteFunctionType(js.JsFunction, [dart.dynamic])
-    }),
-    methods: () => ({apply: dart.definiteFunctionType(dart.dynamic, [core.List], {thisArg: dart.dynamic})})
-  });
-  const _checkIndex = Symbol('_checkIndex');
-  const _checkInsertIndex = Symbol('_checkInsertIndex');
-  js.JsArray$ = dart.generic(E => {
-    let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
-    let JSArrayOfEAndEToint = () => (JSArrayOfEAndEToint = dart.constFn(_interceptors.JSArray$(EAndEToint())))();
-    class JsArray extends dart.mixin(js.JsObject, collection.ListMixin$(E)) {
-      new() {
-        super._fromJs([]);
-      }
-      from(other) {
-        super._fromJs((() => {
-          let _ = [];
-          _[dartx.addAll](other[dartx.map](dart.dynamic)(js._convertToJS));
-          return _;
-        })());
-      }
-      _fromJs(jsObject) {
-        super._fromJs(jsObject);
-      }
-      [_checkIndex](index) {
-        if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length))) {
-          dart.throw(new core.RangeError.range(index, 0, this.length));
-        }
-      }
-      [_checkInsertIndex](index) {
-        if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length) + 1)) {
-          dart.throw(new core.RangeError.range(index, 0, this.length));
-        }
-      }
-      static _checkRange(start, end, length) {
-        if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
-          dart.throw(new core.RangeError.range(start, 0, length));
-        }
-        if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length)) {
-          dart.throw(new core.RangeError.range(end, start, length));
-        }
-      }
-      _get(index) {
-        if (typeof index == 'number' && index == index[dartx.toInt]()) {
-          this[_checkIndex](dart.asInt(index));
-        }
-        return E.as(super._get(index));
-      }
-      _set(index, value) {
-        E._check(value);
-        if (typeof index == 'number' && index == index[dartx.toInt]()) {
-          this[_checkIndex](dart.asInt(index));
-        }
-        super._set(index, value);
-        return value;
-      }
-      get length() {
-        let len = this[_jsObject].length;
-        if (typeof len === "number" && len >>> 0 === len) {
-          return len;
-        }
-        dart.throw(new core.StateError('Bad JsArray length'));
-      }
-      set length(length) {
-        super._set('length', length);
-      }
-      add(value) {
-        E._check(value);
-        this.callMethod('push', JSArrayOfE().of([value]));
-      }
-      addAll(iterable) {
-        IterableOfE()._check(iterable);
-        let list = iterable instanceof Array ? iterable : core.List.from(iterable);
-        this.callMethod('push', core.List._check(list));
-      }
-      insert(index, element) {
-        E._check(element);
-        this[_checkInsertIndex](index);
-        this.callMethod('splice', JSArrayOfObject().of([index, 0, element]));
-      }
-      removeAt(index) {
-        this[_checkIndex](index);
-        return E.as(dart.dindex(this.callMethod('splice', JSArrayOfint().of([index, 1])), 0));
-      }
-      removeLast() {
-        if (this.length == 0) dart.throw(new core.RangeError(-1));
-        return E.as(this.callMethod('pop'));
-      }
-      removeRange(start, end) {
-        js.JsArray._checkRange(start, end, this.length);
-        this.callMethod('splice', JSArrayOfint().of([start, dart.notNull(end) - dart.notNull(start)]));
-      }
-      setRange(start, end, iterable, skipCount) {
-        IterableOfE()._check(iterable);
-        if (skipCount === void 0) skipCount = 0;
-        js.JsArray._checkRange(start, end, this.length);
-        let length = dart.notNull(end) - dart.notNull(start);
-        if (length == 0) return;
-        if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError(skipCount));
-        let args = JSArrayOfObject().of([start, length]);
-        args[dartx.addAll](iterable[dartx.skip](skipCount)[dartx.take](length));
-        this.callMethod('splice', args);
-      }
-      sort(compare) {
-        if (compare === void 0) compare = null;
-        this.callMethod('sort', compare == null ? [] : JSArrayOfEAndEToint().of([compare]));
-      }
-    }
-    dart.addTypeTests(JsArray);
-    dart.defineNamedConstructor(JsArray, 'from');
-    dart.defineNamedConstructor(JsArray, '_fromJs');
-    dart.setSignature(JsArray, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(js.JsArray$(E), []),
-        from: dart.definiteFunctionType(js.JsArray$(E), [IterableOfE()]),
-        _fromJs: dart.definiteFunctionType(js.JsArray$(E), [dart.dynamic])
-      }),
-      getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-      setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
-      methods: () => ({
-        [_checkIndex]: dart.definiteFunctionType(dart.dynamic, [core.int]),
-        [_checkInsertIndex]: dart.definiteFunctionType(dart.dynamic, [core.int]),
-        _get: dart.definiteFunctionType(E, [core.Object]),
-        _set: dart.definiteFunctionType(dart.void, [core.Object, E])
-      }),
-      statics: () => ({_checkRange: dart.definiteFunctionType(dart.dynamic, [core.int, core.int, core.int])}),
-      names: ['_checkRange']
-    });
-    dart.defineExtensionMembers(JsArray, [
-      '_get',
-      '_set',
-      'add',
-      'addAll',
-      'insert',
-      'removeAt',
-      'removeLast',
-      'removeRange',
-      'setRange',
-      'sort',
-      'length',
-      'length'
-    ]);
-    return JsArray;
-  });
-  js.JsArray = JsArray();
-  js._isBrowserType = function(o) {
-    return o instanceof Object && (o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || window.IDBKeyRange && o instanceof IDBKeyRange || o instanceof ImageData || o instanceof Node || window.Int8Array && o instanceof Int8Array.__proto__ || o instanceof Window);
-  };
-  dart.fn(js._isBrowserType, dynamicTobool$());
-  const _dartObj = Symbol('_dartObj');
-  js._DartObject = class _DartObject extends core.Object {
-    new(dartObj) {
-      this[_dartObj] = dartObj;
-    }
-  };
-  dart.setSignature(js._DartObject, {
-    constructors: () => ({new: dart.definiteFunctionType(js._DartObject, [dart.dynamic])}),
-    fields: () => ({[_dartObj]: dart.dynamic})
-  });
-  js._convertToJS = function(o) {
-    if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.test(js._isBrowserType(o))) {
-      return o;
-    } else if (core.DateTime.is(o)) {
-      return _js_helper.Primitives.lazyAsJsDate(o);
-    } else if (js.JsObject.is(o)) {
-      return o[_jsObject];
-    } else if (core.Function.is(o)) {
-      return js._putIfAbsent(js._jsProxies, o, js._wrapDartFunction);
-    } else {
-      return js._putIfAbsent(js._jsProxies, o, dart.fn(o => new js._DartObject(o), dynamicTo_DartObject()));
-    }
-  };
-  dart.fn(js._convertToJS, dynamicTodynamic$());
-  js._wrapDartFunction = function(f) {
-    let wrapper = function() {
-      let args = Array.prototype.map.call(arguments, js._convertToDart);
-      return js._convertToJS(f(...args));
-    };
-    js._dartProxies.set(wrapper, f);
-    return wrapper;
-  };
-  dart.fn(js._wrapDartFunction, dynamicTodynamic$());
-  js._convertToDart = function(o) {
-    if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean" || dart.test(js._isBrowserType(o))) {
-      return o;
-    } else if (o instanceof Date) {
-      let ms = o.getTime();
-      return new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(ms));
-    } else if (js._DartObject.is(o) && dart.jsobject != dart.getReifiedType(o)) {
-      return o[_dartObj];
-    } else {
-      return js._wrapToDart(o);
-    }
-  };
-  dart.fn(js._convertToDart, dynamicToObject());
-  js._wrapToDart = function(o) {
-    return js._putIfAbsent(js._dartProxies, o, js._wrapToDartHelper);
-  };
-  dart.fn(js._wrapToDart, dynamicToObject());
-  js._wrapToDartHelper = function(o) {
-    if (typeof o == "function") {
-      return new js.JsFunction._fromJs(o);
-    }
-    if (o instanceof Array) {
-      return new js.JsArray._fromJs(o);
-    }
-    return new js.JsObject._fromJs(o);
-  };
-  dart.fn(js._wrapToDartHelper, dynamicToObject());
-  dart.defineLazy(js, {
-    get _dartProxies() {
-      return new WeakMap();
-    }
-  });
-  dart.defineLazy(js, {
-    get _jsProxies() {
-      return new WeakMap();
-    }
-  });
-  js._putIfAbsent = function(weakMap, o, getValue) {
-    let value = weakMap.get(o);
-    if (value == null) {
-      value = dart.dcall(getValue, o);
-      weakMap.set(o, value);
-    }
-    return value;
-  };
-  dart.fn(js._putIfAbsent, dynamicAnddynamicAndFnToObject());
-  js.allowInterop = function(F) {
-    return f => {
-      return f;
-    };
-  };
-  dart.fn(js.allowInterop, FToF());
-  dart.defineLazy(js, {
-    get _interopCaptureThisExpando() {
-      return new (ExpandoOfFunction())();
-    },
-    set _interopCaptureThisExpando(_) {}
-  });
-  js.allowInteropCaptureThis = function(f) {
-    let ret = js._interopCaptureThisExpando._get(f);
-    if (ret == null) {
-      ret = function() {
-        let args = [this];
-        for (let arg of arguments) {
-          args.push(arg);
-        }
-        return f(...args);
-      };
-      js._interopCaptureThisExpando._set(f, ret);
-    }
-    return ret;
-  };
-  dart.fn(js.allowInteropCaptureThis, FunctionToFunction());
-  js_util.jsify = function(object) {
+    return js.JsObject._check(js._wrapToDart(js._convertToJS(object)));
+  }
+  static jsify(object) {
     if (!core.Map.is(object) && !core.Iterable.is(object)) {
       dart.throw(new core.ArgumentError("object must be a Map or Iterable"));
     }
-    return js_util._convertDataTree(object);
-  };
-  dart.fn(js_util.jsify, dynamicTodynamic$());
-  js_util._convertDataTree = function(data) {
+    return js.JsObject._check(js._wrapToDart(js.JsObject._convertDataTree(object)));
+  }
+  static _convertDataTree(data) {
     let _convertedObjects = collection.HashMap.identity();
     function _convert(o) {
       if (dart.test(_convertedObjects.containsKey(o))) {
@@ -53133,40719 +52750,874 @@
         convertedList[dartx.addAll](o[dartx.map](dart.dynamic)(_convert));
         return convertedList;
       } else {
-        return o;
+        return js._convertToJS(o);
       }
     }
     dart.fn(_convert, dynamicTodynamic$());
     return _convert(data);
-  };
-  dart.fn(js_util._convertDataTree, dynamicTodynamic$());
-  js_util.newObject = function() {
-    return {};
-  };
-  dart.fn(js_util.newObject, VoidTodynamic$());
-  js_util.hasProperty = function(o, name) {
-    return name in o;
-  };
-  dart.fn(js_util.hasProperty, dynamicAnddynamicTodynamic$());
-  js_util.getProperty = function(o, name) {
-    return o[name];
-  };
-  dart.fn(js_util.getProperty, dynamicAnddynamicTodynamic$());
-  js_util.setProperty = function(o, name, value) {
-    return o[name] = value;
-  };
-  dart.fn(js_util.setProperty, dynamicAnddynamicAnddynamicTodynamic());
-  js_util.callMethod = function(o, method, args) {
-    return o[method].apply(o, args);
-  };
-  dart.fn(js_util.callMethod, dynamicAndStringAndListTodynamic());
-  js_util.instanceof = function(o, type) {
-    return o instanceof type;
-  };
-  dart.fn(js_util.instanceof, dynamicAndFunctionTodynamic());
-  js_util.callConstructor = function(constr, arguments$) {
-    if (arguments$ == null) {
-      return new constr();
+  }
+  _get(property) {
+    if (!(typeof property == 'string') && !(typeof property == 'number')) {
+      dart.throw(new core.ArgumentError("property is not a String or num"));
     }
-    if (arguments$ instanceof Array) {
-      let argumentCount = arguments$.length;
-      switch (argumentCount) {
-        case 0:
-        {
-          return new constr();
-        }
-        case 1:
-        {
-          let arg0 = arguments$[0];
-          return new constr(arg0);
-        }
-        case 2:
-        {
-          let arg0 = arguments$[0];
-          let arg1 = arguments$[1];
-          return new constr(arg0, arg1);
-        }
-        case 3:
-        {
-          let arg0 = arguments$[0];
-          let arg1 = arguments$[1];
-          let arg2 = arguments$[2];
-          return new constr(arg0, arg1, arg2);
-        }
-        case 4:
-        {
-          let arg0 = arguments$[0];
-          let arg1 = arguments$[1];
-          let arg2 = arguments$[2];
-          let arg3 = arguments$[3];
-          return new constr(arg0, arg1, arg2, arg3);
-        }
+    return js._convertToDart(this[_jsObject][property]);
+  }
+  _set(property, value) {
+    if (!(typeof property == 'string') && !(typeof property == 'number')) {
+      dart.throw(new core.ArgumentError("property is not a String or num"));
+    }
+    this[_jsObject][property] = js._convertToJS(value);
+    return value;
+  }
+  get hashCode() {
+    return 0;
+  }
+  ['=='](other) {
+    return js.JsObject.is(other) && this[_jsObject] === other[_jsObject];
+  }
+  hasProperty(property) {
+    if (!(typeof property == 'string') && !(typeof property == 'number')) {
+      dart.throw(new core.ArgumentError("property is not a String or num"));
+    }
+    return property in this[_jsObject];
+  }
+  deleteProperty(property) {
+    if (!(typeof property == 'string') && !(typeof property == 'number')) {
+      dart.throw(new core.ArgumentError("property is not a String or num"));
+    }
+    delete this[_jsObject][property];
+  }
+  instanceof(type) {
+    return this[_jsObject] instanceof js._convertToJS(type);
+  }
+  toString() {
+    try {
+      return String(this[_jsObject]);
+    } catch (e) {
+      return super.toString();
+    }
+
+  }
+  callMethod(method, args) {
+    if (args === void 0) args = null;
+    if (!(typeof method == 'string') && !(typeof method == 'number')) {
+      dart.throw(new core.ArgumentError("method is not a String or num"));
+    }
+    if (args != null) args = core.List.from(args[dartx.map](dart.dynamic)(js._convertToJS));
+    let fn = this[_jsObject][method];
+    if (typeof fn !== "function") {
+      dart.throw(new core.NoSuchMethodError(this[_jsObject], core.Symbol.new(core.String._check(method)), args, dart.map({}, core.Symbol, dart.dynamic)));
+    }
+    return js._convertToDart(fn.apply(this[_jsObject], args));
+  }
+};
+dart.defineNamedConstructor(js.JsObject, '_fromJs');
+dart.setSignature(js.JsObject, {
+  constructors: () => ({
+    _fromJs: dart.definiteFunctionType(js.JsObject, [dart.dynamic]),
+    new: dart.definiteFunctionType(js.JsObject, [js.JsFunction], [core.List]),
+    fromBrowserObject: dart.definiteFunctionType(js.JsObject, [dart.dynamic]),
+    jsify: dart.definiteFunctionType(js.JsObject, [dart.dynamic])
+  }),
+  fields: () => ({[_jsObject]: dart.dynamic}),
+  methods: () => ({
+    _get: dart.definiteFunctionType(dart.dynamic, [core.Object]),
+    _set: dart.definiteFunctionType(dart.dynamic, [core.Object, dart.dynamic]),
+    hasProperty: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    deleteProperty: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    instanceof: dart.definiteFunctionType(core.bool, [js.JsFunction]),
+    callMethod: dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [core.List])
+  }),
+  statics: () => ({_convertDataTree: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}),
+  names: ['_convertDataTree']
+});
+js.JsFunction = class JsFunction extends js.JsObject {
+  static withThis(f) {
+    return new js.JsFunction._fromJs(function() {
+      let args = [js._convertToDart(this)];
+      for (let arg of arguments) {
+        args.push(js._convertToDart(arg));
       }
-    }
-    let args = [null];
-    args[dartx.addAll](arguments$);
-    let factoryFunction = constr.bind.apply(constr, args);
-    String(factoryFunction);
-    return new factoryFunction();
-  };
-  dart.fn(js_util.callConstructor, FunctionAndListTodynamic());
-  math.E = 2.718281828459045;
-  math.LN10 = 2.302585092994046;
-  math.LN2 = 0.6931471805599453;
-  math.LOG2E = 1.4426950408889634;
-  math.LOG10E = 0.4342944819032518;
-  math.PI = 3.141592653589793;
-  math.SQRT1_2 = 0.7071067811865476;
-  math.SQRT2 = 1.4142135623730951;
-  math.min = function(T) {
-    return (a, b) => {
-      return Math.min(_js_helper.checkNum(a), _js_helper.checkNum(b));
-    };
-  };
-  dart.fn(math.min, TAndTToT());
-  math.max = function(T) {
-    return (a, b) => {
-      return Math.max(_js_helper.checkNum(a), _js_helper.checkNum(b));
-    };
-  };
-  dart.fn(math.max, TAndTToT$());
-  math.atan2 = function(a, b) {
-    return Math.atan2(_js_helper.checkNum(a), _js_helper.checkNum(b));
-  };
-  dart.fn(math.atan2, numAndnumTodouble());
-  math.pow = function(x, exponent) {
-    _js_helper.checkNum(x);
-    _js_helper.checkNum(exponent);
-    return Math.pow(x, exponent);
-  };
-  dart.fn(math.pow, numAndnumTonum());
-  math.sin = function(x) {
-    return Math.sin(_js_helper.checkNum(x));
-  };
-  dart.fn(math.sin, numTodouble());
-  math.cos = function(x) {
-    return Math.cos(_js_helper.checkNum(x));
-  };
-  dart.fn(math.cos, numTodouble());
-  math.tan = function(x) {
-    return Math.tan(_js_helper.checkNum(x));
-  };
-  dart.fn(math.tan, numTodouble());
-  math.acos = function(x) {
-    return Math.acos(_js_helper.checkNum(x));
-  };
-  dart.fn(math.acos, numTodouble());
-  math.asin = function(x) {
-    return Math.asin(_js_helper.checkNum(x));
-  };
-  dart.fn(math.asin, numTodouble());
-  math.atan = function(x) {
-    return Math.atan(_js_helper.checkNum(x));
-  };
-  dart.fn(math.atan, numTodouble());
-  math.sqrt = function(x) {
-    return Math.sqrt(_js_helper.checkNum(x));
-  };
-  dart.fn(math.sqrt, numTodouble());
-  math.exp = function(x) {
-    return Math.exp(_js_helper.checkNum(x));
-  };
-  dart.fn(math.exp, numTodouble());
-  math.log = function(x) {
-    return Math.log(_js_helper.checkNum(x));
-  };
-  dart.fn(math.log, numTodouble());
-  math._POW2_32 = 4294967296;
-  math._JSRandom = class _JSRandom extends core.Object {
+      return js._convertToJS(f(...args));
+    });
+  }
+  _fromJs(jsObject) {
+    super._fromJs(jsObject);
+  }
+  apply(args, opts) {
+    let thisArg = opts && 'thisArg' in opts ? opts.thisArg : null;
+    return js._convertToDart(this[_jsObject].apply(js._convertToJS(thisArg), args == null ? null : core.List.from(args[dartx.map](dart.dynamic)(js._convertToJS))));
+  }
+};
+dart.defineNamedConstructor(js.JsFunction, '_fromJs');
+dart.setSignature(js.JsFunction, {
+  constructors: () => ({
+    withThis: dart.definiteFunctionType(js.JsFunction, [core.Function]),
+    _fromJs: dart.definiteFunctionType(js.JsFunction, [dart.dynamic])
+  }),
+  methods: () => ({apply: dart.definiteFunctionType(dart.dynamic, [core.List], {thisArg: dart.dynamic})})
+});
+const _checkIndex = Symbol('_checkIndex');
+const _checkInsertIndex = Symbol('_checkInsertIndex');
+js.JsArray$ = dart.generic(E => {
+  let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
+  let JSArrayOfEAndEToint = () => (JSArrayOfEAndEToint = dart.constFn(_interceptors.JSArray$(EAndEToint())))();
+  class JsArray extends dart.mixin(js.JsObject, collection.ListMixin$(E)) {
     new() {
+      super._fromJs([]);
     }
-    nextInt(max) {
-      if (dart.notNull(max) <= 0 || dart.notNull(max) > math._POW2_32) {
-        dart.throw(new core.RangeError(dart.str`max must be in range 0 < max ≤ 2^32, was ${max}`));
-      }
-      return Math.random() * max >>> 0;
+    from(other) {
+      super._fromJs((() => {
+        let _ = [];
+        _[dartx.addAll](other[dartx.map](dart.dynamic)(js._convertToJS));
+        return _;
+      })());
     }
-    nextDouble() {
-      return Math.random();
+    _fromJs(jsObject) {
+      super._fromJs(jsObject);
     }
-    nextBool() {
-      return Math.random() < 0.5;
-    }
-  };
-  math._JSRandom[dart.implements] = () => [math.Random];
-  dart.setSignature(math._JSRandom, {
-    constructors: () => ({new: dart.definiteFunctionType(math._JSRandom, [])}),
-    methods: () => ({
-      nextInt: dart.definiteFunctionType(core.int, [core.int]),
-      nextDouble: dart.definiteFunctionType(core.double, []),
-      nextBool: dart.definiteFunctionType(core.bool, [])
-    })
-  });
-  const _lo = Symbol('_lo');
-  const _hi = Symbol('_hi');
-  const _nextState = Symbol('_nextState');
-  math._Random = class _Random extends core.Object {
-    new(seed) {
-      this[_lo] = 0;
-      this[_hi] = 0;
-      let empty_seed = 0;
-      if (dart.notNull(seed) < 0) {
-        empty_seed = -1;
+    [_checkIndex](index) {
+      if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length))) {
+        dart.throw(new core.RangeError.range(index, 0, this.length));
       }
-      do {
-        let low = (dart.notNull(seed) & math._Random._MASK32) >>> 0;
-        seed = ((dart.notNull(seed) - low) / math._POW2_32)[dartx.truncate]();
-        let high = (dart.notNull(seed) & math._Random._MASK32) >>> 0;
-        seed = ((dart.notNull(seed) - high) / math._POW2_32)[dartx.truncate]();
-        let tmplow = low << 21 >>> 0;
-        let tmphigh = (high << 21 | low[dartx['>>']](11)) >>> 0;
-        tmplow = ((~low & math._Random._MASK32) >>> 0) + tmplow;
-        low = (tmplow & math._Random._MASK32) >>> 0;
-        high = ((~high >>> 0) + tmphigh + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
-        tmphigh = high[dartx['>>']](24);
-        tmplow = (low[dartx['>>']](24) | high << 8) >>> 0;
-        low = (low ^ tmplow) >>> 0;
-        high = (high ^ tmphigh) >>> 0;
-        tmplow = low * 265;
-        low = (tmplow & math._Random._MASK32) >>> 0;
-        high = (high * 265 + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
-        tmphigh = high[dartx['>>']](14);
-        tmplow = (low[dartx['>>']](14) | high << 18) >>> 0;
-        low = (low ^ tmplow) >>> 0;
-        high = (high ^ tmphigh) >>> 0;
-        tmplow = low * 21;
-        low = (tmplow & math._Random._MASK32) >>> 0;
-        high = (high * 21 + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
-        tmphigh = high[dartx['>>']](28);
-        tmplow = (low[dartx['>>']](28) | high << 4) >>> 0;
-        low = (low ^ tmplow) >>> 0;
-        high = (high ^ tmphigh) >>> 0;
-        tmplow = low << 31 >>> 0;
-        tmphigh = (high << 31 | low[dartx['>>']](1)) >>> 0;
-        tmplow = tmplow + low;
-        low = (tmplow & math._Random._MASK32) >>> 0;
-        high = (high + tmphigh + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
-        tmplow = dart.notNull(this[_lo]) * 1037;
-        this[_lo] = (tmplow & math._Random._MASK32) >>> 0;
-        this[_hi] = (dart.notNull(this[_hi]) * 1037 + ((tmplow - dart.notNull(this[_lo])) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
-        this[_lo] = (dart.notNull(this[_lo]) ^ low) >>> 0;
-        this[_hi] = (dart.notNull(this[_hi]) ^ high) >>> 0;
-      } while (seed != empty_seed);
-      if (this[_hi] == 0 && this[_lo] == 0) {
-        this[_lo] = 23063;
-      }
-      this[_nextState]();
-      this[_nextState]();
-      this[_nextState]();
-      this[_nextState]();
-    }
-    [_nextState]() {
-      let tmpHi = 4294901760 * dart.notNull(this[_lo]);
-      let tmpHiLo = (tmpHi & math._Random._MASK32) >>> 0;
-      let tmpHiHi = tmpHi - tmpHiLo;
-      let tmpLo = 55905 * dart.notNull(this[_lo]);
-      let tmpLoLo = (tmpLo & math._Random._MASK32) >>> 0;
-      let tmpLoHi = tmpLo - tmpLoLo;
-      let newLo = tmpLoLo + tmpHiLo + dart.notNull(this[_hi]);
-      this[_lo] = (newLo & math._Random._MASK32) >>> 0;
-      let newLoHi = newLo - dart.notNull(this[_lo]);
-      this[_hi] = (((tmpLoHi + tmpHiHi + newLoHi) / math._POW2_32)[dartx.truncate]() & math._Random._MASK32) >>> 0;
-      dart.assert(dart.notNull(this[_lo]) < math._POW2_32);
-      dart.assert(dart.notNull(this[_hi]) < math._POW2_32);
     }
-    nextInt(max) {
-      if (dart.notNull(max) <= 0 || dart.notNull(max) > math._POW2_32) {
-        dart.throw(new core.RangeError(dart.str`max must be in range 0 < max ≤ 2^32, was ${max}`));
-      }
-      if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) {
-        this[_nextState]();
-        return (dart.notNull(this[_lo]) & dart.notNull(max) - 1) >>> 0;
+    [_checkInsertIndex](index) {
+      if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull(index) >= dart.notNull(this.length) + 1)) {
+        dart.throw(new core.RangeError.range(index, 0, this.length));
       }
-      let rnd32 = null;
-      let result = null;
-      do {
-        this[_nextState]();
-        rnd32 = this[_lo];
-        result = dart.asInt(rnd32[dartx.remainder](max));
-      } while (dart.notNull(rnd32) - dart.notNull(result) + dart.notNull(max) >= math._POW2_32);
-      return result;
     }
-    nextDouble() {
-      this[_nextState]();
-      let bits26 = (dart.notNull(this[_lo]) & (1 << 26) - 1) >>> 0;
-      this[_nextState]();
-      let bits27 = (dart.notNull(this[_lo]) & (1 << 27) - 1) >>> 0;
-      return (bits26 * math._Random._POW2_27_D + bits27) / math._Random._POW2_53_D;
-    }
-    nextBool() {
-      this[_nextState]();
-      return (dart.notNull(this[_lo]) & 1) == 0;
-    }
-  };
-  math._Random[dart.implements] = () => [math.Random];
-  dart.setSignature(math._Random, {
-    constructors: () => ({new: dart.definiteFunctionType(math._Random, [core.int])}),
-    fields: () => ({
-      [_lo]: core.int,
-      [_hi]: core.int
-    }),
-    methods: () => ({
-      [_nextState]: dart.definiteFunctionType(dart.void, []),
-      nextInt: dart.definiteFunctionType(core.int, [core.int]),
-      nextDouble: dart.definiteFunctionType(core.double, []),
-      nextBool: dart.definiteFunctionType(core.bool, [])
-    }),
-    sfields: () => ({
-      _POW2_53_D: core.double,
-      _POW2_27_D: core.double,
-      _MASK32: core.int
-    })
-  });
-  math._Random._POW2_53_D = 1.0 * 9007199254740992;
-  math._Random._POW2_27_D = 1.0 * (1 << 27);
-  math._Random._MASK32 = 4294967295;
-  const _buffer$0 = Symbol('_buffer');
-  const _getRandomBytes = Symbol('_getRandomBytes');
-  math._JSSecureRandom = class _JSSecureRandom extends core.Object {
-    new() {
-      this[_buffer$0] = typed_data.ByteData.new(8);
-      let crypto = self.crypto;
-      if (crypto != null) {
-        let getRandomValues = crypto.getRandomValues;
-        if (getRandomValues != null) {
-          return;
-        }
+    static _checkRange(start, end, length) {
+      if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length)) {
+        dart.throw(new core.RangeError.range(start, 0, length));
       }
-      dart.throw(new core.UnsupportedError("No source of cryptographically secure random numbers available."));
-    }
-    [_getRandomBytes](start, length) {
-      crypto.getRandomValues(this[_buffer$0][dartx.buffer][dartx.asUint8List](start, length));
-    }
-    nextBool() {
-      this[_getRandomBytes](0, 1);
-      return this[_buffer$0][dartx.getUint8](0)[dartx.isOdd];
-    }
-    nextDouble() {
-      this[_getRandomBytes](1, 7);
-      this[_buffer$0][dartx.setUint8](0, 63);
-      let highByte = this[_buffer$0][dartx.getUint8](1);
-      this[_buffer$0][dartx.setUint8](1, (dart.notNull(highByte) | 240) >>> 0);
-      let result = dart.notNull(this[_buffer$0][dartx.getFloat64](0)) - 1.0;
-      if ((dart.notNull(highByte) & 16) != 0) {
-        result = result + 1.1102230246251565e-16;
-      }
-      return result;
-    }
-    nextInt(max) {
-      if (dart.notNull(max) <= 0 || dart.notNull(max) > math._POW2_32) {
-        dart.throw(new core.RangeError(dart.str`max must be in range 0 < max ≤ 2^32, was ${max}`));
-      }
-      let byteCount = 1;
-      if (dart.notNull(max) > 255) {
-        byteCount++;
-        if (dart.notNull(max) > 65535) {
-          byteCount++;
-          if (dart.notNull(max) > 16777215) {
-            byteCount++;
-          }
-        }
-      }
-      this[_buffer$0][dartx.setUint32](0, 0);
-      let start = 4 - byteCount;
-      let randomLimit = dart.asInt(math.pow(256, byteCount));
-      while (true) {
-        this[_getRandomBytes](start, byteCount);
-        let random = this[_buffer$0][dartx.getUint32](0);
-        if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) {
-          return (dart.notNull(random) & dart.notNull(max) - 1) >>> 0;
-        }
-        let result = dart.asInt(random[dartx.remainder](max));
-        if (dart.notNull(random) - dart.notNull(result) + dart.notNull(max) < dart.notNull(randomLimit)) {
-          return result;
-        }
-      }
-    }
-  };
-  math._JSSecureRandom[dart.implements] = () => [math.Random];
-  dart.setSignature(math._JSSecureRandom, {
-    constructors: () => ({new: dart.definiteFunctionType(math._JSSecureRandom, [])}),
-    fields: () => ({[_buffer$0]: typed_data.ByteData}),
-    methods: () => ({
-      [_getRandomBytes]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      nextBool: dart.definiteFunctionType(core.bool, []),
-      nextDouble: dart.definiteFunctionType(core.double, []),
-      nextInt: dart.definiteFunctionType(core.int, [core.int])
-    })
-  });
-  math._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
-    static combine(hash, value) {
-      hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
-      hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
-      return (dart.notNull(hash) ^ hash[dartx['>>']](6)) >>> 0;
-    }
-    static finish(hash) {
-      hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
-      hash = (dart.notNull(hash) ^ hash[dartx['>>']](11)) >>> 0;
-      return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
-    }
-    static hash2(a, b) {
-      return math._JenkinsSmiHash.finish(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)));
-    }
-    static hash4(a, b, c, d) {
-      return math._JenkinsSmiHash.finish(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)), core.int._check(c)), core.int._check(d)));
-    }
-  };
-  dart.setSignature(math._JenkinsSmiHash, {
-    statics: () => ({
-      combine: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      finish: dart.definiteFunctionType(core.int, [core.int]),
-      hash2: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic]),
-      hash4: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['combine', 'finish', 'hash2', 'hash4']
-  });
-  math.Point$ = dart.generic(T => {
-    let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
-    class Point extends core.Object {
-      new(x, y) {
-        this.x = x;
-        this.y = y;
-      }
-      toString() {
-        return dart.str`Point(${this.x}, ${this.y})`;
-      }
-      ['=='](other) {
-        if (!PointOfnum().is(other)) return false;
-        return dart.equals(this.x, dart.dload(other, 'x')) && dart.equals(this.y, dart.dload(other, 'y'));
-      }
-      get hashCode() {
-        return math._JenkinsSmiHash.hash2(dart.hashCode(this.x), dart.hashCode(this.y));
-      }
-      ['+'](other) {
-        PointOfT()._check(other);
-        return new (PointOfT())(dart.notNull(this.x) + dart.notNull(other.x), dart.notNull(this.y) + dart.notNull(other.y));
-      }
-      ['-'](other) {
-        PointOfT()._check(other);
-        return new (PointOfT())(dart.notNull(this.x) - dart.notNull(other.x), dart.notNull(this.y) - dart.notNull(other.y));
-      }
-      ['*'](factor) {
-        return new (PointOfT())(dart.notNull(this.x) * dart.notNull(factor), dart.notNull(this.y) * dart.notNull(factor));
-      }
-      get magnitude() {
-        return math.sqrt(dart.notNull(this.x) * dart.notNull(this.x) + dart.notNull(this.y) * dart.notNull(this.y));
-      }
-      distanceTo(other) {
-        PointOfT()._check(other);
-        let dx = dart.notNull(this.x) - dart.notNull(other.x);
-        let dy = dart.notNull(this.y) - dart.notNull(other.y);
-        return math.sqrt(dx * dx + dy * dy);
-      }
-      squaredDistanceTo(other) {
-        PointOfT()._check(other);
-        let dx = dart.notNull(this.x) - dart.notNull(other.x);
-        let dy = dart.notNull(this.y) - dart.notNull(other.y);
-        return dx * dx + dy * dy;
-      }
-    }
-    dart.addTypeTests(Point);
-    dart.setSignature(Point, {
-      constructors: () => ({new: dart.definiteFunctionType(math.Point$(T), [T, T])}),
-      fields: () => ({
-        x: T,
-        y: T
-      }),
-      getters: () => ({magnitude: dart.definiteFunctionType(core.double, [])}),
-      methods: () => ({
-        '+': dart.definiteFunctionType(math.Point$(T), [PointOfT()]),
-        '-': dart.definiteFunctionType(math.Point$(T), [PointOfT()]),
-        '*': dart.definiteFunctionType(math.Point$(T), [core.num]),
-        distanceTo: dart.definiteFunctionType(core.double, [PointOfT()]),
-        squaredDistanceTo: dart.definiteFunctionType(T, [PointOfT()])
-      })
-    });
-    return Point;
-  });
-  math.Point = Point$();
-  let const$82;
-  math.Random = class Random extends core.Object {
-    static new(seed) {
-      if (seed === void 0) seed = null;
-      return seed == null ? const$82 || (const$82 = dart.const(new math._JSRandom())) : new math._Random(seed);
-    }
-    static secure() {
-      return math.Random._secureRandom;
-    }
-  };
-  dart.setSignature(math.Random, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(math.Random, [], [core.int]),
-      secure: dart.definiteFunctionType(math.Random, [])
-    }),
-    sfields: () => ({_secureRandom: math._JSSecureRandom})
-  });
-  dart.defineLazy(math.Random, {
-    get _secureRandom() {
-      return new math._JSSecureRandom();
-    }
-  });
-  math._RectangleBase$ = dart.generic(T => {
-    let RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
-    let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
-    dart.defineExtensionNames([
-      'right',
-      'bottom',
-      'toString',
-      '==',
-      'hashCode',
-      'intersection',
-      'intersects',
-      'boundingBox',
-      'containsRectangle',
-      'containsPoint',
-      'topLeft',
-      'topRight',
-      'bottomRight',
-      'bottomLeft'
-    ]);
-    class _RectangleBase extends core.Object {
-      new() {
-      }
-      get right() {
-        return dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]);
-      }
-      get bottom() {
-        return dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-      }
-      toString() {
-        return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
-      }
-      ['=='](other) {
-        if (!RectangleOfnum().is(other)) return false;
-        let otherRect = RectangleOfnum().as(other);
-        return this[dartx.left] == otherRect[dartx.left] && this[dartx.top] == otherRect[dartx.top] && this[dartx.right] == otherRect[dartx.right] && this[dartx.bottom] == otherRect[dartx.bottom];
-      }
-      get hashCode() {
-        return math._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.right]), dart.hashCode(this[dartx.bottom]));
-      }
-      intersection(other) {
-        RectangleOfT()._check(other);
-        let x0 = math.max(T)(this[dartx.left], other[dartx.left]);
-        let x1 = math.min(T)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-        if (dart.notNull(x0) <= dart.notNull(x1)) {
-          let y0 = math.max(T)(this[dartx.top], other[dartx.top]);
-          let y1 = math.min(T)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-          if (dart.notNull(y0) <= dart.notNull(y1)) {
-            return new (RectangleOfT())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
-          }
-        }
-        return null;
-      }
-      intersects(other) {
-        return dart.notNull(this[dartx.left]) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-      }
-      boundingBox(other) {
-        RectangleOfT()._check(other);
-        let right = math.max(T)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-        let bottom = math.max(T)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-        let left = math.min(T)(this[dartx.left], other[dartx.left]);
-        let top = math.min(T)(this[dartx.top], other[dartx.top]);
-        return new (RectangleOfT())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
-      }
-      containsRectangle(another) {
-        return dart.notNull(this[dartx.left]) <= dart.notNull(another[dartx.left]) && dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(another[dartx.top]) && dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
-      }
-      containsPoint(another) {
-        return dart.notNull(another.x) >= dart.notNull(this[dartx.left]) && dart.notNull(another.x) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(another.y) >= dart.notNull(this[dartx.top]) && dart.notNull(another.y) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-      }
-      get topLeft() {
-        return new (PointOfT())(this[dartx.left], this[dartx.top]);
-      }
-      get topRight() {
-        return new (PointOfT())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), this[dartx.top]);
-      }
-      get bottomRight() {
-        return new (PointOfT())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
-      }
-      get bottomLeft() {
-        return new (PointOfT())(this[dartx.left], dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
-      }
-    }
-    dart.addTypeTests(_RectangleBase);
-    dart.setSignature(_RectangleBase, {
-      constructors: () => ({new: dart.definiteFunctionType(math._RectangleBase$(T), [])}),
-      getters: () => ({
-        right: dart.definiteFunctionType(T, []),
-        bottom: dart.definiteFunctionType(T, []),
-        topLeft: dart.definiteFunctionType(math.Point$(T), []),
-        topRight: dart.definiteFunctionType(math.Point$(T), []),
-        bottomRight: dart.definiteFunctionType(math.Point$(T), []),
-        bottomLeft: dart.definiteFunctionType(math.Point$(T), [])
-      }),
-      methods: () => ({
-        intersection: dart.definiteFunctionType(math.Rectangle$(T), [RectangleOfT()]),
-        intersects: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-        boundingBox: dart.definiteFunctionType(math.Rectangle$(T), [RectangleOfT()]),
-        containsRectangle: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-        containsPoint: dart.definiteFunctionType(core.bool, [PointOfnum()])
-      })
-    });
-    dart.defineExtensionMembers(_RectangleBase, [
-      'toString',
-      '==',
-      'intersection',
-      'intersects',
-      'boundingBox',
-      'containsRectangle',
-      'containsPoint',
-      'right',
-      'bottom',
-      'hashCode',
-      'topLeft',
-      'topRight',
-      'bottomRight',
-      'bottomLeft'
-    ]);
-    return _RectangleBase;
-  });
-  math._RectangleBase = _RectangleBase();
-  math.Rectangle$ = dart.generic(T => {
-    let RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
-    let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
-    dart.defineExtensionNames([
-      'left',
-      'top',
-      'width',
-      'height'
-    ]);
-    class Rectangle extends math._RectangleBase$(T) {
-      get left() {
-        return this[left$];
-      }
-      set left(value) {
-        super.left = value;
-      }
-      get top() {
-        return this[top$];
-      }
-      set top(value) {
-        super.top = value;
-      }
-      get width() {
-        return this[width$];
-      }
-      set width(value) {
-        super.width = value;
-      }
-      get height() {
-        return this[height$];
-      }
-      set height(value) {
-        super.height = value;
-      }
-      new(left, top, width, height) {
-        this[left$] = left;
-        this[top$] = top;
-        this[width$] = dart.notNull(width) < 0 ? -dart.notNull(width) * 0 : width;
-        this[height$] = dart.notNull(height) < 0 ? -dart.notNull(height) * 0 : height;
-        super.new();
-      }
-      static fromPoints(a, b) {
-        let left = math.min(T)(a.x, b.x);
-        let width = dart.notNull(math.max(T)(a.x, b.x)) - dart.notNull(left);
-        let top = math.min(T)(a.y, b.y);
-        let height = dart.notNull(math.max(T)(a.y, b.y)) - dart.notNull(top);
-        return new (RectangleOfT())(left, top, width, height);
-      }
-    }
-    const left$ = Symbol(Rectangle.name + "." + 'left'.toString());
-    const top$ = Symbol(Rectangle.name + "." + 'top'.toString());
-    const width$ = Symbol(Rectangle.name + "." + 'width'.toString());
-    const height$ = Symbol(Rectangle.name + "." + 'height'.toString());
-    dart.setSignature(Rectangle, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(math.Rectangle$(T), [T, T, T, T]),
-        fromPoints: dart.definiteFunctionType(math.Rectangle$(T), [PointOfT(), PointOfT()])
-      }),
-      fields: () => ({
-        left: T,
-        top: T,
-        width: T,
-        height: T
-      })
-    });
-    dart.defineExtensionMembers(Rectangle, ['left', 'top', 'width', 'height']);
-    return Rectangle;
-  });
-  math.Rectangle = Rectangle();
-  const _width = Symbol('_width');
-  const _height = Symbol('_height');
-  math.MutableRectangle$ = dart.generic(T => {
-    let MutableRectangleOfT = () => (MutableRectangleOfT = dart.constFn(math.MutableRectangle$(T)))();
-    let RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
-    let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
-    class MutableRectangle extends math._RectangleBase$(T) {
-      get left() {
-        return this[left$];
-      }
-      set left(value) {
-        this[left$] = value;
-      }
-      get top() {
-        return this[top$];
-      }
-      set top(value) {
-        this[top$] = value;
-      }
-      new(left, top, width, height) {
-        this[left$] = left;
-        this[top$] = top;
-        this[_width] = dart.notNull(width) < 0 ? math._clampToZero(T)(width) : width;
-        this[_height] = dart.notNull(height) < 0 ? math._clampToZero(T)(height) : height;
-        super.new();
-      }
-      static fromPoints(a, b) {
-        let left = math.min(T)(a.x, b.x);
-        let width = dart.notNull(math.max(T)(a.x, b.x)) - dart.notNull(left);
-        let top = math.min(T)(a.y, b.y);
-        let height = dart.notNull(math.max(T)(a.y, b.y)) - dart.notNull(top);
-        return new (MutableRectangleOfT())(left, top, width, height);
-      }
-      get width() {
-        return this[_width];
-      }
-      set width(width) {
-        T._check(width);
-        if (dart.notNull(width) < 0) width = math._clampToZero(T)(width);
-        this[_width] = width;
-      }
-      get height() {
-        return this[_height];
-      }
-      set height(height) {
-        T._check(height);
-        if (dart.notNull(height) < 0) height = math._clampToZero(T)(height);
-        this[_height] = height;
-      }
-    }
-    const left$ = Symbol(MutableRectangle.name + "." + 'left'.toString());
-    const top$ = Symbol(MutableRectangle.name + "." + 'top'.toString());
-    MutableRectangle[dart.implements] = () => [RectangleOfT()];
-    dart.setSignature(MutableRectangle, {
-      constructors: () => ({
-        new: dart.definiteFunctionType(math.MutableRectangle$(T), [T, T, T, T]),
-        fromPoints: dart.definiteFunctionType(math.MutableRectangle$(T), [PointOfT(), PointOfT()])
-      }),
-      fields: () => ({
-        left: T,
-        top: T,
-        [_width]: T,
-        [_height]: T
-      }),
-      getters: () => ({
-        width: dart.definiteFunctionType(T, []),
-        height: dart.definiteFunctionType(T, [])
-      }),
-      setters: () => ({
-        width: dart.definiteFunctionType(dart.void, [T]),
-        height: dart.definiteFunctionType(dart.void, [T])
-      })
-    });
-    dart.defineExtensionMembers(MutableRectangle, ['left', 'top', 'width', 'height']);
-    return MutableRectangle;
-  });
-  math.MutableRectangle = MutableRectangle();
-  math._clampToZero = function(T) {
-    return value => {
-      dart.assert(dart.notNull(value) < 0);
-      return -dart.notNull(value) * 0;
-    };
-  };
-  dart.fn(math._clampToZero, TToT());
-  mirrors.MirrorSystem = class MirrorSystem extends core.Object {
-    findLibrary(libraryName) {
-      return this.libraries[dartx.values][dartx.singleWhere](dart.fn(library => dart.equals(library.simpleName, libraryName), LibraryMirrorTobool()));
-    }
-    static getName(symbol) {
-      return _js_mirrors.getName(symbol);
-    }
-    static getSymbol(name, library) {
-      if (library === void 0) library = null;
-      return _js_mirrors.getSymbol(name, library);
-    }
-  };
-  dart.setSignature(mirrors.MirrorSystem, {
-    methods: () => ({findLibrary: dart.definiteFunctionType(mirrors.LibraryMirror, [core.Symbol])}),
-    statics: () => ({
-      getName: dart.definiteFunctionType(core.String, [core.Symbol]),
-      getSymbol: dart.definiteFunctionType(core.Symbol, [core.String], [mirrors.LibraryMirror])
-    }),
-    names: ['getName', 'getSymbol']
-  });
-  mirrors.currentMirrorSystem = function() {
-    return mirrors.MirrorSystem._check(_js_mirrors.currentJsMirrorSystem);
-  };
-  dart.fn(mirrors.currentMirrorSystem, VoidToMirrorSystem());
-  mirrors.reflect = function(reflectee) {
-    return _js_mirrors.reflect(reflectee);
-  };
-  dart.lazyFn(mirrors.reflect, () => ObjectToInstanceMirror());
-  mirrors.reflectClass = function(key) {
-    if (!core.Type.is(key) || dart.equals(key, dart.wrapType(dart.dynamic))) {
-      dart.throw(new core.ArgumentError(dart.str`${key} does not denote a class`));
-    }
-    let tm = mirrors.reflectType(key);
-    if (!mirrors.ClassMirror.is(tm)) {
-      dart.throw(new core.ArgumentError(dart.str`${key} does not denote a class`));
-    }
-    return mirrors.ClassMirror._check(mirrors.ClassMirror.as(tm).originalDeclaration);
-  };
-  dart.lazyFn(mirrors.reflectClass, () => TypeToClassMirror());
-  mirrors.reflectType = function(key) {
-    if (dart.equals(key, dart.wrapType(dart.dynamic))) {
-      return mirrors.currentMirrorSystem().dynamicType;
-    }
-    return _js_mirrors.reflectType(key);
-  };
-  dart.lazyFn(mirrors.reflectType, () => TypeToTypeMirror());
-  mirrors.Mirror = class Mirror extends core.Object {};
-  mirrors.IsolateMirror = class IsolateMirror extends core.Object {};
-  mirrors.IsolateMirror[dart.implements] = () => [mirrors.Mirror];
-  mirrors.DeclarationMirror = class DeclarationMirror extends core.Object {};
-  mirrors.DeclarationMirror[dart.implements] = () => [mirrors.Mirror];
-  mirrors.ObjectMirror = class ObjectMirror extends core.Object {};
-  mirrors.ObjectMirror[dart.implements] = () => [mirrors.Mirror];
-  mirrors.InstanceMirror = class InstanceMirror extends core.Object {};
-  mirrors.InstanceMirror[dart.implements] = () => [mirrors.ObjectMirror];
-  mirrors.ClosureMirror = class ClosureMirror extends core.Object {};
-  mirrors.ClosureMirror[dart.implements] = () => [mirrors.InstanceMirror];
-  mirrors.LibraryMirror = class LibraryMirror extends core.Object {};
-  mirrors.LibraryMirror[dart.implements] = () => [mirrors.DeclarationMirror, mirrors.ObjectMirror];
-  mirrors.LibraryDependencyMirror = class LibraryDependencyMirror extends core.Object {};
-  mirrors.LibraryDependencyMirror[dart.implements] = () => [mirrors.Mirror];
-  mirrors.CombinatorMirror = class CombinatorMirror extends core.Object {};
-  mirrors.CombinatorMirror[dart.implements] = () => [mirrors.Mirror];
-  mirrors.TypeMirror = class TypeMirror extends core.Object {};
-  mirrors.TypeMirror[dart.implements] = () => [mirrors.DeclarationMirror];
-  mirrors.ClassMirror = class ClassMirror extends core.Object {};
-  mirrors.ClassMirror[dart.implements] = () => [mirrors.TypeMirror, mirrors.ObjectMirror];
-  mirrors.FunctionTypeMirror = class FunctionTypeMirror extends core.Object {};
-  mirrors.FunctionTypeMirror[dart.implements] = () => [mirrors.ClassMirror];
-  mirrors.TypeVariableMirror = class TypeVariableMirror extends mirrors.TypeMirror {};
-  mirrors.TypedefMirror = class TypedefMirror extends core.Object {};
-  mirrors.TypedefMirror[dart.implements] = () => [mirrors.TypeMirror];
-  mirrors.MethodMirror = class MethodMirror extends core.Object {};
-  mirrors.MethodMirror[dart.implements] = () => [mirrors.DeclarationMirror];
-  mirrors.VariableMirror = class VariableMirror extends core.Object {};
-  mirrors.VariableMirror[dart.implements] = () => [mirrors.DeclarationMirror];
-  mirrors.ParameterMirror = class ParameterMirror extends core.Object {};
-  mirrors.ParameterMirror[dart.implements] = () => [mirrors.VariableMirror];
-  mirrors.SourceLocation = class SourceLocation extends core.Object {};
-  mirrors.Comment = class Comment extends core.Object {
-    new(text, trimmedText, isDocComment) {
-      this.text = text;
-      this.trimmedText = trimmedText;
-      this.isDocComment = isDocComment;
-    }
-  };
-  dart.setSignature(mirrors.Comment, {
-    constructors: () => ({new: dart.definiteFunctionType(mirrors.Comment, [core.String, core.String, core.bool])}),
-    fields: () => ({
-      text: core.String,
-      trimmedText: core.String,
-      isDocComment: core.bool
-    })
-  });
-  mirrors.MirrorsUsed = class MirrorsUsed extends core.Object {
-    new(opts) {
-      let symbols = opts && 'symbols' in opts ? opts.symbols : null;
-      let targets = opts && 'targets' in opts ? opts.targets : null;
-      let metaTargets = opts && 'metaTargets' in opts ? opts.metaTargets : null;
-      let override = opts && 'override' in opts ? opts.override : null;
-      this.symbols = symbols;
-      this.targets = targets;
-      this.metaTargets = metaTargets;
-      this.override = override;
-    }
-  };
-  dart.setSignature(mirrors.MirrorsUsed, {
-    constructors: () => ({new: dart.definiteFunctionType(mirrors.MirrorsUsed, [], {symbols: dart.dynamic, targets: dart.dynamic, metaTargets: dart.dynamic, override: dart.dynamic})}),
-    fields: () => ({
-      symbols: dart.dynamic,
-      targets: dart.dynamic,
-      metaTargets: dart.dynamic,
-      override: dart.dynamic
-    })
-  });
-  typed_data.ByteBuffer = class ByteBuffer extends core.Object {};
-  typed_data.TypedData = class TypedData extends core.Object {};
-  const _littleEndian = Symbol('_littleEndian');
-  typed_data.Endianness = class Endianness extends core.Object {
-    _(littleEndian) {
-      this[_littleEndian] = littleEndian;
-    }
-  };
-  dart.defineNamedConstructor(typed_data.Endianness, '_');
-  dart.setSignature(typed_data.Endianness, {
-    constructors: () => ({_: dart.definiteFunctionType(typed_data.Endianness, [core.bool])}),
-    fields: () => ({[_littleEndian]: core.bool}),
-    sfields: () => ({
-      BIG_ENDIAN: typed_data.Endianness,
-      LITTLE_ENDIAN: typed_data.Endianness,
-      HOST_ENDIAN: typed_data.Endianness
-    })
-  });
-  dart.defineLazy(typed_data.Endianness, {
-    get BIG_ENDIAN() {
-      return dart.const(new typed_data.Endianness._(false));
-    },
-    get LITTLE_ENDIAN() {
-      return dart.const(new typed_data.Endianness._(true));
-    },
-    get HOST_ENDIAN() {
-      return typed_data.ByteData.view(typed_data.Uint16List.fromList(JSArrayOfint().of([1]))[dartx.buffer])[dartx.getInt8](0) == 1 ? typed_data.Endianness.LITTLE_ENDIAN : typed_data.Endianness.BIG_ENDIAN;
-    }
-  });
-  typed_data.ByteData = class ByteData extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeByteData.new(length);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asByteData](offsetInBytes, length);
-    }
-  };
-  typed_data.ByteData[dart.implements] = () => [typed_data.TypedData];
-  dart.setSignature(typed_data.ByteData, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.ByteData, [core.int]),
-      view: dart.definiteFunctionType(typed_data.ByteData, [typed_data.ByteBuffer], [core.int, core.int])
-    })
-  });
-  typed_data.Int8List = class Int8List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeInt8List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt8List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asInt8List](offsetInBytes, length);
-    }
-  };
-  typed_data.Int8List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Int8List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Int8List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Int8List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Int8List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Int8List.BYTES_PER_ELEMENT = 1;
-  typed_data.Uint8List = class Uint8List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeUint8List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint8List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asUint8List](offsetInBytes, length);
-    }
-  };
-  typed_data.Uint8List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Uint8List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Uint8List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Uint8List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Uint8List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Uint8List.BYTES_PER_ELEMENT = 1;
-  typed_data.Uint8ClampedList = class Uint8ClampedList extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeUint8ClampedList.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint8ClampedList.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asUint8ClampedList](offsetInBytes, length);
-    }
-  };
-  typed_data.Uint8ClampedList[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Uint8ClampedList, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Uint8ClampedList, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Uint8ClampedList, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Uint8ClampedList, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Uint8ClampedList.BYTES_PER_ELEMENT = 1;
-  typed_data.Int16List = class Int16List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeInt16List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt16List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asInt16List](offsetInBytes, length);
-    }
-  };
-  typed_data.Int16List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Int16List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Int16List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Int16List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Int16List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Int16List.BYTES_PER_ELEMENT = 2;
-  typed_data.Uint16List = class Uint16List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeUint16List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint16List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asUint16List](offsetInBytes, length);
-    }
-  };
-  typed_data.Uint16List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Uint16List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Uint16List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Uint16List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Uint16List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Uint16List.BYTES_PER_ELEMENT = 2;
-  typed_data.Int32List = class Int32List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeInt32List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt32List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asInt32List](offsetInBytes, length);
-    }
-  };
-  typed_data.Int32List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Int32List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Int32List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Int32List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Int32List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Int32List.BYTES_PER_ELEMENT = 4;
-  typed_data.Uint32List = class Uint32List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeUint32List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeUint32List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asUint32List](offsetInBytes, length);
-    }
-  };
-  typed_data.Uint32List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Uint32List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Uint32List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Uint32List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Uint32List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Uint32List.BYTES_PER_ELEMENT = 4;
-  typed_data.Int64List = class Int64List extends core.Object {
-    static new(length) {
-      dart.throw(new core.UnsupportedError("Int64List not supported by dart2js."));
-    }
-    static fromList(elements) {
-      dart.throw(new core.UnsupportedError("Int64List not supported by dart2js."));
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asInt64List](offsetInBytes, length);
-    }
-  };
-  typed_data.Int64List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Int64List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Int64List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Int64List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Int64List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Int64List.BYTES_PER_ELEMENT = 8;
-  typed_data.Uint64List = class Uint64List extends core.Object {
-    static new(length) {
-      dart.throw(new core.UnsupportedError("Uint64List not supported by dart2js."));
-    }
-    static fromList(elements) {
-      dart.throw(new core.UnsupportedError("Uint64List not supported by dart2js."));
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asUint64List](offsetInBytes, length);
-    }
-  };
-  typed_data.Uint64List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
-  dart.setSignature(typed_data.Uint64List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Uint64List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Uint64List, [ListOfint()]),
-      view: dart.definiteFunctionType(typed_data.Uint64List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Uint64List.BYTES_PER_ELEMENT = 8;
-  typed_data.Float32List = class Float32List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeFloat32List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeFloat32List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asFloat32List](offsetInBytes, length);
-    }
-  };
-  typed_data.Float32List[dart.implements] = () => [ListOfdouble(), typed_data.TypedData];
-  dart.setSignature(typed_data.Float32List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Float32List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Float32List, [ListOfdouble()]),
-      view: dart.definiteFunctionType(typed_data.Float32List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Float32List.BYTES_PER_ELEMENT = 4;
-  typed_data.Float64List = class Float64List extends core.Object {
-    static new(length) {
-      return _native_typed_data.NativeFloat64List.new(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeFloat64List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asFloat64List](offsetInBytes, length);
-    }
-  };
-  typed_data.Float64List[dart.implements] = () => [ListOfdouble(), typed_data.TypedData];
-  dart.setSignature(typed_data.Float64List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Float64List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Float64List, [ListOfdouble()]),
-      view: dart.definiteFunctionType(typed_data.Float64List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Float64List.BYTES_PER_ELEMENT = 8;
-  typed_data.Float32x4List = class Float32x4List extends core.Object {
-    static new(length) {
-      return new _native_typed_data.NativeFloat32x4List(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeFloat32x4List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asFloat32x4List](offsetInBytes, length);
-    }
-  };
-  typed_data.Float32x4List[dart.implements] = () => [ListOfFloat32x4(), typed_data.TypedData];
-  dart.setSignature(typed_data.Float32x4List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Float32x4List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Float32x4List, [ListOfFloat32x4()]),
-      view: dart.definiteFunctionType(typed_data.Float32x4List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Float32x4List.BYTES_PER_ELEMENT = 16;
-  typed_data.Int32x4List = class Int32x4List extends core.Object {
-    static new(length) {
-      return new _native_typed_data.NativeInt32x4List(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeInt32x4List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asInt32x4List](offsetInBytes, length);
-    }
-  };
-  typed_data.Int32x4List[dart.implements] = () => [ListOfInt32x4(), typed_data.TypedData];
-  dart.setSignature(typed_data.Int32x4List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Int32x4List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Int32x4List, [ListOfInt32x4()]),
-      view: dart.definiteFunctionType(typed_data.Int32x4List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Int32x4List.BYTES_PER_ELEMENT = 16;
-  typed_data.Float64x2List = class Float64x2List extends core.Object {
-    static new(length) {
-      return new _native_typed_data.NativeFloat64x2List(length);
-    }
-    static fromList(elements) {
-      return _native_typed_data.NativeFloat64x2List.fromList(elements);
-    }
-    static view(buffer, offsetInBytes, length) {
-      if (offsetInBytes === void 0) offsetInBytes = 0;
-      if (length === void 0) length = null;
-      return buffer[dartx.asFloat64x2List](offsetInBytes, length);
-    }
-  };
-  typed_data.Float64x2List[dart.implements] = () => [ListOfFloat64x2(), typed_data.TypedData];
-  dart.setSignature(typed_data.Float64x2List, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(typed_data.Float64x2List, [core.int]),
-      fromList: dart.definiteFunctionType(typed_data.Float64x2List, [ListOfFloat64x2()]),
-      view: dart.definiteFunctionType(typed_data.Float64x2List, [typed_data.ByteBuffer], [core.int, core.int])
-    }),
-    sfields: () => ({BYTES_PER_ELEMENT: core.int})
-  });
-  typed_data.Float64x2List.BYTES_PER_ELEMENT = 16;
-  indexed_db._KeyRangeFactoryProvider = class _KeyRangeFactoryProvider extends core.Object {
-    static createKeyRange_only(value) {
-      return indexed_db._KeyRangeFactoryProvider._only(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(value));
-    }
-    static createKeyRange_lowerBound(bound, open) {
-      if (open === void 0) open = false;
-      return indexed_db._KeyRangeFactoryProvider._lowerBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
-    }
-    static createKeyRange_upperBound(bound, open) {
-      if (open === void 0) open = false;
-      return indexed_db._KeyRangeFactoryProvider._upperBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
-    }
-    static createKeyRange_bound(lower, upper, lowerOpen, upperOpen) {
-      if (lowerOpen === void 0) lowerOpen = false;
-      if (upperOpen === void 0) upperOpen = false;
-      return indexed_db._KeyRangeFactoryProvider._bound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(lower), indexed_db._KeyRangeFactoryProvider._translateKey(upper), lowerOpen, upperOpen);
-    }
-    static _class() {
-      if (indexed_db._KeyRangeFactoryProvider._cachedClass != null) return indexed_db._KeyRangeFactoryProvider._cachedClass;
-      return indexed_db._KeyRangeFactoryProvider._cachedClass = indexed_db._KeyRangeFactoryProvider._uncachedClass();
-    }
-    static _uncachedClass() {
-      return window.webkitIDBKeyRange || window.mozIDBKeyRange || window.msIDBKeyRange || window.IDBKeyRange;
-    }
-    static _translateKey(idbkey) {
-      return idbkey;
-    }
-    static _only(cls, value) {
-      return cls.only(value);
-    }
-    static _lowerBound(cls, bound, open) {
-      return cls.lowerBound(bound, open);
-    }
-    static _upperBound(cls, bound, open) {
-      return cls.upperBound(bound, open);
-    }
-    static _bound(cls, lower, upper, lowerOpen, upperOpen) {
-      return cls.bound(lower, upper, lowerOpen, upperOpen);
-    }
-  };
-  dart.setSignature(indexed_db._KeyRangeFactoryProvider, {
-    sfields: () => ({_cachedClass: dart.dynamic}),
-    statics: () => ({
-      createKeyRange_only: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic]),
-      createKeyRange_lowerBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
-      createKeyRange_upperBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
-      createKeyRange_bound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic], [core.bool, core.bool]),
-      _class: dart.definiteFunctionType(dart.dynamic, []),
-      _uncachedClass: dart.definiteFunctionType(dart.dynamic, []),
-      _translateKey: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _only: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic]),
-      _lowerBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _upperBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _bound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['createKeyRange_only', 'createKeyRange_lowerBound', 'createKeyRange_upperBound', 'createKeyRange_bound', '_class', '_uncachedClass', '_translateKey', '_only', '_lowerBound', '_upperBound', '_bound']
-  });
-  indexed_db._KeyRangeFactoryProvider._cachedClass = null;
-  indexed_db._convertNativeToDart_IDBKey = function(nativeKey) {
-    function containsDate(object) {
-      if (dart.test(html_common.isJavaScriptDate(object))) return true;
-      if (core.List.is(object)) {
-        for (let i = 0; i < dart.notNull(object[dartx.length]); i++) {
-          if (dart.test(containsDate(object[dartx._get](i)))) return true;
-        }
-      }
-      return false;
-    }
-    dart.fn(containsDate, dynamicTobool$());
-    if (dart.test(containsDate(nativeKey))) {
-      dart.throw(new core.UnimplementedError('Key containing DateTime'));
-    }
-    return nativeKey;
-  };
-  dart.fn(indexed_db._convertNativeToDart_IDBKey, dynamicTodynamic$());
-  indexed_db._convertDartToNative_IDBKey = function(dartKey) {
-    return dartKey;
-  };
-  dart.fn(indexed_db._convertDartToNative_IDBKey, dynamicTodynamic$());
-  indexed_db._convertNativeToDart_IDBAny = function(object) {
-    return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false});
-  };
-  dart.fn(indexed_db._convertNativeToDart_IDBAny, dynamicTodynamic$());
-  indexed_db._idbKey = 'JSExtendableArray|=Object|num|String';
-  indexed_db._annotation_Creates_IDBKey = dart.const(new _js_helper.Creates(indexed_db._idbKey));
-  indexed_db._annotation_Returns_IDBKey = dart.const(new _js_helper.Returns(indexed_db._idbKey));
-  const _delete$ = Symbol('_delete');
-  const _update = Symbol('_update');
-  const _update_1 = Symbol('_update_1');
-  dart.defineExtensionNames([
-    'delete',
-    'update',
-    'next',
-    'advance',
-    'continuePrimaryKey',
-    'direction',
-    'key',
-    'primaryKey',
-    'source'
-  ]);
-  indexed_db.Cursor = class Cursor extends _interceptors.Interceptor {
-    [dartx.delete]() {
-      try {
-        return indexed_db._completeRequest(dart.dynamic)(this[_delete$]());
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.update](value) {
-      try {
-        return indexed_db._completeRequest(dart.dynamic)(this[_update](value));
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.next](key) {
-      if (key === void 0) key = null;
-      if (key == null) {
-        this.continue();
-      } else {
-        this.continue(key);
-      }
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.direction]() {
-      return this.direction;
-    }
-    get [dartx.key]() {
-      return this.key;
-    }
-    get [dartx.primaryKey]() {
-      return this.primaryKey;
-    }
-    get [dartx.source]() {
-      return this.source;
-    }
-    [dartx.advance](...args) {
-      return this.advance.apply(this, args);
-    }
-    [dartx.continuePrimaryKey](...args) {
-      return this.continuePrimaryKey.apply(this, args);
-    }
-    [_delete$](...args) {
-      return this.delete.apply(this, args);
-    }
-    [_update](value) {
-      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
-      return this[_update_1](value_1);
-    }
-    [_update_1](...args) {
-      return this.update.apply(this, args);
-    }
-  };
-  dart.setSignature(indexed_db.Cursor, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.Cursor, [])}),
-    fields: () => ({
-      [dartx.direction]: core.String,
-      [dartx.key]: core.Object,
-      [dartx.primaryKey]: core.Object,
-      [dartx.source]: core.Object
-    }),
-    methods: () => ({
-      [dartx.delete]: dart.definiteFunctionType(async.Future, []),
-      [dartx.update]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.next]: dart.definiteFunctionType(dart.void, [], [core.Object]),
-      [dartx.advance]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.continuePrimaryKey]: dart.definiteFunctionType(dart.void, [core.Object, core.Object]),
-      [_delete$]: dart.definiteFunctionType(indexed_db.Request, []),
-      [_update]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic]),
-      [_update_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.IDBCursor, indexed_db.Cursor);
-  const _get_value = Symbol('_get_value');
-  dart.defineExtensionNames([
-    'value'
-  ]);
-  indexed_db.CursorWithValue = class CursorWithValue extends indexed_db.Cursor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.value]() {
-      return indexed_db._convertNativeToDart_IDBAny(this[_get_value]);
-    }
-    get [_get_value]() {
-      return this.value;
-    }
-  };
-  dart.setSignature(indexed_db.CursorWithValue, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.CursorWithValue, [])}),
-    fields: () => ({[_get_value]: dart.dynamic}),
-    getters: () => ({[dartx.value]: dart.definiteFunctionType(dart.dynamic, [])})
-  });
-  dart.registerExtension(dart.global.IDBCursorWithValue, indexed_db.CursorWithValue);
-  const _createObjectStore = Symbol('_createObjectStore');
-  const _transaction = Symbol('_transaction');
-  const _createObjectStore_1 = Symbol('_createObjectStore_1');
-  const _createObjectStore_2 = Symbol('_createObjectStore_2');
-  const _addEventListener = Symbol('_addEventListener');
-  const _removeEventListener = Symbol('_removeEventListener');
-  dart.defineExtensionNames([
-    'on',
-    'addEventListener',
-    'removeEventListener',
-    'dispatchEvent'
-  ]);
-  html$.EventTarget = class EventTarget extends _interceptors.Interceptor {
-    _created() {
-      super.new();
-    }
-    get [dartx.on]() {
-      return new html$.Events(this);
-    }
-    [dartx.addEventListener](type, listener, useCapture) {
-      if (useCapture === void 0) useCapture = null;
-      if (listener != null) {
-        this[_addEventListener](type, listener, useCapture);
-      }
-    }
-    [dartx.removeEventListener](type, listener, useCapture) {
-      if (useCapture === void 0) useCapture = null;
-      if (listener != null) {
-        this[_removeEventListener](type, listener, useCapture);
-      }
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_addEventListener](...args) {
-      return this.addEventListener.apply(this, args);
-    }
-    [dartx.dispatchEvent](...args) {
-      return this.dispatchEvent.apply(this, args);
-    }
-    [_removeEventListener](...args) {
-      return this.removeEventListener.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.EventTarget, '_created');
-  dart.setSignature(html$.EventTarget, {
-    constructors: () => ({
-      _created: dart.definiteFunctionType(html$.EventTarget, []),
-      _: dart.definiteFunctionType(html$.EventTarget, [])
-    }),
-    getters: () => ({[dartx.on]: dart.definiteFunctionType(html$.Events, [])}),
-    methods: () => ({
-      [dartx.addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
-      [dartx.removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
-      [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
-      [dartx.dispatchEvent]: dart.definiteFunctionType(core.bool, [html$.Event]),
-      [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool])
-    })
-  });
-  dart.registerExtension(dart.global.EventTarget, html$.EventTarget);
-  dart.defineExtensionNames([
-    'createObjectStore',
-    'transaction',
-    'transactionStore',
-    'transactionList',
-    'transactionStores',
-    'close',
-    'deleteObjectStore',
-    'onAbort',
-    'onClose',
-    'onError',
-    'onVersionChange',
-    'name',
-    'objectStoreNames',
-    'version'
-  ]);
-  indexed_db.Database = class Database extends html$.EventTarget {
-    [dartx.createObjectStore](name, opts) {
-      let keyPath = opts && 'keyPath' in opts ? opts.keyPath : null;
-      let autoIncrement = opts && 'autoIncrement' in opts ? opts.autoIncrement : null;
-      let options = dart.map();
-      if (keyPath != null) {
-        options[dartx._set]('keyPath', keyPath);
-      }
-      if (autoIncrement != null) {
-        options[dartx._set]('autoIncrement', autoIncrement);
-      }
-      return this[_createObjectStore](name, options);
-    }
-    [dartx.transaction](storeName_OR_storeNames, mode) {
-      if (mode != 'readonly' && mode != 'readwrite') {
-        dart.throw(new core.ArgumentError(mode));
-      }
-      return this[_transaction](storeName_OR_storeNames, mode);
-    }
-    [dartx.transactionStore](storeName, mode) {
-      if (mode != 'readonly' && mode != 'readwrite') {
-        dart.throw(new core.ArgumentError(mode));
-      }
-      return this[_transaction](storeName, mode);
-    }
-    [dartx.transactionList](storeNames, mode) {
-      if (mode != 'readonly' && mode != 'readwrite') {
-        dart.throw(new core.ArgumentError(mode));
-      }
-      let storeNames_1 = html_common.convertDartToNative_StringArray(storeNames);
-      return this[_transaction](storeNames_1, mode);
-    }
-    [dartx.transactionStores](storeNames, mode) {
-      if (mode != 'readonly' && mode != 'readwrite') {
-        dart.throw(new core.ArgumentError(mode));
-      }
-      return this[_transaction](storeNames, mode);
-    }
-    [_transaction](...args) {
-      return this.transaction.apply(this, args);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.objectStoreNames]() {
-      return this.objectStoreNames;
-    }
-    get [dartx.version]() {
-      return this.version;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [_createObjectStore](name, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_createObjectStore_1](name, options_1);
-      }
-      return this[_createObjectStore_2](name);
-    }
-    [_createObjectStore_1](...args) {
-      return this.createObjectStore.apply(this, args);
-    }
-    [_createObjectStore_2](...args) {
-      return this.createObjectStore.apply(this, args);
-    }
-    [dartx.deleteObjectStore](...args) {
-      return this.deleteObjectStore.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return indexed_db.Database.abortEvent.forTarget(this);
-    }
-    get [dartx.onClose]() {
-      return indexed_db.Database.closeEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return indexed_db.Database.errorEvent.forTarget(this);
-    }
-    get [dartx.onVersionChange]() {
-      return indexed_db.Database.versionChangeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(indexed_db.Database, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.Database, [])}),
-    fields: () => ({
-      [dartx.name]: core.String,
-      [dartx.objectStoreNames]: ListOfString(),
-      [dartx.version]: core.Object
-    }),
-    getters: () => ({
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onVersionChange]: dart.definiteFunctionType(async.Stream$(indexed_db.VersionChangeEvent), [])
-    }),
-    methods: () => ({
-      [dartx.createObjectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String], {keyPath: core.String, autoIncrement: core.bool}),
-      [dartx.transaction]: dart.definiteFunctionType(indexed_db.Transaction, [dart.dynamic, core.String]),
-      [dartx.transactionStore]: dart.definiteFunctionType(indexed_db.Transaction, [core.String, core.String]),
-      [dartx.transactionList]: dart.definiteFunctionType(indexed_db.Transaction, [ListOfString(), core.String]),
-      [dartx.transactionStores]: dart.definiteFunctionType(indexed_db.Transaction, [html$.DomStringList, core.String]),
-      [_transaction]: dart.definiteFunctionType(indexed_db.Transaction, [dart.dynamic, dart.dynamic]),
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [_createObjectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String], [core.Map]),
-      [_createObjectStore_1]: dart.definiteFunctionType(indexed_db.ObjectStore, [dart.dynamic, dart.dynamic]),
-      [_createObjectStore_2]: dart.definiteFunctionType(indexed_db.ObjectStore, [dart.dynamic]),
-      [dartx.deleteObjectStore]: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    sfields: () => ({
-      abortEvent: EventStreamProviderOfEvent(),
-      closeEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      versionChangeEvent: EventStreamProviderOfVersionChangeEvent()
-    })
-  });
-  dart.defineLazy(indexed_db.Database, {
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('abort'));
-    },
-    get closeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('close'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get versionChangeEvent() {
-      return dart.const(new (EventStreamProviderOfVersionChangeEvent())('versionchange'));
-    }
-  });
-  dart.registerExtension(dart.global.IDBDatabase, indexed_db.Database);
-  const _open = Symbol('_open');
-  const _deleteDatabase = Symbol('_deleteDatabase');
-  const _webkitGetDatabaseNames = Symbol('_webkitGetDatabaseNames');
-  dart.defineExtensionNames([
-    'open',
-    'deleteDatabase',
-    'getDatabaseNames',
-    'supportsDatabaseNames',
-    'cmp'
-  ]);
-  indexed_db.IdbFactory = class IdbFactory extends _interceptors.Interceptor {
-    static get supported() {
-      return !!(window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB);
-    }
-    [dartx.open](name, opts) {
-      let version = opts && 'version' in opts ? opts.version : null;
-      let onUpgradeNeeded = opts && 'onUpgradeNeeded' in opts ? opts.onUpgradeNeeded : null;
-      let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
-      if (version == null != (onUpgradeNeeded == null)) {
-        return FutureOfDatabase().error(new core.ArgumentError('version and onUpgradeNeeded must be specified together'));
-      }
-      try {
-        let request = null;
-        if (version != null) {
-          request = this[_open](name, version);
-        } else {
-          request = this[_open](name);
-        }
-        if (onUpgradeNeeded != null) {
-          dart.dsend(dart.dload(request, 'onUpgradeNeeded'), 'listen', onUpgradeNeeded);
-        }
-        if (onBlocked != null) {
-          dart.dsend(dart.dload(request, 'onBlocked'), 'listen', onBlocked);
-        }
-        return indexed_db._completeRequest(indexed_db.Database)(indexed_db.Request._check(request));
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return FutureOfDatabase().error(e, stacktrace);
-      }
-
-    }
-    [dartx.deleteDatabase](name, opts) {
-      let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
-      try {
-        let request = this[_deleteDatabase](name);
-        if (onBlocked != null) {
-          request[dartx.onBlocked].listen(onBlocked);
-        }
-        let completer = CompleterOfIdbFactory().sync();
-        request[dartx.onSuccess].listen(dart.fn(e => {
-          completer.complete(this);
-        }, EventToNull()));
-        request[dartx.onError].listen(dart.bind(completer, 'completeError'));
-        return completer.future;
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return FutureOfIdbFactory().error(e, stacktrace);
-      }
-
-    }
-    [dartx.getDatabaseNames]() {
-      try {
-        let request = this[_webkitGetDatabaseNames]();
-        return indexed_db._completeRequest(ListOfString())(request);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return FutureOfListOfString().error(e, stacktrace);
-      }
-
-    }
-    get [dartx.supportsDatabaseNames]() {
-      return dart.test(indexed_db.IdbFactory.supported) && !!(this.getDatabaseNames || this.webkitGetDatabaseNames);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.cmp](...args) {
-      return this.cmp.apply(this, args);
-    }
-    [_deleteDatabase](...args) {
-      return this.deleteDatabase.apply(this, args);
-    }
-    [_open](...args) {
-      return this.open.apply(this, args);
-    }
-    [_webkitGetDatabaseNames](...args) {
-      return this.webkitGetDatabaseNames.apply(this, args);
-    }
-  };
-  dart.setSignature(indexed_db.IdbFactory, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.IdbFactory, [])}),
-    getters: () => ({[dartx.supportsDatabaseNames]: dart.definiteFunctionType(core.bool, [])}),
-    methods: () => ({
-      [dartx.open]: dart.definiteFunctionType(async.Future$(indexed_db.Database), [core.String], {version: core.int, onUpgradeNeeded: dynamicTovoid(), onBlocked: dynamicTovoid()}),
-      [dartx.deleteDatabase]: dart.definiteFunctionType(async.Future$(indexed_db.IdbFactory), [core.String], {onBlocked: EventTovoid()}),
-      [dartx.getDatabaseNames]: dart.definiteFunctionType(async.Future$(core.List$(core.String)), []),
-      [dartx.cmp]: dart.definiteFunctionType(core.int, [core.Object, core.Object]),
-      [_deleteDatabase]: dart.definiteFunctionType(indexed_db.OpenDBRequest, [core.String]),
-      [_open]: dart.definiteFunctionType(indexed_db.OpenDBRequest, [core.String], [core.int]),
-      [_webkitGetDatabaseNames]: dart.definiteFunctionType(indexed_db.Request, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.IDBFactory, indexed_db.IdbFactory);
-  indexed_db._completeRequest = function(T) {
-    return request => {
-      let completer = async.Completer$(T).sync();
-      request[dartx.onSuccess].listen(dart.fn(e => {
-        let result = indexed_db._cast(T)(request[dartx.result]);
-        completer.complete(result);
-      }, EventToNull()));
-      request[dartx.onError].listen(dart.bind(completer, 'completeError'));
-      return completer.future;
-    };
-  };
-  dart.lazyFn(indexed_db._completeRequest, () => RequestToFutureOfT());
-  const _count$0 = Symbol('_count');
-  const _get$ = Symbol('_get');
-  const _getKey$ = Symbol('_getKey');
-  const _openCursor = Symbol('_openCursor');
-  const _openKeyCursor = Symbol('_openKeyCursor');
-  dart.defineExtensionNames([
-    'count',
-    'get',
-    'getKey',
-    'openCursor',
-    'openKeyCursor',
-    'getAll',
-    'getAllKeys',
-    'keyPath',
-    'multiEntry',
-    'name',
-    'objectStore',
-    'unique'
-  ]);
-  indexed_db.Index = class Index extends _interceptors.Interceptor {
-    [dartx.count](key_OR_range) {
-      if (key_OR_range === void 0) key_OR_range = null;
-      try {
-        let request = this[_count$0](key_OR_range);
-        return indexed_db._completeRequest(core.int)(request);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return FutureOfint().error(e, stacktrace);
-      }
-
-    }
-    [dartx.get](key) {
-      try {
-        let request = this[_get$](key);
-        return indexed_db._completeRequest(dart.dynamic)(request);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.getKey](key) {
-      try {
-        let request = this[_getKey$](key);
-        return indexed_db._completeRequest(dart.dynamic)(request);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.openCursor](opts) {
-      let key = opts && 'key' in opts ? opts.key : null;
-      let range = opts && 'range' in opts ? opts.range : null;
-      let direction = opts && 'direction' in opts ? opts.direction : null;
-      let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
-      let key_OR_range = null;
-      if (key != null) {
-        if (range != null) {
-          dart.throw(new core.ArgumentError('Cannot specify both key and range.'));
-        }
-        key_OR_range = key;
-      } else {
-        key_OR_range = range;
-      }
-      let request = null;
-      if (direction == null) {
-        request = this[_openCursor](key_OR_range, "next");
-      } else {
-        request = this[_openCursor](key_OR_range, direction);
-      }
-      return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue)(indexed_db.Request._check(request), autoAdvance);
-    }
-    [dartx.openKeyCursor](opts) {
-      let key = opts && 'key' in opts ? opts.key : null;
-      let range = opts && 'range' in opts ? opts.range : null;
-      let direction = opts && 'direction' in opts ? opts.direction : null;
-      let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
-      let key_OR_range = null;
-      if (key != null) {
-        if (range != null) {
-          dart.throw(new core.ArgumentError('Cannot specify both key and range.'));
-        }
-        key_OR_range = key;
-      } else {
-        key_OR_range = range;
-      }
-      let request = null;
-      if (direction == null) {
-        request = this[_openKeyCursor](key_OR_range, "next");
-      } else {
-        request = this[_openKeyCursor](key_OR_range, direction);
-      }
-      return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.Cursor)(indexed_db.Request._check(request), autoAdvance);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.keyPath]() {
-      return this.keyPath;
-    }
-    get [dartx.multiEntry]() {
-      return this.multiEntry;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.objectStore]() {
-      return this.objectStore;
-    }
-    get [dartx.unique]() {
-      return this.unique;
-    }
-    [_count$0](...args) {
-      return this.count.apply(this, args);
-    }
-    [_get$](...args) {
-      return this.get.apply(this, args);
-    }
-    [dartx.getAll](...args) {
-      return this.getAll.apply(this, args);
-    }
-    [dartx.getAllKeys](...args) {
-      return this.getAllKeys.apply(this, args);
-    }
-    [_getKey$](...args) {
-      return this.getKey.apply(this, args);
-    }
-    [_openCursor](...args) {
-      return this.openCursor.apply(this, args);
-    }
-    [_openKeyCursor](...args) {
-      return this.openKeyCursor.apply(this, args);
-    }
-  };
-  dart.setSignature(indexed_db.Index, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.Index, [])}),
-    fields: () => ({
-      [dartx.keyPath]: core.Object,
-      [dartx.multiEntry]: core.bool,
-      [dartx.name]: core.String,
-      [dartx.objectStore]: indexed_db.ObjectStore,
-      [dartx.unique]: core.bool
-    }),
-    methods: () => ({
-      [dartx.count]: dart.definiteFunctionType(async.Future$(core.int), [], [dart.dynamic]),
-      [dartx.get]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.getKey]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.openCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
-      [dartx.openKeyCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.Cursor), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
-      [_count$0]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-      [_get$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-      [dartx.getAll]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
-      [dartx.getAllKeys]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
-      [_getKey$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-      [_openCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
-      [_openKeyCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.IDBIndex, indexed_db.Index);
-  dart.defineExtensionNames([
-    'lower',
-    'lowerOpen',
-    'upper',
-    'upperOpen'
-  ]);
-  indexed_db.KeyRange = class KeyRange extends _interceptors.Interceptor {
-    static only(value) {
-      return indexed_db._KeyRangeFactoryProvider.createKeyRange_only(value);
-    }
-    static lowerBound(bound, open) {
-      if (open === void 0) open = false;
-      return indexed_db._KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
-    }
-    static upperBound(bound, open) {
-      if (open === void 0) open = false;
-      return indexed_db._KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
-    }
-    static bound(lower, upper, lowerOpen, upperOpen) {
-      if (lowerOpen === void 0) lowerOpen = false;
-      if (upperOpen === void 0) upperOpen = false;
-      return indexed_db._KeyRangeFactoryProvider.createKeyRange_bound(lower, upper, lowerOpen, upperOpen);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.lower]() {
-      return this.lower;
-    }
-    get [dartx.lowerOpen]() {
-      return this.lowerOpen;
-    }
-    get [dartx.upper]() {
-      return this.upper;
-    }
-    get [dartx.upperOpen]() {
-      return this.upperOpen;
-    }
-  };
-  dart.setSignature(indexed_db.KeyRange, {
-    constructors: () => ({
-      only: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic]),
-      lowerBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
-      upperBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
-      bound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic], [core.bool, core.bool]),
-      _: dart.definiteFunctionType(indexed_db.KeyRange, [])
-    }),
-    fields: () => ({
-      [dartx.lower]: core.Object,
-      [dartx.lowerOpen]: core.bool,
-      [dartx.upper]: core.Object,
-      [dartx.upperOpen]: core.bool
-    }),
-    statics: () => ({
-      bound_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object, core.Object], [core.bool, core.bool]),
-      lowerBound_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object], [core.bool]),
-      only_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object]),
-      upperBound_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object], [core.bool])
-    }),
-    names: ['bound_', 'lowerBound_', 'only_', 'upperBound_']
-  });
-  dart.registerExtension(dart.global.IDBKeyRange, indexed_db.KeyRange);
-  const _add$3 = Symbol('_add');
-  const _clear$0 = Symbol('_clear');
-  const _put = Symbol('_put');
-  const _createIndex = Symbol('_createIndex');
-  const _add_1 = Symbol('_add_1');
-  const _add_2 = Symbol('_add_2');
-  const _createIndex_1 = Symbol('_createIndex_1');
-  const _createIndex_2 = Symbol('_createIndex_2');
-  const _put_1 = Symbol('_put_1');
-  const _put_2 = Symbol('_put_2');
-  dart.defineExtensionNames([
-    'add',
-    'clear',
-    'delete',
-    'count',
-    'put',
-    'getObject',
-    'openCursor',
-    'createIndex',
-    'deleteIndex',
-    'getAll',
-    'getAllKeys',
-    'index',
-    'openKeyCursor',
-    'autoIncrement',
-    'indexNames',
-    'keyPath',
-    'name',
-    'transaction'
-  ]);
-  indexed_db.ObjectStore = class ObjectStore extends _interceptors.Interceptor {
-    [dartx.add](value, key) {
-      if (key === void 0) key = null;
-      try {
-        let request = null;
-        if (key != null) {
-          request = this[_add$3](value, key);
-        } else {
-          request = this[_add$3](value);
-        }
-        return indexed_db._completeRequest(dart.dynamic)(indexed_db.Request._check(request));
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.clear]() {
-      try {
-        return indexed_db._completeRequest(dart.dynamic)(this[_clear$0]());
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.delete](key_OR_keyRange) {
-      try {
-        return indexed_db._completeRequest(dart.dynamic)(this[_delete$](key_OR_keyRange));
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.count](key_OR_range) {
-      if (key_OR_range === void 0) key_OR_range = null;
-      try {
-        let request = this[_count$0](key_OR_range);
-        return indexed_db._completeRequest(core.int)(request);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return FutureOfint().error(e, stacktrace);
-      }
-
-    }
-    [dartx.put](value, key) {
-      if (key === void 0) key = null;
-      try {
-        let request = null;
-        if (key != null) {
-          request = this[_put](value, key);
-        } else {
-          request = this[_put](value);
-        }
-        return indexed_db._completeRequest(dart.dynamic)(indexed_db.Request._check(request));
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.getObject](key) {
-      try {
-        let request = this[_get$](key);
-        return indexed_db._completeRequest(dart.dynamic)(request);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        return async.Future.error(e, stacktrace);
-      }
-
-    }
-    [dartx.openCursor](opts) {
-      let key = opts && 'key' in opts ? opts.key : null;
-      let range = opts && 'range' in opts ? opts.range : null;
-      let direction = opts && 'direction' in opts ? opts.direction : null;
-      let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
-      let key_OR_range = null;
-      if (key != null) {
-        if (range != null) {
-          dart.throw(new core.ArgumentError('Cannot specify both key and range.'));
-        }
-        key_OR_range = key;
-      } else {
-        key_OR_range = range;
-      }
-      let request = null;
-      if (direction == null) {
-        request = this[_openCursor](key_OR_range);
-      } else {
-        request = this[_openCursor](key_OR_range, direction);
-      }
-      return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue)(indexed_db.Request._check(request), autoAdvance);
-    }
-    [dartx.createIndex](name, keyPath, opts) {
-      let unique = opts && 'unique' in opts ? opts.unique : null;
-      let multiEntry = opts && 'multiEntry' in opts ? opts.multiEntry : null;
-      let options = dart.map();
-      if (unique != null) {
-        options[dartx._set]('unique', unique);
-      }
-      if (multiEntry != null) {
-        options[dartx._set]('multiEntry', multiEntry);
-      }
-      return this[_createIndex](name, keyPath, options);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.autoIncrement]() {
-      return this.autoIncrement;
-    }
-    get [dartx.indexNames]() {
-      return this.indexNames;
-    }
-    get [dartx.keyPath]() {
-      return this.keyPath;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.transaction]() {
-      return this.transaction;
-    }
-    [_add$3](value, key) {
-      if (key === void 0) key = null;
-      if (key != null) {
-        let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
-        let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
-        return this[_add_1](value_1, key_2);
-      }
-      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
-      return this[_add_2](value_1);
-    }
-    [_add_1](...args) {
-      return this.add.apply(this, args);
-    }
-    [_add_2](...args) {
-      return this.add.apply(this, args);
-    }
-    [_clear$0](...args) {
-      return this.clear.apply(this, args);
-    }
-    [_count$0](...args) {
-      return this.count.apply(this, args);
-    }
-    [_createIndex](name, keyPath, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_createIndex_1](name, keyPath, options_1);
-      }
-      return this[_createIndex_2](name, keyPath);
-    }
-    [_createIndex_1](...args) {
-      return this.createIndex.apply(this, args);
-    }
-    [_createIndex_2](...args) {
-      return this.createIndex.apply(this, args);
-    }
-    [_delete$](...args) {
-      return this.delete.apply(this, args);
-    }
-    [dartx.deleteIndex](...args) {
-      return this.deleteIndex.apply(this, args);
-    }
-    [_get$](...args) {
-      return this.get.apply(this, args);
-    }
-    [dartx.getAll](...args) {
-      return this.getAll.apply(this, args);
-    }
-    [dartx.getAllKeys](...args) {
-      return this.getAllKeys.apply(this, args);
-    }
-    [dartx.index](...args) {
-      return this.index.apply(this, args);
-    }
-    [_openCursor](...args) {
-      return this.openCursor.apply(this, args);
-    }
-    [dartx.openKeyCursor](...args) {
-      return this.openKeyCursor.apply(this, args);
-    }
-    [_put](value, key) {
-      if (key === void 0) key = null;
-      if (key != null) {
-        let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
-        let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
-        return this[_put_1](value_1, key_2);
-      }
-      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
-      return this[_put_2](value_1);
-    }
-    [_put_1](...args) {
-      return this.put.apply(this, args);
-    }
-    [_put_2](...args) {
-      return this.put.apply(this, args);
-    }
-    static _cursorStreamFromResult(T) {
-      return (request, autoAdvance) => {
-        let controller = async.StreamController$(T).new({sync: true});
-        request[dartx.onError].listen(dart.bind(controller, 'addError'));
-        request[dartx.onSuccess].listen(dart.fn(e => {
-          let cursor = indexed_db._cast(T)(request[dartx.result]);
-          if (cursor == null) {
-            controller.close();
-          } else {
-            controller.add(cursor);
-            if (autoAdvance == true && dart.test(controller.hasListener)) {
-              cursor[dartx.next]();
-            }
-          }
-        }, EventToNull()));
-        return controller.stream;
-      };
-    }
-  };
-  dart.setSignature(indexed_db.ObjectStore, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.ObjectStore, [])}),
-    fields: () => ({
-      [dartx.autoIncrement]: core.bool,
-      [dartx.indexNames]: ListOfString(),
-      [dartx.keyPath]: core.Object,
-      [dartx.name]: core.String,
-      [dartx.transaction]: indexed_db.Transaction
-    }),
-    methods: () => ({
-      [dartx.add]: dart.definiteFunctionType(async.Future, [dart.dynamic], [dart.dynamic]),
-      [dartx.clear]: dart.definiteFunctionType(async.Future, []),
-      [dartx.delete]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.count]: dart.definiteFunctionType(async.Future$(core.int), [], [dart.dynamic]),
-      [dartx.put]: dart.definiteFunctionType(async.Future, [dart.dynamic], [dart.dynamic]),
-      [dartx.getObject]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.openCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
-      [dartx.createIndex]: dart.definiteFunctionType(indexed_db.Index, [core.String, dart.dynamic], {unique: core.bool, multiEntry: core.bool}),
-      [_add$3]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
-      [_add_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
-      [_add_2]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic]),
-      [_clear$0]: dart.definiteFunctionType(indexed_db.Request, []),
-      [_count$0]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-      [_createIndex]: dart.definiteFunctionType(indexed_db.Index, [core.String, core.Object], [core.Map]),
-      [_createIndex_1]: dart.definiteFunctionType(indexed_db.Index, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_createIndex_2]: dart.definiteFunctionType(indexed_db.Index, [dart.dynamic, dart.dynamic]),
-      [_delete$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-      [dartx.deleteIndex]: dart.definiteFunctionType(dart.void, [core.String]),
-      [_get$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-      [dartx.getAll]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
-      [dartx.getAllKeys]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
-      [dartx.index]: dart.definiteFunctionType(indexed_db.Index, [core.String]),
-      [_openCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
-      [dartx.openKeyCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
-      [_put]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
-      [_put_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
-      [_put_2]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic])
-    }),
-    statics: () => ({_cursorStreamFromResult: dart.definiteFunctionType(T => [async.Stream$(T), [indexed_db.Request, core.bool]])}),
-    names: ['_cursorStreamFromResult']
-  });
-  dart.registerExtension(dart.global.IDBObjectStore, indexed_db.ObjectStore);
-  indexed_db._cast = function(To) {
-    return x => {
-      return To._check(x);
-    };
-  };
-  dart.fn(indexed_db._cast, dynamicToTo());
-  const _get_result = Symbol('_get_result');
-  dart.defineExtensionNames([
-    'result',
-    'onError',
-    'onSuccess',
-    'error',
-    'readyState',
-    'source',
-    'transaction'
-  ]);
-  indexed_db.Request = class Request extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.result]() {
-      return indexed_db._convertNativeToDart_IDBAny(this[_get_result]);
-    }
-    get [_get_result]() {
-      return this.result;
-    }
-    get [dartx.source]() {
-      return this.source;
-    }
-    get [dartx.transaction]() {
-      return this.transaction;
-    }
-    get [dartx.onError]() {
-      return indexed_db.Request.errorEvent.forTarget(this);
-    }
-    get [dartx.onSuccess]() {
-      return indexed_db.Request.successEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(indexed_db.Request, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.Request, [])}),
-    fields: () => ({
-      [dartx.error]: html$.DomError,
-      [dartx.readyState]: core.String,
-      [_get_result]: dart.dynamic,
-      [dartx.source]: core.Object,
-      [dartx.transaction]: indexed_db.Transaction
-    }),
-    getters: () => ({
-      [dartx.result]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSuccess]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    sfields: () => ({
-      errorEvent: EventStreamProviderOfEvent(),
-      successEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(indexed_db.Request, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get successEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('success'));
-    }
-  });
-  dart.registerExtension(dart.global.IDBRequest, indexed_db.Request);
-  dart.defineExtensionNames([
-    'onBlocked',
-    'onUpgradeNeeded'
-  ]);
-  indexed_db.OpenDBRequest = class OpenDBRequest extends indexed_db.Request {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.onBlocked]() {
-      return indexed_db.OpenDBRequest.blockedEvent.forTarget(this);
-    }
-    get [dartx.onUpgradeNeeded]() {
-      return indexed_db.OpenDBRequest.upgradeNeededEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(indexed_db.OpenDBRequest, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.OpenDBRequest, [])}),
-    getters: () => ({
-      [dartx.onBlocked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onUpgradeNeeded]: dart.definiteFunctionType(async.Stream$(indexed_db.VersionChangeEvent), [])
-    }),
-    sfields: () => ({
-      blockedEvent: EventStreamProviderOfEvent(),
-      upgradeNeededEvent: EventStreamProviderOfVersionChangeEvent()
-    })
-  });
-  dart.defineLazy(indexed_db.OpenDBRequest, {
-    get blockedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('blocked'));
-    },
-    get upgradeNeededEvent() {
-      return dart.const(new (EventStreamProviderOfVersionChangeEvent())('upgradeneeded'));
-    }
-  });
-  dart.registerExtension(dart.global.IDBOpenDBRequest, indexed_db.OpenDBRequest);
-  dart.registerExtension(dart.global.IDBVersionChangeRequest, indexed_db.OpenDBRequest);
-  dart.defineExtensionNames([
-    'completed',
-    'abort',
-    'objectStore',
-    'onAbort',
-    'onComplete',
-    'onError',
-    'db',
-    'error',
-    'mode',
-    'objectStoreNames'
-  ]);
-  indexed_db.Transaction = class Transaction extends html$.EventTarget {
-    get [dartx.completed]() {
-      let completer = CompleterOfDatabase().new();
-      this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
-        completer.complete(this[dartx.db]);
-      }, EventToNull()));
-      this[dartx.onError].first.then(dart.dynamic)(dart.fn(e => {
-        completer.completeError(e);
-      }, EventToNull()));
-      this[dartx.onAbort].first.then(dart.dynamic)(dart.fn(e => {
-        if (!dart.test(completer.isCompleted)) {
-          completer.completeError(e);
-        }
-      }, EventToNull()));
-      return completer.future;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.db]() {
-      return this.db;
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.mode]() {
-      return this.mode;
-    }
-    get [dartx.objectStoreNames]() {
-      return this.objectStoreNames;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.objectStore](...args) {
-      return this.objectStore.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return indexed_db.Transaction.abortEvent.forTarget(this);
-    }
-    get [dartx.onComplete]() {
-      return indexed_db.Transaction.completeEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return indexed_db.Transaction.errorEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(indexed_db.Transaction, {
-    constructors: () => ({_: dart.definiteFunctionType(indexed_db.Transaction, [])}),
-    fields: () => ({
-      [dartx.db]: indexed_db.Database,
-      [dartx.error]: html$.DomError,
-      [dartx.mode]: core.String,
-      [dartx.objectStoreNames]: ListOfString()
-    }),
-    getters: () => ({
-      [dartx.completed]: dart.definiteFunctionType(async.Future$(indexed_db.Database), []),
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.objectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String])
-    }),
-    sfields: () => ({
-      abortEvent: EventStreamProviderOfEvent(),
-      completeEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(indexed_db.Transaction, {
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('abort'));
-    },
-    get completeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('complete'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    }
-  });
-  dart.registerExtension(dart.global.IDBTransaction, indexed_db.Transaction);
-  const _createEvent = Symbol('_createEvent');
-  const _initEvent = Symbol('_initEvent');
-  const _selector = Symbol('_selector');
-  const _get_currentTarget = Symbol('_get_currentTarget');
-  const _get_target = Symbol('_get_target');
-  dart.defineExtensionNames([
-    'matchingTarget',
-    'currentTarget',
-    'target',
-    'preventDefault',
-    'stopImmediatePropagation',
-    'stopPropagation',
-    'bubbles',
-    'cancelable',
-    'defaultPrevented',
-    'eventPhase',
-    'path',
-    'timeStamp',
-    'type'
-  ]);
-  html$.Event = class Event extends _interceptors.Interceptor {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      return html$.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
-    }
-    static eventType(type, name, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let e = html$.document[_createEvent](type);
-      e[_initEvent](name, canBubble, cancelable);
-      return e;
-    }
-    get [_selector]() {
-      return this._selector;
-    }
-    set [_selector](value) {
-      this._selector = value;
-    }
-    get [dartx.matchingTarget]() {
-      if (this[_selector] == null) {
-        dart.throw(new core.UnsupportedError('Cannot call matchingTarget if this Event did' + ' not arise as a result of event delegation.'));
-      }
-      let currentTarget = html$.Element._check(this[dartx.currentTarget]);
-      let target = html$.Element._check(this[dartx.target]);
-      let matchedTarget = null;
-      do {
-        if (dart.test(target[dartx.matches](this[_selector]))) return target;
-        target = target[dartx.parent];
-      } while (target != null && !dart.equals(target, currentTarget[dartx.parent]));
-      dart.throw(new core.StateError('No selector matched for populating matchedTarget.'));
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.Event._create_1(type, eventInitDict_1);
-      }
-      return html$.Event._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.Event(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.Event(type);
-    }
-    get [dartx.bubbles]() {
-      return this.bubbles;
-    }
-    get [dartx.cancelable]() {
-      return this.cancelable;
-    }
-    get [dartx.currentTarget]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_currentTarget]);
-    }
-    get [_get_currentTarget]() {
-      return this.currentTarget;
-    }
-    get [dartx.defaultPrevented]() {
-      return this.defaultPrevented;
-    }
-    get [dartx.eventPhase]() {
-      return this.eventPhase;
-    }
-    get [dartx.path]() {
-      return this.path;
-    }
-    get [dartx.target]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_target]);
-    }
-    get [_get_target]() {
-      return this.target;
-    }
-    get [dartx.timeStamp]() {
-      return this.timeStamp;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [_initEvent](...args) {
-      return this.initEvent.apply(this, args);
-    }
-    [dartx.preventDefault](...args) {
-      return this.preventDefault.apply(this, args);
-    }
-    [dartx.stopImmediatePropagation](...args) {
-      return this.stopImmediatePropagation.apply(this, args);
-    }
-    [dartx.stopPropagation](...args) {
-      return this.stopPropagation.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Event, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.Event, [core.String], {canBubble: core.bool, cancelable: core.bool}),
-      eventType: dart.definiteFunctionType(html$.Event, [core.String, core.String], {canBubble: core.bool, cancelable: core.bool}),
-      _: dart.definiteFunctionType(html$.Event, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [_selector]: core.String,
-      [dartx.bubbles]: core.bool,
-      [dartx.cancelable]: core.bool,
-      [_get_currentTarget]: dart.dynamic,
-      [dartx.defaultPrevented]: core.bool,
-      [dartx.eventPhase]: core.int,
-      [dartx.path]: ListOfEventTarget(),
-      [_get_target]: dart.dynamic,
-      [dartx.timeStamp]: core.int,
-      [dartx.type]: core.String
-    }),
-    getters: () => ({
-      [dartx.matchingTarget]: dart.definiteFunctionType(html$.Element, []),
-      [dartx.currentTarget]: dart.definiteFunctionType(html$.EventTarget, []),
-      [dartx.target]: dart.definiteFunctionType(html$.EventTarget, [])
-    }),
-    methods: () => ({
-      [_initEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool]),
-      [dartx.preventDefault]: dart.definiteFunctionType(dart.void, []),
-      [dartx.stopImmediatePropagation]: dart.definiteFunctionType(dart.void, []),
-      [dartx.stopPropagation]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      AT_TARGET: core.int,
-      BUBBLING_PHASE: core.int,
-      CAPTURING_PHASE: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.Event, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.Event, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  html$.Event.AT_TARGET = 2;
-  html$.Event.BUBBLING_PHASE = 3;
-  html$.Event.CAPTURING_PHASE = 1;
-  dart.registerExtension(dart.global.Event, html$.Event);
-  dart.registerExtension(dart.global.InputEvent, html$.Event);
-  dart.defineExtensionNames([
-    'dataLoss',
-    'dataLossMessage',
-    'newVersion',
-    'oldVersion'
-  ]);
-  indexed_db.VersionChangeEvent = class VersionChangeEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return indexed_db.VersionChangeEvent._create_1(type, eventInitDict_1);
-      }
-      return indexed_db.VersionChangeEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new IDBVersionChangeEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new IDBVersionChangeEvent(type);
-    }
-    get [dartx.dataLoss]() {
-      return this.dataLoss;
-    }
-    get [dartx.dataLossMessage]() {
-      return this.dataLossMessage;
-    }
-    get [dartx.newVersion]() {
-      return this.newVersion;
-    }
-    get [dartx.oldVersion]() {
-      return this.oldVersion;
-    }
-  };
-  dart.setSignature(indexed_db.VersionChangeEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(indexed_db.VersionChangeEvent, []),
-      new: dart.definiteFunctionType(indexed_db.VersionChangeEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.dataLoss]: core.String,
-      [dartx.dataLossMessage]: core.String,
-      [dartx.newVersion]: core.int,
-      [dartx.oldVersion]: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(indexed_db.VersionChangeEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(indexed_db.VersionChangeEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.IDBVersionChangeEvent, indexed_db.VersionChangeEvent);
-  dart.copyProperties(html$, {
-    get window() {
-      return window;
-    }
-  });
-  dart.copyProperties(html$, {
-    get document() {
-      return document;
-    }
-  });
-  const _xtag = Symbol('_xtag');
-  const _attributes$ = Symbol('_attributes');
-  const _innerHtml = Symbol('_innerHtml');
-  const _scrollHeight = Symbol('_scrollHeight');
-  const _scrollLeft = Symbol('_scrollLeft');
-  const _scrollTop = Symbol('_scrollTop');
-  const _scrollWidth = Symbol('_scrollWidth');
-  const _childElementCount = Symbol('_childElementCount');
-  const _children = Symbol('_children');
-  const _firstElementChild = Symbol('_firstElementChild');
-  const _lastElementChild = Symbol('_lastElementChild');
-  const _querySelectorAll = Symbol('_querySelectorAll');
-  const _getComputedStyle = Symbol('_getComputedStyle');
-  const _animate = Symbol('_animate');
-  const _localName = Symbol('_localName');
-  const _namespaceUri = Symbol('_namespaceUri');
-  const _scrollIntoView = Symbol('_scrollIntoView');
-  const _scrollIntoViewIfNeeded = Symbol('_scrollIntoViewIfNeeded');
-  const _insertAdjacentText = Symbol('_insertAdjacentText');
-  const _insertAdjacentNode = Symbol('_insertAdjacentNode');
-  const _insertAdjacentHtml = Symbol('_insertAdjacentHtml');
-  const _insertAdjacentElement = Symbol('_insertAdjacentElement');
-  const _canBeUsedToCreateContextualFragment = Symbol('_canBeUsedToCreateContextualFragment');
-  const _cannotBeUsedToCreateContextualFragment = Symbol('_cannotBeUsedToCreateContextualFragment');
-  const _getElementsByTagName = Symbol('_getElementsByTagName');
-  const _hasAttribute = Symbol('_hasAttribute');
-  const _hasAttributeNS = Symbol('_hasAttributeNS');
-  const _removeAttribute = Symbol('_removeAttribute');
-  const _removeAttributeNS = Symbol('_removeAttributeNS');
-  const _scroll_1 = Symbol('_scroll_1');
-  const _scroll_2 = Symbol('_scroll_2');
-  const _scroll_3 = Symbol('_scroll_3');
-  const _scrollBy_1 = Symbol('_scrollBy_1');
-  const _scrollBy_2 = Symbol('_scrollBy_2');
-  const _scrollBy_3 = Symbol('_scrollBy_3');
-  const _scrollTo_1 = Symbol('_scrollTo_1');
-  const _scrollTo_2 = Symbol('_scrollTo_2');
-  const _scrollTo_3 = Symbol('_scrollTo_3');
-  const _removeChild = Symbol('_removeChild');
-  const _replaceChild = Symbol('_replaceChild');
-  const _this = Symbol('_this');
-  const _clearChildren = Symbol('_clearChildren');
-  dart.defineExtensionNames([
-    'nodes',
-    'nodes',
-    'remove',
-    'replaceWith',
-    'insertAllBefore',
-    'toString',
-    'append',
-    'clone',
-    'contains',
-    'hasChildNodes',
-    'insertBefore',
-    'childNodes',
-    'baseUri',
-    'firstChild',
-    'lastChild',
-    'nextNode',
-    'nodeName',
-    'nodeType',
-    'nodeValue',
-    'ownerDocument',
-    'parent',
-    'parentNode',
-    'previousNode',
-    'text'
-  ]);
-  html$.Node = class Node extends html$.EventTarget {
-    _created() {
-      this[dartx.childNodes] = null;
-      this[dartx.baseUri] = null;
-      this[dartx.firstChild] = null;
-      this[dartx.lastChild] = null;
-      this[_localName] = null;
-      this[_namespaceUri] = null;
-      this[dartx.nextNode] = null;
-      this[dartx.nodeName] = null;
-      this[dartx.nodeType] = null;
-      this[dartx.nodeValue] = null;
-      this[dartx.ownerDocument] = null;
-      this[dartx.parent] = null;
-      this[dartx.parentNode] = null;
-      this[dartx.previousNode] = null;
-      this[dartx.text] = null;
-      super._created();
-    }
-    get [dartx.nodes]() {
-      return new html$._ChildNodeListLazy(this);
-    }
-    set [dartx.nodes](value) {
-      let copy = value[dartx.toList]();
-      this[dartx.text] = '';
-      for (let node of copy) {
-        this[dartx.append](node);
-      }
-    }
-    [dartx.remove]() {
-      if (this[dartx.parentNode] != null) {
-        let parent = this[dartx.parentNode];
-        this[dartx.parentNode][_removeChild](this);
-      }
-    }
-    [dartx.replaceWith](otherNode) {
-      try {
-        let parent = this[dartx.parentNode];
-        parent[_replaceChild](otherNode, this);
-      } catch (e) {
-      }
-
-      ;
-      return this;
-    }
-    [dartx.insertAllBefore](newNodes, refChild) {
-      if (html$._ChildNodeListLazy.is(newNodes)) {
-        let otherList = newNodes;
-        if (core.identical(otherList[_this], this)) {
-          dart.throw(new core.ArgumentError(newNodes));
-        }
-        for (let i = 0, len = otherList.length; i < dart.notNull(len); ++i) {
-          this[dartx.insertBefore](otherList[_this][dartx.firstChild], refChild);
-        }
-      } else {
-        for (let node of newNodes) {
-          this[dartx.insertBefore](node, refChild);
-        }
-      }
-    }
-    [_clearChildren]() {
-      while (this[dartx.firstChild] != null) {
-        this[_removeChild](this[dartx.firstChild]);
-      }
-    }
-    [dartx.toString]() {
-      let value = this[dartx.nodeValue];
-      return value == null ? super.toString() : value;
-    }
-    get [dartx.childNodes]() {
-      return this.childNodes;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.baseUri]() {
-      return this.baseURI;
-    }
-    get [dartx.firstChild]() {
-      return this.firstChild;
-    }
-    get [dartx.lastChild]() {
-      return this.lastChild;
-    }
-    get [_localName]() {
-      return this.localName;
-    }
-    get [_namespaceUri]() {
-      return this.namespaceURI;
-    }
-    get [dartx.nextNode]() {
-      return this.nextSibling;
-    }
-    get [dartx.nodeName]() {
-      return this.nodeName;
-    }
-    get [dartx.nodeType]() {
-      return this.nodeType;
-    }
-    get [dartx.nodeValue]() {
-      return this.nodeValue;
-    }
-    get [dartx.ownerDocument]() {
-      return this.ownerDocument;
-    }
-    get [dartx.parent]() {
-      return this.parentElement;
-    }
-    get [dartx.parentNode]() {
-      return this.parentNode;
-    }
-    get [dartx.previousNode]() {
-      return this.previousSibling;
-    }
-    get [dartx.text]() {
-      return this.textContent;
-    }
-    set [dartx.text](value) {
-      this.textContent = value;
-    }
-    [dartx.append](...args) {
-      return this.appendChild.apply(this, args);
-    }
-    [dartx.clone](...args) {
-      return this.cloneNode.apply(this, args);
-    }
-    [dartx.contains](...args) {
-      return this.contains.apply(this, args);
-    }
-    [dartx.hasChildNodes](...args) {
-      return this.hasChildNodes.apply(this, args);
-    }
-    [dartx.insertBefore](...args) {
-      return this.insertBefore.apply(this, args);
-    }
-    [_removeChild](...args) {
-      return this.removeChild.apply(this, args);
-    }
-    [_replaceChild](...args) {
-      return this.replaceChild.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.Node, '_created');
-  dart.setSignature(html$.Node, {
-    constructors: () => ({
-      _created: dart.definiteFunctionType(html$.Node, []),
-      _: dart.definiteFunctionType(html$.Node, [])
-    }),
-    fields: () => ({
-      [dartx.childNodes]: ListOfNode(),
-      [dartx.baseUri]: core.String,
-      [dartx.firstChild]: html$.Node,
-      [dartx.lastChild]: html$.Node,
-      [_localName]: core.String,
-      [_namespaceUri]: core.String,
-      [dartx.nextNode]: html$.Node,
-      [dartx.nodeName]: core.String,
-      [dartx.nodeType]: core.int,
-      [dartx.nodeValue]: core.String,
-      [dartx.ownerDocument]: html$.Document,
-      [dartx.parent]: html$.Element,
-      [dartx.parentNode]: html$.Node,
-      [dartx.previousNode]: html$.Node,
-      [dartx.text]: core.String
-    }),
-    getters: () => ({[dartx.nodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
-    setters: () => ({[dartx.nodes]: dart.definiteFunctionType(dart.void, [IterableOfNode()])}),
-    methods: () => ({
-      [dartx.remove]: dart.definiteFunctionType(dart.void, []),
-      [dartx.replaceWith]: dart.definiteFunctionType(html$.Node, [html$.Node]),
-      [dartx.insertAllBefore]: dart.definiteFunctionType(html$.Node, [IterableOfNode(), html$.Node]),
-      [_clearChildren]: dart.definiteFunctionType(dart.void, []),
-      [dartx.append]: dart.definiteFunctionType(html$.Node, [html$.Node]),
-      [dartx.clone]: dart.definiteFunctionType(html$.Node, [core.bool]),
-      [dartx.contains]: dart.definiteFunctionType(core.bool, [html$.Node]),
-      [dartx.hasChildNodes]: dart.definiteFunctionType(core.bool, []),
-      [dartx.insertBefore]: dart.definiteFunctionType(html$.Node, [html$.Node, html$.Node]),
-      [_removeChild]: dart.definiteFunctionType(html$.Node, [html$.Node]),
-      [_replaceChild]: dart.definiteFunctionType(html$.Node, [html$.Node, html$.Node])
-    }),
-    sfields: () => ({
-      ATTRIBUTE_NODE: core.int,
-      CDATA_SECTION_NODE: core.int,
-      COMMENT_NODE: core.int,
-      DOCUMENT_FRAGMENT_NODE: core.int,
-      DOCUMENT_NODE: core.int,
-      DOCUMENT_TYPE_NODE: core.int,
-      ELEMENT_NODE: core.int,
-      ENTITY_NODE: core.int,
-      ENTITY_REFERENCE_NODE: core.int,
-      NOTATION_NODE: core.int,
-      PROCESSING_INSTRUCTION_NODE: core.int,
-      TEXT_NODE: core.int
-    })
-  });
-  html$.Node.ATTRIBUTE_NODE = 2;
-  html$.Node.CDATA_SECTION_NODE = 4;
-  html$.Node.COMMENT_NODE = 8;
-  html$.Node.DOCUMENT_FRAGMENT_NODE = 11;
-  html$.Node.DOCUMENT_NODE = 9;
-  html$.Node.DOCUMENT_TYPE_NODE = 10;
-  html$.Node.ELEMENT_NODE = 1;
-  html$.Node.ENTITY_NODE = 6;
-  html$.Node.ENTITY_REFERENCE_NODE = 5;
-  html$.Node.NOTATION_NODE = 12;
-  html$.Node.PROCESSING_INSTRUCTION_NODE = 7;
-  html$.Node.TEXT_NODE = 3;
-  dart.registerExtension(dart.global.Node, html$.Node);
-  dart.defineExtensionNames([
-    'attributes',
-    'attributes',
-    'children',
-    'children',
-    'querySelectorAll',
-    'query',
-    'queryAll',
-    'classes',
-    'classes',
-    'dataset',
-    'dataset',
-    'getNamespacedAttributes',
-    'getComputedStyle',
-    'client',
-    'offset',
-    'appendText',
-    'appendHtml',
-    'attached',
-    'detached',
-    'enteredView',
-    'leftView',
-    'animate',
-    'attributeChanged',
-    'xtag',
-    'xtag',
-    'localName',
-    'namespaceUri',
-    'toString',
-    'scrollIntoView',
-    'insertAdjacentText',
-    'insertAdjacentHtml',
-    'insertAdjacentElement',
-    'matches',
-    'matchesWithAncestors',
-    'createShadowRoot',
-    'shadowRoot',
-    'contentEdge',
-    'paddingEdge',
-    'borderEdge',
-    'marginEdge',
-    'documentOffset',
-    'offsetTo',
-    'createFragment',
-    'innerHtml',
-    'setInnerHtml',
-    'innerHtml',
-    'on',
-    'offsetHeight',
-    'offsetLeft',
-    'offsetTop',
-    'offsetWidth',
-    'scrollHeight',
-    'scrollLeft',
-    'scrollLeft',
-    'scrollTop',
-    'scrollTop',
-    'scrollWidth',
-    'isContentEditable',
-    'blur',
-    'click',
-    'focus',
-    'outerHtml',
-    'closest',
-    'getAnimations',
-    'getAttribute',
-    'getAttributeNS',
-    'getBoundingClientRect',
-    'getClientRects',
-    'getDestinationInsertionPoints',
-    'getElementsByClassName',
-    'requestFullscreen',
-    'requestPointerLock',
-    'scroll',
-    'scrollBy',
-    'scrollTo',
-    'setAttribute',
-    'setAttributeNS',
-    'after',
-    'before',
-    'querySelector',
-    'onAbort',
-    'onBeforeCopy',
-    'onBeforeCut',
-    'onBeforePaste',
-    'onBlur',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onChange',
-    'onClick',
-    'onContextMenu',
-    'onCopy',
-    'onCut',
-    'onDoubleClick',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onDurationChange',
-    'onEmptied',
-    'onEnded',
-    'onError',
-    'onFocus',
-    'onInput',
-    'onInvalid',
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-    'onLoad',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-    'onMouseWheel',
-    'onPaste',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onRateChange',
-    'onReset',
-    'onResize',
-    'onScroll',
-    'onSearch',
-    'onSeeked',
-    'onSeeking',
-    'onSelect',
-    'onSelectStart',
-    'onStalled',
-    'onSubmit',
-    'onSuspend',
-    'onTimeUpdate',
-    'onTouchCancel',
-    'onTouchEnd',
-    'onTouchEnter',
-    'onTouchLeave',
-    'onTouchMove',
-    'onTouchStart',
-    'onTransitionEnd',
-    'onVolumeChange',
-    'onWaiting',
-    'onFullscreenChange',
-    'onFullscreenError',
-    'offsetParent',
-    'contentEditable',
-    'contextMenu',
-    'dir',
-    'draggable',
-    'hidden',
-    'lang',
-    'spellcheck',
-    'style',
-    'tabIndex',
-    'title',
-    'translate',
-    'dropzone',
-    'className',
-    'clientHeight',
-    'clientLeft',
-    'clientTop',
-    'clientWidth',
-    'computedName',
-    'computedRole',
-    'id',
-    'tagName',
-    'nextElementSibling',
-    'previousElementSibling'
-  ]);
-  html$.Element = class Element extends html$.Node {
-    static html(html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      let fragment = html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-      return html$.Element._check(fragment[dartx.nodes][dartx.where](dart.fn(e => html$.Element.is(e), NodeTobool$()))[dartx.single]);
-    }
-    created() {
-      this[_xtag] = null;
-      this[dartx.offsetParent] = null;
-      this[dartx.contentEditable] = null;
-      this[dartx.contextMenu] = null;
-      this[dartx.dir] = null;
-      this[dartx.draggable] = null;
-      this[dartx.hidden] = null;
-      this[dartx.lang] = null;
-      this[dartx.spellcheck] = null;
-      this[dartx.style] = null;
-      this[dartx.tabIndex] = null;
-      this[dartx.title] = null;
-      this[dartx.translate] = null;
-      this[dartx.dropzone] = null;
-      this[_attributes$] = null;
-      this[dartx.className] = null;
-      this[dartx.clientHeight] = null;
-      this[dartx.clientLeft] = null;
-      this[dartx.clientTop] = null;
-      this[dartx.clientWidth] = null;
-      this[dartx.computedName] = null;
-      this[dartx.computedRole] = null;
-      this[dartx.id] = null;
-      this[_innerHtml] = null;
-      this[_scrollHeight] = null;
-      this[_scrollLeft] = null;
-      this[_scrollTop] = null;
-      this[_scrollWidth] = null;
-      this[dartx.tagName] = null;
-      this[dartx.nextElementSibling] = null;
-      this[dartx.previousElementSibling] = null;
-      this[_childElementCount] = null;
-      this[_children] = null;
-      this[_firstElementChild] = null;
-      this[_lastElementChild] = null;
-      super._created();
-    }
-    static tag(tag, typeExtention) {
-      if (typeExtention === void 0) typeExtention = null;
-      return html$.Element._check(html$._ElementFactoryProvider.createElement_tag(tag, typeExtention));
-    }
-    static a() {
-      return html$.Element.tag('a');
-    }
-    static article() {
-      return html$.Element.tag('article');
-    }
-    static aside() {
-      return html$.Element.tag('aside');
-    }
-    static audio() {
-      return html$.Element.tag('audio');
-    }
-    static br() {
-      return html$.Element.tag('br');
-    }
-    static canvas() {
-      return html$.Element.tag('canvas');
-    }
-    static div() {
-      return html$.Element.tag('div');
-    }
-    static footer() {
-      return html$.Element.tag('footer');
-    }
-    static header() {
-      return html$.Element.tag('header');
-    }
-    static hr() {
-      return html$.Element.tag('hr');
-    }
-    static iframe() {
-      return html$.Element.tag('iframe');
-    }
-    static img() {
-      return html$.Element.tag('img');
-    }
-    static li() {
-      return html$.Element.tag('li');
-    }
-    static nav() {
-      return html$.Element.tag('nav');
-    }
-    static ol() {
-      return html$.Element.tag('ol');
-    }
-    static option() {
-      return html$.Element.tag('option');
-    }
-    static p() {
-      return html$.Element.tag('p');
-    }
-    static pre() {
-      return html$.Element.tag('pre');
-    }
-    static section() {
-      return html$.Element.tag('section');
-    }
-    static select() {
-      return html$.Element.tag('select');
-    }
-    static span() {
-      return html$.Element.tag('span');
-    }
-    static svg() {
-      return html$.Element.tag('svg');
-    }
-    static table() {
-      return html$.Element.tag('table');
-    }
-    static td() {
-      return html$.Element.tag('td');
-    }
-    static textarea() {
-      return html$.Element.tag('textarea');
-    }
-    static th() {
-      return html$.Element.tag('th');
-    }
-    static tr() {
-      return html$.Element.tag('tr');
-    }
-    static ul() {
-      return html$.Element.tag('ul');
-    }
-    static video() {
-      return html$.Element.tag('video');
-    }
-    get [dartx.attributes]() {
-      return new html$._ElementAttributeMap(this);
-    }
-    set [dartx.attributes](value) {
-      let attributes = this[dartx.attributes];
-      attributes[dartx.clear]();
-      for (let key of value[dartx.keys]) {
-        attributes[dartx._set](key, value[dartx._get](key));
-      }
-    }
-    get [dartx.children]() {
-      return new html$._ChildrenElementList._wrap(this);
-    }
-    set [dartx.children](value) {
-      let copy = value[dartx.toList]();
-      let children = this[dartx.children];
-      children[dartx.clear]();
-      children[dartx.addAll](copy);
-    }
-    [dartx.querySelectorAll](T) {
-      return selectors => {
-        return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
-      };
-    }
-    [dartx.query](relativeSelectors) {
-      return this[dartx.querySelector](relativeSelectors);
-    }
-    [dartx.queryAll](T) {
-      return relativeSelectors => {
-        return this[dartx.querySelectorAll](T)(relativeSelectors);
-      };
-    }
-    get [dartx.classes]() {
-      return new html$._ElementCssClassSet(this);
-    }
-    set [dartx.classes](value) {
-      let classSet = this[dartx.classes];
-      classSet.clear();
-      classSet.addAll(value);
-    }
-    get [dartx.dataset]() {
-      return new html$._DataAttributeMap(this[dartx.attributes]);
-    }
-    set [dartx.dataset](value) {
-      let data = this[dartx.dataset];
-      data[dartx.clear]();
-      for (let key of value[dartx.keys]) {
-        data[dartx._set](key, value[dartx._get](key));
-      }
-    }
-    [dartx.getNamespacedAttributes](namespace) {
-      return new html$._NamespacedAttributeMap(this, namespace);
-    }
-    [dartx.getComputedStyle](pseudoElement) {
-      if (pseudoElement === void 0) pseudoElement = null;
-      if (pseudoElement == null) {
-        pseudoElement = '';
-      }
-      return html$.window[_getComputedStyle](this, pseudoElement);
-    }
-    get [dartx.client]() {
-      return new (RectangleOfint())(this[dartx.clientLeft], this[dartx.clientTop], this[dartx.clientWidth], this[dartx.clientHeight]);
-    }
-    get [dartx.offset]() {
-      return new (RectangleOfint())(this[dartx.offsetLeft], this[dartx.offsetTop], this[dartx.offsetWidth], this[dartx.offsetHeight]);
-    }
-    [dartx.appendText](text) {
-      this[dartx.append](html$.Text.new(text));
-    }
-    [dartx.appendHtml](text, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      this[dartx.insertAdjacentHtml]('beforeend', text, {validator: validator, treeSanitizer: treeSanitizer});
-    }
-    static isTagSupported(tag) {
-      let e = html$._ElementFactoryProvider.createElement_tag(tag, null);
-      return html$.Element.is(e) && !html$.UnknownElement.is(e);
-    }
-    [dartx.attached]() {
-      this[dartx.enteredView]();
-    }
-    [dartx.detached]() {
-      this[dartx.leftView]();
-    }
-    [dartx.enteredView]() {}
-    [dartx.leftView]() {}
-    [dartx.animate](frames, timing) {
-      if (timing === void 0) timing = null;
-      if (!core.Iterable.is(frames) || !dart.test(frames[dartx.every](dart.fn(x => core.Map.is(x), MapOfString$dynamicTobool())))) {
-        dart.throw(new core.ArgumentError("The frames parameter should be a List of Maps " + "with frame information"));
-      }
-      let convertedFrames = null;
-      if (core.Iterable.is(frames)) {
-        convertedFrames = frames[dartx.map](dart.dynamic)(html_common.convertDartToNative_Dictionary)[dartx.toList]();
-      } else {
-        convertedFrames = frames;
-      }
-      let convertedTiming = core.Map.is(timing) ? html_common.convertDartToNative_Dictionary(timing) : timing;
-      return convertedTiming == null ? this[_animate](convertedFrames) : this[_animate](convertedFrames, convertedTiming);
-    }
-    [_animate](...args) {
-      return this.animate.apply(this, args);
-    }
-    [dartx.attributeChanged](name, oldValue, newValue) {}
-    get [_xtag]() {
-      return this._xtag;
-    }
-    set [_xtag](value) {
-      this._xtag = value;
-    }
-    get [dartx.xtag]() {
-      return this[_xtag] != null ? this[_xtag] : this;
-    }
-    set [dartx.xtag](value) {
-      this[_xtag] = value;
-    }
-    get [dartx.localName]() {
-      return this[_localName];
-    }
-    get [dartx.namespaceUri]() {
-      return this[_namespaceUri];
-    }
-    [dartx.toString]() {
-      return this[dartx.localName];
-    }
-    [dartx.scrollIntoView](alignment) {
-      if (alignment === void 0) alignment = null;
-      let hasScrollIntoViewIfNeeded = true;
-      hasScrollIntoViewIfNeeded = !!this.scrollIntoViewIfNeeded;
-      if (dart.equals(alignment, html$.ScrollAlignment.TOP)) {
-        this[_scrollIntoView](true);
-      } else if (dart.equals(alignment, html$.ScrollAlignment.BOTTOM)) {
-        this[_scrollIntoView](false);
-      } else if (hasScrollIntoViewIfNeeded) {
-        if (dart.equals(alignment, html$.ScrollAlignment.CENTER)) {
-          this[_scrollIntoViewIfNeeded](true);
-        } else {
-          this[_scrollIntoViewIfNeeded]();
-        }
-      } else {
-        this[_scrollIntoView]();
-      }
-    }
-    static _determineMouseWheelEventType(e) {
-      return 'wheel';
-    }
-    static _determineTransitionEventType(e) {
-      if (dart.test(html_common.Device.isWebKit)) {
-        return 'webkitTransitionEnd';
-      } else if (dart.test(html_common.Device.isOpera)) {
-        return 'oTransitionEnd';
-      }
-      return 'transitionend';
-    }
-    [dartx.insertAdjacentText](where, text) {
-      if (!!this.insertAdjacentText) {
-        this[_insertAdjacentText](where, text);
-      } else {
-        this[_insertAdjacentNode](where, html$.Text.new(text));
-      }
-    }
-    [_insertAdjacentText](...args) {
-      return this.insertAdjacentText.apply(this, args);
-    }
-    [dartx.insertAdjacentHtml](where, html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
-        this[_insertAdjacentHtml](where, html);
-      } else {
-        this[_insertAdjacentNode](where, this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
-      }
-    }
-    [_insertAdjacentHtml](...args) {
-      return this.insertAdjacentHTML.apply(this, args);
-    }
-    [dartx.insertAdjacentElement](where, element) {
-      if (!!this.insertAdjacentElement) {
-        this[_insertAdjacentElement](where, element);
-      } else {
-        this[_insertAdjacentNode](where, element);
-      }
-      return element;
-    }
-    [_insertAdjacentElement](...args) {
-      return this.insertAdjacentElement.apply(this, args);
-    }
-    [_insertAdjacentNode](where, node) {
-      switch (where[dartx.toLowerCase]()) {
-        case 'beforebegin':
-        {
-          this[dartx.parentNode][dartx.insertBefore](node, this);
-          break;
-        }
-        case 'afterbegin':
-        {
-          let first = dart.notNull(this[dartx.nodes][dartx.length]) > 0 ? this[dartx.nodes][dartx._get](0) : null;
-          this[dartx.insertBefore](node, first);
-          break;
-        }
-        case 'beforeend':
-        {
-          this[dartx.append](node);
-          break;
-        }
-        case 'afterend':
-        {
-          this[dartx.parentNode][dartx.insertBefore](node, this[dartx.nextNode]);
-          break;
-        }
-        default:
-        {
-          dart.throw(new core.ArgumentError(dart.str`Invalid position ${where}`));
-        }
-      }
-    }
-    [dartx.matches](selectors) {
-      if (!!this.matches) {
-        return this.matches(selectors);
-      } else if (!!this.webkitMatchesSelector) {
-        return this.webkitMatchesSelector(selectors);
-      } else if (!!this.mozMatchesSelector) {
-        return this.mozMatchesSelector(selectors);
-      } else if (!!this.msMatchesSelector) {
-        return this.msMatchesSelector(selectors);
-      } else if (!!this.oMatchesSelector) {
-        return this.oMatchesSelector(selectors);
-      } else {
-        dart.throw(new core.UnsupportedError("Not supported on this platform"));
-      }
-    }
-    [dartx.matchesWithAncestors](selectors) {
-      let elem = this;
-      do {
-        if (dart.test(elem[dartx.matches](selectors))) return true;
-        elem = elem[dartx.parent];
-      } while (elem != null);
-      return false;
-    }
-    [dartx.createShadowRoot]() {
-      return (this.createShadowRoot || this.webkitCreateShadowRoot).call(this);
-    }
-    get [dartx.shadowRoot]() {
-      return this.shadowRoot || this.webkitShadowRoot;
-    }
-    get [dartx.contentEdge]() {
-      return new html$._ContentCssRect(this);
-    }
-    get [dartx.paddingEdge]() {
-      return new html$._PaddingCssRect(this);
-    }
-    get [dartx.borderEdge]() {
-      return new html$._BorderCssRect(this);
-    }
-    get [dartx.marginEdge]() {
-      return new html$._MarginCssRect(this);
-    }
-    get [dartx.documentOffset]() {
-      return this[dartx.offsetTo](html$.document[dartx.documentElement]);
-    }
-    [dartx.offsetTo](parent) {
-      return html$.Element._offsetToHelper(this, parent);
-    }
-    static _offsetToHelper(current, parent) {
-      let sameAsParent = core.identical(current, parent);
-      let foundAsParent = sameAsParent || parent[dartx.tagName] == 'HTML';
-      if (current == null || sameAsParent) {
-        if (foundAsParent) return new (PointOfnum())(0, 0);
-        dart.throw(new core.ArgumentError("Specified element is not a transitive offset " + "parent of this element."));
-      }
-      let parentOffset = current[dartx.offsetParent];
-      let p = html$.Element._offsetToHelper(parentOffset, parent);
-      return new (PointOfnum())(dart.notNull(p.x) + dart.notNull(current[dartx.offsetLeft]), dart.notNull(p.y) + dart.notNull(current[dartx.offsetTop]));
-    }
-    [dartx.createFragment](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (treeSanitizer == null) {
-        if (validator == null) {
-          if (html$.Element._defaultValidator == null) {
-            html$.Element._defaultValidator = new html$.NodeValidatorBuilder.common();
-          }
-          validator = html$.Element._defaultValidator;
-        }
-        if (html$.Element._defaultSanitizer == null) {
-          html$.Element._defaultSanitizer = new html$._ValidatingTreeSanitizer(validator);
-        } else {
-          html$.Element._defaultSanitizer.validator = validator;
-        }
-        treeSanitizer = html$.Element._defaultSanitizer;
-      } else if (validator != null) {
-        dart.throw(new core.ArgumentError('validator can only be passed if treeSanitizer is null'));
-      }
-      if (html$.Element._parseDocument == null) {
-        html$.Element._parseDocument = html$.document[dartx.implementation][dartx.createHtmlDocument]('');
-        html$.Element._parseRange = html$.Element._parseDocument[dartx.createRange]();
-        let base = html$.BaseElement._check(html$.Element._parseDocument[dartx.createElement]('base'));
-        base[dartx.href] = html$.document[dartx.baseUri];
-        html$.Element._parseDocument[dartx.head][dartx.append](base);
-      }
-      let contextElement = null;
-      if (html$.BodyElement.is(this)) {
-        contextElement = html$.Element._parseDocument[dartx.body];
-      } else {
-        contextElement = html$.Element._parseDocument[dartx.createElement](this[dartx.tagName]);
-        html$.Element._parseDocument[dartx.body][dartx.append](html$.Node._check(contextElement));
-      }
-      let fragment = null;
-      if (dart.test(html$.Range.supportsCreateContextualFragment) && dart.test(this[_canBeUsedToCreateContextualFragment])) {
-        html$.Element._parseRange[dartx.selectNodeContents](html$.Node._check(contextElement));
-        fragment = html$.Element._parseRange[dartx.createContextualFragment](html);
-      } else {
-        dart.dput(contextElement, _innerHtml, html);
-        fragment = html$.Element._parseDocument[dartx.createDocumentFragment]();
-        while (dart.dload(contextElement, 'firstChild') != null) {
-          dart.dsend(fragment, 'append', dart.dload(contextElement, 'firstChild'));
-        }
-      }
-      if (!dart.equals(contextElement, html$.Element._parseDocument[dartx.body])) {
-        dart.dsend(contextElement, 'remove');
-      }
-      treeSanitizer.sanitizeTree(html$.Node._check(fragment));
-      html$.document[dartx.adoptNode](html$.Node._check(fragment));
-      return html$.DocumentFragment._check(fragment);
-    }
-    get [_canBeUsedToCreateContextualFragment]() {
-      return !dart.test(this[_cannotBeUsedToCreateContextualFragment]);
-    }
-    get [_cannotBeUsedToCreateContextualFragment]() {
-      return html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported[dartx.contains](this[dartx.tagName]);
-    }
-    set [dartx.innerHtml](html) {
-      this[dartx.setInnerHtml](html);
-    }
-    [dartx.setInnerHtml](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      this[dartx.text] = null;
-      if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
-        this[_innerHtml] = html;
-      } else {
-        this[dartx.append](this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
-      }
-    }
-    get [dartx.innerHtml]() {
-      return this[_innerHtml];
-    }
-    get [dartx.on]() {
-      return new html$.ElementEvents(this);
-    }
-    static _hasCorruptedAttributes(element) {
-      return (function(element) {
-        if (!(element.attributes instanceof NamedNodeMap)) {
-          return true;
-        }
-        var childNodes = element.childNodes;
-        if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) {
-          return true;
-        }
-        if (element.children) {
-          if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) {
-            return true;
-          }
-        }
-        var length = 0;
-        if (element.children) {
-          length = element.children.length;
-        }
-        for (var i = 0; i < length; i++) {
-          var child = element.children[i];
-          if (child.id == 'attributes' || child.name == 'attributes' || child.id == 'lastChild' || child.name == 'lastChild' || child.id == 'children' || child.name == 'children') {
-            return true;
-          }
-        }
-        return false;
-      })(element);
-    }
-    static _hasCorruptedAttributesAdditionalCheck(element) {
-      return !(element.attributes instanceof NamedNodeMap);
-    }
-    static _safeTagName(element) {
-      let result = 'element tag unavailable';
-      try {
-        if (typeof dart.dload(element, 'tagName') == 'string') {
-          result = core.String._check(dart.dload(element, 'tagName'));
-        }
-      } catch (e) {
-      }
-
-      return result;
-    }
-    get [dartx.offsetParent]() {
-      return this.offsetParent;
-    }
-    get [dartx.offsetHeight]() {
-      return this.offsetHeight[dartx.round]();
-    }
-    get [dartx.offsetLeft]() {
-      return this.offsetLeft[dartx.round]();
-    }
-    get [dartx.offsetTop]() {
-      return this.offsetTop[dartx.round]();
-    }
-    get [dartx.offsetWidth]() {
-      return this.offsetWidth[dartx.round]();
-    }
-    get [dartx.scrollHeight]() {
-      return this.scrollHeight[dartx.round]();
-    }
-    get [dartx.scrollLeft]() {
-      return this.scrollLeft[dartx.round]();
-    }
-    set [dartx.scrollLeft](value) {
-      this.scrollLeft = value[dartx.round]();
-    }
-    get [dartx.scrollTop]() {
-      return this.scrollTop[dartx.round]();
-    }
-    set [dartx.scrollTop](value) {
-      this.scrollTop = value[dartx.round]();
-    }
-    get [dartx.scrollWidth]() {
-      return this.scrollWidth[dartx.round]();
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.contentEditable]() {
-      return this.contentEditable;
-    }
-    set [dartx.contentEditable](value) {
-      this.contentEditable = value;
-    }
-    get [dartx.contextMenu]() {
-      return this.contextMenu;
-    }
-    set [dartx.contextMenu](value) {
-      this.contextMenu = value;
-    }
-    get [dartx.dir]() {
-      return this.dir;
-    }
-    set [dartx.dir](value) {
-      this.dir = value;
-    }
-    get [dartx.draggable]() {
-      return this.draggable;
-    }
-    set [dartx.draggable](value) {
-      this.draggable = value;
-    }
-    get [dartx.hidden]() {
-      return this.hidden;
-    }
-    set [dartx.hidden](value) {
-      this.hidden = value;
-    }
-    get [dartx.isContentEditable]() {
-      return this.isContentEditable;
-    }
-    get [dartx.lang]() {
-      return this.lang;
-    }
-    set [dartx.lang](value) {
-      this.lang = value;
-    }
-    get [dartx.spellcheck]() {
-      return this.spellcheck;
-    }
-    set [dartx.spellcheck](value) {
-      this.spellcheck = value;
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-    get [dartx.tabIndex]() {
-      return this.tabIndex;
-    }
-    set [dartx.tabIndex](value) {
-      this.tabIndex = value;
-    }
-    get [dartx.title]() {
-      return this.title;
-    }
-    set [dartx.title](value) {
-      this.title = value;
-    }
-    get [dartx.translate]() {
-      return this.translate;
-    }
-    set [dartx.translate](value) {
-      this.translate = value;
-    }
-    get [dartx.dropzone]() {
-      return this.webkitdropzone;
-    }
-    set [dartx.dropzone](value) {
-      this.webkitdropzone = value;
-    }
-    [dartx.blur](...args) {
-      return this.blur.apply(this, args);
-    }
-    [dartx.click](...args) {
-      return this.click.apply(this, args);
-    }
-    [dartx.focus](...args) {
-      return this.focus.apply(this, args);
-    }
-    get [_attributes$]() {
-      return this.attributes;
-    }
-    get [dartx.className]() {
-      return this.className;
-    }
-    set [dartx.className](value) {
-      this.className = value;
-    }
-    get [dartx.clientHeight]() {
-      return this.clientHeight;
-    }
-    get [dartx.clientLeft]() {
-      return this.clientLeft;
-    }
-    get [dartx.clientTop]() {
-      return this.clientTop;
-    }
-    get [dartx.clientWidth]() {
-      return this.clientWidth;
-    }
-    get [dartx.computedName]() {
-      return this.computedName;
-    }
-    get [dartx.computedRole]() {
-      return this.computedRole;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    set [dartx.id](value) {
-      this.id = value;
-    }
-    get [_innerHtml]() {
-      return this.innerHTML;
-    }
-    set [_innerHtml](value) {
-      this.innerHTML = value;
-    }
-    get [dartx.outerHtml]() {
-      return this.outerHTML;
-    }
-    get [_scrollHeight]() {
-      return this.scrollHeight;
-    }
-    get [_scrollLeft]() {
-      return this.scrollLeft;
-    }
-    set [_scrollLeft](value) {
-      this.scrollLeft = value;
-    }
-    get [_scrollTop]() {
-      return this.scrollTop;
-    }
-    set [_scrollTop](value) {
-      this.scrollTop = value;
-    }
-    get [_scrollWidth]() {
-      return this.scrollWidth;
-    }
-    get [dartx.tagName]() {
-      return this.tagName;
-    }
-    [dartx.closest](...args) {
-      return this.closest.apply(this, args);
-    }
-    [dartx.getAnimations](...args) {
-      return this.getAnimations.apply(this, args);
-    }
-    [dartx.getAttribute](...args) {
-      return this.getAttribute.apply(this, args);
-    }
-    [dartx.getAttributeNS](...args) {
-      return this.getAttributeNS.apply(this, args);
-    }
-    [dartx.getBoundingClientRect](...args) {
-      return this.getBoundingClientRect.apply(this, args);
-    }
-    [dartx.getClientRects](...args) {
-      return this.getClientRects.apply(this, args);
-    }
-    [dartx.getDestinationInsertionPoints](...args) {
-      return this.getDestinationInsertionPoints.apply(this, args);
-    }
-    [dartx.getElementsByClassName](...args) {
-      return this.getElementsByClassName.apply(this, args);
-    }
-    [_getElementsByTagName](...args) {
-      return this.getElementsByTagName.apply(this, args);
-    }
-    [_hasAttribute](...args) {
-      return this.hasAttribute.apply(this, args);
-    }
-    [_hasAttributeNS](...args) {
-      return this.hasAttributeNS.apply(this, args);
-    }
-    [_removeAttribute](...args) {
-      return this.removeAttribute.apply(this, args);
-    }
-    [_removeAttributeNS](...args) {
-      return this.removeAttributeNS.apply(this, args);
-    }
-    [dartx.requestFullscreen](...args) {
-      return this.requestFullscreen.apply(this, args);
-    }
-    [dartx.requestPointerLock](...args) {
-      return this.requestPointerLock.apply(this, args);
-    }
-    [dartx.scroll](options_OR_x, y) {
-      if (options_OR_x === void 0) options_OR_x = null;
-      if (y === void 0) y = null;
-      if (options_OR_x == null && y == null) {
-        this[_scroll_1]();
-        return;
-      }
-      if (core.Map.is(options_OR_x) && y == null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
-        this[_scroll_2](options_1);
-        return;
-      }
-      if (y != null && typeof options_OR_x == 'number') {
-        this[_scroll_3](options_OR_x, y);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_scroll_1](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [_scroll_2](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [_scroll_3](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [dartx.scrollBy](options_OR_x, y) {
-      if (options_OR_x === void 0) options_OR_x = null;
-      if (y === void 0) y = null;
-      if (options_OR_x == null && y == null) {
-        this[_scrollBy_1]();
-        return;
-      }
-      if (core.Map.is(options_OR_x) && y == null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
-        this[_scrollBy_2](options_1);
-        return;
-      }
-      if (y != null && typeof options_OR_x == 'number') {
-        this[_scrollBy_3](options_OR_x, y);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_scrollBy_1](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollBy_2](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollBy_3](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollIntoView](...args) {
-      return this.scrollIntoView.apply(this, args);
-    }
-    [_scrollIntoViewIfNeeded](...args) {
-      return this.scrollIntoViewIfNeeded.apply(this, args);
-    }
-    [dartx.scrollTo](options_OR_x, y) {
-      if (options_OR_x === void 0) options_OR_x = null;
-      if (y === void 0) y = null;
-      if (options_OR_x == null && y == null) {
-        this[_scrollTo_1]();
-        return;
-      }
-      if (core.Map.is(options_OR_x) && y == null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
-        this[_scrollTo_2](options_1);
-        return;
-      }
-      if (y != null && typeof options_OR_x == 'number') {
-        this[_scrollTo_3](options_OR_x, y);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_scrollTo_1](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [_scrollTo_2](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [_scrollTo_3](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [dartx.setAttribute](...args) {
-      return this.setAttribute.apply(this, args);
-    }
-    [dartx.setAttributeNS](...args) {
-      return this.setAttributeNS.apply(this, args);
-    }
-    [dartx.after](...args) {
-      return this.after.apply(this, args);
-    }
-    [dartx.before](...args) {
-      return this.before.apply(this, args);
-    }
-    get [dartx.nextElementSibling]() {
-      return this.nextElementSibling;
-    }
-    get [dartx.previousElementSibling]() {
-      return this.previousElementSibling;
-    }
-    get [_childElementCount]() {
-      return this.childElementCount;
-    }
-    get [_children]() {
-      return this.children;
-    }
-    get [_firstElementChild]() {
-      return this.firstElementChild;
-    }
-    get [_lastElementChild]() {
-      return this.lastElementChild;
-    }
-    [dartx.querySelector](...args) {
-      return this.querySelector.apply(this, args);
-    }
-    [_querySelectorAll](...args) {
-      return this.querySelectorAll.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return html$.Element.abortEvent.forElement(this);
-    }
-    get [dartx.onBeforeCopy]() {
-      return html$.Element.beforeCopyEvent.forElement(this);
-    }
-    get [dartx.onBeforeCut]() {
-      return html$.Element.beforeCutEvent.forElement(this);
-    }
-    get [dartx.onBeforePaste]() {
-      return html$.Element.beforePasteEvent.forElement(this);
-    }
-    get [dartx.onBlur]() {
-      return html$.Element.blurEvent.forElement(this);
-    }
-    get [dartx.onCanPlay]() {
-      return html$.Element.canPlayEvent.forElement(this);
-    }
-    get [dartx.onCanPlayThrough]() {
-      return html$.Element.canPlayThroughEvent.forElement(this);
-    }
-    get [dartx.onChange]() {
-      return html$.Element.changeEvent.forElement(this);
-    }
-    get [dartx.onClick]() {
-      return html$.Element.clickEvent.forElement(this);
-    }
-    get [dartx.onContextMenu]() {
-      return html$.Element.contextMenuEvent.forElement(this);
-    }
-    get [dartx.onCopy]() {
-      return html$.Element.copyEvent.forElement(this);
-    }
-    get [dartx.onCut]() {
-      return html$.Element.cutEvent.forElement(this);
-    }
-    get [dartx.onDoubleClick]() {
-      return html$.Element.doubleClickEvent.forElement(this);
-    }
-    get [dartx.onDrag]() {
-      return html$.Element.dragEvent.forElement(this);
-    }
-    get [dartx.onDragEnd]() {
-      return html$.Element.dragEndEvent.forElement(this);
-    }
-    get [dartx.onDragEnter]() {
-      return html$.Element.dragEnterEvent.forElement(this);
-    }
-    get [dartx.onDragLeave]() {
-      return html$.Element.dragLeaveEvent.forElement(this);
-    }
-    get [dartx.onDragOver]() {
-      return html$.Element.dragOverEvent.forElement(this);
-    }
-    get [dartx.onDragStart]() {
-      return html$.Element.dragStartEvent.forElement(this);
-    }
-    get [dartx.onDrop]() {
-      return html$.Element.dropEvent.forElement(this);
-    }
-    get [dartx.onDurationChange]() {
-      return html$.Element.durationChangeEvent.forElement(this);
-    }
-    get [dartx.onEmptied]() {
-      return html$.Element.emptiedEvent.forElement(this);
-    }
-    get [dartx.onEnded]() {
-      return html$.Element.endedEvent.forElement(this);
-    }
-    get [dartx.onError]() {
-      return html$.Element.errorEvent.forElement(this);
-    }
-    get [dartx.onFocus]() {
-      return html$.Element.focusEvent.forElement(this);
-    }
-    get [dartx.onInput]() {
-      return html$.Element.inputEvent.forElement(this);
-    }
-    get [dartx.onInvalid]() {
-      return html$.Element.invalidEvent.forElement(this);
-    }
-    get [dartx.onKeyDown]() {
-      return html$.Element.keyDownEvent.forElement(this);
-    }
-    get [dartx.onKeyPress]() {
-      return html$.Element.keyPressEvent.forElement(this);
-    }
-    get [dartx.onKeyUp]() {
-      return html$.Element.keyUpEvent.forElement(this);
-    }
-    get [dartx.onLoad]() {
-      return html$.Element.loadEvent.forElement(this);
-    }
-    get [dartx.onLoadedData]() {
-      return html$.Element.loadedDataEvent.forElement(this);
-    }
-    get [dartx.onLoadedMetadata]() {
-      return html$.Element.loadedMetadataEvent.forElement(this);
-    }
-    get [dartx.onMouseDown]() {
-      return html$.Element.mouseDownEvent.forElement(this);
-    }
-    get [dartx.onMouseEnter]() {
-      return html$.Element.mouseEnterEvent.forElement(this);
-    }
-    get [dartx.onMouseLeave]() {
-      return html$.Element.mouseLeaveEvent.forElement(this);
-    }
-    get [dartx.onMouseMove]() {
-      return html$.Element.mouseMoveEvent.forElement(this);
-    }
-    get [dartx.onMouseOut]() {
-      return html$.Element.mouseOutEvent.forElement(this);
-    }
-    get [dartx.onMouseOver]() {
-      return html$.Element.mouseOverEvent.forElement(this);
-    }
-    get [dartx.onMouseUp]() {
-      return html$.Element.mouseUpEvent.forElement(this);
-    }
-    get [dartx.onMouseWheel]() {
-      return html$.Element.mouseWheelEvent.forElement(this);
-    }
-    get [dartx.onPaste]() {
-      return html$.Element.pasteEvent.forElement(this);
-    }
-    get [dartx.onPause]() {
-      return html$.Element.pauseEvent.forElement(this);
-    }
-    get [dartx.onPlay]() {
-      return html$.Element.playEvent.forElement(this);
-    }
-    get [dartx.onPlaying]() {
-      return html$.Element.playingEvent.forElement(this);
-    }
-    get [dartx.onRateChange]() {
-      return html$.Element.rateChangeEvent.forElement(this);
-    }
-    get [dartx.onReset]() {
-      return html$.Element.resetEvent.forElement(this);
-    }
-    get [dartx.onResize]() {
-      return html$.Element.resizeEvent.forElement(this);
-    }
-    get [dartx.onScroll]() {
-      return html$.Element.scrollEvent.forElement(this);
-    }
-    get [dartx.onSearch]() {
-      return html$.Element.searchEvent.forElement(this);
-    }
-    get [dartx.onSeeked]() {
-      return html$.Element.seekedEvent.forElement(this);
-    }
-    get [dartx.onSeeking]() {
-      return html$.Element.seekingEvent.forElement(this);
-    }
-    get [dartx.onSelect]() {
-      return html$.Element.selectEvent.forElement(this);
-    }
-    get [dartx.onSelectStart]() {
-      return html$.Element.selectStartEvent.forElement(this);
-    }
-    get [dartx.onStalled]() {
-      return html$.Element.stalledEvent.forElement(this);
-    }
-    get [dartx.onSubmit]() {
-      return html$.Element.submitEvent.forElement(this);
-    }
-    get [dartx.onSuspend]() {
-      return html$.Element.suspendEvent.forElement(this);
-    }
-    get [dartx.onTimeUpdate]() {
-      return html$.Element.timeUpdateEvent.forElement(this);
-    }
-    get [dartx.onTouchCancel]() {
-      return html$.Element.touchCancelEvent.forElement(this);
-    }
-    get [dartx.onTouchEnd]() {
-      return html$.Element.touchEndEvent.forElement(this);
-    }
-    get [dartx.onTouchEnter]() {
-      return html$.Element.touchEnterEvent.forElement(this);
-    }
-    get [dartx.onTouchLeave]() {
-      return html$.Element.touchLeaveEvent.forElement(this);
-    }
-    get [dartx.onTouchMove]() {
-      return html$.Element.touchMoveEvent.forElement(this);
-    }
-    get [dartx.onTouchStart]() {
-      return html$.Element.touchStartEvent.forElement(this);
-    }
-    get [dartx.onTransitionEnd]() {
-      return html$.Element.transitionEndEvent.forElement(this);
-    }
-    get [dartx.onVolumeChange]() {
-      return html$.Element.volumeChangeEvent.forElement(this);
-    }
-    get [dartx.onWaiting]() {
-      return html$.Element.waitingEvent.forElement(this);
-    }
-    get [dartx.onFullscreenChange]() {
-      return html$.Element.fullscreenChangeEvent.forElement(this);
-    }
-    get [dartx.onFullscreenError]() {
-      return html$.Element.fullscreenErrorEvent.forElement(this);
-    }
-  };
-  dart.defineNamedConstructor(html$.Element, 'created');
-  html$.Element[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.GlobalEventHandlers, html$.ParentNode, html$.ChildNode];
-  dart.setSignature(html$.Element, {
-    constructors: () => ({
-      html: dart.definiteFunctionType(html$.Element, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      created: dart.definiteFunctionType(html$.Element, []),
-      tag: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
-      a: dart.definiteFunctionType(html$.Element, []),
-      article: dart.definiteFunctionType(html$.Element, []),
-      aside: dart.definiteFunctionType(html$.Element, []),
-      audio: dart.definiteFunctionType(html$.Element, []),
-      br: dart.definiteFunctionType(html$.Element, []),
-      canvas: dart.definiteFunctionType(html$.Element, []),
-      div: dart.definiteFunctionType(html$.Element, []),
-      footer: dart.definiteFunctionType(html$.Element, []),
-      header: dart.definiteFunctionType(html$.Element, []),
-      hr: dart.definiteFunctionType(html$.Element, []),
-      iframe: dart.definiteFunctionType(html$.Element, []),
-      img: dart.definiteFunctionType(html$.Element, []),
-      li: dart.definiteFunctionType(html$.Element, []),
-      nav: dart.definiteFunctionType(html$.Element, []),
-      ol: dart.definiteFunctionType(html$.Element, []),
-      option: dart.definiteFunctionType(html$.Element, []),
-      p: dart.definiteFunctionType(html$.Element, []),
-      pre: dart.definiteFunctionType(html$.Element, []),
-      section: dart.definiteFunctionType(html$.Element, []),
-      select: dart.definiteFunctionType(html$.Element, []),
-      span: dart.definiteFunctionType(html$.Element, []),
-      svg: dart.definiteFunctionType(html$.Element, []),
-      table: dart.definiteFunctionType(html$.Element, []),
-      td: dart.definiteFunctionType(html$.Element, []),
-      textarea: dart.definiteFunctionType(html$.Element, []),
-      th: dart.definiteFunctionType(html$.Element, []),
-      tr: dart.definiteFunctionType(html$.Element, []),
-      ul: dart.definiteFunctionType(html$.Element, []),
-      video: dart.definiteFunctionType(html$.Element, []),
-      _: dart.definiteFunctionType(html$.Element, [])
-    }),
-    fields: () => ({
-      [_xtag]: html$.Element,
-      [dartx.offsetParent]: html$.Element,
-      [dartx.contentEditable]: core.String,
-      [dartx.contextMenu]: html$.MenuElement,
-      [dartx.dir]: core.String,
-      [dartx.draggable]: core.bool,
-      [dartx.hidden]: core.bool,
-      [dartx.lang]: core.String,
-      [dartx.spellcheck]: core.bool,
-      [dartx.style]: html$.CssStyleDeclaration,
-      [dartx.tabIndex]: core.int,
-      [dartx.title]: core.String,
-      [dartx.translate]: core.bool,
-      [dartx.dropzone]: core.String,
-      [_attributes$]: html$._NamedNodeMap,
-      [dartx.className]: core.String,
-      [dartx.clientHeight]: core.int,
-      [dartx.clientLeft]: core.int,
-      [dartx.clientTop]: core.int,
-      [dartx.clientWidth]: core.int,
-      [dartx.computedName]: core.String,
-      [dartx.computedRole]: core.String,
-      [dartx.id]: core.String,
-      [_innerHtml]: core.String,
-      [_scrollHeight]: core.int,
-      [_scrollLeft]: core.num,
-      [_scrollTop]: core.num,
-      [_scrollWidth]: core.int,
-      [dartx.tagName]: core.String,
-      [dartx.nextElementSibling]: html$.Element,
-      [dartx.previousElementSibling]: html$.Element,
-      [_childElementCount]: core.int,
-      [_children]: ListOfNode(),
-      [_firstElementChild]: html$.Element,
-      [_lastElementChild]: html$.Element
-    }),
-    getters: () => ({
-      [dartx.attributes]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-      [dartx.children]: dart.definiteFunctionType(core.List$(html$.Element), []),
-      [dartx.classes]: dart.definiteFunctionType(html$.CssClassSet, []),
-      [dartx.dataset]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-      [dartx.client]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
-      [dartx.offset]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
-      [dartx.xtag]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.localName]: dart.definiteFunctionType(core.String, []),
-      [dartx.namespaceUri]: dart.definiteFunctionType(core.String, []),
-      [dartx.shadowRoot]: dart.definiteFunctionType(html$.ShadowRoot, []),
-      [dartx.contentEdge]: dart.definiteFunctionType(html$.CssRect, []),
-      [dartx.paddingEdge]: dart.definiteFunctionType(html$.CssRect, []),
-      [dartx.borderEdge]: dart.definiteFunctionType(html$.CssRect, []),
-      [dartx.marginEdge]: dart.definiteFunctionType(html$.CssRect, []),
-      [dartx.documentOffset]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [_canBeUsedToCreateContextualFragment]: dart.definiteFunctionType(core.bool, []),
-      [_cannotBeUsedToCreateContextualFragment]: dart.definiteFunctionType(core.bool, []),
-      [dartx.innerHtml]: dart.definiteFunctionType(core.String, []),
-      [dartx.on]: dart.definiteFunctionType(html$.ElementEvents, []),
-      [dartx.offsetHeight]: dart.definiteFunctionType(core.int, []),
-      [dartx.offsetLeft]: dart.definiteFunctionType(core.int, []),
-      [dartx.offsetTop]: dart.definiteFunctionType(core.int, []),
-      [dartx.offsetWidth]: dart.definiteFunctionType(core.int, []),
-      [dartx.scrollHeight]: dart.definiteFunctionType(core.int, []),
-      [dartx.scrollLeft]: dart.definiteFunctionType(core.int, []),
-      [dartx.scrollTop]: dart.definiteFunctionType(core.int, []),
-      [dartx.scrollWidth]: dart.definiteFunctionType(core.int, []),
-      [dartx.isContentEditable]: dart.definiteFunctionType(core.bool, []),
-      [dartx.outerHtml]: dart.definiteFunctionType(core.String, []),
-      [dartx.onAbort]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onBeforeCopy]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onBeforeCut]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onBeforePaste]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onBlur]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onCanPlay]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onCanPlayThrough]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onClick]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onContextMenu]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onCopy]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
-      [dartx.onCut]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
-      [dartx.onDoubleClick]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onDrag]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDragEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDragEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDragLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDragOver]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDragStart]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDrop]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onDurationChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onEmptied]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onEnded]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onFocus]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onInput]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onInvalid]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onKeyDown]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
-      [dartx.onKeyPress]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
-      [dartx.onKeyUp]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
-      [dartx.onLoad]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onLoadedData]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onLoadedMetadata]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onMouseDown]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseMove]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseOut]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseOver]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseUp]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-      [dartx.onMouseWheel]: dart.definiteFunctionType(html$.ElementStream$(html$.WheelEvent), []),
-      [dartx.onPaste]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
-      [dartx.onPause]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onPlay]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onPlaying]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onRateChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onReset]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onResize]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onScroll]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSearch]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSeeked]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSeeking]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSelect]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSelectStart]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onStalled]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSubmit]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onSuspend]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onTimeUpdate]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onTouchCancel]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-      [dartx.onTouchEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-      [dartx.onTouchEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-      [dartx.onTouchLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-      [dartx.onTouchMove]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-      [dartx.onTouchStart]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-      [dartx.onTransitionEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.TransitionEvent), []),
-      [dartx.onVolumeChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onWaiting]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onFullscreenChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onFullscreenError]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
-    }),
-    setters: () => ({
-      [dartx.attributes]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
-      [dartx.children]: dart.definiteFunctionType(dart.void, [ListOfElement()]),
-      [dartx.classes]: dart.definiteFunctionType(dart.void, [IterableOfString()]),
-      [dartx.dataset]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
-      [dartx.xtag]: dart.definiteFunctionType(dart.void, [html$.Element]),
-      [dartx.innerHtml]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.scrollLeft]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.scrollTop]: dart.definiteFunctionType(dart.void, [core.int])
-    }),
-    methods: () => ({
-      [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
-      [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
-      [dartx.getNamespacedAttributes]: dart.definiteFunctionType(core.Map$(core.String, core.String), [core.String]),
-      [dartx.getComputedStyle]: dart.definiteFunctionType(html$.CssStyleDeclaration, [], [core.String]),
-      [dartx.appendText]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      [dartx.attached]: dart.definiteFunctionType(dart.void, []),
-      [dartx.detached]: dart.definiteFunctionType(dart.void, []),
-      [dartx.enteredView]: dart.definiteFunctionType(dart.void, []),
-      [dartx.leftView]: dart.definiteFunctionType(dart.void, []),
-      [dartx.animate]: dart.definiteFunctionType(html$.Animation, [IterableOfMapOfString$dynamic()], [dart.dynamic]),
-      [_animate]: dart.definiteFunctionType(html$.Animation, [core.Object], [dart.dynamic]),
-      [dartx.attributeChanged]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.scrollIntoView]: dart.definiteFunctionType(dart.void, [], [html$.ScrollAlignment]),
-      [dartx.insertAdjacentText]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [_insertAdjacentText]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      [_insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.insertAdjacentElement]: dart.definiteFunctionType(html$.Element, [core.String, html$.Element]),
-      [_insertAdjacentElement]: dart.definiteFunctionType(dart.void, [core.String, html$.Element]),
-      [_insertAdjacentNode]: dart.definiteFunctionType(dart.void, [core.String, html$.Node]),
-      [dartx.matches]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.matchesWithAncestors]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.createShadowRoot]: dart.definiteFunctionType(html$.ShadowRoot, []),
-      [dartx.offsetTo]: dart.definiteFunctionType(math.Point$(core.num), [html$.Element]),
-      [dartx.createFragment]: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      [dartx.blur]: dart.definiteFunctionType(dart.void, []),
-      [dartx.click]: dart.definiteFunctionType(dart.void, []),
-      [dartx.focus]: dart.definiteFunctionType(dart.void, []),
-      [dartx.closest]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html$.Animation), []),
-      [dartx.getAttribute]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.getAttributeNS]: dart.definiteFunctionType(core.String, [core.String, core.String]),
-      [dartx.getBoundingClientRect]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
-      [dartx.getClientRects]: dart.definiteFunctionType(core.List$(math.Rectangle$(core.num)), []),
-      [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html$.Node), []),
-      [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
-      [_getElementsByTagName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
-      [_hasAttribute]: dart.definiteFunctionType(core.bool, [core.String]),
-      [_hasAttributeNS]: dart.definiteFunctionType(core.bool, [core.String, core.String]),
-      [_removeAttribute]: dart.definiteFunctionType(dart.void, [core.String]),
-      [_removeAttributeNS]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.requestFullscreen]: dart.definiteFunctionType(dart.void, []),
-      [dartx.requestPointerLock]: dart.definiteFunctionType(dart.void, []),
-      [dartx.scroll]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.num]),
-      [_scroll_1]: dart.definiteFunctionType(dart.void, []),
-      [_scroll_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_scroll_3]: dart.definiteFunctionType(dart.void, [core.num, dart.dynamic]),
-      [dartx.scrollBy]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.num]),
-      [_scrollBy_1]: dart.definiteFunctionType(dart.void, []),
-      [_scrollBy_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_scrollBy_3]: dart.definiteFunctionType(dart.void, [core.num, dart.dynamic]),
-      [_scrollIntoView]: dart.definiteFunctionType(dart.void, [], [core.bool]),
-      [_scrollIntoViewIfNeeded]: dart.definiteFunctionType(dart.void, [], [core.bool]),
-      [dartx.scrollTo]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.num]),
-      [_scrollTo_1]: dart.definiteFunctionType(dart.void, []),
-      [_scrollTo_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_scrollTo_3]: dart.definiteFunctionType(dart.void, [core.num, dart.dynamic]),
-      [dartx.setAttribute]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.setAttributeNS]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.after]: dart.definiteFunctionType(dart.void, [core.Object]),
-      [dartx.before]: dart.definiteFunctionType(dart.void, [core.Object]),
-      [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String])
-    }),
-    sfields: () => ({
-      mouseWheelEvent: EventStreamProviderOfWheelEvent(),
-      transitionEndEvent: EventStreamProviderOfTransitionEvent(),
-      _parseDocument: html$.HtmlDocument,
-      _parseRange: html$.Range,
-      _defaultValidator: html$.NodeValidatorBuilder,
-      _defaultSanitizer: html$._ValidatingTreeSanitizer,
-      _tagsForWhichCreateContextualFragmentIsNotSupported: ListOfString(),
-      abortEvent: EventStreamProviderOfEvent(),
-      beforeCopyEvent: EventStreamProviderOfEvent(),
-      beforeCutEvent: EventStreamProviderOfEvent(),
-      beforePasteEvent: EventStreamProviderOfEvent(),
-      blurEvent: EventStreamProviderOfEvent(),
-      canPlayEvent: EventStreamProviderOfEvent(),
-      canPlayThroughEvent: EventStreamProviderOfEvent(),
-      changeEvent: EventStreamProviderOfEvent(),
-      clickEvent: EventStreamProviderOfMouseEvent(),
-      contextMenuEvent: EventStreamProviderOfMouseEvent(),
-      copyEvent: EventStreamProviderOfClipboardEvent(),
-      cutEvent: EventStreamProviderOfClipboardEvent(),
-      doubleClickEvent: EventStreamProviderOfEvent(),
-      dragEvent: EventStreamProviderOfMouseEvent(),
-      dragEndEvent: EventStreamProviderOfMouseEvent(),
-      dragEnterEvent: EventStreamProviderOfMouseEvent(),
-      dragLeaveEvent: EventStreamProviderOfMouseEvent(),
-      dragOverEvent: EventStreamProviderOfMouseEvent(),
-      dragStartEvent: EventStreamProviderOfMouseEvent(),
-      dropEvent: EventStreamProviderOfMouseEvent(),
-      durationChangeEvent: EventStreamProviderOfEvent(),
-      emptiedEvent: EventStreamProviderOfEvent(),
-      endedEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      focusEvent: EventStreamProviderOfEvent(),
-      inputEvent: EventStreamProviderOfEvent(),
-      invalidEvent: EventStreamProviderOfEvent(),
-      keyDownEvent: EventStreamProviderOfKeyboardEvent(),
-      keyPressEvent: EventStreamProviderOfKeyboardEvent(),
-      keyUpEvent: EventStreamProviderOfKeyboardEvent(),
-      loadEvent: EventStreamProviderOfEvent(),
-      loadedDataEvent: EventStreamProviderOfEvent(),
-      loadedMetadataEvent: EventStreamProviderOfEvent(),
-      mouseDownEvent: EventStreamProviderOfMouseEvent(),
-      mouseEnterEvent: EventStreamProviderOfMouseEvent(),
-      mouseLeaveEvent: EventStreamProviderOfMouseEvent(),
-      mouseMoveEvent: EventStreamProviderOfMouseEvent(),
-      mouseOutEvent: EventStreamProviderOfMouseEvent(),
-      mouseOverEvent: EventStreamProviderOfMouseEvent(),
-      mouseUpEvent: EventStreamProviderOfMouseEvent(),
-      pasteEvent: EventStreamProviderOfClipboardEvent(),
-      pauseEvent: EventStreamProviderOfEvent(),
-      playEvent: EventStreamProviderOfEvent(),
-      playingEvent: EventStreamProviderOfEvent(),
-      rateChangeEvent: EventStreamProviderOfEvent(),
-      resetEvent: EventStreamProviderOfEvent(),
-      resizeEvent: EventStreamProviderOfEvent(),
-      scrollEvent: EventStreamProviderOfEvent(),
-      searchEvent: EventStreamProviderOfEvent(),
-      seekedEvent: EventStreamProviderOfEvent(),
-      seekingEvent: EventStreamProviderOfEvent(),
-      selectEvent: EventStreamProviderOfEvent(),
-      selectStartEvent: EventStreamProviderOfEvent(),
-      stalledEvent: EventStreamProviderOfEvent(),
-      submitEvent: EventStreamProviderOfEvent(),
-      suspendEvent: EventStreamProviderOfEvent(),
-      timeUpdateEvent: EventStreamProviderOfEvent(),
-      touchCancelEvent: EventStreamProviderOfTouchEvent(),
-      touchEndEvent: EventStreamProviderOfTouchEvent(),
-      touchEnterEvent: EventStreamProviderOfTouchEvent(),
-      touchLeaveEvent: EventStreamProviderOfTouchEvent(),
-      touchMoveEvent: EventStreamProviderOfTouchEvent(),
-      touchStartEvent: EventStreamProviderOfTouchEvent(),
-      volumeChangeEvent: EventStreamProviderOfEvent(),
-      waitingEvent: EventStreamProviderOfEvent(),
-      fullscreenChangeEvent: EventStreamProviderOfEvent(),
-      fullscreenErrorEvent: EventStreamProviderOfEvent()
-    }),
-    statics: () => ({
-      isTagSupported: dart.definiteFunctionType(core.bool, [core.String]),
-      _determineMouseWheelEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
-      _determineTransitionEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
-      _offsetToHelper: dart.definiteFunctionType(math.Point$(core.num), [html$.Element, html$.Element]),
-      _hasCorruptedAttributes: dart.definiteFunctionType(core.bool, [html$.Element]),
-      _hasCorruptedAttributesAdditionalCheck: dart.definiteFunctionType(core.bool, [html$.Element]),
-      _safeTagName: dart.definiteFunctionType(core.String, [dart.dynamic])
-    }),
-    names: ['isTagSupported', '_determineMouseWheelEventType', '_determineTransitionEventType', '_offsetToHelper', '_hasCorruptedAttributes', '_hasCorruptedAttributesAdditionalCheck', '_safeTagName']
-  });
-  html$.Element._parseDocument = null;
-  html$.Element._parseRange = null;
-  html$.Element._defaultValidator = null;
-  html$.Element._defaultSanitizer = null;
-  html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported = dart.constList(['HEAD', 'AREA', 'BASE', 'BASEFONT', 'BR', 'COL', 'COLGROUP', 'EMBED', 'FRAME', 'FRAMESET', 'HR', 'IMAGE', 'IMG', 'INPUT', 'ISINDEX', 'LINK', 'META', 'PARAM', 'SOURCE', 'STYLE', 'TITLE', 'WBR'], core.String);
-  dart.defineLazy(html$.Element, {
-    get mouseWheelEvent() {
-      return dart.const(new (_CustomEventStreamProviderOfWheelEvent())(html$.Element._determineMouseWheelEventType));
-    },
-    get transitionEndEvent() {
-      return dart.const(new (_CustomEventStreamProviderOfTransitionEvent())(html$.Element._determineTransitionEventType));
-    },
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('abort'));
-    },
-    get beforeCopyEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('beforecopy'));
-    },
-    get beforeCutEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('beforecut'));
-    },
-    get beforePasteEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('beforepaste'));
-    },
-    get blurEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('blur'));
-    },
-    get canPlayEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('canplay'));
-    },
-    get canPlayThroughEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('canplaythrough'));
-    },
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    },
-    get clickEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('click'));
-    },
-    get contextMenuEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('contextmenu'));
-    },
-    get copyEvent() {
-      return dart.const(new (EventStreamProviderOfClipboardEvent())('copy'));
-    },
-    get cutEvent() {
-      return dart.const(new (EventStreamProviderOfClipboardEvent())('cut'));
-    },
-    get doubleClickEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('dblclick'));
-    },
-    get dragEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('drag'));
-    },
-    get dragEndEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragend'));
-    },
-    get dragEnterEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragenter'));
-    },
-    get dragLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragleave'));
-    },
-    get dragOverEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragover'));
-    },
-    get dragStartEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragstart'));
-    },
-    get dropEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('drop'));
-    },
-    get durationChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('durationchange'));
-    },
-    get emptiedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('emptied'));
-    },
-    get endedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ended'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get focusEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('focus'));
-    },
-    get inputEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('input'));
-    },
-    get invalidEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('invalid'));
-    },
-    get keyDownEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keydown'));
-    },
-    get keyPressEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keypress'));
-    },
-    get keyUpEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keyup'));
-    },
-    get loadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('load'));
-    },
-    get loadedDataEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadeddata'));
-    },
-    get loadedMetadataEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadedmetadata'));
-    },
-    get mouseDownEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mousedown'));
-    },
-    get mouseEnterEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseenter'));
-    },
-    get mouseLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseleave'));
-    },
-    get mouseMoveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mousemove'));
-    },
-    get mouseOutEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseout'));
-    },
-    get mouseOverEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseover'));
-    },
-    get mouseUpEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseup'));
-    },
-    get pasteEvent() {
-      return dart.const(new (EventStreamProviderOfClipboardEvent())('paste'));
-    },
-    get pauseEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pause'));
-    },
-    get playEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('play'));
-    },
-    get playingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('playing'));
-    },
-    get rateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ratechange'));
-    },
-    get resetEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('reset'));
-    },
-    get resizeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('resize'));
-    },
-    get scrollEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('scroll'));
-    },
-    get searchEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('search'));
-    },
-    get seekedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('seeked'));
-    },
-    get seekingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('seeking'));
-    },
-    get selectEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('select'));
-    },
-    get selectStartEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('selectstart'));
-    },
-    get stalledEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('stalled'));
-    },
-    get submitEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('submit'));
-    },
-    get suspendEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('suspend'));
-    },
-    get timeUpdateEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('timeupdate'));
-    },
-    get touchCancelEvent() {
-      return dart.const(new (EventStreamProviderOfTouchEvent())('touchcancel'));
-    },
-    get touchEndEvent() {
-      return dart.const(new (EventStreamProviderOfTouchEvent())('touchend'));
-    },
-    get touchEnterEvent() {
-      return dart.const(new (EventStreamProviderOfTouchEvent())('touchenter'));
-    },
-    get touchLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfTouchEvent())('touchleave'));
-    },
-    get touchMoveEvent() {
-      return dart.const(new (EventStreamProviderOfTouchEvent())('touchmove'));
-    },
-    get touchStartEvent() {
-      return dart.const(new (EventStreamProviderOfTouchEvent())('touchstart'));
-    },
-    get volumeChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('volumechange'));
-    },
-    get waitingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('waiting'));
-    },
-    get fullscreenChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('webkitfullscreenchange'));
-    },
-    get fullscreenErrorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('webkitfullscreenerror'));
-    }
-  });
-  dart.registerExtension(dart.global.Element, html$.Element);
-  html$.HtmlElement = class HtmlElement extends html$.Element {
-    static new() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.HtmlElement, 'created');
-  dart.setSignature(html$.HtmlElement, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.HtmlElement, []),
-      created: dart.definiteFunctionType(html$.HtmlElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLElement, html$.HtmlElement);
-  html$._EntryArray = class _EntryArray extends core.Object {};
-  html$._EntryArray[dart.implements] = () => [ListOfEntry()];
-  dart.registerExtension(dart.global.EntryArray, html$._EntryArray);
-  html$.spawnDomUri = function(uri, args, message) {
-    dart.throw(new core.UnimplementedError());
-  };
-  dart.fn(html$.spawnDomUri, UriAndListOfStringAnddynamicToFutureOfIsolate());
-  html$.createCustomUpgrader = function(customElementClass, $this) {
-    return $this;
-  };
-  dart.fn(html$.createCustomUpgrader, TypeAnddynamicTodynamic());
-  dart.defineExtensionNames([
-    'onError'
-  ]);
-  html$.AbstractWorker = class AbstractWorker extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get onError() {
-      return html$.AbstractWorker.errorEvent.forTarget(this);
-    }
-  };
-  html$.AbstractWorker[dart.implements] = () => [html$.EventTarget];
-  dart.setSignature(html$.AbstractWorker, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AbstractWorker, [])}),
-    getters: () => ({onError: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    sfields: () => ({errorEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineExtensionMembers(html$.AbstractWorker, ['onError']);
-  dart.defineLazy(html$.AbstractWorker, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    }
-  });
-  dart.defineExtensionNames([
-    'toString',
-    'download',
-    'hreflang',
-    'rel',
-    'target',
-    'type',
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'origin',
-    'password',
-    'pathname',
-    'port',
-    'protocol',
-    'search',
-    'username'
-  ]);
-  html$.AnchorElement = class AnchorElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(opts) {
-      let href = opts && 'href' in opts ? opts.href : null;
-      let e = html$.AnchorElement._check(html$.document[dartx.createElement]("a"));
-      if (href != null) e[dartx.href] = href;
-      return e;
-    }
-    created() {
-      this[dartx.download] = null;
-      this[dartx.hreflang] = null;
-      this[dartx.rel] = null;
-      this[dartx.target] = null;
-      this[dartx.type] = null;
-      this[dartx.hash] = null;
-      this[dartx.host] = null;
-      this[dartx.hostname] = null;
-      this[dartx.href] = null;
-      this[dartx.origin] = null;
-      this[dartx.password] = null;
-      this[dartx.pathname] = null;
-      this[dartx.port] = null;
-      this[dartx.protocol] = null;
-      this[dartx.search] = null;
-      this[dartx.username] = null;
-      super.created();
-    }
-    get [dartx.download]() {
-      return this.download;
-    }
-    set [dartx.download](value) {
-      this.download = value;
-    }
-    get [dartx.hreflang]() {
-      return this.hreflang;
-    }
-    set [dartx.hreflang](value) {
-      this.hreflang = value;
-    }
-    get [dartx.rel]() {
-      return this.rel;
-    }
-    set [dartx.rel](value) {
-      this.rel = value;
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-    set [dartx.target](value) {
-      this.target = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.hash]() {
-      return this.hash;
-    }
-    set [dartx.hash](value) {
-      this.hash = value;
-    }
-    get [dartx.host]() {
-      return this.host;
-    }
-    set [dartx.host](value) {
-      this.host = value;
-    }
-    get [dartx.hostname]() {
-      return this.hostname;
-    }
-    set [dartx.hostname](value) {
-      this.hostname = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    set [dartx.href](value) {
-      this.href = value;
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.password]() {
-      return this.password;
-    }
-    set [dartx.password](value) {
-      this.password = value;
-    }
-    get [dartx.pathname]() {
-      return this.pathname;
-    }
-    set [dartx.pathname](value) {
-      this.pathname = value;
-    }
-    get [dartx.port]() {
-      return this.port;
-    }
-    set [dartx.port](value) {
-      this.port = value;
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    set [dartx.protocol](value) {
-      this.protocol = value;
-    }
-    get [dartx.search]() {
-      return this.search;
-    }
-    set [dartx.search](value) {
-      this.search = value;
-    }
-    get [dartx.username]() {
-      return this.username;
-    }
-    set [dartx.username](value) {
-      this.username = value;
-    }
-    [dartx.toString]() {
-      return String(this);
-    }
-  };
-  dart.defineNamedConstructor(html$.AnchorElement, 'created');
-  html$.AnchorElement[dart.implements] = () => [html$.UrlUtils];
-  dart.setSignature(html$.AnchorElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.AnchorElement, []),
-      new: dart.definiteFunctionType(html$.AnchorElement, [], {href: core.String}),
-      created: dart.definiteFunctionType(html$.AnchorElement, [])
-    }),
-    fields: () => ({
-      [dartx.download]: core.String,
-      [dartx.hreflang]: core.String,
-      [dartx.rel]: core.String,
-      [dartx.target]: core.String,
-      [dartx.type]: core.String,
-      [dartx.hash]: core.String,
-      [dartx.host]: core.String,
-      [dartx.hostname]: core.String,
-      [dartx.href]: core.String,
-      [dartx.origin]: core.String,
-      [dartx.password]: core.String,
-      [dartx.pathname]: core.String,
-      [dartx.port]: core.String,
-      [dartx.protocol]: core.String,
-      [dartx.search]: core.String,
-      [dartx.username]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLAnchorElement, html$.AnchorElement);
-  dart.defineExtensionNames([
-    'cancel',
-    'finish',
-    'pause',
-    'play',
-    'reverse',
-    'currentTime',
-    'effect',
-    'endClip',
-    'finished',
-    'playState',
-    'playbackRate',
-    'ready',
-    'startClip',
-    'startTime'
-  ]);
-  html$.Animation = class Animation extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!document.body.animate;
-    }
-    get [dartx.currentTime]() {
-      return this.currentTime;
-    }
-    set [dartx.currentTime](value) {
-      this.currentTime = value;
-    }
-    get [dartx.effect]() {
-      return this.effect;
-    }
-    set [dartx.effect](value) {
-      this.effect = value;
-    }
-    get [dartx.endClip]() {
-      return this.endClip;
-    }
-    set [dartx.endClip](value) {
-      this.endClip = value;
-    }
-    get [dartx.finished]() {
-      return this.finished;
-    }
-    get [dartx.playState]() {
-      return this.playState;
-    }
-    get [dartx.playbackRate]() {
-      return this.playbackRate;
-    }
-    set [dartx.playbackRate](value) {
-      this.playbackRate = value;
-    }
-    get [dartx.ready]() {
-      return this.ready;
-    }
-    get [dartx.startClip]() {
-      return this.startClip;
-    }
-    set [dartx.startClip](value) {
-      this.startClip = value;
-    }
-    get [dartx.startTime]() {
-      return this.startTime;
-    }
-    set [dartx.startTime](value) {
-      this.startTime = value;
-    }
-    [dartx.cancel](...args) {
-      return this.cancel.apply(this, args);
-    }
-    [dartx.finish](...args) {
-      return this.finish.apply(this, args);
-    }
-    [dartx.pause](...args) {
-      return this.pause.apply(this, args);
-    }
-    [dartx.play](...args) {
-      return this.play.apply(this, args);
-    }
-    [dartx.reverse](...args) {
-      return this.reverse.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Animation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Animation, [])}),
-    fields: () => ({
-      [dartx.currentTime]: core.num,
-      [dartx.effect]: html$.AnimationEffectReadOnly,
-      [dartx.endClip]: core.num,
-      [dartx.finished]: async.Future,
-      [dartx.playState]: core.String,
-      [dartx.playbackRate]: core.num,
-      [dartx.ready]: async.Future,
-      [dartx.startClip]: core.num,
-      [dartx.startTime]: core.num
-    }),
-    methods: () => ({
-      [dartx.cancel]: dart.definiteFunctionType(dart.void, []),
-      [dartx.finish]: dart.definiteFunctionType(dart.void, []),
-      [dartx.pause]: dart.definiteFunctionType(dart.void, []),
-      [dartx.play]: dart.definiteFunctionType(dart.void, []),
-      [dartx.reverse]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.Animation, html$.Animation);
-  const _get_computedTiming = Symbol('_get_computedTiming');
-  dart.defineExtensionNames([
-    'computedTiming',
-    'timing'
-  ]);
-  html$.AnimationEffectReadOnly = class AnimationEffectReadOnly extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.computedTiming]() {
-      return html_common.convertNativeToDart_Dictionary(this[_get_computedTiming]);
-    }
-    get [_get_computedTiming]() {
-      return this.computedTiming;
-    }
-    get [dartx.timing]() {
-      return this.timing;
-    }
-  };
-  dart.setSignature(html$.AnimationEffectReadOnly, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AnimationEffectReadOnly, [])}),
-    fields: () => ({
-      [_get_computedTiming]: dart.dynamic,
-      [dartx.timing]: html$.AnimationEffectTiming
-    }),
-    getters: () => ({[dartx.computedTiming]: dart.definiteFunctionType(core.Map, [])})
-  });
-  dart.registerExtension(dart.global.AnimationEffectReadOnly, html$.AnimationEffectReadOnly);
-  dart.defineExtensionNames([
-    'delay',
-    'direction',
-    'duration',
-    'easing',
-    'endDelay',
-    'fill',
-    'iterationStart',
-    'iterations',
-    'playbackRate'
-  ]);
-  html$.AnimationEffectTiming = class AnimationEffectTiming extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.delay]() {
-      return this.delay;
-    }
-    set [dartx.delay](value) {
-      this.delay = value;
-    }
-    get [dartx.direction]() {
-      return this.direction;
-    }
-    set [dartx.direction](value) {
-      this.direction = value;
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    set [dartx.duration](value) {
-      this.duration = value;
-    }
-    get [dartx.easing]() {
-      return this.easing;
-    }
-    set [dartx.easing](value) {
-      this.easing = value;
-    }
-    get [dartx.endDelay]() {
-      return this.endDelay;
-    }
-    set [dartx.endDelay](value) {
-      this.endDelay = value;
-    }
-    get [dartx.fill]() {
-      return this.fill;
-    }
-    set [dartx.fill](value) {
-      this.fill = value;
-    }
-    get [dartx.iterationStart]() {
-      return this.iterationStart;
-    }
-    set [dartx.iterationStart](value) {
-      this.iterationStart = value;
-    }
-    get [dartx.iterations]() {
-      return this.iterations;
-    }
-    set [dartx.iterations](value) {
-      this.iterations = value;
-    }
-    get [dartx.playbackRate]() {
-      return this.playbackRate;
-    }
-    set [dartx.playbackRate](value) {
-      this.playbackRate = value;
-    }
-  };
-  dart.setSignature(html$.AnimationEffectTiming, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AnimationEffectTiming, [])}),
-    fields: () => ({
-      [dartx.delay]: core.num,
-      [dartx.direction]: core.String,
-      [dartx.duration]: core.Object,
-      [dartx.easing]: core.String,
-      [dartx.endDelay]: core.num,
-      [dartx.fill]: core.String,
-      [dartx.iterationStart]: core.num,
-      [dartx.iterations]: core.num,
-      [dartx.playbackRate]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.AnimationEffectTiming, html$.AnimationEffectTiming);
-  dart.defineExtensionNames([
-    'animationName',
-    'elapsedTime'
-  ]);
-  html$.AnimationEvent = class AnimationEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.AnimationEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.AnimationEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.AnimationEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.AnimationEvent(type);
-    }
-    get [dartx.animationName]() {
-      return this.animationName;
-    }
-    get [dartx.elapsedTime]() {
-      return this.elapsedTime;
-    }
-  };
-  dart.setSignature(html$.AnimationEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.AnimationEvent, []),
-      new: dart.definiteFunctionType(html$.AnimationEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.animationName]: core.String,
-      [dartx.elapsedTime]: core.double
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.AnimationEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.AnimationEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.AnimationEvent, html$.AnimationEvent);
-  dart.defineExtensionNames([
-    'currentTime',
-    'timelineTime'
-  ]);
-  html$.AnimationPlayerEvent = class AnimationPlayerEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.AnimationPlayerEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.AnimationPlayerEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.AnimationPlayerEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.AnimationPlayerEvent(type);
-    }
-    get [dartx.currentTime]() {
-      return this.currentTime;
-    }
-    get [dartx.timelineTime]() {
-      return this.timelineTime;
-    }
-  };
-  dart.setSignature(html$.AnimationPlayerEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.AnimationPlayerEvent, []),
-      new: dart.definiteFunctionType(html$.AnimationPlayerEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.currentTime]: core.double,
-      [dartx.timelineTime]: core.double
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.AnimationPlayerEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.AnimationPlayerEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.AnimationPlayerEvent, html$.AnimationPlayerEvent);
-  dart.defineExtensionNames([
-    'getAnimations',
-    'play',
-    'currentTime',
-    'playbackRate'
-  ]);
-  html$.AnimationTimeline = class AnimationTimeline extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.currentTime]() {
-      return this.currentTime;
-    }
-    set [dartx.currentTime](value) {
-      this.currentTime = value;
-    }
-    get [dartx.playbackRate]() {
-      return this.playbackRate;
-    }
-    set [dartx.playbackRate](value) {
-      this.playbackRate = value;
-    }
-    [dartx.getAnimations](...args) {
-      return this.getAnimations.apply(this, args);
-    }
-    [dartx.play](...args) {
-      return this.play.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.AnimationTimeline, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AnimationTimeline, [])}),
-    fields: () => ({
-      [dartx.currentTime]: core.num,
-      [dartx.playbackRate]: core.num
-    }),
-    methods: () => ({
-      [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html$.Animation), []),
-      [dartx.play]: dart.definiteFunctionType(html$.Animation, [html$.AnimationEffectReadOnly])
-    })
-  });
-  dart.registerExtension(dart.global.AnimationTimeline, html$.AnimationTimeline);
-  dart.defineExtensionNames([
-    'outcome',
-    'platform'
-  ]);
-  html$.AppBannerPromptResult = class AppBannerPromptResult extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.outcome]() {
-      return this.outcome;
-    }
-    get [dartx.platform]() {
-      return this.platform;
-    }
-  };
-  dart.setSignature(html$.AppBannerPromptResult, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AppBannerPromptResult, [])}),
-    fields: () => ({
-      [dartx.outcome]: core.String,
-      [dartx.platform]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.AppBannerPromptResult, html$.AppBannerPromptResult);
-  dart.defineExtensionNames([
-    'abort',
-    'swapCache',
-    'update',
-    'onCached',
-    'onChecking',
-    'onDownloading',
-    'onError',
-    'onNoUpdate',
-    'onObsolete',
-    'onProgress',
-    'onUpdateReady',
-    'status'
-  ]);
-  html$.ApplicationCache = class ApplicationCache extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!window.applicationCache;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.swapCache](...args) {
-      return this.swapCache.apply(this, args);
-    }
-    [dartx.update](...args) {
-      return this.update.apply(this, args);
-    }
-    get [dartx.onCached]() {
-      return html$.ApplicationCache.cachedEvent.forTarget(this);
-    }
-    get [dartx.onChecking]() {
-      return html$.ApplicationCache.checkingEvent.forTarget(this);
-    }
-    get [dartx.onDownloading]() {
-      return html$.ApplicationCache.downloadingEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.ApplicationCache.errorEvent.forTarget(this);
-    }
-    get [dartx.onNoUpdate]() {
-      return html$.ApplicationCache.noUpdateEvent.forTarget(this);
-    }
-    get [dartx.onObsolete]() {
-      return html$.ApplicationCache.obsoleteEvent.forTarget(this);
-    }
-    get [dartx.onProgress]() {
-      return html$.ApplicationCache.progressEvent.forTarget(this);
-    }
-    get [dartx.onUpdateReady]() {
-      return html$.ApplicationCache.updateReadyEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.ApplicationCache, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ApplicationCache, [])}),
-    fields: () => ({[dartx.status]: core.int}),
-    getters: () => ({
-      [dartx.onCached]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onChecking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onDownloading]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onNoUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onObsolete]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onUpdateReady]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.swapCache]: dart.definiteFunctionType(dart.void, []),
-      [dartx.update]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      cachedEvent: EventStreamProviderOfEvent(),
-      checkingEvent: EventStreamProviderOfEvent(),
-      downloadingEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      noUpdateEvent: EventStreamProviderOfEvent(),
-      obsoleteEvent: EventStreamProviderOfEvent(),
-      progressEvent: EventStreamProviderOfProgressEvent(),
-      updateReadyEvent: EventStreamProviderOfEvent(),
-      CHECKING: core.int,
-      DOWNLOADING: core.int,
-      IDLE: core.int,
-      OBSOLETE: core.int,
-      UNCACHED: core.int,
-      UPDATEREADY: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  html$.ApplicationCache.CHECKING = 2;
-  html$.ApplicationCache.DOWNLOADING = 3;
-  html$.ApplicationCache.IDLE = 1;
-  html$.ApplicationCache.OBSOLETE = 5;
-  html$.ApplicationCache.UNCACHED = 0;
-  html$.ApplicationCache.UPDATEREADY = 4;
-  dart.defineLazy(html$.ApplicationCache, {
-    get cachedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('cached'));
-    },
-    get checkingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('checking'));
-    },
-    get downloadingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('downloading'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get noUpdateEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('noupdate'));
-    },
-    get obsoleteEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('obsolete'));
-    },
-    get progressEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
-    },
-    get updateReadyEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('updateready'));
-    }
-  });
-  dart.registerExtension(dart.global.ApplicationCache, html$.ApplicationCache);
-  dart.registerExtension(dart.global.DOMApplicationCache, html$.ApplicationCache);
-  dart.registerExtension(dart.global.OfflineResourceList, html$.ApplicationCache);
-  dart.defineExtensionNames([
-    'message',
-    'reason',
-    'status',
-    'url'
-  ]);
-  html$.ApplicationCacheErrorEvent = class ApplicationCacheErrorEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.ApplicationCacheErrorEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.ApplicationCacheErrorEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.ApplicationCacheErrorEvent(type);
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    get [dartx.reason]() {
-      return this.reason;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-  };
-  dart.setSignature(html$.ApplicationCacheErrorEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, []),
-      new: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.message]: core.String,
-      [dartx.reason]: core.String,
-      [dartx.status]: core.int,
-      [dartx.url]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.ApplicationCacheErrorEvent, html$.ApplicationCacheErrorEvent);
-  dart.defineExtensionNames([
-    'toString',
-    'alt',
-    'coords',
-    'shape',
-    'target',
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'origin',
-    'password',
-    'pathname',
-    'port',
-    'protocol',
-    'search',
-    'username'
-  ]);
-  html$.AreaElement = class AreaElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.AreaElement._check(html$.document[dartx.createElement]("area"));
-    }
-    created() {
-      this[dartx.alt] = null;
-      this[dartx.coords] = null;
-      this[dartx.shape] = null;
-      this[dartx.target] = null;
-      this[dartx.hash] = null;
-      this[dartx.host] = null;
-      this[dartx.hostname] = null;
-      this[dartx.href] = null;
-      this[dartx.origin] = null;
-      this[dartx.password] = null;
-      this[dartx.pathname] = null;
-      this[dartx.port] = null;
-      this[dartx.protocol] = null;
-      this[dartx.search] = null;
-      this[dartx.username] = null;
-      super.created();
-    }
-    get [dartx.alt]() {
-      return this.alt;
-    }
-    set [dartx.alt](value) {
-      this.alt = value;
-    }
-    get [dartx.coords]() {
-      return this.coords;
-    }
-    set [dartx.coords](value) {
-      this.coords = value;
-    }
-    get [dartx.shape]() {
-      return this.shape;
-    }
-    set [dartx.shape](value) {
-      this.shape = value;
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-    set [dartx.target](value) {
-      this.target = value;
-    }
-    get [dartx.hash]() {
-      return this.hash;
-    }
-    set [dartx.hash](value) {
-      this.hash = value;
-    }
-    get [dartx.host]() {
-      return this.host;
-    }
-    set [dartx.host](value) {
-      this.host = value;
-    }
-    get [dartx.hostname]() {
-      return this.hostname;
-    }
-    set [dartx.hostname](value) {
-      this.hostname = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    set [dartx.href](value) {
-      this.href = value;
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.password]() {
-      return this.password;
-    }
-    set [dartx.password](value) {
-      this.password = value;
-    }
-    get [dartx.pathname]() {
-      return this.pathname;
-    }
-    set [dartx.pathname](value) {
-      this.pathname = value;
-    }
-    get [dartx.port]() {
-      return this.port;
-    }
-    set [dartx.port](value) {
-      this.port = value;
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    set [dartx.protocol](value) {
-      this.protocol = value;
-    }
-    get [dartx.search]() {
-      return this.search;
-    }
-    set [dartx.search](value) {
-      this.search = value;
-    }
-    get [dartx.username]() {
-      return this.username;
-    }
-    set [dartx.username](value) {
-      this.username = value;
-    }
-    [dartx.toString]() {
-      return String(this);
-    }
-  };
-  dart.defineNamedConstructor(html$.AreaElement, 'created');
-  html$.AreaElement[dart.implements] = () => [html$.UrlUtils];
-  dart.setSignature(html$.AreaElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.AreaElement, []),
-      new: dart.definiteFunctionType(html$.AreaElement, []),
-      created: dart.definiteFunctionType(html$.AreaElement, [])
-    }),
-    fields: () => ({
-      [dartx.alt]: core.String,
-      [dartx.coords]: core.String,
-      [dartx.shape]: core.String,
-      [dartx.target]: core.String,
-      [dartx.hash]: core.String,
-      [dartx.host]: core.String,
-      [dartx.hostname]: core.String,
-      [dartx.href]: core.String,
-      [dartx.origin]: core.String,
-      [dartx.password]: core.String,
-      [dartx.pathname]: core.String,
-      [dartx.port]: core.String,
-      [dartx.protocol]: core.String,
-      [dartx.search]: core.String,
-      [dartx.username]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLAreaElement, html$.AreaElement);
-  dart.defineExtensionNames([
-    'addTextTrack',
-    'canPlayType',
-    'load',
-    'pause',
-    'play',
-    'setMediaKeys',
-    'setSinkId',
-    'addKey',
-    'cancelKeyRequest',
-    'generateKeyRequest',
-    'onKeyAdded',
-    'onKeyError',
-    'onKeyMessage',
-    'onNeedKey',
-    'audioTracks',
-    'autoplay',
-    'buffered',
-    'controller',
-    'controls',
-    'crossOrigin',
-    'currentSrc',
-    'currentTime',
-    'defaultMuted',
-    'defaultPlaybackRate',
-    'duration',
-    'ended',
-    'error',
-    'loop',
-    'mediaGroup',
-    'mediaKeys',
-    'muted',
-    'networkState',
-    'paused',
-    'playbackRate',
-    'played',
-    'preload',
-    'readyState',
-    'seekable',
-    'seeking',
-    'session',
-    'sinkId',
-    'src',
-    'textTracks',
-    'videoTracks',
-    'volume',
-    'audioDecodedByteCount',
-    'videoDecodedByteCount'
-  ]);
-  html$.MediaElement = class MediaElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.audioTracks] = null;
-      this[dartx.autoplay] = null;
-      this[dartx.buffered] = null;
-      this[dartx.controller] = null;
-      this[dartx.controls] = null;
-      this[dartx.crossOrigin] = null;
-      this[dartx.currentSrc] = null;
-      this[dartx.currentTime] = null;
-      this[dartx.defaultMuted] = null;
-      this[dartx.defaultPlaybackRate] = null;
-      this[dartx.duration] = null;
-      this[dartx.ended] = null;
-      this[dartx.error] = null;
-      this[dartx.loop] = null;
-      this[dartx.mediaGroup] = null;
-      this[dartx.mediaKeys] = null;
-      this[dartx.muted] = null;
-      this[dartx.networkState] = null;
-      this[dartx.paused] = null;
-      this[dartx.playbackRate] = null;
-      this[dartx.played] = null;
-      this[dartx.preload] = null;
-      this[dartx.readyState] = null;
-      this[dartx.seekable] = null;
-      this[dartx.seeking] = null;
-      this[dartx.session] = null;
-      this[dartx.sinkId] = null;
-      this[dartx.src] = null;
-      this[dartx.textTracks] = null;
-      this[dartx.videoTracks] = null;
-      this[dartx.volume] = null;
-      this[dartx.audioDecodedByteCount] = null;
-      this[dartx.videoDecodedByteCount] = null;
-      super.created();
-    }
-    get [dartx.audioTracks]() {
-      return this.audioTracks;
-    }
-    get [dartx.autoplay]() {
-      return this.autoplay;
-    }
-    set [dartx.autoplay](value) {
-      this.autoplay = value;
-    }
-    get [dartx.buffered]() {
-      return this.buffered;
-    }
-    get [dartx.controller]() {
-      return this.controller;
-    }
-    set [dartx.controller](value) {
-      this.controller = value;
-    }
-    get [dartx.controls]() {
-      return this.controls;
-    }
-    set [dartx.controls](value) {
-      this.controls = value;
-    }
-    get [dartx.crossOrigin]() {
-      return this.crossOrigin;
-    }
-    set [dartx.crossOrigin](value) {
-      this.crossOrigin = value;
-    }
-    get [dartx.currentSrc]() {
-      return this.currentSrc;
-    }
-    get [dartx.currentTime]() {
-      return this.currentTime;
-    }
-    set [dartx.currentTime](value) {
-      this.currentTime = value;
-    }
-    get [dartx.defaultMuted]() {
-      return this.defaultMuted;
-    }
-    set [dartx.defaultMuted](value) {
-      this.defaultMuted = value;
-    }
-    get [dartx.defaultPlaybackRate]() {
-      return this.defaultPlaybackRate;
-    }
-    set [dartx.defaultPlaybackRate](value) {
-      this.defaultPlaybackRate = value;
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    get [dartx.ended]() {
-      return this.ended;
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.loop]() {
-      return this.loop;
-    }
-    set [dartx.loop](value) {
-      this.loop = value;
-    }
-    get [dartx.mediaGroup]() {
-      return this.mediaGroup;
-    }
-    set [dartx.mediaGroup](value) {
-      this.mediaGroup = value;
-    }
-    get [dartx.mediaKeys]() {
-      return this.mediaKeys;
-    }
-    get [dartx.muted]() {
-      return this.muted;
-    }
-    set [dartx.muted](value) {
-      this.muted = value;
-    }
-    get [dartx.networkState]() {
-      return this.networkState;
-    }
-    get [dartx.paused]() {
-      return this.paused;
-    }
-    get [dartx.playbackRate]() {
-      return this.playbackRate;
-    }
-    set [dartx.playbackRate](value) {
-      this.playbackRate = value;
-    }
-    get [dartx.played]() {
-      return this.played;
-    }
-    get [dartx.preload]() {
-      return this.preload;
-    }
-    set [dartx.preload](value) {
-      this.preload = value;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.seekable]() {
-      return this.seekable;
-    }
-    get [dartx.seeking]() {
-      return this.seeking;
-    }
-    get [dartx.session]() {
-      return this.session;
-    }
-    set [dartx.session](value) {
-      this.session = value;
-    }
-    get [dartx.sinkId]() {
-      return this.sinkId;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.textTracks]() {
-      return this.textTracks;
-    }
-    get [dartx.videoTracks]() {
-      return this.videoTracks;
-    }
-    get [dartx.volume]() {
-      return this.volume;
-    }
-    set [dartx.volume](value) {
-      this.volume = value;
-    }
-    get [dartx.audioDecodedByteCount]() {
-      return this.webkitAudioDecodedByteCount;
-    }
-    get [dartx.videoDecodedByteCount]() {
-      return this.webkitVideoDecodedByteCount;
-    }
-    [dartx.addTextTrack](...args) {
-      return this.addTextTrack.apply(this, args);
-    }
-    [dartx.canPlayType](...args) {
-      return this.canPlayType.apply(this, args);
-    }
-    [dartx.load](...args) {
-      return this.load.apply(this, args);
-    }
-    [dartx.pause](...args) {
-      return this.pause.apply(this, args);
-    }
-    [dartx.play](...args) {
-      return this.play.apply(this, args);
-    }
-    [dartx.setMediaKeys](...args) {
-      return this.setMediaKeys.apply(this, args);
-    }
-    [dartx.setSinkId](...args) {
-      return this.setSinkId.apply(this, args);
-    }
-    [dartx.addKey](...args) {
-      return this.webkitAddKey.apply(this, args);
-    }
-    [dartx.cancelKeyRequest](...args) {
-      return this.webkitCancelKeyRequest.apply(this, args);
-    }
-    [dartx.generateKeyRequest](...args) {
-      return this.webkitGenerateKeyRequest.apply(this, args);
-    }
-    get [dartx.onKeyAdded]() {
-      return html$.MediaElement.keyAddedEvent.forElement(this);
-    }
-    get [dartx.onKeyError]() {
-      return html$.MediaElement.keyErrorEvent.forElement(this);
-    }
-    get [dartx.onKeyMessage]() {
-      return html$.MediaElement.keyMessageEvent.forElement(this);
-    }
-    get [dartx.onNeedKey]() {
-      return html$.MediaElement.needKeyEvent.forElement(this);
-    }
-  };
-  dart.defineNamedConstructor(html$.MediaElement, 'created');
-  dart.setSignature(html$.MediaElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaElement, []),
-      created: dart.definiteFunctionType(html$.MediaElement, [])
-    }),
-    fields: () => ({
-      [dartx.audioTracks]: html$.AudioTrackList,
-      [dartx.autoplay]: core.bool,
-      [dartx.buffered]: html$.TimeRanges,
-      [dartx.controller]: html$.MediaController,
-      [dartx.controls]: core.bool,
-      [dartx.crossOrigin]: core.String,
-      [dartx.currentSrc]: core.String,
-      [dartx.currentTime]: core.num,
-      [dartx.defaultMuted]: core.bool,
-      [dartx.defaultPlaybackRate]: core.num,
-      [dartx.duration]: core.double,
-      [dartx.ended]: core.bool,
-      [dartx.error]: html$.MediaError,
-      [dartx.loop]: core.bool,
-      [dartx.mediaGroup]: core.String,
-      [dartx.mediaKeys]: html$.MediaKeys,
-      [dartx.muted]: core.bool,
-      [dartx.networkState]: core.int,
-      [dartx.paused]: core.bool,
-      [dartx.playbackRate]: core.num,
-      [dartx.played]: html$.TimeRanges,
-      [dartx.preload]: core.String,
-      [dartx.readyState]: core.int,
-      [dartx.seekable]: html$.TimeRanges,
-      [dartx.seeking]: core.bool,
-      [dartx.session]: html$.MediaSession,
-      [dartx.sinkId]: core.String,
-      [dartx.src]: core.String,
-      [dartx.textTracks]: html$.TextTrackList,
-      [dartx.videoTracks]: html$.VideoTrackList,
-      [dartx.volume]: core.num,
-      [dartx.audioDecodedByteCount]: core.int,
-      [dartx.videoDecodedByteCount]: core.int
-    }),
-    getters: () => ({
-      [dartx.onKeyAdded]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
-      [dartx.onKeyError]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
-      [dartx.onKeyMessage]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
-      [dartx.onNeedKey]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), [])
-    }),
-    methods: () => ({
-      [dartx.addTextTrack]: dart.definiteFunctionType(html$.TextTrack, [core.String], [core.String, core.String]),
-      [dartx.canPlayType]: dart.definiteFunctionType(core.String, [core.String], [core.String]),
-      [dartx.load]: dart.definiteFunctionType(dart.void, []),
-      [dartx.pause]: dart.definiteFunctionType(dart.void, []),
-      [dartx.play]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setMediaKeys]: dart.definiteFunctionType(async.Future, [html$.MediaKeys]),
-      [dartx.setSinkId]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.addKey]: dart.definiteFunctionType(dart.void, [core.String, typed_data.Uint8List], [typed_data.Uint8List, core.String]),
-      [dartx.cancelKeyRequest]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.generateKeyRequest]: dart.definiteFunctionType(dart.void, [core.String], [typed_data.Uint8List])
-    }),
-    sfields: () => ({
-      keyAddedEvent: EventStreamProviderOfMediaKeyEvent(),
-      keyErrorEvent: EventStreamProviderOfMediaKeyEvent(),
-      keyMessageEvent: EventStreamProviderOfMediaKeyEvent(),
-      needKeyEvent: EventStreamProviderOfMediaKeyEvent(),
-      HAVE_CURRENT_DATA: core.int,
-      HAVE_ENOUGH_DATA: core.int,
-      HAVE_FUTURE_DATA: core.int,
-      HAVE_METADATA: core.int,
-      HAVE_NOTHING: core.int,
-      NETWORK_EMPTY: core.int,
-      NETWORK_IDLE: core.int,
-      NETWORK_LOADING: core.int,
-      NETWORK_NO_SOURCE: core.int
-    })
-  });
-  html$.MediaElement.HAVE_CURRENT_DATA = 2;
-  html$.MediaElement.HAVE_ENOUGH_DATA = 4;
-  html$.MediaElement.HAVE_FUTURE_DATA = 3;
-  html$.MediaElement.HAVE_METADATA = 1;
-  html$.MediaElement.HAVE_NOTHING = 0;
-  html$.MediaElement.NETWORK_EMPTY = 0;
-  html$.MediaElement.NETWORK_IDLE = 1;
-  html$.MediaElement.NETWORK_LOADING = 2;
-  html$.MediaElement.NETWORK_NO_SOURCE = 3;
-  dart.defineLazy(html$.MediaElement, {
-    get keyAddedEvent() {
-      return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeyadded'));
-    },
-    get keyErrorEvent() {
-      return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeyerror'));
-    },
-    get keyMessageEvent() {
-      return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeymessage'));
-    },
-    get needKeyEvent() {
-      return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitneedkey'));
-    }
-  });
-  dart.registerExtension(dart.global.HTMLMediaElement, html$.MediaElement);
-  html$.AudioElement = class AudioElement extends html$.MediaElement {
-    static _(src) {
-      if (src === void 0) src = null;
-      if (src != null) {
-        return html$.AudioElement._create_1(src);
-      }
-      return html$.AudioElement._create_2();
-    }
-    static _create_1(src) {
-      return new Audio(src);
-    }
-    static _create_2() {
-      return new Audio();
-    }
-    created() {
-      super.created();
-    }
-    static new(src) {
-      if (src === void 0) src = null;
-      return html$.AudioElement._(src);
-    }
-  };
-  dart.defineNamedConstructor(html$.AudioElement, 'created');
-  dart.setSignature(html$.AudioElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.AudioElement, [], [core.String]),
-      created: dart.definiteFunctionType(html$.AudioElement, []),
-      new: dart.definiteFunctionType(html$.AudioElement, [], [core.String])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.AudioElement, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.AudioElement, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.HTMLAudioElement, html$.AudioElement);
-  dart.defineExtensionNames([
-    'enabled',
-    'id',
-    'kind',
-    'label',
-    'language'
-  ]);
-  html$.AudioTrack = class AudioTrack extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.enabled]() {
-      return this.enabled;
-    }
-    set [dartx.enabled](value) {
-      this.enabled = value;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    get [dartx.language]() {
-      return this.language;
-    }
-  };
-  dart.setSignature(html$.AudioTrack, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AudioTrack, [])}),
-    fields: () => ({
-      [dartx.enabled]: core.bool,
-      [dartx.id]: core.String,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String,
-      [dartx.language]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.AudioTrack, html$.AudioTrack);
-  const __getter__ = Symbol('__getter__');
-  dart.defineExtensionNames([
-    'getTrackById',
-    'onChange',
-    'length'
-  ]);
-  html$.AudioTrackList = class AudioTrackList extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.getTrackById](...args) {
-      return this.getTrackById.apply(this, args);
-    }
-    get [dartx.onChange]() {
-      return html$.AudioTrackList.changeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.AudioTrackList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.AudioTrackList, [])}),
-    fields: () => ({[dartx.length]: core.int}),
-    getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [__getter__]: dart.definiteFunctionType(html$.AudioTrack, [core.int]),
-      [dartx.getTrackById]: dart.definiteFunctionType(html$.AudioTrack, [core.String])
-    }),
-    sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.AudioTrackList, {
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.AudioTrackList, html$.AudioTrackList);
-  dart.defineExtensionNames([
-    'reason'
-  ]);
-  html$.AutocompleteErrorEvent = class AutocompleteErrorEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.AutocompleteErrorEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.AutocompleteErrorEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.AutocompleteErrorEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.AutocompleteErrorEvent(type);
-    }
-    get [dartx.reason]() {
-      return this.reason;
-    }
-  };
-  dart.setSignature(html$.AutocompleteErrorEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.AutocompleteErrorEvent, []),
-      new: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.reason]: core.String}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.AutocompleteErrorEvent, html$.AutocompleteErrorEvent);
-  html$.BRElement = class BRElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.BRElement._check(html$.document[dartx.createElement]("br"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.BRElement, 'created');
-  dart.setSignature(html$.BRElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.BRElement, []),
-      new: dart.definiteFunctionType(html$.BRElement, []),
-      created: dart.definiteFunctionType(html$.BRElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLBRElement, html$.BRElement);
-  dart.defineExtensionNames([
-    'visible'
-  ]);
-  html$.BarProp = class BarProp extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.visible]() {
-      return this.visible;
-    }
-  };
-  dart.setSignature(html$.BarProp, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BarProp, [])}),
-    fields: () => ({[dartx.visible]: core.bool})
-  });
-  dart.registerExtension(dart.global.BarProp, html$.BarProp);
-  dart.defineExtensionNames([
-    'href',
-    'target'
-  ]);
-  html$.BaseElement = class BaseElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.BaseElement._check(html$.document[dartx.createElement]("base"));
-    }
-    created() {
-      this[dartx.href] = null;
-      this[dartx.target] = null;
-      super.created();
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    set [dartx.href](value) {
-      this.href = value;
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-    set [dartx.target](value) {
-      this.target = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.BaseElement, 'created');
-  dart.setSignature(html$.BaseElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.BaseElement, []),
-      new: dart.definiteFunctionType(html$.BaseElement, []),
-      created: dart.definiteFunctionType(html$.BaseElement, [])
-    }),
-    fields: () => ({
-      [dartx.href]: core.String,
-      [dartx.target]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLBaseElement, html$.BaseElement);
-  dart.defineExtensionNames([
-    'charging',
-    'chargingTime',
-    'dischargingTime',
-    'level'
-  ]);
-  html$.BatteryManager = class BatteryManager extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.charging]() {
-      return this.charging;
-    }
-    get [dartx.chargingTime]() {
-      return this.chargingTime;
-    }
-    get [dartx.dischargingTime]() {
-      return this.dischargingTime;
-    }
-    get [dartx.level]() {
-      return this.level;
-    }
-  };
-  dart.setSignature(html$.BatteryManager, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BatteryManager, [])}),
-    fields: () => ({
-      [dartx.charging]: core.bool,
-      [dartx.chargingTime]: core.double,
-      [dartx.dischargingTime]: core.double,
-      [dartx.level]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.BatteryManager, html$.BatteryManager);
-  dart.defineExtensionNames([
-    'platforms',
-    'prompt',
-    'userChoice'
-  ]);
-  html$.BeforeInstallPromptEvent = class BeforeInstallPromptEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.BeforeInstallPromptEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.BeforeInstallPromptEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.BeforeInstallPromptEvent(type);
-    }
-    get [dartx.platforms]() {
-      return this.platforms;
-    }
-    get [dartx.userChoice]() {
-      return this.userChoice;
-    }
-    [dartx.prompt](...args) {
-      return this.prompt.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.BeforeInstallPromptEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, []),
-      new: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.userChoice]: async.Future}),
-    getters: () => ({[dartx.platforms]: dart.definiteFunctionType(core.List$(core.String), [])}),
-    methods: () => ({[dartx.prompt]: dart.definiteFunctionType(async.Future, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.BeforeInstallPromptEvent, html$.BeforeInstallPromptEvent);
-  dart.defineExtensionNames([
-    'returnValue',
-    'returnValue'
-  ]);
-  html$.BeforeUnloadEvent = class BeforeUnloadEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.returnValue]() {
-      return this.returnValue;
-    }
-    set [dartx.returnValue](value) {
-      this.returnValue = value;
-    }
-  };
-  dart.setSignature(html$.BeforeUnloadEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BeforeUnloadEvent, [])}),
-    getters: () => ({[dartx.returnValue]: dart.definiteFunctionType(core.String, [])}),
-    setters: () => ({[dartx.returnValue]: dart.definiteFunctionType(dart.void, [core.String])})
-  });
-  dart.registerExtension(dart.global.BeforeUnloadEvent, html$.BeforeUnloadEvent);
-  dart.defineExtensionNames([
-    'close',
-    'slice',
-    'size',
-    'type'
-  ]);
-  html$.Blob = class Blob extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.slice](...args) {
-      return this.slice.apply(this, args);
-    }
-    static new(blobParts, type, endings) {
-      if (type === void 0) type = null;
-      if (endings === void 0) endings = null;
-      if (type == null && endings == null) {
-        return html$.Blob._check(html$.Blob._create_1(blobParts));
-      }
-      let bag = html$.Blob._create_bag();
-      if (type != null) html$.Blob._bag_set(bag, 'type', type);
-      if (endings != null) html$.Blob._bag_set(bag, 'endings', endings);
-      return html$.Blob._check(html$.Blob._create_2(blobParts, bag));
-    }
-    static _create_1(parts) {
-      return new self.Blob(parts);
-    }
-    static _create_2(parts, bag) {
-      return new self.Blob(parts, bag);
-    }
-    static _create_bag() {
-      return {};
-    }
-    static _bag_set(bag, key, value) {
-      bag[key] = value;
-    }
-  };
-  dart.setSignature(html$.Blob, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.Blob, []),
-      new: dart.definiteFunctionType(html$.Blob, [core.List], [core.String, core.String])
-    }),
-    fields: () => ({
-      [dartx.size]: core.int,
-      [dartx.type]: core.String
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.slice]: dart.definiteFunctionType(html$.Blob, [], [core.int, core.int, core.String])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
-      _create_bag: dart.definiteFunctionType(dart.dynamic, []),
-      _bag_set: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_bag', '_bag_set']
-  });
-  dart.registerExtension(dart.global.Blob, html$.Blob);
-  const _requestDevice_1 = Symbol('_requestDevice_1');
-  dart.defineExtensionNames([
-    'requestDevice'
-  ]);
-  html$.Bluetooth = class Bluetooth extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.requestDevice](options) {
-      let options_1 = html_common.convertDartToNative_Dictionary(options);
-      return this[_requestDevice_1](options_1);
-    }
-    [_requestDevice_1](...args) {
-      return this.requestDevice.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Bluetooth, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Bluetooth, [])}),
-    methods: () => ({
-      [dartx.requestDevice]: dart.definiteFunctionType(async.Future, [core.Map]),
-      [_requestDevice_1]: dart.definiteFunctionType(async.Future, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.Bluetooth, html$.Bluetooth);
-  dart.defineExtensionNames([
-    'connectGatt',
-    'deviceClass',
-    'instanceID',
-    'name',
-    'paired',
-    'productID',
-    'productVersion',
-    'vendorID',
-    'vendorIDSource'
-  ]);
-  html$.BluetoothDevice = class BluetoothDevice extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.deviceClass]() {
-      return this.deviceClass;
-    }
-    get [dartx.instanceID]() {
-      return this.instanceID;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.paired]() {
-      return this.paired;
-    }
-    get [dartx.productID]() {
-      return this.productID;
-    }
-    get [dartx.productVersion]() {
-      return this.productVersion;
-    }
-    get [dartx.vendorID]() {
-      return this.vendorID;
-    }
-    get [dartx.vendorIDSource]() {
-      return this.vendorIDSource;
-    }
-    [dartx.connectGatt](...args) {
-      return this.connectGATT.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.BluetoothDevice, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothDevice, [])}),
-    fields: () => ({
-      [dartx.deviceClass]: core.int,
-      [dartx.instanceID]: core.String,
-      [dartx.name]: core.String,
-      [dartx.paired]: core.bool,
-      [dartx.productID]: core.int,
-      [dartx.productVersion]: core.int,
-      [dartx.vendorID]: core.int,
-      [dartx.vendorIDSource]: core.String
-    }),
-    methods: () => ({[dartx.connectGatt]: dart.definiteFunctionType(async.Future, [])})
-  });
-  dart.registerExtension(dart.global.BluetoothDevice, html$.BluetoothDevice);
-  dart.defineExtensionNames([
-    'readValue',
-    'writeValue',
-    'uuid'
-  ]);
-  html$.BluetoothGattCharacteristic = class BluetoothGattCharacteristic extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.uuid]() {
-      return this.uuid;
-    }
-    [dartx.readValue](...args) {
-      return this.readValue.apply(this, args);
-    }
-    [dartx.writeValue](...args) {
-      return this.writeValue.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.BluetoothGattCharacteristic, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattCharacteristic, [])}),
-    fields: () => ({[dartx.uuid]: core.String}),
-    methods: () => ({
-      [dartx.readValue]: dart.definiteFunctionType(async.Future, []),
-      [dartx.writeValue]: dart.definiteFunctionType(async.Future, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.BluetoothGATTCharacteristic, html$.BluetoothGattCharacteristic);
-  dart.defineExtensionNames([
-    'getPrimaryService',
-    'connected'
-  ]);
-  html$.BluetoothGattRemoteServer = class BluetoothGattRemoteServer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.connected]() {
-      return this.connected;
-    }
-    [dartx.getPrimaryService](...args) {
-      return this.getPrimaryService.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.BluetoothGattRemoteServer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattRemoteServer, [])}),
-    fields: () => ({[dartx.connected]: core.bool}),
-    methods: () => ({[dartx.getPrimaryService]: dart.definiteFunctionType(async.Future, [dart.dynamic])})
-  });
-  dart.registerExtension(dart.global.BluetoothGATTRemoteServer, html$.BluetoothGattRemoteServer);
-  dart.defineExtensionNames([
-    'getCharacteristic',
-    'isPrimary',
-    'uuid'
-  ]);
-  html$.BluetoothGattService = class BluetoothGattService extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.isPrimary]() {
-      return this.isPrimary;
-    }
-    get [dartx.uuid]() {
-      return this.uuid;
-    }
-    [dartx.getCharacteristic](...args) {
-      return this.getCharacteristic.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.BluetoothGattService, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattService, [])}),
-    fields: () => ({
-      [dartx.isPrimary]: core.bool,
-      [dartx.uuid]: core.String
-    }),
-    methods: () => ({[dartx.getCharacteristic]: dart.definiteFunctionType(async.Future, [dart.dynamic])})
-  });
-  dart.registerExtension(dart.global.BluetoothGATTService, html$.BluetoothGattService);
-  html$.BluetoothUuid = class BluetoothUuid extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.BluetoothUuid, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothUuid, [])}),
-    statics: () => ({
-      canonicalUuid: dart.definiteFunctionType(core.String, [core.int]),
-      getCharacteristic: dart.definiteFunctionType(core.String, [core.Object]),
-      getDescriptor: dart.definiteFunctionType(core.String, [core.Object]),
-      getService: dart.definiteFunctionType(core.String, [core.Object])
-    }),
-    names: ['canonicalUuid', 'getCharacteristic', 'getDescriptor', 'getService']
-  });
-  dart.registerExtension(dart.global.BluetoothUUID, html$.BluetoothUuid);
-  dart.defineExtensionNames([
-    'arrayBuffer',
-    'blob',
-    'json',
-    'text',
-    'bodyUsed'
-  ]);
-  html$.Body = class Body extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.bodyUsed]() {
-      return this.bodyUsed;
-    }
-    [dartx.arrayBuffer](...args) {
-      return this.arrayBuffer.apply(this, args);
-    }
-    [dartx.blob](...args) {
-      return this.blob.apply(this, args);
-    }
-    [dartx.json](...args) {
-      return this.json.apply(this, args);
-    }
-    [dartx.text](...args) {
-      return this.text.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Body, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Body, [])}),
-    fields: () => ({[dartx.bodyUsed]: core.bool}),
-    methods: () => ({
-      [dartx.arrayBuffer]: dart.definiteFunctionType(async.Future, []),
-      [dartx.blob]: dart.definiteFunctionType(async.Future, []),
-      [dartx.json]: dart.definiteFunctionType(async.Future, []),
-      [dartx.text]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.Body, html$.Body);
-  dart.defineExtensionNames([
-    'onBlur',
-    'onError',
-    'onFocus',
-    'onHashChange',
-    'onLoad',
-    'onMessage',
-    'onOffline',
-    'onOnline',
-    'onPopState',
-    'onResize',
-    'onScroll',
-    'onStorage',
-    'onUnload'
-  ]);
-  html$.BodyElement = class BodyElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.BodyElement._check(html$.document[dartx.createElement]("body"));
-    }
-    created() {
-      super.created();
-    }
-    get [dartx.onBlur]() {
-      return html$.BodyElement.blurEvent.forElement(this);
-    }
-    get [dartx.onError]() {
-      return html$.BodyElement.errorEvent.forElement(this);
-    }
-    get [dartx.onFocus]() {
-      return html$.BodyElement.focusEvent.forElement(this);
-    }
-    get [dartx.onHashChange]() {
-      return html$.BodyElement.hashChangeEvent.forElement(this);
-    }
-    get [dartx.onLoad]() {
-      return html$.BodyElement.loadEvent.forElement(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.BodyElement.messageEvent.forElement(this);
-    }
-    get [dartx.onOffline]() {
-      return html$.BodyElement.offlineEvent.forElement(this);
-    }
-    get [dartx.onOnline]() {
-      return html$.BodyElement.onlineEvent.forElement(this);
-    }
-    get [dartx.onPopState]() {
-      return html$.BodyElement.popStateEvent.forElement(this);
-    }
-    get [dartx.onResize]() {
-      return html$.BodyElement.resizeEvent.forElement(this);
-    }
-    get [dartx.onScroll]() {
-      return html$.BodyElement.scrollEvent.forElement(this);
-    }
-    get [dartx.onStorage]() {
-      return html$.BodyElement.storageEvent.forElement(this);
-    }
-    get [dartx.onUnload]() {
-      return html$.BodyElement.unloadEvent.forElement(this);
-    }
-  };
-  dart.defineNamedConstructor(html$.BodyElement, 'created');
-  html$.BodyElement[dart.implements] = () => [html$.WindowEventHandlers];
-  dart.setSignature(html$.BodyElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.BodyElement, []),
-      new: dart.definiteFunctionType(html$.BodyElement, []),
-      created: dart.definiteFunctionType(html$.BodyElement, [])
-    }),
-    getters: () => ({
-      [dartx.onHashChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(html$.ElementStream$(html$.MessageEvent), []),
-      [dartx.onOffline]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onOnline]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-      [dartx.onPopState]: dart.definiteFunctionType(html$.ElementStream$(html$.PopStateEvent), []),
-      [dartx.onStorage]: dart.definiteFunctionType(html$.ElementStream$(html$.StorageEvent), []),
-      [dartx.onUnload]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
-    }),
-    sfields: () => ({
-      blurEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      focusEvent: EventStreamProviderOfEvent(),
-      hashChangeEvent: EventStreamProviderOfEvent(),
-      loadEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent(),
-      offlineEvent: EventStreamProviderOfEvent(),
-      onlineEvent: EventStreamProviderOfEvent(),
-      popStateEvent: EventStreamProviderOfPopStateEvent(),
-      resizeEvent: EventStreamProviderOfEvent(),
-      scrollEvent: EventStreamProviderOfEvent(),
-      storageEvent: EventStreamProviderOfStorageEvent(),
-      unloadEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(html$.BodyElement, {
-    get blurEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('blur'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get focusEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('focus'));
-    },
-    get hashChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
-    },
-    get loadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('load'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    },
-    get offlineEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('offline'));
-    },
-    get onlineEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('online'));
-    },
-    get popStateEvent() {
-      return dart.const(new (EventStreamProviderOfPopStateEvent())('popstate'));
-    },
-    get resizeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('resize'));
-    },
-    get scrollEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('scroll'));
-    },
-    get storageEvent() {
-      return dart.const(new (EventStreamProviderOfStorageEvent())('storage'));
-    },
-    get unloadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('unload'));
-    }
-  });
-  dart.registerExtension(dart.global.HTMLBodyElement, html$.BodyElement);
-  dart.defineExtensionNames([
-    'checkValidity',
-    'reportValidity',
-    'setCustomValidity',
-    'autofocus',
-    'disabled',
-    'form',
-    'formAction',
-    'formEnctype',
-    'formMethod',
-    'formNoValidate',
-    'formTarget',
-    'labels',
-    'name',
-    'type',
-    'validationMessage',
-    'validity',
-    'value',
-    'willValidate'
-  ]);
-  html$.ButtonElement = class ButtonElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ButtonElement._check(html$.document[dartx.createElement]("button"));
-    }
-    created() {
-      this[dartx.autofocus] = null;
-      this[dartx.disabled] = null;
-      this[dartx.form] = null;
-      this[dartx.formAction] = null;
-      this[dartx.formEnctype] = null;
-      this[dartx.formMethod] = null;
-      this[dartx.formNoValidate] = null;
-      this[dartx.formTarget] = null;
-      this[dartx.labels] = null;
-      this[dartx.name] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.value] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    get [dartx.autofocus]() {
-      return this.autofocus;
-    }
-    set [dartx.autofocus](value) {
-      this.autofocus = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.formAction]() {
-      return this.formAction;
-    }
-    set [dartx.formAction](value) {
-      this.formAction = value;
-    }
-    get [dartx.formEnctype]() {
-      return this.formEnctype;
-    }
-    set [dartx.formEnctype](value) {
-      this.formEnctype = value;
-    }
-    get [dartx.formMethod]() {
-      return this.formMethod;
-    }
-    set [dartx.formMethod](value) {
-      this.formMethod = value;
-    }
-    get [dartx.formNoValidate]() {
-      return this.formNoValidate;
-    }
-    set [dartx.formNoValidate](value) {
-      this.formNoValidate = value;
-    }
-    get [dartx.formTarget]() {
-      return this.formTarget;
-    }
-    set [dartx.formTarget](value) {
-      this.formTarget = value;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.ButtonElement, 'created');
-  dart.setSignature(html$.ButtonElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ButtonElement, []),
-      new: dart.definiteFunctionType(html$.ButtonElement, []),
-      created: dart.definiteFunctionType(html$.ButtonElement, [])
-    }),
-    fields: () => ({
-      [dartx.autofocus]: core.bool,
-      [dartx.disabled]: core.bool,
-      [dartx.form]: html$.FormElement,
-      [dartx.formAction]: core.String,
-      [dartx.formEnctype]: core.String,
-      [dartx.formMethod]: core.String,
-      [dartx.formNoValidate]: core.bool,
-      [dartx.formTarget]: core.String,
-      [dartx.labels]: ListOfNode(),
-      [dartx.name]: core.String,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.value]: core.String,
-      [dartx.willValidate]: core.bool
-    }),
-    methods: () => ({
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLButtonElement, html$.ButtonElement);
-  const _createTextNode = Symbol('_createTextNode');
-  dart.defineExtensionNames([
-    'appendData',
-    'deleteData',
-    'insertData',
-    'replaceData',
-    'substringData',
-    'after',
-    'before',
-    'data',
-    'length',
-    'nextElementSibling',
-    'previousElementSibling'
-  ]);
-  html$.CharacterData = class CharacterData extends html$.Node {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    set [dartx.data](value) {
-      this.data = value;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.appendData](...args) {
-      return this.appendData.apply(this, args);
-    }
-    [dartx.deleteData](...args) {
-      return this.deleteData.apply(this, args);
-    }
-    [dartx.insertData](...args) {
-      return this.insertData.apply(this, args);
-    }
-    [dartx.replaceData](...args) {
-      return this.replaceData.apply(this, args);
-    }
-    [dartx.substringData](...args) {
-      return this.substringData.apply(this, args);
-    }
-    [dartx.after](...args) {
-      return this.after.apply(this, args);
-    }
-    [dartx.before](...args) {
-      return this.before.apply(this, args);
-    }
-    get [dartx.nextElementSibling]() {
-      return this.nextElementSibling;
-    }
-    get [dartx.previousElementSibling]() {
-      return this.previousElementSibling;
-    }
-  };
-  html$.CharacterData[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.ChildNode];
-  dart.setSignature(html$.CharacterData, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CharacterData, [])}),
-    fields: () => ({
-      [dartx.data]: core.String,
-      [dartx.length]: core.int,
-      [dartx.nextElementSibling]: html$.Element,
-      [dartx.previousElementSibling]: html$.Element
-    }),
-    methods: () => ({
-      [dartx.appendData]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.deleteData]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.insertData]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
-      [dartx.replaceData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.String]),
-      [dartx.substringData]: dart.definiteFunctionType(core.String, [core.int, core.int]),
-      [dartx.after]: dart.definiteFunctionType(dart.void, [core.Object]),
-      [dartx.before]: dart.definiteFunctionType(dart.void, [core.Object])
-    })
-  });
-  dart.registerExtension(dart.global.CharacterData, html$.CharacterData);
-  dart.defineExtensionNames([
-    'getDestinationInsertionPoints',
-    'splitText',
-    'wholeText'
-  ]);
-  html$.Text = class Text extends html$.CharacterData {
-    static new(data) {
-      return html$.document[_createTextNode](data);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.wholeText]() {
-      return this.wholeText;
-    }
-    [dartx.getDestinationInsertionPoints](...args) {
-      return this.getDestinationInsertionPoints.apply(this, args);
-    }
-    [dartx.splitText](...args) {
-      return this.splitText.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Text, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.Text, [core.String]),
-      _: dart.definiteFunctionType(html$.Text, [])
-    }),
-    fields: () => ({[dartx.wholeText]: core.String}),
-    methods: () => ({
-      [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html$.Node), []),
-      [dartx.splitText]: dart.definiteFunctionType(html$.Text, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.Text, html$.Text);
-  html$.CDataSection = class CDataSection extends html$.Text {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.CDataSection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CDataSection, [])})
-  });
-  dart.registerExtension(dart.global.CDATASection, html$.CDataSection);
-  const _match_1 = Symbol('_match_1');
-  const _match_2 = Symbol('_match_2');
-  dart.defineExtensionNames([
-    'delete',
-    'has',
-    'keys',
-    'match',
-    'open'
-  ]);
-  html$.CacheStorage = class CacheStorage extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.delete](...args) {
-      return this.delete.apply(this, args);
-    }
-    [dartx.has](...args) {
-      return this.has.apply(this, args);
-    }
-    [dartx.keys](...args) {
-      return this.keys.apply(this, args);
-    }
-    [dartx.match](request, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_match_1](request, options_1);
-      }
-      return this[_match_2](request);
-    }
-    [_match_1](...args) {
-      return this.match.apply(this, args);
-    }
-    [_match_2](...args) {
-      return this.match.apply(this, args);
-    }
-    [dartx.open](...args) {
-      return this.open.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CacheStorage, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CacheStorage, [])}),
-    methods: () => ({
-      [dartx.delete]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.has]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.keys]: dart.definiteFunctionType(async.Future, []),
-      [dartx.match]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
-      [_match_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
-      [_match_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.open]: dart.definiteFunctionType(async.Future, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.CacheStorage, html$.CacheStorage);
-  const _getContext_1 = Symbol('_getContext_1');
-  const _getContext_2 = Symbol('_getContext_2');
-  const _toDataUrl = Symbol('_toDataUrl');
-  dart.defineExtensionNames([
-    'getContext',
-    'onWebGlContextLost',
-    'onWebGlContextRestored',
-    'context2D',
-    'getContext3d',
-    'toDataUrl',
-    'height',
-    'width'
-  ]);
-  html$.CanvasElement = class CanvasElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(opts) {
-      let width = opts && 'width' in opts ? opts.width : null;
-      let height = opts && 'height' in opts ? opts.height : null;
-      let e = html$.CanvasElement._check(html$.document[dartx.createElement]("canvas"));
-      if (width != null) e[dartx.width] = width;
-      if (height != null) e[dartx.height] = height;
-      return e;
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.width] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    [dartx.getContext](contextId, attributes) {
-      if (attributes === void 0) attributes = null;
-      if (attributes != null) {
-        let attributes_1 = html_common.convertDartToNative_Dictionary(attributes);
-        return this[_getContext_1](contextId, attributes_1);
-      }
-      return this[_getContext_2](contextId);
-    }
-    [_getContext_1](...args) {
-      return this.getContext.apply(this, args);
-    }
-    [_getContext_2](...args) {
-      return this.getContext.apply(this, args);
-    }
-    [_toDataUrl](...args) {
-      return this.toDataURL.apply(this, args);
-    }
-    get [dartx.onWebGlContextLost]() {
-      return html$.CanvasElement.webGlContextLostEvent.forElement(this);
-    }
-    get [dartx.onWebGlContextRestored]() {
-      return html$.CanvasElement.webGlContextRestoredEvent.forElement(this);
-    }
-    get [dartx.context2D]() {
-      return this.getContext('2d');
-    }
-    [dartx.getContext3d](opts) {
-      let alpha = opts && 'alpha' in opts ? opts.alpha : true;
-      let depth = opts && 'depth' in opts ? opts.depth : true;
-      let stencil = opts && 'stencil' in opts ? opts.stencil : false;
-      let antialias = opts && 'antialias' in opts ? opts.antialias : true;
-      let premultipliedAlpha = opts && 'premultipliedAlpha' in opts ? opts.premultipliedAlpha : true;
-      let preserveDrawingBuffer = opts && 'preserveDrawingBuffer' in opts ? opts.preserveDrawingBuffer : false;
-      let options = dart.map({alpha: alpha, depth: depth, stencil: stencil, antialias: antialias, premultipliedAlpha: premultipliedAlpha, preserveDrawingBuffer: preserveDrawingBuffer}, core.String, dart.dynamic);
-      let context = this[dartx.getContext]('webgl', options);
-      if (context == null) {
-        context = this[dartx.getContext]('experimental-webgl', options);
-      }
-      return web_gl.RenderingContext._check(context);
-    }
-    [dartx.toDataUrl](type, quality) {
-      if (type === void 0) type = 'image/png';
-      if (quality === void 0) quality = null;
-      return this[_toDataUrl](type, quality);
-    }
-  };
-  dart.defineNamedConstructor(html$.CanvasElement, 'created');
-  html$.CanvasElement[dart.implements] = () => [html$.CanvasImageSource];
-  dart.setSignature(html$.CanvasElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.CanvasElement, []),
-      new: dart.definiteFunctionType(html$.CanvasElement, [], {width: core.int, height: core.int}),
-      created: dart.definiteFunctionType(html$.CanvasElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: core.int,
-      [dartx.width]: core.int
-    }),
-    getters: () => ({
-      [dartx.onWebGlContextLost]: dart.definiteFunctionType(html$.ElementStream$(web_gl.ContextEvent), []),
-      [dartx.onWebGlContextRestored]: dart.definiteFunctionType(html$.ElementStream$(web_gl.ContextEvent), []),
-      [dartx.context2D]: dart.definiteFunctionType(html$.CanvasRenderingContext2D, [])
-    }),
-    methods: () => ({
-      [dartx.getContext]: dart.definiteFunctionType(core.Object, [core.String], [core.Map]),
-      [_getContext_1]: dart.definiteFunctionType(core.Object, [dart.dynamic, dart.dynamic]),
-      [_getContext_2]: dart.definiteFunctionType(core.Object, [dart.dynamic]),
-      [_toDataUrl]: dart.definiteFunctionType(core.String, [core.String], [dart.dynamic]),
-      [dartx.getContext3d]: dart.definiteFunctionType(web_gl.RenderingContext, [], {alpha: dart.dynamic, depth: dart.dynamic, stencil: dart.dynamic, antialias: dart.dynamic, premultipliedAlpha: dart.dynamic, preserveDrawingBuffer: dart.dynamic}),
-      [dartx.toDataUrl]: dart.definiteFunctionType(core.String, [], [core.String, core.num])
-    }),
-    sfields: () => ({
-      webGlContextLostEvent: EventStreamProviderOfContextEvent(),
-      webGlContextRestoredEvent: EventStreamProviderOfContextEvent()
-    })
-  });
-  dart.defineLazy(html$.CanvasElement, {
-    get webGlContextLostEvent() {
-      return dart.const(new (EventStreamProviderOfContextEvent())('webglcontextlost'));
-    },
-    get webGlContextRestoredEvent() {
-      return dart.const(new (EventStreamProviderOfContextEvent())('webglcontextrestored'));
-    }
-  });
-  dart.registerExtension(dart.global.HTMLCanvasElement, html$.CanvasElement);
-  dart.defineExtensionNames([
-    'addColorStop'
-  ]);
-  html$.CanvasGradient = class CanvasGradient extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.addColorStop](...args) {
-      return this.addColorStop.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CanvasGradient, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CanvasGradient, [])}),
-    methods: () => ({[dartx.addColorStop]: dart.definiteFunctionType(dart.void, [core.num, core.String])})
-  });
-  dart.registerExtension(dart.global.CanvasGradient, html$.CanvasGradient);
-  dart.defineExtensionNames([
-    'setTransform'
-  ]);
-  html$.CanvasPattern = class CanvasPattern extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.setTransform](...args) {
-      return this.setTransform.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CanvasPattern, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CanvasPattern, [])}),
-    methods: () => ({[dartx.setTransform]: dart.definiteFunctionType(dart.void, [svg$.Matrix])})
-  });
-  dart.registerExtension(dart.global.CanvasPattern, html$.CanvasPattern);
-  html$.CanvasRenderingContext = class CanvasRenderingContext extends core.Object {};
-  const _addHitRegion_1 = Symbol('_addHitRegion_1');
-  const _addHitRegion_2 = Symbol('_addHitRegion_2');
-  const _createImageData_1 = Symbol('_createImageData_1');
-  const _createImageData_2 = Symbol('_createImageData_2');
-  const _getContextAttributes_1 = Symbol('_getContextAttributes_1');
-  const _getImageData_1 = Symbol('_getImageData_1');
-  const _getLineDash = Symbol('_getLineDash');
-  const _putImageData_1 = Symbol('_putImageData_1');
-  const _putImageData_2 = Symbol('_putImageData_2');
-  const _arc = Symbol('_arc');
-  dart.defineExtensionNames([
-    'addHitRegion',
-    'beginPath',
-    'clearHitRegions',
-    'clearRect',
-    'clip',
-    'createImageData',
-    'createLinearGradient',
-    'createPattern',
-    'createRadialGradient',
-    'drawFocusIfNeeded',
-    'fillRect',
-    'getContextAttributes',
-    'getImageData',
-    'isContextLost',
-    'isPointInPath',
-    'isPointInStroke',
-    'measureText',
-    'putImageData',
-    'removeHitRegion',
-    'resetTransform',
-    'restore',
-    'rotate',
-    'save',
-    'scale',
-    'scrollPathIntoView',
-    'setTransform',
-    'stroke',
-    'strokeRect',
-    'strokeText',
-    'transform',
-    'translate',
-    'arcTo',
-    'bezierCurveTo',
-    'closePath',
-    'ellipse',
-    'lineTo',
-    'moveTo',
-    'quadraticCurveTo',
-    'rect',
-    'createImageDataFromImageData',
-    'setFillColorRgb',
-    'setFillColorHsl',
-    'setStrokeColorRgb',
-    'setStrokeColorHsl',
-    'arc',
-    'createPatternFromImage',
-    'drawImageToRect',
-    'drawImage',
-    'drawImageScaled',
-    'drawImageScaledFromSource',
-    'lineDashOffset',
-    'lineDashOffset',
-    'getLineDash',
-    'setLineDash',
-    'fillText',
-    'fill',
-    'backingStorePixelRatio',
-    'canvas',
-    'currentTransform',
-    'direction',
-    'fillStyle',
-    'filter',
-    'font',
-    'globalAlpha',
-    'globalCompositeOperation',
-    'imageSmoothingEnabled',
-    'lineCap',
-    'lineJoin',
-    'lineWidth',
-    'miterLimit',
-    'shadowBlur',
-    'shadowColor',
-    'shadowOffsetX',
-    'shadowOffsetY',
-    'strokeStyle',
-    'textAlign',
-    'textBaseline'
-  ]);
-  html$.CanvasRenderingContext2D = class CanvasRenderingContext2D extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.canvas]() {
-      return this.canvas;
-    }
-    get [dartx.currentTransform]() {
-      return this.currentTransform;
-    }
-    set [dartx.currentTransform](value) {
-      this.currentTransform = value;
-    }
-    get [dartx.direction]() {
-      return this.direction;
-    }
-    set [dartx.direction](value) {
-      this.direction = value;
-    }
-    get [dartx.fillStyle]() {
-      return this.fillStyle;
-    }
-    set [dartx.fillStyle](value) {
-      this.fillStyle = value;
-    }
-    get [dartx.filter]() {
-      return this.filter;
-    }
-    set [dartx.filter](value) {
-      this.filter = value;
-    }
-    get [dartx.font]() {
-      return this.font;
-    }
-    set [dartx.font](value) {
-      this.font = value;
-    }
-    get [dartx.globalAlpha]() {
-      return this.globalAlpha;
-    }
-    set [dartx.globalAlpha](value) {
-      this.globalAlpha = value;
-    }
-    get [dartx.globalCompositeOperation]() {
-      return this.globalCompositeOperation;
-    }
-    set [dartx.globalCompositeOperation](value) {
-      this.globalCompositeOperation = value;
-    }
-    get [dartx.imageSmoothingEnabled]() {
-      return this.imageSmoothingEnabled;
-    }
-    set [dartx.imageSmoothingEnabled](value) {
-      this.imageSmoothingEnabled = value;
-    }
-    get [dartx.lineCap]() {
-      return this.lineCap;
-    }
-    set [dartx.lineCap](value) {
-      this.lineCap = value;
-    }
-    get [dartx.lineJoin]() {
-      return this.lineJoin;
-    }
-    set [dartx.lineJoin](value) {
-      this.lineJoin = value;
-    }
-    get [dartx.lineWidth]() {
-      return this.lineWidth;
-    }
-    set [dartx.lineWidth](value) {
-      this.lineWidth = value;
-    }
-    get [dartx.miterLimit]() {
-      return this.miterLimit;
-    }
-    set [dartx.miterLimit](value) {
-      this.miterLimit = value;
-    }
-    get [dartx.shadowBlur]() {
-      return this.shadowBlur;
-    }
-    set [dartx.shadowBlur](value) {
-      this.shadowBlur = value;
-    }
-    get [dartx.shadowColor]() {
-      return this.shadowColor;
-    }
-    set [dartx.shadowColor](value) {
-      this.shadowColor = value;
-    }
-    get [dartx.shadowOffsetX]() {
-      return this.shadowOffsetX;
-    }
-    set [dartx.shadowOffsetX](value) {
-      this.shadowOffsetX = value;
-    }
-    get [dartx.shadowOffsetY]() {
-      return this.shadowOffsetY;
-    }
-    set [dartx.shadowOffsetY](value) {
-      this.shadowOffsetY = value;
-    }
-    get [dartx.strokeStyle]() {
-      return this.strokeStyle;
-    }
-    set [dartx.strokeStyle](value) {
-      this.strokeStyle = value;
-    }
-    get [dartx.textAlign]() {
-      return this.textAlign;
-    }
-    set [dartx.textAlign](value) {
-      this.textAlign = value;
-    }
-    get [dartx.textBaseline]() {
-      return this.textBaseline;
-    }
-    set [dartx.textBaseline](value) {
-      this.textBaseline = value;
-    }
-    [dartx.addHitRegion](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[_addHitRegion_1](options_1);
-        return;
-      }
-      this[_addHitRegion_2]();
-      return;
-    }
-    [_addHitRegion_1](...args) {
-      return this.addHitRegion.apply(this, args);
-    }
-    [_addHitRegion_2](...args) {
-      return this.addHitRegion.apply(this, args);
-    }
-    [dartx.beginPath](...args) {
-      return this.beginPath.apply(this, args);
-    }
-    [dartx.clearHitRegions](...args) {
-      return this.clearHitRegions.apply(this, args);
-    }
-    [dartx.clearRect](...args) {
-      return this.clearRect.apply(this, args);
-    }
-    [dartx.clip](...args) {
-      return this.clip.apply(this, args);
-    }
-    [dartx.createImageData](imagedata_OR_sw, sh) {
-      if (sh === void 0) sh = null;
-      if (html$.ImageData.is(imagedata_OR_sw) && sh == null) {
-        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata_OR_sw);
-        return html_common.convertNativeToDart_ImageData(this[_createImageData_1](imagedata_1));
-      }
-      if (sh != null && typeof imagedata_OR_sw == 'number') {
-        return html_common.convertNativeToDart_ImageData(this[_createImageData_2](imagedata_OR_sw, sh));
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_createImageData_1](...args) {
-      return this.createImageData.apply(this, args);
-    }
-    [_createImageData_2](...args) {
-      return this.createImageData.apply(this, args);
-    }
-    [dartx.createLinearGradient](...args) {
-      return this.createLinearGradient.apply(this, args);
-    }
-    [dartx.createPattern](...args) {
-      return this.createPattern.apply(this, args);
-    }
-    [dartx.createRadialGradient](...args) {
-      return this.createRadialGradient.apply(this, args);
-    }
-    [dartx.drawFocusIfNeeded](...args) {
-      return this.drawFocusIfNeeded.apply(this, args);
-    }
-    [dartx.fillRect](...args) {
-      return this.fillRect.apply(this, args);
-    }
-    [dartx.getContextAttributes]() {
-      return html_common.convertNativeToDart_Dictionary(this[_getContextAttributes_1]());
-    }
-    [_getContextAttributes_1](...args) {
-      return this.getContextAttributes.apply(this, args);
-    }
-    [dartx.getImageData](sx, sy, sw, sh) {
-      return html_common.convertNativeToDart_ImageData(this[_getImageData_1](sx, sy, sw, sh));
-    }
-    [_getImageData_1](...args) {
-      return this.getImageData.apply(this, args);
-    }
-    [_getLineDash](...args) {
-      return this.getLineDash.apply(this, args);
-    }
-    [dartx.isContextLost](...args) {
-      return this.isContextLost.apply(this, args);
-    }
-    [dartx.isPointInPath](...args) {
-      return this.isPointInPath.apply(this, args);
-    }
-    [dartx.isPointInStroke](...args) {
-      return this.isPointInStroke.apply(this, args);
-    }
-    [dartx.measureText](...args) {
-      return this.measureText.apply(this, args);
-    }
-    [dartx.putImageData](imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) {
-      if (dirtyX === void 0) dirtyX = null;
-      if (dirtyY === void 0) dirtyY = null;
-      if (dirtyWidth === void 0) dirtyWidth = null;
-      if (dirtyHeight === void 0) dirtyHeight = null;
-      if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
-        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
-        this[_putImageData_1](imagedata_1, dx, dy);
-        return;
-      }
-      if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
-        let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
-        this[_putImageData_2](imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_putImageData_1](...args) {
-      return this.putImageData.apply(this, args);
-    }
-    [_putImageData_2](...args) {
-      return this.putImageData.apply(this, args);
-    }
-    [dartx.removeHitRegion](...args) {
-      return this.removeHitRegion.apply(this, args);
-    }
-    [dartx.resetTransform](...args) {
-      return this.resetTransform.apply(this, args);
-    }
-    [dartx.restore](...args) {
-      return this.restore.apply(this, args);
-    }
-    [dartx.rotate](...args) {
-      return this.rotate.apply(this, args);
-    }
-    [dartx.save](...args) {
-      return this.save.apply(this, args);
-    }
-    [dartx.scale](...args) {
-      return this.scale.apply(this, args);
-    }
-    [dartx.scrollPathIntoView](...args) {
-      return this.scrollPathIntoView.apply(this, args);
-    }
-    [dartx.setTransform](...args) {
-      return this.setTransform.apply(this, args);
-    }
-    [dartx.stroke](...args) {
-      return this.stroke.apply(this, args);
-    }
-    [dartx.strokeRect](...args) {
-      return this.strokeRect.apply(this, args);
-    }
-    [dartx.strokeText](...args) {
-      return this.strokeText.apply(this, args);
-    }
-    [dartx.transform](...args) {
-      return this.transform.apply(this, args);
-    }
-    [dartx.translate](...args) {
-      return this.translate.apply(this, args);
-    }
-    [_arc](...args) {
-      return this.arc.apply(this, args);
-    }
-    [dartx.arcTo](...args) {
-      return this.arcTo.apply(this, args);
-    }
-    [dartx.bezierCurveTo](...args) {
-      return this.bezierCurveTo.apply(this, args);
-    }
-    [dartx.closePath](...args) {
-      return this.closePath.apply(this, args);
-    }
-    [dartx.ellipse](...args) {
-      return this.ellipse.apply(this, args);
-    }
-    [dartx.lineTo](...args) {
-      return this.lineTo.apply(this, args);
-    }
-    [dartx.moveTo](...args) {
-      return this.moveTo.apply(this, args);
-    }
-    [dartx.quadraticCurveTo](...args) {
-      return this.quadraticCurveTo.apply(this, args);
-    }
-    [dartx.rect](...args) {
-      return this.rect.apply(this, args);
-    }
-    [dartx.createImageDataFromImageData](imagedata) {
-      return this.createImageData(imagedata);
-    }
-    [dartx.setFillColorRgb](r, g, b, a) {
-      if (a === void 0) a = 1;
-      this[dartx.fillStyle] = dart.str`rgba(${r}, ${g}, ${b}, ${a})`;
-    }
-    [dartx.setFillColorHsl](h, s, l, a) {
-      if (a === void 0) a = 1;
-      this[dartx.fillStyle] = dart.str`hsla(${h}, ${s}%, ${l}%, ${a})`;
-    }
-    [dartx.setStrokeColorRgb](r, g, b, a) {
-      if (a === void 0) a = 1;
-      this[dartx.strokeStyle] = dart.str`rgba(${r}, ${g}, ${b}, ${a})`;
-    }
-    [dartx.setStrokeColorHsl](h, s, l, a) {
-      if (a === void 0) a = 1;
-      this[dartx.strokeStyle] = dart.str`hsla(${h}, ${s}%, ${l}%, ${a})`;
-    }
-    [dartx.arc](x, y, radius, startAngle, endAngle, anticlockwise) {
-      if (anticlockwise === void 0) anticlockwise = false;
-      this.arc(x, y, radius, startAngle, endAngle, anticlockwise);
-    }
-    [dartx.createPatternFromImage](image, repetitionType) {
-      return this.createPattern(image, repetitionType);
-    }
-    [dartx.drawImageToRect](source, destRect, opts) {
-      let sourceRect = opts && 'sourceRect' in opts ? opts.sourceRect : null;
-      if (sourceRect == null) {
-        this[dartx.drawImageScaled](source, destRect[dartx.left], destRect[dartx.top], destRect[dartx.width], destRect[dartx.height]);
-      } else {
-        this[dartx.drawImageScaledFromSource](source, sourceRect[dartx.left], sourceRect[dartx.top], sourceRect[dartx.width], sourceRect[dartx.height], destRect[dartx.left], destRect[dartx.top], destRect[dartx.width], destRect[dartx.height]);
-      }
-    }
-    [dartx.drawImage](...args) {
-      return this.drawImage.apply(this, args);
-    }
-    [dartx.drawImageScaled](...args) {
-      return this.drawImage.apply(this, args);
-    }
-    [dartx.drawImageScaledFromSource](...args) {
-      return this.drawImage.apply(this, args);
-    }
-    get [dartx.lineDashOffset]() {
-      return this.lineDashOffset || this.webkitLineDashOffset;
-    }
-    set [dartx.lineDashOffset](value) {
-      typeof this.lineDashOffset != "undefined" ? this.lineDashOffset = value : this.webkitLineDashOffset = value;
-    }
-    [dartx.getLineDash]() {
-      if (!!this.getLineDash) {
-        return this.getLineDash();
-      } else if (!!this.webkitLineDash) {
-        return this.webkitLineDash;
-      }
-    }
-    [dartx.setLineDash](dash) {
-      if (!!this.setLineDash) {
-        this.setLineDash(dash);
-      } else if (!!this.webkitLineDash) {
-        this.webkitLineDash = dash;
-      }
-    }
-    [dartx.fillText](text, x, y, maxWidth) {
-      if (maxWidth === void 0) maxWidth = null;
-      if (maxWidth != null) {
-        this.fillText(text, x, y, maxWidth);
-      } else {
-        this.fillText(text, x, y);
-      }
-    }
-    [dartx.fill](winding) {
-      if (winding === void 0) winding = 'nonzero';
-      this.fill(winding);
-    }
-    get [dartx.backingStorePixelRatio]() {
-      return 1.0;
-    }
-  };
-  html$.CanvasRenderingContext2D[dart.implements] = () => [html$.CanvasRenderingContext];
-  dart.setSignature(html$.CanvasRenderingContext2D, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CanvasRenderingContext2D, [])}),
-    fields: () => ({
-      [dartx.canvas]: html$.CanvasElement,
-      [dartx.currentTransform]: svg$.Matrix,
-      [dartx.direction]: core.String,
-      [dartx.fillStyle]: core.Object,
-      [dartx.filter]: core.String,
-      [dartx.font]: core.String,
-      [dartx.globalAlpha]: core.num,
-      [dartx.globalCompositeOperation]: core.String,
-      [dartx.imageSmoothingEnabled]: core.bool,
-      [dartx.lineCap]: core.String,
-      [dartx.lineJoin]: core.String,
-      [dartx.lineWidth]: core.num,
-      [dartx.miterLimit]: core.num,
-      [dartx.shadowBlur]: core.num,
-      [dartx.shadowColor]: core.String,
-      [dartx.shadowOffsetX]: core.num,
-      [dartx.shadowOffsetY]: core.num,
-      [dartx.strokeStyle]: core.Object,
-      [dartx.textAlign]: core.String,
-      [dartx.textBaseline]: core.String
-    }),
-    getters: () => ({
-      [dartx.lineDashOffset]: dart.definiteFunctionType(core.num, []),
-      [dartx.backingStorePixelRatio]: dart.definiteFunctionType(core.double, [])
-    }),
-    setters: () => ({[dartx.lineDashOffset]: dart.definiteFunctionType(dart.void, [core.num])}),
-    methods: () => ({
-      [dartx.addHitRegion]: dart.definiteFunctionType(dart.void, [], [core.Map]),
-      [_addHitRegion_1]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_addHitRegion_2]: dart.definiteFunctionType(dart.void, []),
-      [dartx.beginPath]: dart.definiteFunctionType(dart.void, []),
-      [dartx.clearHitRegions]: dart.definiteFunctionType(dart.void, []),
-      [dartx.clearRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.clip]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.String]),
-      [dartx.createImageData]: dart.definiteFunctionType(html$.ImageData, [dart.dynamic], [core.num]),
-      [_createImageData_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      [_createImageData_2]: dart.definiteFunctionType(dart.dynamic, [core.num, dart.dynamic]),
-      [dartx.createLinearGradient]: dart.definiteFunctionType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
-      [dartx.createPattern]: dart.definiteFunctionType(html$.CanvasPattern, [core.Object, core.String]),
-      [dartx.createRadialGradient]: dart.definiteFunctionType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.drawFocusIfNeeded]: dart.definiteFunctionType(dart.void, [dart.dynamic], [html$.Element]),
-      [dartx.fillRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.getContextAttributes]: dart.definiteFunctionType(core.Map, []),
-      [_getContextAttributes_1]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.getImageData]: dart.definiteFunctionType(html$.ImageData, [core.num, core.num, core.num, core.num]),
-      [_getImageData_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_getLineDash]: dart.definiteFunctionType(core.List$(core.num), []),
-      [dartx.isContextLost]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isPointInPath]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.num], [dart.dynamic, core.String]),
-      [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.num], [core.num]),
-      [dartx.measureText]: dart.definiteFunctionType(html$.TextMetrics, [core.String]),
-      [dartx.putImageData]: dart.definiteFunctionType(dart.void, [html$.ImageData, core.num, core.num], [core.num, core.num, core.num, core.num]),
-      [_putImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_putImageData_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [dartx.removeHitRegion]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.resetTransform]: dart.definiteFunctionType(dart.void, []),
-      [dartx.restore]: dart.definiteFunctionType(dart.void, []),
-      [dartx.rotate]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.save]: dart.definiteFunctionType(dart.void, []),
-      [dartx.scale]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.scrollPathIntoView]: dart.definiteFunctionType(dart.void, [], [html$.Path2D]),
-      [dartx.setTransform]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.stroke]: dart.definiteFunctionType(dart.void, [], [html$.Path2D]),
-      [dartx.strokeRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.strokeText]: dart.definiteFunctionType(dart.void, [core.String, core.num, core.num], [core.num]),
-      [dartx.transform]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.translate]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [_arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
-      [dartx.arcTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
-      [dartx.bezierCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.closePath]: dart.definiteFunctionType(dart.void, []),
-      [dartx.ellipse]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
-      [dartx.lineTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.moveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.quadraticCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.rect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.createImageDataFromImageData]: dart.definiteFunctionType(html$.ImageData, [html$.ImageData]),
-      [dartx.setFillColorRgb]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.num]),
-      [dartx.setFillColorHsl]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num], [core.num]),
-      [dartx.setStrokeColorRgb]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.num]),
-      [dartx.setStrokeColorHsl]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num], [core.num]),
-      [dartx.arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num], [core.bool]),
-      [dartx.createPatternFromImage]: dart.definiteFunctionType(html$.CanvasPattern, [html$.ImageElement, core.String]),
-      [dartx.drawImageToRect]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, RectangleOfnum()], {sourceRect: RectangleOfnum()}),
-      [dartx.drawImage]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num]),
-      [dartx.drawImageScaled]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num]),
-      [dartx.drawImageScaledFromSource]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.getLineDash]: dart.definiteFunctionType(core.List$(core.num), []),
-      [dartx.setLineDash]: dart.definiteFunctionType(dart.void, [ListOfnum()]),
-      [dartx.fillText]: dart.definiteFunctionType(dart.void, [core.String, core.num, core.num], [core.num]),
-      [dartx.fill]: dart.definiteFunctionType(dart.void, [], [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.CanvasRenderingContext2D, html$.CanvasRenderingContext2D);
-  html$.ChildNode = class ChildNode extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.ChildNode, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ChildNode, [])})
-  });
-  html$.ChromiumValuebuffer = class ChromiumValuebuffer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.ChromiumValuebuffer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ChromiumValuebuffer, [])})
-  });
-  dart.registerExtension(dart.global.CHROMIUMValuebuffer, html$.ChromiumValuebuffer);
-  dart.defineExtensionNames([
-    'id'
-  ]);
-  html$.GeofencingRegion = class GeofencingRegion extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-  };
-  dart.setSignature(html$.GeofencingRegion, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.GeofencingRegion, [])}),
-    fields: () => ({[dartx.id]: core.String})
-  });
-  dart.registerExtension(dart.global.GeofencingRegion, html$.GeofencingRegion);
-  dart.defineExtensionNames([
-    'latitude',
-    'longitude',
-    'radius'
-  ]);
-  html$.CircularGeofencingRegion = class CircularGeofencingRegion extends html$.GeofencingRegion {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(init) {
-      let init_1 = html_common.convertDartToNative_Dictionary(init);
-      return html$.CircularGeofencingRegion._create_1(init_1);
-    }
-    static _create_1(init) {
-      return new self.CircularGeofencingRegion(init);
-    }
-    get [dartx.latitude]() {
-      return this.latitude;
-    }
-    get [dartx.longitude]() {
-      return this.longitude;
-    }
-    get [dartx.radius]() {
-      return this.radius;
-    }
-  };
-  dart.setSignature(html$.CircularGeofencingRegion, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.CircularGeofencingRegion, []),
-      new: dart.definiteFunctionType(html$.CircularGeofencingRegion, [core.Map])
-    }),
-    fields: () => ({
-      [dartx.latitude]: core.double,
-      [dartx.longitude]: core.double,
-      [dartx.radius]: core.double
-    }),
-    sfields: () => ({
-      MAX_RADIUS: core.num,
-      MIN_RADIUS: core.num
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.CircularGeofencingRegion, [dart.dynamic])}),
-    names: ['_create_1']
-  });
-  html$.CircularGeofencingRegion.MAX_RADIUS = 100.0;
-  html$.CircularGeofencingRegion.MIN_RADIUS = 1.0;
-  dart.registerExtension(dart.global.CircularGeofencingRegion, html$.CircularGeofencingRegion);
-  const _postMessage_1 = Symbol('_postMessage_1');
-  const _postMessage_2 = Symbol('_postMessage_2');
-  dart.defineExtensionNames([
-    'postMessage',
-    'frameType',
-    'id',
-    'url'
-  ]);
-  html$.Client = class Client extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.frameType]() {
-      return this.frameType;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Client, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Client, [])}),
-    fields: () => ({
-      [dartx.frameType]: core.String,
-      [dartx.id]: core.String,
-      [dartx.url]: core.String
-    }),
-    methods: () => ({
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.Client, html$.Client);
-  const _matchAll_1 = Symbol('_matchAll_1');
-  const _matchAll_2 = Symbol('_matchAll_2');
-  dart.defineExtensionNames([
-    'claim',
-    'matchAll',
-    'openWindow'
-  ]);
-  html$.Clients = class Clients extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.claim](...args) {
-      return this.claim.apply(this, args);
-    }
-    [dartx.matchAll](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_matchAll_1](options_1);
-      }
-      return this[_matchAll_2]();
-    }
-    [_matchAll_1](...args) {
-      return this.matchAll.apply(this, args);
-    }
-    [_matchAll_2](...args) {
-      return this.matchAll.apply(this, args);
-    }
-    [dartx.openWindow](...args) {
-      return this.openWindow.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Clients, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Clients, [])}),
-    methods: () => ({
-      [dartx.claim]: dart.definiteFunctionType(async.Future, []),
-      [dartx.matchAll]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_matchAll_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_matchAll_2]: dart.definiteFunctionType(async.Future, []),
-      [dartx.openWindow]: dart.definiteFunctionType(async.Future, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.Clients, html$.Clients);
-  dart.defineExtensionNames([
-    'clipboardData'
-  ]);
-  html$.ClipboardEvent = class ClipboardEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.clipboardData]() {
-      return this.clipboardData;
-    }
-  };
-  dart.setSignature(html$.ClipboardEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ClipboardEvent, [])}),
-    fields: () => ({[dartx.clipboardData]: html$.DataTransfer})
-  });
-  dart.registerExtension(dart.global.ClipboardEvent, html$.ClipboardEvent);
-  dart.defineExtensionNames([
-    'code',
-    'reason',
-    'wasClean'
-  ]);
-  html$.CloseEvent = class CloseEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.CloseEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.CloseEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.CloseEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.CloseEvent(type);
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-    get [dartx.reason]() {
-      return this.reason;
-    }
-    get [dartx.wasClean]() {
-      return this.wasClean;
-    }
-  };
-  dart.setSignature(html$.CloseEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.CloseEvent, []),
-      new: dart.definiteFunctionType(html$.CloseEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.code]: core.int,
-      [dartx.reason]: core.String,
-      [dartx.wasClean]: core.bool
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.CloseEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.CloseEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.CloseEvent, html$.CloseEvent);
-  html$.Comment = class Comment extends html$.CharacterData {
-    static new(data) {
-      if (data === void 0) data = null;
-      if (data != null) {
-        return html$.document.createComment(data);
-      }
-      return html$.document.createComment("");
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.Comment, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.Comment, [], [core.String]),
-      _: dart.definiteFunctionType(html$.Comment, [])
-    })
-  });
-  dart.registerExtension(dart.global.Comment, html$.Comment);
-  const _initCompositionEvent = Symbol('_initCompositionEvent');
-  const _initUIEvent = Symbol('_initUIEvent');
-  const _charCode = Symbol('_charCode');
-  const _keyCode = Symbol('_keyCode');
-  const _get_view = Symbol('_get_view');
-  const _which = Symbol('_which');
-  dart.defineExtensionNames([
-    'view',
-    'detail',
-    'sourceDevice'
-  ]);
-  html$.UIEvent = class UIEvent extends html$.Event {
-    static new(type, opts) {
-      let view = opts && 'view' in opts ? opts.view : null;
-      let detail = opts && 'detail' in opts ? opts.detail : 0;
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      if (view == null) {
-        view = html$.window;
-      }
-      let e = html$.UIEvent._check(html$.document[_createEvent]("UIEvent"));
-      e[_initUIEvent](type, canBubble, cancelable, view, detail);
-      return e;
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.UIEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.UIEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.UIEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.UIEvent(type);
-    }
-    get [_charCode]() {
-      return this.charCode;
-    }
-    get [dartx.detail]() {
-      return this.detail;
-    }
-    get [_keyCode]() {
-      return this.keyCode;
-    }
-    get [dartx.sourceDevice]() {
-      return this.sourceDevice;
-    }
-    get [dartx.view]() {
-      return html$._convertNativeToDart_Window(this[_get_view]);
-    }
-    get [_get_view]() {
-      return this.view;
-    }
-    get [_which]() {
-      return this.which;
-    }
-    [_initUIEvent](...args) {
-      return this.initUIEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.UIEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.UIEvent, [core.String], {view: html$.Window, detail: core.int, canBubble: core.bool, cancelable: core.bool}),
-      _: dart.definiteFunctionType(html$.UIEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [_charCode]: core.int,
-      [dartx.detail]: core.int,
-      [_keyCode]: core.int,
-      [dartx.sourceDevice]: html$.InputDevice,
-      [_get_view]: dart.dynamic,
-      [_which]: core.int
-    }),
-    getters: () => ({[dartx.view]: dart.definiteFunctionType(html$.WindowBase, [])}),
-    methods: () => ({[_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.UIEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.UIEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.UIEvent, html$.UIEvent);
-  dart.defineExtensionNames([
-    'data'
-  ]);
-  html$.CompositionEvent = class CompositionEvent extends html$.UIEvent {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
-      let view = opts && 'view' in opts ? opts.view : null;
-      let data = opts && 'data' in opts ? opts.data : null;
-      let locale = opts && 'locale' in opts ? opts.locale : null;
-      if (view == null) {
-        view = html$.window;
-      }
-      let e = html$.CompositionEvent._check(html$.document[_createEvent]("CompositionEvent"));
-      if (dart.test(html_common.Device.isFirefox)) {
-        e.initCompositionEvent(type, canBubble, cancelable, view, data, locale);
-      } else {
-        e[_initCompositionEvent](type, canBubble, cancelable, view, data);
-      }
-      return e;
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.CompositionEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.CompositionEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.CompositionEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.CompositionEvent(type);
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    [_initCompositionEvent](...args) {
-      return this.initCompositionEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CompositionEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.CompositionEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html$.Window, data: core.String, locale: core.String}),
-      _: dart.definiteFunctionType(html$.CompositionEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.data]: core.String}),
-    methods: () => ({[_initCompositionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.CompositionEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.CompositionEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.CompositionEvent, html$.CompositionEvent);
-  dart.defineExtensionNames([
-    'disconnect',
-    'supports',
-    'opacity',
-    'scrollLeft',
-    'scrollTop',
-    'transform'
-  ]);
-  html$.CompositorProxy = class CompositorProxy extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(element, attributeArray) {
-      return html$.CompositorProxy._create_1(element, attributeArray);
-    }
-    static _create_1(element, attributeArray) {
-      return new self.CompositorProxy(element, attributeArray);
-    }
-    get [dartx.opacity]() {
-      return this.opacity;
-    }
-    set [dartx.opacity](value) {
-      this.opacity = value;
-    }
-    get [dartx.scrollLeft]() {
-      return this.scrollLeft;
-    }
-    set [dartx.scrollLeft](value) {
-      this.scrollLeft = value;
-    }
-    get [dartx.scrollTop]() {
-      return this.scrollTop;
-    }
-    set [dartx.scrollTop](value) {
-      this.scrollTop = value;
-    }
-    get [dartx.transform]() {
-      return this.transform;
-    }
-    set [dartx.transform](value) {
-      this.transform = value;
-    }
-    [dartx.disconnect](...args) {
-      return this.disconnect.apply(this, args);
-    }
-    [dartx.supports](...args) {
-      return this.supports.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CompositorProxy, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.CompositorProxy, []),
-      new: dart.definiteFunctionType(html$.CompositorProxy, [html$.Element, ListOfString()])
-    }),
-    fields: () => ({
-      [dartx.opacity]: core.num,
-      [dartx.scrollLeft]: core.num,
-      [dartx.scrollTop]: core.num,
-      [dartx.transform]: html$.DomMatrix
-    }),
-    methods: () => ({
-      [dartx.disconnect]: dart.definiteFunctionType(dart.void, []),
-      [dartx.supports]: dart.definiteFunctionType(core.bool, [core.String])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.CompositorProxy, [dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.CompositorProxy, html$.CompositorProxy);
-  dart.defineExtensionNames([
-    'postMessage',
-    'terminate',
-    'onError',
-    'onMessage'
-  ]);
-  html$.CompositorWorker = class CompositorWorker extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(scriptUrl) {
-      return html$.CompositorWorker._create_1(scriptUrl);
-    }
-    static _create_1(scriptUrl) {
-      return new self.CompositorWorker(scriptUrl);
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [dartx.terminate](...args) {
-      return this.terminate.apply(this, args);
-    }
-    get [dartx.onError]() {
-      return html$.CompositorWorker.errorEvent.forTarget(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.CompositorWorker.messageEvent.forTarget(this);
-    }
-  };
-  html$.CompositorWorker[dart.implements] = () => [html$.AbstractWorker];
-  dart.setSignature(html$.CompositorWorker, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.CompositorWorker, []),
-      new: dart.definiteFunctionType(html$.CompositorWorker, [core.String])
-    }),
-    getters: () => ({
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])
-    }),
-    methods: () => ({
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.terminate]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      errorEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent()
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.CompositorWorker, [dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.defineLazy(html$.CompositorWorker, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.CompositorWorker, html$.CompositorWorker);
-  const _fetch_1 = Symbol('_fetch_1');
-  const _fetch_2 = Symbol('_fetch_2');
-  const _webkitRequestFileSystem = Symbol('_webkitRequestFileSystem');
-  const _webkitResolveLocalFileSystemUrl = Symbol('_webkitResolveLocalFileSystemUrl');
-  const _setInterval_String = Symbol('_setInterval_String');
-  const _setTimeout_String = Symbol('_setTimeout_String');
-  const _clearInterval = Symbol('_clearInterval');
-  const _clearTimeout = Symbol('_clearTimeout');
-  const _setInterval = Symbol('_setInterval');
-  const _setTimeout = Symbol('_setTimeout');
-  dart.defineExtensionNames([
-    'close',
-    'fetch',
-    'importScripts',
-    'webkitRequestFileSystem',
-    'requestFileSystemSync',
-    'resolveLocalFileSystemSyncUrl',
-    'webkitResolveLocalFileSystemUrl',
-    'atob',
-    'btoa',
-    'onError',
-    'caches',
-    'console',
-    'crypto',
-    'indexedDB',
-    'location',
-    'navigator',
-    'performance',
-    'self'
-  ]);
-  html$.WorkerGlobalScope = class WorkerGlobalScope extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.caches]() {
-      return this.caches;
-    }
-    get [dartx.console]() {
-      return this.console;
-    }
-    get [dartx.crypto]() {
-      return this.crypto;
-    }
-    get [dartx.indexedDB]() {
-      return this.indexedDB;
-    }
-    get [dartx.location]() {
-      return this.location;
-    }
-    get [dartx.navigator]() {
-      return this.navigator;
-    }
-    get [dartx.performance]() {
-      return this.performance;
-    }
-    get [dartx.self]() {
-      return this.self;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.fetch](input, init) {
-      if (init === void 0) init = null;
-      if (init != null) {
-        let init_1 = html_common.convertDartToNative_Dictionary(init);
-        return this[_fetch_1](input, init_1);
-      }
-      return this[_fetch_2](input);
-    }
-    [_fetch_1](...args) {
-      return this.fetch.apply(this, args);
-    }
-    [_fetch_2](...args) {
-      return this.fetch.apply(this, args);
-    }
-    [dartx.importScripts](...args) {
-      return this.importScripts.apply(this, args);
-    }
-    [_webkitRequestFileSystem](...args) {
-      return this.webkitRequestFileSystem.apply(this, args);
-    }
-    [dartx.webkitRequestFileSystem](type, size) {
-      let completer = CompleterOfFileSystem().new();
-      this[_webkitRequestFileSystem](type, size, dart.fn(value => {
-        completer.complete(value);
-      }, FileSystemToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [dartx.requestFileSystemSync](...args) {
-      return this.webkitRequestFileSystemSync.apply(this, args);
-    }
-    [dartx.resolveLocalFileSystemSyncUrl](...args) {
-      return this.webkitResolveLocalFileSystemSyncURL.apply(this, args);
-    }
-    [_webkitResolveLocalFileSystemUrl](...args) {
-      return this.webkitResolveLocalFileSystemURL.apply(this, args);
-    }
-    [dartx.webkitResolveLocalFileSystemUrl](url) {
-      let completer = CompleterOfEntry().new();
-      this[_webkitResolveLocalFileSystemUrl](url, dart.fn(value => {
-        completer.complete(value);
-      }, EntryToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [dartx.atob](...args) {
-      return this.atob.apply(this, args);
-    }
-    [dartx.btoa](...args) {
-      return this.btoa.apply(this, args);
-    }
-    [_setInterval_String](...args) {
-      return this.setInterval.apply(this, args);
-    }
-    [_setTimeout_String](...args) {
-      return this.setTimeout.apply(this, args);
-    }
-    [_clearInterval](...args) {
-      return this.clearInterval.apply(this, args);
-    }
-    [_clearTimeout](...args) {
-      return this.clearTimeout.apply(this, args);
-    }
-    [_setInterval](...args) {
-      return this.setInterval.apply(this, args);
-    }
-    [_setTimeout](...args) {
-      return this.setTimeout.apply(this, args);
-    }
-    get [dartx.onError]() {
-      return html$.WorkerGlobalScope.errorEvent.forTarget(this);
-    }
-  };
-  html$.WorkerGlobalScope[dart.implements] = () => [html$._WindowTimers, html$.WindowBase64];
-  dart.setSignature(html$.WorkerGlobalScope, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.WorkerGlobalScope, [])}),
-    fields: () => ({
-      [dartx.caches]: html$.CacheStorage,
-      [dartx.console]: html$.WorkerConsole,
-      [dartx.crypto]: html$.Crypto,
-      [dartx.indexedDB]: indexed_db.IdbFactory,
-      [dartx.location]: html$._WorkerLocation,
-      [dartx.navigator]: html$._WorkerNavigator,
-      [dartx.performance]: html$.WorkerPerformance,
-      [dartx.self]: html$.WorkerGlobalScope
-    }),
-    getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.fetch]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
-      [_fetch_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
-      [_fetch_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.importScripts]: dart.definiteFunctionType(dart.void, [core.String]),
-      [_webkitRequestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html$._FileSystemCallback, html$._ErrorCallback]),
-      [dartx.webkitRequestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int, core.int]),
-      [dartx.requestFileSystemSync]: dart.definiteFunctionType(html$._DOMFileSystemSync, [core.int, core.int]),
-      [dartx.resolveLocalFileSystemSyncUrl]: dart.definiteFunctionType(html$._EntrySync, [core.String]),
-      [_webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html$._EntryCallback], [html$._ErrorCallback]),
-      [dartx.webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
-      [dartx.atob]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.btoa]: dart.definiteFunctionType(core.String, [core.String]),
-      [_setInterval_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
-      [_setTimeout_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
-      [_clearInterval]: dart.definiteFunctionType(dart.void, [], [core.int]),
-      [_clearTimeout]: dart.definiteFunctionType(dart.void, [], [core.int]),
-      [_setInterval]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-      [_setTimeout]: dart.definiteFunctionType(core.int, [core.Object], [core.int])
-    }),
-    sfields: () => ({
-      errorEvent: EventStreamProviderOfEvent(),
-      PERSISTENT: core.int,
-      TEMPORARY: core.int
-    })
-  });
-  html$.WorkerGlobalScope.PERSISTENT = 1;
-  html$.WorkerGlobalScope.TEMPORARY = 0;
-  dart.defineLazy(html$.WorkerGlobalScope, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    }
-  });
-  dart.registerExtension(dart.global.WorkerGlobalScope, html$.WorkerGlobalScope);
-  dart.defineExtensionNames([
-    'cancelAnimationFrame',
-    'postMessage',
-    'requestAnimationFrame',
-    'onMessage'
-  ]);
-  html$.CompositorWorkerGlobalScope = class CompositorWorkerGlobalScope extends html$.WorkerGlobalScope {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.cancelAnimationFrame](...args) {
-      return this.cancelAnimationFrame.apply(this, args);
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [dartx.requestAnimationFrame](...args) {
-      return this.requestAnimationFrame.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.CompositorWorkerGlobalScope.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.CompositorWorkerGlobalScope, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CompositorWorkerGlobalScope, [])}),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({
-      [dartx.cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback])
-    }),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.CompositorWorkerGlobalScope, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.CompositorWorkerGlobalScope, html$.CompositorWorkerGlobalScope);
-  const _isConsoleDefined = Symbol('_isConsoleDefined');
-  html$.Console = class Console extends core.Object {
-    _safe() {
-    }
-    get [_isConsoleDefined]() {
-      return typeof console != "undefined";
-    }
-    get memory() {
-      return html$.MemoryInfo._check(dart.test(this[_isConsoleDefined]) ? console.memory : null);
-    }
-    assertCondition(condition, arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.assertCondition(condition, arg) : null;
-    }
-    clear(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.clear(arg) : null;
-    }
-    count(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.count(arg) : null;
-    }
-    debug(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.debug(arg) : null;
-    }
-    dir(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.dir(arg) : null;
-    }
-    dirxml(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.dirxml(arg) : null;
-    }
-    error(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.error(arg) : null;
-    }
-    group(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.group(arg) : null;
-    }
-    groupCollapsed(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.groupCollapsed(arg) : null;
-    }
-    groupEnd() {
-      return dart.test(this[_isConsoleDefined]) ? console.groupEnd() : null;
-    }
-    info(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.info(arg) : null;
-    }
-    log(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.log(arg) : null;
-    }
-    markTimeline(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.markTimeline(arg) : null;
-    }
-    profile(title) {
-      return dart.test(this[_isConsoleDefined]) ? console.profile(title) : null;
-    }
-    profileEnd(title) {
-      return dart.test(this[_isConsoleDefined]) ? console.profileEnd(title) : null;
-    }
-    table(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.table(arg) : null;
-    }
-    time(title) {
-      return dart.test(this[_isConsoleDefined]) ? console.time(title) : null;
-    }
-    timeEnd(title) {
-      return dart.test(this[_isConsoleDefined]) ? console.timeEnd(title) : null;
-    }
-    timeStamp(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.timeStamp(arg) : null;
-    }
-    trace(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.trace(arg) : null;
-    }
-    warn(arg) {
-      return dart.test(this[_isConsoleDefined]) ? console.warn(arg) : null;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.defineNamedConstructor(html$.Console, '_safe');
-  dart.setSignature(html$.Console, {
-    constructors: () => ({
-      _safe: dart.definiteFunctionType(html$.Console, []),
-      _: dart.definiteFunctionType(html$.Console, [])
-    }),
-    getters: () => ({
-      [_isConsoleDefined]: dart.definiteFunctionType(core.bool, []),
-      memory: dart.definiteFunctionType(html$.MemoryInfo, [])
-    }),
-    methods: () => ({
-      assertCondition: dart.definiteFunctionType(dart.void, [core.bool, core.Object]),
-      clear: dart.definiteFunctionType(dart.void, [core.Object]),
-      count: dart.definiteFunctionType(dart.void, [core.Object]),
-      debug: dart.definiteFunctionType(dart.void, [core.Object]),
-      dir: dart.definiteFunctionType(dart.void, [core.Object]),
-      dirxml: dart.definiteFunctionType(dart.void, [core.Object]),
-      error: dart.definiteFunctionType(dart.void, [core.Object]),
-      group: dart.definiteFunctionType(dart.void, [core.Object]),
-      groupCollapsed: dart.definiteFunctionType(dart.void, [core.Object]),
-      groupEnd: dart.definiteFunctionType(dart.void, []),
-      info: dart.definiteFunctionType(dart.void, [core.Object]),
-      log: dart.definiteFunctionType(dart.void, [core.Object]),
-      markTimeline: dart.definiteFunctionType(dart.void, [core.Object]),
-      profile: dart.definiteFunctionType(dart.void, [core.String]),
-      profileEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      table: dart.definiteFunctionType(dart.void, [core.Object]),
-      time: dart.definiteFunctionType(dart.void, [core.String]),
-      timeEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      timeStamp: dart.definiteFunctionType(dart.void, [core.Object]),
-      trace: dart.definiteFunctionType(dart.void, [core.Object]),
-      warn: dart.definiteFunctionType(dart.void, [core.Object])
-    }),
-    sfields: () => ({_safeConsole: html$.Console})
-  });
-  dart.defineLazy(html$.Console, {
-    get _safeConsole() {
-      return dart.const(new html$.Console._safe());
-    }
-  });
-  dart.defineExtensionNames([
-    'assertCondition',
-    'timeline',
-    'timelineEnd'
-  ]);
-  html$.ConsoleBase = class ConsoleBase extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.assertCondition](...args) {
-      return this.assert.apply(this, args);
-    }
-    [dartx.timeline](...args) {
-      return this.timeline.apply(this, args);
-    }
-    [dartx.timelineEnd](...args) {
-      return this.timelineEnd.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ConsoleBase, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ConsoleBase, [])}),
-    methods: () => ({
-      [dartx.assertCondition]: dart.definiteFunctionType(dart.void, [core.bool, core.Object]),
-      [dartx.timeline]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.timelineEnd]: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.ConsoleBase, html$.ConsoleBase);
-  dart.defineExtensionNames([
-    'getDistributedNodes',
-    'select'
-  ]);
-  html$.ContentElement = class ContentElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ContentElement._check(html$.document[dartx.createElement]("content"));
-    }
-    created() {
-      this[dartx.select] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('content');
-    }
-    get [dartx.select]() {
-      return this.select;
-    }
-    set [dartx.select](value) {
-      this.select = value;
-    }
-    [dartx.getDistributedNodes](...args) {
-      return this.getDistributedNodes.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.ContentElement, 'created');
-  dart.setSignature(html$.ContentElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ContentElement, []),
-      new: dart.definiteFunctionType(html$.ContentElement, []),
-      created: dart.definiteFunctionType(html$.ContentElement, [])
-    }),
-    fields: () => ({[dartx.select]: core.String}),
-    methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLContentElement, html$.ContentElement);
-  dart.defineExtensionNames([
-    'accuracy',
-    'altitude',
-    'altitudeAccuracy',
-    'heading',
-    'latitude',
-    'longitude',
-    'speed'
-  ]);
-  html$.Coordinates = class Coordinates extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.accuracy]() {
-      return this.accuracy;
-    }
-    get [dartx.altitude]() {
-      return this.altitude;
-    }
-    get [dartx.altitudeAccuracy]() {
-      return this.altitudeAccuracy;
-    }
-    get [dartx.heading]() {
-      return this.heading;
-    }
-    get [dartx.latitude]() {
-      return this.latitude;
-    }
-    get [dartx.longitude]() {
-      return this.longitude;
-    }
-    get [dartx.speed]() {
-      return this.speed;
-    }
-  };
-  dart.setSignature(html$.Coordinates, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Coordinates, [])}),
-    fields: () => ({
-      [dartx.accuracy]: core.double,
-      [dartx.altitude]: core.double,
-      [dartx.altitudeAccuracy]: core.double,
-      [dartx.heading]: core.double,
-      [dartx.latitude]: core.double,
-      [dartx.longitude]: core.double,
-      [dartx.speed]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.Coordinates, html$.Coordinates);
-  dart.defineExtensionNames([
-    'iconUrl',
-    'id',
-    'name',
-    'type'
-  ]);
-  html$.Credential = class Credential extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.iconUrl]() {
-      return this.iconURL;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.Credential, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Credential, [])}),
-    fields: () => ({
-      [dartx.iconUrl]: core.String,
-      [dartx.id]: core.String,
-      [dartx.name]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.Credential, html$.Credential);
-  const _request_1 = Symbol('_request_1');
-  const _request_2 = Symbol('_request_2');
-  dart.defineExtensionNames([
-    'notifySignedIn',
-    'request',
-    'requireUserMediation'
-  ]);
-  html$.CredentialsContainer = class CredentialsContainer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.notifySignedIn](...args) {
-      return this.notifySignedIn.apply(this, args);
-    }
-    [dartx.request](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_request_1](options_1);
-      }
-      return this[_request_2]();
-    }
-    [_request_1](...args) {
-      return this.request.apply(this, args);
-    }
-    [_request_2](...args) {
-      return this.request.apply(this, args);
-    }
-    [dartx.requireUserMediation](...args) {
-      return this.requireUserMediation.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CredentialsContainer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CredentialsContainer, [])}),
-    methods: () => ({
-      [dartx.notifySignedIn]: dart.definiteFunctionType(async.Future, [html$.Credential]),
-      [dartx.request]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_request_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_request_2]: dart.definiteFunctionType(async.Future, []),
-      [dartx.requireUserMediation]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.CredentialsContainer, html$.CredentialsContainer);
-  dart.defineExtensionNames([
-    'acceptConnection',
-    'client'
-  ]);
-  html$.CrossOriginConnectEvent = class CrossOriginConnectEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.client]() {
-      return this.client;
-    }
-    [dartx.acceptConnection](...args) {
-      return this.acceptConnection.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CrossOriginConnectEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CrossOriginConnectEvent, [])}),
-    fields: () => ({[dartx.client]: html$.CrossOriginServiceWorkerClient}),
-    methods: () => ({[dartx.acceptConnection]: dart.definiteFunctionType(dart.void, [async.Future])})
-  });
-  dart.registerExtension(dart.global.CrossOriginConnectEvent, html$.CrossOriginConnectEvent);
-  dart.defineExtensionNames([
-    'postMessage',
-    'origin',
-    'targetUrl'
-  ]);
-  html$.CrossOriginServiceWorkerClient = class CrossOriginServiceWorkerClient extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.targetUrl]() {
-      return this.targetUrl;
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CrossOriginServiceWorkerClient, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CrossOriginServiceWorkerClient, [])}),
-    fields: () => ({
-      [dartx.origin]: core.String,
-      [dartx.targetUrl]: core.String
-    }),
-    methods: () => ({
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.CrossOriginServiceWorkerClient, html$.CrossOriginServiceWorkerClient);
-  const _getRandomValues = Symbol('_getRandomValues');
-  dart.defineExtensionNames([
-    'getRandomValues',
-    'subtle'
-  ]);
-  html$.Crypto = class Crypto extends _interceptors.Interceptor {
-    [dartx.getRandomValues](array) {
-      return this[_getRandomValues](array);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!(window.crypto && window.crypto.getRandomValues);
-    }
-    get [dartx.subtle]() {
-      return this.subtle;
-    }
-    [_getRandomValues](...args) {
-      return this.getRandomValues.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Crypto, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Crypto, [])}),
-    fields: () => ({[dartx.subtle]: html$._SubtleCrypto}),
-    methods: () => ({
-      [dartx.getRandomValues]: dart.definiteFunctionType(typed_data.TypedData, [typed_data.TypedData]),
-      [_getRandomValues]: dart.definiteFunctionType(typed_data.TypedData, [typed_data.TypedData])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.Crypto, html$.Crypto);
-  dart.defineExtensionNames([
-    'algorithm',
-    'extractable',
-    'type',
-    'usages'
-  ]);
-  html$.CryptoKey = class CryptoKey extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.algorithm]() {
-      return this.algorithm;
-    }
-    get [dartx.extractable]() {
-      return this.extractable;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.usages]() {
-      return this.usages;
-    }
-  };
-  dart.setSignature(html$.CryptoKey, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CryptoKey, [])}),
-    fields: () => ({
-      [dartx.algorithm]: core.Object,
-      [dartx.extractable]: core.bool,
-      [dartx.type]: core.String,
-      [dartx.usages]: ListOfString()
-    })
-  });
-  dart.registerExtension(dart.global.CryptoKey, html$.CryptoKey);
-  html$.Css = class Css extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.Css, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Css, [])}),
-    statics: () => ({
-      supports: dart.definiteFunctionType(core.bool, [core.String, core.String]),
-      supportsCondition: dart.definiteFunctionType(core.bool, [core.String])
-    }),
-    names: ['supports', 'supportsCondition']
-  });
-  dart.registerExtension(dart.global.CSS, html$.Css);
-  dart.defineExtensionNames([
-    'cssText',
-    'parentRule',
-    'parentStyleSheet',
-    'type'
-  ]);
-  html$.CssRule = class CssRule extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.cssText]() {
-      return this.cssText;
-    }
-    set [dartx.cssText](value) {
-      this.cssText = value;
-    }
-    get [dartx.parentRule]() {
-      return this.parentRule;
-    }
-    get [dartx.parentStyleSheet]() {
-      return this.parentStyleSheet;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.CssRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssRule, [])}),
-    fields: () => ({
-      [dartx.cssText]: core.String,
-      [dartx.parentRule]: html$.CssRule,
-      [dartx.parentStyleSheet]: html$.CssStyleSheet,
-      [dartx.type]: core.int
-    }),
-    sfields: () => ({
-      CHARSET_RULE: core.int,
-      FONT_FACE_RULE: core.int,
-      IMPORT_RULE: core.int,
-      KEYFRAMES_RULE: core.int,
-      KEYFRAME_RULE: core.int,
-      MEDIA_RULE: core.int,
-      PAGE_RULE: core.int,
-      STYLE_RULE: core.int,
-      SUPPORTS_RULE: core.int,
-      VIEWPORT_RULE: core.int,
-      WEBKIT_KEYFRAMES_RULE: core.int,
-      WEBKIT_KEYFRAME_RULE: core.int
-    })
-  });
-  html$.CssRule.CHARSET_RULE = 2;
-  html$.CssRule.FONT_FACE_RULE = 5;
-  html$.CssRule.IMPORT_RULE = 3;
-  html$.CssRule.KEYFRAMES_RULE = 7;
-  html$.CssRule.KEYFRAME_RULE = 8;
-  html$.CssRule.MEDIA_RULE = 4;
-  html$.CssRule.PAGE_RULE = 6;
-  html$.CssRule.STYLE_RULE = 1;
-  html$.CssRule.SUPPORTS_RULE = 12;
-  html$.CssRule.VIEWPORT_RULE = 15;
-  html$.CssRule.WEBKIT_KEYFRAMES_RULE = 7;
-  html$.CssRule.WEBKIT_KEYFRAME_RULE = 8;
-  dart.registerExtension(dart.global.CSSRule, html$.CssRule);
-  dart.defineExtensionNames([
-    'encoding'
-  ]);
-  html$.CssCharsetRule = class CssCharsetRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.encoding]() {
-      return this.encoding;
-    }
-    set [dartx.encoding](value) {
-      this.encoding = value;
-    }
-  };
-  dart.setSignature(html$.CssCharsetRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssCharsetRule, [])}),
-    fields: () => ({[dartx.encoding]: core.String})
-  });
-  dart.registerExtension(dart.global.CSSCharsetRule, html$.CssCharsetRule);
-  dart.defineExtensionNames([
-    'style'
-  ]);
-  html$.CssFontFaceRule = class CssFontFaceRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-  };
-  dart.setSignature(html$.CssFontFaceRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssFontFaceRule, [])}),
-    fields: () => ({[dartx.style]: html$.CssStyleDeclaration})
-  });
-  dart.registerExtension(dart.global.CSSFontFaceRule, html$.CssFontFaceRule);
-  dart.defineExtensionNames([
-    'deleteRule',
-    'insertRule',
-    'cssRules'
-  ]);
-  html$.CssGroupingRule = class CssGroupingRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.cssRules]() {
-      return this.cssRules;
-    }
-    [dartx.deleteRule](...args) {
-      return this.deleteRule.apply(this, args);
-    }
-    [dartx.insertRule](...args) {
-      return this.insertRule.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CssGroupingRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssGroupingRule, [])}),
-    fields: () => ({[dartx.cssRules]: ListOfCssRule()}),
-    methods: () => ({
-      [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.CSSGroupingRule, html$.CssGroupingRule);
-  dart.defineExtensionNames([
-    'href',
-    'media',
-    'styleSheet'
-  ]);
-  html$.CssImportRule = class CssImportRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    get [dartx.styleSheet]() {
-      return this.styleSheet;
-    }
-  };
-  dart.setSignature(html$.CssImportRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssImportRule, [])}),
-    fields: () => ({
-      [dartx.href]: core.String,
-      [dartx.media]: html$.MediaList,
-      [dartx.styleSheet]: html$.CssStyleSheet
-    })
-  });
-  dart.registerExtension(dart.global.CSSImportRule, html$.CssImportRule);
-  dart.defineExtensionNames([
-    'keyText',
-    'style'
-  ]);
-  html$.CssKeyframeRule = class CssKeyframeRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.keyText]() {
-      return this.keyText;
-    }
-    set [dartx.keyText](value) {
-      this.keyText = value;
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-  };
-  dart.setSignature(html$.CssKeyframeRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssKeyframeRule, [])}),
-    fields: () => ({
-      [dartx.keyText]: core.String,
-      [dartx.style]: html$.CssStyleDeclaration
-    })
-  });
-  dart.registerExtension(dart.global.CSSKeyframeRule, html$.CssKeyframeRule);
-  dart.registerExtension(dart.global.MozCSSKeyframeRule, html$.CssKeyframeRule);
-  dart.registerExtension(dart.global.WebKitCSSKeyframeRule, html$.CssKeyframeRule);
-  dart.defineExtensionNames([
-    'appendRule',
-    'deleteRule',
-    'findRule',
-    'cssRules',
-    'name'
-  ]);
-  html$.CssKeyframesRule = class CssKeyframesRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.cssRules]() {
-      return this.cssRules;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.appendRule](...args) {
-      return this.appendRule.apply(this, args);
-    }
-    [dartx.deleteRule](...args) {
-      return this.deleteRule.apply(this, args);
-    }
-    [dartx.findRule](...args) {
-      return this.findRule.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CssKeyframesRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssKeyframesRule, [])}),
-    fields: () => ({
-      [dartx.cssRules]: ListOfCssRule(),
-      [dartx.name]: core.String
-    }),
-    methods: () => ({
-      [__getter__]: dart.definiteFunctionType(html$.CssKeyframeRule, [core.int]),
-      [dartx.appendRule]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.findRule]: dart.definiteFunctionType(html$.CssKeyframeRule, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.CSSKeyframesRule, html$.CssKeyframesRule);
-  dart.registerExtension(dart.global.MozCSSKeyframesRule, html$.CssKeyframesRule);
-  dart.registerExtension(dart.global.WebKitCSSKeyframesRule, html$.CssKeyframesRule);
-  dart.defineExtensionNames([
-    'media'
-  ]);
-  html$.CssMediaRule = class CssMediaRule extends html$.CssGroupingRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-  };
-  dart.setSignature(html$.CssMediaRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssMediaRule, [])}),
-    fields: () => ({[dartx.media]: html$.MediaList})
-  });
-  dart.registerExtension(dart.global.CSSMediaRule, html$.CssMediaRule);
-  dart.defineExtensionNames([
-    'selectorText',
-    'style'
-  ]);
-  html$.CssPageRule = class CssPageRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.selectorText]() {
-      return this.selectorText;
-    }
-    set [dartx.selectorText](value) {
-      this.selectorText = value;
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-  };
-  dart.setSignature(html$.CssPageRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssPageRule, [])}),
-    fields: () => ({
-      [dartx.selectorText]: core.String,
-      [dartx.style]: html$.CssStyleDeclaration
-    })
-  });
-  dart.registerExtension(dart.global.CSSPageRule, html$.CssPageRule);
-  const _getPropertyValueHelper = Symbol('_getPropertyValueHelper');
-  const _supportsProperty = Symbol('_supportsProperty');
-  const _getPropertyValue = Symbol('_getPropertyValue');
-  const _setPropertyHelper = Symbol('_setPropertyHelper');
-  const _browserPropertyName = Symbol('_browserPropertyName');
-  const _background = Symbol('_background');
-  const _backgroundAttachment = Symbol('_backgroundAttachment');
-  const _backgroundColor = Symbol('_backgroundColor');
-  const _backgroundImage = Symbol('_backgroundImage');
-  const _backgroundPosition = Symbol('_backgroundPosition');
-  const _backgroundRepeat = Symbol('_backgroundRepeat');
-  const _border = Symbol('_border');
-  const _borderBottom = Symbol('_borderBottom');
-  const _borderBottomColor = Symbol('_borderBottomColor');
-  const _borderBottomStyle = Symbol('_borderBottomStyle');
-  const _borderBottomWidth = Symbol('_borderBottomWidth');
-  const _borderCollapse = Symbol('_borderCollapse');
-  const _borderColor = Symbol('_borderColor');
-  const _borderLeft = Symbol('_borderLeft');
-  const _borderLeftColor = Symbol('_borderLeftColor');
-  const _borderLeftStyle = Symbol('_borderLeftStyle');
-  const _borderLeftWidth = Symbol('_borderLeftWidth');
-  const _borderRight = Symbol('_borderRight');
-  const _borderRightColor = Symbol('_borderRightColor');
-  const _borderRightStyle = Symbol('_borderRightStyle');
-  const _borderRightWidth = Symbol('_borderRightWidth');
-  const _borderSpacing = Symbol('_borderSpacing');
-  const _borderStyle = Symbol('_borderStyle');
-  const _borderTop = Symbol('_borderTop');
-  const _borderTopColor = Symbol('_borderTopColor');
-  const _borderTopStyle = Symbol('_borderTopStyle');
-  const _borderTopWidth = Symbol('_borderTopWidth');
-  const _borderWidth = Symbol('_borderWidth');
-  const _bottom = Symbol('_bottom');
-  const _captionSide = Symbol('_captionSide');
-  const _clear$1 = Symbol('_clear');
-  const _clip = Symbol('_clip');
-  const _color = Symbol('_color');
-  const _content = Symbol('_content');
-  const _cursor = Symbol('_cursor');
-  const _direction = Symbol('_direction');
-  const _display = Symbol('_display');
-  const _emptyCells = Symbol('_emptyCells');
-  const _font = Symbol('_font');
-  const _fontFamily = Symbol('_fontFamily');
-  const _fontSize = Symbol('_fontSize');
-  const _fontStyle = Symbol('_fontStyle');
-  const _fontVariant = Symbol('_fontVariant');
-  const _fontWeight = Symbol('_fontWeight');
-  const _height$ = Symbol('_height');
-  const _left = Symbol('_left');
-  const _letterSpacing = Symbol('_letterSpacing');
-  const _lineHeight = Symbol('_lineHeight');
-  const _listStyle = Symbol('_listStyle');
-  const _listStyleImage = Symbol('_listStyleImage');
-  const _listStylePosition = Symbol('_listStylePosition');
-  const _listStyleType = Symbol('_listStyleType');
-  const _margin = Symbol('_margin');
-  const _marginBottom = Symbol('_marginBottom');
-  const _marginLeft = Symbol('_marginLeft');
-  const _marginRight = Symbol('_marginRight');
-  const _marginTop = Symbol('_marginTop');
-  const _maxHeight = Symbol('_maxHeight');
-  const _maxWidth = Symbol('_maxWidth');
-  const _minHeight = Symbol('_minHeight');
-  const _minWidth = Symbol('_minWidth');
-  const _outline = Symbol('_outline');
-  const _outlineColor = Symbol('_outlineColor');
-  const _outlineStyle = Symbol('_outlineStyle');
-  const _outlineWidth = Symbol('_outlineWidth');
-  const _overflow = Symbol('_overflow');
-  const _padding = Symbol('_padding');
-  const _paddingBottom = Symbol('_paddingBottom');
-  const _paddingLeft = Symbol('_paddingLeft');
-  const _paddingRight = Symbol('_paddingRight');
-  const _paddingTop = Symbol('_paddingTop');
-  const _pageBreakAfter = Symbol('_pageBreakAfter');
-  const _pageBreakBefore = Symbol('_pageBreakBefore');
-  const _pageBreakInside = Symbol('_pageBreakInside');
-  const _position$1 = Symbol('_position');
-  const _quotes = Symbol('_quotes');
-  const _right = Symbol('_right');
-  const _tableLayout = Symbol('_tableLayout');
-  const _textAlign = Symbol('_textAlign');
-  const _textDecoration = Symbol('_textDecoration');
-  const _textIndent = Symbol('_textIndent');
-  const _textTransform = Symbol('_textTransform');
-  const _top = Symbol('_top');
-  const _unicodeBidi = Symbol('_unicodeBidi');
-  const _verticalAlign = Symbol('_verticalAlign');
-  const _visibility = Symbol('_visibility');
-  const _whiteSpace = Symbol('_whiteSpace');
-  const _width$ = Symbol('_width');
-  const _wordSpacing = Symbol('_wordSpacing');
-  const _zIndex = Symbol('_zIndex');
-  dart.defineExtensionNames([
-    'alignContent',
-    'alignContent',
-    'alignItems',
-    'alignItems',
-    'alignSelf',
-    'alignSelf',
-    'animation',
-    'animation',
-    'animationDelay',
-    'animationDelay',
-    'animationDirection',
-    'animationDirection',
-    'animationDuration',
-    'animationDuration',
-    'animationFillMode',
-    'animationFillMode',
-    'animationIterationCount',
-    'animationIterationCount',
-    'animationName',
-    'animationName',
-    'animationPlayState',
-    'animationPlayState',
-    'animationTimingFunction',
-    'animationTimingFunction',
-    'appRegion',
-    'appRegion',
-    'appearance',
-    'appearance',
-    'aspectRatio',
-    'aspectRatio',
-    'backfaceVisibility',
-    'backfaceVisibility',
-    'background',
-    'background',
-    'backgroundAttachment',
-    'backgroundAttachment',
-    'backgroundBlendMode',
-    'backgroundBlendMode',
-    'backgroundClip',
-    'backgroundClip',
-    'backgroundColor',
-    'backgroundColor',
-    'backgroundComposite',
-    'backgroundComposite',
-    'backgroundImage',
-    'backgroundImage',
-    'backgroundOrigin',
-    'backgroundOrigin',
-    'backgroundPosition',
-    'backgroundPosition',
-    'backgroundPositionX',
-    'backgroundPositionX',
-    'backgroundPositionY',
-    'backgroundPositionY',
-    'backgroundRepeat',
-    'backgroundRepeat',
-    'backgroundRepeatX',
-    'backgroundRepeatX',
-    'backgroundRepeatY',
-    'backgroundRepeatY',
-    'backgroundSize',
-    'backgroundSize',
-    'border',
-    'border',
-    'borderAfter',
-    'borderAfter',
-    'borderAfterColor',
-    'borderAfterColor',
-    'borderAfterStyle',
-    'borderAfterStyle',
-    'borderAfterWidth',
-    'borderAfterWidth',
-    'borderBefore',
-    'borderBefore',
-    'borderBeforeColor',
-    'borderBeforeColor',
-    'borderBeforeStyle',
-    'borderBeforeStyle',
-    'borderBeforeWidth',
-    'borderBeforeWidth',
-    'borderBottom',
-    'borderBottom',
-    'borderBottomColor',
-    'borderBottomColor',
-    'borderBottomLeftRadius',
-    'borderBottomLeftRadius',
-    'borderBottomRightRadius',
-    'borderBottomRightRadius',
-    'borderBottomStyle',
-    'borderBottomStyle',
-    'borderBottomWidth',
-    'borderBottomWidth',
-    'borderCollapse',
-    'borderCollapse',
-    'borderColor',
-    'borderColor',
-    'borderEnd',
-    'borderEnd',
-    'borderEndColor',
-    'borderEndColor',
-    'borderEndStyle',
-    'borderEndStyle',
-    'borderEndWidth',
-    'borderEndWidth',
-    'borderFit',
-    'borderFit',
-    'borderHorizontalSpacing',
-    'borderHorizontalSpacing',
-    'borderImage',
-    'borderImage',
-    'borderImageOutset',
-    'borderImageOutset',
-    'borderImageRepeat',
-    'borderImageRepeat',
-    'borderImageSlice',
-    'borderImageSlice',
-    'borderImageSource',
-    'borderImageSource',
-    'borderImageWidth',
-    'borderImageWidth',
-    'borderLeft',
-    'borderLeft',
-    'borderLeftColor',
-    'borderLeftColor',
-    'borderLeftStyle',
-    'borderLeftStyle',
-    'borderLeftWidth',
-    'borderLeftWidth',
-    'borderRadius',
-    'borderRadius',
-    'borderRight',
-    'borderRight',
-    'borderRightColor',
-    'borderRightColor',
-    'borderRightStyle',
-    'borderRightStyle',
-    'borderRightWidth',
-    'borderRightWidth',
-    'borderSpacing',
-    'borderSpacing',
-    'borderStart',
-    'borderStart',
-    'borderStartColor',
-    'borderStartColor',
-    'borderStartStyle',
-    'borderStartStyle',
-    'borderStartWidth',
-    'borderStartWidth',
-    'borderStyle',
-    'borderStyle',
-    'borderTop',
-    'borderTop',
-    'borderTopColor',
-    'borderTopColor',
-    'borderTopLeftRadius',
-    'borderTopLeftRadius',
-    'borderTopRightRadius',
-    'borderTopRightRadius',
-    'borderTopStyle',
-    'borderTopStyle',
-    'borderTopWidth',
-    'borderTopWidth',
-    'borderVerticalSpacing',
-    'borderVerticalSpacing',
-    'borderWidth',
-    'borderWidth',
-    'bottom',
-    'bottom',
-    'boxAlign',
-    'boxAlign',
-    'boxDecorationBreak',
-    'boxDecorationBreak',
-    'boxDirection',
-    'boxDirection',
-    'boxFlex',
-    'boxFlex',
-    'boxFlexGroup',
-    'boxFlexGroup',
-    'boxLines',
-    'boxLines',
-    'boxOrdinalGroup',
-    'boxOrdinalGroup',
-    'boxOrient',
-    'boxOrient',
-    'boxPack',
-    'boxPack',
-    'boxReflect',
-    'boxReflect',
-    'boxShadow',
-    'boxShadow',
-    'boxSizing',
-    'boxSizing',
-    'captionSide',
-    'captionSide',
-    'clear',
-    'clear',
-    'clip',
-    'clip',
-    'clipPath',
-    'clipPath',
-    'color',
-    'color',
-    'columnBreakAfter',
-    'columnBreakAfter',
-    'columnBreakBefore',
-    'columnBreakBefore',
-    'columnBreakInside',
-    'columnBreakInside',
-    'columnCount',
-    'columnCount',
-    'columnFill',
-    'columnFill',
-    'columnGap',
-    'columnGap',
-    'columnRule',
-    'columnRule',
-    'columnRuleColor',
-    'columnRuleColor',
-    'columnRuleStyle',
-    'columnRuleStyle',
-    'columnRuleWidth',
-    'columnRuleWidth',
-    'columnSpan',
-    'columnSpan',
-    'columnWidth',
-    'columnWidth',
-    'columns',
-    'columns',
-    'content',
-    'content',
-    'counterIncrement',
-    'counterIncrement',
-    'counterReset',
-    'counterReset',
-    'cursor',
-    'cursor',
-    'direction',
-    'direction',
-    'display',
-    'display',
-    'emptyCells',
-    'emptyCells',
-    'filter',
-    'filter',
-    'flex',
-    'flex',
-    'flexBasis',
-    'flexBasis',
-    'flexDirection',
-    'flexDirection',
-    'flexFlow',
-    'flexFlow',
-    'flexGrow',
-    'flexGrow',
-    'flexShrink',
-    'flexShrink',
-    'flexWrap',
-    'flexWrap',
-    'float',
-    'float',
-    'font',
-    'font',
-    'fontFamily',
-    'fontFamily',
-    'fontFeatureSettings',
-    'fontFeatureSettings',
-    'fontKerning',
-    'fontKerning',
-    'fontSize',
-    'fontSize',
-    'fontSizeDelta',
-    'fontSizeDelta',
-    'fontSmoothing',
-    'fontSmoothing',
-    'fontStretch',
-    'fontStretch',
-    'fontStyle',
-    'fontStyle',
-    'fontVariant',
-    'fontVariant',
-    'fontVariantLigatures',
-    'fontVariantLigatures',
-    'fontWeight',
-    'fontWeight',
-    'grid',
-    'grid',
-    'gridArea',
-    'gridArea',
-    'gridAutoColumns',
-    'gridAutoColumns',
-    'gridAutoFlow',
-    'gridAutoFlow',
-    'gridAutoRows',
-    'gridAutoRows',
-    'gridColumn',
-    'gridColumn',
-    'gridColumnEnd',
-    'gridColumnEnd',
-    'gridColumnStart',
-    'gridColumnStart',
-    'gridRow',
-    'gridRow',
-    'gridRowEnd',
-    'gridRowEnd',
-    'gridRowStart',
-    'gridRowStart',
-    'gridTemplate',
-    'gridTemplate',
-    'gridTemplateAreas',
-    'gridTemplateAreas',
-    'gridTemplateColumns',
-    'gridTemplateColumns',
-    'gridTemplateRows',
-    'gridTemplateRows',
-    'height',
-    'height',
-    'highlight',
-    'highlight',
-    'hyphenateCharacter',
-    'hyphenateCharacter',
-    'imageRendering',
-    'imageRendering',
-    'isolation',
-    'isolation',
-    'justifyContent',
-    'justifyContent',
-    'justifySelf',
-    'justifySelf',
-    'left',
-    'left',
-    'letterSpacing',
-    'letterSpacing',
-    'lineBoxContain',
-    'lineBoxContain',
-    'lineBreak',
-    'lineBreak',
-    'lineClamp',
-    'lineClamp',
-    'lineHeight',
-    'lineHeight',
-    'listStyle',
-    'listStyle',
-    'listStyleImage',
-    'listStyleImage',
-    'listStylePosition',
-    'listStylePosition',
-    'listStyleType',
-    'listStyleType',
-    'locale',
-    'locale',
-    'logicalHeight',
-    'logicalHeight',
-    'logicalWidth',
-    'logicalWidth',
-    'margin',
-    'margin',
-    'marginAfter',
-    'marginAfter',
-    'marginAfterCollapse',
-    'marginAfterCollapse',
-    'marginBefore',
-    'marginBefore',
-    'marginBeforeCollapse',
-    'marginBeforeCollapse',
-    'marginBottom',
-    'marginBottom',
-    'marginBottomCollapse',
-    'marginBottomCollapse',
-    'marginCollapse',
-    'marginCollapse',
-    'marginEnd',
-    'marginEnd',
-    'marginLeft',
-    'marginLeft',
-    'marginRight',
-    'marginRight',
-    'marginStart',
-    'marginStart',
-    'marginTop',
-    'marginTop',
-    'marginTopCollapse',
-    'marginTopCollapse',
-    'mask',
-    'mask',
-    'maskBoxImage',
-    'maskBoxImage',
-    'maskBoxImageOutset',
-    'maskBoxImageOutset',
-    'maskBoxImageRepeat',
-    'maskBoxImageRepeat',
-    'maskBoxImageSlice',
-    'maskBoxImageSlice',
-    'maskBoxImageSource',
-    'maskBoxImageSource',
-    'maskBoxImageWidth',
-    'maskBoxImageWidth',
-    'maskClip',
-    'maskClip',
-    'maskComposite',
-    'maskComposite',
-    'maskImage',
-    'maskImage',
-    'maskOrigin',
-    'maskOrigin',
-    'maskPosition',
-    'maskPosition',
-    'maskPositionX',
-    'maskPositionX',
-    'maskPositionY',
-    'maskPositionY',
-    'maskRepeat',
-    'maskRepeat',
-    'maskRepeatX',
-    'maskRepeatX',
-    'maskRepeatY',
-    'maskRepeatY',
-    'maskSize',
-    'maskSize',
-    'maskSourceType',
-    'maskSourceType',
-    'maxHeight',
-    'maxHeight',
-    'maxLogicalHeight',
-    'maxLogicalHeight',
-    'maxLogicalWidth',
-    'maxLogicalWidth',
-    'maxWidth',
-    'maxWidth',
-    'maxZoom',
-    'maxZoom',
-    'minHeight',
-    'minHeight',
-    'minLogicalHeight',
-    'minLogicalHeight',
-    'minLogicalWidth',
-    'minLogicalWidth',
-    'minWidth',
-    'minWidth',
-    'minZoom',
-    'minZoom',
-    'mixBlendMode',
-    'mixBlendMode',
-    'objectFit',
-    'objectFit',
-    'objectPosition',
-    'objectPosition',
-    'opacity',
-    'opacity',
-    'order',
-    'order',
-    'orientation',
-    'orientation',
-    'orphans',
-    'orphans',
-    'outline',
-    'outline',
-    'outlineColor',
-    'outlineColor',
-    'outlineOffset',
-    'outlineOffset',
-    'outlineStyle',
-    'outlineStyle',
-    'outlineWidth',
-    'outlineWidth',
-    'overflow',
-    'overflow',
-    'overflowWrap',
-    'overflowWrap',
-    'overflowX',
-    'overflowX',
-    'overflowY',
-    'overflowY',
-    'padding',
-    'padding',
-    'paddingAfter',
-    'paddingAfter',
-    'paddingBefore',
-    'paddingBefore',
-    'paddingBottom',
-    'paddingBottom',
-    'paddingEnd',
-    'paddingEnd',
-    'paddingLeft',
-    'paddingLeft',
-    'paddingRight',
-    'paddingRight',
-    'paddingStart',
-    'paddingStart',
-    'paddingTop',
-    'paddingTop',
-    'page',
-    'page',
-    'pageBreakAfter',
-    'pageBreakAfter',
-    'pageBreakBefore',
-    'pageBreakBefore',
-    'pageBreakInside',
-    'pageBreakInside',
-    'perspective',
-    'perspective',
-    'perspectiveOrigin',
-    'perspectiveOrigin',
-    'perspectiveOriginX',
-    'perspectiveOriginX',
-    'perspectiveOriginY',
-    'perspectiveOriginY',
-    'pointerEvents',
-    'pointerEvents',
-    'position',
-    'position',
-    'printColorAdjust',
-    'printColorAdjust',
-    'quotes',
-    'quotes',
-    'resize',
-    'resize',
-    'right',
-    'right',
-    'rtlOrdering',
-    'rtlOrdering',
-    'rubyPosition',
-    'rubyPosition',
-    'scrollBehavior',
-    'scrollBehavior',
-    'shapeImageThreshold',
-    'shapeImageThreshold',
-    'shapeMargin',
-    'shapeMargin',
-    'shapeOutside',
-    'shapeOutside',
-    'size',
-    'size',
-    'speak',
-    'speak',
-    'src',
-    'src',
-    'tabSize',
-    'tabSize',
-    'tableLayout',
-    'tableLayout',
-    'tapHighlightColor',
-    'tapHighlightColor',
-    'textAlign',
-    'textAlign',
-    'textAlignLast',
-    'textAlignLast',
-    'textCombine',
-    'textCombine',
-    'textDecoration',
-    'textDecoration',
-    'textDecorationColor',
-    'textDecorationColor',
-    'textDecorationLine',
-    'textDecorationLine',
-    'textDecorationStyle',
-    'textDecorationStyle',
-    'textDecorationsInEffect',
-    'textDecorationsInEffect',
-    'textEmphasis',
-    'textEmphasis',
-    'textEmphasisColor',
-    'textEmphasisColor',
-    'textEmphasisPosition',
-    'textEmphasisPosition',
-    'textEmphasisStyle',
-    'textEmphasisStyle',
-    'textFillColor',
-    'textFillColor',
-    'textIndent',
-    'textIndent',
-    'textJustify',
-    'textJustify',
-    'textLineThroughColor',
-    'textLineThroughColor',
-    'textLineThroughMode',
-    'textLineThroughMode',
-    'textLineThroughStyle',
-    'textLineThroughStyle',
-    'textLineThroughWidth',
-    'textLineThroughWidth',
-    'textOrientation',
-    'textOrientation',
-    'textOverflow',
-    'textOverflow',
-    'textOverlineColor',
-    'textOverlineColor',
-    'textOverlineMode',
-    'textOverlineMode',
-    'textOverlineStyle',
-    'textOverlineStyle',
-    'textOverlineWidth',
-    'textOverlineWidth',
-    'textRendering',
-    'textRendering',
-    'textSecurity',
-    'textSecurity',
-    'textShadow',
-    'textShadow',
-    'textStroke',
-    'textStroke',
-    'textStrokeColor',
-    'textStrokeColor',
-    'textStrokeWidth',
-    'textStrokeWidth',
-    'textTransform',
-    'textTransform',
-    'textUnderlineColor',
-    'textUnderlineColor',
-    'textUnderlineMode',
-    'textUnderlineMode',
-    'textUnderlinePosition',
-    'textUnderlinePosition',
-    'textUnderlineStyle',
-    'textUnderlineStyle',
-    'textUnderlineWidth',
-    'textUnderlineWidth',
-    'top',
-    'top',
-    'touchAction',
-    'touchAction',
-    'touchActionDelay',
-    'touchActionDelay',
-    'transform',
-    'transform',
-    'transformOrigin',
-    'transformOrigin',
-    'transformOriginX',
-    'transformOriginX',
-    'transformOriginY',
-    'transformOriginY',
-    'transformOriginZ',
-    'transformOriginZ',
-    'transformStyle',
-    'transformStyle',
-    'transition',
-    'transition',
-    'transitionDelay',
-    'transitionDelay',
-    'transitionDuration',
-    'transitionDuration',
-    'transitionProperty',
-    'transitionProperty',
-    'transitionTimingFunction',
-    'transitionTimingFunction',
-    'unicodeBidi',
-    'unicodeBidi',
-    'unicodeRange',
-    'unicodeRange',
-    'userDrag',
-    'userDrag',
-    'userModify',
-    'userModify',
-    'userSelect',
-    'userSelect',
-    'userZoom',
-    'userZoom',
-    'verticalAlign',
-    'verticalAlign',
-    'visibility',
-    'visibility',
-    'whiteSpace',
-    'whiteSpace',
-    'widows',
-    'widows',
-    'width',
-    'width',
-    'willChange',
-    'willChange',
-    'wordBreak',
-    'wordBreak',
-    'wordSpacing',
-    'wordSpacing',
-    'wordWrap',
-    'wordWrap',
-    'wrapFlow',
-    'wrapFlow',
-    'wrapThrough',
-    'wrapThrough',
-    'writingMode',
-    'writingMode',
-    'zIndex',
-    'zIndex',
-    'zoom',
-    'zoom'
-  ]);
-  html$.CssStyleDeclarationBase = class CssStyleDeclarationBase extends core.Object {
-    get alignContent() {
-      return this[dartx.getPropertyValue]('align-content');
-    }
-    set alignContent(value) {
-      this[dartx.setProperty]('align-content', value, '');
-    }
-    get alignItems() {
-      return this[dartx.getPropertyValue]('align-items');
-    }
-    set alignItems(value) {
-      this[dartx.setProperty]('align-items', value, '');
-    }
-    get alignSelf() {
-      return this[dartx.getPropertyValue]('align-self');
-    }
-    set alignSelf(value) {
-      this[dartx.setProperty]('align-self', value, '');
-    }
-    get animation() {
-      return this[dartx.getPropertyValue]('animation');
-    }
-    set animation(value) {
-      this[dartx.setProperty]('animation', value, '');
-    }
-    get animationDelay() {
-      return this[dartx.getPropertyValue]('animation-delay');
-    }
-    set animationDelay(value) {
-      this[dartx.setProperty]('animation-delay', value, '');
-    }
-    get animationDirection() {
-      return this[dartx.getPropertyValue]('animation-direction');
-    }
-    set animationDirection(value) {
-      this[dartx.setProperty]('animation-direction', value, '');
-    }
-    get animationDuration() {
-      return this[dartx.getPropertyValue]('animation-duration');
-    }
-    set animationDuration(value) {
-      this[dartx.setProperty]('animation-duration', value, '');
-    }
-    get animationFillMode() {
-      return this[dartx.getPropertyValue]('animation-fill-mode');
-    }
-    set animationFillMode(value) {
-      this[dartx.setProperty]('animation-fill-mode', value, '');
-    }
-    get animationIterationCount() {
-      return this[dartx.getPropertyValue]('animation-iteration-count');
-    }
-    set animationIterationCount(value) {
-      this[dartx.setProperty]('animation-iteration-count', value, '');
-    }
-    get animationName() {
-      return this[dartx.getPropertyValue]('animation-name');
-    }
-    set animationName(value) {
-      this[dartx.setProperty]('animation-name', value, '');
-    }
-    get animationPlayState() {
-      return this[dartx.getPropertyValue]('animation-play-state');
-    }
-    set animationPlayState(value) {
-      this[dartx.setProperty]('animation-play-state', value, '');
-    }
-    get animationTimingFunction() {
-      return this[dartx.getPropertyValue]('animation-timing-function');
-    }
-    set animationTimingFunction(value) {
-      this[dartx.setProperty]('animation-timing-function', value, '');
-    }
-    get appRegion() {
-      return this[dartx.getPropertyValue]('app-region');
-    }
-    set appRegion(value) {
-      this[dartx.setProperty]('app-region', value, '');
-    }
-    get appearance() {
-      return this[dartx.getPropertyValue]('appearance');
-    }
-    set appearance(value) {
-      this[dartx.setProperty]('appearance', value, '');
-    }
-    get aspectRatio() {
-      return this[dartx.getPropertyValue]('aspect-ratio');
-    }
-    set aspectRatio(value) {
-      this[dartx.setProperty]('aspect-ratio', value, '');
-    }
-    get backfaceVisibility() {
-      return this[dartx.getPropertyValue]('backface-visibility');
-    }
-    set backfaceVisibility(value) {
-      this[dartx.setProperty]('backface-visibility', value, '');
-    }
-    get background() {
-      return this[dartx.getPropertyValue]('background');
-    }
-    set background(value) {
-      this[dartx.setProperty]('background', value, '');
-    }
-    get backgroundAttachment() {
-      return this[dartx.getPropertyValue]('background-attachment');
-    }
-    set backgroundAttachment(value) {
-      this[dartx.setProperty]('background-attachment', value, '');
-    }
-    get backgroundBlendMode() {
-      return this[dartx.getPropertyValue]('background-blend-mode');
-    }
-    set backgroundBlendMode(value) {
-      this[dartx.setProperty]('background-blend-mode', value, '');
-    }
-    get backgroundClip() {
-      return this[dartx.getPropertyValue]('background-clip');
-    }
-    set backgroundClip(value) {
-      this[dartx.setProperty]('background-clip', value, '');
-    }
-    get backgroundColor() {
-      return this[dartx.getPropertyValue]('background-color');
-    }
-    set backgroundColor(value) {
-      this[dartx.setProperty]('background-color', value, '');
-    }
-    get backgroundComposite() {
-      return this[dartx.getPropertyValue]('background-composite');
-    }
-    set backgroundComposite(value) {
-      this[dartx.setProperty]('background-composite', value, '');
-    }
-    get backgroundImage() {
-      return this[dartx.getPropertyValue]('background-image');
-    }
-    set backgroundImage(value) {
-      this[dartx.setProperty]('background-image', value, '');
-    }
-    get backgroundOrigin() {
-      return this[dartx.getPropertyValue]('background-origin');
-    }
-    set backgroundOrigin(value) {
-      this[dartx.setProperty]('background-origin', value, '');
-    }
-    get backgroundPosition() {
-      return this[dartx.getPropertyValue]('background-position');
-    }
-    set backgroundPosition(value) {
-      this[dartx.setProperty]('background-position', value, '');
-    }
-    get backgroundPositionX() {
-      return this[dartx.getPropertyValue]('background-position-x');
-    }
-    set backgroundPositionX(value) {
-      this[dartx.setProperty]('background-position-x', value, '');
-    }
-    get backgroundPositionY() {
-      return this[dartx.getPropertyValue]('background-position-y');
-    }
-    set backgroundPositionY(value) {
-      this[dartx.setProperty]('background-position-y', value, '');
-    }
-    get backgroundRepeat() {
-      return this[dartx.getPropertyValue]('background-repeat');
-    }
-    set backgroundRepeat(value) {
-      this[dartx.setProperty]('background-repeat', value, '');
-    }
-    get backgroundRepeatX() {
-      return this[dartx.getPropertyValue]('background-repeat-x');
-    }
-    set backgroundRepeatX(value) {
-      this[dartx.setProperty]('background-repeat-x', value, '');
-    }
-    get backgroundRepeatY() {
-      return this[dartx.getPropertyValue]('background-repeat-y');
-    }
-    set backgroundRepeatY(value) {
-      this[dartx.setProperty]('background-repeat-y', value, '');
-    }
-    get backgroundSize() {
-      return this[dartx.getPropertyValue]('background-size');
-    }
-    set backgroundSize(value) {
-      this[dartx.setProperty]('background-size', value, '');
-    }
-    get border() {
-      return this[dartx.getPropertyValue]('border');
-    }
-    set border(value) {
-      this[dartx.setProperty]('border', value, '');
-    }
-    get borderAfter() {
-      return this[dartx.getPropertyValue]('border-after');
-    }
-    set borderAfter(value) {
-      this[dartx.setProperty]('border-after', value, '');
-    }
-    get borderAfterColor() {
-      return this[dartx.getPropertyValue]('border-after-color');
-    }
-    set borderAfterColor(value) {
-      this[dartx.setProperty]('border-after-color', value, '');
-    }
-    get borderAfterStyle() {
-      return this[dartx.getPropertyValue]('border-after-style');
-    }
-    set borderAfterStyle(value) {
-      this[dartx.setProperty]('border-after-style', value, '');
-    }
-    get borderAfterWidth() {
-      return this[dartx.getPropertyValue]('border-after-width');
-    }
-    set borderAfterWidth(value) {
-      this[dartx.setProperty]('border-after-width', value, '');
-    }
-    get borderBefore() {
-      return this[dartx.getPropertyValue]('border-before');
-    }
-    set borderBefore(value) {
-      this[dartx.setProperty]('border-before', value, '');
-    }
-    get borderBeforeColor() {
-      return this[dartx.getPropertyValue]('border-before-color');
-    }
-    set borderBeforeColor(value) {
-      this[dartx.setProperty]('border-before-color', value, '');
-    }
-    get borderBeforeStyle() {
-      return this[dartx.getPropertyValue]('border-before-style');
-    }
-    set borderBeforeStyle(value) {
-      this[dartx.setProperty]('border-before-style', value, '');
-    }
-    get borderBeforeWidth() {
-      return this[dartx.getPropertyValue]('border-before-width');
-    }
-    set borderBeforeWidth(value) {
-      this[dartx.setProperty]('border-before-width', value, '');
-    }
-    get borderBottom() {
-      return this[dartx.getPropertyValue]('border-bottom');
-    }
-    set borderBottom(value) {
-      this[dartx.setProperty]('border-bottom', value, '');
-    }
-    get borderBottomColor() {
-      return this[dartx.getPropertyValue]('border-bottom-color');
-    }
-    set borderBottomColor(value) {
-      this[dartx.setProperty]('border-bottom-color', value, '');
-    }
-    get borderBottomLeftRadius() {
-      return this[dartx.getPropertyValue]('border-bottom-left-radius');
-    }
-    set borderBottomLeftRadius(value) {
-      this[dartx.setProperty]('border-bottom-left-radius', value, '');
-    }
-    get borderBottomRightRadius() {
-      return this[dartx.getPropertyValue]('border-bottom-right-radius');
-    }
-    set borderBottomRightRadius(value) {
-      this[dartx.setProperty]('border-bottom-right-radius', value, '');
-    }
-    get borderBottomStyle() {
-      return this[dartx.getPropertyValue]('border-bottom-style');
-    }
-    set borderBottomStyle(value) {
-      this[dartx.setProperty]('border-bottom-style', value, '');
-    }
-    get borderBottomWidth() {
-      return this[dartx.getPropertyValue]('border-bottom-width');
-    }
-    set borderBottomWidth(value) {
-      this[dartx.setProperty]('border-bottom-width', value, '');
-    }
-    get borderCollapse() {
-      return this[dartx.getPropertyValue]('border-collapse');
-    }
-    set borderCollapse(value) {
-      this[dartx.setProperty]('border-collapse', value, '');
-    }
-    get borderColor() {
-      return this[dartx.getPropertyValue]('border-color');
-    }
-    set borderColor(value) {
-      this[dartx.setProperty]('border-color', value, '');
-    }
-    get borderEnd() {
-      return this[dartx.getPropertyValue]('border-end');
-    }
-    set borderEnd(value) {
-      this[dartx.setProperty]('border-end', value, '');
-    }
-    get borderEndColor() {
-      return this[dartx.getPropertyValue]('border-end-color');
-    }
-    set borderEndColor(value) {
-      this[dartx.setProperty]('border-end-color', value, '');
-    }
-    get borderEndStyle() {
-      return this[dartx.getPropertyValue]('border-end-style');
-    }
-    set borderEndStyle(value) {
-      this[dartx.setProperty]('border-end-style', value, '');
-    }
-    get borderEndWidth() {
-      return this[dartx.getPropertyValue]('border-end-width');
-    }
-    set borderEndWidth(value) {
-      this[dartx.setProperty]('border-end-width', value, '');
-    }
-    get borderFit() {
-      return this[dartx.getPropertyValue]('border-fit');
-    }
-    set borderFit(value) {
-      this[dartx.setProperty]('border-fit', value, '');
-    }
-    get borderHorizontalSpacing() {
-      return this[dartx.getPropertyValue]('border-horizontal-spacing');
-    }
-    set borderHorizontalSpacing(value) {
-      this[dartx.setProperty]('border-horizontal-spacing', value, '');
-    }
-    get borderImage() {
-      return this[dartx.getPropertyValue]('border-image');
-    }
-    set borderImage(value) {
-      this[dartx.setProperty]('border-image', value, '');
-    }
-    get borderImageOutset() {
-      return this[dartx.getPropertyValue]('border-image-outset');
-    }
-    set borderImageOutset(value) {
-      this[dartx.setProperty]('border-image-outset', value, '');
-    }
-    get borderImageRepeat() {
-      return this[dartx.getPropertyValue]('border-image-repeat');
-    }
-    set borderImageRepeat(value) {
-      this[dartx.setProperty]('border-image-repeat', value, '');
-    }
-    get borderImageSlice() {
-      return this[dartx.getPropertyValue]('border-image-slice');
-    }
-    set borderImageSlice(value) {
-      this[dartx.setProperty]('border-image-slice', value, '');
-    }
-    get borderImageSource() {
-      return this[dartx.getPropertyValue]('border-image-source');
-    }
-    set borderImageSource(value) {
-      this[dartx.setProperty]('border-image-source', value, '');
-    }
-    get borderImageWidth() {
-      return this[dartx.getPropertyValue]('border-image-width');
-    }
-    set borderImageWidth(value) {
-      this[dartx.setProperty]('border-image-width', value, '');
-    }
-    get borderLeft() {
-      return this[dartx.getPropertyValue]('border-left');
-    }
-    set borderLeft(value) {
-      this[dartx.setProperty]('border-left', value, '');
-    }
-    get borderLeftColor() {
-      return this[dartx.getPropertyValue]('border-left-color');
-    }
-    set borderLeftColor(value) {
-      this[dartx.setProperty]('border-left-color', value, '');
-    }
-    get borderLeftStyle() {
-      return this[dartx.getPropertyValue]('border-left-style');
-    }
-    set borderLeftStyle(value) {
-      this[dartx.setProperty]('border-left-style', value, '');
-    }
-    get borderLeftWidth() {
-      return this[dartx.getPropertyValue]('border-left-width');
-    }
-    set borderLeftWidth(value) {
-      this[dartx.setProperty]('border-left-width', value, '');
-    }
-    get borderRadius() {
-      return this[dartx.getPropertyValue]('border-radius');
-    }
-    set borderRadius(value) {
-      this[dartx.setProperty]('border-radius', value, '');
-    }
-    get borderRight() {
-      return this[dartx.getPropertyValue]('border-right');
-    }
-    set borderRight(value) {
-      this[dartx.setProperty]('border-right', value, '');
-    }
-    get borderRightColor() {
-      return this[dartx.getPropertyValue]('border-right-color');
-    }
-    set borderRightColor(value) {
-      this[dartx.setProperty]('border-right-color', value, '');
-    }
-    get borderRightStyle() {
-      return this[dartx.getPropertyValue]('border-right-style');
-    }
-    set borderRightStyle(value) {
-      this[dartx.setProperty]('border-right-style', value, '');
-    }
-    get borderRightWidth() {
-      return this[dartx.getPropertyValue]('border-right-width');
-    }
-    set borderRightWidth(value) {
-      this[dartx.setProperty]('border-right-width', value, '');
-    }
-    get borderSpacing() {
-      return this[dartx.getPropertyValue]('border-spacing');
-    }
-    set borderSpacing(value) {
-      this[dartx.setProperty]('border-spacing', value, '');
-    }
-    get borderStart() {
-      return this[dartx.getPropertyValue]('border-start');
-    }
-    set borderStart(value) {
-      this[dartx.setProperty]('border-start', value, '');
-    }
-    get borderStartColor() {
-      return this[dartx.getPropertyValue]('border-start-color');
-    }
-    set borderStartColor(value) {
-      this[dartx.setProperty]('border-start-color', value, '');
-    }
-    get borderStartStyle() {
-      return this[dartx.getPropertyValue]('border-start-style');
-    }
-    set borderStartStyle(value) {
-      this[dartx.setProperty]('border-start-style', value, '');
-    }
-    get borderStartWidth() {
-      return this[dartx.getPropertyValue]('border-start-width');
-    }
-    set borderStartWidth(value) {
-      this[dartx.setProperty]('border-start-width', value, '');
-    }
-    get borderStyle() {
-      return this[dartx.getPropertyValue]('border-style');
-    }
-    set borderStyle(value) {
-      this[dartx.setProperty]('border-style', value, '');
-    }
-    get borderTop() {
-      return this[dartx.getPropertyValue]('border-top');
-    }
-    set borderTop(value) {
-      this[dartx.setProperty]('border-top', value, '');
-    }
-    get borderTopColor() {
-      return this[dartx.getPropertyValue]('border-top-color');
-    }
-    set borderTopColor(value) {
-      this[dartx.setProperty]('border-top-color', value, '');
-    }
-    get borderTopLeftRadius() {
-      return this[dartx.getPropertyValue]('border-top-left-radius');
-    }
-    set borderTopLeftRadius(value) {
-      this[dartx.setProperty]('border-top-left-radius', value, '');
-    }
-    get borderTopRightRadius() {
-      return this[dartx.getPropertyValue]('border-top-right-radius');
-    }
-    set borderTopRightRadius(value) {
-      this[dartx.setProperty]('border-top-right-radius', value, '');
-    }
-    get borderTopStyle() {
-      return this[dartx.getPropertyValue]('border-top-style');
-    }
-    set borderTopStyle(value) {
-      this[dartx.setProperty]('border-top-style', value, '');
-    }
-    get borderTopWidth() {
-      return this[dartx.getPropertyValue]('border-top-width');
-    }
-    set borderTopWidth(value) {
-      this[dartx.setProperty]('border-top-width', value, '');
-    }
-    get borderVerticalSpacing() {
-      return this[dartx.getPropertyValue]('border-vertical-spacing');
-    }
-    set borderVerticalSpacing(value) {
-      this[dartx.setProperty]('border-vertical-spacing', value, '');
-    }
-    get borderWidth() {
-      return this[dartx.getPropertyValue]('border-width');
-    }
-    set borderWidth(value) {
-      this[dartx.setProperty]('border-width', value, '');
-    }
-    get bottom() {
-      return this[dartx.getPropertyValue]('bottom');
-    }
-    set bottom(value) {
-      this[dartx.setProperty]('bottom', value, '');
-    }
-    get boxAlign() {
-      return this[dartx.getPropertyValue]('box-align');
-    }
-    set boxAlign(value) {
-      this[dartx.setProperty]('box-align', value, '');
-    }
-    get boxDecorationBreak() {
-      return this[dartx.getPropertyValue]('box-decoration-break');
-    }
-    set boxDecorationBreak(value) {
-      this[dartx.setProperty]('box-decoration-break', value, '');
-    }
-    get boxDirection() {
-      return this[dartx.getPropertyValue]('box-direction');
-    }
-    set boxDirection(value) {
-      this[dartx.setProperty]('box-direction', value, '');
-    }
-    get boxFlex() {
-      return this[dartx.getPropertyValue]('box-flex');
-    }
-    set boxFlex(value) {
-      this[dartx.setProperty]('box-flex', value, '');
-    }
-    get boxFlexGroup() {
-      return this[dartx.getPropertyValue]('box-flex-group');
-    }
-    set boxFlexGroup(value) {
-      this[dartx.setProperty]('box-flex-group', value, '');
-    }
-    get boxLines() {
-      return this[dartx.getPropertyValue]('box-lines');
-    }
-    set boxLines(value) {
-      this[dartx.setProperty]('box-lines', value, '');
-    }
-    get boxOrdinalGroup() {
-      return this[dartx.getPropertyValue]('box-ordinal-group');
-    }
-    set boxOrdinalGroup(value) {
-      this[dartx.setProperty]('box-ordinal-group', value, '');
-    }
-    get boxOrient() {
-      return this[dartx.getPropertyValue]('box-orient');
-    }
-    set boxOrient(value) {
-      this[dartx.setProperty]('box-orient', value, '');
-    }
-    get boxPack() {
-      return this[dartx.getPropertyValue]('box-pack');
-    }
-    set boxPack(value) {
-      this[dartx.setProperty]('box-pack', value, '');
-    }
-    get boxReflect() {
-      return this[dartx.getPropertyValue]('box-reflect');
-    }
-    set boxReflect(value) {
-      this[dartx.setProperty]('box-reflect', value, '');
-    }
-    get boxShadow() {
-      return this[dartx.getPropertyValue]('box-shadow');
-    }
-    set boxShadow(value) {
-      this[dartx.setProperty]('box-shadow', value, '');
-    }
-    get boxSizing() {
-      return this[dartx.getPropertyValue]('box-sizing');
-    }
-    set boxSizing(value) {
-      this[dartx.setProperty]('box-sizing', value, '');
-    }
-    get captionSide() {
-      return this[dartx.getPropertyValue]('caption-side');
-    }
-    set captionSide(value) {
-      this[dartx.setProperty]('caption-side', value, '');
-    }
-    get clear() {
-      return this[dartx.getPropertyValue]('clear');
-    }
-    set clear(value) {
-      this[dartx.setProperty]('clear', value, '');
-    }
-    get clip() {
-      return this[dartx.getPropertyValue]('clip');
-    }
-    set clip(value) {
-      this[dartx.setProperty]('clip', value, '');
-    }
-    get clipPath() {
-      return this[dartx.getPropertyValue]('clip-path');
-    }
-    set clipPath(value) {
-      this[dartx.setProperty]('clip-path', value, '');
-    }
-    get color() {
-      return this[dartx.getPropertyValue]('color');
-    }
-    set color(value) {
-      this[dartx.setProperty]('color', value, '');
-    }
-    get columnBreakAfter() {
-      return this[dartx.getPropertyValue]('column-break-after');
-    }
-    set columnBreakAfter(value) {
-      this[dartx.setProperty]('column-break-after', value, '');
-    }
-    get columnBreakBefore() {
-      return this[dartx.getPropertyValue]('column-break-before');
-    }
-    set columnBreakBefore(value) {
-      this[dartx.setProperty]('column-break-before', value, '');
-    }
-    get columnBreakInside() {
-      return this[dartx.getPropertyValue]('column-break-inside');
-    }
-    set columnBreakInside(value) {
-      this[dartx.setProperty]('column-break-inside', value, '');
-    }
-    get columnCount() {
-      return this[dartx.getPropertyValue]('column-count');
-    }
-    set columnCount(value) {
-      this[dartx.setProperty]('column-count', value, '');
-    }
-    get columnFill() {
-      return this[dartx.getPropertyValue]('column-fill');
-    }
-    set columnFill(value) {
-      this[dartx.setProperty]('column-fill', value, '');
-    }
-    get columnGap() {
-      return this[dartx.getPropertyValue]('column-gap');
-    }
-    set columnGap(value) {
-      this[dartx.setProperty]('column-gap', value, '');
-    }
-    get columnRule() {
-      return this[dartx.getPropertyValue]('column-rule');
-    }
-    set columnRule(value) {
-      this[dartx.setProperty]('column-rule', value, '');
-    }
-    get columnRuleColor() {
-      return this[dartx.getPropertyValue]('column-rule-color');
-    }
-    set columnRuleColor(value) {
-      this[dartx.setProperty]('column-rule-color', value, '');
-    }
-    get columnRuleStyle() {
-      return this[dartx.getPropertyValue]('column-rule-style');
-    }
-    set columnRuleStyle(value) {
-      this[dartx.setProperty]('column-rule-style', value, '');
-    }
-    get columnRuleWidth() {
-      return this[dartx.getPropertyValue]('column-rule-width');
-    }
-    set columnRuleWidth(value) {
-      this[dartx.setProperty]('column-rule-width', value, '');
-    }
-    get columnSpan() {
-      return this[dartx.getPropertyValue]('column-span');
-    }
-    set columnSpan(value) {
-      this[dartx.setProperty]('column-span', value, '');
-    }
-    get columnWidth() {
-      return this[dartx.getPropertyValue]('column-width');
-    }
-    set columnWidth(value) {
-      this[dartx.setProperty]('column-width', value, '');
-    }
-    get columns() {
-      return this[dartx.getPropertyValue]('columns');
-    }
-    set columns(value) {
-      this[dartx.setProperty]('columns', value, '');
-    }
-    get content() {
-      return this[dartx.getPropertyValue]('content');
-    }
-    set content(value) {
-      this[dartx.setProperty]('content', value, '');
-    }
-    get counterIncrement() {
-      return this[dartx.getPropertyValue]('counter-increment');
-    }
-    set counterIncrement(value) {
-      this[dartx.setProperty]('counter-increment', value, '');
-    }
-    get counterReset() {
-      return this[dartx.getPropertyValue]('counter-reset');
-    }
-    set counterReset(value) {
-      this[dartx.setProperty]('counter-reset', value, '');
-    }
-    get cursor() {
-      return this[dartx.getPropertyValue]('cursor');
-    }
-    set cursor(value) {
-      this[dartx.setProperty]('cursor', value, '');
-    }
-    get direction() {
-      return this[dartx.getPropertyValue]('direction');
-    }
-    set direction(value) {
-      this[dartx.setProperty]('direction', value, '');
-    }
-    get display() {
-      return this[dartx.getPropertyValue]('display');
-    }
-    set display(value) {
-      this[dartx.setProperty]('display', value, '');
-    }
-    get emptyCells() {
-      return this[dartx.getPropertyValue]('empty-cells');
-    }
-    set emptyCells(value) {
-      this[dartx.setProperty]('empty-cells', value, '');
-    }
-    get filter() {
-      return this[dartx.getPropertyValue]('filter');
-    }
-    set filter(value) {
-      this[dartx.setProperty]('filter', value, '');
-    }
-    get flex() {
-      return this[dartx.getPropertyValue]('flex');
-    }
-    set flex(value) {
-      this[dartx.setProperty]('flex', value, '');
-    }
-    get flexBasis() {
-      return this[dartx.getPropertyValue]('flex-basis');
-    }
-    set flexBasis(value) {
-      this[dartx.setProperty]('flex-basis', value, '');
-    }
-    get flexDirection() {
-      return this[dartx.getPropertyValue]('flex-direction');
-    }
-    set flexDirection(value) {
-      this[dartx.setProperty]('flex-direction', value, '');
-    }
-    get flexFlow() {
-      return this[dartx.getPropertyValue]('flex-flow');
-    }
-    set flexFlow(value) {
-      this[dartx.setProperty]('flex-flow', value, '');
-    }
-    get flexGrow() {
-      return this[dartx.getPropertyValue]('flex-grow');
-    }
-    set flexGrow(value) {
-      this[dartx.setProperty]('flex-grow', value, '');
-    }
-    get flexShrink() {
-      return this[dartx.getPropertyValue]('flex-shrink');
-    }
-    set flexShrink(value) {
-      this[dartx.setProperty]('flex-shrink', value, '');
-    }
-    get flexWrap() {
-      return this[dartx.getPropertyValue]('flex-wrap');
-    }
-    set flexWrap(value) {
-      this[dartx.setProperty]('flex-wrap', value, '');
-    }
-    get float() {
-      return this[dartx.getPropertyValue]('float');
-    }
-    set float(value) {
-      this[dartx.setProperty]('float', value, '');
-    }
-    get font() {
-      return this[dartx.getPropertyValue]('font');
-    }
-    set font(value) {
-      this[dartx.setProperty]('font', value, '');
-    }
-    get fontFamily() {
-      return this[dartx.getPropertyValue]('font-family');
-    }
-    set fontFamily(value) {
-      this[dartx.setProperty]('font-family', value, '');
-    }
-    get fontFeatureSettings() {
-      return this[dartx.getPropertyValue]('font-feature-settings');
-    }
-    set fontFeatureSettings(value) {
-      this[dartx.setProperty]('font-feature-settings', value, '');
-    }
-    get fontKerning() {
-      return this[dartx.getPropertyValue]('font-kerning');
-    }
-    set fontKerning(value) {
-      this[dartx.setProperty]('font-kerning', value, '');
-    }
-    get fontSize() {
-      return this[dartx.getPropertyValue]('font-size');
-    }
-    set fontSize(value) {
-      this[dartx.setProperty]('font-size', value, '');
-    }
-    get fontSizeDelta() {
-      return this[dartx.getPropertyValue]('font-size-delta');
-    }
-    set fontSizeDelta(value) {
-      this[dartx.setProperty]('font-size-delta', value, '');
-    }
-    get fontSmoothing() {
-      return this[dartx.getPropertyValue]('font-smoothing');
-    }
-    set fontSmoothing(value) {
-      this[dartx.setProperty]('font-smoothing', value, '');
-    }
-    get fontStretch() {
-      return this[dartx.getPropertyValue]('font-stretch');
-    }
-    set fontStretch(value) {
-      this[dartx.setProperty]('font-stretch', value, '');
-    }
-    get fontStyle() {
-      return this[dartx.getPropertyValue]('font-style');
-    }
-    set fontStyle(value) {
-      this[dartx.setProperty]('font-style', value, '');
-    }
-    get fontVariant() {
-      return this[dartx.getPropertyValue]('font-variant');
-    }
-    set fontVariant(value) {
-      this[dartx.setProperty]('font-variant', value, '');
-    }
-    get fontVariantLigatures() {
-      return this[dartx.getPropertyValue]('font-variant-ligatures');
-    }
-    set fontVariantLigatures(value) {
-      this[dartx.setProperty]('font-variant-ligatures', value, '');
-    }
-    get fontWeight() {
-      return this[dartx.getPropertyValue]('font-weight');
-    }
-    set fontWeight(value) {
-      this[dartx.setProperty]('font-weight', value, '');
-    }
-    get grid() {
-      return this[dartx.getPropertyValue]('grid');
-    }
-    set grid(value) {
-      this[dartx.setProperty]('grid', value, '');
-    }
-    get gridArea() {
-      return this[dartx.getPropertyValue]('grid-area');
-    }
-    set gridArea(value) {
-      this[dartx.setProperty]('grid-area', value, '');
-    }
-    get gridAutoColumns() {
-      return this[dartx.getPropertyValue]('grid-auto-columns');
-    }
-    set gridAutoColumns(value) {
-      this[dartx.setProperty]('grid-auto-columns', value, '');
-    }
-    get gridAutoFlow() {
-      return this[dartx.getPropertyValue]('grid-auto-flow');
-    }
-    set gridAutoFlow(value) {
-      this[dartx.setProperty]('grid-auto-flow', value, '');
-    }
-    get gridAutoRows() {
-      return this[dartx.getPropertyValue]('grid-auto-rows');
-    }
-    set gridAutoRows(value) {
-      this[dartx.setProperty]('grid-auto-rows', value, '');
-    }
-    get gridColumn() {
-      return this[dartx.getPropertyValue]('grid-column');
-    }
-    set gridColumn(value) {
-      this[dartx.setProperty]('grid-column', value, '');
-    }
-    get gridColumnEnd() {
-      return this[dartx.getPropertyValue]('grid-column-end');
-    }
-    set gridColumnEnd(value) {
-      this[dartx.setProperty]('grid-column-end', value, '');
-    }
-    get gridColumnStart() {
-      return this[dartx.getPropertyValue]('grid-column-start');
-    }
-    set gridColumnStart(value) {
-      this[dartx.setProperty]('grid-column-start', value, '');
-    }
-    get gridRow() {
-      return this[dartx.getPropertyValue]('grid-row');
-    }
-    set gridRow(value) {
-      this[dartx.setProperty]('grid-row', value, '');
-    }
-    get gridRowEnd() {
-      return this[dartx.getPropertyValue]('grid-row-end');
-    }
-    set gridRowEnd(value) {
-      this[dartx.setProperty]('grid-row-end', value, '');
-    }
-    get gridRowStart() {
-      return this[dartx.getPropertyValue]('grid-row-start');
-    }
-    set gridRowStart(value) {
-      this[dartx.setProperty]('grid-row-start', value, '');
-    }
-    get gridTemplate() {
-      return this[dartx.getPropertyValue]('grid-template');
-    }
-    set gridTemplate(value) {
-      this[dartx.setProperty]('grid-template', value, '');
-    }
-    get gridTemplateAreas() {
-      return this[dartx.getPropertyValue]('grid-template-areas');
-    }
-    set gridTemplateAreas(value) {
-      this[dartx.setProperty]('grid-template-areas', value, '');
-    }
-    get gridTemplateColumns() {
-      return this[dartx.getPropertyValue]('grid-template-columns');
-    }
-    set gridTemplateColumns(value) {
-      this[dartx.setProperty]('grid-template-columns', value, '');
-    }
-    get gridTemplateRows() {
-      return this[dartx.getPropertyValue]('grid-template-rows');
-    }
-    set gridTemplateRows(value) {
-      this[dartx.setProperty]('grid-template-rows', value, '');
-    }
-    get height() {
-      return this[dartx.getPropertyValue]('height');
-    }
-    set height(value) {
-      this[dartx.setProperty]('height', value, '');
-    }
-    get highlight() {
-      return this[dartx.getPropertyValue]('highlight');
-    }
-    set highlight(value) {
-      this[dartx.setProperty]('highlight', value, '');
-    }
-    get hyphenateCharacter() {
-      return this[dartx.getPropertyValue]('hyphenate-character');
-    }
-    set hyphenateCharacter(value) {
-      this[dartx.setProperty]('hyphenate-character', value, '');
-    }
-    get imageRendering() {
-      return this[dartx.getPropertyValue]('image-rendering');
-    }
-    set imageRendering(value) {
-      this[dartx.setProperty]('image-rendering', value, '');
-    }
-    get isolation() {
-      return this[dartx.getPropertyValue]('isolation');
-    }
-    set isolation(value) {
-      this[dartx.setProperty]('isolation', value, '');
-    }
-    get justifyContent() {
-      return this[dartx.getPropertyValue]('justify-content');
-    }
-    set justifyContent(value) {
-      this[dartx.setProperty]('justify-content', value, '');
-    }
-    get justifySelf() {
-      return this[dartx.getPropertyValue]('justify-self');
-    }
-    set justifySelf(value) {
-      this[dartx.setProperty]('justify-self', value, '');
-    }
-    get left() {
-      return this[dartx.getPropertyValue]('left');
-    }
-    set left(value) {
-      this[dartx.setProperty]('left', value, '');
-    }
-    get letterSpacing() {
-      return this[dartx.getPropertyValue]('letter-spacing');
-    }
-    set letterSpacing(value) {
-      this[dartx.setProperty]('letter-spacing', value, '');
-    }
-    get lineBoxContain() {
-      return this[dartx.getPropertyValue]('line-box-contain');
-    }
-    set lineBoxContain(value) {
-      this[dartx.setProperty]('line-box-contain', value, '');
-    }
-    get lineBreak() {
-      return this[dartx.getPropertyValue]('line-break');
-    }
-    set lineBreak(value) {
-      this[dartx.setProperty]('line-break', value, '');
-    }
-    get lineClamp() {
-      return this[dartx.getPropertyValue]('line-clamp');
-    }
-    set lineClamp(value) {
-      this[dartx.setProperty]('line-clamp', value, '');
-    }
-    get lineHeight() {
-      return this[dartx.getPropertyValue]('line-height');
-    }
-    set lineHeight(value) {
-      this[dartx.setProperty]('line-height', value, '');
-    }
-    get listStyle() {
-      return this[dartx.getPropertyValue]('list-style');
-    }
-    set listStyle(value) {
-      this[dartx.setProperty]('list-style', value, '');
-    }
-    get listStyleImage() {
-      return this[dartx.getPropertyValue]('list-style-image');
-    }
-    set listStyleImage(value) {
-      this[dartx.setProperty]('list-style-image', value, '');
-    }
-    get listStylePosition() {
-      return this[dartx.getPropertyValue]('list-style-position');
-    }
-    set listStylePosition(value) {
-      this[dartx.setProperty]('list-style-position', value, '');
-    }
-    get listStyleType() {
-      return this[dartx.getPropertyValue]('list-style-type');
-    }
-    set listStyleType(value) {
-      this[dartx.setProperty]('list-style-type', value, '');
-    }
-    get locale() {
-      return this[dartx.getPropertyValue]('locale');
-    }
-    set locale(value) {
-      this[dartx.setProperty]('locale', value, '');
-    }
-    get logicalHeight() {
-      return this[dartx.getPropertyValue]('logical-height');
-    }
-    set logicalHeight(value) {
-      this[dartx.setProperty]('logical-height', value, '');
-    }
-    get logicalWidth() {
-      return this[dartx.getPropertyValue]('logical-width');
-    }
-    set logicalWidth(value) {
-      this[dartx.setProperty]('logical-width', value, '');
-    }
-    get margin() {
-      return this[dartx.getPropertyValue]('margin');
-    }
-    set margin(value) {
-      this[dartx.setProperty]('margin', value, '');
-    }
-    get marginAfter() {
-      return this[dartx.getPropertyValue]('margin-after');
-    }
-    set marginAfter(value) {
-      this[dartx.setProperty]('margin-after', value, '');
-    }
-    get marginAfterCollapse() {
-      return this[dartx.getPropertyValue]('margin-after-collapse');
-    }
-    set marginAfterCollapse(value) {
-      this[dartx.setProperty]('margin-after-collapse', value, '');
-    }
-    get marginBefore() {
-      return this[dartx.getPropertyValue]('margin-before');
-    }
-    set marginBefore(value) {
-      this[dartx.setProperty]('margin-before', value, '');
-    }
-    get marginBeforeCollapse() {
-      return this[dartx.getPropertyValue]('margin-before-collapse');
-    }
-    set marginBeforeCollapse(value) {
-      this[dartx.setProperty]('margin-before-collapse', value, '');
-    }
-    get marginBottom() {
-      return this[dartx.getPropertyValue]('margin-bottom');
-    }
-    set marginBottom(value) {
-      this[dartx.setProperty]('margin-bottom', value, '');
-    }
-    get marginBottomCollapse() {
-      return this[dartx.getPropertyValue]('margin-bottom-collapse');
-    }
-    set marginBottomCollapse(value) {
-      this[dartx.setProperty]('margin-bottom-collapse', value, '');
-    }
-    get marginCollapse() {
-      return this[dartx.getPropertyValue]('margin-collapse');
-    }
-    set marginCollapse(value) {
-      this[dartx.setProperty]('margin-collapse', value, '');
-    }
-    get marginEnd() {
-      return this[dartx.getPropertyValue]('margin-end');
-    }
-    set marginEnd(value) {
-      this[dartx.setProperty]('margin-end', value, '');
-    }
-    get marginLeft() {
-      return this[dartx.getPropertyValue]('margin-left');
-    }
-    set marginLeft(value) {
-      this[dartx.setProperty]('margin-left', value, '');
-    }
-    get marginRight() {
-      return this[dartx.getPropertyValue]('margin-right');
-    }
-    set marginRight(value) {
-      this[dartx.setProperty]('margin-right', value, '');
-    }
-    get marginStart() {
-      return this[dartx.getPropertyValue]('margin-start');
-    }
-    set marginStart(value) {
-      this[dartx.setProperty]('margin-start', value, '');
-    }
-    get marginTop() {
-      return this[dartx.getPropertyValue]('margin-top');
-    }
-    set marginTop(value) {
-      this[dartx.setProperty]('margin-top', value, '');
-    }
-    get marginTopCollapse() {
-      return this[dartx.getPropertyValue]('margin-top-collapse');
-    }
-    set marginTopCollapse(value) {
-      this[dartx.setProperty]('margin-top-collapse', value, '');
-    }
-    get mask() {
-      return this[dartx.getPropertyValue]('mask');
-    }
-    set mask(value) {
-      this[dartx.setProperty]('mask', value, '');
-    }
-    get maskBoxImage() {
-      return this[dartx.getPropertyValue]('mask-box-image');
-    }
-    set maskBoxImage(value) {
-      this[dartx.setProperty]('mask-box-image', value, '');
-    }
-    get maskBoxImageOutset() {
-      return this[dartx.getPropertyValue]('mask-box-image-outset');
-    }
-    set maskBoxImageOutset(value) {
-      this[dartx.setProperty]('mask-box-image-outset', value, '');
-    }
-    get maskBoxImageRepeat() {
-      return this[dartx.getPropertyValue]('mask-box-image-repeat');
-    }
-    set maskBoxImageRepeat(value) {
-      this[dartx.setProperty]('mask-box-image-repeat', value, '');
-    }
-    get maskBoxImageSlice() {
-      return this[dartx.getPropertyValue]('mask-box-image-slice');
-    }
-    set maskBoxImageSlice(value) {
-      this[dartx.setProperty]('mask-box-image-slice', value, '');
-    }
-    get maskBoxImageSource() {
-      return this[dartx.getPropertyValue]('mask-box-image-source');
-    }
-    set maskBoxImageSource(value) {
-      this[dartx.setProperty]('mask-box-image-source', value, '');
-    }
-    get maskBoxImageWidth() {
-      return this[dartx.getPropertyValue]('mask-box-image-width');
-    }
-    set maskBoxImageWidth(value) {
-      this[dartx.setProperty]('mask-box-image-width', value, '');
-    }
-    get maskClip() {
-      return this[dartx.getPropertyValue]('mask-clip');
-    }
-    set maskClip(value) {
-      this[dartx.setProperty]('mask-clip', value, '');
-    }
-    get maskComposite() {
-      return this[dartx.getPropertyValue]('mask-composite');
-    }
-    set maskComposite(value) {
-      this[dartx.setProperty]('mask-composite', value, '');
-    }
-    get maskImage() {
-      return this[dartx.getPropertyValue]('mask-image');
-    }
-    set maskImage(value) {
-      this[dartx.setProperty]('mask-image', value, '');
-    }
-    get maskOrigin() {
-      return this[dartx.getPropertyValue]('mask-origin');
-    }
-    set maskOrigin(value) {
-      this[dartx.setProperty]('mask-origin', value, '');
-    }
-    get maskPosition() {
-      return this[dartx.getPropertyValue]('mask-position');
-    }
-    set maskPosition(value) {
-      this[dartx.setProperty]('mask-position', value, '');
-    }
-    get maskPositionX() {
-      return this[dartx.getPropertyValue]('mask-position-x');
-    }
-    set maskPositionX(value) {
-      this[dartx.setProperty]('mask-position-x', value, '');
-    }
-    get maskPositionY() {
-      return this[dartx.getPropertyValue]('mask-position-y');
-    }
-    set maskPositionY(value) {
-      this[dartx.setProperty]('mask-position-y', value, '');
-    }
-    get maskRepeat() {
-      return this[dartx.getPropertyValue]('mask-repeat');
-    }
-    set maskRepeat(value) {
-      this[dartx.setProperty]('mask-repeat', value, '');
-    }
-    get maskRepeatX() {
-      return this[dartx.getPropertyValue]('mask-repeat-x');
-    }
-    set maskRepeatX(value) {
-      this[dartx.setProperty]('mask-repeat-x', value, '');
-    }
-    get maskRepeatY() {
-      return this[dartx.getPropertyValue]('mask-repeat-y');
-    }
-    set maskRepeatY(value) {
-      this[dartx.setProperty]('mask-repeat-y', value, '');
-    }
-    get maskSize() {
-      return this[dartx.getPropertyValue]('mask-size');
-    }
-    set maskSize(value) {
-      this[dartx.setProperty]('mask-size', value, '');
-    }
-    get maskSourceType() {
-      return this[dartx.getPropertyValue]('mask-source-type');
-    }
-    set maskSourceType(value) {
-      this[dartx.setProperty]('mask-source-type', value, '');
-    }
-    get maxHeight() {
-      return this[dartx.getPropertyValue]('max-height');
-    }
-    set maxHeight(value) {
-      this[dartx.setProperty]('max-height', value, '');
-    }
-    get maxLogicalHeight() {
-      return this[dartx.getPropertyValue]('max-logical-height');
-    }
-    set maxLogicalHeight(value) {
-      this[dartx.setProperty]('max-logical-height', value, '');
-    }
-    get maxLogicalWidth() {
-      return this[dartx.getPropertyValue]('max-logical-width');
-    }
-    set maxLogicalWidth(value) {
-      this[dartx.setProperty]('max-logical-width', value, '');
-    }
-    get maxWidth() {
-      return this[dartx.getPropertyValue]('max-width');
-    }
-    set maxWidth(value) {
-      this[dartx.setProperty]('max-width', value, '');
-    }
-    get maxZoom() {
-      return this[dartx.getPropertyValue]('max-zoom');
-    }
-    set maxZoom(value) {
-      this[dartx.setProperty]('max-zoom', value, '');
-    }
-    get minHeight() {
-      return this[dartx.getPropertyValue]('min-height');
-    }
-    set minHeight(value) {
-      this[dartx.setProperty]('min-height', value, '');
-    }
-    get minLogicalHeight() {
-      return this[dartx.getPropertyValue]('min-logical-height');
-    }
-    set minLogicalHeight(value) {
-      this[dartx.setProperty]('min-logical-height', value, '');
-    }
-    get minLogicalWidth() {
-      return this[dartx.getPropertyValue]('min-logical-width');
-    }
-    set minLogicalWidth(value) {
-      this[dartx.setProperty]('min-logical-width', value, '');
-    }
-    get minWidth() {
-      return this[dartx.getPropertyValue]('min-width');
-    }
-    set minWidth(value) {
-      this[dartx.setProperty]('min-width', value, '');
-    }
-    get minZoom() {
-      return this[dartx.getPropertyValue]('min-zoom');
-    }
-    set minZoom(value) {
-      this[dartx.setProperty]('min-zoom', value, '');
-    }
-    get mixBlendMode() {
-      return this[dartx.getPropertyValue]('mix-blend-mode');
-    }
-    set mixBlendMode(value) {
-      this[dartx.setProperty]('mix-blend-mode', value, '');
-    }
-    get objectFit() {
-      return this[dartx.getPropertyValue]('object-fit');
-    }
-    set objectFit(value) {
-      this[dartx.setProperty]('object-fit', value, '');
-    }
-    get objectPosition() {
-      return this[dartx.getPropertyValue]('object-position');
-    }
-    set objectPosition(value) {
-      this[dartx.setProperty]('object-position', value, '');
-    }
-    get opacity() {
-      return this[dartx.getPropertyValue]('opacity');
-    }
-    set opacity(value) {
-      this[dartx.setProperty]('opacity', value, '');
-    }
-    get order() {
-      return this[dartx.getPropertyValue]('order');
-    }
-    set order(value) {
-      this[dartx.setProperty]('order', value, '');
-    }
-    get orientation() {
-      return this[dartx.getPropertyValue]('orientation');
-    }
-    set orientation(value) {
-      this[dartx.setProperty]('orientation', value, '');
-    }
-    get orphans() {
-      return this[dartx.getPropertyValue]('orphans');
-    }
-    set orphans(value) {
-      this[dartx.setProperty]('orphans', value, '');
-    }
-    get outline() {
-      return this[dartx.getPropertyValue]('outline');
-    }
-    set outline(value) {
-      this[dartx.setProperty]('outline', value, '');
-    }
-    get outlineColor() {
-      return this[dartx.getPropertyValue]('outline-color');
-    }
-    set outlineColor(value) {
-      this[dartx.setProperty]('outline-color', value, '');
-    }
-    get outlineOffset() {
-      return this[dartx.getPropertyValue]('outline-offset');
-    }
-    set outlineOffset(value) {
-      this[dartx.setProperty]('outline-offset', value, '');
-    }
-    get outlineStyle() {
-      return this[dartx.getPropertyValue]('outline-style');
-    }
-    set outlineStyle(value) {
-      this[dartx.setProperty]('outline-style', value, '');
-    }
-    get outlineWidth() {
-      return this[dartx.getPropertyValue]('outline-width');
-    }
-    set outlineWidth(value) {
-      this[dartx.setProperty]('outline-width', value, '');
-    }
-    get overflow() {
-      return this[dartx.getPropertyValue]('overflow');
-    }
-    set overflow(value) {
-      this[dartx.setProperty]('overflow', value, '');
-    }
-    get overflowWrap() {
-      return this[dartx.getPropertyValue]('overflow-wrap');
-    }
-    set overflowWrap(value) {
-      this[dartx.setProperty]('overflow-wrap', value, '');
-    }
-    get overflowX() {
-      return this[dartx.getPropertyValue]('overflow-x');
-    }
-    set overflowX(value) {
-      this[dartx.setProperty]('overflow-x', value, '');
-    }
-    get overflowY() {
-      return this[dartx.getPropertyValue]('overflow-y');
-    }
-    set overflowY(value) {
-      this[dartx.setProperty]('overflow-y', value, '');
-    }
-    get padding() {
-      return this[dartx.getPropertyValue]('padding');
-    }
-    set padding(value) {
-      this[dartx.setProperty]('padding', value, '');
-    }
-    get paddingAfter() {
-      return this[dartx.getPropertyValue]('padding-after');
-    }
-    set paddingAfter(value) {
-      this[dartx.setProperty]('padding-after', value, '');
-    }
-    get paddingBefore() {
-      return this[dartx.getPropertyValue]('padding-before');
-    }
-    set paddingBefore(value) {
-      this[dartx.setProperty]('padding-before', value, '');
-    }
-    get paddingBottom() {
-      return this[dartx.getPropertyValue]('padding-bottom');
-    }
-    set paddingBottom(value) {
-      this[dartx.setProperty]('padding-bottom', value, '');
-    }
-    get paddingEnd() {
-      return this[dartx.getPropertyValue]('padding-end');
-    }
-    set paddingEnd(value) {
-      this[dartx.setProperty]('padding-end', value, '');
-    }
-    get paddingLeft() {
-      return this[dartx.getPropertyValue]('padding-left');
-    }
-    set paddingLeft(value) {
-      this[dartx.setProperty]('padding-left', value, '');
-    }
-    get paddingRight() {
-      return this[dartx.getPropertyValue]('padding-right');
-    }
-    set paddingRight(value) {
-      this[dartx.setProperty]('padding-right', value, '');
-    }
-    get paddingStart() {
-      return this[dartx.getPropertyValue]('padding-start');
-    }
-    set paddingStart(value) {
-      this[dartx.setProperty]('padding-start', value, '');
-    }
-    get paddingTop() {
-      return this[dartx.getPropertyValue]('padding-top');
-    }
-    set paddingTop(value) {
-      this[dartx.setProperty]('padding-top', value, '');
-    }
-    get page() {
-      return this[dartx.getPropertyValue]('page');
-    }
-    set page(value) {
-      this[dartx.setProperty]('page', value, '');
-    }
-    get pageBreakAfter() {
-      return this[dartx.getPropertyValue]('page-break-after');
-    }
-    set pageBreakAfter(value) {
-      this[dartx.setProperty]('page-break-after', value, '');
-    }
-    get pageBreakBefore() {
-      return this[dartx.getPropertyValue]('page-break-before');
-    }
-    set pageBreakBefore(value) {
-      this[dartx.setProperty]('page-break-before', value, '');
-    }
-    get pageBreakInside() {
-      return this[dartx.getPropertyValue]('page-break-inside');
-    }
-    set pageBreakInside(value) {
-      this[dartx.setProperty]('page-break-inside', value, '');
-    }
-    get perspective() {
-      return this[dartx.getPropertyValue]('perspective');
-    }
-    set perspective(value) {
-      this[dartx.setProperty]('perspective', value, '');
-    }
-    get perspectiveOrigin() {
-      return this[dartx.getPropertyValue]('perspective-origin');
-    }
-    set perspectiveOrigin(value) {
-      this[dartx.setProperty]('perspective-origin', value, '');
-    }
-    get perspectiveOriginX() {
-      return this[dartx.getPropertyValue]('perspective-origin-x');
-    }
-    set perspectiveOriginX(value) {
-      this[dartx.setProperty]('perspective-origin-x', value, '');
-    }
-    get perspectiveOriginY() {
-      return this[dartx.getPropertyValue]('perspective-origin-y');
-    }
-    set perspectiveOriginY(value) {
-      this[dartx.setProperty]('perspective-origin-y', value, '');
-    }
-    get pointerEvents() {
-      return this[dartx.getPropertyValue]('pointer-events');
-    }
-    set pointerEvents(value) {
-      this[dartx.setProperty]('pointer-events', value, '');
-    }
-    get position() {
-      return this[dartx.getPropertyValue]('position');
-    }
-    set position(value) {
-      this[dartx.setProperty]('position', value, '');
-    }
-    get printColorAdjust() {
-      return this[dartx.getPropertyValue]('print-color-adjust');
-    }
-    set printColorAdjust(value) {
-      this[dartx.setProperty]('print-color-adjust', value, '');
-    }
-    get quotes() {
-      return this[dartx.getPropertyValue]('quotes');
-    }
-    set quotes(value) {
-      this[dartx.setProperty]('quotes', value, '');
-    }
-    get resize() {
-      return this[dartx.getPropertyValue]('resize');
-    }
-    set resize(value) {
-      this[dartx.setProperty]('resize', value, '');
-    }
-    get right() {
-      return this[dartx.getPropertyValue]('right');
-    }
-    set right(value) {
-      this[dartx.setProperty]('right', value, '');
-    }
-    get rtlOrdering() {
-      return this[dartx.getPropertyValue]('rtl-ordering');
-    }
-    set rtlOrdering(value) {
-      this[dartx.setProperty]('rtl-ordering', value, '');
-    }
-    get rubyPosition() {
-      return this[dartx.getPropertyValue]('ruby-position');
-    }
-    set rubyPosition(value) {
-      this[dartx.setProperty]('ruby-position', value, '');
-    }
-    get scrollBehavior() {
-      return this[dartx.getPropertyValue]('scroll-behavior');
-    }
-    set scrollBehavior(value) {
-      this[dartx.setProperty]('scroll-behavior', value, '');
-    }
-    get shapeImageThreshold() {
-      return this[dartx.getPropertyValue]('shape-image-threshold');
-    }
-    set shapeImageThreshold(value) {
-      this[dartx.setProperty]('shape-image-threshold', value, '');
-    }
-    get shapeMargin() {
-      return this[dartx.getPropertyValue]('shape-margin');
-    }
-    set shapeMargin(value) {
-      this[dartx.setProperty]('shape-margin', value, '');
-    }
-    get shapeOutside() {
-      return this[dartx.getPropertyValue]('shape-outside');
-    }
-    set shapeOutside(value) {
-      this[dartx.setProperty]('shape-outside', value, '');
-    }
-    get size() {
-      return this[dartx.getPropertyValue]('size');
-    }
-    set size(value) {
-      this[dartx.setProperty]('size', value, '');
-    }
-    get speak() {
-      return this[dartx.getPropertyValue]('speak');
-    }
-    set speak(value) {
-      this[dartx.setProperty]('speak', value, '');
-    }
-    get src() {
-      return this[dartx.getPropertyValue]('src');
-    }
-    set src(value) {
-      this[dartx.setProperty]('src', value, '');
-    }
-    get tabSize() {
-      return this[dartx.getPropertyValue]('tab-size');
-    }
-    set tabSize(value) {
-      this[dartx.setProperty]('tab-size', value, '');
-    }
-    get tableLayout() {
-      return this[dartx.getPropertyValue]('table-layout');
-    }
-    set tableLayout(value) {
-      this[dartx.setProperty]('table-layout', value, '');
-    }
-    get tapHighlightColor() {
-      return this[dartx.getPropertyValue]('tap-highlight-color');
-    }
-    set tapHighlightColor(value) {
-      this[dartx.setProperty]('tap-highlight-color', value, '');
-    }
-    get textAlign() {
-      return this[dartx.getPropertyValue]('text-align');
-    }
-    set textAlign(value) {
-      this[dartx.setProperty]('text-align', value, '');
-    }
-    get textAlignLast() {
-      return this[dartx.getPropertyValue]('text-align-last');
-    }
-    set textAlignLast(value) {
-      this[dartx.setProperty]('text-align-last', value, '');
-    }
-    get textCombine() {
-      return this[dartx.getPropertyValue]('text-combine');
-    }
-    set textCombine(value) {
-      this[dartx.setProperty]('text-combine', value, '');
-    }
-    get textDecoration() {
-      return this[dartx.getPropertyValue]('text-decoration');
-    }
-    set textDecoration(value) {
-      this[dartx.setProperty]('text-decoration', value, '');
-    }
-    get textDecorationColor() {
-      return this[dartx.getPropertyValue]('text-decoration-color');
-    }
-    set textDecorationColor(value) {
-      this[dartx.setProperty]('text-decoration-color', value, '');
-    }
-    get textDecorationLine() {
-      return this[dartx.getPropertyValue]('text-decoration-line');
-    }
-    set textDecorationLine(value) {
-      this[dartx.setProperty]('text-decoration-line', value, '');
-    }
-    get textDecorationStyle() {
-      return this[dartx.getPropertyValue]('text-decoration-style');
-    }
-    set textDecorationStyle(value) {
-      this[dartx.setProperty]('text-decoration-style', value, '');
-    }
-    get textDecorationsInEffect() {
-      return this[dartx.getPropertyValue]('text-decorations-in-effect');
-    }
-    set textDecorationsInEffect(value) {
-      this[dartx.setProperty]('text-decorations-in-effect', value, '');
-    }
-    get textEmphasis() {
-      return this[dartx.getPropertyValue]('text-emphasis');
-    }
-    set textEmphasis(value) {
-      this[dartx.setProperty]('text-emphasis', value, '');
-    }
-    get textEmphasisColor() {
-      return this[dartx.getPropertyValue]('text-emphasis-color');
-    }
-    set textEmphasisColor(value) {
-      this[dartx.setProperty]('text-emphasis-color', value, '');
-    }
-    get textEmphasisPosition() {
-      return this[dartx.getPropertyValue]('text-emphasis-position');
-    }
-    set textEmphasisPosition(value) {
-      this[dartx.setProperty]('text-emphasis-position', value, '');
-    }
-    get textEmphasisStyle() {
-      return this[dartx.getPropertyValue]('text-emphasis-style');
-    }
-    set textEmphasisStyle(value) {
-      this[dartx.setProperty]('text-emphasis-style', value, '');
-    }
-    get textFillColor() {
-      return this[dartx.getPropertyValue]('text-fill-color');
-    }
-    set textFillColor(value) {
-      this[dartx.setProperty]('text-fill-color', value, '');
-    }
-    get textIndent() {
-      return this[dartx.getPropertyValue]('text-indent');
-    }
-    set textIndent(value) {
-      this[dartx.setProperty]('text-indent', value, '');
-    }
-    get textJustify() {
-      return this[dartx.getPropertyValue]('text-justify');
-    }
-    set textJustify(value) {
-      this[dartx.setProperty]('text-justify', value, '');
-    }
-    get textLineThroughColor() {
-      return this[dartx.getPropertyValue]('text-line-through-color');
-    }
-    set textLineThroughColor(value) {
-      this[dartx.setProperty]('text-line-through-color', value, '');
-    }
-    get textLineThroughMode() {
-      return this[dartx.getPropertyValue]('text-line-through-mode');
-    }
-    set textLineThroughMode(value) {
-      this[dartx.setProperty]('text-line-through-mode', value, '');
-    }
-    get textLineThroughStyle() {
-      return this[dartx.getPropertyValue]('text-line-through-style');
-    }
-    set textLineThroughStyle(value) {
-      this[dartx.setProperty]('text-line-through-style', value, '');
-    }
-    get textLineThroughWidth() {
-      return this[dartx.getPropertyValue]('text-line-through-width');
-    }
-    set textLineThroughWidth(value) {
-      this[dartx.setProperty]('text-line-through-width', value, '');
-    }
-    get textOrientation() {
-      return this[dartx.getPropertyValue]('text-orientation');
-    }
-    set textOrientation(value) {
-      this[dartx.setProperty]('text-orientation', value, '');
-    }
-    get textOverflow() {
-      return this[dartx.getPropertyValue]('text-overflow');
-    }
-    set textOverflow(value) {
-      this[dartx.setProperty]('text-overflow', value, '');
-    }
-    get textOverlineColor() {
-      return this[dartx.getPropertyValue]('text-overline-color');
-    }
-    set textOverlineColor(value) {
-      this[dartx.setProperty]('text-overline-color', value, '');
-    }
-    get textOverlineMode() {
-      return this[dartx.getPropertyValue]('text-overline-mode');
-    }
-    set textOverlineMode(value) {
-      this[dartx.setProperty]('text-overline-mode', value, '');
-    }
-    get textOverlineStyle() {
-      return this[dartx.getPropertyValue]('text-overline-style');
-    }
-    set textOverlineStyle(value) {
-      this[dartx.setProperty]('text-overline-style', value, '');
-    }
-    get textOverlineWidth() {
-      return this[dartx.getPropertyValue]('text-overline-width');
-    }
-    set textOverlineWidth(value) {
-      this[dartx.setProperty]('text-overline-width', value, '');
-    }
-    get textRendering() {
-      return this[dartx.getPropertyValue]('text-rendering');
-    }
-    set textRendering(value) {
-      this[dartx.setProperty]('text-rendering', value, '');
-    }
-    get textSecurity() {
-      return this[dartx.getPropertyValue]('text-security');
-    }
-    set textSecurity(value) {
-      this[dartx.setProperty]('text-security', value, '');
-    }
-    get textShadow() {
-      return this[dartx.getPropertyValue]('text-shadow');
-    }
-    set textShadow(value) {
-      this[dartx.setProperty]('text-shadow', value, '');
-    }
-    get textStroke() {
-      return this[dartx.getPropertyValue]('text-stroke');
-    }
-    set textStroke(value) {
-      this[dartx.setProperty]('text-stroke', value, '');
-    }
-    get textStrokeColor() {
-      return this[dartx.getPropertyValue]('text-stroke-color');
-    }
-    set textStrokeColor(value) {
-      this[dartx.setProperty]('text-stroke-color', value, '');
-    }
-    get textStrokeWidth() {
-      return this[dartx.getPropertyValue]('text-stroke-width');
-    }
-    set textStrokeWidth(value) {
-      this[dartx.setProperty]('text-stroke-width', value, '');
-    }
-    get textTransform() {
-      return this[dartx.getPropertyValue]('text-transform');
-    }
-    set textTransform(value) {
-      this[dartx.setProperty]('text-transform', value, '');
-    }
-    get textUnderlineColor() {
-      return this[dartx.getPropertyValue]('text-underline-color');
-    }
-    set textUnderlineColor(value) {
-      this[dartx.setProperty]('text-underline-color', value, '');
-    }
-    get textUnderlineMode() {
-      return this[dartx.getPropertyValue]('text-underline-mode');
-    }
-    set textUnderlineMode(value) {
-      this[dartx.setProperty]('text-underline-mode', value, '');
-    }
-    get textUnderlinePosition() {
-      return this[dartx.getPropertyValue]('text-underline-position');
-    }
-    set textUnderlinePosition(value) {
-      this[dartx.setProperty]('text-underline-position', value, '');
-    }
-    get textUnderlineStyle() {
-      return this[dartx.getPropertyValue]('text-underline-style');
-    }
-    set textUnderlineStyle(value) {
-      this[dartx.setProperty]('text-underline-style', value, '');
-    }
-    get textUnderlineWidth() {
-      return this[dartx.getPropertyValue]('text-underline-width');
-    }
-    set textUnderlineWidth(value) {
-      this[dartx.setProperty]('text-underline-width', value, '');
-    }
-    get top() {
-      return this[dartx.getPropertyValue]('top');
-    }
-    set top(value) {
-      this[dartx.setProperty]('top', value, '');
-    }
-    get touchAction() {
-      return this[dartx.getPropertyValue]('touch-action');
-    }
-    set touchAction(value) {
-      this[dartx.setProperty]('touch-action', value, '');
-    }
-    get touchActionDelay() {
-      return this[dartx.getPropertyValue]('touch-action-delay');
-    }
-    set touchActionDelay(value) {
-      this[dartx.setProperty]('touch-action-delay', value, '');
-    }
-    get transform() {
-      return this[dartx.getPropertyValue]('transform');
-    }
-    set transform(value) {
-      this[dartx.setProperty]('transform', value, '');
-    }
-    get transformOrigin() {
-      return this[dartx.getPropertyValue]('transform-origin');
-    }
-    set transformOrigin(value) {
-      this[dartx.setProperty]('transform-origin', value, '');
-    }
-    get transformOriginX() {
-      return this[dartx.getPropertyValue]('transform-origin-x');
-    }
-    set transformOriginX(value) {
-      this[dartx.setProperty]('transform-origin-x', value, '');
-    }
-    get transformOriginY() {
-      return this[dartx.getPropertyValue]('transform-origin-y');
-    }
-    set transformOriginY(value) {
-      this[dartx.setProperty]('transform-origin-y', value, '');
-    }
-    get transformOriginZ() {
-      return this[dartx.getPropertyValue]('transform-origin-z');
-    }
-    set transformOriginZ(value) {
-      this[dartx.setProperty]('transform-origin-z', value, '');
-    }
-    get transformStyle() {
-      return this[dartx.getPropertyValue]('transform-style');
-    }
-    set transformStyle(value) {
-      this[dartx.setProperty]('transform-style', value, '');
-    }
-    get transition() {
-      return this[dartx.getPropertyValue]('transition');
-    }
-    set transition(value) {
-      this[dartx.setProperty]('transition', value, '');
-    }
-    get transitionDelay() {
-      return this[dartx.getPropertyValue]('transition-delay');
-    }
-    set transitionDelay(value) {
-      this[dartx.setProperty]('transition-delay', value, '');
-    }
-    get transitionDuration() {
-      return this[dartx.getPropertyValue]('transition-duration');
-    }
-    set transitionDuration(value) {
-      this[dartx.setProperty]('transition-duration', value, '');
-    }
-    get transitionProperty() {
-      return this[dartx.getPropertyValue]('transition-property');
-    }
-    set transitionProperty(value) {
-      this[dartx.setProperty]('transition-property', value, '');
-    }
-    get transitionTimingFunction() {
-      return this[dartx.getPropertyValue]('transition-timing-function');
-    }
-    set transitionTimingFunction(value) {
-      this[dartx.setProperty]('transition-timing-function', value, '');
-    }
-    get unicodeBidi() {
-      return this[dartx.getPropertyValue]('unicode-bidi');
-    }
-    set unicodeBidi(value) {
-      this[dartx.setProperty]('unicode-bidi', value, '');
-    }
-    get unicodeRange() {
-      return this[dartx.getPropertyValue]('unicode-range');
-    }
-    set unicodeRange(value) {
-      this[dartx.setProperty]('unicode-range', value, '');
-    }
-    get userDrag() {
-      return this[dartx.getPropertyValue]('user-drag');
-    }
-    set userDrag(value) {
-      this[dartx.setProperty]('user-drag', value, '');
-    }
-    get userModify() {
-      return this[dartx.getPropertyValue]('user-modify');
-    }
-    set userModify(value) {
-      this[dartx.setProperty]('user-modify', value, '');
-    }
-    get userSelect() {
-      return this[dartx.getPropertyValue]('user-select');
-    }
-    set userSelect(value) {
-      this[dartx.setProperty]('user-select', value, '');
-    }
-    get userZoom() {
-      return this[dartx.getPropertyValue]('user-zoom');
-    }
-    set userZoom(value) {
-      this[dartx.setProperty]('user-zoom', value, '');
-    }
-    get verticalAlign() {
-      return this[dartx.getPropertyValue]('vertical-align');
-    }
-    set verticalAlign(value) {
-      this[dartx.setProperty]('vertical-align', value, '');
-    }
-    get visibility() {
-      return this[dartx.getPropertyValue]('visibility');
-    }
-    set visibility(value) {
-      this[dartx.setProperty]('visibility', value, '');
-    }
-    get whiteSpace() {
-      return this[dartx.getPropertyValue]('white-space');
-    }
-    set whiteSpace(value) {
-      this[dartx.setProperty]('white-space', value, '');
-    }
-    get widows() {
-      return this[dartx.getPropertyValue]('widows');
-    }
-    set widows(value) {
-      this[dartx.setProperty]('widows', value, '');
-    }
-    get width() {
-      return this[dartx.getPropertyValue]('width');
-    }
-    set width(value) {
-      this[dartx.setProperty]('width', value, '');
-    }
-    get willChange() {
-      return this[dartx.getPropertyValue]('will-change');
-    }
-    set willChange(value) {
-      this[dartx.setProperty]('will-change', value, '');
-    }
-    get wordBreak() {
-      return this[dartx.getPropertyValue]('word-break');
-    }
-    set wordBreak(value) {
-      this[dartx.setProperty]('word-break', value, '');
-    }
-    get wordSpacing() {
-      return this[dartx.getPropertyValue]('word-spacing');
-    }
-    set wordSpacing(value) {
-      this[dartx.setProperty]('word-spacing', value, '');
-    }
-    get wordWrap() {
-      return this[dartx.getPropertyValue]('word-wrap');
-    }
-    set wordWrap(value) {
-      this[dartx.setProperty]('word-wrap', value, '');
-    }
-    get wrapFlow() {
-      return this[dartx.getPropertyValue]('wrap-flow');
-    }
-    set wrapFlow(value) {
-      this[dartx.setProperty]('wrap-flow', value, '');
-    }
-    get wrapThrough() {
-      return this[dartx.getPropertyValue]('wrap-through');
-    }
-    set wrapThrough(value) {
-      this[dartx.setProperty]('wrap-through', value, '');
-    }
-    get writingMode() {
-      return this[dartx.getPropertyValue]('writing-mode');
-    }
-    set writingMode(value) {
-      this[dartx.setProperty]('writing-mode', value, '');
-    }
-    get zIndex() {
-      return this[dartx.getPropertyValue]('z-index');
-    }
-    set zIndex(value) {
-      this[dartx.setProperty]('z-index', value, '');
-    }
-    get zoom() {
-      return this[dartx.getPropertyValue]('zoom');
-    }
-    set zoom(value) {
-      this[dartx.setProperty]('zoom', value, '');
-    }
-  };
-  dart.setSignature(html$.CssStyleDeclarationBase, {
-    getters: () => ({
-      alignContent: dart.definiteFunctionType(core.String, []),
-      alignItems: dart.definiteFunctionType(core.String, []),
-      alignSelf: dart.definiteFunctionType(core.String, []),
-      animation: dart.definiteFunctionType(core.String, []),
-      animationDelay: dart.definiteFunctionType(core.String, []),
-      animationDirection: dart.definiteFunctionType(core.String, []),
-      animationDuration: dart.definiteFunctionType(core.String, []),
-      animationFillMode: dart.definiteFunctionType(core.String, []),
-      animationIterationCount: dart.definiteFunctionType(core.String, []),
-      animationName: dart.definiteFunctionType(core.String, []),
-      animationPlayState: dart.definiteFunctionType(core.String, []),
-      animationTimingFunction: dart.definiteFunctionType(core.String, []),
-      appRegion: dart.definiteFunctionType(core.String, []),
-      appearance: dart.definiteFunctionType(core.String, []),
-      aspectRatio: dart.definiteFunctionType(core.String, []),
-      backfaceVisibility: dart.definiteFunctionType(core.String, []),
-      background: dart.definiteFunctionType(core.String, []),
-      backgroundAttachment: dart.definiteFunctionType(core.String, []),
-      backgroundBlendMode: dart.definiteFunctionType(core.String, []),
-      backgroundClip: dart.definiteFunctionType(core.String, []),
-      backgroundColor: dart.definiteFunctionType(core.String, []),
-      backgroundComposite: dart.definiteFunctionType(core.String, []),
-      backgroundImage: dart.definiteFunctionType(core.String, []),
-      backgroundOrigin: dart.definiteFunctionType(core.String, []),
-      backgroundPosition: dart.definiteFunctionType(core.String, []),
-      backgroundPositionX: dart.definiteFunctionType(core.String, []),
-      backgroundPositionY: dart.definiteFunctionType(core.String, []),
-      backgroundRepeat: dart.definiteFunctionType(core.String, []),
-      backgroundRepeatX: dart.definiteFunctionType(core.String, []),
-      backgroundRepeatY: dart.definiteFunctionType(core.String, []),
-      backgroundSize: dart.definiteFunctionType(core.String, []),
-      border: dart.definiteFunctionType(core.String, []),
-      borderAfter: dart.definiteFunctionType(core.String, []),
-      borderAfterColor: dart.definiteFunctionType(core.String, []),
-      borderAfterStyle: dart.definiteFunctionType(core.String, []),
-      borderAfterWidth: dart.definiteFunctionType(core.String, []),
-      borderBefore: dart.definiteFunctionType(core.String, []),
-      borderBeforeColor: dart.definiteFunctionType(core.String, []),
-      borderBeforeStyle: dart.definiteFunctionType(core.String, []),
-      borderBeforeWidth: dart.definiteFunctionType(core.String, []),
-      borderBottom: dart.definiteFunctionType(core.String, []),
-      borderBottomColor: dart.definiteFunctionType(core.String, []),
-      borderBottomLeftRadius: dart.definiteFunctionType(core.String, []),
-      borderBottomRightRadius: dart.definiteFunctionType(core.String, []),
-      borderBottomStyle: dart.definiteFunctionType(core.String, []),
-      borderBottomWidth: dart.definiteFunctionType(core.String, []),
-      borderCollapse: dart.definiteFunctionType(core.String, []),
-      borderColor: dart.definiteFunctionType(core.String, []),
-      borderEnd: dart.definiteFunctionType(core.String, []),
-      borderEndColor: dart.definiteFunctionType(core.String, []),
-      borderEndStyle: dart.definiteFunctionType(core.String, []),
-      borderEndWidth: dart.definiteFunctionType(core.String, []),
-      borderFit: dart.definiteFunctionType(core.String, []),
-      borderHorizontalSpacing: dart.definiteFunctionType(core.String, []),
-      borderImage: dart.definiteFunctionType(core.String, []),
-      borderImageOutset: dart.definiteFunctionType(core.String, []),
-      borderImageRepeat: dart.definiteFunctionType(core.String, []),
-      borderImageSlice: dart.definiteFunctionType(core.String, []),
-      borderImageSource: dart.definiteFunctionType(core.String, []),
-      borderImageWidth: dart.definiteFunctionType(core.String, []),
-      borderLeft: dart.definiteFunctionType(core.String, []),
-      borderLeftColor: dart.definiteFunctionType(core.String, []),
-      borderLeftStyle: dart.definiteFunctionType(core.String, []),
-      borderLeftWidth: dart.definiteFunctionType(core.String, []),
-      borderRadius: dart.definiteFunctionType(core.String, []),
-      borderRight: dart.definiteFunctionType(core.String, []),
-      borderRightColor: dart.definiteFunctionType(core.String, []),
-      borderRightStyle: dart.definiteFunctionType(core.String, []),
-      borderRightWidth: dart.definiteFunctionType(core.String, []),
-      borderSpacing: dart.definiteFunctionType(core.String, []),
-      borderStart: dart.definiteFunctionType(core.String, []),
-      borderStartColor: dart.definiteFunctionType(core.String, []),
-      borderStartStyle: dart.definiteFunctionType(core.String, []),
-      borderStartWidth: dart.definiteFunctionType(core.String, []),
-      borderStyle: dart.definiteFunctionType(core.String, []),
-      borderTop: dart.definiteFunctionType(core.String, []),
-      borderTopColor: dart.definiteFunctionType(core.String, []),
-      borderTopLeftRadius: dart.definiteFunctionType(core.String, []),
-      borderTopRightRadius: dart.definiteFunctionType(core.String, []),
-      borderTopStyle: dart.definiteFunctionType(core.String, []),
-      borderTopWidth: dart.definiteFunctionType(core.String, []),
-      borderVerticalSpacing: dart.definiteFunctionType(core.String, []),
-      borderWidth: dart.definiteFunctionType(core.String, []),
-      bottom: dart.definiteFunctionType(core.String, []),
-      boxAlign: dart.definiteFunctionType(core.String, []),
-      boxDecorationBreak: dart.definiteFunctionType(core.String, []),
-      boxDirection: dart.definiteFunctionType(core.String, []),
-      boxFlex: dart.definiteFunctionType(core.String, []),
-      boxFlexGroup: dart.definiteFunctionType(core.String, []),
-      boxLines: dart.definiteFunctionType(core.String, []),
-      boxOrdinalGroup: dart.definiteFunctionType(core.String, []),
-      boxOrient: dart.definiteFunctionType(core.String, []),
-      boxPack: dart.definiteFunctionType(core.String, []),
-      boxReflect: dart.definiteFunctionType(core.String, []),
-      boxShadow: dart.definiteFunctionType(core.String, []),
-      boxSizing: dart.definiteFunctionType(core.String, []),
-      captionSide: dart.definiteFunctionType(core.String, []),
-      clear: dart.definiteFunctionType(core.String, []),
-      clip: dart.definiteFunctionType(core.String, []),
-      clipPath: dart.definiteFunctionType(core.String, []),
-      color: dart.definiteFunctionType(core.String, []),
-      columnBreakAfter: dart.definiteFunctionType(core.String, []),
-      columnBreakBefore: dart.definiteFunctionType(core.String, []),
-      columnBreakInside: dart.definiteFunctionType(core.String, []),
-      columnCount: dart.definiteFunctionType(core.String, []),
-      columnFill: dart.definiteFunctionType(core.String, []),
-      columnGap: dart.definiteFunctionType(core.String, []),
-      columnRule: dart.definiteFunctionType(core.String, []),
-      columnRuleColor: dart.definiteFunctionType(core.String, []),
-      columnRuleStyle: dart.definiteFunctionType(core.String, []),
-      columnRuleWidth: dart.definiteFunctionType(core.String, []),
-      columnSpan: dart.definiteFunctionType(core.String, []),
-      columnWidth: dart.definiteFunctionType(core.String, []),
-      columns: dart.definiteFunctionType(core.String, []),
-      content: dart.definiteFunctionType(core.String, []),
-      counterIncrement: dart.definiteFunctionType(core.String, []),
-      counterReset: dart.definiteFunctionType(core.String, []),
-      cursor: dart.definiteFunctionType(core.String, []),
-      direction: dart.definiteFunctionType(core.String, []),
-      display: dart.definiteFunctionType(core.String, []),
-      emptyCells: dart.definiteFunctionType(core.String, []),
-      filter: dart.definiteFunctionType(core.String, []),
-      flex: dart.definiteFunctionType(core.String, []),
-      flexBasis: dart.definiteFunctionType(core.String, []),
-      flexDirection: dart.definiteFunctionType(core.String, []),
-      flexFlow: dart.definiteFunctionType(core.String, []),
-      flexGrow: dart.definiteFunctionType(core.String, []),
-      flexShrink: dart.definiteFunctionType(core.String, []),
-      flexWrap: dart.definiteFunctionType(core.String, []),
-      float: dart.definiteFunctionType(core.String, []),
-      font: dart.definiteFunctionType(core.String, []),
-      fontFamily: dart.definiteFunctionType(core.String, []),
-      fontFeatureSettings: dart.definiteFunctionType(core.String, []),
-      fontKerning: dart.definiteFunctionType(core.String, []),
-      fontSize: dart.definiteFunctionType(core.String, []),
-      fontSizeDelta: dart.definiteFunctionType(core.String, []),
-      fontSmoothing: dart.definiteFunctionType(core.String, []),
-      fontStretch: dart.definiteFunctionType(core.String, []),
-      fontStyle: dart.definiteFunctionType(core.String, []),
-      fontVariant: dart.definiteFunctionType(core.String, []),
-      fontVariantLigatures: dart.definiteFunctionType(core.String, []),
-      fontWeight: dart.definiteFunctionType(core.String, []),
-      grid: dart.definiteFunctionType(core.String, []),
-      gridArea: dart.definiteFunctionType(core.String, []),
-      gridAutoColumns: dart.definiteFunctionType(core.String, []),
-      gridAutoFlow: dart.definiteFunctionType(core.String, []),
-      gridAutoRows: dart.definiteFunctionType(core.String, []),
-      gridColumn: dart.definiteFunctionType(core.String, []),
-      gridColumnEnd: dart.definiteFunctionType(core.String, []),
-      gridColumnStart: dart.definiteFunctionType(core.String, []),
-      gridRow: dart.definiteFunctionType(core.String, []),
-      gridRowEnd: dart.definiteFunctionType(core.String, []),
-      gridRowStart: dart.definiteFunctionType(core.String, []),
-      gridTemplate: dart.definiteFunctionType(core.String, []),
-      gridTemplateAreas: dart.definiteFunctionType(core.String, []),
-      gridTemplateColumns: dart.definiteFunctionType(core.String, []),
-      gridTemplateRows: dart.definiteFunctionType(core.String, []),
-      height: dart.definiteFunctionType(core.String, []),
-      highlight: dart.definiteFunctionType(core.String, []),
-      hyphenateCharacter: dart.definiteFunctionType(core.String, []),
-      imageRendering: dart.definiteFunctionType(core.String, []),
-      isolation: dart.definiteFunctionType(core.String, []),
-      justifyContent: dart.definiteFunctionType(core.String, []),
-      justifySelf: dart.definiteFunctionType(core.String, []),
-      left: dart.definiteFunctionType(core.String, []),
-      letterSpacing: dart.definiteFunctionType(core.String, []),
-      lineBoxContain: dart.definiteFunctionType(core.String, []),
-      lineBreak: dart.definiteFunctionType(core.String, []),
-      lineClamp: dart.definiteFunctionType(core.String, []),
-      lineHeight: dart.definiteFunctionType(core.String, []),
-      listStyle: dart.definiteFunctionType(core.String, []),
-      listStyleImage: dart.definiteFunctionType(core.String, []),
-      listStylePosition: dart.definiteFunctionType(core.String, []),
-      listStyleType: dart.definiteFunctionType(core.String, []),
-      locale: dart.definiteFunctionType(core.String, []),
-      logicalHeight: dart.definiteFunctionType(core.String, []),
-      logicalWidth: dart.definiteFunctionType(core.String, []),
-      margin: dart.definiteFunctionType(core.String, []),
-      marginAfter: dart.definiteFunctionType(core.String, []),
-      marginAfterCollapse: dart.definiteFunctionType(core.String, []),
-      marginBefore: dart.definiteFunctionType(core.String, []),
-      marginBeforeCollapse: dart.definiteFunctionType(core.String, []),
-      marginBottom: dart.definiteFunctionType(core.String, []),
-      marginBottomCollapse: dart.definiteFunctionType(core.String, []),
-      marginCollapse: dart.definiteFunctionType(core.String, []),
-      marginEnd: dart.definiteFunctionType(core.String, []),
-      marginLeft: dart.definiteFunctionType(core.String, []),
-      marginRight: dart.definiteFunctionType(core.String, []),
-      marginStart: dart.definiteFunctionType(core.String, []),
-      marginTop: dart.definiteFunctionType(core.String, []),
-      marginTopCollapse: dart.definiteFunctionType(core.String, []),
-      mask: dart.definiteFunctionType(core.String, []),
-      maskBoxImage: dart.definiteFunctionType(core.String, []),
-      maskBoxImageOutset: dart.definiteFunctionType(core.String, []),
-      maskBoxImageRepeat: dart.definiteFunctionType(core.String, []),
-      maskBoxImageSlice: dart.definiteFunctionType(core.String, []),
-      maskBoxImageSource: dart.definiteFunctionType(core.String, []),
-      maskBoxImageWidth: dart.definiteFunctionType(core.String, []),
-      maskClip: dart.definiteFunctionType(core.String, []),
-      maskComposite: dart.definiteFunctionType(core.String, []),
-      maskImage: dart.definiteFunctionType(core.String, []),
-      maskOrigin: dart.definiteFunctionType(core.String, []),
-      maskPosition: dart.definiteFunctionType(core.String, []),
-      maskPositionX: dart.definiteFunctionType(core.String, []),
-      maskPositionY: dart.definiteFunctionType(core.String, []),
-      maskRepeat: dart.definiteFunctionType(core.String, []),
-      maskRepeatX: dart.definiteFunctionType(core.String, []),
-      maskRepeatY: dart.definiteFunctionType(core.String, []),
-      maskSize: dart.definiteFunctionType(core.String, []),
-      maskSourceType: dart.definiteFunctionType(core.String, []),
-      maxHeight: dart.definiteFunctionType(core.String, []),
-      maxLogicalHeight: dart.definiteFunctionType(core.String, []),
-      maxLogicalWidth: dart.definiteFunctionType(core.String, []),
-      maxWidth: dart.definiteFunctionType(core.String, []),
-      maxZoom: dart.definiteFunctionType(core.String, []),
-      minHeight: dart.definiteFunctionType(core.String, []),
-      minLogicalHeight: dart.definiteFunctionType(core.String, []),
-      minLogicalWidth: dart.definiteFunctionType(core.String, []),
-      minWidth: dart.definiteFunctionType(core.String, []),
-      minZoom: dart.definiteFunctionType(core.String, []),
-      mixBlendMode: dart.definiteFunctionType(core.String, []),
-      objectFit: dart.definiteFunctionType(core.String, []),
-      objectPosition: dart.definiteFunctionType(core.String, []),
-      opacity: dart.definiteFunctionType(core.String, []),
-      order: dart.definiteFunctionType(core.String, []),
-      orientation: dart.definiteFunctionType(core.String, []),
-      orphans: dart.definiteFunctionType(core.String, []),
-      outline: dart.definiteFunctionType(core.String, []),
-      outlineColor: dart.definiteFunctionType(core.String, []),
-      outlineOffset: dart.definiteFunctionType(core.String, []),
-      outlineStyle: dart.definiteFunctionType(core.String, []),
-      outlineWidth: dart.definiteFunctionType(core.String, []),
-      overflow: dart.definiteFunctionType(core.String, []),
-      overflowWrap: dart.definiteFunctionType(core.String, []),
-      overflowX: dart.definiteFunctionType(core.String, []),
-      overflowY: dart.definiteFunctionType(core.String, []),
-      padding: dart.definiteFunctionType(core.String, []),
-      paddingAfter: dart.definiteFunctionType(core.String, []),
-      paddingBefore: dart.definiteFunctionType(core.String, []),
-      paddingBottom: dart.definiteFunctionType(core.String, []),
-      paddingEnd: dart.definiteFunctionType(core.String, []),
-      paddingLeft: dart.definiteFunctionType(core.String, []),
-      paddingRight: dart.definiteFunctionType(core.String, []),
-      paddingStart: dart.definiteFunctionType(core.String, []),
-      paddingTop: dart.definiteFunctionType(core.String, []),
-      page: dart.definiteFunctionType(core.String, []),
-      pageBreakAfter: dart.definiteFunctionType(core.String, []),
-      pageBreakBefore: dart.definiteFunctionType(core.String, []),
-      pageBreakInside: dart.definiteFunctionType(core.String, []),
-      perspective: dart.definiteFunctionType(core.String, []),
-      perspectiveOrigin: dart.definiteFunctionType(core.String, []),
-      perspectiveOriginX: dart.definiteFunctionType(core.String, []),
-      perspectiveOriginY: dart.definiteFunctionType(core.String, []),
-      pointerEvents: dart.definiteFunctionType(core.String, []),
-      position: dart.definiteFunctionType(core.String, []),
-      printColorAdjust: dart.definiteFunctionType(core.String, []),
-      quotes: dart.definiteFunctionType(core.String, []),
-      resize: dart.definiteFunctionType(core.String, []),
-      right: dart.definiteFunctionType(core.String, []),
-      rtlOrdering: dart.definiteFunctionType(core.String, []),
-      rubyPosition: dart.definiteFunctionType(core.String, []),
-      scrollBehavior: dart.definiteFunctionType(core.String, []),
-      shapeImageThreshold: dart.definiteFunctionType(core.String, []),
-      shapeMargin: dart.definiteFunctionType(core.String, []),
-      shapeOutside: dart.definiteFunctionType(core.String, []),
-      size: dart.definiteFunctionType(core.String, []),
-      speak: dart.definiteFunctionType(core.String, []),
-      src: dart.definiteFunctionType(core.String, []),
-      tabSize: dart.definiteFunctionType(core.String, []),
-      tableLayout: dart.definiteFunctionType(core.String, []),
-      tapHighlightColor: dart.definiteFunctionType(core.String, []),
-      textAlign: dart.definiteFunctionType(core.String, []),
-      textAlignLast: dart.definiteFunctionType(core.String, []),
-      textCombine: dart.definiteFunctionType(core.String, []),
-      textDecoration: dart.definiteFunctionType(core.String, []),
-      textDecorationColor: dart.definiteFunctionType(core.String, []),
-      textDecorationLine: dart.definiteFunctionType(core.String, []),
-      textDecorationStyle: dart.definiteFunctionType(core.String, []),
-      textDecorationsInEffect: dart.definiteFunctionType(core.String, []),
-      textEmphasis: dart.definiteFunctionType(core.String, []),
-      textEmphasisColor: dart.definiteFunctionType(core.String, []),
-      textEmphasisPosition: dart.definiteFunctionType(core.String, []),
-      textEmphasisStyle: dart.definiteFunctionType(core.String, []),
-      textFillColor: dart.definiteFunctionType(core.String, []),
-      textIndent: dart.definiteFunctionType(core.String, []),
-      textJustify: dart.definiteFunctionType(core.String, []),
-      textLineThroughColor: dart.definiteFunctionType(core.String, []),
-      textLineThroughMode: dart.definiteFunctionType(core.String, []),
-      textLineThroughStyle: dart.definiteFunctionType(core.String, []),
-      textLineThroughWidth: dart.definiteFunctionType(core.String, []),
-      textOrientation: dart.definiteFunctionType(core.String, []),
-      textOverflow: dart.definiteFunctionType(core.String, []),
-      textOverlineColor: dart.definiteFunctionType(core.String, []),
-      textOverlineMode: dart.definiteFunctionType(core.String, []),
-      textOverlineStyle: dart.definiteFunctionType(core.String, []),
-      textOverlineWidth: dart.definiteFunctionType(core.String, []),
-      textRendering: dart.definiteFunctionType(core.String, []),
-      textSecurity: dart.definiteFunctionType(core.String, []),
-      textShadow: dart.definiteFunctionType(core.String, []),
-      textStroke: dart.definiteFunctionType(core.String, []),
-      textStrokeColor: dart.definiteFunctionType(core.String, []),
-      textStrokeWidth: dart.definiteFunctionType(core.String, []),
-      textTransform: dart.definiteFunctionType(core.String, []),
-      textUnderlineColor: dart.definiteFunctionType(core.String, []),
-      textUnderlineMode: dart.definiteFunctionType(core.String, []),
-      textUnderlinePosition: dart.definiteFunctionType(core.String, []),
-      textUnderlineStyle: dart.definiteFunctionType(core.String, []),
-      textUnderlineWidth: dart.definiteFunctionType(core.String, []),
-      top: dart.definiteFunctionType(core.String, []),
-      touchAction: dart.definiteFunctionType(core.String, []),
-      touchActionDelay: dart.definiteFunctionType(core.String, []),
-      transform: dart.definiteFunctionType(core.String, []),
-      transformOrigin: dart.definiteFunctionType(core.String, []),
-      transformOriginX: dart.definiteFunctionType(core.String, []),
-      transformOriginY: dart.definiteFunctionType(core.String, []),
-      transformOriginZ: dart.definiteFunctionType(core.String, []),
-      transformStyle: dart.definiteFunctionType(core.String, []),
-      transition: dart.definiteFunctionType(core.String, []),
-      transitionDelay: dart.definiteFunctionType(core.String, []),
-      transitionDuration: dart.definiteFunctionType(core.String, []),
-      transitionProperty: dart.definiteFunctionType(core.String, []),
-      transitionTimingFunction: dart.definiteFunctionType(core.String, []),
-      unicodeBidi: dart.definiteFunctionType(core.String, []),
-      unicodeRange: dart.definiteFunctionType(core.String, []),
-      userDrag: dart.definiteFunctionType(core.String, []),
-      userModify: dart.definiteFunctionType(core.String, []),
-      userSelect: dart.definiteFunctionType(core.String, []),
-      userZoom: dart.definiteFunctionType(core.String, []),
-      verticalAlign: dart.definiteFunctionType(core.String, []),
-      visibility: dart.definiteFunctionType(core.String, []),
-      whiteSpace: dart.definiteFunctionType(core.String, []),
-      widows: dart.definiteFunctionType(core.String, []),
-      width: dart.definiteFunctionType(core.String, []),
-      willChange: dart.definiteFunctionType(core.String, []),
-      wordBreak: dart.definiteFunctionType(core.String, []),
-      wordSpacing: dart.definiteFunctionType(core.String, []),
-      wordWrap: dart.definiteFunctionType(core.String, []),
-      wrapFlow: dart.definiteFunctionType(core.String, []),
-      wrapThrough: dart.definiteFunctionType(core.String, []),
-      writingMode: dart.definiteFunctionType(core.String, []),
-      zIndex: dart.definiteFunctionType(core.String, []),
-      zoom: dart.definiteFunctionType(core.String, [])
-    }),
-    setters: () => ({
-      alignContent: dart.definiteFunctionType(dart.void, [core.String]),
-      alignItems: dart.definiteFunctionType(dart.void, [core.String]),
-      alignSelf: dart.definiteFunctionType(dart.void, [core.String]),
-      animation: dart.definiteFunctionType(dart.void, [core.String]),
-      animationDelay: dart.definiteFunctionType(dart.void, [core.String]),
-      animationDirection: dart.definiteFunctionType(dart.void, [core.String]),
-      animationDuration: dart.definiteFunctionType(dart.void, [core.String]),
-      animationFillMode: dart.definiteFunctionType(dart.void, [core.String]),
-      animationIterationCount: dart.definiteFunctionType(dart.void, [core.String]),
-      animationName: dart.definiteFunctionType(dart.void, [core.String]),
-      animationPlayState: dart.definiteFunctionType(dart.void, [core.String]),
-      animationTimingFunction: dart.definiteFunctionType(dart.void, [core.String]),
-      appRegion: dart.definiteFunctionType(dart.void, [core.String]),
-      appearance: dart.definiteFunctionType(dart.void, [core.String]),
-      aspectRatio: dart.definiteFunctionType(dart.void, [core.String]),
-      backfaceVisibility: dart.definiteFunctionType(dart.void, [core.String]),
-      background: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundAttachment: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundBlendMode: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundClip: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundColor: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundComposite: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundImage: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundOrigin: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundPosition: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundPositionX: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundPositionY: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundRepeat: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundRepeatX: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundRepeatY: dart.definiteFunctionType(dart.void, [core.String]),
-      backgroundSize: dart.definiteFunctionType(dart.void, [core.String]),
-      border: dart.definiteFunctionType(dart.void, [core.String]),
-      borderAfter: dart.definiteFunctionType(dart.void, [core.String]),
-      borderAfterColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderAfterStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderAfterWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBefore: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBeforeColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBeforeStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBeforeWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBottom: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBottomColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBottomLeftRadius: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBottomRightRadius: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBottomStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderBottomWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderCollapse: dart.definiteFunctionType(dart.void, [core.String]),
-      borderColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      borderEndColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderEndStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderEndWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderFit: dart.definiteFunctionType(dart.void, [core.String]),
-      borderHorizontalSpacing: dart.definiteFunctionType(dart.void, [core.String]),
-      borderImage: dart.definiteFunctionType(dart.void, [core.String]),
-      borderImageOutset: dart.definiteFunctionType(dart.void, [core.String]),
-      borderImageRepeat: dart.definiteFunctionType(dart.void, [core.String]),
-      borderImageSlice: dart.definiteFunctionType(dart.void, [core.String]),
-      borderImageSource: dart.definiteFunctionType(dart.void, [core.String]),
-      borderImageWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderLeft: dart.definiteFunctionType(dart.void, [core.String]),
-      borderLeftColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderLeftStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderLeftWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderRadius: dart.definiteFunctionType(dart.void, [core.String]),
-      borderRight: dart.definiteFunctionType(dart.void, [core.String]),
-      borderRightColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderRightStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderRightWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderSpacing: dart.definiteFunctionType(dart.void, [core.String]),
-      borderStart: dart.definiteFunctionType(dart.void, [core.String]),
-      borderStartColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderStartStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderStartWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderTop: dart.definiteFunctionType(dart.void, [core.String]),
-      borderTopColor: dart.definiteFunctionType(dart.void, [core.String]),
-      borderTopLeftRadius: dart.definiteFunctionType(dart.void, [core.String]),
-      borderTopRightRadius: dart.definiteFunctionType(dart.void, [core.String]),
-      borderTopStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      borderTopWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      borderVerticalSpacing: dart.definiteFunctionType(dart.void, [core.String]),
-      borderWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      bottom: dart.definiteFunctionType(dart.void, [core.String]),
-      boxAlign: dart.definiteFunctionType(dart.void, [core.String]),
-      boxDecorationBreak: dart.definiteFunctionType(dart.void, [core.String]),
-      boxDirection: dart.definiteFunctionType(dart.void, [core.String]),
-      boxFlex: dart.definiteFunctionType(dart.void, [core.String]),
-      boxFlexGroup: dart.definiteFunctionType(dart.void, [core.String]),
-      boxLines: dart.definiteFunctionType(dart.void, [core.String]),
-      boxOrdinalGroup: dart.definiteFunctionType(dart.void, [core.String]),
-      boxOrient: dart.definiteFunctionType(dart.void, [core.String]),
-      boxPack: dart.definiteFunctionType(dart.void, [core.String]),
-      boxReflect: dart.definiteFunctionType(dart.void, [core.String]),
-      boxShadow: dart.definiteFunctionType(dart.void, [core.String]),
-      boxSizing: dart.definiteFunctionType(dart.void, [core.String]),
-      captionSide: dart.definiteFunctionType(dart.void, [core.String]),
-      clear: dart.definiteFunctionType(dart.void, [core.String]),
-      clip: dart.definiteFunctionType(dart.void, [core.String]),
-      clipPath: dart.definiteFunctionType(dart.void, [core.String]),
-      color: dart.definiteFunctionType(dart.void, [core.String]),
-      columnBreakAfter: dart.definiteFunctionType(dart.void, [core.String]),
-      columnBreakBefore: dart.definiteFunctionType(dart.void, [core.String]),
-      columnBreakInside: dart.definiteFunctionType(dart.void, [core.String]),
-      columnCount: dart.definiteFunctionType(dart.void, [core.String]),
-      columnFill: dart.definiteFunctionType(dart.void, [core.String]),
-      columnGap: dart.definiteFunctionType(dart.void, [core.String]),
-      columnRule: dart.definiteFunctionType(dart.void, [core.String]),
-      columnRuleColor: dart.definiteFunctionType(dart.void, [core.String]),
-      columnRuleStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      columnRuleWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      columnSpan: dart.definiteFunctionType(dart.void, [core.String]),
-      columnWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      columns: dart.definiteFunctionType(dart.void, [core.String]),
-      content: dart.definiteFunctionType(dart.void, [core.String]),
-      counterIncrement: dart.definiteFunctionType(dart.void, [core.String]),
-      counterReset: dart.definiteFunctionType(dart.void, [core.String]),
-      cursor: dart.definiteFunctionType(dart.void, [core.String]),
-      direction: dart.definiteFunctionType(dart.void, [core.String]),
-      display: dart.definiteFunctionType(dart.void, [core.String]),
-      emptyCells: dart.definiteFunctionType(dart.void, [core.String]),
-      filter: dart.definiteFunctionType(dart.void, [core.String]),
-      flex: dart.definiteFunctionType(dart.void, [core.String]),
-      flexBasis: dart.definiteFunctionType(dart.void, [core.String]),
-      flexDirection: dart.definiteFunctionType(dart.void, [core.String]),
-      flexFlow: dart.definiteFunctionType(dart.void, [core.String]),
-      flexGrow: dart.definiteFunctionType(dart.void, [core.String]),
-      flexShrink: dart.definiteFunctionType(dart.void, [core.String]),
-      flexWrap: dart.definiteFunctionType(dart.void, [core.String]),
-      float: dart.definiteFunctionType(dart.void, [core.String]),
-      font: dart.definiteFunctionType(dart.void, [core.String]),
-      fontFamily: dart.definiteFunctionType(dart.void, [core.String]),
-      fontFeatureSettings: dart.definiteFunctionType(dart.void, [core.String]),
-      fontKerning: dart.definiteFunctionType(dart.void, [core.String]),
-      fontSize: dart.definiteFunctionType(dart.void, [core.String]),
-      fontSizeDelta: dart.definiteFunctionType(dart.void, [core.String]),
-      fontSmoothing: dart.definiteFunctionType(dart.void, [core.String]),
-      fontStretch: dart.definiteFunctionType(dart.void, [core.String]),
-      fontStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      fontVariant: dart.definiteFunctionType(dart.void, [core.String]),
-      fontVariantLigatures: dart.definiteFunctionType(dart.void, [core.String]),
-      fontWeight: dart.definiteFunctionType(dart.void, [core.String]),
-      grid: dart.definiteFunctionType(dart.void, [core.String]),
-      gridArea: dart.definiteFunctionType(dart.void, [core.String]),
-      gridAutoColumns: dart.definiteFunctionType(dart.void, [core.String]),
-      gridAutoFlow: dart.definiteFunctionType(dart.void, [core.String]),
-      gridAutoRows: dart.definiteFunctionType(dart.void, [core.String]),
-      gridColumn: dart.definiteFunctionType(dart.void, [core.String]),
-      gridColumnEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      gridColumnStart: dart.definiteFunctionType(dart.void, [core.String]),
-      gridRow: dart.definiteFunctionType(dart.void, [core.String]),
-      gridRowEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      gridRowStart: dart.definiteFunctionType(dart.void, [core.String]),
-      gridTemplate: dart.definiteFunctionType(dart.void, [core.String]),
-      gridTemplateAreas: dart.definiteFunctionType(dart.void, [core.String]),
-      gridTemplateColumns: dart.definiteFunctionType(dart.void, [core.String]),
-      gridTemplateRows: dart.definiteFunctionType(dart.void, [core.String]),
-      height: dart.definiteFunctionType(dart.void, [core.String]),
-      highlight: dart.definiteFunctionType(dart.void, [core.String]),
-      hyphenateCharacter: dart.definiteFunctionType(dart.void, [core.String]),
-      imageRendering: dart.definiteFunctionType(dart.void, [core.String]),
-      isolation: dart.definiteFunctionType(dart.void, [core.String]),
-      justifyContent: dart.definiteFunctionType(dart.void, [core.String]),
-      justifySelf: dart.definiteFunctionType(dart.void, [core.String]),
-      left: dart.definiteFunctionType(dart.void, [core.String]),
-      letterSpacing: dart.definiteFunctionType(dart.void, [core.String]),
-      lineBoxContain: dart.definiteFunctionType(dart.void, [core.String]),
-      lineBreak: dart.definiteFunctionType(dart.void, [core.String]),
-      lineClamp: dart.definiteFunctionType(dart.void, [core.String]),
-      lineHeight: dart.definiteFunctionType(dart.void, [core.String]),
-      listStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      listStyleImage: dart.definiteFunctionType(dart.void, [core.String]),
-      listStylePosition: dart.definiteFunctionType(dart.void, [core.String]),
-      listStyleType: dart.definiteFunctionType(dart.void, [core.String]),
-      locale: dart.definiteFunctionType(dart.void, [core.String]),
-      logicalHeight: dart.definiteFunctionType(dart.void, [core.String]),
-      logicalWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      margin: dart.definiteFunctionType(dart.void, [core.String]),
-      marginAfter: dart.definiteFunctionType(dart.void, [core.String]),
-      marginAfterCollapse: dart.definiteFunctionType(dart.void, [core.String]),
-      marginBefore: dart.definiteFunctionType(dart.void, [core.String]),
-      marginBeforeCollapse: dart.definiteFunctionType(dart.void, [core.String]),
-      marginBottom: dart.definiteFunctionType(dart.void, [core.String]),
-      marginBottomCollapse: dart.definiteFunctionType(dart.void, [core.String]),
-      marginCollapse: dart.definiteFunctionType(dart.void, [core.String]),
-      marginEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      marginLeft: dart.definiteFunctionType(dart.void, [core.String]),
-      marginRight: dart.definiteFunctionType(dart.void, [core.String]),
-      marginStart: dart.definiteFunctionType(dart.void, [core.String]),
-      marginTop: dart.definiteFunctionType(dart.void, [core.String]),
-      marginTopCollapse: dart.definiteFunctionType(dart.void, [core.String]),
-      mask: dart.definiteFunctionType(dart.void, [core.String]),
-      maskBoxImage: dart.definiteFunctionType(dart.void, [core.String]),
-      maskBoxImageOutset: dart.definiteFunctionType(dart.void, [core.String]),
-      maskBoxImageRepeat: dart.definiteFunctionType(dart.void, [core.String]),
-      maskBoxImageSlice: dart.definiteFunctionType(dart.void, [core.String]),
-      maskBoxImageSource: dart.definiteFunctionType(dart.void, [core.String]),
-      maskBoxImageWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      maskClip: dart.definiteFunctionType(dart.void, [core.String]),
-      maskComposite: dart.definiteFunctionType(dart.void, [core.String]),
-      maskImage: dart.definiteFunctionType(dart.void, [core.String]),
-      maskOrigin: dart.definiteFunctionType(dart.void, [core.String]),
-      maskPosition: dart.definiteFunctionType(dart.void, [core.String]),
-      maskPositionX: dart.definiteFunctionType(dart.void, [core.String]),
-      maskPositionY: dart.definiteFunctionType(dart.void, [core.String]),
-      maskRepeat: dart.definiteFunctionType(dart.void, [core.String]),
-      maskRepeatX: dart.definiteFunctionType(dart.void, [core.String]),
-      maskRepeatY: dart.definiteFunctionType(dart.void, [core.String]),
-      maskSize: dart.definiteFunctionType(dart.void, [core.String]),
-      maskSourceType: dart.definiteFunctionType(dart.void, [core.String]),
-      maxHeight: dart.definiteFunctionType(dart.void, [core.String]),
-      maxLogicalHeight: dart.definiteFunctionType(dart.void, [core.String]),
-      maxLogicalWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      maxWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      maxZoom: dart.definiteFunctionType(dart.void, [core.String]),
-      minHeight: dart.definiteFunctionType(dart.void, [core.String]),
-      minLogicalHeight: dart.definiteFunctionType(dart.void, [core.String]),
-      minLogicalWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      minWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      minZoom: dart.definiteFunctionType(dart.void, [core.String]),
-      mixBlendMode: dart.definiteFunctionType(dart.void, [core.String]),
-      objectFit: dart.definiteFunctionType(dart.void, [core.String]),
-      objectPosition: dart.definiteFunctionType(dart.void, [core.String]),
-      opacity: dart.definiteFunctionType(dart.void, [core.String]),
-      order: dart.definiteFunctionType(dart.void, [core.String]),
-      orientation: dart.definiteFunctionType(dart.void, [core.String]),
-      orphans: dart.definiteFunctionType(dart.void, [core.String]),
-      outline: dart.definiteFunctionType(dart.void, [core.String]),
-      outlineColor: dart.definiteFunctionType(dart.void, [core.String]),
-      outlineOffset: dart.definiteFunctionType(dart.void, [core.String]),
-      outlineStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      outlineWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      overflow: dart.definiteFunctionType(dart.void, [core.String]),
-      overflowWrap: dart.definiteFunctionType(dart.void, [core.String]),
-      overflowX: dart.definiteFunctionType(dart.void, [core.String]),
-      overflowY: dart.definiteFunctionType(dart.void, [core.String]),
-      padding: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingAfter: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingBefore: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingBottom: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingEnd: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingLeft: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingRight: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingStart: dart.definiteFunctionType(dart.void, [core.String]),
-      paddingTop: dart.definiteFunctionType(dart.void, [core.String]),
-      page: dart.definiteFunctionType(dart.void, [core.String]),
-      pageBreakAfter: dart.definiteFunctionType(dart.void, [core.String]),
-      pageBreakBefore: dart.definiteFunctionType(dart.void, [core.String]),
-      pageBreakInside: dart.definiteFunctionType(dart.void, [core.String]),
-      perspective: dart.definiteFunctionType(dart.void, [core.String]),
-      perspectiveOrigin: dart.definiteFunctionType(dart.void, [core.String]),
-      perspectiveOriginX: dart.definiteFunctionType(dart.void, [core.String]),
-      perspectiveOriginY: dart.definiteFunctionType(dart.void, [core.String]),
-      pointerEvents: dart.definiteFunctionType(dart.void, [core.String]),
-      position: dart.definiteFunctionType(dart.void, [core.String]),
-      printColorAdjust: dart.definiteFunctionType(dart.void, [core.String]),
-      quotes: dart.definiteFunctionType(dart.void, [core.String]),
-      resize: dart.definiteFunctionType(dart.void, [core.String]),
-      right: dart.definiteFunctionType(dart.void, [core.String]),
-      rtlOrdering: dart.definiteFunctionType(dart.void, [core.String]),
-      rubyPosition: dart.definiteFunctionType(dart.void, [core.String]),
-      scrollBehavior: dart.definiteFunctionType(dart.void, [core.String]),
-      shapeImageThreshold: dart.definiteFunctionType(dart.void, [core.String]),
-      shapeMargin: dart.definiteFunctionType(dart.void, [core.String]),
-      shapeOutside: dart.definiteFunctionType(dart.void, [core.String]),
-      size: dart.definiteFunctionType(dart.void, [core.String]),
-      speak: dart.definiteFunctionType(dart.void, [core.String]),
-      src: dart.definiteFunctionType(dart.void, [core.String]),
-      tabSize: dart.definiteFunctionType(dart.void, [core.String]),
-      tableLayout: dart.definiteFunctionType(dart.void, [core.String]),
-      tapHighlightColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textAlign: dart.definiteFunctionType(dart.void, [core.String]),
-      textAlignLast: dart.definiteFunctionType(dart.void, [core.String]),
-      textCombine: dart.definiteFunctionType(dart.void, [core.String]),
-      textDecoration: dart.definiteFunctionType(dart.void, [core.String]),
-      textDecorationColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textDecorationLine: dart.definiteFunctionType(dart.void, [core.String]),
-      textDecorationStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      textDecorationsInEffect: dart.definiteFunctionType(dart.void, [core.String]),
-      textEmphasis: dart.definiteFunctionType(dart.void, [core.String]),
-      textEmphasisColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textEmphasisPosition: dart.definiteFunctionType(dart.void, [core.String]),
-      textEmphasisStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      textFillColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textIndent: dart.definiteFunctionType(dart.void, [core.String]),
-      textJustify: dart.definiteFunctionType(dart.void, [core.String]),
-      textLineThroughColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textLineThroughMode: dart.definiteFunctionType(dart.void, [core.String]),
-      textLineThroughStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      textLineThroughWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      textOrientation: dart.definiteFunctionType(dart.void, [core.String]),
-      textOverflow: dart.definiteFunctionType(dart.void, [core.String]),
-      textOverlineColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textOverlineMode: dart.definiteFunctionType(dart.void, [core.String]),
-      textOverlineStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      textOverlineWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      textRendering: dart.definiteFunctionType(dart.void, [core.String]),
-      textSecurity: dart.definiteFunctionType(dart.void, [core.String]),
-      textShadow: dart.definiteFunctionType(dart.void, [core.String]),
-      textStroke: dart.definiteFunctionType(dart.void, [core.String]),
-      textStrokeColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textStrokeWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      textTransform: dart.definiteFunctionType(dart.void, [core.String]),
-      textUnderlineColor: dart.definiteFunctionType(dart.void, [core.String]),
-      textUnderlineMode: dart.definiteFunctionType(dart.void, [core.String]),
-      textUnderlinePosition: dart.definiteFunctionType(dart.void, [core.String]),
-      textUnderlineStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      textUnderlineWidth: dart.definiteFunctionType(dart.void, [core.String]),
-      top: dart.definiteFunctionType(dart.void, [core.String]),
-      touchAction: dart.definiteFunctionType(dart.void, [core.String]),
-      touchActionDelay: dart.definiteFunctionType(dart.void, [core.String]),
-      transform: dart.definiteFunctionType(dart.void, [core.String]),
-      transformOrigin: dart.definiteFunctionType(dart.void, [core.String]),
-      transformOriginX: dart.definiteFunctionType(dart.void, [core.String]),
-      transformOriginY: dart.definiteFunctionType(dart.void, [core.String]),
-      transformOriginZ: dart.definiteFunctionType(dart.void, [core.String]),
-      transformStyle: dart.definiteFunctionType(dart.void, [core.String]),
-      transition: dart.definiteFunctionType(dart.void, [core.String]),
-      transitionDelay: dart.definiteFunctionType(dart.void, [core.String]),
-      transitionDuration: dart.definiteFunctionType(dart.void, [core.String]),
-      transitionProperty: dart.definiteFunctionType(dart.void, [core.String]),
-      transitionTimingFunction: dart.definiteFunctionType(dart.void, [core.String]),
-      unicodeBidi: dart.definiteFunctionType(dart.void, [core.String]),
-      unicodeRange: dart.definiteFunctionType(dart.void, [core.String]),
-      userDrag: dart.definiteFunctionType(dart.void, [core.String]),
-      userModify: dart.definiteFunctionType(dart.void, [core.String]),
-      userSelect: dart.definiteFunctionType(dart.void, [core.String]),
-      userZoom: dart.definiteFunctionType(dart.void, [core.String]),
-      verticalAlign: dart.definiteFunctionType(dart.void, [core.String]),
-      visibility: dart.definiteFunctionType(dart.void, [core.String]),
-      whiteSpace: dart.definiteFunctionType(dart.void, [core.String]),
-      widows: dart.definiteFunctionType(dart.void, [core.String]),
-      width: dart.definiteFunctionType(dart.void, [core.String]),
-      willChange: dart.definiteFunctionType(dart.void, [core.String]),
-      wordBreak: dart.definiteFunctionType(dart.void, [core.String]),
-      wordSpacing: dart.definiteFunctionType(dart.void, [core.String]),
-      wordWrap: dart.definiteFunctionType(dart.void, [core.String]),
-      wrapFlow: dart.definiteFunctionType(dart.void, [core.String]),
-      wrapThrough: dart.definiteFunctionType(dart.void, [core.String]),
-      writingMode: dart.definiteFunctionType(dart.void, [core.String]),
-      zIndex: dart.definiteFunctionType(dart.void, [core.String]),
-      zoom: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  dart.defineExtensionMembers(html$.CssStyleDeclarationBase, [
-    'alignContent',
-    'alignContent',
-    'alignItems',
-    'alignItems',
-    'alignSelf',
-    'alignSelf',
-    'animation',
-    'animation',
-    'animationDelay',
-    'animationDelay',
-    'animationDirection',
-    'animationDirection',
-    'animationDuration',
-    'animationDuration',
-    'animationFillMode',
-    'animationFillMode',
-    'animationIterationCount',
-    'animationIterationCount',
-    'animationName',
-    'animationName',
-    'animationPlayState',
-    'animationPlayState',
-    'animationTimingFunction',
-    'animationTimingFunction',
-    'appRegion',
-    'appRegion',
-    'appearance',
-    'appearance',
-    'aspectRatio',
-    'aspectRatio',
-    'backfaceVisibility',
-    'backfaceVisibility',
-    'background',
-    'background',
-    'backgroundAttachment',
-    'backgroundAttachment',
-    'backgroundBlendMode',
-    'backgroundBlendMode',
-    'backgroundClip',
-    'backgroundClip',
-    'backgroundColor',
-    'backgroundColor',
-    'backgroundComposite',
-    'backgroundComposite',
-    'backgroundImage',
-    'backgroundImage',
-    'backgroundOrigin',
-    'backgroundOrigin',
-    'backgroundPosition',
-    'backgroundPosition',
-    'backgroundPositionX',
-    'backgroundPositionX',
-    'backgroundPositionY',
-    'backgroundPositionY',
-    'backgroundRepeat',
-    'backgroundRepeat',
-    'backgroundRepeatX',
-    'backgroundRepeatX',
-    'backgroundRepeatY',
-    'backgroundRepeatY',
-    'backgroundSize',
-    'backgroundSize',
-    'border',
-    'border',
-    'borderAfter',
-    'borderAfter',
-    'borderAfterColor',
-    'borderAfterColor',
-    'borderAfterStyle',
-    'borderAfterStyle',
-    'borderAfterWidth',
-    'borderAfterWidth',
-    'borderBefore',
-    'borderBefore',
-    'borderBeforeColor',
-    'borderBeforeColor',
-    'borderBeforeStyle',
-    'borderBeforeStyle',
-    'borderBeforeWidth',
-    'borderBeforeWidth',
-    'borderBottom',
-    'borderBottom',
-    'borderBottomColor',
-    'borderBottomColor',
-    'borderBottomLeftRadius',
-    'borderBottomLeftRadius',
-    'borderBottomRightRadius',
-    'borderBottomRightRadius',
-    'borderBottomStyle',
-    'borderBottomStyle',
-    'borderBottomWidth',
-    'borderBottomWidth',
-    'borderCollapse',
-    'borderCollapse',
-    'borderColor',
-    'borderColor',
-    'borderEnd',
-    'borderEnd',
-    'borderEndColor',
-    'borderEndColor',
-    'borderEndStyle',
-    'borderEndStyle',
-    'borderEndWidth',
-    'borderEndWidth',
-    'borderFit',
-    'borderFit',
-    'borderHorizontalSpacing',
-    'borderHorizontalSpacing',
-    'borderImage',
-    'borderImage',
-    'borderImageOutset',
-    'borderImageOutset',
-    'borderImageRepeat',
-    'borderImageRepeat',
-    'borderImageSlice',
-    'borderImageSlice',
-    'borderImageSource',
-    'borderImageSource',
-    'borderImageWidth',
-    'borderImageWidth',
-    'borderLeft',
-    'borderLeft',
-    'borderLeftColor',
-    'borderLeftColor',
-    'borderLeftStyle',
-    'borderLeftStyle',
-    'borderLeftWidth',
-    'borderLeftWidth',
-    'borderRadius',
-    'borderRadius',
-    'borderRight',
-    'borderRight',
-    'borderRightColor',
-    'borderRightColor',
-    'borderRightStyle',
-    'borderRightStyle',
-    'borderRightWidth',
-    'borderRightWidth',
-    'borderSpacing',
-    'borderSpacing',
-    'borderStart',
-    'borderStart',
-    'borderStartColor',
-    'borderStartColor',
-    'borderStartStyle',
-    'borderStartStyle',
-    'borderStartWidth',
-    'borderStartWidth',
-    'borderStyle',
-    'borderStyle',
-    'borderTop',
-    'borderTop',
-    'borderTopColor',
-    'borderTopColor',
-    'borderTopLeftRadius',
-    'borderTopLeftRadius',
-    'borderTopRightRadius',
-    'borderTopRightRadius',
-    'borderTopStyle',
-    'borderTopStyle',
-    'borderTopWidth',
-    'borderTopWidth',
-    'borderVerticalSpacing',
-    'borderVerticalSpacing',
-    'borderWidth',
-    'borderWidth',
-    'bottom',
-    'bottom',
-    'boxAlign',
-    'boxAlign',
-    'boxDecorationBreak',
-    'boxDecorationBreak',
-    'boxDirection',
-    'boxDirection',
-    'boxFlex',
-    'boxFlex',
-    'boxFlexGroup',
-    'boxFlexGroup',
-    'boxLines',
-    'boxLines',
-    'boxOrdinalGroup',
-    'boxOrdinalGroup',
-    'boxOrient',
-    'boxOrient',
-    'boxPack',
-    'boxPack',
-    'boxReflect',
-    'boxReflect',
-    'boxShadow',
-    'boxShadow',
-    'boxSizing',
-    'boxSizing',
-    'captionSide',
-    'captionSide',
-    'clear',
-    'clear',
-    'clip',
-    'clip',
-    'clipPath',
-    'clipPath',
-    'color',
-    'color',
-    'columnBreakAfter',
-    'columnBreakAfter',
-    'columnBreakBefore',
-    'columnBreakBefore',
-    'columnBreakInside',
-    'columnBreakInside',
-    'columnCount',
-    'columnCount',
-    'columnFill',
-    'columnFill',
-    'columnGap',
-    'columnGap',
-    'columnRule',
-    'columnRule',
-    'columnRuleColor',
-    'columnRuleColor',
-    'columnRuleStyle',
-    'columnRuleStyle',
-    'columnRuleWidth',
-    'columnRuleWidth',
-    'columnSpan',
-    'columnSpan',
-    'columnWidth',
-    'columnWidth',
-    'columns',
-    'columns',
-    'content',
-    'content',
-    'counterIncrement',
-    'counterIncrement',
-    'counterReset',
-    'counterReset',
-    'cursor',
-    'cursor',
-    'direction',
-    'direction',
-    'display',
-    'display',
-    'emptyCells',
-    'emptyCells',
-    'filter',
-    'filter',
-    'flex',
-    'flex',
-    'flexBasis',
-    'flexBasis',
-    'flexDirection',
-    'flexDirection',
-    'flexFlow',
-    'flexFlow',
-    'flexGrow',
-    'flexGrow',
-    'flexShrink',
-    'flexShrink',
-    'flexWrap',
-    'flexWrap',
-    'float',
-    'float',
-    'font',
-    'font',
-    'fontFamily',
-    'fontFamily',
-    'fontFeatureSettings',
-    'fontFeatureSettings',
-    'fontKerning',
-    'fontKerning',
-    'fontSize',
-    'fontSize',
-    'fontSizeDelta',
-    'fontSizeDelta',
-    'fontSmoothing',
-    'fontSmoothing',
-    'fontStretch',
-    'fontStretch',
-    'fontStyle',
-    'fontStyle',
-    'fontVariant',
-    'fontVariant',
-    'fontVariantLigatures',
-    'fontVariantLigatures',
-    'fontWeight',
-    'fontWeight',
-    'grid',
-    'grid',
-    'gridArea',
-    'gridArea',
-    'gridAutoColumns',
-    'gridAutoColumns',
-    'gridAutoFlow',
-    'gridAutoFlow',
-    'gridAutoRows',
-    'gridAutoRows',
-    'gridColumn',
-    'gridColumn',
-    'gridColumnEnd',
-    'gridColumnEnd',
-    'gridColumnStart',
-    'gridColumnStart',
-    'gridRow',
-    'gridRow',
-    'gridRowEnd',
-    'gridRowEnd',
-    'gridRowStart',
-    'gridRowStart',
-    'gridTemplate',
-    'gridTemplate',
-    'gridTemplateAreas',
-    'gridTemplateAreas',
-    'gridTemplateColumns',
-    'gridTemplateColumns',
-    'gridTemplateRows',
-    'gridTemplateRows',
-    'height',
-    'height',
-    'highlight',
-    'highlight',
-    'hyphenateCharacter',
-    'hyphenateCharacter',
-    'imageRendering',
-    'imageRendering',
-    'isolation',
-    'isolation',
-    'justifyContent',
-    'justifyContent',
-    'justifySelf',
-    'justifySelf',
-    'left',
-    'left',
-    'letterSpacing',
-    'letterSpacing',
-    'lineBoxContain',
-    'lineBoxContain',
-    'lineBreak',
-    'lineBreak',
-    'lineClamp',
-    'lineClamp',
-    'lineHeight',
-    'lineHeight',
-    'listStyle',
-    'listStyle',
-    'listStyleImage',
-    'listStyleImage',
-    'listStylePosition',
-    'listStylePosition',
-    'listStyleType',
-    'listStyleType',
-    'locale',
-    'locale',
-    'logicalHeight',
-    'logicalHeight',
-    'logicalWidth',
-    'logicalWidth',
-    'margin',
-    'margin',
-    'marginAfter',
-    'marginAfter',
-    'marginAfterCollapse',
-    'marginAfterCollapse',
-    'marginBefore',
-    'marginBefore',
-    'marginBeforeCollapse',
-    'marginBeforeCollapse',
-    'marginBottom',
-    'marginBottom',
-    'marginBottomCollapse',
-    'marginBottomCollapse',
-    'marginCollapse',
-    'marginCollapse',
-    'marginEnd',
-    'marginEnd',
-    'marginLeft',
-    'marginLeft',
-    'marginRight',
-    'marginRight',
-    'marginStart',
-    'marginStart',
-    'marginTop',
-    'marginTop',
-    'marginTopCollapse',
-    'marginTopCollapse',
-    'mask',
-    'mask',
-    'maskBoxImage',
-    'maskBoxImage',
-    'maskBoxImageOutset',
-    'maskBoxImageOutset',
-    'maskBoxImageRepeat',
-    'maskBoxImageRepeat',
-    'maskBoxImageSlice',
-    'maskBoxImageSlice',
-    'maskBoxImageSource',
-    'maskBoxImageSource',
-    'maskBoxImageWidth',
-    'maskBoxImageWidth',
-    'maskClip',
-    'maskClip',
-    'maskComposite',
-    'maskComposite',
-    'maskImage',
-    'maskImage',
-    'maskOrigin',
-    'maskOrigin',
-    'maskPosition',
-    'maskPosition',
-    'maskPositionX',
-    'maskPositionX',
-    'maskPositionY',
-    'maskPositionY',
-    'maskRepeat',
-    'maskRepeat',
-    'maskRepeatX',
-    'maskRepeatX',
-    'maskRepeatY',
-    'maskRepeatY',
-    'maskSize',
-    'maskSize',
-    'maskSourceType',
-    'maskSourceType',
-    'maxHeight',
-    'maxHeight',
-    'maxLogicalHeight',
-    'maxLogicalHeight',
-    'maxLogicalWidth',
-    'maxLogicalWidth',
-    'maxWidth',
-    'maxWidth',
-    'maxZoom',
-    'maxZoom',
-    'minHeight',
-    'minHeight',
-    'minLogicalHeight',
-    'minLogicalHeight',
-    'minLogicalWidth',
-    'minLogicalWidth',
-    'minWidth',
-    'minWidth',
-    'minZoom',
-    'minZoom',
-    'mixBlendMode',
-    'mixBlendMode',
-    'objectFit',
-    'objectFit',
-    'objectPosition',
-    'objectPosition',
-    'opacity',
-    'opacity',
-    'order',
-    'order',
-    'orientation',
-    'orientation',
-    'orphans',
-    'orphans',
-    'outline',
-    'outline',
-    'outlineColor',
-    'outlineColor',
-    'outlineOffset',
-    'outlineOffset',
-    'outlineStyle',
-    'outlineStyle',
-    'outlineWidth',
-    'outlineWidth',
-    'overflow',
-    'overflow',
-    'overflowWrap',
-    'overflowWrap',
-    'overflowX',
-    'overflowX',
-    'overflowY',
-    'overflowY',
-    'padding',
-    'padding',
-    'paddingAfter',
-    'paddingAfter',
-    'paddingBefore',
-    'paddingBefore',
-    'paddingBottom',
-    'paddingBottom',
-    'paddingEnd',
-    'paddingEnd',
-    'paddingLeft',
-    'paddingLeft',
-    'paddingRight',
-    'paddingRight',
-    'paddingStart',
-    'paddingStart',
-    'paddingTop',
-    'paddingTop',
-    'page',
-    'page',
-    'pageBreakAfter',
-    'pageBreakAfter',
-    'pageBreakBefore',
-    'pageBreakBefore',
-    'pageBreakInside',
-    'pageBreakInside',
-    'perspective',
-    'perspective',
-    'perspectiveOrigin',
-    'perspectiveOrigin',
-    'perspectiveOriginX',
-    'perspectiveOriginX',
-    'perspectiveOriginY',
-    'perspectiveOriginY',
-    'pointerEvents',
-    'pointerEvents',
-    'position',
-    'position',
-    'printColorAdjust',
-    'printColorAdjust',
-    'quotes',
-    'quotes',
-    'resize',
-    'resize',
-    'right',
-    'right',
-    'rtlOrdering',
-    'rtlOrdering',
-    'rubyPosition',
-    'rubyPosition',
-    'scrollBehavior',
-    'scrollBehavior',
-    'shapeImageThreshold',
-    'shapeImageThreshold',
-    'shapeMargin',
-    'shapeMargin',
-    'shapeOutside',
-    'shapeOutside',
-    'size',
-    'size',
-    'speak',
-    'speak',
-    'src',
-    'src',
-    'tabSize',
-    'tabSize',
-    'tableLayout',
-    'tableLayout',
-    'tapHighlightColor',
-    'tapHighlightColor',
-    'textAlign',
-    'textAlign',
-    'textAlignLast',
-    'textAlignLast',
-    'textCombine',
-    'textCombine',
-    'textDecoration',
-    'textDecoration',
-    'textDecorationColor',
-    'textDecorationColor',
-    'textDecorationLine',
-    'textDecorationLine',
-    'textDecorationStyle',
-    'textDecorationStyle',
-    'textDecorationsInEffect',
-    'textDecorationsInEffect',
-    'textEmphasis',
-    'textEmphasis',
-    'textEmphasisColor',
-    'textEmphasisColor',
-    'textEmphasisPosition',
-    'textEmphasisPosition',
-    'textEmphasisStyle',
-    'textEmphasisStyle',
-    'textFillColor',
-    'textFillColor',
-    'textIndent',
-    'textIndent',
-    'textJustify',
-    'textJustify',
-    'textLineThroughColor',
-    'textLineThroughColor',
-    'textLineThroughMode',
-    'textLineThroughMode',
-    'textLineThroughStyle',
-    'textLineThroughStyle',
-    'textLineThroughWidth',
-    'textLineThroughWidth',
-    'textOrientation',
-    'textOrientation',
-    'textOverflow',
-    'textOverflow',
-    'textOverlineColor',
-    'textOverlineColor',
-    'textOverlineMode',
-    'textOverlineMode',
-    'textOverlineStyle',
-    'textOverlineStyle',
-    'textOverlineWidth',
-    'textOverlineWidth',
-    'textRendering',
-    'textRendering',
-    'textSecurity',
-    'textSecurity',
-    'textShadow',
-    'textShadow',
-    'textStroke',
-    'textStroke',
-    'textStrokeColor',
-    'textStrokeColor',
-    'textStrokeWidth',
-    'textStrokeWidth',
-    'textTransform',
-    'textTransform',
-    'textUnderlineColor',
-    'textUnderlineColor',
-    'textUnderlineMode',
-    'textUnderlineMode',
-    'textUnderlinePosition',
-    'textUnderlinePosition',
-    'textUnderlineStyle',
-    'textUnderlineStyle',
-    'textUnderlineWidth',
-    'textUnderlineWidth',
-    'top',
-    'top',
-    'touchAction',
-    'touchAction',
-    'touchActionDelay',
-    'touchActionDelay',
-    'transform',
-    'transform',
-    'transformOrigin',
-    'transformOrigin',
-    'transformOriginX',
-    'transformOriginX',
-    'transformOriginY',
-    'transformOriginY',
-    'transformOriginZ',
-    'transformOriginZ',
-    'transformStyle',
-    'transformStyle',
-    'transition',
-    'transition',
-    'transitionDelay',
-    'transitionDelay',
-    'transitionDuration',
-    'transitionDuration',
-    'transitionProperty',
-    'transitionProperty',
-    'transitionTimingFunction',
-    'transitionTimingFunction',
-    'unicodeBidi',
-    'unicodeBidi',
-    'unicodeRange',
-    'unicodeRange',
-    'userDrag',
-    'userDrag',
-    'userModify',
-    'userModify',
-    'userSelect',
-    'userSelect',
-    'userZoom',
-    'userZoom',
-    'verticalAlign',
-    'verticalAlign',
-    'visibility',
-    'visibility',
-    'whiteSpace',
-    'whiteSpace',
-    'widows',
-    'widows',
-    'width',
-    'width',
-    'willChange',
-    'willChange',
-    'wordBreak',
-    'wordBreak',
-    'wordSpacing',
-    'wordSpacing',
-    'wordWrap',
-    'wordWrap',
-    'wrapFlow',
-    'wrapFlow',
-    'wrapThrough',
-    'wrapThrough',
-    'writingMode',
-    'writingMode',
-    'zIndex',
-    'zIndex',
-    'zoom',
-    'zoom'
-  ]);
-  dart.defineExtensionNames([
-    'getPropertyValue',
-    'supportsProperty',
-    'setProperty',
-    'getPropertyPriority',
-    'item',
-    'removeProperty',
-    'background',
-    'background',
-    'backgroundAttachment',
-    'backgroundAttachment',
-    'backgroundColor',
-    'backgroundColor',
-    'backgroundImage',
-    'backgroundImage',
-    'backgroundPosition',
-    'backgroundPosition',
-    'backgroundRepeat',
-    'backgroundRepeat',
-    'border',
-    'border',
-    'borderBottom',
-    'borderBottom',
-    'borderBottomColor',
-    'borderBottomColor',
-    'borderBottomStyle',
-    'borderBottomStyle',
-    'borderBottomWidth',
-    'borderBottomWidth',
-    'borderCollapse',
-    'borderCollapse',
-    'borderColor',
-    'borderColor',
-    'borderLeft',
-    'borderLeft',
-    'borderLeftColor',
-    'borderLeftColor',
-    'borderLeftStyle',
-    'borderLeftStyle',
-    'borderLeftWidth',
-    'borderLeftWidth',
-    'borderRight',
-    'borderRight',
-    'borderRightColor',
-    'borderRightColor',
-    'borderRightStyle',
-    'borderRightStyle',
-    'borderRightWidth',
-    'borderRightWidth',
-    'borderSpacing',
-    'borderSpacing',
-    'borderStyle',
-    'borderStyle',
-    'borderTop',
-    'borderTop',
-    'borderTopColor',
-    'borderTopColor',
-    'borderTopStyle',
-    'borderTopStyle',
-    'borderTopWidth',
-    'borderTopWidth',
-    'borderWidth',
-    'borderWidth',
-    'bottom',
-    'bottom',
-    'captionSide',
-    'captionSide',
-    'clear',
-    'clear',
-    'clip',
-    'clip',
-    'color',
-    'color',
-    'content',
-    'content',
-    'cursor',
-    'cursor',
-    'direction',
-    'direction',
-    'display',
-    'display',
-    'emptyCells',
-    'emptyCells',
-    'font',
-    'font',
-    'fontFamily',
-    'fontFamily',
-    'fontSize',
-    'fontSize',
-    'fontStyle',
-    'fontStyle',
-    'fontVariant',
-    'fontVariant',
-    'fontWeight',
-    'fontWeight',
-    'height',
-    'height',
-    'left',
-    'left',
-    'letterSpacing',
-    'letterSpacing',
-    'lineHeight',
-    'lineHeight',
-    'listStyle',
-    'listStyle',
-    'listStyleImage',
-    'listStyleImage',
-    'listStylePosition',
-    'listStylePosition',
-    'listStyleType',
-    'listStyleType',
-    'margin',
-    'margin',
-    'marginBottom',
-    'marginBottom',
-    'marginLeft',
-    'marginLeft',
-    'marginRight',
-    'marginRight',
-    'marginTop',
-    'marginTop',
-    'maxHeight',
-    'maxHeight',
-    'maxWidth',
-    'maxWidth',
-    'minHeight',
-    'minHeight',
-    'minWidth',
-    'minWidth',
-    'outline',
-    'outline',
-    'outlineColor',
-    'outlineColor',
-    'outlineStyle',
-    'outlineStyle',
-    'outlineWidth',
-    'outlineWidth',
-    'overflow',
-    'overflow',
-    'padding',
-    'padding',
-    'paddingBottom',
-    'paddingBottom',
-    'paddingLeft',
-    'paddingLeft',
-    'paddingRight',
-    'paddingRight',
-    'paddingTop',
-    'paddingTop',
-    'pageBreakAfter',
-    'pageBreakAfter',
-    'pageBreakBefore',
-    'pageBreakBefore',
-    'pageBreakInside',
-    'pageBreakInside',
-    'position',
-    'position',
-    'quotes',
-    'quotes',
-    'right',
-    'right',
-    'tableLayout',
-    'tableLayout',
-    'textAlign',
-    'textAlign',
-    'textDecoration',
-    'textDecoration',
-    'textIndent',
-    'textIndent',
-    'textTransform',
-    'textTransform',
-    'top',
-    'top',
-    'unicodeBidi',
-    'unicodeBidi',
-    'verticalAlign',
-    'verticalAlign',
-    'visibility',
-    'visibility',
-    'whiteSpace',
-    'whiteSpace',
-    'width',
-    'width',
-    'wordSpacing',
-    'wordSpacing',
-    'zIndex',
-    'zIndex',
-    'cssText',
-    'length',
-    'parentRule'
-  ]);
-  html$.CssStyleDeclaration = class CssStyleDeclaration extends dart.mixin(_interceptors.Interceptor, html$.CssStyleDeclarationBase) {
-    static new() {
-      return html$.CssStyleDeclaration.css('');
-    }
-    static css(css) {
-      let style = html$.Element.tag('div')[dartx.style];
-      style[dartx.cssText] = css;
-      return style;
-    }
-    [dartx.getPropertyValue](propertyName) {
-      let propValue = this[_getPropertyValueHelper](propertyName);
-      return propValue != null ? propValue : '';
-    }
-    [_getPropertyValueHelper](propertyName) {
-      if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
-        return this[_getPropertyValue](propertyName);
-      } else {
-        return this[_getPropertyValue](dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName));
-      }
-    }
-    [dartx.supportsProperty](propertyName) {
-      return dart.test(this[_supportsProperty](propertyName)) || dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName))));
-    }
-    [_supportsProperty](propertyName) {
-      return propertyName in this;
-    }
-    [dartx.setProperty](propertyName, value, priority) {
-      if (priority === void 0) priority = null;
-      return this[_setPropertyHelper](this[_browserPropertyName](propertyName), value, priority);
-    }
-    [_browserPropertyName](propertyName) {
-      let name = html$.CssStyleDeclaration._readCache(propertyName);
-      if (typeof name == 'string') return name;
-      if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
-        name = propertyName;
-      } else {
-        name = dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName);
-      }
-      html$.CssStyleDeclaration._writeCache(propertyName, name);
-      return name;
-    }
-    static _readCache(key) {
-      return html$.CssStyleDeclaration._propertyCache[key];
-    }
-    static _writeCache(key, value) {
-      html$.CssStyleDeclaration._propertyCache[key] = value;
-    }
-    static _camelCase(hyphenated) {
-      let replacedMs = hyphenated.replace(/^-ms-/, "ms-");
-      return replacedMs.replace(/-([\da-z])/ig, (_, letter) => letter.toUpperCase());
-    }
-    [_setPropertyHelper](propertyName, value, priority) {
-      if (priority === void 0) priority = null;
-      if (value == null) value = '';
-      if (priority == null) priority = '';
-      this.setProperty(propertyName, value, priority);
-    }
-    static get supportsTransitions() {
-      return html$.document[dartx.body][dartx.style][dartx.supportsProperty]('transition');
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.cssText]() {
-      return this.cssText;
-    }
-    set [dartx.cssText](value) {
-      this.cssText = value;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.parentRule]() {
-      return this.parentRule;
-    }
-    [dartx.getPropertyPriority](...args) {
-      return this.getPropertyPriority.apply(this, args);
-    }
-    [_getPropertyValue](...args) {
-      return this.getPropertyValue.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.removeProperty](...args) {
-      return this.removeProperty.apply(this, args);
-    }
-    get [dartx.background]() {
-      return this[_background];
-    }
-    set [dartx.background](value) {
-      this[_background] = value == null ? '' : value;
-    }
-    get [_background]() {
-      return this.background;
-    }
-    set [_background](value) {
-      this.background = value;
-    }
-    get [dartx.backgroundAttachment]() {
-      return this[_backgroundAttachment];
-    }
-    set [dartx.backgroundAttachment](value) {
-      this[_backgroundAttachment] = value == null ? '' : value;
-    }
-    get [_backgroundAttachment]() {
-      return this.backgroundAttachment;
-    }
-    set [_backgroundAttachment](value) {
-      this.backgroundAttachment = value;
-    }
-    get [dartx.backgroundColor]() {
-      return this[_backgroundColor];
-    }
-    set [dartx.backgroundColor](value) {
-      this[_backgroundColor] = value == null ? '' : value;
-    }
-    get [_backgroundColor]() {
-      return this.backgroundColor;
-    }
-    set [_backgroundColor](value) {
-      this.backgroundColor = value;
-    }
-    get [dartx.backgroundImage]() {
-      return this[_backgroundImage];
-    }
-    set [dartx.backgroundImage](value) {
-      this[_backgroundImage] = value == null ? '' : value;
-    }
-    get [_backgroundImage]() {
-      return this.backgroundImage;
-    }
-    set [_backgroundImage](value) {
-      this.backgroundImage = value;
-    }
-    get [dartx.backgroundPosition]() {
-      return this[_backgroundPosition];
-    }
-    set [dartx.backgroundPosition](value) {
-      this[_backgroundPosition] = value == null ? '' : value;
-    }
-    get [_backgroundPosition]() {
-      return this.backgroundPosition;
-    }
-    set [_backgroundPosition](value) {
-      this.backgroundPosition = value;
-    }
-    get [dartx.backgroundRepeat]() {
-      return this[_backgroundRepeat];
-    }
-    set [dartx.backgroundRepeat](value) {
-      this[_backgroundRepeat] = value == null ? '' : value;
-    }
-    get [_backgroundRepeat]() {
-      return this.backgroundRepeat;
-    }
-    set [_backgroundRepeat](value) {
-      this.backgroundRepeat = value;
-    }
-    get [dartx.border]() {
-      return this[_border];
-    }
-    set [dartx.border](value) {
-      this[_border] = value == null ? '' : value;
-    }
-    get [_border]() {
-      return this.border;
-    }
-    set [_border](value) {
-      this.border = value;
-    }
-    get [dartx.borderBottom]() {
-      return this[_borderBottom];
-    }
-    set [dartx.borderBottom](value) {
-      this[_borderBottom] = value == null ? '' : value;
-    }
-    get [_borderBottom]() {
-      return this.borderBottom;
-    }
-    set [_borderBottom](value) {
-      this.borderBottom = value;
-    }
-    get [dartx.borderBottomColor]() {
-      return this[_borderBottomColor];
-    }
-    set [dartx.borderBottomColor](value) {
-      this[_borderBottomColor] = value == null ? '' : value;
-    }
-    get [_borderBottomColor]() {
-      return this.borderBottomColor;
-    }
-    set [_borderBottomColor](value) {
-      this.borderBottomColor = value;
-    }
-    get [dartx.borderBottomStyle]() {
-      return this[_borderBottomStyle];
-    }
-    set [dartx.borderBottomStyle](value) {
-      this[_borderBottomStyle] = value == null ? '' : value;
-    }
-    get [_borderBottomStyle]() {
-      return this.borderBottomStyle;
-    }
-    set [_borderBottomStyle](value) {
-      this.borderBottomStyle = value;
-    }
-    get [dartx.borderBottomWidth]() {
-      return this[_borderBottomWidth];
-    }
-    set [dartx.borderBottomWidth](value) {
-      this[_borderBottomWidth] = value == null ? '' : value;
-    }
-    get [_borderBottomWidth]() {
-      return this.borderBottomWidth;
-    }
-    set [_borderBottomWidth](value) {
-      this.borderBottomWidth = value;
-    }
-    get [dartx.borderCollapse]() {
-      return this[_borderCollapse];
-    }
-    set [dartx.borderCollapse](value) {
-      this[_borderCollapse] = value == null ? '' : value;
-    }
-    get [_borderCollapse]() {
-      return this.borderCollapse;
-    }
-    set [_borderCollapse](value) {
-      this.borderCollapse = value;
-    }
-    get [dartx.borderColor]() {
-      return this[_borderColor];
-    }
-    set [dartx.borderColor](value) {
-      this[_borderColor] = value == null ? '' : value;
-    }
-    get [_borderColor]() {
-      return this.borderColor;
-    }
-    set [_borderColor](value) {
-      this.borderColor = value;
-    }
-    get [dartx.borderLeft]() {
-      return this[_borderLeft];
-    }
-    set [dartx.borderLeft](value) {
-      this[_borderLeft] = value == null ? '' : value;
-    }
-    get [_borderLeft]() {
-      return this.borderLeft;
-    }
-    set [_borderLeft](value) {
-      this.borderLeft = value;
-    }
-    get [dartx.borderLeftColor]() {
-      return this[_borderLeftColor];
-    }
-    set [dartx.borderLeftColor](value) {
-      this[_borderLeftColor] = value == null ? '' : value;
-    }
-    get [_borderLeftColor]() {
-      return this.borderLeftColor;
-    }
-    set [_borderLeftColor](value) {
-      this.borderLeftColor = value;
-    }
-    get [dartx.borderLeftStyle]() {
-      return this[_borderLeftStyle];
-    }
-    set [dartx.borderLeftStyle](value) {
-      this[_borderLeftStyle] = value == null ? '' : value;
-    }
-    get [_borderLeftStyle]() {
-      return this.borderLeftStyle;
-    }
-    set [_borderLeftStyle](value) {
-      this.borderLeftStyle = value;
-    }
-    get [dartx.borderLeftWidth]() {
-      return this[_borderLeftWidth];
-    }
-    set [dartx.borderLeftWidth](value) {
-      this[_borderLeftWidth] = value == null ? '' : value;
-    }
-    get [_borderLeftWidth]() {
-      return this.borderLeftWidth;
-    }
-    set [_borderLeftWidth](value) {
-      this.borderLeftWidth = value;
-    }
-    get [dartx.borderRight]() {
-      return this[_borderRight];
-    }
-    set [dartx.borderRight](value) {
-      this[_borderRight] = value == null ? '' : value;
-    }
-    get [_borderRight]() {
-      return this.borderRight;
-    }
-    set [_borderRight](value) {
-      this.borderRight = value;
-    }
-    get [dartx.borderRightColor]() {
-      return this[_borderRightColor];
-    }
-    set [dartx.borderRightColor](value) {
-      this[_borderRightColor] = value == null ? '' : value;
-    }
-    get [_borderRightColor]() {
-      return this.borderRightColor;
-    }
-    set [_borderRightColor](value) {
-      this.borderRightColor = value;
-    }
-    get [dartx.borderRightStyle]() {
-      return this[_borderRightStyle];
-    }
-    set [dartx.borderRightStyle](value) {
-      this[_borderRightStyle] = value == null ? '' : value;
-    }
-    get [_borderRightStyle]() {
-      return this.borderRightStyle;
-    }
-    set [_borderRightStyle](value) {
-      this.borderRightStyle = value;
-    }
-    get [dartx.borderRightWidth]() {
-      return this[_borderRightWidth];
-    }
-    set [dartx.borderRightWidth](value) {
-      this[_borderRightWidth] = value == null ? '' : value;
-    }
-    get [_borderRightWidth]() {
-      return this.borderRightWidth;
-    }
-    set [_borderRightWidth](value) {
-      this.borderRightWidth = value;
-    }
-    get [dartx.borderSpacing]() {
-      return this[_borderSpacing];
-    }
-    set [dartx.borderSpacing](value) {
-      this[_borderSpacing] = value == null ? '' : value;
-    }
-    get [_borderSpacing]() {
-      return this.borderSpacing;
-    }
-    set [_borderSpacing](value) {
-      this.borderSpacing = value;
-    }
-    get [dartx.borderStyle]() {
-      return this[_borderStyle];
-    }
-    set [dartx.borderStyle](value) {
-      this[_borderStyle] = value == null ? '' : value;
-    }
-    get [_borderStyle]() {
-      return this.borderStyle;
-    }
-    set [_borderStyle](value) {
-      this.borderStyle = value;
-    }
-    get [dartx.borderTop]() {
-      return this[_borderTop];
-    }
-    set [dartx.borderTop](value) {
-      this[_borderTop] = value == null ? '' : value;
-    }
-    get [_borderTop]() {
-      return this.borderTop;
-    }
-    set [_borderTop](value) {
-      this.borderTop = value;
-    }
-    get [dartx.borderTopColor]() {
-      return this[_borderTopColor];
-    }
-    set [dartx.borderTopColor](value) {
-      this[_borderTopColor] = value == null ? '' : value;
-    }
-    get [_borderTopColor]() {
-      return this.borderTopColor;
-    }
-    set [_borderTopColor](value) {
-      this.borderTopColor = value;
-    }
-    get [dartx.borderTopStyle]() {
-      return this[_borderTopStyle];
-    }
-    set [dartx.borderTopStyle](value) {
-      this[_borderTopStyle] = value == null ? '' : value;
-    }
-    get [_borderTopStyle]() {
-      return this.borderTopStyle;
-    }
-    set [_borderTopStyle](value) {
-      this.borderTopStyle = value;
-    }
-    get [dartx.borderTopWidth]() {
-      return this[_borderTopWidth];
-    }
-    set [dartx.borderTopWidth](value) {
-      this[_borderTopWidth] = value == null ? '' : value;
-    }
-    get [_borderTopWidth]() {
-      return this.borderTopWidth;
-    }
-    set [_borderTopWidth](value) {
-      this.borderTopWidth = value;
-    }
-    get [dartx.borderWidth]() {
-      return this[_borderWidth];
-    }
-    set [dartx.borderWidth](value) {
-      this[_borderWidth] = value == null ? '' : value;
-    }
-    get [_borderWidth]() {
-      return this.borderWidth;
-    }
-    set [_borderWidth](value) {
-      this.borderWidth = value;
-    }
-    get [dartx.bottom]() {
-      return this[_bottom];
-    }
-    set [dartx.bottom](value) {
-      this[_bottom] = value == null ? '' : value;
-    }
-    get [_bottom]() {
-      return this.bottom;
-    }
-    set [_bottom](value) {
-      this.bottom = value;
-    }
-    get [dartx.captionSide]() {
-      return this[_captionSide];
-    }
-    set [dartx.captionSide](value) {
-      this[_captionSide] = value == null ? '' : value;
-    }
-    get [_captionSide]() {
-      return this.captionSide;
-    }
-    set [_captionSide](value) {
-      this.captionSide = value;
-    }
-    get [dartx.clear]() {
-      return this[_clear$1];
-    }
-    set [dartx.clear](value) {
-      this[_clear$1] = value == null ? '' : value;
-    }
-    get [_clear$1]() {
-      return this.clear;
-    }
-    set [_clear$1](value) {
-      this.clear = value;
-    }
-    get [dartx.clip]() {
-      return this[_clip];
-    }
-    set [dartx.clip](value) {
-      this[_clip] = value == null ? '' : value;
-    }
-    get [_clip]() {
-      return this.clip;
-    }
-    set [_clip](value) {
-      this.clip = value;
-    }
-    get [dartx.color]() {
-      return this[_color];
-    }
-    set [dartx.color](value) {
-      this[_color] = value == null ? '' : value;
-    }
-    get [_color]() {
-      return this.color;
-    }
-    set [_color](value) {
-      this.color = value;
-    }
-    get [dartx.content]() {
-      return this[_content];
-    }
-    set [dartx.content](value) {
-      this[_content] = value == null ? '' : value;
-    }
-    get [_content]() {
-      return this.content;
-    }
-    set [_content](value) {
-      this.content = value;
-    }
-    get [dartx.cursor]() {
-      return this[_cursor];
-    }
-    set [dartx.cursor](value) {
-      this[_cursor] = value == null ? '' : value;
-    }
-    get [_cursor]() {
-      return this.cursor;
-    }
-    set [_cursor](value) {
-      this.cursor = value;
-    }
-    get [dartx.direction]() {
-      return this[_direction];
-    }
-    set [dartx.direction](value) {
-      this[_direction] = value == null ? '' : value;
-    }
-    get [_direction]() {
-      return this.direction;
-    }
-    set [_direction](value) {
-      this.direction = value;
-    }
-    get [dartx.display]() {
-      return this[_display];
-    }
-    set [dartx.display](value) {
-      this[_display] = value == null ? '' : value;
-    }
-    get [_display]() {
-      return this.display;
-    }
-    set [_display](value) {
-      this.display = value;
-    }
-    get [dartx.emptyCells]() {
-      return this[_emptyCells];
-    }
-    set [dartx.emptyCells](value) {
-      this[_emptyCells] = value == null ? '' : value;
-    }
-    get [_emptyCells]() {
-      return this.emptyCells;
-    }
-    set [_emptyCells](value) {
-      this.emptyCells = value;
-    }
-    get [dartx.font]() {
-      return this[_font];
-    }
-    set [dartx.font](value) {
-      this[_font] = value == null ? '' : value;
-    }
-    get [_font]() {
-      return this.font;
-    }
-    set [_font](value) {
-      this.font = value;
-    }
-    get [dartx.fontFamily]() {
-      return this[_fontFamily];
-    }
-    set [dartx.fontFamily](value) {
-      this[_fontFamily] = value == null ? '' : value;
-    }
-    get [_fontFamily]() {
-      return this.fontFamily;
-    }
-    set [_fontFamily](value) {
-      this.fontFamily = value;
-    }
-    get [dartx.fontSize]() {
-      return this[_fontSize];
-    }
-    set [dartx.fontSize](value) {
-      this[_fontSize] = value == null ? '' : value;
-    }
-    get [_fontSize]() {
-      return this.fontSize;
-    }
-    set [_fontSize](value) {
-      this.fontSize = value;
-    }
-    get [dartx.fontStyle]() {
-      return this[_fontStyle];
-    }
-    set [dartx.fontStyle](value) {
-      this[_fontStyle] = value == null ? '' : value;
-    }
-    get [_fontStyle]() {
-      return this.fontStyle;
-    }
-    set [_fontStyle](value) {
-      this.fontStyle = value;
-    }
-    get [dartx.fontVariant]() {
-      return this[_fontVariant];
-    }
-    set [dartx.fontVariant](value) {
-      this[_fontVariant] = value == null ? '' : value;
-    }
-    get [_fontVariant]() {
-      return this.fontVariant;
-    }
-    set [_fontVariant](value) {
-      this.fontVariant = value;
-    }
-    get [dartx.fontWeight]() {
-      return this[_fontWeight];
-    }
-    set [dartx.fontWeight](value) {
-      this[_fontWeight] = value == null ? '' : value;
-    }
-    get [_fontWeight]() {
-      return this.fontWeight;
-    }
-    set [_fontWeight](value) {
-      this.fontWeight = value;
-    }
-    get [dartx.height]() {
-      return this[_height$];
-    }
-    set [dartx.height](value) {
-      this[_height$] = value == null ? '' : value;
-    }
-    get [_height$]() {
-      return this.height;
-    }
-    set [_height$](value) {
-      this.height = value;
-    }
-    get [dartx.left]() {
-      return this[_left];
-    }
-    set [dartx.left](value) {
-      this[_left] = value == null ? '' : value;
-    }
-    get [_left]() {
-      return this.left;
-    }
-    set [_left](value) {
-      this.left = value;
-    }
-    get [dartx.letterSpacing]() {
-      return this[_letterSpacing];
-    }
-    set [dartx.letterSpacing](value) {
-      this[_letterSpacing] = value == null ? '' : value;
-    }
-    get [_letterSpacing]() {
-      return this.letterSpacing;
-    }
-    set [_letterSpacing](value) {
-      this.letterSpacing = value;
-    }
-    get [dartx.lineHeight]() {
-      return this[_lineHeight];
-    }
-    set [dartx.lineHeight](value) {
-      this[_lineHeight] = value == null ? '' : value;
-    }
-    get [_lineHeight]() {
-      return this.lineHeight;
-    }
-    set [_lineHeight](value) {
-      this.lineHeight = value;
-    }
-    get [dartx.listStyle]() {
-      return this[_listStyle];
-    }
-    set [dartx.listStyle](value) {
-      this[_listStyle] = value == null ? '' : value;
-    }
-    get [_listStyle]() {
-      return this.listStyle;
-    }
-    set [_listStyle](value) {
-      this.listStyle = value;
-    }
-    get [dartx.listStyleImage]() {
-      return this[_listStyleImage];
-    }
-    set [dartx.listStyleImage](value) {
-      this[_listStyleImage] = value == null ? '' : value;
-    }
-    get [_listStyleImage]() {
-      return this.listStyleImage;
-    }
-    set [_listStyleImage](value) {
-      this.listStyleImage = value;
-    }
-    get [dartx.listStylePosition]() {
-      return this[_listStylePosition];
-    }
-    set [dartx.listStylePosition](value) {
-      this[_listStylePosition] = value == null ? '' : value;
-    }
-    get [_listStylePosition]() {
-      return this.listStylePosition;
-    }
-    set [_listStylePosition](value) {
-      this.listStylePosition = value;
-    }
-    get [dartx.listStyleType]() {
-      return this[_listStyleType];
-    }
-    set [dartx.listStyleType](value) {
-      this[_listStyleType] = value == null ? '' : value;
-    }
-    get [_listStyleType]() {
-      return this.listStyleType;
-    }
-    set [_listStyleType](value) {
-      this.listStyleType = value;
-    }
-    get [dartx.margin]() {
-      return this[_margin];
-    }
-    set [dartx.margin](value) {
-      this[_margin] = value == null ? '' : value;
-    }
-    get [_margin]() {
-      return this.margin;
-    }
-    set [_margin](value) {
-      this.margin = value;
-    }
-    get [dartx.marginBottom]() {
-      return this[_marginBottom];
-    }
-    set [dartx.marginBottom](value) {
-      this[_marginBottom] = value == null ? '' : value;
-    }
-    get [_marginBottom]() {
-      return this.marginBottom;
-    }
-    set [_marginBottom](value) {
-      this.marginBottom = value;
-    }
-    get [dartx.marginLeft]() {
-      return this[_marginLeft];
-    }
-    set [dartx.marginLeft](value) {
-      this[_marginLeft] = value == null ? '' : value;
-    }
-    get [_marginLeft]() {
-      return this.marginLeft;
-    }
-    set [_marginLeft](value) {
-      this.marginLeft = value;
-    }
-    get [dartx.marginRight]() {
-      return this[_marginRight];
-    }
-    set [dartx.marginRight](value) {
-      this[_marginRight] = value == null ? '' : value;
-    }
-    get [_marginRight]() {
-      return this.marginRight;
-    }
-    set [_marginRight](value) {
-      this.marginRight = value;
-    }
-    get [dartx.marginTop]() {
-      return this[_marginTop];
-    }
-    set [dartx.marginTop](value) {
-      this[_marginTop] = value == null ? '' : value;
-    }
-    get [_marginTop]() {
-      return this.marginTop;
-    }
-    set [_marginTop](value) {
-      this.marginTop = value;
-    }
-    get [dartx.maxHeight]() {
-      return this[_maxHeight];
-    }
-    set [dartx.maxHeight](value) {
-      this[_maxHeight] = value == null ? '' : value;
-    }
-    get [_maxHeight]() {
-      return this.maxHeight;
-    }
-    set [_maxHeight](value) {
-      this.maxHeight = value;
-    }
-    get [dartx.maxWidth]() {
-      return this[_maxWidth];
-    }
-    set [dartx.maxWidth](value) {
-      this[_maxWidth] = value == null ? '' : value;
-    }
-    get [_maxWidth]() {
-      return this.maxWidth;
-    }
-    set [_maxWidth](value) {
-      this.maxWidth = value;
-    }
-    get [dartx.minHeight]() {
-      return this[_minHeight];
-    }
-    set [dartx.minHeight](value) {
-      this[_minHeight] = value == null ? '' : value;
-    }
-    get [_minHeight]() {
-      return this.minHeight;
-    }
-    set [_minHeight](value) {
-      this.minHeight = value;
-    }
-    get [dartx.minWidth]() {
-      return this[_minWidth];
-    }
-    set [dartx.minWidth](value) {
-      this[_minWidth] = value == null ? '' : value;
-    }
-    get [_minWidth]() {
-      return this.minWidth;
-    }
-    set [_minWidth](value) {
-      this.minWidth = value;
-    }
-    get [dartx.outline]() {
-      return this[_outline];
-    }
-    set [dartx.outline](value) {
-      this[_outline] = value == null ? '' : value;
-    }
-    get [_outline]() {
-      return this.outline;
-    }
-    set [_outline](value) {
-      this.outline = value;
-    }
-    get [dartx.outlineColor]() {
-      return this[_outlineColor];
-    }
-    set [dartx.outlineColor](value) {
-      this[_outlineColor] = value == null ? '' : value;
-    }
-    get [_outlineColor]() {
-      return this.outlineColor;
-    }
-    set [_outlineColor](value) {
-      this.outlineColor = value;
-    }
-    get [dartx.outlineStyle]() {
-      return this[_outlineStyle];
-    }
-    set [dartx.outlineStyle](value) {
-      this[_outlineStyle] = value == null ? '' : value;
-    }
-    get [_outlineStyle]() {
-      return this.outlineStyle;
-    }
-    set [_outlineStyle](value) {
-      this.outlineStyle = value;
-    }
-    get [dartx.outlineWidth]() {
-      return this[_outlineWidth];
-    }
-    set [dartx.outlineWidth](value) {
-      this[_outlineWidth] = value == null ? '' : value;
-    }
-    get [_outlineWidth]() {
-      return this.outlineWidth;
-    }
-    set [_outlineWidth](value) {
-      this.outlineWidth = value;
-    }
-    get [dartx.overflow]() {
-      return this[_overflow];
-    }
-    set [dartx.overflow](value) {
-      this[_overflow] = value == null ? '' : value;
-    }
-    get [_overflow]() {
-      return this.overflow;
-    }
-    set [_overflow](value) {
-      this.overflow = value;
-    }
-    get [dartx.padding]() {
-      return this[_padding];
-    }
-    set [dartx.padding](value) {
-      this[_padding] = value == null ? '' : value;
-    }
-    get [_padding]() {
-      return this.padding;
-    }
-    set [_padding](value) {
-      this.padding = value;
-    }
-    get [dartx.paddingBottom]() {
-      return this[_paddingBottom];
-    }
-    set [dartx.paddingBottom](value) {
-      this[_paddingBottom] = value == null ? '' : value;
-    }
-    get [_paddingBottom]() {
-      return this.paddingBottom;
-    }
-    set [_paddingBottom](value) {
-      this.paddingBottom = value;
-    }
-    get [dartx.paddingLeft]() {
-      return this[_paddingLeft];
-    }
-    set [dartx.paddingLeft](value) {
-      this[_paddingLeft] = value == null ? '' : value;
-    }
-    get [_paddingLeft]() {
-      return this.paddingLeft;
-    }
-    set [_paddingLeft](value) {
-      this.paddingLeft = value;
-    }
-    get [dartx.paddingRight]() {
-      return this[_paddingRight];
-    }
-    set [dartx.paddingRight](value) {
-      this[_paddingRight] = value == null ? '' : value;
-    }
-    get [_paddingRight]() {
-      return this.paddingRight;
-    }
-    set [_paddingRight](value) {
-      this.paddingRight = value;
-    }
-    get [dartx.paddingTop]() {
-      return this[_paddingTop];
-    }
-    set [dartx.paddingTop](value) {
-      this[_paddingTop] = value == null ? '' : value;
-    }
-    get [_paddingTop]() {
-      return this.paddingTop;
-    }
-    set [_paddingTop](value) {
-      this.paddingTop = value;
-    }
-    get [dartx.pageBreakAfter]() {
-      return this[_pageBreakAfter];
-    }
-    set [dartx.pageBreakAfter](value) {
-      this[_pageBreakAfter] = value == null ? '' : value;
-    }
-    get [_pageBreakAfter]() {
-      return this.pageBreakAfter;
-    }
-    set [_pageBreakAfter](value) {
-      this.pageBreakAfter = value;
-    }
-    get [dartx.pageBreakBefore]() {
-      return this[_pageBreakBefore];
-    }
-    set [dartx.pageBreakBefore](value) {
-      this[_pageBreakBefore] = value == null ? '' : value;
-    }
-    get [_pageBreakBefore]() {
-      return this.pageBreakBefore;
-    }
-    set [_pageBreakBefore](value) {
-      this.pageBreakBefore = value;
-    }
-    get [dartx.pageBreakInside]() {
-      return this[_pageBreakInside];
-    }
-    set [dartx.pageBreakInside](value) {
-      this[_pageBreakInside] = value == null ? '' : value;
-    }
-    get [_pageBreakInside]() {
-      return this.pageBreakInside;
-    }
-    set [_pageBreakInside](value) {
-      this.pageBreakInside = value;
-    }
-    get [dartx.position]() {
-      return this[_position$1];
-    }
-    set [dartx.position](value) {
-      this[_position$1] = value == null ? '' : value;
-    }
-    get [_position$1]() {
-      return this.position;
-    }
-    set [_position$1](value) {
-      this.position = value;
-    }
-    get [dartx.quotes]() {
-      return this[_quotes];
-    }
-    set [dartx.quotes](value) {
-      this[_quotes] = value == null ? '' : value;
-    }
-    get [_quotes]() {
-      return this.quotes;
-    }
-    set [_quotes](value) {
-      this.quotes = value;
-    }
-    get [dartx.right]() {
-      return this[_right];
-    }
-    set [dartx.right](value) {
-      this[_right] = value == null ? '' : value;
-    }
-    get [_right]() {
-      return this.right;
-    }
-    set [_right](value) {
-      this.right = value;
-    }
-    get [dartx.tableLayout]() {
-      return this[_tableLayout];
-    }
-    set [dartx.tableLayout](value) {
-      this[_tableLayout] = value == null ? '' : value;
-    }
-    get [_tableLayout]() {
-      return this.tableLayout;
-    }
-    set [_tableLayout](value) {
-      this.tableLayout = value;
-    }
-    get [dartx.textAlign]() {
-      return this[_textAlign];
-    }
-    set [dartx.textAlign](value) {
-      this[_textAlign] = value == null ? '' : value;
-    }
-    get [_textAlign]() {
-      return this.textAlign;
-    }
-    set [_textAlign](value) {
-      this.textAlign = value;
-    }
-    get [dartx.textDecoration]() {
-      return this[_textDecoration];
-    }
-    set [dartx.textDecoration](value) {
-      this[_textDecoration] = value == null ? '' : value;
-    }
-    get [_textDecoration]() {
-      return this.textDecoration;
-    }
-    set [_textDecoration](value) {
-      this.textDecoration = value;
-    }
-    get [dartx.textIndent]() {
-      return this[_textIndent];
-    }
-    set [dartx.textIndent](value) {
-      this[_textIndent] = value == null ? '' : value;
-    }
-    get [_textIndent]() {
-      return this.textIndent;
-    }
-    set [_textIndent](value) {
-      this.textIndent = value;
-    }
-    get [dartx.textTransform]() {
-      return this[_textTransform];
-    }
-    set [dartx.textTransform](value) {
-      this[_textTransform] = value == null ? '' : value;
-    }
-    get [_textTransform]() {
-      return this.textTransform;
-    }
-    set [_textTransform](value) {
-      this.textTransform = value;
-    }
-    get [dartx.top]() {
-      return this[_top];
-    }
-    set [dartx.top](value) {
-      this[_top] = value == null ? '' : value;
-    }
-    get [_top]() {
-      return this.top;
-    }
-    set [_top](value) {
-      this.top = value;
-    }
-    get [dartx.unicodeBidi]() {
-      return this[_unicodeBidi];
-    }
-    set [dartx.unicodeBidi](value) {
-      this[_unicodeBidi] = value == null ? '' : value;
-    }
-    get [_unicodeBidi]() {
-      return this.unicodeBidi;
-    }
-    set [_unicodeBidi](value) {
-      this.unicodeBidi = value;
-    }
-    get [dartx.verticalAlign]() {
-      return this[_verticalAlign];
-    }
-    set [dartx.verticalAlign](value) {
-      this[_verticalAlign] = value == null ? '' : value;
-    }
-    get [_verticalAlign]() {
-      return this.verticalAlign;
-    }
-    set [_verticalAlign](value) {
-      this.verticalAlign = value;
-    }
-    get [dartx.visibility]() {
-      return this[_visibility];
-    }
-    set [dartx.visibility](value) {
-      this[_visibility] = value == null ? '' : value;
-    }
-    get [_visibility]() {
-      return this.visibility;
-    }
-    set [_visibility](value) {
-      this.visibility = value;
-    }
-    get [dartx.whiteSpace]() {
-      return this[_whiteSpace];
-    }
-    set [dartx.whiteSpace](value) {
-      this[_whiteSpace] = value == null ? '' : value;
-    }
-    get [_whiteSpace]() {
-      return this.whiteSpace;
-    }
-    set [_whiteSpace](value) {
-      this.whiteSpace = value;
-    }
-    get [dartx.width]() {
-      return this[_width$];
-    }
-    set [dartx.width](value) {
-      this[_width$] = value == null ? '' : value;
-    }
-    get [_width$]() {
-      return this.width;
-    }
-    set [_width$](value) {
-      this.width = value;
-    }
-    get [dartx.wordSpacing]() {
-      return this[_wordSpacing];
-    }
-    set [dartx.wordSpacing](value) {
-      this[_wordSpacing] = value == null ? '' : value;
-    }
-    get [_wordSpacing]() {
-      return this.wordSpacing;
-    }
-    set [_wordSpacing](value) {
-      this.wordSpacing = value;
-    }
-    get [dartx.zIndex]() {
-      return this[_zIndex];
-    }
-    set [dartx.zIndex](value) {
-      this[_zIndex] = value == null ? '' : value;
-    }
-    get [_zIndex]() {
-      return this.zIndex;
-    }
-    set [_zIndex](value) {
-      this.zIndex = value;
-    }
-  };
-  dart.setSignature(html$.CssStyleDeclaration, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.CssStyleDeclaration, []),
-      css: dart.definiteFunctionType(html$.CssStyleDeclaration, [core.String]),
-      _: dart.definiteFunctionType(html$.CssStyleDeclaration, [])
-    }),
-    fields: () => ({
-      [dartx.cssText]: core.String,
-      [dartx.length]: core.int,
-      [dartx.parentRule]: html$.CssRule,
-      [_background]: core.String,
-      [_backgroundAttachment]: core.String,
-      [_backgroundColor]: core.String,
-      [_backgroundImage]: core.String,
-      [_backgroundPosition]: core.String,
-      [_backgroundRepeat]: core.String,
-      [_border]: core.String,
-      [_borderBottom]: core.String,
-      [_borderBottomColor]: core.String,
-      [_borderBottomStyle]: core.String,
-      [_borderBottomWidth]: core.String,
-      [_borderCollapse]: core.String,
-      [_borderColor]: core.String,
-      [_borderLeft]: core.String,
-      [_borderLeftColor]: core.String,
-      [_borderLeftStyle]: core.String,
-      [_borderLeftWidth]: core.String,
-      [_borderRight]: core.String,
-      [_borderRightColor]: core.String,
-      [_borderRightStyle]: core.String,
-      [_borderRightWidth]: core.String,
-      [_borderSpacing]: core.String,
-      [_borderStyle]: core.String,
-      [_borderTop]: core.String,
-      [_borderTopColor]: core.String,
-      [_borderTopStyle]: core.String,
-      [_borderTopWidth]: core.String,
-      [_borderWidth]: core.String,
-      [_bottom]: core.String,
-      [_captionSide]: core.String,
-      [_clear$1]: core.String,
-      [_clip]: core.String,
-      [_color]: core.String,
-      [_content]: core.String,
-      [_cursor]: core.String,
-      [_direction]: core.String,
-      [_display]: core.String,
-      [_emptyCells]: core.String,
-      [_font]: core.String,
-      [_fontFamily]: core.String,
-      [_fontSize]: core.String,
-      [_fontStyle]: core.String,
-      [_fontVariant]: core.String,
-      [_fontWeight]: core.String,
-      [_height$]: core.String,
-      [_left]: core.String,
-      [_letterSpacing]: core.String,
-      [_lineHeight]: core.String,
-      [_listStyle]: core.String,
-      [_listStyleImage]: core.String,
-      [_listStylePosition]: core.String,
-      [_listStyleType]: core.String,
-      [_margin]: core.String,
-      [_marginBottom]: core.String,
-      [_marginLeft]: core.String,
-      [_marginRight]: core.String,
-      [_marginTop]: core.String,
-      [_maxHeight]: core.String,
-      [_maxWidth]: core.String,
-      [_minHeight]: core.String,
-      [_minWidth]: core.String,
-      [_outline]: core.String,
-      [_outlineColor]: core.String,
-      [_outlineStyle]: core.String,
-      [_outlineWidth]: core.String,
-      [_overflow]: core.String,
-      [_padding]: core.String,
-      [_paddingBottom]: core.String,
-      [_paddingLeft]: core.String,
-      [_paddingRight]: core.String,
-      [_paddingTop]: core.String,
-      [_pageBreakAfter]: core.String,
-      [_pageBreakBefore]: core.String,
-      [_pageBreakInside]: core.String,
-      [_position$1]: core.String,
-      [_quotes]: core.String,
-      [_right]: core.String,
-      [_tableLayout]: core.String,
-      [_textAlign]: core.String,
-      [_textDecoration]: core.String,
-      [_textIndent]: core.String,
-      [_textTransform]: core.String,
-      [_top]: core.String,
-      [_unicodeBidi]: core.String,
-      [_verticalAlign]: core.String,
-      [_visibility]: core.String,
-      [_whiteSpace]: core.String,
-      [_width$]: core.String,
-      [_wordSpacing]: core.String,
-      [_zIndex]: core.String
-    }),
-    methods: () => ({
-      [dartx.getPropertyValue]: dart.definiteFunctionType(core.String, [core.String]),
-      [_getPropertyValueHelper]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.supportsProperty]: dart.definiteFunctionType(core.bool, [core.String]),
-      [_supportsProperty]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.setProperty]: dart.definiteFunctionType(dart.void, [core.String, core.String], [core.String]),
-      [_browserPropertyName]: dart.definiteFunctionType(core.String, [core.String]),
-      [_setPropertyHelper]: dart.definiteFunctionType(dart.void, [core.String, core.String], [core.String]),
-      [dartx.getPropertyPriority]: dart.definiteFunctionType(core.String, [core.String]),
-      [_getPropertyValue]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.removeProperty]: dart.definiteFunctionType(core.String, [core.String])
-    }),
-    sfields: () => ({_propertyCache: dart.dynamic}),
-    sgetters: () => ({supportsTransitions: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _readCache: dart.definiteFunctionType(core.String, [core.String]),
-      _writeCache: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      _camelCase: dart.definiteFunctionType(core.String, [core.String])
-    }),
-    names: ['_readCache', '_writeCache', '_camelCase']
-  });
-  dart.defineLazy(html$.CssStyleDeclaration, {
-    get _propertyCache() {
-      return {};
-    }
-  });
-  dart.registerExtension(dart.global.CSSStyleDeclaration, html$.CssStyleDeclaration);
-  dart.registerExtension(dart.global.MSStyleCSSProperties, html$.CssStyleDeclaration);
-  dart.registerExtension(dart.global.CSS2Properties, html$.CssStyleDeclaration);
-  const _elementIterable = Symbol('_elementIterable');
-  const _elementCssStyleDeclarationSetIterable = Symbol('_elementCssStyleDeclarationSetIterable');
-  const _setAll = Symbol('_setAll');
-  html$._CssStyleDeclarationSet = class _CssStyleDeclarationSet extends dart.mixin(core.Object, html$.CssStyleDeclarationBase) {
-    new(elementIterable) {
-      this[_elementIterable] = elementIterable;
-      this[_elementCssStyleDeclarationSetIterable] = null;
-      this[_elementCssStyleDeclarationSetIterable] = core.List.from(this[_elementIterable])[dartx.map](html$.CssStyleDeclaration)(dart.fn(e => html$.CssStyleDeclaration._check(dart.dload(e, 'style')), dynamicToCssStyleDeclaration()));
-    }
-    getPropertyValue(propertyName) {
-      return this[_elementCssStyleDeclarationSetIterable][dartx.first][dartx.getPropertyValue](propertyName);
-    }
-    setProperty(propertyName, value, priority) {
-      if (priority === void 0) priority = null;
-      this[_elementCssStyleDeclarationSetIterable][dartx.forEach](dart.fn(e => e[dartx.setProperty](propertyName, value, priority), CssStyleDeclarationTovoid()));
-    }
-    [_setAll](propertyName, value) {
-      value = value == null ? '' : value;
-      for (let element of this[_elementIterable]) {
-        element.style[propertyName] = value;
-      }
-    }
-    set background(value) {
-      this[_setAll]('background', value);
-    }
-    get background() {
-      return super.background;
-    }
-    set backgroundAttachment(value) {
-      this[_setAll]('backgroundAttachment', value);
-    }
-    get backgroundAttachment() {
-      return super.backgroundAttachment;
-    }
-    set backgroundColor(value) {
-      this[_setAll]('backgroundColor', value);
-    }
-    get backgroundColor() {
-      return super.backgroundColor;
-    }
-    set backgroundImage(value) {
-      this[_setAll]('backgroundImage', value);
-    }
-    get backgroundImage() {
-      return super.backgroundImage;
-    }
-    set backgroundPosition(value) {
-      this[_setAll]('backgroundPosition', value);
-    }
-    get backgroundPosition() {
-      return super.backgroundPosition;
-    }
-    set backgroundRepeat(value) {
-      this[_setAll]('backgroundRepeat', value);
-    }
-    get backgroundRepeat() {
-      return super.backgroundRepeat;
-    }
-    set border(value) {
-      this[_setAll]('border', value);
-    }
-    get border() {
-      return super.border;
-    }
-    set borderBottom(value) {
-      this[_setAll]('borderBottom', value);
-    }
-    get borderBottom() {
-      return super.borderBottom;
-    }
-    set borderBottomColor(value) {
-      this[_setAll]('borderBottomColor', value);
-    }
-    get borderBottomColor() {
-      return super.borderBottomColor;
-    }
-    set borderBottomStyle(value) {
-      this[_setAll]('borderBottomStyle', value);
-    }
-    get borderBottomStyle() {
-      return super.borderBottomStyle;
-    }
-    set borderBottomWidth(value) {
-      this[_setAll]('borderBottomWidth', value);
-    }
-    get borderBottomWidth() {
-      return super.borderBottomWidth;
-    }
-    set borderCollapse(value) {
-      this[_setAll]('borderCollapse', value);
-    }
-    get borderCollapse() {
-      return super.borderCollapse;
-    }
-    set borderColor(value) {
-      this[_setAll]('borderColor', value);
-    }
-    get borderColor() {
-      return super.borderColor;
-    }
-    set borderLeft(value) {
-      this[_setAll]('borderLeft', value);
-    }
-    get borderLeft() {
-      return super.borderLeft;
-    }
-    set borderLeftColor(value) {
-      this[_setAll]('borderLeftColor', value);
-    }
-    get borderLeftColor() {
-      return super.borderLeftColor;
-    }
-    set borderLeftStyle(value) {
-      this[_setAll]('borderLeftStyle', value);
-    }
-    get borderLeftStyle() {
-      return super.borderLeftStyle;
-    }
-    set borderLeftWidth(value) {
-      this[_setAll]('borderLeftWidth', value);
-    }
-    get borderLeftWidth() {
-      return super.borderLeftWidth;
-    }
-    set borderRight(value) {
-      this[_setAll]('borderRight', value);
-    }
-    get borderRight() {
-      return super.borderRight;
-    }
-    set borderRightColor(value) {
-      this[_setAll]('borderRightColor', value);
-    }
-    get borderRightColor() {
-      return super.borderRightColor;
-    }
-    set borderRightStyle(value) {
-      this[_setAll]('borderRightStyle', value);
-    }
-    get borderRightStyle() {
-      return super.borderRightStyle;
-    }
-    set borderRightWidth(value) {
-      this[_setAll]('borderRightWidth', value);
-    }
-    get borderRightWidth() {
-      return super.borderRightWidth;
-    }
-    set borderSpacing(value) {
-      this[_setAll]('borderSpacing', value);
-    }
-    get borderSpacing() {
-      return super.borderSpacing;
-    }
-    set borderStyle(value) {
-      this[_setAll]('borderStyle', value);
-    }
-    get borderStyle() {
-      return super.borderStyle;
-    }
-    set borderTop(value) {
-      this[_setAll]('borderTop', value);
-    }
-    get borderTop() {
-      return super.borderTop;
-    }
-    set borderTopColor(value) {
-      this[_setAll]('borderTopColor', value);
-    }
-    get borderTopColor() {
-      return super.borderTopColor;
-    }
-    set borderTopStyle(value) {
-      this[_setAll]('borderTopStyle', value);
-    }
-    get borderTopStyle() {
-      return super.borderTopStyle;
-    }
-    set borderTopWidth(value) {
-      this[_setAll]('borderTopWidth', value);
-    }
-    get borderTopWidth() {
-      return super.borderTopWidth;
-    }
-    set borderWidth(value) {
-      this[_setAll]('borderWidth', value);
-    }
-    get borderWidth() {
-      return super.borderWidth;
-    }
-    set bottom(value) {
-      this[_setAll]('bottom', value);
-    }
-    get bottom() {
-      return super.bottom;
-    }
-    set captionSide(value) {
-      this[_setAll]('captionSide', value);
-    }
-    get captionSide() {
-      return super.captionSide;
-    }
-    set clear(value) {
-      this[_setAll]('clear', value);
-    }
-    get clear() {
-      return super.clear;
-    }
-    set clip(value) {
-      this[_setAll]('clip', value);
-    }
-    get clip() {
-      return super.clip;
-    }
-    set color(value) {
-      this[_setAll]('color', value);
-    }
-    get color() {
-      return super.color;
-    }
-    set content(value) {
-      this[_setAll]('content', value);
-    }
-    get content() {
-      return super.content;
-    }
-    set cursor(value) {
-      this[_setAll]('cursor', value);
-    }
-    get cursor() {
-      return super.cursor;
-    }
-    set direction(value) {
-      this[_setAll]('direction', value);
-    }
-    get direction() {
-      return super.direction;
-    }
-    set display(value) {
-      this[_setAll]('display', value);
-    }
-    get display() {
-      return super.display;
-    }
-    set emptyCells(value) {
-      this[_setAll]('emptyCells', value);
-    }
-    get emptyCells() {
-      return super.emptyCells;
-    }
-    set font(value) {
-      this[_setAll]('font', value);
-    }
-    get font() {
-      return super.font;
-    }
-    set fontFamily(value) {
-      this[_setAll]('fontFamily', value);
-    }
-    get fontFamily() {
-      return super.fontFamily;
-    }
-    set fontSize(value) {
-      this[_setAll]('fontSize', value);
-    }
-    get fontSize() {
-      return super.fontSize;
-    }
-    set fontStyle(value) {
-      this[_setAll]('fontStyle', value);
-    }
-    get fontStyle() {
-      return super.fontStyle;
-    }
-    set fontVariant(value) {
-      this[_setAll]('fontVariant', value);
-    }
-    get fontVariant() {
-      return super.fontVariant;
-    }
-    set fontWeight(value) {
-      this[_setAll]('fontWeight', value);
-    }
-    get fontWeight() {
-      return super.fontWeight;
-    }
-    set height(value) {
-      this[_setAll]('height', value);
-    }
-    get height() {
-      return super.height;
-    }
-    set left(value) {
-      this[_setAll]('left', value);
-    }
-    get left() {
-      return super.left;
-    }
-    set letterSpacing(value) {
-      this[_setAll]('letterSpacing', value);
-    }
-    get letterSpacing() {
-      return super.letterSpacing;
-    }
-    set lineHeight(value) {
-      this[_setAll]('lineHeight', value);
-    }
-    get lineHeight() {
-      return super.lineHeight;
-    }
-    set listStyle(value) {
-      this[_setAll]('listStyle', value);
-    }
-    get listStyle() {
-      return super.listStyle;
-    }
-    set listStyleImage(value) {
-      this[_setAll]('listStyleImage', value);
-    }
-    get listStyleImage() {
-      return super.listStyleImage;
-    }
-    set listStylePosition(value) {
-      this[_setAll]('listStylePosition', value);
-    }
-    get listStylePosition() {
-      return super.listStylePosition;
-    }
-    set listStyleType(value) {
-      this[_setAll]('listStyleType', value);
-    }
-    get listStyleType() {
-      return super.listStyleType;
-    }
-    set margin(value) {
-      this[_setAll]('margin', value);
-    }
-    get margin() {
-      return super.margin;
-    }
-    set marginBottom(value) {
-      this[_setAll]('marginBottom', value);
-    }
-    get marginBottom() {
-      return super.marginBottom;
-    }
-    set marginLeft(value) {
-      this[_setAll]('marginLeft', value);
-    }
-    get marginLeft() {
-      return super.marginLeft;
-    }
-    set marginRight(value) {
-      this[_setAll]('marginRight', value);
-    }
-    get marginRight() {
-      return super.marginRight;
-    }
-    set marginTop(value) {
-      this[_setAll]('marginTop', value);
-    }
-    get marginTop() {
-      return super.marginTop;
-    }
-    set maxHeight(value) {
-      this[_setAll]('maxHeight', value);
-    }
-    get maxHeight() {
-      return super.maxHeight;
-    }
-    set maxWidth(value) {
-      this[_setAll]('maxWidth', value);
-    }
-    get maxWidth() {
-      return super.maxWidth;
-    }
-    set minHeight(value) {
-      this[_setAll]('minHeight', value);
-    }
-    get minHeight() {
-      return super.minHeight;
-    }
-    set minWidth(value) {
-      this[_setAll]('minWidth', value);
-    }
-    get minWidth() {
-      return super.minWidth;
-    }
-    set outline(value) {
-      this[_setAll]('outline', value);
-    }
-    get outline() {
-      return super.outline;
-    }
-    set outlineColor(value) {
-      this[_setAll]('outlineColor', value);
-    }
-    get outlineColor() {
-      return super.outlineColor;
-    }
-    set outlineStyle(value) {
-      this[_setAll]('outlineStyle', value);
-    }
-    get outlineStyle() {
-      return super.outlineStyle;
-    }
-    set outlineWidth(value) {
-      this[_setAll]('outlineWidth', value);
-    }
-    get outlineWidth() {
-      return super.outlineWidth;
-    }
-    set overflow(value) {
-      this[_setAll]('overflow', value);
-    }
-    get overflow() {
-      return super.overflow;
-    }
-    set padding(value) {
-      this[_setAll]('padding', value);
-    }
-    get padding() {
-      return super.padding;
-    }
-    set paddingBottom(value) {
-      this[_setAll]('paddingBottom', value);
-    }
-    get paddingBottom() {
-      return super.paddingBottom;
-    }
-    set paddingLeft(value) {
-      this[_setAll]('paddingLeft', value);
-    }
-    get paddingLeft() {
-      return super.paddingLeft;
-    }
-    set paddingRight(value) {
-      this[_setAll]('paddingRight', value);
-    }
-    get paddingRight() {
-      return super.paddingRight;
-    }
-    set paddingTop(value) {
-      this[_setAll]('paddingTop', value);
-    }
-    get paddingTop() {
-      return super.paddingTop;
-    }
-    set pageBreakAfter(value) {
-      this[_setAll]('pageBreakAfter', value);
-    }
-    get pageBreakAfter() {
-      return super.pageBreakAfter;
-    }
-    set pageBreakBefore(value) {
-      this[_setAll]('pageBreakBefore', value);
-    }
-    get pageBreakBefore() {
-      return super.pageBreakBefore;
-    }
-    set pageBreakInside(value) {
-      this[_setAll]('pageBreakInside', value);
-    }
-    get pageBreakInside() {
-      return super.pageBreakInside;
-    }
-    set position(value) {
-      this[_setAll]('position', value);
-    }
-    get position() {
-      return super.position;
-    }
-    set quotes(value) {
-      this[_setAll]('quotes', value);
-    }
-    get quotes() {
-      return super.quotes;
-    }
-    set right(value) {
-      this[_setAll]('right', value);
-    }
-    get right() {
-      return super.right;
-    }
-    set tableLayout(value) {
-      this[_setAll]('tableLayout', value);
-    }
-    get tableLayout() {
-      return super.tableLayout;
-    }
-    set textAlign(value) {
-      this[_setAll]('textAlign', value);
-    }
-    get textAlign() {
-      return super.textAlign;
-    }
-    set textDecoration(value) {
-      this[_setAll]('textDecoration', value);
-    }
-    get textDecoration() {
-      return super.textDecoration;
-    }
-    set textIndent(value) {
-      this[_setAll]('textIndent', value);
-    }
-    get textIndent() {
-      return super.textIndent;
-    }
-    set textTransform(value) {
-      this[_setAll]('textTransform', value);
-    }
-    get textTransform() {
-      return super.textTransform;
-    }
-    set top(value) {
-      this[_setAll]('top', value);
-    }
-    get top() {
-      return super.top;
-    }
-    set unicodeBidi(value) {
-      this[_setAll]('unicodeBidi', value);
-    }
-    get unicodeBidi() {
-      return super.unicodeBidi;
-    }
-    set verticalAlign(value) {
-      this[_setAll]('verticalAlign', value);
-    }
-    get verticalAlign() {
-      return super.verticalAlign;
-    }
-    set visibility(value) {
-      this[_setAll]('visibility', value);
-    }
-    get visibility() {
-      return super.visibility;
-    }
-    set whiteSpace(value) {
-      this[_setAll]('whiteSpace', value);
-    }
-    get whiteSpace() {
-      return super.whiteSpace;
-    }
-    set width(value) {
-      this[_setAll]('width', value);
-    }
-    get width() {
-      return super.width;
-    }
-    set wordSpacing(value) {
-      this[_setAll]('wordSpacing', value);
-    }
-    get wordSpacing() {
-      return super.wordSpacing;
-    }
-    set zIndex(value) {
-      this[_setAll]('zIndex', value);
-    }
-    get zIndex() {
-      return super.zIndex;
-    }
-  };
-  dart.setSignature(html$._CssStyleDeclarationSet, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._CssStyleDeclarationSet, [IterableOfElement()])}),
-    fields: () => ({
-      [_elementIterable]: IterableOfElement(),
-      [_elementCssStyleDeclarationSetIterable]: IterableOfCssStyleDeclaration()
-    }),
-    methods: () => ({
-      getPropertyValue: dart.definiteFunctionType(core.String, [core.String]),
-      setProperty: dart.definiteFunctionType(dart.void, [core.String, core.String], [core.String]),
-      [_setAll]: dart.definiteFunctionType(dart.void, [core.String, core.String])
-    })
-  });
-  dart.defineExtensionMembers(html$._CssStyleDeclarationSet, [
-    'getPropertyValue',
-    'setProperty',
-    'background',
-    'backgroundAttachment',
-    'backgroundColor',
-    'backgroundImage',
-    'backgroundPosition',
-    'backgroundRepeat',
-    'border',
-    'borderBottom',
-    'borderBottomColor',
-    'borderBottomStyle',
-    'borderBottomWidth',
-    'borderCollapse',
-    'borderColor',
-    'borderLeft',
-    'borderLeftColor',
-    'borderLeftStyle',
-    'borderLeftWidth',
-    'borderRight',
-    'borderRightColor',
-    'borderRightStyle',
-    'borderRightWidth',
-    'borderSpacing',
-    'borderStyle',
-    'borderTop',
-    'borderTopColor',
-    'borderTopStyle',
-    'borderTopWidth',
-    'borderWidth',
-    'bottom',
-    'captionSide',
-    'clear',
-    'clip',
-    'color',
-    'content',
-    'cursor',
-    'direction',
-    'display',
-    'emptyCells',
-    'font',
-    'fontFamily',
-    'fontSize',
-    'fontStyle',
-    'fontVariant',
-    'fontWeight',
-    'height',
-    'left',
-    'letterSpacing',
-    'lineHeight',
-    'listStyle',
-    'listStyleImage',
-    'listStylePosition',
-    'listStyleType',
-    'margin',
-    'marginBottom',
-    'marginLeft',
-    'marginRight',
-    'marginTop',
-    'maxHeight',
-    'maxWidth',
-    'minHeight',
-    'minWidth',
-    'outline',
-    'outlineColor',
-    'outlineStyle',
-    'outlineWidth',
-    'overflow',
-    'padding',
-    'paddingBottom',
-    'paddingLeft',
-    'paddingRight',
-    'paddingTop',
-    'pageBreakAfter',
-    'pageBreakBefore',
-    'pageBreakInside',
-    'position',
-    'quotes',
-    'right',
-    'tableLayout',
-    'textAlign',
-    'textDecoration',
-    'textIndent',
-    'textTransform',
-    'top',
-    'unicodeBidi',
-    'verticalAlign',
-    'visibility',
-    'whiteSpace',
-    'width',
-    'wordSpacing',
-    'zIndex'
-  ]);
-  dart.defineExtensionNames([
-    'selectorText',
-    'style'
-  ]);
-  html$.CssStyleRule = class CssStyleRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.selectorText]() {
-      return this.selectorText;
-    }
-    set [dartx.selectorText](value) {
-      this.selectorText = value;
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-  };
-  dart.setSignature(html$.CssStyleRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssStyleRule, [])}),
-    fields: () => ({
-      [dartx.selectorText]: core.String,
-      [dartx.style]: html$.CssStyleDeclaration
-    })
-  });
-  dart.registerExtension(dart.global.CSSStyleRule, html$.CssStyleRule);
-  dart.defineExtensionNames([
-    'disabled',
-    'href',
-    'media',
-    'ownerNode',
-    'parentStyleSheet',
-    'title',
-    'type'
-  ]);
-  html$.StyleSheet = class StyleSheet extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    get [dartx.ownerNode]() {
-      return this.ownerNode;
-    }
-    get [dartx.parentStyleSheet]() {
-      return this.parentStyleSheet;
-    }
-    get [dartx.title]() {
-      return this.title;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.StyleSheet, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.StyleSheet, [])}),
-    fields: () => ({
-      [dartx.disabled]: core.bool,
-      [dartx.href]: core.String,
-      [dartx.media]: html$.MediaList,
-      [dartx.ownerNode]: html$.Node,
-      [dartx.parentStyleSheet]: html$.StyleSheet,
-      [dartx.title]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.StyleSheet, html$.StyleSheet);
-  dart.defineExtensionNames([
-    'addRule',
-    'deleteRule',
-    'insertRule',
-    'removeRule',
-    'cssRules',
-    'ownerRule',
-    'rules'
-  ]);
-  html$.CssStyleSheet = class CssStyleSheet extends html$.StyleSheet {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.cssRules]() {
-      return this.cssRules;
-    }
-    get [dartx.ownerRule]() {
-      return this.ownerRule;
-    }
-    get [dartx.rules]() {
-      return this.rules;
-    }
-    [dartx.addRule](...args) {
-      return this.addRule.apply(this, args);
-    }
-    [dartx.deleteRule](...args) {
-      return this.deleteRule.apply(this, args);
-    }
-    [dartx.insertRule](...args) {
-      return this.insertRule.apply(this, args);
-    }
-    [dartx.removeRule](...args) {
-      return this.removeRule.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CssStyleSheet, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssStyleSheet, [])}),
-    fields: () => ({
-      [dartx.cssRules]: ListOfCssRule(),
-      [dartx.ownerRule]: html$.CssRule,
-      [dartx.rules]: ListOfCssRule()
-    }),
-    methods: () => ({
-      [dartx.addRule]: dart.definiteFunctionType(core.int, [core.String, core.String], [core.int]),
-      [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String], [core.int]),
-      [dartx.removeRule]: dart.definiteFunctionType(dart.void, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.CSSStyleSheet, html$.CssStyleSheet);
-  dart.defineExtensionNames([
-    'deleteRule',
-    'insertRule',
-    'conditionText',
-    'cssRules'
-  ]);
-  html$.CssSupportsRule = class CssSupportsRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.conditionText]() {
-      return this.conditionText;
-    }
-    get [dartx.cssRules]() {
-      return this.cssRules;
-    }
-    [dartx.deleteRule](...args) {
-      return this.deleteRule.apply(this, args);
-    }
-    [dartx.insertRule](...args) {
-      return this.insertRule.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CssSupportsRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssSupportsRule, [])}),
-    fields: () => ({
-      [dartx.conditionText]: core.String,
-      [dartx.cssRules]: ListOfCssRule()
-    }),
-    methods: () => ({
-      [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.CSSSupportsRule, html$.CssSupportsRule);
-  dart.defineExtensionNames([
-    'style'
-  ]);
-  html$.CssViewportRule = class CssViewportRule extends html$.CssRule {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-  };
-  dart.setSignature(html$.CssViewportRule, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.CssViewportRule, [])}),
-    fields: () => ({[dartx.style]: html$.CssStyleDeclaration})
-  });
-  dart.registerExtension(dart.global.CSSViewportRule, html$.CssViewportRule);
-  const _dartDetail = Symbol('_dartDetail');
-  const _initCustomEvent = Symbol('_initCustomEvent');
-  const _detail = Symbol('_detail');
-  const _get__detail = Symbol('_get__detail');
-  dart.defineExtensionNames([
-    'detail'
-  ]);
-  html$.CustomEvent = class CustomEvent extends html$.Event {
-    get [_dartDetail]() {
-      return this._dartDetail;
-    }
-    set [_dartDetail](value) {
-      this._dartDetail = value;
-    }
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let detail = opts && 'detail' in opts ? opts.detail : null;
-      let e = html$.CustomEvent._check(html$.document[_createEvent]('CustomEvent'));
-      e[_dartDetail] = detail;
-      if (core.List.is(detail) || core.Map.is(detail) || typeof detail == 'string' || typeof detail == 'number') {
-        try {
-          detail = html_common.convertDartToNative_SerializedScriptValue(detail);
-          e[_initCustomEvent](type, canBubble, cancelable, detail);
-        } catch (_) {
-          e[_initCustomEvent](type, canBubble, cancelable, null);
-        }
-
-      } else {
-        e[_initCustomEvent](type, canBubble, cancelable, null);
-      }
-      return e;
-    }
-    get [dartx.detail]() {
-      if (this[_dartDetail] != null) {
-        return this[_dartDetail];
-      }
-      return this[_detail];
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.CustomEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.CustomEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.CustomEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.CustomEvent(type);
-    }
-    get [_detail]() {
-      return html_common.convertNativeToDart_SerializedScriptValue(this[_get__detail]);
-    }
-    get [_get__detail]() {
-      return this.detail;
-    }
-    [_initCustomEvent](...args) {
-      return this.initCustomEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.CustomEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.CustomEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, detail: core.Object}),
-      _: dart.definiteFunctionType(html$.CustomEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [_dartDetail]: dart.dynamic,
-      [_get__detail]: dart.dynamic
-    }),
-    getters: () => ({
-      [dartx.detail]: dart.definiteFunctionType(dart.dynamic, []),
-      [_detail]: dart.definiteFunctionType(dart.dynamic, [])
-    }),
-    methods: () => ({[_initCustomEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.CustomEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.CustomEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.CustomEvent, html$.CustomEvent);
-  html$.DListElement = class DListElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.DListElement._check(html$.document[dartx.createElement]("dl"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.DListElement, 'created');
-  dart.setSignature(html$.DListElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DListElement, []),
-      new: dart.definiteFunctionType(html$.DListElement, []),
-      created: dart.definiteFunctionType(html$.DListElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLDListElement, html$.DListElement);
-  dart.defineExtensionNames([
-    'options'
-  ]);
-  html$.DataListElement = class DataListElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.DataListElement._check(html$.document[dartx.createElement]("datalist"));
-    }
-    created() {
-      this[dartx.options] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('datalist');
-    }
-    get [dartx.options]() {
-      return this.options;
-    }
-  };
-  dart.defineNamedConstructor(html$.DataListElement, 'created');
-  dart.setSignature(html$.DataListElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DataListElement, []),
-      new: dart.definiteFunctionType(html$.DataListElement, []),
-      created: dart.definiteFunctionType(html$.DataListElement, [])
-    }),
-    fields: () => ({[dartx.options]: ListOfNode()}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLDataListElement, html$.DataListElement);
-  dart.defineExtensionNames([
-    'clearData',
-    'getData',
-    'setData',
-    'setDragImage',
-    'dropEffect',
-    'effectAllowed',
-    'files',
-    'items',
-    'types'
-  ]);
-  html$.DataTransfer = class DataTransfer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.dropEffect]() {
-      return this.dropEffect;
-    }
-    set [dartx.dropEffect](value) {
-      this.dropEffect = value;
-    }
-    get [dartx.effectAllowed]() {
-      return this.effectAllowed;
-    }
-    set [dartx.effectAllowed](value) {
-      this.effectAllowed = value;
-    }
-    get [dartx.files]() {
-      return this.files;
-    }
-    get [dartx.items]() {
-      return this.items;
-    }
-    get [dartx.types]() {
-      return this.types;
-    }
-    [dartx.clearData](...args) {
-      return this.clearData.apply(this, args);
-    }
-    [dartx.getData](...args) {
-      return this.getData.apply(this, args);
-    }
-    [dartx.setData](...args) {
-      return this.setData.apply(this, args);
-    }
-    [dartx.setDragImage](...args) {
-      return this.setDragImage.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DataTransfer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DataTransfer, [])}),
-    fields: () => ({
-      [dartx.dropEffect]: core.String,
-      [dartx.effectAllowed]: core.String,
-      [dartx.files]: ListOfFile(),
-      [dartx.items]: html$.DataTransferItemList,
-      [dartx.types]: ListOfString()
-    }),
-    methods: () => ({
-      [dartx.clearData]: dart.definiteFunctionType(dart.void, [], [core.String]),
-      [dartx.getData]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.setData]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.setDragImage]: dart.definiteFunctionType(dart.void, [html$.Element, core.int, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.DataTransfer, html$.DataTransfer);
-  const _getAsString = Symbol('_getAsString');
-  dart.defineExtensionNames([
-    'getAsFile',
-    'getAsString',
-    'getAsEntry',
-    'kind',
-    'type'
-  ]);
-  html$.DataTransferItem = class DataTransferItem extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.getAsFile](...args) {
-      return this.getAsFile.apply(this, args);
-    }
-    [_getAsString](...args) {
-      return this.getAsString.apply(this, args);
-    }
-    [dartx.getAsString]() {
-      let completer = CompleterOfString().new();
-      this[_getAsString](dart.fn(value => {
-        completer.complete(value);
-      }, StringToNull()));
-      return completer.future;
-    }
-    [dartx.getAsEntry](...args) {
-      return this.webkitGetAsEntry.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DataTransferItem, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DataTransferItem, [])}),
-    fields: () => ({
-      [dartx.kind]: core.String,
-      [dartx.type]: core.String
-    }),
-    methods: () => ({
-      [dartx.getAsFile]: dart.definiteFunctionType(html$.Blob, []),
-      [_getAsString]: dart.definiteFunctionType(dart.void, [html$._StringCallback]),
-      [dartx.getAsString]: dart.definiteFunctionType(async.Future$(core.String), []),
-      [dartx.getAsEntry]: dart.definiteFunctionType(html$.Entry, [])
-    })
-  });
-  dart.registerExtension(dart.global.DataTransferItem, html$.DataTransferItem);
-  dart.defineExtensionNames([
-    'add',
-    'addData',
-    'addFile',
-    'clear',
-    'item',
-    'remove',
-    '_get',
-    'length'
-  ]);
-  html$.DataTransferItemList = class DataTransferItemList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.add](...args) {
-      return this.add.apply(this, args);
-    }
-    [dartx.addData](...args) {
-      return this.add.apply(this, args);
-    }
-    [dartx.addFile](...args) {
-      return this.add.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.remove](...args) {
-      return this.remove.apply(this, args);
-    }
-    [dartx._get](index) {
-      return this[index];
-    }
-  };
-  dart.setSignature(html$.DataTransferItemList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DataTransferItemList, [])}),
-    fields: () => ({[dartx.length]: core.int}),
-    methods: () => ({
-      [dartx.add]: dart.definiteFunctionType(html$.DataTransferItem, [dart.dynamic], [core.String]),
-      [dartx.addData]: dart.definiteFunctionType(html$.DataTransferItem, [core.String, core.String]),
-      [dartx.addFile]: dart.definiteFunctionType(html$.DataTransferItem, [html$.File]),
-      [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-      [dartx.item]: dart.definiteFunctionType(html$.DataTransferItem, [core.int]),
-      [dartx.remove]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx._get]: dart.definiteFunctionType(html$.DataTransferItem, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.DataTransferItemList, html$.DataTransferItemList);
-  html$.DatabaseCallback = dart.typedef('DatabaseCallback', () => dart.functionType(dart.void, [web_sql.SqlDatabase]));
-  dart.defineExtensionNames([
-    'postMessage',
-    'onMessage'
-  ]);
-  html$.DedicatedWorkerGlobalScope = class DedicatedWorkerGlobalScope extends html$.WorkerGlobalScope {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.DedicatedWorkerGlobalScope.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.DedicatedWorkerGlobalScope, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DedicatedWorkerGlobalScope, [])}),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    }),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.DedicatedWorkerGlobalScope, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.DedicatedWorkerGlobalScope, html$.DedicatedWorkerGlobalScope);
-  dart.defineExtensionNames([
-    'session'
-  ]);
-  html$.DefaultSessionStartEvent = class DefaultSessionStartEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.DefaultSessionStartEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.DefaultSessionStartEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.DefaultSessionStartEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.DefaultSessionStartEvent(type);
-    }
-    get [dartx.session]() {
-      return this.session;
-    }
-  };
-  dart.setSignature(html$.DefaultSessionStartEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DefaultSessionStartEvent, []),
-      new: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.session]: html$.PresentationSession}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.DefaultSessionStartEvent, html$.DefaultSessionStartEvent);
-  dart.defineExtensionNames([
-    'queryUsageAndQuota',
-    'requestQuota'
-  ]);
-  html$.DeprecatedStorageInfo = class DeprecatedStorageInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.queryUsageAndQuota](...args) {
-      return this.queryUsageAndQuota.apply(this, args);
-    }
-    [dartx.requestQuota](...args) {
-      return this.requestQuota.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DeprecatedStorageInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DeprecatedStorageInfo, [])}),
-    methods: () => ({
-      [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [core.int], [html$.StorageUsageCallback, html$.StorageErrorCallback]),
-      [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html$.StorageQuotaCallback, html$.StorageErrorCallback])
-    }),
-    sfields: () => ({
-      PERSISTENT: core.int,
-      TEMPORARY: core.int
-    })
-  });
-  html$.DeprecatedStorageInfo.PERSISTENT = 1;
-  html$.DeprecatedStorageInfo.TEMPORARY = 0;
-  dart.registerExtension(dart.global.DeprecatedStorageInfo, html$.DeprecatedStorageInfo);
-  dart.defineExtensionNames([
-    'queryUsageAndQuota',
-    'requestQuota'
-  ]);
-  html$.DeprecatedStorageQuota = class DeprecatedStorageQuota extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.queryUsageAndQuota](...args) {
-      return this.queryUsageAndQuota.apply(this, args);
-    }
-    [dartx.requestQuota](...args) {
-      return this.requestQuota.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DeprecatedStorageQuota, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DeprecatedStorageQuota, [])}),
-    methods: () => ({
-      [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [html$.StorageUsageCallback], [html$.StorageErrorCallback]),
-      [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int], [html$.StorageQuotaCallback, html$.StorageErrorCallback])
-    })
-  });
-  dart.registerExtension(dart.global.DeprecatedStorageQuota, html$.DeprecatedStorageQuota);
-  dart.defineExtensionNames([
-    'open'
-  ]);
-  html$.DetailsElement = class DetailsElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.DetailsElement._check(html$.document[dartx.createElement]("details"));
-    }
-    created() {
-      this[dartx.open] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('details');
-    }
-    get [dartx.open]() {
-      return this.open;
-    }
-    set [dartx.open](value) {
-      this.open = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.DetailsElement, 'created');
-  dart.setSignature(html$.DetailsElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DetailsElement, []),
-      new: dart.definiteFunctionType(html$.DetailsElement, []),
-      created: dart.definiteFunctionType(html$.DetailsElement, [])
-    }),
-    fields: () => ({[dartx.open]: core.bool}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLDetailsElement, html$.DetailsElement);
-  dart.defineExtensionNames([
-    'x',
-    'y',
-    'z'
-  ]);
-  html$.DeviceAcceleration = class DeviceAcceleration extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.z]() {
-      return this.z;
-    }
-  };
-  dart.setSignature(html$.DeviceAcceleration, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DeviceAcceleration, [])}),
-    fields: () => ({
-      [dartx.x]: core.double,
-      [dartx.y]: core.double,
-      [dartx.z]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.DeviceAcceleration, html$.DeviceAcceleration);
-  dart.defineExtensionNames([
-    'value'
-  ]);
-  html$.DeviceLightEvent = class DeviceLightEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.DeviceLightEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.DeviceLightEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.DeviceLightEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.DeviceLightEvent(type);
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-  };
-  dart.setSignature(html$.DeviceLightEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DeviceLightEvent, []),
-      new: dart.definiteFunctionType(html$.DeviceLightEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.value]: core.double}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.DeviceLightEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.DeviceLightEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.DeviceLightEvent, html$.DeviceLightEvent);
-  dart.defineExtensionNames([
-    'initDeviceMotionEvent',
-    'acceleration',
-    'accelerationIncludingGravity',
-    'interval',
-    'rotationRate'
-  ]);
-  html$.DeviceMotionEvent = class DeviceMotionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.acceleration]() {
-      return this.acceleration;
-    }
-    get [dartx.accelerationIncludingGravity]() {
-      return this.accelerationIncludingGravity;
-    }
-    get [dartx.interval]() {
-      return this.interval;
-    }
-    get [dartx.rotationRate]() {
-      return this.rotationRate;
-    }
-    [dartx.initDeviceMotionEvent](...args) {
-      return this.initDeviceMotionEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DeviceMotionEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DeviceMotionEvent, [])}),
-    fields: () => ({
-      [dartx.acceleration]: html$.DeviceAcceleration,
-      [dartx.accelerationIncludingGravity]: html$.DeviceAcceleration,
-      [dartx.interval]: core.double,
-      [dartx.rotationRate]: html$.DeviceRotationRate
-    }),
-    methods: () => ({[dartx.initDeviceMotionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.DeviceAcceleration, html$.DeviceAcceleration, html$.DeviceRotationRate, core.num])})
-  });
-  dart.registerExtension(dart.global.DeviceMotionEvent, html$.DeviceMotionEvent);
-  const _initDeviceOrientationEvent = Symbol('_initDeviceOrientationEvent');
-  dart.defineExtensionNames([
-    'absolute',
-    'alpha',
-    'beta',
-    'gamma'
-  ]);
-  html$.DeviceOrientationEvent = class DeviceOrientationEvent extends html$.Event {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let alpha = opts && 'alpha' in opts ? opts.alpha : 0;
-      let beta = opts && 'beta' in opts ? opts.beta : 0;
-      let gamma = opts && 'gamma' in opts ? opts.gamma : 0;
-      let absolute = opts && 'absolute' in opts ? opts.absolute : false;
-      let e = html$.DeviceOrientationEvent._check(html$.document[_createEvent]("DeviceOrientationEvent"));
-      e[_initDeviceOrientationEvent](type, canBubble, cancelable, alpha, beta, gamma, absolute);
-      return e;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.absolute]() {
-      return this.absolute;
-    }
-    get [dartx.alpha]() {
-      return this.alpha;
-    }
-    get [dartx.beta]() {
-      return this.beta;
-    }
-    get [dartx.gamma]() {
-      return this.gamma;
-    }
-    [_initDeviceOrientationEvent](...args) {
-      return this.initDeviceOrientationEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DeviceOrientationEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.DeviceOrientationEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, alpha: core.num, beta: core.num, gamma: core.num, absolute: core.bool}),
-      _: dart.definiteFunctionType(html$.DeviceOrientationEvent, [])
-    }),
-    fields: () => ({
-      [dartx.absolute]: core.bool,
-      [dartx.alpha]: core.double,
-      [dartx.beta]: core.double,
-      [dartx.gamma]: core.double
-    }),
-    methods: () => ({[_initDeviceOrientationEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.num, core.num, core.num, core.bool])})
-  });
-  dart.registerExtension(dart.global.DeviceOrientationEvent, html$.DeviceOrientationEvent);
-  dart.defineExtensionNames([
-    'alpha',
-    'beta',
-    'gamma'
-  ]);
-  html$.DeviceRotationRate = class DeviceRotationRate extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.alpha]() {
-      return this.alpha;
-    }
-    get [dartx.beta]() {
-      return this.beta;
-    }
-    get [dartx.gamma]() {
-      return this.gamma;
-    }
-  };
-  dart.setSignature(html$.DeviceRotationRate, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DeviceRotationRate, [])}),
-    fields: () => ({
-      [dartx.alpha]: core.double,
-      [dartx.beta]: core.double,
-      [dartx.gamma]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.DeviceRotationRate, html$.DeviceRotationRate);
-  dart.defineExtensionNames([
-    'close',
-    'show',
-    'showModal',
-    'open',
-    'returnValue'
-  ]);
-  html$.DialogElement = class DialogElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.open] = null;
-      this[dartx.returnValue] = null;
-      super.created();
-    }
-    get [dartx.open]() {
-      return this.open;
-    }
-    set [dartx.open](value) {
-      this.open = value;
-    }
-    get [dartx.returnValue]() {
-      return this.returnValue;
-    }
-    set [dartx.returnValue](value) {
-      this.returnValue = value;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.show](...args) {
-      return this.show.apply(this, args);
-    }
-    [dartx.showModal](...args) {
-      return this.showModal.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.DialogElement, 'created');
-  dart.setSignature(html$.DialogElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DialogElement, []),
-      created: dart.definiteFunctionType(html$.DialogElement, [])
-    }),
-    fields: () => ({
-      [dartx.open]: core.bool,
-      [dartx.returnValue]: core.String
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.show]: dart.definiteFunctionType(dart.void, []),
-      [dartx.showModal]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLDialogElement, html$.DialogElement);
-  const _getDirectory = Symbol('_getDirectory');
-  const _getFile = Symbol('_getFile');
-  const __getDirectory_1 = Symbol('__getDirectory_1');
-  const __getDirectory_2 = Symbol('__getDirectory_2');
-  const __getDirectory_3 = Symbol('__getDirectory_3');
-  const __getDirectory_4 = Symbol('__getDirectory_4');
-  const __getDirectory = Symbol('__getDirectory');
-  const __getFile_1 = Symbol('__getFile_1');
-  const __getFile_2 = Symbol('__getFile_2');
-  const __getFile_3 = Symbol('__getFile_3');
-  const __getFile_4 = Symbol('__getFile_4');
-  const __getFile = Symbol('__getFile');
-  const _removeRecursively = Symbol('_removeRecursively');
-  const _copyTo = Symbol('_copyTo');
-  const _getMetadata = Symbol('_getMetadata');
-  const _getParent = Symbol('_getParent');
-  const _moveTo = Symbol('_moveTo');
-  const _remove$ = Symbol('_remove');
-  dart.defineExtensionNames([
-    'copyTo',
-    'getMetadata',
-    'getParent',
-    'moveTo',
-    'remove',
-    'toUrl',
-    'filesystem',
-    'fullPath',
-    'isDirectory',
-    'isFile',
-    'name'
-  ]);
-  html$.Entry = class Entry extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.filesystem]() {
-      return this.filesystem;
-    }
-    get [dartx.fullPath]() {
-      return this.fullPath;
-    }
-    get [dartx.isDirectory]() {
-      return this.isDirectory;
-    }
-    get [dartx.isFile]() {
-      return this.isFile;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    [_copyTo](...args) {
-      return this.copyTo.apply(this, args);
-    }
-    [dartx.copyTo](parent, opts) {
-      let name = opts && 'name' in opts ? opts.name : null;
-      let completer = CompleterOfEntry().new();
-      this[_copyTo](parent, {name: name, successCallback: dart.fn(value => {
-          completer.complete(value);
-        }, EntryToNull()), errorCallback: dart.fn(error => {
-          completer.completeError(error);
-        }, FileErrorToNull())});
-      return completer.future;
-    }
-    [_getMetadata](...args) {
-      return this.getMetadata.apply(this, args);
-    }
-    [dartx.getMetadata]() {
-      let completer = CompleterOfMetadata().new();
-      this[_getMetadata](dart.fn(value => {
-        completer.complete(value);
-      }, MetadataToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [_getParent](...args) {
-      return this.getParent.apply(this, args);
-    }
-    [dartx.getParent]() {
-      let completer = CompleterOfEntry().new();
-      this[_getParent](dart.fn(value => {
-        completer.complete(value);
-      }, EntryToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [_moveTo](...args) {
-      return this.moveTo.apply(this, args);
-    }
-    [dartx.moveTo](parent, opts) {
-      let name = opts && 'name' in opts ? opts.name : null;
-      let completer = CompleterOfEntry().new();
-      this[_moveTo](parent, {name: name, successCallback: dart.fn(value => {
-          completer.complete(value);
-        }, EntryToNull()), errorCallback: dart.fn(error => {
-          completer.completeError(error);
-        }, FileErrorToNull())});
-      return completer.future;
-    }
-    [_remove$](...args) {
-      return this.remove.apply(this, args);
-    }
-    [dartx.remove]() {
-      let completer = async.Completer.new();
-      this[_remove$](dart.fn(() => {
-        completer.complete();
-      }, VoidToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [dartx.toUrl](...args) {
-      return this.toURL.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Entry, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Entry, [])}),
-    fields: () => ({
-      [dartx.filesystem]: html$.FileSystem,
-      [dartx.fullPath]: core.String,
-      [dartx.isDirectory]: core.bool,
-      [dartx.isFile]: core.bool,
-      [dartx.name]: core.String
-    }),
-    methods: () => ({
-      [_copyTo]: dart.definiteFunctionType(dart.void, [html$.DirectoryEntry], {name: core.String, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
-      [dartx.copyTo]: dart.definiteFunctionType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}),
-      [_getMetadata]: dart.definiteFunctionType(dart.void, [html$.MetadataCallback], [html$._ErrorCallback]),
-      [dartx.getMetadata]: dart.definiteFunctionType(async.Future$(html$.Metadata), []),
-      [_getParent]: dart.definiteFunctionType(dart.void, [], [html$._EntryCallback, html$._ErrorCallback]),
-      [dartx.getParent]: dart.definiteFunctionType(async.Future$(html$.Entry), []),
-      [_moveTo]: dart.definiteFunctionType(dart.void, [html$.DirectoryEntry], {name: core.String, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
-      [dartx.moveTo]: dart.definiteFunctionType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}),
-      [_remove$]: dart.definiteFunctionType(dart.void, [html$.VoidCallback], [html$._ErrorCallback]),
-      [dartx.remove]: dart.definiteFunctionType(async.Future, []),
-      [dartx.toUrl]: dart.definiteFunctionType(core.String, [])
-    })
-  });
-  dart.registerExtension(dart.global.Entry, html$.Entry);
-  dart.defineExtensionNames([
-    'createDirectory',
-    'getDirectory',
-    'createFile',
-    'getFile',
-    'createReader',
-    'removeRecursively'
-  ]);
-  html$.DirectoryEntry = class DirectoryEntry extends html$.Entry {
-    [dartx.createDirectory](path, opts) {
-      let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
-      return this[_getDirectory](path, {options: dart.map({create: true, exclusive: exclusive}, core.String, core.bool)});
-    }
-    [dartx.getDirectory](path) {
-      return this[_getDirectory](path);
-    }
-    [dartx.createFile](path, opts) {
-      let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
-      return this[_getFile](path, {options: dart.map({create: true, exclusive: exclusive}, core.String, core.bool)});
-    }
-    [dartx.getFile](path) {
-      return this[_getFile](path);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.createReader](...args) {
-      return this.createReader.apply(this, args);
-    }
-    [__getDirectory](path, opts) {
-      let options = opts && 'options' in opts ? opts.options : null;
-      let successCallback = opts && 'successCallback' in opts ? opts.successCallback : null;
-      let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
-      if (errorCallback != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[__getDirectory_1](path, options_1, successCallback, errorCallback);
-        return;
-      }
-      if (successCallback != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[__getDirectory_2](path, options_1, successCallback);
-        return;
-      }
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[__getDirectory_3](path, options_1);
-        return;
-      }
-      this[__getDirectory_4](path);
-      return;
-    }
-    [__getDirectory_1](...args) {
-      return this.getDirectory.apply(this, args);
-    }
-    [__getDirectory_2](...args) {
-      return this.getDirectory.apply(this, args);
-    }
-    [__getDirectory_3](...args) {
-      return this.getDirectory.apply(this, args);
-    }
-    [__getDirectory_4](...args) {
-      return this.getDirectory.apply(this, args);
-    }
-    [_getDirectory](path, opts) {
-      let options = opts && 'options' in opts ? opts.options : null;
-      let completer = CompleterOfEntry().new();
-      this[__getDirectory](path, {options: options, successCallback: dart.fn(value => {
-          completer.complete(value);
-        }, EntryToNull()), errorCallback: dart.fn(error => {
-          completer.completeError(error);
-        }, FileErrorToNull())});
-      return completer.future;
-    }
-    [__getFile](path, opts) {
-      let options = opts && 'options' in opts ? opts.options : null;
-      let successCallback = opts && 'successCallback' in opts ? opts.successCallback : null;
-      let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
-      if (errorCallback != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[__getFile_1](path, options_1, successCallback, errorCallback);
-        return;
-      }
-      if (successCallback != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[__getFile_2](path, options_1, successCallback);
-        return;
-      }
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[__getFile_3](path, options_1);
-        return;
-      }
-      this[__getFile_4](path);
-      return;
-    }
-    [__getFile_1](...args) {
-      return this.getFile.apply(this, args);
-    }
-    [__getFile_2](...args) {
-      return this.getFile.apply(this, args);
-    }
-    [__getFile_3](...args) {
-      return this.getFile.apply(this, args);
-    }
-    [__getFile_4](...args) {
-      return this.getFile.apply(this, args);
-    }
-    [_getFile](path, opts) {
-      let options = opts && 'options' in opts ? opts.options : null;
-      let completer = CompleterOfEntry().new();
-      this[__getFile](path, {options: options, successCallback: dart.fn(value => {
-          completer.complete(value);
-        }, EntryToNull()), errorCallback: dart.fn(error => {
-          completer.completeError(error);
-        }, FileErrorToNull())});
-      return completer.future;
-    }
-    [_removeRecursively](...args) {
-      return this.removeRecursively.apply(this, args);
-    }
-    [dartx.removeRecursively]() {
-      let completer = async.Completer.new();
-      this[_removeRecursively](dart.fn(() => {
-        completer.complete();
-      }, VoidToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-  };
-  dart.setSignature(html$.DirectoryEntry, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DirectoryEntry, [])}),
-    methods: () => ({
-      [dartx.createDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}),
-      [dartx.getDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
-      [dartx.createFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}),
-      [dartx.getFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
-      [dartx.createReader]: dart.definiteFunctionType(html$.DirectoryReader, []),
-      [__getDirectory]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
-      [__getDirectory_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback, html$._ErrorCallback]),
-      [__getDirectory_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback]),
-      [__getDirectory_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      [__getDirectory_4]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_getDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {options: core.Map}),
-      [__getFile]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
-      [__getFile_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback, html$._ErrorCallback]),
-      [__getFile_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback]),
-      [__getFile_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      [__getFile_4]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_getFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {options: core.Map}),
-      [_removeRecursively]: dart.definiteFunctionType(dart.void, [html$.VoidCallback], [html$._ErrorCallback]),
-      [dartx.removeRecursively]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.DirectoryEntry, html$.DirectoryEntry);
-  const _readEntries = Symbol('_readEntries');
-  dart.defineExtensionNames([
-    'readEntries'
-  ]);
-  html$.DirectoryReader = class DirectoryReader extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_readEntries](...args) {
-      return this.readEntries.apply(this, args);
-    }
-    [dartx.readEntries]() {
-      let completer = CompleterOfListOfEntry().new();
-      this[_readEntries](dart.fn(value => {
-        completer.complete(value);
-      }, ListOfEntryToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-  };
-  dart.setSignature(html$.DirectoryReader, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DirectoryReader, [])}),
-    methods: () => ({
-      [_readEntries]: dart.definiteFunctionType(dart.void, [html$._EntriesCallback], [html$._ErrorCallback]),
-      [dartx.readEntries]: dart.definiteFunctionType(async.Future$(core.List$(html$.Entry)), [])
-    })
-  });
-  dart.registerExtension(dart.global.DirectoryReader, html$.DirectoryReader);
-  html$.DivElement = class DivElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.DivElement._check(html$.document[dartx.createElement]("div"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.DivElement, 'created');
-  dart.setSignature(html$.DivElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DivElement, []),
-      new: dart.definiteFunctionType(html$.DivElement, []),
-      created: dart.definiteFunctionType(html$.DivElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLDivElement, html$.DivElement);
-  const _body = Symbol('_body');
-  const _get_window = Symbol('_get_window');
-  const _head$0 = Symbol('_head');
-  const _lastModified = Symbol('_lastModified');
-  const _preferredStylesheetSet = Symbol('_preferredStylesheetSet');
-  const _referrer = Symbol('_referrer');
-  const _selectedStylesheetSet = Symbol('_selectedStylesheetSet');
-  const _styleSheets = Symbol('_styleSheets');
-  const _title = Symbol('_title');
-  const _visibilityState = Symbol('_visibilityState');
-  const _webkitFullscreenElement = Symbol('_webkitFullscreenElement');
-  const _webkitFullscreenEnabled = Symbol('_webkitFullscreenEnabled');
-  const _webkitHidden = Symbol('_webkitHidden');
-  const _webkitVisibilityState = Symbol('_webkitVisibilityState');
-  const _caretRangeFromPoint = Symbol('_caretRangeFromPoint');
-  const _createElement = Symbol('_createElement');
-  const _createElementNS = Symbol('_createElementNS');
-  const _createTouch_1 = Symbol('_createTouch_1');
-  const _createTouch = Symbol('_createTouch');
-  const _createTouchList = Symbol('_createTouchList');
-  const _elementFromPoint = Symbol('_elementFromPoint');
-  const _getCssCanvasContext = Symbol('_getCssCanvasContext');
-  const _webkitExitFullscreen = Symbol('_webkitExitFullscreen');
-  const _createElement_2 = Symbol('_createElement_2');
-  const _createElementNS_2 = Symbol('_createElementNS_2');
-  const _createNodeIterator = Symbol('_createNodeIterator');
-  const _createTreeWalker = Symbol('_createTreeWalker');
-  dart.defineExtensionNames([
-    'window',
-    'adoptNode',
-    'createDocumentFragment',
-    'createRange',
-    'elementsFromPoint',
-    'execCommand',
-    'exitFullscreen',
-    'exitPointerLock',
-    'getElementsByClassName',
-    'getElementsByName',
-    'getElementsByTagName',
-    'importNode',
-    'queryCommandEnabled',
-    'queryCommandIndeterm',
-    'queryCommandState',
-    'queryCommandSupported',
-    'queryCommandValue',
-    'transformDocumentToTreeView',
-    'getElementById',
-    'querySelector',
-    'onAbort',
-    'onBeforeCopy',
-    'onBeforeCut',
-    'onBeforePaste',
-    'onBlur',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onChange',
-    'onClick',
-    'onContextMenu',
-    'onCopy',
-    'onCut',
-    'onDoubleClick',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onDurationChange',
-    'onEmptied',
-    'onEnded',
-    'onError',
-    'onFocus',
-    'onInput',
-    'onInvalid',
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-    'onLoad',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-    'onMouseWheel',
-    'onPaste',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onPointerLockChange',
-    'onPointerLockError',
-    'onRateChange',
-    'onReadyStateChange',
-    'onReset',
-    'onResize',
-    'onScroll',
-    'onSearch',
-    'onSecurityPolicyViolation',
-    'onSeeked',
-    'onSeeking',
-    'onSelect',
-    'onSelectionChange',
-    'onSelectStart',
-    'onStalled',
-    'onSubmit',
-    'onSuspend',
-    'onTimeUpdate',
-    'onTouchCancel',
-    'onTouchEnd',
-    'onTouchMove',
-    'onTouchStart',
-    'onVolumeChange',
-    'onWaiting',
-    'onFullscreenChange',
-    'onFullscreenError',
-    'querySelectorAll',
-    'query',
-    'queryAll',
-    'supportsRegisterElement',
-    'supportsRegister',
-    'createElement',
-    'createElementNS',
-    'visibilityState',
-    'activeElement',
-    'contentType',
-    'cookie',
-    'currentScript',
-    'documentElement',
-    'domain',
-    'fonts',
-    'fullscreenElement',
-    'fullscreenEnabled',
-    'hidden',
-    'implementation',
-    'origin',
-    'pointerLockElement',
-    'readyState',
-    'rootElement',
-    'scrollingElement',
-    'timeline'
-  ]);
-  html$.Document = class Document extends html$.Node {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.activeElement]() {
-      return this.activeElement;
-    }
-    get [_body]() {
-      return this.body;
-    }
-    set [_body](value) {
-      this.body = value;
-    }
-    get [dartx.contentType]() {
-      return this.contentType;
-    }
-    get [dartx.cookie]() {
-      return this.cookie;
-    }
-    set [dartx.cookie](value) {
-      this.cookie = value;
-    }
-    get [dartx.currentScript]() {
-      return this.currentScript;
-    }
-    get [dartx.window]() {
-      return html$._convertNativeToDart_Window(this[_get_window]);
-    }
-    get [_get_window]() {
-      return this.defaultView;
-    }
-    get [dartx.documentElement]() {
-      return this.documentElement;
-    }
-    get [dartx.domain]() {
-      return this.domain;
-    }
-    get [dartx.fonts]() {
-      return this.fonts;
-    }
-    get [dartx.fullscreenElement]() {
-      return this.fullscreenElement;
-    }
-    get [dartx.fullscreenEnabled]() {
-      return this.fullscreenEnabled;
-    }
-    get [_head$0]() {
-      return this.head;
-    }
-    get [dartx.hidden]() {
-      return this.hidden;
-    }
-    get [dartx.implementation]() {
-      return this.implementation;
-    }
-    get [_lastModified]() {
-      return this.lastModified;
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.pointerLockElement]() {
-      return this.pointerLockElement;
-    }
-    get [_preferredStylesheetSet]() {
-      return this.preferredStylesheetSet;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [_referrer]() {
-      return this.referrer;
-    }
-    get [dartx.rootElement]() {
-      return this.rootElement;
-    }
-    get [dartx.scrollingElement]() {
-      return this.scrollingElement;
-    }
-    get [_selectedStylesheetSet]() {
-      return this.selectedStylesheetSet;
-    }
-    set [_selectedStylesheetSet](value) {
-      this.selectedStylesheetSet = value;
-    }
-    get [_styleSheets]() {
-      return this.styleSheets;
-    }
-    get [dartx.timeline]() {
-      return this.timeline;
-    }
-    get [_title]() {
-      return this.title;
-    }
-    set [_title](value) {
-      this.title = value;
-    }
-    get [_visibilityState]() {
-      return this.visibilityState;
-    }
-    get [_webkitFullscreenElement]() {
-      return this.webkitFullscreenElement;
-    }
-    get [_webkitFullscreenEnabled]() {
-      return this.webkitFullscreenEnabled;
-    }
-    get [_webkitHidden]() {
-      return this.webkitHidden;
-    }
-    get [_webkitVisibilityState]() {
-      return this.webkitVisibilityState;
-    }
-    [dartx.adoptNode](...args) {
-      return this.adoptNode.apply(this, args);
-    }
-    [_caretRangeFromPoint](...args) {
-      return this.caretRangeFromPoint.apply(this, args);
-    }
-    [dartx.createDocumentFragment](...args) {
-      return this.createDocumentFragment.apply(this, args);
-    }
-    [_createElement](...args) {
-      return this.createElement.apply(this, args);
-    }
-    [_createElementNS](...args) {
-      return this.createElementNS.apply(this, args);
-    }
-    [_createEvent](...args) {
-      return this.createEvent.apply(this, args);
-    }
-    [dartx.createRange](...args) {
-      return this.createRange.apply(this, args);
-    }
-    [_createTextNode](...args) {
-      return this.createTextNode.apply(this, args);
-    }
-    [_createTouch](window, target, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force) {
-      let target_1 = html$._convertDartToNative_EventTarget(target);
-      return this[_createTouch_1](window, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force);
-    }
-    [_createTouch_1](...args) {
-      return this.createTouch.apply(this, args);
-    }
-    [_createTouchList](...args) {
-      return this.createTouchList.apply(this, args);
-    }
-    [_elementFromPoint](...args) {
-      return this.elementFromPoint.apply(this, args);
-    }
-    [dartx.elementsFromPoint](...args) {
-      return this.elementsFromPoint.apply(this, args);
-    }
-    [dartx.execCommand](...args) {
-      return this.execCommand.apply(this, args);
-    }
-    [dartx.exitFullscreen](...args) {
-      return this.exitFullscreen.apply(this, args);
-    }
-    [dartx.exitPointerLock](...args) {
-      return this.exitPointerLock.apply(this, args);
-    }
-    [_getCssCanvasContext](...args) {
-      return this.getCSSCanvasContext.apply(this, args);
-    }
-    [dartx.getElementsByClassName](...args) {
-      return this.getElementsByClassName.apply(this, args);
-    }
-    [dartx.getElementsByName](...args) {
-      return this.getElementsByName.apply(this, args);
-    }
-    [dartx.getElementsByTagName](...args) {
-      return this.getElementsByTagName.apply(this, args);
-    }
-    [dartx.importNode](...args) {
-      return this.importNode.apply(this, args);
-    }
-    [dartx.queryCommandEnabled](...args) {
-      return this.queryCommandEnabled.apply(this, args);
-    }
-    [dartx.queryCommandIndeterm](...args) {
-      return this.queryCommandIndeterm.apply(this, args);
-    }
-    [dartx.queryCommandState](...args) {
-      return this.queryCommandState.apply(this, args);
-    }
-    [dartx.queryCommandSupported](...args) {
-      return this.queryCommandSupported.apply(this, args);
-    }
-    [dartx.queryCommandValue](...args) {
-      return this.queryCommandValue.apply(this, args);
-    }
-    [dartx.transformDocumentToTreeView](...args) {
-      return this.transformDocumentToTreeView.apply(this, args);
-    }
-    [_webkitExitFullscreen](...args) {
-      return this.webkitExitFullscreen.apply(this, args);
-    }
-    [dartx.getElementById](...args) {
-      return this.getElementById.apply(this, args);
-    }
-    get [_childElementCount]() {
-      return this.childElementCount;
-    }
-    get [_children]() {
-      return this.children;
-    }
-    get [_firstElementChild]() {
-      return this.firstElementChild;
-    }
-    get [_lastElementChild]() {
-      return this.lastElementChild;
-    }
-    [dartx.querySelector](...args) {
-      return this.querySelector.apply(this, args);
-    }
-    [_querySelectorAll](...args) {
-      return this.querySelectorAll.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return html$.Element.abortEvent.forTarget(this);
-    }
-    get [dartx.onBeforeCopy]() {
-      return html$.Element.beforeCopyEvent.forTarget(this);
-    }
-    get [dartx.onBeforeCut]() {
-      return html$.Element.beforeCutEvent.forTarget(this);
-    }
-    get [dartx.onBeforePaste]() {
-      return html$.Element.beforePasteEvent.forTarget(this);
-    }
-    get [dartx.onBlur]() {
-      return html$.Element.blurEvent.forTarget(this);
-    }
-    get [dartx.onCanPlay]() {
-      return html$.Element.canPlayEvent.forTarget(this);
-    }
-    get [dartx.onCanPlayThrough]() {
-      return html$.Element.canPlayThroughEvent.forTarget(this);
-    }
-    get [dartx.onChange]() {
-      return html$.Element.changeEvent.forTarget(this);
-    }
-    get [dartx.onClick]() {
-      return html$.Element.clickEvent.forTarget(this);
-    }
-    get [dartx.onContextMenu]() {
-      return html$.Element.contextMenuEvent.forTarget(this);
-    }
-    get [dartx.onCopy]() {
-      return html$.Element.copyEvent.forTarget(this);
-    }
-    get [dartx.onCut]() {
-      return html$.Element.cutEvent.forTarget(this);
-    }
-    get [dartx.onDoubleClick]() {
-      return html$.Element.doubleClickEvent.forTarget(this);
-    }
-    get [dartx.onDrag]() {
-      return html$.Element.dragEvent.forTarget(this);
-    }
-    get [dartx.onDragEnd]() {
-      return html$.Element.dragEndEvent.forTarget(this);
-    }
-    get [dartx.onDragEnter]() {
-      return html$.Element.dragEnterEvent.forTarget(this);
-    }
-    get [dartx.onDragLeave]() {
-      return html$.Element.dragLeaveEvent.forTarget(this);
-    }
-    get [dartx.onDragOver]() {
-      return html$.Element.dragOverEvent.forTarget(this);
-    }
-    get [dartx.onDragStart]() {
-      return html$.Element.dragStartEvent.forTarget(this);
-    }
-    get [dartx.onDrop]() {
-      return html$.Element.dropEvent.forTarget(this);
-    }
-    get [dartx.onDurationChange]() {
-      return html$.Element.durationChangeEvent.forTarget(this);
-    }
-    get [dartx.onEmptied]() {
-      return html$.Element.emptiedEvent.forTarget(this);
-    }
-    get [dartx.onEnded]() {
-      return html$.Element.endedEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.Element.errorEvent.forTarget(this);
-    }
-    get [dartx.onFocus]() {
-      return html$.Element.focusEvent.forTarget(this);
-    }
-    get [dartx.onInput]() {
-      return html$.Element.inputEvent.forTarget(this);
-    }
-    get [dartx.onInvalid]() {
-      return html$.Element.invalidEvent.forTarget(this);
-    }
-    get [dartx.onKeyDown]() {
-      return html$.Element.keyDownEvent.forTarget(this);
-    }
-    get [dartx.onKeyPress]() {
-      return html$.Element.keyPressEvent.forTarget(this);
-    }
-    get [dartx.onKeyUp]() {
-      return html$.Element.keyUpEvent.forTarget(this);
-    }
-    get [dartx.onLoad]() {
-      return html$.Element.loadEvent.forTarget(this);
-    }
-    get [dartx.onLoadedData]() {
-      return html$.Element.loadedDataEvent.forTarget(this);
-    }
-    get [dartx.onLoadedMetadata]() {
-      return html$.Element.loadedMetadataEvent.forTarget(this);
-    }
-    get [dartx.onMouseDown]() {
-      return html$.Element.mouseDownEvent.forTarget(this);
-    }
-    get [dartx.onMouseEnter]() {
-      return html$.Element.mouseEnterEvent.forTarget(this);
-    }
-    get [dartx.onMouseLeave]() {
-      return html$.Element.mouseLeaveEvent.forTarget(this);
-    }
-    get [dartx.onMouseMove]() {
-      return html$.Element.mouseMoveEvent.forTarget(this);
-    }
-    get [dartx.onMouseOut]() {
-      return html$.Element.mouseOutEvent.forTarget(this);
-    }
-    get [dartx.onMouseOver]() {
-      return html$.Element.mouseOverEvent.forTarget(this);
-    }
-    get [dartx.onMouseUp]() {
-      return html$.Element.mouseUpEvent.forTarget(this);
-    }
-    get [dartx.onMouseWheel]() {
-      return html$.Element.mouseWheelEvent.forTarget(this);
-    }
-    get [dartx.onPaste]() {
-      return html$.Element.pasteEvent.forTarget(this);
-    }
-    get [dartx.onPause]() {
-      return html$.Element.pauseEvent.forTarget(this);
-    }
-    get [dartx.onPlay]() {
-      return html$.Element.playEvent.forTarget(this);
-    }
-    get [dartx.onPlaying]() {
-      return html$.Element.playingEvent.forTarget(this);
-    }
-    get [dartx.onPointerLockChange]() {
-      return html$.Document.pointerLockChangeEvent.forTarget(this);
-    }
-    get [dartx.onPointerLockError]() {
-      return html$.Document.pointerLockErrorEvent.forTarget(this);
-    }
-    get [dartx.onRateChange]() {
-      return html$.Element.rateChangeEvent.forTarget(this);
-    }
-    get [dartx.onReadyStateChange]() {
-      return html$.Document.readyStateChangeEvent.forTarget(this);
-    }
-    get [dartx.onReset]() {
-      return html$.Element.resetEvent.forTarget(this);
-    }
-    get [dartx.onResize]() {
-      return html$.Element.resizeEvent.forTarget(this);
-    }
-    get [dartx.onScroll]() {
-      return html$.Element.scrollEvent.forTarget(this);
-    }
-    get [dartx.onSearch]() {
-      return html$.Element.searchEvent.forTarget(this);
-    }
-    get [dartx.onSecurityPolicyViolation]() {
-      return html$.Document.securityPolicyViolationEvent.forTarget(this);
-    }
-    get [dartx.onSeeked]() {
-      return html$.Element.seekedEvent.forTarget(this);
-    }
-    get [dartx.onSeeking]() {
-      return html$.Element.seekingEvent.forTarget(this);
-    }
-    get [dartx.onSelect]() {
-      return html$.Element.selectEvent.forTarget(this);
-    }
-    get [dartx.onSelectionChange]() {
-      return html$.Document.selectionChangeEvent.forTarget(this);
-    }
-    get [dartx.onSelectStart]() {
-      return html$.Element.selectStartEvent.forTarget(this);
-    }
-    get [dartx.onStalled]() {
-      return html$.Element.stalledEvent.forTarget(this);
-    }
-    get [dartx.onSubmit]() {
-      return html$.Element.submitEvent.forTarget(this);
-    }
-    get [dartx.onSuspend]() {
-      return html$.Element.suspendEvent.forTarget(this);
-    }
-    get [dartx.onTimeUpdate]() {
-      return html$.Element.timeUpdateEvent.forTarget(this);
-    }
-    get [dartx.onTouchCancel]() {
-      return html$.Element.touchCancelEvent.forTarget(this);
-    }
-    get [dartx.onTouchEnd]() {
-      return html$.Element.touchEndEvent.forTarget(this);
-    }
-    get [dartx.onTouchMove]() {
-      return html$.Element.touchMoveEvent.forTarget(this);
-    }
-    get [dartx.onTouchStart]() {
-      return html$.Element.touchStartEvent.forTarget(this);
-    }
-    get [dartx.onVolumeChange]() {
-      return html$.Element.volumeChangeEvent.forTarget(this);
-    }
-    get [dartx.onWaiting]() {
-      return html$.Element.waitingEvent.forTarget(this);
-    }
-    get [dartx.onFullscreenChange]() {
-      return html$.Element.fullscreenChangeEvent.forTarget(this);
-    }
-    get [dartx.onFullscreenError]() {
-      return html$.Element.fullscreenErrorEvent.forTarget(this);
-    }
-    [dartx.querySelectorAll](T) {
-      return selectors => {
-        return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
-      };
-    }
-    [dartx.query](relativeSelectors) {
-      return this[dartx.querySelector](relativeSelectors);
-    }
-    [dartx.queryAll](T) {
-      return relativeSelectors => {
-        return this[dartx.querySelectorAll](T)(relativeSelectors);
-      };
-    }
-    get [dartx.supportsRegisterElement]() {
-      return "registerElement" in this;
-    }
-    get [dartx.supportsRegister]() {
-      return this[dartx.supportsRegisterElement];
-    }
-    [dartx.createElement](tagName, typeExtension) {
-      if (typeExtension === void 0) typeExtension = null;
-      return html$.Element._check(typeExtension == null ? this[_createElement_2](tagName) : this[_createElement](tagName, typeExtension));
-    }
-    [_createElement_2](tagName) {
-      return this.createElement(tagName);
-    }
-    [_createElementNS_2](namespaceURI, qualifiedName) {
-      return this.createElementNS(namespaceURI, qualifiedName);
-    }
-    [dartx.createElementNS](namespaceURI, qualifiedName, typeExtension) {
-      if (typeExtension === void 0) typeExtension = null;
-      return html$.Element._check(typeExtension == null ? this[_createElementNS_2](namespaceURI, qualifiedName) : this[_createElementNS](namespaceURI, qualifiedName, typeExtension));
-    }
-    [_createNodeIterator](root, whatToShow, filter) {
-      if (whatToShow === void 0) whatToShow = null;
-      if (filter === void 0) filter = null;
-      return this.createNodeIterator(root, whatToShow, filter, false);
-    }
-    [_createTreeWalker](root, whatToShow, filter) {
-      if (whatToShow === void 0) whatToShow = null;
-      if (filter === void 0) filter = null;
-      return this.createTreeWalker(root, whatToShow, filter, false);
-    }
-    get [dartx.visibilityState]() {
-      return this.visibilityState || this.mozVisibilityState || this.msVisibilityState || this.webkitVisibilityState;
-    }
-  };
-  dart.setSignature(html$.Document, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Document, [])}),
-    fields: () => ({
-      [dartx.activeElement]: html$.Element,
-      [_body]: html$.HtmlElement,
-      [dartx.contentType]: core.String,
-      [dartx.cookie]: core.String,
-      [dartx.currentScript]: html$.ScriptElement,
-      [_get_window]: dart.dynamic,
-      [dartx.documentElement]: html$.Element,
-      [dartx.domain]: core.String,
-      [dartx.fonts]: html$.FontFaceSet,
-      [dartx.fullscreenElement]: html$.Element,
-      [dartx.fullscreenEnabled]: core.bool,
-      [_head$0]: html$.HeadElement,
-      [dartx.hidden]: core.bool,
-      [dartx.implementation]: html$.DomImplementation,
-      [_lastModified]: core.String,
-      [dartx.origin]: core.String,
-      [dartx.pointerLockElement]: html$.Element,
-      [_preferredStylesheetSet]: core.String,
-      [dartx.readyState]: core.String,
-      [_referrer]: core.String,
-      [dartx.rootElement]: svg$.SvgSvgElement,
-      [dartx.scrollingElement]: html$.Element,
-      [_selectedStylesheetSet]: core.String,
-      [_styleSheets]: ListOfStyleSheet(),
-      [dartx.timeline]: html$.AnimationTimeline,
-      [_title]: core.String,
-      [_visibilityState]: core.String,
-      [_webkitFullscreenElement]: html$.Element,
-      [_webkitFullscreenEnabled]: core.bool,
-      [_webkitHidden]: core.bool,
-      [_webkitVisibilityState]: core.String,
-      [_childElementCount]: core.int,
-      [_children]: ListOfNode(),
-      [_firstElementChild]: html$.Element,
-      [_lastElementChild]: html$.Element
-    }),
-    getters: () => ({
-      [dartx.window]: dart.definiteFunctionType(html$.WindowBase, []),
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onBeforeCopy]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onBeforeCut]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onBeforePaste]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onCopy]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
-      [dartx.onCut]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
-      [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
-      [dartx.onPaste]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
-      [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPointerLockChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPointerLockError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSecurityPolicyViolation]: dart.definiteFunctionType(async.Stream$(html$.SecurityPolicyViolationEvent), []),
-      [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSelectionChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSelectStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onFullscreenChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onFullscreenError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.supportsRegisterElement]: dart.definiteFunctionType(core.bool, []),
-      [dartx.supportsRegister]: dart.definiteFunctionType(core.bool, []),
-      [dartx.visibilityState]: dart.definiteFunctionType(core.String, [])
-    }),
-    methods: () => ({
-      [dartx.adoptNode]: dart.definiteFunctionType(html$.Node, [html$.Node]),
-      [_caretRangeFromPoint]: dart.definiteFunctionType(html$.Range, [core.int, core.int]),
-      [dartx.createDocumentFragment]: dart.definiteFunctionType(html$.DocumentFragment, []),
-      [_createElement]: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
-      [_createElementNS]: dart.definiteFunctionType(html$.Element, [core.String, core.String], [core.String]),
-      [_createEvent]: dart.definiteFunctionType(html$.Event, [core.String]),
-      [dartx.createRange]: dart.definiteFunctionType(html$.Range, []),
-      [_createTextNode]: dart.definiteFunctionType(html$.Text, [core.String]),
-      [_createTouch]: dart.definiteFunctionType(html$.Touch, [html$.Window, html$.EventTarget, core.int, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
-      [_createTouch_1]: dart.definiteFunctionType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_createTouchList]: dart.definiteFunctionType(html$.TouchList, [html$.Touch]),
-      [_elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
-      [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html$.Element), [core.int, core.int]),
-      [dartx.execCommand]: dart.definiteFunctionType(core.bool, [core.String], [core.bool, core.String]),
-      [dartx.exitFullscreen]: dart.definiteFunctionType(dart.void, []),
-      [dartx.exitPointerLock]: dart.definiteFunctionType(dart.void, []),
-      [_getCssCanvasContext]: dart.definiteFunctionType(core.Object, [core.String, core.String, core.int, core.int]),
-      [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
-      [dartx.getElementsByName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
-      [dartx.getElementsByTagName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
-      [dartx.importNode]: dart.definiteFunctionType(html$.Node, [html$.Node], [core.bool]),
-      [dartx.queryCommandEnabled]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.queryCommandIndeterm]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.queryCommandState]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.queryCommandSupported]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.queryCommandValue]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.transformDocumentToTreeView]: dart.definiteFunctionType(dart.void, [core.String]),
-      [_webkitExitFullscreen]: dart.definiteFunctionType(dart.void, []),
-      [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
-      [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
-      [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
-      [dartx.createElement]: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
-      [_createElement_2]: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      [_createElementNS_2]: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-      [dartx.createElementNS]: dart.definiteFunctionType(html$.Element, [core.String, core.String], [core.String]),
-      [_createNodeIterator]: dart.definiteFunctionType(html$.NodeIterator, [html$.Node], [core.int, html$.NodeFilter]),
-      [_createTreeWalker]: dart.definiteFunctionType(html$.TreeWalker, [html$.Node], [core.int, html$.NodeFilter])
-    }),
-    sfields: () => ({
-      pointerLockChangeEvent: EventStreamProviderOfEvent(),
-      pointerLockErrorEvent: EventStreamProviderOfEvent(),
-      readyStateChangeEvent: EventStreamProviderOfEvent(),
-      securityPolicyViolationEvent: EventStreamProviderOfSecurityPolicyViolationEvent(),
-      selectionChangeEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(html$.Document, {
-    get pointerLockChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pointerlockchange'));
-    },
-    get pointerLockErrorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pointerlockerror'));
-    },
-    get readyStateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('readystatechange'));
-    },
-    get securityPolicyViolationEvent() {
-      return dart.const(new (EventStreamProviderOfSecurityPolicyViolationEvent())('securitypolicyviolation'));
-    },
-    get selectionChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('selectionchange'));
-    }
-  });
-  dart.registerExtension(dart.global.Document, html$.Document);
-  const _docChildren = Symbol('_docChildren');
-  dart.defineExtensionNames([
-    'children',
-    'children',
-    'querySelectorAll',
-    'innerHtml',
-    'innerHtml',
-    'setInnerHtml',
-    'appendText',
-    'appendHtml',
-    'query',
-    'queryAll',
-    'getElementById',
-    'querySelector'
-  ]);
-  html$.DocumentFragment = class DocumentFragment extends html$.Node {
-    static new() {
-      return html$.document[dartx.createDocumentFragment]();
-    }
-    static html(html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      return html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-    }
-    static svg(svgContent, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      return svg$.SvgSvgElement.new()[dartx.createFragment](svgContent, {validator: validator, treeSanitizer: treeSanitizer});
-    }
-    get [_children]() {
-      return dart.throw(new core.UnimplementedError('Use _docChildren instead'));
-    }
-    get [_docChildren]() {
-      return this._docChildren;
-    }
-    set [_docChildren](value) {
-      this._docChildren = value;
-    }
-    get [dartx.children]() {
-      if (this[_docChildren] == null) {
-        this[_docChildren] = new html_common.FilteredElementList(this);
-      }
-      return this[_docChildren];
-    }
-    set [dartx.children](value) {
-      let copy = value[dartx.toList]();
-      let children = this[dartx.children];
-      children[dartx.clear]();
-      children[dartx.addAll](copy);
-    }
-    [dartx.querySelectorAll](T) {
-      return selectors => {
-        return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
-      };
-    }
-    get [dartx.innerHtml]() {
-      let e = html$.Element.tag("div");
-      e[dartx.append](this[dartx.clone](true));
-      return e[dartx.innerHtml];
-    }
-    set [dartx.innerHtml](value) {
-      this[dartx.setInnerHtml](value);
-    }
-    [dartx.setInnerHtml](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      this[dartx.nodes][dartx.clear]();
-      this[dartx.append](html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
-    }
-    [dartx.appendText](text) {
-      this[dartx.append](html$.Text.new(text));
-    }
-    [dartx.appendHtml](text, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let NodeTreeSanitizer = opts && 'NodeTreeSanitizer' in opts ? opts.NodeTreeSanitizer : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      this[dartx.append](html$.DocumentFragment.html(text, {validator: validator, treeSanitizer: html$.NodeTreeSanitizer._check(treeSanitizer)}));
-    }
-    [dartx.query](relativeSelectors) {
-      return this[dartx.querySelector](relativeSelectors);
-    }
-    [dartx.queryAll](T) {
-      return relativeSelectors => {
-        return this[dartx.querySelectorAll](T)(relativeSelectors);
-      };
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getElementById](...args) {
-      return this.getElementById.apply(this, args);
-    }
-    get [_childElementCount]() {
-      return this.childElementCount;
-    }
-    get [_firstElementChild]() {
-      return this.firstElementChild;
-    }
-    get [_lastElementChild]() {
-      return this.lastElementChild;
-    }
-    [dartx.querySelector](...args) {
-      return this.querySelector.apply(this, args);
-    }
-    [_querySelectorAll](...args) {
-      return this.querySelectorAll.apply(this, args);
-    }
-  };
-  html$.DocumentFragment[dart.implements] = () => [html$.NonElementParentNode, html$.ParentNode];
-  dart.setSignature(html$.DocumentFragment, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.DocumentFragment, []),
-      html: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      svg: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      _: dart.definiteFunctionType(html$.DocumentFragment, [])
-    }),
-    fields: () => ({
-      [_docChildren]: ListOfElement(),
-      [_childElementCount]: core.int,
-      [_firstElementChild]: html$.Element,
-      [_lastElementChild]: html$.Element
-    }),
-    getters: () => ({
-      [_children]: dart.definiteFunctionType(html$.HtmlCollection, []),
-      [dartx.children]: dart.definiteFunctionType(core.List$(html$.Element), []),
-      [dartx.innerHtml]: dart.definiteFunctionType(core.String, [])
-    }),
-    setters: () => ({
-      [dartx.children]: dart.definiteFunctionType(dart.void, [ListOfElement()]),
-      [dartx.innerHtml]: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    methods: () => ({
-      [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
-      [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      [dartx.appendText]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, NodeTreeSanitizer: dart.dynamic, treeSanitizer: dart.dynamic}),
-      [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
-      [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.DocumentFragment, html$.DocumentFragment);
-  dart.defineExtensionNames([
-    'message',
-    'name'
-  ]);
-  html$.DomError = class DomError extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(name, message) {
-      if (message === void 0) message = null;
-      if (message != null) {
-        return html$.DomError._create_1(name, message);
-      }
-      return html$.DomError._create_2(name);
-    }
-    static _create_1(name, message) {
-      return new DOMError(name, message);
-    }
-    static _create_2(name) {
-      return new DOMError(name);
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-  };
-  dart.setSignature(html$.DomError, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DomError, []),
-      new: dart.definiteFunctionType(html$.DomError, [core.String], [core.String])
-    }),
-    fields: () => ({
-      [dartx.message]: core.String,
-      [dartx.name]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.DomError, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.DomError, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.DOMError, html$.DomError);
-  dart.defineExtensionNames([
-    'name',
-    'toString',
-    'message'
-  ]);
-  html$.DomException = class DomException extends _interceptors.Interceptor {
-    get [dartx.name]() {
-      let errorName = this.name;
-      if (dart.test(html_common.Device.isWebKit) && errorName == 'SECURITY_ERR') return 'SecurityError';
-      if (dart.test(html_common.Device.isWebKit) && errorName == 'SYNTAX_ERR') return 'SyntaxError';
-      return errorName;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    [dartx.toString]() {
-      return String(this);
-    }
-  };
-  dart.setSignature(html$.DomException, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomException, [])}),
-    fields: () => ({[dartx.message]: core.String}),
-    getters: () => ({[dartx.name]: dart.definiteFunctionType(core.String, [])}),
-    sfields: () => ({
-      INDEX_SIZE: core.String,
-      HIERARCHY_REQUEST: core.String,
-      WRONG_DOCUMENT: core.String,
-      INVALID_CHARACTER: core.String,
-      NO_MODIFICATION_ALLOWED: core.String,
-      NOT_FOUND: core.String,
-      NOT_SUPPORTED: core.String,
-      INVALID_STATE: core.String,
-      SYNTAX: core.String,
-      INVALID_MODIFICATION: core.String,
-      NAMESPACE: core.String,
-      INVALID_ACCESS: core.String,
-      TYPE_MISMATCH: core.String,
-      SECURITY: core.String,
-      NETWORK: core.String,
-      ABORT: core.String,
-      URL_MISMATCH: core.String,
-      QUOTA_EXCEEDED: core.String,
-      TIMEOUT: core.String,
-      INVALID_NODE_TYPE: core.String,
-      DATA_CLONE: core.String
-    })
-  });
-  html$.DomException.INDEX_SIZE = 'IndexSizeError';
-  html$.DomException.HIERARCHY_REQUEST = 'HierarchyRequestError';
-  html$.DomException.WRONG_DOCUMENT = 'WrongDocumentError';
-  html$.DomException.INVALID_CHARACTER = 'InvalidCharacterError';
-  html$.DomException.NO_MODIFICATION_ALLOWED = 'NoModificationAllowedError';
-  html$.DomException.NOT_FOUND = 'NotFoundError';
-  html$.DomException.NOT_SUPPORTED = 'NotSupportedError';
-  html$.DomException.INVALID_STATE = 'InvalidStateError';
-  html$.DomException.SYNTAX = 'SyntaxError';
-  html$.DomException.INVALID_MODIFICATION = 'InvalidModificationError';
-  html$.DomException.NAMESPACE = 'NamespaceError';
-  html$.DomException.INVALID_ACCESS = 'InvalidAccessError';
-  html$.DomException.TYPE_MISMATCH = 'TypeMismatchError';
-  html$.DomException.SECURITY = 'SecurityError';
-  html$.DomException.NETWORK = 'NetworkError';
-  html$.DomException.ABORT = 'AbortError';
-  html$.DomException.URL_MISMATCH = 'URLMismatchError';
-  html$.DomException.QUOTA_EXCEEDED = 'QuotaExceededError';
-  html$.DomException.TIMEOUT = 'TimeoutError';
-  html$.DomException.INVALID_NODE_TYPE = 'InvalidNodeTypeError';
-  html$.DomException.DATA_CLONE = 'DataCloneError';
-  dart.registerExtension(dart.global.DOMException, html$.DomException);
-  dart.defineExtensionNames([
-    'createDocument',
-    'createDocumentType',
-    'createHtmlDocument',
-    'hasFeature'
-  ]);
-  html$.DomImplementation = class DomImplementation extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.createDocument](...args) {
-      return this.createDocument.apply(this, args);
-    }
-    [dartx.createDocumentType](...args) {
-      return this.createDocumentType.apply(this, args);
-    }
-    [dartx.createHtmlDocument](...args) {
-      return this.createHTMLDocument.apply(this, args);
-    }
-    [dartx.hasFeature](...args) {
-      return this.hasFeature.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DomImplementation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomImplementation, [])}),
-    methods: () => ({
-      [dartx.createDocument]: dart.definiteFunctionType(html$.XmlDocument, [core.String, core.String, html$._DocumentType]),
-      [dartx.createDocumentType]: dart.definiteFunctionType(html$._DocumentType, [core.String, core.String, core.String]),
-      [dartx.createHtmlDocument]: dart.definiteFunctionType(html$.HtmlDocument, [core.String]),
-      [dartx.hasFeature]: dart.definiteFunctionType(core.bool, [])
-    })
-  });
-  dart.registerExtension(dart.global.DOMImplementation, html$.DomImplementation);
-  dart.defineExtensionNames([
-    'next'
-  ]);
-  html$.DomIterator = class DomIterator extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.next](...args) {
-      return this.next.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DomIterator, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomIterator, [])}),
-    methods: () => ({[dartx.next]: dart.definiteFunctionType(core.Object, [], [core.Object])})
-  });
-  dart.registerExtension(dart.global.Iterator, html$.DomIterator);
-  dart.defineExtensionNames([
-    'a',
-    'b',
-    'c',
-    'd',
-    'e',
-    'f',
-    'is2D',
-    'isIdentity',
-    'm11',
-    'm12',
-    'm13',
-    'm14',
-    'm21',
-    'm22',
-    'm23',
-    'm24',
-    'm31',
-    'm32',
-    'm33',
-    'm34',
-    'm41',
-    'm42',
-    'm43',
-    'm44',
-    'multiply',
-    'scale',
-    'scale3d',
-    'scaleNonUniform',
-    'toFloat32Array',
-    'toFloat64Array',
-    'translate'
-  ]);
-  html$.DomMatrixReadOnly = class DomMatrixReadOnly extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.a]() {
-      return this.a;
-    }
-    get [dartx.b]() {
-      return this.b;
-    }
-    get [dartx.c]() {
-      return this.c;
-    }
-    get [dartx.d]() {
-      return this.d;
-    }
-    get [dartx.e]() {
-      return this.e;
-    }
-    get [dartx.f]() {
-      return this.f;
-    }
-    get [dartx.is2D]() {
-      return this.is2D;
-    }
-    get [dartx.isIdentity]() {
-      return this.isIdentity;
-    }
-    get [dartx.m11]() {
-      return this.m11;
-    }
-    get [dartx.m12]() {
-      return this.m12;
-    }
-    get [dartx.m13]() {
-      return this.m13;
-    }
-    get [dartx.m14]() {
-      return this.m14;
-    }
-    get [dartx.m21]() {
-      return this.m21;
-    }
-    get [dartx.m22]() {
-      return this.m22;
-    }
-    get [dartx.m23]() {
-      return this.m23;
-    }
-    get [dartx.m24]() {
-      return this.m24;
-    }
-    get [dartx.m31]() {
-      return this.m31;
-    }
-    get [dartx.m32]() {
-      return this.m32;
-    }
-    get [dartx.m33]() {
-      return this.m33;
-    }
-    get [dartx.m34]() {
-      return this.m34;
-    }
-    get [dartx.m41]() {
-      return this.m41;
-    }
-    get [dartx.m42]() {
-      return this.m42;
-    }
-    get [dartx.m43]() {
-      return this.m43;
-    }
-    get [dartx.m44]() {
-      return this.m44;
-    }
-    [dartx.multiply](...args) {
-      return this.multiply.apply(this, args);
-    }
-    [dartx.scale](...args) {
-      return this.scale.apply(this, args);
-    }
-    [dartx.scale3d](...args) {
-      return this.scale3d.apply(this, args);
-    }
-    [dartx.scaleNonUniform](...args) {
-      return this.scaleNonUniform.apply(this, args);
-    }
-    [dartx.toFloat32Array](...args) {
-      return this.toFloat32Array.apply(this, args);
-    }
-    [dartx.toFloat64Array](...args) {
-      return this.toFloat64Array.apply(this, args);
-    }
-    [dartx.translate](...args) {
-      return this.translate.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DomMatrixReadOnly, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomMatrixReadOnly, [])}),
-    getters: () => ({
-      [dartx.a]: dart.definiteFunctionType(core.num, []),
-      [dartx.b]: dart.definiteFunctionType(core.num, []),
-      [dartx.c]: dart.definiteFunctionType(core.num, []),
-      [dartx.d]: dart.definiteFunctionType(core.num, []),
-      [dartx.e]: dart.definiteFunctionType(core.num, []),
-      [dartx.f]: dart.definiteFunctionType(core.num, []),
-      [dartx.is2D]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isIdentity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.m11]: dart.definiteFunctionType(core.num, []),
-      [dartx.m12]: dart.definiteFunctionType(core.num, []),
-      [dartx.m13]: dart.definiteFunctionType(core.num, []),
-      [dartx.m14]: dart.definiteFunctionType(core.num, []),
-      [dartx.m21]: dart.definiteFunctionType(core.num, []),
-      [dartx.m22]: dart.definiteFunctionType(core.num, []),
-      [dartx.m23]: dart.definiteFunctionType(core.num, []),
-      [dartx.m24]: dart.definiteFunctionType(core.num, []),
-      [dartx.m31]: dart.definiteFunctionType(core.num, []),
-      [dartx.m32]: dart.definiteFunctionType(core.num, []),
-      [dartx.m33]: dart.definiteFunctionType(core.num, []),
-      [dartx.m34]: dart.definiteFunctionType(core.num, []),
-      [dartx.m41]: dart.definiteFunctionType(core.num, []),
-      [dartx.m42]: dart.definiteFunctionType(core.num, []),
-      [dartx.m43]: dart.definiteFunctionType(core.num, []),
-      [dartx.m44]: dart.definiteFunctionType(core.num, [])
-    }),
-    methods: () => ({
-      [dartx.multiply]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
-      [dartx.scale]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num]),
-      [dartx.scale3d]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num]),
-      [dartx.scaleNonUniform]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
-      [dartx.toFloat32Array]: dart.definiteFunctionType(typed_data.Float32List, []),
-      [dartx.toFloat64Array]: dart.definiteFunctionType(typed_data.Float64List, []),
-      [dartx.translate]: dart.definiteFunctionType(html$.DomMatrix, [core.num, core.num], [core.num])
-    })
-  });
-  dart.registerExtension(dart.global.DOMMatrixReadOnly, html$.DomMatrixReadOnly);
-  dart.defineExtensionNames([
-    'a',
-    'a',
-    'b',
-    'b',
-    'c',
-    'c',
-    'd',
-    'd',
-    'e',
-    'e',
-    'f',
-    'f',
-    'm11',
-    'm11',
-    'm12',
-    'm12',
-    'm13',
-    'm13',
-    'm14',
-    'm14',
-    'm21',
-    'm21',
-    'm22',
-    'm22',
-    'm23',
-    'm23',
-    'm24',
-    'm24',
-    'm31',
-    'm31',
-    'm32',
-    'm32',
-    'm33',
-    'm33',
-    'm34',
-    'm34',
-    'm41',
-    'm41',
-    'm42',
-    'm42',
-    'm43',
-    'm43',
-    'm44',
-    'm44',
-    'multiplySelf',
-    'preMultiplySelf',
-    'scale3dSelf',
-    'scaleNonUniformSelf',
-    'scaleSelf',
-    'translateSelf'
-  ]);
-  html$.DomMatrix = class DomMatrix extends html$.DomMatrixReadOnly {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(other) {
-      if (other === void 0) other = null;
-      if (other == null) {
-        return html$.DomMatrix._create_1();
-      }
-      if (html$.DomMatrixReadOnly.is(other) || other == null) {
-        return html$.DomMatrix._create_2(other);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1() {
-      return new DOMMatrix();
-    }
-    static _create_2(other) {
-      return new DOMMatrix(other);
-    }
-    get [dartx.a]() {
-      return this.a;
-    }
-    set [dartx.a](value) {
-      this.a = value;
-    }
-    get [dartx.b]() {
-      return this.b;
-    }
-    set [dartx.b](value) {
-      this.b = value;
-    }
-    get [dartx.c]() {
-      return this.c;
-    }
-    set [dartx.c](value) {
-      this.c = value;
-    }
-    get [dartx.d]() {
-      return this.d;
-    }
-    set [dartx.d](value) {
-      this.d = value;
-    }
-    get [dartx.e]() {
-      return this.e;
-    }
-    set [dartx.e](value) {
-      this.e = value;
-    }
-    get [dartx.f]() {
-      return this.f;
-    }
-    set [dartx.f](value) {
-      this.f = value;
-    }
-    get [dartx.m11]() {
-      return this.m11;
-    }
-    set [dartx.m11](value) {
-      this.m11 = value;
-    }
-    get [dartx.m12]() {
-      return this.m12;
-    }
-    set [dartx.m12](value) {
-      this.m12 = value;
-    }
-    get [dartx.m13]() {
-      return this.m13;
-    }
-    set [dartx.m13](value) {
-      this.m13 = value;
-    }
-    get [dartx.m14]() {
-      return this.m14;
-    }
-    set [dartx.m14](value) {
-      this.m14 = value;
-    }
-    get [dartx.m21]() {
-      return this.m21;
-    }
-    set [dartx.m21](value) {
-      this.m21 = value;
-    }
-    get [dartx.m22]() {
-      return this.m22;
-    }
-    set [dartx.m22](value) {
-      this.m22 = value;
-    }
-    get [dartx.m23]() {
-      return this.m23;
-    }
-    set [dartx.m23](value) {
-      this.m23 = value;
-    }
-    get [dartx.m24]() {
-      return this.m24;
-    }
-    set [dartx.m24](value) {
-      this.m24 = value;
-    }
-    get [dartx.m31]() {
-      return this.m31;
-    }
-    set [dartx.m31](value) {
-      this.m31 = value;
-    }
-    get [dartx.m32]() {
-      return this.m32;
-    }
-    set [dartx.m32](value) {
-      this.m32 = value;
-    }
-    get [dartx.m33]() {
-      return this.m33;
-    }
-    set [dartx.m33](value) {
-      this.m33 = value;
-    }
-    get [dartx.m34]() {
-      return this.m34;
-    }
-    set [dartx.m34](value) {
-      this.m34 = value;
-    }
-    get [dartx.m41]() {
-      return this.m41;
-    }
-    set [dartx.m41](value) {
-      this.m41 = value;
-    }
-    get [dartx.m42]() {
-      return this.m42;
-    }
-    set [dartx.m42](value) {
-      this.m42 = value;
-    }
-    get [dartx.m43]() {
-      return this.m43;
-    }
-    set [dartx.m43](value) {
-      this.m43 = value;
-    }
-    get [dartx.m44]() {
-      return this.m44;
-    }
-    set [dartx.m44](value) {
-      this.m44 = value;
-    }
-    [dartx.multiplySelf](...args) {
-      return this.multiplySelf.apply(this, args);
-    }
-    [dartx.preMultiplySelf](...args) {
-      return this.preMultiplySelf.apply(this, args);
-    }
-    [dartx.scale3dSelf](...args) {
-      return this.scale3dSelf.apply(this, args);
-    }
-    [dartx.scaleNonUniformSelf](...args) {
-      return this.scaleNonUniformSelf.apply(this, args);
-    }
-    [dartx.scaleSelf](...args) {
-      return this.scaleSelf.apply(this, args);
-    }
-    [dartx.translateSelf](...args) {
-      return this.translateSelf.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DomMatrix, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DomMatrix, []),
-      new: dart.definiteFunctionType(html$.DomMatrix, [], [html$.DomMatrixReadOnly])
-    }),
-    setters: () => ({
-      [dartx.a]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.b]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.c]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.d]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.e]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.f]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m11]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m12]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m13]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m14]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m21]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m22]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m23]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m24]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m31]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m32]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m33]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m34]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m41]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m42]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m43]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.m44]: dart.definiteFunctionType(dart.void, [core.num])
-    }),
-    methods: () => ({
-      [dartx.multiplySelf]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
-      [dartx.preMultiplySelf]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
-      [dartx.scale3dSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num]),
-      [dartx.scaleNonUniformSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
-      [dartx.scaleSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num]),
-      [dartx.translateSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num, core.num], [core.num])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.DomMatrix, []),
-      _create_2: dart.definiteFunctionType(html$.DomMatrix, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.DOMMatrix, html$.DomMatrix);
-  dart.defineExtensionNames([
-    'parseFromString'
-  ]);
-  html$.DomParser = class DomParser extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.DomParser._create_1();
-    }
-    static _create_1() {
-      return new DOMParser();
-    }
-    [dartx.parseFromString](...args) {
-      return this.parseFromString.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DomParser, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DomParser, []),
-      new: dart.definiteFunctionType(html$.DomParser, [])
-    }),
-    methods: () => ({[dartx.parseFromString]: dart.definiteFunctionType(html$.Document, [core.String, core.String])}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.DomParser, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.DOMParser, html$.DomParser);
-  dart.defineExtensionNames([
-    'w',
-    'x',
-    'y',
-    'z'
-  ]);
-  html$.DomPointReadOnly = class DomPointReadOnly extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(x, y, z, w) {
-      return html$.DomPointReadOnly._create_1(x, y, z, w);
-    }
-    static _create_1(x, y, z, w) {
-      return new DOMPointReadOnly(x, y, z, w);
-    }
-    get [dartx.w]() {
-      return this.w;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.z]() {
-      return this.z;
-    }
-  };
-  dart.setSignature(html$.DomPointReadOnly, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DomPointReadOnly, []),
-      new: dart.definiteFunctionType(html$.DomPointReadOnly, [core.num, core.num, core.num, core.num])
-    }),
-    getters: () => ({
-      [dartx.w]: dart.definiteFunctionType(core.num, []),
-      [dartx.x]: dart.definiteFunctionType(core.num, []),
-      [dartx.y]: dart.definiteFunctionType(core.num, []),
-      [dartx.z]: dart.definiteFunctionType(core.num, [])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.DomPointReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.DOMPointReadOnly, html$.DomPointReadOnly);
-  dart.defineExtensionNames([
-    'w',
-    'w',
-    'x',
-    'x',
-    'y',
-    'y',
-    'z',
-    'z'
-  ]);
-  html$.DomPoint = class DomPoint extends html$.DomPointReadOnly {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(point_OR_x, y, z, w) {
-      if (point_OR_x === void 0) point_OR_x = null;
-      if (y === void 0) y = null;
-      if (z === void 0) z = null;
-      if (w === void 0) w = null;
-      if ((core.Map.is(point_OR_x) || point_OR_x == null) && y == null && z == null && w == null) {
-        let point_1 = html_common.convertDartToNative_Dictionary(core.Map._check(point_OR_x));
-        return html$.DomPoint._create_1(point_1);
-      }
-      if (point_OR_x == null && y == null && z == null && w == null) {
-        return html$.DomPoint._create_2();
-      }
-      if ((typeof point_OR_x == 'number' || point_OR_x == null) && y == null && z == null && w == null) {
-        return html$.DomPoint._create_3(point_OR_x);
-      }
-      if ((typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null) && z == null && w == null) {
-        return html$.DomPoint._create_4(point_OR_x, y);
-      }
-      if ((typeof z == 'number' || z == null) && (typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null) && w == null) {
-        return html$.DomPoint._create_5(point_OR_x, y, z);
-      }
-      if ((typeof w == 'number' || w == null) && (typeof z == 'number' || z == null) && (typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null)) {
-        return html$.DomPoint._create_6(point_OR_x, y, z, w);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1(point_OR_x) {
-      return new DOMPoint(point_OR_x);
-    }
-    static _create_2() {
-      return new DOMPoint();
-    }
-    static _create_3(point_OR_x) {
-      return new DOMPoint(point_OR_x);
-    }
-    static _create_4(point_OR_x, y) {
-      return new DOMPoint(point_OR_x, y);
-    }
-    static _create_5(point_OR_x, y, z) {
-      return new DOMPoint(point_OR_x, y, z);
-    }
-    static _create_6(point_OR_x, y, z, w) {
-      return new DOMPoint(point_OR_x, y, z, w);
-    }
-    static get supported() {
-      return !!window.DOMPoint || !!window.WebKitPoint;
-    }
-    get [dartx.w]() {
-      return this.w;
-    }
-    set [dartx.w](value) {
-      this.w = value;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.z]() {
-      return this.z;
-    }
-    set [dartx.z](value) {
-      this.z = value;
-    }
-  };
-  dart.setSignature(html$.DomPoint, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DomPoint, []),
-      new: dart.definiteFunctionType(html$.DomPoint, [], [dart.dynamic, core.num, core.num, core.num])
-    }),
-    setters: () => ({
-      [dartx.w]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.x]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.y]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.z]: dart.definiteFunctionType(dart.void, [core.num])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.DomPoint, []),
-      _create_3: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic]),
-      _create_4: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic]),
-      _create_5: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_6: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6']
-  });
-  dart.registerExtension(dart.global.DOMPoint, html$.DomPoint);
-  dart.defineExtensionNames([
-    'toString',
-    '==',
-    'hashCode',
-    'intersection',
-    'intersects',
-    'boundingBox',
-    'containsRectangle',
-    'containsPoint',
-    'topLeft',
-    'topRight',
-    'bottomRight',
-    'bottomLeft',
-    'bottom',
-    'height',
-    'left',
-    'right',
-    'top',
-    'width',
-    'x',
-    'y'
-  ]);
-  html$.DomRectReadOnly = class DomRectReadOnly extends _interceptors.Interceptor {
-    [dartx.toString]() {
-      return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
-    }
-    [dartx['==']](other) {
-      if (!RectangleOfnum().is(other)) return false;
-      return dart.equals(this[dartx.left], dart.dload(other, 'left')) && dart.equals(this[dartx.top], dart.dload(other, 'top')) && dart.equals(this[dartx.width], dart.dload(other, 'width')) && dart.equals(this[dartx.height], dart.dload(other, 'height'));
-    }
-    get [dartx.hashCode]() {
-      return html$._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
-    }
-    [dartx.intersection](other) {
-      let x0 = math.max(core.num)(this[dartx.left], other[dartx.left]);
-      let x1 = math.min(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-      if (dart.notNull(x0) <= dart.notNull(x1)) {
-        let y0 = math.max(core.num)(this[dartx.top], other[dartx.top]);
-        let y1 = math.min(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-        if (dart.notNull(y0) <= dart.notNull(y1)) {
-          return new (RectangleOfnum())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
-        }
-      }
-      return null;
-    }
-    [dartx.intersects](other) {
-      return dart.notNull(this[dartx.left]) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-    }
-    [dartx.boundingBox](other) {
-      let right = math.max(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-      let bottom = math.max(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-      let left = math.min(core.num)(this[dartx.left], other[dartx.left]);
-      let top = math.min(core.num)(this[dartx.top], other[dartx.top]);
-      return new (RectangleOfnum())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
-    }
-    [dartx.containsRectangle](another) {
-      return dart.notNull(this[dartx.left]) <= dart.notNull(another[dartx.left]) && dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(another[dartx.top]) && dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
-    }
-    [dartx.containsPoint](another) {
-      return dart.notNull(another.x) >= dart.notNull(this[dartx.left]) && dart.notNull(another.x) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(another.y) >= dart.notNull(this[dartx.top]) && dart.notNull(another.y) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-    }
-    get [dartx.topLeft]() {
-      return new (PointOfnum())(this[dartx.left], this[dartx.top]);
-    }
-    get [dartx.topRight]() {
-      return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), this[dartx.top]);
-    }
-    get [dartx.bottomRight]() {
-      return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
-    }
-    get [dartx.bottomLeft]() {
-      return new (PointOfnum())(this[dartx.left], dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(x, y, width, height) {
-      return html$.DomRectReadOnly._create_1(x, y, width, height);
-    }
-    static _create_1(x, y, width, height) {
-      return new DOMRectReadOnly(x, y, width, height);
-    }
-    get [dartx.bottom]() {
-      return this.bottom;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.left]() {
-      return this.left;
-    }
-    get [dartx.right]() {
-      return this.right;
-    }
-    get [dartx.top]() {
-      return this.top;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  html$.DomRectReadOnly[dart.implements] = () => [RectangleOfnum()];
-  dart.setSignature(html$.DomRectReadOnly, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.DomRectReadOnly, []),
-      new: dart.definiteFunctionType(html$.DomRectReadOnly, [core.num, core.num, core.num, core.num])
-    }),
-    getters: () => ({
-      [dartx.topLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.topRight]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.bottomRight]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.bottomLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.bottom]: dart.definiteFunctionType(core.num, []),
-      [dartx.height]: dart.definiteFunctionType(core.num, []),
-      [dartx.left]: dart.definiteFunctionType(core.num, []),
-      [dartx.right]: dart.definiteFunctionType(core.num, []),
-      [dartx.top]: dart.definiteFunctionType(core.num, []),
-      [dartx.width]: dart.definiteFunctionType(core.num, []),
-      [dartx.x]: dart.definiteFunctionType(core.num, []),
-      [dartx.y]: dart.definiteFunctionType(core.num, [])
-    }),
-    methods: () => ({
-      [dartx.intersection]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
-      [dartx.intersects]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-      [dartx.boundingBox]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
-      [dartx.containsRectangle]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-      [dartx.containsPoint]: dart.definiteFunctionType(core.bool, [PointOfnum()])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.DomRectReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.DOMRectReadOnly, html$.DomRectReadOnly);
-  dart.defineExtensionNames([
-    'add',
-    'contains',
-    'item',
-    'remove',
-    'toggle',
-    'length'
-  ]);
-  html$.DomTokenList = class DomTokenList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.add](...args) {
-      return this.add.apply(this, args);
-    }
-    [dartx.contains](...args) {
-      return this.contains.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.remove](...args) {
-      return this.remove.apply(this, args);
-    }
-    [dartx.toggle](...args) {
-      return this.toggle.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.DomTokenList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomTokenList, [])}),
-    fields: () => ({[dartx.length]: core.int}),
-    methods: () => ({
-      [dartx.add]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.contains]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.remove]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.toggle]: dart.definiteFunctionType(core.bool, [core.String], [core.bool])
-    })
-  });
-  dart.registerExtension(dart.global.DOMTokenList, html$.DomTokenList);
-  dart.defineExtensionNames([
-    'value'
-  ]);
-  html$.DomSettableTokenList = class DomSettableTokenList extends html$.DomTokenList {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.setSignature(html$.DomSettableTokenList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomSettableTokenList, [])}),
-    fields: () => ({[dartx.value]: core.String})
-  });
-  dart.registerExtension(dart.global.DOMSettableTokenList, html$.DomSettableTokenList);
-  html$.ImmutableListMixin$ = dart.generic(E => {
-    let FixedSizeListIteratorOfE = () => (FixedSizeListIteratorOfE = dart.constFn(html$.FixedSizeListIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
-    let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
-    let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
-    dart.defineExtensionNames([
-      'iterator',
-      'add',
-      'addAll',
-      'sort',
-      'shuffle',
-      'insert',
-      'insertAll',
-      'setAll',
-      'removeAt',
-      'removeLast',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'setRange',
-      'removeRange',
-      'replaceRange',
-      'fillRange'
-    ]);
-    class ImmutableListMixin extends core.Object {
-      get iterator() {
-        return new (FixedSizeListIteratorOfE())(this);
-      }
-      [Symbol.iterator]() {
-        return new dart.JsIterator(this[dartx.iterator]);
-      }
-      add(value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
-      }
-      addAll(iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
-      }
-      sort(compare) {
-        if (compare === void 0) compare = null;
-        dart.throw(new core.UnsupportedError("Cannot sort immutable List."));
-      }
-      shuffle(random) {
-        if (random === void 0) random = null;
-        dart.throw(new core.UnsupportedError("Cannot shuffle immutable List."));
-      }
-      insert(index, element) {
-        E._check(element);
-        dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
-      }
-      insertAll(index, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
-      }
-      setAll(index, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot modify an immutable List."));
-      }
-      removeAt(pos) {
-        dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
-      }
-      removeLast() {
-        dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
-      }
-      remove(object) {
-        dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
-      }
-      removeWhere(test) {
-        dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
-      }
-      retainWhere(test) {
-        dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
-      }
-      setRange(start, end, iterable, skipCount) {
-        IterableOfE()._check(iterable);
-        if (skipCount === void 0) skipCount = 0;
-        dart.throw(new core.UnsupportedError("Cannot setRange on immutable List."));
-      }
-      removeRange(start, end) {
-        dart.throw(new core.UnsupportedError("Cannot removeRange on immutable List."));
-      }
-      replaceRange(start, end, iterable) {
-        IterableOfE()._check(iterable);
-        dart.throw(new core.UnsupportedError("Cannot modify an immutable List."));
-      }
-      fillRange(start, end, fillValue) {
-        if (fillValue === void 0) fillValue = null;
-        E._check(fillValue);
-        dart.throw(new core.UnsupportedError("Cannot modify an immutable List."));
-      }
-    }
-    dart.addTypeTests(ImmutableListMixin);
-    ImmutableListMixin[dart.implements] = () => [ListOfE()];
-    dart.setSignature(ImmutableListMixin, {
-      getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [E]),
-        addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
-        sort: dart.definiteFunctionType(dart.void, [], [EAndEToint()]),
-        shuffle: dart.definiteFunctionType(dart.void, [], [math.Random]),
-        insert: dart.definiteFunctionType(dart.void, [core.int, E]),
-        insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        setAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
-        removeAt: dart.definiteFunctionType(E, [core.int]),
-        removeLast: dart.definiteFunctionType(E, []),
-        remove: dart.definiteFunctionType(core.bool, [core.Object]),
-        removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
-        setRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
-        removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-        replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
-        fillRange: dart.definiteFunctionType(dart.void, [core.int, core.int], [E])
-      })
-    });
-    dart.defineExtensionMembers(ImmutableListMixin, [
-      'add',
-      'addAll',
-      'sort',
-      'shuffle',
-      'insert',
-      'insertAll',
-      'setAll',
-      'removeAt',
-      'removeLast',
-      'remove',
-      'removeWhere',
-      'retainWhere',
-      'setRange',
-      'removeRange',
-      'replaceRange',
-      'fillRange',
-      'iterator'
-    ]);
-    return ImmutableListMixin;
-  });
-  html$.ImmutableListMixin = ImmutableListMixin();
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$.DomStringList = class DomStringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html$.ImmutableListMixin$(core.String)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.item](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
+      if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart.notNull(length)) {
+        dart.throw(new core.RangeError.range(end, start, length));
       }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.DomStringList[dart.implements] = () => [ListOfString()];
-  dart.setSignature(html$.DomStringList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomStringList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
-      [__getter__]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.item]: dart.definiteFunctionType(core.String, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.DOMStringList, html$.DomStringList);
-  html$.DomStringMap = class DomStringMap extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.DomStringMap, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.DomStringMap, [])})
-  });
-  html$.EffectModel = class EffectModel extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.EffectModel, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.EffectModel, [])})
-  });
-  dart.registerExtension(dart.global.EffectModel, html$.EffectModel);
-  const _childElements = Symbol('_childElements');
-  const _element$ = Symbol('_element');
-  const _filter$0 = Symbol('_filter');
-  html$._ChildrenElementList = class _ChildrenElementList extends collection.ListBase$(html$.Element) {
-    _wrap(element) {
-      this[_childElements] = html$.HtmlCollection._check(element[_children]);
-      this[_element$] = element;
-    }
-    contains(element) {
-      return this[_childElements][dartx.contains](element);
-    }
-    get isEmpty() {
-      return this[_element$][_firstElementChild] == null;
-    }
-    get length() {
-      return this[_childElements][dartx.length];
     }
     _get(index) {
-      return html$.Element._check(this[_childElements][dartx._get](index));
+      if (typeof index == 'number' && index == index[dartx.toInt]()) {
+        this[_checkIndex](dart.asInt(index));
+      }
+      return E.as(super._get(index));
     }
     _set(index, value) {
-      this[_element$][_replaceChild](value, this[_childElements][dartx._get](index));
+      E._check(value);
+      if (typeof index == 'number' && index == index[dartx.toInt]()) {
+        this[_checkIndex](dart.asInt(index));
+      }
+      super._set(index, value);
       return value;
     }
-    set length(newLength) {
-      dart.throw(new core.UnsupportedError('Cannot resize element lists'));
+    get length() {
+      let len = this[_jsObject].length;
+      if (typeof len === "number" && len >>> 0 === len) {
+        return len;
+      }
+      dart.throw(new core.StateError('Bad JsArray length'));
+    }
+    set length(length) {
+      super._set('length', length);
     }
     add(value) {
-      this[_element$][dartx.append](value);
-      return value;
-    }
-    get iterator() {
-      return this[dartx.toList]()[dartx.iterator];
+      E._check(value);
+      this.callMethod('push', JSArrayOfE().of([value]));
     }
     addAll(iterable) {
-      if (html$._ChildNodeListLazy.is(iterable)) {
-        iterable = ListOfElement().from(iterable);
-      }
-      for (let element of iterable) {
-        this[_element$][dartx.append](element);
-      }
-    }
-    sort(compare) {
-      if (compare === void 0) compare = null;
-      dart.throw(new core.UnsupportedError('Cannot sort element lists'));
-    }
-    shuffle(random) {
-      if (random === void 0) random = null;
-      dart.throw(new core.UnsupportedError('Cannot shuffle element lists'));
-    }
-    removeWhere(test) {
-      this[_filter$0](test, false);
-    }
-    retainWhere(test) {
-      this[_filter$0](test, true);
-    }
-    [_filter$0](test, retainMatching) {
-      let removed = null;
-      if (dart.test(retainMatching)) {
-        removed = this[_element$][dartx.children][dartx.where](dart.fn(e => !dart.test(test(e)), ElementTobool$()));
-      } else {
-        removed = this[_element$][dartx.children][dartx.where](test);
-      }
-      for (let e of core.Iterable._check(removed))
-        dart.dsend(e, 'remove');
-    }
-    setRange(start, end, iterable, skipCount) {
-      if (skipCount === void 0) skipCount = 0;
-      dart.throw(new core.UnimplementedError());
-    }
-    replaceRange(start, end, iterable) {
-      dart.throw(new core.UnimplementedError());
-    }
-    fillRange(start, end, fillValue) {
-      if (fillValue === void 0) fillValue = null;
-      dart.throw(new core.UnimplementedError());
-    }
-    remove(object) {
-      if (html$.Element.is(object)) {
-        let element = object;
-        if (core.identical(element[dartx.parentNode], this[_element$])) {
-          this[_element$][_removeChild](element);
-          return true;
-        }
-      }
-      return false;
+      IterableOfE()._check(iterable);
+      let list = iterable instanceof Array ? iterable : core.List.from(iterable);
+      this.callMethod('push', core.List._check(list));
     }
     insert(index, element) {
-      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
-        dart.throw(new core.RangeError.range(index, 0, this.length));
-      }
-      if (index == this.length) {
-        this[_element$][dartx.append](element);
-      } else {
-        this[_element$][dartx.insertBefore](element, this._get(index));
-      }
-    }
-    setAll(index, iterable) {
-      dart.throw(new core.UnimplementedError());
-    }
-    clear() {
-      this[_element$][_clearChildren]();
+      E._check(element);
+      this[_checkInsertIndex](index);
+      this.callMethod('splice', JSArrayOfObject().of([index, 0, element]));
     }
     removeAt(index) {
-      let result = this._get(index);
-      if (result != null) {
-        this[_element$][_removeChild](result);
-      }
-      return result;
+      this[_checkIndex](index);
+      return E.as(dart.dindex(this.callMethod('splice', JSArrayOfint().of([index, 1])), 0));
     }
     removeLast() {
-      let result = this.last;
-      if (result != null) {
-        this[_element$][_removeChild](result);
-      }
-      return result;
+      if (this.length == 0) dart.throw(new core.RangeError(-1));
+      return E.as(this.callMethod('pop'));
     }
-    get first() {
-      let result = this[_element$][_firstElementChild];
-      if (result == null) dart.throw(new core.StateError("No elements"));
-      return result;
+    removeRange(start, end) {
+      js.JsArray._checkRange(start, end, this.length);
+      this.callMethod('splice', JSArrayOfint().of([start, dart.notNull(end) - dart.notNull(start)]));
     }
-    get last() {
-      let result = this[_element$][_lastElementChild];
-      if (result == null) dart.throw(new core.StateError("No elements"));
-      return result;
-    }
-    get single() {
-      if (dart.notNull(this.length) > 1) dart.throw(new core.StateError("More than one element"));
-      return this.first;
-    }
-    get rawList() {
-      return this[_childElements];
-    }
-  };
-  dart.addSimpleTypeTests(html$._ChildrenElementList);
-  dart.defineNamedConstructor(html$._ChildrenElementList, '_wrap');
-  html$._ChildrenElementList[dart.implements] = () => [html_common.NodeListWrapper];
-  dart.setSignature(html$._ChildrenElementList, {
-    constructors: () => ({_wrap: dart.definiteFunctionType(html$._ChildrenElementList, [html$.Element])}),
-    fields: () => ({
-      [_element$]: html$.Element,
-      [_childElements]: html$.HtmlCollection
-    }),
-    getters: () => ({
-      length: dart.definiteFunctionType(core.int, []),
-      rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
-    }),
-    setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      _get: dart.definiteFunctionType(html$.Element, [core.int]),
-      _set: dart.definiteFunctionType(dart.void, [core.int, html$.Element]),
-      add: dart.definiteFunctionType(html$.Element, [html$.Element]),
-      [_filter$0]: dart.definiteFunctionType(dart.void, [ElementTobool(), core.bool])
-    })
-  });
-  dart.defineExtensionMembers(html$._ChildrenElementList, [
-    'contains',
-    '_get',
-    '_set',
-    'add',
-    'addAll',
-    'sort',
-    'shuffle',
-    'removeWhere',
-    'retainWhere',
-    'setRange',
-    'replaceRange',
-    'fillRange',
-    'remove',
-    'insert',
-    'setAll',
-    'clear',
-    'removeAt',
-    'removeLast',
-    'isEmpty',
-    'length',
-    'length',
-    'iterator',
-    'first',
-    'last',
-    'single'
-  ]);
-  html$.ElementList$ = dart.generic(T => {
-    class ElementList extends collection.ListBase$(T) {}
-    return ElementList;
-  });
-  html$.ElementList = ElementList();
-  const _nodeList = Symbol('_nodeList');
-  const _forElementList = Symbol('_forElementList');
-  html$._FrozenElementList$ = dart.generic(E => {
-    let ElementListOfE = () => (ElementListOfE = dart.constFn(html$.ElementList$(E)))();
-    let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
-    let EToIterableOfString = () => (EToIterableOfString = dart.constFn(dart.definiteFunctionType(IterableOfString(), [E])))();
-    class _FrozenElementList extends collection.ListBase$(E) {
-      _wrap(nodeList) {
-        this[_nodeList] = nodeList;
-      }
-      get length() {
-        return this[_nodeList][dartx.length];
-      }
-      _get(index) {
-        return html$._downcast(html$.Node, E)(this[_nodeList][dartx._get](index));
-      }
-      _set(index, value) {
-        E._check(value);
-        dart.throw(new core.UnsupportedError('Cannot modify list'));
-        return value;
-      }
-      set length(newLength) {
-        dart.throw(new core.UnsupportedError('Cannot modify list'));
-      }
-      sort(compare) {
-        if (compare === void 0) compare = null;
-        dart.throw(new core.UnsupportedError('Cannot sort list'));
-      }
-      shuffle(random) {
-        if (random === void 0) random = null;
-        dart.throw(new core.UnsupportedError('Cannot shuffle list'));
-      }
-      get first() {
-        return html$._downcast(html$.Node, E)(this[_nodeList][dartx.first]);
-      }
-      get last() {
-        return html$._downcast(html$.Node, E)(this[_nodeList][dartx.last]);
-      }
-      get single() {
-        return html$._downcast(html$.Node, E)(this[_nodeList][dartx.single]);
-      }
-      get classes() {
-        return html$._MultiElementCssClassSet.new(this);
-      }
-      get style() {
-        return new html$._CssStyleDeclarationSet(this);
-      }
-      set classes(value) {
-        this[dartx.forEach](dart.fn(e => e[dartx.classes] = value, EToIterableOfString()));
-      }
-      get contentEdge() {
-        return new html$._ContentCssListRect(this);
-      }
-      get paddingEdge() {
-        return this.first[dartx.paddingEdge];
-      }
-      get borderEdge() {
-        return this.first[dartx.borderEdge];
-      }
-      get marginEdge() {
-        return this.first[dartx.marginEdge];
-      }
-      get rawList() {
-        return this[_nodeList];
-      }
-      get onAbort() {
-        return html$.Element.abortEvent[_forElementList](this);
-      }
-      get onBeforeCopy() {
-        return html$.Element.beforeCopyEvent[_forElementList](this);
-      }
-      get onBeforeCut() {
-        return html$.Element.beforeCutEvent[_forElementList](this);
-      }
-      get onBeforePaste() {
-        return html$.Element.beforePasteEvent[_forElementList](this);
-      }
-      get onBlur() {
-        return html$.Element.blurEvent[_forElementList](this);
-      }
-      get onCanPlay() {
-        return html$.Element.canPlayEvent[_forElementList](this);
-      }
-      get onCanPlayThrough() {
-        return html$.Element.canPlayThroughEvent[_forElementList](this);
-      }
-      get onChange() {
-        return html$.Element.changeEvent[_forElementList](this);
-      }
-      get onClick() {
-        return html$.Element.clickEvent[_forElementList](this);
-      }
-      get onContextMenu() {
-        return html$.Element.contextMenuEvent[_forElementList](this);
-      }
-      get onCopy() {
-        return html$.Element.copyEvent[_forElementList](this);
-      }
-      get onCut() {
-        return html$.Element.cutEvent[_forElementList](this);
-      }
-      get onDoubleClick() {
-        return html$.Element.doubleClickEvent[_forElementList](this);
-      }
-      get onDrag() {
-        return html$.Element.dragEvent[_forElementList](this);
-      }
-      get onDragEnd() {
-        return html$.Element.dragEndEvent[_forElementList](this);
-      }
-      get onDragEnter() {
-        return html$.Element.dragEnterEvent[_forElementList](this);
-      }
-      get onDragLeave() {
-        return html$.Element.dragLeaveEvent[_forElementList](this);
-      }
-      get onDragOver() {
-        return html$.Element.dragOverEvent[_forElementList](this);
-      }
-      get onDragStart() {
-        return html$.Element.dragStartEvent[_forElementList](this);
-      }
-      get onDrop() {
-        return html$.Element.dropEvent[_forElementList](this);
-      }
-      get onDurationChange() {
-        return html$.Element.durationChangeEvent[_forElementList](this);
-      }
-      get onEmptied() {
-        return html$.Element.emptiedEvent[_forElementList](this);
-      }
-      get onEnded() {
-        return html$.Element.endedEvent[_forElementList](this);
-      }
-      get onError() {
-        return html$.Element.errorEvent[_forElementList](this);
-      }
-      get onFocus() {
-        return html$.Element.focusEvent[_forElementList](this);
-      }
-      get onInput() {
-        return html$.Element.inputEvent[_forElementList](this);
-      }
-      get onInvalid() {
-        return html$.Element.invalidEvent[_forElementList](this);
-      }
-      get onKeyDown() {
-        return html$.Element.keyDownEvent[_forElementList](this);
-      }
-      get onKeyPress() {
-        return html$.Element.keyPressEvent[_forElementList](this);
-      }
-      get onKeyUp() {
-        return html$.Element.keyUpEvent[_forElementList](this);
-      }
-      get onLoad() {
-        return html$.Element.loadEvent[_forElementList](this);
-      }
-      get onLoadedData() {
-        return html$.Element.loadedDataEvent[_forElementList](this);
-      }
-      get onLoadedMetadata() {
-        return html$.Element.loadedMetadataEvent[_forElementList](this);
-      }
-      get onMouseDown() {
-        return html$.Element.mouseDownEvent[_forElementList](this);
-      }
-      get onMouseEnter() {
-        return html$.Element.mouseEnterEvent[_forElementList](this);
-      }
-      get onMouseLeave() {
-        return html$.Element.mouseLeaveEvent[_forElementList](this);
-      }
-      get onMouseMove() {
-        return html$.Element.mouseMoveEvent[_forElementList](this);
-      }
-      get onMouseOut() {
-        return html$.Element.mouseOutEvent[_forElementList](this);
-      }
-      get onMouseOver() {
-        return html$.Element.mouseOverEvent[_forElementList](this);
-      }
-      get onMouseUp() {
-        return html$.Element.mouseUpEvent[_forElementList](this);
-      }
-      get onMouseWheel() {
-        return html$.Element.mouseWheelEvent[_forElementList](this);
-      }
-      get onPaste() {
-        return html$.Element.pasteEvent[_forElementList](this);
-      }
-      get onPause() {
-        return html$.Element.pauseEvent[_forElementList](this);
-      }
-      get onPlay() {
-        return html$.Element.playEvent[_forElementList](this);
-      }
-      get onPlaying() {
-        return html$.Element.playingEvent[_forElementList](this);
-      }
-      get onRateChange() {
-        return html$.Element.rateChangeEvent[_forElementList](this);
-      }
-      get onReset() {
-        return html$.Element.resetEvent[_forElementList](this);
-      }
-      get onResize() {
-        return html$.Element.resizeEvent[_forElementList](this);
-      }
-      get onScroll() {
-        return html$.Element.scrollEvent[_forElementList](this);
-      }
-      get onSearch() {
-        return html$.Element.searchEvent[_forElementList](this);
-      }
-      get onSeeked() {
-        return html$.Element.seekedEvent[_forElementList](this);
-      }
-      get onSeeking() {
-        return html$.Element.seekingEvent[_forElementList](this);
-      }
-      get onSelect() {
-        return html$.Element.selectEvent[_forElementList](this);
-      }
-      get onSelectStart() {
-        return html$.Element.selectStartEvent[_forElementList](this);
-      }
-      get onStalled() {
-        return html$.Element.stalledEvent[_forElementList](this);
-      }
-      get onSubmit() {
-        return html$.Element.submitEvent[_forElementList](this);
-      }
-      get onSuspend() {
-        return html$.Element.suspendEvent[_forElementList](this);
-      }
-      get onTimeUpdate() {
-        return html$.Element.timeUpdateEvent[_forElementList](this);
-      }
-      get onTouchCancel() {
-        return html$.Element.touchCancelEvent[_forElementList](this);
-      }
-      get onTouchEnd() {
-        return html$.Element.touchEndEvent[_forElementList](this);
-      }
-      get onTouchEnter() {
-        return html$.Element.touchEnterEvent[_forElementList](this);
-      }
-      get onTouchLeave() {
-        return html$.Element.touchLeaveEvent[_forElementList](this);
-      }
-      get onTouchMove() {
-        return html$.Element.touchMoveEvent[_forElementList](this);
-      }
-      get onTouchStart() {
-        return html$.Element.touchStartEvent[_forElementList](this);
-      }
-      get onTransitionEnd() {
-        return html$.Element.transitionEndEvent[_forElementList](this);
-      }
-      get onVolumeChange() {
-        return html$.Element.volumeChangeEvent[_forElementList](this);
-      }
-      get onWaiting() {
-        return html$.Element.waitingEvent[_forElementList](this);
-      }
-      get onFullscreenChange() {
-        return html$.Element.fullscreenChangeEvent[_forElementList](this);
-      }
-      get onFullscreenError() {
-        return html$.Element.fullscreenErrorEvent[_forElementList](this);
-      }
-    }
-    dart.defineNamedConstructor(_FrozenElementList, '_wrap');
-    _FrozenElementList[dart.implements] = () => [ElementListOfE(), html_common.NodeListWrapper];
-    dart.setSignature(_FrozenElementList, {
-      constructors: () => ({_wrap: dart.definiteFunctionType(html$._FrozenElementList$(E), [ListOfNode()])}),
-      fields: () => ({[_nodeList]: ListOfNode()}),
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        classes: dart.definiteFunctionType(html$.CssClassSet, []),
-        style: dart.definiteFunctionType(html$.CssStyleDeclarationBase, []),
-        contentEdge: dart.definiteFunctionType(html$.CssRect, []),
-        paddingEdge: dart.definiteFunctionType(html$.CssRect, []),
-        borderEdge: dart.definiteFunctionType(html$.CssRect, []),
-        marginEdge: dart.definiteFunctionType(html$.CssRect, []),
-        rawList: dart.definiteFunctionType(core.List$(html$.Node), []),
-        onAbort: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onBeforeCopy: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onBeforeCut: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onBeforePaste: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onBlur: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onCanPlay: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onCanPlayThrough: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onClick: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onContextMenu: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onCopy: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
-        onCut: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
-        onDoubleClick: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onDrag: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDragEnd: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDragEnter: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDragLeave: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDragOver: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDragStart: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDrop: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onDurationChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onEmptied: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onEnded: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onError: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onFocus: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onInput: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onInvalid: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onKeyDown: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
-        onKeyPress: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
-        onKeyUp: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
-        onLoad: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onLoadedData: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onLoadedMetadata: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onMouseDown: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseEnter: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseLeave: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseMove: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseOut: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseOver: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseUp: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
-        onMouseWheel: dart.definiteFunctionType(html$.ElementStream$(html$.WheelEvent), []),
-        onPaste: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
-        onPause: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onPlay: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onPlaying: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onRateChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onReset: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onResize: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onScroll: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSearch: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSeeked: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSeeking: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSelect: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSelectStart: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onStalled: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSubmit: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onSuspend: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onTimeUpdate: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onTouchCancel: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-        onTouchEnd: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-        onTouchEnter: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-        onTouchLeave: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-        onTouchMove: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-        onTouchStart: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
-        onTransitionEnd: dart.definiteFunctionType(html$.ElementStream$(html$.TransitionEvent), []),
-        onVolumeChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onWaiting: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onFullscreenChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
-        onFullscreenError: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
-      }),
-      setters: () => ({
-        length: dart.definiteFunctionType(dart.void, [core.int]),
-        classes: dart.definiteFunctionType(dart.void, [IterableOfString()])
-      }),
-      methods: () => ({
-        _get: dart.definiteFunctionType(E, [core.int]),
-        _set: dart.definiteFunctionType(dart.void, [core.int, E])
-      })
-    });
-    dart.defineExtensionMembers(_FrozenElementList, [
-      '_get',
-      '_set',
-      'sort',
-      'shuffle',
-      'length',
-      'length',
-      'first',
-      'last',
-      'single'
-    ]);
-    return _FrozenElementList;
-  });
-  html$._FrozenElementList = _FrozenElementList();
-  html$._ElementFactoryProvider = class _ElementFactoryProvider extends core.Object {
-    static createElement_tag(tag, typeExtension) {
-      if (typeExtension != null) {
-        return document.createElement(tag, typeExtension);
-      }
-      return document.createElement(tag);
-    }
-  };
-  dart.setSignature(html$._ElementFactoryProvider, {
-    statics: () => ({createElement_tag: dart.definiteFunctionType(dart.dynamic, [core.String, core.String])}),
-    names: ['createElement_tag']
-  });
-  const _value$2 = Symbol('_value');
-  html$.ScrollAlignment = class ScrollAlignment extends core.Object {
-    _internal(value) {
-      this[_value$2] = value;
-    }
-    toString() {
-      return dart.str`ScrollAlignment.${this[_value$2]}`;
-    }
-  };
-  dart.defineNamedConstructor(html$.ScrollAlignment, '_internal');
-  dart.setSignature(html$.ScrollAlignment, {
-    constructors: () => ({_internal: dart.definiteFunctionType(html$.ScrollAlignment, [dart.dynamic])}),
-    fields: () => ({[_value$2]: dart.dynamic}),
-    sfields: () => ({
-      TOP: html$.ScrollAlignment,
-      CENTER: html$.ScrollAlignment,
-      BOTTOM: html$.ScrollAlignment
-    })
-  });
-  dart.defineLazy(html$.ScrollAlignment, {
-    get TOP() {
-      return dart.const(new html$.ScrollAlignment._internal('TOP'));
-    },
-    get CENTER() {
-      return dart.const(new html$.ScrollAlignment._internal('CENTER'));
-    },
-    get BOTTOM() {
-      return dart.const(new html$.ScrollAlignment._internal('BOTTOM'));
-    }
-  });
-  const __setter__ = Symbol('__setter__');
-  dart.defineExtensionNames([
-    'height',
-    'name',
-    'src',
-    'type',
-    'width'
-  ]);
-  html$.EmbedElement = class EmbedElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.EmbedElement._check(html$.document[dartx.createElement]("embed"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.name] = null;
-      this[dartx.src] = null;
-      this[dartx.type] = null;
-      this[dartx.width] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('embed');
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [__setter__](...args) {
-      return this.__setter__.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.EmbedElement, 'created');
-  dart.setSignature(html$.EmbedElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.EmbedElement, []),
-      new: dart.definiteFunctionType(html$.EmbedElement, []),
-      created: dart.definiteFunctionType(html$.EmbedElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: core.String,
-      [dartx.name]: core.String,
-      [dartx.src]: core.String,
-      [dartx.type]: core.String,
-      [dartx.width]: core.String
-    }),
-    methods: () => ({
-      [__getter__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLEmbedElement, html$.EmbedElement);
-  html$._EntriesCallback = dart.typedef('_EntriesCallback', () => dart.functionType(dart.void, [ListOfEntry()]));
-  html$._EntryCallback = dart.typedef('_EntryCallback', () => dart.functionType(dart.void, [html$.Entry]));
-  html$._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [html$.FileError]));
-  dart.defineExtensionNames([
-    'colno',
-    'error',
-    'filename',
-    'lineno',
-    'message'
-  ]);
-  html$.ErrorEvent = class ErrorEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.ErrorEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.ErrorEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.ErrorEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.ErrorEvent(type);
-    }
-    get [dartx.colno]() {
-      return this.colno;
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.filename]() {
-      return this.filename;
-    }
-    get [dartx.lineno]() {
-      return this.lineno;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-  };
-  dart.setSignature(html$.ErrorEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ErrorEvent, []),
-      new: dart.definiteFunctionType(html$.ErrorEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.colno]: core.int,
-      [dartx.error]: core.Object,
-      [dartx.filename]: core.String,
-      [dartx.lineno]: core.int,
-      [dartx.message]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ErrorEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ErrorEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.ErrorEvent, html$.ErrorEvent);
-  dart.defineExtensionNames([
-    'close',
-    'onError',
-    'onMessage',
-    'onOpen',
-    'readyState',
-    'url',
-    'withCredentials'
-  ]);
-  html$.EventSource = class EventSource extends html$.EventTarget {
-    static new(url, opts) {
-      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : false;
-      let parsedOptions = dart.map({withCredentials: withCredentials}, core.String, dart.dynamic);
-      return html$.EventSource._factoryEventSource(url, parsedOptions);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static _factoryEventSource(url, eventSourceInitDict) {
-      if (eventSourceInitDict === void 0) eventSourceInitDict = null;
-      if (eventSourceInitDict != null) {
-        let eventSourceInitDict_1 = html_common.convertDartToNative_Dictionary(eventSourceInitDict);
-        return html$.EventSource._create_1(url, eventSourceInitDict_1);
-      }
-      return html$.EventSource._create_2(url);
-    }
-    static _create_1(url, eventSourceInitDict) {
-      return new self.EventSource(url, eventSourceInitDict);
-    }
-    static _create_2(url) {
-      return new self.EventSource(url);
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-    get [dartx.withCredentials]() {
-      return this.withCredentials;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    get [dartx.onError]() {
-      return html$.EventSource.errorEvent.forTarget(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.EventSource.messageEvent.forTarget(this);
-    }
-    get [dartx.onOpen]() {
-      return html$.EventSource.openEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.EventSource, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.EventSource, [core.String], {withCredentials: dart.dynamic}),
-      _: dart.definiteFunctionType(html$.EventSource, [])
-    }),
-    fields: () => ({
-      [dartx.readyState]: core.int,
-      [dartx.url]: core.String,
-      [dartx.withCredentials]: core.bool
-    }),
-    getters: () => ({
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
-      [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({[dartx.close]: dart.definiteFunctionType(dart.void, [])}),
-    sfields: () => ({
-      errorEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent(),
-      openEvent: EventStreamProviderOfEvent(),
-      CLOSED: core.int,
-      CONNECTING: core.int,
-      OPEN: core.int
-    }),
-    statics: () => ({
-      _factoryEventSource: dart.definiteFunctionType(html$.EventSource, [core.String], [core.Map]),
-      _create_1: dart.definiteFunctionType(html$.EventSource, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.EventSource, [dart.dynamic])
-    }),
-    names: ['_factoryEventSource', '_create_1', '_create_2']
-  });
-  html$.EventSource.CLOSED = 2;
-  html$.EventSource.CONNECTING = 0;
-  html$.EventSource.OPEN = 1;
-  dart.defineLazy(html$.EventSource, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    },
-    get openEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('open'));
-    }
-  });
-  dart.registerExtension(dart.global.EventSource, html$.EventSource);
-  const _ptr = Symbol('_ptr');
-  html$.Events = class Events extends core.Object {
-    new(ptr) {
-      this[_ptr] = ptr;
-    }
-    _get(type) {
-      return new (_EventStreamOfEvent())(this[_ptr], type, false);
-    }
-  };
-  dart.setSignature(html$.Events, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.Events, [html$.EventTarget])}),
-    fields: () => ({[_ptr]: html$.EventTarget}),
-    methods: () => ({_get: dart.definiteFunctionType(async.Stream, [core.String])})
-  });
-  html$.ElementEvents = class ElementEvents extends html$.Events {
-    new(ptr) {
-      super.new(ptr);
-    }
-    _get(type) {
-      if (dart.test(html$.ElementEvents.webkitEvents[dartx.keys][dartx.contains](type[dartx.toLowerCase]()))) {
-        if (dart.test(html_common.Device.isWebKit)) {
-          return new (_ElementEventStreamImplOfEvent())(this[_ptr], html$.ElementEvents.webkitEvents[dartx._get](type[dartx.toLowerCase]()), false);
-        }
-      }
-      return new (_ElementEventStreamImplOfEvent())(this[_ptr], type, false);
-    }
-  };
-  dart.setSignature(html$.ElementEvents, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.ElementEvents, [html$.Element])}),
-    sfields: () => ({webkitEvents: MapOfString$String()})
-  });
-  dart.defineLazy(html$.ElementEvents, {
-    get webkitEvents() {
-      return dart.map({animationend: 'webkitAnimationEnd', animationiteration: 'webkitAnimationIteration', animationstart: 'webkitAnimationStart', fullscreenchange: 'webkitfullscreenchange', fullscreenerror: 'webkitfullscreenerror', keyadded: 'webkitkeyadded', keyerror: 'webkitkeyerror', keymessage: 'webkitkeymessage', needkey: 'webkitneedkey', pointerlockchange: 'webkitpointerlockchange', pointerlockerror: 'webkitpointerlockerror', resourcetimingbufferfull: 'webkitresourcetimingbufferfull', transitionend: 'webkitTransitionEnd', speechchange: 'webkitSpeechChange'}, core.String, core.String);
-    }
-  });
-  dart.defineExtensionNames([
-    'waitUntil'
-  ]);
-  html$.ExtendableEvent = class ExtendableEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.ExtendableEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.ExtendableEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.ExtendableEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.ExtendableEvent(type);
-    }
-    [dartx.waitUntil](...args) {
-      return this.waitUntil.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ExtendableEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ExtendableEvent, []),
-      new: dart.definiteFunctionType(html$.ExtendableEvent, [core.String], [core.Map])
-    }),
-    methods: () => ({[dartx.waitUntil]: dart.definiteFunctionType(dart.void, [core.Object])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ExtendableEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ExtendableEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.ExtendableEvent, html$.ExtendableEvent);
-  dart.defineExtensionNames([
-    'protocol',
-    'provider'
-  ]);
-  html$.FederatedCredential = class FederatedCredential extends html$.Credential {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(data) {
-      let data_1 = html_common.convertDartToNative_Dictionary(data);
-      return html$.FederatedCredential._create_1(data_1);
-    }
-    static _create_1(data) {
-      return new self.FederatedCredential(data);
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    get [dartx.provider]() {
-      return this.provider;
-    }
-  };
-  dart.setSignature(html$.FederatedCredential, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FederatedCredential, []),
-      new: dart.definiteFunctionType(html$.FederatedCredential, [core.Map])
-    }),
-    fields: () => ({
-      [dartx.protocol]: core.String,
-      [dartx.provider]: core.String
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.FederatedCredential, [dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.FederatedCredential, html$.FederatedCredential);
-  dart.defineExtensionNames([
-    'respondWith',
-    'isReload',
-    'request'
-  ]);
-  html$.FetchEvent = class FetchEvent extends html$.ExtendableEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.FetchEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.FetchEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.FetchEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.FetchEvent(type);
-    }
-    get [dartx.isReload]() {
-      return this.isReload;
-    }
-    get [dartx.request]() {
-      return this.request;
-    }
-    [dartx.respondWith](...args) {
-      return this.respondWith.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.FetchEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FetchEvent, []),
-      new: dart.definiteFunctionType(html$.FetchEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.isReload]: core.bool,
-      [dartx.request]: html$._Request
-    }),
-    methods: () => ({[dartx.respondWith]: dart.definiteFunctionType(dart.void, [core.Object])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.FetchEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.FetchEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.FetchEvent, html$.FetchEvent);
-  dart.defineExtensionNames([
-    'checkValidity',
-    'reportValidity',
-    'setCustomValidity',
-    'disabled',
-    'elements',
-    'form',
-    'name',
-    'type',
-    'validationMessage',
-    'validity',
-    'willValidate'
-  ]);
-  html$.FieldSetElement = class FieldSetElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.FieldSetElement._check(html$.document[dartx.createElement]("fieldset"));
-    }
-    created() {
-      this[dartx.disabled] = null;
-      this[dartx.elements] = null;
-      this[dartx.form] = null;
-      this[dartx.name] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.elements]() {
-      return this.elements;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.FieldSetElement, 'created');
-  dart.setSignature(html$.FieldSetElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FieldSetElement, []),
-      new: dart.definiteFunctionType(html$.FieldSetElement, []),
-      created: dart.definiteFunctionType(html$.FieldSetElement, [])
-    }),
-    fields: () => ({
-      [dartx.disabled]: core.bool,
-      [dartx.elements]: html$.HtmlFormControlsCollection,
-      [dartx.form]: html$.FormElement,
-      [dartx.name]: core.String,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.willValidate]: core.bool
-    }),
-    methods: () => ({
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLFieldSetElement, html$.FieldSetElement);
-  const _get_lastModifiedDate = Symbol('_get_lastModifiedDate');
-  dart.defineExtensionNames([
-    'lastModifiedDate',
-    'lastModified',
-    'name',
-    'relativePath'
-  ]);
-  html$.File = class File extends html$.Blob {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(fileBits, fileName, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return html$.File._create_1(fileBits, fileName, options_1);
-      }
-      return html$.File._create_2(fileBits, fileName);
-    }
-    static _create_1(fileBits, fileName, options) {
-      return new self.File(fileBits, fileName, options);
-    }
-    static _create_2(fileBits, fileName) {
-      return new self.File(fileBits, fileName);
-    }
-    get [dartx.lastModified]() {
-      return this.lastModified;
-    }
-    get [dartx.lastModifiedDate]() {
-      return html_common.convertNativeToDart_DateTime(this[_get_lastModifiedDate]);
-    }
-    get [_get_lastModifiedDate]() {
-      return this.lastModifiedDate;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.relativePath]() {
-      return this.webkitRelativePath;
-    }
-  };
-  dart.setSignature(html$.File, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.File, []),
-      new: dart.definiteFunctionType(html$.File, [ListOfObject(), core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.lastModified]: core.int,
-      [_get_lastModifiedDate]: dart.dynamic,
-      [dartx.name]: core.String,
-      [dartx.relativePath]: core.String
-    }),
-    getters: () => ({[dartx.lastModifiedDate]: dart.definiteFunctionType(core.DateTime, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.File, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.File, [dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.File, html$.File);
-  html$._FileCallback = dart.typedef('_FileCallback', () => dart.functionType(dart.void, [html$.File]));
-  const _createWriter = Symbol('_createWriter');
-  const _file$ = Symbol('_file');
-  dart.defineExtensionNames([
-    'createWriter',
-    'file'
-  ]);
-  html$.FileEntry = class FileEntry extends html$.Entry {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_createWriter](...args) {
-      return this.createWriter.apply(this, args);
-    }
-    [dartx.createWriter]() {
-      let completer = CompleterOfFileWriter().new();
-      this[_createWriter](dart.fn(value => {
-        completer.complete(value);
-      }, FileWriterToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [_file$](...args) {
-      return this.file.apply(this, args);
-    }
-    [dartx.file]() {
-      let completer = CompleterOfFile$().new();
-      this[_file$](dart.fn(value => {
-        completer.complete(value);
-      }, FileToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-  };
-  dart.setSignature(html$.FileEntry, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FileEntry, [])}),
-    methods: () => ({
-      [_createWriter]: dart.definiteFunctionType(dart.void, [html$._FileWriterCallback], [html$._ErrorCallback]),
-      [dartx.createWriter]: dart.definiteFunctionType(async.Future$(html$.FileWriter), []),
-      [_file$]: dart.definiteFunctionType(dart.void, [html$._FileCallback], [html$._ErrorCallback]),
-      [dartx.file]: dart.definiteFunctionType(async.Future$(html$.File), [])
-    })
-  });
-  dart.registerExtension(dart.global.FileEntry, html$.FileEntry);
-  dart.defineExtensionNames([
-    'code'
-  ]);
-  html$.FileError = class FileError extends html$.DomError {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-  };
-  dart.setSignature(html$.FileError, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FileError, [])}),
-    fields: () => ({[dartx.code]: core.int}),
-    sfields: () => ({
-      ABORT_ERR: core.int,
-      ENCODING_ERR: core.int,
-      INVALID_MODIFICATION_ERR: core.int,
-      INVALID_STATE_ERR: core.int,
-      NOT_FOUND_ERR: core.int,
-      NOT_READABLE_ERR: core.int,
-      NO_MODIFICATION_ALLOWED_ERR: core.int,
-      PATH_EXISTS_ERR: core.int,
-      QUOTA_EXCEEDED_ERR: core.int,
-      SECURITY_ERR: core.int,
-      SYNTAX_ERR: core.int,
-      TYPE_MISMATCH_ERR: core.int
-    })
-  });
-  html$.FileError.ABORT_ERR = 3;
-  html$.FileError.ENCODING_ERR = 5;
-  html$.FileError.INVALID_MODIFICATION_ERR = 9;
-  html$.FileError.INVALID_STATE_ERR = 7;
-  html$.FileError.NOT_FOUND_ERR = 1;
-  html$.FileError.NOT_READABLE_ERR = 4;
-  html$.FileError.NO_MODIFICATION_ALLOWED_ERR = 6;
-  html$.FileError.PATH_EXISTS_ERR = 12;
-  html$.FileError.QUOTA_EXCEEDED_ERR = 10;
-  html$.FileError.SECURITY_ERR = 2;
-  html$.FileError.SYNTAX_ERR = 8;
-  html$.FileError.TYPE_MISMATCH_ERR = 11;
-  dart.registerExtension(dart.global.FileError, html$.FileError);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$.FileList = class FileList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.File), html$.ImmutableListMixin$(html$.File)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.FileList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfFile()];
-  dart.setSignature(html$.FileList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FileList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.File, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.File]),
-      [dartx.item]: dart.definiteFunctionType(html$.File, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.FileList, html$.FileList);
-  dart.defineExtensionNames([
-    'result',
-    'abort',
-    'readAsArrayBuffer',
-    'readAsDataUrl',
-    'readAsText',
-    'onAbort',
-    'onError',
-    'onLoad',
-    'onLoadEnd',
-    'onLoadStart',
-    'onProgress',
-    'error',
-    'readyState'
-  ]);
-  html$.FileReader = class FileReader extends html$.EventTarget {
-    get [dartx.result]() {
-      let res = this.result;
-      if (typed_data.ByteBuffer.is(res)) {
-        return typed_data.Uint8List.view(res);
-      }
-      return res;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.FileReader._create_1();
-    }
-    static _create_1() {
-      return new self.FileReader();
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.readAsArrayBuffer](...args) {
-      return this.readAsArrayBuffer.apply(this, args);
-    }
-    [dartx.readAsDataUrl](...args) {
-      return this.readAsDataURL.apply(this, args);
-    }
-    [dartx.readAsText](...args) {
-      return this.readAsText.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return html$.FileReader.abortEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.FileReader.errorEvent.forTarget(this);
-    }
-    get [dartx.onLoad]() {
-      return html$.FileReader.loadEvent.forTarget(this);
-    }
-    get [dartx.onLoadEnd]() {
-      return html$.FileReader.loadEndEvent.forTarget(this);
-    }
-    get [dartx.onLoadStart]() {
-      return html$.FileReader.loadStartEvent.forTarget(this);
-    }
-    get [dartx.onProgress]() {
-      return html$.FileReader.progressEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.FileReader, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FileReader, []),
-      new: dart.definiteFunctionType(html$.FileReader, [])
-    }),
-    fields: () => ({
-      [dartx.error]: html$.FileError,
-      [dartx.readyState]: core.int
-    }),
-    getters: () => ({
-      [dartx.result]: dart.definiteFunctionType(core.Object, []),
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
-    }),
-    methods: () => ({
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.readAsArrayBuffer]: dart.definiteFunctionType(dart.void, [html$.Blob]),
-      [dartx.readAsDataUrl]: dart.definiteFunctionType(dart.void, [html$.Blob]),
-      [dartx.readAsText]: dart.definiteFunctionType(dart.void, [html$.Blob], [core.String])
-    }),
-    sfields: () => ({
-      abortEvent: EventStreamProviderOfProgressEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      loadEvent: EventStreamProviderOfProgressEvent(),
-      loadEndEvent: EventStreamProviderOfProgressEvent(),
-      loadStartEvent: EventStreamProviderOfProgressEvent(),
-      progressEvent: EventStreamProviderOfProgressEvent(),
-      DONE: core.int,
-      EMPTY: core.int,
-      LOADING: core.int
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.FileReader, [])}),
-    names: ['_create_1']
-  });
-  html$.FileReader.DONE = 2;
-  html$.FileReader.EMPTY = 0;
-  html$.FileReader.LOADING = 1;
-  dart.defineLazy(html$.FileReader, {
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get loadEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('load'));
-    },
-    get loadEndEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('loadend'));
-    },
-    get loadStartEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('loadstart'));
-    },
-    get progressEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
-    }
-  });
-  dart.registerExtension(dart.global.FileReader, html$.FileReader);
-  dart.defineExtensionNames([
-    'type'
-  ]);
-  html$.FileStream = class FileStream extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.FileStream, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FileStream, [])}),
-    fields: () => ({[dartx.type]: core.String})
-  });
-  dart.registerExtension(dart.global.Stream, html$.FileStream);
-  dart.defineExtensionNames([
-    'name',
-    'root'
-  ]);
-  html$.FileSystem = class FileSystem extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!window.webkitRequestFileSystem;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.root]() {
-      return this.root;
-    }
-  };
-  dart.setSignature(html$.FileSystem, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FileSystem, [])}),
-    fields: () => ({
-      [dartx.name]: core.String,
-      [dartx.root]: html$.DirectoryEntry
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.DOMFileSystem, html$.FileSystem);
-  html$._FileSystemCallback = dart.typedef('_FileSystemCallback', () => dart.functionType(dart.void, [html$.FileSystem]));
-  dart.defineExtensionNames([
-    'abort',
-    'seek',
-    'truncate',
-    'write',
-    'onAbort',
-    'onError',
-    'onProgress',
-    'onWrite',
-    'onWriteEnd',
-    'onWriteStart',
-    'error',
-    'length',
-    'position',
-    'readyState'
-  ]);
-  html$.FileWriter = class FileWriter extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.position]() {
-      return this.position;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.seek](...args) {
-      return this.seek.apply(this, args);
-    }
-    [dartx.truncate](...args) {
-      return this.truncate.apply(this, args);
-    }
-    [dartx.write](...args) {
-      return this.write.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return html$.FileWriter.abortEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.FileWriter.errorEvent.forTarget(this);
-    }
-    get [dartx.onProgress]() {
-      return html$.FileWriter.progressEvent.forTarget(this);
-    }
-    get [dartx.onWrite]() {
-      return html$.FileWriter.writeEvent.forTarget(this);
-    }
-    get [dartx.onWriteEnd]() {
-      return html$.FileWriter.writeEndEvent.forTarget(this);
-    }
-    get [dartx.onWriteStart]() {
-      return html$.FileWriter.writeStartEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.FileWriter, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FileWriter, [])}),
-    fields: () => ({
-      [dartx.error]: html$.FileError,
-      [dartx.length]: core.int,
-      [dartx.position]: core.int,
-      [dartx.readyState]: core.int
-    }),
-    getters: () => ({
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onWrite]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onWriteEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onWriteStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
-    }),
-    methods: () => ({
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.seek]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.truncate]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.write]: dart.definiteFunctionType(dart.void, [html$.Blob])
-    }),
-    sfields: () => ({
-      abortEvent: EventStreamProviderOfProgressEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      progressEvent: EventStreamProviderOfProgressEvent(),
-      writeEvent: EventStreamProviderOfProgressEvent(),
-      writeEndEvent: EventStreamProviderOfProgressEvent(),
-      writeStartEvent: EventStreamProviderOfProgressEvent(),
-      DONE: core.int,
-      INIT: core.int,
-      WRITING: core.int
-    })
-  });
-  html$.FileWriter.DONE = 2;
-  html$.FileWriter.INIT = 0;
-  html$.FileWriter.WRITING = 1;
-  dart.defineLazy(html$.FileWriter, {
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get progressEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
-    },
-    get writeEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('write'));
-    },
-    get writeEndEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('writeend'));
-    },
-    get writeStartEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('writestart'));
-    }
-  });
-  dart.registerExtension(dart.global.FileWriter, html$.FileWriter);
-  html$._FileWriterCallback = dart.typedef('_FileWriterCallback', () => dart.functionType(dart.void, [html$.FileWriter]));
-  const _get_relatedTarget = Symbol('_get_relatedTarget');
-  dart.defineExtensionNames([
-    'relatedTarget'
-  ]);
-  html$.FocusEvent = class FocusEvent extends html$.UIEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.FocusEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.FocusEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.FocusEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.FocusEvent(type);
-    }
-    get [dartx.relatedTarget]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
-    }
-    get [_get_relatedTarget]() {
-      return this.relatedTarget;
-    }
-  };
-  dart.setSignature(html$.FocusEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FocusEvent, []),
-      new: dart.definiteFunctionType(html$.FocusEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[_get_relatedTarget]: dart.dynamic}),
-    getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.FocusEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.FocusEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.FocusEvent, html$.FocusEvent);
-  dart.defineExtensionNames([
-    'load',
-    'family',
-    'featureSettings',
-    'loaded',
-    'status',
-    'stretch',
-    'style',
-    'unicodeRange',
-    'variant',
-    'weight'
-  ]);
-  html$.FontFace = class FontFace extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(family, source, descriptors) {
-      if (descriptors === void 0) descriptors = null;
-      if (descriptors != null) {
-        let descriptors_1 = html_common.convertDartToNative_Dictionary(descriptors);
-        return html$.FontFace._create_1(family, source, descriptors_1);
-      }
-      return html$.FontFace._create_2(family, source);
-    }
-    static _create_1(family, source, descriptors) {
-      return new self.FontFace(family, source, descriptors);
-    }
-    static _create_2(family, source) {
-      return new self.FontFace(family, source);
-    }
-    get [dartx.family]() {
-      return this.family;
-    }
-    set [dartx.family](value) {
-      this.family = value;
-    }
-    get [dartx.featureSettings]() {
-      return this.featureSettings;
-    }
-    set [dartx.featureSettings](value) {
-      this.featureSettings = value;
-    }
-    get [dartx.loaded]() {
-      return this.loaded;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    get [dartx.stretch]() {
-      return this.stretch;
-    }
-    set [dartx.stretch](value) {
-      this.stretch = value;
-    }
-    get [dartx.style]() {
-      return this.style;
-    }
-    set [dartx.style](value) {
-      this.style = value;
-    }
-    get [dartx.unicodeRange]() {
-      return this.unicodeRange;
-    }
-    set [dartx.unicodeRange](value) {
-      this.unicodeRange = value;
-    }
-    get [dartx.variant]() {
-      return this.variant;
-    }
-    set [dartx.variant](value) {
-      this.variant = value;
-    }
-    get [dartx.weight]() {
-      return this.weight;
-    }
-    set [dartx.weight](value) {
-      this.weight = value;
-    }
-    [dartx.load](...args) {
-      return this.load.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.FontFace, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FontFace, []),
-      new: dart.definiteFunctionType(html$.FontFace, [core.String, core.Object], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.family]: core.String,
-      [dartx.featureSettings]: core.String,
-      [dartx.loaded]: async.Future,
-      [dartx.status]: core.String,
-      [dartx.stretch]: core.String,
-      [dartx.style]: core.String,
-      [dartx.unicodeRange]: core.String,
-      [dartx.variant]: core.String,
-      [dartx.weight]: core.String
-    }),
-    methods: () => ({[dartx.load]: dart.definiteFunctionType(async.Future, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.FontFace, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.FontFace, [dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.FontFace, html$.FontFace);
-  dart.defineExtensionNames([
-    'add',
-    'check',
-    'clear',
-    'delete',
-    'forEach',
-    'has',
-    'size',
-    'status'
-  ]);
-  html$.FontFaceSet = class FontFaceSet extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    [dartx.add](...args) {
-      return this.add.apply(this, args);
-    }
-    [dartx.check](...args) {
-      return this.check.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.delete](...args) {
-      return this.delete.apply(this, args);
-    }
-    [dartx.forEach](...args) {
-      return this.forEach.apply(this, args);
-    }
-    [dartx.has](...args) {
-      return this.has.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.FontFaceSet, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FontFaceSet, [])}),
-    fields: () => ({
-      [dartx.size]: core.int,
-      [dartx.status]: core.String
-    }),
-    methods: () => ({
-      [dartx.add]: dart.definiteFunctionType(dart.void, [html$.FontFace]),
-      [dartx.check]: dart.definiteFunctionType(core.bool, [core.String], [core.String]),
-      [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-      [dartx.delete]: dart.definiteFunctionType(core.bool, [html$.FontFace]),
-      [dartx.forEach]: dart.definiteFunctionType(dart.void, [html$.FontFaceSetForEachCallback], [core.Object]),
-      [dartx.has]: dart.definiteFunctionType(core.bool, [html$.FontFace])
-    })
-  });
-  dart.registerExtension(dart.global.FontFaceSet, html$.FontFaceSet);
-  html$.FontFaceSetForEachCallback = dart.typedef('FontFaceSetForEachCallback', () => dart.functionType(dart.void, [html$.FontFace, html$.FontFace, html$.FontFaceSet]));
-  dart.defineExtensionNames([
-    'fontfaces'
-  ]);
-  html$.FontFaceSetLoadEvent = class FontFaceSetLoadEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.fontfaces]() {
-      return this.fontfaces;
-    }
-  };
-  dart.setSignature(html$.FontFaceSetLoadEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.FontFaceSetLoadEvent, [])}),
-    fields: () => ({[dartx.fontfaces]: ListOfFontFace()})
-  });
-  dart.registerExtension(dart.global.FontFaceSetLoadEvent, html$.FontFaceSetLoadEvent);
-  dart.defineExtensionNames([
-    'append',
-    'appendBlob',
-    'delete',
-    'get',
-    'getAll',
-    'has',
-    'set'
-  ]);
-  html$.FormData = class FormData extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(form) {
-      if (form === void 0) form = null;
-      if (form != null) {
-        return html$.FormData._create_1(form);
-      }
-      return html$.FormData._create_2();
-    }
-    static _create_1(form) {
-      return new self.FormData(form);
-    }
-    static _create_2() {
-      return new self.FormData();
-    }
-    static get supported() {
-      return !!window.FormData;
-    }
-    [dartx.append](...args) {
-      return this.append.apply(this, args);
-    }
-    [dartx.appendBlob](...args) {
-      return this.append.apply(this, args);
-    }
-    [dartx.delete](...args) {
-      return this.delete.apply(this, args);
-    }
-    [dartx.get](...args) {
-      return this.get.apply(this, args);
-    }
-    [dartx.getAll](...args) {
-      return this.getAll.apply(this, args);
-    }
-    [dartx.has](...args) {
-      return this.has.apply(this, args);
-    }
-    [dartx.set](...args) {
-      return this.set.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.FormData, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FormData, []),
-      new: dart.definiteFunctionType(html$.FormData, [], [html$.FormElement])
-    }),
-    methods: () => ({
-      [dartx.append]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.appendBlob]: dart.definiteFunctionType(dart.void, [core.String, html$.Blob], [core.String]),
-      [dartx.delete]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.get]: dart.definiteFunctionType(core.Object, [core.String]),
-      [dartx.getAll]: dart.definiteFunctionType(core.List$(core.Object), [core.String]),
-      [dartx.has]: dart.definiteFunctionType(core.bool, [core.String]),
-      [dartx.set]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic], [core.String])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.FormData, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.FormData, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.FormData, html$.FormData);
-  const _requestAutocomplete_1 = Symbol('_requestAutocomplete_1');
-  dart.defineExtensionNames([
-    'checkValidity',
-    'item',
-    'reportValidity',
-    'requestAutocomplete',
-    'reset',
-    'submit',
-    'acceptCharset',
-    'action',
-    'autocomplete',
-    'encoding',
-    'enctype',
-    'length',
-    'method',
-    'name',
-    'noValidate',
-    'target'
-  ]);
-  html$.FormElement = class FormElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.FormElement._check(html$.document[dartx.createElement]("form"));
-    }
-    created() {
-      this[dartx.acceptCharset] = null;
-      this[dartx.action] = null;
-      this[dartx.autocomplete] = null;
-      this[dartx.encoding] = null;
-      this[dartx.enctype] = null;
-      this[dartx.length] = null;
-      this[dartx.method] = null;
-      this[dartx.name] = null;
-      this[dartx.noValidate] = null;
-      this[dartx.target] = null;
-      super.created();
-    }
-    get [dartx.acceptCharset]() {
-      return this.acceptCharset;
-    }
-    set [dartx.acceptCharset](value) {
-      this.acceptCharset = value;
-    }
-    get [dartx.action]() {
-      return this.action;
-    }
-    set [dartx.action](value) {
-      this.action = value;
-    }
-    get [dartx.autocomplete]() {
-      return this.autocomplete;
-    }
-    set [dartx.autocomplete](value) {
-      this.autocomplete = value;
-    }
-    get [dartx.encoding]() {
-      return this.encoding;
-    }
-    set [dartx.encoding](value) {
-      this.encoding = value;
-    }
-    get [dartx.enctype]() {
-      return this.enctype;
-    }
-    set [dartx.enctype](value) {
-      this.enctype = value;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.method]() {
-      return this.method;
-    }
-    set [dartx.method](value) {
-      this.method = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.noValidate]() {
-      return this.noValidate;
-    }
-    set [dartx.noValidate](value) {
-      this.noValidate = value;
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-    set [dartx.target](value) {
-      this.target = value;
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.requestAutocomplete](details) {
-      let details_1 = html_common.convertDartToNative_Dictionary(details);
-      this[_requestAutocomplete_1](details_1);
-      return;
-    }
-    [_requestAutocomplete_1](...args) {
-      return this.requestAutocomplete.apply(this, args);
-    }
-    [dartx.reset](...args) {
-      return this.reset.apply(this, args);
-    }
-    [dartx.submit](...args) {
-      return this.submit.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.FormElement, 'created');
-  dart.setSignature(html$.FormElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.FormElement, []),
-      new: dart.definiteFunctionType(html$.FormElement, []),
-      created: dart.definiteFunctionType(html$.FormElement, [])
-    }),
-    fields: () => ({
-      [dartx.acceptCharset]: core.String,
-      [dartx.action]: core.String,
-      [dartx.autocomplete]: core.String,
-      [dartx.encoding]: core.String,
-      [dartx.enctype]: core.String,
-      [dartx.length]: core.int,
-      [dartx.method]: core.String,
-      [dartx.name]: core.String,
-      [dartx.noValidate]: core.bool,
-      [dartx.target]: core.String
-    }),
-    methods: () => ({
-      [__getter__]: dart.definiteFunctionType(core.Object, [core.String]),
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.item]: dart.definiteFunctionType(html$.Element, [core.int]),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.requestAutocomplete]: dart.definiteFunctionType(dart.void, [core.Map]),
-      [_requestAutocomplete_1]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.reset]: dart.definiteFunctionType(dart.void, []),
-      [dartx.submit]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLFormElement, html$.FormElement);
-  html$.FrameRequestCallback = dart.typedef('FrameRequestCallback', () => dart.functionType(dart.void, [core.num]));
-  dart.defineExtensionNames([
-    'axes',
-    'buttons',
-    'connected',
-    'id',
-    'index',
-    'mapping',
-    'timestamp'
-  ]);
-  html$.Gamepad = class Gamepad extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.axes]() {
-      return this.axes;
-    }
-    get [dartx.buttons]() {
-      return this.buttons;
-    }
-    get [dartx.connected]() {
-      return this.connected;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.index]() {
-      return this.index;
-    }
-    get [dartx.mapping]() {
-      return this.mapping;
-    }
-    get [dartx.timestamp]() {
-      return this.timestamp;
-    }
-  };
-  dart.setSignature(html$.Gamepad, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Gamepad, [])}),
-    fields: () => ({
-      [dartx.axes]: ListOfnum(),
-      [dartx.buttons]: ListOfGamepadButton(),
-      [dartx.connected]: core.bool,
-      [dartx.id]: core.String,
-      [dartx.index]: core.int,
-      [dartx.mapping]: core.String,
-      [dartx.timestamp]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.Gamepad, html$.Gamepad);
-  dart.defineExtensionNames([
-    'pressed',
-    'value'
-  ]);
-  html$.GamepadButton = class GamepadButton extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.pressed]() {
-      return this.pressed;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-  };
-  dart.setSignature(html$.GamepadButton, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.GamepadButton, [])}),
-    fields: () => ({
-      [dartx.pressed]: core.bool,
-      [dartx.value]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.GamepadButton, html$.GamepadButton);
-  dart.defineExtensionNames([
-    'gamepad'
-  ]);
-  html$.GamepadEvent = class GamepadEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.GamepadEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.GamepadEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.GamepadEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.GamepadEvent(type);
-    }
-    get [dartx.gamepad]() {
-      return this.gamepad;
-    }
-  };
-  dart.setSignature(html$.GamepadEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.GamepadEvent, []),
-      new: dart.definiteFunctionType(html$.GamepadEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.gamepad]: html$.Gamepad}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.GamepadEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.GamepadEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.GamepadEvent, html$.GamepadEvent);
-  dart.defineExtensionNames([
-    'getRegisteredRegions',
-    'registerRegion',
-    'unregisterRegion'
-  ]);
-  html$.Geofencing = class Geofencing extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getRegisteredRegions](...args) {
-      return this.getRegisteredRegions.apply(this, args);
-    }
-    [dartx.registerRegion](...args) {
-      return this.registerRegion.apply(this, args);
-    }
-    [dartx.unregisterRegion](...args) {
-      return this.unregisterRegion.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Geofencing, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Geofencing, [])}),
-    methods: () => ({
-      [dartx.getRegisteredRegions]: dart.definiteFunctionType(async.Future, []),
-      [dartx.registerRegion]: dart.definiteFunctionType(async.Future, [html$.GeofencingRegion]),
-      [dartx.unregisterRegion]: dart.definiteFunctionType(async.Future, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.Geofencing, html$.Geofencing);
-  dart.defineExtensionNames([
-    'id',
-    'region'
-  ]);
-  html$.GeofencingEvent = class GeofencingEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.region]() {
-      return this.region;
-    }
-  };
-  dart.setSignature(html$.GeofencingEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.GeofencingEvent, [])}),
-    fields: () => ({
-      [dartx.id]: core.String,
-      [dartx.region]: html$.GeofencingRegion
-    })
-  });
-  dart.registerExtension(dart.global.GeofencingEvent, html$.GeofencingEvent);
-  const _getCurrentPosition = Symbol('_getCurrentPosition');
-  const _ensurePosition = Symbol('_ensurePosition');
-  const _watchPosition = Symbol('_watchPosition');
-  const _clearWatch = Symbol('_clearWatch');
-  const _getCurrentPosition_1 = Symbol('_getCurrentPosition_1');
-  const _getCurrentPosition_2 = Symbol('_getCurrentPosition_2');
-  const _getCurrentPosition_3 = Symbol('_getCurrentPosition_3');
-  const _watchPosition_1 = Symbol('_watchPosition_1');
-  const _watchPosition_2 = Symbol('_watchPosition_2');
-  const _watchPosition_3 = Symbol('_watchPosition_3');
-  dart.defineExtensionNames([
-    'getCurrentPosition',
-    'watchPosition'
-  ]);
-  html$.Geolocation = class Geolocation extends _interceptors.Interceptor {
-    [dartx.getCurrentPosition](opts) {
-      let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
-      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
-      let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
-      let options = dart.map();
-      if (enableHighAccuracy != null) {
-        options[dartx._set]('enableHighAccuracy', enableHighAccuracy);
-      }
-      if (timeout != null) {
-        options[dartx._set]('timeout', timeout.inMilliseconds);
-      }
-      if (maximumAge != null) {
-        options[dartx._set]('maximumAge', maximumAge.inMilliseconds);
-      }
-      let completer = CompleterOfGeoposition().new();
-      try {
-        this[_getCurrentPosition](dart.fn(position => {
-          completer.complete(this[_ensurePosition](position));
-        }, GeopositionToNull()), dart.fn(error => {
-          completer.completeError(error);
-        }, PositionErrorToNull()), options);
-      } catch (e) {
-        let stacktrace = dart.stackTrace(e);
-        completer.completeError(e, stacktrace);
-      }
-
-      return completer.future;
-    }
-    [dartx.watchPosition](opts) {
-      let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
-      let timeout = opts && 'timeout' in opts ? opts.timeout : null;
-      let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
-      let options = dart.map();
-      if (enableHighAccuracy != null) {
-        options[dartx._set]('enableHighAccuracy', enableHighAccuracy);
-      }
-      if (timeout != null) {
-        options[dartx._set]('timeout', timeout.inMilliseconds);
-      }
-      if (maximumAge != null) {
-        options[dartx._set]('maximumAge', maximumAge.inMilliseconds);
-      }
-      let watchId = null;
-      let controller = null;
-      controller = StreamControllerOfGeoposition().new({sync: true, onListen: dart.fn(() => {
-          dart.assert(watchId == null);
-          watchId = this[_watchPosition](dart.fn(position => {
-            controller.add(this[_ensurePosition](position));
-          }, GeopositionToNull()), dart.fn(error => {
-            controller.addError(error);
-          }, PositionErrorToNull()), options);
-        }, VoidToNull()), onCancel: dart.fn(() => {
-          dart.assert(watchId != null);
-          this[_clearWatch](watchId);
-        }, VoidToNull())});
-      return controller.stream;
-    }
-    [_ensurePosition](domPosition) {
-      try {
-        if (html$.Geoposition.is(domPosition)) {
-          return domPosition;
-        }
-      } catch (e) {
-      }
-
-      return new html$._GeopositionWrapper(domPosition);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_clearWatch](...args) {
-      return this.clearWatch.apply(this, args);
-    }
-    [_getCurrentPosition](successCallback, errorCallback, options) {
-      if (errorCallback === void 0) errorCallback = null;
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        this[_getCurrentPosition_1](successCallback, errorCallback, options_1);
-        return;
-      }
-      if (errorCallback != null) {
-        this[_getCurrentPosition_2](successCallback, errorCallback);
-        return;
-      }
-      this[_getCurrentPosition_3](successCallback);
-      return;
-    }
-    [_getCurrentPosition_1](...args) {
-      return this.getCurrentPosition.apply(this, args);
-    }
-    [_getCurrentPosition_2](...args) {
-      return this.getCurrentPosition.apply(this, args);
-    }
-    [_getCurrentPosition_3](...args) {
-      return this.getCurrentPosition.apply(this, args);
-    }
-    [_watchPosition](successCallback, errorCallback, options) {
-      if (errorCallback === void 0) errorCallback = null;
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_watchPosition_1](successCallback, errorCallback, options_1);
-      }
-      if (errorCallback != null) {
-        return this[_watchPosition_2](successCallback, errorCallback);
-      }
-      return this[_watchPosition_3](successCallback);
-    }
-    [_watchPosition_1](...args) {
-      return this.watchPosition.apply(this, args);
-    }
-    [_watchPosition_2](...args) {
-      return this.watchPosition.apply(this, args);
-    }
-    [_watchPosition_3](...args) {
-      return this.watchPosition.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Geolocation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Geolocation, [])}),
-    methods: () => ({
-      [dartx.getCurrentPosition]: dart.definiteFunctionType(async.Future$(html$.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
-      [dartx.watchPosition]: dart.definiteFunctionType(async.Stream$(html$.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
-      [_ensurePosition]: dart.definiteFunctionType(html$.Geoposition, [dart.dynamic]),
-      [_clearWatch]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_getCurrentPosition]: dart.definiteFunctionType(dart.void, [html$._PositionCallback], [html$._PositionErrorCallback, core.Map]),
-      [_getCurrentPosition_1]: dart.definiteFunctionType(dart.void, [html$._PositionCallback, html$._PositionErrorCallback, dart.dynamic]),
-      [_getCurrentPosition_2]: dart.definiteFunctionType(dart.void, [html$._PositionCallback, html$._PositionErrorCallback]),
-      [_getCurrentPosition_3]: dart.definiteFunctionType(dart.void, [html$._PositionCallback]),
-      [_watchPosition]: dart.definiteFunctionType(core.int, [html$._PositionCallback], [html$._PositionErrorCallback, core.Map]),
-      [_watchPosition_1]: dart.definiteFunctionType(core.int, [html$._PositionCallback, html$._PositionErrorCallback, dart.dynamic]),
-      [_watchPosition_2]: dart.definiteFunctionType(core.int, [html$._PositionCallback, html$._PositionErrorCallback]),
-      [_watchPosition_3]: dart.definiteFunctionType(core.int, [html$._PositionCallback])
-    })
-  });
-  dart.registerExtension(dart.global.Geolocation, html$.Geolocation);
-  html$._GeopositionWrapper = class _GeopositionWrapper extends core.Object {
-    new(ptr) {
-      this[_ptr] = ptr;
-    }
-    get coords() {
-      return this[_ptr].coords;
-    }
-    get timestamp() {
-      return this[_ptr].timestamp;
-    }
-  };
-  html$._GeopositionWrapper[dart.implements] = () => [html$.Geoposition];
-  dart.setSignature(html$._GeopositionWrapper, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._GeopositionWrapper, [dart.dynamic])}),
-    fields: () => ({[_ptr]: dart.dynamic}),
-    getters: () => ({
-      coords: dart.definiteFunctionType(html$.Coordinates, []),
-      timestamp: dart.definiteFunctionType(core.int, [])
-    })
-  });
-  dart.defineExtensionNames([
-    'coords',
-    'timestamp'
-  ]);
-  html$.Geoposition = class Geoposition extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.coords]() {
-      return this.coords;
-    }
-    get [dartx.timestamp]() {
-      return this.timestamp;
-    }
-  };
-  dart.setSignature(html$.Geoposition, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Geoposition, [])}),
-    fields: () => ({
-      [dartx.coords]: html$.Coordinates,
-      [dartx.timestamp]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.Geoposition, html$.Geoposition);
-  dart.defineExtensionNames([
-    'onAbort',
-    'onBlur',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onChange',
-    'onClick',
-    'onContextMenu',
-    'onDoubleClick',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onDurationChange',
-    'onEmptied',
-    'onEnded',
-    'onError',
-    'onFocus',
-    'onInput',
-    'onInvalid',
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-    'onLoad',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-    'onMouseWheel',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onRateChange',
-    'onReset',
-    'onResize',
-    'onScroll',
-    'onSeeked',
-    'onSeeking',
-    'onSelect',
-    'onStalled',
-    'onSubmit',
-    'onSuspend',
-    'onTimeUpdate',
-    'onVolumeChange',
-    'onWaiting'
-  ]);
-  html$.GlobalEventHandlers = class GlobalEventHandlers extends core.Object {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get onAbort() {
-      return html$.GlobalEventHandlers.abortEvent.forTarget(this);
-    }
-    get onBlur() {
-      return html$.GlobalEventHandlers.blurEvent.forTarget(this);
-    }
-    get onCanPlay() {
-      return html$.GlobalEventHandlers.canPlayEvent.forTarget(this);
-    }
-    get onCanPlayThrough() {
-      return html$.GlobalEventHandlers.canPlayThroughEvent.forTarget(this);
-    }
-    get onChange() {
-      return html$.GlobalEventHandlers.changeEvent.forTarget(this);
-    }
-    get onClick() {
-      return html$.GlobalEventHandlers.clickEvent.forTarget(this);
-    }
-    get onContextMenu() {
-      return html$.GlobalEventHandlers.contextMenuEvent.forTarget(this);
-    }
-    get onDoubleClick() {
-      return html$.GlobalEventHandlers.doubleClickEvent.forTarget(this);
-    }
-    get onDrag() {
-      return html$.GlobalEventHandlers.dragEvent.forTarget(this);
-    }
-    get onDragEnd() {
-      return html$.GlobalEventHandlers.dragEndEvent.forTarget(this);
-    }
-    get onDragEnter() {
-      return html$.GlobalEventHandlers.dragEnterEvent.forTarget(this);
-    }
-    get onDragLeave() {
-      return html$.GlobalEventHandlers.dragLeaveEvent.forTarget(this);
-    }
-    get onDragOver() {
-      return html$.GlobalEventHandlers.dragOverEvent.forTarget(this);
-    }
-    get onDragStart() {
-      return html$.GlobalEventHandlers.dragStartEvent.forTarget(this);
-    }
-    get onDrop() {
-      return html$.GlobalEventHandlers.dropEvent.forTarget(this);
-    }
-    get onDurationChange() {
-      return html$.GlobalEventHandlers.durationChangeEvent.forTarget(this);
-    }
-    get onEmptied() {
-      return html$.GlobalEventHandlers.emptiedEvent.forTarget(this);
-    }
-    get onEnded() {
-      return html$.GlobalEventHandlers.endedEvent.forTarget(this);
-    }
-    get onError() {
-      return html$.GlobalEventHandlers.errorEvent.forTarget(this);
-    }
-    get onFocus() {
-      return html$.GlobalEventHandlers.focusEvent.forTarget(this);
-    }
-    get onInput() {
-      return html$.GlobalEventHandlers.inputEvent.forTarget(this);
-    }
-    get onInvalid() {
-      return html$.GlobalEventHandlers.invalidEvent.forTarget(this);
-    }
-    get onKeyDown() {
-      return html$.GlobalEventHandlers.keyDownEvent.forTarget(this);
-    }
-    get onKeyPress() {
-      return html$.GlobalEventHandlers.keyPressEvent.forTarget(this);
-    }
-    get onKeyUp() {
-      return html$.GlobalEventHandlers.keyUpEvent.forTarget(this);
-    }
-    get onLoad() {
-      return html$.GlobalEventHandlers.loadEvent.forTarget(this);
-    }
-    get onLoadedData() {
-      return html$.GlobalEventHandlers.loadedDataEvent.forTarget(this);
-    }
-    get onLoadedMetadata() {
-      return html$.GlobalEventHandlers.loadedMetadataEvent.forTarget(this);
-    }
-    get onMouseDown() {
-      return html$.GlobalEventHandlers.mouseDownEvent.forTarget(this);
-    }
-    get onMouseEnter() {
-      return html$.GlobalEventHandlers.mouseEnterEvent.forTarget(this);
-    }
-    get onMouseLeave() {
-      return html$.GlobalEventHandlers.mouseLeaveEvent.forTarget(this);
-    }
-    get onMouseMove() {
-      return html$.GlobalEventHandlers.mouseMoveEvent.forTarget(this);
-    }
-    get onMouseOut() {
-      return html$.GlobalEventHandlers.mouseOutEvent.forTarget(this);
-    }
-    get onMouseOver() {
-      return html$.GlobalEventHandlers.mouseOverEvent.forTarget(this);
-    }
-    get onMouseUp() {
-      return html$.GlobalEventHandlers.mouseUpEvent.forTarget(this);
-    }
-    get onMouseWheel() {
-      return html$.GlobalEventHandlers.mouseWheelEvent.forTarget(this);
-    }
-    get onPause() {
-      return html$.GlobalEventHandlers.pauseEvent.forTarget(this);
-    }
-    get onPlay() {
-      return html$.GlobalEventHandlers.playEvent.forTarget(this);
-    }
-    get onPlaying() {
-      return html$.GlobalEventHandlers.playingEvent.forTarget(this);
-    }
-    get onRateChange() {
-      return html$.GlobalEventHandlers.rateChangeEvent.forTarget(this);
-    }
-    get onReset() {
-      return html$.GlobalEventHandlers.resetEvent.forTarget(this);
-    }
-    get onResize() {
-      return html$.GlobalEventHandlers.resizeEvent.forTarget(this);
-    }
-    get onScroll() {
-      return html$.GlobalEventHandlers.scrollEvent.forTarget(this);
-    }
-    get onSeeked() {
-      return html$.GlobalEventHandlers.seekedEvent.forTarget(this);
-    }
-    get onSeeking() {
-      return html$.GlobalEventHandlers.seekingEvent.forTarget(this);
-    }
-    get onSelect() {
-      return html$.GlobalEventHandlers.selectEvent.forTarget(this);
-    }
-    get onStalled() {
-      return html$.GlobalEventHandlers.stalledEvent.forTarget(this);
-    }
-    get onSubmit() {
-      return html$.GlobalEventHandlers.submitEvent.forTarget(this);
-    }
-    get onSuspend() {
-      return html$.GlobalEventHandlers.suspendEvent.forTarget(this);
-    }
-    get onTimeUpdate() {
-      return html$.GlobalEventHandlers.timeUpdateEvent.forTarget(this);
-    }
-    get onVolumeChange() {
-      return html$.GlobalEventHandlers.volumeChangeEvent.forTarget(this);
-    }
-    get onWaiting() {
-      return html$.GlobalEventHandlers.waitingEvent.forTarget(this);
-    }
-  };
-  html$.GlobalEventHandlers[dart.implements] = () => [html$.EventTarget];
-  dart.setSignature(html$.GlobalEventHandlers, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.GlobalEventHandlers, [])}),
-    getters: () => ({
-      onAbort: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onBlur: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onCanPlay: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onCanPlayThrough: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onClick: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onContextMenu: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDoubleClick: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onDrag: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDragEnd: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDragEnter: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDragLeave: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDragOver: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDragStart: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDrop: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onDurationChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onEmptied: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onEnded: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onError: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onFocus: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onInput: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onInvalid: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onKeyDown: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      onKeyPress: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      onKeyUp: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      onLoad: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onLoadedData: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onLoadedMetadata: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onMouseDown: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseEnter: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseLeave: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseMove: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseOut: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseOver: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseUp: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      onMouseWheel: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
-      onPause: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onPlay: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onPlaying: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onRateChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onReset: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onResize: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onScroll: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onSeeked: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onSeeking: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onSelect: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onStalled: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onSubmit: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onSuspend: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onTimeUpdate: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onVolumeChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onWaiting: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    sfields: () => ({
-      abortEvent: EventStreamProviderOfEvent(),
-      blurEvent: EventStreamProviderOfEvent(),
-      canPlayEvent: EventStreamProviderOfEvent(),
-      canPlayThroughEvent: EventStreamProviderOfEvent(),
-      changeEvent: EventStreamProviderOfEvent(),
-      clickEvent: EventStreamProviderOfMouseEvent(),
-      contextMenuEvent: EventStreamProviderOfMouseEvent(),
-      doubleClickEvent: EventStreamProviderOfEvent(),
-      dragEvent: EventStreamProviderOfMouseEvent(),
-      dragEndEvent: EventStreamProviderOfMouseEvent(),
-      dragEnterEvent: EventStreamProviderOfMouseEvent(),
-      dragLeaveEvent: EventStreamProviderOfMouseEvent(),
-      dragOverEvent: EventStreamProviderOfMouseEvent(),
-      dragStartEvent: EventStreamProviderOfMouseEvent(),
-      dropEvent: EventStreamProviderOfMouseEvent(),
-      durationChangeEvent: EventStreamProviderOfEvent(),
-      emptiedEvent: EventStreamProviderOfEvent(),
-      endedEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      focusEvent: EventStreamProviderOfEvent(),
-      inputEvent: EventStreamProviderOfEvent(),
-      invalidEvent: EventStreamProviderOfEvent(),
-      keyDownEvent: EventStreamProviderOfKeyboardEvent(),
-      keyPressEvent: EventStreamProviderOfKeyboardEvent(),
-      keyUpEvent: EventStreamProviderOfKeyboardEvent(),
-      loadEvent: EventStreamProviderOfEvent(),
-      loadedDataEvent: EventStreamProviderOfEvent(),
-      loadedMetadataEvent: EventStreamProviderOfEvent(),
-      mouseDownEvent: EventStreamProviderOfMouseEvent(),
-      mouseEnterEvent: EventStreamProviderOfMouseEvent(),
-      mouseLeaveEvent: EventStreamProviderOfMouseEvent(),
-      mouseMoveEvent: EventStreamProviderOfMouseEvent(),
-      mouseOutEvent: EventStreamProviderOfMouseEvent(),
-      mouseOverEvent: EventStreamProviderOfMouseEvent(),
-      mouseUpEvent: EventStreamProviderOfMouseEvent(),
-      mouseWheelEvent: EventStreamProviderOfWheelEvent(),
-      pauseEvent: EventStreamProviderOfEvent(),
-      playEvent: EventStreamProviderOfEvent(),
-      playingEvent: EventStreamProviderOfEvent(),
-      rateChangeEvent: EventStreamProviderOfEvent(),
-      resetEvent: EventStreamProviderOfEvent(),
-      resizeEvent: EventStreamProviderOfEvent(),
-      scrollEvent: EventStreamProviderOfEvent(),
-      seekedEvent: EventStreamProviderOfEvent(),
-      seekingEvent: EventStreamProviderOfEvent(),
-      selectEvent: EventStreamProviderOfEvent(),
-      stalledEvent: EventStreamProviderOfEvent(),
-      submitEvent: EventStreamProviderOfEvent(),
-      suspendEvent: EventStreamProviderOfEvent(),
-      timeUpdateEvent: EventStreamProviderOfEvent(),
-      volumeChangeEvent: EventStreamProviderOfEvent(),
-      waitingEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineExtensionMembers(html$.GlobalEventHandlers, [
-    'onAbort',
-    'onBlur',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onChange',
-    'onClick',
-    'onContextMenu',
-    'onDoubleClick',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onDurationChange',
-    'onEmptied',
-    'onEnded',
-    'onError',
-    'onFocus',
-    'onInput',
-    'onInvalid',
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-    'onLoad',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-    'onMouseWheel',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onRateChange',
-    'onReset',
-    'onResize',
-    'onScroll',
-    'onSeeked',
-    'onSeeking',
-    'onSelect',
-    'onStalled',
-    'onSubmit',
-    'onSuspend',
-    'onTimeUpdate',
-    'onVolumeChange',
-    'onWaiting'
-  ]);
-  dart.defineLazy(html$.GlobalEventHandlers, {
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('abort'));
-    },
-    get blurEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('blur'));
-    },
-    get canPlayEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('canplay'));
-    },
-    get canPlayThroughEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('canplaythrough'));
-    },
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    },
-    get clickEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('click'));
-    },
-    get contextMenuEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('contextmenu'));
-    },
-    get doubleClickEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('dblclick'));
-    },
-    get dragEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('drag'));
-    },
-    get dragEndEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragend'));
-    },
-    get dragEnterEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragenter'));
-    },
-    get dragLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragleave'));
-    },
-    get dragOverEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragover'));
-    },
-    get dragStartEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragstart'));
-    },
-    get dropEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('drop'));
-    },
-    get durationChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('durationchange'));
-    },
-    get emptiedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('emptied'));
-    },
-    get endedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ended'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get focusEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('focus'));
-    },
-    get inputEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('input'));
-    },
-    get invalidEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('invalid'));
-    },
-    get keyDownEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keydown'));
-    },
-    get keyPressEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keypress'));
-    },
-    get keyUpEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keyup'));
-    },
-    get loadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('load'));
-    },
-    get loadedDataEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadeddata'));
-    },
-    get loadedMetadataEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadedmetadata'));
-    },
-    get mouseDownEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mousedown'));
-    },
-    get mouseEnterEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseenter'));
-    },
-    get mouseLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseleave'));
-    },
-    get mouseMoveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mousemove'));
-    },
-    get mouseOutEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseout'));
-    },
-    get mouseOverEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseover'));
-    },
-    get mouseUpEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseup'));
-    },
-    get mouseWheelEvent() {
-      return dart.const(new (EventStreamProviderOfWheelEvent())('mousewheel'));
-    },
-    get pauseEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pause'));
-    },
-    get playEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('play'));
-    },
-    get playingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('playing'));
-    },
-    get rateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ratechange'));
-    },
-    get resetEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('reset'));
-    },
-    get resizeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('resize'));
-    },
-    get scrollEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('scroll'));
-    },
-    get seekedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('seeked'));
-    },
-    get seekingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('seeking'));
-    },
-    get selectEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('select'));
-    },
-    get stalledEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('stalled'));
-    },
-    get submitEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('submit'));
-    },
-    get suspendEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('suspend'));
-    },
-    get timeUpdateEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('timeupdate'));
-    },
-    get volumeChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('volumechange'));
-    },
-    get waitingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('waiting'));
-    }
-  });
-  dart.defineExtensionNames([
-    'color'
-  ]);
-  html$.HRElement = class HRElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.HRElement._check(html$.document[dartx.createElement]("hr"));
-    }
-    created() {
-      this[dartx.color] = null;
-      super.created();
-    }
-    get [dartx.color]() {
-      return this.color;
-    }
-    set [dartx.color](value) {
-      this.color = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.HRElement, 'created');
-  dart.setSignature(html$.HRElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.HRElement, []),
-      new: dart.definiteFunctionType(html$.HRElement, []),
-      created: dart.definiteFunctionType(html$.HRElement, [])
-    }),
-    fields: () => ({[dartx.color]: core.String})
-  });
-  dart.registerExtension(dart.global.HTMLHRElement, html$.HRElement);
-  const _initHashChangeEvent = Symbol('_initHashChangeEvent');
-  dart.defineExtensionNames([
-    'newUrl',
-    'oldUrl'
-  ]);
-  html$.HashChangeEvent = class HashChangeEvent extends html$.Event {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let oldUrl = opts && 'oldUrl' in opts ? opts.oldUrl : null;
-      let newUrl = opts && 'newUrl' in opts ? opts.newUrl : null;
-      let options = dart.map({canBubble: canBubble, cancelable: cancelable, oldURL: oldUrl, newURL: newUrl}, core.String, core.Object);
-      return new self.HashChangeEvent(type, html_common.convertDartToNative_Dictionary(options));
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.HashChangeEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.HashChangeEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.HashChangeEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.HashChangeEvent(type);
-    }
-    static get supported() {
-      return html_common.Device.isEventTypeSupported('HashChangeEvent');
-    }
-    get [dartx.newUrl]() {
-      return this.newURL;
-    }
-    get [dartx.oldUrl]() {
-      return this.oldURL;
-    }
-    [_initHashChangeEvent](...args) {
-      return this.initHashChangeEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.HashChangeEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.HashChangeEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, oldUrl: core.String, newUrl: core.String}),
-      _: dart.definiteFunctionType(html$.HashChangeEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.newUrl]: core.String,
-      [dartx.oldUrl]: core.String
-    }),
-    methods: () => ({[_initHashChangeEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.HashChangeEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.HashChangeEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.HashChangeEvent, html$.HashChangeEvent);
-  html$.HeadElement = class HeadElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.HeadElement._check(html$.document[dartx.createElement]("head"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.HeadElement, 'created');
-  dart.setSignature(html$.HeadElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.HeadElement, []),
-      new: dart.definiteFunctionType(html$.HeadElement, []),
-      created: dart.definiteFunctionType(html$.HeadElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLHeadElement, html$.HeadElement);
-  html$.Headers = class Headers extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(input) {
-      if (input === void 0) input = null;
-      if (input == null) {
-        return html$.Headers._create_1();
-      }
-      if (html$.Headers.is(input)) {
-        return html$.Headers._create_2(input);
-      }
-      if (core.Map.is(input)) {
-        let input_1 = html_common.convertDartToNative_Dictionary(input);
-        return html$.Headers._create_3(input_1);
-      }
-      if (ListOfObject().is(input)) {
-        return html$.Headers._create_4(input);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1() {
-      return new self.Headers();
-    }
-    static _create_2(input) {
-      return new self.Headers(input);
-    }
-    static _create_3(input) {
-      return new self.Headers(input);
-    }
-    static _create_4(input) {
-      return new self.Headers(input);
-    }
-  };
-  dart.setSignature(html$.Headers, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.Headers, []),
-      new: dart.definiteFunctionType(html$.Headers, [], [dart.dynamic])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.Headers, []),
-      _create_2: dart.definiteFunctionType(html$.Headers, [dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.Headers, [dart.dynamic]),
-      _create_4: dart.definiteFunctionType(html$.Headers, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3', '_create_4']
-  });
-  dart.registerExtension(dart.global.Headers, html$.Headers);
-  html$.HeadingElement = class HeadingElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static h1() {
-      return html$.HeadingElement._check(html$.document[dartx.createElement]("h1"));
-    }
-    static h2() {
-      return html$.HeadingElement._check(html$.document[dartx.createElement]("h2"));
-    }
-    static h3() {
-      return html$.HeadingElement._check(html$.document[dartx.createElement]("h3"));
-    }
-    static h4() {
-      return html$.HeadingElement._check(html$.document[dartx.createElement]("h4"));
-    }
-    static h5() {
-      return html$.HeadingElement._check(html$.document[dartx.createElement]("h5"));
-    }
-    static h6() {
-      return html$.HeadingElement._check(html$.document[dartx.createElement]("h6"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.HeadingElement, 'created');
-  dart.setSignature(html$.HeadingElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.HeadingElement, []),
-      h1: dart.definiteFunctionType(html$.HeadingElement, []),
-      h2: dart.definiteFunctionType(html$.HeadingElement, []),
-      h3: dart.definiteFunctionType(html$.HeadingElement, []),
-      h4: dart.definiteFunctionType(html$.HeadingElement, []),
-      h5: dart.definiteFunctionType(html$.HeadingElement, []),
-      h6: dart.definiteFunctionType(html$.HeadingElement, []),
-      created: dart.definiteFunctionType(html$.HeadingElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLHeadingElement, html$.HeadingElement);
-  const _get_options = Symbol('_get_options');
-  const _get_state = Symbol('_get_state');
-  const _pushState_1 = Symbol('_pushState_1');
-  const _pushState_2 = Symbol('_pushState_2');
-  const _replaceState_1 = Symbol('_replaceState_1');
-  const _replaceState_2 = Symbol('_replaceState_2');
-  dart.defineExtensionNames([
-    'options',
-    'state',
-    'back',
-    'forward',
-    'go',
-    'pushState',
-    'replaceState',
-    'length'
-  ]);
-  html$.History = class History extends _interceptors.Interceptor {
-    static get supportsState() {
-      return !!window.history.pushState;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.options]() {
-      return html_common.convertNativeToDart_Dictionary(this[_get_options]);
-    }
-    get [_get_options]() {
-      return this.options;
-    }
-    get [dartx.state]() {
-      return html_common.convertNativeToDart_SerializedScriptValue(this[_get_state]);
-    }
-    get [_get_state]() {
-      return this.state;
-    }
-    [dartx.back](...args) {
-      return this.back.apply(this, args);
-    }
-    [dartx.forward](...args) {
-      return this.forward.apply(this, args);
-    }
-    [dartx.go](...args) {
-      return this.go.apply(this, args);
-    }
-    [dartx.pushState](data, title, url, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
-        let options_2 = html_common.convertDartToNative_Dictionary(options);
-        this[_pushState_1](data_1, title, url, options_2);
-        return;
-      }
-      let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
-      this[_pushState_2](data_1, title, url);
-      return;
-    }
-    [_pushState_1](...args) {
-      return this.pushState.apply(this, args);
-    }
-    [_pushState_2](...args) {
-      return this.pushState.apply(this, args);
-    }
-    [dartx.replaceState](data, title, url, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
-        let options_2 = html_common.convertDartToNative_Dictionary(options);
-        this[_replaceState_1](data_1, title, url, options_2);
-        return;
-      }
-      let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
-      this[_replaceState_2](data_1, title, url);
-      return;
-    }
-    [_replaceState_1](...args) {
-      return this.replaceState.apply(this, args);
-    }
-    [_replaceState_2](...args) {
-      return this.replaceState.apply(this, args);
-    }
-  };
-  html$.History[dart.implements] = () => [html$.HistoryBase];
-  dart.setSignature(html$.History, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.History, [])}),
-    fields: () => ({
-      [dartx.length]: core.int,
-      [_get_options]: dart.dynamic,
-      [_get_state]: dart.dynamic
-    }),
-    getters: () => ({
-      [dartx.options]: dart.definiteFunctionType(core.Map, []),
-      [dartx.state]: dart.definiteFunctionType(dart.dynamic, [])
-    }),
-    methods: () => ({
-      [dartx.back]: dart.definiteFunctionType(dart.void, []),
-      [dartx.forward]: dart.definiteFunctionType(dart.void, []),
-      [dartx.go]: dart.definiteFunctionType(dart.void, [], [core.int]),
-      [dartx.pushState]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, core.String], [core.Map]),
-      [_pushState_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_pushState_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      [dartx.replaceState]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, core.String], [core.Map]),
-      [_replaceState_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_replaceState_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    sgetters: () => ({supportsState: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.History, html$.History);
-  dart.defineExtensionNames([
-    'deviceId',
-    'deviceName',
-    'hardwareUnitId'
-  ]);
-  html$.VRDevice = class VRDevice extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.deviceId]() {
-      return this.deviceId;
-    }
-    get [dartx.deviceName]() {
-      return this.deviceName;
-    }
-    get [dartx.hardwareUnitId]() {
-      return this.hardwareUnitId;
-    }
-  };
-  dart.setSignature(html$.VRDevice, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VRDevice, [])}),
-    fields: () => ({
-      [dartx.deviceId]: core.String,
-      [dartx.deviceName]: core.String,
-      [dartx.hardwareUnitId]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.VRDevice, html$.VRDevice);
-  dart.defineExtensionNames([
-    'getEyeParameters',
-    'setFieldOfView'
-  ]);
-  html$.HmdvrDevice = class HmdvrDevice extends html$.VRDevice {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getEyeParameters](...args) {
-      return this.getEyeParameters.apply(this, args);
-    }
-    [dartx.setFieldOfView](...args) {
-      return this.setFieldOfView.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.HmdvrDevice, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HmdvrDevice, [])}),
-    methods: () => ({
-      [dartx.getEyeParameters]: dart.definiteFunctionType(html$.VREyeParameters, [core.String]),
-      [dartx.setFieldOfView]: dart.definiteFunctionType(dart.void, [], [html$.VRFieldOfView, html$.VRFieldOfView])
-    })
-  });
-  dart.registerExtension(dart.global.HMDVRDevice, html$.HmdvrDevice);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item',
-    'namedItem'
-  ]);
-  html$.HtmlCollection = class HtmlCollection extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-  };
-  html$.HtmlCollection[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
-  dart.setSignature(html$.HtmlCollection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HtmlCollection, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
-      [dartx.item]: dart.definiteFunctionType(html$.Node, [core.int]),
-      [dartx.namedItem]: dart.definiteFunctionType(core.Object, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLCollection, html$.HtmlCollection);
-  dart.defineExtensionNames([
-    'caretRangeFromPoint',
-    'elementFromPoint',
-    'getCssCanvasContext',
-    'head',
-    'lastModified',
-    'preferredStylesheetSet',
-    'referrer',
-    'selectedStylesheetSet',
-    'selectedStylesheetSet',
-    'styleSheets',
-    'title',
-    'title',
-    'exitFullscreen',
-    'registerElement',
-    'register',
-    'onVisibilityChange',
-    'createElementUpgrader',
-    'body'
-  ]);
-  html$.HtmlDocument = class HtmlDocument extends html$.Document {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.body]() {
-      return this.body;
-    }
-    set [dartx.body](value) {
-      this.body = value;
-    }
-    [dartx.caretRangeFromPoint](x, y) {
-      return this[_caretRangeFromPoint](x, y);
-    }
-    [dartx.elementFromPoint](x, y) {
-      return this[_elementFromPoint](x, y);
-    }
-    static get supportsCssCanvasContext() {
-      return !!document.getCSSCanvasContext;
-    }
-    [dartx.getCssCanvasContext](contextId, name, width, height) {
-      return html$.CanvasRenderingContext._check(this[_getCssCanvasContext](contextId, name, width, height));
-    }
-    get [dartx.head]() {
-      return this[_head$0];
-    }
-    get [dartx.lastModified]() {
-      return this[_lastModified];
-    }
-    get [dartx.preferredStylesheetSet]() {
-      return this[_preferredStylesheetSet];
-    }
-    get [dartx.referrer]() {
-      return this[_referrer];
-    }
-    get [dartx.selectedStylesheetSet]() {
-      return this[_selectedStylesheetSet];
-    }
-    set [dartx.selectedStylesheetSet](value) {
-      this[_selectedStylesheetSet] = value;
-    }
-    get [dartx.styleSheets]() {
-      return this[_styleSheets];
-    }
-    get [dartx.title]() {
-      return this[_title];
-    }
-    set [dartx.title](value) {
-      this[_title] = value;
-    }
-    [dartx.exitFullscreen]() {
-      this[_webkitExitFullscreen]();
-    }
-    [dartx.registerElement](tag, customElementClass, opts) {
-      let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
-      html$._registerCustomElement(window, this, tag, customElementClass, extendsTag);
-    }
-    [dartx.register](tag, customElementClass, opts) {
-      let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
-      return this[dartx.registerElement](tag, customElementClass, {extendsTag: extendsTag});
-    }
-    static _determineVisibilityChangeEventType(e) {
-      if (typeof e.hidden !== "undefined") {
-        return 'visibilitychange';
-      } else if (typeof e.mozHidden !== "undefined") {
-        return 'mozvisibilitychange';
-      } else if (typeof e.msHidden !== "undefined") {
-        return 'msvisibilitychange';
-      } else if (typeof e.webkitHidden !== "undefined") {
-        return 'webkitvisibilitychange';
-      }
-      return 'visibilitychange';
-    }
-    get [dartx.onVisibilityChange]() {
-      return html$.HtmlDocument.visibilityChangeEvent.forTarget(this);
-    }
-    [dartx.createElementUpgrader](type, opts) {
-      let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
-      return new html$._JSElementUpgrader(this, type, extendsTag);
-    }
-  };
-  dart.setSignature(html$.HtmlDocument, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HtmlDocument, [])}),
-    fields: () => ({[dartx.body]: html$.BodyElement}),
-    getters: () => ({
-      [dartx.head]: dart.definiteFunctionType(html$.HeadElement, []),
-      [dartx.lastModified]: dart.definiteFunctionType(core.String, []),
-      [dartx.preferredStylesheetSet]: dart.definiteFunctionType(core.String, []),
-      [dartx.referrer]: dart.definiteFunctionType(core.String, []),
-      [dartx.selectedStylesheetSet]: dart.definiteFunctionType(core.String, []),
-      [dartx.styleSheets]: dart.definiteFunctionType(core.List$(html$.StyleSheet), []),
-      [dartx.title]: dart.definiteFunctionType(core.String, []),
-      [dartx.onVisibilityChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    setters: () => ({
-      [dartx.selectedStylesheetSet]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.title]: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    methods: () => ({
-      [dartx.caretRangeFromPoint]: dart.definiteFunctionType(html$.Range, [core.int, core.int]),
-      [dartx.elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
-      [dartx.getCssCanvasContext]: dart.definiteFunctionType(html$.CanvasRenderingContext, [core.String, core.String, core.int, core.int]),
-      [dartx.registerElement]: dart.definiteFunctionType(dart.void, [core.String, core.Type], {extendsTag: core.String}),
-      [dartx.register]: dart.definiteFunctionType(dart.void, [core.String, core.Type], {extendsTag: core.String}),
-      [dartx.createElementUpgrader]: dart.definiteFunctionType(html$.ElementUpgrader, [core.Type], {extendsTag: core.String})
-    }),
-    sfields: () => ({visibilityChangeEvent: EventStreamProviderOfEvent()}),
-    sgetters: () => ({supportsCssCanvasContext: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({_determineVisibilityChangeEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])}),
-    names: ['_determineVisibilityChangeEventType']
-  });
-  dart.defineLazy(html$.HtmlDocument, {
-    get visibilityChangeEvent() {
-      return dart.const(new (_CustomEventStreamProviderOfEvent())(html$.HtmlDocument._determineVisibilityChangeEventType));
-    }
-  });
-  dart.registerExtension(dart.global.HTMLDocument, html$.HtmlDocument);
-  dart.defineExtensionNames([
-    'item',
-    'namedItem'
-  ]);
-  html$.HtmlFormControlsCollection = class HtmlFormControlsCollection extends html$.HtmlCollection {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.HtmlFormControlsCollection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HtmlFormControlsCollection, [])})
-  });
-  dart.registerExtension(dart.global.HTMLFormControlsCollection, html$.HtmlFormControlsCollection);
-  html$.HtmlHtmlElement = class HtmlHtmlElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.HtmlHtmlElement._check(html$.document[dartx.createElement]("html"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.HtmlHtmlElement, 'created');
-  dart.setSignature(html$.HtmlHtmlElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.HtmlHtmlElement, []),
-      new: dart.definiteFunctionType(html$.HtmlHtmlElement, []),
-      created: dart.definiteFunctionType(html$.HtmlHtmlElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLHtmlElement, html$.HtmlHtmlElement);
-  const _item = Symbol('_item');
-  html$.HtmlOptionsCollection = class HtmlOptionsCollection extends html$.HtmlCollection {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.HtmlOptionsCollection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HtmlOptionsCollection, [])}),
-    methods: () => ({[_item]: dart.definiteFunctionType(html$.Node, [core.int])})
-  });
-  dart.registerExtension(dart.global.HTMLOptionsCollection, html$.HtmlOptionsCollection);
-  const _get_response = Symbol('_get_response');
-  dart.defineExtensionNames([
-    'onAbort',
-    'onError',
-    'onLoad',
-    'onLoadEnd',
-    'onLoadStart',
-    'onProgress',
-    'onTimeout'
-  ]);
-  html$.HttpRequestEventTarget = class HttpRequestEventTarget extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.onAbort]() {
-      return html$.HttpRequestEventTarget.abortEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.HttpRequestEventTarget.errorEvent.forTarget(this);
-    }
-    get [dartx.onLoad]() {
-      return html$.HttpRequestEventTarget.loadEvent.forTarget(this);
-    }
-    get [dartx.onLoadEnd]() {
-      return html$.HttpRequestEventTarget.loadEndEvent.forTarget(this);
-    }
-    get [dartx.onLoadStart]() {
-      return html$.HttpRequestEventTarget.loadStartEvent.forTarget(this);
-    }
-    get [dartx.onProgress]() {
-      return html$.HttpRequestEventTarget.progressEvent.forTarget(this);
-    }
-    get [dartx.onTimeout]() {
-      return html$.HttpRequestEventTarget.timeoutEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.HttpRequestEventTarget, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HttpRequestEventTarget, [])}),
-    getters: () => ({
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
-      [dartx.onTimeout]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
-    }),
-    sfields: () => ({
-      abortEvent: EventStreamProviderOfProgressEvent(),
-      errorEvent: EventStreamProviderOfProgressEvent(),
-      loadEvent: EventStreamProviderOfProgressEvent(),
-      loadEndEvent: EventStreamProviderOfProgressEvent(),
-      loadStartEvent: EventStreamProviderOfProgressEvent(),
-      progressEvent: EventStreamProviderOfProgressEvent(),
-      timeoutEvent: EventStreamProviderOfProgressEvent()
-    })
-  });
-  dart.defineLazy(html$.HttpRequestEventTarget, {
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('error'));
-    },
-    get loadEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('load'));
-    },
-    get loadEndEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('loadend'));
-    },
-    get loadStartEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('loadstart'));
-    },
-    get progressEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
-    },
-    get timeoutEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('timeout'));
-    }
-  });
-  dart.registerExtension(dart.global.XMLHttpRequestEventTarget, html$.HttpRequestEventTarget);
-  dart.defineExtensionNames([
-    'responseHeaders',
-    'open',
-    'response',
-    'abort',
-    'getAllResponseHeaders',
-    'getResponseHeader',
-    'overrideMimeType',
-    'send',
-    'setRequestHeader',
-    'onReadyStateChange',
-    'readyState',
-    'responseText',
-    'responseType',
-    'responseUrl',
-    'responseXml',
-    'status',
-    'statusText',
-    'timeout',
-    'upload',
-    'withCredentials'
-  ]);
-  html$.HttpRequest = class HttpRequest extends html$.HttpRequestEventTarget {
-    static getString(url, opts) {
-      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
-      let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
-      return html$.HttpRequest.request(url, {withCredentials: withCredentials, onProgress: onProgress}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
-    }
-    static postFormData(url, data, opts) {
-      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
-      let responseType = opts && 'responseType' in opts ? opts.responseType : null;
-      let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
-      let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
-      let parts = [];
-      data[dartx.forEach](dart.fn((key, value) => {
-        parts[dartx.add](dart.str`${core.Uri.encodeQueryComponent(key)}=` + dart.str`${core.Uri.encodeQueryComponent(value)}`);
-      }, StringAndStringToNull()));
-      let formData = parts[dartx.join]('&');
-      if (requestHeaders == null) {
-        requestHeaders = dart.map({}, core.String, core.String);
-      }
-      requestHeaders[dartx.putIfAbsent]('Content-Type', dart.fn(() => 'application/x-www-form-urlencoded; charset=UTF-8', VoidToString$()));
-      return html$.HttpRequest.request(url, {method: 'POST', withCredentials: withCredentials, responseType: responseType, requestHeaders: requestHeaders, sendData: formData, onProgress: onProgress});
-    }
-    static request(url, opts) {
-      let method = opts && 'method' in opts ? opts.method : null;
-      let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
-      let responseType = opts && 'responseType' in opts ? opts.responseType : null;
-      let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
-      let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
-      let sendData = opts && 'sendData' in opts ? opts.sendData : null;
-      let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
-      let completer = CompleterOfHttpRequest().new();
-      let xhr = html$.HttpRequest.new();
-      if (method == null) {
-        method = 'GET';
-      }
-      xhr[dartx.open](method, url, {async: true});
-      if (withCredentials != null) {
-        xhr[dartx.withCredentials] = withCredentials;
-      }
-      if (responseType != null) {
-        xhr[dartx.responseType] = responseType;
-      }
-      if (mimeType != null) {
-        xhr[dartx.overrideMimeType](mimeType);
-      }
-      if (requestHeaders != null) {
-        requestHeaders[dartx.forEach](dart.fn((header, value) => {
-          xhr[dartx.setRequestHeader](header, value);
-        }, StringAndStringToNull()));
-      }
-      if (onProgress != null) {
-        xhr[dartx.onProgress].listen(onProgress);
-      }
-      xhr[dartx.onLoad].listen(dart.fn(e => {
-        let accepted = dart.notNull(xhr[dartx.status]) >= 200 && dart.notNull(xhr[dartx.status]) < 300;
-        let fileUri = xhr[dartx.status] == 0;
-        let notModified = xhr[dartx.status] == 304;
-        let unknownRedirect = dart.notNull(xhr[dartx.status]) > 307 && dart.notNull(xhr[dartx.status]) < 400;
-        if (accepted || fileUri || notModified || unknownRedirect) {
-          completer.complete(xhr);
-        } else {
-          completer.completeError(e);
-        }
-      }, ProgressEventToNull()));
-      xhr[dartx.onError].listen(dart.bind(completer, 'completeError'));
-      if (sendData != null) {
-        xhr[dartx.send](sendData);
-      } else {
-        xhr[dartx.send]();
-      }
-      return completer.future;
-    }
-    static get supportsProgressEvent() {
-      let xhr = html$.HttpRequest.new();
-      return "onprogress" in xhr;
-    }
-    static get supportsCrossOrigin() {
-      let xhr = html$.HttpRequest.new();
-      return "withCredentials" in xhr;
-    }
-    static get supportsLoadEndEvent() {
-      let xhr = html$.HttpRequest.new();
-      return "onloadend" in xhr;
-    }
-    static get supportsOverrideMimeType() {
-      let xhr = html$.HttpRequest.new();
-      return "overrideMimeType" in xhr;
-    }
-    static requestCrossOrigin(url, opts) {
-      let method = opts && 'method' in opts ? opts.method : null;
-      let sendData = opts && 'sendData' in opts ? opts.sendData : null;
-      if (dart.test(html$.HttpRequest.supportsCrossOrigin)) {
-        return html$.HttpRequest.request(url, {method: method, sendData: sendData}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
-      }
-      let completer = CompleterOfString().new();
-      if (method == null) {
-        method = 'GET';
-      }
-      let xhr = new XDomainRequest();
-      xhr.open(method, url);
-      xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
-        let response = xhr.responseText;
-        completer.complete(response);
-      }, dynamicToNull$()), 1);
-      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
-        completer.completeError(e);
-      }, dynamicToNull$()), 1);
-      xhr.onprogress = {};
-      xhr.ontimeout = {};
-      xhr.timeout = Number.MAX_VALUE;
-      if (sendData != null) {
-        xhr.send(sendData);
-      } else {
-        xhr.send();
-      }
-      return completer.future;
-    }
-    get [dartx.responseHeaders]() {
-      let headers = dart.map({}, core.String, core.String);
-      let headersString = this[dartx.getAllResponseHeaders]();
-      if (headersString == null) {
-        return headers;
-      }
-      let headersList = headersString[dartx.split]('\r\n');
-      for (let header of headersList) {
-        if (dart.test(header[dartx.isEmpty])) {
-          continue;
-        }
-        let splitIdx = header[dartx.indexOf](': ');
-        if (splitIdx == -1) {
-          continue;
-        }
-        let key = header[dartx.substring](0, splitIdx)[dartx.toLowerCase]();
-        let value = header[dartx.substring](dart.notNull(splitIdx) + 2);
-        if (dart.test(headers[dartx.containsKey](key))) {
-          headers[dartx._set](key, dart.str`${headers[dartx._get](key)}, ${value}`);
-        } else {
-          headers[dartx._set](key, value);
-        }
-      }
-      return headers;
-    }
-    [dartx.open](...args) {
-      return this.open.apply(this, args);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.HttpRequest._create_1();
-    }
-    static _create_1() {
-      return new XMLHttpRequest();
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.response]() {
-      return html$._convertNativeToDart_XHR_Response(this[_get_response]);
-    }
-    get [_get_response]() {
-      return this.response;
-    }
-    get [dartx.responseText]() {
-      return this.responseText;
-    }
-    get [dartx.responseType]() {
-      return this.responseType;
-    }
-    set [dartx.responseType](value) {
-      this.responseType = value;
-    }
-    get [dartx.responseUrl]() {
-      return this.responseURL;
-    }
-    get [dartx.responseXml]() {
-      return this.responseXML;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    get [dartx.statusText]() {
-      return this.statusText;
-    }
-    get [dartx.timeout]() {
-      return this.timeout;
-    }
-    set [dartx.timeout](value) {
-      this.timeout = value;
-    }
-    get [dartx.upload]() {
-      return this.upload;
-    }
-    get [dartx.withCredentials]() {
-      return this.withCredentials;
-    }
-    set [dartx.withCredentials](value) {
-      this.withCredentials = value;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.getAllResponseHeaders](...args) {
-      return this.getAllResponseHeaders.apply(this, args);
-    }
-    [dartx.getResponseHeader](...args) {
-      return this.getResponseHeader.apply(this, args);
-    }
-    [dartx.overrideMimeType](...args) {
-      return this.overrideMimeType.apply(this, args);
-    }
-    [dartx.send](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.setRequestHeader](...args) {
-      return this.setRequestHeader.apply(this, args);
-    }
-    get [dartx.onReadyStateChange]() {
-      return html$.HttpRequest.readyStateChangeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.HttpRequest, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.HttpRequest, []),
-      new: dart.definiteFunctionType(html$.HttpRequest, [])
-    }),
-    fields: () => ({
-      [dartx.readyState]: core.int,
-      [_get_response]: dart.dynamic,
-      [dartx.responseText]: core.String,
-      [dartx.responseType]: core.String,
-      [dartx.responseUrl]: core.String,
-      [dartx.responseXml]: html$.Document,
-      [dartx.status]: core.int,
-      [dartx.statusText]: core.String,
-      [dartx.timeout]: core.int,
-      [dartx.upload]: html$.HttpRequestUpload,
-      [dartx.withCredentials]: core.bool
-    }),
-    getters: () => ({
-      [dartx.responseHeaders]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-      [dartx.response]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
-    }),
-    methods: () => ({
-      [dartx.open]: dart.definiteFunctionType(dart.void, [core.String, core.String], {async: core.bool, user: core.String, password: core.String}),
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.getAllResponseHeaders]: dart.definiteFunctionType(core.String, []),
-      [dartx.getResponseHeader]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.overrideMimeType]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.send]: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
-      [dartx.setRequestHeader]: dart.definiteFunctionType(dart.void, [core.String, core.String])
-    }),
-    sfields: () => ({
-      readyStateChangeEvent: EventStreamProviderOfProgressEvent(),
-      DONE: core.int,
-      HEADERS_RECEIVED: core.int,
-      LOADING: core.int,
-      OPENED: core.int,
-      UNSENT: core.int
-    }),
-    sgetters: () => ({
-      supportsProgressEvent: dart.definiteFunctionType(core.bool, []),
-      supportsCrossOrigin: dart.definiteFunctionType(core.bool, []),
-      supportsLoadEndEvent: dart.definiteFunctionType(core.bool, []),
-      supportsOverrideMimeType: dart.definiteFunctionType(core.bool, [])
-    }),
-    statics: () => ({
-      getString: dart.definiteFunctionType(async.Future$(core.String), [core.String], {withCredentials: core.bool, onProgress: ProgressEventTovoid()}),
-      postFormData: dart.definiteFunctionType(async.Future$(html$.HttpRequest), [core.String, MapOfString$String()], {withCredentials: core.bool, responseType: core.String, requestHeaders: MapOfString$String(), onProgress: ProgressEventTovoid()}),
-      request: dart.definiteFunctionType(async.Future$(html$.HttpRequest), [core.String], {method: core.String, withCredentials: core.bool, responseType: core.String, mimeType: core.String, requestHeaders: MapOfString$String(), sendData: dart.dynamic, onProgress: ProgressEventTovoid()}),
-      requestCrossOrigin: dart.definiteFunctionType(async.Future$(core.String), [core.String], {method: core.String, sendData: core.String}),
-      _create_1: dart.definiteFunctionType(html$.HttpRequest, [])
-    }),
-    names: ['getString', 'postFormData', 'request', 'requestCrossOrigin', '_create_1']
-  });
-  html$.HttpRequest.DONE = 4;
-  html$.HttpRequest.HEADERS_RECEIVED = 2;
-  html$.HttpRequest.LOADING = 3;
-  html$.HttpRequest.OPENED = 1;
-  html$.HttpRequest.UNSENT = 0;
-  dart.defineLazy(html$.HttpRequest, {
-    get readyStateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfProgressEvent())('readystatechange'));
-    }
-  });
-  dart.registerExtension(dart.global.XMLHttpRequest, html$.HttpRequest);
-  html$.HttpRequestUpload = class HttpRequestUpload extends html$.HttpRequestEventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.HttpRequestUpload, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.HttpRequestUpload, [])})
-  });
-  dart.registerExtension(dart.global.XMLHttpRequestUpload, html$.HttpRequestUpload);
-  const _get_contentWindow = Symbol('_get_contentWindow');
-  dart.defineExtensionNames([
-    'contentWindow',
-    'allowFullscreen',
-    'height',
-    'name',
-    'sandbox',
-    'src',
-    'srcdoc',
-    'width'
-  ]);
-  html$.IFrameElement = class IFrameElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.IFrameElement._check(html$.document[dartx.createElement]("iframe"));
-    }
-    created() {
-      this[dartx.allowFullscreen] = null;
-      this[_get_contentWindow] = null;
-      this[dartx.height] = null;
-      this[dartx.name] = null;
-      this[dartx.sandbox] = null;
-      this[dartx.src] = null;
-      this[dartx.srcdoc] = null;
-      this[dartx.width] = null;
-      super.created();
-    }
-    get [dartx.allowFullscreen]() {
-      return this.allowFullscreen;
-    }
-    set [dartx.allowFullscreen](value) {
-      this.allowFullscreen = value;
-    }
-    get [dartx.contentWindow]() {
-      return html$._convertNativeToDart_Window(this[_get_contentWindow]);
-    }
-    get [_get_contentWindow]() {
-      return this.contentWindow;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.sandbox]() {
-      return this.sandbox;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.srcdoc]() {
-      return this.srcdoc;
-    }
-    set [dartx.srcdoc](value) {
-      this.srcdoc = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.IFrameElement, 'created');
-  dart.setSignature(html$.IFrameElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.IFrameElement, []),
-      new: dart.definiteFunctionType(html$.IFrameElement, []),
-      created: dart.definiteFunctionType(html$.IFrameElement, [])
-    }),
-    fields: () => ({
-      [dartx.allowFullscreen]: core.bool,
-      [_get_contentWindow]: dart.dynamic,
-      [dartx.height]: core.String,
-      [dartx.name]: core.String,
-      [dartx.sandbox]: html$.DomSettableTokenList,
-      [dartx.src]: core.String,
-      [dartx.srcdoc]: core.String,
-      [dartx.width]: core.String
-    }),
-    getters: () => ({[dartx.contentWindow]: dart.definiteFunctionType(html$.WindowBase, [])})
-  });
-  dart.registerExtension(dart.global.HTMLIFrameElement, html$.IFrameElement);
-  dart.defineExtensionNames([
-    'height',
-    'width'
-  ]);
-  html$.ImageBitmap = class ImageBitmap extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-  };
-  dart.setSignature(html$.ImageBitmap, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ImageBitmap, [])}),
-    fields: () => ({
-      [dartx.height]: core.int,
-      [dartx.width]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.ImageBitmap, html$.ImageBitmap);
-  dart.defineExtensionNames([
-    'data',
-    'height',
-    'width'
-  ]);
-  html$.ImageData = class ImageData extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(data_OR_sw, sh_OR_sw, sh) {
-      if (sh === void 0) sh = null;
-      if (typeof sh_OR_sw == 'number' && typeof data_OR_sw == 'number' && sh == null) {
-        return html$.ImageData._create_1(data_OR_sw, sh_OR_sw);
-      }
-      if (typeof sh_OR_sw == 'number' && typed_data.Uint8ClampedList.is(data_OR_sw) && sh == null) {
-        return html$.ImageData._create_2(data_OR_sw, sh_OR_sw);
-      }
-      if (typeof sh == 'number' && typeof sh_OR_sw == 'number' && typed_data.Uint8ClampedList.is(data_OR_sw)) {
-        return html$.ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1(data_OR_sw, sh_OR_sw) {
-      return new self.ImageData(data_OR_sw, sh_OR_sw);
-    }
-    static _create_2(data_OR_sw, sh_OR_sw) {
-      return new self.ImageData(data_OR_sw, sh_OR_sw);
-    }
-    static _create_3(data_OR_sw, sh_OR_sw, sh) {
-      return new self.ImageData(data_OR_sw, sh_OR_sw, sh);
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-  };
-  dart.setSignature(html$.ImageData, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ImageData, []),
-      new: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, core.int], [core.int])
-    }),
-    fields: () => ({
-      [dartx.data]: typed_data.Uint8ClampedList,
-      [dartx.height]: core.int,
-      [dartx.width]: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3']
-  });
-  dart.registerExtension(dart.global.ImageData, html$.ImageData);
-  dart.defineExtensionNames([
-    'alt',
-    'complete',
-    'crossOrigin',
-    'currentSrc',
-    'height',
-    'isMap',
-    'naturalHeight',
-    'naturalWidth',
-    'sizes',
-    'src',
-    'srcset',
-    'useMap',
-    'width'
-  ]);
-  html$.ImageElement = class ImageElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(opts) {
-      let src = opts && 'src' in opts ? opts.src : null;
-      let width = opts && 'width' in opts ? opts.width : null;
-      let height = opts && 'height' in opts ? opts.height : null;
-      let e = html$.ImageElement._check(html$.document[dartx.createElement]("img"));
-      if (src != null) e[dartx.src] = src;
-      if (width != null) e[dartx.width] = width;
-      if (height != null) e[dartx.height] = height;
-      return e;
-    }
-    created() {
-      this[dartx.alt] = null;
-      this[dartx.complete] = null;
-      this[dartx.crossOrigin] = null;
-      this[dartx.currentSrc] = null;
-      this[dartx.height] = null;
-      this[dartx.isMap] = null;
-      this[dartx.naturalHeight] = null;
-      this[dartx.naturalWidth] = null;
-      this[dartx.sizes] = null;
-      this[dartx.src] = null;
-      this[dartx.srcset] = null;
-      this[dartx.useMap] = null;
-      this[dartx.width] = null;
-      super.created();
-    }
-    get [dartx.alt]() {
-      return this.alt;
-    }
-    set [dartx.alt](value) {
-      this.alt = value;
-    }
-    get [dartx.complete]() {
-      return this.complete;
-    }
-    get [dartx.crossOrigin]() {
-      return this.crossOrigin;
-    }
-    set [dartx.crossOrigin](value) {
-      this.crossOrigin = value;
-    }
-    get [dartx.currentSrc]() {
-      return this.currentSrc;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.isMap]() {
-      return this.isMap;
-    }
-    set [dartx.isMap](value) {
-      this.isMap = value;
-    }
-    get [dartx.naturalHeight]() {
-      return this.naturalHeight;
-    }
-    get [dartx.naturalWidth]() {
-      return this.naturalWidth;
-    }
-    get [dartx.sizes]() {
-      return this.sizes;
-    }
-    set [dartx.sizes](value) {
-      this.sizes = value;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.srcset]() {
-      return this.srcset;
-    }
-    set [dartx.srcset](value) {
-      this.srcset = value;
-    }
-    get [dartx.useMap]() {
-      return this.useMap;
-    }
-    set [dartx.useMap](value) {
-      this.useMap = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.ImageElement, 'created');
-  html$.ImageElement[dart.implements] = () => [html$.CanvasImageSource];
-  dart.setSignature(html$.ImageElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ImageElement, []),
-      new: dart.definiteFunctionType(html$.ImageElement, [], {src: core.String, width: core.int, height: core.int}),
-      created: dart.definiteFunctionType(html$.ImageElement, [])
-    }),
-    fields: () => ({
-      [dartx.alt]: core.String,
-      [dartx.complete]: core.bool,
-      [dartx.crossOrigin]: core.String,
-      [dartx.currentSrc]: core.String,
-      [dartx.height]: core.int,
-      [dartx.isMap]: core.bool,
-      [dartx.naturalHeight]: core.int,
-      [dartx.naturalWidth]: core.int,
-      [dartx.sizes]: core.String,
-      [dartx.src]: core.String,
-      [dartx.srcset]: core.String,
-      [dartx.useMap]: core.String,
-      [dartx.width]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.HTMLImageElement, html$.ImageElement);
-  dart.defineExtensionNames([
-    'inspect'
-  ]);
-  html$.InjectedScriptHost = class InjectedScriptHost extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.inspect](...args) {
-      return this.inspect.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.InjectedScriptHost, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.InjectedScriptHost, [])}),
-    methods: () => ({[dartx.inspect]: dart.definiteFunctionType(dart.void, [core.Object, core.Object])})
-  });
-  dart.registerExtension(dart.global.InjectedScriptHost, html$.InjectedScriptHost);
-  dart.defineExtensionNames([
-    'firesTouchEvents'
-  ]);
-  html$.InputDevice = class InputDevice extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(deviceInitDict) {
-      if (deviceInitDict === void 0) deviceInitDict = null;
-      if (deviceInitDict != null) {
-        let deviceInitDict_1 = html_common.convertDartToNative_Dictionary(deviceInitDict);
-        return html$.InputDevice._create_1(deviceInitDict_1);
-      }
-      return html$.InputDevice._create_2();
-    }
-    static _create_1(deviceInitDict) {
-      return new self.InputDevice(deviceInitDict);
-    }
-    static _create_2() {
-      return new self.InputDevice();
-    }
-    get [dartx.firesTouchEvents]() {
-      return this.firesTouchEvents;
-    }
-  };
-  dart.setSignature(html$.InputDevice, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.InputDevice, []),
-      new: dart.definiteFunctionType(html$.InputDevice, [], [core.Map])
-    }),
-    fields: () => ({[dartx.firesTouchEvents]: core.bool}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.InputDevice, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.InputDevice, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.InputDevice, html$.InputDevice);
-  const _get_valueAsDate = Symbol('_get_valueAsDate');
-  const _set_valueAsDate = Symbol('_set_valueAsDate');
-  dart.defineExtensionNames([
-    'valueAsDate',
-    'valueAsDate',
-    'checkValidity',
-    'reportValidity',
-    'select',
-    'setCustomValidity',
-    'setRangeText',
-    'setSelectionRange',
-    'stepDown',
-    'stepUp',
-    'accept',
-    'alt',
-    'autocapitalize',
-    'autocomplete',
-    'autofocus',
-    'capture',
-    'checked',
-    'defaultChecked',
-    'defaultValue',
-    'dirName',
-    'disabled',
-    'files',
-    'form',
-    'formAction',
-    'formEnctype',
-    'formMethod',
-    'formNoValidate',
-    'formTarget',
-    'height',
-    'incremental',
-    'indeterminate',
-    'inputMode',
-    'labels',
-    'list',
-    'max',
-    'maxLength',
-    'min',
-    'minLength',
-    'multiple',
-    'name',
-    'pattern',
-    'placeholder',
-    'readOnly',
-    'required',
-    'selectionDirection',
-    'selectionEnd',
-    'selectionStart',
-    'size',
-    'src',
-    'step',
-    'type',
-    'validationMessage',
-    'validity',
-    'value',
-    'valueAsNumber',
-    'entries',
-    'directory',
-    'width',
-    'willValidate'
-  ]);
-  html$.InputElement = class InputElement extends html$.HtmlElement {
-    static new(opts) {
-      let type = opts && 'type' in opts ? opts.type : null;
-      let e = html$.InputElement._check(html$.document[dartx.createElement]("input"));
-      if (type != null) {
-        try {
-          e[dartx.type] = type;
-        } catch (_) {
-        }
-
-      }
-      return e;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.accept] = null;
-      this[dartx.alt] = null;
-      this[dartx.autocapitalize] = null;
-      this[dartx.autocomplete] = null;
-      this[dartx.autofocus] = null;
-      this[dartx.capture] = null;
-      this[dartx.checked] = null;
-      this[dartx.defaultChecked] = null;
-      this[dartx.defaultValue] = null;
-      this[dartx.dirName] = null;
-      this[dartx.disabled] = null;
-      this[dartx.files] = null;
-      this[dartx.form] = null;
-      this[dartx.formAction] = null;
-      this[dartx.formEnctype] = null;
-      this[dartx.formMethod] = null;
-      this[dartx.formNoValidate] = null;
-      this[dartx.formTarget] = null;
-      this[dartx.height] = null;
-      this[dartx.incremental] = null;
-      this[dartx.indeterminate] = null;
-      this[dartx.inputMode] = null;
-      this[dartx.labels] = null;
-      this[dartx.list] = null;
-      this[dartx.max] = null;
-      this[dartx.maxLength] = null;
-      this[dartx.min] = null;
-      this[dartx.minLength] = null;
-      this[dartx.multiple] = null;
-      this[dartx.name] = null;
-      this[dartx.pattern] = null;
-      this[dartx.placeholder] = null;
-      this[dartx.readOnly] = null;
-      this[dartx.required] = null;
-      this[dartx.selectionDirection] = null;
-      this[dartx.selectionEnd] = null;
-      this[dartx.selectionStart] = null;
-      this[dartx.size] = null;
-      this[dartx.src] = null;
-      this[dartx.step] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.value] = null;
-      this[_get_valueAsDate] = null;
-      this[dartx.valueAsNumber] = null;
-      this[dartx.entries] = null;
-      this[dartx.directory] = null;
-      this[dartx.width] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    get [dartx.accept]() {
-      return this.accept;
-    }
-    set [dartx.accept](value) {
-      this.accept = value;
-    }
-    get [dartx.alt]() {
-      return this.alt;
-    }
-    set [dartx.alt](value) {
-      this.alt = value;
-    }
-    get [dartx.autocapitalize]() {
-      return this.autocapitalize;
-    }
-    set [dartx.autocapitalize](value) {
-      this.autocapitalize = value;
-    }
-    get [dartx.autocomplete]() {
-      return this.autocomplete;
-    }
-    set [dartx.autocomplete](value) {
-      this.autocomplete = value;
-    }
-    get [dartx.autofocus]() {
-      return this.autofocus;
-    }
-    set [dartx.autofocus](value) {
-      this.autofocus = value;
-    }
-    get [dartx.capture]() {
-      return this.capture;
-    }
-    set [dartx.capture](value) {
-      this.capture = value;
-    }
-    get [dartx.checked]() {
-      return this.checked;
-    }
-    set [dartx.checked](value) {
-      this.checked = value;
-    }
-    get [dartx.defaultChecked]() {
-      return this.defaultChecked;
-    }
-    set [dartx.defaultChecked](value) {
-      this.defaultChecked = value;
-    }
-    get [dartx.defaultValue]() {
-      return this.defaultValue;
-    }
-    set [dartx.defaultValue](value) {
-      this.defaultValue = value;
-    }
-    get [dartx.dirName]() {
-      return this.dirName;
-    }
-    set [dartx.dirName](value) {
-      this.dirName = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.files]() {
-      return this.files;
-    }
-    set [dartx.files](value) {
-      this.files = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.formAction]() {
-      return this.formAction;
-    }
-    set [dartx.formAction](value) {
-      this.formAction = value;
-    }
-    get [dartx.formEnctype]() {
-      return this.formEnctype;
-    }
-    set [dartx.formEnctype](value) {
-      this.formEnctype = value;
-    }
-    get [dartx.formMethod]() {
-      return this.formMethod;
-    }
-    set [dartx.formMethod](value) {
-      this.formMethod = value;
-    }
-    get [dartx.formNoValidate]() {
-      return this.formNoValidate;
-    }
-    set [dartx.formNoValidate](value) {
-      this.formNoValidate = value;
-    }
-    get [dartx.formTarget]() {
-      return this.formTarget;
-    }
-    set [dartx.formTarget](value) {
-      this.formTarget = value;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.incremental]() {
-      return this.incremental;
-    }
-    set [dartx.incremental](value) {
-      this.incremental = value;
-    }
-    get [dartx.indeterminate]() {
-      return this.indeterminate;
-    }
-    set [dartx.indeterminate](value) {
-      this.indeterminate = value;
-    }
-    get [dartx.inputMode]() {
-      return this.inputMode;
-    }
-    set [dartx.inputMode](value) {
-      this.inputMode = value;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.list]() {
-      return this.list;
-    }
-    get [dartx.max]() {
-      return this.max;
-    }
-    set [dartx.max](value) {
-      this.max = value;
-    }
-    get [dartx.maxLength]() {
-      return this.maxLength;
-    }
-    set [dartx.maxLength](value) {
-      this.maxLength = value;
-    }
-    get [dartx.min]() {
-      return this.min;
-    }
-    set [dartx.min](value) {
-      this.min = value;
-    }
-    get [dartx.minLength]() {
-      return this.minLength;
-    }
-    set [dartx.minLength](value) {
-      this.minLength = value;
-    }
-    get [dartx.multiple]() {
-      return this.multiple;
-    }
-    set [dartx.multiple](value) {
-      this.multiple = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.pattern]() {
-      return this.pattern;
-    }
-    set [dartx.pattern](value) {
-      this.pattern = value;
-    }
-    get [dartx.placeholder]() {
-      return this.placeholder;
-    }
-    set [dartx.placeholder](value) {
-      this.placeholder = value;
-    }
-    get [dartx.readOnly]() {
-      return this.readOnly;
-    }
-    set [dartx.readOnly](value) {
-      this.readOnly = value;
-    }
-    get [dartx.required]() {
-      return this.required;
-    }
-    set [dartx.required](value) {
-      this.required = value;
-    }
-    get [dartx.selectionDirection]() {
-      return this.selectionDirection;
-    }
-    set [dartx.selectionDirection](value) {
-      this.selectionDirection = value;
-    }
-    get [dartx.selectionEnd]() {
-      return this.selectionEnd;
-    }
-    set [dartx.selectionEnd](value) {
-      this.selectionEnd = value;
-    }
-    get [dartx.selectionStart]() {
-      return this.selectionStart;
-    }
-    set [dartx.selectionStart](value) {
-      this.selectionStart = value;
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-    set [dartx.size](value) {
-      this.size = value;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.step]() {
-      return this.step;
-    }
-    set [dartx.step](value) {
-      this.step = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.valueAsDate]() {
-      return html_common.convertNativeToDart_DateTime(this[_get_valueAsDate]);
-    }
-    get [_get_valueAsDate]() {
-      return this.valueAsDate;
-    }
-    set [dartx.valueAsDate](value) {
-      this[_set_valueAsDate] = html_common.convertDartToNative_DateTime(value);
-    }
-    set [_set_valueAsDate](value) {
-      this.valueAsDate = value;
-    }
-    get [dartx.valueAsNumber]() {
-      return this.valueAsNumber;
-    }
-    set [dartx.valueAsNumber](value) {
-      this.valueAsNumber = value;
-    }
-    get [dartx.entries]() {
-      return this.webkitEntries;
-    }
-    get [dartx.directory]() {
-      return this.webkitdirectory;
-    }
-    set [dartx.directory](value) {
-      this.webkitdirectory = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.select](...args) {
-      return this.select.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-    [dartx.setRangeText](...args) {
-      return this.setRangeText.apply(this, args);
-    }
-    [dartx.setSelectionRange](...args) {
-      return this.setSelectionRange.apply(this, args);
-    }
-    [dartx.stepDown](...args) {
-      return this.stepDown.apply(this, args);
-    }
-    [dartx.stepUp](...args) {
-      return this.stepUp.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.InputElement, 'created');
-  html$.InputElement[dart.implements] = () => [html$.HiddenInputElement, html$.SearchInputElement, html$.TextInputElement, html$.UrlInputElement, html$.TelephoneInputElement, html$.EmailInputElement, html$.PasswordInputElement, html$.DateInputElement, html$.MonthInputElement, html$.WeekInputElement, html$.TimeInputElement, html$.LocalDateTimeInputElement, html$.NumberInputElement, html$.RangeInputElement, html$.CheckboxInputElement, html$.RadioButtonInputElement, html$.FileUploadInputElement, html$.SubmitButtonInputElement, html$.ImageButtonInputElement, html$.ResetButtonInputElement, html$.ButtonInputElement];
-  dart.setSignature(html$.InputElement, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.InputElement, [], {type: core.String}),
-      _: dart.definiteFunctionType(html$.InputElement, []),
-      created: dart.definiteFunctionType(html$.InputElement, [])
-    }),
-    fields: () => ({
-      [dartx.accept]: core.String,
-      [dartx.alt]: core.String,
-      [dartx.autocapitalize]: core.String,
-      [dartx.autocomplete]: core.String,
-      [dartx.autofocus]: core.bool,
-      [dartx.capture]: core.bool,
-      [dartx.checked]: core.bool,
-      [dartx.defaultChecked]: core.bool,
-      [dartx.defaultValue]: core.String,
-      [dartx.dirName]: core.String,
-      [dartx.disabled]: core.bool,
-      [dartx.files]: ListOfFile(),
-      [dartx.form]: html$.FormElement,
-      [dartx.formAction]: core.String,
-      [dartx.formEnctype]: core.String,
-      [dartx.formMethod]: core.String,
-      [dartx.formNoValidate]: core.bool,
-      [dartx.formTarget]: core.String,
-      [dartx.height]: core.int,
-      [dartx.incremental]: core.bool,
-      [dartx.indeterminate]: core.bool,
-      [dartx.inputMode]: core.String,
-      [dartx.labels]: ListOfNode(),
-      [dartx.list]: html$.HtmlElement,
-      [dartx.max]: core.String,
-      [dartx.maxLength]: core.int,
-      [dartx.min]: core.String,
-      [dartx.minLength]: core.int,
-      [dartx.multiple]: core.bool,
-      [dartx.name]: core.String,
-      [dartx.pattern]: core.String,
-      [dartx.placeholder]: core.String,
-      [dartx.readOnly]: core.bool,
-      [dartx.required]: core.bool,
-      [dartx.selectionDirection]: core.String,
-      [dartx.selectionEnd]: core.int,
-      [dartx.selectionStart]: core.int,
-      [dartx.size]: core.int,
-      [dartx.src]: core.String,
-      [dartx.step]: core.String,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.value]: core.String,
-      [_get_valueAsDate]: dart.dynamic,
-      [dartx.valueAsNumber]: core.num,
-      [dartx.entries]: ListOfEntry(),
-      [dartx.directory]: core.bool,
-      [dartx.width]: core.int,
-      [dartx.willValidate]: core.bool
-    }),
-    getters: () => ({[dartx.valueAsDate]: dart.definiteFunctionType(core.DateTime, [])}),
-    setters: () => ({
-      [dartx.valueAsDate]: dart.definiteFunctionType(dart.void, [core.DateTime]),
-      [_set_valueAsDate]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    }),
-    methods: () => ({
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.select]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.setRangeText]: dart.definiteFunctionType(dart.void, [core.String], {start: core.int, end: core.int, selectionMode: core.String}),
-      [dartx.setSelectionRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.String]),
-      [dartx.stepDown]: dart.definiteFunctionType(dart.void, [], [core.int]),
-      [dartx.stepUp]: dart.definiteFunctionType(dart.void, [], [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLInputElement, html$.InputElement);
-  dart.defineExtensionNames([
-    'autofocus',
-    'disabled',
-    'incremental',
-    'indeterminate',
-    'name',
-    'value'
-  ]);
-  html$.InputElementBase = class InputElementBase extends core.Object {
-    new() {
-      this[autofocus] = null;
-      this[disabled] = null;
-      this[incremental] = null;
-      this[indeterminate] = null;
-      this[name] = null;
-      this[value$] = null;
-    }
-    get autofocus() {
-      return this[autofocus];
-    }
-    set autofocus(value) {
-      this[autofocus] = value;
-    }
-    get disabled() {
-      return this[disabled];
-    }
-    set disabled(value) {
-      this[disabled] = value;
-    }
-    get incremental() {
-      return this[incremental];
-    }
-    set incremental(value) {
-      this[incremental] = value;
-    }
-    get indeterminate() {
-      return this[indeterminate];
-    }
-    set indeterminate(value) {
-      this[indeterminate] = value;
-    }
-    get name() {
-      return this[name];
-    }
-    set name(value) {
-      this[name] = value;
-    }
-    get value() {
-      return this[value$];
-    }
-    set value(value) {
-      this[value$] = value;
-    }
-  };
-  const autofocus = Symbol(html$.InputElementBase.name + "." + 'autofocus'.toString());
-  const disabled = Symbol(html$.InputElementBase.name + "." + 'disabled'.toString());
-  const incremental = Symbol(html$.InputElementBase.name + "." + 'incremental'.toString());
-  const indeterminate = Symbol(html$.InputElementBase.name + "." + 'indeterminate'.toString());
-  const name = Symbol(html$.InputElementBase.name + "." + 'name'.toString());
-  const value$ = Symbol(html$.InputElementBase.name + "." + 'value'.toString());
-  html$.InputElementBase[dart.implements] = () => [html$.Element];
-  dart.setSignature(html$.InputElementBase, {
-    fields: () => ({
-      autofocus: core.bool,
-      disabled: core.bool,
-      incremental: core.bool,
-      indeterminate: core.bool,
-      name: core.String,
-      value: core.String
-    })
-  });
-  dart.defineExtensionMembers(html$.InputElementBase, [
-    'autofocus',
-    'autofocus',
-    'disabled',
-    'disabled',
-    'incremental',
-    'incremental',
-    'indeterminate',
-    'indeterminate',
-    'name',
-    'name',
-    'value',
-    'value'
-  ]);
-  html$.HiddenInputElement = class HiddenInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'hidden'});
-    }
-  };
-  html$.HiddenInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.HiddenInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.HiddenInputElement, [])})
-  });
-  dart.defineExtensionNames([
-    'autocomplete',
-    'maxLength',
-    'pattern',
-    'placeholder',
-    'readOnly',
-    'required',
-    'size',
-    'selectionDirection',
-    'selectionEnd',
-    'selectionStart'
-  ]);
-  html$.TextInputElementBase = class TextInputElementBase extends core.Object {
-    new() {
-      this[autocomplete] = null;
-      this[maxLength] = null;
-      this[pattern] = null;
-      this[placeholder] = null;
-      this[readOnly] = null;
-      this[required] = null;
-      this[size] = null;
-      this[selectionDirection] = null;
-      this[selectionEnd] = null;
-      this[selectionStart] = null;
-    }
-    get autocomplete() {
-      return this[autocomplete];
-    }
-    set autocomplete(value) {
-      this[autocomplete] = value;
-    }
-    get maxLength() {
-      return this[maxLength];
-    }
-    set maxLength(value) {
-      this[maxLength] = value;
-    }
-    get pattern() {
-      return this[pattern];
-    }
-    set pattern(value) {
-      this[pattern] = value;
-    }
-    get placeholder() {
-      return this[placeholder];
-    }
-    set placeholder(value) {
-      this[placeholder] = value;
-    }
-    get readOnly() {
-      return this[readOnly];
-    }
-    set readOnly(value) {
-      this[readOnly] = value;
-    }
-    get required() {
-      return this[required];
-    }
-    set required(value) {
-      this[required] = value;
-    }
-    get size() {
-      return this[size];
-    }
-    set size(value) {
-      this[size] = value;
-    }
-    get selectionDirection() {
-      return this[selectionDirection];
-    }
-    set selectionDirection(value) {
-      this[selectionDirection] = value;
-    }
-    get selectionEnd() {
-      return this[selectionEnd];
-    }
-    set selectionEnd(value) {
-      this[selectionEnd] = value;
-    }
-    get selectionStart() {
-      return this[selectionStart];
-    }
-    set selectionStart(value) {
-      this[selectionStart] = value;
-    }
-  };
-  const autocomplete = Symbol(html$.TextInputElementBase.name + "." + 'autocomplete'.toString());
-  const maxLength = Symbol(html$.TextInputElementBase.name + "." + 'maxLength'.toString());
-  const pattern = Symbol(html$.TextInputElementBase.name + "." + 'pattern'.toString());
-  const placeholder = Symbol(html$.TextInputElementBase.name + "." + 'placeholder'.toString());
-  const readOnly = Symbol(html$.TextInputElementBase.name + "." + 'readOnly'.toString());
-  const required = Symbol(html$.TextInputElementBase.name + "." + 'required'.toString());
-  const size = Symbol(html$.TextInputElementBase.name + "." + 'size'.toString());
-  const selectionDirection = Symbol(html$.TextInputElementBase.name + "." + 'selectionDirection'.toString());
-  const selectionEnd = Symbol(html$.TextInputElementBase.name + "." + 'selectionEnd'.toString());
-  const selectionStart = Symbol(html$.TextInputElementBase.name + "." + 'selectionStart'.toString());
-  html$.TextInputElementBase[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.TextInputElementBase, {
-    fields: () => ({
-      autocomplete: core.String,
-      maxLength: core.int,
-      pattern: core.String,
-      placeholder: core.String,
-      readOnly: core.bool,
-      required: core.bool,
-      size: core.int,
-      selectionDirection: core.String,
-      selectionEnd: core.int,
-      selectionStart: core.int
-    })
-  });
-  dart.defineExtensionMembers(html$.TextInputElementBase, [
-    'autocomplete',
-    'autocomplete',
-    'maxLength',
-    'maxLength',
-    'pattern',
-    'pattern',
-    'placeholder',
-    'placeholder',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required',
-    'size',
-    'size',
-    'selectionDirection',
-    'selectionDirection',
-    'selectionEnd',
-    'selectionEnd',
-    'selectionStart',
-    'selectionStart'
-  ]);
-  dart.defineExtensionNames([
-    'dirName'
-  ]);
-  html$.SearchInputElement = class SearchInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'search'});
-    }
-    get dirName() {
-      return this[dirName];
-    }
-    set dirName(value) {
-      this[dirName] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'search'})[dartx.type] == 'search';
-    }
-  };
-  const dirName = Symbol(html$.SearchInputElement.name + "." + 'dirName'.toString());
-  html$.SearchInputElement[dart.implements] = () => [html$.TextInputElementBase];
-  dart.setSignature(html$.SearchInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.SearchInputElement, [])}),
-    fields: () => ({dirName: core.String}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.SearchInputElement, ['dirName', 'dirName']);
-  dart.defineExtensionNames([
-    'dirName'
-  ]);
-  html$.TextInputElement = class TextInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'text'});
-    }
-    get dirName() {
-      return this[dirName$];
-    }
-    set dirName(value) {
-      this[dirName$] = value;
-    }
-  };
-  const dirName$ = Symbol(html$.TextInputElement.name + "." + 'dirName'.toString());
-  html$.TextInputElement[dart.implements] = () => [html$.TextInputElementBase];
-  dart.setSignature(html$.TextInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.TextInputElement, [])}),
-    fields: () => ({dirName: core.String})
-  });
-  dart.defineExtensionMembers(html$.TextInputElement, ['dirName', 'dirName']);
-  html$.UrlInputElement = class UrlInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'url'});
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'url'})[dartx.type] == 'url';
-    }
-  };
-  html$.UrlInputElement[dart.implements] = () => [html$.TextInputElementBase];
-  dart.setSignature(html$.UrlInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.UrlInputElement, [])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  html$.TelephoneInputElement = class TelephoneInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'tel'});
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'tel'})[dartx.type] == 'tel';
-    }
-  };
-  html$.TelephoneInputElement[dart.implements] = () => [html$.TextInputElementBase];
-  dart.setSignature(html$.TelephoneInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.TelephoneInputElement, [])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionNames([
-    'autocomplete',
-    'autofocus',
-    'maxLength',
-    'multiple',
-    'pattern',
-    'placeholder',
-    'readOnly',
-    'required',
-    'size'
-  ]);
-  html$.EmailInputElement = class EmailInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'email'});
-    }
-    get autocomplete() {
-      return this[autocomplete$];
-    }
-    set autocomplete(value) {
-      this[autocomplete$] = value;
-    }
-    get autofocus() {
-      return this[autofocus$];
-    }
-    set autofocus(value) {
-      this[autofocus$] = value;
-    }
-    get maxLength() {
-      return this[maxLength$];
-    }
-    set maxLength(value) {
-      this[maxLength$] = value;
-    }
-    get multiple() {
-      return this[multiple];
-    }
-    set multiple(value) {
-      this[multiple] = value;
-    }
-    get pattern() {
-      return this[pattern$];
-    }
-    set pattern(value) {
-      this[pattern$] = value;
-    }
-    get placeholder() {
-      return this[placeholder$];
-    }
-    set placeholder(value) {
-      this[placeholder$] = value;
-    }
-    get readOnly() {
-      return this[readOnly$];
-    }
-    set readOnly(value) {
-      this[readOnly$] = value;
-    }
-    get required() {
-      return this[required$];
-    }
-    set required(value) {
-      this[required$] = value;
-    }
-    get size() {
-      return this[size$];
-    }
-    set size(value) {
-      this[size$] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'email'})[dartx.type] == 'email';
-    }
-  };
-  const autocomplete$ = Symbol(html$.EmailInputElement.name + "." + 'autocomplete'.toString());
-  const autofocus$ = Symbol(html$.EmailInputElement.name + "." + 'autofocus'.toString());
-  const maxLength$ = Symbol(html$.EmailInputElement.name + "." + 'maxLength'.toString());
-  const multiple = Symbol(html$.EmailInputElement.name + "." + 'multiple'.toString());
-  const pattern$ = Symbol(html$.EmailInputElement.name + "." + 'pattern'.toString());
-  const placeholder$ = Symbol(html$.EmailInputElement.name + "." + 'placeholder'.toString());
-  const readOnly$ = Symbol(html$.EmailInputElement.name + "." + 'readOnly'.toString());
-  const required$ = Symbol(html$.EmailInputElement.name + "." + 'required'.toString());
-  const size$ = Symbol(html$.EmailInputElement.name + "." + 'size'.toString());
-  html$.EmailInputElement[dart.implements] = () => [html$.TextInputElementBase];
-  dart.setSignature(html$.EmailInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.EmailInputElement, [])}),
-    fields: () => ({
-      autocomplete: core.String,
-      autofocus: core.bool,
-      maxLength: core.int,
-      multiple: core.bool,
-      pattern: core.String,
-      placeholder: core.String,
-      readOnly: core.bool,
-      required: core.bool,
-      size: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.EmailInputElement, [
-    'autocomplete',
-    'autocomplete',
-    'autofocus',
-    'autofocus',
-    'maxLength',
-    'maxLength',
-    'multiple',
-    'multiple',
-    'pattern',
-    'pattern',
-    'placeholder',
-    'placeholder',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required',
-    'size',
-    'size'
-  ]);
-  html$.PasswordInputElement = class PasswordInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'password'});
-    }
-  };
-  html$.PasswordInputElement[dart.implements] = () => [html$.TextInputElementBase];
-  dart.setSignature(html$.PasswordInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.PasswordInputElement, [])})
-  });
-  dart.defineExtensionNames([
-    'max',
-    'min',
-    'step',
-    'valueAsNumber'
-  ]);
-  html$.RangeInputElementBase = class RangeInputElementBase extends core.Object {
-    new() {
-      this[max] = null;
-      this[min] = null;
-      this[step] = null;
-      this[valueAsNumber] = null;
-    }
-    get max() {
-      return this[max];
-    }
-    set max(value) {
-      this[max] = value;
-    }
-    get min() {
-      return this[min];
-    }
-    set min(value) {
-      this[min] = value;
-    }
-    get step() {
-      return this[step];
-    }
-    set step(value) {
-      this[step] = value;
-    }
-    get valueAsNumber() {
-      return this[valueAsNumber];
-    }
-    set valueAsNumber(value) {
-      this[valueAsNumber] = value;
-    }
-  };
-  const max = Symbol(html$.RangeInputElementBase.name + "." + 'max'.toString());
-  const min = Symbol(html$.RangeInputElementBase.name + "." + 'min'.toString());
-  const step = Symbol(html$.RangeInputElementBase.name + "." + 'step'.toString());
-  const valueAsNumber = Symbol(html$.RangeInputElementBase.name + "." + 'valueAsNumber'.toString());
-  html$.RangeInputElementBase[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.RangeInputElementBase, {
-    fields: () => ({
-      max: core.String,
-      min: core.String,
-      step: core.String,
-      valueAsNumber: core.num
-    })
-  });
-  dart.defineExtensionMembers(html$.RangeInputElementBase, [
-    'max',
-    'max',
-    'min',
-    'min',
-    'step',
-    'step',
-    'valueAsNumber',
-    'valueAsNumber'
-  ]);
-  dart.defineExtensionNames([
-    'valueAsDate',
-    'readOnly',
-    'required'
-  ]);
-  html$.DateInputElement = class DateInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'date'});
-    }
-    get valueAsDate() {
-      return this[valueAsDate];
-    }
-    set valueAsDate(value) {
-      this[valueAsDate] = value;
-    }
-    get readOnly() {
-      return this[readOnly$0];
-    }
-    set readOnly(value) {
-      this[readOnly$0] = value;
-    }
-    get required() {
-      return this[required$0];
-    }
-    set required(value) {
-      this[required$0] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'date'})[dartx.type] == 'date';
-    }
-  };
-  const valueAsDate = Symbol(html$.DateInputElement.name + "." + 'valueAsDate'.toString());
-  const readOnly$0 = Symbol(html$.DateInputElement.name + "." + 'readOnly'.toString());
-  const required$0 = Symbol(html$.DateInputElement.name + "." + 'required'.toString());
-  html$.DateInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.DateInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.DateInputElement, [])}),
-    fields: () => ({
-      valueAsDate: core.DateTime,
-      readOnly: core.bool,
-      required: core.bool
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.DateInputElement, [
-    'valueAsDate',
-    'valueAsDate',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required'
-  ]);
-  dart.defineExtensionNames([
-    'valueAsDate',
-    'readOnly',
-    'required'
-  ]);
-  html$.MonthInputElement = class MonthInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'month'});
-    }
-    get valueAsDate() {
-      return this[valueAsDate$];
-    }
-    set valueAsDate(value) {
-      this[valueAsDate$] = value;
-    }
-    get readOnly() {
-      return this[readOnly$1];
-    }
-    set readOnly(value) {
-      this[readOnly$1] = value;
-    }
-    get required() {
-      return this[required$1];
-    }
-    set required(value) {
-      this[required$1] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'month'})[dartx.type] == 'month';
-    }
-  };
-  const valueAsDate$ = Symbol(html$.MonthInputElement.name + "." + 'valueAsDate'.toString());
-  const readOnly$1 = Symbol(html$.MonthInputElement.name + "." + 'readOnly'.toString());
-  const required$1 = Symbol(html$.MonthInputElement.name + "." + 'required'.toString());
-  html$.MonthInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.MonthInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.MonthInputElement, [])}),
-    fields: () => ({
-      valueAsDate: core.DateTime,
-      readOnly: core.bool,
-      required: core.bool
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.MonthInputElement, [
-    'valueAsDate',
-    'valueAsDate',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required'
-  ]);
-  dart.defineExtensionNames([
-    'valueAsDate',
-    'readOnly',
-    'required'
-  ]);
-  html$.WeekInputElement = class WeekInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'week'});
-    }
-    get valueAsDate() {
-      return this[valueAsDate$0];
-    }
-    set valueAsDate(value) {
-      this[valueAsDate$0] = value;
-    }
-    get readOnly() {
-      return this[readOnly$2];
-    }
-    set readOnly(value) {
-      this[readOnly$2] = value;
-    }
-    get required() {
-      return this[required$2];
-    }
-    set required(value) {
-      this[required$2] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'week'})[dartx.type] == 'week';
-    }
-  };
-  const valueAsDate$0 = Symbol(html$.WeekInputElement.name + "." + 'valueAsDate'.toString());
-  const readOnly$2 = Symbol(html$.WeekInputElement.name + "." + 'readOnly'.toString());
-  const required$2 = Symbol(html$.WeekInputElement.name + "." + 'required'.toString());
-  html$.WeekInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.WeekInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.WeekInputElement, [])}),
-    fields: () => ({
-      valueAsDate: core.DateTime,
-      readOnly: core.bool,
-      required: core.bool
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.WeekInputElement, [
-    'valueAsDate',
-    'valueAsDate',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required'
-  ]);
-  dart.defineExtensionNames([
-    'valueAsDate',
-    'readOnly',
-    'required'
-  ]);
-  html$.TimeInputElement = class TimeInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'time'});
-    }
-    get valueAsDate() {
-      return this[valueAsDate$1];
-    }
-    set valueAsDate(value) {
-      this[valueAsDate$1] = value;
-    }
-    get readOnly() {
-      return this[readOnly$3];
-    }
-    set readOnly(value) {
-      this[readOnly$3] = value;
-    }
-    get required() {
-      return this[required$3];
-    }
-    set required(value) {
-      this[required$3] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'time'})[dartx.type] == 'time';
-    }
-  };
-  const valueAsDate$1 = Symbol(html$.TimeInputElement.name + "." + 'valueAsDate'.toString());
-  const readOnly$3 = Symbol(html$.TimeInputElement.name + "." + 'readOnly'.toString());
-  const required$3 = Symbol(html$.TimeInputElement.name + "." + 'required'.toString());
-  html$.TimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.TimeInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.TimeInputElement, [])}),
-    fields: () => ({
-      valueAsDate: core.DateTime,
-      readOnly: core.bool,
-      required: core.bool
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.TimeInputElement, [
-    'valueAsDate',
-    'valueAsDate',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required'
-  ]);
-  dart.defineExtensionNames([
-    'readOnly',
-    'required'
-  ]);
-  html$.LocalDateTimeInputElement = class LocalDateTimeInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'datetime-local'});
-    }
-    get readOnly() {
-      return this[readOnly$4];
-    }
-    set readOnly(value) {
-      this[readOnly$4] = value;
-    }
-    get required() {
-      return this[required$4];
-    }
-    set required(value) {
-      this[required$4] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'datetime-local'})[dartx.type] == 'datetime-local';
-    }
-  };
-  const readOnly$4 = Symbol(html$.LocalDateTimeInputElement.name + "." + 'readOnly'.toString());
-  const required$4 = Symbol(html$.LocalDateTimeInputElement.name + "." + 'required'.toString());
-  html$.LocalDateTimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.LocalDateTimeInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.LocalDateTimeInputElement, [])}),
-    fields: () => ({
-      readOnly: core.bool,
-      required: core.bool
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.LocalDateTimeInputElement, ['readOnly', 'readOnly', 'required', 'required']);
-  dart.defineExtensionNames([
-    'placeholder',
-    'readOnly',
-    'required'
-  ]);
-  html$.NumberInputElement = class NumberInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'number'});
-    }
-    get placeholder() {
-      return this[placeholder$0];
-    }
-    set placeholder(value) {
-      this[placeholder$0] = value;
-    }
-    get readOnly() {
-      return this[readOnly$5];
-    }
-    set readOnly(value) {
-      this[readOnly$5] = value;
-    }
-    get required() {
-      return this[required$5];
-    }
-    set required(value) {
-      this[required$5] = value;
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'number'})[dartx.type] == 'number';
-    }
-  };
-  const placeholder$0 = Symbol(html$.NumberInputElement.name + "." + 'placeholder'.toString());
-  const readOnly$5 = Symbol(html$.NumberInputElement.name + "." + 'readOnly'.toString());
-  const required$5 = Symbol(html$.NumberInputElement.name + "." + 'required'.toString());
-  html$.NumberInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.NumberInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.NumberInputElement, [])}),
-    fields: () => ({
-      placeholder: core.String,
-      readOnly: core.bool,
-      required: core.bool
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionMembers(html$.NumberInputElement, [
-    'placeholder',
-    'placeholder',
-    'readOnly',
-    'readOnly',
-    'required',
-    'required'
-  ]);
-  html$.RangeInputElement = class RangeInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'range'});
-    }
-    static get supported() {
-      return html$.InputElement.new({type: 'range'})[dartx.type] == 'range';
-    }
-  };
-  html$.RangeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
-  dart.setSignature(html$.RangeInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.RangeInputElement, [])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineExtensionNames([
-    'checked',
-    'required'
-  ]);
-  html$.CheckboxInputElement = class CheckboxInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'checkbox'});
-    }
-    get checked() {
-      return this[checked];
-    }
-    set checked(value) {
-      this[checked] = value;
-    }
-    get required() {
-      return this[required$6];
-    }
-    set required(value) {
-      this[required$6] = value;
-    }
-  };
-  const checked = Symbol(html$.CheckboxInputElement.name + "." + 'checked'.toString());
-  const required$6 = Symbol(html$.CheckboxInputElement.name + "." + 'required'.toString());
-  html$.CheckboxInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.CheckboxInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.CheckboxInputElement, [])}),
-    fields: () => ({
-      checked: core.bool,
-      required: core.bool
-    })
-  });
-  dart.defineExtensionMembers(html$.CheckboxInputElement, ['checked', 'checked', 'required', 'required']);
-  dart.defineExtensionNames([
-    'checked',
-    'required'
-  ]);
-  html$.RadioButtonInputElement = class RadioButtonInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'radio'});
-    }
-    get checked() {
-      return this[checked$];
-    }
-    set checked(value) {
-      this[checked$] = value;
-    }
-    get required() {
-      return this[required$7];
-    }
-    set required(value) {
-      this[required$7] = value;
-    }
-  };
-  const checked$ = Symbol(html$.RadioButtonInputElement.name + "." + 'checked'.toString());
-  const required$7 = Symbol(html$.RadioButtonInputElement.name + "." + 'required'.toString());
-  html$.RadioButtonInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.RadioButtonInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.RadioButtonInputElement, [])}),
-    fields: () => ({
-      checked: core.bool,
-      required: core.bool
-    })
-  });
-  dart.defineExtensionMembers(html$.RadioButtonInputElement, ['checked', 'checked', 'required', 'required']);
-  dart.defineExtensionNames([
-    'accept',
-    'multiple',
-    'required',
-    'files'
-  ]);
-  html$.FileUploadInputElement = class FileUploadInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'file'});
-    }
-    get accept() {
-      return this[accept];
-    }
-    set accept(value) {
-      this[accept] = value;
-    }
-    get multiple() {
-      return this[multiple$];
-    }
-    set multiple(value) {
-      this[multiple$] = value;
-    }
-    get required() {
-      return this[required$8];
-    }
-    set required(value) {
-      this[required$8] = value;
-    }
-    get files() {
-      return this[files];
-    }
-    set files(value) {
-      this[files] = value;
-    }
-  };
-  const accept = Symbol(html$.FileUploadInputElement.name + "." + 'accept'.toString());
-  const multiple$ = Symbol(html$.FileUploadInputElement.name + "." + 'multiple'.toString());
-  const required$8 = Symbol(html$.FileUploadInputElement.name + "." + 'required'.toString());
-  const files = Symbol(html$.FileUploadInputElement.name + "." + 'files'.toString());
-  html$.FileUploadInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.FileUploadInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.FileUploadInputElement, [])}),
-    fields: () => ({
-      accept: core.String,
-      multiple: core.bool,
-      required: core.bool,
-      files: ListOfFile()
-    })
-  });
-  dart.defineExtensionMembers(html$.FileUploadInputElement, [
-    'accept',
-    'accept',
-    'multiple',
-    'multiple',
-    'required',
-    'required',
-    'files',
-    'files'
-  ]);
-  dart.defineExtensionNames([
-    'formAction',
-    'formEnctype',
-    'formMethod',
-    'formNoValidate',
-    'formTarget'
-  ]);
-  html$.SubmitButtonInputElement = class SubmitButtonInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'submit'});
-    }
-    get formAction() {
-      return this[formAction];
-    }
-    set formAction(value) {
-      this[formAction] = value;
-    }
-    get formEnctype() {
-      return this[formEnctype];
-    }
-    set formEnctype(value) {
-      this[formEnctype] = value;
-    }
-    get formMethod() {
-      return this[formMethod];
-    }
-    set formMethod(value) {
-      this[formMethod] = value;
-    }
-    get formNoValidate() {
-      return this[formNoValidate];
-    }
-    set formNoValidate(value) {
-      this[formNoValidate] = value;
-    }
-    get formTarget() {
-      return this[formTarget];
-    }
-    set formTarget(value) {
-      this[formTarget] = value;
-    }
-  };
-  const formAction = Symbol(html$.SubmitButtonInputElement.name + "." + 'formAction'.toString());
-  const formEnctype = Symbol(html$.SubmitButtonInputElement.name + "." + 'formEnctype'.toString());
-  const formMethod = Symbol(html$.SubmitButtonInputElement.name + "." + 'formMethod'.toString());
-  const formNoValidate = Symbol(html$.SubmitButtonInputElement.name + "." + 'formNoValidate'.toString());
-  const formTarget = Symbol(html$.SubmitButtonInputElement.name + "." + 'formTarget'.toString());
-  html$.SubmitButtonInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.SubmitButtonInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.SubmitButtonInputElement, [])}),
-    fields: () => ({
-      formAction: core.String,
-      formEnctype: core.String,
-      formMethod: core.String,
-      formNoValidate: core.bool,
-      formTarget: core.String
-    })
-  });
-  dart.defineExtensionMembers(html$.SubmitButtonInputElement, [
-    'formAction',
-    'formAction',
-    'formEnctype',
-    'formEnctype',
-    'formMethod',
-    'formMethod',
-    'formNoValidate',
-    'formNoValidate',
-    'formTarget',
-    'formTarget'
-  ]);
-  dart.defineExtensionNames([
-    'alt',
-    'formAction',
-    'formEnctype',
-    'formMethod',
-    'formNoValidate',
-    'formTarget',
-    'height',
-    'src',
-    'width'
-  ]);
-  html$.ImageButtonInputElement = class ImageButtonInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'image'});
-    }
-    get alt() {
-      return this[alt];
-    }
-    set alt(value) {
-      this[alt] = value;
-    }
-    get formAction() {
-      return this[formAction$];
-    }
-    set formAction(value) {
-      this[formAction$] = value;
-    }
-    get formEnctype() {
-      return this[formEnctype$];
-    }
-    set formEnctype(value) {
-      this[formEnctype$] = value;
-    }
-    get formMethod() {
-      return this[formMethod$];
-    }
-    set formMethod(value) {
-      this[formMethod$] = value;
-    }
-    get formNoValidate() {
-      return this[formNoValidate$];
-    }
-    set formNoValidate(value) {
-      this[formNoValidate$] = value;
-    }
-    get formTarget() {
-      return this[formTarget$];
-    }
-    set formTarget(value) {
-      this[formTarget$] = value;
-    }
-    get height() {
-      return this[height];
-    }
-    set height(value) {
-      this[height] = value;
-    }
-    get src() {
-      return this[src];
-    }
-    set src(value) {
-      this[src] = value;
-    }
-    get width() {
-      return this[width];
-    }
-    set width(value) {
-      this[width] = value;
-    }
-  };
-  const alt = Symbol(html$.ImageButtonInputElement.name + "." + 'alt'.toString());
-  const formAction$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formAction'.toString());
-  const formEnctype$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formEnctype'.toString());
-  const formMethod$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formMethod'.toString());
-  const formNoValidate$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formNoValidate'.toString());
-  const formTarget$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formTarget'.toString());
-  const height = Symbol(html$.ImageButtonInputElement.name + "." + 'height'.toString());
-  const src = Symbol(html$.ImageButtonInputElement.name + "." + 'src'.toString());
-  const width = Symbol(html$.ImageButtonInputElement.name + "." + 'width'.toString());
-  html$.ImageButtonInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.ImageButtonInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.ImageButtonInputElement, [])}),
-    fields: () => ({
-      alt: core.String,
-      formAction: core.String,
-      formEnctype: core.String,
-      formMethod: core.String,
-      formNoValidate: core.bool,
-      formTarget: core.String,
-      height: core.int,
-      src: core.String,
-      width: core.int
-    })
-  });
-  dart.defineExtensionMembers(html$.ImageButtonInputElement, [
-    'alt',
-    'alt',
-    'formAction',
-    'formAction',
-    'formEnctype',
-    'formEnctype',
-    'formMethod',
-    'formMethod',
-    'formNoValidate',
-    'formNoValidate',
-    'formTarget',
-    'formTarget',
-    'height',
-    'height',
-    'src',
-    'src',
-    'width',
-    'width'
-  ]);
-  html$.ResetButtonInputElement = class ResetButtonInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'reset'});
-    }
-  };
-  html$.ResetButtonInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.ResetButtonInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.ResetButtonInputElement, [])})
-  });
-  html$.ButtonInputElement = class ButtonInputElement extends core.Object {
-    static new() {
-      return html$.InputElement.new({type: 'button'});
-    }
-  };
-  html$.ButtonInputElement[dart.implements] = () => [html$.InputElementBase];
-  dart.setSignature(html$.ButtonInputElement, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.ButtonInputElement, [])})
-  });
-  const _initKeyboardEvent = Symbol('_initKeyboardEvent');
-  const _keyIdentifier = Symbol('_keyIdentifier');
-  dart.defineExtensionNames([
-    'keyCode',
-    'charCode',
-    'which',
-    'getModifierState',
-    'altKey',
-    'code',
-    'ctrlKey',
-    'key',
-    'keyLocation',
-    'location',
-    'metaKey',
-    'repeat',
-    'shiftKey'
-  ]);
-  html$.KeyboardEvent = class KeyboardEvent extends html$.UIEvent {
-    static new(type, opts) {
-      let view = opts && 'view' in opts ? opts.view : null;
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let keyLocation = opts && 'keyLocation' in opts ? opts.keyLocation : 1;
-      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
-      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
-      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
-      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
-      if (view == null) {
-        view = html$.window;
-      }
-      let e = html$.KeyboardEvent._check(html$.document[_createEvent]("KeyboardEvent"));
-      e[_initKeyboardEvent](type, canBubble, cancelable, view, "", keyLocation, ctrlKey, altKey, shiftKey, metaKey);
-      return e;
-    }
-    [_initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey) {
-      if (typeof this.initKeyEvent == "function") {
-        this.initKeyEvent(type, canBubble, cancelable, view, ctrlKey, altKey, shiftKey, metaKey, 0, 0);
-      } else {
-        this.initKeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey);
-      }
-    }
-    get [dartx.keyCode]() {
-      return this[_keyCode];
-    }
-    get [dartx.charCode]() {
-      return this[_charCode];
-    }
-    get [dartx.which]() {
-      return this[_which];
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.KeyboardEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.KeyboardEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.KeyboardEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.KeyboardEvent(type);
-    }
-    get [dartx.altKey]() {
-      return this.altKey;
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-    get [dartx.ctrlKey]() {
-      return this.ctrlKey;
-    }
-    get [dartx.key]() {
-      return this.key;
-    }
-    get [_keyIdentifier]() {
-      return this.keyIdentifier;
-    }
-    get [dartx.keyLocation]() {
-      return this.keyLocation;
-    }
-    get [dartx.location]() {
-      return this.location;
-    }
-    get [dartx.metaKey]() {
-      return this.metaKey;
-    }
-    get [dartx.repeat]() {
-      return this.repeat;
-    }
-    get [dartx.shiftKey]() {
-      return this.shiftKey;
-    }
-    [dartx.getModifierState](...args) {
-      return this.getModifierState.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.KeyboardEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.KeyboardEvent, [core.String], {view: html$.Window, canBubble: core.bool, cancelable: core.bool, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
-      _: dart.definiteFunctionType(html$.KeyboardEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.altKey]: core.bool,
-      [dartx.code]: core.String,
-      [dartx.ctrlKey]: core.bool,
-      [dartx.key]: core.String,
-      [_keyIdentifier]: core.String,
-      [dartx.keyLocation]: core.int,
-      [dartx.location]: core.int,
-      [dartx.metaKey]: core.bool,
-      [dartx.repeat]: core.bool,
-      [dartx.shiftKey]: core.bool
-    }),
-    getters: () => ({
-      [dartx.keyCode]: dart.definiteFunctionType(core.int, []),
-      [dartx.charCode]: dart.definiteFunctionType(core.int, []),
-      [dartx.which]: dart.definiteFunctionType(core.int, [])
-    }),
-    methods: () => ({
-      [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
-      [dartx.getModifierState]: dart.definiteFunctionType(core.bool, [core.String])
-    }),
-    sfields: () => ({
-      DOM_KEY_LOCATION_LEFT: core.int,
-      DOM_KEY_LOCATION_NUMPAD: core.int,
-      DOM_KEY_LOCATION_RIGHT: core.int,
-      DOM_KEY_LOCATION_STANDARD: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.KeyboardEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.KeyboardEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  html$.KeyboardEvent.DOM_KEY_LOCATION_LEFT = 1;
-  html$.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD = 3;
-  html$.KeyboardEvent.DOM_KEY_LOCATION_RIGHT = 2;
-  html$.KeyboardEvent.DOM_KEY_LOCATION_STANDARD = 0;
-  dart.registerExtension(dart.global.KeyboardEvent, html$.KeyboardEvent);
-  html$.KeyframeEffect = class KeyframeEffect extends html$.AnimationEffectReadOnly {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(target, keyframes, timing) {
-      if (timing === void 0) timing = null;
-      if (ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null) && timing == null) {
-        return html$.KeyframeEffect._create_1(target, keyframes);
-      }
-      if (typeof timing == 'number' && ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null)) {
-        return html$.KeyframeEffect._create_2(target, keyframes, timing);
-      }
-      if (core.Map.is(timing) && ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null)) {
-        let timing_1 = html_common.convertDartToNative_Dictionary(timing);
-        return html$.KeyframeEffect._create_3(target, keyframes, timing_1);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1(target, keyframes) {
-      return new self.KeyframeEffect(target, keyframes);
-    }
-    static _create_2(target, keyframes, timing) {
-      return new self.KeyframeEffect(target, keyframes, timing);
-    }
-    static _create_3(target, keyframes, timing) {
-      return new self.KeyframeEffect(target, keyframes, timing);
-    }
-  };
-  dart.setSignature(html$.KeyframeEffect, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.KeyframeEffect, []),
-      new: dart.definiteFunctionType(html$.KeyframeEffect, [html$.Element, ListOfMap()], [dart.dynamic])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3']
-  });
-  dart.registerExtension(dart.global.KeyframeEffect, html$.KeyframeEffect);
-  dart.defineExtensionNames([
-    'checkValidity',
-    'reportValidity',
-    'setCustomValidity',
-    'autofocus',
-    'challenge',
-    'disabled',
-    'form',
-    'keytype',
-    'labels',
-    'name',
-    'type',
-    'validationMessage',
-    'validity',
-    'willValidate'
-  ]);
-  html$.KeygenElement = class KeygenElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.KeygenElement._check(html$.document[dartx.createElement]("keygen"));
-    }
-    created() {
-      this[dartx.autofocus] = null;
-      this[dartx.challenge] = null;
-      this[dartx.disabled] = null;
-      this[dartx.form] = null;
-      this[dartx.keytype] = null;
-      this[dartx.labels] = null;
-      this[dartx.name] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(html$.Element.isTagSupported('keygen')) && html$.KeygenElement.is(html$.Element.tag('keygen'));
-    }
-    get [dartx.autofocus]() {
-      return this.autofocus;
-    }
-    set [dartx.autofocus](value) {
-      this.autofocus = value;
-    }
-    get [dartx.challenge]() {
-      return this.challenge;
-    }
-    set [dartx.challenge](value) {
-      this.challenge = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.keytype]() {
-      return this.keytype;
-    }
-    set [dartx.keytype](value) {
-      this.keytype = value;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.KeygenElement, 'created');
-  dart.setSignature(html$.KeygenElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.KeygenElement, []),
-      new: dart.definiteFunctionType(html$.KeygenElement, []),
-      created: dart.definiteFunctionType(html$.KeygenElement, [])
-    }),
-    fields: () => ({
-      [dartx.autofocus]: core.bool,
-      [dartx.challenge]: core.String,
-      [dartx.disabled]: core.bool,
-      [dartx.form]: html$.FormElement,
-      [dartx.keytype]: core.String,
-      [dartx.labels]: ListOfNode(),
-      [dartx.name]: core.String,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.willValidate]: core.bool
-    }),
-    methods: () => ({
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLKeygenElement, html$.KeygenElement);
-  dart.defineExtensionNames([
-    'value'
-  ]);
-  html$.LIElement = class LIElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.LIElement._check(html$.document[dartx.createElement]("li"));
-    }
-    created() {
-      this[dartx.value] = null;
-      super.created();
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.LIElement, 'created');
-  dart.setSignature(html$.LIElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.LIElement, []),
-      new: dart.definiteFunctionType(html$.LIElement, []),
-      created: dart.definiteFunctionType(html$.LIElement, [])
-    }),
-    fields: () => ({[dartx.value]: core.int})
-  });
-  dart.registerExtension(dart.global.HTMLLIElement, html$.LIElement);
-  dart.defineExtensionNames([
-    'control',
-    'form',
-    'htmlFor'
-  ]);
-  html$.LabelElement = class LabelElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.LabelElement._check(html$.document[dartx.createElement]("label"));
-    }
-    created() {
-      this[dartx.control] = null;
-      this[dartx.form] = null;
-      this[dartx.htmlFor] = null;
-      super.created();
-    }
-    get [dartx.control]() {
-      return this.control;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.htmlFor]() {
-      return this.htmlFor;
-    }
-    set [dartx.htmlFor](value) {
-      this.htmlFor = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.LabelElement, 'created');
-  dart.setSignature(html$.LabelElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.LabelElement, []),
-      new: dart.definiteFunctionType(html$.LabelElement, []),
-      created: dart.definiteFunctionType(html$.LabelElement, [])
-    }),
-    fields: () => ({
-      [dartx.control]: html$.HtmlElement,
-      [dartx.form]: html$.FormElement,
-      [dartx.htmlFor]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLLabelElement, html$.LabelElement);
-  dart.defineExtensionNames([
-    'form'
-  ]);
-  html$.LegendElement = class LegendElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.LegendElement._check(html$.document[dartx.createElement]("legend"));
-    }
-    created() {
-      this[dartx.form] = null;
-      super.created();
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-  };
-  dart.defineNamedConstructor(html$.LegendElement, 'created');
-  dart.setSignature(html$.LegendElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.LegendElement, []),
-      new: dart.definiteFunctionType(html$.LegendElement, []),
-      created: dart.definiteFunctionType(html$.LegendElement, [])
-    }),
-    fields: () => ({[dartx.form]: html$.FormElement})
-  });
-  dart.registerExtension(dart.global.HTMLLegendElement, html$.LegendElement);
-  dart.defineExtensionNames([
-    'supportsImport',
-    'crossOrigin',
-    'disabled',
-    'href',
-    'hreflang',
-    'import',
-    'integrity',
-    'media',
-    'rel',
-    'sheet',
-    'sizes',
-    'type'
-  ]);
-  html$.LinkElement = class LinkElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.LinkElement._check(html$.document[dartx.createElement]("link"));
-    }
-    created() {
-      this[dartx.crossOrigin] = null;
-      this[dartx.disabled] = null;
-      this[dartx.href] = null;
-      this[dartx.hreflang] = null;
-      this[dartx.import] = null;
-      this[dartx.integrity] = null;
-      this[dartx.media] = null;
-      this[dartx.rel] = null;
-      this[dartx.sheet] = null;
-      this[dartx.sizes] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.crossOrigin]() {
-      return this.crossOrigin;
-    }
-    set [dartx.crossOrigin](value) {
-      this.crossOrigin = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    set [dartx.href](value) {
-      this.href = value;
-    }
-    get [dartx.hreflang]() {
-      return this.hreflang;
-    }
-    set [dartx.hreflang](value) {
-      this.hreflang = value;
-    }
-    get [dartx.import]() {
-      return this.import;
-    }
-    get [dartx.integrity]() {
-      return this.integrity;
-    }
-    set [dartx.integrity](value) {
-      this.integrity = value;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    set [dartx.media](value) {
-      this.media = value;
-    }
-    get [dartx.rel]() {
-      return this.rel;
-    }
-    set [dartx.rel](value) {
-      this.rel = value;
-    }
-    get [dartx.sheet]() {
-      return this.sheet;
-    }
-    get [dartx.sizes]() {
-      return this.sizes;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.supportsImport]() {
-      return "import" in this;
-    }
-  };
-  dart.defineNamedConstructor(html$.LinkElement, 'created');
-  dart.setSignature(html$.LinkElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.LinkElement, []),
-      new: dart.definiteFunctionType(html$.LinkElement, []),
-      created: dart.definiteFunctionType(html$.LinkElement, [])
-    }),
-    fields: () => ({
-      [dartx.crossOrigin]: core.String,
-      [dartx.disabled]: core.bool,
-      [dartx.href]: core.String,
-      [dartx.hreflang]: core.String,
-      [dartx.import]: html$.Document,
-      [dartx.integrity]: core.String,
-      [dartx.media]: core.String,
-      [dartx.rel]: core.String,
-      [dartx.sheet]: html$.StyleSheet,
-      [dartx.sizes]: html$.DomSettableTokenList,
-      [dartx.type]: core.String
-    }),
-    getters: () => ({[dartx.supportsImport]: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLLinkElement, html$.LinkElement);
-  dart.defineExtensionNames([
-    'assign',
-    'reload',
-    'replace',
-    'origin',
-    'toString',
-    'ancestorOrigins',
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'pathname',
-    'port',
-    'protocol',
-    'search'
-  ]);
-  html$.Location = class Location extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.ancestorOrigins]() {
-      return this.ancestorOrigins;
-    }
-    get [dartx.hash]() {
-      return this.hash;
-    }
-    set [dartx.hash](value) {
-      this.hash = value;
-    }
-    get [dartx.host]() {
-      return this.host;
-    }
-    set [dartx.host](value) {
-      this.host = value;
-    }
-    get [dartx.hostname]() {
-      return this.hostname;
-    }
-    set [dartx.hostname](value) {
-      this.hostname = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    set [dartx.href](value) {
-      this.href = value;
-    }
-    get [dartx.pathname]() {
-      return this.pathname;
-    }
-    set [dartx.pathname](value) {
-      this.pathname = value;
-    }
-    get [dartx.port]() {
-      return this.port;
-    }
-    set [dartx.port](value) {
-      this.port = value;
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    set [dartx.protocol](value) {
-      this.protocol = value;
-    }
-    get [dartx.search]() {
-      return this.search;
-    }
-    set [dartx.search](value) {
-      this.search = value;
-    }
-    [dartx.assign](...args) {
-      return this.assign.apply(this, args);
-    }
-    [dartx.reload](...args) {
-      return this.reload.apply(this, args);
-    }
-    [dartx.replace](...args) {
-      return this.replace.apply(this, args);
-    }
-    get [dartx.origin]() {
-      if ("origin" in this) {
-        return this.origin;
-      }
-      return dart.str`${this[dartx.protocol]}//${this[dartx.host]}`;
-    }
-    [dartx.toString]() {
-      return String(this);
-    }
-  };
-  html$.Location[dart.implements] = () => [html$.LocationBase];
-  dart.setSignature(html$.Location, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Location, [])}),
-    fields: () => ({
-      [dartx.ancestorOrigins]: ListOfString(),
-      [dartx.hash]: core.String,
-      [dartx.host]: core.String,
-      [dartx.hostname]: core.String,
-      [dartx.href]: core.String,
-      [dartx.pathname]: core.String,
-      [dartx.port]: core.String,
-      [dartx.protocol]: core.String,
-      [dartx.search]: core.String
-    }),
-    getters: () => ({[dartx.origin]: dart.definiteFunctionType(core.String, [])}),
-    methods: () => ({
-      [dartx.assign]: dart.definiteFunctionType(dart.void, [], [core.String]),
-      [dartx.reload]: dart.definiteFunctionType(dart.void, []),
-      [dartx.replace]: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.Location, html$.Location);
-  dart.defineExtensionNames([
-    'areas',
-    'name'
-  ]);
-  html$.MapElement = class MapElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MapElement._check(html$.document[dartx.createElement]("map"));
-    }
-    created() {
-      this[dartx.areas] = null;
-      this[dartx.name] = null;
-      super.created();
-    }
-    get [dartx.areas]() {
-      return this.areas;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.MapElement, 'created');
-  dart.setSignature(html$.MapElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MapElement, []),
-      new: dart.definiteFunctionType(html$.MapElement, []),
-      created: dart.definiteFunctionType(html$.MapElement, [])
-    }),
-    fields: () => ({
-      [dartx.areas]: ListOfNode(),
-      [dartx.name]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLMapElement, html$.MapElement);
-  dart.defineExtensionNames([
-    'pause',
-    'play',
-    'unpause',
-    'buffered',
-    'currentTime',
-    'defaultPlaybackRate',
-    'duration',
-    'muted',
-    'paused',
-    'playbackRate',
-    'playbackState',
-    'played',
-    'seekable',
-    'volume'
-  ]);
-  html$.MediaController = class MediaController extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MediaController._create_1();
-    }
-    static _create_1() {
-      return new self.MediaController();
-    }
-    get [dartx.buffered]() {
-      return this.buffered;
-    }
-    get [dartx.currentTime]() {
-      return this.currentTime;
-    }
-    set [dartx.currentTime](value) {
-      this.currentTime = value;
-    }
-    get [dartx.defaultPlaybackRate]() {
-      return this.defaultPlaybackRate;
-    }
-    set [dartx.defaultPlaybackRate](value) {
-      this.defaultPlaybackRate = value;
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    get [dartx.muted]() {
-      return this.muted;
-    }
-    set [dartx.muted](value) {
-      this.muted = value;
-    }
-    get [dartx.paused]() {
-      return this.paused;
-    }
-    get [dartx.playbackRate]() {
-      return this.playbackRate;
-    }
-    set [dartx.playbackRate](value) {
-      this.playbackRate = value;
-    }
-    get [dartx.playbackState]() {
-      return this.playbackState;
-    }
-    get [dartx.played]() {
-      return this.played;
-    }
-    get [dartx.seekable]() {
-      return this.seekable;
-    }
-    get [dartx.volume]() {
-      return this.volume;
-    }
-    set [dartx.volume](value) {
-      this.volume = value;
-    }
-    [dartx.pause](...args) {
-      return this.pause.apply(this, args);
-    }
-    [dartx.play](...args) {
-      return this.play.apply(this, args);
-    }
-    [dartx.unpause](...args) {
-      return this.unpause.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaController, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaController, []),
-      new: dart.definiteFunctionType(html$.MediaController, [])
-    }),
-    fields: () => ({
-      [dartx.buffered]: html$.TimeRanges,
-      [dartx.currentTime]: core.num,
-      [dartx.defaultPlaybackRate]: core.num,
-      [dartx.duration]: core.double,
-      [dartx.muted]: core.bool,
-      [dartx.paused]: core.bool,
-      [dartx.playbackRate]: core.num,
-      [dartx.playbackState]: core.String,
-      [dartx.played]: html$.TimeRanges,
-      [dartx.seekable]: html$.TimeRanges,
-      [dartx.volume]: core.num
-    }),
-    methods: () => ({
-      [dartx.pause]: dart.definiteFunctionType(dart.void, []),
-      [dartx.play]: dart.definiteFunctionType(dart.void, []),
-      [dartx.unpause]: dart.definiteFunctionType(dart.void, [])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.MediaController, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.MediaController, html$.MediaController);
-  dart.defineExtensionNames([
-    'deviceId',
-    'groupId',
-    'kind',
-    'label'
-  ]);
-  html$.MediaDeviceInfo = class MediaDeviceInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.deviceId]() {
-      return this.deviceId;
-    }
-    get [dartx.groupId]() {
-      return this.groupId;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-  };
-  dart.setSignature(html$.MediaDeviceInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaDeviceInfo, [])}),
-    fields: () => ({
-      [dartx.deviceId]: core.String,
-      [dartx.groupId]: core.String,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.MediaDeviceInfo, html$.MediaDeviceInfo);
-  const _getUserMedia_1 = Symbol('_getUserMedia_1');
-  dart.defineExtensionNames([
-    'enumerateDevices',
-    'getUserMedia'
-  ]);
-  html$.MediaDevices = class MediaDevices extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.enumerateDevices](...args) {
-      return this.enumerateDevices.apply(this, args);
-    }
-    [dartx.getUserMedia](options) {
-      let options_1 = html_common.convertDartToNative_Dictionary(options);
-      return this[_getUserMedia_1](options_1);
-    }
-    [_getUserMedia_1](...args) {
-      return this.getUserMedia.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaDevices, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaDevices, [])}),
-    methods: () => ({
-      [dartx.enumerateDevices]: dart.definiteFunctionType(async.Future, []),
-      [dartx.getUserMedia]: dart.definiteFunctionType(async.Future, [core.Map]),
-      [_getUserMedia_1]: dart.definiteFunctionType(async.Future, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.MediaDevices, html$.MediaDevices);
-  dart.defineExtensionNames([
-    'initData',
-    'initDataType'
-  ]);
-  html$.MediaEncryptedEvent = class MediaEncryptedEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MediaEncryptedEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MediaEncryptedEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MediaEncryptedEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MediaEncryptedEvent(type);
-    }
-    get [dartx.initData]() {
-      return this.initData;
-    }
-    get [dartx.initDataType]() {
-      return this.initDataType;
-    }
-  };
-  dart.setSignature(html$.MediaEncryptedEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaEncryptedEvent, []),
-      new: dart.definiteFunctionType(html$.MediaEncryptedEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.initData]: typed_data.ByteBuffer,
-      [dartx.initDataType]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaEncryptedEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MediaEncryptedEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MediaEncryptedEvent, html$.MediaEncryptedEvent);
-  dart.defineExtensionNames([
-    'code'
-  ]);
-  html$.MediaError = class MediaError extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-  };
-  dart.setSignature(html$.MediaError, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaError, [])}),
-    fields: () => ({[dartx.code]: core.int}),
-    sfields: () => ({
-      MEDIA_ERR_ABORTED: core.int,
-      MEDIA_ERR_DECODE: core.int,
-      MEDIA_ERR_NETWORK: core.int,
-      MEDIA_ERR_SRC_NOT_SUPPORTED: core.int
-    })
-  });
-  html$.MediaError.MEDIA_ERR_ABORTED = 1;
-  html$.MediaError.MEDIA_ERR_DECODE = 3;
-  html$.MediaError.MEDIA_ERR_NETWORK = 2;
-  html$.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
-  dart.registerExtension(dart.global.MediaError, html$.MediaError);
-  dart.defineExtensionNames([
-    'code',
-    'systemCode'
-  ]);
-  html$.MediaKeyError = class MediaKeyError extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-    get [dartx.systemCode]() {
-      return this.systemCode;
-    }
-  };
-  dart.setSignature(html$.MediaKeyError, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeyError, [])}),
-    fields: () => ({
-      [dartx.code]: core.int,
-      [dartx.systemCode]: core.int
-    }),
-    sfields: () => ({
-      MEDIA_KEYERR_CLIENT: core.int,
-      MEDIA_KEYERR_DOMAIN: core.int,
-      MEDIA_KEYERR_HARDWARECHANGE: core.int,
-      MEDIA_KEYERR_OUTPUT: core.int,
-      MEDIA_KEYERR_SERVICE: core.int,
-      MEDIA_KEYERR_UNKNOWN: core.int
-    })
-  });
-  html$.MediaKeyError.MEDIA_KEYERR_CLIENT = 2;
-  html$.MediaKeyError.MEDIA_KEYERR_DOMAIN = 6;
-  html$.MediaKeyError.MEDIA_KEYERR_HARDWARECHANGE = 5;
-  html$.MediaKeyError.MEDIA_KEYERR_OUTPUT = 4;
-  html$.MediaKeyError.MEDIA_KEYERR_SERVICE = 3;
-  html$.MediaKeyError.MEDIA_KEYERR_UNKNOWN = 1;
-  dart.registerExtension(dart.global.MediaKeyError, html$.MediaKeyError);
-  dart.defineExtensionNames([
-    'defaultUrl',
-    'errorCode',
-    'initData',
-    'keySystem',
-    'message',
-    'sessionId',
-    'systemCode'
-  ]);
-  html$.MediaKeyEvent = class MediaKeyEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MediaKeyEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MediaKeyEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MediaKeyEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MediaKeyEvent(type);
-    }
-    get [dartx.defaultUrl]() {
-      return this.defaultURL;
-    }
-    get [dartx.errorCode]() {
-      return this.errorCode;
-    }
-    get [dartx.initData]() {
-      return this.initData;
-    }
-    get [dartx.keySystem]() {
-      return this.keySystem;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    get [dartx.sessionId]() {
-      return this.sessionId;
-    }
-    get [dartx.systemCode]() {
-      return this.systemCode;
-    }
-  };
-  dart.setSignature(html$.MediaKeyEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaKeyEvent, []),
-      new: dart.definiteFunctionType(html$.MediaKeyEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.defaultUrl]: core.String,
-      [dartx.errorCode]: html$.MediaKeyError,
-      [dartx.initData]: typed_data.Uint8List,
-      [dartx.keySystem]: core.String,
-      [dartx.message]: typed_data.Uint8List,
-      [dartx.sessionId]: core.String,
-      [dartx.systemCode]: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaKeyEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MediaKeyEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MediaKeyEvent, html$.MediaKeyEvent);
-  dart.defineExtensionNames([
-    'message',
-    'messageType'
-  ]);
-  html$.MediaKeyMessageEvent = class MediaKeyMessageEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MediaKeyMessageEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MediaKeyMessageEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MediaKeyMessageEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MediaKeyMessageEvent(type);
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    get [dartx.messageType]() {
-      return this.messageType;
-    }
-  };
-  dart.setSignature(html$.MediaKeyMessageEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaKeyMessageEvent, []),
-      new: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.message]: typed_data.ByteBuffer,
-      [dartx.messageType]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MediaKeyMessageEvent, html$.MediaKeyMessageEvent);
-  const _update$ = Symbol('_update');
-  dart.defineExtensionNames([
-    'close',
-    'generateRequest',
-    'load',
-    'remove',
-    'closed',
-    'expiration',
-    'keyStatuses',
-    'sessionId'
-  ]);
-  html$.MediaKeySession = class MediaKeySession extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.closed]() {
-      return this.closed;
-    }
-    get [dartx.expiration]() {
-      return this.expiration;
-    }
-    get [dartx.keyStatuses]() {
-      return this.keyStatuses;
-    }
-    get [dartx.sessionId]() {
-      return this.sessionId;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.generateRequest](...args) {
-      return this.generateRequest.apply(this, args);
-    }
-    [dartx.load](...args) {
-      return this.load.apply(this, args);
-    }
-    [dartx.remove](...args) {
-      return this.remove.apply(this, args);
-    }
-    [_update$](...args) {
-      return this.update.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaKeySession, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeySession, [])}),
-    fields: () => ({
-      [dartx.closed]: async.Future,
-      [dartx.expiration]: core.double,
-      [dartx.keyStatuses]: html$.MediaKeyStatusMap,
-      [dartx.sessionId]: core.String
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(async.Future, []),
-      [dartx.generateRequest]: dart.definiteFunctionType(async.Future, [core.String, dart.dynamic]),
-      [dartx.load]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.remove]: dart.definiteFunctionType(async.Future, []),
-      [_update$]: dart.definiteFunctionType(async.Future, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.MediaKeySession, html$.MediaKeySession);
-  dart.defineExtensionNames([
-    'size'
-  ]);
-  html$.MediaKeyStatusMap = class MediaKeyStatusMap extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-  };
-  dart.setSignature(html$.MediaKeyStatusMap, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeyStatusMap, [])}),
-    fields: () => ({[dartx.size]: core.int})
-  });
-  dart.registerExtension(dart.global.MediaKeyStatusMap, html$.MediaKeyStatusMap);
-  const _getConfiguration_1 = Symbol('_getConfiguration_1');
-  dart.defineExtensionNames([
-    'createMediaKeys',
-    'getConfiguration',
-    'keySystem'
-  ]);
-  html$.MediaKeySystemAccess = class MediaKeySystemAccess extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.keySystem]() {
-      return this.keySystem;
-    }
-    [dartx.createMediaKeys](...args) {
-      return this.createMediaKeys.apply(this, args);
-    }
-    [dartx.getConfiguration]() {
-      return html_common.convertNativeToDart_Dictionary(this[_getConfiguration_1]());
-    }
-    [_getConfiguration_1](...args) {
-      return this.getConfiguration.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaKeySystemAccess, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeySystemAccess, [])}),
-    fields: () => ({[dartx.keySystem]: core.String}),
-    methods: () => ({
-      [dartx.createMediaKeys]: dart.definiteFunctionType(async.Future, []),
-      [dartx.getConfiguration]: dart.definiteFunctionType(core.Map, []),
-      [_getConfiguration_1]: dart.definiteFunctionType(dart.dynamic, [])
-    })
-  });
-  dart.registerExtension(dart.global.MediaKeySystemAccess, html$.MediaKeySystemAccess);
-  const _createSession = Symbol('_createSession');
-  dart.defineExtensionNames([
-    'setServerCertificate'
-  ]);
-  html$.MediaKeys = class MediaKeys extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_createSession](...args) {
-      return this.createSession.apply(this, args);
-    }
-    [dartx.setServerCertificate](...args) {
-      return this.setServerCertificate.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaKeys, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeys, [])}),
-    methods: () => ({
-      [_createSession]: dart.definiteFunctionType(html$.MediaKeySession, [], [core.String]),
-      [dartx.setServerCertificate]: dart.definiteFunctionType(async.Future, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.MediaKeys, html$.MediaKeys);
-  dart.defineExtensionNames([
-    'appendMedium',
-    'deleteMedium',
-    'item',
-    'length',
-    'mediaText'
-  ]);
-  html$.MediaList = class MediaList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.mediaText]() {
-      return this.mediaText;
-    }
-    set [dartx.mediaText](value) {
-      this.mediaText = value;
-    }
-    [dartx.appendMedium](...args) {
-      return this.appendMedium.apply(this, args);
-    }
-    [dartx.deleteMedium](...args) {
-      return this.deleteMedium.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaList, [])}),
-    fields: () => ({
-      [dartx.length]: core.int,
-      [dartx.mediaText]: core.String
-    }),
-    methods: () => ({
-      [dartx.appendMedium]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.deleteMedium]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(core.String, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.MediaList, html$.MediaList);
-  dart.defineExtensionNames([
-    'addListener',
-    'removeListener',
-    'onChange',
-    'matches',
-    'media'
-  ]);
-  html$.MediaQueryList = class MediaQueryList extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.matches]() {
-      return this.matches;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    [dartx.addListener](...args) {
-      return this.addListener.apply(this, args);
-    }
-    [dartx.removeListener](...args) {
-      return this.removeListener.apply(this, args);
-    }
-    get [dartx.onChange]() {
-      return html$.MediaQueryList.changeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.MediaQueryList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaQueryList, [])}),
-    fields: () => ({
-      [dartx.matches]: core.bool,
-      [dartx.media]: core.String
-    }),
-    getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.addListener]: dart.definiteFunctionType(dart.void, [html$.EventListener]),
-      [dartx.removeListener]: dart.definiteFunctionType(dart.void, [html$.EventListener])
-    }),
-    sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.MediaQueryList, {
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.MediaQueryList, html$.MediaQueryList);
-  dart.defineExtensionNames([
-    'matches',
-    'media'
-  ]);
-  html$.MediaQueryListEvent = class MediaQueryListEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MediaQueryListEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MediaQueryListEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MediaQueryListEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MediaQueryListEvent(type);
-    }
-    get [dartx.matches]() {
-      return this.matches;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-  };
-  dart.setSignature(html$.MediaQueryListEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaQueryListEvent, []),
-      new: dart.definiteFunctionType(html$.MediaQueryListEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.matches]: core.bool,
-      [dartx.media]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaQueryListEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MediaQueryListEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MediaQueryListEvent, html$.MediaQueryListEvent);
-  dart.defineExtensionNames([
-    'activate',
-    'deactivate'
-  ]);
-  html$.MediaSession = class MediaSession extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MediaSession._create_1();
-    }
-    static _create_1() {
-      return new self.MediaSession();
-    }
-    [dartx.activate](...args) {
-      return this.activate.apply(this, args);
-    }
-    [dartx.deactivate](...args) {
-      return this.deactivate.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaSession, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaSession, []),
-      new: dart.definiteFunctionType(html$.MediaSession, [])
-    }),
-    methods: () => ({
-      [dartx.activate]: dart.definiteFunctionType(dart.void, []),
-      [dartx.deactivate]: dart.definiteFunctionType(dart.void, [])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.MediaSession, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.MediaSession, html$.MediaSession);
-  dart.defineExtensionNames([
-    'addSourceBuffer',
-    'endOfStream',
-    'removeSourceBuffer',
-    'activeSourceBuffers',
-    'duration',
-    'readyState',
-    'sourceBuffers'
-  ]);
-  html$.MediaSource = class MediaSource extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MediaSource._create_1();
-    }
-    static _create_1() {
-      return new self.MediaSource();
-    }
-    static get supported() {
-      return !!window.MediaSource;
-    }
-    get [dartx.activeSourceBuffers]() {
-      return this.activeSourceBuffers;
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    set [dartx.duration](value) {
-      this.duration = value;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.sourceBuffers]() {
-      return this.sourceBuffers;
-    }
-    [dartx.addSourceBuffer](...args) {
-      return this.addSourceBuffer.apply(this, args);
-    }
-    [dartx.endOfStream](...args) {
-      return this.endOfStream.apply(this, args);
-    }
-    [dartx.removeSourceBuffer](...args) {
-      return this.removeSourceBuffer.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MediaSource, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaSource, []),
-      new: dart.definiteFunctionType(html$.MediaSource, [])
-    }),
-    fields: () => ({
-      [dartx.activeSourceBuffers]: html$.SourceBufferList,
-      [dartx.duration]: core.num,
-      [dartx.readyState]: core.String,
-      [dartx.sourceBuffers]: html$.SourceBufferList
-    }),
-    methods: () => ({
-      [dartx.addSourceBuffer]: dart.definiteFunctionType(html$.SourceBuffer, [core.String]),
-      [dartx.endOfStream]: dart.definiteFunctionType(dart.void, [], [core.String]),
-      [dartx.removeSourceBuffer]: dart.definiteFunctionType(dart.void, [html$.SourceBuffer])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaSource, []),
-      isTypeSupported: dart.definiteFunctionType(core.bool, [core.String])
-    }),
-    names: ['_create_1', 'isTypeSupported']
-  });
-  dart.registerExtension(dart.global.MediaSource, html$.MediaSource);
-  dart.defineExtensionNames([
-    'addTrack',
-    'clone',
-    'getAudioTracks',
-    'getTrackById',
-    'getTracks',
-    'getVideoTracks',
-    'removeTrack',
-    'stop',
-    'onAddTrack',
-    'onEnded',
-    'onRemoveTrack',
-    'active',
-    'ended',
-    'id',
-    'label'
-  ]);
-  html$.MediaStream = class MediaStream extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(stream_OR_tracks) {
-      if (stream_OR_tracks === void 0) stream_OR_tracks = null;
-      if (stream_OR_tracks == null) {
-        return html$.MediaStream._create_1();
-      }
-      if (html$.MediaStream.is(stream_OR_tracks) || stream_OR_tracks == null) {
-        return html$.MediaStream._create_2(stream_OR_tracks);
-      }
-      if (ListOfMediaStreamTrack().is(stream_OR_tracks) || stream_OR_tracks == null) {
-        return html$.MediaStream._create_3(stream_OR_tracks);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1() {
-      return new self.MediaStream();
-    }
-    static _create_2(stream_OR_tracks) {
-      return new self.MediaStream(stream_OR_tracks);
-    }
-    static _create_3(stream_OR_tracks) {
-      return new self.MediaStream(stream_OR_tracks);
-    }
-    get [dartx.active]() {
-      return this.active;
-    }
-    get [dartx.ended]() {
-      return this.ended;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    [dartx.addTrack](...args) {
-      return this.addTrack.apply(this, args);
-    }
-    [dartx.clone](...args) {
-      return this.clone.apply(this, args);
-    }
-    [dartx.getAudioTracks](...args) {
-      return this.getAudioTracks.apply(this, args);
-    }
-    [dartx.getTrackById](...args) {
-      return this.getTrackById.apply(this, args);
-    }
-    [dartx.getTracks](...args) {
-      return this.getTracks.apply(this, args);
-    }
-    [dartx.getVideoTracks](...args) {
-      return this.getVideoTracks.apply(this, args);
-    }
-    [dartx.removeTrack](...args) {
-      return this.removeTrack.apply(this, args);
-    }
-    [dartx.stop](...args) {
-      return this.stop.apply(this, args);
-    }
-    get [dartx.onAddTrack]() {
-      return html$.MediaStream.addTrackEvent.forTarget(this);
-    }
-    get [dartx.onEnded]() {
-      return html$.MediaStream.endedEvent.forTarget(this);
-    }
-    get [dartx.onRemoveTrack]() {
-      return html$.MediaStream.removeTrackEvent.forTarget(this);
-    }
-    static get supported() {
-      return !!(html$.window[dartx.navigator].getUserMedia || html$.window[dartx.navigator].webkitGetUserMedia || html$.window[dartx.navigator].mozGetUserMedia || html$.window[dartx.navigator].msGetUserMedia);
-    }
-  };
-  dart.setSignature(html$.MediaStream, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaStream, []),
-      new: dart.definiteFunctionType(html$.MediaStream, [], [dart.dynamic])
-    }),
-    fields: () => ({
-      [dartx.active]: core.bool,
-      [dartx.ended]: core.bool,
-      [dartx.id]: core.String,
-      [dartx.label]: core.String
-    }),
-    getters: () => ({
-      [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onRemoveTrack]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.addTrack]: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrack]),
-      [dartx.clone]: dart.definiteFunctionType(html$.MediaStream, []),
-      [dartx.getAudioTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
-      [dartx.getTrackById]: dart.definiteFunctionType(html$.MediaStreamTrack, [core.String]),
-      [dartx.getTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
-      [dartx.getVideoTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
-      [dartx.removeTrack]: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrack]),
-      [dartx.stop]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      addTrackEvent: EventStreamProviderOfEvent(),
-      endedEvent: EventStreamProviderOfEvent(),
-      removeTrackEvent: EventStreamProviderOfEvent()
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaStream, []),
-      _create_2: dart.definiteFunctionType(html$.MediaStream, [dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.MediaStream, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3']
-  });
-  dart.defineLazy(html$.MediaStream, {
-    get addTrackEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('addtrack'));
-    },
-    get endedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ended'));
-    },
-    get removeTrackEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('removetrack'));
-    }
-  });
-  dart.registerExtension(dart.global.MediaStream, html$.MediaStream);
-  dart.defineExtensionNames([
-    'stream'
-  ]);
-  html$.MediaStreamEvent = class MediaStreamEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MediaStreamEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MediaStreamEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MediaStreamEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MediaStreamEvent(type);
-    }
-    static get supported() {
-      return html_common.Device.isEventTypeSupported('MediaStreamEvent');
-    }
-    get [dartx.stream]() {
-      return this.stream;
-    }
-  };
-  dart.setSignature(html$.MediaStreamEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MediaStreamEvent, []),
-      new: dart.definiteFunctionType(html$.MediaStreamEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.stream]: html$.MediaStream}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MediaStreamEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MediaStreamEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MediaStreamEvent, html$.MediaStreamEvent);
-  dart.defineExtensionNames([
-    'clone',
-    'stop',
-    'onEnded',
-    'onMute',
-    'onUnmute',
-    'enabled',
-    'id',
-    'kind',
-    'label',
-    'muted',
-    'readyState'
-  ]);
-  html$.MediaStreamTrack = class MediaStreamTrack extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.enabled]() {
-      return this.enabled;
-    }
-    set [dartx.enabled](value) {
-      this.enabled = value;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    get [dartx.muted]() {
-      return this.muted;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    [dartx.clone](...args) {
-      return this.clone.apply(this, args);
-    }
-    static getSources() {
-      let completer = CompleterOfListOfSourceInfo().new();
-      html$.MediaStreamTrack._getSources(dart.fn(value => {
-        completer.complete(value);
-      }, ListOfSourceInfoToNull()));
-      return completer.future;
-    }
-    [dartx.stop](...args) {
-      return this.stop.apply(this, args);
-    }
-    get [dartx.onEnded]() {
-      return html$.MediaStreamTrack.endedEvent.forTarget(this);
-    }
-    get [dartx.onMute]() {
-      return html$.MediaStreamTrack.muteEvent.forTarget(this);
-    }
-    get [dartx.onUnmute]() {
-      return html$.MediaStreamTrack.unmuteEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.MediaStreamTrack, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaStreamTrack, [])}),
-    fields: () => ({
-      [dartx.enabled]: core.bool,
-      [dartx.id]: core.String,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String,
-      [dartx.muted]: core.bool,
-      [dartx.readyState]: core.String
-    }),
-    getters: () => ({
-      [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMute]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onUnmute]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.clone]: dart.definiteFunctionType(html$.MediaStreamTrack, []),
-      [dartx.stop]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      endedEvent: EventStreamProviderOfEvent(),
-      muteEvent: EventStreamProviderOfEvent(),
-      unmuteEvent: EventStreamProviderOfEvent()
-    }),
-    statics: () => ({
-      _getSources: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrackSourcesCallback]),
-      getSources: dart.definiteFunctionType(async.Future$(core.List$(html$.SourceInfo)), [])
-    }),
-    names: ['_getSources', 'getSources']
-  });
-  dart.defineLazy(html$.MediaStreamTrack, {
-    get endedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ended'));
-    },
-    get muteEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('mute'));
-    },
-    get unmuteEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('unmute'));
-    }
-  });
-  dart.registerExtension(dart.global.MediaStreamTrack, html$.MediaStreamTrack);
-  dart.defineExtensionNames([
-    'track'
-  ]);
-  html$.MediaStreamTrackEvent = class MediaStreamTrackEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return html_common.Device.isEventTypeSupported('MediaStreamTrackEvent');
-    }
-    get [dartx.track]() {
-      return this.track;
-    }
-  };
-  dart.setSignature(html$.MediaStreamTrackEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MediaStreamTrackEvent, [])}),
-    fields: () => ({[dartx.track]: html$.MediaStreamTrack}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.MediaStreamTrackEvent, html$.MediaStreamTrackEvent);
-  html$.MediaStreamTrackSourcesCallback = dart.typedef('MediaStreamTrackSourcesCallback', () => dart.functionType(dart.void, [ListOfSourceInfo()]));
-  dart.defineExtensionNames([
-    'jsHeapSizeLimit',
-    'totalJSHeapSize',
-    'usedJSHeapSize'
-  ]);
-  html$.MemoryInfo = class MemoryInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.jsHeapSizeLimit]() {
-      return this.jsHeapSizeLimit;
-    }
-    get [dartx.totalJSHeapSize]() {
-      return this.totalJSHeapSize;
-    }
-    get [dartx.usedJSHeapSize]() {
-      return this.usedJSHeapSize;
-    }
-  };
-  dart.setSignature(html$.MemoryInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MemoryInfo, [])}),
-    fields: () => ({
-      [dartx.jsHeapSizeLimit]: core.int,
-      [dartx.totalJSHeapSize]: core.int,
-      [dartx.usedJSHeapSize]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.MemoryInfo, html$.MemoryInfo);
-  dart.defineExtensionNames([
-    'label',
-    'type'
-  ]);
-  html$.MenuElement = class MenuElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MenuElement._check(html$.document[dartx.createElement]("menu"));
-    }
-    created() {
-      this[dartx.label] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    set [dartx.label](value) {
-      this.label = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.MenuElement, 'created');
-  dart.setSignature(html$.MenuElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MenuElement, []),
-      new: dart.definiteFunctionType(html$.MenuElement, []),
-      created: dart.definiteFunctionType(html$.MenuElement, [])
-    }),
-    fields: () => ({
-      [dartx.label]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLMenuElement, html$.MenuElement);
-  dart.defineExtensionNames([
-    'checked',
-    'defaultValue',
-    'disabled',
-    'icon',
-    'label',
-    'radiogroup',
-    'type'
-  ]);
-  html$.MenuItemElement = class MenuItemElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.checked] = null;
-      this[dartx.defaultValue] = null;
-      this[dartx.disabled] = null;
-      this[dartx.icon] = null;
-      this[dartx.label] = null;
-      this[dartx.radiogroup] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.checked]() {
-      return this.checked;
-    }
-    set [dartx.checked](value) {
-      this.checked = value;
-    }
-    get [dartx.defaultValue]() {
-      return this.default;
-    }
-    set [dartx.defaultValue](value) {
-      this.default = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.icon]() {
-      return this.icon;
-    }
-    set [dartx.icon](value) {
-      this.icon = value;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    set [dartx.label](value) {
-      this.label = value;
-    }
-    get [dartx.radiogroup]() {
-      return this.radiogroup;
-    }
-    set [dartx.radiogroup](value) {
-      this.radiogroup = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.MenuItemElement, 'created');
-  dart.setSignature(html$.MenuItemElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MenuItemElement, []),
-      created: dart.definiteFunctionType(html$.MenuItemElement, [])
-    }),
-    fields: () => ({
-      [dartx.checked]: core.bool,
-      [dartx.defaultValue]: core.bool,
-      [dartx.disabled]: core.bool,
-      [dartx.icon]: core.String,
-      [dartx.label]: core.String,
-      [dartx.radiogroup]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLMenuItemElement, html$.MenuItemElement);
-  dart.defineExtensionNames([
-    'port1',
-    'port2'
-  ]);
-  html$.MessageChannel = class MessageChannel extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.port1]() {
-      return this.port1;
-    }
-    get [dartx.port2]() {
-      return this.port2;
-    }
-  };
-  dart.setSignature(html$.MessageChannel, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MessageChannel, [])}),
-    fields: () => ({
-      [dartx.port1]: html$.MessagePort,
-      [dartx.port2]: html$.MessagePort
-    })
-  });
-  dart.registerExtension(dart.global.MessageChannel, html$.MessageChannel);
-  const _initMessageEvent = Symbol('_initMessageEvent');
-  const _get_data = Symbol('_get_data');
-  const _get_source = Symbol('_get_source');
-  dart.defineExtensionNames([
-    'data',
-    'source',
-    'lastEventId',
-    'origin'
-  ]);
-  html$.MessageEvent = class MessageEvent extends html$.Event {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
-      let data = opts && 'data' in opts ? opts.data : null;
-      let origin = opts && 'origin' in opts ? opts.origin : null;
-      let lastEventId = opts && 'lastEventId' in opts ? opts.lastEventId : null;
-      let source = opts && 'source' in opts ? opts.source : null;
-      let messagePorts = opts && 'messagePorts' in opts ? opts.messagePorts : null;
-      if (source == null) {
-        source = html$.window;
-      }
-      if (!dart.test(html_common.Device.isIE)) {
-        return new self.MessageEvent(type, {bubbles: canBubble, cancelable: cancelable, data: data, origin: origin, lastEventId: lastEventId, source: source, ports: messagePorts});
-      }
-      let event = html$.MessageEvent._check(html$.document[_createEvent]("MessageEvent"));
-      event[_initMessageEvent](type, canBubble, cancelable, data, origin, lastEventId, source, messagePorts);
-      return event;
-    }
-    get [dartx.data]() {
-      return html_common.convertNativeToDart_SerializedScriptValue(this[_get_data]);
-    }
-    get [_get_data]() {
-      return this.data;
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MessageEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MessageEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MessageEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MessageEvent(type);
-    }
-    get [dartx.lastEventId]() {
-      return this.lastEventId;
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.source]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_source]);
-    }
-    get [_get_source]() {
-      return this.source;
-    }
-    [_initMessageEvent](...args) {
-      return this.initMessageEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MessageEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.MessageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, data: core.Object, origin: core.String, lastEventId: core.String, source: html$.Window, messagePorts: ListOfMessagePort()}),
-      _: dart.definiteFunctionType(html$.MessageEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [_get_data]: dart.dynamic,
-      [dartx.lastEventId]: core.String,
-      [dartx.origin]: core.String,
-      [_get_source]: dart.dynamic
-    }),
-    getters: () => ({
-      [dartx.data]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.source]: dart.definiteFunctionType(html$.EventTarget, [])
-    }),
-    methods: () => ({[_initMessageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object, core.String, core.String, html$.Window, ListOfMessagePort()])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MessageEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MessageEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MessageEvent, html$.MessageEvent);
-  dart.defineExtensionNames([
-    'close',
-    'postMessage',
-    'start',
-    'onMessage'
-  ]);
-  html$.MessagePort = class MessagePort extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [dartx.start](...args) {
-      return this.start.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.MessagePort.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.MessagePort, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MessagePort, [])}),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.start]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.MessagePort, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.MessagePort, html$.MessagePort);
-  dart.defineExtensionNames([
-    'content',
-    'httpEquiv',
-    'name'
-  ]);
-  html$.MetaElement = class MetaElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MetaElement._check(html$.document[dartx.createElement]("meta"));
-    }
-    created() {
-      this[dartx.content] = null;
-      this[dartx.httpEquiv] = null;
-      this[dartx.name] = null;
-      super.created();
-    }
-    get [dartx.content]() {
-      return this.content;
-    }
-    set [dartx.content](value) {
-      this.content = value;
-    }
-    get [dartx.httpEquiv]() {
-      return this.httpEquiv;
-    }
-    set [dartx.httpEquiv](value) {
-      this.httpEquiv = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.MetaElement, 'created');
-  dart.setSignature(html$.MetaElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MetaElement, []),
-      new: dart.definiteFunctionType(html$.MetaElement, []),
-      created: dart.definiteFunctionType(html$.MetaElement, [])
-    }),
-    fields: () => ({
-      [dartx.content]: core.String,
-      [dartx.httpEquiv]: core.String,
-      [dartx.name]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLMetaElement, html$.MetaElement);
-  const _get_modificationTime = Symbol('_get_modificationTime');
-  dart.defineExtensionNames([
-    'modificationTime',
-    'size'
-  ]);
-  html$.Metadata = class Metadata extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.modificationTime]() {
-      return html_common.convertNativeToDart_DateTime(this[_get_modificationTime]);
-    }
-    get [_get_modificationTime]() {
-      return this.modificationTime;
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-  };
-  dart.setSignature(html$.Metadata, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Metadata, [])}),
-    fields: () => ({
-      [_get_modificationTime]: dart.dynamic,
-      [dartx.size]: core.int
-    }),
-    getters: () => ({[dartx.modificationTime]: dart.definiteFunctionType(core.DateTime, [])})
-  });
-  dart.registerExtension(dart.global.Metadata, html$.Metadata);
-  html$.MetadataCallback = dart.typedef('MetadataCallback', () => dart.functionType(dart.void, [html$.Metadata]));
-  dart.defineExtensionNames([
-    'high',
-    'labels',
-    'low',
-    'max',
-    'min',
-    'optimum',
-    'value'
-  ]);
-  html$.MeterElement = class MeterElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.MeterElement._check(html$.document[dartx.createElement]("meter"));
-    }
-    created() {
-      this[dartx.high] = null;
-      this[dartx.labels] = null;
-      this[dartx.low] = null;
-      this[dartx.max] = null;
-      this[dartx.min] = null;
-      this[dartx.optimum] = null;
-      this[dartx.value] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('meter');
-    }
-    get [dartx.high]() {
-      return this.high;
-    }
-    set [dartx.high](value) {
-      this.high = value;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.low]() {
-      return this.low;
-    }
-    set [dartx.low](value) {
-      this.low = value;
-    }
-    get [dartx.max]() {
-      return this.max;
-    }
-    set [dartx.max](value) {
-      this.max = value;
-    }
-    get [dartx.min]() {
-      return this.min;
-    }
-    set [dartx.min](value) {
-      this.min = value;
-    }
-    get [dartx.optimum]() {
-      return this.optimum;
-    }
-    set [dartx.optimum](value) {
-      this.optimum = value;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.MeterElement, 'created');
-  dart.setSignature(html$.MeterElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MeterElement, []),
-      new: dart.definiteFunctionType(html$.MeterElement, []),
-      created: dart.definiteFunctionType(html$.MeterElement, [])
-    }),
-    fields: () => ({
-      [dartx.high]: core.num,
-      [dartx.labels]: ListOfNode(),
-      [dartx.low]: core.num,
-      [dartx.max]: core.num,
-      [dartx.min]: core.num,
-      [dartx.optimum]: core.num,
-      [dartx.value]: core.num
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLMeterElement, html$.MeterElement);
-  dart.defineExtensionNames([
-    'inputs',
-    'outputs',
-    'sysexEnabled'
-  ]);
-  html$.MidiAccess = class MidiAccess extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.inputs]() {
-      return this.inputs;
-    }
-    get [dartx.outputs]() {
-      return this.outputs;
-    }
-    get [dartx.sysexEnabled]() {
-      return this.sysexEnabled;
-    }
-  };
-  dart.setSignature(html$.MidiAccess, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MidiAccess, [])}),
-    fields: () => ({
-      [dartx.inputs]: html$.MidiInputMap,
-      [dartx.outputs]: html$.MidiOutputMap,
-      [dartx.sysexEnabled]: core.bool
-    })
-  });
-  dart.registerExtension(dart.global.MIDIAccess, html$.MidiAccess);
-  dart.defineExtensionNames([
-    'port'
-  ]);
-  html$.MidiConnectionEvent = class MidiConnectionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MidiConnectionEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MidiConnectionEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new MIDIConnectionEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new MIDIConnectionEvent(type);
-    }
-    get [dartx.port]() {
-      return this.port;
-    }
-  };
-  dart.setSignature(html$.MidiConnectionEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MidiConnectionEvent, []),
-      new: dart.definiteFunctionType(html$.MidiConnectionEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.port]: html$.MidiPort}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MidiConnectionEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MidiConnectionEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MIDIConnectionEvent, html$.MidiConnectionEvent);
-  dart.defineExtensionNames([
-    'close',
-    'open',
-    'connection',
-    'id',
-    'manufacturer',
-    'name',
-    'state',
-    'type',
-    'version'
-  ]);
-  html$.MidiPort = class MidiPort extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.connection]() {
-      return this.connection;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.manufacturer]() {
-      return this.manufacturer;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.state]() {
-      return this.state;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.version]() {
-      return this.version;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.open](...args) {
-      return this.open.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MidiPort, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MidiPort, [])}),
-    fields: () => ({
-      [dartx.connection]: core.String,
-      [dartx.id]: core.String,
-      [dartx.manufacturer]: core.String,
-      [dartx.name]: core.String,
-      [dartx.state]: core.String,
-      [dartx.type]: core.String,
-      [dartx.version]: core.String
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(async.Future, []),
-      [dartx.open]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.MIDIPort, html$.MidiPort);
-  dart.defineExtensionNames([
-    'onMidiMessage'
-  ]);
-  html$.MidiInput = class MidiInput extends html$.MidiPort {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.onMidiMessage]() {
-      return html$.MidiInput.midiMessageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.MidiInput, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MidiInput, [])}),
-    getters: () => ({[dartx.onMidiMessage]: dart.definiteFunctionType(async.Stream$(html$.MidiMessageEvent), [])}),
-    sfields: () => ({midiMessageEvent: EventStreamProviderOfMidiMessageEvent()})
-  });
-  dart.defineLazy(html$.MidiInput, {
-    get midiMessageEvent() {
-      return dart.const(new (EventStreamProviderOfMidiMessageEvent())('midimessage'));
-    }
-  });
-  dart.registerExtension(dart.global.MIDIInput, html$.MidiInput);
-  dart.defineExtensionNames([
-    'size'
-  ]);
-  html$.MidiInputMap = class MidiInputMap extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-  };
-  dart.setSignature(html$.MidiInputMap, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MidiInputMap, [])}),
-    fields: () => ({[dartx.size]: core.int})
-  });
-  dart.registerExtension(dart.global.MIDIInputMap, html$.MidiInputMap);
-  dart.defineExtensionNames([
-    'data',
-    'receivedTime'
-  ]);
-  html$.MidiMessageEvent = class MidiMessageEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MidiMessageEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MidiMessageEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new MIDIMessageEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new MIDIMessageEvent(type);
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    get [dartx.receivedTime]() {
-      return this.receivedTime;
-    }
-  };
-  dart.setSignature(html$.MidiMessageEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.MidiMessageEvent, []),
-      new: dart.definiteFunctionType(html$.MidiMessageEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.data]: typed_data.Uint8List,
-      [dartx.receivedTime]: core.double
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MidiMessageEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MidiMessageEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MIDIMessageEvent, html$.MidiMessageEvent);
-  dart.defineExtensionNames([
-    'send'
-  ]);
-  html$.MidiOutput = class MidiOutput extends html$.MidiPort {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.send](...args) {
-      return this.send.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.MidiOutput, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MidiOutput, [])}),
-    methods: () => ({[dartx.send]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List], [core.num])})
-  });
-  dart.registerExtension(dart.global.MIDIOutput, html$.MidiOutput);
-  dart.defineExtensionNames([
-    'size'
-  ]);
-  html$.MidiOutputMap = class MidiOutputMap extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-  };
-  dart.setSignature(html$.MidiOutputMap, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MidiOutputMap, [])}),
-    fields: () => ({[dartx.size]: core.int})
-  });
-  dart.registerExtension(dart.global.MIDIOutputMap, html$.MidiOutputMap);
-  dart.defineExtensionNames([
-    'description',
-    'enabledPlugin',
-    'suffixes',
-    'type'
-  ]);
-  html$.MimeType = class MimeType extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.description]() {
-      return this.description;
-    }
-    get [dartx.enabledPlugin]() {
-      return this.enabledPlugin;
-    }
-    get [dartx.suffixes]() {
-      return this.suffixes;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.MimeType, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MimeType, [])}),
-    fields: () => ({
-      [dartx.description]: core.String,
-      [dartx.enabledPlugin]: html$.Plugin,
-      [dartx.suffixes]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.MimeType, html$.MimeType);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item',
-    'namedItem'
-  ]);
-  html$.MimeTypeArray = class MimeTypeArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.MimeType), html$.ImmutableListMixin$(html$.MimeType)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-  };
-  html$.MimeTypeArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfMimeType()];
-  dart.setSignature(html$.MimeTypeArray, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MimeTypeArray, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.MimeType, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.MimeType]),
-      [dartx.item]: dart.definiteFunctionType(html$.MimeType, [core.int]),
-      [dartx.namedItem]: dart.definiteFunctionType(html$.MimeType, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.MimeTypeArray, html$.MimeTypeArray);
-  dart.defineExtensionNames([
-    'cite',
-    'dateTime'
-  ]);
-  html$.ModElement = class ModElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.cite] = null;
-      this[dartx.dateTime] = null;
-      super.created();
-    }
-    get [dartx.cite]() {
-      return this.cite;
-    }
-    set [dartx.cite](value) {
-      this.cite = value;
-    }
-    get [dartx.dateTime]() {
-      return this.dateTime;
-    }
-    set [dartx.dateTime](value) {
-      this.dateTime = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.ModElement, 'created');
-  dart.setSignature(html$.ModElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ModElement, []),
-      created: dart.definiteFunctionType(html$.ModElement, [])
-    }),
-    fields: () => ({
-      [dartx.cite]: core.String,
-      [dartx.dateTime]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLModElement, html$.ModElement);
-  const _initMouseEvent = Symbol('_initMouseEvent');
-  const _clientX = Symbol('_clientX');
-  const _clientY = Symbol('_clientY');
-  const _layerX = Symbol('_layerX');
-  const _layerY = Symbol('_layerY');
-  const _movementX = Symbol('_movementX');
-  const _movementY = Symbol('_movementY');
-  const _pageX = Symbol('_pageX');
-  const _pageY = Symbol('_pageY');
-  const _screenX = Symbol('_screenX');
-  const _screenY = Symbol('_screenY');
-  const _webkitMovementX = Symbol('_webkitMovementX');
-  const _webkitMovementY = Symbol('_webkitMovementY');
-  const _initMouseEvent_1 = Symbol('_initMouseEvent_1');
-  dart.defineExtensionNames([
-    'relatedTarget',
-    'client',
-    'movement',
-    'offset',
-    'screen',
-    'layer',
-    'page',
-    'altKey',
-    'button',
-    'buttons',
-    'ctrlKey',
-    'dataTransfer',
-    'fromElement',
-    'metaKey',
-    'region',
-    'shiftKey',
-    'toElement'
-  ]);
-  html$.MouseEvent = class MouseEvent extends html$.UIEvent {
-    static new(type, opts) {
-      let view = opts && 'view' in opts ? opts.view : null;
-      let detail = opts && 'detail' in opts ? opts.detail : 0;
-      let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
-      let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
-      let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
-      let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
-      let button = opts && 'button' in opts ? opts.button : 0;
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
-      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
-      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
-      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
-      let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
-      if (view == null) {
-        view = html$.window;
-      }
-      let event = html$.MouseEvent._check(html$.document[_createEvent]('MouseEvent'));
-      event[_initMouseEvent](type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
-      return event;
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.MouseEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.MouseEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.MouseEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.MouseEvent(type);
-    }
-    get [dartx.altKey]() {
-      return this.altKey;
-    }
-    get [dartx.button]() {
-      return this.button;
-    }
-    get [dartx.buttons]() {
-      return this.buttons;
-    }
-    get [_clientX]() {
-      return this.clientX;
-    }
-    get [_clientY]() {
-      return this.clientY;
-    }
-    get [dartx.ctrlKey]() {
-      return this.ctrlKey;
-    }
-    get [dartx.dataTransfer]() {
-      return this.dataTransfer;
-    }
-    get [dartx.fromElement]() {
-      return this.fromElement;
-    }
-    get [_layerX]() {
-      return this.layerX;
-    }
-    get [_layerY]() {
-      return this.layerY;
-    }
-    get [dartx.metaKey]() {
-      return this.metaKey;
-    }
-    get [_movementX]() {
-      return this.movementX;
-    }
-    get [_movementY]() {
-      return this.movementY;
-    }
-    get [_pageX]() {
-      return this.pageX;
-    }
-    get [_pageY]() {
-      return this.pageY;
-    }
-    get [dartx.region]() {
-      return this.region;
-    }
-    get [dartx.relatedTarget]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
-    }
-    get [_get_relatedTarget]() {
-      return this.relatedTarget;
-    }
-    get [_screenX]() {
-      return this.screenX;
-    }
-    get [_screenY]() {
-      return this.screenY;
-    }
-    get [dartx.shiftKey]() {
-      return this.shiftKey;
-    }
-    get [dartx.toElement]() {
-      return this.toElement;
-    }
-    get [_webkitMovementX]() {
-      return this.webkitMovementX;
-    }
-    get [_webkitMovementY]() {
-      return this.webkitMovementY;
-    }
-    [_initMouseEvent](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
-      let relatedTarget_1 = html$._convertDartToNative_EventTarget(relatedTarget);
-      this[_initMouseEvent_1](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
-      return;
-    }
-    [_initMouseEvent_1](...args) {
-      return this.initMouseEvent.apply(this, args);
-    }
-    get [dartx.client]() {
-      return new (PointOfnum())(this[_clientX], this[_clientY]);
-    }
-    get [dartx.movement]() {
-      return new (PointOfnum())(this[_webkitMovementX], this[_webkitMovementY]);
-    }
-    get [dartx.offset]() {
-      if (!!this.offsetX) {
-        let x = this.offsetX;
-        let y = this.offsetY;
-        return new (PointOfnum())(x, y);
-      } else {
-        if (!html$.Element.is(this[dartx.target])) {
-          dart.throw(new core.UnsupportedError('offsetX is only supported on elements'));
-        }
-        let target = html$.Element._check(this[dartx.target]);
-        let point = this[dartx.client]['-'](target[dartx.getBoundingClientRect]()[dartx.topLeft]);
-        return new (PointOfnum())(point.x[dartx.toInt](), point.y[dartx.toInt]());
-      }
-    }
-    get [dartx.screen]() {
-      return new (PointOfnum())(this[_screenX], this[_screenY]);
-    }
-    get [dartx.layer]() {
-      return new (PointOfnum())(this[_layerX], this[_layerY]);
-    }
-    get [dartx.page]() {
-      return new (PointOfnum())(this[_pageX], this[_pageY]);
-    }
-  };
-  dart.setSignature(html$.MouseEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.MouseEvent, [core.String], {view: html$.Window, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html$.EventTarget}),
-      _: dart.definiteFunctionType(html$.MouseEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.altKey]: core.bool,
-      [dartx.button]: core.int,
-      [dartx.buttons]: core.int,
-      [_clientX]: core.int,
-      [_clientY]: core.int,
-      [dartx.ctrlKey]: core.bool,
-      [dartx.dataTransfer]: html$.DataTransfer,
-      [dartx.fromElement]: html$.Node,
-      [_layerX]: core.int,
-      [_layerY]: core.int,
-      [dartx.metaKey]: core.bool,
-      [_movementX]: core.int,
-      [_movementY]: core.int,
-      [_pageX]: core.int,
-      [_pageY]: core.int,
-      [dartx.region]: core.String,
-      [_get_relatedTarget]: dart.dynamic,
-      [_screenX]: core.int,
-      [_screenY]: core.int,
-      [dartx.shiftKey]: core.bool,
-      [dartx.toElement]: html$.Node,
-      [_webkitMovementX]: core.int,
-      [_webkitMovementY]: core.int
-    }),
-    getters: () => ({
-      [dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, []),
-      [dartx.client]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.movement]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.offset]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.screen]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.layer]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.page]: dart.definiteFunctionType(math.Point$(core.num), [])
-    }),
-    methods: () => ({
-      [_initMouseEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget]),
-      [_initMouseEvent_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.MouseEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.MouseEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.MouseEvent, html$.MouseEvent);
-  dart.registerExtension(dart.global.DragEvent, html$.MouseEvent);
-  html$.MutationCallback = dart.typedef('MutationCallback', () => dart.functionType(dart.void, [ListOfMutationRecord(), html$.MutationObserver]));
-  const _observe_1 = Symbol('_observe_1');
-  const _observe = Symbol('_observe');
-  const _call = Symbol('_call');
-  dart.defineExtensionNames([
-    'disconnect',
-    'takeRecords',
-    'observe'
-  ]);
-  html$.MutationObserver = class MutationObserver extends _interceptors.Interceptor {
-    [dartx.disconnect](...args) {
-      return this.disconnect.apply(this, args);
-    }
-    [_observe](target, options) {
-      let options_1 = html_common.convertDartToNative_Dictionary(options);
-      this[_observe_1](target, options_1);
-      return;
-    }
-    [_observe_1](...args) {
-      return this.observe.apply(this, args);
-    }
-    [dartx.takeRecords](...args) {
-      return this.takeRecords.apply(this, args);
-    }
-    static get supported() {
-      return !!(window.MutationObserver || window.WebKitMutationObserver);
-    }
-    [dartx.observe](target, opts) {
-      let childList = opts && 'childList' in opts ? opts.childList : null;
-      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
-      let characterData = opts && 'characterData' in opts ? opts.characterData : null;
-      let subtree = opts && 'subtree' in opts ? opts.subtree : null;
-      let attributeOldValue = opts && 'attributeOldValue' in opts ? opts.attributeOldValue : null;
-      let characterDataOldValue = opts && 'characterDataOldValue' in opts ? opts.characterDataOldValue : null;
-      let attributeFilter = opts && 'attributeFilter' in opts ? opts.attributeFilter : null;
-      let parsedOptions = html$.MutationObserver._createDict();
-      function override(key, value) {
-        if (value != null) html$.MutationObserver._add(parsedOptions, core.String._check(key), value);
-      }
-      dart.fn(override, dynamicAnddynamicToNull());
-      override('childList', childList);
-      override('attributes', attributes);
-      override('characterData', characterData);
-      override('subtree', subtree);
-      override('attributeOldValue', attributeOldValue);
-      override('characterDataOldValue', characterDataOldValue);
-      if (attributeFilter != null) {
-        override('attributeFilter', html$.MutationObserver._fixupList(attributeFilter));
-      }
-      this[_call](target, parsedOptions);
-    }
-    static _createDict() {
-      return {};
-    }
-    static _add(m, key, value) {
-      m[key] = value;
-    }
-    static _fixupList(list) {
-      return list;
-    }
-    [_call](...args) {
-      return this.observe.apply(this, args);
-    }
-    static new(callback) {
-      0;
-      return new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(_js_helper.convertDartClosureToJS(_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void())(html$._wrapBinaryZone(ListOfMutationRecord(), html$.MutationObserver, dart.void)(callback), 2));
-    }
-  };
-  dart.setSignature(html$.MutationObserver, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.MutationObserver, [html$.MutationCallback])}),
-    methods: () => ({
-      [dartx.disconnect]: dart.definiteFunctionType(dart.void, []),
-      [_observe]: dart.definiteFunctionType(dart.void, [html$.Node, core.Map]),
-      [_observe_1]: dart.definiteFunctionType(dart.void, [html$.Node, dart.dynamic]),
-      [dartx.takeRecords]: dart.definiteFunctionType(core.List$(html$.MutationRecord), []),
-      [dartx.observe]: dart.definiteFunctionType(dart.void, [html$.Node], {childList: core.bool, attributes: core.bool, characterData: core.bool, subtree: core.bool, attributeOldValue: core.bool, characterDataOldValue: core.bool, attributeFilter: ListOfString()}),
-      [_call]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])
-    }),
-    sfields: () => ({_boolKeys: MapOfString$bool()}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _createDict: dart.definiteFunctionType(dart.dynamic, []),
-      _add: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, dart.dynamic]),
-      _fixupList: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-    }),
-    names: ['_createDict', '_add', '_fixupList']
-  });
-  html$.MutationObserver._boolKeys = dart.const(dart.map({childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true}, core.String, core.bool));
-  dart.registerExtension(dart.global.MutationObserver, html$.MutationObserver);
-  dart.registerExtension(dart.global.WebKitMutationObserver, html$.MutationObserver);
-  dart.defineExtensionNames([
-    'addedNodes',
-    'attributeName',
-    'attributeNamespace',
-    'nextSibling',
-    'oldValue',
-    'previousSibling',
-    'removedNodes',
-    'target',
-    'type'
-  ]);
-  html$.MutationRecord = class MutationRecord extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.addedNodes]() {
-      return this.addedNodes;
-    }
-    get [dartx.attributeName]() {
-      return this.attributeName;
-    }
-    get [dartx.attributeNamespace]() {
-      return this.attributeNamespace;
-    }
-    get [dartx.nextSibling]() {
-      return this.nextSibling;
-    }
-    get [dartx.oldValue]() {
-      return this.oldValue;
-    }
-    get [dartx.previousSibling]() {
-      return this.previousSibling;
-    }
-    get [dartx.removedNodes]() {
-      return this.removedNodes;
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.MutationRecord, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.MutationRecord, [])}),
-    fields: () => ({
-      [dartx.addedNodes]: ListOfNode(),
-      [dartx.attributeName]: core.String,
-      [dartx.attributeNamespace]: core.String,
-      [dartx.nextSibling]: html$.Node,
-      [dartx.oldValue]: core.String,
-      [dartx.previousSibling]: html$.Node,
-      [dartx.removedNodes]: ListOfNode(),
-      [dartx.target]: html$.Node,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.MutationRecord, html$.MutationRecord);
-  const _ensureGetUserMedia = Symbol('_ensureGetUserMedia');
-  const _getUserMedia = Symbol('_getUserMedia');
-  const _requestMidiAccess_1 = Symbol('_requestMidiAccess_1');
-  const _requestMidiAccess_2 = Symbol('_requestMidiAccess_2');
-  dart.defineExtensionNames([
-    'language',
-    'getUserMedia',
-    'getBattery',
-    'getGamepads',
-    'getVRDevices',
-    'registerProtocolHandler',
-    'requestMidiAccess',
-    'requestMediaKeySystemAccess',
-    'sendBeacon',
-    'getStorageUpdates',
-    'bluetooth',
-    'connection',
-    'credentials',
-    'doNotTrack',
-    'geolocation',
-    'maxTouchPoints',
-    'mediaDevices',
-    'mimeTypes',
-    'permissions',
-    'presentation',
-    'productSub',
-    'serviceWorker',
-    'services',
-    'storageQuota',
-    'vendor',
-    'vendorSub',
-    'persistentStorage',
-    'temporaryStorage',
-    'hardwareConcurrency',
-    'appCodeName',
-    'appName',
-    'appVersion',
-    'dartEnabled',
-    'platform',
-    'product',
-    'userAgent',
-    'languages',
-    'onLine',
-    'cookieEnabled'
-  ]);
-  html$.Navigator = class Navigator extends _interceptors.Interceptor {
-    get [dartx.language]() {
-      return this.language || this.userLanguage;
-    }
-    [dartx.getUserMedia](opts) {
-      let audio = opts && 'audio' in opts ? opts.audio : false;
-      let video = opts && 'video' in opts ? opts.video : false;
-      let completer = CompleterOfMediaStream().new();
-      let options = dart.map({audio: audio, video: video}, core.String, dart.dynamic);
-      this[_ensureGetUserMedia]();
-      this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
-        completer.complete(stream);
-      }, MediaStreamToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, NavigatorUserMediaErrorToNull()));
-      return completer.future;
-    }
-    [_ensureGetUserMedia]() {
-      if (!this.getUserMedia) {
-        this.getUserMedia = this.getUserMedia || this.webkitGetUserMedia || this.mozGetUserMedia || this.msGetUserMedia;
-      }
-    }
-    [_getUserMedia](...args) {
-      return this.getUserMedia.apply(this, args);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.bluetooth]() {
-      return this.bluetooth;
-    }
-    get [dartx.connection]() {
-      return this.connection;
-    }
-    get [dartx.credentials]() {
-      return this.credentials;
-    }
-    get [dartx.doNotTrack]() {
-      return this.doNotTrack;
-    }
-    get [dartx.geolocation]() {
-      return this.geolocation;
-    }
-    get [dartx.maxTouchPoints]() {
-      return this.maxTouchPoints;
-    }
-    get [dartx.mediaDevices]() {
-      return this.mediaDevices;
-    }
-    get [dartx.mimeTypes]() {
-      return this.mimeTypes;
-    }
-    get [dartx.permissions]() {
-      return this.permissions;
-    }
-    get [dartx.presentation]() {
-      return this.presentation;
-    }
-    get [dartx.productSub]() {
-      return this.productSub;
-    }
-    get [dartx.serviceWorker]() {
-      return this.serviceWorker;
-    }
-    get [dartx.services]() {
-      return this.services;
-    }
-    get [dartx.storageQuota]() {
-      return this.storageQuota;
-    }
-    get [dartx.vendor]() {
-      return this.vendor;
-    }
-    get [dartx.vendorSub]() {
-      return this.vendorSub;
-    }
-    get [dartx.persistentStorage]() {
-      return this.webkitPersistentStorage;
-    }
-    get [dartx.temporaryStorage]() {
-      return this.webkitTemporaryStorage;
-    }
-    [dartx.getBattery](...args) {
-      return this.getBattery.apply(this, args);
-    }
-    [dartx.getGamepads](...args) {
-      return this.getGamepads.apply(this, args);
-    }
-    [dartx.getVRDevices](...args) {
-      return this.getVRDevices.apply(this, args);
-    }
-    [dartx.registerProtocolHandler](...args) {
-      return this.registerProtocolHandler.apply(this, args);
-    }
-    [dartx.requestMidiAccess](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_requestMidiAccess_1](options_1);
-      }
-      return this[_requestMidiAccess_2]();
-    }
-    [_requestMidiAccess_1](...args) {
-      return this.requestMIDIAccess.apply(this, args);
-    }
-    [_requestMidiAccess_2](...args) {
-      return this.requestMIDIAccess.apply(this, args);
-    }
-    [dartx.requestMediaKeySystemAccess](...args) {
-      return this.requestMediaKeySystemAccess.apply(this, args);
-    }
-    [dartx.sendBeacon](...args) {
-      return this.sendBeacon.apply(this, args);
-    }
-    get [dartx.hardwareConcurrency]() {
-      return this.hardwareConcurrency;
-    }
-    get [dartx.appCodeName]() {
-      return this.appCodeName;
-    }
-    get [dartx.appName]() {
-      return this.appName;
-    }
-    get [dartx.appVersion]() {
-      return this.appVersion;
-    }
-    get [dartx.dartEnabled]() {
-      return this.dartEnabled;
-    }
-    get [dartx.platform]() {
-      return this.platform;
-    }
-    get [dartx.product]() {
-      return this.product;
-    }
-    get [dartx.userAgent]() {
-      return this.userAgent;
-    }
-    get [dartx.languages]() {
-      return this.languages;
-    }
-    get [dartx.onLine]() {
-      return this.onLine;
-    }
-    get [dartx.cookieEnabled]() {
-      return this.cookieEnabled;
-    }
-    [dartx.getStorageUpdates](...args) {
-      return this.getStorageUpdates.apply(this, args);
-    }
-  };
-  html$.Navigator[dart.implements] = () => [html$.NavigatorStorageUtils, html$.NavigatorCpu, html$.NavigatorLanguage, html$.NavigatorOnLine, html$.NavigatorID];
-  dart.setSignature(html$.Navigator, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Navigator, [])}),
-    fields: () => ({
-      [dartx.bluetooth]: html$.Bluetooth,
-      [dartx.connection]: html$.NetworkInformation,
-      [dartx.credentials]: html$.CredentialsContainer,
-      [dartx.doNotTrack]: core.String,
-      [dartx.geolocation]: html$.Geolocation,
-      [dartx.maxTouchPoints]: core.int,
-      [dartx.mediaDevices]: html$.MediaDevices,
-      [dartx.mimeTypes]: html$.MimeTypeArray,
-      [dartx.permissions]: html$.Permissions,
-      [dartx.presentation]: html$.Presentation,
-      [dartx.productSub]: core.String,
-      [dartx.serviceWorker]: html$.ServiceWorkerContainer,
-      [dartx.services]: html$.ServicePortCollection,
-      [dartx.storageQuota]: html$.StorageQuota,
-      [dartx.vendor]: core.String,
-      [dartx.vendorSub]: core.String,
-      [dartx.persistentStorage]: html$.DeprecatedStorageQuota,
-      [dartx.temporaryStorage]: html$.DeprecatedStorageQuota,
-      [dartx.hardwareConcurrency]: core.int,
-      [dartx.appCodeName]: core.String,
-      [dartx.appName]: core.String,
-      [dartx.appVersion]: core.String,
-      [dartx.dartEnabled]: core.bool,
-      [dartx.platform]: core.String,
-      [dartx.product]: core.String,
-      [dartx.userAgent]: core.String,
-      [dartx.languages]: ListOfString(),
-      [dartx.onLine]: core.bool,
-      [dartx.cookieEnabled]: core.bool
-    }),
-    getters: () => ({[dartx.language]: dart.definiteFunctionType(core.String, [])}),
-    methods: () => ({
-      [dartx.getUserMedia]: dart.definiteFunctionType(async.Future$(html$.MediaStream), [], {audio: dart.dynamic, video: dart.dynamic}),
-      [_ensureGetUserMedia]: dart.definiteFunctionType(dart.dynamic, []),
-      [_getUserMedia]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$._NavigatorUserMediaSuccessCallback, html$._NavigatorUserMediaErrorCallback]),
-      [dartx.getBattery]: dart.definiteFunctionType(async.Future, []),
-      [dartx.getGamepads]: dart.definiteFunctionType(core.List$(html$.Gamepad), []),
-      [dartx.getVRDevices]: dart.definiteFunctionType(async.Future, []),
-      [dartx.registerProtocolHandler]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.requestMidiAccess]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_requestMidiAccess_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_requestMidiAccess_2]: dart.definiteFunctionType(async.Future, []),
-      [dartx.requestMediaKeySystemAccess]: dart.definiteFunctionType(async.Future, [core.String, ListOfMap()]),
-      [dartx.sendBeacon]: dart.definiteFunctionType(core.bool, [core.String, core.Object]),
-      [dartx.getStorageUpdates]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.Navigator, html$.Navigator);
-  dart.defineExtensionNames([
-    'hardwareConcurrency'
-  ]);
-  html$.NavigatorCpu = class NavigatorCpu extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get hardwareConcurrency() {
-      return this[hardwareConcurrency];
-    }
-    set hardwareConcurrency(value) {
-      super.hardwareConcurrency = value;
-    }
-  };
-  const hardwareConcurrency = Symbol(html$.NavigatorCpu.name + "." + 'hardwareConcurrency'.toString());
-  dart.setSignature(html$.NavigatorCpu, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorCpu, [])}),
-    fields: () => ({hardwareConcurrency: core.int})
-  });
-  dart.defineExtensionMembers(html$.NavigatorCpu, ['hardwareConcurrency']);
-  dart.defineExtensionNames([
-    'appCodeName',
-    'appName',
-    'appVersion',
-    'dartEnabled',
-    'platform',
-    'product',
-    'userAgent'
-  ]);
-  html$.NavigatorID = class NavigatorID extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get appCodeName() {
-      return this[appCodeName];
-    }
-    set appCodeName(value) {
-      super.appCodeName = value;
-    }
-    get appName() {
-      return this[appName];
-    }
-    set appName(value) {
-      super.appName = value;
-    }
-    get appVersion() {
-      return this[appVersion];
-    }
-    set appVersion(value) {
-      super.appVersion = value;
-    }
-    get dartEnabled() {
-      return this[dartEnabled];
-    }
-    set dartEnabled(value) {
-      super.dartEnabled = value;
-    }
-    get platform() {
-      return this[platform];
-    }
-    set platform(value) {
-      super.platform = value;
-    }
-    get product() {
-      return this[product];
-    }
-    set product(value) {
-      super.product = value;
-    }
-    get userAgent() {
-      return this[userAgent];
-    }
-    set userAgent(value) {
-      super.userAgent = value;
-    }
-  };
-  const appCodeName = Symbol(html$.NavigatorID.name + "." + 'appCodeName'.toString());
-  const appName = Symbol(html$.NavigatorID.name + "." + 'appName'.toString());
-  const appVersion = Symbol(html$.NavigatorID.name + "." + 'appVersion'.toString());
-  const dartEnabled = Symbol(html$.NavigatorID.name + "." + 'dartEnabled'.toString());
-  const platform = Symbol(html$.NavigatorID.name + "." + 'platform'.toString());
-  const product = Symbol(html$.NavigatorID.name + "." + 'product'.toString());
-  const userAgent = Symbol(html$.NavigatorID.name + "." + 'userAgent'.toString());
-  dart.setSignature(html$.NavigatorID, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorID, [])}),
-    fields: () => ({
-      appCodeName: core.String,
-      appName: core.String,
-      appVersion: core.String,
-      dartEnabled: core.bool,
-      platform: core.String,
-      product: core.String,
-      userAgent: core.String
-    })
-  });
-  dart.defineExtensionMembers(html$.NavigatorID, [
-    'appCodeName',
-    'appName',
-    'appVersion',
-    'dartEnabled',
-    'platform',
-    'product',
-    'userAgent'
-  ]);
-  dart.defineExtensionNames([
-    'language',
-    'languages'
-  ]);
-  html$.NavigatorLanguage = class NavigatorLanguage extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get language() {
-      return this[language];
-    }
-    set language(value) {
-      super.language = value;
-    }
-    get languages() {
-      return this[languages];
-    }
-    set languages(value) {
-      super.languages = value;
-    }
-  };
-  const language = Symbol(html$.NavigatorLanguage.name + "." + 'language'.toString());
-  const languages = Symbol(html$.NavigatorLanguage.name + "." + 'languages'.toString());
-  dart.setSignature(html$.NavigatorLanguage, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorLanguage, [])}),
-    fields: () => ({
-      language: core.String,
-      languages: ListOfString()
-    })
-  });
-  dart.defineExtensionMembers(html$.NavigatorLanguage, ['language', 'languages']);
-  dart.defineExtensionNames([
-    'onLine'
-  ]);
-  html$.NavigatorOnLine = class NavigatorOnLine extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get onLine() {
-      return this[onLine];
-    }
-    set onLine(value) {
-      super.onLine = value;
-    }
-  };
-  const onLine = Symbol(html$.NavigatorOnLine.name + "." + 'onLine'.toString());
-  dart.setSignature(html$.NavigatorOnLine, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorOnLine, [])}),
-    fields: () => ({onLine: core.bool})
-  });
-  dart.defineExtensionMembers(html$.NavigatorOnLine, ['onLine']);
-  dart.defineExtensionNames([
-    'getStorageUpdates',
-    'cookieEnabled'
-  ]);
-  html$.NavigatorStorageUtils = class NavigatorStorageUtils extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.cookieEnabled]() {
-      return this.cookieEnabled;
-    }
-    [dartx.getStorageUpdates](...args) {
-      return this.getStorageUpdates.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.NavigatorStorageUtils, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorStorageUtils, [])}),
-    fields: () => ({[dartx.cookieEnabled]: core.bool}),
-    methods: () => ({[dartx.getStorageUpdates]: dart.definiteFunctionType(dart.void, [])})
-  });
-  dart.registerExtension(dart.global.NavigatorStorageUtils, html$.NavigatorStorageUtils);
-  dart.defineExtensionNames([
-    'constraintName',
-    'message',
-    'name'
-  ]);
-  html$.NavigatorUserMediaError = class NavigatorUserMediaError extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.constraintName]() {
-      return this.constraintName;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-  };
-  dart.setSignature(html$.NavigatorUserMediaError, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorUserMediaError, [])}),
-    fields: () => ({
-      [dartx.constraintName]: core.String,
-      [dartx.message]: core.String,
-      [dartx.name]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.NavigatorUserMediaError, html$.NavigatorUserMediaError);
-  html$._NavigatorUserMediaErrorCallback = dart.typedef('_NavigatorUserMediaErrorCallback', () => dart.functionType(dart.void, [html$.NavigatorUserMediaError]));
-  html$._NavigatorUserMediaSuccessCallback = dart.typedef('_NavigatorUserMediaSuccessCallback', () => dart.functionType(dart.void, [html$.MediaStream]));
-  dart.defineExtensionNames([
-    'type'
-  ]);
-  html$.NetworkInformation = class NetworkInformation extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.NetworkInformation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NetworkInformation, [])}),
-    fields: () => ({[dartx.type]: core.String})
-  });
-  dart.registerExtension(dart.global.NetworkInformation, html$.NetworkInformation);
-  html$._ChildNodeListLazy = class _ChildNodeListLazy extends collection.ListBase$(html$.Node) {
-    new(this$) {
-      this[_this] = this$;
-    }
-    get first() {
-      let result = this[_this].firstChild;
-      if (result == null) dart.throw(new core.StateError("No elements"));
-      return result;
-    }
-    get last() {
-      let result = this[_this].lastChild;
-      if (result == null) dart.throw(new core.StateError("No elements"));
-      return result;
-    }
-    get single() {
-      let l = this.length;
-      if (l == 0) dart.throw(new core.StateError("No elements"));
-      if (dart.notNull(l) > 1) dart.throw(new core.StateError("More than one element"));
-      return this[_this].firstChild;
-    }
-    add(value) {
-      this[_this][dartx.append](value);
-    }
-    addAll(iterable) {
-      if (html$._ChildNodeListLazy.is(iterable)) {
-        let otherList = iterable;
-        if (!core.identical(otherList[_this], this[_this])) {
-          for (let i = 0, len = otherList.length; i < dart.notNull(len); ++i) {
-            this[_this][dartx.append](otherList[_this][dartx.firstChild]);
-          }
-        }
-        return;
-      }
-      for (let node of iterable) {
-        this[_this][dartx.append](node);
-      }
-    }
-    insert(index, node) {
-      if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
-        dart.throw(new core.RangeError.range(index, 0, this.length));
-      }
-      if (index == this.length) {
-        this[_this][dartx.append](node);
-      } else {
-        this[_this][dartx.insertBefore](node, this._get(index));
-      }
-    }
-    insertAll(index, iterable) {
-      if (index == this.length) {
-        this.addAll(iterable);
-      } else {
-        let item = this._get(index);
-        this[_this][dartx.insertAllBefore](iterable, item);
-      }
-    }
-    setAll(index, iterable) {
-      dart.throw(new core.UnsupportedError("Cannot setAll on Node list"));
-    }
-    removeLast() {
-      let result = this.last;
-      if (result != null) {
-        this[_this][_removeChild](result);
-      }
-      return result;
-    }
-    removeAt(index) {
-      let result = this._get(index);
-      if (result != null) {
-        this[_this][_removeChild](result);
-      }
-      return result;
-    }
-    remove(object) {
-      if (!html$.Node.is(object)) return false;
-      let node = html$.Node._check(object);
-      if (!core.identical(this[_this], node[dartx.parentNode])) return false;
-      this[_this][_removeChild](node);
-      return true;
-    }
-    [_filter$0](test, removeMatching) {
-      let child = this[_this][dartx.firstChild];
-      while (child != null) {
-        let nextChild = child[dartx.nextNode];
-        if (test(child) == removeMatching) {
-          this[_this][_removeChild](child);
-        }
-        child = nextChild;
-      }
-    }
-    removeWhere(test) {
-      this[_filter$0](test, true);
-    }
-    retainWhere(test) {
-      this[_filter$0](test, false);
-    }
-    clear() {
-      this[_this][_clearChildren]();
-    }
-    _set(index, value) {
-      this[_this][_replaceChild](value, this._get(index));
-      return value;
-    }
-    get iterator() {
-      return this[_this][dartx.childNodes][dartx.iterator];
+    setRange(start, end, iterable, skipCount) {
+      IterableOfE()._check(iterable);
+      if (skipCount === void 0) skipCount = 0;
+      js.JsArray._checkRange(start, end, this.length);
+      let length = dart.notNull(end) - dart.notNull(start);
+      if (length == 0) return;
+      if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError(skipCount));
+      let args = JSArrayOfObject().of([start, length]);
+      args[dartx.addAll](iterable[dartx.skip](skipCount)[dartx.take](length));
+      this.callMethod('splice', args);
     }
     sort(compare) {
       if (compare === void 0) compare = null;
-      dart.throw(new core.UnsupportedError("Cannot sort Node list"));
+      this.callMethod('sort', compare == null ? [] : JSArrayOfEAndEToint().of([compare]));
     }
-    shuffle(random) {
-      if (random === void 0) random = null;
-      dart.throw(new core.UnsupportedError("Cannot shuffle Node list"));
-    }
-    setRange(start, end, iterable, skipCount) {
-      if (skipCount === void 0) skipCount = 0;
-      dart.throw(new core.UnsupportedError("Cannot setRange on Node list"));
-    }
-    fillRange(start, end, fill) {
-      if (fill === void 0) fill = null;
-      dart.throw(new core.UnsupportedError("Cannot fillRange on Node list"));
-    }
-    get length() {
-      return this[_this][dartx.childNodes][dartx.length];
-    }
-    set length(value) {
-      dart.throw(new core.UnsupportedError("Cannot set length on immutable List."));
-    }
-    _get(index) {
-      return this[_this][dartx.childNodes][dartx._get](index);
-    }
-    get rawList() {
-      return this[_this][dartx.childNodes];
-    }
-  };
-  dart.addSimpleTypeTests(html$._ChildNodeListLazy);
-  html$._ChildNodeListLazy[dart.implements] = () => [html_common.NodeListWrapper];
-  dart.setSignature(html$._ChildNodeListLazy, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ChildNodeListLazy, [html$.Node])}),
-    fields: () => ({[_this]: html$.Node}),
-    getters: () => ({
-      length: dart.definiteFunctionType(core.int, []),
-      rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
+  }
+  dart.addTypeTests(JsArray);
+  dart.defineNamedConstructor(JsArray, 'from');
+  dart.defineNamedConstructor(JsArray, '_fromJs');
+  dart.setSignature(JsArray, {
+    constructors: () => ({
+      new: dart.definiteFunctionType(js.JsArray$(E), []),
+      from: dart.definiteFunctionType(js.JsArray$(E), [IterableOfE()]),
+      _fromJs: dart.definiteFunctionType(js.JsArray$(E), [dart.dynamic])
     }),
+    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
     setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
     methods: () => ({
-      [_filter$0]: dart.definiteFunctionType(dart.void, [NodeTobool(), core.bool]),
-      _set: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
-      _get: dart.definiteFunctionType(html$.Node, [core.int])
-    })
+      [_checkIndex]: dart.definiteFunctionType(dart.dynamic, [core.int]),
+      [_checkInsertIndex]: dart.definiteFunctionType(dart.dynamic, [core.int]),
+      _get: dart.definiteFunctionType(E, [core.Object]),
+      _set: dart.definiteFunctionType(dart.void, [core.Object, E])
+    }),
+    statics: () => ({_checkRange: dart.definiteFunctionType(dart.dynamic, [core.int, core.int, core.int])}),
+    names: ['_checkRange']
   });
-  dart.defineExtensionMembers(html$._ChildNodeListLazy, [
+  dart.defineExtensionMembers(JsArray, [
+    '_get',
+    '_set',
     'add',
     'addAll',
     'insert',
-    'insertAll',
-    'setAll',
-    'removeLast',
     'removeAt',
-    'remove',
-    'removeWhere',
-    'retainWhere',
-    'clear',
-    '_set',
-    'sort',
-    'shuffle',
+    'removeLast',
+    'removeRange',
     'setRange',
-    'fillRange',
-    '_get',
-    'first',
-    'last',
-    'single',
-    'iterator',
+    'sort',
     'length',
     'length'
   ]);
-  html$.NodeFilter = class NodeFilter extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
+  return JsArray;
+});
+js.JsArray = JsArray();
+js._isBrowserType = function(o) {
+  return o instanceof Object && (o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || window.IDBKeyRange && o instanceof IDBKeyRange || o instanceof ImageData || o instanceof Node || window.Int8Array && o instanceof Int8Array.__proto__ || o instanceof Window);
+};
+dart.fn(js._isBrowserType, dynamicTobool$());
+const _dartObj = Symbol('_dartObj');
+js._DartObject = class _DartObject extends core.Object {
+  new(dartObj) {
+    this[_dartObj] = dartObj;
+  }
+};
+dart.setSignature(js._DartObject, {
+  constructors: () => ({new: dart.definiteFunctionType(js._DartObject, [dart.dynamic])}),
+  fields: () => ({[_dartObj]: dart.dynamic})
+});
+js._convertToJS = function(o) {
+  if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.test(js._isBrowserType(o))) {
+    return o;
+  } else if (core.DateTime.is(o)) {
+    return _js_helper.Primitives.lazyAsJsDate(o);
+  } else if (js.JsObject.is(o)) {
+    return o[_jsObject];
+  } else if (core.Function.is(o)) {
+    return js._putIfAbsent(js._jsProxies, o, js._wrapDartFunction);
+  } else {
+    return js._putIfAbsent(js._jsProxies, o, dart.fn(o => new js._DartObject(o), dynamicTo_DartObject()));
+  }
+};
+dart.fn(js._convertToJS, dynamicTodynamic$());
+js._wrapDartFunction = function(f) {
+  let wrapper = function() {
+    let args = Array.prototype.map.call(arguments, js._convertToDart);
+    return js._convertToJS(f(...args));
   };
-  dart.setSignature(html$.NodeFilter, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NodeFilter, [])}),
-    sfields: () => ({
-      FILTER_ACCEPT: core.int,
-      FILTER_REJECT: core.int,
-      FILTER_SKIP: core.int,
-      SHOW_ALL: core.int,
-      SHOW_COMMENT: core.int,
-      SHOW_DOCUMENT: core.int,
-      SHOW_DOCUMENT_FRAGMENT: core.int,
-      SHOW_DOCUMENT_TYPE: core.int,
-      SHOW_ELEMENT: core.int,
-      SHOW_PROCESSING_INSTRUCTION: core.int,
-      SHOW_TEXT: core.int
-    })
-  });
-  html$.NodeFilter.FILTER_ACCEPT = 1;
-  html$.NodeFilter.FILTER_REJECT = 2;
-  html$.NodeFilter.FILTER_SKIP = 3;
-  html$.NodeFilter.SHOW_ALL = 4294967295;
-  html$.NodeFilter.SHOW_COMMENT = 128;
-  html$.NodeFilter.SHOW_DOCUMENT = 256;
-  html$.NodeFilter.SHOW_DOCUMENT_FRAGMENT = 1024;
-  html$.NodeFilter.SHOW_DOCUMENT_TYPE = 512;
-  html$.NodeFilter.SHOW_ELEMENT = 1;
-  html$.NodeFilter.SHOW_PROCESSING_INSTRUCTION = 64;
-  html$.NodeFilter.SHOW_TEXT = 4;
-  dart.registerExtension(dart.global.NodeFilter, html$.NodeFilter);
-  dart.defineExtensionNames([
-    'detach',
-    'nextNode',
-    'previousNode',
-    'pointerBeforeReferenceNode',
-    'referenceNode',
-    'root',
-    'whatToShow'
-  ]);
-  html$.NodeIterator = class NodeIterator extends _interceptors.Interceptor {
-    static new(root, whatToShow) {
-      return html$.document[_createNodeIterator](root, whatToShow, null);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.pointerBeforeReferenceNode]() {
-      return this.pointerBeforeReferenceNode;
-    }
-    get [dartx.referenceNode]() {
-      return this.referenceNode;
-    }
-    get [dartx.root]() {
-      return this.root;
-    }
-    get [dartx.whatToShow]() {
-      return this.whatToShow;
-    }
-    [dartx.detach](...args) {
-      return this.detach.apply(this, args);
-    }
-    [dartx.nextNode](...args) {
-      return this.nextNode.apply(this, args);
-    }
-    [dartx.previousNode](...args) {
-      return this.previousNode.apply(this, args);
-    }
+  js._dartProxies.set(wrapper, f);
+  return wrapper;
+};
+dart.fn(js._wrapDartFunction, dynamicTodynamic$());
+js._convertToDart = function(o) {
+  if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean" || dart.test(js._isBrowserType(o))) {
+    return o;
+  } else if (o instanceof Date) {
+    let ms = o.getTime();
+    return new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(ms));
+  } else if (js._DartObject.is(o) && dart.jsobject != dart.getReifiedType(o)) {
+    return o[_dartObj];
+  } else {
+    return js._wrapToDart(o);
+  }
+};
+dart.fn(js._convertToDart, dynamicToObject());
+js._wrapToDart = function(o) {
+  return js._putIfAbsent(js._dartProxies, o, js._wrapToDartHelper);
+};
+dart.fn(js._wrapToDart, dynamicToObject());
+js._wrapToDartHelper = function(o) {
+  if (typeof o == "function") {
+    return new js.JsFunction._fromJs(o);
+  }
+  if (o instanceof Array) {
+    return new js.JsArray._fromJs(o);
+  }
+  return new js.JsObject._fromJs(o);
+};
+dart.fn(js._wrapToDartHelper, dynamicToObject());
+dart.defineLazy(js, {
+  get _dartProxies() {
+    return new WeakMap();
+  }
+});
+dart.defineLazy(js, {
+  get _jsProxies() {
+    return new WeakMap();
+  }
+});
+js._putIfAbsent = function(weakMap, o, getValue) {
+  let value = weakMap.get(o);
+  if (value == null) {
+    value = dart.dcall(getValue, o);
+    weakMap.set(o, value);
+  }
+  return value;
+};
+dart.fn(js._putIfAbsent, dynamicAnddynamicAndFnToObject());
+js.allowInterop = function(F) {
+  return f => {
+    return f;
   };
-  dart.setSignature(html$.NodeIterator, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.NodeIterator, [html$.Node, core.int]),
-      _: dart.definiteFunctionType(html$.NodeIterator, [])
-    }),
-    fields: () => ({
-      [dartx.pointerBeforeReferenceNode]: core.bool,
-      [dartx.referenceNode]: html$.Node,
-      [dartx.root]: html$.Node,
-      [dartx.whatToShow]: core.int
-    }),
-    methods: () => ({
-      [dartx.detach]: dart.definiteFunctionType(dart.void, []),
-      [dartx.nextNode]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.previousNode]: dart.definiteFunctionType(html$.Node, [])
-    })
-  });
-  dart.registerExtension(dart.global.NodeIterator, html$.NodeIterator);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt'
-  ]);
-  html$.NodeList = class NodeList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
+};
+dart.fn(js.allowInterop, FToF());
+dart.defineLazy(js, {
+  get _interopCaptureThisExpando() {
+    return new (ExpandoOfFunction())();
+  },
+  set _interopCaptureThisExpando(_) {}
+});
+js.allowInteropCaptureThis = function(f) {
+  let ret = js._interopCaptureThisExpando._get(f);
+  if (ret == null) {
+    ret = function() {
+      let args = [this];
+      for (let arg of arguments) {
+        args.push(arg);
       }
-      dart.throw(new core.StateError("No elements"));
+      return f(...args);
+    };
+    js._interopCaptureThisExpando._set(f, ret);
+  }
+  return ret;
+};
+dart.fn(js.allowInteropCaptureThis, FunctionToFunction());
+js_util.jsify = function(object) {
+  if (!core.Map.is(object) && !core.Iterable.is(object)) {
+    dart.throw(new core.ArgumentError("object must be a Map or Iterable"));
+  }
+  return js_util._convertDataTree(object);
+};
+dart.fn(js_util.jsify, dynamicTodynamic$());
+js_util._convertDataTree = function(data) {
+  let _convertedObjects = collection.HashMap.identity();
+  function _convert(o) {
+    if (dart.test(_convertedObjects.containsKey(o))) {
+      return _convertedObjects._get(o);
     }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
+    if (core.Map.is(o)) {
+      let convertedMap = {};
+      _convertedObjects._set(o, convertedMap);
+      for (let key of o[dartx.keys]) {
+        convertedMap[key] = _convert(o[dartx._get](key));
       }
-      dart.throw(new core.StateError("No elements"));
+      return convertedMap;
+    } else if (core.Iterable.is(o)) {
+      let convertedList = [];
+      _convertedObjects._set(o, convertedList);
+      convertedList[dartx.addAll](o[dartx.map](dart.dynamic)(_convert));
+      return convertedList;
+    } else {
+      return o;
     }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
+  }
+  dart.fn(_convert, dynamicTodynamic$());
+  return _convert(data);
+};
+dart.fn(js_util._convertDataTree, dynamicTodynamic$());
+js_util.newObject = function() {
+  return {};
+};
+dart.fn(js_util.newObject, VoidTodynamic$());
+js_util.hasProperty = function(o, name) {
+  return name in o;
+};
+dart.fn(js_util.hasProperty, dynamicAnddynamicTodynamic$());
+js_util.getProperty = function(o, name) {
+  return o[name];
+};
+dart.fn(js_util.getProperty, dynamicAnddynamicTodynamic$());
+js_util.setProperty = function(o, name, value) {
+  return o[name] = value;
+};
+dart.fn(js_util.setProperty, dynamicAnddynamicAnddynamicTodynamic());
+js_util.callMethod = function(o, method, args) {
+  return o[method].apply(o, args);
+};
+dart.fn(js_util.callMethod, dynamicAndStringAndListTodynamic());
+js_util.instanceof = function(o, type) {
+  return o instanceof type;
+};
+dart.fn(js_util.instanceof, dynamicAndFunctionTodynamic());
+js_util.callConstructor = function(constr, arguments$) {
+  if (arguments$ == null) {
+    return new constr();
+  }
+  if (arguments$ instanceof Array) {
+    let argumentCount = arguments$.length;
+    switch (argumentCount) {
+      case 0:
+      {
+        return new constr();
       }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [_item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.NodeList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
-  dart.setSignature(html$.NodeList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NodeList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
-      [_item]: dart.definiteFunctionType(html$.Node, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.NodeList, html$.NodeList);
-  dart.registerExtension(dart.global.RadioNodeList, html$.NodeList);
-  dart.defineExtensionNames([
-    'nextElementSibling',
-    'previousElementSibling'
-  ]);
-  html$.NonDocumentTypeChildNode = class NonDocumentTypeChildNode extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.nextElementSibling]() {
-      return this.nextElementSibling;
-    }
-    get [dartx.previousElementSibling]() {
-      return this.previousElementSibling;
-    }
-  };
-  dart.setSignature(html$.NonDocumentTypeChildNode, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NonDocumentTypeChildNode, [])}),
-    fields: () => ({
-      [dartx.nextElementSibling]: html$.Element,
-      [dartx.previousElementSibling]: html$.Element
-    })
-  });
-  dart.registerExtension(dart.global.NonDocumentTypeChildNode, html$.NonDocumentTypeChildNode);
-  dart.defineExtensionNames([
-    'getElementById'
-  ]);
-  html$.NonElementParentNode = class NonElementParentNode extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getElementById](...args) {
-      return this.getElementById.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.NonElementParentNode, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.NonElementParentNode, [])}),
-    methods: () => ({[dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String])})
-  });
-  dart.registerExtension(dart.global.NonElementParentNode, html$.NonElementParentNode);
-  dart.defineExtensionNames([
-    'close',
-    'onClick',
-    'onClose',
-    'onError',
-    'onShow',
-    'body',
-    'data',
-    'dir',
-    'icon',
-    'lang',
-    'permission',
-    'silent',
-    'tag',
-    'title',
-    'vibrate'
-  ]);
-  html$.Notification = class Notification extends html$.EventTarget {
-    static new(title, opts) {
-      let dir = opts && 'dir' in opts ? opts.dir : null;
-      let body = opts && 'body' in opts ? opts.body : null;
-      let lang = opts && 'lang' in opts ? opts.lang : null;
-      let tag = opts && 'tag' in opts ? opts.tag : null;
-      let icon = opts && 'icon' in opts ? opts.icon : null;
-      let parsedOptions = dart.map();
-      if (dir != null) parsedOptions[dartx._set]('dir', dir);
-      if (body != null) parsedOptions[dartx._set]('body', body);
-      if (lang != null) parsedOptions[dartx._set]('lang', lang);
-      if (tag != null) parsedOptions[dartx._set]('tag', tag);
-      if (icon != null) parsedOptions[dartx._set]('icon', icon);
-      return html$.Notification._factoryNotification(title, parsedOptions);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static _factoryNotification(title, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return html$.Notification._create_1(title, options_1);
+      case 1:
+      {
+        let arg0 = arguments$[0];
+        return new constr(arg0);
       }
-      return html$.Notification._create_2(title);
-    }
-    static _create_1(title, options) {
-      return new self.Notification(title, options);
-    }
-    static _create_2(title) {
-      return new self.Notification(title);
-    }
-    static get supported() {
-      return !!window.Notification;
-    }
-    get [dartx.body]() {
-      return this.body;
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    get [dartx.dir]() {
-      return this.dir;
-    }
-    get [dartx.icon]() {
-      return this.icon;
-    }
-    get [dartx.lang]() {
-      return this.lang;
-    }
-    get [dartx.permission]() {
-      return this.permission;
-    }
-    get [dartx.silent]() {
-      return this.silent;
-    }
-    get [dartx.tag]() {
-      return this.tag;
-    }
-    get [dartx.title]() {
-      return this.title;
-    }
-    get [dartx.vibrate]() {
-      return this.vibrate;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    static requestPermission() {
-      let completer = CompleterOfString().new();
-      html$.Notification._requestPermission(dart.fn(value => {
-        completer.complete(value);
-      }, StringToNull()));
-      return completer.future;
-    }
-    get [dartx.onClick]() {
-      return html$.Notification.clickEvent.forTarget(this);
-    }
-    get [dartx.onClose]() {
-      return html$.Notification.closeEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.Notification.errorEvent.forTarget(this);
-    }
-    get [dartx.onShow]() {
-      return html$.Notification.showEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.Notification, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.Notification, [core.String], {dir: core.String, body: core.String, lang: core.String, tag: core.String, icon: core.String}),
-      _: dart.definiteFunctionType(html$.Notification, [])
-    }),
-    fields: () => ({
-      [dartx.body]: core.String,
-      [dartx.data]: core.Object,
-      [dartx.dir]: core.String,
-      [dartx.icon]: core.String,
-      [dartx.lang]: core.String,
-      [dartx.permission]: core.String,
-      [dartx.silent]: core.bool,
-      [dartx.tag]: core.String,
-      [dartx.title]: core.String,
-      [dartx.vibrate]: ListOfint()
-    }),
-    getters: () => ({
-      [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onShow]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({[dartx.close]: dart.definiteFunctionType(dart.void, [])}),
-    sfields: () => ({
-      clickEvent: EventStreamProviderOfEvent(),
-      closeEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      showEvent: EventStreamProviderOfEvent()
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _factoryNotification: dart.definiteFunctionType(html$.Notification, [core.String], [core.Map]),
-      _create_1: dart.definiteFunctionType(html$.Notification, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.Notification, [dart.dynamic]),
-      _requestPermission: dart.definiteFunctionType(dart.void, [], [html$._NotificationPermissionCallback]),
-      requestPermission: dart.definiteFunctionType(async.Future$(core.String), [])
-    }),
-    names: ['_factoryNotification', '_create_1', '_create_2', '_requestPermission', 'requestPermission']
-  });
-  dart.defineLazy(html$.Notification, {
-    get clickEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('click'));
-    },
-    get closeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('close'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get showEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('show'));
-    }
-  });
-  dart.registerExtension(dart.global.Notification, html$.Notification);
-  dart.defineExtensionNames([
-    'notification'
-  ]);
-  html$.NotificationEvent = class NotificationEvent extends html$.ExtendableEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.NotificationEvent._create_1(type, eventInitDict_1);
+      case 2:
+      {
+        let arg0 = arguments$[0];
+        let arg1 = arguments$[1];
+        return new constr(arg0, arg1);
       }
-      return html$.NotificationEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.NotificationEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.NotificationEvent(type);
-    }
-    get [dartx.notification]() {
-      return this.notification;
-    }
-  };
-  dart.setSignature(html$.NotificationEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.NotificationEvent, []),
-      new: dart.definiteFunctionType(html$.NotificationEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.notification]: html$.Notification}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.NotificationEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.NotificationEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.NotificationEvent, html$.NotificationEvent);
-  html$._NotificationPermissionCallback = dart.typedef('_NotificationPermissionCallback', () => dart.functionType(dart.void, [core.String]));
-  dart.defineExtensionNames([
-    'reversed',
-    'start',
-    'type'
-  ]);
-  html$.OListElement = class OListElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.OListElement._check(html$.document[dartx.createElement]("ol"));
-    }
-    created() {
-      this[dartx.reversed] = null;
-      this[dartx.start] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.reversed]() {
-      return this.reversed;
-    }
-    set [dartx.reversed](value) {
-      this.reversed = value;
-    }
-    get [dartx.start]() {
-      return this.start;
-    }
-    set [dartx.start](value) {
-      this.start = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.OListElement, 'created');
-  dart.setSignature(html$.OListElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.OListElement, []),
-      new: dart.definiteFunctionType(html$.OListElement, []),
-      created: dart.definiteFunctionType(html$.OListElement, [])
-    }),
-    fields: () => ({
-      [dartx.reversed]: core.bool,
-      [dartx.start]: core.int,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLOListElement, html$.OListElement);
-  dart.defineExtensionNames([
-    'checkValidity',
-    'reportValidity',
-    'setCustomValidity',
-    'data',
-    'form',
-    'height',
-    'name',
-    'type',
-    'useMap',
-    'validationMessage',
-    'validity',
-    'width',
-    'willValidate'
-  ]);
-  html$.ObjectElement = class ObjectElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ObjectElement._check(html$.document[dartx.createElement]("object"));
-    }
-    created() {
-      this[dartx.data] = null;
-      this[dartx.form] = null;
-      this[dartx.height] = null;
-      this[dartx.name] = null;
-      this[dartx.type] = null;
-      this[dartx.useMap] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.width] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('object');
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    set [dartx.data](value) {
-      this.data = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.useMap]() {
-      return this.useMap;
-    }
-    set [dartx.useMap](value) {
-      this.useMap = value;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [__setter__](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.ObjectElement, 'created');
-  dart.setSignature(html$.ObjectElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ObjectElement, []),
-      new: dart.definiteFunctionType(html$.ObjectElement, []),
-      created: dart.definiteFunctionType(html$.ObjectElement, [])
-    }),
-    fields: () => ({
-      [dartx.data]: core.String,
-      [dartx.form]: html$.FormElement,
-      [dartx.height]: core.String,
-      [dartx.name]: core.String,
-      [dartx.type]: core.String,
-      [dartx.useMap]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.width]: core.String,
-      [dartx.willValidate]: core.bool
-    }),
-    methods: () => ({
-      [__getter__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node]),
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLObjectElement, html$.ObjectElement);
-  dart.defineExtensionNames([
-    'disabled',
-    'label'
-  ]);
-  html$.OptGroupElement = class OptGroupElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.OptGroupElement._check(html$.document[dartx.createElement]("optgroup"));
-    }
-    created() {
-      this[dartx.disabled] = null;
-      this[dartx.label] = null;
-      super.created();
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    set [dartx.label](value) {
-      this.label = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.OptGroupElement, 'created');
-  dart.setSignature(html$.OptGroupElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.OptGroupElement, []),
-      new: dart.definiteFunctionType(html$.OptGroupElement, []),
-      created: dart.definiteFunctionType(html$.OptGroupElement, [])
-    }),
-    fields: () => ({
-      [dartx.disabled]: core.bool,
-      [dartx.label]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLOptGroupElement, html$.OptGroupElement);
-  dart.defineExtensionNames([
-    'defaultSelected',
-    'disabled',
-    'form',
-    'index',
-    'label',
-    'selected',
-    'value'
-  ]);
-  html$.OptionElement = class OptionElement extends html$.HtmlElement {
-    static new(opts) {
-      let data = opts && 'data' in opts ? opts.data : '';
-      let value = opts && 'value' in opts ? opts.value : '';
-      let selected = opts && 'selected' in opts ? opts.selected : false;
-      return html$.OptionElement._(data, value, null, selected);
-    }
-    static _(data, value, defaultSelected, selected) {
-      if (data === void 0) data = null;
-      if (value === void 0) value = null;
-      if (defaultSelected === void 0) defaultSelected = null;
-      if (selected === void 0) selected = null;
-      if (selected != null) {
-        return html$.OptionElement._create_1(data, value, defaultSelected, selected);
+      case 3:
+      {
+        let arg0 = arguments$[0];
+        let arg1 = arguments$[1];
+        let arg2 = arguments$[2];
+        return new constr(arg0, arg1, arg2);
       }
-      if (defaultSelected != null) {
-        return html$.OptionElement._create_2(data, value, defaultSelected);
-      }
-      if (value != null) {
-        return html$.OptionElement._create_3(data, value);
-      }
-      if (data != null) {
-        return html$.OptionElement._create_4(data);
-      }
-      return html$.OptionElement._create_5();
-    }
-    static _create_1(data, value, defaultSelected, selected) {
-      return new Option(data, value, defaultSelected, selected);
-    }
-    static _create_2(data, value, defaultSelected) {
-      return new Option(data, value, defaultSelected);
-    }
-    static _create_3(data, value) {
-      return new Option(data, value);
-    }
-    static _create_4(data) {
-      return new Option(data);
-    }
-    static _create_5() {
-      return new Option();
-    }
-    created() {
-      this[dartx.defaultSelected] = null;
-      this[dartx.disabled] = null;
-      this[dartx.form] = null;
-      this[dartx.index] = null;
-      this[dartx.label] = null;
-      this[dartx.selected] = null;
-      this[dartx.value] = null;
-      super.created();
-    }
-    get [dartx.defaultSelected]() {
-      return this.defaultSelected;
-    }
-    set [dartx.defaultSelected](value) {
-      this.defaultSelected = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.index]() {
-      return this.index;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    set [dartx.label](value) {
-      this.label = value;
-    }
-    get [dartx.selected]() {
-      return this.selected;
-    }
-    set [dartx.selected](value) {
-      this.selected = value;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.OptionElement, 'created');
-  dart.setSignature(html$.OptionElement, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.OptionElement, [], {data: core.String, value: core.String, selected: core.bool}),
-      _: dart.definiteFunctionType(html$.OptionElement, [], [core.String, core.String, core.bool, core.bool]),
-      created: dart.definiteFunctionType(html$.OptionElement, [])
-    }),
-    fields: () => ({
-      [dartx.defaultSelected]: core.bool,
-      [dartx.disabled]: core.bool,
-      [dartx.form]: html$.FormElement,
-      [dartx.index]: core.int,
-      [dartx.label]: core.String,
-      [dartx.selected]: core.bool,
-      [dartx.value]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic]),
-      _create_4: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic]),
-      _create_5: dart.definiteFunctionType(html$.OptionElement, [])
-    }),
-    names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
-  });
-  dart.registerExtension(dart.global.HTMLOptionElement, html$.OptionElement);
-  dart.defineExtensionNames([
-    'checkValidity',
-    'reportValidity',
-    'setCustomValidity',
-    'defaultValue',
-    'form',
-    'htmlFor',
-    'labels',
-    'name',
-    'type',
-    'validationMessage',
-    'validity',
-    'value',
-    'willValidate'
-  ]);
-  html$.OutputElement = class OutputElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.OutputElement._check(html$.document[dartx.createElement]("output"));
-    }
-    created() {
-      this[dartx.defaultValue] = null;
-      this[dartx.form] = null;
-      this[dartx.htmlFor] = null;
-      this[dartx.labels] = null;
-      this[dartx.name] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.value] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('output');
-    }
-    get [dartx.defaultValue]() {
-      return this.defaultValue;
-    }
-    set [dartx.defaultValue](value) {
-      this.defaultValue = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.htmlFor]() {
-      return this.htmlFor;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.OutputElement, 'created');
-  dart.setSignature(html$.OutputElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.OutputElement, []),
-      new: dart.definiteFunctionType(html$.OutputElement, []),
-      created: dart.definiteFunctionType(html$.OutputElement, [])
-    }),
-    fields: () => ({
-      [dartx.defaultValue]: core.String,
-      [dartx.form]: html$.FormElement,
-      [dartx.htmlFor]: html$.DomSettableTokenList,
-      [dartx.labels]: ListOfNode(),
-      [dartx.name]: core.String,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.value]: core.String,
-      [dartx.willValidate]: core.bool
-    }),
-    methods: () => ({
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLOutputElement, html$.OutputElement);
-  dart.defineExtensionNames([
-    'persisted'
-  ]);
-  html$.PageTransitionEvent = class PageTransitionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.PageTransitionEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.PageTransitionEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.PageTransitionEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.PageTransitionEvent(type);
-    }
-    get [dartx.persisted]() {
-      return this.persisted;
-    }
-  };
-  dart.setSignature(html$.PageTransitionEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PageTransitionEvent, []),
-      new: dart.definiteFunctionType(html$.PageTransitionEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.persisted]: core.bool}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.PageTransitionEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.PageTransitionEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.PageTransitionEvent, html$.PageTransitionEvent);
-  html$.ParagraphElement = class ParagraphElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ParagraphElement._check(html$.document[dartx.createElement]("p"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.ParagraphElement, 'created');
-  dart.setSignature(html$.ParagraphElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ParagraphElement, []),
-      new: dart.definiteFunctionType(html$.ParagraphElement, []),
-      created: dart.definiteFunctionType(html$.ParagraphElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLParagraphElement, html$.ParagraphElement);
-  dart.defineExtensionNames([
-    'name',
-    'value'
-  ]);
-  html$.ParamElement = class ParamElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ParamElement._check(html$.document[dartx.createElement]("param"));
-    }
-    created() {
-      this[dartx.name] = null;
-      this[dartx.value] = null;
-      super.created();
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.ParamElement, 'created');
-  dart.setSignature(html$.ParamElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ParamElement, []),
-      new: dart.definiteFunctionType(html$.ParamElement, []),
-      created: dart.definiteFunctionType(html$.ParamElement, [])
-    }),
-    fields: () => ({
-      [dartx.name]: core.String,
-      [dartx.value]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLParamElement, html$.ParamElement);
-  html$.ParentNode = class ParentNode extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.ParentNode, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ParentNode, [])}),
-    fields: () => ({
-      [_childElementCount]: core.int,
-      [_children]: ListOfNode(),
-      [_firstElementChild]: html$.Element,
-      [_lastElementChild]: html$.Element
-    })
-  });
-  dart.defineExtensionNames([
-    'formData',
-    'password'
-  ]);
-  html$.PasswordCredential = class PasswordCredential extends html$.Credential {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(id, password, name, iconURL) {
-      if (name === void 0) name = null;
-      if (iconURL === void 0) iconURL = null;
-      if (iconURL != null) {
-        return html$.PasswordCredential._create_1(id, password, name, iconURL);
-      }
-      if (name != null) {
-        return html$.PasswordCredential._create_2(id, password, name);
-      }
-      return html$.PasswordCredential._create_3(id, password);
-    }
-    static _create_1(id, password, name, iconURL) {
-      return new self.PasswordCredential(id, password, name, iconURL);
-    }
-    static _create_2(id, password, name) {
-      return new self.PasswordCredential(id, password, name);
-    }
-    static _create_3(id, password) {
-      return new self.PasswordCredential(id, password);
-    }
-    get [dartx.formData]() {
-      return this.formData;
-    }
-    get [dartx.password]() {
-      return this.password;
-    }
-  };
-  dart.setSignature(html$.PasswordCredential, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PasswordCredential, []),
-      new: dart.definiteFunctionType(html$.PasswordCredential, [core.String, core.String], [core.String, core.String])
-    }),
-    fields: () => ({
-      [dartx.formData]: html$.FormData,
-      [dartx.password]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3']
-  });
-  dart.registerExtension(dart.global.PasswordCredential, html$.PasswordCredential);
-  dart.defineExtensionNames([
-    'addPath',
-    'arc',
-    'arcTo',
-    'bezierCurveTo',
-    'closePath',
-    'ellipse',
-    'lineTo',
-    'moveTo',
-    'quadraticCurveTo',
-    'rect'
-  ]);
-  html$.Path2D = class Path2D extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(path_OR_text) {
-      if (path_OR_text === void 0) path_OR_text = null;
-      if (path_OR_text == null) {
-        return html$.Path2D._create_1();
-      }
-      if (html$.Path2D.is(path_OR_text) || path_OR_text == null) {
-        return html$.Path2D._create_2(path_OR_text);
-      }
-      if (typeof path_OR_text == 'string' || path_OR_text == null) {
-        return html$.Path2D._create_3(path_OR_text);
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    static _create_1() {
-      return new Path2D();
-    }
-    static _create_2(path_OR_text) {
-      return new Path2D(path_OR_text);
-    }
-    static _create_3(path_OR_text) {
-      return new Path2D(path_OR_text);
-    }
-    [dartx.addPath](...args) {
-      return this.addPath.apply(this, args);
-    }
-    [dartx.arc](...args) {
-      return this.arc.apply(this, args);
-    }
-    [dartx.arcTo](...args) {
-      return this.arcTo.apply(this, args);
-    }
-    [dartx.bezierCurveTo](...args) {
-      return this.bezierCurveTo.apply(this, args);
-    }
-    [dartx.closePath](...args) {
-      return this.closePath.apply(this, args);
-    }
-    [dartx.ellipse](...args) {
-      return this.ellipse.apply(this, args);
-    }
-    [dartx.lineTo](...args) {
-      return this.lineTo.apply(this, args);
-    }
-    [dartx.moveTo](...args) {
-      return this.moveTo.apply(this, args);
-    }
-    [dartx.quadraticCurveTo](...args) {
-      return this.quadraticCurveTo.apply(this, args);
-    }
-    [dartx.rect](...args) {
-      return this.rect.apply(this, args);
-    }
-  };
-  html$.Path2D[dart.implements] = () => [html$._CanvasPathMethods];
-  dart.setSignature(html$.Path2D, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.Path2D, []),
-      new: dart.definiteFunctionType(html$.Path2D, [], [dart.dynamic])
-    }),
-    methods: () => ({
-      [dartx.addPath]: dart.definiteFunctionType(dart.void, [html$.Path2D], [svg$.Matrix]),
-      [dartx.arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
-      [dartx.arcTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
-      [dartx.bezierCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.closePath]: dart.definiteFunctionType(dart.void, []),
-      [dartx.ellipse]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
-      [dartx.lineTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.moveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.quadraticCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.rect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.Path2D, []),
-      _create_2: dart.definiteFunctionType(html$.Path2D, [dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.Path2D, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2', '_create_3']
-  });
-  dart.registerExtension(dart.global.Path2D, html$.Path2D);
-  dart.defineExtensionNames([
-    'clearFrameTimings',
-    'clearMarks',
-    'clearMeasures',
-    'getEntries',
-    'getEntriesByName',
-    'getEntriesByType',
-    'mark',
-    'measure',
-    'now',
-    'setFrameTimingBufferSize',
-    'clearResourceTimings',
-    'setResourceTimingBufferSize',
-    'onResourceTimingBufferFull',
-    'memory',
-    'navigation',
-    'timing'
-  ]);
-  html$.Performance = class Performance extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!window.performance;
-    }
-    get [dartx.memory]() {
-      return this.memory;
-    }
-    get [dartx.navigation]() {
-      return this.navigation;
-    }
-    get [dartx.timing]() {
-      return this.timing;
-    }
-    [dartx.clearFrameTimings](...args) {
-      return this.clearFrameTimings.apply(this, args);
-    }
-    [dartx.clearMarks](...args) {
-      return this.clearMarks.apply(this, args);
-    }
-    [dartx.clearMeasures](...args) {
-      return this.clearMeasures.apply(this, args);
-    }
-    [dartx.getEntries](...args) {
-      return this.getEntries.apply(this, args);
-    }
-    [dartx.getEntriesByName](...args) {
-      return this.getEntriesByName.apply(this, args);
-    }
-    [dartx.getEntriesByType](...args) {
-      return this.getEntriesByType.apply(this, args);
-    }
-    [dartx.mark](...args) {
-      return this.mark.apply(this, args);
-    }
-    [dartx.measure](...args) {
-      return this.measure.apply(this, args);
-    }
-    [dartx.now](...args) {
-      return this.now.apply(this, args);
-    }
-    [dartx.setFrameTimingBufferSize](...args) {
-      return this.setFrameTimingBufferSize.apply(this, args);
-    }
-    [dartx.clearResourceTimings](...args) {
-      return this.webkitClearResourceTimings.apply(this, args);
-    }
-    [dartx.setResourceTimingBufferSize](...args) {
-      return this.webkitSetResourceTimingBufferSize.apply(this, args);
-    }
-    get [dartx.onResourceTimingBufferFull]() {
-      return html$.Performance.resourceTimingBufferFullEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.Performance, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Performance, [])}),
-    fields: () => ({
-      [dartx.memory]: html$.MemoryInfo,
-      [dartx.navigation]: html$.PerformanceNavigation,
-      [dartx.timing]: html$.PerformanceTiming
-    }),
-    getters: () => ({[dartx.onResourceTimingBufferFull]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.clearFrameTimings]: dart.definiteFunctionType(dart.void, []),
-      [dartx.clearMarks]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.clearMeasures]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.getEntries]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), []),
-      [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
-      [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String]),
-      [dartx.mark]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.measure]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.now]: dart.definiteFunctionType(core.double, []),
-      [dartx.setFrameTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.clearResourceTimings]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setResourceTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int])
-    }),
-    sfields: () => ({resourceTimingBufferFullEvent: EventStreamProviderOfEvent()}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineLazy(html$.Performance, {
-    get resourceTimingBufferFullEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('webkitresourcetimingbufferfull'));
-    }
-  });
-  dart.registerExtension(dart.global.Performance, html$.Performance);
-  dart.defineExtensionNames([
-    'duration',
-    'entryType',
-    'name',
-    'startTime'
-  ]);
-  html$.PerformanceEntry = class PerformanceEntry extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    get [dartx.entryType]() {
-      return this.entryType;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.startTime]() {
-      return this.startTime;
-    }
-  };
-  dart.setSignature(html$.PerformanceEntry, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceEntry, [])}),
-    fields: () => ({
-      [dartx.duration]: core.double,
-      [dartx.entryType]: core.String,
-      [dartx.name]: core.String,
-      [dartx.startTime]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.PerformanceEntry, html$.PerformanceEntry);
-  dart.defineExtensionNames([
-    'sourceFrame'
-  ]);
-  html$.PerformanceCompositeTiming = class PerformanceCompositeTiming extends html$.PerformanceEntry {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.sourceFrame]() {
-      return this.sourceFrame;
-    }
-  };
-  dart.setSignature(html$.PerformanceCompositeTiming, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceCompositeTiming, [])}),
-    fields: () => ({[dartx.sourceFrame]: core.int})
-  });
-  dart.registerExtension(dart.global.PerformanceCompositeTiming, html$.PerformanceCompositeTiming);
-  html$.PerformanceMark = class PerformanceMark extends html$.PerformanceEntry {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.PerformanceMark, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceMark, [])})
-  });
-  dart.registerExtension(dart.global.PerformanceMark, html$.PerformanceMark);
-  html$.PerformanceMeasure = class PerformanceMeasure extends html$.PerformanceEntry {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.PerformanceMeasure, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceMeasure, [])})
-  });
-  dart.registerExtension(dart.global.PerformanceMeasure, html$.PerformanceMeasure);
-  dart.defineExtensionNames([
-    'redirectCount',
-    'type'
-  ]);
-  html$.PerformanceNavigation = class PerformanceNavigation extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.redirectCount]() {
-      return this.redirectCount;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.PerformanceNavigation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceNavigation, [])}),
-    fields: () => ({
-      [dartx.redirectCount]: core.int,
-      [dartx.type]: core.int
-    }),
-    sfields: () => ({
-      TYPE_BACK_FORWARD: core.int,
-      TYPE_NAVIGATE: core.int,
-      TYPE_RELOAD: core.int,
-      TYPE_RESERVED: core.int
-    })
-  });
-  html$.PerformanceNavigation.TYPE_BACK_FORWARD = 2;
-  html$.PerformanceNavigation.TYPE_NAVIGATE = 0;
-  html$.PerformanceNavigation.TYPE_RELOAD = 1;
-  html$.PerformanceNavigation.TYPE_RESERVED = 255;
-  dart.registerExtension(dart.global.PerformanceNavigation, html$.PerformanceNavigation);
-  dart.defineExtensionNames([
-    'sourceFrame'
-  ]);
-  html$.PerformanceRenderTiming = class PerformanceRenderTiming extends html$.PerformanceEntry {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.sourceFrame]() {
-      return this.sourceFrame;
-    }
-  };
-  dart.setSignature(html$.PerformanceRenderTiming, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceRenderTiming, [])}),
-    fields: () => ({[dartx.sourceFrame]: core.int})
-  });
-  dart.registerExtension(dart.global.PerformanceRenderTiming, html$.PerformanceRenderTiming);
-  dart.defineExtensionNames([
-    'connectEnd',
-    'connectStart',
-    'domainLookupEnd',
-    'domainLookupStart',
-    'fetchStart',
-    'initiatorType',
-    'redirectEnd',
-    'redirectStart',
-    'requestStart',
-    'responseEnd',
-    'responseStart',
-    'secureConnectionStart',
-    'workerStart'
-  ]);
-  html$.PerformanceResourceTiming = class PerformanceResourceTiming extends html$.PerformanceEntry {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.connectEnd]() {
-      return this.connectEnd;
-    }
-    get [dartx.connectStart]() {
-      return this.connectStart;
-    }
-    get [dartx.domainLookupEnd]() {
-      return this.domainLookupEnd;
-    }
-    get [dartx.domainLookupStart]() {
-      return this.domainLookupStart;
-    }
-    get [dartx.fetchStart]() {
-      return this.fetchStart;
-    }
-    get [dartx.initiatorType]() {
-      return this.initiatorType;
-    }
-    get [dartx.redirectEnd]() {
-      return this.redirectEnd;
-    }
-    get [dartx.redirectStart]() {
-      return this.redirectStart;
-    }
-    get [dartx.requestStart]() {
-      return this.requestStart;
-    }
-    get [dartx.responseEnd]() {
-      return this.responseEnd;
-    }
-    get [dartx.responseStart]() {
-      return this.responseStart;
-    }
-    get [dartx.secureConnectionStart]() {
-      return this.secureConnectionStart;
-    }
-    get [dartx.workerStart]() {
-      return this.workerStart;
-    }
-  };
-  dart.setSignature(html$.PerformanceResourceTiming, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceResourceTiming, [])}),
-    fields: () => ({
-      [dartx.connectEnd]: core.double,
-      [dartx.connectStart]: core.double,
-      [dartx.domainLookupEnd]: core.double,
-      [dartx.domainLookupStart]: core.double,
-      [dartx.fetchStart]: core.double,
-      [dartx.initiatorType]: core.String,
-      [dartx.redirectEnd]: core.double,
-      [dartx.redirectStart]: core.double,
-      [dartx.requestStart]: core.double,
-      [dartx.responseEnd]: core.double,
-      [dartx.responseStart]: core.double,
-      [dartx.secureConnectionStart]: core.double,
-      [dartx.workerStart]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.PerformanceResourceTiming, html$.PerformanceResourceTiming);
-  dart.defineExtensionNames([
-    'connectEnd',
-    'connectStart',
-    'domComplete',
-    'domContentLoadedEventEnd',
-    'domContentLoadedEventStart',
-    'domInteractive',
-    'domLoading',
-    'domainLookupEnd',
-    'domainLookupStart',
-    'fetchStart',
-    'loadEventEnd',
-    'loadEventStart',
-    'navigationStart',
-    'redirectEnd',
-    'redirectStart',
-    'requestStart',
-    'responseEnd',
-    'responseStart',
-    'secureConnectionStart',
-    'unloadEventEnd',
-    'unloadEventStart'
-  ]);
-  html$.PerformanceTiming = class PerformanceTiming extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.connectEnd]() {
-      return this.connectEnd;
-    }
-    get [dartx.connectStart]() {
-      return this.connectStart;
-    }
-    get [dartx.domComplete]() {
-      return this.domComplete;
-    }
-    get [dartx.domContentLoadedEventEnd]() {
-      return this.domContentLoadedEventEnd;
-    }
-    get [dartx.domContentLoadedEventStart]() {
-      return this.domContentLoadedEventStart;
-    }
-    get [dartx.domInteractive]() {
-      return this.domInteractive;
-    }
-    get [dartx.domLoading]() {
-      return this.domLoading;
-    }
-    get [dartx.domainLookupEnd]() {
-      return this.domainLookupEnd;
-    }
-    get [dartx.domainLookupStart]() {
-      return this.domainLookupStart;
-    }
-    get [dartx.fetchStart]() {
-      return this.fetchStart;
-    }
-    get [dartx.loadEventEnd]() {
-      return this.loadEventEnd;
-    }
-    get [dartx.loadEventStart]() {
-      return this.loadEventStart;
-    }
-    get [dartx.navigationStart]() {
-      return this.navigationStart;
-    }
-    get [dartx.redirectEnd]() {
-      return this.redirectEnd;
-    }
-    get [dartx.redirectStart]() {
-      return this.redirectStart;
-    }
-    get [dartx.requestStart]() {
-      return this.requestStart;
-    }
-    get [dartx.responseEnd]() {
-      return this.responseEnd;
-    }
-    get [dartx.responseStart]() {
-      return this.responseStart;
-    }
-    get [dartx.secureConnectionStart]() {
-      return this.secureConnectionStart;
-    }
-    get [dartx.unloadEventEnd]() {
-      return this.unloadEventEnd;
-    }
-    get [dartx.unloadEventStart]() {
-      return this.unloadEventStart;
-    }
-  };
-  dart.setSignature(html$.PerformanceTiming, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceTiming, [])}),
-    fields: () => ({
-      [dartx.connectEnd]: core.int,
-      [dartx.connectStart]: core.int,
-      [dartx.domComplete]: core.int,
-      [dartx.domContentLoadedEventEnd]: core.int,
-      [dartx.domContentLoadedEventStart]: core.int,
-      [dartx.domInteractive]: core.int,
-      [dartx.domLoading]: core.int,
-      [dartx.domainLookupEnd]: core.int,
-      [dartx.domainLookupStart]: core.int,
-      [dartx.fetchStart]: core.int,
-      [dartx.loadEventEnd]: core.int,
-      [dartx.loadEventStart]: core.int,
-      [dartx.navigationStart]: core.int,
-      [dartx.redirectEnd]: core.int,
-      [dartx.redirectStart]: core.int,
-      [dartx.requestStart]: core.int,
-      [dartx.responseEnd]: core.int,
-      [dartx.responseStart]: core.int,
-      [dartx.secureConnectionStart]: core.int,
-      [dartx.unloadEventEnd]: core.int,
-      [dartx.unloadEventStart]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.PerformanceTiming, html$.PerformanceTiming);
-  dart.defineExtensionNames([
-    'registration'
-  ]);
-  html$.PeriodicSyncEvent = class PeriodicSyncEvent extends html$.ExtendableEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, init) {
-      let init_1 = html_common.convertDartToNative_Dictionary(init);
-      return html$.PeriodicSyncEvent._create_1(type, init_1);
-    }
-    static _create_1(type, init) {
-      return new self.PeriodicSyncEvent(type, init);
-    }
-    get [dartx.registration]() {
-      return this.registration;
-    }
-  };
-  dart.setSignature(html$.PeriodicSyncEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PeriodicSyncEvent, []),
-      new: dart.definiteFunctionType(html$.PeriodicSyncEvent, [core.String, core.Map])
-    }),
-    fields: () => ({[dartx.registration]: html$.PeriodicSyncRegistration}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.PeriodicSyncEvent, [dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.PeriodicSyncEvent, html$.PeriodicSyncEvent);
-  const _register_1 = Symbol('_register_1');
-  const _register_2 = Symbol('_register_2');
-  dart.defineExtensionNames([
-    'getRegistration',
-    'getRegistrations',
-    'permissionState',
-    'register',
-    'minPossiblePeriod'
-  ]);
-  html$.PeriodicSyncManager = class PeriodicSyncManager extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.minPossiblePeriod]() {
-      return this.minPossiblePeriod;
-    }
-    [dartx.getRegistration](...args) {
-      return this.getRegistration.apply(this, args);
-    }
-    [dartx.getRegistrations](...args) {
-      return this.getRegistrations.apply(this, args);
-    }
-    [dartx.permissionState](...args) {
-      return this.permissionState.apply(this, args);
-    }
-    [dartx.register](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_register_1](options_1);
-      }
-      return this[_register_2]();
-    }
-    [_register_1](...args) {
-      return this.register.apply(this, args);
-    }
-    [_register_2](...args) {
-      return this.register.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.PeriodicSyncManager, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PeriodicSyncManager, [])}),
-    fields: () => ({[dartx.minPossiblePeriod]: core.int}),
-    methods: () => ({
-      [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
-      [dartx.permissionState]: dart.definiteFunctionType(async.Future, []),
-      [dartx.register]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_register_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_register_2]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.PeriodicSyncManager, html$.PeriodicSyncManager);
-  dart.defineExtensionNames([
-    'unregister',
-    'minPeriod',
-    'networkState',
-    'powerState',
-    'tag'
-  ]);
-  html$.PeriodicSyncRegistration = class PeriodicSyncRegistration extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.minPeriod]() {
-      return this.minPeriod;
-    }
-    get [dartx.networkState]() {
-      return this.networkState;
-    }
-    get [dartx.powerState]() {
-      return this.powerState;
-    }
-    get [dartx.tag]() {
-      return this.tag;
-    }
-    [dartx.unregister](...args) {
-      return this.unregister.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.PeriodicSyncRegistration, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PeriodicSyncRegistration, [])}),
-    fields: () => ({
-      [dartx.minPeriod]: core.int,
-      [dartx.networkState]: core.String,
-      [dartx.powerState]: core.String,
-      [dartx.tag]: core.String
-    }),
-    methods: () => ({[dartx.unregister]: dart.definiteFunctionType(async.Future, [])})
-  });
-  dart.registerExtension(dart.global.PeriodicSyncRegistration, html$.PeriodicSyncRegistration);
-  dart.defineExtensionNames([
-    'onChange',
-    'state',
-    'status'
-  ]);
-  html$.PermissionStatus = class PermissionStatus extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.state]() {
-      return this.state;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    get [dartx.onChange]() {
-      return html$.PermissionStatus.changeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.PermissionStatus, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PermissionStatus, [])}),
-    fields: () => ({
-      [dartx.state]: core.String,
-      [dartx.status]: core.String
-    }),
-    getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.PermissionStatus, {
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.PermissionStatus, html$.PermissionStatus);
-  dart.defineExtensionNames([
-    'query'
-  ]);
-  html$.Permissions = class Permissions extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.query](...args) {
-      return this.query.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Permissions, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Permissions, [])}),
-    methods: () => ({[dartx.query]: dart.definiteFunctionType(async.Future, [core.Object])})
-  });
-  dart.registerExtension(dart.global.Permissions, html$.Permissions);
-  html$.PictureElement = class PictureElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.PictureElement, 'created');
-  dart.setSignature(html$.PictureElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PictureElement, []),
-      created: dart.definiteFunctionType(html$.PictureElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLPictureElement, html$.PictureElement);
-  dart.defineExtensionNames([
-    'item',
-    'namedItem',
-    'description',
-    'filename',
-    'length',
-    'name'
-  ]);
-  html$.Plugin = class Plugin extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.description]() {
-      return this.description;
-    }
-    get [dartx.filename]() {
-      return this.filename;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Plugin, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Plugin, [])}),
-    fields: () => ({
-      [dartx.description]: core.String,
-      [dartx.filename]: core.String,
-      [dartx.length]: core.int,
-      [dartx.name]: core.String
-    }),
-    methods: () => ({
-      [dartx.item]: dart.definiteFunctionType(html$.MimeType, [core.int]),
-      [dartx.namedItem]: dart.definiteFunctionType(html$.MimeType, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.Plugin, html$.Plugin);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item',
-    'namedItem',
-    'refresh'
-  ]);
-  html$.PluginArray = class PluginArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Plugin), html$.ImmutableListMixin$(html$.Plugin)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-    [dartx.refresh](...args) {
-      return this.refresh.apply(this, args);
-    }
-  };
-  html$.PluginArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfPlugin()];
-  dart.setSignature(html$.PluginArray, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PluginArray, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.Plugin, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Plugin]),
-      [dartx.item]: dart.definiteFunctionType(html$.Plugin, [core.int]),
-      [dartx.namedItem]: dart.definiteFunctionType(html$.Plugin, [core.String]),
-      [dartx.refresh]: dart.definiteFunctionType(dart.void, [core.bool])
-    })
-  });
-  dart.registerExtension(dart.global.PluginArray, html$.PluginArray);
-  dart.defineExtensionNames([
-    'createdCallback',
-    'closeable',
-    'message'
-  ]);
-  html$.PluginPlaceholderElement = class PluginPlaceholderElement extends html$.DivElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.closeable] = null;
-      this[dartx.message] = null;
-      super.created();
-    }
-    get [dartx.closeable]() {
-      return this.closeable;
-    }
-    set [dartx.closeable](value) {
-      this.closeable = value;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-    set [dartx.message](value) {
-      this.message = value;
-    }
-    [dartx.createdCallback](...args) {
-      return this.createdCallback.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.PluginPlaceholderElement, 'created');
-  dart.setSignature(html$.PluginPlaceholderElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PluginPlaceholderElement, []),
-      created: dart.definiteFunctionType(html$.PluginPlaceholderElement, [])
-    }),
-    fields: () => ({
-      [dartx.closeable]: core.bool,
-      [dartx.message]: core.String
-    }),
-    methods: () => ({[dartx.createdCallback]: dart.definiteFunctionType(dart.void, [])})
-  });
-  dart.registerExtension(dart.global.PluginPlaceholderElement, html$.PluginPlaceholderElement);
-  dart.defineExtensionNames([
-    'height',
-    'isPrimary',
-    'pointerId',
-    'pointerType',
-    'pressure',
-    'tiltX',
-    'tiltY',
-    'width'
-  ]);
-  html$.PointerEvent = class PointerEvent extends html$.MouseEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.PointerEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.PointerEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.PointerEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.PointerEvent(type);
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.isPrimary]() {
-      return this.isPrimary;
-    }
-    get [dartx.pointerId]() {
-      return this.pointerId;
-    }
-    get [dartx.pointerType]() {
-      return this.pointerType;
-    }
-    get [dartx.pressure]() {
-      return this.pressure;
-    }
-    get [dartx.tiltX]() {
-      return this.tiltX;
-    }
-    get [dartx.tiltY]() {
-      return this.tiltY;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-  };
-  dart.setSignature(html$.PointerEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PointerEvent, []),
-      new: dart.definiteFunctionType(html$.PointerEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.height]: core.double,
-      [dartx.isPrimary]: core.bool,
-      [dartx.pointerId]: core.int,
-      [dartx.pointerType]: core.String,
-      [dartx.pressure]: core.double,
-      [dartx.tiltX]: core.int,
-      [dartx.tiltY]: core.int,
-      [dartx.width]: core.double
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.PointerEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.PointerEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.PointerEvent, html$.PointerEvent);
-  dart.defineExtensionNames([
-    'state'
-  ]);
-  html$.PopStateEvent = class PopStateEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.PopStateEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.PopStateEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.PopStateEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.PopStateEvent(type);
-    }
-    get [dartx.state]() {
-      return html_common.convertNativeToDart_SerializedScriptValue(this[_get_state]);
-    }
-    get [_get_state]() {
-      return this.state;
-    }
-  };
-  dart.setSignature(html$.PopStateEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PopStateEvent, []),
-      new: dart.definiteFunctionType(html$.PopStateEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[_get_state]: dart.dynamic}),
-    getters: () => ({[dartx.state]: dart.definiteFunctionType(dart.dynamic, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.PopStateEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.PopStateEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.PopStateEvent, html$.PopStateEvent);
-  html$._PositionCallback = dart.typedef('_PositionCallback', () => dart.functionType(dart.void, [html$.Geoposition]));
-  dart.defineExtensionNames([
-    'code',
-    'message'
-  ]);
-  html$.PositionError = class PositionError extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-  };
-  dart.setSignature(html$.PositionError, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PositionError, [])}),
-    fields: () => ({
-      [dartx.code]: core.int,
-      [dartx.message]: core.String
-    }),
-    sfields: () => ({
-      PERMISSION_DENIED: core.int,
-      POSITION_UNAVAILABLE: core.int,
-      TIMEOUT: core.int
-    })
-  });
-  html$.PositionError.PERMISSION_DENIED = 1;
-  html$.PositionError.POSITION_UNAVAILABLE = 2;
-  html$.PositionError.TIMEOUT = 3;
-  dart.registerExtension(dart.global.PositionError, html$.PositionError);
-  html$._PositionErrorCallback = dart.typedef('_PositionErrorCallback', () => dart.functionType(dart.void, [html$.PositionError]));
-  dart.defineExtensionNames([
-    'getImmediateState',
-    'getState',
-    'resetSensor'
-  ]);
-  html$.PositionSensorVRDevice = class PositionSensorVRDevice extends html$.VRDevice {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getImmediateState](...args) {
-      return this.getImmediateState.apply(this, args);
-    }
-    [dartx.getState](...args) {
-      return this.getState.apply(this, args);
-    }
-    [dartx.resetSensor](...args) {
-      return this.resetSensor.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.PositionSensorVRDevice, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PositionSensorVRDevice, [])}),
-    methods: () => ({
-      [dartx.getImmediateState]: dart.definiteFunctionType(html$.VRPositionState, []),
-      [dartx.getState]: dart.definiteFunctionType(html$.VRPositionState, []),
-      [dartx.resetSensor]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.PositionSensorVRDevice, html$.PositionSensorVRDevice);
-  html$.PreElement = class PreElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.PreElement._check(html$.document[dartx.createElement]("pre"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.PreElement, 'created');
-  dart.setSignature(html$.PreElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PreElement, []),
-      new: dart.definiteFunctionType(html$.PreElement, []),
-      created: dart.definiteFunctionType(html$.PreElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLPreElement, html$.PreElement);
-  dart.defineExtensionNames([
-    'getAvailability',
-    'joinSession',
-    'startSession',
-    'session'
-  ]);
-  html$.Presentation = class Presentation extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.session]() {
-      return this.session;
-    }
-    [dartx.getAvailability](...args) {
-      return this.getAvailability.apply(this, args);
-    }
-    [dartx.joinSession](...args) {
-      return this.joinSession.apply(this, args);
-    }
-    [dartx.startSession](...args) {
-      return this.startSession.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Presentation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Presentation, [])}),
-    fields: () => ({[dartx.session]: html$.PresentationSession}),
-    methods: () => ({
-      [dartx.getAvailability]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.joinSession]: dart.definiteFunctionType(async.Future, [core.String, core.String]),
-      [dartx.startSession]: dart.definiteFunctionType(async.Future, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.Presentation, html$.Presentation);
-  dart.defineExtensionNames([
-    'onChange',
-    'value'
-  ]);
-  html$.PresentationAvailability = class PresentationAvailability extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    get [dartx.onChange]() {
-      return html$.PresentationAvailability.changeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.PresentationAvailability, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PresentationAvailability, [])}),
-    fields: () => ({[dartx.value]: core.bool}),
-    getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.PresentationAvailability, {
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.PresentationAvailability, html$.PresentationAvailability);
-  dart.defineExtensionNames([
-    'close',
-    'send',
-    'onMessage',
-    'binaryType',
-    'id',
-    'state'
-  ]);
-  html$.PresentationSession = class PresentationSession extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.binaryType]() {
-      return this.binaryType;
-    }
-    set [dartx.binaryType](value) {
-      this.binaryType = value;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.state]() {
-      return this.state;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.send](...args) {
-      return this.send.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.PresentationSession.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.PresentationSession, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PresentationSession, [])}),
-    fields: () => ({
-      [dartx.binaryType]: core.String,
-      [dartx.id]: core.String,
-      [dartx.state]: core.String
-    }),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    }),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.PresentationSession, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.PresentationSession, html$.PresentationSession);
-  dart.defineExtensionNames([
-    'sheet',
-    'target'
-  ]);
-  html$.ProcessingInstruction = class ProcessingInstruction extends html$.CharacterData {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.sheet]() {
-      return this.sheet;
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-  };
-  dart.setSignature(html$.ProcessingInstruction, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ProcessingInstruction, [])}),
-    fields: () => ({
-      [dartx.sheet]: html$.StyleSheet,
-      [dartx.target]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.ProcessingInstruction, html$.ProcessingInstruction);
-  dart.defineExtensionNames([
-    'labels',
-    'max',
-    'position',
-    'value'
-  ]);
-  html$.ProgressElement = class ProgressElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ProgressElement._check(html$.document[dartx.createElement]("progress"));
-    }
-    created() {
-      this[dartx.labels] = null;
-      this[dartx.max] = null;
-      this[dartx.position] = null;
-      this[dartx.value] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('progress');
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.max]() {
-      return this.max;
-    }
-    set [dartx.max](value) {
-      this.max = value;
-    }
-    get [dartx.position]() {
-      return this.position;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.ProgressElement, 'created');
-  dart.setSignature(html$.ProgressElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ProgressElement, []),
-      new: dart.definiteFunctionType(html$.ProgressElement, []),
-      created: dart.definiteFunctionType(html$.ProgressElement, [])
-    }),
-    fields: () => ({
-      [dartx.labels]: ListOfNode(),
-      [dartx.max]: core.num,
-      [dartx.position]: core.double,
-      [dartx.value]: core.num
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLProgressElement, html$.ProgressElement);
-  dart.defineExtensionNames([
-    'lengthComputable',
-    'loaded',
-    'total'
-  ]);
-  html$.ProgressEvent = class ProgressEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.ProgressEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.ProgressEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.ProgressEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.ProgressEvent(type);
-    }
-    get [dartx.lengthComputable]() {
-      return this.lengthComputable;
-    }
-    get [dartx.loaded]() {
-      return this.loaded;
-    }
-    get [dartx.total]() {
-      return this.total;
-    }
-  };
-  dart.setSignature(html$.ProgressEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ProgressEvent, []),
-      new: dart.definiteFunctionType(html$.ProgressEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.lengthComputable]: core.bool,
-      [dartx.loaded]: core.int,
-      [dartx.total]: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ProgressEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ProgressEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.ProgressEvent, html$.ProgressEvent);
-  dart.defineExtensionNames([
-    'promise',
-    'reason'
-  ]);
-  html$.PromiseRejectionEvent = class PromiseRejectionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.PromiseRejectionEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.PromiseRejectionEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.PromiseRejectionEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.PromiseRejectionEvent(type);
-    }
-    get [dartx.promise]() {
-      return this.promise;
-    }
-    get [dartx.reason]() {
-      return this.reason;
-    }
-  };
-  dart.setSignature(html$.PromiseRejectionEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PromiseRejectionEvent, []),
-      new: dart.definiteFunctionType(html$.PromiseRejectionEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.promise]: async.Future,
-      [dartx.reason]: core.Object
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.PromiseRejectionEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.PromiseRejectionEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.PromiseRejectionEvent, html$.PromiseRejectionEvent);
-  dart.defineExtensionNames([
-    'data'
-  ]);
-  html$.PushEvent = class PushEvent extends html$.ExtendableEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.PushEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.PushEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.PushEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.PushEvent(type);
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-  };
-  dart.setSignature(html$.PushEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PushEvent, []),
-      new: dart.definiteFunctionType(html$.PushEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.data]: html$.PushMessageData}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.PushEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.PushEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.PushEvent, html$.PushEvent);
-  const _permissionState_1 = Symbol('_permissionState_1');
-  const _permissionState_2 = Symbol('_permissionState_2');
-  const _subscribe_1 = Symbol('_subscribe_1');
-  const _subscribe_2 = Symbol('_subscribe_2');
-  dart.defineExtensionNames([
-    'getSubscription',
-    'permissionState',
-    'subscribe'
-  ]);
-  html$.PushManager = class PushManager extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getSubscription](...args) {
-      return this.getSubscription.apply(this, args);
-    }
-    [dartx.permissionState](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_permissionState_1](options_1);
-      }
-      return this[_permissionState_2]();
-    }
-    [_permissionState_1](...args) {
-      return this.permissionState.apply(this, args);
-    }
-    [_permissionState_2](...args) {
-      return this.permissionState.apply(this, args);
-    }
-    [dartx.subscribe](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_subscribe_1](options_1);
-      }
-      return this[_subscribe_2]();
-    }
-    [_subscribe_1](...args) {
-      return this.subscribe.apply(this, args);
-    }
-    [_subscribe_2](...args) {
-      return this.subscribe.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.PushManager, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PushManager, [])}),
-    methods: () => ({
-      [dartx.getSubscription]: dart.definiteFunctionType(async.Future, []),
-      [dartx.permissionState]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_permissionState_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_permissionState_2]: dart.definiteFunctionType(async.Future, []),
-      [dartx.subscribe]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_subscribe_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_subscribe_2]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.PushManager, html$.PushManager);
-  dart.defineExtensionNames([
-    'arrayBuffer',
-    'blob',
-    'json',
-    'text'
-  ]);
-  html$.PushMessageData = class PushMessageData extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(message) {
-      return html$.PushMessageData._create_1(message);
-    }
-    static _create_1(message) {
-      return new self.PushMessageData(message);
-    }
-    [dartx.arrayBuffer](...args) {
-      return this.arrayBuffer.apply(this, args);
-    }
-    [dartx.blob](...args) {
-      return this.blob.apply(this, args);
-    }
-    [dartx.json](...args) {
-      return this.json.apply(this, args);
-    }
-    [dartx.text](...args) {
-      return this.text.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.PushMessageData, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.PushMessageData, []),
-      new: dart.definiteFunctionType(html$.PushMessageData, [core.String])
-    }),
-    methods: () => ({
-      [dartx.arrayBuffer]: dart.definiteFunctionType(typed_data.ByteBuffer, []),
-      [dartx.blob]: dart.definiteFunctionType(html$.Blob, []),
-      [dartx.json]: dart.definiteFunctionType(core.Object, []),
-      [dartx.text]: dart.definiteFunctionType(core.String, [])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.PushMessageData, [dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.PushMessageData, html$.PushMessageData);
-  dart.defineExtensionNames([
-    'unsubscribe',
-    'endpoint'
-  ]);
-  html$.PushSubscription = class PushSubscription extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.endpoint]() {
-      return this.endpoint;
-    }
-    [dartx.unsubscribe](...args) {
-      return this.unsubscribe.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.PushSubscription, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.PushSubscription, [])}),
-    fields: () => ({[dartx.endpoint]: core.String}),
-    methods: () => ({[dartx.unsubscribe]: dart.definiteFunctionType(async.Future, [])})
-  });
-  dart.registerExtension(dart.global.PushSubscription, html$.PushSubscription);
-  dart.defineExtensionNames([
-    'cite'
-  ]);
-  html$.QuoteElement = class QuoteElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.QuoteElement._check(html$.document[dartx.createElement]("q"));
-    }
-    created() {
-      this[dartx.cite] = null;
-      super.created();
-    }
-    get [dartx.cite]() {
-      return this.cite;
-    }
-    set [dartx.cite](value) {
-      this.cite = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.QuoteElement, 'created');
-  dart.setSignature(html$.QuoteElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.QuoteElement, []),
-      new: dart.definiteFunctionType(html$.QuoteElement, []),
-      created: dart.definiteFunctionType(html$.QuoteElement, [])
-    }),
-    fields: () => ({[dartx.cite]: core.String})
-  });
-  dart.registerExtension(dart.global.HTMLQuoteElement, html$.QuoteElement);
-  html$._RtcErrorCallback = dart.typedef('_RtcErrorCallback', () => dart.functionType(dart.void, [core.String]));
-  html$._RtcSessionDescriptionCallback = dart.typedef('_RtcSessionDescriptionCallback', () => dart.functionType(dart.void, [html$.RtcSessionDescription]));
-  html$.RtcStatsCallback = dart.typedef('RtcStatsCallback', () => dart.functionType(dart.void, [html$.RtcStatsResponse]));
-  dart.defineExtensionNames([
-    'cloneContents',
-    'cloneRange',
-    'collapse',
-    'compareBoundaryPoints',
-    'comparePoint',
-    'createContextualFragment',
-    'deleteContents',
-    'detach',
-    'expand',
-    'extractContents',
-    'getBoundingClientRect',
-    'getClientRects',
-    'insertNode',
-    'isPointInRange',
-    'selectNode',
-    'selectNodeContents',
-    'setEnd',
-    'setEndAfter',
-    'setEndBefore',
-    'setStart',
-    'setStartAfter',
-    'setStartBefore',
-    'surroundContents',
-    'collapsed',
-    'commonAncestorContainer',
-    'endContainer',
-    'endOffset',
-    'startContainer',
-    'startOffset'
-  ]);
-  html$.Range = class Range extends _interceptors.Interceptor {
-    static new() {
-      return html$.document[dartx.createRange]();
-    }
-    static fromPoint(point) {
-      return html$.document[_caretRangeFromPoint](dart.asInt(point.x), dart.asInt(point.y));
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.collapsed]() {
-      return this.collapsed;
-    }
-    get [dartx.commonAncestorContainer]() {
-      return this.commonAncestorContainer;
-    }
-    get [dartx.endContainer]() {
-      return this.endContainer;
-    }
-    get [dartx.endOffset]() {
-      return this.endOffset;
-    }
-    get [dartx.startContainer]() {
-      return this.startContainer;
-    }
-    get [dartx.startOffset]() {
-      return this.startOffset;
-    }
-    [dartx.cloneContents](...args) {
-      return this.cloneContents.apply(this, args);
-    }
-    [dartx.cloneRange](...args) {
-      return this.cloneRange.apply(this, args);
-    }
-    [dartx.collapse](...args) {
-      return this.collapse.apply(this, args);
-    }
-    [dartx.compareBoundaryPoints](...args) {
-      return this.compareBoundaryPoints.apply(this, args);
-    }
-    [dartx.comparePoint](...args) {
-      return this.comparePoint.apply(this, args);
-    }
-    [dartx.createContextualFragment](...args) {
-      return this.createContextualFragment.apply(this, args);
-    }
-    [dartx.deleteContents](...args) {
-      return this.deleteContents.apply(this, args);
-    }
-    [dartx.detach](...args) {
-      return this.detach.apply(this, args);
-    }
-    [dartx.expand](...args) {
-      return this.expand.apply(this, args);
-    }
-    [dartx.extractContents](...args) {
-      return this.extractContents.apply(this, args);
-    }
-    [dartx.getBoundingClientRect](...args) {
-      return this.getBoundingClientRect.apply(this, args);
-    }
-    [dartx.getClientRects](...args) {
-      return this.getClientRects.apply(this, args);
-    }
-    [dartx.insertNode](...args) {
-      return this.insertNode.apply(this, args);
-    }
-    [dartx.isPointInRange](...args) {
-      return this.isPointInRange.apply(this, args);
-    }
-    [dartx.selectNode](...args) {
-      return this.selectNode.apply(this, args);
-    }
-    [dartx.selectNodeContents](...args) {
-      return this.selectNodeContents.apply(this, args);
-    }
-    [dartx.setEnd](...args) {
-      return this.setEnd.apply(this, args);
-    }
-    [dartx.setEndAfter](...args) {
-      return this.setEndAfter.apply(this, args);
-    }
-    [dartx.setEndBefore](...args) {
-      return this.setEndBefore.apply(this, args);
-    }
-    [dartx.setStart](...args) {
-      return this.setStart.apply(this, args);
-    }
-    [dartx.setStartAfter](...args) {
-      return this.setStartAfter.apply(this, args);
-    }
-    [dartx.setStartBefore](...args) {
-      return this.setStartBefore.apply(this, args);
-    }
-    [dartx.surroundContents](...args) {
-      return this.surroundContents.apply(this, args);
-    }
-    static get supportsCreateContextualFragment() {
-      return "createContextualFragment" in window.Range.prototype;
-    }
-  };
-  dart.setSignature(html$.Range, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.Range, []),
-      fromPoint: dart.definiteFunctionType(html$.Range, [PointOfnum()]),
-      _: dart.definiteFunctionType(html$.Range, [])
-    }),
-    fields: () => ({
-      [dartx.collapsed]: core.bool,
-      [dartx.commonAncestorContainer]: html$.Node,
-      [dartx.endContainer]: html$.Node,
-      [dartx.endOffset]: core.int,
-      [dartx.startContainer]: html$.Node,
-      [dartx.startOffset]: core.int
-    }),
-    methods: () => ({
-      [dartx.cloneContents]: dart.definiteFunctionType(html$.DocumentFragment, []),
-      [dartx.cloneRange]: dart.definiteFunctionType(html$.Range, []),
-      [dartx.collapse]: dart.definiteFunctionType(dart.void, [], [core.bool]),
-      [dartx.compareBoundaryPoints]: dart.definiteFunctionType(core.int, [core.int, html$.Range]),
-      [dartx.comparePoint]: dart.definiteFunctionType(core.int, [html$.Node, core.int]),
-      [dartx.createContextualFragment]: dart.definiteFunctionType(html$.DocumentFragment, [core.String]),
-      [dartx.deleteContents]: dart.definiteFunctionType(dart.void, []),
-      [dartx.detach]: dart.definiteFunctionType(dart.void, []),
-      [dartx.expand]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.extractContents]: dart.definiteFunctionType(html$.DocumentFragment, []),
-      [dartx.getBoundingClientRect]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
-      [dartx.getClientRects]: dart.definiteFunctionType(core.List$(math.Rectangle$(core.num)), []),
-      [dartx.insertNode]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.isPointInRange]: dart.definiteFunctionType(core.bool, [html$.Node, core.int]),
-      [dartx.selectNode]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.selectNodeContents]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.setEnd]: dart.definiteFunctionType(dart.void, [html$.Node, core.int]),
-      [dartx.setEndAfter]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.setEndBefore]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.setStart]: dart.definiteFunctionType(dart.void, [html$.Node, core.int]),
-      [dartx.setStartAfter]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.setStartBefore]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.surroundContents]: dart.definiteFunctionType(dart.void, [html$.Node])
-    }),
-    sfields: () => ({
-      END_TO_END: core.int,
-      END_TO_START: core.int,
-      START_TO_END: core.int,
-      START_TO_START: core.int
-    }),
-    sgetters: () => ({supportsCreateContextualFragment: dart.definiteFunctionType(core.bool, [])})
-  });
-  html$.Range.END_TO_END = 2;
-  html$.Range.END_TO_START = 3;
-  html$.Range.START_TO_END = 1;
-  html$.Range.START_TO_START = 0;
-  dart.registerExtension(dart.global.Range, html$.Range);
-  dart.defineExtensionNames([
-    'cancel',
-    'getReader'
-  ]);
-  html$.ReadableByteStream = class ReadableByteStream extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.cancel](...args) {
-      return this.cancel.apply(this, args);
-    }
-    [dartx.getReader](...args) {
-      return this.getReader.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ReadableByteStream, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ReadableByteStream, [])}),
-    methods: () => ({
-      [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
-      [dartx.getReader]: dart.definiteFunctionType(html$.ReadableByteStreamReader, [])
-    })
-  });
-  dart.registerExtension(dart.global.ReadableByteStream, html$.ReadableByteStream);
-  dart.defineExtensionNames([
-    'cancel',
-    'read',
-    'releaseLock',
-    'closed'
-  ]);
-  html$.ReadableByteStreamReader = class ReadableByteStreamReader extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.closed]() {
-      return this.closed;
-    }
-    [dartx.cancel](...args) {
-      return this.cancel.apply(this, args);
-    }
-    [dartx.read](...args) {
-      return this.read.apply(this, args);
-    }
-    [dartx.releaseLock](...args) {
-      return this.releaseLock.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ReadableByteStreamReader, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ReadableByteStreamReader, [])}),
-    fields: () => ({[dartx.closed]: async.Future}),
-    methods: () => ({
-      [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
-      [dartx.read]: dart.definiteFunctionType(async.Future, []),
-      [dartx.releaseLock]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.ReadableByteStreamReader, html$.ReadableByteStreamReader);
-  dart.defineExtensionNames([
-    'cancel',
-    'getReader'
-  ]);
-  html$.ReadableStream = class ReadableStream extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.cancel](...args) {
-      return this.cancel.apply(this, args);
-    }
-    [dartx.getReader](...args) {
-      return this.getReader.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ReadableStream, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ReadableStream, [])}),
-    methods: () => ({
-      [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
-      [dartx.getReader]: dart.definiteFunctionType(html$.ReadableStreamReader, [])
-    })
-  });
-  dart.registerExtension(dart.global.ReadableStream, html$.ReadableStream);
-  dart.defineExtensionNames([
-    'cancel',
-    'read',
-    'releaseLock',
-    'closed'
-  ]);
-  html$.ReadableStreamReader = class ReadableStreamReader extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.closed]() {
-      return this.closed;
-    }
-    [dartx.cancel](...args) {
-      return this.cancel.apply(this, args);
-    }
-    [dartx.read](...args) {
-      return this.read.apply(this, args);
-    }
-    [dartx.releaseLock](...args) {
-      return this.releaseLock.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ReadableStreamReader, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ReadableStreamReader, [])}),
-    fields: () => ({[dartx.closed]: async.Future}),
-    methods: () => ({
-      [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
-      [dartx.read]: dart.definiteFunctionType(async.Future, []),
-      [dartx.releaseLock]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.ReadableStreamReader, html$.ReadableStreamReader);
-  dart.defineExtensionNames([
-    'relatedTarget'
-  ]);
-  html$.RelatedEvent = class RelatedEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.RelatedEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.RelatedEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.RelatedEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.RelatedEvent(type);
-    }
-    get [dartx.relatedTarget]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
-    }
-    get [_get_relatedTarget]() {
-      return this.relatedTarget;
-    }
-  };
-  dart.setSignature(html$.RelatedEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.RelatedEvent, []),
-      new: dart.definiteFunctionType(html$.RelatedEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[_get_relatedTarget]: dart.dynamic}),
-    getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.RelatedEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.RelatedEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.RelatedEvent, html$.RelatedEvent);
-  html$.RequestAnimationFrameCallback = dart.typedef('RequestAnimationFrameCallback', () => dart.functionType(dart.void, [core.num]));
-  dart.defineExtensionNames([
-    'url'
-  ]);
-  html$.ResourceProgressEvent = class ResourceProgressEvent extends html$.ProgressEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-  };
-  dart.setSignature(html$.ResourceProgressEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ResourceProgressEvent, [])}),
-    fields: () => ({[dartx.url]: core.String})
-  });
-  dart.registerExtension(dart.global.ResourceProgressEvent, html$.ResourceProgressEvent);
-  dart.defineExtensionNames([
-    'close',
-    'send',
-    'sendBlob',
-    'sendByteBuffer',
-    'sendString',
-    'sendTypedData',
-    'onClose',
-    'onError',
-    'onMessage',
-    'onOpen',
-    'binaryType',
-    'bufferedAmount',
-    'id',
-    'label',
-    'maxRetransmitTime',
-    'maxRetransmits',
-    'negotiated',
-    'ordered',
-    'protocol',
-    'readyState',
-    'reliable'
-  ]);
-  html$.RtcDataChannel = class RtcDataChannel extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.binaryType]() {
-      return this.binaryType;
-    }
-    set [dartx.binaryType](value) {
-      this.binaryType = value;
-    }
-    get [dartx.bufferedAmount]() {
-      return this.bufferedAmount;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    get [dartx.maxRetransmitTime]() {
-      return this.maxRetransmitTime;
-    }
-    get [dartx.maxRetransmits]() {
-      return this.maxRetransmits;
-    }
-    get [dartx.negotiated]() {
-      return this.negotiated;
-    }
-    get [dartx.ordered]() {
-      return this.ordered;
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.reliable]() {
-      return this.reliable;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.send](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendBlob](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendByteBuffer](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendString](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendTypedData](...args) {
-      return this.send.apply(this, args);
-    }
-    get [dartx.onClose]() {
-      return html$.RtcDataChannel.closeEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.RtcDataChannel.errorEvent.forTarget(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.RtcDataChannel.messageEvent.forTarget(this);
-    }
-    get [dartx.onOpen]() {
-      return html$.RtcDataChannel.openEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.RtcDataChannel, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.RtcDataChannel, [])}),
-    fields: () => ({
-      [dartx.binaryType]: core.String,
-      [dartx.bufferedAmount]: core.int,
-      [dartx.id]: core.int,
-      [dartx.label]: core.String,
-      [dartx.maxRetransmitTime]: core.int,
-      [dartx.maxRetransmits]: core.int,
-      [dartx.negotiated]: core.bool,
-      [dartx.ordered]: core.bool,
-      [dartx.protocol]: core.String,
-      [dartx.readyState]: core.String,
-      [dartx.reliable]: core.bool
-    }),
-    getters: () => ({
-      [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
-      [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html$.Blob]),
-      [dartx.sendByteBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
-      [dartx.sendString]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.sendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData])
-    }),
-    sfields: () => ({
-      closeEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent(),
-      openEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(html$.RtcDataChannel, {
-    get closeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('close'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    },
-    get openEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('open'));
-    }
-  });
-  dart.registerExtension(dart.global.RTCDataChannel, html$.RtcDataChannel);
-  dart.registerExtension(dart.global.DataChannel, html$.RtcDataChannel);
-  dart.defineExtensionNames([
-    'channel'
-  ]);
-  html$.RtcDataChannelEvent = class RtcDataChannelEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.channel]() {
-      return this.channel;
-    }
-  };
-  dart.setSignature(html$.RtcDataChannelEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.RtcDataChannelEvent, [])}),
-    fields: () => ({[dartx.channel]: html$.RtcDataChannel})
-  });
-  dart.registerExtension(dart.global.RTCDataChannelEvent, html$.RtcDataChannelEvent);
-  dart.defineExtensionNames([
-    'insertDtmf',
-    'onToneChange',
-    'canInsertDtmf',
-    'duration',
-    'interToneGap',
-    'toneBuffer',
-    'track'
-  ]);
-  html$.RtcDtmfSender = class RtcDtmfSender extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.canInsertDtmf]() {
-      return this.canInsertDTMF;
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    get [dartx.interToneGap]() {
-      return this.interToneGap;
-    }
-    get [dartx.toneBuffer]() {
-      return this.toneBuffer;
-    }
-    get [dartx.track]() {
-      return this.track;
-    }
-    [dartx.insertDtmf](...args) {
-      return this.insertDTMF.apply(this, args);
-    }
-    get [dartx.onToneChange]() {
-      return html$.RtcDtmfSender.toneChangeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.RtcDtmfSender, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.RtcDtmfSender, [])}),
-    fields: () => ({
-      [dartx.canInsertDtmf]: core.bool,
-      [dartx.duration]: core.int,
-      [dartx.interToneGap]: core.int,
-      [dartx.toneBuffer]: core.String,
-      [dartx.track]: html$.MediaStreamTrack
-    }),
-    getters: () => ({[dartx.onToneChange]: dart.definiteFunctionType(async.Stream$(html$.RtcDtmfToneChangeEvent), [])}),
-    methods: () => ({[dartx.insertDtmf]: dart.definiteFunctionType(dart.void, [core.String], [core.int, core.int])}),
-    sfields: () => ({toneChangeEvent: EventStreamProviderOfRtcDtmfToneChangeEvent()})
-  });
-  dart.defineLazy(html$.RtcDtmfSender, {
-    get toneChangeEvent() {
-      return dart.const(new (EventStreamProviderOfRtcDtmfToneChangeEvent())('tonechange'));
-    }
-  });
-  dart.registerExtension(dart.global.RTCDTMFSender, html$.RtcDtmfSender);
-  dart.defineExtensionNames([
-    'tone'
-  ]);
-  html$.RtcDtmfToneChangeEvent = class RtcDtmfToneChangeEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html$.RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
-    }
-    static _create_1(type, eventInitDict) {
-      return new RTCDTMFToneChangeEvent(type, eventInitDict);
-    }
-    get [dartx.tone]() {
-      return this.tone;
-    }
-  };
-  dart.setSignature(html$.RtcDtmfToneChangeEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, []),
-      new: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, [core.String, core.Map])
-    }),
-    fields: () => ({[dartx.tone]: core.String}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, [dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.RTCDTMFToneChangeEvent, html$.RtcDtmfToneChangeEvent);
-  dart.defineExtensionNames([
-    'candidate',
-    'sdpMLineIndex',
-    'sdpMid'
-  ]);
-  html$.RtcIceCandidate = class RtcIceCandidate extends _interceptors.Interceptor {
-    static new(dictionary) {
-      let constructorName = window[dart.test(html_common.Device.isFirefox) ? dart.str`${html_common.Device.propertyPrefix}RTCIceCandidate` : 'RTCIceCandidate'];
-      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.candidate]() {
-      return this.candidate;
-    }
-    set [dartx.candidate](value) {
-      this.candidate = value;
-    }
-    get [dartx.sdpMLineIndex]() {
-      return this.sdpMLineIndex;
-    }
-    set [dartx.sdpMLineIndex](value) {
-      this.sdpMLineIndex = value;
-    }
-    get [dartx.sdpMid]() {
-      return this.sdpMid;
-    }
-    set [dartx.sdpMid](value) {
-      this.sdpMid = value;
-    }
-  };
-  dart.setSignature(html$.RtcIceCandidate, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.RtcIceCandidate, [core.Map]),
-      _: dart.definiteFunctionType(html$.RtcIceCandidate, [])
-    }),
-    fields: () => ({
-      [dartx.candidate]: core.String,
-      [dartx.sdpMLineIndex]: core.int,
-      [dartx.sdpMid]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.RTCIceCandidate, html$.RtcIceCandidate);
-  dart.registerExtension(dart.global.mozRTCIceCandidate, html$.RtcIceCandidate);
-  dart.defineExtensionNames([
-    'candidate'
-  ]);
-  html$.RtcIceCandidateEvent = class RtcIceCandidateEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.candidate]() {
-      return this.candidate;
-    }
-  };
-  dart.setSignature(html$.RtcIceCandidateEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.RtcIceCandidateEvent, [])}),
-    fields: () => ({[dartx.candidate]: html$.RtcIceCandidate})
-  });
-  dart.registerExtension(dart.global.RTCIceCandidateEvent, html$.RtcIceCandidateEvent);
-  dart.registerExtension(dart.global.RTCPeerConnectionIceEvent, html$.RtcIceCandidateEvent);
-  const _createOffer = Symbol('_createOffer');
-  const _createAnswer = Symbol('_createAnswer');
-  const _getStats = Symbol('_getStats');
-  const _addStream_1 = Symbol('_addStream_1');
-  const _addStream_2 = Symbol('_addStream_2');
-  const _createAnswer_1 = Symbol('_createAnswer_1');
-  const _createAnswer_2 = Symbol('_createAnswer_2');
-  const _createDataChannel_1 = Symbol('_createDataChannel_1');
-  const _createDataChannel_2 = Symbol('_createDataChannel_2');
-  const _createOffer_1 = Symbol('_createOffer_1');
-  const _createOffer_2 = Symbol('_createOffer_2');
-  const _setLocalDescription = Symbol('_setLocalDescription');
-  const _setRemoteDescription = Symbol('_setRemoteDescription');
-  const _updateIce_1 = Symbol('_updateIce_1');
-  const _updateIce_2 = Symbol('_updateIce_2');
-  const _updateIce_3 = Symbol('_updateIce_3');
-  dart.defineExtensionNames([
-    'createOffer',
-    'createAnswer',
-    'getStats',
-    'addIceCandidate',
-    'addStream',
-    'close',
-    'createDtmfSender',
-    'createDataChannel',
-    'getLocalStreams',
-    'getRemoteStreams',
-    'getStreamById',
-    'removeStream',
-    'setLocalDescription',
-    'setRemoteDescription',
-    'updateIce',
-    'onAddStream',
-    'onDataChannel',
-    'onIceCandidate',
-    'onIceConnectionStateChange',
-    'onNegotiationNeeded',
-    'onRemoveStream',
-    'onSignalingStateChange',
-    'iceConnectionState',
-    'iceGatheringState',
-    'localDescription',
-    'remoteDescription',
-    'signalingState'
-  ]);
-  html$.RtcPeerConnection = class RtcPeerConnection extends html$.EventTarget {
-    static new(rtcIceServers, mediaConstraints) {
-      if (mediaConstraints === void 0) mediaConstraints = null;
-      let constructorName = window[dart.str`${html_common.Device.propertyPrefix}RTCPeerConnection`];
-      if (mediaConstraints != null) {
-        return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers), html_common.convertDartToNative_SerializedScriptValue(mediaConstraints));
-      } else {
-        return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers));
+      case 4:
+      {
+        let arg0 = arguments$[0];
+        let arg1 = arguments$[1];
+        let arg2 = arguments$[2];
+        let arg3 = arguments$[3];
+        return new constr(arg0, arg1, arg2, arg3);
       }
     }
-    static get supported() {
-      try {
-        html$.RtcPeerConnection.new(dart.map({iceServers: JSArrayOfMapOfString$String().of([dart.map({url: "stun:localhost"}, core.String, core.String)])}, core.String, ListOfMapOfString$String()));
-        return true;
-      } catch (_) {
-        return false;
-      }
-
-      return false;
+  }
+  let args = [null];
+  args[dartx.addAll](arguments$);
+  let factoryFunction = constr.bind.apply(constr, args);
+  String(factoryFunction);
+  return new factoryFunction();
+};
+dart.fn(js_util.callConstructor, FunctionAndListTodynamic());
+math.E = 2.718281828459045;
+math.LN10 = 2.302585092994046;
+math.LN2 = 0.6931471805599453;
+math.LOG2E = 1.4426950408889634;
+math.LOG10E = 0.4342944819032518;
+math.PI = 3.141592653589793;
+math.SQRT1_2 = 0.7071067811865476;
+math.SQRT2 = 1.4142135623730951;
+math.min = function(T) {
+  return (a, b) => {
+    return Math.min(_js_helper.checkNum(a), _js_helper.checkNum(b));
+  };
+};
+dart.fn(math.min, TAndTToT());
+math.max = function(T) {
+  return (a, b) => {
+    return Math.max(_js_helper.checkNum(a), _js_helper.checkNum(b));
+  };
+};
+dart.fn(math.max, TAndTToT$());
+math.atan2 = function(a, b) {
+  return Math.atan2(_js_helper.checkNum(a), _js_helper.checkNum(b));
+};
+dart.fn(math.atan2, numAndnumTodouble());
+math.pow = function(x, exponent) {
+  _js_helper.checkNum(x);
+  _js_helper.checkNum(exponent);
+  return Math.pow(x, exponent);
+};
+dart.fn(math.pow, numAndnumTonum());
+math.sin = function(x) {
+  return Math.sin(_js_helper.checkNum(x));
+};
+dart.fn(math.sin, numTodouble());
+math.cos = function(x) {
+  return Math.cos(_js_helper.checkNum(x));
+};
+dart.fn(math.cos, numTodouble());
+math.tan = function(x) {
+  return Math.tan(_js_helper.checkNum(x));
+};
+dart.fn(math.tan, numTodouble());
+math.acos = function(x) {
+  return Math.acos(_js_helper.checkNum(x));
+};
+dart.fn(math.acos, numTodouble());
+math.asin = function(x) {
+  return Math.asin(_js_helper.checkNum(x));
+};
+dart.fn(math.asin, numTodouble());
+math.atan = function(x) {
+  return Math.atan(_js_helper.checkNum(x));
+};
+dart.fn(math.atan, numTodouble());
+math.sqrt = function(x) {
+  return Math.sqrt(_js_helper.checkNum(x));
+};
+dart.fn(math.sqrt, numTodouble());
+math.exp = function(x) {
+  return Math.exp(_js_helper.checkNum(x));
+};
+dart.fn(math.exp, numTodouble());
+math.log = function(x) {
+  return Math.log(_js_helper.checkNum(x));
+};
+dart.fn(math.log, numTodouble());
+math._POW2_32 = 4294967296;
+math._JSRandom = class _JSRandom extends core.Object {
+  new() {
+  }
+  nextInt(max) {
+    if (dart.notNull(max) <= 0 || dart.notNull(max) > math._POW2_32) {
+      dart.throw(new core.RangeError(dart.str`max must be in range 0 < max ≤ 2^32, was ${max}`));
     }
-    [dartx.createOffer](mediaConstraints) {
-      if (mediaConstraints === void 0) mediaConstraints = null;
-      let completer = CompleterOfRtcSessionDescription().new();
-      this[_createOffer](dart.fn(value => {
-        completer.complete(value);
-      }, RtcSessionDescriptionToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, StringToNull()), mediaConstraints);
-      return completer.future;
+    return Math.random() * max >>> 0;
+  }
+  nextDouble() {
+    return Math.random();
+  }
+  nextBool() {
+    return Math.random() < 0.5;
+  }
+};
+math._JSRandom[dart.implements] = () => [math.Random];
+dart.setSignature(math._JSRandom, {
+  constructors: () => ({new: dart.definiteFunctionType(math._JSRandom, [])}),
+  methods: () => ({
+    nextInt: dart.definiteFunctionType(core.int, [core.int]),
+    nextDouble: dart.definiteFunctionType(core.double, []),
+    nextBool: dart.definiteFunctionType(core.bool, [])
+  })
+});
+const _lo = Symbol('_lo');
+const _hi = Symbol('_hi');
+const _nextState = Symbol('_nextState');
+math._Random = class _Random extends core.Object {
+  new(seed) {
+    this[_lo] = 0;
+    this[_hi] = 0;
+    let empty_seed = 0;
+    if (dart.notNull(seed) < 0) {
+      empty_seed = -1;
     }
-    [dartx.createAnswer](mediaConstraints) {
-      if (mediaConstraints === void 0) mediaConstraints = null;
-      let completer = CompleterOfRtcSessionDescription().new();
-      this[_createAnswer](dart.fn(value => {
-        completer.complete(value);
-      }, RtcSessionDescriptionToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, StringToNull()), mediaConstraints);
-      return completer.future;
+    do {
+      let low = (dart.notNull(seed) & math._Random._MASK32) >>> 0;
+      seed = ((dart.notNull(seed) - low) / math._POW2_32)[dartx.truncate]();
+      let high = (dart.notNull(seed) & math._Random._MASK32) >>> 0;
+      seed = ((dart.notNull(seed) - high) / math._POW2_32)[dartx.truncate]();
+      let tmplow = low << 21 >>> 0;
+      let tmphigh = (high << 21 | low[dartx['>>']](11)) >>> 0;
+      tmplow = ((~low & math._Random._MASK32) >>> 0) + tmplow;
+      low = (tmplow & math._Random._MASK32) >>> 0;
+      high = ((~high >>> 0) + tmphigh + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
+      tmphigh = high[dartx['>>']](24);
+      tmplow = (low[dartx['>>']](24) | high << 8) >>> 0;
+      low = (low ^ tmplow) >>> 0;
+      high = (high ^ tmphigh) >>> 0;
+      tmplow = low * 265;
+      low = (tmplow & math._Random._MASK32) >>> 0;
+      high = (high * 265 + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
+      tmphigh = high[dartx['>>']](14);
+      tmplow = (low[dartx['>>']](14) | high << 18) >>> 0;
+      low = (low ^ tmplow) >>> 0;
+      high = (high ^ tmphigh) >>> 0;
+      tmplow = low * 21;
+      low = (tmplow & math._Random._MASK32) >>> 0;
+      high = (high * 21 + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
+      tmphigh = high[dartx['>>']](28);
+      tmplow = (low[dartx['>>']](28) | high << 4) >>> 0;
+      low = (low ^ tmplow) >>> 0;
+      high = (high ^ tmphigh) >>> 0;
+      tmplow = low << 31 >>> 0;
+      tmphigh = (high << 31 | low[dartx['>>']](1)) >>> 0;
+      tmplow = tmplow + low;
+      low = (tmplow & math._Random._MASK32) >>> 0;
+      high = (high + tmphigh + ((tmplow - low) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
+      tmplow = dart.notNull(this[_lo]) * 1037;
+      this[_lo] = (tmplow & math._Random._MASK32) >>> 0;
+      this[_hi] = (dart.notNull(this[_hi]) * 1037 + ((tmplow - dart.notNull(this[_lo])) / 4294967296)[dartx.truncate]() & math._Random._MASK32) >>> 0;
+      this[_lo] = (dart.notNull(this[_lo]) ^ low) >>> 0;
+      this[_hi] = (dart.notNull(this[_hi]) ^ high) >>> 0;
+    } while (seed != empty_seed);
+    if (this[_hi] == 0 && this[_lo] == 0) {
+      this[_lo] = 23063;
     }
-    [dartx.getStats](selector) {
-      let completer = CompleterOfRtcStatsResponse().new();
-      this[_getStats](dart.fn(value => {
-        completer.complete(value);
-      }, RtcStatsResponseToNull()), selector);
-      return completer.future;
+    this[_nextState]();
+    this[_nextState]();
+    this[_nextState]();
+    this[_nextState]();
+  }
+  [_nextState]() {
+    let tmpHi = 4294901760 * dart.notNull(this[_lo]);
+    let tmpHiLo = (tmpHi & math._Random._MASK32) >>> 0;
+    let tmpHiHi = tmpHi - tmpHiLo;
+    let tmpLo = 55905 * dart.notNull(this[_lo]);
+    let tmpLoLo = (tmpLo & math._Random._MASK32) >>> 0;
+    let tmpLoHi = tmpLo - tmpLoLo;
+    let newLo = tmpLoLo + tmpHiLo + dart.notNull(this[_hi]);
+    this[_lo] = (newLo & math._Random._MASK32) >>> 0;
+    let newLoHi = newLo - dart.notNull(this[_lo]);
+    this[_hi] = (((tmpLoHi + tmpHiHi + newLoHi) / math._POW2_32)[dartx.truncate]() & math._Random._MASK32) >>> 0;
+    dart.assert(dart.notNull(this[_lo]) < math._POW2_32);
+    dart.assert(dart.notNull(this[_hi]) < math._POW2_32);
+  }
+  nextInt(max) {
+    if (dart.notNull(max) <= 0 || dart.notNull(max) > math._POW2_32) {
+      dart.throw(new core.RangeError(dart.str`max must be in range 0 < max ≤ 2^32, was ${max}`));
     }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
+    if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) {
+      this[_nextState]();
+      return (dart.notNull(this[_lo]) & dart.notNull(max) - 1) >>> 0;
     }
-    get [dartx.iceConnectionState]() {
-      return this.iceConnectionState;
-    }
-    get [dartx.iceGatheringState]() {
-      return this.iceGatheringState;
-    }
-    get [dartx.localDescription]() {
-      return this.localDescription;
-    }
-    get [dartx.remoteDescription]() {
-      return this.remoteDescription;
-    }
-    get [dartx.signalingState]() {
-      return this.signalingState;
-    }
-    [dartx.addIceCandidate](...args) {
-      return this.addIceCandidate.apply(this, args);
-    }
-    [dartx.addStream](stream, mediaConstraints) {
-      if (mediaConstraints === void 0) mediaConstraints = null;
-      if (mediaConstraints != null) {
-        let mediaConstraints_1 = html_common.convertDartToNative_Dictionary(mediaConstraints);
-        this[_addStream_1](stream, mediaConstraints_1);
+    let rnd32 = null;
+    let result = null;
+    do {
+      this[_nextState]();
+      rnd32 = this[_lo];
+      result = dart.asInt(rnd32[dartx.remainder](max));
+    } while (dart.notNull(rnd32) - dart.notNull(result) + dart.notNull(max) >= math._POW2_32);
+    return result;
+  }
+  nextDouble() {
+    this[_nextState]();
+    let bits26 = (dart.notNull(this[_lo]) & (1 << 26) - 1) >>> 0;
+    this[_nextState]();
+    let bits27 = (dart.notNull(this[_lo]) & (1 << 27) - 1) >>> 0;
+    return (bits26 * math._Random._POW2_27_D + bits27) / math._Random._POW2_53_D;
+  }
+  nextBool() {
+    this[_nextState]();
+    return (dart.notNull(this[_lo]) & 1) == 0;
+  }
+};
+math._Random[dart.implements] = () => [math.Random];
+dart.setSignature(math._Random, {
+  constructors: () => ({new: dart.definiteFunctionType(math._Random, [core.int])}),
+  fields: () => ({
+    [_lo]: core.int,
+    [_hi]: core.int
+  }),
+  methods: () => ({
+    [_nextState]: dart.definiteFunctionType(dart.void, []),
+    nextInt: dart.definiteFunctionType(core.int, [core.int]),
+    nextDouble: dart.definiteFunctionType(core.double, []),
+    nextBool: dart.definiteFunctionType(core.bool, [])
+  }),
+  sfields: () => ({
+    _POW2_53_D: core.double,
+    _POW2_27_D: core.double,
+    _MASK32: core.int
+  })
+});
+math._Random._POW2_53_D = 1.0 * 9007199254740992;
+math._Random._POW2_27_D = 1.0 * (1 << 27);
+math._Random._MASK32 = 4294967295;
+const _buffer$0 = Symbol('_buffer');
+const _getRandomBytes = Symbol('_getRandomBytes');
+math._JSSecureRandom = class _JSSecureRandom extends core.Object {
+  new() {
+    this[_buffer$0] = typed_data.ByteData.new(8);
+    let crypto = self.crypto;
+    if (crypto != null) {
+      let getRandomValues = crypto.getRandomValues;
+      if (getRandomValues != null) {
         return;
       }
-      this[_addStream_2](stream);
-      return;
     }
-    [_addStream_1](...args) {
-      return this.addStream.apply(this, args);
+    dart.throw(new core.UnsupportedError("No source of cryptographically secure random numbers available."));
+  }
+  [_getRandomBytes](start, length) {
+    crypto.getRandomValues(this[_buffer$0][dartx.buffer][dartx.asUint8List](start, length));
+  }
+  nextBool() {
+    this[_getRandomBytes](0, 1);
+    return this[_buffer$0][dartx.getUint8](0)[dartx.isOdd];
+  }
+  nextDouble() {
+    this[_getRandomBytes](1, 7);
+    this[_buffer$0][dartx.setUint8](0, 63);
+    let highByte = this[_buffer$0][dartx.getUint8](1);
+    this[_buffer$0][dartx.setUint8](1, (dart.notNull(highByte) | 240) >>> 0);
+    let result = dart.notNull(this[_buffer$0][dartx.getFloat64](0)) - 1.0;
+    if ((dart.notNull(highByte) & 16) != 0) {
+      result = result + 1.1102230246251565e-16;
     }
-    [_addStream_2](...args) {
-      return this.addStream.apply(this, args);
+    return result;
+  }
+  nextInt(max) {
+    if (dart.notNull(max) <= 0 || dart.notNull(max) > math._POW2_32) {
+      dart.throw(new core.RangeError(dart.str`max must be in range 0 < max ≤ 2^32, was ${max}`));
     }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [_createAnswer](successCallback, failureCallback, mediaConstraints) {
-      if (failureCallback === void 0) failureCallback = null;
-      if (mediaConstraints === void 0) mediaConstraints = null;
-      if (mediaConstraints != null) {
-        let mediaConstraints_1 = html_common.convertDartToNative_Dictionary(mediaConstraints);
-        this[_createAnswer_1](successCallback, failureCallback, mediaConstraints_1);
-        return;
-      }
-      this[_createAnswer_2](successCallback, failureCallback);
-      return;
-    }
-    [_createAnswer_1](...args) {
-      return this.createAnswer.apply(this, args);
-    }
-    [_createAnswer_2](...args) {
-      return this.createAnswer.apply(this, args);
-    }
-    [dartx.createDtmfSender](...args) {
-      return this.createDTMFSender.apply(this, args);
-    }
-    [dartx.createDataChannel](label, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_createDataChannel_1](label, options_1);
-      }
-      return this[_createDataChannel_2](label);
-    }
-    [_createDataChannel_1](...args) {
-      return this.createDataChannel.apply(this, args);
-    }
-    [_createDataChannel_2](...args) {
-      return this.createDataChannel.apply(this, args);
-    }
-    [_createOffer](successCallback, failureCallback, rtcOfferOptions) {
-      if (failureCallback === void 0) failureCallback = null;
-      if (rtcOfferOptions === void 0) rtcOfferOptions = null;
-      if (rtcOfferOptions != null) {
-        let rtcOfferOptions_1 = html_common.convertDartToNative_Dictionary(rtcOfferOptions);
-        this[_createOffer_1](successCallback, failureCallback, rtcOfferOptions_1);
-        return;
-      }
-      this[_createOffer_2](successCallback, failureCallback);
-      return;
-    }
-    [_createOffer_1](...args) {
-      return this.createOffer.apply(this, args);
-    }
-    [_createOffer_2](...args) {
-      return this.createOffer.apply(this, args);
-    }
-    [dartx.getLocalStreams](...args) {
-      return this.getLocalStreams.apply(this, args);
-    }
-    [dartx.getRemoteStreams](...args) {
-      return this.getRemoteStreams.apply(this, args);
-    }
-    [_getStats](...args) {
-      return this.getStats.apply(this, args);
-    }
-    [dartx.getStreamById](...args) {
-      return this.getStreamById.apply(this, args);
-    }
-    [dartx.removeStream](...args) {
-      return this.removeStream.apply(this, args);
-    }
-    [_setLocalDescription](...args) {
-      return this.setLocalDescription.apply(this, args);
-    }
-    [dartx.setLocalDescription](description) {
-      let completer = async.Completer.new();
-      this[_setLocalDescription](description, dart.fn(() => {
-        completer.complete();
-      }, VoidToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, StringToNull()));
-      return completer.future;
-    }
-    [_setRemoteDescription](...args) {
-      return this.setRemoteDescription.apply(this, args);
-    }
-    [dartx.setRemoteDescription](description) {
-      let completer = async.Completer.new();
-      this[_setRemoteDescription](description, dart.fn(() => {
-        completer.complete();
-      }, VoidToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, StringToNull()));
-      return completer.future;
-    }
-    [dartx.updateIce](configuration, mediaConstraints) {
-      if (configuration === void 0) configuration = null;
-      if (mediaConstraints === void 0) mediaConstraints = null;
-      if (mediaConstraints != null) {
-        let configuration_1 = html_common.convertDartToNative_Dictionary(configuration);
-        let mediaConstraints_2 = html_common.convertDartToNative_Dictionary(mediaConstraints);
-        this[_updateIce_1](configuration_1, mediaConstraints_2);
-        return;
-      }
-      if (configuration != null) {
-        let configuration_1 = html_common.convertDartToNative_Dictionary(configuration);
-        this[_updateIce_2](configuration_1);
-        return;
-      }
-      this[_updateIce_3]();
-      return;
-    }
-    [_updateIce_1](...args) {
-      return this.updateIce.apply(this, args);
-    }
-    [_updateIce_2](...args) {
-      return this.updateIce.apply(this, args);
-    }
-    [_updateIce_3](...args) {
-      return this.updateIce.apply(this, args);
-    }
-    get [dartx.onAddStream]() {
-      return html$.RtcPeerConnection.addStreamEvent.forTarget(this);
-    }
-    get [dartx.onDataChannel]() {
-      return html$.RtcPeerConnection.dataChannelEvent.forTarget(this);
-    }
-    get [dartx.onIceCandidate]() {
-      return html$.RtcPeerConnection.iceCandidateEvent.forTarget(this);
-    }
-    get [dartx.onIceConnectionStateChange]() {
-      return html$.RtcPeerConnection.iceConnectionStateChangeEvent.forTarget(this);
-    }
-    get [dartx.onNegotiationNeeded]() {
-      return html$.RtcPeerConnection.negotiationNeededEvent.forTarget(this);
-    }
-    get [dartx.onRemoveStream]() {
-      return html$.RtcPeerConnection.removeStreamEvent.forTarget(this);
-    }
-    get [dartx.onSignalingStateChange]() {
-      return html$.RtcPeerConnection.signalingStateChangeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.RtcPeerConnection, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.RtcPeerConnection, [core.Map], [core.Map]),
-      _: dart.definiteFunctionType(html$.RtcPeerConnection, [])
-    }),
-    fields: () => ({
-      [dartx.iceConnectionState]: core.String,
-      [dartx.iceGatheringState]: core.String,
-      [dartx.localDescription]: html$.RtcSessionDescription,
-      [dartx.remoteDescription]: html$.RtcSessionDescription,
-      [dartx.signalingState]: core.String
-    }),
-    getters: () => ({
-      [dartx.onAddStream]: dart.definiteFunctionType(async.Stream$(html$.MediaStreamEvent), []),
-      [dartx.onDataChannel]: dart.definiteFunctionType(async.Stream$(html$.RtcDataChannelEvent), []),
-      [dartx.onIceCandidate]: dart.definiteFunctionType(async.Stream$(html$.RtcIceCandidateEvent), []),
-      [dartx.onIceConnectionStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onNegotiationNeeded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onRemoveStream]: dart.definiteFunctionType(async.Stream$(html$.MediaStreamEvent), []),
-      [dartx.onSignalingStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.createOffer]: dart.definiteFunctionType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
-      [dartx.createAnswer]: dart.definiteFunctionType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
-      [dartx.getStats]: dart.definiteFunctionType(async.Future$(html$.RtcStatsResponse), [html$.MediaStreamTrack]),
-      [dartx.addIceCandidate]: dart.definiteFunctionType(dart.void, [html$.RtcIceCandidate, html$.VoidCallback, html$._RtcErrorCallback]),
-      [dartx.addStream]: dart.definiteFunctionType(dart.void, [html$.MediaStream], [core.Map]),
-      [_addStream_1]: dart.definiteFunctionType(dart.void, [html$.MediaStream, dart.dynamic]),
-      [_addStream_2]: dart.definiteFunctionType(dart.void, [html$.MediaStream]),
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [_createAnswer]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback], [html$._RtcErrorCallback, core.Map]),
-      [_createAnswer_1]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback, dart.dynamic]),
-      [_createAnswer_2]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback]),
-      [dartx.createDtmfSender]: dart.definiteFunctionType(html$.RtcDtmfSender, [html$.MediaStreamTrack]),
-      [dartx.createDataChannel]: dart.definiteFunctionType(html$.RtcDataChannel, [core.String], [core.Map]),
-      [_createDataChannel_1]: dart.definiteFunctionType(html$.RtcDataChannel, [dart.dynamic, dart.dynamic]),
-      [_createDataChannel_2]: dart.definiteFunctionType(html$.RtcDataChannel, [dart.dynamic]),
-      [_createOffer]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback], [html$._RtcErrorCallback, core.Map]),
-      [_createOffer_1]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback, dart.dynamic]),
-      [_createOffer_2]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback]),
-      [dartx.getLocalStreams]: dart.definiteFunctionType(core.List$(html$.MediaStream), []),
-      [dartx.getRemoteStreams]: dart.definiteFunctionType(core.List$(html$.MediaStream), []),
-      [_getStats]: dart.definiteFunctionType(dart.void, [html$.RtcStatsCallback, html$.MediaStreamTrack]),
-      [dartx.getStreamById]: dart.definiteFunctionType(html$.MediaStream, [core.String]),
-      [dartx.removeStream]: dart.definiteFunctionType(dart.void, [html$.MediaStream]),
-      [_setLocalDescription]: dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription], [html$.VoidCallback, html$._RtcErrorCallback]),
-      [dartx.setLocalDescription]: dart.definiteFunctionType(async.Future, [html$.RtcSessionDescription]),
-      [_setRemoteDescription]: dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription], [html$.VoidCallback, html$._RtcErrorCallback]),
-      [dartx.setRemoteDescription]: dart.definiteFunctionType(async.Future, [html$.RtcSessionDescription]),
-      [dartx.updateIce]: dart.definiteFunctionType(dart.void, [], [core.Map, core.Map]),
-      [_updateIce_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      [_updateIce_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_updateIce_3]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      addStreamEvent: EventStreamProviderOfMediaStreamEvent(),
-      dataChannelEvent: EventStreamProviderOfRtcDataChannelEvent(),
-      iceCandidateEvent: EventStreamProviderOfRtcIceCandidateEvent(),
-      iceConnectionStateChangeEvent: EventStreamProviderOfEvent(),
-      negotiationNeededEvent: EventStreamProviderOfEvent(),
-      removeStreamEvent: EventStreamProviderOfMediaStreamEvent(),
-      signalingStateChangeEvent: EventStreamProviderOfEvent()
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineLazy(html$.RtcPeerConnection, {
-    get addStreamEvent() {
-      return dart.const(new (EventStreamProviderOfMediaStreamEvent())('addstream'));
-    },
-    get dataChannelEvent() {
-      return dart.const(new (EventStreamProviderOfRtcDataChannelEvent())('datachannel'));
-    },
-    get iceCandidateEvent() {
-      return dart.const(new (EventStreamProviderOfRtcIceCandidateEvent())('icecandidate'));
-    },
-    get iceConnectionStateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('iceconnectionstatechange'));
-    },
-    get negotiationNeededEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('negotiationneeded'));
-    },
-    get removeStreamEvent() {
-      return dart.const(new (EventStreamProviderOfMediaStreamEvent())('removestream'));
-    },
-    get signalingStateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('signalingstatechange'));
-    }
-  });
-  dart.registerExtension(dart.global.RTCPeerConnection, html$.RtcPeerConnection);
-  dart.registerExtension(dart.global.mozRTCPeerConnection, html$.RtcPeerConnection);
-  dart.defineExtensionNames([
-    'sdp',
-    'type'
-  ]);
-  html$.RtcSessionDescription = class RtcSessionDescription extends _interceptors.Interceptor {
-    static new(dictionary) {
-      let constructorName = window[dart.test(html_common.Device.isFirefox) ? dart.str`${html_common.Device.propertyPrefix}RTCSessionDescription` : 'RTCSessionDescription'];
-      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.sdp]() {
-      return this.sdp;
-    }
-    set [dartx.sdp](value) {
-      this.sdp = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.setSignature(html$.RtcSessionDescription, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.RtcSessionDescription, [core.Map]),
-      _: dart.definiteFunctionType(html$.RtcSessionDescription, [])
-    }),
-    fields: () => ({
-      [dartx.sdp]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.RTCSessionDescription, html$.RtcSessionDescription);
-  dart.registerExtension(dart.global.mozRTCSessionDescription, html$.RtcSessionDescription);
-  const _get_timestamp = Symbol('_get_timestamp');
-  dart.defineExtensionNames([
-    'timestamp',
-    'names',
-    'stat',
-    'id',
-    'type'
-  ]);
-  html$.RtcStatsReport = class RtcStatsReport extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.timestamp]() {
-      return html_common.convertNativeToDart_DateTime(this[_get_timestamp]);
-    }
-    get [_get_timestamp]() {
-      return this.timestamp;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.names](...args) {
-      return this.names.apply(this, args);
-    }
-    [dartx.stat](...args) {
-      return this.stat.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.RtcStatsReport, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.RtcStatsReport, [])}),
-    fields: () => ({
-      [dartx.id]: core.String,
-      [_get_timestamp]: dart.dynamic,
-      [dartx.type]: core.String
-    }),
-    getters: () => ({[dartx.timestamp]: dart.definiteFunctionType(core.DateTime, [])}),
-    methods: () => ({
-      [dartx.names]: dart.definiteFunctionType(core.List$(core.String), []),
-      [dartx.stat]: dart.definiteFunctionType(core.String, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.RTCStatsReport, html$.RtcStatsReport);
-  dart.defineExtensionNames([
-    'namedItem',
-    'result'
-  ]);
-  html$.RtcStatsResponse = class RtcStatsResponse extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-    [dartx.result](...args) {
-      return this.result.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.RtcStatsResponse, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.RtcStatsResponse, [])}),
-    methods: () => ({
-      [dartx.namedItem]: dart.definiteFunctionType(html$.RtcStatsReport, [core.String]),
-      [dartx.result]: dart.definiteFunctionType(core.List$(html$.RtcStatsReport), [])
-    })
-  });
-  dart.registerExtension(dart.global.RTCStatsResponse, html$.RtcStatsResponse);
-  const _availLeft = Symbol('_availLeft');
-  const _availTop = Symbol('_availTop');
-  const _availWidth = Symbol('_availWidth');
-  const _availHeight = Symbol('_availHeight');
-  dart.defineExtensionNames([
-    'available',
-    'colorDepth',
-    'height',
-    'orientation',
-    'pixelDepth',
-    'width'
-  ]);
-  html$.Screen = class Screen extends _interceptors.Interceptor {
-    get [dartx.available]() {
-      return new (RectangleOfint())(this[_availLeft], this[_availTop], this[_availWidth], this[_availHeight]);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [_availHeight]() {
-      return this.availHeight;
-    }
-    get [_availLeft]() {
-      return this.availLeft;
-    }
-    get [_availTop]() {
-      return this.availTop;
-    }
-    get [_availWidth]() {
-      return this.availWidth;
-    }
-    get [dartx.colorDepth]() {
-      return this.colorDepth;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.orientation]() {
-      return this.orientation;
-    }
-    get [dartx.pixelDepth]() {
-      return this.pixelDepth;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-  };
-  dart.setSignature(html$.Screen, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Screen, [])}),
-    fields: () => ({
-      [_availHeight]: core.int,
-      [_availLeft]: core.int,
-      [_availTop]: core.int,
-      [_availWidth]: core.int,
-      [dartx.colorDepth]: core.int,
-      [dartx.height]: core.int,
-      [dartx.orientation]: html$.ScreenOrientation,
-      [dartx.pixelDepth]: core.int,
-      [dartx.width]: core.int
-    }),
-    getters: () => ({[dartx.available]: dart.definiteFunctionType(math.Rectangle$(core.num), [])})
-  });
-  dart.registerExtension(dart.global.Screen, html$.Screen);
-  dart.defineExtensionNames([
-    'lock',
-    'unlock',
-    'onChange',
-    'angle',
-    'type'
-  ]);
-  html$.ScreenOrientation = class ScreenOrientation extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.angle]() {
-      return this.angle;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.lock](...args) {
-      return this.lock.apply(this, args);
-    }
-    [dartx.unlock](...args) {
-      return this.unlock.apply(this, args);
-    }
-    get [dartx.onChange]() {
-      return html$.ScreenOrientation.changeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.ScreenOrientation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ScreenOrientation, [])}),
-    fields: () => ({
-      [dartx.angle]: core.int,
-      [dartx.type]: core.String
-    }),
-    getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.lock]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.unlock]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.ScreenOrientation, {
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.ScreenOrientation, html$.ScreenOrientation);
-  dart.defineExtensionNames([
-    'async',
-    'charset',
-    'crossOrigin',
-    'defer',
-    'integrity',
-    'nonce',
-    'src',
-    'type'
-  ]);
-  html$.ScriptElement = class ScriptElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ScriptElement._check(html$.document[dartx.createElement]("script"));
-    }
-    created() {
-      this[dartx.async] = null;
-      this[dartx.charset] = null;
-      this[dartx.crossOrigin] = null;
-      this[dartx.defer] = null;
-      this[dartx.integrity] = null;
-      this[dartx.nonce] = null;
-      this[dartx.src] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.async]() {
-      return this.async;
-    }
-    set [dartx.async](value) {
-      this.async = value;
-    }
-    get [dartx.charset]() {
-      return this.charset;
-    }
-    set [dartx.charset](value) {
-      this.charset = value;
-    }
-    get [dartx.crossOrigin]() {
-      return this.crossOrigin;
-    }
-    set [dartx.crossOrigin](value) {
-      this.crossOrigin = value;
-    }
-    get [dartx.defer]() {
-      return this.defer;
-    }
-    set [dartx.defer](value) {
-      this.defer = value;
-    }
-    get [dartx.integrity]() {
-      return this.integrity;
-    }
-    set [dartx.integrity](value) {
-      this.integrity = value;
-    }
-    get [dartx.nonce]() {
-      return this.nonce;
-    }
-    set [dartx.nonce](value) {
-      this.nonce = value;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.ScriptElement, 'created');
-  dart.setSignature(html$.ScriptElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ScriptElement, []),
-      new: dart.definiteFunctionType(html$.ScriptElement, []),
-      created: dart.definiteFunctionType(html$.ScriptElement, [])
-    }),
-    fields: () => ({
-      [dartx.async]: core.bool,
-      [dartx.charset]: core.String,
-      [dartx.crossOrigin]: core.String,
-      [dartx.defer]: core.bool,
-      [dartx.integrity]: core.String,
-      [dartx.nonce]: core.String,
-      [dartx.src]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLScriptElement, html$.ScriptElement);
-  dart.defineExtensionNames([
-    'consumeDelta',
-    'deltaGranularity',
-    'deltaX',
-    'deltaY',
-    'fromUserInput',
-    'inInertialPhase',
-    'isBeginning',
-    'isEnding',
-    'shouldPropagate',
-    'velocityX',
-    'velocityY'
-  ]);
-  html$.ScrollState = class ScrollState extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding) {
-      if (deltaX === void 0) deltaX = null;
-      if (deltaY === void 0) deltaY = null;
-      if (deltaGranularity === void 0) deltaGranularity = null;
-      if (velocityX === void 0) velocityX = null;
-      if (velocityY === void 0) velocityY = null;
-      if (inInertialPhase === void 0) inInertialPhase = null;
-      if (isBeginning === void 0) isBeginning = null;
-      if (isEnding === void 0) isEnding = null;
-      if (isEnding != null) {
-        return html$.ScrollState._create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
-      }
-      if (isBeginning != null) {
-        return html$.ScrollState._create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
-      }
-      if (inInertialPhase != null) {
-        return html$.ScrollState._create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
-      }
-      if (velocityY != null) {
-        return html$.ScrollState._create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
-      }
-      if (velocityX != null) {
-        return html$.ScrollState._create_5(deltaX, deltaY, deltaGranularity, velocityX);
-      }
-      if (deltaGranularity != null) {
-        return html$.ScrollState._create_6(deltaX, deltaY, deltaGranularity);
-      }
-      if (deltaY != null) {
-        return html$.ScrollState._create_7(deltaX, deltaY);
-      }
-      if (deltaX != null) {
-        return html$.ScrollState._create_8(deltaX);
-      }
-      return html$.ScrollState._create_9();
-    }
-    static _create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding) {
-      return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
-    }
-    static _create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning) {
-      return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
-    }
-    static _create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase) {
-      return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
-    }
-    static _create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY) {
-      return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
-    }
-    static _create_5(deltaX, deltaY, deltaGranularity, velocityX) {
-      return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX);
-    }
-    static _create_6(deltaX, deltaY, deltaGranularity) {
-      return new self.ScrollState(deltaX, deltaY, deltaGranularity);
-    }
-    static _create_7(deltaX, deltaY) {
-      return new self.ScrollState(deltaX, deltaY);
-    }
-    static _create_8(deltaX) {
-      return new self.ScrollState(deltaX);
-    }
-    static _create_9() {
-      return new self.ScrollState();
-    }
-    get [dartx.deltaGranularity]() {
-      return this.deltaGranularity;
-    }
-    get [dartx.deltaX]() {
-      return this.deltaX;
-    }
-    get [dartx.deltaY]() {
-      return this.deltaY;
-    }
-    get [dartx.fromUserInput]() {
-      return this.fromUserInput;
-    }
-    get [dartx.inInertialPhase]() {
-      return this.inInertialPhase;
-    }
-    get [dartx.isBeginning]() {
-      return this.isBeginning;
-    }
-    get [dartx.isEnding]() {
-      return this.isEnding;
-    }
-    get [dartx.shouldPropagate]() {
-      return this.shouldPropagate;
-    }
-    get [dartx.velocityX]() {
-      return this.velocityX;
-    }
-    get [dartx.velocityY]() {
-      return this.velocityY;
-    }
-    [dartx.consumeDelta](...args) {
-      return this.consumeDelta.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ScrollState, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ScrollState, []),
-      new: dart.definiteFunctionType(html$.ScrollState, [], [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool, core.bool])
-    }),
-    fields: () => ({
-      [dartx.deltaGranularity]: core.double,
-      [dartx.deltaX]: core.double,
-      [dartx.deltaY]: core.double,
-      [dartx.fromUserInput]: core.bool,
-      [dartx.inInertialPhase]: core.bool,
-      [dartx.isBeginning]: core.bool,
-      [dartx.isEnding]: core.bool,
-      [dartx.shouldPropagate]: core.bool,
-      [dartx.velocityX]: core.double,
-      [dartx.velocityY]: core.double
-    }),
-    methods: () => ({[dartx.consumeDelta]: dart.definiteFunctionType(dart.void, [core.num, core.num])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_4: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_5: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_6: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_7: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic]),
-      _create_8: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic]),
-      _create_9: dart.definiteFunctionType(html$.ScrollState, [])
-    }),
-    names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6', '_create_7', '_create_8', '_create_9']
-  });
-  dart.registerExtension(dart.global.ScrollState, html$.ScrollState);
-  dart.defineExtensionNames([
-    'blockedUri',
-    'columnNumber',
-    'documentUri',
-    'effectiveDirective',
-    'lineNumber',
-    'originalPolicy',
-    'referrer',
-    'sourceFile',
-    'statusCode',
-    'violatedDirective'
-  ]);
-  html$.SecurityPolicyViolationEvent = class SecurityPolicyViolationEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.SecurityPolicyViolationEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.SecurityPolicyViolationEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.SecurityPolicyViolationEvent(type);
-    }
-    get [dartx.blockedUri]() {
-      return this.blockedURI;
-    }
-    get [dartx.columnNumber]() {
-      return this.columnNumber;
-    }
-    get [dartx.documentUri]() {
-      return this.documentURI;
-    }
-    get [dartx.effectiveDirective]() {
-      return this.effectiveDirective;
-    }
-    get [dartx.lineNumber]() {
-      return this.lineNumber;
-    }
-    get [dartx.originalPolicy]() {
-      return this.originalPolicy;
-    }
-    get [dartx.referrer]() {
-      return this.referrer;
-    }
-    get [dartx.sourceFile]() {
-      return this.sourceFile;
-    }
-    get [dartx.statusCode]() {
-      return this.statusCode;
-    }
-    get [dartx.violatedDirective]() {
-      return this.violatedDirective;
-    }
-  };
-  dart.setSignature(html$.SecurityPolicyViolationEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, []),
-      new: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.blockedUri]: core.String,
-      [dartx.columnNumber]: core.int,
-      [dartx.documentUri]: core.String,
-      [dartx.effectiveDirective]: core.String,
-      [dartx.lineNumber]: core.int,
-      [dartx.originalPolicy]: core.String,
-      [dartx.referrer]: core.String,
-      [dartx.sourceFile]: core.String,
-      [dartx.statusCode]: core.int,
-      [dartx.violatedDirective]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.SecurityPolicyViolationEvent, html$.SecurityPolicyViolationEvent);
-  dart.defineExtensionNames([
-    'add',
-    'checkValidity',
-    'item',
-    'namedItem',
-    'reportValidity',
-    'setCustomValidity',
-    'options',
-    'selectedOptions',
-    'autofocus',
-    'disabled',
-    'form',
-    'labels',
-    'length',
-    'multiple',
-    'name',
-    'required',
-    'selectedIndex',
-    'size',
-    'type',
-    'validationMessage',
-    'validity',
-    'value',
-    'willValidate'
-  ]);
-  html$.SelectElement = class SelectElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.SelectElement._check(html$.document[dartx.createElement]("select"));
-    }
-    created() {
-      this[dartx.autofocus] = null;
-      this[dartx.disabled] = null;
-      this[dartx.form] = null;
-      this[dartx.labels] = null;
-      this[dartx.length] = null;
-      this[dartx.multiple] = null;
-      this[dartx.name] = null;
-      this[dartx.required] = null;
-      this[dartx.selectedIndex] = null;
-      this[dartx.size] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.value] = null;
-      this[dartx.willValidate] = null;
-      super.created();
-    }
-    get [dartx.autofocus]() {
-      return this.autofocus;
-    }
-    set [dartx.autofocus](value) {
-      this.autofocus = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    set [dartx.length](value) {
-      this.length = value;
-    }
-    get [dartx.multiple]() {
-      return this.multiple;
-    }
-    set [dartx.multiple](value) {
-      this.multiple = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.required]() {
-      return this.required;
-    }
-    set [dartx.required](value) {
-      this.required = value;
-    }
-    get [dartx.selectedIndex]() {
-      return this.selectedIndex;
-    }
-    set [dartx.selectedIndex](value) {
-      this.selectedIndex = value;
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-    set [dartx.size](value) {
-      this.size = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    [__setter__](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.add](...args) {
-      return this.add.apply(this, args);
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.namedItem](...args) {
-      return this.namedItem.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-    get [dartx.options]() {
-      let options = ListOfOptionElement().from(this[dartx.querySelectorAll](html$.Element)('option'));
-      return new (UnmodifiableListViewOfOptionElement())(options);
-    }
-    get [dartx.selectedOptions]() {
-      if (dart.test(this[dartx.multiple])) {
-        let options = this[dartx.options][dartx.where](dart.fn(o => o[dartx.selected], OptionElementTobool()))[dartx.toList]();
-        return new (UnmodifiableListViewOfOptionElement())(options);
-      } else {
-        return JSArrayOfOptionElement().of([this[dartx.options][dartx._get](this[dartx.selectedIndex])]);
-      }
-    }
-  };
-  dart.defineNamedConstructor(html$.SelectElement, 'created');
-  dart.setSignature(html$.SelectElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SelectElement, []),
-      new: dart.definiteFunctionType(html$.SelectElement, []),
-      created: dart.definiteFunctionType(html$.SelectElement, [])
-    }),
-    fields: () => ({
-      [dartx.autofocus]: core.bool,
-      [dartx.disabled]: core.bool,
-      [dartx.form]: html$.FormElement,
-      [dartx.labels]: ListOfNode(),
-      [dartx.length]: core.int,
-      [dartx.multiple]: core.bool,
-      [dartx.name]: core.String,
-      [dartx.required]: core.bool,
-      [dartx.selectedIndex]: core.int,
-      [dartx.size]: core.int,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.value]: core.String,
-      [dartx.willValidate]: core.bool
-    }),
-    getters: () => ({
-      [dartx.options]: dart.definiteFunctionType(core.List$(html$.OptionElement), []),
-      [dartx.selectedOptions]: dart.definiteFunctionType(core.List$(html$.OptionElement), [])
-    }),
-    methods: () => ({
-      [__setter__]: dart.definiteFunctionType(dart.void, [core.int, html$.OptionElement]),
-      [dartx.add]: dart.definiteFunctionType(dart.void, [core.Object, core.Object]),
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.item]: dart.definiteFunctionType(html$.Element, [core.int]),
-      [dartx.namedItem]: dart.definiteFunctionType(html$.OptionElement, [core.String]),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLSelectElement, html$.SelectElement);
-  dart.defineExtensionNames([
-    'addRange',
-    'collapse',
-    'collapseToEnd',
-    'collapseToStart',
-    'containsNode',
-    'deleteFromDocument',
-    'empty',
-    'extend',
-    'getRangeAt',
-    'modify',
-    'removeAllRanges',
-    'selectAllChildren',
-    'setBaseAndExtent',
-    'setPosition',
-    'anchorNode',
-    'anchorOffset',
-    'baseNode',
-    'baseOffset',
-    'extentNode',
-    'extentOffset',
-    'focusNode',
-    'focusOffset',
-    'isCollapsed',
-    'rangeCount',
-    'type'
-  ]);
-  html$.Selection = class Selection extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.anchorNode]() {
-      return this.anchorNode;
-    }
-    get [dartx.anchorOffset]() {
-      return this.anchorOffset;
-    }
-    get [dartx.baseNode]() {
-      return this.baseNode;
-    }
-    get [dartx.baseOffset]() {
-      return this.baseOffset;
-    }
-    get [dartx.extentNode]() {
-      return this.extentNode;
-    }
-    get [dartx.extentOffset]() {
-      return this.extentOffset;
-    }
-    get [dartx.focusNode]() {
-      return this.focusNode;
-    }
-    get [dartx.focusOffset]() {
-      return this.focusOffset;
-    }
-    get [dartx.isCollapsed]() {
-      return this.isCollapsed;
-    }
-    get [dartx.rangeCount]() {
-      return this.rangeCount;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.addRange](...args) {
-      return this.addRange.apply(this, args);
-    }
-    [dartx.collapse](...args) {
-      return this.collapse.apply(this, args);
-    }
-    [dartx.collapseToEnd](...args) {
-      return this.collapseToEnd.apply(this, args);
-    }
-    [dartx.collapseToStart](...args) {
-      return this.collapseToStart.apply(this, args);
-    }
-    [dartx.containsNode](...args) {
-      return this.containsNode.apply(this, args);
-    }
-    [dartx.deleteFromDocument](...args) {
-      return this.deleteFromDocument.apply(this, args);
-    }
-    [dartx.empty](...args) {
-      return this.empty.apply(this, args);
-    }
-    [dartx.extend](...args) {
-      return this.extend.apply(this, args);
-    }
-    [dartx.getRangeAt](...args) {
-      return this.getRangeAt.apply(this, args);
-    }
-    [dartx.modify](...args) {
-      return this.modify.apply(this, args);
-    }
-    [dartx.removeAllRanges](...args) {
-      return this.removeAllRanges.apply(this, args);
-    }
-    [dartx.selectAllChildren](...args) {
-      return this.selectAllChildren.apply(this, args);
-    }
-    [dartx.setBaseAndExtent](...args) {
-      return this.setBaseAndExtent.apply(this, args);
-    }
-    [dartx.setPosition](...args) {
-      return this.setPosition.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.Selection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Selection, [])}),
-    fields: () => ({
-      [dartx.anchorNode]: html$.Node,
-      [dartx.anchorOffset]: core.int,
-      [dartx.baseNode]: html$.Node,
-      [dartx.baseOffset]: core.int,
-      [dartx.extentNode]: html$.Node,
-      [dartx.extentOffset]: core.int,
-      [dartx.focusNode]: html$.Node,
-      [dartx.focusOffset]: core.int,
-      [dartx.isCollapsed]: core.bool,
-      [dartx.rangeCount]: core.int,
-      [dartx.type]: core.String
-    }),
-    methods: () => ({
-      [dartx.addRange]: dart.definiteFunctionType(dart.void, [html$.Range]),
-      [dartx.collapse]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int]),
-      [dartx.collapseToEnd]: dart.definiteFunctionType(dart.void, []),
-      [dartx.collapseToStart]: dart.definiteFunctionType(dart.void, []),
-      [dartx.containsNode]: dart.definiteFunctionType(core.bool, [html$.Node, core.bool]),
-      [dartx.deleteFromDocument]: dart.definiteFunctionType(dart.void, []),
-      [dartx.empty]: dart.definiteFunctionType(dart.void, []),
-      [dartx.extend]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int]),
-      [dartx.getRangeAt]: dart.definiteFunctionType(html$.Range, [core.int]),
-      [dartx.modify]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.removeAllRanges]: dart.definiteFunctionType(dart.void, []),
-      [dartx.selectAllChildren]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.setBaseAndExtent]: dart.definiteFunctionType(dart.void, [html$.Node, core.int, html$.Node, core.int]),
-      [dartx.setPosition]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.Selection, html$.Selection);
-  dart.defineExtensionNames([
-    'close',
-    'postMessage',
-    'data',
-    'name',
-    'targetUrl'
-  ]);
-  html$.ServicePort = class ServicePort extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.targetUrl]() {
-      return this.targetURL;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ServicePort, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ServicePort, [])}),
-    fields: () => ({
-      [dartx.data]: core.Object,
-      [dartx.name]: core.String,
-      [dartx.targetUrl]: core.String
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.ServicePort, html$.ServicePort);
-  const _connect_1 = Symbol('_connect_1');
-  const _connect_2 = Symbol('_connect_2');
-  dart.defineExtensionNames([
-    'connect',
-    'match',
-    'matchAll',
-    'onMessage'
-  ]);
-  html$.ServicePortCollection = class ServicePortCollection extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.connect](url, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_connect_1](url, options_1);
-      }
-      return this[_connect_2](url);
-    }
-    [_connect_1](...args) {
-      return this.connect.apply(this, args);
-    }
-    [_connect_2](...args) {
-      return this.connect.apply(this, args);
-    }
-    [dartx.match](options) {
-      let options_1 = html_common.convertDartToNative_Dictionary(options);
-      return this[_match_1](options_1);
-    }
-    [_match_1](...args) {
-      return this.match.apply(this, args);
-    }
-    [dartx.matchAll](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_matchAll_1](options_1);
-      }
-      return this[_matchAll_2]();
-    }
-    [_matchAll_1](...args) {
-      return this.matchAll.apply(this, args);
-    }
-    [_matchAll_2](...args) {
-      return this.matchAll.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.ServicePortCollection.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.ServicePortCollection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ServicePortCollection, [])}),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({
-      [dartx.connect]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
-      [_connect_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
-      [_connect_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.match]: dart.definiteFunctionType(async.Future, [core.Map]),
-      [_match_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.matchAll]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_matchAll_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_matchAll_2]: dart.definiteFunctionType(async.Future, [])
-    }),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.ServicePortCollection, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.ServicePortCollection, html$.ServicePortCollection);
-  dart.defineExtensionNames([
-    'respondWith',
-    'origin',
-    'targetUrl'
-  ]);
-  html$.ServicePortConnectEvent = class ServicePortConnectEvent extends html$.ExtendableEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.ServicePortConnectEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.ServicePortConnectEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.ServicePortConnectEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.ServicePortConnectEvent(type);
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.targetUrl]() {
-      return this.targetURL;
-    }
-    [dartx.respondWith](...args) {
-      return this.respondWith.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ServicePortConnectEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ServicePortConnectEvent, []),
-      new: dart.definiteFunctionType(html$.ServicePortConnectEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.origin]: core.String,
-      [dartx.targetUrl]: core.String
-    }),
-    methods: () => ({[dartx.respondWith]: dart.definiteFunctionType(async.Future, [async.Future])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ServicePortConnectEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ServicePortConnectEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.ServicePortConnectEvent, html$.ServicePortConnectEvent);
-  dart.defineExtensionNames([
-    'getRegistration',
-    'getRegistrations',
-    'register',
-    'onMessage',
-    'controller',
-    'ready'
-  ]);
-  html$.ServiceWorkerContainer = class ServiceWorkerContainer extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.controller]() {
-      return this.controller;
-    }
-    get [dartx.ready]() {
-      return this.ready;
-    }
-    [dartx.getRegistration](...args) {
-      return this.getRegistration.apply(this, args);
-    }
-    [dartx.getRegistrations](...args) {
-      return this.getRegistrations.apply(this, args);
-    }
-    [dartx.register](url, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_register_1](url, options_1);
-      }
-      return this[_register_2](url);
-    }
-    [_register_1](...args) {
-      return this.register.apply(this, args);
-    }
-    [_register_2](...args) {
-      return this.register.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.ServiceWorkerContainer.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.ServiceWorkerContainer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerContainer, [])}),
-    fields: () => ({
-      [dartx.controller]: html$._ServiceWorker,
-      [dartx.ready]: async.Future
-    }),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({
-      [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [], [core.String]),
-      [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
-      [dartx.register]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
-      [_register_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
-      [_register_2]: dart.definiteFunctionType(async.Future, [dart.dynamic])
-    }),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.ServiceWorkerContainer, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.ServiceWorkerContainer, html$.ServiceWorkerContainer);
-  dart.defineExtensionNames([
-    'skipWaiting',
-    'onMessage',
-    'clients',
-    'ports',
-    'registration'
-  ]);
-  html$.ServiceWorkerGlobalScope = class ServiceWorkerGlobalScope extends html$.WorkerGlobalScope {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.clients]() {
-      return this.clients;
-    }
-    get [dartx.ports]() {
-      return this.ports;
-    }
-    get [dartx.registration]() {
-      return this.registration;
-    }
-    [dartx.skipWaiting](...args) {
-      return this.skipWaiting.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.ServiceWorkerGlobalScope.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.ServiceWorkerGlobalScope, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerGlobalScope, [])}),
-    fields: () => ({
-      [dartx.clients]: html$.Clients,
-      [dartx.ports]: html$.StashedPortCollection,
-      [dartx.registration]: html$.ServiceWorkerRegistration
-    }),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({[dartx.skipWaiting]: dart.definiteFunctionType(async.Future, [])}),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.ServiceWorkerGlobalScope, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.ServiceWorkerGlobalScope, html$.ServiceWorkerGlobalScope);
-  dart.defineExtensionNames([
-    'data',
-    'lastEventId',
-    'origin',
-    'ports',
-    'source'
-  ]);
-  html$.ServiceWorkerMessageEvent = class ServiceWorkerMessageEvent extends html$.Event {
-    get [dartx.data]() {
-      return html_common.convertNativeToDart_SerializedScriptValue(this[_get_data]);
-    }
-    get [_get_data]() {
-      return this.data;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.ServiceWorkerMessageEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.ServiceWorkerMessageEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.ServiceWorkerMessageEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.ServiceWorkerMessageEvent(type);
-    }
-    get [dartx.lastEventId]() {
-      return this.lastEventId;
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.ports]() {
-      return this.ports;
-    }
-    get [dartx.source]() {
-      return this.source;
-    }
-  };
-  dart.setSignature(html$.ServiceWorkerMessageEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, []),
-      new: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [_get_data]: dart.dynamic,
-      [dartx.lastEventId]: core.String,
-      [dartx.origin]: core.String,
-      [dartx.ports]: ListOfMessagePort(),
-      [dartx.source]: core.Object
-    }),
-    getters: () => ({[dartx.data]: dart.definiteFunctionType(dart.dynamic, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.ServiceWorkerMessageEvent, html$.ServiceWorkerMessageEvent);
-  const _getNotifications_1 = Symbol('_getNotifications_1');
-  const _getNotifications_2 = Symbol('_getNotifications_2');
-  const _showNotification_1 = Symbol('_showNotification_1');
-  const _showNotification_2 = Symbol('_showNotification_2');
-  dart.defineExtensionNames([
-    'getNotifications',
-    'showNotification',
-    'unregister',
-    'update',
-    'active',
-    'geofencing',
-    'installing',
-    'periodicSync',
-    'pushManager',
-    'scope',
-    'sync',
-    'waiting'
-  ]);
-  html$.ServiceWorkerRegistration = class ServiceWorkerRegistration extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.active]() {
-      return this.active;
-    }
-    get [dartx.geofencing]() {
-      return this.geofencing;
-    }
-    get [dartx.installing]() {
-      return this.installing;
-    }
-    get [dartx.periodicSync]() {
-      return this.periodicSync;
-    }
-    get [dartx.pushManager]() {
-      return this.pushManager;
-    }
-    get [dartx.scope]() {
-      return this.scope;
-    }
-    get [dartx.sync]() {
-      return this.sync;
-    }
-    get [dartx.waiting]() {
-      return this.waiting;
-    }
-    [dartx.getNotifications](filter) {
-      if (filter === void 0) filter = null;
-      if (filter != null) {
-        let filter_1 = html_common.convertDartToNative_Dictionary(filter);
-        return this[_getNotifications_1](filter_1);
-      }
-      return this[_getNotifications_2]();
-    }
-    [_getNotifications_1](...args) {
-      return this.getNotifications.apply(this, args);
-    }
-    [_getNotifications_2](...args) {
-      return this.getNotifications.apply(this, args);
-    }
-    [dartx.showNotification](title, options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_showNotification_1](title, options_1);
-      }
-      return this[_showNotification_2](title);
-    }
-    [_showNotification_1](...args) {
-      return this.showNotification.apply(this, args);
-    }
-    [_showNotification_2](...args) {
-      return this.showNotification.apply(this, args);
-    }
-    [dartx.unregister](...args) {
-      return this.unregister.apply(this, args);
-    }
-    [dartx.update](...args) {
-      return this.update.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.ServiceWorkerRegistration, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerRegistration, [])}),
-    fields: () => ({
-      [dartx.active]: html$._ServiceWorker,
-      [dartx.geofencing]: html$.Geofencing,
-      [dartx.installing]: html$._ServiceWorker,
-      [dartx.periodicSync]: html$.PeriodicSyncManager,
-      [dartx.pushManager]: html$.PushManager,
-      [dartx.scope]: core.String,
-      [dartx.sync]: html$.SyncManager,
-      [dartx.waiting]: html$._ServiceWorker
-    }),
-    methods: () => ({
-      [dartx.getNotifications]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_getNotifications_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_getNotifications_2]: dart.definiteFunctionType(async.Future, []),
-      [dartx.showNotification]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
-      [_showNotification_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
-      [_showNotification_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.unregister]: dart.definiteFunctionType(async.Future, []),
-      [dartx.update]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.ServiceWorkerRegistration, html$.ServiceWorkerRegistration);
-  dart.defineExtensionNames([
-    'getDistributedNodes'
-  ]);
-  html$.ShadowElement = class ShadowElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.ShadowElement._check(html$.document[dartx.createElement]("shadow"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('shadow');
-    }
-    [dartx.getDistributedNodes](...args) {
-      return this.getDistributedNodes.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.ShadowElement, 'created');
-  dart.setSignature(html$.ShadowElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.ShadowElement, []),
-      new: dart.definiteFunctionType(html$.ShadowElement, []),
-      created: dart.definiteFunctionType(html$.ShadowElement, [])
-    }),
-    methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLShadowElement, html$.ShadowElement);
-  dart.defineExtensionNames([
-    'clone',
-    'elementFromPoint',
-    'elementsFromPoint',
-    'getSelection',
-    'resetStyleInheritance',
-    'resetStyleInheritance',
-    'applyAuthorStyles',
-    'applyAuthorStyles',
-    'activeElement',
-    'delegatesFocus',
-    'host',
-    'innerHtml',
-    'olderShadowRoot',
-    'styleSheets'
-  ]);
-  html$.ShadowRoot = class ShadowRoot extends html$.DocumentFragment {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.activeElement]() {
-      return this.activeElement;
-    }
-    get [dartx.delegatesFocus]() {
-      return this.delegatesFocus;
-    }
-    get [dartx.host]() {
-      return this.host;
-    }
-    get [dartx.innerHtml]() {
-      return this.innerHTML;
-    }
-    set [dartx.innerHtml](value) {
-      this.innerHTML = value;
-    }
-    get [dartx.olderShadowRoot]() {
-      return this.olderShadowRoot;
-    }
-    get [dartx.styleSheets]() {
-      return this.styleSheets;
-    }
-    [dartx.clone](...args) {
-      return this.cloneNode.apply(this, args);
-    }
-    [dartx.elementFromPoint](...args) {
-      return this.elementFromPoint.apply(this, args);
-    }
-    [dartx.elementsFromPoint](...args) {
-      return this.elementsFromPoint.apply(this, args);
-    }
-    [dartx.getSelection](...args) {
-      return this.getSelection.apply(this, args);
-    }
-    static get supported() {
-      return !!(Element.prototype.createShadowRoot || Element.prototype.webkitCreateShadowRoot);
-    }
-    static _shadowRootDeprecationReport() {
-      if (!dart.test(html$.ShadowRoot._shadowRootDeprecationReported)) {
-        html$.window[dartx.console].warn('ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.\nPlease remove them from your code.\n');
-        html$.ShadowRoot._shadowRootDeprecationReported = true;
-      }
-    }
-    get [dartx.resetStyleInheritance]() {
-      html$.ShadowRoot._shadowRootDeprecationReport();
-      return false;
-    }
-    set [dartx.resetStyleInheritance](value) {
-      html$.ShadowRoot._shadowRootDeprecationReport();
-    }
-    get [dartx.applyAuthorStyles]() {
-      html$.ShadowRoot._shadowRootDeprecationReport();
-      return false;
-    }
-    set [dartx.applyAuthorStyles](value) {
-      html$.ShadowRoot._shadowRootDeprecationReport();
-    }
-  };
-  const innerHtml = Symbol(html$.ShadowRoot.name + "." + dartx.innerHtml.toString());
-  dart.setSignature(html$.ShadowRoot, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ShadowRoot, [])}),
-    fields: () => ({
-      [dartx.activeElement]: html$.Element,
-      [dartx.delegatesFocus]: core.bool,
-      [dartx.host]: html$.Element,
-      [dartx.innerHtml]: core.String,
-      [dartx.olderShadowRoot]: html$.ShadowRoot,
-      [dartx.styleSheets]: ListOfStyleSheet()
-    }),
-    getters: () => ({
-      [dartx.resetStyleInheritance]: dart.definiteFunctionType(core.bool, []),
-      [dartx.applyAuthorStyles]: dart.definiteFunctionType(core.bool, [])
-    }),
-    setters: () => ({
-      [dartx.resetStyleInheritance]: dart.definiteFunctionType(dart.void, [core.bool]),
-      [dartx.applyAuthorStyles]: dart.definiteFunctionType(dart.void, [core.bool])
-    }),
-    methods: () => ({
-      [dartx.elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
-      [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html$.Element), [core.int, core.int]),
-      [dartx.getSelection]: dart.definiteFunctionType(html$.Selection, [])
-    }),
-    sfields: () => ({_shadowRootDeprecationReported: core.bool}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({_shadowRootDeprecationReport: dart.definiteFunctionType(dart.void, [])}),
-    names: ['_shadowRootDeprecationReport']
-  });
-  html$.ShadowRoot._shadowRootDeprecationReported = false;
-  dart.registerExtension(dart.global.ShadowRoot, html$.ShadowRoot);
-  dart.defineExtensionNames([
-    'byteLength'
-  ]);
-  html$.SharedArrayBuffer = class SharedArrayBuffer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.byteLength]() {
-      return this.byteLength;
-    }
-  };
-  dart.setSignature(html$.SharedArrayBuffer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SharedArrayBuffer, [])}),
-    fields: () => ({[dartx.byteLength]: core.int})
-  });
-  dart.registerExtension(dart.global.SharedArrayBuffer, html$.SharedArrayBuffer);
-  dart.defineExtensionNames([
-    'onError',
-    'port',
-    'workerStart'
-  ]);
-  html$.SharedWorker = class SharedWorker extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(scriptURL, name) {
-      if (name === void 0) name = null;
-      if (name != null) {
-        return html$.SharedWorker._create_1(scriptURL, name);
-      }
-      return html$.SharedWorker._create_2(scriptURL);
-    }
-    static _create_1(scriptURL, name) {
-      return new self.SharedWorker(scriptURL, name);
-    }
-    static _create_2(scriptURL) {
-      return new self.SharedWorker(scriptURL);
-    }
-    get [dartx.port]() {
-      return this.port;
-    }
-    get [dartx.workerStart]() {
-      return this.workerStart;
-    }
-    get [dartx.onError]() {
-      return html$.SharedWorker.errorEvent.forTarget(this);
-    }
-  };
-  html$.SharedWorker[dart.implements] = () => [html$.AbstractWorker];
-  dart.setSignature(html$.SharedWorker, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SharedWorker, []),
-      new: dart.definiteFunctionType(html$.SharedWorker, [core.String], [core.String])
-    }),
-    fields: () => ({
-      [dartx.port]: html$.MessagePort,
-      [dartx.workerStart]: core.double
-    }),
-    getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    sfields: () => ({errorEvent: EventStreamProviderOfEvent()}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.SharedWorker, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.SharedWorker, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.defineLazy(html$.SharedWorker, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    }
-  });
-  dart.registerExtension(dart.global.SharedWorker, html$.SharedWorker);
-  dart.defineExtensionNames([
-    'onConnect',
-    'name'
-  ]);
-  html$.SharedWorkerGlobalScope = class SharedWorkerGlobalScope extends html$.WorkerGlobalScope {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.onConnect]() {
-      return html$.SharedWorkerGlobalScope.connectEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.SharedWorkerGlobalScope, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SharedWorkerGlobalScope, [])}),
-    fields: () => ({[dartx.name]: core.String}),
-    getters: () => ({[dartx.onConnect]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    sfields: () => ({connectEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.SharedWorkerGlobalScope, {
-    get connectEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('connect'));
-    }
-  });
-  dart.registerExtension(dart.global.SharedWorkerGlobalScope, html$.SharedWorkerGlobalScope);
-  dart.defineExtensionNames([
-    'abort',
-    'appendBuffer',
-    'appendStream',
-    'appendTypedData',
-    'remove',
-    'appendWindowEnd',
-    'appendWindowStart',
-    'buffered',
-    'mode',
-    'timestampOffset',
-    'trackDefaults',
-    'updating'
-  ]);
-  html$.SourceBuffer = class SourceBuffer extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.appendWindowEnd]() {
-      return this.appendWindowEnd;
-    }
-    set [dartx.appendWindowEnd](value) {
-      this.appendWindowEnd = value;
-    }
-    get [dartx.appendWindowStart]() {
-      return this.appendWindowStart;
-    }
-    set [dartx.appendWindowStart](value) {
-      this.appendWindowStart = value;
-    }
-    get [dartx.buffered]() {
-      return this.buffered;
-    }
-    get [dartx.mode]() {
-      return this.mode;
-    }
-    set [dartx.mode](value) {
-      this.mode = value;
-    }
-    get [dartx.timestampOffset]() {
-      return this.timestampOffset;
-    }
-    set [dartx.timestampOffset](value) {
-      this.timestampOffset = value;
-    }
-    get [dartx.trackDefaults]() {
-      return this.trackDefaults;
-    }
-    set [dartx.trackDefaults](value) {
-      this.trackDefaults = value;
-    }
-    get [dartx.updating]() {
-      return this.updating;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.appendBuffer](...args) {
-      return this.appendBuffer.apply(this, args);
-    }
-    [dartx.appendStream](...args) {
-      return this.appendStream.apply(this, args);
-    }
-    [dartx.appendTypedData](...args) {
-      return this.appendBuffer.apply(this, args);
-    }
-    [dartx.remove](...args) {
-      return this.remove.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.SourceBuffer, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SourceBuffer, [])}),
-    fields: () => ({
-      [dartx.appendWindowEnd]: core.num,
-      [dartx.appendWindowStart]: core.num,
-      [dartx.buffered]: html$.TimeRanges,
-      [dartx.mode]: core.String,
-      [dartx.timestampOffset]: core.num,
-      [dartx.trackDefaults]: html$.TrackDefaultList,
-      [dartx.updating]: core.bool
-    }),
-    methods: () => ({
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.appendBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
-      [dartx.appendStream]: dart.definiteFunctionType(dart.void, [html$.FileStream], [core.int]),
-      [dartx.appendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData]),
-      [dartx.remove]: dart.definiteFunctionType(dart.void, [core.num, core.num])
-    })
-  });
-  dart.registerExtension(dart.global.SourceBuffer, html$.SourceBuffer);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$.SourceBufferList = class SourceBufferList extends dart.mixin(html$.EventTarget, collection.ListMixin$(html$.SourceBuffer), html$.ImmutableListMixin$(html$.SourceBuffer)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.SourceBufferList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSourceBuffer()];
-  dart.setSignature(html$.SourceBufferList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SourceBufferList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.SourceBuffer, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SourceBuffer]),
-      [dartx.item]: dart.definiteFunctionType(html$.SourceBuffer, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SourceBufferList, html$.SourceBufferList);
-  dart.defineExtensionNames([
-    'media',
-    'sizes',
-    'src',
-    'srcset',
-    'type'
-  ]);
-  html$.SourceElement = class SourceElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.SourceElement._check(html$.document[dartx.createElement]("source"));
-    }
-    created() {
-      this[dartx.media] = null;
-      this[dartx.sizes] = null;
-      this[dartx.src] = null;
-      this[dartx.srcset] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    set [dartx.media](value) {
-      this.media = value;
-    }
-    get [dartx.sizes]() {
-      return this.sizes;
-    }
-    set [dartx.sizes](value) {
-      this.sizes = value;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.srcset]() {
-      return this.srcset;
-    }
-    set [dartx.srcset](value) {
-      this.srcset = value;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.SourceElement, 'created');
-  dart.setSignature(html$.SourceElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SourceElement, []),
-      new: dart.definiteFunctionType(html$.SourceElement, []),
-      created: dart.definiteFunctionType(html$.SourceElement, [])
-    }),
-    fields: () => ({
-      [dartx.media]: core.String,
-      [dartx.sizes]: core.String,
-      [dartx.src]: core.String,
-      [dartx.srcset]: core.String,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLSourceElement, html$.SourceElement);
-  dart.defineExtensionNames([
-    'facing',
-    'id',
-    'kind',
-    'label'
-  ]);
-  html$.SourceInfo = class SourceInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.facing]() {
-      return this.facing;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-  };
-  dart.setSignature(html$.SourceInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SourceInfo, [])}),
-    fields: () => ({
-      [dartx.facing]: core.String,
-      [dartx.id]: core.String,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.SourceInfo, html$.SourceInfo);
-  html$.SpanElement = class SpanElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.SpanElement._check(html$.document[dartx.createElement]("span"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.SpanElement, 'created');
-  dart.setSignature(html$.SpanElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpanElement, []),
-      new: dart.definiteFunctionType(html$.SpanElement, []),
-      created: dart.definiteFunctionType(html$.SpanElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLSpanElement, html$.SpanElement);
-  dart.defineExtensionNames([
-    'src',
-    'weight'
-  ]);
-  html$.SpeechGrammar = class SpeechGrammar extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.SpeechGrammar._create_1();
-    }
-    static _create_1() {
-      return new self.SpeechGrammar();
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.weight]() {
-      return this.weight;
-    }
-    set [dartx.weight](value) {
-      this.weight = value;
-    }
-  };
-  dart.setSignature(html$.SpeechGrammar, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpeechGrammar, []),
-      new: dart.definiteFunctionType(html$.SpeechGrammar, [])
-    }),
-    fields: () => ({
-      [dartx.src]: core.String,
-      [dartx.weight]: core.num
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.SpeechGrammar, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.SpeechGrammar, html$.SpeechGrammar);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'addFromString',
-    'addFromUri',
-    'item'
-  ]);
-  html$.SpeechGrammarList = class SpeechGrammarList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.SpeechGrammar), html$.ImmutableListMixin$(html$.SpeechGrammar)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.SpeechGrammarList._create_1();
-    }
-    static _create_1() {
-      return new self.SpeechGrammarList();
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.addFromString](...args) {
-      return this.addFromString.apply(this, args);
-    }
-    [dartx.addFromUri](...args) {
-      return this.addFromUri.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.SpeechGrammarList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechGrammar()];
-  dart.setSignature(html$.SpeechGrammarList, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpeechGrammarList, []),
-      new: dart.definiteFunctionType(html$.SpeechGrammarList, [])
-    }),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.SpeechGrammar, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SpeechGrammar]),
-      [dartx.addFromString]: dart.definiteFunctionType(dart.void, [core.String], [core.num]),
-      [dartx.addFromUri]: dart.definiteFunctionType(dart.void, [core.String], [core.num]),
-      [dartx.item]: dart.definiteFunctionType(html$.SpeechGrammar, [core.int])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.SpeechGrammarList, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.SpeechGrammarList, html$.SpeechGrammarList);
-  dart.defineExtensionNames([
-    'abort',
-    'start',
-    'stop',
-    'onAudioEnd',
-    'onAudioStart',
-    'onEnd',
-    'onError',
-    'onNoMatch',
-    'onResult',
-    'onSoundEnd',
-    'onSoundStart',
-    'onSpeechEnd',
-    'onSpeechStart',
-    'onStart',
-    'audioTrack',
-    'continuous',
-    'grammars',
-    'interimResults',
-    'lang',
-    'maxAlternatives',
-    'serviceUri'
-  ]);
-  html$.SpeechRecognition = class SpeechRecognition extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!(window.SpeechRecognition || window.webkitSpeechRecognition);
-    }
-    get [dartx.audioTrack]() {
-      return this.audioTrack;
-    }
-    set [dartx.audioTrack](value) {
-      this.audioTrack = value;
-    }
-    get [dartx.continuous]() {
-      return this.continuous;
-    }
-    set [dartx.continuous](value) {
-      this.continuous = value;
-    }
-    get [dartx.grammars]() {
-      return this.grammars;
-    }
-    set [dartx.grammars](value) {
-      this.grammars = value;
-    }
-    get [dartx.interimResults]() {
-      return this.interimResults;
-    }
-    set [dartx.interimResults](value) {
-      this.interimResults = value;
-    }
-    get [dartx.lang]() {
-      return this.lang;
-    }
-    set [dartx.lang](value) {
-      this.lang = value;
-    }
-    get [dartx.maxAlternatives]() {
-      return this.maxAlternatives;
-    }
-    set [dartx.maxAlternatives](value) {
-      this.maxAlternatives = value;
-    }
-    get [dartx.serviceUri]() {
-      return this.serviceURI;
-    }
-    set [dartx.serviceUri](value) {
-      this.serviceURI = value;
-    }
-    [dartx.abort](...args) {
-      return this.abort.apply(this, args);
-    }
-    [dartx.start](...args) {
-      return this.start.apply(this, args);
-    }
-    [dartx.stop](...args) {
-      return this.stop.apply(this, args);
-    }
-    get [dartx.onAudioEnd]() {
-      return html$.SpeechRecognition.audioEndEvent.forTarget(this);
-    }
-    get [dartx.onAudioStart]() {
-      return html$.SpeechRecognition.audioStartEvent.forTarget(this);
-    }
-    get [dartx.onEnd]() {
-      return html$.SpeechRecognition.endEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.SpeechRecognition.errorEvent.forTarget(this);
-    }
-    get [dartx.onNoMatch]() {
-      return html$.SpeechRecognition.noMatchEvent.forTarget(this);
-    }
-    get [dartx.onResult]() {
-      return html$.SpeechRecognition.resultEvent.forTarget(this);
-    }
-    get [dartx.onSoundEnd]() {
-      return html$.SpeechRecognition.soundEndEvent.forTarget(this);
-    }
-    get [dartx.onSoundStart]() {
-      return html$.SpeechRecognition.soundStartEvent.forTarget(this);
-    }
-    get [dartx.onSpeechEnd]() {
-      return html$.SpeechRecognition.speechEndEvent.forTarget(this);
-    }
-    get [dartx.onSpeechStart]() {
-      return html$.SpeechRecognition.speechStartEvent.forTarget(this);
-    }
-    get [dartx.onStart]() {
-      return html$.SpeechRecognition.startEvent.forTarget(this);
-    }
-    static new() {
-      return new (window.SpeechRecognition || window.webkitSpeechRecognition)();
-    }
-  };
-  dart.setSignature(html$.SpeechRecognition, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpeechRecognition, []),
-      new: dart.definiteFunctionType(html$.SpeechRecognition, [])
-    }),
-    fields: () => ({
-      [dartx.audioTrack]: html$.MediaStreamTrack,
-      [dartx.continuous]: core.bool,
-      [dartx.grammars]: html$.SpeechGrammarList,
-      [dartx.interimResults]: core.bool,
-      [dartx.lang]: core.String,
-      [dartx.maxAlternatives]: core.int,
-      [dartx.serviceUri]: core.String
-    }),
-    getters: () => ({
-      [dartx.onAudioEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onAudioStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionError), []),
-      [dartx.onNoMatch]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionEvent), []),
-      [dartx.onResult]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionEvent), []),
-      [dartx.onSoundEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSoundStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSpeechEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSpeechStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-      [dartx.start]: dart.definiteFunctionType(dart.void, []),
-      [dartx.stop]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      audioEndEvent: EventStreamProviderOfEvent(),
-      audioStartEvent: EventStreamProviderOfEvent(),
-      endEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfSpeechRecognitionError(),
-      noMatchEvent: EventStreamProviderOfSpeechRecognitionEvent(),
-      resultEvent: EventStreamProviderOfSpeechRecognitionEvent(),
-      soundEndEvent: EventStreamProviderOfEvent(),
-      soundStartEvent: EventStreamProviderOfEvent(),
-      speechEndEvent: EventStreamProviderOfEvent(),
-      speechStartEvent: EventStreamProviderOfEvent(),
-      startEvent: EventStreamProviderOfEvent()
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.defineLazy(html$.SpeechRecognition, {
-    get audioEndEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('audioend'));
-    },
-    get audioStartEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('audiostart'));
-    },
-    get endEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('end'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechRecognitionError())('error'));
-    },
-    get noMatchEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechRecognitionEvent())('nomatch'));
-    },
-    get resultEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechRecognitionEvent())('result'));
-    },
-    get soundEndEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('soundend'));
-    },
-    get soundStartEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('soundstart'));
-    },
-    get speechEndEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('speechend'));
-    },
-    get speechStartEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('speechstart'));
-    },
-    get startEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('start'));
-    }
-  });
-  dart.registerExtension(dart.global.SpeechRecognition, html$.SpeechRecognition);
-  dart.defineExtensionNames([
-    'confidence',
-    'transcript'
-  ]);
-  html$.SpeechRecognitionAlternative = class SpeechRecognitionAlternative extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.confidence]() {
-      return this.confidence;
-    }
-    get [dartx.transcript]() {
-      return this.transcript;
-    }
-  };
-  dart.setSignature(html$.SpeechRecognitionAlternative, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SpeechRecognitionAlternative, [])}),
-    fields: () => ({
-      [dartx.confidence]: core.double,
-      [dartx.transcript]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.SpeechRecognitionAlternative, html$.SpeechRecognitionAlternative);
-  dart.defineExtensionNames([
-    'error',
-    'message'
-  ]);
-  html$.SpeechRecognitionError = class SpeechRecognitionError extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, initDict) {
-      if (initDict === void 0) initDict = null;
-      if (initDict != null) {
-        let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
-        return html$.SpeechRecognitionError._create_1(type, initDict_1);
-      }
-      return html$.SpeechRecognitionError._create_2(type);
-    }
-    static _create_1(type, initDict) {
-      return new self.SpeechRecognitionError(type, initDict);
-    }
-    static _create_2(type) {
-      return new self.SpeechRecognitionError(type);
-    }
-    get [dartx.error]() {
-      return this.error;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-  };
-  dart.setSignature(html$.SpeechRecognitionError, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpeechRecognitionError, []),
-      new: dart.definiteFunctionType(html$.SpeechRecognitionError, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.error]: core.String,
-      [dartx.message]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.SpeechRecognitionError, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.SpeechRecognitionError, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.SpeechRecognitionError, html$.SpeechRecognitionError);
-  dart.defineExtensionNames([
-    'emma',
-    'interpretation',
-    'resultIndex',
-    'results'
-  ]);
-  html$.SpeechRecognitionEvent = class SpeechRecognitionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, initDict) {
-      if (initDict === void 0) initDict = null;
-      if (initDict != null) {
-        let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
-        return html$.SpeechRecognitionEvent._create_1(type, initDict_1);
-      }
-      return html$.SpeechRecognitionEvent._create_2(type);
-    }
-    static _create_1(type, initDict) {
-      return new self.SpeechRecognitionEvent(type, initDict);
-    }
-    static _create_2(type) {
-      return new self.SpeechRecognitionEvent(type);
-    }
-    get [dartx.emma]() {
-      return this.emma;
-    }
-    get [dartx.interpretation]() {
-      return this.interpretation;
-    }
-    get [dartx.resultIndex]() {
-      return this.resultIndex;
-    }
-    get [dartx.results]() {
-      return this.results;
-    }
-  };
-  dart.setSignature(html$.SpeechRecognitionEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpeechRecognitionEvent, []),
-      new: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.emma]: html$.Document,
-      [dartx.interpretation]: html$.Document,
-      [dartx.resultIndex]: core.int,
-      [dartx.results]: ListOfSpeechRecognitionResult()
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.SpeechRecognitionEvent, html$.SpeechRecognitionEvent);
-  dart.defineExtensionNames([
-    'item',
-    'isFinal',
-    'length'
-  ]);
-  html$.SpeechRecognitionResult = class SpeechRecognitionResult extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.isFinal]() {
-      return this.isFinal;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.SpeechRecognitionResult, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SpeechRecognitionResult, [])}),
-    fields: () => ({
-      [dartx.isFinal]: core.bool,
-      [dartx.length]: core.int
-    }),
-    methods: () => ({[dartx.item]: dart.definiteFunctionType(html$.SpeechRecognitionAlternative, [core.int])})
-  });
-  dart.registerExtension(dart.global.SpeechRecognitionResult, html$.SpeechRecognitionResult);
-  dart.defineExtensionNames([
-    'cancel',
-    'getVoices',
-    'pause',
-    'resume',
-    'speak',
-    'paused',
-    'pending',
-    'speaking'
-  ]);
-  html$.SpeechSynthesis = class SpeechSynthesis extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.paused]() {
-      return this.paused;
-    }
-    get [dartx.pending]() {
-      return this.pending;
-    }
-    get [dartx.speaking]() {
-      return this.speaking;
-    }
-    [dartx.cancel](...args) {
-      return this.cancel.apply(this, args);
-    }
-    [dartx.getVoices](...args) {
-      return this.getVoices.apply(this, args);
-    }
-    [dartx.pause](...args) {
-      return this.pause.apply(this, args);
-    }
-    [dartx.resume](...args) {
-      return this.resume.apply(this, args);
-    }
-    [dartx.speak](...args) {
-      return this.speak.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.SpeechSynthesis, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesis, [])}),
-    fields: () => ({
-      [dartx.paused]: core.bool,
-      [dartx.pending]: core.bool,
-      [dartx.speaking]: core.bool
-    }),
-    methods: () => ({
-      [dartx.cancel]: dart.definiteFunctionType(dart.void, []),
-      [dartx.getVoices]: dart.definiteFunctionType(core.List$(html$.SpeechSynthesisVoice), []),
-      [dartx.pause]: dart.definiteFunctionType(dart.void, []),
-      [dartx.resume]: dart.definiteFunctionType(dart.void, []),
-      [dartx.speak]: dart.definiteFunctionType(dart.void, [html$.SpeechSynthesisUtterance])
-    })
-  });
-  dart.registerExtension(dart.global.SpeechSynthesis, html$.SpeechSynthesis);
-  dart.defineExtensionNames([
-    'charIndex',
-    'elapsedTime',
-    'name',
-    'utterance'
-  ]);
-  html$.SpeechSynthesisEvent = class SpeechSynthesisEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.charIndex]() {
-      return this.charIndex;
-    }
-    get [dartx.elapsedTime]() {
-      return this.elapsedTime;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.utterance]() {
-      return this.utterance;
-    }
-  };
-  dart.setSignature(html$.SpeechSynthesisEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesisEvent, [])}),
-    fields: () => ({
-      [dartx.charIndex]: core.int,
-      [dartx.elapsedTime]: core.double,
-      [dartx.name]: core.String,
-      [dartx.utterance]: html$.SpeechSynthesisUtterance
-    })
-  });
-  dart.registerExtension(dart.global.SpeechSynthesisEvent, html$.SpeechSynthesisEvent);
-  dart.defineExtensionNames([
-    'onBoundary',
-    'onEnd',
-    'onError',
-    'onMark',
-    'onPause',
-    'onResume',
-    'onStart',
-    'lang',
-    'pitch',
-    'rate',
-    'text',
-    'voice',
-    'volume'
-  ]);
-  html$.SpeechSynthesisUtterance = class SpeechSynthesisUtterance extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(text) {
-      if (text === void 0) text = null;
-      if (text != null) {
-        return html$.SpeechSynthesisUtterance._create_1(text);
-      }
-      return html$.SpeechSynthesisUtterance._create_2();
-    }
-    static _create_1(text) {
-      return new self.SpeechSynthesisUtterance(text);
-    }
-    static _create_2() {
-      return new self.SpeechSynthesisUtterance();
-    }
-    get [dartx.lang]() {
-      return this.lang;
-    }
-    set [dartx.lang](value) {
-      this.lang = value;
-    }
-    get [dartx.pitch]() {
-      return this.pitch;
-    }
-    set [dartx.pitch](value) {
-      this.pitch = value;
-    }
-    get [dartx.rate]() {
-      return this.rate;
-    }
-    set [dartx.rate](value) {
-      this.rate = value;
-    }
-    get [dartx.text]() {
-      return this.text;
-    }
-    set [dartx.text](value) {
-      this.text = value;
-    }
-    get [dartx.voice]() {
-      return this.voice;
-    }
-    set [dartx.voice](value) {
-      this.voice = value;
-    }
-    get [dartx.volume]() {
-      return this.volume;
-    }
-    set [dartx.volume](value) {
-      this.volume = value;
-    }
-    get [dartx.onBoundary]() {
-      return html$.SpeechSynthesisUtterance.boundaryEvent.forTarget(this);
-    }
-    get [dartx.onEnd]() {
-      return html$.SpeechSynthesisUtterance.endEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.SpeechSynthesisUtterance.errorEvent.forTarget(this);
-    }
-    get [dartx.onMark]() {
-      return html$.SpeechSynthesisUtterance.markEvent.forTarget(this);
-    }
-    get [dartx.onPause]() {
-      return html$.SpeechSynthesisUtterance.pauseEvent.forTarget(this);
-    }
-    get [dartx.onResume]() {
-      return html$.SpeechSynthesisUtterance.resumeEvent.forTarget(this);
-    }
-    get [dartx.onStart]() {
-      return html$.SpeechSynthesisUtterance.startEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.SpeechSynthesisUtterance, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, []),
-      new: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [], [core.String])
-    }),
-    fields: () => ({
-      [dartx.lang]: core.String,
-      [dartx.pitch]: core.num,
-      [dartx.rate]: core.num,
-      [dartx.text]: core.String,
-      [dartx.voice]: html$.SpeechSynthesisVoice,
-      [dartx.volume]: core.num
-    }),
-    getters: () => ({
-      [dartx.onBoundary]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
-      [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMark]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
-      [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onResume]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
-      [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), [])
-    }),
-    sfields: () => ({
-      boundaryEvent: EventStreamProviderOfSpeechSynthesisEvent(),
-      endEvent: EventStreamProviderOfSpeechSynthesisEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      markEvent: EventStreamProviderOfSpeechSynthesisEvent(),
-      pauseEvent: EventStreamProviderOfEvent(),
-      resumeEvent: EventStreamProviderOfSpeechSynthesisEvent(),
-      startEvent: EventStreamProviderOfSpeechSynthesisEvent()
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.defineLazy(html$.SpeechSynthesisUtterance, {
-    get boundaryEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('boundary'));
-    },
-    get endEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('end'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get markEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('mark'));
-    },
-    get pauseEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pause'));
-    },
-    get resumeEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('resume'));
-    },
-    get startEvent() {
-      return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('start'));
-    }
-  });
-  dart.registerExtension(dart.global.SpeechSynthesisUtterance, html$.SpeechSynthesisUtterance);
-  dart.defineExtensionNames([
-    'defaultValue',
-    'lang',
-    'localService',
-    'name',
-    'voiceUri'
-  ]);
-  html$.SpeechSynthesisVoice = class SpeechSynthesisVoice extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.defaultValue]() {
-      return this.default;
-    }
-    get [dartx.lang]() {
-      return this.lang;
-    }
-    get [dartx.localService]() {
-      return this.localService;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.voiceUri]() {
-      return this.voiceURI;
-    }
-  };
-  dart.setSignature(html$.SpeechSynthesisVoice, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesisVoice, [])}),
-    fields: () => ({
-      [dartx.defaultValue]: core.bool,
-      [dartx.lang]: core.String,
-      [dartx.localService]: core.bool,
-      [dartx.name]: core.String,
-      [dartx.voiceUri]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.SpeechSynthesisVoice, html$.SpeechSynthesisVoice);
-  dart.defineExtensionNames([
-    'name'
-  ]);
-  html$.StashedMessagePort = class StashedMessagePort extends html$.MessagePort {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-  };
-  dart.setSignature(html$.StashedMessagePort, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.StashedMessagePort, [])}),
-    fields: () => ({[dartx.name]: core.String})
-  });
-  dart.registerExtension(dart.global.StashedMessagePort, html$.StashedMessagePort);
-  dart.defineExtensionNames([
-    'add',
-    'onMessage'
-  ]);
-  html$.StashedPortCollection = class StashedPortCollection extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.add](...args) {
-      return this.add.apply(this, args);
-    }
-    get [dartx.onMessage]() {
-      return html$.StashedPortCollection.messageEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.StashedPortCollection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.StashedPortCollection, [])}),
-    getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
-    methods: () => ({[dartx.add]: dart.definiteFunctionType(html$.StashedMessagePort, [core.String, html$.MessagePort])}),
-    sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
-  });
-  dart.defineLazy(html$.StashedPortCollection, {
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.StashedPortCollection, html$.StashedPortCollection);
-  const _getItem = Symbol('_getItem');
-  const _setItem = Symbol('_setItem');
-  const _removeItem = Symbol('_removeItem');
-  const _key = Symbol('_key');
-  const _length$3 = Symbol('_length');
-  const __delete__ = Symbol('__delete__');
-  dart.defineExtensionNames([
-    'addAll',
-    'containsValue',
-    'containsKey',
-    '_get',
-    '_set',
-    'putIfAbsent',
-    'remove',
-    'clear',
-    'forEach',
-    'keys',
-    'values',
-    'length',
-    'isEmpty',
-    'isNotEmpty'
-  ]);
-  html$.Storage = class Storage extends _interceptors.Interceptor {
-    [dartx.addAll](other) {
-      other[dartx.forEach](dart.fn((k, v) => {
-        this[dartx._set](k, v);
-      }, StringAndStringToNull()));
-    }
-    [dartx.containsValue](value) {
-      return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool$()));
-    }
-    [dartx.containsKey](key) {
-      return this[_getItem](core.String._check(key)) != null;
-    }
-    [dartx._get](key) {
-      return this[_getItem](core.String._check(key));
-    }
-    [dartx._set](key, value) {
-      this[_setItem](key, value);
-      return value;
-    }
-    [dartx.putIfAbsent](key, ifAbsent) {
-      if (!dart.test(this[dartx.containsKey](key))) this[dartx._set](key, ifAbsent());
-      return this[dartx._get](key);
-    }
-    [dartx.remove](key) {
-      let value = this[dartx._get](key);
-      this[_removeItem](core.String._check(key));
-      return value;
-    }
-    [dartx.clear]() {
-      return this[_clear$1]();
-    }
-    [dartx.forEach](f) {
-      for (let i = 0; true; i++) {
-        let key = this[_key](i);
-        if (key == null) return;
-        f(key, this[dartx._get](key));
-      }
-    }
-    get [dartx.keys]() {
-      let keys = JSArrayOfString().of([]);
-      this[dartx.forEach](dart.fn((k, v) => keys[dartx.add](k), StringAndStringTovoid$()));
-      return keys;
-    }
-    get [dartx.values]() {
-      let values = JSArrayOfString().of([]);
-      this[dartx.forEach](dart.fn((k, v) => values[dartx.add](v), StringAndStringTovoid$()));
-      return values;
-    }
-    get [dartx.length]() {
-      return this[_length$3];
-    }
-    get [dartx.isEmpty]() {
-      return this[_key](0) == null;
-    }
-    get [dartx.isNotEmpty]() {
-      return !dart.test(this[dartx.isEmpty]);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [_length$3]() {
-      return this.length;
-    }
-    [__delete__](...args) {
-      return this.__delete__.apply(this, args);
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [__setter__](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [_clear$1](...args) {
-      return this.clear.apply(this, args);
-    }
-    [_getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [_key](...args) {
-      return this.key.apply(this, args);
-    }
-    [_removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [_setItem](...args) {
-      return this.setItem.apply(this, args);
-    }
-  };
-  html$.Storage[dart.implements] = () => [MapOfString$String()];
-  dart.setSignature(html$.Storage, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Storage, [])}),
-    fields: () => ({[_length$3]: core.int}),
-    getters: () => ({
-      [dartx.keys]: dart.definiteFunctionType(core.Iterable$(core.String), []),
-      [dartx.values]: dart.definiteFunctionType(core.Iterable$(core.String), []),
-      [dartx.length]: dart.definiteFunctionType(core.int, []),
-      [dartx.isEmpty]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isNotEmpty]: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      [dartx.addAll]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
-      [dartx.containsValue]: dart.definiteFunctionType(core.bool, [core.Object]),
-      [dartx.containsKey]: dart.definiteFunctionType(core.bool, [core.Object]),
-      [dartx._get]: dart.definiteFunctionType(core.String, [core.Object]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.putIfAbsent]: dart.definiteFunctionType(core.String, [core.String, VoidToString()]),
-      [dartx.remove]: dart.definiteFunctionType(core.String, [core.Object]),
-      [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-      [dartx.forEach]: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()]),
-      [__delete__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-      [__getter__]: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String]),
-      [_clear$1]: dart.definiteFunctionType(dart.void, []),
-      [_getItem]: dart.definiteFunctionType(core.String, [core.String]),
-      [_key]: dart.definiteFunctionType(core.String, [core.int]),
-      [_removeItem]: dart.definiteFunctionType(dart.void, [core.String]),
-      [_setItem]: dart.definiteFunctionType(dart.void, [core.String, core.String])
-    })
-  });
-  dart.registerExtension(dart.global.Storage, html$.Storage);
-  html$.StorageErrorCallback = dart.typedef('StorageErrorCallback', () => dart.functionType(dart.void, [html$.DomError]));
-  const _initStorageEvent = Symbol('_initStorageEvent');
-  dart.defineExtensionNames([
-    'key',
-    'newValue',
-    'oldValue',
-    'storageArea',
-    'url'
-  ]);
-  html$.StorageEvent = class StorageEvent extends html$.Event {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
-      let key = opts && 'key' in opts ? opts.key : null;
-      let oldValue = opts && 'oldValue' in opts ? opts.oldValue : null;
-      let newValue = opts && 'newValue' in opts ? opts.newValue : null;
-      let url = opts && 'url' in opts ? opts.url : null;
-      let storageArea = opts && 'storageArea' in opts ? opts.storageArea : null;
-      let e = html$.StorageEvent._check(html$.document[_createEvent]("StorageEvent"));
-      e[_initStorageEvent](type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
-      return e;
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.StorageEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.StorageEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.StorageEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.StorageEvent(type);
-    }
-    get [dartx.key]() {
-      return this.key;
-    }
-    get [dartx.newValue]() {
-      return this.newValue;
-    }
-    get [dartx.oldValue]() {
-      return this.oldValue;
-    }
-    get [dartx.storageArea]() {
-      return this.storageArea;
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-    [_initStorageEvent](...args) {
-      return this.initStorageEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.StorageEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.StorageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, key: core.String, oldValue: core.String, newValue: core.String, url: core.String, storageArea: html$.Storage}),
-      _: dart.definiteFunctionType(html$.StorageEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.key]: core.String,
-      [dartx.newValue]: core.String,
-      [dartx.oldValue]: core.String,
-      [dartx.storageArea]: html$.Storage,
-      [dartx.url]: core.String
-    }),
-    methods: () => ({[_initStorageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String, core.String, core.String, html$.Storage])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.StorageEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.StorageEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.StorageEvent, html$.StorageEvent);
-  dart.defineExtensionNames([
-    'quota',
-    'usage'
-  ]);
-  html$.StorageInfo = class StorageInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.quota]() {
-      return this.quota;
-    }
-    get [dartx.usage]() {
-      return this.usage;
-    }
-  };
-  dart.setSignature(html$.StorageInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.StorageInfo, [])}),
-    fields: () => ({
-      [dartx.quota]: core.int,
-      [dartx.usage]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.StorageInfo, html$.StorageInfo);
-  dart.defineExtensionNames([
-    'queryInfo',
-    'requestPersistentQuota',
-    'supportedTypes'
-  ]);
-  html$.StorageQuota = class StorageQuota extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.supportedTypes]() {
-      return this.supportedTypes;
-    }
-    [dartx.queryInfo](...args) {
-      return this.queryInfo.apply(this, args);
-    }
-    [dartx.requestPersistentQuota](...args) {
-      return this.requestPersistentQuota.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.StorageQuota, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.StorageQuota, [])}),
-    fields: () => ({[dartx.supportedTypes]: ListOfString()}),
-    methods: () => ({
-      [dartx.queryInfo]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.requestPersistentQuota]: dart.definiteFunctionType(async.Future, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.StorageQuota, html$.StorageQuota);
-  html$.StorageQuotaCallback = dart.typedef('StorageQuotaCallback', () => dart.functionType(dart.void, [core.int]));
-  html$.StorageUsageCallback = dart.typedef('StorageUsageCallback', () => dart.functionType(dart.void, [core.int, core.int]));
-  html$._StringCallback = dart.typedef('_StringCallback', () => dart.functionType(dart.void, [core.String]));
-  dart.defineExtensionNames([
-    'disabled',
-    'media',
-    'sheet',
-    'type'
-  ]);
-  html$.StyleElement = class StyleElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.StyleElement._check(html$.document[dartx.createElement]("style"));
-    }
-    created() {
-      this[dartx.disabled] = null;
-      this[dartx.media] = null;
-      this[dartx.sheet] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    set [dartx.media](value) {
-      this.media = value;
-    }
-    get [dartx.sheet]() {
-      return this.sheet;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.StyleElement, 'created');
-  dart.setSignature(html$.StyleElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.StyleElement, []),
-      new: dart.definiteFunctionType(html$.StyleElement, []),
-      created: dart.definiteFunctionType(html$.StyleElement, [])
-    }),
-    fields: () => ({
-      [dartx.disabled]: core.bool,
-      [dartx.media]: core.String,
-      [dartx.sheet]: html$.StyleSheet,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.HTMLStyleElement, html$.StyleElement);
-  dart.defineExtensionNames([
-    'matchMedium',
-    'type'
-  ]);
-  html$.StyleMedia = class StyleMedia extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.matchMedium](...args) {
-      return this.matchMedium.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.StyleMedia, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.StyleMedia, [])}),
-    fields: () => ({[dartx.type]: core.String}),
-    methods: () => ({[dartx.matchMedium]: dart.definiteFunctionType(core.bool, [core.String])})
-  });
-  dart.registerExtension(dart.global.StyleMedia, html$.StyleMedia);
-  dart.defineExtensionNames([
-    'registration'
-  ]);
-  html$.SyncEvent = class SyncEvent extends html$.ExtendableEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, init) {
-      let init_1 = html_common.convertDartToNative_Dictionary(init);
-      return html$.SyncEvent._create_1(type, init_1);
-    }
-    static _create_1(type, init) {
-      return new self.SyncEvent(type, init);
-    }
-    get [dartx.registration]() {
-      return this.registration;
-    }
-  };
-  dart.setSignature(html$.SyncEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.SyncEvent, []),
-      new: dart.definiteFunctionType(html$.SyncEvent, [core.String, core.Map])
-    }),
-    fields: () => ({[dartx.registration]: html$.SyncRegistration}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.SyncEvent, [dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.SyncEvent, html$.SyncEvent);
-  dart.defineExtensionNames([
-    'getRegistration',
-    'getRegistrations',
-    'permissionState',
-    'register'
-  ]);
-  html$.SyncManager = class SyncManager extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getRegistration](...args) {
-      return this.getRegistration.apply(this, args);
-    }
-    [dartx.getRegistrations](...args) {
-      return this.getRegistrations.apply(this, args);
-    }
-    [dartx.permissionState](...args) {
-      return this.permissionState.apply(this, args);
-    }
-    [dartx.register](options) {
-      if (options === void 0) options = null;
-      if (options != null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options);
-        return this[_register_1](options_1);
-      }
-      return this[_register_2]();
-    }
-    [_register_1](...args) {
-      return this.register.apply(this, args);
-    }
-    [_register_2](...args) {
-      return this.register.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.SyncManager, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SyncManager, [])}),
-    methods: () => ({
-      [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [core.String]),
-      [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
-      [dartx.permissionState]: dart.definiteFunctionType(async.Future, []),
-      [dartx.register]: dart.definiteFunctionType(async.Future, [], [core.Map]),
-      [_register_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [_register_2]: dart.definiteFunctionType(async.Future, [])
-    })
-  });
-  dart.registerExtension(dart.global.SyncManager, html$.SyncManager);
-  dart.defineExtensionNames([
-    'unregister',
-    'tag'
-  ]);
-  html$.SyncRegistration = class SyncRegistration extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.tag]() {
-      return this.tag;
-    }
-    [dartx.unregister](...args) {
-      return this.unregister.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.SyncRegistration, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.SyncRegistration, [])}),
-    fields: () => ({[dartx.tag]: core.String}),
-    methods: () => ({[dartx.unregister]: dart.definiteFunctionType(async.Future, [])})
-  });
-  dart.registerExtension(dart.global.SyncRegistration, html$.SyncRegistration);
-  html$.TableCaptionElement = class TableCaptionElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TableCaptionElement._check(html$.document[dartx.createElement]("caption"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.TableCaptionElement, 'created');
-  dart.setSignature(html$.TableCaptionElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TableCaptionElement, []),
-      new: dart.definiteFunctionType(html$.TableCaptionElement, []),
-      created: dart.definiteFunctionType(html$.TableCaptionElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTableCaptionElement, html$.TableCaptionElement);
-  dart.defineExtensionNames([
-    'cellIndex',
-    'colSpan',
-    'headers',
-    'rowSpan'
-  ]);
-  html$.TableCellElement = class TableCellElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TableCellElement._check(html$.document[dartx.createElement]("td"));
-    }
-    created() {
-      this[dartx.cellIndex] = null;
-      this[dartx.colSpan] = null;
-      this[dartx.headers] = null;
-      this[dartx.rowSpan] = null;
-      super.created();
-    }
-    get [dartx.cellIndex]() {
-      return this.cellIndex;
-    }
-    get [dartx.colSpan]() {
-      return this.colSpan;
-    }
-    set [dartx.colSpan](value) {
-      this.colSpan = value;
-    }
-    get [dartx.headers]() {
-      return this.headers;
-    }
-    set [dartx.headers](value) {
-      this.headers = value;
-    }
-    get [dartx.rowSpan]() {
-      return this.rowSpan;
-    }
-    set [dartx.rowSpan](value) {
-      this.rowSpan = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.TableCellElement, 'created');
-  dart.setSignature(html$.TableCellElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TableCellElement, []),
-      new: dart.definiteFunctionType(html$.TableCellElement, []),
-      created: dart.definiteFunctionType(html$.TableCellElement, [])
-    }),
-    fields: () => ({
-      [dartx.cellIndex]: core.int,
-      [dartx.colSpan]: core.int,
-      [dartx.headers]: core.String,
-      [dartx.rowSpan]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTableCellElement, html$.TableCellElement);
-  dart.registerExtension(dart.global.HTMLTableDataCellElement, html$.TableCellElement);
-  dart.registerExtension(dart.global.HTMLTableHeaderCellElement, html$.TableCellElement);
-  dart.defineExtensionNames([
-    'span'
-  ]);
-  html$.TableColElement = class TableColElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TableColElement._check(html$.document[dartx.createElement]("col"));
-    }
-    created() {
-      this[dartx.span] = null;
-      super.created();
-    }
-    get [dartx.span]() {
-      return this.span;
-    }
-    set [dartx.span](value) {
-      this.span = value;
-    }
-  };
-  dart.defineNamedConstructor(html$.TableColElement, 'created');
-  dart.setSignature(html$.TableColElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TableColElement, []),
-      new: dart.definiteFunctionType(html$.TableColElement, []),
-      created: dart.definiteFunctionType(html$.TableColElement, [])
-    }),
-    fields: () => ({[dartx.span]: core.int})
-  });
-  dart.registerExtension(dart.global.HTMLTableColElement, html$.TableColElement);
-  const _tBodies = Symbol('_tBodies');
-  const _rows = Symbol('_rows');
-  const _createCaption = Symbol('_createCaption');
-  const _createTBody = Symbol('_createTBody');
-  const _createTFoot = Symbol('_createTFoot');
-  const _createTHead = Symbol('_createTHead');
-  const _insertRow = Symbol('_insertRow');
-  const _nativeCreateTBody = Symbol('_nativeCreateTBody');
-  dart.defineExtensionNames([
-    'tBodies',
-    'rows',
-    'addRow',
-    'createCaption',
-    'createTBody',
-    'createTFoot',
-    'createTHead',
-    'insertRow',
-    'createFragment',
-    'deleteCaption',
-    'deleteRow',
-    'deleteTFoot',
-    'deleteTHead',
-    'caption',
-    'tFoot',
-    'tHead'
-  ]);
-  html$.TableElement = class TableElement extends html$.HtmlElement {
-    get [dartx.tBodies]() {
-      return new (_WrappedListOfTableSectionElement())(this[_tBodies]);
-    }
-    get [dartx.rows]() {
-      return new (_WrappedListOfTableRowElement())(this[_rows]);
-    }
-    [dartx.addRow]() {
-      return this[dartx.insertRow](-1);
-    }
-    [dartx.createCaption]() {
-      return html$.TableCaptionElement._check(this[_createCaption]());
-    }
-    [dartx.createTBody]() {
-      return this[_createTBody]();
-    }
-    [dartx.createTFoot]() {
-      return html$.TableSectionElement._check(this[_createTFoot]());
-    }
-    [dartx.createTHead]() {
-      return html$.TableSectionElement._check(this[_createTHead]());
-    }
-    [dartx.insertRow](index) {
-      return html$.TableRowElement._check(this[_insertRow](index));
-    }
-    [_createTBody]() {
-      if (!!this.createTBody) {
-        return this[_nativeCreateTBody]();
-      }
-      let tbody = html$.Element.tag('tbody');
-      this[dartx.children][dartx.add](tbody);
-      return html$.TableSectionElement._check(tbody);
-    }
-    [_nativeCreateTBody](...args) {
-      return this.createTBody.apply(this, args);
-    }
-    [dartx.createFragment](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (dart.test(html$.Range.supportsCreateContextualFragment)) {
-        return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-      }
-      let contextualHtml = dart.str`<table>${html}</table>`;
-      let table = html$.Element.html(contextualHtml, {validator: validator, treeSanitizer: treeSanitizer});
-      let fragment = html$.DocumentFragment.new();
-      fragment[dartx.nodes][dartx.addAll](table[dartx.nodes]);
-      return fragment;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TableElement._check(html$.document[dartx.createElement]("table"));
-    }
-    created() {
-      this[dartx.caption] = null;
-      this[_rows] = null;
-      this[_tBodies] = null;
-      this[dartx.tFoot] = null;
-      this[dartx.tHead] = null;
-      super.created();
-    }
-    get [dartx.caption]() {
-      return this.caption;
-    }
-    set [dartx.caption](value) {
-      this.caption = value;
-    }
-    get [_rows]() {
-      return this.rows;
-    }
-    get [_tBodies]() {
-      return this.tBodies;
-    }
-    get [dartx.tFoot]() {
-      return this.tFoot;
-    }
-    set [dartx.tFoot](value) {
-      this.tFoot = value;
-    }
-    get [dartx.tHead]() {
-      return this.tHead;
-    }
-    set [dartx.tHead](value) {
-      this.tHead = value;
-    }
-    [_createCaption](...args) {
-      return this.createCaption.apply(this, args);
-    }
-    [_createTFoot](...args) {
-      return this.createTFoot.apply(this, args);
-    }
-    [_createTHead](...args) {
-      return this.createTHead.apply(this, args);
-    }
-    [dartx.deleteCaption](...args) {
-      return this.deleteCaption.apply(this, args);
-    }
-    [dartx.deleteRow](...args) {
-      return this.deleteRow.apply(this, args);
-    }
-    [dartx.deleteTFoot](...args) {
-      return this.deleteTFoot.apply(this, args);
-    }
-    [dartx.deleteTHead](...args) {
-      return this.deleteTHead.apply(this, args);
-    }
-    [_insertRow](...args) {
-      return this.insertRow.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.TableElement, 'created');
-  dart.setSignature(html$.TableElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TableElement, []),
-      new: dart.definiteFunctionType(html$.TableElement, []),
-      created: dart.definiteFunctionType(html$.TableElement, [])
-    }),
-    fields: () => ({
-      [dartx.caption]: html$.TableCaptionElement,
-      [_rows]: ListOfNode(),
-      [_tBodies]: ListOfNode(),
-      [dartx.tFoot]: html$.TableSectionElement,
-      [dartx.tHead]: html$.TableSectionElement
-    }),
-    getters: () => ({
-      [dartx.tBodies]: dart.definiteFunctionType(core.List$(html$.TableSectionElement), []),
-      [dartx.rows]: dart.definiteFunctionType(core.List$(html$.TableRowElement), [])
-    }),
-    methods: () => ({
-      [dartx.addRow]: dart.definiteFunctionType(html$.TableRowElement, []),
-      [dartx.createCaption]: dart.definiteFunctionType(html$.TableCaptionElement, []),
-      [dartx.createTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
-      [dartx.createTFoot]: dart.definiteFunctionType(html$.TableSectionElement, []),
-      [dartx.createTHead]: dart.definiteFunctionType(html$.TableSectionElement, []),
-      [dartx.insertRow]: dart.definiteFunctionType(html$.TableRowElement, [core.int]),
-      [_createTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
-      [_nativeCreateTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
-      [_createCaption]: dart.definiteFunctionType(html$.HtmlElement, []),
-      [_createTFoot]: dart.definiteFunctionType(html$.HtmlElement, []),
-      [_createTHead]: dart.definiteFunctionType(html$.HtmlElement, []),
-      [dartx.deleteCaption]: dart.definiteFunctionType(dart.void, []),
-      [dartx.deleteRow]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.deleteTFoot]: dart.definiteFunctionType(dart.void, []),
-      [dartx.deleteTHead]: dart.definiteFunctionType(dart.void, []),
-      [_insertRow]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTableElement, html$.TableElement);
-  const _cells = Symbol('_cells');
-  const _insertCell = Symbol('_insertCell');
-  dart.defineExtensionNames([
-    'cells',
-    'addCell',
-    'insertCell',
-    'createFragment',
-    'deleteCell',
-    'rowIndex',
-    'sectionRowIndex'
-  ]);
-  html$.TableRowElement = class TableRowElement extends html$.HtmlElement {
-    get [dartx.cells]() {
-      return new (_WrappedListOfTableCellElement())(this[_cells]);
-    }
-    [dartx.addCell]() {
-      return this[dartx.insertCell](-1);
-    }
-    [dartx.insertCell](index) {
-      return html$.TableCellElement._check(this[_insertCell](index));
-    }
-    [dartx.createFragment](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (dart.test(html$.Range.supportsCreateContextualFragment)) {
-        return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-      }
-      let fragment = html$.DocumentFragment.new();
-      let section = html$.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
-      let row = section[dartx.nodes][dartx.single];
-      fragment[dartx.nodes][dartx.addAll](row[dartx.nodes]);
-      return fragment;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TableRowElement._check(html$.document[dartx.createElement]("tr"));
-    }
-    created() {
-      this[_cells] = null;
-      this[dartx.rowIndex] = null;
-      this[dartx.sectionRowIndex] = null;
-      super.created();
-    }
-    get [_cells]() {
-      return this.cells;
-    }
-    get [dartx.rowIndex]() {
-      return this.rowIndex;
-    }
-    get [dartx.sectionRowIndex]() {
-      return this.sectionRowIndex;
-    }
-    [dartx.deleteCell](...args) {
-      return this.deleteCell.apply(this, args);
-    }
-    [_insertCell](...args) {
-      return this.insertCell.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.TableRowElement, 'created');
-  dart.setSignature(html$.TableRowElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TableRowElement, []),
-      new: dart.definiteFunctionType(html$.TableRowElement, []),
-      created: dart.definiteFunctionType(html$.TableRowElement, [])
-    }),
-    fields: () => ({
-      [_cells]: ListOfNode(),
-      [dartx.rowIndex]: core.int,
-      [dartx.sectionRowIndex]: core.int
-    }),
-    getters: () => ({[dartx.cells]: dart.definiteFunctionType(core.List$(html$.TableCellElement), [])}),
-    methods: () => ({
-      [dartx.addCell]: dart.definiteFunctionType(html$.TableCellElement, []),
-      [dartx.insertCell]: dart.definiteFunctionType(html$.TableCellElement, [core.int]),
-      [dartx.deleteCell]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_insertCell]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTableRowElement, html$.TableRowElement);
-  dart.defineExtensionNames([
-    'rows',
-    'addRow',
-    'insertRow',
-    'createFragment',
-    'deleteRow'
-  ]);
-  html$.TableSectionElement = class TableSectionElement extends html$.HtmlElement {
-    get [dartx.rows]() {
-      return new (_WrappedListOfTableRowElement())(this[_rows]);
-    }
-    [dartx.addRow]() {
-      return this[dartx.insertRow](-1);
-    }
-    [dartx.insertRow](index) {
-      return html$.TableRowElement._check(this[_insertRow](index));
-    }
-    [dartx.createFragment](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (dart.test(html$.Range.supportsCreateContextualFragment)) {
-        return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-      }
-      let fragment = html$.DocumentFragment.new();
-      let section = html$.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
-      fragment[dartx.nodes][dartx.addAll](section[dartx.nodes]);
-      return fragment;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[_rows] = null;
-      super.created();
-    }
-    get [_rows]() {
-      return this.rows;
-    }
-    [dartx.deleteRow](...args) {
-      return this.deleteRow.apply(this, args);
-    }
-    [_insertRow](...args) {
-      return this.insertRow.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.TableSectionElement, 'created');
-  dart.setSignature(html$.TableSectionElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TableSectionElement, []),
-      created: dart.definiteFunctionType(html$.TableSectionElement, [])
-    }),
-    fields: () => ({[_rows]: ListOfNode()}),
-    getters: () => ({[dartx.rows]: dart.definiteFunctionType(core.List$(html$.TableRowElement), [])}),
-    methods: () => ({
-      [dartx.addRow]: dart.definiteFunctionType(html$.TableRowElement, []),
-      [dartx.insertRow]: dart.definiteFunctionType(html$.TableRowElement, [core.int]),
-      [dartx.deleteRow]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_insertRow]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTableSectionElement, html$.TableSectionElement);
-  dart.defineExtensionNames([
-    'setInnerHtml',
-    'content'
-  ]);
-  html$.TemplateElement = class TemplateElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TemplateElement._check(html$.document[dartx.createElement]("template"));
-    }
-    created() {
-      this[dartx.content] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('template');
-    }
-    get [dartx.content]() {
-      return this.content;
-    }
-    [dartx.setInnerHtml](html, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      this[dartx.text] = null;
-      let fragment = this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-      this[dartx.content][dartx.append](fragment);
-    }
-  };
-  dart.defineNamedConstructor(html$.TemplateElement, 'created');
-  dart.setSignature(html$.TemplateElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TemplateElement, []),
-      new: dart.definiteFunctionType(html$.TemplateElement, []),
-      created: dart.definiteFunctionType(html$.TemplateElement, [])
-    }),
-    fields: () => ({[dartx.content]: html$.DocumentFragment}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.HTMLTemplateElement, html$.TemplateElement);
-  dart.defineExtensionNames([
-    'checkValidity',
-    'reportValidity',
-    'select',
-    'setCustomValidity',
-    'setRangeText',
-    'setSelectionRange',
-    'autocapitalize',
-    'autofocus',
-    'cols',
-    'defaultValue',
-    'dirName',
-    'disabled',
-    'form',
-    'inputMode',
-    'labels',
-    'maxLength',
-    'minLength',
-    'name',
-    'placeholder',
-    'readOnly',
-    'required',
-    'rows',
-    'selectionDirection',
-    'selectionEnd',
-    'selectionStart',
-    'textLength',
-    'type',
-    'validationMessage',
-    'validity',
-    'value',
-    'willValidate',
-    'wrap'
-  ]);
-  html$.TextAreaElement = class TextAreaElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TextAreaElement._check(html$.document[dartx.createElement]("textarea"));
-    }
-    created() {
-      this[dartx.autocapitalize] = null;
-      this[dartx.autofocus] = null;
-      this[dartx.cols] = null;
-      this[dartx.defaultValue] = null;
-      this[dartx.dirName] = null;
-      this[dartx.disabled] = null;
-      this[dartx.form] = null;
-      this[dartx.inputMode] = null;
-      this[dartx.labels] = null;
-      this[dartx.maxLength] = null;
-      this[dartx.minLength] = null;
-      this[dartx.name] = null;
-      this[dartx.placeholder] = null;
-      this[dartx.readOnly] = null;
-      this[dartx.required] = null;
-      this[dartx.rows] = null;
-      this[dartx.selectionDirection] = null;
-      this[dartx.selectionEnd] = null;
-      this[dartx.selectionStart] = null;
-      this[dartx.textLength] = null;
-      this[dartx.type] = null;
-      this[dartx.validationMessage] = null;
-      this[dartx.validity] = null;
-      this[dartx.value] = null;
-      this[dartx.willValidate] = null;
-      this[dartx.wrap] = null;
-      super.created();
-    }
-    get [dartx.autocapitalize]() {
-      return this.autocapitalize;
-    }
-    set [dartx.autocapitalize](value) {
-      this.autocapitalize = value;
-    }
-    get [dartx.autofocus]() {
-      return this.autofocus;
-    }
-    set [dartx.autofocus](value) {
-      this.autofocus = value;
-    }
-    get [dartx.cols]() {
-      return this.cols;
-    }
-    set [dartx.cols](value) {
-      this.cols = value;
-    }
-    get [dartx.defaultValue]() {
-      return this.defaultValue;
-    }
-    set [dartx.defaultValue](value) {
-      this.defaultValue = value;
-    }
-    get [dartx.dirName]() {
-      return this.dirName;
-    }
-    set [dartx.dirName](value) {
-      this.dirName = value;
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.form]() {
-      return this.form;
-    }
-    get [dartx.inputMode]() {
-      return this.inputMode;
-    }
-    set [dartx.inputMode](value) {
-      this.inputMode = value;
-    }
-    get [dartx.labels]() {
-      return this.labels;
-    }
-    get [dartx.maxLength]() {
-      return this.maxLength;
-    }
-    set [dartx.maxLength](value) {
-      this.maxLength = value;
-    }
-    get [dartx.minLength]() {
-      return this.minLength;
-    }
-    set [dartx.minLength](value) {
-      this.minLength = value;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.placeholder]() {
-      return this.placeholder;
-    }
-    set [dartx.placeholder](value) {
-      this.placeholder = value;
-    }
-    get [dartx.readOnly]() {
-      return this.readOnly;
-    }
-    set [dartx.readOnly](value) {
-      this.readOnly = value;
-    }
-    get [dartx.required]() {
-      return this.required;
-    }
-    set [dartx.required](value) {
-      this.required = value;
-    }
-    get [dartx.rows]() {
-      return this.rows;
-    }
-    set [dartx.rows](value) {
-      this.rows = value;
-    }
-    get [dartx.selectionDirection]() {
-      return this.selectionDirection;
-    }
-    set [dartx.selectionDirection](value) {
-      this.selectionDirection = value;
-    }
-    get [dartx.selectionEnd]() {
-      return this.selectionEnd;
-    }
-    set [dartx.selectionEnd](value) {
-      this.selectionEnd = value;
-    }
-    get [dartx.selectionStart]() {
-      return this.selectionStart;
-    }
-    set [dartx.selectionStart](value) {
-      this.selectionStart = value;
-    }
-    get [dartx.textLength]() {
-      return this.textLength;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.validationMessage]() {
-      return this.validationMessage;
-    }
-    get [dartx.validity]() {
-      return this.validity;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.willValidate]() {
-      return this.willValidate;
-    }
-    get [dartx.wrap]() {
-      return this.wrap;
-    }
-    set [dartx.wrap](value) {
-      this.wrap = value;
-    }
-    [dartx.checkValidity](...args) {
-      return this.checkValidity.apply(this, args);
-    }
-    [dartx.reportValidity](...args) {
-      return this.reportValidity.apply(this, args);
-    }
-    [dartx.select](...args) {
-      return this.select.apply(this, args);
-    }
-    [dartx.setCustomValidity](...args) {
-      return this.setCustomValidity.apply(this, args);
-    }
-    [dartx.setRangeText](...args) {
-      return this.setRangeText.apply(this, args);
-    }
-    [dartx.setSelectionRange](...args) {
-      return this.setSelectionRange.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.TextAreaElement, 'created');
-  dart.setSignature(html$.TextAreaElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TextAreaElement, []),
-      new: dart.definiteFunctionType(html$.TextAreaElement, []),
-      created: dart.definiteFunctionType(html$.TextAreaElement, [])
-    }),
-    fields: () => ({
-      [dartx.autocapitalize]: core.String,
-      [dartx.autofocus]: core.bool,
-      [dartx.cols]: core.int,
-      [dartx.defaultValue]: core.String,
-      [dartx.dirName]: core.String,
-      [dartx.disabled]: core.bool,
-      [dartx.form]: html$.FormElement,
-      [dartx.inputMode]: core.String,
-      [dartx.labels]: ListOfNode(),
-      [dartx.maxLength]: core.int,
-      [dartx.minLength]: core.int,
-      [dartx.name]: core.String,
-      [dartx.placeholder]: core.String,
-      [dartx.readOnly]: core.bool,
-      [dartx.required]: core.bool,
-      [dartx.rows]: core.int,
-      [dartx.selectionDirection]: core.String,
-      [dartx.selectionEnd]: core.int,
-      [dartx.selectionStart]: core.int,
-      [dartx.textLength]: core.int,
-      [dartx.type]: core.String,
-      [dartx.validationMessage]: core.String,
-      [dartx.validity]: html$.ValidityState,
-      [dartx.value]: core.String,
-      [dartx.willValidate]: core.bool,
-      [dartx.wrap]: core.String
-    }),
-    methods: () => ({
-      [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
-      [dartx.select]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.setRangeText]: dart.definiteFunctionType(dart.void, [core.String], {start: core.int, end: core.int, selectionMode: core.String}),
-      [dartx.setSelectionRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTextAreaElement, html$.TextAreaElement);
-  const _initTextEvent = Symbol('_initTextEvent');
-  dart.defineExtensionNames([
-    'data'
-  ]);
-  html$.TextEvent = class TextEvent extends html$.UIEvent {
-    static new(type, opts) {
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
-      let view = opts && 'view' in opts ? opts.view : null;
-      let data = opts && 'data' in opts ? opts.data : null;
-      if (view == null) {
-        view = html$.window;
-      }
-      let e = html$.TextEvent._check(html$.document[_createEvent]("TextEvent"));
-      e[_initTextEvent](type, canBubble, cancelable, view, data);
-      return e;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.data]() {
-      return this.data;
-    }
-    [_initTextEvent](...args) {
-      return this.initTextEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.TextEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.TextEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html$.Window, data: core.String}),
-      _: dart.definiteFunctionType(html$.TextEvent, [])
-    }),
-    fields: () => ({[dartx.data]: core.String}),
-    methods: () => ({[_initTextEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])})
-  });
-  dart.registerExtension(dart.global.TextEvent, html$.TextEvent);
-  dart.defineExtensionNames([
-    'actualBoundingBoxAscent',
-    'actualBoundingBoxDescent',
-    'actualBoundingBoxLeft',
-    'actualBoundingBoxRight',
-    'alphabeticBaseline',
-    'emHeightAscent',
-    'emHeightDescent',
-    'fontBoundingBoxAscent',
-    'fontBoundingBoxDescent',
-    'hangingBaseline',
-    'ideographicBaseline',
-    'width'
-  ]);
-  html$.TextMetrics = class TextMetrics extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.actualBoundingBoxAscent]() {
-      return this.actualBoundingBoxAscent;
-    }
-    get [dartx.actualBoundingBoxDescent]() {
-      return this.actualBoundingBoxDescent;
-    }
-    get [dartx.actualBoundingBoxLeft]() {
-      return this.actualBoundingBoxLeft;
-    }
-    get [dartx.actualBoundingBoxRight]() {
-      return this.actualBoundingBoxRight;
-    }
-    get [dartx.alphabeticBaseline]() {
-      return this.alphabeticBaseline;
-    }
-    get [dartx.emHeightAscent]() {
-      return this.emHeightAscent;
-    }
-    get [dartx.emHeightDescent]() {
-      return this.emHeightDescent;
-    }
-    get [dartx.fontBoundingBoxAscent]() {
-      return this.fontBoundingBoxAscent;
-    }
-    get [dartx.fontBoundingBoxDescent]() {
-      return this.fontBoundingBoxDescent;
-    }
-    get [dartx.hangingBaseline]() {
-      return this.hangingBaseline;
-    }
-    get [dartx.ideographicBaseline]() {
-      return this.ideographicBaseline;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-  };
-  dart.setSignature(html$.TextMetrics, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.TextMetrics, [])}),
-    fields: () => ({
-      [dartx.actualBoundingBoxAscent]: core.double,
-      [dartx.actualBoundingBoxDescent]: core.double,
-      [dartx.actualBoundingBoxLeft]: core.double,
-      [dartx.actualBoundingBoxRight]: core.double,
-      [dartx.alphabeticBaseline]: core.double,
-      [dartx.emHeightAscent]: core.double,
-      [dartx.emHeightDescent]: core.double,
-      [dartx.fontBoundingBoxAscent]: core.double,
-      [dartx.fontBoundingBoxDescent]: core.double,
-      [dartx.hangingBaseline]: core.double,
-      [dartx.ideographicBaseline]: core.double,
-      [dartx.width]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.TextMetrics, html$.TextMetrics);
-  dart.defineExtensionNames([
-    'addCue',
-    'addRegion',
-    'removeCue',
-    'removeRegion',
-    'onCueChange',
-    'activeCues',
-    'cues',
-    'id',
-    'kind',
-    'label',
-    'language',
-    'mode',
-    'regions'
-  ]);
-  html$.TextTrack = class TextTrack extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.activeCues]() {
-      return this.activeCues;
-    }
-    get [dartx.cues]() {
-      return this.cues;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    get [dartx.language]() {
-      return this.language;
-    }
-    get [dartx.mode]() {
-      return this.mode;
-    }
-    set [dartx.mode](value) {
-      this.mode = value;
-    }
-    get [dartx.regions]() {
-      return this.regions;
-    }
-    [dartx.addCue](...args) {
-      return this.addCue.apply(this, args);
-    }
-    [dartx.addRegion](...args) {
-      return this.addRegion.apply(this, args);
-    }
-    [dartx.removeCue](...args) {
-      return this.removeCue.apply(this, args);
-    }
-    [dartx.removeRegion](...args) {
-      return this.removeRegion.apply(this, args);
-    }
-    get [dartx.onCueChange]() {
-      return html$.TextTrack.cueChangeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.TextTrack, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.TextTrack, [])}),
-    fields: () => ({
-      [dartx.activeCues]: html$.TextTrackCueList,
-      [dartx.cues]: html$.TextTrackCueList,
-      [dartx.id]: core.String,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String,
-      [dartx.language]: core.String,
-      [dartx.mode]: core.String,
-      [dartx.regions]: html$.VttRegionList
-    }),
-    getters: () => ({[dartx.onCueChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.addCue]: dart.definiteFunctionType(dart.void, [html$.TextTrackCue]),
-      [dartx.addRegion]: dart.definiteFunctionType(dart.void, [html$.VttRegion]),
-      [dartx.removeCue]: dart.definiteFunctionType(dart.void, [html$.TextTrackCue]),
-      [dartx.removeRegion]: dart.definiteFunctionType(dart.void, [html$.VttRegion])
-    }),
-    sfields: () => ({cueChangeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.TextTrack, {
-    get cueChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('cuechange'));
-    }
-  });
-  dart.registerExtension(dart.global.TextTrack, html$.TextTrack);
-  dart.defineExtensionNames([
-    'onEnter',
-    'onExit',
-    'endTime',
-    'id',
-    'pauseOnExit',
-    'startTime',
-    'track'
-  ]);
-  html$.TextTrackCue = class TextTrackCue extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.endTime]() {
-      return this.endTime;
-    }
-    set [dartx.endTime](value) {
-      this.endTime = value;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    set [dartx.id](value) {
-      this.id = value;
-    }
-    get [dartx.pauseOnExit]() {
-      return this.pauseOnExit;
-    }
-    set [dartx.pauseOnExit](value) {
-      this.pauseOnExit = value;
-    }
-    get [dartx.startTime]() {
-      return this.startTime;
-    }
-    set [dartx.startTime](value) {
-      this.startTime = value;
-    }
-    get [dartx.track]() {
-      return this.track;
-    }
-    get [dartx.onEnter]() {
-      return html$.TextTrackCue.enterEvent.forTarget(this);
-    }
-    get [dartx.onExit]() {
-      return html$.TextTrackCue.exitEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.TextTrackCue, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackCue, [])}),
-    fields: () => ({
-      [dartx.endTime]: core.num,
-      [dartx.id]: core.String,
-      [dartx.pauseOnExit]: core.bool,
-      [dartx.startTime]: core.num,
-      [dartx.track]: html$.TextTrack
-    }),
-    getters: () => ({
-      [dartx.onEnter]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onExit]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    sfields: () => ({
-      enterEvent: EventStreamProviderOfEvent(),
-      exitEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(html$.TextTrackCue, {
-    get enterEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('enter'));
-    },
-    get exitEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('exit'));
-    }
-  });
-  dart.registerExtension(dart.global.TextTrackCue, html$.TextTrackCue);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'getCueById',
-    'item'
-  ]);
-  html$.TextTrackCueList = class TextTrackCueList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.TextTrackCue), html$.ImmutableListMixin$(html$.TextTrackCue)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.getCueById](...args) {
-      return this.getCueById.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.TextTrackCueList[dart.implements] = () => [ListOfTextTrackCue(), _js_helper.JavaScriptIndexingBehavior];
-  dart.setSignature(html$.TextTrackCueList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackCueList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.TextTrackCue, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.TextTrackCue]),
-      [dartx.getCueById]: dart.definiteFunctionType(html$.TextTrackCue, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(html$.TextTrackCue, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.TextTrackCueList, html$.TextTrackCueList);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'getTrackById',
-    'item',
-    'onAddTrack',
-    'onChange'
-  ]);
-  html$.TextTrackList = class TextTrackList extends dart.mixin(html$.EventTarget, collection.ListMixin$(html$.TextTrack), html$.ImmutableListMixin$(html$.TextTrack)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.getTrackById](...args) {
-      return this.getTrackById.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    get [dartx.onAddTrack]() {
-      return html$.TextTrackList.addTrackEvent.forTarget(this);
-    }
-    get [dartx.onChange]() {
-      return html$.TextTrackList.changeEvent.forTarget(this);
-    }
-  };
-  html$.TextTrackList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTextTrack()];
-  dart.setSignature(html$.TextTrackList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackList, [])}),
-    getters: () => ({
-      [dartx.length]: dart.definiteFunctionType(core.int, []),
-      [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html$.TrackEvent), []),
-      [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.TextTrack, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.TextTrack]),
-      [dartx.getTrackById]: dart.definiteFunctionType(html$.TextTrack, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(html$.TextTrack, [core.int])
-    }),
-    sfields: () => ({
-      addTrackEvent: EventStreamProviderOfTrackEvent(),
-      changeEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(html$.TextTrackList, {
-    get addTrackEvent() {
-      return dart.const(new (EventStreamProviderOfTrackEvent())('addtrack'));
-    },
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.TextTrackList, html$.TextTrackList);
-  dart.defineExtensionNames([
-    'end',
-    'start',
-    'length'
-  ]);
-  html$.TimeRanges = class TimeRanges extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.end](...args) {
-      return this.end.apply(this, args);
-    }
-    [dartx.start](...args) {
-      return this.start.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.TimeRanges, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.TimeRanges, [])}),
-    fields: () => ({[dartx.length]: core.int}),
-    methods: () => ({
-      [dartx.end]: dart.definiteFunctionType(core.double, [core.int]),
-      [dartx.start]: dart.definiteFunctionType(core.double, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.TimeRanges, html$.TimeRanges);
-  html$.TimeoutHandler = dart.typedef('TimeoutHandler', () => dart.functionType(dart.void, []));
-  html$.TitleElement = class TitleElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TitleElement._check(html$.document[dartx.createElement]("title"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.TitleElement, 'created');
-  dart.setSignature(html$.TitleElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TitleElement, []),
-      new: dart.definiteFunctionType(html$.TitleElement, []),
-      created: dart.definiteFunctionType(html$.TitleElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLTitleElement, html$.TitleElement);
-  const _radiusX = Symbol('_radiusX');
-  const _radiusY = Symbol('_radiusY');
-  const __clientX = Symbol('__clientX');
-  const __clientY = Symbol('__clientY');
-  const __screenX = Symbol('__screenX');
-  const __screenY = Symbol('__screenY');
-  const __pageX = Symbol('__pageX');
-  const __pageY = Symbol('__pageY');
-  const __radiusX = Symbol('__radiusX');
-  const __radiusY = Symbol('__radiusY');
-  dart.defineExtensionNames([
-    'target',
-    'client',
-    'page',
-    'screen',
-    'radiusX',
-    'radiusY',
-    'force',
-    'identifier',
-    'rotationAngle'
-  ]);
-  html$.Touch = class Touch extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [_clientX]() {
-      return this.clientX;
-    }
-    get [_clientY]() {
-      return this.clientY;
-    }
-    get [dartx.force]() {
-      return this.force;
-    }
-    get [dartx.identifier]() {
-      return this.identifier;
-    }
-    get [_pageX]() {
-      return this.pageX;
-    }
-    get [_pageY]() {
-      return this.pageY;
-    }
-    get [_radiusX]() {
-      return this.radiusX;
-    }
-    get [_radiusY]() {
-      return this.radiusY;
-    }
-    get [dartx.rotationAngle]() {
-      return this.rotationAngle;
-    }
-    get [_screenX]() {
-      return this.screenX;
-    }
-    get [_screenY]() {
-      return this.screenY;
-    }
-    get [dartx.target]() {
-      return html$._convertNativeToDart_EventTarget(this[_get_target]);
-    }
-    get [_get_target]() {
-      return this.target;
-    }
-    get [__clientX]() {
-      return this.clientX[dartx.round]();
-    }
-    get [__clientY]() {
-      return this.clientY[dartx.round]();
-    }
-    get [__screenX]() {
-      return this.screenX[dartx.round]();
-    }
-    get [__screenY]() {
-      return this.screenY[dartx.round]();
-    }
-    get [__pageX]() {
-      return this.pageX[dartx.round]();
-    }
-    get [__pageY]() {
-      return this.pageY[dartx.round]();
-    }
-    get [__radiusX]() {
-      return this.radiusX[dartx.round]();
-    }
-    get [__radiusY]() {
-      return this.radiusY[dartx.round]();
-    }
-    get [dartx.client]() {
-      return new (PointOfnum())(this[__clientX], this[__clientY]);
-    }
-    get [dartx.page]() {
-      return new (PointOfnum())(this[__pageX], this[__pageY]);
-    }
-    get [dartx.screen]() {
-      return new (PointOfnum())(this[__screenX], this[__screenY]);
-    }
-    get [dartx.radiusX]() {
-      return this[__radiusX];
-    }
-    get [dartx.radiusY]() {
-      return this[__radiusY];
-    }
-  };
-  dart.setSignature(html$.Touch, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Touch, [])}),
-    fields: () => ({
-      [_clientX]: core.double,
-      [_clientY]: core.double,
-      [dartx.force]: core.double,
-      [dartx.identifier]: core.int,
-      [_pageX]: core.double,
-      [_pageY]: core.double,
-      [_radiusX]: core.double,
-      [_radiusY]: core.double,
-      [dartx.rotationAngle]: core.double,
-      [_screenX]: core.double,
-      [_screenY]: core.double,
-      [_get_target]: dart.dynamic
-    }),
-    getters: () => ({
-      [dartx.target]: dart.definiteFunctionType(html$.EventTarget, []),
-      [__clientX]: dart.definiteFunctionType(core.int, []),
-      [__clientY]: dart.definiteFunctionType(core.int, []),
-      [__screenX]: dart.definiteFunctionType(core.int, []),
-      [__screenY]: dart.definiteFunctionType(core.int, []),
-      [__pageX]: dart.definiteFunctionType(core.int, []),
-      [__pageY]: dart.definiteFunctionType(core.int, []),
-      [__radiusX]: dart.definiteFunctionType(core.int, []),
-      [__radiusY]: dart.definiteFunctionType(core.int, []),
-      [dartx.client]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.page]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.screen]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.radiusX]: dart.definiteFunctionType(core.int, []),
-      [dartx.radiusY]: dart.definiteFunctionType(core.int, [])
-    })
-  });
-  dart.registerExtension(dart.global.Touch, html$.Touch);
-  const _initTouchEvent = Symbol('_initTouchEvent');
-  dart.defineExtensionNames([
-    'altKey',
-    'changedTouches',
-    'ctrlKey',
-    'metaKey',
-    'shiftKey',
-    'targetTouches',
-    'touches'
-  ]);
-  html$.TouchEvent = class TouchEvent extends html$.UIEvent {
-    static new(touches, targetTouches, changedTouches, type, opts) {
-      let view = opts && 'view' in opts ? opts.view : null;
-      let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
-      let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
-      let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
-      let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
-      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
-      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
-      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
-      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
-      if (view == null) {
-        view = html$.window;
-      }
-      let e = html$.TouchEvent._check(html$.document[_createEvent]("TouchEvent"));
-      e[_initTouchEvent](touches, targetTouches, changedTouches, type, view, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
-      return e;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.altKey]() {
-      return this.altKey;
-    }
-    get [dartx.changedTouches]() {
-      return this.changedTouches;
-    }
-    get [dartx.ctrlKey]() {
-      return this.ctrlKey;
-    }
-    get [dartx.metaKey]() {
-      return this.metaKey;
-    }
-    get [dartx.shiftKey]() {
-      return this.shiftKey;
-    }
-    get [dartx.targetTouches]() {
-      return this.targetTouches;
-    }
-    get [dartx.touches]() {
-      return this.touches;
-    }
-    [_initTouchEvent](...args) {
-      return this.initTouchEvent.apply(this, args);
-    }
-    static get supported() {
-      return html_common.Device.isEventTypeSupported('TouchEvent');
-    }
-  };
-  dart.setSignature(html$.TouchEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.TouchEvent, [html$.TouchList, html$.TouchList, html$.TouchList, core.String], {view: html$.Window, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
-      _: dart.definiteFunctionType(html$.TouchEvent, [])
-    }),
-    fields: () => ({
-      [dartx.altKey]: core.bool,
-      [dartx.changedTouches]: html$.TouchList,
-      [dartx.ctrlKey]: core.bool,
-      [dartx.metaKey]: core.bool,
-      [dartx.shiftKey]: core.bool,
-      [dartx.targetTouches]: html$.TouchList,
-      [dartx.touches]: html$.TouchList
-    }),
-    methods: () => ({[_initTouchEvent]: dart.definiteFunctionType(dart.void, [html$.TouchList, html$.TouchList, html$.TouchList, core.String, html$.Window, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.TouchEvent, html$.TouchEvent);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$.TouchList = class TouchList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Touch), html$.ImmutableListMixin$(html$.Touch)) {
-    static new() {
-      return null;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!document.createTouchList;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$.TouchList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTouch()];
-  dart.setSignature(html$.TouchList, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.TouchList, []),
-      _: dart.definiteFunctionType(html$.TouchList, [])
-    }),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.Touch, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Touch]),
-      [dartx.item]: dart.definiteFunctionType(html$.Touch, [core.int])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.TouchList, html$.TouchList);
-  dart.defineExtensionNames([
-    'byteStreamTrackID',
-    'kinds',
-    'label',
-    'language',
-    'type'
-  ]);
-  html$.TrackDefault = class TrackDefault extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, language, label, kinds, byteStreamTrackID) {
-      if (byteStreamTrackID === void 0) byteStreamTrackID = null;
-      if (byteStreamTrackID != null) {
-        let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
-        return html$.TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
-      }
-      let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
-      return html$.TrackDefault._create_2(type, language, label, kinds_1);
-    }
-    static _create_1(type, language, label, kinds, byteStreamTrackID) {
-      return new self.TrackDefault(type, language, label, kinds, byteStreamTrackID);
-    }
-    static _create_2(type, language, label, kinds) {
-      return new self.TrackDefault(type, language, label, kinds);
-    }
-    get [dartx.byteStreamTrackID]() {
-      return this.byteStreamTrackID;
-    }
-    get [dartx.kinds]() {
-      return this.kinds;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    get [dartx.language]() {
-      return this.language;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(html$.TrackDefault, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TrackDefault, []),
-      new: dart.definiteFunctionType(html$.TrackDefault, [core.String, core.String, core.String, ListOfString()], [core.String])
-    }),
-    fields: () => ({
-      [dartx.byteStreamTrackID]: core.String,
-      [dartx.kinds]: ListOfString(),
-      [dartx.label]: core.String,
-      [dartx.language]: core.String,
-      [dartx.type]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.TrackDefault, html$.TrackDefault);
-  dart.defineExtensionNames([
-    'item',
-    'length'
-  ]);
-  html$.TrackDefaultList = class TrackDefaultList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(trackDefaults) {
-      if (trackDefaults === void 0) trackDefaults = null;
-      if (trackDefaults != null) {
-        return html$.TrackDefaultList._create_1(trackDefaults);
-      }
-      return html$.TrackDefaultList._create_2();
-    }
-    static _create_1(trackDefaults) {
-      return new self.TrackDefaultList(trackDefaults);
-    }
-    static _create_2() {
-      return new self.TrackDefaultList();
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.TrackDefaultList, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TrackDefaultList, []),
-      new: dart.definiteFunctionType(html$.TrackDefaultList, [], [ListOfTrackDefault()])
-    }),
-    fields: () => ({[dartx.length]: core.int}),
-    methods: () => ({[dartx.item]: dart.definiteFunctionType(html$.TrackDefault, [core.int])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.TrackDefaultList, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.TrackDefaultList, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.TrackDefaultList, html$.TrackDefaultList);
-  dart.defineExtensionNames([
-    'defaultValue',
-    'kind',
-    'label',
-    'readyState',
-    'src',
-    'srclang',
-    'track'
-  ]);
-  html$.TrackElement = class TrackElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.TrackElement._check(html$.document[dartx.createElement]("track"));
-    }
-    created() {
-      this[dartx.defaultValue] = null;
-      this[dartx.kind] = null;
-      this[dartx.label] = null;
-      this[dartx.readyState] = null;
-      this[dartx.src] = null;
-      this[dartx.srclang] = null;
-      this[dartx.track] = null;
-      super.created();
-    }
-    static get supported() {
-      return html$.Element.isTagSupported('track');
-    }
-    get [dartx.defaultValue]() {
-      return this.default;
-    }
-    set [dartx.defaultValue](value) {
-      this.default = value;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    set [dartx.kind](value) {
-      this.kind = value;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    set [dartx.label](value) {
-      this.label = value;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.src]() {
-      return this.src;
-    }
-    set [dartx.src](value) {
-      this.src = value;
-    }
-    get [dartx.srclang]() {
-      return this.srclang;
-    }
-    set [dartx.srclang](value) {
-      this.srclang = value;
-    }
-    get [dartx.track]() {
-      return this.track;
-    }
-  };
-  dart.defineNamedConstructor(html$.TrackElement, 'created');
-  dart.setSignature(html$.TrackElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TrackElement, []),
-      new: dart.definiteFunctionType(html$.TrackElement, []),
-      created: dart.definiteFunctionType(html$.TrackElement, [])
-    }),
-    fields: () => ({
-      [dartx.defaultValue]: core.bool,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String,
-      [dartx.readyState]: core.int,
-      [dartx.src]: core.String,
-      [dartx.srclang]: core.String,
-      [dartx.track]: html$.TextTrack
-    }),
-    sfields: () => ({
-      ERROR: core.int,
-      LOADED: core.int,
-      LOADING: core.int,
-      NONE: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  html$.TrackElement.ERROR = 3;
-  html$.TrackElement.LOADED = 2;
-  html$.TrackElement.LOADING = 1;
-  html$.TrackElement.NONE = 0;
-  dart.registerExtension(dart.global.HTMLTrackElement, html$.TrackElement);
-  dart.defineExtensionNames([
-    'track'
-  ]);
-  html$.TrackEvent = class TrackEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.TrackEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.TrackEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.TrackEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.TrackEvent(type);
-    }
-    get [dartx.track]() {
-      return this.track;
-    }
-  };
-  dart.setSignature(html$.TrackEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TrackEvent, []),
-      new: dart.definiteFunctionType(html$.TrackEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({[dartx.track]: core.Object}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.TrackEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.TrackEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.TrackEvent, html$.TrackEvent);
-  dart.defineExtensionNames([
-    'elapsedTime',
-    'propertyName',
-    'pseudoElement'
-  ]);
-  html$.TransitionEvent = class TransitionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.TransitionEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.TransitionEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.TransitionEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.TransitionEvent(type);
-    }
-    get [dartx.elapsedTime]() {
-      return this.elapsedTime;
-    }
-    get [dartx.propertyName]() {
-      return this.propertyName;
-    }
-    get [dartx.pseudoElement]() {
-      return this.pseudoElement;
-    }
-  };
-  dart.setSignature(html$.TransitionEvent, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.TransitionEvent, []),
-      new: dart.definiteFunctionType(html$.TransitionEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.elapsedTime]: core.double,
-      [dartx.propertyName]: core.String,
-      [dartx.pseudoElement]: core.String
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.TransitionEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.TransitionEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.TransitionEvent, html$.TransitionEvent);
-  dart.registerExtension(dart.global.WebKitTransitionEvent, html$.TransitionEvent);
-  dart.defineExtensionNames([
-    'firstChild',
-    'lastChild',
-    'nextNode',
-    'nextSibling',
-    'parentNode',
-    'previousNode',
-    'previousSibling',
-    'currentNode',
-    'filter',
-    'root',
-    'whatToShow'
-  ]);
-  html$.TreeWalker = class TreeWalker extends _interceptors.Interceptor {
-    static new(root, whatToShow) {
-      return html$.document[_createTreeWalker](root, whatToShow, null);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.currentNode]() {
-      return this.currentNode;
-    }
-    set [dartx.currentNode](value) {
-      this.currentNode = value;
-    }
-    get [dartx.filter]() {
-      return this.filter;
-    }
-    get [dartx.root]() {
-      return this.root;
-    }
-    get [dartx.whatToShow]() {
-      return this.whatToShow;
-    }
-    [dartx.firstChild](...args) {
-      return this.firstChild.apply(this, args);
-    }
-    [dartx.lastChild](...args) {
-      return this.lastChild.apply(this, args);
-    }
-    [dartx.nextNode](...args) {
-      return this.nextNode.apply(this, args);
-    }
-    [dartx.nextSibling](...args) {
-      return this.nextSibling.apply(this, args);
-    }
-    [dartx.parentNode](...args) {
-      return this.parentNode.apply(this, args);
-    }
-    [dartx.previousNode](...args) {
-      return this.previousNode.apply(this, args);
-    }
-    [dartx.previousSibling](...args) {
-      return this.previousSibling.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.TreeWalker, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.TreeWalker, [html$.Node, core.int]),
-      _: dart.definiteFunctionType(html$.TreeWalker, [])
-    }),
-    fields: () => ({
-      [dartx.currentNode]: html$.Node,
-      [dartx.filter]: html$.NodeFilter,
-      [dartx.root]: html$.Node,
-      [dartx.whatToShow]: core.int
-    }),
-    methods: () => ({
-      [dartx.firstChild]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.lastChild]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.nextNode]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.nextSibling]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.parentNode]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.previousNode]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.previousSibling]: dart.definiteFunctionType(html$.Node, [])
-    })
-  });
-  dart.registerExtension(dart.global.TreeWalker, html$.TreeWalker);
-  html$.UListElement = class UListElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.UListElement._check(html$.document[dartx.createElement]("ul"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.UListElement, 'created');
-  dart.setSignature(html$.UListElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.UListElement, []),
-      new: dart.definiteFunctionType(html$.UListElement, []),
-      created: dart.definiteFunctionType(html$.UListElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLUListElement, html$.UListElement);
-  html$.UnknownElement = class UnknownElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$.UnknownElement, 'created');
-  dart.setSignature(html$.UnknownElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.UnknownElement, []),
-      created: dart.definiteFunctionType(html$.UnknownElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLUnknownElement, html$.UnknownElement);
-  dart.defineExtensionNames([
-    'toString',
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'origin',
-    'password',
-    'pathname',
-    'port',
-    'protocol',
-    'search',
-    'username'
-  ]);
-  html$.Url = class Url extends _interceptors.Interceptor {
-    static createObjectUrl(blob_OR_source_OR_stream) {
-      return (self.URL || self.webkitURL).createObjectURL(blob_OR_source_OR_stream);
-    }
-    static createObjectUrlFromSource(source) {
-      return (self.URL || self.webkitURL).createObjectURL(source);
-    }
-    static createObjectUrlFromStream(stream) {
-      return (self.URL || self.webkitURL).createObjectURL(stream);
-    }
-    static createObjectUrlFromBlob(blob) {
-      return (self.URL || self.webkitURL).createObjectURL(blob);
-    }
-    static revokeObjectUrl(url) {
-      return (self.URL || self.webkitURL).revokeObjectURL(url);
-    }
-    [dartx.toString]() {
-      return String(this);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.hash]() {
-      return this.hash;
-    }
-    set [dartx.hash](value) {
-      this.hash = value;
-    }
-    get [dartx.host]() {
-      return this.host;
-    }
-    set [dartx.host](value) {
-      this.host = value;
-    }
-    get [dartx.hostname]() {
-      return this.hostname;
-    }
-    set [dartx.hostname](value) {
-      this.hostname = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-    set [dartx.href](value) {
-      this.href = value;
-    }
-    get [dartx.origin]() {
-      return this.origin;
-    }
-    get [dartx.password]() {
-      return this.password;
-    }
-    set [dartx.password](value) {
-      this.password = value;
-    }
-    get [dartx.pathname]() {
-      return this.pathname;
-    }
-    set [dartx.pathname](value) {
-      this.pathname = value;
-    }
-    get [dartx.port]() {
-      return this.port;
-    }
-    set [dartx.port](value) {
-      this.port = value;
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    set [dartx.protocol](value) {
-      this.protocol = value;
-    }
-    get [dartx.search]() {
-      return this.search;
-    }
-    set [dartx.search](value) {
-      this.search = value;
-    }
-    get [dartx.username]() {
-      return this.username;
-    }
-    set [dartx.username](value) {
-      this.username = value;
-    }
-  };
-  html$.Url[dart.implements] = () => [html$.UrlUtils];
-  dart.setSignature(html$.Url, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Url, [])}),
-    fields: () => ({
-      [dartx.hash]: core.String,
-      [dartx.host]: core.String,
-      [dartx.hostname]: core.String,
-      [dartx.href]: core.String,
-      [dartx.origin]: core.String,
-      [dartx.password]: core.String,
-      [dartx.pathname]: core.String,
-      [dartx.port]: core.String,
-      [dartx.protocol]: core.String,
-      [dartx.search]: core.String,
-      [dartx.username]: core.String
-    }),
-    statics: () => ({
-      createObjectUrl: dart.definiteFunctionType(core.String, [dart.dynamic]),
-      createObjectUrlFromSource: dart.definiteFunctionType(core.String, [html$.MediaSource]),
-      createObjectUrlFromStream: dart.definiteFunctionType(core.String, [html$.MediaStream]),
-      createObjectUrlFromBlob: dart.definiteFunctionType(core.String, [html$.Blob]),
-      revokeObjectUrl: dart.definiteFunctionType(dart.void, [core.String])
-    }),
-    names: ['createObjectUrl', 'createObjectUrlFromSource', 'createObjectUrlFromStream', 'createObjectUrlFromBlob', 'revokeObjectUrl']
-  });
-  dart.registerExtension(dart.global.URL, html$.Url);
-  dart.defineExtensionNames([
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'origin',
-    'password',
-    'pathname',
-    'port',
-    'protocol',
-    'search',
-    'username'
-  ]);
-  html$.UrlUtils = class UrlUtils extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get hash() {
-      return this[hash];
-    }
-    set hash(value) {
-      this[hash] = value;
-    }
-    get host() {
-      return this[host];
-    }
-    set host(value) {
-      this[host] = value;
-    }
-    get hostname() {
-      return this[hostname];
-    }
-    set hostname(value) {
-      this[hostname] = value;
-    }
-    get href() {
-      return this[href];
-    }
-    set href(value) {
-      this[href] = value;
-    }
-    get origin() {
-      return this[origin];
-    }
-    set origin(value) {
-      super.origin = value;
-    }
-    get password() {
-      return this[password];
-    }
-    set password(value) {
-      this[password] = value;
-    }
-    get pathname() {
-      return this[pathname];
-    }
-    set pathname(value) {
-      this[pathname] = value;
-    }
-    get port() {
-      return this[port];
-    }
-    set port(value) {
-      this[port] = value;
-    }
-    get protocol() {
-      return this[protocol];
-    }
-    set protocol(value) {
-      this[protocol] = value;
-    }
-    get search() {
-      return this[search];
-    }
-    set search(value) {
-      this[search] = value;
-    }
-    get username() {
-      return this[username];
-    }
-    set username(value) {
-      this[username] = value;
-    }
-  };
-  const hash = Symbol(html$.UrlUtils.name + "." + 'hash'.toString());
-  const host = Symbol(html$.UrlUtils.name + "." + 'host'.toString());
-  const hostname = Symbol(html$.UrlUtils.name + "." + 'hostname'.toString());
-  const href = Symbol(html$.UrlUtils.name + "." + 'href'.toString());
-  const origin = Symbol(html$.UrlUtils.name + "." + 'origin'.toString());
-  const password = Symbol(html$.UrlUtils.name + "." + 'password'.toString());
-  const pathname = Symbol(html$.UrlUtils.name + "." + 'pathname'.toString());
-  const port = Symbol(html$.UrlUtils.name + "." + 'port'.toString());
-  const protocol = Symbol(html$.UrlUtils.name + "." + 'protocol'.toString());
-  const search = Symbol(html$.UrlUtils.name + "." + 'search'.toString());
-  const username = Symbol(html$.UrlUtils.name + "." + 'username'.toString());
-  dart.setSignature(html$.UrlUtils, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.UrlUtils, [])}),
-    fields: () => ({
-      hash: core.String,
-      host: core.String,
-      hostname: core.String,
-      href: core.String,
-      origin: core.String,
-      password: core.String,
-      pathname: core.String,
-      port: core.String,
-      protocol: core.String,
-      search: core.String,
-      username: core.String
-    })
-  });
-  dart.defineExtensionMembers(html$.UrlUtils, [
-    'hash',
-    'hash',
-    'host',
-    'host',
-    'hostname',
-    'hostname',
-    'href',
-    'href',
-    'origin',
-    'password',
-    'password',
-    'pathname',
-    'pathname',
-    'port',
-    'port',
-    'protocol',
-    'protocol',
-    'search',
-    'search',
-    'username',
-    'username'
-  ]);
-  dart.defineExtensionNames([
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'origin',
-    'pathname',
-    'port',
-    'protocol',
-    'search'
-  ]);
-  html$.UrlUtilsReadOnly = class UrlUtilsReadOnly extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get hash() {
-      return this[hash$];
-    }
-    set hash(value) {
-      super.hash = value;
-    }
-    get host() {
-      return this[host$];
-    }
-    set host(value) {
-      super.host = value;
-    }
-    get hostname() {
-      return this[hostname$];
-    }
-    set hostname(value) {
-      super.hostname = value;
-    }
-    get href() {
-      return this[href$];
-    }
-    set href(value) {
-      super.href = value;
-    }
-    get origin() {
-      return this[origin$];
-    }
-    set origin(value) {
-      super.origin = value;
-    }
-    get pathname() {
-      return this[pathname$];
-    }
-    set pathname(value) {
-      super.pathname = value;
-    }
-    get port() {
-      return this[port$];
-    }
-    set port(value) {
-      super.port = value;
-    }
-    get protocol() {
-      return this[protocol$];
-    }
-    set protocol(value) {
-      super.protocol = value;
-    }
-    get search() {
-      return this[search$];
-    }
-    set search(value) {
-      super.search = value;
-    }
-  };
-  const hash$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'hash'.toString());
-  const host$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'host'.toString());
-  const hostname$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'hostname'.toString());
-  const href$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'href'.toString());
-  const origin$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'origin'.toString());
-  const pathname$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'pathname'.toString());
-  const port$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'port'.toString());
-  const protocol$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'protocol'.toString());
-  const search$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'search'.toString());
-  dart.setSignature(html$.UrlUtilsReadOnly, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.UrlUtilsReadOnly, [])}),
-    fields: () => ({
-      hash: core.String,
-      host: core.String,
-      hostname: core.String,
-      href: core.String,
-      origin: core.String,
-      pathname: core.String,
-      port: core.String,
-      protocol: core.String,
-      search: core.String
-    })
-  });
-  dart.defineExtensionMembers(html$.UrlUtilsReadOnly, [
-    'hash',
-    'host',
-    'hostname',
-    'href',
-    'origin',
-    'pathname',
-    'port',
-    'protocol',
-    'search'
-  ]);
-  dart.defineExtensionNames([
-    'currentFieldOfView',
-    'eyeTranslation',
-    'maximumFieldOfView',
-    'minimumFieldOfView',
-    'recommendedFieldOfView',
-    'renderRect'
-  ]);
-  html$.VREyeParameters = class VREyeParameters extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.currentFieldOfView]() {
-      return this.currentFieldOfView;
-    }
-    get [dartx.eyeTranslation]() {
-      return this.eyeTranslation;
-    }
-    get [dartx.maximumFieldOfView]() {
-      return this.maximumFieldOfView;
-    }
-    get [dartx.minimumFieldOfView]() {
-      return this.minimumFieldOfView;
-    }
-    get [dartx.recommendedFieldOfView]() {
-      return this.recommendedFieldOfView;
-    }
-    get [dartx.renderRect]() {
-      return this.renderRect;
-    }
-  };
-  dart.setSignature(html$.VREyeParameters, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VREyeParameters, [])}),
-    fields: () => ({
-      [dartx.currentFieldOfView]: html$.VRFieldOfView,
-      [dartx.eyeTranslation]: html$.DomPoint,
-      [dartx.maximumFieldOfView]: html$.VRFieldOfView,
-      [dartx.minimumFieldOfView]: html$.VRFieldOfView,
-      [dartx.recommendedFieldOfView]: html$.VRFieldOfView,
-      [dartx.renderRect]: html$._DomRect
-    })
-  });
-  dart.registerExtension(dart.global.VREyeParameters, html$.VREyeParameters);
-  dart.defineExtensionNames([
-    'downDegrees',
-    'leftDegrees',
-    'rightDegrees',
-    'upDegrees'
-  ]);
-  html$.VRFieldOfView = class VRFieldOfView extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(fov) {
-      if (fov === void 0) fov = null;
-      if (fov != null) {
-        let fov_1 = html_common.convertDartToNative_Dictionary(fov);
-        return html$.VRFieldOfView._create_1(fov_1);
-      }
-      return html$.VRFieldOfView._create_2();
-    }
-    static _create_1(fov) {
-      return new self.VRFieldOfView(fov);
-    }
-    static _create_2() {
-      return new self.VRFieldOfView();
-    }
-    get [dartx.downDegrees]() {
-      return this.downDegrees;
-    }
-    set [dartx.downDegrees](value) {
-      this.downDegrees = value;
-    }
-    get [dartx.leftDegrees]() {
-      return this.leftDegrees;
-    }
-    set [dartx.leftDegrees](value) {
-      this.leftDegrees = value;
-    }
-    get [dartx.rightDegrees]() {
-      return this.rightDegrees;
-    }
-    set [dartx.rightDegrees](value) {
-      this.rightDegrees = value;
-    }
-    get [dartx.upDegrees]() {
-      return this.upDegrees;
-    }
-    set [dartx.upDegrees](value) {
-      this.upDegrees = value;
-    }
-  };
-  dart.setSignature(html$.VRFieldOfView, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.VRFieldOfView, []),
-      new: dart.definiteFunctionType(html$.VRFieldOfView, [], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.downDegrees]: core.num,
-      [dartx.leftDegrees]: core.num,
-      [dartx.rightDegrees]: core.num,
-      [dartx.upDegrees]: core.num
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.VRFieldOfView, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.VRFieldOfView, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.VRFieldOfView, html$.VRFieldOfView);
-  dart.defineExtensionNames([
-    'angularAcceleration',
-    'angularVelocity',
-    'linearAcceleration',
-    'linearVelocity',
-    'orientation',
-    'position',
-    'timeStamp'
-  ]);
-  html$.VRPositionState = class VRPositionState extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.angularAcceleration]() {
-      return this.angularAcceleration;
-    }
-    get [dartx.angularVelocity]() {
-      return this.angularVelocity;
-    }
-    get [dartx.linearAcceleration]() {
-      return this.linearAcceleration;
-    }
-    get [dartx.linearVelocity]() {
-      return this.linearVelocity;
-    }
-    get [dartx.orientation]() {
-      return this.orientation;
-    }
-    get [dartx.position]() {
-      return this.position;
-    }
-    get [dartx.timeStamp]() {
-      return this.timeStamp;
-    }
-  };
-  dart.setSignature(html$.VRPositionState, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VRPositionState, [])}),
-    fields: () => ({
-      [dartx.angularAcceleration]: html$.DomPoint,
-      [dartx.angularVelocity]: html$.DomPoint,
-      [dartx.linearAcceleration]: html$.DomPoint,
-      [dartx.linearVelocity]: html$.DomPoint,
-      [dartx.orientation]: html$.DomPoint,
-      [dartx.position]: html$.DomPoint,
-      [dartx.timeStamp]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.VRPositionState, html$.VRPositionState);
-  dart.defineExtensionNames([
-    'badInput',
-    'customError',
-    'patternMismatch',
-    'rangeOverflow',
-    'rangeUnderflow',
-    'stepMismatch',
-    'tooLong',
-    'tooShort',
-    'typeMismatch',
-    'valid',
-    'valueMissing'
-  ]);
-  html$.ValidityState = class ValidityState extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.badInput]() {
-      return this.badInput;
-    }
-    get [dartx.customError]() {
-      return this.customError;
-    }
-    get [dartx.patternMismatch]() {
-      return this.patternMismatch;
-    }
-    get [dartx.rangeOverflow]() {
-      return this.rangeOverflow;
-    }
-    get [dartx.rangeUnderflow]() {
-      return this.rangeUnderflow;
-    }
-    get [dartx.stepMismatch]() {
-      return this.stepMismatch;
-    }
-    get [dartx.tooLong]() {
-      return this.tooLong;
-    }
-    get [dartx.tooShort]() {
-      return this.tooShort;
-    }
-    get [dartx.typeMismatch]() {
-      return this.typeMismatch;
-    }
-    get [dartx.valid]() {
-      return this.valid;
-    }
-    get [dartx.valueMissing]() {
-      return this.valueMissing;
-    }
-  };
-  dart.setSignature(html$.ValidityState, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.ValidityState, [])}),
-    fields: () => ({
-      [dartx.badInput]: core.bool,
-      [dartx.customError]: core.bool,
-      [dartx.patternMismatch]: core.bool,
-      [dartx.rangeOverflow]: core.bool,
-      [dartx.rangeUnderflow]: core.bool,
-      [dartx.stepMismatch]: core.bool,
-      [dartx.tooLong]: core.bool,
-      [dartx.tooShort]: core.bool,
-      [dartx.typeMismatch]: core.bool,
-      [dartx.valid]: core.bool,
-      [dartx.valueMissing]: core.bool
-    })
-  });
-  dart.registerExtension(dart.global.ValidityState, html$.ValidityState);
-  dart.defineExtensionNames([
-    'getVideoPlaybackQuality',
-    'enterFullscreen',
-    'exitFullscreen',
-    'height',
-    'poster',
-    'videoHeight',
-    'videoWidth',
-    'decodedFrameCount',
-    'droppedFrameCount',
-    'width'
-  ]);
-  html$.VideoElement = class VideoElement extends html$.MediaElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.VideoElement._check(html$.document[dartx.createElement]("video"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.poster] = null;
-      this[dartx.videoHeight] = null;
-      this[dartx.videoWidth] = null;
-      this[dartx.decodedFrameCount] = null;
-      this[dartx.droppedFrameCount] = null;
-      this[dartx.width] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.poster]() {
-      return this.poster;
-    }
-    set [dartx.poster](value) {
-      this.poster = value;
-    }
-    get [dartx.videoHeight]() {
-      return this.videoHeight;
-    }
-    get [dartx.videoWidth]() {
-      return this.videoWidth;
-    }
-    get [dartx.decodedFrameCount]() {
-      return this.webkitDecodedFrameCount;
-    }
-    get [dartx.droppedFrameCount]() {
-      return this.webkitDroppedFrameCount;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    [dartx.getVideoPlaybackQuality](...args) {
-      return this.getVideoPlaybackQuality.apply(this, args);
-    }
-    [dartx.enterFullscreen](...args) {
-      return this.webkitEnterFullscreen.apply(this, args);
-    }
-    [dartx.exitFullscreen](...args) {
-      return this.webkitExitFullscreen.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(html$.VideoElement, 'created');
-  html$.VideoElement[dart.implements] = () => [html$.CanvasImageSource];
-  dart.setSignature(html$.VideoElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.VideoElement, []),
-      new: dart.definiteFunctionType(html$.VideoElement, []),
-      created: dart.definiteFunctionType(html$.VideoElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: core.int,
-      [dartx.poster]: core.String,
-      [dartx.videoHeight]: core.int,
-      [dartx.videoWidth]: core.int,
-      [dartx.decodedFrameCount]: core.int,
-      [dartx.droppedFrameCount]: core.int,
-      [dartx.width]: core.int
-    }),
-    methods: () => ({
-      [dartx.getVideoPlaybackQuality]: dart.definiteFunctionType(html$.VideoPlaybackQuality, []),
-      [dartx.enterFullscreen]: dart.definiteFunctionType(dart.void, []),
-      [dartx.exitFullscreen]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLVideoElement, html$.VideoElement);
-  dart.defineExtensionNames([
-    'corruptedVideoFrames',
-    'creationTime',
-    'droppedVideoFrames',
-    'totalVideoFrames'
-  ]);
-  html$.VideoPlaybackQuality = class VideoPlaybackQuality extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.corruptedVideoFrames]() {
-      return this.corruptedVideoFrames;
-    }
-    get [dartx.creationTime]() {
-      return this.creationTime;
-    }
-    get [dartx.droppedVideoFrames]() {
-      return this.droppedVideoFrames;
-    }
-    get [dartx.totalVideoFrames]() {
-      return this.totalVideoFrames;
-    }
-  };
-  dart.setSignature(html$.VideoPlaybackQuality, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VideoPlaybackQuality, [])}),
-    fields: () => ({
-      [dartx.corruptedVideoFrames]: core.int,
-      [dartx.creationTime]: core.double,
-      [dartx.droppedVideoFrames]: core.int,
-      [dartx.totalVideoFrames]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.VideoPlaybackQuality, html$.VideoPlaybackQuality);
-  dart.defineExtensionNames([
-    'id',
-    'kind',
-    'label',
-    'language',
-    'selected'
-  ]);
-  html$.VideoTrack = class VideoTrack extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    get [dartx.kind]() {
-      return this.kind;
-    }
-    get [dartx.label]() {
-      return this.label;
-    }
-    get [dartx.language]() {
-      return this.language;
-    }
-    get [dartx.selected]() {
-      return this.selected;
-    }
-    set [dartx.selected](value) {
-      this.selected = value;
-    }
-  };
-  dart.setSignature(html$.VideoTrack, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VideoTrack, [])}),
-    fields: () => ({
-      [dartx.id]: core.String,
-      [dartx.kind]: core.String,
-      [dartx.label]: core.String,
-      [dartx.language]: core.String,
-      [dartx.selected]: core.bool
-    })
-  });
-  dart.registerExtension(dart.global.VideoTrack, html$.VideoTrack);
-  dart.defineExtensionNames([
-    'getTrackById',
-    'onChange',
-    'length',
-    'selectedIndex'
-  ]);
-  html$.VideoTrackList = class VideoTrackList extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.selectedIndex]() {
-      return this.selectedIndex;
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.getTrackById](...args) {
-      return this.getTrackById.apply(this, args);
-    }
-    get [dartx.onChange]() {
-      return html$.VideoTrackList.changeEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.VideoTrackList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VideoTrackList, [])}),
-    fields: () => ({
-      [dartx.length]: core.int,
-      [dartx.selectedIndex]: core.int
-    }),
-    getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [__getter__]: dart.definiteFunctionType(html$.VideoTrack, [core.int]),
-      [dartx.getTrackById]: dart.definiteFunctionType(html$.VideoTrack, [core.String])
-    }),
-    sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
-  });
-  dart.defineLazy(html$.VideoTrackList, {
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    }
-  });
-  dart.registerExtension(dart.global.VideoTrackList, html$.VideoTrackList);
-  html$.VoidCallback = dart.typedef('VoidCallback', () => dart.functionType(dart.void, []));
-  dart.defineExtensionNames([
-    'getCueAsHtml',
-    'align',
-    'line',
-    'position',
-    'regionId',
-    'size',
-    'snapToLines',
-    'text',
-    'vertical'
-  ]);
-  html$.VttCue = class VttCue extends html$.TextTrackCue {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(startTime, endTime, text) {
-      return html$.VttCue._create_1(startTime, endTime, text);
-    }
-    static _create_1(startTime, endTime, text) {
-      return new VTTCue(startTime, endTime, text);
-    }
-    get [dartx.align]() {
-      return this.align;
-    }
-    set [dartx.align](value) {
-      this.align = value;
-    }
-    get [dartx.line]() {
-      return this.line;
-    }
-    set [dartx.line](value) {
-      this.line = value;
-    }
-    get [dartx.position]() {
-      return this.position;
-    }
-    set [dartx.position](value) {
-      this.position = value;
-    }
-    get [dartx.regionId]() {
-      return this.regionId;
-    }
-    set [dartx.regionId](value) {
-      this.regionId = value;
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-    set [dartx.size](value) {
-      this.size = value;
-    }
-    get [dartx.snapToLines]() {
-      return this.snapToLines;
-    }
-    set [dartx.snapToLines](value) {
-      this.snapToLines = value;
-    }
-    get [dartx.text]() {
-      return this.text;
-    }
-    set [dartx.text](value) {
-      this.text = value;
-    }
-    get [dartx.vertical]() {
-      return this.vertical;
-    }
-    set [dartx.vertical](value) {
-      this.vertical = value;
-    }
-    [dartx.getCueAsHtml](...args) {
-      return this.getCueAsHTML.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.VttCue, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.VttCue, []),
-      new: dart.definiteFunctionType(html$.VttCue, [core.num, core.num, core.String])
-    }),
-    fields: () => ({
-      [dartx.align]: core.String,
-      [dartx.line]: core.Object,
-      [dartx.position]: core.Object,
-      [dartx.regionId]: core.String,
-      [dartx.size]: core.num,
-      [dartx.snapToLines]: core.bool,
-      [dartx.text]: core.String,
-      [dartx.vertical]: core.String
-    }),
-    methods: () => ({[dartx.getCueAsHtml]: dart.definiteFunctionType(html$.DocumentFragment, [])}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.VttCue, [dart.dynamic, dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.VTTCue, html$.VttCue);
-  dart.defineExtensionNames([
-    'height',
-    'id',
-    'regionAnchorX',
-    'regionAnchorY',
-    'scroll',
-    'track',
-    'viewportAnchorX',
-    'viewportAnchorY',
-    'width'
-  ]);
-  html$.VttRegion = class VttRegion extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.VttRegion._create_1();
-    }
-    static _create_1() {
-      return new VTTRegion();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.id]() {
-      return this.id;
-    }
-    set [dartx.id](value) {
-      this.id = value;
-    }
-    get [dartx.regionAnchorX]() {
-      return this.regionAnchorX;
-    }
-    set [dartx.regionAnchorX](value) {
-      this.regionAnchorX = value;
-    }
-    get [dartx.regionAnchorY]() {
-      return this.regionAnchorY;
-    }
-    set [dartx.regionAnchorY](value) {
-      this.regionAnchorY = value;
-    }
-    get [dartx.scroll]() {
-      return this.scroll;
-    }
-    set [dartx.scroll](value) {
-      this.scroll = value;
-    }
-    get [dartx.track]() {
-      return this.track;
-    }
-    get [dartx.viewportAnchorX]() {
-      return this.viewportAnchorX;
-    }
-    set [dartx.viewportAnchorX](value) {
-      this.viewportAnchorX = value;
-    }
-    get [dartx.viewportAnchorY]() {
-      return this.viewportAnchorY;
-    }
-    set [dartx.viewportAnchorY](value) {
-      this.viewportAnchorY = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-  };
-  dart.setSignature(html$.VttRegion, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.VttRegion, []),
-      new: dart.definiteFunctionType(html$.VttRegion, [])
-    }),
-    fields: () => ({
-      [dartx.height]: core.int,
-      [dartx.id]: core.String,
-      [dartx.regionAnchorX]: core.num,
-      [dartx.regionAnchorY]: core.num,
-      [dartx.scroll]: core.String,
-      [dartx.track]: html$.TextTrack,
-      [dartx.viewportAnchorX]: core.num,
-      [dartx.viewportAnchorY]: core.num,
-      [dartx.width]: core.num
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.VttRegion, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.VTTRegion, html$.VttRegion);
-  dart.defineExtensionNames([
-    'getRegionById',
-    'item',
-    'length'
-  ]);
-  html$.VttRegionList = class VttRegionList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx.getRegionById](...args) {
-      return this.getRegionById.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.VttRegionList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.VttRegionList, [])}),
-    fields: () => ({[dartx.length]: core.int}),
-    methods: () => ({
-      [dartx.getRegionById]: dart.definiteFunctionType(html$.VttRegion, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(html$.VttRegion, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.VTTRegionList, html$.VttRegionList);
-  dart.defineExtensionNames([
-    'close',
-    'send',
-    'sendBlob',
-    'sendByteBuffer',
-    'sendString',
-    'sendTypedData',
-    'onClose',
-    'onError',
-    'onMessage',
-    'onOpen',
-    'binaryType',
-    'bufferedAmount',
-    'extensions',
-    'protocol',
-    'readyState',
-    'url'
-  ]);
-  html$.WebSocket = class WebSocket extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(url, protocols) {
-      if (protocols === void 0) protocols = null;
-      if (protocols != null) {
-        return html$.WebSocket._create_1(url, protocols);
-      }
-      return html$.WebSocket._create_2(url);
-    }
-    static _create_1(url, protocols) {
-      return new self.WebSocket(url, protocols);
-    }
-    static _create_2(url) {
-      return new self.WebSocket(url);
-    }
-    static get supported() {
-      return typeof window.WebSocket != "undefined";
-    }
-    get [dartx.binaryType]() {
-      return this.binaryType;
-    }
-    set [dartx.binaryType](value) {
-      this.binaryType = value;
-    }
-    get [dartx.bufferedAmount]() {
-      return this.bufferedAmount;
-    }
-    get [dartx.extensions]() {
-      return this.extensions;
-    }
-    get [dartx.protocol]() {
-      return this.protocol;
-    }
-    get [dartx.readyState]() {
-      return this.readyState;
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.send](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendBlob](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendByteBuffer](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendString](...args) {
-      return this.send.apply(this, args);
-    }
-    [dartx.sendTypedData](...args) {
-      return this.send.apply(this, args);
-    }
-    get [dartx.onClose]() {
-      return html$.WebSocket.closeEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.WebSocket.errorEvent.forTarget(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.WebSocket.messageEvent.forTarget(this);
-    }
-    get [dartx.onOpen]() {
-      return html$.WebSocket.openEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.WebSocket, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.WebSocket, []),
-      new: dart.definiteFunctionType(html$.WebSocket, [core.String], [core.Object])
-    }),
-    fields: () => ({
-      [dartx.binaryType]: core.String,
-      [dartx.bufferedAmount]: core.int,
-      [dartx.extensions]: core.String,
-      [dartx.protocol]: core.String,
-      [dartx.readyState]: core.int,
-      [dartx.url]: core.String
-    }),
-    getters: () => ({
-      [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.CloseEvent), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
-      [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    methods: () => ({
-      [dartx.close]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
-      [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html$.Blob]),
-      [dartx.sendByteBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
-      [dartx.sendString]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.sendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData])
-    }),
-    sfields: () => ({
-      closeEvent: EventStreamProviderOfCloseEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent(),
-      openEvent: EventStreamProviderOfEvent(),
-      CLOSED: core.int,
-      CLOSING: core.int,
-      CONNECTING: core.int,
-      OPEN: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.WebSocket, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.WebSocket, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  html$.WebSocket.CLOSED = 3;
-  html$.WebSocket.CLOSING = 2;
-  html$.WebSocket.CONNECTING = 0;
-  html$.WebSocket.OPEN = 1;
-  dart.defineLazy(html$.WebSocket, {
-    get closeEvent() {
-      return dart.const(new (EventStreamProviderOfCloseEvent())('close'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    },
-    get openEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('open'));
-    }
-  });
-  dart.registerExtension(dart.global.WebSocket, html$.WebSocket);
-  const _deltaX = Symbol('_deltaX');
-  const _deltaY = Symbol('_deltaY');
-  const _wheelDelta = Symbol('_wheelDelta');
-  const _wheelDeltaX = Symbol('_wheelDeltaX');
-  const _hasInitMouseScrollEvent = Symbol('_hasInitMouseScrollEvent');
-  const _initMouseScrollEvent = Symbol('_initMouseScrollEvent');
-  const _hasInitWheelEvent = Symbol('_hasInitWheelEvent');
-  const _initWheelEvent = Symbol('_initWheelEvent');
-  dart.defineExtensionNames([
-    'deltaY',
-    'deltaX',
-    'deltaMode',
-    'deltaZ'
-  ]);
-  html$.WheelEvent = class WheelEvent extends html$.MouseEvent {
-    static new(type, opts) {
-      let view = opts && 'view' in opts ? opts.view : null;
-      let deltaX = opts && 'deltaX' in opts ? opts.deltaX : 0;
-      let deltaY = opts && 'deltaY' in opts ? opts.deltaY : 0;
-      let deltaZ = opts && 'deltaZ' in opts ? opts.deltaZ : 0;
-      let deltaMode = opts && 'deltaMode' in opts ? opts.deltaMode : 0;
-      let detail = opts && 'detail' in opts ? opts.detail : 0;
-      let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
-      let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
-      let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
-      let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
-      let button = opts && 'button' in opts ? opts.button : 0;
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
-      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
-      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
-      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
-      let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
-      let options = dart.map({view: view, deltaMode: deltaMode, deltaX: deltaX, deltaY: deltaY, deltaZ: deltaZ, detail: detail, screenX: screenX, screenY: screenY, clientX: clientX, clientY: clientY, button: button, bubbles: canBubble, cancelable: cancelable, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey, metaKey: metaKey, relatedTarget: relatedTarget}, core.String, core.Object);
-      if (view == null) {
-        view = html$.window;
-      }
-      return new self.WheelEvent(type, html_common.convertDartToNative_Dictionary(options));
-    }
-    static _(type, eventInitDict) {
-      if (eventInitDict === void 0) eventInitDict = null;
-      if (eventInitDict != null) {
-        let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-        return html$.WheelEvent._create_1(type, eventInitDict_1);
-      }
-      return html$.WheelEvent._create_2(type);
-    }
-    static _create_1(type, eventInitDict) {
-      return new self.WheelEvent(type, eventInitDict);
-    }
-    static _create_2(type) {
-      return new self.WheelEvent(type);
-    }
-    get [_deltaX]() {
-      return this.deltaX;
-    }
-    get [_deltaY]() {
-      return this.deltaY;
-    }
-    get [dartx.deltaZ]() {
-      return this.deltaZ;
-    }
-    get [dartx.deltaY]() {
-      if (this.deltaY !== undefined) {
-        return this[_deltaY];
-      }
-      dart.throw(new core.UnsupportedError('deltaY is not supported'));
-    }
-    get [dartx.deltaX]() {
-      if (this.deltaX !== undefined) {
-        return this[_deltaX];
-      }
-      dart.throw(new core.UnsupportedError('deltaX is not supported'));
-    }
-    get [dartx.deltaMode]() {
-      if (!!this.deltaMode) {
-        return this.deltaMode;
-      }
-      return 0;
-    }
-    get [_wheelDelta]() {
-      return this.wheelDelta;
-    }
-    get [_wheelDeltaX]() {
-      return this.wheelDeltaX;
-    }
-    get [_detail]() {
-      return this.detail;
-    }
-    get [_hasInitMouseScrollEvent]() {
-      return !!this.initMouseScrollEvent;
-    }
-    [_initMouseScrollEvent](...args) {
-      return this.initMouseScrollEvent.apply(this, args);
-    }
-    get [_hasInitWheelEvent]() {
-      return !!this.initWheelEvent;
-    }
-    [_initWheelEvent](...args) {
-      return this.initWheelEvent.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.WheelEvent, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.WheelEvent, [core.String], {view: html$.Window, deltaX: core.num, deltaY: core.num, deltaZ: core.num, deltaMode: core.int, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html$.EventTarget}),
-      _: dart.definiteFunctionType(html$.WheelEvent, [core.String], [core.Map])
-    }),
-    fields: () => ({
-      [_deltaX]: core.double,
-      [_deltaY]: core.double,
-      [dartx.deltaZ]: core.double
-    }),
-    getters: () => ({
-      [dartx.deltaY]: dart.definiteFunctionType(core.num, []),
-      [dartx.deltaX]: dart.definiteFunctionType(core.num, []),
-      [dartx.deltaMode]: dart.definiteFunctionType(core.int, []),
-      [_wheelDelta]: dart.definiteFunctionType(core.num, []),
-      [_wheelDeltaX]: dart.definiteFunctionType(core.num, []),
-      [_detail]: dart.definiteFunctionType(core.num, []),
-      [_hasInitMouseScrollEvent]: dart.definiteFunctionType(core.bool, []),
-      [_hasInitWheelEvent]: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      [_initMouseScrollEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget, core.int]),
-      [_initWheelEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.int, html$.EventTarget, core.String, core.int, core.int, core.int, core.int])
-    }),
-    sfields: () => ({
-      DOM_DELTA_LINE: core.int,
-      DOM_DELTA_PAGE: core.int,
-      DOM_DELTA_PIXEL: core.int
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$.WheelEvent, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$.WheelEvent, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  html$.WheelEvent.DOM_DELTA_LINE = 1;
-  html$.WheelEvent.DOM_DELTA_PAGE = 2;
-  html$.WheelEvent.DOM_DELTA_PIXEL = 0;
-  dart.registerExtension(dart.global.WheelEvent, html$.WheelEvent);
-  const _open2 = Symbol('_open2');
-  const _open3 = Symbol('_open3');
-  const _location = Symbol('_location');
-  const _ensureRequestAnimationFrame = Symbol('_ensureRequestAnimationFrame');
-  const _requestAnimationFrame = Symbol('_requestAnimationFrame');
-  const _cancelAnimationFrame = Symbol('_cancelAnimationFrame');
-  const _requestFileSystem = Symbol('_requestFileSystem');
-  const _get_opener = Symbol('_get_opener');
-  const _pageXOffset = Symbol('_pageXOffset');
-  const _pageYOffset = Symbol('_pageYOffset');
-  const _get_parent = Symbol('_get_parent');
-  const _get_self = Symbol('_get_self');
-  const _get_top = Symbol('_get_top');
-  const __getter___1 = Symbol('__getter___1');
-  const __getter___2 = Symbol('__getter___2');
-  const _scroll_4 = Symbol('_scroll_4');
-  const _scroll_5 = Symbol('_scroll_5');
-  const _scrollBy_4 = Symbol('_scrollBy_4');
-  const _scrollBy_5 = Symbol('_scrollBy_5');
-  const _scrollTo_4 = Symbol('_scrollTo_4');
-  const _scrollTo_5 = Symbol('_scrollTo_5');
-  const __requestFileSystem = Symbol('__requestFileSystem');
-  const _resolveLocalFileSystemUrl = Symbol('_resolveLocalFileSystemUrl');
-  dart.defineExtensionNames([
-    'animationFrame',
-    'document',
-    'open',
-    'location',
-    'location',
-    'requestAnimationFrame',
-    'cancelAnimationFrame',
-    'indexedDB',
-    'console',
-    'requestFileSystem',
-    'opener',
-    'opener',
-    'parent',
-    'self',
-    'top',
-    'window',
-    'alert',
-    'close',
-    'confirm',
-    'fetch',
-    'find',
-    'getMatchedCssRules',
-    'getSelection',
-    'matchMedia',
-    'moveBy',
-    'openDatabase',
-    'postMessage',
-    'print',
-    'resizeBy',
-    'resizeTo',
-    'scroll',
-    'scrollBy',
-    'scrollTo',
-    'stop',
-    'resolveLocalFileSystemUrl',
-    'atob',
-    'btoa',
-    'onContentLoaded',
-    'onAbort',
-    'onBlur',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onChange',
-    'onClick',
-    'onContextMenu',
-    'onDoubleClick',
-    'onDeviceMotion',
-    'onDeviceOrientation',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onDurationChange',
-    'onEmptied',
-    'onEnded',
-    'onError',
-    'onFocus',
-    'onHashChange',
-    'onInput',
-    'onInvalid',
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-    'onLoad',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onLoadStart',
-    'onMessage',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-    'onMouseWheel',
-    'onOffline',
-    'onOnline',
-    'onPageHide',
-    'onPageShow',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onPopState',
-    'onProgress',
-    'onRateChange',
-    'onReset',
-    'onResize',
-    'onScroll',
-    'onSearch',
-    'onSeeked',
-    'onSeeking',
-    'onSelect',
-    'onStalled',
-    'onStorage',
-    'onSubmit',
-    'onSuspend',
-    'onTimeUpdate',
-    'onTouchCancel',
-    'onTouchEnd',
-    'onTouchMove',
-    'onTouchStart',
-    'onTransitionEnd',
-    'onUnload',
-    'onVolumeChange',
-    'onWaiting',
-    'onAnimationEnd',
-    'onAnimationIteration',
-    'onAnimationStart',
-    'onBeforeUnload',
-    'moveTo',
-    'pageXOffset',
-    'pageYOffset',
-    'scrollX',
-    'scrollY',
-    'applicationCache',
-    'caches',
-    'closed',
-    'crypto',
-    'defaultStatus',
-    'defaultstatus',
-    'devicePixelRatio',
-    'history',
-    'innerHeight',
-    'innerWidth',
-    'localStorage',
-    'locationbar',
-    'menubar',
-    'name',
-    'navigator',
-    'offscreenBuffering',
-    'orientation',
-    'outerHeight',
-    'outerWidth',
-    'performance',
-    'screen',
-    'screenLeft',
-    'screenTop',
-    'screenX',
-    'screenY',
-    'scrollbars',
-    'sessionStorage',
-    'speechSynthesis',
-    'status',
-    'statusbar',
-    'styleMedia',
-    'toolbar'
-  ]);
-  html$.Window = class Window extends html$.EventTarget {
-    get [dartx.animationFrame]() {
-      let completer = CompleterOfnum().sync();
-      this[dartx.requestAnimationFrame](dart.fn(time => {
-        completer.complete(time);
-      }, numToNull()));
-      return completer.future;
-    }
-    get [dartx.document]() {
-      return this.document;
-    }
-    [_open2](url, name) {
-      return this.open(url, name);
-    }
-    [_open3](url, name, options) {
-      return this.open(url, name, options);
-    }
-    [dartx.open](url, name, options) {
-      if (options === void 0) options = null;
-      if (options == null) {
-        return html$._DOMWindowCrossFrame._createSafe(this[_open2](url, name));
-      } else {
-        return html$._DOMWindowCrossFrame._createSafe(this[_open3](url, name, options));
-      }
-    }
-    get [dartx.location]() {
-      return html$.Location._check(this[_location]);
-    }
-    set [dartx.location](value) {
-      this[_location] = value;
-    }
-    get [_location]() {
-      return this.location;
-    }
-    set [_location](value) {
-      this.location = value;
-    }
-    [dartx.requestAnimationFrame](callback) {
-      this[_ensureRequestAnimationFrame]();
-      return this[_requestAnimationFrame](html$._wrapZone(core.num, dart.dynamic)(callback));
-    }
-    [dartx.cancelAnimationFrame](id) {
-      this[_ensureRequestAnimationFrame]();
-      this[_cancelAnimationFrame](id);
-    }
-    [_requestAnimationFrame](...args) {
-      return this.requestAnimationFrame.apply(this, args);
-    }
-    [_cancelAnimationFrame](...args) {
-      return this.cancelAnimationFrame.apply(this, args);
-    }
-    [_ensureRequestAnimationFrame]() {
-      if (!!(this.requestAnimationFrame && this.cancelAnimationFrame)) return;
-      (function($this) {
-        var vendors = ['ms', 'moz', 'webkit', 'o'];
-        for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
-          $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
-          $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFrame'] || $this[vendors[i] + 'CancelRequestAnimationFrame'];
+    let byteCount = 1;
+    if (dart.notNull(max) > 255) {
+      byteCount++;
+      if (dart.notNull(max) > 65535) {
+        byteCount++;
+        if (dart.notNull(max) > 16777215) {
+          byteCount++;
         }
-        if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return;
-        $this.requestAnimationFrame = function(callback) {
-          return window.setTimeout(function() {
-            callback(Date.now());
-          }, 16);
-        };
-        $this.cancelAnimationFrame = function(id) {
-          clearTimeout(id);
-        };
-      })(this);
-    }
-    get [dartx.indexedDB]() {
-      return this.indexedDB || this.webkitIndexedDB || this.mozIndexedDB;
-    }
-    get [dartx.console]() {
-      return html$.Console._safeConsole;
-    }
-    [dartx.requestFileSystem](size, opts) {
-      let persistent = opts && 'persistent' in opts ? opts.persistent : false;
-      return this[_requestFileSystem](dart.test(persistent) ? 1 : 0, size);
-    }
-    static get supportsPointConversions() {
-      return html$.DomPoint.supported;
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.applicationCache]() {
-      return this.applicationCache;
-    }
-    get [dartx.caches]() {
-      return this.caches;
-    }
-    get [dartx.closed]() {
-      return this.closed;
-    }
-    get [dartx.crypto]() {
-      return this.crypto;
-    }
-    get [dartx.defaultStatus]() {
-      return this.defaultStatus;
-    }
-    set [dartx.defaultStatus](value) {
-      this.defaultStatus = value;
-    }
-    get [dartx.defaultstatus]() {
-      return this.defaultstatus;
-    }
-    set [dartx.defaultstatus](value) {
-      this.defaultstatus = value;
-    }
-    get [dartx.devicePixelRatio]() {
-      return this.devicePixelRatio;
-    }
-    get [dartx.history]() {
-      return this.history;
-    }
-    get [dartx.innerHeight]() {
-      return this.innerHeight;
-    }
-    get [dartx.innerWidth]() {
-      return this.innerWidth;
-    }
-    get [dartx.localStorage]() {
-      return this.localStorage;
-    }
-    get [dartx.locationbar]() {
-      return this.locationbar;
-    }
-    get [dartx.menubar]() {
-      return this.menubar;
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    set [dartx.name](value) {
-      this.name = value;
-    }
-    get [dartx.navigator]() {
-      return this.navigator;
-    }
-    get [dartx.offscreenBuffering]() {
-      return this.offscreenBuffering;
-    }
-    get [dartx.opener]() {
-      return html$._convertNativeToDart_Window(this[_get_opener]);
-    }
-    get [_get_opener]() {
-      return this.opener;
-    }
-    set [dartx.opener](value) {
-      this.opener = value;
-    }
-    get [dartx.orientation]() {
-      return this.orientation;
-    }
-    get [dartx.outerHeight]() {
-      return this.outerHeight;
-    }
-    get [dartx.outerWidth]() {
-      return this.outerWidth;
-    }
-    get [_pageXOffset]() {
-      return this.pageXOffset;
-    }
-    get [_pageYOffset]() {
-      return this.pageYOffset;
-    }
-    get [dartx.parent]() {
-      return html$._convertNativeToDart_Window(this[_get_parent]);
-    }
-    get [_get_parent]() {
-      return this.parent;
-    }
-    get [dartx.performance]() {
-      return this.performance;
-    }
-    get [dartx.screen]() {
-      return this.screen;
-    }
-    get [dartx.screenLeft]() {
-      return this.screenLeft;
-    }
-    get [dartx.screenTop]() {
-      return this.screenTop;
-    }
-    get [dartx.screenX]() {
-      return this.screenX;
-    }
-    get [dartx.screenY]() {
-      return this.screenY;
-    }
-    get [dartx.scrollbars]() {
-      return this.scrollbars;
-    }
-    get [dartx.self]() {
-      return html$._convertNativeToDart_Window(this[_get_self]);
-    }
-    get [_get_self]() {
-      return this.self;
-    }
-    get [dartx.sessionStorage]() {
-      return this.sessionStorage;
-    }
-    get [dartx.speechSynthesis]() {
-      return this.speechSynthesis;
-    }
-    get [dartx.status]() {
-      return this.status;
-    }
-    set [dartx.status](value) {
-      this.status = value;
-    }
-    get [dartx.statusbar]() {
-      return this.statusbar;
-    }
-    get [dartx.styleMedia]() {
-      return this.styleMedia;
-    }
-    get [dartx.toolbar]() {
-      return this.toolbar;
-    }
-    get [dartx.top]() {
-      return html$._convertNativeToDart_Window(this[_get_top]);
-    }
-    get [_get_top]() {
-      return this.top;
-    }
-    get [dartx.window]() {
-      return html$._convertNativeToDart_Window(this[_get_window]);
-    }
-    get [_get_window]() {
-      return this.window;
-    }
-    [__getter__](index_OR_name) {
-      if (typeof index_OR_name == 'number') {
-        return html$._convertNativeToDart_Window(this[__getter___1](index_OR_name));
       }
-      if (typeof index_OR_name == 'string') {
-        return html$._convertNativeToDart_Window(this[__getter___2](index_OR_name));
+    }
+    this[_buffer$0][dartx.setUint32](0, 0);
+    let start = 4 - byteCount;
+    let randomLimit = dart.asInt(math.pow(256, byteCount));
+    while (true) {
+      this[_getRandomBytes](start, byteCount);
+      let random = this[_buffer$0][dartx.getUint32](0);
+      if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) {
+        return (dart.notNull(random) & dart.notNull(max) - 1) >>> 0;
       }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [__getter___1](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [__getter___2](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.alert](...args) {
-      return this.alert.apply(this, args);
-    }
-    [dartx.close](...args) {
-      return this.close.apply(this, args);
-    }
-    [dartx.confirm](...args) {
-      return this.confirm.apply(this, args);
-    }
-    [dartx.fetch](input, init) {
-      if (init === void 0) init = null;
-      if (init != null) {
-        let init_1 = html_common.convertDartToNative_Dictionary(init);
-        return this[_fetch_1](input, init_1);
+      let result = dart.asInt(random[dartx.remainder](max));
+      if (dart.notNull(random) - dart.notNull(result) + dart.notNull(max) < dart.notNull(randomLimit)) {
+        return result;
       }
-      return this[_fetch_2](input);
     }
-    [_fetch_1](...args) {
-      return this.fetch.apply(this, args);
+  }
+};
+math._JSSecureRandom[dart.implements] = () => [math.Random];
+dart.setSignature(math._JSSecureRandom, {
+  constructors: () => ({new: dart.definiteFunctionType(math._JSSecureRandom, [])}),
+  fields: () => ({[_buffer$0]: typed_data.ByteData}),
+  methods: () => ({
+    [_getRandomBytes]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    nextBool: dart.definiteFunctionType(core.bool, []),
+    nextDouble: dart.definiteFunctionType(core.double, []),
+    nextInt: dart.definiteFunctionType(core.int, [core.int])
+  })
+});
+math._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
+  static combine(hash, value) {
+    hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
+    hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
+    return (dart.notNull(hash) ^ hash[dartx['>>']](6)) >>> 0;
+  }
+  static finish(hash) {
+    hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
+    hash = (dart.notNull(hash) ^ hash[dartx['>>']](11)) >>> 0;
+    return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
+  }
+  static hash2(a, b) {
+    return math._JenkinsSmiHash.finish(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)));
+  }
+  static hash4(a, b, c, d) {
+    return math._JenkinsSmiHash.finish(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(math._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)), core.int._check(c)), core.int._check(d)));
+  }
+};
+dart.setSignature(math._JenkinsSmiHash, {
+  statics: () => ({
+    combine: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    finish: dart.definiteFunctionType(core.int, [core.int]),
+    hash2: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic]),
+    hash4: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['combine', 'finish', 'hash2', 'hash4']
+});
+math.Point$ = dart.generic(T => {
+  let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
+  class Point extends core.Object {
+    new(x, y) {
+      this.x = x;
+      this.y = y;
     }
-    [_fetch_2](...args) {
-      return this.fetch.apply(this, args);
+    toString() {
+      return dart.str`Point(${this.x}, ${this.y})`;
     }
-    [dartx.find](...args) {
-      return this.find.apply(this, args);
+    ['=='](other) {
+      if (!PointOfnum().is(other)) return false;
+      return dart.equals(this.x, dart.dload(other, 'x')) && dart.equals(this.y, dart.dload(other, 'y'));
     }
-    [_getComputedStyle](...args) {
-      return this.getComputedStyle.apply(this, args);
+    get hashCode() {
+      return math._JenkinsSmiHash.hash2(dart.hashCode(this.x), dart.hashCode(this.y));
     }
-    [dartx.getMatchedCssRules](...args) {
-      return this.getMatchedCSSRules.apply(this, args);
+    ['+'](other) {
+      PointOfT()._check(other);
+      return new (PointOfT())(dart.notNull(this.x) + dart.notNull(other.x), dart.notNull(this.y) + dart.notNull(other.y));
     }
-    [dartx.getSelection](...args) {
-      return this.getSelection.apply(this, args);
+    ['-'](other) {
+      PointOfT()._check(other);
+      return new (PointOfT())(dart.notNull(this.x) - dart.notNull(other.x), dart.notNull(this.y) - dart.notNull(other.y));
     }
-    [dartx.matchMedia](...args) {
-      return this.matchMedia.apply(this, args);
+    ['*'](factor) {
+      return new (PointOfT())(dart.notNull(this.x) * dart.notNull(factor), dart.notNull(this.y) * dart.notNull(factor));
     }
-    [dartx.moveBy](...args) {
-      return this.moveBy.apply(this, args);
+    get magnitude() {
+      return math.sqrt(dart.notNull(this.x) * dart.notNull(this.x) + dart.notNull(this.y) * dart.notNull(this.y));
     }
-    [_moveTo](...args) {
-      return this.moveTo.apply(this, args);
+    distanceTo(other) {
+      PointOfT()._check(other);
+      let dx = dart.notNull(this.x) - dart.notNull(other.x);
+      let dy = dart.notNull(this.y) - dart.notNull(other.y);
+      return math.sqrt(dx * dx + dy * dy);
     }
-    [dartx.openDatabase](...args) {
-      return this.openDatabase.apply(this, args);
+    squaredDistanceTo(other) {
+      PointOfT()._check(other);
+      let dx = dart.notNull(this.x) - dart.notNull(other.x);
+      let dy = dart.notNull(this.y) - dart.notNull(other.y);
+      return dx * dx + dy * dy;
     }
-    [dartx.postMessage](message, targetOrigin, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, targetOrigin, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1, targetOrigin);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [dartx.print](...args) {
-      return this.print.apply(this, args);
-    }
-    [dartx.resizeBy](...args) {
-      return this.resizeBy.apply(this, args);
-    }
-    [dartx.resizeTo](...args) {
-      return this.resizeTo.apply(this, args);
-    }
-    [dartx.scroll](options_OR_x, y, scrollOptions) {
-      if (options_OR_x === void 0) options_OR_x = null;
-      if (y === void 0) y = null;
-      if (scrollOptions === void 0) scrollOptions = null;
-      if (options_OR_x == null && y == null && scrollOptions == null) {
-        this[_scroll_1]();
-        return;
-      }
-      if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
-        this[_scroll_2](options_1);
-        return;
-      }
-      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
-        this[_scroll_3](options_OR_x, y);
-        return;
-      }
-      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
-        this[_scroll_4](options_OR_x, y);
-        return;
-      }
-      if (scrollOptions != null && typeof y == 'number' && typeof options_OR_x == 'number') {
-        let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
-        this[_scroll_5](options_OR_x, y, scrollOptions_1);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_scroll_1](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [_scroll_2](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [_scroll_3](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [_scroll_4](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [_scroll_5](...args) {
-      return this.scroll.apply(this, args);
-    }
-    [dartx.scrollBy](options_OR_x, y, scrollOptions) {
-      if (options_OR_x === void 0) options_OR_x = null;
-      if (y === void 0) y = null;
-      if (scrollOptions === void 0) scrollOptions = null;
-      if (options_OR_x == null && y == null && scrollOptions == null) {
-        this[_scrollBy_1]();
-        return;
-      }
-      if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
-        this[_scrollBy_2](options_1);
-        return;
-      }
-      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
-        this[_scrollBy_3](options_OR_x, y);
-        return;
-      }
-      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
-        this[_scrollBy_4](options_OR_x, y);
-        return;
-      }
-      if (scrollOptions != null && typeof y == 'number' && typeof options_OR_x == 'number') {
-        let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
-        this[_scrollBy_5](options_OR_x, y, scrollOptions_1);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_scrollBy_1](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollBy_2](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollBy_3](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollBy_4](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [_scrollBy_5](...args) {
-      return this.scrollBy.apply(this, args);
-    }
-    [dartx.scrollTo](options_OR_x, y, scrollOptions) {
-      if (options_OR_x === void 0) options_OR_x = null;
-      if (y === void 0) y = null;
-      if (scrollOptions === void 0) scrollOptions = null;
-      if (options_OR_x == null && y == null && scrollOptions == null) {
-        this[_scrollTo_1]();
-        return;
-      }
-      if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
-        let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
-        this[_scrollTo_2](options_1);
-        return;
-      }
-      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
-        this[_scrollTo_3](options_OR_x, y);
-        return;
-      }
-      if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
-        this[_scrollTo_4](options_OR_x, y);
-        return;
-      }
-      if (scrollOptions != null && typeof y == 'number' && typeof options_OR_x == 'number') {
-        let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
-        this[_scrollTo_5](options_OR_x, y, scrollOptions_1);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_scrollTo_1](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [_scrollTo_2](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [_scrollTo_3](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [_scrollTo_4](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [_scrollTo_5](...args) {
-      return this.scrollTo.apply(this, args);
-    }
-    [dartx.stop](...args) {
-      return this.stop.apply(this, args);
-    }
-    [__requestFileSystem](...args) {
-      return this.webkitRequestFileSystem.apply(this, args);
-    }
-    [_requestFileSystem](type, size) {
-      let completer = CompleterOfFileSystem().new();
-      this[__requestFileSystem](type, size, dart.fn(value => {
-        completer.complete(value);
-      }, FileSystemToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [_resolveLocalFileSystemUrl](...args) {
-      return this.webkitResolveLocalFileSystemURL.apply(this, args);
-    }
-    [dartx.resolveLocalFileSystemUrl](url) {
-      let completer = CompleterOfEntry().new();
-      this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
-        completer.complete(value);
-      }, EntryToNull()), dart.fn(error => {
-        completer.completeError(error);
-      }, FileErrorToNull()));
-      return completer.future;
-    }
-    [dartx.atob](...args) {
-      return this.atob.apply(this, args);
-    }
-    [dartx.btoa](...args) {
-      return this.btoa.apply(this, args);
-    }
-    [_setInterval_String](...args) {
-      return this.setInterval.apply(this, args);
-    }
-    [_setTimeout_String](...args) {
-      return this.setTimeout.apply(this, args);
-    }
-    [_clearInterval](...args) {
-      return this.clearInterval.apply(this, args);
-    }
-    [_clearTimeout](...args) {
-      return this.clearTimeout.apply(this, args);
-    }
-    [_setInterval](...args) {
-      return this.setInterval.apply(this, args);
-    }
-    [_setTimeout](...args) {
-      return this.setTimeout.apply(this, args);
-    }
-    get [dartx.onContentLoaded]() {
-      return html$.Window.contentLoadedEvent.forTarget(this);
-    }
-    get [dartx.onAbort]() {
-      return html$.Element.abortEvent.forTarget(this);
-    }
-    get [dartx.onBlur]() {
-      return html$.Element.blurEvent.forTarget(this);
-    }
-    get [dartx.onCanPlay]() {
-      return html$.Element.canPlayEvent.forTarget(this);
-    }
-    get [dartx.onCanPlayThrough]() {
-      return html$.Element.canPlayThroughEvent.forTarget(this);
-    }
-    get [dartx.onChange]() {
-      return html$.Element.changeEvent.forTarget(this);
-    }
-    get [dartx.onClick]() {
-      return html$.Element.clickEvent.forTarget(this);
-    }
-    get [dartx.onContextMenu]() {
-      return html$.Element.contextMenuEvent.forTarget(this);
-    }
-    get [dartx.onDoubleClick]() {
-      return html$.Element.doubleClickEvent.forTarget(this);
-    }
-    get [dartx.onDeviceMotion]() {
-      return html$.Window.deviceMotionEvent.forTarget(this);
-    }
-    get [dartx.onDeviceOrientation]() {
-      return html$.Window.deviceOrientationEvent.forTarget(this);
-    }
-    get [dartx.onDrag]() {
-      return html$.Element.dragEvent.forTarget(this);
-    }
-    get [dartx.onDragEnd]() {
-      return html$.Element.dragEndEvent.forTarget(this);
-    }
-    get [dartx.onDragEnter]() {
-      return html$.Element.dragEnterEvent.forTarget(this);
-    }
-    get [dartx.onDragLeave]() {
-      return html$.Element.dragLeaveEvent.forTarget(this);
-    }
-    get [dartx.onDragOver]() {
-      return html$.Element.dragOverEvent.forTarget(this);
-    }
-    get [dartx.onDragStart]() {
-      return html$.Element.dragStartEvent.forTarget(this);
-    }
-    get [dartx.onDrop]() {
-      return html$.Element.dropEvent.forTarget(this);
-    }
-    get [dartx.onDurationChange]() {
-      return html$.Element.durationChangeEvent.forTarget(this);
-    }
-    get [dartx.onEmptied]() {
-      return html$.Element.emptiedEvent.forTarget(this);
-    }
-    get [dartx.onEnded]() {
-      return html$.Element.endedEvent.forTarget(this);
-    }
-    get [dartx.onError]() {
-      return html$.Element.errorEvent.forTarget(this);
-    }
-    get [dartx.onFocus]() {
-      return html$.Element.focusEvent.forTarget(this);
-    }
-    get [dartx.onHashChange]() {
-      return html$.Window.hashChangeEvent.forTarget(this);
-    }
-    get [dartx.onInput]() {
-      return html$.Element.inputEvent.forTarget(this);
-    }
-    get [dartx.onInvalid]() {
-      return html$.Element.invalidEvent.forTarget(this);
-    }
-    get [dartx.onKeyDown]() {
-      return html$.Element.keyDownEvent.forTarget(this);
-    }
-    get [dartx.onKeyPress]() {
-      return html$.Element.keyPressEvent.forTarget(this);
-    }
-    get [dartx.onKeyUp]() {
-      return html$.Element.keyUpEvent.forTarget(this);
-    }
-    get [dartx.onLoad]() {
-      return html$.Element.loadEvent.forTarget(this);
-    }
-    get [dartx.onLoadedData]() {
-      return html$.Element.loadedDataEvent.forTarget(this);
-    }
-    get [dartx.onLoadedMetadata]() {
-      return html$.Element.loadedMetadataEvent.forTarget(this);
-    }
-    get [dartx.onLoadStart]() {
-      return html$.Window.loadStartEvent.forTarget(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.Window.messageEvent.forTarget(this);
-    }
-    get [dartx.onMouseDown]() {
-      return html$.Element.mouseDownEvent.forTarget(this);
-    }
-    get [dartx.onMouseEnter]() {
-      return html$.Element.mouseEnterEvent.forTarget(this);
-    }
-    get [dartx.onMouseLeave]() {
-      return html$.Element.mouseLeaveEvent.forTarget(this);
-    }
-    get [dartx.onMouseMove]() {
-      return html$.Element.mouseMoveEvent.forTarget(this);
-    }
-    get [dartx.onMouseOut]() {
-      return html$.Element.mouseOutEvent.forTarget(this);
-    }
-    get [dartx.onMouseOver]() {
-      return html$.Element.mouseOverEvent.forTarget(this);
-    }
-    get [dartx.onMouseUp]() {
-      return html$.Element.mouseUpEvent.forTarget(this);
-    }
-    get [dartx.onMouseWheel]() {
-      return html$.Element.mouseWheelEvent.forTarget(this);
-    }
-    get [dartx.onOffline]() {
-      return html$.Window.offlineEvent.forTarget(this);
-    }
-    get [dartx.onOnline]() {
-      return html$.Window.onlineEvent.forTarget(this);
-    }
-    get [dartx.onPageHide]() {
-      return html$.Window.pageHideEvent.forTarget(this);
-    }
-    get [dartx.onPageShow]() {
-      return html$.Window.pageShowEvent.forTarget(this);
-    }
-    get [dartx.onPause]() {
-      return html$.Element.pauseEvent.forTarget(this);
-    }
-    get [dartx.onPlay]() {
-      return html$.Element.playEvent.forTarget(this);
-    }
-    get [dartx.onPlaying]() {
-      return html$.Element.playingEvent.forTarget(this);
-    }
-    get [dartx.onPopState]() {
-      return html$.Window.popStateEvent.forTarget(this);
-    }
-    get [dartx.onProgress]() {
-      return html$.Window.progressEvent.forTarget(this);
-    }
-    get [dartx.onRateChange]() {
-      return html$.Element.rateChangeEvent.forTarget(this);
-    }
-    get [dartx.onReset]() {
-      return html$.Element.resetEvent.forTarget(this);
-    }
-    get [dartx.onResize]() {
-      return html$.Element.resizeEvent.forTarget(this);
-    }
-    get [dartx.onScroll]() {
-      return html$.Element.scrollEvent.forTarget(this);
-    }
-    get [dartx.onSearch]() {
-      return html$.Element.searchEvent.forTarget(this);
-    }
-    get [dartx.onSeeked]() {
-      return html$.Element.seekedEvent.forTarget(this);
-    }
-    get [dartx.onSeeking]() {
-      return html$.Element.seekingEvent.forTarget(this);
-    }
-    get [dartx.onSelect]() {
-      return html$.Element.selectEvent.forTarget(this);
-    }
-    get [dartx.onStalled]() {
-      return html$.Element.stalledEvent.forTarget(this);
-    }
-    get [dartx.onStorage]() {
-      return html$.Window.storageEvent.forTarget(this);
-    }
-    get [dartx.onSubmit]() {
-      return html$.Element.submitEvent.forTarget(this);
-    }
-    get [dartx.onSuspend]() {
-      return html$.Element.suspendEvent.forTarget(this);
-    }
-    get [dartx.onTimeUpdate]() {
-      return html$.Element.timeUpdateEvent.forTarget(this);
-    }
-    get [dartx.onTouchCancel]() {
-      return html$.Element.touchCancelEvent.forTarget(this);
-    }
-    get [dartx.onTouchEnd]() {
-      return html$.Element.touchEndEvent.forTarget(this);
-    }
-    get [dartx.onTouchMove]() {
-      return html$.Element.touchMoveEvent.forTarget(this);
-    }
-    get [dartx.onTouchStart]() {
-      return html$.Element.touchStartEvent.forTarget(this);
-    }
-    get [dartx.onTransitionEnd]() {
-      return html$.Element.transitionEndEvent.forTarget(this);
-    }
-    get [dartx.onUnload]() {
-      return html$.Window.unloadEvent.forTarget(this);
-    }
-    get [dartx.onVolumeChange]() {
-      return html$.Element.volumeChangeEvent.forTarget(this);
-    }
-    get [dartx.onWaiting]() {
-      return html$.Element.waitingEvent.forTarget(this);
-    }
-    get [dartx.onAnimationEnd]() {
-      return html$.Window.animationEndEvent.forTarget(this);
-    }
-    get [dartx.onAnimationIteration]() {
-      return html$.Window.animationIterationEvent.forTarget(this);
-    }
-    get [dartx.onAnimationStart]() {
-      return html$.Window.animationStartEvent.forTarget(this);
-    }
-    get [dartx.onBeforeUnload]() {
-      return html$.Window.beforeUnloadEvent.forTarget(this);
-    }
-    [dartx.moveTo](p) {
-      this[_moveTo](dart.asInt(p.x), dart.asInt(p.y));
-    }
-    get [dartx.pageXOffset]() {
-      return this.pageXOffset[dartx.round]();
-    }
-    get [dartx.pageYOffset]() {
-      return this.pageYOffset[dartx.round]();
-    }
-    get [dartx.scrollX]() {
-      return "scrollX" in this ? this.scrollX[dartx.round]() : this[dartx.document][dartx.documentElement][dartx.scrollLeft];
-    }
-    get [dartx.scrollY]() {
-      return "scrollY" in this ? this.scrollY[dartx.round]() : this[dartx.document][dartx.documentElement][dartx.scrollTop];
-    }
-  };
-  html$.Window[dart.implements] = () => [html$.WindowEventHandlers, html$.WindowBase, html$.GlobalEventHandlers, html$._WindowTimers, html$.WindowBase64];
-  dart.setSignature(html$.Window, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.Window, [])}),
+  }
+  dart.addTypeTests(Point);
+  dart.setSignature(Point, {
+    constructors: () => ({new: dart.definiteFunctionType(math.Point$(T), [T, T])}),
     fields: () => ({
-      [dartx.applicationCache]: html$.ApplicationCache,
-      [dartx.caches]: html$.CacheStorage,
-      [dartx.closed]: core.bool,
-      [dartx.crypto]: html$.Crypto,
-      [dartx.defaultStatus]: core.String,
-      [dartx.defaultstatus]: core.String,
-      [dartx.devicePixelRatio]: core.double,
-      [dartx.history]: html$.History,
-      [dartx.innerHeight]: core.int,
-      [dartx.innerWidth]: core.int,
-      [dartx.localStorage]: html$.Storage,
-      [dartx.locationbar]: html$.BarProp,
-      [dartx.menubar]: html$.BarProp,
-      [dartx.name]: core.String,
-      [dartx.navigator]: html$.Navigator,
-      [dartx.offscreenBuffering]: core.bool,
-      [_get_opener]: dart.dynamic,
-      [dartx.orientation]: core.int,
-      [dartx.outerHeight]: core.int,
-      [dartx.outerWidth]: core.int,
-      [_pageXOffset]: core.double,
-      [_pageYOffset]: core.double,
-      [_get_parent]: dart.dynamic,
-      [dartx.performance]: html$.Performance,
-      [dartx.screen]: html$.Screen,
-      [dartx.screenLeft]: core.int,
-      [dartx.screenTop]: core.int,
-      [dartx.screenX]: core.int,
-      [dartx.screenY]: core.int,
-      [dartx.scrollbars]: html$.BarProp,
-      [_get_self]: dart.dynamic,
-      [dartx.sessionStorage]: html$.Storage,
-      [dartx.speechSynthesis]: html$.SpeechSynthesis,
-      [dartx.status]: core.String,
-      [dartx.statusbar]: html$.BarProp,
-      [dartx.styleMedia]: html$.StyleMedia,
-      [dartx.toolbar]: html$.BarProp,
-      [_get_top]: dart.dynamic,
-      [_get_window]: dart.dynamic
+      x: T,
+      y: T
     }),
-    getters: () => ({
-      [dartx.animationFrame]: dart.definiteFunctionType(async.Future$(core.num), []),
-      [dartx.document]: dart.definiteFunctionType(html$.Document, []),
-      [dartx.location]: dart.definiteFunctionType(html$.Location, []),
-      [_location]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.indexedDB]: dart.definiteFunctionType(indexed_db.IdbFactory, []),
-      [dartx.console]: dart.definiteFunctionType(html$.Console, []),
-      [dartx.opener]: dart.definiteFunctionType(html$.WindowBase, []),
-      [dartx.parent]: dart.definiteFunctionType(html$.WindowBase, []),
-      [dartx.self]: dart.definiteFunctionType(html$.WindowBase, []),
-      [dartx.top]: dart.definiteFunctionType(html$.WindowBase, []),
-      [dartx.window]: dart.definiteFunctionType(html$.WindowBase, []),
-      [dartx.onContentLoaded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onDeviceMotion]: dart.definiteFunctionType(async.Stream$(html$.DeviceMotionEvent), []),
-      [dartx.onDeviceOrientation]: dart.definiteFunctionType(async.Stream$(html$.DeviceOrientationEvent), []),
-      [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onHashChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
-      [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
-      [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
-      [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
-      [dartx.onOffline]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onOnline]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPageHide]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPageShow]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onPopState]: dart.definiteFunctionType(async.Stream$(html$.PopStateEvent), []),
-      [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onStorage]: dart.definiteFunctionType(async.Stream$(html$.StorageEvent), []),
-      [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
-      [dartx.onTransitionEnd]: dart.definiteFunctionType(async.Stream$(html$.TransitionEvent), []),
-      [dartx.onUnload]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onAnimationEnd]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
-      [dartx.onAnimationIteration]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
-      [dartx.onAnimationStart]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
-      [dartx.onBeforeUnload]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.pageXOffset]: dart.definiteFunctionType(core.int, []),
-      [dartx.pageYOffset]: dart.definiteFunctionType(core.int, []),
-      [dartx.scrollX]: dart.definiteFunctionType(core.int, []),
-      [dartx.scrollY]: dart.definiteFunctionType(core.int, [])
-    }),
-    setters: () => ({
-      [dartx.location]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_location]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.opener]: dart.definiteFunctionType(dart.void, [html$.Window])
-    }),
+    getters: () => ({magnitude: dart.definiteFunctionType(core.double, [])}),
     methods: () => ({
-      [_open2]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic, dart.dynamic]),
-      [_open3]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      [dartx.open]: dart.definiteFunctionType(html$.WindowBase, [core.String, core.String], [core.String]),
-      [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback]),
-      [dartx.cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback]),
-      [_cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_ensureRequestAnimationFrame]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.requestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int], {persistent: core.bool}),
-      [__getter__]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic]),
-      [__getter___1]: dart.definiteFunctionType(dart.dynamic, [core.int]),
-      [__getter___2]: dart.definiteFunctionType(dart.dynamic, [core.String]),
-      [dartx.alert]: dart.definiteFunctionType(dart.void, [], [core.String]),
-      [dartx.close]: dart.definiteFunctionType(dart.void, []),
-      [dartx.confirm]: dart.definiteFunctionType(core.bool, [], [core.String]),
-      [dartx.fetch]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
-      [_fetch_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
-      [_fetch_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
-      [dartx.find]: dart.definiteFunctionType(core.bool, [core.String, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool]),
-      [_getComputedStyle]: dart.definiteFunctionType(html$.CssStyleDeclaration, [html$.Element, core.String]),
-      [dartx.getMatchedCssRules]: dart.definiteFunctionType(core.List$(html$.CssRule), [html$.Element, core.String]),
-      [dartx.getSelection]: dart.definiteFunctionType(html$.Selection, []),
-      [dartx.matchMedia]: dart.definiteFunctionType(html$.MediaQueryList, [core.String]),
-      [dartx.moveBy]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [_moveTo]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.openDatabase]: dart.definiteFunctionType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [html$.DatabaseCallback]),
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      [dartx.print]: dart.definiteFunctionType(dart.void, []),
-      [dartx.resizeBy]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.resizeTo]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.scroll]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
-      [_scroll_1]: dart.definiteFunctionType(dart.void, []),
-      [_scroll_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_scroll_3]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [_scroll_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [_scroll_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
-      [dartx.scrollBy]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
-      [_scrollBy_1]: dart.definiteFunctionType(dart.void, []),
-      [_scrollBy_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_scrollBy_3]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [_scrollBy_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [_scrollBy_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
-      [dartx.scrollTo]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
-      [_scrollTo_1]: dart.definiteFunctionType(dart.void, []),
-      [_scrollTo_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [_scrollTo_3]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [_scrollTo_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [_scrollTo_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
-      [dartx.stop]: dart.definiteFunctionType(dart.void, []),
-      [__requestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int, html$._FileSystemCallback], [html$._ErrorCallback]),
-      [_requestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int, core.int]),
-      [_resolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html$._EntryCallback], [html$._ErrorCallback]),
-      [dartx.resolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
-      [dartx.atob]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.btoa]: dart.definiteFunctionType(core.String, [core.String]),
-      [_setInterval_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
-      [_setTimeout_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
-      [_clearInterval]: dart.definiteFunctionType(dart.void, [], [core.int]),
-      [_clearTimeout]: dart.definiteFunctionType(dart.void, [], [core.int]),
-      [_setInterval]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-      [_setTimeout]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
-      [dartx.moveTo]: dart.definiteFunctionType(dart.void, [PointOfnum()])
-    }),
-    sfields: () => ({
-      contentLoadedEvent: EventStreamProviderOfEvent(),
-      deviceMotionEvent: EventStreamProviderOfDeviceMotionEvent(),
-      deviceOrientationEvent: EventStreamProviderOfDeviceOrientationEvent(),
-      hashChangeEvent: EventStreamProviderOfEvent(),
-      loadStartEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent(),
-      offlineEvent: EventStreamProviderOfEvent(),
-      onlineEvent: EventStreamProviderOfEvent(),
-      pageHideEvent: EventStreamProviderOfEvent(),
-      pageShowEvent: EventStreamProviderOfEvent(),
-      popStateEvent: EventStreamProviderOfPopStateEvent(),
-      progressEvent: EventStreamProviderOfEvent(),
-      storageEvent: EventStreamProviderOfStorageEvent(),
-      unloadEvent: EventStreamProviderOfEvent(),
-      animationEndEvent: EventStreamProviderOfAnimationEvent(),
-      animationIterationEvent: EventStreamProviderOfAnimationEvent(),
-      animationStartEvent: EventStreamProviderOfAnimationEvent(),
-      PERSISTENT: core.int,
-      TEMPORARY: core.int,
-      beforeUnloadEvent: EventStreamProviderOfBeforeUnloadEvent()
-    }),
-    sgetters: () => ({supportsPointConversions: dart.definiteFunctionType(core.bool, [])})
-  });
-  html$.Window.PERSISTENT = 1;
-  html$.Window.TEMPORARY = 0;
-  dart.defineLazy(html$.Window, {
-    get contentLoadedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('DOMContentLoaded'));
-    },
-    get deviceMotionEvent() {
-      return dart.const(new (EventStreamProviderOfDeviceMotionEvent())('devicemotion'));
-    },
-    get deviceOrientationEvent() {
-      return dart.const(new (EventStreamProviderOfDeviceOrientationEvent())('deviceorientation'));
-    },
-    get hashChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
-    },
-    get loadStartEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadstart'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    },
-    get offlineEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('offline'));
-    },
-    get onlineEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('online'));
-    },
-    get pageHideEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pagehide'));
-    },
-    get pageShowEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pageshow'));
-    },
-    get popStateEvent() {
-      return dart.const(new (EventStreamProviderOfPopStateEvent())('popstate'));
-    },
-    get progressEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('progress'));
-    },
-    get storageEvent() {
-      return dart.const(new (EventStreamProviderOfStorageEvent())('storage'));
-    },
-    get unloadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('unload'));
-    },
-    get animationEndEvent() {
-      return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationEnd'));
-    },
-    get animationIterationEvent() {
-      return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationIteration'));
-    },
-    get animationStartEvent() {
-      return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationStart'));
-    },
-    get beforeUnloadEvent() {
-      return dart.const(new html$._BeforeUnloadEventStreamProvider('beforeunload'));
-    }
-  });
-  dart.registerExtension(dart.global.Window, html$.Window);
-  dart.registerExtension(dart.global.DOMWindow, html$.Window);
-  const _returnValue = Symbol('_returnValue');
-  html$._WrappedEvent = class _WrappedEvent extends core.Object {
-    new(wrapped) {
-      this.wrapped = wrapped;
-      this[_selector] = null;
-    }
-    get bubbles() {
-      return this.wrapped[dartx.bubbles];
-    }
-    get cancelable() {
-      return this.wrapped[dartx.cancelable];
-    }
-    get currentTarget() {
-      return this.wrapped[dartx.currentTarget];
-    }
-    get defaultPrevented() {
-      return this.wrapped[dartx.defaultPrevented];
-    }
-    get eventPhase() {
-      return this.wrapped[dartx.eventPhase];
-    }
-    get target() {
-      return this.wrapped[dartx.target];
-    }
-    get timeStamp() {
-      return this.wrapped[dartx.timeStamp];
-    }
-    get type() {
-      return this.wrapped[dartx.type];
-    }
-    [_initEvent](eventTypeArg, canBubbleArg, cancelableArg) {
-      dart.throw(new core.UnsupportedError('Cannot initialize this Event.'));
-    }
-    preventDefault() {
-      this.wrapped[dartx.preventDefault]();
-    }
-    stopImmediatePropagation() {
-      this.wrapped[dartx.stopImmediatePropagation]();
-    }
-    stopPropagation() {
-      this.wrapped[dartx.stopPropagation]();
-    }
-    get matchingTarget() {
-      if (this[_selector] == null) {
-        dart.throw(new core.UnsupportedError('Cannot call matchingTarget if this Event did' + ' not arise as a result of event delegation.'));
-      }
-      let currentTarget = html$.Element._check(this.currentTarget);
-      let target = html$.Element._check(this.target);
-      let matchedTarget = null;
-      do {
-        if (dart.test(target[dartx.matches](this[_selector]))) return target;
-        target = target[dartx.parent];
-      } while (target != null && !dart.equals(target, currentTarget[dartx.parent]));
-      dart.throw(new core.StateError('No selector matched for populating matchedTarget.'));
-    }
-    get path() {
-      return ListOfNode()._check(this.wrapped[dartx.path]);
-    }
-    get [_get_currentTarget]() {
-      return this.wrapped[_get_currentTarget];
-    }
-    get [_get_target]() {
-      return this.wrapped[_get_target];
-    }
-  };
-  html$._WrappedEvent[dart.implements] = () => [html$.Event];
-  dart.setSignature(html$._WrappedEvent, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._WrappedEvent, [html$.Event])}),
-    fields: () => ({
-      wrapped: html$.Event,
-      [_selector]: core.String
-    }),
-    getters: () => ({
-      bubbles: dart.definiteFunctionType(core.bool, []),
-      cancelable: dart.definiteFunctionType(core.bool, []),
-      currentTarget: dart.definiteFunctionType(html$.EventTarget, []),
-      defaultPrevented: dart.definiteFunctionType(core.bool, []),
-      eventPhase: dart.definiteFunctionType(core.int, []),
-      target: dart.definiteFunctionType(html$.EventTarget, []),
-      timeStamp: dart.definiteFunctionType(core.int, []),
-      type: dart.definiteFunctionType(core.String, []),
-      matchingTarget: dart.definiteFunctionType(html$.Element, []),
-      path: dart.definiteFunctionType(core.List$(html$.Node), []),
-      [_get_currentTarget]: dart.definiteFunctionType(dart.dynamic, []),
-      [_get_target]: dart.definiteFunctionType(dart.dynamic, [])
-    }),
-    methods: () => ({
-      [_initEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool]),
-      preventDefault: dart.definiteFunctionType(dart.void, []),
-      stopImmediatePropagation: dart.definiteFunctionType(dart.void, []),
-      stopPropagation: dart.definiteFunctionType(dart.void, [])
+      '+': dart.definiteFunctionType(math.Point$(T), [PointOfT()]),
+      '-': dart.definiteFunctionType(math.Point$(T), [PointOfT()]),
+      '*': dart.definiteFunctionType(math.Point$(T), [core.num]),
+      distanceTo: dart.definiteFunctionType(core.double, [PointOfT()]),
+      squaredDistanceTo: dart.definiteFunctionType(T, [PointOfT()])
     })
   });
-  html$._BeforeUnloadEvent = class _BeforeUnloadEvent extends html$._WrappedEvent {
-    new(base) {
-      this[_returnValue] = null;
-      super.new(base);
-    }
-    get returnValue() {
-      return this[_returnValue];
-    }
-    set returnValue(value) {
-      this[_returnValue] = value;
-      if ("returnValue" in this.wrapped) {
-        this.wrapped.returnValue = value;
-      }
-    }
-  };
-  html$._BeforeUnloadEvent[dart.implements] = () => [html$.BeforeUnloadEvent];
-  dart.setSignature(html$._BeforeUnloadEvent, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._BeforeUnloadEvent, [html$.Event])}),
-    fields: () => ({[_returnValue]: core.String}),
-    getters: () => ({returnValue: dart.definiteFunctionType(core.String, [])}),
-    setters: () => ({returnValue: dart.definiteFunctionType(dart.void, [core.String])})
-  });
-  const _eventType = Symbol('_eventType');
-  html$._BeforeUnloadEventStreamProvider = class _BeforeUnloadEventStreamProvider extends core.Object {
-    new(eventType) {
-      this[_eventType] = eventType;
-    }
-    forTarget(e, opts) {
-      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-      let stream = new (_EventStreamOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
-      let controller = StreamControllerOfBeforeUnloadEvent().new({sync: true});
-      stream.listen(dart.fn(event => {
-        let wrapped = new html$._BeforeUnloadEvent(event);
-        controller.add(wrapped);
-      }, BeforeUnloadEventToNull()));
-      return controller.stream;
-    }
-    getEventType(target) {
-      return this[_eventType];
-    }
-    forElement(e, opts) {
-      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-      return new (_ElementEventStreamImplOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
-    }
-    [_forElementList](e, opts) {
-      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-      return new (_ElementListEventStreamImplOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
-    }
-  };
-  html$._BeforeUnloadEventStreamProvider[dart.implements] = () => [EventStreamProviderOfBeforeUnloadEvent()];
-  dart.setSignature(html$._BeforeUnloadEventStreamProvider, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._BeforeUnloadEventStreamProvider, [core.String])}),
-    fields: () => ({[_eventType]: core.String}),
-    methods: () => ({
-      forTarget: dart.definiteFunctionType(async.Stream$(html$.BeforeUnloadEvent), [html$.EventTarget], {useCapture: core.bool}),
-      getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
-      forElement: dart.definiteFunctionType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.Element], {useCapture: core.bool}),
-      [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(html$.BeforeUnloadEvent), [ElementListOfElement()], {useCapture: core.bool})
-    })
-  });
-  html$.WindowBase64 = class WindowBase64 extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.WindowBase64, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.WindowBase64, [])})
-  });
+  return Point;
+});
+math.Point = Point$();
+let const$82;
+math.Random = class Random extends core.Object {
+  static new(seed) {
+    if (seed === void 0) seed = null;
+    return seed == null ? const$82 || (const$82 = dart.const(new math._JSRandom())) : new math._Random(seed);
+  }
+  static secure() {
+    return math.Random._secureRandom;
+  }
+};
+dart.setSignature(math.Random, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(math.Random, [], [core.int]),
+    secure: dart.definiteFunctionType(math.Random, [])
+  }),
+  sfields: () => ({_secureRandom: math._JSSecureRandom})
+});
+dart.defineLazy(math.Random, {
+  get _secureRandom() {
+    return new math._JSSecureRandom();
+  }
+});
+math._RectangleBase$ = dart.generic(T => {
+  let RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
+  let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
   dart.defineExtensionNames([
-    'focus',
-    'focused',
-    'visibilityState'
-  ]);
-  html$.WindowClient = class WindowClient extends html$.Client {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.focused]() {
-      return this.focused;
-    }
-    get [dartx.visibilityState]() {
-      return this.visibilityState;
-    }
-    [dartx.focus](...args) {
-      return this.focus.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.WindowClient, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.WindowClient, [])}),
-    fields: () => ({
-      [dartx.focused]: core.bool,
-      [dartx.visibilityState]: core.String
-    }),
-    methods: () => ({[dartx.focus]: dart.definiteFunctionType(async.Future, [])})
-  });
-  dart.registerExtension(dart.global.WindowClient, html$.WindowClient);
-  dart.defineExtensionNames([
-    'onHashChange',
-    'onMessage',
-    'onOffline',
-    'onOnline',
-    'onPopState',
-    'onStorage',
-    'onUnload'
-  ]);
-  html$.WindowEventHandlers = class WindowEventHandlers extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get onHashChange() {
-      return html$.WindowEventHandlers.hashChangeEvent.forTarget(this);
-    }
-    get onMessage() {
-      return html$.WindowEventHandlers.messageEvent.forTarget(this);
-    }
-    get onOffline() {
-      return html$.WindowEventHandlers.offlineEvent.forTarget(this);
-    }
-    get onOnline() {
-      return html$.WindowEventHandlers.onlineEvent.forTarget(this);
-    }
-    get onPopState() {
-      return html$.WindowEventHandlers.popStateEvent.forTarget(this);
-    }
-    get onStorage() {
-      return html$.WindowEventHandlers.storageEvent.forTarget(this);
-    }
-    get onUnload() {
-      return html$.WindowEventHandlers.unloadEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(html$.WindowEventHandlers, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.WindowEventHandlers, [])}),
-    getters: () => ({
-      onHashChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onMessage: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
-      onOffline: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onOnline: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      onPopState: dart.definiteFunctionType(async.Stream$(html$.PopStateEvent), []),
-      onStorage: dart.definiteFunctionType(async.Stream$(html$.StorageEvent), []),
-      onUnload: dart.definiteFunctionType(async.Stream$(html$.Event), [])
-    }),
-    sfields: () => ({
-      hashChangeEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent(),
-      offlineEvent: EventStreamProviderOfEvent(),
-      onlineEvent: EventStreamProviderOfEvent(),
-      popStateEvent: EventStreamProviderOfPopStateEvent(),
-      storageEvent: EventStreamProviderOfStorageEvent(),
-      unloadEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineExtensionMembers(html$.WindowEventHandlers, [
-    'onHashChange',
-    'onMessage',
-    'onOffline',
-    'onOnline',
-    'onPopState',
-    'onStorage',
-    'onUnload'
-  ]);
-  dart.defineLazy(html$.WindowEventHandlers, {
-    get hashChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    },
-    get offlineEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('offline'));
-    },
-    get onlineEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('online'));
-    },
-    get popStateEvent() {
-      return dart.const(new (EventStreamProviderOfPopStateEvent())('popstate'));
-    },
-    get storageEvent() {
-      return dart.const(new (EventStreamProviderOfStorageEvent())('storage'));
-    },
-    get unloadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('unload'));
-    }
-  });
-  dart.defineExtensionNames([
-    'postMessage',
-    'terminate',
-    'onError',
-    'onMessage'
-  ]);
-  html$.Worker = class Worker extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(scriptUrl) {
-      return html$.Worker._create_1(scriptUrl);
-    }
-    static _create_1(scriptUrl) {
-      return new self.Worker(scriptUrl);
-    }
-    static get supported() {
-      return typeof window.Worker != "undefined";
-    }
-    [dartx.postMessage](message, transfer) {
-      if (transfer === void 0) transfer = null;
-      if (transfer != null) {
-        let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-        this[_postMessage_1](message_1, transfer);
-        return;
-      }
-      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
-      this[_postMessage_2](message_1);
-      return;
-    }
-    [_postMessage_1](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [_postMessage_2](...args) {
-      return this.postMessage.apply(this, args);
-    }
-    [dartx.terminate](...args) {
-      return this.terminate.apply(this, args);
-    }
-    get [dartx.onError]() {
-      return html$.Worker.errorEvent.forTarget(this);
-    }
-    get [dartx.onMessage]() {
-      return html$.Worker.messageEvent.forTarget(this);
-    }
-  };
-  html$.Worker[dart.implements] = () => [html$.AbstractWorker];
-  dart.setSignature(html$.Worker, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.Worker, []),
-      new: dart.definiteFunctionType(html$.Worker, [core.String])
-    }),
-    getters: () => ({
-      [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
-      [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])
-    }),
-    methods: () => ({
-      [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
-      [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
-      [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      [dartx.terminate]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      errorEvent: EventStreamProviderOfEvent(),
-      messageEvent: EventStreamProviderOfMessageEvent()
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.Worker, [dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.defineLazy(html$.Worker, {
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get messageEvent() {
-      return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
-    }
-  });
-  dart.registerExtension(dart.global.Worker, html$.Worker);
-  html$.WorkerConsole = class WorkerConsole extends html$.ConsoleBase {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.WorkerConsole, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.WorkerConsole, [])})
-  });
-  dart.registerExtension(dart.global.WorkerConsole, html$.WorkerConsole);
-  dart.defineExtensionNames([
-    'clearMarks',
-    'clearMeasures',
-    'getEntries',
-    'getEntriesByName',
-    'getEntriesByType',
-    'mark',
-    'measure',
-    'now',
-    'clearResourceTimings',
-    'setResourceTimingBufferSize',
-    'memory'
-  ]);
-  html$.WorkerPerformance = class WorkerPerformance extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.memory]() {
-      return this.memory;
-    }
-    [dartx.clearMarks](...args) {
-      return this.clearMarks.apply(this, args);
-    }
-    [dartx.clearMeasures](...args) {
-      return this.clearMeasures.apply(this, args);
-    }
-    [dartx.getEntries](...args) {
-      return this.getEntries.apply(this, args);
-    }
-    [dartx.getEntriesByName](...args) {
-      return this.getEntriesByName.apply(this, args);
-    }
-    [dartx.getEntriesByType](...args) {
-      return this.getEntriesByType.apply(this, args);
-    }
-    [dartx.mark](...args) {
-      return this.mark.apply(this, args);
-    }
-    [dartx.measure](...args) {
-      return this.measure.apply(this, args);
-    }
-    [dartx.now](...args) {
-      return this.now.apply(this, args);
-    }
-    [dartx.clearResourceTimings](...args) {
-      return this.webkitClearResourceTimings.apply(this, args);
-    }
-    [dartx.setResourceTimingBufferSize](...args) {
-      return this.webkitSetResourceTimingBufferSize.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.WorkerPerformance, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.WorkerPerformance, [])}),
-    fields: () => ({[dartx.memory]: html$.MemoryInfo}),
-    methods: () => ({
-      [dartx.clearMarks]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.clearMeasures]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.getEntries]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), []),
-      [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
-      [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String]),
-      [dartx.mark]: dart.definiteFunctionType(dart.void, [core.String]),
-      [dartx.measure]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.now]: dart.definiteFunctionType(core.double, []),
-      [dartx.clearResourceTimings]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setResourceTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.WorkerPerformance, html$.WorkerPerformance);
-  dart.defineExtensionNames([
-    'createExpression',
-    'createNSResolver',
-    'evaluate'
-  ]);
-  html$.XPathEvaluator = class XPathEvaluator extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.XPathEvaluator._create_1();
-    }
-    static _create_1() {
-      return new self.XPathEvaluator();
-    }
-    [dartx.createExpression](...args) {
-      return this.createExpression.apply(this, args);
-    }
-    [dartx.createNSResolver](...args) {
-      return this.createNSResolver.apply(this, args);
-    }
-    [dartx.evaluate](...args) {
-      return this.evaluate.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.XPathEvaluator, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.XPathEvaluator, []),
-      new: dart.definiteFunctionType(html$.XPathEvaluator, [])
-    }),
-    methods: () => ({
-      [dartx.createExpression]: dart.definiteFunctionType(html$.XPathExpression, [core.String, html$.XPathNSResolver]),
-      [dartx.createNSResolver]: dart.definiteFunctionType(html$.XPathNSResolver, [html$.Node]),
-      [dartx.evaluate]: dart.definiteFunctionType(html$.XPathResult, [core.String, html$.Node, html$.XPathNSResolver], [core.int, core.Object])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.XPathEvaluator, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.XPathEvaluator, html$.XPathEvaluator);
-  dart.defineExtensionNames([
-    'evaluate'
-  ]);
-  html$.XPathExpression = class XPathExpression extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.evaluate](...args) {
-      return this.evaluate.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.XPathExpression, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.XPathExpression, [])}),
-    methods: () => ({[dartx.evaluate]: dart.definiteFunctionType(html$.XPathResult, [html$.Node], [core.int, core.Object])})
-  });
-  dart.registerExtension(dart.global.XPathExpression, html$.XPathExpression);
-  dart.defineExtensionNames([
-    'lookupNamespaceUri'
-  ]);
-  html$.XPathNSResolver = class XPathNSResolver extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.lookupNamespaceUri](...args) {
-      return this.lookupNamespaceURI.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.XPathNSResolver, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.XPathNSResolver, [])}),
-    methods: () => ({[dartx.lookupNamespaceUri]: dart.definiteFunctionType(core.String, [core.String])})
-  });
-  dart.registerExtension(dart.global.XPathNSResolver, html$.XPathNSResolver);
-  dart.defineExtensionNames([
-    'iterateNext',
-    'snapshotItem',
-    'booleanValue',
-    'invalidIteratorState',
-    'numberValue',
-    'resultType',
-    'singleNodeValue',
-    'snapshotLength',
-    'stringValue'
-  ]);
-  html$.XPathResult = class XPathResult extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.booleanValue]() {
-      return this.booleanValue;
-    }
-    get [dartx.invalidIteratorState]() {
-      return this.invalidIteratorState;
-    }
-    get [dartx.numberValue]() {
-      return this.numberValue;
-    }
-    get [dartx.resultType]() {
-      return this.resultType;
-    }
-    get [dartx.singleNodeValue]() {
-      return this.singleNodeValue;
-    }
-    get [dartx.snapshotLength]() {
-      return this.snapshotLength;
-    }
-    get [dartx.stringValue]() {
-      return this.stringValue;
-    }
-    [dartx.iterateNext](...args) {
-      return this.iterateNext.apply(this, args);
-    }
-    [dartx.snapshotItem](...args) {
-      return this.snapshotItem.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.XPathResult, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.XPathResult, [])}),
-    fields: () => ({
-      [dartx.booleanValue]: core.bool,
-      [dartx.invalidIteratorState]: core.bool,
-      [dartx.numberValue]: core.double,
-      [dartx.resultType]: core.int,
-      [dartx.singleNodeValue]: html$.Node,
-      [dartx.snapshotLength]: core.int,
-      [dartx.stringValue]: core.String
-    }),
-    methods: () => ({
-      [dartx.iterateNext]: dart.definiteFunctionType(html$.Node, []),
-      [dartx.snapshotItem]: dart.definiteFunctionType(html$.Node, [core.int])
-    }),
-    sfields: () => ({
-      ANY_TYPE: core.int,
-      ANY_UNORDERED_NODE_TYPE: core.int,
-      BOOLEAN_TYPE: core.int,
-      FIRST_ORDERED_NODE_TYPE: core.int,
-      NUMBER_TYPE: core.int,
-      ORDERED_NODE_ITERATOR_TYPE: core.int,
-      ORDERED_NODE_SNAPSHOT_TYPE: core.int,
-      STRING_TYPE: core.int,
-      UNORDERED_NODE_ITERATOR_TYPE: core.int,
-      UNORDERED_NODE_SNAPSHOT_TYPE: core.int
-    })
-  });
-  html$.XPathResult.ANY_TYPE = 0;
-  html$.XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
-  html$.XPathResult.BOOLEAN_TYPE = 3;
-  html$.XPathResult.FIRST_ORDERED_NODE_TYPE = 9;
-  html$.XPathResult.NUMBER_TYPE = 1;
-  html$.XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;
-  html$.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;
-  html$.XPathResult.STRING_TYPE = 2;
-  html$.XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;
-  html$.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;
-  dart.registerExtension(dart.global.XPathResult, html$.XPathResult);
-  html$.XmlDocument = class XmlDocument extends html$.Document {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$.XmlDocument, {
-    constructors: () => ({_: dart.definiteFunctionType(html$.XmlDocument, [])})
-  });
-  dart.registerExtension(dart.global.XMLDocument, html$.XmlDocument);
-  dart.defineExtensionNames([
-    'serializeToString'
-  ]);
-  html$.XmlSerializer = class XmlSerializer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.XmlSerializer._create_1();
-    }
-    static _create_1() {
-      return new XMLSerializer();
-    }
-    [dartx.serializeToString](...args) {
-      return this.serializeToString.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.XmlSerializer, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.XmlSerializer, []),
-      new: dart.definiteFunctionType(html$.XmlSerializer, [])
-    }),
-    methods: () => ({[dartx.serializeToString]: dart.definiteFunctionType(core.String, [html$.Node])}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.XmlSerializer, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.XMLSerializer, html$.XmlSerializer);
-  dart.defineExtensionNames([
-    'clearParameters',
-    'getParameter',
-    'importStylesheet',
-    'removeParameter',
-    'reset',
-    'setParameter',
-    'transformToDocument',
-    'transformToFragment'
-  ]);
-  html$.XsltProcessor = class XsltProcessor extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$.XsltProcessor._create_1();
-    }
-    static _create_1() {
-      return new XSLTProcessor();
-    }
-    static get supported() {
-      return !!window.XSLTProcessor;
-    }
-    [dartx.clearParameters](...args) {
-      return this.clearParameters.apply(this, args);
-    }
-    [dartx.getParameter](...args) {
-      return this.getParameter.apply(this, args);
-    }
-    [dartx.importStylesheet](...args) {
-      return this.importStylesheet.apply(this, args);
-    }
-    [dartx.removeParameter](...args) {
-      return this.removeParameter.apply(this, args);
-    }
-    [dartx.reset](...args) {
-      return this.reset.apply(this, args);
-    }
-    [dartx.setParameter](...args) {
-      return this.setParameter.apply(this, args);
-    }
-    [dartx.transformToDocument](...args) {
-      return this.transformToDocument.apply(this, args);
-    }
-    [dartx.transformToFragment](...args) {
-      return this.transformToFragment.apply(this, args);
-    }
-  };
-  dart.setSignature(html$.XsltProcessor, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$.XsltProcessor, []),
-      new: dart.definiteFunctionType(html$.XsltProcessor, [])
-    }),
-    methods: () => ({
-      [dartx.clearParameters]: dart.definiteFunctionType(dart.void, []),
-      [dartx.getParameter]: dart.definiteFunctionType(core.String, [core.String, core.String]),
-      [dartx.importStylesheet]: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [dartx.removeParameter]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      [dartx.reset]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setParameter]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-      [dartx.transformToDocument]: dart.definiteFunctionType(html$.Document, [html$.Node]),
-      [dartx.transformToFragment]: dart.definiteFunctionType(html$.DocumentFragment, [html$.Node, html$.Document])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$.XsltProcessor, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.XSLTProcessor, html$.XsltProcessor);
-  dart.defineExtensionNames([
-    'name',
-    'value'
-  ]);
-  html$._Attr = class _Attr extends html$.Node {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.setSignature(html$._Attr, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._Attr, [])}),
-    fields: () => ({
-      [dartx.name]: core.String,
-      [dartx.value]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.Attr, html$._Attr);
-  html$._Cache = class _Cache extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._Cache, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._Cache, [])})
-  });
-  dart.registerExtension(dart.global.Cache, html$._Cache);
-  html$._CanvasPathMethods = class _CanvasPathMethods extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._CanvasPathMethods, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._CanvasPathMethods, [])})
-  });
-  dart.defineExtensionNames([
+    'right',
+    'bottom',
     'toString',
     '==',
     'hashCode',
@@ -93857,1533 +53629,91 @@
     'topLeft',
     'topRight',
     'bottomRight',
-    'bottomLeft',
-    'bottom',
-    'height',
-    'left',
-    'right',
-    'top',
-    'width'
+    'bottomLeft'
   ]);
-  html$._ClientRect = class _ClientRect extends _interceptors.Interceptor {
-    [dartx.toString]() {
-      return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
-    }
-    [dartx['==']](other) {
-      if (!RectangleOfnum().is(other)) return false;
-      return dart.equals(this[dartx.left], dart.dload(other, 'left')) && dart.equals(this[dartx.top], dart.dload(other, 'top')) && dart.equals(this[dartx.width], dart.dload(other, 'width')) && dart.equals(this[dartx.height], dart.dload(other, 'height'));
-    }
-    get [dartx.hashCode]() {
-      return html$._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
-    }
-    [dartx.intersection](other) {
-      let x0 = math.max(core.num)(this[dartx.left], other[dartx.left]);
-      let x1 = math.min(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-      if (dart.notNull(x0) <= dart.notNull(x1)) {
-        let y0 = math.max(core.num)(this[dartx.top], other[dartx.top]);
-        let y1 = math.min(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-        if (dart.notNull(y0) <= dart.notNull(y1)) {
-          return new (RectangleOfnum())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
-        }
-      }
-      return null;
-    }
-    [dartx.intersects](other) {
-      return dart.notNull(this[dartx.left]) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-    }
-    [dartx.boundingBox](other) {
-      let right = math.max(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-      let bottom = math.max(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-      let left = math.min(core.num)(this[dartx.left], other[dartx.left]);
-      let top = math.min(core.num)(this[dartx.top], other[dartx.top]);
-      return new (RectangleOfnum())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
-    }
-    [dartx.containsRectangle](another) {
-      return dart.notNull(this[dartx.left]) <= dart.notNull(another[dartx.left]) && dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(another[dartx.top]) && dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
-    }
-    [dartx.containsPoint](another) {
-      return dart.notNull(another.x) >= dart.notNull(this[dartx.left]) && dart.notNull(another.x) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(another.y) >= dart.notNull(this[dartx.top]) && dart.notNull(another.y) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
-    }
-    get [dartx.topLeft]() {
-      return new (PointOfnum())(this[dartx.left], this[dartx.top]);
-    }
-    get [dartx.topRight]() {
-      return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), this[dartx.top]);
-    }
-    get [dartx.bottomRight]() {
-      return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
-    }
-    get [dartx.bottomLeft]() {
-      return new (PointOfnum())(this[dartx.left], dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.bottom]() {
-      return this.bottom;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.left]() {
-      return this.left;
-    }
-    get [dartx.right]() {
-      return this.right;
-    }
-    get [dartx.top]() {
-      return this.top;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-  };
-  html$._ClientRect[dart.implements] = () => [RectangleOfnum()];
-  dart.setSignature(html$._ClientRect, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._ClientRect, [])}),
-    fields: () => ({
-      [dartx.bottom]: core.double,
-      [dartx.height]: core.double,
-      [dartx.left]: core.double,
-      [dartx.right]: core.double,
-      [dartx.top]: core.double,
-      [dartx.width]: core.double
-    }),
-    getters: () => ({
-      [dartx.topLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.topRight]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.bottomRight]: dart.definiteFunctionType(math.Point$(core.num), []),
-      [dartx.bottomLeft]: dart.definiteFunctionType(math.Point$(core.num), [])
-    }),
-    methods: () => ({
-      [dartx.intersection]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
-      [dartx.intersects]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-      [dartx.boundingBox]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
-      [dartx.containsRectangle]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-      [dartx.containsPoint]: dart.definiteFunctionType(core.bool, [PointOfnum()])
-    })
-  });
-  dart.registerExtension(dart.global.ClientRect, html$._ClientRect);
-  html$._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
-    static combine(hash, value) {
-      hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
-      hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
-      return (dart.notNull(hash) ^ hash[dartx['>>']](6)) >>> 0;
-    }
-    static finish(hash) {
-      hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
-      hash = (dart.notNull(hash) ^ hash[dartx['>>']](11)) >>> 0;
-      return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
-    }
-    static hash2(a, b) {
-      return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)));
-    }
-    static hash4(a, b, c, d) {
-      return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)), core.int._check(c)), core.int._check(d)));
-    }
-  };
-  dart.setSignature(html$._JenkinsSmiHash, {
-    statics: () => ({
-      combine: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      finish: dart.definiteFunctionType(core.int, [core.int]),
-      hash2: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic]),
-      hash4: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
-    }),
-    names: ['combine', 'finish', 'hash2', 'hash4']
-  });
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$._ClientRectList = class _ClientRectList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(math.Rectangle$(core.num)), html$.ImmutableListMixin$(math.Rectangle$(core.num))) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.item](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$._ClientRectList[dart.implements] = () => [ListOfRectangleOfnum()];
-  dart.setSignature(html$._ClientRectList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._ClientRectList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, RectangleOfnum()]),
-      [__getter__]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int]),
-      [dartx.item]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.ClientRectList, html$._ClientRectList);
-  dart.registerExtension(dart.global.DOMRectList, html$._ClientRectList);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$._CssRuleList = class _CssRuleList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.CssRule), html$.ImmutableListMixin$(html$.CssRule)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$._CssRuleList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfCssRule()];
-  dart.setSignature(html$._CssRuleList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._CssRuleList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.CssRule, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.CssRule]),
-      [dartx.item]: dart.definiteFunctionType(html$.CssRule, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.CSSRuleList, html$._CssRuleList);
-  html$._DOMFileSystemSync = class _DOMFileSystemSync extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._DOMFileSystemSync, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._DOMFileSystemSync, [])})
-  });
-  dart.registerExtension(dart.global.DOMFileSystemSync, html$._DOMFileSystemSync);
-  html$._EntrySync = class _EntrySync extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._EntrySync, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._EntrySync, [])})
-  });
-  dart.registerExtension(dart.global.EntrySync, html$._EntrySync);
-  html$._DirectoryEntrySync = class _DirectoryEntrySync extends html$._EntrySync {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._DirectoryEntrySync, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._DirectoryEntrySync, [])})
-  });
-  dart.registerExtension(dart.global.DirectoryEntrySync, html$._DirectoryEntrySync);
-  html$._DirectoryReaderSync = class _DirectoryReaderSync extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._DirectoryReaderSync, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._DirectoryReaderSync, [])})
-  });
-  dart.registerExtension(dart.global.DirectoryReaderSync, html$._DirectoryReaderSync);
-  html$._DocumentType = class _DocumentType extends html$.Node {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  html$._DocumentType[dart.implements] = () => [html$.ChildNode];
-  dart.setSignature(html$._DocumentType, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._DocumentType, [])})
-  });
-  dart.registerExtension(dart.global.DocumentType, html$._DocumentType);
-  dart.defineExtensionNames([
-    'height',
-    'height',
-    'width',
-    'width',
-    'x',
-    'x',
-    'y',
-    'y'
-  ]);
-  html$._DomRect = class _DomRect extends html$.DomRectReadOnly {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(x, y, width, height) {
-      if (x === void 0) x = null;
-      if (y === void 0) y = null;
-      if (width === void 0) width = null;
-      if (height === void 0) height = null;
-      if (height != null) {
-        return html$._DomRect._create_1(x, y, width, height);
-      }
-      if (width != null) {
-        return html$._DomRect._create_2(x, y, width);
-      }
-      if (y != null) {
-        return html$._DomRect._create_3(x, y);
-      }
-      if (x != null) {
-        return html$._DomRect._create_4(x);
-      }
-      return html$._DomRect._create_5();
-    }
-    static _create_1(x, y, width, height) {
-      return new DOMRect(x, y, width, height);
-    }
-    static _create_2(x, y, width) {
-      return new DOMRect(x, y, width);
-    }
-    static _create_3(x, y) {
-      return new DOMRect(x, y);
-    }
-    static _create_4(x) {
-      return new DOMRect(x);
-    }
-    static _create_5() {
-      return new DOMRect();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(html$._DomRect, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._DomRect, []),
-      new: dart.definiteFunctionType(html$._DomRect, [], [core.num, core.num, core.num, core.num])
-    }),
-    setters: () => ({
-      [dartx.height]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.width]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.x]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.y]: dart.definiteFunctionType(dart.void, [core.num])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic]),
-      _create_4: dart.definiteFunctionType(html$._DomRect, [dart.dynamic]),
-      _create_5: dart.definiteFunctionType(html$._DomRect, [])
-    }),
-    names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
-  });
-  dart.registerExtension(dart.global.DOMRect, html$._DomRect);
-  html$._FileEntrySync = class _FileEntrySync extends html$._EntrySync {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._FileEntrySync, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._FileEntrySync, [])})
-  });
-  dart.registerExtension(dart.global.FileEntrySync, html$._FileEntrySync);
-  html$._FileReaderSync = class _FileReaderSync extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return html$._FileReaderSync._create_1();
-    }
-    static _create_1() {
-      return new FileReaderSync();
-    }
-  };
-  dart.setSignature(html$._FileReaderSync, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._FileReaderSync, []),
-      new: dart.definiteFunctionType(html$._FileReaderSync, [])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(html$._FileReaderSync, [])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.FileReaderSync, html$._FileReaderSync);
-  html$._FileWriterSync = class _FileWriterSync extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._FileWriterSync, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._FileWriterSync, [])})
-  });
-  dart.registerExtension(dart.global.FileWriterSync, html$._FileWriterSync);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$._GamepadList = class _GamepadList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Gamepad), html$.ImmutableListMixin$(html$.Gamepad)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$._GamepadList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfGamepad()];
-  dart.setSignature(html$._GamepadList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._GamepadList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.Gamepad, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Gamepad]),
-      [dartx.item]: dart.definiteFunctionType(html$.Gamepad, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.GamepadList, html$._GamepadList);
-  html$._HTMLAllCollection = class _HTMLAllCollection extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [_item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  dart.setSignature(html$._HTMLAllCollection, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._HTMLAllCollection, [])}),
-    methods: () => ({[_item]: dart.definiteFunctionType(html$.Element, [core.int])})
-  });
-  dart.registerExtension(dart.global.HTMLAllCollection, html$._HTMLAllCollection);
-  html$._HTMLAppletElement = class _HTMLAppletElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$._HTMLAppletElement, 'created');
-  dart.setSignature(html$._HTMLAppletElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._HTMLAppletElement, []),
-      created: dart.definiteFunctionType(html$._HTMLAppletElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLAppletElement, html$._HTMLAppletElement);
-  html$._HTMLDirectoryElement = class _HTMLDirectoryElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$._HTMLDirectoryElement, 'created');
-  dart.setSignature(html$._HTMLDirectoryElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._HTMLDirectoryElement, []),
-      created: dart.definiteFunctionType(html$._HTMLDirectoryElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLDirectoryElement, html$._HTMLDirectoryElement);
-  html$._HTMLFontElement = class _HTMLFontElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$._HTMLFontElement, 'created');
-  dart.setSignature(html$._HTMLFontElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._HTMLFontElement, []),
-      created: dart.definiteFunctionType(html$._HTMLFontElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLFontElement, html$._HTMLFontElement);
-  html$._HTMLFrameElement = class _HTMLFrameElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$._HTMLFrameElement, 'created');
-  dart.setSignature(html$._HTMLFrameElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._HTMLFrameElement, []),
-      created: dart.definiteFunctionType(html$._HTMLFrameElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLFrameElement, html$._HTMLFrameElement);
-  html$._HTMLFrameSetElement = class _HTMLFrameSetElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$._HTMLFrameSetElement, 'created');
-  html$._HTMLFrameSetElement[dart.implements] = () => [html$.WindowEventHandlers];
-  dart.setSignature(html$._HTMLFrameSetElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._HTMLFrameSetElement, []),
-      created: dart.definiteFunctionType(html$._HTMLFrameSetElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLFrameSetElement, html$._HTMLFrameSetElement);
-  html$._HTMLMarqueeElement = class _HTMLMarqueeElement extends html$.HtmlElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(html$._HTMLMarqueeElement, 'created');
-  dart.setSignature(html$._HTMLMarqueeElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._HTMLMarqueeElement, []),
-      created: dart.definiteFunctionType(html$._HTMLMarqueeElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.HTMLMarqueeElement, html$._HTMLMarqueeElement);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'getNamedItem',
-    'getNamedItemNS',
-    'item',
-    'removeNamedItem',
-    'removeNamedItemNS',
-    'setNamedItem',
-    'setNamedItemNS'
-  ]);
-  html$._NamedNodeMap = class _NamedNodeMap extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.getNamedItem](...args) {
-      return this.getNamedItem.apply(this, args);
-    }
-    [dartx.getNamedItemNS](...args) {
-      return this.getNamedItemNS.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-    [dartx.removeNamedItem](...args) {
-      return this.removeNamedItem.apply(this, args);
-    }
-    [dartx.removeNamedItemNS](...args) {
-      return this.removeNamedItemNS.apply(this, args);
-    }
-    [dartx.setNamedItem](...args) {
-      return this.setNamedItem.apply(this, args);
-    }
-    [dartx.setNamedItemNS](...args) {
-      return this.setNamedItemNS.apply(this, args);
-    }
-  };
-  html$._NamedNodeMap[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
-  dart.setSignature(html$._NamedNodeMap, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._NamedNodeMap, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
-      [dartx.getNamedItem]: dart.definiteFunctionType(html$._Attr, [core.String]),
-      [dartx.getNamedItemNS]: dart.definiteFunctionType(html$._Attr, [core.String, core.String]),
-      [dartx.item]: dart.definiteFunctionType(html$._Attr, [core.int]),
-      [dartx.removeNamedItem]: dart.definiteFunctionType(html$._Attr, [core.String]),
-      [dartx.removeNamedItemNS]: dart.definiteFunctionType(html$._Attr, [core.String, core.String]),
-      [dartx.setNamedItem]: dart.definiteFunctionType(html$._Attr, [html$._Attr]),
-      [dartx.setNamedItemNS]: dart.definiteFunctionType(html$._Attr, [html$._Attr])
-    })
-  });
-  dart.registerExtension(dart.global.NamedNodeMap, html$._NamedNodeMap);
-  dart.registerExtension(dart.global.MozNamedAttrMap, html$._NamedNodeMap);
-  html$._PagePopupController = class _PagePopupController extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._PagePopupController, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._PagePopupController, [])})
-  });
-  dart.registerExtension(dart.global.PagePopupController, html$._PagePopupController);
-  dart.defineExtensionNames([
-    'clone',
-    'context',
-    'credentials',
-    'headers',
-    'mode',
-    'referrer',
-    'url'
-  ]);
-  html$._Request = class _Request extends html$.Body {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(input, requestInitDict) {
-      if (requestInitDict === void 0) requestInitDict = null;
-      if (requestInitDict != null) {
-        let requestInitDict_1 = html_common.convertDartToNative_Dictionary(requestInitDict);
-        return html$._Request._create_1(input, requestInitDict_1);
-      }
-      return html$._Request._create_2(input);
-    }
-    static _create_1(input, requestInitDict) {
-      return new Request(input, requestInitDict);
-    }
-    static _create_2(input) {
-      return new Request(input);
-    }
-    get [dartx.context]() {
-      return this.context;
-    }
-    get [dartx.credentials]() {
-      return this.credentials;
-    }
-    get [dartx.headers]() {
-      return this.headers;
-    }
-    get [dartx.mode]() {
-      return this.mode;
-    }
-    get [dartx.referrer]() {
-      return this.referrer;
-    }
-    get [dartx.url]() {
-      return this.url;
-    }
-    [dartx.clone](...args) {
-      return this.clone.apply(this, args);
-    }
-  };
-  dart.setSignature(html$._Request, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._Request, []),
-      new: dart.definiteFunctionType(html$._Request, [core.Object], [core.Map])
-    }),
-    fields: () => ({
-      [dartx.context]: core.String,
-      [dartx.credentials]: core.String,
-      [dartx.headers]: html$.Headers,
-      [dartx.mode]: core.String,
-      [dartx.referrer]: core.String,
-      [dartx.url]: core.String
-    }),
-    methods: () => ({[dartx.clone]: dart.definiteFunctionType(html$._Request, [])}),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$._Request, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$._Request, [dart.dynamic])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.Request, html$._Request);
-  html$._Response = class _Response extends html$.Body {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(body, responseInitDict) {
-      if (body === void 0) body = null;
-      if (responseInitDict === void 0) responseInitDict = null;
-      if (responseInitDict != null) {
-        let responseInitDict_1 = html_common.convertDartToNative_Dictionary(responseInitDict);
-        return html$._Response._create_1(body, responseInitDict_1);
-      }
-      if (body != null) {
-        return html$._Response._create_2(body);
-      }
-      return html$._Response._create_3();
-    }
-    static _create_1(body, responseInitDict) {
-      return new Response(body, responseInitDict);
-    }
-    static _create_2(body) {
-      return new Response(body);
-    }
-    static _create_3() {
-      return new Response();
-    }
-  };
-  dart.setSignature(html$._Response, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._Response, []),
-      new: dart.definiteFunctionType(html$._Response, [], [core.Object, core.Map])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$._Response, [dart.dynamic, dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$._Response, [dart.dynamic]),
-      _create_3: dart.definiteFunctionType(html$._Response, [])
-    }),
-    names: ['_create_1', '_create_2', '_create_3']
-  });
-  dart.registerExtension(dart.global.Response, html$._Response);
-  html$._ServiceWorker = class _ServiceWorker extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  html$._ServiceWorker[dart.implements] = () => [html$.AbstractWorker];
-  dart.setSignature(html$._ServiceWorker, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._ServiceWorker, [])})
-  });
-  dart.registerExtension(dart.global.ServiceWorker, html$._ServiceWorker);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$._SpeechRecognitionResultList = class _SpeechRecognitionResultList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.SpeechRecognitionResult), html$.ImmutableListMixin$(html$.SpeechRecognitionResult)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$._SpeechRecognitionResultList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechRecognitionResult()];
-  dart.setSignature(html$._SpeechRecognitionResultList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._SpeechRecognitionResultList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.SpeechRecognitionResult, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SpeechRecognitionResult]),
-      [dartx.item]: dart.definiteFunctionType(html$.SpeechRecognitionResult, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SpeechRecognitionResultList, html$._SpeechRecognitionResultList);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  html$._StyleSheetList = class _StyleSheetList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.StyleSheet), html$.ImmutableListMixin$(html$.StyleSheet)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[index];
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [__getter__](...args) {
-      return this.__getter__.apply(this, args);
-    }
-    [dartx.item](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  html$._StyleSheetList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfStyleSheet()];
-  dart.setSignature(html$._StyleSheetList, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._StyleSheetList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(html$.StyleSheet, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.StyleSheet]),
-      [__getter__]: dart.definiteFunctionType(html$.CssStyleSheet, [core.String]),
-      [dartx.item]: dart.definiteFunctionType(html$.StyleSheet, [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.StyleSheetList, html$._StyleSheetList);
-  html$._SubtleCrypto = class _SubtleCrypto extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._SubtleCrypto, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._SubtleCrypto, [])})
-  });
-  dart.registerExtension(dart.global.SubtleCrypto, html$._SubtleCrypto);
-  html$._WebKitCSSMatrix = class _WebKitCSSMatrix extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(cssValue) {
-      if (cssValue === void 0) cssValue = null;
-      if (cssValue != null) {
-        return html$._WebKitCSSMatrix._create_1(cssValue);
-      }
-      return html$._WebKitCSSMatrix._create_2();
-    }
-    static _create_1(cssValue) {
-      return new WebKitCSSMatrix(cssValue);
-    }
-    static _create_2() {
-      return new WebKitCSSMatrix();
-    }
-  };
-  dart.setSignature(html$._WebKitCSSMatrix, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(html$._WebKitCSSMatrix, []),
-      new: dart.definiteFunctionType(html$._WebKitCSSMatrix, [], [core.String])
-    }),
-    statics: () => ({
-      _create_1: dart.definiteFunctionType(html$._WebKitCSSMatrix, [dart.dynamic]),
-      _create_2: dart.definiteFunctionType(html$._WebKitCSSMatrix, [])
-    }),
-    names: ['_create_1', '_create_2']
-  });
-  dart.registerExtension(dart.global.WebKitCSSMatrix, html$._WebKitCSSMatrix);
-  html$._WindowTimers = class _WindowTimers extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._WindowTimers, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._WindowTimers, [])})
-  });
-  html$._WorkerLocation = class _WorkerLocation extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  html$._WorkerLocation[dart.implements] = () => [html$.UrlUtilsReadOnly];
-  dart.setSignature(html$._WorkerLocation, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._WorkerLocation, [])})
-  });
-  dart.registerExtension(dart.global.WorkerLocation, html$._WorkerLocation);
-  html$._WorkerNavigator = class _WorkerNavigator extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  html$._WorkerNavigator[dart.implements] = () => [html$.NavigatorCpu, html$.NavigatorOnLine, html$.NavigatorID];
-  dart.setSignature(html$._WorkerNavigator, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._WorkerNavigator, [])})
-  });
-  dart.registerExtension(dart.global.WorkerNavigator, html$._WorkerNavigator);
-  html$._XMLHttpRequestProgressEvent = class _XMLHttpRequestProgressEvent extends html$.ProgressEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(html$._XMLHttpRequestProgressEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(html$._XMLHttpRequestProgressEvent, [])})
-  });
-  dart.registerExtension(dart.global.XMLHttpRequestProgressEvent, html$._XMLHttpRequestProgressEvent);
-  const _matches = Symbol('_matches');
-  html$._AttributeMap = class _AttributeMap extends core.Object {
-    new(element) {
-      this[_element$] = element;
-    }
-    addAll(other) {
-      other[dartx.forEach](dart.fn((k, v) => {
-        this._set(k, v);
-      }, StringAndStringToNull()));
-    }
-    containsValue(value) {
-      for (let v of this.values) {
-        if (dart.equals(value, v)) {
-          return true;
-        }
-      }
-      return false;
-    }
-    putIfAbsent(key, ifAbsent) {
-      if (!dart.test(this[dartx.containsKey](key))) {
-        this._set(key, ifAbsent());
-      }
-      return this._get(key);
-    }
-    clear() {
-      for (let key of this.keys) {
-        this[dartx.remove](key);
-      }
-    }
-    forEach(f) {
-      for (let key of this.keys) {
-        let value = this._get(key);
-        f(key, value);
-      }
-    }
-    get keys() {
-      let attributes = this[_element$][_attributes$];
-      let keys = JSArrayOfString().of([]);
-      for (let i = 0, len = attributes[dartx.length]; i < dart.notNull(len); i++) {
-        let attr = html$._Attr._check(attributes[dartx._get](i));
-        if (dart.test(this[_matches](attr))) {
-          keys[dartx.add](attr[dartx.name]);
-        }
-      }
-      return keys;
-    }
-    get values() {
-      let attributes = this[_element$][_attributes$];
-      let values = JSArrayOfString().of([]);
-      for (let i = 0, len = attributes[dartx.length]; i < dart.notNull(len); i++) {
-        let attr = html$._Attr._check(attributes[dartx._get](i));
-        if (dart.test(this[_matches](attr))) {
-          values[dartx.add](attr[dartx.value]);
-        }
-      }
-      return values;
-    }
-    get isEmpty() {
-      return this[dartx.length] == 0;
-    }
-    get isNotEmpty() {
-      return !dart.test(this.isEmpty);
-    }
-  };
-  html$._AttributeMap[dart.implements] = () => [MapOfString$String()];
-  dart.setSignature(html$._AttributeMap, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._AttributeMap, [html$.Element])}),
-    fields: () => ({[_element$]: html$.Element}),
-    getters: () => ({
-      keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
-      values: dart.definiteFunctionType(core.Iterable$(core.String), []),
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      isNotEmpty: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      addAll: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
-      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-      putIfAbsent: dart.definiteFunctionType(core.String, [core.String, VoidToString()]),
-      clear: dart.definiteFunctionType(dart.void, []),
-      forEach: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()])
-    })
-  });
-  dart.defineExtensionMembers(html$._AttributeMap, [
-    'addAll',
-    'containsValue',
-    'putIfAbsent',
-    'clear',
-    'forEach',
-    'keys',
-    'values',
-    'isEmpty',
-    'isNotEmpty'
-  ]);
-  html$._ElementAttributeMap = class _ElementAttributeMap extends html$._AttributeMap {
-    new(element) {
-      super.new(element);
-    }
-    containsKey(key) {
-      return this[_element$][_hasAttribute](core.String._check(key));
-    }
-    _get(key) {
-      return this[_element$][dartx.getAttribute](core.String._check(key));
-    }
-    _set(key, value) {
-      this[_element$][dartx.setAttribute](key, value);
-      return value;
-    }
-    remove(key) {
-      let value = this[_element$][dartx.getAttribute](core.String._check(key));
-      this[_element$][_removeAttribute](core.String._check(key));
-      return value;
-    }
-    get length() {
-      return this.keys[dartx.length];
-    }
-    [_matches](node) {
-      return node[_namespaceUri] == null;
-    }
-  };
-  dart.setSignature(html$._ElementAttributeMap, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ElementAttributeMap, [html$.Element])}),
-    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-      _get: dart.definiteFunctionType(core.String, [core.Object]),
-      _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      remove: dart.definiteFunctionType(core.String, [core.Object]),
-      [_matches]: dart.definiteFunctionType(core.bool, [html$.Node])
-    })
-  });
-  dart.defineExtensionMembers(html$._ElementAttributeMap, [
-    'containsKey',
-    '_get',
-    '_set',
-    'remove',
-    'length'
-  ]);
-  const _namespace = Symbol('_namespace');
-  html$._NamespacedAttributeMap = class _NamespacedAttributeMap extends html$._AttributeMap {
-    new(element, namespace) {
-      this[_namespace] = namespace;
-      super.new(element);
-    }
-    containsKey(key) {
-      return this[_element$][_hasAttributeNS](this[_namespace], core.String._check(key));
-    }
-    _get(key) {
-      return this[_element$][dartx.getAttributeNS](this[_namespace], core.String._check(key));
-    }
-    _set(key, value) {
-      this[_element$][dartx.setAttributeNS](this[_namespace], key, value);
-      return value;
-    }
-    remove(key) {
-      let value = this._get(key);
-      this[_element$][_removeAttributeNS](this[_namespace], core.String._check(key));
-      return value;
-    }
-    get length() {
-      return this.keys[dartx.length];
-    }
-    [_matches](node) {
-      return node[_namespaceUri] == this[_namespace];
-    }
-  };
-  dart.setSignature(html$._NamespacedAttributeMap, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._NamespacedAttributeMap, [html$.Element, core.String])}),
-    fields: () => ({[_namespace]: core.String}),
-    getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
-    methods: () => ({
-      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-      _get: dart.definiteFunctionType(core.String, [core.Object]),
-      _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      remove: dart.definiteFunctionType(core.String, [core.Object]),
-      [_matches]: dart.definiteFunctionType(core.bool, [html$.Node])
-    })
-  });
-  dart.defineExtensionMembers(html$._NamespacedAttributeMap, [
-    'containsKey',
-    '_get',
-    '_set',
-    'remove',
-    'length'
-  ]);
-  const _attr = Symbol('_attr');
-  const _strip = Symbol('_strip');
-  const _toHyphenedName = Symbol('_toHyphenedName');
-  const _toCamelCase = Symbol('_toCamelCase');
-  html$._DataAttributeMap = class _DataAttributeMap extends core.Object {
-    new(attributes) {
-      this[_attributes$] = attributes;
-    }
-    addAll(other) {
-      other[dartx.forEach](dart.fn((k, v) => {
-        this._set(k, v);
-      }, StringAndStringToNull()));
-    }
-    containsValue(value) {
-      return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool$()));
-    }
-    containsKey(key) {
-      return this[_attributes$][dartx.containsKey](this[_attr](core.String._check(key)));
-    }
-    _get(key) {
-      return this[_attributes$][dartx._get](this[_attr](core.String._check(key)));
-    }
-    _set(key, value) {
-      this[_attributes$][dartx._set](this[_attr](key), value);
-      return value;
-    }
-    putIfAbsent(key, ifAbsent) {
-      return this[_attributes$][dartx.putIfAbsent](this[_attr](key), ifAbsent);
-    }
-    remove(key) {
-      return this[_attributes$][dartx.remove](this[_attr](core.String._check(key)));
-    }
-    clear() {
-      for (let key of this.keys) {
-        this.remove(key);
-      }
-    }
-    forEach(f) {
-      this[_attributes$][dartx.forEach](dart.fn((key, value) => {
-        if (dart.test(this[_matches](key))) {
-          f(this[_strip](key), value);
-        }
-      }, StringAndStringToNull()));
-    }
-    get keys() {
-      let keys = JSArrayOfString().of([]);
-      this[_attributes$][dartx.forEach](dart.fn((key, value) => {
-        if (dart.test(this[_matches](key))) {
-          keys[dartx.add](this[_strip](key));
-        }
-      }, StringAndStringToNull()));
-      return keys;
-    }
-    get values() {
-      let values = JSArrayOfString().of([]);
-      this[_attributes$][dartx.forEach](dart.fn((key, value) => {
-        if (dart.test(this[_matches](key))) {
-          values[dartx.add](value);
-        }
-      }, StringAndStringToNull()));
-      return values;
-    }
-    get length() {
-      return this.keys[dartx.length];
-    }
-    get isEmpty() {
-      return this.length == 0;
-    }
-    get isNotEmpty() {
-      return !dart.test(this.isEmpty);
-    }
-    [_attr](key) {
-      return dart.str`data-${this[_toHyphenedName](key)}`;
-    }
-    [_matches](key) {
-      return key[dartx.startsWith]('data-');
-    }
-    [_strip](key) {
-      return this[_toCamelCase](key[dartx.substring](5));
-    }
-    [_toCamelCase](hyphenedName, opts) {
-      let startUppercase = opts && 'startUppercase' in opts ? opts.startUppercase : false;
-      let segments = hyphenedName[dartx.split]('-');
-      let start = dart.test(startUppercase) ? 0 : 1;
-      for (let i = start; i < dart.notNull(segments[dartx.length]); i++) {
-        let segment = segments[dartx._get](i);
-        if (dart.notNull(segment[dartx.length]) > 0) {
-          segments[dartx._set](i, dart.str`${segment[dartx._get](0)[dartx.toUpperCase]()}${segment[dartx.substring](1)}`);
-        }
-      }
-      return segments[dartx.join]('');
-    }
-    [_toHyphenedName](word) {
-      let sb = new core.StringBuffer();
-      for (let i = 0; i < dart.notNull(word[dartx.length]); i++) {
-        let lower = word[dartx._get](i)[dartx.toLowerCase]();
-        if (word[dartx._get](i) != lower && i > 0) sb.write('-');
-        sb.write(lower);
-      }
-      return sb.toString();
-    }
-  };
-  html$._DataAttributeMap[dart.implements] = () => [MapOfString$String()];
-  dart.setSignature(html$._DataAttributeMap, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._DataAttributeMap, [MapOfString$String()])}),
-    fields: () => ({[_attributes$]: MapOfString$String()}),
-    getters: () => ({
-      keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
-      values: dart.definiteFunctionType(core.Iterable$(core.String), []),
-      length: dart.definiteFunctionType(core.int, []),
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      isNotEmpty: dart.definiteFunctionType(core.bool, [])
-    }),
-    methods: () => ({
-      addAll: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
-      containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
-      containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
-      _get: dart.definiteFunctionType(core.String, [core.Object]),
-      _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-      putIfAbsent: dart.definiteFunctionType(core.String, [core.String, VoidToString()]),
-      remove: dart.definiteFunctionType(core.String, [core.Object]),
-      clear: dart.definiteFunctionType(dart.void, []),
-      forEach: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()]),
-      [_attr]: dart.definiteFunctionType(core.String, [core.String]),
-      [_matches]: dart.definiteFunctionType(core.bool, [core.String]),
-      [_strip]: dart.definiteFunctionType(core.String, [core.String]),
-      [_toCamelCase]: dart.definiteFunctionType(core.String, [core.String], {startUppercase: core.bool}),
-      [_toHyphenedName]: dart.definiteFunctionType(core.String, [core.String])
-    })
-  });
-  dart.defineExtensionMembers(html$._DataAttributeMap, [
-    'addAll',
-    'containsValue',
-    'containsKey',
-    '_get',
-    '_set',
-    'putIfAbsent',
-    'remove',
-    'clear',
-    'forEach',
-    'keys',
-    'values',
-    'length',
-    'isEmpty',
-    'isNotEmpty'
-  ]);
-  html$.CanvasImageSource = class CanvasImageSource extends core.Object {};
-  html$.WindowBase = class WindowBase extends core.Object {};
-  html$.WindowBase[dart.implements] = () => [html$.EventTarget];
-  html$.LocationBase = class LocationBase extends core.Object {};
-  html$.HistoryBase = class HistoryBase extends core.Object {};
-  html$.CssClassSet = class CssClassSet extends core.Object {};
-  html$.CssClassSet[dart.implements] = () => [SetOfString()];
-  const _addOrSubtractToBoxModel = Symbol('_addOrSubtractToBoxModel');
-  html$.CssRect = class CssRect extends core.Object {
-    new(element) {
-      this[_element$] = element;
-    }
-    set height(newHeight) {
-      dart.throw(new core.UnsupportedError("Can only set height for content rect."));
-    }
-    set width(newWidth) {
-      dart.throw(new core.UnsupportedError("Can only set width for content rect."));
-    }
-    [_addOrSubtractToBoxModel](dimensions, augmentingMeasurement) {
-      let styles = this[_element$][dartx.getComputedStyle]();
-      let val = 0;
-      for (let measurement of dimensions) {
-        if (augmentingMeasurement == html$._MARGIN) {
-          val = dart.notNull(val) + dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`${augmentingMeasurement}-${measurement}`)).value);
-        }
-        if (augmentingMeasurement == html$._CONTENT) {
-          val = dart.notNull(val) - dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`${html$._PADDING}-${measurement}`)).value);
-        }
-        if (augmentingMeasurement != html$._MARGIN) {
-          val = dart.notNull(val) - dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`border-${measurement}-width`)).value);
-        }
-      }
-      return val;
+  class _RectangleBase extends core.Object {
+    new() {
     }
     get right() {
-      return dart.notNull(this.left) + dart.notNull(this.width);
+      return dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]);
     }
     get bottom() {
-      return dart.notNull(this.top) + dart.notNull(this.height);
+      return dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
     }
     toString() {
-      return dart.str`Rectangle (${this.left}, ${this.top}) ${this.width} x ${this.height}`;
+      return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
     }
     ['=='](other) {
       if (!RectangleOfnum().is(other)) return false;
-      return dart.equals(this.left, dart.dload(other, 'left')) && dart.equals(this.top, dart.dload(other, 'top')) && dart.equals(this.right, dart.dload(other, 'right')) && dart.equals(this.bottom, dart.dload(other, 'bottom'));
+      let otherRect = RectangleOfnum().as(other);
+      return this[dartx.left] == otherRect[dartx.left] && this[dartx.top] == otherRect[dartx.top] && this[dartx.right] == otherRect[dartx.right] && this[dartx.bottom] == otherRect[dartx.bottom];
     }
     get hashCode() {
-      return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.right), dart.hashCode(this.bottom));
+      return math._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.right]), dart.hashCode(this[dartx.bottom]));
     }
     intersection(other) {
-      let x0 = math.max(core.num)(this.left, other[dartx.left]);
-      let x1 = math.min(core.num)(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+      RectangleOfT()._check(other);
+      let x0 = math.max(T)(this[dartx.left], other[dartx.left]);
+      let x1 = math.min(T)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
       if (dart.notNull(x0) <= dart.notNull(x1)) {
-        let y0 = math.max(core.num)(this.top, other[dartx.top]);
-        let y1 = math.min(core.num)(dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+        let y0 = math.max(T)(this[dartx.top], other[dartx.top]);
+        let y1 = math.min(T)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
         if (dart.notNull(y0) <= dart.notNull(y1)) {
-          return new (RectangleOfnum())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
+          return new (RectangleOfT())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
         }
       }
       return null;
     }
     intersects(other) {
-      return dart.notNull(this.left) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(this.top) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this.top) + dart.notNull(this.height);
+      return dart.notNull(this[dartx.left]) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
     }
     boundingBox(other) {
-      let right = math.max(core.num)(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
-      let bottom = math.max(core.num)(dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
-      let left = math.min(core.num)(this.left, other[dartx.left]);
-      let top = math.min(core.num)(this.top, other[dartx.top]);
-      return new (RectangleOfnum())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
+      RectangleOfT()._check(other);
+      let right = math.max(T)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+      let bottom = math.max(T)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+      let left = math.min(T)(this[dartx.left], other[dartx.left]);
+      let top = math.min(T)(this[dartx.top], other[dartx.top]);
+      return new (RectangleOfT())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
     }
     containsRectangle(another) {
-      return dart.notNull(this.left) <= dart.notNull(another[dartx.left]) && dart.notNull(this.left) + dart.notNull(this.width) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this.top) <= dart.notNull(another[dartx.top]) && dart.notNull(this.top) + dart.notNull(this.height) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
+      return dart.notNull(this[dartx.left]) <= dart.notNull(another[dartx.left]) && dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(another[dartx.top]) && dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
     }
     containsPoint(another) {
-      return dart.notNull(another.x) >= dart.notNull(this.left) && dart.notNull(another.x) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(another.y) >= dart.notNull(this.top) && dart.notNull(another.y) <= dart.notNull(this.top) + dart.notNull(this.height);
+      return dart.notNull(another.x) >= dart.notNull(this[dartx.left]) && dart.notNull(another.x) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(another.y) >= dart.notNull(this[dartx.top]) && dart.notNull(another.y) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
     }
     get topLeft() {
-      return new (PointOfnum())(this.left, this.top);
+      return new (PointOfT())(this[dartx.left], this[dartx.top]);
     }
     get topRight() {
-      return new (PointOfnum())(dart.notNull(this.left) + dart.notNull(this.width), this.top);
+      return new (PointOfT())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), this[dartx.top]);
     }
     get bottomRight() {
-      return new (PointOfnum())(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(this.top) + dart.notNull(this.height));
+      return new (PointOfT())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
     }
     get bottomLeft() {
-      return new (PointOfnum())(this.left, dart.notNull(this.top) + dart.notNull(this.height));
+      return new (PointOfT())(this[dartx.left], dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
     }
-  };
-  html$.CssRect[dart.implements] = () => [RectangleOfnum()];
-  dart.setSignature(html$.CssRect, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.CssRect, [html$.Element])}),
-    fields: () => ({[_element$]: html$.Element}),
+  }
+  dart.addTypeTests(_RectangleBase);
+  dart.setSignature(_RectangleBase, {
+    constructors: () => ({new: dart.definiteFunctionType(math._RectangleBase$(T), [])}),
     getters: () => ({
-      right: dart.definiteFunctionType(core.num, []),
-      bottom: dart.definiteFunctionType(core.num, []),
-      topLeft: dart.definiteFunctionType(math.Point$(core.num), []),
-      topRight: dart.definiteFunctionType(math.Point$(core.num), []),
-      bottomRight: dart.definiteFunctionType(math.Point$(core.num), []),
-      bottomLeft: dart.definiteFunctionType(math.Point$(core.num), [])
-    }),
-    setters: () => ({
-      height: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-      width: dart.definiteFunctionType(dart.void, [dart.dynamic])
+      right: dart.definiteFunctionType(T, []),
+      bottom: dart.definiteFunctionType(T, []),
+      topLeft: dart.definiteFunctionType(math.Point$(T), []),
+      topRight: dart.definiteFunctionType(math.Point$(T), []),
+      bottomRight: dart.definiteFunctionType(math.Point$(T), []),
+      bottomLeft: dart.definiteFunctionType(math.Point$(T), [])
     }),
     methods: () => ({
-      [_addOrSubtractToBoxModel]: dart.definiteFunctionType(core.num, [ListOfString(), core.String]),
-      intersection: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+      intersection: dart.definiteFunctionType(math.Rectangle$(T), [RectangleOfT()]),
       intersects: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
-      boundingBox: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+      boundingBox: dart.definiteFunctionType(math.Rectangle$(T), [RectangleOfT()]),
       containsRectangle: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
       containsPoint: dart.definiteFunctionType(core.bool, [PointOfnum()])
     })
   });
-  dart.defineExtensionMembers(html$.CssRect, [
+  dart.defineExtensionMembers(_RectangleBase, [
     'toString',
     '==',
     'intersection',
@@ -95399,7632 +53729,30 @@
     'bottomRight',
     'bottomLeft'
   ]);
-  html$._ContentCssRect = class _ContentCssRect extends html$.CssRect {
-    new(element) {
-      super.new(element);
-    }
-    get height() {
-      return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._CONTENT));
-    }
-    get width() {
-      return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._CONTENT));
-    }
-    set height(newHeight) {
-      if (html$.Dimension.is(newHeight)) {
-        if (dart.test(dart.dsend(dart.dload(newHeight, 'value'), '<', 0))) newHeight = new html$.Dimension.px(0);
-        this[_element$][dartx.style][dartx.height] = dart.toString(newHeight);
-      } else if (typeof newHeight == 'number') {
-        if (dart.test(dart.dsend(newHeight, '<', 0))) newHeight = 0;
-        this[_element$][dartx.style][dartx.height] = dart.str`${newHeight}px`;
-      } else {
-        dart.throw(new core.ArgumentError("newHeight is not a Dimension or num"));
-      }
-    }
-    set width(newWidth) {
-      if (html$.Dimension.is(newWidth)) {
-        if (dart.test(dart.dsend(dart.dload(newWidth, 'value'), '<', 0))) newWidth = new html$.Dimension.px(0);
-        this[_element$][dartx.style][dartx.width] = dart.toString(newWidth);
-      } else if (typeof newWidth == 'number') {
-        if (dart.test(dart.dsend(newWidth, '<', 0))) newWidth = 0;
-        this[_element$][dartx.style][dartx.width] = dart.str`${newWidth}px`;
-      } else {
-        dart.throw(new core.ArgumentError("newWidth is not a Dimension or num"));
-      }
-    }
+  return _RectangleBase;
+});
+math._RectangleBase = _RectangleBase();
+math.Rectangle$ = dart.generic(T => {
+  let RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
+  let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
+  dart.defineExtensionNames([
+    'left',
+    'top',
+    'width',
+    'height'
+  ]);
+  class Rectangle extends math._RectangleBase$(T) {
     get left() {
-      return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._CONTENT));
+      return this[left$];
+    }
+    set left(value) {
+      super.left = value;
     }
     get top() {
-      return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._CONTENT));
+      return this[top$];
     }
-  };
-  dart.setSignature(html$._ContentCssRect, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ContentCssRect, [html$.Element])}),
-    getters: () => ({
-      height: dart.definiteFunctionType(core.num, []),
-      width: dart.definiteFunctionType(core.num, []),
-      left: dart.definiteFunctionType(core.num, []),
-      top: dart.definiteFunctionType(core.num, [])
-    })
-  });
-  dart.defineExtensionMembers(html$._ContentCssRect, ['height', 'width', 'left', 'top']);
-  const _elementList = Symbol('_elementList');
-  html$._ContentCssListRect = class _ContentCssListRect extends html$._ContentCssRect {
-    new(elementList) {
-      this[_elementList] = null;
-      super.new(elementList[dartx.first]);
-      this[_elementList] = elementList;
-    }
-    set height(newHeight) {
-      this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].height = newHeight, ElementTovoid$()));
-    }
-    get height() {
-      return super.height;
-    }
-    set width(newWidth) {
-      this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].width = newWidth, ElementTovoid$()));
-    }
-    get width() {
-      return super.width;
-    }
-  };
-  dart.setSignature(html$._ContentCssListRect, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ContentCssListRect, [ListOfElement()])}),
-    fields: () => ({[_elementList]: ListOfElement()})
-  });
-  html$._PaddingCssRect = class _PaddingCssRect extends html$.CssRect {
-    new(element) {
-      super.new(html$.Element._check(element));
-    }
-    get height() {
-      return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._PADDING));
-    }
-    set height(value) {
-      super.height = value;
-    }
-    get width() {
-      return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._PADDING));
-    }
-    set width(value) {
-      super.width = value;
-    }
-    get left() {
-      return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._PADDING));
-    }
-    get top() {
-      return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._PADDING));
-    }
-  };
-  dart.setSignature(html$._PaddingCssRect, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._PaddingCssRect, [dart.dynamic])}),
-    getters: () => ({
-      height: dart.definiteFunctionType(core.num, []),
-      width: dart.definiteFunctionType(core.num, []),
-      left: dart.definiteFunctionType(core.num, []),
-      top: dart.definiteFunctionType(core.num, [])
-    })
-  });
-  dart.defineExtensionMembers(html$._PaddingCssRect, ['height', 'width', 'left', 'top']);
-  html$._BorderCssRect = class _BorderCssRect extends html$.CssRect {
-    new(element) {
-      super.new(html$.Element._check(element));
-    }
-    get height() {
-      return this[_element$][dartx.offsetHeight];
-    }
-    set height(value) {
-      super.height = value;
-    }
-    get width() {
-      return this[_element$][dartx.offsetWidth];
-    }
-    set width(value) {
-      super.width = value;
-    }
-    get left() {
-      return this[_element$][dartx.getBoundingClientRect]()[dartx.left];
-    }
-    get top() {
-      return this[_element$][dartx.getBoundingClientRect]()[dartx.top];
-    }
-  };
-  dart.setSignature(html$._BorderCssRect, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._BorderCssRect, [dart.dynamic])}),
-    getters: () => ({
-      height: dart.definiteFunctionType(core.num, []),
-      width: dart.definiteFunctionType(core.num, []),
-      left: dart.definiteFunctionType(core.num, []),
-      top: dart.definiteFunctionType(core.num, [])
-    })
-  });
-  dart.defineExtensionMembers(html$._BorderCssRect, ['height', 'width', 'left', 'top']);
-  html$._MarginCssRect = class _MarginCssRect extends html$.CssRect {
-    new(element) {
-      super.new(html$.Element._check(element));
-    }
-    get height() {
-      return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._MARGIN));
-    }
-    set height(value) {
-      super.height = value;
-    }
-    get width() {
-      return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._MARGIN));
-    }
-    set width(value) {
-      super.width = value;
-    }
-    get left() {
-      return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._MARGIN));
-    }
-    get top() {
-      return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._MARGIN));
-    }
-  };
-  dart.setSignature(html$._MarginCssRect, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._MarginCssRect, [dart.dynamic])}),
-    getters: () => ({
-      height: dart.definiteFunctionType(core.num, []),
-      width: dart.definiteFunctionType(core.num, []),
-      left: dart.definiteFunctionType(core.num, []),
-      top: dart.definiteFunctionType(core.num, [])
-    })
-  });
-  dart.defineExtensionMembers(html$._MarginCssRect, ['height', 'width', 'left', 'top']);
-  dart.defineLazy(html$, {
-    get _HEIGHT() {
-      return JSArrayOfString().of(['top', 'bottom']);
-    }
-  });
-  dart.defineLazy(html$, {
-    get _WIDTH() {
-      return JSArrayOfString().of(['right', 'left']);
-    }
-  });
-  html$._CONTENT = 'content';
-  html$._PADDING = 'padding';
-  html$._MARGIN = 'margin';
-  const _sets = Symbol('_sets');
-  const _validateToken = Symbol('_validateToken');
-  html_common.CssClassSetImpl = class CssClassSetImpl extends core.Object {
-    [_validateToken](value) {
-      if (dart.test(html_common.CssClassSetImpl._validTokenRE.hasMatch(value))) return value;
-      dart.throw(new core.ArgumentError.value(value, 'value', 'Not a valid class token'));
-    }
-    toString() {
-      return this.readClasses().join(' ');
-    }
-    toggle(value, shouldAdd) {
-      if (shouldAdd === void 0) shouldAdd = null;
-      this[_validateToken](value);
-      let s = this.readClasses();
-      let result = false;
-      if (shouldAdd == null) shouldAdd = !dart.test(s.contains(value));
-      if (dart.test(shouldAdd)) {
-        s.add(value);
-        result = true;
-      } else {
-        s.remove(value);
-      }
-      this.writeClasses(s);
-      return result;
-    }
-    get frozen() {
-      return false;
-    }
-    get iterator() {
-      return this.readClasses().iterator;
-    }
-    [Symbol.iterator]() {
-      return new dart.JsIterator(this.iterator);
-    }
-    forEach(f) {
-      this.readClasses().forEach(f);
-    }
-    join(separator) {
-      if (separator === void 0) separator = "";
-      return this.readClasses().join(separator);
-    }
-    map(T) {
-      return f => {
-        return this.readClasses().map(T)(f);
-      };
-    }
-    where(f) {
-      return this.readClasses().where(f);
-    }
-    expand(T) {
-      return f => {
-        return this.readClasses().expand(T)(f);
-      };
-    }
-    every(f) {
-      return this.readClasses().every(f);
-    }
-    any(f) {
-      return this.readClasses().any(f);
-    }
-    get isEmpty() {
-      return this.readClasses().isEmpty;
-    }
-    get isNotEmpty() {
-      return this.readClasses().isNotEmpty;
-    }
-    get length() {
-      return this.readClasses().length;
-    }
-    reduce(combine) {
-      return this.readClasses().reduce(combine);
-    }
-    fold(T) {
-      return (initialValue, combine) => {
-        return this.readClasses().fold(T)(initialValue, combine);
-      };
-    }
-    contains(value) {
-      if (!(typeof value == 'string')) return false;
-      this[_validateToken](core.String._check(value));
-      return this.readClasses().contains(value);
-    }
-    lookup(value) {
-      return core.String._check(dart.test(this.contains(value)) ? value : null);
-    }
-    add(value) {
-      this[_validateToken](value);
-      return core.bool._check(this.modify(dart.fn(s => s.add(value), SetOfStringTobool())));
-    }
-    remove(value) {
-      this[_validateToken](core.String._check(value));
-      if (!(typeof value == 'string')) return false;
-      let s = this.readClasses();
-      let result = s.remove(value);
-      this.writeClasses(s);
-      return result;
-    }
-    addAll(iterable) {
-      this.modify(dart.fn(s => s.addAll(iterable[dartx.map](core.String)(dart.bind(this, _validateToken))), SetOfStringTovoid()));
-    }
-    removeAll(iterable) {
-      this.modify(dart.fn(s => s.removeAll(iterable), SetOfStringTovoid()));
-    }
-    toggleAll(iterable, shouldAdd) {
-      if (shouldAdd === void 0) shouldAdd = null;
-      iterable[dartx.forEach](dart.fn(e => this.toggle(e, shouldAdd), StringTobool$()));
-    }
-    retainAll(iterable) {
-      this.modify(dart.fn(s => s.retainAll(iterable), SetOfStringTovoid()));
-    }
-    removeWhere(test) {
-      this.modify(dart.fn(s => s.removeWhere(test), SetOfStringTovoid()));
-    }
-    retainWhere(test) {
-      this.modify(dart.fn(s => s.retainWhere(test), SetOfStringTovoid()));
-    }
-    containsAll(collection) {
-      return this.readClasses().containsAll(collection);
-    }
-    intersection(other) {
-      return this.readClasses().intersection(other);
-    }
-    union(other) {
-      return this.readClasses().union(other);
-    }
-    difference(other) {
-      return this.readClasses().difference(other);
-    }
-    get first() {
-      return this.readClasses().first;
-    }
-    get last() {
-      return this.readClasses().last;
-    }
-    get single() {
-      return this.readClasses().single;
-    }
-    toList(opts) {
-      let growable = opts && 'growable' in opts ? opts.growable : true;
-      return this.readClasses().toList({growable: growable});
-    }
-    toSet() {
-      return this.readClasses().toSet();
-    }
-    take(n) {
-      return this.readClasses().take(n);
-    }
-    takeWhile(test) {
-      return this.readClasses().takeWhile(test);
-    }
-    skip(n) {
-      return this.readClasses().skip(n);
-    }
-    skipWhile(test) {
-      return this.readClasses().skipWhile(test);
-    }
-    firstWhere(test, opts) {
-      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-      return this.readClasses().firstWhere(test, {orElse: orElse});
-    }
-    lastWhere(test, opts) {
-      let orElse = opts && 'orElse' in opts ? opts.orElse : null;
-      return this.readClasses().lastWhere(test, {orElse: orElse});
-    }
-    singleWhere(test) {
-      return this.readClasses().singleWhere(test);
-    }
-    elementAt(index) {
-      return this.readClasses().elementAt(index);
-    }
-    clear() {
-      this.modify(dart.fn(s => s.clear(), SetOfStringTovoid()));
-    }
-    modify(f) {
-      let s = this.readClasses();
-      let ret = f(s);
-      this.writeClasses(s);
-      return ret;
-    }
-  };
-  html_common.CssClassSetImpl[dart.implements] = () => [html$.CssClassSet];
-  dart.setSignature(html_common.CssClassSetImpl, {
-    getters: () => ({
-      frozen: dart.definiteFunctionType(core.bool, []),
-      iterator: dart.definiteFunctionType(core.Iterator$(core.String), []),
-      isEmpty: dart.definiteFunctionType(core.bool, []),
-      isNotEmpty: dart.definiteFunctionType(core.bool, []),
-      length: dart.definiteFunctionType(core.int, []),
-      first: dart.definiteFunctionType(core.String, []),
-      last: dart.definiteFunctionType(core.String, []),
-      single: dart.definiteFunctionType(core.String, [])
-    }),
-    methods: () => ({
-      [_validateToken]: dart.definiteFunctionType(core.String, [core.String]),
-      toggle: dart.definiteFunctionType(core.bool, [core.String], [core.bool]),
-      forEach: dart.definiteFunctionType(dart.void, [StringTovoid()]),
-      join: dart.definiteFunctionType(core.String, [], [core.String]),
-      map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [core.String])]]),
-      where: dart.definiteFunctionType(core.Iterable$(core.String), [StringTobool()]),
-      expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [core.String])]]),
-      every: dart.definiteFunctionType(core.bool, [StringTobool()]),
-      any: dart.definiteFunctionType(core.bool, [StringTobool()]),
-      reduce: dart.definiteFunctionType(core.String, [StringAndStringToString()]),
-      fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, core.String])]]),
-      contains: dart.definiteFunctionType(core.bool, [core.Object]),
-      lookup: dart.definiteFunctionType(core.String, [core.Object]),
-      add: dart.definiteFunctionType(core.bool, [core.String]),
-      remove: dart.definiteFunctionType(core.bool, [core.Object]),
-      addAll: dart.definiteFunctionType(dart.void, [IterableOfString()]),
-      removeAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
-      toggleAll: dart.definiteFunctionType(dart.void, [IterableOfString()], [core.bool]),
-      retainAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
-      removeWhere: dart.definiteFunctionType(dart.void, [StringTobool()]),
-      retainWhere: dart.definiteFunctionType(dart.void, [StringTobool()]),
-      containsAll: dart.definiteFunctionType(core.bool, [IterableOfObject()]),
-      intersection: dart.definiteFunctionType(core.Set$(core.String), [SetOfObject()]),
-      union: dart.definiteFunctionType(core.Set$(core.String), [SetOfString()]),
-      difference: dart.definiteFunctionType(core.Set$(core.String), [SetOfObject()]),
-      toList: dart.definiteFunctionType(core.List$(core.String), [], {growable: core.bool}),
-      toSet: dart.definiteFunctionType(core.Set$(core.String), []),
-      take: dart.definiteFunctionType(core.Iterable$(core.String), [core.int]),
-      takeWhile: dart.definiteFunctionType(core.Iterable$(core.String), [StringTobool()]),
-      skip: dart.definiteFunctionType(core.Iterable$(core.String), [core.int]),
-      skipWhile: dart.definiteFunctionType(core.Iterable$(core.String), [StringTobool()]),
-      firstWhere: dart.definiteFunctionType(core.String, [StringTobool()], {orElse: VoidToString()}),
-      lastWhere: dart.definiteFunctionType(core.String, [StringTobool()], {orElse: VoidToString()}),
-      singleWhere: dart.definiteFunctionType(core.String, [StringTobool()]),
-      elementAt: dart.definiteFunctionType(core.String, [core.int]),
-      clear: dart.definiteFunctionType(dart.void, []),
-      modify: dart.definiteFunctionType(dart.dynamic, [SetOfStringTodynamic()])
-    }),
-    sfields: () => ({_validTokenRE: core.RegExp})
-  });
-  dart.defineExtensionMembers(html_common.CssClassSetImpl, [
-    'toString',
-    'forEach',
-    'join',
-    'map',
-    'where',
-    'expand',
-    'every',
-    'any',
-    'reduce',
-    'fold',
-    'contains',
-    'toList',
-    'toSet',
-    'take',
-    'takeWhile',
-    'skip',
-    'skipWhile',
-    'firstWhere',
-    'lastWhere',
-    'singleWhere',
-    'elementAt',
-    'iterator',
-    'isEmpty',
-    'isNotEmpty',
-    'length',
-    'first',
-    'last',
-    'single'
-  ]);
-  dart.defineLazy(html_common.CssClassSetImpl, {
-    get _validTokenRE() {
-      return core.RegExp.new('^\\S+$');
-    }
-  });
-  html$._MultiElementCssClassSet = class _MultiElementCssClassSet extends html_common.CssClassSetImpl {
-    static new(elements) {
-      return new html$._MultiElementCssClassSet._(elements, ListOfCssClassSetImpl()._check(elements[dartx.map](html$.CssClassSet)(dart.fn(e => e[dartx.classes], ElementToCssClassSet()))[dartx.toList]()));
-    }
-    _(elementIterable, sets) {
-      this[_elementIterable] = elementIterable;
-      this[_sets] = sets;
-    }
-    readClasses() {
-      let s = LinkedHashSetOfString().new();
-      this[_sets][dartx.forEach](dart.fn(e => s.addAll(e.readClasses()), CssClassSetImplTovoid()));
-      return s;
-    }
-    writeClasses(s) {
-      let classes = s.join(' ');
-      for (let e of this[_elementIterable]) {
-        e[dartx.className] = classes;
-      }
-    }
-    modify(f) {
-      this[_sets][dartx.forEach](dart.fn(e => e.modify(f), CssClassSetImplTovoid()));
-    }
-    toggle(value, shouldAdd) {
-      if (shouldAdd === void 0) shouldAdd = null;
-      return this[_sets][dartx.fold](core.bool)(false, dart.fn((changed, e) => dart.test(e.toggle(value, shouldAdd)) || dart.test(changed), boolAndCssClassSetImplTobool()));
-    }
-    remove(value) {
-      return this[_sets][dartx.fold](core.bool)(false, dart.fn((changed, e) => dart.test(e.remove(value)) || dart.test(changed), boolAndCssClassSetImplTobool()));
-    }
-  };
-  dart.defineNamedConstructor(html$._MultiElementCssClassSet, '_');
-  dart.setSignature(html$._MultiElementCssClassSet, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$._MultiElementCssClassSet, [IterableOfElement()]),
-      _: dart.definiteFunctionType(html$._MultiElementCssClassSet, [IterableOfElement(), ListOfCssClassSetImpl()])
-    }),
-    fields: () => ({
-      [_elementIterable]: IterableOfElement(),
-      [_sets]: ListOfCssClassSetImpl()
-    }),
-    methods: () => ({
-      readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
-      writeClasses: dart.definiteFunctionType(dart.void, [SetOfString()])
-    })
-  });
-  html$._ElementCssClassSet = class _ElementCssClassSet extends html_common.CssClassSetImpl {
-    new(element) {
-      this[_element$] = element;
-    }
-    readClasses() {
-      let s = LinkedHashSetOfString().new();
-      let classname = this[_element$][dartx.className];
-      for (let name of classname[dartx.split](' ')) {
-        let trimmed = name[dartx.trim]();
-        if (!dart.test(trimmed[dartx.isEmpty])) {
-          s.add(trimmed);
-        }
-      }
-      return s;
-    }
-    writeClasses(s) {
-      this[_element$][dartx.className] = s.join(' ');
-    }
-    get length() {
-      return html$._ElementCssClassSet._classListLength(html$._ElementCssClassSet._classListOf(this[_element$]));
-    }
-    get isEmpty() {
-      return this.length == 0;
-    }
-    get isNotEmpty() {
-      return this.length != 0;
-    }
-    clear() {
-      this[_element$][dartx.className] = '';
-    }
-    contains(value) {
-      return html$._ElementCssClassSet._contains(this[_element$], value);
-    }
-    add(value) {
-      return html$._ElementCssClassSet._add(this[_element$], value);
-    }
-    remove(value) {
-      return typeof value == 'string' && dart.test(html$._ElementCssClassSet._remove(this[_element$], value));
-    }
-    toggle(value, shouldAdd) {
-      if (shouldAdd === void 0) shouldAdd = null;
-      return html$._ElementCssClassSet._toggle(this[_element$], value, shouldAdd);
-    }
-    addAll(iterable) {
-      html$._ElementCssClassSet._addAll(this[_element$], iterable);
-    }
-    removeAll(iterable) {
-      html$._ElementCssClassSet._removeAll(this[_element$], IterableOfString()._check(iterable));
-    }
-    retainAll(iterable) {
-      html$._ElementCssClassSet._removeWhere(this[_element$], dart.bind(iterable[dartx.toSet](), 'contains'), false);
-    }
-    removeWhere(test) {
-      html$._ElementCssClassSet._removeWhere(this[_element$], test, true);
-    }
-    retainWhere(test) {
-      html$._ElementCssClassSet._removeWhere(this[_element$], test, false);
-    }
-    static _contains(_element, value) {
-      return typeof value == 'string' && dart.test(html$._ElementCssClassSet._classListContains(html$._ElementCssClassSet._classListOf(_element), value));
-    }
-    static _add(_element, value) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      let added = !dart.test(html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value));
-      html$._ElementCssClassSet._classListAdd(list, value);
-      return added;
-    }
-    static _remove(_element, value) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      let removed = html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value);
-      html$._ElementCssClassSet._classListRemove(list, value);
-      return removed;
-    }
-    static _toggle(_element, value, shouldAdd) {
-      return shouldAdd == null ? html$._ElementCssClassSet._toggleDefault(_element, value) : html$._ElementCssClassSet._toggleOnOff(_element, value, shouldAdd);
-    }
-    static _toggleDefault(_element, value) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      return html$._ElementCssClassSet._classListToggle1(list, value);
-    }
-    static _toggleOnOff(_element, value, shouldAdd) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      if (dart.test(shouldAdd)) {
-        html$._ElementCssClassSet._classListAdd(list, value);
-        return true;
-      } else {
-        html$._ElementCssClassSet._classListRemove(list, value);
-        return false;
-      }
-    }
-    static _addAll(_element, iterable) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      for (let value of iterable) {
-        html$._ElementCssClassSet._classListAdd(list, value);
-      }
-    }
-    static _removeAll(_element, iterable) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      for (let value of iterable) {
-        html$._ElementCssClassSet._classListRemove(list, value);
-      }
-    }
-    static _removeWhere(_element, test, doRemove) {
-      let list = html$._ElementCssClassSet._classListOf(_element);
-      let i = 0;
-      while (i < dart.notNull(html$._ElementCssClassSet._classListLength(list))) {
-        let item = list[dartx.item](i);
-        if (doRemove == test(item)) {
-          html$._ElementCssClassSet._classListRemove(list, item);
-        } else {
-          ++i;
-        }
-      }
-    }
-    static _classListOf(e) {
-      return e.classList;
-    }
-    static _classListLength(list) {
-      return list.length;
-    }
-    static _classListContains(list, value) {
-      return list.contains(value);
-    }
-    static _classListContainsBeforeAddOrRemove(list, value) {
-      return list.contains(value);
-    }
-    static _classListAdd(list, value) {
-      list.add(value);
-    }
-    static _classListRemove(list, value) {
-      list.remove(value);
-    }
-    static _classListToggle1(list, value) {
-      return list.toggle(value);
-    }
-    static _classListToggle2(list, value, shouldAdd) {
-      return list.toggle(value, shouldAdd);
-    }
-  };
-  dart.setSignature(html$._ElementCssClassSet, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ElementCssClassSet, [html$.Element])}),
-    fields: () => ({[_element$]: html$.Element}),
-    methods: () => ({
-      readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
-      writeClasses: dart.definiteFunctionType(dart.void, [SetOfString()])
-    }),
-    statics: () => ({
-      _contains: dart.definiteFunctionType(core.bool, [html$.Element, core.Object]),
-      _add: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
-      _remove: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
-      _toggle: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.bool]),
-      _toggleDefault: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
-      _toggleOnOff: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.bool]),
-      _addAll: dart.definiteFunctionType(dart.void, [html$.Element, IterableOfString()]),
-      _removeAll: dart.definiteFunctionType(dart.void, [html$.Element, IterableOfString()]),
-      _removeWhere: dart.definiteFunctionType(dart.void, [html$.Element, StringTobool(), core.bool]),
-      _classListOf: dart.definiteFunctionType(html$.DomTokenList, [html$.Element]),
-      _classListLength: dart.definiteFunctionType(core.int, [html$.DomTokenList]),
-      _classListContains: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
-      _classListContainsBeforeAddOrRemove: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
-      _classListAdd: dart.definiteFunctionType(dart.void, [html$.DomTokenList, core.String]),
-      _classListRemove: dart.definiteFunctionType(dart.void, [html$.DomTokenList, core.String]),
-      _classListToggle1: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
-      _classListToggle2: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String, core.bool])
-    }),
-    names: ['_contains', '_add', '_remove', '_toggle', '_toggleDefault', '_toggleOnOff', '_addAll', '_removeAll', '_removeWhere', '_classListOf', '_classListLength', '_classListContains', '_classListContainsBeforeAddOrRemove', '_classListAdd', '_classListRemove', '_classListToggle1', '_classListToggle2']
-  });
-  dart.defineExtensionMembers(html$._ElementCssClassSet, ['contains', 'length', 'isEmpty', 'isNotEmpty']);
-  const _unit = Symbol('_unit');
-  html$.Dimension = class Dimension extends core.Object {
-    percent(value) {
-      this[_value$2] = value;
-      this[_unit] = '%';
-    }
-    px(value) {
-      this[_value$2] = value;
-      this[_unit] = 'px';
-    }
-    pc(value) {
-      this[_value$2] = value;
-      this[_unit] = 'pc';
-    }
-    pt(value) {
-      this[_value$2] = value;
-      this[_unit] = 'pt';
-    }
-    inch(value) {
-      this[_value$2] = value;
-      this[_unit] = 'in';
-    }
-    cm(value) {
-      this[_value$2] = value;
-      this[_unit] = 'cm';
-    }
-    mm(value) {
-      this[_value$2] = value;
-      this[_unit] = 'mm';
-    }
-    em(value) {
-      this[_value$2] = value;
-      this[_unit] = 'em';
-    }
-    ex(value) {
-      this[_value$2] = value;
-      this[_unit] = 'ex';
-    }
-    css(cssValue) {
-      this[_value$2] = null;
-      this[_unit] = null;
-      if (cssValue == '') cssValue = '0px';
-      if (dart.test(cssValue[dartx.endsWith]('%'))) {
-        this[_unit] = '%';
-      } else {
-        this[_unit] = cssValue[dartx.substring](dart.notNull(cssValue[dartx.length]) - 2);
-      }
-      if (dart.test(cssValue[dartx.contains]('.'))) {
-        this[_value$2] = core.double.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
-      } else {
-        this[_value$2] = core.int.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
-      }
-    }
-    toString() {
-      return dart.str`${this[_value$2]}${this[_unit]}`;
-    }
-    get value() {
-      return this[_value$2];
-    }
-  };
-  dart.defineNamedConstructor(html$.Dimension, 'percent');
-  dart.defineNamedConstructor(html$.Dimension, 'px');
-  dart.defineNamedConstructor(html$.Dimension, 'pc');
-  dart.defineNamedConstructor(html$.Dimension, 'pt');
-  dart.defineNamedConstructor(html$.Dimension, 'inch');
-  dart.defineNamedConstructor(html$.Dimension, 'cm');
-  dart.defineNamedConstructor(html$.Dimension, 'mm');
-  dart.defineNamedConstructor(html$.Dimension, 'em');
-  dart.defineNamedConstructor(html$.Dimension, 'ex');
-  dart.defineNamedConstructor(html$.Dimension, 'css');
-  dart.setSignature(html$.Dimension, {
-    constructors: () => ({
-      percent: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      px: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      pc: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      pt: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      inch: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      cm: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      mm: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      em: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      ex: dart.definiteFunctionType(html$.Dimension, [core.num]),
-      css: dart.definiteFunctionType(html$.Dimension, [core.String])
-    }),
-    fields: () => ({
-      [_value$2]: core.num,
-      [_unit]: core.String
-    }),
-    getters: () => ({value: dart.definiteFunctionType(core.num, [])})
-  });
-  html$.EventListener = dart.typedef('EventListener', () => dart.functionType(dart.dynamic, [html$.Event]));
-  html$.EventStreamProvider$ = dart.generic(T => {
-    let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
-    let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
-    let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
-    class EventStreamProvider extends core.Object {
-      new(eventType) {
-        this[_eventType] = eventType;
-      }
-      forTarget(e, opts) {
-        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-        return new (_EventStreamOfT())(e, this[_eventType], useCapture);
-      }
-      forElement(e, opts) {
-        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-        return new (_ElementEventStreamImplOfT())(e, this[_eventType], useCapture);
-      }
-      [_forElementList](e, opts) {
-        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-        return new (_ElementListEventStreamImplOfT())(e, this[_eventType], useCapture);
-      }
-      getEventType(target) {
-        return this[_eventType];
-      }
-    }
-    dart.addTypeTests(EventStreamProvider);
-    dart.setSignature(EventStreamProvider, {
-      constructors: () => ({new: dart.definiteFunctionType(html$.EventStreamProvider$(T), [core.String])}),
-      fields: () => ({[_eventType]: core.String}),
-      methods: () => ({
-        forTarget: dart.definiteFunctionType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}),
-        forElement: dart.definiteFunctionType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}),
-        [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
-        getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])
-      })
-    });
-    return EventStreamProvider;
-  });
-  html$.EventStreamProvider = EventStreamProvider();
-  html$.ElementStream$ = dart.generic(T => {
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class ElementStream extends core.Object {}
-    dart.addTypeTests(ElementStream);
-    ElementStream[dart.implements] = () => [StreamOfT()];
-    return ElementStream;
-  });
-  html$.ElementStream = ElementStream();
-  const _target$0 = Symbol('_target');
-  const _useCapture = Symbol('_useCapture');
-  html$._EventStream$ = dart.generic(T => {
-    let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _EventStream extends async.Stream$(T) {
-      new(target, eventType, useCapture) {
-        this[_target$0] = target;
-        this[_eventType] = eventType;
-        this[_useCapture] = useCapture;
-        super.new();
-      }
-      asBroadcastStream(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        return this;
-      }
-      get isBroadcast() {
-        return true;
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        return new (_EventStreamSubscriptionOfT())(this[_target$0], this[_eventType], onData, this[_useCapture]);
-      }
-    }
-    dart.setSignature(_EventStream, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._EventStream$(T), [html$.EventTarget, core.String, core.bool])}),
-      fields: () => ({
-        [_target$0]: html$.EventTarget,
-        [_eventType]: core.String,
-        [_useCapture]: core.bool
-      }),
-      methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
-    });
-    return _EventStream;
-  });
-  html$._EventStream = _EventStream();
-  html$._matchesWithAncestors = function(event, selector) {
-    let target = event[dartx.target];
-    return html$.Element.is(target) ? target[dartx.matchesWithAncestors](selector) : false;
-  };
-  dart.fn(html$._matchesWithAncestors, EventAndStringTobool());
-  html$._ElementEventStreamImpl$ = dart.generic(T => {
-    let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
-    let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html$.ElementStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T, [T])))();
-    let TTobool = () => (TTobool = dart.constFn(dart.definiteFunctionType(core.bool, [T])))();
-    class _ElementEventStreamImpl extends html$._EventStream$(T) {
-      new(target, eventType, useCapture) {
-        super.new(html$.EventTarget._check(target), core.String._check(eventType), core.bool._check(useCapture));
-      }
-      matches(selector) {
-        return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
-          e[_selector] = selector;
-          return e;
-        }, TToT()));
-      }
-      capture(onData) {
-        return new (_EventStreamSubscriptionOfT())(this[_target$0], this[_eventType], onData, true);
-      }
-    }
-    _ElementEventStreamImpl[dart.implements] = () => [ElementStreamOfT()];
-    dart.setSignature(_ElementEventStreamImpl, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._ElementEventStreamImpl$(T), [dart.dynamic, dart.dynamic, dart.dynamic])}),
-      methods: () => ({
-        matches: dart.definiteFunctionType(async.Stream$(T), [core.String]),
-        capture: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()])
-      })
-    });
-    return _ElementEventStreamImpl;
-  });
-  html$._ElementEventStreamImpl = _ElementEventStreamImpl();
-  const _targetList = Symbol('_targetList');
-  html$._ElementListEventStreamImpl$ = dart.generic(T => {
-    let _StreamPoolOfT = () => (_StreamPoolOfT = dart.constFn(html$._StreamPool$(T)))();
-    let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
-    let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html$.ElementStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
-    let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T, [T])))();
-    let TTobool = () => (TTobool = dart.constFn(dart.definiteFunctionType(core.bool, [T])))();
-    class _ElementListEventStreamImpl extends async.Stream$(T) {
-      new(targetList, eventType, useCapture) {
-        this[_targetList] = targetList;
-        this[_eventType] = eventType;
-        this[_useCapture] = useCapture;
-        super.new();
-      }
-      matches(selector) {
-        return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
-          e[_selector] = selector;
-          return e;
-        }, TToT()));
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        let pool = new (_StreamPoolOfT()).broadcast();
-        for (let target of this[_targetList]) {
-          pool.add(new (_EventStreamOfT())(target, this[_eventType], this[_useCapture]));
-        }
-        return pool.stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-      }
-      capture(onData) {
-        let pool = new (_StreamPoolOfT()).broadcast();
-        for (let target of this[_targetList]) {
-          pool.add(new (_EventStreamOfT())(target, this[_eventType], true));
-        }
-        return pool.stream.listen(onData);
-      }
-      asBroadcastStream(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        return this;
-      }
-      get isBroadcast() {
-        return true;
-      }
-    }
-    _ElementListEventStreamImpl[dart.implements] = () => [ElementStreamOfT()];
-    dart.setSignature(_ElementListEventStreamImpl, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._ElementListEventStreamImpl$(T), [IterableOfElement(), core.String, core.bool])}),
-      fields: () => ({
-        [_targetList]: IterableOfElement(),
-        [_useCapture]: core.bool,
-        [_eventType]: core.String
-      }),
-      methods: () => ({
-        matches: dart.definiteFunctionType(async.Stream$(T), [core.String]),
-        listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-        capture: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()])
-      })
-    });
-    return _ElementListEventStreamImpl;
-  });
-  html$._ElementListEventStreamImpl = _ElementListEventStreamImpl();
-  html$._EventListener$ = dart.generic(T => {
-    const _EventListener = dart.typedef('_EventListener', () => dart.functionType(dart.dynamic, [T]));
-    return _EventListener;
-  });
-  html$._EventListener = _EventListener();
-  const _onData$0 = Symbol('_onData');
-  const _pauseCount$0 = Symbol('_pauseCount');
-  const _tryResume = Symbol('_tryResume');
-  const _canceled = Symbol('_canceled');
-  const _unlisten = Symbol('_unlisten');
-  html$._EventStreamSubscription$ = dart.generic(T => {
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    class _EventStreamSubscription extends async.StreamSubscription$(T) {
-      new(target, eventType, onData, useCapture) {
-        this[_target$0] = target;
-        this[_eventType] = eventType;
-        this[_useCapture] = useCapture;
-        this[_onData$0] = onData == null ? null : html$._wrapZone(html$.Event, dart.dynamic)(dart.fn(e => dart.dcall(onData, e), EventTodynamic()));
-        this[_pauseCount$0] = 0;
-        this[_tryResume]();
-      }
-      cancel() {
-        if (dart.test(this[_canceled])) return null;
-        this[_unlisten]();
-        this[_target$0] = null;
-        this[_onData$0] = null;
-        return null;
-      }
-      get [_canceled]() {
-        return this[_target$0] == null;
-      }
-      onData(handleData) {
-        if (dart.test(this[_canceled])) {
-          dart.throw(new core.StateError("Subscription has been canceled."));
-        }
-        this[_unlisten]();
-        this[_onData$0] = html$._wrapZone(html$.Event, dart.dynamic)(_wrapZoneCallbackOfEvent$dynamic()._check(handleData));
-        this[_tryResume]();
-      }
-      onError(handleError) {}
-      onDone(handleDone) {}
-      pause(resumeSignal) {
-        if (resumeSignal === void 0) resumeSignal = null;
-        if (dart.test(this[_canceled])) return;
-        this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) + 1;
-        this[_unlisten]();
-        if (resumeSignal != null) {
-          resumeSignal.whenComplete(dart.bind(this, 'resume'));
-        }
-      }
-      get isPaused() {
-        return dart.notNull(this[_pauseCount$0]) > 0;
-      }
-      resume() {
-        if (dart.test(this[_canceled]) || !dart.test(this.isPaused)) return;
-        this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) - 1;
-        this[_tryResume]();
-      }
-      [_tryResume]() {
-        if (this[_onData$0] != null && !dart.test(this.isPaused)) {
-          this[_target$0][dartx.addEventListener](this[_eventType], this[_onData$0], this[_useCapture]);
-        }
-      }
-      [_unlisten]() {
-        if (this[_onData$0] != null) {
-          this[_target$0][dartx.removeEventListener](this[_eventType], this[_onData$0], this[_useCapture]);
-        }
-      }
-      asFuture(E) {
-        return futureValue => {
-          if (futureValue === void 0) futureValue = null;
-          let completer = async.Completer$(E).new();
-          return completer.future;
-        };
-      }
-    }
-    dart.setSignature(_EventStreamSubscription, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._EventStreamSubscription$(T), [html$.EventTarget, core.String, TTovoid(), core.bool])}),
-      fields: () => ({
-        [_pauseCount$0]: core.int,
-        [_target$0]: html$.EventTarget,
-        [_eventType]: core.String,
-        [_onData$0]: html$.EventListener,
-        [_useCapture]: core.bool
-      }),
-      getters: () => ({
-        [_canceled]: dart.definiteFunctionType(core.bool, []),
-        isPaused: dart.definiteFunctionType(core.bool, [])
-      }),
-      methods: () => ({
-        cancel: dart.definiteFunctionType(async.Future, []),
-        onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
-        onError: dart.definiteFunctionType(dart.void, [core.Function]),
-        onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
-        pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
-        resume: dart.definiteFunctionType(dart.void, []),
-        [_tryResume]: dart.definiteFunctionType(dart.void, []),
-        [_unlisten]: dart.definiteFunctionType(dart.void, []),
-        asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]])
-      })
-    });
-    return _EventStreamSubscription;
-  });
-  html$._EventStreamSubscription = _EventStreamSubscription();
-  html$.CustomStream$ = dart.generic(T => {
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    class CustomStream extends core.Object {}
-    dart.addTypeTests(CustomStream);
-    CustomStream[dart.implements] = () => [StreamOfT()];
-    return CustomStream;
-  });
-  html$.CustomStream = CustomStream();
-  const _streamController = Symbol('_streamController');
-  const _type$ = Symbol('_type');
-  html$._CustomEventStreamImpl$ = dart.generic(T => {
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    let CustomStreamOfT = () => (CustomStreamOfT = dart.constFn(html$.CustomStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
-    class _CustomEventStreamImpl extends async.Stream$(T) {
-      new(type) {
-        this[_streamController] = null;
-        this[_type$] = null;
-        super.new();
-        this[_type$] = type;
-        this[_streamController] = StreamControllerOfT().broadcast({sync: true});
-      }
-      listen(onData, opts) {
-        let onError = opts && 'onError' in opts ? opts.onError : null;
-        let onDone = opts && 'onDone' in opts ? opts.onDone : null;
-        let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-        return this[_streamController].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
-      }
-      asBroadcastStream(opts) {
-        let onListen = opts && 'onListen' in opts ? opts.onListen : null;
-        let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
-        return this[_streamController].stream;
-      }
-      get isBroadcast() {
-        return true;
-      }
-      add(event) {
-        T._check(event);
-        if (event[dartx.type] == this[_type$]) this[_streamController].add(event);
-      }
-    }
-    _CustomEventStreamImpl[dart.implements] = () => [CustomStreamOfT()];
-    dart.setSignature(_CustomEventStreamImpl, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._CustomEventStreamImpl$(T), [core.String])}),
-      fields: () => ({
-        [_streamController]: StreamControllerOfT(),
-        [_type$]: core.String
-      }),
-      methods: () => ({
-        listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
-        add: dart.definiteFunctionType(dart.void, [T])
-      })
-    });
-    return _CustomEventStreamImpl;
-  });
-  html$._CustomEventStreamImpl = _CustomEventStreamImpl();
-  const _parent$ = Symbol('_parent');
-  const _shadowKeyCode = Symbol('_shadowKeyCode');
-  const _shadowCharCode = Symbol('_shadowCharCode');
-  const _shadowAltKey = Symbol('_shadowAltKey');
-  const _realKeyCode = Symbol('_realKeyCode');
-  const _realCharCode = Symbol('_realCharCode');
-  const _realAltKey = Symbol('_realAltKey');
-  const _currentTarget = Symbol('_currentTarget');
-  const _shadowKeyIdentifier = Symbol('_shadowKeyIdentifier');
-  html$.KeyEvent = class KeyEvent extends html$._WrappedEvent {
-    get keyCode() {
-      return this[_shadowKeyCode];
-    }
-    get charCode() {
-      return this.type == 'keypress' ? this[_shadowCharCode] : 0;
-    }
-    get altKey() {
-      return this[_shadowAltKey];
-    }
-    get which() {
-      return this.keyCode;
-    }
-    get [_realKeyCode]() {
-      return this[_parent$].keyCode;
-    }
-    get [_realCharCode]() {
-      return this[_parent$].charCode;
-    }
-    get [_realAltKey]() {
-      return this[_parent$].altKey;
-    }
-    static _makeRecord() {
-      let interceptor = _foreign_helper.JS_INTERCEPTOR_CONSTANT(dart.wrapType(html$.KeyboardEvent));
-      return _js_helper.makeLeafDispatchRecord(interceptor);
-    }
-    wrap(parent) {
-      this[_parent$] = null;
-      this[_shadowAltKey] = null;
-      this[_shadowCharCode] = null;
-      this[_shadowKeyCode] = null;
-      this[_currentTarget] = null;
-      super.new(parent);
-      this[_parent$] = parent;
-      this[_shadowAltKey] = this[_realAltKey];
-      this[_shadowCharCode] = this[_realCharCode];
-      this[_shadowKeyCode] = this[_realKeyCode];
-      this[_currentTarget] = this[_parent$][dartx.currentTarget];
-    }
-    static new(type, opts) {
-      let view = opts && 'view' in opts ? opts.view : null;
-      let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
-      let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-      let keyCode = opts && 'keyCode' in opts ? opts.keyCode : 0;
-      let charCode = opts && 'charCode' in opts ? opts.charCode : 0;
-      let keyLocation = opts && 'keyLocation' in opts ? opts.keyLocation : 1;
-      let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
-      let altKey = opts && 'altKey' in opts ? opts.altKey : false;
-      let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
-      let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
-      let currentTarget = opts && 'currentTarget' in opts ? opts.currentTarget : null;
-      if (view == null) {
-        view = html$.window;
-      }
-      let eventObj = null;
-      if (dart.test(html$.KeyEvent.canUseDispatchEvent)) {
-        eventObj = html$.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
-        eventObj.keyCode = keyCode;
-        eventObj.which = keyCode;
-        eventObj.charCode = charCode;
-        eventObj.keyLocation = keyLocation;
-        eventObj.ctrlKey = ctrlKey;
-        eventObj.altKey = altKey;
-        eventObj.shiftKey = shiftKey;
-        eventObj.metaKey = metaKey;
-      } else {
-        eventObj = html$.Event.eventType('KeyboardEvent', type, {canBubble: canBubble, cancelable: cancelable});
-        Object.defineProperty(eventObj, 'keyCode', {
-          get: function() {
-            return this.keyCodeVal;
-          }
-        });
-        Object.defineProperty(eventObj, 'which', {
-          get: function() {
-            return this.keyCodeVal;
-          }
-        });
-        Object.defineProperty(eventObj, 'charCode', {
-          get: function() {
-            return this.charCodeVal;
-          }
-        });
-        let keyIdentifier = html$.KeyEvent._convertToHexString(charCode, keyCode);
-        dart.dsend(eventObj, _initKeyboardEvent, type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey);
-        eventObj.keyCodeVal = keyCode;
-        eventObj.charCodeVal = charCode;
-      }
-      _interceptors.setDispatchProperty(eventObj, html$.KeyEvent._keyboardEventDispatchRecord);
-      let keyEvent = new html$.KeyEvent.wrap(html$.KeyboardEvent._check(eventObj));
-      if (keyEvent[_currentTarget] == null) {
-        keyEvent[_currentTarget] = currentTarget == null ? html$.window : currentTarget;
-      }
-      return keyEvent;
-    }
-    static get canUseDispatchEvent() {
-      return typeof document.body.dispatchEvent == "function" && document.body.dispatchEvent.length > 0;
-    }
-    get currentTarget() {
-      return this[_currentTarget];
-    }
-    static _convertToHexString(charCode, keyCode) {
-      if (charCode != -1) {
-        let hex = charCode[dartx.toRadixString](16);
-        let sb = new core.StringBuffer('U+');
-        for (let i = 0; i < 4 - dart.notNull(hex[dartx.length]); i++)
-          sb.write('0');
-        sb.write(hex);
-        return sb.toString();
-      } else {
-        return html$.KeyCode._convertKeyCodeToKeyName(keyCode);
-      }
-    }
-    get code() {
-      return this[_parent$][dartx.code];
-    }
-    get ctrlKey() {
-      return this[_parent$][dartx.ctrlKey];
-    }
-    get detail() {
-      return this[_parent$][dartx.detail];
-    }
-    get key() {
-      return this[_parent$][dartx.key];
-    }
-    get keyLocation() {
-      return this[_parent$][dartx.keyLocation];
-    }
-    get metaKey() {
-      return this[_parent$][dartx.metaKey];
-    }
-    get shiftKey() {
-      return this[_parent$][dartx.shiftKey];
-    }
-    get sourceDevice() {
-      return this[_parent$][dartx.sourceDevice];
-    }
-    get view() {
-      return html$.Window._check(this[_parent$][dartx.view]);
-    }
-    [_initUIEvent](type, canBubble, cancelable, view, detail) {
-      dart.throw(new core.UnsupportedError("Cannot initialize a UI Event from a KeyEvent."));
-    }
-    get [_shadowKeyIdentifier]() {
-      return this[_parent$].keyIdentifier;
-    }
-    get [_charCode]() {
-      return this.charCode;
-    }
-    get [_keyCode]() {
-      return this.keyCode;
-    }
-    get [_which]() {
-      return this.which;
-    }
-    get [_keyIdentifier]() {
-      dart.throw(new core.UnsupportedError("keyIdentifier is unsupported."));
-    }
-    [_initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey) {
-      dart.throw(new core.UnsupportedError("Cannot initialize a KeyboardEvent from a KeyEvent."));
-    }
-    getModifierState(keyArgument) {
-      return dart.throw(new core.UnimplementedError());
-    }
-    get location() {
-      return dart.throw(new core.UnimplementedError());
-    }
-    get repeat() {
-      return dart.throw(new core.UnimplementedError());
-    }
-    get [_get_view]() {
-      return dart.throw(new core.UnimplementedError());
-    }
-  };
-  dart.defineNamedConstructor(html$.KeyEvent, 'wrap');
-  html$.KeyEvent[dart.implements] = () => [html$.KeyboardEvent];
-  dart.setSignature(html$.KeyEvent, {
-    constructors: () => ({
-      wrap: dart.definiteFunctionType(html$.KeyEvent, [html$.KeyboardEvent]),
-      new: dart.definiteFunctionType(html$.KeyEvent, [core.String], {view: html$.Window, canBubble: core.bool, cancelable: core.bool, keyCode: core.int, charCode: core.int, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, currentTarget: html$.EventTarget})
-    }),
-    fields: () => ({
-      [_parent$]: html$.KeyboardEvent,
-      [_shadowAltKey]: core.bool,
-      [_shadowCharCode]: core.int,
-      [_shadowKeyCode]: core.int,
-      [_currentTarget]: html$.EventTarget
-    }),
-    getters: () => ({
-      keyCode: dart.definiteFunctionType(core.int, []),
-      charCode: dart.definiteFunctionType(core.int, []),
-      altKey: dart.definiteFunctionType(core.bool, []),
-      which: dart.definiteFunctionType(core.int, []),
-      [_realKeyCode]: dart.definiteFunctionType(core.int, []),
-      [_realCharCode]: dart.definiteFunctionType(core.int, []),
-      [_realAltKey]: dart.definiteFunctionType(core.bool, []),
-      code: dart.definiteFunctionType(core.String, []),
-      ctrlKey: dart.definiteFunctionType(core.bool, []),
-      detail: dart.definiteFunctionType(core.int, []),
-      key: dart.definiteFunctionType(core.String, []),
-      keyLocation: dart.definiteFunctionType(core.int, []),
-      metaKey: dart.definiteFunctionType(core.bool, []),
-      shiftKey: dart.definiteFunctionType(core.bool, []),
-      sourceDevice: dart.definiteFunctionType(html$.InputDevice, []),
-      view: dart.definiteFunctionType(html$.Window, []),
-      [_shadowKeyIdentifier]: dart.definiteFunctionType(core.String, []),
-      [_charCode]: dart.definiteFunctionType(core.int, []),
-      [_keyCode]: dart.definiteFunctionType(core.int, []),
-      [_which]: dart.definiteFunctionType(core.int, []),
-      [_keyIdentifier]: dart.definiteFunctionType(core.String, []),
-      location: dart.definiteFunctionType(core.int, []),
-      repeat: dart.definiteFunctionType(core.bool, []),
-      [_get_view]: dart.definiteFunctionType(dart.dynamic, [])
-    }),
-    methods: () => ({
-      [_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int]),
-      [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
-      getModifierState: dart.definiteFunctionType(core.bool, [core.String])
-    }),
-    sfields: () => ({
-      _keyboardEventDispatchRecord: dart.dynamic,
-      keyDownEvent: EventStreamProviderOfKeyEvent(),
-      keyUpEvent: EventStreamProviderOfKeyEvent(),
-      keyPressEvent: EventStreamProviderOfKeyEvent()
-    }),
-    sgetters: () => ({canUseDispatchEvent: dart.definiteFunctionType(core.bool, [])}),
-    statics: () => ({
-      _makeRecord: dart.definiteFunctionType(dart.dynamic, []),
-      _convertToHexString: dart.definiteFunctionType(core.String, [core.int, core.int])
-    }),
-    names: ['_makeRecord', '_convertToHexString']
-  });
-  dart.defineLazy(html$.KeyEvent, {
-    get _keyboardEventDispatchRecord() {
-      return html$.KeyEvent._makeRecord();
-    },
-    get keyDownEvent() {
-      return new html$._KeyboardEventHandler('keydown');
-    },
-    set keyDownEvent(_) {},
-    get keyUpEvent() {
-      return new html$._KeyboardEventHandler('keyup');
-    },
-    set keyUpEvent(_) {},
-    get keyPressEvent() {
-      return new html$._KeyboardEventHandler('keypress');
-    },
-    set keyPressEvent(_) {}
-  });
-  html$._CustomKeyEventStreamImpl = class _CustomKeyEventStreamImpl extends html$._CustomEventStreamImpl$(html$.KeyEvent) {
-    new(type) {
-      super.new(type);
-    }
-    add(event) {
-      if (event.type == this[_type$]) {
-        event.currentTarget[dartx.dispatchEvent](event[_parent$]);
-        this[_streamController].add(event);
-      }
-    }
-  };
-  dart.addSimpleTypeTests(html$._CustomKeyEventStreamImpl);
-  html$._CustomKeyEventStreamImpl[dart.implements] = () => [CustomStreamOfKeyEvent()];
-  dart.setSignature(html$._CustomKeyEventStreamImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._CustomKeyEventStreamImpl, [core.String])})
-  });
-  const _subscriptions = Symbol('_subscriptions');
-  const _controller$1 = Symbol('_controller');
-  html$._StreamPool$ = dart.generic(T => {
-    let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
-    let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
-    let MapOfStreamOfT$StreamSubscriptionOfT = () => (MapOfStreamOfT$StreamSubscriptionOfT = dart.constFn(core.Map$(StreamOfT(), StreamSubscriptionOfT())))();
-    let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-    class _StreamPool extends core.Object {
-      broadcast() {
-        this[_subscriptions] = MapOfStreamOfT$StreamSubscriptionOfT().new();
-        this[_controller$1] = null;
-        this[_controller$1] = StreamControllerOfT().broadcast({sync: true, onCancel: dart.bind(this, 'close')});
-      }
-      get stream() {
-        return this[_controller$1].stream;
-      }
-      add(stream) {
-        StreamOfT()._check(stream);
-        if (dart.test(this[_subscriptions][dartx.containsKey](stream))) return;
-        this[_subscriptions][dartx._set](stream, stream.listen(dart.bind(this[_controller$1], 'add'), {onError: dart.bind(this[_controller$1], 'addError'), onDone: dart.fn(() => this.remove(stream), VoidTovoid$())}));
-      }
-      remove(stream) {
-        StreamOfT()._check(stream);
-        let subscription = this[_subscriptions][dartx.remove](stream);
-        if (subscription != null) subscription.cancel();
-      }
-      close() {
-        for (let subscription of this[_subscriptions][dartx.values]) {
-          subscription.cancel();
-        }
-        this[_subscriptions][dartx.clear]();
-        this[_controller$1].close();
-      }
-    }
-    dart.addTypeTests(_StreamPool);
-    dart.defineNamedConstructor(_StreamPool, 'broadcast');
-    dart.setSignature(_StreamPool, {
-      constructors: () => ({broadcast: dart.definiteFunctionType(html$._StreamPool$(T), [])}),
-      fields: () => ({
-        [_controller$1]: StreamControllerOfT(),
-        [_subscriptions]: MapOfStreamOfT$StreamSubscriptionOfT()
-      }),
-      getters: () => ({stream: dart.definiteFunctionType(async.Stream$(T), [])}),
-      methods: () => ({
-        add: dart.definiteFunctionType(dart.void, [StreamOfT()]),
-        remove: dart.definiteFunctionType(dart.void, [StreamOfT()]),
-        close: dart.definiteFunctionType(dart.void, [])
-      })
-    });
-    return _StreamPool;
-  });
-  html$._StreamPool = _StreamPool();
-  const _eventTypeGetter = Symbol('_eventTypeGetter');
-  html$._CustomEventStreamProvider$ = dart.generic(T => {
-    let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
-    let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
-    let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
-    let EventStreamProviderOfT = () => (EventStreamProviderOfT = dart.constFn(html$.EventStreamProvider$(T)))();
-    class _CustomEventStreamProvider extends core.Object {
-      new(eventTypeGetter) {
-        this[_eventTypeGetter] = eventTypeGetter;
-      }
-      forTarget(e, opts) {
-        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-        return new (_EventStreamOfT())(e, core.String._check(dart.dcall(this[_eventTypeGetter], e)), useCapture);
-      }
-      forElement(e, opts) {
-        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-        return new (_ElementEventStreamImplOfT())(e, dart.dcall(this[_eventTypeGetter], e), useCapture);
-      }
-      [_forElementList](e, opts) {
-        let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-        return new (_ElementListEventStreamImplOfT())(e, core.String._check(dart.dcall(this[_eventTypeGetter], e)), useCapture);
-      }
-      getEventType(target) {
-        return core.String._check(dart.dcall(this[_eventTypeGetter], target));
-      }
-      get [_eventType]() {
-        return dart.throw(new core.UnsupportedError('Access type through getEventType method.'));
-      }
-    }
-    dart.addTypeTests(_CustomEventStreamProvider);
-    _CustomEventStreamProvider[dart.implements] = () => [EventStreamProviderOfT()];
-    dart.setSignature(_CustomEventStreamProvider, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._CustomEventStreamProvider$(T), [dart.dynamic])}),
-      fields: () => ({[_eventTypeGetter]: dart.dynamic}),
-      getters: () => ({[_eventType]: dart.definiteFunctionType(core.String, [])}),
-      methods: () => ({
-        forTarget: dart.definiteFunctionType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}),
-        forElement: dart.definiteFunctionType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}),
-        [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
-        getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])
-      })
-    });
-    return _CustomEventStreamProvider;
-  });
-  html$._CustomEventStreamProvider = _CustomEventStreamProvider();
-  html$._Html5NodeValidator = class _Html5NodeValidator extends core.Object {
-    new(opts) {
-      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-      this.uriPolicy = uriPolicy != null ? uriPolicy : html$.UriPolicy.new();
-      if (dart.test(html$._Html5NodeValidator._attributeValidators[dartx.isEmpty])) {
-        for (let attr of html$._Html5NodeValidator._standardAttributes) {
-          html$._Html5NodeValidator._attributeValidators[dartx._set](attr, html$._Html5NodeValidator._standardAttributeValidator);
-        }
-        for (let attr of html$._Html5NodeValidator._uriAttributes) {
-          html$._Html5NodeValidator._attributeValidators[dartx._set](attr, html$._Html5NodeValidator._uriAttributeValidator);
-        }
-      }
-    }
-    allowsElement(element) {
-      return html$._Html5NodeValidator._allowedElements.contains(html$.Element._safeTagName(element));
-    }
-    allowsAttribute(element, attributeName, value) {
-      let tagName = html$.Element._safeTagName(element);
-      let validator = html$._Html5NodeValidator._attributeValidators[dartx._get](dart.str`${tagName}::${attributeName}`);
-      if (validator == null) {
-        validator = html$._Html5NodeValidator._attributeValidators[dartx._get](dart.str`*::${attributeName}`);
-      }
-      if (validator == null) {
-        return false;
-      }
-      return core.bool._check(dart.dcall(validator, element, attributeName, value, this));
-    }
-    static _standardAttributeValidator(element, attributeName, value, context) {
-      return true;
-    }
-    static _uriAttributeValidator(element, attributeName, value, context) {
-      return context.uriPolicy.allowsUri(value);
-    }
-  };
-  html$._Html5NodeValidator[dart.implements] = () => [html$.NodeValidator];
-  dart.setSignature(html$._Html5NodeValidator, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._Html5NodeValidator, [], {uriPolicy: html$.UriPolicy})}),
-    fields: () => ({uriPolicy: html$.UriPolicy}),
-    methods: () => ({
-      allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
-      allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
-    }),
-    sfields: () => ({
-      _allowedElements: SetOfString(),
-      _standardAttributes: ListOfString(),
-      _uriAttributes: ListOfString(),
-      _attributeValidators: MapOfString$Function()
-    }),
-    statics: () => ({
-      _standardAttributeValidator: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator]),
-      _uriAttributeValidator: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator])
-    }),
-    names: ['_standardAttributeValidator', '_uriAttributeValidator']
-  });
-  html$._Html5NodeValidator._standardAttributes = dart.constList(['*::class', '*::dir', '*::draggable', '*::hidden', '*::id', '*::inert', '*::itemprop', '*::itemref', '*::itemscope', '*::lang', '*::spellcheck', '*::title', '*::translate', 'A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'AREA::accesskey', 'AREA::alt', 'AREA::coords', 'AREA::nohref', 'AREA::shape', 'AREA::tabindex', 'AREA::target', 'AUDIO::controls', 'AUDIO::loop', 'AUDIO::mediagroup', 'AUDIO::muted', 'AUDIO::preload', 'BDO::dir', 'BODY::alink', 'BODY::bgcolor', 'BODY::link', 'BODY::text', 'BODY::vlink', 'BR::clear', 'BUTTON::accesskey', 'BUTTON::disabled', 'BUTTON::name', 'BUTTON::tabindex', 'BUTTON::type', 'BUTTON::value', 'CANVAS::height', 'CANVAS::width', 'CAPTION::align', 'COL::align', 'COL::char', 'COL::charoff', 'COL::span', 'COL::valign', 'COL::width', 'COLGROUP::align', 'COLGROUP::char', 'COLGROUP::charoff', 'COLGROUP::span', 'COLGROUP::valign', 'COLGROUP::width', 'COMMAND::checked', 'COMMAND::command', 'COMMAND::disabled', 'COMMAND::label', 'COMMAND::radiogroup', 'COMMAND::type', 'DATA::value', 'DEL::datetime', 'DETAILS::open', 'DIR::compact', 'DIV::align', 'DL::compact', 'FIELDSET::disabled', 'FONT::color', 'FONT::face', 'FONT::size', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target', 'FRAME::name', 'H1::align', 'H2::align', 'H3::align', 'H4::align', 'H5::align', 'H6::align', 'HR::align', 'HR::noshade', 'HR::size', 'HR::width', 'HTML::version', 'IFRAME::align', 'IFRAME::frameborder', 'IFRAME::height', 'IFRAME::marginheight', 'IFRAME::marginwidth', 'IFRAME::width', 'IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width', 'INPUT::accept', 'INPUT::accesskey', 'INPUT::align', 'INPUT::alt', 'INPUT::autocomplete', 'INPUT::autofocus', 'INPUT::checked', 'INPUT::disabled', 'INPUT::inputmode', 'INPUT::ismap', 'INPUT::list', 'INPUT::max', 'INPUT::maxlength', 'INPUT::min', 'INPUT::multiple', 'INPUT::name', 'INPUT::placeholder', 'INPUT::readonly', 'INPUT::required', 'INPUT::size', 'INPUT::step', 'INPUT::tabindex', 'INPUT::type', 'INPUT::usemap', 'INPUT::value', 'INS::datetime', 'KEYGEN::disabled', 'KEYGEN::keytype', 'KEYGEN::name', 'LABEL::accesskey', 'LABEL::for', 'LEGEND::accesskey', 'LEGEND::align', 'LI::type', 'LI::value', 'LINK::sizes', 'MAP::name', 'MENU::compact', 'MENU::label', 'MENU::type', 'METER::high', 'METER::low', 'METER::max', 'METER::min', 'METER::value', 'OBJECT::typemustmatch', 'OL::compact', 'OL::reversed', 'OL::start', 'OL::type', 'OPTGROUP::disabled', 'OPTGROUP::label', 'OPTION::disabled', 'OPTION::label', 'OPTION::selected', 'OPTION::value', 'OUTPUT::for', 'OUTPUT::name', 'P::align', 'PRE::width', 'PROGRESS::max', 'PROGRESS::min', 'PROGRESS::value', 'SELECT::autocomplete', 'SELECT::disabled', 'SELECT::multiple', 'SELECT::name', 'SELECT::required', 'SELECT::size', 'SELECT::tabindex', 'SOURCE::type', 'TABLE::align', 'TABLE::bgcolor', 'TABLE::border', 'TABLE::cellpadding', 'TABLE::cellspacing', 'TABLE::frame', 'TABLE::rules', 'TABLE::summary', 'TABLE::width', 'TBODY::align', 'TBODY::char', 'TBODY::charoff', 'TBODY::valign', 'TD::abbr', 'TD::align', 'TD::axis', 'TD::bgcolor', 'TD::char', 'TD::charoff', 'TD::colspan', 'TD::headers', 'TD::height', 'TD::nowrap', 'TD::rowspan', 'TD::scope', 'TD::valign', 'TD::width', 'TEXTAREA::accesskey', 'TEXTAREA::autocomplete', 'TEXTAREA::cols', 'TEXTAREA::disabled', 'TEXTAREA::inputmode', 'TEXTAREA::name', 'TEXTAREA::placeholder', 'TEXTAREA::readonly', 'TEXTAREA::required', 'TEXTAREA::rows', 'TEXTAREA::tabindex', 'TEXTAREA::wrap', 'TFOOT::align', 'TFOOT::char', 'TFOOT::charoff', 'TFOOT::valign', 'TH::abbr', 'TH::align', 'TH::axis', 'TH::bgcolor', 'TH::char', 'TH::charoff', 'TH::colspan', 'TH::headers', 'TH::height', 'TH::nowrap', 'TH::rowspan', 'TH::scope', 'TH::valign', 'TH::width', 'THEAD::align', 'THEAD::char', 'THEAD::charoff', 'THEAD::valign', 'TR::align', 'TR::bgcolor', 'TR::char', 'TR::charoff', 'TR::valign', 'TRACK::default', 'TRACK::kind', 'TRACK::label', 'TRACK::srclang', 'UL::compact', 'UL::type', 'VIDEO::controls', 'VIDEO::height', 'VIDEO::loop', 'VIDEO::mediagroup', 'VIDEO::muted', 'VIDEO::preload', 'VIDEO::width'], core.String);
-  html$._Html5NodeValidator._uriAttributes = dart.constList(['A::href', 'AREA::href', 'BLOCKQUOTE::cite', 'BODY::background', 'COMMAND::icon', 'DEL::cite', 'FORM::action', 'IMG::src', 'INPUT::src', 'INS::cite', 'Q::cite', 'VIDEO::poster'], core.String);
-  dart.defineLazy(html$._Html5NodeValidator, {
-    get _allowedElements() {
-      return SetOfString().from(JSArrayOfString().of(['A', 'ABBR', 'ACRONYM', 'ADDRESS', 'AREA', 'ARTICLE', 'ASIDE', 'AUDIO', 'B', 'BDI', 'BDO', 'BIG', 'BLOCKQUOTE', 'BR', 'BUTTON', 'CANVAS', 'CAPTION', 'CENTER', 'CITE', 'CODE', 'COL', 'COLGROUP', 'COMMAND', 'DATA', 'DATALIST', 'DD', 'DEL', 'DETAILS', 'DFN', 'DIR', 'DIV', 'DL', 'DT', 'EM', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FONT', 'FOOTER', 'FORM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR', 'I', 'IFRAME', 'IMG', 'INPUT', 'INS', 'KBD', 'LABEL', 'LEGEND', 'LI', 'MAP', 'MARK', 'MENU', 'METER', 'NAV', 'NOBR', 'OL', 'OPTGROUP', 'OPTION', 'OUTPUT', 'P', 'PRE', 'PROGRESS', 'Q', 'S', 'SAMP', 'SECTION', 'SELECT', 'SMALL', 'SOURCE', 'SPAN', 'STRIKE', 'STRONG', 'SUB', 'SUMMARY', 'SUP', 'TABLE', 'TBODY', 'TD', 'TEXTAREA', 'TFOOT', 'TH', 'THEAD', 'TIME', 'TR', 'TRACK', 'TT', 'U', 'UL', 'VAR', 'VIDEO', 'WBR']));
-    },
-    get _attributeValidators() {
-      return dart.map({}, core.String, core.Function);
-    }
-  });
-  html$.KeyCode = class KeyCode extends core.Object {
-    static isCharacterKey(keyCode) {
-      if (dart.notNull(keyCode) >= html$.KeyCode.ZERO && dart.notNull(keyCode) <= html$.KeyCode.NINE || dart.notNull(keyCode) >= html$.KeyCode.NUM_ZERO && dart.notNull(keyCode) <= html$.KeyCode.NUM_MULTIPLY || dart.notNull(keyCode) >= html$.KeyCode.A && dart.notNull(keyCode) <= html$.KeyCode.Z) {
-        return true;
-      }
-      if (dart.test(html_common.Device.isWebKit) && keyCode == 0) {
-        return true;
-      }
-      return keyCode == html$.KeyCode.SPACE || keyCode == html$.KeyCode.QUESTION_MARK || keyCode == html$.KeyCode.NUM_PLUS || keyCode == html$.KeyCode.NUM_MINUS || keyCode == html$.KeyCode.NUM_PERIOD || keyCode == html$.KeyCode.NUM_DIVISION || keyCode == html$.KeyCode.SEMICOLON || keyCode == html$.KeyCode.FF_SEMICOLON || keyCode == html$.KeyCode.DASH || keyCode == html$.KeyCode.EQUALS || keyCode == html$.KeyCode.FF_EQUALS || keyCode == html$.KeyCode.COMMA || keyCode == html$.KeyCode.PERIOD || keyCode == html$.KeyCode.SLASH || keyCode == html$.KeyCode.APOSTROPHE || keyCode == html$.KeyCode.SINGLE_QUOTE || keyCode == html$.KeyCode.OPEN_SQUARE_BRACKET || keyCode == html$.KeyCode.BACKSLASH || keyCode == html$.KeyCode.CLOSE_SQUARE_BRACKET;
-    }
-    static _convertKeyCodeToKeyName(keyCode) {
-      switch (keyCode) {
-        case html$.KeyCode.ALT:
-        {
-          return html$._KeyName.ALT;
-        }
-        case html$.KeyCode.BACKSPACE:
-        {
-          return html$._KeyName.BACKSPACE;
-        }
-        case html$.KeyCode.CAPS_LOCK:
-        {
-          return html$._KeyName.CAPS_LOCK;
-        }
-        case html$.KeyCode.CTRL:
-        {
-          return html$._KeyName.CONTROL;
-        }
-        case html$.KeyCode.DELETE:
-        {
-          return html$._KeyName.DEL;
-        }
-        case html$.KeyCode.DOWN:
-        {
-          return html$._KeyName.DOWN;
-        }
-        case html$.KeyCode.END:
-        {
-          return html$._KeyName.END;
-        }
-        case html$.KeyCode.ENTER:
-        {
-          return html$._KeyName.ENTER;
-        }
-        case html$.KeyCode.ESC:
-        {
-          return html$._KeyName.ESC;
-        }
-        case html$.KeyCode.F1:
-        {
-          return html$._KeyName.F1;
-        }
-        case html$.KeyCode.F2:
-        {
-          return html$._KeyName.F2;
-        }
-        case html$.KeyCode.F3:
-        {
-          return html$._KeyName.F3;
-        }
-        case html$.KeyCode.F4:
-        {
-          return html$._KeyName.F4;
-        }
-        case html$.KeyCode.F5:
-        {
-          return html$._KeyName.F5;
-        }
-        case html$.KeyCode.F6:
-        {
-          return html$._KeyName.F6;
-        }
-        case html$.KeyCode.F7:
-        {
-          return html$._KeyName.F7;
-        }
-        case html$.KeyCode.F8:
-        {
-          return html$._KeyName.F8;
-        }
-        case html$.KeyCode.F9:
-        {
-          return html$._KeyName.F9;
-        }
-        case html$.KeyCode.F10:
-        {
-          return html$._KeyName.F10;
-        }
-        case html$.KeyCode.F11:
-        {
-          return html$._KeyName.F11;
-        }
-        case html$.KeyCode.F12:
-        {
-          return html$._KeyName.F12;
-        }
-        case html$.KeyCode.HOME:
-        {
-          return html$._KeyName.HOME;
-        }
-        case html$.KeyCode.INSERT:
-        {
-          return html$._KeyName.INSERT;
-        }
-        case html$.KeyCode.LEFT:
-        {
-          return html$._KeyName.LEFT;
-        }
-        case html$.KeyCode.META:
-        {
-          return html$._KeyName.META;
-        }
-        case html$.KeyCode.NUMLOCK:
-        {
-          return html$._KeyName.NUM_LOCK;
-        }
-        case html$.KeyCode.PAGE_DOWN:
-        {
-          return html$._KeyName.PAGE_DOWN;
-        }
-        case html$.KeyCode.PAGE_UP:
-        {
-          return html$._KeyName.PAGE_UP;
-        }
-        case html$.KeyCode.PAUSE:
-        {
-          return html$._KeyName.PAUSE;
-        }
-        case html$.KeyCode.PRINT_SCREEN:
-        {
-          return html$._KeyName.PRINT_SCREEN;
-        }
-        case html$.KeyCode.RIGHT:
-        {
-          return html$._KeyName.RIGHT;
-        }
-        case html$.KeyCode.SCROLL_LOCK:
-        {
-          return html$._KeyName.SCROLL;
-        }
-        case html$.KeyCode.SHIFT:
-        {
-          return html$._KeyName.SHIFT;
-        }
-        case html$.KeyCode.SPACE:
-        {
-          return html$._KeyName.SPACEBAR;
-        }
-        case html$.KeyCode.TAB:
-        {
-          return html$._KeyName.TAB;
-        }
-        case html$.KeyCode.UP:
-        {
-          return html$._KeyName.UP;
-        }
-        case html$.KeyCode.WIN_IME:
-        case html$.KeyCode.WIN_KEY:
-        case html$.KeyCode.WIN_KEY_LEFT:
-        case html$.KeyCode.WIN_KEY_RIGHT:
-        {
-          return html$._KeyName.WIN;
-        }
-        default:
-        {
-          return html$._KeyName.UNIDENTIFIED;
-        }
-      }
-      return html$._KeyName.UNIDENTIFIED;
-    }
-  };
-  dart.setSignature(html$.KeyCode, {
-    sfields: () => ({
-      WIN_KEY_FF_LINUX: core.int,
-      MAC_ENTER: core.int,
-      BACKSPACE: core.int,
-      TAB: core.int,
-      NUM_CENTER: core.int,
-      ENTER: core.int,
-      SHIFT: core.int,
-      CTRL: core.int,
-      ALT: core.int,
-      PAUSE: core.int,
-      CAPS_LOCK: core.int,
-      ESC: core.int,
-      SPACE: core.int,
-      PAGE_UP: core.int,
-      PAGE_DOWN: core.int,
-      END: core.int,
-      HOME: core.int,
-      LEFT: core.int,
-      UP: core.int,
-      RIGHT: core.int,
-      DOWN: core.int,
-      NUM_NORTH_EAST: core.int,
-      NUM_SOUTH_EAST: core.int,
-      NUM_SOUTH_WEST: core.int,
-      NUM_NORTH_WEST: core.int,
-      NUM_WEST: core.int,
-      NUM_NORTH: core.int,
-      NUM_EAST: core.int,
-      NUM_SOUTH: core.int,
-      PRINT_SCREEN: core.int,
-      INSERT: core.int,
-      NUM_INSERT: core.int,
-      DELETE: core.int,
-      NUM_DELETE: core.int,
-      ZERO: core.int,
-      ONE: core.int,
-      TWO: core.int,
-      THREE: core.int,
-      FOUR: core.int,
-      FIVE: core.int,
-      SIX: core.int,
-      SEVEN: core.int,
-      EIGHT: core.int,
-      NINE: core.int,
-      FF_SEMICOLON: core.int,
-      FF_EQUALS: core.int,
-      QUESTION_MARK: core.int,
-      A: core.int,
-      B: core.int,
-      C: core.int,
-      D: core.int,
-      E: core.int,
-      F: core.int,
-      G: core.int,
-      H: core.int,
-      I: core.int,
-      J: core.int,
-      K: core.int,
-      L: core.int,
-      M: core.int,
-      N: core.int,
-      O: core.int,
-      P: core.int,
-      Q: core.int,
-      R: core.int,
-      S: core.int,
-      T: core.int,
-      U: core.int,
-      V: core.int,
-      W: core.int,
-      X: core.int,
-      Y: core.int,
-      Z: core.int,
-      META: core.int,
-      WIN_KEY_LEFT: core.int,
-      WIN_KEY_RIGHT: core.int,
-      CONTEXT_MENU: core.int,
-      NUM_ZERO: core.int,
-      NUM_ONE: core.int,
-      NUM_TWO: core.int,
-      NUM_THREE: core.int,
-      NUM_FOUR: core.int,
-      NUM_FIVE: core.int,
-      NUM_SIX: core.int,
-      NUM_SEVEN: core.int,
-      NUM_EIGHT: core.int,
-      NUM_NINE: core.int,
-      NUM_MULTIPLY: core.int,
-      NUM_PLUS: core.int,
-      NUM_MINUS: core.int,
-      NUM_PERIOD: core.int,
-      NUM_DIVISION: core.int,
-      F1: core.int,
-      F2: core.int,
-      F3: core.int,
-      F4: core.int,
-      F5: core.int,
-      F6: core.int,
-      F7: core.int,
-      F8: core.int,
-      F9: core.int,
-      F10: core.int,
-      F11: core.int,
-      F12: core.int,
-      NUMLOCK: core.int,
-      SCROLL_LOCK: core.int,
-      FIRST_MEDIA_KEY: core.int,
-      LAST_MEDIA_KEY: core.int,
-      SEMICOLON: core.int,
-      DASH: core.int,
-      EQUALS: core.int,
-      COMMA: core.int,
-      PERIOD: core.int,
-      SLASH: core.int,
-      APOSTROPHE: core.int,
-      TILDE: core.int,
-      SINGLE_QUOTE: core.int,
-      OPEN_SQUARE_BRACKET: core.int,
-      BACKSLASH: core.int,
-      CLOSE_SQUARE_BRACKET: core.int,
-      WIN_KEY: core.int,
-      MAC_FF_META: core.int,
-      WIN_IME: core.int,
-      UNKNOWN: core.int
-    }),
-    statics: () => ({
-      isCharacterKey: dart.definiteFunctionType(core.bool, [core.int]),
-      _convertKeyCodeToKeyName: dart.definiteFunctionType(core.String, [core.int])
-    }),
-    names: ['isCharacterKey', '_convertKeyCodeToKeyName']
-  });
-  html$.KeyCode.WIN_KEY_FF_LINUX = 0;
-  html$.KeyCode.MAC_ENTER = 3;
-  html$.KeyCode.BACKSPACE = 8;
-  html$.KeyCode.TAB = 9;
-  html$.KeyCode.NUM_CENTER = 12;
-  html$.KeyCode.ENTER = 13;
-  html$.KeyCode.SHIFT = 16;
-  html$.KeyCode.CTRL = 17;
-  html$.KeyCode.ALT = 18;
-  html$.KeyCode.PAUSE = 19;
-  html$.KeyCode.CAPS_LOCK = 20;
-  html$.KeyCode.ESC = 27;
-  html$.KeyCode.SPACE = 32;
-  html$.KeyCode.PAGE_UP = 33;
-  html$.KeyCode.PAGE_DOWN = 34;
-  html$.KeyCode.END = 35;
-  html$.KeyCode.HOME = 36;
-  html$.KeyCode.LEFT = 37;
-  html$.KeyCode.UP = 38;
-  html$.KeyCode.RIGHT = 39;
-  html$.KeyCode.DOWN = 40;
-  html$.KeyCode.NUM_NORTH_EAST = 33;
-  html$.KeyCode.NUM_SOUTH_EAST = 34;
-  html$.KeyCode.NUM_SOUTH_WEST = 35;
-  html$.KeyCode.NUM_NORTH_WEST = 36;
-  html$.KeyCode.NUM_WEST = 37;
-  html$.KeyCode.NUM_NORTH = 38;
-  html$.KeyCode.NUM_EAST = 39;
-  html$.KeyCode.NUM_SOUTH = 40;
-  html$.KeyCode.PRINT_SCREEN = 44;
-  html$.KeyCode.INSERT = 45;
-  html$.KeyCode.NUM_INSERT = 45;
-  html$.KeyCode.DELETE = 46;
-  html$.KeyCode.NUM_DELETE = 46;
-  html$.KeyCode.ZERO = 48;
-  html$.KeyCode.ONE = 49;
-  html$.KeyCode.TWO = 50;
-  html$.KeyCode.THREE = 51;
-  html$.KeyCode.FOUR = 52;
-  html$.KeyCode.FIVE = 53;
-  html$.KeyCode.SIX = 54;
-  html$.KeyCode.SEVEN = 55;
-  html$.KeyCode.EIGHT = 56;
-  html$.KeyCode.NINE = 57;
-  html$.KeyCode.FF_SEMICOLON = 59;
-  html$.KeyCode.FF_EQUALS = 61;
-  html$.KeyCode.QUESTION_MARK = 63;
-  html$.KeyCode.A = 65;
-  html$.KeyCode.B = 66;
-  html$.KeyCode.C = 67;
-  html$.KeyCode.D = 68;
-  html$.KeyCode.E = 69;
-  html$.KeyCode.F = 70;
-  html$.KeyCode.G = 71;
-  html$.KeyCode.H = 72;
-  html$.KeyCode.I = 73;
-  html$.KeyCode.J = 74;
-  html$.KeyCode.K = 75;
-  html$.KeyCode.L = 76;
-  html$.KeyCode.M = 77;
-  html$.KeyCode.N = 78;
-  html$.KeyCode.O = 79;
-  html$.KeyCode.P = 80;
-  html$.KeyCode.Q = 81;
-  html$.KeyCode.R = 82;
-  html$.KeyCode.S = 83;
-  html$.KeyCode.T = 84;
-  html$.KeyCode.U = 85;
-  html$.KeyCode.V = 86;
-  html$.KeyCode.W = 87;
-  html$.KeyCode.X = 88;
-  html$.KeyCode.Y = 89;
-  html$.KeyCode.Z = 90;
-  html$.KeyCode.META = 91;
-  html$.KeyCode.WIN_KEY_LEFT = 91;
-  html$.KeyCode.WIN_KEY_RIGHT = 92;
-  html$.KeyCode.CONTEXT_MENU = 93;
-  html$.KeyCode.NUM_ZERO = 96;
-  html$.KeyCode.NUM_ONE = 97;
-  html$.KeyCode.NUM_TWO = 98;
-  html$.KeyCode.NUM_THREE = 99;
-  html$.KeyCode.NUM_FOUR = 100;
-  html$.KeyCode.NUM_FIVE = 101;
-  html$.KeyCode.NUM_SIX = 102;
-  html$.KeyCode.NUM_SEVEN = 103;
-  html$.KeyCode.NUM_EIGHT = 104;
-  html$.KeyCode.NUM_NINE = 105;
-  html$.KeyCode.NUM_MULTIPLY = 106;
-  html$.KeyCode.NUM_PLUS = 107;
-  html$.KeyCode.NUM_MINUS = 109;
-  html$.KeyCode.NUM_PERIOD = 110;
-  html$.KeyCode.NUM_DIVISION = 111;
-  html$.KeyCode.F1 = 112;
-  html$.KeyCode.F2 = 113;
-  html$.KeyCode.F3 = 114;
-  html$.KeyCode.F4 = 115;
-  html$.KeyCode.F5 = 116;
-  html$.KeyCode.F6 = 117;
-  html$.KeyCode.F7 = 118;
-  html$.KeyCode.F8 = 119;
-  html$.KeyCode.F9 = 120;
-  html$.KeyCode.F10 = 121;
-  html$.KeyCode.F11 = 122;
-  html$.KeyCode.F12 = 123;
-  html$.KeyCode.NUMLOCK = 144;
-  html$.KeyCode.SCROLL_LOCK = 145;
-  html$.KeyCode.FIRST_MEDIA_KEY = 166;
-  html$.KeyCode.LAST_MEDIA_KEY = 183;
-  html$.KeyCode.SEMICOLON = 186;
-  html$.KeyCode.DASH = 189;
-  html$.KeyCode.EQUALS = 187;
-  html$.KeyCode.COMMA = 188;
-  html$.KeyCode.PERIOD = 190;
-  html$.KeyCode.SLASH = 191;
-  html$.KeyCode.APOSTROPHE = 192;
-  html$.KeyCode.TILDE = 192;
-  html$.KeyCode.SINGLE_QUOTE = 222;
-  html$.KeyCode.OPEN_SQUARE_BRACKET = 219;
-  html$.KeyCode.BACKSLASH = 220;
-  html$.KeyCode.CLOSE_SQUARE_BRACKET = 221;
-  html$.KeyCode.WIN_KEY = 224;
-  html$.KeyCode.MAC_FF_META = 224;
-  html$.KeyCode.WIN_IME = 229;
-  html$.KeyCode.UNKNOWN = -1;
-  html$.KeyLocation = class KeyLocation extends core.Object {};
-  dart.setSignature(html$.KeyLocation, {
-    sfields: () => ({
-      STANDARD: core.int,
-      LEFT: core.int,
-      RIGHT: core.int,
-      NUMPAD: core.int,
-      MOBILE: core.int,
-      JOYSTICK: core.int
-    })
-  });
-  html$.KeyLocation.STANDARD = 0;
-  html$.KeyLocation.LEFT = 1;
-  html$.KeyLocation.RIGHT = 2;
-  html$.KeyLocation.NUMPAD = 3;
-  html$.KeyLocation.MOBILE = 4;
-  html$.KeyLocation.JOYSTICK = 5;
-  html$._KeyName = class _KeyName extends core.Object {};
-  dart.setSignature(html$._KeyName, {
-    sfields: () => ({
-      ACCEPT: core.String,
-      ADD: core.String,
-      AGAIN: core.String,
-      ALL_CANDIDATES: core.String,
-      ALPHANUMERIC: core.String,
-      ALT: core.String,
-      ALT_GRAPH: core.String,
-      APPS: core.String,
-      ATTN: core.String,
-      BROWSER_BACK: core.String,
-      BROWSER_FAVORTIES: core.String,
-      BROWSER_FORWARD: core.String,
-      BROWSER_NAME: core.String,
-      BROWSER_REFRESH: core.String,
-      BROWSER_SEARCH: core.String,
-      BROWSER_STOP: core.String,
-      CAMERA: core.String,
-      CAPS_LOCK: core.String,
-      CLEAR: core.String,
-      CODE_INPUT: core.String,
-      COMPOSE: core.String,
-      CONTROL: core.String,
-      CRSEL: core.String,
-      CONVERT: core.String,
-      COPY: core.String,
-      CUT: core.String,
-      DECIMAL: core.String,
-      DIVIDE: core.String,
-      DOWN: core.String,
-      DOWN_LEFT: core.String,
-      DOWN_RIGHT: core.String,
-      EJECT: core.String,
-      END: core.String,
-      ENTER: core.String,
-      ERASE_EOF: core.String,
-      EXECUTE: core.String,
-      EXSEL: core.String,
-      FN: core.String,
-      F1: core.String,
-      F2: core.String,
-      F3: core.String,
-      F4: core.String,
-      F5: core.String,
-      F6: core.String,
-      F7: core.String,
-      F8: core.String,
-      F9: core.String,
-      F10: core.String,
-      F11: core.String,
-      F12: core.String,
-      F13: core.String,
-      F14: core.String,
-      F15: core.String,
-      F16: core.String,
-      F17: core.String,
-      F18: core.String,
-      F19: core.String,
-      F20: core.String,
-      F21: core.String,
-      F22: core.String,
-      F23: core.String,
-      F24: core.String,
-      FINAL_MODE: core.String,
-      FIND: core.String,
-      FULL_WIDTH: core.String,
-      HALF_WIDTH: core.String,
-      HANGUL_MODE: core.String,
-      HANJA_MODE: core.String,
-      HELP: core.String,
-      HIRAGANA: core.String,
-      HOME: core.String,
-      INSERT: core.String,
-      JAPANESE_HIRAGANA: core.String,
-      JAPANESE_KATAKANA: core.String,
-      JAPANESE_ROMAJI: core.String,
-      JUNJA_MODE: core.String,
-      KANA_MODE: core.String,
-      KANJI_MODE: core.String,
-      KATAKANA: core.String,
-      LAUNCH_APPLICATION_1: core.String,
-      LAUNCH_APPLICATION_2: core.String,
-      LAUNCH_MAIL: core.String,
-      LEFT: core.String,
-      MENU: core.String,
-      META: core.String,
-      MEDIA_NEXT_TRACK: core.String,
-      MEDIA_PAUSE_PLAY: core.String,
-      MEDIA_PREVIOUS_TRACK: core.String,
-      MEDIA_STOP: core.String,
-      MODE_CHANGE: core.String,
-      NEXT_CANDIDATE: core.String,
-      NON_CONVERT: core.String,
-      NUM_LOCK: core.String,
-      PAGE_DOWN: core.String,
-      PAGE_UP: core.String,
-      PASTE: core.String,
-      PAUSE: core.String,
-      PLAY: core.String,
-      POWER: core.String,
-      PREVIOUS_CANDIDATE: core.String,
-      PRINT_SCREEN: core.String,
-      PROCESS: core.String,
-      PROPS: core.String,
-      RIGHT: core.String,
-      ROMAN_CHARACTERS: core.String,
-      SCROLL: core.String,
-      SELECT: core.String,
-      SELECT_MEDIA: core.String,
-      SEPARATOR: core.String,
-      SHIFT: core.String,
-      SOFT_1: core.String,
-      SOFT_2: core.String,
-      SOFT_3: core.String,
-      SOFT_4: core.String,
-      STOP: core.String,
-      SUBTRACT: core.String,
-      SYMBOL_LOCK: core.String,
-      UP: core.String,
-      UP_LEFT: core.String,
-      UP_RIGHT: core.String,
-      UNDO: core.String,
-      VOLUME_DOWN: core.String,
-      VOLUMN_MUTE: core.String,
-      VOLUMN_UP: core.String,
-      WIN: core.String,
-      ZOOM: core.String,
-      BACKSPACE: core.String,
-      TAB: core.String,
-      CANCEL: core.String,
-      ESC: core.String,
-      SPACEBAR: core.String,
-      DEL: core.String,
-      DEAD_GRAVE: core.String,
-      DEAD_EACUTE: core.String,
-      DEAD_CIRCUMFLEX: core.String,
-      DEAD_TILDE: core.String,
-      DEAD_MACRON: core.String,
-      DEAD_BREVE: core.String,
-      DEAD_ABOVE_DOT: core.String,
-      DEAD_UMLAUT: core.String,
-      DEAD_ABOVE_RING: core.String,
-      DEAD_DOUBLEACUTE: core.String,
-      DEAD_CARON: core.String,
-      DEAD_CEDILLA: core.String,
-      DEAD_OGONEK: core.String,
-      DEAD_IOTA: core.String,
-      DEAD_VOICED_SOUND: core.String,
-      DEC_SEMIVOICED_SOUND: core.String,
-      UNIDENTIFIED: core.String
-    })
-  });
-  html$._KeyName.ACCEPT = "Accept";
-  html$._KeyName.ADD = "Add";
-  html$._KeyName.AGAIN = "Again";
-  html$._KeyName.ALL_CANDIDATES = "AllCandidates";
-  html$._KeyName.ALPHANUMERIC = "Alphanumeric";
-  html$._KeyName.ALT = "Alt";
-  html$._KeyName.ALT_GRAPH = "AltGraph";
-  html$._KeyName.APPS = "Apps";
-  html$._KeyName.ATTN = "Attn";
-  html$._KeyName.BROWSER_BACK = "BrowserBack";
-  html$._KeyName.BROWSER_FAVORTIES = "BrowserFavorites";
-  html$._KeyName.BROWSER_FORWARD = "BrowserForward";
-  html$._KeyName.BROWSER_NAME = "BrowserHome";
-  html$._KeyName.BROWSER_REFRESH = "BrowserRefresh";
-  html$._KeyName.BROWSER_SEARCH = "BrowserSearch";
-  html$._KeyName.BROWSER_STOP = "BrowserStop";
-  html$._KeyName.CAMERA = "Camera";
-  html$._KeyName.CAPS_LOCK = "CapsLock";
-  html$._KeyName.CLEAR = "Clear";
-  html$._KeyName.CODE_INPUT = "CodeInput";
-  html$._KeyName.COMPOSE = "Compose";
-  html$._KeyName.CONTROL = "Control";
-  html$._KeyName.CRSEL = "Crsel";
-  html$._KeyName.CONVERT = "Convert";
-  html$._KeyName.COPY = "Copy";
-  html$._KeyName.CUT = "Cut";
-  html$._KeyName.DECIMAL = "Decimal";
-  html$._KeyName.DIVIDE = "Divide";
-  html$._KeyName.DOWN = "Down";
-  html$._KeyName.DOWN_LEFT = "DownLeft";
-  html$._KeyName.DOWN_RIGHT = "DownRight";
-  html$._KeyName.EJECT = "Eject";
-  html$._KeyName.END = "End";
-  html$._KeyName.ENTER = "Enter";
-  html$._KeyName.ERASE_EOF = "EraseEof";
-  html$._KeyName.EXECUTE = "Execute";
-  html$._KeyName.EXSEL = "Exsel";
-  html$._KeyName.FN = "Fn";
-  html$._KeyName.F1 = "F1";
-  html$._KeyName.F2 = "F2";
-  html$._KeyName.F3 = "F3";
-  html$._KeyName.F4 = "F4";
-  html$._KeyName.F5 = "F5";
-  html$._KeyName.F6 = "F6";
-  html$._KeyName.F7 = "F7";
-  html$._KeyName.F8 = "F8";
-  html$._KeyName.F9 = "F9";
-  html$._KeyName.F10 = "F10";
-  html$._KeyName.F11 = "F11";
-  html$._KeyName.F12 = "F12";
-  html$._KeyName.F13 = "F13";
-  html$._KeyName.F14 = "F14";
-  html$._KeyName.F15 = "F15";
-  html$._KeyName.F16 = "F16";
-  html$._KeyName.F17 = "F17";
-  html$._KeyName.F18 = "F18";
-  html$._KeyName.F19 = "F19";
-  html$._KeyName.F20 = "F20";
-  html$._KeyName.F21 = "F21";
-  html$._KeyName.F22 = "F22";
-  html$._KeyName.F23 = "F23";
-  html$._KeyName.F24 = "F24";
-  html$._KeyName.FINAL_MODE = "FinalMode";
-  html$._KeyName.FIND = "Find";
-  html$._KeyName.FULL_WIDTH = "FullWidth";
-  html$._KeyName.HALF_WIDTH = "HalfWidth";
-  html$._KeyName.HANGUL_MODE = "HangulMode";
-  html$._KeyName.HANJA_MODE = "HanjaMode";
-  html$._KeyName.HELP = "Help";
-  html$._KeyName.HIRAGANA = "Hiragana";
-  html$._KeyName.HOME = "Home";
-  html$._KeyName.INSERT = "Insert";
-  html$._KeyName.JAPANESE_HIRAGANA = "JapaneseHiragana";
-  html$._KeyName.JAPANESE_KATAKANA = "JapaneseKatakana";
-  html$._KeyName.JAPANESE_ROMAJI = "JapaneseRomaji";
-  html$._KeyName.JUNJA_MODE = "JunjaMode";
-  html$._KeyName.KANA_MODE = "KanaMode";
-  html$._KeyName.KANJI_MODE = "KanjiMode";
-  html$._KeyName.KATAKANA = "Katakana";
-  html$._KeyName.LAUNCH_APPLICATION_1 = "LaunchApplication1";
-  html$._KeyName.LAUNCH_APPLICATION_2 = "LaunchApplication2";
-  html$._KeyName.LAUNCH_MAIL = "LaunchMail";
-  html$._KeyName.LEFT = "Left";
-  html$._KeyName.MENU = "Menu";
-  html$._KeyName.META = "Meta";
-  html$._KeyName.MEDIA_NEXT_TRACK = "MediaNextTrack";
-  html$._KeyName.MEDIA_PAUSE_PLAY = "MediaPlayPause";
-  html$._KeyName.MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
-  html$._KeyName.MEDIA_STOP = "MediaStop";
-  html$._KeyName.MODE_CHANGE = "ModeChange";
-  html$._KeyName.NEXT_CANDIDATE = "NextCandidate";
-  html$._KeyName.NON_CONVERT = "Nonconvert";
-  html$._KeyName.NUM_LOCK = "NumLock";
-  html$._KeyName.PAGE_DOWN = "PageDown";
-  html$._KeyName.PAGE_UP = "PageUp";
-  html$._KeyName.PASTE = "Paste";
-  html$._KeyName.PAUSE = "Pause";
-  html$._KeyName.PLAY = "Play";
-  html$._KeyName.POWER = "Power";
-  html$._KeyName.PREVIOUS_CANDIDATE = "PreviousCandidate";
-  html$._KeyName.PRINT_SCREEN = "PrintScreen";
-  html$._KeyName.PROCESS = "Process";
-  html$._KeyName.PROPS = "Props";
-  html$._KeyName.RIGHT = "Right";
-  html$._KeyName.ROMAN_CHARACTERS = "RomanCharacters";
-  html$._KeyName.SCROLL = "Scroll";
-  html$._KeyName.SELECT = "Select";
-  html$._KeyName.SELECT_MEDIA = "SelectMedia";
-  html$._KeyName.SEPARATOR = "Separator";
-  html$._KeyName.SHIFT = "Shift";
-  html$._KeyName.SOFT_1 = "Soft1";
-  html$._KeyName.SOFT_2 = "Soft2";
-  html$._KeyName.SOFT_3 = "Soft3";
-  html$._KeyName.SOFT_4 = "Soft4";
-  html$._KeyName.STOP = "Stop";
-  html$._KeyName.SUBTRACT = "Subtract";
-  html$._KeyName.SYMBOL_LOCK = "SymbolLock";
-  html$._KeyName.UP = "Up";
-  html$._KeyName.UP_LEFT = "UpLeft";
-  html$._KeyName.UP_RIGHT = "UpRight";
-  html$._KeyName.UNDO = "Undo";
-  html$._KeyName.VOLUME_DOWN = "VolumeDown";
-  html$._KeyName.VOLUMN_MUTE = "VolumeMute";
-  html$._KeyName.VOLUMN_UP = "VolumeUp";
-  html$._KeyName.WIN = "Win";
-  html$._KeyName.ZOOM = "Zoom";
-  html$._KeyName.BACKSPACE = "Backspace";
-  html$._KeyName.TAB = "Tab";
-  html$._KeyName.CANCEL = "Cancel";
-  html$._KeyName.ESC = "Esc";
-  html$._KeyName.SPACEBAR = "Spacebar";
-  html$._KeyName.DEL = "Del";
-  html$._KeyName.DEAD_GRAVE = "DeadGrave";
-  html$._KeyName.DEAD_EACUTE = "DeadEacute";
-  html$._KeyName.DEAD_CIRCUMFLEX = "DeadCircumflex";
-  html$._KeyName.DEAD_TILDE = "DeadTilde";
-  html$._KeyName.DEAD_MACRON = "DeadMacron";
-  html$._KeyName.DEAD_BREVE = "DeadBreve";
-  html$._KeyName.DEAD_ABOVE_DOT = "DeadAboveDot";
-  html$._KeyName.DEAD_UMLAUT = "DeadUmlaut";
-  html$._KeyName.DEAD_ABOVE_RING = "DeadAboveRing";
-  html$._KeyName.DEAD_DOUBLEACUTE = "DeadDoubleacute";
-  html$._KeyName.DEAD_CARON = "DeadCaron";
-  html$._KeyName.DEAD_CEDILLA = "DeadCedilla";
-  html$._KeyName.DEAD_OGONEK = "DeadOgonek";
-  html$._KeyName.DEAD_IOTA = "DeadIota";
-  html$._KeyName.DEAD_VOICED_SOUND = "DeadVoicedSound";
-  html$._KeyName.DEC_SEMIVOICED_SOUND = "DeadSemivoicedSound";
-  html$._KeyName.UNIDENTIFIED = "Unidentified";
-  const _stream$0 = Symbol('_stream');
-  const _keyDownList = Symbol('_keyDownList');
-  const _capsLockOn = Symbol('_capsLockOn');
-  const _determineKeyCodeForKeypress = Symbol('_determineKeyCodeForKeypress');
-  const _findCharCodeKeyDown = Symbol('_findCharCodeKeyDown');
-  const _firesKeyPressEvent = Symbol('_firesKeyPressEvent');
-  const _normalizeKeyCodes = Symbol('_normalizeKeyCodes');
-  html$._KeyboardEventHandler = class _KeyboardEventHandler extends html$.EventStreamProvider$(html$.KeyEvent) {
-    forTarget(e, opts) {
-      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-      let handler = new html$._KeyboardEventHandler.initializeAllEventListeners(this[_type$], e);
-      return handler[_stream$0];
-    }
-    new(type) {
-      this[_keyDownList] = JSArrayOfKeyEvent().of([]);
-      this[_type$] = type;
-      this[_stream$0] = new html$._CustomKeyEventStreamImpl('event');
-      this[_target$0] = null;
-      super.new(html$._KeyboardEventHandler._EVENT_TYPE);
-    }
-    initializeAllEventListeners(type, target) {
-      this[_keyDownList] = JSArrayOfKeyEvent().of([]);
-      this[_type$] = type;
-      this[_target$0] = target;
-      this[_stream$0] = null;
-      super.new(html$._KeyboardEventHandler._EVENT_TYPE);
-      html$.Element.keyDownEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyDown'));
-      html$.Element.keyPressEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyPress'));
-      html$.Element.keyUpEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyUp'));
-      this[_stream$0] = new html$._CustomKeyEventStreamImpl(this[_type$]);
-    }
-    get [_capsLockOn]() {
-      return this[_keyDownList][dartx.any](dart.fn(element => element.keyCode == html$.KeyCode.CAPS_LOCK, KeyEventTobool()));
-    }
-    [_determineKeyCodeForKeypress](event) {
-      for (let prevEvent of this[_keyDownList]) {
-        if (prevEvent[_shadowCharCode] == event[dartx.charCode]) {
-          return prevEvent.keyCode;
-        }
-        if ((dart.test(event[dartx.shiftKey]) || dart.test(this[_capsLockOn])) && dart.notNull(event[dartx.charCode]) >= dart.notNull("A"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) <= dart.notNull("Z"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET) == prevEvent[_shadowCharCode]) {
-          return prevEvent.keyCode;
-        }
-      }
-      return html$.KeyCode.UNKNOWN;
-    }
-    [_findCharCodeKeyDown](event) {
-      if (event[dartx.keyLocation] == 3) {
-        switch (event[dartx.keyCode]) {
-          case html$.KeyCode.NUM_ZERO:
-          {
-            return html$.KeyCode.ZERO;
-          }
-          case html$.KeyCode.NUM_ONE:
-          {
-            return html$.KeyCode.ONE;
-          }
-          case html$.KeyCode.NUM_TWO:
-          {
-            return html$.KeyCode.TWO;
-          }
-          case html$.KeyCode.NUM_THREE:
-          {
-            return html$.KeyCode.THREE;
-          }
-          case html$.KeyCode.NUM_FOUR:
-          {
-            return html$.KeyCode.FOUR;
-          }
-          case html$.KeyCode.NUM_FIVE:
-          {
-            return html$.KeyCode.FIVE;
-          }
-          case html$.KeyCode.NUM_SIX:
-          {
-            return html$.KeyCode.SIX;
-          }
-          case html$.KeyCode.NUM_SEVEN:
-          {
-            return html$.KeyCode.SEVEN;
-          }
-          case html$.KeyCode.NUM_EIGHT:
-          {
-            return html$.KeyCode.EIGHT;
-          }
-          case html$.KeyCode.NUM_NINE:
-          {
-            return html$.KeyCode.NINE;
-          }
-          case html$.KeyCode.NUM_MULTIPLY:
-          {
-            return 42;
-          }
-          case html$.KeyCode.NUM_PLUS:
-          {
-            return 43;
-          }
-          case html$.KeyCode.NUM_MINUS:
-          {
-            return 45;
-          }
-          case html$.KeyCode.NUM_PERIOD:
-          {
-            return 46;
-          }
-          case html$.KeyCode.NUM_DIVISION:
-          {
-            return 47;
-          }
-        }
-      } else if (dart.notNull(event[dartx.keyCode]) >= 65 && dart.notNull(event[dartx.keyCode]) <= 90) {
-        return dart.notNull(event[dartx.keyCode]) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET);
-      }
-      switch (event[dartx.keyCode]) {
-        case html$.KeyCode.SEMICOLON:
-        {
-          return html$.KeyCode.FF_SEMICOLON;
-        }
-        case html$.KeyCode.EQUALS:
-        {
-          return html$.KeyCode.FF_EQUALS;
-        }
-        case html$.KeyCode.COMMA:
-        {
-          return 44;
-        }
-        case html$.KeyCode.DASH:
-        {
-          return 45;
-        }
-        case html$.KeyCode.PERIOD:
-        {
-          return 46;
-        }
-        case html$.KeyCode.SLASH:
-        {
-          return 47;
-        }
-        case html$.KeyCode.APOSTROPHE:
-        {
-          return 96;
-        }
-        case html$.KeyCode.OPEN_SQUARE_BRACKET:
-        {
-          return 91;
-        }
-        case html$.KeyCode.BACKSLASH:
-        {
-          return 92;
-        }
-        case html$.KeyCode.CLOSE_SQUARE_BRACKET:
-        {
-          return 93;
-        }
-        case html$.KeyCode.SINGLE_QUOTE:
-        {
-          return 39;
-        }
-      }
-      return event[dartx.keyCode];
-    }
-    [_firesKeyPressEvent](event) {
-      if (!dart.test(html_common.Device.isIE) && !dart.test(html_common.Device.isWebKit)) {
-        return true;
-      }
-      if (dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && dart.test(event.altKey)) {
-        return html$.KeyCode.isCharacterKey(event.keyCode);
-      }
-      if (dart.test(event.altKey) && !dart.test(event.ctrlKey)) {
-        return false;
-      }
-      if (!dart.test(event.shiftKey) && (this[_keyDownList][dartx.last].keyCode == html$.KeyCode.CTRL || this[_keyDownList][dartx.last].keyCode == html$.KeyCode.ALT || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html$.KeyCode.META)) {
-        return false;
-      }
-      if (dart.test(html_common.Device.isWebKit) && dart.test(event.ctrlKey) && dart.test(event.shiftKey) && (event.keyCode == html$.KeyCode.BACKSLASH || event.keyCode == html$.KeyCode.OPEN_SQUARE_BRACKET || event.keyCode == html$.KeyCode.CLOSE_SQUARE_BRACKET || event.keyCode == html$.KeyCode.TILDE || event.keyCode == html$.KeyCode.SEMICOLON || event.keyCode == html$.KeyCode.DASH || event.keyCode == html$.KeyCode.EQUALS || event.keyCode == html$.KeyCode.COMMA || event.keyCode == html$.KeyCode.PERIOD || event.keyCode == html$.KeyCode.SLASH || event.keyCode == html$.KeyCode.APOSTROPHE || event.keyCode == html$.KeyCode.SINGLE_QUOTE)) {
-        return false;
-      }
-      switch (event.keyCode) {
-        case html$.KeyCode.ENTER:
-        {
-          return !dart.test(html_common.Device.isIE);
-        }
-        case html$.KeyCode.ESC:
-        {
-          return !dart.test(html_common.Device.isWebKit);
-        }
-      }
-      return html$.KeyCode.isCharacterKey(event.keyCode);
-    }
-    [_normalizeKeyCodes](event) {
-      if (dart.test(html_common.Device.isFirefox)) {
-        switch (event[dartx.keyCode]) {
-          case html$.KeyCode.FF_EQUALS:
-          {
-            return html$.KeyCode.EQUALS;
-          }
-          case html$.KeyCode.FF_SEMICOLON:
-          {
-            return html$.KeyCode.SEMICOLON;
-          }
-          case html$.KeyCode.MAC_FF_META:
-          {
-            return html$.KeyCode.META;
-          }
-          case html$.KeyCode.WIN_KEY_FF_LINUX:
-          {
-            return html$.KeyCode.WIN_KEY;
-          }
-        }
-      }
-      return event[dartx.keyCode];
-    }
-    processKeyDown(e) {
-      if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && (this[_keyDownList][dartx.last].keyCode == html$.KeyCode.CTRL && !dart.test(e[dartx.ctrlKey]) || this[_keyDownList][dartx.last].keyCode == html$.KeyCode.ALT && !dart.test(e[dartx.altKey]) || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html$.KeyCode.META && !dart.test(e[dartx.metaKey]))) {
-        this[_keyDownList][dartx.clear]();
-      }
-      let event = new html$.KeyEvent.wrap(e);
-      event[_shadowKeyCode] = this[_normalizeKeyCodes](event);
-      event[_shadowCharCode] = this[_findCharCodeKeyDown](event);
-      if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && event.keyCode != this[_keyDownList][dartx.last].keyCode && !dart.test(this[_firesKeyPressEvent](event))) {
-        this.processKeyPress(e);
-      }
-      this[_keyDownList][dartx.add](event);
-      this[_stream$0].add(event);
-    }
-    processKeyPress(event) {
-      let e = new html$.KeyEvent.wrap(event);
-      if (dart.test(html_common.Device.isIE)) {
-        if (e.keyCode == html$.KeyCode.ENTER || e.keyCode == html$.KeyCode.ESC) {
-          e[_shadowCharCode] = 0;
-        } else {
-          e[_shadowCharCode] = e.keyCode;
-        }
-      } else if (dart.test(html_common.Device.isOpera)) {
-        e[_shadowCharCode] = dart.test(html$.KeyCode.isCharacterKey(e.keyCode)) ? e.keyCode : 0;
-      }
-      e[_shadowKeyCode] = this[_determineKeyCodeForKeypress](e);
-      if (e[_shadowKeyIdentifier] != null && dart.test(html$._KeyboardEventHandler._keyIdentifier[dartx.containsKey](e[_shadowKeyIdentifier]))) {
-        e[_shadowKeyCode] = html$._KeyboardEventHandler._keyIdentifier[dartx._get](e[_shadowKeyIdentifier]);
-      }
-      e[_shadowAltKey] = this[_keyDownList][dartx.any](dart.fn(element => element.altKey, KeyEventTobool()));
-      this[_stream$0].add(e);
-    }
-    processKeyUp(event) {
-      let e = new html$.KeyEvent.wrap(event);
-      let toRemove = null;
-      for (let key of this[_keyDownList]) {
-        if (key.keyCode == e.keyCode) {
-          toRemove = key;
-        }
-      }
-      if (toRemove != null) {
-        this[_keyDownList][dartx.removeWhere](dart.fn(element => dart.equals(element, toRemove), KeyEventTobool()));
-      } else if (dart.notNull(this[_keyDownList][dartx.length]) > 0) {
-        this[_keyDownList][dartx.removeLast]();
-      }
-      this[_stream$0].add(e);
-    }
-  };
-  dart.addSimpleTypeTests(html$._KeyboardEventHandler);
-  dart.defineNamedConstructor(html$._KeyboardEventHandler, 'initializeAllEventListeners');
-  dart.setSignature(html$._KeyboardEventHandler, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$._KeyboardEventHandler, [core.String]),
-      initializeAllEventListeners: dart.definiteFunctionType(html$._KeyboardEventHandler, [core.String, html$.EventTarget])
-    }),
-    fields: () => ({
-      [_keyDownList]: ListOfKeyEvent(),
-      [_type$]: core.String,
-      [_target$0]: html$.EventTarget,
-      [_stream$0]: html$._CustomKeyEventStreamImpl
-    }),
-    getters: () => ({[_capsLockOn]: dart.definiteFunctionType(core.bool, [])}),
-    methods: () => ({
-      forTarget: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget], {useCapture: core.bool}),
-      [_determineKeyCodeForKeypress]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
-      [_findCharCodeKeyDown]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
-      [_firesKeyPressEvent]: dart.definiteFunctionType(core.bool, [html$.KeyEvent]),
-      [_normalizeKeyCodes]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
-      processKeyDown: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent]),
-      processKeyPress: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent]),
-      processKeyUp: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent])
-    }),
-    sfields: () => ({
-      _ROMAN_ALPHABET_OFFSET: core.int,
-      _EVENT_TYPE: core.String,
-      _keyIdentifier: MapOfString$int()
-    })
-  });
-  html$._KeyboardEventHandler._EVENT_TYPE = 'KeyEvent';
-  html$._KeyboardEventHandler._keyIdentifier = dart.const(dart.map({Up: html$.KeyCode.UP, Down: html$.KeyCode.DOWN, Left: html$.KeyCode.LEFT, Right: html$.KeyCode.RIGHT, Enter: html$.KeyCode.ENTER, F1: html$.KeyCode.F1, F2: html$.KeyCode.F2, F3: html$.KeyCode.F3, F4: html$.KeyCode.F4, F5: html$.KeyCode.F5, F6: html$.KeyCode.F6, F7: html$.KeyCode.F7, F8: html$.KeyCode.F8, F9: html$.KeyCode.F9, F10: html$.KeyCode.F10, F11: html$.KeyCode.F11, F12: html$.KeyCode.F12, 'U+007F': html$.KeyCode.DELETE, Home: html$.KeyCode.HOME, End: html$.KeyCode.END, PageUp: html$.KeyCode.PAGE_UP, PageDown: html$.KeyCode.PAGE_DOWN, Insert: html$.KeyCode.INSERT}, core.String, core.int));
-  dart.defineLazy(html$._KeyboardEventHandler, {
-    get _ROMAN_ALPHABET_OFFSET() {
-      return dart.notNull("a"[dartx.codeUnits][dartx._get](0)) - dart.notNull("A"[dartx.codeUnits][dartx._get](0));
-    }
-  });
-  html$.KeyboardEventStream = class KeyboardEventStream extends core.Object {
-    static onKeyPress(target) {
-      return new html$._KeyboardEventHandler('keypress').forTarget(target);
-    }
-    static onKeyUp(target) {
-      return new html$._KeyboardEventHandler('keyup').forTarget(target);
-    }
-    static onKeyDown(target) {
-      return new html$._KeyboardEventHandler('keydown').forTarget(target);
-    }
-  };
-  dart.setSignature(html$.KeyboardEventStream, {
-    statics: () => ({
-      onKeyPress: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget]),
-      onKeyUp: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget]),
-      onKeyDown: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget])
-    }),
-    names: ['onKeyPress', 'onKeyUp', 'onKeyDown']
-  });
-  const _validators = Symbol('_validators');
-  html$.NodeValidatorBuilder = class NodeValidatorBuilder extends core.Object {
-    new() {
-      this[_validators] = JSArrayOfNodeValidator().of([]);
-    }
-    common() {
-      this[_validators] = JSArrayOfNodeValidator().of([]);
-      this.allowHtml5();
-      this.allowTemplating();
-    }
-    allowNavigation(uriPolicy) {
-      if (uriPolicy === void 0) uriPolicy = null;
-      if (uriPolicy == null) {
-        uriPolicy = html$.UriPolicy.new();
-      }
-      this.add(html$._SimpleNodeValidator.allowNavigation(uriPolicy));
-    }
-    allowImages(uriPolicy) {
-      if (uriPolicy === void 0) uriPolicy = null;
-      if (uriPolicy == null) {
-        uriPolicy = html$.UriPolicy.new();
-      }
-      this.add(html$._SimpleNodeValidator.allowImages(uriPolicy));
-    }
-    allowTextElements() {
-      this.add(html$._SimpleNodeValidator.allowTextElements());
-    }
-    allowInlineStyles(opts) {
-      let tagName = opts && 'tagName' in opts ? opts.tagName : null;
-      if (tagName == null) {
-        tagName = '*';
-      } else {
-        tagName = tagName[dartx.toUpperCase]();
-      }
-      this.add(new html$._SimpleNodeValidator(null, {allowedAttributes: JSArrayOfString().of([dart.str`${tagName}::style`])}));
-    }
-    allowHtml5(opts) {
-      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-      this.add(new html$._Html5NodeValidator({uriPolicy: uriPolicy}));
-    }
-    allowSvg() {
-      this.add(new html$._SvgNodeValidator());
-    }
-    allowCustomElement(tagName, opts) {
-      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
-      let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
-      let tagNameUpper = tagName[dartx.toUpperCase]();
-      let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
-      let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
-      if (uriPolicy == null) {
-        uriPolicy = html$.UriPolicy.new();
-      }
-      this.add(new html$._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper]), attrs, uriAttrs, false, true));
-    }
-    allowTagExtension(tagName, baseName, opts) {
-      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
-      let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
-      let baseNameUpper = baseName[dartx.toUpperCase]();
-      let tagNameUpper = tagName[dartx.toUpperCase]();
-      let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
-      let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
-      if (uriPolicy == null) {
-        uriPolicy = html$.UriPolicy.new();
-      }
-      this.add(new html$._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper, baseNameUpper]), attrs, uriAttrs, true, false));
-    }
-    allowElement(tagName, opts) {
-      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-      let attributes = opts && 'attributes' in opts ? opts.attributes : null;
-      let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
-      this.allowCustomElement(tagName, {uriPolicy: uriPolicy, attributes: attributes, uriAttributes: uriAttributes});
-    }
-    allowTemplating() {
-      this.add(new html$._TemplatingNodeValidator());
-    }
-    add(validator) {
-      this[_validators][dartx.add](validator);
-    }
-    allowsElement(element) {
-      return this[_validators][dartx.any](dart.fn(v => v.allowsElement(element), NodeValidatorTobool()));
-    }
-    allowsAttribute(element, attributeName, value) {
-      return this[_validators][dartx.any](dart.fn(v => v.allowsAttribute(element, attributeName, value), NodeValidatorTobool()));
-    }
-  };
-  dart.defineNamedConstructor(html$.NodeValidatorBuilder, 'common');
-  html$.NodeValidatorBuilder[dart.implements] = () => [html$.NodeValidator];
-  dart.setSignature(html$.NodeValidatorBuilder, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.NodeValidatorBuilder, []),
-      common: dart.definiteFunctionType(html$.NodeValidatorBuilder, [])
-    }),
-    fields: () => ({[_validators]: ListOfNodeValidator()}),
-    methods: () => ({
-      allowNavigation: dart.definiteFunctionType(dart.void, [], [html$.UriPolicy]),
-      allowImages: dart.definiteFunctionType(dart.void, [], [html$.UriPolicy]),
-      allowTextElements: dart.definiteFunctionType(dart.void, []),
-      allowInlineStyles: dart.definiteFunctionType(dart.void, [], {tagName: core.String}),
-      allowHtml5: dart.definiteFunctionType(dart.void, [], {uriPolicy: html$.UriPolicy}),
-      allowSvg: dart.definiteFunctionType(dart.void, []),
-      allowCustomElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
-      allowTagExtension: dart.definiteFunctionType(dart.void, [core.String, core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
-      allowElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
-      allowTemplating: dart.definiteFunctionType(dart.void, []),
-      add: dart.definiteFunctionType(dart.void, [html$.NodeValidator]),
-      allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
-      allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
-    })
-  });
-  let const$83;
-  let const$84;
-  let const$85;
-  let const$86;
-  let const$87;
-  let const$88;
-  let const$89;
-  let const$90;
-  let const$91;
-  let const$92;
-  html$._SimpleNodeValidator = class _SimpleNodeValidator extends core.Object {
-    static allowNavigation(uriPolicy) {
-      return new html$._SimpleNodeValidator(uriPolicy, {allowedElements: const$83 || (const$83 = dart.constList(['A', 'FORM'], core.String)), allowedAttributes: const$84 || (const$84 = dart.constList(['A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target'], core.String)), allowedUriAttributes: const$85 || (const$85 = dart.constList(['A::href', 'FORM::action'], core.String))});
-    }
-    static allowImages(uriPolicy) {
-      return new html$._SimpleNodeValidator(uriPolicy, {allowedElements: const$86 || (const$86 = dart.constList(['IMG'], core.String)), allowedAttributes: const$87 || (const$87 = dart.constList(['IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width'], core.String)), allowedUriAttributes: const$88 || (const$88 = dart.constList(['IMG::src'], core.String))});
-    }
-    static allowTextElements() {
-      return new html$._SimpleNodeValidator(null, {allowedElements: const$89 || (const$89 = dart.constList(['B', 'BLOCKQUOTE', 'BR', 'EM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'LI', 'OL', 'P', 'SPAN', 'UL'], core.String))});
-    }
-    new(uriPolicy, opts) {
-      let allowedElements = opts && 'allowedElements' in opts ? opts.allowedElements : null;
-      let allowedAttributes = opts && 'allowedAttributes' in opts ? opts.allowedAttributes : null;
-      let allowedUriAttributes = opts && 'allowedUriAttributes' in opts ? opts.allowedUriAttributes : null;
-      this.allowedElements = SetOfString().new();
-      this.allowedAttributes = SetOfString().new();
-      this.allowedUriAttributes = SetOfString().new();
-      this.uriPolicy = uriPolicy;
-      this.allowedElements.addAll((allowedElements != null ? allowedElements : const$90 || (const$90 = dart.constList([], core.String))));
-      allowedAttributes = allowedAttributes != null ? allowedAttributes : const$91 || (const$91 = dart.constList([], core.String));
-      allowedUriAttributes = allowedUriAttributes != null ? allowedUriAttributes : const$92 || (const$92 = dart.constList([], core.String));
-      let legalAttributes = allowedAttributes[dartx.where](dart.fn(x => !dart.test(html$._Html5NodeValidator._uriAttributes[dartx.contains](x)), StringTobool$()));
-      let extraUriAttributes = allowedAttributes[dartx.where](dart.fn(x => html$._Html5NodeValidator._uriAttributes[dartx.contains](x), StringTobool$()));
-      this.allowedAttributes.addAll(legalAttributes);
-      this.allowedUriAttributes.addAll(allowedUriAttributes);
-      this.allowedUriAttributes.addAll(extraUriAttributes);
-    }
-    allowsElement(element) {
-      return this.allowedElements.contains(html$.Element._safeTagName(element));
-    }
-    allowsAttribute(element, attributeName, value) {
-      let tagName = html$.Element._safeTagName(element);
-      if (dart.test(this.allowedUriAttributes.contains(dart.str`${tagName}::${attributeName}`))) {
-        return this.uriPolicy.allowsUri(value);
-      } else if (dart.test(this.allowedUriAttributes.contains(dart.str`*::${attributeName}`))) {
-        return this.uriPolicy.allowsUri(value);
-      } else if (dart.test(this.allowedAttributes.contains(dart.str`${tagName}::${attributeName}`))) {
-        return true;
-      } else if (dart.test(this.allowedAttributes.contains(dart.str`*::${attributeName}`))) {
-        return true;
-      } else if (dart.test(this.allowedAttributes.contains(dart.str`${tagName}::*`))) {
-        return true;
-      } else if (dart.test(this.allowedAttributes.contains('*::*'))) {
-        return true;
-      }
-      return false;
-    }
-  };
-  html$._SimpleNodeValidator[dart.implements] = () => [html$.NodeValidator];
-  dart.setSignature(html$._SimpleNodeValidator, {
-    constructors: () => ({
-      allowNavigation: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy]),
-      allowImages: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy]),
-      allowTextElements: dart.definiteFunctionType(html$._SimpleNodeValidator, []),
-      new: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy], {allowedElements: IterableOfString(), allowedAttributes: IterableOfString(), allowedUriAttributes: IterableOfString()})
-    }),
-    fields: () => ({
-      allowedElements: SetOfString(),
-      allowedAttributes: SetOfString(),
-      allowedUriAttributes: SetOfString(),
-      uriPolicy: html$.UriPolicy
-    }),
-    methods: () => ({
-      allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
-      allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
-    })
-  });
-  html$._CustomElementNodeValidator = class _CustomElementNodeValidator extends html$._SimpleNodeValidator {
-    new(uriPolicy, allowedElements, allowedAttributes, allowedUriAttributes, allowTypeExtension, allowCustomTag) {
-      this.allowTypeExtension = allowTypeExtension == true;
-      this.allowCustomTag = allowCustomTag == true;
-      super.new(uriPolicy, {allowedElements: allowedElements, allowedAttributes: allowedAttributes, allowedUriAttributes: allowedUriAttributes});
-    }
-    allowsElement(element) {
-      if (dart.test(this.allowTypeExtension)) {
-        let isAttr = element[dartx.attributes][dartx._get]('is');
-        if (isAttr != null) {
-          return dart.test(this.allowedElements.contains(isAttr[dartx.toUpperCase]())) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
-        }
-      }
-      return dart.test(this.allowCustomTag) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
-    }
-    allowsAttribute(element, attributeName, value) {
-      if (dart.test(this.allowsElement(element))) {
-        if (dart.test(this.allowTypeExtension) && attributeName == 'is' && dart.test(this.allowedElements.contains(value[dartx.toUpperCase]()))) {
-          return true;
-        }
-        return super.allowsAttribute(element, attributeName, value);
-      }
-      return false;
-    }
-  };
-  dart.setSignature(html$._CustomElementNodeValidator, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._CustomElementNodeValidator, [html$.UriPolicy, IterableOfString(), IterableOfString(), IterableOfString(), core.bool, core.bool])}),
-    fields: () => ({
-      allowTypeExtension: core.bool,
-      allowCustomTag: core.bool
-    })
-  });
-  const _templateAttrs = Symbol('_templateAttrs');
-  html$._TemplatingNodeValidator = class _TemplatingNodeValidator extends html$._SimpleNodeValidator {
-    new() {
-      this[_templateAttrs] = SetOfString().from(html$._TemplatingNodeValidator._TEMPLATE_ATTRS);
-      super.new(null, {allowedElements: JSArrayOfString().of(['TEMPLATE']), allowedAttributes: html$._TemplatingNodeValidator._TEMPLATE_ATTRS[dartx.map](core.String)(dart.fn(attr => dart.str`TEMPLATE::${attr}`, StringToString$()))});
-    }
-    allowsAttribute(element, attributeName, value) {
-      if (dart.test(super.allowsAttribute(element, attributeName, value))) {
-        return true;
-      }
-      if (attributeName == 'template' && value == "") {
-        return true;
-      }
-      if (element[dartx.attributes][dartx._get]('template') == "") {
-        return this[_templateAttrs].contains(attributeName);
-      }
-      return false;
-    }
-  };
-  dart.setSignature(html$._TemplatingNodeValidator, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._TemplatingNodeValidator, [])}),
-    fields: () => ({[_templateAttrs]: SetOfString()}),
-    sfields: () => ({_TEMPLATE_ATTRS: ListOfString()})
-  });
-  html$._TemplatingNodeValidator._TEMPLATE_ATTRS = dart.constList(['bind', 'if', 'ref', 'repeat', 'syntax'], core.String);
-  html$._SvgNodeValidator = class _SvgNodeValidator extends core.Object {
-    allowsElement(element) {
-      if (svg$.ScriptElement.is(element)) {
-        return false;
-      }
-      if (svg$.SvgElement.is(element) && html$.Element._safeTagName(element) == 'foreignObject') {
-        return false;
-      }
-      if (svg$.SvgElement.is(element)) {
-        return true;
-      }
-      return false;
-    }
-    allowsAttribute(element, attributeName, value) {
-      if (attributeName == 'is' || dart.test(attributeName[dartx.startsWith]('on'))) {
-        return false;
-      }
-      return this.allowsElement(element);
-    }
-  };
-  html$._SvgNodeValidator[dart.implements] = () => [html$.NodeValidator];
-  dart.setSignature(html$._SvgNodeValidator, {
-    methods: () => ({
-      allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
-      allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
-    })
-  });
-  html$.ReadyState = class ReadyState extends core.Object {};
-  dart.setSignature(html$.ReadyState, {
-    sfields: () => ({
-      LOADING: core.String,
-      INTERACTIVE: core.String,
-      COMPLETE: core.String
-    })
-  });
-  html$.ReadyState.LOADING = "loading";
-  html$.ReadyState.INTERACTIVE = "interactive";
-  html$.ReadyState.COMPLETE = "complete";
-  const _list$ = Symbol('_list');
-  html$._WrappedList$ = dart.generic(E => {
-    let _WrappedIteratorOfE = () => (_WrappedIteratorOfE = dart.constFn(html$._WrappedIterator$(E)))();
-    let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
-    let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
-    class _WrappedList extends collection.ListBase$(E) {
-      new(list) {
-        this[_list$] = list;
-      }
-      get iterator() {
-        return new (_WrappedIteratorOfE())(this[_list$][dartx.iterator]);
-      }
-      get length() {
-        return this[_list$][dartx.length];
-      }
-      add(element) {
-        E._check(element);
-        this[_list$][dartx.add](element);
-      }
-      remove(element) {
-        return this[_list$][dartx.remove](element);
-      }
-      clear() {
-        this[_list$][dartx.clear]();
-      }
-      _get(index) {
-        return html$._downcast(html$.Node, E)(this[_list$][dartx._get](index));
-      }
-      _set(index, value) {
-        E._check(value);
-        this[_list$][dartx._set](index, value);
-        return value;
-      }
-      set length(newLength) {
-        this[_list$][dartx.length] = newLength;
-      }
-      sort(compare) {
-        if (compare === void 0) compare = null;
-        this[_list$][dartx.sort](dart.fn((a, b) => compare(html$._downcast(html$.Node, E)(a), html$._downcast(html$.Node, E)(b)), NodeAndNodeToint()));
-      }
-      indexOf(element, start) {
-        if (start === void 0) start = 0;
-        return this[_list$][dartx.indexOf](html$.Node._check(element), start);
-      }
-      lastIndexOf(element, start) {
-        if (start === void 0) start = null;
-        return this[_list$][dartx.lastIndexOf](html$.Node._check(element), start);
-      }
-      insert(index, element) {
-        E._check(element);
-        return this[_list$][dartx.insert](index, element);
-      }
-      removeAt(index) {
-        return html$._downcast(html$.Node, E)(this[_list$][dartx.removeAt](index));
-      }
-      setRange(start, end, iterable, skipCount) {
-        IterableOfE()._check(iterable);
-        if (skipCount === void 0) skipCount = 0;
-        this[_list$][dartx.setRange](start, end, iterable, skipCount);
-      }
-      removeRange(start, end) {
-        this[_list$][dartx.removeRange](start, end);
-      }
-      replaceRange(start, end, iterable) {
-        IterableOfE()._check(iterable);
-        this[_list$][dartx.replaceRange](start, end, iterable);
-      }
-      fillRange(start, end, fillValue) {
-        if (fillValue === void 0) fillValue = null;
-        E._check(fillValue);
-        this[_list$][dartx.fillRange](start, end, fillValue);
-      }
-      get rawList() {
-        return this[_list$];
-      }
-    }
-    _WrappedList[dart.implements] = () => [html_common.NodeListWrapper];
-    dart.setSignature(_WrappedList, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._WrappedList$(E), [ListOfNode()])}),
-      fields: () => ({[_list$]: ListOfNode()}),
-      getters: () => ({
-        length: dart.definiteFunctionType(core.int, []),
-        rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
-      }),
-      setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
-      methods: () => ({
-        _get: dart.definiteFunctionType(E, [core.int]),
-        _set: dart.definiteFunctionType(dart.void, [core.int, E])
-      })
-    });
-    dart.defineExtensionMembers(_WrappedList, [
-      'add',
-      'remove',
-      'clear',
-      '_get',
-      '_set',
-      'sort',
-      'indexOf',
-      'lastIndexOf',
-      'insert',
-      'removeAt',
-      'setRange',
-      'removeRange',
-      'replaceRange',
-      'fillRange',
-      'iterator',
-      'length',
-      'length'
-    ]);
-    return _WrappedList;
-  });
-  html$._WrappedList = _WrappedList();
-  const _iterator$1 = Symbol('_iterator');
-  html$._WrappedIterator$ = dart.generic(E => {
-    let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
-    class _WrappedIterator extends core.Object {
-      new(iterator) {
-        this[_iterator$1] = iterator;
-      }
-      moveNext() {
-        return this[_iterator$1].moveNext();
-      }
-      get current() {
-        return html$._downcast(html$.Node, E)(this[_iterator$1].current);
-      }
-    }
-    dart.addTypeTests(_WrappedIterator);
-    _WrappedIterator[dart.implements] = () => [IteratorOfE()];
-    dart.setSignature(_WrappedIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._WrappedIterator$(E), [IteratorOfNode()])}),
-      fields: () => ({[_iterator$1]: IteratorOfNode()}),
-      getters: () => ({current: dart.definiteFunctionType(E, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _WrappedIterator;
-  });
-  html$._WrappedIterator = _WrappedIterator();
-  html$._downcast = function(From, To) {
-    return x => {
-      return To._check(x);
-    };
-  };
-  dart.fn(html$._downcast, FromToTo());
-  html$._HttpRequestUtils = class _HttpRequestUtils extends core.Object {
-    static get(url, onComplete, withCredentials) {
-      let request = html$.HttpRequest.new();
-      request[dartx.open]('GET', url, {async: true});
-      request[dartx.withCredentials] = withCredentials;
-      request[dartx.onReadyStateChange].listen(dart.fn(e => {
-        if (request[dartx.readyState] == html$.HttpRequest.DONE) {
-          onComplete(request);
-        }
-      }, ProgressEventToNull()));
-      request[dartx.send]();
-      return request;
-    }
-  };
-  dart.setSignature(html$._HttpRequestUtils, {
-    statics: () => ({get: dart.definiteFunctionType(html$.HttpRequest, [core.String, HttpRequestTodynamic(), core.bool])}),
-    names: ['get']
-  });
-  const _array = Symbol('_array');
-  const _current$4 = Symbol('_current');
-  html$.FixedSizeListIterator$ = dart.generic(T => {
-    let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
-    let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
-    class FixedSizeListIterator extends core.Object {
-      new(array) {
-        this[_array] = array;
-        this[_position$1] = -1;
-        this[_length$3] = array[dartx.length];
-        this[_current$4] = null;
-      }
-      moveNext() {
-        let nextPosition = dart.notNull(this[_position$1]) + 1;
-        if (nextPosition < dart.notNull(this[_length$3])) {
-          this[_current$4] = this[_array][dartx._get](nextPosition);
-          this[_position$1] = nextPosition;
-          return true;
-        }
-        this[_current$4] = null;
-        this[_position$1] = this[_length$3];
-        return false;
-      }
-      get current() {
-        return this[_current$4];
-      }
-    }
-    dart.addTypeTests(FixedSizeListIterator);
-    FixedSizeListIterator[dart.implements] = () => [IteratorOfT()];
-    dart.setSignature(FixedSizeListIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(html$.FixedSizeListIterator$(T), [ListOfT()])}),
-      fields: () => ({
-        [_array]: ListOfT(),
-        [_length$3]: core.int,
-        [_position$1]: core.int,
-        [_current$4]: T
-      }),
-      getters: () => ({current: dart.definiteFunctionType(T, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return FixedSizeListIterator;
-  });
-  html$.FixedSizeListIterator = FixedSizeListIterator();
-  html$._VariableSizeListIterator$ = dart.generic(T => {
-    let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
-    let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
-    class _VariableSizeListIterator extends core.Object {
-      new(array) {
-        this[_array] = array;
-        this[_position$1] = -1;
-        this[_current$4] = null;
-      }
-      moveNext() {
-        let nextPosition = dart.notNull(this[_position$1]) + 1;
-        if (nextPosition < dart.notNull(this[_array][dartx.length])) {
-          this[_current$4] = this[_array][dartx._get](nextPosition);
-          this[_position$1] = nextPosition;
-          return true;
-        }
-        this[_current$4] = null;
-        this[_position$1] = this[_array][dartx.length];
-        return false;
-      }
-      get current() {
-        return this[_current$4];
-      }
-    }
-    dart.addTypeTests(_VariableSizeListIterator);
-    _VariableSizeListIterator[dart.implements] = () => [IteratorOfT()];
-    dart.setSignature(_VariableSizeListIterator, {
-      constructors: () => ({new: dart.definiteFunctionType(html$._VariableSizeListIterator$(T), [ListOfT()])}),
-      fields: () => ({
-        [_array]: ListOfT(),
-        [_position$1]: core.int,
-        [_current$4]: T
-      }),
-      getters: () => ({current: dart.definiteFunctionType(T, [])}),
-      methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
-    });
-    return _VariableSizeListIterator;
-  });
-  html$._VariableSizeListIterator = _VariableSizeListIterator();
-  html$._convertNativeToDart_Window = function(win) {
-    if (win == null) return null;
-    return html$._DOMWindowCrossFrame._createSafe(win);
-  };
-  dart.fn(html$._convertNativeToDart_Window, dynamicToWindowBase());
-  html$._convertNativeToDart_EventTarget = function(e) {
-    if (e == null) {
-      return null;
-    }
-    if ("postMessage" in e) {
-      let window = html$._DOMWindowCrossFrame._createSafe(e);
-      if (html$.EventTarget.is(window)) {
-        return window;
-      }
-      return null;
-    } else
-      return html$.EventTarget._check(e);
-  };
-  dart.fn(html$._convertNativeToDart_EventTarget, dynamicToEventTarget());
-  const _window = Symbol('_window');
-  html$._convertDartToNative_EventTarget = function(e) {
-    if (html$._DOMWindowCrossFrame.is(e)) {
-      return html$.EventTarget._check(e[_window]);
-    } else {
-      return html$.EventTarget._check(e);
-    }
-  };
-  dart.fn(html$._convertDartToNative_EventTarget, dynamicToEventTarget());
-  html$._convertNativeToDart_XHR_Response = function(o) {
-    if (html$.Document.is(o)) {
-      return o;
-    }
-    return html_common.convertNativeToDart_SerializedScriptValue(o);
-  };
-  dart.fn(html$._convertNativeToDart_XHR_Response, dynamicTodynamic$());
-  html$._callConstructor = function(constructor, interceptor) {
-    return dart.fn(receiver => {
-      _js_helper.setNativeSubclassDispatchRecord(receiver, interceptor);
-      receiver.constructor = receiver.__proto__.constructor;
-      return constructor(receiver);
-    }, dynamicTodynamic$());
-  };
-  dart.fn(html$._callConstructor, dynamicAnddynamicTodynamic$());
-  html$._callAttached = function(receiver) {
-    return dart.dsend(receiver, 'attached');
-  };
-  dart.fn(html$._callAttached, dynamicTodynamic$());
-  html$._callDetached = function(receiver) {
-    return dart.dsend(receiver, 'detached');
-  };
-  dart.fn(html$._callDetached, dynamicTodynamic$());
-  html$._callAttributeChanged = function(receiver, name, oldValue, newValue) {
-    return dart.dsend(receiver, 'attributeChanged', name, oldValue, newValue);
-  };
-  dart.fn(html$._callAttributeChanged, dynamicAnddynamicAnddynamic__Todynamic());
-  html$._makeCallbackMethod = function(callback) {
-    return (function(invokeCallback) {
-      return function() {
-        return invokeCallback(this);
-      };
-    })(_js_helper.convertDartClosureToJS(dart.dynamic)(callback, 1));
-  };
-  dart.fn(html$._makeCallbackMethod, dynamicTodynamic$());
-  html$._makeCallbackMethod3 = function(callback) {
-    return (function(invokeCallback) {
-      return function(arg1, arg2, arg3) {
-        return invokeCallback(this, arg1, arg2, arg3);
-      };
-    })(_js_helper.convertDartClosureToJS(dart.dynamic)(callback, 4));
-  };
-  dart.fn(html$._makeCallbackMethod3, dynamicTodynamic$());
-  html$._registerCustomElement = function(context, document, tag, type, extendsTagName) {
-    let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
-    if (interceptorClass == null) {
-      dart.throw(new core.ArgumentError(type));
-    }
-    let interceptor = interceptorClass.prototype;
-    let constructor = _interceptors.findConstructorForNativeSubclassType(type, 'created');
-    if (constructor == null) {
-      dart.throw(new core.ArgumentError(dart.str`${type} has no constructor called 'created'`));
-    }
-    _interceptors.getNativeInterceptor(html$.Element.tag('article'));
-    let baseClassName = core.String._check(_js_helper.findDispatchTagForInterceptorClass(interceptorClass));
-    if (baseClassName == null) {
-      dart.throw(new core.ArgumentError(type));
-    }
-    if (extendsTagName == null) {
-      if (baseClassName != 'HTMLElement') {
-        dart.throw(new core.UnsupportedError('Class must provide extendsTag if base ' + 'native class is not HtmlElement'));
-      }
-    } else {
-      if (!(document.createElement(extendsTagName) instanceof window[baseClassName])) {
-        dart.throw(new core.UnsupportedError('extendsTag does not match base native class'));
-      }
-    }
-    let baseConstructor = context[baseClassName];
-    let properties = {};
-    properties.createdCallback = {value: html$._makeCallbackMethod(html$._callConstructor(constructor, interceptor))};
-    properties.attachedCallback = {value: html$._makeCallbackMethod(html$._callAttached)};
-    properties.detachedCallback = {value: html$._makeCallbackMethod(html$._callDetached)};
-    properties.attributeChangedCallback = {value: html$._makeCallbackMethod3(html$._callAttributeChanged)};
-    let baseProto = baseConstructor.prototype;
-    let proto = Object.create(baseProto, properties);
-    _js_helper.setNativeSubclassDispatchRecord(proto, interceptor);
-    let options = {prototype: proto};
-    if (extendsTagName != null) {
-      options.extends = extendsTagName;
-    }
-    document.registerElement(tag, options);
-  };
-  dart.fn(html$._registerCustomElement, dynamicAnddynamicAndString__Tovoid());
-  html$._initializeCustomElement = function(e) {
-  };
-  dart.fn(html$._initializeCustomElement, ElementTovoid$());
-  const _interceptor = Symbol('_interceptor');
-  const _constructor = Symbol('_constructor');
-  const _nativeType = Symbol('_nativeType');
-  html$._JSElementUpgrader = class _JSElementUpgrader extends core.Object {
-    new(document, type, extendsTag) {
-      this[_interceptor] = null;
-      this[_constructor] = null;
-      this[_nativeType] = null;
-      let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
-      if (interceptorClass == null) {
-        dart.throw(new core.ArgumentError(type));
-      }
-      this[_constructor] = _interceptors.findConstructorForNativeSubclassType(type, 'created');
-      if (this[_constructor] == null) {
-        dart.throw(new core.ArgumentError(dart.str`${type} has no constructor called 'created'`));
-      }
-      _interceptors.getNativeInterceptor(html$.Element.tag('article'));
-      let baseClassName = _js_helper.findDispatchTagForInterceptorClass(interceptorClass);
-      if (baseClassName == null) {
-        dart.throw(new core.ArgumentError(type));
-      }
-      if (extendsTag == null) {
-        if (!dart.equals(baseClassName, 'HTMLElement')) {
-          dart.throw(new core.UnsupportedError('Class must provide extendsTag if base ' + 'native class is not HtmlElement'));
-        }
-        this[_nativeType] = dart.wrapType(html$.HtmlElement);
-      } else {
-        let element = document[dartx.createElement](extendsTag);
-        if (!(element instanceof window[baseClassName])) {
-          dart.throw(new core.UnsupportedError('extendsTag does not match base native class'));
-        }
-        this[_nativeType] = dart.runtimeType(element);
-      }
-      this[_interceptor] = interceptorClass.prototype;
-    }
-    upgrade(element) {
-      if (!dart.equals(dart.runtimeType(element), this[_nativeType])) {
-        dart.throw(new core.ArgumentError(dart.str`element is not subclass of ${this[_nativeType]}`));
-      }
-      _js_helper.setNativeSubclassDispatchRecord(element, this[_interceptor]);
-      this[_constructor](element);
-      return element;
-    }
-  };
-  html$._JSElementUpgrader[dart.implements] = () => [html$.ElementUpgrader];
-  dart.setSignature(html$._JSElementUpgrader, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._JSElementUpgrader, [html$.Document, core.Type, core.String])}),
-    fields: () => ({
-      [_interceptor]: dart.dynamic,
-      [_constructor]: dart.dynamic,
-      [_nativeType]: dart.dynamic
-    }),
-    methods: () => ({upgrade: dart.definiteFunctionType(html$.Element, [html$.Element])})
-  });
-  html$._DOMWindowCrossFrame = class _DOMWindowCrossFrame extends core.Object {
-    get history() {
-      return html$._HistoryCrossFrame._createSafe(this[_window].history);
-    }
-    get location() {
-      return html$._LocationCrossFrame._createSafe(this[_window].location);
-    }
-    get closed() {
-      return this[_window].closed;
-    }
-    get opener() {
-      return html$._DOMWindowCrossFrame._createSafe(this[_window].opener);
-    }
-    get parent() {
-      return html$._DOMWindowCrossFrame._createSafe(this[_window].parent);
-    }
-    get top() {
-      return html$._DOMWindowCrossFrame._createSafe(this[_window].top);
-    }
-    close() {
-      return this[_window].close();
-    }
-    postMessage(message, targetOrigin, messagePorts) {
-      if (messagePorts === void 0) messagePorts = null;
-      if (messagePorts == null) {
-        this[_window].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin);
-      } else {
-        this[_window].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin, messagePorts);
-      }
-    }
-    new(window) {
-      this[_window] = window;
-    }
-    static _createSafe(w) {
-      if (core.identical(w, html$.window)) {
-        return html$.WindowBase._check(w);
-      } else {
-        return new html$._DOMWindowCrossFrame(w);
-      }
-    }
-    get on() {
-      return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
-    }
-    [_addEventListener](type, listener, useCapture) {
-      if (useCapture === void 0) useCapture = null;
-      return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
-    }
-    addEventListener(type, listener, useCapture) {
-      if (useCapture === void 0) useCapture = null;
-      return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
-    }
-    dispatchEvent(event) {
-      return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
-    }
-    [_removeEventListener](type, listener, useCapture) {
-      if (useCapture === void 0) useCapture = null;
-      return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
-    }
-    removeEventListener(type, listener, useCapture) {
-      if (useCapture === void 0) useCapture = null;
-      return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
-    }
-  };
-  html$._DOMWindowCrossFrame[dart.implements] = () => [html$.WindowBase];
-  dart.setSignature(html$._DOMWindowCrossFrame, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._DOMWindowCrossFrame, [dart.dynamic])}),
-    fields: () => ({[_window]: dart.dynamic}),
-    getters: () => ({
-      history: dart.definiteFunctionType(html$.HistoryBase, []),
-      location: dart.definiteFunctionType(html$.LocationBase, []),
-      closed: dart.definiteFunctionType(core.bool, []),
-      opener: dart.definiteFunctionType(html$.WindowBase, []),
-      parent: dart.definiteFunctionType(html$.WindowBase, []),
-      top: dart.definiteFunctionType(html$.WindowBase, []),
-      on: dart.definiteFunctionType(html$.Events, [])
-    }),
-    methods: () => ({
-      close: dart.definiteFunctionType(dart.void, []),
-      postMessage: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [core.List]),
-      [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
-      addEventListener: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
-      dispatchEvent: dart.definiteFunctionType(core.bool, [html$.Event]),
-      [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
-      removeEventListener: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool])
-    }),
-    statics: () => ({_createSafe: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic])}),
-    names: ['_createSafe']
-  });
-  dart.defineExtensionMembers(html$._DOMWindowCrossFrame, [
-    'close',
-    'postMessage',
-    'history',
-    'location',
-    'closed',
-    'opener',
-    'parent',
-    'top'
-  ]);
-  html$._LocationCrossFrame = class _LocationCrossFrame extends core.Object {
-    set href(val) {
-      return html$._LocationCrossFrame._setHref(this[_location], val);
-    }
-    static _setHref(location, val) {
-      location.href = val;
-    }
-    new(location) {
-      this[_location] = location;
-    }
-    static _createSafe(location) {
-      if (core.identical(location, html$.window[dartx.location])) {
-        return html$.LocationBase._check(location);
-      } else {
-        return new html$._LocationCrossFrame(location);
-      }
-    }
-  };
-  html$._LocationCrossFrame[dart.implements] = () => [html$.LocationBase];
-  dart.setSignature(html$._LocationCrossFrame, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._LocationCrossFrame, [dart.dynamic])}),
-    fields: () => ({[_location]: dart.dynamic}),
-    setters: () => ({href: dart.definiteFunctionType(dart.void, [core.String])}),
-    statics: () => ({
-      _setHref: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-      _createSafe: dart.definiteFunctionType(html$.LocationBase, [dart.dynamic])
-    }),
-    names: ['_setHref', '_createSafe']
-  });
-  dart.defineExtensionMembers(html$._LocationCrossFrame, ['href']);
-  const _history = Symbol('_history');
-  html$._HistoryCrossFrame = class _HistoryCrossFrame extends core.Object {
-    back() {
-      return this[_history].back();
-    }
-    forward() {
-      return this[_history].forward();
-    }
-    go(distance) {
-      return this[_history].go(distance);
-    }
-    new(history) {
-      this[_history] = history;
-    }
-    static _createSafe(h) {
-      if (core.identical(h, html$.window[dartx.history])) {
-        return html$.HistoryBase._check(h);
-      } else {
-        return new html$._HistoryCrossFrame(h);
-      }
-    }
-  };
-  html$._HistoryCrossFrame[dart.implements] = () => [html$.HistoryBase];
-  dart.setSignature(html$._HistoryCrossFrame, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._HistoryCrossFrame, [dart.dynamic])}),
-    fields: () => ({[_history]: dart.dynamic}),
-    methods: () => ({
-      back: dart.definiteFunctionType(dart.void, []),
-      forward: dart.definiteFunctionType(dart.void, []),
-      go: dart.definiteFunctionType(dart.void, [core.int])
-    }),
-    statics: () => ({_createSafe: dart.definiteFunctionType(html$.HistoryBase, [dart.dynamic])}),
-    names: ['_createSafe']
-  });
-  dart.defineExtensionMembers(html$._HistoryCrossFrame, ['back', 'forward', 'go']);
-  html$.Platform = class Platform extends core.Object {};
-  dart.setSignature(html$.Platform, {
-    sfields: () => ({
-      supportsTypedData: core.bool,
-      supportsSimd: core.bool
-    })
-  });
-  html$.Platform.supportsSimd = false;
-  dart.defineLazy(html$.Platform, {
-    get supportsTypedData() {
-      return !!window.ArrayBuffer;
-    }
-  });
-  html$._wrapZoneCallback$ = dart.generic((A, R) => {
-    const _wrapZoneCallback = dart.typedef('_wrapZoneCallback', () => dart.functionType(R, [A]));
-    return _wrapZoneCallback;
-  });
-  html$._wrapZoneCallback = _wrapZoneCallback();
-  html$._wrapZoneBinaryCallback$ = dart.generic((A, B, R) => {
-    const _wrapZoneBinaryCallback = dart.typedef('_wrapZoneBinaryCallback', () => dart.functionType(R, [A, B]));
-    return _wrapZoneBinaryCallback;
-  });
-  html$._wrapZoneBinaryCallback = _wrapZoneBinaryCallback();
-  html$._wrapZone = function(A, R) {
-    return callback => {
-      if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback;
-      if (callback == null) return null;
-      return async.Zone.current.bindUnaryCallback(R, A)(callback, {runGuarded: true});
-    };
-  };
-  dart.fn(html$._wrapZone, _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R());
-  html$._wrapBinaryZone = function(A, B, R) {
-    return callback => {
-      if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback;
-      if (callback == null) return null;
-      return async.Zone.current.bindBinaryCallback(R, A, B)(callback, {runGuarded: true});
-    };
-  };
-  dart.fn(html$._wrapBinaryZone, _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R());
-  html$.query = function(relativeSelectors) {
-    return html$.document[dartx.query](relativeSelectors);
-  };
-  dart.fn(html$.query, StringToElement());
-  html$.queryAll = function(relativeSelectors) {
-    return html$.document[dartx.queryAll](html$.Element)(relativeSelectors);
-  };
-  dart.fn(html$.queryAll, StringToElementListOfElement());
-  html$.querySelector = function(selectors) {
-    return html$.document[dartx.querySelector](selectors);
-  };
-  dart.fn(html$.querySelector, StringToElement());
-  html$.querySelectorAll = function(selectors) {
-    return html$.document[dartx.querySelectorAll](html$.Element)(selectors);
-  };
-  dart.fn(html$.querySelectorAll, StringToElementListOfElement());
-  html$.ElementUpgrader = class ElementUpgrader extends core.Object {};
-  html$.NodeValidator = class NodeValidator extends core.Object {
-    static new(opts) {
-      let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-      return new html$._Html5NodeValidator({uriPolicy: uriPolicy});
-    }
-    static throws(base) {
-      return new html$._ThrowsNodeValidator(base);
-    }
-  };
-  dart.setSignature(html$.NodeValidator, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(html$.NodeValidator, [], {uriPolicy: html$.UriPolicy}),
-      throws: dart.definiteFunctionType(html$.NodeValidator, [html$.NodeValidator])
-    })
-  });
-  html$.NodeTreeSanitizer = class NodeTreeSanitizer extends core.Object {
-    static new(validator) {
-      return new html$._ValidatingTreeSanitizer(validator);
-    }
-  };
-  dart.setSignature(html$.NodeTreeSanitizer, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.NodeTreeSanitizer, [html$.NodeValidator])}),
-    sfields: () => ({trusted: html$._TrustedHtmlTreeSanitizer})
-  });
-  dart.defineLazy(html$.NodeTreeSanitizer, {
-    get trusted() {
-      return dart.const(new html$._TrustedHtmlTreeSanitizer());
-    }
-  });
-  html$._TrustedHtmlTreeSanitizer = class _TrustedHtmlTreeSanitizer extends core.Object {
-    new() {
-    }
-    sanitizeTree(node) {}
-  };
-  html$._TrustedHtmlTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
-  dart.setSignature(html$._TrustedHtmlTreeSanitizer, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._TrustedHtmlTreeSanitizer, [])}),
-    methods: () => ({sanitizeTree: dart.definiteFunctionType(dart.void, [html$.Node])})
-  });
-  html$.UriPolicy = class UriPolicy extends core.Object {
-    static new() {
-      return new html$._SameOriginUriPolicy();
-    }
-  };
-  dart.setSignature(html$.UriPolicy, {
-    constructors: () => ({new: dart.definiteFunctionType(html$.UriPolicy, [])})
-  });
-  const _hiddenAnchor = Symbol('_hiddenAnchor');
-  const _loc = Symbol('_loc');
-  html$._SameOriginUriPolicy = class _SameOriginUriPolicy extends core.Object {
-    new() {
-      this[_hiddenAnchor] = html$.AnchorElement.new();
-      this[_loc] = html$.window[dartx.location];
-    }
-    allowsUri(uri) {
-      this[_hiddenAnchor][dartx.href] = uri;
-      return this[_hiddenAnchor][dartx.hostname] == this[_loc][dartx.hostname] && this[_hiddenAnchor][dartx.port] == this[_loc][dartx.port] && this[_hiddenAnchor][dartx.protocol] == this[_loc][dartx.protocol] || this[_hiddenAnchor][dartx.hostname] == '' && this[_hiddenAnchor][dartx.port] == '' && (this[_hiddenAnchor][dartx.protocol] == ':' || this[_hiddenAnchor][dartx.protocol] == '');
-    }
-  };
-  html$._SameOriginUriPolicy[dart.implements] = () => [html$.UriPolicy];
-  dart.setSignature(html$._SameOriginUriPolicy, {
-    fields: () => ({
-      [_hiddenAnchor]: html$.AnchorElement,
-      [_loc]: html$.Location
-    }),
-    methods: () => ({allowsUri: dart.definiteFunctionType(core.bool, [core.String])})
-  });
-  html$._ThrowsNodeValidator = class _ThrowsNodeValidator extends core.Object {
-    new(validator) {
-      this.validator = validator;
-    }
-    allowsElement(element) {
-      if (!dart.test(this.validator.allowsElement(element))) {
-        dart.throw(new core.ArgumentError(html$.Element._safeTagName(element)));
-      }
-      return true;
-    }
-    allowsAttribute(element, attributeName, value) {
-      if (!dart.test(this.validator.allowsAttribute(element, attributeName, value))) {
-        dart.throw(new core.ArgumentError(dart.str`${html$.Element._safeTagName(element)}[${attributeName}="${value}"]`));
-      }
-    }
-  };
-  html$._ThrowsNodeValidator[dart.implements] = () => [html$.NodeValidator];
-  dart.setSignature(html$._ThrowsNodeValidator, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ThrowsNodeValidator, [html$.NodeValidator])}),
-    fields: () => ({validator: html$.NodeValidator}),
-    methods: () => ({
-      allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
-      allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
-    })
-  });
-  const _removeNode = Symbol('_removeNode');
-  const _sanitizeElement = Symbol('_sanitizeElement');
-  const _sanitizeUntrustedElement = Symbol('_sanitizeUntrustedElement');
-  html$._ValidatingTreeSanitizer = class _ValidatingTreeSanitizer extends core.Object {
-    new(validator) {
-      this.validator = validator;
-    }
-    sanitizeTree(node) {
-      const walk = (function(node, parent) {
-        this.sanitizeNode(node, parent);
-        let child = node[dartx.lastChild];
-        while (child != null) {
-          let nextChild = child[dartx.previousNode];
-          walk(child, node);
-          child = nextChild;
-        }
-      }).bind(this);
-      dart.fn(walk, NodeAndNodeTovoid());
-      walk(node, null);
-    }
-    [_removeNode](node, parent) {
-      if (parent == null) {
-        node[dartx.remove]();
-      } else {
-        parent[_removeChild](node);
-      }
-    }
-    [_sanitizeUntrustedElement](element, parent) {
-      let corrupted = true;
-      let attrs = null;
-      let isAttr = null;
-      try {
-        attrs = dart.dload(element, 'attributes');
-        isAttr = dart.dindex(attrs, 'is');
-        let corruptedTest1 = html$.Element._hasCorruptedAttributes(html$.Element._check(element));
-        corrupted = dart.test(corruptedTest1) ? true : html$.Element._hasCorruptedAttributesAdditionalCheck(html$.Element._check(element));
-      } catch (e) {
-      }
-
-      let elementText = 'element unprintable';
-      try {
-        elementText = dart.toString(element);
-      } catch (e) {
-      }
-
-      try {
-        let elementTagName = html$.Element._safeTagName(element);
-        this[_sanitizeElement](html$.Element._check(element), parent, corrupted, elementText, elementTagName, core.Map._check(attrs), core.String._check(isAttr));
-      } catch (e$) {
-        if (core.ArgumentError.is(e$)) {
-          throw e$;
-        } else {
-          let e = e$;
-          this[_removeNode](html$.Node._check(element), parent);
-          html$.window[dartx.console].warn(dart.str`Removing corrupted element ${elementText}`);
-        }
-      }
-
-    }
-    [_sanitizeElement](element, parent, corrupted, text, tag, attrs, isAttr) {
-      if (false != corrupted) {
-        this[_removeNode](element, parent);
-        html$.window[dartx.console].warn(dart.str`Removing element due to corrupted attributes on <${text}>`);
-        return;
-      }
-      if (!dart.test(this.validator.allowsElement(element))) {
-        this[_removeNode](element, parent);
-        html$.window[dartx.console].warn(dart.str`Removing disallowed element <${tag}> from ${parent}`);
-        return;
-      }
-      if (isAttr != null) {
-        if (!dart.test(this.validator.allowsAttribute(element, 'is', isAttr))) {
-          this[_removeNode](element, parent);
-          html$.window[dartx.console].warn('Removing disallowed type extension ' + dart.str`<${tag} is="${isAttr}">`);
-          return;
-        }
-      }
-      let keys = attrs[dartx.keys][dartx.toList]();
-      for (let i = dart.notNull(attrs[dartx.length]) - 1; i >= 0; --i) {
-        let name = keys[dartx._get](i);
-        if (!dart.test(this.validator.allowsAttribute(element, core.String._check(dart.dsend(name, 'toLowerCase')), core.String._check(attrs[dartx._get](name))))) {
-          html$.window[dartx.console].warn('Removing disallowed attribute ' + dart.str`<${tag} ${name}="${attrs[dartx._get](name)}">`);
-          attrs[dartx.remove](name);
-        }
-      }
-      if (html$.TemplateElement.is(element)) {
-        let template = element;
-        this.sanitizeTree(template[dartx.content]);
-      }
-    }
-    sanitizeNode(node, parent) {
-      switch (node[dartx.nodeType]) {
-        case html$.Node.ELEMENT_NODE:
-        {
-          this[_sanitizeUntrustedElement](node, parent);
-          break;
-        }
-        case html$.Node.COMMENT_NODE:
-        case html$.Node.DOCUMENT_FRAGMENT_NODE:
-        case html$.Node.TEXT_NODE:
-        case html$.Node.CDATA_SECTION_NODE:
-        {
-          break;
-        }
-        default:
-        {
-          this[_removeNode](node, parent);
-        }
-      }
-    }
-  };
-  html$._ValidatingTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
-  dart.setSignature(html$._ValidatingTreeSanitizer, {
-    constructors: () => ({new: dart.definiteFunctionType(html$._ValidatingTreeSanitizer, [html$.NodeValidator])}),
-    fields: () => ({validator: html$.NodeValidator}),
-    methods: () => ({
-      sanitizeTree: dart.definiteFunctionType(dart.void, [html$.Node]),
-      [_removeNode]: dart.definiteFunctionType(dart.void, [html$.Node, html$.Node]),
-      [_sanitizeUntrustedElement]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node]),
-      [_sanitizeElement]: dart.definiteFunctionType(dart.void, [html$.Element, html$.Node, core.bool, core.String, core.String, core.Map, core.String]),
-      sanitizeNode: dart.definiteFunctionType(dart.void, [html$.Node, html$.Node])
-    })
-  });
-  html_common.convertDartToNative_SerializedScriptValue = function(value) {
-    return html_common.convertDartToNative_PrepareForStructuredClone(value);
-  };
-  dart.fn(html_common.convertDartToNative_SerializedScriptValue, dynamicTodynamic$());
-  html_common.convertNativeToDart_SerializedScriptValue = function(object) {
-    return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: true});
-  };
-  dart.fn(html_common.convertNativeToDart_SerializedScriptValue, dynamicTodynamic$());
-  html_common._StructuredClone = class _StructuredClone extends core.Object {
-    new() {
-      this.values = [];
-      this.copies = [];
-    }
-    findSlot(value) {
-      let length = this.values[dartx.length];
-      for (let i = 0; i < dart.notNull(length); i++) {
-        if (core.identical(this.values[dartx._get](i), value)) return i;
-      }
-      this.values[dartx.add](value);
-      this.copies[dartx.add](null);
-      return length;
-    }
-    readSlot(i) {
-      return this.copies[dartx._get](i);
-    }
-    writeSlot(i, x) {
-      this.copies[dartx._set](i, x);
-    }
-    cleanupSlots() {}
-    walk(e) {
-      if (e == null) return e;
-      if (typeof e == 'boolean') return e;
-      if (typeof e == 'number') return e;
-      if (typeof e == 'string') return e;
-      if (core.DateTime.is(e)) {
-        return html_common.convertDartToNative_DateTime(e);
-      }
-      if (core.RegExp.is(e)) {
-        dart.throw(new core.UnimplementedError('structured clone of RegExp'));
-      }
-      if (html$.File.is(e)) return e;
-      if (html$.Blob.is(e)) return e;
-      if (html$.FileList.is(e)) return e;
-      if (html$.ImageData.is(e)) return e;
-      if (dart.test(this.cloneNotRequired(e))) return e;
-      if (core.Map.is(e)) {
-        let slot = this.findSlot(e);
-        let copy = this.readSlot(slot);
-        if (copy != null) return copy;
-        copy = this.newJsMap();
-        this.writeSlot(slot, copy);
-        e[dartx.forEach](dart.fn((key, value) => {
-          this.putIntoMap(copy, key, this.walk(value));
-        }, dynamicAnddynamicToNull()));
-        return copy;
-      }
-      if (core.List.is(e)) {
-        let slot = this.findSlot(e);
-        let copy = this.readSlot(slot);
-        if (copy != null) return copy;
-        copy = this.copyList(e, slot);
-        return copy;
-      }
-      dart.throw(new core.UnimplementedError('structured clone of other type'));
-    }
-    copyList(e, slot) {
-      let i = 0;
-      let length = e[dartx.length];
-      let copy = this.newJsList(length);
-      this.writeSlot(slot, copy);
-      for (; i < dart.notNull(length); i++) {
-        copy[dartx._set](i, this.walk(e[dartx._get](i)));
-      }
-      return copy;
-    }
-    convertDartToNative_PrepareForStructuredClone(value) {
-      let copy = this.walk(value);
-      this.cleanupSlots();
-      return copy;
-    }
-  };
-  dart.setSignature(html_common._StructuredClone, {
-    fields: () => ({
-      values: core.List,
-      copies: core.List
-    }),
-    methods: () => ({
-      findSlot: dart.definiteFunctionType(core.int, [dart.dynamic]),
-      readSlot: dart.definiteFunctionType(dart.dynamic, [core.int]),
-      writeSlot: dart.definiteFunctionType(dart.dynamic, [core.int, dart.dynamic]),
-      cleanupSlots: dart.definiteFunctionType(dart.dynamic, []),
-      walk: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      copyList: dart.definiteFunctionType(core.List, [core.List, core.int]),
-      convertDartToNative_PrepareForStructuredClone: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-    })
-  });
-  html_common._AcceptStructuredClone = class _AcceptStructuredClone extends core.Object {
-    new() {
-      this.values = [];
-      this.copies = [];
-      this.mustCopy = false;
-    }
-    findSlot(value) {
-      let length = this.values[dartx.length];
-      for (let i = 0; i < dart.notNull(length); i++) {
-        if (dart.test(this.identicalInJs(this.values[dartx._get](i), value))) return i;
-      }
-      this.values[dartx.add](value);
-      this.copies[dartx.add](null);
-      return length;
-    }
-    readSlot(i) {
-      return this.copies[dartx._get](i);
-    }
-    writeSlot(i, x) {
-      this.copies[dartx._set](i, x);
-    }
-    walk(e) {
-      if (e == null) return e;
-      if (typeof e == 'boolean') return e;
-      if (typeof e == 'number') return e;
-      if (typeof e == 'string') return e;
-      if (dart.test(html_common.isJavaScriptDate(e))) {
-        return html_common.convertNativeToDart_DateTime(e);
-      }
-      if (dart.test(html_common.isJavaScriptRegExp(e))) {
-        dart.throw(new core.UnimplementedError('structured clone of RegExp'));
-      }
-      if (dart.test(html_common.isJavaScriptPromise(e))) {
-        return html_common.convertNativePromiseToDartFuture(e);
-      }
-      if (dart.test(html_common.isJavaScriptSimpleObject(e))) {
-        let slot = this.findSlot(e);
-        let copy = this.readSlot(slot);
-        if (copy != null) return copy;
-        copy = dart.map();
-        this.writeSlot(slot, copy);
-        this.forEachJsField(e, dart.fn((key, value) => dart.dsetindex(copy, key, this.walk(value)), dynamicAnddynamicTodynamic$()));
-        return copy;
-      }
-      if (dart.test(html_common.isJavaScriptArray(e))) {
-        let l = e;
-        let slot = this.findSlot(l);
-        let copy = this.readSlot(slot);
-        if (copy != null) return copy;
-        let length = l[dartx.length];
-        copy = dart.test(this.mustCopy) ? this.newDartList(length) : l;
-        this.writeSlot(slot, copy);
-        for (let i = 0; i < dart.notNull(length); i++) {
-          copy[dartx._set](i, this.walk(l[dartx._get](i)));
-        }
-        return copy;
-      }
-      return e;
-    }
-    convertNativeToDart_AcceptStructuredClone(object, opts) {
-      let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
-      this.mustCopy = core.bool._check(mustCopy);
-      let copy = this.walk(object);
-      return copy;
-    }
-  };
-  dart.setSignature(html_common._AcceptStructuredClone, {
-    fields: () => ({
-      values: core.List,
-      copies: core.List,
-      mustCopy: core.bool
-    }),
-    methods: () => ({
-      findSlot: dart.definiteFunctionType(core.int, [dart.dynamic]),
-      readSlot: dart.definiteFunctionType(dart.dynamic, [core.int]),
-      writeSlot: dart.definiteFunctionType(dart.dynamic, [core.int, dart.dynamic]),
-      walk: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
-      convertNativeToDart_AcceptStructuredClone: dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})
-    })
-  });
-  html_common.ContextAttributes = class ContextAttributes extends core.Object {
-    new(alpha, antialias, depth, failIfMajorPerformanceCaveat, premultipliedAlpha, preserveDrawingBuffer, stencil) {
-      this.alpha = alpha;
-      this.antialias = antialias;
-      this.depth = depth;
-      this.failIfMajorPerformanceCaveat = failIfMajorPerformanceCaveat;
-      this.premultipliedAlpha = premultipliedAlpha;
-      this.preserveDrawingBuffer = preserveDrawingBuffer;
-      this.stencil = stencil;
-    }
-  };
-  dart.setSignature(html_common.ContextAttributes, {
-    constructors: () => ({new: dart.definiteFunctionType(html_common.ContextAttributes, [core.bool, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool])}),
-    fields: () => ({
-      alpha: core.bool,
-      antialias: core.bool,
-      depth: core.bool,
-      premultipliedAlpha: core.bool,
-      preserveDrawingBuffer: core.bool,
-      stencil: core.bool,
-      failIfMajorPerformanceCaveat: core.bool
-    })
-  });
-  html_common.convertNativeToDart_ContextAttributes = function(nativeContextAttributes) {
-    return new html_common.ContextAttributes(nativeContextAttributes.alpha, nativeContextAttributes.antialias, nativeContextAttributes.depth, nativeContextAttributes.failIfMajorPerformanceCaveat, nativeContextAttributes.premultipliedAlpha, nativeContextAttributes.preserveDrawingBuffer, nativeContextAttributes.stencil);
-  };
-  dart.fn(html_common.convertNativeToDart_ContextAttributes, dynamicTodynamic$());
-  html_common._TypedImageData = class _TypedImageData extends core.Object {
-    new(data, height, width) {
-      this.data = data;
-      this.height = height;
-      this.width = width;
-    }
-  };
-  html_common._TypedImageData[dart.implements] = () => [html$.ImageData];
-  dart.setSignature(html_common._TypedImageData, {
-    constructors: () => ({new: dart.definiteFunctionType(html_common._TypedImageData, [typed_data.Uint8ClampedList, core.int, core.int])}),
-    fields: () => ({
-      data: typed_data.Uint8ClampedList,
-      height: core.int,
-      width: core.int
-    })
-  });
-  html_common.convertNativeToDart_ImageData = function(nativeImageData) {
-    0;
-    if (html$.ImageData.is(nativeImageData)) {
-      let data = nativeImageData[dartx.data];
-      if (data.constructor === Array) {
-        if (typeof CanvasPixelArray !== "undefined") {
-          data.constructor = CanvasPixelArray;
-          data.BYTES_PER_ELEMENT = 1;
-        }
-      }
-      return nativeImageData;
-    }
-    return new html_common._TypedImageData(nativeImageData.data, nativeImageData.height, nativeImageData.width);
-  };
-  dart.fn(html_common.convertNativeToDart_ImageData, dynamicToImageData());
-  html_common.convertDartToNative_ImageData = function(imageData) {
-    if (html_common._TypedImageData.is(imageData)) {
-      return {data: imageData.data, height: imageData.height, width: imageData.width};
-    }
-    return imageData;
-  };
-  dart.fn(html_common.convertDartToNative_ImageData, ImageDataTodynamic());
-  html_common._serializedScriptValue = 'num|String|bool|' + 'JSExtendableArray|=Object|' + 'Blob|File|NativeByteBuffer|NativeTypedData';
-  html_common.annotation_Creates_SerializedScriptValue = dart.const(new _js_helper.Creates(html_common._serializedScriptValue));
-  html_common.annotation_Returns_SerializedScriptValue = dart.const(new _js_helper.Returns(html_common._serializedScriptValue));
-  html_common.convertNativeToDart_Dictionary = function(object) {
-    if (object == null) return null;
-    let dict = dart.map();
-    let keys = Object.getOwnPropertyNames(object);
-    for (let key of core.Iterable._check(keys)) {
-      dict[dartx._set](key, object[key]);
-    }
-    return dict;
-  };
-  dart.fn(html_common.convertNativeToDart_Dictionary, dynamicToMap());
-  html_common.convertDartToNative_Dictionary = function(dict, postCreate) {
-    if (postCreate === void 0) postCreate = null;
-    if (dict == null) return null;
-    let object = {};
-    if (postCreate != null) {
-      dart.dcall(postCreate, object);
-    }
-    dict[dartx.forEach](dart.fn((key, value) => {
-      object[key] = value;
-    }, StringAnddynamicToNull()));
-    return object;
-  };
-  dart.fn(html_common.convertDartToNative_Dictionary, Map__Todynamic());
-  html_common.convertDartToNative_StringArray = function(input) {
-    return input;
-  };
-  dart.fn(html_common.convertDartToNative_StringArray, ListOfStringToList());
-  html_common.convertNativeToDart_DateTime = function(date) {
-    let millisSinceEpoch = date.getTime();
-    return new core.DateTime.fromMillisecondsSinceEpoch(millisSinceEpoch, {isUtc: true});
-  };
-  dart.fn(html_common.convertNativeToDart_DateTime, dynamicToDateTime());
-  html_common.convertDartToNative_DateTime = function(date) {
-    return new Date(date.millisecondsSinceEpoch);
-  };
-  dart.fn(html_common.convertDartToNative_DateTime, DateTimeTodynamic());
-  html_common.convertDartToNative_PrepareForStructuredClone = function(value) {
-    return new html_common._StructuredCloneDart2Js().convertDartToNative_PrepareForStructuredClone(value);
-  };
-  dart.fn(html_common.convertDartToNative_PrepareForStructuredClone, dynamicTodynamic$());
-  html_common.convertNativeToDart_AcceptStructuredClone = function(object, opts) {
-    let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
-    return new html_common._AcceptStructuredCloneDart2Js().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
-  };
-  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic());
-  html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
-    new() {
-      super.new();
-    }
-    newJsMap() {
-      return {};
-    }
-    putIntoMap(map, key, value) {
-      return map[key] = value;
-    }
-    newJsList(length) {
-      return new Array(length);
-    }
-    cloneNotRequired(e) {
-      return _native_typed_data.NativeByteBuffer.is(e) || _native_typed_data.NativeTypedData.is(e);
-    }
-  };
-  dart.setSignature(html_common._StructuredCloneDart2Js, {
-    methods: () => ({
-      newJsMap: dart.definiteFunctionType(dart.dynamic, []),
-      putIntoMap: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
-      newJsList: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      cloneNotRequired: dart.definiteFunctionType(core.bool, [dart.dynamic])
-    })
-  });
-  html_common._AcceptStructuredCloneDart2Js = class _AcceptStructuredCloneDart2Js extends html_common._AcceptStructuredClone {
-    new() {
-      super.new();
-    }
-    newJsList(length) {
-      return new Array(length);
-    }
-    newDartList(length) {
-      return this.newJsList(length);
-    }
-    identicalInJs(a, b) {
-      return core.identical(a, b);
-    }
-    forEachJsField(object, action) {
-      for (let key of Object.keys(object)) {
-        dart.dcall(action, key, object[key]);
-      }
-    }
-  };
-  dart.setSignature(html_common._AcceptStructuredCloneDart2Js, {
-    methods: () => ({
-      newJsList: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      newDartList: dart.definiteFunctionType(core.List, [dart.dynamic]),
-      identicalInJs: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
-      forEachJsField: dart.definiteFunctionType(dart.void, [dart.dynamic, dynamicAnddynamicTodynamic()])
-    })
-  });
-  html_common.isJavaScriptDate = function(value) {
-    return value instanceof Date;
-  };
-  dart.fn(html_common.isJavaScriptDate, dynamicTobool$());
-  html_common.isJavaScriptRegExp = function(value) {
-    return value instanceof RegExp;
-  };
-  dart.fn(html_common.isJavaScriptRegExp, dynamicTobool$());
-  html_common.isJavaScriptArray = function(value) {
-    return value instanceof Array;
-  };
-  dart.fn(html_common.isJavaScriptArray, dynamicTobool$());
-  html_common.isJavaScriptSimpleObject = function(value) {
-    let proto = Object.getPrototypeOf(value);
-    return proto === Object.prototype || proto === null;
-  };
-  dart.fn(html_common.isJavaScriptSimpleObject, dynamicTobool$());
-  html_common.isImmutableJavaScriptArray = function(value) {
-    return !!value.immutable$list;
-  };
-  dart.fn(html_common.isImmutableJavaScriptArray, dynamicTobool$());
-  html_common.isJavaScriptPromise = function(value) {
-    return typeof Promise != "undefined" && value instanceof Promise;
-  };
-  dart.fn(html_common.isJavaScriptPromise, dynamicTobool$());
-  html_common.convertNativePromiseToDartFuture = function(promise) {
-    let completer = async.Completer.new();
-    let then = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.complete(result), dynamicTovoid$()), 1);
-    let error = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.completeError(result), dynamicTovoid$()), 1);
-    let newPromise = promise.then(then).catch(error);
-    return completer.future;
-  };
-  dart.fn(html_common.convertNativePromiseToDartFuture, dynamicToFuture());
-  html_common.Device = class Device extends core.Object {
-    static get userAgent() {
-      return html$.window[dartx.navigator][dartx.userAgent];
-    }
-    static get isOpera() {
-      if (html_common.Device._isOpera == null) {
-        html_common.Device._isOpera = html_common.Device.userAgent[dartx.contains]("Opera", 0);
-      }
-      return html_common.Device._isOpera;
-    }
-    static get isIE() {
-      if (html_common.Device._isIE == null) {
-        html_common.Device._isIE = !dart.test(html_common.Device.isOpera) && dart.test(html_common.Device.userAgent[dartx.contains]("Trident/", 0));
-      }
-      return html_common.Device._isIE;
-    }
-    static get isFirefox() {
-      if (html_common.Device._isFirefox == null) {
-        html_common.Device._isFirefox = html_common.Device.userAgent[dartx.contains]("Firefox", 0);
-      }
-      return html_common.Device._isFirefox;
-    }
-    static get isWebKit() {
-      if (html_common.Device._isWebKit == null) {
-        html_common.Device._isWebKit = !dart.test(html_common.Device.isOpera) && dart.test(html_common.Device.userAgent[dartx.contains]("WebKit", 0));
-      }
-      return html_common.Device._isWebKit;
-    }
-    static get cssPrefix() {
-      let prefix = html_common.Device._cachedCssPrefix;
-      if (prefix != null) return prefix;
-      if (dart.test(html_common.Device.isFirefox)) {
-        prefix = '-moz-';
-      } else if (dart.test(html_common.Device.isIE)) {
-        prefix = '-ms-';
-      } else if (dart.test(html_common.Device.isOpera)) {
-        prefix = '-o-';
-      } else {
-        prefix = '-webkit-';
-      }
-      return html_common.Device._cachedCssPrefix = prefix;
-    }
-    static get propertyPrefix() {
-      let prefix = html_common.Device._cachedPropertyPrefix;
-      if (prefix != null) return prefix;
-      if (dart.test(html_common.Device.isFirefox)) {
-        prefix = 'moz';
-      } else if (dart.test(html_common.Device.isIE)) {
-        prefix = 'ms';
-      } else if (dart.test(html_common.Device.isOpera)) {
-        prefix = 'o';
-      } else {
-        prefix = 'webkit';
-      }
-      return html_common.Device._cachedPropertyPrefix = prefix;
-    }
-    static isEventTypeSupported(eventType) {
-      try {
-        let e = html$.Event.eventType(eventType, '');
-        return html$.Event.is(e);
-      } catch (_) {
-      }
-
-      return false;
-    }
-  };
-  dart.setSignature(html_common.Device, {
-    sfields: () => ({
-      _isOpera: core.bool,
-      _isIE: core.bool,
-      _isFirefox: core.bool,
-      _isWebKit: core.bool,
-      _cachedCssPrefix: core.String,
-      _cachedPropertyPrefix: core.String
-    }),
-    sgetters: () => ({
-      userAgent: dart.definiteFunctionType(core.String, []),
-      isOpera: dart.definiteFunctionType(core.bool, []),
-      isIE: dart.definiteFunctionType(core.bool, []),
-      isFirefox: dart.definiteFunctionType(core.bool, []),
-      isWebKit: dart.definiteFunctionType(core.bool, []),
-      cssPrefix: dart.definiteFunctionType(core.String, []),
-      propertyPrefix: dart.definiteFunctionType(core.String, [])
-    }),
-    statics: () => ({isEventTypeSupported: dart.definiteFunctionType(core.bool, [core.String])}),
-    names: ['isEventTypeSupported']
-  });
-  html_common.Device._isOpera = null;
-  html_common.Device._isIE = null;
-  html_common.Device._isFirefox = null;
-  html_common.Device._isWebKit = null;
-  html_common.Device._cachedCssPrefix = null;
-  html_common.Device._cachedPropertyPrefix = null;
-  const _childNodes = Symbol('_childNodes');
-  const _node = Symbol('_node');
-  const _iterable$0 = Symbol('_iterable');
-  const _filtered = Symbol('_filtered');
-  html_common.FilteredElementList = class FilteredElementList extends collection.ListBase$(html$.Element) {
-    new(node) {
-      this[_childNodes] = node[dartx.nodes];
-      this[_node] = node;
-    }
-    get [_iterable$0]() {
-      return this[_childNodes][dartx.where](dart.fn(n => html$.Element.is(n), NodeTobool$()))[dartx.map](html$.Element)(dart.fn(n => html$.Element.as(n), NodeToElement()));
-    }
-    get [_filtered]() {
-      return ListOfElement().from(this[_iterable$0], {growable: false});
-    }
-    forEach(f) {
-      this[_filtered][dartx.forEach](f);
-    }
-    _set(index, value) {
-      this._get(index)[dartx.replaceWith](value);
-      return value;
-    }
-    set length(newLength) {
-      let len = this.length;
-      if (dart.notNull(newLength) >= dart.notNull(len)) {
-        return;
-      } else if (dart.notNull(newLength) < 0) {
-        dart.throw(new core.ArgumentError("Invalid list length"));
-      }
-      this.removeRange(newLength, len);
-    }
-    add(value) {
-      this[_childNodes][dartx.add](value);
-    }
-    addAll(iterable) {
-      for (let element of iterable) {
-        this.add(element);
-      }
-    }
-    contains(needle) {
-      if (!html$.Element.is(needle)) return false;
-      let element = html$.Element._check(needle);
-      return dart.equals(element[dartx.parentNode], this[_node]);
-    }
-    get reversed() {
-      return this[_filtered][dartx.reversed];
-    }
-    sort(compare) {
-      if (compare === void 0) compare = null;
-      dart.throw(new core.UnsupportedError('Cannot sort filtered list'));
-    }
-    setRange(start, end, iterable, skipCount) {
-      if (skipCount === void 0) skipCount = 0;
-      dart.throw(new core.UnsupportedError('Cannot setRange on filtered list'));
-    }
-    fillRange(start, end, fillValue) {
-      if (fillValue === void 0) fillValue = null;
-      dart.throw(new core.UnsupportedError('Cannot fillRange on filtered list'));
-    }
-    replaceRange(start, end, iterable) {
-      dart.throw(new core.UnsupportedError('Cannot replaceRange on filtered list'));
-    }
-    removeRange(start, end) {
-      core.List.from(this[_iterable$0][dartx.skip](start)[dartx.take](dart.notNull(end) - dart.notNull(start)))[dartx.forEach](dart.fn(el => dart.dsend(el, 'remove'), dynamicTovoid$()));
-    }
-    clear() {
-      this[_childNodes][dartx.clear]();
-    }
-    removeLast() {
-      let result = this[_iterable$0][dartx.last];
-      if (result != null) {
-        result[dartx.remove]();
-      }
-      return result;
-    }
-    insert(index, value) {
-      if (index == this.length) {
-        this.add(value);
-      } else {
-        let element = this[_iterable$0][dartx.elementAt](index);
-        element[dartx.parentNode][dartx.insertBefore](value, element);
-      }
-    }
-    insertAll(index, iterable) {
-      if (index == this.length) {
-        this.addAll(iterable);
-      } else {
-        let element = this[_iterable$0][dartx.elementAt](index);
-        element[dartx.parentNode][dartx.insertAllBefore](iterable, element);
-      }
-    }
-    removeAt(index) {
-      let result = this._get(index);
-      result[dartx.remove]();
-      return result;
-    }
-    remove(element) {
-      if (!html$.Element.is(element)) return false;
-      if (dart.test(this.contains(element))) {
-        html$.Element.as(element)[dartx.remove]();
-        return true;
-      } else {
-        return false;
-      }
-    }
-    get length() {
-      return this[_iterable$0][dartx.length];
-    }
-    _get(index) {
-      return this[_iterable$0][dartx.elementAt](index);
-    }
-    get iterator() {
-      return this[_filtered][dartx.iterator];
-    }
-    get rawList() {
-      return this[_node][dartx.childNodes];
-    }
-  };
-  dart.addSimpleTypeTests(html_common.FilteredElementList);
-  html_common.FilteredElementList[dart.implements] = () => [html_common.NodeListWrapper];
-  dart.setSignature(html_common.FilteredElementList, {
-    constructors: () => ({new: dart.definiteFunctionType(html_common.FilteredElementList, [html$.Node])}),
-    fields: () => ({
-      [_node]: html$.Node,
-      [_childNodes]: ListOfNode()
-    }),
-    getters: () => ({
-      [_iterable$0]: dart.definiteFunctionType(core.Iterable$(html$.Element), []),
-      [_filtered]: dart.definiteFunctionType(core.List$(html$.Element), []),
-      length: dart.definiteFunctionType(core.int, []),
-      rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
-    }),
-    setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      _set: dart.definiteFunctionType(dart.void, [core.int, html$.Element]),
-      _get: dart.definiteFunctionType(html$.Element, [core.int])
-    })
-  });
-  dart.defineExtensionMembers(html_common.FilteredElementList, [
-    'forEach',
-    '_set',
-    'add',
-    'addAll',
-    'contains',
-    'sort',
-    'setRange',
-    'fillRange',
-    'replaceRange',
-    'removeRange',
-    'clear',
-    'removeLast',
-    'insert',
-    'insertAll',
-    'removeAt',
-    'remove',
-    '_get',
-    'length',
-    'reversed',
-    'length',
-    'iterator'
-  ]);
-  html_common.Lists = class Lists extends core.Object {
-    static indexOf(a, element, startIndex, endIndex) {
-      if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
-        return -1;
-      }
-      if (dart.notNull(startIndex) < 0) {
-        startIndex = 0;
-      }
-      for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dart.notNull(i) + 1) {
-        if (dart.equals(a[dartx._get](i), element)) {
-          return i;
-        }
-      }
-      return -1;
-    }
-    static lastIndexOf(a, element, startIndex) {
-      if (dart.notNull(startIndex) < 0) {
-        return -1;
-      }
-      if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
-        startIndex = dart.notNull(a[dartx.length]) - 1;
-      }
-      for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
-        if (dart.equals(a[dartx._get](i), element)) {
-          return i;
-        }
-      }
-      return -1;
-    }
-    static getRange(a, start, end, accumulator) {
-      if (dart.notNull(start) < 0) dart.throw(new core.RangeError.value(start));
-      if (dart.notNull(end) < dart.notNull(start)) dart.throw(new core.RangeError.value(end));
-      if (dart.notNull(end) > dart.notNull(a[dartx.length])) dart.throw(new core.RangeError.value(end));
-      for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
-        accumulator[dartx.add](a[dartx._get](i));
-      }
-      return accumulator;
-    }
-  };
-  dart.setSignature(html_common.Lists, {
-    statics: () => ({
-      indexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int, core.int]),
-      lastIndexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int]),
-      getRange: dart.definiteFunctionType(core.List, [core.List, core.int, core.int, core.List])
-    }),
-    names: ['indexOf', 'lastIndexOf', 'getRange']
-  });
-  html_common.NodeListWrapper = class NodeListWrapper extends core.Object {};
-  svg$._SvgElementFactoryProvider = class _SvgElementFactoryProvider extends core.Object {
-    static createSvgElement_tag(tag) {
-      let temp = html$.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag);
-      return svg$.SvgElement._check(temp);
-    }
-  };
-  dart.setSignature(svg$._SvgElementFactoryProvider, {
-    statics: () => ({createSvgElement_tag: dart.definiteFunctionType(svg$.SvgElement, [core.String])}),
-    names: ['createSvgElement_tag']
-  });
-  const _children$ = Symbol('_children');
-  const _svgClassName = Symbol('_svgClassName');
-  dart.defineExtensionNames([
-    'classes',
-    'children',
-    'children',
-    'outerHtml',
-    'innerHtml',
-    'innerHtml',
-    'createFragment',
-    'insertAdjacentText',
-    'insertAdjacentHtml',
-    'insertAdjacentElement',
-    'isContentEditable',
-    'click',
-    'blur',
-    'focus',
-    'onAbort',
-    'onBlur',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onChange',
-    'onClick',
-    'onContextMenu',
-    'onDoubleClick',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onDurationChange',
-    'onEmptied',
-    'onEnded',
-    'onError',
-    'onFocus',
-    'onInput',
-    'onInvalid',
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-    'onLoad',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-    'onMouseWheel',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onRateChange',
-    'onReset',
-    'onResize',
-    'onScroll',
-    'onSeeked',
-    'onSeeking',
-    'onSelect',
-    'onStalled',
-    'onSubmit',
-    'onSuspend',
-    'onTimeUpdate',
-    'onVolumeChange',
-    'onWaiting',
-    'ownerSvgElement',
-    'viewportElement'
-  ]);
-  svg$.SvgElement = class SvgElement extends html$.Element {
-    static tag(tag) {
-      return svg$.SvgElement._check(html$.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag));
-    }
-    static svg(svg, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (validator == null && treeSanitizer == null) {
-        validator = new html$.NodeValidatorBuilder.common();
-        validator.allowSvg();
-      }
-      let match = svg$.SvgElement._START_TAG_REGEXP.firstMatch(svg);
-      let parentElement = null;
-      if (match != null && match.group(1)[dartx.toLowerCase]() == 'svg') {
-        parentElement = html$.document[dartx.body];
-      } else {
-        parentElement = svg$.SvgSvgElement.new();
-      }
-      let fragment = dart.dsend(parentElement, 'createFragment', svg, {validator: validator, treeSanitizer: treeSanitizer});
-      return svg$.SvgElement._check(dart.dload(dart.dsend(dart.dload(fragment, 'nodes'), 'where', dart.fn(e => svg$.SvgElement.is(e), dynamicTobool$())), 'single'));
-    }
-    get [dartx.classes]() {
-      return new svg$._AttributeClassSet(this);
-    }
-    set [dartx.classes](value) {
-      super[dartx.classes] = value;
-    }
-    get [dartx.children]() {
-      return new html_common.FilteredElementList(this);
-    }
-    set [dartx.children](value) {
-      let children = this[dartx.children];
-      children[dartx.clear]();
-      children[dartx.addAll](value);
-    }
-    get [dartx.outerHtml]() {
-      let container = html$.Element.tag("div");
-      let cloned = svg$.SvgElement._check(this[dartx.clone](true));
-      container[dartx.children][dartx.add](cloned);
-      return container[dartx.innerHtml];
-    }
-    get [dartx.innerHtml]() {
-      let container = html$.Element.tag("div");
-      let cloned = svg$.SvgElement._check(this[dartx.clone](true));
-      container[dartx.children][dartx.addAll](cloned[dartx.children]);
-      return container[dartx.innerHtml];
-    }
-    set [dartx.innerHtml](value) {
-      this[dartx.setInnerHtml](value);
-    }
-    [dartx.createFragment](svg, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      if (treeSanitizer == null) {
-        if (validator == null) {
-          validator = new html$.NodeValidatorBuilder.common();
-          validator.allowSvg();
-        }
-        treeSanitizer = html$.NodeTreeSanitizer.new(validator);
-      }
-      let html = dart.str`<svg version="1.1">${svg}</svg>`;
-      let fragment = html$.document[dartx.body][dartx.createFragment](html, {treeSanitizer: treeSanitizer});
-      let svgFragment = html$.DocumentFragment.new();
-      let root = fragment[dartx.nodes][dartx.single];
-      while (root[dartx.firstChild] != null) {
-        svgFragment[dartx.append](root[dartx.firstChild]);
-      }
-      return svgFragment;
-    }
-    [dartx.insertAdjacentText](where, text) {
-      dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentText on SVG."));
-    }
-    [dartx.insertAdjacentHtml](where, text, opts) {
-      let validator = opts && 'validator' in opts ? opts.validator : null;
-      let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-      dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentHtml on SVG."));
-    }
-    [dartx.insertAdjacentElement](where, element) {
-      dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentElement on SVG."));
-    }
-    get [_children$]() {
-      dart.throw(new core.UnsupportedError("Cannot get _children on SVG."));
-    }
-    get [dartx.isContentEditable]() {
-      return false;
-    }
-    [dartx.click]() {
-      dart.throw(new core.UnsupportedError("Cannot invoke click SVG."));
-    }
-    static isTagSupported(tag) {
-      let e = svg$.SvgElement.tag(tag);
-      return svg$.SvgElement.is(e) && !html$.UnknownElement.is(e);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.ownerSvgElement] = null;
-      this[dartx.viewportElement] = null;
-      super.created();
-    }
-    get [_svgClassName]() {
-      return this.className;
-    }
-    get [dartx.ownerSvgElement]() {
-      return this.ownerSVGElement;
-    }
-    get [dartx.viewportElement]() {
-      return this.viewportElement;
-    }
-    [dartx.blur](...args) {
-      return this.blur.apply(this, args);
-    }
-    [dartx.focus](...args) {
-      return this.focus.apply(this, args);
-    }
-    get [dartx.onAbort]() {
-      return svg$.SvgElement.abortEvent.forElement(this);
-    }
-    get [dartx.onBlur]() {
-      return svg$.SvgElement.blurEvent.forElement(this);
-    }
-    get [dartx.onCanPlay]() {
-      return svg$.SvgElement.canPlayEvent.forElement(this);
-    }
-    get [dartx.onCanPlayThrough]() {
-      return svg$.SvgElement.canPlayThroughEvent.forElement(this);
-    }
-    get [dartx.onChange]() {
-      return svg$.SvgElement.changeEvent.forElement(this);
-    }
-    get [dartx.onClick]() {
-      return svg$.SvgElement.clickEvent.forElement(this);
-    }
-    get [dartx.onContextMenu]() {
-      return svg$.SvgElement.contextMenuEvent.forElement(this);
-    }
-    get [dartx.onDoubleClick]() {
-      return svg$.SvgElement.doubleClickEvent.forElement(this);
-    }
-    get [dartx.onDrag]() {
-      return svg$.SvgElement.dragEvent.forElement(this);
-    }
-    get [dartx.onDragEnd]() {
-      return svg$.SvgElement.dragEndEvent.forElement(this);
-    }
-    get [dartx.onDragEnter]() {
-      return svg$.SvgElement.dragEnterEvent.forElement(this);
-    }
-    get [dartx.onDragLeave]() {
-      return svg$.SvgElement.dragLeaveEvent.forElement(this);
-    }
-    get [dartx.onDragOver]() {
-      return svg$.SvgElement.dragOverEvent.forElement(this);
-    }
-    get [dartx.onDragStart]() {
-      return svg$.SvgElement.dragStartEvent.forElement(this);
-    }
-    get [dartx.onDrop]() {
-      return svg$.SvgElement.dropEvent.forElement(this);
-    }
-    get [dartx.onDurationChange]() {
-      return svg$.SvgElement.durationChangeEvent.forElement(this);
-    }
-    get [dartx.onEmptied]() {
-      return svg$.SvgElement.emptiedEvent.forElement(this);
-    }
-    get [dartx.onEnded]() {
-      return svg$.SvgElement.endedEvent.forElement(this);
-    }
-    get [dartx.onError]() {
-      return svg$.SvgElement.errorEvent.forElement(this);
-    }
-    get [dartx.onFocus]() {
-      return svg$.SvgElement.focusEvent.forElement(this);
-    }
-    get [dartx.onInput]() {
-      return svg$.SvgElement.inputEvent.forElement(this);
-    }
-    get [dartx.onInvalid]() {
-      return svg$.SvgElement.invalidEvent.forElement(this);
-    }
-    get [dartx.onKeyDown]() {
-      return svg$.SvgElement.keyDownEvent.forElement(this);
-    }
-    get [dartx.onKeyPress]() {
-      return svg$.SvgElement.keyPressEvent.forElement(this);
-    }
-    get [dartx.onKeyUp]() {
-      return svg$.SvgElement.keyUpEvent.forElement(this);
-    }
-    get [dartx.onLoad]() {
-      return svg$.SvgElement.loadEvent.forElement(this);
-    }
-    get [dartx.onLoadedData]() {
-      return svg$.SvgElement.loadedDataEvent.forElement(this);
-    }
-    get [dartx.onLoadedMetadata]() {
-      return svg$.SvgElement.loadedMetadataEvent.forElement(this);
-    }
-    get [dartx.onMouseDown]() {
-      return svg$.SvgElement.mouseDownEvent.forElement(this);
-    }
-    get [dartx.onMouseEnter]() {
-      return svg$.SvgElement.mouseEnterEvent.forElement(this);
-    }
-    get [dartx.onMouseLeave]() {
-      return svg$.SvgElement.mouseLeaveEvent.forElement(this);
-    }
-    get [dartx.onMouseMove]() {
-      return svg$.SvgElement.mouseMoveEvent.forElement(this);
-    }
-    get [dartx.onMouseOut]() {
-      return svg$.SvgElement.mouseOutEvent.forElement(this);
-    }
-    get [dartx.onMouseOver]() {
-      return svg$.SvgElement.mouseOverEvent.forElement(this);
-    }
-    get [dartx.onMouseUp]() {
-      return svg$.SvgElement.mouseUpEvent.forElement(this);
-    }
-    get [dartx.onMouseWheel]() {
-      return svg$.SvgElement.mouseWheelEvent.forElement(this);
-    }
-    get [dartx.onPause]() {
-      return svg$.SvgElement.pauseEvent.forElement(this);
-    }
-    get [dartx.onPlay]() {
-      return svg$.SvgElement.playEvent.forElement(this);
-    }
-    get [dartx.onPlaying]() {
-      return svg$.SvgElement.playingEvent.forElement(this);
-    }
-    get [dartx.onRateChange]() {
-      return svg$.SvgElement.rateChangeEvent.forElement(this);
-    }
-    get [dartx.onReset]() {
-      return svg$.SvgElement.resetEvent.forElement(this);
-    }
-    get [dartx.onResize]() {
-      return svg$.SvgElement.resizeEvent.forElement(this);
-    }
-    get [dartx.onScroll]() {
-      return svg$.SvgElement.scrollEvent.forElement(this);
-    }
-    get [dartx.onSeeked]() {
-      return svg$.SvgElement.seekedEvent.forElement(this);
-    }
-    get [dartx.onSeeking]() {
-      return svg$.SvgElement.seekingEvent.forElement(this);
-    }
-    get [dartx.onSelect]() {
-      return svg$.SvgElement.selectEvent.forElement(this);
-    }
-    get [dartx.onStalled]() {
-      return svg$.SvgElement.stalledEvent.forElement(this);
-    }
-    get [dartx.onSubmit]() {
-      return svg$.SvgElement.submitEvent.forElement(this);
-    }
-    get [dartx.onSuspend]() {
-      return svg$.SvgElement.suspendEvent.forElement(this);
-    }
-    get [dartx.onTimeUpdate]() {
-      return svg$.SvgElement.timeUpdateEvent.forElement(this);
-    }
-    get [dartx.onVolumeChange]() {
-      return svg$.SvgElement.volumeChangeEvent.forElement(this);
-    }
-    get [dartx.onWaiting]() {
-      return svg$.SvgElement.waitingEvent.forElement(this);
-    }
-  };
-  dart.defineNamedConstructor(svg$.SvgElement, 'created');
-  svg$.SvgElement[dart.implements] = () => [html$.GlobalEventHandlers];
-  dart.setSignature(svg$.SvgElement, {
-    constructors: () => ({
-      tag: dart.definiteFunctionType(svg$.SvgElement, [core.String]),
-      svg: dart.definiteFunctionType(svg$.SvgElement, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
-      _: dart.definiteFunctionType(svg$.SvgElement, []),
-      created: dart.definiteFunctionType(svg$.SvgElement, [])
-    }),
-    fields: () => ({
-      [dartx.ownerSvgElement]: svg$.SvgSvgElement,
-      [dartx.viewportElement]: svg$.SvgElement
-    }),
-    getters: () => ({
-      [_children$]: dart.definiteFunctionType(html$.HtmlCollection, []),
-      [_svgClassName]: dart.definiteFunctionType(svg$.AnimatedString, [])
-    }),
-    sfields: () => ({
-      _START_TAG_REGEXP: core.RegExp,
-      abortEvent: EventStreamProviderOfEvent(),
-      blurEvent: EventStreamProviderOfEvent(),
-      canPlayEvent: EventStreamProviderOfEvent(),
-      canPlayThroughEvent: EventStreamProviderOfEvent(),
-      changeEvent: EventStreamProviderOfEvent(),
-      clickEvent: EventStreamProviderOfMouseEvent(),
-      contextMenuEvent: EventStreamProviderOfMouseEvent(),
-      doubleClickEvent: EventStreamProviderOfEvent(),
-      dragEvent: EventStreamProviderOfMouseEvent(),
-      dragEndEvent: EventStreamProviderOfMouseEvent(),
-      dragEnterEvent: EventStreamProviderOfMouseEvent(),
-      dragLeaveEvent: EventStreamProviderOfMouseEvent(),
-      dragOverEvent: EventStreamProviderOfMouseEvent(),
-      dragStartEvent: EventStreamProviderOfMouseEvent(),
-      dropEvent: EventStreamProviderOfMouseEvent(),
-      durationChangeEvent: EventStreamProviderOfEvent(),
-      emptiedEvent: EventStreamProviderOfEvent(),
-      endedEvent: EventStreamProviderOfEvent(),
-      errorEvent: EventStreamProviderOfEvent(),
-      focusEvent: EventStreamProviderOfEvent(),
-      inputEvent: EventStreamProviderOfEvent(),
-      invalidEvent: EventStreamProviderOfEvent(),
-      keyDownEvent: EventStreamProviderOfKeyboardEvent(),
-      keyPressEvent: EventStreamProviderOfKeyboardEvent(),
-      keyUpEvent: EventStreamProviderOfKeyboardEvent(),
-      loadEvent: EventStreamProviderOfEvent(),
-      loadedDataEvent: EventStreamProviderOfEvent(),
-      loadedMetadataEvent: EventStreamProviderOfEvent(),
-      mouseDownEvent: EventStreamProviderOfMouseEvent(),
-      mouseEnterEvent: EventStreamProviderOfMouseEvent(),
-      mouseLeaveEvent: EventStreamProviderOfMouseEvent(),
-      mouseMoveEvent: EventStreamProviderOfMouseEvent(),
-      mouseOutEvent: EventStreamProviderOfMouseEvent(),
-      mouseOverEvent: EventStreamProviderOfMouseEvent(),
-      mouseUpEvent: EventStreamProviderOfMouseEvent(),
-      mouseWheelEvent: EventStreamProviderOfWheelEvent(),
-      pauseEvent: EventStreamProviderOfEvent(),
-      playEvent: EventStreamProviderOfEvent(),
-      playingEvent: EventStreamProviderOfEvent(),
-      rateChangeEvent: EventStreamProviderOfEvent(),
-      resetEvent: EventStreamProviderOfEvent(),
-      resizeEvent: EventStreamProviderOfEvent(),
-      scrollEvent: EventStreamProviderOfEvent(),
-      seekedEvent: EventStreamProviderOfEvent(),
-      seekingEvent: EventStreamProviderOfEvent(),
-      selectEvent: EventStreamProviderOfEvent(),
-      stalledEvent: EventStreamProviderOfEvent(),
-      submitEvent: EventStreamProviderOfEvent(),
-      suspendEvent: EventStreamProviderOfEvent(),
-      timeUpdateEvent: EventStreamProviderOfEvent(),
-      volumeChangeEvent: EventStreamProviderOfEvent(),
-      waitingEvent: EventStreamProviderOfEvent()
-    })
-  });
-  dart.defineLazy(svg$.SvgElement, {
-    get _START_TAG_REGEXP() {
-      return core.RegExp.new('<(\\w+)');
-    },
-    get abortEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('abort'));
-    },
-    get blurEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('blur'));
-    },
-    get canPlayEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('canplay'));
-    },
-    get canPlayThroughEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('canplaythrough'));
-    },
-    get changeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('change'));
-    },
-    get clickEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('click'));
-    },
-    get contextMenuEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('contextmenu'));
-    },
-    get doubleClickEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('dblclick'));
-    },
-    get dragEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('drag'));
-    },
-    get dragEndEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragend'));
-    },
-    get dragEnterEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragenter'));
-    },
-    get dragLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragleave'));
-    },
-    get dragOverEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragover'));
-    },
-    get dragStartEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('dragstart'));
-    },
-    get dropEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('drop'));
-    },
-    get durationChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('durationchange'));
-    },
-    get emptiedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('emptied'));
-    },
-    get endedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ended'));
-    },
-    get errorEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('error'));
-    },
-    get focusEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('focus'));
-    },
-    get inputEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('input'));
-    },
-    get invalidEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('invalid'));
-    },
-    get keyDownEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keydown'));
-    },
-    get keyPressEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keypress'));
-    },
-    get keyUpEvent() {
-      return dart.const(new (EventStreamProviderOfKeyboardEvent())('keyup'));
-    },
-    get loadEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('load'));
-    },
-    get loadedDataEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadeddata'));
-    },
-    get loadedMetadataEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('loadedmetadata'));
-    },
-    get mouseDownEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mousedown'));
-    },
-    get mouseEnterEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseenter'));
-    },
-    get mouseLeaveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseleave'));
-    },
-    get mouseMoveEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mousemove'));
-    },
-    get mouseOutEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseout'));
-    },
-    get mouseOverEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseover'));
-    },
-    get mouseUpEvent() {
-      return dart.const(new (EventStreamProviderOfMouseEvent())('mouseup'));
-    },
-    get mouseWheelEvent() {
-      return dart.const(new (EventStreamProviderOfWheelEvent())('mousewheel'));
-    },
-    get pauseEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('pause'));
-    },
-    get playEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('play'));
-    },
-    get playingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('playing'));
-    },
-    get rateChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('ratechange'));
-    },
-    get resetEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('reset'));
-    },
-    get resizeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('resize'));
-    },
-    get scrollEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('scroll'));
-    },
-    get seekedEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('seeked'));
-    },
-    get seekingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('seeking'));
-    },
-    get selectEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('select'));
-    },
-    get stalledEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('stalled'));
-    },
-    get submitEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('submit'));
-    },
-    get suspendEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('suspend'));
-    },
-    get timeUpdateEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('timeupdate'));
-    },
-    get volumeChangeEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('volumechange'));
-    },
-    get waitingEvent() {
-      return dart.const(new (EventStreamProviderOfEvent())('waiting'));
-    }
-  });
-  dart.registerExtension(dart.global.SVGElement, svg$.SvgElement);
-  dart.defineExtensionNames([
-    'getBBox',
-    'getCtm',
-    'getScreenCtm',
-    'getTransformToElement',
-    'hasExtension',
-    'farthestViewportElement',
-    'nearestViewportElement',
-    'transform',
-    'requiredExtensions',
-    'requiredFeatures',
-    'systemLanguage'
-  ]);
-  svg$.GraphicsElement = class GraphicsElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.farthestViewportElement] = null;
-      this[dartx.nearestViewportElement] = null;
-      this[dartx.transform] = null;
-      this[dartx.requiredExtensions] = null;
-      this[dartx.requiredFeatures] = null;
-      this[dartx.systemLanguage] = null;
-      super.created();
-    }
-    get [dartx.farthestViewportElement]() {
-      return this.farthestViewportElement;
-    }
-    get [dartx.nearestViewportElement]() {
-      return this.nearestViewportElement;
-    }
-    get [dartx.transform]() {
-      return this.transform;
-    }
-    [dartx.getBBox](...args) {
-      return this.getBBox.apply(this, args);
-    }
-    [dartx.getCtm](...args) {
-      return this.getCTM.apply(this, args);
-    }
-    [dartx.getScreenCtm](...args) {
-      return this.getScreenCTM.apply(this, args);
-    }
-    [dartx.getTransformToElement](...args) {
-      return this.getTransformToElement.apply(this, args);
-    }
-    get [dartx.requiredExtensions]() {
-      return this.requiredExtensions;
-    }
-    get [dartx.requiredFeatures]() {
-      return this.requiredFeatures;
-    }
-    get [dartx.systemLanguage]() {
-      return this.systemLanguage;
-    }
-    [dartx.hasExtension](...args) {
-      return this.hasExtension.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(svg$.GraphicsElement, 'created');
-  svg$.GraphicsElement[dart.implements] = () => [svg$.Tests];
-  dart.setSignature(svg$.GraphicsElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.GraphicsElement, []),
-      created: dart.definiteFunctionType(svg$.GraphicsElement, [])
-    }),
-    fields: () => ({
-      [dartx.farthestViewportElement]: svg$.SvgElement,
-      [dartx.nearestViewportElement]: svg$.SvgElement,
-      [dartx.transform]: svg$.AnimatedTransformList,
-      [dartx.requiredExtensions]: svg$.StringList,
-      [dartx.requiredFeatures]: svg$.StringList,
-      [dartx.systemLanguage]: svg$.StringList
-    }),
-    methods: () => ({
-      [dartx.getBBox]: dart.definiteFunctionType(svg$.Rect, []),
-      [dartx.getCtm]: dart.definiteFunctionType(svg$.Matrix, []),
-      [dartx.getScreenCtm]: dart.definiteFunctionType(svg$.Matrix, []),
-      [dartx.getTransformToElement]: dart.definiteFunctionType(svg$.Matrix, [svg$.SvgElement]),
-      [dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.SVGGraphicsElement, svg$.GraphicsElement);
-  dart.defineExtensionNames([
-    'target',
-    'href'
-  ]);
-  svg$.AElement = class AElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.AElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("a"));
-    }
-    created() {
-      this[dartx.target] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.target]() {
-      return this.target;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.AElement, 'created');
-  svg$.AElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$.AElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.AElement, []),
-      new: dart.definiteFunctionType(svg$.AElement, []),
-      created: dart.definiteFunctionType(svg$.AElement, [])
-    }),
-    fields: () => ({
-      [dartx.target]: svg$.AnimatedString,
-      [dartx.href]: svg$.AnimatedString
-    })
-  });
-  dart.registerExtension(dart.global.SVGAElement, svg$.AElement);
-  dart.defineExtensionNames([
-    'convertToSpecifiedUnits',
-    'newValueSpecifiedUnits',
-    'unitType',
-    'value',
-    'valueAsString',
-    'valueInSpecifiedUnits'
-  ]);
-  svg$.Angle = class Angle extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.unitType]() {
-      return this.unitType;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.valueAsString]() {
-      return this.valueAsString;
-    }
-    set [dartx.valueAsString](value) {
-      this.valueAsString = value;
-    }
-    get [dartx.valueInSpecifiedUnits]() {
-      return this.valueInSpecifiedUnits;
-    }
-    set [dartx.valueInSpecifiedUnits](value) {
-      this.valueInSpecifiedUnits = value;
-    }
-    [dartx.convertToSpecifiedUnits](...args) {
-      return this.convertToSpecifiedUnits.apply(this, args);
-    }
-    [dartx.newValueSpecifiedUnits](...args) {
-      return this.newValueSpecifiedUnits.apply(this, args);
-    }
-  };
-  dart.setSignature(svg$.Angle, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Angle, [])}),
-    fields: () => ({
-      [dartx.unitType]: core.int,
-      [dartx.value]: core.num,
-      [dartx.valueAsString]: core.String,
-      [dartx.valueInSpecifiedUnits]: core.num
-    }),
-    methods: () => ({
-      [dartx.convertToSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.newValueSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int, core.num])
-    }),
-    sfields: () => ({
-      SVG_ANGLETYPE_DEG: core.int,
-      SVG_ANGLETYPE_GRAD: core.int,
-      SVG_ANGLETYPE_RAD: core.int,
-      SVG_ANGLETYPE_UNKNOWN: core.int,
-      SVG_ANGLETYPE_UNSPECIFIED: core.int
-    })
-  });
-  svg$.Angle.SVG_ANGLETYPE_DEG = 2;
-  svg$.Angle.SVG_ANGLETYPE_GRAD = 4;
-  svg$.Angle.SVG_ANGLETYPE_RAD = 3;
-  svg$.Angle.SVG_ANGLETYPE_UNKNOWN = 0;
-  svg$.Angle.SVG_ANGLETYPE_UNSPECIFIED = 1;
-  dart.registerExtension(dart.global.SVGAngle, svg$.Angle);
-  dart.defineExtensionNames([
-    'beginElement',
-    'beginElementAt',
-    'endElement',
-    'endElementAt',
-    'getCurrentTime',
-    'getSimpleDuration',
-    'getStartTime',
-    'hasExtension',
-    'targetElement',
-    'requiredExtensions',
-    'requiredFeatures',
-    'systemLanguage'
-  ]);
-  svg$.AnimationElement = class AnimationElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.AnimationElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animation"));
-    }
-    created() {
-      this[dartx.targetElement] = null;
-      this[dartx.requiredExtensions] = null;
-      this[dartx.requiredFeatures] = null;
-      this[dartx.systemLanguage] = null;
-      super.created();
-    }
-    get [dartx.targetElement]() {
-      return this.targetElement;
-    }
-    [dartx.beginElement](...args) {
-      return this.beginElement.apply(this, args);
-    }
-    [dartx.beginElementAt](...args) {
-      return this.beginElementAt.apply(this, args);
-    }
-    [dartx.endElement](...args) {
-      return this.endElement.apply(this, args);
-    }
-    [dartx.endElementAt](...args) {
-      return this.endElementAt.apply(this, args);
-    }
-    [dartx.getCurrentTime](...args) {
-      return this.getCurrentTime.apply(this, args);
-    }
-    [dartx.getSimpleDuration](...args) {
-      return this.getSimpleDuration.apply(this, args);
-    }
-    [dartx.getStartTime](...args) {
-      return this.getStartTime.apply(this, args);
-    }
-    get [dartx.requiredExtensions]() {
-      return this.requiredExtensions;
-    }
-    get [dartx.requiredFeatures]() {
-      return this.requiredFeatures;
-    }
-    get [dartx.systemLanguage]() {
-      return this.systemLanguage;
-    }
-    [dartx.hasExtension](...args) {
-      return this.hasExtension.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(svg$.AnimationElement, 'created');
-  svg$.AnimationElement[dart.implements] = () => [svg$.Tests];
-  dart.setSignature(svg$.AnimationElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.AnimationElement, []),
-      new: dart.definiteFunctionType(svg$.AnimationElement, []),
-      created: dart.definiteFunctionType(svg$.AnimationElement, [])
-    }),
-    fields: () => ({
-      [dartx.targetElement]: svg$.SvgElement,
-      [dartx.requiredExtensions]: svg$.StringList,
-      [dartx.requiredFeatures]: svg$.StringList,
-      [dartx.systemLanguage]: svg$.StringList
-    }),
-    methods: () => ({
-      [dartx.beginElement]: dart.definiteFunctionType(dart.void, []),
-      [dartx.beginElementAt]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.endElement]: dart.definiteFunctionType(dart.void, []),
-      [dartx.endElementAt]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.getCurrentTime]: dart.definiteFunctionType(core.double, []),
-      [dartx.getSimpleDuration]: dart.definiteFunctionType(core.double, []),
-      [dartx.getStartTime]: dart.definiteFunctionType(core.double, []),
-      [dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimationElement, svg$.AnimationElement);
-  svg$.AnimateElement = class AnimateElement extends svg$.AnimationElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.AnimateElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animate"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('animate')) && svg$.AnimateElement.is(svg$.SvgElement.tag('animate'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.AnimateElement, 'created');
-  dart.setSignature(svg$.AnimateElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.AnimateElement, []),
-      new: dart.definiteFunctionType(svg$.AnimateElement, []),
-      created: dart.definiteFunctionType(svg$.AnimateElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGAnimateElement, svg$.AnimateElement);
-  svg$.AnimateMotionElement = class AnimateMotionElement extends svg$.AnimationElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.AnimateMotionElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateMotion"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('animateMotion')) && svg$.AnimateMotionElement.is(svg$.SvgElement.tag('animateMotion'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.AnimateMotionElement, 'created');
-  dart.setSignature(svg$.AnimateMotionElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.AnimateMotionElement, []),
-      new: dart.definiteFunctionType(svg$.AnimateMotionElement, []),
-      created: dart.definiteFunctionType(svg$.AnimateMotionElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGAnimateMotionElement, svg$.AnimateMotionElement);
-  svg$.AnimateTransformElement = class AnimateTransformElement extends svg$.AnimationElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.AnimateTransformElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateTransform"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('animateTransform')) && svg$.AnimateTransformElement.is(svg$.SvgElement.tag('animateTransform'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.AnimateTransformElement, 'created');
-  dart.setSignature(svg$.AnimateTransformElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.AnimateTransformElement, []),
-      new: dart.definiteFunctionType(svg$.AnimateTransformElement, []),
-      created: dart.definiteFunctionType(svg$.AnimateTransformElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGAnimateTransformElement, svg$.AnimateTransformElement);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedAngle = class AnimatedAngle extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedAngle, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedAngle, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.Angle,
-      [dartx.baseVal]: svg$.Angle
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedAngle, svg$.AnimatedAngle);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedBoolean = class AnimatedBoolean extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-    set [dartx.baseVal](value) {
-      this.baseVal = value;
-    }
-  };
-  dart.setSignature(svg$.AnimatedBoolean, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedBoolean, [])}),
-    fields: () => ({
-      [dartx.animVal]: core.bool,
-      [dartx.baseVal]: core.bool
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedBoolean, svg$.AnimatedBoolean);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedEnumeration = class AnimatedEnumeration extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-    set [dartx.baseVal](value) {
-      this.baseVal = value;
-    }
-  };
-  dart.setSignature(svg$.AnimatedEnumeration, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedEnumeration, [])}),
-    fields: () => ({
-      [dartx.animVal]: core.int,
-      [dartx.baseVal]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedEnumeration, svg$.AnimatedEnumeration);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedInteger = class AnimatedInteger extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-    set [dartx.baseVal](value) {
-      this.baseVal = value;
-    }
-  };
-  dart.setSignature(svg$.AnimatedInteger, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedInteger, [])}),
-    fields: () => ({
-      [dartx.animVal]: core.int,
-      [dartx.baseVal]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedInteger, svg$.AnimatedInteger);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedLength = class AnimatedLength extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedLength, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedLength, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.Length,
-      [dartx.baseVal]: svg$.Length
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedLength, svg$.AnimatedLength);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedLengthList = class AnimatedLengthList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedLengthList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedLengthList, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.LengthList,
-      [dartx.baseVal]: svg$.LengthList
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedLengthList, svg$.AnimatedLengthList);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedNumber = class AnimatedNumber extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-    set [dartx.baseVal](value) {
-      this.baseVal = value;
-    }
-  };
-  dart.setSignature(svg$.AnimatedNumber, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedNumber, [])}),
-    fields: () => ({
-      [dartx.animVal]: core.double,
-      [dartx.baseVal]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedNumber, svg$.AnimatedNumber);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedNumberList = class AnimatedNumberList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedNumberList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedNumberList, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.NumberList,
-      [dartx.baseVal]: svg$.NumberList
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedNumberList, svg$.AnimatedNumberList);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedPreserveAspectRatio = class AnimatedPreserveAspectRatio extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedPreserveAspectRatio, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedPreserveAspectRatio, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.PreserveAspectRatio,
-      [dartx.baseVal]: svg$.PreserveAspectRatio
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedPreserveAspectRatio, svg$.AnimatedPreserveAspectRatio);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedRect = class AnimatedRect extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedRect, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedRect, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.Rect,
-      [dartx.baseVal]: svg$.Rect
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedRect, svg$.AnimatedRect);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedString = class AnimatedString extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-    set [dartx.baseVal](value) {
-      this.baseVal = value;
-    }
-  };
-  dart.setSignature(svg$.AnimatedString, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedString, [])}),
-    fields: () => ({
-      [dartx.animVal]: core.String,
-      [dartx.baseVal]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedString, svg$.AnimatedString);
-  dart.defineExtensionNames([
-    'animVal',
-    'baseVal'
-  ]);
-  svg$.AnimatedTransformList = class AnimatedTransformList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.animVal]() {
-      return this.animVal;
-    }
-    get [dartx.baseVal]() {
-      return this.baseVal;
-    }
-  };
-  dart.setSignature(svg$.AnimatedTransformList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedTransformList, [])}),
-    fields: () => ({
-      [dartx.animVal]: svg$.TransformList,
-      [dartx.baseVal]: svg$.TransformList
-    })
-  });
-  dart.registerExtension(dart.global.SVGAnimatedTransformList, svg$.AnimatedTransformList);
-  dart.defineExtensionNames([
-    'isPointInFill',
-    'isPointInStroke'
-  ]);
-  svg$.GeometryElement = class GeometryElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-    [dartx.isPointInFill](...args) {
-      return this.isPointInFill.apply(this, args);
-    }
-    [dartx.isPointInStroke](...args) {
-      return this.isPointInStroke.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(svg$.GeometryElement, 'created');
-  dart.setSignature(svg$.GeometryElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.GeometryElement, []),
-      created: dart.definiteFunctionType(svg$.GeometryElement, [])
-    }),
-    methods: () => ({
-      [dartx.isPointInFill]: dart.definiteFunctionType(core.bool, [svg$.Point]),
-      [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [svg$.Point])
-    })
-  });
-  dart.registerExtension(dart.global.SVGGeometryElement, svg$.GeometryElement);
-  dart.defineExtensionNames([
-    'cx',
-    'cy',
-    'r'
-  ]);
-  svg$.CircleElement = class CircleElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.CircleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("circle"));
-    }
-    created() {
-      this[dartx.cx] = null;
-      this[dartx.cy] = null;
-      this[dartx.r] = null;
-      super.created();
-    }
-    get [dartx.cx]() {
-      return this.cx;
-    }
-    get [dartx.cy]() {
-      return this.cy;
-    }
-    get [dartx.r]() {
-      return this.r;
-    }
-  };
-  dart.defineNamedConstructor(svg$.CircleElement, 'created');
-  dart.setSignature(svg$.CircleElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.CircleElement, []),
-      new: dart.definiteFunctionType(svg$.CircleElement, []),
-      created: dart.definiteFunctionType(svg$.CircleElement, [])
-    }),
-    fields: () => ({
-      [dartx.cx]: svg$.AnimatedLength,
-      [dartx.cy]: svg$.AnimatedLength,
-      [dartx.r]: svg$.AnimatedLength
-    })
-  });
-  dart.registerExtension(dart.global.SVGCircleElement, svg$.CircleElement);
-  dart.defineExtensionNames([
-    'clipPathUnits'
-  ]);
-  svg$.ClipPathElement = class ClipPathElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.ClipPathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("clipPath"));
-    }
-    created() {
-      this[dartx.clipPathUnits] = null;
-      super.created();
-    }
-    get [dartx.clipPathUnits]() {
-      return this.clipPathUnits;
-    }
-  };
-  dart.defineNamedConstructor(svg$.ClipPathElement, 'created');
-  dart.setSignature(svg$.ClipPathElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.ClipPathElement, []),
-      new: dart.definiteFunctionType(svg$.ClipPathElement, []),
-      created: dart.definiteFunctionType(svg$.ClipPathElement, [])
-    }),
-    fields: () => ({[dartx.clipPathUnits]: svg$.AnimatedEnumeration})
-  });
-  dart.registerExtension(dart.global.SVGClipPathElement, svg$.ClipPathElement);
-  svg$.DefsElement = class DefsElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.DefsElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("defs"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.DefsElement, 'created');
-  dart.setSignature(svg$.DefsElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.DefsElement, []),
-      new: dart.definiteFunctionType(svg$.DefsElement, []),
-      created: dart.definiteFunctionType(svg$.DefsElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGDefsElement, svg$.DefsElement);
-  svg$.DescElement = class DescElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.DescElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("desc"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.DescElement, 'created');
-  dart.setSignature(svg$.DescElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.DescElement, []),
-      new: dart.definiteFunctionType(svg$.DescElement, []),
-      created: dart.definiteFunctionType(svg$.DescElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGDescElement, svg$.DescElement);
-  svg$.DiscardElement = class DiscardElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.DiscardElement, 'created');
-  dart.setSignature(svg$.DiscardElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.DiscardElement, []),
-      created: dart.definiteFunctionType(svg$.DiscardElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGDiscardElement, svg$.DiscardElement);
-  dart.defineExtensionNames([
-    'cx',
-    'cy',
-    'rx',
-    'ry'
-  ]);
-  svg$.EllipseElement = class EllipseElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.EllipseElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("ellipse"));
-    }
-    created() {
-      this[dartx.cx] = null;
-      this[dartx.cy] = null;
-      this[dartx.rx] = null;
-      this[dartx.ry] = null;
-      super.created();
-    }
-    get [dartx.cx]() {
-      return this.cx;
-    }
-    get [dartx.cy]() {
-      return this.cy;
-    }
-    get [dartx.rx]() {
-      return this.rx;
-    }
-    get [dartx.ry]() {
-      return this.ry;
-    }
-  };
-  dart.defineNamedConstructor(svg$.EllipseElement, 'created');
-  dart.setSignature(svg$.EllipseElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.EllipseElement, []),
-      new: dart.definiteFunctionType(svg$.EllipseElement, []),
-      created: dart.definiteFunctionType(svg$.EllipseElement, [])
-    }),
-    fields: () => ({
-      [dartx.cx]: svg$.AnimatedLength,
-      [dartx.cy]: svg$.AnimatedLength,
-      [dartx.rx]: svg$.AnimatedLength,
-      [dartx.ry]: svg$.AnimatedLength
-    })
-  });
-  dart.registerExtension(dart.global.SVGEllipseElement, svg$.EllipseElement);
-  dart.defineExtensionNames([
-    'in1',
-    'in2',
-    'mode',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEBlendElement = class FEBlendElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEBlendElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feBlend"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.in2] = null;
-      this[dartx.mode] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feBlend')) && svg$.FEBlendElement.is(svg$.SvgElement.tag('feBlend'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.in2]() {
-      return this.in2;
-    }
-    get [dartx.mode]() {
-      return this.mode;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEBlendElement, 'created');
-  svg$.FEBlendElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEBlendElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEBlendElement, []),
-      new: dart.definiteFunctionType(svg$.FEBlendElement, []),
-      created: dart.definiteFunctionType(svg$.FEBlendElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.in2]: svg$.AnimatedString,
-      [dartx.mode]: svg$.AnimatedEnumeration,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_FEBLEND_MODE_DARKEN: core.int,
-      SVG_FEBLEND_MODE_LIGHTEN: core.int,
-      SVG_FEBLEND_MODE_MULTIPLY: core.int,
-      SVG_FEBLEND_MODE_NORMAL: core.int,
-      SVG_FEBLEND_MODE_SCREEN: core.int,
-      SVG_FEBLEND_MODE_UNKNOWN: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  svg$.FEBlendElement.SVG_FEBLEND_MODE_DARKEN = 4;
-  svg$.FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN = 5;
-  svg$.FEBlendElement.SVG_FEBLEND_MODE_MULTIPLY = 2;
-  svg$.FEBlendElement.SVG_FEBLEND_MODE_NORMAL = 1;
-  svg$.FEBlendElement.SVG_FEBLEND_MODE_SCREEN = 3;
-  svg$.FEBlendElement.SVG_FEBLEND_MODE_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGFEBlendElement, svg$.FEBlendElement);
-  dart.defineExtensionNames([
-    'in1',
-    'type',
-    'values',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEColorMatrixElement = class FEColorMatrixElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEColorMatrixElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.type] = null;
-      this[dartx.values] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feColorMatrix')) && svg$.FEColorMatrixElement.is(svg$.SvgElement.tag('feColorMatrix'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.values]() {
-      return this.values;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEColorMatrixElement, 'created');
-  svg$.FEColorMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEColorMatrixElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEColorMatrixElement, []),
-      new: dart.definiteFunctionType(svg$.FEColorMatrixElement, []),
-      created: dart.definiteFunctionType(svg$.FEColorMatrixElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.type]: svg$.AnimatedEnumeration,
-      [dartx.values]: svg$.AnimatedNumberList,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_FECOLORMATRIX_TYPE_HUEROTATE: core.int,
-      SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: core.int,
-      SVG_FECOLORMATRIX_TYPE_MATRIX: core.int,
-      SVG_FECOLORMATRIX_TYPE_SATURATE: core.int,
-      SVG_FECOLORMATRIX_TYPE_UNKNOWN: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
-  svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
-  svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
-  svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
-  svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGFEColorMatrixElement, svg$.FEColorMatrixElement);
-  dart.defineExtensionNames([
-    'in1',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEComponentTransferElement = class FEComponentTransferElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEComponentTransferElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feComponentTransfer')) && svg$.FEComponentTransferElement.is(svg$.SvgElement.tag('feComponentTransfer'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEComponentTransferElement, 'created');
-  svg$.FEComponentTransferElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEComponentTransferElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEComponentTransferElement, []),
-      new: dart.definiteFunctionType(svg$.FEComponentTransferElement, []),
-      created: dart.definiteFunctionType(svg$.FEComponentTransferElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEComponentTransferElement, svg$.FEComponentTransferElement);
-  dart.defineExtensionNames([
-    'in1',
-    'in2',
-    'k1',
-    'k2',
-    'k3',
-    'k4',
-    'operator',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FECompositeElement = class FECompositeElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.in2] = null;
-      this[dartx.k1] = null;
-      this[dartx.k2] = null;
-      this[dartx.k3] = null;
-      this[dartx.k4] = null;
-      this[dartx.operator] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.in2]() {
-      return this.in2;
-    }
-    get [dartx.k1]() {
-      return this.k1;
-    }
-    get [dartx.k2]() {
-      return this.k2;
-    }
-    get [dartx.k3]() {
-      return this.k3;
-    }
-    get [dartx.k4]() {
-      return this.k4;
-    }
-    get [dartx.operator]() {
-      return this.operator;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FECompositeElement, 'created');
-  svg$.FECompositeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FECompositeElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FECompositeElement, []),
-      created: dart.definiteFunctionType(svg$.FECompositeElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.in2]: svg$.AnimatedString,
-      [dartx.k1]: svg$.AnimatedNumber,
-      [dartx.k2]: svg$.AnimatedNumber,
-      [dartx.k3]: svg$.AnimatedNumber,
-      [dartx.k4]: svg$.AnimatedNumber,
-      [dartx.operator]: svg$.AnimatedEnumeration,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: core.int,
-      SVG_FECOMPOSITE_OPERATOR_ATOP: core.int,
-      SVG_FECOMPOSITE_OPERATOR_IN: core.int,
-      SVG_FECOMPOSITE_OPERATOR_OUT: core.int,
-      SVG_FECOMPOSITE_OPERATOR_OVER: core.int,
-      SVG_FECOMPOSITE_OPERATOR_UNKNOWN: core.int,
-      SVG_FECOMPOSITE_OPERATOR_XOR: core.int
-    })
-  });
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN = 2;
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT = 3;
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER = 1;
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
-  svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR = 5;
-  dart.registerExtension(dart.global.SVGFECompositeElement, svg$.FECompositeElement);
-  dart.defineExtensionNames([
-    'bias',
-    'divisor',
-    'edgeMode',
-    'in1',
-    'kernelMatrix',
-    'kernelUnitLengthX',
-    'kernelUnitLengthY',
-    'orderX',
-    'orderY',
-    'preserveAlpha',
-    'targetX',
-    'targetY',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEConvolveMatrixElement = class FEConvolveMatrixElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEConvolveMatrixElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix"));
-    }
-    created() {
-      this[dartx.bias] = null;
-      this[dartx.divisor] = null;
-      this[dartx.edgeMode] = null;
-      this[dartx.in1] = null;
-      this[dartx.kernelMatrix] = null;
-      this[dartx.kernelUnitLengthX] = null;
-      this[dartx.kernelUnitLengthY] = null;
-      this[dartx.orderX] = null;
-      this[dartx.orderY] = null;
-      this[dartx.preserveAlpha] = null;
-      this[dartx.targetX] = null;
-      this[dartx.targetY] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feConvolveMatrix')) && svg$.FEConvolveMatrixElement.is(svg$.SvgElement.tag('feConvolveMatrix'));
-    }
-    get [dartx.bias]() {
-      return this.bias;
-    }
-    get [dartx.divisor]() {
-      return this.divisor;
-    }
-    get [dartx.edgeMode]() {
-      return this.edgeMode;
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.kernelMatrix]() {
-      return this.kernelMatrix;
-    }
-    get [dartx.kernelUnitLengthX]() {
-      return this.kernelUnitLengthX;
-    }
-    get [dartx.kernelUnitLengthY]() {
-      return this.kernelUnitLengthY;
-    }
-    get [dartx.orderX]() {
-      return this.orderX;
-    }
-    get [dartx.orderY]() {
-      return this.orderY;
-    }
-    get [dartx.preserveAlpha]() {
-      return this.preserveAlpha;
-    }
-    get [dartx.targetX]() {
-      return this.targetX;
-    }
-    get [dartx.targetY]() {
-      return this.targetY;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEConvolveMatrixElement, 'created');
-  svg$.FEConvolveMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEConvolveMatrixElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, []),
-      new: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, []),
-      created: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, [])
-    }),
-    fields: () => ({
-      [dartx.bias]: svg$.AnimatedNumber,
-      [dartx.divisor]: svg$.AnimatedNumber,
-      [dartx.edgeMode]: svg$.AnimatedEnumeration,
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.kernelMatrix]: svg$.AnimatedNumberList,
-      [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
-      [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
-      [dartx.orderX]: svg$.AnimatedInteger,
-      [dartx.orderY]: svg$.AnimatedInteger,
-      [dartx.preserveAlpha]: svg$.AnimatedBoolean,
-      [dartx.targetX]: svg$.AnimatedInteger,
-      [dartx.targetY]: svg$.AnimatedInteger,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_EDGEMODE_DUPLICATE: core.int,
-      SVG_EDGEMODE_NONE: core.int,
-      SVG_EDGEMODE_UNKNOWN: core.int,
-      SVG_EDGEMODE_WRAP: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  svg$.FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE = 1;
-  svg$.FEConvolveMatrixElement.SVG_EDGEMODE_NONE = 3;
-  svg$.FEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN = 0;
-  svg$.FEConvolveMatrixElement.SVG_EDGEMODE_WRAP = 2;
-  dart.registerExtension(dart.global.SVGFEConvolveMatrixElement, svg$.FEConvolveMatrixElement);
-  dart.defineExtensionNames([
-    'diffuseConstant',
-    'in1',
-    'kernelUnitLengthX',
-    'kernelUnitLengthY',
-    'surfaceScale',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEDiffuseLightingElement = class FEDiffuseLightingElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEDiffuseLightingElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting"));
-    }
-    created() {
-      this[dartx.diffuseConstant] = null;
-      this[dartx.in1] = null;
-      this[dartx.kernelUnitLengthX] = null;
-      this[dartx.kernelUnitLengthY] = null;
-      this[dartx.surfaceScale] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feDiffuseLighting')) && svg$.FEDiffuseLightingElement.is(svg$.SvgElement.tag('feDiffuseLighting'));
-    }
-    get [dartx.diffuseConstant]() {
-      return this.diffuseConstant;
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.kernelUnitLengthX]() {
-      return this.kernelUnitLengthX;
-    }
-    get [dartx.kernelUnitLengthY]() {
-      return this.kernelUnitLengthY;
-    }
-    get [dartx.surfaceScale]() {
-      return this.surfaceScale;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEDiffuseLightingElement, 'created');
-  svg$.FEDiffuseLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEDiffuseLightingElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, []),
-      new: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, []),
-      created: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, [])
-    }),
-    fields: () => ({
-      [dartx.diffuseConstant]: svg$.AnimatedNumber,
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
-      [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
-      [dartx.surfaceScale]: svg$.AnimatedNumber,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEDiffuseLightingElement, svg$.FEDiffuseLightingElement);
-  dart.defineExtensionNames([
-    'in1',
-    'in2',
-    'scale',
-    'xChannelSelector',
-    'yChannelSelector',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEDisplacementMapElement = class FEDisplacementMapElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEDisplacementMapElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.in2] = null;
-      this[dartx.scale] = null;
-      this[dartx.xChannelSelector] = null;
-      this[dartx.yChannelSelector] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feDisplacementMap')) && svg$.FEDisplacementMapElement.is(svg$.SvgElement.tag('feDisplacementMap'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.in2]() {
-      return this.in2;
-    }
-    get [dartx.scale]() {
-      return this.scale;
-    }
-    get [dartx.xChannelSelector]() {
-      return this.xChannelSelector;
-    }
-    get [dartx.yChannelSelector]() {
-      return this.yChannelSelector;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEDisplacementMapElement, 'created');
-  svg$.FEDisplacementMapElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEDisplacementMapElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEDisplacementMapElement, []),
-      new: dart.definiteFunctionType(svg$.FEDisplacementMapElement, []),
-      created: dart.definiteFunctionType(svg$.FEDisplacementMapElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.in2]: svg$.AnimatedString,
-      [dartx.scale]: svg$.AnimatedNumber,
-      [dartx.xChannelSelector]: svg$.AnimatedEnumeration,
-      [dartx.yChannelSelector]: svg$.AnimatedEnumeration,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_CHANNEL_A: core.int,
-      SVG_CHANNEL_B: core.int,
-      SVG_CHANNEL_G: core.int,
-      SVG_CHANNEL_R: core.int,
-      SVG_CHANNEL_UNKNOWN: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  svg$.FEDisplacementMapElement.SVG_CHANNEL_A = 4;
-  svg$.FEDisplacementMapElement.SVG_CHANNEL_B = 3;
-  svg$.FEDisplacementMapElement.SVG_CHANNEL_G = 2;
-  svg$.FEDisplacementMapElement.SVG_CHANNEL_R = 1;
-  svg$.FEDisplacementMapElement.SVG_CHANNEL_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGFEDisplacementMapElement, svg$.FEDisplacementMapElement);
-  dart.defineExtensionNames([
-    'azimuth',
-    'elevation'
-  ]);
-  svg$.FEDistantLightElement = class FEDistantLightElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEDistantLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDistantLight"));
-    }
-    created() {
-      this[dartx.azimuth] = null;
-      this[dartx.elevation] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feDistantLight')) && svg$.FEDistantLightElement.is(svg$.SvgElement.tag('feDistantLight'));
-    }
-    get [dartx.azimuth]() {
-      return this.azimuth;
-    }
-    get [dartx.elevation]() {
-      return this.elevation;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEDistantLightElement, 'created');
-  dart.setSignature(svg$.FEDistantLightElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEDistantLightElement, []),
-      new: dart.definiteFunctionType(svg$.FEDistantLightElement, []),
-      created: dart.definiteFunctionType(svg$.FEDistantLightElement, [])
-    }),
-    fields: () => ({
-      [dartx.azimuth]: svg$.AnimatedNumber,
-      [dartx.elevation]: svg$.AnimatedNumber
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEDistantLightElement, svg$.FEDistantLightElement);
-  dart.defineExtensionNames([
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEFloodElement = class FEFloodElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEFloodElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFlood"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feFlood')) && svg$.FEFloodElement.is(svg$.SvgElement.tag('feFlood'));
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEFloodElement, 'created');
-  svg$.FEFloodElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEFloodElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEFloodElement, []),
-      new: dart.definiteFunctionType(svg$.FEFloodElement, []),
-      created: dart.definiteFunctionType(svg$.FEFloodElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEFloodElement, svg$.FEFloodElement);
-  svg$._SVGComponentTransferFunctionElement = class _SVGComponentTransferFunctionElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$._SVGComponentTransferFunctionElement, 'created');
-  dart.setSignature(svg$._SVGComponentTransferFunctionElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$._SVGComponentTransferFunctionElement, []),
-      created: dart.definiteFunctionType(svg$._SVGComponentTransferFunctionElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGComponentTransferFunctionElement, svg$._SVGComponentTransferFunctionElement);
-  svg$.FEFuncAElement = class FEFuncAElement extends svg$._SVGComponentTransferFunctionElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEFuncAElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncA"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feFuncA')) && svg$.FEFuncAElement.is(svg$.SvgElement.tag('feFuncA'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEFuncAElement, 'created');
-  dart.setSignature(svg$.FEFuncAElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEFuncAElement, []),
-      new: dart.definiteFunctionType(svg$.FEFuncAElement, []),
-      created: dart.definiteFunctionType(svg$.FEFuncAElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEFuncAElement, svg$.FEFuncAElement);
-  svg$.FEFuncBElement = class FEFuncBElement extends svg$._SVGComponentTransferFunctionElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEFuncBElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncB"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feFuncB')) && svg$.FEFuncBElement.is(svg$.SvgElement.tag('feFuncB'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEFuncBElement, 'created');
-  dart.setSignature(svg$.FEFuncBElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEFuncBElement, []),
-      new: dart.definiteFunctionType(svg$.FEFuncBElement, []),
-      created: dart.definiteFunctionType(svg$.FEFuncBElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEFuncBElement, svg$.FEFuncBElement);
-  svg$.FEFuncGElement = class FEFuncGElement extends svg$._SVGComponentTransferFunctionElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEFuncGElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncG"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feFuncG')) && svg$.FEFuncGElement.is(svg$.SvgElement.tag('feFuncG'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEFuncGElement, 'created');
-  dart.setSignature(svg$.FEFuncGElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEFuncGElement, []),
-      new: dart.definiteFunctionType(svg$.FEFuncGElement, []),
-      created: dart.definiteFunctionType(svg$.FEFuncGElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEFuncGElement, svg$.FEFuncGElement);
-  svg$.FEFuncRElement = class FEFuncRElement extends svg$._SVGComponentTransferFunctionElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEFuncRElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncR"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feFuncR')) && svg$.FEFuncRElement.is(svg$.SvgElement.tag('feFuncR'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEFuncRElement, 'created');
-  dart.setSignature(svg$.FEFuncRElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEFuncRElement, []),
-      new: dart.definiteFunctionType(svg$.FEFuncRElement, []),
-      created: dart.definiteFunctionType(svg$.FEFuncRElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEFuncRElement, svg$.FEFuncRElement);
-  dart.defineExtensionNames([
-    'setStdDeviation',
-    'in1',
-    'stdDeviationX',
-    'stdDeviationY',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEGaussianBlurElement = class FEGaussianBlurElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEGaussianBlurElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.stdDeviationX] = null;
-      this[dartx.stdDeviationY] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feGaussianBlur')) && svg$.FEGaussianBlurElement.is(svg$.SvgElement.tag('feGaussianBlur'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.stdDeviationX]() {
-      return this.stdDeviationX;
-    }
-    get [dartx.stdDeviationY]() {
-      return this.stdDeviationY;
-    }
-    [dartx.setStdDeviation](...args) {
-      return this.setStdDeviation.apply(this, args);
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEGaussianBlurElement, 'created');
-  svg$.FEGaussianBlurElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEGaussianBlurElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEGaussianBlurElement, []),
-      new: dart.definiteFunctionType(svg$.FEGaussianBlurElement, []),
-      created: dart.definiteFunctionType(svg$.FEGaussianBlurElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.stdDeviationX]: svg$.AnimatedNumber,
-      [dartx.stdDeviationY]: svg$.AnimatedNumber,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    methods: () => ({[dartx.setStdDeviation]: dart.definiteFunctionType(dart.void, [core.num, core.num])}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEGaussianBlurElement, svg$.FEGaussianBlurElement);
-  dart.defineExtensionNames([
-    'preserveAspectRatio',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y',
-    'href'
-  ]);
-  svg$.FEImageElement = class FEImageElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEImageElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feImage"));
-    }
-    created() {
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feImage')) && svg$.FEImageElement.is(svg$.SvgElement.tag('feImage'));
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEImageElement, 'created');
-  svg$.FEImageElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes, svg$.UriReference];
-  dart.setSignature(svg$.FEImageElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEImageElement, []),
-      new: dart.definiteFunctionType(svg$.FEImageElement, []),
-      created: dart.definiteFunctionType(svg$.FEImageElement, [])
-    }),
-    fields: () => ({
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.href]: svg$.AnimatedString
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEImageElement, svg$.FEImageElement);
-  dart.defineExtensionNames([
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEMergeElement = class FEMergeElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEMergeElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMerge"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feMerge')) && svg$.FEMergeElement.is(svg$.SvgElement.tag('feMerge'));
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEMergeElement, 'created');
-  svg$.FEMergeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEMergeElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEMergeElement, []),
-      new: dart.definiteFunctionType(svg$.FEMergeElement, []),
-      created: dart.definiteFunctionType(svg$.FEMergeElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEMergeElement, svg$.FEMergeElement);
-  dart.defineExtensionNames([
-    'in1'
-  ]);
-  svg$.FEMergeNodeElement = class FEMergeNodeElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEMergeNodeElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMergeNode"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feMergeNode')) && svg$.FEMergeNodeElement.is(svg$.SvgElement.tag('feMergeNode'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEMergeNodeElement, 'created');
-  dart.setSignature(svg$.FEMergeNodeElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEMergeNodeElement, []),
-      new: dart.definiteFunctionType(svg$.FEMergeNodeElement, []),
-      created: dart.definiteFunctionType(svg$.FEMergeNodeElement, [])
-    }),
-    fields: () => ({[dartx.in1]: svg$.AnimatedString}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEMergeNodeElement, svg$.FEMergeNodeElement);
-  dart.defineExtensionNames([
-    'in1',
-    'operator',
-    'radiusX',
-    'radiusY',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEMorphologyElement = class FEMorphologyElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.operator] = null;
-      this[dartx.radiusX] = null;
-      this[dartx.radiusY] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.operator]() {
-      return this.operator;
-    }
-    get [dartx.radiusX]() {
-      return this.radiusX;
-    }
-    get [dartx.radiusY]() {
-      return this.radiusY;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEMorphologyElement, 'created');
-  svg$.FEMorphologyElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEMorphologyElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEMorphologyElement, []),
-      created: dart.definiteFunctionType(svg$.FEMorphologyElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.operator]: svg$.AnimatedEnumeration,
-      [dartx.radiusX]: svg$.AnimatedNumber,
-      [dartx.radiusY]: svg$.AnimatedNumber,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_MORPHOLOGY_OPERATOR_DILATE: core.int,
-      SVG_MORPHOLOGY_OPERATOR_ERODE: core.int,
-      SVG_MORPHOLOGY_OPERATOR_UNKNOWN: core.int
-    })
-  });
-  svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
-  svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
-  svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGFEMorphologyElement, svg$.FEMorphologyElement);
-  dart.defineExtensionNames([
-    'dx',
-    'dy',
-    'in1',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FEOffsetElement = class FEOffsetElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEOffsetElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feOffset"));
-    }
-    created() {
-      this[dartx.dx] = null;
-      this[dartx.dy] = null;
-      this[dartx.in1] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feOffset')) && svg$.FEOffsetElement.is(svg$.SvgElement.tag('feOffset'));
-    }
-    get [dartx.dx]() {
-      return this.dx;
-    }
-    get [dartx.dy]() {
-      return this.dy;
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEOffsetElement, 'created');
-  svg$.FEOffsetElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FEOffsetElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEOffsetElement, []),
-      new: dart.definiteFunctionType(svg$.FEOffsetElement, []),
-      created: dart.definiteFunctionType(svg$.FEOffsetElement, [])
-    }),
-    fields: () => ({
-      [dartx.dx]: svg$.AnimatedNumber,
-      [dartx.dy]: svg$.AnimatedNumber,
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEOffsetElement, svg$.FEOffsetElement);
-  dart.defineExtensionNames([
-    'x',
-    'y',
-    'z'
-  ]);
-  svg$.FEPointLightElement = class FEPointLightElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FEPointLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("fePointLight"));
-    }
-    created() {
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.z] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('fePointLight')) && svg$.FEPointLightElement.is(svg$.SvgElement.tag('fePointLight'));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.z]() {
-      return this.z;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FEPointLightElement, 'created');
-  dart.setSignature(svg$.FEPointLightElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FEPointLightElement, []),
-      new: dart.definiteFunctionType(svg$.FEPointLightElement, []),
-      created: dart.definiteFunctionType(svg$.FEPointLightElement, [])
-    }),
-    fields: () => ({
-      [dartx.x]: svg$.AnimatedNumber,
-      [dartx.y]: svg$.AnimatedNumber,
-      [dartx.z]: svg$.AnimatedNumber
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFEPointLightElement, svg$.FEPointLightElement);
-  dart.defineExtensionNames([
-    'in1',
-    'kernelUnitLengthX',
-    'kernelUnitLengthY',
-    'specularConstant',
-    'specularExponent',
-    'surfaceScale',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FESpecularLightingElement = class FESpecularLightingElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FESpecularLightingElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.kernelUnitLengthX] = null;
-      this[dartx.kernelUnitLengthY] = null;
-      this[dartx.specularConstant] = null;
-      this[dartx.specularExponent] = null;
-      this[dartx.surfaceScale] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feSpecularLighting')) && svg$.FESpecularLightingElement.is(svg$.SvgElement.tag('feSpecularLighting'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.kernelUnitLengthX]() {
-      return this.kernelUnitLengthX;
-    }
-    get [dartx.kernelUnitLengthY]() {
-      return this.kernelUnitLengthY;
-    }
-    get [dartx.specularConstant]() {
-      return this.specularConstant;
-    }
-    get [dartx.specularExponent]() {
-      return this.specularExponent;
-    }
-    get [dartx.surfaceScale]() {
-      return this.surfaceScale;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FESpecularLightingElement, 'created');
-  svg$.FESpecularLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FESpecularLightingElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FESpecularLightingElement, []),
-      new: dart.definiteFunctionType(svg$.FESpecularLightingElement, []),
-      created: dart.definiteFunctionType(svg$.FESpecularLightingElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
-      [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
-      [dartx.specularConstant]: svg$.AnimatedNumber,
-      [dartx.specularExponent]: svg$.AnimatedNumber,
-      [dartx.surfaceScale]: svg$.AnimatedNumber,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFESpecularLightingElement, svg$.FESpecularLightingElement);
-  dart.defineExtensionNames([
-    'limitingConeAngle',
-    'pointsAtX',
-    'pointsAtY',
-    'pointsAtZ',
-    'specularExponent',
-    'x',
-    'y',
-    'z'
-  ]);
-  svg$.FESpotLightElement = class FESpotLightElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FESpotLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpotLight"));
-    }
-    created() {
-      this[dartx.limitingConeAngle] = null;
-      this[dartx.pointsAtX] = null;
-      this[dartx.pointsAtY] = null;
-      this[dartx.pointsAtZ] = null;
-      this[dartx.specularExponent] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.z] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feSpotLight')) && svg$.FESpotLightElement.is(svg$.SvgElement.tag('feSpotLight'));
-    }
-    get [dartx.limitingConeAngle]() {
-      return this.limitingConeAngle;
-    }
-    get [dartx.pointsAtX]() {
-      return this.pointsAtX;
-    }
-    get [dartx.pointsAtY]() {
-      return this.pointsAtY;
-    }
-    get [dartx.pointsAtZ]() {
-      return this.pointsAtZ;
-    }
-    get [dartx.specularExponent]() {
-      return this.specularExponent;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.z]() {
-      return this.z;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FESpotLightElement, 'created');
-  dart.setSignature(svg$.FESpotLightElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FESpotLightElement, []),
-      new: dart.definiteFunctionType(svg$.FESpotLightElement, []),
-      created: dart.definiteFunctionType(svg$.FESpotLightElement, [])
-    }),
-    fields: () => ({
-      [dartx.limitingConeAngle]: svg$.AnimatedNumber,
-      [dartx.pointsAtX]: svg$.AnimatedNumber,
-      [dartx.pointsAtY]: svg$.AnimatedNumber,
-      [dartx.pointsAtZ]: svg$.AnimatedNumber,
-      [dartx.specularExponent]: svg$.AnimatedNumber,
-      [dartx.x]: svg$.AnimatedNumber,
-      [dartx.y]: svg$.AnimatedNumber,
-      [dartx.z]: svg$.AnimatedNumber
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFESpotLightElement, svg$.FESpotLightElement);
-  dart.defineExtensionNames([
-    'in1',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FETileElement = class FETileElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FETileElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTile"));
-    }
-    created() {
-      this[dartx.in1] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feTile')) && svg$.FETileElement.is(svg$.SvgElement.tag('feTile'));
-    }
-    get [dartx.in1]() {
-      return this.in1;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FETileElement, 'created');
-  svg$.FETileElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FETileElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FETileElement, []),
-      new: dart.definiteFunctionType(svg$.FETileElement, []),
-      created: dart.definiteFunctionType(svg$.FETileElement, [])
-    }),
-    fields: () => ({
-      [dartx.in1]: svg$.AnimatedString,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFETileElement, svg$.FETileElement);
-  dart.defineExtensionNames([
-    'baseFrequencyX',
-    'baseFrequencyY',
-    'numOctaves',
-    'seed',
-    'stitchTiles',
-    'type',
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FETurbulenceElement = class FETurbulenceElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FETurbulenceElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTurbulence"));
-    }
-    created() {
-      this[dartx.baseFrequencyX] = null;
-      this[dartx.baseFrequencyY] = null;
-      this[dartx.numOctaves] = null;
-      this[dartx.seed] = null;
-      this[dartx.stitchTiles] = null;
-      this[dartx.type] = null;
-      this[dartx.height] = null;
-      this[dartx.result] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('feTurbulence')) && svg$.FETurbulenceElement.is(svg$.SvgElement.tag('feTurbulence'));
-    }
-    get [dartx.baseFrequencyX]() {
-      return this.baseFrequencyX;
-    }
-    get [dartx.baseFrequencyY]() {
-      return this.baseFrequencyY;
-    }
-    get [dartx.numOctaves]() {
-      return this.numOctaves;
-    }
-    get [dartx.seed]() {
-      return this.seed;
-    }
-    get [dartx.stitchTiles]() {
-      return this.stitchTiles;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.result]() {
-      return this.result;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FETurbulenceElement, 'created');
-  svg$.FETurbulenceElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$.FETurbulenceElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FETurbulenceElement, []),
-      new: dart.definiteFunctionType(svg$.FETurbulenceElement, []),
-      created: dart.definiteFunctionType(svg$.FETurbulenceElement, [])
-    }),
-    fields: () => ({
-      [dartx.baseFrequencyX]: svg$.AnimatedNumber,
-      [dartx.baseFrequencyY]: svg$.AnimatedNumber,
-      [dartx.numOctaves]: svg$.AnimatedInteger,
-      [dartx.seed]: svg$.AnimatedNumber,
-      [dartx.stitchTiles]: svg$.AnimatedEnumeration,
-      [dartx.type]: svg$.AnimatedEnumeration,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.result]: svg$.AnimatedString,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sfields: () => ({
-      SVG_STITCHTYPE_NOSTITCH: core.int,
-      SVG_STITCHTYPE_STITCH: core.int,
-      SVG_STITCHTYPE_UNKNOWN: core.int,
-      SVG_TURBULENCE_TYPE_FRACTALNOISE: core.int,
-      SVG_TURBULENCE_TYPE_TURBULENCE: core.int,
-      SVG_TURBULENCE_TYPE_UNKNOWN: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  svg$.FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH = 2;
-  svg$.FETurbulenceElement.SVG_STITCHTYPE_STITCH = 1;
-  svg$.FETurbulenceElement.SVG_STITCHTYPE_UNKNOWN = 0;
-  svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
-  svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE = 2;
-  svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGFETurbulenceElement, svg$.FETurbulenceElement);
-  dart.defineExtensionNames([
-    'filterUnits',
-    'height',
-    'primitiveUnits',
-    'width',
-    'x',
-    'y',
-    'href'
-  ]);
-  svg$.FilterElement = class FilterElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.FilterElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("filter"));
-    }
-    created() {
-      this[dartx.filterUnits] = null;
-      this[dartx.height] = null;
-      this[dartx.primitiveUnits] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('filter')) && svg$.FilterElement.is(svg$.SvgElement.tag('filter'));
-    }
-    get [dartx.filterUnits]() {
-      return this.filterUnits;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.primitiveUnits]() {
-      return this.primitiveUnits;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.FilterElement, 'created');
-  svg$.FilterElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$.FilterElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.FilterElement, []),
-      new: dart.definiteFunctionType(svg$.FilterElement, []),
-      created: dart.definiteFunctionType(svg$.FilterElement, [])
-    }),
-    fields: () => ({
-      [dartx.filterUnits]: svg$.AnimatedEnumeration,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.primitiveUnits]: svg$.AnimatedEnumeration,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.href]: svg$.AnimatedString
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGFilterElement, svg$.FilterElement);
-  dart.defineExtensionNames([
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.FilterPrimitiveStandardAttributes = class FilterPrimitiveStandardAttributes extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get height() {
-      return this[height$];
-    }
-    set height(value) {
-      super.height = value;
-    }
-    get result() {
-      return this[result];
-    }
-    set result(value) {
-      super.result = value;
+    set top(value) {
+      super.top = value;
     }
     get width() {
       return this[width$];
@@ -103032,7690 +53760,56963 @@
     set width(value) {
       super.width = value;
     }
-    get x() {
-      return this[x];
+    get height() {
+      return this[height$];
     }
-    set x(value) {
-      super.x = value;
+    set height(value) {
+      super.height = value;
     }
-    get y() {
-      return this[y];
+    new(left, top, width, height) {
+      this[left$] = left;
+      this[top$] = top;
+      this[width$] = dart.notNull(width) < 0 ? -dart.notNull(width) * 0 : width;
+      this[height$] = dart.notNull(height) < 0 ? -dart.notNull(height) * 0 : height;
+      super.new();
     }
-    set y(value) {
-      super.y = value;
+    static fromPoints(a, b) {
+      let left = math.min(T)(a.x, b.x);
+      let width = dart.notNull(math.max(T)(a.x, b.x)) - dart.notNull(left);
+      let top = math.min(T)(a.y, b.y);
+      let height = dart.notNull(math.max(T)(a.y, b.y)) - dart.notNull(top);
+      return new (RectangleOfT())(left, top, width, height);
     }
-  };
-  const height$ = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'height'.toString());
-  const result = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'result'.toString());
-  const width$ = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'width'.toString());
-  const x = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'x'.toString());
-  const y = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'y'.toString());
-  dart.setSignature(svg$.FilterPrimitiveStandardAttributes, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.FilterPrimitiveStandardAttributes, [])}),
-    fields: () => ({
-      height: svg$.AnimatedLength,
-      result: svg$.AnimatedString,
-      width: svg$.AnimatedLength,
-      x: svg$.AnimatedLength,
-      y: svg$.AnimatedLength
-    })
-  });
-  dart.defineExtensionMembers(svg$.FilterPrimitiveStandardAttributes, [
-    'height',
-    'result',
-    'width',
-    'x',
-    'y'
-  ]);
-  dart.defineExtensionNames([
-    'preserveAspectRatio',
-    'viewBox'
-  ]);
-  svg$.FitToViewBox = class FitToViewBox extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get preserveAspectRatio() {
-      return this[preserveAspectRatio];
-    }
-    set preserveAspectRatio(value) {
-      super.preserveAspectRatio = value;
-    }
-    get viewBox() {
-      return this[viewBox];
-    }
-    set viewBox(value) {
-      super.viewBox = value;
-    }
-  };
-  const preserveAspectRatio = Symbol(svg$.FitToViewBox.name + "." + 'preserveAspectRatio'.toString());
-  const viewBox = Symbol(svg$.FitToViewBox.name + "." + 'viewBox'.toString());
-  dart.setSignature(svg$.FitToViewBox, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.FitToViewBox, [])}),
-    fields: () => ({
-      preserveAspectRatio: svg$.AnimatedPreserveAspectRatio,
-      viewBox: svg$.AnimatedRect
-    })
-  });
-  dart.defineExtensionMembers(svg$.FitToViewBox, ['preserveAspectRatio', 'viewBox']);
-  dart.defineExtensionNames([
-    'height',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.ForeignObjectElement = class ForeignObjectElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.ForeignObjectElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("foreignObject"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('foreignObject')) && svg$.ForeignObjectElement.is(svg$.SvgElement.tag('foreignObject'));
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.ForeignObjectElement, 'created');
-  dart.setSignature(svg$.ForeignObjectElement, {
+  }
+  const left$ = Symbol(Rectangle.name + "." + 'left'.toString());
+  const top$ = Symbol(Rectangle.name + "." + 'top'.toString());
+  const width$ = Symbol(Rectangle.name + "." + 'width'.toString());
+  const height$ = Symbol(Rectangle.name + "." + 'height'.toString());
+  dart.setSignature(Rectangle, {
     constructors: () => ({
-      _: dart.definiteFunctionType(svg$.ForeignObjectElement, []),
-      new: dart.definiteFunctionType(svg$.ForeignObjectElement, []),
-      created: dart.definiteFunctionType(svg$.ForeignObjectElement, [])
+      new: dart.definiteFunctionType(math.Rectangle$(T), [T, T, T, T]),
+      fromPoints: dart.definiteFunctionType(math.Rectangle$(T), [PointOfT(), PointOfT()])
     }),
     fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+      left: T,
+      top: T,
+      width: T,
+      height: T
+    })
   });
-  dart.registerExtension(dart.global.SVGForeignObjectElement, svg$.ForeignObjectElement);
-  svg$.GElement = class GElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
+  dart.defineExtensionMembers(Rectangle, ['left', 'top', 'width', 'height']);
+  return Rectangle;
+});
+math.Rectangle = Rectangle();
+const _width = Symbol('_width');
+const _height = Symbol('_height');
+math.MutableRectangle$ = dart.generic(T => {
+  let MutableRectangleOfT = () => (MutableRectangleOfT = dart.constFn(math.MutableRectangle$(T)))();
+  let RectangleOfT = () => (RectangleOfT = dart.constFn(math.Rectangle$(T)))();
+  let PointOfT = () => (PointOfT = dart.constFn(math.Point$(T)))();
+  class MutableRectangle extends math._RectangleBase$(T) {
+    get left() {
+      return this[left$];
     }
-    static new() {
-      return svg$.GElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("g"));
+    set left(value) {
+      this[left$] = value;
     }
-    created() {
-      super.created();
+    get top() {
+      return this[top$];
     }
-  };
-  dart.defineNamedConstructor(svg$.GElement, 'created');
-  dart.setSignature(svg$.GElement, {
+    set top(value) {
+      this[top$] = value;
+    }
+    new(left, top, width, height) {
+      this[left$] = left;
+      this[top$] = top;
+      this[_width] = dart.notNull(width) < 0 ? math._clampToZero(T)(width) : width;
+      this[_height] = dart.notNull(height) < 0 ? math._clampToZero(T)(height) : height;
+      super.new();
+    }
+    static fromPoints(a, b) {
+      let left = math.min(T)(a.x, b.x);
+      let width = dart.notNull(math.max(T)(a.x, b.x)) - dart.notNull(left);
+      let top = math.min(T)(a.y, b.y);
+      let height = dart.notNull(math.max(T)(a.y, b.y)) - dart.notNull(top);
+      return new (MutableRectangleOfT())(left, top, width, height);
+    }
+    get width() {
+      return this[_width];
+    }
+    set width(width) {
+      T._check(width);
+      if (dart.notNull(width) < 0) width = math._clampToZero(T)(width);
+      this[_width] = width;
+    }
+    get height() {
+      return this[_height];
+    }
+    set height(height) {
+      T._check(height);
+      if (dart.notNull(height) < 0) height = math._clampToZero(T)(height);
+      this[_height] = height;
+    }
+  }
+  const left$ = Symbol(MutableRectangle.name + "." + 'left'.toString());
+  const top$ = Symbol(MutableRectangle.name + "." + 'top'.toString());
+  MutableRectangle[dart.implements] = () => [RectangleOfT()];
+  dart.setSignature(MutableRectangle, {
     constructors: () => ({
-      _: dart.definiteFunctionType(svg$.GElement, []),
-      new: dart.definiteFunctionType(svg$.GElement, []),
-      created: dart.definiteFunctionType(svg$.GElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGGElement, svg$.GElement);
-  dart.defineExtensionNames([
-    'height',
-    'preserveAspectRatio',
-    'width',
-    'x',
-    'y',
-    'href'
-  ]);
-  svg$.ImageElement = class ImageElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.ImageElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("image"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.ImageElement, 'created');
-  svg$.ImageElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$.ImageElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.ImageElement, []),
-      new: dart.definiteFunctionType(svg$.ImageElement, []),
-      created: dart.definiteFunctionType(svg$.ImageElement, [])
+      new: dart.definiteFunctionType(math.MutableRectangle$(T), [T, T, T, T]),
+      fromPoints: dart.definiteFunctionType(math.MutableRectangle$(T), [PointOfT(), PointOfT()])
     }),
     fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.href]: svg$.AnimatedString
+      left: T,
+      top: T,
+      [_width]: T,
+      [_height]: T
+    }),
+    getters: () => ({
+      width: dart.definiteFunctionType(T, []),
+      height: dart.definiteFunctionType(T, [])
+    }),
+    setters: () => ({
+      width: dart.definiteFunctionType(dart.void, [T]),
+      height: dart.definiteFunctionType(dart.void, [T])
     })
   });
-  dart.registerExtension(dart.global.SVGImageElement, svg$.ImageElement);
-  dart.defineExtensionNames([
-    'convertToSpecifiedUnits',
-    'newValueSpecifiedUnits',
-    'unitType',
-    'value',
-    'valueAsString',
-    'valueInSpecifiedUnits'
-  ]);
-  svg$.Length = class Length extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.unitType]() {
-      return this.unitType;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    get [dartx.valueAsString]() {
-      return this.valueAsString;
-    }
-    set [dartx.valueAsString](value) {
-      this.valueAsString = value;
-    }
-    get [dartx.valueInSpecifiedUnits]() {
-      return this.valueInSpecifiedUnits;
-    }
-    set [dartx.valueInSpecifiedUnits](value) {
-      this.valueInSpecifiedUnits = value;
-    }
-    [dartx.convertToSpecifiedUnits](...args) {
-      return this.convertToSpecifiedUnits.apply(this, args);
-    }
-    [dartx.newValueSpecifiedUnits](...args) {
-      return this.newValueSpecifiedUnits.apply(this, args);
-    }
+  dart.defineExtensionMembers(MutableRectangle, ['left', 'top', 'width', 'height']);
+  return MutableRectangle;
+});
+math.MutableRectangle = MutableRectangle();
+math._clampToZero = function(T) {
+  return value => {
+    dart.assert(dart.notNull(value) < 0);
+    return -dart.notNull(value) * 0;
   };
-  dart.setSignature(svg$.Length, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Length, [])}),
-    fields: () => ({
-      [dartx.unitType]: core.int,
-      [dartx.value]: core.num,
-      [dartx.valueAsString]: core.String,
-      [dartx.valueInSpecifiedUnits]: core.num
-    }),
-    methods: () => ({
-      [dartx.convertToSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.newValueSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int, core.num])
-    }),
-    sfields: () => ({
-      SVG_LENGTHTYPE_CM: core.int,
-      SVG_LENGTHTYPE_EMS: core.int,
-      SVG_LENGTHTYPE_EXS: core.int,
-      SVG_LENGTHTYPE_IN: core.int,
-      SVG_LENGTHTYPE_MM: core.int,
-      SVG_LENGTHTYPE_NUMBER: core.int,
-      SVG_LENGTHTYPE_PC: core.int,
-      SVG_LENGTHTYPE_PERCENTAGE: core.int,
-      SVG_LENGTHTYPE_PT: core.int,
-      SVG_LENGTHTYPE_PX: core.int,
-      SVG_LENGTHTYPE_UNKNOWN: core.int
-    })
-  });
-  svg$.Length.SVG_LENGTHTYPE_CM = 6;
-  svg$.Length.SVG_LENGTHTYPE_EMS = 3;
-  svg$.Length.SVG_LENGTHTYPE_EXS = 4;
-  svg$.Length.SVG_LENGTHTYPE_IN = 8;
-  svg$.Length.SVG_LENGTHTYPE_MM = 7;
-  svg$.Length.SVG_LENGTHTYPE_NUMBER = 1;
-  svg$.Length.SVG_LENGTHTYPE_PC = 10;
-  svg$.Length.SVG_LENGTHTYPE_PERCENTAGE = 2;
-  svg$.Length.SVG_LENGTHTYPE_PT = 9;
-  svg$.Length.SVG_LENGTHTYPE_PX = 5;
-  svg$.Length.SVG_LENGTHTYPE_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGLength, svg$.Length);
-  const __setter__$ = Symbol('__setter__');
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'appendItem',
-    'clear',
-    'getItem',
-    'initialize',
-    'insertItemBefore',
-    'removeItem',
-    'replaceItem',
-    'numberOfItems'
-  ]);
-  svg$.LengthList = class LengthList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Length), html$.ImmutableListMixin$(svg$.Length)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfItems]() {
-      return this.numberOfItems;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.getItem](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
+};
+dart.fn(math._clampToZero, TToT());
+mirrors.MirrorSystem = class MirrorSystem extends core.Object {
+  findLibrary(libraryName) {
+    return this.libraries[dartx.values][dartx.singleWhere](dart.fn(library => dart.equals(library.simpleName, libraryName), LibraryMirrorTobool()));
+  }
+  static getName(symbol) {
+    return _js_mirrors.getName(symbol);
+  }
+  static getSymbol(name, library) {
+    if (library === void 0) library = null;
+    return _js_mirrors.getSymbol(name, library);
+  }
+};
+dart.setSignature(mirrors.MirrorSystem, {
+  methods: () => ({findLibrary: dart.definiteFunctionType(mirrors.LibraryMirror, [core.Symbol])}),
+  statics: () => ({
+    getName: dart.definiteFunctionType(core.String, [core.Symbol]),
+    getSymbol: dart.definiteFunctionType(core.Symbol, [core.String], [mirrors.LibraryMirror])
+  }),
+  names: ['getName', 'getSymbol']
+});
+mirrors.currentMirrorSystem = function() {
+  return mirrors.MirrorSystem._check(_js_mirrors.currentJsMirrorSystem);
+};
+dart.fn(mirrors.currentMirrorSystem, VoidToMirrorSystem());
+mirrors.reflect = function(reflectee) {
+  return _js_mirrors.reflect(reflectee);
+};
+dart.lazyFn(mirrors.reflect, () => ObjectToInstanceMirror());
+mirrors.reflectClass = function(key) {
+  if (!core.Type.is(key) || dart.equals(key, dart.wrapType(dart.dynamic))) {
+    dart.throw(new core.ArgumentError(dart.str`${key} does not denote a class`));
+  }
+  let tm = mirrors.reflectType(key);
+  if (!mirrors.ClassMirror.is(tm)) {
+    dart.throw(new core.ArgumentError(dart.str`${key} does not denote a class`));
+  }
+  return mirrors.ClassMirror._check(mirrors.ClassMirror.as(tm).originalDeclaration);
+};
+dart.lazyFn(mirrors.reflectClass, () => TypeToClassMirror());
+mirrors.reflectType = function(key) {
+  if (dart.equals(key, dart.wrapType(dart.dynamic))) {
+    return mirrors.currentMirrorSystem().dynamicType;
+  }
+  return _js_mirrors.reflectType(key);
+};
+dart.lazyFn(mirrors.reflectType, () => TypeToTypeMirror());
+mirrors.Mirror = class Mirror extends core.Object {};
+mirrors.IsolateMirror = class IsolateMirror extends core.Object {};
+mirrors.IsolateMirror[dart.implements] = () => [mirrors.Mirror];
+mirrors.DeclarationMirror = class DeclarationMirror extends core.Object {};
+mirrors.DeclarationMirror[dart.implements] = () => [mirrors.Mirror];
+mirrors.ObjectMirror = class ObjectMirror extends core.Object {};
+mirrors.ObjectMirror[dart.implements] = () => [mirrors.Mirror];
+mirrors.InstanceMirror = class InstanceMirror extends core.Object {};
+mirrors.InstanceMirror[dart.implements] = () => [mirrors.ObjectMirror];
+mirrors.ClosureMirror = class ClosureMirror extends core.Object {};
+mirrors.ClosureMirror[dart.implements] = () => [mirrors.InstanceMirror];
+mirrors.LibraryMirror = class LibraryMirror extends core.Object {};
+mirrors.LibraryMirror[dart.implements] = () => [mirrors.DeclarationMirror, mirrors.ObjectMirror];
+mirrors.LibraryDependencyMirror = class LibraryDependencyMirror extends core.Object {};
+mirrors.LibraryDependencyMirror[dart.implements] = () => [mirrors.Mirror];
+mirrors.CombinatorMirror = class CombinatorMirror extends core.Object {};
+mirrors.CombinatorMirror[dart.implements] = () => [mirrors.Mirror];
+mirrors.TypeMirror = class TypeMirror extends core.Object {};
+mirrors.TypeMirror[dart.implements] = () => [mirrors.DeclarationMirror];
+mirrors.ClassMirror = class ClassMirror extends core.Object {};
+mirrors.ClassMirror[dart.implements] = () => [mirrors.TypeMirror, mirrors.ObjectMirror];
+mirrors.FunctionTypeMirror = class FunctionTypeMirror extends core.Object {};
+mirrors.FunctionTypeMirror[dart.implements] = () => [mirrors.ClassMirror];
+mirrors.TypeVariableMirror = class TypeVariableMirror extends mirrors.TypeMirror {};
+mirrors.TypedefMirror = class TypedefMirror extends core.Object {};
+mirrors.TypedefMirror[dart.implements] = () => [mirrors.TypeMirror];
+mirrors.MethodMirror = class MethodMirror extends core.Object {};
+mirrors.MethodMirror[dart.implements] = () => [mirrors.DeclarationMirror];
+mirrors.VariableMirror = class VariableMirror extends core.Object {};
+mirrors.VariableMirror[dart.implements] = () => [mirrors.DeclarationMirror];
+mirrors.ParameterMirror = class ParameterMirror extends core.Object {};
+mirrors.ParameterMirror[dart.implements] = () => [mirrors.VariableMirror];
+mirrors.SourceLocation = class SourceLocation extends core.Object {};
+mirrors.Comment = class Comment extends core.Object {
+  new(text, trimmedText, isDocComment) {
+    this.text = text;
+    this.trimmedText = trimmedText;
+    this.isDocComment = isDocComment;
+  }
+};
+dart.setSignature(mirrors.Comment, {
+  constructors: () => ({new: dart.definiteFunctionType(mirrors.Comment, [core.String, core.String, core.bool])}),
+  fields: () => ({
+    text: core.String,
+    trimmedText: core.String,
+    isDocComment: core.bool
+  })
+});
+mirrors.MirrorsUsed = class MirrorsUsed extends core.Object {
+  new(opts) {
+    let symbols = opts && 'symbols' in opts ? opts.symbols : null;
+    let targets = opts && 'targets' in opts ? opts.targets : null;
+    let metaTargets = opts && 'metaTargets' in opts ? opts.metaTargets : null;
+    let override = opts && 'override' in opts ? opts.override : null;
+    this.symbols = symbols;
+    this.targets = targets;
+    this.metaTargets = metaTargets;
+    this.override = override;
+  }
+};
+dart.setSignature(mirrors.MirrorsUsed, {
+  constructors: () => ({new: dart.definiteFunctionType(mirrors.MirrorsUsed, [], {symbols: dart.dynamic, targets: dart.dynamic, metaTargets: dart.dynamic, override: dart.dynamic})}),
+  fields: () => ({
+    symbols: dart.dynamic,
+    targets: dart.dynamic,
+    metaTargets: dart.dynamic,
+    override: dart.dynamic
+  })
+});
+typed_data.ByteBuffer = class ByteBuffer extends core.Object {};
+typed_data.TypedData = class TypedData extends core.Object {};
+const _littleEndian = Symbol('_littleEndian');
+typed_data.Endianness = class Endianness extends core.Object {
+  _(littleEndian) {
+    this[_littleEndian] = littleEndian;
+  }
+};
+dart.defineNamedConstructor(typed_data.Endianness, '_');
+dart.setSignature(typed_data.Endianness, {
+  constructors: () => ({_: dart.definiteFunctionType(typed_data.Endianness, [core.bool])}),
+  fields: () => ({[_littleEndian]: core.bool}),
+  sfields: () => ({
+    BIG_ENDIAN: typed_data.Endianness,
+    LITTLE_ENDIAN: typed_data.Endianness,
+    HOST_ENDIAN: typed_data.Endianness
+  })
+});
+dart.defineLazy(typed_data.Endianness, {
+  get BIG_ENDIAN() {
+    return dart.const(new typed_data.Endianness._(false));
+  },
+  get LITTLE_ENDIAN() {
+    return dart.const(new typed_data.Endianness._(true));
+  },
+  get HOST_ENDIAN() {
+    return typed_data.ByteData.view(typed_data.Uint16List.fromList(JSArrayOfint().of([1]))[dartx.buffer])[dartx.getInt8](0) == 1 ? typed_data.Endianness.LITTLE_ENDIAN : typed_data.Endianness.BIG_ENDIAN;
+  }
+});
+typed_data.ByteData = class ByteData extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeByteData.new(length);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asByteData](offsetInBytes, length);
+  }
+};
+typed_data.ByteData[dart.implements] = () => [typed_data.TypedData];
+dart.setSignature(typed_data.ByteData, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.ByteData, [core.int]),
+    view: dart.definiteFunctionType(typed_data.ByteData, [typed_data.ByteBuffer], [core.int, core.int])
+  })
+});
+typed_data.Int8List = class Int8List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeInt8List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt8List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asInt8List](offsetInBytes, length);
+  }
+};
+typed_data.Int8List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Int8List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Int8List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Int8List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Int8List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Int8List.BYTES_PER_ELEMENT = 1;
+typed_data.Uint8List = class Uint8List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeUint8List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint8List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asUint8List](offsetInBytes, length);
+  }
+};
+typed_data.Uint8List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Uint8List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Uint8List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Uint8List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Uint8List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Uint8List.BYTES_PER_ELEMENT = 1;
+typed_data.Uint8ClampedList = class Uint8ClampedList extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeUint8ClampedList.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint8ClampedList.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asUint8ClampedList](offsetInBytes, length);
+  }
+};
+typed_data.Uint8ClampedList[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Uint8ClampedList, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Uint8ClampedList, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Uint8ClampedList, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Uint8ClampedList, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Uint8ClampedList.BYTES_PER_ELEMENT = 1;
+typed_data.Int16List = class Int16List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeInt16List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt16List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asInt16List](offsetInBytes, length);
+  }
+};
+typed_data.Int16List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Int16List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Int16List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Int16List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Int16List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Int16List.BYTES_PER_ELEMENT = 2;
+typed_data.Uint16List = class Uint16List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeUint16List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint16List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asUint16List](offsetInBytes, length);
+  }
+};
+typed_data.Uint16List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Uint16List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Uint16List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Uint16List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Uint16List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Uint16List.BYTES_PER_ELEMENT = 2;
+typed_data.Int32List = class Int32List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeInt32List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt32List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asInt32List](offsetInBytes, length);
+  }
+};
+typed_data.Int32List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Int32List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Int32List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Int32List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Int32List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Int32List.BYTES_PER_ELEMENT = 4;
+typed_data.Uint32List = class Uint32List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeUint32List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeUint32List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asUint32List](offsetInBytes, length);
+  }
+};
+typed_data.Uint32List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Uint32List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Uint32List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Uint32List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Uint32List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Uint32List.BYTES_PER_ELEMENT = 4;
+typed_data.Int64List = class Int64List extends core.Object {
+  static new(length) {
+    dart.throw(new core.UnsupportedError("Int64List not supported by dart2js."));
+  }
+  static fromList(elements) {
+    dart.throw(new core.UnsupportedError("Int64List not supported by dart2js."));
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asInt64List](offsetInBytes, length);
+  }
+};
+typed_data.Int64List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Int64List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Int64List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Int64List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Int64List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Int64List.BYTES_PER_ELEMENT = 8;
+typed_data.Uint64List = class Uint64List extends core.Object {
+  static new(length) {
+    dart.throw(new core.UnsupportedError("Uint64List not supported by dart2js."));
+  }
+  static fromList(elements) {
+    dart.throw(new core.UnsupportedError("Uint64List not supported by dart2js."));
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asUint64List](offsetInBytes, length);
+  }
+};
+typed_data.Uint64List[dart.implements] = () => [ListOfint(), typed_data.TypedData];
+dart.setSignature(typed_data.Uint64List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Uint64List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Uint64List, [ListOfint()]),
+    view: dart.definiteFunctionType(typed_data.Uint64List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Uint64List.BYTES_PER_ELEMENT = 8;
+typed_data.Float32List = class Float32List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeFloat32List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeFloat32List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asFloat32List](offsetInBytes, length);
+  }
+};
+typed_data.Float32List[dart.implements] = () => [ListOfdouble(), typed_data.TypedData];
+dart.setSignature(typed_data.Float32List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Float32List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Float32List, [ListOfdouble()]),
+    view: dart.definiteFunctionType(typed_data.Float32List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Float32List.BYTES_PER_ELEMENT = 4;
+typed_data.Float64List = class Float64List extends core.Object {
+  static new(length) {
+    return _native_typed_data.NativeFloat64List.new(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeFloat64List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asFloat64List](offsetInBytes, length);
+  }
+};
+typed_data.Float64List[dart.implements] = () => [ListOfdouble(), typed_data.TypedData];
+dart.setSignature(typed_data.Float64List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Float64List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Float64List, [ListOfdouble()]),
+    view: dart.definiteFunctionType(typed_data.Float64List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Float64List.BYTES_PER_ELEMENT = 8;
+typed_data.Float32x4List = class Float32x4List extends core.Object {
+  static new(length) {
+    return new _native_typed_data.NativeFloat32x4List(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeFloat32x4List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asFloat32x4List](offsetInBytes, length);
+  }
+};
+typed_data.Float32x4List[dart.implements] = () => [ListOfFloat32x4(), typed_data.TypedData];
+dart.setSignature(typed_data.Float32x4List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Float32x4List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Float32x4List, [ListOfFloat32x4()]),
+    view: dart.definiteFunctionType(typed_data.Float32x4List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Float32x4List.BYTES_PER_ELEMENT = 16;
+typed_data.Int32x4List = class Int32x4List extends core.Object {
+  static new(length) {
+    return new _native_typed_data.NativeInt32x4List(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeInt32x4List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asInt32x4List](offsetInBytes, length);
+  }
+};
+typed_data.Int32x4List[dart.implements] = () => [ListOfInt32x4(), typed_data.TypedData];
+dart.setSignature(typed_data.Int32x4List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Int32x4List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Int32x4List, [ListOfInt32x4()]),
+    view: dart.definiteFunctionType(typed_data.Int32x4List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Int32x4List.BYTES_PER_ELEMENT = 16;
+typed_data.Float64x2List = class Float64x2List extends core.Object {
+  static new(length) {
+    return new _native_typed_data.NativeFloat64x2List(length);
+  }
+  static fromList(elements) {
+    return _native_typed_data.NativeFloat64x2List.fromList(elements);
+  }
+  static view(buffer, offsetInBytes, length) {
+    if (offsetInBytes === void 0) offsetInBytes = 0;
+    if (length === void 0) length = null;
+    return buffer[dartx.asFloat64x2List](offsetInBytes, length);
+  }
+};
+typed_data.Float64x2List[dart.implements] = () => [ListOfFloat64x2(), typed_data.TypedData];
+dart.setSignature(typed_data.Float64x2List, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(typed_data.Float64x2List, [core.int]),
+    fromList: dart.definiteFunctionType(typed_data.Float64x2List, [ListOfFloat64x2()]),
+    view: dart.definiteFunctionType(typed_data.Float64x2List, [typed_data.ByteBuffer], [core.int, core.int])
+  }),
+  sfields: () => ({BYTES_PER_ELEMENT: core.int})
+});
+typed_data.Float64x2List.BYTES_PER_ELEMENT = 16;
+indexed_db._KeyRangeFactoryProvider = class _KeyRangeFactoryProvider extends core.Object {
+  static createKeyRange_only(value) {
+    return indexed_db._KeyRangeFactoryProvider._only(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(value));
+  }
+  static createKeyRange_lowerBound(bound, open) {
+    if (open === void 0) open = false;
+    return indexed_db._KeyRangeFactoryProvider._lowerBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
+  }
+  static createKeyRange_upperBound(bound, open) {
+    if (open === void 0) open = false;
+    return indexed_db._KeyRangeFactoryProvider._upperBound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(bound), open);
+  }
+  static createKeyRange_bound(lower, upper, lowerOpen, upperOpen) {
+    if (lowerOpen === void 0) lowerOpen = false;
+    if (upperOpen === void 0) upperOpen = false;
+    return indexed_db._KeyRangeFactoryProvider._bound(indexed_db._KeyRangeFactoryProvider._class(), indexed_db._KeyRangeFactoryProvider._translateKey(lower), indexed_db._KeyRangeFactoryProvider._translateKey(upper), lowerOpen, upperOpen);
+  }
+  static _class() {
+    if (indexed_db._KeyRangeFactoryProvider._cachedClass != null) return indexed_db._KeyRangeFactoryProvider._cachedClass;
+    return indexed_db._KeyRangeFactoryProvider._cachedClass = indexed_db._KeyRangeFactoryProvider._uncachedClass();
+  }
+  static _uncachedClass() {
+    return window.webkitIDBKeyRange || window.mozIDBKeyRange || window.msIDBKeyRange || window.IDBKeyRange;
+  }
+  static _translateKey(idbkey) {
+    return idbkey;
+  }
+  static _only(cls, value) {
+    return cls.only(value);
+  }
+  static _lowerBound(cls, bound, open) {
+    return cls.lowerBound(bound, open);
+  }
+  static _upperBound(cls, bound, open) {
+    return cls.upperBound(bound, open);
+  }
+  static _bound(cls, lower, upper, lowerOpen, upperOpen) {
+    return cls.bound(lower, upper, lowerOpen, upperOpen);
+  }
+};
+dart.setSignature(indexed_db._KeyRangeFactoryProvider, {
+  sfields: () => ({_cachedClass: dart.dynamic}),
+  statics: () => ({
+    createKeyRange_only: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic]),
+    createKeyRange_lowerBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
+    createKeyRange_upperBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
+    createKeyRange_bound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic], [core.bool, core.bool]),
+    _class: dart.definiteFunctionType(dart.dynamic, []),
+    _uncachedClass: dart.definiteFunctionType(dart.dynamic, []),
+    _translateKey: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _only: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic]),
+    _lowerBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _upperBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _bound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['createKeyRange_only', 'createKeyRange_lowerBound', 'createKeyRange_upperBound', 'createKeyRange_bound', '_class', '_uncachedClass', '_translateKey', '_only', '_lowerBound', '_upperBound', '_bound']
+});
+indexed_db._KeyRangeFactoryProvider._cachedClass = null;
+indexed_db._convertNativeToDart_IDBKey = function(nativeKey) {
+  function containsDate(object) {
+    if (dart.test(html_common.isJavaScriptDate(object))) return true;
+    if (core.List.is(object)) {
+      for (let i = 0; i < dart.notNull(object[dartx.length]); i++) {
+        if (dart.test(containsDate(object[dartx._get](i)))) return true;
       }
-      dart.throw(new core.StateError("No elements"));
     }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
+    return false;
+  }
+  dart.fn(containsDate, dynamicTobool$());
+  if (dart.test(containsDate(nativeKey))) {
+    dart.throw(new core.UnimplementedError('Key containing DateTime'));
+  }
+  return nativeKey;
+};
+dart.fn(indexed_db._convertNativeToDart_IDBKey, dynamicTodynamic$());
+indexed_db._convertDartToNative_IDBKey = function(dartKey) {
+  return dartKey;
+};
+dart.fn(indexed_db._convertDartToNative_IDBKey, dynamicTodynamic$());
+indexed_db._convertNativeToDart_IDBAny = function(object) {
+  return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false});
+};
+dart.fn(indexed_db._convertNativeToDart_IDBAny, dynamicTodynamic$());
+indexed_db._idbKey = 'JSExtendableArray|=Object|num|String';
+indexed_db._annotation_Creates_IDBKey = dart.const(new _js_helper.Creates(indexed_db._idbKey));
+indexed_db._annotation_Returns_IDBKey = dart.const(new _js_helper.Returns(indexed_db._idbKey));
+const _delete$ = Symbol('_delete');
+const _update = Symbol('_update');
+const _update_1 = Symbol('_update_1');
+dart.defineExtensionNames([
+  'delete',
+  'update',
+  'next',
+  'advance',
+  'continuePrimaryKey',
+  'direction',
+  'key',
+  'primaryKey',
+  'source'
+]);
+indexed_db.Cursor = class Cursor extends _interceptors.Interceptor {
+  [dartx.delete]() {
+    try {
+      return indexed_db._completeRequest(dart.dynamic)(this[_delete$]());
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
+    }
+
+  }
+  [dartx.update](value) {
+    try {
+      return indexed_db._completeRequest(dart.dynamic)(this[_update](value));
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
+    }
+
+  }
+  [dartx.next](key) {
+    if (key === void 0) key = null;
+    if (key == null) {
+      this.continue();
+    } else {
+      this.continue(key);
+    }
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.direction]() {
+    return this.direction;
+  }
+  get [dartx.key]() {
+    return this.key;
+  }
+  get [dartx.primaryKey]() {
+    return this.primaryKey;
+  }
+  get [dartx.source]() {
+    return this.source;
+  }
+  [dartx.advance](...args) {
+    return this.advance.apply(this, args);
+  }
+  [dartx.continuePrimaryKey](...args) {
+    return this.continuePrimaryKey.apply(this, args);
+  }
+  [_delete$](...args) {
+    return this.delete.apply(this, args);
+  }
+  [_update](value) {
+    let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
+    return this[_update_1](value_1);
+  }
+  [_update_1](...args) {
+    return this.update.apply(this, args);
+  }
+};
+dart.setSignature(indexed_db.Cursor, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.Cursor, [])}),
+  fields: () => ({
+    [dartx.direction]: core.String,
+    [dartx.key]: core.Object,
+    [dartx.primaryKey]: core.Object,
+    [dartx.source]: core.Object
+  }),
+  methods: () => ({
+    [dartx.delete]: dart.definiteFunctionType(async.Future, []),
+    [dartx.update]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.next]: dart.definiteFunctionType(dart.void, [], [core.Object]),
+    [dartx.advance]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.continuePrimaryKey]: dart.definiteFunctionType(dart.void, [core.Object, core.Object]),
+    [_delete$]: dart.definiteFunctionType(indexed_db.Request, []),
+    [_update]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic]),
+    [_update_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.IDBCursor, indexed_db.Cursor);
+const _get_value = Symbol('_get_value');
+dart.defineExtensionNames([
+  'value'
+]);
+indexed_db.CursorWithValue = class CursorWithValue extends indexed_db.Cursor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.value]() {
+    return indexed_db._convertNativeToDart_IDBAny(this[_get_value]);
+  }
+  get [_get_value]() {
+    return this.value;
+  }
+};
+dart.setSignature(indexed_db.CursorWithValue, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.CursorWithValue, [])}),
+  fields: () => ({[_get_value]: dart.dynamic}),
+  getters: () => ({[dartx.value]: dart.definiteFunctionType(dart.dynamic, [])})
+});
+dart.registerExtension(dart.global.IDBCursorWithValue, indexed_db.CursorWithValue);
+const _createObjectStore = Symbol('_createObjectStore');
+const _transaction = Symbol('_transaction');
+const _createObjectStore_1 = Symbol('_createObjectStore_1');
+const _createObjectStore_2 = Symbol('_createObjectStore_2');
+const _addEventListener = Symbol('_addEventListener');
+const _removeEventListener = Symbol('_removeEventListener');
+dart.defineExtensionNames([
+  'on',
+  'addEventListener',
+  'removeEventListener',
+  'dispatchEvent'
+]);
+html$.EventTarget = class EventTarget extends _interceptors.Interceptor {
+  _created() {
+    super.new();
+  }
+  get [dartx.on]() {
+    return new html$.Events(this);
+  }
+  [dartx.addEventListener](type, listener, useCapture) {
+    if (useCapture === void 0) useCapture = null;
+    if (listener != null) {
+      this[_addEventListener](type, listener, useCapture);
+    }
+  }
+  [dartx.removeEventListener](type, listener, useCapture) {
+    if (useCapture === void 0) useCapture = null;
+    if (listener != null) {
+      this[_removeEventListener](type, listener, useCapture);
+    }
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_addEventListener](...args) {
+    return this.addEventListener.apply(this, args);
+  }
+  [dartx.dispatchEvent](...args) {
+    return this.dispatchEvent.apply(this, args);
+  }
+  [_removeEventListener](...args) {
+    return this.removeEventListener.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.EventTarget, '_created');
+dart.setSignature(html$.EventTarget, {
+  constructors: () => ({
+    _created: dart.definiteFunctionType(html$.EventTarget, []),
+    _: dart.definiteFunctionType(html$.EventTarget, [])
+  }),
+  getters: () => ({[dartx.on]: dart.definiteFunctionType(html$.Events, [])}),
+  methods: () => ({
+    [dartx.addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    [dartx.removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    [dartx.dispatchEvent]: dart.definiteFunctionType(core.bool, [html$.Event]),
+    [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool])
+  })
+});
+dart.registerExtension(dart.global.EventTarget, html$.EventTarget);
+dart.defineExtensionNames([
+  'createObjectStore',
+  'transaction',
+  'transactionStore',
+  'transactionList',
+  'transactionStores',
+  'close',
+  'deleteObjectStore',
+  'onAbort',
+  'onClose',
+  'onError',
+  'onVersionChange',
+  'name',
+  'objectStoreNames',
+  'version'
+]);
+indexed_db.Database = class Database extends html$.EventTarget {
+  [dartx.createObjectStore](name, opts) {
+    let keyPath = opts && 'keyPath' in opts ? opts.keyPath : null;
+    let autoIncrement = opts && 'autoIncrement' in opts ? opts.autoIncrement : null;
+    let options = dart.map();
+    if (keyPath != null) {
+      options[dartx._set]('keyPath', keyPath);
+    }
+    if (autoIncrement != null) {
+      options[dartx._set]('autoIncrement', autoIncrement);
+    }
+    return this[_createObjectStore](name, options);
+  }
+  [dartx.transaction](storeName_OR_storeNames, mode) {
+    if (mode != 'readonly' && mode != 'readwrite') {
+      dart.throw(new core.ArgumentError(mode));
+    }
+    return this[_transaction](storeName_OR_storeNames, mode);
+  }
+  [dartx.transactionStore](storeName, mode) {
+    if (mode != 'readonly' && mode != 'readwrite') {
+      dart.throw(new core.ArgumentError(mode));
+    }
+    return this[_transaction](storeName, mode);
+  }
+  [dartx.transactionList](storeNames, mode) {
+    if (mode != 'readonly' && mode != 'readwrite') {
+      dart.throw(new core.ArgumentError(mode));
+    }
+    let storeNames_1 = html_common.convertDartToNative_StringArray(storeNames);
+    return this[_transaction](storeNames_1, mode);
+  }
+  [dartx.transactionStores](storeNames, mode) {
+    if (mode != 'readonly' && mode != 'readwrite') {
+      dart.throw(new core.ArgumentError(mode));
+    }
+    return this[_transaction](storeNames, mode);
+  }
+  [_transaction](...args) {
+    return this.transaction.apply(this, args);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.objectStoreNames]() {
+    return this.objectStoreNames;
+  }
+  get [dartx.version]() {
+    return this.version;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [_createObjectStore](name, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_createObjectStore_1](name, options_1);
+    }
+    return this[_createObjectStore_2](name);
+  }
+  [_createObjectStore_1](...args) {
+    return this.createObjectStore.apply(this, args);
+  }
+  [_createObjectStore_2](...args) {
+    return this.createObjectStore.apply(this, args);
+  }
+  [dartx.deleteObjectStore](...args) {
+    return this.deleteObjectStore.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return indexed_db.Database.abortEvent.forTarget(this);
+  }
+  get [dartx.onClose]() {
+    return indexed_db.Database.closeEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return indexed_db.Database.errorEvent.forTarget(this);
+  }
+  get [dartx.onVersionChange]() {
+    return indexed_db.Database.versionChangeEvent.forTarget(this);
+  }
+};
+dart.setSignature(indexed_db.Database, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.Database, [])}),
+  fields: () => ({
+    [dartx.name]: core.String,
+    [dartx.objectStoreNames]: ListOfString(),
+    [dartx.version]: core.Object
+  }),
+  getters: () => ({
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onVersionChange]: dart.definiteFunctionType(async.Stream$(indexed_db.VersionChangeEvent), [])
+  }),
+  methods: () => ({
+    [dartx.createObjectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String], {keyPath: core.String, autoIncrement: core.bool}),
+    [dartx.transaction]: dart.definiteFunctionType(indexed_db.Transaction, [dart.dynamic, core.String]),
+    [dartx.transactionStore]: dart.definiteFunctionType(indexed_db.Transaction, [core.String, core.String]),
+    [dartx.transactionList]: dart.definiteFunctionType(indexed_db.Transaction, [ListOfString(), core.String]),
+    [dartx.transactionStores]: dart.definiteFunctionType(indexed_db.Transaction, [html$.DomStringList, core.String]),
+    [_transaction]: dart.definiteFunctionType(indexed_db.Transaction, [dart.dynamic, dart.dynamic]),
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [_createObjectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String], [core.Map]),
+    [_createObjectStore_1]: dart.definiteFunctionType(indexed_db.ObjectStore, [dart.dynamic, dart.dynamic]),
+    [_createObjectStore_2]: dart.definiteFunctionType(indexed_db.ObjectStore, [dart.dynamic]),
+    [dartx.deleteObjectStore]: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  sfields: () => ({
+    abortEvent: EventStreamProviderOfEvent(),
+    closeEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    versionChangeEvent: EventStreamProviderOfVersionChangeEvent()
+  })
+});
+dart.defineLazy(indexed_db.Database, {
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('abort'));
+  },
+  get closeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('close'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get versionChangeEvent() {
+    return dart.const(new (EventStreamProviderOfVersionChangeEvent())('versionchange'));
+  }
+});
+dart.registerExtension(dart.global.IDBDatabase, indexed_db.Database);
+const _open = Symbol('_open');
+const _deleteDatabase = Symbol('_deleteDatabase');
+const _webkitGetDatabaseNames = Symbol('_webkitGetDatabaseNames');
+dart.defineExtensionNames([
+  'open',
+  'deleteDatabase',
+  'getDatabaseNames',
+  'supportsDatabaseNames',
+  'cmp'
+]);
+indexed_db.IdbFactory = class IdbFactory extends _interceptors.Interceptor {
+  static get supported() {
+    return !!(window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB);
+  }
+  [dartx.open](name, opts) {
+    let version = opts && 'version' in opts ? opts.version : null;
+    let onUpgradeNeeded = opts && 'onUpgradeNeeded' in opts ? opts.onUpgradeNeeded : null;
+    let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
+    if (version == null != (onUpgradeNeeded == null)) {
+      return FutureOfDatabase().error(new core.ArgumentError('version and onUpgradeNeeded must be specified together'));
+    }
+    try {
+      let request = null;
+      if (version != null) {
+        request = this[_open](name, version);
+      } else {
+        request = this[_open](name);
       }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
+      if (onUpgradeNeeded != null) {
+        dart.dsend(dart.dload(request, 'onUpgradeNeeded'), 'listen', onUpgradeNeeded);
       }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [__setter__$](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.appendItem](...args) {
-      return this.appendItem.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [dartx.initialize](...args) {
-      return this.initialize.apply(this, args);
-    }
-    [dartx.insertItemBefore](...args) {
-      return this.insertItemBefore.apply(this, args);
-    }
-    [dartx.removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [dartx.replaceItem](...args) {
-      return this.replaceItem.apply(this, args);
-    }
-  };
-  svg$.LengthList[dart.implements] = () => [ListOfLength()];
-  dart.setSignature(svg$.LengthList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.LengthList, [])}),
-    fields: () => ({[dartx.numberOfItems]: core.int}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(svg$.Length, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Length]),
-      [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Length]),
-      [dartx.appendItem]: dart.definiteFunctionType(svg$.Length, [svg$.Length]),
-      [dartx.getItem]: dart.definiteFunctionType(svg$.Length, [core.int]),
-      [dartx.initialize]: dart.definiteFunctionType(svg$.Length, [svg$.Length]),
-      [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Length, [svg$.Length, core.int]),
-      [dartx.removeItem]: dart.definiteFunctionType(svg$.Length, [core.int]),
-      [dartx.replaceItem]: dart.definiteFunctionType(svg$.Length, [svg$.Length, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SVGLengthList, svg$.LengthList);
-  dart.defineExtensionNames([
-    'x1',
-    'x2',
-    'y1',
-    'y2'
-  ]);
-  svg$.LineElement = class LineElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.LineElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("line"));
-    }
-    created() {
-      this[dartx.x1] = null;
-      this[dartx.x2] = null;
-      this[dartx.y1] = null;
-      this[dartx.y2] = null;
-      super.created();
-    }
-    get [dartx.x1]() {
-      return this.x1;
-    }
-    get [dartx.x2]() {
-      return this.x2;
-    }
-    get [dartx.y1]() {
-      return this.y1;
-    }
-    get [dartx.y2]() {
-      return this.y2;
-    }
-  };
-  dart.defineNamedConstructor(svg$.LineElement, 'created');
-  dart.setSignature(svg$.LineElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.LineElement, []),
-      new: dart.definiteFunctionType(svg$.LineElement, []),
-      created: dart.definiteFunctionType(svg$.LineElement, [])
-    }),
-    fields: () => ({
-      [dartx.x1]: svg$.AnimatedLength,
-      [dartx.x2]: svg$.AnimatedLength,
-      [dartx.y1]: svg$.AnimatedLength,
-      [dartx.y2]: svg$.AnimatedLength
-    })
-  });
-  dart.registerExtension(dart.global.SVGLineElement, svg$.LineElement);
-  dart.defineExtensionNames([
-    'gradientTransform',
-    'gradientUnits',
-    'spreadMethod',
-    'href'
-  ]);
-  svg$._GradientElement = class _GradientElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.gradientTransform] = null;
-      this[dartx.gradientUnits] = null;
-      this[dartx.spreadMethod] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.gradientTransform]() {
-      return this.gradientTransform;
-    }
-    get [dartx.gradientUnits]() {
-      return this.gradientUnits;
-    }
-    get [dartx.spreadMethod]() {
-      return this.spreadMethod;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$._GradientElement, 'created');
-  svg$._GradientElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$._GradientElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$._GradientElement, []),
-      created: dart.definiteFunctionType(svg$._GradientElement, [])
-    }),
-    fields: () => ({
-      [dartx.gradientTransform]: svg$.AnimatedTransformList,
-      [dartx.gradientUnits]: svg$.AnimatedEnumeration,
-      [dartx.spreadMethod]: svg$.AnimatedEnumeration,
-      [dartx.href]: svg$.AnimatedString
-    }),
-    sfields: () => ({
-      SVG_SPREADMETHOD_PAD: core.int,
-      SVG_SPREADMETHOD_REFLECT: core.int,
-      SVG_SPREADMETHOD_REPEAT: core.int,
-      SVG_SPREADMETHOD_UNKNOWN: core.int
-    })
-  });
-  svg$._GradientElement.SVG_SPREADMETHOD_PAD = 1;
-  svg$._GradientElement.SVG_SPREADMETHOD_REFLECT = 2;
-  svg$._GradientElement.SVG_SPREADMETHOD_REPEAT = 3;
-  svg$._GradientElement.SVG_SPREADMETHOD_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGGradientElement, svg$._GradientElement);
-  dart.defineExtensionNames([
-    'x1',
-    'x2',
-    'y1',
-    'y2'
-  ]);
-  svg$.LinearGradientElement = class LinearGradientElement extends svg$._GradientElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.LinearGradientElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("linearGradient"));
-    }
-    created() {
-      this[dartx.x1] = null;
-      this[dartx.x2] = null;
-      this[dartx.y1] = null;
-      this[dartx.y2] = null;
-      super.created();
-    }
-    get [dartx.x1]() {
-      return this.x1;
-    }
-    get [dartx.x2]() {
-      return this.x2;
-    }
-    get [dartx.y1]() {
-      return this.y1;
-    }
-    get [dartx.y2]() {
-      return this.y2;
-    }
-  };
-  dart.defineNamedConstructor(svg$.LinearGradientElement, 'created');
-  dart.setSignature(svg$.LinearGradientElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.LinearGradientElement, []),
-      new: dart.definiteFunctionType(svg$.LinearGradientElement, []),
-      created: dart.definiteFunctionType(svg$.LinearGradientElement, [])
-    }),
-    fields: () => ({
-      [dartx.x1]: svg$.AnimatedLength,
-      [dartx.x2]: svg$.AnimatedLength,
-      [dartx.y1]: svg$.AnimatedLength,
-      [dartx.y2]: svg$.AnimatedLength
-    })
-  });
-  dart.registerExtension(dart.global.SVGLinearGradientElement, svg$.LinearGradientElement);
-  dart.defineExtensionNames([
-    'setOrientToAngle',
-    'setOrientToAuto',
-    'markerHeight',
-    'markerUnits',
-    'markerWidth',
-    'orientAngle',
-    'orientType',
-    'refX',
-    'refY',
-    'preserveAspectRatio',
-    'viewBox'
-  ]);
-  svg$.MarkerElement = class MarkerElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.MarkerElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("marker"));
-    }
-    created() {
-      this[dartx.markerHeight] = null;
-      this[dartx.markerUnits] = null;
-      this[dartx.markerWidth] = null;
-      this[dartx.orientAngle] = null;
-      this[dartx.orientType] = null;
-      this[dartx.refX] = null;
-      this[dartx.refY] = null;
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.viewBox] = null;
-      super.created();
-    }
-    get [dartx.markerHeight]() {
-      return this.markerHeight;
-    }
-    get [dartx.markerUnits]() {
-      return this.markerUnits;
-    }
-    get [dartx.markerWidth]() {
-      return this.markerWidth;
-    }
-    get [dartx.orientAngle]() {
-      return this.orientAngle;
-    }
-    get [dartx.orientType]() {
-      return this.orientType;
-    }
-    get [dartx.refX]() {
-      return this.refX;
-    }
-    get [dartx.refY]() {
-      return this.refY;
-    }
-    [dartx.setOrientToAngle](...args) {
-      return this.setOrientToAngle.apply(this, args);
-    }
-    [dartx.setOrientToAuto](...args) {
-      return this.setOrientToAuto.apply(this, args);
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.viewBox]() {
-      return this.viewBox;
-    }
-  };
-  dart.defineNamedConstructor(svg$.MarkerElement, 'created');
-  svg$.MarkerElement[dart.implements] = () => [svg$.FitToViewBox];
-  dart.setSignature(svg$.MarkerElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.MarkerElement, []),
-      new: dart.definiteFunctionType(svg$.MarkerElement, []),
-      created: dart.definiteFunctionType(svg$.MarkerElement, [])
-    }),
-    fields: () => ({
-      [dartx.markerHeight]: svg$.AnimatedLength,
-      [dartx.markerUnits]: svg$.AnimatedEnumeration,
-      [dartx.markerWidth]: svg$.AnimatedLength,
-      [dartx.orientAngle]: svg$.AnimatedAngle,
-      [dartx.orientType]: svg$.AnimatedEnumeration,
-      [dartx.refX]: svg$.AnimatedLength,
-      [dartx.refY]: svg$.AnimatedLength,
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.viewBox]: svg$.AnimatedRect
-    }),
-    methods: () => ({
-      [dartx.setOrientToAngle]: dart.definiteFunctionType(dart.void, [svg$.Angle]),
-      [dartx.setOrientToAuto]: dart.definiteFunctionType(dart.void, [])
-    }),
-    sfields: () => ({
-      SVG_MARKERUNITS_STROKEWIDTH: core.int,
-      SVG_MARKERUNITS_UNKNOWN: core.int,
-      SVG_MARKERUNITS_USERSPACEONUSE: core.int,
-      SVG_MARKER_ORIENT_ANGLE: core.int,
-      SVG_MARKER_ORIENT_AUTO: core.int,
-      SVG_MARKER_ORIENT_UNKNOWN: core.int
-    })
-  });
-  svg$.MarkerElement.SVG_MARKERUNITS_STROKEWIDTH = 2;
-  svg$.MarkerElement.SVG_MARKERUNITS_UNKNOWN = 0;
-  svg$.MarkerElement.SVG_MARKERUNITS_USERSPACEONUSE = 1;
-  svg$.MarkerElement.SVG_MARKER_ORIENT_ANGLE = 2;
-  svg$.MarkerElement.SVG_MARKER_ORIENT_AUTO = 1;
-  svg$.MarkerElement.SVG_MARKER_ORIENT_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGMarkerElement, svg$.MarkerElement);
-  dart.defineExtensionNames([
-    'hasExtension',
-    'height',
-    'maskContentUnits',
-    'maskUnits',
-    'width',
-    'x',
-    'y',
-    'requiredExtensions',
-    'requiredFeatures',
-    'systemLanguage'
-  ]);
-  svg$.MaskElement = class MaskElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.MaskElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("mask"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.maskContentUnits] = null;
-      this[dartx.maskUnits] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.requiredExtensions] = null;
-      this[dartx.requiredFeatures] = null;
-      this[dartx.systemLanguage] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.maskContentUnits]() {
-      return this.maskContentUnits;
-    }
-    get [dartx.maskUnits]() {
-      return this.maskUnits;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.requiredExtensions]() {
-      return this.requiredExtensions;
-    }
-    get [dartx.requiredFeatures]() {
-      return this.requiredFeatures;
-    }
-    get [dartx.systemLanguage]() {
-      return this.systemLanguage;
-    }
-    [dartx.hasExtension](...args) {
-      return this.hasExtension.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(svg$.MaskElement, 'created');
-  svg$.MaskElement[dart.implements] = () => [svg$.Tests];
-  dart.setSignature(svg$.MaskElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.MaskElement, []),
-      new: dart.definiteFunctionType(svg$.MaskElement, []),
-      created: dart.definiteFunctionType(svg$.MaskElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.maskContentUnits]: svg$.AnimatedEnumeration,
-      [dartx.maskUnits]: svg$.AnimatedEnumeration,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.requiredExtensions]: svg$.StringList,
-      [dartx.requiredFeatures]: svg$.StringList,
-      [dartx.systemLanguage]: svg$.StringList
-    }),
-    methods: () => ({[dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])})
-  });
-  dart.registerExtension(dart.global.SVGMaskElement, svg$.MaskElement);
-  dart.defineExtensionNames([
-    'flipX',
-    'flipY',
-    'inverse',
-    'multiply',
-    'rotate',
-    'rotateFromVector',
-    'scale',
-    'scaleNonUniform',
-    'skewX',
-    'skewY',
-    'translate',
-    'a',
-    'b',
-    'c',
-    'd',
-    'e',
-    'f'
-  ]);
-  svg$.Matrix = class Matrix extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.a]() {
-      return this.a;
-    }
-    set [dartx.a](value) {
-      this.a = value;
-    }
-    get [dartx.b]() {
-      return this.b;
-    }
-    set [dartx.b](value) {
-      this.b = value;
-    }
-    get [dartx.c]() {
-      return this.c;
-    }
-    set [dartx.c](value) {
-      this.c = value;
-    }
-    get [dartx.d]() {
-      return this.d;
-    }
-    set [dartx.d](value) {
-      this.d = value;
-    }
-    get [dartx.e]() {
-      return this.e;
-    }
-    set [dartx.e](value) {
-      this.e = value;
-    }
-    get [dartx.f]() {
-      return this.f;
-    }
-    set [dartx.f](value) {
-      this.f = value;
-    }
-    [dartx.flipX](...args) {
-      return this.flipX.apply(this, args);
-    }
-    [dartx.flipY](...args) {
-      return this.flipY.apply(this, args);
-    }
-    [dartx.inverse](...args) {
-      return this.inverse.apply(this, args);
-    }
-    [dartx.multiply](...args) {
-      return this.multiply.apply(this, args);
-    }
-    [dartx.rotate](...args) {
-      return this.rotate.apply(this, args);
-    }
-    [dartx.rotateFromVector](...args) {
-      return this.rotateFromVector.apply(this, args);
-    }
-    [dartx.scale](...args) {
-      return this.scale.apply(this, args);
-    }
-    [dartx.scaleNonUniform](...args) {
-      return this.scaleNonUniform.apply(this, args);
-    }
-    [dartx.skewX](...args) {
-      return this.skewX.apply(this, args);
-    }
-    [dartx.skewY](...args) {
-      return this.skewY.apply(this, args);
-    }
-    [dartx.translate](...args) {
-      return this.translate.apply(this, args);
-    }
-  };
-  dart.setSignature(svg$.Matrix, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Matrix, [])}),
-    fields: () => ({
-      [dartx.a]: core.num,
-      [dartx.b]: core.num,
-      [dartx.c]: core.num,
-      [dartx.d]: core.num,
-      [dartx.e]: core.num,
-      [dartx.f]: core.num
-    }),
-    methods: () => ({
-      [dartx.flipX]: dart.definiteFunctionType(svg$.Matrix, []),
-      [dartx.flipY]: dart.definiteFunctionType(svg$.Matrix, []),
-      [dartx.inverse]: dart.definiteFunctionType(svg$.Matrix, []),
-      [dartx.multiply]: dart.definiteFunctionType(svg$.Matrix, [svg$.Matrix]),
-      [dartx.rotate]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
-      [dartx.rotateFromVector]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num]),
-      [dartx.scale]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
-      [dartx.scaleNonUniform]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num]),
-      [dartx.skewX]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
-      [dartx.skewY]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
-      [dartx.translate]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num])
-    })
-  });
-  dart.registerExtension(dart.global.SVGMatrix, svg$.Matrix);
-  svg$.MetadataElement = class MetadataElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.MetadataElement, 'created');
-  dart.setSignature(svg$.MetadataElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.MetadataElement, []),
-      created: dart.definiteFunctionType(svg$.MetadataElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGMetadataElement, svg$.MetadataElement);
-  dart.defineExtensionNames([
-    'value'
-  ]);
-  svg$.Number = class Number extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-  };
-  dart.setSignature(svg$.Number, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Number, [])}),
-    fields: () => ({[dartx.value]: core.num})
-  });
-  dart.registerExtension(dart.global.SVGNumber, svg$.Number);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'appendItem',
-    'clear',
-    'getItem',
-    'initialize',
-    'insertItemBefore',
-    'removeItem',
-    'replaceItem',
-    'numberOfItems'
-  ]);
-  svg$.NumberList = class NumberList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Number), html$.ImmutableListMixin$(svg$.Number)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfItems]() {
-      return this.numberOfItems;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.getItem](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
+      if (onBlocked != null) {
+        dart.dsend(dart.dload(request, 'onBlocked'), 'listen', onBlocked);
       }
-      dart.throw(new core.StateError("No elements"));
+      return indexed_db._completeRequest(indexed_db.Database)(indexed_db.Request._check(request));
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return FutureOfDatabase().error(e, stacktrace);
     }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
+
+  }
+  [dartx.deleteDatabase](name, opts) {
+    let onBlocked = opts && 'onBlocked' in opts ? opts.onBlocked : null;
+    try {
+      let request = this[_deleteDatabase](name);
+      if (onBlocked != null) {
+        request[dartx.onBlocked].listen(onBlocked);
       }
-      dart.throw(new core.StateError("No elements"));
+      let completer = CompleterOfIdbFactory().sync();
+      request[dartx.onSuccess].listen(dart.fn(e => {
+        completer.complete(this);
+      }, EventToNull()));
+      request[dartx.onError].listen(dart.bind(completer, 'completeError'));
+      return completer.future;
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return FutureOfIdbFactory().error(e, stacktrace);
     }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
+
+  }
+  [dartx.getDatabaseNames]() {
+    try {
+      let request = this[_webkitGetDatabaseNames]();
+      return indexed_db._completeRequest(ListOfString())(request);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return FutureOfListOfString().error(e, stacktrace);
+    }
+
+  }
+  get [dartx.supportsDatabaseNames]() {
+    return dart.test(indexed_db.IdbFactory.supported) && !!(this.getDatabaseNames || this.webkitGetDatabaseNames);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.cmp](...args) {
+    return this.cmp.apply(this, args);
+  }
+  [_deleteDatabase](...args) {
+    return this.deleteDatabase.apply(this, args);
+  }
+  [_open](...args) {
+    return this.open.apply(this, args);
+  }
+  [_webkitGetDatabaseNames](...args) {
+    return this.webkitGetDatabaseNames.apply(this, args);
+  }
+};
+dart.setSignature(indexed_db.IdbFactory, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.IdbFactory, [])}),
+  getters: () => ({[dartx.supportsDatabaseNames]: dart.definiteFunctionType(core.bool, [])}),
+  methods: () => ({
+    [dartx.open]: dart.definiteFunctionType(async.Future$(indexed_db.Database), [core.String], {version: core.int, onUpgradeNeeded: dynamicTovoid(), onBlocked: dynamicTovoid()}),
+    [dartx.deleteDatabase]: dart.definiteFunctionType(async.Future$(indexed_db.IdbFactory), [core.String], {onBlocked: EventTovoid()}),
+    [dartx.getDatabaseNames]: dart.definiteFunctionType(async.Future$(core.List$(core.String)), []),
+    [dartx.cmp]: dart.definiteFunctionType(core.int, [core.Object, core.Object]),
+    [_deleteDatabase]: dart.definiteFunctionType(indexed_db.OpenDBRequest, [core.String]),
+    [_open]: dart.definiteFunctionType(indexed_db.OpenDBRequest, [core.String], [core.int]),
+    [_webkitGetDatabaseNames]: dart.definiteFunctionType(indexed_db.Request, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.IDBFactory, indexed_db.IdbFactory);
+indexed_db._completeRequest = function(T) {
+  return request => {
+    let completer = async.Completer$(T).sync();
+    request[dartx.onSuccess].listen(dart.fn(e => {
+      let result = indexed_db._cast(T)(request[dartx.result]);
+      completer.complete(result);
+    }, EventToNull()));
+    request[dartx.onError].listen(dart.bind(completer, 'completeError'));
+    return completer.future;
+  };
+};
+dart.lazyFn(indexed_db._completeRequest, () => RequestToFutureOfT());
+const _count$0 = Symbol('_count');
+const _get$ = Symbol('_get');
+const _getKey$ = Symbol('_getKey');
+const _openCursor = Symbol('_openCursor');
+const _openKeyCursor = Symbol('_openKeyCursor');
+dart.defineExtensionNames([
+  'count',
+  'get',
+  'getKey',
+  'openCursor',
+  'openKeyCursor',
+  'getAll',
+  'getAllKeys',
+  'keyPath',
+  'multiEntry',
+  'name',
+  'objectStore',
+  'unique'
+]);
+indexed_db.Index = class Index extends _interceptors.Interceptor {
+  [dartx.count](key_OR_range) {
+    if (key_OR_range === void 0) key_OR_range = null;
+    try {
+      let request = this[_count$0](key_OR_range);
+      return indexed_db._completeRequest(core.int)(request);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return FutureOfint().error(e, stacktrace);
+    }
+
+  }
+  [dartx.get](key) {
+    try {
+      let request = this[_get$](key);
+      return indexed_db._completeRequest(dart.dynamic)(request);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
+    }
+
+  }
+  [dartx.getKey](key) {
+    try {
+      let request = this[_getKey$](key);
+      return indexed_db._completeRequest(dart.dynamic)(request);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
+    }
+
+  }
+  [dartx.openCursor](opts) {
+    let key = opts && 'key' in opts ? opts.key : null;
+    let range = opts && 'range' in opts ? opts.range : null;
+    let direction = opts && 'direction' in opts ? opts.direction : null;
+    let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
+    let key_OR_range = null;
+    if (key != null) {
+      if (range != null) {
+        dart.throw(new core.ArgumentError('Cannot specify both key and range.'));
       }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
+      key_OR_range = key;
+    } else {
+      key_OR_range = range;
     }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
+    let request = null;
+    if (direction == null) {
+      request = this[_openCursor](key_OR_range, "next");
+    } else {
+      request = this[_openCursor](key_OR_range, direction);
     }
-    [__setter__$](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.appendItem](...args) {
-      return this.appendItem.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [dartx.initialize](...args) {
-      return this.initialize.apply(this, args);
-    }
-    [dartx.insertItemBefore](...args) {
-      return this.insertItemBefore.apply(this, args);
-    }
-    [dartx.removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [dartx.replaceItem](...args) {
-      return this.replaceItem.apply(this, args);
-    }
-  };
-  svg$.NumberList[dart.implements] = () => [ListOfNumber()];
-  dart.setSignature(svg$.NumberList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.NumberList, [])}),
-    fields: () => ({[dartx.numberOfItems]: core.int}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(svg$.Number, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Number]),
-      [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Number]),
-      [dartx.appendItem]: dart.definiteFunctionType(svg$.Number, [svg$.Number]),
-      [dartx.getItem]: dart.definiteFunctionType(svg$.Number, [core.int]),
-      [dartx.initialize]: dart.definiteFunctionType(svg$.Number, [svg$.Number]),
-      [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Number, [svg$.Number, core.int]),
-      [dartx.removeItem]: dart.definiteFunctionType(svg$.Number, [core.int]),
-      [dartx.replaceItem]: dart.definiteFunctionType(svg$.Number, [svg$.Number, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SVGNumberList, svg$.NumberList);
-  dart.defineExtensionNames([
-    'createSvgPathSegArcAbs',
-    'createSvgPathSegArcRel',
-    'createSvgPathSegClosePath',
-    'createSvgPathSegCurvetoCubicAbs',
-    'createSvgPathSegCurvetoCubicRel',
-    'createSvgPathSegCurvetoCubicSmoothAbs',
-    'createSvgPathSegCurvetoCubicSmoothRel',
-    'createSvgPathSegCurvetoQuadraticAbs',
-    'createSvgPathSegCurvetoQuadraticRel',
-    'createSvgPathSegCurvetoQuadraticSmoothAbs',
-    'createSvgPathSegCurvetoQuadraticSmoothRel',
-    'createSvgPathSegLinetoAbs',
-    'createSvgPathSegLinetoHorizontalAbs',
-    'createSvgPathSegLinetoHorizontalRel',
-    'createSvgPathSegLinetoRel',
-    'createSvgPathSegLinetoVerticalAbs',
-    'createSvgPathSegLinetoVerticalRel',
-    'createSvgPathSegMovetoAbs',
-    'createSvgPathSegMovetoRel',
-    'getPathSegAtLength',
-    'getPointAtLength',
-    'getTotalLength',
-    'animatedNormalizedPathSegList',
-    'animatedPathSegList',
-    'normalizedPathSegList',
-    'pathLength',
-    'pathSegList'
-  ]);
-  svg$.PathElement = class PathElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.PathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("path"));
-    }
-    created() {
-      this[dartx.animatedNormalizedPathSegList] = null;
-      this[dartx.animatedPathSegList] = null;
-      this[dartx.normalizedPathSegList] = null;
-      this[dartx.pathLength] = null;
-      this[dartx.pathSegList] = null;
-      super.created();
-    }
-    get [dartx.animatedNormalizedPathSegList]() {
-      return this.animatedNormalizedPathSegList;
-    }
-    get [dartx.animatedPathSegList]() {
-      return this.animatedPathSegList;
-    }
-    get [dartx.normalizedPathSegList]() {
-      return this.normalizedPathSegList;
-    }
-    get [dartx.pathLength]() {
-      return this.pathLength;
-    }
-    get [dartx.pathSegList]() {
-      return this.pathSegList;
-    }
-    [dartx.createSvgPathSegArcAbs](...args) {
-      return this.createSVGPathSegArcAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegArcRel](...args) {
-      return this.createSVGPathSegArcRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegClosePath](...args) {
-      return this.createSVGPathSegClosePath.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoCubicAbs](...args) {
-      return this.createSVGPathSegCurvetoCubicAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoCubicRel](...args) {
-      return this.createSVGPathSegCurvetoCubicRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoCubicSmoothAbs](...args) {
-      return this.createSVGPathSegCurvetoCubicSmoothAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoCubicSmoothRel](...args) {
-      return this.createSVGPathSegCurvetoCubicSmoothRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoQuadraticAbs](...args) {
-      return this.createSVGPathSegCurvetoQuadraticAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoQuadraticRel](...args) {
-      return this.createSVGPathSegCurvetoQuadraticRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoQuadraticSmoothAbs](...args) {
-      return this.createSVGPathSegCurvetoQuadraticSmoothAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegCurvetoQuadraticSmoothRel](...args) {
-      return this.createSVGPathSegCurvetoQuadraticSmoothRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegLinetoAbs](...args) {
-      return this.createSVGPathSegLinetoAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegLinetoHorizontalAbs](...args) {
-      return this.createSVGPathSegLinetoHorizontalAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegLinetoHorizontalRel](...args) {
-      return this.createSVGPathSegLinetoHorizontalRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegLinetoRel](...args) {
-      return this.createSVGPathSegLinetoRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegLinetoVerticalAbs](...args) {
-      return this.createSVGPathSegLinetoVerticalAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegLinetoVerticalRel](...args) {
-      return this.createSVGPathSegLinetoVerticalRel.apply(this, args);
-    }
-    [dartx.createSvgPathSegMovetoAbs](...args) {
-      return this.createSVGPathSegMovetoAbs.apply(this, args);
-    }
-    [dartx.createSvgPathSegMovetoRel](...args) {
-      return this.createSVGPathSegMovetoRel.apply(this, args);
-    }
-    [dartx.getPathSegAtLength](...args) {
-      return this.getPathSegAtLength.apply(this, args);
-    }
-    [dartx.getPointAtLength](...args) {
-      return this.getPointAtLength.apply(this, args);
-    }
-    [dartx.getTotalLength](...args) {
-      return this.getTotalLength.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(svg$.PathElement, 'created');
-  dart.setSignature(svg$.PathElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.PathElement, []),
-      new: dart.definiteFunctionType(svg$.PathElement, []),
-      created: dart.definiteFunctionType(svg$.PathElement, [])
-    }),
-    fields: () => ({
-      [dartx.animatedNormalizedPathSegList]: svg$.PathSegList,
-      [dartx.animatedPathSegList]: svg$.PathSegList,
-      [dartx.normalizedPathSegList]: svg$.PathSegList,
-      [dartx.pathLength]: svg$.AnimatedNumber,
-      [dartx.pathSegList]: svg$.PathSegList
-    }),
-    methods: () => ({
-      [dartx.createSvgPathSegArcAbs]: dart.definiteFunctionType(svg$.PathSegArcAbs, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
-      [dartx.createSvgPathSegArcRel]: dart.definiteFunctionType(svg$.PathSegArcRel, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
-      [dartx.createSvgPathSegClosePath]: dart.definiteFunctionType(svg$.PathSegClosePath, []),
-      [dartx.createSvgPathSegCurvetoCubicAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicAbs, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoCubicRel]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicRel, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoCubicSmoothAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothAbs, [core.num, core.num, core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoCubicSmoothRel]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothRel, [core.num, core.num, core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoQuadraticAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticAbs, [core.num, core.num, core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoQuadraticRel]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticRel, [core.num, core.num, core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoQuadraticSmoothAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothAbs, [core.num, core.num]),
-      [dartx.createSvgPathSegCurvetoQuadraticSmoothRel]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothRel, [core.num, core.num]),
-      [dartx.createSvgPathSegLinetoAbs]: dart.definiteFunctionType(svg$.PathSegLinetoAbs, [core.num, core.num]),
-      [dartx.createSvgPathSegLinetoHorizontalAbs]: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalAbs, [core.num]),
-      [dartx.createSvgPathSegLinetoHorizontalRel]: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalRel, [core.num]),
-      [dartx.createSvgPathSegLinetoRel]: dart.definiteFunctionType(svg$.PathSegLinetoRel, [core.num, core.num]),
-      [dartx.createSvgPathSegLinetoVerticalAbs]: dart.definiteFunctionType(svg$.PathSegLinetoVerticalAbs, [core.num]),
-      [dartx.createSvgPathSegLinetoVerticalRel]: dart.definiteFunctionType(svg$.PathSegLinetoVerticalRel, [core.num]),
-      [dartx.createSvgPathSegMovetoAbs]: dart.definiteFunctionType(svg$.PathSegMovetoAbs, [core.num, core.num]),
-      [dartx.createSvgPathSegMovetoRel]: dart.definiteFunctionType(svg$.PathSegMovetoRel, [core.num, core.num]),
-      [dartx.getPathSegAtLength]: dart.definiteFunctionType(core.int, [core.num]),
-      [dartx.getPointAtLength]: dart.definiteFunctionType(svg$.Point, [core.num]),
-      [dartx.getTotalLength]: dart.definiteFunctionType(core.double, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathElement, svg$.PathElement);
-  dart.defineExtensionNames([
-    'pathSegType',
-    'pathSegTypeAsLetter'
-  ]);
-  svg$.PathSeg = class PathSeg extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.pathSegType]() {
-      return this.pathSegType;
-    }
-    get [dartx.pathSegTypeAsLetter]() {
-      return this.pathSegTypeAsLetter;
-    }
-  };
-  dart.setSignature(svg$.PathSeg, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSeg, [])}),
-    fields: () => ({
-      [dartx.pathSegType]: core.int,
-      [dartx.pathSegTypeAsLetter]: core.String
-    }),
-    sfields: () => ({
-      PATHSEG_ARC_ABS: core.int,
-      PATHSEG_ARC_REL: core.int,
-      PATHSEG_CLOSEPATH: core.int,
-      PATHSEG_CURVETO_CUBIC_ABS: core.int,
-      PATHSEG_CURVETO_CUBIC_REL: core.int,
-      PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: core.int,
-      PATHSEG_CURVETO_CUBIC_SMOOTH_REL: core.int,
-      PATHSEG_CURVETO_QUADRATIC_ABS: core.int,
-      PATHSEG_CURVETO_QUADRATIC_REL: core.int,
-      PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: core.int,
-      PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: core.int,
-      PATHSEG_LINETO_ABS: core.int,
-      PATHSEG_LINETO_HORIZONTAL_ABS: core.int,
-      PATHSEG_LINETO_HORIZONTAL_REL: core.int,
-      PATHSEG_LINETO_REL: core.int,
-      PATHSEG_LINETO_VERTICAL_ABS: core.int,
-      PATHSEG_LINETO_VERTICAL_REL: core.int,
-      PATHSEG_MOVETO_ABS: core.int,
-      PATHSEG_MOVETO_REL: core.int,
-      PATHSEG_UNKNOWN: core.int
-    })
-  });
-  svg$.PathSeg.PATHSEG_ARC_ABS = 10;
-  svg$.PathSeg.PATHSEG_ARC_REL = 11;
-  svg$.PathSeg.PATHSEG_CLOSEPATH = 1;
-  svg$.PathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;
-  svg$.PathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;
-  svg$.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
-  svg$.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
-  svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;
-  svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;
-  svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
-  svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
-  svg$.PathSeg.PATHSEG_LINETO_ABS = 4;
-  svg$.PathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;
-  svg$.PathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;
-  svg$.PathSeg.PATHSEG_LINETO_REL = 5;
-  svg$.PathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;
-  svg$.PathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;
-  svg$.PathSeg.PATHSEG_MOVETO_ABS = 2;
-  svg$.PathSeg.PATHSEG_MOVETO_REL = 3;
-  svg$.PathSeg.PATHSEG_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGPathSeg, svg$.PathSeg);
-  dart.defineExtensionNames([
-    'angle',
-    'largeArcFlag',
-    'r1',
-    'r2',
-    'sweepFlag',
-    'x',
-    'y'
-  ]);
-  svg$.PathSegArcAbs = class PathSegArcAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.angle]() {
-      return this.angle;
-    }
-    set [dartx.angle](value) {
-      this.angle = value;
-    }
-    get [dartx.largeArcFlag]() {
-      return this.largeArcFlag;
-    }
-    set [dartx.largeArcFlag](value) {
-      this.largeArcFlag = value;
-    }
-    get [dartx.r1]() {
-      return this.r1;
-    }
-    set [dartx.r1](value) {
-      this.r1 = value;
-    }
-    get [dartx.r2]() {
-      return this.r2;
-    }
-    set [dartx.r2](value) {
-      this.r2 = value;
-    }
-    get [dartx.sweepFlag]() {
-      return this.sweepFlag;
-    }
-    set [dartx.sweepFlag](value) {
-      this.sweepFlag = value;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegArcAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegArcAbs, [])}),
-    fields: () => ({
-      [dartx.angle]: core.num,
-      [dartx.largeArcFlag]: core.bool,
-      [dartx.r1]: core.num,
-      [dartx.r2]: core.num,
-      [dartx.sweepFlag]: core.bool,
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegArcAbs, svg$.PathSegArcAbs);
-  dart.defineExtensionNames([
-    'angle',
-    'largeArcFlag',
-    'r1',
-    'r2',
-    'sweepFlag',
-    'x',
-    'y'
-  ]);
-  svg$.PathSegArcRel = class PathSegArcRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.angle]() {
-      return this.angle;
-    }
-    set [dartx.angle](value) {
-      this.angle = value;
-    }
-    get [dartx.largeArcFlag]() {
-      return this.largeArcFlag;
-    }
-    set [dartx.largeArcFlag](value) {
-      this.largeArcFlag = value;
-    }
-    get [dartx.r1]() {
-      return this.r1;
-    }
-    set [dartx.r1](value) {
-      this.r1 = value;
-    }
-    get [dartx.r2]() {
-      return this.r2;
-    }
-    set [dartx.r2](value) {
-      this.r2 = value;
-    }
-    get [dartx.sweepFlag]() {
-      return this.sweepFlag;
-    }
-    set [dartx.sweepFlag](value) {
-      this.sweepFlag = value;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegArcRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegArcRel, [])}),
-    fields: () => ({
-      [dartx.angle]: core.num,
-      [dartx.largeArcFlag]: core.bool,
-      [dartx.r1]: core.num,
-      [dartx.r2]: core.num,
-      [dartx.sweepFlag]: core.bool,
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegArcRel, svg$.PathSegArcRel);
-  svg$.PathSegClosePath = class PathSegClosePath extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(svg$.PathSegClosePath, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegClosePath, [])})
-  });
-  dart.registerExtension(dart.global.SVGPathSegClosePath, svg$.PathSegClosePath);
-  dart.defineExtensionNames([
-    'x',
-    'x1',
-    'x2',
-    'y',
-    'y1',
-    'y2'
-  ]);
-  svg$.PathSegCurvetoCubicAbs = class PathSegCurvetoCubicAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.x1]() {
-      return this.x1;
-    }
-    set [dartx.x1](value) {
-      this.x1 = value;
-    }
-    get [dartx.x2]() {
-      return this.x2;
-    }
-    set [dartx.x2](value) {
-      this.x2 = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.y1]() {
-      return this.y1;
-    }
-    set [dartx.y1](value) {
-      this.y1 = value;
-    }
-    get [dartx.y2]() {
-      return this.y2;
-    }
-    set [dartx.y2](value) {
-      this.y2 = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoCubicAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicAbs, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.x1]: core.num,
-      [dartx.x2]: core.num,
-      [dartx.y]: core.num,
-      [dartx.y1]: core.num,
-      [dartx.y2]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoCubicAbs, svg$.PathSegCurvetoCubicAbs);
-  dart.defineExtensionNames([
-    'x',
-    'x1',
-    'x2',
-    'y',
-    'y1',
-    'y2'
-  ]);
-  svg$.PathSegCurvetoCubicRel = class PathSegCurvetoCubicRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.x1]() {
-      return this.x1;
-    }
-    set [dartx.x1](value) {
-      this.x1 = value;
-    }
-    get [dartx.x2]() {
-      return this.x2;
-    }
-    set [dartx.x2](value) {
-      this.x2 = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.y1]() {
-      return this.y1;
-    }
-    set [dartx.y1](value) {
-      this.y1 = value;
-    }
-    get [dartx.y2]() {
-      return this.y2;
-    }
-    set [dartx.y2](value) {
-      this.y2 = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoCubicRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicRel, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.x1]: core.num,
-      [dartx.x2]: core.num,
-      [dartx.y]: core.num,
-      [dartx.y1]: core.num,
-      [dartx.y2]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoCubicRel, svg$.PathSegCurvetoCubicRel);
-  dart.defineExtensionNames([
-    'x',
-    'x2',
-    'y',
-    'y2'
-  ]);
-  svg$.PathSegCurvetoCubicSmoothAbs = class PathSegCurvetoCubicSmoothAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.x2]() {
-      return this.x2;
-    }
-    set [dartx.x2](value) {
-      this.x2 = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.y2]() {
-      return this.y2;
-    }
-    set [dartx.y2](value) {
-      this.y2 = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoCubicSmoothAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothAbs, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.x2]: core.num,
-      [dartx.y]: core.num,
-      [dartx.y2]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothAbs, svg$.PathSegCurvetoCubicSmoothAbs);
-  dart.defineExtensionNames([
-    'x',
-    'x2',
-    'y',
-    'y2'
-  ]);
-  svg$.PathSegCurvetoCubicSmoothRel = class PathSegCurvetoCubicSmoothRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.x2]() {
-      return this.x2;
-    }
-    set [dartx.x2](value) {
-      this.x2 = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.y2]() {
-      return this.y2;
-    }
-    set [dartx.y2](value) {
-      this.y2 = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoCubicSmoothRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothRel, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.x2]: core.num,
-      [dartx.y]: core.num,
-      [dartx.y2]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothRel, svg$.PathSegCurvetoCubicSmoothRel);
-  dart.defineExtensionNames([
-    'x',
-    'x1',
-    'y',
-    'y1'
-  ]);
-  svg$.PathSegCurvetoQuadraticAbs = class PathSegCurvetoQuadraticAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.x1]() {
-      return this.x1;
-    }
-    set [dartx.x1](value) {
-      this.x1 = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.y1]() {
-      return this.y1;
-    }
-    set [dartx.y1](value) {
-      this.y1 = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoQuadraticAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticAbs, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.x1]: core.num,
-      [dartx.y]: core.num,
-      [dartx.y1]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticAbs, svg$.PathSegCurvetoQuadraticAbs);
-  dart.defineExtensionNames([
-    'x',
-    'x1',
-    'y',
-    'y1'
-  ]);
-  svg$.PathSegCurvetoQuadraticRel = class PathSegCurvetoQuadraticRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.x1]() {
-      return this.x1;
-    }
-    set [dartx.x1](value) {
-      this.x1 = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    get [dartx.y1]() {
-      return this.y1;
-    }
-    set [dartx.y1](value) {
-      this.y1 = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoQuadraticRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticRel, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.x1]: core.num,
-      [dartx.y]: core.num,
-      [dartx.y1]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticRel, svg$.PathSegCurvetoQuadraticRel);
-  dart.defineExtensionNames([
-    'x',
-    'y'
-  ]);
-  svg$.PathSegCurvetoQuadraticSmoothAbs = class PathSegCurvetoQuadraticSmoothAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoQuadraticSmoothAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothAbs, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothAbs, svg$.PathSegCurvetoQuadraticSmoothAbs);
-  dart.defineExtensionNames([
-    'x',
-    'y'
-  ]);
-  svg$.PathSegCurvetoQuadraticSmoothRel = class PathSegCurvetoQuadraticSmoothRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegCurvetoQuadraticSmoothRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothRel, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothRel, svg$.PathSegCurvetoQuadraticSmoothRel);
-  dart.defineExtensionNames([
-    'x',
-    'y'
-  ]);
-  svg$.PathSegLinetoAbs = class PathSegLinetoAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegLinetoAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoAbs, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegLinetoAbs, svg$.PathSegLinetoAbs);
-  dart.defineExtensionNames([
-    'x'
-  ]);
-  svg$.PathSegLinetoHorizontalAbs = class PathSegLinetoHorizontalAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegLinetoHorizontalAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalAbs, [])}),
-    fields: () => ({[dartx.x]: core.num})
-  });
-  dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalAbs, svg$.PathSegLinetoHorizontalAbs);
-  dart.defineExtensionNames([
-    'x'
-  ]);
-  svg$.PathSegLinetoHorizontalRel = class PathSegLinetoHorizontalRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegLinetoHorizontalRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalRel, [])}),
-    fields: () => ({[dartx.x]: core.num})
-  });
-  dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalRel, svg$.PathSegLinetoHorizontalRel);
-  dart.defineExtensionNames([
-    'x',
-    'y'
-  ]);
-  svg$.PathSegLinetoRel = class PathSegLinetoRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegLinetoRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoRel, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegLinetoRel, svg$.PathSegLinetoRel);
-  dart.defineExtensionNames([
-    'y'
-  ]);
-  svg$.PathSegLinetoVerticalAbs = class PathSegLinetoVerticalAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegLinetoVerticalAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoVerticalAbs, [])}),
-    fields: () => ({[dartx.y]: core.num})
-  });
-  dart.registerExtension(dart.global.SVGPathSegLinetoVerticalAbs, svg$.PathSegLinetoVerticalAbs);
-  dart.defineExtensionNames([
-    'y'
-  ]);
-  svg$.PathSegLinetoVerticalRel = class PathSegLinetoVerticalRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegLinetoVerticalRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoVerticalRel, [])}),
-    fields: () => ({[dartx.y]: core.num})
-  });
-  dart.registerExtension(dart.global.SVGPathSegLinetoVerticalRel, svg$.PathSegLinetoVerticalRel);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'appendItem',
-    'clear',
-    'getItem',
-    'initialize',
-    'insertItemBefore',
-    'removeItem',
-    'replaceItem',
-    'numberOfItems'
-  ]);
-  svg$.PathSegList = class PathSegList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.PathSeg), html$.ImmutableListMixin$(svg$.PathSeg)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfItems]() {
-      return this.numberOfItems;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.getItem](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
+    return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue)(indexed_db.Request._check(request), autoAdvance);
+  }
+  [dartx.openKeyCursor](opts) {
+    let key = opts && 'key' in opts ? opts.key : null;
+    let range = opts && 'range' in opts ? opts.range : null;
+    let direction = opts && 'direction' in opts ? opts.direction : null;
+    let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
+    let key_OR_range = null;
+    if (key != null) {
+      if (range != null) {
+        dart.throw(new core.ArgumentError('Cannot specify both key and range.'));
       }
-      dart.throw(new core.StateError("No elements"));
+      key_OR_range = key;
+    } else {
+      key_OR_range = range;
     }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
+    let request = null;
+    if (direction == null) {
+      request = this[_openKeyCursor](key_OR_range, "next");
+    } else {
+      request = this[_openKeyCursor](key_OR_range, direction);
+    }
+    return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.Cursor)(indexed_db.Request._check(request), autoAdvance);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.keyPath]() {
+    return this.keyPath;
+  }
+  get [dartx.multiEntry]() {
+    return this.multiEntry;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.objectStore]() {
+    return this.objectStore;
+  }
+  get [dartx.unique]() {
+    return this.unique;
+  }
+  [_count$0](...args) {
+    return this.count.apply(this, args);
+  }
+  [_get$](...args) {
+    return this.get.apply(this, args);
+  }
+  [dartx.getAll](...args) {
+    return this.getAll.apply(this, args);
+  }
+  [dartx.getAllKeys](...args) {
+    return this.getAllKeys.apply(this, args);
+  }
+  [_getKey$](...args) {
+    return this.getKey.apply(this, args);
+  }
+  [_openCursor](...args) {
+    return this.openCursor.apply(this, args);
+  }
+  [_openKeyCursor](...args) {
+    return this.openKeyCursor.apply(this, args);
+  }
+};
+dart.setSignature(indexed_db.Index, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.Index, [])}),
+  fields: () => ({
+    [dartx.keyPath]: core.Object,
+    [dartx.multiEntry]: core.bool,
+    [dartx.name]: core.String,
+    [dartx.objectStore]: indexed_db.ObjectStore,
+    [dartx.unique]: core.bool
+  }),
+  methods: () => ({
+    [dartx.count]: dart.definiteFunctionType(async.Future$(core.int), [], [dart.dynamic]),
+    [dartx.get]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.getKey]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.openCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
+    [dartx.openKeyCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.Cursor), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
+    [_count$0]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_get$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [dartx.getAll]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
+    [dartx.getAllKeys]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
+    [_getKey$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_openCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
+    [_openKeyCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String])
+  })
+});
+dart.registerExtension(dart.global.IDBIndex, indexed_db.Index);
+dart.defineExtensionNames([
+  'lower',
+  'lowerOpen',
+  'upper',
+  'upperOpen'
+]);
+indexed_db.KeyRange = class KeyRange extends _interceptors.Interceptor {
+  static only(value) {
+    return indexed_db._KeyRangeFactoryProvider.createKeyRange_only(value);
+  }
+  static lowerBound(bound, open) {
+    if (open === void 0) open = false;
+    return indexed_db._KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
+  }
+  static upperBound(bound, open) {
+    if (open === void 0) open = false;
+    return indexed_db._KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
+  }
+  static bound(lower, upper, lowerOpen, upperOpen) {
+    if (lowerOpen === void 0) lowerOpen = false;
+    if (upperOpen === void 0) upperOpen = false;
+    return indexed_db._KeyRangeFactoryProvider.createKeyRange_bound(lower, upper, lowerOpen, upperOpen);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.lower]() {
+    return this.lower;
+  }
+  get [dartx.lowerOpen]() {
+    return this.lowerOpen;
+  }
+  get [dartx.upper]() {
+    return this.upper;
+  }
+  get [dartx.upperOpen]() {
+    return this.upperOpen;
+  }
+};
+dart.setSignature(indexed_db.KeyRange, {
+  constructors: () => ({
+    only: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic]),
+    lowerBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
+    upperBound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic], [core.bool]),
+    bound: dart.definiteFunctionType(indexed_db.KeyRange, [dart.dynamic, dart.dynamic], [core.bool, core.bool]),
+    _: dart.definiteFunctionType(indexed_db.KeyRange, [])
+  }),
+  fields: () => ({
+    [dartx.lower]: core.Object,
+    [dartx.lowerOpen]: core.bool,
+    [dartx.upper]: core.Object,
+    [dartx.upperOpen]: core.bool
+  }),
+  statics: () => ({
+    bound_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object, core.Object], [core.bool, core.bool]),
+    lowerBound_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object], [core.bool]),
+    only_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object]),
+    upperBound_: dart.definiteFunctionType(indexed_db.KeyRange, [core.Object], [core.bool])
+  }),
+  names: ['bound_', 'lowerBound_', 'only_', 'upperBound_']
+});
+dart.registerExtension(dart.global.IDBKeyRange, indexed_db.KeyRange);
+const _add$3 = Symbol('_add');
+const _clear$0 = Symbol('_clear');
+const _put = Symbol('_put');
+const _createIndex = Symbol('_createIndex');
+const _add_1 = Symbol('_add_1');
+const _add_2 = Symbol('_add_2');
+const _createIndex_1 = Symbol('_createIndex_1');
+const _createIndex_2 = Symbol('_createIndex_2');
+const _put_1 = Symbol('_put_1');
+const _put_2 = Symbol('_put_2');
+dart.defineExtensionNames([
+  'add',
+  'clear',
+  'delete',
+  'count',
+  'put',
+  'getObject',
+  'openCursor',
+  'createIndex',
+  'deleteIndex',
+  'getAll',
+  'getAllKeys',
+  'index',
+  'openKeyCursor',
+  'autoIncrement',
+  'indexNames',
+  'keyPath',
+  'name',
+  'transaction'
+]);
+indexed_db.ObjectStore = class ObjectStore extends _interceptors.Interceptor {
+  [dartx.add](value, key) {
+    if (key === void 0) key = null;
+    try {
+      let request = null;
+      if (key != null) {
+        request = this[_add$3](value, key);
+      } else {
+        request = this[_add$3](value);
       }
-      dart.throw(new core.StateError("No elements"));
+      return indexed_db._completeRequest(dart.dynamic)(indexed_db.Request._check(request));
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
     }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
+
+  }
+  [dartx.clear]() {
+    try {
+      return indexed_db._completeRequest(dart.dynamic)(this[_clear$0]());
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
+    }
+
+  }
+  [dartx.delete](key_OR_keyRange) {
+    try {
+      return indexed_db._completeRequest(dart.dynamic)(this[_delete$](key_OR_keyRange));
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
+    }
+
+  }
+  [dartx.count](key_OR_range) {
+    if (key_OR_range === void 0) key_OR_range = null;
+    try {
+      let request = this[_count$0](key_OR_range);
+      return indexed_db._completeRequest(core.int)(request);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return FutureOfint().error(e, stacktrace);
+    }
+
+  }
+  [dartx.put](value, key) {
+    if (key === void 0) key = null;
+    try {
+      let request = null;
+      if (key != null) {
+        request = this[_put](value, key);
+      } else {
+        request = this[_put](value);
       }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
+      return indexed_db._completeRequest(dart.dynamic)(indexed_db.Request._check(request));
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
     }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
+
+  }
+  [dartx.getObject](key) {
+    try {
+      let request = this[_get$](key);
+      return indexed_db._completeRequest(dart.dynamic)(request);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      return async.Future.error(e, stacktrace);
     }
-    [__setter__$](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.appendItem](...args) {
-      return this.appendItem.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [dartx.initialize](...args) {
-      return this.initialize.apply(this, args);
-    }
-    [dartx.insertItemBefore](...args) {
-      return this.insertItemBefore.apply(this, args);
-    }
-    [dartx.removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [dartx.replaceItem](...args) {
-      return this.replaceItem.apply(this, args);
-    }
-  };
-  svg$.PathSegList[dart.implements] = () => [ListOfPathSeg()];
-  dart.setSignature(svg$.PathSegList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegList, [])}),
-    fields: () => ({[dartx.numberOfItems]: core.int}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.PathSeg]),
-      [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.PathSeg]),
-      [dartx.appendItem]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg]),
-      [dartx.getItem]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
-      [dartx.initialize]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg]),
-      [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg, core.int]),
-      [dartx.removeItem]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
-      [dartx.replaceItem]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegList, svg$.PathSegList);
-  dart.defineExtensionNames([
-    'x',
-    'y'
-  ]);
-  svg$.PathSegMovetoAbs = class PathSegMovetoAbs extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegMovetoAbs, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegMovetoAbs, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegMovetoAbs, svg$.PathSegMovetoAbs);
-  dart.defineExtensionNames([
-    'x',
-    'y'
-  ]);
-  svg$.PathSegMovetoRel = class PathSegMovetoRel extends svg$.PathSeg {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.PathSegMovetoRel, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegMovetoRel, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGPathSegMovetoRel, svg$.PathSegMovetoRel);
-  dart.defineExtensionNames([
-    'hasExtension',
-    'height',
-    'patternContentUnits',
-    'patternTransform',
-    'patternUnits',
-    'width',
-    'x',
-    'y',
-    'preserveAspectRatio',
-    'viewBox',
-    'requiredExtensions',
-    'requiredFeatures',
-    'systemLanguage',
-    'href'
-  ]);
-  svg$.PatternElement = class PatternElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.PatternElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("pattern"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.patternContentUnits] = null;
-      this[dartx.patternTransform] = null;
-      this[dartx.patternUnits] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.viewBox] = null;
-      this[dartx.requiredExtensions] = null;
-      this[dartx.requiredFeatures] = null;
-      this[dartx.systemLanguage] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.patternContentUnits]() {
-      return this.patternContentUnits;
-    }
-    get [dartx.patternTransform]() {
-      return this.patternTransform;
-    }
-    get [dartx.patternUnits]() {
-      return this.patternUnits;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.viewBox]() {
-      return this.viewBox;
-    }
-    get [dartx.requiredExtensions]() {
-      return this.requiredExtensions;
-    }
-    get [dartx.requiredFeatures]() {
-      return this.requiredFeatures;
-    }
-    get [dartx.systemLanguage]() {
-      return this.systemLanguage;
-    }
-    [dartx.hasExtension](...args) {
-      return this.hasExtension.apply(this, args);
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.PatternElement, 'created');
-  svg$.PatternElement[dart.implements] = () => [svg$.FitToViewBox, svg$.UriReference, svg$.Tests];
-  dart.setSignature(svg$.PatternElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.PatternElement, []),
-      new: dart.definiteFunctionType(svg$.PatternElement, []),
-      created: dart.definiteFunctionType(svg$.PatternElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.patternContentUnits]: svg$.AnimatedEnumeration,
-      [dartx.patternTransform]: svg$.AnimatedTransformList,
-      [dartx.patternUnits]: svg$.AnimatedEnumeration,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.viewBox]: svg$.AnimatedRect,
-      [dartx.requiredExtensions]: svg$.StringList,
-      [dartx.requiredFeatures]: svg$.StringList,
-      [dartx.systemLanguage]: svg$.StringList,
-      [dartx.href]: svg$.AnimatedString
-    }),
-    methods: () => ({[dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])})
-  });
-  dart.registerExtension(dart.global.SVGPatternElement, svg$.PatternElement);
-  dart.defineExtensionNames([
-    'matrixTransform',
-    'x',
-    'y'
-  ]);
-  svg$.Point = class Point extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-    [dartx.matrixTransform](...args) {
-      return this.matrixTransform.apply(this, args);
-    }
-  };
-  dart.setSignature(svg$.Point, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Point, [])}),
-    fields: () => ({
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    }),
-    methods: () => ({[dartx.matrixTransform]: dart.definiteFunctionType(svg$.Point, [svg$.Matrix])})
-  });
-  dart.registerExtension(dart.global.SVGPoint, svg$.Point);
-  dart.defineExtensionNames([
-    'appendItem',
-    'clear',
-    'getItem',
-    'initialize',
-    'insertItemBefore',
-    'removeItem',
-    'replaceItem',
-    'length',
-    'numberOfItems'
-  ]);
-  svg$.PointList = class PointList extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfItems]() {
-      return this.numberOfItems;
-    }
-    [__setter__$](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.appendItem](...args) {
-      return this.appendItem.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [dartx.initialize](...args) {
-      return this.initialize.apply(this, args);
-    }
-    [dartx.insertItemBefore](...args) {
-      return this.insertItemBefore.apply(this, args);
-    }
-    [dartx.removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [dartx.replaceItem](...args) {
-      return this.replaceItem.apply(this, args);
-    }
-  };
-  dart.setSignature(svg$.PointList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PointList, [])}),
-    fields: () => ({
-      [dartx.length]: core.int,
-      [dartx.numberOfItems]: core.int
-    }),
-    methods: () => ({
-      [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Point]),
-      [dartx.appendItem]: dart.definiteFunctionType(svg$.Point, [svg$.Point]),
-      [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-      [dartx.getItem]: dart.definiteFunctionType(svg$.Point, [core.int]),
-      [dartx.initialize]: dart.definiteFunctionType(svg$.Point, [svg$.Point]),
-      [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Point, [svg$.Point, core.int]),
-      [dartx.removeItem]: dart.definiteFunctionType(svg$.Point, [core.int]),
-      [dartx.replaceItem]: dart.definiteFunctionType(svg$.Point, [svg$.Point, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SVGPointList, svg$.PointList);
-  dart.defineExtensionNames([
-    'animatedPoints',
-    'points'
-  ]);
-  svg$.PolygonElement = class PolygonElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.PolygonElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("polygon"));
-    }
-    created() {
-      this[dartx.animatedPoints] = null;
-      this[dartx.points] = null;
-      super.created();
-    }
-    get [dartx.animatedPoints]() {
-      return this.animatedPoints;
-    }
-    get [dartx.points]() {
-      return this.points;
-    }
-  };
-  dart.defineNamedConstructor(svg$.PolygonElement, 'created');
-  dart.setSignature(svg$.PolygonElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.PolygonElement, []),
-      new: dart.definiteFunctionType(svg$.PolygonElement, []),
-      created: dart.definiteFunctionType(svg$.PolygonElement, [])
-    }),
-    fields: () => ({
-      [dartx.animatedPoints]: svg$.PointList,
-      [dartx.points]: svg$.PointList
-    })
-  });
-  dart.registerExtension(dart.global.SVGPolygonElement, svg$.PolygonElement);
-  dart.defineExtensionNames([
-    'animatedPoints',
-    'points'
-  ]);
-  svg$.PolylineElement = class PolylineElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.PolylineElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("polyline"));
-    }
-    created() {
-      this[dartx.animatedPoints] = null;
-      this[dartx.points] = null;
-      super.created();
-    }
-    get [dartx.animatedPoints]() {
-      return this.animatedPoints;
-    }
-    get [dartx.points]() {
-      return this.points;
-    }
-  };
-  dart.defineNamedConstructor(svg$.PolylineElement, 'created');
-  dart.setSignature(svg$.PolylineElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.PolylineElement, []),
-      new: dart.definiteFunctionType(svg$.PolylineElement, []),
-      created: dart.definiteFunctionType(svg$.PolylineElement, [])
-    }),
-    fields: () => ({
-      [dartx.animatedPoints]: svg$.PointList,
-      [dartx.points]: svg$.PointList
-    })
-  });
-  dart.registerExtension(dart.global.SVGPolylineElement, svg$.PolylineElement);
-  dart.defineExtensionNames([
-    'align',
-    'meetOrSlice'
-  ]);
-  svg$.PreserveAspectRatio = class PreserveAspectRatio extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.align]() {
-      return this.align;
-    }
-    set [dartx.align](value) {
-      this.align = value;
-    }
-    get [dartx.meetOrSlice]() {
-      return this.meetOrSlice;
-    }
-    set [dartx.meetOrSlice](value) {
-      this.meetOrSlice = value;
-    }
-  };
-  dart.setSignature(svg$.PreserveAspectRatio, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.PreserveAspectRatio, [])}),
-    fields: () => ({
-      [dartx.align]: core.int,
-      [dartx.meetOrSlice]: core.int
-    }),
-    sfields: () => ({
-      SVG_MEETORSLICE_MEET: core.int,
-      SVG_MEETORSLICE_SLICE: core.int,
-      SVG_MEETORSLICE_UNKNOWN: core.int,
-      SVG_PRESERVEASPECTRATIO_NONE: core.int,
-      SVG_PRESERVEASPECTRATIO_UNKNOWN: core.int,
-      SVG_PRESERVEASPECTRATIO_XMAXYMAX: core.int,
-      SVG_PRESERVEASPECTRATIO_XMAXYMID: core.int,
-      SVG_PRESERVEASPECTRATIO_XMAXYMIN: core.int,
-      SVG_PRESERVEASPECTRATIO_XMIDYMAX: core.int,
-      SVG_PRESERVEASPECTRATIO_XMIDYMID: core.int,
-      SVG_PRESERVEASPECTRATIO_XMIDYMIN: core.int,
-      SVG_PRESERVEASPECTRATIO_XMINYMAX: core.int,
-      SVG_PRESERVEASPECTRATIO_XMINYMID: core.int,
-      SVG_PRESERVEASPECTRATIO_XMINYMIN: core.int
-    })
-  });
-  svg$.PreserveAspectRatio.SVG_MEETORSLICE_MEET = 1;
-  svg$.PreserveAspectRatio.SVG_MEETORSLICE_SLICE = 2;
-  svg$.PreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN = 0;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE = 1;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
-  svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
-  dart.registerExtension(dart.global.SVGPreserveAspectRatio, svg$.PreserveAspectRatio);
-  dart.defineExtensionNames([
-    'cx',
-    'cy',
-    'fr',
-    'fx',
-    'fy',
-    'r'
-  ]);
-  svg$.RadialGradientElement = class RadialGradientElement extends svg$._GradientElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.RadialGradientElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("radialGradient"));
-    }
-    created() {
-      this[dartx.cx] = null;
-      this[dartx.cy] = null;
-      this[dartx.fr] = null;
-      this[dartx.fx] = null;
-      this[dartx.fy] = null;
-      this[dartx.r] = null;
-      super.created();
-    }
-    get [dartx.cx]() {
-      return this.cx;
-    }
-    get [dartx.cy]() {
-      return this.cy;
-    }
-    get [dartx.fr]() {
-      return this.fr;
-    }
-    get [dartx.fx]() {
-      return this.fx;
-    }
-    get [dartx.fy]() {
-      return this.fy;
-    }
-    get [dartx.r]() {
-      return this.r;
-    }
-  };
-  dart.defineNamedConstructor(svg$.RadialGradientElement, 'created');
-  dart.setSignature(svg$.RadialGradientElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.RadialGradientElement, []),
-      new: dart.definiteFunctionType(svg$.RadialGradientElement, []),
-      created: dart.definiteFunctionType(svg$.RadialGradientElement, [])
-    }),
-    fields: () => ({
-      [dartx.cx]: svg$.AnimatedLength,
-      [dartx.cy]: svg$.AnimatedLength,
-      [dartx.fr]: svg$.AnimatedLength,
-      [dartx.fx]: svg$.AnimatedLength,
-      [dartx.fy]: svg$.AnimatedLength,
-      [dartx.r]: svg$.AnimatedLength
-    })
-  });
-  dart.registerExtension(dart.global.SVGRadialGradientElement, svg$.RadialGradientElement);
-  dart.defineExtensionNames([
-    'height',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.Rect = class Rect extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    set [dartx.height](value) {
-      this.height = value;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    set [dartx.width](value) {
-      this.width = value;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    set [dartx.x](value) {
-      this.x = value;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    set [dartx.y](value) {
-      this.y = value;
-    }
-  };
-  dart.setSignature(svg$.Rect, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Rect, [])}),
-    fields: () => ({
-      [dartx.height]: core.num,
-      [dartx.width]: core.num,
-      [dartx.x]: core.num,
-      [dartx.y]: core.num
-    })
-  });
-  dart.registerExtension(dart.global.SVGRect, svg$.Rect);
-  dart.defineExtensionNames([
-    'height',
-    'rx',
-    'ry',
-    'width',
-    'x',
-    'y'
-  ]);
-  svg$.RectElement = class RectElement extends svg$.GeometryElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.RectElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("rect"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.rx] = null;
-      this[dartx.ry] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.rx]() {
-      return this.rx;
-    }
-    get [dartx.ry]() {
-      return this.ry;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.RectElement, 'created');
-  dart.setSignature(svg$.RectElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.RectElement, []),
-      new: dart.definiteFunctionType(svg$.RectElement, []),
-      created: dart.definiteFunctionType(svg$.RectElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.rx]: svg$.AnimatedLength,
-      [dartx.ry]: svg$.AnimatedLength,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength
-    })
-  });
-  dart.registerExtension(dart.global.SVGRectElement, svg$.RectElement);
-  dart.defineExtensionNames([
-    'type',
-    'href'
-  ]);
-  svg$.ScriptElement = class ScriptElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.ScriptElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("script"));
-    }
-    created() {
-      this[dartx.type] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.ScriptElement, 'created');
-  svg$.ScriptElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$.ScriptElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.ScriptElement, []),
-      new: dart.definiteFunctionType(svg$.ScriptElement, []),
-      created: dart.definiteFunctionType(svg$.ScriptElement, [])
-    }),
-    fields: () => ({
-      [dartx.type]: core.String,
-      [dartx.href]: svg$.AnimatedString
-    })
-  });
-  dart.registerExtension(dart.global.SVGScriptElement, svg$.ScriptElement);
-  svg$.SetElement = class SetElement extends svg$.AnimationElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.SetElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("set"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('set')) && svg$.SetElement.is(svg$.SvgElement.tag('set'));
-    }
-  };
-  dart.defineNamedConstructor(svg$.SetElement, 'created');
-  dart.setSignature(svg$.SetElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.SetElement, []),
-      new: dart.definiteFunctionType(svg$.SetElement, []),
-      created: dart.definiteFunctionType(svg$.SetElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGSetElement, svg$.SetElement);
-  dart.defineExtensionNames([
-    'gradientOffset'
-  ]);
-  svg$.StopElement = class StopElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.StopElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("stop"));
-    }
-    created() {
-      this[dartx.gradientOffset] = null;
-      super.created();
-    }
-    get [dartx.gradientOffset]() {
-      return this.offset;
-    }
-  };
-  dart.defineNamedConstructor(svg$.StopElement, 'created');
-  dart.setSignature(svg$.StopElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.StopElement, []),
-      new: dart.definiteFunctionType(svg$.StopElement, []),
-      created: dart.definiteFunctionType(svg$.StopElement, [])
-    }),
-    fields: () => ({[dartx.gradientOffset]: svg$.AnimatedNumber})
-  });
-  dart.registerExtension(dart.global.SVGStopElement, svg$.StopElement);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'appendItem',
-    'clear',
-    'getItem',
-    'initialize',
-    'insertItemBefore',
-    'removeItem',
-    'replaceItem',
-    'numberOfItems'
-  ]);
-  svg$.StringList = class StringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html$.ImmutableListMixin$(core.String)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfItems]() {
-      return this.numberOfItems;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.getItem](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
+
+  }
+  [dartx.openCursor](opts) {
+    let key = opts && 'key' in opts ? opts.key : null;
+    let range = opts && 'range' in opts ? opts.range : null;
+    let direction = opts && 'direction' in opts ? opts.direction : null;
+    let autoAdvance = opts && 'autoAdvance' in opts ? opts.autoAdvance : null;
+    let key_OR_range = null;
+    if (key != null) {
+      if (range != null) {
+        dart.throw(new core.ArgumentError('Cannot specify both key and range.'));
       }
-      dart.throw(new core.StateError("No elements"));
+      key_OR_range = key;
+    } else {
+      key_OR_range = range;
     }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
+    let request = null;
+    if (direction == null) {
+      request = this[_openCursor](key_OR_range);
+    } else {
+      request = this[_openCursor](key_OR_range, direction);
     }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
+    return indexed_db.ObjectStore._cursorStreamFromResult(indexed_db.CursorWithValue)(indexed_db.Request._check(request), autoAdvance);
+  }
+  [dartx.createIndex](name, keyPath, opts) {
+    let unique = opts && 'unique' in opts ? opts.unique : null;
+    let multiEntry = opts && 'multiEntry' in opts ? opts.multiEntry : null;
+    let options = dart.map();
+    if (unique != null) {
+      options[dartx._set]('unique', unique);
     }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
+    if (multiEntry != null) {
+      options[dartx._set]('multiEntry', multiEntry);
     }
-    [__setter__$](...args) {
-      return this.__setter__.apply(this, args);
+    return this[_createIndex](name, keyPath, options);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.autoIncrement]() {
+    return this.autoIncrement;
+  }
+  get [dartx.indexNames]() {
+    return this.indexNames;
+  }
+  get [dartx.keyPath]() {
+    return this.keyPath;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.transaction]() {
+    return this.transaction;
+  }
+  [_add$3](value, key) {
+    if (key === void 0) key = null;
+    if (key != null) {
+      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
+      let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
+      return this[_add_1](value_1, key_2);
     }
-    [dartx.appendItem](...args) {
-      return this.appendItem.apply(this, args);
+    let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
+    return this[_add_2](value_1);
+  }
+  [_add_1](...args) {
+    return this.add.apply(this, args);
+  }
+  [_add_2](...args) {
+    return this.add.apply(this, args);
+  }
+  [_clear$0](...args) {
+    return this.clear.apply(this, args);
+  }
+  [_count$0](...args) {
+    return this.count.apply(this, args);
+  }
+  [_createIndex](name, keyPath, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_createIndex_1](name, keyPath, options_1);
     }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
+    return this[_createIndex_2](name, keyPath);
+  }
+  [_createIndex_1](...args) {
+    return this.createIndex.apply(this, args);
+  }
+  [_createIndex_2](...args) {
+    return this.createIndex.apply(this, args);
+  }
+  [_delete$](...args) {
+    return this.delete.apply(this, args);
+  }
+  [dartx.deleteIndex](...args) {
+    return this.deleteIndex.apply(this, args);
+  }
+  [_get$](...args) {
+    return this.get.apply(this, args);
+  }
+  [dartx.getAll](...args) {
+    return this.getAll.apply(this, args);
+  }
+  [dartx.getAllKeys](...args) {
+    return this.getAllKeys.apply(this, args);
+  }
+  [dartx.index](...args) {
+    return this.index.apply(this, args);
+  }
+  [_openCursor](...args) {
+    return this.openCursor.apply(this, args);
+  }
+  [dartx.openKeyCursor](...args) {
+    return this.openKeyCursor.apply(this, args);
+  }
+  [_put](value, key) {
+    if (key === void 0) key = null;
+    if (key != null) {
+      let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
+      let key_2 = html_common.convertDartToNative_SerializedScriptValue(key);
+      return this[_put_1](value_1, key_2);
     }
-    [dartx.getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [dartx.initialize](...args) {
-      return this.initialize.apply(this, args);
-    }
-    [dartx.insertItemBefore](...args) {
-      return this.insertItemBefore.apply(this, args);
-    }
-    [dartx.removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [dartx.replaceItem](...args) {
-      return this.replaceItem.apply(this, args);
-    }
+    let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
+    return this[_put_2](value_1);
+  }
+  [_put_1](...args) {
+    return this.put.apply(this, args);
+  }
+  [_put_2](...args) {
+    return this.put.apply(this, args);
+  }
+  static _cursorStreamFromResult(T) {
+    return (request, autoAdvance) => {
+      let controller = async.StreamController$(T).new({sync: true});
+      request[dartx.onError].listen(dart.bind(controller, 'addError'));
+      request[dartx.onSuccess].listen(dart.fn(e => {
+        let cursor = indexed_db._cast(T)(request[dartx.result]);
+        if (cursor == null) {
+          controller.close();
+        } else {
+          controller.add(cursor);
+          if (autoAdvance == true && dart.test(controller.hasListener)) {
+            cursor[dartx.next]();
+          }
+        }
+      }, EventToNull()));
+      return controller.stream;
+    };
+  }
+};
+dart.setSignature(indexed_db.ObjectStore, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.ObjectStore, [])}),
+  fields: () => ({
+    [dartx.autoIncrement]: core.bool,
+    [dartx.indexNames]: ListOfString(),
+    [dartx.keyPath]: core.Object,
+    [dartx.name]: core.String,
+    [dartx.transaction]: indexed_db.Transaction
+  }),
+  methods: () => ({
+    [dartx.add]: dart.definiteFunctionType(async.Future, [dart.dynamic], [dart.dynamic]),
+    [dartx.clear]: dart.definiteFunctionType(async.Future, []),
+    [dartx.delete]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.count]: dart.definiteFunctionType(async.Future$(core.int), [], [dart.dynamic]),
+    [dartx.put]: dart.definiteFunctionType(async.Future, [dart.dynamic], [dart.dynamic]),
+    [dartx.getObject]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.openCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
+    [dartx.createIndex]: dart.definiteFunctionType(indexed_db.Index, [core.String, dart.dynamic], {unique: core.bool, multiEntry: core.bool}),
+    [_add$3]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
+    [_add_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
+    [_add_2]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic]),
+    [_clear$0]: dart.definiteFunctionType(indexed_db.Request, []),
+    [_count$0]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_createIndex]: dart.definiteFunctionType(indexed_db.Index, [core.String, core.Object], [core.Map]),
+    [_createIndex_1]: dart.definiteFunctionType(indexed_db.Index, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_createIndex_2]: dart.definiteFunctionType(indexed_db.Index, [dart.dynamic, dart.dynamic]),
+    [_delete$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [dartx.deleteIndex]: dart.definiteFunctionType(dart.void, [core.String]),
+    [_get$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [dartx.getAll]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
+    [dartx.getAllKeys]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
+    [dartx.index]: dart.definiteFunctionType(indexed_db.Index, [core.String]),
+    [_openCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
+    [dartx.openKeyCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
+    [_put]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
+    [_put_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
+    [_put_2]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic])
+  }),
+  statics: () => ({_cursorStreamFromResult: dart.definiteFunctionType(T => [async.Stream$(T), [indexed_db.Request, core.bool]])}),
+  names: ['_cursorStreamFromResult']
+});
+dart.registerExtension(dart.global.IDBObjectStore, indexed_db.ObjectStore);
+indexed_db._cast = function(To) {
+  return x => {
+    return To._check(x);
   };
-  svg$.StringList[dart.implements] = () => [ListOfString()];
-  dart.setSignature(svg$.StringList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.StringList, [])}),
-    fields: () => ({[dartx.numberOfItems]: core.int}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
-      [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
-      [dartx.appendItem]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.getItem]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.initialize]: dart.definiteFunctionType(core.String, [core.String]),
-      [dartx.insertItemBefore]: dart.definiteFunctionType(core.String, [core.String, core.int]),
-      [dartx.removeItem]: dart.definiteFunctionType(core.String, [core.int]),
-      [dartx.replaceItem]: dart.definiteFunctionType(core.String, [core.String, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SVGStringList, svg$.StringList);
-  dart.defineExtensionNames([
-    'disabled',
-    'media',
-    'sheet',
-    'type'
-  ]);
-  svg$.StyleElement = class StyleElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.StyleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("style"));
-    }
-    created() {
-      this[dartx.disabled] = null;
-      this[dartx.media] = null;
-      this[dartx.sheet] = null;
-      this[dartx.type] = null;
-      super.created();
-    }
-    get [dartx.disabled]() {
-      return this.disabled;
-    }
-    set [dartx.disabled](value) {
-      this.disabled = value;
-    }
-    get [dartx.media]() {
-      return this.media;
-    }
-    set [dartx.media](value) {
-      this.media = value;
-    }
-    get [dartx.sheet]() {
-      return this.sheet;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-  };
-  dart.defineNamedConstructor(svg$.StyleElement, 'created');
-  dart.setSignature(svg$.StyleElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.StyleElement, []),
-      new: dart.definiteFunctionType(svg$.StyleElement, []),
-      created: dart.definiteFunctionType(svg$.StyleElement, [])
-    }),
-    fields: () => ({
-      [dartx.disabled]: core.bool,
-      [dartx.media]: core.String,
-      [dartx.sheet]: html$.StyleSheet,
-      [dartx.type]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.SVGStyleElement, svg$.StyleElement);
-  const _element$0 = Symbol('_element');
-  svg$._AttributeClassSet = class _AttributeClassSet extends html_common.CssClassSetImpl {
-    new(element) {
-      this[_element$0] = element;
-    }
-    readClasses() {
-      let classname = this[_element$0][dartx.attributes][dartx._get]('class');
-      let s = LinkedHashSetOfString().new();
-      if (classname == null) {
-        return s;
+};
+dart.fn(indexed_db._cast, dynamicToTo());
+const _get_result = Symbol('_get_result');
+dart.defineExtensionNames([
+  'result',
+  'onError',
+  'onSuccess',
+  'error',
+  'readyState',
+  'source',
+  'transaction'
+]);
+indexed_db.Request = class Request extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.result]() {
+    return indexed_db._convertNativeToDart_IDBAny(this[_get_result]);
+  }
+  get [_get_result]() {
+    return this.result;
+  }
+  get [dartx.source]() {
+    return this.source;
+  }
+  get [dartx.transaction]() {
+    return this.transaction;
+  }
+  get [dartx.onError]() {
+    return indexed_db.Request.errorEvent.forTarget(this);
+  }
+  get [dartx.onSuccess]() {
+    return indexed_db.Request.successEvent.forTarget(this);
+  }
+};
+dart.setSignature(indexed_db.Request, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.Request, [])}),
+  fields: () => ({
+    [dartx.error]: html$.DomError,
+    [dartx.readyState]: core.String,
+    [_get_result]: dart.dynamic,
+    [dartx.source]: core.Object,
+    [dartx.transaction]: indexed_db.Transaction
+  }),
+  getters: () => ({
+    [dartx.result]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSuccess]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  sfields: () => ({
+    errorEvent: EventStreamProviderOfEvent(),
+    successEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(indexed_db.Request, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get successEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('success'));
+  }
+});
+dart.registerExtension(dart.global.IDBRequest, indexed_db.Request);
+dart.defineExtensionNames([
+  'onBlocked',
+  'onUpgradeNeeded'
+]);
+indexed_db.OpenDBRequest = class OpenDBRequest extends indexed_db.Request {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.onBlocked]() {
+    return indexed_db.OpenDBRequest.blockedEvent.forTarget(this);
+  }
+  get [dartx.onUpgradeNeeded]() {
+    return indexed_db.OpenDBRequest.upgradeNeededEvent.forTarget(this);
+  }
+};
+dart.setSignature(indexed_db.OpenDBRequest, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.OpenDBRequest, [])}),
+  getters: () => ({
+    [dartx.onBlocked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onUpgradeNeeded]: dart.definiteFunctionType(async.Stream$(indexed_db.VersionChangeEvent), [])
+  }),
+  sfields: () => ({
+    blockedEvent: EventStreamProviderOfEvent(),
+    upgradeNeededEvent: EventStreamProviderOfVersionChangeEvent()
+  })
+});
+dart.defineLazy(indexed_db.OpenDBRequest, {
+  get blockedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('blocked'));
+  },
+  get upgradeNeededEvent() {
+    return dart.const(new (EventStreamProviderOfVersionChangeEvent())('upgradeneeded'));
+  }
+});
+dart.registerExtension(dart.global.IDBOpenDBRequest, indexed_db.OpenDBRequest);
+dart.registerExtension(dart.global.IDBVersionChangeRequest, indexed_db.OpenDBRequest);
+dart.defineExtensionNames([
+  'completed',
+  'abort',
+  'objectStore',
+  'onAbort',
+  'onComplete',
+  'onError',
+  'db',
+  'error',
+  'mode',
+  'objectStoreNames'
+]);
+indexed_db.Transaction = class Transaction extends html$.EventTarget {
+  get [dartx.completed]() {
+    let completer = CompleterOfDatabase().new();
+    this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
+      completer.complete(this[dartx.db]);
+    }, EventToNull()));
+    this[dartx.onError].first.then(dart.dynamic)(dart.fn(e => {
+      completer.completeError(e);
+    }, EventToNull()));
+    this[dartx.onAbort].first.then(dart.dynamic)(dart.fn(e => {
+      if (!dart.test(completer.isCompleted)) {
+        completer.completeError(e);
       }
-      for (let name of classname[dartx.split](' ')) {
-        let trimmed = name[dartx.trim]();
-        if (!dart.test(trimmed[dartx.isEmpty])) {
-          s.add(trimmed);
+    }, EventToNull()));
+    return completer.future;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.db]() {
+    return this.db;
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.mode]() {
+    return this.mode;
+  }
+  get [dartx.objectStoreNames]() {
+    return this.objectStoreNames;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.objectStore](...args) {
+    return this.objectStore.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return indexed_db.Transaction.abortEvent.forTarget(this);
+  }
+  get [dartx.onComplete]() {
+    return indexed_db.Transaction.completeEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return indexed_db.Transaction.errorEvent.forTarget(this);
+  }
+};
+dart.setSignature(indexed_db.Transaction, {
+  constructors: () => ({_: dart.definiteFunctionType(indexed_db.Transaction, [])}),
+  fields: () => ({
+    [dartx.db]: indexed_db.Database,
+    [dartx.error]: html$.DomError,
+    [dartx.mode]: core.String,
+    [dartx.objectStoreNames]: ListOfString()
+  }),
+  getters: () => ({
+    [dartx.completed]: dart.definiteFunctionType(async.Future$(indexed_db.Database), []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.objectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String])
+  }),
+  sfields: () => ({
+    abortEvent: EventStreamProviderOfEvent(),
+    completeEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(indexed_db.Transaction, {
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('abort'));
+  },
+  get completeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('complete'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  }
+});
+dart.registerExtension(dart.global.IDBTransaction, indexed_db.Transaction);
+const _createEvent = Symbol('_createEvent');
+const _initEvent = Symbol('_initEvent');
+const _selector = Symbol('_selector');
+const _get_currentTarget = Symbol('_get_currentTarget');
+const _get_target = Symbol('_get_target');
+dart.defineExtensionNames([
+  'matchingTarget',
+  'currentTarget',
+  'target',
+  'preventDefault',
+  'stopImmediatePropagation',
+  'stopPropagation',
+  'bubbles',
+  'cancelable',
+  'defaultPrevented',
+  'eventPhase',
+  'path',
+  'timeStamp',
+  'type'
+]);
+html$.Event = class Event extends _interceptors.Interceptor {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    return html$.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
+  }
+  static eventType(type, name, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let e = html$.document[_createEvent](type);
+    e[_initEvent](name, canBubble, cancelable);
+    return e;
+  }
+  get [_selector]() {
+    return this._selector;
+  }
+  set [_selector](value) {
+    this._selector = value;
+  }
+  get [dartx.matchingTarget]() {
+    if (this[_selector] == null) {
+      dart.throw(new core.UnsupportedError('Cannot call matchingTarget if this Event did' + ' not arise as a result of event delegation.'));
+    }
+    let currentTarget = html$.Element._check(this[dartx.currentTarget]);
+    let target = html$.Element._check(this[dartx.target]);
+    let matchedTarget = null;
+    do {
+      if (dart.test(target[dartx.matches](this[_selector]))) return target;
+      target = target[dartx.parent];
+    } while (target != null && !dart.equals(target, currentTarget[dartx.parent]));
+    dart.throw(new core.StateError('No selector matched for populating matchedTarget.'));
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.Event._create_1(type, eventInitDict_1);
+    }
+    return html$.Event._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.Event(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.Event(type);
+  }
+  get [dartx.bubbles]() {
+    return this.bubbles;
+  }
+  get [dartx.cancelable]() {
+    return this.cancelable;
+  }
+  get [dartx.currentTarget]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_currentTarget]);
+  }
+  get [_get_currentTarget]() {
+    return this.currentTarget;
+  }
+  get [dartx.defaultPrevented]() {
+    return this.defaultPrevented;
+  }
+  get [dartx.eventPhase]() {
+    return this.eventPhase;
+  }
+  get [dartx.path]() {
+    return this.path;
+  }
+  get [dartx.target]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_target]);
+  }
+  get [_get_target]() {
+    return this.target;
+  }
+  get [dartx.timeStamp]() {
+    return this.timeStamp;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [_initEvent](...args) {
+    return this.initEvent.apply(this, args);
+  }
+  [dartx.preventDefault](...args) {
+    return this.preventDefault.apply(this, args);
+  }
+  [dartx.stopImmediatePropagation](...args) {
+    return this.stopImmediatePropagation.apply(this, args);
+  }
+  [dartx.stopPropagation](...args) {
+    return this.stopPropagation.apply(this, args);
+  }
+};
+dart.setSignature(html$.Event, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.Event, [core.String], {canBubble: core.bool, cancelable: core.bool}),
+    eventType: dart.definiteFunctionType(html$.Event, [core.String, core.String], {canBubble: core.bool, cancelable: core.bool}),
+    _: dart.definiteFunctionType(html$.Event, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [_selector]: core.String,
+    [dartx.bubbles]: core.bool,
+    [dartx.cancelable]: core.bool,
+    [_get_currentTarget]: dart.dynamic,
+    [dartx.defaultPrevented]: core.bool,
+    [dartx.eventPhase]: core.int,
+    [dartx.path]: ListOfEventTarget(),
+    [_get_target]: dart.dynamic,
+    [dartx.timeStamp]: core.int,
+    [dartx.type]: core.String
+  }),
+  getters: () => ({
+    [dartx.matchingTarget]: dart.definiteFunctionType(html$.Element, []),
+    [dartx.currentTarget]: dart.definiteFunctionType(html$.EventTarget, []),
+    [dartx.target]: dart.definiteFunctionType(html$.EventTarget, [])
+  }),
+  methods: () => ({
+    [_initEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool]),
+    [dartx.preventDefault]: dart.definiteFunctionType(dart.void, []),
+    [dartx.stopImmediatePropagation]: dart.definiteFunctionType(dart.void, []),
+    [dartx.stopPropagation]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    AT_TARGET: core.int,
+    BUBBLING_PHASE: core.int,
+    CAPTURING_PHASE: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.Event, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.Event, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+html$.Event.AT_TARGET = 2;
+html$.Event.BUBBLING_PHASE = 3;
+html$.Event.CAPTURING_PHASE = 1;
+dart.registerExtension(dart.global.Event, html$.Event);
+dart.registerExtension(dart.global.InputEvent, html$.Event);
+dart.defineExtensionNames([
+  'dataLoss',
+  'dataLossMessage',
+  'newVersion',
+  'oldVersion'
+]);
+indexed_db.VersionChangeEvent = class VersionChangeEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return indexed_db.VersionChangeEvent._create_1(type, eventInitDict_1);
+    }
+    return indexed_db.VersionChangeEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new IDBVersionChangeEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new IDBVersionChangeEvent(type);
+  }
+  get [dartx.dataLoss]() {
+    return this.dataLoss;
+  }
+  get [dartx.dataLossMessage]() {
+    return this.dataLossMessage;
+  }
+  get [dartx.newVersion]() {
+    return this.newVersion;
+  }
+  get [dartx.oldVersion]() {
+    return this.oldVersion;
+  }
+};
+dart.setSignature(indexed_db.VersionChangeEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(indexed_db.VersionChangeEvent, []),
+    new: dart.definiteFunctionType(indexed_db.VersionChangeEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.dataLoss]: core.String,
+    [dartx.dataLossMessage]: core.String,
+    [dartx.newVersion]: core.int,
+    [dartx.oldVersion]: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(indexed_db.VersionChangeEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(indexed_db.VersionChangeEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.IDBVersionChangeEvent, indexed_db.VersionChangeEvent);
+dart.copyProperties(html$, {
+  get window() {
+    return window;
+  }
+});
+dart.copyProperties(html$, {
+  get document() {
+    return document;
+  }
+});
+const _xtag = Symbol('_xtag');
+const _attributes$ = Symbol('_attributes');
+const _innerHtml = Symbol('_innerHtml');
+const _scrollHeight = Symbol('_scrollHeight');
+const _scrollLeft = Symbol('_scrollLeft');
+const _scrollTop = Symbol('_scrollTop');
+const _scrollWidth = Symbol('_scrollWidth');
+const _childElementCount = Symbol('_childElementCount');
+const _children = Symbol('_children');
+const _firstElementChild = Symbol('_firstElementChild');
+const _lastElementChild = Symbol('_lastElementChild');
+const _querySelectorAll = Symbol('_querySelectorAll');
+const _getComputedStyle = Symbol('_getComputedStyle');
+const _animate = Symbol('_animate');
+const _localName = Symbol('_localName');
+const _namespaceUri = Symbol('_namespaceUri');
+const _scrollIntoView = Symbol('_scrollIntoView');
+const _scrollIntoViewIfNeeded = Symbol('_scrollIntoViewIfNeeded');
+const _insertAdjacentText = Symbol('_insertAdjacentText');
+const _insertAdjacentNode = Symbol('_insertAdjacentNode');
+const _insertAdjacentHtml = Symbol('_insertAdjacentHtml');
+const _insertAdjacentElement = Symbol('_insertAdjacentElement');
+const _canBeUsedToCreateContextualFragment = Symbol('_canBeUsedToCreateContextualFragment');
+const _cannotBeUsedToCreateContextualFragment = Symbol('_cannotBeUsedToCreateContextualFragment');
+const _getElementsByTagName = Symbol('_getElementsByTagName');
+const _hasAttribute = Symbol('_hasAttribute');
+const _hasAttributeNS = Symbol('_hasAttributeNS');
+const _removeAttribute = Symbol('_removeAttribute');
+const _removeAttributeNS = Symbol('_removeAttributeNS');
+const _scroll_1 = Symbol('_scroll_1');
+const _scroll_2 = Symbol('_scroll_2');
+const _scroll_3 = Symbol('_scroll_3');
+const _scrollBy_1 = Symbol('_scrollBy_1');
+const _scrollBy_2 = Symbol('_scrollBy_2');
+const _scrollBy_3 = Symbol('_scrollBy_3');
+const _scrollTo_1 = Symbol('_scrollTo_1');
+const _scrollTo_2 = Symbol('_scrollTo_2');
+const _scrollTo_3 = Symbol('_scrollTo_3');
+const _removeChild = Symbol('_removeChild');
+const _replaceChild = Symbol('_replaceChild');
+const _this = Symbol('_this');
+const _clearChildren = Symbol('_clearChildren');
+dart.defineExtensionNames([
+  'nodes',
+  'nodes',
+  'remove',
+  'replaceWith',
+  'insertAllBefore',
+  'toString',
+  'append',
+  'clone',
+  'contains',
+  'hasChildNodes',
+  'insertBefore',
+  'childNodes',
+  'baseUri',
+  'firstChild',
+  'lastChild',
+  'nextNode',
+  'nodeName',
+  'nodeType',
+  'nodeValue',
+  'ownerDocument',
+  'parent',
+  'parentNode',
+  'previousNode',
+  'text'
+]);
+html$.Node = class Node extends html$.EventTarget {
+  _created() {
+    this[dartx.childNodes] = null;
+    this[dartx.baseUri] = null;
+    this[dartx.firstChild] = null;
+    this[dartx.lastChild] = null;
+    this[_localName] = null;
+    this[_namespaceUri] = null;
+    this[dartx.nextNode] = null;
+    this[dartx.nodeName] = null;
+    this[dartx.nodeType] = null;
+    this[dartx.nodeValue] = null;
+    this[dartx.ownerDocument] = null;
+    this[dartx.parent] = null;
+    this[dartx.parentNode] = null;
+    this[dartx.previousNode] = null;
+    this[dartx.text] = null;
+    super._created();
+  }
+  get [dartx.nodes]() {
+    return new html$._ChildNodeListLazy(this);
+  }
+  set [dartx.nodes](value) {
+    let copy = value[dartx.toList]();
+    this[dartx.text] = '';
+    for (let node of copy) {
+      this[dartx.append](node);
+    }
+  }
+  [dartx.remove]() {
+    if (this[dartx.parentNode] != null) {
+      let parent = this[dartx.parentNode];
+      this[dartx.parentNode][_removeChild](this);
+    }
+  }
+  [dartx.replaceWith](otherNode) {
+    try {
+      let parent = this[dartx.parentNode];
+      parent[_replaceChild](otherNode, this);
+    } catch (e) {
+    }
+
+    ;
+    return this;
+  }
+  [dartx.insertAllBefore](newNodes, refChild) {
+    if (html$._ChildNodeListLazy.is(newNodes)) {
+      let otherList = newNodes;
+      if (core.identical(otherList[_this], this)) {
+        dart.throw(new core.ArgumentError(newNodes));
+      }
+      for (let i = 0, len = otherList.length; i < dart.notNull(len); ++i) {
+        this[dartx.insertBefore](otherList[_this][dartx.firstChild], refChild);
+      }
+    } else {
+      for (let node of newNodes) {
+        this[dartx.insertBefore](node, refChild);
+      }
+    }
+  }
+  [_clearChildren]() {
+    while (this[dartx.firstChild] != null) {
+      this[_removeChild](this[dartx.firstChild]);
+    }
+  }
+  [dartx.toString]() {
+    let value = this[dartx.nodeValue];
+    return value == null ? super.toString() : value;
+  }
+  get [dartx.childNodes]() {
+    return this.childNodes;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.baseUri]() {
+    return this.baseURI;
+  }
+  get [dartx.firstChild]() {
+    return this.firstChild;
+  }
+  get [dartx.lastChild]() {
+    return this.lastChild;
+  }
+  get [_localName]() {
+    return this.localName;
+  }
+  get [_namespaceUri]() {
+    return this.namespaceURI;
+  }
+  get [dartx.nextNode]() {
+    return this.nextSibling;
+  }
+  get [dartx.nodeName]() {
+    return this.nodeName;
+  }
+  get [dartx.nodeType]() {
+    return this.nodeType;
+  }
+  get [dartx.nodeValue]() {
+    return this.nodeValue;
+  }
+  get [dartx.ownerDocument]() {
+    return this.ownerDocument;
+  }
+  get [dartx.parent]() {
+    return this.parentElement;
+  }
+  get [dartx.parentNode]() {
+    return this.parentNode;
+  }
+  get [dartx.previousNode]() {
+    return this.previousSibling;
+  }
+  get [dartx.text]() {
+    return this.textContent;
+  }
+  set [dartx.text](value) {
+    this.textContent = value;
+  }
+  [dartx.append](...args) {
+    return this.appendChild.apply(this, args);
+  }
+  [dartx.clone](...args) {
+    return this.cloneNode.apply(this, args);
+  }
+  [dartx.contains](...args) {
+    return this.contains.apply(this, args);
+  }
+  [dartx.hasChildNodes](...args) {
+    return this.hasChildNodes.apply(this, args);
+  }
+  [dartx.insertBefore](...args) {
+    return this.insertBefore.apply(this, args);
+  }
+  [_removeChild](...args) {
+    return this.removeChild.apply(this, args);
+  }
+  [_replaceChild](...args) {
+    return this.replaceChild.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.Node, '_created');
+dart.setSignature(html$.Node, {
+  constructors: () => ({
+    _created: dart.definiteFunctionType(html$.Node, []),
+    _: dart.definiteFunctionType(html$.Node, [])
+  }),
+  fields: () => ({
+    [dartx.childNodes]: ListOfNode(),
+    [dartx.baseUri]: core.String,
+    [dartx.firstChild]: html$.Node,
+    [dartx.lastChild]: html$.Node,
+    [_localName]: core.String,
+    [_namespaceUri]: core.String,
+    [dartx.nextNode]: html$.Node,
+    [dartx.nodeName]: core.String,
+    [dartx.nodeType]: core.int,
+    [dartx.nodeValue]: core.String,
+    [dartx.ownerDocument]: html$.Document,
+    [dartx.parent]: html$.Element,
+    [dartx.parentNode]: html$.Node,
+    [dartx.previousNode]: html$.Node,
+    [dartx.text]: core.String
+  }),
+  getters: () => ({[dartx.nodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
+  setters: () => ({[dartx.nodes]: dart.definiteFunctionType(dart.void, [IterableOfNode()])}),
+  methods: () => ({
+    [dartx.remove]: dart.definiteFunctionType(dart.void, []),
+    [dartx.replaceWith]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [dartx.insertAllBefore]: dart.definiteFunctionType(html$.Node, [IterableOfNode(), html$.Node]),
+    [_clearChildren]: dart.definiteFunctionType(dart.void, []),
+    [dartx.append]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [dartx.clone]: dart.definiteFunctionType(html$.Node, [core.bool]),
+    [dartx.contains]: dart.definiteFunctionType(core.bool, [html$.Node]),
+    [dartx.hasChildNodes]: dart.definiteFunctionType(core.bool, []),
+    [dartx.insertBefore]: dart.definiteFunctionType(html$.Node, [html$.Node, html$.Node]),
+    [_removeChild]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [_replaceChild]: dart.definiteFunctionType(html$.Node, [html$.Node, html$.Node])
+  }),
+  sfields: () => ({
+    ATTRIBUTE_NODE: core.int,
+    CDATA_SECTION_NODE: core.int,
+    COMMENT_NODE: core.int,
+    DOCUMENT_FRAGMENT_NODE: core.int,
+    DOCUMENT_NODE: core.int,
+    DOCUMENT_TYPE_NODE: core.int,
+    ELEMENT_NODE: core.int,
+    ENTITY_NODE: core.int,
+    ENTITY_REFERENCE_NODE: core.int,
+    NOTATION_NODE: core.int,
+    PROCESSING_INSTRUCTION_NODE: core.int,
+    TEXT_NODE: core.int
+  })
+});
+html$.Node.ATTRIBUTE_NODE = 2;
+html$.Node.CDATA_SECTION_NODE = 4;
+html$.Node.COMMENT_NODE = 8;
+html$.Node.DOCUMENT_FRAGMENT_NODE = 11;
+html$.Node.DOCUMENT_NODE = 9;
+html$.Node.DOCUMENT_TYPE_NODE = 10;
+html$.Node.ELEMENT_NODE = 1;
+html$.Node.ENTITY_NODE = 6;
+html$.Node.ENTITY_REFERENCE_NODE = 5;
+html$.Node.NOTATION_NODE = 12;
+html$.Node.PROCESSING_INSTRUCTION_NODE = 7;
+html$.Node.TEXT_NODE = 3;
+dart.registerExtension(dart.global.Node, html$.Node);
+dart.defineExtensionNames([
+  'attributes',
+  'attributes',
+  'children',
+  'children',
+  'querySelectorAll',
+  'query',
+  'queryAll',
+  'classes',
+  'classes',
+  'dataset',
+  'dataset',
+  'getNamespacedAttributes',
+  'getComputedStyle',
+  'client',
+  'offset',
+  'appendText',
+  'appendHtml',
+  'attached',
+  'detached',
+  'enteredView',
+  'leftView',
+  'animate',
+  'attributeChanged',
+  'xtag',
+  'xtag',
+  'localName',
+  'namespaceUri',
+  'toString',
+  'scrollIntoView',
+  'insertAdjacentText',
+  'insertAdjacentHtml',
+  'insertAdjacentElement',
+  'matches',
+  'matchesWithAncestors',
+  'createShadowRoot',
+  'shadowRoot',
+  'contentEdge',
+  'paddingEdge',
+  'borderEdge',
+  'marginEdge',
+  'documentOffset',
+  'offsetTo',
+  'createFragment',
+  'innerHtml',
+  'setInnerHtml',
+  'innerHtml',
+  'on',
+  'offsetHeight',
+  'offsetLeft',
+  'offsetTop',
+  'offsetWidth',
+  'scrollHeight',
+  'scrollLeft',
+  'scrollLeft',
+  'scrollTop',
+  'scrollTop',
+  'scrollWidth',
+  'isContentEditable',
+  'blur',
+  'click',
+  'focus',
+  'outerHtml',
+  'closest',
+  'getAnimations',
+  'getAttribute',
+  'getAttributeNS',
+  'getBoundingClientRect',
+  'getClientRects',
+  'getDestinationInsertionPoints',
+  'getElementsByClassName',
+  'requestFullscreen',
+  'requestPointerLock',
+  'scroll',
+  'scrollBy',
+  'scrollTo',
+  'setAttribute',
+  'setAttributeNS',
+  'after',
+  'before',
+  'querySelector',
+  'onAbort',
+  'onBeforeCopy',
+  'onBeforeCut',
+  'onBeforePaste',
+  'onBlur',
+  'onCanPlay',
+  'onCanPlayThrough',
+  'onChange',
+  'onClick',
+  'onContextMenu',
+  'onCopy',
+  'onCut',
+  'onDoubleClick',
+  'onDrag',
+  'onDragEnd',
+  'onDragEnter',
+  'onDragLeave',
+  'onDragOver',
+  'onDragStart',
+  'onDrop',
+  'onDurationChange',
+  'onEmptied',
+  'onEnded',
+  'onError',
+  'onFocus',
+  'onInput',
+  'onInvalid',
+  'onKeyDown',
+  'onKeyPress',
+  'onKeyUp',
+  'onLoad',
+  'onLoadedData',
+  'onLoadedMetadata',
+  'onMouseDown',
+  'onMouseEnter',
+  'onMouseLeave',
+  'onMouseMove',
+  'onMouseOut',
+  'onMouseOver',
+  'onMouseUp',
+  'onMouseWheel',
+  'onPaste',
+  'onPause',
+  'onPlay',
+  'onPlaying',
+  'onRateChange',
+  'onReset',
+  'onResize',
+  'onScroll',
+  'onSearch',
+  'onSeeked',
+  'onSeeking',
+  'onSelect',
+  'onSelectStart',
+  'onStalled',
+  'onSubmit',
+  'onSuspend',
+  'onTimeUpdate',
+  'onTouchCancel',
+  'onTouchEnd',
+  'onTouchEnter',
+  'onTouchLeave',
+  'onTouchMove',
+  'onTouchStart',
+  'onTransitionEnd',
+  'onVolumeChange',
+  'onWaiting',
+  'onFullscreenChange',
+  'onFullscreenError',
+  'offsetParent',
+  'contentEditable',
+  'contextMenu',
+  'dir',
+  'draggable',
+  'hidden',
+  'lang',
+  'spellcheck',
+  'style',
+  'tabIndex',
+  'title',
+  'translate',
+  'dropzone',
+  'className',
+  'clientHeight',
+  'clientLeft',
+  'clientTop',
+  'clientWidth',
+  'computedName',
+  'computedRole',
+  'id',
+  'tagName',
+  'nextElementSibling',
+  'previousElementSibling'
+]);
+html$.Element = class Element extends html$.Node {
+  static html(html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    let fragment = html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    return html$.Element._check(fragment[dartx.nodes][dartx.where](dart.fn(e => html$.Element.is(e), NodeTobool$()))[dartx.single]);
+  }
+  created() {
+    this[_xtag] = null;
+    this[dartx.offsetParent] = null;
+    this[dartx.contentEditable] = null;
+    this[dartx.contextMenu] = null;
+    this[dartx.dir] = null;
+    this[dartx.draggable] = null;
+    this[dartx.hidden] = null;
+    this[dartx.lang] = null;
+    this[dartx.spellcheck] = null;
+    this[dartx.style] = null;
+    this[dartx.tabIndex] = null;
+    this[dartx.title] = null;
+    this[dartx.translate] = null;
+    this[dartx.dropzone] = null;
+    this[_attributes$] = null;
+    this[dartx.className] = null;
+    this[dartx.clientHeight] = null;
+    this[dartx.clientLeft] = null;
+    this[dartx.clientTop] = null;
+    this[dartx.clientWidth] = null;
+    this[dartx.computedName] = null;
+    this[dartx.computedRole] = null;
+    this[dartx.id] = null;
+    this[_innerHtml] = null;
+    this[_scrollHeight] = null;
+    this[_scrollLeft] = null;
+    this[_scrollTop] = null;
+    this[_scrollWidth] = null;
+    this[dartx.tagName] = null;
+    this[dartx.nextElementSibling] = null;
+    this[dartx.previousElementSibling] = null;
+    this[_childElementCount] = null;
+    this[_children] = null;
+    this[_firstElementChild] = null;
+    this[_lastElementChild] = null;
+    super._created();
+  }
+  static tag(tag, typeExtention) {
+    if (typeExtention === void 0) typeExtention = null;
+    return html$.Element._check(html$._ElementFactoryProvider.createElement_tag(tag, typeExtention));
+  }
+  static a() {
+    return html$.Element.tag('a');
+  }
+  static article() {
+    return html$.Element.tag('article');
+  }
+  static aside() {
+    return html$.Element.tag('aside');
+  }
+  static audio() {
+    return html$.Element.tag('audio');
+  }
+  static br() {
+    return html$.Element.tag('br');
+  }
+  static canvas() {
+    return html$.Element.tag('canvas');
+  }
+  static div() {
+    return html$.Element.tag('div');
+  }
+  static footer() {
+    return html$.Element.tag('footer');
+  }
+  static header() {
+    return html$.Element.tag('header');
+  }
+  static hr() {
+    return html$.Element.tag('hr');
+  }
+  static iframe() {
+    return html$.Element.tag('iframe');
+  }
+  static img() {
+    return html$.Element.tag('img');
+  }
+  static li() {
+    return html$.Element.tag('li');
+  }
+  static nav() {
+    return html$.Element.tag('nav');
+  }
+  static ol() {
+    return html$.Element.tag('ol');
+  }
+  static option() {
+    return html$.Element.tag('option');
+  }
+  static p() {
+    return html$.Element.tag('p');
+  }
+  static pre() {
+    return html$.Element.tag('pre');
+  }
+  static section() {
+    return html$.Element.tag('section');
+  }
+  static select() {
+    return html$.Element.tag('select');
+  }
+  static span() {
+    return html$.Element.tag('span');
+  }
+  static svg() {
+    return html$.Element.tag('svg');
+  }
+  static table() {
+    return html$.Element.tag('table');
+  }
+  static td() {
+    return html$.Element.tag('td');
+  }
+  static textarea() {
+    return html$.Element.tag('textarea');
+  }
+  static th() {
+    return html$.Element.tag('th');
+  }
+  static tr() {
+    return html$.Element.tag('tr');
+  }
+  static ul() {
+    return html$.Element.tag('ul');
+  }
+  static video() {
+    return html$.Element.tag('video');
+  }
+  get [dartx.attributes]() {
+    return new html$._ElementAttributeMap(this);
+  }
+  set [dartx.attributes](value) {
+    let attributes = this[dartx.attributes];
+    attributes[dartx.clear]();
+    for (let key of value[dartx.keys]) {
+      attributes[dartx._set](key, value[dartx._get](key));
+    }
+  }
+  get [dartx.children]() {
+    return new html$._ChildrenElementList._wrap(this);
+  }
+  set [dartx.children](value) {
+    let copy = value[dartx.toList]();
+    let children = this[dartx.children];
+    children[dartx.clear]();
+    children[dartx.addAll](copy);
+  }
+  [dartx.querySelectorAll](T) {
+    return selectors => {
+      return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
+    };
+  }
+  [dartx.query](relativeSelectors) {
+    return this[dartx.querySelector](relativeSelectors);
+  }
+  [dartx.queryAll](T) {
+    return relativeSelectors => {
+      return this[dartx.querySelectorAll](T)(relativeSelectors);
+    };
+  }
+  get [dartx.classes]() {
+    return new html$._ElementCssClassSet(this);
+  }
+  set [dartx.classes](value) {
+    let classSet = this[dartx.classes];
+    classSet.clear();
+    classSet.addAll(value);
+  }
+  get [dartx.dataset]() {
+    return new html$._DataAttributeMap(this[dartx.attributes]);
+  }
+  set [dartx.dataset](value) {
+    let data = this[dartx.dataset];
+    data[dartx.clear]();
+    for (let key of value[dartx.keys]) {
+      data[dartx._set](key, value[dartx._get](key));
+    }
+  }
+  [dartx.getNamespacedAttributes](namespace) {
+    return new html$._NamespacedAttributeMap(this, namespace);
+  }
+  [dartx.getComputedStyle](pseudoElement) {
+    if (pseudoElement === void 0) pseudoElement = null;
+    if (pseudoElement == null) {
+      pseudoElement = '';
+    }
+    return html$.window[_getComputedStyle](this, pseudoElement);
+  }
+  get [dartx.client]() {
+    return new (RectangleOfint())(this[dartx.clientLeft], this[dartx.clientTop], this[dartx.clientWidth], this[dartx.clientHeight]);
+  }
+  get [dartx.offset]() {
+    return new (RectangleOfint())(this[dartx.offsetLeft], this[dartx.offsetTop], this[dartx.offsetWidth], this[dartx.offsetHeight]);
+  }
+  [dartx.appendText](text) {
+    this[dartx.append](html$.Text.new(text));
+  }
+  [dartx.appendHtml](text, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    this[dartx.insertAdjacentHtml]('beforeend', text, {validator: validator, treeSanitizer: treeSanitizer});
+  }
+  static isTagSupported(tag) {
+    let e = html$._ElementFactoryProvider.createElement_tag(tag, null);
+    return html$.Element.is(e) && !html$.UnknownElement.is(e);
+  }
+  [dartx.attached]() {
+    this[dartx.enteredView]();
+  }
+  [dartx.detached]() {
+    this[dartx.leftView]();
+  }
+  [dartx.enteredView]() {}
+  [dartx.leftView]() {}
+  [dartx.animate](frames, timing) {
+    if (timing === void 0) timing = null;
+    if (!core.Iterable.is(frames) || !dart.test(frames[dartx.every](dart.fn(x => core.Map.is(x), MapOfString$dynamicTobool())))) {
+      dart.throw(new core.ArgumentError("The frames parameter should be a List of Maps " + "with frame information"));
+    }
+    let convertedFrames = null;
+    if (core.Iterable.is(frames)) {
+      convertedFrames = frames[dartx.map](dart.dynamic)(html_common.convertDartToNative_Dictionary)[dartx.toList]();
+    } else {
+      convertedFrames = frames;
+    }
+    let convertedTiming = core.Map.is(timing) ? html_common.convertDartToNative_Dictionary(timing) : timing;
+    return convertedTiming == null ? this[_animate](convertedFrames) : this[_animate](convertedFrames, convertedTiming);
+  }
+  [_animate](...args) {
+    return this.animate.apply(this, args);
+  }
+  [dartx.attributeChanged](name, oldValue, newValue) {}
+  get [_xtag]() {
+    return this._xtag;
+  }
+  set [_xtag](value) {
+    this._xtag = value;
+  }
+  get [dartx.xtag]() {
+    return this[_xtag] != null ? this[_xtag] : this;
+  }
+  set [dartx.xtag](value) {
+    this[_xtag] = value;
+  }
+  get [dartx.localName]() {
+    return this[_localName];
+  }
+  get [dartx.namespaceUri]() {
+    return this[_namespaceUri];
+  }
+  [dartx.toString]() {
+    return this[dartx.localName];
+  }
+  [dartx.scrollIntoView](alignment) {
+    if (alignment === void 0) alignment = null;
+    let hasScrollIntoViewIfNeeded = true;
+    hasScrollIntoViewIfNeeded = !!this.scrollIntoViewIfNeeded;
+    if (dart.equals(alignment, html$.ScrollAlignment.TOP)) {
+      this[_scrollIntoView](true);
+    } else if (dart.equals(alignment, html$.ScrollAlignment.BOTTOM)) {
+      this[_scrollIntoView](false);
+    } else if (hasScrollIntoViewIfNeeded) {
+      if (dart.equals(alignment, html$.ScrollAlignment.CENTER)) {
+        this[_scrollIntoViewIfNeeded](true);
+      } else {
+        this[_scrollIntoViewIfNeeded]();
+      }
+    } else {
+      this[_scrollIntoView]();
+    }
+  }
+  static _determineMouseWheelEventType(e) {
+    return 'wheel';
+  }
+  static _determineTransitionEventType(e) {
+    if (dart.test(html_common.Device.isWebKit)) {
+      return 'webkitTransitionEnd';
+    } else if (dart.test(html_common.Device.isOpera)) {
+      return 'oTransitionEnd';
+    }
+    return 'transitionend';
+  }
+  [dartx.insertAdjacentText](where, text) {
+    if (!!this.insertAdjacentText) {
+      this[_insertAdjacentText](where, text);
+    } else {
+      this[_insertAdjacentNode](where, html$.Text.new(text));
+    }
+  }
+  [_insertAdjacentText](...args) {
+    return this.insertAdjacentText.apply(this, args);
+  }
+  [dartx.insertAdjacentHtml](where, html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
+      this[_insertAdjacentHtml](where, html);
+    } else {
+      this[_insertAdjacentNode](where, this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
+    }
+  }
+  [_insertAdjacentHtml](...args) {
+    return this.insertAdjacentHTML.apply(this, args);
+  }
+  [dartx.insertAdjacentElement](where, element) {
+    if (!!this.insertAdjacentElement) {
+      this[_insertAdjacentElement](where, element);
+    } else {
+      this[_insertAdjacentNode](where, element);
+    }
+    return element;
+  }
+  [_insertAdjacentElement](...args) {
+    return this.insertAdjacentElement.apply(this, args);
+  }
+  [_insertAdjacentNode](where, node) {
+    switch (where[dartx.toLowerCase]()) {
+      case 'beforebegin':
+      {
+        this[dartx.parentNode][dartx.insertBefore](node, this);
+        break;
+      }
+      case 'afterbegin':
+      {
+        let first = dart.notNull(this[dartx.nodes][dartx.length]) > 0 ? this[dartx.nodes][dartx._get](0) : null;
+        this[dartx.insertBefore](node, first);
+        break;
+      }
+      case 'beforeend':
+      {
+        this[dartx.append](node);
+        break;
+      }
+      case 'afterend':
+      {
+        this[dartx.parentNode][dartx.insertBefore](node, this[dartx.nextNode]);
+        break;
+      }
+      default:
+      {
+        dart.throw(new core.ArgumentError(dart.str`Invalid position ${where}`));
+      }
+    }
+  }
+  [dartx.matches](selectors) {
+    if (!!this.matches) {
+      return this.matches(selectors);
+    } else if (!!this.webkitMatchesSelector) {
+      return this.webkitMatchesSelector(selectors);
+    } else if (!!this.mozMatchesSelector) {
+      return this.mozMatchesSelector(selectors);
+    } else if (!!this.msMatchesSelector) {
+      return this.msMatchesSelector(selectors);
+    } else if (!!this.oMatchesSelector) {
+      return this.oMatchesSelector(selectors);
+    } else {
+      dart.throw(new core.UnsupportedError("Not supported on this platform"));
+    }
+  }
+  [dartx.matchesWithAncestors](selectors) {
+    let elem = this;
+    do {
+      if (dart.test(elem[dartx.matches](selectors))) return true;
+      elem = elem[dartx.parent];
+    } while (elem != null);
+    return false;
+  }
+  [dartx.createShadowRoot]() {
+    return (this.createShadowRoot || this.webkitCreateShadowRoot).call(this);
+  }
+  get [dartx.shadowRoot]() {
+    return this.shadowRoot || this.webkitShadowRoot;
+  }
+  get [dartx.contentEdge]() {
+    return new html$._ContentCssRect(this);
+  }
+  get [dartx.paddingEdge]() {
+    return new html$._PaddingCssRect(this);
+  }
+  get [dartx.borderEdge]() {
+    return new html$._BorderCssRect(this);
+  }
+  get [dartx.marginEdge]() {
+    return new html$._MarginCssRect(this);
+  }
+  get [dartx.documentOffset]() {
+    return this[dartx.offsetTo](html$.document[dartx.documentElement]);
+  }
+  [dartx.offsetTo](parent) {
+    return html$.Element._offsetToHelper(this, parent);
+  }
+  static _offsetToHelper(current, parent) {
+    let sameAsParent = core.identical(current, parent);
+    let foundAsParent = sameAsParent || parent[dartx.tagName] == 'HTML';
+    if (current == null || sameAsParent) {
+      if (foundAsParent) return new (PointOfnum())(0, 0);
+      dart.throw(new core.ArgumentError("Specified element is not a transitive offset " + "parent of this element."));
+    }
+    let parentOffset = current[dartx.offsetParent];
+    let p = html$.Element._offsetToHelper(parentOffset, parent);
+    return new (PointOfnum())(dart.notNull(p.x) + dart.notNull(current[dartx.offsetLeft]), dart.notNull(p.y) + dart.notNull(current[dartx.offsetTop]));
+  }
+  [dartx.createFragment](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (treeSanitizer == null) {
+      if (validator == null) {
+        if (html$.Element._defaultValidator == null) {
+          html$.Element._defaultValidator = new html$.NodeValidatorBuilder.common();
+        }
+        validator = html$.Element._defaultValidator;
+      }
+      if (html$.Element._defaultSanitizer == null) {
+        html$.Element._defaultSanitizer = new html$._ValidatingTreeSanitizer(validator);
+      } else {
+        html$.Element._defaultSanitizer.validator = validator;
+      }
+      treeSanitizer = html$.Element._defaultSanitizer;
+    } else if (validator != null) {
+      dart.throw(new core.ArgumentError('validator can only be passed if treeSanitizer is null'));
+    }
+    if (html$.Element._parseDocument == null) {
+      html$.Element._parseDocument = html$.document[dartx.implementation][dartx.createHtmlDocument]('');
+      html$.Element._parseRange = html$.Element._parseDocument[dartx.createRange]();
+      let base = html$.BaseElement._check(html$.Element._parseDocument[dartx.createElement]('base'));
+      base[dartx.href] = html$.document[dartx.baseUri];
+      html$.Element._parseDocument[dartx.head][dartx.append](base);
+    }
+    let contextElement = null;
+    if (html$.BodyElement.is(this)) {
+      contextElement = html$.Element._parseDocument[dartx.body];
+    } else {
+      contextElement = html$.Element._parseDocument[dartx.createElement](this[dartx.tagName]);
+      html$.Element._parseDocument[dartx.body][dartx.append](html$.Node._check(contextElement));
+    }
+    let fragment = null;
+    if (dart.test(html$.Range.supportsCreateContextualFragment) && dart.test(this[_canBeUsedToCreateContextualFragment])) {
+      html$.Element._parseRange[dartx.selectNodeContents](html$.Node._check(contextElement));
+      fragment = html$.Element._parseRange[dartx.createContextualFragment](html);
+    } else {
+      dart.dput(contextElement, _innerHtml, html);
+      fragment = html$.Element._parseDocument[dartx.createDocumentFragment]();
+      while (dart.dload(contextElement, 'firstChild') != null) {
+        dart.dsend(fragment, 'append', dart.dload(contextElement, 'firstChild'));
+      }
+    }
+    if (!dart.equals(contextElement, html$.Element._parseDocument[dartx.body])) {
+      dart.dsend(contextElement, 'remove');
+    }
+    treeSanitizer.sanitizeTree(html$.Node._check(fragment));
+    html$.document[dartx.adoptNode](html$.Node._check(fragment));
+    return html$.DocumentFragment._check(fragment);
+  }
+  get [_canBeUsedToCreateContextualFragment]() {
+    return !dart.test(this[_cannotBeUsedToCreateContextualFragment]);
+  }
+  get [_cannotBeUsedToCreateContextualFragment]() {
+    return html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported[dartx.contains](this[dartx.tagName]);
+  }
+  set [dartx.innerHtml](html) {
+    this[dartx.setInnerHtml](html);
+  }
+  [dartx.setInnerHtml](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    this[dartx.text] = null;
+    if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
+      this[_innerHtml] = html;
+    } else {
+      this[dartx.append](this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
+    }
+  }
+  get [dartx.innerHtml]() {
+    return this[_innerHtml];
+  }
+  get [dartx.on]() {
+    return new html$.ElementEvents(this);
+  }
+  static _hasCorruptedAttributes(element) {
+    return (function(element) {
+      if (!(element.attributes instanceof NamedNodeMap)) {
+        return true;
+      }
+      var childNodes = element.childNodes;
+      if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) {
+        return true;
+      }
+      if (element.children) {
+        if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) {
+          return true;
         }
       }
+      var length = 0;
+      if (element.children) {
+        length = element.children.length;
+      }
+      for (var i = 0; i < length; i++) {
+        var child = element.children[i];
+        if (child.id == 'attributes' || child.name == 'attributes' || child.id == 'lastChild' || child.name == 'lastChild' || child.id == 'children' || child.name == 'children') {
+          return true;
+        }
+      }
+      return false;
+    })(element);
+  }
+  static _hasCorruptedAttributesAdditionalCheck(element) {
+    return !(element.attributes instanceof NamedNodeMap);
+  }
+  static _safeTagName(element) {
+    let result = 'element tag unavailable';
+    try {
+      if (typeof dart.dload(element, 'tagName') == 'string') {
+        result = core.String._check(dart.dload(element, 'tagName'));
+      }
+    } catch (e) {
+    }
+
+    return result;
+  }
+  get [dartx.offsetParent]() {
+    return this.offsetParent;
+  }
+  get [dartx.offsetHeight]() {
+    return this.offsetHeight[dartx.round]();
+  }
+  get [dartx.offsetLeft]() {
+    return this.offsetLeft[dartx.round]();
+  }
+  get [dartx.offsetTop]() {
+    return this.offsetTop[dartx.round]();
+  }
+  get [dartx.offsetWidth]() {
+    return this.offsetWidth[dartx.round]();
+  }
+  get [dartx.scrollHeight]() {
+    return this.scrollHeight[dartx.round]();
+  }
+  get [dartx.scrollLeft]() {
+    return this.scrollLeft[dartx.round]();
+  }
+  set [dartx.scrollLeft](value) {
+    this.scrollLeft = value[dartx.round]();
+  }
+  get [dartx.scrollTop]() {
+    return this.scrollTop[dartx.round]();
+  }
+  set [dartx.scrollTop](value) {
+    this.scrollTop = value[dartx.round]();
+  }
+  get [dartx.scrollWidth]() {
+    return this.scrollWidth[dartx.round]();
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.contentEditable]() {
+    return this.contentEditable;
+  }
+  set [dartx.contentEditable](value) {
+    this.contentEditable = value;
+  }
+  get [dartx.contextMenu]() {
+    return this.contextMenu;
+  }
+  set [dartx.contextMenu](value) {
+    this.contextMenu = value;
+  }
+  get [dartx.dir]() {
+    return this.dir;
+  }
+  set [dartx.dir](value) {
+    this.dir = value;
+  }
+  get [dartx.draggable]() {
+    return this.draggable;
+  }
+  set [dartx.draggable](value) {
+    this.draggable = value;
+  }
+  get [dartx.hidden]() {
+    return this.hidden;
+  }
+  set [dartx.hidden](value) {
+    this.hidden = value;
+  }
+  get [dartx.isContentEditable]() {
+    return this.isContentEditable;
+  }
+  get [dartx.lang]() {
+    return this.lang;
+  }
+  set [dartx.lang](value) {
+    this.lang = value;
+  }
+  get [dartx.spellcheck]() {
+    return this.spellcheck;
+  }
+  set [dartx.spellcheck](value) {
+    this.spellcheck = value;
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+  get [dartx.tabIndex]() {
+    return this.tabIndex;
+  }
+  set [dartx.tabIndex](value) {
+    this.tabIndex = value;
+  }
+  get [dartx.title]() {
+    return this.title;
+  }
+  set [dartx.title](value) {
+    this.title = value;
+  }
+  get [dartx.translate]() {
+    return this.translate;
+  }
+  set [dartx.translate](value) {
+    this.translate = value;
+  }
+  get [dartx.dropzone]() {
+    return this.webkitdropzone;
+  }
+  set [dartx.dropzone](value) {
+    this.webkitdropzone = value;
+  }
+  [dartx.blur](...args) {
+    return this.blur.apply(this, args);
+  }
+  [dartx.click](...args) {
+    return this.click.apply(this, args);
+  }
+  [dartx.focus](...args) {
+    return this.focus.apply(this, args);
+  }
+  get [_attributes$]() {
+    return this.attributes;
+  }
+  get [dartx.className]() {
+    return this.className;
+  }
+  set [dartx.className](value) {
+    this.className = value;
+  }
+  get [dartx.clientHeight]() {
+    return this.clientHeight;
+  }
+  get [dartx.clientLeft]() {
+    return this.clientLeft;
+  }
+  get [dartx.clientTop]() {
+    return this.clientTop;
+  }
+  get [dartx.clientWidth]() {
+    return this.clientWidth;
+  }
+  get [dartx.computedName]() {
+    return this.computedName;
+  }
+  get [dartx.computedRole]() {
+    return this.computedRole;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  set [dartx.id](value) {
+    this.id = value;
+  }
+  get [_innerHtml]() {
+    return this.innerHTML;
+  }
+  set [_innerHtml](value) {
+    this.innerHTML = value;
+  }
+  get [dartx.outerHtml]() {
+    return this.outerHTML;
+  }
+  get [_scrollHeight]() {
+    return this.scrollHeight;
+  }
+  get [_scrollLeft]() {
+    return this.scrollLeft;
+  }
+  set [_scrollLeft](value) {
+    this.scrollLeft = value;
+  }
+  get [_scrollTop]() {
+    return this.scrollTop;
+  }
+  set [_scrollTop](value) {
+    this.scrollTop = value;
+  }
+  get [_scrollWidth]() {
+    return this.scrollWidth;
+  }
+  get [dartx.tagName]() {
+    return this.tagName;
+  }
+  [dartx.closest](...args) {
+    return this.closest.apply(this, args);
+  }
+  [dartx.getAnimations](...args) {
+    return this.getAnimations.apply(this, args);
+  }
+  [dartx.getAttribute](...args) {
+    return this.getAttribute.apply(this, args);
+  }
+  [dartx.getAttributeNS](...args) {
+    return this.getAttributeNS.apply(this, args);
+  }
+  [dartx.getBoundingClientRect](...args) {
+    return this.getBoundingClientRect.apply(this, args);
+  }
+  [dartx.getClientRects](...args) {
+    return this.getClientRects.apply(this, args);
+  }
+  [dartx.getDestinationInsertionPoints](...args) {
+    return this.getDestinationInsertionPoints.apply(this, args);
+  }
+  [dartx.getElementsByClassName](...args) {
+    return this.getElementsByClassName.apply(this, args);
+  }
+  [_getElementsByTagName](...args) {
+    return this.getElementsByTagName.apply(this, args);
+  }
+  [_hasAttribute](...args) {
+    return this.hasAttribute.apply(this, args);
+  }
+  [_hasAttributeNS](...args) {
+    return this.hasAttributeNS.apply(this, args);
+  }
+  [_removeAttribute](...args) {
+    return this.removeAttribute.apply(this, args);
+  }
+  [_removeAttributeNS](...args) {
+    return this.removeAttributeNS.apply(this, args);
+  }
+  [dartx.requestFullscreen](...args) {
+    return this.requestFullscreen.apply(this, args);
+  }
+  [dartx.requestPointerLock](...args) {
+    return this.requestPointerLock.apply(this, args);
+  }
+  [dartx.scroll](options_OR_x, y) {
+    if (options_OR_x === void 0) options_OR_x = null;
+    if (y === void 0) y = null;
+    if (options_OR_x == null && y == null) {
+      this[_scroll_1]();
+      return;
+    }
+    if (core.Map.is(options_OR_x) && y == null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
+      this[_scroll_2](options_1);
+      return;
+    }
+    if (y != null && typeof options_OR_x == 'number') {
+      this[_scroll_3](options_OR_x, y);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_scroll_1](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [_scroll_2](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [_scroll_3](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [dartx.scrollBy](options_OR_x, y) {
+    if (options_OR_x === void 0) options_OR_x = null;
+    if (y === void 0) y = null;
+    if (options_OR_x == null && y == null) {
+      this[_scrollBy_1]();
+      return;
+    }
+    if (core.Map.is(options_OR_x) && y == null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
+      this[_scrollBy_2](options_1);
+      return;
+    }
+    if (y != null && typeof options_OR_x == 'number') {
+      this[_scrollBy_3](options_OR_x, y);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_scrollBy_1](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollBy_2](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollBy_3](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollIntoView](...args) {
+    return this.scrollIntoView.apply(this, args);
+  }
+  [_scrollIntoViewIfNeeded](...args) {
+    return this.scrollIntoViewIfNeeded.apply(this, args);
+  }
+  [dartx.scrollTo](options_OR_x, y) {
+    if (options_OR_x === void 0) options_OR_x = null;
+    if (y === void 0) y = null;
+    if (options_OR_x == null && y == null) {
+      this[_scrollTo_1]();
+      return;
+    }
+    if (core.Map.is(options_OR_x) && y == null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
+      this[_scrollTo_2](options_1);
+      return;
+    }
+    if (y != null && typeof options_OR_x == 'number') {
+      this[_scrollTo_3](options_OR_x, y);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_scrollTo_1](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [_scrollTo_2](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [_scrollTo_3](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [dartx.setAttribute](...args) {
+    return this.setAttribute.apply(this, args);
+  }
+  [dartx.setAttributeNS](...args) {
+    return this.setAttributeNS.apply(this, args);
+  }
+  [dartx.after](...args) {
+    return this.after.apply(this, args);
+  }
+  [dartx.before](...args) {
+    return this.before.apply(this, args);
+  }
+  get [dartx.nextElementSibling]() {
+    return this.nextElementSibling;
+  }
+  get [dartx.previousElementSibling]() {
+    return this.previousElementSibling;
+  }
+  get [_childElementCount]() {
+    return this.childElementCount;
+  }
+  get [_children]() {
+    return this.children;
+  }
+  get [_firstElementChild]() {
+    return this.firstElementChild;
+  }
+  get [_lastElementChild]() {
+    return this.lastElementChild;
+  }
+  [dartx.querySelector](...args) {
+    return this.querySelector.apply(this, args);
+  }
+  [_querySelectorAll](...args) {
+    return this.querySelectorAll.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return html$.Element.abortEvent.forElement(this);
+  }
+  get [dartx.onBeforeCopy]() {
+    return html$.Element.beforeCopyEvent.forElement(this);
+  }
+  get [dartx.onBeforeCut]() {
+    return html$.Element.beforeCutEvent.forElement(this);
+  }
+  get [dartx.onBeforePaste]() {
+    return html$.Element.beforePasteEvent.forElement(this);
+  }
+  get [dartx.onBlur]() {
+    return html$.Element.blurEvent.forElement(this);
+  }
+  get [dartx.onCanPlay]() {
+    return html$.Element.canPlayEvent.forElement(this);
+  }
+  get [dartx.onCanPlayThrough]() {
+    return html$.Element.canPlayThroughEvent.forElement(this);
+  }
+  get [dartx.onChange]() {
+    return html$.Element.changeEvent.forElement(this);
+  }
+  get [dartx.onClick]() {
+    return html$.Element.clickEvent.forElement(this);
+  }
+  get [dartx.onContextMenu]() {
+    return html$.Element.contextMenuEvent.forElement(this);
+  }
+  get [dartx.onCopy]() {
+    return html$.Element.copyEvent.forElement(this);
+  }
+  get [dartx.onCut]() {
+    return html$.Element.cutEvent.forElement(this);
+  }
+  get [dartx.onDoubleClick]() {
+    return html$.Element.doubleClickEvent.forElement(this);
+  }
+  get [dartx.onDrag]() {
+    return html$.Element.dragEvent.forElement(this);
+  }
+  get [dartx.onDragEnd]() {
+    return html$.Element.dragEndEvent.forElement(this);
+  }
+  get [dartx.onDragEnter]() {
+    return html$.Element.dragEnterEvent.forElement(this);
+  }
+  get [dartx.onDragLeave]() {
+    return html$.Element.dragLeaveEvent.forElement(this);
+  }
+  get [dartx.onDragOver]() {
+    return html$.Element.dragOverEvent.forElement(this);
+  }
+  get [dartx.onDragStart]() {
+    return html$.Element.dragStartEvent.forElement(this);
+  }
+  get [dartx.onDrop]() {
+    return html$.Element.dropEvent.forElement(this);
+  }
+  get [dartx.onDurationChange]() {
+    return html$.Element.durationChangeEvent.forElement(this);
+  }
+  get [dartx.onEmptied]() {
+    return html$.Element.emptiedEvent.forElement(this);
+  }
+  get [dartx.onEnded]() {
+    return html$.Element.endedEvent.forElement(this);
+  }
+  get [dartx.onError]() {
+    return html$.Element.errorEvent.forElement(this);
+  }
+  get [dartx.onFocus]() {
+    return html$.Element.focusEvent.forElement(this);
+  }
+  get [dartx.onInput]() {
+    return html$.Element.inputEvent.forElement(this);
+  }
+  get [dartx.onInvalid]() {
+    return html$.Element.invalidEvent.forElement(this);
+  }
+  get [dartx.onKeyDown]() {
+    return html$.Element.keyDownEvent.forElement(this);
+  }
+  get [dartx.onKeyPress]() {
+    return html$.Element.keyPressEvent.forElement(this);
+  }
+  get [dartx.onKeyUp]() {
+    return html$.Element.keyUpEvent.forElement(this);
+  }
+  get [dartx.onLoad]() {
+    return html$.Element.loadEvent.forElement(this);
+  }
+  get [dartx.onLoadedData]() {
+    return html$.Element.loadedDataEvent.forElement(this);
+  }
+  get [dartx.onLoadedMetadata]() {
+    return html$.Element.loadedMetadataEvent.forElement(this);
+  }
+  get [dartx.onMouseDown]() {
+    return html$.Element.mouseDownEvent.forElement(this);
+  }
+  get [dartx.onMouseEnter]() {
+    return html$.Element.mouseEnterEvent.forElement(this);
+  }
+  get [dartx.onMouseLeave]() {
+    return html$.Element.mouseLeaveEvent.forElement(this);
+  }
+  get [dartx.onMouseMove]() {
+    return html$.Element.mouseMoveEvent.forElement(this);
+  }
+  get [dartx.onMouseOut]() {
+    return html$.Element.mouseOutEvent.forElement(this);
+  }
+  get [dartx.onMouseOver]() {
+    return html$.Element.mouseOverEvent.forElement(this);
+  }
+  get [dartx.onMouseUp]() {
+    return html$.Element.mouseUpEvent.forElement(this);
+  }
+  get [dartx.onMouseWheel]() {
+    return html$.Element.mouseWheelEvent.forElement(this);
+  }
+  get [dartx.onPaste]() {
+    return html$.Element.pasteEvent.forElement(this);
+  }
+  get [dartx.onPause]() {
+    return html$.Element.pauseEvent.forElement(this);
+  }
+  get [dartx.onPlay]() {
+    return html$.Element.playEvent.forElement(this);
+  }
+  get [dartx.onPlaying]() {
+    return html$.Element.playingEvent.forElement(this);
+  }
+  get [dartx.onRateChange]() {
+    return html$.Element.rateChangeEvent.forElement(this);
+  }
+  get [dartx.onReset]() {
+    return html$.Element.resetEvent.forElement(this);
+  }
+  get [dartx.onResize]() {
+    return html$.Element.resizeEvent.forElement(this);
+  }
+  get [dartx.onScroll]() {
+    return html$.Element.scrollEvent.forElement(this);
+  }
+  get [dartx.onSearch]() {
+    return html$.Element.searchEvent.forElement(this);
+  }
+  get [dartx.onSeeked]() {
+    return html$.Element.seekedEvent.forElement(this);
+  }
+  get [dartx.onSeeking]() {
+    return html$.Element.seekingEvent.forElement(this);
+  }
+  get [dartx.onSelect]() {
+    return html$.Element.selectEvent.forElement(this);
+  }
+  get [dartx.onSelectStart]() {
+    return html$.Element.selectStartEvent.forElement(this);
+  }
+  get [dartx.onStalled]() {
+    return html$.Element.stalledEvent.forElement(this);
+  }
+  get [dartx.onSubmit]() {
+    return html$.Element.submitEvent.forElement(this);
+  }
+  get [dartx.onSuspend]() {
+    return html$.Element.suspendEvent.forElement(this);
+  }
+  get [dartx.onTimeUpdate]() {
+    return html$.Element.timeUpdateEvent.forElement(this);
+  }
+  get [dartx.onTouchCancel]() {
+    return html$.Element.touchCancelEvent.forElement(this);
+  }
+  get [dartx.onTouchEnd]() {
+    return html$.Element.touchEndEvent.forElement(this);
+  }
+  get [dartx.onTouchEnter]() {
+    return html$.Element.touchEnterEvent.forElement(this);
+  }
+  get [dartx.onTouchLeave]() {
+    return html$.Element.touchLeaveEvent.forElement(this);
+  }
+  get [dartx.onTouchMove]() {
+    return html$.Element.touchMoveEvent.forElement(this);
+  }
+  get [dartx.onTouchStart]() {
+    return html$.Element.touchStartEvent.forElement(this);
+  }
+  get [dartx.onTransitionEnd]() {
+    return html$.Element.transitionEndEvent.forElement(this);
+  }
+  get [dartx.onVolumeChange]() {
+    return html$.Element.volumeChangeEvent.forElement(this);
+  }
+  get [dartx.onWaiting]() {
+    return html$.Element.waitingEvent.forElement(this);
+  }
+  get [dartx.onFullscreenChange]() {
+    return html$.Element.fullscreenChangeEvent.forElement(this);
+  }
+  get [dartx.onFullscreenError]() {
+    return html$.Element.fullscreenErrorEvent.forElement(this);
+  }
+};
+dart.defineNamedConstructor(html$.Element, 'created');
+html$.Element[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.GlobalEventHandlers, html$.ParentNode, html$.ChildNode];
+dart.setSignature(html$.Element, {
+  constructors: () => ({
+    html: dart.definiteFunctionType(html$.Element, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    created: dart.definiteFunctionType(html$.Element, []),
+    tag: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
+    a: dart.definiteFunctionType(html$.Element, []),
+    article: dart.definiteFunctionType(html$.Element, []),
+    aside: dart.definiteFunctionType(html$.Element, []),
+    audio: dart.definiteFunctionType(html$.Element, []),
+    br: dart.definiteFunctionType(html$.Element, []),
+    canvas: dart.definiteFunctionType(html$.Element, []),
+    div: dart.definiteFunctionType(html$.Element, []),
+    footer: dart.definiteFunctionType(html$.Element, []),
+    header: dart.definiteFunctionType(html$.Element, []),
+    hr: dart.definiteFunctionType(html$.Element, []),
+    iframe: dart.definiteFunctionType(html$.Element, []),
+    img: dart.definiteFunctionType(html$.Element, []),
+    li: dart.definiteFunctionType(html$.Element, []),
+    nav: dart.definiteFunctionType(html$.Element, []),
+    ol: dart.definiteFunctionType(html$.Element, []),
+    option: dart.definiteFunctionType(html$.Element, []),
+    p: dart.definiteFunctionType(html$.Element, []),
+    pre: dart.definiteFunctionType(html$.Element, []),
+    section: dart.definiteFunctionType(html$.Element, []),
+    select: dart.definiteFunctionType(html$.Element, []),
+    span: dart.definiteFunctionType(html$.Element, []),
+    svg: dart.definiteFunctionType(html$.Element, []),
+    table: dart.definiteFunctionType(html$.Element, []),
+    td: dart.definiteFunctionType(html$.Element, []),
+    textarea: dart.definiteFunctionType(html$.Element, []),
+    th: dart.definiteFunctionType(html$.Element, []),
+    tr: dart.definiteFunctionType(html$.Element, []),
+    ul: dart.definiteFunctionType(html$.Element, []),
+    video: dart.definiteFunctionType(html$.Element, []),
+    _: dart.definiteFunctionType(html$.Element, [])
+  }),
+  fields: () => ({
+    [_xtag]: html$.Element,
+    [dartx.offsetParent]: html$.Element,
+    [dartx.contentEditable]: core.String,
+    [dartx.contextMenu]: html$.MenuElement,
+    [dartx.dir]: core.String,
+    [dartx.draggable]: core.bool,
+    [dartx.hidden]: core.bool,
+    [dartx.lang]: core.String,
+    [dartx.spellcheck]: core.bool,
+    [dartx.style]: html$.CssStyleDeclaration,
+    [dartx.tabIndex]: core.int,
+    [dartx.title]: core.String,
+    [dartx.translate]: core.bool,
+    [dartx.dropzone]: core.String,
+    [_attributes$]: html$._NamedNodeMap,
+    [dartx.className]: core.String,
+    [dartx.clientHeight]: core.int,
+    [dartx.clientLeft]: core.int,
+    [dartx.clientTop]: core.int,
+    [dartx.clientWidth]: core.int,
+    [dartx.computedName]: core.String,
+    [dartx.computedRole]: core.String,
+    [dartx.id]: core.String,
+    [_innerHtml]: core.String,
+    [_scrollHeight]: core.int,
+    [_scrollLeft]: core.num,
+    [_scrollTop]: core.num,
+    [_scrollWidth]: core.int,
+    [dartx.tagName]: core.String,
+    [dartx.nextElementSibling]: html$.Element,
+    [dartx.previousElementSibling]: html$.Element,
+    [_childElementCount]: core.int,
+    [_children]: ListOfNode(),
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
+  }),
+  getters: () => ({
+    [dartx.attributes]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
+    [dartx.children]: dart.definiteFunctionType(core.List$(html$.Element), []),
+    [dartx.classes]: dart.definiteFunctionType(html$.CssClassSet, []),
+    [dartx.dataset]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
+    [dartx.client]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
+    [dartx.offset]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
+    [dartx.xtag]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.localName]: dart.definiteFunctionType(core.String, []),
+    [dartx.namespaceUri]: dart.definiteFunctionType(core.String, []),
+    [dartx.shadowRoot]: dart.definiteFunctionType(html$.ShadowRoot, []),
+    [dartx.contentEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.paddingEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.borderEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.marginEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.documentOffset]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [_canBeUsedToCreateContextualFragment]: dart.definiteFunctionType(core.bool, []),
+    [_cannotBeUsedToCreateContextualFragment]: dart.definiteFunctionType(core.bool, []),
+    [dartx.innerHtml]: dart.definiteFunctionType(core.String, []),
+    [dartx.on]: dart.definiteFunctionType(html$.ElementEvents, []),
+    [dartx.offsetHeight]: dart.definiteFunctionType(core.int, []),
+    [dartx.offsetLeft]: dart.definiteFunctionType(core.int, []),
+    [dartx.offsetTop]: dart.definiteFunctionType(core.int, []),
+    [dartx.offsetWidth]: dart.definiteFunctionType(core.int, []),
+    [dartx.scrollHeight]: dart.definiteFunctionType(core.int, []),
+    [dartx.scrollLeft]: dart.definiteFunctionType(core.int, []),
+    [dartx.scrollTop]: dart.definiteFunctionType(core.int, []),
+    [dartx.scrollWidth]: dart.definiteFunctionType(core.int, []),
+    [dartx.isContentEditable]: dart.definiteFunctionType(core.bool, []),
+    [dartx.outerHtml]: dart.definiteFunctionType(core.String, []),
+    [dartx.onAbort]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBeforeCopy]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBeforeCut]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBeforePaste]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBlur]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onCanPlay]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onCanPlayThrough]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onClick]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onContextMenu]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onCopy]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+    [dartx.onCut]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+    [dartx.onDoubleClick]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onDrag]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragOver]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragStart]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDrop]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDurationChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onEmptied]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onFocus]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onInput]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onInvalid]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onKeyDown]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+    [dartx.onKeyPress]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+    [dartx.onKeyUp]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onLoadedData]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onLoadedMetadata]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onMouseDown]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseMove]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseOut]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseOver]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseUp]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseWheel]: dart.definiteFunctionType(html$.ElementStream$(html$.WheelEvent), []),
+    [dartx.onPaste]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+    [dartx.onPause]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onPlay]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onPlaying]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onRateChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onReset]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onResize]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onScroll]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSearch]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSeeked]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSeeking]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSelect]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSelectStart]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onStalled]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSubmit]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSuspend]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onTimeUpdate]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onTouchCancel]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchMove]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchStart]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTransitionEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.TransitionEvent), []),
+    [dartx.onVolumeChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onWaiting]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onFullscreenChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onFullscreenError]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
+  }),
+  setters: () => ({
+    [dartx.attributes]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
+    [dartx.children]: dart.definiteFunctionType(dart.void, [ListOfElement()]),
+    [dartx.classes]: dart.definiteFunctionType(dart.void, [IterableOfString()]),
+    [dartx.dataset]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
+    [dartx.xtag]: dart.definiteFunctionType(dart.void, [html$.Element]),
+    [dartx.innerHtml]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.scrollLeft]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.scrollTop]: dart.definiteFunctionType(dart.void, [core.int])
+  }),
+  methods: () => ({
+    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.getNamespacedAttributes]: dart.definiteFunctionType(core.Map$(core.String, core.String), [core.String]),
+    [dartx.getComputedStyle]: dart.definiteFunctionType(html$.CssStyleDeclaration, [], [core.String]),
+    [dartx.appendText]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    [dartx.attached]: dart.definiteFunctionType(dart.void, []),
+    [dartx.detached]: dart.definiteFunctionType(dart.void, []),
+    [dartx.enteredView]: dart.definiteFunctionType(dart.void, []),
+    [dartx.leftView]: dart.definiteFunctionType(dart.void, []),
+    [dartx.animate]: dart.definiteFunctionType(html$.Animation, [IterableOfMapOfString$dynamic()], [dart.dynamic]),
+    [_animate]: dart.definiteFunctionType(html$.Animation, [core.Object], [dart.dynamic]),
+    [dartx.attributeChanged]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.scrollIntoView]: dart.definiteFunctionType(dart.void, [], [html$.ScrollAlignment]),
+    [dartx.insertAdjacentText]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [_insertAdjacentText]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    [_insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.insertAdjacentElement]: dart.definiteFunctionType(html$.Element, [core.String, html$.Element]),
+    [_insertAdjacentElement]: dart.definiteFunctionType(dart.void, [core.String, html$.Element]),
+    [_insertAdjacentNode]: dart.definiteFunctionType(dart.void, [core.String, html$.Node]),
+    [dartx.matches]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.matchesWithAncestors]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.createShadowRoot]: dart.definiteFunctionType(html$.ShadowRoot, []),
+    [dartx.offsetTo]: dart.definiteFunctionType(math.Point$(core.num), [html$.Element]),
+    [dartx.createFragment]: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    [dartx.blur]: dart.definiteFunctionType(dart.void, []),
+    [dartx.click]: dart.definiteFunctionType(dart.void, []),
+    [dartx.focus]: dart.definiteFunctionType(dart.void, []),
+    [dartx.closest]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html$.Animation), []),
+    [dartx.getAttribute]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.getAttributeNS]: dart.definiteFunctionType(core.String, [core.String, core.String]),
+    [dartx.getBoundingClientRect]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
+    [dartx.getClientRects]: dart.definiteFunctionType(core.List$(math.Rectangle$(core.num)), []),
+    [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html$.Node), []),
+    [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [_getElementsByTagName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [_hasAttribute]: dart.definiteFunctionType(core.bool, [core.String]),
+    [_hasAttributeNS]: dart.definiteFunctionType(core.bool, [core.String, core.String]),
+    [_removeAttribute]: dart.definiteFunctionType(dart.void, [core.String]),
+    [_removeAttributeNS]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.requestFullscreen]: dart.definiteFunctionType(dart.void, []),
+    [dartx.requestPointerLock]: dart.definiteFunctionType(dart.void, []),
+    [dartx.scroll]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.num]),
+    [_scroll_1]: dart.definiteFunctionType(dart.void, []),
+    [_scroll_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_scroll_3]: dart.definiteFunctionType(dart.void, [core.num, dart.dynamic]),
+    [dartx.scrollBy]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.num]),
+    [_scrollBy_1]: dart.definiteFunctionType(dart.void, []),
+    [_scrollBy_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_scrollBy_3]: dart.definiteFunctionType(dart.void, [core.num, dart.dynamic]),
+    [_scrollIntoView]: dart.definiteFunctionType(dart.void, [], [core.bool]),
+    [_scrollIntoViewIfNeeded]: dart.definiteFunctionType(dart.void, [], [core.bool]),
+    [dartx.scrollTo]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.num]),
+    [_scrollTo_1]: dart.definiteFunctionType(dart.void, []),
+    [_scrollTo_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_scrollTo_3]: dart.definiteFunctionType(dart.void, [core.num, dart.dynamic]),
+    [dartx.setAttribute]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.setAttributeNS]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.after]: dart.definiteFunctionType(dart.void, [core.Object]),
+    [dartx.before]: dart.definiteFunctionType(dart.void, [core.Object]),
+    [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String])
+  }),
+  sfields: () => ({
+    mouseWheelEvent: EventStreamProviderOfWheelEvent(),
+    transitionEndEvent: EventStreamProviderOfTransitionEvent(),
+    _parseDocument: html$.HtmlDocument,
+    _parseRange: html$.Range,
+    _defaultValidator: html$.NodeValidatorBuilder,
+    _defaultSanitizer: html$._ValidatingTreeSanitizer,
+    _tagsForWhichCreateContextualFragmentIsNotSupported: ListOfString(),
+    abortEvent: EventStreamProviderOfEvent(),
+    beforeCopyEvent: EventStreamProviderOfEvent(),
+    beforeCutEvent: EventStreamProviderOfEvent(),
+    beforePasteEvent: EventStreamProviderOfEvent(),
+    blurEvent: EventStreamProviderOfEvent(),
+    canPlayEvent: EventStreamProviderOfEvent(),
+    canPlayThroughEvent: EventStreamProviderOfEvent(),
+    changeEvent: EventStreamProviderOfEvent(),
+    clickEvent: EventStreamProviderOfMouseEvent(),
+    contextMenuEvent: EventStreamProviderOfMouseEvent(),
+    copyEvent: EventStreamProviderOfClipboardEvent(),
+    cutEvent: EventStreamProviderOfClipboardEvent(),
+    doubleClickEvent: EventStreamProviderOfEvent(),
+    dragEvent: EventStreamProviderOfMouseEvent(),
+    dragEndEvent: EventStreamProviderOfMouseEvent(),
+    dragEnterEvent: EventStreamProviderOfMouseEvent(),
+    dragLeaveEvent: EventStreamProviderOfMouseEvent(),
+    dragOverEvent: EventStreamProviderOfMouseEvent(),
+    dragStartEvent: EventStreamProviderOfMouseEvent(),
+    dropEvent: EventStreamProviderOfMouseEvent(),
+    durationChangeEvent: EventStreamProviderOfEvent(),
+    emptiedEvent: EventStreamProviderOfEvent(),
+    endedEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    focusEvent: EventStreamProviderOfEvent(),
+    inputEvent: EventStreamProviderOfEvent(),
+    invalidEvent: EventStreamProviderOfEvent(),
+    keyDownEvent: EventStreamProviderOfKeyboardEvent(),
+    keyPressEvent: EventStreamProviderOfKeyboardEvent(),
+    keyUpEvent: EventStreamProviderOfKeyboardEvent(),
+    loadEvent: EventStreamProviderOfEvent(),
+    loadedDataEvent: EventStreamProviderOfEvent(),
+    loadedMetadataEvent: EventStreamProviderOfEvent(),
+    mouseDownEvent: EventStreamProviderOfMouseEvent(),
+    mouseEnterEvent: EventStreamProviderOfMouseEvent(),
+    mouseLeaveEvent: EventStreamProviderOfMouseEvent(),
+    mouseMoveEvent: EventStreamProviderOfMouseEvent(),
+    mouseOutEvent: EventStreamProviderOfMouseEvent(),
+    mouseOverEvent: EventStreamProviderOfMouseEvent(),
+    mouseUpEvent: EventStreamProviderOfMouseEvent(),
+    pasteEvent: EventStreamProviderOfClipboardEvent(),
+    pauseEvent: EventStreamProviderOfEvent(),
+    playEvent: EventStreamProviderOfEvent(),
+    playingEvent: EventStreamProviderOfEvent(),
+    rateChangeEvent: EventStreamProviderOfEvent(),
+    resetEvent: EventStreamProviderOfEvent(),
+    resizeEvent: EventStreamProviderOfEvent(),
+    scrollEvent: EventStreamProviderOfEvent(),
+    searchEvent: EventStreamProviderOfEvent(),
+    seekedEvent: EventStreamProviderOfEvent(),
+    seekingEvent: EventStreamProviderOfEvent(),
+    selectEvent: EventStreamProviderOfEvent(),
+    selectStartEvent: EventStreamProviderOfEvent(),
+    stalledEvent: EventStreamProviderOfEvent(),
+    submitEvent: EventStreamProviderOfEvent(),
+    suspendEvent: EventStreamProviderOfEvent(),
+    timeUpdateEvent: EventStreamProviderOfEvent(),
+    touchCancelEvent: EventStreamProviderOfTouchEvent(),
+    touchEndEvent: EventStreamProviderOfTouchEvent(),
+    touchEnterEvent: EventStreamProviderOfTouchEvent(),
+    touchLeaveEvent: EventStreamProviderOfTouchEvent(),
+    touchMoveEvent: EventStreamProviderOfTouchEvent(),
+    touchStartEvent: EventStreamProviderOfTouchEvent(),
+    volumeChangeEvent: EventStreamProviderOfEvent(),
+    waitingEvent: EventStreamProviderOfEvent(),
+    fullscreenChangeEvent: EventStreamProviderOfEvent(),
+    fullscreenErrorEvent: EventStreamProviderOfEvent()
+  }),
+  statics: () => ({
+    isTagSupported: dart.definiteFunctionType(core.bool, [core.String]),
+    _determineMouseWheelEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
+    _determineTransitionEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
+    _offsetToHelper: dart.definiteFunctionType(math.Point$(core.num), [html$.Element, html$.Element]),
+    _hasCorruptedAttributes: dart.definiteFunctionType(core.bool, [html$.Element]),
+    _hasCorruptedAttributesAdditionalCheck: dart.definiteFunctionType(core.bool, [html$.Element]),
+    _safeTagName: dart.definiteFunctionType(core.String, [dart.dynamic])
+  }),
+  names: ['isTagSupported', '_determineMouseWheelEventType', '_determineTransitionEventType', '_offsetToHelper', '_hasCorruptedAttributes', '_hasCorruptedAttributesAdditionalCheck', '_safeTagName']
+});
+html$.Element._parseDocument = null;
+html$.Element._parseRange = null;
+html$.Element._defaultValidator = null;
+html$.Element._defaultSanitizer = null;
+html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported = dart.constList(['HEAD', 'AREA', 'BASE', 'BASEFONT', 'BR', 'COL', 'COLGROUP', 'EMBED', 'FRAME', 'FRAMESET', 'HR', 'IMAGE', 'IMG', 'INPUT', 'ISINDEX', 'LINK', 'META', 'PARAM', 'SOURCE', 'STYLE', 'TITLE', 'WBR'], core.String);
+dart.defineLazy(html$.Element, {
+  get mouseWheelEvent() {
+    return dart.const(new (_CustomEventStreamProviderOfWheelEvent())(html$.Element._determineMouseWheelEventType));
+  },
+  get transitionEndEvent() {
+    return dart.const(new (_CustomEventStreamProviderOfTransitionEvent())(html$.Element._determineTransitionEventType));
+  },
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('abort'));
+  },
+  get beforeCopyEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('beforecopy'));
+  },
+  get beforeCutEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('beforecut'));
+  },
+  get beforePasteEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('beforepaste'));
+  },
+  get blurEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('blur'));
+  },
+  get canPlayEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('canplay'));
+  },
+  get canPlayThroughEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('canplaythrough'));
+  },
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  },
+  get clickEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('click'));
+  },
+  get contextMenuEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('contextmenu'));
+  },
+  get copyEvent() {
+    return dart.const(new (EventStreamProviderOfClipboardEvent())('copy'));
+  },
+  get cutEvent() {
+    return dart.const(new (EventStreamProviderOfClipboardEvent())('cut'));
+  },
+  get doubleClickEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('dblclick'));
+  },
+  get dragEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('drag'));
+  },
+  get dragEndEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragend'));
+  },
+  get dragEnterEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragenter'));
+  },
+  get dragLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragleave'));
+  },
+  get dragOverEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragover'));
+  },
+  get dragStartEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragstart'));
+  },
+  get dropEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('drop'));
+  },
+  get durationChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('durationchange'));
+  },
+  get emptiedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('emptied'));
+  },
+  get endedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ended'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get focusEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('focus'));
+  },
+  get inputEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('input'));
+  },
+  get invalidEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('invalid'));
+  },
+  get keyDownEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keydown'));
+  },
+  get keyPressEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keypress'));
+  },
+  get keyUpEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keyup'));
+  },
+  get loadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('load'));
+  },
+  get loadedDataEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadeddata'));
+  },
+  get loadedMetadataEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadedmetadata'));
+  },
+  get mouseDownEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mousedown'));
+  },
+  get mouseEnterEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseenter'));
+  },
+  get mouseLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseleave'));
+  },
+  get mouseMoveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mousemove'));
+  },
+  get mouseOutEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseout'));
+  },
+  get mouseOverEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseover'));
+  },
+  get mouseUpEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseup'));
+  },
+  get pasteEvent() {
+    return dart.const(new (EventStreamProviderOfClipboardEvent())('paste'));
+  },
+  get pauseEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pause'));
+  },
+  get playEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('play'));
+  },
+  get playingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('playing'));
+  },
+  get rateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ratechange'));
+  },
+  get resetEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('reset'));
+  },
+  get resizeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('resize'));
+  },
+  get scrollEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('scroll'));
+  },
+  get searchEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('search'));
+  },
+  get seekedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('seeked'));
+  },
+  get seekingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('seeking'));
+  },
+  get selectEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('select'));
+  },
+  get selectStartEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('selectstart'));
+  },
+  get stalledEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('stalled'));
+  },
+  get submitEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('submit'));
+  },
+  get suspendEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('suspend'));
+  },
+  get timeUpdateEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('timeupdate'));
+  },
+  get touchCancelEvent() {
+    return dart.const(new (EventStreamProviderOfTouchEvent())('touchcancel'));
+  },
+  get touchEndEvent() {
+    return dart.const(new (EventStreamProviderOfTouchEvent())('touchend'));
+  },
+  get touchEnterEvent() {
+    return dart.const(new (EventStreamProviderOfTouchEvent())('touchenter'));
+  },
+  get touchLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfTouchEvent())('touchleave'));
+  },
+  get touchMoveEvent() {
+    return dart.const(new (EventStreamProviderOfTouchEvent())('touchmove'));
+  },
+  get touchStartEvent() {
+    return dart.const(new (EventStreamProviderOfTouchEvent())('touchstart'));
+  },
+  get volumeChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('volumechange'));
+  },
+  get waitingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('waiting'));
+  },
+  get fullscreenChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('webkitfullscreenchange'));
+  },
+  get fullscreenErrorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('webkitfullscreenerror'));
+  }
+});
+dart.registerExtension(dart.global.Element, html$.Element);
+html$.HtmlElement = class HtmlElement extends html$.Element {
+  static new() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.HtmlElement, 'created');
+dart.setSignature(html$.HtmlElement, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.HtmlElement, []),
+    created: dart.definiteFunctionType(html$.HtmlElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLElement, html$.HtmlElement);
+html$._EntryArray = class _EntryArray extends core.Object {};
+html$._EntryArray[dart.implements] = () => [ListOfEntry()];
+dart.registerExtension(dart.global.EntryArray, html$._EntryArray);
+html$.spawnDomUri = function(uri, args, message) {
+  dart.throw(new core.UnimplementedError());
+};
+dart.fn(html$.spawnDomUri, UriAndListOfStringAnddynamicToFutureOfIsolate());
+html$.createCustomUpgrader = function(customElementClass, $this) {
+  return $this;
+};
+dart.fn(html$.createCustomUpgrader, TypeAnddynamicTodynamic());
+dart.defineExtensionNames([
+  'onError'
+]);
+html$.AbstractWorker = class AbstractWorker extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get onError() {
+    return html$.AbstractWorker.errorEvent.forTarget(this);
+  }
+};
+html$.AbstractWorker[dart.implements] = () => [html$.EventTarget];
+dart.setSignature(html$.AbstractWorker, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AbstractWorker, [])}),
+  getters: () => ({onError: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  sfields: () => ({errorEvent: EventStreamProviderOfEvent()})
+});
+dart.defineExtensionMembers(html$.AbstractWorker, ['onError']);
+dart.defineLazy(html$.AbstractWorker, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  }
+});
+dart.defineExtensionNames([
+  'toString',
+  'download',
+  'hreflang',
+  'rel',
+  'target',
+  'type',
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'origin',
+  'password',
+  'pathname',
+  'port',
+  'protocol',
+  'search',
+  'username'
+]);
+html$.AnchorElement = class AnchorElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(opts) {
+    let href = opts && 'href' in opts ? opts.href : null;
+    let e = html$.AnchorElement._check(html$.document[dartx.createElement]("a"));
+    if (href != null) e[dartx.href] = href;
+    return e;
+  }
+  created() {
+    this[dartx.download] = null;
+    this[dartx.hreflang] = null;
+    this[dartx.rel] = null;
+    this[dartx.target] = null;
+    this[dartx.type] = null;
+    this[dartx.hash] = null;
+    this[dartx.host] = null;
+    this[dartx.hostname] = null;
+    this[dartx.href] = null;
+    this[dartx.origin] = null;
+    this[dartx.password] = null;
+    this[dartx.pathname] = null;
+    this[dartx.port] = null;
+    this[dartx.protocol] = null;
+    this[dartx.search] = null;
+    this[dartx.username] = null;
+    super.created();
+  }
+  get [dartx.download]() {
+    return this.download;
+  }
+  set [dartx.download](value) {
+    this.download = value;
+  }
+  get [dartx.hreflang]() {
+    return this.hreflang;
+  }
+  set [dartx.hreflang](value) {
+    this.hreflang = value;
+  }
+  get [dartx.rel]() {
+    return this.rel;
+  }
+  set [dartx.rel](value) {
+    this.rel = value;
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+  set [dartx.target](value) {
+    this.target = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.hash]() {
+    return this.hash;
+  }
+  set [dartx.hash](value) {
+    this.hash = value;
+  }
+  get [dartx.host]() {
+    return this.host;
+  }
+  set [dartx.host](value) {
+    this.host = value;
+  }
+  get [dartx.hostname]() {
+    return this.hostname;
+  }
+  set [dartx.hostname](value) {
+    this.hostname = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  set [dartx.href](value) {
+    this.href = value;
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.password]() {
+    return this.password;
+  }
+  set [dartx.password](value) {
+    this.password = value;
+  }
+  get [dartx.pathname]() {
+    return this.pathname;
+  }
+  set [dartx.pathname](value) {
+    this.pathname = value;
+  }
+  get [dartx.port]() {
+    return this.port;
+  }
+  set [dartx.port](value) {
+    this.port = value;
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  set [dartx.protocol](value) {
+    this.protocol = value;
+  }
+  get [dartx.search]() {
+    return this.search;
+  }
+  set [dartx.search](value) {
+    this.search = value;
+  }
+  get [dartx.username]() {
+    return this.username;
+  }
+  set [dartx.username](value) {
+    this.username = value;
+  }
+  [dartx.toString]() {
+    return String(this);
+  }
+};
+dart.defineNamedConstructor(html$.AnchorElement, 'created');
+html$.AnchorElement[dart.implements] = () => [html$.UrlUtils];
+dart.setSignature(html$.AnchorElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.AnchorElement, []),
+    new: dart.definiteFunctionType(html$.AnchorElement, [], {href: core.String}),
+    created: dart.definiteFunctionType(html$.AnchorElement, [])
+  }),
+  fields: () => ({
+    [dartx.download]: core.String,
+    [dartx.hreflang]: core.String,
+    [dartx.rel]: core.String,
+    [dartx.target]: core.String,
+    [dartx.type]: core.String,
+    [dartx.hash]: core.String,
+    [dartx.host]: core.String,
+    [dartx.hostname]: core.String,
+    [dartx.href]: core.String,
+    [dartx.origin]: core.String,
+    [dartx.password]: core.String,
+    [dartx.pathname]: core.String,
+    [dartx.port]: core.String,
+    [dartx.protocol]: core.String,
+    [dartx.search]: core.String,
+    [dartx.username]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLAnchorElement, html$.AnchorElement);
+dart.defineExtensionNames([
+  'cancel',
+  'finish',
+  'pause',
+  'play',
+  'reverse',
+  'currentTime',
+  'effect',
+  'endClip',
+  'finished',
+  'playState',
+  'playbackRate',
+  'ready',
+  'startClip',
+  'startTime'
+]);
+html$.Animation = class Animation extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!document.body.animate;
+  }
+  get [dartx.currentTime]() {
+    return this.currentTime;
+  }
+  set [dartx.currentTime](value) {
+    this.currentTime = value;
+  }
+  get [dartx.effect]() {
+    return this.effect;
+  }
+  set [dartx.effect](value) {
+    this.effect = value;
+  }
+  get [dartx.endClip]() {
+    return this.endClip;
+  }
+  set [dartx.endClip](value) {
+    this.endClip = value;
+  }
+  get [dartx.finished]() {
+    return this.finished;
+  }
+  get [dartx.playState]() {
+    return this.playState;
+  }
+  get [dartx.playbackRate]() {
+    return this.playbackRate;
+  }
+  set [dartx.playbackRate](value) {
+    this.playbackRate = value;
+  }
+  get [dartx.ready]() {
+    return this.ready;
+  }
+  get [dartx.startClip]() {
+    return this.startClip;
+  }
+  set [dartx.startClip](value) {
+    this.startClip = value;
+  }
+  get [dartx.startTime]() {
+    return this.startTime;
+  }
+  set [dartx.startTime](value) {
+    this.startTime = value;
+  }
+  [dartx.cancel](...args) {
+    return this.cancel.apply(this, args);
+  }
+  [dartx.finish](...args) {
+    return this.finish.apply(this, args);
+  }
+  [dartx.pause](...args) {
+    return this.pause.apply(this, args);
+  }
+  [dartx.play](...args) {
+    return this.play.apply(this, args);
+  }
+  [dartx.reverse](...args) {
+    return this.reverse.apply(this, args);
+  }
+};
+dart.setSignature(html$.Animation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Animation, [])}),
+  fields: () => ({
+    [dartx.currentTime]: core.num,
+    [dartx.effect]: html$.AnimationEffectReadOnly,
+    [dartx.endClip]: core.num,
+    [dartx.finished]: async.Future,
+    [dartx.playState]: core.String,
+    [dartx.playbackRate]: core.num,
+    [dartx.ready]: async.Future,
+    [dartx.startClip]: core.num,
+    [dartx.startTime]: core.num
+  }),
+  methods: () => ({
+    [dartx.cancel]: dart.definiteFunctionType(dart.void, []),
+    [dartx.finish]: dart.definiteFunctionType(dart.void, []),
+    [dartx.pause]: dart.definiteFunctionType(dart.void, []),
+    [dartx.play]: dart.definiteFunctionType(dart.void, []),
+    [dartx.reverse]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.Animation, html$.Animation);
+const _get_computedTiming = Symbol('_get_computedTiming');
+dart.defineExtensionNames([
+  'computedTiming',
+  'timing'
+]);
+html$.AnimationEffectReadOnly = class AnimationEffectReadOnly extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.computedTiming]() {
+    return html_common.convertNativeToDart_Dictionary(this[_get_computedTiming]);
+  }
+  get [_get_computedTiming]() {
+    return this.computedTiming;
+  }
+  get [dartx.timing]() {
+    return this.timing;
+  }
+};
+dart.setSignature(html$.AnimationEffectReadOnly, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AnimationEffectReadOnly, [])}),
+  fields: () => ({
+    [_get_computedTiming]: dart.dynamic,
+    [dartx.timing]: html$.AnimationEffectTiming
+  }),
+  getters: () => ({[dartx.computedTiming]: dart.definiteFunctionType(core.Map, [])})
+});
+dart.registerExtension(dart.global.AnimationEffectReadOnly, html$.AnimationEffectReadOnly);
+dart.defineExtensionNames([
+  'delay',
+  'direction',
+  'duration',
+  'easing',
+  'endDelay',
+  'fill',
+  'iterationStart',
+  'iterations',
+  'playbackRate'
+]);
+html$.AnimationEffectTiming = class AnimationEffectTiming extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.delay]() {
+    return this.delay;
+  }
+  set [dartx.delay](value) {
+    this.delay = value;
+  }
+  get [dartx.direction]() {
+    return this.direction;
+  }
+  set [dartx.direction](value) {
+    this.direction = value;
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  set [dartx.duration](value) {
+    this.duration = value;
+  }
+  get [dartx.easing]() {
+    return this.easing;
+  }
+  set [dartx.easing](value) {
+    this.easing = value;
+  }
+  get [dartx.endDelay]() {
+    return this.endDelay;
+  }
+  set [dartx.endDelay](value) {
+    this.endDelay = value;
+  }
+  get [dartx.fill]() {
+    return this.fill;
+  }
+  set [dartx.fill](value) {
+    this.fill = value;
+  }
+  get [dartx.iterationStart]() {
+    return this.iterationStart;
+  }
+  set [dartx.iterationStart](value) {
+    this.iterationStart = value;
+  }
+  get [dartx.iterations]() {
+    return this.iterations;
+  }
+  set [dartx.iterations](value) {
+    this.iterations = value;
+  }
+  get [dartx.playbackRate]() {
+    return this.playbackRate;
+  }
+  set [dartx.playbackRate](value) {
+    this.playbackRate = value;
+  }
+};
+dart.setSignature(html$.AnimationEffectTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AnimationEffectTiming, [])}),
+  fields: () => ({
+    [dartx.delay]: core.num,
+    [dartx.direction]: core.String,
+    [dartx.duration]: core.Object,
+    [dartx.easing]: core.String,
+    [dartx.endDelay]: core.num,
+    [dartx.fill]: core.String,
+    [dartx.iterationStart]: core.num,
+    [dartx.iterations]: core.num,
+    [dartx.playbackRate]: core.num
+  })
+});
+dart.registerExtension(dart.global.AnimationEffectTiming, html$.AnimationEffectTiming);
+dart.defineExtensionNames([
+  'animationName',
+  'elapsedTime'
+]);
+html$.AnimationEvent = class AnimationEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.AnimationEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.AnimationEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.AnimationEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.AnimationEvent(type);
+  }
+  get [dartx.animationName]() {
+    return this.animationName;
+  }
+  get [dartx.elapsedTime]() {
+    return this.elapsedTime;
+  }
+};
+dart.setSignature(html$.AnimationEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.AnimationEvent, []),
+    new: dart.definiteFunctionType(html$.AnimationEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.animationName]: core.String,
+    [dartx.elapsedTime]: core.double
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.AnimationEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AnimationEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.AnimationEvent, html$.AnimationEvent);
+dart.defineExtensionNames([
+  'currentTime',
+  'timelineTime'
+]);
+html$.AnimationPlayerEvent = class AnimationPlayerEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.AnimationPlayerEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.AnimationPlayerEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.AnimationPlayerEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.AnimationPlayerEvent(type);
+  }
+  get [dartx.currentTime]() {
+    return this.currentTime;
+  }
+  get [dartx.timelineTime]() {
+    return this.timelineTime;
+  }
+};
+dart.setSignature(html$.AnimationPlayerEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.AnimationPlayerEvent, []),
+    new: dart.definiteFunctionType(html$.AnimationPlayerEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.currentTime]: core.double,
+    [dartx.timelineTime]: core.double
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.AnimationPlayerEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AnimationPlayerEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.AnimationPlayerEvent, html$.AnimationPlayerEvent);
+dart.defineExtensionNames([
+  'getAnimations',
+  'play',
+  'currentTime',
+  'playbackRate'
+]);
+html$.AnimationTimeline = class AnimationTimeline extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.currentTime]() {
+    return this.currentTime;
+  }
+  set [dartx.currentTime](value) {
+    this.currentTime = value;
+  }
+  get [dartx.playbackRate]() {
+    return this.playbackRate;
+  }
+  set [dartx.playbackRate](value) {
+    this.playbackRate = value;
+  }
+  [dartx.getAnimations](...args) {
+    return this.getAnimations.apply(this, args);
+  }
+  [dartx.play](...args) {
+    return this.play.apply(this, args);
+  }
+};
+dart.setSignature(html$.AnimationTimeline, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AnimationTimeline, [])}),
+  fields: () => ({
+    [dartx.currentTime]: core.num,
+    [dartx.playbackRate]: core.num
+  }),
+  methods: () => ({
+    [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html$.Animation), []),
+    [dartx.play]: dart.definiteFunctionType(html$.Animation, [html$.AnimationEffectReadOnly])
+  })
+});
+dart.registerExtension(dart.global.AnimationTimeline, html$.AnimationTimeline);
+dart.defineExtensionNames([
+  'outcome',
+  'platform'
+]);
+html$.AppBannerPromptResult = class AppBannerPromptResult extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.outcome]() {
+    return this.outcome;
+  }
+  get [dartx.platform]() {
+    return this.platform;
+  }
+};
+dart.setSignature(html$.AppBannerPromptResult, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AppBannerPromptResult, [])}),
+  fields: () => ({
+    [dartx.outcome]: core.String,
+    [dartx.platform]: core.String
+  })
+});
+dart.registerExtension(dart.global.AppBannerPromptResult, html$.AppBannerPromptResult);
+dart.defineExtensionNames([
+  'abort',
+  'swapCache',
+  'update',
+  'onCached',
+  'onChecking',
+  'onDownloading',
+  'onError',
+  'onNoUpdate',
+  'onObsolete',
+  'onProgress',
+  'onUpdateReady',
+  'status'
+]);
+html$.ApplicationCache = class ApplicationCache extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!window.applicationCache;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.swapCache](...args) {
+    return this.swapCache.apply(this, args);
+  }
+  [dartx.update](...args) {
+    return this.update.apply(this, args);
+  }
+  get [dartx.onCached]() {
+    return html$.ApplicationCache.cachedEvent.forTarget(this);
+  }
+  get [dartx.onChecking]() {
+    return html$.ApplicationCache.checkingEvent.forTarget(this);
+  }
+  get [dartx.onDownloading]() {
+    return html$.ApplicationCache.downloadingEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.ApplicationCache.errorEvent.forTarget(this);
+  }
+  get [dartx.onNoUpdate]() {
+    return html$.ApplicationCache.noUpdateEvent.forTarget(this);
+  }
+  get [dartx.onObsolete]() {
+    return html$.ApplicationCache.obsoleteEvent.forTarget(this);
+  }
+  get [dartx.onProgress]() {
+    return html$.ApplicationCache.progressEvent.forTarget(this);
+  }
+  get [dartx.onUpdateReady]() {
+    return html$.ApplicationCache.updateReadyEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.ApplicationCache, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ApplicationCache, [])}),
+  fields: () => ({[dartx.status]: core.int}),
+  getters: () => ({
+    [dartx.onCached]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onChecking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onDownloading]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onNoUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onObsolete]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onUpdateReady]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.swapCache]: dart.definiteFunctionType(dart.void, []),
+    [dartx.update]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    cachedEvent: EventStreamProviderOfEvent(),
+    checkingEvent: EventStreamProviderOfEvent(),
+    downloadingEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    noUpdateEvent: EventStreamProviderOfEvent(),
+    obsoleteEvent: EventStreamProviderOfEvent(),
+    progressEvent: EventStreamProviderOfProgressEvent(),
+    updateReadyEvent: EventStreamProviderOfEvent(),
+    CHECKING: core.int,
+    DOWNLOADING: core.int,
+    IDLE: core.int,
+    OBSOLETE: core.int,
+    UNCACHED: core.int,
+    UPDATEREADY: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+html$.ApplicationCache.CHECKING = 2;
+html$.ApplicationCache.DOWNLOADING = 3;
+html$.ApplicationCache.IDLE = 1;
+html$.ApplicationCache.OBSOLETE = 5;
+html$.ApplicationCache.UNCACHED = 0;
+html$.ApplicationCache.UPDATEREADY = 4;
+dart.defineLazy(html$.ApplicationCache, {
+  get cachedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('cached'));
+  },
+  get checkingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('checking'));
+  },
+  get downloadingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('downloading'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get noUpdateEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('noupdate'));
+  },
+  get obsoleteEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('obsolete'));
+  },
+  get progressEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
+  },
+  get updateReadyEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('updateready'));
+  }
+});
+dart.registerExtension(dart.global.ApplicationCache, html$.ApplicationCache);
+dart.registerExtension(dart.global.DOMApplicationCache, html$.ApplicationCache);
+dart.registerExtension(dart.global.OfflineResourceList, html$.ApplicationCache);
+dart.defineExtensionNames([
+  'message',
+  'reason',
+  'status',
+  'url'
+]);
+html$.ApplicationCacheErrorEvent = class ApplicationCacheErrorEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.ApplicationCacheErrorEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.ApplicationCacheErrorEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.ApplicationCacheErrorEvent(type);
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  get [dartx.reason]() {
+    return this.reason;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+};
+dart.setSignature(html$.ApplicationCacheErrorEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, []),
+    new: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.message]: core.String,
+    [dartx.reason]: core.String,
+    [dartx.status]: core.int,
+    [dartx.url]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.ApplicationCacheErrorEvent, html$.ApplicationCacheErrorEvent);
+dart.defineExtensionNames([
+  'toString',
+  'alt',
+  'coords',
+  'shape',
+  'target',
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'origin',
+  'password',
+  'pathname',
+  'port',
+  'protocol',
+  'search',
+  'username'
+]);
+html$.AreaElement = class AreaElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.AreaElement._check(html$.document[dartx.createElement]("area"));
+  }
+  created() {
+    this[dartx.alt] = null;
+    this[dartx.coords] = null;
+    this[dartx.shape] = null;
+    this[dartx.target] = null;
+    this[dartx.hash] = null;
+    this[dartx.host] = null;
+    this[dartx.hostname] = null;
+    this[dartx.href] = null;
+    this[dartx.origin] = null;
+    this[dartx.password] = null;
+    this[dartx.pathname] = null;
+    this[dartx.port] = null;
+    this[dartx.protocol] = null;
+    this[dartx.search] = null;
+    this[dartx.username] = null;
+    super.created();
+  }
+  get [dartx.alt]() {
+    return this.alt;
+  }
+  set [dartx.alt](value) {
+    this.alt = value;
+  }
+  get [dartx.coords]() {
+    return this.coords;
+  }
+  set [dartx.coords](value) {
+    this.coords = value;
+  }
+  get [dartx.shape]() {
+    return this.shape;
+  }
+  set [dartx.shape](value) {
+    this.shape = value;
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+  set [dartx.target](value) {
+    this.target = value;
+  }
+  get [dartx.hash]() {
+    return this.hash;
+  }
+  set [dartx.hash](value) {
+    this.hash = value;
+  }
+  get [dartx.host]() {
+    return this.host;
+  }
+  set [dartx.host](value) {
+    this.host = value;
+  }
+  get [dartx.hostname]() {
+    return this.hostname;
+  }
+  set [dartx.hostname](value) {
+    this.hostname = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  set [dartx.href](value) {
+    this.href = value;
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.password]() {
+    return this.password;
+  }
+  set [dartx.password](value) {
+    this.password = value;
+  }
+  get [dartx.pathname]() {
+    return this.pathname;
+  }
+  set [dartx.pathname](value) {
+    this.pathname = value;
+  }
+  get [dartx.port]() {
+    return this.port;
+  }
+  set [dartx.port](value) {
+    this.port = value;
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  set [dartx.protocol](value) {
+    this.protocol = value;
+  }
+  get [dartx.search]() {
+    return this.search;
+  }
+  set [dartx.search](value) {
+    this.search = value;
+  }
+  get [dartx.username]() {
+    return this.username;
+  }
+  set [dartx.username](value) {
+    this.username = value;
+  }
+  [dartx.toString]() {
+    return String(this);
+  }
+};
+dart.defineNamedConstructor(html$.AreaElement, 'created');
+html$.AreaElement[dart.implements] = () => [html$.UrlUtils];
+dart.setSignature(html$.AreaElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.AreaElement, []),
+    new: dart.definiteFunctionType(html$.AreaElement, []),
+    created: dart.definiteFunctionType(html$.AreaElement, [])
+  }),
+  fields: () => ({
+    [dartx.alt]: core.String,
+    [dartx.coords]: core.String,
+    [dartx.shape]: core.String,
+    [dartx.target]: core.String,
+    [dartx.hash]: core.String,
+    [dartx.host]: core.String,
+    [dartx.hostname]: core.String,
+    [dartx.href]: core.String,
+    [dartx.origin]: core.String,
+    [dartx.password]: core.String,
+    [dartx.pathname]: core.String,
+    [dartx.port]: core.String,
+    [dartx.protocol]: core.String,
+    [dartx.search]: core.String,
+    [dartx.username]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLAreaElement, html$.AreaElement);
+dart.defineExtensionNames([
+  'addTextTrack',
+  'canPlayType',
+  'load',
+  'pause',
+  'play',
+  'setMediaKeys',
+  'setSinkId',
+  'addKey',
+  'cancelKeyRequest',
+  'generateKeyRequest',
+  'onKeyAdded',
+  'onKeyError',
+  'onKeyMessage',
+  'onNeedKey',
+  'audioTracks',
+  'autoplay',
+  'buffered',
+  'controller',
+  'controls',
+  'crossOrigin',
+  'currentSrc',
+  'currentTime',
+  'defaultMuted',
+  'defaultPlaybackRate',
+  'duration',
+  'ended',
+  'error',
+  'loop',
+  'mediaGroup',
+  'mediaKeys',
+  'muted',
+  'networkState',
+  'paused',
+  'playbackRate',
+  'played',
+  'preload',
+  'readyState',
+  'seekable',
+  'seeking',
+  'session',
+  'sinkId',
+  'src',
+  'textTracks',
+  'videoTracks',
+  'volume',
+  'audioDecodedByteCount',
+  'videoDecodedByteCount'
+]);
+html$.MediaElement = class MediaElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.audioTracks] = null;
+    this[dartx.autoplay] = null;
+    this[dartx.buffered] = null;
+    this[dartx.controller] = null;
+    this[dartx.controls] = null;
+    this[dartx.crossOrigin] = null;
+    this[dartx.currentSrc] = null;
+    this[dartx.currentTime] = null;
+    this[dartx.defaultMuted] = null;
+    this[dartx.defaultPlaybackRate] = null;
+    this[dartx.duration] = null;
+    this[dartx.ended] = null;
+    this[dartx.error] = null;
+    this[dartx.loop] = null;
+    this[dartx.mediaGroup] = null;
+    this[dartx.mediaKeys] = null;
+    this[dartx.muted] = null;
+    this[dartx.networkState] = null;
+    this[dartx.paused] = null;
+    this[dartx.playbackRate] = null;
+    this[dartx.played] = null;
+    this[dartx.preload] = null;
+    this[dartx.readyState] = null;
+    this[dartx.seekable] = null;
+    this[dartx.seeking] = null;
+    this[dartx.session] = null;
+    this[dartx.sinkId] = null;
+    this[dartx.src] = null;
+    this[dartx.textTracks] = null;
+    this[dartx.videoTracks] = null;
+    this[dartx.volume] = null;
+    this[dartx.audioDecodedByteCount] = null;
+    this[dartx.videoDecodedByteCount] = null;
+    super.created();
+  }
+  get [dartx.audioTracks]() {
+    return this.audioTracks;
+  }
+  get [dartx.autoplay]() {
+    return this.autoplay;
+  }
+  set [dartx.autoplay](value) {
+    this.autoplay = value;
+  }
+  get [dartx.buffered]() {
+    return this.buffered;
+  }
+  get [dartx.controller]() {
+    return this.controller;
+  }
+  set [dartx.controller](value) {
+    this.controller = value;
+  }
+  get [dartx.controls]() {
+    return this.controls;
+  }
+  set [dartx.controls](value) {
+    this.controls = value;
+  }
+  get [dartx.crossOrigin]() {
+    return this.crossOrigin;
+  }
+  set [dartx.crossOrigin](value) {
+    this.crossOrigin = value;
+  }
+  get [dartx.currentSrc]() {
+    return this.currentSrc;
+  }
+  get [dartx.currentTime]() {
+    return this.currentTime;
+  }
+  set [dartx.currentTime](value) {
+    this.currentTime = value;
+  }
+  get [dartx.defaultMuted]() {
+    return this.defaultMuted;
+  }
+  set [dartx.defaultMuted](value) {
+    this.defaultMuted = value;
+  }
+  get [dartx.defaultPlaybackRate]() {
+    return this.defaultPlaybackRate;
+  }
+  set [dartx.defaultPlaybackRate](value) {
+    this.defaultPlaybackRate = value;
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  get [dartx.ended]() {
+    return this.ended;
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.loop]() {
+    return this.loop;
+  }
+  set [dartx.loop](value) {
+    this.loop = value;
+  }
+  get [dartx.mediaGroup]() {
+    return this.mediaGroup;
+  }
+  set [dartx.mediaGroup](value) {
+    this.mediaGroup = value;
+  }
+  get [dartx.mediaKeys]() {
+    return this.mediaKeys;
+  }
+  get [dartx.muted]() {
+    return this.muted;
+  }
+  set [dartx.muted](value) {
+    this.muted = value;
+  }
+  get [dartx.networkState]() {
+    return this.networkState;
+  }
+  get [dartx.paused]() {
+    return this.paused;
+  }
+  get [dartx.playbackRate]() {
+    return this.playbackRate;
+  }
+  set [dartx.playbackRate](value) {
+    this.playbackRate = value;
+  }
+  get [dartx.played]() {
+    return this.played;
+  }
+  get [dartx.preload]() {
+    return this.preload;
+  }
+  set [dartx.preload](value) {
+    this.preload = value;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.seekable]() {
+    return this.seekable;
+  }
+  get [dartx.seeking]() {
+    return this.seeking;
+  }
+  get [dartx.session]() {
+    return this.session;
+  }
+  set [dartx.session](value) {
+    this.session = value;
+  }
+  get [dartx.sinkId]() {
+    return this.sinkId;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.textTracks]() {
+    return this.textTracks;
+  }
+  get [dartx.videoTracks]() {
+    return this.videoTracks;
+  }
+  get [dartx.volume]() {
+    return this.volume;
+  }
+  set [dartx.volume](value) {
+    this.volume = value;
+  }
+  get [dartx.audioDecodedByteCount]() {
+    return this.webkitAudioDecodedByteCount;
+  }
+  get [dartx.videoDecodedByteCount]() {
+    return this.webkitVideoDecodedByteCount;
+  }
+  [dartx.addTextTrack](...args) {
+    return this.addTextTrack.apply(this, args);
+  }
+  [dartx.canPlayType](...args) {
+    return this.canPlayType.apply(this, args);
+  }
+  [dartx.load](...args) {
+    return this.load.apply(this, args);
+  }
+  [dartx.pause](...args) {
+    return this.pause.apply(this, args);
+  }
+  [dartx.play](...args) {
+    return this.play.apply(this, args);
+  }
+  [dartx.setMediaKeys](...args) {
+    return this.setMediaKeys.apply(this, args);
+  }
+  [dartx.setSinkId](...args) {
+    return this.setSinkId.apply(this, args);
+  }
+  [dartx.addKey](...args) {
+    return this.webkitAddKey.apply(this, args);
+  }
+  [dartx.cancelKeyRequest](...args) {
+    return this.webkitCancelKeyRequest.apply(this, args);
+  }
+  [dartx.generateKeyRequest](...args) {
+    return this.webkitGenerateKeyRequest.apply(this, args);
+  }
+  get [dartx.onKeyAdded]() {
+    return html$.MediaElement.keyAddedEvent.forElement(this);
+  }
+  get [dartx.onKeyError]() {
+    return html$.MediaElement.keyErrorEvent.forElement(this);
+  }
+  get [dartx.onKeyMessage]() {
+    return html$.MediaElement.keyMessageEvent.forElement(this);
+  }
+  get [dartx.onNeedKey]() {
+    return html$.MediaElement.needKeyEvent.forElement(this);
+  }
+};
+dart.defineNamedConstructor(html$.MediaElement, 'created');
+dart.setSignature(html$.MediaElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaElement, []),
+    created: dart.definiteFunctionType(html$.MediaElement, [])
+  }),
+  fields: () => ({
+    [dartx.audioTracks]: html$.AudioTrackList,
+    [dartx.autoplay]: core.bool,
+    [dartx.buffered]: html$.TimeRanges,
+    [dartx.controller]: html$.MediaController,
+    [dartx.controls]: core.bool,
+    [dartx.crossOrigin]: core.String,
+    [dartx.currentSrc]: core.String,
+    [dartx.currentTime]: core.num,
+    [dartx.defaultMuted]: core.bool,
+    [dartx.defaultPlaybackRate]: core.num,
+    [dartx.duration]: core.double,
+    [dartx.ended]: core.bool,
+    [dartx.error]: html$.MediaError,
+    [dartx.loop]: core.bool,
+    [dartx.mediaGroup]: core.String,
+    [dartx.mediaKeys]: html$.MediaKeys,
+    [dartx.muted]: core.bool,
+    [dartx.networkState]: core.int,
+    [dartx.paused]: core.bool,
+    [dartx.playbackRate]: core.num,
+    [dartx.played]: html$.TimeRanges,
+    [dartx.preload]: core.String,
+    [dartx.readyState]: core.int,
+    [dartx.seekable]: html$.TimeRanges,
+    [dartx.seeking]: core.bool,
+    [dartx.session]: html$.MediaSession,
+    [dartx.sinkId]: core.String,
+    [dartx.src]: core.String,
+    [dartx.textTracks]: html$.TextTrackList,
+    [dartx.videoTracks]: html$.VideoTrackList,
+    [dartx.volume]: core.num,
+    [dartx.audioDecodedByteCount]: core.int,
+    [dartx.videoDecodedByteCount]: core.int
+  }),
+  getters: () => ({
+    [dartx.onKeyAdded]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
+    [dartx.onKeyError]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
+    [dartx.onKeyMessage]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
+    [dartx.onNeedKey]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), [])
+  }),
+  methods: () => ({
+    [dartx.addTextTrack]: dart.definiteFunctionType(html$.TextTrack, [core.String], [core.String, core.String]),
+    [dartx.canPlayType]: dart.definiteFunctionType(core.String, [core.String], [core.String]),
+    [dartx.load]: dart.definiteFunctionType(dart.void, []),
+    [dartx.pause]: dart.definiteFunctionType(dart.void, []),
+    [dartx.play]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setMediaKeys]: dart.definiteFunctionType(async.Future, [html$.MediaKeys]),
+    [dartx.setSinkId]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.addKey]: dart.definiteFunctionType(dart.void, [core.String, typed_data.Uint8List], [typed_data.Uint8List, core.String]),
+    [dartx.cancelKeyRequest]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.generateKeyRequest]: dart.definiteFunctionType(dart.void, [core.String], [typed_data.Uint8List])
+  }),
+  sfields: () => ({
+    keyAddedEvent: EventStreamProviderOfMediaKeyEvent(),
+    keyErrorEvent: EventStreamProviderOfMediaKeyEvent(),
+    keyMessageEvent: EventStreamProviderOfMediaKeyEvent(),
+    needKeyEvent: EventStreamProviderOfMediaKeyEvent(),
+    HAVE_CURRENT_DATA: core.int,
+    HAVE_ENOUGH_DATA: core.int,
+    HAVE_FUTURE_DATA: core.int,
+    HAVE_METADATA: core.int,
+    HAVE_NOTHING: core.int,
+    NETWORK_EMPTY: core.int,
+    NETWORK_IDLE: core.int,
+    NETWORK_LOADING: core.int,
+    NETWORK_NO_SOURCE: core.int
+  })
+});
+html$.MediaElement.HAVE_CURRENT_DATA = 2;
+html$.MediaElement.HAVE_ENOUGH_DATA = 4;
+html$.MediaElement.HAVE_FUTURE_DATA = 3;
+html$.MediaElement.HAVE_METADATA = 1;
+html$.MediaElement.HAVE_NOTHING = 0;
+html$.MediaElement.NETWORK_EMPTY = 0;
+html$.MediaElement.NETWORK_IDLE = 1;
+html$.MediaElement.NETWORK_LOADING = 2;
+html$.MediaElement.NETWORK_NO_SOURCE = 3;
+dart.defineLazy(html$.MediaElement, {
+  get keyAddedEvent() {
+    return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeyadded'));
+  },
+  get keyErrorEvent() {
+    return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeyerror'));
+  },
+  get keyMessageEvent() {
+    return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeymessage'));
+  },
+  get needKeyEvent() {
+    return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitneedkey'));
+  }
+});
+dart.registerExtension(dart.global.HTMLMediaElement, html$.MediaElement);
+html$.AudioElement = class AudioElement extends html$.MediaElement {
+  static _(src) {
+    if (src === void 0) src = null;
+    if (src != null) {
+      return html$.AudioElement._create_1(src);
+    }
+    return html$.AudioElement._create_2();
+  }
+  static _create_1(src) {
+    return new Audio(src);
+  }
+  static _create_2() {
+    return new Audio();
+  }
+  created() {
+    super.created();
+  }
+  static new(src) {
+    if (src === void 0) src = null;
+    return html$.AudioElement._(src);
+  }
+};
+dart.defineNamedConstructor(html$.AudioElement, 'created');
+dart.setSignature(html$.AudioElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.AudioElement, [], [core.String]),
+    created: dart.definiteFunctionType(html$.AudioElement, []),
+    new: dart.definiteFunctionType(html$.AudioElement, [], [core.String])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.AudioElement, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AudioElement, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.HTMLAudioElement, html$.AudioElement);
+dart.defineExtensionNames([
+  'enabled',
+  'id',
+  'kind',
+  'label',
+  'language'
+]);
+html$.AudioTrack = class AudioTrack extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.enabled]() {
+    return this.enabled;
+  }
+  set [dartx.enabled](value) {
+    this.enabled = value;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  get [dartx.language]() {
+    return this.language;
+  }
+};
+dart.setSignature(html$.AudioTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AudioTrack, [])}),
+  fields: () => ({
+    [dartx.enabled]: core.bool,
+    [dartx.id]: core.String,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String,
+    [dartx.language]: core.String
+  })
+});
+dart.registerExtension(dart.global.AudioTrack, html$.AudioTrack);
+const __getter__ = Symbol('__getter__');
+dart.defineExtensionNames([
+  'getTrackById',
+  'onChange',
+  'length'
+]);
+html$.AudioTrackList = class AudioTrackList extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.getTrackById](...args) {
+    return this.getTrackById.apply(this, args);
+  }
+  get [dartx.onChange]() {
+    return html$.AudioTrackList.changeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.AudioTrackList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AudioTrackList, [])}),
+  fields: () => ({[dartx.length]: core.int}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [__getter__]: dart.definiteFunctionType(html$.AudioTrack, [core.int]),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.AudioTrack, [core.String])
+  }),
+  sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.AudioTrackList, {
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.AudioTrackList, html$.AudioTrackList);
+dart.defineExtensionNames([
+  'reason'
+]);
+html$.AutocompleteErrorEvent = class AutocompleteErrorEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.AutocompleteErrorEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.AutocompleteErrorEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.AutocompleteErrorEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.AutocompleteErrorEvent(type);
+  }
+  get [dartx.reason]() {
+    return this.reason;
+  }
+};
+dart.setSignature(html$.AutocompleteErrorEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.AutocompleteErrorEvent, []),
+    new: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.reason]: core.String}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.AutocompleteErrorEvent, html$.AutocompleteErrorEvent);
+html$.BRElement = class BRElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.BRElement._check(html$.document[dartx.createElement]("br"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.BRElement, 'created');
+dart.setSignature(html$.BRElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.BRElement, []),
+    new: dart.definiteFunctionType(html$.BRElement, []),
+    created: dart.definiteFunctionType(html$.BRElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLBRElement, html$.BRElement);
+dart.defineExtensionNames([
+  'visible'
+]);
+html$.BarProp = class BarProp extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.visible]() {
+    return this.visible;
+  }
+};
+dart.setSignature(html$.BarProp, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BarProp, [])}),
+  fields: () => ({[dartx.visible]: core.bool})
+});
+dart.registerExtension(dart.global.BarProp, html$.BarProp);
+dart.defineExtensionNames([
+  'href',
+  'target'
+]);
+html$.BaseElement = class BaseElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.BaseElement._check(html$.document[dartx.createElement]("base"));
+  }
+  created() {
+    this[dartx.href] = null;
+    this[dartx.target] = null;
+    super.created();
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  set [dartx.href](value) {
+    this.href = value;
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+  set [dartx.target](value) {
+    this.target = value;
+  }
+};
+dart.defineNamedConstructor(html$.BaseElement, 'created');
+dart.setSignature(html$.BaseElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.BaseElement, []),
+    new: dart.definiteFunctionType(html$.BaseElement, []),
+    created: dart.definiteFunctionType(html$.BaseElement, [])
+  }),
+  fields: () => ({
+    [dartx.href]: core.String,
+    [dartx.target]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLBaseElement, html$.BaseElement);
+dart.defineExtensionNames([
+  'charging',
+  'chargingTime',
+  'dischargingTime',
+  'level'
+]);
+html$.BatteryManager = class BatteryManager extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.charging]() {
+    return this.charging;
+  }
+  get [dartx.chargingTime]() {
+    return this.chargingTime;
+  }
+  get [dartx.dischargingTime]() {
+    return this.dischargingTime;
+  }
+  get [dartx.level]() {
+    return this.level;
+  }
+};
+dart.setSignature(html$.BatteryManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BatteryManager, [])}),
+  fields: () => ({
+    [dartx.charging]: core.bool,
+    [dartx.chargingTime]: core.double,
+    [dartx.dischargingTime]: core.double,
+    [dartx.level]: core.double
+  })
+});
+dart.registerExtension(dart.global.BatteryManager, html$.BatteryManager);
+dart.defineExtensionNames([
+  'platforms',
+  'prompt',
+  'userChoice'
+]);
+html$.BeforeInstallPromptEvent = class BeforeInstallPromptEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.BeforeInstallPromptEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.BeforeInstallPromptEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.BeforeInstallPromptEvent(type);
+  }
+  get [dartx.platforms]() {
+    return this.platforms;
+  }
+  get [dartx.userChoice]() {
+    return this.userChoice;
+  }
+  [dartx.prompt](...args) {
+    return this.prompt.apply(this, args);
+  }
+};
+dart.setSignature(html$.BeforeInstallPromptEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, []),
+    new: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.userChoice]: async.Future}),
+  getters: () => ({[dartx.platforms]: dart.definiteFunctionType(core.List$(core.String), [])}),
+  methods: () => ({[dartx.prompt]: dart.definiteFunctionType(async.Future, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.BeforeInstallPromptEvent, html$.BeforeInstallPromptEvent);
+dart.defineExtensionNames([
+  'returnValue',
+  'returnValue'
+]);
+html$.BeforeUnloadEvent = class BeforeUnloadEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.returnValue]() {
+    return this.returnValue;
+  }
+  set [dartx.returnValue](value) {
+    this.returnValue = value;
+  }
+};
+dart.setSignature(html$.BeforeUnloadEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BeforeUnloadEvent, [])}),
+  getters: () => ({[dartx.returnValue]: dart.definiteFunctionType(core.String, [])}),
+  setters: () => ({[dartx.returnValue]: dart.definiteFunctionType(dart.void, [core.String])})
+});
+dart.registerExtension(dart.global.BeforeUnloadEvent, html$.BeforeUnloadEvent);
+dart.defineExtensionNames([
+  'close',
+  'slice',
+  'size',
+  'type'
+]);
+html$.Blob = class Blob extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.slice](...args) {
+    return this.slice.apply(this, args);
+  }
+  static new(blobParts, type, endings) {
+    if (type === void 0) type = null;
+    if (endings === void 0) endings = null;
+    if (type == null && endings == null) {
+      return html$.Blob._check(html$.Blob._create_1(blobParts));
+    }
+    let bag = html$.Blob._create_bag();
+    if (type != null) html$.Blob._bag_set(bag, 'type', type);
+    if (endings != null) html$.Blob._bag_set(bag, 'endings', endings);
+    return html$.Blob._check(html$.Blob._create_2(blobParts, bag));
+  }
+  static _create_1(parts) {
+    return new self.Blob(parts);
+  }
+  static _create_2(parts, bag) {
+    return new self.Blob(parts, bag);
+  }
+  static _create_bag() {
+    return {};
+  }
+  static _bag_set(bag, key, value) {
+    bag[key] = value;
+  }
+};
+dart.setSignature(html$.Blob, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.Blob, []),
+    new: dart.definiteFunctionType(html$.Blob, [core.List], [core.String, core.String])
+  }),
+  fields: () => ({
+    [dartx.size]: core.int,
+    [dartx.type]: core.String
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.slice]: dart.definiteFunctionType(html$.Blob, [], [core.int, core.int, core.String])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic]),
+    _create_bag: dart.definiteFunctionType(dart.dynamic, []),
+    _bag_set: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_bag', '_bag_set']
+});
+dart.registerExtension(dart.global.Blob, html$.Blob);
+const _requestDevice_1 = Symbol('_requestDevice_1');
+dart.defineExtensionNames([
+  'requestDevice'
+]);
+html$.Bluetooth = class Bluetooth extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.requestDevice](options) {
+    let options_1 = html_common.convertDartToNative_Dictionary(options);
+    return this[_requestDevice_1](options_1);
+  }
+  [_requestDevice_1](...args) {
+    return this.requestDevice.apply(this, args);
+  }
+};
+dart.setSignature(html$.Bluetooth, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Bluetooth, [])}),
+  methods: () => ({
+    [dartx.requestDevice]: dart.definiteFunctionType(async.Future, [core.Map]),
+    [_requestDevice_1]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.Bluetooth, html$.Bluetooth);
+dart.defineExtensionNames([
+  'connectGatt',
+  'deviceClass',
+  'instanceID',
+  'name',
+  'paired',
+  'productID',
+  'productVersion',
+  'vendorID',
+  'vendorIDSource'
+]);
+html$.BluetoothDevice = class BluetoothDevice extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.deviceClass]() {
+    return this.deviceClass;
+  }
+  get [dartx.instanceID]() {
+    return this.instanceID;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.paired]() {
+    return this.paired;
+  }
+  get [dartx.productID]() {
+    return this.productID;
+  }
+  get [dartx.productVersion]() {
+    return this.productVersion;
+  }
+  get [dartx.vendorID]() {
+    return this.vendorID;
+  }
+  get [dartx.vendorIDSource]() {
+    return this.vendorIDSource;
+  }
+  [dartx.connectGatt](...args) {
+    return this.connectGATT.apply(this, args);
+  }
+};
+dart.setSignature(html$.BluetoothDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothDevice, [])}),
+  fields: () => ({
+    [dartx.deviceClass]: core.int,
+    [dartx.instanceID]: core.String,
+    [dartx.name]: core.String,
+    [dartx.paired]: core.bool,
+    [dartx.productID]: core.int,
+    [dartx.productVersion]: core.int,
+    [dartx.vendorID]: core.int,
+    [dartx.vendorIDSource]: core.String
+  }),
+  methods: () => ({[dartx.connectGatt]: dart.definiteFunctionType(async.Future, [])})
+});
+dart.registerExtension(dart.global.BluetoothDevice, html$.BluetoothDevice);
+dart.defineExtensionNames([
+  'readValue',
+  'writeValue',
+  'uuid'
+]);
+html$.BluetoothGattCharacteristic = class BluetoothGattCharacteristic extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.uuid]() {
+    return this.uuid;
+  }
+  [dartx.readValue](...args) {
+    return this.readValue.apply(this, args);
+  }
+  [dartx.writeValue](...args) {
+    return this.writeValue.apply(this, args);
+  }
+};
+dart.setSignature(html$.BluetoothGattCharacteristic, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattCharacteristic, [])}),
+  fields: () => ({[dartx.uuid]: core.String}),
+  methods: () => ({
+    [dartx.readValue]: dart.definiteFunctionType(async.Future, []),
+    [dartx.writeValue]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.BluetoothGATTCharacteristic, html$.BluetoothGattCharacteristic);
+dart.defineExtensionNames([
+  'getPrimaryService',
+  'connected'
+]);
+html$.BluetoothGattRemoteServer = class BluetoothGattRemoteServer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.connected]() {
+    return this.connected;
+  }
+  [dartx.getPrimaryService](...args) {
+    return this.getPrimaryService.apply(this, args);
+  }
+};
+dart.setSignature(html$.BluetoothGattRemoteServer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattRemoteServer, [])}),
+  fields: () => ({[dartx.connected]: core.bool}),
+  methods: () => ({[dartx.getPrimaryService]: dart.definiteFunctionType(async.Future, [dart.dynamic])})
+});
+dart.registerExtension(dart.global.BluetoothGATTRemoteServer, html$.BluetoothGattRemoteServer);
+dart.defineExtensionNames([
+  'getCharacteristic',
+  'isPrimary',
+  'uuid'
+]);
+html$.BluetoothGattService = class BluetoothGattService extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.isPrimary]() {
+    return this.isPrimary;
+  }
+  get [dartx.uuid]() {
+    return this.uuid;
+  }
+  [dartx.getCharacteristic](...args) {
+    return this.getCharacteristic.apply(this, args);
+  }
+};
+dart.setSignature(html$.BluetoothGattService, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattService, [])}),
+  fields: () => ({
+    [dartx.isPrimary]: core.bool,
+    [dartx.uuid]: core.String
+  }),
+  methods: () => ({[dartx.getCharacteristic]: dart.definiteFunctionType(async.Future, [dart.dynamic])})
+});
+dart.registerExtension(dart.global.BluetoothGATTService, html$.BluetoothGattService);
+html$.BluetoothUuid = class BluetoothUuid extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.BluetoothUuid, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothUuid, [])}),
+  statics: () => ({
+    canonicalUuid: dart.definiteFunctionType(core.String, [core.int]),
+    getCharacteristic: dart.definiteFunctionType(core.String, [core.Object]),
+    getDescriptor: dart.definiteFunctionType(core.String, [core.Object]),
+    getService: dart.definiteFunctionType(core.String, [core.Object])
+  }),
+  names: ['canonicalUuid', 'getCharacteristic', 'getDescriptor', 'getService']
+});
+dart.registerExtension(dart.global.BluetoothUUID, html$.BluetoothUuid);
+dart.defineExtensionNames([
+  'arrayBuffer',
+  'blob',
+  'json',
+  'text',
+  'bodyUsed'
+]);
+html$.Body = class Body extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.bodyUsed]() {
+    return this.bodyUsed;
+  }
+  [dartx.arrayBuffer](...args) {
+    return this.arrayBuffer.apply(this, args);
+  }
+  [dartx.blob](...args) {
+    return this.blob.apply(this, args);
+  }
+  [dartx.json](...args) {
+    return this.json.apply(this, args);
+  }
+  [dartx.text](...args) {
+    return this.text.apply(this, args);
+  }
+};
+dart.setSignature(html$.Body, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Body, [])}),
+  fields: () => ({[dartx.bodyUsed]: core.bool}),
+  methods: () => ({
+    [dartx.arrayBuffer]: dart.definiteFunctionType(async.Future, []),
+    [dartx.blob]: dart.definiteFunctionType(async.Future, []),
+    [dartx.json]: dart.definiteFunctionType(async.Future, []),
+    [dartx.text]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.Body, html$.Body);
+dart.defineExtensionNames([
+  'onBlur',
+  'onError',
+  'onFocus',
+  'onHashChange',
+  'onLoad',
+  'onMessage',
+  'onOffline',
+  'onOnline',
+  'onPopState',
+  'onResize',
+  'onScroll',
+  'onStorage',
+  'onUnload'
+]);
+html$.BodyElement = class BodyElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.BodyElement._check(html$.document[dartx.createElement]("body"));
+  }
+  created() {
+    super.created();
+  }
+  get [dartx.onBlur]() {
+    return html$.BodyElement.blurEvent.forElement(this);
+  }
+  get [dartx.onError]() {
+    return html$.BodyElement.errorEvent.forElement(this);
+  }
+  get [dartx.onFocus]() {
+    return html$.BodyElement.focusEvent.forElement(this);
+  }
+  get [dartx.onHashChange]() {
+    return html$.BodyElement.hashChangeEvent.forElement(this);
+  }
+  get [dartx.onLoad]() {
+    return html$.BodyElement.loadEvent.forElement(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.BodyElement.messageEvent.forElement(this);
+  }
+  get [dartx.onOffline]() {
+    return html$.BodyElement.offlineEvent.forElement(this);
+  }
+  get [dartx.onOnline]() {
+    return html$.BodyElement.onlineEvent.forElement(this);
+  }
+  get [dartx.onPopState]() {
+    return html$.BodyElement.popStateEvent.forElement(this);
+  }
+  get [dartx.onResize]() {
+    return html$.BodyElement.resizeEvent.forElement(this);
+  }
+  get [dartx.onScroll]() {
+    return html$.BodyElement.scrollEvent.forElement(this);
+  }
+  get [dartx.onStorage]() {
+    return html$.BodyElement.storageEvent.forElement(this);
+  }
+  get [dartx.onUnload]() {
+    return html$.BodyElement.unloadEvent.forElement(this);
+  }
+};
+dart.defineNamedConstructor(html$.BodyElement, 'created');
+html$.BodyElement[dart.implements] = () => [html$.WindowEventHandlers];
+dart.setSignature(html$.BodyElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.BodyElement, []),
+    new: dart.definiteFunctionType(html$.BodyElement, []),
+    created: dart.definiteFunctionType(html$.BodyElement, [])
+  }),
+  getters: () => ({
+    [dartx.onHashChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(html$.ElementStream$(html$.MessageEvent), []),
+    [dartx.onOffline]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onOnline]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onPopState]: dart.definiteFunctionType(html$.ElementStream$(html$.PopStateEvent), []),
+    [dartx.onStorage]: dart.definiteFunctionType(html$.ElementStream$(html$.StorageEvent), []),
+    [dartx.onUnload]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
+  }),
+  sfields: () => ({
+    blurEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    focusEvent: EventStreamProviderOfEvent(),
+    hashChangeEvent: EventStreamProviderOfEvent(),
+    loadEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent(),
+    offlineEvent: EventStreamProviderOfEvent(),
+    onlineEvent: EventStreamProviderOfEvent(),
+    popStateEvent: EventStreamProviderOfPopStateEvent(),
+    resizeEvent: EventStreamProviderOfEvent(),
+    scrollEvent: EventStreamProviderOfEvent(),
+    storageEvent: EventStreamProviderOfStorageEvent(),
+    unloadEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(html$.BodyElement, {
+  get blurEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('blur'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get focusEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('focus'));
+  },
+  get hashChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
+  },
+  get loadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('load'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  },
+  get offlineEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('offline'));
+  },
+  get onlineEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('online'));
+  },
+  get popStateEvent() {
+    return dart.const(new (EventStreamProviderOfPopStateEvent())('popstate'));
+  },
+  get resizeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('resize'));
+  },
+  get scrollEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('scroll'));
+  },
+  get storageEvent() {
+    return dart.const(new (EventStreamProviderOfStorageEvent())('storage'));
+  },
+  get unloadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('unload'));
+  }
+});
+dart.registerExtension(dart.global.HTMLBodyElement, html$.BodyElement);
+dart.defineExtensionNames([
+  'checkValidity',
+  'reportValidity',
+  'setCustomValidity',
+  'autofocus',
+  'disabled',
+  'form',
+  'formAction',
+  'formEnctype',
+  'formMethod',
+  'formNoValidate',
+  'formTarget',
+  'labels',
+  'name',
+  'type',
+  'validationMessage',
+  'validity',
+  'value',
+  'willValidate'
+]);
+html$.ButtonElement = class ButtonElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ButtonElement._check(html$.document[dartx.createElement]("button"));
+  }
+  created() {
+    this[dartx.autofocus] = null;
+    this[dartx.disabled] = null;
+    this[dartx.form] = null;
+    this[dartx.formAction] = null;
+    this[dartx.formEnctype] = null;
+    this[dartx.formMethod] = null;
+    this[dartx.formNoValidate] = null;
+    this[dartx.formTarget] = null;
+    this[dartx.labels] = null;
+    this[dartx.name] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.value] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  get [dartx.autofocus]() {
+    return this.autofocus;
+  }
+  set [dartx.autofocus](value) {
+    this.autofocus = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.formAction]() {
+    return this.formAction;
+  }
+  set [dartx.formAction](value) {
+    this.formAction = value;
+  }
+  get [dartx.formEnctype]() {
+    return this.formEnctype;
+  }
+  set [dartx.formEnctype](value) {
+    this.formEnctype = value;
+  }
+  get [dartx.formMethod]() {
+    return this.formMethod;
+  }
+  set [dartx.formMethod](value) {
+    this.formMethod = value;
+  }
+  get [dartx.formNoValidate]() {
+    return this.formNoValidate;
+  }
+  set [dartx.formNoValidate](value) {
+    this.formNoValidate = value;
+  }
+  get [dartx.formTarget]() {
+    return this.formTarget;
+  }
+  set [dartx.formTarget](value) {
+    this.formTarget = value;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.ButtonElement, 'created');
+dart.setSignature(html$.ButtonElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ButtonElement, []),
+    new: dart.definiteFunctionType(html$.ButtonElement, []),
+    created: dart.definiteFunctionType(html$.ButtonElement, [])
+  }),
+  fields: () => ({
+    [dartx.autofocus]: core.bool,
+    [dartx.disabled]: core.bool,
+    [dartx.form]: html$.FormElement,
+    [dartx.formAction]: core.String,
+    [dartx.formEnctype]: core.String,
+    [dartx.formMethod]: core.String,
+    [dartx.formNoValidate]: core.bool,
+    [dartx.formTarget]: core.String,
+    [dartx.labels]: ListOfNode(),
+    [dartx.name]: core.String,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.value]: core.String,
+    [dartx.willValidate]: core.bool
+  }),
+  methods: () => ({
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+dart.registerExtension(dart.global.HTMLButtonElement, html$.ButtonElement);
+const _createTextNode = Symbol('_createTextNode');
+dart.defineExtensionNames([
+  'appendData',
+  'deleteData',
+  'insertData',
+  'replaceData',
+  'substringData',
+  'after',
+  'before',
+  'data',
+  'length',
+  'nextElementSibling',
+  'previousElementSibling'
+]);
+html$.CharacterData = class CharacterData extends html$.Node {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  set [dartx.data](value) {
+    this.data = value;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.appendData](...args) {
+    return this.appendData.apply(this, args);
+  }
+  [dartx.deleteData](...args) {
+    return this.deleteData.apply(this, args);
+  }
+  [dartx.insertData](...args) {
+    return this.insertData.apply(this, args);
+  }
+  [dartx.replaceData](...args) {
+    return this.replaceData.apply(this, args);
+  }
+  [dartx.substringData](...args) {
+    return this.substringData.apply(this, args);
+  }
+  [dartx.after](...args) {
+    return this.after.apply(this, args);
+  }
+  [dartx.before](...args) {
+    return this.before.apply(this, args);
+  }
+  get [dartx.nextElementSibling]() {
+    return this.nextElementSibling;
+  }
+  get [dartx.previousElementSibling]() {
+    return this.previousElementSibling;
+  }
+};
+html$.CharacterData[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.ChildNode];
+dart.setSignature(html$.CharacterData, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CharacterData, [])}),
+  fields: () => ({
+    [dartx.data]: core.String,
+    [dartx.length]: core.int,
+    [dartx.nextElementSibling]: html$.Element,
+    [dartx.previousElementSibling]: html$.Element
+  }),
+  methods: () => ({
+    [dartx.appendData]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.deleteData]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.insertData]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
+    [dartx.replaceData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.String]),
+    [dartx.substringData]: dart.definiteFunctionType(core.String, [core.int, core.int]),
+    [dartx.after]: dart.definiteFunctionType(dart.void, [core.Object]),
+    [dartx.before]: dart.definiteFunctionType(dart.void, [core.Object])
+  })
+});
+dart.registerExtension(dart.global.CharacterData, html$.CharacterData);
+dart.defineExtensionNames([
+  'getDestinationInsertionPoints',
+  'splitText',
+  'wholeText'
+]);
+html$.Text = class Text extends html$.CharacterData {
+  static new(data) {
+    return html$.document[_createTextNode](data);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.wholeText]() {
+    return this.wholeText;
+  }
+  [dartx.getDestinationInsertionPoints](...args) {
+    return this.getDestinationInsertionPoints.apply(this, args);
+  }
+  [dartx.splitText](...args) {
+    return this.splitText.apply(this, args);
+  }
+};
+dart.setSignature(html$.Text, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.Text, [core.String]),
+    _: dart.definiteFunctionType(html$.Text, [])
+  }),
+  fields: () => ({[dartx.wholeText]: core.String}),
+  methods: () => ({
+    [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html$.Node), []),
+    [dartx.splitText]: dart.definiteFunctionType(html$.Text, [core.int])
+  })
+});
+dart.registerExtension(dart.global.Text, html$.Text);
+html$.CDataSection = class CDataSection extends html$.Text {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.CDataSection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CDataSection, [])})
+});
+dart.registerExtension(dart.global.CDATASection, html$.CDataSection);
+const _match_1 = Symbol('_match_1');
+const _match_2 = Symbol('_match_2');
+dart.defineExtensionNames([
+  'delete',
+  'has',
+  'keys',
+  'match',
+  'open'
+]);
+html$.CacheStorage = class CacheStorage extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.delete](...args) {
+    return this.delete.apply(this, args);
+  }
+  [dartx.has](...args) {
+    return this.has.apply(this, args);
+  }
+  [dartx.keys](...args) {
+    return this.keys.apply(this, args);
+  }
+  [dartx.match](request, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_match_1](request, options_1);
+    }
+    return this[_match_2](request);
+  }
+  [_match_1](...args) {
+    return this.match.apply(this, args);
+  }
+  [_match_2](...args) {
+    return this.match.apply(this, args);
+  }
+  [dartx.open](...args) {
+    return this.open.apply(this, args);
+  }
+};
+dart.setSignature(html$.CacheStorage, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CacheStorage, [])}),
+  methods: () => ({
+    [dartx.delete]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.has]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.keys]: dart.definiteFunctionType(async.Future, []),
+    [dartx.match]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
+    [_match_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
+    [_match_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.open]: dart.definiteFunctionType(async.Future, [core.String])
+  })
+});
+dart.registerExtension(dart.global.CacheStorage, html$.CacheStorage);
+const _getContext_1 = Symbol('_getContext_1');
+const _getContext_2 = Symbol('_getContext_2');
+const _toDataUrl = Symbol('_toDataUrl');
+dart.defineExtensionNames([
+  'getContext',
+  'onWebGlContextLost',
+  'onWebGlContextRestored',
+  'context2D',
+  'getContext3d',
+  'toDataUrl',
+  'height',
+  'width'
+]);
+html$.CanvasElement = class CanvasElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(opts) {
+    let width = opts && 'width' in opts ? opts.width : null;
+    let height = opts && 'height' in opts ? opts.height : null;
+    let e = html$.CanvasElement._check(html$.document[dartx.createElement]("canvas"));
+    if (width != null) e[dartx.width] = width;
+    if (height != null) e[dartx.height] = height;
+    return e;
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.width] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  [dartx.getContext](contextId, attributes) {
+    if (attributes === void 0) attributes = null;
+    if (attributes != null) {
+      let attributes_1 = html_common.convertDartToNative_Dictionary(attributes);
+      return this[_getContext_1](contextId, attributes_1);
+    }
+    return this[_getContext_2](contextId);
+  }
+  [_getContext_1](...args) {
+    return this.getContext.apply(this, args);
+  }
+  [_getContext_2](...args) {
+    return this.getContext.apply(this, args);
+  }
+  [_toDataUrl](...args) {
+    return this.toDataURL.apply(this, args);
+  }
+  get [dartx.onWebGlContextLost]() {
+    return html$.CanvasElement.webGlContextLostEvent.forElement(this);
+  }
+  get [dartx.onWebGlContextRestored]() {
+    return html$.CanvasElement.webGlContextRestoredEvent.forElement(this);
+  }
+  get [dartx.context2D]() {
+    return this.getContext('2d');
+  }
+  [dartx.getContext3d](opts) {
+    let alpha = opts && 'alpha' in opts ? opts.alpha : true;
+    let depth = opts && 'depth' in opts ? opts.depth : true;
+    let stencil = opts && 'stencil' in opts ? opts.stencil : false;
+    let antialias = opts && 'antialias' in opts ? opts.antialias : true;
+    let premultipliedAlpha = opts && 'premultipliedAlpha' in opts ? opts.premultipliedAlpha : true;
+    let preserveDrawingBuffer = opts && 'preserveDrawingBuffer' in opts ? opts.preserveDrawingBuffer : false;
+    let options = dart.map({alpha: alpha, depth: depth, stencil: stencil, antialias: antialias, premultipliedAlpha: premultipliedAlpha, preserveDrawingBuffer: preserveDrawingBuffer}, core.String, dart.dynamic);
+    let context = this[dartx.getContext]('webgl', options);
+    if (context == null) {
+      context = this[dartx.getContext]('experimental-webgl', options);
+    }
+    return web_gl.RenderingContext._check(context);
+  }
+  [dartx.toDataUrl](type, quality) {
+    if (type === void 0) type = 'image/png';
+    if (quality === void 0) quality = null;
+    return this[_toDataUrl](type, quality);
+  }
+};
+dart.defineNamedConstructor(html$.CanvasElement, 'created');
+html$.CanvasElement[dart.implements] = () => [html$.CanvasImageSource];
+dart.setSignature(html$.CanvasElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.CanvasElement, []),
+    new: dart.definiteFunctionType(html$.CanvasElement, [], {width: core.int, height: core.int}),
+    created: dart.definiteFunctionType(html$.CanvasElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: core.int,
+    [dartx.width]: core.int
+  }),
+  getters: () => ({
+    [dartx.onWebGlContextLost]: dart.definiteFunctionType(html$.ElementStream$(web_gl.ContextEvent), []),
+    [dartx.onWebGlContextRestored]: dart.definiteFunctionType(html$.ElementStream$(web_gl.ContextEvent), []),
+    [dartx.context2D]: dart.definiteFunctionType(html$.CanvasRenderingContext2D, [])
+  }),
+  methods: () => ({
+    [dartx.getContext]: dart.definiteFunctionType(core.Object, [core.String], [core.Map]),
+    [_getContext_1]: dart.definiteFunctionType(core.Object, [dart.dynamic, dart.dynamic]),
+    [_getContext_2]: dart.definiteFunctionType(core.Object, [dart.dynamic]),
+    [_toDataUrl]: dart.definiteFunctionType(core.String, [core.String], [dart.dynamic]),
+    [dartx.getContext3d]: dart.definiteFunctionType(web_gl.RenderingContext, [], {alpha: dart.dynamic, depth: dart.dynamic, stencil: dart.dynamic, antialias: dart.dynamic, premultipliedAlpha: dart.dynamic, preserveDrawingBuffer: dart.dynamic}),
+    [dartx.toDataUrl]: dart.definiteFunctionType(core.String, [], [core.String, core.num])
+  }),
+  sfields: () => ({
+    webGlContextLostEvent: EventStreamProviderOfContextEvent(),
+    webGlContextRestoredEvent: EventStreamProviderOfContextEvent()
+  })
+});
+dart.defineLazy(html$.CanvasElement, {
+  get webGlContextLostEvent() {
+    return dart.const(new (EventStreamProviderOfContextEvent())('webglcontextlost'));
+  },
+  get webGlContextRestoredEvent() {
+    return dart.const(new (EventStreamProviderOfContextEvent())('webglcontextrestored'));
+  }
+});
+dart.registerExtension(dart.global.HTMLCanvasElement, html$.CanvasElement);
+dart.defineExtensionNames([
+  'addColorStop'
+]);
+html$.CanvasGradient = class CanvasGradient extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.addColorStop](...args) {
+    return this.addColorStop.apply(this, args);
+  }
+};
+dart.setSignature(html$.CanvasGradient, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CanvasGradient, [])}),
+  methods: () => ({[dartx.addColorStop]: dart.definiteFunctionType(dart.void, [core.num, core.String])})
+});
+dart.registerExtension(dart.global.CanvasGradient, html$.CanvasGradient);
+dart.defineExtensionNames([
+  'setTransform'
+]);
+html$.CanvasPattern = class CanvasPattern extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.setTransform](...args) {
+    return this.setTransform.apply(this, args);
+  }
+};
+dart.setSignature(html$.CanvasPattern, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CanvasPattern, [])}),
+  methods: () => ({[dartx.setTransform]: dart.definiteFunctionType(dart.void, [svg$.Matrix])})
+});
+dart.registerExtension(dart.global.CanvasPattern, html$.CanvasPattern);
+html$.CanvasRenderingContext = class CanvasRenderingContext extends core.Object {};
+const _addHitRegion_1 = Symbol('_addHitRegion_1');
+const _addHitRegion_2 = Symbol('_addHitRegion_2');
+const _createImageData_1 = Symbol('_createImageData_1');
+const _createImageData_2 = Symbol('_createImageData_2');
+const _getContextAttributes_1 = Symbol('_getContextAttributes_1');
+const _getImageData_1 = Symbol('_getImageData_1');
+const _getLineDash = Symbol('_getLineDash');
+const _putImageData_1 = Symbol('_putImageData_1');
+const _putImageData_2 = Symbol('_putImageData_2');
+const _arc = Symbol('_arc');
+dart.defineExtensionNames([
+  'addHitRegion',
+  'beginPath',
+  'clearHitRegions',
+  'clearRect',
+  'clip',
+  'createImageData',
+  'createLinearGradient',
+  'createPattern',
+  'createRadialGradient',
+  'drawFocusIfNeeded',
+  'fillRect',
+  'getContextAttributes',
+  'getImageData',
+  'isContextLost',
+  'isPointInPath',
+  'isPointInStroke',
+  'measureText',
+  'putImageData',
+  'removeHitRegion',
+  'resetTransform',
+  'restore',
+  'rotate',
+  'save',
+  'scale',
+  'scrollPathIntoView',
+  'setTransform',
+  'stroke',
+  'strokeRect',
+  'strokeText',
+  'transform',
+  'translate',
+  'arcTo',
+  'bezierCurveTo',
+  'closePath',
+  'ellipse',
+  'lineTo',
+  'moveTo',
+  'quadraticCurveTo',
+  'rect',
+  'createImageDataFromImageData',
+  'setFillColorRgb',
+  'setFillColorHsl',
+  'setStrokeColorRgb',
+  'setStrokeColorHsl',
+  'arc',
+  'createPatternFromImage',
+  'drawImageToRect',
+  'drawImage',
+  'drawImageScaled',
+  'drawImageScaledFromSource',
+  'lineDashOffset',
+  'lineDashOffset',
+  'getLineDash',
+  'setLineDash',
+  'fillText',
+  'fill',
+  'backingStorePixelRatio',
+  'canvas',
+  'currentTransform',
+  'direction',
+  'fillStyle',
+  'filter',
+  'font',
+  'globalAlpha',
+  'globalCompositeOperation',
+  'imageSmoothingEnabled',
+  'lineCap',
+  'lineJoin',
+  'lineWidth',
+  'miterLimit',
+  'shadowBlur',
+  'shadowColor',
+  'shadowOffsetX',
+  'shadowOffsetY',
+  'strokeStyle',
+  'textAlign',
+  'textBaseline'
+]);
+html$.CanvasRenderingContext2D = class CanvasRenderingContext2D extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.canvas]() {
+    return this.canvas;
+  }
+  get [dartx.currentTransform]() {
+    return this.currentTransform;
+  }
+  set [dartx.currentTransform](value) {
+    this.currentTransform = value;
+  }
+  get [dartx.direction]() {
+    return this.direction;
+  }
+  set [dartx.direction](value) {
+    this.direction = value;
+  }
+  get [dartx.fillStyle]() {
+    return this.fillStyle;
+  }
+  set [dartx.fillStyle](value) {
+    this.fillStyle = value;
+  }
+  get [dartx.filter]() {
+    return this.filter;
+  }
+  set [dartx.filter](value) {
+    this.filter = value;
+  }
+  get [dartx.font]() {
+    return this.font;
+  }
+  set [dartx.font](value) {
+    this.font = value;
+  }
+  get [dartx.globalAlpha]() {
+    return this.globalAlpha;
+  }
+  set [dartx.globalAlpha](value) {
+    this.globalAlpha = value;
+  }
+  get [dartx.globalCompositeOperation]() {
+    return this.globalCompositeOperation;
+  }
+  set [dartx.globalCompositeOperation](value) {
+    this.globalCompositeOperation = value;
+  }
+  get [dartx.imageSmoothingEnabled]() {
+    return this.imageSmoothingEnabled;
+  }
+  set [dartx.imageSmoothingEnabled](value) {
+    this.imageSmoothingEnabled = value;
+  }
+  get [dartx.lineCap]() {
+    return this.lineCap;
+  }
+  set [dartx.lineCap](value) {
+    this.lineCap = value;
+  }
+  get [dartx.lineJoin]() {
+    return this.lineJoin;
+  }
+  set [dartx.lineJoin](value) {
+    this.lineJoin = value;
+  }
+  get [dartx.lineWidth]() {
+    return this.lineWidth;
+  }
+  set [dartx.lineWidth](value) {
+    this.lineWidth = value;
+  }
+  get [dartx.miterLimit]() {
+    return this.miterLimit;
+  }
+  set [dartx.miterLimit](value) {
+    this.miterLimit = value;
+  }
+  get [dartx.shadowBlur]() {
+    return this.shadowBlur;
+  }
+  set [dartx.shadowBlur](value) {
+    this.shadowBlur = value;
+  }
+  get [dartx.shadowColor]() {
+    return this.shadowColor;
+  }
+  set [dartx.shadowColor](value) {
+    this.shadowColor = value;
+  }
+  get [dartx.shadowOffsetX]() {
+    return this.shadowOffsetX;
+  }
+  set [dartx.shadowOffsetX](value) {
+    this.shadowOffsetX = value;
+  }
+  get [dartx.shadowOffsetY]() {
+    return this.shadowOffsetY;
+  }
+  set [dartx.shadowOffsetY](value) {
+    this.shadowOffsetY = value;
+  }
+  get [dartx.strokeStyle]() {
+    return this.strokeStyle;
+  }
+  set [dartx.strokeStyle](value) {
+    this.strokeStyle = value;
+  }
+  get [dartx.textAlign]() {
+    return this.textAlign;
+  }
+  set [dartx.textAlign](value) {
+    this.textAlign = value;
+  }
+  get [dartx.textBaseline]() {
+    return this.textBaseline;
+  }
+  set [dartx.textBaseline](value) {
+    this.textBaseline = value;
+  }
+  [dartx.addHitRegion](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[_addHitRegion_1](options_1);
+      return;
+    }
+    this[_addHitRegion_2]();
+    return;
+  }
+  [_addHitRegion_1](...args) {
+    return this.addHitRegion.apply(this, args);
+  }
+  [_addHitRegion_2](...args) {
+    return this.addHitRegion.apply(this, args);
+  }
+  [dartx.beginPath](...args) {
+    return this.beginPath.apply(this, args);
+  }
+  [dartx.clearHitRegions](...args) {
+    return this.clearHitRegions.apply(this, args);
+  }
+  [dartx.clearRect](...args) {
+    return this.clearRect.apply(this, args);
+  }
+  [dartx.clip](...args) {
+    return this.clip.apply(this, args);
+  }
+  [dartx.createImageData](imagedata_OR_sw, sh) {
+    if (sh === void 0) sh = null;
+    if (html$.ImageData.is(imagedata_OR_sw) && sh == null) {
+      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata_OR_sw);
+      return html_common.convertNativeToDart_ImageData(this[_createImageData_1](imagedata_1));
+    }
+    if (sh != null && typeof imagedata_OR_sw == 'number') {
+      return html_common.convertNativeToDart_ImageData(this[_createImageData_2](imagedata_OR_sw, sh));
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_createImageData_1](...args) {
+    return this.createImageData.apply(this, args);
+  }
+  [_createImageData_2](...args) {
+    return this.createImageData.apply(this, args);
+  }
+  [dartx.createLinearGradient](...args) {
+    return this.createLinearGradient.apply(this, args);
+  }
+  [dartx.createPattern](...args) {
+    return this.createPattern.apply(this, args);
+  }
+  [dartx.createRadialGradient](...args) {
+    return this.createRadialGradient.apply(this, args);
+  }
+  [dartx.drawFocusIfNeeded](...args) {
+    return this.drawFocusIfNeeded.apply(this, args);
+  }
+  [dartx.fillRect](...args) {
+    return this.fillRect.apply(this, args);
+  }
+  [dartx.getContextAttributes]() {
+    return html_common.convertNativeToDart_Dictionary(this[_getContextAttributes_1]());
+  }
+  [_getContextAttributes_1](...args) {
+    return this.getContextAttributes.apply(this, args);
+  }
+  [dartx.getImageData](sx, sy, sw, sh) {
+    return html_common.convertNativeToDart_ImageData(this[_getImageData_1](sx, sy, sw, sh));
+  }
+  [_getImageData_1](...args) {
+    return this.getImageData.apply(this, args);
+  }
+  [_getLineDash](...args) {
+    return this.getLineDash.apply(this, args);
+  }
+  [dartx.isContextLost](...args) {
+    return this.isContextLost.apply(this, args);
+  }
+  [dartx.isPointInPath](...args) {
+    return this.isPointInPath.apply(this, args);
+  }
+  [dartx.isPointInStroke](...args) {
+    return this.isPointInStroke.apply(this, args);
+  }
+  [dartx.measureText](...args) {
+    return this.measureText.apply(this, args);
+  }
+  [dartx.putImageData](imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) {
+    if (dirtyX === void 0) dirtyX = null;
+    if (dirtyY === void 0) dirtyY = null;
+    if (dirtyWidth === void 0) dirtyWidth = null;
+    if (dirtyHeight === void 0) dirtyHeight = null;
+    if (dirtyX == null && dirtyY == null && dirtyWidth == null && dirtyHeight == null) {
+      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
+      this[_putImageData_1](imagedata_1, dx, dy);
+      return;
+    }
+    if (dirtyHeight != null && dirtyWidth != null && dirtyY != null && dirtyX != null) {
+      let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata);
+      this[_putImageData_2](imagedata_1, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_putImageData_1](...args) {
+    return this.putImageData.apply(this, args);
+  }
+  [_putImageData_2](...args) {
+    return this.putImageData.apply(this, args);
+  }
+  [dartx.removeHitRegion](...args) {
+    return this.removeHitRegion.apply(this, args);
+  }
+  [dartx.resetTransform](...args) {
+    return this.resetTransform.apply(this, args);
+  }
+  [dartx.restore](...args) {
+    return this.restore.apply(this, args);
+  }
+  [dartx.rotate](...args) {
+    return this.rotate.apply(this, args);
+  }
+  [dartx.save](...args) {
+    return this.save.apply(this, args);
+  }
+  [dartx.scale](...args) {
+    return this.scale.apply(this, args);
+  }
+  [dartx.scrollPathIntoView](...args) {
+    return this.scrollPathIntoView.apply(this, args);
+  }
+  [dartx.setTransform](...args) {
+    return this.setTransform.apply(this, args);
+  }
+  [dartx.stroke](...args) {
+    return this.stroke.apply(this, args);
+  }
+  [dartx.strokeRect](...args) {
+    return this.strokeRect.apply(this, args);
+  }
+  [dartx.strokeText](...args) {
+    return this.strokeText.apply(this, args);
+  }
+  [dartx.transform](...args) {
+    return this.transform.apply(this, args);
+  }
+  [dartx.translate](...args) {
+    return this.translate.apply(this, args);
+  }
+  [_arc](...args) {
+    return this.arc.apply(this, args);
+  }
+  [dartx.arcTo](...args) {
+    return this.arcTo.apply(this, args);
+  }
+  [dartx.bezierCurveTo](...args) {
+    return this.bezierCurveTo.apply(this, args);
+  }
+  [dartx.closePath](...args) {
+    return this.closePath.apply(this, args);
+  }
+  [dartx.ellipse](...args) {
+    return this.ellipse.apply(this, args);
+  }
+  [dartx.lineTo](...args) {
+    return this.lineTo.apply(this, args);
+  }
+  [dartx.moveTo](...args) {
+    return this.moveTo.apply(this, args);
+  }
+  [dartx.quadraticCurveTo](...args) {
+    return this.quadraticCurveTo.apply(this, args);
+  }
+  [dartx.rect](...args) {
+    return this.rect.apply(this, args);
+  }
+  [dartx.createImageDataFromImageData](imagedata) {
+    return this.createImageData(imagedata);
+  }
+  [dartx.setFillColorRgb](r, g, b, a) {
+    if (a === void 0) a = 1;
+    this[dartx.fillStyle] = dart.str`rgba(${r}, ${g}, ${b}, ${a})`;
+  }
+  [dartx.setFillColorHsl](h, s, l, a) {
+    if (a === void 0) a = 1;
+    this[dartx.fillStyle] = dart.str`hsla(${h}, ${s}%, ${l}%, ${a})`;
+  }
+  [dartx.setStrokeColorRgb](r, g, b, a) {
+    if (a === void 0) a = 1;
+    this[dartx.strokeStyle] = dart.str`rgba(${r}, ${g}, ${b}, ${a})`;
+  }
+  [dartx.setStrokeColorHsl](h, s, l, a) {
+    if (a === void 0) a = 1;
+    this[dartx.strokeStyle] = dart.str`hsla(${h}, ${s}%, ${l}%, ${a})`;
+  }
+  [dartx.arc](x, y, radius, startAngle, endAngle, anticlockwise) {
+    if (anticlockwise === void 0) anticlockwise = false;
+    this.arc(x, y, radius, startAngle, endAngle, anticlockwise);
+  }
+  [dartx.createPatternFromImage](image, repetitionType) {
+    return this.createPattern(image, repetitionType);
+  }
+  [dartx.drawImageToRect](source, destRect, opts) {
+    let sourceRect = opts && 'sourceRect' in opts ? opts.sourceRect : null;
+    if (sourceRect == null) {
+      this[dartx.drawImageScaled](source, destRect[dartx.left], destRect[dartx.top], destRect[dartx.width], destRect[dartx.height]);
+    } else {
+      this[dartx.drawImageScaledFromSource](source, sourceRect[dartx.left], sourceRect[dartx.top], sourceRect[dartx.width], sourceRect[dartx.height], destRect[dartx.left], destRect[dartx.top], destRect[dartx.width], destRect[dartx.height]);
+    }
+  }
+  [dartx.drawImage](...args) {
+    return this.drawImage.apply(this, args);
+  }
+  [dartx.drawImageScaled](...args) {
+    return this.drawImage.apply(this, args);
+  }
+  [dartx.drawImageScaledFromSource](...args) {
+    return this.drawImage.apply(this, args);
+  }
+  get [dartx.lineDashOffset]() {
+    return this.lineDashOffset || this.webkitLineDashOffset;
+  }
+  set [dartx.lineDashOffset](value) {
+    typeof this.lineDashOffset != "undefined" ? this.lineDashOffset = value : this.webkitLineDashOffset = value;
+  }
+  [dartx.getLineDash]() {
+    if (!!this.getLineDash) {
+      return this.getLineDash();
+    } else if (!!this.webkitLineDash) {
+      return this.webkitLineDash;
+    }
+  }
+  [dartx.setLineDash](dash) {
+    if (!!this.setLineDash) {
+      this.setLineDash(dash);
+    } else if (!!this.webkitLineDash) {
+      this.webkitLineDash = dash;
+    }
+  }
+  [dartx.fillText](text, x, y, maxWidth) {
+    if (maxWidth === void 0) maxWidth = null;
+    if (maxWidth != null) {
+      this.fillText(text, x, y, maxWidth);
+    } else {
+      this.fillText(text, x, y);
+    }
+  }
+  [dartx.fill](winding) {
+    if (winding === void 0) winding = 'nonzero';
+    this.fill(winding);
+  }
+  get [dartx.backingStorePixelRatio]() {
+    return 1.0;
+  }
+};
+html$.CanvasRenderingContext2D[dart.implements] = () => [html$.CanvasRenderingContext];
+dart.setSignature(html$.CanvasRenderingContext2D, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CanvasRenderingContext2D, [])}),
+  fields: () => ({
+    [dartx.canvas]: html$.CanvasElement,
+    [dartx.currentTransform]: svg$.Matrix,
+    [dartx.direction]: core.String,
+    [dartx.fillStyle]: core.Object,
+    [dartx.filter]: core.String,
+    [dartx.font]: core.String,
+    [dartx.globalAlpha]: core.num,
+    [dartx.globalCompositeOperation]: core.String,
+    [dartx.imageSmoothingEnabled]: core.bool,
+    [dartx.lineCap]: core.String,
+    [dartx.lineJoin]: core.String,
+    [dartx.lineWidth]: core.num,
+    [dartx.miterLimit]: core.num,
+    [dartx.shadowBlur]: core.num,
+    [dartx.shadowColor]: core.String,
+    [dartx.shadowOffsetX]: core.num,
+    [dartx.shadowOffsetY]: core.num,
+    [dartx.strokeStyle]: core.Object,
+    [dartx.textAlign]: core.String,
+    [dartx.textBaseline]: core.String
+  }),
+  getters: () => ({
+    [dartx.lineDashOffset]: dart.definiteFunctionType(core.num, []),
+    [dartx.backingStorePixelRatio]: dart.definiteFunctionType(core.double, [])
+  }),
+  setters: () => ({[dartx.lineDashOffset]: dart.definiteFunctionType(dart.void, [core.num])}),
+  methods: () => ({
+    [dartx.addHitRegion]: dart.definiteFunctionType(dart.void, [], [core.Map]),
+    [_addHitRegion_1]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_addHitRegion_2]: dart.definiteFunctionType(dart.void, []),
+    [dartx.beginPath]: dart.definiteFunctionType(dart.void, []),
+    [dartx.clearHitRegions]: dart.definiteFunctionType(dart.void, []),
+    [dartx.clearRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.clip]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.String]),
+    [dartx.createImageData]: dart.definiteFunctionType(html$.ImageData, [dart.dynamic], [core.num]),
+    [_createImageData_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    [_createImageData_2]: dart.definiteFunctionType(dart.dynamic, [core.num, dart.dynamic]),
+    [dartx.createLinearGradient]: dart.definiteFunctionType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
+    [dartx.createPattern]: dart.definiteFunctionType(html$.CanvasPattern, [core.Object, core.String]),
+    [dartx.createRadialGradient]: dart.definiteFunctionType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.drawFocusIfNeeded]: dart.definiteFunctionType(dart.void, [dart.dynamic], [html$.Element]),
+    [dartx.fillRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.getContextAttributes]: dart.definiteFunctionType(core.Map, []),
+    [_getContextAttributes_1]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.getImageData]: dart.definiteFunctionType(html$.ImageData, [core.num, core.num, core.num, core.num]),
+    [_getImageData_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_getLineDash]: dart.definiteFunctionType(core.List$(core.num), []),
+    [dartx.isContextLost]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isPointInPath]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.num], [dart.dynamic, core.String]),
+    [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.num], [core.num]),
+    [dartx.measureText]: dart.definiteFunctionType(html$.TextMetrics, [core.String]),
+    [dartx.putImageData]: dart.definiteFunctionType(dart.void, [html$.ImageData, core.num, core.num], [core.num, core.num, core.num, core.num]),
+    [_putImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_putImageData_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [dartx.removeHitRegion]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.resetTransform]: dart.definiteFunctionType(dart.void, []),
+    [dartx.restore]: dart.definiteFunctionType(dart.void, []),
+    [dartx.rotate]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.save]: dart.definiteFunctionType(dart.void, []),
+    [dartx.scale]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.scrollPathIntoView]: dart.definiteFunctionType(dart.void, [], [html$.Path2D]),
+    [dartx.setTransform]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.stroke]: dart.definiteFunctionType(dart.void, [], [html$.Path2D]),
+    [dartx.strokeRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.strokeText]: dart.definiteFunctionType(dart.void, [core.String, core.num, core.num], [core.num]),
+    [dartx.transform]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.translate]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [_arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
+    [dartx.arcTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
+    [dartx.bezierCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.closePath]: dart.definiteFunctionType(dart.void, []),
+    [dartx.ellipse]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
+    [dartx.lineTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.moveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.quadraticCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.rect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.createImageDataFromImageData]: dart.definiteFunctionType(html$.ImageData, [html$.ImageData]),
+    [dartx.setFillColorRgb]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.num]),
+    [dartx.setFillColorHsl]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num], [core.num]),
+    [dartx.setStrokeColorRgb]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.num]),
+    [dartx.setStrokeColorHsl]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num], [core.num]),
+    [dartx.arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num], [core.bool]),
+    [dartx.createPatternFromImage]: dart.definiteFunctionType(html$.CanvasPattern, [html$.ImageElement, core.String]),
+    [dartx.drawImageToRect]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, RectangleOfnum()], {sourceRect: RectangleOfnum()}),
+    [dartx.drawImage]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num]),
+    [dartx.drawImageScaled]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num]),
+    [dartx.drawImageScaledFromSource]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.getLineDash]: dart.definiteFunctionType(core.List$(core.num), []),
+    [dartx.setLineDash]: dart.definiteFunctionType(dart.void, [ListOfnum()]),
+    [dartx.fillText]: dart.definiteFunctionType(dart.void, [core.String, core.num, core.num], [core.num]),
+    [dartx.fill]: dart.definiteFunctionType(dart.void, [], [core.String])
+  })
+});
+dart.registerExtension(dart.global.CanvasRenderingContext2D, html$.CanvasRenderingContext2D);
+html$.ChildNode = class ChildNode extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.ChildNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ChildNode, [])})
+});
+html$.ChromiumValuebuffer = class ChromiumValuebuffer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.ChromiumValuebuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ChromiumValuebuffer, [])})
+});
+dart.registerExtension(dart.global.CHROMIUMValuebuffer, html$.ChromiumValuebuffer);
+dart.defineExtensionNames([
+  'id'
+]);
+html$.GeofencingRegion = class GeofencingRegion extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+};
+dart.setSignature(html$.GeofencingRegion, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GeofencingRegion, [])}),
+  fields: () => ({[dartx.id]: core.String})
+});
+dart.registerExtension(dart.global.GeofencingRegion, html$.GeofencingRegion);
+dart.defineExtensionNames([
+  'latitude',
+  'longitude',
+  'radius'
+]);
+html$.CircularGeofencingRegion = class CircularGeofencingRegion extends html$.GeofencingRegion {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(init) {
+    let init_1 = html_common.convertDartToNative_Dictionary(init);
+    return html$.CircularGeofencingRegion._create_1(init_1);
+  }
+  static _create_1(init) {
+    return new self.CircularGeofencingRegion(init);
+  }
+  get [dartx.latitude]() {
+    return this.latitude;
+  }
+  get [dartx.longitude]() {
+    return this.longitude;
+  }
+  get [dartx.radius]() {
+    return this.radius;
+  }
+};
+dart.setSignature(html$.CircularGeofencingRegion, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.CircularGeofencingRegion, []),
+    new: dart.definiteFunctionType(html$.CircularGeofencingRegion, [core.Map])
+  }),
+  fields: () => ({
+    [dartx.latitude]: core.double,
+    [dartx.longitude]: core.double,
+    [dartx.radius]: core.double
+  }),
+  sfields: () => ({
+    MAX_RADIUS: core.num,
+    MIN_RADIUS: core.num
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.CircularGeofencingRegion, [dart.dynamic])}),
+  names: ['_create_1']
+});
+html$.CircularGeofencingRegion.MAX_RADIUS = 100.0;
+html$.CircularGeofencingRegion.MIN_RADIUS = 1.0;
+dart.registerExtension(dart.global.CircularGeofencingRegion, html$.CircularGeofencingRegion);
+const _postMessage_1 = Symbol('_postMessage_1');
+const _postMessage_2 = Symbol('_postMessage_2');
+dart.defineExtensionNames([
+  'postMessage',
+  'frameType',
+  'id',
+  'url'
+]);
+html$.Client = class Client extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.frameType]() {
+    return this.frameType;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+};
+dart.setSignature(html$.Client, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Client, [])}),
+  fields: () => ({
+    [dartx.frameType]: core.String,
+    [dartx.id]: core.String,
+    [dartx.url]: core.String
+  }),
+  methods: () => ({
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.Client, html$.Client);
+const _matchAll_1 = Symbol('_matchAll_1');
+const _matchAll_2 = Symbol('_matchAll_2');
+dart.defineExtensionNames([
+  'claim',
+  'matchAll',
+  'openWindow'
+]);
+html$.Clients = class Clients extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.claim](...args) {
+    return this.claim.apply(this, args);
+  }
+  [dartx.matchAll](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_matchAll_1](options_1);
+    }
+    return this[_matchAll_2]();
+  }
+  [_matchAll_1](...args) {
+    return this.matchAll.apply(this, args);
+  }
+  [_matchAll_2](...args) {
+    return this.matchAll.apply(this, args);
+  }
+  [dartx.openWindow](...args) {
+    return this.openWindow.apply(this, args);
+  }
+};
+dart.setSignature(html$.Clients, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Clients, [])}),
+  methods: () => ({
+    [dartx.claim]: dart.definiteFunctionType(async.Future, []),
+    [dartx.matchAll]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_matchAll_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_matchAll_2]: dart.definiteFunctionType(async.Future, []),
+    [dartx.openWindow]: dart.definiteFunctionType(async.Future, [core.String])
+  })
+});
+dart.registerExtension(dart.global.Clients, html$.Clients);
+dart.defineExtensionNames([
+  'clipboardData'
+]);
+html$.ClipboardEvent = class ClipboardEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.clipboardData]() {
+    return this.clipboardData;
+  }
+};
+dart.setSignature(html$.ClipboardEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ClipboardEvent, [])}),
+  fields: () => ({[dartx.clipboardData]: html$.DataTransfer})
+});
+dart.registerExtension(dart.global.ClipboardEvent, html$.ClipboardEvent);
+dart.defineExtensionNames([
+  'code',
+  'reason',
+  'wasClean'
+]);
+html$.CloseEvent = class CloseEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.CloseEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.CloseEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.CloseEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.CloseEvent(type);
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+  get [dartx.reason]() {
+    return this.reason;
+  }
+  get [dartx.wasClean]() {
+    return this.wasClean;
+  }
+};
+dart.setSignature(html$.CloseEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.CloseEvent, []),
+    new: dart.definiteFunctionType(html$.CloseEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.code]: core.int,
+    [dartx.reason]: core.String,
+    [dartx.wasClean]: core.bool
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.CloseEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.CloseEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.CloseEvent, html$.CloseEvent);
+html$.Comment = class Comment extends html$.CharacterData {
+  static new(data) {
+    if (data === void 0) data = null;
+    if (data != null) {
+      return html$.document.createComment(data);
+    }
+    return html$.document.createComment("");
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.Comment, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.Comment, [], [core.String]),
+    _: dart.definiteFunctionType(html$.Comment, [])
+  })
+});
+dart.registerExtension(dart.global.Comment, html$.Comment);
+const _initCompositionEvent = Symbol('_initCompositionEvent');
+const _initUIEvent = Symbol('_initUIEvent');
+const _charCode = Symbol('_charCode');
+const _keyCode = Symbol('_keyCode');
+const _get_view = Symbol('_get_view');
+const _which = Symbol('_which');
+dart.defineExtensionNames([
+  'view',
+  'detail',
+  'sourceDevice'
+]);
+html$.UIEvent = class UIEvent extends html$.Event {
+  static new(type, opts) {
+    let view = opts && 'view' in opts ? opts.view : null;
+    let detail = opts && 'detail' in opts ? opts.detail : 0;
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    if (view == null) {
+      view = html$.window;
+    }
+    let e = html$.UIEvent._check(html$.document[_createEvent]("UIEvent"));
+    e[_initUIEvent](type, canBubble, cancelable, view, detail);
+    return e;
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.UIEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.UIEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.UIEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.UIEvent(type);
+  }
+  get [_charCode]() {
+    return this.charCode;
+  }
+  get [dartx.detail]() {
+    return this.detail;
+  }
+  get [_keyCode]() {
+    return this.keyCode;
+  }
+  get [dartx.sourceDevice]() {
+    return this.sourceDevice;
+  }
+  get [dartx.view]() {
+    return html$._convertNativeToDart_Window(this[_get_view]);
+  }
+  get [_get_view]() {
+    return this.view;
+  }
+  get [_which]() {
+    return this.which;
+  }
+  [_initUIEvent](...args) {
+    return this.initUIEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.UIEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.UIEvent, [core.String], {view: html$.Window, detail: core.int, canBubble: core.bool, cancelable: core.bool}),
+    _: dart.definiteFunctionType(html$.UIEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [_charCode]: core.int,
+    [dartx.detail]: core.int,
+    [_keyCode]: core.int,
+    [dartx.sourceDevice]: html$.InputDevice,
+    [_get_view]: dart.dynamic,
+    [_which]: core.int
+  }),
+  getters: () => ({[dartx.view]: dart.definiteFunctionType(html$.WindowBase, [])}),
+  methods: () => ({[_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.UIEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.UIEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.UIEvent, html$.UIEvent);
+dart.defineExtensionNames([
+  'data'
+]);
+html$.CompositionEvent = class CompositionEvent extends html$.UIEvent {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
+    let view = opts && 'view' in opts ? opts.view : null;
+    let data = opts && 'data' in opts ? opts.data : null;
+    let locale = opts && 'locale' in opts ? opts.locale : null;
+    if (view == null) {
+      view = html$.window;
+    }
+    let e = html$.CompositionEvent._check(html$.document[_createEvent]("CompositionEvent"));
+    if (dart.test(html_common.Device.isFirefox)) {
+      e.initCompositionEvent(type, canBubble, cancelable, view, data, locale);
+    } else {
+      e[_initCompositionEvent](type, canBubble, cancelable, view, data);
+    }
+    return e;
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.CompositionEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.CompositionEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.CompositionEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.CompositionEvent(type);
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  [_initCompositionEvent](...args) {
+    return this.initCompositionEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.CompositionEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.CompositionEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html$.Window, data: core.String, locale: core.String}),
+    _: dart.definiteFunctionType(html$.CompositionEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.data]: core.String}),
+  methods: () => ({[_initCompositionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.CompositionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.CompositionEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.CompositionEvent, html$.CompositionEvent);
+dart.defineExtensionNames([
+  'disconnect',
+  'supports',
+  'opacity',
+  'scrollLeft',
+  'scrollTop',
+  'transform'
+]);
+html$.CompositorProxy = class CompositorProxy extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(element, attributeArray) {
+    return html$.CompositorProxy._create_1(element, attributeArray);
+  }
+  static _create_1(element, attributeArray) {
+    return new self.CompositorProxy(element, attributeArray);
+  }
+  get [dartx.opacity]() {
+    return this.opacity;
+  }
+  set [dartx.opacity](value) {
+    this.opacity = value;
+  }
+  get [dartx.scrollLeft]() {
+    return this.scrollLeft;
+  }
+  set [dartx.scrollLeft](value) {
+    this.scrollLeft = value;
+  }
+  get [dartx.scrollTop]() {
+    return this.scrollTop;
+  }
+  set [dartx.scrollTop](value) {
+    this.scrollTop = value;
+  }
+  get [dartx.transform]() {
+    return this.transform;
+  }
+  set [dartx.transform](value) {
+    this.transform = value;
+  }
+  [dartx.disconnect](...args) {
+    return this.disconnect.apply(this, args);
+  }
+  [dartx.supports](...args) {
+    return this.supports.apply(this, args);
+  }
+};
+dart.setSignature(html$.CompositorProxy, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.CompositorProxy, []),
+    new: dart.definiteFunctionType(html$.CompositorProxy, [html$.Element, ListOfString()])
+  }),
+  fields: () => ({
+    [dartx.opacity]: core.num,
+    [dartx.scrollLeft]: core.num,
+    [dartx.scrollTop]: core.num,
+    [dartx.transform]: html$.DomMatrix
+  }),
+  methods: () => ({
+    [dartx.disconnect]: dart.definiteFunctionType(dart.void, []),
+    [dartx.supports]: dart.definiteFunctionType(core.bool, [core.String])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.CompositorProxy, [dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.CompositorProxy, html$.CompositorProxy);
+dart.defineExtensionNames([
+  'postMessage',
+  'terminate',
+  'onError',
+  'onMessage'
+]);
+html$.CompositorWorker = class CompositorWorker extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(scriptUrl) {
+    return html$.CompositorWorker._create_1(scriptUrl);
+  }
+  static _create_1(scriptUrl) {
+    return new self.CompositorWorker(scriptUrl);
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [dartx.terminate](...args) {
+    return this.terminate.apply(this, args);
+  }
+  get [dartx.onError]() {
+    return html$.CompositorWorker.errorEvent.forTarget(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.CompositorWorker.messageEvent.forTarget(this);
+  }
+};
+html$.CompositorWorker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$.CompositorWorker, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.CompositorWorker, []),
+    new: dart.definiteFunctionType(html$.CompositorWorker, [core.String])
+  }),
+  getters: () => ({
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])
+  }),
+  methods: () => ({
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.terminate]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    errorEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent()
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.CompositorWorker, [dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.defineLazy(html$.CompositorWorker, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.CompositorWorker, html$.CompositorWorker);
+const _fetch_1 = Symbol('_fetch_1');
+const _fetch_2 = Symbol('_fetch_2');
+const _webkitRequestFileSystem = Symbol('_webkitRequestFileSystem');
+const _webkitResolveLocalFileSystemUrl = Symbol('_webkitResolveLocalFileSystemUrl');
+const _setInterval_String = Symbol('_setInterval_String');
+const _setTimeout_String = Symbol('_setTimeout_String');
+const _clearInterval = Symbol('_clearInterval');
+const _clearTimeout = Symbol('_clearTimeout');
+const _setInterval = Symbol('_setInterval');
+const _setTimeout = Symbol('_setTimeout');
+dart.defineExtensionNames([
+  'close',
+  'fetch',
+  'importScripts',
+  'webkitRequestFileSystem',
+  'requestFileSystemSync',
+  'resolveLocalFileSystemSyncUrl',
+  'webkitResolveLocalFileSystemUrl',
+  'atob',
+  'btoa',
+  'onError',
+  'caches',
+  'console',
+  'crypto',
+  'indexedDB',
+  'location',
+  'navigator',
+  'performance',
+  'self'
+]);
+html$.WorkerGlobalScope = class WorkerGlobalScope extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.caches]() {
+    return this.caches;
+  }
+  get [dartx.console]() {
+    return this.console;
+  }
+  get [dartx.crypto]() {
+    return this.crypto;
+  }
+  get [dartx.indexedDB]() {
+    return this.indexedDB;
+  }
+  get [dartx.location]() {
+    return this.location;
+  }
+  get [dartx.navigator]() {
+    return this.navigator;
+  }
+  get [dartx.performance]() {
+    return this.performance;
+  }
+  get [dartx.self]() {
+    return this.self;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.fetch](input, init) {
+    if (init === void 0) init = null;
+    if (init != null) {
+      let init_1 = html_common.convertDartToNative_Dictionary(init);
+      return this[_fetch_1](input, init_1);
+    }
+    return this[_fetch_2](input);
+  }
+  [_fetch_1](...args) {
+    return this.fetch.apply(this, args);
+  }
+  [_fetch_2](...args) {
+    return this.fetch.apply(this, args);
+  }
+  [dartx.importScripts](...args) {
+    return this.importScripts.apply(this, args);
+  }
+  [_webkitRequestFileSystem](...args) {
+    return this.webkitRequestFileSystem.apply(this, args);
+  }
+  [dartx.webkitRequestFileSystem](type, size) {
+    let completer = CompleterOfFileSystem().new();
+    this[_webkitRequestFileSystem](type, size, dart.fn(value => {
+      completer.complete(value);
+    }, FileSystemToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [dartx.requestFileSystemSync](...args) {
+    return this.webkitRequestFileSystemSync.apply(this, args);
+  }
+  [dartx.resolveLocalFileSystemSyncUrl](...args) {
+    return this.webkitResolveLocalFileSystemSyncURL.apply(this, args);
+  }
+  [_webkitResolveLocalFileSystemUrl](...args) {
+    return this.webkitResolveLocalFileSystemURL.apply(this, args);
+  }
+  [dartx.webkitResolveLocalFileSystemUrl](url) {
+    let completer = CompleterOfEntry().new();
+    this[_webkitResolveLocalFileSystemUrl](url, dart.fn(value => {
+      completer.complete(value);
+    }, EntryToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [dartx.atob](...args) {
+    return this.atob.apply(this, args);
+  }
+  [dartx.btoa](...args) {
+    return this.btoa.apply(this, args);
+  }
+  [_setInterval_String](...args) {
+    return this.setInterval.apply(this, args);
+  }
+  [_setTimeout_String](...args) {
+    return this.setTimeout.apply(this, args);
+  }
+  [_clearInterval](...args) {
+    return this.clearInterval.apply(this, args);
+  }
+  [_clearTimeout](...args) {
+    return this.clearTimeout.apply(this, args);
+  }
+  [_setInterval](...args) {
+    return this.setInterval.apply(this, args);
+  }
+  [_setTimeout](...args) {
+    return this.setTimeout.apply(this, args);
+  }
+  get [dartx.onError]() {
+    return html$.WorkerGlobalScope.errorEvent.forTarget(this);
+  }
+};
+html$.WorkerGlobalScope[dart.implements] = () => [html$._WindowTimers, html$.WindowBase64];
+dart.setSignature(html$.WorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WorkerGlobalScope, [])}),
+  fields: () => ({
+    [dartx.caches]: html$.CacheStorage,
+    [dartx.console]: html$.WorkerConsole,
+    [dartx.crypto]: html$.Crypto,
+    [dartx.indexedDB]: indexed_db.IdbFactory,
+    [dartx.location]: html$._WorkerLocation,
+    [dartx.navigator]: html$._WorkerNavigator,
+    [dartx.performance]: html$.WorkerPerformance,
+    [dartx.self]: html$.WorkerGlobalScope
+  }),
+  getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.fetch]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
+    [_fetch_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
+    [_fetch_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.importScripts]: dart.definiteFunctionType(dart.void, [core.String]),
+    [_webkitRequestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html$._FileSystemCallback, html$._ErrorCallback]),
+    [dartx.webkitRequestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int, core.int]),
+    [dartx.requestFileSystemSync]: dart.definiteFunctionType(html$._DOMFileSystemSync, [core.int, core.int]),
+    [dartx.resolveLocalFileSystemSyncUrl]: dart.definiteFunctionType(html$._EntrySync, [core.String]),
+    [_webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html$._EntryCallback], [html$._ErrorCallback]),
+    [dartx.webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
+    [dartx.atob]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.btoa]: dart.definiteFunctionType(core.String, [core.String]),
+    [_setInterval_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
+    [_setTimeout_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
+    [_clearInterval]: dart.definiteFunctionType(dart.void, [], [core.int]),
+    [_clearTimeout]: dart.definiteFunctionType(dart.void, [], [core.int]),
+    [_setInterval]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+    [_setTimeout]: dart.definiteFunctionType(core.int, [core.Object], [core.int])
+  }),
+  sfields: () => ({
+    errorEvent: EventStreamProviderOfEvent(),
+    PERSISTENT: core.int,
+    TEMPORARY: core.int
+  })
+});
+html$.WorkerGlobalScope.PERSISTENT = 1;
+html$.WorkerGlobalScope.TEMPORARY = 0;
+dart.defineLazy(html$.WorkerGlobalScope, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  }
+});
+dart.registerExtension(dart.global.WorkerGlobalScope, html$.WorkerGlobalScope);
+dart.defineExtensionNames([
+  'cancelAnimationFrame',
+  'postMessage',
+  'requestAnimationFrame',
+  'onMessage'
+]);
+html$.CompositorWorkerGlobalScope = class CompositorWorkerGlobalScope extends html$.WorkerGlobalScope {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.cancelAnimationFrame](...args) {
+    return this.cancelAnimationFrame.apply(this, args);
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [dartx.requestAnimationFrame](...args) {
+    return this.requestAnimationFrame.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.CompositorWorkerGlobalScope.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.CompositorWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CompositorWorkerGlobalScope, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({
+    [dartx.cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback])
+  }),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.CompositorWorkerGlobalScope, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.CompositorWorkerGlobalScope, html$.CompositorWorkerGlobalScope);
+const _isConsoleDefined = Symbol('_isConsoleDefined');
+html$.Console = class Console extends core.Object {
+  _safe() {
+  }
+  get [_isConsoleDefined]() {
+    return typeof console != "undefined";
+  }
+  get memory() {
+    return html$.MemoryInfo._check(dart.test(this[_isConsoleDefined]) ? console.memory : null);
+  }
+  assertCondition(condition, arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.assertCondition(condition, arg) : null;
+  }
+  clear(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.clear(arg) : null;
+  }
+  count(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.count(arg) : null;
+  }
+  debug(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.debug(arg) : null;
+  }
+  dir(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.dir(arg) : null;
+  }
+  dirxml(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.dirxml(arg) : null;
+  }
+  error(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.error(arg) : null;
+  }
+  group(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.group(arg) : null;
+  }
+  groupCollapsed(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.groupCollapsed(arg) : null;
+  }
+  groupEnd() {
+    return dart.test(this[_isConsoleDefined]) ? console.groupEnd() : null;
+  }
+  info(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.info(arg) : null;
+  }
+  log(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.log(arg) : null;
+  }
+  markTimeline(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.markTimeline(arg) : null;
+  }
+  profile(title) {
+    return dart.test(this[_isConsoleDefined]) ? console.profile(title) : null;
+  }
+  profileEnd(title) {
+    return dart.test(this[_isConsoleDefined]) ? console.profileEnd(title) : null;
+  }
+  table(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.table(arg) : null;
+  }
+  time(title) {
+    return dart.test(this[_isConsoleDefined]) ? console.time(title) : null;
+  }
+  timeEnd(title) {
+    return dart.test(this[_isConsoleDefined]) ? console.timeEnd(title) : null;
+  }
+  timeStamp(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.timeStamp(arg) : null;
+  }
+  trace(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.trace(arg) : null;
+  }
+  warn(arg) {
+    return dart.test(this[_isConsoleDefined]) ? console.warn(arg) : null;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.defineNamedConstructor(html$.Console, '_safe');
+dart.setSignature(html$.Console, {
+  constructors: () => ({
+    _safe: dart.definiteFunctionType(html$.Console, []),
+    _: dart.definiteFunctionType(html$.Console, [])
+  }),
+  getters: () => ({
+    [_isConsoleDefined]: dart.definiteFunctionType(core.bool, []),
+    memory: dart.definiteFunctionType(html$.MemoryInfo, [])
+  }),
+  methods: () => ({
+    assertCondition: dart.definiteFunctionType(dart.void, [core.bool, core.Object]),
+    clear: dart.definiteFunctionType(dart.void, [core.Object]),
+    count: dart.definiteFunctionType(dart.void, [core.Object]),
+    debug: dart.definiteFunctionType(dart.void, [core.Object]),
+    dir: dart.definiteFunctionType(dart.void, [core.Object]),
+    dirxml: dart.definiteFunctionType(dart.void, [core.Object]),
+    error: dart.definiteFunctionType(dart.void, [core.Object]),
+    group: dart.definiteFunctionType(dart.void, [core.Object]),
+    groupCollapsed: dart.definiteFunctionType(dart.void, [core.Object]),
+    groupEnd: dart.definiteFunctionType(dart.void, []),
+    info: dart.definiteFunctionType(dart.void, [core.Object]),
+    log: dart.definiteFunctionType(dart.void, [core.Object]),
+    markTimeline: dart.definiteFunctionType(dart.void, [core.Object]),
+    profile: dart.definiteFunctionType(dart.void, [core.String]),
+    profileEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    table: dart.definiteFunctionType(dart.void, [core.Object]),
+    time: dart.definiteFunctionType(dart.void, [core.String]),
+    timeEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    timeStamp: dart.definiteFunctionType(dart.void, [core.Object]),
+    trace: dart.definiteFunctionType(dart.void, [core.Object]),
+    warn: dart.definiteFunctionType(dart.void, [core.Object])
+  }),
+  sfields: () => ({_safeConsole: html$.Console})
+});
+dart.defineLazy(html$.Console, {
+  get _safeConsole() {
+    return dart.const(new html$.Console._safe());
+  }
+});
+dart.defineExtensionNames([
+  'assertCondition',
+  'timeline',
+  'timelineEnd'
+]);
+html$.ConsoleBase = class ConsoleBase extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.assertCondition](...args) {
+    return this.assert.apply(this, args);
+  }
+  [dartx.timeline](...args) {
+    return this.timeline.apply(this, args);
+  }
+  [dartx.timelineEnd](...args) {
+    return this.timelineEnd.apply(this, args);
+  }
+};
+dart.setSignature(html$.ConsoleBase, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ConsoleBase, [])}),
+  methods: () => ({
+    [dartx.assertCondition]: dart.definiteFunctionType(dart.void, [core.bool, core.Object]),
+    [dartx.timeline]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.timelineEnd]: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+dart.registerExtension(dart.global.ConsoleBase, html$.ConsoleBase);
+dart.defineExtensionNames([
+  'getDistributedNodes',
+  'select'
+]);
+html$.ContentElement = class ContentElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ContentElement._check(html$.document[dartx.createElement]("content"));
+  }
+  created() {
+    this[dartx.select] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('content');
+  }
+  get [dartx.select]() {
+    return this.select;
+  }
+  set [dartx.select](value) {
+    this.select = value;
+  }
+  [dartx.getDistributedNodes](...args) {
+    return this.getDistributedNodes.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.ContentElement, 'created');
+dart.setSignature(html$.ContentElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ContentElement, []),
+    new: dart.definiteFunctionType(html$.ContentElement, []),
+    created: dart.definiteFunctionType(html$.ContentElement, [])
+  }),
+  fields: () => ({[dartx.select]: core.String}),
+  methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLContentElement, html$.ContentElement);
+dart.defineExtensionNames([
+  'accuracy',
+  'altitude',
+  'altitudeAccuracy',
+  'heading',
+  'latitude',
+  'longitude',
+  'speed'
+]);
+html$.Coordinates = class Coordinates extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.accuracy]() {
+    return this.accuracy;
+  }
+  get [dartx.altitude]() {
+    return this.altitude;
+  }
+  get [dartx.altitudeAccuracy]() {
+    return this.altitudeAccuracy;
+  }
+  get [dartx.heading]() {
+    return this.heading;
+  }
+  get [dartx.latitude]() {
+    return this.latitude;
+  }
+  get [dartx.longitude]() {
+    return this.longitude;
+  }
+  get [dartx.speed]() {
+    return this.speed;
+  }
+};
+dart.setSignature(html$.Coordinates, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Coordinates, [])}),
+  fields: () => ({
+    [dartx.accuracy]: core.double,
+    [dartx.altitude]: core.double,
+    [dartx.altitudeAccuracy]: core.double,
+    [dartx.heading]: core.double,
+    [dartx.latitude]: core.double,
+    [dartx.longitude]: core.double,
+    [dartx.speed]: core.double
+  })
+});
+dart.registerExtension(dart.global.Coordinates, html$.Coordinates);
+dart.defineExtensionNames([
+  'iconUrl',
+  'id',
+  'name',
+  'type'
+]);
+html$.Credential = class Credential extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.iconUrl]() {
+    return this.iconURL;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.Credential, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Credential, [])}),
+  fields: () => ({
+    [dartx.iconUrl]: core.String,
+    [dartx.id]: core.String,
+    [dartx.name]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.Credential, html$.Credential);
+const _request_1 = Symbol('_request_1');
+const _request_2 = Symbol('_request_2');
+dart.defineExtensionNames([
+  'notifySignedIn',
+  'request',
+  'requireUserMediation'
+]);
+html$.CredentialsContainer = class CredentialsContainer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.notifySignedIn](...args) {
+    return this.notifySignedIn.apply(this, args);
+  }
+  [dartx.request](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_request_1](options_1);
+    }
+    return this[_request_2]();
+  }
+  [_request_1](...args) {
+    return this.request.apply(this, args);
+  }
+  [_request_2](...args) {
+    return this.request.apply(this, args);
+  }
+  [dartx.requireUserMediation](...args) {
+    return this.requireUserMediation.apply(this, args);
+  }
+};
+dart.setSignature(html$.CredentialsContainer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CredentialsContainer, [])}),
+  methods: () => ({
+    [dartx.notifySignedIn]: dart.definiteFunctionType(async.Future, [html$.Credential]),
+    [dartx.request]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_request_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_request_2]: dart.definiteFunctionType(async.Future, []),
+    [dartx.requireUserMediation]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.CredentialsContainer, html$.CredentialsContainer);
+dart.defineExtensionNames([
+  'acceptConnection',
+  'client'
+]);
+html$.CrossOriginConnectEvent = class CrossOriginConnectEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.client]() {
+    return this.client;
+  }
+  [dartx.acceptConnection](...args) {
+    return this.acceptConnection.apply(this, args);
+  }
+};
+dart.setSignature(html$.CrossOriginConnectEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CrossOriginConnectEvent, [])}),
+  fields: () => ({[dartx.client]: html$.CrossOriginServiceWorkerClient}),
+  methods: () => ({[dartx.acceptConnection]: dart.definiteFunctionType(dart.void, [async.Future])})
+});
+dart.registerExtension(dart.global.CrossOriginConnectEvent, html$.CrossOriginConnectEvent);
+dart.defineExtensionNames([
+  'postMessage',
+  'origin',
+  'targetUrl'
+]);
+html$.CrossOriginServiceWorkerClient = class CrossOriginServiceWorkerClient extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.targetUrl]() {
+    return this.targetUrl;
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+};
+dart.setSignature(html$.CrossOriginServiceWorkerClient, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CrossOriginServiceWorkerClient, [])}),
+  fields: () => ({
+    [dartx.origin]: core.String,
+    [dartx.targetUrl]: core.String
+  }),
+  methods: () => ({
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.CrossOriginServiceWorkerClient, html$.CrossOriginServiceWorkerClient);
+const _getRandomValues = Symbol('_getRandomValues');
+dart.defineExtensionNames([
+  'getRandomValues',
+  'subtle'
+]);
+html$.Crypto = class Crypto extends _interceptors.Interceptor {
+  [dartx.getRandomValues](array) {
+    return this[_getRandomValues](array);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!(window.crypto && window.crypto.getRandomValues);
+  }
+  get [dartx.subtle]() {
+    return this.subtle;
+  }
+  [_getRandomValues](...args) {
+    return this.getRandomValues.apply(this, args);
+  }
+};
+dart.setSignature(html$.Crypto, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Crypto, [])}),
+  fields: () => ({[dartx.subtle]: html$._SubtleCrypto}),
+  methods: () => ({
+    [dartx.getRandomValues]: dart.definiteFunctionType(typed_data.TypedData, [typed_data.TypedData]),
+    [_getRandomValues]: dart.definiteFunctionType(typed_data.TypedData, [typed_data.TypedData])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.Crypto, html$.Crypto);
+dart.defineExtensionNames([
+  'algorithm',
+  'extractable',
+  'type',
+  'usages'
+]);
+html$.CryptoKey = class CryptoKey extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.algorithm]() {
+    return this.algorithm;
+  }
+  get [dartx.extractable]() {
+    return this.extractable;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.usages]() {
+    return this.usages;
+  }
+};
+dart.setSignature(html$.CryptoKey, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CryptoKey, [])}),
+  fields: () => ({
+    [dartx.algorithm]: core.Object,
+    [dartx.extractable]: core.bool,
+    [dartx.type]: core.String,
+    [dartx.usages]: ListOfString()
+  })
+});
+dart.registerExtension(dart.global.CryptoKey, html$.CryptoKey);
+html$.Css = class Css extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.Css, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Css, [])}),
+  statics: () => ({
+    supports: dart.definiteFunctionType(core.bool, [core.String, core.String]),
+    supportsCondition: dart.definiteFunctionType(core.bool, [core.String])
+  }),
+  names: ['supports', 'supportsCondition']
+});
+dart.registerExtension(dart.global.CSS, html$.Css);
+dart.defineExtensionNames([
+  'cssText',
+  'parentRule',
+  'parentStyleSheet',
+  'type'
+]);
+html$.CssRule = class CssRule extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.cssText]() {
+    return this.cssText;
+  }
+  set [dartx.cssText](value) {
+    this.cssText = value;
+  }
+  get [dartx.parentRule]() {
+    return this.parentRule;
+  }
+  get [dartx.parentStyleSheet]() {
+    return this.parentStyleSheet;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.CssRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssRule, [])}),
+  fields: () => ({
+    [dartx.cssText]: core.String,
+    [dartx.parentRule]: html$.CssRule,
+    [dartx.parentStyleSheet]: html$.CssStyleSheet,
+    [dartx.type]: core.int
+  }),
+  sfields: () => ({
+    CHARSET_RULE: core.int,
+    FONT_FACE_RULE: core.int,
+    IMPORT_RULE: core.int,
+    KEYFRAMES_RULE: core.int,
+    KEYFRAME_RULE: core.int,
+    MEDIA_RULE: core.int,
+    PAGE_RULE: core.int,
+    STYLE_RULE: core.int,
+    SUPPORTS_RULE: core.int,
+    VIEWPORT_RULE: core.int,
+    WEBKIT_KEYFRAMES_RULE: core.int,
+    WEBKIT_KEYFRAME_RULE: core.int
+  })
+});
+html$.CssRule.CHARSET_RULE = 2;
+html$.CssRule.FONT_FACE_RULE = 5;
+html$.CssRule.IMPORT_RULE = 3;
+html$.CssRule.KEYFRAMES_RULE = 7;
+html$.CssRule.KEYFRAME_RULE = 8;
+html$.CssRule.MEDIA_RULE = 4;
+html$.CssRule.PAGE_RULE = 6;
+html$.CssRule.STYLE_RULE = 1;
+html$.CssRule.SUPPORTS_RULE = 12;
+html$.CssRule.VIEWPORT_RULE = 15;
+html$.CssRule.WEBKIT_KEYFRAMES_RULE = 7;
+html$.CssRule.WEBKIT_KEYFRAME_RULE = 8;
+dart.registerExtension(dart.global.CSSRule, html$.CssRule);
+dart.defineExtensionNames([
+  'encoding'
+]);
+html$.CssCharsetRule = class CssCharsetRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.encoding]() {
+    return this.encoding;
+  }
+  set [dartx.encoding](value) {
+    this.encoding = value;
+  }
+};
+dart.setSignature(html$.CssCharsetRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssCharsetRule, [])}),
+  fields: () => ({[dartx.encoding]: core.String})
+});
+dart.registerExtension(dart.global.CSSCharsetRule, html$.CssCharsetRule);
+dart.defineExtensionNames([
+  'style'
+]);
+html$.CssFontFaceRule = class CssFontFaceRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+};
+dart.setSignature(html$.CssFontFaceRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssFontFaceRule, [])}),
+  fields: () => ({[dartx.style]: html$.CssStyleDeclaration})
+});
+dart.registerExtension(dart.global.CSSFontFaceRule, html$.CssFontFaceRule);
+dart.defineExtensionNames([
+  'deleteRule',
+  'insertRule',
+  'cssRules'
+]);
+html$.CssGroupingRule = class CssGroupingRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.cssRules]() {
+    return this.cssRules;
+  }
+  [dartx.deleteRule](...args) {
+    return this.deleteRule.apply(this, args);
+  }
+  [dartx.insertRule](...args) {
+    return this.insertRule.apply(this, args);
+  }
+};
+dart.setSignature(html$.CssGroupingRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssGroupingRule, [])}),
+  fields: () => ({[dartx.cssRules]: ListOfCssRule()}),
+  methods: () => ({
+    [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String, core.int])
+  })
+});
+dart.registerExtension(dart.global.CSSGroupingRule, html$.CssGroupingRule);
+dart.defineExtensionNames([
+  'href',
+  'media',
+  'styleSheet'
+]);
+html$.CssImportRule = class CssImportRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  get [dartx.styleSheet]() {
+    return this.styleSheet;
+  }
+};
+dart.setSignature(html$.CssImportRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssImportRule, [])}),
+  fields: () => ({
+    [dartx.href]: core.String,
+    [dartx.media]: html$.MediaList,
+    [dartx.styleSheet]: html$.CssStyleSheet
+  })
+});
+dart.registerExtension(dart.global.CSSImportRule, html$.CssImportRule);
+dart.defineExtensionNames([
+  'keyText',
+  'style'
+]);
+html$.CssKeyframeRule = class CssKeyframeRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.keyText]() {
+    return this.keyText;
+  }
+  set [dartx.keyText](value) {
+    this.keyText = value;
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+};
+dart.setSignature(html$.CssKeyframeRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssKeyframeRule, [])}),
+  fields: () => ({
+    [dartx.keyText]: core.String,
+    [dartx.style]: html$.CssStyleDeclaration
+  })
+});
+dart.registerExtension(dart.global.CSSKeyframeRule, html$.CssKeyframeRule);
+dart.registerExtension(dart.global.MozCSSKeyframeRule, html$.CssKeyframeRule);
+dart.registerExtension(dart.global.WebKitCSSKeyframeRule, html$.CssKeyframeRule);
+dart.defineExtensionNames([
+  'appendRule',
+  'deleteRule',
+  'findRule',
+  'cssRules',
+  'name'
+]);
+html$.CssKeyframesRule = class CssKeyframesRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.cssRules]() {
+    return this.cssRules;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.appendRule](...args) {
+    return this.appendRule.apply(this, args);
+  }
+  [dartx.deleteRule](...args) {
+    return this.deleteRule.apply(this, args);
+  }
+  [dartx.findRule](...args) {
+    return this.findRule.apply(this, args);
+  }
+};
+dart.setSignature(html$.CssKeyframesRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssKeyframesRule, [])}),
+  fields: () => ({
+    [dartx.cssRules]: ListOfCssRule(),
+    [dartx.name]: core.String
+  }),
+  methods: () => ({
+    [__getter__]: dart.definiteFunctionType(html$.CssKeyframeRule, [core.int]),
+    [dartx.appendRule]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.findRule]: dart.definiteFunctionType(html$.CssKeyframeRule, [core.String])
+  })
+});
+dart.registerExtension(dart.global.CSSKeyframesRule, html$.CssKeyframesRule);
+dart.registerExtension(dart.global.MozCSSKeyframesRule, html$.CssKeyframesRule);
+dart.registerExtension(dart.global.WebKitCSSKeyframesRule, html$.CssKeyframesRule);
+dart.defineExtensionNames([
+  'media'
+]);
+html$.CssMediaRule = class CssMediaRule extends html$.CssGroupingRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+};
+dart.setSignature(html$.CssMediaRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssMediaRule, [])}),
+  fields: () => ({[dartx.media]: html$.MediaList})
+});
+dart.registerExtension(dart.global.CSSMediaRule, html$.CssMediaRule);
+dart.defineExtensionNames([
+  'selectorText',
+  'style'
+]);
+html$.CssPageRule = class CssPageRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.selectorText]() {
+    return this.selectorText;
+  }
+  set [dartx.selectorText](value) {
+    this.selectorText = value;
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+};
+dart.setSignature(html$.CssPageRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssPageRule, [])}),
+  fields: () => ({
+    [dartx.selectorText]: core.String,
+    [dartx.style]: html$.CssStyleDeclaration
+  })
+});
+dart.registerExtension(dart.global.CSSPageRule, html$.CssPageRule);
+const _getPropertyValueHelper = Symbol('_getPropertyValueHelper');
+const _supportsProperty = Symbol('_supportsProperty');
+const _getPropertyValue = Symbol('_getPropertyValue');
+const _setPropertyHelper = Symbol('_setPropertyHelper');
+const _browserPropertyName = Symbol('_browserPropertyName');
+const _background = Symbol('_background');
+const _backgroundAttachment = Symbol('_backgroundAttachment');
+const _backgroundColor = Symbol('_backgroundColor');
+const _backgroundImage = Symbol('_backgroundImage');
+const _backgroundPosition = Symbol('_backgroundPosition');
+const _backgroundRepeat = Symbol('_backgroundRepeat');
+const _border = Symbol('_border');
+const _borderBottom = Symbol('_borderBottom');
+const _borderBottomColor = Symbol('_borderBottomColor');
+const _borderBottomStyle = Symbol('_borderBottomStyle');
+const _borderBottomWidth = Symbol('_borderBottomWidth');
+const _borderCollapse = Symbol('_borderCollapse');
+const _borderColor = Symbol('_borderColor');
+const _borderLeft = Symbol('_borderLeft');
+const _borderLeftColor = Symbol('_borderLeftColor');
+const _borderLeftStyle = Symbol('_borderLeftStyle');
+const _borderLeftWidth = Symbol('_borderLeftWidth');
+const _borderRight = Symbol('_borderRight');
+const _borderRightColor = Symbol('_borderRightColor');
+const _borderRightStyle = Symbol('_borderRightStyle');
+const _borderRightWidth = Symbol('_borderRightWidth');
+const _borderSpacing = Symbol('_borderSpacing');
+const _borderStyle = Symbol('_borderStyle');
+const _borderTop = Symbol('_borderTop');
+const _borderTopColor = Symbol('_borderTopColor');
+const _borderTopStyle = Symbol('_borderTopStyle');
+const _borderTopWidth = Symbol('_borderTopWidth');
+const _borderWidth = Symbol('_borderWidth');
+const _bottom = Symbol('_bottom');
+const _captionSide = Symbol('_captionSide');
+const _clear$1 = Symbol('_clear');
+const _clip = Symbol('_clip');
+const _color = Symbol('_color');
+const _content = Symbol('_content');
+const _cursor = Symbol('_cursor');
+const _direction = Symbol('_direction');
+const _display = Symbol('_display');
+const _emptyCells = Symbol('_emptyCells');
+const _font = Symbol('_font');
+const _fontFamily = Symbol('_fontFamily');
+const _fontSize = Symbol('_fontSize');
+const _fontStyle = Symbol('_fontStyle');
+const _fontVariant = Symbol('_fontVariant');
+const _fontWeight = Symbol('_fontWeight');
+const _height$ = Symbol('_height');
+const _left = Symbol('_left');
+const _letterSpacing = Symbol('_letterSpacing');
+const _lineHeight = Symbol('_lineHeight');
+const _listStyle = Symbol('_listStyle');
+const _listStyleImage = Symbol('_listStyleImage');
+const _listStylePosition = Symbol('_listStylePosition');
+const _listStyleType = Symbol('_listStyleType');
+const _margin = Symbol('_margin');
+const _marginBottom = Symbol('_marginBottom');
+const _marginLeft = Symbol('_marginLeft');
+const _marginRight = Symbol('_marginRight');
+const _marginTop = Symbol('_marginTop');
+const _maxHeight = Symbol('_maxHeight');
+const _maxWidth = Symbol('_maxWidth');
+const _minHeight = Symbol('_minHeight');
+const _minWidth = Symbol('_minWidth');
+const _outline = Symbol('_outline');
+const _outlineColor = Symbol('_outlineColor');
+const _outlineStyle = Symbol('_outlineStyle');
+const _outlineWidth = Symbol('_outlineWidth');
+const _overflow = Symbol('_overflow');
+const _padding = Symbol('_padding');
+const _paddingBottom = Symbol('_paddingBottom');
+const _paddingLeft = Symbol('_paddingLeft');
+const _paddingRight = Symbol('_paddingRight');
+const _paddingTop = Symbol('_paddingTop');
+const _pageBreakAfter = Symbol('_pageBreakAfter');
+const _pageBreakBefore = Symbol('_pageBreakBefore');
+const _pageBreakInside = Symbol('_pageBreakInside');
+const _position$1 = Symbol('_position');
+const _quotes = Symbol('_quotes');
+const _right = Symbol('_right');
+const _tableLayout = Symbol('_tableLayout');
+const _textAlign = Symbol('_textAlign');
+const _textDecoration = Symbol('_textDecoration');
+const _textIndent = Symbol('_textIndent');
+const _textTransform = Symbol('_textTransform');
+const _top = Symbol('_top');
+const _unicodeBidi = Symbol('_unicodeBidi');
+const _verticalAlign = Symbol('_verticalAlign');
+const _visibility = Symbol('_visibility');
+const _whiteSpace = Symbol('_whiteSpace');
+const _width$ = Symbol('_width');
+const _wordSpacing = Symbol('_wordSpacing');
+const _zIndex = Symbol('_zIndex');
+dart.defineExtensionNames([
+  'alignContent',
+  'alignContent',
+  'alignItems',
+  'alignItems',
+  'alignSelf',
+  'alignSelf',
+  'animation',
+  'animation',
+  'animationDelay',
+  'animationDelay',
+  'animationDirection',
+  'animationDirection',
+  'animationDuration',
+  'animationDuration',
+  'animationFillMode',
+  'animationFillMode',
+  'animationIterationCount',
+  'animationIterationCount',
+  'animationName',
+  'animationName',
+  'animationPlayState',
+  'animationPlayState',
+  'animationTimingFunction',
+  'animationTimingFunction',
+  'appRegion',
+  'appRegion',
+  'appearance',
+  'appearance',
+  'aspectRatio',
+  'aspectRatio',
+  'backfaceVisibility',
+  'backfaceVisibility',
+  'background',
+  'background',
+  'backgroundAttachment',
+  'backgroundAttachment',
+  'backgroundBlendMode',
+  'backgroundBlendMode',
+  'backgroundClip',
+  'backgroundClip',
+  'backgroundColor',
+  'backgroundColor',
+  'backgroundComposite',
+  'backgroundComposite',
+  'backgroundImage',
+  'backgroundImage',
+  'backgroundOrigin',
+  'backgroundOrigin',
+  'backgroundPosition',
+  'backgroundPosition',
+  'backgroundPositionX',
+  'backgroundPositionX',
+  'backgroundPositionY',
+  'backgroundPositionY',
+  'backgroundRepeat',
+  'backgroundRepeat',
+  'backgroundRepeatX',
+  'backgroundRepeatX',
+  'backgroundRepeatY',
+  'backgroundRepeatY',
+  'backgroundSize',
+  'backgroundSize',
+  'border',
+  'border',
+  'borderAfter',
+  'borderAfter',
+  'borderAfterColor',
+  'borderAfterColor',
+  'borderAfterStyle',
+  'borderAfterStyle',
+  'borderAfterWidth',
+  'borderAfterWidth',
+  'borderBefore',
+  'borderBefore',
+  'borderBeforeColor',
+  'borderBeforeColor',
+  'borderBeforeStyle',
+  'borderBeforeStyle',
+  'borderBeforeWidth',
+  'borderBeforeWidth',
+  'borderBottom',
+  'borderBottom',
+  'borderBottomColor',
+  'borderBottomColor',
+  'borderBottomLeftRadius',
+  'borderBottomLeftRadius',
+  'borderBottomRightRadius',
+  'borderBottomRightRadius',
+  'borderBottomStyle',
+  'borderBottomStyle',
+  'borderBottomWidth',
+  'borderBottomWidth',
+  'borderCollapse',
+  'borderCollapse',
+  'borderColor',
+  'borderColor',
+  'borderEnd',
+  'borderEnd',
+  'borderEndColor',
+  'borderEndColor',
+  'borderEndStyle',
+  'borderEndStyle',
+  'borderEndWidth',
+  'borderEndWidth',
+  'borderFit',
+  'borderFit',
+  'borderHorizontalSpacing',
+  'borderHorizontalSpacing',
+  'borderImage',
+  'borderImage',
+  'borderImageOutset',
+  'borderImageOutset',
+  'borderImageRepeat',
+  'borderImageRepeat',
+  'borderImageSlice',
+  'borderImageSlice',
+  'borderImageSource',
+  'borderImageSource',
+  'borderImageWidth',
+  'borderImageWidth',
+  'borderLeft',
+  'borderLeft',
+  'borderLeftColor',
+  'borderLeftColor',
+  'borderLeftStyle',
+  'borderLeftStyle',
+  'borderLeftWidth',
+  'borderLeftWidth',
+  'borderRadius',
+  'borderRadius',
+  'borderRight',
+  'borderRight',
+  'borderRightColor',
+  'borderRightColor',
+  'borderRightStyle',
+  'borderRightStyle',
+  'borderRightWidth',
+  'borderRightWidth',
+  'borderSpacing',
+  'borderSpacing',
+  'borderStart',
+  'borderStart',
+  'borderStartColor',
+  'borderStartColor',
+  'borderStartStyle',
+  'borderStartStyle',
+  'borderStartWidth',
+  'borderStartWidth',
+  'borderStyle',
+  'borderStyle',
+  'borderTop',
+  'borderTop',
+  'borderTopColor',
+  'borderTopColor',
+  'borderTopLeftRadius',
+  'borderTopLeftRadius',
+  'borderTopRightRadius',
+  'borderTopRightRadius',
+  'borderTopStyle',
+  'borderTopStyle',
+  'borderTopWidth',
+  'borderTopWidth',
+  'borderVerticalSpacing',
+  'borderVerticalSpacing',
+  'borderWidth',
+  'borderWidth',
+  'bottom',
+  'bottom',
+  'boxAlign',
+  'boxAlign',
+  'boxDecorationBreak',
+  'boxDecorationBreak',
+  'boxDirection',
+  'boxDirection',
+  'boxFlex',
+  'boxFlex',
+  'boxFlexGroup',
+  'boxFlexGroup',
+  'boxLines',
+  'boxLines',
+  'boxOrdinalGroup',
+  'boxOrdinalGroup',
+  'boxOrient',
+  'boxOrient',
+  'boxPack',
+  'boxPack',
+  'boxReflect',
+  'boxReflect',
+  'boxShadow',
+  'boxShadow',
+  'boxSizing',
+  'boxSizing',
+  'captionSide',
+  'captionSide',
+  'clear',
+  'clear',
+  'clip',
+  'clip',
+  'clipPath',
+  'clipPath',
+  'color',
+  'color',
+  'columnBreakAfter',
+  'columnBreakAfter',
+  'columnBreakBefore',
+  'columnBreakBefore',
+  'columnBreakInside',
+  'columnBreakInside',
+  'columnCount',
+  'columnCount',
+  'columnFill',
+  'columnFill',
+  'columnGap',
+  'columnGap',
+  'columnRule',
+  'columnRule',
+  'columnRuleColor',
+  'columnRuleColor',
+  'columnRuleStyle',
+  'columnRuleStyle',
+  'columnRuleWidth',
+  'columnRuleWidth',
+  'columnSpan',
+  'columnSpan',
+  'columnWidth',
+  'columnWidth',
+  'columns',
+  'columns',
+  'content',
+  'content',
+  'counterIncrement',
+  'counterIncrement',
+  'counterReset',
+  'counterReset',
+  'cursor',
+  'cursor',
+  'direction',
+  'direction',
+  'display',
+  'display',
+  'emptyCells',
+  'emptyCells',
+  'filter',
+  'filter',
+  'flex',
+  'flex',
+  'flexBasis',
+  'flexBasis',
+  'flexDirection',
+  'flexDirection',
+  'flexFlow',
+  'flexFlow',
+  'flexGrow',
+  'flexGrow',
+  'flexShrink',
+  'flexShrink',
+  'flexWrap',
+  'flexWrap',
+  'float',
+  'float',
+  'font',
+  'font',
+  'fontFamily',
+  'fontFamily',
+  'fontFeatureSettings',
+  'fontFeatureSettings',
+  'fontKerning',
+  'fontKerning',
+  'fontSize',
+  'fontSize',
+  'fontSizeDelta',
+  'fontSizeDelta',
+  'fontSmoothing',
+  'fontSmoothing',
+  'fontStretch',
+  'fontStretch',
+  'fontStyle',
+  'fontStyle',
+  'fontVariant',
+  'fontVariant',
+  'fontVariantLigatures',
+  'fontVariantLigatures',
+  'fontWeight',
+  'fontWeight',
+  'grid',
+  'grid',
+  'gridArea',
+  'gridArea',
+  'gridAutoColumns',
+  'gridAutoColumns',
+  'gridAutoFlow',
+  'gridAutoFlow',
+  'gridAutoRows',
+  'gridAutoRows',
+  'gridColumn',
+  'gridColumn',
+  'gridColumnEnd',
+  'gridColumnEnd',
+  'gridColumnStart',
+  'gridColumnStart',
+  'gridRow',
+  'gridRow',
+  'gridRowEnd',
+  'gridRowEnd',
+  'gridRowStart',
+  'gridRowStart',
+  'gridTemplate',
+  'gridTemplate',
+  'gridTemplateAreas',
+  'gridTemplateAreas',
+  'gridTemplateColumns',
+  'gridTemplateColumns',
+  'gridTemplateRows',
+  'gridTemplateRows',
+  'height',
+  'height',
+  'highlight',
+  'highlight',
+  'hyphenateCharacter',
+  'hyphenateCharacter',
+  'imageRendering',
+  'imageRendering',
+  'isolation',
+  'isolation',
+  'justifyContent',
+  'justifyContent',
+  'justifySelf',
+  'justifySelf',
+  'left',
+  'left',
+  'letterSpacing',
+  'letterSpacing',
+  'lineBoxContain',
+  'lineBoxContain',
+  'lineBreak',
+  'lineBreak',
+  'lineClamp',
+  'lineClamp',
+  'lineHeight',
+  'lineHeight',
+  'listStyle',
+  'listStyle',
+  'listStyleImage',
+  'listStyleImage',
+  'listStylePosition',
+  'listStylePosition',
+  'listStyleType',
+  'listStyleType',
+  'locale',
+  'locale',
+  'logicalHeight',
+  'logicalHeight',
+  'logicalWidth',
+  'logicalWidth',
+  'margin',
+  'margin',
+  'marginAfter',
+  'marginAfter',
+  'marginAfterCollapse',
+  'marginAfterCollapse',
+  'marginBefore',
+  'marginBefore',
+  'marginBeforeCollapse',
+  'marginBeforeCollapse',
+  'marginBottom',
+  'marginBottom',
+  'marginBottomCollapse',
+  'marginBottomCollapse',
+  'marginCollapse',
+  'marginCollapse',
+  'marginEnd',
+  'marginEnd',
+  'marginLeft',
+  'marginLeft',
+  'marginRight',
+  'marginRight',
+  'marginStart',
+  'marginStart',
+  'marginTop',
+  'marginTop',
+  'marginTopCollapse',
+  'marginTopCollapse',
+  'mask',
+  'mask',
+  'maskBoxImage',
+  'maskBoxImage',
+  'maskBoxImageOutset',
+  'maskBoxImageOutset',
+  'maskBoxImageRepeat',
+  'maskBoxImageRepeat',
+  'maskBoxImageSlice',
+  'maskBoxImageSlice',
+  'maskBoxImageSource',
+  'maskBoxImageSource',
+  'maskBoxImageWidth',
+  'maskBoxImageWidth',
+  'maskClip',
+  'maskClip',
+  'maskComposite',
+  'maskComposite',
+  'maskImage',
+  'maskImage',
+  'maskOrigin',
+  'maskOrigin',
+  'maskPosition',
+  'maskPosition',
+  'maskPositionX',
+  'maskPositionX',
+  'maskPositionY',
+  'maskPositionY',
+  'maskRepeat',
+  'maskRepeat',
+  'maskRepeatX',
+  'maskRepeatX',
+  'maskRepeatY',
+  'maskRepeatY',
+  'maskSize',
+  'maskSize',
+  'maskSourceType',
+  'maskSourceType',
+  'maxHeight',
+  'maxHeight',
+  'maxLogicalHeight',
+  'maxLogicalHeight',
+  'maxLogicalWidth',
+  'maxLogicalWidth',
+  'maxWidth',
+  'maxWidth',
+  'maxZoom',
+  'maxZoom',
+  'minHeight',
+  'minHeight',
+  'minLogicalHeight',
+  'minLogicalHeight',
+  'minLogicalWidth',
+  'minLogicalWidth',
+  'minWidth',
+  'minWidth',
+  'minZoom',
+  'minZoom',
+  'mixBlendMode',
+  'mixBlendMode',
+  'objectFit',
+  'objectFit',
+  'objectPosition',
+  'objectPosition',
+  'opacity',
+  'opacity',
+  'order',
+  'order',
+  'orientation',
+  'orientation',
+  'orphans',
+  'orphans',
+  'outline',
+  'outline',
+  'outlineColor',
+  'outlineColor',
+  'outlineOffset',
+  'outlineOffset',
+  'outlineStyle',
+  'outlineStyle',
+  'outlineWidth',
+  'outlineWidth',
+  'overflow',
+  'overflow',
+  'overflowWrap',
+  'overflowWrap',
+  'overflowX',
+  'overflowX',
+  'overflowY',
+  'overflowY',
+  'padding',
+  'padding',
+  'paddingAfter',
+  'paddingAfter',
+  'paddingBefore',
+  'paddingBefore',
+  'paddingBottom',
+  'paddingBottom',
+  'paddingEnd',
+  'paddingEnd',
+  'paddingLeft',
+  'paddingLeft',
+  'paddingRight',
+  'paddingRight',
+  'paddingStart',
+  'paddingStart',
+  'paddingTop',
+  'paddingTop',
+  'page',
+  'page',
+  'pageBreakAfter',
+  'pageBreakAfter',
+  'pageBreakBefore',
+  'pageBreakBefore',
+  'pageBreakInside',
+  'pageBreakInside',
+  'perspective',
+  'perspective',
+  'perspectiveOrigin',
+  'perspectiveOrigin',
+  'perspectiveOriginX',
+  'perspectiveOriginX',
+  'perspectiveOriginY',
+  'perspectiveOriginY',
+  'pointerEvents',
+  'pointerEvents',
+  'position',
+  'position',
+  'printColorAdjust',
+  'printColorAdjust',
+  'quotes',
+  'quotes',
+  'resize',
+  'resize',
+  'right',
+  'right',
+  'rtlOrdering',
+  'rtlOrdering',
+  'rubyPosition',
+  'rubyPosition',
+  'scrollBehavior',
+  'scrollBehavior',
+  'shapeImageThreshold',
+  'shapeImageThreshold',
+  'shapeMargin',
+  'shapeMargin',
+  'shapeOutside',
+  'shapeOutside',
+  'size',
+  'size',
+  'speak',
+  'speak',
+  'src',
+  'src',
+  'tabSize',
+  'tabSize',
+  'tableLayout',
+  'tableLayout',
+  'tapHighlightColor',
+  'tapHighlightColor',
+  'textAlign',
+  'textAlign',
+  'textAlignLast',
+  'textAlignLast',
+  'textCombine',
+  'textCombine',
+  'textDecoration',
+  'textDecoration',
+  'textDecorationColor',
+  'textDecorationColor',
+  'textDecorationLine',
+  'textDecorationLine',
+  'textDecorationStyle',
+  'textDecorationStyle',
+  'textDecorationsInEffect',
+  'textDecorationsInEffect',
+  'textEmphasis',
+  'textEmphasis',
+  'textEmphasisColor',
+  'textEmphasisColor',
+  'textEmphasisPosition',
+  'textEmphasisPosition',
+  'textEmphasisStyle',
+  'textEmphasisStyle',
+  'textFillColor',
+  'textFillColor',
+  'textIndent',
+  'textIndent',
+  'textJustify',
+  'textJustify',
+  'textLineThroughColor',
+  'textLineThroughColor',
+  'textLineThroughMode',
+  'textLineThroughMode',
+  'textLineThroughStyle',
+  'textLineThroughStyle',
+  'textLineThroughWidth',
+  'textLineThroughWidth',
+  'textOrientation',
+  'textOrientation',
+  'textOverflow',
+  'textOverflow',
+  'textOverlineColor',
+  'textOverlineColor',
+  'textOverlineMode',
+  'textOverlineMode',
+  'textOverlineStyle',
+  'textOverlineStyle',
+  'textOverlineWidth',
+  'textOverlineWidth',
+  'textRendering',
+  'textRendering',
+  'textSecurity',
+  'textSecurity',
+  'textShadow',
+  'textShadow',
+  'textStroke',
+  'textStroke',
+  'textStrokeColor',
+  'textStrokeColor',
+  'textStrokeWidth',
+  'textStrokeWidth',
+  'textTransform',
+  'textTransform',
+  'textUnderlineColor',
+  'textUnderlineColor',
+  'textUnderlineMode',
+  'textUnderlineMode',
+  'textUnderlinePosition',
+  'textUnderlinePosition',
+  'textUnderlineStyle',
+  'textUnderlineStyle',
+  'textUnderlineWidth',
+  'textUnderlineWidth',
+  'top',
+  'top',
+  'touchAction',
+  'touchAction',
+  'touchActionDelay',
+  'touchActionDelay',
+  'transform',
+  'transform',
+  'transformOrigin',
+  'transformOrigin',
+  'transformOriginX',
+  'transformOriginX',
+  'transformOriginY',
+  'transformOriginY',
+  'transformOriginZ',
+  'transformOriginZ',
+  'transformStyle',
+  'transformStyle',
+  'transition',
+  'transition',
+  'transitionDelay',
+  'transitionDelay',
+  'transitionDuration',
+  'transitionDuration',
+  'transitionProperty',
+  'transitionProperty',
+  'transitionTimingFunction',
+  'transitionTimingFunction',
+  'unicodeBidi',
+  'unicodeBidi',
+  'unicodeRange',
+  'unicodeRange',
+  'userDrag',
+  'userDrag',
+  'userModify',
+  'userModify',
+  'userSelect',
+  'userSelect',
+  'userZoom',
+  'userZoom',
+  'verticalAlign',
+  'verticalAlign',
+  'visibility',
+  'visibility',
+  'whiteSpace',
+  'whiteSpace',
+  'widows',
+  'widows',
+  'width',
+  'width',
+  'willChange',
+  'willChange',
+  'wordBreak',
+  'wordBreak',
+  'wordSpacing',
+  'wordSpacing',
+  'wordWrap',
+  'wordWrap',
+  'wrapFlow',
+  'wrapFlow',
+  'wrapThrough',
+  'wrapThrough',
+  'writingMode',
+  'writingMode',
+  'zIndex',
+  'zIndex',
+  'zoom',
+  'zoom'
+]);
+html$.CssStyleDeclarationBase = class CssStyleDeclarationBase extends core.Object {
+  get alignContent() {
+    return this[dartx.getPropertyValue]('align-content');
+  }
+  set alignContent(value) {
+    this[dartx.setProperty]('align-content', value, '');
+  }
+  get alignItems() {
+    return this[dartx.getPropertyValue]('align-items');
+  }
+  set alignItems(value) {
+    this[dartx.setProperty]('align-items', value, '');
+  }
+  get alignSelf() {
+    return this[dartx.getPropertyValue]('align-self');
+  }
+  set alignSelf(value) {
+    this[dartx.setProperty]('align-self', value, '');
+  }
+  get animation() {
+    return this[dartx.getPropertyValue]('animation');
+  }
+  set animation(value) {
+    this[dartx.setProperty]('animation', value, '');
+  }
+  get animationDelay() {
+    return this[dartx.getPropertyValue]('animation-delay');
+  }
+  set animationDelay(value) {
+    this[dartx.setProperty]('animation-delay', value, '');
+  }
+  get animationDirection() {
+    return this[dartx.getPropertyValue]('animation-direction');
+  }
+  set animationDirection(value) {
+    this[dartx.setProperty]('animation-direction', value, '');
+  }
+  get animationDuration() {
+    return this[dartx.getPropertyValue]('animation-duration');
+  }
+  set animationDuration(value) {
+    this[dartx.setProperty]('animation-duration', value, '');
+  }
+  get animationFillMode() {
+    return this[dartx.getPropertyValue]('animation-fill-mode');
+  }
+  set animationFillMode(value) {
+    this[dartx.setProperty]('animation-fill-mode', value, '');
+  }
+  get animationIterationCount() {
+    return this[dartx.getPropertyValue]('animation-iteration-count');
+  }
+  set animationIterationCount(value) {
+    this[dartx.setProperty]('animation-iteration-count', value, '');
+  }
+  get animationName() {
+    return this[dartx.getPropertyValue]('animation-name');
+  }
+  set animationName(value) {
+    this[dartx.setProperty]('animation-name', value, '');
+  }
+  get animationPlayState() {
+    return this[dartx.getPropertyValue]('animation-play-state');
+  }
+  set animationPlayState(value) {
+    this[dartx.setProperty]('animation-play-state', value, '');
+  }
+  get animationTimingFunction() {
+    return this[dartx.getPropertyValue]('animation-timing-function');
+  }
+  set animationTimingFunction(value) {
+    this[dartx.setProperty]('animation-timing-function', value, '');
+  }
+  get appRegion() {
+    return this[dartx.getPropertyValue]('app-region');
+  }
+  set appRegion(value) {
+    this[dartx.setProperty]('app-region', value, '');
+  }
+  get appearance() {
+    return this[dartx.getPropertyValue]('appearance');
+  }
+  set appearance(value) {
+    this[dartx.setProperty]('appearance', value, '');
+  }
+  get aspectRatio() {
+    return this[dartx.getPropertyValue]('aspect-ratio');
+  }
+  set aspectRatio(value) {
+    this[dartx.setProperty]('aspect-ratio', value, '');
+  }
+  get backfaceVisibility() {
+    return this[dartx.getPropertyValue]('backface-visibility');
+  }
+  set backfaceVisibility(value) {
+    this[dartx.setProperty]('backface-visibility', value, '');
+  }
+  get background() {
+    return this[dartx.getPropertyValue]('background');
+  }
+  set background(value) {
+    this[dartx.setProperty]('background', value, '');
+  }
+  get backgroundAttachment() {
+    return this[dartx.getPropertyValue]('background-attachment');
+  }
+  set backgroundAttachment(value) {
+    this[dartx.setProperty]('background-attachment', value, '');
+  }
+  get backgroundBlendMode() {
+    return this[dartx.getPropertyValue]('background-blend-mode');
+  }
+  set backgroundBlendMode(value) {
+    this[dartx.setProperty]('background-blend-mode', value, '');
+  }
+  get backgroundClip() {
+    return this[dartx.getPropertyValue]('background-clip');
+  }
+  set backgroundClip(value) {
+    this[dartx.setProperty]('background-clip', value, '');
+  }
+  get backgroundColor() {
+    return this[dartx.getPropertyValue]('background-color');
+  }
+  set backgroundColor(value) {
+    this[dartx.setProperty]('background-color', value, '');
+  }
+  get backgroundComposite() {
+    return this[dartx.getPropertyValue]('background-composite');
+  }
+  set backgroundComposite(value) {
+    this[dartx.setProperty]('background-composite', value, '');
+  }
+  get backgroundImage() {
+    return this[dartx.getPropertyValue]('background-image');
+  }
+  set backgroundImage(value) {
+    this[dartx.setProperty]('background-image', value, '');
+  }
+  get backgroundOrigin() {
+    return this[dartx.getPropertyValue]('background-origin');
+  }
+  set backgroundOrigin(value) {
+    this[dartx.setProperty]('background-origin', value, '');
+  }
+  get backgroundPosition() {
+    return this[dartx.getPropertyValue]('background-position');
+  }
+  set backgroundPosition(value) {
+    this[dartx.setProperty]('background-position', value, '');
+  }
+  get backgroundPositionX() {
+    return this[dartx.getPropertyValue]('background-position-x');
+  }
+  set backgroundPositionX(value) {
+    this[dartx.setProperty]('background-position-x', value, '');
+  }
+  get backgroundPositionY() {
+    return this[dartx.getPropertyValue]('background-position-y');
+  }
+  set backgroundPositionY(value) {
+    this[dartx.setProperty]('background-position-y', value, '');
+  }
+  get backgroundRepeat() {
+    return this[dartx.getPropertyValue]('background-repeat');
+  }
+  set backgroundRepeat(value) {
+    this[dartx.setProperty]('background-repeat', value, '');
+  }
+  get backgroundRepeatX() {
+    return this[dartx.getPropertyValue]('background-repeat-x');
+  }
+  set backgroundRepeatX(value) {
+    this[dartx.setProperty]('background-repeat-x', value, '');
+  }
+  get backgroundRepeatY() {
+    return this[dartx.getPropertyValue]('background-repeat-y');
+  }
+  set backgroundRepeatY(value) {
+    this[dartx.setProperty]('background-repeat-y', value, '');
+  }
+  get backgroundSize() {
+    return this[dartx.getPropertyValue]('background-size');
+  }
+  set backgroundSize(value) {
+    this[dartx.setProperty]('background-size', value, '');
+  }
+  get border() {
+    return this[dartx.getPropertyValue]('border');
+  }
+  set border(value) {
+    this[dartx.setProperty]('border', value, '');
+  }
+  get borderAfter() {
+    return this[dartx.getPropertyValue]('border-after');
+  }
+  set borderAfter(value) {
+    this[dartx.setProperty]('border-after', value, '');
+  }
+  get borderAfterColor() {
+    return this[dartx.getPropertyValue]('border-after-color');
+  }
+  set borderAfterColor(value) {
+    this[dartx.setProperty]('border-after-color', value, '');
+  }
+  get borderAfterStyle() {
+    return this[dartx.getPropertyValue]('border-after-style');
+  }
+  set borderAfterStyle(value) {
+    this[dartx.setProperty]('border-after-style', value, '');
+  }
+  get borderAfterWidth() {
+    return this[dartx.getPropertyValue]('border-after-width');
+  }
+  set borderAfterWidth(value) {
+    this[dartx.setProperty]('border-after-width', value, '');
+  }
+  get borderBefore() {
+    return this[dartx.getPropertyValue]('border-before');
+  }
+  set borderBefore(value) {
+    this[dartx.setProperty]('border-before', value, '');
+  }
+  get borderBeforeColor() {
+    return this[dartx.getPropertyValue]('border-before-color');
+  }
+  set borderBeforeColor(value) {
+    this[dartx.setProperty]('border-before-color', value, '');
+  }
+  get borderBeforeStyle() {
+    return this[dartx.getPropertyValue]('border-before-style');
+  }
+  set borderBeforeStyle(value) {
+    this[dartx.setProperty]('border-before-style', value, '');
+  }
+  get borderBeforeWidth() {
+    return this[dartx.getPropertyValue]('border-before-width');
+  }
+  set borderBeforeWidth(value) {
+    this[dartx.setProperty]('border-before-width', value, '');
+  }
+  get borderBottom() {
+    return this[dartx.getPropertyValue]('border-bottom');
+  }
+  set borderBottom(value) {
+    this[dartx.setProperty]('border-bottom', value, '');
+  }
+  get borderBottomColor() {
+    return this[dartx.getPropertyValue]('border-bottom-color');
+  }
+  set borderBottomColor(value) {
+    this[dartx.setProperty]('border-bottom-color', value, '');
+  }
+  get borderBottomLeftRadius() {
+    return this[dartx.getPropertyValue]('border-bottom-left-radius');
+  }
+  set borderBottomLeftRadius(value) {
+    this[dartx.setProperty]('border-bottom-left-radius', value, '');
+  }
+  get borderBottomRightRadius() {
+    return this[dartx.getPropertyValue]('border-bottom-right-radius');
+  }
+  set borderBottomRightRadius(value) {
+    this[dartx.setProperty]('border-bottom-right-radius', value, '');
+  }
+  get borderBottomStyle() {
+    return this[dartx.getPropertyValue]('border-bottom-style');
+  }
+  set borderBottomStyle(value) {
+    this[dartx.setProperty]('border-bottom-style', value, '');
+  }
+  get borderBottomWidth() {
+    return this[dartx.getPropertyValue]('border-bottom-width');
+  }
+  set borderBottomWidth(value) {
+    this[dartx.setProperty]('border-bottom-width', value, '');
+  }
+  get borderCollapse() {
+    return this[dartx.getPropertyValue]('border-collapse');
+  }
+  set borderCollapse(value) {
+    this[dartx.setProperty]('border-collapse', value, '');
+  }
+  get borderColor() {
+    return this[dartx.getPropertyValue]('border-color');
+  }
+  set borderColor(value) {
+    this[dartx.setProperty]('border-color', value, '');
+  }
+  get borderEnd() {
+    return this[dartx.getPropertyValue]('border-end');
+  }
+  set borderEnd(value) {
+    this[dartx.setProperty]('border-end', value, '');
+  }
+  get borderEndColor() {
+    return this[dartx.getPropertyValue]('border-end-color');
+  }
+  set borderEndColor(value) {
+    this[dartx.setProperty]('border-end-color', value, '');
+  }
+  get borderEndStyle() {
+    return this[dartx.getPropertyValue]('border-end-style');
+  }
+  set borderEndStyle(value) {
+    this[dartx.setProperty]('border-end-style', value, '');
+  }
+  get borderEndWidth() {
+    return this[dartx.getPropertyValue]('border-end-width');
+  }
+  set borderEndWidth(value) {
+    this[dartx.setProperty]('border-end-width', value, '');
+  }
+  get borderFit() {
+    return this[dartx.getPropertyValue]('border-fit');
+  }
+  set borderFit(value) {
+    this[dartx.setProperty]('border-fit', value, '');
+  }
+  get borderHorizontalSpacing() {
+    return this[dartx.getPropertyValue]('border-horizontal-spacing');
+  }
+  set borderHorizontalSpacing(value) {
+    this[dartx.setProperty]('border-horizontal-spacing', value, '');
+  }
+  get borderImage() {
+    return this[dartx.getPropertyValue]('border-image');
+  }
+  set borderImage(value) {
+    this[dartx.setProperty]('border-image', value, '');
+  }
+  get borderImageOutset() {
+    return this[dartx.getPropertyValue]('border-image-outset');
+  }
+  set borderImageOutset(value) {
+    this[dartx.setProperty]('border-image-outset', value, '');
+  }
+  get borderImageRepeat() {
+    return this[dartx.getPropertyValue]('border-image-repeat');
+  }
+  set borderImageRepeat(value) {
+    this[dartx.setProperty]('border-image-repeat', value, '');
+  }
+  get borderImageSlice() {
+    return this[dartx.getPropertyValue]('border-image-slice');
+  }
+  set borderImageSlice(value) {
+    this[dartx.setProperty]('border-image-slice', value, '');
+  }
+  get borderImageSource() {
+    return this[dartx.getPropertyValue]('border-image-source');
+  }
+  set borderImageSource(value) {
+    this[dartx.setProperty]('border-image-source', value, '');
+  }
+  get borderImageWidth() {
+    return this[dartx.getPropertyValue]('border-image-width');
+  }
+  set borderImageWidth(value) {
+    this[dartx.setProperty]('border-image-width', value, '');
+  }
+  get borderLeft() {
+    return this[dartx.getPropertyValue]('border-left');
+  }
+  set borderLeft(value) {
+    this[dartx.setProperty]('border-left', value, '');
+  }
+  get borderLeftColor() {
+    return this[dartx.getPropertyValue]('border-left-color');
+  }
+  set borderLeftColor(value) {
+    this[dartx.setProperty]('border-left-color', value, '');
+  }
+  get borderLeftStyle() {
+    return this[dartx.getPropertyValue]('border-left-style');
+  }
+  set borderLeftStyle(value) {
+    this[dartx.setProperty]('border-left-style', value, '');
+  }
+  get borderLeftWidth() {
+    return this[dartx.getPropertyValue]('border-left-width');
+  }
+  set borderLeftWidth(value) {
+    this[dartx.setProperty]('border-left-width', value, '');
+  }
+  get borderRadius() {
+    return this[dartx.getPropertyValue]('border-radius');
+  }
+  set borderRadius(value) {
+    this[dartx.setProperty]('border-radius', value, '');
+  }
+  get borderRight() {
+    return this[dartx.getPropertyValue]('border-right');
+  }
+  set borderRight(value) {
+    this[dartx.setProperty]('border-right', value, '');
+  }
+  get borderRightColor() {
+    return this[dartx.getPropertyValue]('border-right-color');
+  }
+  set borderRightColor(value) {
+    this[dartx.setProperty]('border-right-color', value, '');
+  }
+  get borderRightStyle() {
+    return this[dartx.getPropertyValue]('border-right-style');
+  }
+  set borderRightStyle(value) {
+    this[dartx.setProperty]('border-right-style', value, '');
+  }
+  get borderRightWidth() {
+    return this[dartx.getPropertyValue]('border-right-width');
+  }
+  set borderRightWidth(value) {
+    this[dartx.setProperty]('border-right-width', value, '');
+  }
+  get borderSpacing() {
+    return this[dartx.getPropertyValue]('border-spacing');
+  }
+  set borderSpacing(value) {
+    this[dartx.setProperty]('border-spacing', value, '');
+  }
+  get borderStart() {
+    return this[dartx.getPropertyValue]('border-start');
+  }
+  set borderStart(value) {
+    this[dartx.setProperty]('border-start', value, '');
+  }
+  get borderStartColor() {
+    return this[dartx.getPropertyValue]('border-start-color');
+  }
+  set borderStartColor(value) {
+    this[dartx.setProperty]('border-start-color', value, '');
+  }
+  get borderStartStyle() {
+    return this[dartx.getPropertyValue]('border-start-style');
+  }
+  set borderStartStyle(value) {
+    this[dartx.setProperty]('border-start-style', value, '');
+  }
+  get borderStartWidth() {
+    return this[dartx.getPropertyValue]('border-start-width');
+  }
+  set borderStartWidth(value) {
+    this[dartx.setProperty]('border-start-width', value, '');
+  }
+  get borderStyle() {
+    return this[dartx.getPropertyValue]('border-style');
+  }
+  set borderStyle(value) {
+    this[dartx.setProperty]('border-style', value, '');
+  }
+  get borderTop() {
+    return this[dartx.getPropertyValue]('border-top');
+  }
+  set borderTop(value) {
+    this[dartx.setProperty]('border-top', value, '');
+  }
+  get borderTopColor() {
+    return this[dartx.getPropertyValue]('border-top-color');
+  }
+  set borderTopColor(value) {
+    this[dartx.setProperty]('border-top-color', value, '');
+  }
+  get borderTopLeftRadius() {
+    return this[dartx.getPropertyValue]('border-top-left-radius');
+  }
+  set borderTopLeftRadius(value) {
+    this[dartx.setProperty]('border-top-left-radius', value, '');
+  }
+  get borderTopRightRadius() {
+    return this[dartx.getPropertyValue]('border-top-right-radius');
+  }
+  set borderTopRightRadius(value) {
+    this[dartx.setProperty]('border-top-right-radius', value, '');
+  }
+  get borderTopStyle() {
+    return this[dartx.getPropertyValue]('border-top-style');
+  }
+  set borderTopStyle(value) {
+    this[dartx.setProperty]('border-top-style', value, '');
+  }
+  get borderTopWidth() {
+    return this[dartx.getPropertyValue]('border-top-width');
+  }
+  set borderTopWidth(value) {
+    this[dartx.setProperty]('border-top-width', value, '');
+  }
+  get borderVerticalSpacing() {
+    return this[dartx.getPropertyValue]('border-vertical-spacing');
+  }
+  set borderVerticalSpacing(value) {
+    this[dartx.setProperty]('border-vertical-spacing', value, '');
+  }
+  get borderWidth() {
+    return this[dartx.getPropertyValue]('border-width');
+  }
+  set borderWidth(value) {
+    this[dartx.setProperty]('border-width', value, '');
+  }
+  get bottom() {
+    return this[dartx.getPropertyValue]('bottom');
+  }
+  set bottom(value) {
+    this[dartx.setProperty]('bottom', value, '');
+  }
+  get boxAlign() {
+    return this[dartx.getPropertyValue]('box-align');
+  }
+  set boxAlign(value) {
+    this[dartx.setProperty]('box-align', value, '');
+  }
+  get boxDecorationBreak() {
+    return this[dartx.getPropertyValue]('box-decoration-break');
+  }
+  set boxDecorationBreak(value) {
+    this[dartx.setProperty]('box-decoration-break', value, '');
+  }
+  get boxDirection() {
+    return this[dartx.getPropertyValue]('box-direction');
+  }
+  set boxDirection(value) {
+    this[dartx.setProperty]('box-direction', value, '');
+  }
+  get boxFlex() {
+    return this[dartx.getPropertyValue]('box-flex');
+  }
+  set boxFlex(value) {
+    this[dartx.setProperty]('box-flex', value, '');
+  }
+  get boxFlexGroup() {
+    return this[dartx.getPropertyValue]('box-flex-group');
+  }
+  set boxFlexGroup(value) {
+    this[dartx.setProperty]('box-flex-group', value, '');
+  }
+  get boxLines() {
+    return this[dartx.getPropertyValue]('box-lines');
+  }
+  set boxLines(value) {
+    this[dartx.setProperty]('box-lines', value, '');
+  }
+  get boxOrdinalGroup() {
+    return this[dartx.getPropertyValue]('box-ordinal-group');
+  }
+  set boxOrdinalGroup(value) {
+    this[dartx.setProperty]('box-ordinal-group', value, '');
+  }
+  get boxOrient() {
+    return this[dartx.getPropertyValue]('box-orient');
+  }
+  set boxOrient(value) {
+    this[dartx.setProperty]('box-orient', value, '');
+  }
+  get boxPack() {
+    return this[dartx.getPropertyValue]('box-pack');
+  }
+  set boxPack(value) {
+    this[dartx.setProperty]('box-pack', value, '');
+  }
+  get boxReflect() {
+    return this[dartx.getPropertyValue]('box-reflect');
+  }
+  set boxReflect(value) {
+    this[dartx.setProperty]('box-reflect', value, '');
+  }
+  get boxShadow() {
+    return this[dartx.getPropertyValue]('box-shadow');
+  }
+  set boxShadow(value) {
+    this[dartx.setProperty]('box-shadow', value, '');
+  }
+  get boxSizing() {
+    return this[dartx.getPropertyValue]('box-sizing');
+  }
+  set boxSizing(value) {
+    this[dartx.setProperty]('box-sizing', value, '');
+  }
+  get captionSide() {
+    return this[dartx.getPropertyValue]('caption-side');
+  }
+  set captionSide(value) {
+    this[dartx.setProperty]('caption-side', value, '');
+  }
+  get clear() {
+    return this[dartx.getPropertyValue]('clear');
+  }
+  set clear(value) {
+    this[dartx.setProperty]('clear', value, '');
+  }
+  get clip() {
+    return this[dartx.getPropertyValue]('clip');
+  }
+  set clip(value) {
+    this[dartx.setProperty]('clip', value, '');
+  }
+  get clipPath() {
+    return this[dartx.getPropertyValue]('clip-path');
+  }
+  set clipPath(value) {
+    this[dartx.setProperty]('clip-path', value, '');
+  }
+  get color() {
+    return this[dartx.getPropertyValue]('color');
+  }
+  set color(value) {
+    this[dartx.setProperty]('color', value, '');
+  }
+  get columnBreakAfter() {
+    return this[dartx.getPropertyValue]('column-break-after');
+  }
+  set columnBreakAfter(value) {
+    this[dartx.setProperty]('column-break-after', value, '');
+  }
+  get columnBreakBefore() {
+    return this[dartx.getPropertyValue]('column-break-before');
+  }
+  set columnBreakBefore(value) {
+    this[dartx.setProperty]('column-break-before', value, '');
+  }
+  get columnBreakInside() {
+    return this[dartx.getPropertyValue]('column-break-inside');
+  }
+  set columnBreakInside(value) {
+    this[dartx.setProperty]('column-break-inside', value, '');
+  }
+  get columnCount() {
+    return this[dartx.getPropertyValue]('column-count');
+  }
+  set columnCount(value) {
+    this[dartx.setProperty]('column-count', value, '');
+  }
+  get columnFill() {
+    return this[dartx.getPropertyValue]('column-fill');
+  }
+  set columnFill(value) {
+    this[dartx.setProperty]('column-fill', value, '');
+  }
+  get columnGap() {
+    return this[dartx.getPropertyValue]('column-gap');
+  }
+  set columnGap(value) {
+    this[dartx.setProperty]('column-gap', value, '');
+  }
+  get columnRule() {
+    return this[dartx.getPropertyValue]('column-rule');
+  }
+  set columnRule(value) {
+    this[dartx.setProperty]('column-rule', value, '');
+  }
+  get columnRuleColor() {
+    return this[dartx.getPropertyValue]('column-rule-color');
+  }
+  set columnRuleColor(value) {
+    this[dartx.setProperty]('column-rule-color', value, '');
+  }
+  get columnRuleStyle() {
+    return this[dartx.getPropertyValue]('column-rule-style');
+  }
+  set columnRuleStyle(value) {
+    this[dartx.setProperty]('column-rule-style', value, '');
+  }
+  get columnRuleWidth() {
+    return this[dartx.getPropertyValue]('column-rule-width');
+  }
+  set columnRuleWidth(value) {
+    this[dartx.setProperty]('column-rule-width', value, '');
+  }
+  get columnSpan() {
+    return this[dartx.getPropertyValue]('column-span');
+  }
+  set columnSpan(value) {
+    this[dartx.setProperty]('column-span', value, '');
+  }
+  get columnWidth() {
+    return this[dartx.getPropertyValue]('column-width');
+  }
+  set columnWidth(value) {
+    this[dartx.setProperty]('column-width', value, '');
+  }
+  get columns() {
+    return this[dartx.getPropertyValue]('columns');
+  }
+  set columns(value) {
+    this[dartx.setProperty]('columns', value, '');
+  }
+  get content() {
+    return this[dartx.getPropertyValue]('content');
+  }
+  set content(value) {
+    this[dartx.setProperty]('content', value, '');
+  }
+  get counterIncrement() {
+    return this[dartx.getPropertyValue]('counter-increment');
+  }
+  set counterIncrement(value) {
+    this[dartx.setProperty]('counter-increment', value, '');
+  }
+  get counterReset() {
+    return this[dartx.getPropertyValue]('counter-reset');
+  }
+  set counterReset(value) {
+    this[dartx.setProperty]('counter-reset', value, '');
+  }
+  get cursor() {
+    return this[dartx.getPropertyValue]('cursor');
+  }
+  set cursor(value) {
+    this[dartx.setProperty]('cursor', value, '');
+  }
+  get direction() {
+    return this[dartx.getPropertyValue]('direction');
+  }
+  set direction(value) {
+    this[dartx.setProperty]('direction', value, '');
+  }
+  get display() {
+    return this[dartx.getPropertyValue]('display');
+  }
+  set display(value) {
+    this[dartx.setProperty]('display', value, '');
+  }
+  get emptyCells() {
+    return this[dartx.getPropertyValue]('empty-cells');
+  }
+  set emptyCells(value) {
+    this[dartx.setProperty]('empty-cells', value, '');
+  }
+  get filter() {
+    return this[dartx.getPropertyValue]('filter');
+  }
+  set filter(value) {
+    this[dartx.setProperty]('filter', value, '');
+  }
+  get flex() {
+    return this[dartx.getPropertyValue]('flex');
+  }
+  set flex(value) {
+    this[dartx.setProperty]('flex', value, '');
+  }
+  get flexBasis() {
+    return this[dartx.getPropertyValue]('flex-basis');
+  }
+  set flexBasis(value) {
+    this[dartx.setProperty]('flex-basis', value, '');
+  }
+  get flexDirection() {
+    return this[dartx.getPropertyValue]('flex-direction');
+  }
+  set flexDirection(value) {
+    this[dartx.setProperty]('flex-direction', value, '');
+  }
+  get flexFlow() {
+    return this[dartx.getPropertyValue]('flex-flow');
+  }
+  set flexFlow(value) {
+    this[dartx.setProperty]('flex-flow', value, '');
+  }
+  get flexGrow() {
+    return this[dartx.getPropertyValue]('flex-grow');
+  }
+  set flexGrow(value) {
+    this[dartx.setProperty]('flex-grow', value, '');
+  }
+  get flexShrink() {
+    return this[dartx.getPropertyValue]('flex-shrink');
+  }
+  set flexShrink(value) {
+    this[dartx.setProperty]('flex-shrink', value, '');
+  }
+  get flexWrap() {
+    return this[dartx.getPropertyValue]('flex-wrap');
+  }
+  set flexWrap(value) {
+    this[dartx.setProperty]('flex-wrap', value, '');
+  }
+  get float() {
+    return this[dartx.getPropertyValue]('float');
+  }
+  set float(value) {
+    this[dartx.setProperty]('float', value, '');
+  }
+  get font() {
+    return this[dartx.getPropertyValue]('font');
+  }
+  set font(value) {
+    this[dartx.setProperty]('font', value, '');
+  }
+  get fontFamily() {
+    return this[dartx.getPropertyValue]('font-family');
+  }
+  set fontFamily(value) {
+    this[dartx.setProperty]('font-family', value, '');
+  }
+  get fontFeatureSettings() {
+    return this[dartx.getPropertyValue]('font-feature-settings');
+  }
+  set fontFeatureSettings(value) {
+    this[dartx.setProperty]('font-feature-settings', value, '');
+  }
+  get fontKerning() {
+    return this[dartx.getPropertyValue]('font-kerning');
+  }
+  set fontKerning(value) {
+    this[dartx.setProperty]('font-kerning', value, '');
+  }
+  get fontSize() {
+    return this[dartx.getPropertyValue]('font-size');
+  }
+  set fontSize(value) {
+    this[dartx.setProperty]('font-size', value, '');
+  }
+  get fontSizeDelta() {
+    return this[dartx.getPropertyValue]('font-size-delta');
+  }
+  set fontSizeDelta(value) {
+    this[dartx.setProperty]('font-size-delta', value, '');
+  }
+  get fontSmoothing() {
+    return this[dartx.getPropertyValue]('font-smoothing');
+  }
+  set fontSmoothing(value) {
+    this[dartx.setProperty]('font-smoothing', value, '');
+  }
+  get fontStretch() {
+    return this[dartx.getPropertyValue]('font-stretch');
+  }
+  set fontStretch(value) {
+    this[dartx.setProperty]('font-stretch', value, '');
+  }
+  get fontStyle() {
+    return this[dartx.getPropertyValue]('font-style');
+  }
+  set fontStyle(value) {
+    this[dartx.setProperty]('font-style', value, '');
+  }
+  get fontVariant() {
+    return this[dartx.getPropertyValue]('font-variant');
+  }
+  set fontVariant(value) {
+    this[dartx.setProperty]('font-variant', value, '');
+  }
+  get fontVariantLigatures() {
+    return this[dartx.getPropertyValue]('font-variant-ligatures');
+  }
+  set fontVariantLigatures(value) {
+    this[dartx.setProperty]('font-variant-ligatures', value, '');
+  }
+  get fontWeight() {
+    return this[dartx.getPropertyValue]('font-weight');
+  }
+  set fontWeight(value) {
+    this[dartx.setProperty]('font-weight', value, '');
+  }
+  get grid() {
+    return this[dartx.getPropertyValue]('grid');
+  }
+  set grid(value) {
+    this[dartx.setProperty]('grid', value, '');
+  }
+  get gridArea() {
+    return this[dartx.getPropertyValue]('grid-area');
+  }
+  set gridArea(value) {
+    this[dartx.setProperty]('grid-area', value, '');
+  }
+  get gridAutoColumns() {
+    return this[dartx.getPropertyValue]('grid-auto-columns');
+  }
+  set gridAutoColumns(value) {
+    this[dartx.setProperty]('grid-auto-columns', value, '');
+  }
+  get gridAutoFlow() {
+    return this[dartx.getPropertyValue]('grid-auto-flow');
+  }
+  set gridAutoFlow(value) {
+    this[dartx.setProperty]('grid-auto-flow', value, '');
+  }
+  get gridAutoRows() {
+    return this[dartx.getPropertyValue]('grid-auto-rows');
+  }
+  set gridAutoRows(value) {
+    this[dartx.setProperty]('grid-auto-rows', value, '');
+  }
+  get gridColumn() {
+    return this[dartx.getPropertyValue]('grid-column');
+  }
+  set gridColumn(value) {
+    this[dartx.setProperty]('grid-column', value, '');
+  }
+  get gridColumnEnd() {
+    return this[dartx.getPropertyValue]('grid-column-end');
+  }
+  set gridColumnEnd(value) {
+    this[dartx.setProperty]('grid-column-end', value, '');
+  }
+  get gridColumnStart() {
+    return this[dartx.getPropertyValue]('grid-column-start');
+  }
+  set gridColumnStart(value) {
+    this[dartx.setProperty]('grid-column-start', value, '');
+  }
+  get gridRow() {
+    return this[dartx.getPropertyValue]('grid-row');
+  }
+  set gridRow(value) {
+    this[dartx.setProperty]('grid-row', value, '');
+  }
+  get gridRowEnd() {
+    return this[dartx.getPropertyValue]('grid-row-end');
+  }
+  set gridRowEnd(value) {
+    this[dartx.setProperty]('grid-row-end', value, '');
+  }
+  get gridRowStart() {
+    return this[dartx.getPropertyValue]('grid-row-start');
+  }
+  set gridRowStart(value) {
+    this[dartx.setProperty]('grid-row-start', value, '');
+  }
+  get gridTemplate() {
+    return this[dartx.getPropertyValue]('grid-template');
+  }
+  set gridTemplate(value) {
+    this[dartx.setProperty]('grid-template', value, '');
+  }
+  get gridTemplateAreas() {
+    return this[dartx.getPropertyValue]('grid-template-areas');
+  }
+  set gridTemplateAreas(value) {
+    this[dartx.setProperty]('grid-template-areas', value, '');
+  }
+  get gridTemplateColumns() {
+    return this[dartx.getPropertyValue]('grid-template-columns');
+  }
+  set gridTemplateColumns(value) {
+    this[dartx.setProperty]('grid-template-columns', value, '');
+  }
+  get gridTemplateRows() {
+    return this[dartx.getPropertyValue]('grid-template-rows');
+  }
+  set gridTemplateRows(value) {
+    this[dartx.setProperty]('grid-template-rows', value, '');
+  }
+  get height() {
+    return this[dartx.getPropertyValue]('height');
+  }
+  set height(value) {
+    this[dartx.setProperty]('height', value, '');
+  }
+  get highlight() {
+    return this[dartx.getPropertyValue]('highlight');
+  }
+  set highlight(value) {
+    this[dartx.setProperty]('highlight', value, '');
+  }
+  get hyphenateCharacter() {
+    return this[dartx.getPropertyValue]('hyphenate-character');
+  }
+  set hyphenateCharacter(value) {
+    this[dartx.setProperty]('hyphenate-character', value, '');
+  }
+  get imageRendering() {
+    return this[dartx.getPropertyValue]('image-rendering');
+  }
+  set imageRendering(value) {
+    this[dartx.setProperty]('image-rendering', value, '');
+  }
+  get isolation() {
+    return this[dartx.getPropertyValue]('isolation');
+  }
+  set isolation(value) {
+    this[dartx.setProperty]('isolation', value, '');
+  }
+  get justifyContent() {
+    return this[dartx.getPropertyValue]('justify-content');
+  }
+  set justifyContent(value) {
+    this[dartx.setProperty]('justify-content', value, '');
+  }
+  get justifySelf() {
+    return this[dartx.getPropertyValue]('justify-self');
+  }
+  set justifySelf(value) {
+    this[dartx.setProperty]('justify-self', value, '');
+  }
+  get left() {
+    return this[dartx.getPropertyValue]('left');
+  }
+  set left(value) {
+    this[dartx.setProperty]('left', value, '');
+  }
+  get letterSpacing() {
+    return this[dartx.getPropertyValue]('letter-spacing');
+  }
+  set letterSpacing(value) {
+    this[dartx.setProperty]('letter-spacing', value, '');
+  }
+  get lineBoxContain() {
+    return this[dartx.getPropertyValue]('line-box-contain');
+  }
+  set lineBoxContain(value) {
+    this[dartx.setProperty]('line-box-contain', value, '');
+  }
+  get lineBreak() {
+    return this[dartx.getPropertyValue]('line-break');
+  }
+  set lineBreak(value) {
+    this[dartx.setProperty]('line-break', value, '');
+  }
+  get lineClamp() {
+    return this[dartx.getPropertyValue]('line-clamp');
+  }
+  set lineClamp(value) {
+    this[dartx.setProperty]('line-clamp', value, '');
+  }
+  get lineHeight() {
+    return this[dartx.getPropertyValue]('line-height');
+  }
+  set lineHeight(value) {
+    this[dartx.setProperty]('line-height', value, '');
+  }
+  get listStyle() {
+    return this[dartx.getPropertyValue]('list-style');
+  }
+  set listStyle(value) {
+    this[dartx.setProperty]('list-style', value, '');
+  }
+  get listStyleImage() {
+    return this[dartx.getPropertyValue]('list-style-image');
+  }
+  set listStyleImage(value) {
+    this[dartx.setProperty]('list-style-image', value, '');
+  }
+  get listStylePosition() {
+    return this[dartx.getPropertyValue]('list-style-position');
+  }
+  set listStylePosition(value) {
+    this[dartx.setProperty]('list-style-position', value, '');
+  }
+  get listStyleType() {
+    return this[dartx.getPropertyValue]('list-style-type');
+  }
+  set listStyleType(value) {
+    this[dartx.setProperty]('list-style-type', value, '');
+  }
+  get locale() {
+    return this[dartx.getPropertyValue]('locale');
+  }
+  set locale(value) {
+    this[dartx.setProperty]('locale', value, '');
+  }
+  get logicalHeight() {
+    return this[dartx.getPropertyValue]('logical-height');
+  }
+  set logicalHeight(value) {
+    this[dartx.setProperty]('logical-height', value, '');
+  }
+  get logicalWidth() {
+    return this[dartx.getPropertyValue]('logical-width');
+  }
+  set logicalWidth(value) {
+    this[dartx.setProperty]('logical-width', value, '');
+  }
+  get margin() {
+    return this[dartx.getPropertyValue]('margin');
+  }
+  set margin(value) {
+    this[dartx.setProperty]('margin', value, '');
+  }
+  get marginAfter() {
+    return this[dartx.getPropertyValue]('margin-after');
+  }
+  set marginAfter(value) {
+    this[dartx.setProperty]('margin-after', value, '');
+  }
+  get marginAfterCollapse() {
+    return this[dartx.getPropertyValue]('margin-after-collapse');
+  }
+  set marginAfterCollapse(value) {
+    this[dartx.setProperty]('margin-after-collapse', value, '');
+  }
+  get marginBefore() {
+    return this[dartx.getPropertyValue]('margin-before');
+  }
+  set marginBefore(value) {
+    this[dartx.setProperty]('margin-before', value, '');
+  }
+  get marginBeforeCollapse() {
+    return this[dartx.getPropertyValue]('margin-before-collapse');
+  }
+  set marginBeforeCollapse(value) {
+    this[dartx.setProperty]('margin-before-collapse', value, '');
+  }
+  get marginBottom() {
+    return this[dartx.getPropertyValue]('margin-bottom');
+  }
+  set marginBottom(value) {
+    this[dartx.setProperty]('margin-bottom', value, '');
+  }
+  get marginBottomCollapse() {
+    return this[dartx.getPropertyValue]('margin-bottom-collapse');
+  }
+  set marginBottomCollapse(value) {
+    this[dartx.setProperty]('margin-bottom-collapse', value, '');
+  }
+  get marginCollapse() {
+    return this[dartx.getPropertyValue]('margin-collapse');
+  }
+  set marginCollapse(value) {
+    this[dartx.setProperty]('margin-collapse', value, '');
+  }
+  get marginEnd() {
+    return this[dartx.getPropertyValue]('margin-end');
+  }
+  set marginEnd(value) {
+    this[dartx.setProperty]('margin-end', value, '');
+  }
+  get marginLeft() {
+    return this[dartx.getPropertyValue]('margin-left');
+  }
+  set marginLeft(value) {
+    this[dartx.setProperty]('margin-left', value, '');
+  }
+  get marginRight() {
+    return this[dartx.getPropertyValue]('margin-right');
+  }
+  set marginRight(value) {
+    this[dartx.setProperty]('margin-right', value, '');
+  }
+  get marginStart() {
+    return this[dartx.getPropertyValue]('margin-start');
+  }
+  set marginStart(value) {
+    this[dartx.setProperty]('margin-start', value, '');
+  }
+  get marginTop() {
+    return this[dartx.getPropertyValue]('margin-top');
+  }
+  set marginTop(value) {
+    this[dartx.setProperty]('margin-top', value, '');
+  }
+  get marginTopCollapse() {
+    return this[dartx.getPropertyValue]('margin-top-collapse');
+  }
+  set marginTopCollapse(value) {
+    this[dartx.setProperty]('margin-top-collapse', value, '');
+  }
+  get mask() {
+    return this[dartx.getPropertyValue]('mask');
+  }
+  set mask(value) {
+    this[dartx.setProperty]('mask', value, '');
+  }
+  get maskBoxImage() {
+    return this[dartx.getPropertyValue]('mask-box-image');
+  }
+  set maskBoxImage(value) {
+    this[dartx.setProperty]('mask-box-image', value, '');
+  }
+  get maskBoxImageOutset() {
+    return this[dartx.getPropertyValue]('mask-box-image-outset');
+  }
+  set maskBoxImageOutset(value) {
+    this[dartx.setProperty]('mask-box-image-outset', value, '');
+  }
+  get maskBoxImageRepeat() {
+    return this[dartx.getPropertyValue]('mask-box-image-repeat');
+  }
+  set maskBoxImageRepeat(value) {
+    this[dartx.setProperty]('mask-box-image-repeat', value, '');
+  }
+  get maskBoxImageSlice() {
+    return this[dartx.getPropertyValue]('mask-box-image-slice');
+  }
+  set maskBoxImageSlice(value) {
+    this[dartx.setProperty]('mask-box-image-slice', value, '');
+  }
+  get maskBoxImageSource() {
+    return this[dartx.getPropertyValue]('mask-box-image-source');
+  }
+  set maskBoxImageSource(value) {
+    this[dartx.setProperty]('mask-box-image-source', value, '');
+  }
+  get maskBoxImageWidth() {
+    return this[dartx.getPropertyValue]('mask-box-image-width');
+  }
+  set maskBoxImageWidth(value) {
+    this[dartx.setProperty]('mask-box-image-width', value, '');
+  }
+  get maskClip() {
+    return this[dartx.getPropertyValue]('mask-clip');
+  }
+  set maskClip(value) {
+    this[dartx.setProperty]('mask-clip', value, '');
+  }
+  get maskComposite() {
+    return this[dartx.getPropertyValue]('mask-composite');
+  }
+  set maskComposite(value) {
+    this[dartx.setProperty]('mask-composite', value, '');
+  }
+  get maskImage() {
+    return this[dartx.getPropertyValue]('mask-image');
+  }
+  set maskImage(value) {
+    this[dartx.setProperty]('mask-image', value, '');
+  }
+  get maskOrigin() {
+    return this[dartx.getPropertyValue]('mask-origin');
+  }
+  set maskOrigin(value) {
+    this[dartx.setProperty]('mask-origin', value, '');
+  }
+  get maskPosition() {
+    return this[dartx.getPropertyValue]('mask-position');
+  }
+  set maskPosition(value) {
+    this[dartx.setProperty]('mask-position', value, '');
+  }
+  get maskPositionX() {
+    return this[dartx.getPropertyValue]('mask-position-x');
+  }
+  set maskPositionX(value) {
+    this[dartx.setProperty]('mask-position-x', value, '');
+  }
+  get maskPositionY() {
+    return this[dartx.getPropertyValue]('mask-position-y');
+  }
+  set maskPositionY(value) {
+    this[dartx.setProperty]('mask-position-y', value, '');
+  }
+  get maskRepeat() {
+    return this[dartx.getPropertyValue]('mask-repeat');
+  }
+  set maskRepeat(value) {
+    this[dartx.setProperty]('mask-repeat', value, '');
+  }
+  get maskRepeatX() {
+    return this[dartx.getPropertyValue]('mask-repeat-x');
+  }
+  set maskRepeatX(value) {
+    this[dartx.setProperty]('mask-repeat-x', value, '');
+  }
+  get maskRepeatY() {
+    return this[dartx.getPropertyValue]('mask-repeat-y');
+  }
+  set maskRepeatY(value) {
+    this[dartx.setProperty]('mask-repeat-y', value, '');
+  }
+  get maskSize() {
+    return this[dartx.getPropertyValue]('mask-size');
+  }
+  set maskSize(value) {
+    this[dartx.setProperty]('mask-size', value, '');
+  }
+  get maskSourceType() {
+    return this[dartx.getPropertyValue]('mask-source-type');
+  }
+  set maskSourceType(value) {
+    this[dartx.setProperty]('mask-source-type', value, '');
+  }
+  get maxHeight() {
+    return this[dartx.getPropertyValue]('max-height');
+  }
+  set maxHeight(value) {
+    this[dartx.setProperty]('max-height', value, '');
+  }
+  get maxLogicalHeight() {
+    return this[dartx.getPropertyValue]('max-logical-height');
+  }
+  set maxLogicalHeight(value) {
+    this[dartx.setProperty]('max-logical-height', value, '');
+  }
+  get maxLogicalWidth() {
+    return this[dartx.getPropertyValue]('max-logical-width');
+  }
+  set maxLogicalWidth(value) {
+    this[dartx.setProperty]('max-logical-width', value, '');
+  }
+  get maxWidth() {
+    return this[dartx.getPropertyValue]('max-width');
+  }
+  set maxWidth(value) {
+    this[dartx.setProperty]('max-width', value, '');
+  }
+  get maxZoom() {
+    return this[dartx.getPropertyValue]('max-zoom');
+  }
+  set maxZoom(value) {
+    this[dartx.setProperty]('max-zoom', value, '');
+  }
+  get minHeight() {
+    return this[dartx.getPropertyValue]('min-height');
+  }
+  set minHeight(value) {
+    this[dartx.setProperty]('min-height', value, '');
+  }
+  get minLogicalHeight() {
+    return this[dartx.getPropertyValue]('min-logical-height');
+  }
+  set minLogicalHeight(value) {
+    this[dartx.setProperty]('min-logical-height', value, '');
+  }
+  get minLogicalWidth() {
+    return this[dartx.getPropertyValue]('min-logical-width');
+  }
+  set minLogicalWidth(value) {
+    this[dartx.setProperty]('min-logical-width', value, '');
+  }
+  get minWidth() {
+    return this[dartx.getPropertyValue]('min-width');
+  }
+  set minWidth(value) {
+    this[dartx.setProperty]('min-width', value, '');
+  }
+  get minZoom() {
+    return this[dartx.getPropertyValue]('min-zoom');
+  }
+  set minZoom(value) {
+    this[dartx.setProperty]('min-zoom', value, '');
+  }
+  get mixBlendMode() {
+    return this[dartx.getPropertyValue]('mix-blend-mode');
+  }
+  set mixBlendMode(value) {
+    this[dartx.setProperty]('mix-blend-mode', value, '');
+  }
+  get objectFit() {
+    return this[dartx.getPropertyValue]('object-fit');
+  }
+  set objectFit(value) {
+    this[dartx.setProperty]('object-fit', value, '');
+  }
+  get objectPosition() {
+    return this[dartx.getPropertyValue]('object-position');
+  }
+  set objectPosition(value) {
+    this[dartx.setProperty]('object-position', value, '');
+  }
+  get opacity() {
+    return this[dartx.getPropertyValue]('opacity');
+  }
+  set opacity(value) {
+    this[dartx.setProperty]('opacity', value, '');
+  }
+  get order() {
+    return this[dartx.getPropertyValue]('order');
+  }
+  set order(value) {
+    this[dartx.setProperty]('order', value, '');
+  }
+  get orientation() {
+    return this[dartx.getPropertyValue]('orientation');
+  }
+  set orientation(value) {
+    this[dartx.setProperty]('orientation', value, '');
+  }
+  get orphans() {
+    return this[dartx.getPropertyValue]('orphans');
+  }
+  set orphans(value) {
+    this[dartx.setProperty]('orphans', value, '');
+  }
+  get outline() {
+    return this[dartx.getPropertyValue]('outline');
+  }
+  set outline(value) {
+    this[dartx.setProperty]('outline', value, '');
+  }
+  get outlineColor() {
+    return this[dartx.getPropertyValue]('outline-color');
+  }
+  set outlineColor(value) {
+    this[dartx.setProperty]('outline-color', value, '');
+  }
+  get outlineOffset() {
+    return this[dartx.getPropertyValue]('outline-offset');
+  }
+  set outlineOffset(value) {
+    this[dartx.setProperty]('outline-offset', value, '');
+  }
+  get outlineStyle() {
+    return this[dartx.getPropertyValue]('outline-style');
+  }
+  set outlineStyle(value) {
+    this[dartx.setProperty]('outline-style', value, '');
+  }
+  get outlineWidth() {
+    return this[dartx.getPropertyValue]('outline-width');
+  }
+  set outlineWidth(value) {
+    this[dartx.setProperty]('outline-width', value, '');
+  }
+  get overflow() {
+    return this[dartx.getPropertyValue]('overflow');
+  }
+  set overflow(value) {
+    this[dartx.setProperty]('overflow', value, '');
+  }
+  get overflowWrap() {
+    return this[dartx.getPropertyValue]('overflow-wrap');
+  }
+  set overflowWrap(value) {
+    this[dartx.setProperty]('overflow-wrap', value, '');
+  }
+  get overflowX() {
+    return this[dartx.getPropertyValue]('overflow-x');
+  }
+  set overflowX(value) {
+    this[dartx.setProperty]('overflow-x', value, '');
+  }
+  get overflowY() {
+    return this[dartx.getPropertyValue]('overflow-y');
+  }
+  set overflowY(value) {
+    this[dartx.setProperty]('overflow-y', value, '');
+  }
+  get padding() {
+    return this[dartx.getPropertyValue]('padding');
+  }
+  set padding(value) {
+    this[dartx.setProperty]('padding', value, '');
+  }
+  get paddingAfter() {
+    return this[dartx.getPropertyValue]('padding-after');
+  }
+  set paddingAfter(value) {
+    this[dartx.setProperty]('padding-after', value, '');
+  }
+  get paddingBefore() {
+    return this[dartx.getPropertyValue]('padding-before');
+  }
+  set paddingBefore(value) {
+    this[dartx.setProperty]('padding-before', value, '');
+  }
+  get paddingBottom() {
+    return this[dartx.getPropertyValue]('padding-bottom');
+  }
+  set paddingBottom(value) {
+    this[dartx.setProperty]('padding-bottom', value, '');
+  }
+  get paddingEnd() {
+    return this[dartx.getPropertyValue]('padding-end');
+  }
+  set paddingEnd(value) {
+    this[dartx.setProperty]('padding-end', value, '');
+  }
+  get paddingLeft() {
+    return this[dartx.getPropertyValue]('padding-left');
+  }
+  set paddingLeft(value) {
+    this[dartx.setProperty]('padding-left', value, '');
+  }
+  get paddingRight() {
+    return this[dartx.getPropertyValue]('padding-right');
+  }
+  set paddingRight(value) {
+    this[dartx.setProperty]('padding-right', value, '');
+  }
+  get paddingStart() {
+    return this[dartx.getPropertyValue]('padding-start');
+  }
+  set paddingStart(value) {
+    this[dartx.setProperty]('padding-start', value, '');
+  }
+  get paddingTop() {
+    return this[dartx.getPropertyValue]('padding-top');
+  }
+  set paddingTop(value) {
+    this[dartx.setProperty]('padding-top', value, '');
+  }
+  get page() {
+    return this[dartx.getPropertyValue]('page');
+  }
+  set page(value) {
+    this[dartx.setProperty]('page', value, '');
+  }
+  get pageBreakAfter() {
+    return this[dartx.getPropertyValue]('page-break-after');
+  }
+  set pageBreakAfter(value) {
+    this[dartx.setProperty]('page-break-after', value, '');
+  }
+  get pageBreakBefore() {
+    return this[dartx.getPropertyValue]('page-break-before');
+  }
+  set pageBreakBefore(value) {
+    this[dartx.setProperty]('page-break-before', value, '');
+  }
+  get pageBreakInside() {
+    return this[dartx.getPropertyValue]('page-break-inside');
+  }
+  set pageBreakInside(value) {
+    this[dartx.setProperty]('page-break-inside', value, '');
+  }
+  get perspective() {
+    return this[dartx.getPropertyValue]('perspective');
+  }
+  set perspective(value) {
+    this[dartx.setProperty]('perspective', value, '');
+  }
+  get perspectiveOrigin() {
+    return this[dartx.getPropertyValue]('perspective-origin');
+  }
+  set perspectiveOrigin(value) {
+    this[dartx.setProperty]('perspective-origin', value, '');
+  }
+  get perspectiveOriginX() {
+    return this[dartx.getPropertyValue]('perspective-origin-x');
+  }
+  set perspectiveOriginX(value) {
+    this[dartx.setProperty]('perspective-origin-x', value, '');
+  }
+  get perspectiveOriginY() {
+    return this[dartx.getPropertyValue]('perspective-origin-y');
+  }
+  set perspectiveOriginY(value) {
+    this[dartx.setProperty]('perspective-origin-y', value, '');
+  }
+  get pointerEvents() {
+    return this[dartx.getPropertyValue]('pointer-events');
+  }
+  set pointerEvents(value) {
+    this[dartx.setProperty]('pointer-events', value, '');
+  }
+  get position() {
+    return this[dartx.getPropertyValue]('position');
+  }
+  set position(value) {
+    this[dartx.setProperty]('position', value, '');
+  }
+  get printColorAdjust() {
+    return this[dartx.getPropertyValue]('print-color-adjust');
+  }
+  set printColorAdjust(value) {
+    this[dartx.setProperty]('print-color-adjust', value, '');
+  }
+  get quotes() {
+    return this[dartx.getPropertyValue]('quotes');
+  }
+  set quotes(value) {
+    this[dartx.setProperty]('quotes', value, '');
+  }
+  get resize() {
+    return this[dartx.getPropertyValue]('resize');
+  }
+  set resize(value) {
+    this[dartx.setProperty]('resize', value, '');
+  }
+  get right() {
+    return this[dartx.getPropertyValue]('right');
+  }
+  set right(value) {
+    this[dartx.setProperty]('right', value, '');
+  }
+  get rtlOrdering() {
+    return this[dartx.getPropertyValue]('rtl-ordering');
+  }
+  set rtlOrdering(value) {
+    this[dartx.setProperty]('rtl-ordering', value, '');
+  }
+  get rubyPosition() {
+    return this[dartx.getPropertyValue]('ruby-position');
+  }
+  set rubyPosition(value) {
+    this[dartx.setProperty]('ruby-position', value, '');
+  }
+  get scrollBehavior() {
+    return this[dartx.getPropertyValue]('scroll-behavior');
+  }
+  set scrollBehavior(value) {
+    this[dartx.setProperty]('scroll-behavior', value, '');
+  }
+  get shapeImageThreshold() {
+    return this[dartx.getPropertyValue]('shape-image-threshold');
+  }
+  set shapeImageThreshold(value) {
+    this[dartx.setProperty]('shape-image-threshold', value, '');
+  }
+  get shapeMargin() {
+    return this[dartx.getPropertyValue]('shape-margin');
+  }
+  set shapeMargin(value) {
+    this[dartx.setProperty]('shape-margin', value, '');
+  }
+  get shapeOutside() {
+    return this[dartx.getPropertyValue]('shape-outside');
+  }
+  set shapeOutside(value) {
+    this[dartx.setProperty]('shape-outside', value, '');
+  }
+  get size() {
+    return this[dartx.getPropertyValue]('size');
+  }
+  set size(value) {
+    this[dartx.setProperty]('size', value, '');
+  }
+  get speak() {
+    return this[dartx.getPropertyValue]('speak');
+  }
+  set speak(value) {
+    this[dartx.setProperty]('speak', value, '');
+  }
+  get src() {
+    return this[dartx.getPropertyValue]('src');
+  }
+  set src(value) {
+    this[dartx.setProperty]('src', value, '');
+  }
+  get tabSize() {
+    return this[dartx.getPropertyValue]('tab-size');
+  }
+  set tabSize(value) {
+    this[dartx.setProperty]('tab-size', value, '');
+  }
+  get tableLayout() {
+    return this[dartx.getPropertyValue]('table-layout');
+  }
+  set tableLayout(value) {
+    this[dartx.setProperty]('table-layout', value, '');
+  }
+  get tapHighlightColor() {
+    return this[dartx.getPropertyValue]('tap-highlight-color');
+  }
+  set tapHighlightColor(value) {
+    this[dartx.setProperty]('tap-highlight-color', value, '');
+  }
+  get textAlign() {
+    return this[dartx.getPropertyValue]('text-align');
+  }
+  set textAlign(value) {
+    this[dartx.setProperty]('text-align', value, '');
+  }
+  get textAlignLast() {
+    return this[dartx.getPropertyValue]('text-align-last');
+  }
+  set textAlignLast(value) {
+    this[dartx.setProperty]('text-align-last', value, '');
+  }
+  get textCombine() {
+    return this[dartx.getPropertyValue]('text-combine');
+  }
+  set textCombine(value) {
+    this[dartx.setProperty]('text-combine', value, '');
+  }
+  get textDecoration() {
+    return this[dartx.getPropertyValue]('text-decoration');
+  }
+  set textDecoration(value) {
+    this[dartx.setProperty]('text-decoration', value, '');
+  }
+  get textDecorationColor() {
+    return this[dartx.getPropertyValue]('text-decoration-color');
+  }
+  set textDecorationColor(value) {
+    this[dartx.setProperty]('text-decoration-color', value, '');
+  }
+  get textDecorationLine() {
+    return this[dartx.getPropertyValue]('text-decoration-line');
+  }
+  set textDecorationLine(value) {
+    this[dartx.setProperty]('text-decoration-line', value, '');
+  }
+  get textDecorationStyle() {
+    return this[dartx.getPropertyValue]('text-decoration-style');
+  }
+  set textDecorationStyle(value) {
+    this[dartx.setProperty]('text-decoration-style', value, '');
+  }
+  get textDecorationsInEffect() {
+    return this[dartx.getPropertyValue]('text-decorations-in-effect');
+  }
+  set textDecorationsInEffect(value) {
+    this[dartx.setProperty]('text-decorations-in-effect', value, '');
+  }
+  get textEmphasis() {
+    return this[dartx.getPropertyValue]('text-emphasis');
+  }
+  set textEmphasis(value) {
+    this[dartx.setProperty]('text-emphasis', value, '');
+  }
+  get textEmphasisColor() {
+    return this[dartx.getPropertyValue]('text-emphasis-color');
+  }
+  set textEmphasisColor(value) {
+    this[dartx.setProperty]('text-emphasis-color', value, '');
+  }
+  get textEmphasisPosition() {
+    return this[dartx.getPropertyValue]('text-emphasis-position');
+  }
+  set textEmphasisPosition(value) {
+    this[dartx.setProperty]('text-emphasis-position', value, '');
+  }
+  get textEmphasisStyle() {
+    return this[dartx.getPropertyValue]('text-emphasis-style');
+  }
+  set textEmphasisStyle(value) {
+    this[dartx.setProperty]('text-emphasis-style', value, '');
+  }
+  get textFillColor() {
+    return this[dartx.getPropertyValue]('text-fill-color');
+  }
+  set textFillColor(value) {
+    this[dartx.setProperty]('text-fill-color', value, '');
+  }
+  get textIndent() {
+    return this[dartx.getPropertyValue]('text-indent');
+  }
+  set textIndent(value) {
+    this[dartx.setProperty]('text-indent', value, '');
+  }
+  get textJustify() {
+    return this[dartx.getPropertyValue]('text-justify');
+  }
+  set textJustify(value) {
+    this[dartx.setProperty]('text-justify', value, '');
+  }
+  get textLineThroughColor() {
+    return this[dartx.getPropertyValue]('text-line-through-color');
+  }
+  set textLineThroughColor(value) {
+    this[dartx.setProperty]('text-line-through-color', value, '');
+  }
+  get textLineThroughMode() {
+    return this[dartx.getPropertyValue]('text-line-through-mode');
+  }
+  set textLineThroughMode(value) {
+    this[dartx.setProperty]('text-line-through-mode', value, '');
+  }
+  get textLineThroughStyle() {
+    return this[dartx.getPropertyValue]('text-line-through-style');
+  }
+  set textLineThroughStyle(value) {
+    this[dartx.setProperty]('text-line-through-style', value, '');
+  }
+  get textLineThroughWidth() {
+    return this[dartx.getPropertyValue]('text-line-through-width');
+  }
+  set textLineThroughWidth(value) {
+    this[dartx.setProperty]('text-line-through-width', value, '');
+  }
+  get textOrientation() {
+    return this[dartx.getPropertyValue]('text-orientation');
+  }
+  set textOrientation(value) {
+    this[dartx.setProperty]('text-orientation', value, '');
+  }
+  get textOverflow() {
+    return this[dartx.getPropertyValue]('text-overflow');
+  }
+  set textOverflow(value) {
+    this[dartx.setProperty]('text-overflow', value, '');
+  }
+  get textOverlineColor() {
+    return this[dartx.getPropertyValue]('text-overline-color');
+  }
+  set textOverlineColor(value) {
+    this[dartx.setProperty]('text-overline-color', value, '');
+  }
+  get textOverlineMode() {
+    return this[dartx.getPropertyValue]('text-overline-mode');
+  }
+  set textOverlineMode(value) {
+    this[dartx.setProperty]('text-overline-mode', value, '');
+  }
+  get textOverlineStyle() {
+    return this[dartx.getPropertyValue]('text-overline-style');
+  }
+  set textOverlineStyle(value) {
+    this[dartx.setProperty]('text-overline-style', value, '');
+  }
+  get textOverlineWidth() {
+    return this[dartx.getPropertyValue]('text-overline-width');
+  }
+  set textOverlineWidth(value) {
+    this[dartx.setProperty]('text-overline-width', value, '');
+  }
+  get textRendering() {
+    return this[dartx.getPropertyValue]('text-rendering');
+  }
+  set textRendering(value) {
+    this[dartx.setProperty]('text-rendering', value, '');
+  }
+  get textSecurity() {
+    return this[dartx.getPropertyValue]('text-security');
+  }
+  set textSecurity(value) {
+    this[dartx.setProperty]('text-security', value, '');
+  }
+  get textShadow() {
+    return this[dartx.getPropertyValue]('text-shadow');
+  }
+  set textShadow(value) {
+    this[dartx.setProperty]('text-shadow', value, '');
+  }
+  get textStroke() {
+    return this[dartx.getPropertyValue]('text-stroke');
+  }
+  set textStroke(value) {
+    this[dartx.setProperty]('text-stroke', value, '');
+  }
+  get textStrokeColor() {
+    return this[dartx.getPropertyValue]('text-stroke-color');
+  }
+  set textStrokeColor(value) {
+    this[dartx.setProperty]('text-stroke-color', value, '');
+  }
+  get textStrokeWidth() {
+    return this[dartx.getPropertyValue]('text-stroke-width');
+  }
+  set textStrokeWidth(value) {
+    this[dartx.setProperty]('text-stroke-width', value, '');
+  }
+  get textTransform() {
+    return this[dartx.getPropertyValue]('text-transform');
+  }
+  set textTransform(value) {
+    this[dartx.setProperty]('text-transform', value, '');
+  }
+  get textUnderlineColor() {
+    return this[dartx.getPropertyValue]('text-underline-color');
+  }
+  set textUnderlineColor(value) {
+    this[dartx.setProperty]('text-underline-color', value, '');
+  }
+  get textUnderlineMode() {
+    return this[dartx.getPropertyValue]('text-underline-mode');
+  }
+  set textUnderlineMode(value) {
+    this[dartx.setProperty]('text-underline-mode', value, '');
+  }
+  get textUnderlinePosition() {
+    return this[dartx.getPropertyValue]('text-underline-position');
+  }
+  set textUnderlinePosition(value) {
+    this[dartx.setProperty]('text-underline-position', value, '');
+  }
+  get textUnderlineStyle() {
+    return this[dartx.getPropertyValue]('text-underline-style');
+  }
+  set textUnderlineStyle(value) {
+    this[dartx.setProperty]('text-underline-style', value, '');
+  }
+  get textUnderlineWidth() {
+    return this[dartx.getPropertyValue]('text-underline-width');
+  }
+  set textUnderlineWidth(value) {
+    this[dartx.setProperty]('text-underline-width', value, '');
+  }
+  get top() {
+    return this[dartx.getPropertyValue]('top');
+  }
+  set top(value) {
+    this[dartx.setProperty]('top', value, '');
+  }
+  get touchAction() {
+    return this[dartx.getPropertyValue]('touch-action');
+  }
+  set touchAction(value) {
+    this[dartx.setProperty]('touch-action', value, '');
+  }
+  get touchActionDelay() {
+    return this[dartx.getPropertyValue]('touch-action-delay');
+  }
+  set touchActionDelay(value) {
+    this[dartx.setProperty]('touch-action-delay', value, '');
+  }
+  get transform() {
+    return this[dartx.getPropertyValue]('transform');
+  }
+  set transform(value) {
+    this[dartx.setProperty]('transform', value, '');
+  }
+  get transformOrigin() {
+    return this[dartx.getPropertyValue]('transform-origin');
+  }
+  set transformOrigin(value) {
+    this[dartx.setProperty]('transform-origin', value, '');
+  }
+  get transformOriginX() {
+    return this[dartx.getPropertyValue]('transform-origin-x');
+  }
+  set transformOriginX(value) {
+    this[dartx.setProperty]('transform-origin-x', value, '');
+  }
+  get transformOriginY() {
+    return this[dartx.getPropertyValue]('transform-origin-y');
+  }
+  set transformOriginY(value) {
+    this[dartx.setProperty]('transform-origin-y', value, '');
+  }
+  get transformOriginZ() {
+    return this[dartx.getPropertyValue]('transform-origin-z');
+  }
+  set transformOriginZ(value) {
+    this[dartx.setProperty]('transform-origin-z', value, '');
+  }
+  get transformStyle() {
+    return this[dartx.getPropertyValue]('transform-style');
+  }
+  set transformStyle(value) {
+    this[dartx.setProperty]('transform-style', value, '');
+  }
+  get transition() {
+    return this[dartx.getPropertyValue]('transition');
+  }
+  set transition(value) {
+    this[dartx.setProperty]('transition', value, '');
+  }
+  get transitionDelay() {
+    return this[dartx.getPropertyValue]('transition-delay');
+  }
+  set transitionDelay(value) {
+    this[dartx.setProperty]('transition-delay', value, '');
+  }
+  get transitionDuration() {
+    return this[dartx.getPropertyValue]('transition-duration');
+  }
+  set transitionDuration(value) {
+    this[dartx.setProperty]('transition-duration', value, '');
+  }
+  get transitionProperty() {
+    return this[dartx.getPropertyValue]('transition-property');
+  }
+  set transitionProperty(value) {
+    this[dartx.setProperty]('transition-property', value, '');
+  }
+  get transitionTimingFunction() {
+    return this[dartx.getPropertyValue]('transition-timing-function');
+  }
+  set transitionTimingFunction(value) {
+    this[dartx.setProperty]('transition-timing-function', value, '');
+  }
+  get unicodeBidi() {
+    return this[dartx.getPropertyValue]('unicode-bidi');
+  }
+  set unicodeBidi(value) {
+    this[dartx.setProperty]('unicode-bidi', value, '');
+  }
+  get unicodeRange() {
+    return this[dartx.getPropertyValue]('unicode-range');
+  }
+  set unicodeRange(value) {
+    this[dartx.setProperty]('unicode-range', value, '');
+  }
+  get userDrag() {
+    return this[dartx.getPropertyValue]('user-drag');
+  }
+  set userDrag(value) {
+    this[dartx.setProperty]('user-drag', value, '');
+  }
+  get userModify() {
+    return this[dartx.getPropertyValue]('user-modify');
+  }
+  set userModify(value) {
+    this[dartx.setProperty]('user-modify', value, '');
+  }
+  get userSelect() {
+    return this[dartx.getPropertyValue]('user-select');
+  }
+  set userSelect(value) {
+    this[dartx.setProperty]('user-select', value, '');
+  }
+  get userZoom() {
+    return this[dartx.getPropertyValue]('user-zoom');
+  }
+  set userZoom(value) {
+    this[dartx.setProperty]('user-zoom', value, '');
+  }
+  get verticalAlign() {
+    return this[dartx.getPropertyValue]('vertical-align');
+  }
+  set verticalAlign(value) {
+    this[dartx.setProperty]('vertical-align', value, '');
+  }
+  get visibility() {
+    return this[dartx.getPropertyValue]('visibility');
+  }
+  set visibility(value) {
+    this[dartx.setProperty]('visibility', value, '');
+  }
+  get whiteSpace() {
+    return this[dartx.getPropertyValue]('white-space');
+  }
+  set whiteSpace(value) {
+    this[dartx.setProperty]('white-space', value, '');
+  }
+  get widows() {
+    return this[dartx.getPropertyValue]('widows');
+  }
+  set widows(value) {
+    this[dartx.setProperty]('widows', value, '');
+  }
+  get width() {
+    return this[dartx.getPropertyValue]('width');
+  }
+  set width(value) {
+    this[dartx.setProperty]('width', value, '');
+  }
+  get willChange() {
+    return this[dartx.getPropertyValue]('will-change');
+  }
+  set willChange(value) {
+    this[dartx.setProperty]('will-change', value, '');
+  }
+  get wordBreak() {
+    return this[dartx.getPropertyValue]('word-break');
+  }
+  set wordBreak(value) {
+    this[dartx.setProperty]('word-break', value, '');
+  }
+  get wordSpacing() {
+    return this[dartx.getPropertyValue]('word-spacing');
+  }
+  set wordSpacing(value) {
+    this[dartx.setProperty]('word-spacing', value, '');
+  }
+  get wordWrap() {
+    return this[dartx.getPropertyValue]('word-wrap');
+  }
+  set wordWrap(value) {
+    this[dartx.setProperty]('word-wrap', value, '');
+  }
+  get wrapFlow() {
+    return this[dartx.getPropertyValue]('wrap-flow');
+  }
+  set wrapFlow(value) {
+    this[dartx.setProperty]('wrap-flow', value, '');
+  }
+  get wrapThrough() {
+    return this[dartx.getPropertyValue]('wrap-through');
+  }
+  set wrapThrough(value) {
+    this[dartx.setProperty]('wrap-through', value, '');
+  }
+  get writingMode() {
+    return this[dartx.getPropertyValue]('writing-mode');
+  }
+  set writingMode(value) {
+    this[dartx.setProperty]('writing-mode', value, '');
+  }
+  get zIndex() {
+    return this[dartx.getPropertyValue]('z-index');
+  }
+  set zIndex(value) {
+    this[dartx.setProperty]('z-index', value, '');
+  }
+  get zoom() {
+    return this[dartx.getPropertyValue]('zoom');
+  }
+  set zoom(value) {
+    this[dartx.setProperty]('zoom', value, '');
+  }
+};
+dart.setSignature(html$.CssStyleDeclarationBase, {
+  getters: () => ({
+    alignContent: dart.definiteFunctionType(core.String, []),
+    alignItems: dart.definiteFunctionType(core.String, []),
+    alignSelf: dart.definiteFunctionType(core.String, []),
+    animation: dart.definiteFunctionType(core.String, []),
+    animationDelay: dart.definiteFunctionType(core.String, []),
+    animationDirection: dart.definiteFunctionType(core.String, []),
+    animationDuration: dart.definiteFunctionType(core.String, []),
+    animationFillMode: dart.definiteFunctionType(core.String, []),
+    animationIterationCount: dart.definiteFunctionType(core.String, []),
+    animationName: dart.definiteFunctionType(core.String, []),
+    animationPlayState: dart.definiteFunctionType(core.String, []),
+    animationTimingFunction: dart.definiteFunctionType(core.String, []),
+    appRegion: dart.definiteFunctionType(core.String, []),
+    appearance: dart.definiteFunctionType(core.String, []),
+    aspectRatio: dart.definiteFunctionType(core.String, []),
+    backfaceVisibility: dart.definiteFunctionType(core.String, []),
+    background: dart.definiteFunctionType(core.String, []),
+    backgroundAttachment: dart.definiteFunctionType(core.String, []),
+    backgroundBlendMode: dart.definiteFunctionType(core.String, []),
+    backgroundClip: dart.definiteFunctionType(core.String, []),
+    backgroundColor: dart.definiteFunctionType(core.String, []),
+    backgroundComposite: dart.definiteFunctionType(core.String, []),
+    backgroundImage: dart.definiteFunctionType(core.String, []),
+    backgroundOrigin: dart.definiteFunctionType(core.String, []),
+    backgroundPosition: dart.definiteFunctionType(core.String, []),
+    backgroundPositionX: dart.definiteFunctionType(core.String, []),
+    backgroundPositionY: dart.definiteFunctionType(core.String, []),
+    backgroundRepeat: dart.definiteFunctionType(core.String, []),
+    backgroundRepeatX: dart.definiteFunctionType(core.String, []),
+    backgroundRepeatY: dart.definiteFunctionType(core.String, []),
+    backgroundSize: dart.definiteFunctionType(core.String, []),
+    border: dart.definiteFunctionType(core.String, []),
+    borderAfter: dart.definiteFunctionType(core.String, []),
+    borderAfterColor: dart.definiteFunctionType(core.String, []),
+    borderAfterStyle: dart.definiteFunctionType(core.String, []),
+    borderAfterWidth: dart.definiteFunctionType(core.String, []),
+    borderBefore: dart.definiteFunctionType(core.String, []),
+    borderBeforeColor: dart.definiteFunctionType(core.String, []),
+    borderBeforeStyle: dart.definiteFunctionType(core.String, []),
+    borderBeforeWidth: dart.definiteFunctionType(core.String, []),
+    borderBottom: dart.definiteFunctionType(core.String, []),
+    borderBottomColor: dart.definiteFunctionType(core.String, []),
+    borderBottomLeftRadius: dart.definiteFunctionType(core.String, []),
+    borderBottomRightRadius: dart.definiteFunctionType(core.String, []),
+    borderBottomStyle: dart.definiteFunctionType(core.String, []),
+    borderBottomWidth: dart.definiteFunctionType(core.String, []),
+    borderCollapse: dart.definiteFunctionType(core.String, []),
+    borderColor: dart.definiteFunctionType(core.String, []),
+    borderEnd: dart.definiteFunctionType(core.String, []),
+    borderEndColor: dart.definiteFunctionType(core.String, []),
+    borderEndStyle: dart.definiteFunctionType(core.String, []),
+    borderEndWidth: dart.definiteFunctionType(core.String, []),
+    borderFit: dart.definiteFunctionType(core.String, []),
+    borderHorizontalSpacing: dart.definiteFunctionType(core.String, []),
+    borderImage: dart.definiteFunctionType(core.String, []),
+    borderImageOutset: dart.definiteFunctionType(core.String, []),
+    borderImageRepeat: dart.definiteFunctionType(core.String, []),
+    borderImageSlice: dart.definiteFunctionType(core.String, []),
+    borderImageSource: dart.definiteFunctionType(core.String, []),
+    borderImageWidth: dart.definiteFunctionType(core.String, []),
+    borderLeft: dart.definiteFunctionType(core.String, []),
+    borderLeftColor: dart.definiteFunctionType(core.String, []),
+    borderLeftStyle: dart.definiteFunctionType(core.String, []),
+    borderLeftWidth: dart.definiteFunctionType(core.String, []),
+    borderRadius: dart.definiteFunctionType(core.String, []),
+    borderRight: dart.definiteFunctionType(core.String, []),
+    borderRightColor: dart.definiteFunctionType(core.String, []),
+    borderRightStyle: dart.definiteFunctionType(core.String, []),
+    borderRightWidth: dart.definiteFunctionType(core.String, []),
+    borderSpacing: dart.definiteFunctionType(core.String, []),
+    borderStart: dart.definiteFunctionType(core.String, []),
+    borderStartColor: dart.definiteFunctionType(core.String, []),
+    borderStartStyle: dart.definiteFunctionType(core.String, []),
+    borderStartWidth: dart.definiteFunctionType(core.String, []),
+    borderStyle: dart.definiteFunctionType(core.String, []),
+    borderTop: dart.definiteFunctionType(core.String, []),
+    borderTopColor: dart.definiteFunctionType(core.String, []),
+    borderTopLeftRadius: dart.definiteFunctionType(core.String, []),
+    borderTopRightRadius: dart.definiteFunctionType(core.String, []),
+    borderTopStyle: dart.definiteFunctionType(core.String, []),
+    borderTopWidth: dart.definiteFunctionType(core.String, []),
+    borderVerticalSpacing: dart.definiteFunctionType(core.String, []),
+    borderWidth: dart.definiteFunctionType(core.String, []),
+    bottom: dart.definiteFunctionType(core.String, []),
+    boxAlign: dart.definiteFunctionType(core.String, []),
+    boxDecorationBreak: dart.definiteFunctionType(core.String, []),
+    boxDirection: dart.definiteFunctionType(core.String, []),
+    boxFlex: dart.definiteFunctionType(core.String, []),
+    boxFlexGroup: dart.definiteFunctionType(core.String, []),
+    boxLines: dart.definiteFunctionType(core.String, []),
+    boxOrdinalGroup: dart.definiteFunctionType(core.String, []),
+    boxOrient: dart.definiteFunctionType(core.String, []),
+    boxPack: dart.definiteFunctionType(core.String, []),
+    boxReflect: dart.definiteFunctionType(core.String, []),
+    boxShadow: dart.definiteFunctionType(core.String, []),
+    boxSizing: dart.definiteFunctionType(core.String, []),
+    captionSide: dart.definiteFunctionType(core.String, []),
+    clear: dart.definiteFunctionType(core.String, []),
+    clip: dart.definiteFunctionType(core.String, []),
+    clipPath: dart.definiteFunctionType(core.String, []),
+    color: dart.definiteFunctionType(core.String, []),
+    columnBreakAfter: dart.definiteFunctionType(core.String, []),
+    columnBreakBefore: dart.definiteFunctionType(core.String, []),
+    columnBreakInside: dart.definiteFunctionType(core.String, []),
+    columnCount: dart.definiteFunctionType(core.String, []),
+    columnFill: dart.definiteFunctionType(core.String, []),
+    columnGap: dart.definiteFunctionType(core.String, []),
+    columnRule: dart.definiteFunctionType(core.String, []),
+    columnRuleColor: dart.definiteFunctionType(core.String, []),
+    columnRuleStyle: dart.definiteFunctionType(core.String, []),
+    columnRuleWidth: dart.definiteFunctionType(core.String, []),
+    columnSpan: dart.definiteFunctionType(core.String, []),
+    columnWidth: dart.definiteFunctionType(core.String, []),
+    columns: dart.definiteFunctionType(core.String, []),
+    content: dart.definiteFunctionType(core.String, []),
+    counterIncrement: dart.definiteFunctionType(core.String, []),
+    counterReset: dart.definiteFunctionType(core.String, []),
+    cursor: dart.definiteFunctionType(core.String, []),
+    direction: dart.definiteFunctionType(core.String, []),
+    display: dart.definiteFunctionType(core.String, []),
+    emptyCells: dart.definiteFunctionType(core.String, []),
+    filter: dart.definiteFunctionType(core.String, []),
+    flex: dart.definiteFunctionType(core.String, []),
+    flexBasis: dart.definiteFunctionType(core.String, []),
+    flexDirection: dart.definiteFunctionType(core.String, []),
+    flexFlow: dart.definiteFunctionType(core.String, []),
+    flexGrow: dart.definiteFunctionType(core.String, []),
+    flexShrink: dart.definiteFunctionType(core.String, []),
+    flexWrap: dart.definiteFunctionType(core.String, []),
+    float: dart.definiteFunctionType(core.String, []),
+    font: dart.definiteFunctionType(core.String, []),
+    fontFamily: dart.definiteFunctionType(core.String, []),
+    fontFeatureSettings: dart.definiteFunctionType(core.String, []),
+    fontKerning: dart.definiteFunctionType(core.String, []),
+    fontSize: dart.definiteFunctionType(core.String, []),
+    fontSizeDelta: dart.definiteFunctionType(core.String, []),
+    fontSmoothing: dart.definiteFunctionType(core.String, []),
+    fontStretch: dart.definiteFunctionType(core.String, []),
+    fontStyle: dart.definiteFunctionType(core.String, []),
+    fontVariant: dart.definiteFunctionType(core.String, []),
+    fontVariantLigatures: dart.definiteFunctionType(core.String, []),
+    fontWeight: dart.definiteFunctionType(core.String, []),
+    grid: dart.definiteFunctionType(core.String, []),
+    gridArea: dart.definiteFunctionType(core.String, []),
+    gridAutoColumns: dart.definiteFunctionType(core.String, []),
+    gridAutoFlow: dart.definiteFunctionType(core.String, []),
+    gridAutoRows: dart.definiteFunctionType(core.String, []),
+    gridColumn: dart.definiteFunctionType(core.String, []),
+    gridColumnEnd: dart.definiteFunctionType(core.String, []),
+    gridColumnStart: dart.definiteFunctionType(core.String, []),
+    gridRow: dart.definiteFunctionType(core.String, []),
+    gridRowEnd: dart.definiteFunctionType(core.String, []),
+    gridRowStart: dart.definiteFunctionType(core.String, []),
+    gridTemplate: dart.definiteFunctionType(core.String, []),
+    gridTemplateAreas: dart.definiteFunctionType(core.String, []),
+    gridTemplateColumns: dart.definiteFunctionType(core.String, []),
+    gridTemplateRows: dart.definiteFunctionType(core.String, []),
+    height: dart.definiteFunctionType(core.String, []),
+    highlight: dart.definiteFunctionType(core.String, []),
+    hyphenateCharacter: dart.definiteFunctionType(core.String, []),
+    imageRendering: dart.definiteFunctionType(core.String, []),
+    isolation: dart.definiteFunctionType(core.String, []),
+    justifyContent: dart.definiteFunctionType(core.String, []),
+    justifySelf: dart.definiteFunctionType(core.String, []),
+    left: dart.definiteFunctionType(core.String, []),
+    letterSpacing: dart.definiteFunctionType(core.String, []),
+    lineBoxContain: dart.definiteFunctionType(core.String, []),
+    lineBreak: dart.definiteFunctionType(core.String, []),
+    lineClamp: dart.definiteFunctionType(core.String, []),
+    lineHeight: dart.definiteFunctionType(core.String, []),
+    listStyle: dart.definiteFunctionType(core.String, []),
+    listStyleImage: dart.definiteFunctionType(core.String, []),
+    listStylePosition: dart.definiteFunctionType(core.String, []),
+    listStyleType: dart.definiteFunctionType(core.String, []),
+    locale: dart.definiteFunctionType(core.String, []),
+    logicalHeight: dart.definiteFunctionType(core.String, []),
+    logicalWidth: dart.definiteFunctionType(core.String, []),
+    margin: dart.definiteFunctionType(core.String, []),
+    marginAfter: dart.definiteFunctionType(core.String, []),
+    marginAfterCollapse: dart.definiteFunctionType(core.String, []),
+    marginBefore: dart.definiteFunctionType(core.String, []),
+    marginBeforeCollapse: dart.definiteFunctionType(core.String, []),
+    marginBottom: dart.definiteFunctionType(core.String, []),
+    marginBottomCollapse: dart.definiteFunctionType(core.String, []),
+    marginCollapse: dart.definiteFunctionType(core.String, []),
+    marginEnd: dart.definiteFunctionType(core.String, []),
+    marginLeft: dart.definiteFunctionType(core.String, []),
+    marginRight: dart.definiteFunctionType(core.String, []),
+    marginStart: dart.definiteFunctionType(core.String, []),
+    marginTop: dart.definiteFunctionType(core.String, []),
+    marginTopCollapse: dart.definiteFunctionType(core.String, []),
+    mask: dart.definiteFunctionType(core.String, []),
+    maskBoxImage: dart.definiteFunctionType(core.String, []),
+    maskBoxImageOutset: dart.definiteFunctionType(core.String, []),
+    maskBoxImageRepeat: dart.definiteFunctionType(core.String, []),
+    maskBoxImageSlice: dart.definiteFunctionType(core.String, []),
+    maskBoxImageSource: dart.definiteFunctionType(core.String, []),
+    maskBoxImageWidth: dart.definiteFunctionType(core.String, []),
+    maskClip: dart.definiteFunctionType(core.String, []),
+    maskComposite: dart.definiteFunctionType(core.String, []),
+    maskImage: dart.definiteFunctionType(core.String, []),
+    maskOrigin: dart.definiteFunctionType(core.String, []),
+    maskPosition: dart.definiteFunctionType(core.String, []),
+    maskPositionX: dart.definiteFunctionType(core.String, []),
+    maskPositionY: dart.definiteFunctionType(core.String, []),
+    maskRepeat: dart.definiteFunctionType(core.String, []),
+    maskRepeatX: dart.definiteFunctionType(core.String, []),
+    maskRepeatY: dart.definiteFunctionType(core.String, []),
+    maskSize: dart.definiteFunctionType(core.String, []),
+    maskSourceType: dart.definiteFunctionType(core.String, []),
+    maxHeight: dart.definiteFunctionType(core.String, []),
+    maxLogicalHeight: dart.definiteFunctionType(core.String, []),
+    maxLogicalWidth: dart.definiteFunctionType(core.String, []),
+    maxWidth: dart.definiteFunctionType(core.String, []),
+    maxZoom: dart.definiteFunctionType(core.String, []),
+    minHeight: dart.definiteFunctionType(core.String, []),
+    minLogicalHeight: dart.definiteFunctionType(core.String, []),
+    minLogicalWidth: dart.definiteFunctionType(core.String, []),
+    minWidth: dart.definiteFunctionType(core.String, []),
+    minZoom: dart.definiteFunctionType(core.String, []),
+    mixBlendMode: dart.definiteFunctionType(core.String, []),
+    objectFit: dart.definiteFunctionType(core.String, []),
+    objectPosition: dart.definiteFunctionType(core.String, []),
+    opacity: dart.definiteFunctionType(core.String, []),
+    order: dart.definiteFunctionType(core.String, []),
+    orientation: dart.definiteFunctionType(core.String, []),
+    orphans: dart.definiteFunctionType(core.String, []),
+    outline: dart.definiteFunctionType(core.String, []),
+    outlineColor: dart.definiteFunctionType(core.String, []),
+    outlineOffset: dart.definiteFunctionType(core.String, []),
+    outlineStyle: dart.definiteFunctionType(core.String, []),
+    outlineWidth: dart.definiteFunctionType(core.String, []),
+    overflow: dart.definiteFunctionType(core.String, []),
+    overflowWrap: dart.definiteFunctionType(core.String, []),
+    overflowX: dart.definiteFunctionType(core.String, []),
+    overflowY: dart.definiteFunctionType(core.String, []),
+    padding: dart.definiteFunctionType(core.String, []),
+    paddingAfter: dart.definiteFunctionType(core.String, []),
+    paddingBefore: dart.definiteFunctionType(core.String, []),
+    paddingBottom: dart.definiteFunctionType(core.String, []),
+    paddingEnd: dart.definiteFunctionType(core.String, []),
+    paddingLeft: dart.definiteFunctionType(core.String, []),
+    paddingRight: dart.definiteFunctionType(core.String, []),
+    paddingStart: dart.definiteFunctionType(core.String, []),
+    paddingTop: dart.definiteFunctionType(core.String, []),
+    page: dart.definiteFunctionType(core.String, []),
+    pageBreakAfter: dart.definiteFunctionType(core.String, []),
+    pageBreakBefore: dart.definiteFunctionType(core.String, []),
+    pageBreakInside: dart.definiteFunctionType(core.String, []),
+    perspective: dart.definiteFunctionType(core.String, []),
+    perspectiveOrigin: dart.definiteFunctionType(core.String, []),
+    perspectiveOriginX: dart.definiteFunctionType(core.String, []),
+    perspectiveOriginY: dart.definiteFunctionType(core.String, []),
+    pointerEvents: dart.definiteFunctionType(core.String, []),
+    position: dart.definiteFunctionType(core.String, []),
+    printColorAdjust: dart.definiteFunctionType(core.String, []),
+    quotes: dart.definiteFunctionType(core.String, []),
+    resize: dart.definiteFunctionType(core.String, []),
+    right: dart.definiteFunctionType(core.String, []),
+    rtlOrdering: dart.definiteFunctionType(core.String, []),
+    rubyPosition: dart.definiteFunctionType(core.String, []),
+    scrollBehavior: dart.definiteFunctionType(core.String, []),
+    shapeImageThreshold: dart.definiteFunctionType(core.String, []),
+    shapeMargin: dart.definiteFunctionType(core.String, []),
+    shapeOutside: dart.definiteFunctionType(core.String, []),
+    size: dart.definiteFunctionType(core.String, []),
+    speak: dart.definiteFunctionType(core.String, []),
+    src: dart.definiteFunctionType(core.String, []),
+    tabSize: dart.definiteFunctionType(core.String, []),
+    tableLayout: dart.definiteFunctionType(core.String, []),
+    tapHighlightColor: dart.definiteFunctionType(core.String, []),
+    textAlign: dart.definiteFunctionType(core.String, []),
+    textAlignLast: dart.definiteFunctionType(core.String, []),
+    textCombine: dart.definiteFunctionType(core.String, []),
+    textDecoration: dart.definiteFunctionType(core.String, []),
+    textDecorationColor: dart.definiteFunctionType(core.String, []),
+    textDecorationLine: dart.definiteFunctionType(core.String, []),
+    textDecorationStyle: dart.definiteFunctionType(core.String, []),
+    textDecorationsInEffect: dart.definiteFunctionType(core.String, []),
+    textEmphasis: dart.definiteFunctionType(core.String, []),
+    textEmphasisColor: dart.definiteFunctionType(core.String, []),
+    textEmphasisPosition: dart.definiteFunctionType(core.String, []),
+    textEmphasisStyle: dart.definiteFunctionType(core.String, []),
+    textFillColor: dart.definiteFunctionType(core.String, []),
+    textIndent: dart.definiteFunctionType(core.String, []),
+    textJustify: dart.definiteFunctionType(core.String, []),
+    textLineThroughColor: dart.definiteFunctionType(core.String, []),
+    textLineThroughMode: dart.definiteFunctionType(core.String, []),
+    textLineThroughStyle: dart.definiteFunctionType(core.String, []),
+    textLineThroughWidth: dart.definiteFunctionType(core.String, []),
+    textOrientation: dart.definiteFunctionType(core.String, []),
+    textOverflow: dart.definiteFunctionType(core.String, []),
+    textOverlineColor: dart.definiteFunctionType(core.String, []),
+    textOverlineMode: dart.definiteFunctionType(core.String, []),
+    textOverlineStyle: dart.definiteFunctionType(core.String, []),
+    textOverlineWidth: dart.definiteFunctionType(core.String, []),
+    textRendering: dart.definiteFunctionType(core.String, []),
+    textSecurity: dart.definiteFunctionType(core.String, []),
+    textShadow: dart.definiteFunctionType(core.String, []),
+    textStroke: dart.definiteFunctionType(core.String, []),
+    textStrokeColor: dart.definiteFunctionType(core.String, []),
+    textStrokeWidth: dart.definiteFunctionType(core.String, []),
+    textTransform: dart.definiteFunctionType(core.String, []),
+    textUnderlineColor: dart.definiteFunctionType(core.String, []),
+    textUnderlineMode: dart.definiteFunctionType(core.String, []),
+    textUnderlinePosition: dart.definiteFunctionType(core.String, []),
+    textUnderlineStyle: dart.definiteFunctionType(core.String, []),
+    textUnderlineWidth: dart.definiteFunctionType(core.String, []),
+    top: dart.definiteFunctionType(core.String, []),
+    touchAction: dart.definiteFunctionType(core.String, []),
+    touchActionDelay: dart.definiteFunctionType(core.String, []),
+    transform: dart.definiteFunctionType(core.String, []),
+    transformOrigin: dart.definiteFunctionType(core.String, []),
+    transformOriginX: dart.definiteFunctionType(core.String, []),
+    transformOriginY: dart.definiteFunctionType(core.String, []),
+    transformOriginZ: dart.definiteFunctionType(core.String, []),
+    transformStyle: dart.definiteFunctionType(core.String, []),
+    transition: dart.definiteFunctionType(core.String, []),
+    transitionDelay: dart.definiteFunctionType(core.String, []),
+    transitionDuration: dart.definiteFunctionType(core.String, []),
+    transitionProperty: dart.definiteFunctionType(core.String, []),
+    transitionTimingFunction: dart.definiteFunctionType(core.String, []),
+    unicodeBidi: dart.definiteFunctionType(core.String, []),
+    unicodeRange: dart.definiteFunctionType(core.String, []),
+    userDrag: dart.definiteFunctionType(core.String, []),
+    userModify: dart.definiteFunctionType(core.String, []),
+    userSelect: dart.definiteFunctionType(core.String, []),
+    userZoom: dart.definiteFunctionType(core.String, []),
+    verticalAlign: dart.definiteFunctionType(core.String, []),
+    visibility: dart.definiteFunctionType(core.String, []),
+    whiteSpace: dart.definiteFunctionType(core.String, []),
+    widows: dart.definiteFunctionType(core.String, []),
+    width: dart.definiteFunctionType(core.String, []),
+    willChange: dart.definiteFunctionType(core.String, []),
+    wordBreak: dart.definiteFunctionType(core.String, []),
+    wordSpacing: dart.definiteFunctionType(core.String, []),
+    wordWrap: dart.definiteFunctionType(core.String, []),
+    wrapFlow: dart.definiteFunctionType(core.String, []),
+    wrapThrough: dart.definiteFunctionType(core.String, []),
+    writingMode: dart.definiteFunctionType(core.String, []),
+    zIndex: dart.definiteFunctionType(core.String, []),
+    zoom: dart.definiteFunctionType(core.String, [])
+  }),
+  setters: () => ({
+    alignContent: dart.definiteFunctionType(dart.void, [core.String]),
+    alignItems: dart.definiteFunctionType(dart.void, [core.String]),
+    alignSelf: dart.definiteFunctionType(dart.void, [core.String]),
+    animation: dart.definiteFunctionType(dart.void, [core.String]),
+    animationDelay: dart.definiteFunctionType(dart.void, [core.String]),
+    animationDirection: dart.definiteFunctionType(dart.void, [core.String]),
+    animationDuration: dart.definiteFunctionType(dart.void, [core.String]),
+    animationFillMode: dart.definiteFunctionType(dart.void, [core.String]),
+    animationIterationCount: dart.definiteFunctionType(dart.void, [core.String]),
+    animationName: dart.definiteFunctionType(dart.void, [core.String]),
+    animationPlayState: dart.definiteFunctionType(dart.void, [core.String]),
+    animationTimingFunction: dart.definiteFunctionType(dart.void, [core.String]),
+    appRegion: dart.definiteFunctionType(dart.void, [core.String]),
+    appearance: dart.definiteFunctionType(dart.void, [core.String]),
+    aspectRatio: dart.definiteFunctionType(dart.void, [core.String]),
+    backfaceVisibility: dart.definiteFunctionType(dart.void, [core.String]),
+    background: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundAttachment: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundBlendMode: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundClip: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundColor: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundComposite: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundImage: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundOrigin: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundPosition: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundPositionX: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundPositionY: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundRepeat: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundRepeatX: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundRepeatY: dart.definiteFunctionType(dart.void, [core.String]),
+    backgroundSize: dart.definiteFunctionType(dart.void, [core.String]),
+    border: dart.definiteFunctionType(dart.void, [core.String]),
+    borderAfter: dart.definiteFunctionType(dart.void, [core.String]),
+    borderAfterColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderAfterStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderAfterWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBefore: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBeforeColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBeforeStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBeforeWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBottom: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBottomColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBottomLeftRadius: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBottomRightRadius: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBottomStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderBottomWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderCollapse: dart.definiteFunctionType(dart.void, [core.String]),
+    borderColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    borderEndColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderEndStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderEndWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderFit: dart.definiteFunctionType(dart.void, [core.String]),
+    borderHorizontalSpacing: dart.definiteFunctionType(dart.void, [core.String]),
+    borderImage: dart.definiteFunctionType(dart.void, [core.String]),
+    borderImageOutset: dart.definiteFunctionType(dart.void, [core.String]),
+    borderImageRepeat: dart.definiteFunctionType(dart.void, [core.String]),
+    borderImageSlice: dart.definiteFunctionType(dart.void, [core.String]),
+    borderImageSource: dart.definiteFunctionType(dart.void, [core.String]),
+    borderImageWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderLeft: dart.definiteFunctionType(dart.void, [core.String]),
+    borderLeftColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderLeftStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderLeftWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderRadius: dart.definiteFunctionType(dart.void, [core.String]),
+    borderRight: dart.definiteFunctionType(dart.void, [core.String]),
+    borderRightColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderRightStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderRightWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderSpacing: dart.definiteFunctionType(dart.void, [core.String]),
+    borderStart: dart.definiteFunctionType(dart.void, [core.String]),
+    borderStartColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderStartStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderStartWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderTop: dart.definiteFunctionType(dart.void, [core.String]),
+    borderTopColor: dart.definiteFunctionType(dart.void, [core.String]),
+    borderTopLeftRadius: dart.definiteFunctionType(dart.void, [core.String]),
+    borderTopRightRadius: dart.definiteFunctionType(dart.void, [core.String]),
+    borderTopStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    borderTopWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    borderVerticalSpacing: dart.definiteFunctionType(dart.void, [core.String]),
+    borderWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    bottom: dart.definiteFunctionType(dart.void, [core.String]),
+    boxAlign: dart.definiteFunctionType(dart.void, [core.String]),
+    boxDecorationBreak: dart.definiteFunctionType(dart.void, [core.String]),
+    boxDirection: dart.definiteFunctionType(dart.void, [core.String]),
+    boxFlex: dart.definiteFunctionType(dart.void, [core.String]),
+    boxFlexGroup: dart.definiteFunctionType(dart.void, [core.String]),
+    boxLines: dart.definiteFunctionType(dart.void, [core.String]),
+    boxOrdinalGroup: dart.definiteFunctionType(dart.void, [core.String]),
+    boxOrient: dart.definiteFunctionType(dart.void, [core.String]),
+    boxPack: dart.definiteFunctionType(dart.void, [core.String]),
+    boxReflect: dart.definiteFunctionType(dart.void, [core.String]),
+    boxShadow: dart.definiteFunctionType(dart.void, [core.String]),
+    boxSizing: dart.definiteFunctionType(dart.void, [core.String]),
+    captionSide: dart.definiteFunctionType(dart.void, [core.String]),
+    clear: dart.definiteFunctionType(dart.void, [core.String]),
+    clip: dart.definiteFunctionType(dart.void, [core.String]),
+    clipPath: dart.definiteFunctionType(dart.void, [core.String]),
+    color: dart.definiteFunctionType(dart.void, [core.String]),
+    columnBreakAfter: dart.definiteFunctionType(dart.void, [core.String]),
+    columnBreakBefore: dart.definiteFunctionType(dart.void, [core.String]),
+    columnBreakInside: dart.definiteFunctionType(dart.void, [core.String]),
+    columnCount: dart.definiteFunctionType(dart.void, [core.String]),
+    columnFill: dart.definiteFunctionType(dart.void, [core.String]),
+    columnGap: dart.definiteFunctionType(dart.void, [core.String]),
+    columnRule: dart.definiteFunctionType(dart.void, [core.String]),
+    columnRuleColor: dart.definiteFunctionType(dart.void, [core.String]),
+    columnRuleStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    columnRuleWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    columnSpan: dart.definiteFunctionType(dart.void, [core.String]),
+    columnWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    columns: dart.definiteFunctionType(dart.void, [core.String]),
+    content: dart.definiteFunctionType(dart.void, [core.String]),
+    counterIncrement: dart.definiteFunctionType(dart.void, [core.String]),
+    counterReset: dart.definiteFunctionType(dart.void, [core.String]),
+    cursor: dart.definiteFunctionType(dart.void, [core.String]),
+    direction: dart.definiteFunctionType(dart.void, [core.String]),
+    display: dart.definiteFunctionType(dart.void, [core.String]),
+    emptyCells: dart.definiteFunctionType(dart.void, [core.String]),
+    filter: dart.definiteFunctionType(dart.void, [core.String]),
+    flex: dart.definiteFunctionType(dart.void, [core.String]),
+    flexBasis: dart.definiteFunctionType(dart.void, [core.String]),
+    flexDirection: dart.definiteFunctionType(dart.void, [core.String]),
+    flexFlow: dart.definiteFunctionType(dart.void, [core.String]),
+    flexGrow: dart.definiteFunctionType(dart.void, [core.String]),
+    flexShrink: dart.definiteFunctionType(dart.void, [core.String]),
+    flexWrap: dart.definiteFunctionType(dart.void, [core.String]),
+    float: dart.definiteFunctionType(dart.void, [core.String]),
+    font: dart.definiteFunctionType(dart.void, [core.String]),
+    fontFamily: dart.definiteFunctionType(dart.void, [core.String]),
+    fontFeatureSettings: dart.definiteFunctionType(dart.void, [core.String]),
+    fontKerning: dart.definiteFunctionType(dart.void, [core.String]),
+    fontSize: dart.definiteFunctionType(dart.void, [core.String]),
+    fontSizeDelta: dart.definiteFunctionType(dart.void, [core.String]),
+    fontSmoothing: dart.definiteFunctionType(dart.void, [core.String]),
+    fontStretch: dart.definiteFunctionType(dart.void, [core.String]),
+    fontStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    fontVariant: dart.definiteFunctionType(dart.void, [core.String]),
+    fontVariantLigatures: dart.definiteFunctionType(dart.void, [core.String]),
+    fontWeight: dart.definiteFunctionType(dart.void, [core.String]),
+    grid: dart.definiteFunctionType(dart.void, [core.String]),
+    gridArea: dart.definiteFunctionType(dart.void, [core.String]),
+    gridAutoColumns: dart.definiteFunctionType(dart.void, [core.String]),
+    gridAutoFlow: dart.definiteFunctionType(dart.void, [core.String]),
+    gridAutoRows: dart.definiteFunctionType(dart.void, [core.String]),
+    gridColumn: dart.definiteFunctionType(dart.void, [core.String]),
+    gridColumnEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    gridColumnStart: dart.definiteFunctionType(dart.void, [core.String]),
+    gridRow: dart.definiteFunctionType(dart.void, [core.String]),
+    gridRowEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    gridRowStart: dart.definiteFunctionType(dart.void, [core.String]),
+    gridTemplate: dart.definiteFunctionType(dart.void, [core.String]),
+    gridTemplateAreas: dart.definiteFunctionType(dart.void, [core.String]),
+    gridTemplateColumns: dart.definiteFunctionType(dart.void, [core.String]),
+    gridTemplateRows: dart.definiteFunctionType(dart.void, [core.String]),
+    height: dart.definiteFunctionType(dart.void, [core.String]),
+    highlight: dart.definiteFunctionType(dart.void, [core.String]),
+    hyphenateCharacter: dart.definiteFunctionType(dart.void, [core.String]),
+    imageRendering: dart.definiteFunctionType(dart.void, [core.String]),
+    isolation: dart.definiteFunctionType(dart.void, [core.String]),
+    justifyContent: dart.definiteFunctionType(dart.void, [core.String]),
+    justifySelf: dart.definiteFunctionType(dart.void, [core.String]),
+    left: dart.definiteFunctionType(dart.void, [core.String]),
+    letterSpacing: dart.definiteFunctionType(dart.void, [core.String]),
+    lineBoxContain: dart.definiteFunctionType(dart.void, [core.String]),
+    lineBreak: dart.definiteFunctionType(dart.void, [core.String]),
+    lineClamp: dart.definiteFunctionType(dart.void, [core.String]),
+    lineHeight: dart.definiteFunctionType(dart.void, [core.String]),
+    listStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    listStyleImage: dart.definiteFunctionType(dart.void, [core.String]),
+    listStylePosition: dart.definiteFunctionType(dart.void, [core.String]),
+    listStyleType: dart.definiteFunctionType(dart.void, [core.String]),
+    locale: dart.definiteFunctionType(dart.void, [core.String]),
+    logicalHeight: dart.definiteFunctionType(dart.void, [core.String]),
+    logicalWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    margin: dart.definiteFunctionType(dart.void, [core.String]),
+    marginAfter: dart.definiteFunctionType(dart.void, [core.String]),
+    marginAfterCollapse: dart.definiteFunctionType(dart.void, [core.String]),
+    marginBefore: dart.definiteFunctionType(dart.void, [core.String]),
+    marginBeforeCollapse: dart.definiteFunctionType(dart.void, [core.String]),
+    marginBottom: dart.definiteFunctionType(dart.void, [core.String]),
+    marginBottomCollapse: dart.definiteFunctionType(dart.void, [core.String]),
+    marginCollapse: dart.definiteFunctionType(dart.void, [core.String]),
+    marginEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    marginLeft: dart.definiteFunctionType(dart.void, [core.String]),
+    marginRight: dart.definiteFunctionType(dart.void, [core.String]),
+    marginStart: dart.definiteFunctionType(dart.void, [core.String]),
+    marginTop: dart.definiteFunctionType(dart.void, [core.String]),
+    marginTopCollapse: dart.definiteFunctionType(dart.void, [core.String]),
+    mask: dart.definiteFunctionType(dart.void, [core.String]),
+    maskBoxImage: dart.definiteFunctionType(dart.void, [core.String]),
+    maskBoxImageOutset: dart.definiteFunctionType(dart.void, [core.String]),
+    maskBoxImageRepeat: dart.definiteFunctionType(dart.void, [core.String]),
+    maskBoxImageSlice: dart.definiteFunctionType(dart.void, [core.String]),
+    maskBoxImageSource: dart.definiteFunctionType(dart.void, [core.String]),
+    maskBoxImageWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    maskClip: dart.definiteFunctionType(dart.void, [core.String]),
+    maskComposite: dart.definiteFunctionType(dart.void, [core.String]),
+    maskImage: dart.definiteFunctionType(dart.void, [core.String]),
+    maskOrigin: dart.definiteFunctionType(dart.void, [core.String]),
+    maskPosition: dart.definiteFunctionType(dart.void, [core.String]),
+    maskPositionX: dart.definiteFunctionType(dart.void, [core.String]),
+    maskPositionY: dart.definiteFunctionType(dart.void, [core.String]),
+    maskRepeat: dart.definiteFunctionType(dart.void, [core.String]),
+    maskRepeatX: dart.definiteFunctionType(dart.void, [core.String]),
+    maskRepeatY: dart.definiteFunctionType(dart.void, [core.String]),
+    maskSize: dart.definiteFunctionType(dart.void, [core.String]),
+    maskSourceType: dart.definiteFunctionType(dart.void, [core.String]),
+    maxHeight: dart.definiteFunctionType(dart.void, [core.String]),
+    maxLogicalHeight: dart.definiteFunctionType(dart.void, [core.String]),
+    maxLogicalWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    maxWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    maxZoom: dart.definiteFunctionType(dart.void, [core.String]),
+    minHeight: dart.definiteFunctionType(dart.void, [core.String]),
+    minLogicalHeight: dart.definiteFunctionType(dart.void, [core.String]),
+    minLogicalWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    minWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    minZoom: dart.definiteFunctionType(dart.void, [core.String]),
+    mixBlendMode: dart.definiteFunctionType(dart.void, [core.String]),
+    objectFit: dart.definiteFunctionType(dart.void, [core.String]),
+    objectPosition: dart.definiteFunctionType(dart.void, [core.String]),
+    opacity: dart.definiteFunctionType(dart.void, [core.String]),
+    order: dart.definiteFunctionType(dart.void, [core.String]),
+    orientation: dart.definiteFunctionType(dart.void, [core.String]),
+    orphans: dart.definiteFunctionType(dart.void, [core.String]),
+    outline: dart.definiteFunctionType(dart.void, [core.String]),
+    outlineColor: dart.definiteFunctionType(dart.void, [core.String]),
+    outlineOffset: dart.definiteFunctionType(dart.void, [core.String]),
+    outlineStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    outlineWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    overflow: dart.definiteFunctionType(dart.void, [core.String]),
+    overflowWrap: dart.definiteFunctionType(dart.void, [core.String]),
+    overflowX: dart.definiteFunctionType(dart.void, [core.String]),
+    overflowY: dart.definiteFunctionType(dart.void, [core.String]),
+    padding: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingAfter: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingBefore: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingBottom: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingEnd: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingLeft: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingRight: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingStart: dart.definiteFunctionType(dart.void, [core.String]),
+    paddingTop: dart.definiteFunctionType(dart.void, [core.String]),
+    page: dart.definiteFunctionType(dart.void, [core.String]),
+    pageBreakAfter: dart.definiteFunctionType(dart.void, [core.String]),
+    pageBreakBefore: dart.definiteFunctionType(dart.void, [core.String]),
+    pageBreakInside: dart.definiteFunctionType(dart.void, [core.String]),
+    perspective: dart.definiteFunctionType(dart.void, [core.String]),
+    perspectiveOrigin: dart.definiteFunctionType(dart.void, [core.String]),
+    perspectiveOriginX: dart.definiteFunctionType(dart.void, [core.String]),
+    perspectiveOriginY: dart.definiteFunctionType(dart.void, [core.String]),
+    pointerEvents: dart.definiteFunctionType(dart.void, [core.String]),
+    position: dart.definiteFunctionType(dart.void, [core.String]),
+    printColorAdjust: dart.definiteFunctionType(dart.void, [core.String]),
+    quotes: dart.definiteFunctionType(dart.void, [core.String]),
+    resize: dart.definiteFunctionType(dart.void, [core.String]),
+    right: dart.definiteFunctionType(dart.void, [core.String]),
+    rtlOrdering: dart.definiteFunctionType(dart.void, [core.String]),
+    rubyPosition: dart.definiteFunctionType(dart.void, [core.String]),
+    scrollBehavior: dart.definiteFunctionType(dart.void, [core.String]),
+    shapeImageThreshold: dart.definiteFunctionType(dart.void, [core.String]),
+    shapeMargin: dart.definiteFunctionType(dart.void, [core.String]),
+    shapeOutside: dart.definiteFunctionType(dart.void, [core.String]),
+    size: dart.definiteFunctionType(dart.void, [core.String]),
+    speak: dart.definiteFunctionType(dart.void, [core.String]),
+    src: dart.definiteFunctionType(dart.void, [core.String]),
+    tabSize: dart.definiteFunctionType(dart.void, [core.String]),
+    tableLayout: dart.definiteFunctionType(dart.void, [core.String]),
+    tapHighlightColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textAlign: dart.definiteFunctionType(dart.void, [core.String]),
+    textAlignLast: dart.definiteFunctionType(dart.void, [core.String]),
+    textCombine: dart.definiteFunctionType(dart.void, [core.String]),
+    textDecoration: dart.definiteFunctionType(dart.void, [core.String]),
+    textDecorationColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textDecorationLine: dart.definiteFunctionType(dart.void, [core.String]),
+    textDecorationStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    textDecorationsInEffect: dart.definiteFunctionType(dart.void, [core.String]),
+    textEmphasis: dart.definiteFunctionType(dart.void, [core.String]),
+    textEmphasisColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textEmphasisPosition: dart.definiteFunctionType(dart.void, [core.String]),
+    textEmphasisStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    textFillColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textIndent: dart.definiteFunctionType(dart.void, [core.String]),
+    textJustify: dart.definiteFunctionType(dart.void, [core.String]),
+    textLineThroughColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textLineThroughMode: dart.definiteFunctionType(dart.void, [core.String]),
+    textLineThroughStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    textLineThroughWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    textOrientation: dart.definiteFunctionType(dart.void, [core.String]),
+    textOverflow: dart.definiteFunctionType(dart.void, [core.String]),
+    textOverlineColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textOverlineMode: dart.definiteFunctionType(dart.void, [core.String]),
+    textOverlineStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    textOverlineWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    textRendering: dart.definiteFunctionType(dart.void, [core.String]),
+    textSecurity: dart.definiteFunctionType(dart.void, [core.String]),
+    textShadow: dart.definiteFunctionType(dart.void, [core.String]),
+    textStroke: dart.definiteFunctionType(dart.void, [core.String]),
+    textStrokeColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textStrokeWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    textTransform: dart.definiteFunctionType(dart.void, [core.String]),
+    textUnderlineColor: dart.definiteFunctionType(dart.void, [core.String]),
+    textUnderlineMode: dart.definiteFunctionType(dart.void, [core.String]),
+    textUnderlinePosition: dart.definiteFunctionType(dart.void, [core.String]),
+    textUnderlineStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    textUnderlineWidth: dart.definiteFunctionType(dart.void, [core.String]),
+    top: dart.definiteFunctionType(dart.void, [core.String]),
+    touchAction: dart.definiteFunctionType(dart.void, [core.String]),
+    touchActionDelay: dart.definiteFunctionType(dart.void, [core.String]),
+    transform: dart.definiteFunctionType(dart.void, [core.String]),
+    transformOrigin: dart.definiteFunctionType(dart.void, [core.String]),
+    transformOriginX: dart.definiteFunctionType(dart.void, [core.String]),
+    transformOriginY: dart.definiteFunctionType(dart.void, [core.String]),
+    transformOriginZ: dart.definiteFunctionType(dart.void, [core.String]),
+    transformStyle: dart.definiteFunctionType(dart.void, [core.String]),
+    transition: dart.definiteFunctionType(dart.void, [core.String]),
+    transitionDelay: dart.definiteFunctionType(dart.void, [core.String]),
+    transitionDuration: dart.definiteFunctionType(dart.void, [core.String]),
+    transitionProperty: dart.definiteFunctionType(dart.void, [core.String]),
+    transitionTimingFunction: dart.definiteFunctionType(dart.void, [core.String]),
+    unicodeBidi: dart.definiteFunctionType(dart.void, [core.String]),
+    unicodeRange: dart.definiteFunctionType(dart.void, [core.String]),
+    userDrag: dart.definiteFunctionType(dart.void, [core.String]),
+    userModify: dart.definiteFunctionType(dart.void, [core.String]),
+    userSelect: dart.definiteFunctionType(dart.void, [core.String]),
+    userZoom: dart.definiteFunctionType(dart.void, [core.String]),
+    verticalAlign: dart.definiteFunctionType(dart.void, [core.String]),
+    visibility: dart.definiteFunctionType(dart.void, [core.String]),
+    whiteSpace: dart.definiteFunctionType(dart.void, [core.String]),
+    widows: dart.definiteFunctionType(dart.void, [core.String]),
+    width: dart.definiteFunctionType(dart.void, [core.String]),
+    willChange: dart.definiteFunctionType(dart.void, [core.String]),
+    wordBreak: dart.definiteFunctionType(dart.void, [core.String]),
+    wordSpacing: dart.definiteFunctionType(dart.void, [core.String]),
+    wordWrap: dart.definiteFunctionType(dart.void, [core.String]),
+    wrapFlow: dart.definiteFunctionType(dart.void, [core.String]),
+    wrapThrough: dart.definiteFunctionType(dart.void, [core.String]),
+    writingMode: dart.definiteFunctionType(dart.void, [core.String]),
+    zIndex: dart.definiteFunctionType(dart.void, [core.String]),
+    zoom: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+dart.defineExtensionMembers(html$.CssStyleDeclarationBase, [
+  'alignContent',
+  'alignContent',
+  'alignItems',
+  'alignItems',
+  'alignSelf',
+  'alignSelf',
+  'animation',
+  'animation',
+  'animationDelay',
+  'animationDelay',
+  'animationDirection',
+  'animationDirection',
+  'animationDuration',
+  'animationDuration',
+  'animationFillMode',
+  'animationFillMode',
+  'animationIterationCount',
+  'animationIterationCount',
+  'animationName',
+  'animationName',
+  'animationPlayState',
+  'animationPlayState',
+  'animationTimingFunction',
+  'animationTimingFunction',
+  'appRegion',
+  'appRegion',
+  'appearance',
+  'appearance',
+  'aspectRatio',
+  'aspectRatio',
+  'backfaceVisibility',
+  'backfaceVisibility',
+  'background',
+  'background',
+  'backgroundAttachment',
+  'backgroundAttachment',
+  'backgroundBlendMode',
+  'backgroundBlendMode',
+  'backgroundClip',
+  'backgroundClip',
+  'backgroundColor',
+  'backgroundColor',
+  'backgroundComposite',
+  'backgroundComposite',
+  'backgroundImage',
+  'backgroundImage',
+  'backgroundOrigin',
+  'backgroundOrigin',
+  'backgroundPosition',
+  'backgroundPosition',
+  'backgroundPositionX',
+  'backgroundPositionX',
+  'backgroundPositionY',
+  'backgroundPositionY',
+  'backgroundRepeat',
+  'backgroundRepeat',
+  'backgroundRepeatX',
+  'backgroundRepeatX',
+  'backgroundRepeatY',
+  'backgroundRepeatY',
+  'backgroundSize',
+  'backgroundSize',
+  'border',
+  'border',
+  'borderAfter',
+  'borderAfter',
+  'borderAfterColor',
+  'borderAfterColor',
+  'borderAfterStyle',
+  'borderAfterStyle',
+  'borderAfterWidth',
+  'borderAfterWidth',
+  'borderBefore',
+  'borderBefore',
+  'borderBeforeColor',
+  'borderBeforeColor',
+  'borderBeforeStyle',
+  'borderBeforeStyle',
+  'borderBeforeWidth',
+  'borderBeforeWidth',
+  'borderBottom',
+  'borderBottom',
+  'borderBottomColor',
+  'borderBottomColor',
+  'borderBottomLeftRadius',
+  'borderBottomLeftRadius',
+  'borderBottomRightRadius',
+  'borderBottomRightRadius',
+  'borderBottomStyle',
+  'borderBottomStyle',
+  'borderBottomWidth',
+  'borderBottomWidth',
+  'borderCollapse',
+  'borderCollapse',
+  'borderColor',
+  'borderColor',
+  'borderEnd',
+  'borderEnd',
+  'borderEndColor',
+  'borderEndColor',
+  'borderEndStyle',
+  'borderEndStyle',
+  'borderEndWidth',
+  'borderEndWidth',
+  'borderFit',
+  'borderFit',
+  'borderHorizontalSpacing',
+  'borderHorizontalSpacing',
+  'borderImage',
+  'borderImage',
+  'borderImageOutset',
+  'borderImageOutset',
+  'borderImageRepeat',
+  'borderImageRepeat',
+  'borderImageSlice',
+  'borderImageSlice',
+  'borderImageSource',
+  'borderImageSource',
+  'borderImageWidth',
+  'borderImageWidth',
+  'borderLeft',
+  'borderLeft',
+  'borderLeftColor',
+  'borderLeftColor',
+  'borderLeftStyle',
+  'borderLeftStyle',
+  'borderLeftWidth',
+  'borderLeftWidth',
+  'borderRadius',
+  'borderRadius',
+  'borderRight',
+  'borderRight',
+  'borderRightColor',
+  'borderRightColor',
+  'borderRightStyle',
+  'borderRightStyle',
+  'borderRightWidth',
+  'borderRightWidth',
+  'borderSpacing',
+  'borderSpacing',
+  'borderStart',
+  'borderStart',
+  'borderStartColor',
+  'borderStartColor',
+  'borderStartStyle',
+  'borderStartStyle',
+  'borderStartWidth',
+  'borderStartWidth',
+  'borderStyle',
+  'borderStyle',
+  'borderTop',
+  'borderTop',
+  'borderTopColor',
+  'borderTopColor',
+  'borderTopLeftRadius',
+  'borderTopLeftRadius',
+  'borderTopRightRadius',
+  'borderTopRightRadius',
+  'borderTopStyle',
+  'borderTopStyle',
+  'borderTopWidth',
+  'borderTopWidth',
+  'borderVerticalSpacing',
+  'borderVerticalSpacing',
+  'borderWidth',
+  'borderWidth',
+  'bottom',
+  'bottom',
+  'boxAlign',
+  'boxAlign',
+  'boxDecorationBreak',
+  'boxDecorationBreak',
+  'boxDirection',
+  'boxDirection',
+  'boxFlex',
+  'boxFlex',
+  'boxFlexGroup',
+  'boxFlexGroup',
+  'boxLines',
+  'boxLines',
+  'boxOrdinalGroup',
+  'boxOrdinalGroup',
+  'boxOrient',
+  'boxOrient',
+  'boxPack',
+  'boxPack',
+  'boxReflect',
+  'boxReflect',
+  'boxShadow',
+  'boxShadow',
+  'boxSizing',
+  'boxSizing',
+  'captionSide',
+  'captionSide',
+  'clear',
+  'clear',
+  'clip',
+  'clip',
+  'clipPath',
+  'clipPath',
+  'color',
+  'color',
+  'columnBreakAfter',
+  'columnBreakAfter',
+  'columnBreakBefore',
+  'columnBreakBefore',
+  'columnBreakInside',
+  'columnBreakInside',
+  'columnCount',
+  'columnCount',
+  'columnFill',
+  'columnFill',
+  'columnGap',
+  'columnGap',
+  'columnRule',
+  'columnRule',
+  'columnRuleColor',
+  'columnRuleColor',
+  'columnRuleStyle',
+  'columnRuleStyle',
+  'columnRuleWidth',
+  'columnRuleWidth',
+  'columnSpan',
+  'columnSpan',
+  'columnWidth',
+  'columnWidth',
+  'columns',
+  'columns',
+  'content',
+  'content',
+  'counterIncrement',
+  'counterIncrement',
+  'counterReset',
+  'counterReset',
+  'cursor',
+  'cursor',
+  'direction',
+  'direction',
+  'display',
+  'display',
+  'emptyCells',
+  'emptyCells',
+  'filter',
+  'filter',
+  'flex',
+  'flex',
+  'flexBasis',
+  'flexBasis',
+  'flexDirection',
+  'flexDirection',
+  'flexFlow',
+  'flexFlow',
+  'flexGrow',
+  'flexGrow',
+  'flexShrink',
+  'flexShrink',
+  'flexWrap',
+  'flexWrap',
+  'float',
+  'float',
+  'font',
+  'font',
+  'fontFamily',
+  'fontFamily',
+  'fontFeatureSettings',
+  'fontFeatureSettings',
+  'fontKerning',
+  'fontKerning',
+  'fontSize',
+  'fontSize',
+  'fontSizeDelta',
+  'fontSizeDelta',
+  'fontSmoothing',
+  'fontSmoothing',
+  'fontStretch',
+  'fontStretch',
+  'fontStyle',
+  'fontStyle',
+  'fontVariant',
+  'fontVariant',
+  'fontVariantLigatures',
+  'fontVariantLigatures',
+  'fontWeight',
+  'fontWeight',
+  'grid',
+  'grid',
+  'gridArea',
+  'gridArea',
+  'gridAutoColumns',
+  'gridAutoColumns',
+  'gridAutoFlow',
+  'gridAutoFlow',
+  'gridAutoRows',
+  'gridAutoRows',
+  'gridColumn',
+  'gridColumn',
+  'gridColumnEnd',
+  'gridColumnEnd',
+  'gridColumnStart',
+  'gridColumnStart',
+  'gridRow',
+  'gridRow',
+  'gridRowEnd',
+  'gridRowEnd',
+  'gridRowStart',
+  'gridRowStart',
+  'gridTemplate',
+  'gridTemplate',
+  'gridTemplateAreas',
+  'gridTemplateAreas',
+  'gridTemplateColumns',
+  'gridTemplateColumns',
+  'gridTemplateRows',
+  'gridTemplateRows',
+  'height',
+  'height',
+  'highlight',
+  'highlight',
+  'hyphenateCharacter',
+  'hyphenateCharacter',
+  'imageRendering',
+  'imageRendering',
+  'isolation',
+  'isolation',
+  'justifyContent',
+  'justifyContent',
+  'justifySelf',
+  'justifySelf',
+  'left',
+  'left',
+  'letterSpacing',
+  'letterSpacing',
+  'lineBoxContain',
+  'lineBoxContain',
+  'lineBreak',
+  'lineBreak',
+  'lineClamp',
+  'lineClamp',
+  'lineHeight',
+  'lineHeight',
+  'listStyle',
+  'listStyle',
+  'listStyleImage',
+  'listStyleImage',
+  'listStylePosition',
+  'listStylePosition',
+  'listStyleType',
+  'listStyleType',
+  'locale',
+  'locale',
+  'logicalHeight',
+  'logicalHeight',
+  'logicalWidth',
+  'logicalWidth',
+  'margin',
+  'margin',
+  'marginAfter',
+  'marginAfter',
+  'marginAfterCollapse',
+  'marginAfterCollapse',
+  'marginBefore',
+  'marginBefore',
+  'marginBeforeCollapse',
+  'marginBeforeCollapse',
+  'marginBottom',
+  'marginBottom',
+  'marginBottomCollapse',
+  'marginBottomCollapse',
+  'marginCollapse',
+  'marginCollapse',
+  'marginEnd',
+  'marginEnd',
+  'marginLeft',
+  'marginLeft',
+  'marginRight',
+  'marginRight',
+  'marginStart',
+  'marginStart',
+  'marginTop',
+  'marginTop',
+  'marginTopCollapse',
+  'marginTopCollapse',
+  'mask',
+  'mask',
+  'maskBoxImage',
+  'maskBoxImage',
+  'maskBoxImageOutset',
+  'maskBoxImageOutset',
+  'maskBoxImageRepeat',
+  'maskBoxImageRepeat',
+  'maskBoxImageSlice',
+  'maskBoxImageSlice',
+  'maskBoxImageSource',
+  'maskBoxImageSource',
+  'maskBoxImageWidth',
+  'maskBoxImageWidth',
+  'maskClip',
+  'maskClip',
+  'maskComposite',
+  'maskComposite',
+  'maskImage',
+  'maskImage',
+  'maskOrigin',
+  'maskOrigin',
+  'maskPosition',
+  'maskPosition',
+  'maskPositionX',
+  'maskPositionX',
+  'maskPositionY',
+  'maskPositionY',
+  'maskRepeat',
+  'maskRepeat',
+  'maskRepeatX',
+  'maskRepeatX',
+  'maskRepeatY',
+  'maskRepeatY',
+  'maskSize',
+  'maskSize',
+  'maskSourceType',
+  'maskSourceType',
+  'maxHeight',
+  'maxHeight',
+  'maxLogicalHeight',
+  'maxLogicalHeight',
+  'maxLogicalWidth',
+  'maxLogicalWidth',
+  'maxWidth',
+  'maxWidth',
+  'maxZoom',
+  'maxZoom',
+  'minHeight',
+  'minHeight',
+  'minLogicalHeight',
+  'minLogicalHeight',
+  'minLogicalWidth',
+  'minLogicalWidth',
+  'minWidth',
+  'minWidth',
+  'minZoom',
+  'minZoom',
+  'mixBlendMode',
+  'mixBlendMode',
+  'objectFit',
+  'objectFit',
+  'objectPosition',
+  'objectPosition',
+  'opacity',
+  'opacity',
+  'order',
+  'order',
+  'orientation',
+  'orientation',
+  'orphans',
+  'orphans',
+  'outline',
+  'outline',
+  'outlineColor',
+  'outlineColor',
+  'outlineOffset',
+  'outlineOffset',
+  'outlineStyle',
+  'outlineStyle',
+  'outlineWidth',
+  'outlineWidth',
+  'overflow',
+  'overflow',
+  'overflowWrap',
+  'overflowWrap',
+  'overflowX',
+  'overflowX',
+  'overflowY',
+  'overflowY',
+  'padding',
+  'padding',
+  'paddingAfter',
+  'paddingAfter',
+  'paddingBefore',
+  'paddingBefore',
+  'paddingBottom',
+  'paddingBottom',
+  'paddingEnd',
+  'paddingEnd',
+  'paddingLeft',
+  'paddingLeft',
+  'paddingRight',
+  'paddingRight',
+  'paddingStart',
+  'paddingStart',
+  'paddingTop',
+  'paddingTop',
+  'page',
+  'page',
+  'pageBreakAfter',
+  'pageBreakAfter',
+  'pageBreakBefore',
+  'pageBreakBefore',
+  'pageBreakInside',
+  'pageBreakInside',
+  'perspective',
+  'perspective',
+  'perspectiveOrigin',
+  'perspectiveOrigin',
+  'perspectiveOriginX',
+  'perspectiveOriginX',
+  'perspectiveOriginY',
+  'perspectiveOriginY',
+  'pointerEvents',
+  'pointerEvents',
+  'position',
+  'position',
+  'printColorAdjust',
+  'printColorAdjust',
+  'quotes',
+  'quotes',
+  'resize',
+  'resize',
+  'right',
+  'right',
+  'rtlOrdering',
+  'rtlOrdering',
+  'rubyPosition',
+  'rubyPosition',
+  'scrollBehavior',
+  'scrollBehavior',
+  'shapeImageThreshold',
+  'shapeImageThreshold',
+  'shapeMargin',
+  'shapeMargin',
+  'shapeOutside',
+  'shapeOutside',
+  'size',
+  'size',
+  'speak',
+  'speak',
+  'src',
+  'src',
+  'tabSize',
+  'tabSize',
+  'tableLayout',
+  'tableLayout',
+  'tapHighlightColor',
+  'tapHighlightColor',
+  'textAlign',
+  'textAlign',
+  'textAlignLast',
+  'textAlignLast',
+  'textCombine',
+  'textCombine',
+  'textDecoration',
+  'textDecoration',
+  'textDecorationColor',
+  'textDecorationColor',
+  'textDecorationLine',
+  'textDecorationLine',
+  'textDecorationStyle',
+  'textDecorationStyle',
+  'textDecorationsInEffect',
+  'textDecorationsInEffect',
+  'textEmphasis',
+  'textEmphasis',
+  'textEmphasisColor',
+  'textEmphasisColor',
+  'textEmphasisPosition',
+  'textEmphasisPosition',
+  'textEmphasisStyle',
+  'textEmphasisStyle',
+  'textFillColor',
+  'textFillColor',
+  'textIndent',
+  'textIndent',
+  'textJustify',
+  'textJustify',
+  'textLineThroughColor',
+  'textLineThroughColor',
+  'textLineThroughMode',
+  'textLineThroughMode',
+  'textLineThroughStyle',
+  'textLineThroughStyle',
+  'textLineThroughWidth',
+  'textLineThroughWidth',
+  'textOrientation',
+  'textOrientation',
+  'textOverflow',
+  'textOverflow',
+  'textOverlineColor',
+  'textOverlineColor',
+  'textOverlineMode',
+  'textOverlineMode',
+  'textOverlineStyle',
+  'textOverlineStyle',
+  'textOverlineWidth',
+  'textOverlineWidth',
+  'textRendering',
+  'textRendering',
+  'textSecurity',
+  'textSecurity',
+  'textShadow',
+  'textShadow',
+  'textStroke',
+  'textStroke',
+  'textStrokeColor',
+  'textStrokeColor',
+  'textStrokeWidth',
+  'textStrokeWidth',
+  'textTransform',
+  'textTransform',
+  'textUnderlineColor',
+  'textUnderlineColor',
+  'textUnderlineMode',
+  'textUnderlineMode',
+  'textUnderlinePosition',
+  'textUnderlinePosition',
+  'textUnderlineStyle',
+  'textUnderlineStyle',
+  'textUnderlineWidth',
+  'textUnderlineWidth',
+  'top',
+  'top',
+  'touchAction',
+  'touchAction',
+  'touchActionDelay',
+  'touchActionDelay',
+  'transform',
+  'transform',
+  'transformOrigin',
+  'transformOrigin',
+  'transformOriginX',
+  'transformOriginX',
+  'transformOriginY',
+  'transformOriginY',
+  'transformOriginZ',
+  'transformOriginZ',
+  'transformStyle',
+  'transformStyle',
+  'transition',
+  'transition',
+  'transitionDelay',
+  'transitionDelay',
+  'transitionDuration',
+  'transitionDuration',
+  'transitionProperty',
+  'transitionProperty',
+  'transitionTimingFunction',
+  'transitionTimingFunction',
+  'unicodeBidi',
+  'unicodeBidi',
+  'unicodeRange',
+  'unicodeRange',
+  'userDrag',
+  'userDrag',
+  'userModify',
+  'userModify',
+  'userSelect',
+  'userSelect',
+  'userZoom',
+  'userZoom',
+  'verticalAlign',
+  'verticalAlign',
+  'visibility',
+  'visibility',
+  'whiteSpace',
+  'whiteSpace',
+  'widows',
+  'widows',
+  'width',
+  'width',
+  'willChange',
+  'willChange',
+  'wordBreak',
+  'wordBreak',
+  'wordSpacing',
+  'wordSpacing',
+  'wordWrap',
+  'wordWrap',
+  'wrapFlow',
+  'wrapFlow',
+  'wrapThrough',
+  'wrapThrough',
+  'writingMode',
+  'writingMode',
+  'zIndex',
+  'zIndex',
+  'zoom',
+  'zoom'
+]);
+dart.defineExtensionNames([
+  'getPropertyValue',
+  'supportsProperty',
+  'setProperty',
+  'getPropertyPriority',
+  'item',
+  'removeProperty',
+  'background',
+  'background',
+  'backgroundAttachment',
+  'backgroundAttachment',
+  'backgroundColor',
+  'backgroundColor',
+  'backgroundImage',
+  'backgroundImage',
+  'backgroundPosition',
+  'backgroundPosition',
+  'backgroundRepeat',
+  'backgroundRepeat',
+  'border',
+  'border',
+  'borderBottom',
+  'borderBottom',
+  'borderBottomColor',
+  'borderBottomColor',
+  'borderBottomStyle',
+  'borderBottomStyle',
+  'borderBottomWidth',
+  'borderBottomWidth',
+  'borderCollapse',
+  'borderCollapse',
+  'borderColor',
+  'borderColor',
+  'borderLeft',
+  'borderLeft',
+  'borderLeftColor',
+  'borderLeftColor',
+  'borderLeftStyle',
+  'borderLeftStyle',
+  'borderLeftWidth',
+  'borderLeftWidth',
+  'borderRight',
+  'borderRight',
+  'borderRightColor',
+  'borderRightColor',
+  'borderRightStyle',
+  'borderRightStyle',
+  'borderRightWidth',
+  'borderRightWidth',
+  'borderSpacing',
+  'borderSpacing',
+  'borderStyle',
+  'borderStyle',
+  'borderTop',
+  'borderTop',
+  'borderTopColor',
+  'borderTopColor',
+  'borderTopStyle',
+  'borderTopStyle',
+  'borderTopWidth',
+  'borderTopWidth',
+  'borderWidth',
+  'borderWidth',
+  'bottom',
+  'bottom',
+  'captionSide',
+  'captionSide',
+  'clear',
+  'clear',
+  'clip',
+  'clip',
+  'color',
+  'color',
+  'content',
+  'content',
+  'cursor',
+  'cursor',
+  'direction',
+  'direction',
+  'display',
+  'display',
+  'emptyCells',
+  'emptyCells',
+  'font',
+  'font',
+  'fontFamily',
+  'fontFamily',
+  'fontSize',
+  'fontSize',
+  'fontStyle',
+  'fontStyle',
+  'fontVariant',
+  'fontVariant',
+  'fontWeight',
+  'fontWeight',
+  'height',
+  'height',
+  'left',
+  'left',
+  'letterSpacing',
+  'letterSpacing',
+  'lineHeight',
+  'lineHeight',
+  'listStyle',
+  'listStyle',
+  'listStyleImage',
+  'listStyleImage',
+  'listStylePosition',
+  'listStylePosition',
+  'listStyleType',
+  'listStyleType',
+  'margin',
+  'margin',
+  'marginBottom',
+  'marginBottom',
+  'marginLeft',
+  'marginLeft',
+  'marginRight',
+  'marginRight',
+  'marginTop',
+  'marginTop',
+  'maxHeight',
+  'maxHeight',
+  'maxWidth',
+  'maxWidth',
+  'minHeight',
+  'minHeight',
+  'minWidth',
+  'minWidth',
+  'outline',
+  'outline',
+  'outlineColor',
+  'outlineColor',
+  'outlineStyle',
+  'outlineStyle',
+  'outlineWidth',
+  'outlineWidth',
+  'overflow',
+  'overflow',
+  'padding',
+  'padding',
+  'paddingBottom',
+  'paddingBottom',
+  'paddingLeft',
+  'paddingLeft',
+  'paddingRight',
+  'paddingRight',
+  'paddingTop',
+  'paddingTop',
+  'pageBreakAfter',
+  'pageBreakAfter',
+  'pageBreakBefore',
+  'pageBreakBefore',
+  'pageBreakInside',
+  'pageBreakInside',
+  'position',
+  'position',
+  'quotes',
+  'quotes',
+  'right',
+  'right',
+  'tableLayout',
+  'tableLayout',
+  'textAlign',
+  'textAlign',
+  'textDecoration',
+  'textDecoration',
+  'textIndent',
+  'textIndent',
+  'textTransform',
+  'textTransform',
+  'top',
+  'top',
+  'unicodeBidi',
+  'unicodeBidi',
+  'verticalAlign',
+  'verticalAlign',
+  'visibility',
+  'visibility',
+  'whiteSpace',
+  'whiteSpace',
+  'width',
+  'width',
+  'wordSpacing',
+  'wordSpacing',
+  'zIndex',
+  'zIndex',
+  'cssText',
+  'length',
+  'parentRule'
+]);
+html$.CssStyleDeclaration = class CssStyleDeclaration extends dart.mixin(_interceptors.Interceptor, html$.CssStyleDeclarationBase) {
+  static new() {
+    return html$.CssStyleDeclaration.css('');
+  }
+  static css(css) {
+    let style = html$.Element.tag('div')[dartx.style];
+    style[dartx.cssText] = css;
+    return style;
+  }
+  [dartx.getPropertyValue](propertyName) {
+    let propValue = this[_getPropertyValueHelper](propertyName);
+    return propValue != null ? propValue : '';
+  }
+  [_getPropertyValueHelper](propertyName) {
+    if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
+      return this[_getPropertyValue](propertyName);
+    } else {
+      return this[_getPropertyValue](dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName));
+    }
+  }
+  [dartx.supportsProperty](propertyName) {
+    return dart.test(this[_supportsProperty](propertyName)) || dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName))));
+  }
+  [_supportsProperty](propertyName) {
+    return propertyName in this;
+  }
+  [dartx.setProperty](propertyName, value, priority) {
+    if (priority === void 0) priority = null;
+    return this[_setPropertyHelper](this[_browserPropertyName](propertyName), value, priority);
+  }
+  [_browserPropertyName](propertyName) {
+    let name = html$.CssStyleDeclaration._readCache(propertyName);
+    if (typeof name == 'string') return name;
+    if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
+      name = propertyName;
+    } else {
+      name = dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName);
+    }
+    html$.CssStyleDeclaration._writeCache(propertyName, name);
+    return name;
+  }
+  static _readCache(key) {
+    return html$.CssStyleDeclaration._propertyCache[key];
+  }
+  static _writeCache(key, value) {
+    html$.CssStyleDeclaration._propertyCache[key] = value;
+  }
+  static _camelCase(hyphenated) {
+    let replacedMs = hyphenated.replace(/^-ms-/, "ms-");
+    return replacedMs.replace(/-([\da-z])/ig, (_, letter) => letter.toUpperCase());
+  }
+  [_setPropertyHelper](propertyName, value, priority) {
+    if (priority === void 0) priority = null;
+    if (value == null) value = '';
+    if (priority == null) priority = '';
+    this.setProperty(propertyName, value, priority);
+  }
+  static get supportsTransitions() {
+    return html$.document[dartx.body][dartx.style][dartx.supportsProperty]('transition');
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.cssText]() {
+    return this.cssText;
+  }
+  set [dartx.cssText](value) {
+    this.cssText = value;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.parentRule]() {
+    return this.parentRule;
+  }
+  [dartx.getPropertyPriority](...args) {
+    return this.getPropertyPriority.apply(this, args);
+  }
+  [_getPropertyValue](...args) {
+    return this.getPropertyValue.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.removeProperty](...args) {
+    return this.removeProperty.apply(this, args);
+  }
+  get [dartx.background]() {
+    return this[_background];
+  }
+  set [dartx.background](value) {
+    this[_background] = value == null ? '' : value;
+  }
+  get [_background]() {
+    return this.background;
+  }
+  set [_background](value) {
+    this.background = value;
+  }
+  get [dartx.backgroundAttachment]() {
+    return this[_backgroundAttachment];
+  }
+  set [dartx.backgroundAttachment](value) {
+    this[_backgroundAttachment] = value == null ? '' : value;
+  }
+  get [_backgroundAttachment]() {
+    return this.backgroundAttachment;
+  }
+  set [_backgroundAttachment](value) {
+    this.backgroundAttachment = value;
+  }
+  get [dartx.backgroundColor]() {
+    return this[_backgroundColor];
+  }
+  set [dartx.backgroundColor](value) {
+    this[_backgroundColor] = value == null ? '' : value;
+  }
+  get [_backgroundColor]() {
+    return this.backgroundColor;
+  }
+  set [_backgroundColor](value) {
+    this.backgroundColor = value;
+  }
+  get [dartx.backgroundImage]() {
+    return this[_backgroundImage];
+  }
+  set [dartx.backgroundImage](value) {
+    this[_backgroundImage] = value == null ? '' : value;
+  }
+  get [_backgroundImage]() {
+    return this.backgroundImage;
+  }
+  set [_backgroundImage](value) {
+    this.backgroundImage = value;
+  }
+  get [dartx.backgroundPosition]() {
+    return this[_backgroundPosition];
+  }
+  set [dartx.backgroundPosition](value) {
+    this[_backgroundPosition] = value == null ? '' : value;
+  }
+  get [_backgroundPosition]() {
+    return this.backgroundPosition;
+  }
+  set [_backgroundPosition](value) {
+    this.backgroundPosition = value;
+  }
+  get [dartx.backgroundRepeat]() {
+    return this[_backgroundRepeat];
+  }
+  set [dartx.backgroundRepeat](value) {
+    this[_backgroundRepeat] = value == null ? '' : value;
+  }
+  get [_backgroundRepeat]() {
+    return this.backgroundRepeat;
+  }
+  set [_backgroundRepeat](value) {
+    this.backgroundRepeat = value;
+  }
+  get [dartx.border]() {
+    return this[_border];
+  }
+  set [dartx.border](value) {
+    this[_border] = value == null ? '' : value;
+  }
+  get [_border]() {
+    return this.border;
+  }
+  set [_border](value) {
+    this.border = value;
+  }
+  get [dartx.borderBottom]() {
+    return this[_borderBottom];
+  }
+  set [dartx.borderBottom](value) {
+    this[_borderBottom] = value == null ? '' : value;
+  }
+  get [_borderBottom]() {
+    return this.borderBottom;
+  }
+  set [_borderBottom](value) {
+    this.borderBottom = value;
+  }
+  get [dartx.borderBottomColor]() {
+    return this[_borderBottomColor];
+  }
+  set [dartx.borderBottomColor](value) {
+    this[_borderBottomColor] = value == null ? '' : value;
+  }
+  get [_borderBottomColor]() {
+    return this.borderBottomColor;
+  }
+  set [_borderBottomColor](value) {
+    this.borderBottomColor = value;
+  }
+  get [dartx.borderBottomStyle]() {
+    return this[_borderBottomStyle];
+  }
+  set [dartx.borderBottomStyle](value) {
+    this[_borderBottomStyle] = value == null ? '' : value;
+  }
+  get [_borderBottomStyle]() {
+    return this.borderBottomStyle;
+  }
+  set [_borderBottomStyle](value) {
+    this.borderBottomStyle = value;
+  }
+  get [dartx.borderBottomWidth]() {
+    return this[_borderBottomWidth];
+  }
+  set [dartx.borderBottomWidth](value) {
+    this[_borderBottomWidth] = value == null ? '' : value;
+  }
+  get [_borderBottomWidth]() {
+    return this.borderBottomWidth;
+  }
+  set [_borderBottomWidth](value) {
+    this.borderBottomWidth = value;
+  }
+  get [dartx.borderCollapse]() {
+    return this[_borderCollapse];
+  }
+  set [dartx.borderCollapse](value) {
+    this[_borderCollapse] = value == null ? '' : value;
+  }
+  get [_borderCollapse]() {
+    return this.borderCollapse;
+  }
+  set [_borderCollapse](value) {
+    this.borderCollapse = value;
+  }
+  get [dartx.borderColor]() {
+    return this[_borderColor];
+  }
+  set [dartx.borderColor](value) {
+    this[_borderColor] = value == null ? '' : value;
+  }
+  get [_borderColor]() {
+    return this.borderColor;
+  }
+  set [_borderColor](value) {
+    this.borderColor = value;
+  }
+  get [dartx.borderLeft]() {
+    return this[_borderLeft];
+  }
+  set [dartx.borderLeft](value) {
+    this[_borderLeft] = value == null ? '' : value;
+  }
+  get [_borderLeft]() {
+    return this.borderLeft;
+  }
+  set [_borderLeft](value) {
+    this.borderLeft = value;
+  }
+  get [dartx.borderLeftColor]() {
+    return this[_borderLeftColor];
+  }
+  set [dartx.borderLeftColor](value) {
+    this[_borderLeftColor] = value == null ? '' : value;
+  }
+  get [_borderLeftColor]() {
+    return this.borderLeftColor;
+  }
+  set [_borderLeftColor](value) {
+    this.borderLeftColor = value;
+  }
+  get [dartx.borderLeftStyle]() {
+    return this[_borderLeftStyle];
+  }
+  set [dartx.borderLeftStyle](value) {
+    this[_borderLeftStyle] = value == null ? '' : value;
+  }
+  get [_borderLeftStyle]() {
+    return this.borderLeftStyle;
+  }
+  set [_borderLeftStyle](value) {
+    this.borderLeftStyle = value;
+  }
+  get [dartx.borderLeftWidth]() {
+    return this[_borderLeftWidth];
+  }
+  set [dartx.borderLeftWidth](value) {
+    this[_borderLeftWidth] = value == null ? '' : value;
+  }
+  get [_borderLeftWidth]() {
+    return this.borderLeftWidth;
+  }
+  set [_borderLeftWidth](value) {
+    this.borderLeftWidth = value;
+  }
+  get [dartx.borderRight]() {
+    return this[_borderRight];
+  }
+  set [dartx.borderRight](value) {
+    this[_borderRight] = value == null ? '' : value;
+  }
+  get [_borderRight]() {
+    return this.borderRight;
+  }
+  set [_borderRight](value) {
+    this.borderRight = value;
+  }
+  get [dartx.borderRightColor]() {
+    return this[_borderRightColor];
+  }
+  set [dartx.borderRightColor](value) {
+    this[_borderRightColor] = value == null ? '' : value;
+  }
+  get [_borderRightColor]() {
+    return this.borderRightColor;
+  }
+  set [_borderRightColor](value) {
+    this.borderRightColor = value;
+  }
+  get [dartx.borderRightStyle]() {
+    return this[_borderRightStyle];
+  }
+  set [dartx.borderRightStyle](value) {
+    this[_borderRightStyle] = value == null ? '' : value;
+  }
+  get [_borderRightStyle]() {
+    return this.borderRightStyle;
+  }
+  set [_borderRightStyle](value) {
+    this.borderRightStyle = value;
+  }
+  get [dartx.borderRightWidth]() {
+    return this[_borderRightWidth];
+  }
+  set [dartx.borderRightWidth](value) {
+    this[_borderRightWidth] = value == null ? '' : value;
+  }
+  get [_borderRightWidth]() {
+    return this.borderRightWidth;
+  }
+  set [_borderRightWidth](value) {
+    this.borderRightWidth = value;
+  }
+  get [dartx.borderSpacing]() {
+    return this[_borderSpacing];
+  }
+  set [dartx.borderSpacing](value) {
+    this[_borderSpacing] = value == null ? '' : value;
+  }
+  get [_borderSpacing]() {
+    return this.borderSpacing;
+  }
+  set [_borderSpacing](value) {
+    this.borderSpacing = value;
+  }
+  get [dartx.borderStyle]() {
+    return this[_borderStyle];
+  }
+  set [dartx.borderStyle](value) {
+    this[_borderStyle] = value == null ? '' : value;
+  }
+  get [_borderStyle]() {
+    return this.borderStyle;
+  }
+  set [_borderStyle](value) {
+    this.borderStyle = value;
+  }
+  get [dartx.borderTop]() {
+    return this[_borderTop];
+  }
+  set [dartx.borderTop](value) {
+    this[_borderTop] = value == null ? '' : value;
+  }
+  get [_borderTop]() {
+    return this.borderTop;
+  }
+  set [_borderTop](value) {
+    this.borderTop = value;
+  }
+  get [dartx.borderTopColor]() {
+    return this[_borderTopColor];
+  }
+  set [dartx.borderTopColor](value) {
+    this[_borderTopColor] = value == null ? '' : value;
+  }
+  get [_borderTopColor]() {
+    return this.borderTopColor;
+  }
+  set [_borderTopColor](value) {
+    this.borderTopColor = value;
+  }
+  get [dartx.borderTopStyle]() {
+    return this[_borderTopStyle];
+  }
+  set [dartx.borderTopStyle](value) {
+    this[_borderTopStyle] = value == null ? '' : value;
+  }
+  get [_borderTopStyle]() {
+    return this.borderTopStyle;
+  }
+  set [_borderTopStyle](value) {
+    this.borderTopStyle = value;
+  }
+  get [dartx.borderTopWidth]() {
+    return this[_borderTopWidth];
+  }
+  set [dartx.borderTopWidth](value) {
+    this[_borderTopWidth] = value == null ? '' : value;
+  }
+  get [_borderTopWidth]() {
+    return this.borderTopWidth;
+  }
+  set [_borderTopWidth](value) {
+    this.borderTopWidth = value;
+  }
+  get [dartx.borderWidth]() {
+    return this[_borderWidth];
+  }
+  set [dartx.borderWidth](value) {
+    this[_borderWidth] = value == null ? '' : value;
+  }
+  get [_borderWidth]() {
+    return this.borderWidth;
+  }
+  set [_borderWidth](value) {
+    this.borderWidth = value;
+  }
+  get [dartx.bottom]() {
+    return this[_bottom];
+  }
+  set [dartx.bottom](value) {
+    this[_bottom] = value == null ? '' : value;
+  }
+  get [_bottom]() {
+    return this.bottom;
+  }
+  set [_bottom](value) {
+    this.bottom = value;
+  }
+  get [dartx.captionSide]() {
+    return this[_captionSide];
+  }
+  set [dartx.captionSide](value) {
+    this[_captionSide] = value == null ? '' : value;
+  }
+  get [_captionSide]() {
+    return this.captionSide;
+  }
+  set [_captionSide](value) {
+    this.captionSide = value;
+  }
+  get [dartx.clear]() {
+    return this[_clear$1];
+  }
+  set [dartx.clear](value) {
+    this[_clear$1] = value == null ? '' : value;
+  }
+  get [_clear$1]() {
+    return this.clear;
+  }
+  set [_clear$1](value) {
+    this.clear = value;
+  }
+  get [dartx.clip]() {
+    return this[_clip];
+  }
+  set [dartx.clip](value) {
+    this[_clip] = value == null ? '' : value;
+  }
+  get [_clip]() {
+    return this.clip;
+  }
+  set [_clip](value) {
+    this.clip = value;
+  }
+  get [dartx.color]() {
+    return this[_color];
+  }
+  set [dartx.color](value) {
+    this[_color] = value == null ? '' : value;
+  }
+  get [_color]() {
+    return this.color;
+  }
+  set [_color](value) {
+    this.color = value;
+  }
+  get [dartx.content]() {
+    return this[_content];
+  }
+  set [dartx.content](value) {
+    this[_content] = value == null ? '' : value;
+  }
+  get [_content]() {
+    return this.content;
+  }
+  set [_content](value) {
+    this.content = value;
+  }
+  get [dartx.cursor]() {
+    return this[_cursor];
+  }
+  set [dartx.cursor](value) {
+    this[_cursor] = value == null ? '' : value;
+  }
+  get [_cursor]() {
+    return this.cursor;
+  }
+  set [_cursor](value) {
+    this.cursor = value;
+  }
+  get [dartx.direction]() {
+    return this[_direction];
+  }
+  set [dartx.direction](value) {
+    this[_direction] = value == null ? '' : value;
+  }
+  get [_direction]() {
+    return this.direction;
+  }
+  set [_direction](value) {
+    this.direction = value;
+  }
+  get [dartx.display]() {
+    return this[_display];
+  }
+  set [dartx.display](value) {
+    this[_display] = value == null ? '' : value;
+  }
+  get [_display]() {
+    return this.display;
+  }
+  set [_display](value) {
+    this.display = value;
+  }
+  get [dartx.emptyCells]() {
+    return this[_emptyCells];
+  }
+  set [dartx.emptyCells](value) {
+    this[_emptyCells] = value == null ? '' : value;
+  }
+  get [_emptyCells]() {
+    return this.emptyCells;
+  }
+  set [_emptyCells](value) {
+    this.emptyCells = value;
+  }
+  get [dartx.font]() {
+    return this[_font];
+  }
+  set [dartx.font](value) {
+    this[_font] = value == null ? '' : value;
+  }
+  get [_font]() {
+    return this.font;
+  }
+  set [_font](value) {
+    this.font = value;
+  }
+  get [dartx.fontFamily]() {
+    return this[_fontFamily];
+  }
+  set [dartx.fontFamily](value) {
+    this[_fontFamily] = value == null ? '' : value;
+  }
+  get [_fontFamily]() {
+    return this.fontFamily;
+  }
+  set [_fontFamily](value) {
+    this.fontFamily = value;
+  }
+  get [dartx.fontSize]() {
+    return this[_fontSize];
+  }
+  set [dartx.fontSize](value) {
+    this[_fontSize] = value == null ? '' : value;
+  }
+  get [_fontSize]() {
+    return this.fontSize;
+  }
+  set [_fontSize](value) {
+    this.fontSize = value;
+  }
+  get [dartx.fontStyle]() {
+    return this[_fontStyle];
+  }
+  set [dartx.fontStyle](value) {
+    this[_fontStyle] = value == null ? '' : value;
+  }
+  get [_fontStyle]() {
+    return this.fontStyle;
+  }
+  set [_fontStyle](value) {
+    this.fontStyle = value;
+  }
+  get [dartx.fontVariant]() {
+    return this[_fontVariant];
+  }
+  set [dartx.fontVariant](value) {
+    this[_fontVariant] = value == null ? '' : value;
+  }
+  get [_fontVariant]() {
+    return this.fontVariant;
+  }
+  set [_fontVariant](value) {
+    this.fontVariant = value;
+  }
+  get [dartx.fontWeight]() {
+    return this[_fontWeight];
+  }
+  set [dartx.fontWeight](value) {
+    this[_fontWeight] = value == null ? '' : value;
+  }
+  get [_fontWeight]() {
+    return this.fontWeight;
+  }
+  set [_fontWeight](value) {
+    this.fontWeight = value;
+  }
+  get [dartx.height]() {
+    return this[_height$];
+  }
+  set [dartx.height](value) {
+    this[_height$] = value == null ? '' : value;
+  }
+  get [_height$]() {
+    return this.height;
+  }
+  set [_height$](value) {
+    this.height = value;
+  }
+  get [dartx.left]() {
+    return this[_left];
+  }
+  set [dartx.left](value) {
+    this[_left] = value == null ? '' : value;
+  }
+  get [_left]() {
+    return this.left;
+  }
+  set [_left](value) {
+    this.left = value;
+  }
+  get [dartx.letterSpacing]() {
+    return this[_letterSpacing];
+  }
+  set [dartx.letterSpacing](value) {
+    this[_letterSpacing] = value == null ? '' : value;
+  }
+  get [_letterSpacing]() {
+    return this.letterSpacing;
+  }
+  set [_letterSpacing](value) {
+    this.letterSpacing = value;
+  }
+  get [dartx.lineHeight]() {
+    return this[_lineHeight];
+  }
+  set [dartx.lineHeight](value) {
+    this[_lineHeight] = value == null ? '' : value;
+  }
+  get [_lineHeight]() {
+    return this.lineHeight;
+  }
+  set [_lineHeight](value) {
+    this.lineHeight = value;
+  }
+  get [dartx.listStyle]() {
+    return this[_listStyle];
+  }
+  set [dartx.listStyle](value) {
+    this[_listStyle] = value == null ? '' : value;
+  }
+  get [_listStyle]() {
+    return this.listStyle;
+  }
+  set [_listStyle](value) {
+    this.listStyle = value;
+  }
+  get [dartx.listStyleImage]() {
+    return this[_listStyleImage];
+  }
+  set [dartx.listStyleImage](value) {
+    this[_listStyleImage] = value == null ? '' : value;
+  }
+  get [_listStyleImage]() {
+    return this.listStyleImage;
+  }
+  set [_listStyleImage](value) {
+    this.listStyleImage = value;
+  }
+  get [dartx.listStylePosition]() {
+    return this[_listStylePosition];
+  }
+  set [dartx.listStylePosition](value) {
+    this[_listStylePosition] = value == null ? '' : value;
+  }
+  get [_listStylePosition]() {
+    return this.listStylePosition;
+  }
+  set [_listStylePosition](value) {
+    this.listStylePosition = value;
+  }
+  get [dartx.listStyleType]() {
+    return this[_listStyleType];
+  }
+  set [dartx.listStyleType](value) {
+    this[_listStyleType] = value == null ? '' : value;
+  }
+  get [_listStyleType]() {
+    return this.listStyleType;
+  }
+  set [_listStyleType](value) {
+    this.listStyleType = value;
+  }
+  get [dartx.margin]() {
+    return this[_margin];
+  }
+  set [dartx.margin](value) {
+    this[_margin] = value == null ? '' : value;
+  }
+  get [_margin]() {
+    return this.margin;
+  }
+  set [_margin](value) {
+    this.margin = value;
+  }
+  get [dartx.marginBottom]() {
+    return this[_marginBottom];
+  }
+  set [dartx.marginBottom](value) {
+    this[_marginBottom] = value == null ? '' : value;
+  }
+  get [_marginBottom]() {
+    return this.marginBottom;
+  }
+  set [_marginBottom](value) {
+    this.marginBottom = value;
+  }
+  get [dartx.marginLeft]() {
+    return this[_marginLeft];
+  }
+  set [dartx.marginLeft](value) {
+    this[_marginLeft] = value == null ? '' : value;
+  }
+  get [_marginLeft]() {
+    return this.marginLeft;
+  }
+  set [_marginLeft](value) {
+    this.marginLeft = value;
+  }
+  get [dartx.marginRight]() {
+    return this[_marginRight];
+  }
+  set [dartx.marginRight](value) {
+    this[_marginRight] = value == null ? '' : value;
+  }
+  get [_marginRight]() {
+    return this.marginRight;
+  }
+  set [_marginRight](value) {
+    this.marginRight = value;
+  }
+  get [dartx.marginTop]() {
+    return this[_marginTop];
+  }
+  set [dartx.marginTop](value) {
+    this[_marginTop] = value == null ? '' : value;
+  }
+  get [_marginTop]() {
+    return this.marginTop;
+  }
+  set [_marginTop](value) {
+    this.marginTop = value;
+  }
+  get [dartx.maxHeight]() {
+    return this[_maxHeight];
+  }
+  set [dartx.maxHeight](value) {
+    this[_maxHeight] = value == null ? '' : value;
+  }
+  get [_maxHeight]() {
+    return this.maxHeight;
+  }
+  set [_maxHeight](value) {
+    this.maxHeight = value;
+  }
+  get [dartx.maxWidth]() {
+    return this[_maxWidth];
+  }
+  set [dartx.maxWidth](value) {
+    this[_maxWidth] = value == null ? '' : value;
+  }
+  get [_maxWidth]() {
+    return this.maxWidth;
+  }
+  set [_maxWidth](value) {
+    this.maxWidth = value;
+  }
+  get [dartx.minHeight]() {
+    return this[_minHeight];
+  }
+  set [dartx.minHeight](value) {
+    this[_minHeight] = value == null ? '' : value;
+  }
+  get [_minHeight]() {
+    return this.minHeight;
+  }
+  set [_minHeight](value) {
+    this.minHeight = value;
+  }
+  get [dartx.minWidth]() {
+    return this[_minWidth];
+  }
+  set [dartx.minWidth](value) {
+    this[_minWidth] = value == null ? '' : value;
+  }
+  get [_minWidth]() {
+    return this.minWidth;
+  }
+  set [_minWidth](value) {
+    this.minWidth = value;
+  }
+  get [dartx.outline]() {
+    return this[_outline];
+  }
+  set [dartx.outline](value) {
+    this[_outline] = value == null ? '' : value;
+  }
+  get [_outline]() {
+    return this.outline;
+  }
+  set [_outline](value) {
+    this.outline = value;
+  }
+  get [dartx.outlineColor]() {
+    return this[_outlineColor];
+  }
+  set [dartx.outlineColor](value) {
+    this[_outlineColor] = value == null ? '' : value;
+  }
+  get [_outlineColor]() {
+    return this.outlineColor;
+  }
+  set [_outlineColor](value) {
+    this.outlineColor = value;
+  }
+  get [dartx.outlineStyle]() {
+    return this[_outlineStyle];
+  }
+  set [dartx.outlineStyle](value) {
+    this[_outlineStyle] = value == null ? '' : value;
+  }
+  get [_outlineStyle]() {
+    return this.outlineStyle;
+  }
+  set [_outlineStyle](value) {
+    this.outlineStyle = value;
+  }
+  get [dartx.outlineWidth]() {
+    return this[_outlineWidth];
+  }
+  set [dartx.outlineWidth](value) {
+    this[_outlineWidth] = value == null ? '' : value;
+  }
+  get [_outlineWidth]() {
+    return this.outlineWidth;
+  }
+  set [_outlineWidth](value) {
+    this.outlineWidth = value;
+  }
+  get [dartx.overflow]() {
+    return this[_overflow];
+  }
+  set [dartx.overflow](value) {
+    this[_overflow] = value == null ? '' : value;
+  }
+  get [_overflow]() {
+    return this.overflow;
+  }
+  set [_overflow](value) {
+    this.overflow = value;
+  }
+  get [dartx.padding]() {
+    return this[_padding];
+  }
+  set [dartx.padding](value) {
+    this[_padding] = value == null ? '' : value;
+  }
+  get [_padding]() {
+    return this.padding;
+  }
+  set [_padding](value) {
+    this.padding = value;
+  }
+  get [dartx.paddingBottom]() {
+    return this[_paddingBottom];
+  }
+  set [dartx.paddingBottom](value) {
+    this[_paddingBottom] = value == null ? '' : value;
+  }
+  get [_paddingBottom]() {
+    return this.paddingBottom;
+  }
+  set [_paddingBottom](value) {
+    this.paddingBottom = value;
+  }
+  get [dartx.paddingLeft]() {
+    return this[_paddingLeft];
+  }
+  set [dartx.paddingLeft](value) {
+    this[_paddingLeft] = value == null ? '' : value;
+  }
+  get [_paddingLeft]() {
+    return this.paddingLeft;
+  }
+  set [_paddingLeft](value) {
+    this.paddingLeft = value;
+  }
+  get [dartx.paddingRight]() {
+    return this[_paddingRight];
+  }
+  set [dartx.paddingRight](value) {
+    this[_paddingRight] = value == null ? '' : value;
+  }
+  get [_paddingRight]() {
+    return this.paddingRight;
+  }
+  set [_paddingRight](value) {
+    this.paddingRight = value;
+  }
+  get [dartx.paddingTop]() {
+    return this[_paddingTop];
+  }
+  set [dartx.paddingTop](value) {
+    this[_paddingTop] = value == null ? '' : value;
+  }
+  get [_paddingTop]() {
+    return this.paddingTop;
+  }
+  set [_paddingTop](value) {
+    this.paddingTop = value;
+  }
+  get [dartx.pageBreakAfter]() {
+    return this[_pageBreakAfter];
+  }
+  set [dartx.pageBreakAfter](value) {
+    this[_pageBreakAfter] = value == null ? '' : value;
+  }
+  get [_pageBreakAfter]() {
+    return this.pageBreakAfter;
+  }
+  set [_pageBreakAfter](value) {
+    this.pageBreakAfter = value;
+  }
+  get [dartx.pageBreakBefore]() {
+    return this[_pageBreakBefore];
+  }
+  set [dartx.pageBreakBefore](value) {
+    this[_pageBreakBefore] = value == null ? '' : value;
+  }
+  get [_pageBreakBefore]() {
+    return this.pageBreakBefore;
+  }
+  set [_pageBreakBefore](value) {
+    this.pageBreakBefore = value;
+  }
+  get [dartx.pageBreakInside]() {
+    return this[_pageBreakInside];
+  }
+  set [dartx.pageBreakInside](value) {
+    this[_pageBreakInside] = value == null ? '' : value;
+  }
+  get [_pageBreakInside]() {
+    return this.pageBreakInside;
+  }
+  set [_pageBreakInside](value) {
+    this.pageBreakInside = value;
+  }
+  get [dartx.position]() {
+    return this[_position$1];
+  }
+  set [dartx.position](value) {
+    this[_position$1] = value == null ? '' : value;
+  }
+  get [_position$1]() {
+    return this.position;
+  }
+  set [_position$1](value) {
+    this.position = value;
+  }
+  get [dartx.quotes]() {
+    return this[_quotes];
+  }
+  set [dartx.quotes](value) {
+    this[_quotes] = value == null ? '' : value;
+  }
+  get [_quotes]() {
+    return this.quotes;
+  }
+  set [_quotes](value) {
+    this.quotes = value;
+  }
+  get [dartx.right]() {
+    return this[_right];
+  }
+  set [dartx.right](value) {
+    this[_right] = value == null ? '' : value;
+  }
+  get [_right]() {
+    return this.right;
+  }
+  set [_right](value) {
+    this.right = value;
+  }
+  get [dartx.tableLayout]() {
+    return this[_tableLayout];
+  }
+  set [dartx.tableLayout](value) {
+    this[_tableLayout] = value == null ? '' : value;
+  }
+  get [_tableLayout]() {
+    return this.tableLayout;
+  }
+  set [_tableLayout](value) {
+    this.tableLayout = value;
+  }
+  get [dartx.textAlign]() {
+    return this[_textAlign];
+  }
+  set [dartx.textAlign](value) {
+    this[_textAlign] = value == null ? '' : value;
+  }
+  get [_textAlign]() {
+    return this.textAlign;
+  }
+  set [_textAlign](value) {
+    this.textAlign = value;
+  }
+  get [dartx.textDecoration]() {
+    return this[_textDecoration];
+  }
+  set [dartx.textDecoration](value) {
+    this[_textDecoration] = value == null ? '' : value;
+  }
+  get [_textDecoration]() {
+    return this.textDecoration;
+  }
+  set [_textDecoration](value) {
+    this.textDecoration = value;
+  }
+  get [dartx.textIndent]() {
+    return this[_textIndent];
+  }
+  set [dartx.textIndent](value) {
+    this[_textIndent] = value == null ? '' : value;
+  }
+  get [_textIndent]() {
+    return this.textIndent;
+  }
+  set [_textIndent](value) {
+    this.textIndent = value;
+  }
+  get [dartx.textTransform]() {
+    return this[_textTransform];
+  }
+  set [dartx.textTransform](value) {
+    this[_textTransform] = value == null ? '' : value;
+  }
+  get [_textTransform]() {
+    return this.textTransform;
+  }
+  set [_textTransform](value) {
+    this.textTransform = value;
+  }
+  get [dartx.top]() {
+    return this[_top];
+  }
+  set [dartx.top](value) {
+    this[_top] = value == null ? '' : value;
+  }
+  get [_top]() {
+    return this.top;
+  }
+  set [_top](value) {
+    this.top = value;
+  }
+  get [dartx.unicodeBidi]() {
+    return this[_unicodeBidi];
+  }
+  set [dartx.unicodeBidi](value) {
+    this[_unicodeBidi] = value == null ? '' : value;
+  }
+  get [_unicodeBidi]() {
+    return this.unicodeBidi;
+  }
+  set [_unicodeBidi](value) {
+    this.unicodeBidi = value;
+  }
+  get [dartx.verticalAlign]() {
+    return this[_verticalAlign];
+  }
+  set [dartx.verticalAlign](value) {
+    this[_verticalAlign] = value == null ? '' : value;
+  }
+  get [_verticalAlign]() {
+    return this.verticalAlign;
+  }
+  set [_verticalAlign](value) {
+    this.verticalAlign = value;
+  }
+  get [dartx.visibility]() {
+    return this[_visibility];
+  }
+  set [dartx.visibility](value) {
+    this[_visibility] = value == null ? '' : value;
+  }
+  get [_visibility]() {
+    return this.visibility;
+  }
+  set [_visibility](value) {
+    this.visibility = value;
+  }
+  get [dartx.whiteSpace]() {
+    return this[_whiteSpace];
+  }
+  set [dartx.whiteSpace](value) {
+    this[_whiteSpace] = value == null ? '' : value;
+  }
+  get [_whiteSpace]() {
+    return this.whiteSpace;
+  }
+  set [_whiteSpace](value) {
+    this.whiteSpace = value;
+  }
+  get [dartx.width]() {
+    return this[_width$];
+  }
+  set [dartx.width](value) {
+    this[_width$] = value == null ? '' : value;
+  }
+  get [_width$]() {
+    return this.width;
+  }
+  set [_width$](value) {
+    this.width = value;
+  }
+  get [dartx.wordSpacing]() {
+    return this[_wordSpacing];
+  }
+  set [dartx.wordSpacing](value) {
+    this[_wordSpacing] = value == null ? '' : value;
+  }
+  get [_wordSpacing]() {
+    return this.wordSpacing;
+  }
+  set [_wordSpacing](value) {
+    this.wordSpacing = value;
+  }
+  get [dartx.zIndex]() {
+    return this[_zIndex];
+  }
+  set [dartx.zIndex](value) {
+    this[_zIndex] = value == null ? '' : value;
+  }
+  get [_zIndex]() {
+    return this.zIndex;
+  }
+  set [_zIndex](value) {
+    this.zIndex = value;
+  }
+};
+dart.setSignature(html$.CssStyleDeclaration, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.CssStyleDeclaration, []),
+    css: dart.definiteFunctionType(html$.CssStyleDeclaration, [core.String]),
+    _: dart.definiteFunctionType(html$.CssStyleDeclaration, [])
+  }),
+  fields: () => ({
+    [dartx.cssText]: core.String,
+    [dartx.length]: core.int,
+    [dartx.parentRule]: html$.CssRule,
+    [_background]: core.String,
+    [_backgroundAttachment]: core.String,
+    [_backgroundColor]: core.String,
+    [_backgroundImage]: core.String,
+    [_backgroundPosition]: core.String,
+    [_backgroundRepeat]: core.String,
+    [_border]: core.String,
+    [_borderBottom]: core.String,
+    [_borderBottomColor]: core.String,
+    [_borderBottomStyle]: core.String,
+    [_borderBottomWidth]: core.String,
+    [_borderCollapse]: core.String,
+    [_borderColor]: core.String,
+    [_borderLeft]: core.String,
+    [_borderLeftColor]: core.String,
+    [_borderLeftStyle]: core.String,
+    [_borderLeftWidth]: core.String,
+    [_borderRight]: core.String,
+    [_borderRightColor]: core.String,
+    [_borderRightStyle]: core.String,
+    [_borderRightWidth]: core.String,
+    [_borderSpacing]: core.String,
+    [_borderStyle]: core.String,
+    [_borderTop]: core.String,
+    [_borderTopColor]: core.String,
+    [_borderTopStyle]: core.String,
+    [_borderTopWidth]: core.String,
+    [_borderWidth]: core.String,
+    [_bottom]: core.String,
+    [_captionSide]: core.String,
+    [_clear$1]: core.String,
+    [_clip]: core.String,
+    [_color]: core.String,
+    [_content]: core.String,
+    [_cursor]: core.String,
+    [_direction]: core.String,
+    [_display]: core.String,
+    [_emptyCells]: core.String,
+    [_font]: core.String,
+    [_fontFamily]: core.String,
+    [_fontSize]: core.String,
+    [_fontStyle]: core.String,
+    [_fontVariant]: core.String,
+    [_fontWeight]: core.String,
+    [_height$]: core.String,
+    [_left]: core.String,
+    [_letterSpacing]: core.String,
+    [_lineHeight]: core.String,
+    [_listStyle]: core.String,
+    [_listStyleImage]: core.String,
+    [_listStylePosition]: core.String,
+    [_listStyleType]: core.String,
+    [_margin]: core.String,
+    [_marginBottom]: core.String,
+    [_marginLeft]: core.String,
+    [_marginRight]: core.String,
+    [_marginTop]: core.String,
+    [_maxHeight]: core.String,
+    [_maxWidth]: core.String,
+    [_minHeight]: core.String,
+    [_minWidth]: core.String,
+    [_outline]: core.String,
+    [_outlineColor]: core.String,
+    [_outlineStyle]: core.String,
+    [_outlineWidth]: core.String,
+    [_overflow]: core.String,
+    [_padding]: core.String,
+    [_paddingBottom]: core.String,
+    [_paddingLeft]: core.String,
+    [_paddingRight]: core.String,
+    [_paddingTop]: core.String,
+    [_pageBreakAfter]: core.String,
+    [_pageBreakBefore]: core.String,
+    [_pageBreakInside]: core.String,
+    [_position$1]: core.String,
+    [_quotes]: core.String,
+    [_right]: core.String,
+    [_tableLayout]: core.String,
+    [_textAlign]: core.String,
+    [_textDecoration]: core.String,
+    [_textIndent]: core.String,
+    [_textTransform]: core.String,
+    [_top]: core.String,
+    [_unicodeBidi]: core.String,
+    [_verticalAlign]: core.String,
+    [_visibility]: core.String,
+    [_whiteSpace]: core.String,
+    [_width$]: core.String,
+    [_wordSpacing]: core.String,
+    [_zIndex]: core.String
+  }),
+  methods: () => ({
+    [dartx.getPropertyValue]: dart.definiteFunctionType(core.String, [core.String]),
+    [_getPropertyValueHelper]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.supportsProperty]: dart.definiteFunctionType(core.bool, [core.String]),
+    [_supportsProperty]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.setProperty]: dart.definiteFunctionType(dart.void, [core.String, core.String], [core.String]),
+    [_browserPropertyName]: dart.definiteFunctionType(core.String, [core.String]),
+    [_setPropertyHelper]: dart.definiteFunctionType(dart.void, [core.String, core.String], [core.String]),
+    [dartx.getPropertyPriority]: dart.definiteFunctionType(core.String, [core.String]),
+    [_getPropertyValue]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.removeProperty]: dart.definiteFunctionType(core.String, [core.String])
+  }),
+  sfields: () => ({_propertyCache: dart.dynamic}),
+  sgetters: () => ({supportsTransitions: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _readCache: dart.definiteFunctionType(core.String, [core.String]),
+    _writeCache: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    _camelCase: dart.definiteFunctionType(core.String, [core.String])
+  }),
+  names: ['_readCache', '_writeCache', '_camelCase']
+});
+dart.defineLazy(html$.CssStyleDeclaration, {
+  get _propertyCache() {
+    return {};
+  }
+});
+dart.registerExtension(dart.global.CSSStyleDeclaration, html$.CssStyleDeclaration);
+dart.registerExtension(dart.global.MSStyleCSSProperties, html$.CssStyleDeclaration);
+dart.registerExtension(dart.global.CSS2Properties, html$.CssStyleDeclaration);
+const _elementIterable = Symbol('_elementIterable');
+const _elementCssStyleDeclarationSetIterable = Symbol('_elementCssStyleDeclarationSetIterable');
+const _setAll = Symbol('_setAll');
+html$._CssStyleDeclarationSet = class _CssStyleDeclarationSet extends dart.mixin(core.Object, html$.CssStyleDeclarationBase) {
+  new(elementIterable) {
+    this[_elementIterable] = elementIterable;
+    this[_elementCssStyleDeclarationSetIterable] = null;
+    this[_elementCssStyleDeclarationSetIterable] = core.List.from(this[_elementIterable])[dartx.map](html$.CssStyleDeclaration)(dart.fn(e => html$.CssStyleDeclaration._check(dart.dload(e, 'style')), dynamicToCssStyleDeclaration()));
+  }
+  getPropertyValue(propertyName) {
+    return this[_elementCssStyleDeclarationSetIterable][dartx.first][dartx.getPropertyValue](propertyName);
+  }
+  setProperty(propertyName, value, priority) {
+    if (priority === void 0) priority = null;
+    this[_elementCssStyleDeclarationSetIterable][dartx.forEach](dart.fn(e => e[dartx.setProperty](propertyName, value, priority), CssStyleDeclarationTovoid()));
+  }
+  [_setAll](propertyName, value) {
+    value = value == null ? '' : value;
+    for (let element of this[_elementIterable]) {
+      element.style[propertyName] = value;
+    }
+  }
+  set background(value) {
+    this[_setAll]('background', value);
+  }
+  get background() {
+    return super.background;
+  }
+  set backgroundAttachment(value) {
+    this[_setAll]('backgroundAttachment', value);
+  }
+  get backgroundAttachment() {
+    return super.backgroundAttachment;
+  }
+  set backgroundColor(value) {
+    this[_setAll]('backgroundColor', value);
+  }
+  get backgroundColor() {
+    return super.backgroundColor;
+  }
+  set backgroundImage(value) {
+    this[_setAll]('backgroundImage', value);
+  }
+  get backgroundImage() {
+    return super.backgroundImage;
+  }
+  set backgroundPosition(value) {
+    this[_setAll]('backgroundPosition', value);
+  }
+  get backgroundPosition() {
+    return super.backgroundPosition;
+  }
+  set backgroundRepeat(value) {
+    this[_setAll]('backgroundRepeat', value);
+  }
+  get backgroundRepeat() {
+    return super.backgroundRepeat;
+  }
+  set border(value) {
+    this[_setAll]('border', value);
+  }
+  get border() {
+    return super.border;
+  }
+  set borderBottom(value) {
+    this[_setAll]('borderBottom', value);
+  }
+  get borderBottom() {
+    return super.borderBottom;
+  }
+  set borderBottomColor(value) {
+    this[_setAll]('borderBottomColor', value);
+  }
+  get borderBottomColor() {
+    return super.borderBottomColor;
+  }
+  set borderBottomStyle(value) {
+    this[_setAll]('borderBottomStyle', value);
+  }
+  get borderBottomStyle() {
+    return super.borderBottomStyle;
+  }
+  set borderBottomWidth(value) {
+    this[_setAll]('borderBottomWidth', value);
+  }
+  get borderBottomWidth() {
+    return super.borderBottomWidth;
+  }
+  set borderCollapse(value) {
+    this[_setAll]('borderCollapse', value);
+  }
+  get borderCollapse() {
+    return super.borderCollapse;
+  }
+  set borderColor(value) {
+    this[_setAll]('borderColor', value);
+  }
+  get borderColor() {
+    return super.borderColor;
+  }
+  set borderLeft(value) {
+    this[_setAll]('borderLeft', value);
+  }
+  get borderLeft() {
+    return super.borderLeft;
+  }
+  set borderLeftColor(value) {
+    this[_setAll]('borderLeftColor', value);
+  }
+  get borderLeftColor() {
+    return super.borderLeftColor;
+  }
+  set borderLeftStyle(value) {
+    this[_setAll]('borderLeftStyle', value);
+  }
+  get borderLeftStyle() {
+    return super.borderLeftStyle;
+  }
+  set borderLeftWidth(value) {
+    this[_setAll]('borderLeftWidth', value);
+  }
+  get borderLeftWidth() {
+    return super.borderLeftWidth;
+  }
+  set borderRight(value) {
+    this[_setAll]('borderRight', value);
+  }
+  get borderRight() {
+    return super.borderRight;
+  }
+  set borderRightColor(value) {
+    this[_setAll]('borderRightColor', value);
+  }
+  get borderRightColor() {
+    return super.borderRightColor;
+  }
+  set borderRightStyle(value) {
+    this[_setAll]('borderRightStyle', value);
+  }
+  get borderRightStyle() {
+    return super.borderRightStyle;
+  }
+  set borderRightWidth(value) {
+    this[_setAll]('borderRightWidth', value);
+  }
+  get borderRightWidth() {
+    return super.borderRightWidth;
+  }
+  set borderSpacing(value) {
+    this[_setAll]('borderSpacing', value);
+  }
+  get borderSpacing() {
+    return super.borderSpacing;
+  }
+  set borderStyle(value) {
+    this[_setAll]('borderStyle', value);
+  }
+  get borderStyle() {
+    return super.borderStyle;
+  }
+  set borderTop(value) {
+    this[_setAll]('borderTop', value);
+  }
+  get borderTop() {
+    return super.borderTop;
+  }
+  set borderTopColor(value) {
+    this[_setAll]('borderTopColor', value);
+  }
+  get borderTopColor() {
+    return super.borderTopColor;
+  }
+  set borderTopStyle(value) {
+    this[_setAll]('borderTopStyle', value);
+  }
+  get borderTopStyle() {
+    return super.borderTopStyle;
+  }
+  set borderTopWidth(value) {
+    this[_setAll]('borderTopWidth', value);
+  }
+  get borderTopWidth() {
+    return super.borderTopWidth;
+  }
+  set borderWidth(value) {
+    this[_setAll]('borderWidth', value);
+  }
+  get borderWidth() {
+    return super.borderWidth;
+  }
+  set bottom(value) {
+    this[_setAll]('bottom', value);
+  }
+  get bottom() {
+    return super.bottom;
+  }
+  set captionSide(value) {
+    this[_setAll]('captionSide', value);
+  }
+  get captionSide() {
+    return super.captionSide;
+  }
+  set clear(value) {
+    this[_setAll]('clear', value);
+  }
+  get clear() {
+    return super.clear;
+  }
+  set clip(value) {
+    this[_setAll]('clip', value);
+  }
+  get clip() {
+    return super.clip;
+  }
+  set color(value) {
+    this[_setAll]('color', value);
+  }
+  get color() {
+    return super.color;
+  }
+  set content(value) {
+    this[_setAll]('content', value);
+  }
+  get content() {
+    return super.content;
+  }
+  set cursor(value) {
+    this[_setAll]('cursor', value);
+  }
+  get cursor() {
+    return super.cursor;
+  }
+  set direction(value) {
+    this[_setAll]('direction', value);
+  }
+  get direction() {
+    return super.direction;
+  }
+  set display(value) {
+    this[_setAll]('display', value);
+  }
+  get display() {
+    return super.display;
+  }
+  set emptyCells(value) {
+    this[_setAll]('emptyCells', value);
+  }
+  get emptyCells() {
+    return super.emptyCells;
+  }
+  set font(value) {
+    this[_setAll]('font', value);
+  }
+  get font() {
+    return super.font;
+  }
+  set fontFamily(value) {
+    this[_setAll]('fontFamily', value);
+  }
+  get fontFamily() {
+    return super.fontFamily;
+  }
+  set fontSize(value) {
+    this[_setAll]('fontSize', value);
+  }
+  get fontSize() {
+    return super.fontSize;
+  }
+  set fontStyle(value) {
+    this[_setAll]('fontStyle', value);
+  }
+  get fontStyle() {
+    return super.fontStyle;
+  }
+  set fontVariant(value) {
+    this[_setAll]('fontVariant', value);
+  }
+  get fontVariant() {
+    return super.fontVariant;
+  }
+  set fontWeight(value) {
+    this[_setAll]('fontWeight', value);
+  }
+  get fontWeight() {
+    return super.fontWeight;
+  }
+  set height(value) {
+    this[_setAll]('height', value);
+  }
+  get height() {
+    return super.height;
+  }
+  set left(value) {
+    this[_setAll]('left', value);
+  }
+  get left() {
+    return super.left;
+  }
+  set letterSpacing(value) {
+    this[_setAll]('letterSpacing', value);
+  }
+  get letterSpacing() {
+    return super.letterSpacing;
+  }
+  set lineHeight(value) {
+    this[_setAll]('lineHeight', value);
+  }
+  get lineHeight() {
+    return super.lineHeight;
+  }
+  set listStyle(value) {
+    this[_setAll]('listStyle', value);
+  }
+  get listStyle() {
+    return super.listStyle;
+  }
+  set listStyleImage(value) {
+    this[_setAll]('listStyleImage', value);
+  }
+  get listStyleImage() {
+    return super.listStyleImage;
+  }
+  set listStylePosition(value) {
+    this[_setAll]('listStylePosition', value);
+  }
+  get listStylePosition() {
+    return super.listStylePosition;
+  }
+  set listStyleType(value) {
+    this[_setAll]('listStyleType', value);
+  }
+  get listStyleType() {
+    return super.listStyleType;
+  }
+  set margin(value) {
+    this[_setAll]('margin', value);
+  }
+  get margin() {
+    return super.margin;
+  }
+  set marginBottom(value) {
+    this[_setAll]('marginBottom', value);
+  }
+  get marginBottom() {
+    return super.marginBottom;
+  }
+  set marginLeft(value) {
+    this[_setAll]('marginLeft', value);
+  }
+  get marginLeft() {
+    return super.marginLeft;
+  }
+  set marginRight(value) {
+    this[_setAll]('marginRight', value);
+  }
+  get marginRight() {
+    return super.marginRight;
+  }
+  set marginTop(value) {
+    this[_setAll]('marginTop', value);
+  }
+  get marginTop() {
+    return super.marginTop;
+  }
+  set maxHeight(value) {
+    this[_setAll]('maxHeight', value);
+  }
+  get maxHeight() {
+    return super.maxHeight;
+  }
+  set maxWidth(value) {
+    this[_setAll]('maxWidth', value);
+  }
+  get maxWidth() {
+    return super.maxWidth;
+  }
+  set minHeight(value) {
+    this[_setAll]('minHeight', value);
+  }
+  get minHeight() {
+    return super.minHeight;
+  }
+  set minWidth(value) {
+    this[_setAll]('minWidth', value);
+  }
+  get minWidth() {
+    return super.minWidth;
+  }
+  set outline(value) {
+    this[_setAll]('outline', value);
+  }
+  get outline() {
+    return super.outline;
+  }
+  set outlineColor(value) {
+    this[_setAll]('outlineColor', value);
+  }
+  get outlineColor() {
+    return super.outlineColor;
+  }
+  set outlineStyle(value) {
+    this[_setAll]('outlineStyle', value);
+  }
+  get outlineStyle() {
+    return super.outlineStyle;
+  }
+  set outlineWidth(value) {
+    this[_setAll]('outlineWidth', value);
+  }
+  get outlineWidth() {
+    return super.outlineWidth;
+  }
+  set overflow(value) {
+    this[_setAll]('overflow', value);
+  }
+  get overflow() {
+    return super.overflow;
+  }
+  set padding(value) {
+    this[_setAll]('padding', value);
+  }
+  get padding() {
+    return super.padding;
+  }
+  set paddingBottom(value) {
+    this[_setAll]('paddingBottom', value);
+  }
+  get paddingBottom() {
+    return super.paddingBottom;
+  }
+  set paddingLeft(value) {
+    this[_setAll]('paddingLeft', value);
+  }
+  get paddingLeft() {
+    return super.paddingLeft;
+  }
+  set paddingRight(value) {
+    this[_setAll]('paddingRight', value);
+  }
+  get paddingRight() {
+    return super.paddingRight;
+  }
+  set paddingTop(value) {
+    this[_setAll]('paddingTop', value);
+  }
+  get paddingTop() {
+    return super.paddingTop;
+  }
+  set pageBreakAfter(value) {
+    this[_setAll]('pageBreakAfter', value);
+  }
+  get pageBreakAfter() {
+    return super.pageBreakAfter;
+  }
+  set pageBreakBefore(value) {
+    this[_setAll]('pageBreakBefore', value);
+  }
+  get pageBreakBefore() {
+    return super.pageBreakBefore;
+  }
+  set pageBreakInside(value) {
+    this[_setAll]('pageBreakInside', value);
+  }
+  get pageBreakInside() {
+    return super.pageBreakInside;
+  }
+  set position(value) {
+    this[_setAll]('position', value);
+  }
+  get position() {
+    return super.position;
+  }
+  set quotes(value) {
+    this[_setAll]('quotes', value);
+  }
+  get quotes() {
+    return super.quotes;
+  }
+  set right(value) {
+    this[_setAll]('right', value);
+  }
+  get right() {
+    return super.right;
+  }
+  set tableLayout(value) {
+    this[_setAll]('tableLayout', value);
+  }
+  get tableLayout() {
+    return super.tableLayout;
+  }
+  set textAlign(value) {
+    this[_setAll]('textAlign', value);
+  }
+  get textAlign() {
+    return super.textAlign;
+  }
+  set textDecoration(value) {
+    this[_setAll]('textDecoration', value);
+  }
+  get textDecoration() {
+    return super.textDecoration;
+  }
+  set textIndent(value) {
+    this[_setAll]('textIndent', value);
+  }
+  get textIndent() {
+    return super.textIndent;
+  }
+  set textTransform(value) {
+    this[_setAll]('textTransform', value);
+  }
+  get textTransform() {
+    return super.textTransform;
+  }
+  set top(value) {
+    this[_setAll]('top', value);
+  }
+  get top() {
+    return super.top;
+  }
+  set unicodeBidi(value) {
+    this[_setAll]('unicodeBidi', value);
+  }
+  get unicodeBidi() {
+    return super.unicodeBidi;
+  }
+  set verticalAlign(value) {
+    this[_setAll]('verticalAlign', value);
+  }
+  get verticalAlign() {
+    return super.verticalAlign;
+  }
+  set visibility(value) {
+    this[_setAll]('visibility', value);
+  }
+  get visibility() {
+    return super.visibility;
+  }
+  set whiteSpace(value) {
+    this[_setAll]('whiteSpace', value);
+  }
+  get whiteSpace() {
+    return super.whiteSpace;
+  }
+  set width(value) {
+    this[_setAll]('width', value);
+  }
+  get width() {
+    return super.width;
+  }
+  set wordSpacing(value) {
+    this[_setAll]('wordSpacing', value);
+  }
+  get wordSpacing() {
+    return super.wordSpacing;
+  }
+  set zIndex(value) {
+    this[_setAll]('zIndex', value);
+  }
+  get zIndex() {
+    return super.zIndex;
+  }
+};
+dart.setSignature(html$._CssStyleDeclarationSet, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._CssStyleDeclarationSet, [IterableOfElement()])}),
+  fields: () => ({
+    [_elementIterable]: IterableOfElement(),
+    [_elementCssStyleDeclarationSetIterable]: IterableOfCssStyleDeclaration()
+  }),
+  methods: () => ({
+    getPropertyValue: dart.definiteFunctionType(core.String, [core.String]),
+    setProperty: dart.definiteFunctionType(dart.void, [core.String, core.String], [core.String]),
+    [_setAll]: dart.definiteFunctionType(dart.void, [core.String, core.String])
+  })
+});
+dart.defineExtensionMembers(html$._CssStyleDeclarationSet, [
+  'getPropertyValue',
+  'setProperty',
+  'background',
+  'backgroundAttachment',
+  'backgroundColor',
+  'backgroundImage',
+  'backgroundPosition',
+  'backgroundRepeat',
+  'border',
+  'borderBottom',
+  'borderBottomColor',
+  'borderBottomStyle',
+  'borderBottomWidth',
+  'borderCollapse',
+  'borderColor',
+  'borderLeft',
+  'borderLeftColor',
+  'borderLeftStyle',
+  'borderLeftWidth',
+  'borderRight',
+  'borderRightColor',
+  'borderRightStyle',
+  'borderRightWidth',
+  'borderSpacing',
+  'borderStyle',
+  'borderTop',
+  'borderTopColor',
+  'borderTopStyle',
+  'borderTopWidth',
+  'borderWidth',
+  'bottom',
+  'captionSide',
+  'clear',
+  'clip',
+  'color',
+  'content',
+  'cursor',
+  'direction',
+  'display',
+  'emptyCells',
+  'font',
+  'fontFamily',
+  'fontSize',
+  'fontStyle',
+  'fontVariant',
+  'fontWeight',
+  'height',
+  'left',
+  'letterSpacing',
+  'lineHeight',
+  'listStyle',
+  'listStyleImage',
+  'listStylePosition',
+  'listStyleType',
+  'margin',
+  'marginBottom',
+  'marginLeft',
+  'marginRight',
+  'marginTop',
+  'maxHeight',
+  'maxWidth',
+  'minHeight',
+  'minWidth',
+  'outline',
+  'outlineColor',
+  'outlineStyle',
+  'outlineWidth',
+  'overflow',
+  'padding',
+  'paddingBottom',
+  'paddingLeft',
+  'paddingRight',
+  'paddingTop',
+  'pageBreakAfter',
+  'pageBreakBefore',
+  'pageBreakInside',
+  'position',
+  'quotes',
+  'right',
+  'tableLayout',
+  'textAlign',
+  'textDecoration',
+  'textIndent',
+  'textTransform',
+  'top',
+  'unicodeBidi',
+  'verticalAlign',
+  'visibility',
+  'whiteSpace',
+  'width',
+  'wordSpacing',
+  'zIndex'
+]);
+dart.defineExtensionNames([
+  'selectorText',
+  'style'
+]);
+html$.CssStyleRule = class CssStyleRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.selectorText]() {
+    return this.selectorText;
+  }
+  set [dartx.selectorText](value) {
+    this.selectorText = value;
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+};
+dart.setSignature(html$.CssStyleRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssStyleRule, [])}),
+  fields: () => ({
+    [dartx.selectorText]: core.String,
+    [dartx.style]: html$.CssStyleDeclaration
+  })
+});
+dart.registerExtension(dart.global.CSSStyleRule, html$.CssStyleRule);
+dart.defineExtensionNames([
+  'disabled',
+  'href',
+  'media',
+  'ownerNode',
+  'parentStyleSheet',
+  'title',
+  'type'
+]);
+html$.StyleSheet = class StyleSheet extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  get [dartx.ownerNode]() {
+    return this.ownerNode;
+  }
+  get [dartx.parentStyleSheet]() {
+    return this.parentStyleSheet;
+  }
+  get [dartx.title]() {
+    return this.title;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.StyleSheet, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StyleSheet, [])}),
+  fields: () => ({
+    [dartx.disabled]: core.bool,
+    [dartx.href]: core.String,
+    [dartx.media]: html$.MediaList,
+    [dartx.ownerNode]: html$.Node,
+    [dartx.parentStyleSheet]: html$.StyleSheet,
+    [dartx.title]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.StyleSheet, html$.StyleSheet);
+dart.defineExtensionNames([
+  'addRule',
+  'deleteRule',
+  'insertRule',
+  'removeRule',
+  'cssRules',
+  'ownerRule',
+  'rules'
+]);
+html$.CssStyleSheet = class CssStyleSheet extends html$.StyleSheet {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.cssRules]() {
+    return this.cssRules;
+  }
+  get [dartx.ownerRule]() {
+    return this.ownerRule;
+  }
+  get [dartx.rules]() {
+    return this.rules;
+  }
+  [dartx.addRule](...args) {
+    return this.addRule.apply(this, args);
+  }
+  [dartx.deleteRule](...args) {
+    return this.deleteRule.apply(this, args);
+  }
+  [dartx.insertRule](...args) {
+    return this.insertRule.apply(this, args);
+  }
+  [dartx.removeRule](...args) {
+    return this.removeRule.apply(this, args);
+  }
+};
+dart.setSignature(html$.CssStyleSheet, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssStyleSheet, [])}),
+  fields: () => ({
+    [dartx.cssRules]: ListOfCssRule(),
+    [dartx.ownerRule]: html$.CssRule,
+    [dartx.rules]: ListOfCssRule()
+  }),
+  methods: () => ({
+    [dartx.addRule]: dart.definiteFunctionType(core.int, [core.String, core.String], [core.int]),
+    [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String], [core.int]),
+    [dartx.removeRule]: dart.definiteFunctionType(dart.void, [core.int])
+  })
+});
+dart.registerExtension(dart.global.CSSStyleSheet, html$.CssStyleSheet);
+dart.defineExtensionNames([
+  'deleteRule',
+  'insertRule',
+  'conditionText',
+  'cssRules'
+]);
+html$.CssSupportsRule = class CssSupportsRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.conditionText]() {
+    return this.conditionText;
+  }
+  get [dartx.cssRules]() {
+    return this.cssRules;
+  }
+  [dartx.deleteRule](...args) {
+    return this.deleteRule.apply(this, args);
+  }
+  [dartx.insertRule](...args) {
+    return this.insertRule.apply(this, args);
+  }
+};
+dart.setSignature(html$.CssSupportsRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssSupportsRule, [])}),
+  fields: () => ({
+    [dartx.conditionText]: core.String,
+    [dartx.cssRules]: ListOfCssRule()
+  }),
+  methods: () => ({
+    [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String, core.int])
+  })
+});
+dart.registerExtension(dart.global.CSSSupportsRule, html$.CssSupportsRule);
+dart.defineExtensionNames([
+  'style'
+]);
+html$.CssViewportRule = class CssViewportRule extends html$.CssRule {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+};
+dart.setSignature(html$.CssViewportRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssViewportRule, [])}),
+  fields: () => ({[dartx.style]: html$.CssStyleDeclaration})
+});
+dart.registerExtension(dart.global.CSSViewportRule, html$.CssViewportRule);
+const _dartDetail = Symbol('_dartDetail');
+const _initCustomEvent = Symbol('_initCustomEvent');
+const _detail = Symbol('_detail');
+const _get__detail = Symbol('_get__detail');
+dart.defineExtensionNames([
+  'detail'
+]);
+html$.CustomEvent = class CustomEvent extends html$.Event {
+  get [_dartDetail]() {
+    return this._dartDetail;
+  }
+  set [_dartDetail](value) {
+    this._dartDetail = value;
+  }
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let detail = opts && 'detail' in opts ? opts.detail : null;
+    let e = html$.CustomEvent._check(html$.document[_createEvent]('CustomEvent'));
+    e[_dartDetail] = detail;
+    if (core.List.is(detail) || core.Map.is(detail) || typeof detail == 'string' || typeof detail == 'number') {
+      try {
+        detail = html_common.convertDartToNative_SerializedScriptValue(detail);
+        e[_initCustomEvent](type, canBubble, cancelable, detail);
+      } catch (_) {
+        e[_initCustomEvent](type, canBubble, cancelable, null);
+      }
+
+    } else {
+      e[_initCustomEvent](type, canBubble, cancelable, null);
+    }
+    return e;
+  }
+  get [dartx.detail]() {
+    if (this[_dartDetail] != null) {
+      return this[_dartDetail];
+    }
+    return this[_detail];
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.CustomEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.CustomEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.CustomEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.CustomEvent(type);
+  }
+  get [_detail]() {
+    return html_common.convertNativeToDart_SerializedScriptValue(this[_get__detail]);
+  }
+  get [_get__detail]() {
+    return this.detail;
+  }
+  [_initCustomEvent](...args) {
+    return this.initCustomEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.CustomEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.CustomEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, detail: core.Object}),
+    _: dart.definiteFunctionType(html$.CustomEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [_dartDetail]: dart.dynamic,
+    [_get__detail]: dart.dynamic
+  }),
+  getters: () => ({
+    [dartx.detail]: dart.definiteFunctionType(dart.dynamic, []),
+    [_detail]: dart.definiteFunctionType(dart.dynamic, [])
+  }),
+  methods: () => ({[_initCustomEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.CustomEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.CustomEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.CustomEvent, html$.CustomEvent);
+html$.DListElement = class DListElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.DListElement._check(html$.document[dartx.createElement]("dl"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.DListElement, 'created');
+dart.setSignature(html$.DListElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DListElement, []),
+    new: dart.definiteFunctionType(html$.DListElement, []),
+    created: dart.definiteFunctionType(html$.DListElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLDListElement, html$.DListElement);
+dart.defineExtensionNames([
+  'options'
+]);
+html$.DataListElement = class DataListElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.DataListElement._check(html$.document[dartx.createElement]("datalist"));
+  }
+  created() {
+    this[dartx.options] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('datalist');
+  }
+  get [dartx.options]() {
+    return this.options;
+  }
+};
+dart.defineNamedConstructor(html$.DataListElement, 'created');
+dart.setSignature(html$.DataListElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DataListElement, []),
+    new: dart.definiteFunctionType(html$.DataListElement, []),
+    created: dart.definiteFunctionType(html$.DataListElement, [])
+  }),
+  fields: () => ({[dartx.options]: ListOfNode()}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLDataListElement, html$.DataListElement);
+dart.defineExtensionNames([
+  'clearData',
+  'getData',
+  'setData',
+  'setDragImage',
+  'dropEffect',
+  'effectAllowed',
+  'files',
+  'items',
+  'types'
+]);
+html$.DataTransfer = class DataTransfer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.dropEffect]() {
+    return this.dropEffect;
+  }
+  set [dartx.dropEffect](value) {
+    this.dropEffect = value;
+  }
+  get [dartx.effectAllowed]() {
+    return this.effectAllowed;
+  }
+  set [dartx.effectAllowed](value) {
+    this.effectAllowed = value;
+  }
+  get [dartx.files]() {
+    return this.files;
+  }
+  get [dartx.items]() {
+    return this.items;
+  }
+  get [dartx.types]() {
+    return this.types;
+  }
+  [dartx.clearData](...args) {
+    return this.clearData.apply(this, args);
+  }
+  [dartx.getData](...args) {
+    return this.getData.apply(this, args);
+  }
+  [dartx.setData](...args) {
+    return this.setData.apply(this, args);
+  }
+  [dartx.setDragImage](...args) {
+    return this.setDragImage.apply(this, args);
+  }
+};
+dart.setSignature(html$.DataTransfer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DataTransfer, [])}),
+  fields: () => ({
+    [dartx.dropEffect]: core.String,
+    [dartx.effectAllowed]: core.String,
+    [dartx.files]: ListOfFile(),
+    [dartx.items]: html$.DataTransferItemList,
+    [dartx.types]: ListOfString()
+  }),
+  methods: () => ({
+    [dartx.clearData]: dart.definiteFunctionType(dart.void, [], [core.String]),
+    [dartx.getData]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.setData]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.setDragImage]: dart.definiteFunctionType(dart.void, [html$.Element, core.int, core.int])
+  })
+});
+dart.registerExtension(dart.global.DataTransfer, html$.DataTransfer);
+const _getAsString = Symbol('_getAsString');
+dart.defineExtensionNames([
+  'getAsFile',
+  'getAsString',
+  'getAsEntry',
+  'kind',
+  'type'
+]);
+html$.DataTransferItem = class DataTransferItem extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.getAsFile](...args) {
+    return this.getAsFile.apply(this, args);
+  }
+  [_getAsString](...args) {
+    return this.getAsString.apply(this, args);
+  }
+  [dartx.getAsString]() {
+    let completer = CompleterOfString().new();
+    this[_getAsString](dart.fn(value => {
+      completer.complete(value);
+    }, StringToNull()));
+    return completer.future;
+  }
+  [dartx.getAsEntry](...args) {
+    return this.webkitGetAsEntry.apply(this, args);
+  }
+};
+dart.setSignature(html$.DataTransferItem, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DataTransferItem, [])}),
+  fields: () => ({
+    [dartx.kind]: core.String,
+    [dartx.type]: core.String
+  }),
+  methods: () => ({
+    [dartx.getAsFile]: dart.definiteFunctionType(html$.Blob, []),
+    [_getAsString]: dart.definiteFunctionType(dart.void, [html$._StringCallback]),
+    [dartx.getAsString]: dart.definiteFunctionType(async.Future$(core.String), []),
+    [dartx.getAsEntry]: dart.definiteFunctionType(html$.Entry, [])
+  })
+});
+dart.registerExtension(dart.global.DataTransferItem, html$.DataTransferItem);
+dart.defineExtensionNames([
+  'add',
+  'addData',
+  'addFile',
+  'clear',
+  'item',
+  'remove',
+  '_get',
+  'length'
+]);
+html$.DataTransferItemList = class DataTransferItemList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.add](...args) {
+    return this.add.apply(this, args);
+  }
+  [dartx.addData](...args) {
+    return this.add.apply(this, args);
+  }
+  [dartx.addFile](...args) {
+    return this.add.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.remove](...args) {
+    return this.remove.apply(this, args);
+  }
+  [dartx._get](index) {
+    return this[index];
+  }
+};
+dart.setSignature(html$.DataTransferItemList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DataTransferItemList, [])}),
+  fields: () => ({[dartx.length]: core.int}),
+  methods: () => ({
+    [dartx.add]: dart.definiteFunctionType(html$.DataTransferItem, [dart.dynamic], [core.String]),
+    [dartx.addData]: dart.definiteFunctionType(html$.DataTransferItem, [core.String, core.String]),
+    [dartx.addFile]: dart.definiteFunctionType(html$.DataTransferItem, [html$.File]),
+    [dartx.clear]: dart.definiteFunctionType(dart.void, []),
+    [dartx.item]: dart.definiteFunctionType(html$.DataTransferItem, [core.int]),
+    [dartx.remove]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx._get]: dart.definiteFunctionType(html$.DataTransferItem, [core.int])
+  })
+});
+dart.registerExtension(dart.global.DataTransferItemList, html$.DataTransferItemList);
+html$.DatabaseCallback = dart.typedef('DatabaseCallback', () => dart.functionType(dart.void, [web_sql.SqlDatabase]));
+dart.defineExtensionNames([
+  'postMessage',
+  'onMessage'
+]);
+html$.DedicatedWorkerGlobalScope = class DedicatedWorkerGlobalScope extends html$.WorkerGlobalScope {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.DedicatedWorkerGlobalScope.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.DedicatedWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DedicatedWorkerGlobalScope, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.DedicatedWorkerGlobalScope, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.DedicatedWorkerGlobalScope, html$.DedicatedWorkerGlobalScope);
+dart.defineExtensionNames([
+  'session'
+]);
+html$.DefaultSessionStartEvent = class DefaultSessionStartEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.DefaultSessionStartEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.DefaultSessionStartEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.DefaultSessionStartEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.DefaultSessionStartEvent(type);
+  }
+  get [dartx.session]() {
+    return this.session;
+  }
+};
+dart.setSignature(html$.DefaultSessionStartEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DefaultSessionStartEvent, []),
+    new: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.session]: html$.PresentationSession}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.DefaultSessionStartEvent, html$.DefaultSessionStartEvent);
+dart.defineExtensionNames([
+  'queryUsageAndQuota',
+  'requestQuota'
+]);
+html$.DeprecatedStorageInfo = class DeprecatedStorageInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.queryUsageAndQuota](...args) {
+    return this.queryUsageAndQuota.apply(this, args);
+  }
+  [dartx.requestQuota](...args) {
+    return this.requestQuota.apply(this, args);
+  }
+};
+dart.setSignature(html$.DeprecatedStorageInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeprecatedStorageInfo, [])}),
+  methods: () => ({
+    [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [core.int], [html$.StorageUsageCallback, html$.StorageErrorCallback]),
+    [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html$.StorageQuotaCallback, html$.StorageErrorCallback])
+  }),
+  sfields: () => ({
+    PERSISTENT: core.int,
+    TEMPORARY: core.int
+  })
+});
+html$.DeprecatedStorageInfo.PERSISTENT = 1;
+html$.DeprecatedStorageInfo.TEMPORARY = 0;
+dart.registerExtension(dart.global.DeprecatedStorageInfo, html$.DeprecatedStorageInfo);
+dart.defineExtensionNames([
+  'queryUsageAndQuota',
+  'requestQuota'
+]);
+html$.DeprecatedStorageQuota = class DeprecatedStorageQuota extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.queryUsageAndQuota](...args) {
+    return this.queryUsageAndQuota.apply(this, args);
+  }
+  [dartx.requestQuota](...args) {
+    return this.requestQuota.apply(this, args);
+  }
+};
+dart.setSignature(html$.DeprecatedStorageQuota, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeprecatedStorageQuota, [])}),
+  methods: () => ({
+    [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [html$.StorageUsageCallback], [html$.StorageErrorCallback]),
+    [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int], [html$.StorageQuotaCallback, html$.StorageErrorCallback])
+  })
+});
+dart.registerExtension(dart.global.DeprecatedStorageQuota, html$.DeprecatedStorageQuota);
+dart.defineExtensionNames([
+  'open'
+]);
+html$.DetailsElement = class DetailsElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.DetailsElement._check(html$.document[dartx.createElement]("details"));
+  }
+  created() {
+    this[dartx.open] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('details');
+  }
+  get [dartx.open]() {
+    return this.open;
+  }
+  set [dartx.open](value) {
+    this.open = value;
+  }
+};
+dart.defineNamedConstructor(html$.DetailsElement, 'created');
+dart.setSignature(html$.DetailsElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DetailsElement, []),
+    new: dart.definiteFunctionType(html$.DetailsElement, []),
+    created: dart.definiteFunctionType(html$.DetailsElement, [])
+  }),
+  fields: () => ({[dartx.open]: core.bool}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLDetailsElement, html$.DetailsElement);
+dart.defineExtensionNames([
+  'x',
+  'y',
+  'z'
+]);
+html$.DeviceAcceleration = class DeviceAcceleration extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.z]() {
+    return this.z;
+  }
+};
+dart.setSignature(html$.DeviceAcceleration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeviceAcceleration, [])}),
+  fields: () => ({
+    [dartx.x]: core.double,
+    [dartx.y]: core.double,
+    [dartx.z]: core.double
+  })
+});
+dart.registerExtension(dart.global.DeviceAcceleration, html$.DeviceAcceleration);
+dart.defineExtensionNames([
+  'value'
+]);
+html$.DeviceLightEvent = class DeviceLightEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.DeviceLightEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.DeviceLightEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.DeviceLightEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.DeviceLightEvent(type);
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+};
+dart.setSignature(html$.DeviceLightEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DeviceLightEvent, []),
+    new: dart.definiteFunctionType(html$.DeviceLightEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.value]: core.double}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.DeviceLightEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DeviceLightEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.DeviceLightEvent, html$.DeviceLightEvent);
+dart.defineExtensionNames([
+  'initDeviceMotionEvent',
+  'acceleration',
+  'accelerationIncludingGravity',
+  'interval',
+  'rotationRate'
+]);
+html$.DeviceMotionEvent = class DeviceMotionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.acceleration]() {
+    return this.acceleration;
+  }
+  get [dartx.accelerationIncludingGravity]() {
+    return this.accelerationIncludingGravity;
+  }
+  get [dartx.interval]() {
+    return this.interval;
+  }
+  get [dartx.rotationRate]() {
+    return this.rotationRate;
+  }
+  [dartx.initDeviceMotionEvent](...args) {
+    return this.initDeviceMotionEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.DeviceMotionEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeviceMotionEvent, [])}),
+  fields: () => ({
+    [dartx.acceleration]: html$.DeviceAcceleration,
+    [dartx.accelerationIncludingGravity]: html$.DeviceAcceleration,
+    [dartx.interval]: core.double,
+    [dartx.rotationRate]: html$.DeviceRotationRate
+  }),
+  methods: () => ({[dartx.initDeviceMotionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.DeviceAcceleration, html$.DeviceAcceleration, html$.DeviceRotationRate, core.num])})
+});
+dart.registerExtension(dart.global.DeviceMotionEvent, html$.DeviceMotionEvent);
+const _initDeviceOrientationEvent = Symbol('_initDeviceOrientationEvent');
+dart.defineExtensionNames([
+  'absolute',
+  'alpha',
+  'beta',
+  'gamma'
+]);
+html$.DeviceOrientationEvent = class DeviceOrientationEvent extends html$.Event {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let alpha = opts && 'alpha' in opts ? opts.alpha : 0;
+    let beta = opts && 'beta' in opts ? opts.beta : 0;
+    let gamma = opts && 'gamma' in opts ? opts.gamma : 0;
+    let absolute = opts && 'absolute' in opts ? opts.absolute : false;
+    let e = html$.DeviceOrientationEvent._check(html$.document[_createEvent]("DeviceOrientationEvent"));
+    e[_initDeviceOrientationEvent](type, canBubble, cancelable, alpha, beta, gamma, absolute);
+    return e;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.absolute]() {
+    return this.absolute;
+  }
+  get [dartx.alpha]() {
+    return this.alpha;
+  }
+  get [dartx.beta]() {
+    return this.beta;
+  }
+  get [dartx.gamma]() {
+    return this.gamma;
+  }
+  [_initDeviceOrientationEvent](...args) {
+    return this.initDeviceOrientationEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.DeviceOrientationEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.DeviceOrientationEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, alpha: core.num, beta: core.num, gamma: core.num, absolute: core.bool}),
+    _: dart.definiteFunctionType(html$.DeviceOrientationEvent, [])
+  }),
+  fields: () => ({
+    [dartx.absolute]: core.bool,
+    [dartx.alpha]: core.double,
+    [dartx.beta]: core.double,
+    [dartx.gamma]: core.double
+  }),
+  methods: () => ({[_initDeviceOrientationEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.num, core.num, core.num, core.bool])})
+});
+dart.registerExtension(dart.global.DeviceOrientationEvent, html$.DeviceOrientationEvent);
+dart.defineExtensionNames([
+  'alpha',
+  'beta',
+  'gamma'
+]);
+html$.DeviceRotationRate = class DeviceRotationRate extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.alpha]() {
+    return this.alpha;
+  }
+  get [dartx.beta]() {
+    return this.beta;
+  }
+  get [dartx.gamma]() {
+    return this.gamma;
+  }
+};
+dart.setSignature(html$.DeviceRotationRate, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeviceRotationRate, [])}),
+  fields: () => ({
+    [dartx.alpha]: core.double,
+    [dartx.beta]: core.double,
+    [dartx.gamma]: core.double
+  })
+});
+dart.registerExtension(dart.global.DeviceRotationRate, html$.DeviceRotationRate);
+dart.defineExtensionNames([
+  'close',
+  'show',
+  'showModal',
+  'open',
+  'returnValue'
+]);
+html$.DialogElement = class DialogElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.open] = null;
+    this[dartx.returnValue] = null;
+    super.created();
+  }
+  get [dartx.open]() {
+    return this.open;
+  }
+  set [dartx.open](value) {
+    this.open = value;
+  }
+  get [dartx.returnValue]() {
+    return this.returnValue;
+  }
+  set [dartx.returnValue](value) {
+    this.returnValue = value;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.show](...args) {
+    return this.show.apply(this, args);
+  }
+  [dartx.showModal](...args) {
+    return this.showModal.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.DialogElement, 'created');
+dart.setSignature(html$.DialogElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DialogElement, []),
+    created: dart.definiteFunctionType(html$.DialogElement, [])
+  }),
+  fields: () => ({
+    [dartx.open]: core.bool,
+    [dartx.returnValue]: core.String
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.show]: dart.definiteFunctionType(dart.void, []),
+    [dartx.showModal]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLDialogElement, html$.DialogElement);
+const _getDirectory = Symbol('_getDirectory');
+const _getFile = Symbol('_getFile');
+const __getDirectory_1 = Symbol('__getDirectory_1');
+const __getDirectory_2 = Symbol('__getDirectory_2');
+const __getDirectory_3 = Symbol('__getDirectory_3');
+const __getDirectory_4 = Symbol('__getDirectory_4');
+const __getDirectory = Symbol('__getDirectory');
+const __getFile_1 = Symbol('__getFile_1');
+const __getFile_2 = Symbol('__getFile_2');
+const __getFile_3 = Symbol('__getFile_3');
+const __getFile_4 = Symbol('__getFile_4');
+const __getFile = Symbol('__getFile');
+const _removeRecursively = Symbol('_removeRecursively');
+const _copyTo = Symbol('_copyTo');
+const _getMetadata = Symbol('_getMetadata');
+const _getParent = Symbol('_getParent');
+const _moveTo = Symbol('_moveTo');
+const _remove$ = Symbol('_remove');
+dart.defineExtensionNames([
+  'copyTo',
+  'getMetadata',
+  'getParent',
+  'moveTo',
+  'remove',
+  'toUrl',
+  'filesystem',
+  'fullPath',
+  'isDirectory',
+  'isFile',
+  'name'
+]);
+html$.Entry = class Entry extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.filesystem]() {
+    return this.filesystem;
+  }
+  get [dartx.fullPath]() {
+    return this.fullPath;
+  }
+  get [dartx.isDirectory]() {
+    return this.isDirectory;
+  }
+  get [dartx.isFile]() {
+    return this.isFile;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  [_copyTo](...args) {
+    return this.copyTo.apply(this, args);
+  }
+  [dartx.copyTo](parent, opts) {
+    let name = opts && 'name' in opts ? opts.name : null;
+    let completer = CompleterOfEntry().new();
+    this[_copyTo](parent, {name: name, successCallback: dart.fn(value => {
+        completer.complete(value);
+      }, EntryToNull()), errorCallback: dart.fn(error => {
+        completer.completeError(error);
+      }, FileErrorToNull())});
+    return completer.future;
+  }
+  [_getMetadata](...args) {
+    return this.getMetadata.apply(this, args);
+  }
+  [dartx.getMetadata]() {
+    let completer = CompleterOfMetadata().new();
+    this[_getMetadata](dart.fn(value => {
+      completer.complete(value);
+    }, MetadataToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [_getParent](...args) {
+    return this.getParent.apply(this, args);
+  }
+  [dartx.getParent]() {
+    let completer = CompleterOfEntry().new();
+    this[_getParent](dart.fn(value => {
+      completer.complete(value);
+    }, EntryToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [_moveTo](...args) {
+    return this.moveTo.apply(this, args);
+  }
+  [dartx.moveTo](parent, opts) {
+    let name = opts && 'name' in opts ? opts.name : null;
+    let completer = CompleterOfEntry().new();
+    this[_moveTo](parent, {name: name, successCallback: dart.fn(value => {
+        completer.complete(value);
+      }, EntryToNull()), errorCallback: dart.fn(error => {
+        completer.completeError(error);
+      }, FileErrorToNull())});
+    return completer.future;
+  }
+  [_remove$](...args) {
+    return this.remove.apply(this, args);
+  }
+  [dartx.remove]() {
+    let completer = async.Completer.new();
+    this[_remove$](dart.fn(() => {
+      completer.complete();
+    }, VoidToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [dartx.toUrl](...args) {
+    return this.toURL.apply(this, args);
+  }
+};
+dart.setSignature(html$.Entry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Entry, [])}),
+  fields: () => ({
+    [dartx.filesystem]: html$.FileSystem,
+    [dartx.fullPath]: core.String,
+    [dartx.isDirectory]: core.bool,
+    [dartx.isFile]: core.bool,
+    [dartx.name]: core.String
+  }),
+  methods: () => ({
+    [_copyTo]: dart.definiteFunctionType(dart.void, [html$.DirectoryEntry], {name: core.String, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [dartx.copyTo]: dart.definiteFunctionType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}),
+    [_getMetadata]: dart.definiteFunctionType(dart.void, [html$.MetadataCallback], [html$._ErrorCallback]),
+    [dartx.getMetadata]: dart.definiteFunctionType(async.Future$(html$.Metadata), []),
+    [_getParent]: dart.definiteFunctionType(dart.void, [], [html$._EntryCallback, html$._ErrorCallback]),
+    [dartx.getParent]: dart.definiteFunctionType(async.Future$(html$.Entry), []),
+    [_moveTo]: dart.definiteFunctionType(dart.void, [html$.DirectoryEntry], {name: core.String, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [dartx.moveTo]: dart.definiteFunctionType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}),
+    [_remove$]: dart.definiteFunctionType(dart.void, [html$.VoidCallback], [html$._ErrorCallback]),
+    [dartx.remove]: dart.definiteFunctionType(async.Future, []),
+    [dartx.toUrl]: dart.definiteFunctionType(core.String, [])
+  })
+});
+dart.registerExtension(dart.global.Entry, html$.Entry);
+dart.defineExtensionNames([
+  'createDirectory',
+  'getDirectory',
+  'createFile',
+  'getFile',
+  'createReader',
+  'removeRecursively'
+]);
+html$.DirectoryEntry = class DirectoryEntry extends html$.Entry {
+  [dartx.createDirectory](path, opts) {
+    let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
+    return this[_getDirectory](path, {options: dart.map({create: true, exclusive: exclusive}, core.String, core.bool)});
+  }
+  [dartx.getDirectory](path) {
+    return this[_getDirectory](path);
+  }
+  [dartx.createFile](path, opts) {
+    let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
+    return this[_getFile](path, {options: dart.map({create: true, exclusive: exclusive}, core.String, core.bool)});
+  }
+  [dartx.getFile](path) {
+    return this[_getFile](path);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.createReader](...args) {
+    return this.createReader.apply(this, args);
+  }
+  [__getDirectory](path, opts) {
+    let options = opts && 'options' in opts ? opts.options : null;
+    let successCallback = opts && 'successCallback' in opts ? opts.successCallback : null;
+    let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
+    if (errorCallback != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[__getDirectory_1](path, options_1, successCallback, errorCallback);
+      return;
+    }
+    if (successCallback != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[__getDirectory_2](path, options_1, successCallback);
+      return;
+    }
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[__getDirectory_3](path, options_1);
+      return;
+    }
+    this[__getDirectory_4](path);
+    return;
+  }
+  [__getDirectory_1](...args) {
+    return this.getDirectory.apply(this, args);
+  }
+  [__getDirectory_2](...args) {
+    return this.getDirectory.apply(this, args);
+  }
+  [__getDirectory_3](...args) {
+    return this.getDirectory.apply(this, args);
+  }
+  [__getDirectory_4](...args) {
+    return this.getDirectory.apply(this, args);
+  }
+  [_getDirectory](path, opts) {
+    let options = opts && 'options' in opts ? opts.options : null;
+    let completer = CompleterOfEntry().new();
+    this[__getDirectory](path, {options: options, successCallback: dart.fn(value => {
+        completer.complete(value);
+      }, EntryToNull()), errorCallback: dart.fn(error => {
+        completer.completeError(error);
+      }, FileErrorToNull())});
+    return completer.future;
+  }
+  [__getFile](path, opts) {
+    let options = opts && 'options' in opts ? opts.options : null;
+    let successCallback = opts && 'successCallback' in opts ? opts.successCallback : null;
+    let errorCallback = opts && 'errorCallback' in opts ? opts.errorCallback : null;
+    if (errorCallback != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[__getFile_1](path, options_1, successCallback, errorCallback);
+      return;
+    }
+    if (successCallback != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[__getFile_2](path, options_1, successCallback);
+      return;
+    }
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[__getFile_3](path, options_1);
+      return;
+    }
+    this[__getFile_4](path);
+    return;
+  }
+  [__getFile_1](...args) {
+    return this.getFile.apply(this, args);
+  }
+  [__getFile_2](...args) {
+    return this.getFile.apply(this, args);
+  }
+  [__getFile_3](...args) {
+    return this.getFile.apply(this, args);
+  }
+  [__getFile_4](...args) {
+    return this.getFile.apply(this, args);
+  }
+  [_getFile](path, opts) {
+    let options = opts && 'options' in opts ? opts.options : null;
+    let completer = CompleterOfEntry().new();
+    this[__getFile](path, {options: options, successCallback: dart.fn(value => {
+        completer.complete(value);
+      }, EntryToNull()), errorCallback: dart.fn(error => {
+        completer.completeError(error);
+      }, FileErrorToNull())});
+    return completer.future;
+  }
+  [_removeRecursively](...args) {
+    return this.removeRecursively.apply(this, args);
+  }
+  [dartx.removeRecursively]() {
+    let completer = async.Completer.new();
+    this[_removeRecursively](dart.fn(() => {
+      completer.complete();
+    }, VoidToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+};
+dart.setSignature(html$.DirectoryEntry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DirectoryEntry, [])}),
+  methods: () => ({
+    [dartx.createDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}),
+    [dartx.getDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
+    [dartx.createFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}),
+    [dartx.getFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
+    [dartx.createReader]: dart.definiteFunctionType(html$.DirectoryReader, []),
+    [__getDirectory]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [__getDirectory_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback, html$._ErrorCallback]),
+    [__getDirectory_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback]),
+    [__getDirectory_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    [__getDirectory_4]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_getDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {options: core.Map}),
+    [__getFile]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [__getFile_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback, html$._ErrorCallback]),
+    [__getFile_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback]),
+    [__getFile_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    [__getFile_4]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_getFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {options: core.Map}),
+    [_removeRecursively]: dart.definiteFunctionType(dart.void, [html$.VoidCallback], [html$._ErrorCallback]),
+    [dartx.removeRecursively]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.DirectoryEntry, html$.DirectoryEntry);
+const _readEntries = Symbol('_readEntries');
+dart.defineExtensionNames([
+  'readEntries'
+]);
+html$.DirectoryReader = class DirectoryReader extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_readEntries](...args) {
+    return this.readEntries.apply(this, args);
+  }
+  [dartx.readEntries]() {
+    let completer = CompleterOfListOfEntry().new();
+    this[_readEntries](dart.fn(value => {
+      completer.complete(value);
+    }, ListOfEntryToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+};
+dart.setSignature(html$.DirectoryReader, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DirectoryReader, [])}),
+  methods: () => ({
+    [_readEntries]: dart.definiteFunctionType(dart.void, [html$._EntriesCallback], [html$._ErrorCallback]),
+    [dartx.readEntries]: dart.definiteFunctionType(async.Future$(core.List$(html$.Entry)), [])
+  })
+});
+dart.registerExtension(dart.global.DirectoryReader, html$.DirectoryReader);
+html$.DivElement = class DivElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.DivElement._check(html$.document[dartx.createElement]("div"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.DivElement, 'created');
+dart.setSignature(html$.DivElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DivElement, []),
+    new: dart.definiteFunctionType(html$.DivElement, []),
+    created: dart.definiteFunctionType(html$.DivElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLDivElement, html$.DivElement);
+const _body = Symbol('_body');
+const _get_window = Symbol('_get_window');
+const _head$0 = Symbol('_head');
+const _lastModified = Symbol('_lastModified');
+const _preferredStylesheetSet = Symbol('_preferredStylesheetSet');
+const _referrer = Symbol('_referrer');
+const _selectedStylesheetSet = Symbol('_selectedStylesheetSet');
+const _styleSheets = Symbol('_styleSheets');
+const _title = Symbol('_title');
+const _visibilityState = Symbol('_visibilityState');
+const _webkitFullscreenElement = Symbol('_webkitFullscreenElement');
+const _webkitFullscreenEnabled = Symbol('_webkitFullscreenEnabled');
+const _webkitHidden = Symbol('_webkitHidden');
+const _webkitVisibilityState = Symbol('_webkitVisibilityState');
+const _caretRangeFromPoint = Symbol('_caretRangeFromPoint');
+const _createElement = Symbol('_createElement');
+const _createElementNS = Symbol('_createElementNS');
+const _createTouch_1 = Symbol('_createTouch_1');
+const _createTouch = Symbol('_createTouch');
+const _createTouchList = Symbol('_createTouchList');
+const _elementFromPoint = Symbol('_elementFromPoint');
+const _getCssCanvasContext = Symbol('_getCssCanvasContext');
+const _webkitExitFullscreen = Symbol('_webkitExitFullscreen');
+const _createElement_2 = Symbol('_createElement_2');
+const _createElementNS_2 = Symbol('_createElementNS_2');
+const _createNodeIterator = Symbol('_createNodeIterator');
+const _createTreeWalker = Symbol('_createTreeWalker');
+dart.defineExtensionNames([
+  'window',
+  'adoptNode',
+  'createDocumentFragment',
+  'createRange',
+  'elementsFromPoint',
+  'execCommand',
+  'exitFullscreen',
+  'exitPointerLock',
+  'getElementsByClassName',
+  'getElementsByName',
+  'getElementsByTagName',
+  'importNode',
+  'queryCommandEnabled',
+  'queryCommandIndeterm',
+  'queryCommandState',
+  'queryCommandSupported',
+  'queryCommandValue',
+  'transformDocumentToTreeView',
+  'getElementById',
+  'querySelector',
+  'onAbort',
+  'onBeforeCopy',
+  'onBeforeCut',
+  'onBeforePaste',
+  'onBlur',
+  'onCanPlay',
+  'onCanPlayThrough',
+  'onChange',
+  'onClick',
+  'onContextMenu',
+  'onCopy',
+  'onCut',
+  'onDoubleClick',
+  'onDrag',
+  'onDragEnd',
+  'onDragEnter',
+  'onDragLeave',
+  'onDragOver',
+  'onDragStart',
+  'onDrop',
+  'onDurationChange',
+  'onEmptied',
+  'onEnded',
+  'onError',
+  'onFocus',
+  'onInput',
+  'onInvalid',
+  'onKeyDown',
+  'onKeyPress',
+  'onKeyUp',
+  'onLoad',
+  'onLoadedData',
+  'onLoadedMetadata',
+  'onMouseDown',
+  'onMouseEnter',
+  'onMouseLeave',
+  'onMouseMove',
+  'onMouseOut',
+  'onMouseOver',
+  'onMouseUp',
+  'onMouseWheel',
+  'onPaste',
+  'onPause',
+  'onPlay',
+  'onPlaying',
+  'onPointerLockChange',
+  'onPointerLockError',
+  'onRateChange',
+  'onReadyStateChange',
+  'onReset',
+  'onResize',
+  'onScroll',
+  'onSearch',
+  'onSecurityPolicyViolation',
+  'onSeeked',
+  'onSeeking',
+  'onSelect',
+  'onSelectionChange',
+  'onSelectStart',
+  'onStalled',
+  'onSubmit',
+  'onSuspend',
+  'onTimeUpdate',
+  'onTouchCancel',
+  'onTouchEnd',
+  'onTouchMove',
+  'onTouchStart',
+  'onVolumeChange',
+  'onWaiting',
+  'onFullscreenChange',
+  'onFullscreenError',
+  'querySelectorAll',
+  'query',
+  'queryAll',
+  'supportsRegisterElement',
+  'supportsRegister',
+  'createElement',
+  'createElementNS',
+  'visibilityState',
+  'activeElement',
+  'contentType',
+  'cookie',
+  'currentScript',
+  'documentElement',
+  'domain',
+  'fonts',
+  'fullscreenElement',
+  'fullscreenEnabled',
+  'hidden',
+  'implementation',
+  'origin',
+  'pointerLockElement',
+  'readyState',
+  'rootElement',
+  'scrollingElement',
+  'timeline'
+]);
+html$.Document = class Document extends html$.Node {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.activeElement]() {
+    return this.activeElement;
+  }
+  get [_body]() {
+    return this.body;
+  }
+  set [_body](value) {
+    this.body = value;
+  }
+  get [dartx.contentType]() {
+    return this.contentType;
+  }
+  get [dartx.cookie]() {
+    return this.cookie;
+  }
+  set [dartx.cookie](value) {
+    this.cookie = value;
+  }
+  get [dartx.currentScript]() {
+    return this.currentScript;
+  }
+  get [dartx.window]() {
+    return html$._convertNativeToDart_Window(this[_get_window]);
+  }
+  get [_get_window]() {
+    return this.defaultView;
+  }
+  get [dartx.documentElement]() {
+    return this.documentElement;
+  }
+  get [dartx.domain]() {
+    return this.domain;
+  }
+  get [dartx.fonts]() {
+    return this.fonts;
+  }
+  get [dartx.fullscreenElement]() {
+    return this.fullscreenElement;
+  }
+  get [dartx.fullscreenEnabled]() {
+    return this.fullscreenEnabled;
+  }
+  get [_head$0]() {
+    return this.head;
+  }
+  get [dartx.hidden]() {
+    return this.hidden;
+  }
+  get [dartx.implementation]() {
+    return this.implementation;
+  }
+  get [_lastModified]() {
+    return this.lastModified;
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.pointerLockElement]() {
+    return this.pointerLockElement;
+  }
+  get [_preferredStylesheetSet]() {
+    return this.preferredStylesheetSet;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [_referrer]() {
+    return this.referrer;
+  }
+  get [dartx.rootElement]() {
+    return this.rootElement;
+  }
+  get [dartx.scrollingElement]() {
+    return this.scrollingElement;
+  }
+  get [_selectedStylesheetSet]() {
+    return this.selectedStylesheetSet;
+  }
+  set [_selectedStylesheetSet](value) {
+    this.selectedStylesheetSet = value;
+  }
+  get [_styleSheets]() {
+    return this.styleSheets;
+  }
+  get [dartx.timeline]() {
+    return this.timeline;
+  }
+  get [_title]() {
+    return this.title;
+  }
+  set [_title](value) {
+    this.title = value;
+  }
+  get [_visibilityState]() {
+    return this.visibilityState;
+  }
+  get [_webkitFullscreenElement]() {
+    return this.webkitFullscreenElement;
+  }
+  get [_webkitFullscreenEnabled]() {
+    return this.webkitFullscreenEnabled;
+  }
+  get [_webkitHidden]() {
+    return this.webkitHidden;
+  }
+  get [_webkitVisibilityState]() {
+    return this.webkitVisibilityState;
+  }
+  [dartx.adoptNode](...args) {
+    return this.adoptNode.apply(this, args);
+  }
+  [_caretRangeFromPoint](...args) {
+    return this.caretRangeFromPoint.apply(this, args);
+  }
+  [dartx.createDocumentFragment](...args) {
+    return this.createDocumentFragment.apply(this, args);
+  }
+  [_createElement](...args) {
+    return this.createElement.apply(this, args);
+  }
+  [_createElementNS](...args) {
+    return this.createElementNS.apply(this, args);
+  }
+  [_createEvent](...args) {
+    return this.createEvent.apply(this, args);
+  }
+  [dartx.createRange](...args) {
+    return this.createRange.apply(this, args);
+  }
+  [_createTextNode](...args) {
+    return this.createTextNode.apply(this, args);
+  }
+  [_createTouch](window, target, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force) {
+    let target_1 = html$._convertDartToNative_EventTarget(target);
+    return this[_createTouch_1](window, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force);
+  }
+  [_createTouch_1](...args) {
+    return this.createTouch.apply(this, args);
+  }
+  [_createTouchList](...args) {
+    return this.createTouchList.apply(this, args);
+  }
+  [_elementFromPoint](...args) {
+    return this.elementFromPoint.apply(this, args);
+  }
+  [dartx.elementsFromPoint](...args) {
+    return this.elementsFromPoint.apply(this, args);
+  }
+  [dartx.execCommand](...args) {
+    return this.execCommand.apply(this, args);
+  }
+  [dartx.exitFullscreen](...args) {
+    return this.exitFullscreen.apply(this, args);
+  }
+  [dartx.exitPointerLock](...args) {
+    return this.exitPointerLock.apply(this, args);
+  }
+  [_getCssCanvasContext](...args) {
+    return this.getCSSCanvasContext.apply(this, args);
+  }
+  [dartx.getElementsByClassName](...args) {
+    return this.getElementsByClassName.apply(this, args);
+  }
+  [dartx.getElementsByName](...args) {
+    return this.getElementsByName.apply(this, args);
+  }
+  [dartx.getElementsByTagName](...args) {
+    return this.getElementsByTagName.apply(this, args);
+  }
+  [dartx.importNode](...args) {
+    return this.importNode.apply(this, args);
+  }
+  [dartx.queryCommandEnabled](...args) {
+    return this.queryCommandEnabled.apply(this, args);
+  }
+  [dartx.queryCommandIndeterm](...args) {
+    return this.queryCommandIndeterm.apply(this, args);
+  }
+  [dartx.queryCommandState](...args) {
+    return this.queryCommandState.apply(this, args);
+  }
+  [dartx.queryCommandSupported](...args) {
+    return this.queryCommandSupported.apply(this, args);
+  }
+  [dartx.queryCommandValue](...args) {
+    return this.queryCommandValue.apply(this, args);
+  }
+  [dartx.transformDocumentToTreeView](...args) {
+    return this.transformDocumentToTreeView.apply(this, args);
+  }
+  [_webkitExitFullscreen](...args) {
+    return this.webkitExitFullscreen.apply(this, args);
+  }
+  [dartx.getElementById](...args) {
+    return this.getElementById.apply(this, args);
+  }
+  get [_childElementCount]() {
+    return this.childElementCount;
+  }
+  get [_children]() {
+    return this.children;
+  }
+  get [_firstElementChild]() {
+    return this.firstElementChild;
+  }
+  get [_lastElementChild]() {
+    return this.lastElementChild;
+  }
+  [dartx.querySelector](...args) {
+    return this.querySelector.apply(this, args);
+  }
+  [_querySelectorAll](...args) {
+    return this.querySelectorAll.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return html$.Element.abortEvent.forTarget(this);
+  }
+  get [dartx.onBeforeCopy]() {
+    return html$.Element.beforeCopyEvent.forTarget(this);
+  }
+  get [dartx.onBeforeCut]() {
+    return html$.Element.beforeCutEvent.forTarget(this);
+  }
+  get [dartx.onBeforePaste]() {
+    return html$.Element.beforePasteEvent.forTarget(this);
+  }
+  get [dartx.onBlur]() {
+    return html$.Element.blurEvent.forTarget(this);
+  }
+  get [dartx.onCanPlay]() {
+    return html$.Element.canPlayEvent.forTarget(this);
+  }
+  get [dartx.onCanPlayThrough]() {
+    return html$.Element.canPlayThroughEvent.forTarget(this);
+  }
+  get [dartx.onChange]() {
+    return html$.Element.changeEvent.forTarget(this);
+  }
+  get [dartx.onClick]() {
+    return html$.Element.clickEvent.forTarget(this);
+  }
+  get [dartx.onContextMenu]() {
+    return html$.Element.contextMenuEvent.forTarget(this);
+  }
+  get [dartx.onCopy]() {
+    return html$.Element.copyEvent.forTarget(this);
+  }
+  get [dartx.onCut]() {
+    return html$.Element.cutEvent.forTarget(this);
+  }
+  get [dartx.onDoubleClick]() {
+    return html$.Element.doubleClickEvent.forTarget(this);
+  }
+  get [dartx.onDrag]() {
+    return html$.Element.dragEvent.forTarget(this);
+  }
+  get [dartx.onDragEnd]() {
+    return html$.Element.dragEndEvent.forTarget(this);
+  }
+  get [dartx.onDragEnter]() {
+    return html$.Element.dragEnterEvent.forTarget(this);
+  }
+  get [dartx.onDragLeave]() {
+    return html$.Element.dragLeaveEvent.forTarget(this);
+  }
+  get [dartx.onDragOver]() {
+    return html$.Element.dragOverEvent.forTarget(this);
+  }
+  get [dartx.onDragStart]() {
+    return html$.Element.dragStartEvent.forTarget(this);
+  }
+  get [dartx.onDrop]() {
+    return html$.Element.dropEvent.forTarget(this);
+  }
+  get [dartx.onDurationChange]() {
+    return html$.Element.durationChangeEvent.forTarget(this);
+  }
+  get [dartx.onEmptied]() {
+    return html$.Element.emptiedEvent.forTarget(this);
+  }
+  get [dartx.onEnded]() {
+    return html$.Element.endedEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.Element.errorEvent.forTarget(this);
+  }
+  get [dartx.onFocus]() {
+    return html$.Element.focusEvent.forTarget(this);
+  }
+  get [dartx.onInput]() {
+    return html$.Element.inputEvent.forTarget(this);
+  }
+  get [dartx.onInvalid]() {
+    return html$.Element.invalidEvent.forTarget(this);
+  }
+  get [dartx.onKeyDown]() {
+    return html$.Element.keyDownEvent.forTarget(this);
+  }
+  get [dartx.onKeyPress]() {
+    return html$.Element.keyPressEvent.forTarget(this);
+  }
+  get [dartx.onKeyUp]() {
+    return html$.Element.keyUpEvent.forTarget(this);
+  }
+  get [dartx.onLoad]() {
+    return html$.Element.loadEvent.forTarget(this);
+  }
+  get [dartx.onLoadedData]() {
+    return html$.Element.loadedDataEvent.forTarget(this);
+  }
+  get [dartx.onLoadedMetadata]() {
+    return html$.Element.loadedMetadataEvent.forTarget(this);
+  }
+  get [dartx.onMouseDown]() {
+    return html$.Element.mouseDownEvent.forTarget(this);
+  }
+  get [dartx.onMouseEnter]() {
+    return html$.Element.mouseEnterEvent.forTarget(this);
+  }
+  get [dartx.onMouseLeave]() {
+    return html$.Element.mouseLeaveEvent.forTarget(this);
+  }
+  get [dartx.onMouseMove]() {
+    return html$.Element.mouseMoveEvent.forTarget(this);
+  }
+  get [dartx.onMouseOut]() {
+    return html$.Element.mouseOutEvent.forTarget(this);
+  }
+  get [dartx.onMouseOver]() {
+    return html$.Element.mouseOverEvent.forTarget(this);
+  }
+  get [dartx.onMouseUp]() {
+    return html$.Element.mouseUpEvent.forTarget(this);
+  }
+  get [dartx.onMouseWheel]() {
+    return html$.Element.mouseWheelEvent.forTarget(this);
+  }
+  get [dartx.onPaste]() {
+    return html$.Element.pasteEvent.forTarget(this);
+  }
+  get [dartx.onPause]() {
+    return html$.Element.pauseEvent.forTarget(this);
+  }
+  get [dartx.onPlay]() {
+    return html$.Element.playEvent.forTarget(this);
+  }
+  get [dartx.onPlaying]() {
+    return html$.Element.playingEvent.forTarget(this);
+  }
+  get [dartx.onPointerLockChange]() {
+    return html$.Document.pointerLockChangeEvent.forTarget(this);
+  }
+  get [dartx.onPointerLockError]() {
+    return html$.Document.pointerLockErrorEvent.forTarget(this);
+  }
+  get [dartx.onRateChange]() {
+    return html$.Element.rateChangeEvent.forTarget(this);
+  }
+  get [dartx.onReadyStateChange]() {
+    return html$.Document.readyStateChangeEvent.forTarget(this);
+  }
+  get [dartx.onReset]() {
+    return html$.Element.resetEvent.forTarget(this);
+  }
+  get [dartx.onResize]() {
+    return html$.Element.resizeEvent.forTarget(this);
+  }
+  get [dartx.onScroll]() {
+    return html$.Element.scrollEvent.forTarget(this);
+  }
+  get [dartx.onSearch]() {
+    return html$.Element.searchEvent.forTarget(this);
+  }
+  get [dartx.onSecurityPolicyViolation]() {
+    return html$.Document.securityPolicyViolationEvent.forTarget(this);
+  }
+  get [dartx.onSeeked]() {
+    return html$.Element.seekedEvent.forTarget(this);
+  }
+  get [dartx.onSeeking]() {
+    return html$.Element.seekingEvent.forTarget(this);
+  }
+  get [dartx.onSelect]() {
+    return html$.Element.selectEvent.forTarget(this);
+  }
+  get [dartx.onSelectionChange]() {
+    return html$.Document.selectionChangeEvent.forTarget(this);
+  }
+  get [dartx.onSelectStart]() {
+    return html$.Element.selectStartEvent.forTarget(this);
+  }
+  get [dartx.onStalled]() {
+    return html$.Element.stalledEvent.forTarget(this);
+  }
+  get [dartx.onSubmit]() {
+    return html$.Element.submitEvent.forTarget(this);
+  }
+  get [dartx.onSuspend]() {
+    return html$.Element.suspendEvent.forTarget(this);
+  }
+  get [dartx.onTimeUpdate]() {
+    return html$.Element.timeUpdateEvent.forTarget(this);
+  }
+  get [dartx.onTouchCancel]() {
+    return html$.Element.touchCancelEvent.forTarget(this);
+  }
+  get [dartx.onTouchEnd]() {
+    return html$.Element.touchEndEvent.forTarget(this);
+  }
+  get [dartx.onTouchMove]() {
+    return html$.Element.touchMoveEvent.forTarget(this);
+  }
+  get [dartx.onTouchStart]() {
+    return html$.Element.touchStartEvent.forTarget(this);
+  }
+  get [dartx.onVolumeChange]() {
+    return html$.Element.volumeChangeEvent.forTarget(this);
+  }
+  get [dartx.onWaiting]() {
+    return html$.Element.waitingEvent.forTarget(this);
+  }
+  get [dartx.onFullscreenChange]() {
+    return html$.Element.fullscreenChangeEvent.forTarget(this);
+  }
+  get [dartx.onFullscreenError]() {
+    return html$.Element.fullscreenErrorEvent.forTarget(this);
+  }
+  [dartx.querySelectorAll](T) {
+    return selectors => {
+      return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
+    };
+  }
+  [dartx.query](relativeSelectors) {
+    return this[dartx.querySelector](relativeSelectors);
+  }
+  [dartx.queryAll](T) {
+    return relativeSelectors => {
+      return this[dartx.querySelectorAll](T)(relativeSelectors);
+    };
+  }
+  get [dartx.supportsRegisterElement]() {
+    return "registerElement" in this;
+  }
+  get [dartx.supportsRegister]() {
+    return this[dartx.supportsRegisterElement];
+  }
+  [dartx.createElement](tagName, typeExtension) {
+    if (typeExtension === void 0) typeExtension = null;
+    return html$.Element._check(typeExtension == null ? this[_createElement_2](tagName) : this[_createElement](tagName, typeExtension));
+  }
+  [_createElement_2](tagName) {
+    return this.createElement(tagName);
+  }
+  [_createElementNS_2](namespaceURI, qualifiedName) {
+    return this.createElementNS(namespaceURI, qualifiedName);
+  }
+  [dartx.createElementNS](namespaceURI, qualifiedName, typeExtension) {
+    if (typeExtension === void 0) typeExtension = null;
+    return html$.Element._check(typeExtension == null ? this[_createElementNS_2](namespaceURI, qualifiedName) : this[_createElementNS](namespaceURI, qualifiedName, typeExtension));
+  }
+  [_createNodeIterator](root, whatToShow, filter) {
+    if (whatToShow === void 0) whatToShow = null;
+    if (filter === void 0) filter = null;
+    return this.createNodeIterator(root, whatToShow, filter, false);
+  }
+  [_createTreeWalker](root, whatToShow, filter) {
+    if (whatToShow === void 0) whatToShow = null;
+    if (filter === void 0) filter = null;
+    return this.createTreeWalker(root, whatToShow, filter, false);
+  }
+  get [dartx.visibilityState]() {
+    return this.visibilityState || this.mozVisibilityState || this.msVisibilityState || this.webkitVisibilityState;
+  }
+};
+dart.setSignature(html$.Document, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Document, [])}),
+  fields: () => ({
+    [dartx.activeElement]: html$.Element,
+    [_body]: html$.HtmlElement,
+    [dartx.contentType]: core.String,
+    [dartx.cookie]: core.String,
+    [dartx.currentScript]: html$.ScriptElement,
+    [_get_window]: dart.dynamic,
+    [dartx.documentElement]: html$.Element,
+    [dartx.domain]: core.String,
+    [dartx.fonts]: html$.FontFaceSet,
+    [dartx.fullscreenElement]: html$.Element,
+    [dartx.fullscreenEnabled]: core.bool,
+    [_head$0]: html$.HeadElement,
+    [dartx.hidden]: core.bool,
+    [dartx.implementation]: html$.DomImplementation,
+    [_lastModified]: core.String,
+    [dartx.origin]: core.String,
+    [dartx.pointerLockElement]: html$.Element,
+    [_preferredStylesheetSet]: core.String,
+    [dartx.readyState]: core.String,
+    [_referrer]: core.String,
+    [dartx.rootElement]: svg$.SvgSvgElement,
+    [dartx.scrollingElement]: html$.Element,
+    [_selectedStylesheetSet]: core.String,
+    [_styleSheets]: ListOfStyleSheet(),
+    [dartx.timeline]: html$.AnimationTimeline,
+    [_title]: core.String,
+    [_visibilityState]: core.String,
+    [_webkitFullscreenElement]: html$.Element,
+    [_webkitFullscreenEnabled]: core.bool,
+    [_webkitHidden]: core.bool,
+    [_webkitVisibilityState]: core.String,
+    [_childElementCount]: core.int,
+    [_children]: ListOfNode(),
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
+  }),
+  getters: () => ({
+    [dartx.window]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBeforeCopy]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBeforeCut]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBeforePaste]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onCopy]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
+    [dartx.onCut]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
+    [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
+    [dartx.onPaste]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
+    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPointerLockChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPointerLockError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSecurityPolicyViolation]: dart.definiteFunctionType(async.Stream$(html$.SecurityPolicyViolationEvent), []),
+    [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelectionChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelectStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFullscreenChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFullscreenError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.supportsRegisterElement]: dart.definiteFunctionType(core.bool, []),
+    [dartx.supportsRegister]: dart.definiteFunctionType(core.bool, []),
+    [dartx.visibilityState]: dart.definiteFunctionType(core.String, [])
+  }),
+  methods: () => ({
+    [dartx.adoptNode]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [_caretRangeFromPoint]: dart.definiteFunctionType(html$.Range, [core.int, core.int]),
+    [dartx.createDocumentFragment]: dart.definiteFunctionType(html$.DocumentFragment, []),
+    [_createElement]: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
+    [_createElementNS]: dart.definiteFunctionType(html$.Element, [core.String, core.String], [core.String]),
+    [_createEvent]: dart.definiteFunctionType(html$.Event, [core.String]),
+    [dartx.createRange]: dart.definiteFunctionType(html$.Range, []),
+    [_createTextNode]: dart.definiteFunctionType(html$.Text, [core.String]),
+    [_createTouch]: dart.definiteFunctionType(html$.Touch, [html$.Window, html$.EventTarget, core.int, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
+    [_createTouch_1]: dart.definiteFunctionType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_createTouchList]: dart.definiteFunctionType(html$.TouchList, [html$.Touch]),
+    [_elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
+    [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html$.Element), [core.int, core.int]),
+    [dartx.execCommand]: dart.definiteFunctionType(core.bool, [core.String], [core.bool, core.String]),
+    [dartx.exitFullscreen]: dart.definiteFunctionType(dart.void, []),
+    [dartx.exitPointerLock]: dart.definiteFunctionType(dart.void, []),
+    [_getCssCanvasContext]: dart.definiteFunctionType(core.Object, [core.String, core.String, core.int, core.int]),
+    [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.getElementsByName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.getElementsByTagName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.importNode]: dart.definiteFunctionType(html$.Node, [html$.Node], [core.bool]),
+    [dartx.queryCommandEnabled]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.queryCommandIndeterm]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.queryCommandState]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.queryCommandSupported]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.queryCommandValue]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.transformDocumentToTreeView]: dart.definiteFunctionType(dart.void, [core.String]),
+    [_webkitExitFullscreen]: dart.definiteFunctionType(dart.void, []),
+    [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.createElement]: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
+    [_createElement_2]: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    [_createElementNS_2]: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
+    [dartx.createElementNS]: dart.definiteFunctionType(html$.Element, [core.String, core.String], [core.String]),
+    [_createNodeIterator]: dart.definiteFunctionType(html$.NodeIterator, [html$.Node], [core.int, html$.NodeFilter]),
+    [_createTreeWalker]: dart.definiteFunctionType(html$.TreeWalker, [html$.Node], [core.int, html$.NodeFilter])
+  }),
+  sfields: () => ({
+    pointerLockChangeEvent: EventStreamProviderOfEvent(),
+    pointerLockErrorEvent: EventStreamProviderOfEvent(),
+    readyStateChangeEvent: EventStreamProviderOfEvent(),
+    securityPolicyViolationEvent: EventStreamProviderOfSecurityPolicyViolationEvent(),
+    selectionChangeEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(html$.Document, {
+  get pointerLockChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pointerlockchange'));
+  },
+  get pointerLockErrorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pointerlockerror'));
+  },
+  get readyStateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('readystatechange'));
+  },
+  get securityPolicyViolationEvent() {
+    return dart.const(new (EventStreamProviderOfSecurityPolicyViolationEvent())('securitypolicyviolation'));
+  },
+  get selectionChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('selectionchange'));
+  }
+});
+dart.registerExtension(dart.global.Document, html$.Document);
+const _docChildren = Symbol('_docChildren');
+dart.defineExtensionNames([
+  'children',
+  'children',
+  'querySelectorAll',
+  'innerHtml',
+  'innerHtml',
+  'setInnerHtml',
+  'appendText',
+  'appendHtml',
+  'query',
+  'queryAll',
+  'getElementById',
+  'querySelector'
+]);
+html$.DocumentFragment = class DocumentFragment extends html$.Node {
+  static new() {
+    return html$.document[dartx.createDocumentFragment]();
+  }
+  static html(html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    return html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+  }
+  static svg(svgContent, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    return svg$.SvgSvgElement.new()[dartx.createFragment](svgContent, {validator: validator, treeSanitizer: treeSanitizer});
+  }
+  get [_children]() {
+    return dart.throw(new core.UnimplementedError('Use _docChildren instead'));
+  }
+  get [_docChildren]() {
+    return this._docChildren;
+  }
+  set [_docChildren](value) {
+    this._docChildren = value;
+  }
+  get [dartx.children]() {
+    if (this[_docChildren] == null) {
+      this[_docChildren] = new html_common.FilteredElementList(this);
+    }
+    return this[_docChildren];
+  }
+  set [dartx.children](value) {
+    let copy = value[dartx.toList]();
+    let children = this[dartx.children];
+    children[dartx.clear]();
+    children[dartx.addAll](copy);
+  }
+  [dartx.querySelectorAll](T) {
+    return selectors => {
+      return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
+    };
+  }
+  get [dartx.innerHtml]() {
+    let e = html$.Element.tag("div");
+    e[dartx.append](this[dartx.clone](true));
+    return e[dartx.innerHtml];
+  }
+  set [dartx.innerHtml](value) {
+    this[dartx.setInnerHtml](value);
+  }
+  [dartx.setInnerHtml](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    this[dartx.nodes][dartx.clear]();
+    this[dartx.append](html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
+  }
+  [dartx.appendText](text) {
+    this[dartx.append](html$.Text.new(text));
+  }
+  [dartx.appendHtml](text, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let NodeTreeSanitizer = opts && 'NodeTreeSanitizer' in opts ? opts.NodeTreeSanitizer : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    this[dartx.append](html$.DocumentFragment.html(text, {validator: validator, treeSanitizer: html$.NodeTreeSanitizer._check(treeSanitizer)}));
+  }
+  [dartx.query](relativeSelectors) {
+    return this[dartx.querySelector](relativeSelectors);
+  }
+  [dartx.queryAll](T) {
+    return relativeSelectors => {
+      return this[dartx.querySelectorAll](T)(relativeSelectors);
+    };
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getElementById](...args) {
+    return this.getElementById.apply(this, args);
+  }
+  get [_childElementCount]() {
+    return this.childElementCount;
+  }
+  get [_firstElementChild]() {
+    return this.firstElementChild;
+  }
+  get [_lastElementChild]() {
+    return this.lastElementChild;
+  }
+  [dartx.querySelector](...args) {
+    return this.querySelector.apply(this, args);
+  }
+  [_querySelectorAll](...args) {
+    return this.querySelectorAll.apply(this, args);
+  }
+};
+html$.DocumentFragment[dart.implements] = () => [html$.NonElementParentNode, html$.ParentNode];
+dart.setSignature(html$.DocumentFragment, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.DocumentFragment, []),
+    html: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    svg: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    _: dart.definiteFunctionType(html$.DocumentFragment, [])
+  }),
+  fields: () => ({
+    [_docChildren]: ListOfElement(),
+    [_childElementCount]: core.int,
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
+  }),
+  getters: () => ({
+    [_children]: dart.definiteFunctionType(html$.HtmlCollection, []),
+    [dartx.children]: dart.definiteFunctionType(core.List$(html$.Element), []),
+    [dartx.innerHtml]: dart.definiteFunctionType(core.String, [])
+  }),
+  setters: () => ({
+    [dartx.children]: dart.definiteFunctionType(dart.void, [ListOfElement()]),
+    [dartx.innerHtml]: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  methods: () => ({
+    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    [dartx.appendText]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, NodeTreeSanitizer: dart.dynamic, treeSanitizer: dart.dynamic}),
+    [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String])
+  })
+});
+dart.registerExtension(dart.global.DocumentFragment, html$.DocumentFragment);
+dart.defineExtensionNames([
+  'message',
+  'name'
+]);
+html$.DomError = class DomError extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(name, message) {
+    if (message === void 0) message = null;
+    if (message != null) {
+      return html$.DomError._create_1(name, message);
+    }
+    return html$.DomError._create_2(name);
+  }
+  static _create_1(name, message) {
+    return new DOMError(name, message);
+  }
+  static _create_2(name) {
+    return new DOMError(name);
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+};
+dart.setSignature(html$.DomError, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DomError, []),
+    new: dart.definiteFunctionType(html$.DomError, [core.String], [core.String])
+  }),
+  fields: () => ({
+    [dartx.message]: core.String,
+    [dartx.name]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.DomError, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DomError, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.DOMError, html$.DomError);
+dart.defineExtensionNames([
+  'name',
+  'toString',
+  'message'
+]);
+html$.DomException = class DomException extends _interceptors.Interceptor {
+  get [dartx.name]() {
+    let errorName = this.name;
+    if (dart.test(html_common.Device.isWebKit) && errorName == 'SECURITY_ERR') return 'SecurityError';
+    if (dart.test(html_common.Device.isWebKit) && errorName == 'SYNTAX_ERR') return 'SyntaxError';
+    return errorName;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  [dartx.toString]() {
+    return String(this);
+  }
+};
+dart.setSignature(html$.DomException, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomException, [])}),
+  fields: () => ({[dartx.message]: core.String}),
+  getters: () => ({[dartx.name]: dart.definiteFunctionType(core.String, [])}),
+  sfields: () => ({
+    INDEX_SIZE: core.String,
+    HIERARCHY_REQUEST: core.String,
+    WRONG_DOCUMENT: core.String,
+    INVALID_CHARACTER: core.String,
+    NO_MODIFICATION_ALLOWED: core.String,
+    NOT_FOUND: core.String,
+    NOT_SUPPORTED: core.String,
+    INVALID_STATE: core.String,
+    SYNTAX: core.String,
+    INVALID_MODIFICATION: core.String,
+    NAMESPACE: core.String,
+    INVALID_ACCESS: core.String,
+    TYPE_MISMATCH: core.String,
+    SECURITY: core.String,
+    NETWORK: core.String,
+    ABORT: core.String,
+    URL_MISMATCH: core.String,
+    QUOTA_EXCEEDED: core.String,
+    TIMEOUT: core.String,
+    INVALID_NODE_TYPE: core.String,
+    DATA_CLONE: core.String
+  })
+});
+html$.DomException.INDEX_SIZE = 'IndexSizeError';
+html$.DomException.HIERARCHY_REQUEST = 'HierarchyRequestError';
+html$.DomException.WRONG_DOCUMENT = 'WrongDocumentError';
+html$.DomException.INVALID_CHARACTER = 'InvalidCharacterError';
+html$.DomException.NO_MODIFICATION_ALLOWED = 'NoModificationAllowedError';
+html$.DomException.NOT_FOUND = 'NotFoundError';
+html$.DomException.NOT_SUPPORTED = 'NotSupportedError';
+html$.DomException.INVALID_STATE = 'InvalidStateError';
+html$.DomException.SYNTAX = 'SyntaxError';
+html$.DomException.INVALID_MODIFICATION = 'InvalidModificationError';
+html$.DomException.NAMESPACE = 'NamespaceError';
+html$.DomException.INVALID_ACCESS = 'InvalidAccessError';
+html$.DomException.TYPE_MISMATCH = 'TypeMismatchError';
+html$.DomException.SECURITY = 'SecurityError';
+html$.DomException.NETWORK = 'NetworkError';
+html$.DomException.ABORT = 'AbortError';
+html$.DomException.URL_MISMATCH = 'URLMismatchError';
+html$.DomException.QUOTA_EXCEEDED = 'QuotaExceededError';
+html$.DomException.TIMEOUT = 'TimeoutError';
+html$.DomException.INVALID_NODE_TYPE = 'InvalidNodeTypeError';
+html$.DomException.DATA_CLONE = 'DataCloneError';
+dart.registerExtension(dart.global.DOMException, html$.DomException);
+dart.defineExtensionNames([
+  'createDocument',
+  'createDocumentType',
+  'createHtmlDocument',
+  'hasFeature'
+]);
+html$.DomImplementation = class DomImplementation extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.createDocument](...args) {
+    return this.createDocument.apply(this, args);
+  }
+  [dartx.createDocumentType](...args) {
+    return this.createDocumentType.apply(this, args);
+  }
+  [dartx.createHtmlDocument](...args) {
+    return this.createHTMLDocument.apply(this, args);
+  }
+  [dartx.hasFeature](...args) {
+    return this.hasFeature.apply(this, args);
+  }
+};
+dart.setSignature(html$.DomImplementation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomImplementation, [])}),
+  methods: () => ({
+    [dartx.createDocument]: dart.definiteFunctionType(html$.XmlDocument, [core.String, core.String, html$._DocumentType]),
+    [dartx.createDocumentType]: dart.definiteFunctionType(html$._DocumentType, [core.String, core.String, core.String]),
+    [dartx.createHtmlDocument]: dart.definiteFunctionType(html$.HtmlDocument, [core.String]),
+    [dartx.hasFeature]: dart.definiteFunctionType(core.bool, [])
+  })
+});
+dart.registerExtension(dart.global.DOMImplementation, html$.DomImplementation);
+dart.defineExtensionNames([
+  'next'
+]);
+html$.DomIterator = class DomIterator extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.next](...args) {
+    return this.next.apply(this, args);
+  }
+};
+dart.setSignature(html$.DomIterator, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomIterator, [])}),
+  methods: () => ({[dartx.next]: dart.definiteFunctionType(core.Object, [], [core.Object])})
+});
+dart.registerExtension(dart.global.Iterator, html$.DomIterator);
+dart.defineExtensionNames([
+  'a',
+  'b',
+  'c',
+  'd',
+  'e',
+  'f',
+  'is2D',
+  'isIdentity',
+  'm11',
+  'm12',
+  'm13',
+  'm14',
+  'm21',
+  'm22',
+  'm23',
+  'm24',
+  'm31',
+  'm32',
+  'm33',
+  'm34',
+  'm41',
+  'm42',
+  'm43',
+  'm44',
+  'multiply',
+  'scale',
+  'scale3d',
+  'scaleNonUniform',
+  'toFloat32Array',
+  'toFloat64Array',
+  'translate'
+]);
+html$.DomMatrixReadOnly = class DomMatrixReadOnly extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.a]() {
+    return this.a;
+  }
+  get [dartx.b]() {
+    return this.b;
+  }
+  get [dartx.c]() {
+    return this.c;
+  }
+  get [dartx.d]() {
+    return this.d;
+  }
+  get [dartx.e]() {
+    return this.e;
+  }
+  get [dartx.f]() {
+    return this.f;
+  }
+  get [dartx.is2D]() {
+    return this.is2D;
+  }
+  get [dartx.isIdentity]() {
+    return this.isIdentity;
+  }
+  get [dartx.m11]() {
+    return this.m11;
+  }
+  get [dartx.m12]() {
+    return this.m12;
+  }
+  get [dartx.m13]() {
+    return this.m13;
+  }
+  get [dartx.m14]() {
+    return this.m14;
+  }
+  get [dartx.m21]() {
+    return this.m21;
+  }
+  get [dartx.m22]() {
+    return this.m22;
+  }
+  get [dartx.m23]() {
+    return this.m23;
+  }
+  get [dartx.m24]() {
+    return this.m24;
+  }
+  get [dartx.m31]() {
+    return this.m31;
+  }
+  get [dartx.m32]() {
+    return this.m32;
+  }
+  get [dartx.m33]() {
+    return this.m33;
+  }
+  get [dartx.m34]() {
+    return this.m34;
+  }
+  get [dartx.m41]() {
+    return this.m41;
+  }
+  get [dartx.m42]() {
+    return this.m42;
+  }
+  get [dartx.m43]() {
+    return this.m43;
+  }
+  get [dartx.m44]() {
+    return this.m44;
+  }
+  [dartx.multiply](...args) {
+    return this.multiply.apply(this, args);
+  }
+  [dartx.scale](...args) {
+    return this.scale.apply(this, args);
+  }
+  [dartx.scale3d](...args) {
+    return this.scale3d.apply(this, args);
+  }
+  [dartx.scaleNonUniform](...args) {
+    return this.scaleNonUniform.apply(this, args);
+  }
+  [dartx.toFloat32Array](...args) {
+    return this.toFloat32Array.apply(this, args);
+  }
+  [dartx.toFloat64Array](...args) {
+    return this.toFloat64Array.apply(this, args);
+  }
+  [dartx.translate](...args) {
+    return this.translate.apply(this, args);
+  }
+};
+dart.setSignature(html$.DomMatrixReadOnly, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomMatrixReadOnly, [])}),
+  getters: () => ({
+    [dartx.a]: dart.definiteFunctionType(core.num, []),
+    [dartx.b]: dart.definiteFunctionType(core.num, []),
+    [dartx.c]: dart.definiteFunctionType(core.num, []),
+    [dartx.d]: dart.definiteFunctionType(core.num, []),
+    [dartx.e]: dart.definiteFunctionType(core.num, []),
+    [dartx.f]: dart.definiteFunctionType(core.num, []),
+    [dartx.is2D]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isIdentity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.m11]: dart.definiteFunctionType(core.num, []),
+    [dartx.m12]: dart.definiteFunctionType(core.num, []),
+    [dartx.m13]: dart.definiteFunctionType(core.num, []),
+    [dartx.m14]: dart.definiteFunctionType(core.num, []),
+    [dartx.m21]: dart.definiteFunctionType(core.num, []),
+    [dartx.m22]: dart.definiteFunctionType(core.num, []),
+    [dartx.m23]: dart.definiteFunctionType(core.num, []),
+    [dartx.m24]: dart.definiteFunctionType(core.num, []),
+    [dartx.m31]: dart.definiteFunctionType(core.num, []),
+    [dartx.m32]: dart.definiteFunctionType(core.num, []),
+    [dartx.m33]: dart.definiteFunctionType(core.num, []),
+    [dartx.m34]: dart.definiteFunctionType(core.num, []),
+    [dartx.m41]: dart.definiteFunctionType(core.num, []),
+    [dartx.m42]: dart.definiteFunctionType(core.num, []),
+    [dartx.m43]: dart.definiteFunctionType(core.num, []),
+    [dartx.m44]: dart.definiteFunctionType(core.num, [])
+  }),
+  methods: () => ({
+    [dartx.multiply]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
+    [dartx.scale]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num]),
+    [dartx.scale3d]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num]),
+    [dartx.scaleNonUniform]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
+    [dartx.toFloat32Array]: dart.definiteFunctionType(typed_data.Float32List, []),
+    [dartx.toFloat64Array]: dart.definiteFunctionType(typed_data.Float64List, []),
+    [dartx.translate]: dart.definiteFunctionType(html$.DomMatrix, [core.num, core.num], [core.num])
+  })
+});
+dart.registerExtension(dart.global.DOMMatrixReadOnly, html$.DomMatrixReadOnly);
+dart.defineExtensionNames([
+  'a',
+  'a',
+  'b',
+  'b',
+  'c',
+  'c',
+  'd',
+  'd',
+  'e',
+  'e',
+  'f',
+  'f',
+  'm11',
+  'm11',
+  'm12',
+  'm12',
+  'm13',
+  'm13',
+  'm14',
+  'm14',
+  'm21',
+  'm21',
+  'm22',
+  'm22',
+  'm23',
+  'm23',
+  'm24',
+  'm24',
+  'm31',
+  'm31',
+  'm32',
+  'm32',
+  'm33',
+  'm33',
+  'm34',
+  'm34',
+  'm41',
+  'm41',
+  'm42',
+  'm42',
+  'm43',
+  'm43',
+  'm44',
+  'm44',
+  'multiplySelf',
+  'preMultiplySelf',
+  'scale3dSelf',
+  'scaleNonUniformSelf',
+  'scaleSelf',
+  'translateSelf'
+]);
+html$.DomMatrix = class DomMatrix extends html$.DomMatrixReadOnly {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(other) {
+    if (other === void 0) other = null;
+    if (other == null) {
+      return html$.DomMatrix._create_1();
+    }
+    if (html$.DomMatrixReadOnly.is(other) || other == null) {
+      return html$.DomMatrix._create_2(other);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1() {
+    return new DOMMatrix();
+  }
+  static _create_2(other) {
+    return new DOMMatrix(other);
+  }
+  get [dartx.a]() {
+    return this.a;
+  }
+  set [dartx.a](value) {
+    this.a = value;
+  }
+  get [dartx.b]() {
+    return this.b;
+  }
+  set [dartx.b](value) {
+    this.b = value;
+  }
+  get [dartx.c]() {
+    return this.c;
+  }
+  set [dartx.c](value) {
+    this.c = value;
+  }
+  get [dartx.d]() {
+    return this.d;
+  }
+  set [dartx.d](value) {
+    this.d = value;
+  }
+  get [dartx.e]() {
+    return this.e;
+  }
+  set [dartx.e](value) {
+    this.e = value;
+  }
+  get [dartx.f]() {
+    return this.f;
+  }
+  set [dartx.f](value) {
+    this.f = value;
+  }
+  get [dartx.m11]() {
+    return this.m11;
+  }
+  set [dartx.m11](value) {
+    this.m11 = value;
+  }
+  get [dartx.m12]() {
+    return this.m12;
+  }
+  set [dartx.m12](value) {
+    this.m12 = value;
+  }
+  get [dartx.m13]() {
+    return this.m13;
+  }
+  set [dartx.m13](value) {
+    this.m13 = value;
+  }
+  get [dartx.m14]() {
+    return this.m14;
+  }
+  set [dartx.m14](value) {
+    this.m14 = value;
+  }
+  get [dartx.m21]() {
+    return this.m21;
+  }
+  set [dartx.m21](value) {
+    this.m21 = value;
+  }
+  get [dartx.m22]() {
+    return this.m22;
+  }
+  set [dartx.m22](value) {
+    this.m22 = value;
+  }
+  get [dartx.m23]() {
+    return this.m23;
+  }
+  set [dartx.m23](value) {
+    this.m23 = value;
+  }
+  get [dartx.m24]() {
+    return this.m24;
+  }
+  set [dartx.m24](value) {
+    this.m24 = value;
+  }
+  get [dartx.m31]() {
+    return this.m31;
+  }
+  set [dartx.m31](value) {
+    this.m31 = value;
+  }
+  get [dartx.m32]() {
+    return this.m32;
+  }
+  set [dartx.m32](value) {
+    this.m32 = value;
+  }
+  get [dartx.m33]() {
+    return this.m33;
+  }
+  set [dartx.m33](value) {
+    this.m33 = value;
+  }
+  get [dartx.m34]() {
+    return this.m34;
+  }
+  set [dartx.m34](value) {
+    this.m34 = value;
+  }
+  get [dartx.m41]() {
+    return this.m41;
+  }
+  set [dartx.m41](value) {
+    this.m41 = value;
+  }
+  get [dartx.m42]() {
+    return this.m42;
+  }
+  set [dartx.m42](value) {
+    this.m42 = value;
+  }
+  get [dartx.m43]() {
+    return this.m43;
+  }
+  set [dartx.m43](value) {
+    this.m43 = value;
+  }
+  get [dartx.m44]() {
+    return this.m44;
+  }
+  set [dartx.m44](value) {
+    this.m44 = value;
+  }
+  [dartx.multiplySelf](...args) {
+    return this.multiplySelf.apply(this, args);
+  }
+  [dartx.preMultiplySelf](...args) {
+    return this.preMultiplySelf.apply(this, args);
+  }
+  [dartx.scale3dSelf](...args) {
+    return this.scale3dSelf.apply(this, args);
+  }
+  [dartx.scaleNonUniformSelf](...args) {
+    return this.scaleNonUniformSelf.apply(this, args);
+  }
+  [dartx.scaleSelf](...args) {
+    return this.scaleSelf.apply(this, args);
+  }
+  [dartx.translateSelf](...args) {
+    return this.translateSelf.apply(this, args);
+  }
+};
+dart.setSignature(html$.DomMatrix, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DomMatrix, []),
+    new: dart.definiteFunctionType(html$.DomMatrix, [], [html$.DomMatrixReadOnly])
+  }),
+  setters: () => ({
+    [dartx.a]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.b]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.c]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.d]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.e]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.f]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m11]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m12]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m13]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m14]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m21]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m22]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m23]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m24]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m31]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m32]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m33]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m34]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m41]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m42]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m43]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.m44]: dart.definiteFunctionType(dart.void, [core.num])
+  }),
+  methods: () => ({
+    [dartx.multiplySelf]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
+    [dartx.preMultiplySelf]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
+    [dartx.scale3dSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num]),
+    [dartx.scaleNonUniformSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
+    [dartx.scaleSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num]),
+    [dartx.translateSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num, core.num], [core.num])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.DomMatrix, []),
+    _create_2: dart.definiteFunctionType(html$.DomMatrix, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.DOMMatrix, html$.DomMatrix);
+dart.defineExtensionNames([
+  'parseFromString'
+]);
+html$.DomParser = class DomParser extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.DomParser._create_1();
+  }
+  static _create_1() {
+    return new DOMParser();
+  }
+  [dartx.parseFromString](...args) {
+    return this.parseFromString.apply(this, args);
+  }
+};
+dart.setSignature(html$.DomParser, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DomParser, []),
+    new: dart.definiteFunctionType(html$.DomParser, [])
+  }),
+  methods: () => ({[dartx.parseFromString]: dart.definiteFunctionType(html$.Document, [core.String, core.String])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.DomParser, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.DOMParser, html$.DomParser);
+dart.defineExtensionNames([
+  'w',
+  'x',
+  'y',
+  'z'
+]);
+html$.DomPointReadOnly = class DomPointReadOnly extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(x, y, z, w) {
+    return html$.DomPointReadOnly._create_1(x, y, z, w);
+  }
+  static _create_1(x, y, z, w) {
+    return new DOMPointReadOnly(x, y, z, w);
+  }
+  get [dartx.w]() {
+    return this.w;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.z]() {
+    return this.z;
+  }
+};
+dart.setSignature(html$.DomPointReadOnly, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DomPointReadOnly, []),
+    new: dart.definiteFunctionType(html$.DomPointReadOnly, [core.num, core.num, core.num, core.num])
+  }),
+  getters: () => ({
+    [dartx.w]: dart.definiteFunctionType(core.num, []),
+    [dartx.x]: dart.definiteFunctionType(core.num, []),
+    [dartx.y]: dart.definiteFunctionType(core.num, []),
+    [dartx.z]: dart.definiteFunctionType(core.num, [])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.DomPointReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.DOMPointReadOnly, html$.DomPointReadOnly);
+dart.defineExtensionNames([
+  'w',
+  'w',
+  'x',
+  'x',
+  'y',
+  'y',
+  'z',
+  'z'
+]);
+html$.DomPoint = class DomPoint extends html$.DomPointReadOnly {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(point_OR_x, y, z, w) {
+    if (point_OR_x === void 0) point_OR_x = null;
+    if (y === void 0) y = null;
+    if (z === void 0) z = null;
+    if (w === void 0) w = null;
+    if ((core.Map.is(point_OR_x) || point_OR_x == null) && y == null && z == null && w == null) {
+      let point_1 = html_common.convertDartToNative_Dictionary(core.Map._check(point_OR_x));
+      return html$.DomPoint._create_1(point_1);
+    }
+    if (point_OR_x == null && y == null && z == null && w == null) {
+      return html$.DomPoint._create_2();
+    }
+    if ((typeof point_OR_x == 'number' || point_OR_x == null) && y == null && z == null && w == null) {
+      return html$.DomPoint._create_3(point_OR_x);
+    }
+    if ((typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null) && z == null && w == null) {
+      return html$.DomPoint._create_4(point_OR_x, y);
+    }
+    if ((typeof z == 'number' || z == null) && (typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null) && w == null) {
+      return html$.DomPoint._create_5(point_OR_x, y, z);
+    }
+    if ((typeof w == 'number' || w == null) && (typeof z == 'number' || z == null) && (typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null)) {
+      return html$.DomPoint._create_6(point_OR_x, y, z, w);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1(point_OR_x) {
+    return new DOMPoint(point_OR_x);
+  }
+  static _create_2() {
+    return new DOMPoint();
+  }
+  static _create_3(point_OR_x) {
+    return new DOMPoint(point_OR_x);
+  }
+  static _create_4(point_OR_x, y) {
+    return new DOMPoint(point_OR_x, y);
+  }
+  static _create_5(point_OR_x, y, z) {
+    return new DOMPoint(point_OR_x, y, z);
+  }
+  static _create_6(point_OR_x, y, z, w) {
+    return new DOMPoint(point_OR_x, y, z, w);
+  }
+  static get supported() {
+    return !!window.DOMPoint || !!window.WebKitPoint;
+  }
+  get [dartx.w]() {
+    return this.w;
+  }
+  set [dartx.w](value) {
+    this.w = value;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.z]() {
+    return this.z;
+  }
+  set [dartx.z](value) {
+    this.z = value;
+  }
+};
+dart.setSignature(html$.DomPoint, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DomPoint, []),
+    new: dart.definiteFunctionType(html$.DomPoint, [], [dart.dynamic, core.num, core.num, core.num])
+  }),
+  setters: () => ({
+    [dartx.w]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.x]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.y]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.z]: dart.definiteFunctionType(dart.void, [core.num])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DomPoint, []),
+    _create_3: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_6: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6']
+});
+dart.registerExtension(dart.global.DOMPoint, html$.DomPoint);
+dart.defineExtensionNames([
+  'toString',
+  '==',
+  'hashCode',
+  'intersection',
+  'intersects',
+  'boundingBox',
+  'containsRectangle',
+  'containsPoint',
+  'topLeft',
+  'topRight',
+  'bottomRight',
+  'bottomLeft',
+  'bottom',
+  'height',
+  'left',
+  'right',
+  'top',
+  'width',
+  'x',
+  'y'
+]);
+html$.DomRectReadOnly = class DomRectReadOnly extends _interceptors.Interceptor {
+  [dartx.toString]() {
+    return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
+  }
+  [dartx['==']](other) {
+    if (!RectangleOfnum().is(other)) return false;
+    return dart.equals(this[dartx.left], dart.dload(other, 'left')) && dart.equals(this[dartx.top], dart.dload(other, 'top')) && dart.equals(this[dartx.width], dart.dload(other, 'width')) && dart.equals(this[dartx.height], dart.dload(other, 'height'));
+  }
+  get [dartx.hashCode]() {
+    return html$._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
+  }
+  [dartx.intersection](other) {
+    let x0 = math.max(core.num)(this[dartx.left], other[dartx.left]);
+    let x1 = math.min(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+    if (dart.notNull(x0) <= dart.notNull(x1)) {
+      let y0 = math.max(core.num)(this[dartx.top], other[dartx.top]);
+      let y1 = math.min(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+      if (dart.notNull(y0) <= dart.notNull(y1)) {
+        return new (RectangleOfnum())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
+      }
+    }
+    return null;
+  }
+  [dartx.intersects](other) {
+    return dart.notNull(this[dartx.left]) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
+  }
+  [dartx.boundingBox](other) {
+    let right = math.max(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+    let bottom = math.max(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+    let left = math.min(core.num)(this[dartx.left], other[dartx.left]);
+    let top = math.min(core.num)(this[dartx.top], other[dartx.top]);
+    return new (RectangleOfnum())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
+  }
+  [dartx.containsRectangle](another) {
+    return dart.notNull(this[dartx.left]) <= dart.notNull(another[dartx.left]) && dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(another[dartx.top]) && dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
+  }
+  [dartx.containsPoint](another) {
+    return dart.notNull(another.x) >= dart.notNull(this[dartx.left]) && dart.notNull(another.x) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(another.y) >= dart.notNull(this[dartx.top]) && dart.notNull(another.y) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
+  }
+  get [dartx.topLeft]() {
+    return new (PointOfnum())(this[dartx.left], this[dartx.top]);
+  }
+  get [dartx.topRight]() {
+    return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), this[dartx.top]);
+  }
+  get [dartx.bottomRight]() {
+    return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
+  }
+  get [dartx.bottomLeft]() {
+    return new (PointOfnum())(this[dartx.left], dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(x, y, width, height) {
+    return html$.DomRectReadOnly._create_1(x, y, width, height);
+  }
+  static _create_1(x, y, width, height) {
+    return new DOMRectReadOnly(x, y, width, height);
+  }
+  get [dartx.bottom]() {
+    return this.bottom;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.left]() {
+    return this.left;
+  }
+  get [dartx.right]() {
+    return this.right;
+  }
+  get [dartx.top]() {
+    return this.top;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+html$.DomRectReadOnly[dart.implements] = () => [RectangleOfnum()];
+dart.setSignature(html$.DomRectReadOnly, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.DomRectReadOnly, []),
+    new: dart.definiteFunctionType(html$.DomRectReadOnly, [core.num, core.num, core.num, core.num])
+  }),
+  getters: () => ({
+    [dartx.topLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.topRight]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.bottomRight]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.bottomLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.bottom]: dart.definiteFunctionType(core.num, []),
+    [dartx.height]: dart.definiteFunctionType(core.num, []),
+    [dartx.left]: dart.definiteFunctionType(core.num, []),
+    [dartx.right]: dart.definiteFunctionType(core.num, []),
+    [dartx.top]: dart.definiteFunctionType(core.num, []),
+    [dartx.width]: dart.definiteFunctionType(core.num, []),
+    [dartx.x]: dart.definiteFunctionType(core.num, []),
+    [dartx.y]: dart.definiteFunctionType(core.num, [])
+  }),
+  methods: () => ({
+    [dartx.intersection]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+    [dartx.intersects]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
+    [dartx.boundingBox]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+    [dartx.containsRectangle]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
+    [dartx.containsPoint]: dart.definiteFunctionType(core.bool, [PointOfnum()])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.DomRectReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.DOMRectReadOnly, html$.DomRectReadOnly);
+dart.defineExtensionNames([
+  'add',
+  'contains',
+  'item',
+  'remove',
+  'toggle',
+  'length'
+]);
+html$.DomTokenList = class DomTokenList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.add](...args) {
+    return this.add.apply(this, args);
+  }
+  [dartx.contains](...args) {
+    return this.contains.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.remove](...args) {
+    return this.remove.apply(this, args);
+  }
+  [dartx.toggle](...args) {
+    return this.toggle.apply(this, args);
+  }
+};
+dart.setSignature(html$.DomTokenList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomTokenList, [])}),
+  fields: () => ({[dartx.length]: core.int}),
+  methods: () => ({
+    [dartx.add]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.contains]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.remove]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.toggle]: dart.definiteFunctionType(core.bool, [core.String], [core.bool])
+  })
+});
+dart.registerExtension(dart.global.DOMTokenList, html$.DomTokenList);
+dart.defineExtensionNames([
+  'value'
+]);
+html$.DomSettableTokenList = class DomSettableTokenList extends html$.DomTokenList {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.setSignature(html$.DomSettableTokenList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomSettableTokenList, [])}),
+  fields: () => ({[dartx.value]: core.String})
+});
+dart.registerExtension(dart.global.DOMSettableTokenList, html$.DomSettableTokenList);
+html$.ImmutableListMixin$ = dart.generic(E => {
+  let FixedSizeListIteratorOfE = () => (FixedSizeListIteratorOfE = dart.constFn(html$.FixedSizeListIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
+  let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
+  let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
+  dart.defineExtensionNames([
+    'iterator',
+    'add',
+    'addAll',
+    'sort',
+    'shuffle',
+    'insert',
+    'insertAll',
+    'setAll',
+    'removeAt',
+    'removeLast',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'setRange',
+    'removeRange',
+    'replaceRange',
+    'fillRange'
+  ]);
+  class ImmutableListMixin extends core.Object {
+    get iterator() {
+      return new (FixedSizeListIteratorOfE())(this);
+    }
+    [Symbol.iterator]() {
+      return new dart.JsIterator(this[dartx.iterator]);
+    }
+    add(value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
+    }
+    addAll(iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
+    }
+    sort(compare) {
+      if (compare === void 0) compare = null;
+      dart.throw(new core.UnsupportedError("Cannot sort immutable List."));
+    }
+    shuffle(random) {
+      if (random === void 0) random = null;
+      dart.throw(new core.UnsupportedError("Cannot shuffle immutable List."));
+    }
+    insert(index, element) {
+      E._check(element);
+      dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
+    }
+    insertAll(index, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot add to immutable List."));
+    }
+    setAll(index, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot modify an immutable List."));
+    }
+    removeAt(pos) {
+      dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
+    }
+    removeLast() {
+      dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
+    }
+    remove(object) {
+      dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
+    }
+    removeWhere(test) {
+      dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
+    }
+    retainWhere(test) {
+      dart.throw(new core.UnsupportedError("Cannot remove from immutable List."));
+    }
+    setRange(start, end, iterable, skipCount) {
+      IterableOfE()._check(iterable);
+      if (skipCount === void 0) skipCount = 0;
+      dart.throw(new core.UnsupportedError("Cannot setRange on immutable List."));
+    }
+    removeRange(start, end) {
+      dart.throw(new core.UnsupportedError("Cannot removeRange on immutable List."));
+    }
+    replaceRange(start, end, iterable) {
+      IterableOfE()._check(iterable);
+      dart.throw(new core.UnsupportedError("Cannot modify an immutable List."));
+    }
+    fillRange(start, end, fillValue) {
+      if (fillValue === void 0) fillValue = null;
+      E._check(fillValue);
+      dart.throw(new core.UnsupportedError("Cannot modify an immutable List."));
+    }
+  }
+  dart.addTypeTests(ImmutableListMixin);
+  ImmutableListMixin[dart.implements] = () => [ListOfE()];
+  dart.setSignature(ImmutableListMixin, {
+    getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [E]),
+      addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
+      sort: dart.definiteFunctionType(dart.void, [], [EAndEToint()]),
+      shuffle: dart.definiteFunctionType(dart.void, [], [math.Random]),
+      insert: dart.definiteFunctionType(dart.void, [core.int, E]),
+      insertAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      setAll: dart.definiteFunctionType(dart.void, [core.int, IterableOfE()]),
+      removeAt: dart.definiteFunctionType(E, [core.int]),
+      removeLast: dart.definiteFunctionType(E, []),
+      remove: dart.definiteFunctionType(core.bool, [core.Object]),
+      removeWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      retainWhere: dart.definiteFunctionType(dart.void, [ETobool()]),
+      setRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()], [core.int]),
+      removeRange: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+      replaceRange: dart.definiteFunctionType(dart.void, [core.int, core.int, IterableOfE()]),
+      fillRange: dart.definiteFunctionType(dart.void, [core.int, core.int], [E])
+    })
+  });
+  dart.defineExtensionMembers(ImmutableListMixin, [
+    'add',
+    'addAll',
+    'sort',
+    'shuffle',
+    'insert',
+    'insertAll',
+    'setAll',
+    'removeAt',
+    'removeLast',
+    'remove',
+    'removeWhere',
+    'retainWhere',
+    'setRange',
+    'removeRange',
+    'replaceRange',
+    'fillRange',
+    'iterator'
+  ]);
+  return ImmutableListMixin;
+});
+html$.ImmutableListMixin = ImmutableListMixin();
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$.DomStringList = class DomStringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html$.ImmutableListMixin$(core.String)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.item](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.DomStringList[dart.implements] = () => [ListOfString()];
+dart.setSignature(html$.DomStringList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomStringList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
+    [__getter__]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.item]: dart.definiteFunctionType(core.String, [core.int])
+  })
+});
+dart.registerExtension(dart.global.DOMStringList, html$.DomStringList);
+html$.DomStringMap = class DomStringMap extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.DomStringMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomStringMap, [])})
+});
+html$.EffectModel = class EffectModel extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.EffectModel, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.EffectModel, [])})
+});
+dart.registerExtension(dart.global.EffectModel, html$.EffectModel);
+const _childElements = Symbol('_childElements');
+const _element$ = Symbol('_element');
+const _filter$0 = Symbol('_filter');
+html$._ChildrenElementList = class _ChildrenElementList extends collection.ListBase$(html$.Element) {
+  _wrap(element) {
+    this[_childElements] = html$.HtmlCollection._check(element[_children]);
+    this[_element$] = element;
+  }
+  contains(element) {
+    return this[_childElements][dartx.contains](element);
+  }
+  get isEmpty() {
+    return this[_element$][_firstElementChild] == null;
+  }
+  get length() {
+    return this[_childElements][dartx.length];
+  }
+  _get(index) {
+    return html$.Element._check(this[_childElements][dartx._get](index));
+  }
+  _set(index, value) {
+    this[_element$][_replaceChild](value, this[_childElements][dartx._get](index));
+    return value;
+  }
+  set length(newLength) {
+    dart.throw(new core.UnsupportedError('Cannot resize element lists'));
+  }
+  add(value) {
+    this[_element$][dartx.append](value);
+    return value;
+  }
+  get iterator() {
+    return this[dartx.toList]()[dartx.iterator];
+  }
+  addAll(iterable) {
+    if (html$._ChildNodeListLazy.is(iterable)) {
+      iterable = ListOfElement().from(iterable);
+    }
+    for (let element of iterable) {
+      this[_element$][dartx.append](element);
+    }
+  }
+  sort(compare) {
+    if (compare === void 0) compare = null;
+    dart.throw(new core.UnsupportedError('Cannot sort element lists'));
+  }
+  shuffle(random) {
+    if (random === void 0) random = null;
+    dart.throw(new core.UnsupportedError('Cannot shuffle element lists'));
+  }
+  removeWhere(test) {
+    this[_filter$0](test, false);
+  }
+  retainWhere(test) {
+    this[_filter$0](test, true);
+  }
+  [_filter$0](test, retainMatching) {
+    let removed = null;
+    if (dart.test(retainMatching)) {
+      removed = this[_element$][dartx.children][dartx.where](dart.fn(e => !dart.test(test(e)), ElementTobool$()));
+    } else {
+      removed = this[_element$][dartx.children][dartx.where](test);
+    }
+    for (let e of core.Iterable._check(removed))
+      dart.dsend(e, 'remove');
+  }
+  setRange(start, end, iterable, skipCount) {
+    if (skipCount === void 0) skipCount = 0;
+    dart.throw(new core.UnimplementedError());
+  }
+  replaceRange(start, end, iterable) {
+    dart.throw(new core.UnimplementedError());
+  }
+  fillRange(start, end, fillValue) {
+    if (fillValue === void 0) fillValue = null;
+    dart.throw(new core.UnimplementedError());
+  }
+  remove(object) {
+    if (html$.Element.is(object)) {
+      let element = object;
+      if (core.identical(element[dartx.parentNode], this[_element$])) {
+        this[_element$][_removeChild](element);
+        return true;
+      }
+    }
+    return false;
+  }
+  insert(index, element) {
+    if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
+      dart.throw(new core.RangeError.range(index, 0, this.length));
+    }
+    if (index == this.length) {
+      this[_element$][dartx.append](element);
+    } else {
+      this[_element$][dartx.insertBefore](element, this._get(index));
+    }
+  }
+  setAll(index, iterable) {
+    dart.throw(new core.UnimplementedError());
+  }
+  clear() {
+    this[_element$][_clearChildren]();
+  }
+  removeAt(index) {
+    let result = this._get(index);
+    if (result != null) {
+      this[_element$][_removeChild](result);
+    }
+    return result;
+  }
+  removeLast() {
+    let result = this.last;
+    if (result != null) {
+      this[_element$][_removeChild](result);
+    }
+    return result;
+  }
+  get first() {
+    let result = this[_element$][_firstElementChild];
+    if (result == null) dart.throw(new core.StateError("No elements"));
+    return result;
+  }
+  get last() {
+    let result = this[_element$][_lastElementChild];
+    if (result == null) dart.throw(new core.StateError("No elements"));
+    return result;
+  }
+  get single() {
+    if (dart.notNull(this.length) > 1) dart.throw(new core.StateError("More than one element"));
+    return this.first;
+  }
+  get rawList() {
+    return this[_childElements];
+  }
+};
+dart.addSimpleTypeTests(html$._ChildrenElementList);
+dart.defineNamedConstructor(html$._ChildrenElementList, '_wrap');
+html$._ChildrenElementList[dart.implements] = () => [html_common.NodeListWrapper];
+dart.setSignature(html$._ChildrenElementList, {
+  constructors: () => ({_wrap: dart.definiteFunctionType(html$._ChildrenElementList, [html$.Element])}),
+  fields: () => ({
+    [_element$]: html$.Element,
+    [_childElements]: html$.HtmlCollection
+  }),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
+  }),
+  setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    _get: dart.definiteFunctionType(html$.Element, [core.int]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, html$.Element]),
+    add: dart.definiteFunctionType(html$.Element, [html$.Element]),
+    [_filter$0]: dart.definiteFunctionType(dart.void, [ElementTobool(), core.bool])
+  })
+});
+dart.defineExtensionMembers(html$._ChildrenElementList, [
+  'contains',
+  '_get',
+  '_set',
+  'add',
+  'addAll',
+  'sort',
+  'shuffle',
+  'removeWhere',
+  'retainWhere',
+  'setRange',
+  'replaceRange',
+  'fillRange',
+  'remove',
+  'insert',
+  'setAll',
+  'clear',
+  'removeAt',
+  'removeLast',
+  'isEmpty',
+  'length',
+  'length',
+  'iterator',
+  'first',
+  'last',
+  'single'
+]);
+html$.ElementList$ = dart.generic(T => {
+  class ElementList extends collection.ListBase$(T) {}
+  return ElementList;
+});
+html$.ElementList = ElementList();
+const _nodeList = Symbol('_nodeList');
+const _forElementList = Symbol('_forElementList');
+html$._FrozenElementList$ = dart.generic(E => {
+  let ElementListOfE = () => (ElementListOfE = dart.constFn(html$.ElementList$(E)))();
+  let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
+  let EToIterableOfString = () => (EToIterableOfString = dart.constFn(dart.definiteFunctionType(IterableOfString(), [E])))();
+  class _FrozenElementList extends collection.ListBase$(E) {
+    _wrap(nodeList) {
+      this[_nodeList] = nodeList;
+    }
+    get length() {
+      return this[_nodeList][dartx.length];
+    }
+    _get(index) {
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx._get](index));
+    }
+    _set(index, value) {
+      E._check(value);
+      dart.throw(new core.UnsupportedError('Cannot modify list'));
+      return value;
+    }
+    set length(newLength) {
+      dart.throw(new core.UnsupportedError('Cannot modify list'));
+    }
+    sort(compare) {
+      if (compare === void 0) compare = null;
+      dart.throw(new core.UnsupportedError('Cannot sort list'));
+    }
+    shuffle(random) {
+      if (random === void 0) random = null;
+      dart.throw(new core.UnsupportedError('Cannot shuffle list'));
+    }
+    get first() {
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx.first]);
+    }
+    get last() {
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx.last]);
+    }
+    get single() {
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx.single]);
+    }
+    get classes() {
+      return html$._MultiElementCssClassSet.new(this);
+    }
+    get style() {
+      return new html$._CssStyleDeclarationSet(this);
+    }
+    set classes(value) {
+      this[dartx.forEach](dart.fn(e => e[dartx.classes] = value, EToIterableOfString()));
+    }
+    get contentEdge() {
+      return new html$._ContentCssListRect(this);
+    }
+    get paddingEdge() {
+      return this.first[dartx.paddingEdge];
+    }
+    get borderEdge() {
+      return this.first[dartx.borderEdge];
+    }
+    get marginEdge() {
+      return this.first[dartx.marginEdge];
+    }
+    get rawList() {
+      return this[_nodeList];
+    }
+    get onAbort() {
+      return html$.Element.abortEvent[_forElementList](this);
+    }
+    get onBeforeCopy() {
+      return html$.Element.beforeCopyEvent[_forElementList](this);
+    }
+    get onBeforeCut() {
+      return html$.Element.beforeCutEvent[_forElementList](this);
+    }
+    get onBeforePaste() {
+      return html$.Element.beforePasteEvent[_forElementList](this);
+    }
+    get onBlur() {
+      return html$.Element.blurEvent[_forElementList](this);
+    }
+    get onCanPlay() {
+      return html$.Element.canPlayEvent[_forElementList](this);
+    }
+    get onCanPlayThrough() {
+      return html$.Element.canPlayThroughEvent[_forElementList](this);
+    }
+    get onChange() {
+      return html$.Element.changeEvent[_forElementList](this);
+    }
+    get onClick() {
+      return html$.Element.clickEvent[_forElementList](this);
+    }
+    get onContextMenu() {
+      return html$.Element.contextMenuEvent[_forElementList](this);
+    }
+    get onCopy() {
+      return html$.Element.copyEvent[_forElementList](this);
+    }
+    get onCut() {
+      return html$.Element.cutEvent[_forElementList](this);
+    }
+    get onDoubleClick() {
+      return html$.Element.doubleClickEvent[_forElementList](this);
+    }
+    get onDrag() {
+      return html$.Element.dragEvent[_forElementList](this);
+    }
+    get onDragEnd() {
+      return html$.Element.dragEndEvent[_forElementList](this);
+    }
+    get onDragEnter() {
+      return html$.Element.dragEnterEvent[_forElementList](this);
+    }
+    get onDragLeave() {
+      return html$.Element.dragLeaveEvent[_forElementList](this);
+    }
+    get onDragOver() {
+      return html$.Element.dragOverEvent[_forElementList](this);
+    }
+    get onDragStart() {
+      return html$.Element.dragStartEvent[_forElementList](this);
+    }
+    get onDrop() {
+      return html$.Element.dropEvent[_forElementList](this);
+    }
+    get onDurationChange() {
+      return html$.Element.durationChangeEvent[_forElementList](this);
+    }
+    get onEmptied() {
+      return html$.Element.emptiedEvent[_forElementList](this);
+    }
+    get onEnded() {
+      return html$.Element.endedEvent[_forElementList](this);
+    }
+    get onError() {
+      return html$.Element.errorEvent[_forElementList](this);
+    }
+    get onFocus() {
+      return html$.Element.focusEvent[_forElementList](this);
+    }
+    get onInput() {
+      return html$.Element.inputEvent[_forElementList](this);
+    }
+    get onInvalid() {
+      return html$.Element.invalidEvent[_forElementList](this);
+    }
+    get onKeyDown() {
+      return html$.Element.keyDownEvent[_forElementList](this);
+    }
+    get onKeyPress() {
+      return html$.Element.keyPressEvent[_forElementList](this);
+    }
+    get onKeyUp() {
+      return html$.Element.keyUpEvent[_forElementList](this);
+    }
+    get onLoad() {
+      return html$.Element.loadEvent[_forElementList](this);
+    }
+    get onLoadedData() {
+      return html$.Element.loadedDataEvent[_forElementList](this);
+    }
+    get onLoadedMetadata() {
+      return html$.Element.loadedMetadataEvent[_forElementList](this);
+    }
+    get onMouseDown() {
+      return html$.Element.mouseDownEvent[_forElementList](this);
+    }
+    get onMouseEnter() {
+      return html$.Element.mouseEnterEvent[_forElementList](this);
+    }
+    get onMouseLeave() {
+      return html$.Element.mouseLeaveEvent[_forElementList](this);
+    }
+    get onMouseMove() {
+      return html$.Element.mouseMoveEvent[_forElementList](this);
+    }
+    get onMouseOut() {
+      return html$.Element.mouseOutEvent[_forElementList](this);
+    }
+    get onMouseOver() {
+      return html$.Element.mouseOverEvent[_forElementList](this);
+    }
+    get onMouseUp() {
+      return html$.Element.mouseUpEvent[_forElementList](this);
+    }
+    get onMouseWheel() {
+      return html$.Element.mouseWheelEvent[_forElementList](this);
+    }
+    get onPaste() {
+      return html$.Element.pasteEvent[_forElementList](this);
+    }
+    get onPause() {
+      return html$.Element.pauseEvent[_forElementList](this);
+    }
+    get onPlay() {
+      return html$.Element.playEvent[_forElementList](this);
+    }
+    get onPlaying() {
+      return html$.Element.playingEvent[_forElementList](this);
+    }
+    get onRateChange() {
+      return html$.Element.rateChangeEvent[_forElementList](this);
+    }
+    get onReset() {
+      return html$.Element.resetEvent[_forElementList](this);
+    }
+    get onResize() {
+      return html$.Element.resizeEvent[_forElementList](this);
+    }
+    get onScroll() {
+      return html$.Element.scrollEvent[_forElementList](this);
+    }
+    get onSearch() {
+      return html$.Element.searchEvent[_forElementList](this);
+    }
+    get onSeeked() {
+      return html$.Element.seekedEvent[_forElementList](this);
+    }
+    get onSeeking() {
+      return html$.Element.seekingEvent[_forElementList](this);
+    }
+    get onSelect() {
+      return html$.Element.selectEvent[_forElementList](this);
+    }
+    get onSelectStart() {
+      return html$.Element.selectStartEvent[_forElementList](this);
+    }
+    get onStalled() {
+      return html$.Element.stalledEvent[_forElementList](this);
+    }
+    get onSubmit() {
+      return html$.Element.submitEvent[_forElementList](this);
+    }
+    get onSuspend() {
+      return html$.Element.suspendEvent[_forElementList](this);
+    }
+    get onTimeUpdate() {
+      return html$.Element.timeUpdateEvent[_forElementList](this);
+    }
+    get onTouchCancel() {
+      return html$.Element.touchCancelEvent[_forElementList](this);
+    }
+    get onTouchEnd() {
+      return html$.Element.touchEndEvent[_forElementList](this);
+    }
+    get onTouchEnter() {
+      return html$.Element.touchEnterEvent[_forElementList](this);
+    }
+    get onTouchLeave() {
+      return html$.Element.touchLeaveEvent[_forElementList](this);
+    }
+    get onTouchMove() {
+      return html$.Element.touchMoveEvent[_forElementList](this);
+    }
+    get onTouchStart() {
+      return html$.Element.touchStartEvent[_forElementList](this);
+    }
+    get onTransitionEnd() {
+      return html$.Element.transitionEndEvent[_forElementList](this);
+    }
+    get onVolumeChange() {
+      return html$.Element.volumeChangeEvent[_forElementList](this);
+    }
+    get onWaiting() {
+      return html$.Element.waitingEvent[_forElementList](this);
+    }
+    get onFullscreenChange() {
+      return html$.Element.fullscreenChangeEvent[_forElementList](this);
+    }
+    get onFullscreenError() {
+      return html$.Element.fullscreenErrorEvent[_forElementList](this);
+    }
+  }
+  dart.defineNamedConstructor(_FrozenElementList, '_wrap');
+  _FrozenElementList[dart.implements] = () => [ElementListOfE(), html_common.NodeListWrapper];
+  dart.setSignature(_FrozenElementList, {
+    constructors: () => ({_wrap: dart.definiteFunctionType(html$._FrozenElementList$(E), [ListOfNode()])}),
+    fields: () => ({[_nodeList]: ListOfNode()}),
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      classes: dart.definiteFunctionType(html$.CssClassSet, []),
+      style: dart.definiteFunctionType(html$.CssStyleDeclarationBase, []),
+      contentEdge: dart.definiteFunctionType(html$.CssRect, []),
+      paddingEdge: dart.definiteFunctionType(html$.CssRect, []),
+      borderEdge: dart.definiteFunctionType(html$.CssRect, []),
+      marginEdge: dart.definiteFunctionType(html$.CssRect, []),
+      rawList: dart.definiteFunctionType(core.List$(html$.Node), []),
+      onAbort: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBeforeCopy: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBeforeCut: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBeforePaste: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBlur: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onCanPlay: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onCanPlayThrough: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onClick: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onContextMenu: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onCopy: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+      onCut: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+      onDoubleClick: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onDrag: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragEnd: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragEnter: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragLeave: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragOver: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragStart: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDrop: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDurationChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onEmptied: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onEnded: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onError: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onFocus: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onInput: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onInvalid: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onKeyDown: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+      onKeyPress: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+      onKeyUp: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+      onLoad: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onLoadedData: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onLoadedMetadata: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onMouseDown: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseEnter: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseLeave: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseMove: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseOut: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseOver: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseUp: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseWheel: dart.definiteFunctionType(html$.ElementStream$(html$.WheelEvent), []),
+      onPaste: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+      onPause: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onPlay: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onPlaying: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onRateChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onReset: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onResize: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onScroll: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSearch: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSeeked: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSeeking: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSelect: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSelectStart: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onStalled: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSubmit: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSuspend: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onTimeUpdate: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onTouchCancel: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchEnd: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchEnter: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchLeave: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchMove: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchStart: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTransitionEnd: dart.definiteFunctionType(html$.ElementStream$(html$.TransitionEvent), []),
+      onVolumeChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onWaiting: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onFullscreenChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onFullscreenError: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
+    }),
+    setters: () => ({
+      length: dart.definiteFunctionType(dart.void, [core.int]),
+      classes: dart.definiteFunctionType(dart.void, [IterableOfString()])
+    }),
+    methods: () => ({
+      _get: dart.definiteFunctionType(E, [core.int]),
+      _set: dart.definiteFunctionType(dart.void, [core.int, E])
+    })
+  });
+  dart.defineExtensionMembers(_FrozenElementList, [
+    '_get',
+    '_set',
+    'sort',
+    'shuffle',
+    'length',
+    'length',
+    'first',
+    'last',
+    'single'
+  ]);
+  return _FrozenElementList;
+});
+html$._FrozenElementList = _FrozenElementList();
+html$._ElementFactoryProvider = class _ElementFactoryProvider extends core.Object {
+  static createElement_tag(tag, typeExtension) {
+    if (typeExtension != null) {
+      return document.createElement(tag, typeExtension);
+    }
+    return document.createElement(tag);
+  }
+};
+dart.setSignature(html$._ElementFactoryProvider, {
+  statics: () => ({createElement_tag: dart.definiteFunctionType(dart.dynamic, [core.String, core.String])}),
+  names: ['createElement_tag']
+});
+const _value$2 = Symbol('_value');
+html$.ScrollAlignment = class ScrollAlignment extends core.Object {
+  _internal(value) {
+    this[_value$2] = value;
+  }
+  toString() {
+    return dart.str`ScrollAlignment.${this[_value$2]}`;
+  }
+};
+dart.defineNamedConstructor(html$.ScrollAlignment, '_internal');
+dart.setSignature(html$.ScrollAlignment, {
+  constructors: () => ({_internal: dart.definiteFunctionType(html$.ScrollAlignment, [dart.dynamic])}),
+  fields: () => ({[_value$2]: dart.dynamic}),
+  sfields: () => ({
+    TOP: html$.ScrollAlignment,
+    CENTER: html$.ScrollAlignment,
+    BOTTOM: html$.ScrollAlignment
+  })
+});
+dart.defineLazy(html$.ScrollAlignment, {
+  get TOP() {
+    return dart.const(new html$.ScrollAlignment._internal('TOP'));
+  },
+  get CENTER() {
+    return dart.const(new html$.ScrollAlignment._internal('CENTER'));
+  },
+  get BOTTOM() {
+    return dart.const(new html$.ScrollAlignment._internal('BOTTOM'));
+  }
+});
+const __setter__ = Symbol('__setter__');
+dart.defineExtensionNames([
+  'height',
+  'name',
+  'src',
+  'type',
+  'width'
+]);
+html$.EmbedElement = class EmbedElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.EmbedElement._check(html$.document[dartx.createElement]("embed"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.name] = null;
+    this[dartx.src] = null;
+    this[dartx.type] = null;
+    this[dartx.width] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('embed');
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [__setter__](...args) {
+    return this.__setter__.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.EmbedElement, 'created');
+dart.setSignature(html$.EmbedElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.EmbedElement, []),
+    new: dart.definiteFunctionType(html$.EmbedElement, []),
+    created: dart.definiteFunctionType(html$.EmbedElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: core.String,
+    [dartx.name]: core.String,
+    [dartx.src]: core.String,
+    [dartx.type]: core.String,
+    [dartx.width]: core.String
+  }),
+  methods: () => ({
+    [__getter__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLEmbedElement, html$.EmbedElement);
+html$._EntriesCallback = dart.typedef('_EntriesCallback', () => dart.functionType(dart.void, [ListOfEntry()]));
+html$._EntryCallback = dart.typedef('_EntryCallback', () => dart.functionType(dart.void, [html$.Entry]));
+html$._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [html$.FileError]));
+dart.defineExtensionNames([
+  'colno',
+  'error',
+  'filename',
+  'lineno',
+  'message'
+]);
+html$.ErrorEvent = class ErrorEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.ErrorEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.ErrorEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.ErrorEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.ErrorEvent(type);
+  }
+  get [dartx.colno]() {
+    return this.colno;
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.filename]() {
+    return this.filename;
+  }
+  get [dartx.lineno]() {
+    return this.lineno;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+};
+dart.setSignature(html$.ErrorEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ErrorEvent, []),
+    new: dart.definiteFunctionType(html$.ErrorEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.colno]: core.int,
+    [dartx.error]: core.Object,
+    [dartx.filename]: core.String,
+    [dartx.lineno]: core.int,
+    [dartx.message]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ErrorEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ErrorEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.ErrorEvent, html$.ErrorEvent);
+dart.defineExtensionNames([
+  'close',
+  'onError',
+  'onMessage',
+  'onOpen',
+  'readyState',
+  'url',
+  'withCredentials'
+]);
+html$.EventSource = class EventSource extends html$.EventTarget {
+  static new(url, opts) {
+    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : false;
+    let parsedOptions = dart.map({withCredentials: withCredentials}, core.String, dart.dynamic);
+    return html$.EventSource._factoryEventSource(url, parsedOptions);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static _factoryEventSource(url, eventSourceInitDict) {
+    if (eventSourceInitDict === void 0) eventSourceInitDict = null;
+    if (eventSourceInitDict != null) {
+      let eventSourceInitDict_1 = html_common.convertDartToNative_Dictionary(eventSourceInitDict);
+      return html$.EventSource._create_1(url, eventSourceInitDict_1);
+    }
+    return html$.EventSource._create_2(url);
+  }
+  static _create_1(url, eventSourceInitDict) {
+    return new self.EventSource(url, eventSourceInitDict);
+  }
+  static _create_2(url) {
+    return new self.EventSource(url);
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+  get [dartx.withCredentials]() {
+    return this.withCredentials;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  get [dartx.onError]() {
+    return html$.EventSource.errorEvent.forTarget(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.EventSource.messageEvent.forTarget(this);
+  }
+  get [dartx.onOpen]() {
+    return html$.EventSource.openEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.EventSource, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.EventSource, [core.String], {withCredentials: dart.dynamic}),
+    _: dart.definiteFunctionType(html$.EventSource, [])
+  }),
+  fields: () => ({
+    [dartx.readyState]: core.int,
+    [dartx.url]: core.String,
+    [dartx.withCredentials]: core.bool
+  }),
+  getters: () => ({
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({[dartx.close]: dart.definiteFunctionType(dart.void, [])}),
+  sfields: () => ({
+    errorEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent(),
+    openEvent: EventStreamProviderOfEvent(),
+    CLOSED: core.int,
+    CONNECTING: core.int,
+    OPEN: core.int
+  }),
+  statics: () => ({
+    _factoryEventSource: dart.definiteFunctionType(html$.EventSource, [core.String], [core.Map]),
+    _create_1: dart.definiteFunctionType(html$.EventSource, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.EventSource, [dart.dynamic])
+  }),
+  names: ['_factoryEventSource', '_create_1', '_create_2']
+});
+html$.EventSource.CLOSED = 2;
+html$.EventSource.CONNECTING = 0;
+html$.EventSource.OPEN = 1;
+dart.defineLazy(html$.EventSource, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  },
+  get openEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('open'));
+  }
+});
+dart.registerExtension(dart.global.EventSource, html$.EventSource);
+const _ptr = Symbol('_ptr');
+html$.Events = class Events extends core.Object {
+  new(ptr) {
+    this[_ptr] = ptr;
+  }
+  _get(type) {
+    return new (_EventStreamOfEvent())(this[_ptr], type, false);
+  }
+};
+dart.setSignature(html$.Events, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.Events, [html$.EventTarget])}),
+  fields: () => ({[_ptr]: html$.EventTarget}),
+  methods: () => ({_get: dart.definiteFunctionType(async.Stream, [core.String])})
+});
+html$.ElementEvents = class ElementEvents extends html$.Events {
+  new(ptr) {
+    super.new(ptr);
+  }
+  _get(type) {
+    if (dart.test(html$.ElementEvents.webkitEvents[dartx.keys][dartx.contains](type[dartx.toLowerCase]()))) {
+      if (dart.test(html_common.Device.isWebKit)) {
+        return new (_ElementEventStreamImplOfEvent())(this[_ptr], html$.ElementEvents.webkitEvents[dartx._get](type[dartx.toLowerCase]()), false);
+      }
+    }
+    return new (_ElementEventStreamImplOfEvent())(this[_ptr], type, false);
+  }
+};
+dart.setSignature(html$.ElementEvents, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ElementEvents, [html$.Element])}),
+  sfields: () => ({webkitEvents: MapOfString$String()})
+});
+dart.defineLazy(html$.ElementEvents, {
+  get webkitEvents() {
+    return dart.map({animationend: 'webkitAnimationEnd', animationiteration: 'webkitAnimationIteration', animationstart: 'webkitAnimationStart', fullscreenchange: 'webkitfullscreenchange', fullscreenerror: 'webkitfullscreenerror', keyadded: 'webkitkeyadded', keyerror: 'webkitkeyerror', keymessage: 'webkitkeymessage', needkey: 'webkitneedkey', pointerlockchange: 'webkitpointerlockchange', pointerlockerror: 'webkitpointerlockerror', resourcetimingbufferfull: 'webkitresourcetimingbufferfull', transitionend: 'webkitTransitionEnd', speechchange: 'webkitSpeechChange'}, core.String, core.String);
+  }
+});
+dart.defineExtensionNames([
+  'waitUntil'
+]);
+html$.ExtendableEvent = class ExtendableEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.ExtendableEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.ExtendableEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.ExtendableEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.ExtendableEvent(type);
+  }
+  [dartx.waitUntil](...args) {
+    return this.waitUntil.apply(this, args);
+  }
+};
+dart.setSignature(html$.ExtendableEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ExtendableEvent, []),
+    new: dart.definiteFunctionType(html$.ExtendableEvent, [core.String], [core.Map])
+  }),
+  methods: () => ({[dartx.waitUntil]: dart.definiteFunctionType(dart.void, [core.Object])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ExtendableEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ExtendableEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.ExtendableEvent, html$.ExtendableEvent);
+dart.defineExtensionNames([
+  'protocol',
+  'provider'
+]);
+html$.FederatedCredential = class FederatedCredential extends html$.Credential {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(data) {
+    let data_1 = html_common.convertDartToNative_Dictionary(data);
+    return html$.FederatedCredential._create_1(data_1);
+  }
+  static _create_1(data) {
+    return new self.FederatedCredential(data);
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  get [dartx.provider]() {
+    return this.provider;
+  }
+};
+dart.setSignature(html$.FederatedCredential, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FederatedCredential, []),
+    new: dart.definiteFunctionType(html$.FederatedCredential, [core.Map])
+  }),
+  fields: () => ({
+    [dartx.protocol]: core.String,
+    [dartx.provider]: core.String
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.FederatedCredential, [dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.FederatedCredential, html$.FederatedCredential);
+dart.defineExtensionNames([
+  'respondWith',
+  'isReload',
+  'request'
+]);
+html$.FetchEvent = class FetchEvent extends html$.ExtendableEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.FetchEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.FetchEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.FetchEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.FetchEvent(type);
+  }
+  get [dartx.isReload]() {
+    return this.isReload;
+  }
+  get [dartx.request]() {
+    return this.request;
+  }
+  [dartx.respondWith](...args) {
+    return this.respondWith.apply(this, args);
+  }
+};
+dart.setSignature(html$.FetchEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FetchEvent, []),
+    new: dart.definiteFunctionType(html$.FetchEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.isReload]: core.bool,
+    [dartx.request]: html$._Request
+  }),
+  methods: () => ({[dartx.respondWith]: dart.definiteFunctionType(dart.void, [core.Object])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.FetchEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FetchEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.FetchEvent, html$.FetchEvent);
+dart.defineExtensionNames([
+  'checkValidity',
+  'reportValidity',
+  'setCustomValidity',
+  'disabled',
+  'elements',
+  'form',
+  'name',
+  'type',
+  'validationMessage',
+  'validity',
+  'willValidate'
+]);
+html$.FieldSetElement = class FieldSetElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.FieldSetElement._check(html$.document[dartx.createElement]("fieldset"));
+  }
+  created() {
+    this[dartx.disabled] = null;
+    this[dartx.elements] = null;
+    this[dartx.form] = null;
+    this[dartx.name] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.elements]() {
+    return this.elements;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.FieldSetElement, 'created');
+dart.setSignature(html$.FieldSetElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FieldSetElement, []),
+    new: dart.definiteFunctionType(html$.FieldSetElement, []),
+    created: dart.definiteFunctionType(html$.FieldSetElement, [])
+  }),
+  fields: () => ({
+    [dartx.disabled]: core.bool,
+    [dartx.elements]: html$.HtmlFormControlsCollection,
+    [dartx.form]: html$.FormElement,
+    [dartx.name]: core.String,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.willValidate]: core.bool
+  }),
+  methods: () => ({
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+dart.registerExtension(dart.global.HTMLFieldSetElement, html$.FieldSetElement);
+const _get_lastModifiedDate = Symbol('_get_lastModifiedDate');
+dart.defineExtensionNames([
+  'lastModifiedDate',
+  'lastModified',
+  'name',
+  'relativePath'
+]);
+html$.File = class File extends html$.Blob {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(fileBits, fileName, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return html$.File._create_1(fileBits, fileName, options_1);
+    }
+    return html$.File._create_2(fileBits, fileName);
+  }
+  static _create_1(fileBits, fileName, options) {
+    return new self.File(fileBits, fileName, options);
+  }
+  static _create_2(fileBits, fileName) {
+    return new self.File(fileBits, fileName);
+  }
+  get [dartx.lastModified]() {
+    return this.lastModified;
+  }
+  get [dartx.lastModifiedDate]() {
+    return html_common.convertNativeToDart_DateTime(this[_get_lastModifiedDate]);
+  }
+  get [_get_lastModifiedDate]() {
+    return this.lastModifiedDate;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.relativePath]() {
+    return this.webkitRelativePath;
+  }
+};
+dart.setSignature(html$.File, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.File, []),
+    new: dart.definiteFunctionType(html$.File, [ListOfObject(), core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.lastModified]: core.int,
+    [_get_lastModifiedDate]: dart.dynamic,
+    [dartx.name]: core.String,
+    [dartx.relativePath]: core.String
+  }),
+  getters: () => ({[dartx.lastModifiedDate]: dart.definiteFunctionType(core.DateTime, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.File, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.File, [dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.File, html$.File);
+html$._FileCallback = dart.typedef('_FileCallback', () => dart.functionType(dart.void, [html$.File]));
+const _createWriter = Symbol('_createWriter');
+const _file$ = Symbol('_file');
+dart.defineExtensionNames([
+  'createWriter',
+  'file'
+]);
+html$.FileEntry = class FileEntry extends html$.Entry {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_createWriter](...args) {
+    return this.createWriter.apply(this, args);
+  }
+  [dartx.createWriter]() {
+    let completer = CompleterOfFileWriter().new();
+    this[_createWriter](dart.fn(value => {
+      completer.complete(value);
+    }, FileWriterToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [_file$](...args) {
+    return this.file.apply(this, args);
+  }
+  [dartx.file]() {
+    let completer = CompleterOfFile$().new();
+    this[_file$](dart.fn(value => {
+      completer.complete(value);
+    }, FileToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+};
+dart.setSignature(html$.FileEntry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileEntry, [])}),
+  methods: () => ({
+    [_createWriter]: dart.definiteFunctionType(dart.void, [html$._FileWriterCallback], [html$._ErrorCallback]),
+    [dartx.createWriter]: dart.definiteFunctionType(async.Future$(html$.FileWriter), []),
+    [_file$]: dart.definiteFunctionType(dart.void, [html$._FileCallback], [html$._ErrorCallback]),
+    [dartx.file]: dart.definiteFunctionType(async.Future$(html$.File), [])
+  })
+});
+dart.registerExtension(dart.global.FileEntry, html$.FileEntry);
+dart.defineExtensionNames([
+  'code'
+]);
+html$.FileError = class FileError extends html$.DomError {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+};
+dart.setSignature(html$.FileError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileError, [])}),
+  fields: () => ({[dartx.code]: core.int}),
+  sfields: () => ({
+    ABORT_ERR: core.int,
+    ENCODING_ERR: core.int,
+    INVALID_MODIFICATION_ERR: core.int,
+    INVALID_STATE_ERR: core.int,
+    NOT_FOUND_ERR: core.int,
+    NOT_READABLE_ERR: core.int,
+    NO_MODIFICATION_ALLOWED_ERR: core.int,
+    PATH_EXISTS_ERR: core.int,
+    QUOTA_EXCEEDED_ERR: core.int,
+    SECURITY_ERR: core.int,
+    SYNTAX_ERR: core.int,
+    TYPE_MISMATCH_ERR: core.int
+  })
+});
+html$.FileError.ABORT_ERR = 3;
+html$.FileError.ENCODING_ERR = 5;
+html$.FileError.INVALID_MODIFICATION_ERR = 9;
+html$.FileError.INVALID_STATE_ERR = 7;
+html$.FileError.NOT_FOUND_ERR = 1;
+html$.FileError.NOT_READABLE_ERR = 4;
+html$.FileError.NO_MODIFICATION_ALLOWED_ERR = 6;
+html$.FileError.PATH_EXISTS_ERR = 12;
+html$.FileError.QUOTA_EXCEEDED_ERR = 10;
+html$.FileError.SECURITY_ERR = 2;
+html$.FileError.SYNTAX_ERR = 8;
+html$.FileError.TYPE_MISMATCH_ERR = 11;
+dart.registerExtension(dart.global.FileError, html$.FileError);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$.FileList = class FileList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.File), html$.ImmutableListMixin$(html$.File)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.FileList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfFile()];
+dart.setSignature(html$.FileList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.File, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.File]),
+    [dartx.item]: dart.definiteFunctionType(html$.File, [core.int])
+  })
+});
+dart.registerExtension(dart.global.FileList, html$.FileList);
+dart.defineExtensionNames([
+  'result',
+  'abort',
+  'readAsArrayBuffer',
+  'readAsDataUrl',
+  'readAsText',
+  'onAbort',
+  'onError',
+  'onLoad',
+  'onLoadEnd',
+  'onLoadStart',
+  'onProgress',
+  'error',
+  'readyState'
+]);
+html$.FileReader = class FileReader extends html$.EventTarget {
+  get [dartx.result]() {
+    let res = this.result;
+    if (typed_data.ByteBuffer.is(res)) {
+      return typed_data.Uint8List.view(res);
+    }
+    return res;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.FileReader._create_1();
+  }
+  static _create_1() {
+    return new self.FileReader();
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.readAsArrayBuffer](...args) {
+    return this.readAsArrayBuffer.apply(this, args);
+  }
+  [dartx.readAsDataUrl](...args) {
+    return this.readAsDataURL.apply(this, args);
+  }
+  [dartx.readAsText](...args) {
+    return this.readAsText.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return html$.FileReader.abortEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.FileReader.errorEvent.forTarget(this);
+  }
+  get [dartx.onLoad]() {
+    return html$.FileReader.loadEvent.forTarget(this);
+  }
+  get [dartx.onLoadEnd]() {
+    return html$.FileReader.loadEndEvent.forTarget(this);
+  }
+  get [dartx.onLoadStart]() {
+    return html$.FileReader.loadStartEvent.forTarget(this);
+  }
+  get [dartx.onProgress]() {
+    return html$.FileReader.progressEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.FileReader, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FileReader, []),
+    new: dart.definiteFunctionType(html$.FileReader, [])
+  }),
+  fields: () => ({
+    [dartx.error]: html$.FileError,
+    [dartx.readyState]: core.int
+  }),
+  getters: () => ({
+    [dartx.result]: dart.definiteFunctionType(core.Object, []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
+  }),
+  methods: () => ({
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.readAsArrayBuffer]: dart.definiteFunctionType(dart.void, [html$.Blob]),
+    [dartx.readAsDataUrl]: dart.definiteFunctionType(dart.void, [html$.Blob]),
+    [dartx.readAsText]: dart.definiteFunctionType(dart.void, [html$.Blob], [core.String])
+  }),
+  sfields: () => ({
+    abortEvent: EventStreamProviderOfProgressEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    loadEvent: EventStreamProviderOfProgressEvent(),
+    loadEndEvent: EventStreamProviderOfProgressEvent(),
+    loadStartEvent: EventStreamProviderOfProgressEvent(),
+    progressEvent: EventStreamProviderOfProgressEvent(),
+    DONE: core.int,
+    EMPTY: core.int,
+    LOADING: core.int
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.FileReader, [])}),
+  names: ['_create_1']
+});
+html$.FileReader.DONE = 2;
+html$.FileReader.EMPTY = 0;
+html$.FileReader.LOADING = 1;
+dart.defineLazy(html$.FileReader, {
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get loadEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('load'));
+  },
+  get loadEndEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('loadend'));
+  },
+  get loadStartEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('loadstart'));
+  },
+  get progressEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
+  }
+});
+dart.registerExtension(dart.global.FileReader, html$.FileReader);
+dart.defineExtensionNames([
+  'type'
+]);
+html$.FileStream = class FileStream extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.FileStream, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileStream, [])}),
+  fields: () => ({[dartx.type]: core.String})
+});
+dart.registerExtension(dart.global.Stream, html$.FileStream);
+dart.defineExtensionNames([
+  'name',
+  'root'
+]);
+html$.FileSystem = class FileSystem extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!window.webkitRequestFileSystem;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.root]() {
+    return this.root;
+  }
+};
+dart.setSignature(html$.FileSystem, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileSystem, [])}),
+  fields: () => ({
+    [dartx.name]: core.String,
+    [dartx.root]: html$.DirectoryEntry
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.DOMFileSystem, html$.FileSystem);
+html$._FileSystemCallback = dart.typedef('_FileSystemCallback', () => dart.functionType(dart.void, [html$.FileSystem]));
+dart.defineExtensionNames([
+  'abort',
+  'seek',
+  'truncate',
+  'write',
+  'onAbort',
+  'onError',
+  'onProgress',
+  'onWrite',
+  'onWriteEnd',
+  'onWriteStart',
+  'error',
+  'length',
+  'position',
+  'readyState'
+]);
+html$.FileWriter = class FileWriter extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.position]() {
+    return this.position;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.seek](...args) {
+    return this.seek.apply(this, args);
+  }
+  [dartx.truncate](...args) {
+    return this.truncate.apply(this, args);
+  }
+  [dartx.write](...args) {
+    return this.write.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return html$.FileWriter.abortEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.FileWriter.errorEvent.forTarget(this);
+  }
+  get [dartx.onProgress]() {
+    return html$.FileWriter.progressEvent.forTarget(this);
+  }
+  get [dartx.onWrite]() {
+    return html$.FileWriter.writeEvent.forTarget(this);
+  }
+  get [dartx.onWriteEnd]() {
+    return html$.FileWriter.writeEndEvent.forTarget(this);
+  }
+  get [dartx.onWriteStart]() {
+    return html$.FileWriter.writeStartEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.FileWriter, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileWriter, [])}),
+  fields: () => ({
+    [dartx.error]: html$.FileError,
+    [dartx.length]: core.int,
+    [dartx.position]: core.int,
+    [dartx.readyState]: core.int
+  }),
+  getters: () => ({
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onWrite]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onWriteEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onWriteStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
+  }),
+  methods: () => ({
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.seek]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.truncate]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.write]: dart.definiteFunctionType(dart.void, [html$.Blob])
+  }),
+  sfields: () => ({
+    abortEvent: EventStreamProviderOfProgressEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    progressEvent: EventStreamProviderOfProgressEvent(),
+    writeEvent: EventStreamProviderOfProgressEvent(),
+    writeEndEvent: EventStreamProviderOfProgressEvent(),
+    writeStartEvent: EventStreamProviderOfProgressEvent(),
+    DONE: core.int,
+    INIT: core.int,
+    WRITING: core.int
+  })
+});
+html$.FileWriter.DONE = 2;
+html$.FileWriter.INIT = 0;
+html$.FileWriter.WRITING = 1;
+dart.defineLazy(html$.FileWriter, {
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get progressEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
+  },
+  get writeEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('write'));
+  },
+  get writeEndEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('writeend'));
+  },
+  get writeStartEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('writestart'));
+  }
+});
+dart.registerExtension(dart.global.FileWriter, html$.FileWriter);
+html$._FileWriterCallback = dart.typedef('_FileWriterCallback', () => dart.functionType(dart.void, [html$.FileWriter]));
+const _get_relatedTarget = Symbol('_get_relatedTarget');
+dart.defineExtensionNames([
+  'relatedTarget'
+]);
+html$.FocusEvent = class FocusEvent extends html$.UIEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.FocusEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.FocusEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.FocusEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.FocusEvent(type);
+  }
+  get [dartx.relatedTarget]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
+  }
+  get [_get_relatedTarget]() {
+    return this.relatedTarget;
+  }
+};
+dart.setSignature(html$.FocusEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FocusEvent, []),
+    new: dart.definiteFunctionType(html$.FocusEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[_get_relatedTarget]: dart.dynamic}),
+  getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.FocusEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FocusEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.FocusEvent, html$.FocusEvent);
+dart.defineExtensionNames([
+  'load',
+  'family',
+  'featureSettings',
+  'loaded',
+  'status',
+  'stretch',
+  'style',
+  'unicodeRange',
+  'variant',
+  'weight'
+]);
+html$.FontFace = class FontFace extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(family, source, descriptors) {
+    if (descriptors === void 0) descriptors = null;
+    if (descriptors != null) {
+      let descriptors_1 = html_common.convertDartToNative_Dictionary(descriptors);
+      return html$.FontFace._create_1(family, source, descriptors_1);
+    }
+    return html$.FontFace._create_2(family, source);
+  }
+  static _create_1(family, source, descriptors) {
+    return new self.FontFace(family, source, descriptors);
+  }
+  static _create_2(family, source) {
+    return new self.FontFace(family, source);
+  }
+  get [dartx.family]() {
+    return this.family;
+  }
+  set [dartx.family](value) {
+    this.family = value;
+  }
+  get [dartx.featureSettings]() {
+    return this.featureSettings;
+  }
+  set [dartx.featureSettings](value) {
+    this.featureSettings = value;
+  }
+  get [dartx.loaded]() {
+    return this.loaded;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  get [dartx.stretch]() {
+    return this.stretch;
+  }
+  set [dartx.stretch](value) {
+    this.stretch = value;
+  }
+  get [dartx.style]() {
+    return this.style;
+  }
+  set [dartx.style](value) {
+    this.style = value;
+  }
+  get [dartx.unicodeRange]() {
+    return this.unicodeRange;
+  }
+  set [dartx.unicodeRange](value) {
+    this.unicodeRange = value;
+  }
+  get [dartx.variant]() {
+    return this.variant;
+  }
+  set [dartx.variant](value) {
+    this.variant = value;
+  }
+  get [dartx.weight]() {
+    return this.weight;
+  }
+  set [dartx.weight](value) {
+    this.weight = value;
+  }
+  [dartx.load](...args) {
+    return this.load.apply(this, args);
+  }
+};
+dart.setSignature(html$.FontFace, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FontFace, []),
+    new: dart.definiteFunctionType(html$.FontFace, [core.String, core.Object], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.family]: core.String,
+    [dartx.featureSettings]: core.String,
+    [dartx.loaded]: async.Future,
+    [dartx.status]: core.String,
+    [dartx.stretch]: core.String,
+    [dartx.style]: core.String,
+    [dartx.unicodeRange]: core.String,
+    [dartx.variant]: core.String,
+    [dartx.weight]: core.String
+  }),
+  methods: () => ({[dartx.load]: dart.definiteFunctionType(async.Future, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.FontFace, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FontFace, [dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.FontFace, html$.FontFace);
+dart.defineExtensionNames([
+  'add',
+  'check',
+  'clear',
+  'delete',
+  'forEach',
+  'has',
+  'size',
+  'status'
+]);
+html$.FontFaceSet = class FontFaceSet extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  [dartx.add](...args) {
+    return this.add.apply(this, args);
+  }
+  [dartx.check](...args) {
+    return this.check.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.delete](...args) {
+    return this.delete.apply(this, args);
+  }
+  [dartx.forEach](...args) {
+    return this.forEach.apply(this, args);
+  }
+  [dartx.has](...args) {
+    return this.has.apply(this, args);
+  }
+};
+dart.setSignature(html$.FontFaceSet, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FontFaceSet, [])}),
+  fields: () => ({
+    [dartx.size]: core.int,
+    [dartx.status]: core.String
+  }),
+  methods: () => ({
+    [dartx.add]: dart.definiteFunctionType(dart.void, [html$.FontFace]),
+    [dartx.check]: dart.definiteFunctionType(core.bool, [core.String], [core.String]),
+    [dartx.clear]: dart.definiteFunctionType(dart.void, []),
+    [dartx.delete]: dart.definiteFunctionType(core.bool, [html$.FontFace]),
+    [dartx.forEach]: dart.definiteFunctionType(dart.void, [html$.FontFaceSetForEachCallback], [core.Object]),
+    [dartx.has]: dart.definiteFunctionType(core.bool, [html$.FontFace])
+  })
+});
+dart.registerExtension(dart.global.FontFaceSet, html$.FontFaceSet);
+html$.FontFaceSetForEachCallback = dart.typedef('FontFaceSetForEachCallback', () => dart.functionType(dart.void, [html$.FontFace, html$.FontFace, html$.FontFaceSet]));
+dart.defineExtensionNames([
+  'fontfaces'
+]);
+html$.FontFaceSetLoadEvent = class FontFaceSetLoadEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.fontfaces]() {
+    return this.fontfaces;
+  }
+};
+dart.setSignature(html$.FontFaceSetLoadEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FontFaceSetLoadEvent, [])}),
+  fields: () => ({[dartx.fontfaces]: ListOfFontFace()})
+});
+dart.registerExtension(dart.global.FontFaceSetLoadEvent, html$.FontFaceSetLoadEvent);
+dart.defineExtensionNames([
+  'append',
+  'appendBlob',
+  'delete',
+  'get',
+  'getAll',
+  'has',
+  'set'
+]);
+html$.FormData = class FormData extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(form) {
+    if (form === void 0) form = null;
+    if (form != null) {
+      return html$.FormData._create_1(form);
+    }
+    return html$.FormData._create_2();
+  }
+  static _create_1(form) {
+    return new self.FormData(form);
+  }
+  static _create_2() {
+    return new self.FormData();
+  }
+  static get supported() {
+    return !!window.FormData;
+  }
+  [dartx.append](...args) {
+    return this.append.apply(this, args);
+  }
+  [dartx.appendBlob](...args) {
+    return this.append.apply(this, args);
+  }
+  [dartx.delete](...args) {
+    return this.delete.apply(this, args);
+  }
+  [dartx.get](...args) {
+    return this.get.apply(this, args);
+  }
+  [dartx.getAll](...args) {
+    return this.getAll.apply(this, args);
+  }
+  [dartx.has](...args) {
+    return this.has.apply(this, args);
+  }
+  [dartx.set](...args) {
+    return this.set.apply(this, args);
+  }
+};
+dart.setSignature(html$.FormData, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FormData, []),
+    new: dart.definiteFunctionType(html$.FormData, [], [html$.FormElement])
+  }),
+  methods: () => ({
+    [dartx.append]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.appendBlob]: dart.definiteFunctionType(dart.void, [core.String, html$.Blob], [core.String]),
+    [dartx.delete]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.get]: dart.definiteFunctionType(core.Object, [core.String]),
+    [dartx.getAll]: dart.definiteFunctionType(core.List$(core.Object), [core.String]),
+    [dartx.has]: dart.definiteFunctionType(core.bool, [core.String]),
+    [dartx.set]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic], [core.String])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.FormData, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FormData, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.FormData, html$.FormData);
+const _requestAutocomplete_1 = Symbol('_requestAutocomplete_1');
+dart.defineExtensionNames([
+  'checkValidity',
+  'item',
+  'reportValidity',
+  'requestAutocomplete',
+  'reset',
+  'submit',
+  'acceptCharset',
+  'action',
+  'autocomplete',
+  'encoding',
+  'enctype',
+  'length',
+  'method',
+  'name',
+  'noValidate',
+  'target'
+]);
+html$.FormElement = class FormElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.FormElement._check(html$.document[dartx.createElement]("form"));
+  }
+  created() {
+    this[dartx.acceptCharset] = null;
+    this[dartx.action] = null;
+    this[dartx.autocomplete] = null;
+    this[dartx.encoding] = null;
+    this[dartx.enctype] = null;
+    this[dartx.length] = null;
+    this[dartx.method] = null;
+    this[dartx.name] = null;
+    this[dartx.noValidate] = null;
+    this[dartx.target] = null;
+    super.created();
+  }
+  get [dartx.acceptCharset]() {
+    return this.acceptCharset;
+  }
+  set [dartx.acceptCharset](value) {
+    this.acceptCharset = value;
+  }
+  get [dartx.action]() {
+    return this.action;
+  }
+  set [dartx.action](value) {
+    this.action = value;
+  }
+  get [dartx.autocomplete]() {
+    return this.autocomplete;
+  }
+  set [dartx.autocomplete](value) {
+    this.autocomplete = value;
+  }
+  get [dartx.encoding]() {
+    return this.encoding;
+  }
+  set [dartx.encoding](value) {
+    this.encoding = value;
+  }
+  get [dartx.enctype]() {
+    return this.enctype;
+  }
+  set [dartx.enctype](value) {
+    this.enctype = value;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.method]() {
+    return this.method;
+  }
+  set [dartx.method](value) {
+    this.method = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.noValidate]() {
+    return this.noValidate;
+  }
+  set [dartx.noValidate](value) {
+    this.noValidate = value;
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+  set [dartx.target](value) {
+    this.target = value;
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.requestAutocomplete](details) {
+    let details_1 = html_common.convertDartToNative_Dictionary(details);
+    this[_requestAutocomplete_1](details_1);
+    return;
+  }
+  [_requestAutocomplete_1](...args) {
+    return this.requestAutocomplete.apply(this, args);
+  }
+  [dartx.reset](...args) {
+    return this.reset.apply(this, args);
+  }
+  [dartx.submit](...args) {
+    return this.submit.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.FormElement, 'created');
+dart.setSignature(html$.FormElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.FormElement, []),
+    new: dart.definiteFunctionType(html$.FormElement, []),
+    created: dart.definiteFunctionType(html$.FormElement, [])
+  }),
+  fields: () => ({
+    [dartx.acceptCharset]: core.String,
+    [dartx.action]: core.String,
+    [dartx.autocomplete]: core.String,
+    [dartx.encoding]: core.String,
+    [dartx.enctype]: core.String,
+    [dartx.length]: core.int,
+    [dartx.method]: core.String,
+    [dartx.name]: core.String,
+    [dartx.noValidate]: core.bool,
+    [dartx.target]: core.String
+  }),
+  methods: () => ({
+    [__getter__]: dart.definiteFunctionType(core.Object, [core.String]),
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.item]: dart.definiteFunctionType(html$.Element, [core.int]),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.requestAutocomplete]: dart.definiteFunctionType(dart.void, [core.Map]),
+    [_requestAutocomplete_1]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.reset]: dart.definiteFunctionType(dart.void, []),
+    [dartx.submit]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLFormElement, html$.FormElement);
+html$.FrameRequestCallback = dart.typedef('FrameRequestCallback', () => dart.functionType(dart.void, [core.num]));
+dart.defineExtensionNames([
+  'axes',
+  'buttons',
+  'connected',
+  'id',
+  'index',
+  'mapping',
+  'timestamp'
+]);
+html$.Gamepad = class Gamepad extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.axes]() {
+    return this.axes;
+  }
+  get [dartx.buttons]() {
+    return this.buttons;
+  }
+  get [dartx.connected]() {
+    return this.connected;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.index]() {
+    return this.index;
+  }
+  get [dartx.mapping]() {
+    return this.mapping;
+  }
+  get [dartx.timestamp]() {
+    return this.timestamp;
+  }
+};
+dart.setSignature(html$.Gamepad, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Gamepad, [])}),
+  fields: () => ({
+    [dartx.axes]: ListOfnum(),
+    [dartx.buttons]: ListOfGamepadButton(),
+    [dartx.connected]: core.bool,
+    [dartx.id]: core.String,
+    [dartx.index]: core.int,
+    [dartx.mapping]: core.String,
+    [dartx.timestamp]: core.int
+  })
+});
+dart.registerExtension(dart.global.Gamepad, html$.Gamepad);
+dart.defineExtensionNames([
+  'pressed',
+  'value'
+]);
+html$.GamepadButton = class GamepadButton extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.pressed]() {
+    return this.pressed;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+};
+dart.setSignature(html$.GamepadButton, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GamepadButton, [])}),
+  fields: () => ({
+    [dartx.pressed]: core.bool,
+    [dartx.value]: core.double
+  })
+});
+dart.registerExtension(dart.global.GamepadButton, html$.GamepadButton);
+dart.defineExtensionNames([
+  'gamepad'
+]);
+html$.GamepadEvent = class GamepadEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.GamepadEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.GamepadEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.GamepadEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.GamepadEvent(type);
+  }
+  get [dartx.gamepad]() {
+    return this.gamepad;
+  }
+};
+dart.setSignature(html$.GamepadEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.GamepadEvent, []),
+    new: dart.definiteFunctionType(html$.GamepadEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.gamepad]: html$.Gamepad}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.GamepadEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.GamepadEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.GamepadEvent, html$.GamepadEvent);
+dart.defineExtensionNames([
+  'getRegisteredRegions',
+  'registerRegion',
+  'unregisterRegion'
+]);
+html$.Geofencing = class Geofencing extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getRegisteredRegions](...args) {
+    return this.getRegisteredRegions.apply(this, args);
+  }
+  [dartx.registerRegion](...args) {
+    return this.registerRegion.apply(this, args);
+  }
+  [dartx.unregisterRegion](...args) {
+    return this.unregisterRegion.apply(this, args);
+  }
+};
+dart.setSignature(html$.Geofencing, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Geofencing, [])}),
+  methods: () => ({
+    [dartx.getRegisteredRegions]: dart.definiteFunctionType(async.Future, []),
+    [dartx.registerRegion]: dart.definiteFunctionType(async.Future, [html$.GeofencingRegion]),
+    [dartx.unregisterRegion]: dart.definiteFunctionType(async.Future, [core.String])
+  })
+});
+dart.registerExtension(dart.global.Geofencing, html$.Geofencing);
+dart.defineExtensionNames([
+  'id',
+  'region'
+]);
+html$.GeofencingEvent = class GeofencingEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.region]() {
+    return this.region;
+  }
+};
+dart.setSignature(html$.GeofencingEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GeofencingEvent, [])}),
+  fields: () => ({
+    [dartx.id]: core.String,
+    [dartx.region]: html$.GeofencingRegion
+  })
+});
+dart.registerExtension(dart.global.GeofencingEvent, html$.GeofencingEvent);
+const _getCurrentPosition = Symbol('_getCurrentPosition');
+const _ensurePosition = Symbol('_ensurePosition');
+const _watchPosition = Symbol('_watchPosition');
+const _clearWatch = Symbol('_clearWatch');
+const _getCurrentPosition_1 = Symbol('_getCurrentPosition_1');
+const _getCurrentPosition_2 = Symbol('_getCurrentPosition_2');
+const _getCurrentPosition_3 = Symbol('_getCurrentPosition_3');
+const _watchPosition_1 = Symbol('_watchPosition_1');
+const _watchPosition_2 = Symbol('_watchPosition_2');
+const _watchPosition_3 = Symbol('_watchPosition_3');
+dart.defineExtensionNames([
+  'getCurrentPosition',
+  'watchPosition'
+]);
+html$.Geolocation = class Geolocation extends _interceptors.Interceptor {
+  [dartx.getCurrentPosition](opts) {
+    let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
+    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
+    let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
+    let options = dart.map();
+    if (enableHighAccuracy != null) {
+      options[dartx._set]('enableHighAccuracy', enableHighAccuracy);
+    }
+    if (timeout != null) {
+      options[dartx._set]('timeout', timeout.inMilliseconds);
+    }
+    if (maximumAge != null) {
+      options[dartx._set]('maximumAge', maximumAge.inMilliseconds);
+    }
+    let completer = CompleterOfGeoposition().new();
+    try {
+      this[_getCurrentPosition](dart.fn(position => {
+        completer.complete(this[_ensurePosition](position));
+      }, GeopositionToNull()), dart.fn(error => {
+        completer.completeError(error);
+      }, PositionErrorToNull()), options);
+    } catch (e) {
+      let stacktrace = dart.stackTrace(e);
+      completer.completeError(e, stacktrace);
+    }
+
+    return completer.future;
+  }
+  [dartx.watchPosition](opts) {
+    let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
+    let timeout = opts && 'timeout' in opts ? opts.timeout : null;
+    let maximumAge = opts && 'maximumAge' in opts ? opts.maximumAge : null;
+    let options = dart.map();
+    if (enableHighAccuracy != null) {
+      options[dartx._set]('enableHighAccuracy', enableHighAccuracy);
+    }
+    if (timeout != null) {
+      options[dartx._set]('timeout', timeout.inMilliseconds);
+    }
+    if (maximumAge != null) {
+      options[dartx._set]('maximumAge', maximumAge.inMilliseconds);
+    }
+    let watchId = null;
+    let controller = null;
+    controller = StreamControllerOfGeoposition().new({sync: true, onListen: dart.fn(() => {
+        dart.assert(watchId == null);
+        watchId = this[_watchPosition](dart.fn(position => {
+          controller.add(this[_ensurePosition](position));
+        }, GeopositionToNull()), dart.fn(error => {
+          controller.addError(error);
+        }, PositionErrorToNull()), options);
+      }, VoidToNull()), onCancel: dart.fn(() => {
+        dart.assert(watchId != null);
+        this[_clearWatch](watchId);
+      }, VoidToNull())});
+    return controller.stream;
+  }
+  [_ensurePosition](domPosition) {
+    try {
+      if (html$.Geoposition.is(domPosition)) {
+        return domPosition;
+      }
+    } catch (e) {
+    }
+
+    return new html$._GeopositionWrapper(domPosition);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_clearWatch](...args) {
+    return this.clearWatch.apply(this, args);
+  }
+  [_getCurrentPosition](successCallback, errorCallback, options) {
+    if (errorCallback === void 0) errorCallback = null;
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      this[_getCurrentPosition_1](successCallback, errorCallback, options_1);
+      return;
+    }
+    if (errorCallback != null) {
+      this[_getCurrentPosition_2](successCallback, errorCallback);
+      return;
+    }
+    this[_getCurrentPosition_3](successCallback);
+    return;
+  }
+  [_getCurrentPosition_1](...args) {
+    return this.getCurrentPosition.apply(this, args);
+  }
+  [_getCurrentPosition_2](...args) {
+    return this.getCurrentPosition.apply(this, args);
+  }
+  [_getCurrentPosition_3](...args) {
+    return this.getCurrentPosition.apply(this, args);
+  }
+  [_watchPosition](successCallback, errorCallback, options) {
+    if (errorCallback === void 0) errorCallback = null;
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_watchPosition_1](successCallback, errorCallback, options_1);
+    }
+    if (errorCallback != null) {
+      return this[_watchPosition_2](successCallback, errorCallback);
+    }
+    return this[_watchPosition_3](successCallback);
+  }
+  [_watchPosition_1](...args) {
+    return this.watchPosition.apply(this, args);
+  }
+  [_watchPosition_2](...args) {
+    return this.watchPosition.apply(this, args);
+  }
+  [_watchPosition_3](...args) {
+    return this.watchPosition.apply(this, args);
+  }
+};
+dart.setSignature(html$.Geolocation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Geolocation, [])}),
+  methods: () => ({
+    [dartx.getCurrentPosition]: dart.definiteFunctionType(async.Future$(html$.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
+    [dartx.watchPosition]: dart.definiteFunctionType(async.Stream$(html$.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
+    [_ensurePosition]: dart.definiteFunctionType(html$.Geoposition, [dart.dynamic]),
+    [_clearWatch]: dart.definiteFunctionType(dart.void, [core.int]),
+    [_getCurrentPosition]: dart.definiteFunctionType(dart.void, [html$._PositionCallback], [html$._PositionErrorCallback, core.Map]),
+    [_getCurrentPosition_1]: dart.definiteFunctionType(dart.void, [html$._PositionCallback, html$._PositionErrorCallback, dart.dynamic]),
+    [_getCurrentPosition_2]: dart.definiteFunctionType(dart.void, [html$._PositionCallback, html$._PositionErrorCallback]),
+    [_getCurrentPosition_3]: dart.definiteFunctionType(dart.void, [html$._PositionCallback]),
+    [_watchPosition]: dart.definiteFunctionType(core.int, [html$._PositionCallback], [html$._PositionErrorCallback, core.Map]),
+    [_watchPosition_1]: dart.definiteFunctionType(core.int, [html$._PositionCallback, html$._PositionErrorCallback, dart.dynamic]),
+    [_watchPosition_2]: dart.definiteFunctionType(core.int, [html$._PositionCallback, html$._PositionErrorCallback]),
+    [_watchPosition_3]: dart.definiteFunctionType(core.int, [html$._PositionCallback])
+  })
+});
+dart.registerExtension(dart.global.Geolocation, html$.Geolocation);
+html$._GeopositionWrapper = class _GeopositionWrapper extends core.Object {
+  new(ptr) {
+    this[_ptr] = ptr;
+  }
+  get coords() {
+    return this[_ptr].coords;
+  }
+  get timestamp() {
+    return this[_ptr].timestamp;
+  }
+};
+html$._GeopositionWrapper[dart.implements] = () => [html$.Geoposition];
+dart.setSignature(html$._GeopositionWrapper, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._GeopositionWrapper, [dart.dynamic])}),
+  fields: () => ({[_ptr]: dart.dynamic}),
+  getters: () => ({
+    coords: dart.definiteFunctionType(html$.Coordinates, []),
+    timestamp: dart.definiteFunctionType(core.int, [])
+  })
+});
+dart.defineExtensionNames([
+  'coords',
+  'timestamp'
+]);
+html$.Geoposition = class Geoposition extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.coords]() {
+    return this.coords;
+  }
+  get [dartx.timestamp]() {
+    return this.timestamp;
+  }
+};
+dart.setSignature(html$.Geoposition, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Geoposition, [])}),
+  fields: () => ({
+    [dartx.coords]: html$.Coordinates,
+    [dartx.timestamp]: core.int
+  })
+});
+dart.registerExtension(dart.global.Geoposition, html$.Geoposition);
+dart.defineExtensionNames([
+  'onAbort',
+  'onBlur',
+  'onCanPlay',
+  'onCanPlayThrough',
+  'onChange',
+  'onClick',
+  'onContextMenu',
+  'onDoubleClick',
+  'onDrag',
+  'onDragEnd',
+  'onDragEnter',
+  'onDragLeave',
+  'onDragOver',
+  'onDragStart',
+  'onDrop',
+  'onDurationChange',
+  'onEmptied',
+  'onEnded',
+  'onError',
+  'onFocus',
+  'onInput',
+  'onInvalid',
+  'onKeyDown',
+  'onKeyPress',
+  'onKeyUp',
+  'onLoad',
+  'onLoadedData',
+  'onLoadedMetadata',
+  'onMouseDown',
+  'onMouseEnter',
+  'onMouseLeave',
+  'onMouseMove',
+  'onMouseOut',
+  'onMouseOver',
+  'onMouseUp',
+  'onMouseWheel',
+  'onPause',
+  'onPlay',
+  'onPlaying',
+  'onRateChange',
+  'onReset',
+  'onResize',
+  'onScroll',
+  'onSeeked',
+  'onSeeking',
+  'onSelect',
+  'onStalled',
+  'onSubmit',
+  'onSuspend',
+  'onTimeUpdate',
+  'onVolumeChange',
+  'onWaiting'
+]);
+html$.GlobalEventHandlers = class GlobalEventHandlers extends core.Object {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get onAbort() {
+    return html$.GlobalEventHandlers.abortEvent.forTarget(this);
+  }
+  get onBlur() {
+    return html$.GlobalEventHandlers.blurEvent.forTarget(this);
+  }
+  get onCanPlay() {
+    return html$.GlobalEventHandlers.canPlayEvent.forTarget(this);
+  }
+  get onCanPlayThrough() {
+    return html$.GlobalEventHandlers.canPlayThroughEvent.forTarget(this);
+  }
+  get onChange() {
+    return html$.GlobalEventHandlers.changeEvent.forTarget(this);
+  }
+  get onClick() {
+    return html$.GlobalEventHandlers.clickEvent.forTarget(this);
+  }
+  get onContextMenu() {
+    return html$.GlobalEventHandlers.contextMenuEvent.forTarget(this);
+  }
+  get onDoubleClick() {
+    return html$.GlobalEventHandlers.doubleClickEvent.forTarget(this);
+  }
+  get onDrag() {
+    return html$.GlobalEventHandlers.dragEvent.forTarget(this);
+  }
+  get onDragEnd() {
+    return html$.GlobalEventHandlers.dragEndEvent.forTarget(this);
+  }
+  get onDragEnter() {
+    return html$.GlobalEventHandlers.dragEnterEvent.forTarget(this);
+  }
+  get onDragLeave() {
+    return html$.GlobalEventHandlers.dragLeaveEvent.forTarget(this);
+  }
+  get onDragOver() {
+    return html$.GlobalEventHandlers.dragOverEvent.forTarget(this);
+  }
+  get onDragStart() {
+    return html$.GlobalEventHandlers.dragStartEvent.forTarget(this);
+  }
+  get onDrop() {
+    return html$.GlobalEventHandlers.dropEvent.forTarget(this);
+  }
+  get onDurationChange() {
+    return html$.GlobalEventHandlers.durationChangeEvent.forTarget(this);
+  }
+  get onEmptied() {
+    return html$.GlobalEventHandlers.emptiedEvent.forTarget(this);
+  }
+  get onEnded() {
+    return html$.GlobalEventHandlers.endedEvent.forTarget(this);
+  }
+  get onError() {
+    return html$.GlobalEventHandlers.errorEvent.forTarget(this);
+  }
+  get onFocus() {
+    return html$.GlobalEventHandlers.focusEvent.forTarget(this);
+  }
+  get onInput() {
+    return html$.GlobalEventHandlers.inputEvent.forTarget(this);
+  }
+  get onInvalid() {
+    return html$.GlobalEventHandlers.invalidEvent.forTarget(this);
+  }
+  get onKeyDown() {
+    return html$.GlobalEventHandlers.keyDownEvent.forTarget(this);
+  }
+  get onKeyPress() {
+    return html$.GlobalEventHandlers.keyPressEvent.forTarget(this);
+  }
+  get onKeyUp() {
+    return html$.GlobalEventHandlers.keyUpEvent.forTarget(this);
+  }
+  get onLoad() {
+    return html$.GlobalEventHandlers.loadEvent.forTarget(this);
+  }
+  get onLoadedData() {
+    return html$.GlobalEventHandlers.loadedDataEvent.forTarget(this);
+  }
+  get onLoadedMetadata() {
+    return html$.GlobalEventHandlers.loadedMetadataEvent.forTarget(this);
+  }
+  get onMouseDown() {
+    return html$.GlobalEventHandlers.mouseDownEvent.forTarget(this);
+  }
+  get onMouseEnter() {
+    return html$.GlobalEventHandlers.mouseEnterEvent.forTarget(this);
+  }
+  get onMouseLeave() {
+    return html$.GlobalEventHandlers.mouseLeaveEvent.forTarget(this);
+  }
+  get onMouseMove() {
+    return html$.GlobalEventHandlers.mouseMoveEvent.forTarget(this);
+  }
+  get onMouseOut() {
+    return html$.GlobalEventHandlers.mouseOutEvent.forTarget(this);
+  }
+  get onMouseOver() {
+    return html$.GlobalEventHandlers.mouseOverEvent.forTarget(this);
+  }
+  get onMouseUp() {
+    return html$.GlobalEventHandlers.mouseUpEvent.forTarget(this);
+  }
+  get onMouseWheel() {
+    return html$.GlobalEventHandlers.mouseWheelEvent.forTarget(this);
+  }
+  get onPause() {
+    return html$.GlobalEventHandlers.pauseEvent.forTarget(this);
+  }
+  get onPlay() {
+    return html$.GlobalEventHandlers.playEvent.forTarget(this);
+  }
+  get onPlaying() {
+    return html$.GlobalEventHandlers.playingEvent.forTarget(this);
+  }
+  get onRateChange() {
+    return html$.GlobalEventHandlers.rateChangeEvent.forTarget(this);
+  }
+  get onReset() {
+    return html$.GlobalEventHandlers.resetEvent.forTarget(this);
+  }
+  get onResize() {
+    return html$.GlobalEventHandlers.resizeEvent.forTarget(this);
+  }
+  get onScroll() {
+    return html$.GlobalEventHandlers.scrollEvent.forTarget(this);
+  }
+  get onSeeked() {
+    return html$.GlobalEventHandlers.seekedEvent.forTarget(this);
+  }
+  get onSeeking() {
+    return html$.GlobalEventHandlers.seekingEvent.forTarget(this);
+  }
+  get onSelect() {
+    return html$.GlobalEventHandlers.selectEvent.forTarget(this);
+  }
+  get onStalled() {
+    return html$.GlobalEventHandlers.stalledEvent.forTarget(this);
+  }
+  get onSubmit() {
+    return html$.GlobalEventHandlers.submitEvent.forTarget(this);
+  }
+  get onSuspend() {
+    return html$.GlobalEventHandlers.suspendEvent.forTarget(this);
+  }
+  get onTimeUpdate() {
+    return html$.GlobalEventHandlers.timeUpdateEvent.forTarget(this);
+  }
+  get onVolumeChange() {
+    return html$.GlobalEventHandlers.volumeChangeEvent.forTarget(this);
+  }
+  get onWaiting() {
+    return html$.GlobalEventHandlers.waitingEvent.forTarget(this);
+  }
+};
+html$.GlobalEventHandlers[dart.implements] = () => [html$.EventTarget];
+dart.setSignature(html$.GlobalEventHandlers, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GlobalEventHandlers, [])}),
+  getters: () => ({
+    onAbort: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onBlur: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onCanPlay: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onCanPlayThrough: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onClick: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onContextMenu: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDoubleClick: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onDrag: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragEnd: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragEnter: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragLeave: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragOver: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragStart: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDrop: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDurationChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onEmptied: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onEnded: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onError: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onFocus: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onInput: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onInvalid: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onKeyDown: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    onKeyPress: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    onKeyUp: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    onLoad: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onLoadedData: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onLoadedMetadata: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onMouseDown: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseEnter: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseLeave: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseMove: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseOut: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseOver: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseUp: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseWheel: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
+    onPause: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onPlay: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onPlaying: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onRateChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onReset: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onResize: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onScroll: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSeeked: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSeeking: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSelect: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onStalled: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSubmit: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSuspend: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onTimeUpdate: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onVolumeChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onWaiting: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  sfields: () => ({
+    abortEvent: EventStreamProviderOfEvent(),
+    blurEvent: EventStreamProviderOfEvent(),
+    canPlayEvent: EventStreamProviderOfEvent(),
+    canPlayThroughEvent: EventStreamProviderOfEvent(),
+    changeEvent: EventStreamProviderOfEvent(),
+    clickEvent: EventStreamProviderOfMouseEvent(),
+    contextMenuEvent: EventStreamProviderOfMouseEvent(),
+    doubleClickEvent: EventStreamProviderOfEvent(),
+    dragEvent: EventStreamProviderOfMouseEvent(),
+    dragEndEvent: EventStreamProviderOfMouseEvent(),
+    dragEnterEvent: EventStreamProviderOfMouseEvent(),
+    dragLeaveEvent: EventStreamProviderOfMouseEvent(),
+    dragOverEvent: EventStreamProviderOfMouseEvent(),
+    dragStartEvent: EventStreamProviderOfMouseEvent(),
+    dropEvent: EventStreamProviderOfMouseEvent(),
+    durationChangeEvent: EventStreamProviderOfEvent(),
+    emptiedEvent: EventStreamProviderOfEvent(),
+    endedEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    focusEvent: EventStreamProviderOfEvent(),
+    inputEvent: EventStreamProviderOfEvent(),
+    invalidEvent: EventStreamProviderOfEvent(),
+    keyDownEvent: EventStreamProviderOfKeyboardEvent(),
+    keyPressEvent: EventStreamProviderOfKeyboardEvent(),
+    keyUpEvent: EventStreamProviderOfKeyboardEvent(),
+    loadEvent: EventStreamProviderOfEvent(),
+    loadedDataEvent: EventStreamProviderOfEvent(),
+    loadedMetadataEvent: EventStreamProviderOfEvent(),
+    mouseDownEvent: EventStreamProviderOfMouseEvent(),
+    mouseEnterEvent: EventStreamProviderOfMouseEvent(),
+    mouseLeaveEvent: EventStreamProviderOfMouseEvent(),
+    mouseMoveEvent: EventStreamProviderOfMouseEvent(),
+    mouseOutEvent: EventStreamProviderOfMouseEvent(),
+    mouseOverEvent: EventStreamProviderOfMouseEvent(),
+    mouseUpEvent: EventStreamProviderOfMouseEvent(),
+    mouseWheelEvent: EventStreamProviderOfWheelEvent(),
+    pauseEvent: EventStreamProviderOfEvent(),
+    playEvent: EventStreamProviderOfEvent(),
+    playingEvent: EventStreamProviderOfEvent(),
+    rateChangeEvent: EventStreamProviderOfEvent(),
+    resetEvent: EventStreamProviderOfEvent(),
+    resizeEvent: EventStreamProviderOfEvent(),
+    scrollEvent: EventStreamProviderOfEvent(),
+    seekedEvent: EventStreamProviderOfEvent(),
+    seekingEvent: EventStreamProviderOfEvent(),
+    selectEvent: EventStreamProviderOfEvent(),
+    stalledEvent: EventStreamProviderOfEvent(),
+    submitEvent: EventStreamProviderOfEvent(),
+    suspendEvent: EventStreamProviderOfEvent(),
+    timeUpdateEvent: EventStreamProviderOfEvent(),
+    volumeChangeEvent: EventStreamProviderOfEvent(),
+    waitingEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineExtensionMembers(html$.GlobalEventHandlers, [
+  'onAbort',
+  'onBlur',
+  'onCanPlay',
+  'onCanPlayThrough',
+  'onChange',
+  'onClick',
+  'onContextMenu',
+  'onDoubleClick',
+  'onDrag',
+  'onDragEnd',
+  'onDragEnter',
+  'onDragLeave',
+  'onDragOver',
+  'onDragStart',
+  'onDrop',
+  'onDurationChange',
+  'onEmptied',
+  'onEnded',
+  'onError',
+  'onFocus',
+  'onInput',
+  'onInvalid',
+  'onKeyDown',
+  'onKeyPress',
+  'onKeyUp',
+  'onLoad',
+  'onLoadedData',
+  'onLoadedMetadata',
+  'onMouseDown',
+  'onMouseEnter',
+  'onMouseLeave',
+  'onMouseMove',
+  'onMouseOut',
+  'onMouseOver',
+  'onMouseUp',
+  'onMouseWheel',
+  'onPause',
+  'onPlay',
+  'onPlaying',
+  'onRateChange',
+  'onReset',
+  'onResize',
+  'onScroll',
+  'onSeeked',
+  'onSeeking',
+  'onSelect',
+  'onStalled',
+  'onSubmit',
+  'onSuspend',
+  'onTimeUpdate',
+  'onVolumeChange',
+  'onWaiting'
+]);
+dart.defineLazy(html$.GlobalEventHandlers, {
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('abort'));
+  },
+  get blurEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('blur'));
+  },
+  get canPlayEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('canplay'));
+  },
+  get canPlayThroughEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('canplaythrough'));
+  },
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  },
+  get clickEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('click'));
+  },
+  get contextMenuEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('contextmenu'));
+  },
+  get doubleClickEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('dblclick'));
+  },
+  get dragEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('drag'));
+  },
+  get dragEndEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragend'));
+  },
+  get dragEnterEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragenter'));
+  },
+  get dragLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragleave'));
+  },
+  get dragOverEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragover'));
+  },
+  get dragStartEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragstart'));
+  },
+  get dropEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('drop'));
+  },
+  get durationChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('durationchange'));
+  },
+  get emptiedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('emptied'));
+  },
+  get endedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ended'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get focusEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('focus'));
+  },
+  get inputEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('input'));
+  },
+  get invalidEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('invalid'));
+  },
+  get keyDownEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keydown'));
+  },
+  get keyPressEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keypress'));
+  },
+  get keyUpEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keyup'));
+  },
+  get loadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('load'));
+  },
+  get loadedDataEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadeddata'));
+  },
+  get loadedMetadataEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadedmetadata'));
+  },
+  get mouseDownEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mousedown'));
+  },
+  get mouseEnterEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseenter'));
+  },
+  get mouseLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseleave'));
+  },
+  get mouseMoveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mousemove'));
+  },
+  get mouseOutEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseout'));
+  },
+  get mouseOverEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseover'));
+  },
+  get mouseUpEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseup'));
+  },
+  get mouseWheelEvent() {
+    return dart.const(new (EventStreamProviderOfWheelEvent())('mousewheel'));
+  },
+  get pauseEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pause'));
+  },
+  get playEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('play'));
+  },
+  get playingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('playing'));
+  },
+  get rateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ratechange'));
+  },
+  get resetEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('reset'));
+  },
+  get resizeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('resize'));
+  },
+  get scrollEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('scroll'));
+  },
+  get seekedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('seeked'));
+  },
+  get seekingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('seeking'));
+  },
+  get selectEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('select'));
+  },
+  get stalledEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('stalled'));
+  },
+  get submitEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('submit'));
+  },
+  get suspendEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('suspend'));
+  },
+  get timeUpdateEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('timeupdate'));
+  },
+  get volumeChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('volumechange'));
+  },
+  get waitingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('waiting'));
+  }
+});
+dart.defineExtensionNames([
+  'color'
+]);
+html$.HRElement = class HRElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.HRElement._check(html$.document[dartx.createElement]("hr"));
+  }
+  created() {
+    this[dartx.color] = null;
+    super.created();
+  }
+  get [dartx.color]() {
+    return this.color;
+  }
+  set [dartx.color](value) {
+    this.color = value;
+  }
+};
+dart.defineNamedConstructor(html$.HRElement, 'created');
+dart.setSignature(html$.HRElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.HRElement, []),
+    new: dart.definiteFunctionType(html$.HRElement, []),
+    created: dart.definiteFunctionType(html$.HRElement, [])
+  }),
+  fields: () => ({[dartx.color]: core.String})
+});
+dart.registerExtension(dart.global.HTMLHRElement, html$.HRElement);
+const _initHashChangeEvent = Symbol('_initHashChangeEvent');
+dart.defineExtensionNames([
+  'newUrl',
+  'oldUrl'
+]);
+html$.HashChangeEvent = class HashChangeEvent extends html$.Event {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let oldUrl = opts && 'oldUrl' in opts ? opts.oldUrl : null;
+    let newUrl = opts && 'newUrl' in opts ? opts.newUrl : null;
+    let options = dart.map({canBubble: canBubble, cancelable: cancelable, oldURL: oldUrl, newURL: newUrl}, core.String, core.Object);
+    return new self.HashChangeEvent(type, html_common.convertDartToNative_Dictionary(options));
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.HashChangeEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.HashChangeEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.HashChangeEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.HashChangeEvent(type);
+  }
+  static get supported() {
+    return html_common.Device.isEventTypeSupported('HashChangeEvent');
+  }
+  get [dartx.newUrl]() {
+    return this.newURL;
+  }
+  get [dartx.oldUrl]() {
+    return this.oldURL;
+  }
+  [_initHashChangeEvent](...args) {
+    return this.initHashChangeEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.HashChangeEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.HashChangeEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, oldUrl: core.String, newUrl: core.String}),
+    _: dart.definiteFunctionType(html$.HashChangeEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.newUrl]: core.String,
+    [dartx.oldUrl]: core.String
+  }),
+  methods: () => ({[_initHashChangeEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.HashChangeEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.HashChangeEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.HashChangeEvent, html$.HashChangeEvent);
+html$.HeadElement = class HeadElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.HeadElement._check(html$.document[dartx.createElement]("head"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.HeadElement, 'created');
+dart.setSignature(html$.HeadElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.HeadElement, []),
+    new: dart.definiteFunctionType(html$.HeadElement, []),
+    created: dart.definiteFunctionType(html$.HeadElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLHeadElement, html$.HeadElement);
+html$.Headers = class Headers extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(input) {
+    if (input === void 0) input = null;
+    if (input == null) {
+      return html$.Headers._create_1();
+    }
+    if (html$.Headers.is(input)) {
+      return html$.Headers._create_2(input);
+    }
+    if (core.Map.is(input)) {
+      let input_1 = html_common.convertDartToNative_Dictionary(input);
+      return html$.Headers._create_3(input_1);
+    }
+    if (ListOfObject().is(input)) {
+      return html$.Headers._create_4(input);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1() {
+    return new self.Headers();
+  }
+  static _create_2(input) {
+    return new self.Headers(input);
+  }
+  static _create_3(input) {
+    return new self.Headers(input);
+  }
+  static _create_4(input) {
+    return new self.Headers(input);
+  }
+};
+dart.setSignature(html$.Headers, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.Headers, []),
+    new: dart.definiteFunctionType(html$.Headers, [], [dart.dynamic])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.Headers, []),
+    _create_2: dart.definiteFunctionType(html$.Headers, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.Headers, [dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.Headers, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3', '_create_4']
+});
+dart.registerExtension(dart.global.Headers, html$.Headers);
+html$.HeadingElement = class HeadingElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static h1() {
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h1"));
+  }
+  static h2() {
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h2"));
+  }
+  static h3() {
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h3"));
+  }
+  static h4() {
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h4"));
+  }
+  static h5() {
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h5"));
+  }
+  static h6() {
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h6"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.HeadingElement, 'created');
+dart.setSignature(html$.HeadingElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.HeadingElement, []),
+    h1: dart.definiteFunctionType(html$.HeadingElement, []),
+    h2: dart.definiteFunctionType(html$.HeadingElement, []),
+    h3: dart.definiteFunctionType(html$.HeadingElement, []),
+    h4: dart.definiteFunctionType(html$.HeadingElement, []),
+    h5: dart.definiteFunctionType(html$.HeadingElement, []),
+    h6: dart.definiteFunctionType(html$.HeadingElement, []),
+    created: dart.definiteFunctionType(html$.HeadingElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLHeadingElement, html$.HeadingElement);
+const _get_options = Symbol('_get_options');
+const _get_state = Symbol('_get_state');
+const _pushState_1 = Symbol('_pushState_1');
+const _pushState_2 = Symbol('_pushState_2');
+const _replaceState_1 = Symbol('_replaceState_1');
+const _replaceState_2 = Symbol('_replaceState_2');
+dart.defineExtensionNames([
+  'options',
+  'state',
+  'back',
+  'forward',
+  'go',
+  'pushState',
+  'replaceState',
+  'length'
+]);
+html$.History = class History extends _interceptors.Interceptor {
+  static get supportsState() {
+    return !!window.history.pushState;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.options]() {
+    return html_common.convertNativeToDart_Dictionary(this[_get_options]);
+  }
+  get [_get_options]() {
+    return this.options;
+  }
+  get [dartx.state]() {
+    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_state]);
+  }
+  get [_get_state]() {
+    return this.state;
+  }
+  [dartx.back](...args) {
+    return this.back.apply(this, args);
+  }
+  [dartx.forward](...args) {
+    return this.forward.apply(this, args);
+  }
+  [dartx.go](...args) {
+    return this.go.apply(this, args);
+  }
+  [dartx.pushState](data, title, url, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
+      let options_2 = html_common.convertDartToNative_Dictionary(options);
+      this[_pushState_1](data_1, title, url, options_2);
+      return;
+    }
+    let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
+    this[_pushState_2](data_1, title, url);
+    return;
+  }
+  [_pushState_1](...args) {
+    return this.pushState.apply(this, args);
+  }
+  [_pushState_2](...args) {
+    return this.pushState.apply(this, args);
+  }
+  [dartx.replaceState](data, title, url, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
+      let options_2 = html_common.convertDartToNative_Dictionary(options);
+      this[_replaceState_1](data_1, title, url, options_2);
+      return;
+    }
+    let data_1 = html_common.convertDartToNative_SerializedScriptValue(data);
+    this[_replaceState_2](data_1, title, url);
+    return;
+  }
+  [_replaceState_1](...args) {
+    return this.replaceState.apply(this, args);
+  }
+  [_replaceState_2](...args) {
+    return this.replaceState.apply(this, args);
+  }
+};
+html$.History[dart.implements] = () => [html$.HistoryBase];
+dart.setSignature(html$.History, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.History, [])}),
+  fields: () => ({
+    [dartx.length]: core.int,
+    [_get_options]: dart.dynamic,
+    [_get_state]: dart.dynamic
+  }),
+  getters: () => ({
+    [dartx.options]: dart.definiteFunctionType(core.Map, []),
+    [dartx.state]: dart.definiteFunctionType(dart.dynamic, [])
+  }),
+  methods: () => ({
+    [dartx.back]: dart.definiteFunctionType(dart.void, []),
+    [dartx.forward]: dart.definiteFunctionType(dart.void, []),
+    [dartx.go]: dart.definiteFunctionType(dart.void, [], [core.int]),
+    [dartx.pushState]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, core.String], [core.Map]),
+    [_pushState_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_pushState_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    [dartx.replaceState]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String, core.String], [core.Map]),
+    [_replaceState_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_replaceState_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  sgetters: () => ({supportsState: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.History, html$.History);
+dart.defineExtensionNames([
+  'deviceId',
+  'deviceName',
+  'hardwareUnitId'
+]);
+html$.VRDevice = class VRDevice extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.deviceId]() {
+    return this.deviceId;
+  }
+  get [dartx.deviceName]() {
+    return this.deviceName;
+  }
+  get [dartx.hardwareUnitId]() {
+    return this.hardwareUnitId;
+  }
+};
+dart.setSignature(html$.VRDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VRDevice, [])}),
+  fields: () => ({
+    [dartx.deviceId]: core.String,
+    [dartx.deviceName]: core.String,
+    [dartx.hardwareUnitId]: core.String
+  })
+});
+dart.registerExtension(dart.global.VRDevice, html$.VRDevice);
+dart.defineExtensionNames([
+  'getEyeParameters',
+  'setFieldOfView'
+]);
+html$.HmdvrDevice = class HmdvrDevice extends html$.VRDevice {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getEyeParameters](...args) {
+    return this.getEyeParameters.apply(this, args);
+  }
+  [dartx.setFieldOfView](...args) {
+    return this.setFieldOfView.apply(this, args);
+  }
+};
+dart.setSignature(html$.HmdvrDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HmdvrDevice, [])}),
+  methods: () => ({
+    [dartx.getEyeParameters]: dart.definiteFunctionType(html$.VREyeParameters, [core.String]),
+    [dartx.setFieldOfView]: dart.definiteFunctionType(dart.void, [], [html$.VRFieldOfView, html$.VRFieldOfView])
+  })
+});
+dart.registerExtension(dart.global.HMDVRDevice, html$.HmdvrDevice);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item',
+  'namedItem'
+]);
+html$.HtmlCollection = class HtmlCollection extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+};
+html$.HtmlCollection[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
+dart.setSignature(html$.HtmlCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlCollection, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    [dartx.item]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(core.Object, [core.String])
+  })
+});
+dart.registerExtension(dart.global.HTMLCollection, html$.HtmlCollection);
+dart.defineExtensionNames([
+  'caretRangeFromPoint',
+  'elementFromPoint',
+  'getCssCanvasContext',
+  'head',
+  'lastModified',
+  'preferredStylesheetSet',
+  'referrer',
+  'selectedStylesheetSet',
+  'selectedStylesheetSet',
+  'styleSheets',
+  'title',
+  'title',
+  'exitFullscreen',
+  'registerElement',
+  'register',
+  'onVisibilityChange',
+  'createElementUpgrader',
+  'body'
+]);
+html$.HtmlDocument = class HtmlDocument extends html$.Document {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.body]() {
+    return this.body;
+  }
+  set [dartx.body](value) {
+    this.body = value;
+  }
+  [dartx.caretRangeFromPoint](x, y) {
+    return this[_caretRangeFromPoint](x, y);
+  }
+  [dartx.elementFromPoint](x, y) {
+    return this[_elementFromPoint](x, y);
+  }
+  static get supportsCssCanvasContext() {
+    return !!document.getCSSCanvasContext;
+  }
+  [dartx.getCssCanvasContext](contextId, name, width, height) {
+    return html$.CanvasRenderingContext._check(this[_getCssCanvasContext](contextId, name, width, height));
+  }
+  get [dartx.head]() {
+    return this[_head$0];
+  }
+  get [dartx.lastModified]() {
+    return this[_lastModified];
+  }
+  get [dartx.preferredStylesheetSet]() {
+    return this[_preferredStylesheetSet];
+  }
+  get [dartx.referrer]() {
+    return this[_referrer];
+  }
+  get [dartx.selectedStylesheetSet]() {
+    return this[_selectedStylesheetSet];
+  }
+  set [dartx.selectedStylesheetSet](value) {
+    this[_selectedStylesheetSet] = value;
+  }
+  get [dartx.styleSheets]() {
+    return this[_styleSheets];
+  }
+  get [dartx.title]() {
+    return this[_title];
+  }
+  set [dartx.title](value) {
+    this[_title] = value;
+  }
+  [dartx.exitFullscreen]() {
+    this[_webkitExitFullscreen]();
+  }
+  [dartx.registerElement](tag, customElementClass, opts) {
+    let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
+    html$._registerCustomElement(window, this, tag, customElementClass, extendsTag);
+  }
+  [dartx.register](tag, customElementClass, opts) {
+    let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
+    return this[dartx.registerElement](tag, customElementClass, {extendsTag: extendsTag});
+  }
+  static _determineVisibilityChangeEventType(e) {
+    if (typeof e.hidden !== "undefined") {
+      return 'visibilitychange';
+    } else if (typeof e.mozHidden !== "undefined") {
+      return 'mozvisibilitychange';
+    } else if (typeof e.msHidden !== "undefined") {
+      return 'msvisibilitychange';
+    } else if (typeof e.webkitHidden !== "undefined") {
+      return 'webkitvisibilitychange';
+    }
+    return 'visibilitychange';
+  }
+  get [dartx.onVisibilityChange]() {
+    return html$.HtmlDocument.visibilityChangeEvent.forTarget(this);
+  }
+  [dartx.createElementUpgrader](type, opts) {
+    let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
+    return new html$._JSElementUpgrader(this, type, extendsTag);
+  }
+};
+dart.setSignature(html$.HtmlDocument, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlDocument, [])}),
+  fields: () => ({[dartx.body]: html$.BodyElement}),
+  getters: () => ({
+    [dartx.head]: dart.definiteFunctionType(html$.HeadElement, []),
+    [dartx.lastModified]: dart.definiteFunctionType(core.String, []),
+    [dartx.preferredStylesheetSet]: dart.definiteFunctionType(core.String, []),
+    [dartx.referrer]: dart.definiteFunctionType(core.String, []),
+    [dartx.selectedStylesheetSet]: dart.definiteFunctionType(core.String, []),
+    [dartx.styleSheets]: dart.definiteFunctionType(core.List$(html$.StyleSheet), []),
+    [dartx.title]: dart.definiteFunctionType(core.String, []),
+    [dartx.onVisibilityChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  setters: () => ({
+    [dartx.selectedStylesheetSet]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.title]: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  methods: () => ({
+    [dartx.caretRangeFromPoint]: dart.definiteFunctionType(html$.Range, [core.int, core.int]),
+    [dartx.elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
+    [dartx.getCssCanvasContext]: dart.definiteFunctionType(html$.CanvasRenderingContext, [core.String, core.String, core.int, core.int]),
+    [dartx.registerElement]: dart.definiteFunctionType(dart.void, [core.String, core.Type], {extendsTag: core.String}),
+    [dartx.register]: dart.definiteFunctionType(dart.void, [core.String, core.Type], {extendsTag: core.String}),
+    [dartx.createElementUpgrader]: dart.definiteFunctionType(html$.ElementUpgrader, [core.Type], {extendsTag: core.String})
+  }),
+  sfields: () => ({visibilityChangeEvent: EventStreamProviderOfEvent()}),
+  sgetters: () => ({supportsCssCanvasContext: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({_determineVisibilityChangeEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])}),
+  names: ['_determineVisibilityChangeEventType']
+});
+dart.defineLazy(html$.HtmlDocument, {
+  get visibilityChangeEvent() {
+    return dart.const(new (_CustomEventStreamProviderOfEvent())(html$.HtmlDocument._determineVisibilityChangeEventType));
+  }
+});
+dart.registerExtension(dart.global.HTMLDocument, html$.HtmlDocument);
+dart.defineExtensionNames([
+  'item',
+  'namedItem'
+]);
+html$.HtmlFormControlsCollection = class HtmlFormControlsCollection extends html$.HtmlCollection {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+};
+dart.setSignature(html$.HtmlFormControlsCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlFormControlsCollection, [])})
+});
+dart.registerExtension(dart.global.HTMLFormControlsCollection, html$.HtmlFormControlsCollection);
+html$.HtmlHtmlElement = class HtmlHtmlElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.HtmlHtmlElement._check(html$.document[dartx.createElement]("html"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.HtmlHtmlElement, 'created');
+dart.setSignature(html$.HtmlHtmlElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.HtmlHtmlElement, []),
+    new: dart.definiteFunctionType(html$.HtmlHtmlElement, []),
+    created: dart.definiteFunctionType(html$.HtmlHtmlElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLHtmlElement, html$.HtmlHtmlElement);
+const _item = Symbol('_item');
+html$.HtmlOptionsCollection = class HtmlOptionsCollection extends html$.HtmlCollection {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+dart.setSignature(html$.HtmlOptionsCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlOptionsCollection, [])}),
+  methods: () => ({[_item]: dart.definiteFunctionType(html$.Node, [core.int])})
+});
+dart.registerExtension(dart.global.HTMLOptionsCollection, html$.HtmlOptionsCollection);
+const _get_response = Symbol('_get_response');
+dart.defineExtensionNames([
+  'onAbort',
+  'onError',
+  'onLoad',
+  'onLoadEnd',
+  'onLoadStart',
+  'onProgress',
+  'onTimeout'
+]);
+html$.HttpRequestEventTarget = class HttpRequestEventTarget extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.onAbort]() {
+    return html$.HttpRequestEventTarget.abortEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.HttpRequestEventTarget.errorEvent.forTarget(this);
+  }
+  get [dartx.onLoad]() {
+    return html$.HttpRequestEventTarget.loadEvent.forTarget(this);
+  }
+  get [dartx.onLoadEnd]() {
+    return html$.HttpRequestEventTarget.loadEndEvent.forTarget(this);
+  }
+  get [dartx.onLoadStart]() {
+    return html$.HttpRequestEventTarget.loadStartEvent.forTarget(this);
+  }
+  get [dartx.onProgress]() {
+    return html$.HttpRequestEventTarget.progressEvent.forTarget(this);
+  }
+  get [dartx.onTimeout]() {
+    return html$.HttpRequestEventTarget.timeoutEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.HttpRequestEventTarget, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HttpRequestEventTarget, [])}),
+  getters: () => ({
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onTimeout]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
+  }),
+  sfields: () => ({
+    abortEvent: EventStreamProviderOfProgressEvent(),
+    errorEvent: EventStreamProviderOfProgressEvent(),
+    loadEvent: EventStreamProviderOfProgressEvent(),
+    loadEndEvent: EventStreamProviderOfProgressEvent(),
+    loadStartEvent: EventStreamProviderOfProgressEvent(),
+    progressEvent: EventStreamProviderOfProgressEvent(),
+    timeoutEvent: EventStreamProviderOfProgressEvent()
+  })
+});
+dart.defineLazy(html$.HttpRequestEventTarget, {
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('error'));
+  },
+  get loadEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('load'));
+  },
+  get loadEndEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('loadend'));
+  },
+  get loadStartEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('loadstart'));
+  },
+  get progressEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
+  },
+  get timeoutEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('timeout'));
+  }
+});
+dart.registerExtension(dart.global.XMLHttpRequestEventTarget, html$.HttpRequestEventTarget);
+dart.defineExtensionNames([
+  'responseHeaders',
+  'open',
+  'response',
+  'abort',
+  'getAllResponseHeaders',
+  'getResponseHeader',
+  'overrideMimeType',
+  'send',
+  'setRequestHeader',
+  'onReadyStateChange',
+  'readyState',
+  'responseText',
+  'responseType',
+  'responseUrl',
+  'responseXml',
+  'status',
+  'statusText',
+  'timeout',
+  'upload',
+  'withCredentials'
+]);
+html$.HttpRequest = class HttpRequest extends html$.HttpRequestEventTarget {
+  static getString(url, opts) {
+    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
+    let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
+    return html$.HttpRequest.request(url, {withCredentials: withCredentials, onProgress: onProgress}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
+  }
+  static postFormData(url, data, opts) {
+    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
+    let responseType = opts && 'responseType' in opts ? opts.responseType : null;
+    let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
+    let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
+    let parts = [];
+    data[dartx.forEach](dart.fn((key, value) => {
+      parts[dartx.add](dart.str`${core.Uri.encodeQueryComponent(key)}=` + dart.str`${core.Uri.encodeQueryComponent(value)}`);
+    }, StringAndStringToNull()));
+    let formData = parts[dartx.join]('&');
+    if (requestHeaders == null) {
+      requestHeaders = dart.map({}, core.String, core.String);
+    }
+    requestHeaders[dartx.putIfAbsent]('Content-Type', dart.fn(() => 'application/x-www-form-urlencoded; charset=UTF-8', VoidToString$()));
+    return html$.HttpRequest.request(url, {method: 'POST', withCredentials: withCredentials, responseType: responseType, requestHeaders: requestHeaders, sendData: formData, onProgress: onProgress});
+  }
+  static request(url, opts) {
+    let method = opts && 'method' in opts ? opts.method : null;
+    let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
+    let responseType = opts && 'responseType' in opts ? opts.responseType : null;
+    let mimeType = opts && 'mimeType' in opts ? opts.mimeType : null;
+    let requestHeaders = opts && 'requestHeaders' in opts ? opts.requestHeaders : null;
+    let sendData = opts && 'sendData' in opts ? opts.sendData : null;
+    let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
+    let completer = CompleterOfHttpRequest().new();
+    let xhr = html$.HttpRequest.new();
+    if (method == null) {
+      method = 'GET';
+    }
+    xhr[dartx.open](method, url, {async: true});
+    if (withCredentials != null) {
+      xhr[dartx.withCredentials] = withCredentials;
+    }
+    if (responseType != null) {
+      xhr[dartx.responseType] = responseType;
+    }
+    if (mimeType != null) {
+      xhr[dartx.overrideMimeType](mimeType);
+    }
+    if (requestHeaders != null) {
+      requestHeaders[dartx.forEach](dart.fn((header, value) => {
+        xhr[dartx.setRequestHeader](header, value);
+      }, StringAndStringToNull()));
+    }
+    if (onProgress != null) {
+      xhr[dartx.onProgress].listen(onProgress);
+    }
+    xhr[dartx.onLoad].listen(dart.fn(e => {
+      let accepted = dart.notNull(xhr[dartx.status]) >= 200 && dart.notNull(xhr[dartx.status]) < 300;
+      let fileUri = xhr[dartx.status] == 0;
+      let notModified = xhr[dartx.status] == 304;
+      let unknownRedirect = dart.notNull(xhr[dartx.status]) > 307 && dart.notNull(xhr[dartx.status]) < 400;
+      if (accepted || fileUri || notModified || unknownRedirect) {
+        completer.complete(xhr);
+      } else {
+        completer.completeError(e);
+      }
+    }, ProgressEventToNull()));
+    xhr[dartx.onError].listen(dart.bind(completer, 'completeError'));
+    if (sendData != null) {
+      xhr[dartx.send](sendData);
+    } else {
+      xhr[dartx.send]();
+    }
+    return completer.future;
+  }
+  static get supportsProgressEvent() {
+    let xhr = html$.HttpRequest.new();
+    return "onprogress" in xhr;
+  }
+  static get supportsCrossOrigin() {
+    let xhr = html$.HttpRequest.new();
+    return "withCredentials" in xhr;
+  }
+  static get supportsLoadEndEvent() {
+    let xhr = html$.HttpRequest.new();
+    return "onloadend" in xhr;
+  }
+  static get supportsOverrideMimeType() {
+    let xhr = html$.HttpRequest.new();
+    return "overrideMimeType" in xhr;
+  }
+  static requestCrossOrigin(url, opts) {
+    let method = opts && 'method' in opts ? opts.method : null;
+    let sendData = opts && 'sendData' in opts ? opts.sendData : null;
+    if (dart.test(html$.HttpRequest.supportsCrossOrigin)) {
+      return html$.HttpRequest.request(url, {method: method, sendData: sendData}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
+    }
+    let completer = CompleterOfString().new();
+    if (method == null) {
+      method = 'GET';
+    }
+    let xhr = new XDomainRequest();
+    xhr.open(method, url);
+    xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
+      let response = xhr.responseText;
+      completer.complete(response);
+    }, dynamicToNull$()), 1);
+    xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
+      completer.completeError(e);
+    }, dynamicToNull$()), 1);
+    xhr.onprogress = {};
+    xhr.ontimeout = {};
+    xhr.timeout = Number.MAX_VALUE;
+    if (sendData != null) {
+      xhr.send(sendData);
+    } else {
+      xhr.send();
+    }
+    return completer.future;
+  }
+  get [dartx.responseHeaders]() {
+    let headers = dart.map({}, core.String, core.String);
+    let headersString = this[dartx.getAllResponseHeaders]();
+    if (headersString == null) {
+      return headers;
+    }
+    let headersList = headersString[dartx.split]('\r\n');
+    for (let header of headersList) {
+      if (dart.test(header[dartx.isEmpty])) {
+        continue;
+      }
+      let splitIdx = header[dartx.indexOf](': ');
+      if (splitIdx == -1) {
+        continue;
+      }
+      let key = header[dartx.substring](0, splitIdx)[dartx.toLowerCase]();
+      let value = header[dartx.substring](dart.notNull(splitIdx) + 2);
+      if (dart.test(headers[dartx.containsKey](key))) {
+        headers[dartx._set](key, dart.str`${headers[dartx._get](key)}, ${value}`);
+      } else {
+        headers[dartx._set](key, value);
+      }
+    }
+    return headers;
+  }
+  [dartx.open](...args) {
+    return this.open.apply(this, args);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.HttpRequest._create_1();
+  }
+  static _create_1() {
+    return new XMLHttpRequest();
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.response]() {
+    return html$._convertNativeToDart_XHR_Response(this[_get_response]);
+  }
+  get [_get_response]() {
+    return this.response;
+  }
+  get [dartx.responseText]() {
+    return this.responseText;
+  }
+  get [dartx.responseType]() {
+    return this.responseType;
+  }
+  set [dartx.responseType](value) {
+    this.responseType = value;
+  }
+  get [dartx.responseUrl]() {
+    return this.responseURL;
+  }
+  get [dartx.responseXml]() {
+    return this.responseXML;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  get [dartx.statusText]() {
+    return this.statusText;
+  }
+  get [dartx.timeout]() {
+    return this.timeout;
+  }
+  set [dartx.timeout](value) {
+    this.timeout = value;
+  }
+  get [dartx.upload]() {
+    return this.upload;
+  }
+  get [dartx.withCredentials]() {
+    return this.withCredentials;
+  }
+  set [dartx.withCredentials](value) {
+    this.withCredentials = value;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.getAllResponseHeaders](...args) {
+    return this.getAllResponseHeaders.apply(this, args);
+  }
+  [dartx.getResponseHeader](...args) {
+    return this.getResponseHeader.apply(this, args);
+  }
+  [dartx.overrideMimeType](...args) {
+    return this.overrideMimeType.apply(this, args);
+  }
+  [dartx.send](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.setRequestHeader](...args) {
+    return this.setRequestHeader.apply(this, args);
+  }
+  get [dartx.onReadyStateChange]() {
+    return html$.HttpRequest.readyStateChangeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.HttpRequest, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.HttpRequest, []),
+    new: dart.definiteFunctionType(html$.HttpRequest, [])
+  }),
+  fields: () => ({
+    [dartx.readyState]: core.int,
+    [_get_response]: dart.dynamic,
+    [dartx.responseText]: core.String,
+    [dartx.responseType]: core.String,
+    [dartx.responseUrl]: core.String,
+    [dartx.responseXml]: html$.Document,
+    [dartx.status]: core.int,
+    [dartx.statusText]: core.String,
+    [dartx.timeout]: core.int,
+    [dartx.upload]: html$.HttpRequestUpload,
+    [dartx.withCredentials]: core.bool
+  }),
+  getters: () => ({
+    [dartx.responseHeaders]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
+    [dartx.response]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
+  }),
+  methods: () => ({
+    [dartx.open]: dart.definiteFunctionType(dart.void, [core.String, core.String], {async: core.bool, user: core.String, password: core.String}),
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.getAllResponseHeaders]: dart.definiteFunctionType(core.String, []),
+    [dartx.getResponseHeader]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.overrideMimeType]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.send]: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
+    [dartx.setRequestHeader]: dart.definiteFunctionType(dart.void, [core.String, core.String])
+  }),
+  sfields: () => ({
+    readyStateChangeEvent: EventStreamProviderOfProgressEvent(),
+    DONE: core.int,
+    HEADERS_RECEIVED: core.int,
+    LOADING: core.int,
+    OPENED: core.int,
+    UNSENT: core.int
+  }),
+  sgetters: () => ({
+    supportsProgressEvent: dart.definiteFunctionType(core.bool, []),
+    supportsCrossOrigin: dart.definiteFunctionType(core.bool, []),
+    supportsLoadEndEvent: dart.definiteFunctionType(core.bool, []),
+    supportsOverrideMimeType: dart.definiteFunctionType(core.bool, [])
+  }),
+  statics: () => ({
+    getString: dart.definiteFunctionType(async.Future$(core.String), [core.String], {withCredentials: core.bool, onProgress: ProgressEventTovoid()}),
+    postFormData: dart.definiteFunctionType(async.Future$(html$.HttpRequest), [core.String, MapOfString$String()], {withCredentials: core.bool, responseType: core.String, requestHeaders: MapOfString$String(), onProgress: ProgressEventTovoid()}),
+    request: dart.definiteFunctionType(async.Future$(html$.HttpRequest), [core.String], {method: core.String, withCredentials: core.bool, responseType: core.String, mimeType: core.String, requestHeaders: MapOfString$String(), sendData: dart.dynamic, onProgress: ProgressEventTovoid()}),
+    requestCrossOrigin: dart.definiteFunctionType(async.Future$(core.String), [core.String], {method: core.String, sendData: core.String}),
+    _create_1: dart.definiteFunctionType(html$.HttpRequest, [])
+  }),
+  names: ['getString', 'postFormData', 'request', 'requestCrossOrigin', '_create_1']
+});
+html$.HttpRequest.DONE = 4;
+html$.HttpRequest.HEADERS_RECEIVED = 2;
+html$.HttpRequest.LOADING = 3;
+html$.HttpRequest.OPENED = 1;
+html$.HttpRequest.UNSENT = 0;
+dart.defineLazy(html$.HttpRequest, {
+  get readyStateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfProgressEvent())('readystatechange'));
+  }
+});
+dart.registerExtension(dart.global.XMLHttpRequest, html$.HttpRequest);
+html$.HttpRequestUpload = class HttpRequestUpload extends html$.HttpRequestEventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.HttpRequestUpload, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HttpRequestUpload, [])})
+});
+dart.registerExtension(dart.global.XMLHttpRequestUpload, html$.HttpRequestUpload);
+const _get_contentWindow = Symbol('_get_contentWindow');
+dart.defineExtensionNames([
+  'contentWindow',
+  'allowFullscreen',
+  'height',
+  'name',
+  'sandbox',
+  'src',
+  'srcdoc',
+  'width'
+]);
+html$.IFrameElement = class IFrameElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.IFrameElement._check(html$.document[dartx.createElement]("iframe"));
+  }
+  created() {
+    this[dartx.allowFullscreen] = null;
+    this[_get_contentWindow] = null;
+    this[dartx.height] = null;
+    this[dartx.name] = null;
+    this[dartx.sandbox] = null;
+    this[dartx.src] = null;
+    this[dartx.srcdoc] = null;
+    this[dartx.width] = null;
+    super.created();
+  }
+  get [dartx.allowFullscreen]() {
+    return this.allowFullscreen;
+  }
+  set [dartx.allowFullscreen](value) {
+    this.allowFullscreen = value;
+  }
+  get [dartx.contentWindow]() {
+    return html$._convertNativeToDart_Window(this[_get_contentWindow]);
+  }
+  get [_get_contentWindow]() {
+    return this.contentWindow;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.sandbox]() {
+    return this.sandbox;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.srcdoc]() {
+    return this.srcdoc;
+  }
+  set [dartx.srcdoc](value) {
+    this.srcdoc = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+};
+dart.defineNamedConstructor(html$.IFrameElement, 'created');
+dart.setSignature(html$.IFrameElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.IFrameElement, []),
+    new: dart.definiteFunctionType(html$.IFrameElement, []),
+    created: dart.definiteFunctionType(html$.IFrameElement, [])
+  }),
+  fields: () => ({
+    [dartx.allowFullscreen]: core.bool,
+    [_get_contentWindow]: dart.dynamic,
+    [dartx.height]: core.String,
+    [dartx.name]: core.String,
+    [dartx.sandbox]: html$.DomSettableTokenList,
+    [dartx.src]: core.String,
+    [dartx.srcdoc]: core.String,
+    [dartx.width]: core.String
+  }),
+  getters: () => ({[dartx.contentWindow]: dart.definiteFunctionType(html$.WindowBase, [])})
+});
+dart.registerExtension(dart.global.HTMLIFrameElement, html$.IFrameElement);
+dart.defineExtensionNames([
+  'height',
+  'width'
+]);
+html$.ImageBitmap = class ImageBitmap extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+};
+dart.setSignature(html$.ImageBitmap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ImageBitmap, [])}),
+  fields: () => ({
+    [dartx.height]: core.int,
+    [dartx.width]: core.int
+  })
+});
+dart.registerExtension(dart.global.ImageBitmap, html$.ImageBitmap);
+dart.defineExtensionNames([
+  'data',
+  'height',
+  'width'
+]);
+html$.ImageData = class ImageData extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(data_OR_sw, sh_OR_sw, sh) {
+    if (sh === void 0) sh = null;
+    if (typeof sh_OR_sw == 'number' && typeof data_OR_sw == 'number' && sh == null) {
+      return html$.ImageData._create_1(data_OR_sw, sh_OR_sw);
+    }
+    if (typeof sh_OR_sw == 'number' && typed_data.Uint8ClampedList.is(data_OR_sw) && sh == null) {
+      return html$.ImageData._create_2(data_OR_sw, sh_OR_sw);
+    }
+    if (typeof sh == 'number' && typeof sh_OR_sw == 'number' && typed_data.Uint8ClampedList.is(data_OR_sw)) {
+      return html$.ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1(data_OR_sw, sh_OR_sw) {
+    return new self.ImageData(data_OR_sw, sh_OR_sw);
+  }
+  static _create_2(data_OR_sw, sh_OR_sw) {
+    return new self.ImageData(data_OR_sw, sh_OR_sw);
+  }
+  static _create_3(data_OR_sw, sh_OR_sw, sh) {
+    return new self.ImageData(data_OR_sw, sh_OR_sw, sh);
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+};
+dart.setSignature(html$.ImageData, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ImageData, []),
+    new: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, core.int], [core.int])
+  }),
+  fields: () => ({
+    [dartx.data]: typed_data.Uint8ClampedList,
+    [dartx.height]: core.int,
+    [dartx.width]: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3']
+});
+dart.registerExtension(dart.global.ImageData, html$.ImageData);
+dart.defineExtensionNames([
+  'alt',
+  'complete',
+  'crossOrigin',
+  'currentSrc',
+  'height',
+  'isMap',
+  'naturalHeight',
+  'naturalWidth',
+  'sizes',
+  'src',
+  'srcset',
+  'useMap',
+  'width'
+]);
+html$.ImageElement = class ImageElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(opts) {
+    let src = opts && 'src' in opts ? opts.src : null;
+    let width = opts && 'width' in opts ? opts.width : null;
+    let height = opts && 'height' in opts ? opts.height : null;
+    let e = html$.ImageElement._check(html$.document[dartx.createElement]("img"));
+    if (src != null) e[dartx.src] = src;
+    if (width != null) e[dartx.width] = width;
+    if (height != null) e[dartx.height] = height;
+    return e;
+  }
+  created() {
+    this[dartx.alt] = null;
+    this[dartx.complete] = null;
+    this[dartx.crossOrigin] = null;
+    this[dartx.currentSrc] = null;
+    this[dartx.height] = null;
+    this[dartx.isMap] = null;
+    this[dartx.naturalHeight] = null;
+    this[dartx.naturalWidth] = null;
+    this[dartx.sizes] = null;
+    this[dartx.src] = null;
+    this[dartx.srcset] = null;
+    this[dartx.useMap] = null;
+    this[dartx.width] = null;
+    super.created();
+  }
+  get [dartx.alt]() {
+    return this.alt;
+  }
+  set [dartx.alt](value) {
+    this.alt = value;
+  }
+  get [dartx.complete]() {
+    return this.complete;
+  }
+  get [dartx.crossOrigin]() {
+    return this.crossOrigin;
+  }
+  set [dartx.crossOrigin](value) {
+    this.crossOrigin = value;
+  }
+  get [dartx.currentSrc]() {
+    return this.currentSrc;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.isMap]() {
+    return this.isMap;
+  }
+  set [dartx.isMap](value) {
+    this.isMap = value;
+  }
+  get [dartx.naturalHeight]() {
+    return this.naturalHeight;
+  }
+  get [dartx.naturalWidth]() {
+    return this.naturalWidth;
+  }
+  get [dartx.sizes]() {
+    return this.sizes;
+  }
+  set [dartx.sizes](value) {
+    this.sizes = value;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.srcset]() {
+    return this.srcset;
+  }
+  set [dartx.srcset](value) {
+    this.srcset = value;
+  }
+  get [dartx.useMap]() {
+    return this.useMap;
+  }
+  set [dartx.useMap](value) {
+    this.useMap = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+};
+dart.defineNamedConstructor(html$.ImageElement, 'created');
+html$.ImageElement[dart.implements] = () => [html$.CanvasImageSource];
+dart.setSignature(html$.ImageElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ImageElement, []),
+    new: dart.definiteFunctionType(html$.ImageElement, [], {src: core.String, width: core.int, height: core.int}),
+    created: dart.definiteFunctionType(html$.ImageElement, [])
+  }),
+  fields: () => ({
+    [dartx.alt]: core.String,
+    [dartx.complete]: core.bool,
+    [dartx.crossOrigin]: core.String,
+    [dartx.currentSrc]: core.String,
+    [dartx.height]: core.int,
+    [dartx.isMap]: core.bool,
+    [dartx.naturalHeight]: core.int,
+    [dartx.naturalWidth]: core.int,
+    [dartx.sizes]: core.String,
+    [dartx.src]: core.String,
+    [dartx.srcset]: core.String,
+    [dartx.useMap]: core.String,
+    [dartx.width]: core.int
+  })
+});
+dart.registerExtension(dart.global.HTMLImageElement, html$.ImageElement);
+dart.defineExtensionNames([
+  'inspect'
+]);
+html$.InjectedScriptHost = class InjectedScriptHost extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.inspect](...args) {
+    return this.inspect.apply(this, args);
+  }
+};
+dart.setSignature(html$.InjectedScriptHost, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.InjectedScriptHost, [])}),
+  methods: () => ({[dartx.inspect]: dart.definiteFunctionType(dart.void, [core.Object, core.Object])})
+});
+dart.registerExtension(dart.global.InjectedScriptHost, html$.InjectedScriptHost);
+dart.defineExtensionNames([
+  'firesTouchEvents'
+]);
+html$.InputDevice = class InputDevice extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(deviceInitDict) {
+    if (deviceInitDict === void 0) deviceInitDict = null;
+    if (deviceInitDict != null) {
+      let deviceInitDict_1 = html_common.convertDartToNative_Dictionary(deviceInitDict);
+      return html$.InputDevice._create_1(deviceInitDict_1);
+    }
+    return html$.InputDevice._create_2();
+  }
+  static _create_1(deviceInitDict) {
+    return new self.InputDevice(deviceInitDict);
+  }
+  static _create_2() {
+    return new self.InputDevice();
+  }
+  get [dartx.firesTouchEvents]() {
+    return this.firesTouchEvents;
+  }
+};
+dart.setSignature(html$.InputDevice, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.InputDevice, []),
+    new: dart.definiteFunctionType(html$.InputDevice, [], [core.Map])
+  }),
+  fields: () => ({[dartx.firesTouchEvents]: core.bool}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.InputDevice, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.InputDevice, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.InputDevice, html$.InputDevice);
+const _get_valueAsDate = Symbol('_get_valueAsDate');
+const _set_valueAsDate = Symbol('_set_valueAsDate');
+dart.defineExtensionNames([
+  'valueAsDate',
+  'valueAsDate',
+  'checkValidity',
+  'reportValidity',
+  'select',
+  'setCustomValidity',
+  'setRangeText',
+  'setSelectionRange',
+  'stepDown',
+  'stepUp',
+  'accept',
+  'alt',
+  'autocapitalize',
+  'autocomplete',
+  'autofocus',
+  'capture',
+  'checked',
+  'defaultChecked',
+  'defaultValue',
+  'dirName',
+  'disabled',
+  'files',
+  'form',
+  'formAction',
+  'formEnctype',
+  'formMethod',
+  'formNoValidate',
+  'formTarget',
+  'height',
+  'incremental',
+  'indeterminate',
+  'inputMode',
+  'labels',
+  'list',
+  'max',
+  'maxLength',
+  'min',
+  'minLength',
+  'multiple',
+  'name',
+  'pattern',
+  'placeholder',
+  'readOnly',
+  'required',
+  'selectionDirection',
+  'selectionEnd',
+  'selectionStart',
+  'size',
+  'src',
+  'step',
+  'type',
+  'validationMessage',
+  'validity',
+  'value',
+  'valueAsNumber',
+  'entries',
+  'directory',
+  'width',
+  'willValidate'
+]);
+html$.InputElement = class InputElement extends html$.HtmlElement {
+  static new(opts) {
+    let type = opts && 'type' in opts ? opts.type : null;
+    let e = html$.InputElement._check(html$.document[dartx.createElement]("input"));
+    if (type != null) {
+      try {
+        e[dartx.type] = type;
+      } catch (_) {
+      }
+
+    }
+    return e;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.accept] = null;
+    this[dartx.alt] = null;
+    this[dartx.autocapitalize] = null;
+    this[dartx.autocomplete] = null;
+    this[dartx.autofocus] = null;
+    this[dartx.capture] = null;
+    this[dartx.checked] = null;
+    this[dartx.defaultChecked] = null;
+    this[dartx.defaultValue] = null;
+    this[dartx.dirName] = null;
+    this[dartx.disabled] = null;
+    this[dartx.files] = null;
+    this[dartx.form] = null;
+    this[dartx.formAction] = null;
+    this[dartx.formEnctype] = null;
+    this[dartx.formMethod] = null;
+    this[dartx.formNoValidate] = null;
+    this[dartx.formTarget] = null;
+    this[dartx.height] = null;
+    this[dartx.incremental] = null;
+    this[dartx.indeterminate] = null;
+    this[dartx.inputMode] = null;
+    this[dartx.labels] = null;
+    this[dartx.list] = null;
+    this[dartx.max] = null;
+    this[dartx.maxLength] = null;
+    this[dartx.min] = null;
+    this[dartx.minLength] = null;
+    this[dartx.multiple] = null;
+    this[dartx.name] = null;
+    this[dartx.pattern] = null;
+    this[dartx.placeholder] = null;
+    this[dartx.readOnly] = null;
+    this[dartx.required] = null;
+    this[dartx.selectionDirection] = null;
+    this[dartx.selectionEnd] = null;
+    this[dartx.selectionStart] = null;
+    this[dartx.size] = null;
+    this[dartx.src] = null;
+    this[dartx.step] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.value] = null;
+    this[_get_valueAsDate] = null;
+    this[dartx.valueAsNumber] = null;
+    this[dartx.entries] = null;
+    this[dartx.directory] = null;
+    this[dartx.width] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  get [dartx.accept]() {
+    return this.accept;
+  }
+  set [dartx.accept](value) {
+    this.accept = value;
+  }
+  get [dartx.alt]() {
+    return this.alt;
+  }
+  set [dartx.alt](value) {
+    this.alt = value;
+  }
+  get [dartx.autocapitalize]() {
+    return this.autocapitalize;
+  }
+  set [dartx.autocapitalize](value) {
+    this.autocapitalize = value;
+  }
+  get [dartx.autocomplete]() {
+    return this.autocomplete;
+  }
+  set [dartx.autocomplete](value) {
+    this.autocomplete = value;
+  }
+  get [dartx.autofocus]() {
+    return this.autofocus;
+  }
+  set [dartx.autofocus](value) {
+    this.autofocus = value;
+  }
+  get [dartx.capture]() {
+    return this.capture;
+  }
+  set [dartx.capture](value) {
+    this.capture = value;
+  }
+  get [dartx.checked]() {
+    return this.checked;
+  }
+  set [dartx.checked](value) {
+    this.checked = value;
+  }
+  get [dartx.defaultChecked]() {
+    return this.defaultChecked;
+  }
+  set [dartx.defaultChecked](value) {
+    this.defaultChecked = value;
+  }
+  get [dartx.defaultValue]() {
+    return this.defaultValue;
+  }
+  set [dartx.defaultValue](value) {
+    this.defaultValue = value;
+  }
+  get [dartx.dirName]() {
+    return this.dirName;
+  }
+  set [dartx.dirName](value) {
+    this.dirName = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.files]() {
+    return this.files;
+  }
+  set [dartx.files](value) {
+    this.files = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.formAction]() {
+    return this.formAction;
+  }
+  set [dartx.formAction](value) {
+    this.formAction = value;
+  }
+  get [dartx.formEnctype]() {
+    return this.formEnctype;
+  }
+  set [dartx.formEnctype](value) {
+    this.formEnctype = value;
+  }
+  get [dartx.formMethod]() {
+    return this.formMethod;
+  }
+  set [dartx.formMethod](value) {
+    this.formMethod = value;
+  }
+  get [dartx.formNoValidate]() {
+    return this.formNoValidate;
+  }
+  set [dartx.formNoValidate](value) {
+    this.formNoValidate = value;
+  }
+  get [dartx.formTarget]() {
+    return this.formTarget;
+  }
+  set [dartx.formTarget](value) {
+    this.formTarget = value;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.incremental]() {
+    return this.incremental;
+  }
+  set [dartx.incremental](value) {
+    this.incremental = value;
+  }
+  get [dartx.indeterminate]() {
+    return this.indeterminate;
+  }
+  set [dartx.indeterminate](value) {
+    this.indeterminate = value;
+  }
+  get [dartx.inputMode]() {
+    return this.inputMode;
+  }
+  set [dartx.inputMode](value) {
+    this.inputMode = value;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.list]() {
+    return this.list;
+  }
+  get [dartx.max]() {
+    return this.max;
+  }
+  set [dartx.max](value) {
+    this.max = value;
+  }
+  get [dartx.maxLength]() {
+    return this.maxLength;
+  }
+  set [dartx.maxLength](value) {
+    this.maxLength = value;
+  }
+  get [dartx.min]() {
+    return this.min;
+  }
+  set [dartx.min](value) {
+    this.min = value;
+  }
+  get [dartx.minLength]() {
+    return this.minLength;
+  }
+  set [dartx.minLength](value) {
+    this.minLength = value;
+  }
+  get [dartx.multiple]() {
+    return this.multiple;
+  }
+  set [dartx.multiple](value) {
+    this.multiple = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.pattern]() {
+    return this.pattern;
+  }
+  set [dartx.pattern](value) {
+    this.pattern = value;
+  }
+  get [dartx.placeholder]() {
+    return this.placeholder;
+  }
+  set [dartx.placeholder](value) {
+    this.placeholder = value;
+  }
+  get [dartx.readOnly]() {
+    return this.readOnly;
+  }
+  set [dartx.readOnly](value) {
+    this.readOnly = value;
+  }
+  get [dartx.required]() {
+    return this.required;
+  }
+  set [dartx.required](value) {
+    this.required = value;
+  }
+  get [dartx.selectionDirection]() {
+    return this.selectionDirection;
+  }
+  set [dartx.selectionDirection](value) {
+    this.selectionDirection = value;
+  }
+  get [dartx.selectionEnd]() {
+    return this.selectionEnd;
+  }
+  set [dartx.selectionEnd](value) {
+    this.selectionEnd = value;
+  }
+  get [dartx.selectionStart]() {
+    return this.selectionStart;
+  }
+  set [dartx.selectionStart](value) {
+    this.selectionStart = value;
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+  set [dartx.size](value) {
+    this.size = value;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.step]() {
+    return this.step;
+  }
+  set [dartx.step](value) {
+    this.step = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.valueAsDate]() {
+    return html_common.convertNativeToDart_DateTime(this[_get_valueAsDate]);
+  }
+  get [_get_valueAsDate]() {
+    return this.valueAsDate;
+  }
+  set [dartx.valueAsDate](value) {
+    this[_set_valueAsDate] = html_common.convertDartToNative_DateTime(value);
+  }
+  set [_set_valueAsDate](value) {
+    this.valueAsDate = value;
+  }
+  get [dartx.valueAsNumber]() {
+    return this.valueAsNumber;
+  }
+  set [dartx.valueAsNumber](value) {
+    this.valueAsNumber = value;
+  }
+  get [dartx.entries]() {
+    return this.webkitEntries;
+  }
+  get [dartx.directory]() {
+    return this.webkitdirectory;
+  }
+  set [dartx.directory](value) {
+    this.webkitdirectory = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.select](...args) {
+    return this.select.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+  [dartx.setRangeText](...args) {
+    return this.setRangeText.apply(this, args);
+  }
+  [dartx.setSelectionRange](...args) {
+    return this.setSelectionRange.apply(this, args);
+  }
+  [dartx.stepDown](...args) {
+    return this.stepDown.apply(this, args);
+  }
+  [dartx.stepUp](...args) {
+    return this.stepUp.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.InputElement, 'created');
+html$.InputElement[dart.implements] = () => [html$.HiddenInputElement, html$.SearchInputElement, html$.TextInputElement, html$.UrlInputElement, html$.TelephoneInputElement, html$.EmailInputElement, html$.PasswordInputElement, html$.DateInputElement, html$.MonthInputElement, html$.WeekInputElement, html$.TimeInputElement, html$.LocalDateTimeInputElement, html$.NumberInputElement, html$.RangeInputElement, html$.CheckboxInputElement, html$.RadioButtonInputElement, html$.FileUploadInputElement, html$.SubmitButtonInputElement, html$.ImageButtonInputElement, html$.ResetButtonInputElement, html$.ButtonInputElement];
+dart.setSignature(html$.InputElement, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.InputElement, [], {type: core.String}),
+    _: dart.definiteFunctionType(html$.InputElement, []),
+    created: dart.definiteFunctionType(html$.InputElement, [])
+  }),
+  fields: () => ({
+    [dartx.accept]: core.String,
+    [dartx.alt]: core.String,
+    [dartx.autocapitalize]: core.String,
+    [dartx.autocomplete]: core.String,
+    [dartx.autofocus]: core.bool,
+    [dartx.capture]: core.bool,
+    [dartx.checked]: core.bool,
+    [dartx.defaultChecked]: core.bool,
+    [dartx.defaultValue]: core.String,
+    [dartx.dirName]: core.String,
+    [dartx.disabled]: core.bool,
+    [dartx.files]: ListOfFile(),
+    [dartx.form]: html$.FormElement,
+    [dartx.formAction]: core.String,
+    [dartx.formEnctype]: core.String,
+    [dartx.formMethod]: core.String,
+    [dartx.formNoValidate]: core.bool,
+    [dartx.formTarget]: core.String,
+    [dartx.height]: core.int,
+    [dartx.incremental]: core.bool,
+    [dartx.indeterminate]: core.bool,
+    [dartx.inputMode]: core.String,
+    [dartx.labels]: ListOfNode(),
+    [dartx.list]: html$.HtmlElement,
+    [dartx.max]: core.String,
+    [dartx.maxLength]: core.int,
+    [dartx.min]: core.String,
+    [dartx.minLength]: core.int,
+    [dartx.multiple]: core.bool,
+    [dartx.name]: core.String,
+    [dartx.pattern]: core.String,
+    [dartx.placeholder]: core.String,
+    [dartx.readOnly]: core.bool,
+    [dartx.required]: core.bool,
+    [dartx.selectionDirection]: core.String,
+    [dartx.selectionEnd]: core.int,
+    [dartx.selectionStart]: core.int,
+    [dartx.size]: core.int,
+    [dartx.src]: core.String,
+    [dartx.step]: core.String,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.value]: core.String,
+    [_get_valueAsDate]: dart.dynamic,
+    [dartx.valueAsNumber]: core.num,
+    [dartx.entries]: ListOfEntry(),
+    [dartx.directory]: core.bool,
+    [dartx.width]: core.int,
+    [dartx.willValidate]: core.bool
+  }),
+  getters: () => ({[dartx.valueAsDate]: dart.definiteFunctionType(core.DateTime, [])}),
+  setters: () => ({
+    [dartx.valueAsDate]: dart.definiteFunctionType(dart.void, [core.DateTime]),
+    [_set_valueAsDate]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  methods: () => ({
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.select]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.setRangeText]: dart.definiteFunctionType(dart.void, [core.String], {start: core.int, end: core.int, selectionMode: core.String}),
+    [dartx.setSelectionRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.String]),
+    [dartx.stepDown]: dart.definiteFunctionType(dart.void, [], [core.int]),
+    [dartx.stepUp]: dart.definiteFunctionType(dart.void, [], [core.int])
+  })
+});
+dart.registerExtension(dart.global.HTMLInputElement, html$.InputElement);
+dart.defineExtensionNames([
+  'autofocus',
+  'disabled',
+  'incremental',
+  'indeterminate',
+  'name',
+  'value'
+]);
+html$.InputElementBase = class InputElementBase extends core.Object {
+  new() {
+    this[autofocus] = null;
+    this[disabled] = null;
+    this[incremental] = null;
+    this[indeterminate] = null;
+    this[name] = null;
+    this[value$] = null;
+  }
+  get autofocus() {
+    return this[autofocus];
+  }
+  set autofocus(value) {
+    this[autofocus] = value;
+  }
+  get disabled() {
+    return this[disabled];
+  }
+  set disabled(value) {
+    this[disabled] = value;
+  }
+  get incremental() {
+    return this[incremental];
+  }
+  set incremental(value) {
+    this[incremental] = value;
+  }
+  get indeterminate() {
+    return this[indeterminate];
+  }
+  set indeterminate(value) {
+    this[indeterminate] = value;
+  }
+  get name() {
+    return this[name];
+  }
+  set name(value) {
+    this[name] = value;
+  }
+  get value() {
+    return this[value$];
+  }
+  set value(value) {
+    this[value$] = value;
+  }
+};
+const autofocus = Symbol(html$.InputElementBase.name + "." + 'autofocus'.toString());
+const disabled = Symbol(html$.InputElementBase.name + "." + 'disabled'.toString());
+const incremental = Symbol(html$.InputElementBase.name + "." + 'incremental'.toString());
+const indeterminate = Symbol(html$.InputElementBase.name + "." + 'indeterminate'.toString());
+const name = Symbol(html$.InputElementBase.name + "." + 'name'.toString());
+const value$ = Symbol(html$.InputElementBase.name + "." + 'value'.toString());
+html$.InputElementBase[dart.implements] = () => [html$.Element];
+dart.setSignature(html$.InputElementBase, {
+  fields: () => ({
+    autofocus: core.bool,
+    disabled: core.bool,
+    incremental: core.bool,
+    indeterminate: core.bool,
+    name: core.String,
+    value: core.String
+  })
+});
+dart.defineExtensionMembers(html$.InputElementBase, [
+  'autofocus',
+  'autofocus',
+  'disabled',
+  'disabled',
+  'incremental',
+  'incremental',
+  'indeterminate',
+  'indeterminate',
+  'name',
+  'name',
+  'value',
+  'value'
+]);
+html$.HiddenInputElement = class HiddenInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'hidden'});
+  }
+};
+html$.HiddenInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.HiddenInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.HiddenInputElement, [])})
+});
+dart.defineExtensionNames([
+  'autocomplete',
+  'maxLength',
+  'pattern',
+  'placeholder',
+  'readOnly',
+  'required',
+  'size',
+  'selectionDirection',
+  'selectionEnd',
+  'selectionStart'
+]);
+html$.TextInputElementBase = class TextInputElementBase extends core.Object {
+  new() {
+    this[autocomplete] = null;
+    this[maxLength] = null;
+    this[pattern] = null;
+    this[placeholder] = null;
+    this[readOnly] = null;
+    this[required] = null;
+    this[size] = null;
+    this[selectionDirection] = null;
+    this[selectionEnd] = null;
+    this[selectionStart] = null;
+  }
+  get autocomplete() {
+    return this[autocomplete];
+  }
+  set autocomplete(value) {
+    this[autocomplete] = value;
+  }
+  get maxLength() {
+    return this[maxLength];
+  }
+  set maxLength(value) {
+    this[maxLength] = value;
+  }
+  get pattern() {
+    return this[pattern];
+  }
+  set pattern(value) {
+    this[pattern] = value;
+  }
+  get placeholder() {
+    return this[placeholder];
+  }
+  set placeholder(value) {
+    this[placeholder] = value;
+  }
+  get readOnly() {
+    return this[readOnly];
+  }
+  set readOnly(value) {
+    this[readOnly] = value;
+  }
+  get required() {
+    return this[required];
+  }
+  set required(value) {
+    this[required] = value;
+  }
+  get size() {
+    return this[size];
+  }
+  set size(value) {
+    this[size] = value;
+  }
+  get selectionDirection() {
+    return this[selectionDirection];
+  }
+  set selectionDirection(value) {
+    this[selectionDirection] = value;
+  }
+  get selectionEnd() {
+    return this[selectionEnd];
+  }
+  set selectionEnd(value) {
+    this[selectionEnd] = value;
+  }
+  get selectionStart() {
+    return this[selectionStart];
+  }
+  set selectionStart(value) {
+    this[selectionStart] = value;
+  }
+};
+const autocomplete = Symbol(html$.TextInputElementBase.name + "." + 'autocomplete'.toString());
+const maxLength = Symbol(html$.TextInputElementBase.name + "." + 'maxLength'.toString());
+const pattern = Symbol(html$.TextInputElementBase.name + "." + 'pattern'.toString());
+const placeholder = Symbol(html$.TextInputElementBase.name + "." + 'placeholder'.toString());
+const readOnly = Symbol(html$.TextInputElementBase.name + "." + 'readOnly'.toString());
+const required = Symbol(html$.TextInputElementBase.name + "." + 'required'.toString());
+const size = Symbol(html$.TextInputElementBase.name + "." + 'size'.toString());
+const selectionDirection = Symbol(html$.TextInputElementBase.name + "." + 'selectionDirection'.toString());
+const selectionEnd = Symbol(html$.TextInputElementBase.name + "." + 'selectionEnd'.toString());
+const selectionStart = Symbol(html$.TextInputElementBase.name + "." + 'selectionStart'.toString());
+html$.TextInputElementBase[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.TextInputElementBase, {
+  fields: () => ({
+    autocomplete: core.String,
+    maxLength: core.int,
+    pattern: core.String,
+    placeholder: core.String,
+    readOnly: core.bool,
+    required: core.bool,
+    size: core.int,
+    selectionDirection: core.String,
+    selectionEnd: core.int,
+    selectionStart: core.int
+  })
+});
+dart.defineExtensionMembers(html$.TextInputElementBase, [
+  'autocomplete',
+  'autocomplete',
+  'maxLength',
+  'maxLength',
+  'pattern',
+  'pattern',
+  'placeholder',
+  'placeholder',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required',
+  'size',
+  'size',
+  'selectionDirection',
+  'selectionDirection',
+  'selectionEnd',
+  'selectionEnd',
+  'selectionStart',
+  'selectionStart'
+]);
+dart.defineExtensionNames([
+  'dirName'
+]);
+html$.SearchInputElement = class SearchInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'search'});
+  }
+  get dirName() {
+    return this[dirName];
+  }
+  set dirName(value) {
+    this[dirName] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'search'})[dartx.type] == 'search';
+  }
+};
+const dirName = Symbol(html$.SearchInputElement.name + "." + 'dirName'.toString());
+html$.SearchInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.SearchInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.SearchInputElement, [])}),
+  fields: () => ({dirName: core.String}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.SearchInputElement, ['dirName', 'dirName']);
+dart.defineExtensionNames([
+  'dirName'
+]);
+html$.TextInputElement = class TextInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'text'});
+  }
+  get dirName() {
+    return this[dirName$];
+  }
+  set dirName(value) {
+    this[dirName$] = value;
+  }
+};
+const dirName$ = Symbol(html$.TextInputElement.name + "." + 'dirName'.toString());
+html$.TextInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.TextInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.TextInputElement, [])}),
+  fields: () => ({dirName: core.String})
+});
+dart.defineExtensionMembers(html$.TextInputElement, ['dirName', 'dirName']);
+html$.UrlInputElement = class UrlInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'url'});
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'url'})[dartx.type] == 'url';
+  }
+};
+html$.UrlInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.UrlInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.UrlInputElement, [])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+html$.TelephoneInputElement = class TelephoneInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'tel'});
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'tel'})[dartx.type] == 'tel';
+  }
+};
+html$.TelephoneInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.TelephoneInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.TelephoneInputElement, [])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionNames([
+  'autocomplete',
+  'autofocus',
+  'maxLength',
+  'multiple',
+  'pattern',
+  'placeholder',
+  'readOnly',
+  'required',
+  'size'
+]);
+html$.EmailInputElement = class EmailInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'email'});
+  }
+  get autocomplete() {
+    return this[autocomplete$];
+  }
+  set autocomplete(value) {
+    this[autocomplete$] = value;
+  }
+  get autofocus() {
+    return this[autofocus$];
+  }
+  set autofocus(value) {
+    this[autofocus$] = value;
+  }
+  get maxLength() {
+    return this[maxLength$];
+  }
+  set maxLength(value) {
+    this[maxLength$] = value;
+  }
+  get multiple() {
+    return this[multiple];
+  }
+  set multiple(value) {
+    this[multiple] = value;
+  }
+  get pattern() {
+    return this[pattern$];
+  }
+  set pattern(value) {
+    this[pattern$] = value;
+  }
+  get placeholder() {
+    return this[placeholder$];
+  }
+  set placeholder(value) {
+    this[placeholder$] = value;
+  }
+  get readOnly() {
+    return this[readOnly$];
+  }
+  set readOnly(value) {
+    this[readOnly$] = value;
+  }
+  get required() {
+    return this[required$];
+  }
+  set required(value) {
+    this[required$] = value;
+  }
+  get size() {
+    return this[size$];
+  }
+  set size(value) {
+    this[size$] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'email'})[dartx.type] == 'email';
+  }
+};
+const autocomplete$ = Symbol(html$.EmailInputElement.name + "." + 'autocomplete'.toString());
+const autofocus$ = Symbol(html$.EmailInputElement.name + "." + 'autofocus'.toString());
+const maxLength$ = Symbol(html$.EmailInputElement.name + "." + 'maxLength'.toString());
+const multiple = Symbol(html$.EmailInputElement.name + "." + 'multiple'.toString());
+const pattern$ = Symbol(html$.EmailInputElement.name + "." + 'pattern'.toString());
+const placeholder$ = Symbol(html$.EmailInputElement.name + "." + 'placeholder'.toString());
+const readOnly$ = Symbol(html$.EmailInputElement.name + "." + 'readOnly'.toString());
+const required$ = Symbol(html$.EmailInputElement.name + "." + 'required'.toString());
+const size$ = Symbol(html$.EmailInputElement.name + "." + 'size'.toString());
+html$.EmailInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.EmailInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.EmailInputElement, [])}),
+  fields: () => ({
+    autocomplete: core.String,
+    autofocus: core.bool,
+    maxLength: core.int,
+    multiple: core.bool,
+    pattern: core.String,
+    placeholder: core.String,
+    readOnly: core.bool,
+    required: core.bool,
+    size: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.EmailInputElement, [
+  'autocomplete',
+  'autocomplete',
+  'autofocus',
+  'autofocus',
+  'maxLength',
+  'maxLength',
+  'multiple',
+  'multiple',
+  'pattern',
+  'pattern',
+  'placeholder',
+  'placeholder',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required',
+  'size',
+  'size'
+]);
+html$.PasswordInputElement = class PasswordInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'password'});
+  }
+};
+html$.PasswordInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.PasswordInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.PasswordInputElement, [])})
+});
+dart.defineExtensionNames([
+  'max',
+  'min',
+  'step',
+  'valueAsNumber'
+]);
+html$.RangeInputElementBase = class RangeInputElementBase extends core.Object {
+  new() {
+    this[max] = null;
+    this[min] = null;
+    this[step] = null;
+    this[valueAsNumber] = null;
+  }
+  get max() {
+    return this[max];
+  }
+  set max(value) {
+    this[max] = value;
+  }
+  get min() {
+    return this[min];
+  }
+  set min(value) {
+    this[min] = value;
+  }
+  get step() {
+    return this[step];
+  }
+  set step(value) {
+    this[step] = value;
+  }
+  get valueAsNumber() {
+    return this[valueAsNumber];
+  }
+  set valueAsNumber(value) {
+    this[valueAsNumber] = value;
+  }
+};
+const max = Symbol(html$.RangeInputElementBase.name + "." + 'max'.toString());
+const min = Symbol(html$.RangeInputElementBase.name + "." + 'min'.toString());
+const step = Symbol(html$.RangeInputElementBase.name + "." + 'step'.toString());
+const valueAsNumber = Symbol(html$.RangeInputElementBase.name + "." + 'valueAsNumber'.toString());
+html$.RangeInputElementBase[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.RangeInputElementBase, {
+  fields: () => ({
+    max: core.String,
+    min: core.String,
+    step: core.String,
+    valueAsNumber: core.num
+  })
+});
+dart.defineExtensionMembers(html$.RangeInputElementBase, [
+  'max',
+  'max',
+  'min',
+  'min',
+  'step',
+  'step',
+  'valueAsNumber',
+  'valueAsNumber'
+]);
+dart.defineExtensionNames([
+  'valueAsDate',
+  'readOnly',
+  'required'
+]);
+html$.DateInputElement = class DateInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'date'});
+  }
+  get valueAsDate() {
+    return this[valueAsDate];
+  }
+  set valueAsDate(value) {
+    this[valueAsDate] = value;
+  }
+  get readOnly() {
+    return this[readOnly$0];
+  }
+  set readOnly(value) {
+    this[readOnly$0] = value;
+  }
+  get required() {
+    return this[required$0];
+  }
+  set required(value) {
+    this[required$0] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'date'})[dartx.type] == 'date';
+  }
+};
+const valueAsDate = Symbol(html$.DateInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$0 = Symbol(html$.DateInputElement.name + "." + 'readOnly'.toString());
+const required$0 = Symbol(html$.DateInputElement.name + "." + 'required'.toString());
+html$.DateInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.DateInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.DateInputElement, [])}),
+  fields: () => ({
+    valueAsDate: core.DateTime,
+    readOnly: core.bool,
+    required: core.bool
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.DateInputElement, [
+  'valueAsDate',
+  'valueAsDate',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required'
+]);
+dart.defineExtensionNames([
+  'valueAsDate',
+  'readOnly',
+  'required'
+]);
+html$.MonthInputElement = class MonthInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'month'});
+  }
+  get valueAsDate() {
+    return this[valueAsDate$];
+  }
+  set valueAsDate(value) {
+    this[valueAsDate$] = value;
+  }
+  get readOnly() {
+    return this[readOnly$1];
+  }
+  set readOnly(value) {
+    this[readOnly$1] = value;
+  }
+  get required() {
+    return this[required$1];
+  }
+  set required(value) {
+    this[required$1] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'month'})[dartx.type] == 'month';
+  }
+};
+const valueAsDate$ = Symbol(html$.MonthInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$1 = Symbol(html$.MonthInputElement.name + "." + 'readOnly'.toString());
+const required$1 = Symbol(html$.MonthInputElement.name + "." + 'required'.toString());
+html$.MonthInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.MonthInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.MonthInputElement, [])}),
+  fields: () => ({
+    valueAsDate: core.DateTime,
+    readOnly: core.bool,
+    required: core.bool
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.MonthInputElement, [
+  'valueAsDate',
+  'valueAsDate',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required'
+]);
+dart.defineExtensionNames([
+  'valueAsDate',
+  'readOnly',
+  'required'
+]);
+html$.WeekInputElement = class WeekInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'week'});
+  }
+  get valueAsDate() {
+    return this[valueAsDate$0];
+  }
+  set valueAsDate(value) {
+    this[valueAsDate$0] = value;
+  }
+  get readOnly() {
+    return this[readOnly$2];
+  }
+  set readOnly(value) {
+    this[readOnly$2] = value;
+  }
+  get required() {
+    return this[required$2];
+  }
+  set required(value) {
+    this[required$2] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'week'})[dartx.type] == 'week';
+  }
+};
+const valueAsDate$0 = Symbol(html$.WeekInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$2 = Symbol(html$.WeekInputElement.name + "." + 'readOnly'.toString());
+const required$2 = Symbol(html$.WeekInputElement.name + "." + 'required'.toString());
+html$.WeekInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.WeekInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.WeekInputElement, [])}),
+  fields: () => ({
+    valueAsDate: core.DateTime,
+    readOnly: core.bool,
+    required: core.bool
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.WeekInputElement, [
+  'valueAsDate',
+  'valueAsDate',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required'
+]);
+dart.defineExtensionNames([
+  'valueAsDate',
+  'readOnly',
+  'required'
+]);
+html$.TimeInputElement = class TimeInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'time'});
+  }
+  get valueAsDate() {
+    return this[valueAsDate$1];
+  }
+  set valueAsDate(value) {
+    this[valueAsDate$1] = value;
+  }
+  get readOnly() {
+    return this[readOnly$3];
+  }
+  set readOnly(value) {
+    this[readOnly$3] = value;
+  }
+  get required() {
+    return this[required$3];
+  }
+  set required(value) {
+    this[required$3] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'time'})[dartx.type] == 'time';
+  }
+};
+const valueAsDate$1 = Symbol(html$.TimeInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$3 = Symbol(html$.TimeInputElement.name + "." + 'readOnly'.toString());
+const required$3 = Symbol(html$.TimeInputElement.name + "." + 'required'.toString());
+html$.TimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.TimeInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.TimeInputElement, [])}),
+  fields: () => ({
+    valueAsDate: core.DateTime,
+    readOnly: core.bool,
+    required: core.bool
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.TimeInputElement, [
+  'valueAsDate',
+  'valueAsDate',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required'
+]);
+dart.defineExtensionNames([
+  'readOnly',
+  'required'
+]);
+html$.LocalDateTimeInputElement = class LocalDateTimeInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'datetime-local'});
+  }
+  get readOnly() {
+    return this[readOnly$4];
+  }
+  set readOnly(value) {
+    this[readOnly$4] = value;
+  }
+  get required() {
+    return this[required$4];
+  }
+  set required(value) {
+    this[required$4] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'datetime-local'})[dartx.type] == 'datetime-local';
+  }
+};
+const readOnly$4 = Symbol(html$.LocalDateTimeInputElement.name + "." + 'readOnly'.toString());
+const required$4 = Symbol(html$.LocalDateTimeInputElement.name + "." + 'required'.toString());
+html$.LocalDateTimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.LocalDateTimeInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.LocalDateTimeInputElement, [])}),
+  fields: () => ({
+    readOnly: core.bool,
+    required: core.bool
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.LocalDateTimeInputElement, ['readOnly', 'readOnly', 'required', 'required']);
+dart.defineExtensionNames([
+  'placeholder',
+  'readOnly',
+  'required'
+]);
+html$.NumberInputElement = class NumberInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'number'});
+  }
+  get placeholder() {
+    return this[placeholder$0];
+  }
+  set placeholder(value) {
+    this[placeholder$0] = value;
+  }
+  get readOnly() {
+    return this[readOnly$5];
+  }
+  set readOnly(value) {
+    this[readOnly$5] = value;
+  }
+  get required() {
+    return this[required$5];
+  }
+  set required(value) {
+    this[required$5] = value;
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'number'})[dartx.type] == 'number';
+  }
+};
+const placeholder$0 = Symbol(html$.NumberInputElement.name + "." + 'placeholder'.toString());
+const readOnly$5 = Symbol(html$.NumberInputElement.name + "." + 'readOnly'.toString());
+const required$5 = Symbol(html$.NumberInputElement.name + "." + 'required'.toString());
+html$.NumberInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.NumberInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.NumberInputElement, [])}),
+  fields: () => ({
+    placeholder: core.String,
+    readOnly: core.bool,
+    required: core.bool
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionMembers(html$.NumberInputElement, [
+  'placeholder',
+  'placeholder',
+  'readOnly',
+  'readOnly',
+  'required',
+  'required'
+]);
+html$.RangeInputElement = class RangeInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'range'});
+  }
+  static get supported() {
+    return html$.InputElement.new({type: 'range'})[dartx.type] == 'range';
+  }
+};
+html$.RangeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.RangeInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.RangeInputElement, [])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineExtensionNames([
+  'checked',
+  'required'
+]);
+html$.CheckboxInputElement = class CheckboxInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'checkbox'});
+  }
+  get checked() {
+    return this[checked];
+  }
+  set checked(value) {
+    this[checked] = value;
+  }
+  get required() {
+    return this[required$6];
+  }
+  set required(value) {
+    this[required$6] = value;
+  }
+};
+const checked = Symbol(html$.CheckboxInputElement.name + "." + 'checked'.toString());
+const required$6 = Symbol(html$.CheckboxInputElement.name + "." + 'required'.toString());
+html$.CheckboxInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.CheckboxInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.CheckboxInputElement, [])}),
+  fields: () => ({
+    checked: core.bool,
+    required: core.bool
+  })
+});
+dart.defineExtensionMembers(html$.CheckboxInputElement, ['checked', 'checked', 'required', 'required']);
+dart.defineExtensionNames([
+  'checked',
+  'required'
+]);
+html$.RadioButtonInputElement = class RadioButtonInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'radio'});
+  }
+  get checked() {
+    return this[checked$];
+  }
+  set checked(value) {
+    this[checked$] = value;
+  }
+  get required() {
+    return this[required$7];
+  }
+  set required(value) {
+    this[required$7] = value;
+  }
+};
+const checked$ = Symbol(html$.RadioButtonInputElement.name + "." + 'checked'.toString());
+const required$7 = Symbol(html$.RadioButtonInputElement.name + "." + 'required'.toString());
+html$.RadioButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.RadioButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.RadioButtonInputElement, [])}),
+  fields: () => ({
+    checked: core.bool,
+    required: core.bool
+  })
+});
+dart.defineExtensionMembers(html$.RadioButtonInputElement, ['checked', 'checked', 'required', 'required']);
+dart.defineExtensionNames([
+  'accept',
+  'multiple',
+  'required',
+  'files'
+]);
+html$.FileUploadInputElement = class FileUploadInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'file'});
+  }
+  get accept() {
+    return this[accept];
+  }
+  set accept(value) {
+    this[accept] = value;
+  }
+  get multiple() {
+    return this[multiple$];
+  }
+  set multiple(value) {
+    this[multiple$] = value;
+  }
+  get required() {
+    return this[required$8];
+  }
+  set required(value) {
+    this[required$8] = value;
+  }
+  get files() {
+    return this[files];
+  }
+  set files(value) {
+    this[files] = value;
+  }
+};
+const accept = Symbol(html$.FileUploadInputElement.name + "." + 'accept'.toString());
+const multiple$ = Symbol(html$.FileUploadInputElement.name + "." + 'multiple'.toString());
+const required$8 = Symbol(html$.FileUploadInputElement.name + "." + 'required'.toString());
+const files = Symbol(html$.FileUploadInputElement.name + "." + 'files'.toString());
+html$.FileUploadInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.FileUploadInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.FileUploadInputElement, [])}),
+  fields: () => ({
+    accept: core.String,
+    multiple: core.bool,
+    required: core.bool,
+    files: ListOfFile()
+  })
+});
+dart.defineExtensionMembers(html$.FileUploadInputElement, [
+  'accept',
+  'accept',
+  'multiple',
+  'multiple',
+  'required',
+  'required',
+  'files',
+  'files'
+]);
+dart.defineExtensionNames([
+  'formAction',
+  'formEnctype',
+  'formMethod',
+  'formNoValidate',
+  'formTarget'
+]);
+html$.SubmitButtonInputElement = class SubmitButtonInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'submit'});
+  }
+  get formAction() {
+    return this[formAction];
+  }
+  set formAction(value) {
+    this[formAction] = value;
+  }
+  get formEnctype() {
+    return this[formEnctype];
+  }
+  set formEnctype(value) {
+    this[formEnctype] = value;
+  }
+  get formMethod() {
+    return this[formMethod];
+  }
+  set formMethod(value) {
+    this[formMethod] = value;
+  }
+  get formNoValidate() {
+    return this[formNoValidate];
+  }
+  set formNoValidate(value) {
+    this[formNoValidate] = value;
+  }
+  get formTarget() {
+    return this[formTarget];
+  }
+  set formTarget(value) {
+    this[formTarget] = value;
+  }
+};
+const formAction = Symbol(html$.SubmitButtonInputElement.name + "." + 'formAction'.toString());
+const formEnctype = Symbol(html$.SubmitButtonInputElement.name + "." + 'formEnctype'.toString());
+const formMethod = Symbol(html$.SubmitButtonInputElement.name + "." + 'formMethod'.toString());
+const formNoValidate = Symbol(html$.SubmitButtonInputElement.name + "." + 'formNoValidate'.toString());
+const formTarget = Symbol(html$.SubmitButtonInputElement.name + "." + 'formTarget'.toString());
+html$.SubmitButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.SubmitButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.SubmitButtonInputElement, [])}),
+  fields: () => ({
+    formAction: core.String,
+    formEnctype: core.String,
+    formMethod: core.String,
+    formNoValidate: core.bool,
+    formTarget: core.String
+  })
+});
+dart.defineExtensionMembers(html$.SubmitButtonInputElement, [
+  'formAction',
+  'formAction',
+  'formEnctype',
+  'formEnctype',
+  'formMethod',
+  'formMethod',
+  'formNoValidate',
+  'formNoValidate',
+  'formTarget',
+  'formTarget'
+]);
+dart.defineExtensionNames([
+  'alt',
+  'formAction',
+  'formEnctype',
+  'formMethod',
+  'formNoValidate',
+  'formTarget',
+  'height',
+  'src',
+  'width'
+]);
+html$.ImageButtonInputElement = class ImageButtonInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'image'});
+  }
+  get alt() {
+    return this[alt];
+  }
+  set alt(value) {
+    this[alt] = value;
+  }
+  get formAction() {
+    return this[formAction$];
+  }
+  set formAction(value) {
+    this[formAction$] = value;
+  }
+  get formEnctype() {
+    return this[formEnctype$];
+  }
+  set formEnctype(value) {
+    this[formEnctype$] = value;
+  }
+  get formMethod() {
+    return this[formMethod$];
+  }
+  set formMethod(value) {
+    this[formMethod$] = value;
+  }
+  get formNoValidate() {
+    return this[formNoValidate$];
+  }
+  set formNoValidate(value) {
+    this[formNoValidate$] = value;
+  }
+  get formTarget() {
+    return this[formTarget$];
+  }
+  set formTarget(value) {
+    this[formTarget$] = value;
+  }
+  get height() {
+    return this[height];
+  }
+  set height(value) {
+    this[height] = value;
+  }
+  get src() {
+    return this[src];
+  }
+  set src(value) {
+    this[src] = value;
+  }
+  get width() {
+    return this[width];
+  }
+  set width(value) {
+    this[width] = value;
+  }
+};
+const alt = Symbol(html$.ImageButtonInputElement.name + "." + 'alt'.toString());
+const formAction$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formAction'.toString());
+const formEnctype$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formEnctype'.toString());
+const formMethod$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formMethod'.toString());
+const formNoValidate$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formNoValidate'.toString());
+const formTarget$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formTarget'.toString());
+const height = Symbol(html$.ImageButtonInputElement.name + "." + 'height'.toString());
+const src = Symbol(html$.ImageButtonInputElement.name + "." + 'src'.toString());
+const width = Symbol(html$.ImageButtonInputElement.name + "." + 'width'.toString());
+html$.ImageButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.ImageButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ImageButtonInputElement, [])}),
+  fields: () => ({
+    alt: core.String,
+    formAction: core.String,
+    formEnctype: core.String,
+    formMethod: core.String,
+    formNoValidate: core.bool,
+    formTarget: core.String,
+    height: core.int,
+    src: core.String,
+    width: core.int
+  })
+});
+dart.defineExtensionMembers(html$.ImageButtonInputElement, [
+  'alt',
+  'alt',
+  'formAction',
+  'formAction',
+  'formEnctype',
+  'formEnctype',
+  'formMethod',
+  'formMethod',
+  'formNoValidate',
+  'formNoValidate',
+  'formTarget',
+  'formTarget',
+  'height',
+  'height',
+  'src',
+  'src',
+  'width',
+  'width'
+]);
+html$.ResetButtonInputElement = class ResetButtonInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'reset'});
+  }
+};
+html$.ResetButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.ResetButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ResetButtonInputElement, [])})
+});
+html$.ButtonInputElement = class ButtonInputElement extends core.Object {
+  static new() {
+    return html$.InputElement.new({type: 'button'});
+  }
+};
+html$.ButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.ButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ButtonInputElement, [])})
+});
+const _initKeyboardEvent = Symbol('_initKeyboardEvent');
+const _keyIdentifier = Symbol('_keyIdentifier');
+dart.defineExtensionNames([
+  'keyCode',
+  'charCode',
+  'which',
+  'getModifierState',
+  'altKey',
+  'code',
+  'ctrlKey',
+  'key',
+  'keyLocation',
+  'location',
+  'metaKey',
+  'repeat',
+  'shiftKey'
+]);
+html$.KeyboardEvent = class KeyboardEvent extends html$.UIEvent {
+  static new(type, opts) {
+    let view = opts && 'view' in opts ? opts.view : null;
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let keyLocation = opts && 'keyLocation' in opts ? opts.keyLocation : 1;
+    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
+    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
+    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
+    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
+    if (view == null) {
+      view = html$.window;
+    }
+    let e = html$.KeyboardEvent._check(html$.document[_createEvent]("KeyboardEvent"));
+    e[_initKeyboardEvent](type, canBubble, cancelable, view, "", keyLocation, ctrlKey, altKey, shiftKey, metaKey);
+    return e;
+  }
+  [_initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey) {
+    if (typeof this.initKeyEvent == "function") {
+      this.initKeyEvent(type, canBubble, cancelable, view, ctrlKey, altKey, shiftKey, metaKey, 0, 0);
+    } else {
+      this.initKeyboardEvent(type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey);
+    }
+  }
+  get [dartx.keyCode]() {
+    return this[_keyCode];
+  }
+  get [dartx.charCode]() {
+    return this[_charCode];
+  }
+  get [dartx.which]() {
+    return this[_which];
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.KeyboardEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.KeyboardEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.KeyboardEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.KeyboardEvent(type);
+  }
+  get [dartx.altKey]() {
+    return this.altKey;
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+  get [dartx.ctrlKey]() {
+    return this.ctrlKey;
+  }
+  get [dartx.key]() {
+    return this.key;
+  }
+  get [_keyIdentifier]() {
+    return this.keyIdentifier;
+  }
+  get [dartx.keyLocation]() {
+    return this.keyLocation;
+  }
+  get [dartx.location]() {
+    return this.location;
+  }
+  get [dartx.metaKey]() {
+    return this.metaKey;
+  }
+  get [dartx.repeat]() {
+    return this.repeat;
+  }
+  get [dartx.shiftKey]() {
+    return this.shiftKey;
+  }
+  [dartx.getModifierState](...args) {
+    return this.getModifierState.apply(this, args);
+  }
+};
+dart.setSignature(html$.KeyboardEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.KeyboardEvent, [core.String], {view: html$.Window, canBubble: core.bool, cancelable: core.bool, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
+    _: dart.definiteFunctionType(html$.KeyboardEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.altKey]: core.bool,
+    [dartx.code]: core.String,
+    [dartx.ctrlKey]: core.bool,
+    [dartx.key]: core.String,
+    [_keyIdentifier]: core.String,
+    [dartx.keyLocation]: core.int,
+    [dartx.location]: core.int,
+    [dartx.metaKey]: core.bool,
+    [dartx.repeat]: core.bool,
+    [dartx.shiftKey]: core.bool
+  }),
+  getters: () => ({
+    [dartx.keyCode]: dart.definiteFunctionType(core.int, []),
+    [dartx.charCode]: dart.definiteFunctionType(core.int, []),
+    [dartx.which]: dart.definiteFunctionType(core.int, [])
+  }),
+  methods: () => ({
+    [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
+    [dartx.getModifierState]: dart.definiteFunctionType(core.bool, [core.String])
+  }),
+  sfields: () => ({
+    DOM_KEY_LOCATION_LEFT: core.int,
+    DOM_KEY_LOCATION_NUMPAD: core.int,
+    DOM_KEY_LOCATION_RIGHT: core.int,
+    DOM_KEY_LOCATION_STANDARD: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.KeyboardEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.KeyboardEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+html$.KeyboardEvent.DOM_KEY_LOCATION_LEFT = 1;
+html$.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD = 3;
+html$.KeyboardEvent.DOM_KEY_LOCATION_RIGHT = 2;
+html$.KeyboardEvent.DOM_KEY_LOCATION_STANDARD = 0;
+dart.registerExtension(dart.global.KeyboardEvent, html$.KeyboardEvent);
+html$.KeyframeEffect = class KeyframeEffect extends html$.AnimationEffectReadOnly {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(target, keyframes, timing) {
+    if (timing === void 0) timing = null;
+    if (ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null) && timing == null) {
+      return html$.KeyframeEffect._create_1(target, keyframes);
+    }
+    if (typeof timing == 'number' && ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null)) {
+      return html$.KeyframeEffect._create_2(target, keyframes, timing);
+    }
+    if (core.Map.is(timing) && ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null)) {
+      let timing_1 = html_common.convertDartToNative_Dictionary(timing);
+      return html$.KeyframeEffect._create_3(target, keyframes, timing_1);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1(target, keyframes) {
+    return new self.KeyframeEffect(target, keyframes);
+  }
+  static _create_2(target, keyframes, timing) {
+    return new self.KeyframeEffect(target, keyframes, timing);
+  }
+  static _create_3(target, keyframes, timing) {
+    return new self.KeyframeEffect(target, keyframes, timing);
+  }
+};
+dart.setSignature(html$.KeyframeEffect, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.KeyframeEffect, []),
+    new: dart.definiteFunctionType(html$.KeyframeEffect, [html$.Element, ListOfMap()], [dart.dynamic])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3']
+});
+dart.registerExtension(dart.global.KeyframeEffect, html$.KeyframeEffect);
+dart.defineExtensionNames([
+  'checkValidity',
+  'reportValidity',
+  'setCustomValidity',
+  'autofocus',
+  'challenge',
+  'disabled',
+  'form',
+  'keytype',
+  'labels',
+  'name',
+  'type',
+  'validationMessage',
+  'validity',
+  'willValidate'
+]);
+html$.KeygenElement = class KeygenElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.KeygenElement._check(html$.document[dartx.createElement]("keygen"));
+  }
+  created() {
+    this[dartx.autofocus] = null;
+    this[dartx.challenge] = null;
+    this[dartx.disabled] = null;
+    this[dartx.form] = null;
+    this[dartx.keytype] = null;
+    this[dartx.labels] = null;
+    this[dartx.name] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(html$.Element.isTagSupported('keygen')) && html$.KeygenElement.is(html$.Element.tag('keygen'));
+  }
+  get [dartx.autofocus]() {
+    return this.autofocus;
+  }
+  set [dartx.autofocus](value) {
+    this.autofocus = value;
+  }
+  get [dartx.challenge]() {
+    return this.challenge;
+  }
+  set [dartx.challenge](value) {
+    this.challenge = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.keytype]() {
+    return this.keytype;
+  }
+  set [dartx.keytype](value) {
+    this.keytype = value;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.KeygenElement, 'created');
+dart.setSignature(html$.KeygenElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.KeygenElement, []),
+    new: dart.definiteFunctionType(html$.KeygenElement, []),
+    created: dart.definiteFunctionType(html$.KeygenElement, [])
+  }),
+  fields: () => ({
+    [dartx.autofocus]: core.bool,
+    [dartx.challenge]: core.String,
+    [dartx.disabled]: core.bool,
+    [dartx.form]: html$.FormElement,
+    [dartx.keytype]: core.String,
+    [dartx.labels]: ListOfNode(),
+    [dartx.name]: core.String,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.willValidate]: core.bool
+  }),
+  methods: () => ({
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLKeygenElement, html$.KeygenElement);
+dart.defineExtensionNames([
+  'value'
+]);
+html$.LIElement = class LIElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.LIElement._check(html$.document[dartx.createElement]("li"));
+  }
+  created() {
+    this[dartx.value] = null;
+    super.created();
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.defineNamedConstructor(html$.LIElement, 'created');
+dart.setSignature(html$.LIElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.LIElement, []),
+    new: dart.definiteFunctionType(html$.LIElement, []),
+    created: dart.definiteFunctionType(html$.LIElement, [])
+  }),
+  fields: () => ({[dartx.value]: core.int})
+});
+dart.registerExtension(dart.global.HTMLLIElement, html$.LIElement);
+dart.defineExtensionNames([
+  'control',
+  'form',
+  'htmlFor'
+]);
+html$.LabelElement = class LabelElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.LabelElement._check(html$.document[dartx.createElement]("label"));
+  }
+  created() {
+    this[dartx.control] = null;
+    this[dartx.form] = null;
+    this[dartx.htmlFor] = null;
+    super.created();
+  }
+  get [dartx.control]() {
+    return this.control;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.htmlFor]() {
+    return this.htmlFor;
+  }
+  set [dartx.htmlFor](value) {
+    this.htmlFor = value;
+  }
+};
+dart.defineNamedConstructor(html$.LabelElement, 'created');
+dart.setSignature(html$.LabelElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.LabelElement, []),
+    new: dart.definiteFunctionType(html$.LabelElement, []),
+    created: dart.definiteFunctionType(html$.LabelElement, [])
+  }),
+  fields: () => ({
+    [dartx.control]: html$.HtmlElement,
+    [dartx.form]: html$.FormElement,
+    [dartx.htmlFor]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLLabelElement, html$.LabelElement);
+dart.defineExtensionNames([
+  'form'
+]);
+html$.LegendElement = class LegendElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.LegendElement._check(html$.document[dartx.createElement]("legend"));
+  }
+  created() {
+    this[dartx.form] = null;
+    super.created();
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+};
+dart.defineNamedConstructor(html$.LegendElement, 'created');
+dart.setSignature(html$.LegendElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.LegendElement, []),
+    new: dart.definiteFunctionType(html$.LegendElement, []),
+    created: dart.definiteFunctionType(html$.LegendElement, [])
+  }),
+  fields: () => ({[dartx.form]: html$.FormElement})
+});
+dart.registerExtension(dart.global.HTMLLegendElement, html$.LegendElement);
+dart.defineExtensionNames([
+  'supportsImport',
+  'crossOrigin',
+  'disabled',
+  'href',
+  'hreflang',
+  'import',
+  'integrity',
+  'media',
+  'rel',
+  'sheet',
+  'sizes',
+  'type'
+]);
+html$.LinkElement = class LinkElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.LinkElement._check(html$.document[dartx.createElement]("link"));
+  }
+  created() {
+    this[dartx.crossOrigin] = null;
+    this[dartx.disabled] = null;
+    this[dartx.href] = null;
+    this[dartx.hreflang] = null;
+    this[dartx.import] = null;
+    this[dartx.integrity] = null;
+    this[dartx.media] = null;
+    this[dartx.rel] = null;
+    this[dartx.sheet] = null;
+    this[dartx.sizes] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.crossOrigin]() {
+    return this.crossOrigin;
+  }
+  set [dartx.crossOrigin](value) {
+    this.crossOrigin = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  set [dartx.href](value) {
+    this.href = value;
+  }
+  get [dartx.hreflang]() {
+    return this.hreflang;
+  }
+  set [dartx.hreflang](value) {
+    this.hreflang = value;
+  }
+  get [dartx.import]() {
+    return this.import;
+  }
+  get [dartx.integrity]() {
+    return this.integrity;
+  }
+  set [dartx.integrity](value) {
+    this.integrity = value;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  set [dartx.media](value) {
+    this.media = value;
+  }
+  get [dartx.rel]() {
+    return this.rel;
+  }
+  set [dartx.rel](value) {
+    this.rel = value;
+  }
+  get [dartx.sheet]() {
+    return this.sheet;
+  }
+  get [dartx.sizes]() {
+    return this.sizes;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.supportsImport]() {
+    return "import" in this;
+  }
+};
+dart.defineNamedConstructor(html$.LinkElement, 'created');
+dart.setSignature(html$.LinkElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.LinkElement, []),
+    new: dart.definiteFunctionType(html$.LinkElement, []),
+    created: dart.definiteFunctionType(html$.LinkElement, [])
+  }),
+  fields: () => ({
+    [dartx.crossOrigin]: core.String,
+    [dartx.disabled]: core.bool,
+    [dartx.href]: core.String,
+    [dartx.hreflang]: core.String,
+    [dartx.import]: html$.Document,
+    [dartx.integrity]: core.String,
+    [dartx.media]: core.String,
+    [dartx.rel]: core.String,
+    [dartx.sheet]: html$.StyleSheet,
+    [dartx.sizes]: html$.DomSettableTokenList,
+    [dartx.type]: core.String
+  }),
+  getters: () => ({[dartx.supportsImport]: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLLinkElement, html$.LinkElement);
+dart.defineExtensionNames([
+  'assign',
+  'reload',
+  'replace',
+  'origin',
+  'toString',
+  'ancestorOrigins',
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'pathname',
+  'port',
+  'protocol',
+  'search'
+]);
+html$.Location = class Location extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.ancestorOrigins]() {
+    return this.ancestorOrigins;
+  }
+  get [dartx.hash]() {
+    return this.hash;
+  }
+  set [dartx.hash](value) {
+    this.hash = value;
+  }
+  get [dartx.host]() {
+    return this.host;
+  }
+  set [dartx.host](value) {
+    this.host = value;
+  }
+  get [dartx.hostname]() {
+    return this.hostname;
+  }
+  set [dartx.hostname](value) {
+    this.hostname = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  set [dartx.href](value) {
+    this.href = value;
+  }
+  get [dartx.pathname]() {
+    return this.pathname;
+  }
+  set [dartx.pathname](value) {
+    this.pathname = value;
+  }
+  get [dartx.port]() {
+    return this.port;
+  }
+  set [dartx.port](value) {
+    this.port = value;
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  set [dartx.protocol](value) {
+    this.protocol = value;
+  }
+  get [dartx.search]() {
+    return this.search;
+  }
+  set [dartx.search](value) {
+    this.search = value;
+  }
+  [dartx.assign](...args) {
+    return this.assign.apply(this, args);
+  }
+  [dartx.reload](...args) {
+    return this.reload.apply(this, args);
+  }
+  [dartx.replace](...args) {
+    return this.replace.apply(this, args);
+  }
+  get [dartx.origin]() {
+    if ("origin" in this) {
+      return this.origin;
+    }
+    return dart.str`${this[dartx.protocol]}//${this[dartx.host]}`;
+  }
+  [dartx.toString]() {
+    return String(this);
+  }
+};
+html$.Location[dart.implements] = () => [html$.LocationBase];
+dart.setSignature(html$.Location, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Location, [])}),
+  fields: () => ({
+    [dartx.ancestorOrigins]: ListOfString(),
+    [dartx.hash]: core.String,
+    [dartx.host]: core.String,
+    [dartx.hostname]: core.String,
+    [dartx.href]: core.String,
+    [dartx.pathname]: core.String,
+    [dartx.port]: core.String,
+    [dartx.protocol]: core.String,
+    [dartx.search]: core.String
+  }),
+  getters: () => ({[dartx.origin]: dart.definiteFunctionType(core.String, [])}),
+  methods: () => ({
+    [dartx.assign]: dart.definiteFunctionType(dart.void, [], [core.String]),
+    [dartx.reload]: dart.definiteFunctionType(dart.void, []),
+    [dartx.replace]: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+dart.registerExtension(dart.global.Location, html$.Location);
+dart.defineExtensionNames([
+  'areas',
+  'name'
+]);
+html$.MapElement = class MapElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MapElement._check(html$.document[dartx.createElement]("map"));
+  }
+  created() {
+    this[dartx.areas] = null;
+    this[dartx.name] = null;
+    super.created();
+  }
+  get [dartx.areas]() {
+    return this.areas;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+};
+dart.defineNamedConstructor(html$.MapElement, 'created');
+dart.setSignature(html$.MapElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MapElement, []),
+    new: dart.definiteFunctionType(html$.MapElement, []),
+    created: dart.definiteFunctionType(html$.MapElement, [])
+  }),
+  fields: () => ({
+    [dartx.areas]: ListOfNode(),
+    [dartx.name]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLMapElement, html$.MapElement);
+dart.defineExtensionNames([
+  'pause',
+  'play',
+  'unpause',
+  'buffered',
+  'currentTime',
+  'defaultPlaybackRate',
+  'duration',
+  'muted',
+  'paused',
+  'playbackRate',
+  'playbackState',
+  'played',
+  'seekable',
+  'volume'
+]);
+html$.MediaController = class MediaController extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MediaController._create_1();
+  }
+  static _create_1() {
+    return new self.MediaController();
+  }
+  get [dartx.buffered]() {
+    return this.buffered;
+  }
+  get [dartx.currentTime]() {
+    return this.currentTime;
+  }
+  set [dartx.currentTime](value) {
+    this.currentTime = value;
+  }
+  get [dartx.defaultPlaybackRate]() {
+    return this.defaultPlaybackRate;
+  }
+  set [dartx.defaultPlaybackRate](value) {
+    this.defaultPlaybackRate = value;
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  get [dartx.muted]() {
+    return this.muted;
+  }
+  set [dartx.muted](value) {
+    this.muted = value;
+  }
+  get [dartx.paused]() {
+    return this.paused;
+  }
+  get [dartx.playbackRate]() {
+    return this.playbackRate;
+  }
+  set [dartx.playbackRate](value) {
+    this.playbackRate = value;
+  }
+  get [dartx.playbackState]() {
+    return this.playbackState;
+  }
+  get [dartx.played]() {
+    return this.played;
+  }
+  get [dartx.seekable]() {
+    return this.seekable;
+  }
+  get [dartx.volume]() {
+    return this.volume;
+  }
+  set [dartx.volume](value) {
+    this.volume = value;
+  }
+  [dartx.pause](...args) {
+    return this.pause.apply(this, args);
+  }
+  [dartx.play](...args) {
+    return this.play.apply(this, args);
+  }
+  [dartx.unpause](...args) {
+    return this.unpause.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaController, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaController, []),
+    new: dart.definiteFunctionType(html$.MediaController, [])
+  }),
+  fields: () => ({
+    [dartx.buffered]: html$.TimeRanges,
+    [dartx.currentTime]: core.num,
+    [dartx.defaultPlaybackRate]: core.num,
+    [dartx.duration]: core.double,
+    [dartx.muted]: core.bool,
+    [dartx.paused]: core.bool,
+    [dartx.playbackRate]: core.num,
+    [dartx.playbackState]: core.String,
+    [dartx.played]: html$.TimeRanges,
+    [dartx.seekable]: html$.TimeRanges,
+    [dartx.volume]: core.num
+  }),
+  methods: () => ({
+    [dartx.pause]: dart.definiteFunctionType(dart.void, []),
+    [dartx.play]: dart.definiteFunctionType(dart.void, []),
+    [dartx.unpause]: dart.definiteFunctionType(dart.void, [])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.MediaController, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.MediaController, html$.MediaController);
+dart.defineExtensionNames([
+  'deviceId',
+  'groupId',
+  'kind',
+  'label'
+]);
+html$.MediaDeviceInfo = class MediaDeviceInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.deviceId]() {
+    return this.deviceId;
+  }
+  get [dartx.groupId]() {
+    return this.groupId;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+};
+dart.setSignature(html$.MediaDeviceInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaDeviceInfo, [])}),
+  fields: () => ({
+    [dartx.deviceId]: core.String,
+    [dartx.groupId]: core.String,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String
+  })
+});
+dart.registerExtension(dart.global.MediaDeviceInfo, html$.MediaDeviceInfo);
+const _getUserMedia_1 = Symbol('_getUserMedia_1');
+dart.defineExtensionNames([
+  'enumerateDevices',
+  'getUserMedia'
+]);
+html$.MediaDevices = class MediaDevices extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.enumerateDevices](...args) {
+    return this.enumerateDevices.apply(this, args);
+  }
+  [dartx.getUserMedia](options) {
+    let options_1 = html_common.convertDartToNative_Dictionary(options);
+    return this[_getUserMedia_1](options_1);
+  }
+  [_getUserMedia_1](...args) {
+    return this.getUserMedia.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaDevices, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaDevices, [])}),
+  methods: () => ({
+    [dartx.enumerateDevices]: dart.definiteFunctionType(async.Future, []),
+    [dartx.getUserMedia]: dart.definiteFunctionType(async.Future, [core.Map]),
+    [_getUserMedia_1]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.MediaDevices, html$.MediaDevices);
+dart.defineExtensionNames([
+  'initData',
+  'initDataType'
+]);
+html$.MediaEncryptedEvent = class MediaEncryptedEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MediaEncryptedEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MediaEncryptedEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MediaEncryptedEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MediaEncryptedEvent(type);
+  }
+  get [dartx.initData]() {
+    return this.initData;
+  }
+  get [dartx.initDataType]() {
+    return this.initDataType;
+  }
+};
+dart.setSignature(html$.MediaEncryptedEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaEncryptedEvent, []),
+    new: dart.definiteFunctionType(html$.MediaEncryptedEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.initData]: typed_data.ByteBuffer,
+    [dartx.initDataType]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaEncryptedEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaEncryptedEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MediaEncryptedEvent, html$.MediaEncryptedEvent);
+dart.defineExtensionNames([
+  'code'
+]);
+html$.MediaError = class MediaError extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+};
+dart.setSignature(html$.MediaError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaError, [])}),
+  fields: () => ({[dartx.code]: core.int}),
+  sfields: () => ({
+    MEDIA_ERR_ABORTED: core.int,
+    MEDIA_ERR_DECODE: core.int,
+    MEDIA_ERR_NETWORK: core.int,
+    MEDIA_ERR_SRC_NOT_SUPPORTED: core.int
+  })
+});
+html$.MediaError.MEDIA_ERR_ABORTED = 1;
+html$.MediaError.MEDIA_ERR_DECODE = 3;
+html$.MediaError.MEDIA_ERR_NETWORK = 2;
+html$.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
+dart.registerExtension(dart.global.MediaError, html$.MediaError);
+dart.defineExtensionNames([
+  'code',
+  'systemCode'
+]);
+html$.MediaKeyError = class MediaKeyError extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+  get [dartx.systemCode]() {
+    return this.systemCode;
+  }
+};
+dart.setSignature(html$.MediaKeyError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeyError, [])}),
+  fields: () => ({
+    [dartx.code]: core.int,
+    [dartx.systemCode]: core.int
+  }),
+  sfields: () => ({
+    MEDIA_KEYERR_CLIENT: core.int,
+    MEDIA_KEYERR_DOMAIN: core.int,
+    MEDIA_KEYERR_HARDWARECHANGE: core.int,
+    MEDIA_KEYERR_OUTPUT: core.int,
+    MEDIA_KEYERR_SERVICE: core.int,
+    MEDIA_KEYERR_UNKNOWN: core.int
+  })
+});
+html$.MediaKeyError.MEDIA_KEYERR_CLIENT = 2;
+html$.MediaKeyError.MEDIA_KEYERR_DOMAIN = 6;
+html$.MediaKeyError.MEDIA_KEYERR_HARDWARECHANGE = 5;
+html$.MediaKeyError.MEDIA_KEYERR_OUTPUT = 4;
+html$.MediaKeyError.MEDIA_KEYERR_SERVICE = 3;
+html$.MediaKeyError.MEDIA_KEYERR_UNKNOWN = 1;
+dart.registerExtension(dart.global.MediaKeyError, html$.MediaKeyError);
+dart.defineExtensionNames([
+  'defaultUrl',
+  'errorCode',
+  'initData',
+  'keySystem',
+  'message',
+  'sessionId',
+  'systemCode'
+]);
+html$.MediaKeyEvent = class MediaKeyEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MediaKeyEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MediaKeyEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MediaKeyEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MediaKeyEvent(type);
+  }
+  get [dartx.defaultUrl]() {
+    return this.defaultURL;
+  }
+  get [dartx.errorCode]() {
+    return this.errorCode;
+  }
+  get [dartx.initData]() {
+    return this.initData;
+  }
+  get [dartx.keySystem]() {
+    return this.keySystem;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  get [dartx.sessionId]() {
+    return this.sessionId;
+  }
+  get [dartx.systemCode]() {
+    return this.systemCode;
+  }
+};
+dart.setSignature(html$.MediaKeyEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaKeyEvent, []),
+    new: dart.definiteFunctionType(html$.MediaKeyEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.defaultUrl]: core.String,
+    [dartx.errorCode]: html$.MediaKeyError,
+    [dartx.initData]: typed_data.Uint8List,
+    [dartx.keySystem]: core.String,
+    [dartx.message]: typed_data.Uint8List,
+    [dartx.sessionId]: core.String,
+    [dartx.systemCode]: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaKeyEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaKeyEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MediaKeyEvent, html$.MediaKeyEvent);
+dart.defineExtensionNames([
+  'message',
+  'messageType'
+]);
+html$.MediaKeyMessageEvent = class MediaKeyMessageEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MediaKeyMessageEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MediaKeyMessageEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MediaKeyMessageEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MediaKeyMessageEvent(type);
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  get [dartx.messageType]() {
+    return this.messageType;
+  }
+};
+dart.setSignature(html$.MediaKeyMessageEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaKeyMessageEvent, []),
+    new: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.message]: typed_data.ByteBuffer,
+    [dartx.messageType]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MediaKeyMessageEvent, html$.MediaKeyMessageEvent);
+const _update$ = Symbol('_update');
+dart.defineExtensionNames([
+  'close',
+  'generateRequest',
+  'load',
+  'remove',
+  'closed',
+  'expiration',
+  'keyStatuses',
+  'sessionId'
+]);
+html$.MediaKeySession = class MediaKeySession extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.closed]() {
+    return this.closed;
+  }
+  get [dartx.expiration]() {
+    return this.expiration;
+  }
+  get [dartx.keyStatuses]() {
+    return this.keyStatuses;
+  }
+  get [dartx.sessionId]() {
+    return this.sessionId;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.generateRequest](...args) {
+    return this.generateRequest.apply(this, args);
+  }
+  [dartx.load](...args) {
+    return this.load.apply(this, args);
+  }
+  [dartx.remove](...args) {
+    return this.remove.apply(this, args);
+  }
+  [_update$](...args) {
+    return this.update.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaKeySession, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeySession, [])}),
+  fields: () => ({
+    [dartx.closed]: async.Future,
+    [dartx.expiration]: core.double,
+    [dartx.keyStatuses]: html$.MediaKeyStatusMap,
+    [dartx.sessionId]: core.String
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(async.Future, []),
+    [dartx.generateRequest]: dart.definiteFunctionType(async.Future, [core.String, dart.dynamic]),
+    [dartx.load]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.remove]: dart.definiteFunctionType(async.Future, []),
+    [_update$]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.MediaKeySession, html$.MediaKeySession);
+dart.defineExtensionNames([
+  'size'
+]);
+html$.MediaKeyStatusMap = class MediaKeyStatusMap extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+};
+dart.setSignature(html$.MediaKeyStatusMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeyStatusMap, [])}),
+  fields: () => ({[dartx.size]: core.int})
+});
+dart.registerExtension(dart.global.MediaKeyStatusMap, html$.MediaKeyStatusMap);
+const _getConfiguration_1 = Symbol('_getConfiguration_1');
+dart.defineExtensionNames([
+  'createMediaKeys',
+  'getConfiguration',
+  'keySystem'
+]);
+html$.MediaKeySystemAccess = class MediaKeySystemAccess extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.keySystem]() {
+    return this.keySystem;
+  }
+  [dartx.createMediaKeys](...args) {
+    return this.createMediaKeys.apply(this, args);
+  }
+  [dartx.getConfiguration]() {
+    return html_common.convertNativeToDart_Dictionary(this[_getConfiguration_1]());
+  }
+  [_getConfiguration_1](...args) {
+    return this.getConfiguration.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaKeySystemAccess, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeySystemAccess, [])}),
+  fields: () => ({[dartx.keySystem]: core.String}),
+  methods: () => ({
+    [dartx.createMediaKeys]: dart.definiteFunctionType(async.Future, []),
+    [dartx.getConfiguration]: dart.definiteFunctionType(core.Map, []),
+    [_getConfiguration_1]: dart.definiteFunctionType(dart.dynamic, [])
+  })
+});
+dart.registerExtension(dart.global.MediaKeySystemAccess, html$.MediaKeySystemAccess);
+const _createSession = Symbol('_createSession');
+dart.defineExtensionNames([
+  'setServerCertificate'
+]);
+html$.MediaKeys = class MediaKeys extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_createSession](...args) {
+    return this.createSession.apply(this, args);
+  }
+  [dartx.setServerCertificate](...args) {
+    return this.setServerCertificate.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaKeys, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeys, [])}),
+  methods: () => ({
+    [_createSession]: dart.definiteFunctionType(html$.MediaKeySession, [], [core.String]),
+    [dartx.setServerCertificate]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.MediaKeys, html$.MediaKeys);
+dart.defineExtensionNames([
+  'appendMedium',
+  'deleteMedium',
+  'item',
+  'length',
+  'mediaText'
+]);
+html$.MediaList = class MediaList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.mediaText]() {
+    return this.mediaText;
+  }
+  set [dartx.mediaText](value) {
+    this.mediaText = value;
+  }
+  [dartx.appendMedium](...args) {
+    return this.appendMedium.apply(this, args);
+  }
+  [dartx.deleteMedium](...args) {
+    return this.deleteMedium.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaList, [])}),
+  fields: () => ({
+    [dartx.length]: core.int,
+    [dartx.mediaText]: core.String
+  }),
+  methods: () => ({
+    [dartx.appendMedium]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.deleteMedium]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(core.String, [core.int])
+  })
+});
+dart.registerExtension(dart.global.MediaList, html$.MediaList);
+dart.defineExtensionNames([
+  'addListener',
+  'removeListener',
+  'onChange',
+  'matches',
+  'media'
+]);
+html$.MediaQueryList = class MediaQueryList extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.matches]() {
+    return this.matches;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  [dartx.addListener](...args) {
+    return this.addListener.apply(this, args);
+  }
+  [dartx.removeListener](...args) {
+    return this.removeListener.apply(this, args);
+  }
+  get [dartx.onChange]() {
+    return html$.MediaQueryList.changeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.MediaQueryList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaQueryList, [])}),
+  fields: () => ({
+    [dartx.matches]: core.bool,
+    [dartx.media]: core.String
+  }),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.addListener]: dart.definiteFunctionType(dart.void, [html$.EventListener]),
+    [dartx.removeListener]: dart.definiteFunctionType(dart.void, [html$.EventListener])
+  }),
+  sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.MediaQueryList, {
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.MediaQueryList, html$.MediaQueryList);
+dart.defineExtensionNames([
+  'matches',
+  'media'
+]);
+html$.MediaQueryListEvent = class MediaQueryListEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MediaQueryListEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MediaQueryListEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MediaQueryListEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MediaQueryListEvent(type);
+  }
+  get [dartx.matches]() {
+    return this.matches;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+};
+dart.setSignature(html$.MediaQueryListEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaQueryListEvent, []),
+    new: dart.definiteFunctionType(html$.MediaQueryListEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.matches]: core.bool,
+    [dartx.media]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaQueryListEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaQueryListEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MediaQueryListEvent, html$.MediaQueryListEvent);
+dart.defineExtensionNames([
+  'activate',
+  'deactivate'
+]);
+html$.MediaSession = class MediaSession extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MediaSession._create_1();
+  }
+  static _create_1() {
+    return new self.MediaSession();
+  }
+  [dartx.activate](...args) {
+    return this.activate.apply(this, args);
+  }
+  [dartx.deactivate](...args) {
+    return this.deactivate.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaSession, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaSession, []),
+    new: dart.definiteFunctionType(html$.MediaSession, [])
+  }),
+  methods: () => ({
+    [dartx.activate]: dart.definiteFunctionType(dart.void, []),
+    [dartx.deactivate]: dart.definiteFunctionType(dart.void, [])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.MediaSession, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.MediaSession, html$.MediaSession);
+dart.defineExtensionNames([
+  'addSourceBuffer',
+  'endOfStream',
+  'removeSourceBuffer',
+  'activeSourceBuffers',
+  'duration',
+  'readyState',
+  'sourceBuffers'
+]);
+html$.MediaSource = class MediaSource extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MediaSource._create_1();
+  }
+  static _create_1() {
+    return new self.MediaSource();
+  }
+  static get supported() {
+    return !!window.MediaSource;
+  }
+  get [dartx.activeSourceBuffers]() {
+    return this.activeSourceBuffers;
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  set [dartx.duration](value) {
+    this.duration = value;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.sourceBuffers]() {
+    return this.sourceBuffers;
+  }
+  [dartx.addSourceBuffer](...args) {
+    return this.addSourceBuffer.apply(this, args);
+  }
+  [dartx.endOfStream](...args) {
+    return this.endOfStream.apply(this, args);
+  }
+  [dartx.removeSourceBuffer](...args) {
+    return this.removeSourceBuffer.apply(this, args);
+  }
+};
+dart.setSignature(html$.MediaSource, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaSource, []),
+    new: dart.definiteFunctionType(html$.MediaSource, [])
+  }),
+  fields: () => ({
+    [dartx.activeSourceBuffers]: html$.SourceBufferList,
+    [dartx.duration]: core.num,
+    [dartx.readyState]: core.String,
+    [dartx.sourceBuffers]: html$.SourceBufferList
+  }),
+  methods: () => ({
+    [dartx.addSourceBuffer]: dart.definiteFunctionType(html$.SourceBuffer, [core.String]),
+    [dartx.endOfStream]: dart.definiteFunctionType(dart.void, [], [core.String]),
+    [dartx.removeSourceBuffer]: dart.definiteFunctionType(dart.void, [html$.SourceBuffer])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaSource, []),
+    isTypeSupported: dart.definiteFunctionType(core.bool, [core.String])
+  }),
+  names: ['_create_1', 'isTypeSupported']
+});
+dart.registerExtension(dart.global.MediaSource, html$.MediaSource);
+dart.defineExtensionNames([
+  'addTrack',
+  'clone',
+  'getAudioTracks',
+  'getTrackById',
+  'getTracks',
+  'getVideoTracks',
+  'removeTrack',
+  'stop',
+  'onAddTrack',
+  'onEnded',
+  'onRemoveTrack',
+  'active',
+  'ended',
+  'id',
+  'label'
+]);
+html$.MediaStream = class MediaStream extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(stream_OR_tracks) {
+    if (stream_OR_tracks === void 0) stream_OR_tracks = null;
+    if (stream_OR_tracks == null) {
+      return html$.MediaStream._create_1();
+    }
+    if (html$.MediaStream.is(stream_OR_tracks) || stream_OR_tracks == null) {
+      return html$.MediaStream._create_2(stream_OR_tracks);
+    }
+    if (ListOfMediaStreamTrack().is(stream_OR_tracks) || stream_OR_tracks == null) {
+      return html$.MediaStream._create_3(stream_OR_tracks);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1() {
+    return new self.MediaStream();
+  }
+  static _create_2(stream_OR_tracks) {
+    return new self.MediaStream(stream_OR_tracks);
+  }
+  static _create_3(stream_OR_tracks) {
+    return new self.MediaStream(stream_OR_tracks);
+  }
+  get [dartx.active]() {
+    return this.active;
+  }
+  get [dartx.ended]() {
+    return this.ended;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  [dartx.addTrack](...args) {
+    return this.addTrack.apply(this, args);
+  }
+  [dartx.clone](...args) {
+    return this.clone.apply(this, args);
+  }
+  [dartx.getAudioTracks](...args) {
+    return this.getAudioTracks.apply(this, args);
+  }
+  [dartx.getTrackById](...args) {
+    return this.getTrackById.apply(this, args);
+  }
+  [dartx.getTracks](...args) {
+    return this.getTracks.apply(this, args);
+  }
+  [dartx.getVideoTracks](...args) {
+    return this.getVideoTracks.apply(this, args);
+  }
+  [dartx.removeTrack](...args) {
+    return this.removeTrack.apply(this, args);
+  }
+  [dartx.stop](...args) {
+    return this.stop.apply(this, args);
+  }
+  get [dartx.onAddTrack]() {
+    return html$.MediaStream.addTrackEvent.forTarget(this);
+  }
+  get [dartx.onEnded]() {
+    return html$.MediaStream.endedEvent.forTarget(this);
+  }
+  get [dartx.onRemoveTrack]() {
+    return html$.MediaStream.removeTrackEvent.forTarget(this);
+  }
+  static get supported() {
+    return !!(html$.window[dartx.navigator].getUserMedia || html$.window[dartx.navigator].webkitGetUserMedia || html$.window[dartx.navigator].mozGetUserMedia || html$.window[dartx.navigator].msGetUserMedia);
+  }
+};
+dart.setSignature(html$.MediaStream, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaStream, []),
+    new: dart.definiteFunctionType(html$.MediaStream, [], [dart.dynamic])
+  }),
+  fields: () => ({
+    [dartx.active]: core.bool,
+    [dartx.ended]: core.bool,
+    [dartx.id]: core.String,
+    [dartx.label]: core.String
+  }),
+  getters: () => ({
+    [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRemoveTrack]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.addTrack]: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrack]),
+    [dartx.clone]: dart.definiteFunctionType(html$.MediaStream, []),
+    [dartx.getAudioTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.MediaStreamTrack, [core.String]),
+    [dartx.getTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
+    [dartx.getVideoTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
+    [dartx.removeTrack]: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrack]),
+    [dartx.stop]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    addTrackEvent: EventStreamProviderOfEvent(),
+    endedEvent: EventStreamProviderOfEvent(),
+    removeTrackEvent: EventStreamProviderOfEvent()
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaStream, []),
+    _create_2: dart.definiteFunctionType(html$.MediaStream, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.MediaStream, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3']
+});
+dart.defineLazy(html$.MediaStream, {
+  get addTrackEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('addtrack'));
+  },
+  get endedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ended'));
+  },
+  get removeTrackEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('removetrack'));
+  }
+});
+dart.registerExtension(dart.global.MediaStream, html$.MediaStream);
+dart.defineExtensionNames([
+  'stream'
+]);
+html$.MediaStreamEvent = class MediaStreamEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MediaStreamEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MediaStreamEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MediaStreamEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MediaStreamEvent(type);
+  }
+  static get supported() {
+    return html_common.Device.isEventTypeSupported('MediaStreamEvent');
+  }
+  get [dartx.stream]() {
+    return this.stream;
+  }
+};
+dart.setSignature(html$.MediaStreamEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MediaStreamEvent, []),
+    new: dart.definiteFunctionType(html$.MediaStreamEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.stream]: html$.MediaStream}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MediaStreamEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaStreamEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MediaStreamEvent, html$.MediaStreamEvent);
+dart.defineExtensionNames([
+  'clone',
+  'stop',
+  'onEnded',
+  'onMute',
+  'onUnmute',
+  'enabled',
+  'id',
+  'kind',
+  'label',
+  'muted',
+  'readyState'
+]);
+html$.MediaStreamTrack = class MediaStreamTrack extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.enabled]() {
+    return this.enabled;
+  }
+  set [dartx.enabled](value) {
+    this.enabled = value;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  get [dartx.muted]() {
+    return this.muted;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  [dartx.clone](...args) {
+    return this.clone.apply(this, args);
+  }
+  static getSources() {
+    let completer = CompleterOfListOfSourceInfo().new();
+    html$.MediaStreamTrack._getSources(dart.fn(value => {
+      completer.complete(value);
+    }, ListOfSourceInfoToNull()));
+    return completer.future;
+  }
+  [dartx.stop](...args) {
+    return this.stop.apply(this, args);
+  }
+  get [dartx.onEnded]() {
+    return html$.MediaStreamTrack.endedEvent.forTarget(this);
+  }
+  get [dartx.onMute]() {
+    return html$.MediaStreamTrack.muteEvent.forTarget(this);
+  }
+  get [dartx.onUnmute]() {
+    return html$.MediaStreamTrack.unmuteEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.MediaStreamTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaStreamTrack, [])}),
+  fields: () => ({
+    [dartx.enabled]: core.bool,
+    [dartx.id]: core.String,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String,
+    [dartx.muted]: core.bool,
+    [dartx.readyState]: core.String
+  }),
+  getters: () => ({
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMute]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onUnmute]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.clone]: dart.definiteFunctionType(html$.MediaStreamTrack, []),
+    [dartx.stop]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    endedEvent: EventStreamProviderOfEvent(),
+    muteEvent: EventStreamProviderOfEvent(),
+    unmuteEvent: EventStreamProviderOfEvent()
+  }),
+  statics: () => ({
+    _getSources: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrackSourcesCallback]),
+    getSources: dart.definiteFunctionType(async.Future$(core.List$(html$.SourceInfo)), [])
+  }),
+  names: ['_getSources', 'getSources']
+});
+dart.defineLazy(html$.MediaStreamTrack, {
+  get endedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ended'));
+  },
+  get muteEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('mute'));
+  },
+  get unmuteEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('unmute'));
+  }
+});
+dart.registerExtension(dart.global.MediaStreamTrack, html$.MediaStreamTrack);
+dart.defineExtensionNames([
+  'track'
+]);
+html$.MediaStreamTrackEvent = class MediaStreamTrackEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return html_common.Device.isEventTypeSupported('MediaStreamTrackEvent');
+  }
+  get [dartx.track]() {
+    return this.track;
+  }
+};
+dart.setSignature(html$.MediaStreamTrackEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaStreamTrackEvent, [])}),
+  fields: () => ({[dartx.track]: html$.MediaStreamTrack}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.MediaStreamTrackEvent, html$.MediaStreamTrackEvent);
+html$.MediaStreamTrackSourcesCallback = dart.typedef('MediaStreamTrackSourcesCallback', () => dart.functionType(dart.void, [ListOfSourceInfo()]));
+dart.defineExtensionNames([
+  'jsHeapSizeLimit',
+  'totalJSHeapSize',
+  'usedJSHeapSize'
+]);
+html$.MemoryInfo = class MemoryInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.jsHeapSizeLimit]() {
+    return this.jsHeapSizeLimit;
+  }
+  get [dartx.totalJSHeapSize]() {
+    return this.totalJSHeapSize;
+  }
+  get [dartx.usedJSHeapSize]() {
+    return this.usedJSHeapSize;
+  }
+};
+dart.setSignature(html$.MemoryInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MemoryInfo, [])}),
+  fields: () => ({
+    [dartx.jsHeapSizeLimit]: core.int,
+    [dartx.totalJSHeapSize]: core.int,
+    [dartx.usedJSHeapSize]: core.int
+  })
+});
+dart.registerExtension(dart.global.MemoryInfo, html$.MemoryInfo);
+dart.defineExtensionNames([
+  'label',
+  'type'
+]);
+html$.MenuElement = class MenuElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MenuElement._check(html$.document[dartx.createElement]("menu"));
+  }
+  created() {
+    this[dartx.label] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  set [dartx.label](value) {
+    this.label = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(html$.MenuElement, 'created');
+dart.setSignature(html$.MenuElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MenuElement, []),
+    new: dart.definiteFunctionType(html$.MenuElement, []),
+    created: dart.definiteFunctionType(html$.MenuElement, [])
+  }),
+  fields: () => ({
+    [dartx.label]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLMenuElement, html$.MenuElement);
+dart.defineExtensionNames([
+  'checked',
+  'defaultValue',
+  'disabled',
+  'icon',
+  'label',
+  'radiogroup',
+  'type'
+]);
+html$.MenuItemElement = class MenuItemElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.checked] = null;
+    this[dartx.defaultValue] = null;
+    this[dartx.disabled] = null;
+    this[dartx.icon] = null;
+    this[dartx.label] = null;
+    this[dartx.radiogroup] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.checked]() {
+    return this.checked;
+  }
+  set [dartx.checked](value) {
+    this.checked = value;
+  }
+  get [dartx.defaultValue]() {
+    return this.default;
+  }
+  set [dartx.defaultValue](value) {
+    this.default = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.icon]() {
+    return this.icon;
+  }
+  set [dartx.icon](value) {
+    this.icon = value;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  set [dartx.label](value) {
+    this.label = value;
+  }
+  get [dartx.radiogroup]() {
+    return this.radiogroup;
+  }
+  set [dartx.radiogroup](value) {
+    this.radiogroup = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(html$.MenuItemElement, 'created');
+dart.setSignature(html$.MenuItemElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MenuItemElement, []),
+    created: dart.definiteFunctionType(html$.MenuItemElement, [])
+  }),
+  fields: () => ({
+    [dartx.checked]: core.bool,
+    [dartx.defaultValue]: core.bool,
+    [dartx.disabled]: core.bool,
+    [dartx.icon]: core.String,
+    [dartx.label]: core.String,
+    [dartx.radiogroup]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLMenuItemElement, html$.MenuItemElement);
+dart.defineExtensionNames([
+  'port1',
+  'port2'
+]);
+html$.MessageChannel = class MessageChannel extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.port1]() {
+    return this.port1;
+  }
+  get [dartx.port2]() {
+    return this.port2;
+  }
+};
+dart.setSignature(html$.MessageChannel, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MessageChannel, [])}),
+  fields: () => ({
+    [dartx.port1]: html$.MessagePort,
+    [dartx.port2]: html$.MessagePort
+  })
+});
+dart.registerExtension(dart.global.MessageChannel, html$.MessageChannel);
+const _initMessageEvent = Symbol('_initMessageEvent');
+const _get_data = Symbol('_get_data');
+const _get_source = Symbol('_get_source');
+dart.defineExtensionNames([
+  'data',
+  'source',
+  'lastEventId',
+  'origin'
+]);
+html$.MessageEvent = class MessageEvent extends html$.Event {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
+    let data = opts && 'data' in opts ? opts.data : null;
+    let origin = opts && 'origin' in opts ? opts.origin : null;
+    let lastEventId = opts && 'lastEventId' in opts ? opts.lastEventId : null;
+    let source = opts && 'source' in opts ? opts.source : null;
+    let messagePorts = opts && 'messagePorts' in opts ? opts.messagePorts : null;
+    if (source == null) {
+      source = html$.window;
+    }
+    if (!dart.test(html_common.Device.isIE)) {
+      return new self.MessageEvent(type, {bubbles: canBubble, cancelable: cancelable, data: data, origin: origin, lastEventId: lastEventId, source: source, ports: messagePorts});
+    }
+    let event = html$.MessageEvent._check(html$.document[_createEvent]("MessageEvent"));
+    event[_initMessageEvent](type, canBubble, cancelable, data, origin, lastEventId, source, messagePorts);
+    return event;
+  }
+  get [dartx.data]() {
+    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_data]);
+  }
+  get [_get_data]() {
+    return this.data;
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MessageEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MessageEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MessageEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MessageEvent(type);
+  }
+  get [dartx.lastEventId]() {
+    return this.lastEventId;
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.source]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_source]);
+  }
+  get [_get_source]() {
+    return this.source;
+  }
+  [_initMessageEvent](...args) {
+    return this.initMessageEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.MessageEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.MessageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, data: core.Object, origin: core.String, lastEventId: core.String, source: html$.Window, messagePorts: ListOfMessagePort()}),
+    _: dart.definiteFunctionType(html$.MessageEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [_get_data]: dart.dynamic,
+    [dartx.lastEventId]: core.String,
+    [dartx.origin]: core.String,
+    [_get_source]: dart.dynamic
+  }),
+  getters: () => ({
+    [dartx.data]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.source]: dart.definiteFunctionType(html$.EventTarget, [])
+  }),
+  methods: () => ({[_initMessageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object, core.String, core.String, html$.Window, ListOfMessagePort()])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MessageEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MessageEvent, html$.MessageEvent);
+dart.defineExtensionNames([
+  'close',
+  'postMessage',
+  'start',
+  'onMessage'
+]);
+html$.MessagePort = class MessagePort extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [dartx.start](...args) {
+    return this.start.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.MessagePort.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.MessagePort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MessagePort, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.start]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.MessagePort, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.MessagePort, html$.MessagePort);
+dart.defineExtensionNames([
+  'content',
+  'httpEquiv',
+  'name'
+]);
+html$.MetaElement = class MetaElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MetaElement._check(html$.document[dartx.createElement]("meta"));
+  }
+  created() {
+    this[dartx.content] = null;
+    this[dartx.httpEquiv] = null;
+    this[dartx.name] = null;
+    super.created();
+  }
+  get [dartx.content]() {
+    return this.content;
+  }
+  set [dartx.content](value) {
+    this.content = value;
+  }
+  get [dartx.httpEquiv]() {
+    return this.httpEquiv;
+  }
+  set [dartx.httpEquiv](value) {
+    this.httpEquiv = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+};
+dart.defineNamedConstructor(html$.MetaElement, 'created');
+dart.setSignature(html$.MetaElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MetaElement, []),
+    new: dart.definiteFunctionType(html$.MetaElement, []),
+    created: dart.definiteFunctionType(html$.MetaElement, [])
+  }),
+  fields: () => ({
+    [dartx.content]: core.String,
+    [dartx.httpEquiv]: core.String,
+    [dartx.name]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLMetaElement, html$.MetaElement);
+const _get_modificationTime = Symbol('_get_modificationTime');
+dart.defineExtensionNames([
+  'modificationTime',
+  'size'
+]);
+html$.Metadata = class Metadata extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.modificationTime]() {
+    return html_common.convertNativeToDart_DateTime(this[_get_modificationTime]);
+  }
+  get [_get_modificationTime]() {
+    return this.modificationTime;
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+};
+dart.setSignature(html$.Metadata, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Metadata, [])}),
+  fields: () => ({
+    [_get_modificationTime]: dart.dynamic,
+    [dartx.size]: core.int
+  }),
+  getters: () => ({[dartx.modificationTime]: dart.definiteFunctionType(core.DateTime, [])})
+});
+dart.registerExtension(dart.global.Metadata, html$.Metadata);
+html$.MetadataCallback = dart.typedef('MetadataCallback', () => dart.functionType(dart.void, [html$.Metadata]));
+dart.defineExtensionNames([
+  'high',
+  'labels',
+  'low',
+  'max',
+  'min',
+  'optimum',
+  'value'
+]);
+html$.MeterElement = class MeterElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.MeterElement._check(html$.document[dartx.createElement]("meter"));
+  }
+  created() {
+    this[dartx.high] = null;
+    this[dartx.labels] = null;
+    this[dartx.low] = null;
+    this[dartx.max] = null;
+    this[dartx.min] = null;
+    this[dartx.optimum] = null;
+    this[dartx.value] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('meter');
+  }
+  get [dartx.high]() {
+    return this.high;
+  }
+  set [dartx.high](value) {
+    this.high = value;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.low]() {
+    return this.low;
+  }
+  set [dartx.low](value) {
+    this.low = value;
+  }
+  get [dartx.max]() {
+    return this.max;
+  }
+  set [dartx.max](value) {
+    this.max = value;
+  }
+  get [dartx.min]() {
+    return this.min;
+  }
+  set [dartx.min](value) {
+    this.min = value;
+  }
+  get [dartx.optimum]() {
+    return this.optimum;
+  }
+  set [dartx.optimum](value) {
+    this.optimum = value;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.defineNamedConstructor(html$.MeterElement, 'created');
+dart.setSignature(html$.MeterElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MeterElement, []),
+    new: dart.definiteFunctionType(html$.MeterElement, []),
+    created: dart.definiteFunctionType(html$.MeterElement, [])
+  }),
+  fields: () => ({
+    [dartx.high]: core.num,
+    [dartx.labels]: ListOfNode(),
+    [dartx.low]: core.num,
+    [dartx.max]: core.num,
+    [dartx.min]: core.num,
+    [dartx.optimum]: core.num,
+    [dartx.value]: core.num
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLMeterElement, html$.MeterElement);
+dart.defineExtensionNames([
+  'inputs',
+  'outputs',
+  'sysexEnabled'
+]);
+html$.MidiAccess = class MidiAccess extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.inputs]() {
+    return this.inputs;
+  }
+  get [dartx.outputs]() {
+    return this.outputs;
+  }
+  get [dartx.sysexEnabled]() {
+    return this.sysexEnabled;
+  }
+};
+dart.setSignature(html$.MidiAccess, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiAccess, [])}),
+  fields: () => ({
+    [dartx.inputs]: html$.MidiInputMap,
+    [dartx.outputs]: html$.MidiOutputMap,
+    [dartx.sysexEnabled]: core.bool
+  })
+});
+dart.registerExtension(dart.global.MIDIAccess, html$.MidiAccess);
+dart.defineExtensionNames([
+  'port'
+]);
+html$.MidiConnectionEvent = class MidiConnectionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MidiConnectionEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MidiConnectionEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new MIDIConnectionEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new MIDIConnectionEvent(type);
+  }
+  get [dartx.port]() {
+    return this.port;
+  }
+};
+dart.setSignature(html$.MidiConnectionEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MidiConnectionEvent, []),
+    new: dart.definiteFunctionType(html$.MidiConnectionEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.port]: html$.MidiPort}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MidiConnectionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MidiConnectionEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MIDIConnectionEvent, html$.MidiConnectionEvent);
+dart.defineExtensionNames([
+  'close',
+  'open',
+  'connection',
+  'id',
+  'manufacturer',
+  'name',
+  'state',
+  'type',
+  'version'
+]);
+html$.MidiPort = class MidiPort extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.connection]() {
+    return this.connection;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.manufacturer]() {
+    return this.manufacturer;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.state]() {
+    return this.state;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.version]() {
+    return this.version;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.open](...args) {
+    return this.open.apply(this, args);
+  }
+};
+dart.setSignature(html$.MidiPort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiPort, [])}),
+  fields: () => ({
+    [dartx.connection]: core.String,
+    [dartx.id]: core.String,
+    [dartx.manufacturer]: core.String,
+    [dartx.name]: core.String,
+    [dartx.state]: core.String,
+    [dartx.type]: core.String,
+    [dartx.version]: core.String
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(async.Future, []),
+    [dartx.open]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.MIDIPort, html$.MidiPort);
+dart.defineExtensionNames([
+  'onMidiMessage'
+]);
+html$.MidiInput = class MidiInput extends html$.MidiPort {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.onMidiMessage]() {
+    return html$.MidiInput.midiMessageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.MidiInput, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiInput, [])}),
+  getters: () => ({[dartx.onMidiMessage]: dart.definiteFunctionType(async.Stream$(html$.MidiMessageEvent), [])}),
+  sfields: () => ({midiMessageEvent: EventStreamProviderOfMidiMessageEvent()})
+});
+dart.defineLazy(html$.MidiInput, {
+  get midiMessageEvent() {
+    return dart.const(new (EventStreamProviderOfMidiMessageEvent())('midimessage'));
+  }
+});
+dart.registerExtension(dart.global.MIDIInput, html$.MidiInput);
+dart.defineExtensionNames([
+  'size'
+]);
+html$.MidiInputMap = class MidiInputMap extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+};
+dart.setSignature(html$.MidiInputMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiInputMap, [])}),
+  fields: () => ({[dartx.size]: core.int})
+});
+dart.registerExtension(dart.global.MIDIInputMap, html$.MidiInputMap);
+dart.defineExtensionNames([
+  'data',
+  'receivedTime'
+]);
+html$.MidiMessageEvent = class MidiMessageEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MidiMessageEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MidiMessageEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new MIDIMessageEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new MIDIMessageEvent(type);
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  get [dartx.receivedTime]() {
+    return this.receivedTime;
+  }
+};
+dart.setSignature(html$.MidiMessageEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.MidiMessageEvent, []),
+    new: dart.definiteFunctionType(html$.MidiMessageEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.data]: typed_data.Uint8List,
+    [dartx.receivedTime]: core.double
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MidiMessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MidiMessageEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MIDIMessageEvent, html$.MidiMessageEvent);
+dart.defineExtensionNames([
+  'send'
+]);
+html$.MidiOutput = class MidiOutput extends html$.MidiPort {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.send](...args) {
+    return this.send.apply(this, args);
+  }
+};
+dart.setSignature(html$.MidiOutput, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiOutput, [])}),
+  methods: () => ({[dartx.send]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List], [core.num])})
+});
+dart.registerExtension(dart.global.MIDIOutput, html$.MidiOutput);
+dart.defineExtensionNames([
+  'size'
+]);
+html$.MidiOutputMap = class MidiOutputMap extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+};
+dart.setSignature(html$.MidiOutputMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiOutputMap, [])}),
+  fields: () => ({[dartx.size]: core.int})
+});
+dart.registerExtension(dart.global.MIDIOutputMap, html$.MidiOutputMap);
+dart.defineExtensionNames([
+  'description',
+  'enabledPlugin',
+  'suffixes',
+  'type'
+]);
+html$.MimeType = class MimeType extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.description]() {
+    return this.description;
+  }
+  get [dartx.enabledPlugin]() {
+    return this.enabledPlugin;
+  }
+  get [dartx.suffixes]() {
+    return this.suffixes;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.MimeType, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MimeType, [])}),
+  fields: () => ({
+    [dartx.description]: core.String,
+    [dartx.enabledPlugin]: html$.Plugin,
+    [dartx.suffixes]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.MimeType, html$.MimeType);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item',
+  'namedItem'
+]);
+html$.MimeTypeArray = class MimeTypeArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.MimeType), html$.ImmutableListMixin$(html$.MimeType)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+};
+html$.MimeTypeArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfMimeType()];
+dart.setSignature(html$.MimeTypeArray, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MimeTypeArray, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.MimeType, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.MimeType]),
+    [dartx.item]: dart.definiteFunctionType(html$.MimeType, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.MimeType, [core.String])
+  })
+});
+dart.registerExtension(dart.global.MimeTypeArray, html$.MimeTypeArray);
+dart.defineExtensionNames([
+  'cite',
+  'dateTime'
+]);
+html$.ModElement = class ModElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.cite] = null;
+    this[dartx.dateTime] = null;
+    super.created();
+  }
+  get [dartx.cite]() {
+    return this.cite;
+  }
+  set [dartx.cite](value) {
+    this.cite = value;
+  }
+  get [dartx.dateTime]() {
+    return this.dateTime;
+  }
+  set [dartx.dateTime](value) {
+    this.dateTime = value;
+  }
+};
+dart.defineNamedConstructor(html$.ModElement, 'created');
+dart.setSignature(html$.ModElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ModElement, []),
+    created: dart.definiteFunctionType(html$.ModElement, [])
+  }),
+  fields: () => ({
+    [dartx.cite]: core.String,
+    [dartx.dateTime]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLModElement, html$.ModElement);
+const _initMouseEvent = Symbol('_initMouseEvent');
+const _clientX = Symbol('_clientX');
+const _clientY = Symbol('_clientY');
+const _layerX = Symbol('_layerX');
+const _layerY = Symbol('_layerY');
+const _movementX = Symbol('_movementX');
+const _movementY = Symbol('_movementY');
+const _pageX = Symbol('_pageX');
+const _pageY = Symbol('_pageY');
+const _screenX = Symbol('_screenX');
+const _screenY = Symbol('_screenY');
+const _webkitMovementX = Symbol('_webkitMovementX');
+const _webkitMovementY = Symbol('_webkitMovementY');
+const _initMouseEvent_1 = Symbol('_initMouseEvent_1');
+dart.defineExtensionNames([
+  'relatedTarget',
+  'client',
+  'movement',
+  'offset',
+  'screen',
+  'layer',
+  'page',
+  'altKey',
+  'button',
+  'buttons',
+  'ctrlKey',
+  'dataTransfer',
+  'fromElement',
+  'metaKey',
+  'region',
+  'shiftKey',
+  'toElement'
+]);
+html$.MouseEvent = class MouseEvent extends html$.UIEvent {
+  static new(type, opts) {
+    let view = opts && 'view' in opts ? opts.view : null;
+    let detail = opts && 'detail' in opts ? opts.detail : 0;
+    let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
+    let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
+    let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
+    let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
+    let button = opts && 'button' in opts ? opts.button : 0;
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
+    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
+    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
+    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
+    let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
+    if (view == null) {
+      view = html$.window;
+    }
+    let event = html$.MouseEvent._check(html$.document[_createEvent]('MouseEvent'));
+    event[_initMouseEvent](type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
+    return event;
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.MouseEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.MouseEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.MouseEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.MouseEvent(type);
+  }
+  get [dartx.altKey]() {
+    return this.altKey;
+  }
+  get [dartx.button]() {
+    return this.button;
+  }
+  get [dartx.buttons]() {
+    return this.buttons;
+  }
+  get [_clientX]() {
+    return this.clientX;
+  }
+  get [_clientY]() {
+    return this.clientY;
+  }
+  get [dartx.ctrlKey]() {
+    return this.ctrlKey;
+  }
+  get [dartx.dataTransfer]() {
+    return this.dataTransfer;
+  }
+  get [dartx.fromElement]() {
+    return this.fromElement;
+  }
+  get [_layerX]() {
+    return this.layerX;
+  }
+  get [_layerY]() {
+    return this.layerY;
+  }
+  get [dartx.metaKey]() {
+    return this.metaKey;
+  }
+  get [_movementX]() {
+    return this.movementX;
+  }
+  get [_movementY]() {
+    return this.movementY;
+  }
+  get [_pageX]() {
+    return this.pageX;
+  }
+  get [_pageY]() {
+    return this.pageY;
+  }
+  get [dartx.region]() {
+    return this.region;
+  }
+  get [dartx.relatedTarget]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
+  }
+  get [_get_relatedTarget]() {
+    return this.relatedTarget;
+  }
+  get [_screenX]() {
+    return this.screenX;
+  }
+  get [_screenY]() {
+    return this.screenY;
+  }
+  get [dartx.shiftKey]() {
+    return this.shiftKey;
+  }
+  get [dartx.toElement]() {
+    return this.toElement;
+  }
+  get [_webkitMovementX]() {
+    return this.webkitMovementX;
+  }
+  get [_webkitMovementY]() {
+    return this.webkitMovementY;
+  }
+  [_initMouseEvent](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
+    let relatedTarget_1 = html$._convertDartToNative_EventTarget(relatedTarget);
+    this[_initMouseEvent_1](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
+    return;
+  }
+  [_initMouseEvent_1](...args) {
+    return this.initMouseEvent.apply(this, args);
+  }
+  get [dartx.client]() {
+    return new (PointOfnum())(this[_clientX], this[_clientY]);
+  }
+  get [dartx.movement]() {
+    return new (PointOfnum())(this[_webkitMovementX], this[_webkitMovementY]);
+  }
+  get [dartx.offset]() {
+    if (!!this.offsetX) {
+      let x = this.offsetX;
+      let y = this.offsetY;
+      return new (PointOfnum())(x, y);
+    } else {
+      if (!html$.Element.is(this[dartx.target])) {
+        dart.throw(new core.UnsupportedError('offsetX is only supported on elements'));
+      }
+      let target = html$.Element._check(this[dartx.target]);
+      let point = this[dartx.client]['-'](target[dartx.getBoundingClientRect]()[dartx.topLeft]);
+      return new (PointOfnum())(point.x[dartx.toInt](), point.y[dartx.toInt]());
+    }
+  }
+  get [dartx.screen]() {
+    return new (PointOfnum())(this[_screenX], this[_screenY]);
+  }
+  get [dartx.layer]() {
+    return new (PointOfnum())(this[_layerX], this[_layerY]);
+  }
+  get [dartx.page]() {
+    return new (PointOfnum())(this[_pageX], this[_pageY]);
+  }
+};
+dart.setSignature(html$.MouseEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.MouseEvent, [core.String], {view: html$.Window, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html$.EventTarget}),
+    _: dart.definiteFunctionType(html$.MouseEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.altKey]: core.bool,
+    [dartx.button]: core.int,
+    [dartx.buttons]: core.int,
+    [_clientX]: core.int,
+    [_clientY]: core.int,
+    [dartx.ctrlKey]: core.bool,
+    [dartx.dataTransfer]: html$.DataTransfer,
+    [dartx.fromElement]: html$.Node,
+    [_layerX]: core.int,
+    [_layerY]: core.int,
+    [dartx.metaKey]: core.bool,
+    [_movementX]: core.int,
+    [_movementY]: core.int,
+    [_pageX]: core.int,
+    [_pageY]: core.int,
+    [dartx.region]: core.String,
+    [_get_relatedTarget]: dart.dynamic,
+    [_screenX]: core.int,
+    [_screenY]: core.int,
+    [dartx.shiftKey]: core.bool,
+    [dartx.toElement]: html$.Node,
+    [_webkitMovementX]: core.int,
+    [_webkitMovementY]: core.int
+  }),
+  getters: () => ({
+    [dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, []),
+    [dartx.client]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.movement]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.offset]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.screen]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.layer]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.page]: dart.definiteFunctionType(math.Point$(core.num), [])
+  }),
+  methods: () => ({
+    [_initMouseEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget]),
+    [_initMouseEvent_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.MouseEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MouseEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.MouseEvent, html$.MouseEvent);
+dart.registerExtension(dart.global.DragEvent, html$.MouseEvent);
+html$.MutationCallback = dart.typedef('MutationCallback', () => dart.functionType(dart.void, [ListOfMutationRecord(), html$.MutationObserver]));
+const _observe_1 = Symbol('_observe_1');
+const _observe = Symbol('_observe');
+const _call = Symbol('_call');
+dart.defineExtensionNames([
+  'disconnect',
+  'takeRecords',
+  'observe'
+]);
+html$.MutationObserver = class MutationObserver extends _interceptors.Interceptor {
+  [dartx.disconnect](...args) {
+    return this.disconnect.apply(this, args);
+  }
+  [_observe](target, options) {
+    let options_1 = html_common.convertDartToNative_Dictionary(options);
+    this[_observe_1](target, options_1);
+    return;
+  }
+  [_observe_1](...args) {
+    return this.observe.apply(this, args);
+  }
+  [dartx.takeRecords](...args) {
+    return this.takeRecords.apply(this, args);
+  }
+  static get supported() {
+    return !!(window.MutationObserver || window.WebKitMutationObserver);
+  }
+  [dartx.observe](target, opts) {
+    let childList = opts && 'childList' in opts ? opts.childList : null;
+    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
+    let characterData = opts && 'characterData' in opts ? opts.characterData : null;
+    let subtree = opts && 'subtree' in opts ? opts.subtree : null;
+    let attributeOldValue = opts && 'attributeOldValue' in opts ? opts.attributeOldValue : null;
+    let characterDataOldValue = opts && 'characterDataOldValue' in opts ? opts.characterDataOldValue : null;
+    let attributeFilter = opts && 'attributeFilter' in opts ? opts.attributeFilter : null;
+    let parsedOptions = html$.MutationObserver._createDict();
+    function override(key, value) {
+      if (value != null) html$.MutationObserver._add(parsedOptions, core.String._check(key), value);
+    }
+    dart.fn(override, dynamicAnddynamicToNull());
+    override('childList', childList);
+    override('attributes', attributes);
+    override('characterData', characterData);
+    override('subtree', subtree);
+    override('attributeOldValue', attributeOldValue);
+    override('characterDataOldValue', characterDataOldValue);
+    if (attributeFilter != null) {
+      override('attributeFilter', html$.MutationObserver._fixupList(attributeFilter));
+    }
+    this[_call](target, parsedOptions);
+  }
+  static _createDict() {
+    return {};
+  }
+  static _add(m, key, value) {
+    m[key] = value;
+  }
+  static _fixupList(list) {
+    return list;
+  }
+  [_call](...args) {
+    return this.observe.apply(this, args);
+  }
+  static new(callback) {
+    0;
+    return new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(_js_helper.convertDartClosureToJS(_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void())(html$._wrapBinaryZone(ListOfMutationRecord(), html$.MutationObserver, dart.void)(callback), 2));
+  }
+};
+dart.setSignature(html$.MutationObserver, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.MutationObserver, [html$.MutationCallback])}),
+  methods: () => ({
+    [dartx.disconnect]: dart.definiteFunctionType(dart.void, []),
+    [_observe]: dart.definiteFunctionType(dart.void, [html$.Node, core.Map]),
+    [_observe_1]: dart.definiteFunctionType(dart.void, [html$.Node, dart.dynamic]),
+    [dartx.takeRecords]: dart.definiteFunctionType(core.List$(html$.MutationRecord), []),
+    [dartx.observe]: dart.definiteFunctionType(dart.void, [html$.Node], {childList: core.bool, attributes: core.bool, characterData: core.bool, subtree: core.bool, attributeOldValue: core.bool, characterDataOldValue: core.bool, attributeFilter: ListOfString()}),
+    [_call]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])
+  }),
+  sfields: () => ({_boolKeys: MapOfString$bool()}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _createDict: dart.definiteFunctionType(dart.dynamic, []),
+    _add: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String, dart.dynamic]),
+    _fixupList: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+  }),
+  names: ['_createDict', '_add', '_fixupList']
+});
+html$.MutationObserver._boolKeys = dart.const(dart.map({childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true}, core.String, core.bool));
+dart.registerExtension(dart.global.MutationObserver, html$.MutationObserver);
+dart.registerExtension(dart.global.WebKitMutationObserver, html$.MutationObserver);
+dart.defineExtensionNames([
+  'addedNodes',
+  'attributeName',
+  'attributeNamespace',
+  'nextSibling',
+  'oldValue',
+  'previousSibling',
+  'removedNodes',
+  'target',
+  'type'
+]);
+html$.MutationRecord = class MutationRecord extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.addedNodes]() {
+    return this.addedNodes;
+  }
+  get [dartx.attributeName]() {
+    return this.attributeName;
+  }
+  get [dartx.attributeNamespace]() {
+    return this.attributeNamespace;
+  }
+  get [dartx.nextSibling]() {
+    return this.nextSibling;
+  }
+  get [dartx.oldValue]() {
+    return this.oldValue;
+  }
+  get [dartx.previousSibling]() {
+    return this.previousSibling;
+  }
+  get [dartx.removedNodes]() {
+    return this.removedNodes;
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.MutationRecord, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MutationRecord, [])}),
+  fields: () => ({
+    [dartx.addedNodes]: ListOfNode(),
+    [dartx.attributeName]: core.String,
+    [dartx.attributeNamespace]: core.String,
+    [dartx.nextSibling]: html$.Node,
+    [dartx.oldValue]: core.String,
+    [dartx.previousSibling]: html$.Node,
+    [dartx.removedNodes]: ListOfNode(),
+    [dartx.target]: html$.Node,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.MutationRecord, html$.MutationRecord);
+const _ensureGetUserMedia = Symbol('_ensureGetUserMedia');
+const _getUserMedia = Symbol('_getUserMedia');
+const _requestMidiAccess_1 = Symbol('_requestMidiAccess_1');
+const _requestMidiAccess_2 = Symbol('_requestMidiAccess_2');
+dart.defineExtensionNames([
+  'language',
+  'getUserMedia',
+  'getBattery',
+  'getGamepads',
+  'getVRDevices',
+  'registerProtocolHandler',
+  'requestMidiAccess',
+  'requestMediaKeySystemAccess',
+  'sendBeacon',
+  'getStorageUpdates',
+  'bluetooth',
+  'connection',
+  'credentials',
+  'doNotTrack',
+  'geolocation',
+  'maxTouchPoints',
+  'mediaDevices',
+  'mimeTypes',
+  'permissions',
+  'presentation',
+  'productSub',
+  'serviceWorker',
+  'services',
+  'storageQuota',
+  'vendor',
+  'vendorSub',
+  'persistentStorage',
+  'temporaryStorage',
+  'hardwareConcurrency',
+  'appCodeName',
+  'appName',
+  'appVersion',
+  'dartEnabled',
+  'platform',
+  'product',
+  'userAgent',
+  'languages',
+  'onLine',
+  'cookieEnabled'
+]);
+html$.Navigator = class Navigator extends _interceptors.Interceptor {
+  get [dartx.language]() {
+    return this.language || this.userLanguage;
+  }
+  [dartx.getUserMedia](opts) {
+    let audio = opts && 'audio' in opts ? opts.audio : false;
+    let video = opts && 'video' in opts ? opts.video : false;
+    let completer = CompleterOfMediaStream().new();
+    let options = dart.map({audio: audio, video: video}, core.String, dart.dynamic);
+    this[_ensureGetUserMedia]();
+    this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
+      completer.complete(stream);
+    }, MediaStreamToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, NavigatorUserMediaErrorToNull()));
+    return completer.future;
+  }
+  [_ensureGetUserMedia]() {
+    if (!this.getUserMedia) {
+      this.getUserMedia = this.getUserMedia || this.webkitGetUserMedia || this.mozGetUserMedia || this.msGetUserMedia;
+    }
+  }
+  [_getUserMedia](...args) {
+    return this.getUserMedia.apply(this, args);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.bluetooth]() {
+    return this.bluetooth;
+  }
+  get [dartx.connection]() {
+    return this.connection;
+  }
+  get [dartx.credentials]() {
+    return this.credentials;
+  }
+  get [dartx.doNotTrack]() {
+    return this.doNotTrack;
+  }
+  get [dartx.geolocation]() {
+    return this.geolocation;
+  }
+  get [dartx.maxTouchPoints]() {
+    return this.maxTouchPoints;
+  }
+  get [dartx.mediaDevices]() {
+    return this.mediaDevices;
+  }
+  get [dartx.mimeTypes]() {
+    return this.mimeTypes;
+  }
+  get [dartx.permissions]() {
+    return this.permissions;
+  }
+  get [dartx.presentation]() {
+    return this.presentation;
+  }
+  get [dartx.productSub]() {
+    return this.productSub;
+  }
+  get [dartx.serviceWorker]() {
+    return this.serviceWorker;
+  }
+  get [dartx.services]() {
+    return this.services;
+  }
+  get [dartx.storageQuota]() {
+    return this.storageQuota;
+  }
+  get [dartx.vendor]() {
+    return this.vendor;
+  }
+  get [dartx.vendorSub]() {
+    return this.vendorSub;
+  }
+  get [dartx.persistentStorage]() {
+    return this.webkitPersistentStorage;
+  }
+  get [dartx.temporaryStorage]() {
+    return this.webkitTemporaryStorage;
+  }
+  [dartx.getBattery](...args) {
+    return this.getBattery.apply(this, args);
+  }
+  [dartx.getGamepads](...args) {
+    return this.getGamepads.apply(this, args);
+  }
+  [dartx.getVRDevices](...args) {
+    return this.getVRDevices.apply(this, args);
+  }
+  [dartx.registerProtocolHandler](...args) {
+    return this.registerProtocolHandler.apply(this, args);
+  }
+  [dartx.requestMidiAccess](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_requestMidiAccess_1](options_1);
+    }
+    return this[_requestMidiAccess_2]();
+  }
+  [_requestMidiAccess_1](...args) {
+    return this.requestMIDIAccess.apply(this, args);
+  }
+  [_requestMidiAccess_2](...args) {
+    return this.requestMIDIAccess.apply(this, args);
+  }
+  [dartx.requestMediaKeySystemAccess](...args) {
+    return this.requestMediaKeySystemAccess.apply(this, args);
+  }
+  [dartx.sendBeacon](...args) {
+    return this.sendBeacon.apply(this, args);
+  }
+  get [dartx.hardwareConcurrency]() {
+    return this.hardwareConcurrency;
+  }
+  get [dartx.appCodeName]() {
+    return this.appCodeName;
+  }
+  get [dartx.appName]() {
+    return this.appName;
+  }
+  get [dartx.appVersion]() {
+    return this.appVersion;
+  }
+  get [dartx.dartEnabled]() {
+    return this.dartEnabled;
+  }
+  get [dartx.platform]() {
+    return this.platform;
+  }
+  get [dartx.product]() {
+    return this.product;
+  }
+  get [dartx.userAgent]() {
+    return this.userAgent;
+  }
+  get [dartx.languages]() {
+    return this.languages;
+  }
+  get [dartx.onLine]() {
+    return this.onLine;
+  }
+  get [dartx.cookieEnabled]() {
+    return this.cookieEnabled;
+  }
+  [dartx.getStorageUpdates](...args) {
+    return this.getStorageUpdates.apply(this, args);
+  }
+};
+html$.Navigator[dart.implements] = () => [html$.NavigatorStorageUtils, html$.NavigatorCpu, html$.NavigatorLanguage, html$.NavigatorOnLine, html$.NavigatorID];
+dart.setSignature(html$.Navigator, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Navigator, [])}),
+  fields: () => ({
+    [dartx.bluetooth]: html$.Bluetooth,
+    [dartx.connection]: html$.NetworkInformation,
+    [dartx.credentials]: html$.CredentialsContainer,
+    [dartx.doNotTrack]: core.String,
+    [dartx.geolocation]: html$.Geolocation,
+    [dartx.maxTouchPoints]: core.int,
+    [dartx.mediaDevices]: html$.MediaDevices,
+    [dartx.mimeTypes]: html$.MimeTypeArray,
+    [dartx.permissions]: html$.Permissions,
+    [dartx.presentation]: html$.Presentation,
+    [dartx.productSub]: core.String,
+    [dartx.serviceWorker]: html$.ServiceWorkerContainer,
+    [dartx.services]: html$.ServicePortCollection,
+    [dartx.storageQuota]: html$.StorageQuota,
+    [dartx.vendor]: core.String,
+    [dartx.vendorSub]: core.String,
+    [dartx.persistentStorage]: html$.DeprecatedStorageQuota,
+    [dartx.temporaryStorage]: html$.DeprecatedStorageQuota,
+    [dartx.hardwareConcurrency]: core.int,
+    [dartx.appCodeName]: core.String,
+    [dartx.appName]: core.String,
+    [dartx.appVersion]: core.String,
+    [dartx.dartEnabled]: core.bool,
+    [dartx.platform]: core.String,
+    [dartx.product]: core.String,
+    [dartx.userAgent]: core.String,
+    [dartx.languages]: ListOfString(),
+    [dartx.onLine]: core.bool,
+    [dartx.cookieEnabled]: core.bool
+  }),
+  getters: () => ({[dartx.language]: dart.definiteFunctionType(core.String, [])}),
+  methods: () => ({
+    [dartx.getUserMedia]: dart.definiteFunctionType(async.Future$(html$.MediaStream), [], {audio: dart.dynamic, video: dart.dynamic}),
+    [_ensureGetUserMedia]: dart.definiteFunctionType(dart.dynamic, []),
+    [_getUserMedia]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$._NavigatorUserMediaSuccessCallback, html$._NavigatorUserMediaErrorCallback]),
+    [dartx.getBattery]: dart.definiteFunctionType(async.Future, []),
+    [dartx.getGamepads]: dart.definiteFunctionType(core.List$(html$.Gamepad), []),
+    [dartx.getVRDevices]: dart.definiteFunctionType(async.Future, []),
+    [dartx.registerProtocolHandler]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.requestMidiAccess]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_requestMidiAccess_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_requestMidiAccess_2]: dart.definiteFunctionType(async.Future, []),
+    [dartx.requestMediaKeySystemAccess]: dart.definiteFunctionType(async.Future, [core.String, ListOfMap()]),
+    [dartx.sendBeacon]: dart.definiteFunctionType(core.bool, [core.String, core.Object]),
+    [dartx.getStorageUpdates]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.Navigator, html$.Navigator);
+dart.defineExtensionNames([
+  'hardwareConcurrency'
+]);
+html$.NavigatorCpu = class NavigatorCpu extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get hardwareConcurrency() {
+    return this[hardwareConcurrency];
+  }
+  set hardwareConcurrency(value) {
+    super.hardwareConcurrency = value;
+  }
+};
+const hardwareConcurrency = Symbol(html$.NavigatorCpu.name + "." + 'hardwareConcurrency'.toString());
+dart.setSignature(html$.NavigatorCpu, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorCpu, [])}),
+  fields: () => ({hardwareConcurrency: core.int})
+});
+dart.defineExtensionMembers(html$.NavigatorCpu, ['hardwareConcurrency']);
+dart.defineExtensionNames([
+  'appCodeName',
+  'appName',
+  'appVersion',
+  'dartEnabled',
+  'platform',
+  'product',
+  'userAgent'
+]);
+html$.NavigatorID = class NavigatorID extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get appCodeName() {
+    return this[appCodeName];
+  }
+  set appCodeName(value) {
+    super.appCodeName = value;
+  }
+  get appName() {
+    return this[appName];
+  }
+  set appName(value) {
+    super.appName = value;
+  }
+  get appVersion() {
+    return this[appVersion];
+  }
+  set appVersion(value) {
+    super.appVersion = value;
+  }
+  get dartEnabled() {
+    return this[dartEnabled];
+  }
+  set dartEnabled(value) {
+    super.dartEnabled = value;
+  }
+  get platform() {
+    return this[platform];
+  }
+  set platform(value) {
+    super.platform = value;
+  }
+  get product() {
+    return this[product];
+  }
+  set product(value) {
+    super.product = value;
+  }
+  get userAgent() {
+    return this[userAgent];
+  }
+  set userAgent(value) {
+    super.userAgent = value;
+  }
+};
+const appCodeName = Symbol(html$.NavigatorID.name + "." + 'appCodeName'.toString());
+const appName = Symbol(html$.NavigatorID.name + "." + 'appName'.toString());
+const appVersion = Symbol(html$.NavigatorID.name + "." + 'appVersion'.toString());
+const dartEnabled = Symbol(html$.NavigatorID.name + "." + 'dartEnabled'.toString());
+const platform = Symbol(html$.NavigatorID.name + "." + 'platform'.toString());
+const product = Symbol(html$.NavigatorID.name + "." + 'product'.toString());
+const userAgent = Symbol(html$.NavigatorID.name + "." + 'userAgent'.toString());
+dart.setSignature(html$.NavigatorID, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorID, [])}),
+  fields: () => ({
+    appCodeName: core.String,
+    appName: core.String,
+    appVersion: core.String,
+    dartEnabled: core.bool,
+    platform: core.String,
+    product: core.String,
+    userAgent: core.String
+  })
+});
+dart.defineExtensionMembers(html$.NavigatorID, [
+  'appCodeName',
+  'appName',
+  'appVersion',
+  'dartEnabled',
+  'platform',
+  'product',
+  'userAgent'
+]);
+dart.defineExtensionNames([
+  'language',
+  'languages'
+]);
+html$.NavigatorLanguage = class NavigatorLanguage extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get language() {
+    return this[language];
+  }
+  set language(value) {
+    super.language = value;
+  }
+  get languages() {
+    return this[languages];
+  }
+  set languages(value) {
+    super.languages = value;
+  }
+};
+const language = Symbol(html$.NavigatorLanguage.name + "." + 'language'.toString());
+const languages = Symbol(html$.NavigatorLanguage.name + "." + 'languages'.toString());
+dart.setSignature(html$.NavigatorLanguage, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorLanguage, [])}),
+  fields: () => ({
+    language: core.String,
+    languages: ListOfString()
+  })
+});
+dart.defineExtensionMembers(html$.NavigatorLanguage, ['language', 'languages']);
+dart.defineExtensionNames([
+  'onLine'
+]);
+html$.NavigatorOnLine = class NavigatorOnLine extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get onLine() {
+    return this[onLine];
+  }
+  set onLine(value) {
+    super.onLine = value;
+  }
+};
+const onLine = Symbol(html$.NavigatorOnLine.name + "." + 'onLine'.toString());
+dart.setSignature(html$.NavigatorOnLine, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorOnLine, [])}),
+  fields: () => ({onLine: core.bool})
+});
+dart.defineExtensionMembers(html$.NavigatorOnLine, ['onLine']);
+dart.defineExtensionNames([
+  'getStorageUpdates',
+  'cookieEnabled'
+]);
+html$.NavigatorStorageUtils = class NavigatorStorageUtils extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.cookieEnabled]() {
+    return this.cookieEnabled;
+  }
+  [dartx.getStorageUpdates](...args) {
+    return this.getStorageUpdates.apply(this, args);
+  }
+};
+dart.setSignature(html$.NavigatorStorageUtils, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorStorageUtils, [])}),
+  fields: () => ({[dartx.cookieEnabled]: core.bool}),
+  methods: () => ({[dartx.getStorageUpdates]: dart.definiteFunctionType(dart.void, [])})
+});
+dart.registerExtension(dart.global.NavigatorStorageUtils, html$.NavigatorStorageUtils);
+dart.defineExtensionNames([
+  'constraintName',
+  'message',
+  'name'
+]);
+html$.NavigatorUserMediaError = class NavigatorUserMediaError extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.constraintName]() {
+    return this.constraintName;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+};
+dart.setSignature(html$.NavigatorUserMediaError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorUserMediaError, [])}),
+  fields: () => ({
+    [dartx.constraintName]: core.String,
+    [dartx.message]: core.String,
+    [dartx.name]: core.String
+  })
+});
+dart.registerExtension(dart.global.NavigatorUserMediaError, html$.NavigatorUserMediaError);
+html$._NavigatorUserMediaErrorCallback = dart.typedef('_NavigatorUserMediaErrorCallback', () => dart.functionType(dart.void, [html$.NavigatorUserMediaError]));
+html$._NavigatorUserMediaSuccessCallback = dart.typedef('_NavigatorUserMediaSuccessCallback', () => dart.functionType(dart.void, [html$.MediaStream]));
+dart.defineExtensionNames([
+  'type'
+]);
+html$.NetworkInformation = class NetworkInformation extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.NetworkInformation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NetworkInformation, [])}),
+  fields: () => ({[dartx.type]: core.String})
+});
+dart.registerExtension(dart.global.NetworkInformation, html$.NetworkInformation);
+html$._ChildNodeListLazy = class _ChildNodeListLazy extends collection.ListBase$(html$.Node) {
+  new(this$) {
+    this[_this] = this$;
+  }
+  get first() {
+    let result = this[_this].firstChild;
+    if (result == null) dart.throw(new core.StateError("No elements"));
+    return result;
+  }
+  get last() {
+    let result = this[_this].lastChild;
+    if (result == null) dart.throw(new core.StateError("No elements"));
+    return result;
+  }
+  get single() {
+    let l = this.length;
+    if (l == 0) dart.throw(new core.StateError("No elements"));
+    if (dart.notNull(l) > 1) dart.throw(new core.StateError("More than one element"));
+    return this[_this].firstChild;
+  }
+  add(value) {
+    this[_this][dartx.append](value);
+  }
+  addAll(iterable) {
+    if (html$._ChildNodeListLazy.is(iterable)) {
+      let otherList = iterable;
+      if (!core.identical(otherList[_this], this[_this])) {
+        for (let i = 0, len = otherList.length; i < dart.notNull(len); ++i) {
+          this[_this][dartx.append](otherList[_this][dartx.firstChild]);
+        }
+      }
+      return;
+    }
+    for (let node of iterable) {
+      this[_this][dartx.append](node);
+    }
+  }
+  insert(index, node) {
+    if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this.length)) {
+      dart.throw(new core.RangeError.range(index, 0, this.length));
+    }
+    if (index == this.length) {
+      this[_this][dartx.append](node);
+    } else {
+      this[_this][dartx.insertBefore](node, this._get(index));
+    }
+  }
+  insertAll(index, iterable) {
+    if (index == this.length) {
+      this.addAll(iterable);
+    } else {
+      let item = this._get(index);
+      this[_this][dartx.insertAllBefore](iterable, item);
+    }
+  }
+  setAll(index, iterable) {
+    dart.throw(new core.UnsupportedError("Cannot setAll on Node list"));
+  }
+  removeLast() {
+    let result = this.last;
+    if (result != null) {
+      this[_this][_removeChild](result);
+    }
+    return result;
+  }
+  removeAt(index) {
+    let result = this._get(index);
+    if (result != null) {
+      this[_this][_removeChild](result);
+    }
+    return result;
+  }
+  remove(object) {
+    if (!html$.Node.is(object)) return false;
+    let node = html$.Node._check(object);
+    if (!core.identical(this[_this], node[dartx.parentNode])) return false;
+    this[_this][_removeChild](node);
+    return true;
+  }
+  [_filter$0](test, removeMatching) {
+    let child = this[_this][dartx.firstChild];
+    while (child != null) {
+      let nextChild = child[dartx.nextNode];
+      if (test(child) == removeMatching) {
+        this[_this][_removeChild](child);
+      }
+      child = nextChild;
+    }
+  }
+  removeWhere(test) {
+    this[_filter$0](test, true);
+  }
+  retainWhere(test) {
+    this[_filter$0](test, false);
+  }
+  clear() {
+    this[_this][_clearChildren]();
+  }
+  _set(index, value) {
+    this[_this][_replaceChild](value, this._get(index));
+    return value;
+  }
+  get iterator() {
+    return this[_this][dartx.childNodes][dartx.iterator];
+  }
+  sort(compare) {
+    if (compare === void 0) compare = null;
+    dart.throw(new core.UnsupportedError("Cannot sort Node list"));
+  }
+  shuffle(random) {
+    if (random === void 0) random = null;
+    dart.throw(new core.UnsupportedError("Cannot shuffle Node list"));
+  }
+  setRange(start, end, iterable, skipCount) {
+    if (skipCount === void 0) skipCount = 0;
+    dart.throw(new core.UnsupportedError("Cannot setRange on Node list"));
+  }
+  fillRange(start, end, fill) {
+    if (fill === void 0) fill = null;
+    dart.throw(new core.UnsupportedError("Cannot fillRange on Node list"));
+  }
+  get length() {
+    return this[_this][dartx.childNodes][dartx.length];
+  }
+  set length(value) {
+    dart.throw(new core.UnsupportedError("Cannot set length on immutable List."));
+  }
+  _get(index) {
+    return this[_this][dartx.childNodes][dartx._get](index);
+  }
+  get rawList() {
+    return this[_this][dartx.childNodes];
+  }
+};
+dart.addSimpleTypeTests(html$._ChildNodeListLazy);
+html$._ChildNodeListLazy[dart.implements] = () => [html_common.NodeListWrapper];
+dart.setSignature(html$._ChildNodeListLazy, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ChildNodeListLazy, [html$.Node])}),
+  fields: () => ({[_this]: html$.Node}),
+  getters: () => ({
+    length: dart.definiteFunctionType(core.int, []),
+    rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
+  }),
+  setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [_filter$0]: dart.definiteFunctionType(dart.void, [NodeTobool(), core.bool]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    _get: dart.definiteFunctionType(html$.Node, [core.int])
+  })
+});
+dart.defineExtensionMembers(html$._ChildNodeListLazy, [
+  'add',
+  'addAll',
+  'insert',
+  'insertAll',
+  'setAll',
+  'removeLast',
+  'removeAt',
+  'remove',
+  'removeWhere',
+  'retainWhere',
+  'clear',
+  '_set',
+  'sort',
+  'shuffle',
+  'setRange',
+  'fillRange',
+  '_get',
+  'first',
+  'last',
+  'single',
+  'iterator',
+  'length',
+  'length'
+]);
+html$.NodeFilter = class NodeFilter extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.NodeFilter, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NodeFilter, [])}),
+  sfields: () => ({
+    FILTER_ACCEPT: core.int,
+    FILTER_REJECT: core.int,
+    FILTER_SKIP: core.int,
+    SHOW_ALL: core.int,
+    SHOW_COMMENT: core.int,
+    SHOW_DOCUMENT: core.int,
+    SHOW_DOCUMENT_FRAGMENT: core.int,
+    SHOW_DOCUMENT_TYPE: core.int,
+    SHOW_ELEMENT: core.int,
+    SHOW_PROCESSING_INSTRUCTION: core.int,
+    SHOW_TEXT: core.int
+  })
+});
+html$.NodeFilter.FILTER_ACCEPT = 1;
+html$.NodeFilter.FILTER_REJECT = 2;
+html$.NodeFilter.FILTER_SKIP = 3;
+html$.NodeFilter.SHOW_ALL = 4294967295;
+html$.NodeFilter.SHOW_COMMENT = 128;
+html$.NodeFilter.SHOW_DOCUMENT = 256;
+html$.NodeFilter.SHOW_DOCUMENT_FRAGMENT = 1024;
+html$.NodeFilter.SHOW_DOCUMENT_TYPE = 512;
+html$.NodeFilter.SHOW_ELEMENT = 1;
+html$.NodeFilter.SHOW_PROCESSING_INSTRUCTION = 64;
+html$.NodeFilter.SHOW_TEXT = 4;
+dart.registerExtension(dart.global.NodeFilter, html$.NodeFilter);
+dart.defineExtensionNames([
+  'detach',
+  'nextNode',
+  'previousNode',
+  'pointerBeforeReferenceNode',
+  'referenceNode',
+  'root',
+  'whatToShow'
+]);
+html$.NodeIterator = class NodeIterator extends _interceptors.Interceptor {
+  static new(root, whatToShow) {
+    return html$.document[_createNodeIterator](root, whatToShow, null);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.pointerBeforeReferenceNode]() {
+    return this.pointerBeforeReferenceNode;
+  }
+  get [dartx.referenceNode]() {
+    return this.referenceNode;
+  }
+  get [dartx.root]() {
+    return this.root;
+  }
+  get [dartx.whatToShow]() {
+    return this.whatToShow;
+  }
+  [dartx.detach](...args) {
+    return this.detach.apply(this, args);
+  }
+  [dartx.nextNode](...args) {
+    return this.nextNode.apply(this, args);
+  }
+  [dartx.previousNode](...args) {
+    return this.previousNode.apply(this, args);
+  }
+};
+dart.setSignature(html$.NodeIterator, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.NodeIterator, [html$.Node, core.int]),
+    _: dart.definiteFunctionType(html$.NodeIterator, [])
+  }),
+  fields: () => ({
+    [dartx.pointerBeforeReferenceNode]: core.bool,
+    [dartx.referenceNode]: html$.Node,
+    [dartx.root]: html$.Node,
+    [dartx.whatToShow]: core.int
+  }),
+  methods: () => ({
+    [dartx.detach]: dart.definiteFunctionType(dart.void, []),
+    [dartx.nextNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.previousNode]: dart.definiteFunctionType(html$.Node, [])
+  })
+});
+dart.registerExtension(dart.global.NodeIterator, html$.NodeIterator);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt'
+]);
+html$.NodeList = class NodeList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [_item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.NodeList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
+dart.setSignature(html$.NodeList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NodeList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    [_item]: dart.definiteFunctionType(html$.Node, [core.int])
+  })
+});
+dart.registerExtension(dart.global.NodeList, html$.NodeList);
+dart.registerExtension(dart.global.RadioNodeList, html$.NodeList);
+dart.defineExtensionNames([
+  'nextElementSibling',
+  'previousElementSibling'
+]);
+html$.NonDocumentTypeChildNode = class NonDocumentTypeChildNode extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.nextElementSibling]() {
+    return this.nextElementSibling;
+  }
+  get [dartx.previousElementSibling]() {
+    return this.previousElementSibling;
+  }
+};
+dart.setSignature(html$.NonDocumentTypeChildNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NonDocumentTypeChildNode, [])}),
+  fields: () => ({
+    [dartx.nextElementSibling]: html$.Element,
+    [dartx.previousElementSibling]: html$.Element
+  })
+});
+dart.registerExtension(dart.global.NonDocumentTypeChildNode, html$.NonDocumentTypeChildNode);
+dart.defineExtensionNames([
+  'getElementById'
+]);
+html$.NonElementParentNode = class NonElementParentNode extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getElementById](...args) {
+    return this.getElementById.apply(this, args);
+  }
+};
+dart.setSignature(html$.NonElementParentNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NonElementParentNode, [])}),
+  methods: () => ({[dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String])})
+});
+dart.registerExtension(dart.global.NonElementParentNode, html$.NonElementParentNode);
+dart.defineExtensionNames([
+  'close',
+  'onClick',
+  'onClose',
+  'onError',
+  'onShow',
+  'body',
+  'data',
+  'dir',
+  'icon',
+  'lang',
+  'permission',
+  'silent',
+  'tag',
+  'title',
+  'vibrate'
+]);
+html$.Notification = class Notification extends html$.EventTarget {
+  static new(title, opts) {
+    let dir = opts && 'dir' in opts ? opts.dir : null;
+    let body = opts && 'body' in opts ? opts.body : null;
+    let lang = opts && 'lang' in opts ? opts.lang : null;
+    let tag = opts && 'tag' in opts ? opts.tag : null;
+    let icon = opts && 'icon' in opts ? opts.icon : null;
+    let parsedOptions = dart.map();
+    if (dir != null) parsedOptions[dartx._set]('dir', dir);
+    if (body != null) parsedOptions[dartx._set]('body', body);
+    if (lang != null) parsedOptions[dartx._set]('lang', lang);
+    if (tag != null) parsedOptions[dartx._set]('tag', tag);
+    if (icon != null) parsedOptions[dartx._set]('icon', icon);
+    return html$.Notification._factoryNotification(title, parsedOptions);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static _factoryNotification(title, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return html$.Notification._create_1(title, options_1);
+    }
+    return html$.Notification._create_2(title);
+  }
+  static _create_1(title, options) {
+    return new self.Notification(title, options);
+  }
+  static _create_2(title) {
+    return new self.Notification(title);
+  }
+  static get supported() {
+    return !!window.Notification;
+  }
+  get [dartx.body]() {
+    return this.body;
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  get [dartx.dir]() {
+    return this.dir;
+  }
+  get [dartx.icon]() {
+    return this.icon;
+  }
+  get [dartx.lang]() {
+    return this.lang;
+  }
+  get [dartx.permission]() {
+    return this.permission;
+  }
+  get [dartx.silent]() {
+    return this.silent;
+  }
+  get [dartx.tag]() {
+    return this.tag;
+  }
+  get [dartx.title]() {
+    return this.title;
+  }
+  get [dartx.vibrate]() {
+    return this.vibrate;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  static requestPermission() {
+    let completer = CompleterOfString().new();
+    html$.Notification._requestPermission(dart.fn(value => {
+      completer.complete(value);
+    }, StringToNull()));
+    return completer.future;
+  }
+  get [dartx.onClick]() {
+    return html$.Notification.clickEvent.forTarget(this);
+  }
+  get [dartx.onClose]() {
+    return html$.Notification.closeEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.Notification.errorEvent.forTarget(this);
+  }
+  get [dartx.onShow]() {
+    return html$.Notification.showEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.Notification, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.Notification, [core.String], {dir: core.String, body: core.String, lang: core.String, tag: core.String, icon: core.String}),
+    _: dart.definiteFunctionType(html$.Notification, [])
+  }),
+  fields: () => ({
+    [dartx.body]: core.String,
+    [dartx.data]: core.Object,
+    [dartx.dir]: core.String,
+    [dartx.icon]: core.String,
+    [dartx.lang]: core.String,
+    [dartx.permission]: core.String,
+    [dartx.silent]: core.bool,
+    [dartx.tag]: core.String,
+    [dartx.title]: core.String,
+    [dartx.vibrate]: ListOfint()
+  }),
+  getters: () => ({
+    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onShow]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({[dartx.close]: dart.definiteFunctionType(dart.void, [])}),
+  sfields: () => ({
+    clickEvent: EventStreamProviderOfEvent(),
+    closeEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    showEvent: EventStreamProviderOfEvent()
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _factoryNotification: dart.definiteFunctionType(html$.Notification, [core.String], [core.Map]),
+    _create_1: dart.definiteFunctionType(html$.Notification, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.Notification, [dart.dynamic]),
+    _requestPermission: dart.definiteFunctionType(dart.void, [], [html$._NotificationPermissionCallback]),
+    requestPermission: dart.definiteFunctionType(async.Future$(core.String), [])
+  }),
+  names: ['_factoryNotification', '_create_1', '_create_2', '_requestPermission', 'requestPermission']
+});
+dart.defineLazy(html$.Notification, {
+  get clickEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('click'));
+  },
+  get closeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('close'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get showEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('show'));
+  }
+});
+dart.registerExtension(dart.global.Notification, html$.Notification);
+dart.defineExtensionNames([
+  'notification'
+]);
+html$.NotificationEvent = class NotificationEvent extends html$.ExtendableEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.NotificationEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.NotificationEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.NotificationEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.NotificationEvent(type);
+  }
+  get [dartx.notification]() {
+    return this.notification;
+  }
+};
+dart.setSignature(html$.NotificationEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.NotificationEvent, []),
+    new: dart.definiteFunctionType(html$.NotificationEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.notification]: html$.Notification}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.NotificationEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.NotificationEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.NotificationEvent, html$.NotificationEvent);
+html$._NotificationPermissionCallback = dart.typedef('_NotificationPermissionCallback', () => dart.functionType(dart.void, [core.String]));
+dart.defineExtensionNames([
+  'reversed',
+  'start',
+  'type'
+]);
+html$.OListElement = class OListElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.OListElement._check(html$.document[dartx.createElement]("ol"));
+  }
+  created() {
+    this[dartx.reversed] = null;
+    this[dartx.start] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.reversed]() {
+    return this.reversed;
+  }
+  set [dartx.reversed](value) {
+    this.reversed = value;
+  }
+  get [dartx.start]() {
+    return this.start;
+  }
+  set [dartx.start](value) {
+    this.start = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(html$.OListElement, 'created');
+dart.setSignature(html$.OListElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.OListElement, []),
+    new: dart.definiteFunctionType(html$.OListElement, []),
+    created: dart.definiteFunctionType(html$.OListElement, [])
+  }),
+  fields: () => ({
+    [dartx.reversed]: core.bool,
+    [dartx.start]: core.int,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLOListElement, html$.OListElement);
+dart.defineExtensionNames([
+  'checkValidity',
+  'reportValidity',
+  'setCustomValidity',
+  'data',
+  'form',
+  'height',
+  'name',
+  'type',
+  'useMap',
+  'validationMessage',
+  'validity',
+  'width',
+  'willValidate'
+]);
+html$.ObjectElement = class ObjectElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ObjectElement._check(html$.document[dartx.createElement]("object"));
+  }
+  created() {
+    this[dartx.data] = null;
+    this[dartx.form] = null;
+    this[dartx.height] = null;
+    this[dartx.name] = null;
+    this[dartx.type] = null;
+    this[dartx.useMap] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.width] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('object');
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  set [dartx.data](value) {
+    this.data = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.useMap]() {
+    return this.useMap;
+  }
+  set [dartx.useMap](value) {
+    this.useMap = value;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [__setter__](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.ObjectElement, 'created');
+dart.setSignature(html$.ObjectElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ObjectElement, []),
+    new: dart.definiteFunctionType(html$.ObjectElement, []),
+    created: dart.definiteFunctionType(html$.ObjectElement, [])
+  }),
+  fields: () => ({
+    [dartx.data]: core.String,
+    [dartx.form]: html$.FormElement,
+    [dartx.height]: core.String,
+    [dartx.name]: core.String,
+    [dartx.type]: core.String,
+    [dartx.useMap]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.width]: core.String,
+    [dartx.willValidate]: core.bool
+  }),
+  methods: () => ({
+    [__getter__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node]),
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLObjectElement, html$.ObjectElement);
+dart.defineExtensionNames([
+  'disabled',
+  'label'
+]);
+html$.OptGroupElement = class OptGroupElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.OptGroupElement._check(html$.document[dartx.createElement]("optgroup"));
+  }
+  created() {
+    this[dartx.disabled] = null;
+    this[dartx.label] = null;
+    super.created();
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  set [dartx.label](value) {
+    this.label = value;
+  }
+};
+dart.defineNamedConstructor(html$.OptGroupElement, 'created');
+dart.setSignature(html$.OptGroupElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.OptGroupElement, []),
+    new: dart.definiteFunctionType(html$.OptGroupElement, []),
+    created: dart.definiteFunctionType(html$.OptGroupElement, [])
+  }),
+  fields: () => ({
+    [dartx.disabled]: core.bool,
+    [dartx.label]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLOptGroupElement, html$.OptGroupElement);
+dart.defineExtensionNames([
+  'defaultSelected',
+  'disabled',
+  'form',
+  'index',
+  'label',
+  'selected',
+  'value'
+]);
+html$.OptionElement = class OptionElement extends html$.HtmlElement {
+  static new(opts) {
+    let data = opts && 'data' in opts ? opts.data : '';
+    let value = opts && 'value' in opts ? opts.value : '';
+    let selected = opts && 'selected' in opts ? opts.selected : false;
+    return html$.OptionElement._(data, value, null, selected);
+  }
+  static _(data, value, defaultSelected, selected) {
+    if (data === void 0) data = null;
+    if (value === void 0) value = null;
+    if (defaultSelected === void 0) defaultSelected = null;
+    if (selected === void 0) selected = null;
+    if (selected != null) {
+      return html$.OptionElement._create_1(data, value, defaultSelected, selected);
+    }
+    if (defaultSelected != null) {
+      return html$.OptionElement._create_2(data, value, defaultSelected);
+    }
+    if (value != null) {
+      return html$.OptionElement._create_3(data, value);
+    }
+    if (data != null) {
+      return html$.OptionElement._create_4(data);
+    }
+    return html$.OptionElement._create_5();
+  }
+  static _create_1(data, value, defaultSelected, selected) {
+    return new Option(data, value, defaultSelected, selected);
+  }
+  static _create_2(data, value, defaultSelected) {
+    return new Option(data, value, defaultSelected);
+  }
+  static _create_3(data, value) {
+    return new Option(data, value);
+  }
+  static _create_4(data) {
+    return new Option(data);
+  }
+  static _create_5() {
+    return new Option();
+  }
+  created() {
+    this[dartx.defaultSelected] = null;
+    this[dartx.disabled] = null;
+    this[dartx.form] = null;
+    this[dartx.index] = null;
+    this[dartx.label] = null;
+    this[dartx.selected] = null;
+    this[dartx.value] = null;
+    super.created();
+  }
+  get [dartx.defaultSelected]() {
+    return this.defaultSelected;
+  }
+  set [dartx.defaultSelected](value) {
+    this.defaultSelected = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.index]() {
+    return this.index;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  set [dartx.label](value) {
+    this.label = value;
+  }
+  get [dartx.selected]() {
+    return this.selected;
+  }
+  set [dartx.selected](value) {
+    this.selected = value;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.defineNamedConstructor(html$.OptionElement, 'created');
+dart.setSignature(html$.OptionElement, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.OptionElement, [], {data: core.String, value: core.String, selected: core.bool}),
+    _: dart.definiteFunctionType(html$.OptionElement, [], [core.String, core.String, core.bool, core.bool]),
+    created: dart.definiteFunctionType(html$.OptionElement, [])
+  }),
+  fields: () => ({
+    [dartx.defaultSelected]: core.bool,
+    [dartx.disabled]: core.bool,
+    [dartx.form]: html$.FormElement,
+    [dartx.index]: core.int,
+    [dartx.label]: core.String,
+    [dartx.selected]: core.bool,
+    [dartx.value]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$.OptionElement, [])
+  }),
+  names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
+});
+dart.registerExtension(dart.global.HTMLOptionElement, html$.OptionElement);
+dart.defineExtensionNames([
+  'checkValidity',
+  'reportValidity',
+  'setCustomValidity',
+  'defaultValue',
+  'form',
+  'htmlFor',
+  'labels',
+  'name',
+  'type',
+  'validationMessage',
+  'validity',
+  'value',
+  'willValidate'
+]);
+html$.OutputElement = class OutputElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.OutputElement._check(html$.document[dartx.createElement]("output"));
+  }
+  created() {
+    this[dartx.defaultValue] = null;
+    this[dartx.form] = null;
+    this[dartx.htmlFor] = null;
+    this[dartx.labels] = null;
+    this[dartx.name] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.value] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('output');
+  }
+  get [dartx.defaultValue]() {
+    return this.defaultValue;
+  }
+  set [dartx.defaultValue](value) {
+    this.defaultValue = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.htmlFor]() {
+    return this.htmlFor;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.OutputElement, 'created');
+dart.setSignature(html$.OutputElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.OutputElement, []),
+    new: dart.definiteFunctionType(html$.OutputElement, []),
+    created: dart.definiteFunctionType(html$.OutputElement, [])
+  }),
+  fields: () => ({
+    [dartx.defaultValue]: core.String,
+    [dartx.form]: html$.FormElement,
+    [dartx.htmlFor]: html$.DomSettableTokenList,
+    [dartx.labels]: ListOfNode(),
+    [dartx.name]: core.String,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.value]: core.String,
+    [dartx.willValidate]: core.bool
+  }),
+  methods: () => ({
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLOutputElement, html$.OutputElement);
+dart.defineExtensionNames([
+  'persisted'
+]);
+html$.PageTransitionEvent = class PageTransitionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.PageTransitionEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.PageTransitionEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.PageTransitionEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.PageTransitionEvent(type);
+  }
+  get [dartx.persisted]() {
+    return this.persisted;
+  }
+};
+dart.setSignature(html$.PageTransitionEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PageTransitionEvent, []),
+    new: dart.definiteFunctionType(html$.PageTransitionEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.persisted]: core.bool}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.PageTransitionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PageTransitionEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.PageTransitionEvent, html$.PageTransitionEvent);
+html$.ParagraphElement = class ParagraphElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ParagraphElement._check(html$.document[dartx.createElement]("p"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.ParagraphElement, 'created');
+dart.setSignature(html$.ParagraphElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ParagraphElement, []),
+    new: dart.definiteFunctionType(html$.ParagraphElement, []),
+    created: dart.definiteFunctionType(html$.ParagraphElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLParagraphElement, html$.ParagraphElement);
+dart.defineExtensionNames([
+  'name',
+  'value'
+]);
+html$.ParamElement = class ParamElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ParamElement._check(html$.document[dartx.createElement]("param"));
+  }
+  created() {
+    this[dartx.name] = null;
+    this[dartx.value] = null;
+    super.created();
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.defineNamedConstructor(html$.ParamElement, 'created');
+dart.setSignature(html$.ParamElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ParamElement, []),
+    new: dart.definiteFunctionType(html$.ParamElement, []),
+    created: dart.definiteFunctionType(html$.ParamElement, [])
+  }),
+  fields: () => ({
+    [dartx.name]: core.String,
+    [dartx.value]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLParamElement, html$.ParamElement);
+html$.ParentNode = class ParentNode extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.ParentNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ParentNode, [])}),
+  fields: () => ({
+    [_childElementCount]: core.int,
+    [_children]: ListOfNode(),
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
+  })
+});
+dart.defineExtensionNames([
+  'formData',
+  'password'
+]);
+html$.PasswordCredential = class PasswordCredential extends html$.Credential {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(id, password, name, iconURL) {
+    if (name === void 0) name = null;
+    if (iconURL === void 0) iconURL = null;
+    if (iconURL != null) {
+      return html$.PasswordCredential._create_1(id, password, name, iconURL);
+    }
+    if (name != null) {
+      return html$.PasswordCredential._create_2(id, password, name);
+    }
+    return html$.PasswordCredential._create_3(id, password);
+  }
+  static _create_1(id, password, name, iconURL) {
+    return new self.PasswordCredential(id, password, name, iconURL);
+  }
+  static _create_2(id, password, name) {
+    return new self.PasswordCredential(id, password, name);
+  }
+  static _create_3(id, password) {
+    return new self.PasswordCredential(id, password);
+  }
+  get [dartx.formData]() {
+    return this.formData;
+  }
+  get [dartx.password]() {
+    return this.password;
+  }
+};
+dart.setSignature(html$.PasswordCredential, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PasswordCredential, []),
+    new: dart.definiteFunctionType(html$.PasswordCredential, [core.String, core.String], [core.String, core.String])
+  }),
+  fields: () => ({
+    [dartx.formData]: html$.FormData,
+    [dartx.password]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3']
+});
+dart.registerExtension(dart.global.PasswordCredential, html$.PasswordCredential);
+dart.defineExtensionNames([
+  'addPath',
+  'arc',
+  'arcTo',
+  'bezierCurveTo',
+  'closePath',
+  'ellipse',
+  'lineTo',
+  'moveTo',
+  'quadraticCurveTo',
+  'rect'
+]);
+html$.Path2D = class Path2D extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(path_OR_text) {
+    if (path_OR_text === void 0) path_OR_text = null;
+    if (path_OR_text == null) {
+      return html$.Path2D._create_1();
+    }
+    if (html$.Path2D.is(path_OR_text) || path_OR_text == null) {
+      return html$.Path2D._create_2(path_OR_text);
+    }
+    if (typeof path_OR_text == 'string' || path_OR_text == null) {
+      return html$.Path2D._create_3(path_OR_text);
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  static _create_1() {
+    return new Path2D();
+  }
+  static _create_2(path_OR_text) {
+    return new Path2D(path_OR_text);
+  }
+  static _create_3(path_OR_text) {
+    return new Path2D(path_OR_text);
+  }
+  [dartx.addPath](...args) {
+    return this.addPath.apply(this, args);
+  }
+  [dartx.arc](...args) {
+    return this.arc.apply(this, args);
+  }
+  [dartx.arcTo](...args) {
+    return this.arcTo.apply(this, args);
+  }
+  [dartx.bezierCurveTo](...args) {
+    return this.bezierCurveTo.apply(this, args);
+  }
+  [dartx.closePath](...args) {
+    return this.closePath.apply(this, args);
+  }
+  [dartx.ellipse](...args) {
+    return this.ellipse.apply(this, args);
+  }
+  [dartx.lineTo](...args) {
+    return this.lineTo.apply(this, args);
+  }
+  [dartx.moveTo](...args) {
+    return this.moveTo.apply(this, args);
+  }
+  [dartx.quadraticCurveTo](...args) {
+    return this.quadraticCurveTo.apply(this, args);
+  }
+  [dartx.rect](...args) {
+    return this.rect.apply(this, args);
+  }
+};
+html$.Path2D[dart.implements] = () => [html$._CanvasPathMethods];
+dart.setSignature(html$.Path2D, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.Path2D, []),
+    new: dart.definiteFunctionType(html$.Path2D, [], [dart.dynamic])
+  }),
+  methods: () => ({
+    [dartx.addPath]: dart.definiteFunctionType(dart.void, [html$.Path2D], [svg$.Matrix]),
+    [dartx.arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
+    [dartx.arcTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
+    [dartx.bezierCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.closePath]: dart.definiteFunctionType(dart.void, []),
+    [dartx.ellipse]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.bool]),
+    [dartx.lineTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.moveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.quadraticCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.rect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.Path2D, []),
+    _create_2: dart.definiteFunctionType(html$.Path2D, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.Path2D, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2', '_create_3']
+});
+dart.registerExtension(dart.global.Path2D, html$.Path2D);
+dart.defineExtensionNames([
+  'clearFrameTimings',
+  'clearMarks',
+  'clearMeasures',
+  'getEntries',
+  'getEntriesByName',
+  'getEntriesByType',
+  'mark',
+  'measure',
+  'now',
+  'setFrameTimingBufferSize',
+  'clearResourceTimings',
+  'setResourceTimingBufferSize',
+  'onResourceTimingBufferFull',
+  'memory',
+  'navigation',
+  'timing'
+]);
+html$.Performance = class Performance extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!window.performance;
+  }
+  get [dartx.memory]() {
+    return this.memory;
+  }
+  get [dartx.navigation]() {
+    return this.navigation;
+  }
+  get [dartx.timing]() {
+    return this.timing;
+  }
+  [dartx.clearFrameTimings](...args) {
+    return this.clearFrameTimings.apply(this, args);
+  }
+  [dartx.clearMarks](...args) {
+    return this.clearMarks.apply(this, args);
+  }
+  [dartx.clearMeasures](...args) {
+    return this.clearMeasures.apply(this, args);
+  }
+  [dartx.getEntries](...args) {
+    return this.getEntries.apply(this, args);
+  }
+  [dartx.getEntriesByName](...args) {
+    return this.getEntriesByName.apply(this, args);
+  }
+  [dartx.getEntriesByType](...args) {
+    return this.getEntriesByType.apply(this, args);
+  }
+  [dartx.mark](...args) {
+    return this.mark.apply(this, args);
+  }
+  [dartx.measure](...args) {
+    return this.measure.apply(this, args);
+  }
+  [dartx.now](...args) {
+    return this.now.apply(this, args);
+  }
+  [dartx.setFrameTimingBufferSize](...args) {
+    return this.setFrameTimingBufferSize.apply(this, args);
+  }
+  [dartx.clearResourceTimings](...args) {
+    return this.webkitClearResourceTimings.apply(this, args);
+  }
+  [dartx.setResourceTimingBufferSize](...args) {
+    return this.webkitSetResourceTimingBufferSize.apply(this, args);
+  }
+  get [dartx.onResourceTimingBufferFull]() {
+    return html$.Performance.resourceTimingBufferFullEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.Performance, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Performance, [])}),
+  fields: () => ({
+    [dartx.memory]: html$.MemoryInfo,
+    [dartx.navigation]: html$.PerformanceNavigation,
+    [dartx.timing]: html$.PerformanceTiming
+  }),
+  getters: () => ({[dartx.onResourceTimingBufferFull]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.clearFrameTimings]: dart.definiteFunctionType(dart.void, []),
+    [dartx.clearMarks]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.clearMeasures]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.getEntries]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), []),
+    [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
+    [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String]),
+    [dartx.mark]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.measure]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.now]: dart.definiteFunctionType(core.double, []),
+    [dartx.setFrameTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.clearResourceTimings]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setResourceTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int])
+  }),
+  sfields: () => ({resourceTimingBufferFullEvent: EventStreamProviderOfEvent()}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineLazy(html$.Performance, {
+  get resourceTimingBufferFullEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('webkitresourcetimingbufferfull'));
+  }
+});
+dart.registerExtension(dart.global.Performance, html$.Performance);
+dart.defineExtensionNames([
+  'duration',
+  'entryType',
+  'name',
+  'startTime'
+]);
+html$.PerformanceEntry = class PerformanceEntry extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  get [dartx.entryType]() {
+    return this.entryType;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.startTime]() {
+    return this.startTime;
+  }
+};
+dart.setSignature(html$.PerformanceEntry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceEntry, [])}),
+  fields: () => ({
+    [dartx.duration]: core.double,
+    [dartx.entryType]: core.String,
+    [dartx.name]: core.String,
+    [dartx.startTime]: core.double
+  })
+});
+dart.registerExtension(dart.global.PerformanceEntry, html$.PerformanceEntry);
+dart.defineExtensionNames([
+  'sourceFrame'
+]);
+html$.PerformanceCompositeTiming = class PerformanceCompositeTiming extends html$.PerformanceEntry {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.sourceFrame]() {
+    return this.sourceFrame;
+  }
+};
+dart.setSignature(html$.PerformanceCompositeTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceCompositeTiming, [])}),
+  fields: () => ({[dartx.sourceFrame]: core.int})
+});
+dart.registerExtension(dart.global.PerformanceCompositeTiming, html$.PerformanceCompositeTiming);
+html$.PerformanceMark = class PerformanceMark extends html$.PerformanceEntry {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.PerformanceMark, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceMark, [])})
+});
+dart.registerExtension(dart.global.PerformanceMark, html$.PerformanceMark);
+html$.PerformanceMeasure = class PerformanceMeasure extends html$.PerformanceEntry {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.PerformanceMeasure, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceMeasure, [])})
+});
+dart.registerExtension(dart.global.PerformanceMeasure, html$.PerformanceMeasure);
+dart.defineExtensionNames([
+  'redirectCount',
+  'type'
+]);
+html$.PerformanceNavigation = class PerformanceNavigation extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.redirectCount]() {
+    return this.redirectCount;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.PerformanceNavigation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceNavigation, [])}),
+  fields: () => ({
+    [dartx.redirectCount]: core.int,
+    [dartx.type]: core.int
+  }),
+  sfields: () => ({
+    TYPE_BACK_FORWARD: core.int,
+    TYPE_NAVIGATE: core.int,
+    TYPE_RELOAD: core.int,
+    TYPE_RESERVED: core.int
+  })
+});
+html$.PerformanceNavigation.TYPE_BACK_FORWARD = 2;
+html$.PerformanceNavigation.TYPE_NAVIGATE = 0;
+html$.PerformanceNavigation.TYPE_RELOAD = 1;
+html$.PerformanceNavigation.TYPE_RESERVED = 255;
+dart.registerExtension(dart.global.PerformanceNavigation, html$.PerformanceNavigation);
+dart.defineExtensionNames([
+  'sourceFrame'
+]);
+html$.PerformanceRenderTiming = class PerformanceRenderTiming extends html$.PerformanceEntry {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.sourceFrame]() {
+    return this.sourceFrame;
+  }
+};
+dart.setSignature(html$.PerformanceRenderTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceRenderTiming, [])}),
+  fields: () => ({[dartx.sourceFrame]: core.int})
+});
+dart.registerExtension(dart.global.PerformanceRenderTiming, html$.PerformanceRenderTiming);
+dart.defineExtensionNames([
+  'connectEnd',
+  'connectStart',
+  'domainLookupEnd',
+  'domainLookupStart',
+  'fetchStart',
+  'initiatorType',
+  'redirectEnd',
+  'redirectStart',
+  'requestStart',
+  'responseEnd',
+  'responseStart',
+  'secureConnectionStart',
+  'workerStart'
+]);
+html$.PerformanceResourceTiming = class PerformanceResourceTiming extends html$.PerformanceEntry {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.connectEnd]() {
+    return this.connectEnd;
+  }
+  get [dartx.connectStart]() {
+    return this.connectStart;
+  }
+  get [dartx.domainLookupEnd]() {
+    return this.domainLookupEnd;
+  }
+  get [dartx.domainLookupStart]() {
+    return this.domainLookupStart;
+  }
+  get [dartx.fetchStart]() {
+    return this.fetchStart;
+  }
+  get [dartx.initiatorType]() {
+    return this.initiatorType;
+  }
+  get [dartx.redirectEnd]() {
+    return this.redirectEnd;
+  }
+  get [dartx.redirectStart]() {
+    return this.redirectStart;
+  }
+  get [dartx.requestStart]() {
+    return this.requestStart;
+  }
+  get [dartx.responseEnd]() {
+    return this.responseEnd;
+  }
+  get [dartx.responseStart]() {
+    return this.responseStart;
+  }
+  get [dartx.secureConnectionStart]() {
+    return this.secureConnectionStart;
+  }
+  get [dartx.workerStart]() {
+    return this.workerStart;
+  }
+};
+dart.setSignature(html$.PerformanceResourceTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceResourceTiming, [])}),
+  fields: () => ({
+    [dartx.connectEnd]: core.double,
+    [dartx.connectStart]: core.double,
+    [dartx.domainLookupEnd]: core.double,
+    [dartx.domainLookupStart]: core.double,
+    [dartx.fetchStart]: core.double,
+    [dartx.initiatorType]: core.String,
+    [dartx.redirectEnd]: core.double,
+    [dartx.redirectStart]: core.double,
+    [dartx.requestStart]: core.double,
+    [dartx.responseEnd]: core.double,
+    [dartx.responseStart]: core.double,
+    [dartx.secureConnectionStart]: core.double,
+    [dartx.workerStart]: core.double
+  })
+});
+dart.registerExtension(dart.global.PerformanceResourceTiming, html$.PerformanceResourceTiming);
+dart.defineExtensionNames([
+  'connectEnd',
+  'connectStart',
+  'domComplete',
+  'domContentLoadedEventEnd',
+  'domContentLoadedEventStart',
+  'domInteractive',
+  'domLoading',
+  'domainLookupEnd',
+  'domainLookupStart',
+  'fetchStart',
+  'loadEventEnd',
+  'loadEventStart',
+  'navigationStart',
+  'redirectEnd',
+  'redirectStart',
+  'requestStart',
+  'responseEnd',
+  'responseStart',
+  'secureConnectionStart',
+  'unloadEventEnd',
+  'unloadEventStart'
+]);
+html$.PerformanceTiming = class PerformanceTiming extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.connectEnd]() {
+    return this.connectEnd;
+  }
+  get [dartx.connectStart]() {
+    return this.connectStart;
+  }
+  get [dartx.domComplete]() {
+    return this.domComplete;
+  }
+  get [dartx.domContentLoadedEventEnd]() {
+    return this.domContentLoadedEventEnd;
+  }
+  get [dartx.domContentLoadedEventStart]() {
+    return this.domContentLoadedEventStart;
+  }
+  get [dartx.domInteractive]() {
+    return this.domInteractive;
+  }
+  get [dartx.domLoading]() {
+    return this.domLoading;
+  }
+  get [dartx.domainLookupEnd]() {
+    return this.domainLookupEnd;
+  }
+  get [dartx.domainLookupStart]() {
+    return this.domainLookupStart;
+  }
+  get [dartx.fetchStart]() {
+    return this.fetchStart;
+  }
+  get [dartx.loadEventEnd]() {
+    return this.loadEventEnd;
+  }
+  get [dartx.loadEventStart]() {
+    return this.loadEventStart;
+  }
+  get [dartx.navigationStart]() {
+    return this.navigationStart;
+  }
+  get [dartx.redirectEnd]() {
+    return this.redirectEnd;
+  }
+  get [dartx.redirectStart]() {
+    return this.redirectStart;
+  }
+  get [dartx.requestStart]() {
+    return this.requestStart;
+  }
+  get [dartx.responseEnd]() {
+    return this.responseEnd;
+  }
+  get [dartx.responseStart]() {
+    return this.responseStart;
+  }
+  get [dartx.secureConnectionStart]() {
+    return this.secureConnectionStart;
+  }
+  get [dartx.unloadEventEnd]() {
+    return this.unloadEventEnd;
+  }
+  get [dartx.unloadEventStart]() {
+    return this.unloadEventStart;
+  }
+};
+dart.setSignature(html$.PerformanceTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceTiming, [])}),
+  fields: () => ({
+    [dartx.connectEnd]: core.int,
+    [dartx.connectStart]: core.int,
+    [dartx.domComplete]: core.int,
+    [dartx.domContentLoadedEventEnd]: core.int,
+    [dartx.domContentLoadedEventStart]: core.int,
+    [dartx.domInteractive]: core.int,
+    [dartx.domLoading]: core.int,
+    [dartx.domainLookupEnd]: core.int,
+    [dartx.domainLookupStart]: core.int,
+    [dartx.fetchStart]: core.int,
+    [dartx.loadEventEnd]: core.int,
+    [dartx.loadEventStart]: core.int,
+    [dartx.navigationStart]: core.int,
+    [dartx.redirectEnd]: core.int,
+    [dartx.redirectStart]: core.int,
+    [dartx.requestStart]: core.int,
+    [dartx.responseEnd]: core.int,
+    [dartx.responseStart]: core.int,
+    [dartx.secureConnectionStart]: core.int,
+    [dartx.unloadEventEnd]: core.int,
+    [dartx.unloadEventStart]: core.int
+  })
+});
+dart.registerExtension(dart.global.PerformanceTiming, html$.PerformanceTiming);
+dart.defineExtensionNames([
+  'registration'
+]);
+html$.PeriodicSyncEvent = class PeriodicSyncEvent extends html$.ExtendableEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, init) {
+    let init_1 = html_common.convertDartToNative_Dictionary(init);
+    return html$.PeriodicSyncEvent._create_1(type, init_1);
+  }
+  static _create_1(type, init) {
+    return new self.PeriodicSyncEvent(type, init);
+  }
+  get [dartx.registration]() {
+    return this.registration;
+  }
+};
+dart.setSignature(html$.PeriodicSyncEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PeriodicSyncEvent, []),
+    new: dart.definiteFunctionType(html$.PeriodicSyncEvent, [core.String, core.Map])
+  }),
+  fields: () => ({[dartx.registration]: html$.PeriodicSyncRegistration}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.PeriodicSyncEvent, [dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.PeriodicSyncEvent, html$.PeriodicSyncEvent);
+const _register_1 = Symbol('_register_1');
+const _register_2 = Symbol('_register_2');
+dart.defineExtensionNames([
+  'getRegistration',
+  'getRegistrations',
+  'permissionState',
+  'register',
+  'minPossiblePeriod'
+]);
+html$.PeriodicSyncManager = class PeriodicSyncManager extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.minPossiblePeriod]() {
+    return this.minPossiblePeriod;
+  }
+  [dartx.getRegistration](...args) {
+    return this.getRegistration.apply(this, args);
+  }
+  [dartx.getRegistrations](...args) {
+    return this.getRegistrations.apply(this, args);
+  }
+  [dartx.permissionState](...args) {
+    return this.permissionState.apply(this, args);
+  }
+  [dartx.register](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_register_1](options_1);
+    }
+    return this[_register_2]();
+  }
+  [_register_1](...args) {
+    return this.register.apply(this, args);
+  }
+  [_register_2](...args) {
+    return this.register.apply(this, args);
+  }
+};
+dart.setSignature(html$.PeriodicSyncManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PeriodicSyncManager, [])}),
+  fields: () => ({[dartx.minPossiblePeriod]: core.int}),
+  methods: () => ({
+    [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
+    [dartx.permissionState]: dart.definiteFunctionType(async.Future, []),
+    [dartx.register]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_register_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_register_2]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.PeriodicSyncManager, html$.PeriodicSyncManager);
+dart.defineExtensionNames([
+  'unregister',
+  'minPeriod',
+  'networkState',
+  'powerState',
+  'tag'
+]);
+html$.PeriodicSyncRegistration = class PeriodicSyncRegistration extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.minPeriod]() {
+    return this.minPeriod;
+  }
+  get [dartx.networkState]() {
+    return this.networkState;
+  }
+  get [dartx.powerState]() {
+    return this.powerState;
+  }
+  get [dartx.tag]() {
+    return this.tag;
+  }
+  [dartx.unregister](...args) {
+    return this.unregister.apply(this, args);
+  }
+};
+dart.setSignature(html$.PeriodicSyncRegistration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PeriodicSyncRegistration, [])}),
+  fields: () => ({
+    [dartx.minPeriod]: core.int,
+    [dartx.networkState]: core.String,
+    [dartx.powerState]: core.String,
+    [dartx.tag]: core.String
+  }),
+  methods: () => ({[dartx.unregister]: dart.definiteFunctionType(async.Future, [])})
+});
+dart.registerExtension(dart.global.PeriodicSyncRegistration, html$.PeriodicSyncRegistration);
+dart.defineExtensionNames([
+  'onChange',
+  'state',
+  'status'
+]);
+html$.PermissionStatus = class PermissionStatus extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.state]() {
+    return this.state;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  get [dartx.onChange]() {
+    return html$.PermissionStatus.changeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.PermissionStatus, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PermissionStatus, [])}),
+  fields: () => ({
+    [dartx.state]: core.String,
+    [dartx.status]: core.String
+  }),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.PermissionStatus, {
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.PermissionStatus, html$.PermissionStatus);
+dart.defineExtensionNames([
+  'query'
+]);
+html$.Permissions = class Permissions extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.query](...args) {
+    return this.query.apply(this, args);
+  }
+};
+dart.setSignature(html$.Permissions, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Permissions, [])}),
+  methods: () => ({[dartx.query]: dart.definiteFunctionType(async.Future, [core.Object])})
+});
+dart.registerExtension(dart.global.Permissions, html$.Permissions);
+html$.PictureElement = class PictureElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.PictureElement, 'created');
+dart.setSignature(html$.PictureElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PictureElement, []),
+    created: dart.definiteFunctionType(html$.PictureElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLPictureElement, html$.PictureElement);
+dart.defineExtensionNames([
+  'item',
+  'namedItem',
+  'description',
+  'filename',
+  'length',
+  'name'
+]);
+html$.Plugin = class Plugin extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.description]() {
+    return this.description;
+  }
+  get [dartx.filename]() {
+    return this.filename;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+};
+dart.setSignature(html$.Plugin, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Plugin, [])}),
+  fields: () => ({
+    [dartx.description]: core.String,
+    [dartx.filename]: core.String,
+    [dartx.length]: core.int,
+    [dartx.name]: core.String
+  }),
+  methods: () => ({
+    [dartx.item]: dart.definiteFunctionType(html$.MimeType, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.MimeType, [core.String])
+  })
+});
+dart.registerExtension(dart.global.Plugin, html$.Plugin);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item',
+  'namedItem',
+  'refresh'
+]);
+html$.PluginArray = class PluginArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Plugin), html$.ImmutableListMixin$(html$.Plugin)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+  [dartx.refresh](...args) {
+    return this.refresh.apply(this, args);
+  }
+};
+html$.PluginArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfPlugin()];
+dart.setSignature(html$.PluginArray, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PluginArray, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.Plugin, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Plugin]),
+    [dartx.item]: dart.definiteFunctionType(html$.Plugin, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.Plugin, [core.String]),
+    [dartx.refresh]: dart.definiteFunctionType(dart.void, [core.bool])
+  })
+});
+dart.registerExtension(dart.global.PluginArray, html$.PluginArray);
+dart.defineExtensionNames([
+  'createdCallback',
+  'closeable',
+  'message'
+]);
+html$.PluginPlaceholderElement = class PluginPlaceholderElement extends html$.DivElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.closeable] = null;
+    this[dartx.message] = null;
+    super.created();
+  }
+  get [dartx.closeable]() {
+    return this.closeable;
+  }
+  set [dartx.closeable](value) {
+    this.closeable = value;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+  set [dartx.message](value) {
+    this.message = value;
+  }
+  [dartx.createdCallback](...args) {
+    return this.createdCallback.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.PluginPlaceholderElement, 'created');
+dart.setSignature(html$.PluginPlaceholderElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PluginPlaceholderElement, []),
+    created: dart.definiteFunctionType(html$.PluginPlaceholderElement, [])
+  }),
+  fields: () => ({
+    [dartx.closeable]: core.bool,
+    [dartx.message]: core.String
+  }),
+  methods: () => ({[dartx.createdCallback]: dart.definiteFunctionType(dart.void, [])})
+});
+dart.registerExtension(dart.global.PluginPlaceholderElement, html$.PluginPlaceholderElement);
+dart.defineExtensionNames([
+  'height',
+  'isPrimary',
+  'pointerId',
+  'pointerType',
+  'pressure',
+  'tiltX',
+  'tiltY',
+  'width'
+]);
+html$.PointerEvent = class PointerEvent extends html$.MouseEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.PointerEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.PointerEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.PointerEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.PointerEvent(type);
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.isPrimary]() {
+    return this.isPrimary;
+  }
+  get [dartx.pointerId]() {
+    return this.pointerId;
+  }
+  get [dartx.pointerType]() {
+    return this.pointerType;
+  }
+  get [dartx.pressure]() {
+    return this.pressure;
+  }
+  get [dartx.tiltX]() {
+    return this.tiltX;
+  }
+  get [dartx.tiltY]() {
+    return this.tiltY;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+};
+dart.setSignature(html$.PointerEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PointerEvent, []),
+    new: dart.definiteFunctionType(html$.PointerEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.height]: core.double,
+    [dartx.isPrimary]: core.bool,
+    [dartx.pointerId]: core.int,
+    [dartx.pointerType]: core.String,
+    [dartx.pressure]: core.double,
+    [dartx.tiltX]: core.int,
+    [dartx.tiltY]: core.int,
+    [dartx.width]: core.double
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.PointerEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PointerEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.PointerEvent, html$.PointerEvent);
+dart.defineExtensionNames([
+  'state'
+]);
+html$.PopStateEvent = class PopStateEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.PopStateEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.PopStateEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.PopStateEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.PopStateEvent(type);
+  }
+  get [dartx.state]() {
+    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_state]);
+  }
+  get [_get_state]() {
+    return this.state;
+  }
+};
+dart.setSignature(html$.PopStateEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PopStateEvent, []),
+    new: dart.definiteFunctionType(html$.PopStateEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[_get_state]: dart.dynamic}),
+  getters: () => ({[dartx.state]: dart.definiteFunctionType(dart.dynamic, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.PopStateEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PopStateEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.PopStateEvent, html$.PopStateEvent);
+html$._PositionCallback = dart.typedef('_PositionCallback', () => dart.functionType(dart.void, [html$.Geoposition]));
+dart.defineExtensionNames([
+  'code',
+  'message'
+]);
+html$.PositionError = class PositionError extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+};
+dart.setSignature(html$.PositionError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PositionError, [])}),
+  fields: () => ({
+    [dartx.code]: core.int,
+    [dartx.message]: core.String
+  }),
+  sfields: () => ({
+    PERMISSION_DENIED: core.int,
+    POSITION_UNAVAILABLE: core.int,
+    TIMEOUT: core.int
+  })
+});
+html$.PositionError.PERMISSION_DENIED = 1;
+html$.PositionError.POSITION_UNAVAILABLE = 2;
+html$.PositionError.TIMEOUT = 3;
+dart.registerExtension(dart.global.PositionError, html$.PositionError);
+html$._PositionErrorCallback = dart.typedef('_PositionErrorCallback', () => dart.functionType(dart.void, [html$.PositionError]));
+dart.defineExtensionNames([
+  'getImmediateState',
+  'getState',
+  'resetSensor'
+]);
+html$.PositionSensorVRDevice = class PositionSensorVRDevice extends html$.VRDevice {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getImmediateState](...args) {
+    return this.getImmediateState.apply(this, args);
+  }
+  [dartx.getState](...args) {
+    return this.getState.apply(this, args);
+  }
+  [dartx.resetSensor](...args) {
+    return this.resetSensor.apply(this, args);
+  }
+};
+dart.setSignature(html$.PositionSensorVRDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PositionSensorVRDevice, [])}),
+  methods: () => ({
+    [dartx.getImmediateState]: dart.definiteFunctionType(html$.VRPositionState, []),
+    [dartx.getState]: dart.definiteFunctionType(html$.VRPositionState, []),
+    [dartx.resetSensor]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.PositionSensorVRDevice, html$.PositionSensorVRDevice);
+html$.PreElement = class PreElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.PreElement._check(html$.document[dartx.createElement]("pre"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.PreElement, 'created');
+dart.setSignature(html$.PreElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PreElement, []),
+    new: dart.definiteFunctionType(html$.PreElement, []),
+    created: dart.definiteFunctionType(html$.PreElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLPreElement, html$.PreElement);
+dart.defineExtensionNames([
+  'getAvailability',
+  'joinSession',
+  'startSession',
+  'session'
+]);
+html$.Presentation = class Presentation extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.session]() {
+    return this.session;
+  }
+  [dartx.getAvailability](...args) {
+    return this.getAvailability.apply(this, args);
+  }
+  [dartx.joinSession](...args) {
+    return this.joinSession.apply(this, args);
+  }
+  [dartx.startSession](...args) {
+    return this.startSession.apply(this, args);
+  }
+};
+dart.setSignature(html$.Presentation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Presentation, [])}),
+  fields: () => ({[dartx.session]: html$.PresentationSession}),
+  methods: () => ({
+    [dartx.getAvailability]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.joinSession]: dart.definiteFunctionType(async.Future, [core.String, core.String]),
+    [dartx.startSession]: dart.definiteFunctionType(async.Future, [core.String])
+  })
+});
+dart.registerExtension(dart.global.Presentation, html$.Presentation);
+dart.defineExtensionNames([
+  'onChange',
+  'value'
+]);
+html$.PresentationAvailability = class PresentationAvailability extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  get [dartx.onChange]() {
+    return html$.PresentationAvailability.changeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.PresentationAvailability, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PresentationAvailability, [])}),
+  fields: () => ({[dartx.value]: core.bool}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.PresentationAvailability, {
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.PresentationAvailability, html$.PresentationAvailability);
+dart.defineExtensionNames([
+  'close',
+  'send',
+  'onMessage',
+  'binaryType',
+  'id',
+  'state'
+]);
+html$.PresentationSession = class PresentationSession extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.binaryType]() {
+    return this.binaryType;
+  }
+  set [dartx.binaryType](value) {
+    this.binaryType = value;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.state]() {
+    return this.state;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.send](...args) {
+    return this.send.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.PresentationSession.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.PresentationSession, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PresentationSession, [])}),
+  fields: () => ({
+    [dartx.binaryType]: core.String,
+    [dartx.id]: core.String,
+    [dartx.state]: core.String
+  }),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.PresentationSession, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.PresentationSession, html$.PresentationSession);
+dart.defineExtensionNames([
+  'sheet',
+  'target'
+]);
+html$.ProcessingInstruction = class ProcessingInstruction extends html$.CharacterData {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.sheet]() {
+    return this.sheet;
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+};
+dart.setSignature(html$.ProcessingInstruction, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ProcessingInstruction, [])}),
+  fields: () => ({
+    [dartx.sheet]: html$.StyleSheet,
+    [dartx.target]: core.String
+  })
+});
+dart.registerExtension(dart.global.ProcessingInstruction, html$.ProcessingInstruction);
+dart.defineExtensionNames([
+  'labels',
+  'max',
+  'position',
+  'value'
+]);
+html$.ProgressElement = class ProgressElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ProgressElement._check(html$.document[dartx.createElement]("progress"));
+  }
+  created() {
+    this[dartx.labels] = null;
+    this[dartx.max] = null;
+    this[dartx.position] = null;
+    this[dartx.value] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('progress');
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.max]() {
+    return this.max;
+  }
+  set [dartx.max](value) {
+    this.max = value;
+  }
+  get [dartx.position]() {
+    return this.position;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.defineNamedConstructor(html$.ProgressElement, 'created');
+dart.setSignature(html$.ProgressElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ProgressElement, []),
+    new: dart.definiteFunctionType(html$.ProgressElement, []),
+    created: dart.definiteFunctionType(html$.ProgressElement, [])
+  }),
+  fields: () => ({
+    [dartx.labels]: ListOfNode(),
+    [dartx.max]: core.num,
+    [dartx.position]: core.double,
+    [dartx.value]: core.num
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLProgressElement, html$.ProgressElement);
+dart.defineExtensionNames([
+  'lengthComputable',
+  'loaded',
+  'total'
+]);
+html$.ProgressEvent = class ProgressEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.ProgressEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.ProgressEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.ProgressEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.ProgressEvent(type);
+  }
+  get [dartx.lengthComputable]() {
+    return this.lengthComputable;
+  }
+  get [dartx.loaded]() {
+    return this.loaded;
+  }
+  get [dartx.total]() {
+    return this.total;
+  }
+};
+dart.setSignature(html$.ProgressEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ProgressEvent, []),
+    new: dart.definiteFunctionType(html$.ProgressEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.lengthComputable]: core.bool,
+    [dartx.loaded]: core.int,
+    [dartx.total]: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ProgressEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ProgressEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.ProgressEvent, html$.ProgressEvent);
+dart.defineExtensionNames([
+  'promise',
+  'reason'
+]);
+html$.PromiseRejectionEvent = class PromiseRejectionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.PromiseRejectionEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.PromiseRejectionEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.PromiseRejectionEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.PromiseRejectionEvent(type);
+  }
+  get [dartx.promise]() {
+    return this.promise;
+  }
+  get [dartx.reason]() {
+    return this.reason;
+  }
+};
+dart.setSignature(html$.PromiseRejectionEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PromiseRejectionEvent, []),
+    new: dart.definiteFunctionType(html$.PromiseRejectionEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.promise]: async.Future,
+    [dartx.reason]: core.Object
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.PromiseRejectionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PromiseRejectionEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.PromiseRejectionEvent, html$.PromiseRejectionEvent);
+dart.defineExtensionNames([
+  'data'
+]);
+html$.PushEvent = class PushEvent extends html$.ExtendableEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.PushEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.PushEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.PushEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.PushEvent(type);
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+};
+dart.setSignature(html$.PushEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PushEvent, []),
+    new: dart.definiteFunctionType(html$.PushEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.data]: html$.PushMessageData}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.PushEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PushEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.PushEvent, html$.PushEvent);
+const _permissionState_1 = Symbol('_permissionState_1');
+const _permissionState_2 = Symbol('_permissionState_2');
+const _subscribe_1 = Symbol('_subscribe_1');
+const _subscribe_2 = Symbol('_subscribe_2');
+dart.defineExtensionNames([
+  'getSubscription',
+  'permissionState',
+  'subscribe'
+]);
+html$.PushManager = class PushManager extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getSubscription](...args) {
+    return this.getSubscription.apply(this, args);
+  }
+  [dartx.permissionState](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_permissionState_1](options_1);
+    }
+    return this[_permissionState_2]();
+  }
+  [_permissionState_1](...args) {
+    return this.permissionState.apply(this, args);
+  }
+  [_permissionState_2](...args) {
+    return this.permissionState.apply(this, args);
+  }
+  [dartx.subscribe](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_subscribe_1](options_1);
+    }
+    return this[_subscribe_2]();
+  }
+  [_subscribe_1](...args) {
+    return this.subscribe.apply(this, args);
+  }
+  [_subscribe_2](...args) {
+    return this.subscribe.apply(this, args);
+  }
+};
+dart.setSignature(html$.PushManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PushManager, [])}),
+  methods: () => ({
+    [dartx.getSubscription]: dart.definiteFunctionType(async.Future, []),
+    [dartx.permissionState]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_permissionState_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_permissionState_2]: dart.definiteFunctionType(async.Future, []),
+    [dartx.subscribe]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_subscribe_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_subscribe_2]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.PushManager, html$.PushManager);
+dart.defineExtensionNames([
+  'arrayBuffer',
+  'blob',
+  'json',
+  'text'
+]);
+html$.PushMessageData = class PushMessageData extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(message) {
+    return html$.PushMessageData._create_1(message);
+  }
+  static _create_1(message) {
+    return new self.PushMessageData(message);
+  }
+  [dartx.arrayBuffer](...args) {
+    return this.arrayBuffer.apply(this, args);
+  }
+  [dartx.blob](...args) {
+    return this.blob.apply(this, args);
+  }
+  [dartx.json](...args) {
+    return this.json.apply(this, args);
+  }
+  [dartx.text](...args) {
+    return this.text.apply(this, args);
+  }
+};
+dart.setSignature(html$.PushMessageData, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.PushMessageData, []),
+    new: dart.definiteFunctionType(html$.PushMessageData, [core.String])
+  }),
+  methods: () => ({
+    [dartx.arrayBuffer]: dart.definiteFunctionType(typed_data.ByteBuffer, []),
+    [dartx.blob]: dart.definiteFunctionType(html$.Blob, []),
+    [dartx.json]: dart.definiteFunctionType(core.Object, []),
+    [dartx.text]: dart.definiteFunctionType(core.String, [])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.PushMessageData, [dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.PushMessageData, html$.PushMessageData);
+dart.defineExtensionNames([
+  'unsubscribe',
+  'endpoint'
+]);
+html$.PushSubscription = class PushSubscription extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.endpoint]() {
+    return this.endpoint;
+  }
+  [dartx.unsubscribe](...args) {
+    return this.unsubscribe.apply(this, args);
+  }
+};
+dart.setSignature(html$.PushSubscription, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PushSubscription, [])}),
+  fields: () => ({[dartx.endpoint]: core.String}),
+  methods: () => ({[dartx.unsubscribe]: dart.definiteFunctionType(async.Future, [])})
+});
+dart.registerExtension(dart.global.PushSubscription, html$.PushSubscription);
+dart.defineExtensionNames([
+  'cite'
+]);
+html$.QuoteElement = class QuoteElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.QuoteElement._check(html$.document[dartx.createElement]("q"));
+  }
+  created() {
+    this[dartx.cite] = null;
+    super.created();
+  }
+  get [dartx.cite]() {
+    return this.cite;
+  }
+  set [dartx.cite](value) {
+    this.cite = value;
+  }
+};
+dart.defineNamedConstructor(html$.QuoteElement, 'created');
+dart.setSignature(html$.QuoteElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.QuoteElement, []),
+    new: dart.definiteFunctionType(html$.QuoteElement, []),
+    created: dart.definiteFunctionType(html$.QuoteElement, [])
+  }),
+  fields: () => ({[dartx.cite]: core.String})
+});
+dart.registerExtension(dart.global.HTMLQuoteElement, html$.QuoteElement);
+html$._RtcErrorCallback = dart.typedef('_RtcErrorCallback', () => dart.functionType(dart.void, [core.String]));
+html$._RtcSessionDescriptionCallback = dart.typedef('_RtcSessionDescriptionCallback', () => dart.functionType(dart.void, [html$.RtcSessionDescription]));
+html$.RtcStatsCallback = dart.typedef('RtcStatsCallback', () => dart.functionType(dart.void, [html$.RtcStatsResponse]));
+dart.defineExtensionNames([
+  'cloneContents',
+  'cloneRange',
+  'collapse',
+  'compareBoundaryPoints',
+  'comparePoint',
+  'createContextualFragment',
+  'deleteContents',
+  'detach',
+  'expand',
+  'extractContents',
+  'getBoundingClientRect',
+  'getClientRects',
+  'insertNode',
+  'isPointInRange',
+  'selectNode',
+  'selectNodeContents',
+  'setEnd',
+  'setEndAfter',
+  'setEndBefore',
+  'setStart',
+  'setStartAfter',
+  'setStartBefore',
+  'surroundContents',
+  'collapsed',
+  'commonAncestorContainer',
+  'endContainer',
+  'endOffset',
+  'startContainer',
+  'startOffset'
+]);
+html$.Range = class Range extends _interceptors.Interceptor {
+  static new() {
+    return html$.document[dartx.createRange]();
+  }
+  static fromPoint(point) {
+    return html$.document[_caretRangeFromPoint](dart.asInt(point.x), dart.asInt(point.y));
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.collapsed]() {
+    return this.collapsed;
+  }
+  get [dartx.commonAncestorContainer]() {
+    return this.commonAncestorContainer;
+  }
+  get [dartx.endContainer]() {
+    return this.endContainer;
+  }
+  get [dartx.endOffset]() {
+    return this.endOffset;
+  }
+  get [dartx.startContainer]() {
+    return this.startContainer;
+  }
+  get [dartx.startOffset]() {
+    return this.startOffset;
+  }
+  [dartx.cloneContents](...args) {
+    return this.cloneContents.apply(this, args);
+  }
+  [dartx.cloneRange](...args) {
+    return this.cloneRange.apply(this, args);
+  }
+  [dartx.collapse](...args) {
+    return this.collapse.apply(this, args);
+  }
+  [dartx.compareBoundaryPoints](...args) {
+    return this.compareBoundaryPoints.apply(this, args);
+  }
+  [dartx.comparePoint](...args) {
+    return this.comparePoint.apply(this, args);
+  }
+  [dartx.createContextualFragment](...args) {
+    return this.createContextualFragment.apply(this, args);
+  }
+  [dartx.deleteContents](...args) {
+    return this.deleteContents.apply(this, args);
+  }
+  [dartx.detach](...args) {
+    return this.detach.apply(this, args);
+  }
+  [dartx.expand](...args) {
+    return this.expand.apply(this, args);
+  }
+  [dartx.extractContents](...args) {
+    return this.extractContents.apply(this, args);
+  }
+  [dartx.getBoundingClientRect](...args) {
+    return this.getBoundingClientRect.apply(this, args);
+  }
+  [dartx.getClientRects](...args) {
+    return this.getClientRects.apply(this, args);
+  }
+  [dartx.insertNode](...args) {
+    return this.insertNode.apply(this, args);
+  }
+  [dartx.isPointInRange](...args) {
+    return this.isPointInRange.apply(this, args);
+  }
+  [dartx.selectNode](...args) {
+    return this.selectNode.apply(this, args);
+  }
+  [dartx.selectNodeContents](...args) {
+    return this.selectNodeContents.apply(this, args);
+  }
+  [dartx.setEnd](...args) {
+    return this.setEnd.apply(this, args);
+  }
+  [dartx.setEndAfter](...args) {
+    return this.setEndAfter.apply(this, args);
+  }
+  [dartx.setEndBefore](...args) {
+    return this.setEndBefore.apply(this, args);
+  }
+  [dartx.setStart](...args) {
+    return this.setStart.apply(this, args);
+  }
+  [dartx.setStartAfter](...args) {
+    return this.setStartAfter.apply(this, args);
+  }
+  [dartx.setStartBefore](...args) {
+    return this.setStartBefore.apply(this, args);
+  }
+  [dartx.surroundContents](...args) {
+    return this.surroundContents.apply(this, args);
+  }
+  static get supportsCreateContextualFragment() {
+    return "createContextualFragment" in window.Range.prototype;
+  }
+};
+dart.setSignature(html$.Range, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.Range, []),
+    fromPoint: dart.definiteFunctionType(html$.Range, [PointOfnum()]),
+    _: dart.definiteFunctionType(html$.Range, [])
+  }),
+  fields: () => ({
+    [dartx.collapsed]: core.bool,
+    [dartx.commonAncestorContainer]: html$.Node,
+    [dartx.endContainer]: html$.Node,
+    [dartx.endOffset]: core.int,
+    [dartx.startContainer]: html$.Node,
+    [dartx.startOffset]: core.int
+  }),
+  methods: () => ({
+    [dartx.cloneContents]: dart.definiteFunctionType(html$.DocumentFragment, []),
+    [dartx.cloneRange]: dart.definiteFunctionType(html$.Range, []),
+    [dartx.collapse]: dart.definiteFunctionType(dart.void, [], [core.bool]),
+    [dartx.compareBoundaryPoints]: dart.definiteFunctionType(core.int, [core.int, html$.Range]),
+    [dartx.comparePoint]: dart.definiteFunctionType(core.int, [html$.Node, core.int]),
+    [dartx.createContextualFragment]: dart.definiteFunctionType(html$.DocumentFragment, [core.String]),
+    [dartx.deleteContents]: dart.definiteFunctionType(dart.void, []),
+    [dartx.detach]: dart.definiteFunctionType(dart.void, []),
+    [dartx.expand]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.extractContents]: dart.definiteFunctionType(html$.DocumentFragment, []),
+    [dartx.getBoundingClientRect]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
+    [dartx.getClientRects]: dart.definiteFunctionType(core.List$(math.Rectangle$(core.num)), []),
+    [dartx.insertNode]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.isPointInRange]: dart.definiteFunctionType(core.bool, [html$.Node, core.int]),
+    [dartx.selectNode]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.selectNodeContents]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setEnd]: dart.definiteFunctionType(dart.void, [html$.Node, core.int]),
+    [dartx.setEndAfter]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setEndBefore]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setStart]: dart.definiteFunctionType(dart.void, [html$.Node, core.int]),
+    [dartx.setStartAfter]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setStartBefore]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.surroundContents]: dart.definiteFunctionType(dart.void, [html$.Node])
+  }),
+  sfields: () => ({
+    END_TO_END: core.int,
+    END_TO_START: core.int,
+    START_TO_END: core.int,
+    START_TO_START: core.int
+  }),
+  sgetters: () => ({supportsCreateContextualFragment: dart.definiteFunctionType(core.bool, [])})
+});
+html$.Range.END_TO_END = 2;
+html$.Range.END_TO_START = 3;
+html$.Range.START_TO_END = 1;
+html$.Range.START_TO_START = 0;
+dart.registerExtension(dart.global.Range, html$.Range);
+dart.defineExtensionNames([
+  'cancel',
+  'getReader'
+]);
+html$.ReadableByteStream = class ReadableByteStream extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.cancel](...args) {
+    return this.cancel.apply(this, args);
+  }
+  [dartx.getReader](...args) {
+    return this.getReader.apply(this, args);
+  }
+};
+dart.setSignature(html$.ReadableByteStream, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableByteStream, [])}),
+  methods: () => ({
+    [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
+    [dartx.getReader]: dart.definiteFunctionType(html$.ReadableByteStreamReader, [])
+  })
+});
+dart.registerExtension(dart.global.ReadableByteStream, html$.ReadableByteStream);
+dart.defineExtensionNames([
+  'cancel',
+  'read',
+  'releaseLock',
+  'closed'
+]);
+html$.ReadableByteStreamReader = class ReadableByteStreamReader extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.closed]() {
+    return this.closed;
+  }
+  [dartx.cancel](...args) {
+    return this.cancel.apply(this, args);
+  }
+  [dartx.read](...args) {
+    return this.read.apply(this, args);
+  }
+  [dartx.releaseLock](...args) {
+    return this.releaseLock.apply(this, args);
+  }
+};
+dart.setSignature(html$.ReadableByteStreamReader, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableByteStreamReader, [])}),
+  fields: () => ({[dartx.closed]: async.Future}),
+  methods: () => ({
+    [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
+    [dartx.read]: dart.definiteFunctionType(async.Future, []),
+    [dartx.releaseLock]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.ReadableByteStreamReader, html$.ReadableByteStreamReader);
+dart.defineExtensionNames([
+  'cancel',
+  'getReader'
+]);
+html$.ReadableStream = class ReadableStream extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.cancel](...args) {
+    return this.cancel.apply(this, args);
+  }
+  [dartx.getReader](...args) {
+    return this.getReader.apply(this, args);
+  }
+};
+dart.setSignature(html$.ReadableStream, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableStream, [])}),
+  methods: () => ({
+    [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
+    [dartx.getReader]: dart.definiteFunctionType(html$.ReadableStreamReader, [])
+  })
+});
+dart.registerExtension(dart.global.ReadableStream, html$.ReadableStream);
+dart.defineExtensionNames([
+  'cancel',
+  'read',
+  'releaseLock',
+  'closed'
+]);
+html$.ReadableStreamReader = class ReadableStreamReader extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.closed]() {
+    return this.closed;
+  }
+  [dartx.cancel](...args) {
+    return this.cancel.apply(this, args);
+  }
+  [dartx.read](...args) {
+    return this.read.apply(this, args);
+  }
+  [dartx.releaseLock](...args) {
+    return this.releaseLock.apply(this, args);
+  }
+};
+dart.setSignature(html$.ReadableStreamReader, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableStreamReader, [])}),
+  fields: () => ({[dartx.closed]: async.Future}),
+  methods: () => ({
+    [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
+    [dartx.read]: dart.definiteFunctionType(async.Future, []),
+    [dartx.releaseLock]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.ReadableStreamReader, html$.ReadableStreamReader);
+dart.defineExtensionNames([
+  'relatedTarget'
+]);
+html$.RelatedEvent = class RelatedEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.RelatedEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.RelatedEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.RelatedEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.RelatedEvent(type);
+  }
+  get [dartx.relatedTarget]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
+  }
+  get [_get_relatedTarget]() {
+    return this.relatedTarget;
+  }
+};
+dart.setSignature(html$.RelatedEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.RelatedEvent, []),
+    new: dart.definiteFunctionType(html$.RelatedEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[_get_relatedTarget]: dart.dynamic}),
+  getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.RelatedEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.RelatedEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.RelatedEvent, html$.RelatedEvent);
+html$.RequestAnimationFrameCallback = dart.typedef('RequestAnimationFrameCallback', () => dart.functionType(dart.void, [core.num]));
+dart.defineExtensionNames([
+  'url'
+]);
+html$.ResourceProgressEvent = class ResourceProgressEvent extends html$.ProgressEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+};
+dart.setSignature(html$.ResourceProgressEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ResourceProgressEvent, [])}),
+  fields: () => ({[dartx.url]: core.String})
+});
+dart.registerExtension(dart.global.ResourceProgressEvent, html$.ResourceProgressEvent);
+dart.defineExtensionNames([
+  'close',
+  'send',
+  'sendBlob',
+  'sendByteBuffer',
+  'sendString',
+  'sendTypedData',
+  'onClose',
+  'onError',
+  'onMessage',
+  'onOpen',
+  'binaryType',
+  'bufferedAmount',
+  'id',
+  'label',
+  'maxRetransmitTime',
+  'maxRetransmits',
+  'negotiated',
+  'ordered',
+  'protocol',
+  'readyState',
+  'reliable'
+]);
+html$.RtcDataChannel = class RtcDataChannel extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.binaryType]() {
+    return this.binaryType;
+  }
+  set [dartx.binaryType](value) {
+    this.binaryType = value;
+  }
+  get [dartx.bufferedAmount]() {
+    return this.bufferedAmount;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  get [dartx.maxRetransmitTime]() {
+    return this.maxRetransmitTime;
+  }
+  get [dartx.maxRetransmits]() {
+    return this.maxRetransmits;
+  }
+  get [dartx.negotiated]() {
+    return this.negotiated;
+  }
+  get [dartx.ordered]() {
+    return this.ordered;
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.reliable]() {
+    return this.reliable;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.send](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendBlob](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendByteBuffer](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendString](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendTypedData](...args) {
+    return this.send.apply(this, args);
+  }
+  get [dartx.onClose]() {
+    return html$.RtcDataChannel.closeEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.RtcDataChannel.errorEvent.forTarget(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.RtcDataChannel.messageEvent.forTarget(this);
+  }
+  get [dartx.onOpen]() {
+    return html$.RtcDataChannel.openEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.RtcDataChannel, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcDataChannel, [])}),
+  fields: () => ({
+    [dartx.binaryType]: core.String,
+    [dartx.bufferedAmount]: core.int,
+    [dartx.id]: core.int,
+    [dartx.label]: core.String,
+    [dartx.maxRetransmitTime]: core.int,
+    [dartx.maxRetransmits]: core.int,
+    [dartx.negotiated]: core.bool,
+    [dartx.ordered]: core.bool,
+    [dartx.protocol]: core.String,
+    [dartx.readyState]: core.String,
+    [dartx.reliable]: core.bool
+  }),
+  getters: () => ({
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html$.Blob]),
+    [dartx.sendByteBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
+    [dartx.sendString]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.sendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData])
+  }),
+  sfields: () => ({
+    closeEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent(),
+    openEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(html$.RtcDataChannel, {
+  get closeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('close'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  },
+  get openEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('open'));
+  }
+});
+dart.registerExtension(dart.global.RTCDataChannel, html$.RtcDataChannel);
+dart.registerExtension(dart.global.DataChannel, html$.RtcDataChannel);
+dart.defineExtensionNames([
+  'channel'
+]);
+html$.RtcDataChannelEvent = class RtcDataChannelEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.channel]() {
+    return this.channel;
+  }
+};
+dart.setSignature(html$.RtcDataChannelEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcDataChannelEvent, [])}),
+  fields: () => ({[dartx.channel]: html$.RtcDataChannel})
+});
+dart.registerExtension(dart.global.RTCDataChannelEvent, html$.RtcDataChannelEvent);
+dart.defineExtensionNames([
+  'insertDtmf',
+  'onToneChange',
+  'canInsertDtmf',
+  'duration',
+  'interToneGap',
+  'toneBuffer',
+  'track'
+]);
+html$.RtcDtmfSender = class RtcDtmfSender extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.canInsertDtmf]() {
+    return this.canInsertDTMF;
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  get [dartx.interToneGap]() {
+    return this.interToneGap;
+  }
+  get [dartx.toneBuffer]() {
+    return this.toneBuffer;
+  }
+  get [dartx.track]() {
+    return this.track;
+  }
+  [dartx.insertDtmf](...args) {
+    return this.insertDTMF.apply(this, args);
+  }
+  get [dartx.onToneChange]() {
+    return html$.RtcDtmfSender.toneChangeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.RtcDtmfSender, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcDtmfSender, [])}),
+  fields: () => ({
+    [dartx.canInsertDtmf]: core.bool,
+    [dartx.duration]: core.int,
+    [dartx.interToneGap]: core.int,
+    [dartx.toneBuffer]: core.String,
+    [dartx.track]: html$.MediaStreamTrack
+  }),
+  getters: () => ({[dartx.onToneChange]: dart.definiteFunctionType(async.Stream$(html$.RtcDtmfToneChangeEvent), [])}),
+  methods: () => ({[dartx.insertDtmf]: dart.definiteFunctionType(dart.void, [core.String], [core.int, core.int])}),
+  sfields: () => ({toneChangeEvent: EventStreamProviderOfRtcDtmfToneChangeEvent()})
+});
+dart.defineLazy(html$.RtcDtmfSender, {
+  get toneChangeEvent() {
+    return dart.const(new (EventStreamProviderOfRtcDtmfToneChangeEvent())('tonechange'));
+  }
+});
+dart.registerExtension(dart.global.RTCDTMFSender, html$.RtcDtmfSender);
+dart.defineExtensionNames([
+  'tone'
+]);
+html$.RtcDtmfToneChangeEvent = class RtcDtmfToneChangeEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+    return html$.RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
+  }
+  static _create_1(type, eventInitDict) {
+    return new RTCDTMFToneChangeEvent(type, eventInitDict);
+  }
+  get [dartx.tone]() {
+    return this.tone;
+  }
+};
+dart.setSignature(html$.RtcDtmfToneChangeEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, []),
+    new: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, [core.String, core.Map])
+  }),
+  fields: () => ({[dartx.tone]: core.String}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, [dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.RTCDTMFToneChangeEvent, html$.RtcDtmfToneChangeEvent);
+dart.defineExtensionNames([
+  'candidate',
+  'sdpMLineIndex',
+  'sdpMid'
+]);
+html$.RtcIceCandidate = class RtcIceCandidate extends _interceptors.Interceptor {
+  static new(dictionary) {
+    let constructorName = window[dart.test(html_common.Device.isFirefox) ? dart.str`${html_common.Device.propertyPrefix}RTCIceCandidate` : 'RTCIceCandidate'];
+    return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.candidate]() {
+    return this.candidate;
+  }
+  set [dartx.candidate](value) {
+    this.candidate = value;
+  }
+  get [dartx.sdpMLineIndex]() {
+    return this.sdpMLineIndex;
+  }
+  set [dartx.sdpMLineIndex](value) {
+    this.sdpMLineIndex = value;
+  }
+  get [dartx.sdpMid]() {
+    return this.sdpMid;
+  }
+  set [dartx.sdpMid](value) {
+    this.sdpMid = value;
+  }
+};
+dart.setSignature(html$.RtcIceCandidate, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.RtcIceCandidate, [core.Map]),
+    _: dart.definiteFunctionType(html$.RtcIceCandidate, [])
+  }),
+  fields: () => ({
+    [dartx.candidate]: core.String,
+    [dartx.sdpMLineIndex]: core.int,
+    [dartx.sdpMid]: core.String
+  })
+});
+dart.registerExtension(dart.global.RTCIceCandidate, html$.RtcIceCandidate);
+dart.registerExtension(dart.global.mozRTCIceCandidate, html$.RtcIceCandidate);
+dart.defineExtensionNames([
+  'candidate'
+]);
+html$.RtcIceCandidateEvent = class RtcIceCandidateEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.candidate]() {
+    return this.candidate;
+  }
+};
+dart.setSignature(html$.RtcIceCandidateEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcIceCandidateEvent, [])}),
+  fields: () => ({[dartx.candidate]: html$.RtcIceCandidate})
+});
+dart.registerExtension(dart.global.RTCIceCandidateEvent, html$.RtcIceCandidateEvent);
+dart.registerExtension(dart.global.RTCPeerConnectionIceEvent, html$.RtcIceCandidateEvent);
+const _createOffer = Symbol('_createOffer');
+const _createAnswer = Symbol('_createAnswer');
+const _getStats = Symbol('_getStats');
+const _addStream_1 = Symbol('_addStream_1');
+const _addStream_2 = Symbol('_addStream_2');
+const _createAnswer_1 = Symbol('_createAnswer_1');
+const _createAnswer_2 = Symbol('_createAnswer_2');
+const _createDataChannel_1 = Symbol('_createDataChannel_1');
+const _createDataChannel_2 = Symbol('_createDataChannel_2');
+const _createOffer_1 = Symbol('_createOffer_1');
+const _createOffer_2 = Symbol('_createOffer_2');
+const _setLocalDescription = Symbol('_setLocalDescription');
+const _setRemoteDescription = Symbol('_setRemoteDescription');
+const _updateIce_1 = Symbol('_updateIce_1');
+const _updateIce_2 = Symbol('_updateIce_2');
+const _updateIce_3 = Symbol('_updateIce_3');
+dart.defineExtensionNames([
+  'createOffer',
+  'createAnswer',
+  'getStats',
+  'addIceCandidate',
+  'addStream',
+  'close',
+  'createDtmfSender',
+  'createDataChannel',
+  'getLocalStreams',
+  'getRemoteStreams',
+  'getStreamById',
+  'removeStream',
+  'setLocalDescription',
+  'setRemoteDescription',
+  'updateIce',
+  'onAddStream',
+  'onDataChannel',
+  'onIceCandidate',
+  'onIceConnectionStateChange',
+  'onNegotiationNeeded',
+  'onRemoveStream',
+  'onSignalingStateChange',
+  'iceConnectionState',
+  'iceGatheringState',
+  'localDescription',
+  'remoteDescription',
+  'signalingState'
+]);
+html$.RtcPeerConnection = class RtcPeerConnection extends html$.EventTarget {
+  static new(rtcIceServers, mediaConstraints) {
+    if (mediaConstraints === void 0) mediaConstraints = null;
+    let constructorName = window[dart.str`${html_common.Device.propertyPrefix}RTCPeerConnection`];
+    if (mediaConstraints != null) {
+      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers), html_common.convertDartToNative_SerializedScriptValue(mediaConstraints));
+    } else {
+      return new constructorName(html_common.convertDartToNative_SerializedScriptValue(rtcIceServers));
+    }
+  }
+  static get supported() {
+    try {
+      html$.RtcPeerConnection.new(dart.map({iceServers: JSArrayOfMapOfString$String().of([dart.map({url: "stun:localhost"}, core.String, core.String)])}, core.String, ListOfMapOfString$String()));
+      return true;
+    } catch (_) {
+      return false;
+    }
+
+    return false;
+  }
+  [dartx.createOffer](mediaConstraints) {
+    if (mediaConstraints === void 0) mediaConstraints = null;
+    let completer = CompleterOfRtcSessionDescription().new();
+    this[_createOffer](dart.fn(value => {
+      completer.complete(value);
+    }, RtcSessionDescriptionToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, StringToNull()), mediaConstraints);
+    return completer.future;
+  }
+  [dartx.createAnswer](mediaConstraints) {
+    if (mediaConstraints === void 0) mediaConstraints = null;
+    let completer = CompleterOfRtcSessionDescription().new();
+    this[_createAnswer](dart.fn(value => {
+      completer.complete(value);
+    }, RtcSessionDescriptionToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, StringToNull()), mediaConstraints);
+    return completer.future;
+  }
+  [dartx.getStats](selector) {
+    let completer = CompleterOfRtcStatsResponse().new();
+    this[_getStats](dart.fn(value => {
+      completer.complete(value);
+    }, RtcStatsResponseToNull()), selector);
+    return completer.future;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.iceConnectionState]() {
+    return this.iceConnectionState;
+  }
+  get [dartx.iceGatheringState]() {
+    return this.iceGatheringState;
+  }
+  get [dartx.localDescription]() {
+    return this.localDescription;
+  }
+  get [dartx.remoteDescription]() {
+    return this.remoteDescription;
+  }
+  get [dartx.signalingState]() {
+    return this.signalingState;
+  }
+  [dartx.addIceCandidate](...args) {
+    return this.addIceCandidate.apply(this, args);
+  }
+  [dartx.addStream](stream, mediaConstraints) {
+    if (mediaConstraints === void 0) mediaConstraints = null;
+    if (mediaConstraints != null) {
+      let mediaConstraints_1 = html_common.convertDartToNative_Dictionary(mediaConstraints);
+      this[_addStream_1](stream, mediaConstraints_1);
+      return;
+    }
+    this[_addStream_2](stream);
+    return;
+  }
+  [_addStream_1](...args) {
+    return this.addStream.apply(this, args);
+  }
+  [_addStream_2](...args) {
+    return this.addStream.apply(this, args);
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [_createAnswer](successCallback, failureCallback, mediaConstraints) {
+    if (failureCallback === void 0) failureCallback = null;
+    if (mediaConstraints === void 0) mediaConstraints = null;
+    if (mediaConstraints != null) {
+      let mediaConstraints_1 = html_common.convertDartToNative_Dictionary(mediaConstraints);
+      this[_createAnswer_1](successCallback, failureCallback, mediaConstraints_1);
+      return;
+    }
+    this[_createAnswer_2](successCallback, failureCallback);
+    return;
+  }
+  [_createAnswer_1](...args) {
+    return this.createAnswer.apply(this, args);
+  }
+  [_createAnswer_2](...args) {
+    return this.createAnswer.apply(this, args);
+  }
+  [dartx.createDtmfSender](...args) {
+    return this.createDTMFSender.apply(this, args);
+  }
+  [dartx.createDataChannel](label, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_createDataChannel_1](label, options_1);
+    }
+    return this[_createDataChannel_2](label);
+  }
+  [_createDataChannel_1](...args) {
+    return this.createDataChannel.apply(this, args);
+  }
+  [_createDataChannel_2](...args) {
+    return this.createDataChannel.apply(this, args);
+  }
+  [_createOffer](successCallback, failureCallback, rtcOfferOptions) {
+    if (failureCallback === void 0) failureCallback = null;
+    if (rtcOfferOptions === void 0) rtcOfferOptions = null;
+    if (rtcOfferOptions != null) {
+      let rtcOfferOptions_1 = html_common.convertDartToNative_Dictionary(rtcOfferOptions);
+      this[_createOffer_1](successCallback, failureCallback, rtcOfferOptions_1);
+      return;
+    }
+    this[_createOffer_2](successCallback, failureCallback);
+    return;
+  }
+  [_createOffer_1](...args) {
+    return this.createOffer.apply(this, args);
+  }
+  [_createOffer_2](...args) {
+    return this.createOffer.apply(this, args);
+  }
+  [dartx.getLocalStreams](...args) {
+    return this.getLocalStreams.apply(this, args);
+  }
+  [dartx.getRemoteStreams](...args) {
+    return this.getRemoteStreams.apply(this, args);
+  }
+  [_getStats](...args) {
+    return this.getStats.apply(this, args);
+  }
+  [dartx.getStreamById](...args) {
+    return this.getStreamById.apply(this, args);
+  }
+  [dartx.removeStream](...args) {
+    return this.removeStream.apply(this, args);
+  }
+  [_setLocalDescription](...args) {
+    return this.setLocalDescription.apply(this, args);
+  }
+  [dartx.setLocalDescription](description) {
+    let completer = async.Completer.new();
+    this[_setLocalDescription](description, dart.fn(() => {
+      completer.complete();
+    }, VoidToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, StringToNull()));
+    return completer.future;
+  }
+  [_setRemoteDescription](...args) {
+    return this.setRemoteDescription.apply(this, args);
+  }
+  [dartx.setRemoteDescription](description) {
+    let completer = async.Completer.new();
+    this[_setRemoteDescription](description, dart.fn(() => {
+      completer.complete();
+    }, VoidToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, StringToNull()));
+    return completer.future;
+  }
+  [dartx.updateIce](configuration, mediaConstraints) {
+    if (configuration === void 0) configuration = null;
+    if (mediaConstraints === void 0) mediaConstraints = null;
+    if (mediaConstraints != null) {
+      let configuration_1 = html_common.convertDartToNative_Dictionary(configuration);
+      let mediaConstraints_2 = html_common.convertDartToNative_Dictionary(mediaConstraints);
+      this[_updateIce_1](configuration_1, mediaConstraints_2);
+      return;
+    }
+    if (configuration != null) {
+      let configuration_1 = html_common.convertDartToNative_Dictionary(configuration);
+      this[_updateIce_2](configuration_1);
+      return;
+    }
+    this[_updateIce_3]();
+    return;
+  }
+  [_updateIce_1](...args) {
+    return this.updateIce.apply(this, args);
+  }
+  [_updateIce_2](...args) {
+    return this.updateIce.apply(this, args);
+  }
+  [_updateIce_3](...args) {
+    return this.updateIce.apply(this, args);
+  }
+  get [dartx.onAddStream]() {
+    return html$.RtcPeerConnection.addStreamEvent.forTarget(this);
+  }
+  get [dartx.onDataChannel]() {
+    return html$.RtcPeerConnection.dataChannelEvent.forTarget(this);
+  }
+  get [dartx.onIceCandidate]() {
+    return html$.RtcPeerConnection.iceCandidateEvent.forTarget(this);
+  }
+  get [dartx.onIceConnectionStateChange]() {
+    return html$.RtcPeerConnection.iceConnectionStateChangeEvent.forTarget(this);
+  }
+  get [dartx.onNegotiationNeeded]() {
+    return html$.RtcPeerConnection.negotiationNeededEvent.forTarget(this);
+  }
+  get [dartx.onRemoveStream]() {
+    return html$.RtcPeerConnection.removeStreamEvent.forTarget(this);
+  }
+  get [dartx.onSignalingStateChange]() {
+    return html$.RtcPeerConnection.signalingStateChangeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.RtcPeerConnection, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.RtcPeerConnection, [core.Map], [core.Map]),
+    _: dart.definiteFunctionType(html$.RtcPeerConnection, [])
+  }),
+  fields: () => ({
+    [dartx.iceConnectionState]: core.String,
+    [dartx.iceGatheringState]: core.String,
+    [dartx.localDescription]: html$.RtcSessionDescription,
+    [dartx.remoteDescription]: html$.RtcSessionDescription,
+    [dartx.signalingState]: core.String
+  }),
+  getters: () => ({
+    [dartx.onAddStream]: dart.definiteFunctionType(async.Stream$(html$.MediaStreamEvent), []),
+    [dartx.onDataChannel]: dart.definiteFunctionType(async.Stream$(html$.RtcDataChannelEvent), []),
+    [dartx.onIceCandidate]: dart.definiteFunctionType(async.Stream$(html$.RtcIceCandidateEvent), []),
+    [dartx.onIceConnectionStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onNegotiationNeeded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRemoveStream]: dart.definiteFunctionType(async.Stream$(html$.MediaStreamEvent), []),
+    [dartx.onSignalingStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.createOffer]: dart.definiteFunctionType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
+    [dartx.createAnswer]: dart.definiteFunctionType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
+    [dartx.getStats]: dart.definiteFunctionType(async.Future$(html$.RtcStatsResponse), [html$.MediaStreamTrack]),
+    [dartx.addIceCandidate]: dart.definiteFunctionType(dart.void, [html$.RtcIceCandidate, html$.VoidCallback, html$._RtcErrorCallback]),
+    [dartx.addStream]: dart.definiteFunctionType(dart.void, [html$.MediaStream], [core.Map]),
+    [_addStream_1]: dart.definiteFunctionType(dart.void, [html$.MediaStream, dart.dynamic]),
+    [_addStream_2]: dart.definiteFunctionType(dart.void, [html$.MediaStream]),
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [_createAnswer]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback], [html$._RtcErrorCallback, core.Map]),
+    [_createAnswer_1]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback, dart.dynamic]),
+    [_createAnswer_2]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback]),
+    [dartx.createDtmfSender]: dart.definiteFunctionType(html$.RtcDtmfSender, [html$.MediaStreamTrack]),
+    [dartx.createDataChannel]: dart.definiteFunctionType(html$.RtcDataChannel, [core.String], [core.Map]),
+    [_createDataChannel_1]: dart.definiteFunctionType(html$.RtcDataChannel, [dart.dynamic, dart.dynamic]),
+    [_createDataChannel_2]: dart.definiteFunctionType(html$.RtcDataChannel, [dart.dynamic]),
+    [_createOffer]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback], [html$._RtcErrorCallback, core.Map]),
+    [_createOffer_1]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback, dart.dynamic]),
+    [_createOffer_2]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback]),
+    [dartx.getLocalStreams]: dart.definiteFunctionType(core.List$(html$.MediaStream), []),
+    [dartx.getRemoteStreams]: dart.definiteFunctionType(core.List$(html$.MediaStream), []),
+    [_getStats]: dart.definiteFunctionType(dart.void, [html$.RtcStatsCallback, html$.MediaStreamTrack]),
+    [dartx.getStreamById]: dart.definiteFunctionType(html$.MediaStream, [core.String]),
+    [dartx.removeStream]: dart.definiteFunctionType(dart.void, [html$.MediaStream]),
+    [_setLocalDescription]: dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription], [html$.VoidCallback, html$._RtcErrorCallback]),
+    [dartx.setLocalDescription]: dart.definiteFunctionType(async.Future, [html$.RtcSessionDescription]),
+    [_setRemoteDescription]: dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription], [html$.VoidCallback, html$._RtcErrorCallback]),
+    [dartx.setRemoteDescription]: dart.definiteFunctionType(async.Future, [html$.RtcSessionDescription]),
+    [dartx.updateIce]: dart.definiteFunctionType(dart.void, [], [core.Map, core.Map]),
+    [_updateIce_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    [_updateIce_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_updateIce_3]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    addStreamEvent: EventStreamProviderOfMediaStreamEvent(),
+    dataChannelEvent: EventStreamProviderOfRtcDataChannelEvent(),
+    iceCandidateEvent: EventStreamProviderOfRtcIceCandidateEvent(),
+    iceConnectionStateChangeEvent: EventStreamProviderOfEvent(),
+    negotiationNeededEvent: EventStreamProviderOfEvent(),
+    removeStreamEvent: EventStreamProviderOfMediaStreamEvent(),
+    signalingStateChangeEvent: EventStreamProviderOfEvent()
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineLazy(html$.RtcPeerConnection, {
+  get addStreamEvent() {
+    return dart.const(new (EventStreamProviderOfMediaStreamEvent())('addstream'));
+  },
+  get dataChannelEvent() {
+    return dart.const(new (EventStreamProviderOfRtcDataChannelEvent())('datachannel'));
+  },
+  get iceCandidateEvent() {
+    return dart.const(new (EventStreamProviderOfRtcIceCandidateEvent())('icecandidate'));
+  },
+  get iceConnectionStateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('iceconnectionstatechange'));
+  },
+  get negotiationNeededEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('negotiationneeded'));
+  },
+  get removeStreamEvent() {
+    return dart.const(new (EventStreamProviderOfMediaStreamEvent())('removestream'));
+  },
+  get signalingStateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('signalingstatechange'));
+  }
+});
+dart.registerExtension(dart.global.RTCPeerConnection, html$.RtcPeerConnection);
+dart.registerExtension(dart.global.mozRTCPeerConnection, html$.RtcPeerConnection);
+dart.defineExtensionNames([
+  'sdp',
+  'type'
+]);
+html$.RtcSessionDescription = class RtcSessionDescription extends _interceptors.Interceptor {
+  static new(dictionary) {
+    let constructorName = window[dart.test(html_common.Device.isFirefox) ? dart.str`${html_common.Device.propertyPrefix}RTCSessionDescription` : 'RTCSessionDescription'];
+    return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.sdp]() {
+    return this.sdp;
+  }
+  set [dartx.sdp](value) {
+    this.sdp = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.setSignature(html$.RtcSessionDescription, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.RtcSessionDescription, [core.Map]),
+    _: dart.definiteFunctionType(html$.RtcSessionDescription, [])
+  }),
+  fields: () => ({
+    [dartx.sdp]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.RTCSessionDescription, html$.RtcSessionDescription);
+dart.registerExtension(dart.global.mozRTCSessionDescription, html$.RtcSessionDescription);
+const _get_timestamp = Symbol('_get_timestamp');
+dart.defineExtensionNames([
+  'timestamp',
+  'names',
+  'stat',
+  'id',
+  'type'
+]);
+html$.RtcStatsReport = class RtcStatsReport extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.timestamp]() {
+    return html_common.convertNativeToDart_DateTime(this[_get_timestamp]);
+  }
+  get [_get_timestamp]() {
+    return this.timestamp;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.names](...args) {
+    return this.names.apply(this, args);
+  }
+  [dartx.stat](...args) {
+    return this.stat.apply(this, args);
+  }
+};
+dart.setSignature(html$.RtcStatsReport, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcStatsReport, [])}),
+  fields: () => ({
+    [dartx.id]: core.String,
+    [_get_timestamp]: dart.dynamic,
+    [dartx.type]: core.String
+  }),
+  getters: () => ({[dartx.timestamp]: dart.definiteFunctionType(core.DateTime, [])}),
+  methods: () => ({
+    [dartx.names]: dart.definiteFunctionType(core.List$(core.String), []),
+    [dartx.stat]: dart.definiteFunctionType(core.String, [core.String])
+  })
+});
+dart.registerExtension(dart.global.RTCStatsReport, html$.RtcStatsReport);
+dart.defineExtensionNames([
+  'namedItem',
+  'result'
+]);
+html$.RtcStatsResponse = class RtcStatsResponse extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+  [dartx.result](...args) {
+    return this.result.apply(this, args);
+  }
+};
+dart.setSignature(html$.RtcStatsResponse, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcStatsResponse, [])}),
+  methods: () => ({
+    [dartx.namedItem]: dart.definiteFunctionType(html$.RtcStatsReport, [core.String]),
+    [dartx.result]: dart.definiteFunctionType(core.List$(html$.RtcStatsReport), [])
+  })
+});
+dart.registerExtension(dart.global.RTCStatsResponse, html$.RtcStatsResponse);
+const _availLeft = Symbol('_availLeft');
+const _availTop = Symbol('_availTop');
+const _availWidth = Symbol('_availWidth');
+const _availHeight = Symbol('_availHeight');
+dart.defineExtensionNames([
+  'available',
+  'colorDepth',
+  'height',
+  'orientation',
+  'pixelDepth',
+  'width'
+]);
+html$.Screen = class Screen extends _interceptors.Interceptor {
+  get [dartx.available]() {
+    return new (RectangleOfint())(this[_availLeft], this[_availTop], this[_availWidth], this[_availHeight]);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [_availHeight]() {
+    return this.availHeight;
+  }
+  get [_availLeft]() {
+    return this.availLeft;
+  }
+  get [_availTop]() {
+    return this.availTop;
+  }
+  get [_availWidth]() {
+    return this.availWidth;
+  }
+  get [dartx.colorDepth]() {
+    return this.colorDepth;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.orientation]() {
+    return this.orientation;
+  }
+  get [dartx.pixelDepth]() {
+    return this.pixelDepth;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+};
+dart.setSignature(html$.Screen, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Screen, [])}),
+  fields: () => ({
+    [_availHeight]: core.int,
+    [_availLeft]: core.int,
+    [_availTop]: core.int,
+    [_availWidth]: core.int,
+    [dartx.colorDepth]: core.int,
+    [dartx.height]: core.int,
+    [dartx.orientation]: html$.ScreenOrientation,
+    [dartx.pixelDepth]: core.int,
+    [dartx.width]: core.int
+  }),
+  getters: () => ({[dartx.available]: dart.definiteFunctionType(math.Rectangle$(core.num), [])})
+});
+dart.registerExtension(dart.global.Screen, html$.Screen);
+dart.defineExtensionNames([
+  'lock',
+  'unlock',
+  'onChange',
+  'angle',
+  'type'
+]);
+html$.ScreenOrientation = class ScreenOrientation extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.angle]() {
+    return this.angle;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.lock](...args) {
+    return this.lock.apply(this, args);
+  }
+  [dartx.unlock](...args) {
+    return this.unlock.apply(this, args);
+  }
+  get [dartx.onChange]() {
+    return html$.ScreenOrientation.changeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.ScreenOrientation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ScreenOrientation, [])}),
+  fields: () => ({
+    [dartx.angle]: core.int,
+    [dartx.type]: core.String
+  }),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.lock]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.unlock]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.ScreenOrientation, {
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.ScreenOrientation, html$.ScreenOrientation);
+dart.defineExtensionNames([
+  'async',
+  'charset',
+  'crossOrigin',
+  'defer',
+  'integrity',
+  'nonce',
+  'src',
+  'type'
+]);
+html$.ScriptElement = class ScriptElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ScriptElement._check(html$.document[dartx.createElement]("script"));
+  }
+  created() {
+    this[dartx.async] = null;
+    this[dartx.charset] = null;
+    this[dartx.crossOrigin] = null;
+    this[dartx.defer] = null;
+    this[dartx.integrity] = null;
+    this[dartx.nonce] = null;
+    this[dartx.src] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.async]() {
+    return this.async;
+  }
+  set [dartx.async](value) {
+    this.async = value;
+  }
+  get [dartx.charset]() {
+    return this.charset;
+  }
+  set [dartx.charset](value) {
+    this.charset = value;
+  }
+  get [dartx.crossOrigin]() {
+    return this.crossOrigin;
+  }
+  set [dartx.crossOrigin](value) {
+    this.crossOrigin = value;
+  }
+  get [dartx.defer]() {
+    return this.defer;
+  }
+  set [dartx.defer](value) {
+    this.defer = value;
+  }
+  get [dartx.integrity]() {
+    return this.integrity;
+  }
+  set [dartx.integrity](value) {
+    this.integrity = value;
+  }
+  get [dartx.nonce]() {
+    return this.nonce;
+  }
+  set [dartx.nonce](value) {
+    this.nonce = value;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(html$.ScriptElement, 'created');
+dart.setSignature(html$.ScriptElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ScriptElement, []),
+    new: dart.definiteFunctionType(html$.ScriptElement, []),
+    created: dart.definiteFunctionType(html$.ScriptElement, [])
+  }),
+  fields: () => ({
+    [dartx.async]: core.bool,
+    [dartx.charset]: core.String,
+    [dartx.crossOrigin]: core.String,
+    [dartx.defer]: core.bool,
+    [dartx.integrity]: core.String,
+    [dartx.nonce]: core.String,
+    [dartx.src]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLScriptElement, html$.ScriptElement);
+dart.defineExtensionNames([
+  'consumeDelta',
+  'deltaGranularity',
+  'deltaX',
+  'deltaY',
+  'fromUserInput',
+  'inInertialPhase',
+  'isBeginning',
+  'isEnding',
+  'shouldPropagate',
+  'velocityX',
+  'velocityY'
+]);
+html$.ScrollState = class ScrollState extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding) {
+    if (deltaX === void 0) deltaX = null;
+    if (deltaY === void 0) deltaY = null;
+    if (deltaGranularity === void 0) deltaGranularity = null;
+    if (velocityX === void 0) velocityX = null;
+    if (velocityY === void 0) velocityY = null;
+    if (inInertialPhase === void 0) inInertialPhase = null;
+    if (isBeginning === void 0) isBeginning = null;
+    if (isEnding === void 0) isEnding = null;
+    if (isEnding != null) {
+      return html$.ScrollState._create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
+    }
+    if (isBeginning != null) {
+      return html$.ScrollState._create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
+    }
+    if (inInertialPhase != null) {
+      return html$.ScrollState._create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
+    }
+    if (velocityY != null) {
+      return html$.ScrollState._create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
+    }
+    if (velocityX != null) {
+      return html$.ScrollState._create_5(deltaX, deltaY, deltaGranularity, velocityX);
+    }
+    if (deltaGranularity != null) {
+      return html$.ScrollState._create_6(deltaX, deltaY, deltaGranularity);
+    }
+    if (deltaY != null) {
+      return html$.ScrollState._create_7(deltaX, deltaY);
+    }
+    if (deltaX != null) {
+      return html$.ScrollState._create_8(deltaX);
+    }
+    return html$.ScrollState._create_9();
+  }
+  static _create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding) {
+    return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
+  }
+  static _create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning) {
+    return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
+  }
+  static _create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase) {
+    return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
+  }
+  static _create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY) {
+    return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
+  }
+  static _create_5(deltaX, deltaY, deltaGranularity, velocityX) {
+    return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX);
+  }
+  static _create_6(deltaX, deltaY, deltaGranularity) {
+    return new self.ScrollState(deltaX, deltaY, deltaGranularity);
+  }
+  static _create_7(deltaX, deltaY) {
+    return new self.ScrollState(deltaX, deltaY);
+  }
+  static _create_8(deltaX) {
+    return new self.ScrollState(deltaX);
+  }
+  static _create_9() {
+    return new self.ScrollState();
+  }
+  get [dartx.deltaGranularity]() {
+    return this.deltaGranularity;
+  }
+  get [dartx.deltaX]() {
+    return this.deltaX;
+  }
+  get [dartx.deltaY]() {
+    return this.deltaY;
+  }
+  get [dartx.fromUserInput]() {
+    return this.fromUserInput;
+  }
+  get [dartx.inInertialPhase]() {
+    return this.inInertialPhase;
+  }
+  get [dartx.isBeginning]() {
+    return this.isBeginning;
+  }
+  get [dartx.isEnding]() {
+    return this.isEnding;
+  }
+  get [dartx.shouldPropagate]() {
+    return this.shouldPropagate;
+  }
+  get [dartx.velocityX]() {
+    return this.velocityX;
+  }
+  get [dartx.velocityY]() {
+    return this.velocityY;
+  }
+  [dartx.consumeDelta](...args) {
+    return this.consumeDelta.apply(this, args);
+  }
+};
+dart.setSignature(html$.ScrollState, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ScrollState, []),
+    new: dart.definiteFunctionType(html$.ScrollState, [], [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool, core.bool])
+  }),
+  fields: () => ({
+    [dartx.deltaGranularity]: core.double,
+    [dartx.deltaX]: core.double,
+    [dartx.deltaY]: core.double,
+    [dartx.fromUserInput]: core.bool,
+    [dartx.inInertialPhase]: core.bool,
+    [dartx.isBeginning]: core.bool,
+    [dartx.isEnding]: core.bool,
+    [dartx.shouldPropagate]: core.bool,
+    [dartx.velocityX]: core.double,
+    [dartx.velocityY]: core.double
+  }),
+  methods: () => ({[dartx.consumeDelta]: dart.definiteFunctionType(dart.void, [core.num, core.num])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_6: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_7: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic]),
+    _create_8: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic]),
+    _create_9: dart.definiteFunctionType(html$.ScrollState, [])
+  }),
+  names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6', '_create_7', '_create_8', '_create_9']
+});
+dart.registerExtension(dart.global.ScrollState, html$.ScrollState);
+dart.defineExtensionNames([
+  'blockedUri',
+  'columnNumber',
+  'documentUri',
+  'effectiveDirective',
+  'lineNumber',
+  'originalPolicy',
+  'referrer',
+  'sourceFile',
+  'statusCode',
+  'violatedDirective'
+]);
+html$.SecurityPolicyViolationEvent = class SecurityPolicyViolationEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.SecurityPolicyViolationEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.SecurityPolicyViolationEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.SecurityPolicyViolationEvent(type);
+  }
+  get [dartx.blockedUri]() {
+    return this.blockedURI;
+  }
+  get [dartx.columnNumber]() {
+    return this.columnNumber;
+  }
+  get [dartx.documentUri]() {
+    return this.documentURI;
+  }
+  get [dartx.effectiveDirective]() {
+    return this.effectiveDirective;
+  }
+  get [dartx.lineNumber]() {
+    return this.lineNumber;
+  }
+  get [dartx.originalPolicy]() {
+    return this.originalPolicy;
+  }
+  get [dartx.referrer]() {
+    return this.referrer;
+  }
+  get [dartx.sourceFile]() {
+    return this.sourceFile;
+  }
+  get [dartx.statusCode]() {
+    return this.statusCode;
+  }
+  get [dartx.violatedDirective]() {
+    return this.violatedDirective;
+  }
+};
+dart.setSignature(html$.SecurityPolicyViolationEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, []),
+    new: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.blockedUri]: core.String,
+    [dartx.columnNumber]: core.int,
+    [dartx.documentUri]: core.String,
+    [dartx.effectiveDirective]: core.String,
+    [dartx.lineNumber]: core.int,
+    [dartx.originalPolicy]: core.String,
+    [dartx.referrer]: core.String,
+    [dartx.sourceFile]: core.String,
+    [dartx.statusCode]: core.int,
+    [dartx.violatedDirective]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.SecurityPolicyViolationEvent, html$.SecurityPolicyViolationEvent);
+dart.defineExtensionNames([
+  'add',
+  'checkValidity',
+  'item',
+  'namedItem',
+  'reportValidity',
+  'setCustomValidity',
+  'options',
+  'selectedOptions',
+  'autofocus',
+  'disabled',
+  'form',
+  'labels',
+  'length',
+  'multiple',
+  'name',
+  'required',
+  'selectedIndex',
+  'size',
+  'type',
+  'validationMessage',
+  'validity',
+  'value',
+  'willValidate'
+]);
+html$.SelectElement = class SelectElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.SelectElement._check(html$.document[dartx.createElement]("select"));
+  }
+  created() {
+    this[dartx.autofocus] = null;
+    this[dartx.disabled] = null;
+    this[dartx.form] = null;
+    this[dartx.labels] = null;
+    this[dartx.length] = null;
+    this[dartx.multiple] = null;
+    this[dartx.name] = null;
+    this[dartx.required] = null;
+    this[dartx.selectedIndex] = null;
+    this[dartx.size] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.value] = null;
+    this[dartx.willValidate] = null;
+    super.created();
+  }
+  get [dartx.autofocus]() {
+    return this.autofocus;
+  }
+  set [dartx.autofocus](value) {
+    this.autofocus = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  set [dartx.length](value) {
+    this.length = value;
+  }
+  get [dartx.multiple]() {
+    return this.multiple;
+  }
+  set [dartx.multiple](value) {
+    this.multiple = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.required]() {
+    return this.required;
+  }
+  set [dartx.required](value) {
+    this.required = value;
+  }
+  get [dartx.selectedIndex]() {
+    return this.selectedIndex;
+  }
+  set [dartx.selectedIndex](value) {
+    this.selectedIndex = value;
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+  set [dartx.size](value) {
+    this.size = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  [__setter__](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.add](...args) {
+    return this.add.apply(this, args);
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.namedItem](...args) {
+    return this.namedItem.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+  get [dartx.options]() {
+    let options = ListOfOptionElement().from(this[dartx.querySelectorAll](html$.Element)('option'));
+    return new (UnmodifiableListViewOfOptionElement())(options);
+  }
+  get [dartx.selectedOptions]() {
+    if (dart.test(this[dartx.multiple])) {
+      let options = this[dartx.options][dartx.where](dart.fn(o => o[dartx.selected], OptionElementTobool()))[dartx.toList]();
+      return new (UnmodifiableListViewOfOptionElement())(options);
+    } else {
+      return JSArrayOfOptionElement().of([this[dartx.options][dartx._get](this[dartx.selectedIndex])]);
+    }
+  }
+};
+dart.defineNamedConstructor(html$.SelectElement, 'created');
+dart.setSignature(html$.SelectElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SelectElement, []),
+    new: dart.definiteFunctionType(html$.SelectElement, []),
+    created: dart.definiteFunctionType(html$.SelectElement, [])
+  }),
+  fields: () => ({
+    [dartx.autofocus]: core.bool,
+    [dartx.disabled]: core.bool,
+    [dartx.form]: html$.FormElement,
+    [dartx.labels]: ListOfNode(),
+    [dartx.length]: core.int,
+    [dartx.multiple]: core.bool,
+    [dartx.name]: core.String,
+    [dartx.required]: core.bool,
+    [dartx.selectedIndex]: core.int,
+    [dartx.size]: core.int,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.value]: core.String,
+    [dartx.willValidate]: core.bool
+  }),
+  getters: () => ({
+    [dartx.options]: dart.definiteFunctionType(core.List$(html$.OptionElement), []),
+    [dartx.selectedOptions]: dart.definiteFunctionType(core.List$(html$.OptionElement), [])
+  }),
+  methods: () => ({
+    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, html$.OptionElement]),
+    [dartx.add]: dart.definiteFunctionType(dart.void, [core.Object, core.Object]),
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.item]: dart.definiteFunctionType(html$.Element, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.OptionElement, [core.String]),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
+  })
+});
+dart.registerExtension(dart.global.HTMLSelectElement, html$.SelectElement);
+dart.defineExtensionNames([
+  'addRange',
+  'collapse',
+  'collapseToEnd',
+  'collapseToStart',
+  'containsNode',
+  'deleteFromDocument',
+  'empty',
+  'extend',
+  'getRangeAt',
+  'modify',
+  'removeAllRanges',
+  'selectAllChildren',
+  'setBaseAndExtent',
+  'setPosition',
+  'anchorNode',
+  'anchorOffset',
+  'baseNode',
+  'baseOffset',
+  'extentNode',
+  'extentOffset',
+  'focusNode',
+  'focusOffset',
+  'isCollapsed',
+  'rangeCount',
+  'type'
+]);
+html$.Selection = class Selection extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.anchorNode]() {
+    return this.anchorNode;
+  }
+  get [dartx.anchorOffset]() {
+    return this.anchorOffset;
+  }
+  get [dartx.baseNode]() {
+    return this.baseNode;
+  }
+  get [dartx.baseOffset]() {
+    return this.baseOffset;
+  }
+  get [dartx.extentNode]() {
+    return this.extentNode;
+  }
+  get [dartx.extentOffset]() {
+    return this.extentOffset;
+  }
+  get [dartx.focusNode]() {
+    return this.focusNode;
+  }
+  get [dartx.focusOffset]() {
+    return this.focusOffset;
+  }
+  get [dartx.isCollapsed]() {
+    return this.isCollapsed;
+  }
+  get [dartx.rangeCount]() {
+    return this.rangeCount;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.addRange](...args) {
+    return this.addRange.apply(this, args);
+  }
+  [dartx.collapse](...args) {
+    return this.collapse.apply(this, args);
+  }
+  [dartx.collapseToEnd](...args) {
+    return this.collapseToEnd.apply(this, args);
+  }
+  [dartx.collapseToStart](...args) {
+    return this.collapseToStart.apply(this, args);
+  }
+  [dartx.containsNode](...args) {
+    return this.containsNode.apply(this, args);
+  }
+  [dartx.deleteFromDocument](...args) {
+    return this.deleteFromDocument.apply(this, args);
+  }
+  [dartx.empty](...args) {
+    return this.empty.apply(this, args);
+  }
+  [dartx.extend](...args) {
+    return this.extend.apply(this, args);
+  }
+  [dartx.getRangeAt](...args) {
+    return this.getRangeAt.apply(this, args);
+  }
+  [dartx.modify](...args) {
+    return this.modify.apply(this, args);
+  }
+  [dartx.removeAllRanges](...args) {
+    return this.removeAllRanges.apply(this, args);
+  }
+  [dartx.selectAllChildren](...args) {
+    return this.selectAllChildren.apply(this, args);
+  }
+  [dartx.setBaseAndExtent](...args) {
+    return this.setBaseAndExtent.apply(this, args);
+  }
+  [dartx.setPosition](...args) {
+    return this.setPosition.apply(this, args);
+  }
+};
+dart.setSignature(html$.Selection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Selection, [])}),
+  fields: () => ({
+    [dartx.anchorNode]: html$.Node,
+    [dartx.anchorOffset]: core.int,
+    [dartx.baseNode]: html$.Node,
+    [dartx.baseOffset]: core.int,
+    [dartx.extentNode]: html$.Node,
+    [dartx.extentOffset]: core.int,
+    [dartx.focusNode]: html$.Node,
+    [dartx.focusOffset]: core.int,
+    [dartx.isCollapsed]: core.bool,
+    [dartx.rangeCount]: core.int,
+    [dartx.type]: core.String
+  }),
+  methods: () => ({
+    [dartx.addRange]: dart.definiteFunctionType(dart.void, [html$.Range]),
+    [dartx.collapse]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int]),
+    [dartx.collapseToEnd]: dart.definiteFunctionType(dart.void, []),
+    [dartx.collapseToStart]: dart.definiteFunctionType(dart.void, []),
+    [dartx.containsNode]: dart.definiteFunctionType(core.bool, [html$.Node, core.bool]),
+    [dartx.deleteFromDocument]: dart.definiteFunctionType(dart.void, []),
+    [dartx.empty]: dart.definiteFunctionType(dart.void, []),
+    [dartx.extend]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int]),
+    [dartx.getRangeAt]: dart.definiteFunctionType(html$.Range, [core.int]),
+    [dartx.modify]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.removeAllRanges]: dart.definiteFunctionType(dart.void, []),
+    [dartx.selectAllChildren]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setBaseAndExtent]: dart.definiteFunctionType(dart.void, [html$.Node, core.int, html$.Node, core.int]),
+    [dartx.setPosition]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int])
+  })
+});
+dart.registerExtension(dart.global.Selection, html$.Selection);
+dart.defineExtensionNames([
+  'close',
+  'postMessage',
+  'data',
+  'name',
+  'targetUrl'
+]);
+html$.ServicePort = class ServicePort extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.targetUrl]() {
+    return this.targetURL;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+};
+dart.setSignature(html$.ServicePort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServicePort, [])}),
+  fields: () => ({
+    [dartx.data]: core.Object,
+    [dartx.name]: core.String,
+    [dartx.targetUrl]: core.String
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.ServicePort, html$.ServicePort);
+const _connect_1 = Symbol('_connect_1');
+const _connect_2 = Symbol('_connect_2');
+dart.defineExtensionNames([
+  'connect',
+  'match',
+  'matchAll',
+  'onMessage'
+]);
+html$.ServicePortCollection = class ServicePortCollection extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.connect](url, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_connect_1](url, options_1);
+    }
+    return this[_connect_2](url);
+  }
+  [_connect_1](...args) {
+    return this.connect.apply(this, args);
+  }
+  [_connect_2](...args) {
+    return this.connect.apply(this, args);
+  }
+  [dartx.match](options) {
+    let options_1 = html_common.convertDartToNative_Dictionary(options);
+    return this[_match_1](options_1);
+  }
+  [_match_1](...args) {
+    return this.match.apply(this, args);
+  }
+  [dartx.matchAll](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_matchAll_1](options_1);
+    }
+    return this[_matchAll_2]();
+  }
+  [_matchAll_1](...args) {
+    return this.matchAll.apply(this, args);
+  }
+  [_matchAll_2](...args) {
+    return this.matchAll.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.ServicePortCollection.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.ServicePortCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServicePortCollection, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({
+    [dartx.connect]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
+    [_connect_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
+    [_connect_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.match]: dart.definiteFunctionType(async.Future, [core.Map]),
+    [_match_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.matchAll]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_matchAll_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_matchAll_2]: dart.definiteFunctionType(async.Future, [])
+  }),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.ServicePortCollection, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.ServicePortCollection, html$.ServicePortCollection);
+dart.defineExtensionNames([
+  'respondWith',
+  'origin',
+  'targetUrl'
+]);
+html$.ServicePortConnectEvent = class ServicePortConnectEvent extends html$.ExtendableEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.ServicePortConnectEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.ServicePortConnectEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.ServicePortConnectEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.ServicePortConnectEvent(type);
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.targetUrl]() {
+    return this.targetURL;
+  }
+  [dartx.respondWith](...args) {
+    return this.respondWith.apply(this, args);
+  }
+};
+dart.setSignature(html$.ServicePortConnectEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ServicePortConnectEvent, []),
+    new: dart.definiteFunctionType(html$.ServicePortConnectEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.origin]: core.String,
+    [dartx.targetUrl]: core.String
+  }),
+  methods: () => ({[dartx.respondWith]: dart.definiteFunctionType(async.Future, [async.Future])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ServicePortConnectEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ServicePortConnectEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.ServicePortConnectEvent, html$.ServicePortConnectEvent);
+dart.defineExtensionNames([
+  'getRegistration',
+  'getRegistrations',
+  'register',
+  'onMessage',
+  'controller',
+  'ready'
+]);
+html$.ServiceWorkerContainer = class ServiceWorkerContainer extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.controller]() {
+    return this.controller;
+  }
+  get [dartx.ready]() {
+    return this.ready;
+  }
+  [dartx.getRegistration](...args) {
+    return this.getRegistration.apply(this, args);
+  }
+  [dartx.getRegistrations](...args) {
+    return this.getRegistrations.apply(this, args);
+  }
+  [dartx.register](url, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_register_1](url, options_1);
+    }
+    return this[_register_2](url);
+  }
+  [_register_1](...args) {
+    return this.register.apply(this, args);
+  }
+  [_register_2](...args) {
+    return this.register.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.ServiceWorkerContainer.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.ServiceWorkerContainer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerContainer, [])}),
+  fields: () => ({
+    [dartx.controller]: html$._ServiceWorker,
+    [dartx.ready]: async.Future
+  }),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({
+    [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [], [core.String]),
+    [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
+    [dartx.register]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
+    [_register_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
+    [_register_2]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+  }),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.ServiceWorkerContainer, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.ServiceWorkerContainer, html$.ServiceWorkerContainer);
+dart.defineExtensionNames([
+  'skipWaiting',
+  'onMessage',
+  'clients',
+  'ports',
+  'registration'
+]);
+html$.ServiceWorkerGlobalScope = class ServiceWorkerGlobalScope extends html$.WorkerGlobalScope {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.clients]() {
+    return this.clients;
+  }
+  get [dartx.ports]() {
+    return this.ports;
+  }
+  get [dartx.registration]() {
+    return this.registration;
+  }
+  [dartx.skipWaiting](...args) {
+    return this.skipWaiting.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.ServiceWorkerGlobalScope.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.ServiceWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerGlobalScope, [])}),
+  fields: () => ({
+    [dartx.clients]: html$.Clients,
+    [dartx.ports]: html$.StashedPortCollection,
+    [dartx.registration]: html$.ServiceWorkerRegistration
+  }),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({[dartx.skipWaiting]: dart.definiteFunctionType(async.Future, [])}),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.ServiceWorkerGlobalScope, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.ServiceWorkerGlobalScope, html$.ServiceWorkerGlobalScope);
+dart.defineExtensionNames([
+  'data',
+  'lastEventId',
+  'origin',
+  'ports',
+  'source'
+]);
+html$.ServiceWorkerMessageEvent = class ServiceWorkerMessageEvent extends html$.Event {
+  get [dartx.data]() {
+    return html_common.convertNativeToDart_SerializedScriptValue(this[_get_data]);
+  }
+  get [_get_data]() {
+    return this.data;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.ServiceWorkerMessageEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.ServiceWorkerMessageEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.ServiceWorkerMessageEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.ServiceWorkerMessageEvent(type);
+  }
+  get [dartx.lastEventId]() {
+    return this.lastEventId;
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.ports]() {
+    return this.ports;
+  }
+  get [dartx.source]() {
+    return this.source;
+  }
+};
+dart.setSignature(html$.ServiceWorkerMessageEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, []),
+    new: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [_get_data]: dart.dynamic,
+    [dartx.lastEventId]: core.String,
+    [dartx.origin]: core.String,
+    [dartx.ports]: ListOfMessagePort(),
+    [dartx.source]: core.Object
+  }),
+  getters: () => ({[dartx.data]: dart.definiteFunctionType(dart.dynamic, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.ServiceWorkerMessageEvent, html$.ServiceWorkerMessageEvent);
+const _getNotifications_1 = Symbol('_getNotifications_1');
+const _getNotifications_2 = Symbol('_getNotifications_2');
+const _showNotification_1 = Symbol('_showNotification_1');
+const _showNotification_2 = Symbol('_showNotification_2');
+dart.defineExtensionNames([
+  'getNotifications',
+  'showNotification',
+  'unregister',
+  'update',
+  'active',
+  'geofencing',
+  'installing',
+  'periodicSync',
+  'pushManager',
+  'scope',
+  'sync',
+  'waiting'
+]);
+html$.ServiceWorkerRegistration = class ServiceWorkerRegistration extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.active]() {
+    return this.active;
+  }
+  get [dartx.geofencing]() {
+    return this.geofencing;
+  }
+  get [dartx.installing]() {
+    return this.installing;
+  }
+  get [dartx.periodicSync]() {
+    return this.periodicSync;
+  }
+  get [dartx.pushManager]() {
+    return this.pushManager;
+  }
+  get [dartx.scope]() {
+    return this.scope;
+  }
+  get [dartx.sync]() {
+    return this.sync;
+  }
+  get [dartx.waiting]() {
+    return this.waiting;
+  }
+  [dartx.getNotifications](filter) {
+    if (filter === void 0) filter = null;
+    if (filter != null) {
+      let filter_1 = html_common.convertDartToNative_Dictionary(filter);
+      return this[_getNotifications_1](filter_1);
+    }
+    return this[_getNotifications_2]();
+  }
+  [_getNotifications_1](...args) {
+    return this.getNotifications.apply(this, args);
+  }
+  [_getNotifications_2](...args) {
+    return this.getNotifications.apply(this, args);
+  }
+  [dartx.showNotification](title, options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_showNotification_1](title, options_1);
+    }
+    return this[_showNotification_2](title);
+  }
+  [_showNotification_1](...args) {
+    return this.showNotification.apply(this, args);
+  }
+  [_showNotification_2](...args) {
+    return this.showNotification.apply(this, args);
+  }
+  [dartx.unregister](...args) {
+    return this.unregister.apply(this, args);
+  }
+  [dartx.update](...args) {
+    return this.update.apply(this, args);
+  }
+};
+dart.setSignature(html$.ServiceWorkerRegistration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerRegistration, [])}),
+  fields: () => ({
+    [dartx.active]: html$._ServiceWorker,
+    [dartx.geofencing]: html$.Geofencing,
+    [dartx.installing]: html$._ServiceWorker,
+    [dartx.periodicSync]: html$.PeriodicSyncManager,
+    [dartx.pushManager]: html$.PushManager,
+    [dartx.scope]: core.String,
+    [dartx.sync]: html$.SyncManager,
+    [dartx.waiting]: html$._ServiceWorker
+  }),
+  methods: () => ({
+    [dartx.getNotifications]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_getNotifications_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_getNotifications_2]: dart.definiteFunctionType(async.Future, []),
+    [dartx.showNotification]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
+    [_showNotification_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
+    [_showNotification_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.unregister]: dart.definiteFunctionType(async.Future, []),
+    [dartx.update]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.ServiceWorkerRegistration, html$.ServiceWorkerRegistration);
+dart.defineExtensionNames([
+  'getDistributedNodes'
+]);
+html$.ShadowElement = class ShadowElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.ShadowElement._check(html$.document[dartx.createElement]("shadow"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('shadow');
+  }
+  [dartx.getDistributedNodes](...args) {
+    return this.getDistributedNodes.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.ShadowElement, 'created');
+dart.setSignature(html$.ShadowElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.ShadowElement, []),
+    new: dart.definiteFunctionType(html$.ShadowElement, []),
+    created: dart.definiteFunctionType(html$.ShadowElement, [])
+  }),
+  methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLShadowElement, html$.ShadowElement);
+dart.defineExtensionNames([
+  'clone',
+  'elementFromPoint',
+  'elementsFromPoint',
+  'getSelection',
+  'resetStyleInheritance',
+  'resetStyleInheritance',
+  'applyAuthorStyles',
+  'applyAuthorStyles',
+  'activeElement',
+  'delegatesFocus',
+  'host',
+  'innerHtml',
+  'olderShadowRoot',
+  'styleSheets'
+]);
+html$.ShadowRoot = class ShadowRoot extends html$.DocumentFragment {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.activeElement]() {
+    return this.activeElement;
+  }
+  get [dartx.delegatesFocus]() {
+    return this.delegatesFocus;
+  }
+  get [dartx.host]() {
+    return this.host;
+  }
+  get [dartx.innerHtml]() {
+    return this.innerHTML;
+  }
+  set [dartx.innerHtml](value) {
+    this.innerHTML = value;
+  }
+  get [dartx.olderShadowRoot]() {
+    return this.olderShadowRoot;
+  }
+  get [dartx.styleSheets]() {
+    return this.styleSheets;
+  }
+  [dartx.clone](...args) {
+    return this.cloneNode.apply(this, args);
+  }
+  [dartx.elementFromPoint](...args) {
+    return this.elementFromPoint.apply(this, args);
+  }
+  [dartx.elementsFromPoint](...args) {
+    return this.elementsFromPoint.apply(this, args);
+  }
+  [dartx.getSelection](...args) {
+    return this.getSelection.apply(this, args);
+  }
+  static get supported() {
+    return !!(Element.prototype.createShadowRoot || Element.prototype.webkitCreateShadowRoot);
+  }
+  static _shadowRootDeprecationReport() {
+    if (!dart.test(html$.ShadowRoot._shadowRootDeprecationReported)) {
+      html$.window[dartx.console].warn('ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.\nPlease remove them from your code.\n');
+      html$.ShadowRoot._shadowRootDeprecationReported = true;
+    }
+  }
+  get [dartx.resetStyleInheritance]() {
+    html$.ShadowRoot._shadowRootDeprecationReport();
+    return false;
+  }
+  set [dartx.resetStyleInheritance](value) {
+    html$.ShadowRoot._shadowRootDeprecationReport();
+  }
+  get [dartx.applyAuthorStyles]() {
+    html$.ShadowRoot._shadowRootDeprecationReport();
+    return false;
+  }
+  set [dartx.applyAuthorStyles](value) {
+    html$.ShadowRoot._shadowRootDeprecationReport();
+  }
+};
+const innerHtml = Symbol(html$.ShadowRoot.name + "." + dartx.innerHtml.toString());
+dart.setSignature(html$.ShadowRoot, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ShadowRoot, [])}),
+  fields: () => ({
+    [dartx.activeElement]: html$.Element,
+    [dartx.delegatesFocus]: core.bool,
+    [dartx.host]: html$.Element,
+    [dartx.innerHtml]: core.String,
+    [dartx.olderShadowRoot]: html$.ShadowRoot,
+    [dartx.styleSheets]: ListOfStyleSheet()
+  }),
+  getters: () => ({
+    [dartx.resetStyleInheritance]: dart.definiteFunctionType(core.bool, []),
+    [dartx.applyAuthorStyles]: dart.definiteFunctionType(core.bool, [])
+  }),
+  setters: () => ({
+    [dartx.resetStyleInheritance]: dart.definiteFunctionType(dart.void, [core.bool]),
+    [dartx.applyAuthorStyles]: dart.definiteFunctionType(dart.void, [core.bool])
+  }),
+  methods: () => ({
+    [dartx.elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
+    [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html$.Element), [core.int, core.int]),
+    [dartx.getSelection]: dart.definiteFunctionType(html$.Selection, [])
+  }),
+  sfields: () => ({_shadowRootDeprecationReported: core.bool}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({_shadowRootDeprecationReport: dart.definiteFunctionType(dart.void, [])}),
+  names: ['_shadowRootDeprecationReport']
+});
+html$.ShadowRoot._shadowRootDeprecationReported = false;
+dart.registerExtension(dart.global.ShadowRoot, html$.ShadowRoot);
+dart.defineExtensionNames([
+  'byteLength'
+]);
+html$.SharedArrayBuffer = class SharedArrayBuffer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.byteLength]() {
+    return this.byteLength;
+  }
+};
+dart.setSignature(html$.SharedArrayBuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SharedArrayBuffer, [])}),
+  fields: () => ({[dartx.byteLength]: core.int})
+});
+dart.registerExtension(dart.global.SharedArrayBuffer, html$.SharedArrayBuffer);
+dart.defineExtensionNames([
+  'onError',
+  'port',
+  'workerStart'
+]);
+html$.SharedWorker = class SharedWorker extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(scriptURL, name) {
+    if (name === void 0) name = null;
+    if (name != null) {
+      return html$.SharedWorker._create_1(scriptURL, name);
+    }
+    return html$.SharedWorker._create_2(scriptURL);
+  }
+  static _create_1(scriptURL, name) {
+    return new self.SharedWorker(scriptURL, name);
+  }
+  static _create_2(scriptURL) {
+    return new self.SharedWorker(scriptURL);
+  }
+  get [dartx.port]() {
+    return this.port;
+  }
+  get [dartx.workerStart]() {
+    return this.workerStart;
+  }
+  get [dartx.onError]() {
+    return html$.SharedWorker.errorEvent.forTarget(this);
+  }
+};
+html$.SharedWorker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$.SharedWorker, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SharedWorker, []),
+    new: dart.definiteFunctionType(html$.SharedWorker, [core.String], [core.String])
+  }),
+  fields: () => ({
+    [dartx.port]: html$.MessagePort,
+    [dartx.workerStart]: core.double
+  }),
+  getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  sfields: () => ({errorEvent: EventStreamProviderOfEvent()}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.SharedWorker, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SharedWorker, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.defineLazy(html$.SharedWorker, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  }
+});
+dart.registerExtension(dart.global.SharedWorker, html$.SharedWorker);
+dart.defineExtensionNames([
+  'onConnect',
+  'name'
+]);
+html$.SharedWorkerGlobalScope = class SharedWorkerGlobalScope extends html$.WorkerGlobalScope {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.onConnect]() {
+    return html$.SharedWorkerGlobalScope.connectEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.SharedWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SharedWorkerGlobalScope, [])}),
+  fields: () => ({[dartx.name]: core.String}),
+  getters: () => ({[dartx.onConnect]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  sfields: () => ({connectEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.SharedWorkerGlobalScope, {
+  get connectEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('connect'));
+  }
+});
+dart.registerExtension(dart.global.SharedWorkerGlobalScope, html$.SharedWorkerGlobalScope);
+dart.defineExtensionNames([
+  'abort',
+  'appendBuffer',
+  'appendStream',
+  'appendTypedData',
+  'remove',
+  'appendWindowEnd',
+  'appendWindowStart',
+  'buffered',
+  'mode',
+  'timestampOffset',
+  'trackDefaults',
+  'updating'
+]);
+html$.SourceBuffer = class SourceBuffer extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.appendWindowEnd]() {
+    return this.appendWindowEnd;
+  }
+  set [dartx.appendWindowEnd](value) {
+    this.appendWindowEnd = value;
+  }
+  get [dartx.appendWindowStart]() {
+    return this.appendWindowStart;
+  }
+  set [dartx.appendWindowStart](value) {
+    this.appendWindowStart = value;
+  }
+  get [dartx.buffered]() {
+    return this.buffered;
+  }
+  get [dartx.mode]() {
+    return this.mode;
+  }
+  set [dartx.mode](value) {
+    this.mode = value;
+  }
+  get [dartx.timestampOffset]() {
+    return this.timestampOffset;
+  }
+  set [dartx.timestampOffset](value) {
+    this.timestampOffset = value;
+  }
+  get [dartx.trackDefaults]() {
+    return this.trackDefaults;
+  }
+  set [dartx.trackDefaults](value) {
+    this.trackDefaults = value;
+  }
+  get [dartx.updating]() {
+    return this.updating;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.appendBuffer](...args) {
+    return this.appendBuffer.apply(this, args);
+  }
+  [dartx.appendStream](...args) {
+    return this.appendStream.apply(this, args);
+  }
+  [dartx.appendTypedData](...args) {
+    return this.appendBuffer.apply(this, args);
+  }
+  [dartx.remove](...args) {
+    return this.remove.apply(this, args);
+  }
+};
+dart.setSignature(html$.SourceBuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SourceBuffer, [])}),
+  fields: () => ({
+    [dartx.appendWindowEnd]: core.num,
+    [dartx.appendWindowStart]: core.num,
+    [dartx.buffered]: html$.TimeRanges,
+    [dartx.mode]: core.String,
+    [dartx.timestampOffset]: core.num,
+    [dartx.trackDefaults]: html$.TrackDefaultList,
+    [dartx.updating]: core.bool
+  }),
+  methods: () => ({
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.appendBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
+    [dartx.appendStream]: dart.definiteFunctionType(dart.void, [html$.FileStream], [core.int]),
+    [dartx.appendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData]),
+    [dartx.remove]: dart.definiteFunctionType(dart.void, [core.num, core.num])
+  })
+});
+dart.registerExtension(dart.global.SourceBuffer, html$.SourceBuffer);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$.SourceBufferList = class SourceBufferList extends dart.mixin(html$.EventTarget, collection.ListMixin$(html$.SourceBuffer), html$.ImmutableListMixin$(html$.SourceBuffer)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.SourceBufferList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSourceBuffer()];
+dart.setSignature(html$.SourceBufferList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SourceBufferList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.SourceBuffer, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SourceBuffer]),
+    [dartx.item]: dart.definiteFunctionType(html$.SourceBuffer, [core.int])
+  })
+});
+dart.registerExtension(dart.global.SourceBufferList, html$.SourceBufferList);
+dart.defineExtensionNames([
+  'media',
+  'sizes',
+  'src',
+  'srcset',
+  'type'
+]);
+html$.SourceElement = class SourceElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.SourceElement._check(html$.document[dartx.createElement]("source"));
+  }
+  created() {
+    this[dartx.media] = null;
+    this[dartx.sizes] = null;
+    this[dartx.src] = null;
+    this[dartx.srcset] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  set [dartx.media](value) {
+    this.media = value;
+  }
+  get [dartx.sizes]() {
+    return this.sizes;
+  }
+  set [dartx.sizes](value) {
+    this.sizes = value;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.srcset]() {
+    return this.srcset;
+  }
+  set [dartx.srcset](value) {
+    this.srcset = value;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(html$.SourceElement, 'created');
+dart.setSignature(html$.SourceElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SourceElement, []),
+    new: dart.definiteFunctionType(html$.SourceElement, []),
+    created: dart.definiteFunctionType(html$.SourceElement, [])
+  }),
+  fields: () => ({
+    [dartx.media]: core.String,
+    [dartx.sizes]: core.String,
+    [dartx.src]: core.String,
+    [dartx.srcset]: core.String,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLSourceElement, html$.SourceElement);
+dart.defineExtensionNames([
+  'facing',
+  'id',
+  'kind',
+  'label'
+]);
+html$.SourceInfo = class SourceInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.facing]() {
+    return this.facing;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+};
+dart.setSignature(html$.SourceInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SourceInfo, [])}),
+  fields: () => ({
+    [dartx.facing]: core.String,
+    [dartx.id]: core.String,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String
+  })
+});
+dart.registerExtension(dart.global.SourceInfo, html$.SourceInfo);
+html$.SpanElement = class SpanElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.SpanElement._check(html$.document[dartx.createElement]("span"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.SpanElement, 'created');
+dart.setSignature(html$.SpanElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpanElement, []),
+    new: dart.definiteFunctionType(html$.SpanElement, []),
+    created: dart.definiteFunctionType(html$.SpanElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLSpanElement, html$.SpanElement);
+dart.defineExtensionNames([
+  'src',
+  'weight'
+]);
+html$.SpeechGrammar = class SpeechGrammar extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.SpeechGrammar._create_1();
+  }
+  static _create_1() {
+    return new self.SpeechGrammar();
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.weight]() {
+    return this.weight;
+  }
+  set [dartx.weight](value) {
+    this.weight = value;
+  }
+};
+dart.setSignature(html$.SpeechGrammar, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpeechGrammar, []),
+    new: dart.definiteFunctionType(html$.SpeechGrammar, [])
+  }),
+  fields: () => ({
+    [dartx.src]: core.String,
+    [dartx.weight]: core.num
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.SpeechGrammar, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.SpeechGrammar, html$.SpeechGrammar);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'addFromString',
+  'addFromUri',
+  'item'
+]);
+html$.SpeechGrammarList = class SpeechGrammarList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.SpeechGrammar), html$.ImmutableListMixin$(html$.SpeechGrammar)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.SpeechGrammarList._create_1();
+  }
+  static _create_1() {
+    return new self.SpeechGrammarList();
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.addFromString](...args) {
+    return this.addFromString.apply(this, args);
+  }
+  [dartx.addFromUri](...args) {
+    return this.addFromUri.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.SpeechGrammarList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechGrammar()];
+dart.setSignature(html$.SpeechGrammarList, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpeechGrammarList, []),
+    new: dart.definiteFunctionType(html$.SpeechGrammarList, [])
+  }),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.SpeechGrammar, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SpeechGrammar]),
+    [dartx.addFromString]: dart.definiteFunctionType(dart.void, [core.String], [core.num]),
+    [dartx.addFromUri]: dart.definiteFunctionType(dart.void, [core.String], [core.num]),
+    [dartx.item]: dart.definiteFunctionType(html$.SpeechGrammar, [core.int])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.SpeechGrammarList, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.SpeechGrammarList, html$.SpeechGrammarList);
+dart.defineExtensionNames([
+  'abort',
+  'start',
+  'stop',
+  'onAudioEnd',
+  'onAudioStart',
+  'onEnd',
+  'onError',
+  'onNoMatch',
+  'onResult',
+  'onSoundEnd',
+  'onSoundStart',
+  'onSpeechEnd',
+  'onSpeechStart',
+  'onStart',
+  'audioTrack',
+  'continuous',
+  'grammars',
+  'interimResults',
+  'lang',
+  'maxAlternatives',
+  'serviceUri'
+]);
+html$.SpeechRecognition = class SpeechRecognition extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!(window.SpeechRecognition || window.webkitSpeechRecognition);
+  }
+  get [dartx.audioTrack]() {
+    return this.audioTrack;
+  }
+  set [dartx.audioTrack](value) {
+    this.audioTrack = value;
+  }
+  get [dartx.continuous]() {
+    return this.continuous;
+  }
+  set [dartx.continuous](value) {
+    this.continuous = value;
+  }
+  get [dartx.grammars]() {
+    return this.grammars;
+  }
+  set [dartx.grammars](value) {
+    this.grammars = value;
+  }
+  get [dartx.interimResults]() {
+    return this.interimResults;
+  }
+  set [dartx.interimResults](value) {
+    this.interimResults = value;
+  }
+  get [dartx.lang]() {
+    return this.lang;
+  }
+  set [dartx.lang](value) {
+    this.lang = value;
+  }
+  get [dartx.maxAlternatives]() {
+    return this.maxAlternatives;
+  }
+  set [dartx.maxAlternatives](value) {
+    this.maxAlternatives = value;
+  }
+  get [dartx.serviceUri]() {
+    return this.serviceURI;
+  }
+  set [dartx.serviceUri](value) {
+    this.serviceURI = value;
+  }
+  [dartx.abort](...args) {
+    return this.abort.apply(this, args);
+  }
+  [dartx.start](...args) {
+    return this.start.apply(this, args);
+  }
+  [dartx.stop](...args) {
+    return this.stop.apply(this, args);
+  }
+  get [dartx.onAudioEnd]() {
+    return html$.SpeechRecognition.audioEndEvent.forTarget(this);
+  }
+  get [dartx.onAudioStart]() {
+    return html$.SpeechRecognition.audioStartEvent.forTarget(this);
+  }
+  get [dartx.onEnd]() {
+    return html$.SpeechRecognition.endEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.SpeechRecognition.errorEvent.forTarget(this);
+  }
+  get [dartx.onNoMatch]() {
+    return html$.SpeechRecognition.noMatchEvent.forTarget(this);
+  }
+  get [dartx.onResult]() {
+    return html$.SpeechRecognition.resultEvent.forTarget(this);
+  }
+  get [dartx.onSoundEnd]() {
+    return html$.SpeechRecognition.soundEndEvent.forTarget(this);
+  }
+  get [dartx.onSoundStart]() {
+    return html$.SpeechRecognition.soundStartEvent.forTarget(this);
+  }
+  get [dartx.onSpeechEnd]() {
+    return html$.SpeechRecognition.speechEndEvent.forTarget(this);
+  }
+  get [dartx.onSpeechStart]() {
+    return html$.SpeechRecognition.speechStartEvent.forTarget(this);
+  }
+  get [dartx.onStart]() {
+    return html$.SpeechRecognition.startEvent.forTarget(this);
+  }
+  static new() {
+    return new (window.SpeechRecognition || window.webkitSpeechRecognition)();
+  }
+};
+dart.setSignature(html$.SpeechRecognition, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpeechRecognition, []),
+    new: dart.definiteFunctionType(html$.SpeechRecognition, [])
+  }),
+  fields: () => ({
+    [dartx.audioTrack]: html$.MediaStreamTrack,
+    [dartx.continuous]: core.bool,
+    [dartx.grammars]: html$.SpeechGrammarList,
+    [dartx.interimResults]: core.bool,
+    [dartx.lang]: core.String,
+    [dartx.maxAlternatives]: core.int,
+    [dartx.serviceUri]: core.String
+  }),
+  getters: () => ({
+    [dartx.onAudioEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onAudioStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionError), []),
+    [dartx.onNoMatch]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionEvent), []),
+    [dartx.onResult]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionEvent), []),
+    [dartx.onSoundEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSoundStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSpeechEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSpeechStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.abort]: dart.definiteFunctionType(dart.void, []),
+    [dartx.start]: dart.definiteFunctionType(dart.void, []),
+    [dartx.stop]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    audioEndEvent: EventStreamProviderOfEvent(),
+    audioStartEvent: EventStreamProviderOfEvent(),
+    endEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfSpeechRecognitionError(),
+    noMatchEvent: EventStreamProviderOfSpeechRecognitionEvent(),
+    resultEvent: EventStreamProviderOfSpeechRecognitionEvent(),
+    soundEndEvent: EventStreamProviderOfEvent(),
+    soundStartEvent: EventStreamProviderOfEvent(),
+    speechEndEvent: EventStreamProviderOfEvent(),
+    speechStartEvent: EventStreamProviderOfEvent(),
+    startEvent: EventStreamProviderOfEvent()
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.defineLazy(html$.SpeechRecognition, {
+  get audioEndEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('audioend'));
+  },
+  get audioStartEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('audiostart'));
+  },
+  get endEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('end'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechRecognitionError())('error'));
+  },
+  get noMatchEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechRecognitionEvent())('nomatch'));
+  },
+  get resultEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechRecognitionEvent())('result'));
+  },
+  get soundEndEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('soundend'));
+  },
+  get soundStartEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('soundstart'));
+  },
+  get speechEndEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('speechend'));
+  },
+  get speechStartEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('speechstart'));
+  },
+  get startEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('start'));
+  }
+});
+dart.registerExtension(dart.global.SpeechRecognition, html$.SpeechRecognition);
+dart.defineExtensionNames([
+  'confidence',
+  'transcript'
+]);
+html$.SpeechRecognitionAlternative = class SpeechRecognitionAlternative extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.confidence]() {
+    return this.confidence;
+  }
+  get [dartx.transcript]() {
+    return this.transcript;
+  }
+};
+dart.setSignature(html$.SpeechRecognitionAlternative, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechRecognitionAlternative, [])}),
+  fields: () => ({
+    [dartx.confidence]: core.double,
+    [dartx.transcript]: core.String
+  })
+});
+dart.registerExtension(dart.global.SpeechRecognitionAlternative, html$.SpeechRecognitionAlternative);
+dart.defineExtensionNames([
+  'error',
+  'message'
+]);
+html$.SpeechRecognitionError = class SpeechRecognitionError extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, initDict) {
+    if (initDict === void 0) initDict = null;
+    if (initDict != null) {
+      let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
+      return html$.SpeechRecognitionError._create_1(type, initDict_1);
+    }
+    return html$.SpeechRecognitionError._create_2(type);
+  }
+  static _create_1(type, initDict) {
+    return new self.SpeechRecognitionError(type, initDict);
+  }
+  static _create_2(type) {
+    return new self.SpeechRecognitionError(type);
+  }
+  get [dartx.error]() {
+    return this.error;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+};
+dart.setSignature(html$.SpeechRecognitionError, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpeechRecognitionError, []),
+    new: dart.definiteFunctionType(html$.SpeechRecognitionError, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.error]: core.String,
+    [dartx.message]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.SpeechRecognitionError, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SpeechRecognitionError, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.SpeechRecognitionError, html$.SpeechRecognitionError);
+dart.defineExtensionNames([
+  'emma',
+  'interpretation',
+  'resultIndex',
+  'results'
+]);
+html$.SpeechRecognitionEvent = class SpeechRecognitionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, initDict) {
+    if (initDict === void 0) initDict = null;
+    if (initDict != null) {
+      let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
+      return html$.SpeechRecognitionEvent._create_1(type, initDict_1);
+    }
+    return html$.SpeechRecognitionEvent._create_2(type);
+  }
+  static _create_1(type, initDict) {
+    return new self.SpeechRecognitionEvent(type, initDict);
+  }
+  static _create_2(type) {
+    return new self.SpeechRecognitionEvent(type);
+  }
+  get [dartx.emma]() {
+    return this.emma;
+  }
+  get [dartx.interpretation]() {
+    return this.interpretation;
+  }
+  get [dartx.resultIndex]() {
+    return this.resultIndex;
+  }
+  get [dartx.results]() {
+    return this.results;
+  }
+};
+dart.setSignature(html$.SpeechRecognitionEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpeechRecognitionEvent, []),
+    new: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.emma]: html$.Document,
+    [dartx.interpretation]: html$.Document,
+    [dartx.resultIndex]: core.int,
+    [dartx.results]: ListOfSpeechRecognitionResult()
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.SpeechRecognitionEvent, html$.SpeechRecognitionEvent);
+dart.defineExtensionNames([
+  'item',
+  'isFinal',
+  'length'
+]);
+html$.SpeechRecognitionResult = class SpeechRecognitionResult extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.isFinal]() {
+    return this.isFinal;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+dart.setSignature(html$.SpeechRecognitionResult, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechRecognitionResult, [])}),
+  fields: () => ({
+    [dartx.isFinal]: core.bool,
+    [dartx.length]: core.int
+  }),
+  methods: () => ({[dartx.item]: dart.definiteFunctionType(html$.SpeechRecognitionAlternative, [core.int])})
+});
+dart.registerExtension(dart.global.SpeechRecognitionResult, html$.SpeechRecognitionResult);
+dart.defineExtensionNames([
+  'cancel',
+  'getVoices',
+  'pause',
+  'resume',
+  'speak',
+  'paused',
+  'pending',
+  'speaking'
+]);
+html$.SpeechSynthesis = class SpeechSynthesis extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.paused]() {
+    return this.paused;
+  }
+  get [dartx.pending]() {
+    return this.pending;
+  }
+  get [dartx.speaking]() {
+    return this.speaking;
+  }
+  [dartx.cancel](...args) {
+    return this.cancel.apply(this, args);
+  }
+  [dartx.getVoices](...args) {
+    return this.getVoices.apply(this, args);
+  }
+  [dartx.pause](...args) {
+    return this.pause.apply(this, args);
+  }
+  [dartx.resume](...args) {
+    return this.resume.apply(this, args);
+  }
+  [dartx.speak](...args) {
+    return this.speak.apply(this, args);
+  }
+};
+dart.setSignature(html$.SpeechSynthesis, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesis, [])}),
+  fields: () => ({
+    [dartx.paused]: core.bool,
+    [dartx.pending]: core.bool,
+    [dartx.speaking]: core.bool
+  }),
+  methods: () => ({
+    [dartx.cancel]: dart.definiteFunctionType(dart.void, []),
+    [dartx.getVoices]: dart.definiteFunctionType(core.List$(html$.SpeechSynthesisVoice), []),
+    [dartx.pause]: dart.definiteFunctionType(dart.void, []),
+    [dartx.resume]: dart.definiteFunctionType(dart.void, []),
+    [dartx.speak]: dart.definiteFunctionType(dart.void, [html$.SpeechSynthesisUtterance])
+  })
+});
+dart.registerExtension(dart.global.SpeechSynthesis, html$.SpeechSynthesis);
+dart.defineExtensionNames([
+  'charIndex',
+  'elapsedTime',
+  'name',
+  'utterance'
+]);
+html$.SpeechSynthesisEvent = class SpeechSynthesisEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.charIndex]() {
+    return this.charIndex;
+  }
+  get [dartx.elapsedTime]() {
+    return this.elapsedTime;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.utterance]() {
+    return this.utterance;
+  }
+};
+dart.setSignature(html$.SpeechSynthesisEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesisEvent, [])}),
+  fields: () => ({
+    [dartx.charIndex]: core.int,
+    [dartx.elapsedTime]: core.double,
+    [dartx.name]: core.String,
+    [dartx.utterance]: html$.SpeechSynthesisUtterance
+  })
+});
+dart.registerExtension(dart.global.SpeechSynthesisEvent, html$.SpeechSynthesisEvent);
+dart.defineExtensionNames([
+  'onBoundary',
+  'onEnd',
+  'onError',
+  'onMark',
+  'onPause',
+  'onResume',
+  'onStart',
+  'lang',
+  'pitch',
+  'rate',
+  'text',
+  'voice',
+  'volume'
+]);
+html$.SpeechSynthesisUtterance = class SpeechSynthesisUtterance extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(text) {
+    if (text === void 0) text = null;
+    if (text != null) {
+      return html$.SpeechSynthesisUtterance._create_1(text);
+    }
+    return html$.SpeechSynthesisUtterance._create_2();
+  }
+  static _create_1(text) {
+    return new self.SpeechSynthesisUtterance(text);
+  }
+  static _create_2() {
+    return new self.SpeechSynthesisUtterance();
+  }
+  get [dartx.lang]() {
+    return this.lang;
+  }
+  set [dartx.lang](value) {
+    this.lang = value;
+  }
+  get [dartx.pitch]() {
+    return this.pitch;
+  }
+  set [dartx.pitch](value) {
+    this.pitch = value;
+  }
+  get [dartx.rate]() {
+    return this.rate;
+  }
+  set [dartx.rate](value) {
+    this.rate = value;
+  }
+  get [dartx.text]() {
+    return this.text;
+  }
+  set [dartx.text](value) {
+    this.text = value;
+  }
+  get [dartx.voice]() {
+    return this.voice;
+  }
+  set [dartx.voice](value) {
+    this.voice = value;
+  }
+  get [dartx.volume]() {
+    return this.volume;
+  }
+  set [dartx.volume](value) {
+    this.volume = value;
+  }
+  get [dartx.onBoundary]() {
+    return html$.SpeechSynthesisUtterance.boundaryEvent.forTarget(this);
+  }
+  get [dartx.onEnd]() {
+    return html$.SpeechSynthesisUtterance.endEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.SpeechSynthesisUtterance.errorEvent.forTarget(this);
+  }
+  get [dartx.onMark]() {
+    return html$.SpeechSynthesisUtterance.markEvent.forTarget(this);
+  }
+  get [dartx.onPause]() {
+    return html$.SpeechSynthesisUtterance.pauseEvent.forTarget(this);
+  }
+  get [dartx.onResume]() {
+    return html$.SpeechSynthesisUtterance.resumeEvent.forTarget(this);
+  }
+  get [dartx.onStart]() {
+    return html$.SpeechSynthesisUtterance.startEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.SpeechSynthesisUtterance, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, []),
+    new: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [], [core.String])
+  }),
+  fields: () => ({
+    [dartx.lang]: core.String,
+    [dartx.pitch]: core.num,
+    [dartx.rate]: core.num,
+    [dartx.text]: core.String,
+    [dartx.voice]: html$.SpeechSynthesisVoice,
+    [dartx.volume]: core.num
+  }),
+  getters: () => ({
+    [dartx.onBoundary]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMark]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onResume]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), [])
+  }),
+  sfields: () => ({
+    boundaryEvent: EventStreamProviderOfSpeechSynthesisEvent(),
+    endEvent: EventStreamProviderOfSpeechSynthesisEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    markEvent: EventStreamProviderOfSpeechSynthesisEvent(),
+    pauseEvent: EventStreamProviderOfEvent(),
+    resumeEvent: EventStreamProviderOfSpeechSynthesisEvent(),
+    startEvent: EventStreamProviderOfSpeechSynthesisEvent()
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.defineLazy(html$.SpeechSynthesisUtterance, {
+  get boundaryEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('boundary'));
+  },
+  get endEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('end'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get markEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('mark'));
+  },
+  get pauseEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pause'));
+  },
+  get resumeEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('resume'));
+  },
+  get startEvent() {
+    return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('start'));
+  }
+});
+dart.registerExtension(dart.global.SpeechSynthesisUtterance, html$.SpeechSynthesisUtterance);
+dart.defineExtensionNames([
+  'defaultValue',
+  'lang',
+  'localService',
+  'name',
+  'voiceUri'
+]);
+html$.SpeechSynthesisVoice = class SpeechSynthesisVoice extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.defaultValue]() {
+    return this.default;
+  }
+  get [dartx.lang]() {
+    return this.lang;
+  }
+  get [dartx.localService]() {
+    return this.localService;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.voiceUri]() {
+    return this.voiceURI;
+  }
+};
+dart.setSignature(html$.SpeechSynthesisVoice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesisVoice, [])}),
+  fields: () => ({
+    [dartx.defaultValue]: core.bool,
+    [dartx.lang]: core.String,
+    [dartx.localService]: core.bool,
+    [dartx.name]: core.String,
+    [dartx.voiceUri]: core.String
+  })
+});
+dart.registerExtension(dart.global.SpeechSynthesisVoice, html$.SpeechSynthesisVoice);
+dart.defineExtensionNames([
+  'name'
+]);
+html$.StashedMessagePort = class StashedMessagePort extends html$.MessagePort {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+};
+dart.setSignature(html$.StashedMessagePort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StashedMessagePort, [])}),
+  fields: () => ({[dartx.name]: core.String})
+});
+dart.registerExtension(dart.global.StashedMessagePort, html$.StashedMessagePort);
+dart.defineExtensionNames([
+  'add',
+  'onMessage'
+]);
+html$.StashedPortCollection = class StashedPortCollection extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.add](...args) {
+    return this.add.apply(this, args);
+  }
+  get [dartx.onMessage]() {
+    return html$.StashedPortCollection.messageEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.StashedPortCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StashedPortCollection, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({[dartx.add]: dart.definiteFunctionType(html$.StashedMessagePort, [core.String, html$.MessagePort])}),
+  sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
+});
+dart.defineLazy(html$.StashedPortCollection, {
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.StashedPortCollection, html$.StashedPortCollection);
+const _getItem = Symbol('_getItem');
+const _setItem = Symbol('_setItem');
+const _removeItem = Symbol('_removeItem');
+const _key = Symbol('_key');
+const _length$3 = Symbol('_length');
+const __delete__ = Symbol('__delete__');
+dart.defineExtensionNames([
+  'addAll',
+  'containsValue',
+  'containsKey',
+  '_get',
+  '_set',
+  'putIfAbsent',
+  'remove',
+  'clear',
+  'forEach',
+  'keys',
+  'values',
+  'length',
+  'isEmpty',
+  'isNotEmpty'
+]);
+html$.Storage = class Storage extends _interceptors.Interceptor {
+  [dartx.addAll](other) {
+    other[dartx.forEach](dart.fn((k, v) => {
+      this[dartx._set](k, v);
+    }, StringAndStringToNull()));
+  }
+  [dartx.containsValue](value) {
+    return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool$()));
+  }
+  [dartx.containsKey](key) {
+    return this[_getItem](core.String._check(key)) != null;
+  }
+  [dartx._get](key) {
+    return this[_getItem](core.String._check(key));
+  }
+  [dartx._set](key, value) {
+    this[_setItem](key, value);
+    return value;
+  }
+  [dartx.putIfAbsent](key, ifAbsent) {
+    if (!dart.test(this[dartx.containsKey](key))) this[dartx._set](key, ifAbsent());
+    return this[dartx._get](key);
+  }
+  [dartx.remove](key) {
+    let value = this[dartx._get](key);
+    this[_removeItem](core.String._check(key));
+    return value;
+  }
+  [dartx.clear]() {
+    return this[_clear$1]();
+  }
+  [dartx.forEach](f) {
+    for (let i = 0; true; i++) {
+      let key = this[_key](i);
+      if (key == null) return;
+      f(key, this[dartx._get](key));
+    }
+  }
+  get [dartx.keys]() {
+    let keys = JSArrayOfString().of([]);
+    this[dartx.forEach](dart.fn((k, v) => keys[dartx.add](k), StringAndStringTovoid$()));
+    return keys;
+  }
+  get [dartx.values]() {
+    let values = JSArrayOfString().of([]);
+    this[dartx.forEach](dart.fn((k, v) => values[dartx.add](v), StringAndStringTovoid$()));
+    return values;
+  }
+  get [dartx.length]() {
+    return this[_length$3];
+  }
+  get [dartx.isEmpty]() {
+    return this[_key](0) == null;
+  }
+  get [dartx.isNotEmpty]() {
+    return !dart.test(this[dartx.isEmpty]);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [_length$3]() {
+    return this.length;
+  }
+  [__delete__](...args) {
+    return this.__delete__.apply(this, args);
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [__setter__](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [_clear$1](...args) {
+    return this.clear.apply(this, args);
+  }
+  [_getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [_key](...args) {
+    return this.key.apply(this, args);
+  }
+  [_removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [_setItem](...args) {
+    return this.setItem.apply(this, args);
+  }
+};
+html$.Storage[dart.implements] = () => [MapOfString$String()];
+dart.setSignature(html$.Storage, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Storage, [])}),
+  fields: () => ({[_length$3]: core.int}),
+  getters: () => ({
+    [dartx.keys]: dart.definiteFunctionType(core.Iterable$(core.String), []),
+    [dartx.values]: dart.definiteFunctionType(core.Iterable$(core.String), []),
+    [dartx.length]: dart.definiteFunctionType(core.int, []),
+    [dartx.isEmpty]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isNotEmpty]: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    [dartx.addAll]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
+    [dartx.containsValue]: dart.definiteFunctionType(core.bool, [core.Object]),
+    [dartx.containsKey]: dart.definiteFunctionType(core.bool, [core.Object]),
+    [dartx._get]: dart.definiteFunctionType(core.String, [core.Object]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.putIfAbsent]: dart.definiteFunctionType(core.String, [core.String, VoidToString()]),
+    [dartx.remove]: dart.definiteFunctionType(core.String, [core.Object]),
+    [dartx.clear]: dart.definiteFunctionType(dart.void, []),
+    [dartx.forEach]: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()]),
+    [__delete__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
+    [__getter__]: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String]),
+    [_clear$1]: dart.definiteFunctionType(dart.void, []),
+    [_getItem]: dart.definiteFunctionType(core.String, [core.String]),
+    [_key]: dart.definiteFunctionType(core.String, [core.int]),
+    [_removeItem]: dart.definiteFunctionType(dart.void, [core.String]),
+    [_setItem]: dart.definiteFunctionType(dart.void, [core.String, core.String])
+  })
+});
+dart.registerExtension(dart.global.Storage, html$.Storage);
+html$.StorageErrorCallback = dart.typedef('StorageErrorCallback', () => dart.functionType(dart.void, [html$.DomError]));
+const _initStorageEvent = Symbol('_initStorageEvent');
+dart.defineExtensionNames([
+  'key',
+  'newValue',
+  'oldValue',
+  'storageArea',
+  'url'
+]);
+html$.StorageEvent = class StorageEvent extends html$.Event {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
+    let key = opts && 'key' in opts ? opts.key : null;
+    let oldValue = opts && 'oldValue' in opts ? opts.oldValue : null;
+    let newValue = opts && 'newValue' in opts ? opts.newValue : null;
+    let url = opts && 'url' in opts ? opts.url : null;
+    let storageArea = opts && 'storageArea' in opts ? opts.storageArea : null;
+    let e = html$.StorageEvent._check(html$.document[_createEvent]("StorageEvent"));
+    e[_initStorageEvent](type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
+    return e;
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.StorageEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.StorageEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.StorageEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.StorageEvent(type);
+  }
+  get [dartx.key]() {
+    return this.key;
+  }
+  get [dartx.newValue]() {
+    return this.newValue;
+  }
+  get [dartx.oldValue]() {
+    return this.oldValue;
+  }
+  get [dartx.storageArea]() {
+    return this.storageArea;
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+  [_initStorageEvent](...args) {
+    return this.initStorageEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.StorageEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.StorageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, key: core.String, oldValue: core.String, newValue: core.String, url: core.String, storageArea: html$.Storage}),
+    _: dart.definiteFunctionType(html$.StorageEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.key]: core.String,
+    [dartx.newValue]: core.String,
+    [dartx.oldValue]: core.String,
+    [dartx.storageArea]: html$.Storage,
+    [dartx.url]: core.String
+  }),
+  methods: () => ({[_initStorageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String, core.String, core.String, html$.Storage])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.StorageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.StorageEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.StorageEvent, html$.StorageEvent);
+dart.defineExtensionNames([
+  'quota',
+  'usage'
+]);
+html$.StorageInfo = class StorageInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.quota]() {
+    return this.quota;
+  }
+  get [dartx.usage]() {
+    return this.usage;
+  }
+};
+dart.setSignature(html$.StorageInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StorageInfo, [])}),
+  fields: () => ({
+    [dartx.quota]: core.int,
+    [dartx.usage]: core.int
+  })
+});
+dart.registerExtension(dart.global.StorageInfo, html$.StorageInfo);
+dart.defineExtensionNames([
+  'queryInfo',
+  'requestPersistentQuota',
+  'supportedTypes'
+]);
+html$.StorageQuota = class StorageQuota extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.supportedTypes]() {
+    return this.supportedTypes;
+  }
+  [dartx.queryInfo](...args) {
+    return this.queryInfo.apply(this, args);
+  }
+  [dartx.requestPersistentQuota](...args) {
+    return this.requestPersistentQuota.apply(this, args);
+  }
+};
+dart.setSignature(html$.StorageQuota, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StorageQuota, [])}),
+  fields: () => ({[dartx.supportedTypes]: ListOfString()}),
+  methods: () => ({
+    [dartx.queryInfo]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.requestPersistentQuota]: dart.definiteFunctionType(async.Future, [core.int])
+  })
+});
+dart.registerExtension(dart.global.StorageQuota, html$.StorageQuota);
+html$.StorageQuotaCallback = dart.typedef('StorageQuotaCallback', () => dart.functionType(dart.void, [core.int]));
+html$.StorageUsageCallback = dart.typedef('StorageUsageCallback', () => dart.functionType(dart.void, [core.int, core.int]));
+html$._StringCallback = dart.typedef('_StringCallback', () => dart.functionType(dart.void, [core.String]));
+dart.defineExtensionNames([
+  'disabled',
+  'media',
+  'sheet',
+  'type'
+]);
+html$.StyleElement = class StyleElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.StyleElement._check(html$.document[dartx.createElement]("style"));
+  }
+  created() {
+    this[dartx.disabled] = null;
+    this[dartx.media] = null;
+    this[dartx.sheet] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  set [dartx.media](value) {
+    this.media = value;
+  }
+  get [dartx.sheet]() {
+    return this.sheet;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(html$.StyleElement, 'created');
+dart.setSignature(html$.StyleElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.StyleElement, []),
+    new: dart.definiteFunctionType(html$.StyleElement, []),
+    created: dart.definiteFunctionType(html$.StyleElement, [])
+  }),
+  fields: () => ({
+    [dartx.disabled]: core.bool,
+    [dartx.media]: core.String,
+    [dartx.sheet]: html$.StyleSheet,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.HTMLStyleElement, html$.StyleElement);
+dart.defineExtensionNames([
+  'matchMedium',
+  'type'
+]);
+html$.StyleMedia = class StyleMedia extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.matchMedium](...args) {
+    return this.matchMedium.apply(this, args);
+  }
+};
+dart.setSignature(html$.StyleMedia, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StyleMedia, [])}),
+  fields: () => ({[dartx.type]: core.String}),
+  methods: () => ({[dartx.matchMedium]: dart.definiteFunctionType(core.bool, [core.String])})
+});
+dart.registerExtension(dart.global.StyleMedia, html$.StyleMedia);
+dart.defineExtensionNames([
+  'registration'
+]);
+html$.SyncEvent = class SyncEvent extends html$.ExtendableEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, init) {
+    let init_1 = html_common.convertDartToNative_Dictionary(init);
+    return html$.SyncEvent._create_1(type, init_1);
+  }
+  static _create_1(type, init) {
+    return new self.SyncEvent(type, init);
+  }
+  get [dartx.registration]() {
+    return this.registration;
+  }
+};
+dart.setSignature(html$.SyncEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.SyncEvent, []),
+    new: dart.definiteFunctionType(html$.SyncEvent, [core.String, core.Map])
+  }),
+  fields: () => ({[dartx.registration]: html$.SyncRegistration}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.SyncEvent, [dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.SyncEvent, html$.SyncEvent);
+dart.defineExtensionNames([
+  'getRegistration',
+  'getRegistrations',
+  'permissionState',
+  'register'
+]);
+html$.SyncManager = class SyncManager extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getRegistration](...args) {
+    return this.getRegistration.apply(this, args);
+  }
+  [dartx.getRegistrations](...args) {
+    return this.getRegistrations.apply(this, args);
+  }
+  [dartx.permissionState](...args) {
+    return this.permissionState.apply(this, args);
+  }
+  [dartx.register](options) {
+    if (options === void 0) options = null;
+    if (options != null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options);
+      return this[_register_1](options_1);
+    }
+    return this[_register_2]();
+  }
+  [_register_1](...args) {
+    return this.register.apply(this, args);
+  }
+  [_register_2](...args) {
+    return this.register.apply(this, args);
+  }
+};
+dart.setSignature(html$.SyncManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SyncManager, [])}),
+  methods: () => ({
+    [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [core.String]),
+    [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
+    [dartx.permissionState]: dart.definiteFunctionType(async.Future, []),
+    [dartx.register]: dart.definiteFunctionType(async.Future, [], [core.Map]),
+    [_register_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [_register_2]: dart.definiteFunctionType(async.Future, [])
+  })
+});
+dart.registerExtension(dart.global.SyncManager, html$.SyncManager);
+dart.defineExtensionNames([
+  'unregister',
+  'tag'
+]);
+html$.SyncRegistration = class SyncRegistration extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.tag]() {
+    return this.tag;
+  }
+  [dartx.unregister](...args) {
+    return this.unregister.apply(this, args);
+  }
+};
+dart.setSignature(html$.SyncRegistration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SyncRegistration, [])}),
+  fields: () => ({[dartx.tag]: core.String}),
+  methods: () => ({[dartx.unregister]: dart.definiteFunctionType(async.Future, [])})
+});
+dart.registerExtension(dart.global.SyncRegistration, html$.SyncRegistration);
+html$.TableCaptionElement = class TableCaptionElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TableCaptionElement._check(html$.document[dartx.createElement]("caption"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.TableCaptionElement, 'created');
+dart.setSignature(html$.TableCaptionElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TableCaptionElement, []),
+    new: dart.definiteFunctionType(html$.TableCaptionElement, []),
+    created: dart.definiteFunctionType(html$.TableCaptionElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLTableCaptionElement, html$.TableCaptionElement);
+dart.defineExtensionNames([
+  'cellIndex',
+  'colSpan',
+  'headers',
+  'rowSpan'
+]);
+html$.TableCellElement = class TableCellElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TableCellElement._check(html$.document[dartx.createElement]("td"));
+  }
+  created() {
+    this[dartx.cellIndex] = null;
+    this[dartx.colSpan] = null;
+    this[dartx.headers] = null;
+    this[dartx.rowSpan] = null;
+    super.created();
+  }
+  get [dartx.cellIndex]() {
+    return this.cellIndex;
+  }
+  get [dartx.colSpan]() {
+    return this.colSpan;
+  }
+  set [dartx.colSpan](value) {
+    this.colSpan = value;
+  }
+  get [dartx.headers]() {
+    return this.headers;
+  }
+  set [dartx.headers](value) {
+    this.headers = value;
+  }
+  get [dartx.rowSpan]() {
+    return this.rowSpan;
+  }
+  set [dartx.rowSpan](value) {
+    this.rowSpan = value;
+  }
+};
+dart.defineNamedConstructor(html$.TableCellElement, 'created');
+dart.setSignature(html$.TableCellElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TableCellElement, []),
+    new: dart.definiteFunctionType(html$.TableCellElement, []),
+    created: dart.definiteFunctionType(html$.TableCellElement, [])
+  }),
+  fields: () => ({
+    [dartx.cellIndex]: core.int,
+    [dartx.colSpan]: core.int,
+    [dartx.headers]: core.String,
+    [dartx.rowSpan]: core.int
+  })
+});
+dart.registerExtension(dart.global.HTMLTableCellElement, html$.TableCellElement);
+dart.registerExtension(dart.global.HTMLTableDataCellElement, html$.TableCellElement);
+dart.registerExtension(dart.global.HTMLTableHeaderCellElement, html$.TableCellElement);
+dart.defineExtensionNames([
+  'span'
+]);
+html$.TableColElement = class TableColElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TableColElement._check(html$.document[dartx.createElement]("col"));
+  }
+  created() {
+    this[dartx.span] = null;
+    super.created();
+  }
+  get [dartx.span]() {
+    return this.span;
+  }
+  set [dartx.span](value) {
+    this.span = value;
+  }
+};
+dart.defineNamedConstructor(html$.TableColElement, 'created');
+dart.setSignature(html$.TableColElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TableColElement, []),
+    new: dart.definiteFunctionType(html$.TableColElement, []),
+    created: dart.definiteFunctionType(html$.TableColElement, [])
+  }),
+  fields: () => ({[dartx.span]: core.int})
+});
+dart.registerExtension(dart.global.HTMLTableColElement, html$.TableColElement);
+const _tBodies = Symbol('_tBodies');
+const _rows = Symbol('_rows');
+const _createCaption = Symbol('_createCaption');
+const _createTBody = Symbol('_createTBody');
+const _createTFoot = Symbol('_createTFoot');
+const _createTHead = Symbol('_createTHead');
+const _insertRow = Symbol('_insertRow');
+const _nativeCreateTBody = Symbol('_nativeCreateTBody');
+dart.defineExtensionNames([
+  'tBodies',
+  'rows',
+  'addRow',
+  'createCaption',
+  'createTBody',
+  'createTFoot',
+  'createTHead',
+  'insertRow',
+  'createFragment',
+  'deleteCaption',
+  'deleteRow',
+  'deleteTFoot',
+  'deleteTHead',
+  'caption',
+  'tFoot',
+  'tHead'
+]);
+html$.TableElement = class TableElement extends html$.HtmlElement {
+  get [dartx.tBodies]() {
+    return new (_WrappedListOfTableSectionElement())(this[_tBodies]);
+  }
+  get [dartx.rows]() {
+    return new (_WrappedListOfTableRowElement())(this[_rows]);
+  }
+  [dartx.addRow]() {
+    return this[dartx.insertRow](-1);
+  }
+  [dartx.createCaption]() {
+    return html$.TableCaptionElement._check(this[_createCaption]());
+  }
+  [dartx.createTBody]() {
+    return this[_createTBody]();
+  }
+  [dartx.createTFoot]() {
+    return html$.TableSectionElement._check(this[_createTFoot]());
+  }
+  [dartx.createTHead]() {
+    return html$.TableSectionElement._check(this[_createTHead]());
+  }
+  [dartx.insertRow](index) {
+    return html$.TableRowElement._check(this[_insertRow](index));
+  }
+  [_createTBody]() {
+    if (!!this.createTBody) {
+      return this[_nativeCreateTBody]();
+    }
+    let tbody = html$.Element.tag('tbody');
+    this[dartx.children][dartx.add](tbody);
+    return html$.TableSectionElement._check(tbody);
+  }
+  [_nativeCreateTBody](...args) {
+    return this.createTBody.apply(this, args);
+  }
+  [dartx.createFragment](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
+      return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    }
+    let contextualHtml = dart.str`<table>${html}</table>`;
+    let table = html$.Element.html(contextualHtml, {validator: validator, treeSanitizer: treeSanitizer});
+    let fragment = html$.DocumentFragment.new();
+    fragment[dartx.nodes][dartx.addAll](table[dartx.nodes]);
+    return fragment;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TableElement._check(html$.document[dartx.createElement]("table"));
+  }
+  created() {
+    this[dartx.caption] = null;
+    this[_rows] = null;
+    this[_tBodies] = null;
+    this[dartx.tFoot] = null;
+    this[dartx.tHead] = null;
+    super.created();
+  }
+  get [dartx.caption]() {
+    return this.caption;
+  }
+  set [dartx.caption](value) {
+    this.caption = value;
+  }
+  get [_rows]() {
+    return this.rows;
+  }
+  get [_tBodies]() {
+    return this.tBodies;
+  }
+  get [dartx.tFoot]() {
+    return this.tFoot;
+  }
+  set [dartx.tFoot](value) {
+    this.tFoot = value;
+  }
+  get [dartx.tHead]() {
+    return this.tHead;
+  }
+  set [dartx.tHead](value) {
+    this.tHead = value;
+  }
+  [_createCaption](...args) {
+    return this.createCaption.apply(this, args);
+  }
+  [_createTFoot](...args) {
+    return this.createTFoot.apply(this, args);
+  }
+  [_createTHead](...args) {
+    return this.createTHead.apply(this, args);
+  }
+  [dartx.deleteCaption](...args) {
+    return this.deleteCaption.apply(this, args);
+  }
+  [dartx.deleteRow](...args) {
+    return this.deleteRow.apply(this, args);
+  }
+  [dartx.deleteTFoot](...args) {
+    return this.deleteTFoot.apply(this, args);
+  }
+  [dartx.deleteTHead](...args) {
+    return this.deleteTHead.apply(this, args);
+  }
+  [_insertRow](...args) {
+    return this.insertRow.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.TableElement, 'created');
+dart.setSignature(html$.TableElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TableElement, []),
+    new: dart.definiteFunctionType(html$.TableElement, []),
+    created: dart.definiteFunctionType(html$.TableElement, [])
+  }),
+  fields: () => ({
+    [dartx.caption]: html$.TableCaptionElement,
+    [_rows]: ListOfNode(),
+    [_tBodies]: ListOfNode(),
+    [dartx.tFoot]: html$.TableSectionElement,
+    [dartx.tHead]: html$.TableSectionElement
+  }),
+  getters: () => ({
+    [dartx.tBodies]: dart.definiteFunctionType(core.List$(html$.TableSectionElement), []),
+    [dartx.rows]: dart.definiteFunctionType(core.List$(html$.TableRowElement), [])
+  }),
+  methods: () => ({
+    [dartx.addRow]: dart.definiteFunctionType(html$.TableRowElement, []),
+    [dartx.createCaption]: dart.definiteFunctionType(html$.TableCaptionElement, []),
+    [dartx.createTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [dartx.createTFoot]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [dartx.createTHead]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [dartx.insertRow]: dart.definiteFunctionType(html$.TableRowElement, [core.int]),
+    [_createTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [_nativeCreateTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [_createCaption]: dart.definiteFunctionType(html$.HtmlElement, []),
+    [_createTFoot]: dart.definiteFunctionType(html$.HtmlElement, []),
+    [_createTHead]: dart.definiteFunctionType(html$.HtmlElement, []),
+    [dartx.deleteCaption]: dart.definiteFunctionType(dart.void, []),
+    [dartx.deleteRow]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.deleteTFoot]: dart.definiteFunctionType(dart.void, []),
+    [dartx.deleteTHead]: dart.definiteFunctionType(dart.void, []),
+    [_insertRow]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
+  })
+});
+dart.registerExtension(dart.global.HTMLTableElement, html$.TableElement);
+const _cells = Symbol('_cells');
+const _insertCell = Symbol('_insertCell');
+dart.defineExtensionNames([
+  'cells',
+  'addCell',
+  'insertCell',
+  'createFragment',
+  'deleteCell',
+  'rowIndex',
+  'sectionRowIndex'
+]);
+html$.TableRowElement = class TableRowElement extends html$.HtmlElement {
+  get [dartx.cells]() {
+    return new (_WrappedListOfTableCellElement())(this[_cells]);
+  }
+  [dartx.addCell]() {
+    return this[dartx.insertCell](-1);
+  }
+  [dartx.insertCell](index) {
+    return html$.TableCellElement._check(this[_insertCell](index));
+  }
+  [dartx.createFragment](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
+      return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    }
+    let fragment = html$.DocumentFragment.new();
+    let section = html$.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
+    let row = section[dartx.nodes][dartx.single];
+    fragment[dartx.nodes][dartx.addAll](row[dartx.nodes]);
+    return fragment;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TableRowElement._check(html$.document[dartx.createElement]("tr"));
+  }
+  created() {
+    this[_cells] = null;
+    this[dartx.rowIndex] = null;
+    this[dartx.sectionRowIndex] = null;
+    super.created();
+  }
+  get [_cells]() {
+    return this.cells;
+  }
+  get [dartx.rowIndex]() {
+    return this.rowIndex;
+  }
+  get [dartx.sectionRowIndex]() {
+    return this.sectionRowIndex;
+  }
+  [dartx.deleteCell](...args) {
+    return this.deleteCell.apply(this, args);
+  }
+  [_insertCell](...args) {
+    return this.insertCell.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.TableRowElement, 'created');
+dart.setSignature(html$.TableRowElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TableRowElement, []),
+    new: dart.definiteFunctionType(html$.TableRowElement, []),
+    created: dart.definiteFunctionType(html$.TableRowElement, [])
+  }),
+  fields: () => ({
+    [_cells]: ListOfNode(),
+    [dartx.rowIndex]: core.int,
+    [dartx.sectionRowIndex]: core.int
+  }),
+  getters: () => ({[dartx.cells]: dart.definiteFunctionType(core.List$(html$.TableCellElement), [])}),
+  methods: () => ({
+    [dartx.addCell]: dart.definiteFunctionType(html$.TableCellElement, []),
+    [dartx.insertCell]: dart.definiteFunctionType(html$.TableCellElement, [core.int]),
+    [dartx.deleteCell]: dart.definiteFunctionType(dart.void, [core.int]),
+    [_insertCell]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
+  })
+});
+dart.registerExtension(dart.global.HTMLTableRowElement, html$.TableRowElement);
+dart.defineExtensionNames([
+  'rows',
+  'addRow',
+  'insertRow',
+  'createFragment',
+  'deleteRow'
+]);
+html$.TableSectionElement = class TableSectionElement extends html$.HtmlElement {
+  get [dartx.rows]() {
+    return new (_WrappedListOfTableRowElement())(this[_rows]);
+  }
+  [dartx.addRow]() {
+    return this[dartx.insertRow](-1);
+  }
+  [dartx.insertRow](index) {
+    return html$.TableRowElement._check(this[_insertRow](index));
+  }
+  [dartx.createFragment](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
+      return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    }
+    let fragment = html$.DocumentFragment.new();
+    let section = html$.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
+    fragment[dartx.nodes][dartx.addAll](section[dartx.nodes]);
+    return fragment;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[_rows] = null;
+    super.created();
+  }
+  get [_rows]() {
+    return this.rows;
+  }
+  [dartx.deleteRow](...args) {
+    return this.deleteRow.apply(this, args);
+  }
+  [_insertRow](...args) {
+    return this.insertRow.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.TableSectionElement, 'created');
+dart.setSignature(html$.TableSectionElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TableSectionElement, []),
+    created: dart.definiteFunctionType(html$.TableSectionElement, [])
+  }),
+  fields: () => ({[_rows]: ListOfNode()}),
+  getters: () => ({[dartx.rows]: dart.definiteFunctionType(core.List$(html$.TableRowElement), [])}),
+  methods: () => ({
+    [dartx.addRow]: dart.definiteFunctionType(html$.TableRowElement, []),
+    [dartx.insertRow]: dart.definiteFunctionType(html$.TableRowElement, [core.int]),
+    [dartx.deleteRow]: dart.definiteFunctionType(dart.void, [core.int]),
+    [_insertRow]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
+  })
+});
+dart.registerExtension(dart.global.HTMLTableSectionElement, html$.TableSectionElement);
+dart.defineExtensionNames([
+  'setInnerHtml',
+  'content'
+]);
+html$.TemplateElement = class TemplateElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TemplateElement._check(html$.document[dartx.createElement]("template"));
+  }
+  created() {
+    this[dartx.content] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('template');
+  }
+  get [dartx.content]() {
+    return this.content;
+  }
+  [dartx.setInnerHtml](html, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    this[dartx.text] = null;
+    let fragment = this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    this[dartx.content][dartx.append](fragment);
+  }
+};
+dart.defineNamedConstructor(html$.TemplateElement, 'created');
+dart.setSignature(html$.TemplateElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TemplateElement, []),
+    new: dart.definiteFunctionType(html$.TemplateElement, []),
+    created: dart.definiteFunctionType(html$.TemplateElement, [])
+  }),
+  fields: () => ({[dartx.content]: html$.DocumentFragment}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.HTMLTemplateElement, html$.TemplateElement);
+dart.defineExtensionNames([
+  'checkValidity',
+  'reportValidity',
+  'select',
+  'setCustomValidity',
+  'setRangeText',
+  'setSelectionRange',
+  'autocapitalize',
+  'autofocus',
+  'cols',
+  'defaultValue',
+  'dirName',
+  'disabled',
+  'form',
+  'inputMode',
+  'labels',
+  'maxLength',
+  'minLength',
+  'name',
+  'placeholder',
+  'readOnly',
+  'required',
+  'rows',
+  'selectionDirection',
+  'selectionEnd',
+  'selectionStart',
+  'textLength',
+  'type',
+  'validationMessage',
+  'validity',
+  'value',
+  'willValidate',
+  'wrap'
+]);
+html$.TextAreaElement = class TextAreaElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TextAreaElement._check(html$.document[dartx.createElement]("textarea"));
+  }
+  created() {
+    this[dartx.autocapitalize] = null;
+    this[dartx.autofocus] = null;
+    this[dartx.cols] = null;
+    this[dartx.defaultValue] = null;
+    this[dartx.dirName] = null;
+    this[dartx.disabled] = null;
+    this[dartx.form] = null;
+    this[dartx.inputMode] = null;
+    this[dartx.labels] = null;
+    this[dartx.maxLength] = null;
+    this[dartx.minLength] = null;
+    this[dartx.name] = null;
+    this[dartx.placeholder] = null;
+    this[dartx.readOnly] = null;
+    this[dartx.required] = null;
+    this[dartx.rows] = null;
+    this[dartx.selectionDirection] = null;
+    this[dartx.selectionEnd] = null;
+    this[dartx.selectionStart] = null;
+    this[dartx.textLength] = null;
+    this[dartx.type] = null;
+    this[dartx.validationMessage] = null;
+    this[dartx.validity] = null;
+    this[dartx.value] = null;
+    this[dartx.willValidate] = null;
+    this[dartx.wrap] = null;
+    super.created();
+  }
+  get [dartx.autocapitalize]() {
+    return this.autocapitalize;
+  }
+  set [dartx.autocapitalize](value) {
+    this.autocapitalize = value;
+  }
+  get [dartx.autofocus]() {
+    return this.autofocus;
+  }
+  set [dartx.autofocus](value) {
+    this.autofocus = value;
+  }
+  get [dartx.cols]() {
+    return this.cols;
+  }
+  set [dartx.cols](value) {
+    this.cols = value;
+  }
+  get [dartx.defaultValue]() {
+    return this.defaultValue;
+  }
+  set [dartx.defaultValue](value) {
+    this.defaultValue = value;
+  }
+  get [dartx.dirName]() {
+    return this.dirName;
+  }
+  set [dartx.dirName](value) {
+    this.dirName = value;
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.form]() {
+    return this.form;
+  }
+  get [dartx.inputMode]() {
+    return this.inputMode;
+  }
+  set [dartx.inputMode](value) {
+    this.inputMode = value;
+  }
+  get [dartx.labels]() {
+    return this.labels;
+  }
+  get [dartx.maxLength]() {
+    return this.maxLength;
+  }
+  set [dartx.maxLength](value) {
+    this.maxLength = value;
+  }
+  get [dartx.minLength]() {
+    return this.minLength;
+  }
+  set [dartx.minLength](value) {
+    this.minLength = value;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.placeholder]() {
+    return this.placeholder;
+  }
+  set [dartx.placeholder](value) {
+    this.placeholder = value;
+  }
+  get [dartx.readOnly]() {
+    return this.readOnly;
+  }
+  set [dartx.readOnly](value) {
+    this.readOnly = value;
+  }
+  get [dartx.required]() {
+    return this.required;
+  }
+  set [dartx.required](value) {
+    this.required = value;
+  }
+  get [dartx.rows]() {
+    return this.rows;
+  }
+  set [dartx.rows](value) {
+    this.rows = value;
+  }
+  get [dartx.selectionDirection]() {
+    return this.selectionDirection;
+  }
+  set [dartx.selectionDirection](value) {
+    this.selectionDirection = value;
+  }
+  get [dartx.selectionEnd]() {
+    return this.selectionEnd;
+  }
+  set [dartx.selectionEnd](value) {
+    this.selectionEnd = value;
+  }
+  get [dartx.selectionStart]() {
+    return this.selectionStart;
+  }
+  set [dartx.selectionStart](value) {
+    this.selectionStart = value;
+  }
+  get [dartx.textLength]() {
+    return this.textLength;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.validationMessage]() {
+    return this.validationMessage;
+  }
+  get [dartx.validity]() {
+    return this.validity;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.willValidate]() {
+    return this.willValidate;
+  }
+  get [dartx.wrap]() {
+    return this.wrap;
+  }
+  set [dartx.wrap](value) {
+    this.wrap = value;
+  }
+  [dartx.checkValidity](...args) {
+    return this.checkValidity.apply(this, args);
+  }
+  [dartx.reportValidity](...args) {
+    return this.reportValidity.apply(this, args);
+  }
+  [dartx.select](...args) {
+    return this.select.apply(this, args);
+  }
+  [dartx.setCustomValidity](...args) {
+    return this.setCustomValidity.apply(this, args);
+  }
+  [dartx.setRangeText](...args) {
+    return this.setRangeText.apply(this, args);
+  }
+  [dartx.setSelectionRange](...args) {
+    return this.setSelectionRange.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.TextAreaElement, 'created');
+dart.setSignature(html$.TextAreaElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TextAreaElement, []),
+    new: dart.definiteFunctionType(html$.TextAreaElement, []),
+    created: dart.definiteFunctionType(html$.TextAreaElement, [])
+  }),
+  fields: () => ({
+    [dartx.autocapitalize]: core.String,
+    [dartx.autofocus]: core.bool,
+    [dartx.cols]: core.int,
+    [dartx.defaultValue]: core.String,
+    [dartx.dirName]: core.String,
+    [dartx.disabled]: core.bool,
+    [dartx.form]: html$.FormElement,
+    [dartx.inputMode]: core.String,
+    [dartx.labels]: ListOfNode(),
+    [dartx.maxLength]: core.int,
+    [dartx.minLength]: core.int,
+    [dartx.name]: core.String,
+    [dartx.placeholder]: core.String,
+    [dartx.readOnly]: core.bool,
+    [dartx.required]: core.bool,
+    [dartx.rows]: core.int,
+    [dartx.selectionDirection]: core.String,
+    [dartx.selectionEnd]: core.int,
+    [dartx.selectionStart]: core.int,
+    [dartx.textLength]: core.int,
+    [dartx.type]: core.String,
+    [dartx.validationMessage]: core.String,
+    [dartx.validity]: html$.ValidityState,
+    [dartx.value]: core.String,
+    [dartx.willValidate]: core.bool,
+    [dartx.wrap]: core.String
+  }),
+  methods: () => ({
+    [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
+    [dartx.select]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.setRangeText]: dart.definiteFunctionType(dart.void, [core.String], {start: core.int, end: core.int, selectionMode: core.String}),
+    [dartx.setSelectionRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.String])
+  })
+});
+dart.registerExtension(dart.global.HTMLTextAreaElement, html$.TextAreaElement);
+const _initTextEvent = Symbol('_initTextEvent');
+dart.defineExtensionNames([
+  'data'
+]);
+html$.TextEvent = class TextEvent extends html$.UIEvent {
+  static new(type, opts) {
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
+    let view = opts && 'view' in opts ? opts.view : null;
+    let data = opts && 'data' in opts ? opts.data : null;
+    if (view == null) {
+      view = html$.window;
+    }
+    let e = html$.TextEvent._check(html$.document[_createEvent]("TextEvent"));
+    e[_initTextEvent](type, canBubble, cancelable, view, data);
+    return e;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.data]() {
+    return this.data;
+  }
+  [_initTextEvent](...args) {
+    return this.initTextEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.TextEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.TextEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html$.Window, data: core.String}),
+    _: dart.definiteFunctionType(html$.TextEvent, [])
+  }),
+  fields: () => ({[dartx.data]: core.String}),
+  methods: () => ({[_initTextEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])})
+});
+dart.registerExtension(dart.global.TextEvent, html$.TextEvent);
+dart.defineExtensionNames([
+  'actualBoundingBoxAscent',
+  'actualBoundingBoxDescent',
+  'actualBoundingBoxLeft',
+  'actualBoundingBoxRight',
+  'alphabeticBaseline',
+  'emHeightAscent',
+  'emHeightDescent',
+  'fontBoundingBoxAscent',
+  'fontBoundingBoxDescent',
+  'hangingBaseline',
+  'ideographicBaseline',
+  'width'
+]);
+html$.TextMetrics = class TextMetrics extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.actualBoundingBoxAscent]() {
+    return this.actualBoundingBoxAscent;
+  }
+  get [dartx.actualBoundingBoxDescent]() {
+    return this.actualBoundingBoxDescent;
+  }
+  get [dartx.actualBoundingBoxLeft]() {
+    return this.actualBoundingBoxLeft;
+  }
+  get [dartx.actualBoundingBoxRight]() {
+    return this.actualBoundingBoxRight;
+  }
+  get [dartx.alphabeticBaseline]() {
+    return this.alphabeticBaseline;
+  }
+  get [dartx.emHeightAscent]() {
+    return this.emHeightAscent;
+  }
+  get [dartx.emHeightDescent]() {
+    return this.emHeightDescent;
+  }
+  get [dartx.fontBoundingBoxAscent]() {
+    return this.fontBoundingBoxAscent;
+  }
+  get [dartx.fontBoundingBoxDescent]() {
+    return this.fontBoundingBoxDescent;
+  }
+  get [dartx.hangingBaseline]() {
+    return this.hangingBaseline;
+  }
+  get [dartx.ideographicBaseline]() {
+    return this.ideographicBaseline;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+};
+dart.setSignature(html$.TextMetrics, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextMetrics, [])}),
+  fields: () => ({
+    [dartx.actualBoundingBoxAscent]: core.double,
+    [dartx.actualBoundingBoxDescent]: core.double,
+    [dartx.actualBoundingBoxLeft]: core.double,
+    [dartx.actualBoundingBoxRight]: core.double,
+    [dartx.alphabeticBaseline]: core.double,
+    [dartx.emHeightAscent]: core.double,
+    [dartx.emHeightDescent]: core.double,
+    [dartx.fontBoundingBoxAscent]: core.double,
+    [dartx.fontBoundingBoxDescent]: core.double,
+    [dartx.hangingBaseline]: core.double,
+    [dartx.ideographicBaseline]: core.double,
+    [dartx.width]: core.double
+  })
+});
+dart.registerExtension(dart.global.TextMetrics, html$.TextMetrics);
+dart.defineExtensionNames([
+  'addCue',
+  'addRegion',
+  'removeCue',
+  'removeRegion',
+  'onCueChange',
+  'activeCues',
+  'cues',
+  'id',
+  'kind',
+  'label',
+  'language',
+  'mode',
+  'regions'
+]);
+html$.TextTrack = class TextTrack extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.activeCues]() {
+    return this.activeCues;
+  }
+  get [dartx.cues]() {
+    return this.cues;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  get [dartx.language]() {
+    return this.language;
+  }
+  get [dartx.mode]() {
+    return this.mode;
+  }
+  set [dartx.mode](value) {
+    this.mode = value;
+  }
+  get [dartx.regions]() {
+    return this.regions;
+  }
+  [dartx.addCue](...args) {
+    return this.addCue.apply(this, args);
+  }
+  [dartx.addRegion](...args) {
+    return this.addRegion.apply(this, args);
+  }
+  [dartx.removeCue](...args) {
+    return this.removeCue.apply(this, args);
+  }
+  [dartx.removeRegion](...args) {
+    return this.removeRegion.apply(this, args);
+  }
+  get [dartx.onCueChange]() {
+    return html$.TextTrack.cueChangeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.TextTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrack, [])}),
+  fields: () => ({
+    [dartx.activeCues]: html$.TextTrackCueList,
+    [dartx.cues]: html$.TextTrackCueList,
+    [dartx.id]: core.String,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String,
+    [dartx.language]: core.String,
+    [dartx.mode]: core.String,
+    [dartx.regions]: html$.VttRegionList
+  }),
+  getters: () => ({[dartx.onCueChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.addCue]: dart.definiteFunctionType(dart.void, [html$.TextTrackCue]),
+    [dartx.addRegion]: dart.definiteFunctionType(dart.void, [html$.VttRegion]),
+    [dartx.removeCue]: dart.definiteFunctionType(dart.void, [html$.TextTrackCue]),
+    [dartx.removeRegion]: dart.definiteFunctionType(dart.void, [html$.VttRegion])
+  }),
+  sfields: () => ({cueChangeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.TextTrack, {
+  get cueChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('cuechange'));
+  }
+});
+dart.registerExtension(dart.global.TextTrack, html$.TextTrack);
+dart.defineExtensionNames([
+  'onEnter',
+  'onExit',
+  'endTime',
+  'id',
+  'pauseOnExit',
+  'startTime',
+  'track'
+]);
+html$.TextTrackCue = class TextTrackCue extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.endTime]() {
+    return this.endTime;
+  }
+  set [dartx.endTime](value) {
+    this.endTime = value;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  set [dartx.id](value) {
+    this.id = value;
+  }
+  get [dartx.pauseOnExit]() {
+    return this.pauseOnExit;
+  }
+  set [dartx.pauseOnExit](value) {
+    this.pauseOnExit = value;
+  }
+  get [dartx.startTime]() {
+    return this.startTime;
+  }
+  set [dartx.startTime](value) {
+    this.startTime = value;
+  }
+  get [dartx.track]() {
+    return this.track;
+  }
+  get [dartx.onEnter]() {
+    return html$.TextTrackCue.enterEvent.forTarget(this);
+  }
+  get [dartx.onExit]() {
+    return html$.TextTrackCue.exitEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.TextTrackCue, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackCue, [])}),
+  fields: () => ({
+    [dartx.endTime]: core.num,
+    [dartx.id]: core.String,
+    [dartx.pauseOnExit]: core.bool,
+    [dartx.startTime]: core.num,
+    [dartx.track]: html$.TextTrack
+  }),
+  getters: () => ({
+    [dartx.onEnter]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onExit]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  sfields: () => ({
+    enterEvent: EventStreamProviderOfEvent(),
+    exitEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(html$.TextTrackCue, {
+  get enterEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('enter'));
+  },
+  get exitEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('exit'));
+  }
+});
+dart.registerExtension(dart.global.TextTrackCue, html$.TextTrackCue);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'getCueById',
+  'item'
+]);
+html$.TextTrackCueList = class TextTrackCueList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.TextTrackCue), html$.ImmutableListMixin$(html$.TextTrackCue)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.getCueById](...args) {
+    return this.getCueById.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.TextTrackCueList[dart.implements] = () => [ListOfTextTrackCue(), _js_helper.JavaScriptIndexingBehavior];
+dart.setSignature(html$.TextTrackCueList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackCueList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.TextTrackCue, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.TextTrackCue]),
+    [dartx.getCueById]: dart.definiteFunctionType(html$.TextTrackCue, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.TextTrackCue, [core.int])
+  })
+});
+dart.registerExtension(dart.global.TextTrackCueList, html$.TextTrackCueList);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'getTrackById',
+  'item',
+  'onAddTrack',
+  'onChange'
+]);
+html$.TextTrackList = class TextTrackList extends dart.mixin(html$.EventTarget, collection.ListMixin$(html$.TextTrack), html$.ImmutableListMixin$(html$.TextTrack)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.getTrackById](...args) {
+    return this.getTrackById.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  get [dartx.onAddTrack]() {
+    return html$.TextTrackList.addTrackEvent.forTarget(this);
+  }
+  get [dartx.onChange]() {
+    return html$.TextTrackList.changeEvent.forTarget(this);
+  }
+};
+html$.TextTrackList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTextTrack()];
+dart.setSignature(html$.TextTrackList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackList, [])}),
+  getters: () => ({
+    [dartx.length]: dart.definiteFunctionType(core.int, []),
+    [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html$.TrackEvent), []),
+    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.TextTrack, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.TextTrack]),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.TextTrack, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.TextTrack, [core.int])
+  }),
+  sfields: () => ({
+    addTrackEvent: EventStreamProviderOfTrackEvent(),
+    changeEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(html$.TextTrackList, {
+  get addTrackEvent() {
+    return dart.const(new (EventStreamProviderOfTrackEvent())('addtrack'));
+  },
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.TextTrackList, html$.TextTrackList);
+dart.defineExtensionNames([
+  'end',
+  'start',
+  'length'
+]);
+html$.TimeRanges = class TimeRanges extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.end](...args) {
+    return this.end.apply(this, args);
+  }
+  [dartx.start](...args) {
+    return this.start.apply(this, args);
+  }
+};
+dart.setSignature(html$.TimeRanges, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TimeRanges, [])}),
+  fields: () => ({[dartx.length]: core.int}),
+  methods: () => ({
+    [dartx.end]: dart.definiteFunctionType(core.double, [core.int]),
+    [dartx.start]: dart.definiteFunctionType(core.double, [core.int])
+  })
+});
+dart.registerExtension(dart.global.TimeRanges, html$.TimeRanges);
+html$.TimeoutHandler = dart.typedef('TimeoutHandler', () => dart.functionType(dart.void, []));
+html$.TitleElement = class TitleElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TitleElement._check(html$.document[dartx.createElement]("title"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.TitleElement, 'created');
+dart.setSignature(html$.TitleElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TitleElement, []),
+    new: dart.definiteFunctionType(html$.TitleElement, []),
+    created: dart.definiteFunctionType(html$.TitleElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLTitleElement, html$.TitleElement);
+const _radiusX = Symbol('_radiusX');
+const _radiusY = Symbol('_radiusY');
+const __clientX = Symbol('__clientX');
+const __clientY = Symbol('__clientY');
+const __screenX = Symbol('__screenX');
+const __screenY = Symbol('__screenY');
+const __pageX = Symbol('__pageX');
+const __pageY = Symbol('__pageY');
+const __radiusX = Symbol('__radiusX');
+const __radiusY = Symbol('__radiusY');
+dart.defineExtensionNames([
+  'target',
+  'client',
+  'page',
+  'screen',
+  'radiusX',
+  'radiusY',
+  'force',
+  'identifier',
+  'rotationAngle'
+]);
+html$.Touch = class Touch extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [_clientX]() {
+    return this.clientX;
+  }
+  get [_clientY]() {
+    return this.clientY;
+  }
+  get [dartx.force]() {
+    return this.force;
+  }
+  get [dartx.identifier]() {
+    return this.identifier;
+  }
+  get [_pageX]() {
+    return this.pageX;
+  }
+  get [_pageY]() {
+    return this.pageY;
+  }
+  get [_radiusX]() {
+    return this.radiusX;
+  }
+  get [_radiusY]() {
+    return this.radiusY;
+  }
+  get [dartx.rotationAngle]() {
+    return this.rotationAngle;
+  }
+  get [_screenX]() {
+    return this.screenX;
+  }
+  get [_screenY]() {
+    return this.screenY;
+  }
+  get [dartx.target]() {
+    return html$._convertNativeToDart_EventTarget(this[_get_target]);
+  }
+  get [_get_target]() {
+    return this.target;
+  }
+  get [__clientX]() {
+    return this.clientX[dartx.round]();
+  }
+  get [__clientY]() {
+    return this.clientY[dartx.round]();
+  }
+  get [__screenX]() {
+    return this.screenX[dartx.round]();
+  }
+  get [__screenY]() {
+    return this.screenY[dartx.round]();
+  }
+  get [__pageX]() {
+    return this.pageX[dartx.round]();
+  }
+  get [__pageY]() {
+    return this.pageY[dartx.round]();
+  }
+  get [__radiusX]() {
+    return this.radiusX[dartx.round]();
+  }
+  get [__radiusY]() {
+    return this.radiusY[dartx.round]();
+  }
+  get [dartx.client]() {
+    return new (PointOfnum())(this[__clientX], this[__clientY]);
+  }
+  get [dartx.page]() {
+    return new (PointOfnum())(this[__pageX], this[__pageY]);
+  }
+  get [dartx.screen]() {
+    return new (PointOfnum())(this[__screenX], this[__screenY]);
+  }
+  get [dartx.radiusX]() {
+    return this[__radiusX];
+  }
+  get [dartx.radiusY]() {
+    return this[__radiusY];
+  }
+};
+dart.setSignature(html$.Touch, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Touch, [])}),
+  fields: () => ({
+    [_clientX]: core.double,
+    [_clientY]: core.double,
+    [dartx.force]: core.double,
+    [dartx.identifier]: core.int,
+    [_pageX]: core.double,
+    [_pageY]: core.double,
+    [_radiusX]: core.double,
+    [_radiusY]: core.double,
+    [dartx.rotationAngle]: core.double,
+    [_screenX]: core.double,
+    [_screenY]: core.double,
+    [_get_target]: dart.dynamic
+  }),
+  getters: () => ({
+    [dartx.target]: dart.definiteFunctionType(html$.EventTarget, []),
+    [__clientX]: dart.definiteFunctionType(core.int, []),
+    [__clientY]: dart.definiteFunctionType(core.int, []),
+    [__screenX]: dart.definiteFunctionType(core.int, []),
+    [__screenY]: dart.definiteFunctionType(core.int, []),
+    [__pageX]: dart.definiteFunctionType(core.int, []),
+    [__pageY]: dart.definiteFunctionType(core.int, []),
+    [__radiusX]: dart.definiteFunctionType(core.int, []),
+    [__radiusY]: dart.definiteFunctionType(core.int, []),
+    [dartx.client]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.page]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.screen]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.radiusX]: dart.definiteFunctionType(core.int, []),
+    [dartx.radiusY]: dart.definiteFunctionType(core.int, [])
+  })
+});
+dart.registerExtension(dart.global.Touch, html$.Touch);
+const _initTouchEvent = Symbol('_initTouchEvent');
+dart.defineExtensionNames([
+  'altKey',
+  'changedTouches',
+  'ctrlKey',
+  'metaKey',
+  'shiftKey',
+  'targetTouches',
+  'touches'
+]);
+html$.TouchEvent = class TouchEvent extends html$.UIEvent {
+  static new(touches, targetTouches, changedTouches, type, opts) {
+    let view = opts && 'view' in opts ? opts.view : null;
+    let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
+    let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
+    let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
+    let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
+    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
+    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
+    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
+    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
+    if (view == null) {
+      view = html$.window;
+    }
+    let e = html$.TouchEvent._check(html$.document[_createEvent]("TouchEvent"));
+    e[_initTouchEvent](touches, targetTouches, changedTouches, type, view, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
+    return e;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.altKey]() {
+    return this.altKey;
+  }
+  get [dartx.changedTouches]() {
+    return this.changedTouches;
+  }
+  get [dartx.ctrlKey]() {
+    return this.ctrlKey;
+  }
+  get [dartx.metaKey]() {
+    return this.metaKey;
+  }
+  get [dartx.shiftKey]() {
+    return this.shiftKey;
+  }
+  get [dartx.targetTouches]() {
+    return this.targetTouches;
+  }
+  get [dartx.touches]() {
+    return this.touches;
+  }
+  [_initTouchEvent](...args) {
+    return this.initTouchEvent.apply(this, args);
+  }
+  static get supported() {
+    return html_common.Device.isEventTypeSupported('TouchEvent');
+  }
+};
+dart.setSignature(html$.TouchEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.TouchEvent, [html$.TouchList, html$.TouchList, html$.TouchList, core.String], {view: html$.Window, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
+    _: dart.definiteFunctionType(html$.TouchEvent, [])
+  }),
+  fields: () => ({
+    [dartx.altKey]: core.bool,
+    [dartx.changedTouches]: html$.TouchList,
+    [dartx.ctrlKey]: core.bool,
+    [dartx.metaKey]: core.bool,
+    [dartx.shiftKey]: core.bool,
+    [dartx.targetTouches]: html$.TouchList,
+    [dartx.touches]: html$.TouchList
+  }),
+  methods: () => ({[_initTouchEvent]: dart.definiteFunctionType(dart.void, [html$.TouchList, html$.TouchList, html$.TouchList, core.String, html$.Window, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.TouchEvent, html$.TouchEvent);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$.TouchList = class TouchList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Touch), html$.ImmutableListMixin$(html$.Touch)) {
+  static new() {
+    return null;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!document.createTouchList;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$.TouchList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTouch()];
+dart.setSignature(html$.TouchList, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.TouchList, []),
+    _: dart.definiteFunctionType(html$.TouchList, [])
+  }),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.Touch, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Touch]),
+    [dartx.item]: dart.definiteFunctionType(html$.Touch, [core.int])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.TouchList, html$.TouchList);
+dart.defineExtensionNames([
+  'byteStreamTrackID',
+  'kinds',
+  'label',
+  'language',
+  'type'
+]);
+html$.TrackDefault = class TrackDefault extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, language, label, kinds, byteStreamTrackID) {
+    if (byteStreamTrackID === void 0) byteStreamTrackID = null;
+    if (byteStreamTrackID != null) {
+      let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
+      return html$.TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
+    }
+    let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
+    return html$.TrackDefault._create_2(type, language, label, kinds_1);
+  }
+  static _create_1(type, language, label, kinds, byteStreamTrackID) {
+    return new self.TrackDefault(type, language, label, kinds, byteStreamTrackID);
+  }
+  static _create_2(type, language, label, kinds) {
+    return new self.TrackDefault(type, language, label, kinds);
+  }
+  get [dartx.byteStreamTrackID]() {
+    return this.byteStreamTrackID;
+  }
+  get [dartx.kinds]() {
+    return this.kinds;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  get [dartx.language]() {
+    return this.language;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(html$.TrackDefault, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TrackDefault, []),
+    new: dart.definiteFunctionType(html$.TrackDefault, [core.String, core.String, core.String, ListOfString()], [core.String])
+  }),
+  fields: () => ({
+    [dartx.byteStreamTrackID]: core.String,
+    [dartx.kinds]: ListOfString(),
+    [dartx.label]: core.String,
+    [dartx.language]: core.String,
+    [dartx.type]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.TrackDefault, html$.TrackDefault);
+dart.defineExtensionNames([
+  'item',
+  'length'
+]);
+html$.TrackDefaultList = class TrackDefaultList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(trackDefaults) {
+    if (trackDefaults === void 0) trackDefaults = null;
+    if (trackDefaults != null) {
+      return html$.TrackDefaultList._create_1(trackDefaults);
+    }
+    return html$.TrackDefaultList._create_2();
+  }
+  static _create_1(trackDefaults) {
+    return new self.TrackDefaultList(trackDefaults);
+  }
+  static _create_2() {
+    return new self.TrackDefaultList();
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+dart.setSignature(html$.TrackDefaultList, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TrackDefaultList, []),
+    new: dart.definiteFunctionType(html$.TrackDefaultList, [], [ListOfTrackDefault()])
+  }),
+  fields: () => ({[dartx.length]: core.int}),
+  methods: () => ({[dartx.item]: dart.definiteFunctionType(html$.TrackDefault, [core.int])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.TrackDefaultList, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TrackDefaultList, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.TrackDefaultList, html$.TrackDefaultList);
+dart.defineExtensionNames([
+  'defaultValue',
+  'kind',
+  'label',
+  'readyState',
+  'src',
+  'srclang',
+  'track'
+]);
+html$.TrackElement = class TrackElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.TrackElement._check(html$.document[dartx.createElement]("track"));
+  }
+  created() {
+    this[dartx.defaultValue] = null;
+    this[dartx.kind] = null;
+    this[dartx.label] = null;
+    this[dartx.readyState] = null;
+    this[dartx.src] = null;
+    this[dartx.srclang] = null;
+    this[dartx.track] = null;
+    super.created();
+  }
+  static get supported() {
+    return html$.Element.isTagSupported('track');
+  }
+  get [dartx.defaultValue]() {
+    return this.default;
+  }
+  set [dartx.defaultValue](value) {
+    this.default = value;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  set [dartx.kind](value) {
+    this.kind = value;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  set [dartx.label](value) {
+    this.label = value;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.src]() {
+    return this.src;
+  }
+  set [dartx.src](value) {
+    this.src = value;
+  }
+  get [dartx.srclang]() {
+    return this.srclang;
+  }
+  set [dartx.srclang](value) {
+    this.srclang = value;
+  }
+  get [dartx.track]() {
+    return this.track;
+  }
+};
+dart.defineNamedConstructor(html$.TrackElement, 'created');
+dart.setSignature(html$.TrackElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TrackElement, []),
+    new: dart.definiteFunctionType(html$.TrackElement, []),
+    created: dart.definiteFunctionType(html$.TrackElement, [])
+  }),
+  fields: () => ({
+    [dartx.defaultValue]: core.bool,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String,
+    [dartx.readyState]: core.int,
+    [dartx.src]: core.String,
+    [dartx.srclang]: core.String,
+    [dartx.track]: html$.TextTrack
+  }),
+  sfields: () => ({
+    ERROR: core.int,
+    LOADED: core.int,
+    LOADING: core.int,
+    NONE: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+html$.TrackElement.ERROR = 3;
+html$.TrackElement.LOADED = 2;
+html$.TrackElement.LOADING = 1;
+html$.TrackElement.NONE = 0;
+dart.registerExtension(dart.global.HTMLTrackElement, html$.TrackElement);
+dart.defineExtensionNames([
+  'track'
+]);
+html$.TrackEvent = class TrackEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.TrackEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.TrackEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.TrackEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.TrackEvent(type);
+  }
+  get [dartx.track]() {
+    return this.track;
+  }
+};
+dart.setSignature(html$.TrackEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TrackEvent, []),
+    new: dart.definiteFunctionType(html$.TrackEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({[dartx.track]: core.Object}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.TrackEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TrackEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.TrackEvent, html$.TrackEvent);
+dart.defineExtensionNames([
+  'elapsedTime',
+  'propertyName',
+  'pseudoElement'
+]);
+html$.TransitionEvent = class TransitionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.TransitionEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.TransitionEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.TransitionEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.TransitionEvent(type);
+  }
+  get [dartx.elapsedTime]() {
+    return this.elapsedTime;
+  }
+  get [dartx.propertyName]() {
+    return this.propertyName;
+  }
+  get [dartx.pseudoElement]() {
+    return this.pseudoElement;
+  }
+};
+dart.setSignature(html$.TransitionEvent, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.TransitionEvent, []),
+    new: dart.definiteFunctionType(html$.TransitionEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.elapsedTime]: core.double,
+    [dartx.propertyName]: core.String,
+    [dartx.pseudoElement]: core.String
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.TransitionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TransitionEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.TransitionEvent, html$.TransitionEvent);
+dart.registerExtension(dart.global.WebKitTransitionEvent, html$.TransitionEvent);
+dart.defineExtensionNames([
+  'firstChild',
+  'lastChild',
+  'nextNode',
+  'nextSibling',
+  'parentNode',
+  'previousNode',
+  'previousSibling',
+  'currentNode',
+  'filter',
+  'root',
+  'whatToShow'
+]);
+html$.TreeWalker = class TreeWalker extends _interceptors.Interceptor {
+  static new(root, whatToShow) {
+    return html$.document[_createTreeWalker](root, whatToShow, null);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.currentNode]() {
+    return this.currentNode;
+  }
+  set [dartx.currentNode](value) {
+    this.currentNode = value;
+  }
+  get [dartx.filter]() {
+    return this.filter;
+  }
+  get [dartx.root]() {
+    return this.root;
+  }
+  get [dartx.whatToShow]() {
+    return this.whatToShow;
+  }
+  [dartx.firstChild](...args) {
+    return this.firstChild.apply(this, args);
+  }
+  [dartx.lastChild](...args) {
+    return this.lastChild.apply(this, args);
+  }
+  [dartx.nextNode](...args) {
+    return this.nextNode.apply(this, args);
+  }
+  [dartx.nextSibling](...args) {
+    return this.nextSibling.apply(this, args);
+  }
+  [dartx.parentNode](...args) {
+    return this.parentNode.apply(this, args);
+  }
+  [dartx.previousNode](...args) {
+    return this.previousNode.apply(this, args);
+  }
+  [dartx.previousSibling](...args) {
+    return this.previousSibling.apply(this, args);
+  }
+};
+dart.setSignature(html$.TreeWalker, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.TreeWalker, [html$.Node, core.int]),
+    _: dart.definiteFunctionType(html$.TreeWalker, [])
+  }),
+  fields: () => ({
+    [dartx.currentNode]: html$.Node,
+    [dartx.filter]: html$.NodeFilter,
+    [dartx.root]: html$.Node,
+    [dartx.whatToShow]: core.int
+  }),
+  methods: () => ({
+    [dartx.firstChild]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.lastChild]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.nextNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.nextSibling]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.parentNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.previousNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.previousSibling]: dart.definiteFunctionType(html$.Node, [])
+  })
+});
+dart.registerExtension(dart.global.TreeWalker, html$.TreeWalker);
+html$.UListElement = class UListElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.UListElement._check(html$.document[dartx.createElement]("ul"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.UListElement, 'created');
+dart.setSignature(html$.UListElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.UListElement, []),
+    new: dart.definiteFunctionType(html$.UListElement, []),
+    created: dart.definiteFunctionType(html$.UListElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLUListElement, html$.UListElement);
+html$.UnknownElement = class UnknownElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$.UnknownElement, 'created');
+dart.setSignature(html$.UnknownElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.UnknownElement, []),
+    created: dart.definiteFunctionType(html$.UnknownElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLUnknownElement, html$.UnknownElement);
+dart.defineExtensionNames([
+  'toString',
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'origin',
+  'password',
+  'pathname',
+  'port',
+  'protocol',
+  'search',
+  'username'
+]);
+html$.Url = class Url extends _interceptors.Interceptor {
+  static createObjectUrl(blob_OR_source_OR_stream) {
+    return (self.URL || self.webkitURL).createObjectURL(blob_OR_source_OR_stream);
+  }
+  static createObjectUrlFromSource(source) {
+    return (self.URL || self.webkitURL).createObjectURL(source);
+  }
+  static createObjectUrlFromStream(stream) {
+    return (self.URL || self.webkitURL).createObjectURL(stream);
+  }
+  static createObjectUrlFromBlob(blob) {
+    return (self.URL || self.webkitURL).createObjectURL(blob);
+  }
+  static revokeObjectUrl(url) {
+    return (self.URL || self.webkitURL).revokeObjectURL(url);
+  }
+  [dartx.toString]() {
+    return String(this);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.hash]() {
+    return this.hash;
+  }
+  set [dartx.hash](value) {
+    this.hash = value;
+  }
+  get [dartx.host]() {
+    return this.host;
+  }
+  set [dartx.host](value) {
+    this.host = value;
+  }
+  get [dartx.hostname]() {
+    return this.hostname;
+  }
+  set [dartx.hostname](value) {
+    this.hostname = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+  set [dartx.href](value) {
+    this.href = value;
+  }
+  get [dartx.origin]() {
+    return this.origin;
+  }
+  get [dartx.password]() {
+    return this.password;
+  }
+  set [dartx.password](value) {
+    this.password = value;
+  }
+  get [dartx.pathname]() {
+    return this.pathname;
+  }
+  set [dartx.pathname](value) {
+    this.pathname = value;
+  }
+  get [dartx.port]() {
+    return this.port;
+  }
+  set [dartx.port](value) {
+    this.port = value;
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  set [dartx.protocol](value) {
+    this.protocol = value;
+  }
+  get [dartx.search]() {
+    return this.search;
+  }
+  set [dartx.search](value) {
+    this.search = value;
+  }
+  get [dartx.username]() {
+    return this.username;
+  }
+  set [dartx.username](value) {
+    this.username = value;
+  }
+};
+html$.Url[dart.implements] = () => [html$.UrlUtils];
+dart.setSignature(html$.Url, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Url, [])}),
+  fields: () => ({
+    [dartx.hash]: core.String,
+    [dartx.host]: core.String,
+    [dartx.hostname]: core.String,
+    [dartx.href]: core.String,
+    [dartx.origin]: core.String,
+    [dartx.password]: core.String,
+    [dartx.pathname]: core.String,
+    [dartx.port]: core.String,
+    [dartx.protocol]: core.String,
+    [dartx.search]: core.String,
+    [dartx.username]: core.String
+  }),
+  statics: () => ({
+    createObjectUrl: dart.definiteFunctionType(core.String, [dart.dynamic]),
+    createObjectUrlFromSource: dart.definiteFunctionType(core.String, [html$.MediaSource]),
+    createObjectUrlFromStream: dart.definiteFunctionType(core.String, [html$.MediaStream]),
+    createObjectUrlFromBlob: dart.definiteFunctionType(core.String, [html$.Blob]),
+    revokeObjectUrl: dart.definiteFunctionType(dart.void, [core.String])
+  }),
+  names: ['createObjectUrl', 'createObjectUrlFromSource', 'createObjectUrlFromStream', 'createObjectUrlFromBlob', 'revokeObjectUrl']
+});
+dart.registerExtension(dart.global.URL, html$.Url);
+dart.defineExtensionNames([
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'origin',
+  'password',
+  'pathname',
+  'port',
+  'protocol',
+  'search',
+  'username'
+]);
+html$.UrlUtils = class UrlUtils extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get hash() {
+    return this[hash];
+  }
+  set hash(value) {
+    this[hash] = value;
+  }
+  get host() {
+    return this[host];
+  }
+  set host(value) {
+    this[host] = value;
+  }
+  get hostname() {
+    return this[hostname];
+  }
+  set hostname(value) {
+    this[hostname] = value;
+  }
+  get href() {
+    return this[href];
+  }
+  set href(value) {
+    this[href] = value;
+  }
+  get origin() {
+    return this[origin];
+  }
+  set origin(value) {
+    super.origin = value;
+  }
+  get password() {
+    return this[password];
+  }
+  set password(value) {
+    this[password] = value;
+  }
+  get pathname() {
+    return this[pathname];
+  }
+  set pathname(value) {
+    this[pathname] = value;
+  }
+  get port() {
+    return this[port];
+  }
+  set port(value) {
+    this[port] = value;
+  }
+  get protocol() {
+    return this[protocol];
+  }
+  set protocol(value) {
+    this[protocol] = value;
+  }
+  get search() {
+    return this[search];
+  }
+  set search(value) {
+    this[search] = value;
+  }
+  get username() {
+    return this[username];
+  }
+  set username(value) {
+    this[username] = value;
+  }
+};
+const hash = Symbol(html$.UrlUtils.name + "." + 'hash'.toString());
+const host = Symbol(html$.UrlUtils.name + "." + 'host'.toString());
+const hostname = Symbol(html$.UrlUtils.name + "." + 'hostname'.toString());
+const href = Symbol(html$.UrlUtils.name + "." + 'href'.toString());
+const origin = Symbol(html$.UrlUtils.name + "." + 'origin'.toString());
+const password = Symbol(html$.UrlUtils.name + "." + 'password'.toString());
+const pathname = Symbol(html$.UrlUtils.name + "." + 'pathname'.toString());
+const port = Symbol(html$.UrlUtils.name + "." + 'port'.toString());
+const protocol = Symbol(html$.UrlUtils.name + "." + 'protocol'.toString());
+const search = Symbol(html$.UrlUtils.name + "." + 'search'.toString());
+const username = Symbol(html$.UrlUtils.name + "." + 'username'.toString());
+dart.setSignature(html$.UrlUtils, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.UrlUtils, [])}),
+  fields: () => ({
+    hash: core.String,
+    host: core.String,
+    hostname: core.String,
+    href: core.String,
+    origin: core.String,
+    password: core.String,
+    pathname: core.String,
+    port: core.String,
+    protocol: core.String,
+    search: core.String,
+    username: core.String
+  })
+});
+dart.defineExtensionMembers(html$.UrlUtils, [
+  'hash',
+  'hash',
+  'host',
+  'host',
+  'hostname',
+  'hostname',
+  'href',
+  'href',
+  'origin',
+  'password',
+  'password',
+  'pathname',
+  'pathname',
+  'port',
+  'port',
+  'protocol',
+  'protocol',
+  'search',
+  'search',
+  'username',
+  'username'
+]);
+dart.defineExtensionNames([
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'origin',
+  'pathname',
+  'port',
+  'protocol',
+  'search'
+]);
+html$.UrlUtilsReadOnly = class UrlUtilsReadOnly extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get hash() {
+    return this[hash$];
+  }
+  set hash(value) {
+    super.hash = value;
+  }
+  get host() {
+    return this[host$];
+  }
+  set host(value) {
+    super.host = value;
+  }
+  get hostname() {
+    return this[hostname$];
+  }
+  set hostname(value) {
+    super.hostname = value;
+  }
+  get href() {
+    return this[href$];
+  }
+  set href(value) {
+    super.href = value;
+  }
+  get origin() {
+    return this[origin$];
+  }
+  set origin(value) {
+    super.origin = value;
+  }
+  get pathname() {
+    return this[pathname$];
+  }
+  set pathname(value) {
+    super.pathname = value;
+  }
+  get port() {
+    return this[port$];
+  }
+  set port(value) {
+    super.port = value;
+  }
+  get protocol() {
+    return this[protocol$];
+  }
+  set protocol(value) {
+    super.protocol = value;
+  }
+  get search() {
+    return this[search$];
+  }
+  set search(value) {
+    super.search = value;
+  }
+};
+const hash$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'hash'.toString());
+const host$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'host'.toString());
+const hostname$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'hostname'.toString());
+const href$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'href'.toString());
+const origin$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'origin'.toString());
+const pathname$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'pathname'.toString());
+const port$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'port'.toString());
+const protocol$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'protocol'.toString());
+const search$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'search'.toString());
+dart.setSignature(html$.UrlUtilsReadOnly, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.UrlUtilsReadOnly, [])}),
+  fields: () => ({
+    hash: core.String,
+    host: core.String,
+    hostname: core.String,
+    href: core.String,
+    origin: core.String,
+    pathname: core.String,
+    port: core.String,
+    protocol: core.String,
+    search: core.String
+  })
+});
+dart.defineExtensionMembers(html$.UrlUtilsReadOnly, [
+  'hash',
+  'host',
+  'hostname',
+  'href',
+  'origin',
+  'pathname',
+  'port',
+  'protocol',
+  'search'
+]);
+dart.defineExtensionNames([
+  'currentFieldOfView',
+  'eyeTranslation',
+  'maximumFieldOfView',
+  'minimumFieldOfView',
+  'recommendedFieldOfView',
+  'renderRect'
+]);
+html$.VREyeParameters = class VREyeParameters extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.currentFieldOfView]() {
+    return this.currentFieldOfView;
+  }
+  get [dartx.eyeTranslation]() {
+    return this.eyeTranslation;
+  }
+  get [dartx.maximumFieldOfView]() {
+    return this.maximumFieldOfView;
+  }
+  get [dartx.minimumFieldOfView]() {
+    return this.minimumFieldOfView;
+  }
+  get [dartx.recommendedFieldOfView]() {
+    return this.recommendedFieldOfView;
+  }
+  get [dartx.renderRect]() {
+    return this.renderRect;
+  }
+};
+dart.setSignature(html$.VREyeParameters, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VREyeParameters, [])}),
+  fields: () => ({
+    [dartx.currentFieldOfView]: html$.VRFieldOfView,
+    [dartx.eyeTranslation]: html$.DomPoint,
+    [dartx.maximumFieldOfView]: html$.VRFieldOfView,
+    [dartx.minimumFieldOfView]: html$.VRFieldOfView,
+    [dartx.recommendedFieldOfView]: html$.VRFieldOfView,
+    [dartx.renderRect]: html$._DomRect
+  })
+});
+dart.registerExtension(dart.global.VREyeParameters, html$.VREyeParameters);
+dart.defineExtensionNames([
+  'downDegrees',
+  'leftDegrees',
+  'rightDegrees',
+  'upDegrees'
+]);
+html$.VRFieldOfView = class VRFieldOfView extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(fov) {
+    if (fov === void 0) fov = null;
+    if (fov != null) {
+      let fov_1 = html_common.convertDartToNative_Dictionary(fov);
+      return html$.VRFieldOfView._create_1(fov_1);
+    }
+    return html$.VRFieldOfView._create_2();
+  }
+  static _create_1(fov) {
+    return new self.VRFieldOfView(fov);
+  }
+  static _create_2() {
+    return new self.VRFieldOfView();
+  }
+  get [dartx.downDegrees]() {
+    return this.downDegrees;
+  }
+  set [dartx.downDegrees](value) {
+    this.downDegrees = value;
+  }
+  get [dartx.leftDegrees]() {
+    return this.leftDegrees;
+  }
+  set [dartx.leftDegrees](value) {
+    this.leftDegrees = value;
+  }
+  get [dartx.rightDegrees]() {
+    return this.rightDegrees;
+  }
+  set [dartx.rightDegrees](value) {
+    this.rightDegrees = value;
+  }
+  get [dartx.upDegrees]() {
+    return this.upDegrees;
+  }
+  set [dartx.upDegrees](value) {
+    this.upDegrees = value;
+  }
+};
+dart.setSignature(html$.VRFieldOfView, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.VRFieldOfView, []),
+    new: dart.definiteFunctionType(html$.VRFieldOfView, [], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.downDegrees]: core.num,
+    [dartx.leftDegrees]: core.num,
+    [dartx.rightDegrees]: core.num,
+    [dartx.upDegrees]: core.num
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.VRFieldOfView, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.VRFieldOfView, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.VRFieldOfView, html$.VRFieldOfView);
+dart.defineExtensionNames([
+  'angularAcceleration',
+  'angularVelocity',
+  'linearAcceleration',
+  'linearVelocity',
+  'orientation',
+  'position',
+  'timeStamp'
+]);
+html$.VRPositionState = class VRPositionState extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.angularAcceleration]() {
+    return this.angularAcceleration;
+  }
+  get [dartx.angularVelocity]() {
+    return this.angularVelocity;
+  }
+  get [dartx.linearAcceleration]() {
+    return this.linearAcceleration;
+  }
+  get [dartx.linearVelocity]() {
+    return this.linearVelocity;
+  }
+  get [dartx.orientation]() {
+    return this.orientation;
+  }
+  get [dartx.position]() {
+    return this.position;
+  }
+  get [dartx.timeStamp]() {
+    return this.timeStamp;
+  }
+};
+dart.setSignature(html$.VRPositionState, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VRPositionState, [])}),
+  fields: () => ({
+    [dartx.angularAcceleration]: html$.DomPoint,
+    [dartx.angularVelocity]: html$.DomPoint,
+    [dartx.linearAcceleration]: html$.DomPoint,
+    [dartx.linearVelocity]: html$.DomPoint,
+    [dartx.orientation]: html$.DomPoint,
+    [dartx.position]: html$.DomPoint,
+    [dartx.timeStamp]: core.double
+  })
+});
+dart.registerExtension(dart.global.VRPositionState, html$.VRPositionState);
+dart.defineExtensionNames([
+  'badInput',
+  'customError',
+  'patternMismatch',
+  'rangeOverflow',
+  'rangeUnderflow',
+  'stepMismatch',
+  'tooLong',
+  'tooShort',
+  'typeMismatch',
+  'valid',
+  'valueMissing'
+]);
+html$.ValidityState = class ValidityState extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.badInput]() {
+    return this.badInput;
+  }
+  get [dartx.customError]() {
+    return this.customError;
+  }
+  get [dartx.patternMismatch]() {
+    return this.patternMismatch;
+  }
+  get [dartx.rangeOverflow]() {
+    return this.rangeOverflow;
+  }
+  get [dartx.rangeUnderflow]() {
+    return this.rangeUnderflow;
+  }
+  get [dartx.stepMismatch]() {
+    return this.stepMismatch;
+  }
+  get [dartx.tooLong]() {
+    return this.tooLong;
+  }
+  get [dartx.tooShort]() {
+    return this.tooShort;
+  }
+  get [dartx.typeMismatch]() {
+    return this.typeMismatch;
+  }
+  get [dartx.valid]() {
+    return this.valid;
+  }
+  get [dartx.valueMissing]() {
+    return this.valueMissing;
+  }
+};
+dart.setSignature(html$.ValidityState, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ValidityState, [])}),
+  fields: () => ({
+    [dartx.badInput]: core.bool,
+    [dartx.customError]: core.bool,
+    [dartx.patternMismatch]: core.bool,
+    [dartx.rangeOverflow]: core.bool,
+    [dartx.rangeUnderflow]: core.bool,
+    [dartx.stepMismatch]: core.bool,
+    [dartx.tooLong]: core.bool,
+    [dartx.tooShort]: core.bool,
+    [dartx.typeMismatch]: core.bool,
+    [dartx.valid]: core.bool,
+    [dartx.valueMissing]: core.bool
+  })
+});
+dart.registerExtension(dart.global.ValidityState, html$.ValidityState);
+dart.defineExtensionNames([
+  'getVideoPlaybackQuality',
+  'enterFullscreen',
+  'exitFullscreen',
+  'height',
+  'poster',
+  'videoHeight',
+  'videoWidth',
+  'decodedFrameCount',
+  'droppedFrameCount',
+  'width'
+]);
+html$.VideoElement = class VideoElement extends html$.MediaElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.VideoElement._check(html$.document[dartx.createElement]("video"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.poster] = null;
+    this[dartx.videoHeight] = null;
+    this[dartx.videoWidth] = null;
+    this[dartx.decodedFrameCount] = null;
+    this[dartx.droppedFrameCount] = null;
+    this[dartx.width] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.poster]() {
+    return this.poster;
+  }
+  set [dartx.poster](value) {
+    this.poster = value;
+  }
+  get [dartx.videoHeight]() {
+    return this.videoHeight;
+  }
+  get [dartx.videoWidth]() {
+    return this.videoWidth;
+  }
+  get [dartx.decodedFrameCount]() {
+    return this.webkitDecodedFrameCount;
+  }
+  get [dartx.droppedFrameCount]() {
+    return this.webkitDroppedFrameCount;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  [dartx.getVideoPlaybackQuality](...args) {
+    return this.getVideoPlaybackQuality.apply(this, args);
+  }
+  [dartx.enterFullscreen](...args) {
+    return this.webkitEnterFullscreen.apply(this, args);
+  }
+  [dartx.exitFullscreen](...args) {
+    return this.webkitExitFullscreen.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(html$.VideoElement, 'created');
+html$.VideoElement[dart.implements] = () => [html$.CanvasImageSource];
+dart.setSignature(html$.VideoElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.VideoElement, []),
+    new: dart.definiteFunctionType(html$.VideoElement, []),
+    created: dart.definiteFunctionType(html$.VideoElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: core.int,
+    [dartx.poster]: core.String,
+    [dartx.videoHeight]: core.int,
+    [dartx.videoWidth]: core.int,
+    [dartx.decodedFrameCount]: core.int,
+    [dartx.droppedFrameCount]: core.int,
+    [dartx.width]: core.int
+  }),
+  methods: () => ({
+    [dartx.getVideoPlaybackQuality]: dart.definiteFunctionType(html$.VideoPlaybackQuality, []),
+    [dartx.enterFullscreen]: dart.definiteFunctionType(dart.void, []),
+    [dartx.exitFullscreen]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLVideoElement, html$.VideoElement);
+dart.defineExtensionNames([
+  'corruptedVideoFrames',
+  'creationTime',
+  'droppedVideoFrames',
+  'totalVideoFrames'
+]);
+html$.VideoPlaybackQuality = class VideoPlaybackQuality extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.corruptedVideoFrames]() {
+    return this.corruptedVideoFrames;
+  }
+  get [dartx.creationTime]() {
+    return this.creationTime;
+  }
+  get [dartx.droppedVideoFrames]() {
+    return this.droppedVideoFrames;
+  }
+  get [dartx.totalVideoFrames]() {
+    return this.totalVideoFrames;
+  }
+};
+dart.setSignature(html$.VideoPlaybackQuality, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VideoPlaybackQuality, [])}),
+  fields: () => ({
+    [dartx.corruptedVideoFrames]: core.int,
+    [dartx.creationTime]: core.double,
+    [dartx.droppedVideoFrames]: core.int,
+    [dartx.totalVideoFrames]: core.int
+  })
+});
+dart.registerExtension(dart.global.VideoPlaybackQuality, html$.VideoPlaybackQuality);
+dart.defineExtensionNames([
+  'id',
+  'kind',
+  'label',
+  'language',
+  'selected'
+]);
+html$.VideoTrack = class VideoTrack extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  get [dartx.kind]() {
+    return this.kind;
+  }
+  get [dartx.label]() {
+    return this.label;
+  }
+  get [dartx.language]() {
+    return this.language;
+  }
+  get [dartx.selected]() {
+    return this.selected;
+  }
+  set [dartx.selected](value) {
+    this.selected = value;
+  }
+};
+dart.setSignature(html$.VideoTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VideoTrack, [])}),
+  fields: () => ({
+    [dartx.id]: core.String,
+    [dartx.kind]: core.String,
+    [dartx.label]: core.String,
+    [dartx.language]: core.String,
+    [dartx.selected]: core.bool
+  })
+});
+dart.registerExtension(dart.global.VideoTrack, html$.VideoTrack);
+dart.defineExtensionNames([
+  'getTrackById',
+  'onChange',
+  'length',
+  'selectedIndex'
+]);
+html$.VideoTrackList = class VideoTrackList extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.selectedIndex]() {
+    return this.selectedIndex;
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.getTrackById](...args) {
+    return this.getTrackById.apply(this, args);
+  }
+  get [dartx.onChange]() {
+    return html$.VideoTrackList.changeEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.VideoTrackList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VideoTrackList, [])}),
+  fields: () => ({
+    [dartx.length]: core.int,
+    [dartx.selectedIndex]: core.int
+  }),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [__getter__]: dart.definiteFunctionType(html$.VideoTrack, [core.int]),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.VideoTrack, [core.String])
+  }),
+  sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
+});
+dart.defineLazy(html$.VideoTrackList, {
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  }
+});
+dart.registerExtension(dart.global.VideoTrackList, html$.VideoTrackList);
+html$.VoidCallback = dart.typedef('VoidCallback', () => dart.functionType(dart.void, []));
+dart.defineExtensionNames([
+  'getCueAsHtml',
+  'align',
+  'line',
+  'position',
+  'regionId',
+  'size',
+  'snapToLines',
+  'text',
+  'vertical'
+]);
+html$.VttCue = class VttCue extends html$.TextTrackCue {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(startTime, endTime, text) {
+    return html$.VttCue._create_1(startTime, endTime, text);
+  }
+  static _create_1(startTime, endTime, text) {
+    return new VTTCue(startTime, endTime, text);
+  }
+  get [dartx.align]() {
+    return this.align;
+  }
+  set [dartx.align](value) {
+    this.align = value;
+  }
+  get [dartx.line]() {
+    return this.line;
+  }
+  set [dartx.line](value) {
+    this.line = value;
+  }
+  get [dartx.position]() {
+    return this.position;
+  }
+  set [dartx.position](value) {
+    this.position = value;
+  }
+  get [dartx.regionId]() {
+    return this.regionId;
+  }
+  set [dartx.regionId](value) {
+    this.regionId = value;
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+  set [dartx.size](value) {
+    this.size = value;
+  }
+  get [dartx.snapToLines]() {
+    return this.snapToLines;
+  }
+  set [dartx.snapToLines](value) {
+    this.snapToLines = value;
+  }
+  get [dartx.text]() {
+    return this.text;
+  }
+  set [dartx.text](value) {
+    this.text = value;
+  }
+  get [dartx.vertical]() {
+    return this.vertical;
+  }
+  set [dartx.vertical](value) {
+    this.vertical = value;
+  }
+  [dartx.getCueAsHtml](...args) {
+    return this.getCueAsHTML.apply(this, args);
+  }
+};
+dart.setSignature(html$.VttCue, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.VttCue, []),
+    new: dart.definiteFunctionType(html$.VttCue, [core.num, core.num, core.String])
+  }),
+  fields: () => ({
+    [dartx.align]: core.String,
+    [dartx.line]: core.Object,
+    [dartx.position]: core.Object,
+    [dartx.regionId]: core.String,
+    [dartx.size]: core.num,
+    [dartx.snapToLines]: core.bool,
+    [dartx.text]: core.String,
+    [dartx.vertical]: core.String
+  }),
+  methods: () => ({[dartx.getCueAsHtml]: dart.definiteFunctionType(html$.DocumentFragment, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.VttCue, [dart.dynamic, dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.VTTCue, html$.VttCue);
+dart.defineExtensionNames([
+  'height',
+  'id',
+  'regionAnchorX',
+  'regionAnchorY',
+  'scroll',
+  'track',
+  'viewportAnchorX',
+  'viewportAnchorY',
+  'width'
+]);
+html$.VttRegion = class VttRegion extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.VttRegion._create_1();
+  }
+  static _create_1() {
+    return new VTTRegion();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.id]() {
+    return this.id;
+  }
+  set [dartx.id](value) {
+    this.id = value;
+  }
+  get [dartx.regionAnchorX]() {
+    return this.regionAnchorX;
+  }
+  set [dartx.regionAnchorX](value) {
+    this.regionAnchorX = value;
+  }
+  get [dartx.regionAnchorY]() {
+    return this.regionAnchorY;
+  }
+  set [dartx.regionAnchorY](value) {
+    this.regionAnchorY = value;
+  }
+  get [dartx.scroll]() {
+    return this.scroll;
+  }
+  set [dartx.scroll](value) {
+    this.scroll = value;
+  }
+  get [dartx.track]() {
+    return this.track;
+  }
+  get [dartx.viewportAnchorX]() {
+    return this.viewportAnchorX;
+  }
+  set [dartx.viewportAnchorX](value) {
+    this.viewportAnchorX = value;
+  }
+  get [dartx.viewportAnchorY]() {
+    return this.viewportAnchorY;
+  }
+  set [dartx.viewportAnchorY](value) {
+    this.viewportAnchorY = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+};
+dart.setSignature(html$.VttRegion, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.VttRegion, []),
+    new: dart.definiteFunctionType(html$.VttRegion, [])
+  }),
+  fields: () => ({
+    [dartx.height]: core.int,
+    [dartx.id]: core.String,
+    [dartx.regionAnchorX]: core.num,
+    [dartx.regionAnchorY]: core.num,
+    [dartx.scroll]: core.String,
+    [dartx.track]: html$.TextTrack,
+    [dartx.viewportAnchorX]: core.num,
+    [dartx.viewportAnchorY]: core.num,
+    [dartx.width]: core.num
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.VttRegion, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.VTTRegion, html$.VttRegion);
+dart.defineExtensionNames([
+  'getRegionById',
+  'item',
+  'length'
+]);
+html$.VttRegionList = class VttRegionList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx.getRegionById](...args) {
+    return this.getRegionById.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+dart.setSignature(html$.VttRegionList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VttRegionList, [])}),
+  fields: () => ({[dartx.length]: core.int}),
+  methods: () => ({
+    [dartx.getRegionById]: dart.definiteFunctionType(html$.VttRegion, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.VttRegion, [core.int])
+  })
+});
+dart.registerExtension(dart.global.VTTRegionList, html$.VttRegionList);
+dart.defineExtensionNames([
+  'close',
+  'send',
+  'sendBlob',
+  'sendByteBuffer',
+  'sendString',
+  'sendTypedData',
+  'onClose',
+  'onError',
+  'onMessage',
+  'onOpen',
+  'binaryType',
+  'bufferedAmount',
+  'extensions',
+  'protocol',
+  'readyState',
+  'url'
+]);
+html$.WebSocket = class WebSocket extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(url, protocols) {
+    if (protocols === void 0) protocols = null;
+    if (protocols != null) {
+      return html$.WebSocket._create_1(url, protocols);
+    }
+    return html$.WebSocket._create_2(url);
+  }
+  static _create_1(url, protocols) {
+    return new self.WebSocket(url, protocols);
+  }
+  static _create_2(url) {
+    return new self.WebSocket(url);
+  }
+  static get supported() {
+    return typeof window.WebSocket != "undefined";
+  }
+  get [dartx.binaryType]() {
+    return this.binaryType;
+  }
+  set [dartx.binaryType](value) {
+    this.binaryType = value;
+  }
+  get [dartx.bufferedAmount]() {
+    return this.bufferedAmount;
+  }
+  get [dartx.extensions]() {
+    return this.extensions;
+  }
+  get [dartx.protocol]() {
+    return this.protocol;
+  }
+  get [dartx.readyState]() {
+    return this.readyState;
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.send](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendBlob](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendByteBuffer](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendString](...args) {
+    return this.send.apply(this, args);
+  }
+  [dartx.sendTypedData](...args) {
+    return this.send.apply(this, args);
+  }
+  get [dartx.onClose]() {
+    return html$.WebSocket.closeEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.WebSocket.errorEvent.forTarget(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.WebSocket.messageEvent.forTarget(this);
+  }
+  get [dartx.onOpen]() {
+    return html$.WebSocket.openEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.WebSocket, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.WebSocket, []),
+    new: dart.definiteFunctionType(html$.WebSocket, [core.String], [core.Object])
+  }),
+  fields: () => ({
+    [dartx.binaryType]: core.String,
+    [dartx.bufferedAmount]: core.int,
+    [dartx.extensions]: core.String,
+    [dartx.protocol]: core.String,
+    [dartx.readyState]: core.int,
+    [dartx.url]: core.String
+  }),
+  getters: () => ({
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.CloseEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  methods: () => ({
+    [dartx.close]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
+    [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html$.Blob]),
+    [dartx.sendByteBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
+    [dartx.sendString]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.sendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData])
+  }),
+  sfields: () => ({
+    closeEvent: EventStreamProviderOfCloseEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent(),
+    openEvent: EventStreamProviderOfEvent(),
+    CLOSED: core.int,
+    CLOSING: core.int,
+    CONNECTING: core.int,
+    OPEN: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.WebSocket, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.WebSocket, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+html$.WebSocket.CLOSED = 3;
+html$.WebSocket.CLOSING = 2;
+html$.WebSocket.CONNECTING = 0;
+html$.WebSocket.OPEN = 1;
+dart.defineLazy(html$.WebSocket, {
+  get closeEvent() {
+    return dart.const(new (EventStreamProviderOfCloseEvent())('close'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  },
+  get openEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('open'));
+  }
+});
+dart.registerExtension(dart.global.WebSocket, html$.WebSocket);
+const _deltaX = Symbol('_deltaX');
+const _deltaY = Symbol('_deltaY');
+const _wheelDelta = Symbol('_wheelDelta');
+const _wheelDeltaX = Symbol('_wheelDeltaX');
+const _hasInitMouseScrollEvent = Symbol('_hasInitMouseScrollEvent');
+const _initMouseScrollEvent = Symbol('_initMouseScrollEvent');
+const _hasInitWheelEvent = Symbol('_hasInitWheelEvent');
+const _initWheelEvent = Symbol('_initWheelEvent');
+dart.defineExtensionNames([
+  'deltaY',
+  'deltaX',
+  'deltaMode',
+  'deltaZ'
+]);
+html$.WheelEvent = class WheelEvent extends html$.MouseEvent {
+  static new(type, opts) {
+    let view = opts && 'view' in opts ? opts.view : null;
+    let deltaX = opts && 'deltaX' in opts ? opts.deltaX : 0;
+    let deltaY = opts && 'deltaY' in opts ? opts.deltaY : 0;
+    let deltaZ = opts && 'deltaZ' in opts ? opts.deltaZ : 0;
+    let deltaMode = opts && 'deltaMode' in opts ? opts.deltaMode : 0;
+    let detail = opts && 'detail' in opts ? opts.detail : 0;
+    let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
+    let screenY = opts && 'screenY' in opts ? opts.screenY : 0;
+    let clientX = opts && 'clientX' in opts ? opts.clientX : 0;
+    let clientY = opts && 'clientY' in opts ? opts.clientY : 0;
+    let button = opts && 'button' in opts ? opts.button : 0;
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
+    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
+    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
+    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
+    let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
+    let options = dart.map({view: view, deltaMode: deltaMode, deltaX: deltaX, deltaY: deltaY, deltaZ: deltaZ, detail: detail, screenX: screenX, screenY: screenY, clientX: clientX, clientY: clientY, button: button, bubbles: canBubble, cancelable: cancelable, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey, metaKey: metaKey, relatedTarget: relatedTarget}, core.String, core.Object);
+    if (view == null) {
+      view = html$.window;
+    }
+    return new self.WheelEvent(type, html_common.convertDartToNative_Dictionary(options));
+  }
+  static _(type, eventInitDict) {
+    if (eventInitDict === void 0) eventInitDict = null;
+    if (eventInitDict != null) {
+      let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
+      return html$.WheelEvent._create_1(type, eventInitDict_1);
+    }
+    return html$.WheelEvent._create_2(type);
+  }
+  static _create_1(type, eventInitDict) {
+    return new self.WheelEvent(type, eventInitDict);
+  }
+  static _create_2(type) {
+    return new self.WheelEvent(type);
+  }
+  get [_deltaX]() {
+    return this.deltaX;
+  }
+  get [_deltaY]() {
+    return this.deltaY;
+  }
+  get [dartx.deltaZ]() {
+    return this.deltaZ;
+  }
+  get [dartx.deltaY]() {
+    if (this.deltaY !== undefined) {
+      return this[_deltaY];
+    }
+    dart.throw(new core.UnsupportedError('deltaY is not supported'));
+  }
+  get [dartx.deltaX]() {
+    if (this.deltaX !== undefined) {
+      return this[_deltaX];
+    }
+    dart.throw(new core.UnsupportedError('deltaX is not supported'));
+  }
+  get [dartx.deltaMode]() {
+    if (!!this.deltaMode) {
+      return this.deltaMode;
+    }
+    return 0;
+  }
+  get [_wheelDelta]() {
+    return this.wheelDelta;
+  }
+  get [_wheelDeltaX]() {
+    return this.wheelDeltaX;
+  }
+  get [_detail]() {
+    return this.detail;
+  }
+  get [_hasInitMouseScrollEvent]() {
+    return !!this.initMouseScrollEvent;
+  }
+  [_initMouseScrollEvent](...args) {
+    return this.initMouseScrollEvent.apply(this, args);
+  }
+  get [_hasInitWheelEvent]() {
+    return !!this.initWheelEvent;
+  }
+  [_initWheelEvent](...args) {
+    return this.initWheelEvent.apply(this, args);
+  }
+};
+dart.setSignature(html$.WheelEvent, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.WheelEvent, [core.String], {view: html$.Window, deltaX: core.num, deltaY: core.num, deltaZ: core.num, deltaMode: core.int, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html$.EventTarget}),
+    _: dart.definiteFunctionType(html$.WheelEvent, [core.String], [core.Map])
+  }),
+  fields: () => ({
+    [_deltaX]: core.double,
+    [_deltaY]: core.double,
+    [dartx.deltaZ]: core.double
+  }),
+  getters: () => ({
+    [dartx.deltaY]: dart.definiteFunctionType(core.num, []),
+    [dartx.deltaX]: dart.definiteFunctionType(core.num, []),
+    [dartx.deltaMode]: dart.definiteFunctionType(core.int, []),
+    [_wheelDelta]: dart.definiteFunctionType(core.num, []),
+    [_wheelDeltaX]: dart.definiteFunctionType(core.num, []),
+    [_detail]: dart.definiteFunctionType(core.num, []),
+    [_hasInitMouseScrollEvent]: dart.definiteFunctionType(core.bool, []),
+    [_hasInitWheelEvent]: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    [_initMouseScrollEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget, core.int]),
+    [_initWheelEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.int, html$.EventTarget, core.String, core.int, core.int, core.int, core.int])
+  }),
+  sfields: () => ({
+    DOM_DELTA_LINE: core.int,
+    DOM_DELTA_PAGE: core.int,
+    DOM_DELTA_PIXEL: core.int
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$.WheelEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.WheelEvent, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+html$.WheelEvent.DOM_DELTA_LINE = 1;
+html$.WheelEvent.DOM_DELTA_PAGE = 2;
+html$.WheelEvent.DOM_DELTA_PIXEL = 0;
+dart.registerExtension(dart.global.WheelEvent, html$.WheelEvent);
+const _open2 = Symbol('_open2');
+const _open3 = Symbol('_open3');
+const _location = Symbol('_location');
+const _ensureRequestAnimationFrame = Symbol('_ensureRequestAnimationFrame');
+const _requestAnimationFrame = Symbol('_requestAnimationFrame');
+const _cancelAnimationFrame = Symbol('_cancelAnimationFrame');
+const _requestFileSystem = Symbol('_requestFileSystem');
+const _get_opener = Symbol('_get_opener');
+const _pageXOffset = Symbol('_pageXOffset');
+const _pageYOffset = Symbol('_pageYOffset');
+const _get_parent = Symbol('_get_parent');
+const _get_self = Symbol('_get_self');
+const _get_top = Symbol('_get_top');
+const __getter___1 = Symbol('__getter___1');
+const __getter___2 = Symbol('__getter___2');
+const _scroll_4 = Symbol('_scroll_4');
+const _scroll_5 = Symbol('_scroll_5');
+const _scrollBy_4 = Symbol('_scrollBy_4');
+const _scrollBy_5 = Symbol('_scrollBy_5');
+const _scrollTo_4 = Symbol('_scrollTo_4');
+const _scrollTo_5 = Symbol('_scrollTo_5');
+const __requestFileSystem = Symbol('__requestFileSystem');
+const _resolveLocalFileSystemUrl = Symbol('_resolveLocalFileSystemUrl');
+dart.defineExtensionNames([
+  'animationFrame',
+  'document',
+  'open',
+  'location',
+  'location',
+  'requestAnimationFrame',
+  'cancelAnimationFrame',
+  'indexedDB',
+  'console',
+  'requestFileSystem',
+  'opener',
+  'opener',
+  'parent',
+  'self',
+  'top',
+  'window',
+  'alert',
+  'close',
+  'confirm',
+  'fetch',
+  'find',
+  'getMatchedCssRules',
+  'getSelection',
+  'matchMedia',
+  'moveBy',
+  'openDatabase',
+  'postMessage',
+  'print',
+  'resizeBy',
+  'resizeTo',
+  'scroll',
+  'scrollBy',
+  'scrollTo',
+  'stop',
+  'resolveLocalFileSystemUrl',
+  'atob',
+  'btoa',
+  'onContentLoaded',
+  'onAbort',
+  'onBlur',
+  'onCanPlay',
+  'onCanPlayThrough',
+  'onChange',
+  'onClick',
+  'onContextMenu',
+  'onDoubleClick',
+  'onDeviceMotion',
+  'onDeviceOrientation',
+  'onDrag',
+  'onDragEnd',
+  'onDragEnter',
+  'onDragLeave',
+  'onDragOver',
+  'onDragStart',
+  'onDrop',
+  'onDurationChange',
+  'onEmptied',
+  'onEnded',
+  'onError',
+  'onFocus',
+  'onHashChange',
+  'onInput',
+  'onInvalid',
+  'onKeyDown',
+  'onKeyPress',
+  'onKeyUp',
+  'onLoad',
+  'onLoadedData',
+  'onLoadedMetadata',
+  'onLoadStart',
+  'onMessage',
+  'onMouseDown',
+  'onMouseEnter',
+  'onMouseLeave',
+  'onMouseMove',
+  'onMouseOut',
+  'onMouseOver',
+  'onMouseUp',
+  'onMouseWheel',
+  'onOffline',
+  'onOnline',
+  'onPageHide',
+  'onPageShow',
+  'onPause',
+  'onPlay',
+  'onPlaying',
+  'onPopState',
+  'onProgress',
+  'onRateChange',
+  'onReset',
+  'onResize',
+  'onScroll',
+  'onSearch',
+  'onSeeked',
+  'onSeeking',
+  'onSelect',
+  'onStalled',
+  'onStorage',
+  'onSubmit',
+  'onSuspend',
+  'onTimeUpdate',
+  'onTouchCancel',
+  'onTouchEnd',
+  'onTouchMove',
+  'onTouchStart',
+  'onTransitionEnd',
+  'onUnload',
+  'onVolumeChange',
+  'onWaiting',
+  'onAnimationEnd',
+  'onAnimationIteration',
+  'onAnimationStart',
+  'onBeforeUnload',
+  'moveTo',
+  'pageXOffset',
+  'pageYOffset',
+  'scrollX',
+  'scrollY',
+  'applicationCache',
+  'caches',
+  'closed',
+  'crypto',
+  'defaultStatus',
+  'defaultstatus',
+  'devicePixelRatio',
+  'history',
+  'innerHeight',
+  'innerWidth',
+  'localStorage',
+  'locationbar',
+  'menubar',
+  'name',
+  'navigator',
+  'offscreenBuffering',
+  'orientation',
+  'outerHeight',
+  'outerWidth',
+  'performance',
+  'screen',
+  'screenLeft',
+  'screenTop',
+  'screenX',
+  'screenY',
+  'scrollbars',
+  'sessionStorage',
+  'speechSynthesis',
+  'status',
+  'statusbar',
+  'styleMedia',
+  'toolbar'
+]);
+html$.Window = class Window extends html$.EventTarget {
+  get [dartx.animationFrame]() {
+    let completer = CompleterOfnum().sync();
+    this[dartx.requestAnimationFrame](dart.fn(time => {
+      completer.complete(time);
+    }, numToNull()));
+    return completer.future;
+  }
+  get [dartx.document]() {
+    return this.document;
+  }
+  [_open2](url, name) {
+    return this.open(url, name);
+  }
+  [_open3](url, name, options) {
+    return this.open(url, name, options);
+  }
+  [dartx.open](url, name, options) {
+    if (options === void 0) options = null;
+    if (options == null) {
+      return html$._DOMWindowCrossFrame._createSafe(this[_open2](url, name));
+    } else {
+      return html$._DOMWindowCrossFrame._createSafe(this[_open3](url, name, options));
+    }
+  }
+  get [dartx.location]() {
+    return html$.Location._check(this[_location]);
+  }
+  set [dartx.location](value) {
+    this[_location] = value;
+  }
+  get [_location]() {
+    return this.location;
+  }
+  set [_location](value) {
+    this.location = value;
+  }
+  [dartx.requestAnimationFrame](callback) {
+    this[_ensureRequestAnimationFrame]();
+    return this[_requestAnimationFrame](html$._wrapZone(core.num, dart.dynamic)(callback));
+  }
+  [dartx.cancelAnimationFrame](id) {
+    this[_ensureRequestAnimationFrame]();
+    this[_cancelAnimationFrame](id);
+  }
+  [_requestAnimationFrame](...args) {
+    return this.requestAnimationFrame.apply(this, args);
+  }
+  [_cancelAnimationFrame](...args) {
+    return this.cancelAnimationFrame.apply(this, args);
+  }
+  [_ensureRequestAnimationFrame]() {
+    if (!!(this.requestAnimationFrame && this.cancelAnimationFrame)) return;
+    (function($this) {
+      var vendors = ['ms', 'moz', 'webkit', 'o'];
+      for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) {
+        $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame'];
+        $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFrame'] || $this[vendors[i] + 'CancelRequestAnimationFrame'];
+      }
+      if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return;
+      $this.requestAnimationFrame = function(callback) {
+        return window.setTimeout(function() {
+          callback(Date.now());
+        }, 16);
+      };
+      $this.cancelAnimationFrame = function(id) {
+        clearTimeout(id);
+      };
+    })(this);
+  }
+  get [dartx.indexedDB]() {
+    return this.indexedDB || this.webkitIndexedDB || this.mozIndexedDB;
+  }
+  get [dartx.console]() {
+    return html$.Console._safeConsole;
+  }
+  [dartx.requestFileSystem](size, opts) {
+    let persistent = opts && 'persistent' in opts ? opts.persistent : false;
+    return this[_requestFileSystem](dart.test(persistent) ? 1 : 0, size);
+  }
+  static get supportsPointConversions() {
+    return html$.DomPoint.supported;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.applicationCache]() {
+    return this.applicationCache;
+  }
+  get [dartx.caches]() {
+    return this.caches;
+  }
+  get [dartx.closed]() {
+    return this.closed;
+  }
+  get [dartx.crypto]() {
+    return this.crypto;
+  }
+  get [dartx.defaultStatus]() {
+    return this.defaultStatus;
+  }
+  set [dartx.defaultStatus](value) {
+    this.defaultStatus = value;
+  }
+  get [dartx.defaultstatus]() {
+    return this.defaultstatus;
+  }
+  set [dartx.defaultstatus](value) {
+    this.defaultstatus = value;
+  }
+  get [dartx.devicePixelRatio]() {
+    return this.devicePixelRatio;
+  }
+  get [dartx.history]() {
+    return this.history;
+  }
+  get [dartx.innerHeight]() {
+    return this.innerHeight;
+  }
+  get [dartx.innerWidth]() {
+    return this.innerWidth;
+  }
+  get [dartx.localStorage]() {
+    return this.localStorage;
+  }
+  get [dartx.locationbar]() {
+    return this.locationbar;
+  }
+  get [dartx.menubar]() {
+    return this.menubar;
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  set [dartx.name](value) {
+    this.name = value;
+  }
+  get [dartx.navigator]() {
+    return this.navigator;
+  }
+  get [dartx.offscreenBuffering]() {
+    return this.offscreenBuffering;
+  }
+  get [dartx.opener]() {
+    return html$._convertNativeToDart_Window(this[_get_opener]);
+  }
+  get [_get_opener]() {
+    return this.opener;
+  }
+  set [dartx.opener](value) {
+    this.opener = value;
+  }
+  get [dartx.orientation]() {
+    return this.orientation;
+  }
+  get [dartx.outerHeight]() {
+    return this.outerHeight;
+  }
+  get [dartx.outerWidth]() {
+    return this.outerWidth;
+  }
+  get [_pageXOffset]() {
+    return this.pageXOffset;
+  }
+  get [_pageYOffset]() {
+    return this.pageYOffset;
+  }
+  get [dartx.parent]() {
+    return html$._convertNativeToDart_Window(this[_get_parent]);
+  }
+  get [_get_parent]() {
+    return this.parent;
+  }
+  get [dartx.performance]() {
+    return this.performance;
+  }
+  get [dartx.screen]() {
+    return this.screen;
+  }
+  get [dartx.screenLeft]() {
+    return this.screenLeft;
+  }
+  get [dartx.screenTop]() {
+    return this.screenTop;
+  }
+  get [dartx.screenX]() {
+    return this.screenX;
+  }
+  get [dartx.screenY]() {
+    return this.screenY;
+  }
+  get [dartx.scrollbars]() {
+    return this.scrollbars;
+  }
+  get [dartx.self]() {
+    return html$._convertNativeToDart_Window(this[_get_self]);
+  }
+  get [_get_self]() {
+    return this.self;
+  }
+  get [dartx.sessionStorage]() {
+    return this.sessionStorage;
+  }
+  get [dartx.speechSynthesis]() {
+    return this.speechSynthesis;
+  }
+  get [dartx.status]() {
+    return this.status;
+  }
+  set [dartx.status](value) {
+    this.status = value;
+  }
+  get [dartx.statusbar]() {
+    return this.statusbar;
+  }
+  get [dartx.styleMedia]() {
+    return this.styleMedia;
+  }
+  get [dartx.toolbar]() {
+    return this.toolbar;
+  }
+  get [dartx.top]() {
+    return html$._convertNativeToDart_Window(this[_get_top]);
+  }
+  get [_get_top]() {
+    return this.top;
+  }
+  get [dartx.window]() {
+    return html$._convertNativeToDart_Window(this[_get_window]);
+  }
+  get [_get_window]() {
+    return this.window;
+  }
+  [__getter__](index_OR_name) {
+    if (typeof index_OR_name == 'number') {
+      return html$._convertNativeToDart_Window(this[__getter___1](index_OR_name));
+    }
+    if (typeof index_OR_name == 'string') {
+      return html$._convertNativeToDart_Window(this[__getter___2](index_OR_name));
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [__getter___1](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [__getter___2](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.alert](...args) {
+    return this.alert.apply(this, args);
+  }
+  [dartx.close](...args) {
+    return this.close.apply(this, args);
+  }
+  [dartx.confirm](...args) {
+    return this.confirm.apply(this, args);
+  }
+  [dartx.fetch](input, init) {
+    if (init === void 0) init = null;
+    if (init != null) {
+      let init_1 = html_common.convertDartToNative_Dictionary(init);
+      return this[_fetch_1](input, init_1);
+    }
+    return this[_fetch_2](input);
+  }
+  [_fetch_1](...args) {
+    return this.fetch.apply(this, args);
+  }
+  [_fetch_2](...args) {
+    return this.fetch.apply(this, args);
+  }
+  [dartx.find](...args) {
+    return this.find.apply(this, args);
+  }
+  [_getComputedStyle](...args) {
+    return this.getComputedStyle.apply(this, args);
+  }
+  [dartx.getMatchedCssRules](...args) {
+    return this.getMatchedCSSRules.apply(this, args);
+  }
+  [dartx.getSelection](...args) {
+    return this.getSelection.apply(this, args);
+  }
+  [dartx.matchMedia](...args) {
+    return this.matchMedia.apply(this, args);
+  }
+  [dartx.moveBy](...args) {
+    return this.moveBy.apply(this, args);
+  }
+  [_moveTo](...args) {
+    return this.moveTo.apply(this, args);
+  }
+  [dartx.openDatabase](...args) {
+    return this.openDatabase.apply(this, args);
+  }
+  [dartx.postMessage](message, targetOrigin, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, targetOrigin, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1, targetOrigin);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [dartx.print](...args) {
+    return this.print.apply(this, args);
+  }
+  [dartx.resizeBy](...args) {
+    return this.resizeBy.apply(this, args);
+  }
+  [dartx.resizeTo](...args) {
+    return this.resizeTo.apply(this, args);
+  }
+  [dartx.scroll](options_OR_x, y, scrollOptions) {
+    if (options_OR_x === void 0) options_OR_x = null;
+    if (y === void 0) y = null;
+    if (scrollOptions === void 0) scrollOptions = null;
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      this[_scroll_1]();
+      return;
+    }
+    if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
+      this[_scroll_2](options_1);
+      return;
+    }
+    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
+      this[_scroll_3](options_OR_x, y);
+      return;
+    }
+    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
+      this[_scroll_4](options_OR_x, y);
+      return;
+    }
+    if (scrollOptions != null && typeof y == 'number' && typeof options_OR_x == 'number') {
+      let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
+      this[_scroll_5](options_OR_x, y, scrollOptions_1);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_scroll_1](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [_scroll_2](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [_scroll_3](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [_scroll_4](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [_scroll_5](...args) {
+    return this.scroll.apply(this, args);
+  }
+  [dartx.scrollBy](options_OR_x, y, scrollOptions) {
+    if (options_OR_x === void 0) options_OR_x = null;
+    if (y === void 0) y = null;
+    if (scrollOptions === void 0) scrollOptions = null;
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      this[_scrollBy_1]();
+      return;
+    }
+    if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
+      this[_scrollBy_2](options_1);
+      return;
+    }
+    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
+      this[_scrollBy_3](options_OR_x, y);
+      return;
+    }
+    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
+      this[_scrollBy_4](options_OR_x, y);
+      return;
+    }
+    if (scrollOptions != null && typeof y == 'number' && typeof options_OR_x == 'number') {
+      let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
+      this[_scrollBy_5](options_OR_x, y, scrollOptions_1);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_scrollBy_1](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollBy_2](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollBy_3](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollBy_4](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [_scrollBy_5](...args) {
+    return this.scrollBy.apply(this, args);
+  }
+  [dartx.scrollTo](options_OR_x, y, scrollOptions) {
+    if (options_OR_x === void 0) options_OR_x = null;
+    if (y === void 0) y = null;
+    if (scrollOptions === void 0) scrollOptions = null;
+    if (options_OR_x == null && y == null && scrollOptions == null) {
+      this[_scrollTo_1]();
+      return;
+    }
+    if (core.Map.is(options_OR_x) && y == null && scrollOptions == null) {
+      let options_1 = html_common.convertDartToNative_Dictionary(options_OR_x);
+      this[_scrollTo_2](options_1);
+      return;
+    }
+    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
+      this[_scrollTo_3](options_OR_x, y);
+      return;
+    }
+    if (typeof y == 'number' && typeof options_OR_x == 'number' && scrollOptions == null) {
+      this[_scrollTo_4](options_OR_x, y);
+      return;
+    }
+    if (scrollOptions != null && typeof y == 'number' && typeof options_OR_x == 'number') {
+      let scrollOptions_1 = html_common.convertDartToNative_Dictionary(scrollOptions);
+      this[_scrollTo_5](options_OR_x, y, scrollOptions_1);
+      return;
+    }
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_scrollTo_1](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [_scrollTo_2](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [_scrollTo_3](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [_scrollTo_4](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [_scrollTo_5](...args) {
+    return this.scrollTo.apply(this, args);
+  }
+  [dartx.stop](...args) {
+    return this.stop.apply(this, args);
+  }
+  [__requestFileSystem](...args) {
+    return this.webkitRequestFileSystem.apply(this, args);
+  }
+  [_requestFileSystem](type, size) {
+    let completer = CompleterOfFileSystem().new();
+    this[__requestFileSystem](type, size, dart.fn(value => {
+      completer.complete(value);
+    }, FileSystemToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [_resolveLocalFileSystemUrl](...args) {
+    return this.webkitResolveLocalFileSystemURL.apply(this, args);
+  }
+  [dartx.resolveLocalFileSystemUrl](url) {
+    let completer = CompleterOfEntry().new();
+    this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
+      completer.complete(value);
+    }, EntryToNull()), dart.fn(error => {
+      completer.completeError(error);
+    }, FileErrorToNull()));
+    return completer.future;
+  }
+  [dartx.atob](...args) {
+    return this.atob.apply(this, args);
+  }
+  [dartx.btoa](...args) {
+    return this.btoa.apply(this, args);
+  }
+  [_setInterval_String](...args) {
+    return this.setInterval.apply(this, args);
+  }
+  [_setTimeout_String](...args) {
+    return this.setTimeout.apply(this, args);
+  }
+  [_clearInterval](...args) {
+    return this.clearInterval.apply(this, args);
+  }
+  [_clearTimeout](...args) {
+    return this.clearTimeout.apply(this, args);
+  }
+  [_setInterval](...args) {
+    return this.setInterval.apply(this, args);
+  }
+  [_setTimeout](...args) {
+    return this.setTimeout.apply(this, args);
+  }
+  get [dartx.onContentLoaded]() {
+    return html$.Window.contentLoadedEvent.forTarget(this);
+  }
+  get [dartx.onAbort]() {
+    return html$.Element.abortEvent.forTarget(this);
+  }
+  get [dartx.onBlur]() {
+    return html$.Element.blurEvent.forTarget(this);
+  }
+  get [dartx.onCanPlay]() {
+    return html$.Element.canPlayEvent.forTarget(this);
+  }
+  get [dartx.onCanPlayThrough]() {
+    return html$.Element.canPlayThroughEvent.forTarget(this);
+  }
+  get [dartx.onChange]() {
+    return html$.Element.changeEvent.forTarget(this);
+  }
+  get [dartx.onClick]() {
+    return html$.Element.clickEvent.forTarget(this);
+  }
+  get [dartx.onContextMenu]() {
+    return html$.Element.contextMenuEvent.forTarget(this);
+  }
+  get [dartx.onDoubleClick]() {
+    return html$.Element.doubleClickEvent.forTarget(this);
+  }
+  get [dartx.onDeviceMotion]() {
+    return html$.Window.deviceMotionEvent.forTarget(this);
+  }
+  get [dartx.onDeviceOrientation]() {
+    return html$.Window.deviceOrientationEvent.forTarget(this);
+  }
+  get [dartx.onDrag]() {
+    return html$.Element.dragEvent.forTarget(this);
+  }
+  get [dartx.onDragEnd]() {
+    return html$.Element.dragEndEvent.forTarget(this);
+  }
+  get [dartx.onDragEnter]() {
+    return html$.Element.dragEnterEvent.forTarget(this);
+  }
+  get [dartx.onDragLeave]() {
+    return html$.Element.dragLeaveEvent.forTarget(this);
+  }
+  get [dartx.onDragOver]() {
+    return html$.Element.dragOverEvent.forTarget(this);
+  }
+  get [dartx.onDragStart]() {
+    return html$.Element.dragStartEvent.forTarget(this);
+  }
+  get [dartx.onDrop]() {
+    return html$.Element.dropEvent.forTarget(this);
+  }
+  get [dartx.onDurationChange]() {
+    return html$.Element.durationChangeEvent.forTarget(this);
+  }
+  get [dartx.onEmptied]() {
+    return html$.Element.emptiedEvent.forTarget(this);
+  }
+  get [dartx.onEnded]() {
+    return html$.Element.endedEvent.forTarget(this);
+  }
+  get [dartx.onError]() {
+    return html$.Element.errorEvent.forTarget(this);
+  }
+  get [dartx.onFocus]() {
+    return html$.Element.focusEvent.forTarget(this);
+  }
+  get [dartx.onHashChange]() {
+    return html$.Window.hashChangeEvent.forTarget(this);
+  }
+  get [dartx.onInput]() {
+    return html$.Element.inputEvent.forTarget(this);
+  }
+  get [dartx.onInvalid]() {
+    return html$.Element.invalidEvent.forTarget(this);
+  }
+  get [dartx.onKeyDown]() {
+    return html$.Element.keyDownEvent.forTarget(this);
+  }
+  get [dartx.onKeyPress]() {
+    return html$.Element.keyPressEvent.forTarget(this);
+  }
+  get [dartx.onKeyUp]() {
+    return html$.Element.keyUpEvent.forTarget(this);
+  }
+  get [dartx.onLoad]() {
+    return html$.Element.loadEvent.forTarget(this);
+  }
+  get [dartx.onLoadedData]() {
+    return html$.Element.loadedDataEvent.forTarget(this);
+  }
+  get [dartx.onLoadedMetadata]() {
+    return html$.Element.loadedMetadataEvent.forTarget(this);
+  }
+  get [dartx.onLoadStart]() {
+    return html$.Window.loadStartEvent.forTarget(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.Window.messageEvent.forTarget(this);
+  }
+  get [dartx.onMouseDown]() {
+    return html$.Element.mouseDownEvent.forTarget(this);
+  }
+  get [dartx.onMouseEnter]() {
+    return html$.Element.mouseEnterEvent.forTarget(this);
+  }
+  get [dartx.onMouseLeave]() {
+    return html$.Element.mouseLeaveEvent.forTarget(this);
+  }
+  get [dartx.onMouseMove]() {
+    return html$.Element.mouseMoveEvent.forTarget(this);
+  }
+  get [dartx.onMouseOut]() {
+    return html$.Element.mouseOutEvent.forTarget(this);
+  }
+  get [dartx.onMouseOver]() {
+    return html$.Element.mouseOverEvent.forTarget(this);
+  }
+  get [dartx.onMouseUp]() {
+    return html$.Element.mouseUpEvent.forTarget(this);
+  }
+  get [dartx.onMouseWheel]() {
+    return html$.Element.mouseWheelEvent.forTarget(this);
+  }
+  get [dartx.onOffline]() {
+    return html$.Window.offlineEvent.forTarget(this);
+  }
+  get [dartx.onOnline]() {
+    return html$.Window.onlineEvent.forTarget(this);
+  }
+  get [dartx.onPageHide]() {
+    return html$.Window.pageHideEvent.forTarget(this);
+  }
+  get [dartx.onPageShow]() {
+    return html$.Window.pageShowEvent.forTarget(this);
+  }
+  get [dartx.onPause]() {
+    return html$.Element.pauseEvent.forTarget(this);
+  }
+  get [dartx.onPlay]() {
+    return html$.Element.playEvent.forTarget(this);
+  }
+  get [dartx.onPlaying]() {
+    return html$.Element.playingEvent.forTarget(this);
+  }
+  get [dartx.onPopState]() {
+    return html$.Window.popStateEvent.forTarget(this);
+  }
+  get [dartx.onProgress]() {
+    return html$.Window.progressEvent.forTarget(this);
+  }
+  get [dartx.onRateChange]() {
+    return html$.Element.rateChangeEvent.forTarget(this);
+  }
+  get [dartx.onReset]() {
+    return html$.Element.resetEvent.forTarget(this);
+  }
+  get [dartx.onResize]() {
+    return html$.Element.resizeEvent.forTarget(this);
+  }
+  get [dartx.onScroll]() {
+    return html$.Element.scrollEvent.forTarget(this);
+  }
+  get [dartx.onSearch]() {
+    return html$.Element.searchEvent.forTarget(this);
+  }
+  get [dartx.onSeeked]() {
+    return html$.Element.seekedEvent.forTarget(this);
+  }
+  get [dartx.onSeeking]() {
+    return html$.Element.seekingEvent.forTarget(this);
+  }
+  get [dartx.onSelect]() {
+    return html$.Element.selectEvent.forTarget(this);
+  }
+  get [dartx.onStalled]() {
+    return html$.Element.stalledEvent.forTarget(this);
+  }
+  get [dartx.onStorage]() {
+    return html$.Window.storageEvent.forTarget(this);
+  }
+  get [dartx.onSubmit]() {
+    return html$.Element.submitEvent.forTarget(this);
+  }
+  get [dartx.onSuspend]() {
+    return html$.Element.suspendEvent.forTarget(this);
+  }
+  get [dartx.onTimeUpdate]() {
+    return html$.Element.timeUpdateEvent.forTarget(this);
+  }
+  get [dartx.onTouchCancel]() {
+    return html$.Element.touchCancelEvent.forTarget(this);
+  }
+  get [dartx.onTouchEnd]() {
+    return html$.Element.touchEndEvent.forTarget(this);
+  }
+  get [dartx.onTouchMove]() {
+    return html$.Element.touchMoveEvent.forTarget(this);
+  }
+  get [dartx.onTouchStart]() {
+    return html$.Element.touchStartEvent.forTarget(this);
+  }
+  get [dartx.onTransitionEnd]() {
+    return html$.Element.transitionEndEvent.forTarget(this);
+  }
+  get [dartx.onUnload]() {
+    return html$.Window.unloadEvent.forTarget(this);
+  }
+  get [dartx.onVolumeChange]() {
+    return html$.Element.volumeChangeEvent.forTarget(this);
+  }
+  get [dartx.onWaiting]() {
+    return html$.Element.waitingEvent.forTarget(this);
+  }
+  get [dartx.onAnimationEnd]() {
+    return html$.Window.animationEndEvent.forTarget(this);
+  }
+  get [dartx.onAnimationIteration]() {
+    return html$.Window.animationIterationEvent.forTarget(this);
+  }
+  get [dartx.onAnimationStart]() {
+    return html$.Window.animationStartEvent.forTarget(this);
+  }
+  get [dartx.onBeforeUnload]() {
+    return html$.Window.beforeUnloadEvent.forTarget(this);
+  }
+  [dartx.moveTo](p) {
+    this[_moveTo](dart.asInt(p.x), dart.asInt(p.y));
+  }
+  get [dartx.pageXOffset]() {
+    return this.pageXOffset[dartx.round]();
+  }
+  get [dartx.pageYOffset]() {
+    return this.pageYOffset[dartx.round]();
+  }
+  get [dartx.scrollX]() {
+    return "scrollX" in this ? this.scrollX[dartx.round]() : this[dartx.document][dartx.documentElement][dartx.scrollLeft];
+  }
+  get [dartx.scrollY]() {
+    return "scrollY" in this ? this.scrollY[dartx.round]() : this[dartx.document][dartx.documentElement][dartx.scrollTop];
+  }
+};
+html$.Window[dart.implements] = () => [html$.WindowEventHandlers, html$.WindowBase, html$.GlobalEventHandlers, html$._WindowTimers, html$.WindowBase64];
+dart.setSignature(html$.Window, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Window, [])}),
+  fields: () => ({
+    [dartx.applicationCache]: html$.ApplicationCache,
+    [dartx.caches]: html$.CacheStorage,
+    [dartx.closed]: core.bool,
+    [dartx.crypto]: html$.Crypto,
+    [dartx.defaultStatus]: core.String,
+    [dartx.defaultstatus]: core.String,
+    [dartx.devicePixelRatio]: core.double,
+    [dartx.history]: html$.History,
+    [dartx.innerHeight]: core.int,
+    [dartx.innerWidth]: core.int,
+    [dartx.localStorage]: html$.Storage,
+    [dartx.locationbar]: html$.BarProp,
+    [dartx.menubar]: html$.BarProp,
+    [dartx.name]: core.String,
+    [dartx.navigator]: html$.Navigator,
+    [dartx.offscreenBuffering]: core.bool,
+    [_get_opener]: dart.dynamic,
+    [dartx.orientation]: core.int,
+    [dartx.outerHeight]: core.int,
+    [dartx.outerWidth]: core.int,
+    [_pageXOffset]: core.double,
+    [_pageYOffset]: core.double,
+    [_get_parent]: dart.dynamic,
+    [dartx.performance]: html$.Performance,
+    [dartx.screen]: html$.Screen,
+    [dartx.screenLeft]: core.int,
+    [dartx.screenTop]: core.int,
+    [dartx.screenX]: core.int,
+    [dartx.screenY]: core.int,
+    [dartx.scrollbars]: html$.BarProp,
+    [_get_self]: dart.dynamic,
+    [dartx.sessionStorage]: html$.Storage,
+    [dartx.speechSynthesis]: html$.SpeechSynthesis,
+    [dartx.status]: core.String,
+    [dartx.statusbar]: html$.BarProp,
+    [dartx.styleMedia]: html$.StyleMedia,
+    [dartx.toolbar]: html$.BarProp,
+    [_get_top]: dart.dynamic,
+    [_get_window]: dart.dynamic
+  }),
+  getters: () => ({
+    [dartx.animationFrame]: dart.definiteFunctionType(async.Future$(core.num), []),
+    [dartx.document]: dart.definiteFunctionType(html$.Document, []),
+    [dartx.location]: dart.definiteFunctionType(html$.Location, []),
+    [_location]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.indexedDB]: dart.definiteFunctionType(indexed_db.IdbFactory, []),
+    [dartx.console]: dart.definiteFunctionType(html$.Console, []),
+    [dartx.opener]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.parent]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.self]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.top]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.window]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.onContentLoaded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onDeviceMotion]: dart.definiteFunctionType(async.Stream$(html$.DeviceMotionEvent), []),
+    [dartx.onDeviceOrientation]: dart.definiteFunctionType(async.Stream$(html$.DeviceOrientationEvent), []),
+    [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onHashChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
+    [dartx.onOffline]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onOnline]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPageHide]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPageShow]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPopState]: dart.definiteFunctionType(async.Stream$(html$.PopStateEvent), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStorage]: dart.definiteFunctionType(async.Stream$(html$.StorageEvent), []),
+    [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTransitionEnd]: dart.definiteFunctionType(async.Stream$(html$.TransitionEvent), []),
+    [dartx.onUnload]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onAnimationEnd]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
+    [dartx.onAnimationIteration]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
+    [dartx.onAnimationStart]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
+    [dartx.onBeforeUnload]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.pageXOffset]: dart.definiteFunctionType(core.int, []),
+    [dartx.pageYOffset]: dart.definiteFunctionType(core.int, []),
+    [dartx.scrollX]: dart.definiteFunctionType(core.int, []),
+    [dartx.scrollY]: dart.definiteFunctionType(core.int, [])
+  }),
+  setters: () => ({
+    [dartx.location]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_location]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.opener]: dart.definiteFunctionType(dart.void, [html$.Window])
+  }),
+  methods: () => ({
+    [_open2]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic, dart.dynamic]),
+    [_open3]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    [dartx.open]: dart.definiteFunctionType(html$.WindowBase, [core.String, core.String], [core.String]),
+    [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback]),
+    [dartx.cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
+    [_requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback]),
+    [_cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
+    [_ensureRequestAnimationFrame]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.requestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int], {persistent: core.bool}),
+    [__getter__]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic]),
+    [__getter___1]: dart.definiteFunctionType(dart.dynamic, [core.int]),
+    [__getter___2]: dart.definiteFunctionType(dart.dynamic, [core.String]),
+    [dartx.alert]: dart.definiteFunctionType(dart.void, [], [core.String]),
+    [dartx.close]: dart.definiteFunctionType(dart.void, []),
+    [dartx.confirm]: dart.definiteFunctionType(core.bool, [], [core.String]),
+    [dartx.fetch]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
+    [_fetch_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
+    [_fetch_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
+    [dartx.find]: dart.definiteFunctionType(core.bool, [core.String, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool]),
+    [_getComputedStyle]: dart.definiteFunctionType(html$.CssStyleDeclaration, [html$.Element, core.String]),
+    [dartx.getMatchedCssRules]: dart.definiteFunctionType(core.List$(html$.CssRule), [html$.Element, core.String]),
+    [dartx.getSelection]: dart.definiteFunctionType(html$.Selection, []),
+    [dartx.matchMedia]: dart.definiteFunctionType(html$.MediaQueryList, [core.String]),
+    [dartx.moveBy]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [_moveTo]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.openDatabase]: dart.definiteFunctionType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [html$.DatabaseCallback]),
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    [dartx.print]: dart.definiteFunctionType(dart.void, []),
+    [dartx.resizeBy]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.resizeTo]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.scroll]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
+    [_scroll_1]: dart.definiteFunctionType(dart.void, []),
+    [_scroll_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_scroll_3]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [_scroll_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [_scroll_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
+    [dartx.scrollBy]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
+    [_scrollBy_1]: dart.definiteFunctionType(dart.void, []),
+    [_scrollBy_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_scrollBy_3]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [_scrollBy_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [_scrollBy_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
+    [dartx.scrollTo]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, dart.dynamic, core.Map]),
+    [_scrollTo_1]: dart.definiteFunctionType(dart.void, []),
+    [_scrollTo_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [_scrollTo_3]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [_scrollTo_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [_scrollTo_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
+    [dartx.stop]: dart.definiteFunctionType(dart.void, []),
+    [__requestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int, html$._FileSystemCallback], [html$._ErrorCallback]),
+    [_requestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int, core.int]),
+    [_resolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html$._EntryCallback], [html$._ErrorCallback]),
+    [dartx.resolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
+    [dartx.atob]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.btoa]: dart.definiteFunctionType(core.String, [core.String]),
+    [_setInterval_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
+    [_setTimeout_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
+    [_clearInterval]: dart.definiteFunctionType(dart.void, [], [core.int]),
+    [_clearTimeout]: dart.definiteFunctionType(dart.void, [], [core.int]),
+    [_setInterval]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+    [_setTimeout]: dart.definiteFunctionType(core.int, [core.Object], [core.int]),
+    [dartx.moveTo]: dart.definiteFunctionType(dart.void, [PointOfnum()])
+  }),
+  sfields: () => ({
+    contentLoadedEvent: EventStreamProviderOfEvent(),
+    deviceMotionEvent: EventStreamProviderOfDeviceMotionEvent(),
+    deviceOrientationEvent: EventStreamProviderOfDeviceOrientationEvent(),
+    hashChangeEvent: EventStreamProviderOfEvent(),
+    loadStartEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent(),
+    offlineEvent: EventStreamProviderOfEvent(),
+    onlineEvent: EventStreamProviderOfEvent(),
+    pageHideEvent: EventStreamProviderOfEvent(),
+    pageShowEvent: EventStreamProviderOfEvent(),
+    popStateEvent: EventStreamProviderOfPopStateEvent(),
+    progressEvent: EventStreamProviderOfEvent(),
+    storageEvent: EventStreamProviderOfStorageEvent(),
+    unloadEvent: EventStreamProviderOfEvent(),
+    animationEndEvent: EventStreamProviderOfAnimationEvent(),
+    animationIterationEvent: EventStreamProviderOfAnimationEvent(),
+    animationStartEvent: EventStreamProviderOfAnimationEvent(),
+    PERSISTENT: core.int,
+    TEMPORARY: core.int,
+    beforeUnloadEvent: EventStreamProviderOfBeforeUnloadEvent()
+  }),
+  sgetters: () => ({supportsPointConversions: dart.definiteFunctionType(core.bool, [])})
+});
+html$.Window.PERSISTENT = 1;
+html$.Window.TEMPORARY = 0;
+dart.defineLazy(html$.Window, {
+  get contentLoadedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('DOMContentLoaded'));
+  },
+  get deviceMotionEvent() {
+    return dart.const(new (EventStreamProviderOfDeviceMotionEvent())('devicemotion'));
+  },
+  get deviceOrientationEvent() {
+    return dart.const(new (EventStreamProviderOfDeviceOrientationEvent())('deviceorientation'));
+  },
+  get hashChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
+  },
+  get loadStartEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadstart'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  },
+  get offlineEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('offline'));
+  },
+  get onlineEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('online'));
+  },
+  get pageHideEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pagehide'));
+  },
+  get pageShowEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pageshow'));
+  },
+  get popStateEvent() {
+    return dart.const(new (EventStreamProviderOfPopStateEvent())('popstate'));
+  },
+  get progressEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('progress'));
+  },
+  get storageEvent() {
+    return dart.const(new (EventStreamProviderOfStorageEvent())('storage'));
+  },
+  get unloadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('unload'));
+  },
+  get animationEndEvent() {
+    return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationEnd'));
+  },
+  get animationIterationEvent() {
+    return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationIteration'));
+  },
+  get animationStartEvent() {
+    return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationStart'));
+  },
+  get beforeUnloadEvent() {
+    return dart.const(new html$._BeforeUnloadEventStreamProvider('beforeunload'));
+  }
+});
+dart.registerExtension(dart.global.Window, html$.Window);
+dart.registerExtension(dart.global.DOMWindow, html$.Window);
+const _returnValue = Symbol('_returnValue');
+html$._WrappedEvent = class _WrappedEvent extends core.Object {
+  new(wrapped) {
+    this.wrapped = wrapped;
+    this[_selector] = null;
+  }
+  get bubbles() {
+    return this.wrapped[dartx.bubbles];
+  }
+  get cancelable() {
+    return this.wrapped[dartx.cancelable];
+  }
+  get currentTarget() {
+    return this.wrapped[dartx.currentTarget];
+  }
+  get defaultPrevented() {
+    return this.wrapped[dartx.defaultPrevented];
+  }
+  get eventPhase() {
+    return this.wrapped[dartx.eventPhase];
+  }
+  get target() {
+    return this.wrapped[dartx.target];
+  }
+  get timeStamp() {
+    return this.wrapped[dartx.timeStamp];
+  }
+  get type() {
+    return this.wrapped[dartx.type];
+  }
+  [_initEvent](eventTypeArg, canBubbleArg, cancelableArg) {
+    dart.throw(new core.UnsupportedError('Cannot initialize this Event.'));
+  }
+  preventDefault() {
+    this.wrapped[dartx.preventDefault]();
+  }
+  stopImmediatePropagation() {
+    this.wrapped[dartx.stopImmediatePropagation]();
+  }
+  stopPropagation() {
+    this.wrapped[dartx.stopPropagation]();
+  }
+  get matchingTarget() {
+    if (this[_selector] == null) {
+      dart.throw(new core.UnsupportedError('Cannot call matchingTarget if this Event did' + ' not arise as a result of event delegation.'));
+    }
+    let currentTarget = html$.Element._check(this.currentTarget);
+    let target = html$.Element._check(this.target);
+    let matchedTarget = null;
+    do {
+      if (dart.test(target[dartx.matches](this[_selector]))) return target;
+      target = target[dartx.parent];
+    } while (target != null && !dart.equals(target, currentTarget[dartx.parent]));
+    dart.throw(new core.StateError('No selector matched for populating matchedTarget.'));
+  }
+  get path() {
+    return ListOfNode()._check(this.wrapped[dartx.path]);
+  }
+  get [_get_currentTarget]() {
+    return this.wrapped[_get_currentTarget];
+  }
+  get [_get_target]() {
+    return this.wrapped[_get_target];
+  }
+};
+html$._WrappedEvent[dart.implements] = () => [html$.Event];
+dart.setSignature(html$._WrappedEvent, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._WrappedEvent, [html$.Event])}),
+  fields: () => ({
+    wrapped: html$.Event,
+    [_selector]: core.String
+  }),
+  getters: () => ({
+    bubbles: dart.definiteFunctionType(core.bool, []),
+    cancelable: dart.definiteFunctionType(core.bool, []),
+    currentTarget: dart.definiteFunctionType(html$.EventTarget, []),
+    defaultPrevented: dart.definiteFunctionType(core.bool, []),
+    eventPhase: dart.definiteFunctionType(core.int, []),
+    target: dart.definiteFunctionType(html$.EventTarget, []),
+    timeStamp: dart.definiteFunctionType(core.int, []),
+    type: dart.definiteFunctionType(core.String, []),
+    matchingTarget: dart.definiteFunctionType(html$.Element, []),
+    path: dart.definiteFunctionType(core.List$(html$.Node), []),
+    [_get_currentTarget]: dart.definiteFunctionType(dart.dynamic, []),
+    [_get_target]: dart.definiteFunctionType(dart.dynamic, [])
+  }),
+  methods: () => ({
+    [_initEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool]),
+    preventDefault: dart.definiteFunctionType(dart.void, []),
+    stopImmediatePropagation: dart.definiteFunctionType(dart.void, []),
+    stopPropagation: dart.definiteFunctionType(dart.void, [])
+  })
+});
+html$._BeforeUnloadEvent = class _BeforeUnloadEvent extends html$._WrappedEvent {
+  new(base) {
+    this[_returnValue] = null;
+    super.new(base);
+  }
+  get returnValue() {
+    return this[_returnValue];
+  }
+  set returnValue(value) {
+    this[_returnValue] = value;
+    if ("returnValue" in this.wrapped) {
+      this.wrapped.returnValue = value;
+    }
+  }
+};
+html$._BeforeUnloadEvent[dart.implements] = () => [html$.BeforeUnloadEvent];
+dart.setSignature(html$._BeforeUnloadEvent, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._BeforeUnloadEvent, [html$.Event])}),
+  fields: () => ({[_returnValue]: core.String}),
+  getters: () => ({returnValue: dart.definiteFunctionType(core.String, [])}),
+  setters: () => ({returnValue: dart.definiteFunctionType(dart.void, [core.String])})
+});
+const _eventType = Symbol('_eventType');
+html$._BeforeUnloadEventStreamProvider = class _BeforeUnloadEventStreamProvider extends core.Object {
+  new(eventType) {
+    this[_eventType] = eventType;
+  }
+  forTarget(e, opts) {
+    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+    let stream = new (_EventStreamOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
+    let controller = StreamControllerOfBeforeUnloadEvent().new({sync: true});
+    stream.listen(dart.fn(event => {
+      let wrapped = new html$._BeforeUnloadEvent(event);
+      controller.add(wrapped);
+    }, BeforeUnloadEventToNull()));
+    return controller.stream;
+  }
+  getEventType(target) {
+    return this[_eventType];
+  }
+  forElement(e, opts) {
+    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+    return new (_ElementEventStreamImplOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
+  }
+  [_forElementList](e, opts) {
+    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+    return new (_ElementListEventStreamImplOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
+  }
+};
+html$._BeforeUnloadEventStreamProvider[dart.implements] = () => [EventStreamProviderOfBeforeUnloadEvent()];
+dart.setSignature(html$._BeforeUnloadEventStreamProvider, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._BeforeUnloadEventStreamProvider, [core.String])}),
+  fields: () => ({[_eventType]: core.String}),
+  methods: () => ({
+    forTarget: dart.definiteFunctionType(async.Stream$(html$.BeforeUnloadEvent), [html$.EventTarget], {useCapture: core.bool}),
+    getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
+    forElement: dart.definiteFunctionType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.Element], {useCapture: core.bool}),
+    [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(html$.BeforeUnloadEvent), [ElementListOfElement()], {useCapture: core.bool})
+  })
+});
+html$.WindowBase64 = class WindowBase64 extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.WindowBase64, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WindowBase64, [])})
+});
+dart.defineExtensionNames([
+  'focus',
+  'focused',
+  'visibilityState'
+]);
+html$.WindowClient = class WindowClient extends html$.Client {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.focused]() {
+    return this.focused;
+  }
+  get [dartx.visibilityState]() {
+    return this.visibilityState;
+  }
+  [dartx.focus](...args) {
+    return this.focus.apply(this, args);
+  }
+};
+dart.setSignature(html$.WindowClient, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WindowClient, [])}),
+  fields: () => ({
+    [dartx.focused]: core.bool,
+    [dartx.visibilityState]: core.String
+  }),
+  methods: () => ({[dartx.focus]: dart.definiteFunctionType(async.Future, [])})
+});
+dart.registerExtension(dart.global.WindowClient, html$.WindowClient);
+dart.defineExtensionNames([
+  'onHashChange',
+  'onMessage',
+  'onOffline',
+  'onOnline',
+  'onPopState',
+  'onStorage',
+  'onUnload'
+]);
+html$.WindowEventHandlers = class WindowEventHandlers extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get onHashChange() {
+    return html$.WindowEventHandlers.hashChangeEvent.forTarget(this);
+  }
+  get onMessage() {
+    return html$.WindowEventHandlers.messageEvent.forTarget(this);
+  }
+  get onOffline() {
+    return html$.WindowEventHandlers.offlineEvent.forTarget(this);
+  }
+  get onOnline() {
+    return html$.WindowEventHandlers.onlineEvent.forTarget(this);
+  }
+  get onPopState() {
+    return html$.WindowEventHandlers.popStateEvent.forTarget(this);
+  }
+  get onStorage() {
+    return html$.WindowEventHandlers.storageEvent.forTarget(this);
+  }
+  get onUnload() {
+    return html$.WindowEventHandlers.unloadEvent.forTarget(this);
+  }
+};
+dart.setSignature(html$.WindowEventHandlers, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WindowEventHandlers, [])}),
+  getters: () => ({
+    onHashChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onMessage: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    onOffline: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onOnline: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onPopState: dart.definiteFunctionType(async.Stream$(html$.PopStateEvent), []),
+    onStorage: dart.definiteFunctionType(async.Stream$(html$.StorageEvent), []),
+    onUnload: dart.definiteFunctionType(async.Stream$(html$.Event), [])
+  }),
+  sfields: () => ({
+    hashChangeEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent(),
+    offlineEvent: EventStreamProviderOfEvent(),
+    onlineEvent: EventStreamProviderOfEvent(),
+    popStateEvent: EventStreamProviderOfPopStateEvent(),
+    storageEvent: EventStreamProviderOfStorageEvent(),
+    unloadEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineExtensionMembers(html$.WindowEventHandlers, [
+  'onHashChange',
+  'onMessage',
+  'onOffline',
+  'onOnline',
+  'onPopState',
+  'onStorage',
+  'onUnload'
+]);
+dart.defineLazy(html$.WindowEventHandlers, {
+  get hashChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  },
+  get offlineEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('offline'));
+  },
+  get onlineEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('online'));
+  },
+  get popStateEvent() {
+    return dart.const(new (EventStreamProviderOfPopStateEvent())('popstate'));
+  },
+  get storageEvent() {
+    return dart.const(new (EventStreamProviderOfStorageEvent())('storage'));
+  },
+  get unloadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('unload'));
+  }
+});
+dart.defineExtensionNames([
+  'postMessage',
+  'terminate',
+  'onError',
+  'onMessage'
+]);
+html$.Worker = class Worker extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(scriptUrl) {
+    return html$.Worker._create_1(scriptUrl);
+  }
+  static _create_1(scriptUrl) {
+    return new self.Worker(scriptUrl);
+  }
+  static get supported() {
+    return typeof window.Worker != "undefined";
+  }
+  [dartx.postMessage](message, transfer) {
+    if (transfer === void 0) transfer = null;
+    if (transfer != null) {
+      let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+      this[_postMessage_1](message_1, transfer);
+      return;
+    }
+    let message_1 = html_common.convertDartToNative_SerializedScriptValue(message);
+    this[_postMessage_2](message_1);
+    return;
+  }
+  [_postMessage_1](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [_postMessage_2](...args) {
+    return this.postMessage.apply(this, args);
+  }
+  [dartx.terminate](...args) {
+    return this.terminate.apply(this, args);
+  }
+  get [dartx.onError]() {
+    return html$.Worker.errorEvent.forTarget(this);
+  }
+  get [dartx.onMessage]() {
+    return html$.Worker.messageEvent.forTarget(this);
+  }
+};
+html$.Worker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$.Worker, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.Worker, []),
+    new: dart.definiteFunctionType(html$.Worker, [core.String])
+  }),
+  getters: () => ({
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])
+  }),
+  methods: () => ({
+    [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
+    [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
+    [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    [dartx.terminate]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    errorEvent: EventStreamProviderOfEvent(),
+    messageEvent: EventStreamProviderOfMessageEvent()
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.Worker, [dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.defineLazy(html$.Worker, {
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get messageEvent() {
+    return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
+  }
+});
+dart.registerExtension(dart.global.Worker, html$.Worker);
+html$.WorkerConsole = class WorkerConsole extends html$.ConsoleBase {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.WorkerConsole, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WorkerConsole, [])})
+});
+dart.registerExtension(dart.global.WorkerConsole, html$.WorkerConsole);
+dart.defineExtensionNames([
+  'clearMarks',
+  'clearMeasures',
+  'getEntries',
+  'getEntriesByName',
+  'getEntriesByType',
+  'mark',
+  'measure',
+  'now',
+  'clearResourceTimings',
+  'setResourceTimingBufferSize',
+  'memory'
+]);
+html$.WorkerPerformance = class WorkerPerformance extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.memory]() {
+    return this.memory;
+  }
+  [dartx.clearMarks](...args) {
+    return this.clearMarks.apply(this, args);
+  }
+  [dartx.clearMeasures](...args) {
+    return this.clearMeasures.apply(this, args);
+  }
+  [dartx.getEntries](...args) {
+    return this.getEntries.apply(this, args);
+  }
+  [dartx.getEntriesByName](...args) {
+    return this.getEntriesByName.apply(this, args);
+  }
+  [dartx.getEntriesByType](...args) {
+    return this.getEntriesByType.apply(this, args);
+  }
+  [dartx.mark](...args) {
+    return this.mark.apply(this, args);
+  }
+  [dartx.measure](...args) {
+    return this.measure.apply(this, args);
+  }
+  [dartx.now](...args) {
+    return this.now.apply(this, args);
+  }
+  [dartx.clearResourceTimings](...args) {
+    return this.webkitClearResourceTimings.apply(this, args);
+  }
+  [dartx.setResourceTimingBufferSize](...args) {
+    return this.webkitSetResourceTimingBufferSize.apply(this, args);
+  }
+};
+dart.setSignature(html$.WorkerPerformance, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WorkerPerformance, [])}),
+  fields: () => ({[dartx.memory]: html$.MemoryInfo}),
+  methods: () => ({
+    [dartx.clearMarks]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.clearMeasures]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.getEntries]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), []),
+    [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
+    [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String]),
+    [dartx.mark]: dart.definiteFunctionType(dart.void, [core.String]),
+    [dartx.measure]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.now]: dart.definiteFunctionType(core.double, []),
+    [dartx.clearResourceTimings]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setResourceTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int])
+  })
+});
+dart.registerExtension(dart.global.WorkerPerformance, html$.WorkerPerformance);
+dart.defineExtensionNames([
+  'createExpression',
+  'createNSResolver',
+  'evaluate'
+]);
+html$.XPathEvaluator = class XPathEvaluator extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.XPathEvaluator._create_1();
+  }
+  static _create_1() {
+    return new self.XPathEvaluator();
+  }
+  [dartx.createExpression](...args) {
+    return this.createExpression.apply(this, args);
+  }
+  [dartx.createNSResolver](...args) {
+    return this.createNSResolver.apply(this, args);
+  }
+  [dartx.evaluate](...args) {
+    return this.evaluate.apply(this, args);
+  }
+};
+dart.setSignature(html$.XPathEvaluator, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.XPathEvaluator, []),
+    new: dart.definiteFunctionType(html$.XPathEvaluator, [])
+  }),
+  methods: () => ({
+    [dartx.createExpression]: dart.definiteFunctionType(html$.XPathExpression, [core.String, html$.XPathNSResolver]),
+    [dartx.createNSResolver]: dart.definiteFunctionType(html$.XPathNSResolver, [html$.Node]),
+    [dartx.evaluate]: dart.definiteFunctionType(html$.XPathResult, [core.String, html$.Node, html$.XPathNSResolver], [core.int, core.Object])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.XPathEvaluator, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.XPathEvaluator, html$.XPathEvaluator);
+dart.defineExtensionNames([
+  'evaluate'
+]);
+html$.XPathExpression = class XPathExpression extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.evaluate](...args) {
+    return this.evaluate.apply(this, args);
+  }
+};
+dart.setSignature(html$.XPathExpression, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XPathExpression, [])}),
+  methods: () => ({[dartx.evaluate]: dart.definiteFunctionType(html$.XPathResult, [html$.Node], [core.int, core.Object])})
+});
+dart.registerExtension(dart.global.XPathExpression, html$.XPathExpression);
+dart.defineExtensionNames([
+  'lookupNamespaceUri'
+]);
+html$.XPathNSResolver = class XPathNSResolver extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.lookupNamespaceUri](...args) {
+    return this.lookupNamespaceURI.apply(this, args);
+  }
+};
+dart.setSignature(html$.XPathNSResolver, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XPathNSResolver, [])}),
+  methods: () => ({[dartx.lookupNamespaceUri]: dart.definiteFunctionType(core.String, [core.String])})
+});
+dart.registerExtension(dart.global.XPathNSResolver, html$.XPathNSResolver);
+dart.defineExtensionNames([
+  'iterateNext',
+  'snapshotItem',
+  'booleanValue',
+  'invalidIteratorState',
+  'numberValue',
+  'resultType',
+  'singleNodeValue',
+  'snapshotLength',
+  'stringValue'
+]);
+html$.XPathResult = class XPathResult extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.booleanValue]() {
+    return this.booleanValue;
+  }
+  get [dartx.invalidIteratorState]() {
+    return this.invalidIteratorState;
+  }
+  get [dartx.numberValue]() {
+    return this.numberValue;
+  }
+  get [dartx.resultType]() {
+    return this.resultType;
+  }
+  get [dartx.singleNodeValue]() {
+    return this.singleNodeValue;
+  }
+  get [dartx.snapshotLength]() {
+    return this.snapshotLength;
+  }
+  get [dartx.stringValue]() {
+    return this.stringValue;
+  }
+  [dartx.iterateNext](...args) {
+    return this.iterateNext.apply(this, args);
+  }
+  [dartx.snapshotItem](...args) {
+    return this.snapshotItem.apply(this, args);
+  }
+};
+dart.setSignature(html$.XPathResult, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XPathResult, [])}),
+  fields: () => ({
+    [dartx.booleanValue]: core.bool,
+    [dartx.invalidIteratorState]: core.bool,
+    [dartx.numberValue]: core.double,
+    [dartx.resultType]: core.int,
+    [dartx.singleNodeValue]: html$.Node,
+    [dartx.snapshotLength]: core.int,
+    [dartx.stringValue]: core.String
+  }),
+  methods: () => ({
+    [dartx.iterateNext]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.snapshotItem]: dart.definiteFunctionType(html$.Node, [core.int])
+  }),
+  sfields: () => ({
+    ANY_TYPE: core.int,
+    ANY_UNORDERED_NODE_TYPE: core.int,
+    BOOLEAN_TYPE: core.int,
+    FIRST_ORDERED_NODE_TYPE: core.int,
+    NUMBER_TYPE: core.int,
+    ORDERED_NODE_ITERATOR_TYPE: core.int,
+    ORDERED_NODE_SNAPSHOT_TYPE: core.int,
+    STRING_TYPE: core.int,
+    UNORDERED_NODE_ITERATOR_TYPE: core.int,
+    UNORDERED_NODE_SNAPSHOT_TYPE: core.int
+  })
+});
+html$.XPathResult.ANY_TYPE = 0;
+html$.XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
+html$.XPathResult.BOOLEAN_TYPE = 3;
+html$.XPathResult.FIRST_ORDERED_NODE_TYPE = 9;
+html$.XPathResult.NUMBER_TYPE = 1;
+html$.XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;
+html$.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;
+html$.XPathResult.STRING_TYPE = 2;
+html$.XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;
+html$.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+dart.registerExtension(dart.global.XPathResult, html$.XPathResult);
+html$.XmlDocument = class XmlDocument extends html$.Document {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$.XmlDocument, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XmlDocument, [])})
+});
+dart.registerExtension(dart.global.XMLDocument, html$.XmlDocument);
+dart.defineExtensionNames([
+  'serializeToString'
+]);
+html$.XmlSerializer = class XmlSerializer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.XmlSerializer._create_1();
+  }
+  static _create_1() {
+    return new XMLSerializer();
+  }
+  [dartx.serializeToString](...args) {
+    return this.serializeToString.apply(this, args);
+  }
+};
+dart.setSignature(html$.XmlSerializer, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.XmlSerializer, []),
+    new: dart.definiteFunctionType(html$.XmlSerializer, [])
+  }),
+  methods: () => ({[dartx.serializeToString]: dart.definiteFunctionType(core.String, [html$.Node])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.XmlSerializer, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.XMLSerializer, html$.XmlSerializer);
+dart.defineExtensionNames([
+  'clearParameters',
+  'getParameter',
+  'importStylesheet',
+  'removeParameter',
+  'reset',
+  'setParameter',
+  'transformToDocument',
+  'transformToFragment'
+]);
+html$.XsltProcessor = class XsltProcessor extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$.XsltProcessor._create_1();
+  }
+  static _create_1() {
+    return new XSLTProcessor();
+  }
+  static get supported() {
+    return !!window.XSLTProcessor;
+  }
+  [dartx.clearParameters](...args) {
+    return this.clearParameters.apply(this, args);
+  }
+  [dartx.getParameter](...args) {
+    return this.getParameter.apply(this, args);
+  }
+  [dartx.importStylesheet](...args) {
+    return this.importStylesheet.apply(this, args);
+  }
+  [dartx.removeParameter](...args) {
+    return this.removeParameter.apply(this, args);
+  }
+  [dartx.reset](...args) {
+    return this.reset.apply(this, args);
+  }
+  [dartx.setParameter](...args) {
+    return this.setParameter.apply(this, args);
+  }
+  [dartx.transformToDocument](...args) {
+    return this.transformToDocument.apply(this, args);
+  }
+  [dartx.transformToFragment](...args) {
+    return this.transformToFragment.apply(this, args);
+  }
+};
+dart.setSignature(html$.XsltProcessor, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$.XsltProcessor, []),
+    new: dart.definiteFunctionType(html$.XsltProcessor, [])
+  }),
+  methods: () => ({
+    [dartx.clearParameters]: dart.definiteFunctionType(dart.void, []),
+    [dartx.getParameter]: dart.definiteFunctionType(core.String, [core.String, core.String]),
+    [dartx.importStylesheet]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.removeParameter]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [dartx.reset]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setParameter]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
+    [dartx.transformToDocument]: dart.definiteFunctionType(html$.Document, [html$.Node]),
+    [dartx.transformToFragment]: dart.definiteFunctionType(html$.DocumentFragment, [html$.Node, html$.Document])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.XsltProcessor, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.XSLTProcessor, html$.XsltProcessor);
+dart.defineExtensionNames([
+  'name',
+  'value'
+]);
+html$._Attr = class _Attr extends html$.Node {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.setSignature(html$._Attr, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._Attr, [])}),
+  fields: () => ({
+    [dartx.name]: core.String,
+    [dartx.value]: core.String
+  })
+});
+dart.registerExtension(dart.global.Attr, html$._Attr);
+html$._Cache = class _Cache extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._Cache, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._Cache, [])})
+});
+dart.registerExtension(dart.global.Cache, html$._Cache);
+html$._CanvasPathMethods = class _CanvasPathMethods extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._CanvasPathMethods, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._CanvasPathMethods, [])})
+});
+dart.defineExtensionNames([
+  'toString',
+  '==',
+  'hashCode',
+  'intersection',
+  'intersects',
+  'boundingBox',
+  'containsRectangle',
+  'containsPoint',
+  'topLeft',
+  'topRight',
+  'bottomRight',
+  'bottomLeft',
+  'bottom',
+  'height',
+  'left',
+  'right',
+  'top',
+  'width'
+]);
+html$._ClientRect = class _ClientRect extends _interceptors.Interceptor {
+  [dartx.toString]() {
+    return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
+  }
+  [dartx['==']](other) {
+    if (!RectangleOfnum().is(other)) return false;
+    return dart.equals(this[dartx.left], dart.dload(other, 'left')) && dart.equals(this[dartx.top], dart.dload(other, 'top')) && dart.equals(this[dartx.width], dart.dload(other, 'width')) && dart.equals(this[dartx.height], dart.dload(other, 'height'));
+  }
+  get [dartx.hashCode]() {
+    return html$._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
+  }
+  [dartx.intersection](other) {
+    let x0 = math.max(core.num)(this[dartx.left], other[dartx.left]);
+    let x1 = math.min(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+    if (dart.notNull(x0) <= dart.notNull(x1)) {
+      let y0 = math.max(core.num)(this[dartx.top], other[dartx.top]);
+      let y1 = math.min(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+      if (dart.notNull(y0) <= dart.notNull(y1)) {
+        return new (RectangleOfnum())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
+      }
+    }
+    return null;
+  }
+  [dartx.intersects](other) {
+    return dart.notNull(this[dartx.left]) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
+  }
+  [dartx.boundingBox](other) {
+    let right = math.max(core.num)(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+    let bottom = math.max(core.num)(dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+    let left = math.min(core.num)(this[dartx.left], other[dartx.left]);
+    let top = math.min(core.num)(this[dartx.top], other[dartx.top]);
+    return new (RectangleOfnum())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
+  }
+  [dartx.containsRectangle](another) {
+    return dart.notNull(this[dartx.left]) <= dart.notNull(another[dartx.left]) && dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this[dartx.top]) <= dart.notNull(another[dartx.top]) && dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
+  }
+  [dartx.containsPoint](another) {
+    return dart.notNull(another.x) >= dart.notNull(this[dartx.left]) && dart.notNull(another.x) <= dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]) && dart.notNull(another.y) >= dart.notNull(this[dartx.top]) && dart.notNull(another.y) <= dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]);
+  }
+  get [dartx.topLeft]() {
+    return new (PointOfnum())(this[dartx.left], this[dartx.top]);
+  }
+  get [dartx.topRight]() {
+    return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), this[dartx.top]);
+  }
+  get [dartx.bottomRight]() {
+    return new (PointOfnum())(dart.notNull(this[dartx.left]) + dart.notNull(this[dartx.width]), dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
+  }
+  get [dartx.bottomLeft]() {
+    return new (PointOfnum())(this[dartx.left], dart.notNull(this[dartx.top]) + dart.notNull(this[dartx.height]));
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.bottom]() {
+    return this.bottom;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.left]() {
+    return this.left;
+  }
+  get [dartx.right]() {
+    return this.right;
+  }
+  get [dartx.top]() {
+    return this.top;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+};
+html$._ClientRect[dart.implements] = () => [RectangleOfnum()];
+dart.setSignature(html$._ClientRect, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._ClientRect, [])}),
+  fields: () => ({
+    [dartx.bottom]: core.double,
+    [dartx.height]: core.double,
+    [dartx.left]: core.double,
+    [dartx.right]: core.double,
+    [dartx.top]: core.double,
+    [dartx.width]: core.double
+  }),
+  getters: () => ({
+    [dartx.topLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.topRight]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.bottomRight]: dart.definiteFunctionType(math.Point$(core.num), []),
+    [dartx.bottomLeft]: dart.definiteFunctionType(math.Point$(core.num), [])
+  }),
+  methods: () => ({
+    [dartx.intersection]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+    [dartx.intersects]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
+    [dartx.boundingBox]: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+    [dartx.containsRectangle]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
+    [dartx.containsPoint]: dart.definiteFunctionType(core.bool, [PointOfnum()])
+  })
+});
+dart.registerExtension(dart.global.ClientRect, html$._ClientRect);
+html$._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
+  static combine(hash, value) {
+    hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
+    hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
+    return (dart.notNull(hash) ^ hash[dartx['>>']](6)) >>> 0;
+  }
+  static finish(hash) {
+    hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) << 3);
+    hash = (dart.notNull(hash) ^ hash[dartx['>>']](11)) >>> 0;
+    return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
+  }
+  static hash2(a, b) {
+    return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)));
+  }
+  static hash4(a, b, c, d) {
+    return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)), core.int._check(c)), core.int._check(d)));
+  }
+};
+dart.setSignature(html$._JenkinsSmiHash, {
+  statics: () => ({
+    combine: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    finish: dart.definiteFunctionType(core.int, [core.int]),
+    hash2: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic]),
+    hash4: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+  }),
+  names: ['combine', 'finish', 'hash2', 'hash4']
+});
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$._ClientRectList = class _ClientRectList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(math.Rectangle$(core.num)), html$.ImmutableListMixin$(math.Rectangle$(core.num))) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.item](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$._ClientRectList[dart.implements] = () => [ListOfRectangleOfnum()];
+dart.setSignature(html$._ClientRectList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._ClientRectList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, RectangleOfnum()]),
+    [__getter__]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int]),
+    [dartx.item]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int])
+  })
+});
+dart.registerExtension(dart.global.ClientRectList, html$._ClientRectList);
+dart.registerExtension(dart.global.DOMRectList, html$._ClientRectList);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$._CssRuleList = class _CssRuleList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.CssRule), html$.ImmutableListMixin$(html$.CssRule)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$._CssRuleList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfCssRule()];
+dart.setSignature(html$._CssRuleList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._CssRuleList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.CssRule, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.CssRule]),
+    [dartx.item]: dart.definiteFunctionType(html$.CssRule, [core.int])
+  })
+});
+dart.registerExtension(dart.global.CSSRuleList, html$._CssRuleList);
+html$._DOMFileSystemSync = class _DOMFileSystemSync extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._DOMFileSystemSync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DOMFileSystemSync, [])})
+});
+dart.registerExtension(dart.global.DOMFileSystemSync, html$._DOMFileSystemSync);
+html$._EntrySync = class _EntrySync extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._EntrySync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._EntrySync, [])})
+});
+dart.registerExtension(dart.global.EntrySync, html$._EntrySync);
+html$._DirectoryEntrySync = class _DirectoryEntrySync extends html$._EntrySync {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._DirectoryEntrySync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DirectoryEntrySync, [])})
+});
+dart.registerExtension(dart.global.DirectoryEntrySync, html$._DirectoryEntrySync);
+html$._DirectoryReaderSync = class _DirectoryReaderSync extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._DirectoryReaderSync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DirectoryReaderSync, [])})
+});
+dart.registerExtension(dart.global.DirectoryReaderSync, html$._DirectoryReaderSync);
+html$._DocumentType = class _DocumentType extends html$.Node {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+html$._DocumentType[dart.implements] = () => [html$.ChildNode];
+dart.setSignature(html$._DocumentType, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DocumentType, [])})
+});
+dart.registerExtension(dart.global.DocumentType, html$._DocumentType);
+dart.defineExtensionNames([
+  'height',
+  'height',
+  'width',
+  'width',
+  'x',
+  'x',
+  'y',
+  'y'
+]);
+html$._DomRect = class _DomRect extends html$.DomRectReadOnly {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(x, y, width, height) {
+    if (x === void 0) x = null;
+    if (y === void 0) y = null;
+    if (width === void 0) width = null;
+    if (height === void 0) height = null;
+    if (height != null) {
+      return html$._DomRect._create_1(x, y, width, height);
+    }
+    if (width != null) {
+      return html$._DomRect._create_2(x, y, width);
+    }
+    if (y != null) {
+      return html$._DomRect._create_3(x, y);
+    }
+    if (x != null) {
+      return html$._DomRect._create_4(x);
+    }
+    return html$._DomRect._create_5();
+  }
+  static _create_1(x, y, width, height) {
+    return new DOMRect(x, y, width, height);
+  }
+  static _create_2(x, y, width) {
+    return new DOMRect(x, y, width);
+  }
+  static _create_3(x, y) {
+    return new DOMRect(x, y);
+  }
+  static _create_4(x) {
+    return new DOMRect(x);
+  }
+  static _create_5() {
+    return new DOMRect();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(html$._DomRect, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._DomRect, []),
+    new: dart.definiteFunctionType(html$._DomRect, [], [core.num, core.num, core.num, core.num])
+  }),
+  setters: () => ({
+    [dartx.height]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.width]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.x]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.y]: dart.definiteFunctionType(dart.void, [core.num])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$._DomRect, [dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$._DomRect, [])
+  }),
+  names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
+});
+dart.registerExtension(dart.global.DOMRect, html$._DomRect);
+html$._FileEntrySync = class _FileEntrySync extends html$._EntrySync {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._FileEntrySync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._FileEntrySync, [])})
+});
+dart.registerExtension(dart.global.FileEntrySync, html$._FileEntrySync);
+html$._FileReaderSync = class _FileReaderSync extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return html$._FileReaderSync._create_1();
+  }
+  static _create_1() {
+    return new FileReaderSync();
+  }
+};
+dart.setSignature(html$._FileReaderSync, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._FileReaderSync, []),
+    new: dart.definiteFunctionType(html$._FileReaderSync, [])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$._FileReaderSync, [])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.FileReaderSync, html$._FileReaderSync);
+html$._FileWriterSync = class _FileWriterSync extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._FileWriterSync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._FileWriterSync, [])})
+});
+dart.registerExtension(dart.global.FileWriterSync, html$._FileWriterSync);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$._GamepadList = class _GamepadList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Gamepad), html$.ImmutableListMixin$(html$.Gamepad)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$._GamepadList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfGamepad()];
+dart.setSignature(html$._GamepadList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._GamepadList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.Gamepad, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Gamepad]),
+    [dartx.item]: dart.definiteFunctionType(html$.Gamepad, [core.int])
+  })
+});
+dart.registerExtension(dart.global.GamepadList, html$._GamepadList);
+html$._HTMLAllCollection = class _HTMLAllCollection extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [_item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+dart.setSignature(html$._HTMLAllCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._HTMLAllCollection, [])}),
+  methods: () => ({[_item]: dart.definiteFunctionType(html$.Element, [core.int])})
+});
+dart.registerExtension(dart.global.HTMLAllCollection, html$._HTMLAllCollection);
+html$._HTMLAppletElement = class _HTMLAppletElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$._HTMLAppletElement, 'created');
+dart.setSignature(html$._HTMLAppletElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._HTMLAppletElement, []),
+    created: dart.definiteFunctionType(html$._HTMLAppletElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLAppletElement, html$._HTMLAppletElement);
+html$._HTMLDirectoryElement = class _HTMLDirectoryElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$._HTMLDirectoryElement, 'created');
+dart.setSignature(html$._HTMLDirectoryElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._HTMLDirectoryElement, []),
+    created: dart.definiteFunctionType(html$._HTMLDirectoryElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLDirectoryElement, html$._HTMLDirectoryElement);
+html$._HTMLFontElement = class _HTMLFontElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$._HTMLFontElement, 'created');
+dart.setSignature(html$._HTMLFontElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._HTMLFontElement, []),
+    created: dart.definiteFunctionType(html$._HTMLFontElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLFontElement, html$._HTMLFontElement);
+html$._HTMLFrameElement = class _HTMLFrameElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$._HTMLFrameElement, 'created');
+dart.setSignature(html$._HTMLFrameElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._HTMLFrameElement, []),
+    created: dart.definiteFunctionType(html$._HTMLFrameElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLFrameElement, html$._HTMLFrameElement);
+html$._HTMLFrameSetElement = class _HTMLFrameSetElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$._HTMLFrameSetElement, 'created');
+html$._HTMLFrameSetElement[dart.implements] = () => [html$.WindowEventHandlers];
+dart.setSignature(html$._HTMLFrameSetElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._HTMLFrameSetElement, []),
+    created: dart.definiteFunctionType(html$._HTMLFrameSetElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLFrameSetElement, html$._HTMLFrameSetElement);
+html$._HTMLMarqueeElement = class _HTMLMarqueeElement extends html$.HtmlElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(html$._HTMLMarqueeElement, 'created');
+dart.setSignature(html$._HTMLMarqueeElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._HTMLMarqueeElement, []),
+    created: dart.definiteFunctionType(html$._HTMLMarqueeElement, [])
+  })
+});
+dart.registerExtension(dart.global.HTMLMarqueeElement, html$._HTMLMarqueeElement);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'getNamedItem',
+  'getNamedItemNS',
+  'item',
+  'removeNamedItem',
+  'removeNamedItemNS',
+  'setNamedItem',
+  'setNamedItemNS'
+]);
+html$._NamedNodeMap = class _NamedNodeMap extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.getNamedItem](...args) {
+    return this.getNamedItem.apply(this, args);
+  }
+  [dartx.getNamedItemNS](...args) {
+    return this.getNamedItemNS.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+  [dartx.removeNamedItem](...args) {
+    return this.removeNamedItem.apply(this, args);
+  }
+  [dartx.removeNamedItemNS](...args) {
+    return this.removeNamedItemNS.apply(this, args);
+  }
+  [dartx.setNamedItem](...args) {
+    return this.setNamedItem.apply(this, args);
+  }
+  [dartx.setNamedItemNS](...args) {
+    return this.setNamedItemNS.apply(this, args);
+  }
+};
+html$._NamedNodeMap[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
+dart.setSignature(html$._NamedNodeMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._NamedNodeMap, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    [dartx.getNamedItem]: dart.definiteFunctionType(html$._Attr, [core.String]),
+    [dartx.getNamedItemNS]: dart.definiteFunctionType(html$._Attr, [core.String, core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$._Attr, [core.int]),
+    [dartx.removeNamedItem]: dart.definiteFunctionType(html$._Attr, [core.String]),
+    [dartx.removeNamedItemNS]: dart.definiteFunctionType(html$._Attr, [core.String, core.String]),
+    [dartx.setNamedItem]: dart.definiteFunctionType(html$._Attr, [html$._Attr]),
+    [dartx.setNamedItemNS]: dart.definiteFunctionType(html$._Attr, [html$._Attr])
+  })
+});
+dart.registerExtension(dart.global.NamedNodeMap, html$._NamedNodeMap);
+dart.registerExtension(dart.global.MozNamedAttrMap, html$._NamedNodeMap);
+html$._PagePopupController = class _PagePopupController extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._PagePopupController, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._PagePopupController, [])})
+});
+dart.registerExtension(dart.global.PagePopupController, html$._PagePopupController);
+dart.defineExtensionNames([
+  'clone',
+  'context',
+  'credentials',
+  'headers',
+  'mode',
+  'referrer',
+  'url'
+]);
+html$._Request = class _Request extends html$.Body {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(input, requestInitDict) {
+    if (requestInitDict === void 0) requestInitDict = null;
+    if (requestInitDict != null) {
+      let requestInitDict_1 = html_common.convertDartToNative_Dictionary(requestInitDict);
+      return html$._Request._create_1(input, requestInitDict_1);
+    }
+    return html$._Request._create_2(input);
+  }
+  static _create_1(input, requestInitDict) {
+    return new Request(input, requestInitDict);
+  }
+  static _create_2(input) {
+    return new Request(input);
+  }
+  get [dartx.context]() {
+    return this.context;
+  }
+  get [dartx.credentials]() {
+    return this.credentials;
+  }
+  get [dartx.headers]() {
+    return this.headers;
+  }
+  get [dartx.mode]() {
+    return this.mode;
+  }
+  get [dartx.referrer]() {
+    return this.referrer;
+  }
+  get [dartx.url]() {
+    return this.url;
+  }
+  [dartx.clone](...args) {
+    return this.clone.apply(this, args);
+  }
+};
+dart.setSignature(html$._Request, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._Request, []),
+    new: dart.definiteFunctionType(html$._Request, [core.Object], [core.Map])
+  }),
+  fields: () => ({
+    [dartx.context]: core.String,
+    [dartx.credentials]: core.String,
+    [dartx.headers]: html$.Headers,
+    [dartx.mode]: core.String,
+    [dartx.referrer]: core.String,
+    [dartx.url]: core.String
+  }),
+  methods: () => ({[dartx.clone]: dart.definiteFunctionType(html$._Request, [])}),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$._Request, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._Request, [dart.dynamic])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.Request, html$._Request);
+html$._Response = class _Response extends html$.Body {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(body, responseInitDict) {
+    if (body === void 0) body = null;
+    if (responseInitDict === void 0) responseInitDict = null;
+    if (responseInitDict != null) {
+      let responseInitDict_1 = html_common.convertDartToNative_Dictionary(responseInitDict);
+      return html$._Response._create_1(body, responseInitDict_1);
+    }
+    if (body != null) {
+      return html$._Response._create_2(body);
+    }
+    return html$._Response._create_3();
+  }
+  static _create_1(body, responseInitDict) {
+    return new Response(body, responseInitDict);
+  }
+  static _create_2(body) {
+    return new Response(body);
+  }
+  static _create_3() {
+    return new Response();
+  }
+};
+dart.setSignature(html$._Response, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._Response, []),
+    new: dart.definiteFunctionType(html$._Response, [], [core.Object, core.Map])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$._Response, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._Response, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$._Response, [])
+  }),
+  names: ['_create_1', '_create_2', '_create_3']
+});
+dart.registerExtension(dart.global.Response, html$._Response);
+html$._ServiceWorker = class _ServiceWorker extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+html$._ServiceWorker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$._ServiceWorker, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._ServiceWorker, [])})
+});
+dart.registerExtension(dart.global.ServiceWorker, html$._ServiceWorker);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$._SpeechRecognitionResultList = class _SpeechRecognitionResultList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.SpeechRecognitionResult), html$.ImmutableListMixin$(html$.SpeechRecognitionResult)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$._SpeechRecognitionResultList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechRecognitionResult()];
+dart.setSignature(html$._SpeechRecognitionResultList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._SpeechRecognitionResultList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.SpeechRecognitionResult, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SpeechRecognitionResult]),
+    [dartx.item]: dart.definiteFunctionType(html$.SpeechRecognitionResult, [core.int])
+  })
+});
+dart.registerExtension(dart.global.SpeechRecognitionResultList, html$._SpeechRecognitionResultList);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+html$._StyleSheetList = class _StyleSheetList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.StyleSheet), html$.ImmutableListMixin$(html$.StyleSheet)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[index];
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__getter__](...args) {
+    return this.__getter__.apply(this, args);
+  }
+  [dartx.item](...args) {
+    return this.item.apply(this, args);
+  }
+};
+html$._StyleSheetList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfStyleSheet()];
+dart.setSignature(html$._StyleSheetList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._StyleSheetList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(html$.StyleSheet, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.StyleSheet]),
+    [__getter__]: dart.definiteFunctionType(html$.CssStyleSheet, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.StyleSheet, [core.int])
+  })
+});
+dart.registerExtension(dart.global.StyleSheetList, html$._StyleSheetList);
+html$._SubtleCrypto = class _SubtleCrypto extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._SubtleCrypto, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._SubtleCrypto, [])})
+});
+dart.registerExtension(dart.global.SubtleCrypto, html$._SubtleCrypto);
+html$._WebKitCSSMatrix = class _WebKitCSSMatrix extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(cssValue) {
+    if (cssValue === void 0) cssValue = null;
+    if (cssValue != null) {
+      return html$._WebKitCSSMatrix._create_1(cssValue);
+    }
+    return html$._WebKitCSSMatrix._create_2();
+  }
+  static _create_1(cssValue) {
+    return new WebKitCSSMatrix(cssValue);
+  }
+  static _create_2() {
+    return new WebKitCSSMatrix();
+  }
+};
+dart.setSignature(html$._WebKitCSSMatrix, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(html$._WebKitCSSMatrix, []),
+    new: dart.definiteFunctionType(html$._WebKitCSSMatrix, [], [core.String])
+  }),
+  statics: () => ({
+    _create_1: dart.definiteFunctionType(html$._WebKitCSSMatrix, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._WebKitCSSMatrix, [])
+  }),
+  names: ['_create_1', '_create_2']
+});
+dart.registerExtension(dart.global.WebKitCSSMatrix, html$._WebKitCSSMatrix);
+html$._WindowTimers = class _WindowTimers extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._WindowTimers, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._WindowTimers, [])})
+});
+html$._WorkerLocation = class _WorkerLocation extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+html$._WorkerLocation[dart.implements] = () => [html$.UrlUtilsReadOnly];
+dart.setSignature(html$._WorkerLocation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._WorkerLocation, [])})
+});
+dart.registerExtension(dart.global.WorkerLocation, html$._WorkerLocation);
+html$._WorkerNavigator = class _WorkerNavigator extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+html$._WorkerNavigator[dart.implements] = () => [html$.NavigatorCpu, html$.NavigatorOnLine, html$.NavigatorID];
+dart.setSignature(html$._WorkerNavigator, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._WorkerNavigator, [])})
+});
+dart.registerExtension(dart.global.WorkerNavigator, html$._WorkerNavigator);
+html$._XMLHttpRequestProgressEvent = class _XMLHttpRequestProgressEvent extends html$.ProgressEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(html$._XMLHttpRequestProgressEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._XMLHttpRequestProgressEvent, [])})
+});
+dart.registerExtension(dart.global.XMLHttpRequestProgressEvent, html$._XMLHttpRequestProgressEvent);
+const _matches = Symbol('_matches');
+html$._AttributeMap = class _AttributeMap extends core.Object {
+  new(element) {
+    this[_element$] = element;
+  }
+  addAll(other) {
+    other[dartx.forEach](dart.fn((k, v) => {
+      this._set(k, v);
+    }, StringAndStringToNull()));
+  }
+  containsValue(value) {
+    for (let v of this.values) {
+      if (dart.equals(value, v)) {
+        return true;
+      }
+    }
+    return false;
+  }
+  putIfAbsent(key, ifAbsent) {
+    if (!dart.test(this[dartx.containsKey](key))) {
+      this._set(key, ifAbsent());
+    }
+    return this._get(key);
+  }
+  clear() {
+    for (let key of this.keys) {
+      this[dartx.remove](key);
+    }
+  }
+  forEach(f) {
+    for (let key of this.keys) {
+      let value = this._get(key);
+      f(key, value);
+    }
+  }
+  get keys() {
+    let attributes = this[_element$][_attributes$];
+    let keys = JSArrayOfString().of([]);
+    for (let i = 0, len = attributes[dartx.length]; i < dart.notNull(len); i++) {
+      let attr = html$._Attr._check(attributes[dartx._get](i));
+      if (dart.test(this[_matches](attr))) {
+        keys[dartx.add](attr[dartx.name]);
+      }
+    }
+    return keys;
+  }
+  get values() {
+    let attributes = this[_element$][_attributes$];
+    let values = JSArrayOfString().of([]);
+    for (let i = 0, len = attributes[dartx.length]; i < dart.notNull(len); i++) {
+      let attr = html$._Attr._check(attributes[dartx._get](i));
+      if (dart.test(this[_matches](attr))) {
+        values[dartx.add](attr[dartx.value]);
+      }
+    }
+    return values;
+  }
+  get isEmpty() {
+    return this[dartx.length] == 0;
+  }
+  get isNotEmpty() {
+    return !dart.test(this.isEmpty);
+  }
+};
+html$._AttributeMap[dart.implements] = () => [MapOfString$String()];
+dart.setSignature(html$._AttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._AttributeMap, [html$.Element])}),
+  fields: () => ({[_element$]: html$.Element}),
+  getters: () => ({
+    keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
+    values: dart.definiteFunctionType(core.Iterable$(core.String), []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    addAll: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
+    containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+    putIfAbsent: dart.definiteFunctionType(core.String, [core.String, VoidToString()]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    forEach: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()])
+  })
+});
+dart.defineExtensionMembers(html$._AttributeMap, [
+  'addAll',
+  'containsValue',
+  'putIfAbsent',
+  'clear',
+  'forEach',
+  'keys',
+  'values',
+  'isEmpty',
+  'isNotEmpty'
+]);
+html$._ElementAttributeMap = class _ElementAttributeMap extends html$._AttributeMap {
+  new(element) {
+    super.new(element);
+  }
+  containsKey(key) {
+    return this[_element$][_hasAttribute](core.String._check(key));
+  }
+  _get(key) {
+    return this[_element$][dartx.getAttribute](core.String._check(key));
+  }
+  _set(key, value) {
+    this[_element$][dartx.setAttribute](key, value);
+    return value;
+  }
+  remove(key) {
+    let value = this[_element$][dartx.getAttribute](core.String._check(key));
+    this[_element$][_removeAttribute](core.String._check(key));
+    return value;
+  }
+  get length() {
+    return this.keys[dartx.length];
+  }
+  [_matches](node) {
+    return node[_namespaceUri] == null;
+  }
+};
+dart.setSignature(html$._ElementAttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ElementAttributeMap, [html$.Element])}),
+  getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+    _get: dart.definiteFunctionType(core.String, [core.Object]),
+    _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    remove: dart.definiteFunctionType(core.String, [core.Object]),
+    [_matches]: dart.definiteFunctionType(core.bool, [html$.Node])
+  })
+});
+dart.defineExtensionMembers(html$._ElementAttributeMap, [
+  'containsKey',
+  '_get',
+  '_set',
+  'remove',
+  'length'
+]);
+const _namespace = Symbol('_namespace');
+html$._NamespacedAttributeMap = class _NamespacedAttributeMap extends html$._AttributeMap {
+  new(element, namespace) {
+    this[_namespace] = namespace;
+    super.new(element);
+  }
+  containsKey(key) {
+    return this[_element$][_hasAttributeNS](this[_namespace], core.String._check(key));
+  }
+  _get(key) {
+    return this[_element$][dartx.getAttributeNS](this[_namespace], core.String._check(key));
+  }
+  _set(key, value) {
+    this[_element$][dartx.setAttributeNS](this[_namespace], key, value);
+    return value;
+  }
+  remove(key) {
+    let value = this._get(key);
+    this[_element$][_removeAttributeNS](this[_namespace], core.String._check(key));
+    return value;
+  }
+  get length() {
+    return this.keys[dartx.length];
+  }
+  [_matches](node) {
+    return node[_namespaceUri] == this[_namespace];
+  }
+};
+dart.setSignature(html$._NamespacedAttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._NamespacedAttributeMap, [html$.Element, core.String])}),
+  fields: () => ({[_namespace]: core.String}),
+  getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
+  methods: () => ({
+    containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+    _get: dart.definiteFunctionType(core.String, [core.Object]),
+    _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    remove: dart.definiteFunctionType(core.String, [core.Object]),
+    [_matches]: dart.definiteFunctionType(core.bool, [html$.Node])
+  })
+});
+dart.defineExtensionMembers(html$._NamespacedAttributeMap, [
+  'containsKey',
+  '_get',
+  '_set',
+  'remove',
+  'length'
+]);
+const _attr = Symbol('_attr');
+const _strip = Symbol('_strip');
+const _toHyphenedName = Symbol('_toHyphenedName');
+const _toCamelCase = Symbol('_toCamelCase');
+html$._DataAttributeMap = class _DataAttributeMap extends core.Object {
+  new(attributes) {
+    this[_attributes$] = attributes;
+  }
+  addAll(other) {
+    other[dartx.forEach](dart.fn((k, v) => {
+      this._set(k, v);
+    }, StringAndStringToNull()));
+  }
+  containsValue(value) {
+    return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool$()));
+  }
+  containsKey(key) {
+    return this[_attributes$][dartx.containsKey](this[_attr](core.String._check(key)));
+  }
+  _get(key) {
+    return this[_attributes$][dartx._get](this[_attr](core.String._check(key)));
+  }
+  _set(key, value) {
+    this[_attributes$][dartx._set](this[_attr](key), value);
+    return value;
+  }
+  putIfAbsent(key, ifAbsent) {
+    return this[_attributes$][dartx.putIfAbsent](this[_attr](key), ifAbsent);
+  }
+  remove(key) {
+    return this[_attributes$][dartx.remove](this[_attr](core.String._check(key)));
+  }
+  clear() {
+    for (let key of this.keys) {
+      this.remove(key);
+    }
+  }
+  forEach(f) {
+    this[_attributes$][dartx.forEach](dart.fn((key, value) => {
+      if (dart.test(this[_matches](key))) {
+        f(this[_strip](key), value);
+      }
+    }, StringAndStringToNull()));
+  }
+  get keys() {
+    let keys = JSArrayOfString().of([]);
+    this[_attributes$][dartx.forEach](dart.fn((key, value) => {
+      if (dart.test(this[_matches](key))) {
+        keys[dartx.add](this[_strip](key));
+      }
+    }, StringAndStringToNull()));
+    return keys;
+  }
+  get values() {
+    let values = JSArrayOfString().of([]);
+    this[_attributes$][dartx.forEach](dart.fn((key, value) => {
+      if (dart.test(this[_matches](key))) {
+        values[dartx.add](value);
+      }
+    }, StringAndStringToNull()));
+    return values;
+  }
+  get length() {
+    return this.keys[dartx.length];
+  }
+  get isEmpty() {
+    return this.length == 0;
+  }
+  get isNotEmpty() {
+    return !dart.test(this.isEmpty);
+  }
+  [_attr](key) {
+    return dart.str`data-${this[_toHyphenedName](key)}`;
+  }
+  [_matches](key) {
+    return key[dartx.startsWith]('data-');
+  }
+  [_strip](key) {
+    return this[_toCamelCase](key[dartx.substring](5));
+  }
+  [_toCamelCase](hyphenedName, opts) {
+    let startUppercase = opts && 'startUppercase' in opts ? opts.startUppercase : false;
+    let segments = hyphenedName[dartx.split]('-');
+    let start = dart.test(startUppercase) ? 0 : 1;
+    for (let i = start; i < dart.notNull(segments[dartx.length]); i++) {
+      let segment = segments[dartx._get](i);
+      if (dart.notNull(segment[dartx.length]) > 0) {
+        segments[dartx._set](i, dart.str`${segment[dartx._get](0)[dartx.toUpperCase]()}${segment[dartx.substring](1)}`);
+      }
+    }
+    return segments[dartx.join]('');
+  }
+  [_toHyphenedName](word) {
+    let sb = new core.StringBuffer();
+    for (let i = 0; i < dart.notNull(word[dartx.length]); i++) {
+      let lower = word[dartx._get](i)[dartx.toLowerCase]();
+      if (word[dartx._get](i) != lower && i > 0) sb.write('-');
+      sb.write(lower);
+    }
+    return sb.toString();
+  }
+};
+html$._DataAttributeMap[dart.implements] = () => [MapOfString$String()];
+dart.setSignature(html$._DataAttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._DataAttributeMap, [MapOfString$String()])}),
+  fields: () => ({[_attributes$]: MapOfString$String()}),
+  getters: () => ({
+    keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
+    values: dart.definiteFunctionType(core.Iterable$(core.String), []),
+    length: dart.definiteFunctionType(core.int, []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, [])
+  }),
+  methods: () => ({
+    addAll: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
+    containsValue: dart.definiteFunctionType(core.bool, [core.Object]),
+    containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
+    _get: dart.definiteFunctionType(core.String, [core.Object]),
+    _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    putIfAbsent: dart.definiteFunctionType(core.String, [core.String, VoidToString()]),
+    remove: dart.definiteFunctionType(core.String, [core.Object]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    forEach: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()]),
+    [_attr]: dart.definiteFunctionType(core.String, [core.String]),
+    [_matches]: dart.definiteFunctionType(core.bool, [core.String]),
+    [_strip]: dart.definiteFunctionType(core.String, [core.String]),
+    [_toCamelCase]: dart.definiteFunctionType(core.String, [core.String], {startUppercase: core.bool}),
+    [_toHyphenedName]: dart.definiteFunctionType(core.String, [core.String])
+  })
+});
+dart.defineExtensionMembers(html$._DataAttributeMap, [
+  'addAll',
+  'containsValue',
+  'containsKey',
+  '_get',
+  '_set',
+  'putIfAbsent',
+  'remove',
+  'clear',
+  'forEach',
+  'keys',
+  'values',
+  'length',
+  'isEmpty',
+  'isNotEmpty'
+]);
+html$.CanvasImageSource = class CanvasImageSource extends core.Object {};
+html$.WindowBase = class WindowBase extends core.Object {};
+html$.WindowBase[dart.implements] = () => [html$.EventTarget];
+html$.LocationBase = class LocationBase extends core.Object {};
+html$.HistoryBase = class HistoryBase extends core.Object {};
+html$.CssClassSet = class CssClassSet extends core.Object {};
+html$.CssClassSet[dart.implements] = () => [SetOfString()];
+const _addOrSubtractToBoxModel = Symbol('_addOrSubtractToBoxModel');
+html$.CssRect = class CssRect extends core.Object {
+  new(element) {
+    this[_element$] = element;
+  }
+  set height(newHeight) {
+    dart.throw(new core.UnsupportedError("Can only set height for content rect."));
+  }
+  set width(newWidth) {
+    dart.throw(new core.UnsupportedError("Can only set width for content rect."));
+  }
+  [_addOrSubtractToBoxModel](dimensions, augmentingMeasurement) {
+    let styles = this[_element$][dartx.getComputedStyle]();
+    let val = 0;
+    for (let measurement of dimensions) {
+      if (augmentingMeasurement == html$._MARGIN) {
+        val = dart.notNull(val) + dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`${augmentingMeasurement}-${measurement}`)).value);
+      }
+      if (augmentingMeasurement == html$._CONTENT) {
+        val = dart.notNull(val) - dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`${html$._PADDING}-${measurement}`)).value);
+      }
+      if (augmentingMeasurement != html$._MARGIN) {
+        val = dart.notNull(val) - dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`border-${measurement}-width`)).value);
+      }
+    }
+    return val;
+  }
+  get right() {
+    return dart.notNull(this.left) + dart.notNull(this.width);
+  }
+  get bottom() {
+    return dart.notNull(this.top) + dart.notNull(this.height);
+  }
+  toString() {
+    return dart.str`Rectangle (${this.left}, ${this.top}) ${this.width} x ${this.height}`;
+  }
+  ['=='](other) {
+    if (!RectangleOfnum().is(other)) return false;
+    return dart.equals(this.left, dart.dload(other, 'left')) && dart.equals(this.top, dart.dload(other, 'top')) && dart.equals(this.right, dart.dload(other, 'right')) && dart.equals(this.bottom, dart.dload(other, 'bottom'));
+  }
+  get hashCode() {
+    return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.right), dart.hashCode(this.bottom));
+  }
+  intersection(other) {
+    let x0 = math.max(core.num)(this.left, other[dartx.left]);
+    let x1 = math.min(core.num)(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+    if (dart.notNull(x0) <= dart.notNull(x1)) {
+      let y0 = math.max(core.num)(this.top, other[dartx.top]);
+      let y1 = math.min(core.num)(dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+      if (dart.notNull(y0) <= dart.notNull(y1)) {
+        return new (RectangleOfnum())(x0, y0, dart.notNull(x1) - dart.notNull(x0), dart.notNull(y1) - dart.notNull(y0));
+      }
+    }
+    return null;
+  }
+  intersects(other) {
+    return dart.notNull(this.left) <= dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]) && dart.notNull(other[dartx.left]) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(this.top) <= dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]) && dart.notNull(other[dartx.top]) <= dart.notNull(this.top) + dart.notNull(this.height);
+  }
+  boundingBox(other) {
+    let right = math.max(core.num)(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(other[dartx.left]) + dart.notNull(other[dartx.width]));
+    let bottom = math.max(core.num)(dart.notNull(this.top) + dart.notNull(this.height), dart.notNull(other[dartx.top]) + dart.notNull(other[dartx.height]));
+    let left = math.min(core.num)(this.left, other[dartx.left]);
+    let top = math.min(core.num)(this.top, other[dartx.top]);
+    return new (RectangleOfnum())(left, top, dart.notNull(right) - dart.notNull(left), dart.notNull(bottom) - dart.notNull(top));
+  }
+  containsRectangle(another) {
+    return dart.notNull(this.left) <= dart.notNull(another[dartx.left]) && dart.notNull(this.left) + dart.notNull(this.width) >= dart.notNull(another[dartx.left]) + dart.notNull(another[dartx.width]) && dart.notNull(this.top) <= dart.notNull(another[dartx.top]) && dart.notNull(this.top) + dart.notNull(this.height) >= dart.notNull(another[dartx.top]) + dart.notNull(another[dartx.height]);
+  }
+  containsPoint(another) {
+    return dart.notNull(another.x) >= dart.notNull(this.left) && dart.notNull(another.x) <= dart.notNull(this.left) + dart.notNull(this.width) && dart.notNull(another.y) >= dart.notNull(this.top) && dart.notNull(another.y) <= dart.notNull(this.top) + dart.notNull(this.height);
+  }
+  get topLeft() {
+    return new (PointOfnum())(this.left, this.top);
+  }
+  get topRight() {
+    return new (PointOfnum())(dart.notNull(this.left) + dart.notNull(this.width), this.top);
+  }
+  get bottomRight() {
+    return new (PointOfnum())(dart.notNull(this.left) + dart.notNull(this.width), dart.notNull(this.top) + dart.notNull(this.height));
+  }
+  get bottomLeft() {
+    return new (PointOfnum())(this.left, dart.notNull(this.top) + dart.notNull(this.height));
+  }
+};
+html$.CssRect[dart.implements] = () => [RectangleOfnum()];
+dart.setSignature(html$.CssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.CssRect, [html$.Element])}),
+  fields: () => ({[_element$]: html$.Element}),
+  getters: () => ({
+    right: dart.definiteFunctionType(core.num, []),
+    bottom: dart.definiteFunctionType(core.num, []),
+    topLeft: dart.definiteFunctionType(math.Point$(core.num), []),
+    topRight: dart.definiteFunctionType(math.Point$(core.num), []),
+    bottomRight: dart.definiteFunctionType(math.Point$(core.num), []),
+    bottomLeft: dart.definiteFunctionType(math.Point$(core.num), [])
+  }),
+  setters: () => ({
+    height: dart.definiteFunctionType(dart.void, [dart.dynamic]),
+    width: dart.definiteFunctionType(dart.void, [dart.dynamic])
+  }),
+  methods: () => ({
+    [_addOrSubtractToBoxModel]: dart.definiteFunctionType(core.num, [ListOfString(), core.String]),
+    intersection: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+    intersects: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
+    boundingBox: dart.definiteFunctionType(math.Rectangle$(core.num), [RectangleOfnum()]),
+    containsRectangle: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
+    containsPoint: dart.definiteFunctionType(core.bool, [PointOfnum()])
+  })
+});
+dart.defineExtensionMembers(html$.CssRect, [
+  'toString',
+  '==',
+  'intersection',
+  'intersects',
+  'boundingBox',
+  'containsRectangle',
+  'containsPoint',
+  'right',
+  'bottom',
+  'hashCode',
+  'topLeft',
+  'topRight',
+  'bottomRight',
+  'bottomLeft'
+]);
+html$._ContentCssRect = class _ContentCssRect extends html$.CssRect {
+  new(element) {
+    super.new(element);
+  }
+  get height() {
+    return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._CONTENT));
+  }
+  get width() {
+    return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._CONTENT));
+  }
+  set height(newHeight) {
+    if (html$.Dimension.is(newHeight)) {
+      if (dart.test(dart.dsend(dart.dload(newHeight, 'value'), '<', 0))) newHeight = new html$.Dimension.px(0);
+      this[_element$][dartx.style][dartx.height] = dart.toString(newHeight);
+    } else if (typeof newHeight == 'number') {
+      if (dart.test(dart.dsend(newHeight, '<', 0))) newHeight = 0;
+      this[_element$][dartx.style][dartx.height] = dart.str`${newHeight}px`;
+    } else {
+      dart.throw(new core.ArgumentError("newHeight is not a Dimension or num"));
+    }
+  }
+  set width(newWidth) {
+    if (html$.Dimension.is(newWidth)) {
+      if (dart.test(dart.dsend(dart.dload(newWidth, 'value'), '<', 0))) newWidth = new html$.Dimension.px(0);
+      this[_element$][dartx.style][dartx.width] = dart.toString(newWidth);
+    } else if (typeof newWidth == 'number') {
+      if (dart.test(dart.dsend(newWidth, '<', 0))) newWidth = 0;
+      this[_element$][dartx.style][dartx.width] = dart.str`${newWidth}px`;
+    } else {
+      dart.throw(new core.ArgumentError("newWidth is not a Dimension or num"));
+    }
+  }
+  get left() {
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._CONTENT));
+  }
+  get top() {
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._CONTENT));
+  }
+};
+dart.setSignature(html$._ContentCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ContentCssRect, [html$.Element])}),
+  getters: () => ({
+    height: dart.definiteFunctionType(core.num, []),
+    width: dart.definiteFunctionType(core.num, []),
+    left: dart.definiteFunctionType(core.num, []),
+    top: dart.definiteFunctionType(core.num, [])
+  })
+});
+dart.defineExtensionMembers(html$._ContentCssRect, ['height', 'width', 'left', 'top']);
+const _elementList = Symbol('_elementList');
+html$._ContentCssListRect = class _ContentCssListRect extends html$._ContentCssRect {
+  new(elementList) {
+    this[_elementList] = null;
+    super.new(elementList[dartx.first]);
+    this[_elementList] = elementList;
+  }
+  set height(newHeight) {
+    this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].height = newHeight, ElementTovoid$()));
+  }
+  get height() {
+    return super.height;
+  }
+  set width(newWidth) {
+    this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].width = newWidth, ElementTovoid$()));
+  }
+  get width() {
+    return super.width;
+  }
+};
+dart.setSignature(html$._ContentCssListRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ContentCssListRect, [ListOfElement()])}),
+  fields: () => ({[_elementList]: ListOfElement()})
+});
+html$._PaddingCssRect = class _PaddingCssRect extends html$.CssRect {
+  new(element) {
+    super.new(html$.Element._check(element));
+  }
+  get height() {
+    return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._PADDING));
+  }
+  set height(value) {
+    super.height = value;
+  }
+  get width() {
+    return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._PADDING));
+  }
+  set width(value) {
+    super.width = value;
+  }
+  get left() {
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._PADDING));
+  }
+  get top() {
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._PADDING));
+  }
+};
+dart.setSignature(html$._PaddingCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._PaddingCssRect, [dart.dynamic])}),
+  getters: () => ({
+    height: dart.definiteFunctionType(core.num, []),
+    width: dart.definiteFunctionType(core.num, []),
+    left: dart.definiteFunctionType(core.num, []),
+    top: dart.definiteFunctionType(core.num, [])
+  })
+});
+dart.defineExtensionMembers(html$._PaddingCssRect, ['height', 'width', 'left', 'top']);
+html$._BorderCssRect = class _BorderCssRect extends html$.CssRect {
+  new(element) {
+    super.new(html$.Element._check(element));
+  }
+  get height() {
+    return this[_element$][dartx.offsetHeight];
+  }
+  set height(value) {
+    super.height = value;
+  }
+  get width() {
+    return this[_element$][dartx.offsetWidth];
+  }
+  set width(value) {
+    super.width = value;
+  }
+  get left() {
+    return this[_element$][dartx.getBoundingClientRect]()[dartx.left];
+  }
+  get top() {
+    return this[_element$][dartx.getBoundingClientRect]()[dartx.top];
+  }
+};
+dart.setSignature(html$._BorderCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._BorderCssRect, [dart.dynamic])}),
+  getters: () => ({
+    height: dart.definiteFunctionType(core.num, []),
+    width: dart.definiteFunctionType(core.num, []),
+    left: dart.definiteFunctionType(core.num, []),
+    top: dart.definiteFunctionType(core.num, [])
+  })
+});
+dart.defineExtensionMembers(html$._BorderCssRect, ['height', 'width', 'left', 'top']);
+html$._MarginCssRect = class _MarginCssRect extends html$.CssRect {
+  new(element) {
+    super.new(html$.Element._check(element));
+  }
+  get height() {
+    return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._MARGIN));
+  }
+  set height(value) {
+    super.height = value;
+  }
+  get width() {
+    return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._MARGIN));
+  }
+  set width(value) {
+    super.width = value;
+  }
+  get left() {
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._MARGIN));
+  }
+  get top() {
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._MARGIN));
+  }
+};
+dart.setSignature(html$._MarginCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._MarginCssRect, [dart.dynamic])}),
+  getters: () => ({
+    height: dart.definiteFunctionType(core.num, []),
+    width: dart.definiteFunctionType(core.num, []),
+    left: dart.definiteFunctionType(core.num, []),
+    top: dart.definiteFunctionType(core.num, [])
+  })
+});
+dart.defineExtensionMembers(html$._MarginCssRect, ['height', 'width', 'left', 'top']);
+dart.defineLazy(html$, {
+  get _HEIGHT() {
+    return JSArrayOfString().of(['top', 'bottom']);
+  }
+});
+dart.defineLazy(html$, {
+  get _WIDTH() {
+    return JSArrayOfString().of(['right', 'left']);
+  }
+});
+html$._CONTENT = 'content';
+html$._PADDING = 'padding';
+html$._MARGIN = 'margin';
+const _sets = Symbol('_sets');
+const _validateToken = Symbol('_validateToken');
+html_common.CssClassSetImpl = class CssClassSetImpl extends core.Object {
+  [_validateToken](value) {
+    if (dart.test(html_common.CssClassSetImpl._validTokenRE.hasMatch(value))) return value;
+    dart.throw(new core.ArgumentError.value(value, 'value', 'Not a valid class token'));
+  }
+  toString() {
+    return this.readClasses().join(' ');
+  }
+  toggle(value, shouldAdd) {
+    if (shouldAdd === void 0) shouldAdd = null;
+    this[_validateToken](value);
+    let s = this.readClasses();
+    let result = false;
+    if (shouldAdd == null) shouldAdd = !dart.test(s.contains(value));
+    if (dart.test(shouldAdd)) {
+      s.add(value);
+      result = true;
+    } else {
+      s.remove(value);
+    }
+    this.writeClasses(s);
+    return result;
+  }
+  get frozen() {
+    return false;
+  }
+  get iterator() {
+    return this.readClasses().iterator;
+  }
+  [Symbol.iterator]() {
+    return new dart.JsIterator(this.iterator);
+  }
+  forEach(f) {
+    this.readClasses().forEach(f);
+  }
+  join(separator) {
+    if (separator === void 0) separator = "";
+    return this.readClasses().join(separator);
+  }
+  map(T) {
+    return f => {
+      return this.readClasses().map(T)(f);
+    };
+  }
+  where(f) {
+    return this.readClasses().where(f);
+  }
+  expand(T) {
+    return f => {
+      return this.readClasses().expand(T)(f);
+    };
+  }
+  every(f) {
+    return this.readClasses().every(f);
+  }
+  any(f) {
+    return this.readClasses().any(f);
+  }
+  get isEmpty() {
+    return this.readClasses().isEmpty;
+  }
+  get isNotEmpty() {
+    return this.readClasses().isNotEmpty;
+  }
+  get length() {
+    return this.readClasses().length;
+  }
+  reduce(combine) {
+    return this.readClasses().reduce(combine);
+  }
+  fold(T) {
+    return (initialValue, combine) => {
+      return this.readClasses().fold(T)(initialValue, combine);
+    };
+  }
+  contains(value) {
+    if (!(typeof value == 'string')) return false;
+    this[_validateToken](core.String._check(value));
+    return this.readClasses().contains(value);
+  }
+  lookup(value) {
+    return core.String._check(dart.test(this.contains(value)) ? value : null);
+  }
+  add(value) {
+    this[_validateToken](value);
+    return core.bool._check(this.modify(dart.fn(s => s.add(value), SetOfStringTobool())));
+  }
+  remove(value) {
+    this[_validateToken](core.String._check(value));
+    if (!(typeof value == 'string')) return false;
+    let s = this.readClasses();
+    let result = s.remove(value);
+    this.writeClasses(s);
+    return result;
+  }
+  addAll(iterable) {
+    this.modify(dart.fn(s => s.addAll(iterable[dartx.map](core.String)(dart.bind(this, _validateToken))), SetOfStringTovoid()));
+  }
+  removeAll(iterable) {
+    this.modify(dart.fn(s => s.removeAll(iterable), SetOfStringTovoid()));
+  }
+  toggleAll(iterable, shouldAdd) {
+    if (shouldAdd === void 0) shouldAdd = null;
+    iterable[dartx.forEach](dart.fn(e => this.toggle(e, shouldAdd), StringTobool$()));
+  }
+  retainAll(iterable) {
+    this.modify(dart.fn(s => s.retainAll(iterable), SetOfStringTovoid()));
+  }
+  removeWhere(test) {
+    this.modify(dart.fn(s => s.removeWhere(test), SetOfStringTovoid()));
+  }
+  retainWhere(test) {
+    this.modify(dart.fn(s => s.retainWhere(test), SetOfStringTovoid()));
+  }
+  containsAll(collection) {
+    return this.readClasses().containsAll(collection);
+  }
+  intersection(other) {
+    return this.readClasses().intersection(other);
+  }
+  union(other) {
+    return this.readClasses().union(other);
+  }
+  difference(other) {
+    return this.readClasses().difference(other);
+  }
+  get first() {
+    return this.readClasses().first;
+  }
+  get last() {
+    return this.readClasses().last;
+  }
+  get single() {
+    return this.readClasses().single;
+  }
+  toList(opts) {
+    let growable = opts && 'growable' in opts ? opts.growable : true;
+    return this.readClasses().toList({growable: growable});
+  }
+  toSet() {
+    return this.readClasses().toSet();
+  }
+  take(n) {
+    return this.readClasses().take(n);
+  }
+  takeWhile(test) {
+    return this.readClasses().takeWhile(test);
+  }
+  skip(n) {
+    return this.readClasses().skip(n);
+  }
+  skipWhile(test) {
+    return this.readClasses().skipWhile(test);
+  }
+  firstWhere(test, opts) {
+    let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+    return this.readClasses().firstWhere(test, {orElse: orElse});
+  }
+  lastWhere(test, opts) {
+    let orElse = opts && 'orElse' in opts ? opts.orElse : null;
+    return this.readClasses().lastWhere(test, {orElse: orElse});
+  }
+  singleWhere(test) {
+    return this.readClasses().singleWhere(test);
+  }
+  elementAt(index) {
+    return this.readClasses().elementAt(index);
+  }
+  clear() {
+    this.modify(dart.fn(s => s.clear(), SetOfStringTovoid()));
+  }
+  modify(f) {
+    let s = this.readClasses();
+    let ret = f(s);
+    this.writeClasses(s);
+    return ret;
+  }
+};
+html_common.CssClassSetImpl[dart.implements] = () => [html$.CssClassSet];
+dart.setSignature(html_common.CssClassSetImpl, {
+  getters: () => ({
+    frozen: dart.definiteFunctionType(core.bool, []),
+    iterator: dart.definiteFunctionType(core.Iterator$(core.String), []),
+    isEmpty: dart.definiteFunctionType(core.bool, []),
+    isNotEmpty: dart.definiteFunctionType(core.bool, []),
+    length: dart.definiteFunctionType(core.int, []),
+    first: dart.definiteFunctionType(core.String, []),
+    last: dart.definiteFunctionType(core.String, []),
+    single: dart.definiteFunctionType(core.String, [])
+  }),
+  methods: () => ({
+    [_validateToken]: dart.definiteFunctionType(core.String, [core.String]),
+    toggle: dart.definiteFunctionType(core.bool, [core.String], [core.bool]),
+    forEach: dart.definiteFunctionType(dart.void, [StringTovoid()]),
+    join: dart.definiteFunctionType(core.String, [], [core.String]),
+    map: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(T, [core.String])]]),
+    where: dart.definiteFunctionType(core.Iterable$(core.String), [StringTobool()]),
+    expand: dart.definiteFunctionType(T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [core.String])]]),
+    every: dart.definiteFunctionType(core.bool, [StringTobool()]),
+    any: dart.definiteFunctionType(core.bool, [StringTobool()]),
+    reduce: dart.definiteFunctionType(core.String, [StringAndStringToString()]),
+    fold: dart.definiteFunctionType(T => [T, [T, dart.functionType(T, [T, core.String])]]),
+    contains: dart.definiteFunctionType(core.bool, [core.Object]),
+    lookup: dart.definiteFunctionType(core.String, [core.Object]),
+    add: dart.definiteFunctionType(core.bool, [core.String]),
+    remove: dart.definiteFunctionType(core.bool, [core.Object]),
+    addAll: dart.definiteFunctionType(dart.void, [IterableOfString()]),
+    removeAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
+    toggleAll: dart.definiteFunctionType(dart.void, [IterableOfString()], [core.bool]),
+    retainAll: dart.definiteFunctionType(dart.void, [IterableOfObject()]),
+    removeWhere: dart.definiteFunctionType(dart.void, [StringTobool()]),
+    retainWhere: dart.definiteFunctionType(dart.void, [StringTobool()]),
+    containsAll: dart.definiteFunctionType(core.bool, [IterableOfObject()]),
+    intersection: dart.definiteFunctionType(core.Set$(core.String), [SetOfObject()]),
+    union: dart.definiteFunctionType(core.Set$(core.String), [SetOfString()]),
+    difference: dart.definiteFunctionType(core.Set$(core.String), [SetOfObject()]),
+    toList: dart.definiteFunctionType(core.List$(core.String), [], {growable: core.bool}),
+    toSet: dart.definiteFunctionType(core.Set$(core.String), []),
+    take: dart.definiteFunctionType(core.Iterable$(core.String), [core.int]),
+    takeWhile: dart.definiteFunctionType(core.Iterable$(core.String), [StringTobool()]),
+    skip: dart.definiteFunctionType(core.Iterable$(core.String), [core.int]),
+    skipWhile: dart.definiteFunctionType(core.Iterable$(core.String), [StringTobool()]),
+    firstWhere: dart.definiteFunctionType(core.String, [StringTobool()], {orElse: VoidToString()}),
+    lastWhere: dart.definiteFunctionType(core.String, [StringTobool()], {orElse: VoidToString()}),
+    singleWhere: dart.definiteFunctionType(core.String, [StringTobool()]),
+    elementAt: dart.definiteFunctionType(core.String, [core.int]),
+    clear: dart.definiteFunctionType(dart.void, []),
+    modify: dart.definiteFunctionType(dart.dynamic, [SetOfStringTodynamic()])
+  }),
+  sfields: () => ({_validTokenRE: core.RegExp})
+});
+dart.defineExtensionMembers(html_common.CssClassSetImpl, [
+  'toString',
+  'forEach',
+  'join',
+  'map',
+  'where',
+  'expand',
+  'every',
+  'any',
+  'reduce',
+  'fold',
+  'contains',
+  'toList',
+  'toSet',
+  'take',
+  'takeWhile',
+  'skip',
+  'skipWhile',
+  'firstWhere',
+  'lastWhere',
+  'singleWhere',
+  'elementAt',
+  'iterator',
+  'isEmpty',
+  'isNotEmpty',
+  'length',
+  'first',
+  'last',
+  'single'
+]);
+dart.defineLazy(html_common.CssClassSetImpl, {
+  get _validTokenRE() {
+    return core.RegExp.new('^\\S+$');
+  }
+});
+html$._MultiElementCssClassSet = class _MultiElementCssClassSet extends html_common.CssClassSetImpl {
+  static new(elements) {
+    return new html$._MultiElementCssClassSet._(elements, ListOfCssClassSetImpl()._check(elements[dartx.map](html$.CssClassSet)(dart.fn(e => e[dartx.classes], ElementToCssClassSet()))[dartx.toList]()));
+  }
+  _(elementIterable, sets) {
+    this[_elementIterable] = elementIterable;
+    this[_sets] = sets;
+  }
+  readClasses() {
+    let s = LinkedHashSetOfString().new();
+    this[_sets][dartx.forEach](dart.fn(e => s.addAll(e.readClasses()), CssClassSetImplTovoid()));
+    return s;
+  }
+  writeClasses(s) {
+    let classes = s.join(' ');
+    for (let e of this[_elementIterable]) {
+      e[dartx.className] = classes;
+    }
+  }
+  modify(f) {
+    this[_sets][dartx.forEach](dart.fn(e => e.modify(f), CssClassSetImplTovoid()));
+  }
+  toggle(value, shouldAdd) {
+    if (shouldAdd === void 0) shouldAdd = null;
+    return this[_sets][dartx.fold](core.bool)(false, dart.fn((changed, e) => dart.test(e.toggle(value, shouldAdd)) || dart.test(changed), boolAndCssClassSetImplTobool()));
+  }
+  remove(value) {
+    return this[_sets][dartx.fold](core.bool)(false, dart.fn((changed, e) => dart.test(e.remove(value)) || dart.test(changed), boolAndCssClassSetImplTobool()));
+  }
+};
+dart.defineNamedConstructor(html$._MultiElementCssClassSet, '_');
+dart.setSignature(html$._MultiElementCssClassSet, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$._MultiElementCssClassSet, [IterableOfElement()]),
+    _: dart.definiteFunctionType(html$._MultiElementCssClassSet, [IterableOfElement(), ListOfCssClassSetImpl()])
+  }),
+  fields: () => ({
+    [_elementIterable]: IterableOfElement(),
+    [_sets]: ListOfCssClassSetImpl()
+  }),
+  methods: () => ({
+    readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
+    writeClasses: dart.definiteFunctionType(dart.void, [SetOfString()])
+  })
+});
+html$._ElementCssClassSet = class _ElementCssClassSet extends html_common.CssClassSetImpl {
+  new(element) {
+    this[_element$] = element;
+  }
+  readClasses() {
+    let s = LinkedHashSetOfString().new();
+    let classname = this[_element$][dartx.className];
+    for (let name of classname[dartx.split](' ')) {
+      let trimmed = name[dartx.trim]();
+      if (!dart.test(trimmed[dartx.isEmpty])) {
+        s.add(trimmed);
+      }
+    }
+    return s;
+  }
+  writeClasses(s) {
+    this[_element$][dartx.className] = s.join(' ');
+  }
+  get length() {
+    return html$._ElementCssClassSet._classListLength(html$._ElementCssClassSet._classListOf(this[_element$]));
+  }
+  get isEmpty() {
+    return this.length == 0;
+  }
+  get isNotEmpty() {
+    return this.length != 0;
+  }
+  clear() {
+    this[_element$][dartx.className] = '';
+  }
+  contains(value) {
+    return html$._ElementCssClassSet._contains(this[_element$], value);
+  }
+  add(value) {
+    return html$._ElementCssClassSet._add(this[_element$], value);
+  }
+  remove(value) {
+    return typeof value == 'string' && dart.test(html$._ElementCssClassSet._remove(this[_element$], value));
+  }
+  toggle(value, shouldAdd) {
+    if (shouldAdd === void 0) shouldAdd = null;
+    return html$._ElementCssClassSet._toggle(this[_element$], value, shouldAdd);
+  }
+  addAll(iterable) {
+    html$._ElementCssClassSet._addAll(this[_element$], iterable);
+  }
+  removeAll(iterable) {
+    html$._ElementCssClassSet._removeAll(this[_element$], IterableOfString()._check(iterable));
+  }
+  retainAll(iterable) {
+    html$._ElementCssClassSet._removeWhere(this[_element$], dart.bind(iterable[dartx.toSet](), 'contains'), false);
+  }
+  removeWhere(test) {
+    html$._ElementCssClassSet._removeWhere(this[_element$], test, true);
+  }
+  retainWhere(test) {
+    html$._ElementCssClassSet._removeWhere(this[_element$], test, false);
+  }
+  static _contains(_element, value) {
+    return typeof value == 'string' && dart.test(html$._ElementCssClassSet._classListContains(html$._ElementCssClassSet._classListOf(_element), value));
+  }
+  static _add(_element, value) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    let added = !dart.test(html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value));
+    html$._ElementCssClassSet._classListAdd(list, value);
+    return added;
+  }
+  static _remove(_element, value) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    let removed = html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value);
+    html$._ElementCssClassSet._classListRemove(list, value);
+    return removed;
+  }
+  static _toggle(_element, value, shouldAdd) {
+    return shouldAdd == null ? html$._ElementCssClassSet._toggleDefault(_element, value) : html$._ElementCssClassSet._toggleOnOff(_element, value, shouldAdd);
+  }
+  static _toggleDefault(_element, value) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    return html$._ElementCssClassSet._classListToggle1(list, value);
+  }
+  static _toggleOnOff(_element, value, shouldAdd) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    if (dart.test(shouldAdd)) {
+      html$._ElementCssClassSet._classListAdd(list, value);
+      return true;
+    } else {
+      html$._ElementCssClassSet._classListRemove(list, value);
+      return false;
+    }
+  }
+  static _addAll(_element, iterable) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    for (let value of iterable) {
+      html$._ElementCssClassSet._classListAdd(list, value);
+    }
+  }
+  static _removeAll(_element, iterable) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    for (let value of iterable) {
+      html$._ElementCssClassSet._classListRemove(list, value);
+    }
+  }
+  static _removeWhere(_element, test, doRemove) {
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    let i = 0;
+    while (i < dart.notNull(html$._ElementCssClassSet._classListLength(list))) {
+      let item = list[dartx.item](i);
+      if (doRemove == test(item)) {
+        html$._ElementCssClassSet._classListRemove(list, item);
+      } else {
+        ++i;
+      }
+    }
+  }
+  static _classListOf(e) {
+    return e.classList;
+  }
+  static _classListLength(list) {
+    return list.length;
+  }
+  static _classListContains(list, value) {
+    return list.contains(value);
+  }
+  static _classListContainsBeforeAddOrRemove(list, value) {
+    return list.contains(value);
+  }
+  static _classListAdd(list, value) {
+    list.add(value);
+  }
+  static _classListRemove(list, value) {
+    list.remove(value);
+  }
+  static _classListToggle1(list, value) {
+    return list.toggle(value);
+  }
+  static _classListToggle2(list, value, shouldAdd) {
+    return list.toggle(value, shouldAdd);
+  }
+};
+dart.setSignature(html$._ElementCssClassSet, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ElementCssClassSet, [html$.Element])}),
+  fields: () => ({[_element$]: html$.Element}),
+  methods: () => ({
+    readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
+    writeClasses: dart.definiteFunctionType(dart.void, [SetOfString()])
+  }),
+  statics: () => ({
+    _contains: dart.definiteFunctionType(core.bool, [html$.Element, core.Object]),
+    _add: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
+    _remove: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
+    _toggle: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.bool]),
+    _toggleDefault: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
+    _toggleOnOff: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.bool]),
+    _addAll: dart.definiteFunctionType(dart.void, [html$.Element, IterableOfString()]),
+    _removeAll: dart.definiteFunctionType(dart.void, [html$.Element, IterableOfString()]),
+    _removeWhere: dart.definiteFunctionType(dart.void, [html$.Element, StringTobool(), core.bool]),
+    _classListOf: dart.definiteFunctionType(html$.DomTokenList, [html$.Element]),
+    _classListLength: dart.definiteFunctionType(core.int, [html$.DomTokenList]),
+    _classListContains: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
+    _classListContainsBeforeAddOrRemove: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
+    _classListAdd: dart.definiteFunctionType(dart.void, [html$.DomTokenList, core.String]),
+    _classListRemove: dart.definiteFunctionType(dart.void, [html$.DomTokenList, core.String]),
+    _classListToggle1: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
+    _classListToggle2: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String, core.bool])
+  }),
+  names: ['_contains', '_add', '_remove', '_toggle', '_toggleDefault', '_toggleOnOff', '_addAll', '_removeAll', '_removeWhere', '_classListOf', '_classListLength', '_classListContains', '_classListContainsBeforeAddOrRemove', '_classListAdd', '_classListRemove', '_classListToggle1', '_classListToggle2']
+});
+dart.defineExtensionMembers(html$._ElementCssClassSet, ['contains', 'length', 'isEmpty', 'isNotEmpty']);
+const _unit = Symbol('_unit');
+html$.Dimension = class Dimension extends core.Object {
+  percent(value) {
+    this[_value$2] = value;
+    this[_unit] = '%';
+  }
+  px(value) {
+    this[_value$2] = value;
+    this[_unit] = 'px';
+  }
+  pc(value) {
+    this[_value$2] = value;
+    this[_unit] = 'pc';
+  }
+  pt(value) {
+    this[_value$2] = value;
+    this[_unit] = 'pt';
+  }
+  inch(value) {
+    this[_value$2] = value;
+    this[_unit] = 'in';
+  }
+  cm(value) {
+    this[_value$2] = value;
+    this[_unit] = 'cm';
+  }
+  mm(value) {
+    this[_value$2] = value;
+    this[_unit] = 'mm';
+  }
+  em(value) {
+    this[_value$2] = value;
+    this[_unit] = 'em';
+  }
+  ex(value) {
+    this[_value$2] = value;
+    this[_unit] = 'ex';
+  }
+  css(cssValue) {
+    this[_value$2] = null;
+    this[_unit] = null;
+    if (cssValue == '') cssValue = '0px';
+    if (dart.test(cssValue[dartx.endsWith]('%'))) {
+      this[_unit] = '%';
+    } else {
+      this[_unit] = cssValue[dartx.substring](dart.notNull(cssValue[dartx.length]) - 2);
+    }
+    if (dart.test(cssValue[dartx.contains]('.'))) {
+      this[_value$2] = core.double.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
+    } else {
+      this[_value$2] = core.int.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
+    }
+  }
+  toString() {
+    return dart.str`${this[_value$2]}${this[_unit]}`;
+  }
+  get value() {
+    return this[_value$2];
+  }
+};
+dart.defineNamedConstructor(html$.Dimension, 'percent');
+dart.defineNamedConstructor(html$.Dimension, 'px');
+dart.defineNamedConstructor(html$.Dimension, 'pc');
+dart.defineNamedConstructor(html$.Dimension, 'pt');
+dart.defineNamedConstructor(html$.Dimension, 'inch');
+dart.defineNamedConstructor(html$.Dimension, 'cm');
+dart.defineNamedConstructor(html$.Dimension, 'mm');
+dart.defineNamedConstructor(html$.Dimension, 'em');
+dart.defineNamedConstructor(html$.Dimension, 'ex');
+dart.defineNamedConstructor(html$.Dimension, 'css');
+dart.setSignature(html$.Dimension, {
+  constructors: () => ({
+    percent: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    px: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    pc: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    pt: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    inch: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    cm: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    mm: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    em: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    ex: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    css: dart.definiteFunctionType(html$.Dimension, [core.String])
+  }),
+  fields: () => ({
+    [_value$2]: core.num,
+    [_unit]: core.String
+  }),
+  getters: () => ({value: dart.definiteFunctionType(core.num, [])})
+});
+html$.EventListener = dart.typedef('EventListener', () => dart.functionType(dart.dynamic, [html$.Event]));
+html$.EventStreamProvider$ = dart.generic(T => {
+  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
+  let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
+  let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
+  class EventStreamProvider extends core.Object {
+    new(eventType) {
+      this[_eventType] = eventType;
+    }
+    forTarget(e, opts) {
+      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+      return new (_EventStreamOfT())(e, this[_eventType], useCapture);
+    }
+    forElement(e, opts) {
+      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+      return new (_ElementEventStreamImplOfT())(e, this[_eventType], useCapture);
+    }
+    [_forElementList](e, opts) {
+      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+      return new (_ElementListEventStreamImplOfT())(e, this[_eventType], useCapture);
+    }
+    getEventType(target) {
+      return this[_eventType];
+    }
+  }
+  dart.addTypeTests(EventStreamProvider);
+  dart.setSignature(EventStreamProvider, {
+    constructors: () => ({new: dart.definiteFunctionType(html$.EventStreamProvider$(T), [core.String])}),
+    fields: () => ({[_eventType]: core.String}),
+    methods: () => ({
+      forTarget: dart.definiteFunctionType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}),
+      forElement: dart.definiteFunctionType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}),
+      [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
+      getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])
+    })
+  });
+  return EventStreamProvider;
+});
+html$.EventStreamProvider = EventStreamProvider();
+html$.ElementStream$ = dart.generic(T => {
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class ElementStream extends core.Object {}
+  dart.addTypeTests(ElementStream);
+  ElementStream[dart.implements] = () => [StreamOfT()];
+  return ElementStream;
+});
+html$.ElementStream = ElementStream();
+const _target$0 = Symbol('_target');
+const _useCapture = Symbol('_useCapture');
+html$._EventStream$ = dart.generic(T => {
+  let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _EventStream extends async.Stream$(T) {
+    new(target, eventType, useCapture) {
+      this[_target$0] = target;
+      this[_eventType] = eventType;
+      this[_useCapture] = useCapture;
+      super.new();
+    }
+    asBroadcastStream(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      return this;
+    }
+    get isBroadcast() {
+      return true;
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      return new (_EventStreamSubscriptionOfT())(this[_target$0], this[_eventType], onData, this[_useCapture]);
+    }
+  }
+  dart.setSignature(_EventStream, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._EventStream$(T), [html$.EventTarget, core.String, core.bool])}),
+    fields: () => ({
+      [_target$0]: html$.EventTarget,
+      [_eventType]: core.String,
+      [_useCapture]: core.bool
+    }),
+    methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
+  });
+  return _EventStream;
+});
+html$._EventStream = _EventStream();
+html$._matchesWithAncestors = function(event, selector) {
+  let target = event[dartx.target];
+  return html$.Element.is(target) ? target[dartx.matchesWithAncestors](selector) : false;
+};
+dart.fn(html$._matchesWithAncestors, EventAndStringTobool());
+html$._ElementEventStreamImpl$ = dart.generic(T => {
+  let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
+  let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html$.ElementStream$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T, [T])))();
+  let TTobool = () => (TTobool = dart.constFn(dart.definiteFunctionType(core.bool, [T])))();
+  class _ElementEventStreamImpl extends html$._EventStream$(T) {
+    new(target, eventType, useCapture) {
+      super.new(html$.EventTarget._check(target), core.String._check(eventType), core.bool._check(useCapture));
+    }
+    matches(selector) {
+      return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
+        e[_selector] = selector;
+        return e;
+      }, TToT()));
+    }
+    capture(onData) {
+      return new (_EventStreamSubscriptionOfT())(this[_target$0], this[_eventType], onData, true);
+    }
+  }
+  _ElementEventStreamImpl[dart.implements] = () => [ElementStreamOfT()];
+  dart.setSignature(_ElementEventStreamImpl, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._ElementEventStreamImpl$(T), [dart.dynamic, dart.dynamic, dart.dynamic])}),
+    methods: () => ({
+      matches: dart.definiteFunctionType(async.Stream$(T), [core.String]),
+      capture: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()])
+    })
+  });
+  return _ElementEventStreamImpl;
+});
+html$._ElementEventStreamImpl = _ElementEventStreamImpl();
+const _targetList = Symbol('_targetList');
+html$._ElementListEventStreamImpl$ = dart.generic(T => {
+  let _StreamPoolOfT = () => (_StreamPoolOfT = dart.constFn(html$._StreamPool$(T)))();
+  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
+  let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html$.ElementStream$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
+  let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T, [T])))();
+  let TTobool = () => (TTobool = dart.constFn(dart.definiteFunctionType(core.bool, [T])))();
+  class _ElementListEventStreamImpl extends async.Stream$(T) {
+    new(targetList, eventType, useCapture) {
+      this[_targetList] = targetList;
+      this[_eventType] = eventType;
+      this[_useCapture] = useCapture;
+      super.new();
+    }
+    matches(selector) {
+      return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
+        e[_selector] = selector;
+        return e;
+      }, TToT()));
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      let pool = new (_StreamPoolOfT()).broadcast();
+      for (let target of this[_targetList]) {
+        pool.add(new (_EventStreamOfT())(target, this[_eventType], this[_useCapture]));
+      }
+      return pool.stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    }
+    capture(onData) {
+      let pool = new (_StreamPoolOfT()).broadcast();
+      for (let target of this[_targetList]) {
+        pool.add(new (_EventStreamOfT())(target, this[_eventType], true));
+      }
+      return pool.stream.listen(onData);
+    }
+    asBroadcastStream(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      return this;
+    }
+    get isBroadcast() {
+      return true;
+    }
+  }
+  _ElementListEventStreamImpl[dart.implements] = () => [ElementStreamOfT()];
+  dart.setSignature(_ElementListEventStreamImpl, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._ElementListEventStreamImpl$(T), [IterableOfElement(), core.String, core.bool])}),
+    fields: () => ({
+      [_targetList]: IterableOfElement(),
+      [_useCapture]: core.bool,
+      [_eventType]: core.String
+    }),
+    methods: () => ({
+      matches: dart.definiteFunctionType(async.Stream$(T), [core.String]),
+      listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+      capture: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()])
+    })
+  });
+  return _ElementListEventStreamImpl;
+});
+html$._ElementListEventStreamImpl = _ElementListEventStreamImpl();
+html$._EventListener$ = dart.generic(T => {
+  const _EventListener = dart.typedef('_EventListener', () => dart.functionType(dart.dynamic, [T]));
+  return _EventListener;
+});
+html$._EventListener = _EventListener();
+const _onData$0 = Symbol('_onData');
+const _pauseCount$0 = Symbol('_pauseCount');
+const _tryResume = Symbol('_tryResume');
+const _canceled = Symbol('_canceled');
+const _unlisten = Symbol('_unlisten');
+html$._EventStreamSubscription$ = dart.generic(T => {
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  class _EventStreamSubscription extends async.StreamSubscription$(T) {
+    new(target, eventType, onData, useCapture) {
+      this[_target$0] = target;
+      this[_eventType] = eventType;
+      this[_useCapture] = useCapture;
+      this[_onData$0] = onData == null ? null : html$._wrapZone(html$.Event, dart.dynamic)(dart.fn(e => dart.dcall(onData, e), EventTodynamic()));
+      this[_pauseCount$0] = 0;
+      this[_tryResume]();
+    }
+    cancel() {
+      if (dart.test(this[_canceled])) return null;
+      this[_unlisten]();
+      this[_target$0] = null;
+      this[_onData$0] = null;
+      return null;
+    }
+    get [_canceled]() {
+      return this[_target$0] == null;
+    }
+    onData(handleData) {
+      if (dart.test(this[_canceled])) {
+        dart.throw(new core.StateError("Subscription has been canceled."));
+      }
+      this[_unlisten]();
+      this[_onData$0] = html$._wrapZone(html$.Event, dart.dynamic)(_wrapZoneCallbackOfEvent$dynamic()._check(handleData));
+      this[_tryResume]();
+    }
+    onError(handleError) {}
+    onDone(handleDone) {}
+    pause(resumeSignal) {
+      if (resumeSignal === void 0) resumeSignal = null;
+      if (dart.test(this[_canceled])) return;
+      this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) + 1;
+      this[_unlisten]();
+      if (resumeSignal != null) {
+        resumeSignal.whenComplete(dart.bind(this, 'resume'));
+      }
+    }
+    get isPaused() {
+      return dart.notNull(this[_pauseCount$0]) > 0;
+    }
+    resume() {
+      if (dart.test(this[_canceled]) || !dart.test(this.isPaused)) return;
+      this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) - 1;
+      this[_tryResume]();
+    }
+    [_tryResume]() {
+      if (this[_onData$0] != null && !dart.test(this.isPaused)) {
+        this[_target$0][dartx.addEventListener](this[_eventType], this[_onData$0], this[_useCapture]);
+      }
+    }
+    [_unlisten]() {
+      if (this[_onData$0] != null) {
+        this[_target$0][dartx.removeEventListener](this[_eventType], this[_onData$0], this[_useCapture]);
+      }
+    }
+    asFuture(E) {
+      return futureValue => {
+        if (futureValue === void 0) futureValue = null;
+        let completer = async.Completer$(E).new();
+        return completer.future;
+      };
+    }
+  }
+  dart.setSignature(_EventStreamSubscription, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._EventStreamSubscription$(T), [html$.EventTarget, core.String, TTovoid(), core.bool])}),
+    fields: () => ({
+      [_pauseCount$0]: core.int,
+      [_target$0]: html$.EventTarget,
+      [_eventType]: core.String,
+      [_onData$0]: html$.EventListener,
+      [_useCapture]: core.bool
+    }),
+    getters: () => ({
+      [_canceled]: dart.definiteFunctionType(core.bool, []),
+      isPaused: dart.definiteFunctionType(core.bool, [])
+    }),
+    methods: () => ({
+      cancel: dart.definiteFunctionType(async.Future, []),
+      onData: dart.definiteFunctionType(dart.void, [TTovoid()]),
+      onError: dart.definiteFunctionType(dart.void, [core.Function]),
+      onDone: dart.definiteFunctionType(dart.void, [VoidTovoid()]),
+      pause: dart.definiteFunctionType(dart.void, [], [async.Future]),
+      resume: dart.definiteFunctionType(dart.void, []),
+      [_tryResume]: dart.definiteFunctionType(dart.void, []),
+      [_unlisten]: dart.definiteFunctionType(dart.void, []),
+      asFuture: dart.definiteFunctionType(E => [async.Future$(E), [], [E]])
+    })
+  });
+  return _EventStreamSubscription;
+});
+html$._EventStreamSubscription = _EventStreamSubscription();
+html$.CustomStream$ = dart.generic(T => {
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  class CustomStream extends core.Object {}
+  dart.addTypeTests(CustomStream);
+  CustomStream[dart.implements] = () => [StreamOfT()];
+  return CustomStream;
+});
+html$.CustomStream = CustomStream();
+const _streamController = Symbol('_streamController');
+const _type$ = Symbol('_type');
+html$._CustomEventStreamImpl$ = dart.generic(T => {
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  let CustomStreamOfT = () => (CustomStreamOfT = dart.constFn(html$.CustomStream$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
+  class _CustomEventStreamImpl extends async.Stream$(T) {
+    new(type) {
+      this[_streamController] = null;
+      this[_type$] = null;
+      super.new();
+      this[_type$] = type;
+      this[_streamController] = StreamControllerOfT().broadcast({sync: true});
+    }
+    listen(onData, opts) {
+      let onError = opts && 'onError' in opts ? opts.onError : null;
+      let onDone = opts && 'onDone' in opts ? opts.onDone : null;
+      let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
+      return this[_streamController].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    }
+    asBroadcastStream(opts) {
+      let onListen = opts && 'onListen' in opts ? opts.onListen : null;
+      let onCancel = opts && 'onCancel' in opts ? opts.onCancel : null;
+      return this[_streamController].stream;
+    }
+    get isBroadcast() {
+      return true;
+    }
+    add(event) {
+      T._check(event);
+      if (event[dartx.type] == this[_type$]) this[_streamController].add(event);
+    }
+  }
+  _CustomEventStreamImpl[dart.implements] = () => [CustomStreamOfT()];
+  dart.setSignature(_CustomEventStreamImpl, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._CustomEventStreamImpl$(T), [core.String])}),
+    fields: () => ({
+      [_streamController]: StreamControllerOfT(),
+      [_type$]: core.String
+    }),
+    methods: () => ({
+      listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
+      add: dart.definiteFunctionType(dart.void, [T])
+    })
+  });
+  return _CustomEventStreamImpl;
+});
+html$._CustomEventStreamImpl = _CustomEventStreamImpl();
+const _parent$ = Symbol('_parent');
+const _shadowKeyCode = Symbol('_shadowKeyCode');
+const _shadowCharCode = Symbol('_shadowCharCode');
+const _shadowAltKey = Symbol('_shadowAltKey');
+const _realKeyCode = Symbol('_realKeyCode');
+const _realCharCode = Symbol('_realCharCode');
+const _realAltKey = Symbol('_realAltKey');
+const _currentTarget = Symbol('_currentTarget');
+const _shadowKeyIdentifier = Symbol('_shadowKeyIdentifier');
+html$.KeyEvent = class KeyEvent extends html$._WrappedEvent {
+  get keyCode() {
+    return this[_shadowKeyCode];
+  }
+  get charCode() {
+    return this.type == 'keypress' ? this[_shadowCharCode] : 0;
+  }
+  get altKey() {
+    return this[_shadowAltKey];
+  }
+  get which() {
+    return this.keyCode;
+  }
+  get [_realKeyCode]() {
+    return this[_parent$].keyCode;
+  }
+  get [_realCharCode]() {
+    return this[_parent$].charCode;
+  }
+  get [_realAltKey]() {
+    return this[_parent$].altKey;
+  }
+  static _makeRecord() {
+    let interceptor = _foreign_helper.JS_INTERCEPTOR_CONSTANT(dart.wrapType(html$.KeyboardEvent));
+    return _js_helper.makeLeafDispatchRecord(interceptor);
+  }
+  wrap(parent) {
+    this[_parent$] = null;
+    this[_shadowAltKey] = null;
+    this[_shadowCharCode] = null;
+    this[_shadowKeyCode] = null;
+    this[_currentTarget] = null;
+    super.new(parent);
+    this[_parent$] = parent;
+    this[_shadowAltKey] = this[_realAltKey];
+    this[_shadowCharCode] = this[_realCharCode];
+    this[_shadowKeyCode] = this[_realKeyCode];
+    this[_currentTarget] = this[_parent$][dartx.currentTarget];
+  }
+  static new(type, opts) {
+    let view = opts && 'view' in opts ? opts.view : null;
+    let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
+    let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
+    let keyCode = opts && 'keyCode' in opts ? opts.keyCode : 0;
+    let charCode = opts && 'charCode' in opts ? opts.charCode : 0;
+    let keyLocation = opts && 'keyLocation' in opts ? opts.keyLocation : 1;
+    let ctrlKey = opts && 'ctrlKey' in opts ? opts.ctrlKey : false;
+    let altKey = opts && 'altKey' in opts ? opts.altKey : false;
+    let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
+    let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
+    let currentTarget = opts && 'currentTarget' in opts ? opts.currentTarget : null;
+    if (view == null) {
+      view = html$.window;
+    }
+    let eventObj = null;
+    if (dart.test(html$.KeyEvent.canUseDispatchEvent)) {
+      eventObj = html$.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
+      eventObj.keyCode = keyCode;
+      eventObj.which = keyCode;
+      eventObj.charCode = charCode;
+      eventObj.keyLocation = keyLocation;
+      eventObj.ctrlKey = ctrlKey;
+      eventObj.altKey = altKey;
+      eventObj.shiftKey = shiftKey;
+      eventObj.metaKey = metaKey;
+    } else {
+      eventObj = html$.Event.eventType('KeyboardEvent', type, {canBubble: canBubble, cancelable: cancelable});
+      Object.defineProperty(eventObj, 'keyCode', {
+        get: function() {
+          return this.keyCodeVal;
+        }
+      });
+      Object.defineProperty(eventObj, 'which', {
+        get: function() {
+          return this.keyCodeVal;
+        }
+      });
+      Object.defineProperty(eventObj, 'charCode', {
+        get: function() {
+          return this.charCodeVal;
+        }
+      });
+      let keyIdentifier = html$.KeyEvent._convertToHexString(charCode, keyCode);
+      dart.dsend(eventObj, _initKeyboardEvent, type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey);
+      eventObj.keyCodeVal = keyCode;
+      eventObj.charCodeVal = charCode;
+    }
+    _interceptors.setDispatchProperty(eventObj, html$.KeyEvent._keyboardEventDispatchRecord);
+    let keyEvent = new html$.KeyEvent.wrap(html$.KeyboardEvent._check(eventObj));
+    if (keyEvent[_currentTarget] == null) {
+      keyEvent[_currentTarget] = currentTarget == null ? html$.window : currentTarget;
+    }
+    return keyEvent;
+  }
+  static get canUseDispatchEvent() {
+    return typeof document.body.dispatchEvent == "function" && document.body.dispatchEvent.length > 0;
+  }
+  get currentTarget() {
+    return this[_currentTarget];
+  }
+  static _convertToHexString(charCode, keyCode) {
+    if (charCode != -1) {
+      let hex = charCode[dartx.toRadixString](16);
+      let sb = new core.StringBuffer('U+');
+      for (let i = 0; i < 4 - dart.notNull(hex[dartx.length]); i++)
+        sb.write('0');
+      sb.write(hex);
+      return sb.toString();
+    } else {
+      return html$.KeyCode._convertKeyCodeToKeyName(keyCode);
+    }
+  }
+  get code() {
+    return this[_parent$][dartx.code];
+  }
+  get ctrlKey() {
+    return this[_parent$][dartx.ctrlKey];
+  }
+  get detail() {
+    return this[_parent$][dartx.detail];
+  }
+  get key() {
+    return this[_parent$][dartx.key];
+  }
+  get keyLocation() {
+    return this[_parent$][dartx.keyLocation];
+  }
+  get metaKey() {
+    return this[_parent$][dartx.metaKey];
+  }
+  get shiftKey() {
+    return this[_parent$][dartx.shiftKey];
+  }
+  get sourceDevice() {
+    return this[_parent$][dartx.sourceDevice];
+  }
+  get view() {
+    return html$.Window._check(this[_parent$][dartx.view]);
+  }
+  [_initUIEvent](type, canBubble, cancelable, view, detail) {
+    dart.throw(new core.UnsupportedError("Cannot initialize a UI Event from a KeyEvent."));
+  }
+  get [_shadowKeyIdentifier]() {
+    return this[_parent$].keyIdentifier;
+  }
+  get [_charCode]() {
+    return this.charCode;
+  }
+  get [_keyCode]() {
+    return this.keyCode;
+  }
+  get [_which]() {
+    return this.which;
+  }
+  get [_keyIdentifier]() {
+    dart.throw(new core.UnsupportedError("keyIdentifier is unsupported."));
+  }
+  [_initKeyboardEvent](type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey) {
+    dart.throw(new core.UnsupportedError("Cannot initialize a KeyboardEvent from a KeyEvent."));
+  }
+  getModifierState(keyArgument) {
+    return dart.throw(new core.UnimplementedError());
+  }
+  get location() {
+    return dart.throw(new core.UnimplementedError());
+  }
+  get repeat() {
+    return dart.throw(new core.UnimplementedError());
+  }
+  get [_get_view]() {
+    return dart.throw(new core.UnimplementedError());
+  }
+};
+dart.defineNamedConstructor(html$.KeyEvent, 'wrap');
+html$.KeyEvent[dart.implements] = () => [html$.KeyboardEvent];
+dart.setSignature(html$.KeyEvent, {
+  constructors: () => ({
+    wrap: dart.definiteFunctionType(html$.KeyEvent, [html$.KeyboardEvent]),
+    new: dart.definiteFunctionType(html$.KeyEvent, [core.String], {view: html$.Window, canBubble: core.bool, cancelable: core.bool, keyCode: core.int, charCode: core.int, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, currentTarget: html$.EventTarget})
+  }),
+  fields: () => ({
+    [_parent$]: html$.KeyboardEvent,
+    [_shadowAltKey]: core.bool,
+    [_shadowCharCode]: core.int,
+    [_shadowKeyCode]: core.int,
+    [_currentTarget]: html$.EventTarget
+  }),
+  getters: () => ({
+    keyCode: dart.definiteFunctionType(core.int, []),
+    charCode: dart.definiteFunctionType(core.int, []),
+    altKey: dart.definiteFunctionType(core.bool, []),
+    which: dart.definiteFunctionType(core.int, []),
+    [_realKeyCode]: dart.definiteFunctionType(core.int, []),
+    [_realCharCode]: dart.definiteFunctionType(core.int, []),
+    [_realAltKey]: dart.definiteFunctionType(core.bool, []),
+    code: dart.definiteFunctionType(core.String, []),
+    ctrlKey: dart.definiteFunctionType(core.bool, []),
+    detail: dart.definiteFunctionType(core.int, []),
+    key: dart.definiteFunctionType(core.String, []),
+    keyLocation: dart.definiteFunctionType(core.int, []),
+    metaKey: dart.definiteFunctionType(core.bool, []),
+    shiftKey: dart.definiteFunctionType(core.bool, []),
+    sourceDevice: dart.definiteFunctionType(html$.InputDevice, []),
+    view: dart.definiteFunctionType(html$.Window, []),
+    [_shadowKeyIdentifier]: dart.definiteFunctionType(core.String, []),
+    [_charCode]: dart.definiteFunctionType(core.int, []),
+    [_keyCode]: dart.definiteFunctionType(core.int, []),
+    [_which]: dart.definiteFunctionType(core.int, []),
+    [_keyIdentifier]: dart.definiteFunctionType(core.String, []),
+    location: dart.definiteFunctionType(core.int, []),
+    repeat: dart.definiteFunctionType(core.bool, []),
+    [_get_view]: dart.definiteFunctionType(dart.dynamic, [])
+  }),
+  methods: () => ({
+    [_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int]),
+    [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
+    getModifierState: dart.definiteFunctionType(core.bool, [core.String])
+  }),
+  sfields: () => ({
+    _keyboardEventDispatchRecord: dart.dynamic,
+    keyDownEvent: EventStreamProviderOfKeyEvent(),
+    keyUpEvent: EventStreamProviderOfKeyEvent(),
+    keyPressEvent: EventStreamProviderOfKeyEvent()
+  }),
+  sgetters: () => ({canUseDispatchEvent: dart.definiteFunctionType(core.bool, [])}),
+  statics: () => ({
+    _makeRecord: dart.definiteFunctionType(dart.dynamic, []),
+    _convertToHexString: dart.definiteFunctionType(core.String, [core.int, core.int])
+  }),
+  names: ['_makeRecord', '_convertToHexString']
+});
+dart.defineLazy(html$.KeyEvent, {
+  get _keyboardEventDispatchRecord() {
+    return html$.KeyEvent._makeRecord();
+  },
+  get keyDownEvent() {
+    return new html$._KeyboardEventHandler('keydown');
+  },
+  set keyDownEvent(_) {},
+  get keyUpEvent() {
+    return new html$._KeyboardEventHandler('keyup');
+  },
+  set keyUpEvent(_) {},
+  get keyPressEvent() {
+    return new html$._KeyboardEventHandler('keypress');
+  },
+  set keyPressEvent(_) {}
+});
+html$._CustomKeyEventStreamImpl = class _CustomKeyEventStreamImpl extends html$._CustomEventStreamImpl$(html$.KeyEvent) {
+  new(type) {
+    super.new(type);
+  }
+  add(event) {
+    if (event.type == this[_type$]) {
+      event.currentTarget[dartx.dispatchEvent](event[_parent$]);
+      this[_streamController].add(event);
+    }
+  }
+};
+dart.addSimpleTypeTests(html$._CustomKeyEventStreamImpl);
+html$._CustomKeyEventStreamImpl[dart.implements] = () => [CustomStreamOfKeyEvent()];
+dart.setSignature(html$._CustomKeyEventStreamImpl, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._CustomKeyEventStreamImpl, [core.String])})
+});
+const _subscriptions = Symbol('_subscriptions');
+const _controller$1 = Symbol('_controller');
+html$._StreamPool$ = dart.generic(T => {
+  let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
+  let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
+  let MapOfStreamOfT$StreamSubscriptionOfT = () => (MapOfStreamOfT$StreamSubscriptionOfT = dart.constFn(core.Map$(StreamOfT(), StreamSubscriptionOfT())))();
+  let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
+  class _StreamPool extends core.Object {
+    broadcast() {
+      this[_subscriptions] = MapOfStreamOfT$StreamSubscriptionOfT().new();
+      this[_controller$1] = null;
+      this[_controller$1] = StreamControllerOfT().broadcast({sync: true, onCancel: dart.bind(this, 'close')});
+    }
+    get stream() {
+      return this[_controller$1].stream;
+    }
+    add(stream) {
+      StreamOfT()._check(stream);
+      if (dart.test(this[_subscriptions][dartx.containsKey](stream))) return;
+      this[_subscriptions][dartx._set](stream, stream.listen(dart.bind(this[_controller$1], 'add'), {onError: dart.bind(this[_controller$1], 'addError'), onDone: dart.fn(() => this.remove(stream), VoidTovoid$())}));
+    }
+    remove(stream) {
+      StreamOfT()._check(stream);
+      let subscription = this[_subscriptions][dartx.remove](stream);
+      if (subscription != null) subscription.cancel();
+    }
+    close() {
+      for (let subscription of this[_subscriptions][dartx.values]) {
+        subscription.cancel();
+      }
+      this[_subscriptions][dartx.clear]();
+      this[_controller$1].close();
+    }
+  }
+  dart.addTypeTests(_StreamPool);
+  dart.defineNamedConstructor(_StreamPool, 'broadcast');
+  dart.setSignature(_StreamPool, {
+    constructors: () => ({broadcast: dart.definiteFunctionType(html$._StreamPool$(T), [])}),
+    fields: () => ({
+      [_controller$1]: StreamControllerOfT(),
+      [_subscriptions]: MapOfStreamOfT$StreamSubscriptionOfT()
+    }),
+    getters: () => ({stream: dart.definiteFunctionType(async.Stream$(T), [])}),
+    methods: () => ({
+      add: dart.definiteFunctionType(dart.void, [StreamOfT()]),
+      remove: dart.definiteFunctionType(dart.void, [StreamOfT()]),
+      close: dart.definiteFunctionType(dart.void, [])
+    })
+  });
+  return _StreamPool;
+});
+html$._StreamPool = _StreamPool();
+const _eventTypeGetter = Symbol('_eventTypeGetter');
+html$._CustomEventStreamProvider$ = dart.generic(T => {
+  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
+  let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
+  let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
+  let EventStreamProviderOfT = () => (EventStreamProviderOfT = dart.constFn(html$.EventStreamProvider$(T)))();
+  class _CustomEventStreamProvider extends core.Object {
+    new(eventTypeGetter) {
+      this[_eventTypeGetter] = eventTypeGetter;
+    }
+    forTarget(e, opts) {
+      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+      return new (_EventStreamOfT())(e, core.String._check(dart.dcall(this[_eventTypeGetter], e)), useCapture);
+    }
+    forElement(e, opts) {
+      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+      return new (_ElementEventStreamImplOfT())(e, dart.dcall(this[_eventTypeGetter], e), useCapture);
+    }
+    [_forElementList](e, opts) {
+      let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+      return new (_ElementListEventStreamImplOfT())(e, core.String._check(dart.dcall(this[_eventTypeGetter], e)), useCapture);
+    }
+    getEventType(target) {
+      return core.String._check(dart.dcall(this[_eventTypeGetter], target));
+    }
+    get [_eventType]() {
+      return dart.throw(new core.UnsupportedError('Access type through getEventType method.'));
+    }
+  }
+  dart.addTypeTests(_CustomEventStreamProvider);
+  _CustomEventStreamProvider[dart.implements] = () => [EventStreamProviderOfT()];
+  dart.setSignature(_CustomEventStreamProvider, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._CustomEventStreamProvider$(T), [dart.dynamic])}),
+    fields: () => ({[_eventTypeGetter]: dart.dynamic}),
+    getters: () => ({[_eventType]: dart.definiteFunctionType(core.String, [])}),
+    methods: () => ({
+      forTarget: dart.definiteFunctionType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}),
+      forElement: dart.definiteFunctionType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}),
+      [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
+      getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])
+    })
+  });
+  return _CustomEventStreamProvider;
+});
+html$._CustomEventStreamProvider = _CustomEventStreamProvider();
+html$._Html5NodeValidator = class _Html5NodeValidator extends core.Object {
+  new(opts) {
+    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
+    this.uriPolicy = uriPolicy != null ? uriPolicy : html$.UriPolicy.new();
+    if (dart.test(html$._Html5NodeValidator._attributeValidators[dartx.isEmpty])) {
+      for (let attr of html$._Html5NodeValidator._standardAttributes) {
+        html$._Html5NodeValidator._attributeValidators[dartx._set](attr, html$._Html5NodeValidator._standardAttributeValidator);
+      }
+      for (let attr of html$._Html5NodeValidator._uriAttributes) {
+        html$._Html5NodeValidator._attributeValidators[dartx._set](attr, html$._Html5NodeValidator._uriAttributeValidator);
+      }
+    }
+  }
+  allowsElement(element) {
+    return html$._Html5NodeValidator._allowedElements.contains(html$.Element._safeTagName(element));
+  }
+  allowsAttribute(element, attributeName, value) {
+    let tagName = html$.Element._safeTagName(element);
+    let validator = html$._Html5NodeValidator._attributeValidators[dartx._get](dart.str`${tagName}::${attributeName}`);
+    if (validator == null) {
+      validator = html$._Html5NodeValidator._attributeValidators[dartx._get](dart.str`*::${attributeName}`);
+    }
+    if (validator == null) {
+      return false;
+    }
+    return core.bool._check(dart.dcall(validator, element, attributeName, value, this));
+  }
+  static _standardAttributeValidator(element, attributeName, value, context) {
+    return true;
+  }
+  static _uriAttributeValidator(element, attributeName, value, context) {
+    return context.uriPolicy.allowsUri(value);
+  }
+};
+html$._Html5NodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._Html5NodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._Html5NodeValidator, [], {uriPolicy: html$.UriPolicy})}),
+  fields: () => ({uriPolicy: html$.UriPolicy}),
+  methods: () => ({
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
+  }),
+  sfields: () => ({
+    _allowedElements: SetOfString(),
+    _standardAttributes: ListOfString(),
+    _uriAttributes: ListOfString(),
+    _attributeValidators: MapOfString$Function()
+  }),
+  statics: () => ({
+    _standardAttributeValidator: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator]),
+    _uriAttributeValidator: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator])
+  }),
+  names: ['_standardAttributeValidator', '_uriAttributeValidator']
+});
+html$._Html5NodeValidator._standardAttributes = dart.constList(['*::class', '*::dir', '*::draggable', '*::hidden', '*::id', '*::inert', '*::itemprop', '*::itemref', '*::itemscope', '*::lang', '*::spellcheck', '*::title', '*::translate', 'A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'AREA::accesskey', 'AREA::alt', 'AREA::coords', 'AREA::nohref', 'AREA::shape', 'AREA::tabindex', 'AREA::target', 'AUDIO::controls', 'AUDIO::loop', 'AUDIO::mediagroup', 'AUDIO::muted', 'AUDIO::preload', 'BDO::dir', 'BODY::alink', 'BODY::bgcolor', 'BODY::link', 'BODY::text', 'BODY::vlink', 'BR::clear', 'BUTTON::accesskey', 'BUTTON::disabled', 'BUTTON::name', 'BUTTON::tabindex', 'BUTTON::type', 'BUTTON::value', 'CANVAS::height', 'CANVAS::width', 'CAPTION::align', 'COL::align', 'COL::char', 'COL::charoff', 'COL::span', 'COL::valign', 'COL::width', 'COLGROUP::align', 'COLGROUP::char', 'COLGROUP::charoff', 'COLGROUP::span', 'COLGROUP::valign', 'COLGROUP::width', 'COMMAND::checked', 'COMMAND::command', 'COMMAND::disabled', 'COMMAND::label', 'COMMAND::radiogroup', 'COMMAND::type', 'DATA::value', 'DEL::datetime', 'DETAILS::open', 'DIR::compact', 'DIV::align', 'DL::compact', 'FIELDSET::disabled', 'FONT::color', 'FONT::face', 'FONT::size', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target', 'FRAME::name', 'H1::align', 'H2::align', 'H3::align', 'H4::align', 'H5::align', 'H6::align', 'HR::align', 'HR::noshade', 'HR::size', 'HR::width', 'HTML::version', 'IFRAME::align', 'IFRAME::frameborder', 'IFRAME::height', 'IFRAME::marginheight', 'IFRAME::marginwidth', 'IFRAME::width', 'IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width', 'INPUT::accept', 'INPUT::accesskey', 'INPUT::align', 'INPUT::alt', 'INPUT::autocomplete', 'INPUT::autofocus', 'INPUT::checked', 'INPUT::disabled', 'INPUT::inputmode', 'INPUT::ismap', 'INPUT::list', 'INPUT::max', 'INPUT::maxlength', 'INPUT::min', 'INPUT::multiple', 'INPUT::name', 'INPUT::placeholder', 'INPUT::readonly', 'INPUT::required', 'INPUT::size', 'INPUT::step', 'INPUT::tabindex', 'INPUT::type', 'INPUT::usemap', 'INPUT::value', 'INS::datetime', 'KEYGEN::disabled', 'KEYGEN::keytype', 'KEYGEN::name', 'LABEL::accesskey', 'LABEL::for', 'LEGEND::accesskey', 'LEGEND::align', 'LI::type', 'LI::value', 'LINK::sizes', 'MAP::name', 'MENU::compact', 'MENU::label', 'MENU::type', 'METER::high', 'METER::low', 'METER::max', 'METER::min', 'METER::value', 'OBJECT::typemustmatch', 'OL::compact', 'OL::reversed', 'OL::start', 'OL::type', 'OPTGROUP::disabled', 'OPTGROUP::label', 'OPTION::disabled', 'OPTION::label', 'OPTION::selected', 'OPTION::value', 'OUTPUT::for', 'OUTPUT::name', 'P::align', 'PRE::width', 'PROGRESS::max', 'PROGRESS::min', 'PROGRESS::value', 'SELECT::autocomplete', 'SELECT::disabled', 'SELECT::multiple', 'SELECT::name', 'SELECT::required', 'SELECT::size', 'SELECT::tabindex', 'SOURCE::type', 'TABLE::align', 'TABLE::bgcolor', 'TABLE::border', 'TABLE::cellpadding', 'TABLE::cellspacing', 'TABLE::frame', 'TABLE::rules', 'TABLE::summary', 'TABLE::width', 'TBODY::align', 'TBODY::char', 'TBODY::charoff', 'TBODY::valign', 'TD::abbr', 'TD::align', 'TD::axis', 'TD::bgcolor', 'TD::char', 'TD::charoff', 'TD::colspan', 'TD::headers', 'TD::height', 'TD::nowrap', 'TD::rowspan', 'TD::scope', 'TD::valign', 'TD::width', 'TEXTAREA::accesskey', 'TEXTAREA::autocomplete', 'TEXTAREA::cols', 'TEXTAREA::disabled', 'TEXTAREA::inputmode', 'TEXTAREA::name', 'TEXTAREA::placeholder', 'TEXTAREA::readonly', 'TEXTAREA::required', 'TEXTAREA::rows', 'TEXTAREA::tabindex', 'TEXTAREA::wrap', 'TFOOT::align', 'TFOOT::char', 'TFOOT::charoff', 'TFOOT::valign', 'TH::abbr', 'TH::align', 'TH::axis', 'TH::bgcolor', 'TH::char', 'TH::charoff', 'TH::colspan', 'TH::headers', 'TH::height', 'TH::nowrap', 'TH::rowspan', 'TH::scope', 'TH::valign', 'TH::width', 'THEAD::align', 'THEAD::char', 'THEAD::charoff', 'THEAD::valign', 'TR::align', 'TR::bgcolor', 'TR::char', 'TR::charoff', 'TR::valign', 'TRACK::default', 'TRACK::kind', 'TRACK::label', 'TRACK::srclang', 'UL::compact', 'UL::type', 'VIDEO::controls', 'VIDEO::height', 'VIDEO::loop', 'VIDEO::mediagroup', 'VIDEO::muted', 'VIDEO::preload', 'VIDEO::width'], core.String);
+html$._Html5NodeValidator._uriAttributes = dart.constList(['A::href', 'AREA::href', 'BLOCKQUOTE::cite', 'BODY::background', 'COMMAND::icon', 'DEL::cite', 'FORM::action', 'IMG::src', 'INPUT::src', 'INS::cite', 'Q::cite', 'VIDEO::poster'], core.String);
+dart.defineLazy(html$._Html5NodeValidator, {
+  get _allowedElements() {
+    return SetOfString().from(JSArrayOfString().of(['A', 'ABBR', 'ACRONYM', 'ADDRESS', 'AREA', 'ARTICLE', 'ASIDE', 'AUDIO', 'B', 'BDI', 'BDO', 'BIG', 'BLOCKQUOTE', 'BR', 'BUTTON', 'CANVAS', 'CAPTION', 'CENTER', 'CITE', 'CODE', 'COL', 'COLGROUP', 'COMMAND', 'DATA', 'DATALIST', 'DD', 'DEL', 'DETAILS', 'DFN', 'DIR', 'DIV', 'DL', 'DT', 'EM', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FONT', 'FOOTER', 'FORM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR', 'I', 'IFRAME', 'IMG', 'INPUT', 'INS', 'KBD', 'LABEL', 'LEGEND', 'LI', 'MAP', 'MARK', 'MENU', 'METER', 'NAV', 'NOBR', 'OL', 'OPTGROUP', 'OPTION', 'OUTPUT', 'P', 'PRE', 'PROGRESS', 'Q', 'S', 'SAMP', 'SECTION', 'SELECT', 'SMALL', 'SOURCE', 'SPAN', 'STRIKE', 'STRONG', 'SUB', 'SUMMARY', 'SUP', 'TABLE', 'TBODY', 'TD', 'TEXTAREA', 'TFOOT', 'TH', 'THEAD', 'TIME', 'TR', 'TRACK', 'TT', 'U', 'UL', 'VAR', 'VIDEO', 'WBR']));
+  },
+  get _attributeValidators() {
+    return dart.map({}, core.String, core.Function);
+  }
+});
+html$.KeyCode = class KeyCode extends core.Object {
+  static isCharacterKey(keyCode) {
+    if (dart.notNull(keyCode) >= html$.KeyCode.ZERO && dart.notNull(keyCode) <= html$.KeyCode.NINE || dart.notNull(keyCode) >= html$.KeyCode.NUM_ZERO && dart.notNull(keyCode) <= html$.KeyCode.NUM_MULTIPLY || dart.notNull(keyCode) >= html$.KeyCode.A && dart.notNull(keyCode) <= html$.KeyCode.Z) {
+      return true;
+    }
+    if (dart.test(html_common.Device.isWebKit) && keyCode == 0) {
+      return true;
+    }
+    return keyCode == html$.KeyCode.SPACE || keyCode == html$.KeyCode.QUESTION_MARK || keyCode == html$.KeyCode.NUM_PLUS || keyCode == html$.KeyCode.NUM_MINUS || keyCode == html$.KeyCode.NUM_PERIOD || keyCode == html$.KeyCode.NUM_DIVISION || keyCode == html$.KeyCode.SEMICOLON || keyCode == html$.KeyCode.FF_SEMICOLON || keyCode == html$.KeyCode.DASH || keyCode == html$.KeyCode.EQUALS || keyCode == html$.KeyCode.FF_EQUALS || keyCode == html$.KeyCode.COMMA || keyCode == html$.KeyCode.PERIOD || keyCode == html$.KeyCode.SLASH || keyCode == html$.KeyCode.APOSTROPHE || keyCode == html$.KeyCode.SINGLE_QUOTE || keyCode == html$.KeyCode.OPEN_SQUARE_BRACKET || keyCode == html$.KeyCode.BACKSLASH || keyCode == html$.KeyCode.CLOSE_SQUARE_BRACKET;
+  }
+  static _convertKeyCodeToKeyName(keyCode) {
+    switch (keyCode) {
+      case html$.KeyCode.ALT:
+      {
+        return html$._KeyName.ALT;
+      }
+      case html$.KeyCode.BACKSPACE:
+      {
+        return html$._KeyName.BACKSPACE;
+      }
+      case html$.KeyCode.CAPS_LOCK:
+      {
+        return html$._KeyName.CAPS_LOCK;
+      }
+      case html$.KeyCode.CTRL:
+      {
+        return html$._KeyName.CONTROL;
+      }
+      case html$.KeyCode.DELETE:
+      {
+        return html$._KeyName.DEL;
+      }
+      case html$.KeyCode.DOWN:
+      {
+        return html$._KeyName.DOWN;
+      }
+      case html$.KeyCode.END:
+      {
+        return html$._KeyName.END;
+      }
+      case html$.KeyCode.ENTER:
+      {
+        return html$._KeyName.ENTER;
+      }
+      case html$.KeyCode.ESC:
+      {
+        return html$._KeyName.ESC;
+      }
+      case html$.KeyCode.F1:
+      {
+        return html$._KeyName.F1;
+      }
+      case html$.KeyCode.F2:
+      {
+        return html$._KeyName.F2;
+      }
+      case html$.KeyCode.F3:
+      {
+        return html$._KeyName.F3;
+      }
+      case html$.KeyCode.F4:
+      {
+        return html$._KeyName.F4;
+      }
+      case html$.KeyCode.F5:
+      {
+        return html$._KeyName.F5;
+      }
+      case html$.KeyCode.F6:
+      {
+        return html$._KeyName.F6;
+      }
+      case html$.KeyCode.F7:
+      {
+        return html$._KeyName.F7;
+      }
+      case html$.KeyCode.F8:
+      {
+        return html$._KeyName.F8;
+      }
+      case html$.KeyCode.F9:
+      {
+        return html$._KeyName.F9;
+      }
+      case html$.KeyCode.F10:
+      {
+        return html$._KeyName.F10;
+      }
+      case html$.KeyCode.F11:
+      {
+        return html$._KeyName.F11;
+      }
+      case html$.KeyCode.F12:
+      {
+        return html$._KeyName.F12;
+      }
+      case html$.KeyCode.HOME:
+      {
+        return html$._KeyName.HOME;
+      }
+      case html$.KeyCode.INSERT:
+      {
+        return html$._KeyName.INSERT;
+      }
+      case html$.KeyCode.LEFT:
+      {
+        return html$._KeyName.LEFT;
+      }
+      case html$.KeyCode.META:
+      {
+        return html$._KeyName.META;
+      }
+      case html$.KeyCode.NUMLOCK:
+      {
+        return html$._KeyName.NUM_LOCK;
+      }
+      case html$.KeyCode.PAGE_DOWN:
+      {
+        return html$._KeyName.PAGE_DOWN;
+      }
+      case html$.KeyCode.PAGE_UP:
+      {
+        return html$._KeyName.PAGE_UP;
+      }
+      case html$.KeyCode.PAUSE:
+      {
+        return html$._KeyName.PAUSE;
+      }
+      case html$.KeyCode.PRINT_SCREEN:
+      {
+        return html$._KeyName.PRINT_SCREEN;
+      }
+      case html$.KeyCode.RIGHT:
+      {
+        return html$._KeyName.RIGHT;
+      }
+      case html$.KeyCode.SCROLL_LOCK:
+      {
+        return html$._KeyName.SCROLL;
+      }
+      case html$.KeyCode.SHIFT:
+      {
+        return html$._KeyName.SHIFT;
+      }
+      case html$.KeyCode.SPACE:
+      {
+        return html$._KeyName.SPACEBAR;
+      }
+      case html$.KeyCode.TAB:
+      {
+        return html$._KeyName.TAB;
+      }
+      case html$.KeyCode.UP:
+      {
+        return html$._KeyName.UP;
+      }
+      case html$.KeyCode.WIN_IME:
+      case html$.KeyCode.WIN_KEY:
+      case html$.KeyCode.WIN_KEY_LEFT:
+      case html$.KeyCode.WIN_KEY_RIGHT:
+      {
+        return html$._KeyName.WIN;
+      }
+      default:
+      {
+        return html$._KeyName.UNIDENTIFIED;
+      }
+    }
+    return html$._KeyName.UNIDENTIFIED;
+  }
+};
+dart.setSignature(html$.KeyCode, {
+  sfields: () => ({
+    WIN_KEY_FF_LINUX: core.int,
+    MAC_ENTER: core.int,
+    BACKSPACE: core.int,
+    TAB: core.int,
+    NUM_CENTER: core.int,
+    ENTER: core.int,
+    SHIFT: core.int,
+    CTRL: core.int,
+    ALT: core.int,
+    PAUSE: core.int,
+    CAPS_LOCK: core.int,
+    ESC: core.int,
+    SPACE: core.int,
+    PAGE_UP: core.int,
+    PAGE_DOWN: core.int,
+    END: core.int,
+    HOME: core.int,
+    LEFT: core.int,
+    UP: core.int,
+    RIGHT: core.int,
+    DOWN: core.int,
+    NUM_NORTH_EAST: core.int,
+    NUM_SOUTH_EAST: core.int,
+    NUM_SOUTH_WEST: core.int,
+    NUM_NORTH_WEST: core.int,
+    NUM_WEST: core.int,
+    NUM_NORTH: core.int,
+    NUM_EAST: core.int,
+    NUM_SOUTH: core.int,
+    PRINT_SCREEN: core.int,
+    INSERT: core.int,
+    NUM_INSERT: core.int,
+    DELETE: core.int,
+    NUM_DELETE: core.int,
+    ZERO: core.int,
+    ONE: core.int,
+    TWO: core.int,
+    THREE: core.int,
+    FOUR: core.int,
+    FIVE: core.int,
+    SIX: core.int,
+    SEVEN: core.int,
+    EIGHT: core.int,
+    NINE: core.int,
+    FF_SEMICOLON: core.int,
+    FF_EQUALS: core.int,
+    QUESTION_MARK: core.int,
+    A: core.int,
+    B: core.int,
+    C: core.int,
+    D: core.int,
+    E: core.int,
+    F: core.int,
+    G: core.int,
+    H: core.int,
+    I: core.int,
+    J: core.int,
+    K: core.int,
+    L: core.int,
+    M: core.int,
+    N: core.int,
+    O: core.int,
+    P: core.int,
+    Q: core.int,
+    R: core.int,
+    S: core.int,
+    T: core.int,
+    U: core.int,
+    V: core.int,
+    W: core.int,
+    X: core.int,
+    Y: core.int,
+    Z: core.int,
+    META: core.int,
+    WIN_KEY_LEFT: core.int,
+    WIN_KEY_RIGHT: core.int,
+    CONTEXT_MENU: core.int,
+    NUM_ZERO: core.int,
+    NUM_ONE: core.int,
+    NUM_TWO: core.int,
+    NUM_THREE: core.int,
+    NUM_FOUR: core.int,
+    NUM_FIVE: core.int,
+    NUM_SIX: core.int,
+    NUM_SEVEN: core.int,
+    NUM_EIGHT: core.int,
+    NUM_NINE: core.int,
+    NUM_MULTIPLY: core.int,
+    NUM_PLUS: core.int,
+    NUM_MINUS: core.int,
+    NUM_PERIOD: core.int,
+    NUM_DIVISION: core.int,
+    F1: core.int,
+    F2: core.int,
+    F3: core.int,
+    F4: core.int,
+    F5: core.int,
+    F6: core.int,
+    F7: core.int,
+    F8: core.int,
+    F9: core.int,
+    F10: core.int,
+    F11: core.int,
+    F12: core.int,
+    NUMLOCK: core.int,
+    SCROLL_LOCK: core.int,
+    FIRST_MEDIA_KEY: core.int,
+    LAST_MEDIA_KEY: core.int,
+    SEMICOLON: core.int,
+    DASH: core.int,
+    EQUALS: core.int,
+    COMMA: core.int,
+    PERIOD: core.int,
+    SLASH: core.int,
+    APOSTROPHE: core.int,
+    TILDE: core.int,
+    SINGLE_QUOTE: core.int,
+    OPEN_SQUARE_BRACKET: core.int,
+    BACKSLASH: core.int,
+    CLOSE_SQUARE_BRACKET: core.int,
+    WIN_KEY: core.int,
+    MAC_FF_META: core.int,
+    WIN_IME: core.int,
+    UNKNOWN: core.int
+  }),
+  statics: () => ({
+    isCharacterKey: dart.definiteFunctionType(core.bool, [core.int]),
+    _convertKeyCodeToKeyName: dart.definiteFunctionType(core.String, [core.int])
+  }),
+  names: ['isCharacterKey', '_convertKeyCodeToKeyName']
+});
+html$.KeyCode.WIN_KEY_FF_LINUX = 0;
+html$.KeyCode.MAC_ENTER = 3;
+html$.KeyCode.BACKSPACE = 8;
+html$.KeyCode.TAB = 9;
+html$.KeyCode.NUM_CENTER = 12;
+html$.KeyCode.ENTER = 13;
+html$.KeyCode.SHIFT = 16;
+html$.KeyCode.CTRL = 17;
+html$.KeyCode.ALT = 18;
+html$.KeyCode.PAUSE = 19;
+html$.KeyCode.CAPS_LOCK = 20;
+html$.KeyCode.ESC = 27;
+html$.KeyCode.SPACE = 32;
+html$.KeyCode.PAGE_UP = 33;
+html$.KeyCode.PAGE_DOWN = 34;
+html$.KeyCode.END = 35;
+html$.KeyCode.HOME = 36;
+html$.KeyCode.LEFT = 37;
+html$.KeyCode.UP = 38;
+html$.KeyCode.RIGHT = 39;
+html$.KeyCode.DOWN = 40;
+html$.KeyCode.NUM_NORTH_EAST = 33;
+html$.KeyCode.NUM_SOUTH_EAST = 34;
+html$.KeyCode.NUM_SOUTH_WEST = 35;
+html$.KeyCode.NUM_NORTH_WEST = 36;
+html$.KeyCode.NUM_WEST = 37;
+html$.KeyCode.NUM_NORTH = 38;
+html$.KeyCode.NUM_EAST = 39;
+html$.KeyCode.NUM_SOUTH = 40;
+html$.KeyCode.PRINT_SCREEN = 44;
+html$.KeyCode.INSERT = 45;
+html$.KeyCode.NUM_INSERT = 45;
+html$.KeyCode.DELETE = 46;
+html$.KeyCode.NUM_DELETE = 46;
+html$.KeyCode.ZERO = 48;
+html$.KeyCode.ONE = 49;
+html$.KeyCode.TWO = 50;
+html$.KeyCode.THREE = 51;
+html$.KeyCode.FOUR = 52;
+html$.KeyCode.FIVE = 53;
+html$.KeyCode.SIX = 54;
+html$.KeyCode.SEVEN = 55;
+html$.KeyCode.EIGHT = 56;
+html$.KeyCode.NINE = 57;
+html$.KeyCode.FF_SEMICOLON = 59;
+html$.KeyCode.FF_EQUALS = 61;
+html$.KeyCode.QUESTION_MARK = 63;
+html$.KeyCode.A = 65;
+html$.KeyCode.B = 66;
+html$.KeyCode.C = 67;
+html$.KeyCode.D = 68;
+html$.KeyCode.E = 69;
+html$.KeyCode.F = 70;
+html$.KeyCode.G = 71;
+html$.KeyCode.H = 72;
+html$.KeyCode.I = 73;
+html$.KeyCode.J = 74;
+html$.KeyCode.K = 75;
+html$.KeyCode.L = 76;
+html$.KeyCode.M = 77;
+html$.KeyCode.N = 78;
+html$.KeyCode.O = 79;
+html$.KeyCode.P = 80;
+html$.KeyCode.Q = 81;
+html$.KeyCode.R = 82;
+html$.KeyCode.S = 83;
+html$.KeyCode.T = 84;
+html$.KeyCode.U = 85;
+html$.KeyCode.V = 86;
+html$.KeyCode.W = 87;
+html$.KeyCode.X = 88;
+html$.KeyCode.Y = 89;
+html$.KeyCode.Z = 90;
+html$.KeyCode.META = 91;
+html$.KeyCode.WIN_KEY_LEFT = 91;
+html$.KeyCode.WIN_KEY_RIGHT = 92;
+html$.KeyCode.CONTEXT_MENU = 93;
+html$.KeyCode.NUM_ZERO = 96;
+html$.KeyCode.NUM_ONE = 97;
+html$.KeyCode.NUM_TWO = 98;
+html$.KeyCode.NUM_THREE = 99;
+html$.KeyCode.NUM_FOUR = 100;
+html$.KeyCode.NUM_FIVE = 101;
+html$.KeyCode.NUM_SIX = 102;
+html$.KeyCode.NUM_SEVEN = 103;
+html$.KeyCode.NUM_EIGHT = 104;
+html$.KeyCode.NUM_NINE = 105;
+html$.KeyCode.NUM_MULTIPLY = 106;
+html$.KeyCode.NUM_PLUS = 107;
+html$.KeyCode.NUM_MINUS = 109;
+html$.KeyCode.NUM_PERIOD = 110;
+html$.KeyCode.NUM_DIVISION = 111;
+html$.KeyCode.F1 = 112;
+html$.KeyCode.F2 = 113;
+html$.KeyCode.F3 = 114;
+html$.KeyCode.F4 = 115;
+html$.KeyCode.F5 = 116;
+html$.KeyCode.F6 = 117;
+html$.KeyCode.F7 = 118;
+html$.KeyCode.F8 = 119;
+html$.KeyCode.F9 = 120;
+html$.KeyCode.F10 = 121;
+html$.KeyCode.F11 = 122;
+html$.KeyCode.F12 = 123;
+html$.KeyCode.NUMLOCK = 144;
+html$.KeyCode.SCROLL_LOCK = 145;
+html$.KeyCode.FIRST_MEDIA_KEY = 166;
+html$.KeyCode.LAST_MEDIA_KEY = 183;
+html$.KeyCode.SEMICOLON = 186;
+html$.KeyCode.DASH = 189;
+html$.KeyCode.EQUALS = 187;
+html$.KeyCode.COMMA = 188;
+html$.KeyCode.PERIOD = 190;
+html$.KeyCode.SLASH = 191;
+html$.KeyCode.APOSTROPHE = 192;
+html$.KeyCode.TILDE = 192;
+html$.KeyCode.SINGLE_QUOTE = 222;
+html$.KeyCode.OPEN_SQUARE_BRACKET = 219;
+html$.KeyCode.BACKSLASH = 220;
+html$.KeyCode.CLOSE_SQUARE_BRACKET = 221;
+html$.KeyCode.WIN_KEY = 224;
+html$.KeyCode.MAC_FF_META = 224;
+html$.KeyCode.WIN_IME = 229;
+html$.KeyCode.UNKNOWN = -1;
+html$.KeyLocation = class KeyLocation extends core.Object {};
+dart.setSignature(html$.KeyLocation, {
+  sfields: () => ({
+    STANDARD: core.int,
+    LEFT: core.int,
+    RIGHT: core.int,
+    NUMPAD: core.int,
+    MOBILE: core.int,
+    JOYSTICK: core.int
+  })
+});
+html$.KeyLocation.STANDARD = 0;
+html$.KeyLocation.LEFT = 1;
+html$.KeyLocation.RIGHT = 2;
+html$.KeyLocation.NUMPAD = 3;
+html$.KeyLocation.MOBILE = 4;
+html$.KeyLocation.JOYSTICK = 5;
+html$._KeyName = class _KeyName extends core.Object {};
+dart.setSignature(html$._KeyName, {
+  sfields: () => ({
+    ACCEPT: core.String,
+    ADD: core.String,
+    AGAIN: core.String,
+    ALL_CANDIDATES: core.String,
+    ALPHANUMERIC: core.String,
+    ALT: core.String,
+    ALT_GRAPH: core.String,
+    APPS: core.String,
+    ATTN: core.String,
+    BROWSER_BACK: core.String,
+    BROWSER_FAVORTIES: core.String,
+    BROWSER_FORWARD: core.String,
+    BROWSER_NAME: core.String,
+    BROWSER_REFRESH: core.String,
+    BROWSER_SEARCH: core.String,
+    BROWSER_STOP: core.String,
+    CAMERA: core.String,
+    CAPS_LOCK: core.String,
+    CLEAR: core.String,
+    CODE_INPUT: core.String,
+    COMPOSE: core.String,
+    CONTROL: core.String,
+    CRSEL: core.String,
+    CONVERT: core.String,
+    COPY: core.String,
+    CUT: core.String,
+    DECIMAL: core.String,
+    DIVIDE: core.String,
+    DOWN: core.String,
+    DOWN_LEFT: core.String,
+    DOWN_RIGHT: core.String,
+    EJECT: core.String,
+    END: core.String,
+    ENTER: core.String,
+    ERASE_EOF: core.String,
+    EXECUTE: core.String,
+    EXSEL: core.String,
+    FN: core.String,
+    F1: core.String,
+    F2: core.String,
+    F3: core.String,
+    F4: core.String,
+    F5: core.String,
+    F6: core.String,
+    F7: core.String,
+    F8: core.String,
+    F9: core.String,
+    F10: core.String,
+    F11: core.String,
+    F12: core.String,
+    F13: core.String,
+    F14: core.String,
+    F15: core.String,
+    F16: core.String,
+    F17: core.String,
+    F18: core.String,
+    F19: core.String,
+    F20: core.String,
+    F21: core.String,
+    F22: core.String,
+    F23: core.String,
+    F24: core.String,
+    FINAL_MODE: core.String,
+    FIND: core.String,
+    FULL_WIDTH: core.String,
+    HALF_WIDTH: core.String,
+    HANGUL_MODE: core.String,
+    HANJA_MODE: core.String,
+    HELP: core.String,
+    HIRAGANA: core.String,
+    HOME: core.String,
+    INSERT: core.String,
+    JAPANESE_HIRAGANA: core.String,
+    JAPANESE_KATAKANA: core.String,
+    JAPANESE_ROMAJI: core.String,
+    JUNJA_MODE: core.String,
+    KANA_MODE: core.String,
+    KANJI_MODE: core.String,
+    KATAKANA: core.String,
+    LAUNCH_APPLICATION_1: core.String,
+    LAUNCH_APPLICATION_2: core.String,
+    LAUNCH_MAIL: core.String,
+    LEFT: core.String,
+    MENU: core.String,
+    META: core.String,
+    MEDIA_NEXT_TRACK: core.String,
+    MEDIA_PAUSE_PLAY: core.String,
+    MEDIA_PREVIOUS_TRACK: core.String,
+    MEDIA_STOP: core.String,
+    MODE_CHANGE: core.String,
+    NEXT_CANDIDATE: core.String,
+    NON_CONVERT: core.String,
+    NUM_LOCK: core.String,
+    PAGE_DOWN: core.String,
+    PAGE_UP: core.String,
+    PASTE: core.String,
+    PAUSE: core.String,
+    PLAY: core.String,
+    POWER: core.String,
+    PREVIOUS_CANDIDATE: core.String,
+    PRINT_SCREEN: core.String,
+    PROCESS: core.String,
+    PROPS: core.String,
+    RIGHT: core.String,
+    ROMAN_CHARACTERS: core.String,
+    SCROLL: core.String,
+    SELECT: core.String,
+    SELECT_MEDIA: core.String,
+    SEPARATOR: core.String,
+    SHIFT: core.String,
+    SOFT_1: core.String,
+    SOFT_2: core.String,
+    SOFT_3: core.String,
+    SOFT_4: core.String,
+    STOP: core.String,
+    SUBTRACT: core.String,
+    SYMBOL_LOCK: core.String,
+    UP: core.String,
+    UP_LEFT: core.String,
+    UP_RIGHT: core.String,
+    UNDO: core.String,
+    VOLUME_DOWN: core.String,
+    VOLUMN_MUTE: core.String,
+    VOLUMN_UP: core.String,
+    WIN: core.String,
+    ZOOM: core.String,
+    BACKSPACE: core.String,
+    TAB: core.String,
+    CANCEL: core.String,
+    ESC: core.String,
+    SPACEBAR: core.String,
+    DEL: core.String,
+    DEAD_GRAVE: core.String,
+    DEAD_EACUTE: core.String,
+    DEAD_CIRCUMFLEX: core.String,
+    DEAD_TILDE: core.String,
+    DEAD_MACRON: core.String,
+    DEAD_BREVE: core.String,
+    DEAD_ABOVE_DOT: core.String,
+    DEAD_UMLAUT: core.String,
+    DEAD_ABOVE_RING: core.String,
+    DEAD_DOUBLEACUTE: core.String,
+    DEAD_CARON: core.String,
+    DEAD_CEDILLA: core.String,
+    DEAD_OGONEK: core.String,
+    DEAD_IOTA: core.String,
+    DEAD_VOICED_SOUND: core.String,
+    DEC_SEMIVOICED_SOUND: core.String,
+    UNIDENTIFIED: core.String
+  })
+});
+html$._KeyName.ACCEPT = "Accept";
+html$._KeyName.ADD = "Add";
+html$._KeyName.AGAIN = "Again";
+html$._KeyName.ALL_CANDIDATES = "AllCandidates";
+html$._KeyName.ALPHANUMERIC = "Alphanumeric";
+html$._KeyName.ALT = "Alt";
+html$._KeyName.ALT_GRAPH = "AltGraph";
+html$._KeyName.APPS = "Apps";
+html$._KeyName.ATTN = "Attn";
+html$._KeyName.BROWSER_BACK = "BrowserBack";
+html$._KeyName.BROWSER_FAVORTIES = "BrowserFavorites";
+html$._KeyName.BROWSER_FORWARD = "BrowserForward";
+html$._KeyName.BROWSER_NAME = "BrowserHome";
+html$._KeyName.BROWSER_REFRESH = "BrowserRefresh";
+html$._KeyName.BROWSER_SEARCH = "BrowserSearch";
+html$._KeyName.BROWSER_STOP = "BrowserStop";
+html$._KeyName.CAMERA = "Camera";
+html$._KeyName.CAPS_LOCK = "CapsLock";
+html$._KeyName.CLEAR = "Clear";
+html$._KeyName.CODE_INPUT = "CodeInput";
+html$._KeyName.COMPOSE = "Compose";
+html$._KeyName.CONTROL = "Control";
+html$._KeyName.CRSEL = "Crsel";
+html$._KeyName.CONVERT = "Convert";
+html$._KeyName.COPY = "Copy";
+html$._KeyName.CUT = "Cut";
+html$._KeyName.DECIMAL = "Decimal";
+html$._KeyName.DIVIDE = "Divide";
+html$._KeyName.DOWN = "Down";
+html$._KeyName.DOWN_LEFT = "DownLeft";
+html$._KeyName.DOWN_RIGHT = "DownRight";
+html$._KeyName.EJECT = "Eject";
+html$._KeyName.END = "End";
+html$._KeyName.ENTER = "Enter";
+html$._KeyName.ERASE_EOF = "EraseEof";
+html$._KeyName.EXECUTE = "Execute";
+html$._KeyName.EXSEL = "Exsel";
+html$._KeyName.FN = "Fn";
+html$._KeyName.F1 = "F1";
+html$._KeyName.F2 = "F2";
+html$._KeyName.F3 = "F3";
+html$._KeyName.F4 = "F4";
+html$._KeyName.F5 = "F5";
+html$._KeyName.F6 = "F6";
+html$._KeyName.F7 = "F7";
+html$._KeyName.F8 = "F8";
+html$._KeyName.F9 = "F9";
+html$._KeyName.F10 = "F10";
+html$._KeyName.F11 = "F11";
+html$._KeyName.F12 = "F12";
+html$._KeyName.F13 = "F13";
+html$._KeyName.F14 = "F14";
+html$._KeyName.F15 = "F15";
+html$._KeyName.F16 = "F16";
+html$._KeyName.F17 = "F17";
+html$._KeyName.F18 = "F18";
+html$._KeyName.F19 = "F19";
+html$._KeyName.F20 = "F20";
+html$._KeyName.F21 = "F21";
+html$._KeyName.F22 = "F22";
+html$._KeyName.F23 = "F23";
+html$._KeyName.F24 = "F24";
+html$._KeyName.FINAL_MODE = "FinalMode";
+html$._KeyName.FIND = "Find";
+html$._KeyName.FULL_WIDTH = "FullWidth";
+html$._KeyName.HALF_WIDTH = "HalfWidth";
+html$._KeyName.HANGUL_MODE = "HangulMode";
+html$._KeyName.HANJA_MODE = "HanjaMode";
+html$._KeyName.HELP = "Help";
+html$._KeyName.HIRAGANA = "Hiragana";
+html$._KeyName.HOME = "Home";
+html$._KeyName.INSERT = "Insert";
+html$._KeyName.JAPANESE_HIRAGANA = "JapaneseHiragana";
+html$._KeyName.JAPANESE_KATAKANA = "JapaneseKatakana";
+html$._KeyName.JAPANESE_ROMAJI = "JapaneseRomaji";
+html$._KeyName.JUNJA_MODE = "JunjaMode";
+html$._KeyName.KANA_MODE = "KanaMode";
+html$._KeyName.KANJI_MODE = "KanjiMode";
+html$._KeyName.KATAKANA = "Katakana";
+html$._KeyName.LAUNCH_APPLICATION_1 = "LaunchApplication1";
+html$._KeyName.LAUNCH_APPLICATION_2 = "LaunchApplication2";
+html$._KeyName.LAUNCH_MAIL = "LaunchMail";
+html$._KeyName.LEFT = "Left";
+html$._KeyName.MENU = "Menu";
+html$._KeyName.META = "Meta";
+html$._KeyName.MEDIA_NEXT_TRACK = "MediaNextTrack";
+html$._KeyName.MEDIA_PAUSE_PLAY = "MediaPlayPause";
+html$._KeyName.MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
+html$._KeyName.MEDIA_STOP = "MediaStop";
+html$._KeyName.MODE_CHANGE = "ModeChange";
+html$._KeyName.NEXT_CANDIDATE = "NextCandidate";
+html$._KeyName.NON_CONVERT = "Nonconvert";
+html$._KeyName.NUM_LOCK = "NumLock";
+html$._KeyName.PAGE_DOWN = "PageDown";
+html$._KeyName.PAGE_UP = "PageUp";
+html$._KeyName.PASTE = "Paste";
+html$._KeyName.PAUSE = "Pause";
+html$._KeyName.PLAY = "Play";
+html$._KeyName.POWER = "Power";
+html$._KeyName.PREVIOUS_CANDIDATE = "PreviousCandidate";
+html$._KeyName.PRINT_SCREEN = "PrintScreen";
+html$._KeyName.PROCESS = "Process";
+html$._KeyName.PROPS = "Props";
+html$._KeyName.RIGHT = "Right";
+html$._KeyName.ROMAN_CHARACTERS = "RomanCharacters";
+html$._KeyName.SCROLL = "Scroll";
+html$._KeyName.SELECT = "Select";
+html$._KeyName.SELECT_MEDIA = "SelectMedia";
+html$._KeyName.SEPARATOR = "Separator";
+html$._KeyName.SHIFT = "Shift";
+html$._KeyName.SOFT_1 = "Soft1";
+html$._KeyName.SOFT_2 = "Soft2";
+html$._KeyName.SOFT_3 = "Soft3";
+html$._KeyName.SOFT_4 = "Soft4";
+html$._KeyName.STOP = "Stop";
+html$._KeyName.SUBTRACT = "Subtract";
+html$._KeyName.SYMBOL_LOCK = "SymbolLock";
+html$._KeyName.UP = "Up";
+html$._KeyName.UP_LEFT = "UpLeft";
+html$._KeyName.UP_RIGHT = "UpRight";
+html$._KeyName.UNDO = "Undo";
+html$._KeyName.VOLUME_DOWN = "VolumeDown";
+html$._KeyName.VOLUMN_MUTE = "VolumeMute";
+html$._KeyName.VOLUMN_UP = "VolumeUp";
+html$._KeyName.WIN = "Win";
+html$._KeyName.ZOOM = "Zoom";
+html$._KeyName.BACKSPACE = "Backspace";
+html$._KeyName.TAB = "Tab";
+html$._KeyName.CANCEL = "Cancel";
+html$._KeyName.ESC = "Esc";
+html$._KeyName.SPACEBAR = "Spacebar";
+html$._KeyName.DEL = "Del";
+html$._KeyName.DEAD_GRAVE = "DeadGrave";
+html$._KeyName.DEAD_EACUTE = "DeadEacute";
+html$._KeyName.DEAD_CIRCUMFLEX = "DeadCircumflex";
+html$._KeyName.DEAD_TILDE = "DeadTilde";
+html$._KeyName.DEAD_MACRON = "DeadMacron";
+html$._KeyName.DEAD_BREVE = "DeadBreve";
+html$._KeyName.DEAD_ABOVE_DOT = "DeadAboveDot";
+html$._KeyName.DEAD_UMLAUT = "DeadUmlaut";
+html$._KeyName.DEAD_ABOVE_RING = "DeadAboveRing";
+html$._KeyName.DEAD_DOUBLEACUTE = "DeadDoubleacute";
+html$._KeyName.DEAD_CARON = "DeadCaron";
+html$._KeyName.DEAD_CEDILLA = "DeadCedilla";
+html$._KeyName.DEAD_OGONEK = "DeadOgonek";
+html$._KeyName.DEAD_IOTA = "DeadIota";
+html$._KeyName.DEAD_VOICED_SOUND = "DeadVoicedSound";
+html$._KeyName.DEC_SEMIVOICED_SOUND = "DeadSemivoicedSound";
+html$._KeyName.UNIDENTIFIED = "Unidentified";
+const _stream$0 = Symbol('_stream');
+const _keyDownList = Symbol('_keyDownList');
+const _capsLockOn = Symbol('_capsLockOn');
+const _determineKeyCodeForKeypress = Symbol('_determineKeyCodeForKeypress');
+const _findCharCodeKeyDown = Symbol('_findCharCodeKeyDown');
+const _firesKeyPressEvent = Symbol('_firesKeyPressEvent');
+const _normalizeKeyCodes = Symbol('_normalizeKeyCodes');
+html$._KeyboardEventHandler = class _KeyboardEventHandler extends html$.EventStreamProvider$(html$.KeyEvent) {
+  forTarget(e, opts) {
+    let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
+    let handler = new html$._KeyboardEventHandler.initializeAllEventListeners(this[_type$], e);
+    return handler[_stream$0];
+  }
+  new(type) {
+    this[_keyDownList] = JSArrayOfKeyEvent().of([]);
+    this[_type$] = type;
+    this[_stream$0] = new html$._CustomKeyEventStreamImpl('event');
+    this[_target$0] = null;
+    super.new(html$._KeyboardEventHandler._EVENT_TYPE);
+  }
+  initializeAllEventListeners(type, target) {
+    this[_keyDownList] = JSArrayOfKeyEvent().of([]);
+    this[_type$] = type;
+    this[_target$0] = target;
+    this[_stream$0] = null;
+    super.new(html$._KeyboardEventHandler._EVENT_TYPE);
+    html$.Element.keyDownEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyDown'));
+    html$.Element.keyPressEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyPress'));
+    html$.Element.keyUpEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyUp'));
+    this[_stream$0] = new html$._CustomKeyEventStreamImpl(this[_type$]);
+  }
+  get [_capsLockOn]() {
+    return this[_keyDownList][dartx.any](dart.fn(element => element.keyCode == html$.KeyCode.CAPS_LOCK, KeyEventTobool()));
+  }
+  [_determineKeyCodeForKeypress](event) {
+    for (let prevEvent of this[_keyDownList]) {
+      if (prevEvent[_shadowCharCode] == event[dartx.charCode]) {
+        return prevEvent.keyCode;
+      }
+      if ((dart.test(event[dartx.shiftKey]) || dart.test(this[_capsLockOn])) && dart.notNull(event[dartx.charCode]) >= dart.notNull("A"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) <= dart.notNull("Z"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET) == prevEvent[_shadowCharCode]) {
+        return prevEvent.keyCode;
+      }
+    }
+    return html$.KeyCode.UNKNOWN;
+  }
+  [_findCharCodeKeyDown](event) {
+    if (event[dartx.keyLocation] == 3) {
+      switch (event[dartx.keyCode]) {
+        case html$.KeyCode.NUM_ZERO:
+        {
+          return html$.KeyCode.ZERO;
+        }
+        case html$.KeyCode.NUM_ONE:
+        {
+          return html$.KeyCode.ONE;
+        }
+        case html$.KeyCode.NUM_TWO:
+        {
+          return html$.KeyCode.TWO;
+        }
+        case html$.KeyCode.NUM_THREE:
+        {
+          return html$.KeyCode.THREE;
+        }
+        case html$.KeyCode.NUM_FOUR:
+        {
+          return html$.KeyCode.FOUR;
+        }
+        case html$.KeyCode.NUM_FIVE:
+        {
+          return html$.KeyCode.FIVE;
+        }
+        case html$.KeyCode.NUM_SIX:
+        {
+          return html$.KeyCode.SIX;
+        }
+        case html$.KeyCode.NUM_SEVEN:
+        {
+          return html$.KeyCode.SEVEN;
+        }
+        case html$.KeyCode.NUM_EIGHT:
+        {
+          return html$.KeyCode.EIGHT;
+        }
+        case html$.KeyCode.NUM_NINE:
+        {
+          return html$.KeyCode.NINE;
+        }
+        case html$.KeyCode.NUM_MULTIPLY:
+        {
+          return 42;
+        }
+        case html$.KeyCode.NUM_PLUS:
+        {
+          return 43;
+        }
+        case html$.KeyCode.NUM_MINUS:
+        {
+          return 45;
+        }
+        case html$.KeyCode.NUM_PERIOD:
+        {
+          return 46;
+        }
+        case html$.KeyCode.NUM_DIVISION:
+        {
+          return 47;
+        }
+      }
+    } else if (dart.notNull(event[dartx.keyCode]) >= 65 && dart.notNull(event[dartx.keyCode]) <= 90) {
+      return dart.notNull(event[dartx.keyCode]) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET);
+    }
+    switch (event[dartx.keyCode]) {
+      case html$.KeyCode.SEMICOLON:
+      {
+        return html$.KeyCode.FF_SEMICOLON;
+      }
+      case html$.KeyCode.EQUALS:
+      {
+        return html$.KeyCode.FF_EQUALS;
+      }
+      case html$.KeyCode.COMMA:
+      {
+        return 44;
+      }
+      case html$.KeyCode.DASH:
+      {
+        return 45;
+      }
+      case html$.KeyCode.PERIOD:
+      {
+        return 46;
+      }
+      case html$.KeyCode.SLASH:
+      {
+        return 47;
+      }
+      case html$.KeyCode.APOSTROPHE:
+      {
+        return 96;
+      }
+      case html$.KeyCode.OPEN_SQUARE_BRACKET:
+      {
+        return 91;
+      }
+      case html$.KeyCode.BACKSLASH:
+      {
+        return 92;
+      }
+      case html$.KeyCode.CLOSE_SQUARE_BRACKET:
+      {
+        return 93;
+      }
+      case html$.KeyCode.SINGLE_QUOTE:
+      {
+        return 39;
+      }
+    }
+    return event[dartx.keyCode];
+  }
+  [_firesKeyPressEvent](event) {
+    if (!dart.test(html_common.Device.isIE) && !dart.test(html_common.Device.isWebKit)) {
+      return true;
+    }
+    if (dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && dart.test(event.altKey)) {
+      return html$.KeyCode.isCharacterKey(event.keyCode);
+    }
+    if (dart.test(event.altKey) && !dart.test(event.ctrlKey)) {
+      return false;
+    }
+    if (!dart.test(event.shiftKey) && (this[_keyDownList][dartx.last].keyCode == html$.KeyCode.CTRL || this[_keyDownList][dartx.last].keyCode == html$.KeyCode.ALT || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html$.KeyCode.META)) {
+      return false;
+    }
+    if (dart.test(html_common.Device.isWebKit) && dart.test(event.ctrlKey) && dart.test(event.shiftKey) && (event.keyCode == html$.KeyCode.BACKSLASH || event.keyCode == html$.KeyCode.OPEN_SQUARE_BRACKET || event.keyCode == html$.KeyCode.CLOSE_SQUARE_BRACKET || event.keyCode == html$.KeyCode.TILDE || event.keyCode == html$.KeyCode.SEMICOLON || event.keyCode == html$.KeyCode.DASH || event.keyCode == html$.KeyCode.EQUALS || event.keyCode == html$.KeyCode.COMMA || event.keyCode == html$.KeyCode.PERIOD || event.keyCode == html$.KeyCode.SLASH || event.keyCode == html$.KeyCode.APOSTROPHE || event.keyCode == html$.KeyCode.SINGLE_QUOTE)) {
+      return false;
+    }
+    switch (event.keyCode) {
+      case html$.KeyCode.ENTER:
+      {
+        return !dart.test(html_common.Device.isIE);
+      }
+      case html$.KeyCode.ESC:
+      {
+        return !dart.test(html_common.Device.isWebKit);
+      }
+    }
+    return html$.KeyCode.isCharacterKey(event.keyCode);
+  }
+  [_normalizeKeyCodes](event) {
+    if (dart.test(html_common.Device.isFirefox)) {
+      switch (event[dartx.keyCode]) {
+        case html$.KeyCode.FF_EQUALS:
+        {
+          return html$.KeyCode.EQUALS;
+        }
+        case html$.KeyCode.FF_SEMICOLON:
+        {
+          return html$.KeyCode.SEMICOLON;
+        }
+        case html$.KeyCode.MAC_FF_META:
+        {
+          return html$.KeyCode.META;
+        }
+        case html$.KeyCode.WIN_KEY_FF_LINUX:
+        {
+          return html$.KeyCode.WIN_KEY;
+        }
+      }
+    }
+    return event[dartx.keyCode];
+  }
+  processKeyDown(e) {
+    if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && (this[_keyDownList][dartx.last].keyCode == html$.KeyCode.CTRL && !dart.test(e[dartx.ctrlKey]) || this[_keyDownList][dartx.last].keyCode == html$.KeyCode.ALT && !dart.test(e[dartx.altKey]) || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html$.KeyCode.META && !dart.test(e[dartx.metaKey]))) {
+      this[_keyDownList][dartx.clear]();
+    }
+    let event = new html$.KeyEvent.wrap(e);
+    event[_shadowKeyCode] = this[_normalizeKeyCodes](event);
+    event[_shadowCharCode] = this[_findCharCodeKeyDown](event);
+    if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && event.keyCode != this[_keyDownList][dartx.last].keyCode && !dart.test(this[_firesKeyPressEvent](event))) {
+      this.processKeyPress(e);
+    }
+    this[_keyDownList][dartx.add](event);
+    this[_stream$0].add(event);
+  }
+  processKeyPress(event) {
+    let e = new html$.KeyEvent.wrap(event);
+    if (dart.test(html_common.Device.isIE)) {
+      if (e.keyCode == html$.KeyCode.ENTER || e.keyCode == html$.KeyCode.ESC) {
+        e[_shadowCharCode] = 0;
+      } else {
+        e[_shadowCharCode] = e.keyCode;
+      }
+    } else if (dart.test(html_common.Device.isOpera)) {
+      e[_shadowCharCode] = dart.test(html$.KeyCode.isCharacterKey(e.keyCode)) ? e.keyCode : 0;
+    }
+    e[_shadowKeyCode] = this[_determineKeyCodeForKeypress](e);
+    if (e[_shadowKeyIdentifier] != null && dart.test(html$._KeyboardEventHandler._keyIdentifier[dartx.containsKey](e[_shadowKeyIdentifier]))) {
+      e[_shadowKeyCode] = html$._KeyboardEventHandler._keyIdentifier[dartx._get](e[_shadowKeyIdentifier]);
+    }
+    e[_shadowAltKey] = this[_keyDownList][dartx.any](dart.fn(element => element.altKey, KeyEventTobool()));
+    this[_stream$0].add(e);
+  }
+  processKeyUp(event) {
+    let e = new html$.KeyEvent.wrap(event);
+    let toRemove = null;
+    for (let key of this[_keyDownList]) {
+      if (key.keyCode == e.keyCode) {
+        toRemove = key;
+      }
+    }
+    if (toRemove != null) {
+      this[_keyDownList][dartx.removeWhere](dart.fn(element => dart.equals(element, toRemove), KeyEventTobool()));
+    } else if (dart.notNull(this[_keyDownList][dartx.length]) > 0) {
+      this[_keyDownList][dartx.removeLast]();
+    }
+    this[_stream$0].add(e);
+  }
+};
+dart.addSimpleTypeTests(html$._KeyboardEventHandler);
+dart.defineNamedConstructor(html$._KeyboardEventHandler, 'initializeAllEventListeners');
+dart.setSignature(html$._KeyboardEventHandler, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$._KeyboardEventHandler, [core.String]),
+    initializeAllEventListeners: dart.definiteFunctionType(html$._KeyboardEventHandler, [core.String, html$.EventTarget])
+  }),
+  fields: () => ({
+    [_keyDownList]: ListOfKeyEvent(),
+    [_type$]: core.String,
+    [_target$0]: html$.EventTarget,
+    [_stream$0]: html$._CustomKeyEventStreamImpl
+  }),
+  getters: () => ({[_capsLockOn]: dart.definiteFunctionType(core.bool, [])}),
+  methods: () => ({
+    forTarget: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget], {useCapture: core.bool}),
+    [_determineKeyCodeForKeypress]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
+    [_findCharCodeKeyDown]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
+    [_firesKeyPressEvent]: dart.definiteFunctionType(core.bool, [html$.KeyEvent]),
+    [_normalizeKeyCodes]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
+    processKeyDown: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent]),
+    processKeyPress: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent]),
+    processKeyUp: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent])
+  }),
+  sfields: () => ({
+    _ROMAN_ALPHABET_OFFSET: core.int,
+    _EVENT_TYPE: core.String,
+    _keyIdentifier: MapOfString$int()
+  })
+});
+html$._KeyboardEventHandler._EVENT_TYPE = 'KeyEvent';
+html$._KeyboardEventHandler._keyIdentifier = dart.const(dart.map({Up: html$.KeyCode.UP, Down: html$.KeyCode.DOWN, Left: html$.KeyCode.LEFT, Right: html$.KeyCode.RIGHT, Enter: html$.KeyCode.ENTER, F1: html$.KeyCode.F1, F2: html$.KeyCode.F2, F3: html$.KeyCode.F3, F4: html$.KeyCode.F4, F5: html$.KeyCode.F5, F6: html$.KeyCode.F6, F7: html$.KeyCode.F7, F8: html$.KeyCode.F8, F9: html$.KeyCode.F9, F10: html$.KeyCode.F10, F11: html$.KeyCode.F11, F12: html$.KeyCode.F12, 'U+007F': html$.KeyCode.DELETE, Home: html$.KeyCode.HOME, End: html$.KeyCode.END, PageUp: html$.KeyCode.PAGE_UP, PageDown: html$.KeyCode.PAGE_DOWN, Insert: html$.KeyCode.INSERT}, core.String, core.int));
+dart.defineLazy(html$._KeyboardEventHandler, {
+  get _ROMAN_ALPHABET_OFFSET() {
+    return dart.notNull("a"[dartx.codeUnits][dartx._get](0)) - dart.notNull("A"[dartx.codeUnits][dartx._get](0));
+  }
+});
+html$.KeyboardEventStream = class KeyboardEventStream extends core.Object {
+  static onKeyPress(target) {
+    return new html$._KeyboardEventHandler('keypress').forTarget(target);
+  }
+  static onKeyUp(target) {
+    return new html$._KeyboardEventHandler('keyup').forTarget(target);
+  }
+  static onKeyDown(target) {
+    return new html$._KeyboardEventHandler('keydown').forTarget(target);
+  }
+};
+dart.setSignature(html$.KeyboardEventStream, {
+  statics: () => ({
+    onKeyPress: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget]),
+    onKeyUp: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget]),
+    onKeyDown: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget])
+  }),
+  names: ['onKeyPress', 'onKeyUp', 'onKeyDown']
+});
+const _validators = Symbol('_validators');
+html$.NodeValidatorBuilder = class NodeValidatorBuilder extends core.Object {
+  new() {
+    this[_validators] = JSArrayOfNodeValidator().of([]);
+  }
+  common() {
+    this[_validators] = JSArrayOfNodeValidator().of([]);
+    this.allowHtml5();
+    this.allowTemplating();
+  }
+  allowNavigation(uriPolicy) {
+    if (uriPolicy === void 0) uriPolicy = null;
+    if (uriPolicy == null) {
+      uriPolicy = html$.UriPolicy.new();
+    }
+    this.add(html$._SimpleNodeValidator.allowNavigation(uriPolicy));
+  }
+  allowImages(uriPolicy) {
+    if (uriPolicy === void 0) uriPolicy = null;
+    if (uriPolicy == null) {
+      uriPolicy = html$.UriPolicy.new();
+    }
+    this.add(html$._SimpleNodeValidator.allowImages(uriPolicy));
+  }
+  allowTextElements() {
+    this.add(html$._SimpleNodeValidator.allowTextElements());
+  }
+  allowInlineStyles(opts) {
+    let tagName = opts && 'tagName' in opts ? opts.tagName : null;
+    if (tagName == null) {
+      tagName = '*';
+    } else {
+      tagName = tagName[dartx.toUpperCase]();
+    }
+    this.add(new html$._SimpleNodeValidator(null, {allowedAttributes: JSArrayOfString().of([dart.str`${tagName}::style`])}));
+  }
+  allowHtml5(opts) {
+    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
+    this.add(new html$._Html5NodeValidator({uriPolicy: uriPolicy}));
+  }
+  allowSvg() {
+    this.add(new html$._SvgNodeValidator());
+  }
+  allowCustomElement(tagName, opts) {
+    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
+    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
+    let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
+    let tagNameUpper = tagName[dartx.toUpperCase]();
+    let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
+    let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
+    if (uriPolicy == null) {
+      uriPolicy = html$.UriPolicy.new();
+    }
+    this.add(new html$._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper]), attrs, uriAttrs, false, true));
+  }
+  allowTagExtension(tagName, baseName, opts) {
+    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
+    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
+    let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
+    let baseNameUpper = baseName[dartx.toUpperCase]();
+    let tagNameUpper = tagName[dartx.toUpperCase]();
+    let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
+    let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
+    if (uriPolicy == null) {
+      uriPolicy = html$.UriPolicy.new();
+    }
+    this.add(new html$._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper, baseNameUpper]), attrs, uriAttrs, true, false));
+  }
+  allowElement(tagName, opts) {
+    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
+    let attributes = opts && 'attributes' in opts ? opts.attributes : null;
+    let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
+    this.allowCustomElement(tagName, {uriPolicy: uriPolicy, attributes: attributes, uriAttributes: uriAttributes});
+  }
+  allowTemplating() {
+    this.add(new html$._TemplatingNodeValidator());
+  }
+  add(validator) {
+    this[_validators][dartx.add](validator);
+  }
+  allowsElement(element) {
+    return this[_validators][dartx.any](dart.fn(v => v.allowsElement(element), NodeValidatorTobool()));
+  }
+  allowsAttribute(element, attributeName, value) {
+    return this[_validators][dartx.any](dart.fn(v => v.allowsAttribute(element, attributeName, value), NodeValidatorTobool()));
+  }
+};
+dart.defineNamedConstructor(html$.NodeValidatorBuilder, 'common');
+html$.NodeValidatorBuilder[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$.NodeValidatorBuilder, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.NodeValidatorBuilder, []),
+    common: dart.definiteFunctionType(html$.NodeValidatorBuilder, [])
+  }),
+  fields: () => ({[_validators]: ListOfNodeValidator()}),
+  methods: () => ({
+    allowNavigation: dart.definiteFunctionType(dart.void, [], [html$.UriPolicy]),
+    allowImages: dart.definiteFunctionType(dart.void, [], [html$.UriPolicy]),
+    allowTextElements: dart.definiteFunctionType(dart.void, []),
+    allowInlineStyles: dart.definiteFunctionType(dart.void, [], {tagName: core.String}),
+    allowHtml5: dart.definiteFunctionType(dart.void, [], {uriPolicy: html$.UriPolicy}),
+    allowSvg: dart.definiteFunctionType(dart.void, []),
+    allowCustomElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
+    allowTagExtension: dart.definiteFunctionType(dart.void, [core.String, core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
+    allowElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
+    allowTemplating: dart.definiteFunctionType(dart.void, []),
+    add: dart.definiteFunctionType(dart.void, [html$.NodeValidator]),
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
+  })
+});
+let const$83;
+let const$84;
+let const$85;
+let const$86;
+let const$87;
+let const$88;
+let const$89;
+let const$90;
+let const$91;
+let const$92;
+html$._SimpleNodeValidator = class _SimpleNodeValidator extends core.Object {
+  static allowNavigation(uriPolicy) {
+    return new html$._SimpleNodeValidator(uriPolicy, {allowedElements: const$83 || (const$83 = dart.constList(['A', 'FORM'], core.String)), allowedAttributes: const$84 || (const$84 = dart.constList(['A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target'], core.String)), allowedUriAttributes: const$85 || (const$85 = dart.constList(['A::href', 'FORM::action'], core.String))});
+  }
+  static allowImages(uriPolicy) {
+    return new html$._SimpleNodeValidator(uriPolicy, {allowedElements: const$86 || (const$86 = dart.constList(['IMG'], core.String)), allowedAttributes: const$87 || (const$87 = dart.constList(['IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width'], core.String)), allowedUriAttributes: const$88 || (const$88 = dart.constList(['IMG::src'], core.String))});
+  }
+  static allowTextElements() {
+    return new html$._SimpleNodeValidator(null, {allowedElements: const$89 || (const$89 = dart.constList(['B', 'BLOCKQUOTE', 'BR', 'EM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'LI', 'OL', 'P', 'SPAN', 'UL'], core.String))});
+  }
+  new(uriPolicy, opts) {
+    let allowedElements = opts && 'allowedElements' in opts ? opts.allowedElements : null;
+    let allowedAttributes = opts && 'allowedAttributes' in opts ? opts.allowedAttributes : null;
+    let allowedUriAttributes = opts && 'allowedUriAttributes' in opts ? opts.allowedUriAttributes : null;
+    this.allowedElements = SetOfString().new();
+    this.allowedAttributes = SetOfString().new();
+    this.allowedUriAttributes = SetOfString().new();
+    this.uriPolicy = uriPolicy;
+    this.allowedElements.addAll((allowedElements != null ? allowedElements : const$90 || (const$90 = dart.constList([], core.String))));
+    allowedAttributes = allowedAttributes != null ? allowedAttributes : const$91 || (const$91 = dart.constList([], core.String));
+    allowedUriAttributes = allowedUriAttributes != null ? allowedUriAttributes : const$92 || (const$92 = dart.constList([], core.String));
+    let legalAttributes = allowedAttributes[dartx.where](dart.fn(x => !dart.test(html$._Html5NodeValidator._uriAttributes[dartx.contains](x)), StringTobool$()));
+    let extraUriAttributes = allowedAttributes[dartx.where](dart.fn(x => html$._Html5NodeValidator._uriAttributes[dartx.contains](x), StringTobool$()));
+    this.allowedAttributes.addAll(legalAttributes);
+    this.allowedUriAttributes.addAll(allowedUriAttributes);
+    this.allowedUriAttributes.addAll(extraUriAttributes);
+  }
+  allowsElement(element) {
+    return this.allowedElements.contains(html$.Element._safeTagName(element));
+  }
+  allowsAttribute(element, attributeName, value) {
+    let tagName = html$.Element._safeTagName(element);
+    if (dart.test(this.allowedUriAttributes.contains(dart.str`${tagName}::${attributeName}`))) {
+      return this.uriPolicy.allowsUri(value);
+    } else if (dart.test(this.allowedUriAttributes.contains(dart.str`*::${attributeName}`))) {
+      return this.uriPolicy.allowsUri(value);
+    } else if (dart.test(this.allowedAttributes.contains(dart.str`${tagName}::${attributeName}`))) {
+      return true;
+    } else if (dart.test(this.allowedAttributes.contains(dart.str`*::${attributeName}`))) {
+      return true;
+    } else if (dart.test(this.allowedAttributes.contains(dart.str`${tagName}::*`))) {
+      return true;
+    } else if (dart.test(this.allowedAttributes.contains('*::*'))) {
+      return true;
+    }
+    return false;
+  }
+};
+html$._SimpleNodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._SimpleNodeValidator, {
+  constructors: () => ({
+    allowNavigation: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy]),
+    allowImages: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy]),
+    allowTextElements: dart.definiteFunctionType(html$._SimpleNodeValidator, []),
+    new: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy], {allowedElements: IterableOfString(), allowedAttributes: IterableOfString(), allowedUriAttributes: IterableOfString()})
+  }),
+  fields: () => ({
+    allowedElements: SetOfString(),
+    allowedAttributes: SetOfString(),
+    allowedUriAttributes: SetOfString(),
+    uriPolicy: html$.UriPolicy
+  }),
+  methods: () => ({
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
+  })
+});
+html$._CustomElementNodeValidator = class _CustomElementNodeValidator extends html$._SimpleNodeValidator {
+  new(uriPolicy, allowedElements, allowedAttributes, allowedUriAttributes, allowTypeExtension, allowCustomTag) {
+    this.allowTypeExtension = allowTypeExtension == true;
+    this.allowCustomTag = allowCustomTag == true;
+    super.new(uriPolicy, {allowedElements: allowedElements, allowedAttributes: allowedAttributes, allowedUriAttributes: allowedUriAttributes});
+  }
+  allowsElement(element) {
+    if (dart.test(this.allowTypeExtension)) {
+      let isAttr = element[dartx.attributes][dartx._get]('is');
+      if (isAttr != null) {
+        return dart.test(this.allowedElements.contains(isAttr[dartx.toUpperCase]())) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
+      }
+    }
+    return dart.test(this.allowCustomTag) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
+  }
+  allowsAttribute(element, attributeName, value) {
+    if (dart.test(this.allowsElement(element))) {
+      if (dart.test(this.allowTypeExtension) && attributeName == 'is' && dart.test(this.allowedElements.contains(value[dartx.toUpperCase]()))) {
+        return true;
+      }
+      return super.allowsAttribute(element, attributeName, value);
+    }
+    return false;
+  }
+};
+dart.setSignature(html$._CustomElementNodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._CustomElementNodeValidator, [html$.UriPolicy, IterableOfString(), IterableOfString(), IterableOfString(), core.bool, core.bool])}),
+  fields: () => ({
+    allowTypeExtension: core.bool,
+    allowCustomTag: core.bool
+  })
+});
+const _templateAttrs = Symbol('_templateAttrs');
+html$._TemplatingNodeValidator = class _TemplatingNodeValidator extends html$._SimpleNodeValidator {
+  new() {
+    this[_templateAttrs] = SetOfString().from(html$._TemplatingNodeValidator._TEMPLATE_ATTRS);
+    super.new(null, {allowedElements: JSArrayOfString().of(['TEMPLATE']), allowedAttributes: html$._TemplatingNodeValidator._TEMPLATE_ATTRS[dartx.map](core.String)(dart.fn(attr => dart.str`TEMPLATE::${attr}`, StringToString$()))});
+  }
+  allowsAttribute(element, attributeName, value) {
+    if (dart.test(super.allowsAttribute(element, attributeName, value))) {
+      return true;
+    }
+    if (attributeName == 'template' && value == "") {
+      return true;
+    }
+    if (element[dartx.attributes][dartx._get]('template') == "") {
+      return this[_templateAttrs].contains(attributeName);
+    }
+    return false;
+  }
+};
+dart.setSignature(html$._TemplatingNodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._TemplatingNodeValidator, [])}),
+  fields: () => ({[_templateAttrs]: SetOfString()}),
+  sfields: () => ({_TEMPLATE_ATTRS: ListOfString()})
+});
+html$._TemplatingNodeValidator._TEMPLATE_ATTRS = dart.constList(['bind', 'if', 'ref', 'repeat', 'syntax'], core.String);
+html$._SvgNodeValidator = class _SvgNodeValidator extends core.Object {
+  allowsElement(element) {
+    if (svg$.ScriptElement.is(element)) {
+      return false;
+    }
+    if (svg$.SvgElement.is(element) && html$.Element._safeTagName(element) == 'foreignObject') {
+      return false;
+    }
+    if (svg$.SvgElement.is(element)) {
+      return true;
+    }
+    return false;
+  }
+  allowsAttribute(element, attributeName, value) {
+    if (attributeName == 'is' || dart.test(attributeName[dartx.startsWith]('on'))) {
+      return false;
+    }
+    return this.allowsElement(element);
+  }
+};
+html$._SvgNodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._SvgNodeValidator, {
+  methods: () => ({
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
+  })
+});
+html$.ReadyState = class ReadyState extends core.Object {};
+dart.setSignature(html$.ReadyState, {
+  sfields: () => ({
+    LOADING: core.String,
+    INTERACTIVE: core.String,
+    COMPLETE: core.String
+  })
+});
+html$.ReadyState.LOADING = "loading";
+html$.ReadyState.INTERACTIVE = "interactive";
+html$.ReadyState.COMPLETE = "complete";
+const _list$ = Symbol('_list');
+html$._WrappedList$ = dart.generic(E => {
+  let _WrappedIteratorOfE = () => (_WrappedIteratorOfE = dart.constFn(html$._WrappedIterator$(E)))();
+  let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
+  let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
+  class _WrappedList extends collection.ListBase$(E) {
+    new(list) {
+      this[_list$] = list;
+    }
+    get iterator() {
+      return new (_WrappedIteratorOfE())(this[_list$][dartx.iterator]);
+    }
+    get length() {
+      return this[_list$][dartx.length];
+    }
+    add(element) {
+      E._check(element);
+      this[_list$][dartx.add](element);
+    }
+    remove(element) {
+      return this[_list$][dartx.remove](element);
+    }
+    clear() {
+      this[_list$][dartx.clear]();
+    }
+    _get(index) {
+      return html$._downcast(html$.Node, E)(this[_list$][dartx._get](index));
+    }
+    _set(index, value) {
+      E._check(value);
+      this[_list$][dartx._set](index, value);
+      return value;
+    }
+    set length(newLength) {
+      this[_list$][dartx.length] = newLength;
+    }
+    sort(compare) {
+      if (compare === void 0) compare = null;
+      this[_list$][dartx.sort](dart.fn((a, b) => compare(html$._downcast(html$.Node, E)(a), html$._downcast(html$.Node, E)(b)), NodeAndNodeToint()));
+    }
+    indexOf(element, start) {
+      if (start === void 0) start = 0;
+      return this[_list$][dartx.indexOf](html$.Node._check(element), start);
+    }
+    lastIndexOf(element, start) {
+      if (start === void 0) start = null;
+      return this[_list$][dartx.lastIndexOf](html$.Node._check(element), start);
+    }
+    insert(index, element) {
+      E._check(element);
+      return this[_list$][dartx.insert](index, element);
+    }
+    removeAt(index) {
+      return html$._downcast(html$.Node, E)(this[_list$][dartx.removeAt](index));
+    }
+    setRange(start, end, iterable, skipCount) {
+      IterableOfE()._check(iterable);
+      if (skipCount === void 0) skipCount = 0;
+      this[_list$][dartx.setRange](start, end, iterable, skipCount);
+    }
+    removeRange(start, end) {
+      this[_list$][dartx.removeRange](start, end);
+    }
+    replaceRange(start, end, iterable) {
+      IterableOfE()._check(iterable);
+      this[_list$][dartx.replaceRange](start, end, iterable);
+    }
+    fillRange(start, end, fillValue) {
+      if (fillValue === void 0) fillValue = null;
+      E._check(fillValue);
+      this[_list$][dartx.fillRange](start, end, fillValue);
+    }
+    get rawList() {
+      return this[_list$];
+    }
+  }
+  _WrappedList[dart.implements] = () => [html_common.NodeListWrapper];
+  dart.setSignature(_WrappedList, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._WrappedList$(E), [ListOfNode()])}),
+    fields: () => ({[_list$]: ListOfNode()}),
+    getters: () => ({
+      length: dart.definiteFunctionType(core.int, []),
+      rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
+    }),
+    setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
+    methods: () => ({
+      _get: dart.definiteFunctionType(E, [core.int]),
+      _set: dart.definiteFunctionType(dart.void, [core.int, E])
+    })
+  });
+  dart.defineExtensionMembers(_WrappedList, [
+    'add',
+    'remove',
+    'clear',
+    '_get',
+    '_set',
+    'sort',
+    'indexOf',
+    'lastIndexOf',
+    'insert',
+    'removeAt',
+    'setRange',
+    'removeRange',
+    'replaceRange',
+    'fillRange',
+    'iterator',
+    'length',
+    'length'
+  ]);
+  return _WrappedList;
+});
+html$._WrappedList = _WrappedList();
+const _iterator$1 = Symbol('_iterator');
+html$._WrappedIterator$ = dart.generic(E => {
+  let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
+  class _WrappedIterator extends core.Object {
+    new(iterator) {
+      this[_iterator$1] = iterator;
+    }
+    moveNext() {
+      return this[_iterator$1].moveNext();
+    }
+    get current() {
+      return html$._downcast(html$.Node, E)(this[_iterator$1].current);
+    }
+  }
+  dart.addTypeTests(_WrappedIterator);
+  _WrappedIterator[dart.implements] = () => [IteratorOfE()];
+  dart.setSignature(_WrappedIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._WrappedIterator$(E), [IteratorOfNode()])}),
+    fields: () => ({[_iterator$1]: IteratorOfNode()}),
+    getters: () => ({current: dart.definiteFunctionType(E, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _WrappedIterator;
+});
+html$._WrappedIterator = _WrappedIterator();
+html$._downcast = function(From, To) {
+  return x => {
+    return To._check(x);
+  };
+};
+dart.fn(html$._downcast, FromToTo());
+html$._HttpRequestUtils = class _HttpRequestUtils extends core.Object {
+  static get(url, onComplete, withCredentials) {
+    let request = html$.HttpRequest.new();
+    request[dartx.open]('GET', url, {async: true});
+    request[dartx.withCredentials] = withCredentials;
+    request[dartx.onReadyStateChange].listen(dart.fn(e => {
+      if (request[dartx.readyState] == html$.HttpRequest.DONE) {
+        onComplete(request);
+      }
+    }, ProgressEventToNull()));
+    request[dartx.send]();
+    return request;
+  }
+};
+dart.setSignature(html$._HttpRequestUtils, {
+  statics: () => ({get: dart.definiteFunctionType(html$.HttpRequest, [core.String, HttpRequestTodynamic(), core.bool])}),
+  names: ['get']
+});
+const _array = Symbol('_array');
+const _current$4 = Symbol('_current');
+html$.FixedSizeListIterator$ = dart.generic(T => {
+  let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
+  let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
+  class FixedSizeListIterator extends core.Object {
+    new(array) {
+      this[_array] = array;
+      this[_position$1] = -1;
+      this[_length$3] = array[dartx.length];
+      this[_current$4] = null;
+    }
+    moveNext() {
+      let nextPosition = dart.notNull(this[_position$1]) + 1;
+      if (nextPosition < dart.notNull(this[_length$3])) {
+        this[_current$4] = this[_array][dartx._get](nextPosition);
+        this[_position$1] = nextPosition;
+        return true;
+      }
+      this[_current$4] = null;
+      this[_position$1] = this[_length$3];
+      return false;
+    }
+    get current() {
+      return this[_current$4];
+    }
+  }
+  dart.addTypeTests(FixedSizeListIterator);
+  FixedSizeListIterator[dart.implements] = () => [IteratorOfT()];
+  dart.setSignature(FixedSizeListIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(html$.FixedSizeListIterator$(T), [ListOfT()])}),
+    fields: () => ({
+      [_array]: ListOfT(),
+      [_length$3]: core.int,
+      [_position$1]: core.int,
+      [_current$4]: T
+    }),
+    getters: () => ({current: dart.definiteFunctionType(T, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return FixedSizeListIterator;
+});
+html$.FixedSizeListIterator = FixedSizeListIterator();
+html$._VariableSizeListIterator$ = dart.generic(T => {
+  let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
+  let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
+  class _VariableSizeListIterator extends core.Object {
+    new(array) {
+      this[_array] = array;
+      this[_position$1] = -1;
+      this[_current$4] = null;
+    }
+    moveNext() {
+      let nextPosition = dart.notNull(this[_position$1]) + 1;
+      if (nextPosition < dart.notNull(this[_array][dartx.length])) {
+        this[_current$4] = this[_array][dartx._get](nextPosition);
+        this[_position$1] = nextPosition;
+        return true;
+      }
+      this[_current$4] = null;
+      this[_position$1] = this[_array][dartx.length];
+      return false;
+    }
+    get current() {
+      return this[_current$4];
+    }
+  }
+  dart.addTypeTests(_VariableSizeListIterator);
+  _VariableSizeListIterator[dart.implements] = () => [IteratorOfT()];
+  dart.setSignature(_VariableSizeListIterator, {
+    constructors: () => ({new: dart.definiteFunctionType(html$._VariableSizeListIterator$(T), [ListOfT()])}),
+    fields: () => ({
+      [_array]: ListOfT(),
+      [_position$1]: core.int,
+      [_current$4]: T
+    }),
+    getters: () => ({current: dart.definiteFunctionType(T, [])}),
+    methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
+  });
+  return _VariableSizeListIterator;
+});
+html$._VariableSizeListIterator = _VariableSizeListIterator();
+html$._convertNativeToDart_Window = function(win) {
+  if (win == null) return null;
+  return html$._DOMWindowCrossFrame._createSafe(win);
+};
+dart.fn(html$._convertNativeToDart_Window, dynamicToWindowBase());
+html$._convertNativeToDart_EventTarget = function(e) {
+  if (e == null) {
+    return null;
+  }
+  if ("postMessage" in e) {
+    let window = html$._DOMWindowCrossFrame._createSafe(e);
+    if (html$.EventTarget.is(window)) {
+      return window;
+    }
+    return null;
+  } else
+    return html$.EventTarget._check(e);
+};
+dart.fn(html$._convertNativeToDart_EventTarget, dynamicToEventTarget());
+const _window = Symbol('_window');
+html$._convertDartToNative_EventTarget = function(e) {
+  if (html$._DOMWindowCrossFrame.is(e)) {
+    return html$.EventTarget._check(e[_window]);
+  } else {
+    return html$.EventTarget._check(e);
+  }
+};
+dart.fn(html$._convertDartToNative_EventTarget, dynamicToEventTarget());
+html$._convertNativeToDart_XHR_Response = function(o) {
+  if (html$.Document.is(o)) {
+    return o;
+  }
+  return html_common.convertNativeToDart_SerializedScriptValue(o);
+};
+dart.fn(html$._convertNativeToDart_XHR_Response, dynamicTodynamic$());
+html$._callConstructor = function(constructor, interceptor) {
+  return dart.fn(receiver => {
+    _js_helper.setNativeSubclassDispatchRecord(receiver, interceptor);
+    receiver.constructor = receiver.__proto__.constructor;
+    return constructor(receiver);
+  }, dynamicTodynamic$());
+};
+dart.fn(html$._callConstructor, dynamicAnddynamicTodynamic$());
+html$._callAttached = function(receiver) {
+  return dart.dsend(receiver, 'attached');
+};
+dart.fn(html$._callAttached, dynamicTodynamic$());
+html$._callDetached = function(receiver) {
+  return dart.dsend(receiver, 'detached');
+};
+dart.fn(html$._callDetached, dynamicTodynamic$());
+html$._callAttributeChanged = function(receiver, name, oldValue, newValue) {
+  return dart.dsend(receiver, 'attributeChanged', name, oldValue, newValue);
+};
+dart.fn(html$._callAttributeChanged, dynamicAnddynamicAnddynamic__Todynamic());
+html$._makeCallbackMethod = function(callback) {
+  return (function(invokeCallback) {
+    return function() {
+      return invokeCallback(this);
+    };
+  })(_js_helper.convertDartClosureToJS(dart.dynamic)(callback, 1));
+};
+dart.fn(html$._makeCallbackMethod, dynamicTodynamic$());
+html$._makeCallbackMethod3 = function(callback) {
+  return (function(invokeCallback) {
+    return function(arg1, arg2, arg3) {
+      return invokeCallback(this, arg1, arg2, arg3);
+    };
+  })(_js_helper.convertDartClosureToJS(dart.dynamic)(callback, 4));
+};
+dart.fn(html$._makeCallbackMethod3, dynamicTodynamic$());
+html$._registerCustomElement = function(context, document, tag, type, extendsTagName) {
+  let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
+  if (interceptorClass == null) {
+    dart.throw(new core.ArgumentError(type));
+  }
+  let interceptor = interceptorClass.prototype;
+  let constructor = _interceptors.findConstructorForNativeSubclassType(type, 'created');
+  if (constructor == null) {
+    dart.throw(new core.ArgumentError(dart.str`${type} has no constructor called 'created'`));
+  }
+  _interceptors.getNativeInterceptor(html$.Element.tag('article'));
+  let baseClassName = core.String._check(_js_helper.findDispatchTagForInterceptorClass(interceptorClass));
+  if (baseClassName == null) {
+    dart.throw(new core.ArgumentError(type));
+  }
+  if (extendsTagName == null) {
+    if (baseClassName != 'HTMLElement') {
+      dart.throw(new core.UnsupportedError('Class must provide extendsTag if base ' + 'native class is not HtmlElement'));
+    }
+  } else {
+    if (!(document.createElement(extendsTagName) instanceof window[baseClassName])) {
+      dart.throw(new core.UnsupportedError('extendsTag does not match base native class'));
+    }
+  }
+  let baseConstructor = context[baseClassName];
+  let properties = {};
+  properties.createdCallback = {value: html$._makeCallbackMethod(html$._callConstructor(constructor, interceptor))};
+  properties.attachedCallback = {value: html$._makeCallbackMethod(html$._callAttached)};
+  properties.detachedCallback = {value: html$._makeCallbackMethod(html$._callDetached)};
+  properties.attributeChangedCallback = {value: html$._makeCallbackMethod3(html$._callAttributeChanged)};
+  let baseProto = baseConstructor.prototype;
+  let proto = Object.create(baseProto, properties);
+  _js_helper.setNativeSubclassDispatchRecord(proto, interceptor);
+  let options = {prototype: proto};
+  if (extendsTagName != null) {
+    options.extends = extendsTagName;
+  }
+  document.registerElement(tag, options);
+};
+dart.fn(html$._registerCustomElement, dynamicAnddynamicAndString__Tovoid());
+html$._initializeCustomElement = function(e) {
+};
+dart.fn(html$._initializeCustomElement, ElementTovoid$());
+const _interceptor = Symbol('_interceptor');
+const _constructor = Symbol('_constructor');
+const _nativeType = Symbol('_nativeType');
+html$._JSElementUpgrader = class _JSElementUpgrader extends core.Object {
+  new(document, type, extendsTag) {
+    this[_interceptor] = null;
+    this[_constructor] = null;
+    this[_nativeType] = null;
+    let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
+    if (interceptorClass == null) {
+      dart.throw(new core.ArgumentError(type));
+    }
+    this[_constructor] = _interceptors.findConstructorForNativeSubclassType(type, 'created');
+    if (this[_constructor] == null) {
+      dart.throw(new core.ArgumentError(dart.str`${type} has no constructor called 'created'`));
+    }
+    _interceptors.getNativeInterceptor(html$.Element.tag('article'));
+    let baseClassName = _js_helper.findDispatchTagForInterceptorClass(interceptorClass);
+    if (baseClassName == null) {
+      dart.throw(new core.ArgumentError(type));
+    }
+    if (extendsTag == null) {
+      if (!dart.equals(baseClassName, 'HTMLElement')) {
+        dart.throw(new core.UnsupportedError('Class must provide extendsTag if base ' + 'native class is not HtmlElement'));
+      }
+      this[_nativeType] = dart.wrapType(html$.HtmlElement);
+    } else {
+      let element = document[dartx.createElement](extendsTag);
+      if (!(element instanceof window[baseClassName])) {
+        dart.throw(new core.UnsupportedError('extendsTag does not match base native class'));
+      }
+      this[_nativeType] = dart.runtimeType(element);
+    }
+    this[_interceptor] = interceptorClass.prototype;
+  }
+  upgrade(element) {
+    if (!dart.equals(dart.runtimeType(element), this[_nativeType])) {
+      dart.throw(new core.ArgumentError(dart.str`element is not subclass of ${this[_nativeType]}`));
+    }
+    _js_helper.setNativeSubclassDispatchRecord(element, this[_interceptor]);
+    this[_constructor](element);
+    return element;
+  }
+};
+html$._JSElementUpgrader[dart.implements] = () => [html$.ElementUpgrader];
+dart.setSignature(html$._JSElementUpgrader, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._JSElementUpgrader, [html$.Document, core.Type, core.String])}),
+  fields: () => ({
+    [_interceptor]: dart.dynamic,
+    [_constructor]: dart.dynamic,
+    [_nativeType]: dart.dynamic
+  }),
+  methods: () => ({upgrade: dart.definiteFunctionType(html$.Element, [html$.Element])})
+});
+html$._DOMWindowCrossFrame = class _DOMWindowCrossFrame extends core.Object {
+  get history() {
+    return html$._HistoryCrossFrame._createSafe(this[_window].history);
+  }
+  get location() {
+    return html$._LocationCrossFrame._createSafe(this[_window].location);
+  }
+  get closed() {
+    return this[_window].closed;
+  }
+  get opener() {
+    return html$._DOMWindowCrossFrame._createSafe(this[_window].opener);
+  }
+  get parent() {
+    return html$._DOMWindowCrossFrame._createSafe(this[_window].parent);
+  }
+  get top() {
+    return html$._DOMWindowCrossFrame._createSafe(this[_window].top);
+  }
+  close() {
+    return this[_window].close();
+  }
+  postMessage(message, targetOrigin, messagePorts) {
+    if (messagePorts === void 0) messagePorts = null;
+    if (messagePorts == null) {
+      this[_window].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin);
+    } else {
+      this[_window].postMessage(html_common.convertDartToNative_SerializedScriptValue(message), targetOrigin, messagePorts);
+    }
+  }
+  new(window) {
+    this[_window] = window;
+  }
+  static _createSafe(w) {
+    if (core.identical(w, html$.window)) {
+      return html$.WindowBase._check(w);
+    } else {
+      return new html$._DOMWindowCrossFrame(w);
+    }
+  }
+  get on() {
+    return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
+  }
+  [_addEventListener](type, listener, useCapture) {
+    if (useCapture === void 0) useCapture = null;
+    return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
+  }
+  addEventListener(type, listener, useCapture) {
+    if (useCapture === void 0) useCapture = null;
+    return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
+  }
+  dispatchEvent(event) {
+    return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
+  }
+  [_removeEventListener](type, listener, useCapture) {
+    if (useCapture === void 0) useCapture = null;
+    return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
+  }
+  removeEventListener(type, listener, useCapture) {
+    if (useCapture === void 0) useCapture = null;
+    return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
+  }
+};
+html$._DOMWindowCrossFrame[dart.implements] = () => [html$.WindowBase];
+dart.setSignature(html$._DOMWindowCrossFrame, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._DOMWindowCrossFrame, [dart.dynamic])}),
+  fields: () => ({[_window]: dart.dynamic}),
+  getters: () => ({
+    history: dart.definiteFunctionType(html$.HistoryBase, []),
+    location: dart.definiteFunctionType(html$.LocationBase, []),
+    closed: dart.definiteFunctionType(core.bool, []),
+    opener: dart.definiteFunctionType(html$.WindowBase, []),
+    parent: dart.definiteFunctionType(html$.WindowBase, []),
+    top: dart.definiteFunctionType(html$.WindowBase, []),
+    on: dart.definiteFunctionType(html$.Events, [])
+  }),
+  methods: () => ({
+    close: dart.definiteFunctionType(dart.void, []),
+    postMessage: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [core.List]),
+    [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    addEventListener: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    dispatchEvent: dart.definiteFunctionType(core.bool, [html$.Event]),
+    [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    removeEventListener: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool])
+  }),
+  statics: () => ({_createSafe: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic])}),
+  names: ['_createSafe']
+});
+dart.defineExtensionMembers(html$._DOMWindowCrossFrame, [
+  'close',
+  'postMessage',
+  'history',
+  'location',
+  'closed',
+  'opener',
+  'parent',
+  'top'
+]);
+html$._LocationCrossFrame = class _LocationCrossFrame extends core.Object {
+  set href(val) {
+    return html$._LocationCrossFrame._setHref(this[_location], val);
+  }
+  static _setHref(location, val) {
+    location.href = val;
+  }
+  new(location) {
+    this[_location] = location;
+  }
+  static _createSafe(location) {
+    if (core.identical(location, html$.window[dartx.location])) {
+      return html$.LocationBase._check(location);
+    } else {
+      return new html$._LocationCrossFrame(location);
+    }
+  }
+};
+html$._LocationCrossFrame[dart.implements] = () => [html$.LocationBase];
+dart.setSignature(html$._LocationCrossFrame, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._LocationCrossFrame, [dart.dynamic])}),
+  fields: () => ({[_location]: dart.dynamic}),
+  setters: () => ({href: dart.definiteFunctionType(dart.void, [core.String])}),
+  statics: () => ({
+    _setHref: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
+    _createSafe: dart.definiteFunctionType(html$.LocationBase, [dart.dynamic])
+  }),
+  names: ['_setHref', '_createSafe']
+});
+dart.defineExtensionMembers(html$._LocationCrossFrame, ['href']);
+const _history = Symbol('_history');
+html$._HistoryCrossFrame = class _HistoryCrossFrame extends core.Object {
+  back() {
+    return this[_history].back();
+  }
+  forward() {
+    return this[_history].forward();
+  }
+  go(distance) {
+    return this[_history].go(distance);
+  }
+  new(history) {
+    this[_history] = history;
+  }
+  static _createSafe(h) {
+    if (core.identical(h, html$.window[dartx.history])) {
+      return html$.HistoryBase._check(h);
+    } else {
+      return new html$._HistoryCrossFrame(h);
+    }
+  }
+};
+html$._HistoryCrossFrame[dart.implements] = () => [html$.HistoryBase];
+dart.setSignature(html$._HistoryCrossFrame, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._HistoryCrossFrame, [dart.dynamic])}),
+  fields: () => ({[_history]: dart.dynamic}),
+  methods: () => ({
+    back: dart.definiteFunctionType(dart.void, []),
+    forward: dart.definiteFunctionType(dart.void, []),
+    go: dart.definiteFunctionType(dart.void, [core.int])
+  }),
+  statics: () => ({_createSafe: dart.definiteFunctionType(html$.HistoryBase, [dart.dynamic])}),
+  names: ['_createSafe']
+});
+dart.defineExtensionMembers(html$._HistoryCrossFrame, ['back', 'forward', 'go']);
+html$.Platform = class Platform extends core.Object {};
+dart.setSignature(html$.Platform, {
+  sfields: () => ({
+    supportsTypedData: core.bool,
+    supportsSimd: core.bool
+  })
+});
+html$.Platform.supportsSimd = false;
+dart.defineLazy(html$.Platform, {
+  get supportsTypedData() {
+    return !!window.ArrayBuffer;
+  }
+});
+html$._wrapZoneCallback$ = dart.generic((A, R) => {
+  const _wrapZoneCallback = dart.typedef('_wrapZoneCallback', () => dart.functionType(R, [A]));
+  return _wrapZoneCallback;
+});
+html$._wrapZoneCallback = _wrapZoneCallback();
+html$._wrapZoneBinaryCallback$ = dart.generic((A, B, R) => {
+  const _wrapZoneBinaryCallback = dart.typedef('_wrapZoneBinaryCallback', () => dart.functionType(R, [A, B]));
+  return _wrapZoneBinaryCallback;
+});
+html$._wrapZoneBinaryCallback = _wrapZoneBinaryCallback();
+html$._wrapZone = function(A, R) {
+  return callback => {
+    if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback;
+    if (callback == null) return null;
+    return async.Zone.current.bindUnaryCallback(R, A)(callback, {runGuarded: true});
+  };
+};
+dart.fn(html$._wrapZone, _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R());
+html$._wrapBinaryZone = function(A, B, R) {
+  return callback => {
+    if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback;
+    if (callback == null) return null;
+    return async.Zone.current.bindBinaryCallback(R, A, B)(callback, {runGuarded: true});
+  };
+};
+dart.fn(html$._wrapBinaryZone, _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R());
+html$.query = function(relativeSelectors) {
+  return html$.document[dartx.query](relativeSelectors);
+};
+dart.fn(html$.query, StringToElement());
+html$.queryAll = function(relativeSelectors) {
+  return html$.document[dartx.queryAll](html$.Element)(relativeSelectors);
+};
+dart.fn(html$.queryAll, StringToElementListOfElement());
+html$.querySelector = function(selectors) {
+  return html$.document[dartx.querySelector](selectors);
+};
+dart.fn(html$.querySelector, StringToElement());
+html$.querySelectorAll = function(selectors) {
+  return html$.document[dartx.querySelectorAll](html$.Element)(selectors);
+};
+dart.fn(html$.querySelectorAll, StringToElementListOfElement());
+html$.ElementUpgrader = class ElementUpgrader extends core.Object {};
+html$.NodeValidator = class NodeValidator extends core.Object {
+  static new(opts) {
+    let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
+    return new html$._Html5NodeValidator({uriPolicy: uriPolicy});
+  }
+  static throws(base) {
+    return new html$._ThrowsNodeValidator(base);
+  }
+};
+dart.setSignature(html$.NodeValidator, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(html$.NodeValidator, [], {uriPolicy: html$.UriPolicy}),
+    throws: dart.definiteFunctionType(html$.NodeValidator, [html$.NodeValidator])
+  })
+});
+html$.NodeTreeSanitizer = class NodeTreeSanitizer extends core.Object {
+  static new(validator) {
+    return new html$._ValidatingTreeSanitizer(validator);
+  }
+};
+dart.setSignature(html$.NodeTreeSanitizer, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.NodeTreeSanitizer, [html$.NodeValidator])}),
+  sfields: () => ({trusted: html$._TrustedHtmlTreeSanitizer})
+});
+dart.defineLazy(html$.NodeTreeSanitizer, {
+  get trusted() {
+    return dart.const(new html$._TrustedHtmlTreeSanitizer());
+  }
+});
+html$._TrustedHtmlTreeSanitizer = class _TrustedHtmlTreeSanitizer extends core.Object {
+  new() {
+  }
+  sanitizeTree(node) {}
+};
+html$._TrustedHtmlTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
+dart.setSignature(html$._TrustedHtmlTreeSanitizer, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._TrustedHtmlTreeSanitizer, [])}),
+  methods: () => ({sanitizeTree: dart.definiteFunctionType(dart.void, [html$.Node])})
+});
+html$.UriPolicy = class UriPolicy extends core.Object {
+  static new() {
+    return new html$._SameOriginUriPolicy();
+  }
+};
+dart.setSignature(html$.UriPolicy, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.UriPolicy, [])})
+});
+const _hiddenAnchor = Symbol('_hiddenAnchor');
+const _loc = Symbol('_loc');
+html$._SameOriginUriPolicy = class _SameOriginUriPolicy extends core.Object {
+  new() {
+    this[_hiddenAnchor] = html$.AnchorElement.new();
+    this[_loc] = html$.window[dartx.location];
+  }
+  allowsUri(uri) {
+    this[_hiddenAnchor][dartx.href] = uri;
+    return this[_hiddenAnchor][dartx.hostname] == this[_loc][dartx.hostname] && this[_hiddenAnchor][dartx.port] == this[_loc][dartx.port] && this[_hiddenAnchor][dartx.protocol] == this[_loc][dartx.protocol] || this[_hiddenAnchor][dartx.hostname] == '' && this[_hiddenAnchor][dartx.port] == '' && (this[_hiddenAnchor][dartx.protocol] == ':' || this[_hiddenAnchor][dartx.protocol] == '');
+  }
+};
+html$._SameOriginUriPolicy[dart.implements] = () => [html$.UriPolicy];
+dart.setSignature(html$._SameOriginUriPolicy, {
+  fields: () => ({
+    [_hiddenAnchor]: html$.AnchorElement,
+    [_loc]: html$.Location
+  }),
+  methods: () => ({allowsUri: dart.definiteFunctionType(core.bool, [core.String])})
+});
+html$._ThrowsNodeValidator = class _ThrowsNodeValidator extends core.Object {
+  new(validator) {
+    this.validator = validator;
+  }
+  allowsElement(element) {
+    if (!dart.test(this.validator.allowsElement(element))) {
+      dart.throw(new core.ArgumentError(html$.Element._safeTagName(element)));
+    }
+    return true;
+  }
+  allowsAttribute(element, attributeName, value) {
+    if (!dart.test(this.validator.allowsAttribute(element, attributeName, value))) {
+      dart.throw(new core.ArgumentError(dart.str`${html$.Element._safeTagName(element)}[${attributeName}="${value}"]`));
+    }
+  }
+};
+html$._ThrowsNodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._ThrowsNodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ThrowsNodeValidator, [html$.NodeValidator])}),
+  fields: () => ({validator: html$.NodeValidator}),
+  methods: () => ({
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
+  })
+});
+const _removeNode = Symbol('_removeNode');
+const _sanitizeElement = Symbol('_sanitizeElement');
+const _sanitizeUntrustedElement = Symbol('_sanitizeUntrustedElement');
+html$._ValidatingTreeSanitizer = class _ValidatingTreeSanitizer extends core.Object {
+  new(validator) {
+    this.validator = validator;
+  }
+  sanitizeTree(node) {
+    const walk = (function(node, parent) {
+      this.sanitizeNode(node, parent);
+      let child = node[dartx.lastChild];
+      while (child != null) {
+        let nextChild = child[dartx.previousNode];
+        walk(child, node);
+        child = nextChild;
+      }
+    }).bind(this);
+    dart.fn(walk, NodeAndNodeTovoid());
+    walk(node, null);
+  }
+  [_removeNode](node, parent) {
+    if (parent == null) {
+      node[dartx.remove]();
+    } else {
+      parent[_removeChild](node);
+    }
+  }
+  [_sanitizeUntrustedElement](element, parent) {
+    let corrupted = true;
+    let attrs = null;
+    let isAttr = null;
+    try {
+      attrs = dart.dload(element, 'attributes');
+      isAttr = dart.dindex(attrs, 'is');
+      let corruptedTest1 = html$.Element._hasCorruptedAttributes(html$.Element._check(element));
+      corrupted = dart.test(corruptedTest1) ? true : html$.Element._hasCorruptedAttributesAdditionalCheck(html$.Element._check(element));
+    } catch (e) {
+    }
+
+    let elementText = 'element unprintable';
+    try {
+      elementText = dart.toString(element);
+    } catch (e) {
+    }
+
+    try {
+      let elementTagName = html$.Element._safeTagName(element);
+      this[_sanitizeElement](html$.Element._check(element), parent, corrupted, elementText, elementTagName, core.Map._check(attrs), core.String._check(isAttr));
+    } catch (e$) {
+      if (core.ArgumentError.is(e$)) {
+        throw e$;
+      } else {
+        let e = e$;
+        this[_removeNode](html$.Node._check(element), parent);
+        html$.window[dartx.console].warn(dart.str`Removing corrupted element ${elementText}`);
+      }
+    }
+
+  }
+  [_sanitizeElement](element, parent, corrupted, text, tag, attrs, isAttr) {
+    if (false != corrupted) {
+      this[_removeNode](element, parent);
+      html$.window[dartx.console].warn(dart.str`Removing element due to corrupted attributes on <${text}>`);
+      return;
+    }
+    if (!dart.test(this.validator.allowsElement(element))) {
+      this[_removeNode](element, parent);
+      html$.window[dartx.console].warn(dart.str`Removing disallowed element <${tag}> from ${parent}`);
+      return;
+    }
+    if (isAttr != null) {
+      if (!dart.test(this.validator.allowsAttribute(element, 'is', isAttr))) {
+        this[_removeNode](element, parent);
+        html$.window[dartx.console].warn('Removing disallowed type extension ' + dart.str`<${tag} is="${isAttr}">`);
+        return;
+      }
+    }
+    let keys = attrs[dartx.keys][dartx.toList]();
+    for (let i = dart.notNull(attrs[dartx.length]) - 1; i >= 0; --i) {
+      let name = keys[dartx._get](i);
+      if (!dart.test(this.validator.allowsAttribute(element, core.String._check(dart.dsend(name, 'toLowerCase')), core.String._check(attrs[dartx._get](name))))) {
+        html$.window[dartx.console].warn('Removing disallowed attribute ' + dart.str`<${tag} ${name}="${attrs[dartx._get](name)}">`);
+        attrs[dartx.remove](name);
+      }
+    }
+    if (html$.TemplateElement.is(element)) {
+      let template = element;
+      this.sanitizeTree(template[dartx.content]);
+    }
+  }
+  sanitizeNode(node, parent) {
+    switch (node[dartx.nodeType]) {
+      case html$.Node.ELEMENT_NODE:
+      {
+        this[_sanitizeUntrustedElement](node, parent);
+        break;
+      }
+      case html$.Node.COMMENT_NODE:
+      case html$.Node.DOCUMENT_FRAGMENT_NODE:
+      case html$.Node.TEXT_NODE:
+      case html$.Node.CDATA_SECTION_NODE:
+      {
+        break;
+      }
+      default:
+      {
+        this[_removeNode](node, parent);
+      }
+    }
+  }
+};
+html$._ValidatingTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
+dart.setSignature(html$._ValidatingTreeSanitizer, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ValidatingTreeSanitizer, [html$.NodeValidator])}),
+  fields: () => ({validator: html$.NodeValidator}),
+  methods: () => ({
+    sanitizeTree: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [_removeNode]: dart.definiteFunctionType(dart.void, [html$.Node, html$.Node]),
+    [_sanitizeUntrustedElement]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node]),
+    [_sanitizeElement]: dart.definiteFunctionType(dart.void, [html$.Element, html$.Node, core.bool, core.String, core.String, core.Map, core.String]),
+    sanitizeNode: dart.definiteFunctionType(dart.void, [html$.Node, html$.Node])
+  })
+});
+html_common.convertDartToNative_SerializedScriptValue = function(value) {
+  return html_common.convertDartToNative_PrepareForStructuredClone(value);
+};
+dart.fn(html_common.convertDartToNative_SerializedScriptValue, dynamicTodynamic$());
+html_common.convertNativeToDart_SerializedScriptValue = function(object) {
+  return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: true});
+};
+dart.fn(html_common.convertNativeToDart_SerializedScriptValue, dynamicTodynamic$());
+html_common._StructuredClone = class _StructuredClone extends core.Object {
+  new() {
+    this.values = [];
+    this.copies = [];
+  }
+  findSlot(value) {
+    let length = this.values[dartx.length];
+    for (let i = 0; i < dart.notNull(length); i++) {
+      if (core.identical(this.values[dartx._get](i), value)) return i;
+    }
+    this.values[dartx.add](value);
+    this.copies[dartx.add](null);
+    return length;
+  }
+  readSlot(i) {
+    return this.copies[dartx._get](i);
+  }
+  writeSlot(i, x) {
+    this.copies[dartx._set](i, x);
+  }
+  cleanupSlots() {}
+  walk(e) {
+    if (e == null) return e;
+    if (typeof e == 'boolean') return e;
+    if (typeof e == 'number') return e;
+    if (typeof e == 'string') return e;
+    if (core.DateTime.is(e)) {
+      return html_common.convertDartToNative_DateTime(e);
+    }
+    if (core.RegExp.is(e)) {
+      dart.throw(new core.UnimplementedError('structured clone of RegExp'));
+    }
+    if (html$.File.is(e)) return e;
+    if (html$.Blob.is(e)) return e;
+    if (html$.FileList.is(e)) return e;
+    if (html$.ImageData.is(e)) return e;
+    if (dart.test(this.cloneNotRequired(e))) return e;
+    if (core.Map.is(e)) {
+      let slot = this.findSlot(e);
+      let copy = this.readSlot(slot);
+      if (copy != null) return copy;
+      copy = this.newJsMap();
+      this.writeSlot(slot, copy);
+      e[dartx.forEach](dart.fn((key, value) => {
+        this.putIntoMap(copy, key, this.walk(value));
+      }, dynamicAnddynamicToNull()));
+      return copy;
+    }
+    if (core.List.is(e)) {
+      let slot = this.findSlot(e);
+      let copy = this.readSlot(slot);
+      if (copy != null) return copy;
+      copy = this.copyList(e, slot);
+      return copy;
+    }
+    dart.throw(new core.UnimplementedError('structured clone of other type'));
+  }
+  copyList(e, slot) {
+    let i = 0;
+    let length = e[dartx.length];
+    let copy = this.newJsList(length);
+    this.writeSlot(slot, copy);
+    for (; i < dart.notNull(length); i++) {
+      copy[dartx._set](i, this.walk(e[dartx._get](i)));
+    }
+    return copy;
+  }
+  convertDartToNative_PrepareForStructuredClone(value) {
+    let copy = this.walk(value);
+    this.cleanupSlots();
+    return copy;
+  }
+};
+dart.setSignature(html_common._StructuredClone, {
+  fields: () => ({
+    values: core.List,
+    copies: core.List
+  }),
+  methods: () => ({
+    findSlot: dart.definiteFunctionType(core.int, [dart.dynamic]),
+    readSlot: dart.definiteFunctionType(dart.dynamic, [core.int]),
+    writeSlot: dart.definiteFunctionType(dart.dynamic, [core.int, dart.dynamic]),
+    cleanupSlots: dart.definiteFunctionType(dart.dynamic, []),
+    walk: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    copyList: dart.definiteFunctionType(core.List, [core.List, core.int]),
+    convertDartToNative_PrepareForStructuredClone: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+  })
+});
+html_common._AcceptStructuredClone = class _AcceptStructuredClone extends core.Object {
+  new() {
+    this.values = [];
+    this.copies = [];
+    this.mustCopy = false;
+  }
+  findSlot(value) {
+    let length = this.values[dartx.length];
+    for (let i = 0; i < dart.notNull(length); i++) {
+      if (dart.test(this.identicalInJs(this.values[dartx._get](i), value))) return i;
+    }
+    this.values[dartx.add](value);
+    this.copies[dartx.add](null);
+    return length;
+  }
+  readSlot(i) {
+    return this.copies[dartx._get](i);
+  }
+  writeSlot(i, x) {
+    this.copies[dartx._set](i, x);
+  }
+  walk(e) {
+    if (e == null) return e;
+    if (typeof e == 'boolean') return e;
+    if (typeof e == 'number') return e;
+    if (typeof e == 'string') return e;
+    if (dart.test(html_common.isJavaScriptDate(e))) {
+      return html_common.convertNativeToDart_DateTime(e);
+    }
+    if (dart.test(html_common.isJavaScriptRegExp(e))) {
+      dart.throw(new core.UnimplementedError('structured clone of RegExp'));
+    }
+    if (dart.test(html_common.isJavaScriptPromise(e))) {
+      return html_common.convertNativePromiseToDartFuture(e);
+    }
+    if (dart.test(html_common.isJavaScriptSimpleObject(e))) {
+      let slot = this.findSlot(e);
+      let copy = this.readSlot(slot);
+      if (copy != null) return copy;
+      copy = dart.map();
+      this.writeSlot(slot, copy);
+      this.forEachJsField(e, dart.fn((key, value) => dart.dsetindex(copy, key, this.walk(value)), dynamicAnddynamicTodynamic$()));
+      return copy;
+    }
+    if (dart.test(html_common.isJavaScriptArray(e))) {
+      let l = e;
+      let slot = this.findSlot(l);
+      let copy = this.readSlot(slot);
+      if (copy != null) return copy;
+      let length = l[dartx.length];
+      copy = dart.test(this.mustCopy) ? this.newDartList(length) : l;
+      this.writeSlot(slot, copy);
+      for (let i = 0; i < dart.notNull(length); i++) {
+        copy[dartx._set](i, this.walk(l[dartx._get](i)));
+      }
+      return copy;
+    }
+    return e;
+  }
+  convertNativeToDart_AcceptStructuredClone(object, opts) {
+    let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
+    this.mustCopy = core.bool._check(mustCopy);
+    let copy = this.walk(object);
+    return copy;
+  }
+};
+dart.setSignature(html_common._AcceptStructuredClone, {
+  fields: () => ({
+    values: core.List,
+    copies: core.List,
+    mustCopy: core.bool
+  }),
+  methods: () => ({
+    findSlot: dart.definiteFunctionType(core.int, [dart.dynamic]),
+    readSlot: dart.definiteFunctionType(dart.dynamic, [core.int]),
+    writeSlot: dart.definiteFunctionType(dart.dynamic, [core.int, dart.dynamic]),
+    walk: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
+    convertNativeToDart_AcceptStructuredClone: dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})
+  })
+});
+html_common.ContextAttributes = class ContextAttributes extends core.Object {
+  new(alpha, antialias, depth, failIfMajorPerformanceCaveat, premultipliedAlpha, preserveDrawingBuffer, stencil) {
+    this.alpha = alpha;
+    this.antialias = antialias;
+    this.depth = depth;
+    this.failIfMajorPerformanceCaveat = failIfMajorPerformanceCaveat;
+    this.premultipliedAlpha = premultipliedAlpha;
+    this.preserveDrawingBuffer = preserveDrawingBuffer;
+    this.stencil = stencil;
+  }
+};
+dart.setSignature(html_common.ContextAttributes, {
+  constructors: () => ({new: dart.definiteFunctionType(html_common.ContextAttributes, [core.bool, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool])}),
+  fields: () => ({
+    alpha: core.bool,
+    antialias: core.bool,
+    depth: core.bool,
+    premultipliedAlpha: core.bool,
+    preserveDrawingBuffer: core.bool,
+    stencil: core.bool,
+    failIfMajorPerformanceCaveat: core.bool
+  })
+});
+html_common.convertNativeToDart_ContextAttributes = function(nativeContextAttributes) {
+  return new html_common.ContextAttributes(nativeContextAttributes.alpha, nativeContextAttributes.antialias, nativeContextAttributes.depth, nativeContextAttributes.failIfMajorPerformanceCaveat, nativeContextAttributes.premultipliedAlpha, nativeContextAttributes.preserveDrawingBuffer, nativeContextAttributes.stencil);
+};
+dart.fn(html_common.convertNativeToDart_ContextAttributes, dynamicTodynamic$());
+html_common._TypedImageData = class _TypedImageData extends core.Object {
+  new(data, height, width) {
+    this.data = data;
+    this.height = height;
+    this.width = width;
+  }
+};
+html_common._TypedImageData[dart.implements] = () => [html$.ImageData];
+dart.setSignature(html_common._TypedImageData, {
+  constructors: () => ({new: dart.definiteFunctionType(html_common._TypedImageData, [typed_data.Uint8ClampedList, core.int, core.int])}),
+  fields: () => ({
+    data: typed_data.Uint8ClampedList,
+    height: core.int,
+    width: core.int
+  })
+});
+html_common.convertNativeToDart_ImageData = function(nativeImageData) {
+  0;
+  if (html$.ImageData.is(nativeImageData)) {
+    let data = nativeImageData[dartx.data];
+    if (data.constructor === Array) {
+      if (typeof CanvasPixelArray !== "undefined") {
+        data.constructor = CanvasPixelArray;
+        data.BYTES_PER_ELEMENT = 1;
+      }
+    }
+    return nativeImageData;
+  }
+  return new html_common._TypedImageData(nativeImageData.data, nativeImageData.height, nativeImageData.width);
+};
+dart.fn(html_common.convertNativeToDart_ImageData, dynamicToImageData());
+html_common.convertDartToNative_ImageData = function(imageData) {
+  if (html_common._TypedImageData.is(imageData)) {
+    return {data: imageData.data, height: imageData.height, width: imageData.width};
+  }
+  return imageData;
+};
+dart.fn(html_common.convertDartToNative_ImageData, ImageDataTodynamic());
+html_common._serializedScriptValue = 'num|String|bool|' + 'JSExtendableArray|=Object|' + 'Blob|File|NativeByteBuffer|NativeTypedData';
+html_common.annotation_Creates_SerializedScriptValue = dart.const(new _js_helper.Creates(html_common._serializedScriptValue));
+html_common.annotation_Returns_SerializedScriptValue = dart.const(new _js_helper.Returns(html_common._serializedScriptValue));
+html_common.convertNativeToDart_Dictionary = function(object) {
+  if (object == null) return null;
+  let dict = dart.map();
+  let keys = Object.getOwnPropertyNames(object);
+  for (let key of core.Iterable._check(keys)) {
+    dict[dartx._set](key, object[key]);
+  }
+  return dict;
+};
+dart.fn(html_common.convertNativeToDart_Dictionary, dynamicToMap());
+html_common.convertDartToNative_Dictionary = function(dict, postCreate) {
+  if (postCreate === void 0) postCreate = null;
+  if (dict == null) return null;
+  let object = {};
+  if (postCreate != null) {
+    dart.dcall(postCreate, object);
+  }
+  dict[dartx.forEach](dart.fn((key, value) => {
+    object[key] = value;
+  }, StringAnddynamicToNull()));
+  return object;
+};
+dart.fn(html_common.convertDartToNative_Dictionary, Map__Todynamic());
+html_common.convertDartToNative_StringArray = function(input) {
+  return input;
+};
+dart.fn(html_common.convertDartToNative_StringArray, ListOfStringToList());
+html_common.convertNativeToDart_DateTime = function(date) {
+  let millisSinceEpoch = date.getTime();
+  return new core.DateTime.fromMillisecondsSinceEpoch(millisSinceEpoch, {isUtc: true});
+};
+dart.fn(html_common.convertNativeToDart_DateTime, dynamicToDateTime());
+html_common.convertDartToNative_DateTime = function(date) {
+  return new Date(date.millisecondsSinceEpoch);
+};
+dart.fn(html_common.convertDartToNative_DateTime, DateTimeTodynamic());
+html_common.convertDartToNative_PrepareForStructuredClone = function(value) {
+  return new html_common._StructuredCloneDart2Js().convertDartToNative_PrepareForStructuredClone(value);
+};
+dart.fn(html_common.convertDartToNative_PrepareForStructuredClone, dynamicTodynamic$());
+html_common.convertNativeToDart_AcceptStructuredClone = function(object, opts) {
+  let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
+  return new html_common._AcceptStructuredCloneDart2Js().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
+};
+dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic());
+html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
+  new() {
+    super.new();
+  }
+  newJsMap() {
+    return {};
+  }
+  putIntoMap(map, key, value) {
+    return map[key] = value;
+  }
+  newJsList(length) {
+    return new Array(length);
+  }
+  cloneNotRequired(e) {
+    return _native_typed_data.NativeByteBuffer.is(e) || _native_typed_data.NativeTypedData.is(e);
+  }
+};
+dart.setSignature(html_common._StructuredCloneDart2Js, {
+  methods: () => ({
+    newJsMap: dart.definiteFunctionType(dart.dynamic, []),
+    putIntoMap: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    newJsList: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    cloneNotRequired: dart.definiteFunctionType(core.bool, [dart.dynamic])
+  })
+});
+html_common._AcceptStructuredCloneDart2Js = class _AcceptStructuredCloneDart2Js extends html_common._AcceptStructuredClone {
+  new() {
+    super.new();
+  }
+  newJsList(length) {
+    return new Array(length);
+  }
+  newDartList(length) {
+    return this.newJsList(length);
+  }
+  identicalInJs(a, b) {
+    return core.identical(a, b);
+  }
+  forEachJsField(object, action) {
+    for (let key of Object.keys(object)) {
+      dart.dcall(action, key, object[key]);
+    }
+  }
+};
+dart.setSignature(html_common._AcceptStructuredCloneDart2Js, {
+  methods: () => ({
+    newJsList: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    newDartList: dart.definiteFunctionType(core.List, [dart.dynamic]),
+    identicalInJs: dart.definiteFunctionType(core.bool, [dart.dynamic, dart.dynamic]),
+    forEachJsField: dart.definiteFunctionType(dart.void, [dart.dynamic, dynamicAnddynamicTodynamic()])
+  })
+});
+html_common.isJavaScriptDate = function(value) {
+  return value instanceof Date;
+};
+dart.fn(html_common.isJavaScriptDate, dynamicTobool$());
+html_common.isJavaScriptRegExp = function(value) {
+  return value instanceof RegExp;
+};
+dart.fn(html_common.isJavaScriptRegExp, dynamicTobool$());
+html_common.isJavaScriptArray = function(value) {
+  return value instanceof Array;
+};
+dart.fn(html_common.isJavaScriptArray, dynamicTobool$());
+html_common.isJavaScriptSimpleObject = function(value) {
+  let proto = Object.getPrototypeOf(value);
+  return proto === Object.prototype || proto === null;
+};
+dart.fn(html_common.isJavaScriptSimpleObject, dynamicTobool$());
+html_common.isImmutableJavaScriptArray = function(value) {
+  return !!value.immutable$list;
+};
+dart.fn(html_common.isImmutableJavaScriptArray, dynamicTobool$());
+html_common.isJavaScriptPromise = function(value) {
+  return typeof Promise != "undefined" && value instanceof Promise;
+};
+dart.fn(html_common.isJavaScriptPromise, dynamicTobool$());
+html_common.convertNativePromiseToDartFuture = function(promise) {
+  let completer = async.Completer.new();
+  let then = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.complete(result), dynamicTovoid$()), 1);
+  let error = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.completeError(result), dynamicTovoid$()), 1);
+  let newPromise = promise.then(then).catch(error);
+  return completer.future;
+};
+dart.fn(html_common.convertNativePromiseToDartFuture, dynamicToFuture());
+html_common.Device = class Device extends core.Object {
+  static get userAgent() {
+    return html$.window[dartx.navigator][dartx.userAgent];
+  }
+  static get isOpera() {
+    if (html_common.Device._isOpera == null) {
+      html_common.Device._isOpera = html_common.Device.userAgent[dartx.contains]("Opera", 0);
+    }
+    return html_common.Device._isOpera;
+  }
+  static get isIE() {
+    if (html_common.Device._isIE == null) {
+      html_common.Device._isIE = !dart.test(html_common.Device.isOpera) && dart.test(html_common.Device.userAgent[dartx.contains]("Trident/", 0));
+    }
+    return html_common.Device._isIE;
+  }
+  static get isFirefox() {
+    if (html_common.Device._isFirefox == null) {
+      html_common.Device._isFirefox = html_common.Device.userAgent[dartx.contains]("Firefox", 0);
+    }
+    return html_common.Device._isFirefox;
+  }
+  static get isWebKit() {
+    if (html_common.Device._isWebKit == null) {
+      html_common.Device._isWebKit = !dart.test(html_common.Device.isOpera) && dart.test(html_common.Device.userAgent[dartx.contains]("WebKit", 0));
+    }
+    return html_common.Device._isWebKit;
+  }
+  static get cssPrefix() {
+    let prefix = html_common.Device._cachedCssPrefix;
+    if (prefix != null) return prefix;
+    if (dart.test(html_common.Device.isFirefox)) {
+      prefix = '-moz-';
+    } else if (dart.test(html_common.Device.isIE)) {
+      prefix = '-ms-';
+    } else if (dart.test(html_common.Device.isOpera)) {
+      prefix = '-o-';
+    } else {
+      prefix = '-webkit-';
+    }
+    return html_common.Device._cachedCssPrefix = prefix;
+  }
+  static get propertyPrefix() {
+    let prefix = html_common.Device._cachedPropertyPrefix;
+    if (prefix != null) return prefix;
+    if (dart.test(html_common.Device.isFirefox)) {
+      prefix = 'moz';
+    } else if (dart.test(html_common.Device.isIE)) {
+      prefix = 'ms';
+    } else if (dart.test(html_common.Device.isOpera)) {
+      prefix = 'o';
+    } else {
+      prefix = 'webkit';
+    }
+    return html_common.Device._cachedPropertyPrefix = prefix;
+  }
+  static isEventTypeSupported(eventType) {
+    try {
+      let e = html$.Event.eventType(eventType, '');
+      return html$.Event.is(e);
+    } catch (_) {
+    }
+
+    return false;
+  }
+};
+dart.setSignature(html_common.Device, {
+  sfields: () => ({
+    _isOpera: core.bool,
+    _isIE: core.bool,
+    _isFirefox: core.bool,
+    _isWebKit: core.bool,
+    _cachedCssPrefix: core.String,
+    _cachedPropertyPrefix: core.String
+  }),
+  sgetters: () => ({
+    userAgent: dart.definiteFunctionType(core.String, []),
+    isOpera: dart.definiteFunctionType(core.bool, []),
+    isIE: dart.definiteFunctionType(core.bool, []),
+    isFirefox: dart.definiteFunctionType(core.bool, []),
+    isWebKit: dart.definiteFunctionType(core.bool, []),
+    cssPrefix: dart.definiteFunctionType(core.String, []),
+    propertyPrefix: dart.definiteFunctionType(core.String, [])
+  }),
+  statics: () => ({isEventTypeSupported: dart.definiteFunctionType(core.bool, [core.String])}),
+  names: ['isEventTypeSupported']
+});
+html_common.Device._isOpera = null;
+html_common.Device._isIE = null;
+html_common.Device._isFirefox = null;
+html_common.Device._isWebKit = null;
+html_common.Device._cachedCssPrefix = null;
+html_common.Device._cachedPropertyPrefix = null;
+const _childNodes = Symbol('_childNodes');
+const _node = Symbol('_node');
+const _iterable$0 = Symbol('_iterable');
+const _filtered = Symbol('_filtered');
+html_common.FilteredElementList = class FilteredElementList extends collection.ListBase$(html$.Element) {
+  new(node) {
+    this[_childNodes] = node[dartx.nodes];
+    this[_node] = node;
+  }
+  get [_iterable$0]() {
+    return this[_childNodes][dartx.where](dart.fn(n => html$.Element.is(n), NodeTobool$()))[dartx.map](html$.Element)(dart.fn(n => html$.Element.as(n), NodeToElement()));
+  }
+  get [_filtered]() {
+    return ListOfElement().from(this[_iterable$0], {growable: false});
+  }
+  forEach(f) {
+    this[_filtered][dartx.forEach](f);
+  }
+  _set(index, value) {
+    this._get(index)[dartx.replaceWith](value);
+    return value;
+  }
+  set length(newLength) {
+    let len = this.length;
+    if (dart.notNull(newLength) >= dart.notNull(len)) {
+      return;
+    } else if (dart.notNull(newLength) < 0) {
+      dart.throw(new core.ArgumentError("Invalid list length"));
+    }
+    this.removeRange(newLength, len);
+  }
+  add(value) {
+    this[_childNodes][dartx.add](value);
+  }
+  addAll(iterable) {
+    for (let element of iterable) {
+      this.add(element);
+    }
+  }
+  contains(needle) {
+    if (!html$.Element.is(needle)) return false;
+    let element = html$.Element._check(needle);
+    return dart.equals(element[dartx.parentNode], this[_node]);
+  }
+  get reversed() {
+    return this[_filtered][dartx.reversed];
+  }
+  sort(compare) {
+    if (compare === void 0) compare = null;
+    dart.throw(new core.UnsupportedError('Cannot sort filtered list'));
+  }
+  setRange(start, end, iterable, skipCount) {
+    if (skipCount === void 0) skipCount = 0;
+    dart.throw(new core.UnsupportedError('Cannot setRange on filtered list'));
+  }
+  fillRange(start, end, fillValue) {
+    if (fillValue === void 0) fillValue = null;
+    dart.throw(new core.UnsupportedError('Cannot fillRange on filtered list'));
+  }
+  replaceRange(start, end, iterable) {
+    dart.throw(new core.UnsupportedError('Cannot replaceRange on filtered list'));
+  }
+  removeRange(start, end) {
+    core.List.from(this[_iterable$0][dartx.skip](start)[dartx.take](dart.notNull(end) - dart.notNull(start)))[dartx.forEach](dart.fn(el => dart.dsend(el, 'remove'), dynamicTovoid$()));
+  }
+  clear() {
+    this[_childNodes][dartx.clear]();
+  }
+  removeLast() {
+    let result = this[_iterable$0][dartx.last];
+    if (result != null) {
+      result[dartx.remove]();
+    }
+    return result;
+  }
+  insert(index, value) {
+    if (index == this.length) {
+      this.add(value);
+    } else {
+      let element = this[_iterable$0][dartx.elementAt](index);
+      element[dartx.parentNode][dartx.insertBefore](value, element);
+    }
+  }
+  insertAll(index, iterable) {
+    if (index == this.length) {
+      this.addAll(iterable);
+    } else {
+      let element = this[_iterable$0][dartx.elementAt](index);
+      element[dartx.parentNode][dartx.insertAllBefore](iterable, element);
+    }
+  }
+  removeAt(index) {
+    let result = this._get(index);
+    result[dartx.remove]();
+    return result;
+  }
+  remove(element) {
+    if (!html$.Element.is(element)) return false;
+    if (dart.test(this.contains(element))) {
+      html$.Element.as(element)[dartx.remove]();
+      return true;
+    } else {
+      return false;
+    }
+  }
+  get length() {
+    return this[_iterable$0][dartx.length];
+  }
+  _get(index) {
+    return this[_iterable$0][dartx.elementAt](index);
+  }
+  get iterator() {
+    return this[_filtered][dartx.iterator];
+  }
+  get rawList() {
+    return this[_node][dartx.childNodes];
+  }
+};
+dart.addSimpleTypeTests(html_common.FilteredElementList);
+html_common.FilteredElementList[dart.implements] = () => [html_common.NodeListWrapper];
+dart.setSignature(html_common.FilteredElementList, {
+  constructors: () => ({new: dart.definiteFunctionType(html_common.FilteredElementList, [html$.Node])}),
+  fields: () => ({
+    [_node]: html$.Node,
+    [_childNodes]: ListOfNode()
+  }),
+  getters: () => ({
+    [_iterable$0]: dart.definiteFunctionType(core.Iterable$(html$.Element), []),
+    [_filtered]: dart.definiteFunctionType(core.List$(html$.Element), []),
+    length: dart.definiteFunctionType(core.int, []),
+    rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
+  }),
+  setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    _set: dart.definiteFunctionType(dart.void, [core.int, html$.Element]),
+    _get: dart.definiteFunctionType(html$.Element, [core.int])
+  })
+});
+dart.defineExtensionMembers(html_common.FilteredElementList, [
+  'forEach',
+  '_set',
+  'add',
+  'addAll',
+  'contains',
+  'sort',
+  'setRange',
+  'fillRange',
+  'replaceRange',
+  'removeRange',
+  'clear',
+  'removeLast',
+  'insert',
+  'insertAll',
+  'removeAt',
+  'remove',
+  '_get',
+  'length',
+  'reversed',
+  'length',
+  'iterator'
+]);
+html_common.Lists = class Lists extends core.Object {
+  static indexOf(a, element, startIndex, endIndex) {
+    if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
+      return -1;
+    }
+    if (dart.notNull(startIndex) < 0) {
+      startIndex = 0;
+    }
+    for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dart.notNull(i) + 1) {
+      if (dart.equals(a[dartx._get](i), element)) {
+        return i;
+      }
+    }
+    return -1;
+  }
+  static lastIndexOf(a, element, startIndex) {
+    if (dart.notNull(startIndex) < 0) {
+      return -1;
+    }
+    if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
+      startIndex = dart.notNull(a[dartx.length]) - 1;
+    }
+    for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
+      if (dart.equals(a[dartx._get](i), element)) {
+        return i;
+      }
+    }
+    return -1;
+  }
+  static getRange(a, start, end, accumulator) {
+    if (dart.notNull(start) < 0) dart.throw(new core.RangeError.value(start));
+    if (dart.notNull(end) < dart.notNull(start)) dart.throw(new core.RangeError.value(end));
+    if (dart.notNull(end) > dart.notNull(a[dartx.length])) dart.throw(new core.RangeError.value(end));
+    for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
+      accumulator[dartx.add](a[dartx._get](i));
+    }
+    return accumulator;
+  }
+};
+dart.setSignature(html_common.Lists, {
+  statics: () => ({
+    indexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int, core.int]),
+    lastIndexOf: dart.definiteFunctionType(core.int, [core.List, core.Object, core.int]),
+    getRange: dart.definiteFunctionType(core.List, [core.List, core.int, core.int, core.List])
+  }),
+  names: ['indexOf', 'lastIndexOf', 'getRange']
+});
+html_common.NodeListWrapper = class NodeListWrapper extends core.Object {};
+svg$._SvgElementFactoryProvider = class _SvgElementFactoryProvider extends core.Object {
+  static createSvgElement_tag(tag) {
+    let temp = html$.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag);
+    return svg$.SvgElement._check(temp);
+  }
+};
+dart.setSignature(svg$._SvgElementFactoryProvider, {
+  statics: () => ({createSvgElement_tag: dart.definiteFunctionType(svg$.SvgElement, [core.String])}),
+  names: ['createSvgElement_tag']
+});
+const _children$ = Symbol('_children');
+const _svgClassName = Symbol('_svgClassName');
+dart.defineExtensionNames([
+  'classes',
+  'children',
+  'children',
+  'outerHtml',
+  'innerHtml',
+  'innerHtml',
+  'createFragment',
+  'insertAdjacentText',
+  'insertAdjacentHtml',
+  'insertAdjacentElement',
+  'isContentEditable',
+  'click',
+  'blur',
+  'focus',
+  'onAbort',
+  'onBlur',
+  'onCanPlay',
+  'onCanPlayThrough',
+  'onChange',
+  'onClick',
+  'onContextMenu',
+  'onDoubleClick',
+  'onDrag',
+  'onDragEnd',
+  'onDragEnter',
+  'onDragLeave',
+  'onDragOver',
+  'onDragStart',
+  'onDrop',
+  'onDurationChange',
+  'onEmptied',
+  'onEnded',
+  'onError',
+  'onFocus',
+  'onInput',
+  'onInvalid',
+  'onKeyDown',
+  'onKeyPress',
+  'onKeyUp',
+  'onLoad',
+  'onLoadedData',
+  'onLoadedMetadata',
+  'onMouseDown',
+  'onMouseEnter',
+  'onMouseLeave',
+  'onMouseMove',
+  'onMouseOut',
+  'onMouseOver',
+  'onMouseUp',
+  'onMouseWheel',
+  'onPause',
+  'onPlay',
+  'onPlaying',
+  'onRateChange',
+  'onReset',
+  'onResize',
+  'onScroll',
+  'onSeeked',
+  'onSeeking',
+  'onSelect',
+  'onStalled',
+  'onSubmit',
+  'onSuspend',
+  'onTimeUpdate',
+  'onVolumeChange',
+  'onWaiting',
+  'ownerSvgElement',
+  'viewportElement'
+]);
+svg$.SvgElement = class SvgElement extends html$.Element {
+  static tag(tag) {
+    return svg$.SvgElement._check(html$.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag));
+  }
+  static svg(svg, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (validator == null && treeSanitizer == null) {
+      validator = new html$.NodeValidatorBuilder.common();
+      validator.allowSvg();
+    }
+    let match = svg$.SvgElement._START_TAG_REGEXP.firstMatch(svg);
+    let parentElement = null;
+    if (match != null && match.group(1)[dartx.toLowerCase]() == 'svg') {
+      parentElement = html$.document[dartx.body];
+    } else {
+      parentElement = svg$.SvgSvgElement.new();
+    }
+    let fragment = dart.dsend(parentElement, 'createFragment', svg, {validator: validator, treeSanitizer: treeSanitizer});
+    return svg$.SvgElement._check(dart.dload(dart.dsend(dart.dload(fragment, 'nodes'), 'where', dart.fn(e => svg$.SvgElement.is(e), dynamicTobool$())), 'single'));
+  }
+  get [dartx.classes]() {
+    return new svg$._AttributeClassSet(this);
+  }
+  set [dartx.classes](value) {
+    super[dartx.classes] = value;
+  }
+  get [dartx.children]() {
+    return new html_common.FilteredElementList(this);
+  }
+  set [dartx.children](value) {
+    let children = this[dartx.children];
+    children[dartx.clear]();
+    children[dartx.addAll](value);
+  }
+  get [dartx.outerHtml]() {
+    let container = html$.Element.tag("div");
+    let cloned = svg$.SvgElement._check(this[dartx.clone](true));
+    container[dartx.children][dartx.add](cloned);
+    return container[dartx.innerHtml];
+  }
+  get [dartx.innerHtml]() {
+    let container = html$.Element.tag("div");
+    let cloned = svg$.SvgElement._check(this[dartx.clone](true));
+    container[dartx.children][dartx.addAll](cloned[dartx.children]);
+    return container[dartx.innerHtml];
+  }
+  set [dartx.innerHtml](value) {
+    this[dartx.setInnerHtml](value);
+  }
+  [dartx.createFragment](svg, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    if (treeSanitizer == null) {
+      if (validator == null) {
+        validator = new html$.NodeValidatorBuilder.common();
+        validator.allowSvg();
+      }
+      treeSanitizer = html$.NodeTreeSanitizer.new(validator);
+    }
+    let html = dart.str`<svg version="1.1">${svg}</svg>`;
+    let fragment = html$.document[dartx.body][dartx.createFragment](html, {treeSanitizer: treeSanitizer});
+    let svgFragment = html$.DocumentFragment.new();
+    let root = fragment[dartx.nodes][dartx.single];
+    while (root[dartx.firstChild] != null) {
+      svgFragment[dartx.append](root[dartx.firstChild]);
+    }
+    return svgFragment;
+  }
+  [dartx.insertAdjacentText](where, text) {
+    dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentText on SVG."));
+  }
+  [dartx.insertAdjacentHtml](where, text, opts) {
+    let validator = opts && 'validator' in opts ? opts.validator : null;
+    let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
+    dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentHtml on SVG."));
+  }
+  [dartx.insertAdjacentElement](where, element) {
+    dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentElement on SVG."));
+  }
+  get [_children$]() {
+    dart.throw(new core.UnsupportedError("Cannot get _children on SVG."));
+  }
+  get [dartx.isContentEditable]() {
+    return false;
+  }
+  [dartx.click]() {
+    dart.throw(new core.UnsupportedError("Cannot invoke click SVG."));
+  }
+  static isTagSupported(tag) {
+    let e = svg$.SvgElement.tag(tag);
+    return svg$.SvgElement.is(e) && !html$.UnknownElement.is(e);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.ownerSvgElement] = null;
+    this[dartx.viewportElement] = null;
+    super.created();
+  }
+  get [_svgClassName]() {
+    return this.className;
+  }
+  get [dartx.ownerSvgElement]() {
+    return this.ownerSVGElement;
+  }
+  get [dartx.viewportElement]() {
+    return this.viewportElement;
+  }
+  [dartx.blur](...args) {
+    return this.blur.apply(this, args);
+  }
+  [dartx.focus](...args) {
+    return this.focus.apply(this, args);
+  }
+  get [dartx.onAbort]() {
+    return svg$.SvgElement.abortEvent.forElement(this);
+  }
+  get [dartx.onBlur]() {
+    return svg$.SvgElement.blurEvent.forElement(this);
+  }
+  get [dartx.onCanPlay]() {
+    return svg$.SvgElement.canPlayEvent.forElement(this);
+  }
+  get [dartx.onCanPlayThrough]() {
+    return svg$.SvgElement.canPlayThroughEvent.forElement(this);
+  }
+  get [dartx.onChange]() {
+    return svg$.SvgElement.changeEvent.forElement(this);
+  }
+  get [dartx.onClick]() {
+    return svg$.SvgElement.clickEvent.forElement(this);
+  }
+  get [dartx.onContextMenu]() {
+    return svg$.SvgElement.contextMenuEvent.forElement(this);
+  }
+  get [dartx.onDoubleClick]() {
+    return svg$.SvgElement.doubleClickEvent.forElement(this);
+  }
+  get [dartx.onDrag]() {
+    return svg$.SvgElement.dragEvent.forElement(this);
+  }
+  get [dartx.onDragEnd]() {
+    return svg$.SvgElement.dragEndEvent.forElement(this);
+  }
+  get [dartx.onDragEnter]() {
+    return svg$.SvgElement.dragEnterEvent.forElement(this);
+  }
+  get [dartx.onDragLeave]() {
+    return svg$.SvgElement.dragLeaveEvent.forElement(this);
+  }
+  get [dartx.onDragOver]() {
+    return svg$.SvgElement.dragOverEvent.forElement(this);
+  }
+  get [dartx.onDragStart]() {
+    return svg$.SvgElement.dragStartEvent.forElement(this);
+  }
+  get [dartx.onDrop]() {
+    return svg$.SvgElement.dropEvent.forElement(this);
+  }
+  get [dartx.onDurationChange]() {
+    return svg$.SvgElement.durationChangeEvent.forElement(this);
+  }
+  get [dartx.onEmptied]() {
+    return svg$.SvgElement.emptiedEvent.forElement(this);
+  }
+  get [dartx.onEnded]() {
+    return svg$.SvgElement.endedEvent.forElement(this);
+  }
+  get [dartx.onError]() {
+    return svg$.SvgElement.errorEvent.forElement(this);
+  }
+  get [dartx.onFocus]() {
+    return svg$.SvgElement.focusEvent.forElement(this);
+  }
+  get [dartx.onInput]() {
+    return svg$.SvgElement.inputEvent.forElement(this);
+  }
+  get [dartx.onInvalid]() {
+    return svg$.SvgElement.invalidEvent.forElement(this);
+  }
+  get [dartx.onKeyDown]() {
+    return svg$.SvgElement.keyDownEvent.forElement(this);
+  }
+  get [dartx.onKeyPress]() {
+    return svg$.SvgElement.keyPressEvent.forElement(this);
+  }
+  get [dartx.onKeyUp]() {
+    return svg$.SvgElement.keyUpEvent.forElement(this);
+  }
+  get [dartx.onLoad]() {
+    return svg$.SvgElement.loadEvent.forElement(this);
+  }
+  get [dartx.onLoadedData]() {
+    return svg$.SvgElement.loadedDataEvent.forElement(this);
+  }
+  get [dartx.onLoadedMetadata]() {
+    return svg$.SvgElement.loadedMetadataEvent.forElement(this);
+  }
+  get [dartx.onMouseDown]() {
+    return svg$.SvgElement.mouseDownEvent.forElement(this);
+  }
+  get [dartx.onMouseEnter]() {
+    return svg$.SvgElement.mouseEnterEvent.forElement(this);
+  }
+  get [dartx.onMouseLeave]() {
+    return svg$.SvgElement.mouseLeaveEvent.forElement(this);
+  }
+  get [dartx.onMouseMove]() {
+    return svg$.SvgElement.mouseMoveEvent.forElement(this);
+  }
+  get [dartx.onMouseOut]() {
+    return svg$.SvgElement.mouseOutEvent.forElement(this);
+  }
+  get [dartx.onMouseOver]() {
+    return svg$.SvgElement.mouseOverEvent.forElement(this);
+  }
+  get [dartx.onMouseUp]() {
+    return svg$.SvgElement.mouseUpEvent.forElement(this);
+  }
+  get [dartx.onMouseWheel]() {
+    return svg$.SvgElement.mouseWheelEvent.forElement(this);
+  }
+  get [dartx.onPause]() {
+    return svg$.SvgElement.pauseEvent.forElement(this);
+  }
+  get [dartx.onPlay]() {
+    return svg$.SvgElement.playEvent.forElement(this);
+  }
+  get [dartx.onPlaying]() {
+    return svg$.SvgElement.playingEvent.forElement(this);
+  }
+  get [dartx.onRateChange]() {
+    return svg$.SvgElement.rateChangeEvent.forElement(this);
+  }
+  get [dartx.onReset]() {
+    return svg$.SvgElement.resetEvent.forElement(this);
+  }
+  get [dartx.onResize]() {
+    return svg$.SvgElement.resizeEvent.forElement(this);
+  }
+  get [dartx.onScroll]() {
+    return svg$.SvgElement.scrollEvent.forElement(this);
+  }
+  get [dartx.onSeeked]() {
+    return svg$.SvgElement.seekedEvent.forElement(this);
+  }
+  get [dartx.onSeeking]() {
+    return svg$.SvgElement.seekingEvent.forElement(this);
+  }
+  get [dartx.onSelect]() {
+    return svg$.SvgElement.selectEvent.forElement(this);
+  }
+  get [dartx.onStalled]() {
+    return svg$.SvgElement.stalledEvent.forElement(this);
+  }
+  get [dartx.onSubmit]() {
+    return svg$.SvgElement.submitEvent.forElement(this);
+  }
+  get [dartx.onSuspend]() {
+    return svg$.SvgElement.suspendEvent.forElement(this);
+  }
+  get [dartx.onTimeUpdate]() {
+    return svg$.SvgElement.timeUpdateEvent.forElement(this);
+  }
+  get [dartx.onVolumeChange]() {
+    return svg$.SvgElement.volumeChangeEvent.forElement(this);
+  }
+  get [dartx.onWaiting]() {
+    return svg$.SvgElement.waitingEvent.forElement(this);
+  }
+};
+dart.defineNamedConstructor(svg$.SvgElement, 'created');
+svg$.SvgElement[dart.implements] = () => [html$.GlobalEventHandlers];
+dart.setSignature(svg$.SvgElement, {
+  constructors: () => ({
+    tag: dart.definiteFunctionType(svg$.SvgElement, [core.String]),
+    svg: dart.definiteFunctionType(svg$.SvgElement, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    _: dart.definiteFunctionType(svg$.SvgElement, []),
+    created: dart.definiteFunctionType(svg$.SvgElement, [])
+  }),
+  fields: () => ({
+    [dartx.ownerSvgElement]: svg$.SvgSvgElement,
+    [dartx.viewportElement]: svg$.SvgElement
+  }),
+  getters: () => ({
+    [_children$]: dart.definiteFunctionType(html$.HtmlCollection, []),
+    [_svgClassName]: dart.definiteFunctionType(svg$.AnimatedString, [])
+  }),
+  sfields: () => ({
+    _START_TAG_REGEXP: core.RegExp,
+    abortEvent: EventStreamProviderOfEvent(),
+    blurEvent: EventStreamProviderOfEvent(),
+    canPlayEvent: EventStreamProviderOfEvent(),
+    canPlayThroughEvent: EventStreamProviderOfEvent(),
+    changeEvent: EventStreamProviderOfEvent(),
+    clickEvent: EventStreamProviderOfMouseEvent(),
+    contextMenuEvent: EventStreamProviderOfMouseEvent(),
+    doubleClickEvent: EventStreamProviderOfEvent(),
+    dragEvent: EventStreamProviderOfMouseEvent(),
+    dragEndEvent: EventStreamProviderOfMouseEvent(),
+    dragEnterEvent: EventStreamProviderOfMouseEvent(),
+    dragLeaveEvent: EventStreamProviderOfMouseEvent(),
+    dragOverEvent: EventStreamProviderOfMouseEvent(),
+    dragStartEvent: EventStreamProviderOfMouseEvent(),
+    dropEvent: EventStreamProviderOfMouseEvent(),
+    durationChangeEvent: EventStreamProviderOfEvent(),
+    emptiedEvent: EventStreamProviderOfEvent(),
+    endedEvent: EventStreamProviderOfEvent(),
+    errorEvent: EventStreamProviderOfEvent(),
+    focusEvent: EventStreamProviderOfEvent(),
+    inputEvent: EventStreamProviderOfEvent(),
+    invalidEvent: EventStreamProviderOfEvent(),
+    keyDownEvent: EventStreamProviderOfKeyboardEvent(),
+    keyPressEvent: EventStreamProviderOfKeyboardEvent(),
+    keyUpEvent: EventStreamProviderOfKeyboardEvent(),
+    loadEvent: EventStreamProviderOfEvent(),
+    loadedDataEvent: EventStreamProviderOfEvent(),
+    loadedMetadataEvent: EventStreamProviderOfEvent(),
+    mouseDownEvent: EventStreamProviderOfMouseEvent(),
+    mouseEnterEvent: EventStreamProviderOfMouseEvent(),
+    mouseLeaveEvent: EventStreamProviderOfMouseEvent(),
+    mouseMoveEvent: EventStreamProviderOfMouseEvent(),
+    mouseOutEvent: EventStreamProviderOfMouseEvent(),
+    mouseOverEvent: EventStreamProviderOfMouseEvent(),
+    mouseUpEvent: EventStreamProviderOfMouseEvent(),
+    mouseWheelEvent: EventStreamProviderOfWheelEvent(),
+    pauseEvent: EventStreamProviderOfEvent(),
+    playEvent: EventStreamProviderOfEvent(),
+    playingEvent: EventStreamProviderOfEvent(),
+    rateChangeEvent: EventStreamProviderOfEvent(),
+    resetEvent: EventStreamProviderOfEvent(),
+    resizeEvent: EventStreamProviderOfEvent(),
+    scrollEvent: EventStreamProviderOfEvent(),
+    seekedEvent: EventStreamProviderOfEvent(),
+    seekingEvent: EventStreamProviderOfEvent(),
+    selectEvent: EventStreamProviderOfEvent(),
+    stalledEvent: EventStreamProviderOfEvent(),
+    submitEvent: EventStreamProviderOfEvent(),
+    suspendEvent: EventStreamProviderOfEvent(),
+    timeUpdateEvent: EventStreamProviderOfEvent(),
+    volumeChangeEvent: EventStreamProviderOfEvent(),
+    waitingEvent: EventStreamProviderOfEvent()
+  })
+});
+dart.defineLazy(svg$.SvgElement, {
+  get _START_TAG_REGEXP() {
+    return core.RegExp.new('<(\\w+)');
+  },
+  get abortEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('abort'));
+  },
+  get blurEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('blur'));
+  },
+  get canPlayEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('canplay'));
+  },
+  get canPlayThroughEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('canplaythrough'));
+  },
+  get changeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('change'));
+  },
+  get clickEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('click'));
+  },
+  get contextMenuEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('contextmenu'));
+  },
+  get doubleClickEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('dblclick'));
+  },
+  get dragEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('drag'));
+  },
+  get dragEndEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragend'));
+  },
+  get dragEnterEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragenter'));
+  },
+  get dragLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragleave'));
+  },
+  get dragOverEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragover'));
+  },
+  get dragStartEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('dragstart'));
+  },
+  get dropEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('drop'));
+  },
+  get durationChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('durationchange'));
+  },
+  get emptiedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('emptied'));
+  },
+  get endedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ended'));
+  },
+  get errorEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('error'));
+  },
+  get focusEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('focus'));
+  },
+  get inputEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('input'));
+  },
+  get invalidEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('invalid'));
+  },
+  get keyDownEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keydown'));
+  },
+  get keyPressEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keypress'));
+  },
+  get keyUpEvent() {
+    return dart.const(new (EventStreamProviderOfKeyboardEvent())('keyup'));
+  },
+  get loadEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('load'));
+  },
+  get loadedDataEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadeddata'));
+  },
+  get loadedMetadataEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('loadedmetadata'));
+  },
+  get mouseDownEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mousedown'));
+  },
+  get mouseEnterEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseenter'));
+  },
+  get mouseLeaveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseleave'));
+  },
+  get mouseMoveEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mousemove'));
+  },
+  get mouseOutEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseout'));
+  },
+  get mouseOverEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseover'));
+  },
+  get mouseUpEvent() {
+    return dart.const(new (EventStreamProviderOfMouseEvent())('mouseup'));
+  },
+  get mouseWheelEvent() {
+    return dart.const(new (EventStreamProviderOfWheelEvent())('mousewheel'));
+  },
+  get pauseEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('pause'));
+  },
+  get playEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('play'));
+  },
+  get playingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('playing'));
+  },
+  get rateChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('ratechange'));
+  },
+  get resetEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('reset'));
+  },
+  get resizeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('resize'));
+  },
+  get scrollEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('scroll'));
+  },
+  get seekedEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('seeked'));
+  },
+  get seekingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('seeking'));
+  },
+  get selectEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('select'));
+  },
+  get stalledEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('stalled'));
+  },
+  get submitEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('submit'));
+  },
+  get suspendEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('suspend'));
+  },
+  get timeUpdateEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('timeupdate'));
+  },
+  get volumeChangeEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('volumechange'));
+  },
+  get waitingEvent() {
+    return dart.const(new (EventStreamProviderOfEvent())('waiting'));
+  }
+});
+dart.registerExtension(dart.global.SVGElement, svg$.SvgElement);
+dart.defineExtensionNames([
+  'getBBox',
+  'getCtm',
+  'getScreenCtm',
+  'getTransformToElement',
+  'hasExtension',
+  'farthestViewportElement',
+  'nearestViewportElement',
+  'transform',
+  'requiredExtensions',
+  'requiredFeatures',
+  'systemLanguage'
+]);
+svg$.GraphicsElement = class GraphicsElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.farthestViewportElement] = null;
+    this[dartx.nearestViewportElement] = null;
+    this[dartx.transform] = null;
+    this[dartx.requiredExtensions] = null;
+    this[dartx.requiredFeatures] = null;
+    this[dartx.systemLanguage] = null;
+    super.created();
+  }
+  get [dartx.farthestViewportElement]() {
+    return this.farthestViewportElement;
+  }
+  get [dartx.nearestViewportElement]() {
+    return this.nearestViewportElement;
+  }
+  get [dartx.transform]() {
+    return this.transform;
+  }
+  [dartx.getBBox](...args) {
+    return this.getBBox.apply(this, args);
+  }
+  [dartx.getCtm](...args) {
+    return this.getCTM.apply(this, args);
+  }
+  [dartx.getScreenCtm](...args) {
+    return this.getScreenCTM.apply(this, args);
+  }
+  [dartx.getTransformToElement](...args) {
+    return this.getTransformToElement.apply(this, args);
+  }
+  get [dartx.requiredExtensions]() {
+    return this.requiredExtensions;
+  }
+  get [dartx.requiredFeatures]() {
+    return this.requiredFeatures;
+  }
+  get [dartx.systemLanguage]() {
+    return this.systemLanguage;
+  }
+  [dartx.hasExtension](...args) {
+    return this.hasExtension.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(svg$.GraphicsElement, 'created');
+svg$.GraphicsElement[dart.implements] = () => [svg$.Tests];
+dart.setSignature(svg$.GraphicsElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.GraphicsElement, []),
+    created: dart.definiteFunctionType(svg$.GraphicsElement, [])
+  }),
+  fields: () => ({
+    [dartx.farthestViewportElement]: svg$.SvgElement,
+    [dartx.nearestViewportElement]: svg$.SvgElement,
+    [dartx.transform]: svg$.AnimatedTransformList,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList
+  }),
+  methods: () => ({
+    [dartx.getBBox]: dart.definiteFunctionType(svg$.Rect, []),
+    [dartx.getCtm]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.getScreenCtm]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.getTransformToElement]: dart.definiteFunctionType(svg$.Matrix, [svg$.SvgElement]),
+    [dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])
+  })
+});
+dart.registerExtension(dart.global.SVGGraphicsElement, svg$.GraphicsElement);
+dart.defineExtensionNames([
+  'target',
+  'href'
+]);
+svg$.AElement = class AElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.AElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("a"));
+  }
+  created() {
+    this[dartx.target] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.target]() {
+    return this.target;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.AElement, 'created');
+svg$.AElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.AElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.AElement, []),
+    new: dart.definiteFunctionType(svg$.AElement, []),
+    created: dart.definiteFunctionType(svg$.AElement, [])
+  }),
+  fields: () => ({
+    [dartx.target]: svg$.AnimatedString,
+    [dartx.href]: svg$.AnimatedString
+  })
+});
+dart.registerExtension(dart.global.SVGAElement, svg$.AElement);
+dart.defineExtensionNames([
+  'convertToSpecifiedUnits',
+  'newValueSpecifiedUnits',
+  'unitType',
+  'value',
+  'valueAsString',
+  'valueInSpecifiedUnits'
+]);
+svg$.Angle = class Angle extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.unitType]() {
+    return this.unitType;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.valueAsString]() {
+    return this.valueAsString;
+  }
+  set [dartx.valueAsString](value) {
+    this.valueAsString = value;
+  }
+  get [dartx.valueInSpecifiedUnits]() {
+    return this.valueInSpecifiedUnits;
+  }
+  set [dartx.valueInSpecifiedUnits](value) {
+    this.valueInSpecifiedUnits = value;
+  }
+  [dartx.convertToSpecifiedUnits](...args) {
+    return this.convertToSpecifiedUnits.apply(this, args);
+  }
+  [dartx.newValueSpecifiedUnits](...args) {
+    return this.newValueSpecifiedUnits.apply(this, args);
+  }
+};
+dart.setSignature(svg$.Angle, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Angle, [])}),
+  fields: () => ({
+    [dartx.unitType]: core.int,
+    [dartx.value]: core.num,
+    [dartx.valueAsString]: core.String,
+    [dartx.valueInSpecifiedUnits]: core.num
+  }),
+  methods: () => ({
+    [dartx.convertToSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.newValueSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int, core.num])
+  }),
+  sfields: () => ({
+    SVG_ANGLETYPE_DEG: core.int,
+    SVG_ANGLETYPE_GRAD: core.int,
+    SVG_ANGLETYPE_RAD: core.int,
+    SVG_ANGLETYPE_UNKNOWN: core.int,
+    SVG_ANGLETYPE_UNSPECIFIED: core.int
+  })
+});
+svg$.Angle.SVG_ANGLETYPE_DEG = 2;
+svg$.Angle.SVG_ANGLETYPE_GRAD = 4;
+svg$.Angle.SVG_ANGLETYPE_RAD = 3;
+svg$.Angle.SVG_ANGLETYPE_UNKNOWN = 0;
+svg$.Angle.SVG_ANGLETYPE_UNSPECIFIED = 1;
+dart.registerExtension(dart.global.SVGAngle, svg$.Angle);
+dart.defineExtensionNames([
+  'beginElement',
+  'beginElementAt',
+  'endElement',
+  'endElementAt',
+  'getCurrentTime',
+  'getSimpleDuration',
+  'getStartTime',
+  'hasExtension',
+  'targetElement',
+  'requiredExtensions',
+  'requiredFeatures',
+  'systemLanguage'
+]);
+svg$.AnimationElement = class AnimationElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.AnimationElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animation"));
+  }
+  created() {
+    this[dartx.targetElement] = null;
+    this[dartx.requiredExtensions] = null;
+    this[dartx.requiredFeatures] = null;
+    this[dartx.systemLanguage] = null;
+    super.created();
+  }
+  get [dartx.targetElement]() {
+    return this.targetElement;
+  }
+  [dartx.beginElement](...args) {
+    return this.beginElement.apply(this, args);
+  }
+  [dartx.beginElementAt](...args) {
+    return this.beginElementAt.apply(this, args);
+  }
+  [dartx.endElement](...args) {
+    return this.endElement.apply(this, args);
+  }
+  [dartx.endElementAt](...args) {
+    return this.endElementAt.apply(this, args);
+  }
+  [dartx.getCurrentTime](...args) {
+    return this.getCurrentTime.apply(this, args);
+  }
+  [dartx.getSimpleDuration](...args) {
+    return this.getSimpleDuration.apply(this, args);
+  }
+  [dartx.getStartTime](...args) {
+    return this.getStartTime.apply(this, args);
+  }
+  get [dartx.requiredExtensions]() {
+    return this.requiredExtensions;
+  }
+  get [dartx.requiredFeatures]() {
+    return this.requiredFeatures;
+  }
+  get [dartx.systemLanguage]() {
+    return this.systemLanguage;
+  }
+  [dartx.hasExtension](...args) {
+    return this.hasExtension.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(svg$.AnimationElement, 'created');
+svg$.AnimationElement[dart.implements] = () => [svg$.Tests];
+dart.setSignature(svg$.AnimationElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.AnimationElement, []),
+    new: dart.definiteFunctionType(svg$.AnimationElement, []),
+    created: dart.definiteFunctionType(svg$.AnimationElement, [])
+  }),
+  fields: () => ({
+    [dartx.targetElement]: svg$.SvgElement,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList
+  }),
+  methods: () => ({
+    [dartx.beginElement]: dart.definiteFunctionType(dart.void, []),
+    [dartx.beginElementAt]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.endElement]: dart.definiteFunctionType(dart.void, []),
+    [dartx.endElementAt]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.getCurrentTime]: dart.definiteFunctionType(core.double, []),
+    [dartx.getSimpleDuration]: dart.definiteFunctionType(core.double, []),
+    [dartx.getStartTime]: dart.definiteFunctionType(core.double, []),
+    [dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])
+  })
+});
+dart.registerExtension(dart.global.SVGAnimationElement, svg$.AnimationElement);
+svg$.AnimateElement = class AnimateElement extends svg$.AnimationElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.AnimateElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animate"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('animate')) && svg$.AnimateElement.is(svg$.SvgElement.tag('animate'));
+  }
+};
+dart.defineNamedConstructor(svg$.AnimateElement, 'created');
+dart.setSignature(svg$.AnimateElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.AnimateElement, []),
+    new: dart.definiteFunctionType(svg$.AnimateElement, []),
+    created: dart.definiteFunctionType(svg$.AnimateElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGAnimateElement, svg$.AnimateElement);
+svg$.AnimateMotionElement = class AnimateMotionElement extends svg$.AnimationElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.AnimateMotionElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateMotion"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('animateMotion')) && svg$.AnimateMotionElement.is(svg$.SvgElement.tag('animateMotion'));
+  }
+};
+dart.defineNamedConstructor(svg$.AnimateMotionElement, 'created');
+dart.setSignature(svg$.AnimateMotionElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.AnimateMotionElement, []),
+    new: dart.definiteFunctionType(svg$.AnimateMotionElement, []),
+    created: dart.definiteFunctionType(svg$.AnimateMotionElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGAnimateMotionElement, svg$.AnimateMotionElement);
+svg$.AnimateTransformElement = class AnimateTransformElement extends svg$.AnimationElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.AnimateTransformElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateTransform"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('animateTransform')) && svg$.AnimateTransformElement.is(svg$.SvgElement.tag('animateTransform'));
+  }
+};
+dart.defineNamedConstructor(svg$.AnimateTransformElement, 'created');
+dart.setSignature(svg$.AnimateTransformElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.AnimateTransformElement, []),
+    new: dart.definiteFunctionType(svg$.AnimateTransformElement, []),
+    created: dart.definiteFunctionType(svg$.AnimateTransformElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGAnimateTransformElement, svg$.AnimateTransformElement);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedAngle = class AnimatedAngle extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedAngle, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedAngle, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.Angle,
+    [dartx.baseVal]: svg$.Angle
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedAngle, svg$.AnimatedAngle);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedBoolean = class AnimatedBoolean extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+  set [dartx.baseVal](value) {
+    this.baseVal = value;
+  }
+};
+dart.setSignature(svg$.AnimatedBoolean, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedBoolean, [])}),
+  fields: () => ({
+    [dartx.animVal]: core.bool,
+    [dartx.baseVal]: core.bool
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedBoolean, svg$.AnimatedBoolean);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedEnumeration = class AnimatedEnumeration extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+  set [dartx.baseVal](value) {
+    this.baseVal = value;
+  }
+};
+dart.setSignature(svg$.AnimatedEnumeration, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedEnumeration, [])}),
+  fields: () => ({
+    [dartx.animVal]: core.int,
+    [dartx.baseVal]: core.int
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedEnumeration, svg$.AnimatedEnumeration);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedInteger = class AnimatedInteger extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+  set [dartx.baseVal](value) {
+    this.baseVal = value;
+  }
+};
+dart.setSignature(svg$.AnimatedInteger, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedInteger, [])}),
+  fields: () => ({
+    [dartx.animVal]: core.int,
+    [dartx.baseVal]: core.int
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedInteger, svg$.AnimatedInteger);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedLength = class AnimatedLength extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedLength, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedLength, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.Length,
+    [dartx.baseVal]: svg$.Length
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedLength, svg$.AnimatedLength);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedLengthList = class AnimatedLengthList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedLengthList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedLengthList, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.LengthList,
+    [dartx.baseVal]: svg$.LengthList
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedLengthList, svg$.AnimatedLengthList);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedNumber = class AnimatedNumber extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+  set [dartx.baseVal](value) {
+    this.baseVal = value;
+  }
+};
+dart.setSignature(svg$.AnimatedNumber, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedNumber, [])}),
+  fields: () => ({
+    [dartx.animVal]: core.double,
+    [dartx.baseVal]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedNumber, svg$.AnimatedNumber);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedNumberList = class AnimatedNumberList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedNumberList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedNumberList, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.NumberList,
+    [dartx.baseVal]: svg$.NumberList
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedNumberList, svg$.AnimatedNumberList);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedPreserveAspectRatio = class AnimatedPreserveAspectRatio extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedPreserveAspectRatio, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedPreserveAspectRatio, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.PreserveAspectRatio,
+    [dartx.baseVal]: svg$.PreserveAspectRatio
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedPreserveAspectRatio, svg$.AnimatedPreserveAspectRatio);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedRect = class AnimatedRect extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedRect, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedRect, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.Rect,
+    [dartx.baseVal]: svg$.Rect
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedRect, svg$.AnimatedRect);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedString = class AnimatedString extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+  set [dartx.baseVal](value) {
+    this.baseVal = value;
+  }
+};
+dart.setSignature(svg$.AnimatedString, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedString, [])}),
+  fields: () => ({
+    [dartx.animVal]: core.String,
+    [dartx.baseVal]: core.String
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedString, svg$.AnimatedString);
+dart.defineExtensionNames([
+  'animVal',
+  'baseVal'
+]);
+svg$.AnimatedTransformList = class AnimatedTransformList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.animVal]() {
+    return this.animVal;
+  }
+  get [dartx.baseVal]() {
+    return this.baseVal;
+  }
+};
+dart.setSignature(svg$.AnimatedTransformList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedTransformList, [])}),
+  fields: () => ({
+    [dartx.animVal]: svg$.TransformList,
+    [dartx.baseVal]: svg$.TransformList
+  })
+});
+dart.registerExtension(dart.global.SVGAnimatedTransformList, svg$.AnimatedTransformList);
+dart.defineExtensionNames([
+  'isPointInFill',
+  'isPointInStroke'
+]);
+svg$.GeometryElement = class GeometryElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+  [dartx.isPointInFill](...args) {
+    return this.isPointInFill.apply(this, args);
+  }
+  [dartx.isPointInStroke](...args) {
+    return this.isPointInStroke.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(svg$.GeometryElement, 'created');
+dart.setSignature(svg$.GeometryElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.GeometryElement, []),
+    created: dart.definiteFunctionType(svg$.GeometryElement, [])
+  }),
+  methods: () => ({
+    [dartx.isPointInFill]: dart.definiteFunctionType(core.bool, [svg$.Point]),
+    [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [svg$.Point])
+  })
+});
+dart.registerExtension(dart.global.SVGGeometryElement, svg$.GeometryElement);
+dart.defineExtensionNames([
+  'cx',
+  'cy',
+  'r'
+]);
+svg$.CircleElement = class CircleElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.CircleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("circle"));
+  }
+  created() {
+    this[dartx.cx] = null;
+    this[dartx.cy] = null;
+    this[dartx.r] = null;
+    super.created();
+  }
+  get [dartx.cx]() {
+    return this.cx;
+  }
+  get [dartx.cy]() {
+    return this.cy;
+  }
+  get [dartx.r]() {
+    return this.r;
+  }
+};
+dart.defineNamedConstructor(svg$.CircleElement, 'created');
+dart.setSignature(svg$.CircleElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.CircleElement, []),
+    new: dart.definiteFunctionType(svg$.CircleElement, []),
+    created: dart.definiteFunctionType(svg$.CircleElement, [])
+  }),
+  fields: () => ({
+    [dartx.cx]: svg$.AnimatedLength,
+    [dartx.cy]: svg$.AnimatedLength,
+    [dartx.r]: svg$.AnimatedLength
+  })
+});
+dart.registerExtension(dart.global.SVGCircleElement, svg$.CircleElement);
+dart.defineExtensionNames([
+  'clipPathUnits'
+]);
+svg$.ClipPathElement = class ClipPathElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.ClipPathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("clipPath"));
+  }
+  created() {
+    this[dartx.clipPathUnits] = null;
+    super.created();
+  }
+  get [dartx.clipPathUnits]() {
+    return this.clipPathUnits;
+  }
+};
+dart.defineNamedConstructor(svg$.ClipPathElement, 'created');
+dart.setSignature(svg$.ClipPathElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.ClipPathElement, []),
+    new: dart.definiteFunctionType(svg$.ClipPathElement, []),
+    created: dart.definiteFunctionType(svg$.ClipPathElement, [])
+  }),
+  fields: () => ({[dartx.clipPathUnits]: svg$.AnimatedEnumeration})
+});
+dart.registerExtension(dart.global.SVGClipPathElement, svg$.ClipPathElement);
+svg$.DefsElement = class DefsElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.DefsElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("defs"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.DefsElement, 'created');
+dart.setSignature(svg$.DefsElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.DefsElement, []),
+    new: dart.definiteFunctionType(svg$.DefsElement, []),
+    created: dart.definiteFunctionType(svg$.DefsElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGDefsElement, svg$.DefsElement);
+svg$.DescElement = class DescElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.DescElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("desc"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.DescElement, 'created');
+dart.setSignature(svg$.DescElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.DescElement, []),
+    new: dart.definiteFunctionType(svg$.DescElement, []),
+    created: dart.definiteFunctionType(svg$.DescElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGDescElement, svg$.DescElement);
+svg$.DiscardElement = class DiscardElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.DiscardElement, 'created');
+dart.setSignature(svg$.DiscardElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.DiscardElement, []),
+    created: dart.definiteFunctionType(svg$.DiscardElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGDiscardElement, svg$.DiscardElement);
+dart.defineExtensionNames([
+  'cx',
+  'cy',
+  'rx',
+  'ry'
+]);
+svg$.EllipseElement = class EllipseElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.EllipseElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("ellipse"));
+  }
+  created() {
+    this[dartx.cx] = null;
+    this[dartx.cy] = null;
+    this[dartx.rx] = null;
+    this[dartx.ry] = null;
+    super.created();
+  }
+  get [dartx.cx]() {
+    return this.cx;
+  }
+  get [dartx.cy]() {
+    return this.cy;
+  }
+  get [dartx.rx]() {
+    return this.rx;
+  }
+  get [dartx.ry]() {
+    return this.ry;
+  }
+};
+dart.defineNamedConstructor(svg$.EllipseElement, 'created');
+dart.setSignature(svg$.EllipseElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.EllipseElement, []),
+    new: dart.definiteFunctionType(svg$.EllipseElement, []),
+    created: dart.definiteFunctionType(svg$.EllipseElement, [])
+  }),
+  fields: () => ({
+    [dartx.cx]: svg$.AnimatedLength,
+    [dartx.cy]: svg$.AnimatedLength,
+    [dartx.rx]: svg$.AnimatedLength,
+    [dartx.ry]: svg$.AnimatedLength
+  })
+});
+dart.registerExtension(dart.global.SVGEllipseElement, svg$.EllipseElement);
+dart.defineExtensionNames([
+  'in1',
+  'in2',
+  'mode',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEBlendElement = class FEBlendElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEBlendElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feBlend"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.in2] = null;
+    this[dartx.mode] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feBlend')) && svg$.FEBlendElement.is(svg$.SvgElement.tag('feBlend'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.in2]() {
+    return this.in2;
+  }
+  get [dartx.mode]() {
+    return this.mode;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEBlendElement, 'created');
+svg$.FEBlendElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEBlendElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEBlendElement, []),
+    new: dart.definiteFunctionType(svg$.FEBlendElement, []),
+    created: dart.definiteFunctionType(svg$.FEBlendElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.in2]: svg$.AnimatedString,
+    [dartx.mode]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_FEBLEND_MODE_DARKEN: core.int,
+    SVG_FEBLEND_MODE_LIGHTEN: core.int,
+    SVG_FEBLEND_MODE_MULTIPLY: core.int,
+    SVG_FEBLEND_MODE_NORMAL: core.int,
+    SVG_FEBLEND_MODE_SCREEN: core.int,
+    SVG_FEBLEND_MODE_UNKNOWN: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+svg$.FEBlendElement.SVG_FEBLEND_MODE_DARKEN = 4;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN = 5;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_MULTIPLY = 2;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_NORMAL = 1;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_SCREEN = 3;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEBlendElement, svg$.FEBlendElement);
+dart.defineExtensionNames([
+  'in1',
+  'type',
+  'values',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEColorMatrixElement = class FEColorMatrixElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEColorMatrixElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.type] = null;
+    this[dartx.values] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feColorMatrix')) && svg$.FEColorMatrixElement.is(svg$.SvgElement.tag('feColorMatrix'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.values]() {
+    return this.values;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEColorMatrixElement, 'created');
+svg$.FEColorMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEColorMatrixElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEColorMatrixElement, []),
+    new: dart.definiteFunctionType(svg$.FEColorMatrixElement, []),
+    created: dart.definiteFunctionType(svg$.FEColorMatrixElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.type]: svg$.AnimatedEnumeration,
+    [dartx.values]: svg$.AnimatedNumberList,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_FECOLORMATRIX_TYPE_HUEROTATE: core.int,
+    SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: core.int,
+    SVG_FECOLORMATRIX_TYPE_MATRIX: core.int,
+    SVG_FECOLORMATRIX_TYPE_SATURATE: core.int,
+    SVG_FECOLORMATRIX_TYPE_UNKNOWN: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEColorMatrixElement, svg$.FEColorMatrixElement);
+dart.defineExtensionNames([
+  'in1',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEComponentTransferElement = class FEComponentTransferElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEComponentTransferElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feComponentTransfer')) && svg$.FEComponentTransferElement.is(svg$.SvgElement.tag('feComponentTransfer'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEComponentTransferElement, 'created');
+svg$.FEComponentTransferElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEComponentTransferElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEComponentTransferElement, []),
+    new: dart.definiteFunctionType(svg$.FEComponentTransferElement, []),
+    created: dart.definiteFunctionType(svg$.FEComponentTransferElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEComponentTransferElement, svg$.FEComponentTransferElement);
+dart.defineExtensionNames([
+  'in1',
+  'in2',
+  'k1',
+  'k2',
+  'k3',
+  'k4',
+  'operator',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FECompositeElement = class FECompositeElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.in2] = null;
+    this[dartx.k1] = null;
+    this[dartx.k2] = null;
+    this[dartx.k3] = null;
+    this[dartx.k4] = null;
+    this[dartx.operator] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.in2]() {
+    return this.in2;
+  }
+  get [dartx.k1]() {
+    return this.k1;
+  }
+  get [dartx.k2]() {
+    return this.k2;
+  }
+  get [dartx.k3]() {
+    return this.k3;
+  }
+  get [dartx.k4]() {
+    return this.k4;
+  }
+  get [dartx.operator]() {
+    return this.operator;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FECompositeElement, 'created');
+svg$.FECompositeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FECompositeElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FECompositeElement, []),
+    created: dart.definiteFunctionType(svg$.FECompositeElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.in2]: svg$.AnimatedString,
+    [dartx.k1]: svg$.AnimatedNumber,
+    [dartx.k2]: svg$.AnimatedNumber,
+    [dartx.k3]: svg$.AnimatedNumber,
+    [dartx.k4]: svg$.AnimatedNumber,
+    [dartx.operator]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: core.int,
+    SVG_FECOMPOSITE_OPERATOR_ATOP: core.int,
+    SVG_FECOMPOSITE_OPERATOR_IN: core.int,
+    SVG_FECOMPOSITE_OPERATOR_OUT: core.int,
+    SVG_FECOMPOSITE_OPERATOR_OVER: core.int,
+    SVG_FECOMPOSITE_OPERATOR_UNKNOWN: core.int,
+    SVG_FECOMPOSITE_OPERATOR_XOR: core.int
+  })
+});
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN = 2;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT = 3;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER = 1;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR = 5;
+dart.registerExtension(dart.global.SVGFECompositeElement, svg$.FECompositeElement);
+dart.defineExtensionNames([
+  'bias',
+  'divisor',
+  'edgeMode',
+  'in1',
+  'kernelMatrix',
+  'kernelUnitLengthX',
+  'kernelUnitLengthY',
+  'orderX',
+  'orderY',
+  'preserveAlpha',
+  'targetX',
+  'targetY',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEConvolveMatrixElement = class FEConvolveMatrixElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEConvolveMatrixElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix"));
+  }
+  created() {
+    this[dartx.bias] = null;
+    this[dartx.divisor] = null;
+    this[dartx.edgeMode] = null;
+    this[dartx.in1] = null;
+    this[dartx.kernelMatrix] = null;
+    this[dartx.kernelUnitLengthX] = null;
+    this[dartx.kernelUnitLengthY] = null;
+    this[dartx.orderX] = null;
+    this[dartx.orderY] = null;
+    this[dartx.preserveAlpha] = null;
+    this[dartx.targetX] = null;
+    this[dartx.targetY] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feConvolveMatrix')) && svg$.FEConvolveMatrixElement.is(svg$.SvgElement.tag('feConvolveMatrix'));
+  }
+  get [dartx.bias]() {
+    return this.bias;
+  }
+  get [dartx.divisor]() {
+    return this.divisor;
+  }
+  get [dartx.edgeMode]() {
+    return this.edgeMode;
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.kernelMatrix]() {
+    return this.kernelMatrix;
+  }
+  get [dartx.kernelUnitLengthX]() {
+    return this.kernelUnitLengthX;
+  }
+  get [dartx.kernelUnitLengthY]() {
+    return this.kernelUnitLengthY;
+  }
+  get [dartx.orderX]() {
+    return this.orderX;
+  }
+  get [dartx.orderY]() {
+    return this.orderY;
+  }
+  get [dartx.preserveAlpha]() {
+    return this.preserveAlpha;
+  }
+  get [dartx.targetX]() {
+    return this.targetX;
+  }
+  get [dartx.targetY]() {
+    return this.targetY;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEConvolveMatrixElement, 'created');
+svg$.FEConvolveMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEConvolveMatrixElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, []),
+    new: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, []),
+    created: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, [])
+  }),
+  fields: () => ({
+    [dartx.bias]: svg$.AnimatedNumber,
+    [dartx.divisor]: svg$.AnimatedNumber,
+    [dartx.edgeMode]: svg$.AnimatedEnumeration,
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.kernelMatrix]: svg$.AnimatedNumberList,
+    [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
+    [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
+    [dartx.orderX]: svg$.AnimatedInteger,
+    [dartx.orderY]: svg$.AnimatedInteger,
+    [dartx.preserveAlpha]: svg$.AnimatedBoolean,
+    [dartx.targetX]: svg$.AnimatedInteger,
+    [dartx.targetY]: svg$.AnimatedInteger,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_EDGEMODE_DUPLICATE: core.int,
+    SVG_EDGEMODE_NONE: core.int,
+    SVG_EDGEMODE_UNKNOWN: core.int,
+    SVG_EDGEMODE_WRAP: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE = 1;
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_NONE = 3;
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN = 0;
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_WRAP = 2;
+dart.registerExtension(dart.global.SVGFEConvolveMatrixElement, svg$.FEConvolveMatrixElement);
+dart.defineExtensionNames([
+  'diffuseConstant',
+  'in1',
+  'kernelUnitLengthX',
+  'kernelUnitLengthY',
+  'surfaceScale',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEDiffuseLightingElement = class FEDiffuseLightingElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEDiffuseLightingElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting"));
+  }
+  created() {
+    this[dartx.diffuseConstant] = null;
+    this[dartx.in1] = null;
+    this[dartx.kernelUnitLengthX] = null;
+    this[dartx.kernelUnitLengthY] = null;
+    this[dartx.surfaceScale] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feDiffuseLighting')) && svg$.FEDiffuseLightingElement.is(svg$.SvgElement.tag('feDiffuseLighting'));
+  }
+  get [dartx.diffuseConstant]() {
+    return this.diffuseConstant;
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.kernelUnitLengthX]() {
+    return this.kernelUnitLengthX;
+  }
+  get [dartx.kernelUnitLengthY]() {
+    return this.kernelUnitLengthY;
+  }
+  get [dartx.surfaceScale]() {
+    return this.surfaceScale;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEDiffuseLightingElement, 'created');
+svg$.FEDiffuseLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEDiffuseLightingElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, []),
+    new: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, []),
+    created: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, [])
+  }),
+  fields: () => ({
+    [dartx.diffuseConstant]: svg$.AnimatedNumber,
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
+    [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
+    [dartx.surfaceScale]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEDiffuseLightingElement, svg$.FEDiffuseLightingElement);
+dart.defineExtensionNames([
+  'in1',
+  'in2',
+  'scale',
+  'xChannelSelector',
+  'yChannelSelector',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEDisplacementMapElement = class FEDisplacementMapElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEDisplacementMapElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.in2] = null;
+    this[dartx.scale] = null;
+    this[dartx.xChannelSelector] = null;
+    this[dartx.yChannelSelector] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feDisplacementMap')) && svg$.FEDisplacementMapElement.is(svg$.SvgElement.tag('feDisplacementMap'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.in2]() {
+    return this.in2;
+  }
+  get [dartx.scale]() {
+    return this.scale;
+  }
+  get [dartx.xChannelSelector]() {
+    return this.xChannelSelector;
+  }
+  get [dartx.yChannelSelector]() {
+    return this.yChannelSelector;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEDisplacementMapElement, 'created');
+svg$.FEDisplacementMapElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEDisplacementMapElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEDisplacementMapElement, []),
+    new: dart.definiteFunctionType(svg$.FEDisplacementMapElement, []),
+    created: dart.definiteFunctionType(svg$.FEDisplacementMapElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.in2]: svg$.AnimatedString,
+    [dartx.scale]: svg$.AnimatedNumber,
+    [dartx.xChannelSelector]: svg$.AnimatedEnumeration,
+    [dartx.yChannelSelector]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_CHANNEL_A: core.int,
+    SVG_CHANNEL_B: core.int,
+    SVG_CHANNEL_G: core.int,
+    SVG_CHANNEL_R: core.int,
+    SVG_CHANNEL_UNKNOWN: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+svg$.FEDisplacementMapElement.SVG_CHANNEL_A = 4;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_B = 3;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_G = 2;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_R = 1;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEDisplacementMapElement, svg$.FEDisplacementMapElement);
+dart.defineExtensionNames([
+  'azimuth',
+  'elevation'
+]);
+svg$.FEDistantLightElement = class FEDistantLightElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEDistantLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDistantLight"));
+  }
+  created() {
+    this[dartx.azimuth] = null;
+    this[dartx.elevation] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feDistantLight')) && svg$.FEDistantLightElement.is(svg$.SvgElement.tag('feDistantLight'));
+  }
+  get [dartx.azimuth]() {
+    return this.azimuth;
+  }
+  get [dartx.elevation]() {
+    return this.elevation;
+  }
+};
+dart.defineNamedConstructor(svg$.FEDistantLightElement, 'created');
+dart.setSignature(svg$.FEDistantLightElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEDistantLightElement, []),
+    new: dart.definiteFunctionType(svg$.FEDistantLightElement, []),
+    created: dart.definiteFunctionType(svg$.FEDistantLightElement, [])
+  }),
+  fields: () => ({
+    [dartx.azimuth]: svg$.AnimatedNumber,
+    [dartx.elevation]: svg$.AnimatedNumber
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEDistantLightElement, svg$.FEDistantLightElement);
+dart.defineExtensionNames([
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEFloodElement = class FEFloodElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEFloodElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFlood"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feFlood')) && svg$.FEFloodElement.is(svg$.SvgElement.tag('feFlood'));
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEFloodElement, 'created');
+svg$.FEFloodElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEFloodElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEFloodElement, []),
+    new: dart.definiteFunctionType(svg$.FEFloodElement, []),
+    created: dart.definiteFunctionType(svg$.FEFloodElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEFloodElement, svg$.FEFloodElement);
+svg$._SVGComponentTransferFunctionElement = class _SVGComponentTransferFunctionElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$._SVGComponentTransferFunctionElement, 'created');
+dart.setSignature(svg$._SVGComponentTransferFunctionElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$._SVGComponentTransferFunctionElement, []),
+    created: dart.definiteFunctionType(svg$._SVGComponentTransferFunctionElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGComponentTransferFunctionElement, svg$._SVGComponentTransferFunctionElement);
+svg$.FEFuncAElement = class FEFuncAElement extends svg$._SVGComponentTransferFunctionElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEFuncAElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncA"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncA')) && svg$.FEFuncAElement.is(svg$.SvgElement.tag('feFuncA'));
+  }
+};
+dart.defineNamedConstructor(svg$.FEFuncAElement, 'created');
+dart.setSignature(svg$.FEFuncAElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEFuncAElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncAElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncAElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEFuncAElement, svg$.FEFuncAElement);
+svg$.FEFuncBElement = class FEFuncBElement extends svg$._SVGComponentTransferFunctionElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEFuncBElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncB"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncB')) && svg$.FEFuncBElement.is(svg$.SvgElement.tag('feFuncB'));
+  }
+};
+dart.defineNamedConstructor(svg$.FEFuncBElement, 'created');
+dart.setSignature(svg$.FEFuncBElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEFuncBElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncBElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncBElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEFuncBElement, svg$.FEFuncBElement);
+svg$.FEFuncGElement = class FEFuncGElement extends svg$._SVGComponentTransferFunctionElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEFuncGElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncG"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncG')) && svg$.FEFuncGElement.is(svg$.SvgElement.tag('feFuncG'));
+  }
+};
+dart.defineNamedConstructor(svg$.FEFuncGElement, 'created');
+dart.setSignature(svg$.FEFuncGElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEFuncGElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncGElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncGElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEFuncGElement, svg$.FEFuncGElement);
+svg$.FEFuncRElement = class FEFuncRElement extends svg$._SVGComponentTransferFunctionElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEFuncRElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncR"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncR')) && svg$.FEFuncRElement.is(svg$.SvgElement.tag('feFuncR'));
+  }
+};
+dart.defineNamedConstructor(svg$.FEFuncRElement, 'created');
+dart.setSignature(svg$.FEFuncRElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEFuncRElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncRElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncRElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEFuncRElement, svg$.FEFuncRElement);
+dart.defineExtensionNames([
+  'setStdDeviation',
+  'in1',
+  'stdDeviationX',
+  'stdDeviationY',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEGaussianBlurElement = class FEGaussianBlurElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEGaussianBlurElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.stdDeviationX] = null;
+    this[dartx.stdDeviationY] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feGaussianBlur')) && svg$.FEGaussianBlurElement.is(svg$.SvgElement.tag('feGaussianBlur'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.stdDeviationX]() {
+    return this.stdDeviationX;
+  }
+  get [dartx.stdDeviationY]() {
+    return this.stdDeviationY;
+  }
+  [dartx.setStdDeviation](...args) {
+    return this.setStdDeviation.apply(this, args);
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEGaussianBlurElement, 'created');
+svg$.FEGaussianBlurElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEGaussianBlurElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEGaussianBlurElement, []),
+    new: dart.definiteFunctionType(svg$.FEGaussianBlurElement, []),
+    created: dart.definiteFunctionType(svg$.FEGaussianBlurElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.stdDeviationX]: svg$.AnimatedNumber,
+    [dartx.stdDeviationY]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  methods: () => ({[dartx.setStdDeviation]: dart.definiteFunctionType(dart.void, [core.num, core.num])}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEGaussianBlurElement, svg$.FEGaussianBlurElement);
+dart.defineExtensionNames([
+  'preserveAspectRatio',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y',
+  'href'
+]);
+svg$.FEImageElement = class FEImageElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEImageElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feImage"));
+  }
+  created() {
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feImage')) && svg$.FEImageElement.is(svg$.SvgElement.tag('feImage'));
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.FEImageElement, 'created');
+svg$.FEImageElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes, svg$.UriReference];
+dart.setSignature(svg$.FEImageElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEImageElement, []),
+    new: dart.definiteFunctionType(svg$.FEImageElement, []),
+    created: dart.definiteFunctionType(svg$.FEImageElement, [])
+  }),
+  fields: () => ({
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEImageElement, svg$.FEImageElement);
+dart.defineExtensionNames([
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEMergeElement = class FEMergeElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEMergeElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMerge"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feMerge')) && svg$.FEMergeElement.is(svg$.SvgElement.tag('feMerge'));
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEMergeElement, 'created');
+svg$.FEMergeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEMergeElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEMergeElement, []),
+    new: dart.definiteFunctionType(svg$.FEMergeElement, []),
+    created: dart.definiteFunctionType(svg$.FEMergeElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEMergeElement, svg$.FEMergeElement);
+dart.defineExtensionNames([
+  'in1'
+]);
+svg$.FEMergeNodeElement = class FEMergeNodeElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEMergeNodeElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMergeNode"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feMergeNode')) && svg$.FEMergeNodeElement.is(svg$.SvgElement.tag('feMergeNode'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+};
+dart.defineNamedConstructor(svg$.FEMergeNodeElement, 'created');
+dart.setSignature(svg$.FEMergeNodeElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEMergeNodeElement, []),
+    new: dart.definiteFunctionType(svg$.FEMergeNodeElement, []),
+    created: dart.definiteFunctionType(svg$.FEMergeNodeElement, [])
+  }),
+  fields: () => ({[dartx.in1]: svg$.AnimatedString}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEMergeNodeElement, svg$.FEMergeNodeElement);
+dart.defineExtensionNames([
+  'in1',
+  'operator',
+  'radiusX',
+  'radiusY',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEMorphologyElement = class FEMorphologyElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.operator] = null;
+    this[dartx.radiusX] = null;
+    this[dartx.radiusY] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.operator]() {
+    return this.operator;
+  }
+  get [dartx.radiusX]() {
+    return this.radiusX;
+  }
+  get [dartx.radiusY]() {
+    return this.radiusY;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEMorphologyElement, 'created');
+svg$.FEMorphologyElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEMorphologyElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEMorphologyElement, []),
+    created: dart.definiteFunctionType(svg$.FEMorphologyElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.operator]: svg$.AnimatedEnumeration,
+    [dartx.radiusX]: svg$.AnimatedNumber,
+    [dartx.radiusY]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_MORPHOLOGY_OPERATOR_DILATE: core.int,
+    SVG_MORPHOLOGY_OPERATOR_ERODE: core.int,
+    SVG_MORPHOLOGY_OPERATOR_UNKNOWN: core.int
+  })
+});
+svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
+svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
+svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEMorphologyElement, svg$.FEMorphologyElement);
+dart.defineExtensionNames([
+  'dx',
+  'dy',
+  'in1',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FEOffsetElement = class FEOffsetElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEOffsetElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feOffset"));
+  }
+  created() {
+    this[dartx.dx] = null;
+    this[dartx.dy] = null;
+    this[dartx.in1] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feOffset')) && svg$.FEOffsetElement.is(svg$.SvgElement.tag('feOffset'));
+  }
+  get [dartx.dx]() {
+    return this.dx;
+  }
+  get [dartx.dy]() {
+    return this.dy;
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FEOffsetElement, 'created');
+svg$.FEOffsetElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEOffsetElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEOffsetElement, []),
+    new: dart.definiteFunctionType(svg$.FEOffsetElement, []),
+    created: dart.definiteFunctionType(svg$.FEOffsetElement, [])
+  }),
+  fields: () => ({
+    [dartx.dx]: svg$.AnimatedNumber,
+    [dartx.dy]: svg$.AnimatedNumber,
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEOffsetElement, svg$.FEOffsetElement);
+dart.defineExtensionNames([
+  'x',
+  'y',
+  'z'
+]);
+svg$.FEPointLightElement = class FEPointLightElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FEPointLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("fePointLight"));
+  }
+  created() {
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.z] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('fePointLight')) && svg$.FEPointLightElement.is(svg$.SvgElement.tag('fePointLight'));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.z]() {
+    return this.z;
+  }
+};
+dart.defineNamedConstructor(svg$.FEPointLightElement, 'created');
+dart.setSignature(svg$.FEPointLightElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FEPointLightElement, []),
+    new: dart.definiteFunctionType(svg$.FEPointLightElement, []),
+    created: dart.definiteFunctionType(svg$.FEPointLightElement, [])
+  }),
+  fields: () => ({
+    [dartx.x]: svg$.AnimatedNumber,
+    [dartx.y]: svg$.AnimatedNumber,
+    [dartx.z]: svg$.AnimatedNumber
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFEPointLightElement, svg$.FEPointLightElement);
+dart.defineExtensionNames([
+  'in1',
+  'kernelUnitLengthX',
+  'kernelUnitLengthY',
+  'specularConstant',
+  'specularExponent',
+  'surfaceScale',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FESpecularLightingElement = class FESpecularLightingElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FESpecularLightingElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.kernelUnitLengthX] = null;
+    this[dartx.kernelUnitLengthY] = null;
+    this[dartx.specularConstant] = null;
+    this[dartx.specularExponent] = null;
+    this[dartx.surfaceScale] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feSpecularLighting')) && svg$.FESpecularLightingElement.is(svg$.SvgElement.tag('feSpecularLighting'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.kernelUnitLengthX]() {
+    return this.kernelUnitLengthX;
+  }
+  get [dartx.kernelUnitLengthY]() {
+    return this.kernelUnitLengthY;
+  }
+  get [dartx.specularConstant]() {
+    return this.specularConstant;
+  }
+  get [dartx.specularExponent]() {
+    return this.specularExponent;
+  }
+  get [dartx.surfaceScale]() {
+    return this.surfaceScale;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FESpecularLightingElement, 'created');
+svg$.FESpecularLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FESpecularLightingElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FESpecularLightingElement, []),
+    new: dart.definiteFunctionType(svg$.FESpecularLightingElement, []),
+    created: dart.definiteFunctionType(svg$.FESpecularLightingElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
+    [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
+    [dartx.specularConstant]: svg$.AnimatedNumber,
+    [dartx.specularExponent]: svg$.AnimatedNumber,
+    [dartx.surfaceScale]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFESpecularLightingElement, svg$.FESpecularLightingElement);
+dart.defineExtensionNames([
+  'limitingConeAngle',
+  'pointsAtX',
+  'pointsAtY',
+  'pointsAtZ',
+  'specularExponent',
+  'x',
+  'y',
+  'z'
+]);
+svg$.FESpotLightElement = class FESpotLightElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FESpotLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpotLight"));
+  }
+  created() {
+    this[dartx.limitingConeAngle] = null;
+    this[dartx.pointsAtX] = null;
+    this[dartx.pointsAtY] = null;
+    this[dartx.pointsAtZ] = null;
+    this[dartx.specularExponent] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.z] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feSpotLight')) && svg$.FESpotLightElement.is(svg$.SvgElement.tag('feSpotLight'));
+  }
+  get [dartx.limitingConeAngle]() {
+    return this.limitingConeAngle;
+  }
+  get [dartx.pointsAtX]() {
+    return this.pointsAtX;
+  }
+  get [dartx.pointsAtY]() {
+    return this.pointsAtY;
+  }
+  get [dartx.pointsAtZ]() {
+    return this.pointsAtZ;
+  }
+  get [dartx.specularExponent]() {
+    return this.specularExponent;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.z]() {
+    return this.z;
+  }
+};
+dart.defineNamedConstructor(svg$.FESpotLightElement, 'created');
+dart.setSignature(svg$.FESpotLightElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FESpotLightElement, []),
+    new: dart.definiteFunctionType(svg$.FESpotLightElement, []),
+    created: dart.definiteFunctionType(svg$.FESpotLightElement, [])
+  }),
+  fields: () => ({
+    [dartx.limitingConeAngle]: svg$.AnimatedNumber,
+    [dartx.pointsAtX]: svg$.AnimatedNumber,
+    [dartx.pointsAtY]: svg$.AnimatedNumber,
+    [dartx.pointsAtZ]: svg$.AnimatedNumber,
+    [dartx.specularExponent]: svg$.AnimatedNumber,
+    [dartx.x]: svg$.AnimatedNumber,
+    [dartx.y]: svg$.AnimatedNumber,
+    [dartx.z]: svg$.AnimatedNumber
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFESpotLightElement, svg$.FESpotLightElement);
+dart.defineExtensionNames([
+  'in1',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FETileElement = class FETileElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FETileElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTile"));
+  }
+  created() {
+    this[dartx.in1] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feTile')) && svg$.FETileElement.is(svg$.SvgElement.tag('feTile'));
+  }
+  get [dartx.in1]() {
+    return this.in1;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FETileElement, 'created');
+svg$.FETileElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FETileElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FETileElement, []),
+    new: dart.definiteFunctionType(svg$.FETileElement, []),
+    created: dart.definiteFunctionType(svg$.FETileElement, [])
+  }),
+  fields: () => ({
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFETileElement, svg$.FETileElement);
+dart.defineExtensionNames([
+  'baseFrequencyX',
+  'baseFrequencyY',
+  'numOctaves',
+  'seed',
+  'stitchTiles',
+  'type',
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FETurbulenceElement = class FETurbulenceElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FETurbulenceElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTurbulence"));
+  }
+  created() {
+    this[dartx.baseFrequencyX] = null;
+    this[dartx.baseFrequencyY] = null;
+    this[dartx.numOctaves] = null;
+    this[dartx.seed] = null;
+    this[dartx.stitchTiles] = null;
+    this[dartx.type] = null;
+    this[dartx.height] = null;
+    this[dartx.result] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('feTurbulence')) && svg$.FETurbulenceElement.is(svg$.SvgElement.tag('feTurbulence'));
+  }
+  get [dartx.baseFrequencyX]() {
+    return this.baseFrequencyX;
+  }
+  get [dartx.baseFrequencyY]() {
+    return this.baseFrequencyY;
+  }
+  get [dartx.numOctaves]() {
+    return this.numOctaves;
+  }
+  get [dartx.seed]() {
+    return this.seed;
+  }
+  get [dartx.stitchTiles]() {
+    return this.stitchTiles;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.result]() {
+    return this.result;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.FETurbulenceElement, 'created');
+svg$.FETurbulenceElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FETurbulenceElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FETurbulenceElement, []),
+    new: dart.definiteFunctionType(svg$.FETurbulenceElement, []),
+    created: dart.definiteFunctionType(svg$.FETurbulenceElement, [])
+  }),
+  fields: () => ({
+    [dartx.baseFrequencyX]: svg$.AnimatedNumber,
+    [dartx.baseFrequencyY]: svg$.AnimatedNumber,
+    [dartx.numOctaves]: svg$.AnimatedInteger,
+    [dartx.seed]: svg$.AnimatedNumber,
+    [dartx.stitchTiles]: svg$.AnimatedEnumeration,
+    [dartx.type]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sfields: () => ({
+    SVG_STITCHTYPE_NOSTITCH: core.int,
+    SVG_STITCHTYPE_STITCH: core.int,
+    SVG_STITCHTYPE_UNKNOWN: core.int,
+    SVG_TURBULENCE_TYPE_FRACTALNOISE: core.int,
+    SVG_TURBULENCE_TYPE_TURBULENCE: core.int,
+    SVG_TURBULENCE_TYPE_UNKNOWN: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+svg$.FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH = 2;
+svg$.FETurbulenceElement.SVG_STITCHTYPE_STITCH = 1;
+svg$.FETurbulenceElement.SVG_STITCHTYPE_UNKNOWN = 0;
+svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
+svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE = 2;
+svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFETurbulenceElement, svg$.FETurbulenceElement);
+dart.defineExtensionNames([
+  'filterUnits',
+  'height',
+  'primitiveUnits',
+  'width',
+  'x',
+  'y',
+  'href'
+]);
+svg$.FilterElement = class FilterElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.FilterElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("filter"));
+  }
+  created() {
+    this[dartx.filterUnits] = null;
+    this[dartx.height] = null;
+    this[dartx.primitiveUnits] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('filter')) && svg$.FilterElement.is(svg$.SvgElement.tag('filter'));
+  }
+  get [dartx.filterUnits]() {
+    return this.filterUnits;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.primitiveUnits]() {
+    return this.primitiveUnits;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.FilterElement, 'created');
+svg$.FilterElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.FilterElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.FilterElement, []),
+    new: dart.definiteFunctionType(svg$.FilterElement, []),
+    created: dart.definiteFunctionType(svg$.FilterElement, [])
+  }),
+  fields: () => ({
+    [dartx.filterUnits]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.primitiveUnits]: svg$.AnimatedEnumeration,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGFilterElement, svg$.FilterElement);
+dart.defineExtensionNames([
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+svg$.FilterPrimitiveStandardAttributes = class FilterPrimitiveStandardAttributes extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get height() {
+    return this[height$];
+  }
+  set height(value) {
+    super.height = value;
+  }
+  get result() {
+    return this[result];
+  }
+  set result(value) {
+    super.result = value;
+  }
+  get width() {
+    return this[width$];
+  }
+  set width(value) {
+    super.width = value;
+  }
+  get x() {
+    return this[x];
+  }
+  set x(value) {
+    super.x = value;
+  }
+  get y() {
+    return this[y];
+  }
+  set y(value) {
+    super.y = value;
+  }
+};
+const height$ = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'height'.toString());
+const result = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'result'.toString());
+const width$ = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'width'.toString());
+const x = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'x'.toString());
+const y = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'y'.toString());
+dart.setSignature(svg$.FilterPrimitiveStandardAttributes, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.FilterPrimitiveStandardAttributes, [])}),
+  fields: () => ({
+    height: svg$.AnimatedLength,
+    result: svg$.AnimatedString,
+    width: svg$.AnimatedLength,
+    x: svg$.AnimatedLength,
+    y: svg$.AnimatedLength
+  })
+});
+dart.defineExtensionMembers(svg$.FilterPrimitiveStandardAttributes, [
+  'height',
+  'result',
+  'width',
+  'x',
+  'y'
+]);
+dart.defineExtensionNames([
+  'preserveAspectRatio',
+  'viewBox'
+]);
+svg$.FitToViewBox = class FitToViewBox extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get preserveAspectRatio() {
+    return this[preserveAspectRatio];
+  }
+  set preserveAspectRatio(value) {
+    super.preserveAspectRatio = value;
+  }
+  get viewBox() {
+    return this[viewBox];
+  }
+  set viewBox(value) {
+    super.viewBox = value;
+  }
+};
+const preserveAspectRatio = Symbol(svg$.FitToViewBox.name + "." + 'preserveAspectRatio'.toString());
+const viewBox = Symbol(svg$.FitToViewBox.name + "." + 'viewBox'.toString());
+dart.setSignature(svg$.FitToViewBox, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.FitToViewBox, [])}),
+  fields: () => ({
+    preserveAspectRatio: svg$.AnimatedPreserveAspectRatio,
+    viewBox: svg$.AnimatedRect
+  })
+});
+dart.defineExtensionMembers(svg$.FitToViewBox, ['preserveAspectRatio', 'viewBox']);
+dart.defineExtensionNames([
+  'height',
+  'width',
+  'x',
+  'y'
+]);
+svg$.ForeignObjectElement = class ForeignObjectElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.ForeignObjectElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("foreignObject"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('foreignObject')) && svg$.ForeignObjectElement.is(svg$.SvgElement.tag('foreignObject'));
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.ForeignObjectElement, 'created');
+dart.setSignature(svg$.ForeignObjectElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.ForeignObjectElement, []),
+    new: dart.definiteFunctionType(svg$.ForeignObjectElement, []),
+    created: dart.definiteFunctionType(svg$.ForeignObjectElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGForeignObjectElement, svg$.ForeignObjectElement);
+svg$.GElement = class GElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.GElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("g"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.GElement, 'created');
+dart.setSignature(svg$.GElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.GElement, []),
+    new: dart.definiteFunctionType(svg$.GElement, []),
+    created: dart.definiteFunctionType(svg$.GElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGGElement, svg$.GElement);
+dart.defineExtensionNames([
+  'height',
+  'preserveAspectRatio',
+  'width',
+  'x',
+  'y',
+  'href'
+]);
+svg$.ImageElement = class ImageElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.ImageElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("image"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.ImageElement, 'created');
+svg$.ImageElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.ImageElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.ImageElement, []),
+    new: dart.definiteFunctionType(svg$.ImageElement, []),
+    created: dart.definiteFunctionType(svg$.ImageElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
+  })
+});
+dart.registerExtension(dart.global.SVGImageElement, svg$.ImageElement);
+dart.defineExtensionNames([
+  'convertToSpecifiedUnits',
+  'newValueSpecifiedUnits',
+  'unitType',
+  'value',
+  'valueAsString',
+  'valueInSpecifiedUnits'
+]);
+svg$.Length = class Length extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.unitType]() {
+    return this.unitType;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  get [dartx.valueAsString]() {
+    return this.valueAsString;
+  }
+  set [dartx.valueAsString](value) {
+    this.valueAsString = value;
+  }
+  get [dartx.valueInSpecifiedUnits]() {
+    return this.valueInSpecifiedUnits;
+  }
+  set [dartx.valueInSpecifiedUnits](value) {
+    this.valueInSpecifiedUnits = value;
+  }
+  [dartx.convertToSpecifiedUnits](...args) {
+    return this.convertToSpecifiedUnits.apply(this, args);
+  }
+  [dartx.newValueSpecifiedUnits](...args) {
+    return this.newValueSpecifiedUnits.apply(this, args);
+  }
+};
+dart.setSignature(svg$.Length, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Length, [])}),
+  fields: () => ({
+    [dartx.unitType]: core.int,
+    [dartx.value]: core.num,
+    [dartx.valueAsString]: core.String,
+    [dartx.valueInSpecifiedUnits]: core.num
+  }),
+  methods: () => ({
+    [dartx.convertToSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.newValueSpecifiedUnits]: dart.definiteFunctionType(dart.void, [core.int, core.num])
+  }),
+  sfields: () => ({
+    SVG_LENGTHTYPE_CM: core.int,
+    SVG_LENGTHTYPE_EMS: core.int,
+    SVG_LENGTHTYPE_EXS: core.int,
+    SVG_LENGTHTYPE_IN: core.int,
+    SVG_LENGTHTYPE_MM: core.int,
+    SVG_LENGTHTYPE_NUMBER: core.int,
+    SVG_LENGTHTYPE_PC: core.int,
+    SVG_LENGTHTYPE_PERCENTAGE: core.int,
+    SVG_LENGTHTYPE_PT: core.int,
+    SVG_LENGTHTYPE_PX: core.int,
+    SVG_LENGTHTYPE_UNKNOWN: core.int
+  })
+});
+svg$.Length.SVG_LENGTHTYPE_CM = 6;
+svg$.Length.SVG_LENGTHTYPE_EMS = 3;
+svg$.Length.SVG_LENGTHTYPE_EXS = 4;
+svg$.Length.SVG_LENGTHTYPE_IN = 8;
+svg$.Length.SVG_LENGTHTYPE_MM = 7;
+svg$.Length.SVG_LENGTHTYPE_NUMBER = 1;
+svg$.Length.SVG_LENGTHTYPE_PC = 10;
+svg$.Length.SVG_LENGTHTYPE_PERCENTAGE = 2;
+svg$.Length.SVG_LENGTHTYPE_PT = 9;
+svg$.Length.SVG_LENGTHTYPE_PX = 5;
+svg$.Length.SVG_LENGTHTYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGLength, svg$.Length);
+const __setter__$ = Symbol('__setter__');
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'appendItem',
+  'clear',
+  'getItem',
+  'initialize',
+  'insertItemBefore',
+  'removeItem',
+  'replaceItem',
+  'numberOfItems'
+]);
+svg$.LengthList = class LengthList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Length), html$.ImmutableListMixin$(svg$.Length)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfItems]() {
+    return this.numberOfItems;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.getItem](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__setter__$](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.appendItem](...args) {
+    return this.appendItem.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [dartx.initialize](...args) {
+    return this.initialize.apply(this, args);
+  }
+  [dartx.insertItemBefore](...args) {
+    return this.insertItemBefore.apply(this, args);
+  }
+  [dartx.removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [dartx.replaceItem](...args) {
+    return this.replaceItem.apply(this, args);
+  }
+};
+svg$.LengthList[dart.implements] = () => [ListOfLength()];
+dart.setSignature(svg$.LengthList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.LengthList, [])}),
+  fields: () => ({[dartx.numberOfItems]: core.int}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(svg$.Length, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Length]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Length]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Length, [svg$.Length]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Length, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Length, [svg$.Length]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Length, [svg$.Length, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Length, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Length, [svg$.Length, core.int])
+  })
+});
+dart.registerExtension(dart.global.SVGLengthList, svg$.LengthList);
+dart.defineExtensionNames([
+  'x1',
+  'x2',
+  'y1',
+  'y2'
+]);
+svg$.LineElement = class LineElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.LineElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("line"));
+  }
+  created() {
+    this[dartx.x1] = null;
+    this[dartx.x2] = null;
+    this[dartx.y1] = null;
+    this[dartx.y2] = null;
+    super.created();
+  }
+  get [dartx.x1]() {
+    return this.x1;
+  }
+  get [dartx.x2]() {
+    return this.x2;
+  }
+  get [dartx.y1]() {
+    return this.y1;
+  }
+  get [dartx.y2]() {
+    return this.y2;
+  }
+};
+dart.defineNamedConstructor(svg$.LineElement, 'created');
+dart.setSignature(svg$.LineElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.LineElement, []),
+    new: dart.definiteFunctionType(svg$.LineElement, []),
+    created: dart.definiteFunctionType(svg$.LineElement, [])
+  }),
+  fields: () => ({
+    [dartx.x1]: svg$.AnimatedLength,
+    [dartx.x2]: svg$.AnimatedLength,
+    [dartx.y1]: svg$.AnimatedLength,
+    [dartx.y2]: svg$.AnimatedLength
+  })
+});
+dart.registerExtension(dart.global.SVGLineElement, svg$.LineElement);
+dart.defineExtensionNames([
+  'gradientTransform',
+  'gradientUnits',
+  'spreadMethod',
+  'href'
+]);
+svg$._GradientElement = class _GradientElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.gradientTransform] = null;
+    this[dartx.gradientUnits] = null;
+    this[dartx.spreadMethod] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.gradientTransform]() {
+    return this.gradientTransform;
+  }
+  get [dartx.gradientUnits]() {
+    return this.gradientUnits;
+  }
+  get [dartx.spreadMethod]() {
+    return this.spreadMethod;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$._GradientElement, 'created');
+svg$._GradientElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$._GradientElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$._GradientElement, []),
+    created: dart.definiteFunctionType(svg$._GradientElement, [])
+  }),
+  fields: () => ({
+    [dartx.gradientTransform]: svg$.AnimatedTransformList,
+    [dartx.gradientUnits]: svg$.AnimatedEnumeration,
+    [dartx.spreadMethod]: svg$.AnimatedEnumeration,
+    [dartx.href]: svg$.AnimatedString
+  }),
+  sfields: () => ({
+    SVG_SPREADMETHOD_PAD: core.int,
+    SVG_SPREADMETHOD_REFLECT: core.int,
+    SVG_SPREADMETHOD_REPEAT: core.int,
+    SVG_SPREADMETHOD_UNKNOWN: core.int
+  })
+});
+svg$._GradientElement.SVG_SPREADMETHOD_PAD = 1;
+svg$._GradientElement.SVG_SPREADMETHOD_REFLECT = 2;
+svg$._GradientElement.SVG_SPREADMETHOD_REPEAT = 3;
+svg$._GradientElement.SVG_SPREADMETHOD_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGGradientElement, svg$._GradientElement);
+dart.defineExtensionNames([
+  'x1',
+  'x2',
+  'y1',
+  'y2'
+]);
+svg$.LinearGradientElement = class LinearGradientElement extends svg$._GradientElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.LinearGradientElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("linearGradient"));
+  }
+  created() {
+    this[dartx.x1] = null;
+    this[dartx.x2] = null;
+    this[dartx.y1] = null;
+    this[dartx.y2] = null;
+    super.created();
+  }
+  get [dartx.x1]() {
+    return this.x1;
+  }
+  get [dartx.x2]() {
+    return this.x2;
+  }
+  get [dartx.y1]() {
+    return this.y1;
+  }
+  get [dartx.y2]() {
+    return this.y2;
+  }
+};
+dart.defineNamedConstructor(svg$.LinearGradientElement, 'created');
+dart.setSignature(svg$.LinearGradientElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.LinearGradientElement, []),
+    new: dart.definiteFunctionType(svg$.LinearGradientElement, []),
+    created: dart.definiteFunctionType(svg$.LinearGradientElement, [])
+  }),
+  fields: () => ({
+    [dartx.x1]: svg$.AnimatedLength,
+    [dartx.x2]: svg$.AnimatedLength,
+    [dartx.y1]: svg$.AnimatedLength,
+    [dartx.y2]: svg$.AnimatedLength
+  })
+});
+dart.registerExtension(dart.global.SVGLinearGradientElement, svg$.LinearGradientElement);
+dart.defineExtensionNames([
+  'setOrientToAngle',
+  'setOrientToAuto',
+  'markerHeight',
+  'markerUnits',
+  'markerWidth',
+  'orientAngle',
+  'orientType',
+  'refX',
+  'refY',
+  'preserveAspectRatio',
+  'viewBox'
+]);
+svg$.MarkerElement = class MarkerElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.MarkerElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("marker"));
+  }
+  created() {
+    this[dartx.markerHeight] = null;
+    this[dartx.markerUnits] = null;
+    this[dartx.markerWidth] = null;
+    this[dartx.orientAngle] = null;
+    this[dartx.orientType] = null;
+    this[dartx.refX] = null;
+    this[dartx.refY] = null;
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.viewBox] = null;
+    super.created();
+  }
+  get [dartx.markerHeight]() {
+    return this.markerHeight;
+  }
+  get [dartx.markerUnits]() {
+    return this.markerUnits;
+  }
+  get [dartx.markerWidth]() {
+    return this.markerWidth;
+  }
+  get [dartx.orientAngle]() {
+    return this.orientAngle;
+  }
+  get [dartx.orientType]() {
+    return this.orientType;
+  }
+  get [dartx.refX]() {
+    return this.refX;
+  }
+  get [dartx.refY]() {
+    return this.refY;
+  }
+  [dartx.setOrientToAngle](...args) {
+    return this.setOrientToAngle.apply(this, args);
+  }
+  [dartx.setOrientToAuto](...args) {
+    return this.setOrientToAuto.apply(this, args);
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.viewBox]() {
+    return this.viewBox;
+  }
+};
+dart.defineNamedConstructor(svg$.MarkerElement, 'created');
+svg$.MarkerElement[dart.implements] = () => [svg$.FitToViewBox];
+dart.setSignature(svg$.MarkerElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.MarkerElement, []),
+    new: dart.definiteFunctionType(svg$.MarkerElement, []),
+    created: dart.definiteFunctionType(svg$.MarkerElement, [])
+  }),
+  fields: () => ({
+    [dartx.markerHeight]: svg$.AnimatedLength,
+    [dartx.markerUnits]: svg$.AnimatedEnumeration,
+    [dartx.markerWidth]: svg$.AnimatedLength,
+    [dartx.orientAngle]: svg$.AnimatedAngle,
+    [dartx.orientType]: svg$.AnimatedEnumeration,
+    [dartx.refX]: svg$.AnimatedLength,
+    [dartx.refY]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect
+  }),
+  methods: () => ({
+    [dartx.setOrientToAngle]: dart.definiteFunctionType(dart.void, [svg$.Angle]),
+    [dartx.setOrientToAuto]: dart.definiteFunctionType(dart.void, [])
+  }),
+  sfields: () => ({
+    SVG_MARKERUNITS_STROKEWIDTH: core.int,
+    SVG_MARKERUNITS_UNKNOWN: core.int,
+    SVG_MARKERUNITS_USERSPACEONUSE: core.int,
+    SVG_MARKER_ORIENT_ANGLE: core.int,
+    SVG_MARKER_ORIENT_AUTO: core.int,
+    SVG_MARKER_ORIENT_UNKNOWN: core.int
+  })
+});
+svg$.MarkerElement.SVG_MARKERUNITS_STROKEWIDTH = 2;
+svg$.MarkerElement.SVG_MARKERUNITS_UNKNOWN = 0;
+svg$.MarkerElement.SVG_MARKERUNITS_USERSPACEONUSE = 1;
+svg$.MarkerElement.SVG_MARKER_ORIENT_ANGLE = 2;
+svg$.MarkerElement.SVG_MARKER_ORIENT_AUTO = 1;
+svg$.MarkerElement.SVG_MARKER_ORIENT_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGMarkerElement, svg$.MarkerElement);
+dart.defineExtensionNames([
+  'hasExtension',
+  'height',
+  'maskContentUnits',
+  'maskUnits',
+  'width',
+  'x',
+  'y',
+  'requiredExtensions',
+  'requiredFeatures',
+  'systemLanguage'
+]);
+svg$.MaskElement = class MaskElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.MaskElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("mask"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.maskContentUnits] = null;
+    this[dartx.maskUnits] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.requiredExtensions] = null;
+    this[dartx.requiredFeatures] = null;
+    this[dartx.systemLanguage] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.maskContentUnits]() {
+    return this.maskContentUnits;
+  }
+  get [dartx.maskUnits]() {
+    return this.maskUnits;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.requiredExtensions]() {
+    return this.requiredExtensions;
+  }
+  get [dartx.requiredFeatures]() {
+    return this.requiredFeatures;
+  }
+  get [dartx.systemLanguage]() {
+    return this.systemLanguage;
+  }
+  [dartx.hasExtension](...args) {
+    return this.hasExtension.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(svg$.MaskElement, 'created');
+svg$.MaskElement[dart.implements] = () => [svg$.Tests];
+dart.setSignature(svg$.MaskElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.MaskElement, []),
+    new: dart.definiteFunctionType(svg$.MaskElement, []),
+    created: dart.definiteFunctionType(svg$.MaskElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.maskContentUnits]: svg$.AnimatedEnumeration,
+    [dartx.maskUnits]: svg$.AnimatedEnumeration,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList
+  }),
+  methods: () => ({[dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])})
+});
+dart.registerExtension(dart.global.SVGMaskElement, svg$.MaskElement);
+dart.defineExtensionNames([
+  'flipX',
+  'flipY',
+  'inverse',
+  'multiply',
+  'rotate',
+  'rotateFromVector',
+  'scale',
+  'scaleNonUniform',
+  'skewX',
+  'skewY',
+  'translate',
+  'a',
+  'b',
+  'c',
+  'd',
+  'e',
+  'f'
+]);
+svg$.Matrix = class Matrix extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.a]() {
+    return this.a;
+  }
+  set [dartx.a](value) {
+    this.a = value;
+  }
+  get [dartx.b]() {
+    return this.b;
+  }
+  set [dartx.b](value) {
+    this.b = value;
+  }
+  get [dartx.c]() {
+    return this.c;
+  }
+  set [dartx.c](value) {
+    this.c = value;
+  }
+  get [dartx.d]() {
+    return this.d;
+  }
+  set [dartx.d](value) {
+    this.d = value;
+  }
+  get [dartx.e]() {
+    return this.e;
+  }
+  set [dartx.e](value) {
+    this.e = value;
+  }
+  get [dartx.f]() {
+    return this.f;
+  }
+  set [dartx.f](value) {
+    this.f = value;
+  }
+  [dartx.flipX](...args) {
+    return this.flipX.apply(this, args);
+  }
+  [dartx.flipY](...args) {
+    return this.flipY.apply(this, args);
+  }
+  [dartx.inverse](...args) {
+    return this.inverse.apply(this, args);
+  }
+  [dartx.multiply](...args) {
+    return this.multiply.apply(this, args);
+  }
+  [dartx.rotate](...args) {
+    return this.rotate.apply(this, args);
+  }
+  [dartx.rotateFromVector](...args) {
+    return this.rotateFromVector.apply(this, args);
+  }
+  [dartx.scale](...args) {
+    return this.scale.apply(this, args);
+  }
+  [dartx.scaleNonUniform](...args) {
+    return this.scaleNonUniform.apply(this, args);
+  }
+  [dartx.skewX](...args) {
+    return this.skewX.apply(this, args);
+  }
+  [dartx.skewY](...args) {
+    return this.skewY.apply(this, args);
+  }
+  [dartx.translate](...args) {
+    return this.translate.apply(this, args);
+  }
+};
+dart.setSignature(svg$.Matrix, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Matrix, [])}),
+  fields: () => ({
+    [dartx.a]: core.num,
+    [dartx.b]: core.num,
+    [dartx.c]: core.num,
+    [dartx.d]: core.num,
+    [dartx.e]: core.num,
+    [dartx.f]: core.num
+  }),
+  methods: () => ({
+    [dartx.flipX]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.flipY]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.inverse]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.multiply]: dart.definiteFunctionType(svg$.Matrix, [svg$.Matrix]),
+    [dartx.rotate]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.rotateFromVector]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num]),
+    [dartx.scale]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.scaleNonUniform]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num]),
+    [dartx.skewX]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.skewY]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.translate]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num])
+  })
+});
+dart.registerExtension(dart.global.SVGMatrix, svg$.Matrix);
+svg$.MetadataElement = class MetadataElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.MetadataElement, 'created');
+dart.setSignature(svg$.MetadataElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.MetadataElement, []),
+    created: dart.definiteFunctionType(svg$.MetadataElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGMetadataElement, svg$.MetadataElement);
+dart.defineExtensionNames([
+  'value'
+]);
+svg$.Number = class Number extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+};
+dart.setSignature(svg$.Number, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Number, [])}),
+  fields: () => ({[dartx.value]: core.num})
+});
+dart.registerExtension(dart.global.SVGNumber, svg$.Number);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'appendItem',
+  'clear',
+  'getItem',
+  'initialize',
+  'insertItemBefore',
+  'removeItem',
+  'replaceItem',
+  'numberOfItems'
+]);
+svg$.NumberList = class NumberList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Number), html$.ImmutableListMixin$(svg$.Number)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfItems]() {
+    return this.numberOfItems;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.getItem](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__setter__$](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.appendItem](...args) {
+    return this.appendItem.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [dartx.initialize](...args) {
+    return this.initialize.apply(this, args);
+  }
+  [dartx.insertItemBefore](...args) {
+    return this.insertItemBefore.apply(this, args);
+  }
+  [dartx.removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [dartx.replaceItem](...args) {
+    return this.replaceItem.apply(this, args);
+  }
+};
+svg$.NumberList[dart.implements] = () => [ListOfNumber()];
+dart.setSignature(svg$.NumberList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.NumberList, [])}),
+  fields: () => ({[dartx.numberOfItems]: core.int}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(svg$.Number, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Number]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Number]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Number, [svg$.Number]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Number, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Number, [svg$.Number]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Number, [svg$.Number, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Number, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Number, [svg$.Number, core.int])
+  })
+});
+dart.registerExtension(dart.global.SVGNumberList, svg$.NumberList);
+dart.defineExtensionNames([
+  'createSvgPathSegArcAbs',
+  'createSvgPathSegArcRel',
+  'createSvgPathSegClosePath',
+  'createSvgPathSegCurvetoCubicAbs',
+  'createSvgPathSegCurvetoCubicRel',
+  'createSvgPathSegCurvetoCubicSmoothAbs',
+  'createSvgPathSegCurvetoCubicSmoothRel',
+  'createSvgPathSegCurvetoQuadraticAbs',
+  'createSvgPathSegCurvetoQuadraticRel',
+  'createSvgPathSegCurvetoQuadraticSmoothAbs',
+  'createSvgPathSegCurvetoQuadraticSmoothRel',
+  'createSvgPathSegLinetoAbs',
+  'createSvgPathSegLinetoHorizontalAbs',
+  'createSvgPathSegLinetoHorizontalRel',
+  'createSvgPathSegLinetoRel',
+  'createSvgPathSegLinetoVerticalAbs',
+  'createSvgPathSegLinetoVerticalRel',
+  'createSvgPathSegMovetoAbs',
+  'createSvgPathSegMovetoRel',
+  'getPathSegAtLength',
+  'getPointAtLength',
+  'getTotalLength',
+  'animatedNormalizedPathSegList',
+  'animatedPathSegList',
+  'normalizedPathSegList',
+  'pathLength',
+  'pathSegList'
+]);
+svg$.PathElement = class PathElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.PathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("path"));
+  }
+  created() {
+    this[dartx.animatedNormalizedPathSegList] = null;
+    this[dartx.animatedPathSegList] = null;
+    this[dartx.normalizedPathSegList] = null;
+    this[dartx.pathLength] = null;
+    this[dartx.pathSegList] = null;
+    super.created();
+  }
+  get [dartx.animatedNormalizedPathSegList]() {
+    return this.animatedNormalizedPathSegList;
+  }
+  get [dartx.animatedPathSegList]() {
+    return this.animatedPathSegList;
+  }
+  get [dartx.normalizedPathSegList]() {
+    return this.normalizedPathSegList;
+  }
+  get [dartx.pathLength]() {
+    return this.pathLength;
+  }
+  get [dartx.pathSegList]() {
+    return this.pathSegList;
+  }
+  [dartx.createSvgPathSegArcAbs](...args) {
+    return this.createSVGPathSegArcAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegArcRel](...args) {
+    return this.createSVGPathSegArcRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegClosePath](...args) {
+    return this.createSVGPathSegClosePath.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoCubicAbs](...args) {
+    return this.createSVGPathSegCurvetoCubicAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoCubicRel](...args) {
+    return this.createSVGPathSegCurvetoCubicRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoCubicSmoothAbs](...args) {
+    return this.createSVGPathSegCurvetoCubicSmoothAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoCubicSmoothRel](...args) {
+    return this.createSVGPathSegCurvetoCubicSmoothRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoQuadraticAbs](...args) {
+    return this.createSVGPathSegCurvetoQuadraticAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoQuadraticRel](...args) {
+    return this.createSVGPathSegCurvetoQuadraticRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoQuadraticSmoothAbs](...args) {
+    return this.createSVGPathSegCurvetoQuadraticSmoothAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegCurvetoQuadraticSmoothRel](...args) {
+    return this.createSVGPathSegCurvetoQuadraticSmoothRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegLinetoAbs](...args) {
+    return this.createSVGPathSegLinetoAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegLinetoHorizontalAbs](...args) {
+    return this.createSVGPathSegLinetoHorizontalAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegLinetoHorizontalRel](...args) {
+    return this.createSVGPathSegLinetoHorizontalRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegLinetoRel](...args) {
+    return this.createSVGPathSegLinetoRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegLinetoVerticalAbs](...args) {
+    return this.createSVGPathSegLinetoVerticalAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegLinetoVerticalRel](...args) {
+    return this.createSVGPathSegLinetoVerticalRel.apply(this, args);
+  }
+  [dartx.createSvgPathSegMovetoAbs](...args) {
+    return this.createSVGPathSegMovetoAbs.apply(this, args);
+  }
+  [dartx.createSvgPathSegMovetoRel](...args) {
+    return this.createSVGPathSegMovetoRel.apply(this, args);
+  }
+  [dartx.getPathSegAtLength](...args) {
+    return this.getPathSegAtLength.apply(this, args);
+  }
+  [dartx.getPointAtLength](...args) {
+    return this.getPointAtLength.apply(this, args);
+  }
+  [dartx.getTotalLength](...args) {
+    return this.getTotalLength.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(svg$.PathElement, 'created');
+dart.setSignature(svg$.PathElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.PathElement, []),
+    new: dart.definiteFunctionType(svg$.PathElement, []),
+    created: dart.definiteFunctionType(svg$.PathElement, [])
+  }),
+  fields: () => ({
+    [dartx.animatedNormalizedPathSegList]: svg$.PathSegList,
+    [dartx.animatedPathSegList]: svg$.PathSegList,
+    [dartx.normalizedPathSegList]: svg$.PathSegList,
+    [dartx.pathLength]: svg$.AnimatedNumber,
+    [dartx.pathSegList]: svg$.PathSegList
+  }),
+  methods: () => ({
+    [dartx.createSvgPathSegArcAbs]: dart.definiteFunctionType(svg$.PathSegArcAbs, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
+    [dartx.createSvgPathSegArcRel]: dart.definiteFunctionType(svg$.PathSegArcRel, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
+    [dartx.createSvgPathSegClosePath]: dart.definiteFunctionType(svg$.PathSegClosePath, []),
+    [dartx.createSvgPathSegCurvetoCubicAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicAbs, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoCubicRel]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicRel, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoCubicSmoothAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothAbs, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoCubicSmoothRel]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothRel, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticAbs, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticRel]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticRel, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticSmoothAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothAbs, [core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticSmoothRel]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothRel, [core.num, core.num]),
+    [dartx.createSvgPathSegLinetoAbs]: dart.definiteFunctionType(svg$.PathSegLinetoAbs, [core.num, core.num]),
+    [dartx.createSvgPathSegLinetoHorizontalAbs]: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalAbs, [core.num]),
+    [dartx.createSvgPathSegLinetoHorizontalRel]: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalRel, [core.num]),
+    [dartx.createSvgPathSegLinetoRel]: dart.definiteFunctionType(svg$.PathSegLinetoRel, [core.num, core.num]),
+    [dartx.createSvgPathSegLinetoVerticalAbs]: dart.definiteFunctionType(svg$.PathSegLinetoVerticalAbs, [core.num]),
+    [dartx.createSvgPathSegLinetoVerticalRel]: dart.definiteFunctionType(svg$.PathSegLinetoVerticalRel, [core.num]),
+    [dartx.createSvgPathSegMovetoAbs]: dart.definiteFunctionType(svg$.PathSegMovetoAbs, [core.num, core.num]),
+    [dartx.createSvgPathSegMovetoRel]: dart.definiteFunctionType(svg$.PathSegMovetoRel, [core.num, core.num]),
+    [dartx.getPathSegAtLength]: dart.definiteFunctionType(core.int, [core.num]),
+    [dartx.getPointAtLength]: dart.definiteFunctionType(svg$.Point, [core.num]),
+    [dartx.getTotalLength]: dart.definiteFunctionType(core.double, [])
+  })
+});
+dart.registerExtension(dart.global.SVGPathElement, svg$.PathElement);
+dart.defineExtensionNames([
+  'pathSegType',
+  'pathSegTypeAsLetter'
+]);
+svg$.PathSeg = class PathSeg extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.pathSegType]() {
+    return this.pathSegType;
+  }
+  get [dartx.pathSegTypeAsLetter]() {
+    return this.pathSegTypeAsLetter;
+  }
+};
+dart.setSignature(svg$.PathSeg, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSeg, [])}),
+  fields: () => ({
+    [dartx.pathSegType]: core.int,
+    [dartx.pathSegTypeAsLetter]: core.String
+  }),
+  sfields: () => ({
+    PATHSEG_ARC_ABS: core.int,
+    PATHSEG_ARC_REL: core.int,
+    PATHSEG_CLOSEPATH: core.int,
+    PATHSEG_CURVETO_CUBIC_ABS: core.int,
+    PATHSEG_CURVETO_CUBIC_REL: core.int,
+    PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: core.int,
+    PATHSEG_CURVETO_CUBIC_SMOOTH_REL: core.int,
+    PATHSEG_CURVETO_QUADRATIC_ABS: core.int,
+    PATHSEG_CURVETO_QUADRATIC_REL: core.int,
+    PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: core.int,
+    PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: core.int,
+    PATHSEG_LINETO_ABS: core.int,
+    PATHSEG_LINETO_HORIZONTAL_ABS: core.int,
+    PATHSEG_LINETO_HORIZONTAL_REL: core.int,
+    PATHSEG_LINETO_REL: core.int,
+    PATHSEG_LINETO_VERTICAL_ABS: core.int,
+    PATHSEG_LINETO_VERTICAL_REL: core.int,
+    PATHSEG_MOVETO_ABS: core.int,
+    PATHSEG_MOVETO_REL: core.int,
+    PATHSEG_UNKNOWN: core.int
+  })
+});
+svg$.PathSeg.PATHSEG_ARC_ABS = 10;
+svg$.PathSeg.PATHSEG_ARC_REL = 11;
+svg$.PathSeg.PATHSEG_CLOSEPATH = 1;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
+svg$.PathSeg.PATHSEG_LINETO_ABS = 4;
+svg$.PathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;
+svg$.PathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;
+svg$.PathSeg.PATHSEG_LINETO_REL = 5;
+svg$.PathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;
+svg$.PathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;
+svg$.PathSeg.PATHSEG_MOVETO_ABS = 2;
+svg$.PathSeg.PATHSEG_MOVETO_REL = 3;
+svg$.PathSeg.PATHSEG_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGPathSeg, svg$.PathSeg);
+dart.defineExtensionNames([
+  'angle',
+  'largeArcFlag',
+  'r1',
+  'r2',
+  'sweepFlag',
+  'x',
+  'y'
+]);
+svg$.PathSegArcAbs = class PathSegArcAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.angle]() {
+    return this.angle;
+  }
+  set [dartx.angle](value) {
+    this.angle = value;
+  }
+  get [dartx.largeArcFlag]() {
+    return this.largeArcFlag;
+  }
+  set [dartx.largeArcFlag](value) {
+    this.largeArcFlag = value;
+  }
+  get [dartx.r1]() {
+    return this.r1;
+  }
+  set [dartx.r1](value) {
+    this.r1 = value;
+  }
+  get [dartx.r2]() {
+    return this.r2;
+  }
+  set [dartx.r2](value) {
+    this.r2 = value;
+  }
+  get [dartx.sweepFlag]() {
+    return this.sweepFlag;
+  }
+  set [dartx.sweepFlag](value) {
+    this.sweepFlag = value;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegArcAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegArcAbs, [])}),
+  fields: () => ({
+    [dartx.angle]: core.num,
+    [dartx.largeArcFlag]: core.bool,
+    [dartx.r1]: core.num,
+    [dartx.r2]: core.num,
+    [dartx.sweepFlag]: core.bool,
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegArcAbs, svg$.PathSegArcAbs);
+dart.defineExtensionNames([
+  'angle',
+  'largeArcFlag',
+  'r1',
+  'r2',
+  'sweepFlag',
+  'x',
+  'y'
+]);
+svg$.PathSegArcRel = class PathSegArcRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.angle]() {
+    return this.angle;
+  }
+  set [dartx.angle](value) {
+    this.angle = value;
+  }
+  get [dartx.largeArcFlag]() {
+    return this.largeArcFlag;
+  }
+  set [dartx.largeArcFlag](value) {
+    this.largeArcFlag = value;
+  }
+  get [dartx.r1]() {
+    return this.r1;
+  }
+  set [dartx.r1](value) {
+    this.r1 = value;
+  }
+  get [dartx.r2]() {
+    return this.r2;
+  }
+  set [dartx.r2](value) {
+    this.r2 = value;
+  }
+  get [dartx.sweepFlag]() {
+    return this.sweepFlag;
+  }
+  set [dartx.sweepFlag](value) {
+    this.sweepFlag = value;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegArcRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegArcRel, [])}),
+  fields: () => ({
+    [dartx.angle]: core.num,
+    [dartx.largeArcFlag]: core.bool,
+    [dartx.r1]: core.num,
+    [dartx.r2]: core.num,
+    [dartx.sweepFlag]: core.bool,
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegArcRel, svg$.PathSegArcRel);
+svg$.PathSegClosePath = class PathSegClosePath extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(svg$.PathSegClosePath, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegClosePath, [])})
+});
+dart.registerExtension(dart.global.SVGPathSegClosePath, svg$.PathSegClosePath);
+dart.defineExtensionNames([
+  'x',
+  'x1',
+  'x2',
+  'y',
+  'y1',
+  'y2'
+]);
+svg$.PathSegCurvetoCubicAbs = class PathSegCurvetoCubicAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.x1]() {
+    return this.x1;
+  }
+  set [dartx.x1](value) {
+    this.x1 = value;
+  }
+  get [dartx.x2]() {
+    return this.x2;
+  }
+  set [dartx.x2](value) {
+    this.x2 = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.y1]() {
+    return this.y1;
+  }
+  set [dartx.y1](value) {
+    this.y1 = value;
+  }
+  get [dartx.y2]() {
+    return this.y2;
+  }
+  set [dartx.y2](value) {
+    this.y2 = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoCubicAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicAbs, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.x1]: core.num,
+    [dartx.x2]: core.num,
+    [dartx.y]: core.num,
+    [dartx.y1]: core.num,
+    [dartx.y2]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicAbs, svg$.PathSegCurvetoCubicAbs);
+dart.defineExtensionNames([
+  'x',
+  'x1',
+  'x2',
+  'y',
+  'y1',
+  'y2'
+]);
+svg$.PathSegCurvetoCubicRel = class PathSegCurvetoCubicRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.x1]() {
+    return this.x1;
+  }
+  set [dartx.x1](value) {
+    this.x1 = value;
+  }
+  get [dartx.x2]() {
+    return this.x2;
+  }
+  set [dartx.x2](value) {
+    this.x2 = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.y1]() {
+    return this.y1;
+  }
+  set [dartx.y1](value) {
+    this.y1 = value;
+  }
+  get [dartx.y2]() {
+    return this.y2;
+  }
+  set [dartx.y2](value) {
+    this.y2 = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoCubicRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicRel, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.x1]: core.num,
+    [dartx.x2]: core.num,
+    [dartx.y]: core.num,
+    [dartx.y1]: core.num,
+    [dartx.y2]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicRel, svg$.PathSegCurvetoCubicRel);
+dart.defineExtensionNames([
+  'x',
+  'x2',
+  'y',
+  'y2'
+]);
+svg$.PathSegCurvetoCubicSmoothAbs = class PathSegCurvetoCubicSmoothAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.x2]() {
+    return this.x2;
+  }
+  set [dartx.x2](value) {
+    this.x2 = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.y2]() {
+    return this.y2;
+  }
+  set [dartx.y2](value) {
+    this.y2 = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoCubicSmoothAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothAbs, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.x2]: core.num,
+    [dartx.y]: core.num,
+    [dartx.y2]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothAbs, svg$.PathSegCurvetoCubicSmoothAbs);
+dart.defineExtensionNames([
+  'x',
+  'x2',
+  'y',
+  'y2'
+]);
+svg$.PathSegCurvetoCubicSmoothRel = class PathSegCurvetoCubicSmoothRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.x2]() {
+    return this.x2;
+  }
+  set [dartx.x2](value) {
+    this.x2 = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.y2]() {
+    return this.y2;
+  }
+  set [dartx.y2](value) {
+    this.y2 = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoCubicSmoothRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothRel, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.x2]: core.num,
+    [dartx.y]: core.num,
+    [dartx.y2]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothRel, svg$.PathSegCurvetoCubicSmoothRel);
+dart.defineExtensionNames([
+  'x',
+  'x1',
+  'y',
+  'y1'
+]);
+svg$.PathSegCurvetoQuadraticAbs = class PathSegCurvetoQuadraticAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.x1]() {
+    return this.x1;
+  }
+  set [dartx.x1](value) {
+    this.x1 = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.y1]() {
+    return this.y1;
+  }
+  set [dartx.y1](value) {
+    this.y1 = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoQuadraticAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticAbs, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.x1]: core.num,
+    [dartx.y]: core.num,
+    [dartx.y1]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticAbs, svg$.PathSegCurvetoQuadraticAbs);
+dart.defineExtensionNames([
+  'x',
+  'x1',
+  'y',
+  'y1'
+]);
+svg$.PathSegCurvetoQuadraticRel = class PathSegCurvetoQuadraticRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.x1]() {
+    return this.x1;
+  }
+  set [dartx.x1](value) {
+    this.x1 = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  get [dartx.y1]() {
+    return this.y1;
+  }
+  set [dartx.y1](value) {
+    this.y1 = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoQuadraticRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticRel, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.x1]: core.num,
+    [dartx.y]: core.num,
+    [dartx.y1]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticRel, svg$.PathSegCurvetoQuadraticRel);
+dart.defineExtensionNames([
+  'x',
+  'y'
+]);
+svg$.PathSegCurvetoQuadraticSmoothAbs = class PathSegCurvetoQuadraticSmoothAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoQuadraticSmoothAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothAbs, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothAbs, svg$.PathSegCurvetoQuadraticSmoothAbs);
+dart.defineExtensionNames([
+  'x',
+  'y'
+]);
+svg$.PathSegCurvetoQuadraticSmoothRel = class PathSegCurvetoQuadraticSmoothRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegCurvetoQuadraticSmoothRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothRel, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothRel, svg$.PathSegCurvetoQuadraticSmoothRel);
+dart.defineExtensionNames([
+  'x',
+  'y'
+]);
+svg$.PathSegLinetoAbs = class PathSegLinetoAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegLinetoAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoAbs, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegLinetoAbs, svg$.PathSegLinetoAbs);
+dart.defineExtensionNames([
+  'x'
+]);
+svg$.PathSegLinetoHorizontalAbs = class PathSegLinetoHorizontalAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+};
+dart.setSignature(svg$.PathSegLinetoHorizontalAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalAbs, [])}),
+  fields: () => ({[dartx.x]: core.num})
+});
+dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalAbs, svg$.PathSegLinetoHorizontalAbs);
+dart.defineExtensionNames([
+  'x'
+]);
+svg$.PathSegLinetoHorizontalRel = class PathSegLinetoHorizontalRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+};
+dart.setSignature(svg$.PathSegLinetoHorizontalRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalRel, [])}),
+  fields: () => ({[dartx.x]: core.num})
+});
+dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalRel, svg$.PathSegLinetoHorizontalRel);
+dart.defineExtensionNames([
+  'x',
+  'y'
+]);
+svg$.PathSegLinetoRel = class PathSegLinetoRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegLinetoRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoRel, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegLinetoRel, svg$.PathSegLinetoRel);
+dart.defineExtensionNames([
+  'y'
+]);
+svg$.PathSegLinetoVerticalAbs = class PathSegLinetoVerticalAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegLinetoVerticalAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoVerticalAbs, [])}),
+  fields: () => ({[dartx.y]: core.num})
+});
+dart.registerExtension(dart.global.SVGPathSegLinetoVerticalAbs, svg$.PathSegLinetoVerticalAbs);
+dart.defineExtensionNames([
+  'y'
+]);
+svg$.PathSegLinetoVerticalRel = class PathSegLinetoVerticalRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegLinetoVerticalRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoVerticalRel, [])}),
+  fields: () => ({[dartx.y]: core.num})
+});
+dart.registerExtension(dart.global.SVGPathSegLinetoVerticalRel, svg$.PathSegLinetoVerticalRel);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'appendItem',
+  'clear',
+  'getItem',
+  'initialize',
+  'insertItemBefore',
+  'removeItem',
+  'replaceItem',
+  'numberOfItems'
+]);
+svg$.PathSegList = class PathSegList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.PathSeg), html$.ImmutableListMixin$(svg$.PathSeg)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfItems]() {
+    return this.numberOfItems;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.getItem](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__setter__$](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.appendItem](...args) {
+    return this.appendItem.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [dartx.initialize](...args) {
+    return this.initialize.apply(this, args);
+  }
+  [dartx.insertItemBefore](...args) {
+    return this.insertItemBefore.apply(this, args);
+  }
+  [dartx.removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [dartx.replaceItem](...args) {
+    return this.replaceItem.apply(this, args);
+  }
+};
+svg$.PathSegList[dart.implements] = () => [ListOfPathSeg()];
+dart.setSignature(svg$.PathSegList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegList, [])}),
+  fields: () => ({[dartx.numberOfItems]: core.int}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.PathSeg]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.PathSeg]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg, core.int])
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegList, svg$.PathSegList);
+dart.defineExtensionNames([
+  'x',
+  'y'
+]);
+svg$.PathSegMovetoAbs = class PathSegMovetoAbs extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegMovetoAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegMovetoAbs, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegMovetoAbs, svg$.PathSegMovetoAbs);
+dart.defineExtensionNames([
+  'x',
+  'y'
+]);
+svg$.PathSegMovetoRel = class PathSegMovetoRel extends svg$.PathSeg {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.PathSegMovetoRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegMovetoRel, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGPathSegMovetoRel, svg$.PathSegMovetoRel);
+dart.defineExtensionNames([
+  'hasExtension',
+  'height',
+  'patternContentUnits',
+  'patternTransform',
+  'patternUnits',
+  'width',
+  'x',
+  'y',
+  'preserveAspectRatio',
+  'viewBox',
+  'requiredExtensions',
+  'requiredFeatures',
+  'systemLanguage',
+  'href'
+]);
+svg$.PatternElement = class PatternElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.PatternElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("pattern"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.patternContentUnits] = null;
+    this[dartx.patternTransform] = null;
+    this[dartx.patternUnits] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.viewBox] = null;
+    this[dartx.requiredExtensions] = null;
+    this[dartx.requiredFeatures] = null;
+    this[dartx.systemLanguage] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.patternContentUnits]() {
+    return this.patternContentUnits;
+  }
+  get [dartx.patternTransform]() {
+    return this.patternTransform;
+  }
+  get [dartx.patternUnits]() {
+    return this.patternUnits;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.viewBox]() {
+    return this.viewBox;
+  }
+  get [dartx.requiredExtensions]() {
+    return this.requiredExtensions;
+  }
+  get [dartx.requiredFeatures]() {
+    return this.requiredFeatures;
+  }
+  get [dartx.systemLanguage]() {
+    return this.systemLanguage;
+  }
+  [dartx.hasExtension](...args) {
+    return this.hasExtension.apply(this, args);
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.PatternElement, 'created');
+svg$.PatternElement[dart.implements] = () => [svg$.FitToViewBox, svg$.UriReference, svg$.Tests];
+dart.setSignature(svg$.PatternElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.PatternElement, []),
+    new: dart.definiteFunctionType(svg$.PatternElement, []),
+    created: dart.definiteFunctionType(svg$.PatternElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.patternContentUnits]: svg$.AnimatedEnumeration,
+    [dartx.patternTransform]: svg$.AnimatedTransformList,
+    [dartx.patternUnits]: svg$.AnimatedEnumeration,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList,
+    [dartx.href]: svg$.AnimatedString
+  }),
+  methods: () => ({[dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])})
+});
+dart.registerExtension(dart.global.SVGPatternElement, svg$.PatternElement);
+dart.defineExtensionNames([
+  'matrixTransform',
+  'x',
+  'y'
+]);
+svg$.Point = class Point extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+  [dartx.matrixTransform](...args) {
+    return this.matrixTransform.apply(this, args);
+  }
+};
+dart.setSignature(svg$.Point, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Point, [])}),
+  fields: () => ({
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  }),
+  methods: () => ({[dartx.matrixTransform]: dart.definiteFunctionType(svg$.Point, [svg$.Matrix])})
+});
+dart.registerExtension(dart.global.SVGPoint, svg$.Point);
+dart.defineExtensionNames([
+  'appendItem',
+  'clear',
+  'getItem',
+  'initialize',
+  'insertItemBefore',
+  'removeItem',
+  'replaceItem',
+  'length',
+  'numberOfItems'
+]);
+svg$.PointList = class PointList extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfItems]() {
+    return this.numberOfItems;
+  }
+  [__setter__$](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.appendItem](...args) {
+    return this.appendItem.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [dartx.initialize](...args) {
+    return this.initialize.apply(this, args);
+  }
+  [dartx.insertItemBefore](...args) {
+    return this.insertItemBefore.apply(this, args);
+  }
+  [dartx.removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [dartx.replaceItem](...args) {
+    return this.replaceItem.apply(this, args);
+  }
+};
+dart.setSignature(svg$.PointList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PointList, [])}),
+  fields: () => ({
+    [dartx.length]: core.int,
+    [dartx.numberOfItems]: core.int
+  }),
+  methods: () => ({
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Point]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Point, [svg$.Point]),
+    [dartx.clear]: dart.definiteFunctionType(dart.void, []),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Point, [svg$.Point]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Point, [svg$.Point, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Point, [svg$.Point, core.int])
+  })
+});
+dart.registerExtension(dart.global.SVGPointList, svg$.PointList);
+dart.defineExtensionNames([
+  'animatedPoints',
+  'points'
+]);
+svg$.PolygonElement = class PolygonElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.PolygonElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("polygon"));
+  }
+  created() {
+    this[dartx.animatedPoints] = null;
+    this[dartx.points] = null;
+    super.created();
+  }
+  get [dartx.animatedPoints]() {
+    return this.animatedPoints;
+  }
+  get [dartx.points]() {
+    return this.points;
+  }
+};
+dart.defineNamedConstructor(svg$.PolygonElement, 'created');
+dart.setSignature(svg$.PolygonElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.PolygonElement, []),
+    new: dart.definiteFunctionType(svg$.PolygonElement, []),
+    created: dart.definiteFunctionType(svg$.PolygonElement, [])
+  }),
+  fields: () => ({
+    [dartx.animatedPoints]: svg$.PointList,
+    [dartx.points]: svg$.PointList
+  })
+});
+dart.registerExtension(dart.global.SVGPolygonElement, svg$.PolygonElement);
+dart.defineExtensionNames([
+  'animatedPoints',
+  'points'
+]);
+svg$.PolylineElement = class PolylineElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.PolylineElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("polyline"));
+  }
+  created() {
+    this[dartx.animatedPoints] = null;
+    this[dartx.points] = null;
+    super.created();
+  }
+  get [dartx.animatedPoints]() {
+    return this.animatedPoints;
+  }
+  get [dartx.points]() {
+    return this.points;
+  }
+};
+dart.defineNamedConstructor(svg$.PolylineElement, 'created');
+dart.setSignature(svg$.PolylineElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.PolylineElement, []),
+    new: dart.definiteFunctionType(svg$.PolylineElement, []),
+    created: dart.definiteFunctionType(svg$.PolylineElement, [])
+  }),
+  fields: () => ({
+    [dartx.animatedPoints]: svg$.PointList,
+    [dartx.points]: svg$.PointList
+  })
+});
+dart.registerExtension(dart.global.SVGPolylineElement, svg$.PolylineElement);
+dart.defineExtensionNames([
+  'align',
+  'meetOrSlice'
+]);
+svg$.PreserveAspectRatio = class PreserveAspectRatio extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.align]() {
+    return this.align;
+  }
+  set [dartx.align](value) {
+    this.align = value;
+  }
+  get [dartx.meetOrSlice]() {
+    return this.meetOrSlice;
+  }
+  set [dartx.meetOrSlice](value) {
+    this.meetOrSlice = value;
+  }
+};
+dart.setSignature(svg$.PreserveAspectRatio, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PreserveAspectRatio, [])}),
+  fields: () => ({
+    [dartx.align]: core.int,
+    [dartx.meetOrSlice]: core.int
+  }),
+  sfields: () => ({
+    SVG_MEETORSLICE_MEET: core.int,
+    SVG_MEETORSLICE_SLICE: core.int,
+    SVG_MEETORSLICE_UNKNOWN: core.int,
+    SVG_PRESERVEASPECTRATIO_NONE: core.int,
+    SVG_PRESERVEASPECTRATIO_UNKNOWN: core.int,
+    SVG_PRESERVEASPECTRATIO_XMAXYMAX: core.int,
+    SVG_PRESERVEASPECTRATIO_XMAXYMID: core.int,
+    SVG_PRESERVEASPECTRATIO_XMAXYMIN: core.int,
+    SVG_PRESERVEASPECTRATIO_XMIDYMAX: core.int,
+    SVG_PRESERVEASPECTRATIO_XMIDYMID: core.int,
+    SVG_PRESERVEASPECTRATIO_XMIDYMIN: core.int,
+    SVG_PRESERVEASPECTRATIO_XMINYMAX: core.int,
+    SVG_PRESERVEASPECTRATIO_XMINYMID: core.int,
+    SVG_PRESERVEASPECTRATIO_XMINYMIN: core.int
+  })
+});
+svg$.PreserveAspectRatio.SVG_MEETORSLICE_MEET = 1;
+svg$.PreserveAspectRatio.SVG_MEETORSLICE_SLICE = 2;
+svg$.PreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN = 0;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE = 1;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
+dart.registerExtension(dart.global.SVGPreserveAspectRatio, svg$.PreserveAspectRatio);
+dart.defineExtensionNames([
+  'cx',
+  'cy',
+  'fr',
+  'fx',
+  'fy',
+  'r'
+]);
+svg$.RadialGradientElement = class RadialGradientElement extends svg$._GradientElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.RadialGradientElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("radialGradient"));
+  }
+  created() {
+    this[dartx.cx] = null;
+    this[dartx.cy] = null;
+    this[dartx.fr] = null;
+    this[dartx.fx] = null;
+    this[dartx.fy] = null;
+    this[dartx.r] = null;
+    super.created();
+  }
+  get [dartx.cx]() {
+    return this.cx;
+  }
+  get [dartx.cy]() {
+    return this.cy;
+  }
+  get [dartx.fr]() {
+    return this.fr;
+  }
+  get [dartx.fx]() {
+    return this.fx;
+  }
+  get [dartx.fy]() {
+    return this.fy;
+  }
+  get [dartx.r]() {
+    return this.r;
+  }
+};
+dart.defineNamedConstructor(svg$.RadialGradientElement, 'created');
+dart.setSignature(svg$.RadialGradientElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.RadialGradientElement, []),
+    new: dart.definiteFunctionType(svg$.RadialGradientElement, []),
+    created: dart.definiteFunctionType(svg$.RadialGradientElement, [])
+  }),
+  fields: () => ({
+    [dartx.cx]: svg$.AnimatedLength,
+    [dartx.cy]: svg$.AnimatedLength,
+    [dartx.fr]: svg$.AnimatedLength,
+    [dartx.fx]: svg$.AnimatedLength,
+    [dartx.fy]: svg$.AnimatedLength,
+    [dartx.r]: svg$.AnimatedLength
+  })
+});
+dart.registerExtension(dart.global.SVGRadialGradientElement, svg$.RadialGradientElement);
+dart.defineExtensionNames([
+  'height',
+  'width',
+  'x',
+  'y'
+]);
+svg$.Rect = class Rect extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  set [dartx.height](value) {
+    this.height = value;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  set [dartx.width](value) {
+    this.width = value;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  set [dartx.x](value) {
+    this.x = value;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  set [dartx.y](value) {
+    this.y = value;
+  }
+};
+dart.setSignature(svg$.Rect, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Rect, [])}),
+  fields: () => ({
+    [dartx.height]: core.num,
+    [dartx.width]: core.num,
+    [dartx.x]: core.num,
+    [dartx.y]: core.num
+  })
+});
+dart.registerExtension(dart.global.SVGRect, svg$.Rect);
+dart.defineExtensionNames([
+  'height',
+  'rx',
+  'ry',
+  'width',
+  'x',
+  'y'
+]);
+svg$.RectElement = class RectElement extends svg$.GeometryElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.RectElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("rect"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.rx] = null;
+    this[dartx.ry] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.rx]() {
+    return this.rx;
+  }
+  get [dartx.ry]() {
+    return this.ry;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.RectElement, 'created');
+dart.setSignature(svg$.RectElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.RectElement, []),
+    new: dart.definiteFunctionType(svg$.RectElement, []),
+    created: dart.definiteFunctionType(svg$.RectElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.rx]: svg$.AnimatedLength,
+    [dartx.ry]: svg$.AnimatedLength,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
+  })
+});
+dart.registerExtension(dart.global.SVGRectElement, svg$.RectElement);
+dart.defineExtensionNames([
+  'type',
+  'href'
+]);
+svg$.ScriptElement = class ScriptElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.ScriptElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("script"));
+  }
+  created() {
+    this[dartx.type] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.ScriptElement, 'created');
+svg$.ScriptElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.ScriptElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.ScriptElement, []),
+    new: dart.definiteFunctionType(svg$.ScriptElement, []),
+    created: dart.definiteFunctionType(svg$.ScriptElement, [])
+  }),
+  fields: () => ({
+    [dartx.type]: core.String,
+    [dartx.href]: svg$.AnimatedString
+  })
+});
+dart.registerExtension(dart.global.SVGScriptElement, svg$.ScriptElement);
+svg$.SetElement = class SetElement extends svg$.AnimationElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.SetElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("set"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('set')) && svg$.SetElement.is(svg$.SvgElement.tag('set'));
+  }
+};
+dart.defineNamedConstructor(svg$.SetElement, 'created');
+dart.setSignature(svg$.SetElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.SetElement, []),
+    new: dart.definiteFunctionType(svg$.SetElement, []),
+    created: dart.definiteFunctionType(svg$.SetElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGSetElement, svg$.SetElement);
+dart.defineExtensionNames([
+  'gradientOffset'
+]);
+svg$.StopElement = class StopElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.StopElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("stop"));
+  }
+  created() {
+    this[dartx.gradientOffset] = null;
+    super.created();
+  }
+  get [dartx.gradientOffset]() {
+    return this.offset;
+  }
+};
+dart.defineNamedConstructor(svg$.StopElement, 'created');
+dart.setSignature(svg$.StopElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.StopElement, []),
+    new: dart.definiteFunctionType(svg$.StopElement, []),
+    created: dart.definiteFunctionType(svg$.StopElement, [])
+  }),
+  fields: () => ({[dartx.gradientOffset]: svg$.AnimatedNumber})
+});
+dart.registerExtension(dart.global.SVGStopElement, svg$.StopElement);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'appendItem',
+  'clear',
+  'getItem',
+  'initialize',
+  'insertItemBefore',
+  'removeItem',
+  'replaceItem',
+  'numberOfItems'
+]);
+svg$.StringList = class StringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html$.ImmutableListMixin$(core.String)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfItems]() {
+    return this.numberOfItems;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.getItem](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
+    }
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
+    }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__setter__$](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.appendItem](...args) {
+    return this.appendItem.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [dartx.initialize](...args) {
+    return this.initialize.apply(this, args);
+  }
+  [dartx.insertItemBefore](...args) {
+    return this.insertItemBefore.apply(this, args);
+  }
+  [dartx.removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [dartx.replaceItem](...args) {
+    return this.replaceItem.apply(this, args);
+  }
+};
+svg$.StringList[dart.implements] = () => [ListOfString()];
+dart.setSignature(svg$.StringList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.StringList, [])}),
+  fields: () => ({[dartx.numberOfItems]: core.int}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
+    [dartx.appendItem]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.getItem]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(core.String, [core.String]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(core.String, [core.String, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(core.String, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(core.String, [core.String, core.int])
+  })
+});
+dart.registerExtension(dart.global.SVGStringList, svg$.StringList);
+dart.defineExtensionNames([
+  'disabled',
+  'media',
+  'sheet',
+  'type'
+]);
+svg$.StyleElement = class StyleElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.StyleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("style"));
+  }
+  created() {
+    this[dartx.disabled] = null;
+    this[dartx.media] = null;
+    this[dartx.sheet] = null;
+    this[dartx.type] = null;
+    super.created();
+  }
+  get [dartx.disabled]() {
+    return this.disabled;
+  }
+  set [dartx.disabled](value) {
+    this.disabled = value;
+  }
+  get [dartx.media]() {
+    return this.media;
+  }
+  set [dartx.media](value) {
+    this.media = value;
+  }
+  get [dartx.sheet]() {
+    return this.sheet;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+};
+dart.defineNamedConstructor(svg$.StyleElement, 'created');
+dart.setSignature(svg$.StyleElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.StyleElement, []),
+    new: dart.definiteFunctionType(svg$.StyleElement, []),
+    created: dart.definiteFunctionType(svg$.StyleElement, [])
+  }),
+  fields: () => ({
+    [dartx.disabled]: core.bool,
+    [dartx.media]: core.String,
+    [dartx.sheet]: html$.StyleSheet,
+    [dartx.type]: core.String
+  })
+});
+dart.registerExtension(dart.global.SVGStyleElement, svg$.StyleElement);
+const _element$0 = Symbol('_element');
+svg$._AttributeClassSet = class _AttributeClassSet extends html_common.CssClassSetImpl {
+  new(element) {
+    this[_element$0] = element;
+  }
+  readClasses() {
+    let classname = this[_element$0][dartx.attributes][dartx._get]('class');
+    let s = LinkedHashSetOfString().new();
+    if (classname == null) {
       return s;
     }
-    writeClasses(s) {
-      this[_element$0][dartx.attributes][dartx._set]('class', s.join(' '));
-    }
-  };
-  dart.setSignature(svg$._AttributeClassSet, {
-    constructors: () => ({new: dart.definiteFunctionType(svg$._AttributeClassSet, [html$.Element])}),
-    fields: () => ({[_element$0]: html$.Element}),
-    methods: () => ({
-      readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
-      writeClasses: dart.definiteFunctionType(dart.void, [core.Set])
-    })
-  });
-  dart.defineExtensionNames([
-    'animationsPaused',
-    'checkEnclosure',
-    'checkIntersection',
-    'createSvgAngle',
-    'createSvgLength',
-    'createSvgMatrix',
-    'createSvgNumber',
-    'createSvgPoint',
-    'createSvgRect',
-    'createSvgTransform',
-    'createSvgTransformFromMatrix',
-    'deselectAll',
-    'forceRedraw',
-    'getCurrentTime',
-    'getElementById',
-    'getEnclosureList',
-    'getIntersectionList',
-    'pauseAnimations',
-    'setCurrentTime',
-    'suspendRedraw',
-    'unpauseAnimations',
-    'unsuspendRedraw',
-    'unsuspendRedrawAll',
-    'currentScale',
-    'currentTranslate',
-    'currentView',
-    'height',
-    'pixelUnitToMillimeterX',
-    'pixelUnitToMillimeterY',
-    'screenPixelToMillimeterX',
-    'screenPixelToMillimeterY',
-    'useCurrentView',
-    'viewport',
-    'width',
-    'x',
-    'y',
-    'preserveAspectRatio',
-    'viewBox',
-    'zoomAndPan'
-  ]);
-  svg$.SvgSvgElement = class SvgSvgElement extends svg$.GraphicsElement {
-    static new() {
-      let el = svg$.SvgElement.tag("svg");
-      el[dartx.attributes][dartx._set]('version', "1.1");
-      return svg$.SvgSvgElement._check(el);
-    }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.currentScale] = null;
-      this[dartx.currentTranslate] = null;
-      this[dartx.currentView] = null;
-      this[dartx.height] = null;
-      this[dartx.pixelUnitToMillimeterX] = null;
-      this[dartx.pixelUnitToMillimeterY] = null;
-      this[dartx.screenPixelToMillimeterX] = null;
-      this[dartx.screenPixelToMillimeterY] = null;
-      this[dartx.useCurrentView] = null;
-      this[dartx.viewport] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.viewBox] = null;
-      this[dartx.zoomAndPan] = null;
-      super.created();
-    }
-    get [dartx.currentScale]() {
-      return this.currentScale;
-    }
-    set [dartx.currentScale](value) {
-      this.currentScale = value;
-    }
-    get [dartx.currentTranslate]() {
-      return this.currentTranslate;
-    }
-    get [dartx.currentView]() {
-      return this.currentView;
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.pixelUnitToMillimeterX]() {
-      return this.pixelUnitToMillimeterX;
-    }
-    get [dartx.pixelUnitToMillimeterY]() {
-      return this.pixelUnitToMillimeterY;
-    }
-    get [dartx.screenPixelToMillimeterX]() {
-      return this.screenPixelToMillimeterX;
-    }
-    get [dartx.screenPixelToMillimeterY]() {
-      return this.screenPixelToMillimeterY;
-    }
-    get [dartx.useCurrentView]() {
-      return this.useCurrentView;
-    }
-    get [dartx.viewport]() {
-      return this.viewport;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    [dartx.animationsPaused](...args) {
-      return this.animationsPaused.apply(this, args);
-    }
-    [dartx.checkEnclosure](...args) {
-      return this.checkEnclosure.apply(this, args);
-    }
-    [dartx.checkIntersection](...args) {
-      return this.checkIntersection.apply(this, args);
-    }
-    [dartx.createSvgAngle](...args) {
-      return this.createSVGAngle.apply(this, args);
-    }
-    [dartx.createSvgLength](...args) {
-      return this.createSVGLength.apply(this, args);
-    }
-    [dartx.createSvgMatrix](...args) {
-      return this.createSVGMatrix.apply(this, args);
-    }
-    [dartx.createSvgNumber](...args) {
-      return this.createSVGNumber.apply(this, args);
-    }
-    [dartx.createSvgPoint](...args) {
-      return this.createSVGPoint.apply(this, args);
-    }
-    [dartx.createSvgRect](...args) {
-      return this.createSVGRect.apply(this, args);
-    }
-    [dartx.createSvgTransform](...args) {
-      return this.createSVGTransform.apply(this, args);
-    }
-    [dartx.createSvgTransformFromMatrix](...args) {
-      return this.createSVGTransformFromMatrix.apply(this, args);
-    }
-    [dartx.deselectAll](...args) {
-      return this.deselectAll.apply(this, args);
-    }
-    [dartx.forceRedraw](...args) {
-      return this.forceRedraw.apply(this, args);
-    }
-    [dartx.getCurrentTime](...args) {
-      return this.getCurrentTime.apply(this, args);
-    }
-    [dartx.getElementById](...args) {
-      return this.getElementById.apply(this, args);
-    }
-    [dartx.getEnclosureList](...args) {
-      return this.getEnclosureList.apply(this, args);
-    }
-    [dartx.getIntersectionList](...args) {
-      return this.getIntersectionList.apply(this, args);
-    }
-    [dartx.pauseAnimations](...args) {
-      return this.pauseAnimations.apply(this, args);
-    }
-    [dartx.setCurrentTime](...args) {
-      return this.setCurrentTime.apply(this, args);
-    }
-    [dartx.suspendRedraw](...args) {
-      return this.suspendRedraw.apply(this, args);
-    }
-    [dartx.unpauseAnimations](...args) {
-      return this.unpauseAnimations.apply(this, args);
-    }
-    [dartx.unsuspendRedraw](...args) {
-      return this.unsuspendRedraw.apply(this, args);
-    }
-    [dartx.unsuspendRedrawAll](...args) {
-      return this.unsuspendRedrawAll.apply(this, args);
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.viewBox]() {
-      return this.viewBox;
-    }
-    get [dartx.zoomAndPan]() {
-      return this.zoomAndPan;
-    }
-    set [dartx.zoomAndPan](value) {
-      this.zoomAndPan = value;
-    }
-  };
-  dart.defineNamedConstructor(svg$.SvgSvgElement, 'created');
-  svg$.SvgSvgElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
-  dart.setSignature(svg$.SvgSvgElement, {
-    constructors: () => ({
-      new: dart.definiteFunctionType(svg$.SvgSvgElement, []),
-      _: dart.definiteFunctionType(svg$.SvgSvgElement, []),
-      created: dart.definiteFunctionType(svg$.SvgSvgElement, [])
-    }),
-    fields: () => ({
-      [dartx.currentScale]: core.num,
-      [dartx.currentTranslate]: svg$.Point,
-      [dartx.currentView]: svg$.ViewSpec,
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.pixelUnitToMillimeterX]: core.double,
-      [dartx.pixelUnitToMillimeterY]: core.double,
-      [dartx.screenPixelToMillimeterX]: core.double,
-      [dartx.screenPixelToMillimeterY]: core.double,
-      [dartx.useCurrentView]: core.bool,
-      [dartx.viewport]: svg$.Rect,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.viewBox]: svg$.AnimatedRect,
-      [dartx.zoomAndPan]: core.int
-    }),
-    methods: () => ({
-      [dartx.animationsPaused]: dart.definiteFunctionType(core.bool, []),
-      [dartx.checkEnclosure]: dart.definiteFunctionType(core.bool, [svg$.SvgElement, svg$.Rect]),
-      [dartx.checkIntersection]: dart.definiteFunctionType(core.bool, [svg$.SvgElement, svg$.Rect]),
-      [dartx.createSvgAngle]: dart.definiteFunctionType(svg$.Angle, []),
-      [dartx.createSvgLength]: dart.definiteFunctionType(svg$.Length, []),
-      [dartx.createSvgMatrix]: dart.definiteFunctionType(svg$.Matrix, []),
-      [dartx.createSvgNumber]: dart.definiteFunctionType(svg$.Number, []),
-      [dartx.createSvgPoint]: dart.definiteFunctionType(svg$.Point, []),
-      [dartx.createSvgRect]: dart.definiteFunctionType(svg$.Rect, []),
-      [dartx.createSvgTransform]: dart.definiteFunctionType(svg$.Transform, []),
-      [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg$.Transform, [svg$.Matrix]),
-      [dartx.deselectAll]: dart.definiteFunctionType(dart.void, []),
-      [dartx.forceRedraw]: dart.definiteFunctionType(dart.void, []),
-      [dartx.getCurrentTime]: dart.definiteFunctionType(core.double, []),
-      [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
-      [dartx.getEnclosureList]: dart.definiteFunctionType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
-      [dartx.getIntersectionList]: dart.definiteFunctionType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
-      [dartx.pauseAnimations]: dart.definiteFunctionType(dart.void, []),
-      [dartx.setCurrentTime]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.suspendRedraw]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.unpauseAnimations]: dart.definiteFunctionType(dart.void, []),
-      [dartx.unsuspendRedraw]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.unsuspendRedrawAll]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGSVGElement, svg$.SvgSvgElement);
-  svg$.SwitchElement = class SwitchElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.SwitchElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("switch"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.SwitchElement, 'created');
-  dart.setSignature(svg$.SwitchElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.SwitchElement, []),
-      new: dart.definiteFunctionType(svg$.SwitchElement, []),
-      created: dart.definiteFunctionType(svg$.SwitchElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGSwitchElement, svg$.SwitchElement);
-  dart.defineExtensionNames([
-    'preserveAspectRatio',
-    'viewBox'
-  ]);
-  svg$.SymbolElement = class SymbolElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.SymbolElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("symbol"));
-    }
-    created() {
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.viewBox] = null;
-      super.created();
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.viewBox]() {
-      return this.viewBox;
-    }
-  };
-  dart.defineNamedConstructor(svg$.SymbolElement, 'created');
-  svg$.SymbolElement[dart.implements] = () => [svg$.FitToViewBox];
-  dart.setSignature(svg$.SymbolElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.SymbolElement, []),
-      new: dart.definiteFunctionType(svg$.SymbolElement, []),
-      created: dart.definiteFunctionType(svg$.SymbolElement, [])
-    }),
-    fields: () => ({
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.viewBox]: svg$.AnimatedRect
-    })
-  });
-  dart.registerExtension(dart.global.SVGSymbolElement, svg$.SymbolElement);
-  dart.defineExtensionNames([
-    'getCharNumAtPosition',
-    'getComputedTextLength',
-    'getEndPositionOfChar',
-    'getExtentOfChar',
-    'getNumberOfChars',
-    'getRotationOfChar',
-    'getStartPositionOfChar',
-    'getSubStringLength',
-    'selectSubString',
-    'lengthAdjust',
-    'textLength'
-  ]);
-  svg$.TextContentElement = class TextContentElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.lengthAdjust] = null;
-      this[dartx.textLength] = null;
-      super.created();
-    }
-    get [dartx.lengthAdjust]() {
-      return this.lengthAdjust;
-    }
-    get [dartx.textLength]() {
-      return this.textLength;
-    }
-    [dartx.getCharNumAtPosition](...args) {
-      return this.getCharNumAtPosition.apply(this, args);
-    }
-    [dartx.getComputedTextLength](...args) {
-      return this.getComputedTextLength.apply(this, args);
-    }
-    [dartx.getEndPositionOfChar](...args) {
-      return this.getEndPositionOfChar.apply(this, args);
-    }
-    [dartx.getExtentOfChar](...args) {
-      return this.getExtentOfChar.apply(this, args);
-    }
-    [dartx.getNumberOfChars](...args) {
-      return this.getNumberOfChars.apply(this, args);
-    }
-    [dartx.getRotationOfChar](...args) {
-      return this.getRotationOfChar.apply(this, args);
-    }
-    [dartx.getStartPositionOfChar](...args) {
-      return this.getStartPositionOfChar.apply(this, args);
-    }
-    [dartx.getSubStringLength](...args) {
-      return this.getSubStringLength.apply(this, args);
-    }
-    [dartx.selectSubString](...args) {
-      return this.selectSubString.apply(this, args);
-    }
-  };
-  dart.defineNamedConstructor(svg$.TextContentElement, 'created');
-  dart.setSignature(svg$.TextContentElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.TextContentElement, []),
-      created: dart.definiteFunctionType(svg$.TextContentElement, [])
-    }),
-    fields: () => ({
-      [dartx.lengthAdjust]: svg$.AnimatedEnumeration,
-      [dartx.textLength]: svg$.AnimatedLength
-    }),
-    methods: () => ({
-      [dartx.getCharNumAtPosition]: dart.definiteFunctionType(core.int, [svg$.Point]),
-      [dartx.getComputedTextLength]: dart.definiteFunctionType(core.double, []),
-      [dartx.getEndPositionOfChar]: dart.definiteFunctionType(svg$.Point, [core.int]),
-      [dartx.getExtentOfChar]: dart.definiteFunctionType(svg$.Rect, [core.int]),
-      [dartx.getNumberOfChars]: dart.definiteFunctionType(core.int, []),
-      [dartx.getRotationOfChar]: dart.definiteFunctionType(core.double, [core.int]),
-      [dartx.getStartPositionOfChar]: dart.definiteFunctionType(svg$.Point, [core.int]),
-      [dartx.getSubStringLength]: dart.definiteFunctionType(core.double, [core.int, core.int]),
-      [dartx.selectSubString]: dart.definiteFunctionType(dart.void, [core.int, core.int])
-    }),
-    sfields: () => ({
-      LENGTHADJUST_SPACING: core.int,
-      LENGTHADJUST_SPACINGANDGLYPHS: core.int,
-      LENGTHADJUST_UNKNOWN: core.int
-    })
-  });
-  svg$.TextContentElement.LENGTHADJUST_SPACING = 1;
-  svg$.TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS = 2;
-  svg$.TextContentElement.LENGTHADJUST_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGTextContentElement, svg$.TextContentElement);
-  dart.defineExtensionNames([
-    'dx',
-    'dy',
-    'rotate',
-    'x',
-    'y'
-  ]);
-  svg$.TextPositioningElement = class TextPositioningElement extends svg$.TextContentElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.dx] = null;
-      this[dartx.dy] = null;
-      this[dartx.rotate] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      super.created();
-    }
-    get [dartx.dx]() {
-      return this.dx;
-    }
-    get [dartx.dy]() {
-      return this.dy;
-    }
-    get [dartx.rotate]() {
-      return this.rotate;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-  };
-  dart.defineNamedConstructor(svg$.TextPositioningElement, 'created');
-  dart.setSignature(svg$.TextPositioningElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.TextPositioningElement, []),
-      created: dart.definiteFunctionType(svg$.TextPositioningElement, [])
-    }),
-    fields: () => ({
-      [dartx.dx]: svg$.AnimatedLengthList,
-      [dartx.dy]: svg$.AnimatedLengthList,
-      [dartx.rotate]: svg$.AnimatedNumberList,
-      [dartx.x]: svg$.AnimatedLengthList,
-      [dartx.y]: svg$.AnimatedLengthList
-    })
-  });
-  dart.registerExtension(dart.global.SVGTextPositioningElement, svg$.TextPositioningElement);
-  svg$.TSpanElement = class TSpanElement extends svg$.TextPositioningElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.TSpanElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("tspan"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.TSpanElement, 'created');
-  dart.setSignature(svg$.TSpanElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.TSpanElement, []),
-      new: dart.definiteFunctionType(svg$.TSpanElement, []),
-      created: dart.definiteFunctionType(svg$.TSpanElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGTSpanElement, svg$.TSpanElement);
-  dart.defineExtensionNames([
-    'requiredExtensions',
-    'requiredFeatures',
-    'systemLanguage'
-  ]);
-  svg$.Tests = class Tests extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get requiredExtensions() {
-      return this[requiredExtensions];
-    }
-    set requiredExtensions(value) {
-      super.requiredExtensions = value;
-    }
-    get requiredFeatures() {
-      return this[requiredFeatures];
-    }
-    set requiredFeatures(value) {
-      super.requiredFeatures = value;
-    }
-    get systemLanguage() {
-      return this[systemLanguage];
-    }
-    set systemLanguage(value) {
-      super.systemLanguage = value;
-    }
-  };
-  const requiredExtensions = Symbol(svg$.Tests.name + "." + 'requiredExtensions'.toString());
-  const requiredFeatures = Symbol(svg$.Tests.name + "." + 'requiredFeatures'.toString());
-  const systemLanguage = Symbol(svg$.Tests.name + "." + 'systemLanguage'.toString());
-  dart.setSignature(svg$.Tests, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Tests, [])}),
-    fields: () => ({
-      requiredExtensions: svg$.StringList,
-      requiredFeatures: svg$.StringList,
-      systemLanguage: svg$.StringList
-    })
-  });
-  dart.defineExtensionMembers(svg$.Tests, ['requiredExtensions', 'requiredFeatures', 'systemLanguage']);
-  svg$.TextElement = class TextElement extends svg$.TextPositioningElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.TextElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("text"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.TextElement, 'created');
-  dart.setSignature(svg$.TextElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.TextElement, []),
-      new: dart.definiteFunctionType(svg$.TextElement, []),
-      created: dart.definiteFunctionType(svg$.TextElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGTextElement, svg$.TextElement);
-  dart.defineExtensionNames([
-    'method',
-    'spacing',
-    'startOffset',
-    'href'
-  ]);
-  svg$.TextPathElement = class TextPathElement extends svg$.TextContentElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      this[dartx.method] = null;
-      this[dartx.spacing] = null;
-      this[dartx.startOffset] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.method]() {
-      return this.method;
-    }
-    get [dartx.spacing]() {
-      return this.spacing;
-    }
-    get [dartx.startOffset]() {
-      return this.startOffset;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.TextPathElement, 'created');
-  svg$.TextPathElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$.TextPathElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.TextPathElement, []),
-      created: dart.definiteFunctionType(svg$.TextPathElement, [])
-    }),
-    fields: () => ({
-      [dartx.method]: svg$.AnimatedEnumeration,
-      [dartx.spacing]: svg$.AnimatedEnumeration,
-      [dartx.startOffset]: svg$.AnimatedLength,
-      [dartx.href]: svg$.AnimatedString
-    }),
-    sfields: () => ({
-      TEXTPATH_METHODTYPE_ALIGN: core.int,
-      TEXTPATH_METHODTYPE_STRETCH: core.int,
-      TEXTPATH_METHODTYPE_UNKNOWN: core.int,
-      TEXTPATH_SPACINGTYPE_AUTO: core.int,
-      TEXTPATH_SPACINGTYPE_EXACT: core.int,
-      TEXTPATH_SPACINGTYPE_UNKNOWN: core.int
-    })
-  });
-  svg$.TextPathElement.TEXTPATH_METHODTYPE_ALIGN = 1;
-  svg$.TextPathElement.TEXTPATH_METHODTYPE_STRETCH = 2;
-  svg$.TextPathElement.TEXTPATH_METHODTYPE_UNKNOWN = 0;
-  svg$.TextPathElement.TEXTPATH_SPACINGTYPE_AUTO = 1;
-  svg$.TextPathElement.TEXTPATH_SPACINGTYPE_EXACT = 2;
-  svg$.TextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGTextPathElement, svg$.TextPathElement);
-  svg$.TitleElement = class TitleElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.TitleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("title"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$.TitleElement, 'created');
-  dart.setSignature(svg$.TitleElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.TitleElement, []),
-      new: dart.definiteFunctionType(svg$.TitleElement, []),
-      created: dart.definiteFunctionType(svg$.TitleElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGTitleElement, svg$.TitleElement);
-  dart.defineExtensionNames([
-    'setMatrix',
-    'setRotate',
-    'setScale',
-    'setSkewX',
-    'setSkewY',
-    'setTranslate',
-    'angle',
-    'matrix',
-    'type'
-  ]);
-  svg$.Transform = class Transform extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.angle]() {
-      return this.angle;
-    }
-    get [dartx.matrix]() {
-      return this.matrix;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    [dartx.setMatrix](...args) {
-      return this.setMatrix.apply(this, args);
-    }
-    [dartx.setRotate](...args) {
-      return this.setRotate.apply(this, args);
-    }
-    [dartx.setScale](...args) {
-      return this.setScale.apply(this, args);
-    }
-    [dartx.setSkewX](...args) {
-      return this.setSkewX.apply(this, args);
-    }
-    [dartx.setSkewY](...args) {
-      return this.setSkewY.apply(this, args);
-    }
-    [dartx.setTranslate](...args) {
-      return this.setTranslate.apply(this, args);
-    }
-  };
-  dart.setSignature(svg$.Transform, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.Transform, [])}),
-    fields: () => ({
-      [dartx.angle]: core.double,
-      [dartx.matrix]: svg$.Matrix,
-      [dartx.type]: core.int
-    }),
-    methods: () => ({
-      [dartx.setMatrix]: dart.definiteFunctionType(dart.void, [svg$.Matrix]),
-      [dartx.setRotate]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
-      [dartx.setScale]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.setSkewX]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.setSkewY]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.setTranslate]: dart.definiteFunctionType(dart.void, [core.num, core.num])
-    }),
-    sfields: () => ({
-      SVG_TRANSFORM_MATRIX: core.int,
-      SVG_TRANSFORM_ROTATE: core.int,
-      SVG_TRANSFORM_SCALE: core.int,
-      SVG_TRANSFORM_SKEWX: core.int,
-      SVG_TRANSFORM_SKEWY: core.int,
-      SVG_TRANSFORM_TRANSLATE: core.int,
-      SVG_TRANSFORM_UNKNOWN: core.int
-    })
-  });
-  svg$.Transform.SVG_TRANSFORM_MATRIX = 1;
-  svg$.Transform.SVG_TRANSFORM_ROTATE = 4;
-  svg$.Transform.SVG_TRANSFORM_SCALE = 3;
-  svg$.Transform.SVG_TRANSFORM_SKEWX = 5;
-  svg$.Transform.SVG_TRANSFORM_SKEWY = 6;
-  svg$.Transform.SVG_TRANSFORM_TRANSLATE = 2;
-  svg$.Transform.SVG_TRANSFORM_UNKNOWN = 0;
-  dart.registerExtension(dart.global.SVGTransform, svg$.Transform);
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'appendItem',
-    'clear',
-    'consolidate',
-    'createSvgTransformFromMatrix',
-    'getItem',
-    'initialize',
-    'insertItemBefore',
-    'removeItem',
-    'replaceItem',
-    'numberOfItems'
-  ]);
-  svg$.TransformList = class TransformList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Transform), html$.ImmutableListMixin$(svg$.Transform)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfItems]() {
-      return this.numberOfItems;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.getItem](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
+    for (let name of classname[dartx.split](' ')) {
+      let trimmed = name[dartx.trim]();
+      if (!dart.test(trimmed[dartx.isEmpty])) {
+        s.add(trimmed);
       }
-      dart.throw(new core.StateError("No elements"));
     }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
+    return s;
+  }
+  writeClasses(s) {
+    this[_element$0][dartx.attributes][dartx._set]('class', s.join(' '));
+  }
+};
+dart.setSignature(svg$._AttributeClassSet, {
+  constructors: () => ({new: dart.definiteFunctionType(svg$._AttributeClassSet, [html$.Element])}),
+  fields: () => ({[_element$0]: html$.Element}),
+  methods: () => ({
+    readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
+    writeClasses: dart.definiteFunctionType(dart.void, [core.Set])
+  })
+});
+dart.defineExtensionNames([
+  'animationsPaused',
+  'checkEnclosure',
+  'checkIntersection',
+  'createSvgAngle',
+  'createSvgLength',
+  'createSvgMatrix',
+  'createSvgNumber',
+  'createSvgPoint',
+  'createSvgRect',
+  'createSvgTransform',
+  'createSvgTransformFromMatrix',
+  'deselectAll',
+  'forceRedraw',
+  'getCurrentTime',
+  'getElementById',
+  'getEnclosureList',
+  'getIntersectionList',
+  'pauseAnimations',
+  'setCurrentTime',
+  'suspendRedraw',
+  'unpauseAnimations',
+  'unsuspendRedraw',
+  'unsuspendRedrawAll',
+  'currentScale',
+  'currentTranslate',
+  'currentView',
+  'height',
+  'pixelUnitToMillimeterX',
+  'pixelUnitToMillimeterY',
+  'screenPixelToMillimeterX',
+  'screenPixelToMillimeterY',
+  'useCurrentView',
+  'viewport',
+  'width',
+  'x',
+  'y',
+  'preserveAspectRatio',
+  'viewBox',
+  'zoomAndPan'
+]);
+svg$.SvgSvgElement = class SvgSvgElement extends svg$.GraphicsElement {
+  static new() {
+    let el = svg$.SvgElement.tag("svg");
+    el[dartx.attributes][dartx._set]('version', "1.1");
+    return svg$.SvgSvgElement._check(el);
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.currentScale] = null;
+    this[dartx.currentTranslate] = null;
+    this[dartx.currentView] = null;
+    this[dartx.height] = null;
+    this[dartx.pixelUnitToMillimeterX] = null;
+    this[dartx.pixelUnitToMillimeterY] = null;
+    this[dartx.screenPixelToMillimeterX] = null;
+    this[dartx.screenPixelToMillimeterY] = null;
+    this[dartx.useCurrentView] = null;
+    this[dartx.viewport] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.viewBox] = null;
+    this[dartx.zoomAndPan] = null;
+    super.created();
+  }
+  get [dartx.currentScale]() {
+    return this.currentScale;
+  }
+  set [dartx.currentScale](value) {
+    this.currentScale = value;
+  }
+  get [dartx.currentTranslate]() {
+    return this.currentTranslate;
+  }
+  get [dartx.currentView]() {
+    return this.currentView;
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.pixelUnitToMillimeterX]() {
+    return this.pixelUnitToMillimeterX;
+  }
+  get [dartx.pixelUnitToMillimeterY]() {
+    return this.pixelUnitToMillimeterY;
+  }
+  get [dartx.screenPixelToMillimeterX]() {
+    return this.screenPixelToMillimeterX;
+  }
+  get [dartx.screenPixelToMillimeterY]() {
+    return this.screenPixelToMillimeterY;
+  }
+  get [dartx.useCurrentView]() {
+    return this.useCurrentView;
+  }
+  get [dartx.viewport]() {
+    return this.viewport;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  [dartx.animationsPaused](...args) {
+    return this.animationsPaused.apply(this, args);
+  }
+  [dartx.checkEnclosure](...args) {
+    return this.checkEnclosure.apply(this, args);
+  }
+  [dartx.checkIntersection](...args) {
+    return this.checkIntersection.apply(this, args);
+  }
+  [dartx.createSvgAngle](...args) {
+    return this.createSVGAngle.apply(this, args);
+  }
+  [dartx.createSvgLength](...args) {
+    return this.createSVGLength.apply(this, args);
+  }
+  [dartx.createSvgMatrix](...args) {
+    return this.createSVGMatrix.apply(this, args);
+  }
+  [dartx.createSvgNumber](...args) {
+    return this.createSVGNumber.apply(this, args);
+  }
+  [dartx.createSvgPoint](...args) {
+    return this.createSVGPoint.apply(this, args);
+  }
+  [dartx.createSvgRect](...args) {
+    return this.createSVGRect.apply(this, args);
+  }
+  [dartx.createSvgTransform](...args) {
+    return this.createSVGTransform.apply(this, args);
+  }
+  [dartx.createSvgTransformFromMatrix](...args) {
+    return this.createSVGTransformFromMatrix.apply(this, args);
+  }
+  [dartx.deselectAll](...args) {
+    return this.deselectAll.apply(this, args);
+  }
+  [dartx.forceRedraw](...args) {
+    return this.forceRedraw.apply(this, args);
+  }
+  [dartx.getCurrentTime](...args) {
+    return this.getCurrentTime.apply(this, args);
+  }
+  [dartx.getElementById](...args) {
+    return this.getElementById.apply(this, args);
+  }
+  [dartx.getEnclosureList](...args) {
+    return this.getEnclosureList.apply(this, args);
+  }
+  [dartx.getIntersectionList](...args) {
+    return this.getIntersectionList.apply(this, args);
+  }
+  [dartx.pauseAnimations](...args) {
+    return this.pauseAnimations.apply(this, args);
+  }
+  [dartx.setCurrentTime](...args) {
+    return this.setCurrentTime.apply(this, args);
+  }
+  [dartx.suspendRedraw](...args) {
+    return this.suspendRedraw.apply(this, args);
+  }
+  [dartx.unpauseAnimations](...args) {
+    return this.unpauseAnimations.apply(this, args);
+  }
+  [dartx.unsuspendRedraw](...args) {
+    return this.unsuspendRedraw.apply(this, args);
+  }
+  [dartx.unsuspendRedrawAll](...args) {
+    return this.unsuspendRedrawAll.apply(this, args);
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.viewBox]() {
+    return this.viewBox;
+  }
+  get [dartx.zoomAndPan]() {
+    return this.zoomAndPan;
+  }
+  set [dartx.zoomAndPan](value) {
+    this.zoomAndPan = value;
+  }
+};
+dart.defineNamedConstructor(svg$.SvgSvgElement, 'created');
+svg$.SvgSvgElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
+dart.setSignature(svg$.SvgSvgElement, {
+  constructors: () => ({
+    new: dart.definiteFunctionType(svg$.SvgSvgElement, []),
+    _: dart.definiteFunctionType(svg$.SvgSvgElement, []),
+    created: dart.definiteFunctionType(svg$.SvgSvgElement, [])
+  }),
+  fields: () => ({
+    [dartx.currentScale]: core.num,
+    [dartx.currentTranslate]: svg$.Point,
+    [dartx.currentView]: svg$.ViewSpec,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.pixelUnitToMillimeterX]: core.double,
+    [dartx.pixelUnitToMillimeterY]: core.double,
+    [dartx.screenPixelToMillimeterX]: core.double,
+    [dartx.screenPixelToMillimeterY]: core.double,
+    [dartx.useCurrentView]: core.bool,
+    [dartx.viewport]: svg$.Rect,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
+    [dartx.zoomAndPan]: core.int
+  }),
+  methods: () => ({
+    [dartx.animationsPaused]: dart.definiteFunctionType(core.bool, []),
+    [dartx.checkEnclosure]: dart.definiteFunctionType(core.bool, [svg$.SvgElement, svg$.Rect]),
+    [dartx.checkIntersection]: dart.definiteFunctionType(core.bool, [svg$.SvgElement, svg$.Rect]),
+    [dartx.createSvgAngle]: dart.definiteFunctionType(svg$.Angle, []),
+    [dartx.createSvgLength]: dart.definiteFunctionType(svg$.Length, []),
+    [dartx.createSvgMatrix]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.createSvgNumber]: dart.definiteFunctionType(svg$.Number, []),
+    [dartx.createSvgPoint]: dart.definiteFunctionType(svg$.Point, []),
+    [dartx.createSvgRect]: dart.definiteFunctionType(svg$.Rect, []),
+    [dartx.createSvgTransform]: dart.definiteFunctionType(svg$.Transform, []),
+    [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg$.Transform, [svg$.Matrix]),
+    [dartx.deselectAll]: dart.definiteFunctionType(dart.void, []),
+    [dartx.forceRedraw]: dart.definiteFunctionType(dart.void, []),
+    [dartx.getCurrentTime]: dart.definiteFunctionType(core.double, []),
+    [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.getEnclosureList]: dart.definiteFunctionType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
+    [dartx.getIntersectionList]: dart.definiteFunctionType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
+    [dartx.pauseAnimations]: dart.definiteFunctionType(dart.void, []),
+    [dartx.setCurrentTime]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.suspendRedraw]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.unpauseAnimations]: dart.definiteFunctionType(dart.void, []),
+    [dartx.unsuspendRedraw]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.unsuspendRedrawAll]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.SVGSVGElement, svg$.SvgSvgElement);
+svg$.SwitchElement = class SwitchElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.SwitchElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("switch"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.SwitchElement, 'created');
+dart.setSignature(svg$.SwitchElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.SwitchElement, []),
+    new: dart.definiteFunctionType(svg$.SwitchElement, []),
+    created: dart.definiteFunctionType(svg$.SwitchElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGSwitchElement, svg$.SwitchElement);
+dart.defineExtensionNames([
+  'preserveAspectRatio',
+  'viewBox'
+]);
+svg$.SymbolElement = class SymbolElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.SymbolElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("symbol"));
+  }
+  created() {
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.viewBox] = null;
+    super.created();
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.viewBox]() {
+    return this.viewBox;
+  }
+};
+dart.defineNamedConstructor(svg$.SymbolElement, 'created');
+svg$.SymbolElement[dart.implements] = () => [svg$.FitToViewBox];
+dart.setSignature(svg$.SymbolElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.SymbolElement, []),
+    new: dart.definiteFunctionType(svg$.SymbolElement, []),
+    created: dart.definiteFunctionType(svg$.SymbolElement, [])
+  }),
+  fields: () => ({
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect
+  })
+});
+dart.registerExtension(dart.global.SVGSymbolElement, svg$.SymbolElement);
+dart.defineExtensionNames([
+  'getCharNumAtPosition',
+  'getComputedTextLength',
+  'getEndPositionOfChar',
+  'getExtentOfChar',
+  'getNumberOfChars',
+  'getRotationOfChar',
+  'getStartPositionOfChar',
+  'getSubStringLength',
+  'selectSubString',
+  'lengthAdjust',
+  'textLength'
+]);
+svg$.TextContentElement = class TextContentElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.lengthAdjust] = null;
+    this[dartx.textLength] = null;
+    super.created();
+  }
+  get [dartx.lengthAdjust]() {
+    return this.lengthAdjust;
+  }
+  get [dartx.textLength]() {
+    return this.textLength;
+  }
+  [dartx.getCharNumAtPosition](...args) {
+    return this.getCharNumAtPosition.apply(this, args);
+  }
+  [dartx.getComputedTextLength](...args) {
+    return this.getComputedTextLength.apply(this, args);
+  }
+  [dartx.getEndPositionOfChar](...args) {
+    return this.getEndPositionOfChar.apply(this, args);
+  }
+  [dartx.getExtentOfChar](...args) {
+    return this.getExtentOfChar.apply(this, args);
+  }
+  [dartx.getNumberOfChars](...args) {
+    return this.getNumberOfChars.apply(this, args);
+  }
+  [dartx.getRotationOfChar](...args) {
+    return this.getRotationOfChar.apply(this, args);
+  }
+  [dartx.getStartPositionOfChar](...args) {
+    return this.getStartPositionOfChar.apply(this, args);
+  }
+  [dartx.getSubStringLength](...args) {
+    return this.getSubStringLength.apply(this, args);
+  }
+  [dartx.selectSubString](...args) {
+    return this.selectSubString.apply(this, args);
+  }
+};
+dart.defineNamedConstructor(svg$.TextContentElement, 'created');
+dart.setSignature(svg$.TextContentElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.TextContentElement, []),
+    created: dart.definiteFunctionType(svg$.TextContentElement, [])
+  }),
+  fields: () => ({
+    [dartx.lengthAdjust]: svg$.AnimatedEnumeration,
+    [dartx.textLength]: svg$.AnimatedLength
+  }),
+  methods: () => ({
+    [dartx.getCharNumAtPosition]: dart.definiteFunctionType(core.int, [svg$.Point]),
+    [dartx.getComputedTextLength]: dart.definiteFunctionType(core.double, []),
+    [dartx.getEndPositionOfChar]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.getExtentOfChar]: dart.definiteFunctionType(svg$.Rect, [core.int]),
+    [dartx.getNumberOfChars]: dart.definiteFunctionType(core.int, []),
+    [dartx.getRotationOfChar]: dart.definiteFunctionType(core.double, [core.int]),
+    [dartx.getStartPositionOfChar]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.getSubStringLength]: dart.definiteFunctionType(core.double, [core.int, core.int]),
+    [dartx.selectSubString]: dart.definiteFunctionType(dart.void, [core.int, core.int])
+  }),
+  sfields: () => ({
+    LENGTHADJUST_SPACING: core.int,
+    LENGTHADJUST_SPACINGANDGLYPHS: core.int,
+    LENGTHADJUST_UNKNOWN: core.int
+  })
+});
+svg$.TextContentElement.LENGTHADJUST_SPACING = 1;
+svg$.TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS = 2;
+svg$.TextContentElement.LENGTHADJUST_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGTextContentElement, svg$.TextContentElement);
+dart.defineExtensionNames([
+  'dx',
+  'dy',
+  'rotate',
+  'x',
+  'y'
+]);
+svg$.TextPositioningElement = class TextPositioningElement extends svg$.TextContentElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.dx] = null;
+    this[dartx.dy] = null;
+    this[dartx.rotate] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    super.created();
+  }
+  get [dartx.dx]() {
+    return this.dx;
+  }
+  get [dartx.dy]() {
+    return this.dy;
+  }
+  get [dartx.rotate]() {
+    return this.rotate;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+};
+dart.defineNamedConstructor(svg$.TextPositioningElement, 'created');
+dart.setSignature(svg$.TextPositioningElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.TextPositioningElement, []),
+    created: dart.definiteFunctionType(svg$.TextPositioningElement, [])
+  }),
+  fields: () => ({
+    [dartx.dx]: svg$.AnimatedLengthList,
+    [dartx.dy]: svg$.AnimatedLengthList,
+    [dartx.rotate]: svg$.AnimatedNumberList,
+    [dartx.x]: svg$.AnimatedLengthList,
+    [dartx.y]: svg$.AnimatedLengthList
+  })
+});
+dart.registerExtension(dart.global.SVGTextPositioningElement, svg$.TextPositioningElement);
+svg$.TSpanElement = class TSpanElement extends svg$.TextPositioningElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.TSpanElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("tspan"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.TSpanElement, 'created');
+dart.setSignature(svg$.TSpanElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.TSpanElement, []),
+    new: dart.definiteFunctionType(svg$.TSpanElement, []),
+    created: dart.definiteFunctionType(svg$.TSpanElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGTSpanElement, svg$.TSpanElement);
+dart.defineExtensionNames([
+  'requiredExtensions',
+  'requiredFeatures',
+  'systemLanguage'
+]);
+svg$.Tests = class Tests extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get requiredExtensions() {
+    return this[requiredExtensions];
+  }
+  set requiredExtensions(value) {
+    super.requiredExtensions = value;
+  }
+  get requiredFeatures() {
+    return this[requiredFeatures];
+  }
+  set requiredFeatures(value) {
+    super.requiredFeatures = value;
+  }
+  get systemLanguage() {
+    return this[systemLanguage];
+  }
+  set systemLanguage(value) {
+    super.systemLanguage = value;
+  }
+};
+const requiredExtensions = Symbol(svg$.Tests.name + "." + 'requiredExtensions'.toString());
+const requiredFeatures = Symbol(svg$.Tests.name + "." + 'requiredFeatures'.toString());
+const systemLanguage = Symbol(svg$.Tests.name + "." + 'systemLanguage'.toString());
+dart.setSignature(svg$.Tests, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Tests, [])}),
+  fields: () => ({
+    requiredExtensions: svg$.StringList,
+    requiredFeatures: svg$.StringList,
+    systemLanguage: svg$.StringList
+  })
+});
+dart.defineExtensionMembers(svg$.Tests, ['requiredExtensions', 'requiredFeatures', 'systemLanguage']);
+svg$.TextElement = class TextElement extends svg$.TextPositioningElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.TextElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("text"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.TextElement, 'created');
+dart.setSignature(svg$.TextElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.TextElement, []),
+    new: dart.definiteFunctionType(svg$.TextElement, []),
+    created: dart.definiteFunctionType(svg$.TextElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGTextElement, svg$.TextElement);
+dart.defineExtensionNames([
+  'method',
+  'spacing',
+  'startOffset',
+  'href'
+]);
+svg$.TextPathElement = class TextPathElement extends svg$.TextContentElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    this[dartx.method] = null;
+    this[dartx.spacing] = null;
+    this[dartx.startOffset] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.method]() {
+    return this.method;
+  }
+  get [dartx.spacing]() {
+    return this.spacing;
+  }
+  get [dartx.startOffset]() {
+    return this.startOffset;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.TextPathElement, 'created');
+svg$.TextPathElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.TextPathElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.TextPathElement, []),
+    created: dart.definiteFunctionType(svg$.TextPathElement, [])
+  }),
+  fields: () => ({
+    [dartx.method]: svg$.AnimatedEnumeration,
+    [dartx.spacing]: svg$.AnimatedEnumeration,
+    [dartx.startOffset]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
+  }),
+  sfields: () => ({
+    TEXTPATH_METHODTYPE_ALIGN: core.int,
+    TEXTPATH_METHODTYPE_STRETCH: core.int,
+    TEXTPATH_METHODTYPE_UNKNOWN: core.int,
+    TEXTPATH_SPACINGTYPE_AUTO: core.int,
+    TEXTPATH_SPACINGTYPE_EXACT: core.int,
+    TEXTPATH_SPACINGTYPE_UNKNOWN: core.int
+  })
+});
+svg$.TextPathElement.TEXTPATH_METHODTYPE_ALIGN = 1;
+svg$.TextPathElement.TEXTPATH_METHODTYPE_STRETCH = 2;
+svg$.TextPathElement.TEXTPATH_METHODTYPE_UNKNOWN = 0;
+svg$.TextPathElement.TEXTPATH_SPACINGTYPE_AUTO = 1;
+svg$.TextPathElement.TEXTPATH_SPACINGTYPE_EXACT = 2;
+svg$.TextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGTextPathElement, svg$.TextPathElement);
+svg$.TitleElement = class TitleElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.TitleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("title"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$.TitleElement, 'created');
+dart.setSignature(svg$.TitleElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.TitleElement, []),
+    new: dart.definiteFunctionType(svg$.TitleElement, []),
+    created: dart.definiteFunctionType(svg$.TitleElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGTitleElement, svg$.TitleElement);
+dart.defineExtensionNames([
+  'setMatrix',
+  'setRotate',
+  'setScale',
+  'setSkewX',
+  'setSkewY',
+  'setTranslate',
+  'angle',
+  'matrix',
+  'type'
+]);
+svg$.Transform = class Transform extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.angle]() {
+    return this.angle;
+  }
+  get [dartx.matrix]() {
+    return this.matrix;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  [dartx.setMatrix](...args) {
+    return this.setMatrix.apply(this, args);
+  }
+  [dartx.setRotate](...args) {
+    return this.setRotate.apply(this, args);
+  }
+  [dartx.setScale](...args) {
+    return this.setScale.apply(this, args);
+  }
+  [dartx.setSkewX](...args) {
+    return this.setSkewX.apply(this, args);
+  }
+  [dartx.setSkewY](...args) {
+    return this.setSkewY.apply(this, args);
+  }
+  [dartx.setTranslate](...args) {
+    return this.setTranslate.apply(this, args);
+  }
+};
+dart.setSignature(svg$.Transform, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Transform, [])}),
+  fields: () => ({
+    [dartx.angle]: core.double,
+    [dartx.matrix]: svg$.Matrix,
+    [dartx.type]: core.int
+  }),
+  methods: () => ({
+    [dartx.setMatrix]: dart.definiteFunctionType(dart.void, [svg$.Matrix]),
+    [dartx.setRotate]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
+    [dartx.setScale]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.setSkewX]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.setSkewY]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.setTranslate]: dart.definiteFunctionType(dart.void, [core.num, core.num])
+  }),
+  sfields: () => ({
+    SVG_TRANSFORM_MATRIX: core.int,
+    SVG_TRANSFORM_ROTATE: core.int,
+    SVG_TRANSFORM_SCALE: core.int,
+    SVG_TRANSFORM_SKEWX: core.int,
+    SVG_TRANSFORM_SKEWY: core.int,
+    SVG_TRANSFORM_TRANSLATE: core.int,
+    SVG_TRANSFORM_UNKNOWN: core.int
+  })
+});
+svg$.Transform.SVG_TRANSFORM_MATRIX = 1;
+svg$.Transform.SVG_TRANSFORM_ROTATE = 4;
+svg$.Transform.SVG_TRANSFORM_SCALE = 3;
+svg$.Transform.SVG_TRANSFORM_SKEWX = 5;
+svg$.Transform.SVG_TRANSFORM_SKEWY = 6;
+svg$.Transform.SVG_TRANSFORM_TRANSLATE = 2;
+svg$.Transform.SVG_TRANSFORM_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGTransform, svg$.Transform);
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'appendItem',
+  'clear',
+  'consolidate',
+  'createSvgTransformFromMatrix',
+  'getItem',
+  'initialize',
+  'insertItemBefore',
+  'removeItem',
+  'replaceItem',
+  'numberOfItems'
+]);
+svg$.TransformList = class TransformList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Transform), html$.ImmutableListMixin$(svg$.Transform)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfItems]() {
+    return this.numberOfItems;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.getItem](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
     }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
     }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
     }
-    [__setter__$](...args) {
-      return this.__setter__.apply(this, args);
-    }
-    [dartx.appendItem](...args) {
-      return this.appendItem.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.consolidate](...args) {
-      return this.consolidate.apply(this, args);
-    }
-    [dartx.createSvgTransformFromMatrix](...args) {
-      return this.createSVGTransformFromMatrix.apply(this, args);
-    }
-    [dartx.getItem](...args) {
-      return this.getItem.apply(this, args);
-    }
-    [dartx.initialize](...args) {
-      return this.initialize.apply(this, args);
-    }
-    [dartx.insertItemBefore](...args) {
-      return this.insertItemBefore.apply(this, args);
-    }
-    [dartx.removeItem](...args) {
-      return this.removeItem.apply(this, args);
-    }
-    [dartx.replaceItem](...args) {
-      return this.replaceItem.apply(this, args);
-    }
-  };
-  svg$.TransformList[dart.implements] = () => [ListOfTransform()];
-  dart.setSignature(svg$.TransformList, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.TransformList, [])}),
-    fields: () => ({[dartx.numberOfItems]: core.int}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(svg$.Transform, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Transform]),
-      [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Transform]),
-      [dartx.appendItem]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform]),
-      [dartx.consolidate]: dart.definiteFunctionType(svg$.Transform, []),
-      [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg$.Transform, [svg$.Matrix]),
-      [dartx.getItem]: dart.definiteFunctionType(svg$.Transform, [core.int]),
-      [dartx.initialize]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform]),
-      [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform, core.int]),
-      [dartx.removeItem]: dart.definiteFunctionType(svg$.Transform, [core.int]),
-      [dartx.replaceItem]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform, core.int])
-    })
-  });
-  dart.registerExtension(dart.global.SVGTransformList, svg$.TransformList);
-  svg$.UnitTypes = class UnitTypes extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(svg$.UnitTypes, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.UnitTypes, [])}),
-    sfields: () => ({
-      SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: core.int,
-      SVG_UNIT_TYPE_UNKNOWN: core.int,
-      SVG_UNIT_TYPE_USERSPACEONUSE: core.int
-    })
-  });
-  svg$.UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
-  svg$.UnitTypes.SVG_UNIT_TYPE_UNKNOWN = 0;
-  svg$.UnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE = 1;
-  dart.registerExtension(dart.global.SVGUnitTypes, svg$.UnitTypes);
-  dart.defineExtensionNames([
-    'href'
-  ]);
-  svg$.UriReference = class UriReference extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get href() {
-      return this[href$0];
-    }
-    set href(value) {
-      super.href = value;
-    }
-  };
-  const href$0 = Symbol(svg$.UriReference.name + "." + 'href'.toString());
-  dart.setSignature(svg$.UriReference, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.UriReference, [])}),
-    fields: () => ({href: svg$.AnimatedString})
-  });
-  dart.defineExtensionMembers(svg$.UriReference, ['href']);
-  dart.defineExtensionNames([
-    'height',
-    'width',
-    'x',
-    'y',
-    'href'
-  ]);
-  svg$.UseElement = class UseElement extends svg$.GraphicsElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.UseElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("use"));
-    }
-    created() {
-      this[dartx.height] = null;
-      this[dartx.width] = null;
-      this[dartx.x] = null;
-      this[dartx.y] = null;
-      this[dartx.href] = null;
-      super.created();
-    }
-    get [dartx.height]() {
-      return this.height;
-    }
-    get [dartx.width]() {
-      return this.width;
-    }
-    get [dartx.x]() {
-      return this.x;
-    }
-    get [dartx.y]() {
-      return this.y;
-    }
-    get [dartx.href]() {
-      return this.href;
-    }
-  };
-  dart.defineNamedConstructor(svg$.UseElement, 'created');
-  svg$.UseElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$.UseElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.UseElement, []),
-      new: dart.definiteFunctionType(svg$.UseElement, []),
-      created: dart.definiteFunctionType(svg$.UseElement, [])
-    }),
-    fields: () => ({
-      [dartx.height]: svg$.AnimatedLength,
-      [dartx.width]: svg$.AnimatedLength,
-      [dartx.x]: svg$.AnimatedLength,
-      [dartx.y]: svg$.AnimatedLength,
-      [dartx.href]: svg$.AnimatedString
-    })
-  });
-  dart.registerExtension(dart.global.SVGUseElement, svg$.UseElement);
-  dart.defineExtensionNames([
-    'viewTarget',
-    'preserveAspectRatio',
-    'viewBox',
-    'zoomAndPan'
-  ]);
-  svg$.ViewElement = class ViewElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$.ViewElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("view"));
-    }
-    created() {
-      this[dartx.viewTarget] = null;
-      this[dartx.preserveAspectRatio] = null;
-      this[dartx.viewBox] = null;
-      this[dartx.zoomAndPan] = null;
-      super.created();
-    }
-    get [dartx.viewTarget]() {
-      return this.viewTarget;
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.viewBox]() {
-      return this.viewBox;
-    }
-    get [dartx.zoomAndPan]() {
-      return this.zoomAndPan;
-    }
-    set [dartx.zoomAndPan](value) {
-      this.zoomAndPan = value;
-    }
-  };
-  dart.defineNamedConstructor(svg$.ViewElement, 'created');
-  svg$.ViewElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
-  dart.setSignature(svg$.ViewElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$.ViewElement, []),
-      new: dart.definiteFunctionType(svg$.ViewElement, []),
-      created: dart.definiteFunctionType(svg$.ViewElement, [])
-    }),
-    fields: () => ({
-      [dartx.viewTarget]: svg$.StringList,
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.viewBox]: svg$.AnimatedRect,
-      [dartx.zoomAndPan]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.SVGViewElement, svg$.ViewElement);
-  dart.defineExtensionNames([
-    'preserveAspectRatioString',
-    'transform',
-    'transformString',
-    'viewBoxString',
-    'viewTarget',
-    'viewTargetString',
-    'preserveAspectRatio',
-    'viewBox',
-    'zoomAndPan'
-  ]);
-  svg$.ViewSpec = class ViewSpec extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.preserveAspectRatioString]() {
-      return this.preserveAspectRatioString;
-    }
-    get [dartx.transform]() {
-      return this.transform;
-    }
-    get [dartx.transformString]() {
-      return this.transformString;
-    }
-    get [dartx.viewBoxString]() {
-      return this.viewBoxString;
-    }
-    get [dartx.viewTarget]() {
-      return this.viewTarget;
-    }
-    get [dartx.viewTargetString]() {
-      return this.viewTargetString;
-    }
-    get [dartx.preserveAspectRatio]() {
-      return this.preserveAspectRatio;
-    }
-    get [dartx.viewBox]() {
-      return this.viewBox;
-    }
-    get [dartx.zoomAndPan]() {
-      return this.zoomAndPan;
-    }
-    set [dartx.zoomAndPan](value) {
-      this.zoomAndPan = value;
-    }
-  };
-  svg$.ViewSpec[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
-  dart.setSignature(svg$.ViewSpec, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.ViewSpec, [])}),
-    fields: () => ({
-      [dartx.preserveAspectRatioString]: core.String,
-      [dartx.transform]: svg$.TransformList,
-      [dartx.transformString]: core.String,
-      [dartx.viewBoxString]: core.String,
-      [dartx.viewTarget]: svg$.SvgElement,
-      [dartx.viewTargetString]: core.String,
-      [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
-      [dartx.viewBox]: svg$.AnimatedRect,
-      [dartx.zoomAndPan]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.SVGViewSpec, svg$.ViewSpec);
-  dart.defineExtensionNames([
-    'zoomAndPan'
-  ]);
-  svg$.ZoomAndPan = class ZoomAndPan extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get zoomAndPan() {
-      return this[zoomAndPan];
-    }
-    set zoomAndPan(value) {
-      this[zoomAndPan] = value;
-    }
-  };
-  const zoomAndPan = Symbol(svg$.ZoomAndPan.name + "." + 'zoomAndPan'.toString());
-  dart.setSignature(svg$.ZoomAndPan, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.ZoomAndPan, [])}),
-    fields: () => ({zoomAndPan: core.int}),
-    sfields: () => ({
-      SVG_ZOOMANDPAN_DISABLE: core.int,
-      SVG_ZOOMANDPAN_MAGNIFY: core.int,
-      SVG_ZOOMANDPAN_UNKNOWN: core.int
-    })
-  });
-  dart.defineExtensionMembers(svg$.ZoomAndPan, ['zoomAndPan', 'zoomAndPan']);
-  svg$.ZoomAndPan.SVG_ZOOMANDPAN_DISABLE = 1;
-  svg$.ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY = 2;
-  svg$.ZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN = 0;
-  dart.defineExtensionNames([
-    'newScale',
-    'newTranslate',
-    'previousScale',
-    'previousTranslate',
-    'zoomRectScreen'
-  ]);
-  svg$.ZoomEvent = class ZoomEvent extends html$.UIEvent {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.newScale]() {
-      return this.newScale;
-    }
-    get [dartx.newTranslate]() {
-      return this.newTranslate;
-    }
-    get [dartx.previousScale]() {
-      return this.previousScale;
-    }
-    get [dartx.previousTranslate]() {
-      return this.previousTranslate;
-    }
-    get [dartx.zoomRectScreen]() {
-      return this.zoomRectScreen;
-    }
-  };
-  dart.setSignature(svg$.ZoomEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(svg$.ZoomEvent, [])}),
-    fields: () => ({
-      [dartx.newScale]: core.double,
-      [dartx.newTranslate]: svg$.Point,
-      [dartx.previousScale]: core.double,
-      [dartx.previousTranslate]: svg$.Point,
-      [dartx.zoomRectScreen]: svg$.Rect
-    })
-  });
-  dart.registerExtension(dart.global.SVGZoomEvent, svg$.ZoomEvent);
-  svg$._SVGCursorElement = class _SVGCursorElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$._SVGCursorElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("cursor"));
-    }
-    created() {
-      super.created();
-    }
-    static get supported() {
-      return dart.test(svg$.SvgElement.isTagSupported('cursor')) && svg$._SVGCursorElement.is(svg$.SvgElement.tag('cursor'));
-    }
-  };
-  dart.defineNamedConstructor(svg$._SVGCursorElement, 'created');
-  svg$._SVGCursorElement[dart.implements] = () => [svg$.UriReference, svg$.Tests];
-  dart.setSignature(svg$._SVGCursorElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$._SVGCursorElement, []),
-      new: dart.definiteFunctionType(svg$._SVGCursorElement, []),
-      created: dart.definiteFunctionType(svg$._SVGCursorElement, [])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.SVGCursorElement, svg$._SVGCursorElement);
-  svg$._SVGFEDropShadowElement = class _SVGFEDropShadowElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$._SVGFEDropShadowElement, 'created');
-  svg$._SVGFEDropShadowElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
-  dart.setSignature(svg$._SVGFEDropShadowElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$._SVGFEDropShadowElement, []),
-      created: dart.definiteFunctionType(svg$._SVGFEDropShadowElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGFEDropShadowElement, svg$._SVGFEDropShadowElement);
-  svg$._SVGMPathElement = class _SVGMPathElement extends svg$.SvgElement {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new() {
-      return svg$._SVGMPathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("mpath"));
-    }
-    created() {
-      super.created();
-    }
-  };
-  dart.defineNamedConstructor(svg$._SVGMPathElement, 'created');
-  svg$._SVGMPathElement[dart.implements] = () => [svg$.UriReference];
-  dart.setSignature(svg$._SVGMPathElement, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(svg$._SVGMPathElement, []),
-      new: dart.definiteFunctionType(svg$._SVGMPathElement, []),
-      created: dart.definiteFunctionType(svg$._SVGMPathElement, [])
-    })
-  });
-  dart.registerExtension(dart.global.SVGMPathElement, svg$._SVGMPathElement);
-  const _connect = Symbol('_connect');
-  dart.defineExtensionNames([
-    'disconnect',
-    'connectNode',
-    'connectParam',
-    'channelCount',
-    'channelCountMode',
-    'channelInterpretation',
-    'context',
-    'numberOfInputs',
-    'numberOfOutputs'
-  ]);
-  web_audio.AudioNode = class AudioNode extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.channelCount]() {
-      return this.channelCount;
-    }
-    set [dartx.channelCount](value) {
-      this.channelCount = value;
-    }
-    get [dartx.channelCountMode]() {
-      return this.channelCountMode;
-    }
-    set [dartx.channelCountMode](value) {
-      this.channelCountMode = value;
-    }
-    get [dartx.channelInterpretation]() {
-      return this.channelInterpretation;
-    }
-    set [dartx.channelInterpretation](value) {
-      this.channelInterpretation = value;
-    }
-    get [dartx.context]() {
-      return this.context;
-    }
-    get [dartx.numberOfInputs]() {
-      return this.numberOfInputs;
-    }
-    get [dartx.numberOfOutputs]() {
-      return this.numberOfOutputs;
-    }
-    [_connect](...args) {
-      return this.connect.apply(this, args);
-    }
-    [dartx.disconnect](...args) {
-      return this.disconnect.apply(this, args);
-    }
-    [dartx.connectNode](destination, output, input) {
-      if (output === void 0) output = 0;
-      if (input === void 0) input = 0;
-      return this[_connect](destination, output, input);
-    }
-    [dartx.connectParam](destination, output) {
-      if (output === void 0) output = 0;
-      return this[_connect](destination, output);
-    }
-  };
-  dart.setSignature(web_audio.AudioNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioNode, [])}),
-    fields: () => ({
-      [dartx.channelCount]: core.int,
-      [dartx.channelCountMode]: core.String,
-      [dartx.channelInterpretation]: core.String,
-      [dartx.context]: web_audio.AudioContext,
-      [dartx.numberOfInputs]: core.int,
-      [dartx.numberOfOutputs]: core.int
-    }),
-    methods: () => ({
-      [_connect]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.int], [core.int]),
-      [dartx.disconnect]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.connectNode]: dart.definiteFunctionType(dart.void, [web_audio.AudioNode], [core.int, core.int]),
-      [dartx.connectParam]: dart.definiteFunctionType(dart.void, [web_audio.AudioParam], [core.int])
-    })
-  });
-  dart.registerExtension(dart.global.AudioNode, web_audio.AudioNode);
-  dart.defineExtensionNames([
-    'getByteFrequencyData',
-    'getByteTimeDomainData',
-    'getFloatFrequencyData',
-    'getFloatTimeDomainData',
-    'fftSize',
-    'frequencyBinCount',
-    'maxDecibels',
-    'minDecibels',
-    'smoothingTimeConstant'
-  ]);
-  web_audio.AnalyserNode = class AnalyserNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.fftSize]() {
-      return this.fftSize;
-    }
-    set [dartx.fftSize](value) {
-      this.fftSize = value;
-    }
-    get [dartx.frequencyBinCount]() {
-      return this.frequencyBinCount;
-    }
-    get [dartx.maxDecibels]() {
-      return this.maxDecibels;
-    }
-    set [dartx.maxDecibels](value) {
-      this.maxDecibels = value;
-    }
-    get [dartx.minDecibels]() {
-      return this.minDecibels;
-    }
-    set [dartx.minDecibels](value) {
-      this.minDecibels = value;
-    }
-    get [dartx.smoothingTimeConstant]() {
-      return this.smoothingTimeConstant;
-    }
-    set [dartx.smoothingTimeConstant](value) {
-      this.smoothingTimeConstant = value;
-    }
-    [dartx.getByteFrequencyData](...args) {
-      return this.getByteFrequencyData.apply(this, args);
-    }
-    [dartx.getByteTimeDomainData](...args) {
-      return this.getByteTimeDomainData.apply(this, args);
-    }
-    [dartx.getFloatFrequencyData](...args) {
-      return this.getFloatFrequencyData.apply(this, args);
-    }
-    [dartx.getFloatTimeDomainData](...args) {
-      return this.getFloatTimeDomainData.apply(this, args);
-    }
-  };
-  dart.setSignature(web_audio.AnalyserNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AnalyserNode, [])}),
-    fields: () => ({
-      [dartx.fftSize]: core.int,
-      [dartx.frequencyBinCount]: core.int,
-      [dartx.maxDecibels]: core.num,
-      [dartx.minDecibels]: core.num,
-      [dartx.smoothingTimeConstant]: core.num
-    }),
-    methods: () => ({
-      [dartx.getByteFrequencyData]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List]),
-      [dartx.getByteTimeDomainData]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List]),
-      [dartx.getFloatFrequencyData]: dart.definiteFunctionType(dart.void, [typed_data.Float32List]),
-      [dartx.getFloatTimeDomainData]: dart.definiteFunctionType(dart.void, [typed_data.Float32List])
-    })
-  });
-  dart.registerExtension(dart.global.AnalyserNode, web_audio.AnalyserNode);
-  dart.registerExtension(dart.global.RealtimeAnalyserNode, web_audio.AnalyserNode);
-  dart.defineExtensionNames([
-    'getChannelData',
-    'duration',
-    'length',
-    'numberOfChannels',
-    'sampleRate'
-  ]);
-  web_audio.AudioBuffer = class AudioBuffer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.duration]() {
-      return this.duration;
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    get [dartx.numberOfChannels]() {
-      return this.numberOfChannels;
-    }
-    get [dartx.sampleRate]() {
-      return this.sampleRate;
-    }
-    [dartx.getChannelData](...args) {
-      return this.getChannelData.apply(this, args);
-    }
-  };
-  dart.setSignature(web_audio.AudioBuffer, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioBuffer, [])}),
-    fields: () => ({
-      [dartx.duration]: core.double,
-      [dartx.length]: core.int,
-      [dartx.numberOfChannels]: core.int,
-      [dartx.sampleRate]: core.double
-    }),
-    methods: () => ({[dartx.getChannelData]: dart.definiteFunctionType(typed_data.Float32List, [core.int])})
-  });
-  dart.registerExtension(dart.global.AudioBuffer, web_audio.AudioBuffer);
-  web_audio.AudioBufferCallback = dart.typedef('AudioBufferCallback', () => dart.functionType(dart.void, [web_audio.AudioBuffer]));
-  web_audio.AudioSourceNode = class AudioSourceNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_audio.AudioSourceNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioSourceNode, [])})
-  });
-  dart.registerExtension(dart.global.AudioSourceNode, web_audio.AudioSourceNode);
-  dart.defineExtensionNames([
-    'start',
-    'stop',
-    'onEnded',
-    'buffer',
-    'loop',
-    'loopEnd',
-    'loopStart',
-    'playbackRate'
-  ]);
-  web_audio.AudioBufferSourceNode = class AudioBufferSourceNode extends web_audio.AudioSourceNode {
-    [dartx.start](when, grainOffset, grainDuration) {
-      if (grainOffset === void 0) grainOffset = null;
-      if (grainDuration === void 0) grainDuration = null;
-      if (!!this.start) {
-        if (grainDuration != null) {
-          this.start(when, grainOffset, grainDuration);
-        } else if (grainOffset != null) {
-          this.start(when, grainOffset);
-        } else {
-          this.start(when);
-        }
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [__setter__$](...args) {
+    return this.__setter__.apply(this, args);
+  }
+  [dartx.appendItem](...args) {
+    return this.appendItem.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.consolidate](...args) {
+    return this.consolidate.apply(this, args);
+  }
+  [dartx.createSvgTransformFromMatrix](...args) {
+    return this.createSVGTransformFromMatrix.apply(this, args);
+  }
+  [dartx.getItem](...args) {
+    return this.getItem.apply(this, args);
+  }
+  [dartx.initialize](...args) {
+    return this.initialize.apply(this, args);
+  }
+  [dartx.insertItemBefore](...args) {
+    return this.insertItemBefore.apply(this, args);
+  }
+  [dartx.removeItem](...args) {
+    return this.removeItem.apply(this, args);
+  }
+  [dartx.replaceItem](...args) {
+    return this.replaceItem.apply(this, args);
+  }
+};
+svg$.TransformList[dart.implements] = () => [ListOfTransform()];
+dart.setSignature(svg$.TransformList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.TransformList, [])}),
+  fields: () => ({[dartx.numberOfItems]: core.int}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(svg$.Transform, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Transform]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Transform]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform]),
+    [dartx.consolidate]: dart.definiteFunctionType(svg$.Transform, []),
+    [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg$.Transform, [svg$.Matrix]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Transform, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Transform, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform, core.int])
+  })
+});
+dart.registerExtension(dart.global.SVGTransformList, svg$.TransformList);
+svg$.UnitTypes = class UnitTypes extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(svg$.UnitTypes, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.UnitTypes, [])}),
+  sfields: () => ({
+    SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: core.int,
+    SVG_UNIT_TYPE_UNKNOWN: core.int,
+    SVG_UNIT_TYPE_USERSPACEONUSE: core.int
+  })
+});
+svg$.UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
+svg$.UnitTypes.SVG_UNIT_TYPE_UNKNOWN = 0;
+svg$.UnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE = 1;
+dart.registerExtension(dart.global.SVGUnitTypes, svg$.UnitTypes);
+dart.defineExtensionNames([
+  'href'
+]);
+svg$.UriReference = class UriReference extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get href() {
+    return this[href$0];
+  }
+  set href(value) {
+    super.href = value;
+  }
+};
+const href$0 = Symbol(svg$.UriReference.name + "." + 'href'.toString());
+dart.setSignature(svg$.UriReference, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.UriReference, [])}),
+  fields: () => ({href: svg$.AnimatedString})
+});
+dart.defineExtensionMembers(svg$.UriReference, ['href']);
+dart.defineExtensionNames([
+  'height',
+  'width',
+  'x',
+  'y',
+  'href'
+]);
+svg$.UseElement = class UseElement extends svg$.GraphicsElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.UseElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("use"));
+  }
+  created() {
+    this[dartx.height] = null;
+    this[dartx.width] = null;
+    this[dartx.x] = null;
+    this[dartx.y] = null;
+    this[dartx.href] = null;
+    super.created();
+  }
+  get [dartx.height]() {
+    return this.height;
+  }
+  get [dartx.width]() {
+    return this.width;
+  }
+  get [dartx.x]() {
+    return this.x;
+  }
+  get [dartx.y]() {
+    return this.y;
+  }
+  get [dartx.href]() {
+    return this.href;
+  }
+};
+dart.defineNamedConstructor(svg$.UseElement, 'created');
+svg$.UseElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.UseElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.UseElement, []),
+    new: dart.definiteFunctionType(svg$.UseElement, []),
+    created: dart.definiteFunctionType(svg$.UseElement, [])
+  }),
+  fields: () => ({
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
+  })
+});
+dart.registerExtension(dart.global.SVGUseElement, svg$.UseElement);
+dart.defineExtensionNames([
+  'viewTarget',
+  'preserveAspectRatio',
+  'viewBox',
+  'zoomAndPan'
+]);
+svg$.ViewElement = class ViewElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$.ViewElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("view"));
+  }
+  created() {
+    this[dartx.viewTarget] = null;
+    this[dartx.preserveAspectRatio] = null;
+    this[dartx.viewBox] = null;
+    this[dartx.zoomAndPan] = null;
+    super.created();
+  }
+  get [dartx.viewTarget]() {
+    return this.viewTarget;
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.viewBox]() {
+    return this.viewBox;
+  }
+  get [dartx.zoomAndPan]() {
+    return this.zoomAndPan;
+  }
+  set [dartx.zoomAndPan](value) {
+    this.zoomAndPan = value;
+  }
+};
+dart.defineNamedConstructor(svg$.ViewElement, 'created');
+svg$.ViewElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
+dart.setSignature(svg$.ViewElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$.ViewElement, []),
+    new: dart.definiteFunctionType(svg$.ViewElement, []),
+    created: dart.definiteFunctionType(svg$.ViewElement, [])
+  }),
+  fields: () => ({
+    [dartx.viewTarget]: svg$.StringList,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
+    [dartx.zoomAndPan]: core.int
+  })
+});
+dart.registerExtension(dart.global.SVGViewElement, svg$.ViewElement);
+dart.defineExtensionNames([
+  'preserveAspectRatioString',
+  'transform',
+  'transformString',
+  'viewBoxString',
+  'viewTarget',
+  'viewTargetString',
+  'preserveAspectRatio',
+  'viewBox',
+  'zoomAndPan'
+]);
+svg$.ViewSpec = class ViewSpec extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.preserveAspectRatioString]() {
+    return this.preserveAspectRatioString;
+  }
+  get [dartx.transform]() {
+    return this.transform;
+  }
+  get [dartx.transformString]() {
+    return this.transformString;
+  }
+  get [dartx.viewBoxString]() {
+    return this.viewBoxString;
+  }
+  get [dartx.viewTarget]() {
+    return this.viewTarget;
+  }
+  get [dartx.viewTargetString]() {
+    return this.viewTargetString;
+  }
+  get [dartx.preserveAspectRatio]() {
+    return this.preserveAspectRatio;
+  }
+  get [dartx.viewBox]() {
+    return this.viewBox;
+  }
+  get [dartx.zoomAndPan]() {
+    return this.zoomAndPan;
+  }
+  set [dartx.zoomAndPan](value) {
+    this.zoomAndPan = value;
+  }
+};
+svg$.ViewSpec[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
+dart.setSignature(svg$.ViewSpec, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.ViewSpec, [])}),
+  fields: () => ({
+    [dartx.preserveAspectRatioString]: core.String,
+    [dartx.transform]: svg$.TransformList,
+    [dartx.transformString]: core.String,
+    [dartx.viewBoxString]: core.String,
+    [dartx.viewTarget]: svg$.SvgElement,
+    [dartx.viewTargetString]: core.String,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
+    [dartx.zoomAndPan]: core.int
+  })
+});
+dart.registerExtension(dart.global.SVGViewSpec, svg$.ViewSpec);
+dart.defineExtensionNames([
+  'zoomAndPan'
+]);
+svg$.ZoomAndPan = class ZoomAndPan extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get zoomAndPan() {
+    return this[zoomAndPan];
+  }
+  set zoomAndPan(value) {
+    this[zoomAndPan] = value;
+  }
+};
+const zoomAndPan = Symbol(svg$.ZoomAndPan.name + "." + 'zoomAndPan'.toString());
+dart.setSignature(svg$.ZoomAndPan, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.ZoomAndPan, [])}),
+  fields: () => ({zoomAndPan: core.int}),
+  sfields: () => ({
+    SVG_ZOOMANDPAN_DISABLE: core.int,
+    SVG_ZOOMANDPAN_MAGNIFY: core.int,
+    SVG_ZOOMANDPAN_UNKNOWN: core.int
+  })
+});
+dart.defineExtensionMembers(svg$.ZoomAndPan, ['zoomAndPan', 'zoomAndPan']);
+svg$.ZoomAndPan.SVG_ZOOMANDPAN_DISABLE = 1;
+svg$.ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY = 2;
+svg$.ZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN = 0;
+dart.defineExtensionNames([
+  'newScale',
+  'newTranslate',
+  'previousScale',
+  'previousTranslate',
+  'zoomRectScreen'
+]);
+svg$.ZoomEvent = class ZoomEvent extends html$.UIEvent {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.newScale]() {
+    return this.newScale;
+  }
+  get [dartx.newTranslate]() {
+    return this.newTranslate;
+  }
+  get [dartx.previousScale]() {
+    return this.previousScale;
+  }
+  get [dartx.previousTranslate]() {
+    return this.previousTranslate;
+  }
+  get [dartx.zoomRectScreen]() {
+    return this.zoomRectScreen;
+  }
+};
+dart.setSignature(svg$.ZoomEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.ZoomEvent, [])}),
+  fields: () => ({
+    [dartx.newScale]: core.double,
+    [dartx.newTranslate]: svg$.Point,
+    [dartx.previousScale]: core.double,
+    [dartx.previousTranslate]: svg$.Point,
+    [dartx.zoomRectScreen]: svg$.Rect
+  })
+});
+dart.registerExtension(dart.global.SVGZoomEvent, svg$.ZoomEvent);
+svg$._SVGCursorElement = class _SVGCursorElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$._SVGCursorElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("cursor"));
+  }
+  created() {
+    super.created();
+  }
+  static get supported() {
+    return dart.test(svg$.SvgElement.isTagSupported('cursor')) && svg$._SVGCursorElement.is(svg$.SvgElement.tag('cursor'));
+  }
+};
+dart.defineNamedConstructor(svg$._SVGCursorElement, 'created');
+svg$._SVGCursorElement[dart.implements] = () => [svg$.UriReference, svg$.Tests];
+dart.setSignature(svg$._SVGCursorElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$._SVGCursorElement, []),
+    new: dart.definiteFunctionType(svg$._SVGCursorElement, []),
+    created: dart.definiteFunctionType(svg$._SVGCursorElement, [])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.SVGCursorElement, svg$._SVGCursorElement);
+svg$._SVGFEDropShadowElement = class _SVGFEDropShadowElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$._SVGFEDropShadowElement, 'created');
+svg$._SVGFEDropShadowElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$._SVGFEDropShadowElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$._SVGFEDropShadowElement, []),
+    created: dart.definiteFunctionType(svg$._SVGFEDropShadowElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGFEDropShadowElement, svg$._SVGFEDropShadowElement);
+svg$._SVGMPathElement = class _SVGMPathElement extends svg$.SvgElement {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new() {
+    return svg$._SVGMPathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("mpath"));
+  }
+  created() {
+    super.created();
+  }
+};
+dart.defineNamedConstructor(svg$._SVGMPathElement, 'created');
+svg$._SVGMPathElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$._SVGMPathElement, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(svg$._SVGMPathElement, []),
+    new: dart.definiteFunctionType(svg$._SVGMPathElement, []),
+    created: dart.definiteFunctionType(svg$._SVGMPathElement, [])
+  })
+});
+dart.registerExtension(dart.global.SVGMPathElement, svg$._SVGMPathElement);
+const _connect = Symbol('_connect');
+dart.defineExtensionNames([
+  'disconnect',
+  'connectNode',
+  'connectParam',
+  'channelCount',
+  'channelCountMode',
+  'channelInterpretation',
+  'context',
+  'numberOfInputs',
+  'numberOfOutputs'
+]);
+web_audio.AudioNode = class AudioNode extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.channelCount]() {
+    return this.channelCount;
+  }
+  set [dartx.channelCount](value) {
+    this.channelCount = value;
+  }
+  get [dartx.channelCountMode]() {
+    return this.channelCountMode;
+  }
+  set [dartx.channelCountMode](value) {
+    this.channelCountMode = value;
+  }
+  get [dartx.channelInterpretation]() {
+    return this.channelInterpretation;
+  }
+  set [dartx.channelInterpretation](value) {
+    this.channelInterpretation = value;
+  }
+  get [dartx.context]() {
+    return this.context;
+  }
+  get [dartx.numberOfInputs]() {
+    return this.numberOfInputs;
+  }
+  get [dartx.numberOfOutputs]() {
+    return this.numberOfOutputs;
+  }
+  [_connect](...args) {
+    return this.connect.apply(this, args);
+  }
+  [dartx.disconnect](...args) {
+    return this.disconnect.apply(this, args);
+  }
+  [dartx.connectNode](destination, output, input) {
+    if (output === void 0) output = 0;
+    if (input === void 0) input = 0;
+    return this[_connect](destination, output, input);
+  }
+  [dartx.connectParam](destination, output) {
+    if (output === void 0) output = 0;
+    return this[_connect](destination, output);
+  }
+};
+dart.setSignature(web_audio.AudioNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioNode, [])}),
+  fields: () => ({
+    [dartx.channelCount]: core.int,
+    [dartx.channelCountMode]: core.String,
+    [dartx.channelInterpretation]: core.String,
+    [dartx.context]: web_audio.AudioContext,
+    [dartx.numberOfInputs]: core.int,
+    [dartx.numberOfOutputs]: core.int
+  }),
+  methods: () => ({
+    [_connect]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.int], [core.int]),
+    [dartx.disconnect]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.connectNode]: dart.definiteFunctionType(dart.void, [web_audio.AudioNode], [core.int, core.int]),
+    [dartx.connectParam]: dart.definiteFunctionType(dart.void, [web_audio.AudioParam], [core.int])
+  })
+});
+dart.registerExtension(dart.global.AudioNode, web_audio.AudioNode);
+dart.defineExtensionNames([
+  'getByteFrequencyData',
+  'getByteTimeDomainData',
+  'getFloatFrequencyData',
+  'getFloatTimeDomainData',
+  'fftSize',
+  'frequencyBinCount',
+  'maxDecibels',
+  'minDecibels',
+  'smoothingTimeConstant'
+]);
+web_audio.AnalyserNode = class AnalyserNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.fftSize]() {
+    return this.fftSize;
+  }
+  set [dartx.fftSize](value) {
+    this.fftSize = value;
+  }
+  get [dartx.frequencyBinCount]() {
+    return this.frequencyBinCount;
+  }
+  get [dartx.maxDecibels]() {
+    return this.maxDecibels;
+  }
+  set [dartx.maxDecibels](value) {
+    this.maxDecibels = value;
+  }
+  get [dartx.minDecibels]() {
+    return this.minDecibels;
+  }
+  set [dartx.minDecibels](value) {
+    this.minDecibels = value;
+  }
+  get [dartx.smoothingTimeConstant]() {
+    return this.smoothingTimeConstant;
+  }
+  set [dartx.smoothingTimeConstant](value) {
+    this.smoothingTimeConstant = value;
+  }
+  [dartx.getByteFrequencyData](...args) {
+    return this.getByteFrequencyData.apply(this, args);
+  }
+  [dartx.getByteTimeDomainData](...args) {
+    return this.getByteTimeDomainData.apply(this, args);
+  }
+  [dartx.getFloatFrequencyData](...args) {
+    return this.getFloatFrequencyData.apply(this, args);
+  }
+  [dartx.getFloatTimeDomainData](...args) {
+    return this.getFloatTimeDomainData.apply(this, args);
+  }
+};
+dart.setSignature(web_audio.AnalyserNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AnalyserNode, [])}),
+  fields: () => ({
+    [dartx.fftSize]: core.int,
+    [dartx.frequencyBinCount]: core.int,
+    [dartx.maxDecibels]: core.num,
+    [dartx.minDecibels]: core.num,
+    [dartx.smoothingTimeConstant]: core.num
+  }),
+  methods: () => ({
+    [dartx.getByteFrequencyData]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List]),
+    [dartx.getByteTimeDomainData]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List]),
+    [dartx.getFloatFrequencyData]: dart.definiteFunctionType(dart.void, [typed_data.Float32List]),
+    [dartx.getFloatTimeDomainData]: dart.definiteFunctionType(dart.void, [typed_data.Float32List])
+  })
+});
+dart.registerExtension(dart.global.AnalyserNode, web_audio.AnalyserNode);
+dart.registerExtension(dart.global.RealtimeAnalyserNode, web_audio.AnalyserNode);
+dart.defineExtensionNames([
+  'getChannelData',
+  'duration',
+  'length',
+  'numberOfChannels',
+  'sampleRate'
+]);
+web_audio.AudioBuffer = class AudioBuffer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.duration]() {
+    return this.duration;
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  get [dartx.numberOfChannels]() {
+    return this.numberOfChannels;
+  }
+  get [dartx.sampleRate]() {
+    return this.sampleRate;
+  }
+  [dartx.getChannelData](...args) {
+    return this.getChannelData.apply(this, args);
+  }
+};
+dart.setSignature(web_audio.AudioBuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioBuffer, [])}),
+  fields: () => ({
+    [dartx.duration]: core.double,
+    [dartx.length]: core.int,
+    [dartx.numberOfChannels]: core.int,
+    [dartx.sampleRate]: core.double
+  }),
+  methods: () => ({[dartx.getChannelData]: dart.definiteFunctionType(typed_data.Float32List, [core.int])})
+});
+dart.registerExtension(dart.global.AudioBuffer, web_audio.AudioBuffer);
+web_audio.AudioBufferCallback = dart.typedef('AudioBufferCallback', () => dart.functionType(dart.void, [web_audio.AudioBuffer]));
+web_audio.AudioSourceNode = class AudioSourceNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_audio.AudioSourceNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioSourceNode, [])})
+});
+dart.registerExtension(dart.global.AudioSourceNode, web_audio.AudioSourceNode);
+dart.defineExtensionNames([
+  'start',
+  'stop',
+  'onEnded',
+  'buffer',
+  'loop',
+  'loopEnd',
+  'loopStart',
+  'playbackRate'
+]);
+web_audio.AudioBufferSourceNode = class AudioBufferSourceNode extends web_audio.AudioSourceNode {
+  [dartx.start](when, grainOffset, grainDuration) {
+    if (grainOffset === void 0) grainOffset = null;
+    if (grainDuration === void 0) grainDuration = null;
+    if (!!this.start) {
+      if (grainDuration != null) {
+        this.start(when, grainOffset, grainDuration);
+      } else if (grainOffset != null) {
+        this.start(when, grainOffset);
       } else {
-        if (grainDuration != null) {
-          this.noteOn(when, grainOffset, grainDuration);
-        } else if (grainOffset != null) {
-          this.noteOn(when, grainOffset);
-        } else {
-          this.noteOn(when);
-        }
+        this.start(when);
       }
-    }
-    [dartx.stop](when) {
-      if (!!this.stop) {
-        this.stop(when);
+    } else {
+      if (grainDuration != null) {
+        this.noteOn(when, grainOffset, grainDuration);
+      } else if (grainOffset != null) {
+        this.noteOn(when, grainOffset);
       } else {
-        this.noteOff(when);
+        this.noteOn(when);
       }
     }
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.stop](when) {
+    if (!!this.stop) {
+      this.stop(when);
+    } else {
+      this.noteOff(when);
     }
-    get [dartx.buffer]() {
-      return this.buffer;
+  }
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.buffer]() {
+    return this.buffer;
+  }
+  set [dartx.buffer](value) {
+    this.buffer = value;
+  }
+  get [dartx.loop]() {
+    return this.loop;
+  }
+  set [dartx.loop](value) {
+    this.loop = value;
+  }
+  get [dartx.loopEnd]() {
+    return this.loopEnd;
+  }
+  set [dartx.loopEnd](value) {
+    this.loopEnd = value;
+  }
+  get [dartx.loopStart]() {
+    return this.loopStart;
+  }
+  set [dartx.loopStart](value) {
+    this.loopStart = value;
+  }
+  get [dartx.playbackRate]() {
+    return this.playbackRate;
+  }
+  get [dartx.onEnded]() {
+    return web_audio.AudioBufferSourceNode.endedEvent.forTarget(this);
+  }
+};
+dart.setSignature(web_audio.AudioBufferSourceNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioBufferSourceNode, [])}),
+  fields: () => ({
+    [dartx.buffer]: web_audio.AudioBuffer,
+    [dartx.loop]: core.bool,
+    [dartx.loopEnd]: core.num,
+    [dartx.loopStart]: core.num,
+    [dartx.playbackRate]: web_audio.AudioParam
+  }),
+  getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.start]: dart.definiteFunctionType(dart.void, [core.num], [core.num, core.num]),
+    [dartx.stop]: dart.definiteFunctionType(dart.void, [core.num])
+  }),
+  sfields: () => ({endedEvent: EventStreamProviderOfEvent()})
+});
+web_audio.AudioBufferSourceNode.endedEvent = dart.const(new (EventStreamProviderOfEvent())('ended'));
+dart.registerExtension(dart.global.AudioBufferSourceNode, web_audio.AudioBufferSourceNode);
+const _decodeAudioData = Symbol('_decodeAudioData');
+dart.defineExtensionNames([
+  'createAnalyser',
+  'createBiquadFilter',
+  'createBuffer',
+  'createBufferSource',
+  'createChannelMerger',
+  'createChannelSplitter',
+  'createConvolver',
+  'createDelay',
+  'createDynamicsCompressor',
+  'createMediaElementSource',
+  'createMediaStreamDestination',
+  'createMediaStreamSource',
+  'createOscillator',
+  'createPanner',
+  'createPeriodicWave',
+  'createWaveShaper',
+  'startRendering',
+  'onComplete',
+  'createGain',
+  'createScriptProcessor',
+  'decodeAudioData',
+  'currentTime',
+  'destination',
+  'listener',
+  'sampleRate'
+]);
+web_audio.AudioContext = class AudioContext extends html$.EventTarget {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!(window.AudioContext || window.webkitAudioContext);
+  }
+  get [dartx.currentTime]() {
+    return this.currentTime;
+  }
+  get [dartx.destination]() {
+    return this.destination;
+  }
+  get [dartx.listener]() {
+    return this.listener;
+  }
+  get [dartx.sampleRate]() {
+    return this.sampleRate;
+  }
+  [dartx.createAnalyser](...args) {
+    return this.createAnalyser.apply(this, args);
+  }
+  [dartx.createBiquadFilter](...args) {
+    return this.createBiquadFilter.apply(this, args);
+  }
+  [dartx.createBuffer](...args) {
+    return this.createBuffer.apply(this, args);
+  }
+  [dartx.createBufferSource](...args) {
+    return this.createBufferSource.apply(this, args);
+  }
+  [dartx.createChannelMerger](...args) {
+    return this.createChannelMerger.apply(this, args);
+  }
+  [dartx.createChannelSplitter](...args) {
+    return this.createChannelSplitter.apply(this, args);
+  }
+  [dartx.createConvolver](...args) {
+    return this.createConvolver.apply(this, args);
+  }
+  [dartx.createDelay](...args) {
+    return this.createDelay.apply(this, args);
+  }
+  [dartx.createDynamicsCompressor](...args) {
+    return this.createDynamicsCompressor.apply(this, args);
+  }
+  [dartx.createMediaElementSource](...args) {
+    return this.createMediaElementSource.apply(this, args);
+  }
+  [dartx.createMediaStreamDestination](...args) {
+    return this.createMediaStreamDestination.apply(this, args);
+  }
+  [dartx.createMediaStreamSource](...args) {
+    return this.createMediaStreamSource.apply(this, args);
+  }
+  [dartx.createOscillator](...args) {
+    return this.createOscillator.apply(this, args);
+  }
+  [dartx.createPanner](...args) {
+    return this.createPanner.apply(this, args);
+  }
+  [dartx.createPeriodicWave](...args) {
+    return this.createPeriodicWave.apply(this, args);
+  }
+  [dartx.createWaveShaper](...args) {
+    return this.createWaveShaper.apply(this, args);
+  }
+  [_decodeAudioData](...args) {
+    return this.decodeAudioData.apply(this, args);
+  }
+  [dartx.startRendering](...args) {
+    return this.startRendering.apply(this, args);
+  }
+  get [dartx.onComplete]() {
+    return web_audio.AudioContext.completeEvent.forTarget(this);
+  }
+  static new() {
+    return new (window.AudioContext || window.webkitAudioContext)();
+  }
+  [dartx.createGain]() {
+    if (this.createGain !== undefined) {
+      return this.createGain();
+    } else {
+      return this.createGainNode();
     }
-    set [dartx.buffer](value) {
-      this.buffer = value;
+  }
+  [dartx.createScriptProcessor](bufferSize, numberOfInputChannels, numberOfOutputChannels) {
+    if (numberOfInputChannels === void 0) numberOfInputChannels = null;
+    if (numberOfOutputChannels === void 0) numberOfOutputChannels = null;
+    let func = this.createScriptProcessor || this.createJavaScriptNode;
+    if (numberOfOutputChannels != null) {
+      return func.call(this, bufferSize, numberOfInputChannels, numberOfOutputChannels);
+    } else if (numberOfInputChannels != null) {
+      return func.call(this, bufferSize, numberOfInputChannels);
+    } else {
+      return func.call(this, bufferSize);
     }
-    get [dartx.loop]() {
-      return this.loop;
-    }
-    set [dartx.loop](value) {
-      this.loop = value;
-    }
-    get [dartx.loopEnd]() {
-      return this.loopEnd;
-    }
-    set [dartx.loopEnd](value) {
-      this.loopEnd = value;
-    }
-    get [dartx.loopStart]() {
-      return this.loopStart;
-    }
-    set [dartx.loopStart](value) {
-      this.loopStart = value;
-    }
-    get [dartx.playbackRate]() {
-      return this.playbackRate;
-    }
-    get [dartx.onEnded]() {
-      return web_audio.AudioBufferSourceNode.endedEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(web_audio.AudioBufferSourceNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioBufferSourceNode, [])}),
-    fields: () => ({
-      [dartx.buffer]: web_audio.AudioBuffer,
-      [dartx.loop]: core.bool,
-      [dartx.loopEnd]: core.num,
-      [dartx.loopStart]: core.num,
-      [dartx.playbackRate]: web_audio.AudioParam
-    }),
-    getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.start]: dart.definiteFunctionType(dart.void, [core.num], [core.num, core.num]),
-      [dartx.stop]: dart.definiteFunctionType(dart.void, [core.num])
-    }),
-    sfields: () => ({endedEvent: EventStreamProviderOfEvent()})
-  });
-  web_audio.AudioBufferSourceNode.endedEvent = dart.const(new (EventStreamProviderOfEvent())('ended'));
-  dart.registerExtension(dart.global.AudioBufferSourceNode, web_audio.AudioBufferSourceNode);
-  const _decodeAudioData = Symbol('_decodeAudioData');
-  dart.defineExtensionNames([
-    'createAnalyser',
-    'createBiquadFilter',
-    'createBuffer',
-    'createBufferSource',
-    'createChannelMerger',
-    'createChannelSplitter',
-    'createConvolver',
-    'createDelay',
-    'createDynamicsCompressor',
-    'createMediaElementSource',
-    'createMediaStreamDestination',
-    'createMediaStreamSource',
-    'createOscillator',
-    'createPanner',
-    'createPeriodicWave',
-    'createWaveShaper',
-    'startRendering',
-    'onComplete',
-    'createGain',
-    'createScriptProcessor',
-    'decodeAudioData',
-    'currentTime',
-    'destination',
-    'listener',
-    'sampleRate'
-  ]);
-  web_audio.AudioContext = class AudioContext extends html$.EventTarget {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!(window.AudioContext || window.webkitAudioContext);
-    }
-    get [dartx.currentTime]() {
-      return this.currentTime;
-    }
-    get [dartx.destination]() {
-      return this.destination;
-    }
-    get [dartx.listener]() {
-      return this.listener;
-    }
-    get [dartx.sampleRate]() {
-      return this.sampleRate;
-    }
-    [dartx.createAnalyser](...args) {
-      return this.createAnalyser.apply(this, args);
-    }
-    [dartx.createBiquadFilter](...args) {
-      return this.createBiquadFilter.apply(this, args);
-    }
-    [dartx.createBuffer](...args) {
-      return this.createBuffer.apply(this, args);
-    }
-    [dartx.createBufferSource](...args) {
-      return this.createBufferSource.apply(this, args);
-    }
-    [dartx.createChannelMerger](...args) {
-      return this.createChannelMerger.apply(this, args);
-    }
-    [dartx.createChannelSplitter](...args) {
-      return this.createChannelSplitter.apply(this, args);
-    }
-    [dartx.createConvolver](...args) {
-      return this.createConvolver.apply(this, args);
-    }
-    [dartx.createDelay](...args) {
-      return this.createDelay.apply(this, args);
-    }
-    [dartx.createDynamicsCompressor](...args) {
-      return this.createDynamicsCompressor.apply(this, args);
-    }
-    [dartx.createMediaElementSource](...args) {
-      return this.createMediaElementSource.apply(this, args);
-    }
-    [dartx.createMediaStreamDestination](...args) {
-      return this.createMediaStreamDestination.apply(this, args);
-    }
-    [dartx.createMediaStreamSource](...args) {
-      return this.createMediaStreamSource.apply(this, args);
-    }
-    [dartx.createOscillator](...args) {
-      return this.createOscillator.apply(this, args);
-    }
-    [dartx.createPanner](...args) {
-      return this.createPanner.apply(this, args);
-    }
-    [dartx.createPeriodicWave](...args) {
-      return this.createPeriodicWave.apply(this, args);
-    }
-    [dartx.createWaveShaper](...args) {
-      return this.createWaveShaper.apply(this, args);
-    }
-    [_decodeAudioData](...args) {
-      return this.decodeAudioData.apply(this, args);
-    }
-    [dartx.startRendering](...args) {
-      return this.startRendering.apply(this, args);
-    }
-    get [dartx.onComplete]() {
-      return web_audio.AudioContext.completeEvent.forTarget(this);
-    }
-    static new() {
-      return new (window.AudioContext || window.webkitAudioContext)();
-    }
-    [dartx.createGain]() {
-      if (this.createGain !== undefined) {
-        return this.createGain();
+  }
+  [dartx.decodeAudioData](audioData) {
+    let completer = CompleterOfAudioBuffer().new();
+    this[_decodeAudioData](audioData, dart.fn(value => {
+      completer.complete(value);
+    }, AudioBufferToNull()), dart.fn(error => {
+      if (error == null) {
+        completer.completeError('');
       } else {
-        return this.createGainNode();
+        completer.completeError(error);
       }
-    }
-    [dartx.createScriptProcessor](bufferSize, numberOfInputChannels, numberOfOutputChannels) {
-      if (numberOfInputChannels === void 0) numberOfInputChannels = null;
-      if (numberOfOutputChannels === void 0) numberOfOutputChannels = null;
-      let func = this.createScriptProcessor || this.createJavaScriptNode;
-      if (numberOfOutputChannels != null) {
-        return func.call(this, bufferSize, numberOfInputChannels, numberOfOutputChannels);
-      } else if (numberOfInputChannels != null) {
-        return func.call(this, bufferSize, numberOfInputChannels);
-      } else {
-        return func.call(this, bufferSize);
-      }
-    }
-    [dartx.decodeAudioData](audioData) {
-      let completer = CompleterOfAudioBuffer().new();
-      this[_decodeAudioData](audioData, dart.fn(value => {
-        completer.complete(value);
-      }, AudioBufferToNull()), dart.fn(error => {
-        if (error == null) {
-          completer.completeError('');
-        } else {
-          completer.completeError(error);
-        }
-      }, AudioBufferToNull()));
-      return completer.future;
-    }
-  };
-  dart.setSignature(web_audio.AudioContext, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(web_audio.AudioContext, []),
-      new: dart.definiteFunctionType(web_audio.AudioContext, [])
-    }),
-    fields: () => ({
-      [dartx.currentTime]: core.double,
-      [dartx.destination]: web_audio.AudioDestinationNode,
-      [dartx.listener]: web_audio.AudioListener,
-      [dartx.sampleRate]: core.double
-    }),
-    getters: () => ({[dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.createAnalyser]: dart.definiteFunctionType(web_audio.AnalyserNode, []),
-      [dartx.createBiquadFilter]: dart.definiteFunctionType(web_audio.BiquadFilterNode, []),
-      [dartx.createBuffer]: dart.definiteFunctionType(web_audio.AudioBuffer, [core.int, core.int, core.num]),
-      [dartx.createBufferSource]: dart.definiteFunctionType(web_audio.AudioBufferSourceNode, []),
-      [dartx.createChannelMerger]: dart.definiteFunctionType(web_audio.ChannelMergerNode, [], [core.int]),
-      [dartx.createChannelSplitter]: dart.definiteFunctionType(web_audio.ChannelSplitterNode, [], [core.int]),
-      [dartx.createConvolver]: dart.definiteFunctionType(web_audio.ConvolverNode, []),
-      [dartx.createDelay]: dart.definiteFunctionType(web_audio.DelayNode, [], [core.num]),
-      [dartx.createDynamicsCompressor]: dart.definiteFunctionType(web_audio.DynamicsCompressorNode, []),
-      [dartx.createMediaElementSource]: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [html$.MediaElement]),
-      [dartx.createMediaStreamDestination]: dart.definiteFunctionType(web_audio.MediaStreamAudioDestinationNode, []),
-      [dartx.createMediaStreamSource]: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [html$.MediaStream]),
-      [dartx.createOscillator]: dart.definiteFunctionType(web_audio.OscillatorNode, []),
-      [dartx.createPanner]: dart.definiteFunctionType(web_audio.PannerNode, []),
-      [dartx.createPeriodicWave]: dart.definiteFunctionType(web_audio.PeriodicWave, [typed_data.Float32List, typed_data.Float32List]),
-      [dartx.createWaveShaper]: dart.definiteFunctionType(web_audio.WaveShaperNode, []),
-      [_decodeAudioData]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer, web_audio.AudioBufferCallback], [web_audio.AudioBufferCallback]),
-      [dartx.startRendering]: dart.definiteFunctionType(dart.void, []),
-      [dartx.createGain]: dart.definiteFunctionType(web_audio.GainNode, []),
-      [dartx.createScriptProcessor]: dart.definiteFunctionType(web_audio.ScriptProcessorNode, [core.int], [core.int, core.int]),
-      [dartx.decodeAudioData]: dart.definiteFunctionType(async.Future$(web_audio.AudioBuffer), [typed_data.ByteBuffer])
-    }),
-    sfields: () => ({completeEvent: EventStreamProviderOfEvent()}),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  web_audio.AudioContext.completeEvent = dart.const(new (EventStreamProviderOfEvent())('complete'));
-  dart.registerExtension(dart.global.AudioContext, web_audio.AudioContext);
-  dart.registerExtension(dart.global.webkitAudioContext, web_audio.AudioContext);
-  dart.defineExtensionNames([
-    'maxChannelCount'
-  ]);
-  web_audio.AudioDestinationNode = class AudioDestinationNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.maxChannelCount]() {
-      return this.maxChannelCount;
-    }
-  };
-  dart.setSignature(web_audio.AudioDestinationNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioDestinationNode, [])}),
-    fields: () => ({[dartx.maxChannelCount]: core.int})
-  });
-  dart.registerExtension(dart.global.AudioDestinationNode, web_audio.AudioDestinationNode);
-  dart.defineExtensionNames([
-    'setOrientation',
-    'setPosition',
-    'setVelocity',
-    'dopplerFactor',
-    'speedOfSound'
-  ]);
-  web_audio.AudioListener = class AudioListener extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.dopplerFactor]() {
-      return this.dopplerFactor;
-    }
-    set [dartx.dopplerFactor](value) {
-      this.dopplerFactor = value;
-    }
-    get [dartx.speedOfSound]() {
-      return this.speedOfSound;
-    }
-    set [dartx.speedOfSound](value) {
-      this.speedOfSound = value;
-    }
-    [dartx.setOrientation](...args) {
-      return this.setOrientation.apply(this, args);
-    }
-    [dartx.setPosition](...args) {
-      return this.setPosition.apply(this, args);
-    }
-    [dartx.setVelocity](...args) {
-      return this.setVelocity.apply(this, args);
-    }
-  };
-  dart.setSignature(web_audio.AudioListener, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioListener, [])}),
-    fields: () => ({
-      [dartx.dopplerFactor]: core.num,
-      [dartx.speedOfSound]: core.num
-    }),
-    methods: () => ({
-      [dartx.setOrientation]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
-      [dartx.setPosition]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
-      [dartx.setVelocity]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num])
-    })
-  });
-  dart.registerExtension(dart.global.AudioListener, web_audio.AudioListener);
-  dart.defineExtensionNames([
-    'cancelScheduledValues',
-    'exponentialRampToValueAtTime',
-    'linearRampToValueAtTime',
-    'setTargetAtTime',
-    'setValueAtTime',
-    'setValueCurveAtTime',
-    'defaultValue',
-    'value'
-  ]);
-  web_audio.AudioParam = class AudioParam extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.defaultValue]() {
-      return this.defaultValue;
-    }
-    get [dartx.value]() {
-      return this.value;
-    }
-    set [dartx.value](value) {
-      this.value = value;
-    }
-    [dartx.cancelScheduledValues](...args) {
-      return this.cancelScheduledValues.apply(this, args);
-    }
-    [dartx.exponentialRampToValueAtTime](...args) {
-      return this.exponentialRampToValueAtTime.apply(this, args);
-    }
-    [dartx.linearRampToValueAtTime](...args) {
-      return this.linearRampToValueAtTime.apply(this, args);
-    }
-    [dartx.setTargetAtTime](...args) {
-      return this.setTargetAtTime.apply(this, args);
-    }
-    [dartx.setValueAtTime](...args) {
-      return this.setValueAtTime.apply(this, args);
-    }
-    [dartx.setValueCurveAtTime](...args) {
-      return this.setValueCurveAtTime.apply(this, args);
-    }
-  };
-  dart.setSignature(web_audio.AudioParam, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioParam, [])}),
-    fields: () => ({
-      [dartx.defaultValue]: core.double,
-      [dartx.value]: core.num
-    }),
-    methods: () => ({
-      [dartx.cancelScheduledValues]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.exponentialRampToValueAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.linearRampToValueAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.setTargetAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
-      [dartx.setValueAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.setValueCurveAtTime]: dart.definiteFunctionType(dart.void, [typed_data.Float32List, core.num, core.num])
-    })
-  });
-  dart.registerExtension(dart.global.AudioParam, web_audio.AudioParam);
-  dart.defineExtensionNames([
-    'inputBuffer',
-    'outputBuffer',
-    'playbackTime'
-  ]);
-  web_audio.AudioProcessingEvent = class AudioProcessingEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.inputBuffer]() {
-      return this.inputBuffer;
-    }
-    get [dartx.outputBuffer]() {
-      return this.outputBuffer;
-    }
-    get [dartx.playbackTime]() {
-      return this.playbackTime;
-    }
-  };
-  dart.setSignature(web_audio.AudioProcessingEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioProcessingEvent, [])}),
-    fields: () => ({
-      [dartx.inputBuffer]: web_audio.AudioBuffer,
-      [dartx.outputBuffer]: web_audio.AudioBuffer,
-      [dartx.playbackTime]: core.double
-    })
-  });
-  dart.registerExtension(dart.global.AudioProcessingEvent, web_audio.AudioProcessingEvent);
-  dart.defineExtensionNames([
-    'getFrequencyResponse',
-    'Q',
-    'detune',
-    'frequency',
-    'gain',
-    'type'
-  ]);
-  web_audio.BiquadFilterNode = class BiquadFilterNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.Q]() {
-      return this.Q;
-    }
-    get [dartx.detune]() {
-      return this.detune;
-    }
-    get [dartx.frequency]() {
-      return this.frequency;
-    }
-    get [dartx.gain]() {
-      return this.gain;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    [dartx.getFrequencyResponse](...args) {
-      return this.getFrequencyResponse.apply(this, args);
-    }
-  };
-  dart.setSignature(web_audio.BiquadFilterNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.BiquadFilterNode, [])}),
-    fields: () => ({
-      [dartx.Q]: web_audio.AudioParam,
-      [dartx.detune]: web_audio.AudioParam,
-      [dartx.frequency]: web_audio.AudioParam,
-      [dartx.gain]: web_audio.AudioParam,
-      [dartx.type]: core.String
-    }),
-    methods: () => ({[dartx.getFrequencyResponse]: dart.definiteFunctionType(dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List])})
-  });
-  dart.registerExtension(dart.global.BiquadFilterNode, web_audio.BiquadFilterNode);
-  web_audio.ChannelMergerNode = class ChannelMergerNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_audio.ChannelMergerNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.ChannelMergerNode, [])})
-  });
-  dart.registerExtension(dart.global.ChannelMergerNode, web_audio.ChannelMergerNode);
-  dart.registerExtension(dart.global.AudioChannelMerger, web_audio.ChannelMergerNode);
-  web_audio.ChannelSplitterNode = class ChannelSplitterNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_audio.ChannelSplitterNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.ChannelSplitterNode, [])})
-  });
-  dart.registerExtension(dart.global.ChannelSplitterNode, web_audio.ChannelSplitterNode);
-  dart.registerExtension(dart.global.AudioChannelSplitter, web_audio.ChannelSplitterNode);
-  dart.defineExtensionNames([
-    'buffer',
-    'normalize'
-  ]);
-  web_audio.ConvolverNode = class ConvolverNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.buffer]() {
-      return this.buffer;
-    }
-    set [dartx.buffer](value) {
-      this.buffer = value;
-    }
-    get [dartx.normalize]() {
-      return this.normalize;
-    }
-    set [dartx.normalize](value) {
-      this.normalize = value;
-    }
-  };
-  dart.setSignature(web_audio.ConvolverNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.ConvolverNode, [])}),
-    fields: () => ({
-      [dartx.buffer]: web_audio.AudioBuffer,
-      [dartx.normalize]: core.bool
-    })
-  });
-  dart.registerExtension(dart.global.ConvolverNode, web_audio.ConvolverNode);
-  dart.defineExtensionNames([
-    'delayTime'
-  ]);
-  web_audio.DelayNode = class DelayNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.delayTime]() {
-      return this.delayTime;
-    }
-  };
-  dart.setSignature(web_audio.DelayNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.DelayNode, [])}),
-    fields: () => ({[dartx.delayTime]: web_audio.AudioParam})
-  });
-  dart.registerExtension(dart.global.DelayNode, web_audio.DelayNode);
-  dart.defineExtensionNames([
-    'attack',
-    'knee',
-    'ratio',
-    'reduction',
-    'release',
-    'threshold'
-  ]);
-  web_audio.DynamicsCompressorNode = class DynamicsCompressorNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.attack]() {
-      return this.attack;
-    }
-    get [dartx.knee]() {
-      return this.knee;
-    }
-    get [dartx.ratio]() {
-      return this.ratio;
-    }
-    get [dartx.reduction]() {
-      return this.reduction;
-    }
-    get [dartx.release]() {
-      return this.release;
-    }
-    get [dartx.threshold]() {
-      return this.threshold;
-    }
-  };
-  dart.setSignature(web_audio.DynamicsCompressorNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.DynamicsCompressorNode, [])}),
-    fields: () => ({
-      [dartx.attack]: web_audio.AudioParam,
-      [dartx.knee]: web_audio.AudioParam,
-      [dartx.ratio]: web_audio.AudioParam,
-      [dartx.reduction]: web_audio.AudioParam,
-      [dartx.release]: web_audio.AudioParam,
-      [dartx.threshold]: web_audio.AudioParam
-    })
-  });
-  dart.registerExtension(dart.global.DynamicsCompressorNode, web_audio.DynamicsCompressorNode);
-  dart.defineExtensionNames([
-    'gain'
-  ]);
-  web_audio.GainNode = class GainNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.gain]() {
-      return this.gain;
-    }
-  };
-  dart.setSignature(web_audio.GainNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.GainNode, [])}),
-    fields: () => ({[dartx.gain]: web_audio.AudioParam})
-  });
-  dart.registerExtension(dart.global.GainNode, web_audio.GainNode);
-  dart.registerExtension(dart.global.AudioGainNode, web_audio.GainNode);
-  dart.defineExtensionNames([
-    'mediaElement'
-  ]);
-  web_audio.MediaElementAudioSourceNode = class MediaElementAudioSourceNode extends web_audio.AudioSourceNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.mediaElement]() {
-      return this.mediaElement;
-    }
-  };
-  dart.setSignature(web_audio.MediaElementAudioSourceNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [])}),
-    fields: () => ({[dartx.mediaElement]: html$.MediaElement})
-  });
-  dart.registerExtension(dart.global.MediaElementAudioSourceNode, web_audio.MediaElementAudioSourceNode);
-  dart.defineExtensionNames([
-    'stream'
-  ]);
-  web_audio.MediaStreamAudioDestinationNode = class MediaStreamAudioDestinationNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.stream]() {
-      return this.stream;
-    }
-  };
-  dart.setSignature(web_audio.MediaStreamAudioDestinationNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaStreamAudioDestinationNode, [])}),
-    fields: () => ({[dartx.stream]: html$.MediaStream})
-  });
-  dart.registerExtension(dart.global.MediaStreamAudioDestinationNode, web_audio.MediaStreamAudioDestinationNode);
-  dart.defineExtensionNames([
-    'mediaStream'
-  ]);
-  web_audio.MediaStreamAudioSourceNode = class MediaStreamAudioSourceNode extends web_audio.AudioSourceNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.mediaStream]() {
-      return this.mediaStream;
-    }
-  };
-  dart.setSignature(web_audio.MediaStreamAudioSourceNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [])}),
-    fields: () => ({[dartx.mediaStream]: html$.MediaStream})
-  });
-  dart.registerExtension(dart.global.MediaStreamAudioSourceNode, web_audio.MediaStreamAudioSourceNode);
-  dart.defineExtensionNames([
-    'renderedBuffer'
-  ]);
-  web_audio.OfflineAudioCompletionEvent = class OfflineAudioCompletionEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.renderedBuffer]() {
-      return this.renderedBuffer;
-    }
-  };
-  dart.setSignature(web_audio.OfflineAudioCompletionEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.OfflineAudioCompletionEvent, [])}),
-    fields: () => ({[dartx.renderedBuffer]: web_audio.AudioBuffer})
-  });
-  dart.registerExtension(dart.global.OfflineAudioCompletionEvent, web_audio.OfflineAudioCompletionEvent);
-  web_audio.OfflineAudioContext = class OfflineAudioContext extends web_audio.AudioContext {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static new(numberOfChannels, numberOfFrames, sampleRate) {
-      return web_audio.OfflineAudioContext._create_1(numberOfChannels, numberOfFrames, sampleRate);
-    }
-    static _create_1(numberOfChannels, numberOfFrames, sampleRate) {
-      return new self.OfflineAudioContext(numberOfChannels, numberOfFrames, sampleRate);
-    }
-  };
-  dart.setSignature(web_audio.OfflineAudioContext, {
-    constructors: () => ({
-      _: dart.definiteFunctionType(web_audio.OfflineAudioContext, []),
-      new: dart.definiteFunctionType(web_audio.OfflineAudioContext, [core.int, core.int, core.num])
-    }),
-    statics: () => ({_create_1: dart.definiteFunctionType(web_audio.OfflineAudioContext, [dart.dynamic, dart.dynamic, dart.dynamic])}),
-    names: ['_create_1']
-  });
-  dart.registerExtension(dart.global.OfflineAudioContext, web_audio.OfflineAudioContext);
-  dart.defineExtensionNames([
-    'noteOff',
-    'noteOn',
-    'setPeriodicWave',
-    'start',
-    'stop',
-    'onEnded',
-    'detune',
-    'frequency',
-    'type'
-  ]);
-  web_audio.OscillatorNode = class OscillatorNode extends web_audio.AudioSourceNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.detune]() {
-      return this.detune;
-    }
-    get [dartx.frequency]() {
-      return this.frequency;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-    set [dartx.type](value) {
-      this.type = value;
-    }
-    [dartx.noteOff](...args) {
-      return this.noteOff.apply(this, args);
-    }
-    [dartx.noteOn](...args) {
-      return this.noteOn.apply(this, args);
-    }
-    [dartx.setPeriodicWave](...args) {
-      return this.setPeriodicWave.apply(this, args);
-    }
-    [dartx.start](...args) {
-      return this.start.apply(this, args);
-    }
-    [dartx.stop](...args) {
-      return this.stop.apply(this, args);
-    }
-    get [dartx.onEnded]() {
-      return web_audio.OscillatorNode.endedEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(web_audio.OscillatorNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.OscillatorNode, [])}),
-    fields: () => ({
-      [dartx.detune]: web_audio.AudioParam,
-      [dartx.frequency]: web_audio.AudioParam,
-      [dartx.type]: core.String
-    }),
-    getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
-    methods: () => ({
-      [dartx.noteOff]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.noteOn]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.setPeriodicWave]: dart.definiteFunctionType(dart.void, [web_audio.PeriodicWave]),
-      [dartx.start]: dart.definiteFunctionType(dart.void, [], [core.num]),
-      [dartx.stop]: dart.definiteFunctionType(dart.void, [], [core.num])
-    }),
-    sfields: () => ({endedEvent: EventStreamProviderOfEvent()})
-  });
-  web_audio.OscillatorNode.endedEvent = dart.const(new (EventStreamProviderOfEvent())('ended'));
-  dart.registerExtension(dart.global.OscillatorNode, web_audio.OscillatorNode);
-  dart.registerExtension(dart.global.Oscillator, web_audio.OscillatorNode);
-  dart.defineExtensionNames([
-    'setOrientation',
-    'setPosition',
-    'setVelocity',
-    'coneInnerAngle',
-    'coneOuterAngle',
-    'coneOuterGain',
-    'distanceModel',
-    'maxDistance',
-    'panningModel',
-    'refDistance',
-    'rolloffFactor'
-  ]);
-  web_audio.PannerNode = class PannerNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.coneInnerAngle]() {
-      return this.coneInnerAngle;
-    }
-    set [dartx.coneInnerAngle](value) {
-      this.coneInnerAngle = value;
-    }
-    get [dartx.coneOuterAngle]() {
-      return this.coneOuterAngle;
-    }
-    set [dartx.coneOuterAngle](value) {
-      this.coneOuterAngle = value;
-    }
-    get [dartx.coneOuterGain]() {
-      return this.coneOuterGain;
-    }
-    set [dartx.coneOuterGain](value) {
-      this.coneOuterGain = value;
-    }
-    get [dartx.distanceModel]() {
-      return this.distanceModel;
-    }
-    set [dartx.distanceModel](value) {
-      this.distanceModel = value;
-    }
-    get [dartx.maxDistance]() {
-      return this.maxDistance;
-    }
-    set [dartx.maxDistance](value) {
-      this.maxDistance = value;
-    }
-    get [dartx.panningModel]() {
-      return this.panningModel;
-    }
-    set [dartx.panningModel](value) {
-      this.panningModel = value;
-    }
-    get [dartx.refDistance]() {
-      return this.refDistance;
-    }
-    set [dartx.refDistance](value) {
-      this.refDistance = value;
-    }
-    get [dartx.rolloffFactor]() {
-      return this.rolloffFactor;
-    }
-    set [dartx.rolloffFactor](value) {
-      this.rolloffFactor = value;
-    }
-    [dartx.setOrientation](...args) {
-      return this.setOrientation.apply(this, args);
-    }
-    [dartx.setPosition](...args) {
-      return this.setPosition.apply(this, args);
-    }
-    [dartx.setVelocity](...args) {
-      return this.setVelocity.apply(this, args);
-    }
-  };
-  dart.setSignature(web_audio.PannerNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.PannerNode, [])}),
-    fields: () => ({
-      [dartx.coneInnerAngle]: core.num,
-      [dartx.coneOuterAngle]: core.num,
-      [dartx.coneOuterGain]: core.num,
-      [dartx.distanceModel]: core.String,
-      [dartx.maxDistance]: core.num,
-      [dartx.panningModel]: core.String,
-      [dartx.refDistance]: core.num,
-      [dartx.rolloffFactor]: core.num
-    }),
-    methods: () => ({
-      [dartx.setOrientation]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
-      [dartx.setPosition]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
-      [dartx.setVelocity]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num])
-    })
-  });
-  dart.registerExtension(dart.global.PannerNode, web_audio.PannerNode);
-  dart.registerExtension(dart.global.AudioPannerNode, web_audio.PannerNode);
-  dart.registerExtension(dart.global.webkitAudioPannerNode, web_audio.PannerNode);
-  web_audio.PeriodicWave = class PeriodicWave extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_audio.PeriodicWave, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.PeriodicWave, [])})
-  });
-  dart.registerExtension(dart.global.PeriodicWave, web_audio.PeriodicWave);
-  dart.defineExtensionNames([
-    'setEventListener',
-    'onAudioProcess',
-    'bufferSize'
-  ]);
-  web_audio.ScriptProcessorNode = class ScriptProcessorNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.bufferSize]() {
-      return this.bufferSize;
-    }
-    [dartx.setEventListener](...args) {
-      return this.setEventListener.apply(this, args);
-    }
-    get [dartx.onAudioProcess]() {
-      return web_audio.ScriptProcessorNode.audioProcessEvent.forTarget(this);
-    }
-  };
-  dart.setSignature(web_audio.ScriptProcessorNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.ScriptProcessorNode, [])}),
-    fields: () => ({[dartx.bufferSize]: core.int}),
-    getters: () => ({[dartx.onAudioProcess]: dart.definiteFunctionType(async.Stream$(web_audio.AudioProcessingEvent), [])}),
-    methods: () => ({[dartx.setEventListener]: dart.definiteFunctionType(dart.void, [html$.EventListener])}),
-    sfields: () => ({audioProcessEvent: EventStreamProviderOfAudioProcessingEvent()})
-  });
-  web_audio.ScriptProcessorNode.audioProcessEvent = dart.const(new (EventStreamProviderOfAudioProcessingEvent())('audioprocess'));
-  dart.registerExtension(dart.global.ScriptProcessorNode, web_audio.ScriptProcessorNode);
-  dart.registerExtension(dart.global.JavaScriptAudioNode, web_audio.ScriptProcessorNode);
-  dart.defineExtensionNames([
-    'curve',
-    'oversample'
-  ]);
-  web_audio.WaveShaperNode = class WaveShaperNode extends web_audio.AudioNode {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.curve]() {
-      return this.curve;
-    }
-    set [dartx.curve](value) {
-      this.curve = value;
-    }
-    get [dartx.oversample]() {
-      return this.oversample;
-    }
-    set [dartx.oversample](value) {
-      this.oversample = value;
-    }
-  };
-  dart.setSignature(web_audio.WaveShaperNode, {
-    constructors: () => ({_: dart.definiteFunctionType(web_audio.WaveShaperNode, [])}),
-    fields: () => ({
-      [dartx.curve]: typed_data.Float32List,
-      [dartx.oversample]: core.String
-    })
-  });
-  dart.registerExtension(dart.global.WaveShaperNode, web_audio.WaveShaperNode);
-  const _getContextAttributes_1$ = Symbol('_getContextAttributes_1');
-  const _texImage2D_1 = Symbol('_texImage2D_1');
-  const _texImage2D_2 = Symbol('_texImage2D_2');
-  const _texImage2D_3 = Symbol('_texImage2D_3');
-  const _texImage2D_4 = Symbol('_texImage2D_4');
-  const _texImage2D_5 = Symbol('_texImage2D_5');
-  const _texImage2DImageData_1 = Symbol('_texImage2DImageData_1');
-  const _texSubImage2D_1 = Symbol('_texSubImage2D_1');
-  const _texSubImage2D_2 = Symbol('_texSubImage2D_2');
-  const _texSubImage2D_3 = Symbol('_texSubImage2D_3');
-  const _texSubImage2D_4 = Symbol('_texSubImage2D_4');
-  const _texSubImage2D_5 = Symbol('_texSubImage2D_5');
-  const _texSubImage2DImageData_1 = Symbol('_texSubImage2DImageData_1');
-  dart.defineExtensionNames([
-    'activeTexture',
-    'attachShader',
-    'bindAttribLocation',
-    'bindBuffer',
-    'bindFramebuffer',
-    'bindRenderbuffer',
-    'bindTexture',
-    'blendColor',
-    'blendEquation',
-    'blendEquationSeparate',
-    'blendFunc',
-    'blendFuncSeparate',
-    'bufferByteData',
-    'bufferData',
-    'bufferDataTyped',
-    'bufferSubByteData',
-    'bufferSubData',
-    'bufferSubDataTyped',
-    'checkFramebufferStatus',
-    'clear',
-    'clearColor',
-    'clearDepth',
-    'clearStencil',
-    'colorMask',
-    'compileShader',
-    'compressedTexImage2D',
-    'compressedTexSubImage2D',
-    'copyTexImage2D',
-    'copyTexSubImage2D',
-    'createBuffer',
-    'createFramebuffer',
-    'createProgram',
-    'createRenderbuffer',
-    'createShader',
-    'createTexture',
-    'cullFace',
-    'deleteBuffer',
-    'deleteFramebuffer',
-    'deleteProgram',
-    'deleteRenderbuffer',
-    'deleteShader',
-    'deleteTexture',
-    'depthFunc',
-    'depthMask',
-    'depthRange',
-    'detachShader',
-    'disable',
-    'disableVertexAttribArray',
-    'drawArrays',
-    'drawElements',
-    'enable',
-    'enableVertexAttribArray',
-    'finish',
-    'flush',
-    'framebufferRenderbuffer',
-    'framebufferTexture2D',
-    'frontFace',
-    'generateMipmap',
-    'getActiveAttrib',
-    'getActiveUniform',
-    'getAttachedShaders',
-    'getAttribLocation',
-    'getBufferParameter',
-    'getContextAttributes',
-    'getError',
-    'getExtension',
-    'getFramebufferAttachmentParameter',
-    'getParameter',
-    'getProgramInfoLog',
-    'getProgramParameter',
-    'getRenderbufferParameter',
-    'getShaderInfoLog',
-    'getShaderParameter',
-    'getShaderPrecisionFormat',
-    'getShaderSource',
-    'getSupportedExtensions',
-    'getTexParameter',
-    'getUniform',
-    'getUniformLocation',
-    'getVertexAttrib',
-    'getVertexAttribOffset',
-    'hint',
-    'isBuffer',
-    'isContextLost',
-    'isEnabled',
-    'isFramebuffer',
-    'isProgram',
-    'isRenderbuffer',
-    'isShader',
-    'isTexture',
-    'lineWidth',
-    'linkProgram',
-    'pixelStorei',
-    'polygonOffset',
-    'readPixels',
-    'renderbufferStorage',
-    'sampleCoverage',
-    'scissor',
-    'shaderSource',
-    'stencilFunc',
-    'stencilFuncSeparate',
-    'stencilMask',
-    'stencilMaskSeparate',
-    'stencilOp',
-    'stencilOpSeparate',
-    'texImage2D',
-    'texImage2DCanvas',
-    'texImage2DImage',
-    'texImage2DImageData',
-    'texImage2DVideo',
-    'texParameterf',
-    'texParameteri',
-    'texSubImage2D',
-    'texSubImage2DCanvas',
-    'texSubImage2DImage',
-    'texSubImage2DImageData',
-    'texSubImage2DVideo',
-    'uniform1f',
-    'uniform1fv',
-    'uniform1i',
-    'uniform1iv',
-    'uniform2f',
-    'uniform2fv',
-    'uniform2i',
-    'uniform2iv',
-    'uniform3f',
-    'uniform3fv',
-    'uniform3i',
-    'uniform3iv',
-    'uniform4f',
-    'uniform4fv',
-    'uniform4i',
-    'uniform4iv',
-    'uniformMatrix2fv',
-    'uniformMatrix3fv',
-    'uniformMatrix4fv',
-    'useProgram',
-    'validateProgram',
-    'vertexAttrib1f',
-    'vertexAttrib1fv',
-    'vertexAttrib2f',
-    'vertexAttrib2fv',
-    'vertexAttrib3f',
-    'vertexAttrib3fv',
-    'vertexAttrib4f',
-    'vertexAttrib4fv',
-    'vertexAttribPointer',
-    'viewport',
-    'texImage2DUntyped',
-    'texImage2DTyped',
-    'texSubImage2DUntyped',
-    'texSubImage2DTyped',
-    'canvas',
-    'drawingBufferHeight',
-    'drawingBufferWidth'
-  ]);
-  web_gl.RenderingContext = class RenderingContext extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!window.WebGLRenderingContext;
-    }
-    get [dartx.canvas]() {
-      return this.canvas;
-    }
-    get [dartx.drawingBufferHeight]() {
-      return this.drawingBufferHeight;
-    }
-    get [dartx.drawingBufferWidth]() {
-      return this.drawingBufferWidth;
-    }
-    [dartx.activeTexture](...args) {
-      return this.activeTexture.apply(this, args);
-    }
-    [dartx.attachShader](...args) {
-      return this.attachShader.apply(this, args);
-    }
-    [dartx.bindAttribLocation](...args) {
-      return this.bindAttribLocation.apply(this, args);
-    }
-    [dartx.bindBuffer](...args) {
-      return this.bindBuffer.apply(this, args);
-    }
-    [dartx.bindFramebuffer](...args) {
-      return this.bindFramebuffer.apply(this, args);
-    }
-    [dartx.bindRenderbuffer](...args) {
-      return this.bindRenderbuffer.apply(this, args);
-    }
-    [dartx.bindTexture](...args) {
-      return this.bindTexture.apply(this, args);
-    }
-    [dartx.blendColor](...args) {
-      return this.blendColor.apply(this, args);
-    }
-    [dartx.blendEquation](...args) {
-      return this.blendEquation.apply(this, args);
-    }
-    [dartx.blendEquationSeparate](...args) {
-      return this.blendEquationSeparate.apply(this, args);
-    }
-    [dartx.blendFunc](...args) {
-      return this.blendFunc.apply(this, args);
-    }
-    [dartx.blendFuncSeparate](...args) {
-      return this.blendFuncSeparate.apply(this, args);
-    }
-    [dartx.bufferByteData](...args) {
-      return this.bufferData.apply(this, args);
-    }
-    [dartx.bufferData](...args) {
-      return this.bufferData.apply(this, args);
-    }
-    [dartx.bufferDataTyped](...args) {
-      return this.bufferData.apply(this, args);
-    }
-    [dartx.bufferSubByteData](...args) {
-      return this.bufferSubData.apply(this, args);
-    }
-    [dartx.bufferSubData](...args) {
-      return this.bufferSubData.apply(this, args);
-    }
-    [dartx.bufferSubDataTyped](...args) {
-      return this.bufferSubData.apply(this, args);
-    }
-    [dartx.checkFramebufferStatus](...args) {
-      return this.checkFramebufferStatus.apply(this, args);
-    }
-    [dartx.clear](...args) {
-      return this.clear.apply(this, args);
-    }
-    [dartx.clearColor](...args) {
-      return this.clearColor.apply(this, args);
-    }
-    [dartx.clearDepth](...args) {
-      return this.clearDepth.apply(this, args);
-    }
-    [dartx.clearStencil](...args) {
-      return this.clearStencil.apply(this, args);
-    }
-    [dartx.colorMask](...args) {
-      return this.colorMask.apply(this, args);
-    }
-    [dartx.compileShader](...args) {
-      return this.compileShader.apply(this, args);
-    }
-    [dartx.compressedTexImage2D](...args) {
-      return this.compressedTexImage2D.apply(this, args);
-    }
-    [dartx.compressedTexSubImage2D](...args) {
-      return this.compressedTexSubImage2D.apply(this, args);
-    }
-    [dartx.copyTexImage2D](...args) {
-      return this.copyTexImage2D.apply(this, args);
-    }
-    [dartx.copyTexSubImage2D](...args) {
-      return this.copyTexSubImage2D.apply(this, args);
-    }
-    [dartx.createBuffer](...args) {
-      return this.createBuffer.apply(this, args);
-    }
-    [dartx.createFramebuffer](...args) {
-      return this.createFramebuffer.apply(this, args);
-    }
-    [dartx.createProgram](...args) {
-      return this.createProgram.apply(this, args);
-    }
-    [dartx.createRenderbuffer](...args) {
-      return this.createRenderbuffer.apply(this, args);
-    }
-    [dartx.createShader](...args) {
-      return this.createShader.apply(this, args);
-    }
-    [dartx.createTexture](...args) {
-      return this.createTexture.apply(this, args);
-    }
-    [dartx.cullFace](...args) {
-      return this.cullFace.apply(this, args);
-    }
-    [dartx.deleteBuffer](...args) {
-      return this.deleteBuffer.apply(this, args);
-    }
-    [dartx.deleteFramebuffer](...args) {
-      return this.deleteFramebuffer.apply(this, args);
-    }
-    [dartx.deleteProgram](...args) {
-      return this.deleteProgram.apply(this, args);
-    }
-    [dartx.deleteRenderbuffer](...args) {
-      return this.deleteRenderbuffer.apply(this, args);
-    }
-    [dartx.deleteShader](...args) {
-      return this.deleteShader.apply(this, args);
-    }
-    [dartx.deleteTexture](...args) {
-      return this.deleteTexture.apply(this, args);
-    }
-    [dartx.depthFunc](...args) {
-      return this.depthFunc.apply(this, args);
-    }
-    [dartx.depthMask](...args) {
-      return this.depthMask.apply(this, args);
-    }
-    [dartx.depthRange](...args) {
-      return this.depthRange.apply(this, args);
-    }
-    [dartx.detachShader](...args) {
-      return this.detachShader.apply(this, args);
-    }
-    [dartx.disable](...args) {
-      return this.disable.apply(this, args);
-    }
-    [dartx.disableVertexAttribArray](...args) {
-      return this.disableVertexAttribArray.apply(this, args);
-    }
-    [dartx.drawArrays](...args) {
-      return this.drawArrays.apply(this, args);
-    }
-    [dartx.drawElements](...args) {
-      return this.drawElements.apply(this, args);
-    }
-    [dartx.enable](...args) {
-      return this.enable.apply(this, args);
-    }
-    [dartx.enableVertexAttribArray](...args) {
-      return this.enableVertexAttribArray.apply(this, args);
-    }
-    [dartx.finish](...args) {
-      return this.finish.apply(this, args);
-    }
-    [dartx.flush](...args) {
-      return this.flush.apply(this, args);
-    }
-    [dartx.framebufferRenderbuffer](...args) {
-      return this.framebufferRenderbuffer.apply(this, args);
-    }
-    [dartx.framebufferTexture2D](...args) {
-      return this.framebufferTexture2D.apply(this, args);
-    }
-    [dartx.frontFace](...args) {
-      return this.frontFace.apply(this, args);
-    }
-    [dartx.generateMipmap](...args) {
-      return this.generateMipmap.apply(this, args);
-    }
-    [dartx.getActiveAttrib](...args) {
-      return this.getActiveAttrib.apply(this, args);
-    }
-    [dartx.getActiveUniform](...args) {
-      return this.getActiveUniform.apply(this, args);
-    }
-    [dartx.getAttachedShaders](...args) {
-      return this.getAttachedShaders.apply(this, args);
-    }
-    [dartx.getAttribLocation](...args) {
-      return this.getAttribLocation.apply(this, args);
-    }
-    [dartx.getBufferParameter](...args) {
-      return this.getBufferParameter.apply(this, args);
-    }
-    [dartx.getContextAttributes]() {
-      return web_gl.ContextAttributes._check(html_common.convertNativeToDart_ContextAttributes(this[_getContextAttributes_1$]()));
-    }
-    [_getContextAttributes_1$](...args) {
-      return this.getContextAttributes.apply(this, args);
-    }
-    [dartx.getError](...args) {
-      return this.getError.apply(this, args);
-    }
-    [dartx.getExtension](...args) {
-      return this.getExtension.apply(this, args);
-    }
-    [dartx.getFramebufferAttachmentParameter](...args) {
-      return this.getFramebufferAttachmentParameter.apply(this, args);
-    }
-    [dartx.getParameter](...args) {
-      return this.getParameter.apply(this, args);
-    }
-    [dartx.getProgramInfoLog](...args) {
-      return this.getProgramInfoLog.apply(this, args);
-    }
-    [dartx.getProgramParameter](...args) {
-      return this.getProgramParameter.apply(this, args);
-    }
-    [dartx.getRenderbufferParameter](...args) {
-      return this.getRenderbufferParameter.apply(this, args);
-    }
-    [dartx.getShaderInfoLog](...args) {
-      return this.getShaderInfoLog.apply(this, args);
-    }
-    [dartx.getShaderParameter](...args) {
-      return this.getShaderParameter.apply(this, args);
-    }
-    [dartx.getShaderPrecisionFormat](...args) {
-      return this.getShaderPrecisionFormat.apply(this, args);
-    }
-    [dartx.getShaderSource](...args) {
-      return this.getShaderSource.apply(this, args);
-    }
-    [dartx.getSupportedExtensions](...args) {
-      return this.getSupportedExtensions.apply(this, args);
-    }
-    [dartx.getTexParameter](...args) {
-      return this.getTexParameter.apply(this, args);
-    }
-    [dartx.getUniform](...args) {
-      return this.getUniform.apply(this, args);
-    }
-    [dartx.getUniformLocation](...args) {
-      return this.getUniformLocation.apply(this, args);
-    }
-    [dartx.getVertexAttrib](...args) {
-      return this.getVertexAttrib.apply(this, args);
-    }
-    [dartx.getVertexAttribOffset](...args) {
-      return this.getVertexAttribOffset.apply(this, args);
-    }
-    [dartx.hint](...args) {
-      return this.hint.apply(this, args);
-    }
-    [dartx.isBuffer](...args) {
-      return this.isBuffer.apply(this, args);
-    }
-    [dartx.isContextLost](...args) {
-      return this.isContextLost.apply(this, args);
-    }
-    [dartx.isEnabled](...args) {
-      return this.isEnabled.apply(this, args);
-    }
-    [dartx.isFramebuffer](...args) {
-      return this.isFramebuffer.apply(this, args);
-    }
-    [dartx.isProgram](...args) {
-      return this.isProgram.apply(this, args);
-    }
-    [dartx.isRenderbuffer](...args) {
-      return this.isRenderbuffer.apply(this, args);
-    }
-    [dartx.isShader](...args) {
-      return this.isShader.apply(this, args);
-    }
-    [dartx.isTexture](...args) {
-      return this.isTexture.apply(this, args);
-    }
-    [dartx.lineWidth](...args) {
-      return this.lineWidth.apply(this, args);
-    }
-    [dartx.linkProgram](...args) {
-      return this.linkProgram.apply(this, args);
-    }
-    [dartx.pixelStorei](...args) {
-      return this.pixelStorei.apply(this, args);
-    }
-    [dartx.polygonOffset](...args) {
-      return this.polygonOffset.apply(this, args);
-    }
-    [dartx.readPixels](...args) {
-      return this.readPixels.apply(this, args);
-    }
-    [dartx.renderbufferStorage](...args) {
-      return this.renderbufferStorage.apply(this, args);
-    }
-    [dartx.sampleCoverage](...args) {
-      return this.sampleCoverage.apply(this, args);
-    }
-    [dartx.scissor](...args) {
-      return this.scissor.apply(this, args);
-    }
-    [dartx.shaderSource](...args) {
-      return this.shaderSource.apply(this, args);
-    }
-    [dartx.stencilFunc](...args) {
-      return this.stencilFunc.apply(this, args);
-    }
-    [dartx.stencilFuncSeparate](...args) {
-      return this.stencilFuncSeparate.apply(this, args);
-    }
-    [dartx.stencilMask](...args) {
-      return this.stencilMask.apply(this, args);
-    }
-    [dartx.stencilMaskSeparate](...args) {
-      return this.stencilMaskSeparate.apply(this, args);
-    }
-    [dartx.stencilOp](...args) {
-      return this.stencilOp.apply(this, args);
-    }
-    [dartx.stencilOpSeparate](...args) {
-      return this.stencilOpSeparate.apply(this, args);
-    }
-    [dartx.texImage2D](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels) {
-      if (format === void 0) format = null;
-      if (type === void 0) type = null;
-      if (pixels === void 0) pixels = null;
-      if (pixels != null && type != null && format != null && typeof border_OR_canvas_OR_image_OR_pixels_OR_video == 'number') {
-        this[_texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
-        return;
-      }
-      if ((html$.ImageData.is(border_OR_canvas_OR_image_OR_pixels_OR_video) || border_OR_canvas_OR_image_OR_pixels_OR_video == null) && format == null && type == null && pixels == null) {
-        let pixels_1 = html_common.convertDartToNative_ImageData(html$.ImageData._check(border_OR_canvas_OR_image_OR_pixels_OR_video));
-        this[_texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
-        return;
-      }
-      if (html$.ImageElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
-        this[_texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
-        return;
-      }
-      if (html$.CanvasElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
-        this[_texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
-        return;
-      }
-      if (html$.VideoElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
-        this[_texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_texImage2D_1](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [_texImage2D_2](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [_texImage2D_3](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [_texImage2D_4](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [_texImage2D_5](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texImage2DCanvas](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texImage2DImage](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texImage2DImageData](target, level, internalformat, format, type, pixels) {
-      let pixels_1 = html_common.convertDartToNative_ImageData(pixels);
-      this[_texImage2DImageData_1](target, level, internalformat, format, type, pixels_1);
+    }, AudioBufferToNull()));
+    return completer.future;
+  }
+};
+dart.setSignature(web_audio.AudioContext, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(web_audio.AudioContext, []),
+    new: dart.definiteFunctionType(web_audio.AudioContext, [])
+  }),
+  fields: () => ({
+    [dartx.currentTime]: core.double,
+    [dartx.destination]: web_audio.AudioDestinationNode,
+    [dartx.listener]: web_audio.AudioListener,
+    [dartx.sampleRate]: core.double
+  }),
+  getters: () => ({[dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.createAnalyser]: dart.definiteFunctionType(web_audio.AnalyserNode, []),
+    [dartx.createBiquadFilter]: dart.definiteFunctionType(web_audio.BiquadFilterNode, []),
+    [dartx.createBuffer]: dart.definiteFunctionType(web_audio.AudioBuffer, [core.int, core.int, core.num]),
+    [dartx.createBufferSource]: dart.definiteFunctionType(web_audio.AudioBufferSourceNode, []),
+    [dartx.createChannelMerger]: dart.definiteFunctionType(web_audio.ChannelMergerNode, [], [core.int]),
+    [dartx.createChannelSplitter]: dart.definiteFunctionType(web_audio.ChannelSplitterNode, [], [core.int]),
+    [dartx.createConvolver]: dart.definiteFunctionType(web_audio.ConvolverNode, []),
+    [dartx.createDelay]: dart.definiteFunctionType(web_audio.DelayNode, [], [core.num]),
+    [dartx.createDynamicsCompressor]: dart.definiteFunctionType(web_audio.DynamicsCompressorNode, []),
+    [dartx.createMediaElementSource]: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [html$.MediaElement]),
+    [dartx.createMediaStreamDestination]: dart.definiteFunctionType(web_audio.MediaStreamAudioDestinationNode, []),
+    [dartx.createMediaStreamSource]: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [html$.MediaStream]),
+    [dartx.createOscillator]: dart.definiteFunctionType(web_audio.OscillatorNode, []),
+    [dartx.createPanner]: dart.definiteFunctionType(web_audio.PannerNode, []),
+    [dartx.createPeriodicWave]: dart.definiteFunctionType(web_audio.PeriodicWave, [typed_data.Float32List, typed_data.Float32List]),
+    [dartx.createWaveShaper]: dart.definiteFunctionType(web_audio.WaveShaperNode, []),
+    [_decodeAudioData]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer, web_audio.AudioBufferCallback], [web_audio.AudioBufferCallback]),
+    [dartx.startRendering]: dart.definiteFunctionType(dart.void, []),
+    [dartx.createGain]: dart.definiteFunctionType(web_audio.GainNode, []),
+    [dartx.createScriptProcessor]: dart.definiteFunctionType(web_audio.ScriptProcessorNode, [core.int], [core.int, core.int]),
+    [dartx.decodeAudioData]: dart.definiteFunctionType(async.Future$(web_audio.AudioBuffer), [typed_data.ByteBuffer])
+  }),
+  sfields: () => ({completeEvent: EventStreamProviderOfEvent()}),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+web_audio.AudioContext.completeEvent = dart.const(new (EventStreamProviderOfEvent())('complete'));
+dart.registerExtension(dart.global.AudioContext, web_audio.AudioContext);
+dart.registerExtension(dart.global.webkitAudioContext, web_audio.AudioContext);
+dart.defineExtensionNames([
+  'maxChannelCount'
+]);
+web_audio.AudioDestinationNode = class AudioDestinationNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.maxChannelCount]() {
+    return this.maxChannelCount;
+  }
+};
+dart.setSignature(web_audio.AudioDestinationNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioDestinationNode, [])}),
+  fields: () => ({[dartx.maxChannelCount]: core.int})
+});
+dart.registerExtension(dart.global.AudioDestinationNode, web_audio.AudioDestinationNode);
+dart.defineExtensionNames([
+  'setOrientation',
+  'setPosition',
+  'setVelocity',
+  'dopplerFactor',
+  'speedOfSound'
+]);
+web_audio.AudioListener = class AudioListener extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.dopplerFactor]() {
+    return this.dopplerFactor;
+  }
+  set [dartx.dopplerFactor](value) {
+    this.dopplerFactor = value;
+  }
+  get [dartx.speedOfSound]() {
+    return this.speedOfSound;
+  }
+  set [dartx.speedOfSound](value) {
+    this.speedOfSound = value;
+  }
+  [dartx.setOrientation](...args) {
+    return this.setOrientation.apply(this, args);
+  }
+  [dartx.setPosition](...args) {
+    return this.setPosition.apply(this, args);
+  }
+  [dartx.setVelocity](...args) {
+    return this.setVelocity.apply(this, args);
+  }
+};
+dart.setSignature(web_audio.AudioListener, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioListener, [])}),
+  fields: () => ({
+    [dartx.dopplerFactor]: core.num,
+    [dartx.speedOfSound]: core.num
+  }),
+  methods: () => ({
+    [dartx.setOrientation]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.setPosition]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
+    [dartx.setVelocity]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num])
+  })
+});
+dart.registerExtension(dart.global.AudioListener, web_audio.AudioListener);
+dart.defineExtensionNames([
+  'cancelScheduledValues',
+  'exponentialRampToValueAtTime',
+  'linearRampToValueAtTime',
+  'setTargetAtTime',
+  'setValueAtTime',
+  'setValueCurveAtTime',
+  'defaultValue',
+  'value'
+]);
+web_audio.AudioParam = class AudioParam extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.defaultValue]() {
+    return this.defaultValue;
+  }
+  get [dartx.value]() {
+    return this.value;
+  }
+  set [dartx.value](value) {
+    this.value = value;
+  }
+  [dartx.cancelScheduledValues](...args) {
+    return this.cancelScheduledValues.apply(this, args);
+  }
+  [dartx.exponentialRampToValueAtTime](...args) {
+    return this.exponentialRampToValueAtTime.apply(this, args);
+  }
+  [dartx.linearRampToValueAtTime](...args) {
+    return this.linearRampToValueAtTime.apply(this, args);
+  }
+  [dartx.setTargetAtTime](...args) {
+    return this.setTargetAtTime.apply(this, args);
+  }
+  [dartx.setValueAtTime](...args) {
+    return this.setValueAtTime.apply(this, args);
+  }
+  [dartx.setValueCurveAtTime](...args) {
+    return this.setValueCurveAtTime.apply(this, args);
+  }
+};
+dart.setSignature(web_audio.AudioParam, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioParam, [])}),
+  fields: () => ({
+    [dartx.defaultValue]: core.double,
+    [dartx.value]: core.num
+  }),
+  methods: () => ({
+    [dartx.cancelScheduledValues]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.exponentialRampToValueAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.linearRampToValueAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.setTargetAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
+    [dartx.setValueAtTime]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.setValueCurveAtTime]: dart.definiteFunctionType(dart.void, [typed_data.Float32List, core.num, core.num])
+  })
+});
+dart.registerExtension(dart.global.AudioParam, web_audio.AudioParam);
+dart.defineExtensionNames([
+  'inputBuffer',
+  'outputBuffer',
+  'playbackTime'
+]);
+web_audio.AudioProcessingEvent = class AudioProcessingEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.inputBuffer]() {
+    return this.inputBuffer;
+  }
+  get [dartx.outputBuffer]() {
+    return this.outputBuffer;
+  }
+  get [dartx.playbackTime]() {
+    return this.playbackTime;
+  }
+};
+dart.setSignature(web_audio.AudioProcessingEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.AudioProcessingEvent, [])}),
+  fields: () => ({
+    [dartx.inputBuffer]: web_audio.AudioBuffer,
+    [dartx.outputBuffer]: web_audio.AudioBuffer,
+    [dartx.playbackTime]: core.double
+  })
+});
+dart.registerExtension(dart.global.AudioProcessingEvent, web_audio.AudioProcessingEvent);
+dart.defineExtensionNames([
+  'getFrequencyResponse',
+  'Q',
+  'detune',
+  'frequency',
+  'gain',
+  'type'
+]);
+web_audio.BiquadFilterNode = class BiquadFilterNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.Q]() {
+    return this.Q;
+  }
+  get [dartx.detune]() {
+    return this.detune;
+  }
+  get [dartx.frequency]() {
+    return this.frequency;
+  }
+  get [dartx.gain]() {
+    return this.gain;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  [dartx.getFrequencyResponse](...args) {
+    return this.getFrequencyResponse.apply(this, args);
+  }
+};
+dart.setSignature(web_audio.BiquadFilterNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.BiquadFilterNode, [])}),
+  fields: () => ({
+    [dartx.Q]: web_audio.AudioParam,
+    [dartx.detune]: web_audio.AudioParam,
+    [dartx.frequency]: web_audio.AudioParam,
+    [dartx.gain]: web_audio.AudioParam,
+    [dartx.type]: core.String
+  }),
+  methods: () => ({[dartx.getFrequencyResponse]: dart.definiteFunctionType(dart.void, [typed_data.Float32List, typed_data.Float32List, typed_data.Float32List])})
+});
+dart.registerExtension(dart.global.BiquadFilterNode, web_audio.BiquadFilterNode);
+web_audio.ChannelMergerNode = class ChannelMergerNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_audio.ChannelMergerNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.ChannelMergerNode, [])})
+});
+dart.registerExtension(dart.global.ChannelMergerNode, web_audio.ChannelMergerNode);
+dart.registerExtension(dart.global.AudioChannelMerger, web_audio.ChannelMergerNode);
+web_audio.ChannelSplitterNode = class ChannelSplitterNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_audio.ChannelSplitterNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.ChannelSplitterNode, [])})
+});
+dart.registerExtension(dart.global.ChannelSplitterNode, web_audio.ChannelSplitterNode);
+dart.registerExtension(dart.global.AudioChannelSplitter, web_audio.ChannelSplitterNode);
+dart.defineExtensionNames([
+  'buffer',
+  'normalize'
+]);
+web_audio.ConvolverNode = class ConvolverNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.buffer]() {
+    return this.buffer;
+  }
+  set [dartx.buffer](value) {
+    this.buffer = value;
+  }
+  get [dartx.normalize]() {
+    return this.normalize;
+  }
+  set [dartx.normalize](value) {
+    this.normalize = value;
+  }
+};
+dart.setSignature(web_audio.ConvolverNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.ConvolverNode, [])}),
+  fields: () => ({
+    [dartx.buffer]: web_audio.AudioBuffer,
+    [dartx.normalize]: core.bool
+  })
+});
+dart.registerExtension(dart.global.ConvolverNode, web_audio.ConvolverNode);
+dart.defineExtensionNames([
+  'delayTime'
+]);
+web_audio.DelayNode = class DelayNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.delayTime]() {
+    return this.delayTime;
+  }
+};
+dart.setSignature(web_audio.DelayNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.DelayNode, [])}),
+  fields: () => ({[dartx.delayTime]: web_audio.AudioParam})
+});
+dart.registerExtension(dart.global.DelayNode, web_audio.DelayNode);
+dart.defineExtensionNames([
+  'attack',
+  'knee',
+  'ratio',
+  'reduction',
+  'release',
+  'threshold'
+]);
+web_audio.DynamicsCompressorNode = class DynamicsCompressorNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.attack]() {
+    return this.attack;
+  }
+  get [dartx.knee]() {
+    return this.knee;
+  }
+  get [dartx.ratio]() {
+    return this.ratio;
+  }
+  get [dartx.reduction]() {
+    return this.reduction;
+  }
+  get [dartx.release]() {
+    return this.release;
+  }
+  get [dartx.threshold]() {
+    return this.threshold;
+  }
+};
+dart.setSignature(web_audio.DynamicsCompressorNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.DynamicsCompressorNode, [])}),
+  fields: () => ({
+    [dartx.attack]: web_audio.AudioParam,
+    [dartx.knee]: web_audio.AudioParam,
+    [dartx.ratio]: web_audio.AudioParam,
+    [dartx.reduction]: web_audio.AudioParam,
+    [dartx.release]: web_audio.AudioParam,
+    [dartx.threshold]: web_audio.AudioParam
+  })
+});
+dart.registerExtension(dart.global.DynamicsCompressorNode, web_audio.DynamicsCompressorNode);
+dart.defineExtensionNames([
+  'gain'
+]);
+web_audio.GainNode = class GainNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.gain]() {
+    return this.gain;
+  }
+};
+dart.setSignature(web_audio.GainNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.GainNode, [])}),
+  fields: () => ({[dartx.gain]: web_audio.AudioParam})
+});
+dart.registerExtension(dart.global.GainNode, web_audio.GainNode);
+dart.registerExtension(dart.global.AudioGainNode, web_audio.GainNode);
+dart.defineExtensionNames([
+  'mediaElement'
+]);
+web_audio.MediaElementAudioSourceNode = class MediaElementAudioSourceNode extends web_audio.AudioSourceNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.mediaElement]() {
+    return this.mediaElement;
+  }
+};
+dart.setSignature(web_audio.MediaElementAudioSourceNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [])}),
+  fields: () => ({[dartx.mediaElement]: html$.MediaElement})
+});
+dart.registerExtension(dart.global.MediaElementAudioSourceNode, web_audio.MediaElementAudioSourceNode);
+dart.defineExtensionNames([
+  'stream'
+]);
+web_audio.MediaStreamAudioDestinationNode = class MediaStreamAudioDestinationNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.stream]() {
+    return this.stream;
+  }
+};
+dart.setSignature(web_audio.MediaStreamAudioDestinationNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaStreamAudioDestinationNode, [])}),
+  fields: () => ({[dartx.stream]: html$.MediaStream})
+});
+dart.registerExtension(dart.global.MediaStreamAudioDestinationNode, web_audio.MediaStreamAudioDestinationNode);
+dart.defineExtensionNames([
+  'mediaStream'
+]);
+web_audio.MediaStreamAudioSourceNode = class MediaStreamAudioSourceNode extends web_audio.AudioSourceNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.mediaStream]() {
+    return this.mediaStream;
+  }
+};
+dart.setSignature(web_audio.MediaStreamAudioSourceNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [])}),
+  fields: () => ({[dartx.mediaStream]: html$.MediaStream})
+});
+dart.registerExtension(dart.global.MediaStreamAudioSourceNode, web_audio.MediaStreamAudioSourceNode);
+dart.defineExtensionNames([
+  'renderedBuffer'
+]);
+web_audio.OfflineAudioCompletionEvent = class OfflineAudioCompletionEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.renderedBuffer]() {
+    return this.renderedBuffer;
+  }
+};
+dart.setSignature(web_audio.OfflineAudioCompletionEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.OfflineAudioCompletionEvent, [])}),
+  fields: () => ({[dartx.renderedBuffer]: web_audio.AudioBuffer})
+});
+dart.registerExtension(dart.global.OfflineAudioCompletionEvent, web_audio.OfflineAudioCompletionEvent);
+web_audio.OfflineAudioContext = class OfflineAudioContext extends web_audio.AudioContext {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static new(numberOfChannels, numberOfFrames, sampleRate) {
+    return web_audio.OfflineAudioContext._create_1(numberOfChannels, numberOfFrames, sampleRate);
+  }
+  static _create_1(numberOfChannels, numberOfFrames, sampleRate) {
+    return new self.OfflineAudioContext(numberOfChannels, numberOfFrames, sampleRate);
+  }
+};
+dart.setSignature(web_audio.OfflineAudioContext, {
+  constructors: () => ({
+    _: dart.definiteFunctionType(web_audio.OfflineAudioContext, []),
+    new: dart.definiteFunctionType(web_audio.OfflineAudioContext, [core.int, core.int, core.num])
+  }),
+  statics: () => ({_create_1: dart.definiteFunctionType(web_audio.OfflineAudioContext, [dart.dynamic, dart.dynamic, dart.dynamic])}),
+  names: ['_create_1']
+});
+dart.registerExtension(dart.global.OfflineAudioContext, web_audio.OfflineAudioContext);
+dart.defineExtensionNames([
+  'noteOff',
+  'noteOn',
+  'setPeriodicWave',
+  'start',
+  'stop',
+  'onEnded',
+  'detune',
+  'frequency',
+  'type'
+]);
+web_audio.OscillatorNode = class OscillatorNode extends web_audio.AudioSourceNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.detune]() {
+    return this.detune;
+  }
+  get [dartx.frequency]() {
+    return this.frequency;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+  set [dartx.type](value) {
+    this.type = value;
+  }
+  [dartx.noteOff](...args) {
+    return this.noteOff.apply(this, args);
+  }
+  [dartx.noteOn](...args) {
+    return this.noteOn.apply(this, args);
+  }
+  [dartx.setPeriodicWave](...args) {
+    return this.setPeriodicWave.apply(this, args);
+  }
+  [dartx.start](...args) {
+    return this.start.apply(this, args);
+  }
+  [dartx.stop](...args) {
+    return this.stop.apply(this, args);
+  }
+  get [dartx.onEnded]() {
+    return web_audio.OscillatorNode.endedEvent.forTarget(this);
+  }
+};
+dart.setSignature(web_audio.OscillatorNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.OscillatorNode, [])}),
+  fields: () => ({
+    [dartx.detune]: web_audio.AudioParam,
+    [dartx.frequency]: web_audio.AudioParam,
+    [dartx.type]: core.String
+  }),
+  getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
+  methods: () => ({
+    [dartx.noteOff]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.noteOn]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.setPeriodicWave]: dart.definiteFunctionType(dart.void, [web_audio.PeriodicWave]),
+    [dartx.start]: dart.definiteFunctionType(dart.void, [], [core.num]),
+    [dartx.stop]: dart.definiteFunctionType(dart.void, [], [core.num])
+  }),
+  sfields: () => ({endedEvent: EventStreamProviderOfEvent()})
+});
+web_audio.OscillatorNode.endedEvent = dart.const(new (EventStreamProviderOfEvent())('ended'));
+dart.registerExtension(dart.global.OscillatorNode, web_audio.OscillatorNode);
+dart.registerExtension(dart.global.Oscillator, web_audio.OscillatorNode);
+dart.defineExtensionNames([
+  'setOrientation',
+  'setPosition',
+  'setVelocity',
+  'coneInnerAngle',
+  'coneOuterAngle',
+  'coneOuterGain',
+  'distanceModel',
+  'maxDistance',
+  'panningModel',
+  'refDistance',
+  'rolloffFactor'
+]);
+web_audio.PannerNode = class PannerNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.coneInnerAngle]() {
+    return this.coneInnerAngle;
+  }
+  set [dartx.coneInnerAngle](value) {
+    this.coneInnerAngle = value;
+  }
+  get [dartx.coneOuterAngle]() {
+    return this.coneOuterAngle;
+  }
+  set [dartx.coneOuterAngle](value) {
+    this.coneOuterAngle = value;
+  }
+  get [dartx.coneOuterGain]() {
+    return this.coneOuterGain;
+  }
+  set [dartx.coneOuterGain](value) {
+    this.coneOuterGain = value;
+  }
+  get [dartx.distanceModel]() {
+    return this.distanceModel;
+  }
+  set [dartx.distanceModel](value) {
+    this.distanceModel = value;
+  }
+  get [dartx.maxDistance]() {
+    return this.maxDistance;
+  }
+  set [dartx.maxDistance](value) {
+    this.maxDistance = value;
+  }
+  get [dartx.panningModel]() {
+    return this.panningModel;
+  }
+  set [dartx.panningModel](value) {
+    this.panningModel = value;
+  }
+  get [dartx.refDistance]() {
+    return this.refDistance;
+  }
+  set [dartx.refDistance](value) {
+    this.refDistance = value;
+  }
+  get [dartx.rolloffFactor]() {
+    return this.rolloffFactor;
+  }
+  set [dartx.rolloffFactor](value) {
+    this.rolloffFactor = value;
+  }
+  [dartx.setOrientation](...args) {
+    return this.setOrientation.apply(this, args);
+  }
+  [dartx.setPosition](...args) {
+    return this.setPosition.apply(this, args);
+  }
+  [dartx.setVelocity](...args) {
+    return this.setVelocity.apply(this, args);
+  }
+};
+dart.setSignature(web_audio.PannerNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.PannerNode, [])}),
+  fields: () => ({
+    [dartx.coneInnerAngle]: core.num,
+    [dartx.coneOuterAngle]: core.num,
+    [dartx.coneOuterGain]: core.num,
+    [dartx.distanceModel]: core.String,
+    [dartx.maxDistance]: core.num,
+    [dartx.panningModel]: core.String,
+    [dartx.refDistance]: core.num,
+    [dartx.rolloffFactor]: core.num
+  }),
+  methods: () => ({
+    [dartx.setOrientation]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
+    [dartx.setPosition]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
+    [dartx.setVelocity]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num])
+  })
+});
+dart.registerExtension(dart.global.PannerNode, web_audio.PannerNode);
+dart.registerExtension(dart.global.AudioPannerNode, web_audio.PannerNode);
+dart.registerExtension(dart.global.webkitAudioPannerNode, web_audio.PannerNode);
+web_audio.PeriodicWave = class PeriodicWave extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_audio.PeriodicWave, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.PeriodicWave, [])})
+});
+dart.registerExtension(dart.global.PeriodicWave, web_audio.PeriodicWave);
+dart.defineExtensionNames([
+  'setEventListener',
+  'onAudioProcess',
+  'bufferSize'
+]);
+web_audio.ScriptProcessorNode = class ScriptProcessorNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.bufferSize]() {
+    return this.bufferSize;
+  }
+  [dartx.setEventListener](...args) {
+    return this.setEventListener.apply(this, args);
+  }
+  get [dartx.onAudioProcess]() {
+    return web_audio.ScriptProcessorNode.audioProcessEvent.forTarget(this);
+  }
+};
+dart.setSignature(web_audio.ScriptProcessorNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.ScriptProcessorNode, [])}),
+  fields: () => ({[dartx.bufferSize]: core.int}),
+  getters: () => ({[dartx.onAudioProcess]: dart.definiteFunctionType(async.Stream$(web_audio.AudioProcessingEvent), [])}),
+  methods: () => ({[dartx.setEventListener]: dart.definiteFunctionType(dart.void, [html$.EventListener])}),
+  sfields: () => ({audioProcessEvent: EventStreamProviderOfAudioProcessingEvent()})
+});
+web_audio.ScriptProcessorNode.audioProcessEvent = dart.const(new (EventStreamProviderOfAudioProcessingEvent())('audioprocess'));
+dart.registerExtension(dart.global.ScriptProcessorNode, web_audio.ScriptProcessorNode);
+dart.registerExtension(dart.global.JavaScriptAudioNode, web_audio.ScriptProcessorNode);
+dart.defineExtensionNames([
+  'curve',
+  'oversample'
+]);
+web_audio.WaveShaperNode = class WaveShaperNode extends web_audio.AudioNode {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.curve]() {
+    return this.curve;
+  }
+  set [dartx.curve](value) {
+    this.curve = value;
+  }
+  get [dartx.oversample]() {
+    return this.oversample;
+  }
+  set [dartx.oversample](value) {
+    this.oversample = value;
+  }
+};
+dart.setSignature(web_audio.WaveShaperNode, {
+  constructors: () => ({_: dart.definiteFunctionType(web_audio.WaveShaperNode, [])}),
+  fields: () => ({
+    [dartx.curve]: typed_data.Float32List,
+    [dartx.oversample]: core.String
+  })
+});
+dart.registerExtension(dart.global.WaveShaperNode, web_audio.WaveShaperNode);
+const _getContextAttributes_1$ = Symbol('_getContextAttributes_1');
+const _texImage2D_1 = Symbol('_texImage2D_1');
+const _texImage2D_2 = Symbol('_texImage2D_2');
+const _texImage2D_3 = Symbol('_texImage2D_3');
+const _texImage2D_4 = Symbol('_texImage2D_4');
+const _texImage2D_5 = Symbol('_texImage2D_5');
+const _texImage2DImageData_1 = Symbol('_texImage2DImageData_1');
+const _texSubImage2D_1 = Symbol('_texSubImage2D_1');
+const _texSubImage2D_2 = Symbol('_texSubImage2D_2');
+const _texSubImage2D_3 = Symbol('_texSubImage2D_3');
+const _texSubImage2D_4 = Symbol('_texSubImage2D_4');
+const _texSubImage2D_5 = Symbol('_texSubImage2D_5');
+const _texSubImage2DImageData_1 = Symbol('_texSubImage2DImageData_1');
+dart.defineExtensionNames([
+  'activeTexture',
+  'attachShader',
+  'bindAttribLocation',
+  'bindBuffer',
+  'bindFramebuffer',
+  'bindRenderbuffer',
+  'bindTexture',
+  'blendColor',
+  'blendEquation',
+  'blendEquationSeparate',
+  'blendFunc',
+  'blendFuncSeparate',
+  'bufferByteData',
+  'bufferData',
+  'bufferDataTyped',
+  'bufferSubByteData',
+  'bufferSubData',
+  'bufferSubDataTyped',
+  'checkFramebufferStatus',
+  'clear',
+  'clearColor',
+  'clearDepth',
+  'clearStencil',
+  'colorMask',
+  'compileShader',
+  'compressedTexImage2D',
+  'compressedTexSubImage2D',
+  'copyTexImage2D',
+  'copyTexSubImage2D',
+  'createBuffer',
+  'createFramebuffer',
+  'createProgram',
+  'createRenderbuffer',
+  'createShader',
+  'createTexture',
+  'cullFace',
+  'deleteBuffer',
+  'deleteFramebuffer',
+  'deleteProgram',
+  'deleteRenderbuffer',
+  'deleteShader',
+  'deleteTexture',
+  'depthFunc',
+  'depthMask',
+  'depthRange',
+  'detachShader',
+  'disable',
+  'disableVertexAttribArray',
+  'drawArrays',
+  'drawElements',
+  'enable',
+  'enableVertexAttribArray',
+  'finish',
+  'flush',
+  'framebufferRenderbuffer',
+  'framebufferTexture2D',
+  'frontFace',
+  'generateMipmap',
+  'getActiveAttrib',
+  'getActiveUniform',
+  'getAttachedShaders',
+  'getAttribLocation',
+  'getBufferParameter',
+  'getContextAttributes',
+  'getError',
+  'getExtension',
+  'getFramebufferAttachmentParameter',
+  'getParameter',
+  'getProgramInfoLog',
+  'getProgramParameter',
+  'getRenderbufferParameter',
+  'getShaderInfoLog',
+  'getShaderParameter',
+  'getShaderPrecisionFormat',
+  'getShaderSource',
+  'getSupportedExtensions',
+  'getTexParameter',
+  'getUniform',
+  'getUniformLocation',
+  'getVertexAttrib',
+  'getVertexAttribOffset',
+  'hint',
+  'isBuffer',
+  'isContextLost',
+  'isEnabled',
+  'isFramebuffer',
+  'isProgram',
+  'isRenderbuffer',
+  'isShader',
+  'isTexture',
+  'lineWidth',
+  'linkProgram',
+  'pixelStorei',
+  'polygonOffset',
+  'readPixels',
+  'renderbufferStorage',
+  'sampleCoverage',
+  'scissor',
+  'shaderSource',
+  'stencilFunc',
+  'stencilFuncSeparate',
+  'stencilMask',
+  'stencilMaskSeparate',
+  'stencilOp',
+  'stencilOpSeparate',
+  'texImage2D',
+  'texImage2DCanvas',
+  'texImage2DImage',
+  'texImage2DImageData',
+  'texImage2DVideo',
+  'texParameterf',
+  'texParameteri',
+  'texSubImage2D',
+  'texSubImage2DCanvas',
+  'texSubImage2DImage',
+  'texSubImage2DImageData',
+  'texSubImage2DVideo',
+  'uniform1f',
+  'uniform1fv',
+  'uniform1i',
+  'uniform1iv',
+  'uniform2f',
+  'uniform2fv',
+  'uniform2i',
+  'uniform2iv',
+  'uniform3f',
+  'uniform3fv',
+  'uniform3i',
+  'uniform3iv',
+  'uniform4f',
+  'uniform4fv',
+  'uniform4i',
+  'uniform4iv',
+  'uniformMatrix2fv',
+  'uniformMatrix3fv',
+  'uniformMatrix4fv',
+  'useProgram',
+  'validateProgram',
+  'vertexAttrib1f',
+  'vertexAttrib1fv',
+  'vertexAttrib2f',
+  'vertexAttrib2fv',
+  'vertexAttrib3f',
+  'vertexAttrib3fv',
+  'vertexAttrib4f',
+  'vertexAttrib4fv',
+  'vertexAttribPointer',
+  'viewport',
+  'texImage2DUntyped',
+  'texImage2DTyped',
+  'texSubImage2DUntyped',
+  'texSubImage2DTyped',
+  'canvas',
+  'drawingBufferHeight',
+  'drawingBufferWidth'
+]);
+web_gl.RenderingContext = class RenderingContext extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!window.WebGLRenderingContext;
+  }
+  get [dartx.canvas]() {
+    return this.canvas;
+  }
+  get [dartx.drawingBufferHeight]() {
+    return this.drawingBufferHeight;
+  }
+  get [dartx.drawingBufferWidth]() {
+    return this.drawingBufferWidth;
+  }
+  [dartx.activeTexture](...args) {
+    return this.activeTexture.apply(this, args);
+  }
+  [dartx.attachShader](...args) {
+    return this.attachShader.apply(this, args);
+  }
+  [dartx.bindAttribLocation](...args) {
+    return this.bindAttribLocation.apply(this, args);
+  }
+  [dartx.bindBuffer](...args) {
+    return this.bindBuffer.apply(this, args);
+  }
+  [dartx.bindFramebuffer](...args) {
+    return this.bindFramebuffer.apply(this, args);
+  }
+  [dartx.bindRenderbuffer](...args) {
+    return this.bindRenderbuffer.apply(this, args);
+  }
+  [dartx.bindTexture](...args) {
+    return this.bindTexture.apply(this, args);
+  }
+  [dartx.blendColor](...args) {
+    return this.blendColor.apply(this, args);
+  }
+  [dartx.blendEquation](...args) {
+    return this.blendEquation.apply(this, args);
+  }
+  [dartx.blendEquationSeparate](...args) {
+    return this.blendEquationSeparate.apply(this, args);
+  }
+  [dartx.blendFunc](...args) {
+    return this.blendFunc.apply(this, args);
+  }
+  [dartx.blendFuncSeparate](...args) {
+    return this.blendFuncSeparate.apply(this, args);
+  }
+  [dartx.bufferByteData](...args) {
+    return this.bufferData.apply(this, args);
+  }
+  [dartx.bufferData](...args) {
+    return this.bufferData.apply(this, args);
+  }
+  [dartx.bufferDataTyped](...args) {
+    return this.bufferData.apply(this, args);
+  }
+  [dartx.bufferSubByteData](...args) {
+    return this.bufferSubData.apply(this, args);
+  }
+  [dartx.bufferSubData](...args) {
+    return this.bufferSubData.apply(this, args);
+  }
+  [dartx.bufferSubDataTyped](...args) {
+    return this.bufferSubData.apply(this, args);
+  }
+  [dartx.checkFramebufferStatus](...args) {
+    return this.checkFramebufferStatus.apply(this, args);
+  }
+  [dartx.clear](...args) {
+    return this.clear.apply(this, args);
+  }
+  [dartx.clearColor](...args) {
+    return this.clearColor.apply(this, args);
+  }
+  [dartx.clearDepth](...args) {
+    return this.clearDepth.apply(this, args);
+  }
+  [dartx.clearStencil](...args) {
+    return this.clearStencil.apply(this, args);
+  }
+  [dartx.colorMask](...args) {
+    return this.colorMask.apply(this, args);
+  }
+  [dartx.compileShader](...args) {
+    return this.compileShader.apply(this, args);
+  }
+  [dartx.compressedTexImage2D](...args) {
+    return this.compressedTexImage2D.apply(this, args);
+  }
+  [dartx.compressedTexSubImage2D](...args) {
+    return this.compressedTexSubImage2D.apply(this, args);
+  }
+  [dartx.copyTexImage2D](...args) {
+    return this.copyTexImage2D.apply(this, args);
+  }
+  [dartx.copyTexSubImage2D](...args) {
+    return this.copyTexSubImage2D.apply(this, args);
+  }
+  [dartx.createBuffer](...args) {
+    return this.createBuffer.apply(this, args);
+  }
+  [dartx.createFramebuffer](...args) {
+    return this.createFramebuffer.apply(this, args);
+  }
+  [dartx.createProgram](...args) {
+    return this.createProgram.apply(this, args);
+  }
+  [dartx.createRenderbuffer](...args) {
+    return this.createRenderbuffer.apply(this, args);
+  }
+  [dartx.createShader](...args) {
+    return this.createShader.apply(this, args);
+  }
+  [dartx.createTexture](...args) {
+    return this.createTexture.apply(this, args);
+  }
+  [dartx.cullFace](...args) {
+    return this.cullFace.apply(this, args);
+  }
+  [dartx.deleteBuffer](...args) {
+    return this.deleteBuffer.apply(this, args);
+  }
+  [dartx.deleteFramebuffer](...args) {
+    return this.deleteFramebuffer.apply(this, args);
+  }
+  [dartx.deleteProgram](...args) {
+    return this.deleteProgram.apply(this, args);
+  }
+  [dartx.deleteRenderbuffer](...args) {
+    return this.deleteRenderbuffer.apply(this, args);
+  }
+  [dartx.deleteShader](...args) {
+    return this.deleteShader.apply(this, args);
+  }
+  [dartx.deleteTexture](...args) {
+    return this.deleteTexture.apply(this, args);
+  }
+  [dartx.depthFunc](...args) {
+    return this.depthFunc.apply(this, args);
+  }
+  [dartx.depthMask](...args) {
+    return this.depthMask.apply(this, args);
+  }
+  [dartx.depthRange](...args) {
+    return this.depthRange.apply(this, args);
+  }
+  [dartx.detachShader](...args) {
+    return this.detachShader.apply(this, args);
+  }
+  [dartx.disable](...args) {
+    return this.disable.apply(this, args);
+  }
+  [dartx.disableVertexAttribArray](...args) {
+    return this.disableVertexAttribArray.apply(this, args);
+  }
+  [dartx.drawArrays](...args) {
+    return this.drawArrays.apply(this, args);
+  }
+  [dartx.drawElements](...args) {
+    return this.drawElements.apply(this, args);
+  }
+  [dartx.enable](...args) {
+    return this.enable.apply(this, args);
+  }
+  [dartx.enableVertexAttribArray](...args) {
+    return this.enableVertexAttribArray.apply(this, args);
+  }
+  [dartx.finish](...args) {
+    return this.finish.apply(this, args);
+  }
+  [dartx.flush](...args) {
+    return this.flush.apply(this, args);
+  }
+  [dartx.framebufferRenderbuffer](...args) {
+    return this.framebufferRenderbuffer.apply(this, args);
+  }
+  [dartx.framebufferTexture2D](...args) {
+    return this.framebufferTexture2D.apply(this, args);
+  }
+  [dartx.frontFace](...args) {
+    return this.frontFace.apply(this, args);
+  }
+  [dartx.generateMipmap](...args) {
+    return this.generateMipmap.apply(this, args);
+  }
+  [dartx.getActiveAttrib](...args) {
+    return this.getActiveAttrib.apply(this, args);
+  }
+  [dartx.getActiveUniform](...args) {
+    return this.getActiveUniform.apply(this, args);
+  }
+  [dartx.getAttachedShaders](...args) {
+    return this.getAttachedShaders.apply(this, args);
+  }
+  [dartx.getAttribLocation](...args) {
+    return this.getAttribLocation.apply(this, args);
+  }
+  [dartx.getBufferParameter](...args) {
+    return this.getBufferParameter.apply(this, args);
+  }
+  [dartx.getContextAttributes]() {
+    return web_gl.ContextAttributes._check(html_common.convertNativeToDart_ContextAttributes(this[_getContextAttributes_1$]()));
+  }
+  [_getContextAttributes_1$](...args) {
+    return this.getContextAttributes.apply(this, args);
+  }
+  [dartx.getError](...args) {
+    return this.getError.apply(this, args);
+  }
+  [dartx.getExtension](...args) {
+    return this.getExtension.apply(this, args);
+  }
+  [dartx.getFramebufferAttachmentParameter](...args) {
+    return this.getFramebufferAttachmentParameter.apply(this, args);
+  }
+  [dartx.getParameter](...args) {
+    return this.getParameter.apply(this, args);
+  }
+  [dartx.getProgramInfoLog](...args) {
+    return this.getProgramInfoLog.apply(this, args);
+  }
+  [dartx.getProgramParameter](...args) {
+    return this.getProgramParameter.apply(this, args);
+  }
+  [dartx.getRenderbufferParameter](...args) {
+    return this.getRenderbufferParameter.apply(this, args);
+  }
+  [dartx.getShaderInfoLog](...args) {
+    return this.getShaderInfoLog.apply(this, args);
+  }
+  [dartx.getShaderParameter](...args) {
+    return this.getShaderParameter.apply(this, args);
+  }
+  [dartx.getShaderPrecisionFormat](...args) {
+    return this.getShaderPrecisionFormat.apply(this, args);
+  }
+  [dartx.getShaderSource](...args) {
+    return this.getShaderSource.apply(this, args);
+  }
+  [dartx.getSupportedExtensions](...args) {
+    return this.getSupportedExtensions.apply(this, args);
+  }
+  [dartx.getTexParameter](...args) {
+    return this.getTexParameter.apply(this, args);
+  }
+  [dartx.getUniform](...args) {
+    return this.getUniform.apply(this, args);
+  }
+  [dartx.getUniformLocation](...args) {
+    return this.getUniformLocation.apply(this, args);
+  }
+  [dartx.getVertexAttrib](...args) {
+    return this.getVertexAttrib.apply(this, args);
+  }
+  [dartx.getVertexAttribOffset](...args) {
+    return this.getVertexAttribOffset.apply(this, args);
+  }
+  [dartx.hint](...args) {
+    return this.hint.apply(this, args);
+  }
+  [dartx.isBuffer](...args) {
+    return this.isBuffer.apply(this, args);
+  }
+  [dartx.isContextLost](...args) {
+    return this.isContextLost.apply(this, args);
+  }
+  [dartx.isEnabled](...args) {
+    return this.isEnabled.apply(this, args);
+  }
+  [dartx.isFramebuffer](...args) {
+    return this.isFramebuffer.apply(this, args);
+  }
+  [dartx.isProgram](...args) {
+    return this.isProgram.apply(this, args);
+  }
+  [dartx.isRenderbuffer](...args) {
+    return this.isRenderbuffer.apply(this, args);
+  }
+  [dartx.isShader](...args) {
+    return this.isShader.apply(this, args);
+  }
+  [dartx.isTexture](...args) {
+    return this.isTexture.apply(this, args);
+  }
+  [dartx.lineWidth](...args) {
+    return this.lineWidth.apply(this, args);
+  }
+  [dartx.linkProgram](...args) {
+    return this.linkProgram.apply(this, args);
+  }
+  [dartx.pixelStorei](...args) {
+    return this.pixelStorei.apply(this, args);
+  }
+  [dartx.polygonOffset](...args) {
+    return this.polygonOffset.apply(this, args);
+  }
+  [dartx.readPixels](...args) {
+    return this.readPixels.apply(this, args);
+  }
+  [dartx.renderbufferStorage](...args) {
+    return this.renderbufferStorage.apply(this, args);
+  }
+  [dartx.sampleCoverage](...args) {
+    return this.sampleCoverage.apply(this, args);
+  }
+  [dartx.scissor](...args) {
+    return this.scissor.apply(this, args);
+  }
+  [dartx.shaderSource](...args) {
+    return this.shaderSource.apply(this, args);
+  }
+  [dartx.stencilFunc](...args) {
+    return this.stencilFunc.apply(this, args);
+  }
+  [dartx.stencilFuncSeparate](...args) {
+    return this.stencilFuncSeparate.apply(this, args);
+  }
+  [dartx.stencilMask](...args) {
+    return this.stencilMask.apply(this, args);
+  }
+  [dartx.stencilMaskSeparate](...args) {
+    return this.stencilMaskSeparate.apply(this, args);
+  }
+  [dartx.stencilOp](...args) {
+    return this.stencilOp.apply(this, args);
+  }
+  [dartx.stencilOpSeparate](...args) {
+    return this.stencilOpSeparate.apply(this, args);
+  }
+  [dartx.texImage2D](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels) {
+    if (format === void 0) format = null;
+    if (type === void 0) type = null;
+    if (pixels === void 0) pixels = null;
+    if (pixels != null && type != null && format != null && typeof border_OR_canvas_OR_image_OR_pixels_OR_video == 'number') {
+      this[_texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
       return;
     }
-    [_texImage2DImageData_1](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texImage2DVideo](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texParameterf](...args) {
-      return this.texParameterf.apply(this, args);
-    }
-    [dartx.texParameteri](...args) {
-      return this.texParameteri.apply(this, args);
-    }
-    [dartx.texSubImage2D](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels) {
-      if (type === void 0) type = null;
-      if (pixels === void 0) pixels = null;
-      if (pixels != null && type != null && typeof canvas_OR_format_OR_image_OR_pixels_OR_video == 'number') {
-        this[_texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
-        return;
-      }
-      if ((html$.ImageData.is(canvas_OR_format_OR_image_OR_pixels_OR_video) || canvas_OR_format_OR_image_OR_pixels_OR_video == null) && type == null && pixels == null) {
-        let pixels_1 = html_common.convertDartToNative_ImageData(html$.ImageData._check(canvas_OR_format_OR_image_OR_pixels_OR_video));
-        this[_texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
-        return;
-      }
-      if (html$.ImageElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
-        this[_texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
-        return;
-      }
-      if (html$.CanvasElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
-        this[_texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
-        return;
-      }
-      if (html$.VideoElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
-        this[_texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
-        return;
-      }
-      dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
-    }
-    [_texSubImage2D_1](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [_texSubImage2D_2](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [_texSubImage2D_3](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [_texSubImage2D_4](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [_texSubImage2D_5](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [dartx.texSubImage2DCanvas](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [dartx.texSubImage2DImage](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [dartx.texSubImage2DImageData](target, level, xoffset, yoffset, format, type, pixels) {
-      let pixels_1 = html_common.convertDartToNative_ImageData(pixels);
-      this[_texSubImage2DImageData_1](target, level, xoffset, yoffset, format, type, pixels_1);
+    if ((html$.ImageData.is(border_OR_canvas_OR_image_OR_pixels_OR_video) || border_OR_canvas_OR_image_OR_pixels_OR_video == null) && format == null && type == null && pixels == null) {
+      let pixels_1 = html_common.convertDartToNative_ImageData(html$.ImageData._check(border_OR_canvas_OR_image_OR_pixels_OR_video));
+      this[_texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
       return;
     }
-    [_texSubImage2DImageData_1](...args) {
-      return this.texSubImage2D.apply(this, args);
+    if (html$.ImageElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
+      this[_texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
+      return;
     }
-    [dartx.texSubImage2DVideo](...args) {
-      return this.texSubImage2D.apply(this, args);
+    if (html$.CanvasElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
+      this[_texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
+      return;
     }
-    [dartx.uniform1f](...args) {
-      return this.uniform1f.apply(this, args);
+    if (html$.VideoElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
+      this[_texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
+      return;
     }
-    [dartx.uniform1fv](...args) {
-      return this.uniform1fv.apply(this, args);
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_texImage2D_1](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [_texImage2D_2](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [_texImage2D_3](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [_texImage2D_4](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [_texImage2D_5](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texImage2DCanvas](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texImage2DImage](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texImage2DImageData](target, level, internalformat, format, type, pixels) {
+    let pixels_1 = html_common.convertDartToNative_ImageData(pixels);
+    this[_texImage2DImageData_1](target, level, internalformat, format, type, pixels_1);
+    return;
+  }
+  [_texImage2DImageData_1](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texImage2DVideo](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texParameterf](...args) {
+    return this.texParameterf.apply(this, args);
+  }
+  [dartx.texParameteri](...args) {
+    return this.texParameteri.apply(this, args);
+  }
+  [dartx.texSubImage2D](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels) {
+    if (type === void 0) type = null;
+    if (pixels === void 0) pixels = null;
+    if (pixels != null && type != null && typeof canvas_OR_format_OR_image_OR_pixels_OR_video == 'number') {
+      this[_texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
+      return;
     }
-    [dartx.uniform1i](...args) {
-      return this.uniform1i.apply(this, args);
+    if ((html$.ImageData.is(canvas_OR_format_OR_image_OR_pixels_OR_video) || canvas_OR_format_OR_image_OR_pixels_OR_video == null) && type == null && pixels == null) {
+      let pixels_1 = html_common.convertDartToNative_ImageData(html$.ImageData._check(canvas_OR_format_OR_image_OR_pixels_OR_video));
+      this[_texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
+      return;
     }
-    [dartx.uniform1iv](...args) {
-      return this.uniform1iv.apply(this, args);
+    if (html$.ImageElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
+      this[_texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
+      return;
     }
-    [dartx.uniform2f](...args) {
-      return this.uniform2f.apply(this, args);
+    if (html$.CanvasElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
+      this[_texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
+      return;
     }
-    [dartx.uniform2fv](...args) {
-      return this.uniform2fv.apply(this, args);
+    if (html$.VideoElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
+      this[_texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
+      return;
     }
-    [dartx.uniform2i](...args) {
-      return this.uniform2i.apply(this, args);
+    dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
+  }
+  [_texSubImage2D_1](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [_texSubImage2D_2](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [_texSubImage2D_3](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [_texSubImage2D_4](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [_texSubImage2D_5](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [dartx.texSubImage2DCanvas](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [dartx.texSubImage2DImage](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [dartx.texSubImage2DImageData](target, level, xoffset, yoffset, format, type, pixels) {
+    let pixels_1 = html_common.convertDartToNative_ImageData(pixels);
+    this[_texSubImage2DImageData_1](target, level, xoffset, yoffset, format, type, pixels_1);
+    return;
+  }
+  [_texSubImage2DImageData_1](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [dartx.texSubImage2DVideo](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [dartx.uniform1f](...args) {
+    return this.uniform1f.apply(this, args);
+  }
+  [dartx.uniform1fv](...args) {
+    return this.uniform1fv.apply(this, args);
+  }
+  [dartx.uniform1i](...args) {
+    return this.uniform1i.apply(this, args);
+  }
+  [dartx.uniform1iv](...args) {
+    return this.uniform1iv.apply(this, args);
+  }
+  [dartx.uniform2f](...args) {
+    return this.uniform2f.apply(this, args);
+  }
+  [dartx.uniform2fv](...args) {
+    return this.uniform2fv.apply(this, args);
+  }
+  [dartx.uniform2i](...args) {
+    return this.uniform2i.apply(this, args);
+  }
+  [dartx.uniform2iv](...args) {
+    return this.uniform2iv.apply(this, args);
+  }
+  [dartx.uniform3f](...args) {
+    return this.uniform3f.apply(this, args);
+  }
+  [dartx.uniform3fv](...args) {
+    return this.uniform3fv.apply(this, args);
+  }
+  [dartx.uniform3i](...args) {
+    return this.uniform3i.apply(this, args);
+  }
+  [dartx.uniform3iv](...args) {
+    return this.uniform3iv.apply(this, args);
+  }
+  [dartx.uniform4f](...args) {
+    return this.uniform4f.apply(this, args);
+  }
+  [dartx.uniform4fv](...args) {
+    return this.uniform4fv.apply(this, args);
+  }
+  [dartx.uniform4i](...args) {
+    return this.uniform4i.apply(this, args);
+  }
+  [dartx.uniform4iv](...args) {
+    return this.uniform4iv.apply(this, args);
+  }
+  [dartx.uniformMatrix2fv](...args) {
+    return this.uniformMatrix2fv.apply(this, args);
+  }
+  [dartx.uniformMatrix3fv](...args) {
+    return this.uniformMatrix3fv.apply(this, args);
+  }
+  [dartx.uniformMatrix4fv](...args) {
+    return this.uniformMatrix4fv.apply(this, args);
+  }
+  [dartx.useProgram](...args) {
+    return this.useProgram.apply(this, args);
+  }
+  [dartx.validateProgram](...args) {
+    return this.validateProgram.apply(this, args);
+  }
+  [dartx.vertexAttrib1f](...args) {
+    return this.vertexAttrib1f.apply(this, args);
+  }
+  [dartx.vertexAttrib1fv](...args) {
+    return this.vertexAttrib1fv.apply(this, args);
+  }
+  [dartx.vertexAttrib2f](...args) {
+    return this.vertexAttrib2f.apply(this, args);
+  }
+  [dartx.vertexAttrib2fv](...args) {
+    return this.vertexAttrib2fv.apply(this, args);
+  }
+  [dartx.vertexAttrib3f](...args) {
+    return this.vertexAttrib3f.apply(this, args);
+  }
+  [dartx.vertexAttrib3fv](...args) {
+    return this.vertexAttrib3fv.apply(this, args);
+  }
+  [dartx.vertexAttrib4f](...args) {
+    return this.vertexAttrib4f.apply(this, args);
+  }
+  [dartx.vertexAttrib4fv](...args) {
+    return this.vertexAttrib4fv.apply(this, args);
+  }
+  [dartx.vertexAttribPointer](...args) {
+    return this.vertexAttribPointer.apply(this, args);
+  }
+  [dartx.viewport](...args) {
+    return this.viewport.apply(this, args);
+  }
+  [dartx.texImage2DUntyped](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texImage2DTyped](...args) {
+    return this.texImage2D.apply(this, args);
+  }
+  [dartx.texSubImage2DUntyped](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+  [dartx.texSubImage2DTyped](...args) {
+    return this.texSubImage2D.apply(this, args);
+  }
+};
+web_gl.RenderingContext[dart.implements] = () => [html$.CanvasRenderingContext];
+dart.setSignature(web_gl.RenderingContext, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.RenderingContext, [])}),
+  fields: () => ({
+    [dartx.canvas]: html$.CanvasElement,
+    [dartx.drawingBufferHeight]: core.int,
+    [dartx.drawingBufferWidth]: core.int
+  }),
+  methods: () => ({
+    [dartx.activeTexture]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.attachShader]: dart.definiteFunctionType(dart.void, [web_gl.Program, web_gl.Shader]),
+    [dartx.bindAttribLocation]: dart.definiteFunctionType(dart.void, [web_gl.Program, core.int, core.String]),
+    [dartx.bindBuffer]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Buffer]),
+    [dartx.bindFramebuffer]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Framebuffer]),
+    [dartx.bindRenderbuffer]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Renderbuffer]),
+    [dartx.bindTexture]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Texture]),
+    [dartx.blendColor]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.blendEquation]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.blendEquationSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.blendFunc]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.blendFuncSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.bufferByteData]: dart.definiteFunctionType(dart.void, [core.int, typed_data.ByteBuffer, core.int]),
+    [dartx.bufferData]: dart.definiteFunctionType(dart.void, [core.int, dart.dynamic, core.int]),
+    [dartx.bufferDataTyped]: dart.definiteFunctionType(dart.void, [core.int, typed_data.TypedData, core.int]),
+    [dartx.bufferSubByteData]: dart.definiteFunctionType(dart.void, [core.int, core.int, typed_data.ByteBuffer]),
+    [dartx.bufferSubData]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
+    [dartx.bufferSubDataTyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, typed_data.TypedData]),
+    [dartx.checkFramebufferStatus]: dart.definiteFunctionType(core.int, [core.int]),
+    [dartx.clear]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.clearColor]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
+    [dartx.clearDepth]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.clearStencil]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.colorMask]: dart.definiteFunctionType(dart.void, [core.bool, core.bool, core.bool, core.bool]),
+    [dartx.compileShader]: dart.definiteFunctionType(dart.void, [web_gl.Shader]),
+    [dartx.compressedTexImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
+    [dartx.compressedTexSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
+    [dartx.copyTexImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
+    [dartx.copyTexSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
+    [dartx.createBuffer]: dart.definiteFunctionType(web_gl.Buffer, []),
+    [dartx.createFramebuffer]: dart.definiteFunctionType(web_gl.Framebuffer, []),
+    [dartx.createProgram]: dart.definiteFunctionType(web_gl.Program, []),
+    [dartx.createRenderbuffer]: dart.definiteFunctionType(web_gl.Renderbuffer, []),
+    [dartx.createShader]: dart.definiteFunctionType(web_gl.Shader, [core.int]),
+    [dartx.createTexture]: dart.definiteFunctionType(web_gl.Texture, []),
+    [dartx.cullFace]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.deleteBuffer]: dart.definiteFunctionType(dart.void, [web_gl.Buffer]),
+    [dartx.deleteFramebuffer]: dart.definiteFunctionType(dart.void, [web_gl.Framebuffer]),
+    [dartx.deleteProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
+    [dartx.deleteRenderbuffer]: dart.definiteFunctionType(dart.void, [web_gl.Renderbuffer]),
+    [dartx.deleteShader]: dart.definiteFunctionType(dart.void, [web_gl.Shader]),
+    [dartx.deleteTexture]: dart.definiteFunctionType(dart.void, [web_gl.Texture]),
+    [dartx.depthFunc]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.depthMask]: dart.definiteFunctionType(dart.void, [core.bool]),
+    [dartx.depthRange]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.detachShader]: dart.definiteFunctionType(dart.void, [web_gl.Program, web_gl.Shader]),
+    [dartx.disable]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.disableVertexAttribArray]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.drawArrays]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
+    [dartx.drawElements]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.enable]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.enableVertexAttribArray]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.finish]: dart.definiteFunctionType(dart.void, []),
+    [dartx.flush]: dart.definiteFunctionType(dart.void, []),
+    [dartx.framebufferRenderbuffer]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, web_gl.Renderbuffer]),
+    [dartx.framebufferTexture2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, web_gl.Texture, core.int]),
+    [dartx.frontFace]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.generateMipmap]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.getActiveAttrib]: dart.definiteFunctionType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
+    [dartx.getActiveUniform]: dart.definiteFunctionType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
+    [dartx.getAttachedShaders]: dart.definiteFunctionType(core.List$(web_gl.Shader), [web_gl.Program]),
+    [dartx.getAttribLocation]: dart.definiteFunctionType(core.int, [web_gl.Program, core.String]),
+    [dartx.getBufferParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
+    [dartx.getContextAttributes]: dart.definiteFunctionType(web_gl.ContextAttributes, []),
+    [_getContextAttributes_1$]: dart.definiteFunctionType(dart.dynamic, []),
+    [dartx.getError]: dart.definiteFunctionType(core.int, []),
+    [dartx.getExtension]: dart.definiteFunctionType(core.Object, [core.String]),
+    [dartx.getFramebufferAttachmentParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int, core.int]),
+    [dartx.getParameter]: dart.definiteFunctionType(core.Object, [core.int]),
+    [dartx.getProgramInfoLog]: dart.definiteFunctionType(core.String, [web_gl.Program]),
+    [dartx.getProgramParameter]: dart.definiteFunctionType(core.Object, [web_gl.Program, core.int]),
+    [dartx.getRenderbufferParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
+    [dartx.getShaderInfoLog]: dart.definiteFunctionType(core.String, [web_gl.Shader]),
+    [dartx.getShaderParameter]: dart.definiteFunctionType(core.Object, [web_gl.Shader, core.int]),
+    [dartx.getShaderPrecisionFormat]: dart.definiteFunctionType(web_gl.ShaderPrecisionFormat, [core.int, core.int]),
+    [dartx.getShaderSource]: dart.definiteFunctionType(core.String, [web_gl.Shader]),
+    [dartx.getSupportedExtensions]: dart.definiteFunctionType(core.List$(core.String), []),
+    [dartx.getTexParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
+    [dartx.getUniform]: dart.definiteFunctionType(core.Object, [web_gl.Program, web_gl.UniformLocation]),
+    [dartx.getUniformLocation]: dart.definiteFunctionType(web_gl.UniformLocation, [web_gl.Program, core.String]),
+    [dartx.getVertexAttrib]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
+    [dartx.getVertexAttribOffset]: dart.definiteFunctionType(core.int, [core.int, core.int]),
+    [dartx.hint]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.isBuffer]: dart.definiteFunctionType(core.bool, [web_gl.Buffer]),
+    [dartx.isContextLost]: dart.definiteFunctionType(core.bool, []),
+    [dartx.isEnabled]: dart.definiteFunctionType(core.bool, [core.int]),
+    [dartx.isFramebuffer]: dart.definiteFunctionType(core.bool, [web_gl.Framebuffer]),
+    [dartx.isProgram]: dart.definiteFunctionType(core.bool, [web_gl.Program]),
+    [dartx.isRenderbuffer]: dart.definiteFunctionType(core.bool, [web_gl.Renderbuffer]),
+    [dartx.isShader]: dart.definiteFunctionType(core.bool, [web_gl.Shader]),
+    [dartx.isTexture]: dart.definiteFunctionType(core.bool, [web_gl.Texture]),
+    [dartx.lineWidth]: dart.definiteFunctionType(dart.void, [core.num]),
+    [dartx.linkProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
+    [dartx.pixelStorei]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.polygonOffset]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
+    [dartx.readPixels]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
+    [dartx.renderbufferStorage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.sampleCoverage]: dart.definiteFunctionType(dart.void, [core.num, core.bool]),
+    [dartx.scissor]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.shaderSource]: dart.definiteFunctionType(dart.void, [web_gl.Shader, core.String]),
+    [dartx.stencilFunc]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
+    [dartx.stencilFuncSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.stencilMask]: dart.definiteFunctionType(dart.void, [core.int]),
+    [dartx.stencilMaskSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
+    [dartx.stencilOp]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
+    [dartx.stencilOpSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.texImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, core.int, typed_data.TypedData]),
+    [_texImage2D_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, typed_data.TypedData]),
+    [_texImage2D_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_texImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
+    [_texImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
+    [_texImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
+    [dartx.texImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.CanvasElement]),
+    [dartx.texImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.ImageElement]),
+    [dartx.texImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.ImageData]),
+    [_texImage2DImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [dartx.texImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.VideoElement]),
+    [dartx.texParameterf]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.num]),
+    [dartx.texParameteri]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
+    [dartx.texSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, typed_data.TypedData]),
+    [_texSubImage2D_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, typed_data.TypedData]),
+    [_texSubImage2D_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_texSubImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
+    [_texSubImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
+    [_texSubImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
+    [dartx.texSubImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.CanvasElement]),
+    [dartx.texSubImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.ImageElement]),
+    [dartx.texSubImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.ImageData]),
+    [_texSubImage2DImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [dartx.texSubImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.VideoElement]),
+    [dartx.uniform1f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num]),
+    [dartx.uniform1fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
+    [dartx.uniform1i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int]),
+    [dartx.uniform1iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
+    [dartx.uniform2f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num, core.num]),
+    [dartx.uniform2fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
+    [dartx.uniform2i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int, core.int]),
+    [dartx.uniform2iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
+    [dartx.uniform3f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num]),
+    [dartx.uniform3fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
+    [dartx.uniform3i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int]),
+    [dartx.uniform3iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
+    [dartx.uniform4f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num, core.num]),
+    [dartx.uniform4fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
+    [dartx.uniform4i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int, core.int]),
+    [dartx.uniform4iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
+    [dartx.uniformMatrix2fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.bool, typed_data.Float32List]),
+    [dartx.uniformMatrix3fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.bool, typed_data.Float32List]),
+    [dartx.uniformMatrix4fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.bool, typed_data.Float32List]),
+    [dartx.useProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
+    [dartx.validateProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
+    [dartx.vertexAttrib1f]: dart.definiteFunctionType(dart.void, [core.int, core.num]),
+    [dartx.vertexAttrib1fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
+    [dartx.vertexAttrib2f]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num]),
+    [dartx.vertexAttrib2fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
+    [dartx.vertexAttrib3f]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num, core.num]),
+    [dartx.vertexAttrib3fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
+    [dartx.vertexAttrib4f]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num, core.num, core.num]),
+    [dartx.vertexAttrib4fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
+    [dartx.vertexAttribPointer]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.bool, core.int, core.int]),
+    [dartx.viewport]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.texImage2DUntyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
+    [dartx.texImage2DTyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
+    [dartx.texSubImage2DUntyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
+    [dartx.texSubImage2DTyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData])
+  }),
+  sfields: () => ({
+    ACTIVE_ATTRIBUTES: core.int,
+    ACTIVE_TEXTURE: core.int,
+    ACTIVE_UNIFORMS: core.int,
+    ALIASED_LINE_WIDTH_RANGE: core.int,
+    ALIASED_POINT_SIZE_RANGE: core.int,
+    ALPHA: core.int,
+    ALPHA_BITS: core.int,
+    ALWAYS: core.int,
+    ARRAY_BUFFER: core.int,
+    ARRAY_BUFFER_BINDING: core.int,
+    ATTACHED_SHADERS: core.int,
+    BACK: core.int,
+    BLEND: core.int,
+    BLEND_COLOR: core.int,
+    BLEND_DST_ALPHA: core.int,
+    BLEND_DST_RGB: core.int,
+    BLEND_EQUATION: core.int,
+    BLEND_EQUATION_ALPHA: core.int,
+    BLEND_EQUATION_RGB: core.int,
+    BLEND_SRC_ALPHA: core.int,
+    BLEND_SRC_RGB: core.int,
+    BLUE_BITS: core.int,
+    BOOL: core.int,
+    BOOL_VEC2: core.int,
+    BOOL_VEC3: core.int,
+    BOOL_VEC4: core.int,
+    BROWSER_DEFAULT_WEBGL: core.int,
+    BUFFER_SIZE: core.int,
+    BUFFER_USAGE: core.int,
+    BYTE: core.int,
+    CCW: core.int,
+    CLAMP_TO_EDGE: core.int,
+    COLOR_ATTACHMENT0: core.int,
+    COLOR_BUFFER_BIT: core.int,
+    COLOR_CLEAR_VALUE: core.int,
+    COLOR_WRITEMASK: core.int,
+    COMPILE_STATUS: core.int,
+    COMPRESSED_TEXTURE_FORMATS: core.int,
+    CONSTANT_ALPHA: core.int,
+    CONSTANT_COLOR: core.int,
+    CONTEXT_LOST_WEBGL: core.int,
+    CULL_FACE: core.int,
+    CULL_FACE_MODE: core.int,
+    CURRENT_PROGRAM: core.int,
+    CURRENT_VERTEX_ATTRIB: core.int,
+    CW: core.int,
+    DECR: core.int,
+    DECR_WRAP: core.int,
+    DELETE_STATUS: core.int,
+    DEPTH_ATTACHMENT: core.int,
+    DEPTH_BITS: core.int,
+    DEPTH_BUFFER_BIT: core.int,
+    DEPTH_CLEAR_VALUE: core.int,
+    DEPTH_COMPONENT: core.int,
+    DEPTH_COMPONENT16: core.int,
+    DEPTH_FUNC: core.int,
+    DEPTH_RANGE: core.int,
+    DEPTH_STENCIL: core.int,
+    DEPTH_STENCIL_ATTACHMENT: core.int,
+    DEPTH_TEST: core.int,
+    DEPTH_WRITEMASK: core.int,
+    DITHER: core.int,
+    DONT_CARE: core.int,
+    DST_ALPHA: core.int,
+    DST_COLOR: core.int,
+    DYNAMIC_DRAW: core.int,
+    ELEMENT_ARRAY_BUFFER: core.int,
+    ELEMENT_ARRAY_BUFFER_BINDING: core.int,
+    EQUAL: core.int,
+    FASTEST: core.int,
+    FLOAT: core.int,
+    FLOAT_MAT2: core.int,
+    FLOAT_MAT3: core.int,
+    FLOAT_MAT4: core.int,
+    FLOAT_VEC2: core.int,
+    FLOAT_VEC3: core.int,
+    FLOAT_VEC4: core.int,
+    FRAGMENT_SHADER: core.int,
+    FRAMEBUFFER: core.int,
+    FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: core.int,
+    FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: core.int,
+    FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: core.int,
+    FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: core.int,
+    FRAMEBUFFER_BINDING: core.int,
+    FRAMEBUFFER_COMPLETE: core.int,
+    FRAMEBUFFER_INCOMPLETE_ATTACHMENT: core.int,
+    FRAMEBUFFER_INCOMPLETE_DIMENSIONS: core.int,
+    FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: core.int,
+    FRAMEBUFFER_UNSUPPORTED: core.int,
+    FRONT: core.int,
+    FRONT_AND_BACK: core.int,
+    FRONT_FACE: core.int,
+    FUNC_ADD: core.int,
+    FUNC_REVERSE_SUBTRACT: core.int,
+    FUNC_SUBTRACT: core.int,
+    GENERATE_MIPMAP_HINT: core.int,
+    GEQUAL: core.int,
+    GREATER: core.int,
+    GREEN_BITS: core.int,
+    HIGH_FLOAT: core.int,
+    HIGH_INT: core.int,
+    IMPLEMENTATION_COLOR_READ_FORMAT: core.int,
+    IMPLEMENTATION_COLOR_READ_TYPE: core.int,
+    INCR: core.int,
+    INCR_WRAP: core.int,
+    INT: core.int,
+    INT_VEC2: core.int,
+    INT_VEC3: core.int,
+    INT_VEC4: core.int,
+    INVALID_ENUM: core.int,
+    INVALID_FRAMEBUFFER_OPERATION: core.int,
+    INVALID_OPERATION: core.int,
+    INVALID_VALUE: core.int,
+    INVERT: core.int,
+    KEEP: core.int,
+    LEQUAL: core.int,
+    LESS: core.int,
+    LINEAR: core.int,
+    LINEAR_MIPMAP_LINEAR: core.int,
+    LINEAR_MIPMAP_NEAREST: core.int,
+    LINES: core.int,
+    LINE_LOOP: core.int,
+    LINE_STRIP: core.int,
+    LINE_WIDTH: core.int,
+    LINK_STATUS: core.int,
+    LOW_FLOAT: core.int,
+    LOW_INT: core.int,
+    LUMINANCE: core.int,
+    LUMINANCE_ALPHA: core.int,
+    MAX_COMBINED_TEXTURE_IMAGE_UNITS: core.int,
+    MAX_CUBE_MAP_TEXTURE_SIZE: core.int,
+    MAX_FRAGMENT_UNIFORM_VECTORS: core.int,
+    MAX_RENDERBUFFER_SIZE: core.int,
+    MAX_TEXTURE_IMAGE_UNITS: core.int,
+    MAX_TEXTURE_SIZE: core.int,
+    MAX_VARYING_VECTORS: core.int,
+    MAX_VERTEX_ATTRIBS: core.int,
+    MAX_VERTEX_TEXTURE_IMAGE_UNITS: core.int,
+    MAX_VERTEX_UNIFORM_VECTORS: core.int,
+    MAX_VIEWPORT_DIMS: core.int,
+    MEDIUM_FLOAT: core.int,
+    MEDIUM_INT: core.int,
+    MIRRORED_REPEAT: core.int,
+    NEAREST: core.int,
+    NEAREST_MIPMAP_LINEAR: core.int,
+    NEAREST_MIPMAP_NEAREST: core.int,
+    NEVER: core.int,
+    NICEST: core.int,
+    NONE: core.int,
+    NOTEQUAL: core.int,
+    NO_ERROR: core.int,
+    ONE: core.int,
+    ONE_MINUS_CONSTANT_ALPHA: core.int,
+    ONE_MINUS_CONSTANT_COLOR: core.int,
+    ONE_MINUS_DST_ALPHA: core.int,
+    ONE_MINUS_DST_COLOR: core.int,
+    ONE_MINUS_SRC_ALPHA: core.int,
+    ONE_MINUS_SRC_COLOR: core.int,
+    OUT_OF_MEMORY: core.int,
+    PACK_ALIGNMENT: core.int,
+    POINTS: core.int,
+    POLYGON_OFFSET_FACTOR: core.int,
+    POLYGON_OFFSET_FILL: core.int,
+    POLYGON_OFFSET_UNITS: core.int,
+    RED_BITS: core.int,
+    RENDERBUFFER: core.int,
+    RENDERBUFFER_ALPHA_SIZE: core.int,
+    RENDERBUFFER_BINDING: core.int,
+    RENDERBUFFER_BLUE_SIZE: core.int,
+    RENDERBUFFER_DEPTH_SIZE: core.int,
+    RENDERBUFFER_GREEN_SIZE: core.int,
+    RENDERBUFFER_HEIGHT: core.int,
+    RENDERBUFFER_INTERNAL_FORMAT: core.int,
+    RENDERBUFFER_RED_SIZE: core.int,
+    RENDERBUFFER_STENCIL_SIZE: core.int,
+    RENDERBUFFER_WIDTH: core.int,
+    RENDERER: core.int,
+    REPEAT: core.int,
+    REPLACE: core.int,
+    RGB: core.int,
+    RGB565: core.int,
+    RGB5_A1: core.int,
+    RGBA: core.int,
+    RGBA4: core.int,
+    SAMPLER_2D: core.int,
+    SAMPLER_CUBE: core.int,
+    SAMPLES: core.int,
+    SAMPLE_ALPHA_TO_COVERAGE: core.int,
+    SAMPLE_BUFFERS: core.int,
+    SAMPLE_COVERAGE: core.int,
+    SAMPLE_COVERAGE_INVERT: core.int,
+    SAMPLE_COVERAGE_VALUE: core.int,
+    SCISSOR_BOX: core.int,
+    SCISSOR_TEST: core.int,
+    SHADER_TYPE: core.int,
+    SHADING_LANGUAGE_VERSION: core.int,
+    SHORT: core.int,
+    SRC_ALPHA: core.int,
+    SRC_ALPHA_SATURATE: core.int,
+    SRC_COLOR: core.int,
+    STATIC_DRAW: core.int,
+    STENCIL_ATTACHMENT: core.int,
+    STENCIL_BACK_FAIL: core.int,
+    STENCIL_BACK_FUNC: core.int,
+    STENCIL_BACK_PASS_DEPTH_FAIL: core.int,
+    STENCIL_BACK_PASS_DEPTH_PASS: core.int,
+    STENCIL_BACK_REF: core.int,
+    STENCIL_BACK_VALUE_MASK: core.int,
+    STENCIL_BACK_WRITEMASK: core.int,
+    STENCIL_BITS: core.int,
+    STENCIL_BUFFER_BIT: core.int,
+    STENCIL_CLEAR_VALUE: core.int,
+    STENCIL_FAIL: core.int,
+    STENCIL_FUNC: core.int,
+    STENCIL_INDEX: core.int,
+    STENCIL_INDEX8: core.int,
+    STENCIL_PASS_DEPTH_FAIL: core.int,
+    STENCIL_PASS_DEPTH_PASS: core.int,
+    STENCIL_REF: core.int,
+    STENCIL_TEST: core.int,
+    STENCIL_VALUE_MASK: core.int,
+    STENCIL_WRITEMASK: core.int,
+    STREAM_DRAW: core.int,
+    SUBPIXEL_BITS: core.int,
+    TEXTURE: core.int,
+    TEXTURE0: core.int,
+    TEXTURE1: core.int,
+    TEXTURE10: core.int,
+    TEXTURE11: core.int,
+    TEXTURE12: core.int,
+    TEXTURE13: core.int,
+    TEXTURE14: core.int,
+    TEXTURE15: core.int,
+    TEXTURE16: core.int,
+    TEXTURE17: core.int,
+    TEXTURE18: core.int,
+    TEXTURE19: core.int,
+    TEXTURE2: core.int,
+    TEXTURE20: core.int,
+    TEXTURE21: core.int,
+    TEXTURE22: core.int,
+    TEXTURE23: core.int,
+    TEXTURE24: core.int,
+    TEXTURE25: core.int,
+    TEXTURE26: core.int,
+    TEXTURE27: core.int,
+    TEXTURE28: core.int,
+    TEXTURE29: core.int,
+    TEXTURE3: core.int,
+    TEXTURE30: core.int,
+    TEXTURE31: core.int,
+    TEXTURE4: core.int,
+    TEXTURE5: core.int,
+    TEXTURE6: core.int,
+    TEXTURE7: core.int,
+    TEXTURE8: core.int,
+    TEXTURE9: core.int,
+    TEXTURE_2D: core.int,
+    TEXTURE_BINDING_2D: core.int,
+    TEXTURE_BINDING_CUBE_MAP: core.int,
+    TEXTURE_CUBE_MAP: core.int,
+    TEXTURE_CUBE_MAP_NEGATIVE_X: core.int,
+    TEXTURE_CUBE_MAP_NEGATIVE_Y: core.int,
+    TEXTURE_CUBE_MAP_NEGATIVE_Z: core.int,
+    TEXTURE_CUBE_MAP_POSITIVE_X: core.int,
+    TEXTURE_CUBE_MAP_POSITIVE_Y: core.int,
+    TEXTURE_CUBE_MAP_POSITIVE_Z: core.int,
+    TEXTURE_MAG_FILTER: core.int,
+    TEXTURE_MIN_FILTER: core.int,
+    TEXTURE_WRAP_S: core.int,
+    TEXTURE_WRAP_T: core.int,
+    TRIANGLES: core.int,
+    TRIANGLE_FAN: core.int,
+    TRIANGLE_STRIP: core.int,
+    UNPACK_ALIGNMENT: core.int,
+    UNPACK_COLORSPACE_CONVERSION_WEBGL: core.int,
+    UNPACK_FLIP_Y_WEBGL: core.int,
+    UNPACK_PREMULTIPLY_ALPHA_WEBGL: core.int,
+    UNSIGNED_BYTE: core.int,
+    UNSIGNED_INT: core.int,
+    UNSIGNED_SHORT: core.int,
+    UNSIGNED_SHORT_4_4_4_4: core.int,
+    UNSIGNED_SHORT_5_5_5_1: core.int,
+    UNSIGNED_SHORT_5_6_5: core.int,
+    VALIDATE_STATUS: core.int,
+    VENDOR: core.int,
+    VERSION: core.int,
+    VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: core.int,
+    VERTEX_ATTRIB_ARRAY_ENABLED: core.int,
+    VERTEX_ATTRIB_ARRAY_NORMALIZED: core.int,
+    VERTEX_ATTRIB_ARRAY_POINTER: core.int,
+    VERTEX_ATTRIB_ARRAY_SIZE: core.int,
+    VERTEX_ATTRIB_ARRAY_STRIDE: core.int,
+    VERTEX_ATTRIB_ARRAY_TYPE: core.int,
+    VERTEX_SHADER: core.int,
+    VIEWPORT: core.int,
+    ZERO: core.int
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+web_gl.RenderingContext.ACTIVE_ATTRIBUTES = 35721;
+web_gl.RenderingContext.ACTIVE_TEXTURE = 34016;
+web_gl.RenderingContext.ACTIVE_UNIFORMS = 35718;
+web_gl.RenderingContext.ALIASED_LINE_WIDTH_RANGE = 33902;
+web_gl.RenderingContext.ALIASED_POINT_SIZE_RANGE = 33901;
+web_gl.RenderingContext.ALPHA = 6406;
+web_gl.RenderingContext.ALPHA_BITS = 3413;
+web_gl.RenderingContext.ALWAYS = 519;
+web_gl.RenderingContext.ARRAY_BUFFER = 34962;
+web_gl.RenderingContext.ARRAY_BUFFER_BINDING = 34964;
+web_gl.RenderingContext.ATTACHED_SHADERS = 35717;
+web_gl.RenderingContext.BACK = 1029;
+web_gl.RenderingContext.BLEND = 3042;
+web_gl.RenderingContext.BLEND_COLOR = 32773;
+web_gl.RenderingContext.BLEND_DST_ALPHA = 32970;
+web_gl.RenderingContext.BLEND_DST_RGB = 32968;
+web_gl.RenderingContext.BLEND_EQUATION = 32777;
+web_gl.RenderingContext.BLEND_EQUATION_ALPHA = 34877;
+web_gl.RenderingContext.BLEND_EQUATION_RGB = 32777;
+web_gl.RenderingContext.BLEND_SRC_ALPHA = 32971;
+web_gl.RenderingContext.BLEND_SRC_RGB = 32969;
+web_gl.RenderingContext.BLUE_BITS = 3412;
+web_gl.RenderingContext.BOOL = 35670;
+web_gl.RenderingContext.BOOL_VEC2 = 35671;
+web_gl.RenderingContext.BOOL_VEC3 = 35672;
+web_gl.RenderingContext.BOOL_VEC4 = 35673;
+web_gl.RenderingContext.BROWSER_DEFAULT_WEBGL = 37444;
+web_gl.RenderingContext.BUFFER_SIZE = 34660;
+web_gl.RenderingContext.BUFFER_USAGE = 34661;
+web_gl.RenderingContext.BYTE = 5120;
+web_gl.RenderingContext.CCW = 2305;
+web_gl.RenderingContext.CLAMP_TO_EDGE = 33071;
+web_gl.RenderingContext.COLOR_ATTACHMENT0 = 36064;
+web_gl.RenderingContext.COLOR_BUFFER_BIT = 16384;
+web_gl.RenderingContext.COLOR_CLEAR_VALUE = 3106;
+web_gl.RenderingContext.COLOR_WRITEMASK = 3107;
+web_gl.RenderingContext.COMPILE_STATUS = 35713;
+web_gl.RenderingContext.COMPRESSED_TEXTURE_FORMATS = 34467;
+web_gl.RenderingContext.CONSTANT_ALPHA = 32771;
+web_gl.RenderingContext.CONSTANT_COLOR = 32769;
+web_gl.RenderingContext.CONTEXT_LOST_WEBGL = 37442;
+web_gl.RenderingContext.CULL_FACE = 2884;
+web_gl.RenderingContext.CULL_FACE_MODE = 2885;
+web_gl.RenderingContext.CURRENT_PROGRAM = 35725;
+web_gl.RenderingContext.CURRENT_VERTEX_ATTRIB = 34342;
+web_gl.RenderingContext.CW = 2304;
+web_gl.RenderingContext.DECR = 7683;
+web_gl.RenderingContext.DECR_WRAP = 34056;
+web_gl.RenderingContext.DELETE_STATUS = 35712;
+web_gl.RenderingContext.DEPTH_ATTACHMENT = 36096;
+web_gl.RenderingContext.DEPTH_BITS = 3414;
+web_gl.RenderingContext.DEPTH_BUFFER_BIT = 256;
+web_gl.RenderingContext.DEPTH_CLEAR_VALUE = 2931;
+web_gl.RenderingContext.DEPTH_COMPONENT = 6402;
+web_gl.RenderingContext.DEPTH_COMPONENT16 = 33189;
+web_gl.RenderingContext.DEPTH_FUNC = 2932;
+web_gl.RenderingContext.DEPTH_RANGE = 2928;
+web_gl.RenderingContext.DEPTH_STENCIL = 34041;
+web_gl.RenderingContext.DEPTH_STENCIL_ATTACHMENT = 33306;
+web_gl.RenderingContext.DEPTH_TEST = 2929;
+web_gl.RenderingContext.DEPTH_WRITEMASK = 2930;
+web_gl.RenderingContext.DITHER = 3024;
+web_gl.RenderingContext.DONT_CARE = 4352;
+web_gl.RenderingContext.DST_ALPHA = 772;
+web_gl.RenderingContext.DST_COLOR = 774;
+web_gl.RenderingContext.DYNAMIC_DRAW = 35048;
+web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER = 34963;
+web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING = 34965;
+web_gl.RenderingContext.EQUAL = 514;
+web_gl.RenderingContext.FASTEST = 4353;
+web_gl.RenderingContext.FLOAT = 5126;
+web_gl.RenderingContext.FLOAT_MAT2 = 35674;
+web_gl.RenderingContext.FLOAT_MAT3 = 35675;
+web_gl.RenderingContext.FLOAT_MAT4 = 35676;
+web_gl.RenderingContext.FLOAT_VEC2 = 35664;
+web_gl.RenderingContext.FLOAT_VEC3 = 35665;
+web_gl.RenderingContext.FLOAT_VEC4 = 35666;
+web_gl.RenderingContext.FRAGMENT_SHADER = 35632;
+web_gl.RenderingContext.FRAMEBUFFER = 36160;
+web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
+web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
+web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
+web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
+web_gl.RenderingContext.FRAMEBUFFER_BINDING = 36006;
+web_gl.RenderingContext.FRAMEBUFFER_COMPLETE = 36053;
+web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
+web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
+web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
+web_gl.RenderingContext.FRAMEBUFFER_UNSUPPORTED = 36061;
+web_gl.RenderingContext.FRONT = 1028;
+web_gl.RenderingContext.FRONT_AND_BACK = 1032;
+web_gl.RenderingContext.FRONT_FACE = 2886;
+web_gl.RenderingContext.FUNC_ADD = 32774;
+web_gl.RenderingContext.FUNC_REVERSE_SUBTRACT = 32779;
+web_gl.RenderingContext.FUNC_SUBTRACT = 32778;
+web_gl.RenderingContext.GENERATE_MIPMAP_HINT = 33170;
+web_gl.RenderingContext.GEQUAL = 518;
+web_gl.RenderingContext.GREATER = 516;
+web_gl.RenderingContext.GREEN_BITS = 3411;
+web_gl.RenderingContext.HIGH_FLOAT = 36338;
+web_gl.RenderingContext.HIGH_INT = 36341;
+web_gl.RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT = 35739;
+web_gl.RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE = 35738;
+web_gl.RenderingContext.INCR = 7682;
+web_gl.RenderingContext.INCR_WRAP = 34055;
+web_gl.RenderingContext.INT = 5124;
+web_gl.RenderingContext.INT_VEC2 = 35667;
+web_gl.RenderingContext.INT_VEC3 = 35668;
+web_gl.RenderingContext.INT_VEC4 = 35669;
+web_gl.RenderingContext.INVALID_ENUM = 1280;
+web_gl.RenderingContext.INVALID_FRAMEBUFFER_OPERATION = 1286;
+web_gl.RenderingContext.INVALID_OPERATION = 1282;
+web_gl.RenderingContext.INVALID_VALUE = 1281;
+web_gl.RenderingContext.INVERT = 5386;
+web_gl.RenderingContext.KEEP = 7680;
+web_gl.RenderingContext.LEQUAL = 515;
+web_gl.RenderingContext.LESS = 513;
+web_gl.RenderingContext.LINEAR = 9729;
+web_gl.RenderingContext.LINEAR_MIPMAP_LINEAR = 9987;
+web_gl.RenderingContext.LINEAR_MIPMAP_NEAREST = 9985;
+web_gl.RenderingContext.LINES = 1;
+web_gl.RenderingContext.LINE_LOOP = 2;
+web_gl.RenderingContext.LINE_STRIP = 3;
+web_gl.RenderingContext.LINE_WIDTH = 2849;
+web_gl.RenderingContext.LINK_STATUS = 35714;
+web_gl.RenderingContext.LOW_FLOAT = 36336;
+web_gl.RenderingContext.LOW_INT = 36339;
+web_gl.RenderingContext.LUMINANCE = 6409;
+web_gl.RenderingContext.LUMINANCE_ALPHA = 6410;
+web_gl.RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
+web_gl.RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
+web_gl.RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
+web_gl.RenderingContext.MAX_RENDERBUFFER_SIZE = 34024;
+web_gl.RenderingContext.MAX_TEXTURE_IMAGE_UNITS = 34930;
+web_gl.RenderingContext.MAX_TEXTURE_SIZE = 3379;
+web_gl.RenderingContext.MAX_VARYING_VECTORS = 36348;
+web_gl.RenderingContext.MAX_VERTEX_ATTRIBS = 34921;
+web_gl.RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
+web_gl.RenderingContext.MAX_VERTEX_UNIFORM_VECTORS = 36347;
+web_gl.RenderingContext.MAX_VIEWPORT_DIMS = 3386;
+web_gl.RenderingContext.MEDIUM_FLOAT = 36337;
+web_gl.RenderingContext.MEDIUM_INT = 36340;
+web_gl.RenderingContext.MIRRORED_REPEAT = 33648;
+web_gl.RenderingContext.NEAREST = 9728;
+web_gl.RenderingContext.NEAREST_MIPMAP_LINEAR = 9986;
+web_gl.RenderingContext.NEAREST_MIPMAP_NEAREST = 9984;
+web_gl.RenderingContext.NEVER = 512;
+web_gl.RenderingContext.NICEST = 4354;
+web_gl.RenderingContext.NONE = 0;
+web_gl.RenderingContext.NOTEQUAL = 517;
+web_gl.RenderingContext.NO_ERROR = 0;
+web_gl.RenderingContext.ONE = 1;
+web_gl.RenderingContext.ONE_MINUS_CONSTANT_ALPHA = 32772;
+web_gl.RenderingContext.ONE_MINUS_CONSTANT_COLOR = 32770;
+web_gl.RenderingContext.ONE_MINUS_DST_ALPHA = 773;
+web_gl.RenderingContext.ONE_MINUS_DST_COLOR = 775;
+web_gl.RenderingContext.ONE_MINUS_SRC_ALPHA = 771;
+web_gl.RenderingContext.ONE_MINUS_SRC_COLOR = 769;
+web_gl.RenderingContext.OUT_OF_MEMORY = 1285;
+web_gl.RenderingContext.PACK_ALIGNMENT = 3333;
+web_gl.RenderingContext.POINTS = 0;
+web_gl.RenderingContext.POLYGON_OFFSET_FACTOR = 32824;
+web_gl.RenderingContext.POLYGON_OFFSET_FILL = 32823;
+web_gl.RenderingContext.POLYGON_OFFSET_UNITS = 10752;
+web_gl.RenderingContext.RED_BITS = 3410;
+web_gl.RenderingContext.RENDERBUFFER = 36161;
+web_gl.RenderingContext.RENDERBUFFER_ALPHA_SIZE = 36179;
+web_gl.RenderingContext.RENDERBUFFER_BINDING = 36007;
+web_gl.RenderingContext.RENDERBUFFER_BLUE_SIZE = 36178;
+web_gl.RenderingContext.RENDERBUFFER_DEPTH_SIZE = 36180;
+web_gl.RenderingContext.RENDERBUFFER_GREEN_SIZE = 36177;
+web_gl.RenderingContext.RENDERBUFFER_HEIGHT = 36163;
+web_gl.RenderingContext.RENDERBUFFER_INTERNAL_FORMAT = 36164;
+web_gl.RenderingContext.RENDERBUFFER_RED_SIZE = 36176;
+web_gl.RenderingContext.RENDERBUFFER_STENCIL_SIZE = 36181;
+web_gl.RenderingContext.RENDERBUFFER_WIDTH = 36162;
+web_gl.RenderingContext.RENDERER = 7937;
+web_gl.RenderingContext.REPEAT = 10497;
+web_gl.RenderingContext.REPLACE = 7681;
+web_gl.RenderingContext.RGB = 6407;
+web_gl.RenderingContext.RGB565 = 36194;
+web_gl.RenderingContext.RGB5_A1 = 32855;
+web_gl.RenderingContext.RGBA = 6408;
+web_gl.RenderingContext.RGBA4 = 32854;
+web_gl.RenderingContext.SAMPLER_2D = 35678;
+web_gl.RenderingContext.SAMPLER_CUBE = 35680;
+web_gl.RenderingContext.SAMPLES = 32937;
+web_gl.RenderingContext.SAMPLE_ALPHA_TO_COVERAGE = 32926;
+web_gl.RenderingContext.SAMPLE_BUFFERS = 32936;
+web_gl.RenderingContext.SAMPLE_COVERAGE = 32928;
+web_gl.RenderingContext.SAMPLE_COVERAGE_INVERT = 32939;
+web_gl.RenderingContext.SAMPLE_COVERAGE_VALUE = 32938;
+web_gl.RenderingContext.SCISSOR_BOX = 3088;
+web_gl.RenderingContext.SCISSOR_TEST = 3089;
+web_gl.RenderingContext.SHADER_TYPE = 35663;
+web_gl.RenderingContext.SHADING_LANGUAGE_VERSION = 35724;
+web_gl.RenderingContext.SHORT = 5122;
+web_gl.RenderingContext.SRC_ALPHA = 770;
+web_gl.RenderingContext.SRC_ALPHA_SATURATE = 776;
+web_gl.RenderingContext.SRC_COLOR = 768;
+web_gl.RenderingContext.STATIC_DRAW = 35044;
+web_gl.RenderingContext.STENCIL_ATTACHMENT = 36128;
+web_gl.RenderingContext.STENCIL_BACK_FAIL = 34817;
+web_gl.RenderingContext.STENCIL_BACK_FUNC = 34816;
+web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
+web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS = 34819;
+web_gl.RenderingContext.STENCIL_BACK_REF = 36003;
+web_gl.RenderingContext.STENCIL_BACK_VALUE_MASK = 36004;
+web_gl.RenderingContext.STENCIL_BACK_WRITEMASK = 36005;
+web_gl.RenderingContext.STENCIL_BITS = 3415;
+web_gl.RenderingContext.STENCIL_BUFFER_BIT = 1024;
+web_gl.RenderingContext.STENCIL_CLEAR_VALUE = 2961;
+web_gl.RenderingContext.STENCIL_FAIL = 2964;
+web_gl.RenderingContext.STENCIL_FUNC = 2962;
+web_gl.RenderingContext.STENCIL_INDEX = 6401;
+web_gl.RenderingContext.STENCIL_INDEX8 = 36168;
+web_gl.RenderingContext.STENCIL_PASS_DEPTH_FAIL = 2965;
+web_gl.RenderingContext.STENCIL_PASS_DEPTH_PASS = 2966;
+web_gl.RenderingContext.STENCIL_REF = 2967;
+web_gl.RenderingContext.STENCIL_TEST = 2960;
+web_gl.RenderingContext.STENCIL_VALUE_MASK = 2963;
+web_gl.RenderingContext.STENCIL_WRITEMASK = 2968;
+web_gl.RenderingContext.STREAM_DRAW = 35040;
+web_gl.RenderingContext.SUBPIXEL_BITS = 3408;
+web_gl.RenderingContext.TEXTURE = 5890;
+web_gl.RenderingContext.TEXTURE0 = 33984;
+web_gl.RenderingContext.TEXTURE1 = 33985;
+web_gl.RenderingContext.TEXTURE10 = 33994;
+web_gl.RenderingContext.TEXTURE11 = 33995;
+web_gl.RenderingContext.TEXTURE12 = 33996;
+web_gl.RenderingContext.TEXTURE13 = 33997;
+web_gl.RenderingContext.TEXTURE14 = 33998;
+web_gl.RenderingContext.TEXTURE15 = 33999;
+web_gl.RenderingContext.TEXTURE16 = 34000;
+web_gl.RenderingContext.TEXTURE17 = 34001;
+web_gl.RenderingContext.TEXTURE18 = 34002;
+web_gl.RenderingContext.TEXTURE19 = 34003;
+web_gl.RenderingContext.TEXTURE2 = 33986;
+web_gl.RenderingContext.TEXTURE20 = 34004;
+web_gl.RenderingContext.TEXTURE21 = 34005;
+web_gl.RenderingContext.TEXTURE22 = 34006;
+web_gl.RenderingContext.TEXTURE23 = 34007;
+web_gl.RenderingContext.TEXTURE24 = 34008;
+web_gl.RenderingContext.TEXTURE25 = 34009;
+web_gl.RenderingContext.TEXTURE26 = 34010;
+web_gl.RenderingContext.TEXTURE27 = 34011;
+web_gl.RenderingContext.TEXTURE28 = 34012;
+web_gl.RenderingContext.TEXTURE29 = 34013;
+web_gl.RenderingContext.TEXTURE3 = 33987;
+web_gl.RenderingContext.TEXTURE30 = 34014;
+web_gl.RenderingContext.TEXTURE31 = 34015;
+web_gl.RenderingContext.TEXTURE4 = 33988;
+web_gl.RenderingContext.TEXTURE5 = 33989;
+web_gl.RenderingContext.TEXTURE6 = 33990;
+web_gl.RenderingContext.TEXTURE7 = 33991;
+web_gl.RenderingContext.TEXTURE8 = 33992;
+web_gl.RenderingContext.TEXTURE9 = 33993;
+web_gl.RenderingContext.TEXTURE_2D = 3553;
+web_gl.RenderingContext.TEXTURE_BINDING_2D = 32873;
+web_gl.RenderingContext.TEXTURE_BINDING_CUBE_MAP = 34068;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP = 34067;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
+web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
+web_gl.RenderingContext.TEXTURE_MAG_FILTER = 10240;
+web_gl.RenderingContext.TEXTURE_MIN_FILTER = 10241;
+web_gl.RenderingContext.TEXTURE_WRAP_S = 10242;
+web_gl.RenderingContext.TEXTURE_WRAP_T = 10243;
+web_gl.RenderingContext.TRIANGLES = 4;
+web_gl.RenderingContext.TRIANGLE_FAN = 6;
+web_gl.RenderingContext.TRIANGLE_STRIP = 5;
+web_gl.RenderingContext.UNPACK_ALIGNMENT = 3317;
+web_gl.RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;
+web_gl.RenderingContext.UNPACK_FLIP_Y_WEBGL = 37440;
+web_gl.RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;
+web_gl.RenderingContext.UNSIGNED_BYTE = 5121;
+web_gl.RenderingContext.UNSIGNED_INT = 5125;
+web_gl.RenderingContext.UNSIGNED_SHORT = 5123;
+web_gl.RenderingContext.UNSIGNED_SHORT_4_4_4_4 = 32819;
+web_gl.RenderingContext.UNSIGNED_SHORT_5_5_5_1 = 32820;
+web_gl.RenderingContext.UNSIGNED_SHORT_5_6_5 = 33635;
+web_gl.RenderingContext.VALIDATE_STATUS = 35715;
+web_gl.RenderingContext.VENDOR = 7936;
+web_gl.RenderingContext.VERSION = 7938;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER = 34373;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE = 34339;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
+web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE = 34341;
+web_gl.RenderingContext.VERTEX_SHADER = 35633;
+web_gl.RenderingContext.VIEWPORT = 2978;
+web_gl.RenderingContext.ZERO = 0;
+dart.registerExtension(dart.global.WebGLRenderingContext, web_gl.RenderingContext);
+web_gl.ACTIVE_ATTRIBUTES = web_gl.RenderingContext.ACTIVE_ATTRIBUTES;
+web_gl.ACTIVE_TEXTURE = web_gl.RenderingContext.ACTIVE_TEXTURE;
+web_gl.ACTIVE_UNIFORMS = web_gl.RenderingContext.ACTIVE_UNIFORMS;
+web_gl.ALIASED_LINE_WIDTH_RANGE = web_gl.RenderingContext.ALIASED_LINE_WIDTH_RANGE;
+web_gl.ALIASED_POINT_SIZE_RANGE = web_gl.RenderingContext.ALIASED_POINT_SIZE_RANGE;
+web_gl.ALPHA = web_gl.RenderingContext.ALPHA;
+web_gl.ALPHA_BITS = web_gl.RenderingContext.ALPHA_BITS;
+web_gl.ALWAYS = web_gl.RenderingContext.ALWAYS;
+web_gl.ARRAY_BUFFER = web_gl.RenderingContext.ARRAY_BUFFER;
+web_gl.ARRAY_BUFFER_BINDING = web_gl.RenderingContext.ARRAY_BUFFER_BINDING;
+web_gl.ATTACHED_SHADERS = web_gl.RenderingContext.ATTACHED_SHADERS;
+web_gl.BACK = web_gl.RenderingContext.BACK;
+web_gl.BLEND = web_gl.RenderingContext.BLEND;
+web_gl.BLEND_COLOR = web_gl.RenderingContext.BLEND_COLOR;
+web_gl.BLEND_DST_ALPHA = web_gl.RenderingContext.BLEND_DST_ALPHA;
+web_gl.BLEND_DST_RGB = web_gl.RenderingContext.BLEND_DST_RGB;
+web_gl.BLEND_EQUATION = web_gl.RenderingContext.BLEND_EQUATION;
+web_gl.BLEND_EQUATION_ALPHA = web_gl.RenderingContext.BLEND_EQUATION_ALPHA;
+web_gl.BLEND_EQUATION_RGB = web_gl.RenderingContext.BLEND_EQUATION_RGB;
+web_gl.BLEND_SRC_ALPHA = web_gl.RenderingContext.BLEND_SRC_ALPHA;
+web_gl.BLEND_SRC_RGB = web_gl.RenderingContext.BLEND_SRC_RGB;
+web_gl.BLUE_BITS = web_gl.RenderingContext.BLUE_BITS;
+web_gl.BOOL = web_gl.RenderingContext.BOOL;
+web_gl.BOOL_VEC2 = web_gl.RenderingContext.BOOL_VEC2;
+web_gl.BOOL_VEC3 = web_gl.RenderingContext.BOOL_VEC3;
+web_gl.BOOL_VEC4 = web_gl.RenderingContext.BOOL_VEC4;
+web_gl.BROWSER_DEFAULT_WEBGL = web_gl.RenderingContext.BROWSER_DEFAULT_WEBGL;
+web_gl.BUFFER_SIZE = web_gl.RenderingContext.BUFFER_SIZE;
+web_gl.BUFFER_USAGE = web_gl.RenderingContext.BUFFER_USAGE;
+web_gl.BYTE = web_gl.RenderingContext.BYTE;
+web_gl.CCW = web_gl.RenderingContext.CCW;
+web_gl.CLAMP_TO_EDGE = web_gl.RenderingContext.CLAMP_TO_EDGE;
+web_gl.COLOR_ATTACHMENT0 = web_gl.RenderingContext.COLOR_ATTACHMENT0;
+web_gl.COLOR_BUFFER_BIT = web_gl.RenderingContext.COLOR_BUFFER_BIT;
+web_gl.COLOR_CLEAR_VALUE = web_gl.RenderingContext.COLOR_CLEAR_VALUE;
+web_gl.COLOR_WRITEMASK = web_gl.RenderingContext.COLOR_WRITEMASK;
+web_gl.COMPILE_STATUS = web_gl.RenderingContext.COMPILE_STATUS;
+web_gl.COMPRESSED_TEXTURE_FORMATS = web_gl.RenderingContext.COMPRESSED_TEXTURE_FORMATS;
+web_gl.CONSTANT_ALPHA = web_gl.RenderingContext.CONSTANT_ALPHA;
+web_gl.CONSTANT_COLOR = web_gl.RenderingContext.CONSTANT_COLOR;
+web_gl.CONTEXT_LOST_WEBGL = web_gl.RenderingContext.CONTEXT_LOST_WEBGL;
+web_gl.CULL_FACE = web_gl.RenderingContext.CULL_FACE;
+web_gl.CULL_FACE_MODE = web_gl.RenderingContext.CULL_FACE_MODE;
+web_gl.CURRENT_PROGRAM = web_gl.RenderingContext.CURRENT_PROGRAM;
+web_gl.CURRENT_VERTEX_ATTRIB = web_gl.RenderingContext.CURRENT_VERTEX_ATTRIB;
+web_gl.CW = web_gl.RenderingContext.CW;
+web_gl.DECR = web_gl.RenderingContext.DECR;
+web_gl.DECR_WRAP = web_gl.RenderingContext.DECR_WRAP;
+web_gl.DELETE_STATUS = web_gl.RenderingContext.DELETE_STATUS;
+web_gl.DEPTH_ATTACHMENT = web_gl.RenderingContext.DEPTH_ATTACHMENT;
+web_gl.DEPTH_BITS = web_gl.RenderingContext.DEPTH_BITS;
+web_gl.DEPTH_BUFFER_BIT = web_gl.RenderingContext.DEPTH_BUFFER_BIT;
+web_gl.DEPTH_CLEAR_VALUE = web_gl.RenderingContext.DEPTH_CLEAR_VALUE;
+web_gl.DEPTH_COMPONENT = web_gl.RenderingContext.DEPTH_COMPONENT;
+web_gl.DEPTH_COMPONENT16 = web_gl.RenderingContext.DEPTH_COMPONENT16;
+web_gl.DEPTH_FUNC = web_gl.RenderingContext.DEPTH_FUNC;
+web_gl.DEPTH_RANGE = web_gl.RenderingContext.DEPTH_RANGE;
+web_gl.DEPTH_STENCIL = web_gl.RenderingContext.DEPTH_STENCIL;
+web_gl.DEPTH_STENCIL_ATTACHMENT = web_gl.RenderingContext.DEPTH_STENCIL_ATTACHMENT;
+web_gl.DEPTH_TEST = web_gl.RenderingContext.DEPTH_TEST;
+web_gl.DEPTH_WRITEMASK = web_gl.RenderingContext.DEPTH_WRITEMASK;
+web_gl.DITHER = web_gl.RenderingContext.DITHER;
+web_gl.DONT_CARE = web_gl.RenderingContext.DONT_CARE;
+web_gl.DST_ALPHA = web_gl.RenderingContext.DST_ALPHA;
+web_gl.DST_COLOR = web_gl.RenderingContext.DST_COLOR;
+web_gl.DYNAMIC_DRAW = web_gl.RenderingContext.DYNAMIC_DRAW;
+web_gl.ELEMENT_ARRAY_BUFFER = web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER;
+web_gl.ELEMENT_ARRAY_BUFFER_BINDING = web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING;
+web_gl.EQUAL = web_gl.RenderingContext.EQUAL;
+web_gl.FASTEST = web_gl.RenderingContext.FASTEST;
+web_gl.FLOAT = web_gl.RenderingContext.FLOAT;
+web_gl.FLOAT_MAT2 = web_gl.RenderingContext.FLOAT_MAT2;
+web_gl.FLOAT_MAT3 = web_gl.RenderingContext.FLOAT_MAT3;
+web_gl.FLOAT_MAT4 = web_gl.RenderingContext.FLOAT_MAT4;
+web_gl.FLOAT_VEC2 = web_gl.RenderingContext.FLOAT_VEC2;
+web_gl.FLOAT_VEC3 = web_gl.RenderingContext.FLOAT_VEC3;
+web_gl.FLOAT_VEC4 = web_gl.RenderingContext.FLOAT_VEC4;
+web_gl.FRAGMENT_SHADER = web_gl.RenderingContext.FRAGMENT_SHADER;
+web_gl.FRAMEBUFFER = web_gl.RenderingContext.FRAMEBUFFER;
+web_gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME;
+web_gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE;
+web_gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE;
+web_gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL;
+web_gl.FRAMEBUFFER_BINDING = web_gl.RenderingContext.FRAMEBUFFER_BINDING;
+web_gl.FRAMEBUFFER_COMPLETE = web_gl.RenderingContext.FRAMEBUFFER_COMPLETE;
+web_gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
+web_gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;
+web_gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;
+web_gl.FRAMEBUFFER_UNSUPPORTED = web_gl.RenderingContext.FRAMEBUFFER_UNSUPPORTED;
+web_gl.FRONT = web_gl.RenderingContext.FRONT;
+web_gl.FRONT_AND_BACK = web_gl.RenderingContext.FRONT_AND_BACK;
+web_gl.FRONT_FACE = web_gl.RenderingContext.FRONT_FACE;
+web_gl.FUNC_ADD = web_gl.RenderingContext.FUNC_ADD;
+web_gl.FUNC_REVERSE_SUBTRACT = web_gl.RenderingContext.FUNC_REVERSE_SUBTRACT;
+web_gl.FUNC_SUBTRACT = web_gl.RenderingContext.FUNC_SUBTRACT;
+web_gl.GENERATE_MIPMAP_HINT = web_gl.RenderingContext.GENERATE_MIPMAP_HINT;
+web_gl.GEQUAL = web_gl.RenderingContext.GEQUAL;
+web_gl.GREATER = web_gl.RenderingContext.GREATER;
+web_gl.GREEN_BITS = web_gl.RenderingContext.GREEN_BITS;
+web_gl.OesTextureHalfFloat = class OesTextureHalfFloat extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.OesTextureHalfFloat, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureHalfFloat, [])}),
+  sfields: () => ({HALF_FLOAT_OES: core.int})
+});
+web_gl.OesTextureHalfFloat.HALF_FLOAT_OES = 36193;
+dart.registerExtension(dart.global.OESTextureHalfFloat, web_gl.OesTextureHalfFloat);
+web_gl.HALF_FLOAT_OES = web_gl.OesTextureHalfFloat.HALF_FLOAT_OES;
+web_gl.HIGH_FLOAT = web_gl.RenderingContext.HIGH_FLOAT;
+web_gl.HIGH_INT = web_gl.RenderingContext.HIGH_INT;
+web_gl.INCR = web_gl.RenderingContext.INCR;
+web_gl.INCR_WRAP = web_gl.RenderingContext.INCR_WRAP;
+web_gl.INT = web_gl.RenderingContext.INT;
+web_gl.INT_VEC2 = web_gl.RenderingContext.INT_VEC2;
+web_gl.INT_VEC3 = web_gl.RenderingContext.INT_VEC3;
+web_gl.INT_VEC4 = web_gl.RenderingContext.INT_VEC4;
+web_gl.INVALID_ENUM = web_gl.RenderingContext.INVALID_ENUM;
+web_gl.INVALID_FRAMEBUFFER_OPERATION = web_gl.RenderingContext.INVALID_FRAMEBUFFER_OPERATION;
+web_gl.INVALID_OPERATION = web_gl.RenderingContext.INVALID_OPERATION;
+web_gl.INVALID_VALUE = web_gl.RenderingContext.INVALID_VALUE;
+web_gl.INVERT = web_gl.RenderingContext.INVERT;
+web_gl.KEEP = web_gl.RenderingContext.KEEP;
+web_gl.LEQUAL = web_gl.RenderingContext.LEQUAL;
+web_gl.LESS = web_gl.RenderingContext.LESS;
+web_gl.LINEAR = web_gl.RenderingContext.LINEAR;
+web_gl.LINEAR_MIPMAP_LINEAR = web_gl.RenderingContext.LINEAR_MIPMAP_LINEAR;
+web_gl.LINEAR_MIPMAP_NEAREST = web_gl.RenderingContext.LINEAR_MIPMAP_NEAREST;
+web_gl.LINES = web_gl.RenderingContext.LINES;
+web_gl.LINE_LOOP = web_gl.RenderingContext.LINE_LOOP;
+web_gl.LINE_STRIP = web_gl.RenderingContext.LINE_STRIP;
+web_gl.LINE_WIDTH = web_gl.RenderingContext.LINE_WIDTH;
+web_gl.LINK_STATUS = web_gl.RenderingContext.LINK_STATUS;
+web_gl.LOW_FLOAT = web_gl.RenderingContext.LOW_FLOAT;
+web_gl.LOW_INT = web_gl.RenderingContext.LOW_INT;
+web_gl.LUMINANCE = web_gl.RenderingContext.LUMINANCE;
+web_gl.LUMINANCE_ALPHA = web_gl.RenderingContext.LUMINANCE_ALPHA;
+web_gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS = web_gl.RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS;
+web_gl.MAX_CUBE_MAP_TEXTURE_SIZE = web_gl.RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE;
+web_gl.MAX_FRAGMENT_UNIFORM_VECTORS = web_gl.RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS;
+web_gl.MAX_RENDERBUFFER_SIZE = web_gl.RenderingContext.MAX_RENDERBUFFER_SIZE;
+web_gl.MAX_TEXTURE_IMAGE_UNITS = web_gl.RenderingContext.MAX_TEXTURE_IMAGE_UNITS;
+web_gl.MAX_TEXTURE_SIZE = web_gl.RenderingContext.MAX_TEXTURE_SIZE;
+web_gl.MAX_VARYING_VECTORS = web_gl.RenderingContext.MAX_VARYING_VECTORS;
+web_gl.MAX_VERTEX_ATTRIBS = web_gl.RenderingContext.MAX_VERTEX_ATTRIBS;
+web_gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS = web_gl.RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS;
+web_gl.MAX_VERTEX_UNIFORM_VECTORS = web_gl.RenderingContext.MAX_VERTEX_UNIFORM_VECTORS;
+web_gl.MAX_VIEWPORT_DIMS = web_gl.RenderingContext.MAX_VIEWPORT_DIMS;
+web_gl.MEDIUM_FLOAT = web_gl.RenderingContext.MEDIUM_FLOAT;
+web_gl.MEDIUM_INT = web_gl.RenderingContext.MEDIUM_INT;
+web_gl.MIRRORED_REPEAT = web_gl.RenderingContext.MIRRORED_REPEAT;
+web_gl.NEAREST = web_gl.RenderingContext.NEAREST;
+web_gl.NEAREST_MIPMAP_LINEAR = web_gl.RenderingContext.NEAREST_MIPMAP_LINEAR;
+web_gl.NEAREST_MIPMAP_NEAREST = web_gl.RenderingContext.NEAREST_MIPMAP_NEAREST;
+web_gl.NEVER = web_gl.RenderingContext.NEVER;
+web_gl.NICEST = web_gl.RenderingContext.NICEST;
+web_gl.NONE = web_gl.RenderingContext.NONE;
+web_gl.NOTEQUAL = web_gl.RenderingContext.NOTEQUAL;
+web_gl.NO_ERROR = web_gl.RenderingContext.NO_ERROR;
+web_gl.ONE = web_gl.RenderingContext.ONE;
+web_gl.ONE_MINUS_CONSTANT_ALPHA = web_gl.RenderingContext.ONE_MINUS_CONSTANT_ALPHA;
+web_gl.ONE_MINUS_CONSTANT_COLOR = web_gl.RenderingContext.ONE_MINUS_CONSTANT_COLOR;
+web_gl.ONE_MINUS_DST_ALPHA = web_gl.RenderingContext.ONE_MINUS_DST_ALPHA;
+web_gl.ONE_MINUS_DST_COLOR = web_gl.RenderingContext.ONE_MINUS_DST_COLOR;
+web_gl.ONE_MINUS_SRC_ALPHA = web_gl.RenderingContext.ONE_MINUS_SRC_ALPHA;
+web_gl.ONE_MINUS_SRC_COLOR = web_gl.RenderingContext.ONE_MINUS_SRC_COLOR;
+web_gl.OUT_OF_MEMORY = web_gl.RenderingContext.OUT_OF_MEMORY;
+web_gl.PACK_ALIGNMENT = web_gl.RenderingContext.PACK_ALIGNMENT;
+web_gl.POINTS = web_gl.RenderingContext.POINTS;
+web_gl.POLYGON_OFFSET_FACTOR = web_gl.RenderingContext.POLYGON_OFFSET_FACTOR;
+web_gl.POLYGON_OFFSET_FILL = web_gl.RenderingContext.POLYGON_OFFSET_FILL;
+web_gl.POLYGON_OFFSET_UNITS = web_gl.RenderingContext.POLYGON_OFFSET_UNITS;
+web_gl.RED_BITS = web_gl.RenderingContext.RED_BITS;
+web_gl.RENDERBUFFER = web_gl.RenderingContext.RENDERBUFFER;
+web_gl.RENDERBUFFER_ALPHA_SIZE = web_gl.RenderingContext.RENDERBUFFER_ALPHA_SIZE;
+web_gl.RENDERBUFFER_BINDING = web_gl.RenderingContext.RENDERBUFFER_BINDING;
+web_gl.RENDERBUFFER_BLUE_SIZE = web_gl.RenderingContext.RENDERBUFFER_BLUE_SIZE;
+web_gl.RENDERBUFFER_DEPTH_SIZE = web_gl.RenderingContext.RENDERBUFFER_DEPTH_SIZE;
+web_gl.RENDERBUFFER_GREEN_SIZE = web_gl.RenderingContext.RENDERBUFFER_GREEN_SIZE;
+web_gl.RENDERBUFFER_HEIGHT = web_gl.RenderingContext.RENDERBUFFER_HEIGHT;
+web_gl.RENDERBUFFER_INTERNAL_FORMAT = web_gl.RenderingContext.RENDERBUFFER_INTERNAL_FORMAT;
+web_gl.RENDERBUFFER_RED_SIZE = web_gl.RenderingContext.RENDERBUFFER_RED_SIZE;
+web_gl.RENDERBUFFER_STENCIL_SIZE = web_gl.RenderingContext.RENDERBUFFER_STENCIL_SIZE;
+web_gl.RENDERBUFFER_WIDTH = web_gl.RenderingContext.RENDERBUFFER_WIDTH;
+web_gl.RENDERER = web_gl.RenderingContext.RENDERER;
+web_gl.REPEAT = web_gl.RenderingContext.REPEAT;
+web_gl.REPLACE = web_gl.RenderingContext.REPLACE;
+web_gl.RGB = web_gl.RenderingContext.RGB;
+web_gl.RGB565 = web_gl.RenderingContext.RGB565;
+web_gl.RGB5_A1 = web_gl.RenderingContext.RGB5_A1;
+web_gl.RGBA = web_gl.RenderingContext.RGBA;
+web_gl.RGBA4 = web_gl.RenderingContext.RGBA4;
+web_gl.SAMPLER_2D = web_gl.RenderingContext.SAMPLER_2D;
+web_gl.SAMPLER_CUBE = web_gl.RenderingContext.SAMPLER_CUBE;
+web_gl.SAMPLES = web_gl.RenderingContext.SAMPLES;
+web_gl.SAMPLE_ALPHA_TO_COVERAGE = web_gl.RenderingContext.SAMPLE_ALPHA_TO_COVERAGE;
+web_gl.SAMPLE_BUFFERS = web_gl.RenderingContext.SAMPLE_BUFFERS;
+web_gl.SAMPLE_COVERAGE = web_gl.RenderingContext.SAMPLE_COVERAGE;
+web_gl.SAMPLE_COVERAGE_INVERT = web_gl.RenderingContext.SAMPLE_COVERAGE_INVERT;
+web_gl.SAMPLE_COVERAGE_VALUE = web_gl.RenderingContext.SAMPLE_COVERAGE_VALUE;
+web_gl.SCISSOR_BOX = web_gl.RenderingContext.SCISSOR_BOX;
+web_gl.SCISSOR_TEST = web_gl.RenderingContext.SCISSOR_TEST;
+web_gl.SHADER_TYPE = web_gl.RenderingContext.SHADER_TYPE;
+web_gl.SHADING_LANGUAGE_VERSION = web_gl.RenderingContext.SHADING_LANGUAGE_VERSION;
+web_gl.SHORT = web_gl.RenderingContext.SHORT;
+web_gl.SRC_ALPHA = web_gl.RenderingContext.SRC_ALPHA;
+web_gl.SRC_ALPHA_SATURATE = web_gl.RenderingContext.SRC_ALPHA_SATURATE;
+web_gl.SRC_COLOR = web_gl.RenderingContext.SRC_COLOR;
+web_gl.STATIC_DRAW = web_gl.RenderingContext.STATIC_DRAW;
+web_gl.STENCIL_ATTACHMENT = web_gl.RenderingContext.STENCIL_ATTACHMENT;
+web_gl.STENCIL_BACK_FAIL = web_gl.RenderingContext.STENCIL_BACK_FAIL;
+web_gl.STENCIL_BACK_FUNC = web_gl.RenderingContext.STENCIL_BACK_FUNC;
+web_gl.STENCIL_BACK_PASS_DEPTH_FAIL = web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL;
+web_gl.STENCIL_BACK_PASS_DEPTH_PASS = web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS;
+web_gl.STENCIL_BACK_REF = web_gl.RenderingContext.STENCIL_BACK_REF;
+web_gl.STENCIL_BACK_VALUE_MASK = web_gl.RenderingContext.STENCIL_BACK_VALUE_MASK;
+web_gl.STENCIL_BACK_WRITEMASK = web_gl.RenderingContext.STENCIL_BACK_WRITEMASK;
+web_gl.STENCIL_BITS = web_gl.RenderingContext.STENCIL_BITS;
+web_gl.STENCIL_BUFFER_BIT = web_gl.RenderingContext.STENCIL_BUFFER_BIT;
+web_gl.STENCIL_CLEAR_VALUE = web_gl.RenderingContext.STENCIL_CLEAR_VALUE;
+web_gl.STENCIL_FAIL = web_gl.RenderingContext.STENCIL_FAIL;
+web_gl.STENCIL_FUNC = web_gl.RenderingContext.STENCIL_FUNC;
+web_gl.STENCIL_INDEX = web_gl.RenderingContext.STENCIL_INDEX;
+web_gl.STENCIL_INDEX8 = web_gl.RenderingContext.STENCIL_INDEX8;
+web_gl.STENCIL_PASS_DEPTH_FAIL = web_gl.RenderingContext.STENCIL_PASS_DEPTH_FAIL;
+web_gl.STENCIL_PASS_DEPTH_PASS = web_gl.RenderingContext.STENCIL_PASS_DEPTH_PASS;
+web_gl.STENCIL_REF = web_gl.RenderingContext.STENCIL_REF;
+web_gl.STENCIL_TEST = web_gl.RenderingContext.STENCIL_TEST;
+web_gl.STENCIL_VALUE_MASK = web_gl.RenderingContext.STENCIL_VALUE_MASK;
+web_gl.STENCIL_WRITEMASK = web_gl.RenderingContext.STENCIL_WRITEMASK;
+web_gl.STREAM_DRAW = web_gl.RenderingContext.STREAM_DRAW;
+web_gl.SUBPIXEL_BITS = web_gl.RenderingContext.SUBPIXEL_BITS;
+web_gl.TEXTURE = web_gl.RenderingContext.TEXTURE;
+web_gl.TEXTURE0 = web_gl.RenderingContext.TEXTURE0;
+web_gl.TEXTURE1 = web_gl.RenderingContext.TEXTURE1;
+web_gl.TEXTURE10 = web_gl.RenderingContext.TEXTURE10;
+web_gl.TEXTURE11 = web_gl.RenderingContext.TEXTURE11;
+web_gl.TEXTURE12 = web_gl.RenderingContext.TEXTURE12;
+web_gl.TEXTURE13 = web_gl.RenderingContext.TEXTURE13;
+web_gl.TEXTURE14 = web_gl.RenderingContext.TEXTURE14;
+web_gl.TEXTURE15 = web_gl.RenderingContext.TEXTURE15;
+web_gl.TEXTURE16 = web_gl.RenderingContext.TEXTURE16;
+web_gl.TEXTURE17 = web_gl.RenderingContext.TEXTURE17;
+web_gl.TEXTURE18 = web_gl.RenderingContext.TEXTURE18;
+web_gl.TEXTURE19 = web_gl.RenderingContext.TEXTURE19;
+web_gl.TEXTURE2 = web_gl.RenderingContext.TEXTURE2;
+web_gl.TEXTURE20 = web_gl.RenderingContext.TEXTURE20;
+web_gl.TEXTURE21 = web_gl.RenderingContext.TEXTURE21;
+web_gl.TEXTURE22 = web_gl.RenderingContext.TEXTURE22;
+web_gl.TEXTURE23 = web_gl.RenderingContext.TEXTURE23;
+web_gl.TEXTURE24 = web_gl.RenderingContext.TEXTURE24;
+web_gl.TEXTURE25 = web_gl.RenderingContext.TEXTURE25;
+web_gl.TEXTURE26 = web_gl.RenderingContext.TEXTURE26;
+web_gl.TEXTURE27 = web_gl.RenderingContext.TEXTURE27;
+web_gl.TEXTURE28 = web_gl.RenderingContext.TEXTURE28;
+web_gl.TEXTURE29 = web_gl.RenderingContext.TEXTURE29;
+web_gl.TEXTURE3 = web_gl.RenderingContext.TEXTURE3;
+web_gl.TEXTURE30 = web_gl.RenderingContext.TEXTURE30;
+web_gl.TEXTURE31 = web_gl.RenderingContext.TEXTURE31;
+web_gl.TEXTURE4 = web_gl.RenderingContext.TEXTURE4;
+web_gl.TEXTURE5 = web_gl.RenderingContext.TEXTURE5;
+web_gl.TEXTURE6 = web_gl.RenderingContext.TEXTURE6;
+web_gl.TEXTURE7 = web_gl.RenderingContext.TEXTURE7;
+web_gl.TEXTURE8 = web_gl.RenderingContext.TEXTURE8;
+web_gl.TEXTURE9 = web_gl.RenderingContext.TEXTURE9;
+web_gl.TEXTURE_2D = web_gl.RenderingContext.TEXTURE_2D;
+web_gl.TEXTURE_BINDING_2D = web_gl.RenderingContext.TEXTURE_BINDING_2D;
+web_gl.TEXTURE_BINDING_CUBE_MAP = web_gl.RenderingContext.TEXTURE_BINDING_CUBE_MAP;
+web_gl.TEXTURE_CUBE_MAP = web_gl.RenderingContext.TEXTURE_CUBE_MAP;
+web_gl.TEXTURE_CUBE_MAP_NEGATIVE_X = web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X;
+web_gl.TEXTURE_CUBE_MAP_NEGATIVE_Y = web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y;
+web_gl.TEXTURE_CUBE_MAP_NEGATIVE_Z = web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z;
+web_gl.TEXTURE_CUBE_MAP_POSITIVE_X = web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X;
+web_gl.TEXTURE_CUBE_MAP_POSITIVE_Y = web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y;
+web_gl.TEXTURE_CUBE_MAP_POSITIVE_Z = web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z;
+web_gl.TEXTURE_MAG_FILTER = web_gl.RenderingContext.TEXTURE_MAG_FILTER;
+web_gl.TEXTURE_MIN_FILTER = web_gl.RenderingContext.TEXTURE_MIN_FILTER;
+web_gl.TEXTURE_WRAP_S = web_gl.RenderingContext.TEXTURE_WRAP_S;
+web_gl.TEXTURE_WRAP_T = web_gl.RenderingContext.TEXTURE_WRAP_T;
+web_gl.TRIANGLES = web_gl.RenderingContext.TRIANGLES;
+web_gl.TRIANGLE_FAN = web_gl.RenderingContext.TRIANGLE_FAN;
+web_gl.TRIANGLE_STRIP = web_gl.RenderingContext.TRIANGLE_STRIP;
+web_gl.UNPACK_ALIGNMENT = web_gl.RenderingContext.UNPACK_ALIGNMENT;
+web_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL = web_gl.RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL;
+web_gl.UNPACK_FLIP_Y_WEBGL = web_gl.RenderingContext.UNPACK_FLIP_Y_WEBGL;
+web_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL = web_gl.RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL;
+web_gl.UNSIGNED_BYTE = web_gl.RenderingContext.UNSIGNED_BYTE;
+web_gl.UNSIGNED_INT = web_gl.RenderingContext.UNSIGNED_INT;
+web_gl.UNSIGNED_SHORT = web_gl.RenderingContext.UNSIGNED_SHORT;
+web_gl.UNSIGNED_SHORT_4_4_4_4 = web_gl.RenderingContext.UNSIGNED_SHORT_4_4_4_4;
+web_gl.UNSIGNED_SHORT_5_5_5_1 = web_gl.RenderingContext.UNSIGNED_SHORT_5_5_5_1;
+web_gl.UNSIGNED_SHORT_5_6_5 = web_gl.RenderingContext.UNSIGNED_SHORT_5_6_5;
+web_gl.VALIDATE_STATUS = web_gl.RenderingContext.VALIDATE_STATUS;
+web_gl.VENDOR = web_gl.RenderingContext.VENDOR;
+web_gl.VERSION = web_gl.RenderingContext.VERSION;
+web_gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING;
+web_gl.VERTEX_ATTRIB_ARRAY_ENABLED = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED;
+web_gl.VERTEX_ATTRIB_ARRAY_NORMALIZED = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED;
+web_gl.VERTEX_ATTRIB_ARRAY_POINTER = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER;
+web_gl.VERTEX_ATTRIB_ARRAY_SIZE = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE;
+web_gl.VERTEX_ATTRIB_ARRAY_STRIDE = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE;
+web_gl.VERTEX_ATTRIB_ARRAY_TYPE = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE;
+web_gl.VERTEX_SHADER = web_gl.RenderingContext.VERTEX_SHADER;
+web_gl.VIEWPORT = web_gl.RenderingContext.VIEWPORT;
+web_gl.ZERO = web_gl.RenderingContext.ZERO;
+dart.defineExtensionNames([
+  'name',
+  'size',
+  'type'
+]);
+web_gl.ActiveInfo = class ActiveInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.name]() {
+    return this.name;
+  }
+  get [dartx.size]() {
+    return this.size;
+  }
+  get [dartx.type]() {
+    return this.type;
+  }
+};
+dart.setSignature(web_gl.ActiveInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ActiveInfo, [])}),
+  fields: () => ({
+    [dartx.name]: core.String,
+    [dartx.size]: core.int,
+    [dartx.type]: core.int
+  })
+});
+dart.registerExtension(dart.global.WebGLActiveInfo, web_gl.ActiveInfo);
+dart.defineExtensionNames([
+  'drawArraysInstancedAngle',
+  'drawElementsInstancedAngle',
+  'vertexAttribDivisorAngle'
+]);
+web_gl.AngleInstancedArrays = class AngleInstancedArrays extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.drawArraysInstancedAngle](...args) {
+    return this.drawArraysInstancedANGLE.apply(this, args);
+  }
+  [dartx.drawElementsInstancedAngle](...args) {
+    return this.drawElementsInstancedANGLE.apply(this, args);
+  }
+  [dartx.vertexAttribDivisorAngle](...args) {
+    return this.vertexAttribDivisorANGLE.apply(this, args);
+  }
+};
+dart.setSignature(web_gl.AngleInstancedArrays, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.AngleInstancedArrays, [])}),
+  methods: () => ({
+    [dartx.drawArraysInstancedAngle]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
+    [dartx.drawElementsInstancedAngle]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
+    [dartx.vertexAttribDivisorAngle]: dart.definiteFunctionType(dart.void, [core.int, core.int])
+  }),
+  sfields: () => ({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: core.int})
+});
+web_gl.AngleInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 35070;
+dart.registerExtension(dart.global.ANGLEInstancedArrays, web_gl.AngleInstancedArrays);
+web_gl.Buffer = class Buffer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.Buffer, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.Buffer, [])})
+});
+dart.registerExtension(dart.global.WebGLBuffer, web_gl.Buffer);
+web_gl.CompressedTextureAtc = class CompressedTextureAtc extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.CompressedTextureAtc, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTextureAtc, [])}),
+  sfields: () => ({
+    COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: core.int,
+    COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: core.int,
+    COMPRESSED_RGB_ATC_WEBGL: core.int
+  })
+});
+web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;
+web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;
+web_gl.CompressedTextureAtc.COMPRESSED_RGB_ATC_WEBGL = 35986;
+dart.registerExtension(dart.global.WebGLCompressedTextureATC, web_gl.CompressedTextureAtc);
+web_gl.CompressedTextureETC1 = class CompressedTextureETC1 extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.CompressedTextureETC1, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTextureETC1, [])}),
+  sfields: () => ({COMPRESSED_RGB_ETC1_WEBGL: core.int})
+});
+web_gl.CompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL = 36196;
+dart.registerExtension(dart.global.WebGLCompressedTextureETC1, web_gl.CompressedTextureETC1);
+web_gl.CompressedTexturePvrtc = class CompressedTexturePvrtc extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.CompressedTexturePvrtc, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTexturePvrtc, [])}),
+  sfields: () => ({
+    COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: core.int,
+    COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: core.int,
+    COMPRESSED_RGB_PVRTC_2BPPV1_IMG: core.int,
+    COMPRESSED_RGB_PVRTC_4BPPV1_IMG: core.int
+  })
+});
+web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;
+web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;
+web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841;
+web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;
+dart.registerExtension(dart.global.WebGLCompressedTexturePVRTC, web_gl.CompressedTexturePvrtc);
+web_gl.CompressedTextureS3TC = class CompressedTextureS3TC extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.CompressedTextureS3TC, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTextureS3TC, [])}),
+  sfields: () => ({
+    COMPRESSED_RGBA_S3TC_DXT1_EXT: core.int,
+    COMPRESSED_RGBA_S3TC_DXT3_EXT: core.int,
+    COMPRESSED_RGBA_S3TC_DXT5_EXT: core.int,
+    COMPRESSED_RGB_S3TC_DXT1_EXT: core.int
+  })
+});
+web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;
+web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;
+web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;
+web_gl.CompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;
+dart.registerExtension(dart.global.WebGLCompressedTextureS3TC, web_gl.CompressedTextureS3TC);
+dart.defineExtensionNames([
+  'alpha',
+  'antialias',
+  'depth',
+  'failIfMajorPerformanceCaveat',
+  'premultipliedAlpha',
+  'preserveDrawingBuffer',
+  'stencil'
+]);
+web_gl.ContextAttributes = class ContextAttributes extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.alpha]() {
+    return this.alpha;
+  }
+  set [dartx.alpha](value) {
+    this.alpha = value;
+  }
+  get [dartx.antialias]() {
+    return this.antialias;
+  }
+  set [dartx.antialias](value) {
+    this.antialias = value;
+  }
+  get [dartx.depth]() {
+    return this.depth;
+  }
+  set [dartx.depth](value) {
+    this.depth = value;
+  }
+  get [dartx.failIfMajorPerformanceCaveat]() {
+    return this.failIfMajorPerformanceCaveat;
+  }
+  set [dartx.failIfMajorPerformanceCaveat](value) {
+    this.failIfMajorPerformanceCaveat = value;
+  }
+  get [dartx.premultipliedAlpha]() {
+    return this.premultipliedAlpha;
+  }
+  set [dartx.premultipliedAlpha](value) {
+    this.premultipliedAlpha = value;
+  }
+  get [dartx.preserveDrawingBuffer]() {
+    return this.preserveDrawingBuffer;
+  }
+  set [dartx.preserveDrawingBuffer](value) {
+    this.preserveDrawingBuffer = value;
+  }
+  get [dartx.stencil]() {
+    return this.stencil;
+  }
+  set [dartx.stencil](value) {
+    this.stencil = value;
+  }
+};
+dart.setSignature(web_gl.ContextAttributes, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ContextAttributes, [])}),
+  fields: () => ({
+    [dartx.alpha]: core.bool,
+    [dartx.antialias]: core.bool,
+    [dartx.depth]: core.bool,
+    [dartx.failIfMajorPerformanceCaveat]: core.bool,
+    [dartx.premultipliedAlpha]: core.bool,
+    [dartx.preserveDrawingBuffer]: core.bool,
+    [dartx.stencil]: core.bool
+  })
+});
+dart.registerExtension(dart.global.WebGLContextAttributes, web_gl.ContextAttributes);
+dart.defineExtensionNames([
+  'statusMessage'
+]);
+web_gl.ContextEvent = class ContextEvent extends html$.Event {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.statusMessage]() {
+    return this.statusMessage;
+  }
+};
+dart.setSignature(web_gl.ContextEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ContextEvent, [])}),
+  fields: () => ({[dartx.statusMessage]: core.String})
+});
+dart.registerExtension(dart.global.WebGLContextEvent, web_gl.ContextEvent);
+web_gl.DebugRendererInfo = class DebugRendererInfo extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.DebugRendererInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.DebugRendererInfo, [])}),
+  sfields: () => ({
+    UNMASKED_RENDERER_WEBGL: core.int,
+    UNMASKED_VENDOR_WEBGL: core.int
+  })
+});
+web_gl.DebugRendererInfo.UNMASKED_RENDERER_WEBGL = 37446;
+web_gl.DebugRendererInfo.UNMASKED_VENDOR_WEBGL = 37445;
+dart.registerExtension(dart.global.WebGLDebugRendererInfo, web_gl.DebugRendererInfo);
+dart.defineExtensionNames([
+  'getTranslatedShaderSource'
+]);
+web_gl.DebugShaders = class DebugShaders extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.getTranslatedShaderSource](...args) {
+    return this.getTranslatedShaderSource.apply(this, args);
+  }
+};
+dart.setSignature(web_gl.DebugShaders, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.DebugShaders, [])}),
+  methods: () => ({[dartx.getTranslatedShaderSource]: dart.definiteFunctionType(core.String, [web_gl.Shader])})
+});
+dart.registerExtension(dart.global.WebGLDebugShaders, web_gl.DebugShaders);
+web_gl.DepthTexture = class DepthTexture extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.DepthTexture, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.DepthTexture, [])}),
+  sfields: () => ({UNSIGNED_INT_24_8_WEBGL: core.int})
+});
+web_gl.DepthTexture.UNSIGNED_INT_24_8_WEBGL = 34042;
+dart.registerExtension(dart.global.WebGLDepthTexture, web_gl.DepthTexture);
+dart.defineExtensionNames([
+  'drawBuffersWebgl'
+]);
+web_gl.DrawBuffers = class DrawBuffers extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.drawBuffersWebgl](...args) {
+    return this.drawBuffersWEBGL.apply(this, args);
+  }
+};
+dart.setSignature(web_gl.DrawBuffers, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.DrawBuffers, [])}),
+  methods: () => ({[dartx.drawBuffersWebgl]: dart.definiteFunctionType(dart.void, [ListOfint()])}),
+  sfields: () => ({
+    COLOR_ATTACHMENT0_WEBGL: core.int,
+    COLOR_ATTACHMENT10_WEBGL: core.int,
+    COLOR_ATTACHMENT11_WEBGL: core.int,
+    COLOR_ATTACHMENT12_WEBGL: core.int,
+    COLOR_ATTACHMENT13_WEBGL: core.int,
+    COLOR_ATTACHMENT14_WEBGL: core.int,
+    COLOR_ATTACHMENT15_WEBGL: core.int,
+    COLOR_ATTACHMENT1_WEBGL: core.int,
+    COLOR_ATTACHMENT2_WEBGL: core.int,
+    COLOR_ATTACHMENT3_WEBGL: core.int,
+    COLOR_ATTACHMENT4_WEBGL: core.int,
+    COLOR_ATTACHMENT5_WEBGL: core.int,
+    COLOR_ATTACHMENT6_WEBGL: core.int,
+    COLOR_ATTACHMENT7_WEBGL: core.int,
+    COLOR_ATTACHMENT8_WEBGL: core.int,
+    COLOR_ATTACHMENT9_WEBGL: core.int,
+    DRAW_BUFFER0_WEBGL: core.int,
+    DRAW_BUFFER10_WEBGL: core.int,
+    DRAW_BUFFER11_WEBGL: core.int,
+    DRAW_BUFFER12_WEBGL: core.int,
+    DRAW_BUFFER13_WEBGL: core.int,
+    DRAW_BUFFER14_WEBGL: core.int,
+    DRAW_BUFFER15_WEBGL: core.int,
+    DRAW_BUFFER1_WEBGL: core.int,
+    DRAW_BUFFER2_WEBGL: core.int,
+    DRAW_BUFFER3_WEBGL: core.int,
+    DRAW_BUFFER4_WEBGL: core.int,
+    DRAW_BUFFER5_WEBGL: core.int,
+    DRAW_BUFFER6_WEBGL: core.int,
+    DRAW_BUFFER7_WEBGL: core.int,
+    DRAW_BUFFER8_WEBGL: core.int,
+    DRAW_BUFFER9_WEBGL: core.int,
+    MAX_COLOR_ATTACHMENTS_WEBGL: core.int,
+    MAX_DRAW_BUFFERS_WEBGL: core.int
+  })
+});
+web_gl.DrawBuffers.COLOR_ATTACHMENT0_WEBGL = 36064;
+web_gl.DrawBuffers.COLOR_ATTACHMENT10_WEBGL = 36074;
+web_gl.DrawBuffers.COLOR_ATTACHMENT11_WEBGL = 36075;
+web_gl.DrawBuffers.COLOR_ATTACHMENT12_WEBGL = 36076;
+web_gl.DrawBuffers.COLOR_ATTACHMENT13_WEBGL = 36077;
+web_gl.DrawBuffers.COLOR_ATTACHMENT14_WEBGL = 36078;
+web_gl.DrawBuffers.COLOR_ATTACHMENT15_WEBGL = 36079;
+web_gl.DrawBuffers.COLOR_ATTACHMENT1_WEBGL = 36065;
+web_gl.DrawBuffers.COLOR_ATTACHMENT2_WEBGL = 36066;
+web_gl.DrawBuffers.COLOR_ATTACHMENT3_WEBGL = 36067;
+web_gl.DrawBuffers.COLOR_ATTACHMENT4_WEBGL = 36068;
+web_gl.DrawBuffers.COLOR_ATTACHMENT5_WEBGL = 36069;
+web_gl.DrawBuffers.COLOR_ATTACHMENT6_WEBGL = 36070;
+web_gl.DrawBuffers.COLOR_ATTACHMENT7_WEBGL = 36071;
+web_gl.DrawBuffers.COLOR_ATTACHMENT8_WEBGL = 36072;
+web_gl.DrawBuffers.COLOR_ATTACHMENT9_WEBGL = 36073;
+web_gl.DrawBuffers.DRAW_BUFFER0_WEBGL = 34853;
+web_gl.DrawBuffers.DRAW_BUFFER10_WEBGL = 34863;
+web_gl.DrawBuffers.DRAW_BUFFER11_WEBGL = 34864;
+web_gl.DrawBuffers.DRAW_BUFFER12_WEBGL = 34865;
+web_gl.DrawBuffers.DRAW_BUFFER13_WEBGL = 34866;
+web_gl.DrawBuffers.DRAW_BUFFER14_WEBGL = 34867;
+web_gl.DrawBuffers.DRAW_BUFFER15_WEBGL = 34868;
+web_gl.DrawBuffers.DRAW_BUFFER1_WEBGL = 34854;
+web_gl.DrawBuffers.DRAW_BUFFER2_WEBGL = 34855;
+web_gl.DrawBuffers.DRAW_BUFFER3_WEBGL = 34856;
+web_gl.DrawBuffers.DRAW_BUFFER4_WEBGL = 34857;
+web_gl.DrawBuffers.DRAW_BUFFER5_WEBGL = 34858;
+web_gl.DrawBuffers.DRAW_BUFFER6_WEBGL = 34859;
+web_gl.DrawBuffers.DRAW_BUFFER7_WEBGL = 34860;
+web_gl.DrawBuffers.DRAW_BUFFER8_WEBGL = 34861;
+web_gl.DrawBuffers.DRAW_BUFFER9_WEBGL = 34862;
+web_gl.DrawBuffers.MAX_COLOR_ATTACHMENTS_WEBGL = 36063;
+web_gl.DrawBuffers.MAX_DRAW_BUFFERS_WEBGL = 34852;
+dart.registerExtension(dart.global.WebGLDrawBuffers, web_gl.DrawBuffers);
+web_gl.ExtBlendMinMax = class ExtBlendMinMax extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.ExtBlendMinMax, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtBlendMinMax, [])}),
+  sfields: () => ({
+    MAX_EXT: core.int,
+    MIN_EXT: core.int
+  })
+});
+web_gl.ExtBlendMinMax.MAX_EXT = 32776;
+web_gl.ExtBlendMinMax.MIN_EXT = 32775;
+dart.registerExtension(dart.global.EXTBlendMinMax, web_gl.ExtBlendMinMax);
+web_gl.ExtFragDepth = class ExtFragDepth extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.ExtFragDepth, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtFragDepth, [])})
+});
+dart.registerExtension(dart.global.EXTFragDepth, web_gl.ExtFragDepth);
+web_gl.ExtShaderTextureLod = class ExtShaderTextureLod extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.ExtShaderTextureLod, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtShaderTextureLod, [])})
+});
+dart.registerExtension(dart.global.EXTShaderTextureLOD, web_gl.ExtShaderTextureLod);
+web_gl.ExtTextureFilterAnisotropic = class ExtTextureFilterAnisotropic extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.ExtTextureFilterAnisotropic, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtTextureFilterAnisotropic, [])}),
+  sfields: () => ({
+    MAX_TEXTURE_MAX_ANISOTROPY_EXT: core.int,
+    TEXTURE_MAX_ANISOTROPY_EXT: core.int
+  })
+});
+web_gl.ExtTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;
+web_gl.ExtTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT = 34046;
+dart.registerExtension(dart.global.EXTTextureFilterAnisotropic, web_gl.ExtTextureFilterAnisotropic);
+web_gl.Framebuffer = class Framebuffer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.Framebuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.Framebuffer, [])})
+});
+dart.registerExtension(dart.global.WebGLFramebuffer, web_gl.Framebuffer);
+dart.defineExtensionNames([
+  'loseContext',
+  'restoreContext'
+]);
+web_gl.LoseContext = class LoseContext extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.loseContext](...args) {
+    return this.loseContext.apply(this, args);
+  }
+  [dartx.restoreContext](...args) {
+    return this.restoreContext.apply(this, args);
+  }
+};
+dart.setSignature(web_gl.LoseContext, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.LoseContext, [])}),
+  methods: () => ({
+    [dartx.loseContext]: dart.definiteFunctionType(dart.void, []),
+    [dartx.restoreContext]: dart.definiteFunctionType(dart.void, [])
+  })
+});
+dart.registerExtension(dart.global.WebGLLoseContext, web_gl.LoseContext);
+dart.registerExtension(dart.global.WebGLExtensionLoseContext, web_gl.LoseContext);
+web_gl.OesElementIndexUint = class OesElementIndexUint extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.OesElementIndexUint, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesElementIndexUint, [])})
+});
+dart.registerExtension(dart.global.OESElementIndexUint, web_gl.OesElementIndexUint);
+web_gl.OesStandardDerivatives = class OesStandardDerivatives extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.OesStandardDerivatives, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesStandardDerivatives, [])}),
+  sfields: () => ({FRAGMENT_SHADER_DERIVATIVE_HINT_OES: core.int})
+});
+web_gl.OesStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 35723;
+dart.registerExtension(dart.global.OESStandardDerivatives, web_gl.OesStandardDerivatives);
+web_gl.OesTextureFloat = class OesTextureFloat extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.OesTextureFloat, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureFloat, [])})
+});
+dart.registerExtension(dart.global.OESTextureFloat, web_gl.OesTextureFloat);
+web_gl.OesTextureFloatLinear = class OesTextureFloatLinear extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.OesTextureFloatLinear, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureFloatLinear, [])})
+});
+dart.registerExtension(dart.global.OESTextureFloatLinear, web_gl.OesTextureFloatLinear);
+web_gl.OesTextureHalfFloatLinear = class OesTextureHalfFloatLinear extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.OesTextureHalfFloatLinear, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureHalfFloatLinear, [])})
+});
+dart.registerExtension(dart.global.OESTextureHalfFloatLinear, web_gl.OesTextureHalfFloatLinear);
+dart.defineExtensionNames([
+  'bindVertexArray',
+  'createVertexArray',
+  'deleteVertexArray',
+  'isVertexArray'
+]);
+web_gl.OesVertexArrayObject = class OesVertexArrayObject extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.bindVertexArray](...args) {
+    return this.bindVertexArrayOES.apply(this, args);
+  }
+  [dartx.createVertexArray](...args) {
+    return this.createVertexArrayOES.apply(this, args);
+  }
+  [dartx.deleteVertexArray](...args) {
+    return this.deleteVertexArrayOES.apply(this, args);
+  }
+  [dartx.isVertexArray](...args) {
+    return this.isVertexArrayOES.apply(this, args);
+  }
+};
+dart.setSignature(web_gl.OesVertexArrayObject, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.OesVertexArrayObject, [])}),
+  methods: () => ({
+    [dartx.bindVertexArray]: dart.definiteFunctionType(dart.void, [web_gl.VertexArrayObject]),
+    [dartx.createVertexArray]: dart.definiteFunctionType(web_gl.VertexArrayObject, []),
+    [dartx.deleteVertexArray]: dart.definiteFunctionType(dart.void, [web_gl.VertexArrayObject]),
+    [dartx.isVertexArray]: dart.definiteFunctionType(core.bool, [web_gl.VertexArrayObject])
+  }),
+  sfields: () => ({VERTEX_ARRAY_BINDING_OES: core.int})
+});
+web_gl.OesVertexArrayObject.VERTEX_ARRAY_BINDING_OES = 34229;
+dart.registerExtension(dart.global.OESVertexArrayObject, web_gl.OesVertexArrayObject);
+web_gl.Program = class Program extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.Program, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.Program, [])})
+});
+dart.registerExtension(dart.global.WebGLProgram, web_gl.Program);
+web_gl.Renderbuffer = class Renderbuffer extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.Renderbuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.Renderbuffer, [])})
+});
+dart.registerExtension(dart.global.WebGLRenderbuffer, web_gl.Renderbuffer);
+web_gl.Shader = class Shader extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.Shader, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.Shader, [])})
+});
+dart.registerExtension(dart.global.WebGLShader, web_gl.Shader);
+dart.defineExtensionNames([
+  'precision',
+  'rangeMax',
+  'rangeMin'
+]);
+web_gl.ShaderPrecisionFormat = class ShaderPrecisionFormat extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.precision]() {
+    return this.precision;
+  }
+  get [dartx.rangeMax]() {
+    return this.rangeMax;
+  }
+  get [dartx.rangeMin]() {
+    return this.rangeMin;
+  }
+};
+dart.setSignature(web_gl.ShaderPrecisionFormat, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.ShaderPrecisionFormat, [])}),
+  fields: () => ({
+    [dartx.precision]: core.int,
+    [dartx.rangeMax]: core.int,
+    [dartx.rangeMin]: core.int
+  })
+});
+dart.registerExtension(dart.global.WebGLShaderPrecisionFormat, web_gl.ShaderPrecisionFormat);
+web_gl.Texture = class Texture extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.Texture, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.Texture, [])})
+});
+dart.registerExtension(dart.global.WebGLTexture, web_gl.Texture);
+web_gl.UniformLocation = class UniformLocation extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.UniformLocation, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.UniformLocation, [])})
+});
+dart.registerExtension(dart.global.WebGLUniformLocation, web_gl.UniformLocation);
+web_gl.VertexArrayObject = class VertexArrayObject extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl.VertexArrayObject, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl.VertexArrayObject, [])})
+});
+dart.registerExtension(dart.global.WebGLVertexArrayObjectOES, web_gl.VertexArrayObject);
+web_gl._WebGLRenderingContextBase = class _WebGLRenderingContextBase extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+};
+dart.setSignature(web_gl._WebGLRenderingContextBase, {
+  constructors: () => ({_: dart.definiteFunctionType(web_gl._WebGLRenderingContextBase, [])})
+});
+web_sql.SqlStatementCallback = dart.typedef('SqlStatementCallback', () => dart.functionType(dart.void, [web_sql.SqlTransaction, web_sql.SqlResultSet]));
+web_sql.SqlStatementErrorCallback = dart.typedef('SqlStatementErrorCallback', () => dart.functionType(dart.void, [web_sql.SqlTransaction, web_sql.SqlError]));
+web_sql.SqlTransactionCallback = dart.typedef('SqlTransactionCallback', () => dart.functionType(dart.void, [web_sql.SqlTransaction]));
+web_sql.SqlTransactionErrorCallback = dart.typedef('SqlTransactionErrorCallback', () => dart.functionType(dart.void, [web_sql.SqlError]));
+dart.defineExtensionNames([
+  'changeVersion',
+  'readTransaction',
+  'transaction',
+  'version'
+]);
+web_sql.SqlDatabase = class SqlDatabase extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  static get supported() {
+    return !!window.openDatabase;
+  }
+  get [dartx.version]() {
+    return this.version;
+  }
+  [dartx.changeVersion](...args) {
+    return this.changeVersion.apply(this, args);
+  }
+  [dartx.readTransaction](...args) {
+    return this.readTransaction.apply(this, args);
+  }
+  [dartx.transaction](...args) {
+    return this.transaction.apply(this, args);
+  }
+};
+dart.setSignature(web_sql.SqlDatabase, {
+  constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlDatabase, [])}),
+  fields: () => ({[dartx.version]: core.String}),
+  methods: () => ({
+    [dartx.changeVersion]: dart.definiteFunctionType(dart.void, [core.String, core.String], [web_sql.SqlTransactionCallback, web_sql.SqlTransactionErrorCallback, html$.VoidCallback]),
+    [dartx.readTransaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html$.VoidCallback]),
+    [dartx.transaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html$.VoidCallback])
+  }),
+  sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
+});
+dart.registerExtension(dart.global.Database, web_sql.SqlDatabase);
+dart.defineExtensionNames([
+  'code',
+  'message'
+]);
+web_sql.SqlError = class SqlError extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.code]() {
+    return this.code;
+  }
+  get [dartx.message]() {
+    return this.message;
+  }
+};
+dart.setSignature(web_sql.SqlError, {
+  constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlError, [])}),
+  fields: () => ({
+    [dartx.code]: core.int,
+    [dartx.message]: core.String
+  }),
+  sfields: () => ({
+    CONSTRAINT_ERR: core.int,
+    DATABASE_ERR: core.int,
+    QUOTA_ERR: core.int,
+    SYNTAX_ERR: core.int,
+    TIMEOUT_ERR: core.int,
+    TOO_LARGE_ERR: core.int,
+    UNKNOWN_ERR: core.int,
+    VERSION_ERR: core.int
+  })
+});
+web_sql.SqlError.CONSTRAINT_ERR = 6;
+web_sql.SqlError.DATABASE_ERR = 1;
+web_sql.SqlError.QUOTA_ERR = 4;
+web_sql.SqlError.SYNTAX_ERR = 5;
+web_sql.SqlError.TIMEOUT_ERR = 7;
+web_sql.SqlError.TOO_LARGE_ERR = 3;
+web_sql.SqlError.UNKNOWN_ERR = 0;
+web_sql.SqlError.VERSION_ERR = 2;
+dart.registerExtension(dart.global.SQLError, web_sql.SqlError);
+dart.defineExtensionNames([
+  'insertId',
+  'rows',
+  'rowsAffected'
+]);
+web_sql.SqlResultSet = class SqlResultSet extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.insertId]() {
+    return this.insertId;
+  }
+  get [dartx.rows]() {
+    return this.rows;
+  }
+  get [dartx.rowsAffected]() {
+    return this.rowsAffected;
+  }
+};
+dart.setSignature(web_sql.SqlResultSet, {
+  constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlResultSet, [])}),
+  fields: () => ({
+    [dartx.insertId]: core.int,
+    [dartx.rows]: web_sql.SqlResultSetRowList,
+    [dartx.rowsAffected]: core.int
+  })
+});
+dart.registerExtension(dart.global.SQLResultSet, web_sql.SqlResultSet);
+const _item_1 = Symbol('_item_1');
+dart.defineExtensionNames([
+  'length',
+  '_get',
+  '_set',
+  'length',
+  'first',
+  'last',
+  'single',
+  'elementAt',
+  'item'
+]);
+web_sql.SqlResultSetRowList = class SqlResultSetRowList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.Map), html$.ImmutableListMixin$(core.Map)) {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  get [dartx.length]() {
+    return this.length;
+  }
+  [dartx._get](index) {
+    if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
+    return this[dartx.item](index);
+  }
+  [dartx._set](index, value) {
+    dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
+    return value;
+  }
+  set [dartx.length](value) {
+    dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
+  }
+  get [dartx.first]() {
+    if (dart.notNull(this[dartx.length]) > 0) {
+      return this[0];
     }
-    [dartx.uniform2iv](...args) {
-      return this.uniform2iv.apply(this, args);
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.last]() {
+    let len = this[dartx.length];
+    if (dart.notNull(len) > 0) {
+      return this[dart.notNull(len) - 1];
     }
-    [dartx.uniform3f](...args) {
-      return this.uniform3f.apply(this, args);
+    dart.throw(new core.StateError("No elements"));
+  }
+  get [dartx.single]() {
+    let len = this[dartx.length];
+    if (len == 1) {
+      return this[0];
     }
-    [dartx.uniform3fv](...args) {
-      return this.uniform3fv.apply(this, args);
-    }
-    [dartx.uniform3i](...args) {
-      return this.uniform3i.apply(this, args);
-    }
-    [dartx.uniform3iv](...args) {
-      return this.uniform3iv.apply(this, args);
-    }
-    [dartx.uniform4f](...args) {
-      return this.uniform4f.apply(this, args);
-    }
-    [dartx.uniform4fv](...args) {
-      return this.uniform4fv.apply(this, args);
-    }
-    [dartx.uniform4i](...args) {
-      return this.uniform4i.apply(this, args);
-    }
-    [dartx.uniform4iv](...args) {
-      return this.uniform4iv.apply(this, args);
-    }
-    [dartx.uniformMatrix2fv](...args) {
-      return this.uniformMatrix2fv.apply(this, args);
-    }
-    [dartx.uniformMatrix3fv](...args) {
-      return this.uniformMatrix3fv.apply(this, args);
-    }
-    [dartx.uniformMatrix4fv](...args) {
-      return this.uniformMatrix4fv.apply(this, args);
-    }
-    [dartx.useProgram](...args) {
-      return this.useProgram.apply(this, args);
-    }
-    [dartx.validateProgram](...args) {
-      return this.validateProgram.apply(this, args);
-    }
-    [dartx.vertexAttrib1f](...args) {
-      return this.vertexAttrib1f.apply(this, args);
-    }
-    [dartx.vertexAttrib1fv](...args) {
-      return this.vertexAttrib1fv.apply(this, args);
-    }
-    [dartx.vertexAttrib2f](...args) {
-      return this.vertexAttrib2f.apply(this, args);
-    }
-    [dartx.vertexAttrib2fv](...args) {
-      return this.vertexAttrib2fv.apply(this, args);
-    }
-    [dartx.vertexAttrib3f](...args) {
-      return this.vertexAttrib3f.apply(this, args);
-    }
-    [dartx.vertexAttrib3fv](...args) {
-      return this.vertexAttrib3fv.apply(this, args);
-    }
-    [dartx.vertexAttrib4f](...args) {
-      return this.vertexAttrib4f.apply(this, args);
-    }
-    [dartx.vertexAttrib4fv](...args) {
-      return this.vertexAttrib4fv.apply(this, args);
-    }
-    [dartx.vertexAttribPointer](...args) {
-      return this.vertexAttribPointer.apply(this, args);
-    }
-    [dartx.viewport](...args) {
-      return this.viewport.apply(this, args);
-    }
-    [dartx.texImage2DUntyped](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texImage2DTyped](...args) {
-      return this.texImage2D.apply(this, args);
-    }
-    [dartx.texSubImage2DUntyped](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-    [dartx.texSubImage2DTyped](...args) {
-      return this.texSubImage2D.apply(this, args);
-    }
-  };
-  web_gl.RenderingContext[dart.implements] = () => [html$.CanvasRenderingContext];
-  dart.setSignature(web_gl.RenderingContext, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.RenderingContext, [])}),
-    fields: () => ({
-      [dartx.canvas]: html$.CanvasElement,
-      [dartx.drawingBufferHeight]: core.int,
-      [dartx.drawingBufferWidth]: core.int
-    }),
-    methods: () => ({
-      [dartx.activeTexture]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.attachShader]: dart.definiteFunctionType(dart.void, [web_gl.Program, web_gl.Shader]),
-      [dartx.bindAttribLocation]: dart.definiteFunctionType(dart.void, [web_gl.Program, core.int, core.String]),
-      [dartx.bindBuffer]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Buffer]),
-      [dartx.bindFramebuffer]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Framebuffer]),
-      [dartx.bindRenderbuffer]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Renderbuffer]),
-      [dartx.bindTexture]: dart.definiteFunctionType(dart.void, [core.int, web_gl.Texture]),
-      [dartx.blendColor]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.blendEquation]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.blendEquationSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.blendFunc]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.blendFuncSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.bufferByteData]: dart.definiteFunctionType(dart.void, [core.int, typed_data.ByteBuffer, core.int]),
-      [dartx.bufferData]: dart.definiteFunctionType(dart.void, [core.int, dart.dynamic, core.int]),
-      [dartx.bufferDataTyped]: dart.definiteFunctionType(dart.void, [core.int, typed_data.TypedData, core.int]),
-      [dartx.bufferSubByteData]: dart.definiteFunctionType(dart.void, [core.int, core.int, typed_data.ByteBuffer]),
-      [dartx.bufferSubData]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
-      [dartx.bufferSubDataTyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, typed_data.TypedData]),
-      [dartx.checkFramebufferStatus]: dart.definiteFunctionType(core.int, [core.int]),
-      [dartx.clear]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.clearColor]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-      [dartx.clearDepth]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.clearStencil]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.colorMask]: dart.definiteFunctionType(dart.void, [core.bool, core.bool, core.bool, core.bool]),
-      [dartx.compileShader]: dart.definiteFunctionType(dart.void, [web_gl.Shader]),
-      [dartx.compressedTexImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
-      [dartx.compressedTexSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
-      [dartx.copyTexImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
-      [dartx.copyTexSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int]),
-      [dartx.createBuffer]: dart.definiteFunctionType(web_gl.Buffer, []),
-      [dartx.createFramebuffer]: dart.definiteFunctionType(web_gl.Framebuffer, []),
-      [dartx.createProgram]: dart.definiteFunctionType(web_gl.Program, []),
-      [dartx.createRenderbuffer]: dart.definiteFunctionType(web_gl.Renderbuffer, []),
-      [dartx.createShader]: dart.definiteFunctionType(web_gl.Shader, [core.int]),
-      [dartx.createTexture]: dart.definiteFunctionType(web_gl.Texture, []),
-      [dartx.cullFace]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.deleteBuffer]: dart.definiteFunctionType(dart.void, [web_gl.Buffer]),
-      [dartx.deleteFramebuffer]: dart.definiteFunctionType(dart.void, [web_gl.Framebuffer]),
-      [dartx.deleteProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
-      [dartx.deleteRenderbuffer]: dart.definiteFunctionType(dart.void, [web_gl.Renderbuffer]),
-      [dartx.deleteShader]: dart.definiteFunctionType(dart.void, [web_gl.Shader]),
-      [dartx.deleteTexture]: dart.definiteFunctionType(dart.void, [web_gl.Texture]),
-      [dartx.depthFunc]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.depthMask]: dart.definiteFunctionType(dart.void, [core.bool]),
-      [dartx.depthRange]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.detachShader]: dart.definiteFunctionType(dart.void, [web_gl.Program, web_gl.Shader]),
-      [dartx.disable]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.disableVertexAttribArray]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.drawArrays]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
-      [dartx.drawElements]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.enable]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.enableVertexAttribArray]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.finish]: dart.definiteFunctionType(dart.void, []),
-      [dartx.flush]: dart.definiteFunctionType(dart.void, []),
-      [dartx.framebufferRenderbuffer]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, web_gl.Renderbuffer]),
-      [dartx.framebufferTexture2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, web_gl.Texture, core.int]),
-      [dartx.frontFace]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.generateMipmap]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.getActiveAttrib]: dart.definiteFunctionType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
-      [dartx.getActiveUniform]: dart.definiteFunctionType(web_gl.ActiveInfo, [web_gl.Program, core.int]),
-      [dartx.getAttachedShaders]: dart.definiteFunctionType(core.List$(web_gl.Shader), [web_gl.Program]),
-      [dartx.getAttribLocation]: dart.definiteFunctionType(core.int, [web_gl.Program, core.String]),
-      [dartx.getBufferParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
-      [dartx.getContextAttributes]: dart.definiteFunctionType(web_gl.ContextAttributes, []),
-      [_getContextAttributes_1$]: dart.definiteFunctionType(dart.dynamic, []),
-      [dartx.getError]: dart.definiteFunctionType(core.int, []),
-      [dartx.getExtension]: dart.definiteFunctionType(core.Object, [core.String]),
-      [dartx.getFramebufferAttachmentParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int, core.int]),
-      [dartx.getParameter]: dart.definiteFunctionType(core.Object, [core.int]),
-      [dartx.getProgramInfoLog]: dart.definiteFunctionType(core.String, [web_gl.Program]),
-      [dartx.getProgramParameter]: dart.definiteFunctionType(core.Object, [web_gl.Program, core.int]),
-      [dartx.getRenderbufferParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
-      [dartx.getShaderInfoLog]: dart.definiteFunctionType(core.String, [web_gl.Shader]),
-      [dartx.getShaderParameter]: dart.definiteFunctionType(core.Object, [web_gl.Shader, core.int]),
-      [dartx.getShaderPrecisionFormat]: dart.definiteFunctionType(web_gl.ShaderPrecisionFormat, [core.int, core.int]),
-      [dartx.getShaderSource]: dart.definiteFunctionType(core.String, [web_gl.Shader]),
-      [dartx.getSupportedExtensions]: dart.definiteFunctionType(core.List$(core.String), []),
-      [dartx.getTexParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
-      [dartx.getUniform]: dart.definiteFunctionType(core.Object, [web_gl.Program, web_gl.UniformLocation]),
-      [dartx.getUniformLocation]: dart.definiteFunctionType(web_gl.UniformLocation, [web_gl.Program, core.String]),
-      [dartx.getVertexAttrib]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
-      [dartx.getVertexAttribOffset]: dart.definiteFunctionType(core.int, [core.int, core.int]),
-      [dartx.hint]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.isBuffer]: dart.definiteFunctionType(core.bool, [web_gl.Buffer]),
-      [dartx.isContextLost]: dart.definiteFunctionType(core.bool, []),
-      [dartx.isEnabled]: dart.definiteFunctionType(core.bool, [core.int]),
-      [dartx.isFramebuffer]: dart.definiteFunctionType(core.bool, [web_gl.Framebuffer]),
-      [dartx.isProgram]: dart.definiteFunctionType(core.bool, [web_gl.Program]),
-      [dartx.isRenderbuffer]: dart.definiteFunctionType(core.bool, [web_gl.Renderbuffer]),
-      [dartx.isShader]: dart.definiteFunctionType(core.bool, [web_gl.Shader]),
-      [dartx.isTexture]: dart.definiteFunctionType(core.bool, [web_gl.Texture]),
-      [dartx.lineWidth]: dart.definiteFunctionType(dart.void, [core.num]),
-      [dartx.linkProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
-      [dartx.pixelStorei]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.polygonOffset]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-      [dartx.readPixels]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
-      [dartx.renderbufferStorage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.sampleCoverage]: dart.definiteFunctionType(dart.void, [core.num, core.bool]),
-      [dartx.scissor]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.shaderSource]: dart.definiteFunctionType(dart.void, [web_gl.Shader, core.String]),
-      [dartx.stencilFunc]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
-      [dartx.stencilFuncSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.stencilMask]: dart.definiteFunctionType(dart.void, [core.int]),
-      [dartx.stencilMaskSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-      [dartx.stencilOp]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
-      [dartx.stencilOpSeparate]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.texImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, core.int, typed_data.TypedData]),
-      [_texImage2D_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, typed_data.TypedData]),
-      [_texImage2D_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_texImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
-      [_texImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
-      [_texImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
-      [dartx.texImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.CanvasElement]),
-      [dartx.texImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.ImageElement]),
-      [dartx.texImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.ImageData]),
-      [_texImage2DImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [dartx.texImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.VideoElement]),
-      [dartx.texParameterf]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.num]),
-      [dartx.texParameteri]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
-      [dartx.texSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, typed_data.TypedData]),
-      [_texSubImage2D_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, typed_data.TypedData]),
-      [_texSubImage2D_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [_texSubImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
-      [_texSubImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
-      [_texSubImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
-      [dartx.texSubImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.CanvasElement]),
-      [dartx.texSubImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.ImageElement]),
-      [dartx.texSubImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.ImageData]),
-      [_texSubImage2DImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-      [dartx.texSubImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.VideoElement]),
-      [dartx.uniform1f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num]),
-      [dartx.uniform1fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
-      [dartx.uniform1i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int]),
-      [dartx.uniform1iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
-      [dartx.uniform2f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num, core.num]),
-      [dartx.uniform2fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
-      [dartx.uniform2i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int, core.int]),
-      [dartx.uniform2iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
-      [dartx.uniform3f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num]),
-      [dartx.uniform3fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
-      [dartx.uniform3i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int]),
-      [dartx.uniform3iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
-      [dartx.uniform4f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num, core.num, core.num, core.num]),
-      [dartx.uniform4fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
-      [dartx.uniform4i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int, core.int, core.int, core.int]),
-      [dartx.uniform4iv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Int32List]),
-      [dartx.uniformMatrix2fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.bool, typed_data.Float32List]),
-      [dartx.uniformMatrix3fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.bool, typed_data.Float32List]),
-      [dartx.uniformMatrix4fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.bool, typed_data.Float32List]),
-      [dartx.useProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
-      [dartx.validateProgram]: dart.definiteFunctionType(dart.void, [web_gl.Program]),
-      [dartx.vertexAttrib1f]: dart.definiteFunctionType(dart.void, [core.int, core.num]),
-      [dartx.vertexAttrib1fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
-      [dartx.vertexAttrib2f]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num]),
-      [dartx.vertexAttrib2fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
-      [dartx.vertexAttrib3f]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num, core.num]),
-      [dartx.vertexAttrib3fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
-      [dartx.vertexAttrib4f]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num, core.num, core.num]),
-      [dartx.vertexAttrib4fv]: dart.definiteFunctionType(dart.void, [core.int, typed_data.Float32List]),
-      [dartx.vertexAttribPointer]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.bool, core.int, core.int]),
-      [dartx.viewport]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.texImage2DUntyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
-      [dartx.texImage2DTyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData]),
-      [dartx.texSubImage2DUntyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic]),
-      [dartx.texSubImage2DTyped]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, core.int, typed_data.TypedData])
-    }),
-    sfields: () => ({
-      ACTIVE_ATTRIBUTES: core.int,
-      ACTIVE_TEXTURE: core.int,
-      ACTIVE_UNIFORMS: core.int,
-      ALIASED_LINE_WIDTH_RANGE: core.int,
-      ALIASED_POINT_SIZE_RANGE: core.int,
-      ALPHA: core.int,
-      ALPHA_BITS: core.int,
-      ALWAYS: core.int,
-      ARRAY_BUFFER: core.int,
-      ARRAY_BUFFER_BINDING: core.int,
-      ATTACHED_SHADERS: core.int,
-      BACK: core.int,
-      BLEND: core.int,
-      BLEND_COLOR: core.int,
-      BLEND_DST_ALPHA: core.int,
-      BLEND_DST_RGB: core.int,
-      BLEND_EQUATION: core.int,
-      BLEND_EQUATION_ALPHA: core.int,
-      BLEND_EQUATION_RGB: core.int,
-      BLEND_SRC_ALPHA: core.int,
-      BLEND_SRC_RGB: core.int,
-      BLUE_BITS: core.int,
-      BOOL: core.int,
-      BOOL_VEC2: core.int,
-      BOOL_VEC3: core.int,
-      BOOL_VEC4: core.int,
-      BROWSER_DEFAULT_WEBGL: core.int,
-      BUFFER_SIZE: core.int,
-      BUFFER_USAGE: core.int,
-      BYTE: core.int,
-      CCW: core.int,
-      CLAMP_TO_EDGE: core.int,
-      COLOR_ATTACHMENT0: core.int,
-      COLOR_BUFFER_BIT: core.int,
-      COLOR_CLEAR_VALUE: core.int,
-      COLOR_WRITEMASK: core.int,
-      COMPILE_STATUS: core.int,
-      COMPRESSED_TEXTURE_FORMATS: core.int,
-      CONSTANT_ALPHA: core.int,
-      CONSTANT_COLOR: core.int,
-      CONTEXT_LOST_WEBGL: core.int,
-      CULL_FACE: core.int,
-      CULL_FACE_MODE: core.int,
-      CURRENT_PROGRAM: core.int,
-      CURRENT_VERTEX_ATTRIB: core.int,
-      CW: core.int,
-      DECR: core.int,
-      DECR_WRAP: core.int,
-      DELETE_STATUS: core.int,
-      DEPTH_ATTACHMENT: core.int,
-      DEPTH_BITS: core.int,
-      DEPTH_BUFFER_BIT: core.int,
-      DEPTH_CLEAR_VALUE: core.int,
-      DEPTH_COMPONENT: core.int,
-      DEPTH_COMPONENT16: core.int,
-      DEPTH_FUNC: core.int,
-      DEPTH_RANGE: core.int,
-      DEPTH_STENCIL: core.int,
-      DEPTH_STENCIL_ATTACHMENT: core.int,
-      DEPTH_TEST: core.int,
-      DEPTH_WRITEMASK: core.int,
-      DITHER: core.int,
-      DONT_CARE: core.int,
-      DST_ALPHA: core.int,
-      DST_COLOR: core.int,
-      DYNAMIC_DRAW: core.int,
-      ELEMENT_ARRAY_BUFFER: core.int,
-      ELEMENT_ARRAY_BUFFER_BINDING: core.int,
-      EQUAL: core.int,
-      FASTEST: core.int,
-      FLOAT: core.int,
-      FLOAT_MAT2: core.int,
-      FLOAT_MAT3: core.int,
-      FLOAT_MAT4: core.int,
-      FLOAT_VEC2: core.int,
-      FLOAT_VEC3: core.int,
-      FLOAT_VEC4: core.int,
-      FRAGMENT_SHADER: core.int,
-      FRAMEBUFFER: core.int,
-      FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: core.int,
-      FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: core.int,
-      FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: core.int,
-      FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: core.int,
-      FRAMEBUFFER_BINDING: core.int,
-      FRAMEBUFFER_COMPLETE: core.int,
-      FRAMEBUFFER_INCOMPLETE_ATTACHMENT: core.int,
-      FRAMEBUFFER_INCOMPLETE_DIMENSIONS: core.int,
-      FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: core.int,
-      FRAMEBUFFER_UNSUPPORTED: core.int,
-      FRONT: core.int,
-      FRONT_AND_BACK: core.int,
-      FRONT_FACE: core.int,
-      FUNC_ADD: core.int,
-      FUNC_REVERSE_SUBTRACT: core.int,
-      FUNC_SUBTRACT: core.int,
-      GENERATE_MIPMAP_HINT: core.int,
-      GEQUAL: core.int,
-      GREATER: core.int,
-      GREEN_BITS: core.int,
-      HIGH_FLOAT: core.int,
-      HIGH_INT: core.int,
-      IMPLEMENTATION_COLOR_READ_FORMAT: core.int,
-      IMPLEMENTATION_COLOR_READ_TYPE: core.int,
-      INCR: core.int,
-      INCR_WRAP: core.int,
-      INT: core.int,
-      INT_VEC2: core.int,
-      INT_VEC3: core.int,
-      INT_VEC4: core.int,
-      INVALID_ENUM: core.int,
-      INVALID_FRAMEBUFFER_OPERATION: core.int,
-      INVALID_OPERATION: core.int,
-      INVALID_VALUE: core.int,
-      INVERT: core.int,
-      KEEP: core.int,
-      LEQUAL: core.int,
-      LESS: core.int,
-      LINEAR: core.int,
-      LINEAR_MIPMAP_LINEAR: core.int,
-      LINEAR_MIPMAP_NEAREST: core.int,
-      LINES: core.int,
-      LINE_LOOP: core.int,
-      LINE_STRIP: core.int,
-      LINE_WIDTH: core.int,
-      LINK_STATUS: core.int,
-      LOW_FLOAT: core.int,
-      LOW_INT: core.int,
-      LUMINANCE: core.int,
-      LUMINANCE_ALPHA: core.int,
-      MAX_COMBINED_TEXTURE_IMAGE_UNITS: core.int,
-      MAX_CUBE_MAP_TEXTURE_SIZE: core.int,
-      MAX_FRAGMENT_UNIFORM_VECTORS: core.int,
-      MAX_RENDERBUFFER_SIZE: core.int,
-      MAX_TEXTURE_IMAGE_UNITS: core.int,
-      MAX_TEXTURE_SIZE: core.int,
-      MAX_VARYING_VECTORS: core.int,
-      MAX_VERTEX_ATTRIBS: core.int,
-      MAX_VERTEX_TEXTURE_IMAGE_UNITS: core.int,
-      MAX_VERTEX_UNIFORM_VECTORS: core.int,
-      MAX_VIEWPORT_DIMS: core.int,
-      MEDIUM_FLOAT: core.int,
-      MEDIUM_INT: core.int,
-      MIRRORED_REPEAT: core.int,
-      NEAREST: core.int,
-      NEAREST_MIPMAP_LINEAR: core.int,
-      NEAREST_MIPMAP_NEAREST: core.int,
-      NEVER: core.int,
-      NICEST: core.int,
-      NONE: core.int,
-      NOTEQUAL: core.int,
-      NO_ERROR: core.int,
-      ONE: core.int,
-      ONE_MINUS_CONSTANT_ALPHA: core.int,
-      ONE_MINUS_CONSTANT_COLOR: core.int,
-      ONE_MINUS_DST_ALPHA: core.int,
-      ONE_MINUS_DST_COLOR: core.int,
-      ONE_MINUS_SRC_ALPHA: core.int,
-      ONE_MINUS_SRC_COLOR: core.int,
-      OUT_OF_MEMORY: core.int,
-      PACK_ALIGNMENT: core.int,
-      POINTS: core.int,
-      POLYGON_OFFSET_FACTOR: core.int,
-      POLYGON_OFFSET_FILL: core.int,
-      POLYGON_OFFSET_UNITS: core.int,
-      RED_BITS: core.int,
-      RENDERBUFFER: core.int,
-      RENDERBUFFER_ALPHA_SIZE: core.int,
-      RENDERBUFFER_BINDING: core.int,
-      RENDERBUFFER_BLUE_SIZE: core.int,
-      RENDERBUFFER_DEPTH_SIZE: core.int,
-      RENDERBUFFER_GREEN_SIZE: core.int,
-      RENDERBUFFER_HEIGHT: core.int,
-      RENDERBUFFER_INTERNAL_FORMAT: core.int,
-      RENDERBUFFER_RED_SIZE: core.int,
-      RENDERBUFFER_STENCIL_SIZE: core.int,
-      RENDERBUFFER_WIDTH: core.int,
-      RENDERER: core.int,
-      REPEAT: core.int,
-      REPLACE: core.int,
-      RGB: core.int,
-      RGB565: core.int,
-      RGB5_A1: core.int,
-      RGBA: core.int,
-      RGBA4: core.int,
-      SAMPLER_2D: core.int,
-      SAMPLER_CUBE: core.int,
-      SAMPLES: core.int,
-      SAMPLE_ALPHA_TO_COVERAGE: core.int,
-      SAMPLE_BUFFERS: core.int,
-      SAMPLE_COVERAGE: core.int,
-      SAMPLE_COVERAGE_INVERT: core.int,
-      SAMPLE_COVERAGE_VALUE: core.int,
-      SCISSOR_BOX: core.int,
-      SCISSOR_TEST: core.int,
-      SHADER_TYPE: core.int,
-      SHADING_LANGUAGE_VERSION: core.int,
-      SHORT: core.int,
-      SRC_ALPHA: core.int,
-      SRC_ALPHA_SATURATE: core.int,
-      SRC_COLOR: core.int,
-      STATIC_DRAW: core.int,
-      STENCIL_ATTACHMENT: core.int,
-      STENCIL_BACK_FAIL: core.int,
-      STENCIL_BACK_FUNC: core.int,
-      STENCIL_BACK_PASS_DEPTH_FAIL: core.int,
-      STENCIL_BACK_PASS_DEPTH_PASS: core.int,
-      STENCIL_BACK_REF: core.int,
-      STENCIL_BACK_VALUE_MASK: core.int,
-      STENCIL_BACK_WRITEMASK: core.int,
-      STENCIL_BITS: core.int,
-      STENCIL_BUFFER_BIT: core.int,
-      STENCIL_CLEAR_VALUE: core.int,
-      STENCIL_FAIL: core.int,
-      STENCIL_FUNC: core.int,
-      STENCIL_INDEX: core.int,
-      STENCIL_INDEX8: core.int,
-      STENCIL_PASS_DEPTH_FAIL: core.int,
-      STENCIL_PASS_DEPTH_PASS: core.int,
-      STENCIL_REF: core.int,
-      STENCIL_TEST: core.int,
-      STENCIL_VALUE_MASK: core.int,
-      STENCIL_WRITEMASK: core.int,
-      STREAM_DRAW: core.int,
-      SUBPIXEL_BITS: core.int,
-      TEXTURE: core.int,
-      TEXTURE0: core.int,
-      TEXTURE1: core.int,
-      TEXTURE10: core.int,
-      TEXTURE11: core.int,
-      TEXTURE12: core.int,
-      TEXTURE13: core.int,
-      TEXTURE14: core.int,
-      TEXTURE15: core.int,
-      TEXTURE16: core.int,
-      TEXTURE17: core.int,
-      TEXTURE18: core.int,
-      TEXTURE19: core.int,
-      TEXTURE2: core.int,
-      TEXTURE20: core.int,
-      TEXTURE21: core.int,
-      TEXTURE22: core.int,
-      TEXTURE23: core.int,
-      TEXTURE24: core.int,
-      TEXTURE25: core.int,
-      TEXTURE26: core.int,
-      TEXTURE27: core.int,
-      TEXTURE28: core.int,
-      TEXTURE29: core.int,
-      TEXTURE3: core.int,
-      TEXTURE30: core.int,
-      TEXTURE31: core.int,
-      TEXTURE4: core.int,
-      TEXTURE5: core.int,
-      TEXTURE6: core.int,
-      TEXTURE7: core.int,
-      TEXTURE8: core.int,
-      TEXTURE9: core.int,
-      TEXTURE_2D: core.int,
-      TEXTURE_BINDING_2D: core.int,
-      TEXTURE_BINDING_CUBE_MAP: core.int,
-      TEXTURE_CUBE_MAP: core.int,
-      TEXTURE_CUBE_MAP_NEGATIVE_X: core.int,
-      TEXTURE_CUBE_MAP_NEGATIVE_Y: core.int,
-      TEXTURE_CUBE_MAP_NEGATIVE_Z: core.int,
-      TEXTURE_CUBE_MAP_POSITIVE_X: core.int,
-      TEXTURE_CUBE_MAP_POSITIVE_Y: core.int,
-      TEXTURE_CUBE_MAP_POSITIVE_Z: core.int,
-      TEXTURE_MAG_FILTER: core.int,
-      TEXTURE_MIN_FILTER: core.int,
-      TEXTURE_WRAP_S: core.int,
-      TEXTURE_WRAP_T: core.int,
-      TRIANGLES: core.int,
-      TRIANGLE_FAN: core.int,
-      TRIANGLE_STRIP: core.int,
-      UNPACK_ALIGNMENT: core.int,
-      UNPACK_COLORSPACE_CONVERSION_WEBGL: core.int,
-      UNPACK_FLIP_Y_WEBGL: core.int,
-      UNPACK_PREMULTIPLY_ALPHA_WEBGL: core.int,
-      UNSIGNED_BYTE: core.int,
-      UNSIGNED_INT: core.int,
-      UNSIGNED_SHORT: core.int,
-      UNSIGNED_SHORT_4_4_4_4: core.int,
-      UNSIGNED_SHORT_5_5_5_1: core.int,
-      UNSIGNED_SHORT_5_6_5: core.int,
-      VALIDATE_STATUS: core.int,
-      VENDOR: core.int,
-      VERSION: core.int,
-      VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: core.int,
-      VERTEX_ATTRIB_ARRAY_ENABLED: core.int,
-      VERTEX_ATTRIB_ARRAY_NORMALIZED: core.int,
-      VERTEX_ATTRIB_ARRAY_POINTER: core.int,
-      VERTEX_ATTRIB_ARRAY_SIZE: core.int,
-      VERTEX_ATTRIB_ARRAY_STRIDE: core.int,
-      VERTEX_ATTRIB_ARRAY_TYPE: core.int,
-      VERTEX_SHADER: core.int,
-      VIEWPORT: core.int,
-      ZERO: core.int
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  web_gl.RenderingContext.ACTIVE_ATTRIBUTES = 35721;
-  web_gl.RenderingContext.ACTIVE_TEXTURE = 34016;
-  web_gl.RenderingContext.ACTIVE_UNIFORMS = 35718;
-  web_gl.RenderingContext.ALIASED_LINE_WIDTH_RANGE = 33902;
-  web_gl.RenderingContext.ALIASED_POINT_SIZE_RANGE = 33901;
-  web_gl.RenderingContext.ALPHA = 6406;
-  web_gl.RenderingContext.ALPHA_BITS = 3413;
-  web_gl.RenderingContext.ALWAYS = 519;
-  web_gl.RenderingContext.ARRAY_BUFFER = 34962;
-  web_gl.RenderingContext.ARRAY_BUFFER_BINDING = 34964;
-  web_gl.RenderingContext.ATTACHED_SHADERS = 35717;
-  web_gl.RenderingContext.BACK = 1029;
-  web_gl.RenderingContext.BLEND = 3042;
-  web_gl.RenderingContext.BLEND_COLOR = 32773;
-  web_gl.RenderingContext.BLEND_DST_ALPHA = 32970;
-  web_gl.RenderingContext.BLEND_DST_RGB = 32968;
-  web_gl.RenderingContext.BLEND_EQUATION = 32777;
-  web_gl.RenderingContext.BLEND_EQUATION_ALPHA = 34877;
-  web_gl.RenderingContext.BLEND_EQUATION_RGB = 32777;
-  web_gl.RenderingContext.BLEND_SRC_ALPHA = 32971;
-  web_gl.RenderingContext.BLEND_SRC_RGB = 32969;
-  web_gl.RenderingContext.BLUE_BITS = 3412;
-  web_gl.RenderingContext.BOOL = 35670;
-  web_gl.RenderingContext.BOOL_VEC2 = 35671;
-  web_gl.RenderingContext.BOOL_VEC3 = 35672;
-  web_gl.RenderingContext.BOOL_VEC4 = 35673;
-  web_gl.RenderingContext.BROWSER_DEFAULT_WEBGL = 37444;
-  web_gl.RenderingContext.BUFFER_SIZE = 34660;
-  web_gl.RenderingContext.BUFFER_USAGE = 34661;
-  web_gl.RenderingContext.BYTE = 5120;
-  web_gl.RenderingContext.CCW = 2305;
-  web_gl.RenderingContext.CLAMP_TO_EDGE = 33071;
-  web_gl.RenderingContext.COLOR_ATTACHMENT0 = 36064;
-  web_gl.RenderingContext.COLOR_BUFFER_BIT = 16384;
-  web_gl.RenderingContext.COLOR_CLEAR_VALUE = 3106;
-  web_gl.RenderingContext.COLOR_WRITEMASK = 3107;
-  web_gl.RenderingContext.COMPILE_STATUS = 35713;
-  web_gl.RenderingContext.COMPRESSED_TEXTURE_FORMATS = 34467;
-  web_gl.RenderingContext.CONSTANT_ALPHA = 32771;
-  web_gl.RenderingContext.CONSTANT_COLOR = 32769;
-  web_gl.RenderingContext.CONTEXT_LOST_WEBGL = 37442;
-  web_gl.RenderingContext.CULL_FACE = 2884;
-  web_gl.RenderingContext.CULL_FACE_MODE = 2885;
-  web_gl.RenderingContext.CURRENT_PROGRAM = 35725;
-  web_gl.RenderingContext.CURRENT_VERTEX_ATTRIB = 34342;
-  web_gl.RenderingContext.CW = 2304;
-  web_gl.RenderingContext.DECR = 7683;
-  web_gl.RenderingContext.DECR_WRAP = 34056;
-  web_gl.RenderingContext.DELETE_STATUS = 35712;
-  web_gl.RenderingContext.DEPTH_ATTACHMENT = 36096;
-  web_gl.RenderingContext.DEPTH_BITS = 3414;
-  web_gl.RenderingContext.DEPTH_BUFFER_BIT = 256;
-  web_gl.RenderingContext.DEPTH_CLEAR_VALUE = 2931;
-  web_gl.RenderingContext.DEPTH_COMPONENT = 6402;
-  web_gl.RenderingContext.DEPTH_COMPONENT16 = 33189;
-  web_gl.RenderingContext.DEPTH_FUNC = 2932;
-  web_gl.RenderingContext.DEPTH_RANGE = 2928;
-  web_gl.RenderingContext.DEPTH_STENCIL = 34041;
-  web_gl.RenderingContext.DEPTH_STENCIL_ATTACHMENT = 33306;
-  web_gl.RenderingContext.DEPTH_TEST = 2929;
-  web_gl.RenderingContext.DEPTH_WRITEMASK = 2930;
-  web_gl.RenderingContext.DITHER = 3024;
-  web_gl.RenderingContext.DONT_CARE = 4352;
-  web_gl.RenderingContext.DST_ALPHA = 772;
-  web_gl.RenderingContext.DST_COLOR = 774;
-  web_gl.RenderingContext.DYNAMIC_DRAW = 35048;
-  web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER = 34963;
-  web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING = 34965;
-  web_gl.RenderingContext.EQUAL = 514;
-  web_gl.RenderingContext.FASTEST = 4353;
-  web_gl.RenderingContext.FLOAT = 5126;
-  web_gl.RenderingContext.FLOAT_MAT2 = 35674;
-  web_gl.RenderingContext.FLOAT_MAT3 = 35675;
-  web_gl.RenderingContext.FLOAT_MAT4 = 35676;
-  web_gl.RenderingContext.FLOAT_VEC2 = 35664;
-  web_gl.RenderingContext.FLOAT_VEC3 = 35665;
-  web_gl.RenderingContext.FLOAT_VEC4 = 35666;
-  web_gl.RenderingContext.FRAGMENT_SHADER = 35632;
-  web_gl.RenderingContext.FRAMEBUFFER = 36160;
-  web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
-  web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
-  web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
-  web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
-  web_gl.RenderingContext.FRAMEBUFFER_BINDING = 36006;
-  web_gl.RenderingContext.FRAMEBUFFER_COMPLETE = 36053;
-  web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
-  web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
-  web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
-  web_gl.RenderingContext.FRAMEBUFFER_UNSUPPORTED = 36061;
-  web_gl.RenderingContext.FRONT = 1028;
-  web_gl.RenderingContext.FRONT_AND_BACK = 1032;
-  web_gl.RenderingContext.FRONT_FACE = 2886;
-  web_gl.RenderingContext.FUNC_ADD = 32774;
-  web_gl.RenderingContext.FUNC_REVERSE_SUBTRACT = 32779;
-  web_gl.RenderingContext.FUNC_SUBTRACT = 32778;
-  web_gl.RenderingContext.GENERATE_MIPMAP_HINT = 33170;
-  web_gl.RenderingContext.GEQUAL = 518;
-  web_gl.RenderingContext.GREATER = 516;
-  web_gl.RenderingContext.GREEN_BITS = 3411;
-  web_gl.RenderingContext.HIGH_FLOAT = 36338;
-  web_gl.RenderingContext.HIGH_INT = 36341;
-  web_gl.RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT = 35739;
-  web_gl.RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE = 35738;
-  web_gl.RenderingContext.INCR = 7682;
-  web_gl.RenderingContext.INCR_WRAP = 34055;
-  web_gl.RenderingContext.INT = 5124;
-  web_gl.RenderingContext.INT_VEC2 = 35667;
-  web_gl.RenderingContext.INT_VEC3 = 35668;
-  web_gl.RenderingContext.INT_VEC4 = 35669;
-  web_gl.RenderingContext.INVALID_ENUM = 1280;
-  web_gl.RenderingContext.INVALID_FRAMEBUFFER_OPERATION = 1286;
-  web_gl.RenderingContext.INVALID_OPERATION = 1282;
-  web_gl.RenderingContext.INVALID_VALUE = 1281;
-  web_gl.RenderingContext.INVERT = 5386;
-  web_gl.RenderingContext.KEEP = 7680;
-  web_gl.RenderingContext.LEQUAL = 515;
-  web_gl.RenderingContext.LESS = 513;
-  web_gl.RenderingContext.LINEAR = 9729;
-  web_gl.RenderingContext.LINEAR_MIPMAP_LINEAR = 9987;
-  web_gl.RenderingContext.LINEAR_MIPMAP_NEAREST = 9985;
-  web_gl.RenderingContext.LINES = 1;
-  web_gl.RenderingContext.LINE_LOOP = 2;
-  web_gl.RenderingContext.LINE_STRIP = 3;
-  web_gl.RenderingContext.LINE_WIDTH = 2849;
-  web_gl.RenderingContext.LINK_STATUS = 35714;
-  web_gl.RenderingContext.LOW_FLOAT = 36336;
-  web_gl.RenderingContext.LOW_INT = 36339;
-  web_gl.RenderingContext.LUMINANCE = 6409;
-  web_gl.RenderingContext.LUMINANCE_ALPHA = 6410;
-  web_gl.RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
-  web_gl.RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
-  web_gl.RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
-  web_gl.RenderingContext.MAX_RENDERBUFFER_SIZE = 34024;
-  web_gl.RenderingContext.MAX_TEXTURE_IMAGE_UNITS = 34930;
-  web_gl.RenderingContext.MAX_TEXTURE_SIZE = 3379;
-  web_gl.RenderingContext.MAX_VARYING_VECTORS = 36348;
-  web_gl.RenderingContext.MAX_VERTEX_ATTRIBS = 34921;
-  web_gl.RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
-  web_gl.RenderingContext.MAX_VERTEX_UNIFORM_VECTORS = 36347;
-  web_gl.RenderingContext.MAX_VIEWPORT_DIMS = 3386;
-  web_gl.RenderingContext.MEDIUM_FLOAT = 36337;
-  web_gl.RenderingContext.MEDIUM_INT = 36340;
-  web_gl.RenderingContext.MIRRORED_REPEAT = 33648;
-  web_gl.RenderingContext.NEAREST = 9728;
-  web_gl.RenderingContext.NEAREST_MIPMAP_LINEAR = 9986;
-  web_gl.RenderingContext.NEAREST_MIPMAP_NEAREST = 9984;
-  web_gl.RenderingContext.NEVER = 512;
-  web_gl.RenderingContext.NICEST = 4354;
-  web_gl.RenderingContext.NONE = 0;
-  web_gl.RenderingContext.NOTEQUAL = 517;
-  web_gl.RenderingContext.NO_ERROR = 0;
-  web_gl.RenderingContext.ONE = 1;
-  web_gl.RenderingContext.ONE_MINUS_CONSTANT_ALPHA = 32772;
-  web_gl.RenderingContext.ONE_MINUS_CONSTANT_COLOR = 32770;
-  web_gl.RenderingContext.ONE_MINUS_DST_ALPHA = 773;
-  web_gl.RenderingContext.ONE_MINUS_DST_COLOR = 775;
-  web_gl.RenderingContext.ONE_MINUS_SRC_ALPHA = 771;
-  web_gl.RenderingContext.ONE_MINUS_SRC_COLOR = 769;
-  web_gl.RenderingContext.OUT_OF_MEMORY = 1285;
-  web_gl.RenderingContext.PACK_ALIGNMENT = 3333;
-  web_gl.RenderingContext.POINTS = 0;
-  web_gl.RenderingContext.POLYGON_OFFSET_FACTOR = 32824;
-  web_gl.RenderingContext.POLYGON_OFFSET_FILL = 32823;
-  web_gl.RenderingContext.POLYGON_OFFSET_UNITS = 10752;
-  web_gl.RenderingContext.RED_BITS = 3410;
-  web_gl.RenderingContext.RENDERBUFFER = 36161;
-  web_gl.RenderingContext.RENDERBUFFER_ALPHA_SIZE = 36179;
-  web_gl.RenderingContext.RENDERBUFFER_BINDING = 36007;
-  web_gl.RenderingContext.RENDERBUFFER_BLUE_SIZE = 36178;
-  web_gl.RenderingContext.RENDERBUFFER_DEPTH_SIZE = 36180;
-  web_gl.RenderingContext.RENDERBUFFER_GREEN_SIZE = 36177;
-  web_gl.RenderingContext.RENDERBUFFER_HEIGHT = 36163;
-  web_gl.RenderingContext.RENDERBUFFER_INTERNAL_FORMAT = 36164;
-  web_gl.RenderingContext.RENDERBUFFER_RED_SIZE = 36176;
-  web_gl.RenderingContext.RENDERBUFFER_STENCIL_SIZE = 36181;
-  web_gl.RenderingContext.RENDERBUFFER_WIDTH = 36162;
-  web_gl.RenderingContext.RENDERER = 7937;
-  web_gl.RenderingContext.REPEAT = 10497;
-  web_gl.RenderingContext.REPLACE = 7681;
-  web_gl.RenderingContext.RGB = 6407;
-  web_gl.RenderingContext.RGB565 = 36194;
-  web_gl.RenderingContext.RGB5_A1 = 32855;
-  web_gl.RenderingContext.RGBA = 6408;
-  web_gl.RenderingContext.RGBA4 = 32854;
-  web_gl.RenderingContext.SAMPLER_2D = 35678;
-  web_gl.RenderingContext.SAMPLER_CUBE = 35680;
-  web_gl.RenderingContext.SAMPLES = 32937;
-  web_gl.RenderingContext.SAMPLE_ALPHA_TO_COVERAGE = 32926;
-  web_gl.RenderingContext.SAMPLE_BUFFERS = 32936;
-  web_gl.RenderingContext.SAMPLE_COVERAGE = 32928;
-  web_gl.RenderingContext.SAMPLE_COVERAGE_INVERT = 32939;
-  web_gl.RenderingContext.SAMPLE_COVERAGE_VALUE = 32938;
-  web_gl.RenderingContext.SCISSOR_BOX = 3088;
-  web_gl.RenderingContext.SCISSOR_TEST = 3089;
-  web_gl.RenderingContext.SHADER_TYPE = 35663;
-  web_gl.RenderingContext.SHADING_LANGUAGE_VERSION = 35724;
-  web_gl.RenderingContext.SHORT = 5122;
-  web_gl.RenderingContext.SRC_ALPHA = 770;
-  web_gl.RenderingContext.SRC_ALPHA_SATURATE = 776;
-  web_gl.RenderingContext.SRC_COLOR = 768;
-  web_gl.RenderingContext.STATIC_DRAW = 35044;
-  web_gl.RenderingContext.STENCIL_ATTACHMENT = 36128;
-  web_gl.RenderingContext.STENCIL_BACK_FAIL = 34817;
-  web_gl.RenderingContext.STENCIL_BACK_FUNC = 34816;
-  web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
-  web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS = 34819;
-  web_gl.RenderingContext.STENCIL_BACK_REF = 36003;
-  web_gl.RenderingContext.STENCIL_BACK_VALUE_MASK = 36004;
-  web_gl.RenderingContext.STENCIL_BACK_WRITEMASK = 36005;
-  web_gl.RenderingContext.STENCIL_BITS = 3415;
-  web_gl.RenderingContext.STENCIL_BUFFER_BIT = 1024;
-  web_gl.RenderingContext.STENCIL_CLEAR_VALUE = 2961;
-  web_gl.RenderingContext.STENCIL_FAIL = 2964;
-  web_gl.RenderingContext.STENCIL_FUNC = 2962;
-  web_gl.RenderingContext.STENCIL_INDEX = 6401;
-  web_gl.RenderingContext.STENCIL_INDEX8 = 36168;
-  web_gl.RenderingContext.STENCIL_PASS_DEPTH_FAIL = 2965;
-  web_gl.RenderingContext.STENCIL_PASS_DEPTH_PASS = 2966;
-  web_gl.RenderingContext.STENCIL_REF = 2967;
-  web_gl.RenderingContext.STENCIL_TEST = 2960;
-  web_gl.RenderingContext.STENCIL_VALUE_MASK = 2963;
-  web_gl.RenderingContext.STENCIL_WRITEMASK = 2968;
-  web_gl.RenderingContext.STREAM_DRAW = 35040;
-  web_gl.RenderingContext.SUBPIXEL_BITS = 3408;
-  web_gl.RenderingContext.TEXTURE = 5890;
-  web_gl.RenderingContext.TEXTURE0 = 33984;
-  web_gl.RenderingContext.TEXTURE1 = 33985;
-  web_gl.RenderingContext.TEXTURE10 = 33994;
-  web_gl.RenderingContext.TEXTURE11 = 33995;
-  web_gl.RenderingContext.TEXTURE12 = 33996;
-  web_gl.RenderingContext.TEXTURE13 = 33997;
-  web_gl.RenderingContext.TEXTURE14 = 33998;
-  web_gl.RenderingContext.TEXTURE15 = 33999;
-  web_gl.RenderingContext.TEXTURE16 = 34000;
-  web_gl.RenderingContext.TEXTURE17 = 34001;
-  web_gl.RenderingContext.TEXTURE18 = 34002;
-  web_gl.RenderingContext.TEXTURE19 = 34003;
-  web_gl.RenderingContext.TEXTURE2 = 33986;
-  web_gl.RenderingContext.TEXTURE20 = 34004;
-  web_gl.RenderingContext.TEXTURE21 = 34005;
-  web_gl.RenderingContext.TEXTURE22 = 34006;
-  web_gl.RenderingContext.TEXTURE23 = 34007;
-  web_gl.RenderingContext.TEXTURE24 = 34008;
-  web_gl.RenderingContext.TEXTURE25 = 34009;
-  web_gl.RenderingContext.TEXTURE26 = 34010;
-  web_gl.RenderingContext.TEXTURE27 = 34011;
-  web_gl.RenderingContext.TEXTURE28 = 34012;
-  web_gl.RenderingContext.TEXTURE29 = 34013;
-  web_gl.RenderingContext.TEXTURE3 = 33987;
-  web_gl.RenderingContext.TEXTURE30 = 34014;
-  web_gl.RenderingContext.TEXTURE31 = 34015;
-  web_gl.RenderingContext.TEXTURE4 = 33988;
-  web_gl.RenderingContext.TEXTURE5 = 33989;
-  web_gl.RenderingContext.TEXTURE6 = 33990;
-  web_gl.RenderingContext.TEXTURE7 = 33991;
-  web_gl.RenderingContext.TEXTURE8 = 33992;
-  web_gl.RenderingContext.TEXTURE9 = 33993;
-  web_gl.RenderingContext.TEXTURE_2D = 3553;
-  web_gl.RenderingContext.TEXTURE_BINDING_2D = 32873;
-  web_gl.RenderingContext.TEXTURE_BINDING_CUBE_MAP = 34068;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP = 34067;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
-  web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
-  web_gl.RenderingContext.TEXTURE_MAG_FILTER = 10240;
-  web_gl.RenderingContext.TEXTURE_MIN_FILTER = 10241;
-  web_gl.RenderingContext.TEXTURE_WRAP_S = 10242;
-  web_gl.RenderingContext.TEXTURE_WRAP_T = 10243;
-  web_gl.RenderingContext.TRIANGLES = 4;
-  web_gl.RenderingContext.TRIANGLE_FAN = 6;
-  web_gl.RenderingContext.TRIANGLE_STRIP = 5;
-  web_gl.RenderingContext.UNPACK_ALIGNMENT = 3317;
-  web_gl.RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;
-  web_gl.RenderingContext.UNPACK_FLIP_Y_WEBGL = 37440;
-  web_gl.RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;
-  web_gl.RenderingContext.UNSIGNED_BYTE = 5121;
-  web_gl.RenderingContext.UNSIGNED_INT = 5125;
-  web_gl.RenderingContext.UNSIGNED_SHORT = 5123;
-  web_gl.RenderingContext.UNSIGNED_SHORT_4_4_4_4 = 32819;
-  web_gl.RenderingContext.UNSIGNED_SHORT_5_5_5_1 = 32820;
-  web_gl.RenderingContext.UNSIGNED_SHORT_5_6_5 = 33635;
-  web_gl.RenderingContext.VALIDATE_STATUS = 35715;
-  web_gl.RenderingContext.VENDOR = 7936;
-  web_gl.RenderingContext.VERSION = 7938;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER = 34373;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE = 34339;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
-  web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE = 34341;
-  web_gl.RenderingContext.VERTEX_SHADER = 35633;
-  web_gl.RenderingContext.VIEWPORT = 2978;
-  web_gl.RenderingContext.ZERO = 0;
-  dart.registerExtension(dart.global.WebGLRenderingContext, web_gl.RenderingContext);
-  web_gl.ACTIVE_ATTRIBUTES = web_gl.RenderingContext.ACTIVE_ATTRIBUTES;
-  web_gl.ACTIVE_TEXTURE = web_gl.RenderingContext.ACTIVE_TEXTURE;
-  web_gl.ACTIVE_UNIFORMS = web_gl.RenderingContext.ACTIVE_UNIFORMS;
-  web_gl.ALIASED_LINE_WIDTH_RANGE = web_gl.RenderingContext.ALIASED_LINE_WIDTH_RANGE;
-  web_gl.ALIASED_POINT_SIZE_RANGE = web_gl.RenderingContext.ALIASED_POINT_SIZE_RANGE;
-  web_gl.ALPHA = web_gl.RenderingContext.ALPHA;
-  web_gl.ALPHA_BITS = web_gl.RenderingContext.ALPHA_BITS;
-  web_gl.ALWAYS = web_gl.RenderingContext.ALWAYS;
-  web_gl.ARRAY_BUFFER = web_gl.RenderingContext.ARRAY_BUFFER;
-  web_gl.ARRAY_BUFFER_BINDING = web_gl.RenderingContext.ARRAY_BUFFER_BINDING;
-  web_gl.ATTACHED_SHADERS = web_gl.RenderingContext.ATTACHED_SHADERS;
-  web_gl.BACK = web_gl.RenderingContext.BACK;
-  web_gl.BLEND = web_gl.RenderingContext.BLEND;
-  web_gl.BLEND_COLOR = web_gl.RenderingContext.BLEND_COLOR;
-  web_gl.BLEND_DST_ALPHA = web_gl.RenderingContext.BLEND_DST_ALPHA;
-  web_gl.BLEND_DST_RGB = web_gl.RenderingContext.BLEND_DST_RGB;
-  web_gl.BLEND_EQUATION = web_gl.RenderingContext.BLEND_EQUATION;
-  web_gl.BLEND_EQUATION_ALPHA = web_gl.RenderingContext.BLEND_EQUATION_ALPHA;
-  web_gl.BLEND_EQUATION_RGB = web_gl.RenderingContext.BLEND_EQUATION_RGB;
-  web_gl.BLEND_SRC_ALPHA = web_gl.RenderingContext.BLEND_SRC_ALPHA;
-  web_gl.BLEND_SRC_RGB = web_gl.RenderingContext.BLEND_SRC_RGB;
-  web_gl.BLUE_BITS = web_gl.RenderingContext.BLUE_BITS;
-  web_gl.BOOL = web_gl.RenderingContext.BOOL;
-  web_gl.BOOL_VEC2 = web_gl.RenderingContext.BOOL_VEC2;
-  web_gl.BOOL_VEC3 = web_gl.RenderingContext.BOOL_VEC3;
-  web_gl.BOOL_VEC4 = web_gl.RenderingContext.BOOL_VEC4;
-  web_gl.BROWSER_DEFAULT_WEBGL = web_gl.RenderingContext.BROWSER_DEFAULT_WEBGL;
-  web_gl.BUFFER_SIZE = web_gl.RenderingContext.BUFFER_SIZE;
-  web_gl.BUFFER_USAGE = web_gl.RenderingContext.BUFFER_USAGE;
-  web_gl.BYTE = web_gl.RenderingContext.BYTE;
-  web_gl.CCW = web_gl.RenderingContext.CCW;
-  web_gl.CLAMP_TO_EDGE = web_gl.RenderingContext.CLAMP_TO_EDGE;
-  web_gl.COLOR_ATTACHMENT0 = web_gl.RenderingContext.COLOR_ATTACHMENT0;
-  web_gl.COLOR_BUFFER_BIT = web_gl.RenderingContext.COLOR_BUFFER_BIT;
-  web_gl.COLOR_CLEAR_VALUE = web_gl.RenderingContext.COLOR_CLEAR_VALUE;
-  web_gl.COLOR_WRITEMASK = web_gl.RenderingContext.COLOR_WRITEMASK;
-  web_gl.COMPILE_STATUS = web_gl.RenderingContext.COMPILE_STATUS;
-  web_gl.COMPRESSED_TEXTURE_FORMATS = web_gl.RenderingContext.COMPRESSED_TEXTURE_FORMATS;
-  web_gl.CONSTANT_ALPHA = web_gl.RenderingContext.CONSTANT_ALPHA;
-  web_gl.CONSTANT_COLOR = web_gl.RenderingContext.CONSTANT_COLOR;
-  web_gl.CONTEXT_LOST_WEBGL = web_gl.RenderingContext.CONTEXT_LOST_WEBGL;
-  web_gl.CULL_FACE = web_gl.RenderingContext.CULL_FACE;
-  web_gl.CULL_FACE_MODE = web_gl.RenderingContext.CULL_FACE_MODE;
-  web_gl.CURRENT_PROGRAM = web_gl.RenderingContext.CURRENT_PROGRAM;
-  web_gl.CURRENT_VERTEX_ATTRIB = web_gl.RenderingContext.CURRENT_VERTEX_ATTRIB;
-  web_gl.CW = web_gl.RenderingContext.CW;
-  web_gl.DECR = web_gl.RenderingContext.DECR;
-  web_gl.DECR_WRAP = web_gl.RenderingContext.DECR_WRAP;
-  web_gl.DELETE_STATUS = web_gl.RenderingContext.DELETE_STATUS;
-  web_gl.DEPTH_ATTACHMENT = web_gl.RenderingContext.DEPTH_ATTACHMENT;
-  web_gl.DEPTH_BITS = web_gl.RenderingContext.DEPTH_BITS;
-  web_gl.DEPTH_BUFFER_BIT = web_gl.RenderingContext.DEPTH_BUFFER_BIT;
-  web_gl.DEPTH_CLEAR_VALUE = web_gl.RenderingContext.DEPTH_CLEAR_VALUE;
-  web_gl.DEPTH_COMPONENT = web_gl.RenderingContext.DEPTH_COMPONENT;
-  web_gl.DEPTH_COMPONENT16 = web_gl.RenderingContext.DEPTH_COMPONENT16;
-  web_gl.DEPTH_FUNC = web_gl.RenderingContext.DEPTH_FUNC;
-  web_gl.DEPTH_RANGE = web_gl.RenderingContext.DEPTH_RANGE;
-  web_gl.DEPTH_STENCIL = web_gl.RenderingContext.DEPTH_STENCIL;
-  web_gl.DEPTH_STENCIL_ATTACHMENT = web_gl.RenderingContext.DEPTH_STENCIL_ATTACHMENT;
-  web_gl.DEPTH_TEST = web_gl.RenderingContext.DEPTH_TEST;
-  web_gl.DEPTH_WRITEMASK = web_gl.RenderingContext.DEPTH_WRITEMASK;
-  web_gl.DITHER = web_gl.RenderingContext.DITHER;
-  web_gl.DONT_CARE = web_gl.RenderingContext.DONT_CARE;
-  web_gl.DST_ALPHA = web_gl.RenderingContext.DST_ALPHA;
-  web_gl.DST_COLOR = web_gl.RenderingContext.DST_COLOR;
-  web_gl.DYNAMIC_DRAW = web_gl.RenderingContext.DYNAMIC_DRAW;
-  web_gl.ELEMENT_ARRAY_BUFFER = web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER;
-  web_gl.ELEMENT_ARRAY_BUFFER_BINDING = web_gl.RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING;
-  web_gl.EQUAL = web_gl.RenderingContext.EQUAL;
-  web_gl.FASTEST = web_gl.RenderingContext.FASTEST;
-  web_gl.FLOAT = web_gl.RenderingContext.FLOAT;
-  web_gl.FLOAT_MAT2 = web_gl.RenderingContext.FLOAT_MAT2;
-  web_gl.FLOAT_MAT3 = web_gl.RenderingContext.FLOAT_MAT3;
-  web_gl.FLOAT_MAT4 = web_gl.RenderingContext.FLOAT_MAT4;
-  web_gl.FLOAT_VEC2 = web_gl.RenderingContext.FLOAT_VEC2;
-  web_gl.FLOAT_VEC3 = web_gl.RenderingContext.FLOAT_VEC3;
-  web_gl.FLOAT_VEC4 = web_gl.RenderingContext.FLOAT_VEC4;
-  web_gl.FRAGMENT_SHADER = web_gl.RenderingContext.FRAGMENT_SHADER;
-  web_gl.FRAMEBUFFER = web_gl.RenderingContext.FRAMEBUFFER;
-  web_gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME;
-  web_gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE;
-  web_gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE;
-  web_gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = web_gl.RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL;
-  web_gl.FRAMEBUFFER_BINDING = web_gl.RenderingContext.FRAMEBUFFER_BINDING;
-  web_gl.FRAMEBUFFER_COMPLETE = web_gl.RenderingContext.FRAMEBUFFER_COMPLETE;
-  web_gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;
-  web_gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;
-  web_gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = web_gl.RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;
-  web_gl.FRAMEBUFFER_UNSUPPORTED = web_gl.RenderingContext.FRAMEBUFFER_UNSUPPORTED;
-  web_gl.FRONT = web_gl.RenderingContext.FRONT;
-  web_gl.FRONT_AND_BACK = web_gl.RenderingContext.FRONT_AND_BACK;
-  web_gl.FRONT_FACE = web_gl.RenderingContext.FRONT_FACE;
-  web_gl.FUNC_ADD = web_gl.RenderingContext.FUNC_ADD;
-  web_gl.FUNC_REVERSE_SUBTRACT = web_gl.RenderingContext.FUNC_REVERSE_SUBTRACT;
-  web_gl.FUNC_SUBTRACT = web_gl.RenderingContext.FUNC_SUBTRACT;
-  web_gl.GENERATE_MIPMAP_HINT = web_gl.RenderingContext.GENERATE_MIPMAP_HINT;
-  web_gl.GEQUAL = web_gl.RenderingContext.GEQUAL;
-  web_gl.GREATER = web_gl.RenderingContext.GREATER;
-  web_gl.GREEN_BITS = web_gl.RenderingContext.GREEN_BITS;
-  web_gl.OesTextureHalfFloat = class OesTextureHalfFloat extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.OesTextureHalfFloat, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureHalfFloat, [])}),
-    sfields: () => ({HALF_FLOAT_OES: core.int})
-  });
-  web_gl.OesTextureHalfFloat.HALF_FLOAT_OES = 36193;
-  dart.registerExtension(dart.global.OESTextureHalfFloat, web_gl.OesTextureHalfFloat);
-  web_gl.HALF_FLOAT_OES = web_gl.OesTextureHalfFloat.HALF_FLOAT_OES;
-  web_gl.HIGH_FLOAT = web_gl.RenderingContext.HIGH_FLOAT;
-  web_gl.HIGH_INT = web_gl.RenderingContext.HIGH_INT;
-  web_gl.INCR = web_gl.RenderingContext.INCR;
-  web_gl.INCR_WRAP = web_gl.RenderingContext.INCR_WRAP;
-  web_gl.INT = web_gl.RenderingContext.INT;
-  web_gl.INT_VEC2 = web_gl.RenderingContext.INT_VEC2;
-  web_gl.INT_VEC3 = web_gl.RenderingContext.INT_VEC3;
-  web_gl.INT_VEC4 = web_gl.RenderingContext.INT_VEC4;
-  web_gl.INVALID_ENUM = web_gl.RenderingContext.INVALID_ENUM;
-  web_gl.INVALID_FRAMEBUFFER_OPERATION = web_gl.RenderingContext.INVALID_FRAMEBUFFER_OPERATION;
-  web_gl.INVALID_OPERATION = web_gl.RenderingContext.INVALID_OPERATION;
-  web_gl.INVALID_VALUE = web_gl.RenderingContext.INVALID_VALUE;
-  web_gl.INVERT = web_gl.RenderingContext.INVERT;
-  web_gl.KEEP = web_gl.RenderingContext.KEEP;
-  web_gl.LEQUAL = web_gl.RenderingContext.LEQUAL;
-  web_gl.LESS = web_gl.RenderingContext.LESS;
-  web_gl.LINEAR = web_gl.RenderingContext.LINEAR;
-  web_gl.LINEAR_MIPMAP_LINEAR = web_gl.RenderingContext.LINEAR_MIPMAP_LINEAR;
-  web_gl.LINEAR_MIPMAP_NEAREST = web_gl.RenderingContext.LINEAR_MIPMAP_NEAREST;
-  web_gl.LINES = web_gl.RenderingContext.LINES;
-  web_gl.LINE_LOOP = web_gl.RenderingContext.LINE_LOOP;
-  web_gl.LINE_STRIP = web_gl.RenderingContext.LINE_STRIP;
-  web_gl.LINE_WIDTH = web_gl.RenderingContext.LINE_WIDTH;
-  web_gl.LINK_STATUS = web_gl.RenderingContext.LINK_STATUS;
-  web_gl.LOW_FLOAT = web_gl.RenderingContext.LOW_FLOAT;
-  web_gl.LOW_INT = web_gl.RenderingContext.LOW_INT;
-  web_gl.LUMINANCE = web_gl.RenderingContext.LUMINANCE;
-  web_gl.LUMINANCE_ALPHA = web_gl.RenderingContext.LUMINANCE_ALPHA;
-  web_gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS = web_gl.RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS;
-  web_gl.MAX_CUBE_MAP_TEXTURE_SIZE = web_gl.RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE;
-  web_gl.MAX_FRAGMENT_UNIFORM_VECTORS = web_gl.RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS;
-  web_gl.MAX_RENDERBUFFER_SIZE = web_gl.RenderingContext.MAX_RENDERBUFFER_SIZE;
-  web_gl.MAX_TEXTURE_IMAGE_UNITS = web_gl.RenderingContext.MAX_TEXTURE_IMAGE_UNITS;
-  web_gl.MAX_TEXTURE_SIZE = web_gl.RenderingContext.MAX_TEXTURE_SIZE;
-  web_gl.MAX_VARYING_VECTORS = web_gl.RenderingContext.MAX_VARYING_VECTORS;
-  web_gl.MAX_VERTEX_ATTRIBS = web_gl.RenderingContext.MAX_VERTEX_ATTRIBS;
-  web_gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS = web_gl.RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS;
-  web_gl.MAX_VERTEX_UNIFORM_VECTORS = web_gl.RenderingContext.MAX_VERTEX_UNIFORM_VECTORS;
-  web_gl.MAX_VIEWPORT_DIMS = web_gl.RenderingContext.MAX_VIEWPORT_DIMS;
-  web_gl.MEDIUM_FLOAT = web_gl.RenderingContext.MEDIUM_FLOAT;
-  web_gl.MEDIUM_INT = web_gl.RenderingContext.MEDIUM_INT;
-  web_gl.MIRRORED_REPEAT = web_gl.RenderingContext.MIRRORED_REPEAT;
-  web_gl.NEAREST = web_gl.RenderingContext.NEAREST;
-  web_gl.NEAREST_MIPMAP_LINEAR = web_gl.RenderingContext.NEAREST_MIPMAP_LINEAR;
-  web_gl.NEAREST_MIPMAP_NEAREST = web_gl.RenderingContext.NEAREST_MIPMAP_NEAREST;
-  web_gl.NEVER = web_gl.RenderingContext.NEVER;
-  web_gl.NICEST = web_gl.RenderingContext.NICEST;
-  web_gl.NONE = web_gl.RenderingContext.NONE;
-  web_gl.NOTEQUAL = web_gl.RenderingContext.NOTEQUAL;
-  web_gl.NO_ERROR = web_gl.RenderingContext.NO_ERROR;
-  web_gl.ONE = web_gl.RenderingContext.ONE;
-  web_gl.ONE_MINUS_CONSTANT_ALPHA = web_gl.RenderingContext.ONE_MINUS_CONSTANT_ALPHA;
-  web_gl.ONE_MINUS_CONSTANT_COLOR = web_gl.RenderingContext.ONE_MINUS_CONSTANT_COLOR;
-  web_gl.ONE_MINUS_DST_ALPHA = web_gl.RenderingContext.ONE_MINUS_DST_ALPHA;
-  web_gl.ONE_MINUS_DST_COLOR = web_gl.RenderingContext.ONE_MINUS_DST_COLOR;
-  web_gl.ONE_MINUS_SRC_ALPHA = web_gl.RenderingContext.ONE_MINUS_SRC_ALPHA;
-  web_gl.ONE_MINUS_SRC_COLOR = web_gl.RenderingContext.ONE_MINUS_SRC_COLOR;
-  web_gl.OUT_OF_MEMORY = web_gl.RenderingContext.OUT_OF_MEMORY;
-  web_gl.PACK_ALIGNMENT = web_gl.RenderingContext.PACK_ALIGNMENT;
-  web_gl.POINTS = web_gl.RenderingContext.POINTS;
-  web_gl.POLYGON_OFFSET_FACTOR = web_gl.RenderingContext.POLYGON_OFFSET_FACTOR;
-  web_gl.POLYGON_OFFSET_FILL = web_gl.RenderingContext.POLYGON_OFFSET_FILL;
-  web_gl.POLYGON_OFFSET_UNITS = web_gl.RenderingContext.POLYGON_OFFSET_UNITS;
-  web_gl.RED_BITS = web_gl.RenderingContext.RED_BITS;
-  web_gl.RENDERBUFFER = web_gl.RenderingContext.RENDERBUFFER;
-  web_gl.RENDERBUFFER_ALPHA_SIZE = web_gl.RenderingContext.RENDERBUFFER_ALPHA_SIZE;
-  web_gl.RENDERBUFFER_BINDING = web_gl.RenderingContext.RENDERBUFFER_BINDING;
-  web_gl.RENDERBUFFER_BLUE_SIZE = web_gl.RenderingContext.RENDERBUFFER_BLUE_SIZE;
-  web_gl.RENDERBUFFER_DEPTH_SIZE = web_gl.RenderingContext.RENDERBUFFER_DEPTH_SIZE;
-  web_gl.RENDERBUFFER_GREEN_SIZE = web_gl.RenderingContext.RENDERBUFFER_GREEN_SIZE;
-  web_gl.RENDERBUFFER_HEIGHT = web_gl.RenderingContext.RENDERBUFFER_HEIGHT;
-  web_gl.RENDERBUFFER_INTERNAL_FORMAT = web_gl.RenderingContext.RENDERBUFFER_INTERNAL_FORMAT;
-  web_gl.RENDERBUFFER_RED_SIZE = web_gl.RenderingContext.RENDERBUFFER_RED_SIZE;
-  web_gl.RENDERBUFFER_STENCIL_SIZE = web_gl.RenderingContext.RENDERBUFFER_STENCIL_SIZE;
-  web_gl.RENDERBUFFER_WIDTH = web_gl.RenderingContext.RENDERBUFFER_WIDTH;
-  web_gl.RENDERER = web_gl.RenderingContext.RENDERER;
-  web_gl.REPEAT = web_gl.RenderingContext.REPEAT;
-  web_gl.REPLACE = web_gl.RenderingContext.REPLACE;
-  web_gl.RGB = web_gl.RenderingContext.RGB;
-  web_gl.RGB565 = web_gl.RenderingContext.RGB565;
-  web_gl.RGB5_A1 = web_gl.RenderingContext.RGB5_A1;
-  web_gl.RGBA = web_gl.RenderingContext.RGBA;
-  web_gl.RGBA4 = web_gl.RenderingContext.RGBA4;
-  web_gl.SAMPLER_2D = web_gl.RenderingContext.SAMPLER_2D;
-  web_gl.SAMPLER_CUBE = web_gl.RenderingContext.SAMPLER_CUBE;
-  web_gl.SAMPLES = web_gl.RenderingContext.SAMPLES;
-  web_gl.SAMPLE_ALPHA_TO_COVERAGE = web_gl.RenderingContext.SAMPLE_ALPHA_TO_COVERAGE;
-  web_gl.SAMPLE_BUFFERS = web_gl.RenderingContext.SAMPLE_BUFFERS;
-  web_gl.SAMPLE_COVERAGE = web_gl.RenderingContext.SAMPLE_COVERAGE;
-  web_gl.SAMPLE_COVERAGE_INVERT = web_gl.RenderingContext.SAMPLE_COVERAGE_INVERT;
-  web_gl.SAMPLE_COVERAGE_VALUE = web_gl.RenderingContext.SAMPLE_COVERAGE_VALUE;
-  web_gl.SCISSOR_BOX = web_gl.RenderingContext.SCISSOR_BOX;
-  web_gl.SCISSOR_TEST = web_gl.RenderingContext.SCISSOR_TEST;
-  web_gl.SHADER_TYPE = web_gl.RenderingContext.SHADER_TYPE;
-  web_gl.SHADING_LANGUAGE_VERSION = web_gl.RenderingContext.SHADING_LANGUAGE_VERSION;
-  web_gl.SHORT = web_gl.RenderingContext.SHORT;
-  web_gl.SRC_ALPHA = web_gl.RenderingContext.SRC_ALPHA;
-  web_gl.SRC_ALPHA_SATURATE = web_gl.RenderingContext.SRC_ALPHA_SATURATE;
-  web_gl.SRC_COLOR = web_gl.RenderingContext.SRC_COLOR;
-  web_gl.STATIC_DRAW = web_gl.RenderingContext.STATIC_DRAW;
-  web_gl.STENCIL_ATTACHMENT = web_gl.RenderingContext.STENCIL_ATTACHMENT;
-  web_gl.STENCIL_BACK_FAIL = web_gl.RenderingContext.STENCIL_BACK_FAIL;
-  web_gl.STENCIL_BACK_FUNC = web_gl.RenderingContext.STENCIL_BACK_FUNC;
-  web_gl.STENCIL_BACK_PASS_DEPTH_FAIL = web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL;
-  web_gl.STENCIL_BACK_PASS_DEPTH_PASS = web_gl.RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS;
-  web_gl.STENCIL_BACK_REF = web_gl.RenderingContext.STENCIL_BACK_REF;
-  web_gl.STENCIL_BACK_VALUE_MASK = web_gl.RenderingContext.STENCIL_BACK_VALUE_MASK;
-  web_gl.STENCIL_BACK_WRITEMASK = web_gl.RenderingContext.STENCIL_BACK_WRITEMASK;
-  web_gl.STENCIL_BITS = web_gl.RenderingContext.STENCIL_BITS;
-  web_gl.STENCIL_BUFFER_BIT = web_gl.RenderingContext.STENCIL_BUFFER_BIT;
-  web_gl.STENCIL_CLEAR_VALUE = web_gl.RenderingContext.STENCIL_CLEAR_VALUE;
-  web_gl.STENCIL_FAIL = web_gl.RenderingContext.STENCIL_FAIL;
-  web_gl.STENCIL_FUNC = web_gl.RenderingContext.STENCIL_FUNC;
-  web_gl.STENCIL_INDEX = web_gl.RenderingContext.STENCIL_INDEX;
-  web_gl.STENCIL_INDEX8 = web_gl.RenderingContext.STENCIL_INDEX8;
-  web_gl.STENCIL_PASS_DEPTH_FAIL = web_gl.RenderingContext.STENCIL_PASS_DEPTH_FAIL;
-  web_gl.STENCIL_PASS_DEPTH_PASS = web_gl.RenderingContext.STENCIL_PASS_DEPTH_PASS;
-  web_gl.STENCIL_REF = web_gl.RenderingContext.STENCIL_REF;
-  web_gl.STENCIL_TEST = web_gl.RenderingContext.STENCIL_TEST;
-  web_gl.STENCIL_VALUE_MASK = web_gl.RenderingContext.STENCIL_VALUE_MASK;
-  web_gl.STENCIL_WRITEMASK = web_gl.RenderingContext.STENCIL_WRITEMASK;
-  web_gl.STREAM_DRAW = web_gl.RenderingContext.STREAM_DRAW;
-  web_gl.SUBPIXEL_BITS = web_gl.RenderingContext.SUBPIXEL_BITS;
-  web_gl.TEXTURE = web_gl.RenderingContext.TEXTURE;
-  web_gl.TEXTURE0 = web_gl.RenderingContext.TEXTURE0;
-  web_gl.TEXTURE1 = web_gl.RenderingContext.TEXTURE1;
-  web_gl.TEXTURE10 = web_gl.RenderingContext.TEXTURE10;
-  web_gl.TEXTURE11 = web_gl.RenderingContext.TEXTURE11;
-  web_gl.TEXTURE12 = web_gl.RenderingContext.TEXTURE12;
-  web_gl.TEXTURE13 = web_gl.RenderingContext.TEXTURE13;
-  web_gl.TEXTURE14 = web_gl.RenderingContext.TEXTURE14;
-  web_gl.TEXTURE15 = web_gl.RenderingContext.TEXTURE15;
-  web_gl.TEXTURE16 = web_gl.RenderingContext.TEXTURE16;
-  web_gl.TEXTURE17 = web_gl.RenderingContext.TEXTURE17;
-  web_gl.TEXTURE18 = web_gl.RenderingContext.TEXTURE18;
-  web_gl.TEXTURE19 = web_gl.RenderingContext.TEXTURE19;
-  web_gl.TEXTURE2 = web_gl.RenderingContext.TEXTURE2;
-  web_gl.TEXTURE20 = web_gl.RenderingContext.TEXTURE20;
-  web_gl.TEXTURE21 = web_gl.RenderingContext.TEXTURE21;
-  web_gl.TEXTURE22 = web_gl.RenderingContext.TEXTURE22;
-  web_gl.TEXTURE23 = web_gl.RenderingContext.TEXTURE23;
-  web_gl.TEXTURE24 = web_gl.RenderingContext.TEXTURE24;
-  web_gl.TEXTURE25 = web_gl.RenderingContext.TEXTURE25;
-  web_gl.TEXTURE26 = web_gl.RenderingContext.TEXTURE26;
-  web_gl.TEXTURE27 = web_gl.RenderingContext.TEXTURE27;
-  web_gl.TEXTURE28 = web_gl.RenderingContext.TEXTURE28;
-  web_gl.TEXTURE29 = web_gl.RenderingContext.TEXTURE29;
-  web_gl.TEXTURE3 = web_gl.RenderingContext.TEXTURE3;
-  web_gl.TEXTURE30 = web_gl.RenderingContext.TEXTURE30;
-  web_gl.TEXTURE31 = web_gl.RenderingContext.TEXTURE31;
-  web_gl.TEXTURE4 = web_gl.RenderingContext.TEXTURE4;
-  web_gl.TEXTURE5 = web_gl.RenderingContext.TEXTURE5;
-  web_gl.TEXTURE6 = web_gl.RenderingContext.TEXTURE6;
-  web_gl.TEXTURE7 = web_gl.RenderingContext.TEXTURE7;
-  web_gl.TEXTURE8 = web_gl.RenderingContext.TEXTURE8;
-  web_gl.TEXTURE9 = web_gl.RenderingContext.TEXTURE9;
-  web_gl.TEXTURE_2D = web_gl.RenderingContext.TEXTURE_2D;
-  web_gl.TEXTURE_BINDING_2D = web_gl.RenderingContext.TEXTURE_BINDING_2D;
-  web_gl.TEXTURE_BINDING_CUBE_MAP = web_gl.RenderingContext.TEXTURE_BINDING_CUBE_MAP;
-  web_gl.TEXTURE_CUBE_MAP = web_gl.RenderingContext.TEXTURE_CUBE_MAP;
-  web_gl.TEXTURE_CUBE_MAP_NEGATIVE_X = web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X;
-  web_gl.TEXTURE_CUBE_MAP_NEGATIVE_Y = web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y;
-  web_gl.TEXTURE_CUBE_MAP_NEGATIVE_Z = web_gl.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z;
-  web_gl.TEXTURE_CUBE_MAP_POSITIVE_X = web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X;
-  web_gl.TEXTURE_CUBE_MAP_POSITIVE_Y = web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y;
-  web_gl.TEXTURE_CUBE_MAP_POSITIVE_Z = web_gl.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z;
-  web_gl.TEXTURE_MAG_FILTER = web_gl.RenderingContext.TEXTURE_MAG_FILTER;
-  web_gl.TEXTURE_MIN_FILTER = web_gl.RenderingContext.TEXTURE_MIN_FILTER;
-  web_gl.TEXTURE_WRAP_S = web_gl.RenderingContext.TEXTURE_WRAP_S;
-  web_gl.TEXTURE_WRAP_T = web_gl.RenderingContext.TEXTURE_WRAP_T;
-  web_gl.TRIANGLES = web_gl.RenderingContext.TRIANGLES;
-  web_gl.TRIANGLE_FAN = web_gl.RenderingContext.TRIANGLE_FAN;
-  web_gl.TRIANGLE_STRIP = web_gl.RenderingContext.TRIANGLE_STRIP;
-  web_gl.UNPACK_ALIGNMENT = web_gl.RenderingContext.UNPACK_ALIGNMENT;
-  web_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL = web_gl.RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL;
-  web_gl.UNPACK_FLIP_Y_WEBGL = web_gl.RenderingContext.UNPACK_FLIP_Y_WEBGL;
-  web_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL = web_gl.RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL;
-  web_gl.UNSIGNED_BYTE = web_gl.RenderingContext.UNSIGNED_BYTE;
-  web_gl.UNSIGNED_INT = web_gl.RenderingContext.UNSIGNED_INT;
-  web_gl.UNSIGNED_SHORT = web_gl.RenderingContext.UNSIGNED_SHORT;
-  web_gl.UNSIGNED_SHORT_4_4_4_4 = web_gl.RenderingContext.UNSIGNED_SHORT_4_4_4_4;
-  web_gl.UNSIGNED_SHORT_5_5_5_1 = web_gl.RenderingContext.UNSIGNED_SHORT_5_5_5_1;
-  web_gl.UNSIGNED_SHORT_5_6_5 = web_gl.RenderingContext.UNSIGNED_SHORT_5_6_5;
-  web_gl.VALIDATE_STATUS = web_gl.RenderingContext.VALIDATE_STATUS;
-  web_gl.VENDOR = web_gl.RenderingContext.VENDOR;
-  web_gl.VERSION = web_gl.RenderingContext.VERSION;
-  web_gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING;
-  web_gl.VERTEX_ATTRIB_ARRAY_ENABLED = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED;
-  web_gl.VERTEX_ATTRIB_ARRAY_NORMALIZED = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED;
-  web_gl.VERTEX_ATTRIB_ARRAY_POINTER = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER;
-  web_gl.VERTEX_ATTRIB_ARRAY_SIZE = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE;
-  web_gl.VERTEX_ATTRIB_ARRAY_STRIDE = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE;
-  web_gl.VERTEX_ATTRIB_ARRAY_TYPE = web_gl.RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE;
-  web_gl.VERTEX_SHADER = web_gl.RenderingContext.VERTEX_SHADER;
-  web_gl.VIEWPORT = web_gl.RenderingContext.VIEWPORT;
-  web_gl.ZERO = web_gl.RenderingContext.ZERO;
-  dart.defineExtensionNames([
-    'name',
-    'size',
-    'type'
-  ]);
-  web_gl.ActiveInfo = class ActiveInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.name]() {
-      return this.name;
-    }
-    get [dartx.size]() {
-      return this.size;
-    }
-    get [dartx.type]() {
-      return this.type;
-    }
-  };
-  dart.setSignature(web_gl.ActiveInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ActiveInfo, [])}),
-    fields: () => ({
-      [dartx.name]: core.String,
-      [dartx.size]: core.int,
-      [dartx.type]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.WebGLActiveInfo, web_gl.ActiveInfo);
-  dart.defineExtensionNames([
-    'drawArraysInstancedAngle',
-    'drawElementsInstancedAngle',
-    'vertexAttribDivisorAngle'
-  ]);
-  web_gl.AngleInstancedArrays = class AngleInstancedArrays extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.drawArraysInstancedAngle](...args) {
-      return this.drawArraysInstancedANGLE.apply(this, args);
-    }
-    [dartx.drawElementsInstancedAngle](...args) {
-      return this.drawElementsInstancedANGLE.apply(this, args);
-    }
-    [dartx.vertexAttribDivisorAngle](...args) {
-      return this.vertexAttribDivisorANGLE.apply(this, args);
-    }
-  };
-  dart.setSignature(web_gl.AngleInstancedArrays, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.AngleInstancedArrays, [])}),
-    methods: () => ({
-      [dartx.drawArraysInstancedAngle]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int]),
-      [dartx.drawElementsInstancedAngle]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int]),
-      [dartx.vertexAttribDivisorAngle]: dart.definiteFunctionType(dart.void, [core.int, core.int])
-    }),
-    sfields: () => ({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: core.int})
-  });
-  web_gl.AngleInstancedArrays.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 35070;
-  dart.registerExtension(dart.global.ANGLEInstancedArrays, web_gl.AngleInstancedArrays);
-  web_gl.Buffer = class Buffer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.Buffer, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.Buffer, [])})
-  });
-  dart.registerExtension(dart.global.WebGLBuffer, web_gl.Buffer);
-  web_gl.CompressedTextureAtc = class CompressedTextureAtc extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.CompressedTextureAtc, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTextureAtc, [])}),
-    sfields: () => ({
-      COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: core.int,
-      COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: core.int,
-      COMPRESSED_RGB_ATC_WEBGL: core.int
-    })
-  });
-  web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;
-  web_gl.CompressedTextureAtc.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;
-  web_gl.CompressedTextureAtc.COMPRESSED_RGB_ATC_WEBGL = 35986;
-  dart.registerExtension(dart.global.WebGLCompressedTextureATC, web_gl.CompressedTextureAtc);
-  web_gl.CompressedTextureETC1 = class CompressedTextureETC1 extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.CompressedTextureETC1, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTextureETC1, [])}),
-    sfields: () => ({COMPRESSED_RGB_ETC1_WEBGL: core.int})
-  });
-  web_gl.CompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL = 36196;
-  dart.registerExtension(dart.global.WebGLCompressedTextureETC1, web_gl.CompressedTextureETC1);
-  web_gl.CompressedTexturePvrtc = class CompressedTexturePvrtc extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.CompressedTexturePvrtc, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTexturePvrtc, [])}),
-    sfields: () => ({
-      COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: core.int,
-      COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: core.int,
-      COMPRESSED_RGB_PVRTC_2BPPV1_IMG: core.int,
-      COMPRESSED_RGB_PVRTC_4BPPV1_IMG: core.int
-    })
-  });
-  web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;
-  web_gl.CompressedTexturePvrtc.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;
-  web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841;
-  web_gl.CompressedTexturePvrtc.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;
-  dart.registerExtension(dart.global.WebGLCompressedTexturePVRTC, web_gl.CompressedTexturePvrtc);
-  web_gl.CompressedTextureS3TC = class CompressedTextureS3TC extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.CompressedTextureS3TC, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.CompressedTextureS3TC, [])}),
-    sfields: () => ({
-      COMPRESSED_RGBA_S3TC_DXT1_EXT: core.int,
-      COMPRESSED_RGBA_S3TC_DXT3_EXT: core.int,
-      COMPRESSED_RGBA_S3TC_DXT5_EXT: core.int,
-      COMPRESSED_RGB_S3TC_DXT1_EXT: core.int
-    })
-  });
-  web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;
-  web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;
-  web_gl.CompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;
-  web_gl.CompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;
-  dart.registerExtension(dart.global.WebGLCompressedTextureS3TC, web_gl.CompressedTextureS3TC);
-  dart.defineExtensionNames([
-    'alpha',
-    'antialias',
-    'depth',
-    'failIfMajorPerformanceCaveat',
-    'premultipliedAlpha',
-    'preserveDrawingBuffer',
-    'stencil'
-  ]);
-  web_gl.ContextAttributes = class ContextAttributes extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.alpha]() {
-      return this.alpha;
-    }
-    set [dartx.alpha](value) {
-      this.alpha = value;
-    }
-    get [dartx.antialias]() {
-      return this.antialias;
-    }
-    set [dartx.antialias](value) {
-      this.antialias = value;
-    }
-    get [dartx.depth]() {
-      return this.depth;
-    }
-    set [dartx.depth](value) {
-      this.depth = value;
-    }
-    get [dartx.failIfMajorPerformanceCaveat]() {
-      return this.failIfMajorPerformanceCaveat;
-    }
-    set [dartx.failIfMajorPerformanceCaveat](value) {
-      this.failIfMajorPerformanceCaveat = value;
-    }
-    get [dartx.premultipliedAlpha]() {
-      return this.premultipliedAlpha;
-    }
-    set [dartx.premultipliedAlpha](value) {
-      this.premultipliedAlpha = value;
-    }
-    get [dartx.preserveDrawingBuffer]() {
-      return this.preserveDrawingBuffer;
-    }
-    set [dartx.preserveDrawingBuffer](value) {
-      this.preserveDrawingBuffer = value;
-    }
-    get [dartx.stencil]() {
-      return this.stencil;
-    }
-    set [dartx.stencil](value) {
-      this.stencil = value;
-    }
-  };
-  dart.setSignature(web_gl.ContextAttributes, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ContextAttributes, [])}),
-    fields: () => ({
-      [dartx.alpha]: core.bool,
-      [dartx.antialias]: core.bool,
-      [dartx.depth]: core.bool,
-      [dartx.failIfMajorPerformanceCaveat]: core.bool,
-      [dartx.premultipliedAlpha]: core.bool,
-      [dartx.preserveDrawingBuffer]: core.bool,
-      [dartx.stencil]: core.bool
-    })
-  });
-  dart.registerExtension(dart.global.WebGLContextAttributes, web_gl.ContextAttributes);
-  dart.defineExtensionNames([
-    'statusMessage'
-  ]);
-  web_gl.ContextEvent = class ContextEvent extends html$.Event {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.statusMessage]() {
-      return this.statusMessage;
-    }
-  };
-  dart.setSignature(web_gl.ContextEvent, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ContextEvent, [])}),
-    fields: () => ({[dartx.statusMessage]: core.String})
-  });
-  dart.registerExtension(dart.global.WebGLContextEvent, web_gl.ContextEvent);
-  web_gl.DebugRendererInfo = class DebugRendererInfo extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.DebugRendererInfo, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.DebugRendererInfo, [])}),
-    sfields: () => ({
-      UNMASKED_RENDERER_WEBGL: core.int,
-      UNMASKED_VENDOR_WEBGL: core.int
-    })
-  });
-  web_gl.DebugRendererInfo.UNMASKED_RENDERER_WEBGL = 37446;
-  web_gl.DebugRendererInfo.UNMASKED_VENDOR_WEBGL = 37445;
-  dart.registerExtension(dart.global.WebGLDebugRendererInfo, web_gl.DebugRendererInfo);
-  dart.defineExtensionNames([
-    'getTranslatedShaderSource'
-  ]);
-  web_gl.DebugShaders = class DebugShaders extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.getTranslatedShaderSource](...args) {
-      return this.getTranslatedShaderSource.apply(this, args);
-    }
-  };
-  dart.setSignature(web_gl.DebugShaders, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.DebugShaders, [])}),
-    methods: () => ({[dartx.getTranslatedShaderSource]: dart.definiteFunctionType(core.String, [web_gl.Shader])})
-  });
-  dart.registerExtension(dart.global.WebGLDebugShaders, web_gl.DebugShaders);
-  web_gl.DepthTexture = class DepthTexture extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.DepthTexture, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.DepthTexture, [])}),
-    sfields: () => ({UNSIGNED_INT_24_8_WEBGL: core.int})
-  });
-  web_gl.DepthTexture.UNSIGNED_INT_24_8_WEBGL = 34042;
-  dart.registerExtension(dart.global.WebGLDepthTexture, web_gl.DepthTexture);
-  dart.defineExtensionNames([
-    'drawBuffersWebgl'
-  ]);
-  web_gl.DrawBuffers = class DrawBuffers extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.drawBuffersWebgl](...args) {
-      return this.drawBuffersWEBGL.apply(this, args);
-    }
-  };
-  dart.setSignature(web_gl.DrawBuffers, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.DrawBuffers, [])}),
-    methods: () => ({[dartx.drawBuffersWebgl]: dart.definiteFunctionType(dart.void, [ListOfint()])}),
-    sfields: () => ({
-      COLOR_ATTACHMENT0_WEBGL: core.int,
-      COLOR_ATTACHMENT10_WEBGL: core.int,
-      COLOR_ATTACHMENT11_WEBGL: core.int,
-      COLOR_ATTACHMENT12_WEBGL: core.int,
-      COLOR_ATTACHMENT13_WEBGL: core.int,
-      COLOR_ATTACHMENT14_WEBGL: core.int,
-      COLOR_ATTACHMENT15_WEBGL: core.int,
-      COLOR_ATTACHMENT1_WEBGL: core.int,
-      COLOR_ATTACHMENT2_WEBGL: core.int,
-      COLOR_ATTACHMENT3_WEBGL: core.int,
-      COLOR_ATTACHMENT4_WEBGL: core.int,
-      COLOR_ATTACHMENT5_WEBGL: core.int,
-      COLOR_ATTACHMENT6_WEBGL: core.int,
-      COLOR_ATTACHMENT7_WEBGL: core.int,
-      COLOR_ATTACHMENT8_WEBGL: core.int,
-      COLOR_ATTACHMENT9_WEBGL: core.int,
-      DRAW_BUFFER0_WEBGL: core.int,
-      DRAW_BUFFER10_WEBGL: core.int,
-      DRAW_BUFFER11_WEBGL: core.int,
-      DRAW_BUFFER12_WEBGL: core.int,
-      DRAW_BUFFER13_WEBGL: core.int,
-      DRAW_BUFFER14_WEBGL: core.int,
-      DRAW_BUFFER15_WEBGL: core.int,
-      DRAW_BUFFER1_WEBGL: core.int,
-      DRAW_BUFFER2_WEBGL: core.int,
-      DRAW_BUFFER3_WEBGL: core.int,
-      DRAW_BUFFER4_WEBGL: core.int,
-      DRAW_BUFFER5_WEBGL: core.int,
-      DRAW_BUFFER6_WEBGL: core.int,
-      DRAW_BUFFER7_WEBGL: core.int,
-      DRAW_BUFFER8_WEBGL: core.int,
-      DRAW_BUFFER9_WEBGL: core.int,
-      MAX_COLOR_ATTACHMENTS_WEBGL: core.int,
-      MAX_DRAW_BUFFERS_WEBGL: core.int
-    })
-  });
-  web_gl.DrawBuffers.COLOR_ATTACHMENT0_WEBGL = 36064;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT10_WEBGL = 36074;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT11_WEBGL = 36075;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT12_WEBGL = 36076;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT13_WEBGL = 36077;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT14_WEBGL = 36078;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT15_WEBGL = 36079;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT1_WEBGL = 36065;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT2_WEBGL = 36066;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT3_WEBGL = 36067;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT4_WEBGL = 36068;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT5_WEBGL = 36069;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT6_WEBGL = 36070;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT7_WEBGL = 36071;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT8_WEBGL = 36072;
-  web_gl.DrawBuffers.COLOR_ATTACHMENT9_WEBGL = 36073;
-  web_gl.DrawBuffers.DRAW_BUFFER0_WEBGL = 34853;
-  web_gl.DrawBuffers.DRAW_BUFFER10_WEBGL = 34863;
-  web_gl.DrawBuffers.DRAW_BUFFER11_WEBGL = 34864;
-  web_gl.DrawBuffers.DRAW_BUFFER12_WEBGL = 34865;
-  web_gl.DrawBuffers.DRAW_BUFFER13_WEBGL = 34866;
-  web_gl.DrawBuffers.DRAW_BUFFER14_WEBGL = 34867;
-  web_gl.DrawBuffers.DRAW_BUFFER15_WEBGL = 34868;
-  web_gl.DrawBuffers.DRAW_BUFFER1_WEBGL = 34854;
-  web_gl.DrawBuffers.DRAW_BUFFER2_WEBGL = 34855;
-  web_gl.DrawBuffers.DRAW_BUFFER3_WEBGL = 34856;
-  web_gl.DrawBuffers.DRAW_BUFFER4_WEBGL = 34857;
-  web_gl.DrawBuffers.DRAW_BUFFER5_WEBGL = 34858;
-  web_gl.DrawBuffers.DRAW_BUFFER6_WEBGL = 34859;
-  web_gl.DrawBuffers.DRAW_BUFFER7_WEBGL = 34860;
-  web_gl.DrawBuffers.DRAW_BUFFER8_WEBGL = 34861;
-  web_gl.DrawBuffers.DRAW_BUFFER9_WEBGL = 34862;
-  web_gl.DrawBuffers.MAX_COLOR_ATTACHMENTS_WEBGL = 36063;
-  web_gl.DrawBuffers.MAX_DRAW_BUFFERS_WEBGL = 34852;
-  dart.registerExtension(dart.global.WebGLDrawBuffers, web_gl.DrawBuffers);
-  web_gl.ExtBlendMinMax = class ExtBlendMinMax extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.ExtBlendMinMax, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtBlendMinMax, [])}),
-    sfields: () => ({
-      MAX_EXT: core.int,
-      MIN_EXT: core.int
-    })
-  });
-  web_gl.ExtBlendMinMax.MAX_EXT = 32776;
-  web_gl.ExtBlendMinMax.MIN_EXT = 32775;
-  dart.registerExtension(dart.global.EXTBlendMinMax, web_gl.ExtBlendMinMax);
-  web_gl.ExtFragDepth = class ExtFragDepth extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.ExtFragDepth, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtFragDepth, [])})
-  });
-  dart.registerExtension(dart.global.EXTFragDepth, web_gl.ExtFragDepth);
-  web_gl.ExtShaderTextureLod = class ExtShaderTextureLod extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.ExtShaderTextureLod, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtShaderTextureLod, [])})
-  });
-  dart.registerExtension(dart.global.EXTShaderTextureLOD, web_gl.ExtShaderTextureLod);
-  web_gl.ExtTextureFilterAnisotropic = class ExtTextureFilterAnisotropic extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.ExtTextureFilterAnisotropic, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ExtTextureFilterAnisotropic, [])}),
-    sfields: () => ({
-      MAX_TEXTURE_MAX_ANISOTROPY_EXT: core.int,
-      TEXTURE_MAX_ANISOTROPY_EXT: core.int
-    })
-  });
-  web_gl.ExtTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;
-  web_gl.ExtTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT = 34046;
-  dart.registerExtension(dart.global.EXTTextureFilterAnisotropic, web_gl.ExtTextureFilterAnisotropic);
-  web_gl.Framebuffer = class Framebuffer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.Framebuffer, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.Framebuffer, [])})
-  });
-  dart.registerExtension(dart.global.WebGLFramebuffer, web_gl.Framebuffer);
-  dart.defineExtensionNames([
-    'loseContext',
-    'restoreContext'
-  ]);
-  web_gl.LoseContext = class LoseContext extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.loseContext](...args) {
-      return this.loseContext.apply(this, args);
-    }
-    [dartx.restoreContext](...args) {
-      return this.restoreContext.apply(this, args);
-    }
-  };
-  dart.setSignature(web_gl.LoseContext, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.LoseContext, [])}),
-    methods: () => ({
-      [dartx.loseContext]: dart.definiteFunctionType(dart.void, []),
-      [dartx.restoreContext]: dart.definiteFunctionType(dart.void, [])
-    })
-  });
-  dart.registerExtension(dart.global.WebGLLoseContext, web_gl.LoseContext);
-  dart.registerExtension(dart.global.WebGLExtensionLoseContext, web_gl.LoseContext);
-  web_gl.OesElementIndexUint = class OesElementIndexUint extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.OesElementIndexUint, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesElementIndexUint, [])})
-  });
-  dart.registerExtension(dart.global.OESElementIndexUint, web_gl.OesElementIndexUint);
-  web_gl.OesStandardDerivatives = class OesStandardDerivatives extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.OesStandardDerivatives, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesStandardDerivatives, [])}),
-    sfields: () => ({FRAGMENT_SHADER_DERIVATIVE_HINT_OES: core.int})
-  });
-  web_gl.OesStandardDerivatives.FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 35723;
-  dart.registerExtension(dart.global.OESStandardDerivatives, web_gl.OesStandardDerivatives);
-  web_gl.OesTextureFloat = class OesTextureFloat extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.OesTextureFloat, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureFloat, [])})
-  });
-  dart.registerExtension(dart.global.OESTextureFloat, web_gl.OesTextureFloat);
-  web_gl.OesTextureFloatLinear = class OesTextureFloatLinear extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.OesTextureFloatLinear, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureFloatLinear, [])})
-  });
-  dart.registerExtension(dart.global.OESTextureFloatLinear, web_gl.OesTextureFloatLinear);
-  web_gl.OesTextureHalfFloatLinear = class OesTextureHalfFloatLinear extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.OesTextureHalfFloatLinear, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesTextureHalfFloatLinear, [])})
-  });
-  dart.registerExtension(dart.global.OESTextureHalfFloatLinear, web_gl.OesTextureHalfFloatLinear);
-  dart.defineExtensionNames([
-    'bindVertexArray',
-    'createVertexArray',
-    'deleteVertexArray',
-    'isVertexArray'
-  ]);
-  web_gl.OesVertexArrayObject = class OesVertexArrayObject extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.bindVertexArray](...args) {
-      return this.bindVertexArrayOES.apply(this, args);
-    }
-    [dartx.createVertexArray](...args) {
-      return this.createVertexArrayOES.apply(this, args);
-    }
-    [dartx.deleteVertexArray](...args) {
-      return this.deleteVertexArrayOES.apply(this, args);
-    }
-    [dartx.isVertexArray](...args) {
-      return this.isVertexArrayOES.apply(this, args);
-    }
-  };
-  dart.setSignature(web_gl.OesVertexArrayObject, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.OesVertexArrayObject, [])}),
-    methods: () => ({
-      [dartx.bindVertexArray]: dart.definiteFunctionType(dart.void, [web_gl.VertexArrayObject]),
-      [dartx.createVertexArray]: dart.definiteFunctionType(web_gl.VertexArrayObject, []),
-      [dartx.deleteVertexArray]: dart.definiteFunctionType(dart.void, [web_gl.VertexArrayObject]),
-      [dartx.isVertexArray]: dart.definiteFunctionType(core.bool, [web_gl.VertexArrayObject])
-    }),
-    sfields: () => ({VERTEX_ARRAY_BINDING_OES: core.int})
-  });
-  web_gl.OesVertexArrayObject.VERTEX_ARRAY_BINDING_OES = 34229;
-  dart.registerExtension(dart.global.OESVertexArrayObject, web_gl.OesVertexArrayObject);
-  web_gl.Program = class Program extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.Program, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.Program, [])})
-  });
-  dart.registerExtension(dart.global.WebGLProgram, web_gl.Program);
-  web_gl.Renderbuffer = class Renderbuffer extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.Renderbuffer, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.Renderbuffer, [])})
-  });
-  dart.registerExtension(dart.global.WebGLRenderbuffer, web_gl.Renderbuffer);
-  web_gl.Shader = class Shader extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.Shader, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.Shader, [])})
-  });
-  dart.registerExtension(dart.global.WebGLShader, web_gl.Shader);
-  dart.defineExtensionNames([
-    'precision',
-    'rangeMax',
-    'rangeMin'
-  ]);
-  web_gl.ShaderPrecisionFormat = class ShaderPrecisionFormat extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.precision]() {
-      return this.precision;
-    }
-    get [dartx.rangeMax]() {
-      return this.rangeMax;
-    }
-    get [dartx.rangeMin]() {
-      return this.rangeMin;
-    }
-  };
-  dart.setSignature(web_gl.ShaderPrecisionFormat, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.ShaderPrecisionFormat, [])}),
-    fields: () => ({
-      [dartx.precision]: core.int,
-      [dartx.rangeMax]: core.int,
-      [dartx.rangeMin]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.WebGLShaderPrecisionFormat, web_gl.ShaderPrecisionFormat);
-  web_gl.Texture = class Texture extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.Texture, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.Texture, [])})
-  });
-  dart.registerExtension(dart.global.WebGLTexture, web_gl.Texture);
-  web_gl.UniformLocation = class UniformLocation extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.UniformLocation, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.UniformLocation, [])})
-  });
-  dart.registerExtension(dart.global.WebGLUniformLocation, web_gl.UniformLocation);
-  web_gl.VertexArrayObject = class VertexArrayObject extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl.VertexArrayObject, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl.VertexArrayObject, [])})
-  });
-  dart.registerExtension(dart.global.WebGLVertexArrayObjectOES, web_gl.VertexArrayObject);
-  web_gl._WebGLRenderingContextBase = class _WebGLRenderingContextBase extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-  };
-  dart.setSignature(web_gl._WebGLRenderingContextBase, {
-    constructors: () => ({_: dart.definiteFunctionType(web_gl._WebGLRenderingContextBase, [])})
-  });
-  web_sql.SqlStatementCallback = dart.typedef('SqlStatementCallback', () => dart.functionType(dart.void, [web_sql.SqlTransaction, web_sql.SqlResultSet]));
-  web_sql.SqlStatementErrorCallback = dart.typedef('SqlStatementErrorCallback', () => dart.functionType(dart.void, [web_sql.SqlTransaction, web_sql.SqlError]));
-  web_sql.SqlTransactionCallback = dart.typedef('SqlTransactionCallback', () => dart.functionType(dart.void, [web_sql.SqlTransaction]));
-  web_sql.SqlTransactionErrorCallback = dart.typedef('SqlTransactionErrorCallback', () => dart.functionType(dart.void, [web_sql.SqlError]));
-  dart.defineExtensionNames([
-    'changeVersion',
-    'readTransaction',
-    'transaction',
-    'version'
-  ]);
-  web_sql.SqlDatabase = class SqlDatabase extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    static get supported() {
-      return !!window.openDatabase;
-    }
-    get [dartx.version]() {
-      return this.version;
-    }
-    [dartx.changeVersion](...args) {
-      return this.changeVersion.apply(this, args);
-    }
-    [dartx.readTransaction](...args) {
-      return this.readTransaction.apply(this, args);
-    }
-    [dartx.transaction](...args) {
-      return this.transaction.apply(this, args);
-    }
-  };
-  dart.setSignature(web_sql.SqlDatabase, {
-    constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlDatabase, [])}),
-    fields: () => ({[dartx.version]: core.String}),
-    methods: () => ({
-      [dartx.changeVersion]: dart.definiteFunctionType(dart.void, [core.String, core.String], [web_sql.SqlTransactionCallback, web_sql.SqlTransactionErrorCallback, html$.VoidCallback]),
-      [dartx.readTransaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html$.VoidCallback]),
-      [dartx.transaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html$.VoidCallback])
-    }),
-    sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
-  });
-  dart.registerExtension(dart.global.Database, web_sql.SqlDatabase);
-  dart.defineExtensionNames([
-    'code',
-    'message'
-  ]);
-  web_sql.SqlError = class SqlError extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.code]() {
-      return this.code;
-    }
-    get [dartx.message]() {
-      return this.message;
-    }
-  };
-  dart.setSignature(web_sql.SqlError, {
-    constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlError, [])}),
-    fields: () => ({
-      [dartx.code]: core.int,
-      [dartx.message]: core.String
-    }),
-    sfields: () => ({
-      CONSTRAINT_ERR: core.int,
-      DATABASE_ERR: core.int,
-      QUOTA_ERR: core.int,
-      SYNTAX_ERR: core.int,
-      TIMEOUT_ERR: core.int,
-      TOO_LARGE_ERR: core.int,
-      UNKNOWN_ERR: core.int,
-      VERSION_ERR: core.int
-    })
-  });
-  web_sql.SqlError.CONSTRAINT_ERR = 6;
-  web_sql.SqlError.DATABASE_ERR = 1;
-  web_sql.SqlError.QUOTA_ERR = 4;
-  web_sql.SqlError.SYNTAX_ERR = 5;
-  web_sql.SqlError.TIMEOUT_ERR = 7;
-  web_sql.SqlError.TOO_LARGE_ERR = 3;
-  web_sql.SqlError.UNKNOWN_ERR = 0;
-  web_sql.SqlError.VERSION_ERR = 2;
-  dart.registerExtension(dart.global.SQLError, web_sql.SqlError);
-  dart.defineExtensionNames([
-    'insertId',
-    'rows',
-    'rowsAffected'
-  ]);
-  web_sql.SqlResultSet = class SqlResultSet extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.insertId]() {
-      return this.insertId;
-    }
-    get [dartx.rows]() {
-      return this.rows;
-    }
-    get [dartx.rowsAffected]() {
-      return this.rowsAffected;
-    }
-  };
-  dart.setSignature(web_sql.SqlResultSet, {
-    constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlResultSet, [])}),
-    fields: () => ({
-      [dartx.insertId]: core.int,
-      [dartx.rows]: web_sql.SqlResultSetRowList,
-      [dartx.rowsAffected]: core.int
-    })
-  });
-  dart.registerExtension(dart.global.SQLResultSet, web_sql.SqlResultSet);
-  const _item_1 = Symbol('_item_1');
-  dart.defineExtensionNames([
-    'length',
-    '_get',
-    '_set',
-    'length',
-    'first',
-    'last',
-    'single',
-    'elementAt',
-    'item'
-  ]);
-  web_sql.SqlResultSetRowList = class SqlResultSetRowList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.Map), html$.ImmutableListMixin$(core.Map)) {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    get [dartx.length]() {
-      return this.length;
-    }
-    [dartx._get](index) {
-      if (index >>> 0 !== index || index >= this[dartx.length]) dart.throw(core.RangeError.index(index, this));
-      return this[dartx.item](index);
-    }
-    [dartx._set](index, value) {
-      dart.throw(new core.UnsupportedError("Cannot assign element of immutable List."));
-      return value;
-    }
-    set [dartx.length](value) {
-      dart.throw(new core.UnsupportedError("Cannot resize immutable List."));
-    }
-    get [dartx.first]() {
-      if (dart.notNull(this[dartx.length]) > 0) {
-        return this[0];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.last]() {
-      let len = this[dartx.length];
-      if (dart.notNull(len) > 0) {
-        return this[dart.notNull(len) - 1];
-      }
-      dart.throw(new core.StateError("No elements"));
-    }
-    get [dartx.single]() {
-      let len = this[dartx.length];
-      if (len == 1) {
-        return this[0];
-      }
-      if (len == 0) dart.throw(new core.StateError("No elements"));
-      dart.throw(new core.StateError("More than one element"));
-    }
-    [dartx.elementAt](index) {
-      return this[dartx._get](index);
-    }
-    [dartx.item](index) {
-      return html_common.convertNativeToDart_Dictionary(this[_item_1](index));
-    }
-    [_item_1](...args) {
-      return this.item.apply(this, args);
-    }
-  };
-  web_sql.SqlResultSetRowList[dart.implements] = () => [ListOfMap()];
-  dart.setSignature(web_sql.SqlResultSetRowList, {
-    constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlResultSetRowList, [])}),
-    getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
-    setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
-    methods: () => ({
-      [dartx._get]: dart.definiteFunctionType(core.Map, [core.int]),
-      [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.Map]),
-      [dartx.item]: dart.definiteFunctionType(core.Map, [core.int]),
-      [_item_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
-    })
-  });
-  dart.registerExtension(dart.global.SQLResultSetRowList, web_sql.SqlResultSetRowList);
-  dart.defineExtensionNames([
-    'executeSql'
-  ]);
-  web_sql.SqlTransaction = class SqlTransaction extends _interceptors.Interceptor {
-    static _() {
-      dart.throw(new core.UnsupportedError("Not supported"));
-    }
-    [dartx.executeSql](...args) {
-      return this.executeSql.apply(this, args);
-    }
-  };
-  dart.setSignature(web_sql.SqlTransaction, {
-    constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlTransaction, [])}),
-    methods: () => ({[dartx.executeSql]: dart.definiteFunctionType(dart.void, [core.String, ListOfObject()], [web_sql.SqlStatementCallback, web_sql.SqlStatementErrorCallback])})
-  });
-  dart.registerExtension(dart.global.SQLTransaction, web_sql.SqlTransaction);
-  // Exports:
-  exports.dart = dart;
-  exports.dartx = dartx;
-  exports._debugger = _debugger;
-  exports._foreign_helper = _foreign_helper;
-  exports._interceptors = _interceptors;
-  exports._internal = _internal;
-  exports._isolate_helper = _isolate_helper;
-  exports._js_embedded_names = _js_embedded_names;
-  exports._js_helper = _js_helper;
-  exports._js_mirrors = _js_mirrors;
-  exports._js_primitives = _js_primitives;
-  exports._metadata = _metadata;
-  exports._native_typed_data = _native_typed_data;
-  exports.async = async;
-  exports.collection = collection;
-  exports.convert = convert;
-  exports.core = core;
-  exports.developer = developer;
-  exports.io = io;
-  exports.isolate = isolate;
-  exports.js = js;
-  exports.js_util = js_util;
-  exports.math = math;
-  exports.mirrors = mirrors;
-  exports.typed_data = typed_data;
-  exports.indexed_db = indexed_db;
-  exports.html = html$;
-  exports.html_common = html_common;
-  exports.svg = svg$;
-  exports.web_audio = web_audio;
-  exports.web_gl = web_gl;
-  exports.web_sql = web_sql;
-})();
+    if (len == 0) dart.throw(new core.StateError("No elements"));
+    dart.throw(new core.StateError("More than one element"));
+  }
+  [dartx.elementAt](index) {
+    return this[dartx._get](index);
+  }
+  [dartx.item](index) {
+    return html_common.convertNativeToDart_Dictionary(this[_item_1](index));
+  }
+  [_item_1](...args) {
+    return this.item.apply(this, args);
+  }
+};
+web_sql.SqlResultSetRowList[dart.implements] = () => [ListOfMap()];
+dart.setSignature(web_sql.SqlResultSetRowList, {
+  constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlResultSetRowList, [])}),
+  getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
+  setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
+  methods: () => ({
+    [dartx._get]: dart.definiteFunctionType(core.Map, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.Map]),
+    [dartx.item]: dart.definiteFunctionType(core.Map, [core.int]),
+    [_item_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])
+  })
+});
+dart.registerExtension(dart.global.SQLResultSetRowList, web_sql.SqlResultSetRowList);
+dart.defineExtensionNames([
+  'executeSql'
+]);
+web_sql.SqlTransaction = class SqlTransaction extends _interceptors.Interceptor {
+  static _() {
+    dart.throw(new core.UnsupportedError("Not supported"));
+  }
+  [dartx.executeSql](...args) {
+    return this.executeSql.apply(this, args);
+  }
+};
+dart.setSignature(web_sql.SqlTransaction, {
+  constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlTransaction, [])}),
+  methods: () => ({[dartx.executeSql]: dart.definiteFunctionType(dart.void, [core.String, ListOfObject()], [web_sql.SqlStatementCallback, web_sql.SqlStatementErrorCallback])})
+});
+dart.registerExtension(dart.global.SQLTransaction, web_sql.SqlTransaction);
+// Exports:
+exports.dart = dart;
+exports.dartx = dartx;
+exports._debugger = _debugger;
+exports._foreign_helper = _foreign_helper;
+exports._interceptors = _interceptors;
+exports._internal = _internal;
+exports._isolate_helper = _isolate_helper;
+exports._js_embedded_names = _js_embedded_names;
+exports._js_helper = _js_helper;
+exports._js_mirrors = _js_mirrors;
+exports._js_primitives = _js_primitives;
+exports._metadata = _metadata;
+exports._native_typed_data = _native_typed_data;
+exports.async = async;
+exports.collection = collection;
+exports.convert = convert;
+exports.core = core;
+exports.developer = developer;
+exports.io = io;
+exports.isolate = isolate;
+exports.js = js;
+exports.js_util = js_util;
+exports.math = math;
+exports.mirrors = mirrors;
+exports.typed_data = typed_data;
+exports.indexed_db = indexed_db;
+exports.html = html$;
+exports.html_common = html_common;
+exports.svg = svg$;
+exports.web_audio = web_audio;
+exports.web_gl = web_gl;
+exports.web_sql = web_sql;
diff --git a/pkg/dev_compiler/lib/js/es6/dart_sdk.js b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
index 8e04bfc..870bbeb 100644
--- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
@@ -24,9 +24,9 @@
 export const mirrors = Object.create(null);
 export const typed_data = Object.create(null);
 export const indexed_db = Object.create(null);
-export const html = Object.create(null);
+export const html$ = Object.create(null);
 export const html_common = Object.create(null);
-export const svg = Object.create(null);
+export const svg$ = Object.create(null);
 export const web_audio = Object.create(null);
 export const web_gl = Object.create(null);
 export const web_sql = Object.create(null);
@@ -216,7 +216,7 @@
 let _ForwardingStreamSubscription = () => (_ForwardingStreamSubscription = dart.constFn(async._ForwardingStreamSubscription$()))();
 let _Predicate = () => (_Predicate = dart.constFn(async._Predicate$()))();
 let _WhereStream = () => (_WhereStream = dart.constFn(async._WhereStream$()))();
-let _Transformation = () => (_Transformation = dart.constFn(async._Transformation$()))();
+let _Transformation$ = () => (_Transformation$ = dart.constFn(async._Transformation$()))();
 let _MapStream = () => (_MapStream = dart.constFn(async._MapStream$()))();
 let _ExpandStream = () => (_ExpandStream = dart.constFn(async._ExpandStream$()))();
 let _HandleErrorStream = () => (_HandleErrorStream = dart.constFn(async._HandleErrorStream$()))();
@@ -290,7 +290,7 @@
 let _LinkedHashSetCell = () => (_LinkedHashSetCell = dart.constFn(collection._LinkedHashSetCell$()))();
 let _LinkedHashSetIterator = () => (_LinkedHashSetIterator = dart.constFn(collection._LinkedHashSetIterator$()))();
 let UnmodifiableListView = () => (UnmodifiableListView = dart.constFn(collection.UnmodifiableListView$()))();
-let _Equality = () => (_Equality = dart.constFn(collection._Equality$()))();
+let _Equality$ = () => (_Equality$ = dart.constFn(collection._Equality$()))();
 let _Hasher = () => (_Hasher = dart.constFn(collection._Hasher$()))();
 let HashMap = () => (HashMap = dart.constFn(collection.HashMap$()))();
 let HashSet = () => (HashSet = dart.constFn(collection.HashSet$()))();
@@ -321,7 +321,7 @@
 let _DoubleLinkedQueueIterator = () => (_DoubleLinkedQueueIterator = dart.constFn(collection._DoubleLinkedQueueIterator$()))();
 let ListQueue = () => (ListQueue = dart.constFn(collection.ListQueue$()))();
 let _ListQueueIterator = () => (_ListQueueIterator = dart.constFn(collection._ListQueueIterator$()))();
-let _Predicate = () => (_Predicate = dart.constFn(collection._Predicate$()))();
+let _Predicate$ = () => (_Predicate$ = dart.constFn(collection._Predicate$()))();
 let _SplayTreeNode = () => (_SplayTreeNode = dart.constFn(collection._SplayTreeNode$()))();
 let _SplayTreeMapNode = () => (_SplayTreeMapNode = dart.constFn(collection._SplayTreeMapNode$()))();
 let _SplayTree = () => (_SplayTree = dart.constFn(collection._SplayTree$()))();
@@ -369,7 +369,7 @@
 let _GeneratorIterable = () => (_GeneratorIterable = dart.constFn(core._GeneratorIterable$()))();
 let _GeneratorIterator = () => (_GeneratorIterator = dart.constFn(core._GeneratorIterator$()))();
 let BidirectionalIterator = () => (BidirectionalIterator = dart.constFn(core.BidirectionalIterator$()))();
-let Map = () => (Map = dart.constFn(core.Map$()))();
+let Map$ = () => (Map$ = dart.constFn(core.Map$()))();
 let Set = () => (Set = dart.constFn(core.Set$()))();
 let Sink = () => (Sink = dart.constFn(core.Sink$()))();
 let BidirectionalIteratorOfint = () => (BidirectionalIteratorOfint = dart.constFn(core.BidirectionalIterator$(core.int)))();
@@ -485,163 +485,163 @@
 let JsArray = () => (JsArray = dart.constFn(js.JsArray$()))();
 let ExpandoOfFunction = () => (ExpandoOfFunction = dart.constFn(core.Expando$(core.Function)))();
 let PointOfnum = () => (PointOfnum = dart.constFn(math.Point$(core.num)))();
-let Point = () => (Point = dart.constFn(math.Point$()))();
+let Point$ = () => (Point$ = dart.constFn(math.Point$()))();
 let RectangleOfnum = () => (RectangleOfnum = dart.constFn(math.Rectangle$(core.num)))();
 let _RectangleBase = () => (_RectangleBase = dart.constFn(math._RectangleBase$()))();
 let Rectangle = () => (Rectangle = dart.constFn(math.Rectangle$()))();
 let MutableRectangle = () => (MutableRectangle = dart.constFn(math.MutableRectangle$()))();
-let EventStreamProviderOfEvent = () => (EventStreamProviderOfEvent = dart.constFn(html.EventStreamProvider$(html.Event)))();
-let EventStreamProviderOfVersionChangeEvent = () => (EventStreamProviderOfVersionChangeEvent = dart.constFn(html.EventStreamProvider$(indexed_db.VersionChangeEvent)))();
+let EventStreamProviderOfEvent = () => (EventStreamProviderOfEvent = dart.constFn(html$.EventStreamProvider$(html$.Event)))();
+let EventStreamProviderOfVersionChangeEvent = () => (EventStreamProviderOfVersionChangeEvent = dart.constFn(html$.EventStreamProvider$(indexed_db.VersionChangeEvent)))();
 let FutureOfDatabase = () => (FutureOfDatabase = dart.constFn(async.Future$(indexed_db.Database)))();
 let CompleterOfIdbFactory = () => (CompleterOfIdbFactory = dart.constFn(async.Completer$(indexed_db.IdbFactory)))();
 let FutureOfIdbFactory = () => (FutureOfIdbFactory = dart.constFn(async.Future$(indexed_db.IdbFactory)))();
 let FutureOfListOfString = () => (FutureOfListOfString = dart.constFn(async.Future$(ListOfString())))();
-let EventTovoid = () => (EventTovoid = dart.constFn(dart.functionType(dart.void, [html.Event])))();
+let EventTovoid = () => (EventTovoid = dart.constFn(dart.functionType(dart.void, [html$.Event])))();
 let CompleterOfDatabase = () => (CompleterOfDatabase = dart.constFn(async.Completer$(indexed_db.Database)))();
-let ListOfEventTarget = () => (ListOfEventTarget = dart.constFn(core.List$(html.EventTarget)))();
+let ListOfEventTarget = () => (ListOfEventTarget = dart.constFn(core.List$(html$.EventTarget)))();
 let RectangleOfint = () => (RectangleOfint = dart.constFn(math.Rectangle$(core.int)))();
-let IterableOfNode = () => (IterableOfNode = dart.constFn(core.Iterable$(html.Node)))();
-let ListOfNode = () => (ListOfNode = dart.constFn(core.List$(html.Node)))();
-let ListOfElement = () => (ListOfElement = dart.constFn(core.List$(html.Element)))();
+let IterableOfNode = () => (IterableOfNode = dart.constFn(core.Iterable$(html$.Node)))();
+let ListOfNode = () => (ListOfNode = dart.constFn(core.List$(html$.Node)))();
+let ListOfElement = () => (ListOfElement = dart.constFn(core.List$(html$.Element)))();
 let IterableOfMapOfString$dynamic = () => (IterableOfMapOfString$dynamic = dart.constFn(core.Iterable$(MapOfString$dynamic())))();
-let EventStreamProviderOfWheelEvent = () => (EventStreamProviderOfWheelEvent = dart.constFn(html.EventStreamProvider$(html.WheelEvent)))();
-let EventStreamProviderOfTransitionEvent = () => (EventStreamProviderOfTransitionEvent = dart.constFn(html.EventStreamProvider$(html.TransitionEvent)))();
-let EventStreamProviderOfMouseEvent = () => (EventStreamProviderOfMouseEvent = dart.constFn(html.EventStreamProvider$(html.MouseEvent)))();
-let EventStreamProviderOfClipboardEvent = () => (EventStreamProviderOfClipboardEvent = dart.constFn(html.EventStreamProvider$(html.ClipboardEvent)))();
-let EventStreamProviderOfKeyboardEvent = () => (EventStreamProviderOfKeyboardEvent = dart.constFn(html.EventStreamProvider$(html.KeyboardEvent)))();
-let EventStreamProviderOfTouchEvent = () => (EventStreamProviderOfTouchEvent = dart.constFn(html.EventStreamProvider$(html.TouchEvent)))();
-let _CustomEventStreamProviderOfWheelEvent = () => (_CustomEventStreamProviderOfWheelEvent = dart.constFn(html._CustomEventStreamProvider$(html.WheelEvent)))();
-let _CustomEventStreamProviderOfTransitionEvent = () => (_CustomEventStreamProviderOfTransitionEvent = dart.constFn(html._CustomEventStreamProvider$(html.TransitionEvent)))();
-let ListOfEntry = () => (ListOfEntry = dart.constFn(core.List$(html.Entry)))();
-let EventStreamProviderOfProgressEvent = () => (EventStreamProviderOfProgressEvent = dart.constFn(html.EventStreamProvider$(html.ProgressEvent)))();
-let EventStreamProviderOfMediaKeyEvent = () => (EventStreamProviderOfMediaKeyEvent = dart.constFn(html.EventStreamProvider$(html.MediaKeyEvent)))();
-let EventStreamProviderOfMessageEvent = () => (EventStreamProviderOfMessageEvent = dart.constFn(html.EventStreamProvider$(html.MessageEvent)))();
-let EventStreamProviderOfPopStateEvent = () => (EventStreamProviderOfPopStateEvent = dart.constFn(html.EventStreamProvider$(html.PopStateEvent)))();
-let EventStreamProviderOfStorageEvent = () => (EventStreamProviderOfStorageEvent = dart.constFn(html.EventStreamProvider$(html.StorageEvent)))();
-let EventStreamProviderOfContextEvent = () => (EventStreamProviderOfContextEvent = dart.constFn(html.EventStreamProvider$(web_gl.ContextEvent)))();
+let EventStreamProviderOfWheelEvent = () => (EventStreamProviderOfWheelEvent = dart.constFn(html$.EventStreamProvider$(html$.WheelEvent)))();
+let EventStreamProviderOfTransitionEvent = () => (EventStreamProviderOfTransitionEvent = dart.constFn(html$.EventStreamProvider$(html$.TransitionEvent)))();
+let EventStreamProviderOfMouseEvent = () => (EventStreamProviderOfMouseEvent = dart.constFn(html$.EventStreamProvider$(html$.MouseEvent)))();
+let EventStreamProviderOfClipboardEvent = () => (EventStreamProviderOfClipboardEvent = dart.constFn(html$.EventStreamProvider$(html$.ClipboardEvent)))();
+let EventStreamProviderOfKeyboardEvent = () => (EventStreamProviderOfKeyboardEvent = dart.constFn(html$.EventStreamProvider$(html$.KeyboardEvent)))();
+let EventStreamProviderOfTouchEvent = () => (EventStreamProviderOfTouchEvent = dart.constFn(html$.EventStreamProvider$(html$.TouchEvent)))();
+let _CustomEventStreamProviderOfWheelEvent = () => (_CustomEventStreamProviderOfWheelEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.WheelEvent)))();
+let _CustomEventStreamProviderOfTransitionEvent = () => (_CustomEventStreamProviderOfTransitionEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.TransitionEvent)))();
+let ListOfEntry = () => (ListOfEntry = dart.constFn(core.List$(html$.Entry)))();
+let EventStreamProviderOfProgressEvent = () => (EventStreamProviderOfProgressEvent = dart.constFn(html$.EventStreamProvider$(html$.ProgressEvent)))();
+let EventStreamProviderOfMediaKeyEvent = () => (EventStreamProviderOfMediaKeyEvent = dart.constFn(html$.EventStreamProvider$(html$.MediaKeyEvent)))();
+let EventStreamProviderOfMessageEvent = () => (EventStreamProviderOfMessageEvent = dart.constFn(html$.EventStreamProvider$(html$.MessageEvent)))();
+let EventStreamProviderOfPopStateEvent = () => (EventStreamProviderOfPopStateEvent = dart.constFn(html$.EventStreamProvider$(html$.PopStateEvent)))();
+let EventStreamProviderOfStorageEvent = () => (EventStreamProviderOfStorageEvent = dart.constFn(html$.EventStreamProvider$(html$.StorageEvent)))();
+let EventStreamProviderOfContextEvent = () => (EventStreamProviderOfContextEvent = dart.constFn(html$.EventStreamProvider$(web_gl.ContextEvent)))();
 let ListOfnum = () => (ListOfnum = dart.constFn(core.List$(core.num)))();
-let ListOfMessagePort = () => (ListOfMessagePort = dart.constFn(core.List$(html.MessagePort)))();
-let CompleterOfFileSystem = () => (CompleterOfFileSystem = dart.constFn(async.Completer$(html.FileSystem)))();
-let CompleterOfEntry = () => (CompleterOfEntry = dart.constFn(async.Completer$(html.Entry)))();
-let ListOfCssRule = () => (ListOfCssRule = dart.constFn(core.List$(html.CssRule)))();
-let IterableOfElement = () => (IterableOfElement = dart.constFn(core.Iterable$(html.Element)))();
-let IterableOfCssStyleDeclaration = () => (IterableOfCssStyleDeclaration = dart.constFn(core.Iterable$(html.CssStyleDeclaration)))();
-let ListOfFile = () => (ListOfFile = dart.constFn(core.List$(html.File)))();
+let ListOfMessagePort = () => (ListOfMessagePort = dart.constFn(core.List$(html$.MessagePort)))();
+let CompleterOfFileSystem = () => (CompleterOfFileSystem = dart.constFn(async.Completer$(html$.FileSystem)))();
+let CompleterOfEntry = () => (CompleterOfEntry = dart.constFn(async.Completer$(html$.Entry)))();
+let ListOfCssRule = () => (ListOfCssRule = dart.constFn(core.List$(html$.CssRule)))();
+let IterableOfElement = () => (IterableOfElement = dart.constFn(core.Iterable$(html$.Element)))();
+let IterableOfCssStyleDeclaration = () => (IterableOfCssStyleDeclaration = dart.constFn(core.Iterable$(html$.CssStyleDeclaration)))();
+let ListOfFile = () => (ListOfFile = dart.constFn(core.List$(html$.File)))();
 let CompleterOfString = () => (CompleterOfString = dart.constFn(async.Completer$(core.String)))();
-let CompleterOfMetadata = () => (CompleterOfMetadata = dart.constFn(async.Completer$(html.Metadata)))();
+let CompleterOfMetadata = () => (CompleterOfMetadata = dart.constFn(async.Completer$(html$.Metadata)))();
 let CompleterOfListOfEntry = () => (CompleterOfListOfEntry = dart.constFn(async.Completer$(ListOfEntry())))();
-let EventStreamProviderOfSecurityPolicyViolationEvent = () => (EventStreamProviderOfSecurityPolicyViolationEvent = dart.constFn(html.EventStreamProvider$(html.SecurityPolicyViolationEvent)))();
-let ListOfStyleSheet = () => (ListOfStyleSheet = dart.constFn(core.List$(html.StyleSheet)))();
-let ImmutableListMixin = () => (ImmutableListMixin = dart.constFn(html.ImmutableListMixin$()))();
-let ElementAndElementToint = () => (ElementAndElementToint = dart.constFn(dart.functionType(core.int, [html.Element, html.Element])))();
-let ElementTobool = () => (ElementTobool = dart.constFn(dart.functionType(core.bool, [html.Element])))();
-let ElementList = () => (ElementList = dart.constFn(html.ElementList$()))();
-let _FrozenElementList = () => (_FrozenElementList = dart.constFn(html._FrozenElementList$()))();
-let _EventStreamOfEvent = () => (_EventStreamOfEvent = dart.constFn(html._EventStream$(html.Event)))();
-let _ElementEventStreamImplOfEvent = () => (_ElementEventStreamImplOfEvent = dart.constFn(html._ElementEventStreamImpl$(html.Event)))();
-let CompleterOfFileWriter = () => (CompleterOfFileWriter = dart.constFn(async.Completer$(html.FileWriter)))();
-let CompleterOfFile = () => (CompleterOfFile = dart.constFn(async.Completer$(html.File)))();
-let ListOfFontFace = () => (ListOfFontFace = dart.constFn(core.List$(html.FontFace)))();
-let ListOfGamepadButton = () => (ListOfGamepadButton = dart.constFn(core.List$(html.GamepadButton)))();
-let CompleterOfGeoposition = () => (CompleterOfGeoposition = dart.constFn(async.Completer$(html.Geoposition)))();
-let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html.Geoposition)))();
-let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html._CustomEventStreamProvider$(html.Event)))();
-let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html.HttpRequest)))();
+let EventStreamProviderOfSecurityPolicyViolationEvent = () => (EventStreamProviderOfSecurityPolicyViolationEvent = dart.constFn(html$.EventStreamProvider$(html$.SecurityPolicyViolationEvent)))();
+let ListOfStyleSheet = () => (ListOfStyleSheet = dart.constFn(core.List$(html$.StyleSheet)))();
+let ImmutableListMixin = () => (ImmutableListMixin = dart.constFn(html$.ImmutableListMixin$()))();
+let ElementAndElementToint = () => (ElementAndElementToint = dart.constFn(dart.functionType(core.int, [html$.Element, html$.Element])))();
+let ElementTobool = () => (ElementTobool = dart.constFn(dart.functionType(core.bool, [html$.Element])))();
+let ElementList = () => (ElementList = dart.constFn(html$.ElementList$()))();
+let _FrozenElementList = () => (_FrozenElementList = dart.constFn(html$._FrozenElementList$()))();
+let _EventStreamOfEvent = () => (_EventStreamOfEvent = dart.constFn(html$._EventStream$(html$.Event)))();
+let _ElementEventStreamImplOfEvent = () => (_ElementEventStreamImplOfEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.Event)))();
+let CompleterOfFileWriter = () => (CompleterOfFileWriter = dart.constFn(async.Completer$(html$.FileWriter)))();
+let CompleterOfFile$ = () => (CompleterOfFile$ = dart.constFn(async.Completer$(html$.File)))();
+let ListOfFontFace = () => (ListOfFontFace = dart.constFn(core.List$(html$.FontFace)))();
+let ListOfGamepadButton = () => (ListOfGamepadButton = dart.constFn(core.List$(html$.GamepadButton)))();
+let CompleterOfGeoposition = () => (CompleterOfGeoposition = dart.constFn(async.Completer$(html$.Geoposition)))();
+let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))();
+let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
+let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))();
 let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
-let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html.ProgressEvent])))();
+let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html$.ProgressEvent])))();
 let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
-let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html.MediaStreamTrack)))();
-let ListOfSourceInfo = () => (ListOfSourceInfo = dart.constFn(core.List$(html.SourceInfo)))();
+let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))();
+let ListOfSourceInfo = () => (ListOfSourceInfo = dart.constFn(core.List$(html$.SourceInfo)))();
 let CompleterOfListOfSourceInfo = () => (CompleterOfListOfSourceInfo = dart.constFn(async.Completer$(ListOfSourceInfo())))();
-let EventStreamProviderOfMidiMessageEvent = () => (EventStreamProviderOfMidiMessageEvent = dart.constFn(html.EventStreamProvider$(html.MidiMessageEvent)))();
-let ListOfMimeType = () => (ListOfMimeType = dart.constFn(core.List$(html.MimeType)))();
-let ListOfMutationRecord = () => (ListOfMutationRecord = dart.constFn(core.List$(html.MutationRecord)))();
-let _wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = () => (_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = dart.constFn(html._wrapZoneBinaryCallback$(ListOfMutationRecord(), html.MutationObserver, dart.void)))();
+let EventStreamProviderOfMidiMessageEvent = () => (EventStreamProviderOfMidiMessageEvent = dart.constFn(html$.EventStreamProvider$(html$.MidiMessageEvent)))();
+let ListOfMimeType = () => (ListOfMimeType = dart.constFn(core.List$(html$.MimeType)))();
+let ListOfMutationRecord = () => (ListOfMutationRecord = dart.constFn(core.List$(html$.MutationRecord)))();
+let _wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = () => (_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void = dart.constFn(html$._wrapZoneBinaryCallback$(ListOfMutationRecord(), html$.MutationObserver, dart.void)))();
 let MapOfString$bool = () => (MapOfString$bool = dart.constFn(core.Map$(core.String, core.bool)))();
-let CompleterOfMediaStream = () => (CompleterOfMediaStream = dart.constFn(async.Completer$(html.MediaStream)))();
-let NodeTobool = () => (NodeTobool = dart.constFn(dart.functionType(core.bool, [html.Node])))();
-let ComparatorOfNode = () => (ComparatorOfNode = dart.constFn(core.Comparator$(html.Node)))();
-let ListOfPlugin = () => (ListOfPlugin = dart.constFn(core.List$(html.Plugin)))();
-let EventStreamProviderOfRtcDtmfToneChangeEvent = () => (EventStreamProviderOfRtcDtmfToneChangeEvent = dart.constFn(html.EventStreamProvider$(html.RtcDtmfToneChangeEvent)))();
+let CompleterOfMediaStream = () => (CompleterOfMediaStream = dart.constFn(async.Completer$(html$.MediaStream)))();
+let NodeTobool = () => (NodeTobool = dart.constFn(dart.functionType(core.bool, [html$.Node])))();
+let ComparatorOfNode = () => (ComparatorOfNode = dart.constFn(core.Comparator$(html$.Node)))();
+let ListOfPlugin = () => (ListOfPlugin = dart.constFn(core.List$(html$.Plugin)))();
+let EventStreamProviderOfRtcDtmfToneChangeEvent = () => (EventStreamProviderOfRtcDtmfToneChangeEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcDtmfToneChangeEvent)))();
 let JSArrayOfMapOfString$String = () => (JSArrayOfMapOfString$String = dart.constFn(_interceptors.JSArray$(MapOfString$String())))();
-let CompleterOfRtcSessionDescription = () => (CompleterOfRtcSessionDescription = dart.constFn(async.Completer$(html.RtcSessionDescription)))();
-let CompleterOfRtcStatsResponse = () => (CompleterOfRtcStatsResponse = dart.constFn(async.Completer$(html.RtcStatsResponse)))();
-let EventStreamProviderOfMediaStreamEvent = () => (EventStreamProviderOfMediaStreamEvent = dart.constFn(html.EventStreamProvider$(html.MediaStreamEvent)))();
-let EventStreamProviderOfRtcDataChannelEvent = () => (EventStreamProviderOfRtcDataChannelEvent = dart.constFn(html.EventStreamProvider$(html.RtcDataChannelEvent)))();
-let EventStreamProviderOfRtcIceCandidateEvent = () => (EventStreamProviderOfRtcIceCandidateEvent = dart.constFn(html.EventStreamProvider$(html.RtcIceCandidateEvent)))();
-let ListOfOptionElement = () => (ListOfOptionElement = dart.constFn(core.List$(html.OptionElement)))();
-let UnmodifiableListViewOfOptionElement = () => (UnmodifiableListViewOfOptionElement = dart.constFn(collection.UnmodifiableListView$(html.OptionElement)))();
-let JSArrayOfOptionElement = () => (JSArrayOfOptionElement = dart.constFn(_interceptors.JSArray$(html.OptionElement)))();
-let ListOfSourceBuffer = () => (ListOfSourceBuffer = dart.constFn(core.List$(html.SourceBuffer)))();
-let ListOfSpeechGrammar = () => (ListOfSpeechGrammar = dart.constFn(core.List$(html.SpeechGrammar)))();
-let EventStreamProviderOfSpeechRecognitionError = () => (EventStreamProviderOfSpeechRecognitionError = dart.constFn(html.EventStreamProvider$(html.SpeechRecognitionError)))();
-let EventStreamProviderOfSpeechRecognitionEvent = () => (EventStreamProviderOfSpeechRecognitionEvent = dart.constFn(html.EventStreamProvider$(html.SpeechRecognitionEvent)))();
-let ListOfSpeechRecognitionResult = () => (ListOfSpeechRecognitionResult = dart.constFn(core.List$(html.SpeechRecognitionResult)))();
-let EventStreamProviderOfSpeechSynthesisEvent = () => (EventStreamProviderOfSpeechSynthesisEvent = dart.constFn(html.EventStreamProvider$(html.SpeechSynthesisEvent)))();
+let CompleterOfRtcSessionDescription = () => (CompleterOfRtcSessionDescription = dart.constFn(async.Completer$(html$.RtcSessionDescription)))();
+let CompleterOfRtcStatsResponse = () => (CompleterOfRtcStatsResponse = dart.constFn(async.Completer$(html$.RtcStatsResponse)))();
+let EventStreamProviderOfMediaStreamEvent = () => (EventStreamProviderOfMediaStreamEvent = dart.constFn(html$.EventStreamProvider$(html$.MediaStreamEvent)))();
+let EventStreamProviderOfRtcDataChannelEvent = () => (EventStreamProviderOfRtcDataChannelEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcDataChannelEvent)))();
+let EventStreamProviderOfRtcIceCandidateEvent = () => (EventStreamProviderOfRtcIceCandidateEvent = dart.constFn(html$.EventStreamProvider$(html$.RtcIceCandidateEvent)))();
+let ListOfOptionElement = () => (ListOfOptionElement = dart.constFn(core.List$(html$.OptionElement)))();
+let UnmodifiableListViewOfOptionElement = () => (UnmodifiableListViewOfOptionElement = dart.constFn(collection.UnmodifiableListView$(html$.OptionElement)))();
+let JSArrayOfOptionElement = () => (JSArrayOfOptionElement = dart.constFn(_interceptors.JSArray$(html$.OptionElement)))();
+let ListOfSourceBuffer = () => (ListOfSourceBuffer = dart.constFn(core.List$(html$.SourceBuffer)))();
+let ListOfSpeechGrammar = () => (ListOfSpeechGrammar = dart.constFn(core.List$(html$.SpeechGrammar)))();
+let EventStreamProviderOfSpeechRecognitionError = () => (EventStreamProviderOfSpeechRecognitionError = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionError)))();
+let EventStreamProviderOfSpeechRecognitionEvent = () => (EventStreamProviderOfSpeechRecognitionEvent = dart.constFn(html$.EventStreamProvider$(html$.SpeechRecognitionEvent)))();
+let ListOfSpeechRecognitionResult = () => (ListOfSpeechRecognitionResult = dart.constFn(core.List$(html$.SpeechRecognitionResult)))();
+let EventStreamProviderOfSpeechSynthesisEvent = () => (EventStreamProviderOfSpeechSynthesisEvent = dart.constFn(html$.EventStreamProvider$(html$.SpeechSynthesisEvent)))();
 let VoidToString = () => (VoidToString = dart.constFn(dart.functionType(core.String, [])))();
 let StringAndStringTovoid = () => (StringAndStringTovoid = dart.constFn(dart.functionType(dart.void, [core.String, core.String])))();
-let _WrappedListOfTableSectionElement = () => (_WrappedListOfTableSectionElement = dart.constFn(html._WrappedList$(html.TableSectionElement)))();
-let _WrappedListOfTableRowElement = () => (_WrappedListOfTableRowElement = dart.constFn(html._WrappedList$(html.TableRowElement)))();
-let _WrappedListOfTableCellElement = () => (_WrappedListOfTableCellElement = dart.constFn(html._WrappedList$(html.TableCellElement)))();
-let ListOfTextTrackCue = () => (ListOfTextTrackCue = dart.constFn(core.List$(html.TextTrackCue)))();
-let ListOfTextTrack = () => (ListOfTextTrack = dart.constFn(core.List$(html.TextTrack)))();
-let EventStreamProviderOfTrackEvent = () => (EventStreamProviderOfTrackEvent = dart.constFn(html.EventStreamProvider$(html.TrackEvent)))();
-let ListOfTouch = () => (ListOfTouch = dart.constFn(core.List$(html.Touch)))();
-let ListOfTrackDefault = () => (ListOfTrackDefault = dart.constFn(core.List$(html.TrackDefault)))();
-let EventStreamProviderOfCloseEvent = () => (EventStreamProviderOfCloseEvent = dart.constFn(html.EventStreamProvider$(html.CloseEvent)))();
+let _WrappedListOfTableSectionElement = () => (_WrappedListOfTableSectionElement = dart.constFn(html$._WrappedList$(html$.TableSectionElement)))();
+let _WrappedListOfTableRowElement = () => (_WrappedListOfTableRowElement = dart.constFn(html$._WrappedList$(html$.TableRowElement)))();
+let _WrappedListOfTableCellElement = () => (_WrappedListOfTableCellElement = dart.constFn(html$._WrappedList$(html$.TableCellElement)))();
+let ListOfTextTrackCue = () => (ListOfTextTrackCue = dart.constFn(core.List$(html$.TextTrackCue)))();
+let ListOfTextTrack = () => (ListOfTextTrack = dart.constFn(core.List$(html$.TextTrack)))();
+let EventStreamProviderOfTrackEvent = () => (EventStreamProviderOfTrackEvent = dart.constFn(html$.EventStreamProvider$(html$.TrackEvent)))();
+let ListOfTouch = () => (ListOfTouch = dart.constFn(core.List$(html$.Touch)))();
+let ListOfTrackDefault = () => (ListOfTrackDefault = dart.constFn(core.List$(html$.TrackDefault)))();
+let EventStreamProviderOfCloseEvent = () => (EventStreamProviderOfCloseEvent = dart.constFn(html$.EventStreamProvider$(html$.CloseEvent)))();
 let CompleterOfnum = () => (CompleterOfnum = dart.constFn(async.Completer$(core.num)))();
-let EventStreamProviderOfDeviceMotionEvent = () => (EventStreamProviderOfDeviceMotionEvent = dart.constFn(html.EventStreamProvider$(html.DeviceMotionEvent)))();
-let EventStreamProviderOfDeviceOrientationEvent = () => (EventStreamProviderOfDeviceOrientationEvent = dart.constFn(html.EventStreamProvider$(html.DeviceOrientationEvent)))();
-let EventStreamProviderOfAnimationEvent = () => (EventStreamProviderOfAnimationEvent = dart.constFn(html.EventStreamProvider$(html.AnimationEvent)))();
-let EventStreamProviderOfBeforeUnloadEvent = () => (EventStreamProviderOfBeforeUnloadEvent = dart.constFn(html.EventStreamProvider$(html.BeforeUnloadEvent)))();
-let _EventStreamOfBeforeUnloadEvent = () => (_EventStreamOfBeforeUnloadEvent = dart.constFn(html._EventStream$(html.BeforeUnloadEvent)))();
-let StreamControllerOfBeforeUnloadEvent = () => (StreamControllerOfBeforeUnloadEvent = dart.constFn(async.StreamController$(html.BeforeUnloadEvent)))();
-let _ElementEventStreamImplOfBeforeUnloadEvent = () => (_ElementEventStreamImplOfBeforeUnloadEvent = dart.constFn(html._ElementEventStreamImpl$(html.BeforeUnloadEvent)))();
-let _ElementListEventStreamImplOfBeforeUnloadEvent = () => (_ElementListEventStreamImplOfBeforeUnloadEvent = dart.constFn(html._ElementListEventStreamImpl$(html.BeforeUnloadEvent)))();
-let ElementListOfElement = () => (ElementListOfElement = dart.constFn(html.ElementList$(html.Element)))();
+let EventStreamProviderOfDeviceMotionEvent = () => (EventStreamProviderOfDeviceMotionEvent = dart.constFn(html$.EventStreamProvider$(html$.DeviceMotionEvent)))();
+let EventStreamProviderOfDeviceOrientationEvent = () => (EventStreamProviderOfDeviceOrientationEvent = dart.constFn(html$.EventStreamProvider$(html$.DeviceOrientationEvent)))();
+let EventStreamProviderOfAnimationEvent = () => (EventStreamProviderOfAnimationEvent = dart.constFn(html$.EventStreamProvider$(html$.AnimationEvent)))();
+let EventStreamProviderOfBeforeUnloadEvent = () => (EventStreamProviderOfBeforeUnloadEvent = dart.constFn(html$.EventStreamProvider$(html$.BeforeUnloadEvent)))();
+let _EventStreamOfBeforeUnloadEvent = () => (_EventStreamOfBeforeUnloadEvent = dart.constFn(html$._EventStream$(html$.BeforeUnloadEvent)))();
+let StreamControllerOfBeforeUnloadEvent = () => (StreamControllerOfBeforeUnloadEvent = dart.constFn(async.StreamController$(html$.BeforeUnloadEvent)))();
+let _ElementEventStreamImplOfBeforeUnloadEvent = () => (_ElementEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementEventStreamImpl$(html$.BeforeUnloadEvent)))();
+let _ElementListEventStreamImplOfBeforeUnloadEvent = () => (_ElementListEventStreamImplOfBeforeUnloadEvent = dart.constFn(html$._ElementListEventStreamImpl$(html$.BeforeUnloadEvent)))();
+let ElementListOfElement = () => (ElementListOfElement = dart.constFn(html$.ElementList$(html$.Element)))();
 let ListOfRectangleOfnum = () => (ListOfRectangleOfnum = dart.constFn(core.List$(RectangleOfnum())))();
-let ListOfGamepad = () => (ListOfGamepad = dart.constFn(core.List$(html.Gamepad)))();
+let ListOfGamepad = () => (ListOfGamepad = dart.constFn(core.List$(html$.Gamepad)))();
 let ListOfCssClassSetImpl = () => (ListOfCssClassSetImpl = dart.constFn(core.List$(html_common.CssClassSetImpl)))();
 let LinkedHashSetOfString = () => (LinkedHashSetOfString = dart.constFn(collection.LinkedHashSet$(core.String)))();
 let StringTobool = () => (StringTobool = dart.constFn(dart.functionType(core.bool, [core.String])))();
 let StringAndStringToString = () => (StringAndStringToString = dart.constFn(dart.functionType(core.String, [core.String, core.String])))();
 let SetOfStringTodynamic = () => (SetOfStringTodynamic = dart.constFn(dart.functionType(dart.dynamic, [SetOfString()])))();
-let EventStreamProvider = () => (EventStreamProvider = dart.constFn(html.EventStreamProvider$()))();
-let ElementStream = () => (ElementStream = dart.constFn(html.ElementStream$()))();
-let _EventStream = () => (_EventStream = dart.constFn(html._EventStream$()))();
-let _ElementEventStreamImpl = () => (_ElementEventStreamImpl = dart.constFn(html._ElementEventStreamImpl$()))();
-let _ElementListEventStreamImpl = () => (_ElementListEventStreamImpl = dart.constFn(html._ElementListEventStreamImpl$()))();
-let _EventListener = () => (_EventListener = dart.constFn(html._EventListener$()))();
-let _wrapZoneCallbackOfEvent$dynamic = () => (_wrapZoneCallbackOfEvent$dynamic = dart.constFn(html._wrapZoneCallback$(html.Event, dart.dynamic)))();
-let _EventStreamSubscription = () => (_EventStreamSubscription = dart.constFn(html._EventStreamSubscription$()))();
-let CustomStream = () => (CustomStream = dart.constFn(html.CustomStream$()))();
-let _CustomEventStreamImpl = () => (_CustomEventStreamImpl = dart.constFn(html._CustomEventStreamImpl$()))();
-let EventStreamProviderOfKeyEvent = () => (EventStreamProviderOfKeyEvent = dart.constFn(html.EventStreamProvider$(html.KeyEvent)))();
-let CustomStreamOfKeyEvent = () => (CustomStreamOfKeyEvent = dart.constFn(html.CustomStream$(html.KeyEvent)))();
-let _StreamPool = () => (_StreamPool = dart.constFn(html._StreamPool$()))();
-let _CustomEventStreamProvider = () => (_CustomEventStreamProvider = dart.constFn(html._CustomEventStreamProvider$()))();
+let EventStreamProvider = () => (EventStreamProvider = dart.constFn(html$.EventStreamProvider$()))();
+let ElementStream = () => (ElementStream = dart.constFn(html$.ElementStream$()))();
+let _EventStream = () => (_EventStream = dart.constFn(html$._EventStream$()))();
+let _ElementEventStreamImpl = () => (_ElementEventStreamImpl = dart.constFn(html$._ElementEventStreamImpl$()))();
+let _ElementListEventStreamImpl = () => (_ElementListEventStreamImpl = dart.constFn(html$._ElementListEventStreamImpl$()))();
+let _EventListener = () => (_EventListener = dart.constFn(html$._EventListener$()))();
+let _wrapZoneCallbackOfEvent$dynamic = () => (_wrapZoneCallbackOfEvent$dynamic = dart.constFn(html$._wrapZoneCallback$(html$.Event, dart.dynamic)))();
+let _EventStreamSubscription = () => (_EventStreamSubscription = dart.constFn(html$._EventStreamSubscription$()))();
+let CustomStream = () => (CustomStream = dart.constFn(html$.CustomStream$()))();
+let _CustomEventStreamImpl = () => (_CustomEventStreamImpl = dart.constFn(html$._CustomEventStreamImpl$()))();
+let EventStreamProviderOfKeyEvent = () => (EventStreamProviderOfKeyEvent = dart.constFn(html$.EventStreamProvider$(html$.KeyEvent)))();
+let CustomStreamOfKeyEvent = () => (CustomStreamOfKeyEvent = dart.constFn(html$.CustomStream$(html$.KeyEvent)))();
+let _StreamPool = () => (_StreamPool = dart.constFn(html$._StreamPool$()))();
+let _CustomEventStreamProvider = () => (_CustomEventStreamProvider = dart.constFn(html$._CustomEventStreamProvider$()))();
 let MapOfString$Function = () => (MapOfString$Function = dart.constFn(core.Map$(core.String, core.Function)))();
-let JSArrayOfKeyEvent = () => (JSArrayOfKeyEvent = dart.constFn(_interceptors.JSArray$(html.KeyEvent)))();
-let ListOfKeyEvent = () => (ListOfKeyEvent = dart.constFn(core.List$(html.KeyEvent)))();
+let JSArrayOfKeyEvent = () => (JSArrayOfKeyEvent = dart.constFn(_interceptors.JSArray$(html$.KeyEvent)))();
+let ListOfKeyEvent = () => (ListOfKeyEvent = dart.constFn(core.List$(html$.KeyEvent)))();
 let MapOfString$int = () => (MapOfString$int = dart.constFn(core.Map$(core.String, core.int)))();
-let JSArrayOfNodeValidator = () => (JSArrayOfNodeValidator = dart.constFn(_interceptors.JSArray$(html.NodeValidator)))();
-let ListOfNodeValidator = () => (ListOfNodeValidator = dart.constFn(core.List$(html.NodeValidator)))();
-let _WrappedList = () => (_WrappedList = dart.constFn(html._WrappedList$()))();
-let IteratorOfNode = () => (IteratorOfNode = dart.constFn(core.Iterator$(html.Node)))();
-let _WrappedIterator = () => (_WrappedIterator = dart.constFn(html._WrappedIterator$()))();
-let HttpRequestTodynamic = () => (HttpRequestTodynamic = dart.constFn(dart.functionType(dart.dynamic, [html.HttpRequest])))();
-let FixedSizeListIterator = () => (FixedSizeListIterator = dart.constFn(html.FixedSizeListIterator$()))();
-let _VariableSizeListIterator = () => (_VariableSizeListIterator = dart.constFn(html._VariableSizeListIterator$()))();
-let _wrapZoneCallback = () => (_wrapZoneCallback = dart.constFn(html._wrapZoneCallback$()))();
-let _wrapZoneBinaryCallback = () => (_wrapZoneBinaryCallback = dart.constFn(html._wrapZoneBinaryCallback$()))();
-let ElementTovoid = () => (ElementTovoid = dart.constFn(dart.functionType(dart.void, [html.Element])))();
-let ListOfLength = () => (ListOfLength = dart.constFn(core.List$(svg.Length)))();
-let ListOfNumber = () => (ListOfNumber = dart.constFn(core.List$(svg.Number)))();
-let ListOfPathSeg = () => (ListOfPathSeg = dart.constFn(core.List$(svg.PathSeg)))();
-let ListOfTransform = () => (ListOfTransform = dart.constFn(core.List$(svg.Transform)))();
+let JSArrayOfNodeValidator = () => (JSArrayOfNodeValidator = dart.constFn(_interceptors.JSArray$(html$.NodeValidator)))();
+let ListOfNodeValidator = () => (ListOfNodeValidator = dart.constFn(core.List$(html$.NodeValidator)))();
+let _WrappedList = () => (_WrappedList = dart.constFn(html$._WrappedList$()))();
+let IteratorOfNode = () => (IteratorOfNode = dart.constFn(core.Iterator$(html$.Node)))();
+let _WrappedIterator = () => (_WrappedIterator = dart.constFn(html$._WrappedIterator$()))();
+let HttpRequestTodynamic = () => (HttpRequestTodynamic = dart.constFn(dart.functionType(dart.dynamic, [html$.HttpRequest])))();
+let FixedSizeListIterator = () => (FixedSizeListIterator = dart.constFn(html$.FixedSizeListIterator$()))();
+let _VariableSizeListIterator = () => (_VariableSizeListIterator = dart.constFn(html$._VariableSizeListIterator$()))();
+let _wrapZoneCallback = () => (_wrapZoneCallback = dart.constFn(html$._wrapZoneCallback$()))();
+let _wrapZoneBinaryCallback = () => (_wrapZoneBinaryCallback = dart.constFn(html$._wrapZoneBinaryCallback$()))();
+let ElementTovoid = () => (ElementTovoid = dart.constFn(dart.functionType(dart.void, [html$.Element])))();
+let ListOfLength = () => (ListOfLength = dart.constFn(core.List$(svg$.Length)))();
+let ListOfNumber = () => (ListOfNumber = dart.constFn(core.List$(svg$.Number)))();
+let ListOfPathSeg = () => (ListOfPathSeg = dart.constFn(core.List$(svg$.PathSeg)))();
+let ListOfTransform = () => (ListOfTransform = dart.constFn(core.List$(svg$.Transform)))();
 let CompleterOfAudioBuffer = () => (CompleterOfAudioBuffer = dart.constFn(async.Completer$(web_audio.AudioBuffer)))();
-let EventStreamProviderOfAudioProcessingEvent = () => (EventStreamProviderOfAudioProcessingEvent = dart.constFn(html.EventStreamProvider$(web_audio.AudioProcessingEvent)))();
-let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
+let EventStreamProviderOfAudioProcessingEvent = () => (EventStreamProviderOfAudioProcessingEvent = dart.constFn(html$.EventStreamProvider$(web_audio.AudioProcessingEvent)))();
+let dynamicTodynamic$ = () => (dynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
 let StringAndStringToint = () => (StringAndStringToint = dart.constFn(dart.definiteFunctionType(core.int, [core.String, core.String])))();
 let VoidTo_MethodStats = () => (VoidTo_MethodStats = dart.constFn(dart.definiteFunctionType(dart._MethodStats, [])))();
 let VoidToFunctionType = () => (VoidToFunctionType = dart.constFn(dart.definiteFunctionType(dart.FunctionType, [])))();
@@ -655,36 +655,36 @@
 let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
 let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
 let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
-let StringTobool = () => (StringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
-let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
+let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
+let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
 let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
 let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
 let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
-let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
+let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
 let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
 let VoidToIsolateContext = () => (VoidToIsolateContext = dart.constFn(dart.definiteFunctionType(_foreign_helper.IsolateContext, [])))();
 let dynamicAndFunctionTodynamic = () => (dynamicAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Function])))();
-let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
+let dynamicTovoid$ = () => (dynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
 let TypeTodynamic = () => (TypeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type])))();
-let VoidToString = () => (VoidToString = dart.constFn(dart.definiteFunctionType(core.String, [])))();
-let StringToString = () => (StringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String])))();
+let VoidToString$ = () => (VoidToString$ = dart.constFn(dart.definiteFunctionType(core.String, [])))();
+let StringToString$ = () => (StringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String])))();
 let StringAndStringTodynamic = () => (StringAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String])))();
 let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
-let StringAndStringToString = () => (StringAndStringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
+let StringAndStringToString$ = () => (StringAndStringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
 let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
-let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
 let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
 let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
-let StringTovoid = () => (StringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
+let StringTovoid$ = () => (StringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
 let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
 let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
 let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
 let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
-let dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
-let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
+let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
+let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
 let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
 let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
-let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
+let dynamicToNull$ = () => (dynamicToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
 let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
 let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
 let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
@@ -711,12 +711,12 @@
 let StringAnddynamicAndintTobool = () => (StringAnddynamicAndintTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.String, dart.dynamic, core.int])))();
 let StringAndJSSyntaxRegExpAndString__ToString = () => (StringAndJSSyntaxRegExpAndString__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, _js_helper.JSSyntaxRegExp, core.String, core.int])))();
 let StringAndPatternAndStringToString = () => (StringAndPatternAndStringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, core.String])))();
-let MatchToString = () => (MatchToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Match])))();
+let MatchToString$ = () => (MatchToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.Match])))();
 let StringAndPatternAndFn__ToString = () => (StringAndPatternAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), StringToString()])))();
 let StringAndFnAndFnToString = () => (StringAndFnAndFnToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, MatchToString(), StringToString()])))();
 let StringAndStringAndFn__ToString = () => (StringAndStringAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String, MatchToString(), StringToString()])))();
 let StringAndPatternAndString__ToString = () => (StringAndPatternAndString__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, core.String, core.int])))();
-let StringAndPatternAndFn__ToString = () => (StringAndPatternAndFn__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), core.int])))();
+let StringAndPatternAndFn__ToString$ = () => (StringAndPatternAndFn__ToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.Pattern, MatchToString(), core.int])))();
 let StringAndintAndint__ToString = () => (StringAndintAndint__ToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.int, core.int, core.String])))();
 let dynamicToType = () => (dynamicToType = dart.constFn(dart.definiteFunctionType(core.Type, [dart.dynamic])))();
 let dynamicAndintTodynamic = () => (dynamicAndintTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.int])))();
@@ -740,7 +740,7 @@
 let intAndintAndintToint = () => (intAndintAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int, core.int])))();
 let FunctionAndObjectAndStackTraceTodynamic = () => (FunctionAndObjectAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.Object, core.StackTrace])))();
 let FunctionAndZoneToFunction = () => (FunctionAndZoneToFunction = dart.constFn(dart.definiteFunctionType(R => [core.Function, [core.Function, async.Zone]])))();
-let VoidToObject = () => (VoidToObject = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
+let VoidToObject$ = () => (VoidToObject$ = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
 let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
 let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
 let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
@@ -758,17 +758,17 @@
 let _ZoneToZoneDelegate = () => (_ZoneToZoneDelegate = dart.constFn(dart.definiteFunctionType(async.ZoneDelegate, [async._Zone])))();
 let ZoneAndZoneDelegateAndZone__ToR = () => (ZoneAndZoneDelegateAndZone__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]])))();
 let ObjectAndStackTraceTovoid = () => (ObjectAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace])))();
-let ZoneAndZoneDelegateAndZone__ToR = () => (ZoneAndZoneDelegateAndZone__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
-let ZoneAndZoneDelegateAndZone__ToR = () => (ZoneAndZoneDelegateAndZone__ToR = dart.constFn(dart.definiteFunctionType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]])))();
-let ZoneAndZoneDelegateAndZone__ToR = () => (ZoneAndZoneDelegateAndZone__ToR = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]])))();
+let ZoneAndZoneDelegateAndZone__ToR$ = () => (ZoneAndZoneDelegateAndZone__ToR$ = dart.constFn(dart.definiteFunctionType(R => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
+let ZoneAndZoneDelegateAndZone__ToR$0 = () => (ZoneAndZoneDelegateAndZone__ToR$0 = dart.constFn(dart.definiteFunctionType((R, T) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T]), T]])))();
+let ZoneAndZoneDelegateAndZone__ToR$1 = () => (ZoneAndZoneDelegateAndZone__ToR$1 = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [R, [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2]), T1, T2]])))();
 let ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR = () => (ZoneAndZoneDelegateAndZone__ToZoneCallbackOfR = dart.constFn(dart.definiteFunctionType(R => [async.ZoneCallback$(R), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [])]])))();
 let ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T = () => (ZoneAndZoneDelegateAndZone__ToZoneUnaryCallbackOfR$T = dart.constFn(dart.definiteFunctionType((R, T) => [async.ZoneUnaryCallback$(R, T), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T])]])))();
 let ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2 = () => (ZoneAndZoneDelegateAndZone__ToZoneBinaryCallbackOfR$T1$T2 = dart.constFn(dart.definiteFunctionType((R, T1, T2) => [async.ZoneBinaryCallback$(R, T1, T2), [async.Zone, async.ZoneDelegate, async.Zone, dart.functionType(R, [T1, T2])]])))();
 let ZoneAndZoneDelegateAndZone__ToAsyncError = () => (ZoneAndZoneDelegateAndZone__ToAsyncError = dart.constFn(dart.definiteFunctionType(async.AsyncError, [async.Zone, async.ZoneDelegate, async.Zone, core.Object, core.StackTrace])))();
 let ZoneAndZoneDelegateAndZone__Tovoid = () => (ZoneAndZoneDelegateAndZone__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, VoidTodynamic()])))();
 let ZoneAndZoneDelegateAndZone__ToTimer = () => (ZoneAndZoneDelegateAndZone__ToTimer = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, VoidTovoid()])))();
-let ZoneAndZoneDelegateAndZone__ToTimer = () => (ZoneAndZoneDelegateAndZone__ToTimer = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerTovoid()])))();
-let ZoneAndZoneDelegateAndZone__Tovoid = () => (ZoneAndZoneDelegateAndZone__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))();
+let ZoneAndZoneDelegateAndZone__ToTimer$ = () => (ZoneAndZoneDelegateAndZone__ToTimer$ = dart.constFn(dart.definiteFunctionType(async.Timer, [async.Zone, async.ZoneDelegate, async.Zone, core.Duration, TimerTovoid()])))();
+let ZoneAndZoneDelegateAndZone__Tovoid$ = () => (ZoneAndZoneDelegateAndZone__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.ZoneDelegate, async.Zone, core.String])))();
 let ZoneAndZoneDelegateAndZone__ToZone = () => (ZoneAndZoneDelegateAndZone__ToZone = dart.constFn(dart.definiteFunctionType(async.Zone, [async.Zone, async.ZoneDelegate, async.Zone, async.ZoneSpecification, core.Map])))();
 let ZoneAndZoneDelegateAndZone__Todynamic = () => (ZoneAndZoneDelegateAndZone__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [async.Zone, async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace])))();
 let Fn__ToR = () => (Fn__ToR = dart.constFn(dart.definiteFunctionType(R => [R, [dart.functionType(R, [])], {zoneValues: core.Map, zoneSpecification: async.ZoneSpecification, onError: core.Function}])))();
@@ -777,25 +777,25 @@
 let IterableAndListTovoid = () => (IterableAndListTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Iterable, core.List])))();
 let _SplayTreeMapNodeTobool = () => (_SplayTreeMapNodeTobool = dart.constFn(dart.definiteFunctionType(core.bool, [collection._SplayTreeMapNode])))();
 let dynamicAndFnTodynamic = () => (dynamicAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dynamicAnddynamicTodynamic()])))();
-let Uint8ListAndintAndintTovoid = () => (Uint8ListAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
+let Uint8ListAndintAndintTovoid$ = () => (Uint8ListAndintAndintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [typed_data.Uint8List, core.int, core.int])))();
 let StringAndFnTodynamic = () => (StringAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, dynamicAnddynamicTodynamic()])))();
 let EventSinkOfStringTo_LineSplitterEventSink = () => (EventSinkOfStringTo_LineSplitterEventSink = dart.constFn(dart.definiteFunctionType(convert._LineSplitterEventSink, [EventSinkOfString()])))();
 let intAndintToint = () => (intAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int])))();
 let dynamicAndintToint = () => (dynamicAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, core.int])))();
 let intAndintTovoid = () => (intAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int])))();
-let StringToint = () => (StringToint = dart.constFn(dart.definiteFunctionType(core.int, [core.String])))();
+let StringToint$ = () => (StringToint$ = dart.constFn(dart.definiteFunctionType(core.int, [core.String])))();
 let intToString = () => (intToString = dart.constFn(dart.definiteFunctionType(core.String, [core.int])))();
 let ObjectAndObjectTobool = () => (ObjectAndObjectTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.Object, core.Object])))();
 let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
 let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
-let StringAndStringTovoid = () => (StringAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
+let StringAndStringTovoid$ = () => (StringAndStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
 let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
 let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
 let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
 let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
 let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
 let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
-let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
+let String__Tovoid$ = () => (String__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
 let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
 let StringAndMapTovoid = () => (StringAndMapTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Map])))();
 let StringToServiceExtensionHandler = () => (StringToServiceExtensionHandler = dart.constFn(dart.definiteFunctionType(developer.ServiceExtensionHandler, [core.String])))();
@@ -803,7 +803,7 @@
 let VoidToUserTag = () => (VoidToUserTag = dart.constFn(dart.definiteFunctionType(developer.UserTag, [])))();
 let MapToString = () => (MapToString = dart.constFn(dart.definiteFunctionType(core.String, [core.Map])))();
 let intAndintAndString__Tovoid = () => (intAndintAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String, core.String])))();
-let intAndintAndString__Tovoid = () => (intAndintAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String])))();
+let intAndintAndString__Tovoid$ = () => (intAndintAndString__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.String, core.String, core.String])))();
 let intAndStringAndString__Tovoid = () => (intAndStringAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.String, core.String, core.String])))();
 let UriTovoid = () => (UriTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Uri])))();
 let SendPortTovoid = () => (SendPortTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [isolate.SendPort])))();
@@ -838,7 +838,7 @@
 let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
 let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
 let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
-let ListOfintTovoid = () => (ListOfintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
 let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
 let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
 let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
@@ -856,12 +856,12 @@
 let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
 let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
 let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
-let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
+let dynamic__ToNull$ = () => (dynamic__ToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
 let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
 let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
 let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
 let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
-let X509CertificateTobool = () => (X509CertificateTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.X509Certificate])))();
+let X509CertificateTobool$ = () => (X509CertificateTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [io.X509Certificate])))();
 let _HttpClientConnectionTo_ConnectionInfo = () => (_HttpClientConnectionTo_ConnectionInfo = dart.constFn(dart.definiteFunctionType(io._ConnectionInfo, [io._HttpClientConnection])))();
 let dynamicToFutureOrOf_ConnectionInfo = () => (dynamicToFutureOrOf_ConnectionInfo = dart.constFn(dart.definiteFunctionType(FutureOrOf_ConnectionInfo(), [dart.dynamic])))();
 let _ConnectionTargetTobool = () => (_ConnectionTargetTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io._ConnectionTarget])))();
@@ -914,7 +914,7 @@
 let FunctionToFunction = () => (FunctionToFunction = dart.constFn(dart.definiteFunctionType(core.Function, [core.Function])))();
 let FunctionAndListTodynamic = () => (FunctionAndListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Function, core.List])))();
 let TAndTToT = () => (TAndTToT = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
-let TAndTToT = () => (TAndTToT = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
+let TAndTToT$ = () => (TAndTToT$ = dart.constFn(dart.definiteFunctionType(T => [T, [T, T]])))();
 let numAndnumTodouble = () => (numAndnumTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num, core.num])))();
 let numAndnumTonum = () => (numAndnumTonum = dart.constFn(dart.definiteFunctionType(core.num, [core.num, core.num])))();
 let numTodouble = () => (numTodouble = dart.constFn(dart.definiteFunctionType(core.double, [core.num])))();
@@ -923,63 +923,63 @@
 let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
 let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
 let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
-let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Event])))();
+let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Event])))();
 let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
 let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
-let NodeTobool = () => (NodeTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.Node])))();
+let NodeTobool$ = () => (NodeTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Node])))();
 let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
 let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
 let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
-let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.FileSystem])))();
-let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.FileError])))();
-let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Entry])))();
-let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html.CssStyleDeclaration, [dart.dynamic])))();
-let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.CssStyleDeclaration])))();
-let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Metadata])))();
+let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileSystem])))();
+let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileError])))();
+let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Entry])))();
+let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html$.CssStyleDeclaration, [dart.dynamic])))();
+let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.CssStyleDeclaration])))();
+let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Metadata])))();
 let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
-let ElementTobool = () => (ElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.Element])))();
-let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.FileWriter])))();
-let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.File])))();
-let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Geoposition])))();
-let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.PositionError])))();
-let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html.HttpRequest])))();
-let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.ProgressEvent])))();
+let ElementTobool$ = () => (ElementTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Element])))();
+let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileWriter])))();
+let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.File])))();
+let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Geoposition])))();
+let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.PositionError])))();
+let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html$.HttpRequest])))();
+let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.ProgressEvent])))();
 let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
-let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.MediaStream])))();
-let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.NavigatorUserMediaError])))();
-let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.RtcSessionDescription])))();
-let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.RtcStatsResponse])))();
-let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.OptionElement])))();
+let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.MediaStream])))();
+let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.NavigatorUserMediaError])))();
+let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcSessionDescription])))();
+let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcStatsResponse])))();
+let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.OptionElement])))();
 let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
-let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.BeforeUnloadEvent])))();
-let ElementTovoid = () => (ElementTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Element])))();
-let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html.CssClassSet, [html.Element])))();
+let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.BeforeUnloadEvent])))();
+let ElementTovoid$ = () => (ElementTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Element])))();
+let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html$.CssClassSet, [html$.Element])))();
 let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
 let boolAndCssClassSetImplTobool = () => (boolAndCssClassSetImplTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.bool, html_common.CssClassSetImpl])))();
 let SetOfStringTobool = () => (SetOfStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [SetOfString()])))();
 let SetOfStringTovoid = () => (SetOfStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [SetOfString()])))();
-let EventAndStringTobool = () => (EventAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.Event, core.String])))();
-let EventTodynamic = () => (EventTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html.Event])))();
-let KeyEventTobool = () => (KeyEventTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.KeyEvent])))();
-let NodeValidatorTobool = () => (NodeValidatorTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.NodeValidator])))();
-let NodeAndNodeToint = () => (NodeAndNodeToint = dart.constFn(dart.definiteFunctionType(core.int, [html.Node, html.Node])))();
+let EventAndStringTobool = () => (EventAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Event, core.String])))();
+let EventTodynamic = () => (EventTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html$.Event])))();
+let KeyEventTobool = () => (KeyEventTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.KeyEvent])))();
+let NodeValidatorTobool = () => (NodeValidatorTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.NodeValidator])))();
+let NodeAndNodeToint = () => (NodeAndNodeToint = dart.constFn(dart.definiteFunctionType(core.int, [html$.Node, html$.Node])))();
 let FromToTo = () => (FromToTo = dart.constFn(dart.definiteFunctionType((From, To) => [To, [From]])))();
-let dynamicToWindowBase = () => (dynamicToWindowBase = dart.constFn(dart.definiteFunctionType(html.WindowBase, [dart.dynamic])))();
-let dynamicToEventTarget = () => (dynamicToEventTarget = dart.constFn(dart.definiteFunctionType(html.EventTarget, [dart.dynamic])))();
+let dynamicToWindowBase = () => (dynamicToWindowBase = dart.constFn(dart.definiteFunctionType(html$.WindowBase, [dart.dynamic])))();
+let dynamicToEventTarget = () => (dynamicToEventTarget = dart.constFn(dart.definiteFunctionType(html$.EventTarget, [dart.dynamic])))();
 let dynamicAnddynamicAnddynamic__Todynamic = () => (dynamicAnddynamicAnddynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
 let dynamicAnddynamicAndString__Tovoid = () => (dynamicAnddynamicAndString__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, core.String, core.Type, core.String])))();
-let _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = () => (_wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = dart.constFn(dart.definiteFunctionType((A, R) => [html._wrapZoneCallback$(A, R), [html._wrapZoneCallback$(A, R)]])))();
-let _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = () => (_wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = dart.constFn(dart.definiteFunctionType((A, B, R) => [html._wrapZoneBinaryCallback$(A, B, R), [html._wrapZoneBinaryCallback$(A, B, R)]])))();
-let StringToElement = () => (StringToElement = dart.constFn(dart.definiteFunctionType(html.Element, [core.String])))();
+let _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = () => (_wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R = dart.constFn(dart.definiteFunctionType((A, R) => [html$._wrapZoneCallback$(A, R), [html$._wrapZoneCallback$(A, R)]])))();
+let _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = () => (_wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R = dart.constFn(dart.definiteFunctionType((A, B, R) => [html$._wrapZoneBinaryCallback$(A, B, R), [html$._wrapZoneBinaryCallback$(A, B, R)]])))();
+let StringToElement = () => (StringToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [core.String])))();
 let StringToElementListOfElement = () => (StringToElementListOfElement = dart.constFn(dart.definiteFunctionType(ElementListOfElement(), [core.String])))();
-let NodeAndNodeTovoid = () => (NodeAndNodeTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Node, html.Node])))();
-let dynamicToImageData = () => (dynamicToImageData = dart.constFn(dart.definiteFunctionType(html.ImageData, [dart.dynamic])))();
-let ImageDataTodynamic = () => (ImageDataTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html.ImageData])))();
+let NodeAndNodeTovoid = () => (NodeAndNodeTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Node, html$.Node])))();
+let dynamicToImageData = () => (dynamicToImageData = dart.constFn(dart.definiteFunctionType(html$.ImageData, [dart.dynamic])))();
+let ImageDataTodynamic = () => (ImageDataTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [html$.ImageData])))();
 let Map__Todynamic = () => (Map__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Map], [dynamicTovoid()])))();
 let ListOfStringToList = () => (ListOfStringToList = dart.constFn(dart.definiteFunctionType(core.List, [ListOfString()])))();
 let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
 let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
-let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html.Element, [html.Node])))();
+let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [html$.Node])))();
 let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
 dart.mixin = function(base, ...mixins) {
   class Mixin extends base {}
@@ -2129,13 +2129,13 @@
   return callback(rawField);
 };
 dart.dloadRepl = function(obj, field) {
-  return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dload(obj, resolvedField), dynamicTodynamic()));
+  return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dload(obj, resolvedField), dynamicTodynamic$()));
 };
 dart.dputRepl = function(obj, field, value) {
-  return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dput(obj, resolvedField, value), dynamicTodynamic()));
+  return dart._dhelperRepl(obj, field, dart.fn(resolvedField => dart.dput(obj, resolvedField, value), dynamicTodynamic$()));
 };
 dart._callMethodRepl = function(obj, method, typeArgs, args) {
-  return dart._dhelperRepl(obj, method, dart.fn(resolvedField => dart._callMethod(obj, resolvedField, typeArgs, args, method), dynamicTodynamic()));
+  return dart._dhelperRepl(obj, method, dart.fn(resolvedField => dart._callMethod(obj, resolvedField, typeArgs, args, method), dynamicTodynamic$()));
 };
 dart.dsendRepl = function(obj, method, ...args) {
   return dart._callMethodRepl(obj, method, null, args);
@@ -2622,7 +2622,8 @@
       window.SourceBufferList = new MediaSource().sourceBuffers.constructor;
     }
   }
-  return typeof window == "undefined" ? global : window;
+  var globalState = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {};
+  return globalState;
 })();
 dart.JsSymbol = Symbol;
 dart._mixins = Symbol("mixins");
@@ -3086,7 +3087,7 @@
   }
   static _namedArgsToSymbols(namedArgs) {
     if (namedArgs == null) return dart.map({}, core.Symbol, dart.dynamic);
-    return MapOfSymbol$dynamic().fromIterable(dart.getOwnPropertyNames(namedArgs), {key: dart._dartSymbol, value: dart.fn(k => namedArgs[k], dynamicTodynamic())});
+    return MapOfSymbol$dynamic().fromIterable(dart.getOwnPropertyNames(namedArgs), {key: dart._dartSymbol, value: dart.fn(k => namedArgs[k], dynamicTodynamic$())});
   }
 };
 dart.setSignature(dart.InvocationImpl, {
@@ -3414,9 +3415,9 @@
 };
 dart.fn(_debugger.safeGetProperty, ObjectAndObjectToObject());
 _debugger.safeProperties = function(object) {
-  return MapOfdynamic$Object().fromIterable(_debugger.getOwnPropertyNames(object)[dartx.where](dart.fn(each => _debugger.safeGetProperty(object, each) != null, StringTobool())), {key: dart.fn(name => name, dynamicTodynamic()), value: dart.fn(name => _debugger.safeGetProperty(object, name), dynamicToObject())});
+  return MapOfdynamic$Object().fromIterable(_debugger.getOwnPropertyNames(object)[dartx.where](dart.fn(each => _debugger.safeGetProperty(object, each) != null, StringTobool$())), {key: dart.fn(name => name, dynamicTodynamic$()), value: dart.fn(name => _debugger.safeGetProperty(object, name), dynamicToObject())});
 };
-dart.fn(_debugger.safeProperties, dynamicTodynamic());
+dart.fn(_debugger.safeProperties, dynamicTodynamic$());
 const _attributes = Symbol('_attributes');
 const _jsonML = Symbol('_jsonML');
 _debugger.JsonMLElement = class JsonMLElement extends core.Object {
@@ -3481,9 +3482,9 @@
 });
 _debugger.isNativeJavaScriptObject = function(object) {
   let type = _debugger._typeof(object);
-  return type != 'object' && type != 'function' || dart.JSObject.is(object) || html.Node.is(object);
+  return type != 'object' && type != 'function' || dart.JSObject.is(object) || html$.Node.is(object);
 };
-dart.lazyFn(_debugger.isNativeJavaScriptObject, () => dynamicTobool());
+dart.lazyFn(_debugger.isNativeJavaScriptObject, () => dynamicTobool$());
 _debugger.JsonMLFormatter = class JsonMLFormatter extends core.Object {
   new(simpleFormatter) {
     this[_simpleFormatter] = simpleFormatter;
@@ -3570,7 +3571,7 @@
       }
     } catch (e) {
       let trace = dart.stackTrace(e);
-      html.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
+      html$.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
     }
 
     return null;
@@ -3583,7 +3584,7 @@
       }
     } catch (e) {
       let trace = dart.stackTrace(e);
-      html.window[dartx.console].error(dart.str`[hasChildren] Caught exception ${e}\n trace:\n${trace}`);
+      html$.window[dartx.console].error(dart.str`[hasChildren] Caught exception ${e}\n trace:\n${trace}`);
     }
 
     return false;
@@ -3597,7 +3598,7 @@
       }
     } catch (e) {
       let trace = dart.stackTrace(e);
-      html.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
+      html$.window[dartx.console].error(dart.str`Caught exception ${e}\n trace:\n${trace}`);
     }
 
     return JSArrayOfNameValuePair().of([]);
@@ -4056,7 +4057,7 @@
   let formatters = JSArrayOfJsonMLFormatter().of([_debugger._devtoolsFormatter]);
   dart.global.devtoolsFormatters = formatters;
 };
-dart.fn(_debugger.registerDevtoolsFormatter, VoidTodynamic());
+dart.fn(_debugger.registerDevtoolsFormatter, VoidTodynamic$());
 _foreign_helper.JS = function(typeDescription, codeTemplate, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
   if (arg0 === void 0) arg0 = null;
   if (arg1 === void 0) arg1 = null;
@@ -4090,70 +4091,70 @@
 dart.lazyFn(_foreign_helper.JS_CALL_IN_ISOLATE, () => dynamicAndFunctionTodynamic());
 _foreign_helper.JS_SET_CURRENT_ISOLATE = function(isolate) {
 };
-dart.fn(_foreign_helper.JS_SET_CURRENT_ISOLATE, dynamicTovoid());
+dart.fn(_foreign_helper.JS_SET_CURRENT_ISOLATE, dynamicTovoid$());
 _foreign_helper.JS_CREATE_ISOLATE = function() {
 };
-dart.fn(_foreign_helper.JS_CREATE_ISOLATE, VoidTodynamic());
+dart.fn(_foreign_helper.JS_CREATE_ISOLATE, VoidTodynamic$());
 _foreign_helper.JS_DART_OBJECT_CONSTRUCTOR = function() {
 };
-dart.fn(_foreign_helper.JS_DART_OBJECT_CONSTRUCTOR, VoidTodynamic());
+dart.fn(_foreign_helper.JS_DART_OBJECT_CONSTRUCTOR, VoidTodynamic$());
 _foreign_helper.JS_INTERCEPTOR_CONSTANT = function(type) {
 };
 dart.fn(_foreign_helper.JS_INTERCEPTOR_CONSTANT, TypeTodynamic());
 _foreign_helper.JS_OPERATOR_IS_PREFIX = function() {
 };
-dart.lazyFn(_foreign_helper.JS_OPERATOR_IS_PREFIX, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_OPERATOR_IS_PREFIX, () => VoidToString$());
 _foreign_helper.JS_OPERATOR_AS_PREFIX = function() {
 };
-dart.lazyFn(_foreign_helper.JS_OPERATOR_AS_PREFIX, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_OPERATOR_AS_PREFIX, () => VoidToString$());
 _foreign_helper.JS_OBJECT_CLASS_NAME = function() {
 };
-dart.lazyFn(_foreign_helper.JS_OBJECT_CLASS_NAME, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_OBJECT_CLASS_NAME, () => VoidToString$());
 _foreign_helper.JS_NULL_CLASS_NAME = function() {
 };
-dart.lazyFn(_foreign_helper.JS_NULL_CLASS_NAME, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_NULL_CLASS_NAME, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_CLASS_NAME = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_CLASS_NAME, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_CLASS_NAME, () => VoidToString$());
 _foreign_helper.JS_IS_INDEXABLE_FIELD_NAME = function() {
 };
-dart.lazyFn(_foreign_helper.JS_IS_INDEXABLE_FIELD_NAME, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_IS_INDEXABLE_FIELD_NAME, () => VoidToString$());
 _foreign_helper.JS_CURRENT_ISOLATE = function() {
 };
-dart.fn(_foreign_helper.JS_CURRENT_ISOLATE, VoidTodynamic());
+dart.fn(_foreign_helper.JS_CURRENT_ISOLATE, VoidTodynamic$());
 _foreign_helper.JS_SIGNATURE_NAME = function() {
 };
-dart.lazyFn(_foreign_helper.JS_SIGNATURE_NAME, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_SIGNATURE_NAME, () => VoidToString$());
 _foreign_helper.JS_TYPEDEF_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_TYPEDEF_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_TYPEDEF_TAG, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_TYPE_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_TAG, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_VOID_RETURN_TAG, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_RETURN_TYPE_TAG, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG, () => VoidToString$());
 _foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG = function() {
 };
-dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG, () => VoidToString());
+dart.lazyFn(_foreign_helper.JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG, () => VoidToString$());
 _foreign_helper.JS_GET_NAME = function(name) {
 };
-dart.lazyFn(_foreign_helper.JS_GET_NAME, () => StringToString());
+dart.lazyFn(_foreign_helper.JS_GET_NAME, () => StringToString$());
 _foreign_helper.JS_EMBEDDED_GLOBAL = function(typeDescription, name) {
 };
 dart.lazyFn(_foreign_helper.JS_EMBEDDED_GLOBAL, () => StringAndStringTodynamic());
 _foreign_helper.JS_GET_FLAG = function(name) {
 };
-dart.lazyFn(_foreign_helper.JS_GET_FLAG, () => StringTobool());
+dart.lazyFn(_foreign_helper.JS_GET_FLAG, () => StringTobool$());
 _foreign_helper.JS_EFFECT = function(code) {
   dart.dcall(code, null);
 };
@@ -4170,7 +4171,7 @@
 _foreign_helper.JS_STRING_CONCAT = function(a, b) {
   return a + b;
 };
-dart.lazyFn(_foreign_helper.JS_STRING_CONCAT, () => StringAndStringToString());
+dart.lazyFn(_foreign_helper.JS_STRING_CONCAT, () => StringAndStringToString$());
 _foreign_helper._Rest = class _Rest extends core.Object {
   new() {
   }
@@ -4182,7 +4183,7 @@
 _foreign_helper.spread = function(args) {
   dart.throw(new core.StateError('The spread function cannot be called, ' + 'it should be compiled away.'));
 };
-dart.fn(_foreign_helper.spread, dynamicTodynamic());
+dart.fn(_foreign_helper.spread, dynamicTodynamic$());
 _interceptors.Interceptor = class Interceptor extends core.Object {
   new() {
   }
@@ -4194,7 +4195,7 @@
 _interceptors.getInterceptor = function(obj) {
   return obj;
 };
-dart.fn(_interceptors.getInterceptor, dynamicTodynamic());
+dart.fn(_interceptors.getInterceptor, dynamicTodynamic$());
 dart.defineExtensionNames([
   'toString',
   'hashCode',
@@ -4268,10 +4269,10 @@
 dart.lazyFn(_interceptors.findConstructorForNativeSubclassType, () => TypeAndStringTodynamic());
 _interceptors.getNativeInterceptor = function(object) {
 };
-dart.fn(_interceptors.getNativeInterceptor, dynamicTodynamic());
+dart.fn(_interceptors.getNativeInterceptor, dynamicTodynamic$());
 _interceptors.setDispatchProperty = function(object, value) {
 };
-dart.fn(_interceptors.setDispatchProperty, dynamicAnddynamicTodynamic());
+dart.fn(_interceptors.setDispatchProperty, dynamicAnddynamicTodynamic$());
 const _removeWhere = Symbol('_removeWhere');
 _interceptors.JSArray$ = dart.generic(E => {
   let JSArrayOfE = () => (JSArrayOfE = dart.constFn(_interceptors.JSArray$(E)))();
@@ -5580,7 +5581,7 @@
 _interceptors.JSNumber._MAX_INT32 = 2147483647;
 dart.registerExtension(dart.global.Number, _interceptors.JSNumber);
 const _defaultSplit = Symbol('_defaultSplit');
-let const;
+let const$;
 dart.defineExtensionNames([
   'codeUnitAt',
   'allMatches',
@@ -5889,7 +5890,7 @@
     if (0 >= dart.notNull(times)) return '';
     if (times == 1 || this[dartx.length] == 0) return this;
     if (times != times >>> 0) {
-      dart.throw(const || (const = dart.const(new core.OutOfMemoryError())));
+      dart.throw(const$ || (const$ = dart.const(new core.OutOfMemoryError())));
     }
     let result = '';
     let s = this;
@@ -7525,7 +7526,7 @@
   return ListIterable;
 });
 _internal.ListIterable = ListIterable();
-const _iterable = Symbol('_iterable');
+const _iterable$ = Symbol('_iterable');
 const _start = Symbol('_start');
 const _endOrLength = Symbol('_endOrLength');
 const _endIndex = Symbol('_endIndex');
@@ -7537,7 +7538,7 @@
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   class SubListIterable extends _internal.ListIterable$(E) {
     new(iterable, start, endOrLength) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_start] = start;
       this[_endOrLength] = endOrLength;
       super.new();
@@ -7550,17 +7551,17 @@
       }
     }
     get [_endIndex]() {
-      let length = this[_iterable][dartx.length];
+      let length = this[_iterable$][dartx.length];
       if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dart.notNull(length)) return length;
       return this[_endOrLength];
     }
     get [_startIndex]() {
-      let length = this[_iterable][dartx.length];
+      let length = this[_iterable$][dartx.length];
       if (dart.notNull(this[_start]) > dart.notNull(length)) return length;
       return this[_start];
     }
     get length() {
-      let length = this[_iterable][dartx.length];
+      let length = this[_iterable$][dartx.length];
       if (dart.notNull(this[_start]) >= dart.notNull(length)) return 0;
       if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= dart.notNull(length)) {
         return dart.notNull(length) - dart.notNull(this[_start]);
@@ -7572,7 +7573,7 @@
       if (dart.notNull(index) < 0 || realIndex >= dart.notNull(this[_endIndex])) {
         dart.throw(core.RangeError.index(index, this, "index"));
       }
-      return this[_iterable][dartx.elementAt](realIndex);
+      return this[_iterable$][dartx.elementAt](realIndex);
     }
     skip(count) {
       core.RangeError.checkNotNegative(count, "count");
@@ -7580,22 +7581,22 @@
       if (this[_endOrLength] != null && newStart >= dart.notNull(this[_endOrLength])) {
         return new (EmptyIterableOfE())();
       }
-      return new (SubListIterableOfE())(this[_iterable], newStart, this[_endOrLength]);
+      return new (SubListIterableOfE())(this[_iterable$], newStart, this[_endOrLength]);
     }
     take(count) {
       core.RangeError.checkNotNegative(count, "count");
       if (this[_endOrLength] == null) {
-        return new (SubListIterableOfE())(this[_iterable], this[_start], dart.notNull(this[_start]) + dart.notNull(count));
+        return new (SubListIterableOfE())(this[_iterable$], this[_start], dart.notNull(this[_start]) + dart.notNull(count));
       } else {
         let newEnd = dart.notNull(this[_start]) + dart.notNull(count);
         if (dart.notNull(this[_endOrLength]) < newEnd) return this;
-        return new (SubListIterableOfE())(this[_iterable], this[_start], newEnd);
+        return new (SubListIterableOfE())(this[_iterable$], this[_start], newEnd);
       }
     }
     toList(opts) {
       let growable = opts && 'growable' in opts ? opts.growable : true;
       let start = this[_start];
-      let end = this[_iterable][dartx.length];
+      let end = this[_iterable$][dartx.length];
       if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dart.notNull(end)) end = this[_endOrLength];
       let length = dart.notNull(end) - dart.notNull(start);
       if (length < 0) length = 0;
@@ -7605,8 +7606,8 @@
         return _;
       })() : ListOfE().new(length);
       for (let i = 0; i < length; i++) {
-        result[dartx._set](i, this[_iterable][dartx.elementAt](dart.notNull(start) + i));
-        if (dart.notNull(this[_iterable][dartx.length]) < dart.notNull(end)) dart.throw(new core.ConcurrentModificationError(this));
+        result[dartx._set](i, this[_iterable$][dartx.elementAt](dart.notNull(start) + i));
+        if (dart.notNull(this[_iterable$][dartx.length]) < dart.notNull(end)) dart.throw(new core.ConcurrentModificationError(this));
       }
       return result;
     }
@@ -7614,7 +7615,7 @@
   dart.setSignature(SubListIterable, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.SubListIterable$(E), [IterableOfE(), core.int, core.int])}),
     fields: () => ({
-      [_iterable]: IterableOfE(),
+      [_iterable$]: IterableOfE(),
       [_start]: core.int,
       [_endOrLength]: core.int
     }),
@@ -7633,33 +7634,33 @@
   return SubListIterable;
 });
 _internal.SubListIterable = SubListIterable();
-const _length = Symbol('_length');
-const _index = Symbol('_index');
-const _current = Symbol('_current');
+const _length$ = Symbol('_length');
+const _index$ = Symbol('_index');
+const _current$ = Symbol('_current');
 _internal.ListIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   class ListIterator extends core.Object {
     new(iterable) {
-      this[_iterable] = iterable;
-      this[_length] = iterable[dartx.length];
-      this[_index] = 0;
-      this[_current] = null;
+      this[_iterable$] = iterable;
+      this[_length$] = iterable[dartx.length];
+      this[_index$] = 0;
+      this[_current$] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$];
     }
     moveNext() {
-      let length = this[_iterable][dartx.length];
-      if (this[_length] != length) {
-        dart.throw(new core.ConcurrentModificationError(this[_iterable]));
+      let length = this[_iterable$][dartx.length];
+      if (this[_length$] != length) {
+        dart.throw(new core.ConcurrentModificationError(this[_iterable$]));
       }
-      if (dart.notNull(this[_index]) >= dart.notNull(length)) {
-        this[_current] = null;
+      if (dart.notNull(this[_index$]) >= dart.notNull(length)) {
+        this[_current$] = null;
         return false;
       }
-      this[_current] = this[_iterable][dartx.elementAt](this[_index]);
-      this[_index] = dart.notNull(this[_index]) + 1;
+      this[_current$] = this[_iterable$][dartx.elementAt](this[_index$]);
+      this[_index$] = dart.notNull(this[_index$]) + 1;
       return true;
     }
   }
@@ -7668,10 +7669,10 @@
   dart.setSignature(ListIterator, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.ListIterator$(E), [IterableOfE()])}),
     fields: () => ({
-      [_iterable]: IterableOfE(),
-      [_length]: core.int,
-      [_index]: core.int,
-      [_current]: E
+      [_iterable$]: IterableOfE(),
+      [_length$]: core.int,
+      [_index$]: core.int,
+      [_current$]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -7699,30 +7700,30 @@
       return new (MappedIterableOfS$T())._(iterable, func);
     }
     _(iterable, f) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_f] = f;
       super.new();
     }
     get iterator() {
-      return new (MappedIteratorOfS$T())(this[_iterable][dartx.iterator], this[_f]);
+      return new (MappedIteratorOfS$T())(this[_iterable$][dartx.iterator], this[_f]);
     }
     get length() {
-      return this[_iterable][dartx.length];
+      return this[_iterable$][dartx.length];
     }
     get isEmpty() {
-      return this[_iterable][dartx.isEmpty];
+      return this[_iterable$][dartx.isEmpty];
     }
     get first() {
-      return this[_f](this[_iterable][dartx.first]);
+      return this[_f](this[_iterable$][dartx.first]);
     }
     get last() {
-      return this[_f](this[_iterable][dartx.last]);
+      return this[_f](this[_iterable$][dartx.last]);
     }
     get single() {
-      return this[_f](this[_iterable][dartx.single]);
+      return this[_f](this[_iterable$][dartx.single]);
     }
     elementAt(index) {
-      return this[_f](this[_iterable][dartx.elementAt](index));
+      return this[_f](this[_iterable$][dartx.elementAt](index));
     }
   }
   dart.defineNamedConstructor(MappedIterable, '_');
@@ -7732,7 +7733,7 @@
       _: dart.definiteFunctionType(_internal.MappedIterable$(S, T), [IterableOfS(), _TransformationOfS$T()])
     }),
     fields: () => ({
-      [_iterable]: IterableOfS(),
+      [_iterable$]: IterableOfS(),
       [_f]: _TransformationOfS$T()
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(T), [])})
@@ -7778,24 +7779,24 @@
     new(iterator, f) {
       this[_iterator] = iterator;
       this[_f] = f;
-      this[_current] = null;
+      this[_current$] = null;
     }
     moveNext() {
       if (dart.test(this[_iterator].moveNext())) {
-        this[_current] = this[_f](this[_iterator].current);
+        this[_current$] = this[_f](this[_iterator].current);
         return true;
       }
-      this[_current] = null;
+      this[_current$] = null;
       return false;
     }
     get current() {
-      return this[_current];
+      return this[_current$];
     }
   }
   dart.setSignature(MappedIterator, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.MappedIterator$(S, T), [IteratorOfS(), _TransformationOfS$T()])}),
     fields: () => ({
-      [_current]: T,
+      [_current$]: T,
       [_iterator]: IteratorOfS(),
       [_f]: _TransformationOfS$T()
     }),
@@ -7845,18 +7846,18 @@
   let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
   class WhereIterable extends core.Iterable$(E) {
     new(iterable, f) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_f] = f;
       super.new();
     }
     get iterator() {
-      return new (WhereIteratorOfE())(this[_iterable][dartx.iterator], this[_f]);
+      return new (WhereIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
     }
   }
   dart.setSignature(WhereIterable, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.WhereIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
     fields: () => ({
-      [_iterable]: IterableOfE(),
+      [_iterable$]: IterableOfE(),
       [_f]: _ElementPredicateOfE()
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
@@ -7909,18 +7910,18 @@
   let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
   class ExpandIterable extends core.Iterable$(T) {
     new(iterable, f) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_f] = f;
       super.new();
     }
     get iterator() {
-      return new (ExpandIteratorOfS$T())(this[_iterable][dartx.iterator], this[_f]);
+      return new (ExpandIteratorOfS$T())(this[_iterable$][dartx.iterator], this[_f]);
     }
   }
   dart.setSignature(ExpandIterable, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.ExpandIterable$(S, T), [IterableOfS(), _ExpandFunctionOfS$T()])}),
     fields: () => ({
-      [_iterable]: IterableOfS(),
+      [_iterable$]: IterableOfS(),
       [_f]: _ExpandFunctionOfS$T()
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(T), [])})
@@ -7941,15 +7942,15 @@
       this[_iterator] = iterator;
       this[_f] = f;
       this[_currentExpansion] = dart.const(new (EmptyIteratorOfT())());
-      this[_current] = null;
+      this[_current$] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$];
     }
     moveNext() {
       if (this[_currentExpansion] == null) return false;
       while (!dart.test(this[_currentExpansion].moveNext())) {
-        this[_current] = null;
+        this[_current$] = null;
         if (dart.test(this[_iterator].moveNext())) {
           this[_currentExpansion] = null;
           this[_currentExpansion] = this[_f](this[_iterator].current)[dartx.iterator];
@@ -7957,7 +7958,7 @@
           return false;
         }
       }
-      this[_current] = this[_currentExpansion].current;
+      this[_current$] = this[_currentExpansion].current;
       return true;
     }
   }
@@ -7969,7 +7970,7 @@
       [_iterator]: IteratorOfS(),
       [_f]: _ExpandFunctionOfS$T(),
       [_currentExpansion]: IteratorOfT(),
-      [_current]: T
+      [_current$]: T
     }),
     getters: () => ({current: dart.definiteFunctionType(T, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -7994,12 +7995,12 @@
       return new (TakeIterableOfE())._(iterable, takeCount);
     }
     _(iterable, takeCount) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_takeCount] = takeCount;
       super.new();
     }
     get iterator() {
-      return new (TakeIteratorOfE())(this[_iterable][dartx.iterator], this[_takeCount]);
+      return new (TakeIteratorOfE())(this[_iterable$][dartx.iterator], this[_takeCount]);
     }
   }
   dart.defineNamedConstructor(TakeIterable, '_');
@@ -8009,7 +8010,7 @@
       _: dart.definiteFunctionType(_internal.TakeIterable$(E), [IterableOfE(), core.int])
     }),
     fields: () => ({
-      [_iterable]: IterableOfE(),
+      [_iterable$]: IterableOfE(),
       [_takeCount]: core.int
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
@@ -8025,7 +8026,7 @@
       super._(iterable, takeCount);
     }
     get length() {
-      let iterableLength = this[_iterable][dartx.length];
+      let iterableLength = this[_iterable$][dartx.length];
       if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) return this[_takeCount];
       return iterableLength;
     }
@@ -8078,18 +8079,18 @@
   let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
   class TakeWhileIterable extends core.Iterable$(E) {
     new(iterable, f) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_f] = f;
       super.new();
     }
     get iterator() {
-      return new (TakeWhileIteratorOfE())(this[_iterable][dartx.iterator], this[_f]);
+      return new (TakeWhileIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
     }
   }
   dart.setSignature(TakeWhileIterable, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.TakeWhileIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
     fields: () => ({
-      [_iterable]: IterableOfE(),
+      [_iterable$]: IterableOfE(),
       [_f]: _ElementPredicateOfE()
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
@@ -8148,7 +8149,7 @@
       return new (SkipIterableOfE())._(iterable, count);
     }
     _(iterable, skipCount) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_skipCount] = skipCount;
       super.new();
       if (!(typeof this[_skipCount] == 'number')) {
@@ -8161,10 +8162,10 @@
         dart.throw(new core.ArgumentError.value(this[_skipCount], "count is not an integer"));
       }
       core.RangeError.checkNotNegative(this[_skipCount], "count");
-      return new (SkipIterableOfE())._(this[_iterable], dart.notNull(this[_skipCount]) + dart.notNull(count));
+      return new (SkipIterableOfE())._(this[_iterable$], dart.notNull(this[_skipCount]) + dart.notNull(count));
     }
     get iterator() {
-      return new (SkipIteratorOfE())(this[_iterable][dartx.iterator], this[_skipCount]);
+      return new (SkipIteratorOfE())(this[_iterable$][dartx.iterator], this[_skipCount]);
     }
   }
   dart.defineNamedConstructor(SkipIterable, '_');
@@ -8174,7 +8175,7 @@
       _: dart.definiteFunctionType(_internal.SkipIterable$(E), [IterableOfE(), core.int])
     }),
     fields: () => ({
-      [_iterable]: IterableOfE(),
+      [_iterable$]: IterableOfE(),
       [_skipCount]: core.int
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
@@ -8190,7 +8191,7 @@
       super._(iterable, skipCount);
     }
     get length() {
-      let length = dart.notNull(this[_iterable][dartx.length]) - dart.notNull(this[_skipCount]);
+      let length = dart.notNull(this[_iterable$][dartx.length]) - dart.notNull(this[_skipCount]);
       if (length >= 0) return length;
       return 0;
     }
@@ -8239,18 +8240,18 @@
   let _ElementPredicateOfE = () => (_ElementPredicateOfE = dart.constFn(_internal._ElementPredicate$(E)))();
   class SkipWhileIterable extends core.Iterable$(E) {
     new(iterable, f) {
-      this[_iterable] = iterable;
+      this[_iterable$] = iterable;
       this[_f] = f;
       super.new();
     }
     get iterator() {
-      return new (SkipWhileIteratorOfE())(this[_iterable][dartx.iterator], this[_f]);
+      return new (SkipWhileIteratorOfE())(this[_iterable$][dartx.iterator], this[_f]);
     }
   }
   dart.setSignature(SkipWhileIterable, {
     constructors: () => ({new: dart.definiteFunctionType(_internal.SkipWhileIterable$(E), [IterableOfE(), _ElementPredicateOfE()])}),
     fields: () => ({
-      [_iterable]: IterableOfE(),
+      [_iterable$]: IterableOfE(),
       [_f]: _ElementPredicateOfE()
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
@@ -8871,7 +8872,7 @@
 _internal.printToConsole = function(line) {
   _js_primitives.printString(dart.str`${line}`);
 };
-dart.lazyFn(_internal.printToConsole, () => StringTovoid());
+dart.lazyFn(_internal.printToConsole, () => StringTovoid$());
 _internal.Sort = class Sort extends core.Object {
   static sort(E) {
     return (a, compare) => {
@@ -9113,41 +9114,41 @@
   names: ['sort', 'sortRange', '_doSort', '_insertionSort', '_dualPivotQuicksort']
 });
 _internal.Sort._INSERTION_SORT_THRESHOLD = 32;
-const _name = Symbol('_name');
+const _name$ = Symbol('_name');
 const _nativeSymbol = Symbol('_nativeSymbol');
 _internal.Symbol = class Symbol extends core.Object {
   new(name) {
-    this[_name] = name;
+    this[_name$] = name;
     this[_nativeSymbol] = null;
   }
   es6(name, nativeSymbol) {
-    this[_name] = name;
+    this[_name$] = name;
     this[_nativeSymbol] = nativeSymbol;
   }
   unvalidated(name) {
-    this[_name] = name;
+    this[_name$] = name;
     this[_nativeSymbol] = null;
   }
   validated(name) {
-    this[_name] = _internal.Symbol.validatePublicSymbol(name);
+    this[_name$] = _internal.Symbol.validatePublicSymbol(name);
     this[_nativeSymbol] = null;
   }
   ['=='](other) {
-    return _internal.Symbol.is(other) && this[_name] == other[_name] && dart.equals(this[_nativeSymbol], other[_nativeSymbol]);
+    return _internal.Symbol.is(other) && this[_name$] == other[_name$] && dart.equals(this[_nativeSymbol], other[_nativeSymbol]);
   }
   get hashCode() {
     let hash = this._hashCode;
     if (hash != null) return hash;
     let arbitraryPrime = 664597;
-    hash = 536870911 & arbitraryPrime * dart.notNull(dart.hashCode(this[_name]));
+    hash = 536870911 & arbitraryPrime * dart.notNull(dart.hashCode(this[_name$]));
     this._hashCode = hash;
     return hash;
   }
   toString() {
-    return dart.str`Symbol("${this[_name]}")`;
+    return dart.str`Symbol("${this[_name$]}")`;
   }
   static getName(symbol) {
-    return symbol[_name];
+    return symbol[_name$];
   }
   static getNativeSymbol(symbol) {
     return symbol[_nativeSymbol];
@@ -9175,7 +9176,7 @@
     validated: dart.definiteFunctionType(_internal.Symbol, [core.String])
   }),
   fields: () => ({
-    [_name]: core.String,
+    [_name$]: core.String,
     [_nativeSymbol]: dart.dynamic
   }),
   methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])}),
@@ -9222,13 +9223,13 @@
   let o = _isolate_helper._globalState.topEventLoop;
   o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) + 1;
 };
-dart.fn(_isolate_helper.enterJsAsync, VoidTodynamic());
+dart.fn(_isolate_helper.enterJsAsync, VoidTodynamic$());
 _isolate_helper.leaveJsAsync = function() {
   let o = _isolate_helper._globalState.topEventLoop;
   o[_activeJsAsyncCount] = dart.notNull(o[_activeJsAsyncCount]) - 1;
   dart.assert(dart.notNull(_isolate_helper._globalState.topEventLoop[_activeJsAsyncCount]) >= 0);
 };
-dart.fn(_isolate_helper.leaveJsAsync, VoidTodynamic());
+dart.fn(_isolate_helper.leaveJsAsync, VoidTodynamic$());
 _isolate_helper.isWorker = function() {
   return _isolate_helper._globalState.isWorker;
 };
@@ -9261,7 +9262,7 @@
   }
   _isolate_helper._globalState.topEventLoop.run();
 };
-dart.fn(_isolate_helper.startRootIsolate, dynamicAnddynamicTovoid());
+dart.fn(_isolate_helper.startRootIsolate, dynamicAnddynamicTovoid$());
 dart.copyProperties(_isolate_helper, {
   get _globalState() {
     return dart.globalState;
@@ -9432,7 +9433,7 @@
     function respond() {
       responsePort.send(null);
     }
-    dart.fn(respond, VoidTovoid());
+    dart.fn(respond, VoidTovoid$());
     if (pingType == isolate.Isolate.AS_EVENT) {
       _isolate_helper._globalState.topEventLoop.enqueue(this, respond, "ping");
       return;
@@ -9959,10 +9960,10 @@
         dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
         completer.completeError(dart.dindex(msg, 1));
       }
-    }, dynamicToNull()));
+    }, dynamicToNull$()));
     let signalReply = port.sendPort;
     if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
-      _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid()));
+      _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid$()));
     } else {
       _isolate_helper.IsolateNatives._startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply);
     }
@@ -10007,7 +10008,7 @@
         dart.dcall(topLevel);
       }
     }
-    dart.fn(runStartFunction, VoidTovoid());
+    dart.fn(runStartFunction, VoidTovoid$());
     if (dart.test(startPaused)) {
       context.addPause(context.pauseCapability, context.pauseCapability);
       _isolate_helper._globalState.topEventLoop.enqueue(context, runStartFunction, 'start isolate');
@@ -10254,7 +10255,7 @@
 _isolate_helper.RawReceivePortImpl._nextFreeId = 1;
 const _rawPort = Symbol('_rawPort');
 const _controller = Symbol('_controller');
-const _add = Symbol('_add');
+const _add$ = Symbol('_add');
 const _closeUnchecked = Symbol('_closeUnchecked');
 const _addError = Symbol('_addError');
 const _completeError = Symbol('_completeError');
@@ -10313,7 +10314,7 @@
     static fromFuture(future) {
       let controller = _StreamControllerOfT()._check(StreamControllerOfT().new({sync: true}));
       future.then(dart.dynamic)(dart.fn(value => {
-        controller[_add](value);
+        controller[_add$](value);
         controller[_closeUnchecked]();
       }, TToNull()), {onError: dart.fn((error, stackTrace) => {
           controller[_addError](error, core.StackTrace._check(stackTrace));
@@ -10326,7 +10327,7 @@
       let count = 0;
       let onValue = dart.fn(value => {
         if (!dart.test(controller.isClosed)) {
-          controller[_add](value);
+          controller[_add$](value);
           if (--count == 0) controller[_closeUnchecked]();
         }
       }, TToNull());
@@ -10367,14 +10368,14 @@
         }
         controller.add(data);
       }
-      dart.fn(sendEvent, VoidTovoid());
+      dart.fn(sendEvent, VoidTovoid$());
       function startPeriodicTimer() {
         dart.assert(timer == null);
         timer = async.Timer.periodic(period, dart.fn(timer => {
           sendEvent();
         }, TimerToNull()));
       }
-      dart.fn(startPeriodicTimer, VoidTovoid());
+      dart.fn(startPeriodicTimer, VoidTovoid$());
       controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
           watch.start();
           startPeriodicTimer();
@@ -10443,7 +10444,7 @@
             }
           }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
         }).bind(this);
-        dart.fn(onListen, VoidTovoid());
+        dart.fn(onListen, VoidTovoid$());
         if (dart.test(this.isBroadcast)) {
           controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
               subscription.cancel();
@@ -10483,7 +10484,7 @@
             }
           }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
         }).bind(this);
-        dart.fn(onListen, VoidTovoid());
+        dart.fn(onListen, VoidTovoid$());
         if (dart.test(this.isBroadcast)) {
           controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
               subscription.cancel();
@@ -10586,7 +10587,7 @@
 
       }, TToNull()), {onError: dart.fn(e => {
           result[_completeError](e);
-        }, dynamicToNull()), onDone: dart.fn(() => {
+        }, dynamicToNull$()), onDone: dart.fn(() => {
           result[_complete](buffer.toString());
         }, VoidToNull()), cancelOnError: true});
       return result;
@@ -10609,8 +10610,8 @@
       let future = new async._Future();
       let subscription = null;
       subscription = this.listen(dart.fn(element => {
-        async._runUserCode(dart.fn(() => action(element), VoidTovoid()), dart.fn(_ => {
-        }, dynamicToNull()), async._cancelAndErrorClosure(subscription, future));
+        async._runUserCode(dart.fn(() => action(element), VoidTovoid$()), dart.fn(_ => {
+        }, dynamicToNull$()), async._cancelAndErrorClosure(subscription, future));
       }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](null);
         }, VoidToNull()), cancelOnError: true});
@@ -10912,7 +10913,7 @@
         timer.cancel();
         controller.close();
       }
-      dart.fn(onDone, VoidTovoid());
+      dart.fn(onDone, VoidTovoid$());
       const onListen = (function() {
         zone = async.Zone.current;
         if (onTimeout == null) {
@@ -10931,7 +10932,7 @@
         subscription = this.listen(onData, {onError: onError, onDone: onDone});
         timer = zone.createTimer(timeLimit, timeout);
       }).bind(this);
-      dart.fn(onListen, VoidTovoid());
+      dart.fn(onListen, VoidTovoid$());
       function onCancel() {
         timer.cancel();
         let result = subscription.cancel();
@@ -11066,7 +11067,7 @@
         this[_handle] = null;
         callback();
       }).bind(this);
-      dart.fn(internalCallback, VoidTovoid());
+      dart.fn(internalCallback, VoidTovoid$());
       this[_handle] = 1;
       _isolate_helper._globalState.topEventLoop.enqueue(_isolate_helper._globalState.currentContext, internalCallback, 'timer');
       this[_inEventLoop] = true;
@@ -11076,7 +11077,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }).bind(this);
-      dart.fn(internalCallback, VoidTovoid());
+      dart.fn(internalCallback, VoidTovoid$());
       _isolate_helper.enterJsAsync();
       this[_handle] = _isolate_helper.global.setTimeout(internalCallback, milliseconds);
     } else {
@@ -11176,17 +11177,17 @@
 _isolate_helper._serializeMessage = function(message) {
   return new _isolate_helper._Serializer().serialize(message);
 };
-dart.fn(_isolate_helper._serializeMessage, dynamicTodynamic());
+dart.fn(_isolate_helper._serializeMessage, dynamicTodynamic$());
 _isolate_helper._deserializeMessage = function(message) {
   return new _isolate_helper._Deserializer().deserialize(message);
 };
-dart.fn(_isolate_helper._deserializeMessage, dynamicTodynamic());
+dart.fn(_isolate_helper._deserializeMessage, dynamicTodynamic$());
 _isolate_helper._clone = function(message) {
   let serializer = new _isolate_helper._Serializer({serializeSendPorts: false});
   let deserializer = new _isolate_helper._Deserializer();
   return deserializer.deserialize(serializer.serialize(message));
 };
-dart.fn(_isolate_helper._clone, dynamicTodynamic());
+dart.fn(_isolate_helper._clone, dynamicTodynamic$());
 const _serializeSendPorts = Symbol('_serializeSendPorts');
 _isolate_helper._Serializer = class _Serializer extends core.Object {
   new(opts) {
@@ -11974,39 +11975,39 @@
   if (object == null) dart.throw(_js_helper.argumentErrorValue(object));
   return object;
 };
-dart.fn(_js_helper.checkNull, dynamicTodynamic());
+dart.fn(_js_helper.checkNull, dynamicTodynamic$());
 _js_helper.checkNum = function(value) {
   if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
   return value;
 };
-dart.fn(_js_helper.checkNum, dynamicTodynamic());
+dart.fn(_js_helper.checkNum, dynamicTodynamic$());
 _js_helper.checkInt = function(value) {
   if (!(typeof value == 'number')) dart.throw(_js_helper.argumentErrorValue(value));
   return value;
 };
-dart.fn(_js_helper.checkInt, dynamicTodynamic());
+dart.fn(_js_helper.checkInt, dynamicTodynamic$());
 _js_helper.checkBool = function(value) {
   if (!(typeof value == 'boolean')) dart.throw(_js_helper.argumentErrorValue(value));
   return value;
 };
-dart.fn(_js_helper.checkBool, dynamicTodynamic());
+dart.fn(_js_helper.checkBool, dynamicTodynamic$());
 _js_helper.checkString = function(value) {
   if (!(typeof value == 'string')) dart.throw(_js_helper.argumentErrorValue(value));
   return value;
 };
-dart.fn(_js_helper.checkString, dynamicTodynamic());
+dart.fn(_js_helper.checkString, dynamicTodynamic$());
 _js_helper.throwRuntimeError = function(message) {
   dart.throw(new _js_helper.RuntimeError(message));
 };
-dart.fn(_js_helper.throwRuntimeError, dynamicTodynamic());
+dart.fn(_js_helper.throwRuntimeError, dynamicTodynamic$());
 _js_helper.throwAbstractClassInstantiationError = function(className) {
   dart.throw(new core.AbstractClassInstantiationError(core.String._check(className)));
 };
-dart.fn(_js_helper.throwAbstractClassInstantiationError, dynamicTodynamic());
+dart.fn(_js_helper.throwAbstractClassInstantiationError, dynamicTodynamic$());
 _js_helper.throwConcurrentModificationError = function(collection) {
   dart.throw(new core.ConcurrentModificationError(collection));
 };
-dart.fn(_js_helper.throwConcurrentModificationError, dynamicTodynamic());
+dart.fn(_js_helper.throwConcurrentModificationError, dynamicTodynamic$());
 const _message = Symbol('_message');
 const _method = Symbol('_method');
 core.Error = class Error extends core.Object {
@@ -12156,7 +12157,7 @@
 _js_helper.getFallThroughError = function() {
   return new _js_helper.FallThroughErrorImplementation();
 };
-dart.fn(_js_helper.getFallThroughError, VoidTodynamic());
+dart.fn(_js_helper.getFallThroughError, VoidTodynamic$());
 _js_helper.Creates = class Creates extends core.Object {
   new(types) {
     this.types = types;
@@ -12328,22 +12329,22 @@
 _js_helper.jsonEncodeNative = function(string) {
   return JSON.stringify(string);
 };
-dart.lazyFn(_js_helper.jsonEncodeNative, () => StringToString());
+dart.lazyFn(_js_helper.jsonEncodeNative, () => StringToString$());
 const _jsIterator = Symbol('_jsIterator');
-const _current = Symbol('_current');
+const _current$0 = Symbol('_current');
 _js_helper.SyncIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   class SyncIterator extends core.Object {
     new(jsIterator) {
       this[_jsIterator] = jsIterator;
-      this[_current] = null;
+      this[_current$0] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$0];
     }
     moveNext() {
       let ret = this[_jsIterator].next();
-      this[_current] = ret.value;
+      this[_current$0] = ret.value;
       return !ret.done;
     }
   }
@@ -12353,7 +12354,7 @@
     constructors: () => ({new: dart.definiteFunctionType(_js_helper.SyncIterator$(E), [dart.dynamic])}),
     fields: () => ({
       [_jsIterator]: dart.dynamic,
-      [_current]: E
+      [_current$0]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -12497,7 +12498,7 @@
 dart.setSignature(_js_helper.SupportJsExtensionMethods, {
   constructors: () => ({new: dart.definiteFunctionType(_js_helper.SupportJsExtensionMethods, [])})
 });
-const _length = Symbol('_length');
+const _length$0 = Symbol('_length');
 const _strings = Symbol('_strings');
 const _nums = Symbol('_nums');
 const _rest = Symbol('_rest');
@@ -12533,7 +12534,7 @@
   let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
   class JsLinkedHashMap extends core.Object {
     new() {
-      this[_length] = 0;
+      this[_length$0] = 0;
       this[_strings] = null;
       this[_nums] = null;
       this[_rest] = null;
@@ -12545,10 +12546,10 @@
       return new (JsLinkedHashMapOfK$V())();
     }
     get length() {
-      return this[_length];
+      return this[_length$0];
     }
     get isEmpty() {
-      return this[_length] == 0;
+      return this[_length$0] == 0;
     }
     get isNotEmpty() {
       return !dart.test(this.isEmpty);
@@ -12676,9 +12677,9 @@
       return cell.hashMapCellValue;
     }
     clear() {
-      if (dart.notNull(this[_length]) > 0) {
+      if (dart.notNull(this[_length$0]) > 0) {
         this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last] = null;
-        this[_length] = 0;
+        this[_length$0] = 0;
         this[_modified]();
       }
     }
@@ -12725,7 +12726,7 @@
         cell[_previous] = last;
         this[_last] = last[_next] = cell;
       }
-      this[_length] = dart.notNull(this[_length]) + 1;
+      this[_length$0] = dart.notNull(this[_length$0]) + 1;
       this[_modified]();
       return cell;
     }
@@ -12745,7 +12746,7 @@
       } else {
         next[_previous] = previous;
       }
-      this[_length] = dart.notNull(this[_length]) - 1;
+      this[_length$0] = dart.notNull(this[_length$0]) - 1;
       this[_modified]();
     }
     static _isStringKey(key) {
@@ -12806,7 +12807,7 @@
       es6: dart.definiteFunctionType(_js_helper.JsLinkedHashMap$(K, V), [])
     }),
     fields: () => ({
-      [_length]: core.int,
+      [_length$0]: core.int,
       [_strings]: dart.dynamic,
       [_nums]: dart.dynamic,
       [_rest]: dart.dynamic,
@@ -12936,10 +12937,10 @@
       super.new();
     }
     get length() {
-      return this[_map][_length];
+      return this[_map][_length$0];
     }
     get isEmpty() {
-      return this[_map][_length] == 0;
+      return this[_map][_length$0] == 0;
     }
     get iterator() {
       return new (LinkedHashMapKeyIteratorOfE())(this[_map], this[_map][_modifications]);
@@ -12985,20 +12986,20 @@
       this[_map] = map;
       this[_modifications] = modifications;
       this[_cell] = null;
-      this[_current] = null;
+      this[_current$0] = null;
       this[_cell] = this[_map][_first];
     }
     get current() {
-      return this[_current];
+      return this[_current$0];
     }
     moveNext() {
       if (this[_modifications] != this[_map][_modifications]) {
         dart.throw(new core.ConcurrentModificationError(this[_map]));
       } else if (this[_cell] == null) {
-        this[_current] = null;
+        this[_current$0] = null;
         return false;
       } else {
-        this[_current] = this[_cell].hashMapCellKey;
+        this[_current$0] = this[_cell].hashMapCellKey;
         this[_cell] = this[_cell][_next];
         return true;
       }
@@ -13012,7 +13013,7 @@
       [_map]: JsLinkedHashMapOfE$dynamic(),
       [_modifications]: core.int,
       [_cell]: LinkedHashMapCellOfE$dynamic(),
-      [_current]: E
+      [_current$0]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -13032,13 +13033,13 @@
 dart.fn(_js_helper.convertDartClosureToJS, FAndintToF());
 _js_helper.setNativeSubclassDispatchRecord = function(proto, interceptor) {
 };
-dart.fn(_js_helper.setNativeSubclassDispatchRecord, dynamicAnddynamicTodynamic());
+dart.fn(_js_helper.setNativeSubclassDispatchRecord, dynamicAnddynamicTodynamic$());
 _js_helper.findDispatchTagForInterceptorClass = function(interceptorClassConstructor) {
 };
-dart.fn(_js_helper.findDispatchTagForInterceptorClass, dynamicTodynamic());
+dart.fn(_js_helper.findDispatchTagForInterceptorClass, dynamicTodynamic$());
 _js_helper.makeLeafDispatchRecord = function(interceptor) {
 };
-dart.fn(_js_helper.makeLeafDispatchRecord, dynamicTodynamic());
+dart.fn(_js_helper.makeLeafDispatchRecord, dynamicTodynamic$());
 const _nativeRegExp = Symbol('_nativeRegExp');
 _js_helper.regExpGetNative = function(regexp) {
   return regexp[_nativeRegExp];
@@ -13243,18 +13244,18 @@
   })
 });
 const _re = Symbol('_re');
-const _string = Symbol('_string');
-const _start = Symbol('_start');
+const _string$ = Symbol('_string');
+const _start$ = Symbol('_start');
 core.Match = class Match extends core.Object {};
 _js_helper._AllMatchesIterable = class _AllMatchesIterable extends collection.IterableBase$(core.Match) {
   new(re, string, start) {
     this[_re] = re;
-    this[_string] = string;
-    this[_start] = start;
+    this[_string$] = string;
+    this[_start$] = start;
     super.new();
   }
   get iterator() {
-    return new _js_helper._AllMatchesIterator(this[_re], this[_string], this[_start]);
+    return new _js_helper._AllMatchesIterator(this[_re], this[_string$], this[_start$]);
   }
 };
 dart.addSimpleTypeTests(_js_helper._AllMatchesIterable);
@@ -13262,8 +13263,8 @@
   constructors: () => ({new: dart.definiteFunctionType(_js_helper._AllMatchesIterable, [_js_helper.JSSyntaxRegExp, core.String, core.int])}),
   fields: () => ({
     [_re]: _js_helper.JSSyntaxRegExp,
-    [_string]: core.String,
-    [_start]: core.int
+    [_string$]: core.String,
+    [_start$]: core.int
   }),
   getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(core.Match), [])})
 });
@@ -13273,19 +13274,19 @@
 _js_helper._AllMatchesIterator = class _AllMatchesIterator extends core.Object {
   new(regExp, string, nextIndex) {
     this[_regExp] = regExp;
-    this[_string] = string;
+    this[_string$] = string;
     this[_nextIndex] = nextIndex;
-    this[_current] = null;
+    this[_current$0] = null;
   }
   get current() {
-    return this[_current];
+    return this[_current$0];
   }
   moveNext() {
-    if (this[_string] == null) return false;
-    if (dart.notNull(this[_nextIndex]) <= dart.notNull(this[_string][dartx.length])) {
-      let match = this[_regExp][_execGlobal](this[_string], this[_nextIndex]);
+    if (this[_string$] == null) return false;
+    if (dart.notNull(this[_nextIndex]) <= dart.notNull(this[_string$][dartx.length])) {
+      let match = this[_regExp][_execGlobal](this[_string$], this[_nextIndex]);
       if (match != null) {
-        this[_current] = match;
+        this[_current$0] = match;
         let nextIndex = match.end;
         if (match.start == nextIndex) {
           nextIndex = dart.notNull(nextIndex) + 1;
@@ -13294,8 +13295,8 @@
         return true;
       }
     }
-    this[_current] = null;
-    this[_string] = null;
+    this[_current$0] = null;
+    this[_string$] = null;
     return false;
   }
 };
@@ -13304,9 +13305,9 @@
   constructors: () => ({new: dart.definiteFunctionType(_js_helper._AllMatchesIterator, [_js_helper.JSSyntaxRegExp, core.String, core.int])}),
   fields: () => ({
     [_regExp]: _js_helper.JSSyntaxRegExp,
-    [_string]: core.String,
+    [_string$]: core.String,
     [_nextIndex]: core.int,
-    [_current]: core.Match
+    [_current$0]: core.Match
   }),
   getters: () => ({current: dart.definiteFunctionType(core.Match, [])}),
   methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -13384,19 +13385,19 @@
 dart.lazyFn(_js_helper.allMatchesInStringUnchecked, () => StringAndStringAndintToIterableOfMatch());
 const _input = Symbol('_input');
 const _pattern = Symbol('_pattern');
-const _index = Symbol('_index');
+const _index$0 = Symbol('_index');
 _js_helper._StringAllMatchesIterable = class _StringAllMatchesIterable extends core.Iterable$(core.Match) {
   new(input, pattern, index) {
     this[_input] = input;
     this[_pattern] = pattern;
-    this[_index] = index;
+    this[_index$0] = index;
     super.new();
   }
   get iterator() {
-    return new _js_helper._StringAllMatchesIterator(this[_input], this[_pattern], this[_index]);
+    return new _js_helper._StringAllMatchesIterator(this[_input], this[_pattern], this[_index$0]);
   }
   get first() {
-    let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index]);
+    let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index$0]);
     if (dart.notNull(index) >= 0) {
       return new _js_helper.StringMatch(index, this[_input], this[_pattern]);
     }
@@ -13409,7 +13410,7 @@
   fields: () => ({
     [_input]: core.String,
     [_pattern]: core.String,
-    [_index]: core.int
+    [_index$0]: core.int
   }),
   getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(core.Match), [])})
 });
@@ -13418,28 +13419,28 @@
   new(input, pattern, index) {
     this[_input] = input;
     this[_pattern] = pattern;
-    this[_index] = index;
-    this[_current] = null;
+    this[_index$0] = index;
+    this[_current$0] = null;
   }
   moveNext() {
-    if (dart.notNull(this[_index]) + dart.notNull(this[_pattern][dartx.length]) > dart.notNull(this[_input][dartx.length])) {
-      this[_current] = null;
+    if (dart.notNull(this[_index$0]) + dart.notNull(this[_pattern][dartx.length]) > dart.notNull(this[_input][dartx.length])) {
+      this[_current$0] = null;
       return false;
     }
-    let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index]);
+    let index = _js_helper.stringIndexOfStringUnchecked(this[_input], this[_pattern], this[_index$0]);
     if (dart.notNull(index) < 0) {
-      this[_index] = dart.notNull(this[_input][dartx.length]) + 1;
-      this[_current] = null;
+      this[_index$0] = dart.notNull(this[_input][dartx.length]) + 1;
+      this[_current$0] = null;
       return false;
     }
     let end = dart.notNull(index) + dart.notNull(this[_pattern][dartx.length]);
-    this[_current] = new _js_helper.StringMatch(index, this[_input], this[_pattern]);
-    if (end == this[_index]) end++;
-    this[_index] = end;
+    this[_current$0] = new _js_helper.StringMatch(index, this[_input], this[_pattern]);
+    if (end == this[_index$0]) end++;
+    this[_index$0] = end;
     return true;
   }
   get current() {
-    return this[_current];
+    return this[_current$0];
   }
 };
 _js_helper._StringAllMatchesIterator[dart.implements] = () => [IteratorOfMatch()];
@@ -13448,8 +13449,8 @@
   fields: () => ({
     [_input]: core.String,
     [_pattern]: core.String,
-    [_index]: core.int,
-    [_current]: core.Match
+    [_index$0]: core.int,
+    [_current$0]: core.Match
   }),
   getters: () => ({current: dart.definiteFunctionType(core.Match, [])}),
   methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -13515,11 +13516,11 @@
 _js_helper._matchString = function(match) {
   return match._get(0);
 };
-dart.lazyFn(_js_helper._matchString, () => MatchToString());
+dart.lazyFn(_js_helper._matchString, () => MatchToString$());
 _js_helper._stringIdentity = function(string) {
   return string;
 };
-dart.lazyFn(_js_helper._stringIdentity, () => StringToString());
+dart.lazyFn(_js_helper._stringIdentity, () => StringToString$());
 _js_helper.stringReplaceAllFuncUnchecked = function(receiver, pattern, onMatch, onNonMatch) {
   if (onMatch == null) onMatch = _js_helper._matchString;
   if (onNonMatch == null) onNonMatch = _js_helper._stringIdentity;
@@ -13609,7 +13610,7 @@
   let replacement = dart.str`${replace(match)}`;
   return receiver[dartx.replaceRange](match.start, match.end, replacement);
 };
-dart.lazyFn(_js_helper.stringReplaceFirstMappedUnchecked, () => StringAndPatternAndFn__ToString());
+dart.lazyFn(_js_helper.stringReplaceFirstMappedUnchecked, () => StringAndPatternAndFn__ToString$());
 _js_helper.stringJoinUnchecked = function(array, separator) {
   return array.join(separator);
 };
@@ -13637,7 +13638,7 @@
 _js_helper.isJsArray = function(value) {
   return _interceptors.JSArray.is(value);
 };
-dart.lazyFn(_js_helper.isJsArray, () => dynamicTobool());
+dart.lazyFn(_js_helper.isJsArray, () => dynamicTobool$());
 _js_mirrors.getName = function(symbol) {
   return _internal.Symbol.getName(_internal.Symbol.as(symbol));
 };
@@ -13699,19 +13700,19 @@
 _js_mirrors._getGenericClass = function(obj) {
   return _js_mirrors._dart.getGenericClass(obj);
 };
-dart.fn(_js_mirrors._getGenericClass, dynamicTodynamic());
+dart.fn(_js_mirrors._getGenericClass, dynamicTodynamic$());
 _js_mirrors._getGenericArgs = function(obj) {
   return _js_mirrors._dart.getGenericArgs(obj);
 };
-dart.fn(_js_mirrors._getGenericArgs, dynamicTodynamic());
+dart.fn(_js_mirrors._getGenericArgs, dynamicTodynamic$());
 _js_mirrors._defaultConstructorType = function(type) {
   return _js_mirrors._dart.definiteFunctionType(type, []);
 };
-dart.fn(_js_mirrors._defaultConstructorType, dynamicTodynamic());
+dart.fn(_js_mirrors._defaultConstructorType, dynamicTodynamic$());
 _js_mirrors._getMixins = function(type) {
   return _js_mirrors._dart.getMixins(type, []);
 };
-dart.fn(_js_mirrors._getMixins, dynamicTodynamic());
+dart.fn(_js_mirrors._getMixins, dynamicTodynamic$());
 _js_mirrors._Lazy$ = dart.generic(T => {
   const _Lazy = dart.typedef('_Lazy', () => dart.functionType(T, []));
   return _Lazy;
@@ -13838,15 +13839,15 @@
 _js_mirrors._unwrap = function(obj) {
   return _js_mirrors._dart.unwrapType(obj);
 };
-dart.fn(_js_mirrors._unwrap, dynamicTodynamic());
+dart.fn(_js_mirrors._unwrap, dynamicTodynamic$());
 _js_mirrors._wrap = function(obj) {
   return _js_mirrors._dart.wrapType(obj);
 };
-dart.fn(_js_mirrors._wrap, dynamicTodynamic());
+dart.fn(_js_mirrors._wrap, dynamicTodynamic$());
 _js_mirrors._runtimeType = function(obj) {
   return _js_mirrors._wrap(_js_mirrors._dart.getReifiedType(obj));
 };
-dart.fn(_js_mirrors._runtimeType, dynamicTodynamic());
+dart.fn(_js_mirrors._runtimeType, dynamicTodynamic$());
 _js_mirrors._unimplemented = function(t, i) {
   dart.throw(new core.UnimplementedError(dart.str`${t}.${_js_mirrors.getName(i.memberName)} unimplemented`));
 };
@@ -14045,22 +14046,22 @@
   constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsClosureMirror, [dart.dynamic])}),
   methods: () => ({apply: dart.definiteFunctionType(mirrors.InstanceMirror, [core.List], [MapOfSymbol$dynamic()])})
 });
-const _metadata = Symbol('_metadata');
+const _metadata$ = Symbol('_metadata');
 const _cls = Symbol('_cls');
-let const;
+let const$0;
 const _declarations = Symbol('_declarations');
 const _raw = Symbol('_raw');
 const _mixin = Symbol('_mixin');
 const _typeArguments = Symbol('_typeArguments');
-let const;
+let const$1;
 _js_mirrors.JsClassMirror = class JsClassMirror extends _js_mirrors.JsMirror {
   get metadata() {
-    if (this[_metadata] == null) {
+    if (this[_metadata$] == null) {
       let unwrapped = _js_mirrors._unwrap(this[_cls]);
       let fn = Object.hasOwnProperty.call(unwrapped, dart.metadata) ? unwrapped[dart.metadata] : null;
-      this[_metadata] = fn == null ? const || (const = dart.constList([], mirrors.InstanceMirror)) : ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dcall(fn), 'map', dart.fn(i => _js_mirrors.reflect(i), dynamicToInstanceMirror()))));
+      this[_metadata$] = fn == null ? const$0 || (const$0 = dart.constList([], mirrors.InstanceMirror)) : ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dcall(fn), 'map', dart.fn(i => _js_mirrors.reflect(i), dynamicToInstanceMirror()))));
     }
-    return this[_metadata];
+    return this[_metadata$];
   }
   get declarations() {
     if (this[_declarations] == null) {
@@ -14137,11 +14138,11 @@
     this.simpleName = core.Symbol.new(_js_mirrors._unwrap(cls).name);
     this[_mixin] = null;
     this[_typeArguments] = null;
-    this[_metadata] = null;
+    this[_metadata$] = null;
     this[_declarations] = null;
     let typeArgs = _js_mirrors._getGenericArgs(_js_mirrors._unwrap(cls));
     if (typeArgs == null) {
-      this[_typeArguments] = const || (const = dart.constList([], mirrors.TypeMirror));
+      this[_typeArguments] = const$1 || (const$1 = dart.constList([], mirrors.TypeMirror));
     } else {
       this[_typeArguments] = ListOfTypeMirror().unmodifiable(core.Iterable._check(dart.dsend(typeArgs, 'map', dart.fn(t => _js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(t))), dynamicToTypeMirror()))));
     }
@@ -14271,7 +14272,7 @@
     [_raw]: dart.dynamic,
     [_mixin]: mirrors.ClassMirror,
     [_typeArguments]: ListOfTypeMirror(),
-    [_metadata]: ListOfInstanceMirror(),
+    [_metadata$]: ListOfInstanceMirror(),
     [_declarations]: MapOfSymbol$DeclarationMirror()
   }),
   getters: () => ({
@@ -14294,21 +14295,21 @@
   })
 });
 const _symbol = Symbol('_symbol');
-const _name = Symbol('_name');
+const _name$0 = Symbol('_name');
 _js_mirrors.JsVariableMirror = class JsVariableMirror extends _js_mirrors.JsMirror {
   get simpleName() {
     return this[_symbol];
   }
   _(symbol, t, annotations) {
     this[_symbol] = symbol;
-    this[_name] = _js_mirrors.getName(symbol);
+    this[_name$0] = _js_mirrors.getName(symbol);
     this.type = _js_mirrors.reflectType(t);
     this.metadata = ListOfInstanceMirror().unmodifiable(annotations[dartx.map](mirrors.InstanceMirror)(dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror())));
     this.isStatic = false;
     this.isFinal = false;
   }
   toString() {
-    return dart.str`VariableMirror on '${this[_name]}'`;
+    return dart.str`VariableMirror on '${this[_name$0]}'`;
   }
   get qualifiedName() {
     return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
@@ -14335,7 +14336,7 @@
   constructors: () => ({_: dart.definiteFunctionType(_js_mirrors.JsVariableMirror, [core.Symbol, core.Type, core.List])}),
   fields: () => ({
     [_symbol]: core.Symbol,
-    [_name]: core.String,
+    [_name$0]: core.String,
     type: mirrors.TypeMirror,
     metadata: ListOfInstanceMirror(),
     isStatic: core.bool,
@@ -14348,7 +14349,7 @@
     super._(member, t, annotations);
   }
   toString() {
-    return dart.str`ParameterMirror on '${this[_name]}'`;
+    return dart.str`ParameterMirror on '${this[_name$0]}'`;
   }
   get qualifiedName() {
     return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
@@ -14388,46 +14389,46 @@
 });
 const _params = Symbol('_params');
 const _createParameterMirrorList = Symbol('_createParameterMirrorList');
-let const;
-let const;
-let const;
+let const$2;
+let const$3;
+let const$4;
 _js_mirrors.JsMethodMirror = class JsMethodMirror extends _js_mirrors.JsMirror {
   get isSetter() {
-    return this[_name][dartx.endsWith]('=');
+    return this[_name$0][dartx.endsWith]('=');
   }
   get isPrivate() {
-    return this[_name][dartx.startsWith]('_');
+    return this[_name$0][dartx.startsWith]('_');
   }
   get simpleName() {
     return this[_symbol];
   }
   _constructor(cls, symbol, ftype) {
     this[_symbol] = symbol;
-    this[_name] = _js_mirrors.getName(symbol);
+    this[_name$0] = _js_mirrors.getName(symbol);
     this.isConstructor = true;
     this.isStatic = false;
     this[_params] = null;
-    this[_metadata] = null;
+    this[_metadata$] = null;
     this.isFinal = false;
     this[_createParameterMirrorList](ftype);
   }
   _instanceMethod(cls, symbol, ftype) {
     this[_symbol] = symbol;
-    this[_name] = _js_mirrors.getName(symbol);
+    this[_name$0] = _js_mirrors.getName(symbol);
     this.isConstructor = false;
     this.isStatic = false;
     this[_params] = null;
-    this[_metadata] = null;
+    this[_metadata$] = null;
     this.isFinal = false;
     this[_createParameterMirrorList](ftype);
   }
   _staticMethod(cls, symbol, ftype) {
     this[_symbol] = symbol;
-    this[_name] = _js_mirrors.getName(symbol);
+    this[_name$0] = _js_mirrors.getName(symbol);
     this.isConstructor = false;
     this.isStatic = true;
     this[_params] = null;
-    this[_metadata] = null;
+    this[_metadata$] = null;
     this.isFinal = false;
     this[_createParameterMirrorList](ftype);
   }
@@ -14438,19 +14439,19 @@
     return this[_params];
   }
   get metadata() {
-    return this[_metadata];
+    return this[_metadata$];
   }
   [_createParameterMirrorList](ftype) {
     if (ftype == null) {
-      this[_params] = const || (const = dart.constList([], mirrors.ParameterMirror));
-      this[_metadata] = const || (const = dart.constList([], mirrors.InstanceMirror));
+      this[_params] = const$2 || (const$2 = dart.constList([], mirrors.ParameterMirror));
+      this[_metadata$] = const$3 || (const$3 = dart.constList([], mirrors.InstanceMirror));
       return;
     }
     if (!core.Function.is(ftype) && core.List.is(ftype)) {
-      this[_metadata] = ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dsend(ftype, 'skip', 1), 'map', dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror()))));
+      this[_metadata$] = ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dsend(ftype, 'skip', 1), 'map', dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror()))));
       ftype = dart.dindex(ftype, 0);
     } else {
-      this[_metadata] = const || (const = dart.constList([], mirrors.InstanceMirror));
+      this[_metadata$] = const$4 || (const$4 = dart.constList([], mirrors.InstanceMirror));
     }
     if (typeof ftype == "function") {
       ftype = ftype.apply(null, JSArrayOfType().of([dart.dynamic, dart.dynamic, dart.dynamic]));
@@ -14473,7 +14474,7 @@
     this[_params] = ListOfParameterMirror().unmodifiable(params);
   }
   toString() {
-    return dart.str`MethodMirror on '${this[_name]}'`;
+    return dart.str`MethodMirror on '${this[_name$0]}'`;
   }
   get qualifiedName() {
     return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
@@ -14533,9 +14534,9 @@
   }),
   fields: () => ({
     [_symbol]: core.Symbol,
-    [_name]: core.String,
+    [_name$0]: core.String,
     [_params]: ListOfParameterMirror(),
-    [_metadata]: ListOfInstanceMirror(),
+    [_metadata$]: ListOfInstanceMirror(),
     isConstructor: core.bool,
     isStatic: core.bool,
     isFinal: core.bool
@@ -14568,7 +14569,7 @@
   }
   throw "Unable to print message: " + String(string);
 };
-dart.lazyFn(_js_primitives.printString, () => StringTovoid());
+dart.lazyFn(_js_primitives.printString, () => StringTovoid$());
 _metadata.SupportedBrowser = class SupportedBrowser extends core.Object {
   new(browserName, minimumVersion) {
     if (minimumVersion === void 0) minimumVersion = null;
@@ -17773,7 +17774,7 @@
   statics: () => ({_getBestStackTrace: dart.definiteFunctionType(core.StackTrace, [dart.dynamic, core.StackTrace])}),
   names: ['_getBestStackTrace']
 });
-const _controller = Symbol('_controller');
+const _controller$ = Symbol('_controller');
 const _subscribe = Symbol('_subscribe');
 const _createSubscription = Symbol('_createSubscription');
 const _onListen = Symbol('_onListen');
@@ -17813,25 +17814,25 @@
   let _StreamControllerLifecycleOfT = () => (_StreamControllerLifecycleOfT = dart.constFn(async._StreamControllerLifecycle$(T)))();
   class _ControllerStream extends async._StreamImpl$(T) {
     new(controller) {
-      this[_controller] = controller;
+      this[_controller$] = controller;
       super.new();
     }
     [_createSubscription](onData, onError, onDone, cancelOnError) {
-      return this[_controller][_subscribe](onData, onError, onDone, cancelOnError);
+      return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
     }
     get hashCode() {
-      return (dart.notNull(dart.hashCode(this[_controller])) ^ 892482866) >>> 0;
+      return (dart.notNull(dart.hashCode(this[_controller$])) ^ 892482866) >>> 0;
     }
     ['=='](other) {
       if (core.identical(this, other)) return true;
       if (!async._ControllerStream.is(other)) return false;
       let otherStream = async._ControllerStream._check(other);
-      return core.identical(otherStream[_controller], this[_controller]);
+      return core.identical(otherStream[_controller$], this[_controller$]);
     }
   }
   dart.setSignature(_ControllerStream, {
     constructors: () => ({new: dart.definiteFunctionType(async._ControllerStream$(T), [_StreamControllerLifecycleOfT()])}),
-    fields: () => ({[_controller]: _StreamControllerLifecycleOfT()}),
+    fields: () => ({[_controller$]: _StreamControllerLifecycleOfT()}),
     methods: () => ({'==': dart.definiteFunctionType(core.bool, [core.Object])})
   });
   return _ControllerStream;
@@ -17854,8 +17855,8 @@
 });
 async._BroadcastStream = _BroadcastStream();
 const _eventState = Symbol('_eventState');
-const _next = Symbol('_next');
-const _previous = Symbol('_previous');
+const _next$ = Symbol('_next');
+const _previous$ = Symbol('_previous');
 const _expectsEvent = Symbol('_expectsEvent');
 const _toggleEventId = Symbol('_toggleEventId');
 const _isFiring = Symbol('_isFiring');
@@ -17884,7 +17885,7 @@
 const _hasPending = Symbol('_hasPending');
 const _mayResumeInput = Symbol('_mayResumeInput');
 const _cancel = Symbol('_cancel');
-const _isClosed = Symbol('_isClosed');
+const _isClosed$ = Symbol('_isClosed');
 const _waitsForCancel = Symbol('_waitsForCancel');
 const _canFire = Symbol('_canFire');
 const _cancelOnError = Symbol('_cancelOnError');
@@ -17893,8 +17894,8 @@
 const _addPending = Symbol('_addPending');
 const _sendError = Symbol('_sendError');
 const _sendDone = Symbol('_sendDone');
-let const;
-const _close = Symbol('_close');
+let const$5;
+const _close$ = Symbol('_close');
 const _checkState = Symbol('_checkState');
 async._BufferingStreamSubscription$ = dart.generic(T => {
   let _PendingEventsOfT = () => (_PendingEventsOfT = dart.constFn(async._PendingEvents$(T)))();
@@ -17987,7 +17988,7 @@
     get [_isInputPaused]() {
       return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_INPUT_PAUSED) != 0;
     }
-    get [_isClosed]() {
+    get [_isClosed$]() {
       return (dart.notNull(this[_state]) & async._BufferingStreamSubscription._STATE_CLOSED) != 0;
     }
     get [_isCanceled]() {
@@ -18032,9 +18033,9 @@
       dart.assert(this[_isPaused]);
       this[_state] = dart.notNull(this[_state]) - async._BufferingStreamSubscription._STATE_PAUSE_COUNT;
     }
-    [_add](data) {
+    [_add$](data) {
       T._check(data);
-      dart.assert(!dart.test(this[_isClosed]));
+      dart.assert(!dart.test(this[_isClosed$]));
       if (dart.test(this[_isCanceled])) return;
       if (dart.test(this[_canFire])) {
         this[_sendData](data);
@@ -18050,14 +18051,14 @@
         this[_addPending](new async._DelayedError(error, stackTrace));
       }
     }
-    [_close]() {
-      dart.assert(!dart.test(this[_isClosed]));
+    [_close$]() {
+      dart.assert(!dart.test(this[_isClosed$]));
       if (dart.test(this[_isCanceled])) return;
       this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_CLOSED) >>> 0;
       if (dart.test(this[_canFire])) {
         this[_sendDone]();
       } else {
-        this[_addPending](const || (const = dart.const(new async._DelayedDone())));
+        this[_addPending](const$5 || (const$5 = dart.const(new async._DelayedDone())));
       }
     }
     [_onPause]() {
@@ -18110,7 +18111,7 @@
         }
         this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
       }).bind(this);
-      dart.fn(sendError, VoidTovoid());
+      dart.fn(sendError, VoidTovoid$());
       if (dart.test(this[_cancelOnError])) {
         this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
         this[_cancel]();
@@ -18134,7 +18135,7 @@
         this[_zone].runGuarded(dart.void)(this[_onDone]);
         this[_state] = (dart.notNull(this[_state]) & ~async._BufferingStreamSubscription._STATE_IN_CALLBACK) >>> 0;
       }).bind(this);
-      dart.fn(sendDone, VoidTovoid());
+      dart.fn(sendDone, VoidTovoid$());
       this[_cancel]();
       this[_state] = (dart.notNull(this[_state]) | async._BufferingStreamSubscription._STATE_WAIT_FOR_CANCEL) >>> 0;
       if (async.Future.is(this[_cancelFuture])) {
@@ -18195,7 +18196,7 @@
     }),
     getters: () => ({
       [_isInputPaused]: dart.definiteFunctionType(core.bool, []),
-      [_isClosed]: dart.definiteFunctionType(core.bool, []),
+      [_isClosed$]: dart.definiteFunctionType(core.bool, []),
       [_isCanceled]: dart.definiteFunctionType(core.bool, []),
       [_waitsForCancel]: dart.definiteFunctionType(core.bool, []),
       [_inCallback]: dart.definiteFunctionType(core.bool, []),
@@ -18218,9 +18219,9 @@
       [_cancel]: dart.definiteFunctionType(dart.void, []),
       [_incrementPauseCount]: dart.definiteFunctionType(dart.void, []),
       [_decrementPauseCount]: dart.definiteFunctionType(dart.void, []),
-      [_add]: dart.definiteFunctionType(dart.void, [T]),
+      [_add$]: dart.definiteFunctionType(dart.void, [T]),
       [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-      [_close]: dart.definiteFunctionType(dart.void, []),
+      [_close$]: dart.definiteFunctionType(dart.void, []),
       [_onPause]: dart.definiteFunctionType(dart.void, []),
       [_onResume]: dart.definiteFunctionType(dart.void, []),
       [_onCancel]: dart.definiteFunctionType(async.Future, []),
@@ -18260,22 +18261,22 @@
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   class _ControllerSubscription extends async._BufferingStreamSubscription$(T) {
     new(controller, onData, onError, onDone, cancelOnError) {
-      this[_controller] = controller;
+      this[_controller$] = controller;
       super.new(onData, onError, onDone, cancelOnError);
     }
     [_onCancel]() {
-      return this[_controller][_recordCancel](this);
+      return this[_controller$][_recordCancel](this);
     }
     [_onPause]() {
-      this[_controller][_recordPause](this);
+      this[_controller$][_recordPause](this);
     }
     [_onResume]() {
-      this[_controller][_recordResume](this);
+      this[_controller$][_recordResume](this);
     }
   }
   dart.setSignature(_ControllerSubscription, {
     constructors: () => ({new: dart.definiteFunctionType(async._ControllerSubscription$(T), [_StreamControllerLifecycleOfT(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
-    fields: () => ({[_controller]: _StreamControllerLifecycleOfT()})
+    fields: () => ({[_controller$]: _StreamControllerLifecycleOfT()})
   });
   return _ControllerSubscription;
 });
@@ -18287,10 +18288,10 @@
   class _BroadcastSubscription extends async._ControllerSubscription$(T) {
     new(controller, onData, onError, onDone, cancelOnError) {
       this[_eventState] = 0;
-      this[_next] = null;
-      this[_previous] = null;
+      this[_next$] = null;
+      this[_previous$] = null;
       super.new(controller, onData, onError, onDone, cancelOnError);
-      this[_next] = this[_previous] = this;
+      this[_next$] = this[_previous$] = this;
     }
     [_expectsEvent](eventId) {
       return (dart.notNull(this[_eventState]) & async._BroadcastSubscription._STATE_EVENT_ID) == eventId;
@@ -18315,8 +18316,8 @@
     constructors: () => ({new: dart.definiteFunctionType(async._BroadcastSubscription$(T), [_StreamControllerLifecycleOfT(), TTovoid(), core.Function, VoidTovoid(), core.bool])}),
     fields: () => ({
       [_eventState]: core.int,
-      [_next]: _BroadcastSubscriptionOfT(),
-      [_previous]: _BroadcastSubscriptionOfT()
+      [_next$]: _BroadcastSubscriptionOfT(),
+      [_previous$]: _BroadcastSubscriptionOfT()
     }),
     getters: () => ({
       [_isFiring]: dart.definiteFunctionType(core.bool, []),
@@ -18429,35 +18430,35 @@
     }
     [_addListener](subscription) {
       _BroadcastSubscriptionOfT()._check(subscription);
-      dart.assert(core.identical(subscription[_next], subscription));
+      dart.assert(core.identical(subscription[_next$], subscription));
       subscription[_eventState] = dart.notNull(this[_state]) & async._BroadcastStreamController._STATE_EVENT_ID;
       let oldLast = this[_lastSubscription];
       this[_lastSubscription] = subscription;
-      subscription[_next] = null;
-      subscription[_previous] = oldLast;
+      subscription[_next$] = null;
+      subscription[_previous$] = oldLast;
       if (oldLast == null) {
         this[_firstSubscription] = subscription;
       } else {
-        oldLast[_next] = subscription;
+        oldLast[_next$] = subscription;
       }
     }
     [_removeListener](subscription) {
       _BroadcastSubscriptionOfT()._check(subscription);
-      dart.assert(core.identical(subscription[_controller], this));
-      dart.assert(!core.identical(subscription[_next], subscription));
-      let previous = subscription[_previous];
-      let next = subscription[_next];
+      dart.assert(core.identical(subscription[_controller$], this));
+      dart.assert(!core.identical(subscription[_next$], subscription));
+      let previous = subscription[_previous$];
+      let next = subscription[_next$];
       if (previous == null) {
         this[_firstSubscription] = next;
       } else {
-        previous[_next] = next;
+        previous[_next$] = next;
       }
       if (next == null) {
         this[_lastSubscription] = previous;
       } else {
-        next[_previous] = previous;
+        next[_previous$] = previous;
       }
-      subscription[_next] = subscription[_previous] = subscription;
+      subscription[_next$] = subscription[_previous$] = subscription;
     }
     [_subscribe](onData, onError, onDone, cancelOnError) {
       if (dart.test(this.isClosed)) {
@@ -18474,7 +18475,7 @@
     [_recordCancel](sub) {
       StreamSubscriptionOfT()._check(sub);
       let subscription = _BroadcastSubscriptionOfT()._check(sub);
-      if (core.identical(subscription[_next], subscription)) return null;
+      if (core.identical(subscription[_next$], subscription)) return null;
       if (dart.test(subscription[_isFiring])) {
         subscription[_setRemoveAfterFiring]();
       } else {
@@ -18536,14 +18537,14 @@
       this[_addStreamState] = new (_AddStreamStateOfT())(this, stream, cancelOnError);
       return this[_addStreamState].addStreamFuture;
     }
-    [_add](data) {
+    [_add$](data) {
       T._check(data);
       this[_sendData](data);
     }
     [_addError](error, stackTrace) {
       this[_sendError](error, stackTrace);
     }
-    [_close]() {
+    [_close$]() {
       dart.assert(this[_isAddingStream]);
       let addState = this[_addStreamState];
       this[_addStreamState] = null;
@@ -18563,14 +18564,14 @@
           subscription[_eventState] = (dart.notNull(subscription[_eventState]) | async._BroadcastSubscription._STATE_FIRING) >>> 0;
           action(subscription);
           subscription[_toggleEventId]();
-          let next = subscription[_next];
+          let next = subscription[_next$];
           if (dart.test(subscription[_removeAfterFiring])) {
             this[_removeListener](subscription);
           }
           subscription[_eventState] = (dart.notNull(subscription[_eventState]) & ~async._BroadcastSubscription._STATE_FIRING) >>> 0;
           subscription = next;
         } else {
-          subscription = subscription[_next];
+          subscription = subscription[_next$];
         }
       }
       this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_FIRING) >>> 0;
@@ -18631,9 +18632,9 @@
       addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
       close: dart.definiteFunctionType(async.Future, []),
       addStream: dart.definiteFunctionType(async.Future, [StreamOfT()], {cancelOnError: core.bool}),
-      [_add]: dart.definiteFunctionType(dart.void, [T]),
+      [_add$]: dart.definiteFunctionType(dart.void, [T]),
       [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-      [_close]: dart.definiteFunctionType(dart.void, []),
+      [_close$]: dart.definiteFunctionType(dart.void, []),
       [_forEachListener]: dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfTTovoid()]),
       [_callOnCancel]: dart.definiteFunctionType(dart.void, [])
     }),
@@ -18676,7 +18677,7 @@
       if (dart.test(this[_hasOneListener])) {
         this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_FIRING) >>> 0;
         let subscription = this[_firstSubscription];
-        subscription[_add](data);
+        subscription[_add$](data);
         this[_state] = (dart.notNull(this[_state]) & ~async._BroadcastStreamController._STATE_FIRING) >>> 0;
         if (dart.test(this[_isEmpty])) {
           this[_callOnCancel]();
@@ -18684,7 +18685,7 @@
         return;
       }
       this[_forEachListener](dart.fn(subscription => {
-        subscription[_add](data);
+        subscription[_add$](data);
       }, _BufferingStreamSubscriptionOfTToNull()));
     }
     [_sendError](error, stackTrace) {
@@ -18696,7 +18697,7 @@
     [_sendDone]() {
       if (!dart.test(this[_isEmpty])) {
         this[_forEachListener](dart.fn(subscription => {
-          subscription[_close]();
+          subscription[_close$]();
         }, _BufferingStreamSubscriptionOfTToNull()));
       } else {
         dart.assert(this[_doneFuture] != null);
@@ -18717,7 +18718,7 @@
   return _SyncBroadcastStreamController;
 });
 async._SyncBroadcastStreamController = _SyncBroadcastStreamController();
-let const;
+let const$6;
 async._AsyncBroadcastStreamController$ = dart.generic(T => {
   let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
   class _AsyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
@@ -18726,19 +18727,19 @@
     }
     [_sendData](data) {
       T._check(data);
-      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next]) {
+      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
         subscription[_addPending](new (_DelayedDataOfT())(data));
       }
     }
     [_sendError](error, stackTrace) {
-      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next]) {
+      for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
         subscription[_addPending](new async._DelayedError(error, stackTrace));
       }
     }
     [_sendDone]() {
       if (!dart.test(this[_isEmpty])) {
-        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next]) {
-          subscription[_addPending](const || (const = dart.const(new async._DelayedDone())));
+        for (let subscription = this[_firstSubscription]; subscription != null; subscription = subscription[_next$]) {
+          subscription[_addPending](const$6 || (const$6 = dart.const(new async._DelayedDone())));
         }
       } else {
         dart.assert(this[_doneFuture] != null);
@@ -18759,7 +18760,7 @@
 });
 async._AsyncBroadcastStreamController = _AsyncBroadcastStreamController();
 const _addPendingEvent = Symbol('_addPendingEvent');
-let const;
+let const$7;
 async._AsBroadcastStreamController$ = dart.generic(T => {
   let _StreamImplEventsOfT = () => (_StreamImplEventsOfT = dart.constFn(async._StreamImplEvents$(T)))();
   let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
@@ -18803,7 +18804,7 @@
     }
     close() {
       if (!dart.test(this.isClosed) && dart.test(this[_isFiring])) {
-        this[_addPendingEvent](const || (const = dart.const(new async._DelayedDone())));
+        this[_addPendingEvent](const$7 || (const$7 = dart.const(new async._DelayedDone())));
         this[_state] = (dart.notNull(this[_state]) | async._BroadcastStreamController._STATE_CLOSED) >>> 0;
         return super.done;
       }
@@ -18933,7 +18934,7 @@
 });
 async.FutureOr = FutureOr();
 const _completeWithValue = Symbol('_completeWithValue');
-let const;
+let const$8;
 async.Future$ = dart.flattenFutures(dart.generic(T => {
   let _FutureOfT = () => (_FutureOfT = dart.constFn(async._Future$(T)))();
   let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
@@ -19036,7 +19037,7 @@
             result[_completeError](error, stackTrace);
           }
         }
-        dart.fn(handleError, dynamicAnddynamicTovoid());
+        dart.fn(handleError, dynamicAnddynamicTovoid$());
         try {
           for (let future of futures) {
             let pos = remaining;
@@ -19061,7 +19062,7 @@
             remaining++;
           }
           if (remaining == 0) {
-            return async.Future$(core.List$(T)).value(const || (const = dart.constList([], dart.dynamic)));
+            return async.Future$(core.List$(T)).value(const$8 || (const$8 = dart.constList([], dart.dynamic)));
           }
           values = core.List$(T).new(remaining);
         } catch (e) {
@@ -19092,12 +19093,14 @@
         return completer.future;
       };
     }
-    static forEach(input, f) {
-      let iterator = input[dartx.iterator];
-      return async.Future.doWhile(dart.fn(() => {
-        if (!dart.test(iterator.moveNext())) return false;
-        return async.Future.sync(dart.fn(() => dart.dcall(f, iterator.current), VoidTodynamic())).then(core.bool)(dart.fn(_ => true, dynamicTobool()));
-      }, VoidToObject()));
+    static forEach(T) {
+      return (input, f) => {
+        let iterator = input[dartx.iterator];
+        return async.Future.doWhile(dart.fn(() => {
+          if (!dart.test(iterator.moveNext())) return false;
+          return async.Future.sync(dart.fn(() => f(iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
+        }, VoidToObject$()));
+      };
     }
     static doWhile(f) {
       let doneSignal = new async._Future();
@@ -19127,7 +19130,7 @@
     statics: () => ({
       wait: dart.definiteFunctionType(T => [async.Future$(core.List$(T)), [core.Iterable$(async.Future$(T))], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [T])}]),
       any: dart.definiteFunctionType(T => [async.Future$(T), [core.Iterable$(async.Future$(T))]]),
-      forEach: dart.definiteFunctionType(async.Future, [core.Iterable, dynamicTodynamic()]),
+      forEach: dart.definiteFunctionType(T => [async.Future, [core.Iterable$(T), dart.functionType(dart.dynamic, [T])]]),
       doWhile: dart.definiteFunctionType(async.Future, [VoidTodynamic()])
     }),
     names: ['wait', 'any', 'forEach', 'doWhile']
@@ -19656,7 +19659,7 @@
           dart.assert(target[_isPendingComplete]);
           target[_clearPendingComplete]();
           target[_complete](value);
-        }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
+        }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
             if (stackTrace === void 0) stackTrace = null;
             dart.assert(target[_isPendingComplete]);
             target[_completeError](error, core.StackTrace._check(stackTrace));
@@ -19807,7 +19810,7 @@
               listenerHasError = false;
             }
           }
-          dart.fn(handleWhenCompleteCallback, VoidTovoid());
+          dart.fn(handleWhenCompleteCallback, VoidTovoid$());
           function handleValueCallback() {
             try {
               listenerValueOrError = listener.handleValue(sourceResult);
@@ -19818,7 +19821,7 @@
             }
 
           }
-          dart.fn(handleValueCallback, VoidTovoid());
+          dart.fn(handleValueCallback, VoidTovoid$());
           function handleError() {
             try {
               let asyncError = source[_error];
@@ -19837,7 +19840,7 @@
             }
 
           }
-          dart.fn(handleError, VoidTovoid());
+          dart.fn(handleError, VoidTovoid$());
           if (dart.test(listener.handlesComplete)) {
             handleWhenCompleteCallback();
           } else if (!dart.test(hasError)) {
@@ -20013,7 +20016,7 @@
     entry.callback();
   }
 };
-dart.fn(async._microtaskLoop, VoidTovoid());
+dart.fn(async._microtaskLoop, VoidTovoid$());
 async._startMicrotaskLoop = function() {
   async._isInCallbackLoop = true;
   try {
@@ -20026,7 +20029,7 @@
     }
   }
 };
-dart.fn(async._startMicrotaskLoop, VoidTovoid());
+dart.fn(async._startMicrotaskLoop, VoidTovoid$());
 async._scheduleAsyncCallback = function(callback) {
   let newEntry = new async._AsyncCallbackEntry(callback);
   if (async._nextCallback == null) {
@@ -20093,7 +20096,7 @@
         storedCallback = null;
         f();
       }
-      dart.fn(internalCallback, dynamicToNull());
+      dart.fn(internalCallback, dynamicToNull$());
       ;
       let observer = new _isolate_helper.global.MutationObserver(internalCallback);
       observer.observe(div, {childList: true});
@@ -20361,7 +20364,7 @@
 const _pendingEvents = Symbol('_pendingEvents');
 const _ensurePendingEvents = Symbol('_ensurePendingEvents');
 const _badEventState = Symbol('_badEventState');
-let const;
+let const$9;
 async._StreamController$ = dart.generic(T => {
   let _ControllerStreamOfT = () => (_ControllerStreamOfT = dart.constFn(async._ControllerStream$(T)))();
   let _StreamSinkWrapperOfT = () => (_StreamSinkWrapperOfT = dart.constFn(async._StreamSinkWrapper$(T)))();
@@ -20469,7 +20472,7 @@
     add(value) {
       T._check(value);
       if (!dart.test(this[_mayAddEvent])) dart.throw(this[_badEventState]());
-      this[_add](value);
+      this[_add$](value);
     }
     addError(error, stackTrace) {
       if (stackTrace === void 0) stackTrace = null;
@@ -20495,10 +20498,10 @@
       if (dart.test(this.hasListener)) {
         this[_sendDone]();
       } else if (dart.test(this[_isInitialState])) {
-        this[_ensurePendingEvents]().add(const || (const = dart.const(new async._DelayedDone())));
+        this[_ensurePendingEvents]().add(const$9 || (const$9 = dart.const(new async._DelayedDone())));
       }
     }
-    [_add](value) {
+    [_add$](value) {
       T._check(value);
       if (dart.test(this.hasListener)) {
         this[_sendData](value);
@@ -20513,7 +20516,7 @@
         this[_ensurePendingEvents]().add(new async._DelayedError(error, stackTrace));
       }
     }
-    [_close]() {
+    [_close$]() {
       dart.assert(this[_isAddingStream]);
       let addState = _StreamControllerAddStreamStateOfT().as(this[_varData]);
       this[_varData] = addState.varData;
@@ -20568,7 +20571,7 @@
           this[_doneFuture][_asyncComplete](null);
         }
       }).bind(this);
-      dart.fn(complete, VoidTovoid());
+      dart.fn(complete, VoidTovoid$());
       if (result != null) {
         result = result.whenComplete(complete);
       } else {
@@ -20629,9 +20632,9 @@
       addError: dart.definiteFunctionType(dart.void, [core.Object], [core.StackTrace]),
       close: dart.definiteFunctionType(async.Future, []),
       [_closeUnchecked]: dart.definiteFunctionType(dart.void, []),
-      [_add]: dart.definiteFunctionType(dart.void, [T]),
+      [_add$]: dart.definiteFunctionType(dart.void, [T]),
       [_addError]: dart.definiteFunctionType(dart.void, [core.Object, core.StackTrace]),
-      [_close]: dart.definiteFunctionType(dart.void, []),
+      [_close$]: dart.definiteFunctionType(dart.void, []),
       [_subscribe]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
       [_recordCancel]: dart.definiteFunctionType(async.Future, [StreamSubscriptionOfT()]),
       [_recordPause]: dart.definiteFunctionType(dart.void, [StreamSubscriptionOfT()]),
@@ -20661,13 +20664,13 @@
   class _SyncStreamControllerDispatch extends core.Object {
     [_sendData](data) {
       T._check(data);
-      this[_subscription][_add](data);
+      this[_subscription][_add$](data);
     }
     [_sendError](error, stackTrace) {
       this[_subscription][_addError](error, stackTrace);
     }
     [_sendDone]() {
-      this[_subscription][_close]();
+      this[_subscription][_close$]();
     }
   }
   dart.addTypeTests(_SyncStreamControllerDispatch);
@@ -20682,7 +20685,7 @@
   return _SyncStreamControllerDispatch;
 });
 async._SyncStreamControllerDispatch = _SyncStreamControllerDispatch();
-let const;
+let const$10;
 async._AsyncStreamControllerDispatch$ = dart.generic(T => {
   let _DelayedDataOfT = () => (_DelayedDataOfT = dart.constFn(async._DelayedData$(T)))();
   let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
@@ -20695,7 +20698,7 @@
       this[_subscription][_addPending](new async._DelayedError(error, stackTrace));
     }
     [_sendDone]() {
-      this[_subscription][_addPending](const || (const = dart.const(new async._DelayedDone())));
+      this[_subscription][_addPending](const$10 || (const$10 = dart.const(new async._DelayedDone())));
     }
   }
   dart.addTypeTests(_AsyncStreamControllerDispatch);
@@ -20791,12 +20794,12 @@
   class _AddStreamState extends core.Object {
     new(controller, source, cancelOnError) {
       this.addStreamFuture = new async._Future();
-      this.addSubscription = source.listen(dart.bind(controller, _add), {onError: core.Function._check(dart.test(cancelOnError) ? async._AddStreamState.makeErrorHandler(controller) : dart.bind(controller, _addError)), onDone: dart.bind(controller, _close), cancelOnError: cancelOnError});
+      this.addSubscription = source.listen(dart.bind(controller, _add$), {onError: core.Function._check(dart.test(cancelOnError) ? async._AddStreamState.makeErrorHandler(controller) : dart.bind(controller, _addError)), onDone: dart.bind(controller, _close$), cancelOnError: cancelOnError});
     }
     static makeErrorHandler(controller) {
       return dart.fn((e, s) => {
         controller[_addError](e, s);
-        controller[_close]();
+        controller[_close$]();
       }, dynamicAndStackTraceToNull());
     }
     pause() {
@@ -20902,7 +20905,7 @@
   return _GeneratedStreamImpl;
 });
 async._GeneratedStreamImpl = _GeneratedStreamImpl();
-const _iterator = Symbol('_iterator');
+const _iterator$ = Symbol('_iterator');
 const _eventScheduled = Symbol('_eventScheduled');
 async._PendingEvents$ = dart.generic(T => {
   let _EventDispatchOfT = () => (_EventDispatchOfT = dart.constFn(async._EventDispatch$(T)))();
@@ -20966,42 +20969,42 @@
   let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
   class _IterablePendingEvents extends async._PendingEvents$(T) {
     new(data) {
-      this[_iterator] = data[dartx.iterator];
+      this[_iterator$] = data[dartx.iterator];
       super.new();
     }
     get isEmpty() {
-      return this[_iterator] == null;
+      return this[_iterator$] == null;
     }
     handleNext(dispatch) {
       _EventDispatchOfT()._check(dispatch);
-      if (this[_iterator] == null) {
+      if (this[_iterator$] == null) {
         dart.throw(new core.StateError("No events pending."));
       }
       let isDone = null;
       try {
-        isDone = !dart.test(this[_iterator].moveNext());
+        isDone = !dart.test(this[_iterator$].moveNext());
       } catch (e) {
         let s = dart.stackTrace(e);
-        this[_iterator] = null;
+        this[_iterator$] = null;
         dispatch[_sendError](e, s);
         return;
       }
 
       if (!dart.test(isDone)) {
-        dispatch[_sendData](this[_iterator].current);
+        dispatch[_sendData](this[_iterator$].current);
       } else {
-        this[_iterator] = null;
+        this[_iterator$] = null;
         dispatch[_sendDone]();
       }
     }
     clear() {
       if (dart.test(this.isScheduled)) this.cancelSchedule();
-      this[_iterator] = null;
+      this[_iterator$] = null;
     }
   }
   dart.setSignature(_IterablePendingEvents, {
     constructors: () => ({new: dart.definiteFunctionType(async._IterablePendingEvents$(T), [IterableOfT()])}),
-    fields: () => ({[_iterator]: IteratorOfT()}),
+    fields: () => ({[_iterator$]: IteratorOfT()}),
     getters: () => ({isEmpty: dart.definiteFunctionType(core.bool, [])}),
     methods: () => ({
       handleNext: dart.definiteFunctionType(dart.void, [_EventDispatchOfT()]),
@@ -21019,7 +21022,7 @@
 async._DoneHandler = dart.typedef('_DoneHandler', () => dart.functionType(dart.void, []));
 async._nullDataHandler = function(value) {
 };
-dart.fn(async._nullDataHandler, dynamicTovoid());
+dart.fn(async._nullDataHandler, dynamicTovoid$());
 async._nullErrorHandler = function(error, stackTrace) {
   if (stackTrace === void 0) stackTrace = null;
   async.Zone.current.handleUncaughtError(dart.dynamic)(error, stackTrace);
@@ -21027,7 +21030,7 @@
 dart.lazyFn(async._nullErrorHandler, () => dynamic__Tovoid());
 async._nullDoneHandler = function() {
 };
-dart.fn(async._nullDoneHandler, VoidTovoid());
+dart.fn(async._nullDoneHandler, VoidTovoid$());
 async._DelayedEvent$ = dart.generic(T => {
   class _DelayedEvent extends core.Object {
     new() {
@@ -21152,26 +21155,26 @@
 const _insertBefore = Symbol('_insertBefore');
 async._BroadcastLinkedList = class _BroadcastLinkedList extends core.Object {
   new() {
-    this[_next] = null;
-    this[_previous] = null;
+    this[_next$] = null;
+    this[_previous$] = null;
   }
   [_unlink]() {
-    this[_previous][_next] = this[_next];
-    this[_next][_previous] = this[_previous];
-    this[_next] = this[_previous] = this;
+    this[_previous$][_next$] = this[_next$];
+    this[_next$][_previous$] = this[_previous$];
+    this[_next$] = this[_previous$] = this;
   }
   [_insertBefore](newNext) {
-    let newPrevious = newNext[_previous];
-    newPrevious[_next] = this;
-    newNext[_previous] = this[_previous];
-    this[_previous][_next] = newNext;
-    this[_previous] = newPrevious;
+    let newPrevious = newNext[_previous$];
+    newPrevious[_next$] = this;
+    newNext[_previous$] = this[_previous$];
+    this[_previous$][_next$] = newNext;
+    this[_previous$] = newPrevious;
   }
 };
 dart.setSignature(async._BroadcastLinkedList, {
   fields: () => ({
-    [_next]: async._BroadcastLinkedList,
-    [_previous]: async._BroadcastLinkedList
+    [_next$]: async._BroadcastLinkedList,
+    [_previous$]: async._BroadcastLinkedList
   }),
   methods: () => ({
     [_unlink]: dart.definiteFunctionType(dart.void, []),
@@ -21285,7 +21288,7 @@
 async._DoneStreamSubscription._DONE_SENT = 1;
 async._DoneStreamSubscription._SCHEDULED = 2;
 async._DoneStreamSubscription._PAUSED = 4;
-const _source = Symbol('_source');
+const _source$ = Symbol('_source');
 const _onListenHandler = Symbol('_onListenHandler');
 const _onCancelHandler = Symbol('_onCancelHandler');
 const _cancelSubscription = Symbol('_cancelSubscription');
@@ -21302,14 +21305,14 @@
   let _BroadcastCallbackOfT = () => (_BroadcastCallbackOfT = dart.constFn(async._BroadcastCallback$(T)))();
   class _AsBroadcastStream extends async.Stream$(T) {
     new(source, onListenHandler, onCancelHandler) {
-      this[_source] = source;
+      this[_source$] = source;
       this[_onListenHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfT())(onListenHandler);
       this[_onCancelHandler] = async.Zone.current.registerUnaryCallback(dart.dynamic, StreamSubscriptionOfT())(onCancelHandler);
       this[_zone] = async.Zone.current;
-      this[_controller] = null;
+      this[_controller$] = null;
       this[_subscription] = null;
       super.new();
-      this[_controller] = new (_AsBroadcastStreamControllerOfT())(dart.bind(this, _onListen), dart.bind(this, _onCancel));
+      this[_controller$] = new (_AsBroadcastStreamControllerOfT())(dart.bind(this, _onListen), dart.bind(this, _onCancel));
     }
     get isBroadcast() {
       return true;
@@ -21318,17 +21321,17 @@
       let onError = opts && 'onError' in opts ? opts.onError : null;
       let onDone = opts && 'onDone' in opts ? opts.onDone : null;
       let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      if (this[_controller] == null || dart.test(this[_controller].isClosed)) {
+      if (this[_controller$] == null || dart.test(this[_controller$].isClosed)) {
         return new (_DoneStreamSubscriptionOfT())(onDone);
       }
       if (this[_subscription] == null) {
-        this[_subscription] = this[_source].listen(dart.bind(this[_controller], 'add'), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.bind(this[_controller], 'close')});
+        this[_subscription] = this[_source$].listen(dart.bind(this[_controller$], 'add'), {onError: dart.bind(this[_controller$], 'addError'), onDone: dart.bind(this[_controller$], 'close')});
       }
       cancelOnError = core.identical(true, cancelOnError);
-      return this[_controller][_subscribe](onData, onError, onDone, cancelOnError);
+      return this[_controller$][_subscribe](onData, onError, onDone, cancelOnError);
     }
     [_onCancel]() {
-      let shutdown = this[_controller] == null || dart.test(this[_controller].isClosed);
+      let shutdown = this[_controller$] == null || dart.test(this[_controller$].isClosed);
       if (this[_onCancelHandler] != null) {
         this[_zone].runUnary(dart.void, _BroadcastSubscriptionWrapperOfT())(this[_onCancelHandler], new (_BroadcastSubscriptionWrapperOfT())(this));
       }
@@ -21348,7 +21351,7 @@
       if (this[_subscription] == null) return;
       let subscription = this[_subscription];
       this[_subscription] = null;
-      this[_controller] = null;
+      this[_controller$] = null;
       subscription.cancel();
     }
     [_pauseSubscription](resumeSignal) {
@@ -21367,11 +21370,11 @@
   dart.setSignature(_AsBroadcastStream, {
     constructors: () => ({new: dart.definiteFunctionType(async._AsBroadcastStream$(T), [StreamOfT(), _BroadcastCallbackOfT(), _BroadcastCallbackOfT()])}),
     fields: () => ({
-      [_source]: StreamOfT(),
+      [_source$]: StreamOfT(),
       [_onListenHandler]: _BroadcastCallbackOfT(),
       [_onCancelHandler]: _BroadcastCallbackOfT(),
       [_zone]: async.Zone,
-      [_controller]: _AsBroadcastStreamControllerOfT(),
+      [_controller$]: _AsBroadcastStreamControllerOfT(),
       [_subscription]: StreamSubscriptionOfT()
     }),
     getters: () => ({[_isSubscriptionPaused]: dart.definiteFunctionType(core.bool, [])}),
@@ -21443,7 +21446,7 @@
   return _BroadcastSubscriptionWrapper;
 });
 async._BroadcastSubscriptionWrapper = _BroadcastSubscriptionWrapper();
-const _current = Symbol('_current');
+const _current$1 = Symbol('_current');
 const _futureOrPrefetch = Symbol('_futureOrPrefetch');
 const _clear = Symbol('_clear');
 async._StreamIteratorImpl$ = dart.generic(T => {
@@ -21452,13 +21455,13 @@
   class _StreamIteratorImpl extends core.Object {
     new(stream) {
       this[_subscription] = null;
-      this[_current] = null;
+      this[_current$1] = null;
       this[_futureOrPrefetch] = null;
       this[_state] = async._StreamIteratorImpl._STATE_FOUND;
       this[_subscription] = stream.listen(dart.bind(this, _onData), {onError: dart.bind(this, _onError), onDone: dart.bind(this, _onDone), cancelOnError: true});
     }
     get current() {
-      return this[_current];
+      return this[_current$1];
     }
     moveNext() {
       if (this[_state] == async._StreamIteratorImpl._STATE_DONE) {
@@ -21469,7 +21472,7 @@
       }
       if (this[_state] == async._StreamIteratorImpl._STATE_FOUND) {
         this[_state] = async._StreamIteratorImpl._STATE_MOVING;
-        this[_current] = null;
+        this[_current$1] = null;
         let result = new (_FutureOfbool())();
         this[_futureOrPrefetch] = result;
         return result;
@@ -21479,7 +21482,7 @@
           case async._StreamIteratorImpl._STATE_EXTRA_DATA:
           {
             this[_state] = async._StreamIteratorImpl._STATE_FOUND;
-            this[_current] = T.as(this[_futureOrPrefetch]);
+            this[_current$1] = T.as(this[_futureOrPrefetch]);
             this[_futureOrPrefetch] = null;
             this[_subscription].resume();
             return new (_FutureOfbool()).immediate(true);
@@ -21501,7 +21504,7 @@
     [_clear]() {
       this[_subscription] = null;
       this[_futureOrPrefetch] = null;
-      this[_current] = null;
+      this[_current$1] = null;
       this[_state] = async._StreamIteratorImpl._STATE_DONE;
     }
     cancel() {
@@ -21519,7 +21522,7 @@
     [_onData](data) {
       T._check(data);
       if (this[_state] == async._StreamIteratorImpl._STATE_MOVING) {
-        this[_current] = data;
+        this[_current$1] = data;
         let hasNext = _FutureOfbool().as(this[_futureOrPrefetch]);
         this[_futureOrPrefetch] = null;
         this[_state] = async._StreamIteratorImpl._STATE_FOUND;
@@ -21562,7 +21565,7 @@
     constructors: () => ({new: dart.definiteFunctionType(async._StreamIteratorImpl$(T), [StreamOfT()])}),
     fields: () => ({
       [_subscription]: async.StreamSubscription,
-      [_current]: T,
+      [_current$1]: T,
       [_futureOrPrefetch]: dart.dynamic,
       [_state]: core.int
     }),
@@ -21637,7 +21640,7 @@
 async._cancelAndError = function(subscription, future, error, stackTrace) {
   let cancelFuture = subscription.cancel();
   if (async.Future.is(cancelFuture)) {
-    cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), VoidTovoid()));
+    cancelFuture.whenComplete(dart.fn(() => future[_completeError](error, stackTrace), VoidTovoid$()));
   } else {
     future[_completeError](error, stackTrace);
   }
@@ -21662,7 +21665,7 @@
 async._cancelAndValue = function(subscription, future, value) {
   let cancelFuture = subscription.cancel();
   if (async.Future.is(cancelFuture)) {
-    cancelFuture.whenComplete(dart.fn(() => future[_complete](value), VoidTovoid()));
+    cancelFuture.whenComplete(dart.fn(() => future[_complete](value), VoidTovoid$()));
   } else {
     future[_complete](value);
   }
@@ -21678,11 +21681,11 @@
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   class _ForwardingStream extends async.Stream$(T) {
     new(source) {
-      this[_source] = source;
+      this[_source$] = source;
       super.new();
     }
     get isBroadcast() {
-      return this[_source].isBroadcast;
+      return this[_source$].isBroadcast;
     }
     listen(onData, opts) {
       let onError = opts && 'onError' in opts ? opts.onError : null;
@@ -21697,7 +21700,7 @@
     [_handleData](data, sink) {
       S._check(data);
       _EventSinkOfT()._check(sink);
-      sink[_add](T.as(data));
+      sink[_add$](T.as(data));
     }
     [_handleError](error, stackTrace, sink) {
       _EventSinkOfT()._check(sink);
@@ -21705,12 +21708,12 @@
     }
     [_handleDone](sink) {
       _EventSinkOfT()._check(sink);
-      sink[_close]();
+      sink[_close$]();
     }
   }
   dart.setSignature(_ForwardingStream, {
     constructors: () => ({new: dart.definiteFunctionType(async._ForwardingStream$(S, T), [StreamOfS()])}),
-    fields: () => ({[_source]: StreamOfS()}),
+    fields: () => ({[_source$]: StreamOfS()}),
     methods: () => ({
       listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
       [_createSubscription]: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid(), core.Function, VoidTovoid(), core.bool]),
@@ -21731,15 +21734,15 @@
       this[_stream] = stream;
       this[_subscription] = null;
       super.new(onData, onError, onDone, cancelOnError);
-      this[_subscription] = this[_stream][_source].listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)});
+      this[_subscription] = this[_stream][_source$].listen(dart.bind(this, _handleData), {onError: dart.bind(this, _handleError), onDone: dart.bind(this, _handleDone)});
     }
-    [_add](data) {
+    [_add$](data) {
       T._check(data);
-      if (dart.test(this[_isClosed])) return;
-      super[_add](data);
+      if (dart.test(this[_isClosed$])) return;
+      super[_add$](data);
     }
     [_addError](error, stackTrace) {
-      if (dart.test(this[_isClosed])) return;
+      if (dart.test(this[_isClosed$])) return;
       super[_addError](error, stackTrace);
     }
     [_onPause]() {
@@ -21821,7 +21824,7 @@
       }
 
       if (dart.test(satisfies)) {
-        sink[_add](inputEvent);
+        sink[_add$](inputEvent);
       }
     }
   }
@@ -21836,7 +21839,7 @@
   const _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S]));
   return _Transformation;
 });
-async._Transformation = _Transformation();
+async._Transformation = _Transformation$();
 const _transform = Symbol('_transform');
 async._MapStream$ = dart.generic((S, T) => {
   let _TransformationOfS$T = () => (_TransformationOfS$T = dart.constFn(async._Transformation$(S, T)))();
@@ -21859,7 +21862,7 @@
         return;
       }
 
-      sink[_add](outputEvent);
+      sink[_add$](outputEvent);
     }
   }
   dart.setSignature(_MapStream, {
@@ -21885,7 +21888,7 @@
       _EventSinkOfT()._check(sink);
       try {
         for (let value of this[_expand](inputEvent)) {
-          sink[_add](value);
+          sink[_add$](value);
         }
       } catch (e) {
         let s = dart.stackTrace(e);
@@ -21974,11 +21977,11 @@
       let subscription = _StateStreamSubscriptionOfT()._check(sink);
       let count = subscription[_count];
       if (dart.notNull(count) > 0) {
-        sink[_add](inputEvent);
+        sink[_add$](inputEvent);
         count = dart.notNull(count) - 1;
         subscription[_count] = count;
         if (count == 0) {
-          sink[_close]();
+          sink[_close$]();
         }
       }
     }
@@ -22046,14 +22049,14 @@
       } catch (e) {
         let s = dart.stackTrace(e);
         async._addErrorWithReplacement(sink, e, s);
-        sink[_close]();
+        sink[_close$]();
         return;
       }
 
       if (dart.test(satisfies)) {
-        sink[_add](inputEvent);
+        sink[_add$](inputEvent);
       } else {
-        sink[_close]();
+        sink[_close$]();
       }
     }
   }
@@ -22087,7 +22090,7 @@
         subscription[_count] = dart.notNull(count) - 1;
         return;
       }
-      sink[_add](inputEvent);
+      sink[_add$](inputEvent);
     }
   }
   dart.setSignature(_SkipStream, {
@@ -22117,7 +22120,7 @@
       let subscription = _StateStreamSubscriptionOfT()._check(sink);
       let hasFailed = subscription[_flag];
       if (dart.test(hasFailed)) {
-        sink[_add](inputEvent);
+        sink[_add$](inputEvent);
         return;
       }
       let satisfies = null;
@@ -22132,7 +22135,7 @@
 
       if (!dart.test(satisfies)) {
         subscription[_flag] = true;
-        sink[_add](inputEvent);
+        sink[_add$](inputEvent);
       }
     }
   }
@@ -22155,23 +22158,23 @@
   let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
   class _DistinctStream extends async._ForwardingStream$(T, T) {
     new(source, equals) {
-      this[_previous] = async._DistinctStream._SENTINEL;
+      this[_previous$] = async._DistinctStream._SENTINEL;
       this[_equals] = equals;
       super.new(source);
     }
     [_handleData](inputEvent, sink) {
       T._check(inputEvent);
       _EventSinkOfT()._check(sink);
-      if (core.identical(this[_previous], async._DistinctStream._SENTINEL)) {
-        this[_previous] = inputEvent;
-        return sink[_add](inputEvent);
+      if (core.identical(this[_previous$], async._DistinctStream._SENTINEL)) {
+        this[_previous$] = inputEvent;
+        return sink[_add$](inputEvent);
       } else {
         let isEqual = null;
         try {
           if (this[_equals] == null) {
-            isEqual = dart.equals(this[_previous], inputEvent);
+            isEqual = dart.equals(this[_previous$], inputEvent);
           } else {
-            isEqual = this[_equals](T.as(this[_previous]), inputEvent);
+            isEqual = this[_equals](T.as(this[_previous$]), inputEvent);
           }
         } catch (e) {
           let s = dart.stackTrace(e);
@@ -22180,8 +22183,8 @@
         }
 
         if (!dart.test(isEqual)) {
-          sink[_add](inputEvent);
-          this[_previous] = inputEvent;
+          sink[_add$](inputEvent);
+          this[_previous$] = inputEvent;
         }
       }
     }
@@ -22190,7 +22193,7 @@
     constructors: () => ({new: dart.definiteFunctionType(async._DistinctStream$(T), [StreamOfT(), _EqualityOfT()])}),
     fields: () => ({
       [_equals]: _EqualityOfT(),
-      [_previous]: core.Object
+      [_previous$]: core.Object
     }),
     sfields: () => ({_SENTINEL: core.Object})
   });
@@ -22211,14 +22214,14 @@
     }
     add(data) {
       T._check(data);
-      this[_sink][_add](data);
+      this[_sink][_add$](data);
     }
     addError(error, stackTrace) {
       if (stackTrace === void 0) stackTrace = null;
       this[_sink][_addError](error, stackTrace);
     }
     close() {
-      this[_sink][_close]();
+      this[_sink][_close$]();
     }
   }
   dart.addTypeTests(_EventSinkWrapper);
@@ -22256,24 +22259,24 @@
     get [_isSubscribed]() {
       return this[_subscription] != null;
     }
-    [_add](data) {
+    [_add$](data) {
       T._check(data);
-      if (dart.test(this[_isClosed])) {
+      if (dart.test(this[_isClosed$])) {
         dart.throw(new core.StateError("Stream is already closed"));
       }
-      super[_add](data);
+      super[_add$](data);
     }
     [_addError](error, stackTrace) {
-      if (dart.test(this[_isClosed])) {
+      if (dart.test(this[_isClosed$])) {
         dart.throw(new core.StateError("Stream is already closed"));
       }
       super[_addError](error, stackTrace);
     }
-    [_close]() {
-      if (dart.test(this[_isClosed])) {
+    [_close$]() {
+      if (dart.test(this[_isClosed$])) {
         dart.throw(new core.StateError("Stream is already closed"));
       }
-      super[_close]();
+      super[_close$]();
     }
     [_onPause]() {
       if (dart.test(this[_isSubscribed])) this[_subscription].pause();
@@ -22941,7 +22944,7 @@
     fork: dart.definiteFunctionType(async.Zone, [async.Zone, async.ZoneSpecification, core.Map])
   })
 });
-const _map = Symbol('_map');
+const _map$ = Symbol('_map');
 async._Zone = class _Zone extends core.Object {
   new() {
   }
@@ -22963,7 +22966,7 @@
   }
   new(parent, specification, map) {
     this.parent = parent;
-    this[_map] = map;
+    this[_map$] = map;
     this[_run] = null;
     this[_runUnary] = null;
     this[_runBinary] = null;
@@ -23063,12 +23066,12 @@
     };
   }
   _get(key) {
-    let result = this[_map][dartx._get](key);
-    if (result != null || dart.test(this[_map][dartx.containsKey](key))) return result;
+    let result = this[_map$][dartx._get](key);
+    if (result != null || dart.test(this[_map$][dartx.containsKey](key))) return result;
     if (this.parent != null) {
       let value = this.parent._get(key);
       if (value != null) {
-        this[_map][dartx._set](key, value);
+        this[_map$][dartx._set](key, value);
       }
       return value;
     }
@@ -23203,7 +23206,7 @@
     [_handleUncaughtError]: _ZoneFunctionOfHandleUncaughtErrorHandler(),
     [_delegateCache]: async.ZoneDelegate,
     parent: async._Zone,
-    [_map]: core.Map
+    [_map$]: core.Map
   }),
   getters: () => ({
     [_delegate]: dart.definiteFunctionType(async.ZoneDelegate, []),
@@ -23258,7 +23261,7 @@
     }
   };
 };
-dart.fn(async._rootRun, ZoneAndZoneDelegateAndZone__ToR());
+dart.fn(async._rootRun, ZoneAndZoneDelegateAndZone__ToR$());
 async._rootRunUnary = function(R, T) {
   return (self, parent, zone, f, arg) => {
     if (dart.equals(async.Zone._current, zone)) return f(arg);
@@ -23270,7 +23273,7 @@
     }
   };
 };
-dart.fn(async._rootRunUnary, ZoneAndZoneDelegateAndZone__ToR());
+dart.fn(async._rootRunUnary, ZoneAndZoneDelegateAndZone__ToR$0());
 async._rootRunBinary = function(R, T1, T2) {
   return (self, parent, zone, f, arg1, arg2) => {
     if (dart.equals(async.Zone._current, zone)) return f(arg1, arg2);
@@ -23282,7 +23285,7 @@
     }
   };
 };
-dart.fn(async._rootRunBinary, ZoneAndZoneDelegateAndZone__ToR());
+dart.fn(async._rootRunBinary, ZoneAndZoneDelegateAndZone__ToR$1());
 async._rootRegisterCallback = function(R) {
   return (self, parent, zone, f) => {
     return f;
@@ -23327,27 +23330,27 @@
   }
   return async.Timer._createPeriodicTimer(duration, callback);
 };
-dart.lazyFn(async._rootCreatePeriodicTimer, () => ZoneAndZoneDelegateAndZone__ToTimer());
+dart.lazyFn(async._rootCreatePeriodicTimer, () => ZoneAndZoneDelegateAndZone__ToTimer$());
 async._rootPrint = function(self, parent, zone, line) {
   _internal.printToConsole(line);
 };
-dart.lazyFn(async._rootPrint, () => ZoneAndZoneDelegateAndZone__Tovoid());
+dart.lazyFn(async._rootPrint, () => ZoneAndZoneDelegateAndZone__Tovoid$());
 async._printToZone = function(line) {
   async.Zone.current.print(line);
 };
-dart.lazyFn(async._printToZone, () => StringTovoid());
-let const;
+dart.lazyFn(async._printToZone, () => StringTovoid$());
+let const$11;
 async._rootFork = function(self, parent, zone, specification, zoneValues) {
   _internal.printToZone = async._printToZone;
   if (specification == null) {
-    specification = const || (const = dart.const(async.ZoneSpecification.new()));
+    specification = const$11 || (const$11 = dart.const(async.ZoneSpecification.new()));
   } else if (!async._ZoneSpecification.is(specification)) {
     dart.throw(new core.ArgumentError("ZoneSpecifications must be instantiated" + " with the provided constructor."));
   }
   let valueMap = null;
   if (zoneValues == null) {
     if (async._Zone.is(zone)) {
-      valueMap = zone[_map];
+      valueMap = zone[_map$];
     } else {
       valueMap = collection.HashMap.new();
     }
@@ -23357,66 +23360,66 @@
   return new async._CustomZone(async._Zone._check(zone), specification, valueMap);
 };
 dart.lazyFn(async._rootFork, () => ZoneAndZoneDelegateAndZone__ToZone());
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
+let const$12;
+let const$13;
+let const$14;
+let const$15;
+let const$16;
+let const$17;
+let const$18;
+let const$19;
+let const$20;
+let const$21;
+let const$22;
+let const$23;
+let const$24;
 async._RootZone = class _RootZone extends async._Zone {
   new() {
     super.new();
   }
   get [_run]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfRunHandler())(async._ROOT_ZONE, dart.gbind(async._rootRun, dart.dynamic))));
+    return const$12 || (const$12 = dart.const(new (_ZoneFunctionOfRunHandler())(async._ROOT_ZONE, dart.gbind(async._rootRun, dart.dynamic))));
   }
   get [_runUnary]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfRunUnaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunUnary, dart.dynamic, dart.dynamic))));
+    return const$13 || (const$13 = dart.const(new (_ZoneFunctionOfRunUnaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunUnary, dart.dynamic, dart.dynamic))));
   }
   get [_runBinary]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfRunBinaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunBinary, dart.dynamic, dart.dynamic, dart.dynamic))));
+    return const$14 || (const$14 = dart.const(new (_ZoneFunctionOfRunBinaryHandler())(async._ROOT_ZONE, dart.gbind(async._rootRunBinary, dart.dynamic, dart.dynamic, dart.dynamic))));
   }
   get [_registerCallback]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfRegisterCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterCallback, dart.dynamic))));
+    return const$15 || (const$15 = dart.const(new (_ZoneFunctionOfRegisterCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterCallback, dart.dynamic))));
   }
   get [_registerUnaryCallback]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfRegisterUnaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterUnaryCallback, dart.dynamic, dart.dynamic))));
+    return const$16 || (const$16 = dart.const(new (_ZoneFunctionOfRegisterUnaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterUnaryCallback, dart.dynamic, dart.dynamic))));
   }
   get [_registerBinaryCallback]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfRegisterBinaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterBinaryCallback, dart.dynamic, dart.dynamic, dart.dynamic))));
+    return const$17 || (const$17 = dart.const(new (_ZoneFunctionOfRegisterBinaryCallbackHandler())(async._ROOT_ZONE, dart.gbind(async._rootRegisterBinaryCallback, dart.dynamic, dart.dynamic, dart.dynamic))));
   }
   get [_errorCallback]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfErrorCallbackHandler())(async._ROOT_ZONE, async._rootErrorCallback)));
+    return const$18 || (const$18 = dart.const(new (_ZoneFunctionOfErrorCallbackHandler())(async._ROOT_ZONE, async._rootErrorCallback)));
   }
   get [_scheduleMicrotask]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfScheduleMicrotaskHandler())(async._ROOT_ZONE, async._rootScheduleMicrotask)));
+    return const$19 || (const$19 = dart.const(new (_ZoneFunctionOfScheduleMicrotaskHandler())(async._ROOT_ZONE, async._rootScheduleMicrotask)));
   }
   get [_createTimer]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfCreateTimerHandler())(async._ROOT_ZONE, async._rootCreateTimer)));
+    return const$20 || (const$20 = dart.const(new (_ZoneFunctionOfCreateTimerHandler())(async._ROOT_ZONE, async._rootCreateTimer)));
   }
   get [_createPeriodicTimer]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfCreatePeriodicTimerHandler())(async._ROOT_ZONE, async._rootCreatePeriodicTimer)));
+    return const$21 || (const$21 = dart.const(new (_ZoneFunctionOfCreatePeriodicTimerHandler())(async._ROOT_ZONE, async._rootCreatePeriodicTimer)));
   }
   get [_print]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfPrintHandler())(async._ROOT_ZONE, async._rootPrint)));
+    return const$22 || (const$22 = dart.const(new (_ZoneFunctionOfPrintHandler())(async._ROOT_ZONE, async._rootPrint)));
   }
   get [_fork]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfForkHandler())(async._ROOT_ZONE, async._rootFork)));
+    return const$23 || (const$23 = dart.const(new (_ZoneFunctionOfForkHandler())(async._ROOT_ZONE, async._rootFork)));
   }
   get [_handleUncaughtError]() {
-    return const || (const = dart.const(new (_ZoneFunctionOfHandleUncaughtErrorHandler())(async._ROOT_ZONE, dart.gbind(async._rootHandleUncaughtError, dart.dynamic))));
+    return const$24 || (const$24 = dart.const(new (_ZoneFunctionOfHandleUncaughtErrorHandler())(async._ROOT_ZONE, dart.gbind(async._rootHandleUncaughtError, dart.dynamic))));
   }
   get parent() {
     return null;
   }
-  get [_map]() {
+  get [_map$]() {
     return async._RootZone._rootMap;
   }
   get [_delegate]() {
@@ -23577,7 +23580,7 @@
     [_fork]: dart.definiteFunctionType(async._ZoneFunction$(async.ForkHandler), []),
     [_handleUncaughtError]: dart.definiteFunctionType(async._ZoneFunction$(async.HandleUncaughtErrorHandler), []),
     parent: dart.definiteFunctionType(async._Zone, []),
-    [_map]: dart.definiteFunctionType(core.Map, []),
+    [_map$]: dart.definiteFunctionType(core.Map, []),
     [_delegate]: dart.definiteFunctionType(async.ZoneDelegate, []),
     errorZone: dart.definiteFunctionType(async.Zone, [])
   }),
@@ -23655,20 +23658,20 @@
 };
 dart.lazyFn(async.runZoned, () => Fn__ToR());
 collection._USE_ES6_MAPS = true;
-const _length = Symbol('_length');
-const _strings = Symbol('_strings');
-const _nums = Symbol('_nums');
-const _rest = Symbol('_rest');
+const _length$1 = Symbol('_length');
+const _strings$ = Symbol('_strings');
+const _nums$ = Symbol('_nums');
+const _rest$ = Symbol('_rest');
 const _keys = Symbol('_keys');
 const _containsKey = Symbol('_containsKey');
-const _getBucket = Symbol('_getBucket');
+const _getBucket$ = Symbol('_getBucket');
 const _findBucketIndex = Symbol('_findBucketIndex');
 const _computeKeys = Symbol('_computeKeys');
 const _get = Symbol('_get');
-const _addHashTableEntry = Symbol('_addHashTableEntry');
+const _addHashTableEntry$ = Symbol('_addHashTableEntry');
 const _set = Symbol('_set');
 const _computeHashCode = Symbol('_computeHashCode');
-const _removeHashTableEntry = Symbol('_removeHashTableEntry');
+const _removeHashTableEntry$ = Symbol('_removeHashTableEntry');
 const _remove = Symbol('_remove');
 collection._HashMap$ = dart.generic((K, V) => {
   let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
@@ -23683,17 +23686,17 @@
   let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
   class _HashMap extends core.Object {
     new() {
-      this[_length] = 0;
-      this[_strings] = null;
-      this[_nums] = null;
-      this[_rest] = null;
+      this[_length$1] = 0;
+      this[_strings$] = null;
+      this[_nums$] = null;
+      this[_rest$] = null;
       this[_keys] = null;
     }
     get length() {
-      return this[_length];
+      return this[_length$1];
     }
     get isEmpty() {
-      return this[_length] == 0;
+      return this[_length$1] == 0;
     }
     get isNotEmpty() {
       return !dart.test(this.isEmpty);
@@ -23706,19 +23709,19 @@
     }
     containsKey(key) {
       if (dart.test(collection._HashMap._isStringKey(key))) {
-        let strings = this[_strings];
+        let strings = this[_strings$];
         return strings == null ? false : collection._HashMap._hasTableEntry(strings, key);
       } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-        let nums = this[_nums];
+        let nums = this[_nums$];
         return nums == null ? false : collection._HashMap._hasTableEntry(nums, key);
       } else {
         return this[_containsKey](key);
       }
     }
     [_containsKey](key) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return false;
-      let bucket = this[_getBucket](rest, key);
+      let bucket = this[_getBucket$](rest, key);
       return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
     }
     containsValue(value) {
@@ -23732,19 +23735,19 @@
     }
     _get(key) {
       if (dart.test(collection._HashMap._isStringKey(key))) {
-        let strings = this[_strings];
+        let strings = this[_strings$];
         return V._check(strings == null ? null : collection._HashMap._getTableEntry(strings, key));
       } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-        let nums = this[_nums];
+        let nums = this[_nums$];
         return V._check(nums == null ? null : collection._HashMap._getTableEntry(nums, key));
       } else {
         return this[_get](key);
       }
     }
     [_get](key) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return null;
-      let bucket = this[_getBucket](rest, key);
+      let bucket = this[_getBucket$](rest, key);
       let index = this[_findBucketIndex](bucket, key);
       return V._check(dart.notNull(index) < 0 ? null : bucket[dart.notNull(index) + 1]);
     }
@@ -23752,13 +23755,13 @@
       K._check(key);
       V._check(value);
       if (dart.test(collection._HashMap._isStringKey(key))) {
-        let strings = this[_strings];
-        if (strings == null) this[_strings] = strings = collection._HashMap._newHashTable();
-        this[_addHashTableEntry](strings, key, value);
+        let strings = this[_strings$];
+        if (strings == null) this[_strings$] = strings = collection._HashMap._newHashTable();
+        this[_addHashTableEntry$](strings, key, value);
       } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-        let nums = this[_nums];
-        if (nums == null) this[_nums] = nums = collection._HashMap._newHashTable();
-        this[_addHashTableEntry](nums, key, value);
+        let nums = this[_nums$];
+        if (nums == null) this[_nums$] = nums = collection._HashMap._newHashTable();
+        this[_addHashTableEntry$](nums, key, value);
       } else {
         this[_set](key, value);
       }
@@ -23767,13 +23770,13 @@
     [_set](key, value) {
       K._check(key);
       V._check(value);
-      let rest = this[_rest];
-      if (rest == null) this[_rest] = rest = collection._HashMap._newHashTable();
+      let rest = this[_rest$];
+      if (rest == null) this[_rest$] = rest = collection._HashMap._newHashTable();
       let hash = this[_computeHashCode](key);
       let bucket = rest[hash];
       if (bucket == null) {
         collection._HashMap._setTableEntry(rest, hash, [key, value]);
-        this[_length] = dart.notNull(this[_length]) + 1;
+        this[_length$1] = dart.notNull(this[_length$1]) + 1;
         this[_keys] = null;
       } else {
         let index = this[_findBucketIndex](bucket, key);
@@ -23781,7 +23784,7 @@
           bucket[dart.notNull(index) + 1] = value;
         } else {
           bucket.push(key, value);
-          this[_length] = dart.notNull(this[_length]) + 1;
+          this[_length$1] = dart.notNull(this[_length$1]) + 1;
           this[_keys] = null;
         }
       }
@@ -23796,27 +23799,27 @@
     }
     remove(key) {
       if (dart.test(collection._HashMap._isStringKey(key))) {
-        return this[_removeHashTableEntry](this[_strings], key);
+        return this[_removeHashTableEntry$](this[_strings$], key);
       } else if (dart.test(collection._HashMap._isNumericKey(key))) {
-        return this[_removeHashTableEntry](this[_nums], key);
+        return this[_removeHashTableEntry$](this[_nums$], key);
       } else {
         return this[_remove](key);
       }
     }
     [_remove](key) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return null;
-      let bucket = this[_getBucket](rest, key);
+      let bucket = this[_getBucket$](rest, key);
       let index = this[_findBucketIndex](bucket, key);
       if (dart.notNull(index) < 0) return null;
-      this[_length] = dart.notNull(this[_length]) - 1;
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
       this[_keys] = null;
       return bucket.splice(index, 2)[1];
     }
     clear() {
-      if (dart.notNull(this[_length]) > 0) {
-        this[_strings] = this[_nums] = this[_rest] = this[_keys] = null;
-        this[_length] = 0;
+      if (dart.notNull(this[_length$1]) > 0) {
+        this[_strings$] = this[_nums$] = this[_rest$] = this[_keys] = null;
+        this[_length$1] = 0;
       }
     }
     forEach(action) {
@@ -23831,9 +23834,9 @@
     }
     [_computeKeys]() {
       if (this[_keys] != null) return this[_keys];
-      let result = ListOfK().new(this[_length]);
+      let result = ListOfK().new(this[_length$1]);
       let index = 0;
-      let strings = this[_strings];
+      let strings = this[_strings$];
       if (strings != null) {
         let names = Object.getOwnPropertyNames(strings);
         let entries = names.length;
@@ -23843,7 +23846,7 @@
           index++;
         }
       }
-      let nums = this[_nums];
+      let nums = this[_nums$];
       if (nums != null) {
         let names = Object.getOwnPropertyNames(nums);
         let entries = names.length;
@@ -23853,7 +23856,7 @@
           index++;
         }
       }
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest != null) {
         let names = Object.getOwnPropertyNames(rest);
         let entries = names.length;
@@ -23868,23 +23871,23 @@
           }
         }
       }
-      dart.assert(index == this[_length]);
+      dart.assert(index == this[_length$1]);
       return this[_keys] = result;
     }
-    [_addHashTableEntry](table, key, value) {
+    [_addHashTableEntry$](table, key, value) {
       K._check(key);
       V._check(value);
       if (!dart.test(collection._HashMap._hasTableEntry(table, key))) {
-        this[_length] = dart.notNull(this[_length]) + 1;
+        this[_length$1] = dart.notNull(this[_length$1]) + 1;
         this[_keys] = null;
       }
       collection._HashMap._setTableEntry(table, key, value);
     }
-    [_removeHashTableEntry](table, key) {
+    [_removeHashTableEntry$](table, key) {
       if (table != null && dart.test(collection._HashMap._hasTableEntry(table, key))) {
         let value = V._check(collection._HashMap._getTableEntry(table, key));
         collection._HashMap._deleteTableEntry(table, key);
-        this[_length] = dart.notNull(this[_length]) - 1;
+        this[_length$1] = dart.notNull(this[_length$1]) - 1;
         this[_keys] = null;
         return value;
       } else {
@@ -23918,7 +23921,7 @@
     static _deleteTableEntry(table, key) {
       delete table[key];
     }
-    [_getBucket](table, key) {
+    [_getBucket$](table, key) {
       let hash = this[_computeHashCode](key);
       return table[hash];
     }
@@ -23943,10 +23946,10 @@
   dart.setSignature(_HashMap, {
     constructors: () => ({new: dart.definiteFunctionType(collection._HashMap$(K, V), [])}),
     fields: () => ({
-      [_length]: core.int,
-      [_strings]: dart.dynamic,
-      [_nums]: dart.dynamic,
-      [_rest]: dart.dynamic,
+      [_length$1]: core.int,
+      [_strings$]: dart.dynamic,
+      [_nums$]: dart.dynamic,
+      [_rest$]: dart.dynamic,
       [_keys]: ListOfK()
     }),
     getters: () => ({
@@ -23971,10 +23974,10 @@
       clear: dart.definiteFunctionType(dart.void, []),
       forEach: dart.definiteFunctionType(dart.void, [KAndVTovoid()]),
       [_computeKeys]: dart.definiteFunctionType(core.List$(K), []),
-      [_addHashTableEntry]: dart.definiteFunctionType(dart.void, [dart.dynamic, K, V]),
-      [_removeHashTableEntry]: dart.definiteFunctionType(V, [dart.dynamic, core.Object]),
+      [_addHashTableEntry$]: dart.definiteFunctionType(dart.void, [dart.dynamic, K, V]),
+      [_removeHashTableEntry$]: dart.definiteFunctionType(V, [dart.dynamic, core.Object]),
       [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
-      [_getBucket]: dart.definiteFunctionType(core.List, [dart.dynamic, dart.dynamic]),
+      [_getBucket$]: dart.definiteFunctionType(core.List, [dart.dynamic, dart.dynamic]),
       [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, core.Object])
     }),
     statics: () => ({
@@ -24027,7 +24030,7 @@
   return _IdentityHashMap;
 });
 collection._IdentityHashMap = _IdentityHashMap();
-const _equals = Symbol('_equals');
+const _equals$ = Symbol('_equals');
 const _hashCode = Symbol('_hashCode');
 const _validKey = Symbol('_validKey');
 collection._CustomHashMap$ = dart.generic((K, V) => {
@@ -24035,7 +24038,7 @@
   let _HasherOfK = () => (_HasherOfK = dart.constFn(collection._Hasher$(K)))();
   class _CustomHashMap extends collection._HashMap$(K, V) {
     new(equals, hashCode, validKey) {
-      this[_equals] = equals;
+      this[_equals$] = equals;
       this[_hashCode] = hashCode;
       this[_validKey] = validKey != null ? validKey : dart.fn(v => K.is(v), ObjectTobool());
       super.new();
@@ -24065,7 +24068,7 @@
       if (bucket == null) return -1;
       let length = bucket.length;
       for (let i = 0; i < length; i = i + 2) {
-        if (dart.test(this[_equals](bucket[i], K._check(key)))) return i;
+        if (dart.test(this[_equals$](bucket[i], K._check(key)))) return i;
       }
       return -1;
     }
@@ -24076,7 +24079,7 @@
   dart.setSignature(_CustomHashMap, {
     constructors: () => ({new: dart.definiteFunctionType(collection._CustomHashMap$(K, V), [_EqualityOfK(), _HasherOfK(), _PredicateOfObject()])}),
     fields: () => ({
-      [_equals]: _EqualityOfK(),
+      [_equals$]: _EqualityOfK(),
       [_hashCode]: _HasherOfK(),
       [_validKey]: _PredicateOfObject()
     })
@@ -24085,34 +24088,34 @@
   return _CustomHashMap;
 });
 collection._CustomHashMap = _CustomHashMap();
-const _map = Symbol('_map');
+const _map$0 = Symbol('_map');
 collection._HashMapKeyIterable$ = dart.generic(E => {
   let _HashMapKeyIteratorOfE = () => (_HashMapKeyIteratorOfE = dart.constFn(collection._HashMapKeyIterator$(E)))();
   let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
   let _HashMapOfE$dynamic = () => (_HashMapOfE$dynamic = dart.constFn(collection._HashMap$(E, dart.dynamic)))();
   class _HashMapKeyIterable extends core.Iterable$(E) {
     new(map) {
-      this[_map] = map;
+      this[_map$0] = map;
       super.new();
     }
     get length() {
-      return this[_map][_length];
+      return this[_map$0][_length$1];
     }
     get isEmpty() {
-      return this[_map][_length] == 0;
+      return this[_map$0][_length$1] == 0;
     }
     get iterator() {
-      return new (_HashMapKeyIteratorOfE())(this[_map], this[_map][_computeKeys]());
+      return new (_HashMapKeyIteratorOfE())(this[_map$0], this[_map$0][_computeKeys]());
     }
     contains(element) {
-      return this[_map].containsKey(element);
+      return this[_map$0].containsKey(element);
     }
     forEach(f) {
-      let keys = this[_map][_computeKeys]();
+      let keys = this[_map$0][_computeKeys]();
       for (let i = 0, length = keys.length; i < length; i++) {
         f(keys[i]);
-        if (keys !== this[_map][_keys]) {
-          dart.throw(new core.ConcurrentModificationError(this[_map]));
+        if (keys !== this[_map$0][_keys]) {
+          dart.throw(new core.ConcurrentModificationError(this[_map$0]));
         }
       }
     }
@@ -24120,7 +24123,7 @@
   _HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
   dart.setSignature(_HashMapKeyIterable, {
     constructors: () => ({new: dart.definiteFunctionType(collection._HashMapKeyIterable$(E), [_HashMapOfE$dynamic()])}),
-    fields: () => ({[_map]: _HashMapOfE$dynamic()}),
+    fields: () => ({[_map$0]: _HashMapOfE$dynamic()}),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
   });
   dart.defineExtensionMembers(_HashMapKeyIterable, [
@@ -24134,31 +24137,31 @@
 });
 collection._HashMapKeyIterable = _HashMapKeyIterable();
 const _offset = Symbol('_offset');
-const _current = Symbol('_current');
+const _current$2 = Symbol('_current');
 collection._HashMapKeyIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   let _HashMapOfE$dynamic = () => (_HashMapOfE$dynamic = dart.constFn(collection._HashMap$(E, dart.dynamic)))();
   let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
   class _HashMapKeyIterator extends core.Object {
     new(map, keys) {
-      this[_map] = map;
+      this[_map$0] = map;
       this[_keys] = keys;
       this[_offset] = 0;
-      this[_current] = null;
+      this[_current$2] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
     moveNext() {
       let keys = this[_keys];
       let offset = this[_offset];
-      if (keys !== this[_map][_keys]) {
-        dart.throw(new core.ConcurrentModificationError(this[_map]));
+      if (keys !== this[_map$0][_keys]) {
+        dart.throw(new core.ConcurrentModificationError(this[_map$0]));
       } else if (dart.notNull(offset) >= keys.length) {
-        this[_current] = null;
+        this[_current$2] = null;
         return false;
       } else {
-        this[_current] = keys[offset];
+        this[_current$2] = keys[offset];
         this[_offset] = dart.notNull(offset) + 1;
         return true;
       }
@@ -24169,10 +24172,10 @@
   dart.setSignature(_HashMapKeyIterator, {
     constructors: () => ({new: dart.definiteFunctionType(collection._HashMapKeyIterator$(E), [_HashMapOfE$dynamic(), ListOfE()])}),
     fields: () => ({
-      [_map]: _HashMapOfE$dynamic(),
+      [_map$0]: _HashMapOfE$dynamic(),
       [_keys]: ListOfE(),
       [_offset]: core.int,
-      [_current]: E
+      [_current$2]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -24216,8 +24219,8 @@
   return _LinkedIdentityHashMap;
 });
 collection._LinkedIdentityHashMap = _LinkedIdentityHashMap();
-const _modifications = Symbol('_modifications');
-const _modified = Symbol('_modified');
+const _modifications$ = Symbol('_modifications');
+const _modified$ = Symbol('_modified');
 collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
   let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
   let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
@@ -24229,12 +24232,12 @@
   let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
   class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
     new() {
-      this[_map] = new Map();
-      this[_modifications] = 0;
+      this[_map$0] = new Map();
+      this[_modifications$] = 0;
       super.new();
     }
     get length() {
-      return this[_map].size;
+      return this[_map$0].size;
     }
     get isEmpty() {
       return this.length == 0;
@@ -24249,7 +24252,7 @@
       return new (_Es6MapIterableOfV())(this, false);
     }
     containsKey(key) {
-      return this[_map].has(key);
+      return this[_map$0].has(key);
     }
     containsValue(value) {
       return this.values[dartx.any](dart.fn(each => dart.equals(each, value), VTobool()));
@@ -24261,13 +24264,13 @@
       }, KAndVToNull()));
     }
     _get(key) {
-      return this[_map].get(key);
+      return this[_map$0].get(key);
     }
     _set(key, value) {
       K._check(key);
       V._check(value);
-      this[_map].set(key, value);
-      this[_modified]();
+      this[_map$0].set(key, value);
+      this[_modified$]();
       return value;
     }
     putIfAbsent(key, ifAbsent) {
@@ -24280,17 +24283,17 @@
     }
     remove(key) {
       let value = this._get(key);
-      this[_map].delete(key);
-      this[_modified]();
+      this[_map$0].delete(key);
+      this[_modified$]();
       return value;
     }
     clear() {
-      this[_map].clear();
-      this[_modified]();
+      this[_map$0].clear();
+      this[_modified$]();
     }
     forEach(action) {
-      let jsEntries = this[_map].entries();
-      let modifications = this[_modifications];
+      let jsEntries = this[_map$0].entries();
+      let modifications = this[_modifications$];
       while (true) {
         let next = jsEntries.next();
         let done = next.done;
@@ -24299,13 +24302,13 @@
         let key = entry[0];
         let value = entry[1];
         action(K._check(key), V._check(value));
-        if (modifications != this[_modifications]) {
+        if (modifications != this[_modifications$]) {
           dart.throw(new core.ConcurrentModificationError(this));
         }
       }
     }
-    [_modified]() {
-      this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863;
+    [_modified$]() {
+      this[_modifications$] = dart.notNull(this[_modifications$]) + 1 & 67108863;
     }
     toString() {
       return collection.Maps.mapToString(this);
@@ -24315,10 +24318,10 @@
   dart.setSignature(_Es6LinkedIdentityHashMap, {
     constructors: () => ({new: dart.definiteFunctionType(collection._Es6LinkedIdentityHashMap$(K, V), [])}),
     fields: () => ({
-      [_map]: dart.dynamic,
-      [_modifications]: core.int
+      [_map$0]: dart.dynamic,
+      [_modifications$]: core.int
     }),
-    methods: () => ({[_modified]: dart.definiteFunctionType(dart.void, [])})
+    methods: () => ({[_modified$]: dart.definiteFunctionType(dart.void, [])})
   });
   dart.defineExtensionMembers(_Es6LinkedIdentityHashMap, [
     'containsKey',
@@ -24345,38 +24348,38 @@
   let ETovoid = () => (ETovoid = dart.constFn(dart.functionType(dart.void, [E])))();
   class _Es6MapIterable extends core.Iterable$(E) {
     new(map, isKeys) {
-      this[_map] = map;
+      this[_map$0] = map;
       this[_isKeys] = isKeys;
       super.new();
     }
     get length() {
-      return core.int._check(dart.dload(this[_map], 'length'));
+      return core.int._check(dart.dload(this[_map$0], 'length'));
     }
     get isEmpty() {
-      return core.bool._check(dart.dload(this[_map], 'isEmpty'));
+      return core.bool._check(dart.dload(this[_map$0], 'isEmpty'));
     }
     get iterator() {
-      return new (_Es6MapIteratorOfE())(this[_map], core.int._check(dart.dload(this[_map], _modifications)), this[_isKeys]);
+      return new (_Es6MapIteratorOfE())(this[_map$0], core.int._check(dart.dload(this[_map$0], _modifications$)), this[_isKeys]);
     }
     contains(element) {
-      return core.bool._check(dart.dsend(this[_map], 'containsKey', element));
+      return core.bool._check(dart.dsend(this[_map$0], 'containsKey', element));
     }
     forEach(f) {
       let jsIterator = null;
       if (dart.test(this[_isKeys])) {
-        jsIterator = dart.dload(this[_map], _map).keys();
+        jsIterator = dart.dload(this[_map$0], _map$0).keys();
       } else {
-        jsIterator = dart.dload(this[_map], _map).values();
+        jsIterator = dart.dload(this[_map$0], _map$0).values();
       }
-      let modifications = core.int._check(dart.dload(this[_map], _modifications));
+      let modifications = core.int._check(dart.dload(this[_map$0], _modifications$));
       while (true) {
         let next = jsIterator.next();
         let done = next.done;
         if (done) break;
         let value = next.value;
         f(E._check(value));
-        if (!dart.equals(modifications, dart.dload(this[_map], _modifications))) {
-          dart.throw(new core.ConcurrentModificationError(this[_map]));
+        if (!dart.equals(modifications, dart.dload(this[_map$0], _modifications$))) {
+          dart.throw(new core.ConcurrentModificationError(this[_map$0]));
         }
       }
     }
@@ -24385,7 +24388,7 @@
   dart.setSignature(_Es6MapIterable, {
     constructors: () => ({new: dart.definiteFunctionType(collection._Es6MapIterable$(E), [dart.dynamic, core.bool])}),
     fields: () => ({
-      [_map]: dart.dynamic,
+      [_map$0]: dart.dynamic,
       [_isKeys]: core.bool
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])})
@@ -24400,43 +24403,43 @@
   return _Es6MapIterable;
 });
 collection._Es6MapIterable = _Es6MapIterable();
-const _jsIterator = Symbol('_jsIterator');
-const _next = Symbol('_next');
+const _jsIterator$ = Symbol('_jsIterator');
+const _next$0 = Symbol('_next');
 const _done = Symbol('_done');
 collection._Es6MapIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   class _Es6MapIterator extends core.Object {
     new(map, modifications, isKeys) {
-      this[_map] = map;
-      this[_modifications] = modifications;
+      this[_map$0] = map;
+      this[_modifications$] = modifications;
       this[_isKeys] = isKeys;
-      this[_jsIterator] = null;
-      this[_next] = null;
-      this[_current] = null;
+      this[_jsIterator$] = null;
+      this[_next$0] = null;
+      this[_current$2] = null;
       this[_done] = null;
       if (dart.test(this[_isKeys])) {
-        this[_jsIterator] = dart.dload(this[_map], _map).keys();
+        this[_jsIterator$] = dart.dload(this[_map$0], _map$0).keys();
       } else {
-        this[_jsIterator] = dart.dload(this[_map], _map).values();
+        this[_jsIterator$] = dart.dload(this[_map$0], _map$0).values();
       }
       this[_done] = false;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
     moveNext() {
-      if (!dart.equals(this[_modifications], dart.dload(this[_map], _modifications))) {
-        dart.throw(new core.ConcurrentModificationError(this[_map]));
+      if (!dart.equals(this[_modifications$], dart.dload(this[_map$0], _modifications$))) {
+        dart.throw(new core.ConcurrentModificationError(this[_map$0]));
       }
       if (dart.test(this[_done])) return false;
-      this[_next] = this[_jsIterator].next();
-      let done = this[_next].done;
+      this[_next$0] = this[_jsIterator$].next();
+      let done = this[_next$0].done;
       if (done) {
-        this[_current] = null;
+        this[_current$2] = null;
         this[_done] = true;
         return false;
       } else {
-        this[_current] = this[_next].value;
+        this[_current$2] = this[_next$0].value;
         return true;
       }
     }
@@ -24446,12 +24449,12 @@
   dart.setSignature(_Es6MapIterator, {
     constructors: () => ({new: dart.definiteFunctionType(collection._Es6MapIterator$(E), [dart.dynamic, core.int, core.bool])}),
     fields: () => ({
-      [_map]: dart.dynamic,
-      [_modifications]: core.int,
+      [_map$0]: dart.dynamic,
+      [_modifications$]: core.int,
       [_isKeys]: core.bool,
-      [_jsIterator]: dart.dynamic,
-      [_next]: dart.dynamic,
-      [_current]: E,
+      [_jsIterator$]: dart.dynamic,
+      [_next$0]: dart.dynamic,
+      [_current$2]: E,
       [_done]: core.bool
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
@@ -24465,7 +24468,7 @@
   let _HasherOfK = () => (_HasherOfK = dart.constFn(collection._Hasher$(K)))();
   class _LinkedCustomHashMap extends _js_helper.JsLinkedHashMap$(K, V) {
     new(equals, hashCode, validKey) {
-      this[_equals] = equals;
+      this[_equals$] = equals;
       this[_hashCode] = hashCode;
       this[_validKey] = validKey != null ? validKey : dart.fn(v => K.is(v), ObjectTobool());
       super.new();
@@ -24496,7 +24499,7 @@
       let length = bucket.length;
       for (let i = 0; i < length; i++) {
         let cell = bucket[i];
-        if (dart.test(this[_equals](cell.hashMapCellKey, K._check(key)))) return i;
+        if (dart.test(this[_equals$](cell.hashMapCellKey, K._check(key)))) return i;
       }
       return -1;
     }
@@ -24504,7 +24507,7 @@
   dart.setSignature(_LinkedCustomHashMap, {
     constructors: () => ({new: dart.definiteFunctionType(collection._LinkedCustomHashMap$(K, V), [_EqualityOfK(), _HasherOfK(), _PredicateOfObject()])}),
     fields: () => ({
-      [_equals]: _EqualityOfK(),
+      [_equals$]: _EqualityOfK(),
       [_hashCode]: _HasherOfK(),
       [_validKey]: _PredicateOfObject()
     })
@@ -24518,7 +24521,7 @@
 const _computeElements = Symbol('_computeElements');
 const _contains = Symbol('_contains');
 const _lookup = Symbol('_lookup');
-const _add = Symbol('_add');
+const _add$0 = Symbol('_add');
 collection.SetMixin$ = dart.generic(E => {
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   let SetOfE = () => (SetOfE = dart.constFn(core.Set$(E)))();
@@ -24892,10 +24895,10 @@
   let HashSetOfE = () => (HashSetOfE = dart.constFn(collection.HashSet$(E)))();
   class _HashSet extends collection._HashSetBase$(E) {
     new() {
-      this[_length] = 0;
-      this[_strings] = null;
-      this[_nums] = null;
-      this[_rest] = null;
+      this[_length$1] = 0;
+      this[_strings$] = null;
+      this[_nums$] = null;
+      this[_rest$] = null;
       this[_elements] = null;
     }
     [_newSet]() {
@@ -24905,29 +24908,29 @@
       return new (_HashSetIteratorOfE())(this, this[_computeElements]());
     }
     get length() {
-      return this[_length];
+      return this[_length$1];
     }
     get isEmpty() {
-      return this[_length] == 0;
+      return this[_length$1] == 0;
     }
     get isNotEmpty() {
       return !dart.test(this.isEmpty);
     }
     contains(object) {
       if (dart.test(collection._HashSet._isStringElement(object))) {
-        let strings = this[_strings];
+        let strings = this[_strings$];
         return strings == null ? false : collection._HashSet._hasTableEntry(strings, object);
       } else if (dart.test(collection._HashSet._isNumericElement(object))) {
-        let nums = this[_nums];
+        let nums = this[_nums$];
         return nums == null ? false : collection._HashSet._hasTableEntry(nums, object);
       } else {
         return this[_contains](object);
       }
     }
     [_contains](object) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return false;
-      let bucket = this[_getBucket](rest, object);
+      let bucket = this[_getBucket$](rest, object);
       return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
     }
     lookup(object) {
@@ -24937,9 +24940,9 @@
       return this[_lookup](object);
     }
     [_lookup](object) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return null;
-      let bucket = this[_getBucket](rest, object);
+      let bucket = this[_getBucket$](rest, object);
       let index = this[_findBucketIndex](bucket, object);
       if (dart.notNull(index) < 0) return null;
       return bucket[dartx._get](index);
@@ -24947,21 +24950,21 @@
     add(element) {
       E._check(element);
       if (dart.test(collection._HashSet._isStringElement(element))) {
-        let strings = this[_strings];
-        if (strings == null) this[_strings] = strings = collection._HashSet._newHashTable();
-        return this[_addHashTableEntry](strings, element);
+        let strings = this[_strings$];
+        if (strings == null) this[_strings$] = strings = collection._HashSet._newHashTable();
+        return this[_addHashTableEntry$](strings, element);
       } else if (dart.test(collection._HashSet._isNumericElement(element))) {
-        let nums = this[_nums];
-        if (nums == null) this[_nums] = nums = collection._HashSet._newHashTable();
-        return this[_addHashTableEntry](nums, element);
+        let nums = this[_nums$];
+        if (nums == null) this[_nums$] = nums = collection._HashSet._newHashTable();
+        return this[_addHashTableEntry$](nums, element);
       } else {
-        return this[_add](element);
+        return this[_add$0](element);
       }
     }
-    [_add](element) {
+    [_add$0](element) {
       E._check(element);
-      let rest = this[_rest];
-      if (rest == null) this[_rest] = rest = collection._HashSet._newHashTable();
+      let rest = this[_rest$];
+      if (rest == null) this[_rest$] = rest = collection._HashSet._newHashTable();
       let hash = this[_computeHashCode](element);
       let bucket = rest[hash];
       if (bucket == null) {
@@ -24971,7 +24974,7 @@
         if (dart.notNull(index) >= 0) return false;
         bucket.push(element);
       }
-      this[_length] = dart.notNull(this[_length]) + 1;
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
       this[_elements] = null;
       return true;
     }
@@ -24983,35 +24986,35 @@
     }
     remove(object) {
       if (dart.test(collection._HashSet._isStringElement(object))) {
-        return this[_removeHashTableEntry](this[_strings], object);
+        return this[_removeHashTableEntry$](this[_strings$], object);
       } else if (dart.test(collection._HashSet._isNumericElement(object))) {
-        return this[_removeHashTableEntry](this[_nums], object);
+        return this[_removeHashTableEntry$](this[_nums$], object);
       } else {
         return this[_remove](object);
       }
     }
     [_remove](object) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return false;
-      let bucket = this[_getBucket](rest, object);
+      let bucket = this[_getBucket$](rest, object);
       let index = this[_findBucketIndex](bucket, object);
       if (dart.notNull(index) < 0) return false;
-      this[_length] = dart.notNull(this[_length]) - 1;
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
       this[_elements] = null;
       bucket.splice(index, 1);
       return true;
     }
     clear() {
-      if (dart.notNull(this[_length]) > 0) {
-        this[_strings] = this[_nums] = this[_rest] = this[_elements] = null;
-        this[_length] = 0;
+      if (dart.notNull(this[_length$1]) > 0) {
+        this[_strings$] = this[_nums$] = this[_rest$] = this[_elements] = null;
+        this[_length$1] = 0;
       }
     }
     [_computeElements]() {
       if (this[_elements] != null) return this[_elements];
-      let result = ListOfE().new(this[_length]);
+      let result = ListOfE().new(this[_length$1]);
       let index = 0;
-      let strings = this[_strings];
+      let strings = this[_strings$];
       if (strings != null) {
         let names = Object.getOwnPropertyNames(strings);
         let entries = names.length;
@@ -25021,7 +25024,7 @@
           index++;
         }
       }
-      let nums = this[_nums];
+      let nums = this[_nums$];
       if (nums != null) {
         let names = Object.getOwnPropertyNames(nums);
         let entries = names.length;
@@ -25031,7 +25034,7 @@
           index++;
         }
       }
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest != null) {
         let names = Object.getOwnPropertyNames(rest);
         let entries = names.length;
@@ -25045,21 +25048,21 @@
           }
         }
       }
-      dart.assert(index == this[_length]);
+      dart.assert(index == this[_length$1]);
       return this[_elements] = result;
     }
-    [_addHashTableEntry](table, element) {
+    [_addHashTableEntry$](table, element) {
       E._check(element);
       if (dart.test(collection._HashSet._hasTableEntry(table, element))) return false;
       collection._HashSet._setTableEntry(table, element, 0);
-      this[_length] = dart.notNull(this[_length]) + 1;
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
       this[_elements] = null;
       return true;
     }
-    [_removeHashTableEntry](table, element) {
+    [_removeHashTableEntry$](table, element) {
       if (table != null && dart.test(collection._HashSet._hasTableEntry(table, element))) {
         collection._HashSet._deleteTableEntry(table, element);
-        this[_length] = dart.notNull(this[_length]) - 1;
+        this[_length$1] = dart.notNull(this[_length$1]) - 1;
         this[_elements] = null;
         return true;
       } else {
@@ -25086,7 +25089,7 @@
     static _deleteTableEntry(table, key) {
       delete table[key];
     }
-    [_getBucket](table, element) {
+    [_getBucket$](table, element) {
       let hash = this[_computeHashCode](element);
       return table[hash];
     }
@@ -25110,10 +25113,10 @@
   dart.setSignature(_HashSet, {
     constructors: () => ({new: dart.definiteFunctionType(collection._HashSet$(E), [])}),
     fields: () => ({
-      [_length]: core.int,
-      [_strings]: dart.dynamic,
-      [_nums]: dart.dynamic,
-      [_rest]: dart.dynamic,
+      [_length$1]: core.int,
+      [_strings$]: dart.dynamic,
+      [_nums$]: dart.dynamic,
+      [_rest$]: dart.dynamic,
       [_elements]: ListOfE()
     }),
     getters: () => ({
@@ -25127,14 +25130,14 @@
       lookup: dart.definiteFunctionType(E, [core.Object]),
       [_lookup]: dart.definiteFunctionType(E, [core.Object]),
       add: dart.definiteFunctionType(core.bool, [E]),
-      [_add]: dart.definiteFunctionType(core.bool, [E]),
+      [_add$0]: dart.definiteFunctionType(core.bool, [E]),
       remove: dart.definiteFunctionType(core.bool, [core.Object]),
       [_remove]: dart.definiteFunctionType(core.bool, [core.Object]),
       [_computeElements]: dart.definiteFunctionType(core.List$(E), []),
-      [_addHashTableEntry]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
-      [_removeHashTableEntry]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
+      [_addHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
+      [_removeHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
       [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
-      [_getBucket]: dart.definiteFunctionType(core.List$(E), [dart.dynamic, dart.dynamic]),
+      [_getBucket$]: dart.definiteFunctionType(core.List$(E), [dart.dynamic, dart.dynamic]),
       [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])
     }),
     statics: () => ({
@@ -25210,7 +25213,7 @@
     }
     add(object) {
       E._check(object);
-      return super[_add](object);
+      return super[_add$0](object);
     }
     contains(object) {
       if (!dart.test(this[_validKey](object))) return false;
@@ -25245,10 +25248,10 @@
       this[_set] = set;
       this[_elements] = elements;
       this[_offset] = 0;
-      this[_current] = null;
+      this[_current$2] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
     moveNext() {
       let elements = this[_elements];
@@ -25256,10 +25259,10 @@
       if (elements !== dart.dload(this[_set], _elements)) {
         dart.throw(new core.ConcurrentModificationError(this[_set]));
       } else if (dart.notNull(offset) >= elements.length) {
-        this[_current] = null;
+        this[_current$2] = null;
         return false;
       } else {
-        this[_current] = elements[offset];
+        this[_current$2] = elements[offset];
         this[_offset] = dart.notNull(offset) + 1;
         return true;
       }
@@ -25273,7 +25276,7 @@
       [_set]: dart.dynamic,
       [_elements]: ListOfE(),
       [_offset]: core.int,
-      [_current]: E
+      [_current$2]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -25281,15 +25284,15 @@
   return _HashSetIterator;
 });
 collection._HashSetIterator = _HashSetIterator();
-const _first = Symbol('_first');
-const _last = Symbol('_last');
+const _first$ = Symbol('_first');
+const _last$ = Symbol('_last');
 const _unsupported = Symbol('_unsupported');
 const _getTableEntry = Symbol('_getTableEntry');
 const _element = Symbol('_element');
-const _newLinkedCell = Symbol('_newLinkedCell');
-const _unlinkCell = Symbol('_unlinkCell');
+const _newLinkedCell$ = Symbol('_newLinkedCell');
+const _unlinkCell$ = Symbol('_unlinkCell');
 const _filterWhere = Symbol('_filterWhere');
-const _previous = Symbol('_previous');
+const _previous$0 = Symbol('_previous');
 collection._LinkedHashSet$ = dart.generic(E => {
   let _LinkedHashSetOfE = () => (_LinkedHashSetOfE = dart.constFn(collection._LinkedHashSet$(E)))();
   let _LinkedHashSetIteratorOfE = () => (_LinkedHashSetIteratorOfE = dart.constFn(collection._LinkedHashSetIterator$(E)))();
@@ -25299,13 +25302,13 @@
   let ETobool = () => (ETobool = dart.constFn(dart.functionType(core.bool, [E])))();
   class _LinkedHashSet extends collection._HashSetBase$(E) {
     new() {
-      this[_length] = 0;
-      this[_strings] = null;
-      this[_nums] = null;
-      this[_rest] = null;
-      this[_first] = null;
-      this[_last] = null;
-      this[_modifications] = 0;
+      this[_length$1] = 0;
+      this[_strings$] = null;
+      this[_nums$] = null;
+      this[_rest$] = null;
+      this[_first$] = null;
+      this[_last$] = null;
+      this[_modifications$] = 0;
     }
     [_newSet]() {
       return new (_LinkedHashSetOfE())();
@@ -25314,25 +25317,25 @@
       dart.throw(dart.str`LinkedHashSet: unsupported ${operation}`);
     }
     get iterator() {
-      return new (_LinkedHashSetIteratorOfE())(this, this[_modifications]);
+      return new (_LinkedHashSetIteratorOfE())(this, this[_modifications$]);
     }
     get length() {
-      return this[_length];
+      return this[_length$1];
     }
     get isEmpty() {
-      return this[_length] == 0;
+      return this[_length$1] == 0;
     }
     get isNotEmpty() {
       return !dart.test(this.isEmpty);
     }
     contains(object) {
       if (dart.test(collection._LinkedHashSet._isStringElement(object))) {
-        let strings = this[_strings];
+        let strings = this[_strings$];
         if (strings == null) return false;
         let cell = this[_getTableEntry](strings, object);
         return cell != null;
       } else if (dart.test(collection._LinkedHashSet._isNumericElement(object))) {
-        let nums = this[_nums];
+        let nums = this[_nums$];
         if (nums == null) return false;
         let cell = this[_getTableEntry](nums, object);
         return cell != null;
@@ -25341,9 +25344,9 @@
       }
     }
     [_contains](object) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return false;
-      let bucket = this[_getBucket](rest, object);
+      let bucket = this[_getBucket$](rest, object);
       return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
     }
     lookup(object) {
@@ -25354,80 +25357,80 @@
       }
     }
     [_lookup](object) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return null;
-      let bucket = this[_getBucket](rest, object);
+      let bucket = this[_getBucket$](rest, object);
       let index = this[_findBucketIndex](bucket, object);
       if (dart.notNull(index) < 0) return null;
       return bucket[dartx._get](index)[_element];
     }
     forEach(action) {
-      let cell = this[_first];
-      let modifications = this[_modifications];
+      let cell = this[_first$];
+      let modifications = this[_modifications$];
       while (cell != null) {
         action(cell[_element]);
-        if (modifications != this[_modifications]) {
+        if (modifications != this[_modifications$]) {
           dart.throw(new core.ConcurrentModificationError(this));
         }
-        cell = cell[_next];
+        cell = cell[_next$0];
       }
     }
     get first() {
-      if (this[_first] == null) dart.throw(new core.StateError("No elements"));
-      return this[_first][_element];
+      if (this[_first$] == null) dart.throw(new core.StateError("No elements"));
+      return this[_first$][_element];
     }
     get last() {
-      if (this[_last] == null) dart.throw(new core.StateError("No elements"));
-      return this[_last][_element];
+      if (this[_last$] == null) dart.throw(new core.StateError("No elements"));
+      return this[_last$][_element];
     }
     add(element) {
       E._check(element);
       if (dart.test(collection._LinkedHashSet._isStringElement(element))) {
-        let strings = this[_strings];
-        if (strings == null) this[_strings] = strings = collection._LinkedHashSet._newHashTable();
-        return this[_addHashTableEntry](strings, element);
+        let strings = this[_strings$];
+        if (strings == null) this[_strings$] = strings = collection._LinkedHashSet._newHashTable();
+        return this[_addHashTableEntry$](strings, element);
       } else if (dart.test(collection._LinkedHashSet._isNumericElement(element))) {
-        let nums = this[_nums];
-        if (nums == null) this[_nums] = nums = collection._LinkedHashSet._newHashTable();
-        return this[_addHashTableEntry](nums, element);
+        let nums = this[_nums$];
+        if (nums == null) this[_nums$] = nums = collection._LinkedHashSet._newHashTable();
+        return this[_addHashTableEntry$](nums, element);
       } else {
-        return this[_add](element);
+        return this[_add$0](element);
       }
     }
-    [_add](element) {
+    [_add$0](element) {
       E._check(element);
-      let rest = this[_rest];
-      if (rest == null) this[_rest] = rest = collection._LinkedHashSet._newHashTable();
+      let rest = this[_rest$];
+      if (rest == null) this[_rest$] = rest = collection._LinkedHashSet._newHashTable();
       let hash = this[_computeHashCode](element);
       let bucket = rest[hash];
       if (bucket == null) {
-        let cell = this[_newLinkedCell](element);
+        let cell = this[_newLinkedCell$](element);
         collection._LinkedHashSet._setTableEntry(rest, hash, [cell]);
       } else {
         let index = this[_findBucketIndex](bucket, element);
         if (dart.notNull(index) >= 0) return false;
-        let cell = this[_newLinkedCell](element);
+        let cell = this[_newLinkedCell$](element);
         bucket.push(cell);
       }
       return true;
     }
     remove(object) {
       if (dart.test(collection._LinkedHashSet._isStringElement(object))) {
-        return this[_removeHashTableEntry](this[_strings], object);
+        return this[_removeHashTableEntry$](this[_strings$], object);
       } else if (dart.test(collection._LinkedHashSet._isNumericElement(object))) {
-        return this[_removeHashTableEntry](this[_nums], object);
+        return this[_removeHashTableEntry$](this[_nums$], object);
       } else {
         return this[_remove](object);
       }
     }
     [_remove](object) {
-      let rest = this[_rest];
+      let rest = this[_rest$];
       if (rest == null) return false;
-      let bucket = this[_getBucket](rest, object);
+      let bucket = this[_getBucket$](rest, object);
       let index = this[_findBucketIndex](bucket, object);
       if (dart.notNull(index) < 0) return false;
       let cell = bucket.splice(index, 1)[0];
-      this[_unlinkCell](cell);
+      this[_unlinkCell$](cell);
       return true;
     }
     removeWhere(test) {
@@ -25437,13 +25440,13 @@
       this[_filterWhere](test, false);
     }
     [_filterWhere](test, removeMatching) {
-      let cell = this[_first];
+      let cell = this[_first$];
       while (cell != null) {
         let element = cell[_element];
-        let next = cell[_next];
-        let modifications = this[_modifications];
+        let next = cell[_next$0];
+        let modifications = this[_modifications$];
         let shouldRemove = removeMatching == test(element);
-        if (modifications != this[_modifications]) {
+        if (modifications != this[_modifications$]) {
           dart.throw(new core.ConcurrentModificationError(this));
         }
         if (shouldRemove) this.remove(element);
@@ -25451,62 +25454,62 @@
       }
     }
     clear() {
-      if (dart.notNull(this[_length]) > 0) {
-        this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last] = null;
-        this[_length] = 0;
-        this[_modified]();
+      if (dart.notNull(this[_length$1]) > 0) {
+        this[_strings$] = this[_nums$] = this[_rest$] = this[_first$] = this[_last$] = null;
+        this[_length$1] = 0;
+        this[_modified$]();
       }
     }
-    [_addHashTableEntry](table, element) {
+    [_addHashTableEntry$](table, element) {
       E._check(element);
       let cell = this[_getTableEntry](table, element);
       if (cell != null) return false;
-      collection._LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell](element));
+      collection._LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell$](element));
       return true;
     }
-    [_removeHashTableEntry](table, element) {
+    [_removeHashTableEntry$](table, element) {
       if (table == null) return false;
       let cell = this[_getTableEntry](table, element);
       if (cell == null) return false;
-      this[_unlinkCell](cell);
+      this[_unlinkCell$](cell);
       collection._LinkedHashSet._deleteTableEntry(table, element);
       return true;
     }
-    [_modified]() {
-      this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863;
+    [_modified$]() {
+      this[_modifications$] = dart.notNull(this[_modifications$]) + 1 & 67108863;
     }
-    [_newLinkedCell](element) {
+    [_newLinkedCell$](element) {
       E._check(element);
       let cell = new (_LinkedHashSetCellOfE())(element);
-      if (this[_first] == null) {
-        this[_first] = this[_last] = cell;
+      if (this[_first$] == null) {
+        this[_first$] = this[_last$] = cell;
       } else {
-        let last = this[_last];
-        cell[_previous] = last;
-        this[_last] = last[_next] = cell;
+        let last = this[_last$];
+        cell[_previous$0] = last;
+        this[_last$] = last[_next$0] = cell;
       }
-      this[_length] = dart.notNull(this[_length]) + 1;
-      this[_modified]();
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
+      this[_modified$]();
       return cell;
     }
-    [_unlinkCell](cell) {
+    [_unlinkCell$](cell) {
       _LinkedHashSetCellOfE()._check(cell);
-      let previous = cell[_previous];
-      let next = cell[_next];
+      let previous = cell[_previous$0];
+      let next = cell[_next$0];
       if (previous == null) {
-        dart.assert(dart.equals(cell, this[_first]));
-        this[_first] = next;
+        dart.assert(dart.equals(cell, this[_first$]));
+        this[_first$] = next;
       } else {
-        previous[_next] = next;
+        previous[_next$0] = next;
       }
       if (next == null) {
-        dart.assert(dart.equals(cell, this[_last]));
-        this[_last] = previous;
+        dart.assert(dart.equals(cell, this[_last$]));
+        this[_last$] = previous;
       } else {
-        next[_previous] = previous;
+        next[_previous$0] = previous;
       }
-      this[_length] = dart.notNull(this[_length]) - 1;
-      this[_modified]();
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
+      this[_modified$]();
     }
     static _isStringElement(element) {
       return typeof element == 'string' && element != '__proto__';
@@ -25527,7 +25530,7 @@
     static _deleteTableEntry(table, key) {
       delete table[key];
     }
-    [_getBucket](table, element) {
+    [_getBucket$](table, element) {
       let hash = this[_computeHashCode](element);
       return table[hash];
     }
@@ -25552,13 +25555,13 @@
   dart.setSignature(_LinkedHashSet, {
     constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSet$(E), [])}),
     fields: () => ({
-      [_length]: core.int,
-      [_strings]: dart.dynamic,
-      [_nums]: dart.dynamic,
-      [_rest]: dart.dynamic,
-      [_first]: _LinkedHashSetCellOfE(),
-      [_last]: _LinkedHashSetCellOfE(),
-      [_modifications]: core.int
+      [_length$1]: core.int,
+      [_strings$]: dart.dynamic,
+      [_nums$]: dart.dynamic,
+      [_rest$]: dart.dynamic,
+      [_first$]: _LinkedHashSetCellOfE(),
+      [_last$]: _LinkedHashSetCellOfE(),
+      [_modifications$]: core.int
     }),
     getters: () => ({
       iterator: dart.definiteFunctionType(core.Iterator$(E), []),
@@ -25572,18 +25575,18 @@
       lookup: dart.definiteFunctionType(E, [core.Object]),
       [_lookup]: dart.definiteFunctionType(E, [core.Object]),
       add: dart.definiteFunctionType(core.bool, [E]),
-      [_add]: dart.definiteFunctionType(core.bool, [E]),
+      [_add$0]: dart.definiteFunctionType(core.bool, [E]),
       remove: dart.definiteFunctionType(core.bool, [core.Object]),
       [_remove]: dart.definiteFunctionType(core.bool, [core.Object]),
       [_filterWhere]: dart.definiteFunctionType(dart.void, [ETobool(), core.bool]),
-      [_addHashTableEntry]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
-      [_removeHashTableEntry]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
-      [_modified]: dart.definiteFunctionType(dart.void, []),
-      [_newLinkedCell]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E]),
-      [_unlinkCell]: dart.definiteFunctionType(dart.void, [_LinkedHashSetCellOfE()]),
+      [_addHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, E]),
+      [_removeHashTableEntry$]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Object]),
+      [_modified$]: dart.definiteFunctionType(dart.void, []),
+      [_newLinkedCell$]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E]),
+      [_unlinkCell$]: dart.definiteFunctionType(dart.void, [_LinkedHashSetCellOfE()]),
       [_computeHashCode]: dart.definiteFunctionType(core.int, [dart.dynamic]),
       [_getTableEntry]: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [dart.dynamic, dart.dynamic]),
-      [_getBucket]: dart.definiteFunctionType(core.List$(collection._LinkedHashSetCell$(E)), [dart.dynamic, dart.dynamic]),
+      [_getBucket$]: dart.definiteFunctionType(core.List$(collection._LinkedHashSetCell$(E)), [dart.dynamic, dart.dynamic]),
       [_findBucketIndex]: dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])
     }),
     statics: () => ({
@@ -25661,7 +25664,7 @@
     }
     add(element) {
       E._check(element);
-      return super[_add](element);
+      return super[_add$0](element);
     }
     contains(object) {
       if (!dart.test(this[_validKey](object))) return false;
@@ -25706,8 +25709,8 @@
   class _LinkedHashSetCell extends core.Object {
     new(element) {
       this[_element] = element;
-      this[_next] = null;
-      this[_previous] = null;
+      this[_next$0] = null;
+      this[_previous$0] = null;
     }
   }
   dart.addTypeTests(_LinkedHashSetCell);
@@ -25715,36 +25718,36 @@
     constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSetCell$(E), [E])}),
     fields: () => ({
       [_element]: E,
-      [_next]: _LinkedHashSetCellOfE(),
-      [_previous]: _LinkedHashSetCellOfE()
+      [_next$0]: _LinkedHashSetCellOfE(),
+      [_previous$0]: _LinkedHashSetCellOfE()
     })
   });
   return _LinkedHashSetCell;
 });
 collection._LinkedHashSetCell = _LinkedHashSetCell();
-const _cell = Symbol('_cell');
+const _cell$ = Symbol('_cell');
 collection._LinkedHashSetIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   class _LinkedHashSetIterator extends core.Object {
     new(set, modifications) {
       this[_set] = set;
-      this[_modifications] = modifications;
-      this[_cell] = null;
-      this[_current] = null;
-      this[_cell] = this[_set][_first];
+      this[_modifications$] = modifications;
+      this[_cell$] = null;
+      this[_current$2] = null;
+      this[_cell$] = this[_set][_first$];
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
     moveNext() {
-      if (this[_modifications] != this[_set][_modifications]) {
+      if (this[_modifications$] != this[_set][_modifications$]) {
         dart.throw(new core.ConcurrentModificationError(this[_set]));
-      } else if (this[_cell] == null) {
-        this[_current] = null;
+      } else if (this[_cell$] == null) {
+        this[_current$2] = null;
         return false;
       } else {
-        this[_current] = E._check(this[_cell][_element]);
-        this[_cell] = this[_cell][_next];
+        this[_current$2] = E._check(this[_cell$][_element]);
+        this[_cell$] = this[_cell$][_next$0];
         return true;
       }
     }
@@ -25755,9 +25758,9 @@
     constructors: () => ({new: dart.definiteFunctionType(collection._LinkedHashSetIterator$(E), [collection._LinkedHashSet, core.int])}),
     fields: () => ({
       [_set]: collection._LinkedHashSet,
-      [_modifications]: core.int,
-      [_cell]: collection._LinkedHashSetCell,
-      [_current]: E
+      [_modifications$]: core.int,
+      [_cell$]: collection._LinkedHashSetCell,
+      [_current$2]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -25765,26 +25768,26 @@
   return _LinkedHashSetIterator;
 });
 collection._LinkedHashSetIterator = _LinkedHashSetIterator();
-const _source = Symbol('_source');
+const _source$0 = Symbol('_source');
 collection.UnmodifiableListView$ = dart.generic(E => {
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
     new(source) {
-      this[_source] = source;
+      this[_source$0] = source;
     }
     get length() {
-      return this[_source][dartx.length];
+      return this[_source$0][dartx.length];
     }
     set length(value) {
       super.length = value;
     }
     _get(index) {
-      return this[_source][dartx.elementAt](index);
+      return this[_source$0][dartx.elementAt](index);
     }
   }
   dart.setSignature(UnmodifiableListView, {
     constructors: () => ({new: dart.definiteFunctionType(collection.UnmodifiableListView$(E), [IterableOfE()])}),
-    fields: () => ({[_source]: IterableOfE()}),
+    fields: () => ({[_source$0]: IterableOfE()}),
     getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
     methods: () => ({_get: dart.definiteFunctionType(E, [core.int])})
   });
@@ -25804,7 +25807,7 @@
   const _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [K, K]));
   return _Equality;
 });
-collection._Equality = _Equality();
+collection._Equality = _Equality$();
 collection._Hasher$ = dart.generic(K => {
   const _Hasher = dart.typedef('_Hasher', () => dart.functionType(core.int, [K]));
   return _Hasher;
@@ -26309,32 +26312,32 @@
   parts[dartx.add](ultimateString);
 };
 dart.lazyFn(collection._iterablePartsToStrings, () => IterableAndListTovoid());
-const _iterator = Symbol('_iterator');
-const _state = Symbol('_state');
+const _iterator$0 = Symbol('_iterator');
+const _state$ = Symbol('_state');
 const _move = Symbol('_move');
 collection.HasNextIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   class HasNextIterator extends core.Object {
     new(iterator) {
-      this[_iterator] = iterator;
-      this[_state] = collection.HasNextIterator._NOT_MOVED_YET;
+      this[_iterator$0] = iterator;
+      this[_state$] = collection.HasNextIterator._NOT_MOVED_YET;
     }
     get hasNext() {
-      if (this[_state] == collection.HasNextIterator._NOT_MOVED_YET) this[_move]();
-      return this[_state] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
+      if (this[_state$] == collection.HasNextIterator._NOT_MOVED_YET) this[_move]();
+      return this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
     }
     next() {
       if (!dart.test(this.hasNext)) dart.throw(new core.StateError("No more elements"));
-      dart.assert(this[_state] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT);
-      let result = this[_iterator].current;
+      dart.assert(this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT);
+      let result = this[_iterator$0].current;
       this[_move]();
       return result;
     }
     [_move]() {
-      if (dart.test(this[_iterator].moveNext())) {
-        this[_state] = collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
+      if (dart.test(this[_iterator$0].moveNext())) {
+        this[_state$] = collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT;
       } else {
-        this[_state] = collection.HasNextIterator._NO_NEXT;
+        this[_state$] = collection.HasNextIterator._NO_NEXT;
       }
     }
   }
@@ -26342,8 +26345,8 @@
   dart.setSignature(HasNextIterator, {
     constructors: () => ({new: dart.definiteFunctionType(collection.HasNextIterator$(E), [IteratorOfE()])}),
     fields: () => ({
-      [_iterator]: IteratorOfE(),
-      [_state]: core.int
+      [_iterator$0]: IteratorOfE(),
+      [_state$]: core.int
     }),
     getters: () => ({hasNext: dart.definiteFunctionType(core.bool, [])}),
     methods: () => ({
@@ -26505,9 +26508,9 @@
 });
 collection.LinkedHashSet = LinkedHashSet();
 const _modificationCount = Symbol('_modificationCount');
-const _insertBefore = Symbol('_insertBefore');
+const _insertBefore$ = Symbol('_insertBefore');
 const _list = Symbol('_list');
-const _unlink = Symbol('_unlink');
+const _unlink$ = Symbol('_unlink');
 collection.LinkedList$ = dart.generic(E => {
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   let _LinkedListIteratorOfE = () => (_LinkedListIteratorOfE = dart.constFn(collection._LinkedListIterator$(E)))();
@@ -26515,18 +26518,18 @@
   class LinkedList extends core.Iterable$(E) {
     new() {
       this[_modificationCount] = 0;
-      this[_length] = 0;
-      this[_first] = null;
+      this[_length$1] = 0;
+      this[_first$] = null;
       super.new();
     }
     addFirst(entry) {
       E._check(entry);
-      this[_insertBefore](this[_first], entry, {updateFirst: true});
-      this[_first] = entry;
+      this[_insertBefore$](this[_first$], entry, {updateFirst: true});
+      this[_first$] = entry;
     }
     add(entry) {
       E._check(entry);
-      this[_insertBefore](this[_first], entry, {updateFirst: false});
+      this[_insertBefore$](this[_first$], entry, {updateFirst: false});
     }
     addAll(entries) {
       IterableOfE()._check(entries);
@@ -26535,64 +26538,64 @@
     remove(entry) {
       E._check(entry);
       if (!dart.equals(entry[_list], this)) return false;
-      this[_unlink](entry);
+      this[_unlink$](entry);
       return true;
     }
     get iterator() {
       return new (_LinkedListIteratorOfE())(this);
     }
     get length() {
-      return this[_length];
+      return this[_length$1];
     }
     clear() {
       this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
       if (dart.test(this.isEmpty)) return;
-      let next = this[_first];
+      let next = this[_first$];
       do {
         let entry = next;
-        next = entry[_next];
-        entry[_next] = entry[_previous] = entry[_list] = null;
-      } while (!core.identical(next, this[_first]));
-      this[_first] = null;
-      this[_length] = 0;
+        next = entry[_next$0];
+        entry[_next$0] = entry[_previous$0] = entry[_list] = null;
+      } while (!core.identical(next, this[_first$]));
+      this[_first$] = null;
+      this[_length$1] = 0;
     }
     get first() {
       if (dart.test(this.isEmpty)) {
         dart.throw(new core.StateError('No such element'));
       }
-      return this[_first];
+      return this[_first$];
     }
     get last() {
       if (dart.test(this.isEmpty)) {
         dart.throw(new core.StateError('No such element'));
       }
-      return this[_first][_previous];
+      return this[_first$][_previous$0];
     }
     get single() {
       if (dart.test(this.isEmpty)) {
         dart.throw(new core.StateError('No such element'));
       }
-      if (dart.notNull(this[_length]) > 1) {
+      if (dart.notNull(this[_length$1]) > 1) {
         dart.throw(new core.StateError('Too many elements'));
       }
-      return this[_first];
+      return this[_first$];
     }
     forEach(action) {
       let modificationCount = this[_modificationCount];
       if (dart.test(this.isEmpty)) return;
-      let current = this[_first];
+      let current = this[_first$];
       do {
         action(current);
         if (modificationCount != this[_modificationCount]) {
           dart.throw(new core.ConcurrentModificationError(this));
         }
-        current = current[_next];
-      } while (!core.identical(current, this[_first]));
+        current = current[_next$0];
+      } while (!core.identical(current, this[_first$]));
     }
     get isEmpty() {
-      return this[_length] == 0;
+      return this[_length$1] == 0;
     }
-    [_insertBefore](entry, newEntry, opts) {
+    [_insertBefore$](entry, newEntry, opts) {
       E._check(entry);
       E._check(newEntry);
       let updateFirst = opts && 'updateFirst' in opts ? opts.updateFirst : null;
@@ -26603,33 +26606,33 @@
       newEntry[_list] = this;
       if (dart.test(this.isEmpty)) {
         dart.assert(entry == null);
-        newEntry[_previous] = newEntry[_next] = newEntry;
-        this[_first] = newEntry;
-        this[_length] = dart.notNull(this[_length]) + 1;
+        newEntry[_previous$0] = newEntry[_next$0] = newEntry;
+        this[_first$] = newEntry;
+        this[_length$1] = dart.notNull(this[_length$1]) + 1;
         return;
       }
-      let predecessor = entry[_previous];
+      let predecessor = entry[_previous$0];
       let successor = entry;
-      newEntry[_previous] = predecessor;
-      newEntry[_next] = successor;
-      predecessor[_next] = newEntry;
-      successor[_previous] = newEntry;
-      if (dart.test(updateFirst) && core.identical(entry, this[_first])) {
-        this[_first] = newEntry;
+      newEntry[_previous$0] = predecessor;
+      newEntry[_next$0] = successor;
+      predecessor[_next$0] = newEntry;
+      successor[_previous$0] = newEntry;
+      if (dart.test(updateFirst) && core.identical(entry, this[_first$])) {
+        this[_first$] = newEntry;
       }
-      this[_length] = dart.notNull(this[_length]) + 1;
+      this[_length$1] = dart.notNull(this[_length$1]) + 1;
     }
-    [_unlink](entry) {
+    [_unlink$](entry) {
       E._check(entry);
       this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
-      entry[_next][_previous] = entry[_previous];
-      let next = entry[_previous][_next] = entry[_next];
-      this[_length] = dart.notNull(this[_length]) - 1;
-      entry[_list] = entry[_next] = entry[_previous] = null;
+      entry[_next$0][_previous$0] = entry[_previous$0];
+      let next = entry[_previous$0][_next$0] = entry[_next$0];
+      this[_length$1] = dart.notNull(this[_length$1]) - 1;
+      entry[_list] = entry[_next$0] = entry[_previous$0] = null;
       if (dart.test(this.isEmpty)) {
-        this[_first] = null;
-      } else if (core.identical(entry, this[_first])) {
-        this[_first] = next;
+        this[_first$] = null;
+      } else if (core.identical(entry, this[_first$])) {
+        this[_first$] = next;
       }
     }
   }
@@ -26637,8 +26640,8 @@
     constructors: () => ({new: dart.definiteFunctionType(collection.LinkedList$(E), [])}),
     fields: () => ({
       [_modificationCount]: core.int,
-      [_length]: core.int,
-      [_first]: E
+      [_length$1]: core.int,
+      [_first$]: E
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
     methods: () => ({
@@ -26647,8 +26650,8 @@
       addAll: dart.definiteFunctionType(dart.void, [IterableOfE()]),
       remove: dart.definiteFunctionType(core.bool, [E]),
       clear: dart.definiteFunctionType(dart.void, []),
-      [_insertBefore]: dart.definiteFunctionType(dart.void, [E, E], {updateFirst: core.bool}),
-      [_unlink]: dart.definiteFunctionType(dart.void, [E])
+      [_insertBefore$]: dart.definiteFunctionType(dart.void, [E, E], {updateFirst: core.bool}),
+      [_unlink$]: dart.definiteFunctionType(dart.void, [E])
     })
   });
   dart.defineExtensionMembers(LinkedList, [
@@ -26672,24 +26675,24 @@
     new(list) {
       this[_list] = list;
       this[_modificationCount] = list[_modificationCount];
-      this[_next] = list[_first];
+      this[_next$0] = list[_first$];
       this[_visitedFirst] = false;
-      this[_current] = null;
+      this[_current$2] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
     moveNext() {
       if (this[_modificationCount] != this[_list][_modificationCount]) {
         dart.throw(new core.ConcurrentModificationError(this));
       }
-      if (dart.test(this[_list].isEmpty) || dart.test(this[_visitedFirst]) && core.identical(this[_next], this[_list].first)) {
-        this[_current] = null;
+      if (dart.test(this[_list].isEmpty) || dart.test(this[_visitedFirst]) && core.identical(this[_next$0], this[_list].first)) {
+        this[_current$2] = null;
         return false;
       }
       this[_visitedFirst] = true;
-      this[_current] = E._check(this[_next]);
-      this[_next] = this[_next][_next];
+      this[_current$2] = E._check(this[_next$0]);
+      this[_next$0] = this[_next$0][_next$0];
       return true;
     }
   }
@@ -26700,8 +26703,8 @@
     fields: () => ({
       [_list]: LinkedListOfE(),
       [_modificationCount]: core.int,
-      [_current]: E,
-      [_next]: LinkedListEntryOfE(),
+      [_current$2]: E,
+      [_next$0]: LinkedListEntryOfE(),
       [_visitedFirst]: core.bool
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
@@ -26715,38 +26718,38 @@
   class LinkedListEntry extends core.Object {
     new() {
       this[_list] = null;
-      this[_next] = null;
-      this[_previous] = null;
+      this[_next$0] = null;
+      this[_previous$0] = null;
     }
     get list() {
       return this[_list];
     }
     unlink() {
-      this[_list][_unlink](E._check(this));
+      this[_list][_unlink$](E._check(this));
     }
     get next() {
-      if (core.identical(this, this[_next])) return null;
-      return this[_next];
+      if (core.identical(this, this[_next$0])) return null;
+      return this[_next$0];
     }
     get previous() {
-      if (core.identical(this, this[_previous])) return null;
-      return this[_previous];
+      if (core.identical(this, this[_previous$0])) return null;
+      return this[_previous$0];
     }
     insertAfter(entry) {
       E._check(entry);
-      this[_list][_insertBefore](this[_next], entry, {updateFirst: false});
+      this[_list][_insertBefore$](this[_next$0], entry, {updateFirst: false});
     }
     insertBefore(entry) {
       E._check(entry);
-      this[_list][_insertBefore](E.as(this), entry, {updateFirst: true});
+      this[_list][_insertBefore$](E.as(this), entry, {updateFirst: true});
     }
   }
   dart.addTypeTests(LinkedListEntry);
   dart.setSignature(LinkedListEntry, {
     fields: () => ({
       [_list]: LinkedListOfE(),
-      [_next]: E,
-      [_previous]: E
+      [_next$0]: E,
+      [_previous$0]: E
     }),
     getters: () => ({
       list: dart.definiteFunctionType(collection.LinkedList$(E), []),
@@ -26909,35 +26912,35 @@
   let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
   class _MapBaseValueIterable extends core.Iterable$(V) {
     new(map) {
-      this[_map] = map;
+      this[_map$0] = map;
       super.new();
     }
     get length() {
-      return this[_map][dartx.length];
+      return this[_map$0][dartx.length];
     }
     get isEmpty() {
-      return this[_map][dartx.isEmpty];
+      return this[_map$0][dartx.isEmpty];
     }
     get isNotEmpty() {
-      return this[_map][dartx.isNotEmpty];
+      return this[_map$0][dartx.isNotEmpty];
     }
     get first() {
-      return this[_map][dartx._get](this[_map][dartx.keys][dartx.first]);
+      return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.first]);
     }
     get single() {
-      return this[_map][dartx._get](this[_map][dartx.keys][dartx.single]);
+      return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.single]);
     }
     get last() {
-      return this[_map][dartx._get](this[_map][dartx.keys][dartx.last]);
+      return this[_map$0][dartx._get](this[_map$0][dartx.keys][dartx.last]);
     }
     get iterator() {
-      return new (_MapBaseValueIteratorOfK$V())(this[_map]);
+      return new (_MapBaseValueIteratorOfK$V())(this[_map$0]);
     }
   }
   _MapBaseValueIterable[dart.implements] = () => [_internal.EfficientLength];
   dart.setSignature(_MapBaseValueIterable, {
     constructors: () => ({new: dart.definiteFunctionType(collection._MapBaseValueIterable$(K, V), [MapOfK$V()])}),
-    fields: () => ({[_map]: MapOfK$V()}),
+    fields: () => ({[_map$0]: MapOfK$V()}),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(V), [])})
   });
   dart.defineExtensionMembers(_MapBaseValueIterable, [
@@ -26958,20 +26961,20 @@
   let IteratorOfV = () => (IteratorOfV = dart.constFn(core.Iterator$(V)))();
   class _MapBaseValueIterator extends core.Object {
     new(map) {
-      this[_map] = map;
+      this[_map$0] = map;
       this[_keys] = map[dartx.keys][dartx.iterator];
-      this[_current] = null;
+      this[_current$2] = null;
     }
     moveNext() {
       if (dart.test(this[_keys].moveNext())) {
-        this[_current] = this[_map][dartx._get](this[_keys].current);
+        this[_current$2] = this[_map$0][dartx._get](this[_keys].current);
         return true;
       }
-      this[_current] = null;
+      this[_current$2] = null;
       return false;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
   }
   dart.addTypeTests(_MapBaseValueIterator);
@@ -26980,8 +26983,8 @@
     constructors: () => ({new: dart.definiteFunctionType(collection._MapBaseValueIterator$(K, V), [MapOfK$V()])}),
     fields: () => ({
       [_keys]: IteratorOfK(),
-      [_map]: MapOfK$V(),
-      [_current]: V
+      [_map$0]: MapOfK$V(),
+      [_current$2]: V
     }),
     getters: () => ({current: dart.definiteFunctionType(V, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -26995,65 +26998,65 @@
   let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
   class MapView extends core.Object {
     new(map) {
-      this[_map] = map;
+      this[_map$0] = map;
     }
     _get(key) {
-      return this[_map][dartx._get](key);
+      return this[_map$0][dartx._get](key);
     }
     _set(key, value) {
       K._check(key);
       V._check(value);
-      this[_map][dartx._set](key, value);
+      this[_map$0][dartx._set](key, value);
       return value;
     }
     addAll(other) {
       MapOfK$V()._check(other);
-      this[_map][dartx.addAll](other);
+      this[_map$0][dartx.addAll](other);
     }
     clear() {
-      this[_map][dartx.clear]();
+      this[_map$0][dartx.clear]();
     }
     putIfAbsent(key, ifAbsent) {
       K._check(key);
       VoidToV()._check(ifAbsent);
-      return this[_map][dartx.putIfAbsent](key, ifAbsent);
+      return this[_map$0][dartx.putIfAbsent](key, ifAbsent);
     }
     containsKey(key) {
-      return this[_map][dartx.containsKey](key);
+      return this[_map$0][dartx.containsKey](key);
     }
     containsValue(value) {
-      return this[_map][dartx.containsValue](value);
+      return this[_map$0][dartx.containsValue](value);
     }
     forEach(action) {
-      this[_map][dartx.forEach](action);
+      this[_map$0][dartx.forEach](action);
     }
     get isEmpty() {
-      return this[_map][dartx.isEmpty];
+      return this[_map$0][dartx.isEmpty];
     }
     get isNotEmpty() {
-      return this[_map][dartx.isNotEmpty];
+      return this[_map$0][dartx.isNotEmpty];
     }
     get length() {
-      return this[_map][dartx.length];
+      return this[_map$0][dartx.length];
     }
     get keys() {
-      return this[_map][dartx.keys];
+      return this[_map$0][dartx.keys];
     }
     remove(key) {
-      return this[_map][dartx.remove](key);
+      return this[_map$0][dartx.remove](key);
     }
     toString() {
-      return dart.toString(this[_map]);
+      return dart.toString(this[_map$0]);
     }
     get values() {
-      return this[_map][dartx.values];
+      return this[_map$0][dartx.values];
     }
   }
   dart.addTypeTests(MapView);
   MapView[dart.implements] = () => [MapOfK$V()];
   dart.setSignature(MapView, {
     constructors: () => ({new: dart.definiteFunctionType(collection.MapView$(K, V), [MapOfK$V()])}),
-    fields: () => ({[_map]: MapOfK$V()}),
+    fields: () => ({[_map$0]: MapOfK$V()}),
     getters: () => ({
       isEmpty: dart.definiteFunctionType(core.bool, []),
       isNotEmpty: dart.definiteFunctionType(core.bool, []),
@@ -27137,7 +27140,7 @@
     }
   }
   static getValues(map) {
-    return map[dartx.keys][dartx.map](dart.dynamic)(dart.fn(key => map[dartx._get](key), dynamicTodynamic()));
+    return map[dartx.keys][dartx.map](dart.dynamic)(dart.fn(key => map[dartx._get](key), dynamicTodynamic$()));
   }
   static length(map) {
     return map[dartx.keys][dartx.length];
@@ -27258,7 +27261,7 @@
       if (previous != null) previous[_nextLink] = this;
       if (next != null) next[_previousLink] = this;
     }
-    [_unlink]() {
+    [_unlink$]() {
       if (this[_previousLink] != null) this[_previousLink][_nextLink] = this[_nextLink];
       if (this[_nextLink] != null) this[_nextLink][_previousLink] = this[_previousLink];
       this[_nextLink] = null;
@@ -27273,7 +27276,7 @@
     }),
     methods: () => ({
       [_link]: dart.definiteFunctionType(dart.void, [E, E]),
-      [_unlink]: dart.definiteFunctionType(dart.void, [])
+      [_unlink$]: dart.definiteFunctionType(dart.void, [])
     })
   });
   return _DoubleLink;
@@ -27310,7 +27313,7 @@
       new (_UserDoubleLinkedQueueEntryOfE())(e)[_link](this[_previousLink], this);
     }
     remove() {
-      this[_unlink]();
+      this[_unlink$]();
       return this.element;
     }
     previousEntry() {
@@ -27406,7 +27409,7 @@
     }
     [_remove]() {
       this[_queue] = null;
-      this[_unlink]();
+      this[_unlink$]();
       return this.element;
     }
     remove() {
@@ -27651,11 +27654,11 @@
     new(sentinel) {
       this[_sentinel] = sentinel;
       this[_nextEntry] = sentinel[_nextLink];
-      this[_current] = null;
+      this[_current$2] = null;
     }
     moveNext() {
       if (core.identical(this[_nextEntry], this[_sentinel])) {
-        this[_current] = null;
+        this[_current$2] = null;
         this[_nextEntry] = null;
         this[_sentinel] = null;
         return false;
@@ -27664,12 +27667,12 @@
       if (elementEntry[_queue] == null) {
         dart.throw(new core.ConcurrentModificationError(this[_sentinel][_queue]));
       }
-      this[_current] = elementEntry.element;
+      this[_current$2] = elementEntry.element;
       this[_nextEntry] = elementEntry[_nextLink];
       return true;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
   }
   dart.addTypeTests(_DoubleLinkedQueueIterator);
@@ -27679,7 +27682,7 @@
     fields: () => ({
       [_sentinel]: _DoubleLinkedQueueSentinelOfE(),
       [_nextEntry]: _DoubleLinkedQueueEntryOfE(),
-      [_current]: E
+      [_current$2]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -27787,7 +27790,7 @@
     }
     add(value) {
       E._check(value);
-      this[_add](value);
+      this[_add$0](value);
     }
     addAll(elements) {
       IterableOfE()._check(elements);
@@ -27814,7 +27817,7 @@
         this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
       } else {
         for (let element of elements)
-          this[_add](element);
+          this[_add$0](element);
       }
     }
     remove(value) {
@@ -27863,7 +27866,7 @@
     }
     addLast(value) {
       E._check(value);
-      this[_add](value);
+      this[_add$0](value);
     }
     addFirst(value) {
       E._check(value);
@@ -27905,7 +27908,7 @@
         dart.throw(new core.ConcurrentModificationError(this));
       }
     }
-    [_add](element) {
+    [_add$0](element) {
       E._check(element);
       this[_table][dartx._set](this[_tail], element);
       this[_tail] = (dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][dartx.length]) - 1) >>> 0;
@@ -27997,7 +28000,7 @@
       removeFirst: dart.definiteFunctionType(E, []),
       removeLast: dart.definiteFunctionType(E, []),
       [_checkModification]: dart.definiteFunctionType(dart.void, [core.int]),
-      [_add]: dart.definiteFunctionType(dart.void, [E]),
+      [_add$0]: dart.definiteFunctionType(dart.void, [E]),
       [_remove]: dart.definiteFunctionType(core.int, [core.int]),
       [_grow]: dart.definiteFunctionType(dart.void, []),
       [_writeToList]: dart.definiteFunctionType(core.int, [ListOfE()]),
@@ -28037,18 +28040,18 @@
       this[_end] = queue[_tail];
       this[_modificationCount] = queue[_modificationCount];
       this[_position] = queue[_head];
-      this[_current] = null;
+      this[_current$2] = null;
     }
     get current() {
-      return this[_current];
+      return this[_current$2];
     }
     moveNext() {
       this[_queue][_checkModification](this[_modificationCount]);
       if (this[_position] == this[_end]) {
-        this[_current] = null;
+        this[_current$2] = null;
         return false;
       }
-      this[_current] = this[_queue][_table][dartx._get](this[_position]);
+      this[_current$2] = this[_queue][_table][dartx._get](this[_position]);
       this[_position] = (dart.notNull(this[_position]) + 1 & dart.notNull(this[_queue][_table][dartx.length]) - 1) >>> 0;
       return true;
     }
@@ -28062,7 +28065,7 @@
       [_end]: core.int,
       [_modificationCount]: core.int,
       [_position]: core.int,
-      [_current]: E
+      [_current$2]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -28074,7 +28077,7 @@
   const _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.bool, [T]));
   return _Predicate;
 });
-collection._Predicate = _Predicate();
+collection._Predicate = _Predicate$();
 collection._SplayTreeNode$ = dart.generic(K => {
   let _SplayTreeNodeOfK = () => (_SplayTreeNodeOfK = dart.constFn(collection._SplayTreeNode$(K)))();
   class _SplayTreeNode extends core.Object {
@@ -28110,7 +28113,7 @@
   return _SplayTreeMapNode;
 });
 collection._SplayTreeMapNode = _SplayTreeMapNode();
-const _count = Symbol('_count');
+const _count$ = Symbol('_count');
 const _splayCount = Symbol('_splayCount');
 const _root = Symbol('_root');
 const _dummy = Symbol('_dummy');
@@ -28120,11 +28123,11 @@
 const _splayMin = Symbol('_splayMin');
 const _splayMax = Symbol('_splayMax');
 const _addNewRoot = Symbol('_addNewRoot');
-const _clear = Symbol('_clear');
+const _clear$ = Symbol('_clear');
 collection._SplayTree$ = dart.generic((K, Node) => {
   class _SplayTree extends core.Object {
     new() {
-      this[_count] = 0;
+      this[_count$] = 0;
       this[_modificationCount] = 0;
       this[_splayCount] = 0;
     }
@@ -28205,7 +28208,7 @@
       let comp = this[_splay](key);
       if (comp != 0) return null;
       let result = this[_root];
-      this[_count] = dart.notNull(this[_count]) - 1;
+      this[_count$] = dart.notNull(this[_count$]) - 1;
       if (this[_root].left == null) {
         this[_root] = Node._check(this[_root].right);
       } else {
@@ -28218,7 +28221,7 @@
     }
     [_addNewRoot](node, comp) {
       Node._check(node);
-      this[_count] = dart.notNull(this[_count]) + 1;
+      this[_count$] = dart.notNull(this[_count$]) + 1;
       this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
       if (this[_root] == null) {
         this[_root] = node;
@@ -28235,32 +28238,32 @@
       }
       this[_root] = node;
     }
-    get [_first]() {
+    get [_first$]() {
       if (this[_root] == null) return null;
       this[_root] = this[_splayMin](this[_root]);
       return this[_root];
     }
-    get [_last]() {
+    get [_last$]() {
       if (this[_root] == null) return null;
       this[_root] = this[_splayMax](this[_root]);
       return this[_root];
     }
-    [_clear]() {
+    [_clear$]() {
       this[_root] = null;
-      this[_count] = 0;
+      this[_count$] = 0;
       this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
     }
   }
   dart.addTypeTests(_SplayTree);
   dart.setSignature(_SplayTree, {
     fields: () => ({
-      [_count]: core.int,
+      [_count$]: core.int,
       [_modificationCount]: core.int,
       [_splayCount]: core.int
     }),
     getters: () => ({
-      [_first]: dart.definiteFunctionType(Node, []),
-      [_last]: dart.definiteFunctionType(Node, [])
+      [_first$]: dart.definiteFunctionType(Node, []),
+      [_last$]: dart.definiteFunctionType(Node, [])
     }),
     methods: () => ({
       [_splay]: dart.definiteFunctionType(core.int, [K]),
@@ -28268,7 +28271,7 @@
       [_splayMax]: dart.definiteFunctionType(Node, [Node]),
       [_remove]: dart.definiteFunctionType(Node, [K]),
       [_addNewRoot]: dart.definiteFunctionType(dart.void, [Node, core.int]),
-      [_clear]: dart.definiteFunctionType(dart.void, [])
+      [_clear$]: dart.definiteFunctionType(dart.void, [])
     })
   });
   return _SplayTree;
@@ -28313,7 +28316,7 @@
       })();
       this[_validKey] = (() => {
         let l = isValidKey;
-        return l != null ? l : dart.fn(v => K.is(v), dynamicTobool());
+        return l != null ? l : dart.fn(v => K.is(v), dynamicTobool$());
       })();
       this[_root] = null;
       super.new();
@@ -28426,10 +28429,10 @@
       }
     }
     get length() {
-      return this[_count];
+      return this[_count$];
     }
     clear() {
-      this[_clear]();
+      this[_clear$]();
     }
     containsKey(key) {
       return dart.test(dart.dcall(this[_validKey], key)) && this[_splay](K.as(key)) == 0;
@@ -28462,11 +28465,11 @@
     }
     firstKey() {
       if (this[_root] == null) return null;
-      return this[_first].key;
+      return this[_first$].key;
     }
     lastKey() {
       if (this[_root] == null) return null;
-      return this[_last].key;
+      return this[_last$].key;
     }
     lastKeyBefore(key) {
       K._check(key);
@@ -28666,17 +28669,17 @@
       super.new();
     }
     get length() {
-      return this[_tree][_count];
+      return this[_tree][_count$];
     }
     get isEmpty() {
-      return this[_tree][_count] == 0;
+      return this[_tree][_count$] == 0;
     }
     get iterator() {
       return new (_SplayTreeKeyIteratorOfK())(this[_tree]);
     }
     toSet() {
       let set = new (SplayTreeSetOfK())(this[_tree][_comparator], this[_tree][_validKey]);
-      set[_count] = this[_tree][_count];
+      set[_count$] = this[_tree][_count$];
       set[_root] = set[_copyNode](this[_tree][_root]);
       return set;
     }
@@ -28696,23 +28699,23 @@
   let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
   class _SplayTreeValueIterable extends core.Iterable$(V) {
     new(map) {
-      this[_map] = map;
+      this[_map$0] = map;
       super.new();
     }
     get length() {
-      return this[_map][_count];
+      return this[_map$0][_count$];
     }
     get isEmpty() {
-      return this[_map][_count] == 0;
+      return this[_map$0][_count$] == 0;
     }
     get iterator() {
-      return new (_SplayTreeValueIteratorOfK$V())(this[_map]);
+      return new (_SplayTreeValueIteratorOfK$V())(this[_map$0]);
     }
   }
   _SplayTreeValueIterable[dart.implements] = () => [_internal.EfficientLength];
   dart.setSignature(_SplayTreeValueIterable, {
     constructors: () => ({new: dart.definiteFunctionType(collection._SplayTreeValueIterable$(K, V), [SplayTreeMapOfK$V()])}),
-    fields: () => ({[_map]: SplayTreeMapOfK$V()}),
+    fields: () => ({[_map$0]: SplayTreeMapOfK$V()}),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(V), [])})
   });
   dart.defineExtensionMembers(_SplayTreeValueIterable, ['length', 'isEmpty', 'iterator']);
@@ -28804,7 +28807,7 @@
       })();
       this[_validKey] = (() => {
         let l = isValidKey;
-        return l != null ? l : dart.fn(v => E.is(v), dynamicTobool());
+        return l != null ? l : dart.fn(v => E.is(v), dynamicTobool$());
       })();
       this[_root] = null;
       super.new();
@@ -28828,7 +28831,7 @@
       return new (_SplayTreeKeyIteratorOfE())(this);
     }
     get length() {
-      return this[_count];
+      return this[_count$];
     }
     get isEmpty() {
       return this[_root] == null;
@@ -28837,16 +28840,16 @@
       return this[_root] != null;
     }
     get first() {
-      if (this[_count] == 0) dart.throw(_internal.IterableElementError.noElement());
-      return this[_first].key;
+      if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this[_first$].key;
     }
     get last() {
-      if (this[_count] == 0) dart.throw(_internal.IterableElementError.noElement());
-      return this[_last].key;
+      if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
+      return this[_last$].key;
     }
     get single() {
-      if (this[_count] == 0) dart.throw(_internal.IterableElementError.noElement());
-      if (dart.notNull(this[_count]) > 1) dart.throw(_internal.IterableElementError.tooMany());
+      if (this[_count$] == 0) dart.throw(_internal.IterableElementError.noElement());
+      if (dart.notNull(this[_count$]) > 1) dart.throw(_internal.IterableElementError.tooMany());
       return this[_root].key;
     }
     contains(object) {
@@ -28888,9 +28891,9 @@
           retainSet.add(this[_root].key);
         }
       }
-      if (retainSet[_count] != this[_count]) {
+      if (retainSet[_count$] != this[_count$]) {
         this[_root] = retainSet[_root];
-        this[_count] = retainSet[_count];
+        this[_count$] = retainSet[_count$];
         this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
       }
     }
@@ -28922,7 +28925,7 @@
     }
     [_clone]() {
       let set = new (SplayTreeSetOfE())(this[_comparator], this[_validKey]);
-      set[_count] = this[_count];
+      set[_count$] = this[_count$];
       set[_root] = this[_copyNode](this[_root]);
       return set;
     }
@@ -28935,7 +28938,7 @@
       return _;
     }
     clear() {
-      this[_clear]();
+      this[_clear$]();
     }
     toSet() {
       return this[_clone]();
@@ -28981,7 +28984,7 @@
 });
 collection.SplayTreeSet = SplayTreeSet();
 const _processed = Symbol('_processed');
-const _computeKeys = Symbol('_computeKeys');
+const _computeKeys$ = Symbol('_computeKeys');
 const _original = Symbol('_original');
 convert._convertJsonToDart = function(json, reviver) {
   dart.assert(reviver != null);
@@ -28998,7 +29001,7 @@
     }
     let map = new convert._JsonMap(e);
     let processed = map[_processed];
-    let keys = map[_computeKeys]();
+    let keys = map[_computeKeys$]();
     for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
       let key = keys[dartx._get](i);
       let revived = dart.dcall(reviver, key, walk(e[key]));
@@ -29007,7 +29010,7 @@
     map[_original] = processed;
     return map;
   }
-  dart.fn(walk, dynamicTodynamic());
+  dart.fn(walk, dynamicTodynamic$());
   return dart.dcall(reviver, null, walk(json));
 };
 dart.fn(convert._convertJsonToDart, dynamicAndFnTodynamic());
@@ -29025,11 +29028,11 @@
   }
   return object;
 };
-dart.fn(convert._convertJsonToDartLazy, dynamicTodynamic());
+dart.fn(convert._convertJsonToDartLazy, dynamicTodynamic$());
 const _data = Symbol('_data');
 const _isUpgraded = Symbol('_isUpgraded');
 const _upgradedMap = Symbol('_upgradedMap');
-const _process = Symbol('_process');
+const _process$ = Symbol('_process');
 const _upgrade = Symbol('_upgrade');
 convert._JsonMap = class _JsonMap extends core.Object {
   new(original) {
@@ -29044,12 +29047,12 @@
       return null;
     } else {
       let result = convert._JsonMap._getProperty(this[_processed], core.String._check(key));
-      if (dart.test(convert._JsonMap._isUnprocessed(result))) result = this[_process](core.String._check(key));
+      if (dart.test(convert._JsonMap._isUnprocessed(result))) result = this[_process$](core.String._check(key));
       return result;
     }
   }
   get length() {
-    return dart.test(this[_isUpgraded]) ? this[_upgradedMap][dartx.length] : this[_computeKeys]()[dartx.length];
+    return dart.test(this[_isUpgraded]) ? this[_upgradedMap][dartx.length] : this[_computeKeys$]()[dartx.length];
   }
   get isEmpty() {
     return this.length == 0;
@@ -29063,7 +29066,7 @@
   }
   get values() {
     if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.values];
-    return MappedIterableOfString$dynamic().new(this[_computeKeys](), dart.fn(each => this._get(each), dynamicTodynamic()));
+    return MappedIterableOfString$dynamic().new(this[_computeKeys$](), dart.fn(each => this._get(each), dynamicTodynamic$()));
   }
   _set(key, value) {
     if (dart.test(this[_isUpgraded])) {
@@ -29087,7 +29090,7 @@
   }
   containsValue(value) {
     if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
-    let keys = this[_computeKeys]();
+    let keys = this[_computeKeys$]();
     for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
       let key = keys[dartx._get](i);
       if (dart.equals(this._get(key), value)) return true;
@@ -29122,7 +29125,7 @@
   }
   forEach(f) {
     if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.forEach](f);
-    let keys = this[_computeKeys]();
+    let keys = this[_computeKeys$]();
     for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
       let key = keys[dartx._get](i);
       let value = convert._JsonMap._getProperty(this[_processed], key);
@@ -29146,7 +29149,7 @@
     dart.assert(this[_isUpgraded]);
     return this[_data];
   }
-  [_computeKeys]() {
+  [_computeKeys$]() {
     dart.assert(!dart.test(this[_isUpgraded]));
     let keys = core.List._check(this[_data]);
     if (keys == null) {
@@ -29157,7 +29160,7 @@
   [_upgrade]() {
     if (dart.test(this[_isUpgraded])) return this[_upgradedMap];
     let result = dart.map();
-    let keys = this[_computeKeys]();
+    let keys = this[_computeKeys$]();
     for (let i = 0; i < dart.notNull(keys[dartx.length]); i++) {
       let key = keys[dartx._get](i);
       result[dartx._set](key, this._get(key));
@@ -29172,7 +29175,7 @@
     dart.assert(this[_isUpgraded]);
     return result;
   }
-  [_process](key) {
+  [_process$](key) {
     if (!dart.test(convert._JsonMap._hasProperty(this[_original], key))) return null;
     let result = convert._convertJsonToDartLazy(convert._JsonMap._getProperty(this[_original], key));
     return convert._JsonMap._setProperty(this[_processed], key, result);
@@ -29223,9 +29226,9 @@
     remove: dart.definiteFunctionType(dart.dynamic, [core.Object]),
     clear: dart.definiteFunctionType(dart.void, []),
     forEach: dart.definiteFunctionType(dart.void, [dynamicAnddynamicTovoid()]),
-    [_computeKeys]: dart.definiteFunctionType(core.List$(core.String), []),
+    [_computeKeys$]: dart.definiteFunctionType(core.List$(core.String), []),
     [_upgrade]: dart.definiteFunctionType(core.Map, []),
-    [_process]: dart.definiteFunctionType(dart.dynamic, [core.String])
+    [_process$]: dart.definiteFunctionType(dart.dynamic, [core.String])
   }),
   statics: () => ({
     _hasProperty: dart.definiteFunctionType(core.bool, [dart.dynamic, core.String]),
@@ -29263,10 +29266,10 @@
     return this[_parent].length;
   }
   elementAt(index) {
-    return core.String._check(dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.elementAt](index) : this[_parent][_computeKeys]()[dartx._get](index));
+    return core.String._check(dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.elementAt](index) : this[_parent][_computeKeys$]()[dartx._get](index));
   }
   get iterator() {
-    return dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.iterator] : this[_parent][_computeKeys]()[dartx.iterator];
+    return dart.test(this[_parent][_isUpgraded]) ? this[_parent].keys[dartx.iterator] : this[_parent][_computeKeys$]()[dartx.iterator];
   }
   contains(key) {
     return this[_parent].containsKey(key);
@@ -29280,7 +29283,7 @@
 });
 dart.defineExtensionMembers(convert._JsonMapKeyIterable, ['elementAt', 'contains', 'length', 'iterator']);
 const _reviver = Symbol('_reviver');
-const _sink = Symbol('_sink');
+const _sink$ = Symbol('_sink');
 const _stringSink = Symbol('_stringSink');
 convert.StringConversionSinkMixin = class StringConversionSinkMixin extends core.Object {
   add(str) {
@@ -29338,7 +29341,7 @@
 convert._JsonDecoderSink = class _JsonDecoderSink extends convert._StringSinkConversionSink {
   new(reviver, sink) {
     this[_reviver] = reviver;
-    this[_sink] = sink;
+    this[_sink$] = sink;
     super.new(new core.StringBuffer());
   }
   close() {
@@ -29347,23 +29350,23 @@
     let accumulated = dart.toString(buffer);
     buffer.clear();
     let decoded = convert._parseJson(accumulated, this[_reviver]);
-    this[_sink].add(decoded);
-    this[_sink].close();
+    this[_sink$].add(decoded);
+    this[_sink$].close();
   }
 };
 dart.setSignature(convert._JsonDecoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._JsonDecoderSink, [convert._Reviver, SinkOfObject()])}),
   fields: () => ({
     [_reviver]: convert._Reviver,
-    [_sink]: SinkOfObject()
+    [_sink$]: SinkOfObject()
   })
 });
 const _allowInvalid = Symbol('_allowInvalid');
-let const;
-let const;
-let const;
-let const;
-let const;
+let const$25;
+let const$26;
+let const$27;
+let const$28;
+let const$29;
 convert.Codec$ = dart.generic((S, T) => {
   let _InvertedCodecOfT$S = () => (_InvertedCodecOfT$S = dart.constFn(convert._InvertedCodec$(T, S)))();
   class Codec extends core.Object {
@@ -29599,16 +29602,16 @@
     let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
     if (allowInvalid == null) allowInvalid = this[_allowInvalid];
     if (dart.test(allowInvalid)) {
-      return (const || (const = dart.const(new convert.AsciiDecoder({allowInvalid: true})))).convert(bytes);
+      return (const$25 || (const$25 = dart.const(new convert.AsciiDecoder({allowInvalid: true})))).convert(bytes);
     } else {
-      return (const || (const = dart.const(new convert.AsciiDecoder({allowInvalid: false})))).convert(bytes);
+      return (const$26 || (const$26 = dart.const(new convert.AsciiDecoder({allowInvalid: false})))).convert(bytes);
     }
   }
   get encoder() {
-    return const || (const = dart.const(new convert.AsciiEncoder()));
+    return const$27 || (const$27 = dart.const(new convert.AsciiEncoder()));
   }
   get decoder() {
-    return dart.test(this[_allowInvalid]) ? const || (const = dart.const(new convert.AsciiDecoder({allowInvalid: true}))) : const || (const = dart.const(new convert.AsciiDecoder({allowInvalid: false})));
+    return dart.test(this[_allowInvalid]) ? const$28 || (const$28 = dart.const(new convert.AsciiDecoder({allowInvalid: true}))) : const$29 || (const$29 = dart.const(new convert.AsciiDecoder({allowInvalid: false})));
   }
 };
 dart.setSignature(convert.AsciiCodec, {
@@ -29714,10 +29717,10 @@
 convert._UnicodeSubsetEncoderSink = class _UnicodeSubsetEncoderSink extends convert.StringConversionSinkBase {
   new(subsetMask, sink) {
     this[_subsetMask] = subsetMask;
-    this[_sink] = sink;
+    this[_sink$] = sink;
   }
   close() {
-    this[_sink].close();
+    this[_sink$].close();
   }
   addSlice(source, start, end, isLast) {
     core.RangeError.checkValidRange(start, end, source[dartx.length]);
@@ -29727,7 +29730,7 @@
         dart.throw(new core.ArgumentError(dart.str`Source contains invalid character with code point: ${codeUnit}.`));
       }
     }
-    this[_sink].add(source[dartx.codeUnits][dartx.sublist](start, end));
+    this[_sink$].add(source[dartx.codeUnits][dartx.sublist](start, end));
     if (dart.test(isLast)) {
       this.close();
     }
@@ -29736,7 +29739,7 @@
 dart.setSignature(convert._UnicodeSubsetEncoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._UnicodeSubsetEncoderSink, [core.int, convert.ByteConversionSink])}),
   fields: () => ({
-    [_sink]: convert.ByteConversionSink,
+    [_sink$]: convert.ByteConversionSink,
     [_subsetMask]: core.int
   }),
   methods: () => ({
@@ -29816,7 +29819,7 @@
   constructors: () => ({new: dart.definiteFunctionType(convert.AsciiDecoder, [], {allowInvalid: core.bool})})
 });
 const _utf8Sink = Symbol('_utf8Sink');
-let const;
+let const$30;
 convert.ChunkedConversionSink$ = dart.generic(T => {
   let _SimpleCallbackSinkOfT = () => (_SimpleCallbackSinkOfT = dart.constFn(convert._SimpleCallbackSink$(T)))();
   let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
@@ -29887,7 +29890,7 @@
     for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
       if ((dart.notNull(source[dartx._get](i)) & ~convert._ASCII_MASK) != 0) {
         if (dart.notNull(i) > dart.notNull(start)) this[_utf8Sink].addSlice(source, start, i, false);
-        this[_utf8Sink].add(const || (const = dart.constList([239, 191, 189], core.int)));
+        this[_utf8Sink].add(const$30 || (const$30 = dart.constList([239, 191, 189], core.int)));
         start = dart.notNull(i) + 1;
       }
     }
@@ -29908,11 +29911,11 @@
 });
 convert._SimpleAsciiDecoderSink = class _SimpleAsciiDecoderSink extends convert.ByteConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     super.new();
   }
   close() {
-    this[_sink].close();
+    this[_sink$].close();
   }
   add(source) {
     for (let i = 0; i < dart.notNull(source[dartx.length]); i++) {
@@ -29920,7 +29923,7 @@
         dart.throw(new core.FormatException("Source contains non-ASCII bytes."));
       }
     }
-    this[_sink].add(core.String.fromCharCodes(source));
+    this[_sink$].add(core.String.fromCharCodes(source));
   }
   addSlice(source, start, end, isLast) {
     let length = source[dartx.length];
@@ -29936,7 +29939,7 @@
 };
 dart.setSignature(convert._SimpleAsciiDecoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._SimpleAsciiDecoderSink, [core.Sink])}),
-  fields: () => ({[_sink]: core.Sink}),
+  fields: () => ({[_sink$]: core.Sink}),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
     add: dart.definiteFunctionType(dart.void, [ListOfint()])
@@ -29978,24 +29981,24 @@
     startChunkedConversion: dart.definiteFunctionType(convert.ByteConversionSink, [SinkOfString()])
   })
 });
-let const;
+let const$31;
 const _encoder = Symbol('_encoder');
-let const;
-let const;
+let const$32;
+let const$33;
 convert.Base64Codec = class Base64Codec extends convert.Codec$(core.List$(core.int), core.String) {
   new() {
-    this[_encoder] = const || (const = dart.const(new convert.Base64Encoder()));
+    this[_encoder] = const$31 || (const$31 = dart.const(new convert.Base64Encoder()));
     super.new();
   }
   urlSafe() {
-    this[_encoder] = const || (const = dart.const(new convert.Base64Encoder.urlSafe()));
+    this[_encoder] = const$32 || (const$32 = dart.const(new convert.Base64Encoder.urlSafe()));
     super.new();
   }
   get encoder() {
     return this[_encoder];
   }
   get decoder() {
-    return const || (const = dart.const(new convert.Base64Decoder()));
+    return const$33 || (const$33 = dart.const(new convert.Base64Decoder()));
   }
 };
 dart.addSimpleTypeTests(convert.Base64Codec);
@@ -30015,11 +30018,11 @@
 convert.BASE64URL = dart.const(new convert.Base64Codec.urlSafe());
 convert._paddingChar = 61;
 const _alphabet = Symbol('_alphabet');
-const _state = Symbol('_state');
+const _state$0 = Symbol('_state');
 convert._Base64Encoder = class _Base64Encoder extends core.Object {
   new(urlSafe) {
     this[_alphabet] = dart.test(urlSafe) ? convert._Base64Encoder._base64urlAlphabet : convert._Base64Encoder._base64Alphabet;
-    this[_state] = 0;
+    this[_state$0] = 0;
   }
   static _encodeState(count, bits) {
     dart.assert(dart.notNull(count) <= convert._Base64Encoder._countMask);
@@ -30039,7 +30042,7 @@
     dart.assert(dart.notNull(start) <= dart.notNull(end));
     dart.assert(bytes == null || dart.notNull(end) <= dart.notNull(bytes[dartx.length]));
     let length = dart.notNull(end) - dart.notNull(start);
-    let count = convert._Base64Encoder._stateCount(this[_state]);
+    let count = convert._Base64Encoder._stateCount(this[_state$0]);
     let byteCount = dart.notNull(count) + length;
     let fullChunks = (byteCount / 3)[dartx.truncate]();
     let partialChunkLength = byteCount - fullChunks * 3;
@@ -30048,7 +30051,7 @@
       bufferLength = bufferLength + 4;
     }
     let output = this.createBuffer(bufferLength);
-    this[_state] = convert._Base64Encoder.encodeChunk(this[_alphabet], bytes, start, end, isLast, output, 0, this[_state]);
+    this[_state$0] = convert._Base64Encoder.encodeChunk(this[_alphabet], bytes, start, end, isLast, output, 0, this[_state$0]);
     if (bufferLength > 0) return output;
     return null;
   }
@@ -30152,7 +30155,7 @@
 dart.setSignature(convert._Base64Encoder, {
   constructors: () => ({new: dart.definiteFunctionType(convert._Base64Encoder, [core.bool])}),
   fields: () => ({
-    [_state]: core.int,
+    [_state$0]: core.int,
     [_alphabet]: core.String
   }),
   methods: () => ({
@@ -30196,21 +30199,21 @@
   constructors: () => ({new: dart.definiteFunctionType(convert._BufferCachingBase64Encoder, [core.bool])}),
   fields: () => ({bufferCache: typed_data.Uint8List})
 });
-const _add = Symbol('_add');
+const _add$1 = Symbol('_add');
 convert._Base64EncoderSink = class _Base64EncoderSink extends convert.ByteConversionSinkBase {
   new() {
     super.new();
   }
   add(source) {
-    this[_add](source, 0, source[dartx.length], false);
+    this[_add$1](source, 0, source[dartx.length], false);
   }
   close() {
-    this[_add](null, 0, 0, true);
+    this[_add$1](null, 0, 0, true);
   }
   addSlice(source, start, end, isLast) {
     if (end == null) dart.throw(new core.ArgumentError.notNull("end"));
     core.RangeError.checkValidRange(start, end, source[dartx.length]);
-    this[_add](source, start, end, isLast);
+    this[_add$1](source, start, end, isLast);
   }
 };
 dart.setSignature(convert._Base64EncoderSink, {
@@ -30221,49 +30224,49 @@
 });
 convert._AsciiBase64EncoderSink = class _AsciiBase64EncoderSink extends convert._Base64EncoderSink {
   new(sink, urlSafe) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_encoder] = new convert._BufferCachingBase64Encoder(urlSafe);
     super.new();
   }
-  [_add](source, start, end, isLast) {
+  [_add$1](source, start, end, isLast) {
     let buffer = this[_encoder].encode(source, start, end, isLast);
     if (buffer != null) {
       let string = core.String.fromCharCodes(buffer);
-      this[_sink].add(string);
+      this[_sink$].add(string);
     }
     if (dart.test(isLast)) {
-      this[_sink].close();
+      this[_sink$].close();
     }
   }
 };
 dart.setSignature(convert._AsciiBase64EncoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._AsciiBase64EncoderSink, [SinkOfString(), core.bool])}),
   fields: () => ({
-    [_sink]: SinkOfString(),
+    [_sink$]: SinkOfString(),
     [_encoder]: convert._Base64Encoder
   }),
-  methods: () => ({[_add]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
+  methods: () => ({[_add$1]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
 });
 convert._Utf8Base64EncoderSink = class _Utf8Base64EncoderSink extends convert._Base64EncoderSink {
   new(sink, urlSafe) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_encoder] = new convert._Base64Encoder(urlSafe);
     super.new();
   }
-  [_add](source, start, end, isLast) {
+  [_add$1](source, start, end, isLast) {
     let buffer = this[_encoder].encode(source, start, end, isLast);
     if (buffer != null) {
-      this[_sink].addSlice(buffer, 0, buffer[dartx.length], isLast);
+      this[_sink$].addSlice(buffer, 0, buffer[dartx.length], isLast);
     }
   }
 };
 dart.setSignature(convert._Utf8Base64EncoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._Utf8Base64EncoderSink, [convert.ByteConversionSink, core.bool])}),
   fields: () => ({
-    [_sink]: convert.ByteConversionSink,
+    [_sink$]: convert.ByteConversionSink,
     [_encoder]: convert._Base64Encoder
   }),
-  methods: () => ({[_add]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
+  methods: () => ({[_add$1]: dart.definiteFunctionType(dart.void, [ListOfint(), core.int, core.int, core.bool])})
 });
 convert.Base64Decoder = class Base64Decoder extends convert.Converter$(core.String, core.List$(core.int)) {
   new() {
@@ -30293,7 +30296,7 @@
 });
 convert._Base64Decoder = class _Base64Decoder extends core.Object {
   new() {
-    this[_state] = 0;
+    this[_state$0] = 0;
   }
   static _encodeCharacterState(count, bits) {
     dart.assert(count == (dart.notNull(count) & convert._Base64Decoder._countMask));
@@ -30323,23 +30326,23 @@
     dart.assert(0 <= dart.notNull(start));
     dart.assert(dart.notNull(start) <= dart.notNull(end));
     dart.assert(dart.notNull(end) <= dart.notNull(input[dartx.length]));
-    if (dart.test(convert._Base64Decoder._hasSeenPadding(this[_state]))) {
-      this[_state] = convert._Base64Decoder._checkPadding(input, start, end, this[_state]);
+    if (dart.test(convert._Base64Decoder._hasSeenPadding(this[_state$0]))) {
+      this[_state$0] = convert._Base64Decoder._checkPadding(input, start, end, this[_state$0]);
       return null;
     }
     if (start == end) return typed_data.Uint8List.new(0);
-    let buffer = convert._Base64Decoder._allocateBuffer(input, start, end, this[_state]);
-    this[_state] = convert._Base64Decoder.decodeChunk(input, start, end, buffer, 0, this[_state]);
+    let buffer = convert._Base64Decoder._allocateBuffer(input, start, end, this[_state$0]);
+    this[_state$0] = convert._Base64Decoder.decodeChunk(input, start, end, buffer, 0, this[_state$0]);
     return buffer;
   }
   close(input, end) {
-    if (dart.notNull(this[_state]) < dart.notNull(convert._Base64Decoder._encodePaddingState(0))) {
+    if (dart.notNull(this[_state$0]) < dart.notNull(convert._Base64Decoder._encodePaddingState(0))) {
       dart.throw(new core.FormatException("Missing padding character", input, end));
     }
-    if (dart.notNull(this[_state]) > 0) {
+    if (dart.notNull(this[_state$0]) > 0) {
       dart.throw(new core.FormatException("Invalid length, must be multiple of four", input, end));
     }
-    this[_state] = convert._Base64Decoder._encodePaddingState(0);
+    this[_state$0] = convert._Base64Decoder._encodePaddingState(0);
   }
   static decodeChunk(input, start, end, output, outIndex, state) {
     dart.assert(!dart.test(convert._Base64Decoder._hasSeenPadding(state)));
@@ -30511,7 +30514,7 @@
   }
 };
 dart.setSignature(convert._Base64Decoder, {
-  fields: () => ({[_state]: core.int}),
+  fields: () => ({[_state$0]: core.int}),
   methods: () => ({
     decode: dart.definiteFunctionType(typed_data.Uint8List, [core.String, core.int, core.int]),
     close: dart.definiteFunctionType(dart.void, [core.String, core.int])
@@ -30564,32 +30567,32 @@
 convert._Base64DecoderSink = class _Base64DecoderSink extends convert.StringConversionSinkBase {
   new(sink) {
     this[_decoder] = new convert._Base64Decoder();
-    this[_sink] = sink;
+    this[_sink$] = sink;
   }
   add(string) {
     if (dart.test(string[dartx.isEmpty])) return;
     let buffer = this[_decoder].decode(string, 0, string[dartx.length]);
-    if (buffer != null) this[_sink].add(buffer);
+    if (buffer != null) this[_sink$].add(buffer);
   }
   close() {
     this[_decoder].close(null, null);
-    this[_sink].close();
+    this[_sink$].close();
   }
   addSlice(string, start, end, isLast) {
     end = core.RangeError.checkValidRange(start, end, string[dartx.length]);
     if (start == end) return;
     let buffer = this[_decoder].decode(string, start, end);
-    if (buffer != null) this[_sink].add(buffer);
+    if (buffer != null) this[_sink$].add(buffer);
     if (dart.test(isLast)) {
       this[_decoder].close(string, end);
-      this[_sink].close();
+      this[_sink$].close();
     }
   }
 };
 dart.setSignature(convert._Base64DecoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._Base64DecoderSink, [SinkOfListOfint()])}),
   fields: () => ({
-    [_sink]: SinkOfListOfint(),
+    [_sink$]: SinkOfListOfint(),
     [_decoder]: convert._Base64Decoder
   }),
   methods: () => ({
@@ -30599,19 +30602,19 @@
 });
 convert._ByteAdapterSink = class _ByteAdapterSink extends convert.ByteConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     super.new();
   }
   add(chunk) {
-    this[_sink].add(chunk);
+    this[_sink$].add(chunk);
   }
   close() {
-    this[_sink].close();
+    this[_sink$].close();
   }
 };
 dart.setSignature(convert._ByteAdapterSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._ByteAdapterSink, [SinkOfListOfint()])}),
-  fields: () => ({[_sink]: SinkOfListOfint()}),
+  fields: () => ({[_sink$]: SinkOfListOfint()}),
   methods: () => ({
     add: dart.definiteFunctionType(dart.void, [ListOfint()]),
     close: dart.definiteFunctionType(dart.void, [])
@@ -30774,19 +30777,19 @@
 });
 convert._ConverterStreamEventSink = _ConverterStreamEventSink();
 const _second = Symbol('_second');
-const _first = Symbol('_first');
+const _first$0 = Symbol('_first');
 convert._FusedCodec$ = dart.generic((S, M, T) => {
   let CodecOfS$M = () => (CodecOfS$M = dart.constFn(convert.Codec$(S, M)))();
   let CodecOfM$T = () => (CodecOfM$T = dart.constFn(convert.Codec$(M, T)))();
   class _FusedCodec extends convert.Codec$(S, T) {
     get encoder() {
-      return this[_first].encoder.fuse(T)(this[_second].encoder);
+      return this[_first$0].encoder.fuse(T)(this[_second].encoder);
     }
     get decoder() {
-      return this[_second].decoder.fuse(S)(this[_first].decoder);
+      return this[_second].decoder.fuse(S)(this[_first$0].decoder);
     }
     new(first, second) {
-      this[_first] = first;
+      this[_first$0] = first;
       this[_second] = second;
       super.new();
     }
@@ -30794,7 +30797,7 @@
   dart.setSignature(_FusedCodec, {
     constructors: () => ({new: dart.definiteFunctionType(convert._FusedCodec$(S, M, T), [CodecOfS$M(), CodecOfM$T()])}),
     fields: () => ({
-      [_first]: CodecOfS$M(),
+      [_first$0]: CodecOfS$M(),
       [_second]: CodecOfM$T()
     }),
     getters: () => ({
@@ -30840,23 +30843,23 @@
   let SinkOfT = () => (SinkOfT = dart.constFn(core.Sink$(T)))();
   class _FusedConverter extends convert.Converter$(S, T) {
     new(first, second) {
-      this[_first] = first;
+      this[_first$0] = first;
       this[_second] = second;
       super.new();
     }
     convert(input) {
       S._check(input);
-      return this[_second].convert(this[_first].convert(input));
+      return this[_second].convert(this[_first$0].convert(input));
     }
     startChunkedConversion(sink) {
       SinkOfT()._check(sink);
-      return this[_first].startChunkedConversion(this[_second].startChunkedConversion(sink));
+      return this[_first$0].startChunkedConversion(this[_second].startChunkedConversion(sink));
     }
   }
   dart.setSignature(_FusedConverter, {
     constructors: () => ({new: dart.definiteFunctionType(convert._FusedConverter$(S, M, T), [ConverterOfS$M(), ConverterOfM$T()])}),
     fields: () => ({
-      [_first]: ConverterOfS$M(),
+      [_first$0]: ConverterOfS$M(),
       [_second]: ConverterOfM$T()
     }),
     methods: () => ({convert: dart.definiteFunctionType(T, [S])})
@@ -30864,18 +30867,18 @@
   return _FusedConverter;
 });
 convert._FusedConverter = _FusedConverter();
-const _name = Symbol('_name');
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
+const _name$1 = Symbol('_name');
+let const$34;
+let const$35;
+let const$36;
+let const$37;
+let const$38;
+let const$39;
+let const$40;
+let const$41;
 convert.HtmlEscapeMode = class HtmlEscapeMode extends core.Object {
   _(name, escapeLtGt, escapeQuot, escapeApos, escapeSlash) {
-    this[_name] = name;
+    this[_name$1] = name;
     this.escapeLtGt = escapeLtGt;
     this.escapeQuot = escapeQuot;
     this.escapeApos = escapeApos;
@@ -30891,10 +30894,10 @@
     this.escapeQuot = escapeQuot;
     this.escapeApos = escapeApos;
     this.escapeSlash = escapeSlash;
-    this[_name] = name;
+    this[_name$1] = name;
   }
   toString() {
-    return this[_name];
+    return this[_name$1];
   }
 };
 dart.defineNamedConstructor(convert.HtmlEscapeMode, '_');
@@ -30904,7 +30907,7 @@
     new: dart.definiteFunctionType(convert.HtmlEscapeMode, [], {name: core.String, escapeLtGt: core.bool, escapeQuot: core.bool, escapeApos: core.bool, escapeSlash: core.bool})
   }),
   fields: () => ({
-    [_name]: core.String,
+    [_name$1]: core.String,
     escapeLtGt: core.bool,
     escapeQuot: core.bool,
     escapeApos: core.bool,
@@ -30919,16 +30922,16 @@
 });
 dart.defineLazy(convert.HtmlEscapeMode, {
   get UNKNOWN() {
-    return const || (const = dart.const(new convert.HtmlEscapeMode._('unknown', true, true, true, true)));
+    return const$38 || (const$38 = dart.const(new convert.HtmlEscapeMode._('unknown', true, true, true, true)));
   },
   get ATTRIBUTE() {
-    return const || (const = dart.const(new convert.HtmlEscapeMode._('attribute', true, true, false, false)));
+    return const$39 || (const$39 = dart.const(new convert.HtmlEscapeMode._('attribute', true, true, false, false)));
   },
   get SQ_ATTRIBUTE() {
-    return const || (const = dart.const(new convert.HtmlEscapeMode._('attribute', true, false, true, false)));
+    return const$40 || (const$40 = dart.const(new convert.HtmlEscapeMode._('attribute', true, false, true, false)));
   },
   get ELEMENT() {
-    return const || (const = dart.const(new convert.HtmlEscapeMode._('element', true, false, false, false)));
+    return const$41 || (const$41 = dart.const(new convert.HtmlEscapeMode._('element', true, false, false, false)));
   }
 });
 const _convert = Symbol('_convert');
@@ -31012,26 +31015,26 @@
 convert._HtmlEscapeSink = class _HtmlEscapeSink extends convert.StringConversionSinkBase {
   new(escape, sink) {
     this[_escape] = escape;
-    this[_sink] = sink;
+    this[_sink$] = sink;
   }
   addSlice(chunk, start, end, isLast) {
     let val = this[_escape][_convert](chunk, start, end);
     if (val == null) {
-      this[_sink].addSlice(chunk, start, end, isLast);
+      this[_sink$].addSlice(chunk, start, end, isLast);
     } else {
-      this[_sink].add(val);
-      if (dart.test(isLast)) this[_sink].close();
+      this[_sink$].add(val);
+      if (dart.test(isLast)) this[_sink$].close();
     }
   }
   close() {
-    this[_sink].close();
+    this[_sink$].close();
   }
 };
 dart.setSignature(convert._HtmlEscapeSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._HtmlEscapeSink, [convert.HtmlEscape, convert.StringConversionSink])}),
   fields: () => ({
     [_escape]: convert.HtmlEscape,
-    [_sink]: convert.StringConversionSink
+    [_sink$]: convert.StringConversionSink
   }),
   methods: () => ({
     addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
@@ -31072,8 +31075,8 @@
   constructors: () => ({new: dart.definiteFunctionType(convert.JsonCyclicError, [core.Object])})
 });
 const _toEncodable = Symbol('_toEncodable');
-let const;
-let const;
+let const$42;
+let const$43;
 convert.JsonCodec = class JsonCodec extends convert.Codec$(core.Object, core.String) {
   new(opts) {
     let reviver = opts && 'reviver' in opts ? opts.reviver : null;
@@ -31098,11 +31101,11 @@
     return new convert.JsonEncoder(toEncodable).convert(value);
   }
   get encoder() {
-    if (this[_toEncodable] == null) return const || (const = dart.const(new convert.JsonEncoder()));
+    if (this[_toEncodable] == null) return const$42 || (const$42 = dart.const(new convert.JsonEncoder()));
     return new convert.JsonEncoder(this[_toEncodable]);
   }
   get decoder() {
-    if (this[_reviver] == null) return const || (const = dart.const(new convert.JsonDecoder()));
+    if (this[_reviver] == null) return const$43 || (const$43 = dart.const(new convert.JsonDecoder()));
     return new convert.JsonDecoder(this[_reviver]);
   }
 };
@@ -31149,7 +31152,7 @@
     if (!convert.StringConversionSink.is(sink)) {
       sink = convert.StringConversionSink.from(sink);
     } else if (convert._Utf8EncoderSink.is(sink)) {
-      return new convert._JsonUtf8EncoderSink(sink[_sink], this[_toEncodable], convert.JsonUtf8Encoder._utf8Encode(this.indent), convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE);
+      return new convert._JsonUtf8EncoderSink(sink[_sink$], this[_toEncodable], convert.JsonUtf8Encoder._utf8Encode(this.indent), convert.JsonUtf8Encoder.DEFAULT_BUFFER_SIZE);
     }
     return new convert._JsonEncoderSink(convert.StringConversionSink._check(sink), this[_toEncodable], this.indent);
   }
@@ -31213,7 +31216,7 @@
       }
       bytes[dartx.add](chunk);
     }
-    dart.fn(addChunk, Uint8ListAndintAndintTovoid());
+    dart.fn(addChunk, Uint8ListAndintAndintTovoid$());
     convert._JsonUtf8Stringifier.stringify(object, this[_indent], this[_toEncodable], this[_bufferSize], addChunk);
     if (bytes[dartx.length] == 1) return bytes[dartx._get](0);
     let length = 0;
@@ -31262,7 +31265,7 @@
 const _isDone = Symbol('_isDone');
 convert._JsonEncoderSink = class _JsonEncoderSink extends convert.ChunkedConversionSink$(core.Object) {
   new(sink, toEncodable, indent) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_toEncodable] = toEncodable;
     this[_indent] = indent;
     this[_isDone] = false;
@@ -31273,7 +31276,7 @@
       dart.throw(new core.StateError("Only one call to add allowed"));
     }
     this[_isDone] = true;
-    let stringSink = this[_sink].asStringSink();
+    let stringSink = this[_sink$].asStringSink();
     convert._JsonStringStringifier.printOn(o, stringSink, this[_toEncodable], this[_indent]);
     stringSink.close();
   }
@@ -31285,7 +31288,7 @@
   fields: () => ({
     [_indent]: core.String,
     [_toEncodable]: convert._ToEncodable,
-    [_sink]: convert.StringConversionSink,
+    [_sink$]: convert.StringConversionSink,
     [_isDone]: core.bool
   }),
   methods: () => ({
@@ -31296,7 +31299,7 @@
 const _addChunk = Symbol('_addChunk');
 convert._JsonUtf8EncoderSink = class _JsonUtf8EncoderSink extends convert.ChunkedConversionSink$(core.Object) {
   new(sink, toEncodable, indent, bufferSize) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_toEncodable] = toEncodable;
     this[_indent] = indent;
     this[_bufferSize] = bufferSize;
@@ -31304,7 +31307,7 @@
     super.new();
   }
   [_addChunk](chunk, start, end) {
-    this[_sink].addSlice(chunk, start, end, false);
+    this[_sink$].addSlice(chunk, start, end, false);
   }
   add(object) {
     if (dart.test(this[_isDone])) {
@@ -31312,12 +31315,12 @@
     }
     this[_isDone] = true;
     convert._JsonUtf8Stringifier.stringify(object, this[_indent], this[_toEncodable], this[_bufferSize], dart.bind(this, _addChunk));
-    this[_sink].close();
+    this[_sink$].close();
   }
   close() {
     if (!dart.test(this[_isDone])) {
       this[_isDone] = true;
-      this[_sink].close();
+      this[_sink$].close();
     }
   }
 };
@@ -31325,7 +31328,7 @@
 dart.setSignature(convert._JsonUtf8EncoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._JsonUtf8EncoderSink, [convert.ByteConversionSink, convert._ToEncodable, ListOfint(), core.int])}),
   fields: () => ({
-    [_sink]: convert.ByteConversionSink,
+    [_sink$]: convert.ByteConversionSink,
     [_indent]: ListOfint(),
     [_toEncodable]: convert._ToEncodable,
     [_bufferSize]: core.int,
@@ -31381,7 +31384,7 @@
 convert._defaultToEncodable = function(object) {
   return dart.dsend(object, 'toJson');
 };
-dart.fn(convert._defaultToEncodable, dynamicTodynamic());
+dart.fn(convert._defaultToEncodable, dynamicTodynamic$());
 const _seen = Symbol('_seen');
 const _checkCycle = Symbol('_checkCycle');
 const _removeSeen = Symbol('_removeSeen');
@@ -31672,7 +31675,7 @@
 });
 convert._JsonStringStringifier = class _JsonStringStringifier extends convert._JsonStringifier {
   new(sink, _toEncodable) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     super.new(dynamicTodynamic()._check(_toEncodable));
   }
   static stringify(object, toEncodable, indent) {
@@ -31690,21 +31693,21 @@
     dart.dsend(stringifier, 'writeObject', object);
   }
   writeNumber(number) {
-    this[_sink].write(dart.toString(number));
+    this[_sink$].write(dart.toString(number));
   }
   writeString(string) {
-    this[_sink].write(string);
+    this[_sink$].write(string);
   }
   writeStringSlice(string, start, end) {
-    this[_sink].write(string[dartx.substring](start, end));
+    this[_sink$].write(string[dartx.substring](start, end));
   }
   writeCharCode(charCode) {
-    this[_sink].writeCharCode(charCode);
+    this[_sink$].writeCharCode(charCode);
   }
 };
 dart.setSignature(convert._JsonStringStringifier, {
   constructors: () => ({new: dart.definiteFunctionType(convert._JsonStringStringifier, [core.StringSink, dart.dynamic])}),
-  fields: () => ({[_sink]: core.StringSink}),
+  fields: () => ({[_sink$]: core.StringSink}),
   methods: () => ({
     writeNumber: dart.definiteFunctionType(dart.void, [core.num]),
     writeString: dart.definiteFunctionType(dart.void, [core.String]),
@@ -31889,11 +31892,11 @@
   fields: () => ({indent: ListOfint()}),
   methods: () => ({writeIndentation: dart.definiteFunctionType(dart.void, [core.int])})
 });
-let const;
-let const;
-let const;
-let const;
-let const;
+let const$44;
+let const$45;
+let const$46;
+let const$47;
+let const$48;
 convert.Latin1Codec = class Latin1Codec extends convert.Encoding {
   new(opts) {
     let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : false;
@@ -31907,16 +31910,16 @@
     let allowInvalid = opts && 'allowInvalid' in opts ? opts.allowInvalid : null;
     if (allowInvalid == null) allowInvalid = this[_allowInvalid];
     if (dart.test(allowInvalid)) {
-      return (const || (const = dart.const(new convert.Latin1Decoder({allowInvalid: true})))).convert(bytes);
+      return (const$44 || (const$44 = dart.const(new convert.Latin1Decoder({allowInvalid: true})))).convert(bytes);
     } else {
-      return (const || (const = dart.const(new convert.Latin1Decoder({allowInvalid: false})))).convert(bytes);
+      return (const$45 || (const$45 = dart.const(new convert.Latin1Decoder({allowInvalid: false})))).convert(bytes);
     }
   }
   get encoder() {
-    return const || (const = dart.const(new convert.Latin1Encoder()));
+    return const$46 || (const$46 = dart.const(new convert.Latin1Encoder()));
   }
   get decoder() {
-    return dart.test(this[_allowInvalid]) ? const || (const = dart.const(new convert.Latin1Decoder({allowInvalid: true}))) : const || (const = dart.const(new convert.Latin1Decoder({allowInvalid: false})));
+    return dart.test(this[_allowInvalid]) ? const$47 || (const$47 = dart.const(new convert.Latin1Decoder({allowInvalid: true}))) : const$48 || (const$48 = dart.const(new convert.Latin1Decoder({allowInvalid: false})));
   }
 };
 dart.setSignature(convert.Latin1Codec, {
@@ -31961,18 +31964,18 @@
 const _addSliceToSink = Symbol('_addSliceToSink');
 convert._Latin1DecoderSink = class _Latin1DecoderSink extends convert.ByteConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     super.new();
   }
   close() {
-    this[_sink].close();
-    this[_sink] = null;
+    this[_sink$].close();
+    this[_sink$] = null;
   }
   add(source) {
     this.addSlice(source, 0, source[dartx.length], false);
   }
   [_addSliceToSink](source, start, end, isLast) {
-    this[_sink].add(core.String.fromCharCodes(source, start, end));
+    this[_sink$].add(core.String.fromCharCodes(source, start, end));
     if (dart.test(isLast)) this.close();
   }
   addSlice(source, start, end, isLast) {
@@ -32005,7 +32008,7 @@
 };
 dart.setSignature(convert._Latin1DecoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._Latin1DecoderSink, [convert.StringConversionSink])}),
-  fields: () => ({[_sink]: convert.StringConversionSink}),
+  fields: () => ({[_sink$]: convert.StringConversionSink}),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
     add: dart.definiteFunctionType(dart.void, [ListOfint()]),
@@ -32017,7 +32020,7 @@
   }),
   names: ['_checkValidLatin1', '_reportInvalidLatin1']
 });
-let const;
+let const$49;
 convert._Latin1AllowInvalidDecoderSink = class _Latin1AllowInvalidDecoderSink extends convert._Latin1DecoderSink {
   new(sink) {
     super.new(sink);
@@ -32028,7 +32031,7 @@
       let char = source[dartx._get](i);
       if (dart.notNull(char) > convert._LATIN1_MASK || dart.notNull(char) < 0) {
         if (dart.notNull(i) > dart.notNull(start)) this[_addSliceToSink](source, start, i, false);
-        this[_addSliceToSink](const || (const = dart.constList([65533], core.int)), 0, 1, false);
+        this[_addSliceToSink](const$49 || (const$49 = dart.constList([65533], core.int)), 0, 1, false);
         start = dart.notNull(i) + 1;
       }
     }
@@ -32122,7 +32125,7 @@
 const _addLines = Symbol('_addLines');
 convert._LineSplitterSink = class _LineSplitterSink extends convert.StringConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_carry] = null;
     this[_skipLeadingLF] = false;
   }
@@ -32149,10 +32152,10 @@
   }
   close() {
     if (this[_carry] != null) {
-      this[_sink].add(this[_carry]);
+      this[_sink$].add(this[_carry]);
       this[_carry] = null;
     }
-    this[_sink].close();
+    this[_sink$].close();
   }
   [_addLines](lines, start, end) {
     let sliceStart = start;
@@ -32167,7 +32170,7 @@
           continue;
         }
       }
-      this[_sink].add(lines[dartx.substring](sliceStart, i));
+      this[_sink$].add(lines[dartx.substring](sliceStart, i));
       sliceStart = dart.notNull(i) + 1;
     }
     if (dart.notNull(sliceStart) < dart.notNull(end)) {
@@ -32180,7 +32183,7 @@
 dart.setSignature(convert._LineSplitterSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._LineSplitterSink, [convert.StringConversionSink])}),
   fields: () => ({
-    [_sink]: convert.StringConversionSink,
+    [_sink$]: convert.StringConversionSink,
     [_carry]: core.String,
     [_skipLeadingLF]: core.bool
   }),
@@ -32241,25 +32244,25 @@
 convert._StringSinkCloseCallback = dart.typedef('_StringSinkCloseCallback', () => dart.functionType(dart.void, []));
 convert._ClosableStringSink = class _ClosableStringSink extends core.Object {
   new(sink, callback) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_callback] = callback;
   }
   close() {
     this[_callback]();
   }
   writeCharCode(charCode) {
-    this[_sink].writeCharCode(charCode);
+    this[_sink$].writeCharCode(charCode);
   }
   write(o) {
-    this[_sink].write(o);
+    this[_sink$].write(o);
   }
   writeln(o) {
     if (o === void 0) o = "";
-    this[_sink].writeln(o);
+    this[_sink$].writeln(o);
   }
   writeAll(objects, separator) {
     if (separator === void 0) separator = "";
-    this[_sink].writeAll(objects, separator);
+    this[_sink$].writeAll(objects, separator);
   }
 };
 convert._ClosableStringSink[dart.implements] = () => [convert.ClosableStringSink];
@@ -32267,7 +32270,7 @@
   constructors: () => ({new: dart.definiteFunctionType(convert._ClosableStringSink, [core.StringSink, convert._StringSinkCloseCallback])}),
   fields: () => ({
     [_callback]: convert._StringSinkCloseCallback,
-    [_sink]: core.StringSink
+    [_sink$]: core.StringSink
   }),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
@@ -32362,10 +32365,10 @@
 });
 convert._StringAdapterSink = class _StringAdapterSink extends convert.StringConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
   }
   add(str) {
-    this[_sink].add(str);
+    this[_sink$].add(str);
   }
   addSlice(str, start, end, isLast) {
     if (start == 0 && end == str[dartx.length]) {
@@ -32376,12 +32379,12 @@
     if (dart.test(isLast)) this.close();
   }
   close() {
-    this[_sink].close();
+    this[_sink$].close();
   }
 };
 dart.setSignature(convert._StringAdapterSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._StringAdapterSink, [SinkOfString()])}),
-  fields: () => ({[_sink]: SinkOfString()}),
+  fields: () => ({[_sink$]: SinkOfString()}),
   methods: () => ({
     addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool]),
     close: dart.definiteFunctionType(dart.void, [])
@@ -32389,13 +32392,13 @@
 });
 convert._Utf8StringSinkAdapter = class _Utf8StringSinkAdapter extends convert.ByteConversionSink {
   new(sink, stringSink, allowMalformed) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     this[_decoder] = new convert._Utf8Decoder(stringSink, allowMalformed);
     super.new();
   }
   close() {
     this[_decoder].close();
-    if (this[_sink] != null) this[_sink].close();
+    if (this[_sink$] != null) this[_sink$].close();
   }
   add(chunk) {
     this.addSlice(chunk, 0, chunk[dartx.length], false);
@@ -32409,7 +32412,7 @@
   constructors: () => ({new: dart.definiteFunctionType(convert._Utf8StringSinkAdapter, [core.Sink, core.StringSink, core.bool])}),
   fields: () => ({
     [_decoder]: convert._Utf8Decoder,
-    [_sink]: core.Sink
+    [_sink$]: core.Sink
   }),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
@@ -32471,7 +32474,7 @@
 convert.UNICODE_REPLACEMENT_CHARACTER_RUNE = 65533;
 convert.UNICODE_BOM_CHARACTER_RUNE = 65279;
 const _allowMalformed = Symbol('_allowMalformed');
-let const;
+let const$50;
 convert.Utf8Codec = class Utf8Codec extends convert.Encoding {
   new(opts) {
     let allowMalformed = opts && 'allowMalformed' in opts ? opts.allowMalformed : false;
@@ -32487,7 +32490,7 @@
     return new convert.Utf8Decoder({allowMalformed: allowMalformed}).convert(codeUnits);
   }
   get encoder() {
-    return const || (const = dart.const(new convert.Utf8Encoder()));
+    return const$50 || (const$50 = dart.const(new convert.Utf8Encoder()));
   }
   get decoder() {
     return new convert.Utf8Decoder({allowMalformed: this[_allowMalformed]});
@@ -32685,7 +32688,7 @@
 convert._Utf8Encoder._DEFAULT_BYTE_BUFFER_SIZE = 1024;
 convert._Utf8EncoderSink = class _Utf8EncoderSink extends dart.mixin(convert._Utf8Encoder, convert.StringConversionSinkMixin) {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$] = sink;
     super.new();
   }
   close() {
@@ -32693,7 +32696,7 @@
       this.addSlice("", 0, 0, true);
       return;
     }
-    this[_sink].close();
+    this[_sink$].close();
   }
   addSlice(str, start, end, isLast) {
     this[_bufferIndex] = 0;
@@ -32726,7 +32729,7 @@
         }
         start = dart.notNull(start) + 1;
       }
-      this[_sink].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice);
+      this[_sink$].addSlice(this[_buffer], 0, this[_bufferIndex], isLastSlice);
       this[_bufferIndex] = 0;
     } while (dart.notNull(start) < dart.notNull(end));
     if (dart.test(isLast)) this.close();
@@ -32734,7 +32737,7 @@
 };
 dart.setSignature(convert._Utf8EncoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(convert._Utf8EncoderSink, [convert.ByteConversionSink])}),
-  fields: () => ({[_sink]: convert.ByteConversionSink}),
+  fields: () => ({[_sink$]: convert.ByteConversionSink}),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
     addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
@@ -33065,7 +33068,7 @@
   return Comparable;
 });
 core.Comparable = Comparable();
-const _value = Symbol('_value');
+const _value$ = Symbol('_value');
 core.DateTime = class DateTime extends core.Object {
   new(year, month, day, hour, minute, second, millisecond, microsecond) {
     if (month === void 0) month = 1;
@@ -33098,7 +33101,7 @@
         if (matched == null) return 0;
         return core.int.parse(matched);
       }
-      dart.fn(parseIntOrZero, StringToint());
+      dart.fn(parseIntOrZero, StringToint$());
       function parseMilliAndMicroseconds(matched) {
         if (matched == null) return 0;
         let length = matched[dartx.length];
@@ -33113,7 +33116,7 @@
         }
         return result;
       }
-      dart.fn(parseMilliAndMicroseconds, StringToint());
+      dart.fn(parseMilliAndMicroseconds, StringToint$());
       let years = core.int.parse(match._get(1));
       let month = core.int.parse(match._get(2));
       let day = core.int.parse(match._get(3));
@@ -33154,7 +33157,7 @@
   }
   _withValue(value, opts) {
     let isUtc = opts && 'isUtc' in opts ? opts.isUtc : null;
-    this[_value] = value;
+    this[_value$] = value;
     this.isUtc = isUtc;
     if (dart.notNull(this.millisecondsSinceEpoch[dartx.abs]()) > core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH || this.millisecondsSinceEpoch[dartx.abs]() == core.DateTime._MAX_MILLISECONDS_SINCE_EPOCH && this.microsecond != 0) {
       dart.throw(new core.ArgumentError(this.millisecondsSinceEpoch));
@@ -33163,32 +33166,32 @@
   }
   ['=='](other) {
     if (!core.DateTime.is(other)) return false;
-    return dart.equals(this[_value], dart.dload(other, _value)) && dart.equals(this.isUtc, dart.dload(other, 'isUtc'));
+    return dart.equals(this[_value$], dart.dload(other, _value$)) && dart.equals(this.isUtc, dart.dload(other, 'isUtc'));
   }
   isBefore(other) {
-    return dart.notNull(this[_value]) < dart.notNull(other[_value]);
+    return dart.notNull(this[_value$]) < dart.notNull(other[_value$]);
   }
   isAfter(other) {
-    return dart.notNull(this[_value]) > dart.notNull(other[_value]);
+    return dart.notNull(this[_value$]) > dart.notNull(other[_value$]);
   }
   isAtSameMomentAs(other) {
-    return this[_value] == other[_value];
+    return this[_value$] == other[_value$];
   }
   compareTo(other) {
-    return this[_value][dartx.compareTo](other[_value]);
+    return this[_value$][dartx.compareTo](other[_value$]);
   }
   get hashCode() {
-    return (dart.notNull(this[_value]) ^ this[_value][dartx['>>']](30)) & 1073741823;
+    return (dart.notNull(this[_value$]) ^ this[_value$][dartx['>>']](30)) & 1073741823;
   }
   toLocal() {
     if (dart.test(this.isUtc)) {
-      return new core.DateTime._withValue(this[_value], {isUtc: false});
+      return new core.DateTime._withValue(this[_value$], {isUtc: false});
     }
     return this;
   }
   toUtc() {
     if (dart.test(this.isUtc)) return this;
-    return new core.DateTime._withValue(this[_value], {isUtc: true});
+    return new core.DateTime._withValue(this[_value$], {isUtc: true});
   }
   static _fourDigits(n) {
     let absN = n[dartx.abs]();
@@ -33245,30 +33248,30 @@
     }
   }
   add(duration) {
-    return new core.DateTime._withValue(dart.notNull(this[_value]) + dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
+    return new core.DateTime._withValue(dart.notNull(this[_value$]) + dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
   }
   subtract(duration) {
-    return new core.DateTime._withValue(dart.notNull(this[_value]) - dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
+    return new core.DateTime._withValue(dart.notNull(this[_value$]) - dart.notNull(duration.inMilliseconds), {isUtc: this.isUtc});
   }
   difference(other) {
-    return new core.Duration({milliseconds: dart.notNull(this[_value]) - dart.notNull(other[_value])});
+    return new core.Duration({milliseconds: dart.notNull(this[_value$]) - dart.notNull(other[_value$])});
   }
   _internal(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
     this.isUtc = typeof isUtc == 'boolean' ? isUtc : dart.throw(new core.ArgumentError.value(isUtc, 'isUtc'));
-    this[_value] = core.int._check(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc)));
+    this[_value$] = core.int._check(_js_helper.checkInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc)));
   }
   _now() {
     this.isUtc = false;
-    this[_value] = _js_helper.Primitives.dateNow();
+    this[_value$] = _js_helper.Primitives.dateNow();
   }
   static _brokenDownDateToValue(year, month, day, hour, minute, second, millisecond, microsecond, isUtc) {
     return dart.asInt(_js_helper.Primitives.valueFromDecomposedDate(year, month, day, hour, minute, second, dart.notNull(millisecond) + dart.notNull(core.DateTime._microsecondInRoundedMilliseconds(microsecond)), isUtc));
   }
   get millisecondsSinceEpoch() {
-    return this[_value];
+    return this[_value$];
   }
   get microsecondsSinceEpoch() {
-    return dart.notNull(this[_value]) * 1000;
+    return dart.notNull(this[_value$]) * 1000;
   }
   get timeZoneName() {
     if (dart.test(this.isUtc)) return "UTC";
@@ -33329,7 +33332,7 @@
     _now: dart.definiteFunctionType(core.DateTime, [])
   }),
   fields: () => ({
-    [_value]: core.int,
+    [_value$]: core.int,
     isUtc: core.bool
   }),
   getters: () => ({
@@ -33852,7 +33855,7 @@
   constructors: () => ({new: dart.definiteFunctionType(core.AbstractClassInstantiationError, [core.String])}),
   fields: () => ({[_className]: core.String})
 });
-const _receiver = Symbol('_receiver');
+const _receiver$ = Symbol('_receiver');
 const _memberName = Symbol('_memberName');
 const _arguments = Symbol('_arguments');
 const _namedArguments = Symbol('_namedArguments');
@@ -33860,7 +33863,7 @@
 core.NoSuchMethodError = class NoSuchMethodError extends core.Error {
   new(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames) {
     if (existingArgumentNames === void 0) existingArgumentNames = null;
-    this[_receiver] = receiver;
+    this[_receiver$] = receiver;
     this[_memberName] = memberName;
     this[_arguments] = positionalArguments;
     this[_namedArguments] = namedArguments;
@@ -33890,7 +33893,7 @@
       }, SymbolAnddynamicToNull()));
     }
     if (this[_existingArgumentNames] == null) {
-      return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver])}\n` + dart.str`Arguments: [${sb}]`;
+      return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Arguments: [${sb}]`;
     } else {
       let actualParameters = sb.toString();
       sb = new core.StringBuffer();
@@ -33901,14 +33904,14 @@
         sb.write(this[_existingArgumentNames][dartx._get](i));
       }
       let formalParameters = sb.toString();
-      return "NoSuchMethodError: incorrect number of arguments passed to " + dart.str`method named '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver])}\n` + dart.str`Tried calling: ${this[_memberName]}(${actualParameters})\n` + dart.str`Found: ${this[_memberName]}(${formalParameters})`;
+      return "NoSuchMethodError: incorrect number of arguments passed to " + dart.str`method named '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Tried calling: ${this[_memberName]}(${actualParameters})\n` + dart.str`Found: ${this[_memberName]}(${formalParameters})`;
     }
   }
 };
 dart.setSignature(core.NoSuchMethodError, {
   constructors: () => ({new: dart.definiteFunctionType(core.NoSuchMethodError, [core.Object, core.Symbol, core.List, MapOfSymbol$dynamic()], [core.List])}),
   fields: () => ({
-    [_receiver]: core.Object,
+    [_receiver$]: core.Object,
     [_memberName]: core.Symbol,
     [_arguments]: core.List,
     [_namedArguments]: MapOfSymbol$dynamic(),
@@ -34248,9 +34251,9 @@
   return _Generator;
 });
 core._Generator = _Generator();
-const _end = Symbol('_end');
-const _start = Symbol('_start');
-const _generator = Symbol('_generator');
+const _end$ = Symbol('_end');
+const _start$0 = Symbol('_start');
+const _generator$ = Symbol('_generator');
 core._GeneratorIterable$ = dart.generic(E => {
   let _GeneratorOfE = () => (_GeneratorOfE = dart.constFn(core._Generator$(E)))();
   let _GeneratorIteratorOfE = () => (_GeneratorIteratorOfE = dart.constFn(core._GeneratorIterator$(E)))();
@@ -34258,36 +34261,36 @@
   let _GeneratorIterableOfE = () => (_GeneratorIterableOfE = dart.constFn(core._GeneratorIterable$(E)))();
   class _GeneratorIterable extends core.Iterable$(E) {
     new(end, generator) {
-      this[_end] = end;
-      this[_start] = 0;
-      this[_generator] = generator != null ? generator : _GeneratorOfE().as(core._GeneratorIterable._id);
+      this[_end$] = end;
+      this[_start$0] = 0;
+      this[_generator$] = generator != null ? generator : _GeneratorOfE().as(core._GeneratorIterable._id);
       super.new();
     }
     slice(start, end, generator) {
-      this[_start] = start;
-      this[_end] = end;
-      this[_generator] = generator;
+      this[_start$0] = start;
+      this[_end$] = end;
+      this[_generator$] = generator;
       super.new();
     }
     get iterator() {
-      return new (_GeneratorIteratorOfE())(this[_start], this[_end], this[_generator]);
+      return new (_GeneratorIteratorOfE())(this[_start$0], this[_end$], this[_generator$]);
     }
     get length() {
-      return dart.notNull(this[_end]) - dart.notNull(this[_start]);
+      return dart.notNull(this[_end$]) - dart.notNull(this[_start$0]);
     }
     skip(count) {
       core.RangeError.checkNotNegative(count, "count");
       if (count == 0) return this;
-      let newStart = dart.notNull(this[_start]) + dart.notNull(count);
-      if (newStart >= dart.notNull(this[_end])) return new (EmptyIterableOfE())();
-      return new (_GeneratorIterableOfE()).slice(newStart, this[_end], this[_generator]);
+      let newStart = dart.notNull(this[_start$0]) + dart.notNull(count);
+      if (newStart >= dart.notNull(this[_end$])) return new (EmptyIterableOfE())();
+      return new (_GeneratorIterableOfE()).slice(newStart, this[_end$], this[_generator$]);
     }
     take(count) {
       core.RangeError.checkNotNegative(count, "count");
       if (count == 0) return new (EmptyIterableOfE())();
-      let newEnd = dart.notNull(this[_start]) + dart.notNull(count);
-      if (newEnd >= dart.notNull(this[_end])) return this;
-      return new (_GeneratorIterableOfE()).slice(this[_start], newEnd, this[_generator]);
+      let newEnd = dart.notNull(this[_start$0]) + dart.notNull(count);
+      if (newEnd >= dart.notNull(this[_end$])) return this;
+      return new (_GeneratorIterableOfE()).slice(this[_start$0], newEnd, this[_generator$]);
     }
     static _id(n) {
       return n;
@@ -34301,9 +34304,9 @@
       slice: dart.definiteFunctionType(core._GeneratorIterable$(E), [core.int, core.int, _GeneratorOfE()])
     }),
     fields: () => ({
-      [_start]: core.int,
-      [_end]: core.int,
-      [_generator]: _GeneratorOfE()
+      [_start$0]: core.int,
+      [_end$]: core.int,
+      [_generator$]: _GeneratorOfE()
     }),
     getters: () => ({iterator: dart.definiteFunctionType(core.Iterator$(E), [])}),
     statics: () => ({_id: dart.definiteFunctionType(core.int, [core.int])}),
@@ -34313,30 +34316,30 @@
   return _GeneratorIterable;
 });
 core._GeneratorIterable = _GeneratorIterable();
-const _index = Symbol('_index');
-const _current = Symbol('_current');
+const _index$1 = Symbol('_index');
+const _current$3 = Symbol('_current');
 core._GeneratorIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   let _GeneratorOfE = () => (_GeneratorOfE = dart.constFn(core._Generator$(E)))();
   class _GeneratorIterator extends core.Object {
     new(index, end, generator) {
-      this[_index] = index;
-      this[_end] = end;
-      this[_generator] = generator;
-      this[_current] = null;
+      this[_index$1] = index;
+      this[_end$] = end;
+      this[_generator$] = generator;
+      this[_current$3] = null;
     }
     moveNext() {
-      if (dart.notNull(this[_index]) < dart.notNull(this[_end])) {
-        this[_current] = this[_generator](this[_index]);
-        this[_index] = dart.notNull(this[_index]) + 1;
+      if (dart.notNull(this[_index$1]) < dart.notNull(this[_end$])) {
+        this[_current$3] = this[_generator$](this[_index$1]);
+        this[_index$1] = dart.notNull(this[_index$1]) + 1;
         return true;
       } else {
-        this[_current] = null;
+        this[_current$3] = null;
         return false;
       }
     }
     get current() {
-      return this[_current];
+      return this[_current$3];
     }
   }
   dart.addTypeTests(_GeneratorIterator);
@@ -34344,10 +34347,10 @@
   dart.setSignature(_GeneratorIterator, {
     constructors: () => ({new: dart.definiteFunctionType(core._GeneratorIterator$(E), [core.int, core.int, _GeneratorOfE()])}),
     fields: () => ({
-      [_end]: core.int,
-      [_generator]: _GeneratorOfE(),
-      [_index]: core.int,
-      [_current]: E
+      [_end$]: core.int,
+      [_generator$]: _GeneratorOfE(),
+      [_index$1]: core.int,
+      [_current$3]: E
     }),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
@@ -34405,7 +34408,7 @@
   });
   return Map;
 });
-core.Map = Map();
+core.Map = Map$();
 core.Null = class Null extends core.Object {
   static _uninstantiable() {
     dart.throw(new core.UnsupportedError('class Null cannot be instantiated'));
@@ -34517,16 +34520,16 @@
     return core.Stopwatch._frequency;
   }
   new() {
-    this[_start] = null;
+    this[_start$0] = null;
     this[_stop] = null;
     core.Stopwatch._initTicker();
   }
   start() {
     if (dart.test(this.isRunning)) return;
-    if (this[_start] == null) {
-      this[_start] = core.Stopwatch._now();
+    if (this[_start$0] == null) {
+      this[_start$0] = core.Stopwatch._now();
     } else {
-      this[_start] = dart.notNull(core.Stopwatch._now()) - (dart.notNull(this[_stop]) - dart.notNull(this[_start]));
+      this[_start$0] = dart.notNull(core.Stopwatch._now()) - (dart.notNull(this[_stop]) - dart.notNull(this[_start$0]));
       this[_stop] = null;
     }
   }
@@ -34535,17 +34538,17 @@
     this[_stop] = core.Stopwatch._now();
   }
   reset() {
-    if (this[_start] == null) return;
-    this[_start] = core.Stopwatch._now();
+    if (this[_start$0] == null) return;
+    this[_start$0] = core.Stopwatch._now();
     if (this[_stop] != null) {
-      this[_stop] = this[_start];
+      this[_stop] = this[_start$0];
     }
   }
   get elapsedTicks() {
-    if (this[_start] == null) {
+    if (this[_start$0] == null) {
       return 0;
     }
-    return this[_stop] == null ? dart.notNull(core.Stopwatch._now()) - dart.notNull(this[_start]) : dart.notNull(this[_stop]) - dart.notNull(this[_start]);
+    return this[_stop] == null ? dart.notNull(core.Stopwatch._now()) - dart.notNull(this[_start$0]) : dart.notNull(this[_stop]) - dart.notNull(this[_start$0]);
   }
   get elapsed() {
     return new core.Duration({microseconds: this.elapsedMicroseconds});
@@ -34557,7 +34560,7 @@
     return (dart.notNull(this.elapsedTicks) * 1000 / dart.notNull(this.frequency))[dartx.truncate]();
   }
   get isRunning() {
-    return this[_start] != null && this[_stop] == null;
+    return this[_start$0] != null && this[_stop] == null;
   }
   static _initTicker() {
     _js_helper.Primitives.initTicker();
@@ -34570,7 +34573,7 @@
 dart.setSignature(core.Stopwatch, {
   constructors: () => ({new: dart.definiteFunctionType(core.Stopwatch, [])}),
   fields: () => ({
-    [_start]: core.int,
+    [_start$0]: core.int,
     [_stop]: core.int
   }),
   getters: () => ({
@@ -34636,20 +34639,20 @@
   return 65536 + ((dart.notNull(start) & 1023) << 10) + (dart.notNull(end) & 1023);
 };
 dart.fn(core._combineSurrogatePair, intAndintToint());
-const _position = Symbol('_position');
+const _position$ = Symbol('_position');
 const _nextPosition = Symbol('_nextPosition');
 const _currentCodePoint = Symbol('_currentCodePoint');
 const _checkSplitSurrogate = Symbol('_checkSplitSurrogate');
 core.RuneIterator = class RuneIterator extends core.Object {
   new(string) {
     this.string = string;
-    this[_position] = 0;
+    this[_position$] = 0;
     this[_nextPosition] = 0;
     this[_currentCodePoint] = null;
   }
   at(string, index) {
     this.string = string;
-    this[_position] = index;
+    this[_position$] = index;
     this[_nextPosition] = index;
     this[_currentCodePoint] = null;
     core.RangeError.checkValueInInterval(index, 0, string[dartx.length]);
@@ -34661,7 +34664,7 @@
     }
   }
   get rawIndex() {
-    return this[_position] != this[_nextPosition] ? this[_position] : null;
+    return this[_position$] != this[_nextPosition] ? this[_position$] : null;
   }
   set rawIndex(rawIndex) {
     core.RangeError.checkValidIndex(rawIndex, this.string, "rawIndex");
@@ -34672,28 +34675,28 @@
     if (rawIndex === void 0) rawIndex = 0;
     core.RangeError.checkValueInInterval(rawIndex, 0, this.string[dartx.length], "rawIndex");
     this[_checkSplitSurrogate](rawIndex);
-    this[_position] = this[_nextPosition] = rawIndex;
+    this[_position$] = this[_nextPosition] = rawIndex;
     this[_currentCodePoint] = null;
   }
   get current() {
     return this[_currentCodePoint];
   }
   get currentSize() {
-    return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position]);
+    return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position$]);
   }
   get currentAsString() {
-    if (this[_position] == this[_nextPosition]) return null;
-    if (dart.notNull(this[_position]) + 1 == this[_nextPosition]) return this.string[dartx._get](this[_position]);
-    return this.string[dartx.substring](this[_position], this[_nextPosition]);
+    if (this[_position$] == this[_nextPosition]) return null;
+    if (dart.notNull(this[_position$]) + 1 == this[_nextPosition]) return this.string[dartx._get](this[_position$]);
+    return this.string[dartx.substring](this[_position$], this[_nextPosition]);
   }
   moveNext() {
-    this[_position] = this[_nextPosition];
-    if (this[_position] == this.string[dartx.length]) {
+    this[_position$] = this[_nextPosition];
+    if (this[_position$] == this.string[dartx.length]) {
       this[_currentCodePoint] = null;
       return false;
     }
-    let codeUnit = this.string[dartx.codeUnitAt](this[_position]);
-    let nextPosition = dart.notNull(this[_position]) + 1;
+    let codeUnit = this.string[dartx.codeUnitAt](this[_position$]);
+    let nextPosition = dart.notNull(this[_position$]) + 1;
     if (dart.test(core._isLeadSurrogate(codeUnit)) && nextPosition < dart.notNull(this.string[dartx.length])) {
       let nextCodeUnit = this.string[dartx.codeUnitAt](nextPosition);
       if (dart.test(core._isTrailSurrogate(nextCodeUnit))) {
@@ -34707,22 +34710,22 @@
     return true;
   }
   movePrevious() {
-    this[_nextPosition] = this[_position];
-    if (this[_position] == 0) {
+    this[_nextPosition] = this[_position$];
+    if (this[_position$] == 0) {
       this[_currentCodePoint] = null;
       return false;
     }
-    let position = dart.notNull(this[_position]) - 1;
+    let position = dart.notNull(this[_position$]) - 1;
     let codeUnit = this.string[dartx.codeUnitAt](position);
     if (dart.test(core._isTrailSurrogate(codeUnit)) && position > 0) {
       let prevCodeUnit = this.string[dartx.codeUnitAt](position - 1);
       if (dart.test(core._isLeadSurrogate(prevCodeUnit))) {
-        this[_position] = position - 1;
+        this[_position$] = position - 1;
         this[_currentCodePoint] = core._combineSurrogatePair(prevCodeUnit, codeUnit);
         return true;
       }
     }
-    this[_position] = position;
+    this[_position$] = position;
     this[_currentCodePoint] = codeUnit;
     return true;
   }
@@ -34736,7 +34739,7 @@
   }),
   fields: () => ({
     string: core.String,
-    [_position]: core.int,
+    [_position$]: core.int,
     [_nextPosition]: core.int,
     [_currentCodePoint]: core.int
   }),
@@ -34854,7 +34857,7 @@
 const _queryParameters = Symbol('_queryParameters');
 const _queryParameterLists = Symbol('_queryParameterLists');
 const _writeAuthority = Symbol('_writeAuthority');
-let const;
+let const$51;
 const _mergePaths = Symbol('_mergePaths');
 const _toWindowsFilePath = Symbol('_toWindowsFilePath');
 const _toFilePath = Symbol('_toFilePath');
@@ -35018,7 +35021,7 @@
         char = uri[dartx.codeUnitAt](index);
       }
     }
-    dart.fn(parseAuth, VoidTovoid());
+    dart.fn(parseAuth, VoidTovoid$());
     let NOT_IN_PATH = 0;
     let IN_PATH = 1;
     let ALLOW_AUTH = 2;
@@ -35357,7 +35360,7 @@
     if (dart.test(pathToSplit[dartx.isNotEmpty]) && pathToSplit[dartx.codeUnitAt](0) == core.Uri._SLASH) {
       pathToSplit = pathToSplit[dartx.substring](1);
     }
-    result = pathToSplit == "" ? const || (const = dart.constList([], core.String)) : ListOfString().unmodifiable(pathToSplit[dartx.split]("/")[dartx.map](core.String)(core.Uri.decodeComponent));
+    result = pathToSplit == "" ? const$51 || (const$51 = dart.constList([], core.String)) : ListOfString().unmodifiable(pathToSplit[dartx.split]("/")[dartx.map](core.String)(core.Uri.decodeComponent));
     this[_pathSegments] = result;
     return result;
   }
@@ -35510,7 +35513,7 @@
     if (path != null) {
       result = core.Uri._normalize(path, start, end, core.Uri._pathCharOrSlashTable);
     } else {
-      result = pathSegments[dartx.map](core.String)(dart.fn(s => core.Uri._uriEncode(core.Uri._pathCharTable, s, convert.UTF8, false), StringToString()))[dartx.join]("/");
+      result = pathSegments[dartx.map](core.String)(dart.fn(s => core.Uri._uriEncode(core.Uri._pathCharTable, s, convert.UTF8, false), StringToString$()))[dartx.join]("/");
     }
     if (dart.test(dart.dload(result, 'isEmpty'))) {
       if (isFile) return "/";
@@ -35543,7 +35546,7 @@
         result.write(core.Uri.encodeQueryComponent(value));
       }
     }
-    dart.fn(writeParameter, StringAndStringTovoid());
+    dart.fn(writeParameter, StringAndStringTovoid$());
     queryParameters[dartx.forEach](dart.fn((key, value) => {
       if (value == null || typeof value == 'string') {
         writeParameter(key, core.String._check(value));
@@ -36044,7 +36047,7 @@
     function error(msg) {
       dart.throw(new core.FormatException(dart.str`Illegal IPv4 address, ${msg}`));
     }
-    dart.fn(error, StringTovoid());
+    dart.fn(error, StringTovoid$());
     let bytes = host[dartx.split]('.');
     if (bytes[dartx.length] != 4) {
       error('IPv4 address should contain exactly 4 parts');
@@ -36055,7 +36058,7 @@
         error('each part must be in the range of `0..255`');
       }
       return byte;
-    }, StringToint()))[dartx.toList]();
+    }, StringToint$()))[dartx.toList]();
   }
   static parseIPv6Address(host, start, end) {
     if (start === void 0) start = 0;
@@ -36816,7 +36819,7 @@
   let error = opts && 'error' in opts ? opts.error : null;
   let stackTrace = opts && 'stackTrace' in opts ? opts.stackTrace : null;
 };
-dart.fn(developer.log, String__Tovoid());
+dart.fn(developer.log, String__Tovoid$());
 dart.defineLazy(developer, {
   get _extensions() {
     return MapOfString$ServiceExtensionHandler().new();
@@ -37052,11 +37055,11 @@
     description: core.String
   })
 });
-const _value = Symbol('_value');
+const _value$0 = Symbol('_value');
 const _toJSON = Symbol('_toJSON');
 developer.Gauge = class Gauge extends developer.Metric {
   get value() {
-    return this[_value];
+    return this[_value$0];
   }
   set value(v) {
     if (dart.notNull(v) < dart.notNull(this.min)) {
@@ -37064,12 +37067,12 @@
     } else if (dart.notNull(v) > dart.notNull(this.max)) {
       v = this.max;
     }
-    this[_value] = v;
+    this[_value$0] = v;
   }
   new(name, description, min, max) {
     this.min = min;
     this.max = max;
-    this[_value] = null;
+    this[_value$0] = null;
     super.new(name, description);
     if (!(typeof this.min == 'number')) {
       dart.throw(new core.ArgumentError('min must be a double'));
@@ -37080,7 +37083,7 @@
     if (!(dart.notNull(this.min) < dart.notNull(this.max))) {
       dart.throw(new core.ArgumentError('min must be less than max'));
     }
-    this[_value] = this.min;
+    this[_value$0] = this.min;
   }
   [_toJSON]() {
     let map = dart.map({type: 'Gauge', id: dart.str`metrics/${this.name}`, name: this.name, description: this.description, value: this.value, min: this.min, max: this.max}, core.String, core.Object);
@@ -37092,7 +37095,7 @@
   fields: () => ({
     min: core.double,
     max: core.double,
-    [_value]: core.double
+    [_value$0]: core.double
   }),
   getters: () => ({value: dart.definiteFunctionType(core.double, [])}),
   setters: () => ({value: dart.definiteFunctionType(dart.void, [core.double])}),
@@ -37100,14 +37103,14 @@
 });
 developer.Counter = class Counter extends developer.Metric {
   new(name, description) {
-    this[_value] = 0.0;
+    this[_value$0] = 0.0;
     super.new(name, description);
   }
   get value() {
-    return this[_value];
+    return this[_value$0];
   }
   set value(v) {
-    this[_value] = v;
+    this[_value$0] = v;
   }
   [_toJSON]() {
     let map = dart.map({type: 'Counter', id: dart.str`metrics/${this.name}`, name: this.name, description: this.description, value: this.value}, core.String, core.Object);
@@ -37116,7 +37119,7 @@
 };
 dart.setSignature(developer.Counter, {
   constructors: () => ({new: dart.definiteFunctionType(developer.Counter, [core.String, core.String])}),
-  fields: () => ({[_value]: core.double}),
+  fields: () => ({[_value$0]: core.double}),
   getters: () => ({value: dart.definiteFunctionType(core.double, [])}),
   setters: () => ({value: dart.definiteFunctionType(dart.void, [core.double])}),
   methods: () => ({[_toJSON]: dart.definiteFunctionType(core.Map, [])})
@@ -37262,7 +37265,7 @@
 });
 const _stack = Symbol('_stack');
 const _taskId = Symbol('_taskId');
-const _start = Symbol('_start');
+const _start$1 = Symbol('_start');
 const _finish = Symbol('_finish');
 developer.TimelineTask = class TimelineTask extends core.Object {
   new() {
@@ -37289,7 +37292,7 @@
       block[_appendArguments](arguments$);
     }
     this[_stack][dartx.add](block);
-    block[_start]();
+    block[_start$1]();
   }
   instant(name, opts) {
     let arguments$ = opts && 'arguments' in opts ? opts.arguments : null;
@@ -37340,25 +37343,25 @@
     pass: dart.definiteFunctionType(core.int, [])
   })
 });
-const _arguments = Symbol('_arguments');
+const _arguments$ = Symbol('_arguments');
 developer._AsyncBlock = class _AsyncBlock extends core.Object {
   _(name, taskId) {
     this.name = name;
     this[_taskId] = taskId;
     this.category = 'Dart';
-    this[_arguments] = null;
+    this[_arguments$] = null;
   }
-  [_start]() {
-    developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'b', this.category, this.name, developer._argumentsAsJson(this[_arguments]));
+  [_start$1]() {
+    developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'b', this.category, this.name, developer._argumentsAsJson(this[_arguments$]));
   }
   [_finish]() {
     developer._reportTaskEvent(developer._getTraceClock(), this[_taskId], 'e', this.category, this.name, developer._argumentsAsJson(null));
   }
   [_appendArguments](arguments$) {
-    if (this[_arguments] == null) {
-      this[_arguments] = dart.map();
+    if (this[_arguments$] == null) {
+      this[_arguments$] = dart.map();
     }
-    this[_arguments][dartx.addAll](arguments$);
+    this[_arguments$][dartx.addAll](arguments$);
   }
 };
 dart.defineNamedConstructor(developer._AsyncBlock, '_');
@@ -37368,10 +37371,10 @@
     category: core.String,
     name: core.String,
     [_taskId]: core.int,
-    [_arguments]: core.Map
+    [_arguments$]: core.Map
   }),
   methods: () => ({
-    [_start]: dart.definiteFunctionType(dart.void, []),
+    [_start$1]: dart.definiteFunctionType(dart.void, []),
     [_finish]: dart.definiteFunctionType(dart.void, []),
     [_appendArguments]: dart.definiteFunctionType(dart.void, [core.Map])
   })
@@ -37380,22 +37383,22 @@
 developer._SyncBlock = class _SyncBlock extends core.Object {
   _(name, start, startCpu) {
     this.name = name;
-    this[_start] = start;
+    this[_start$1] = start;
     this[_startCpu] = startCpu;
     this.category = 'Dart';
-    this[_arguments] = null;
+    this[_arguments$] = null;
   }
   finish() {
-    developer._reportCompleteEvent(this[_start], this[_startCpu], this.category, this.name, developer._argumentsAsJson(this[_arguments]));
+    developer._reportCompleteEvent(this[_start$1], this[_startCpu], this.category, this.name, developer._argumentsAsJson(this[_arguments$]));
   }
   [_appendArguments](arguments$) {
     if (arguments$ == null) {
       return;
     }
-    if (this[_arguments] == null) {
-      this[_arguments] = dart.map();
+    if (this[_arguments$] == null) {
+      this[_arguments$] = dart.map();
     }
-    this[_arguments][dartx.addAll](arguments$);
+    this[_arguments$][dartx.addAll](arguments$);
   }
 };
 dart.defineNamedConstructor(developer._SyncBlock, '_');
@@ -37404,8 +37407,8 @@
   fields: () => ({
     category: core.String,
     name: core.String,
-    [_arguments]: core.Map,
-    [_start]: core.int,
+    [_arguments$]: core.Map,
+    [_start$1]: core.int,
     [_startCpu]: core.int
   }),
   methods: () => ({
@@ -37452,7 +37455,7 @@
 dart.fn(developer._reportTaskEvent, intAndintAndString__Tovoid());
 developer._reportCompleteEvent = function(start, startCpu, category, name, argumentsAsJson) {
 };
-dart.fn(developer._reportCompleteEvent, intAndintAndString__Tovoid());
+dart.fn(developer._reportCompleteEvent, intAndintAndString__Tovoid$());
 developer._reportInstantEvent = function(start, category, name, argumentsAsJson) {
 };
 dart.fn(developer._reportInstantEvent, intAndStringAndString__Tovoid());
@@ -37542,63 +37545,63 @@
 dart.setSignature(io.BytesBuilder, {
   constructors: () => ({new: dart.definiteFunctionType(io.BytesBuilder, [], {copy: core.bool})})
 });
-const _length = Symbol('_length');
-const _buffer = Symbol('_buffer');
+const _length$2 = Symbol('_length');
+const _buffer$ = Symbol('_buffer');
 const _pow2roundup = Symbol('_pow2roundup');
 io._CopyingBytesBuilder = class _CopyingBytesBuilder extends core.Object {
   new() {
-    this[_length] = 0;
-    this[_buffer] = null;
+    this[_length$2] = 0;
+    this[_buffer$] = null;
   }
   add(bytes) {
     let bytesLength = bytes[dartx.length];
     if (bytesLength == 0) return;
-    let required = dart.notNull(this[_length]) + dart.notNull(bytesLength);
-    if (this[_buffer] == null) {
+    let required = dart.notNull(this[_length$2]) + dart.notNull(bytesLength);
+    if (this[_buffer$] == null) {
       let size = this[_pow2roundup](required);
       size = math.max(core.int)(size, io._CopyingBytesBuilder._INIT_SIZE);
-      this[_buffer] = typed_data.Uint8List.new(size);
-    } else if (dart.notNull(this[_buffer][dartx.length]) < required) {
+      this[_buffer$] = typed_data.Uint8List.new(size);
+    } else if (dart.notNull(this[_buffer$][dartx.length]) < required) {
       let size = dart.notNull(this[_pow2roundup](required)) * 2;
       let newBuffer = typed_data.Uint8List.new(size);
-      newBuffer[dartx.setRange](0, this[_buffer][dartx.length], this[_buffer]);
-      this[_buffer] = newBuffer;
+      newBuffer[dartx.setRange](0, this[_buffer$][dartx.length], this[_buffer$]);
+      this[_buffer$] = newBuffer;
     }
-    dart.assert(dart.notNull(this[_buffer][dartx.length]) >= required);
+    dart.assert(dart.notNull(this[_buffer$][dartx.length]) >= required);
     if (typed_data.Uint8List.is(bytes)) {
-      this[_buffer][dartx.setRange](this[_length], required, bytes);
+      this[_buffer$][dartx.setRange](this[_length$2], required, bytes);
     } else {
       for (let i = 0; i < dart.notNull(bytesLength); i++) {
-        this[_buffer][dartx._set](dart.notNull(this[_length]) + i, bytes[dartx._get](i));
+        this[_buffer$][dartx._set](dart.notNull(this[_length$2]) + i, bytes[dartx._get](i));
       }
     }
-    this[_length] = required;
+    this[_length$2] = required;
   }
   addByte(byte) {
     this.add(JSArrayOfint().of([byte]));
   }
   takeBytes() {
-    if (this[_buffer] == null) return typed_data.Uint8List.new(0);
-    let buffer = typed_data.Uint8List.view(this[_buffer][dartx.buffer], 0, this[_length]);
+    if (this[_buffer$] == null) return typed_data.Uint8List.new(0);
+    let buffer = typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]);
     this.clear();
     return buffer;
   }
   toBytes() {
-    if (this[_buffer] == null) return typed_data.Uint8List.new(0);
-    return typed_data.Uint8List.fromList(typed_data.Uint8List.view(this[_buffer][dartx.buffer], 0, this[_length]));
+    if (this[_buffer$] == null) return typed_data.Uint8List.new(0);
+    return typed_data.Uint8List.fromList(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
   }
   get length() {
-    return this[_length];
+    return this[_length$2];
   }
   get isEmpty() {
-    return this[_length] == 0;
+    return this[_length$2] == 0;
   }
   get isNotEmpty() {
-    return this[_length] != 0;
+    return this[_length$2] != 0;
   }
   clear() {
-    this[_length] = 0;
-    this[_buffer] = null;
+    this[_length$2] = 0;
+    this[_buffer$] = null;
   }
   [_pow2roundup](x) {
     x = dart.notNull(x) - 1;
@@ -37613,8 +37616,8 @@
 io._CopyingBytesBuilder[dart.implements] = () => [io.BytesBuilder];
 dart.setSignature(io._CopyingBytesBuilder, {
   fields: () => ({
-    [_length]: core.int,
-    [_buffer]: typed_data.Uint8List
+    [_length$2]: core.int,
+    [_buffer$]: typed_data.Uint8List
   }),
   getters: () => ({
     length: dart.definiteFunctionType(core.int, []),
@@ -37636,14 +37639,14 @@
 io._BytesBuilder = class _BytesBuilder extends core.Object {
   new() {
     this[_chunks] = JSArrayOfListOfint().of([]);
-    this[_length] = 0;
+    this[_length$2] = 0;
   }
   add(bytes) {
     if (!typed_data.Uint8List.is(bytes)) {
       bytes = typed_data.Uint8List.fromList(bytes);
     }
     this[_chunks][dartx.add](bytes);
-    this[_length] = dart.notNull(this[_length]) + dart.notNull(bytes[dartx.length]);
+    this[_length$2] = dart.notNull(this[_length$2]) + dart.notNull(bytes[dartx.length]);
   }
   addByte(byte) {
     this.add(JSArrayOfint().of([byte]));
@@ -37655,7 +37658,7 @@
       this.clear();
       return buffer;
     }
-    let buffer = typed_data.Uint8List.new(this[_length]);
+    let buffer = typed_data.Uint8List.new(this[_length$2]);
     let offset = 0;
     for (let chunk of this[_chunks]) {
       buffer[dartx.setRange](offset, dart.notNull(offset) + dart.notNull(chunk[dartx.length]), chunk);
@@ -37666,7 +37669,7 @@
   }
   toBytes() {
     if (this[_chunks][dartx.length] == 0) return typed_data.Uint8List.new(0);
-    let buffer = typed_data.Uint8List.new(this[_length]);
+    let buffer = typed_data.Uint8List.new(this[_length$2]);
     let offset = 0;
     for (let chunk of this[_chunks]) {
       buffer[dartx.setRange](offset, dart.notNull(offset) + dart.notNull(chunk[dartx.length]), chunk);
@@ -37675,23 +37678,23 @@
     return buffer;
   }
   get length() {
-    return this[_length];
+    return this[_length$2];
   }
   get isEmpty() {
-    return this[_length] == 0;
+    return this[_length$2] == 0;
   }
   get isNotEmpty() {
-    return this[_length] != 0;
+    return this[_length$2] != 0;
   }
   clear() {
-    this[_length] = 0;
+    this[_length$2] = 0;
     this[_chunks][dartx.clear]();
   }
 };
 io._BytesBuilder[dart.implements] = () => [io.BytesBuilder];
 dart.setSignature(io._BytesBuilder, {
   fields: () => ({
-    [_length]: core.int,
+    [_length$2]: core.int,
     [_chunks]: ListOfListOfint()
   }),
   getters: () => ({
@@ -37717,7 +37720,7 @@
 io._isErrorResponse = function(response) {
   return core.List.is(response) && !dart.equals(response[dartx._get](0), io._SUCCESS_RESPONSE);
 };
-dart.fn(io._isErrorResponse, dynamicTobool());
+dart.fn(io._isErrorResponse, dynamicTobool$());
 io._exceptionFromResponse = function(response, message, path) {
   dart.assert(io._isErrorResponse(response));
   switch (dart.dindex(response, io._ERROR_RESPONSE_ERROR_TYPE)) {
@@ -38483,15 +38486,15 @@
     close: dart.definiteFunctionType(dart.void, [])
   })
 });
-const _sink = Symbol('_sink');
-const _filter = Symbol('_filter');
+const _sink$0 = Symbol('_sink');
+const _filter$ = Symbol('_filter');
 const _closed = Symbol('_closed');
 const _empty = Symbol('_empty');
-let const;
+let const$52;
 io._FilterSink = class _FilterSink extends convert.ByteConversionSink {
   new(sink, filter) {
-    this[_sink] = sink;
-    this[_filter] = filter;
+    this[_sink$0] = sink;
+    this[_filter$] = filter;
     this[_closed] = false;
     this[_empty] = true;
     super.new();
@@ -38506,10 +38509,10 @@
     try {
       this[_empty] = false;
       let bufferAndStart = io._ensureFastAndSerializableByteData(data, start, end);
-      this[_filter].process(ListOfint()._check(bufferAndStart.buffer), bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
+      this[_filter$].process(ListOfint()._check(bufferAndStart.buffer), bufferAndStart.start, dart.notNull(end) - (dart.notNull(start) - dart.notNull(bufferAndStart.start)));
       let out = null;
-      while ((out = this[_filter].processed({flush: false})) != null) {
-        this[_sink].add(ListOfint()._check(out));
+      while ((out = this[_filter$].processed({flush: false})) != null) {
+        this[_sink$0].add(ListOfint()._check(out));
       }
     } catch (e) {
       this[_closed] = true;
@@ -38520,11 +38523,11 @@
   }
   close() {
     if (dart.test(this[_closed])) return;
-    if (dart.test(this[_empty])) this[_filter].process(const || (const = dart.constList([], core.int)), 0, 0);
+    if (dart.test(this[_empty])) this[_filter$].process(const$52 || (const$52 = dart.constList([], core.int)), 0, 0);
     try {
       let out = null;
-      while ((out = this[_filter].processed({end: true})) != null) {
-        this[_sink].add(ListOfint()._check(out));
+      while ((out = this[_filter$].processed({end: true})) != null) {
+        this[_sink$0].add(ListOfint()._check(out));
       }
     } catch (e) {
       this[_closed] = true;
@@ -38532,14 +38535,14 @@
     }
 
     this[_closed] = true;
-    this[_sink].close();
+    this[_sink$0].close();
   }
 };
 dart.setSignature(io._FilterSink, {
   constructors: () => ({new: dart.definiteFunctionType(io._FilterSink, [convert.ByteConversionSink, io._Filter])}),
   fields: () => ({
-    [_filter]: io._Filter,
-    [_sink]: convert.ByteConversionSink,
+    [_filter$]: io._Filter,
+    [_sink$0]: convert.ByteConversionSink,
     [_closed]: core.bool,
     [_empty]: core.bool
   }),
@@ -38598,9 +38601,9 @@
   }
 };
 dart.fn(io._validateZLibMemLevel, intTovoid());
-let const;
+let const$53;
 io._validateZLibStrategy = function(strategy) {
-  let strategies = const || (const = dart.constList([io.ZLibOption.STRATEGY_FILTERED, io.ZLibOption.STRATEGY_HUFFMAN_ONLY, io.ZLibOption.STRATEGY_RLE, io.ZLibOption.STRATEGY_FIXED, io.ZLibOption.STRATEGY_DEFAULT], core.int));
+  let strategies = const$53 || (const$53 = dart.constList([io.ZLibOption.STRATEGY_FILTERED, io.ZLibOption.STRATEGY_HUFFMAN_ONLY, io.ZLibOption.STRATEGY_RLE, io.ZLibOption.STRATEGY_FIXED, io.ZLibOption.STRATEGY_DEFAULT], core.int));
   if (strategies[dartx.indexOf](strategy) == -1) {
     dart.throw(new core.ArgumentError("Unsupported 'strategy'"));
   }
@@ -38921,7 +38924,7 @@
         dart.throw(this[_exceptionOrErrorFromResponse](response, "Exists failed"));
       }
       return dart.equals(response, 1);
-    }, dynamicTobool()));
+    }, dynamicTobool$()));
   }
   existsSync() {
     let result = io._Directory._exists(this.path);
@@ -38951,7 +38954,7 @@
             return async.Future.value(index);
           }
           return dart.dsend(dart.dsend(dirsToCreate[dartx._get](i), 'exists'), 'then', dart.fn(e => dart.test(e) ? i : notFound, dynamicToint()));
-        }, dynamicTodynamic()));
+        }, dynamicTodynamic$()));
       }
     }
     if (future == null) {
@@ -39191,7 +39194,7 @@
         this.error(response);
         this.close();
       }
-    }, dynamicToNull()));
+    }, dynamicToNull$()));
   }
   onResume() {
     if (!dart.test(this.nextRunning)) {
@@ -39256,7 +39259,7 @@
       } else {
         this.controller.addError(new io.FileSystemException("Internal error"));
       }
-    }, dynamicToNull()));
+    }, dynamicToNull$()));
   }
   [_cleanup]() {
     this.controller.close();
@@ -39463,40 +39466,40 @@
 });
 io._BLOCK_SIZE = 64 * 1024;
 const _closeCompleter = Symbol('_closeCompleter');
-const _path = Symbol('_path');
-const _position = Symbol('_position');
-const _end = Symbol('_end');
-const _controller = Symbol('_controller');
+const _path$ = Symbol('_path');
+const _position$0 = Symbol('_position');
+const _end$0 = Symbol('_end');
+const _controller$0 = Symbol('_controller');
 const _openedFile = Symbol('_openedFile');
 const _unsubscribed = Symbol('_unsubscribed');
 const _readInProgress = Symbol('_readInProgress');
 const _atEnd = Symbol('_atEnd');
 const _setupController = Symbol('_setupController');
-const _start = Symbol('_start');
+const _start$2 = Symbol('_start');
 const _readBlock = Symbol('_readBlock');
 const _closeFile = Symbol('_closeFile');
 io._FileStream = class _FileStream extends async.Stream$(core.List$(core.int)) {
   new(path, position, end) {
     this[_closeCompleter] = async.Completer.new();
-    this[_path] = path;
-    this[_position] = position;
-    this[_end] = end;
-    this[_controller] = null;
+    this[_path$] = path;
+    this[_position$0] = position;
+    this[_end$0] = end;
+    this[_controller$0] = null;
     this[_openedFile] = null;
     this[_unsubscribed] = false;
     this[_readInProgress] = true;
     this[_closed] = false;
     this[_atEnd] = false;
     super.new();
-    if (this[_position] == null) this[_position] = 0;
+    if (this[_position$0] == null) this[_position$0] = 0;
   }
   forStdin() {
     this[_closeCompleter] = async.Completer.new();
-    this[_position] = 0;
-    this[_controller] = null;
-    this[_path] = null;
+    this[_position$0] = 0;
+    this[_controller$0] = null;
+    this[_path$] = null;
     this[_openedFile] = null;
-    this[_end] = null;
+    this[_end$0] = null;
     this[_unsubscribed] = false;
     this[_readInProgress] = true;
     this[_closed] = false;
@@ -39508,10 +39511,10 @@
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
     this[_setupController]();
-    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   [_setupController]() {
-    this[_controller] = StreamControllerOfListOfint().new({sync: true, onListen: dart.bind(this, _start), onResume: dart.bind(this, _readBlock), onCancel: dart.fn(() => {
+    this[_controller$0] = StreamControllerOfListOfint().new({sync: true, onListen: dart.bind(this, _start$2), onResume: dart.bind(this, _readBlock), onCancel: dart.fn(() => {
         this[_unsubscribed] = true;
         return this[_closeFile]();
       }, VoidToFuture())});
@@ -39523,10 +39526,10 @@
     this[_closed] = true;
     const done = (function() {
       this[_closeCompleter].complete();
-      this[_controller].close();
+      this[_controller$0].close();
     }).bind(this);
-    dart.fn(done, VoidTovoid());
-    this[_openedFile].close().catchError(dart.bind(this[_controller], 'addError')).whenComplete(done);
+    dart.fn(done, VoidTovoid$());
+    this[_openedFile].close().catchError(dart.bind(this[_controller$0], 'addError')).whenComplete(done);
     return this[_closeCompleter].future;
   }
   [_readBlock]() {
@@ -39537,12 +39540,12 @@
     }
     this[_readInProgress] = true;
     let readBytes = io._BLOCK_SIZE;
-    if (this[_end] != null) {
-      readBytes = math.min(core.int)(readBytes, dart.notNull(this[_end]) - dart.notNull(this[_position]));
+    if (this[_end$0] != null) {
+      readBytes = math.min(core.int)(readBytes, dart.notNull(this[_end$0]) - dart.notNull(this[_position$0]));
       if (dart.notNull(readBytes) < 0) {
         this[_readInProgress] = false;
         if (!dart.test(this[_unsubscribed])) {
-          this[_controller].addError(new core.RangeError(dart.str`Bad end position: ${this[_end]}`));
+          this[_controller$0].addError(new core.RangeError(dart.str`Bad end position: ${this[_end$0]}`));
           this[_closeFile]();
           this[_unsubscribed] = true;
         }
@@ -39555,29 +39558,29 @@
         this[_closeFile]();
         return;
       }
-      this[_position] = dart.notNull(this[_position]) + dart.notNull(block[dartx.length]);
-      if (dart.notNull(block[dartx.length]) < dart.notNull(readBytes) || this[_end] != null && this[_position] == this[_end]) {
+      this[_position$0] = dart.notNull(this[_position$0]) + dart.notNull(block[dartx.length]);
+      if (dart.notNull(block[dartx.length]) < dart.notNull(readBytes) || this[_end$0] != null && this[_position$0] == this[_end$0]) {
         this[_atEnd] = true;
       }
-      if (!dart.test(this[_atEnd]) && !dart.test(this[_controller].isPaused)) {
+      if (!dart.test(this[_atEnd]) && !dart.test(this[_controller$0].isPaused)) {
         this[_readBlock]();
       }
-      this[_controller].add(block);
+      this[_controller$0].add(block);
       if (dart.test(this[_atEnd])) {
         this[_closeFile]();
       }
     }, ListOfintToNull())).catchError(dart.fn((e, s) => {
       if (!dart.test(this[_unsubscribed])) {
-        this[_controller].addError(e, core.StackTrace._check(s));
+        this[_controller$0].addError(e, core.StackTrace._check(s));
         this[_closeFile]();
         this[_unsubscribed] = true;
       }
     }, dynamicAnddynamicToNull()));
   }
-  [_start]() {
-    if (dart.notNull(this[_position]) < 0) {
-      this[_controller].addError(new core.RangeError(dart.str`Bad start position: ${this[_position]}`));
-      this[_controller].close();
+  [_start$2]() {
+    if (dart.notNull(this[_position$0]) < 0) {
+      this[_controller$0].addError(new core.RangeError(dart.str`Bad start position: ${this[_position$0]}`));
+      this[_controller$0].close();
       this[_closeCompleter].complete();
       return;
     }
@@ -39588,9 +39591,9 @@
     }).bind(this);
     dart.fn(onReady, RandomAccessFileTovoid());
     const onOpenFile = (function(file) {
-      if (dart.notNull(this[_position]) > 0) {
-        file.setPosition(this[_position]).then(dart.void)(onReady, {onError: dart.fn((e, s) => {
-            this[_controller].addError(e, core.StackTrace._check(s));
+      if (dart.notNull(this[_position$0]) > 0) {
+        file.setPosition(this[_position$0]).then(dart.void)(onReady, {onError: dart.fn((e, s) => {
+            this[_controller$0].addError(e, core.StackTrace._check(s));
             this[_readInProgress] = false;
             this[_closeFile]();
           }, dynamicAnddynamicToNull())});
@@ -39600,13 +39603,13 @@
     }).bind(this);
     dart.fn(onOpenFile, RandomAccessFileTovoid());
     const openFailed = (function(error, stackTrace) {
-      this[_controller].addError(error, core.StackTrace._check(stackTrace));
-      this[_controller].close();
+      this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
+      this[_controller$0].close();
       this[_closeCompleter].complete();
     }).bind(this);
-    dart.fn(openFailed, dynamicAnddynamicTovoid());
-    if (this[_path] != null) {
-      io.File.new(this[_path]).open({mode: io.FileMode.READ}).then(dart.void)(onOpenFile, {onError: openFailed});
+    dart.fn(openFailed, dynamicAnddynamicTovoid$());
+    if (this[_path$] != null) {
+      io.File.new(this[_path$]).open({mode: io.FileMode.READ}).then(dart.void)(onOpenFile, {onError: openFailed});
     } else {
       try {
         onOpenFile(io._File._openStdioSync(0));
@@ -39626,11 +39629,11 @@
     forStdin: dart.definiteFunctionType(io._FileStream, [])
   }),
   fields: () => ({
-    [_controller]: StreamControllerOfListOfint(),
-    [_path]: core.String,
+    [_controller$0]: StreamControllerOfListOfint(),
+    [_path$]: core.String,
     [_openedFile]: io.RandomAccessFile,
-    [_position]: core.int,
-    [_end]: core.int,
+    [_position$0]: core.int,
+    [_end$0]: core.int,
     [_closeCompleter]: async.Completer,
     [_unsubscribed]: core.bool,
     [_readInProgress]: core.bool,
@@ -39642,7 +39645,7 @@
     [_setupController]: dart.definiteFunctionType(dart.void, []),
     [_closeFile]: dart.definiteFunctionType(async.Future, []),
     [_readBlock]: dart.definiteFunctionType(dart.void, []),
-    [_start]: dart.definiteFunctionType(dart.void, [])
+    [_start$2]: dart.definiteFunctionType(dart.void, [])
   })
 });
 const _file = Symbol('_file');
@@ -39706,8 +39709,8 @@
   })
 });
 const _tryDecode = Symbol('_tryDecode');
-let const;
-let const;
+let const$54;
+let const$55;
 io._File = class _File extends io.FileSystemEntity {
   new(path) {
     this.path = path;
@@ -39920,9 +39923,9 @@
           } else {
             completer.complete(builder.takeBytes());
           }
-        }, dynamicToNull()), {onError: dart.bind(completer, 'completeError')});
+        }, dynamicToNull$()), {onError: dart.bind(completer, 'completeError')});
       }
-      dart.fn(read, VoidTovoid());
+      dart.fn(read, VoidTovoid$());
       read();
       return FutureOfListOfint()._check(completer.future);
     }
@@ -39972,11 +39975,11 @@
   }
   readAsLines(opts) {
     let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-    return this.readAsString({encoding: encoding}).then(ListOfString())(dart.bind(const || (const = dart.const(new convert.LineSplitter())), 'convert'));
+    return this.readAsString({encoding: encoding}).then(ListOfString())(dart.bind(const$54 || (const$54 = dart.const(new convert.LineSplitter())), 'convert'));
   }
   readAsLinesSync(opts) {
     let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8;
-    return (const || (const = dart.const(new convert.LineSplitter()))).convert(this.readAsStringSync({encoding: encoding}));
+    return (const$55 || (const$55 = dart.const(new convert.LineSplitter()))).convert(this.readAsStringSync({encoding: encoding}));
   }
   writeAsBytes(bytes, opts) {
     let mode = opts && 'mode' in opts ? opts.mode : io.FileMode.WRITE;
@@ -40539,7 +40542,7 @@
 io._RandomAccessFile.LOCK_UNLOCK = 0;
 io._RandomAccessFile.LOCK_SHARED = 1;
 io._RandomAccessFile.LOCK_EXCLUSIVE = 2;
-let const;
+let const$56;
 io.FileSystemEntityType = class FileSystemEntityType extends core.Object {
   _internal(type) {
     this[_type] = type;
@@ -40548,7 +40551,7 @@
     return io.FileSystemEntityType._typeList[dartx._get](type);
   }
   toString() {
-    return (const || (const = dart.constList(['FILE', 'DIRECTORY', 'LINK', 'NOT_FOUND'], core.String)))[dartx._get](this[_type]);
+    return (const$56 || (const$56 = dart.constList(['FILE', 'DIRECTORY', 'LINK', 'NOT_FOUND'], core.String)))[dartx._get](this[_type]);
   }
 };
 dart.defineNamedConstructor(io.FileSystemEntityType, '_internal');
@@ -40582,7 +40585,7 @@
     return dart.constList([io.FileSystemEntityType.FILE, io.FileSystemEntityType.DIRECTORY, io.FileSystemEntityType.LINK, io.FileSystemEntityType.NOT_FOUND], io.FileSystemEntityType);
   }
 });
-let const;
+let const$57;
 io.FileStat = class FileStat extends core.Object {
   _internal(changed, modified, accessed, type, mode, size) {
     this.changed = changed;
@@ -40628,7 +40631,7 @@
   }
   modeString() {
     let permissions = dart.notNull(this.mode) & 4095;
-    let codes = const || (const = dart.constList(['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx'], core.String));
+    let codes = const$57 || (const$57 = dart.constList(['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx'], core.String));
     let result = [];
     if ((permissions & 2048) != 0) result[dartx.add]("(suid) ");
     if ((permissions & 1024) != 0) result[dartx.add]("(guid) ");
@@ -41288,19 +41291,19 @@
   }),
   getters: () => ({uri: dart.definiteFunctionType(core.Uri, [])})
 });
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
+let const$58;
+let const$59;
+let const$60;
+let const$61;
+let const$62;
+let const$63;
+let const$64;
+let const$65;
+let const$66;
 io.HttpDate = class HttpDate extends core.Object {
   static format(date) {
-    let wkday = const || (const = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
-    let month = const || (const = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
+    let wkday = const$58 || (const$58 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
+    let month = const$59 || (const$59 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
     let d = date.toUtc();
     let sb = new core.StringBuffer();
     sb.write(wkday[dartx._get](dart.notNull(d.weekday) - 1));
@@ -41322,12 +41325,12 @@
   }
   static parse(date) {
     let SP = 32;
-    let wkdays = const || (const = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
-    let weekdays = const || (const = dart.constList(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], core.String));
-    let months = const || (const = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
-    let wkdaysLowerCase = const || (const = dart.constList(["mon", "tue", "wed", "thu", "fri", "sat", "sun"], core.String));
-    let weekdaysLowerCase = const || (const = dart.constList(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], core.String));
-    let monthsLowerCase = const || (const = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
+    let wkdays = const$60 || (const$60 = dart.constList(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], core.String));
+    let weekdays = const$61 || (const$61 = dart.constList(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], core.String));
+    let months = const$62 || (const$62 = dart.constList(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], core.String));
+    let wkdaysLowerCase = const$63 || (const$63 = dart.constList(["mon", "tue", "wed", "thu", "fri", "sat", "sun"], core.String));
+    let weekdaysLowerCase = const$64 || (const$64 = dart.constList(["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], core.String));
+    let monthsLowerCase = const$65 || (const$65 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
     let formatRfc1123 = 0;
     let formatRfc850 = 1;
     let formatAsctime = 2;
@@ -41344,7 +41347,7 @@
       }
       index = dart.notNull(index) + dart.notNull(s[dartx.length]);
     }
-    dart.fn(expect, StringTovoid());
+    dart.fn(expect, StringTovoid$());
     function expectWeekday() {
       let weekday = null;
       let pos = date[dartx.indexOf](",", index);
@@ -41384,7 +41387,7 @@
       if (month != -1) return month;
       dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
     }
-    dart.fn(expectMonth, StringToint());
+    dart.fn(expectMonth, StringToint$());
     function expectNum(separator) {
       let pos = null;
       if (dart.notNull(separator[dartx.length]) > 0) {
@@ -41405,13 +41408,13 @@
       }
 
     }
-    dart.fn(expectNum, StringToint());
+    dart.fn(expectNum, StringToint$());
     function expectEnd() {
       if (index != date[dartx.length]) {
         dart.throw(new io.HttpException(dart.str`Invalid HTTP date ${date}`));
       }
     }
-    dart.fn(expectEnd, VoidTovoid());
+    dart.fn(expectEnd, VoidTovoid$());
     let weekday = expectWeekday();
     let day = null;
     let month = null;
@@ -41443,12 +41446,12 @@
     return new core.DateTime.utc(year, dart.notNull(month) + 1, day, hours, minutes, seconds, 0);
   }
   static _parseCookieDate(date) {
-    let monthsLowerCase = const || (const = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
+    let monthsLowerCase = const$66 || (const$66 = dart.constList(["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"], core.String));
     let position = 0;
     function error() {
       dart.throw(new io.HttpException(dart.str`Invalid cookie date ${date}`));
     }
-    dart.fn(error, VoidTovoid());
+    dart.fn(error, VoidTovoid$());
     function isEnd() {
       return position == date[dartx.length];
     }
@@ -41462,7 +41465,7 @@
       if (dart.notNull(char) >= 123 && dart.notNull(char) <= 126) return true;
       return false;
     }
-    dart.fn(isDelimiter, StringTobool());
+    dart.fn(isDelimiter, StringTobool$());
     function isNonDelimiter(s) {
       let char = s[dartx.codeUnitAt](0);
       if (dart.notNull(char) >= 0 && dart.notNull(char) <= 8) return true;
@@ -41474,25 +41477,25 @@
       if (dart.notNull(char) >= 127 && dart.notNull(char) <= 255) return true;
       return false;
     }
-    dart.fn(isNonDelimiter, StringTobool());
+    dart.fn(isNonDelimiter, StringTobool$());
     function isDigit(s) {
       let char = s[dartx.codeUnitAt](0);
       if (dart.notNull(char) > 47 && dart.notNull(char) < 58) return true;
       return false;
     }
-    dart.fn(isDigit, StringTobool());
+    dart.fn(isDigit, StringTobool$());
     function getMonth(month) {
       if (dart.notNull(month[dartx.length]) < 3) return -1;
       return monthsLowerCase[dartx.indexOf](month[dartx.substring](0, 3));
     }
-    dart.fn(getMonth, StringToint());
+    dart.fn(getMonth, StringToint$());
     function toInt(s) {
       let index = 0;
       for (; index < dart.notNull(s[dartx.length]) && dart.test(isDigit(s[dartx._get](index))); index++)
         ;
       return core.int.parse(s[dartx.substring](0, index));
     }
-    dart.fn(toInt, StringToint());
+    dart.fn(toInt, StringToint$());
     let tokens = [];
     while (!dart.test(isEnd())) {
       while (!dart.test(isEnd()) && dart.test(isDelimiter(date[dartx._get](position))))
@@ -41559,12 +41562,12 @@
 const _contentLength = Symbol('_contentLength');
 const _persistentConnection = Symbol('_persistentConnection');
 const _chunkedTransferEncoding = Symbol('_chunkedTransferEncoding');
-const _host = Symbol('_host');
-const _port = Symbol('_port');
+const _host$ = Symbol('_host');
+const _port$ = Symbol('_port');
 const _checkMutable = Symbol('_checkMutable');
 const _addAll = Symbol('_addAll');
-const _add = Symbol('_add');
-const _set = Symbol('_set');
+const _add$2 = Symbol('_add');
+const _set$ = Symbol('_set');
 const _addValue = Symbol('_addValue');
 const _updateHostHeader = Symbol('_updateHostHeader');
 const _addDate = Symbol('_addDate');
@@ -41591,15 +41594,15 @@
     this[_contentLength] = -1;
     this[_persistentConnection] = true;
     this[_chunkedTransferEncoding] = false;
-    this[_host] = null;
-    this[_port] = null;
+    this[_host$] = null;
+    this[_port$] = null;
     if (initialHeaders != null) {
       initialHeaders[_headers][dartx.forEach](dart.fn((name, value) => this[_headers][dartx._set](name, value), StringAndListOfStringToListOfString()));
       this[_contentLength] = initialHeaders[_contentLength];
       this[_persistentConnection] = initialHeaders[_persistentConnection];
       this[_chunkedTransferEncoding] = initialHeaders[_chunkedTransferEncoding];
-      this[_host] = initialHeaders[_host];
-      this[_port] = initialHeaders[_port];
+      this[_host$] = initialHeaders[_host$];
+      this[_port$] = initialHeaders[_port$];
     }
     if (this.protocolVersion == "1.0") {
       this[_persistentConnection] = false;
@@ -41626,10 +41629,10 @@
     dart.assert(name == io._HttpHeaders._validateField(name));
     if (core.Iterable.is(value)) {
       for (let v of value) {
-        this[_add](name, io._HttpHeaders._validateValue(v));
+        this[_add$2](name, io._HttpHeaders._validateValue(v));
       }
     } else {
-      this[_add](name, io._HttpHeaders._validateValue(value));
+      this[_add$2](name, io._HttpHeaders._validateValue(value));
     }
   }
   set(name, value) {
@@ -41705,7 +41708,7 @@
     this[_contentLength] = contentLength;
     if (dart.notNull(this[_contentLength]) >= 0) {
       if (dart.test(this.chunkedTransferEncoding)) this.chunkedTransferEncoding = false;
-      this[_set](io.HttpHeaders.CONTENT_LENGTH, dart.toString(contentLength));
+      this[_set$](io.HttpHeaders.CONTENT_LENGTH, dart.toString(contentLength));
     } else {
       this.removeAll(io.HttpHeaders.CONTENT_LENGTH);
       if (this.protocolVersion == "1.1") {
@@ -41734,19 +41737,19 @@
     this[_chunkedTransferEncoding] = chunkedTransferEncoding;
   }
   get host() {
-    return this[_host];
+    return this[_host$];
   }
   set host(host) {
     this[_checkMutable]();
-    this[_host] = host;
+    this[_host$] = host;
     this[_updateHostHeader]();
   }
   get port() {
-    return this[_port];
+    return this[_port$];
   }
   set port(port) {
     this[_checkMutable]();
-    this[_port] = port;
+    this[_port$] = port;
     this[_updateHostHeader]();
   }
   get ifModifiedSince() {
@@ -41767,7 +41770,7 @@
   set ifModifiedSince(ifModifiedSince) {
     this[_checkMutable]();
     let formatted = io.HttpDate.format(ifModifiedSince.toUtc());
-    this[_set](io.HttpHeaders.IF_MODIFIED_SINCE, formatted);
+    this[_set$](io.HttpHeaders.IF_MODIFIED_SINCE, formatted);
   }
   get date() {
     let values = this[_headers][dartx._get](io.HttpHeaders.DATE);
@@ -41787,7 +41790,7 @@
   set date(date) {
     this[_checkMutable]();
     let formatted = io.HttpDate.format(date.toUtc());
-    this[_set]("date", formatted);
+    this[_set$]("date", formatted);
   }
   get expires() {
     let values = this[_headers][dartx._get](io.HttpHeaders.EXPIRES);
@@ -41807,7 +41810,7 @@
   set expires(expires) {
     this[_checkMutable]();
     let formatted = io.HttpDate.format(expires.toUtc());
-    this[_set](io.HttpHeaders.EXPIRES, formatted);
+    this[_set$](io.HttpHeaders.EXPIRES, formatted);
   }
   get contentType() {
     let values = this[_headers][dartx._get]("content-type");
@@ -41819,7 +41822,7 @@
   }
   set contentType(contentType) {
     this[_checkMutable]();
-    this[_set](io.HttpHeaders.CONTENT_TYPE, dart.toString(contentType));
+    this[_set$](io.HttpHeaders.CONTENT_TYPE, dart.toString(contentType));
   }
   clear() {
     this[_checkMutable]();
@@ -41827,10 +41830,10 @@
     this[_contentLength] = -1;
     this[_persistentConnection] = true;
     this[_chunkedTransferEncoding] = false;
-    this[_host] = null;
-    this[_port] = null;
+    this[_host$] = null;
+    this[_port$] = null;
   }
-  [_add](name, value) {
+  [_add$2](name, value) {
     dart.assert(name == io._HttpHeaders._validateField(name));
     switch (name[dartx.length]) {
       case 4:
@@ -41911,7 +41914,7 @@
     if (core.DateTime.is(value)) {
       this.date = value;
     } else if (typeof value == 'string') {
-      this[_set](io.HttpHeaders.DATE, value);
+      this[_set$](io.HttpHeaders.DATE, value);
     } else {
       dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
     }
@@ -41920,7 +41923,7 @@
     if (core.DateTime.is(value)) {
       this.expires = value;
     } else if (typeof value == 'string') {
-      this[_set](io.HttpHeaders.EXPIRES, value);
+      this[_set$](io.HttpHeaders.EXPIRES, value);
     } else {
       dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
     }
@@ -41929,7 +41932,7 @@
     if (core.DateTime.is(value)) {
       this.ifModifiedSince = value;
     } else if (typeof value == 'string') {
-      this[_set](io.HttpHeaders.IF_MODIFIED_SINCE, value);
+      this[_set$](io.HttpHeaders.IF_MODIFIED_SINCE, value);
     } else {
       dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
     }
@@ -41938,29 +41941,29 @@
     if (typeof value == 'string') {
       let pos = value[dartx.indexOf](":");
       if (pos == -1) {
-        this[_host] = value;
-        this[_port] = io.HttpClient.DEFAULT_HTTP_PORT;
+        this[_host$] = value;
+        this[_port$] = io.HttpClient.DEFAULT_HTTP_PORT;
       } else {
         if (dart.notNull(pos) > 0) {
-          this[_host] = value[dartx.substring](0, pos);
+          this[_host$] = value[dartx.substring](0, pos);
         } else {
-          this[_host] = null;
+          this[_host$] = null;
         }
         if (dart.notNull(pos) + 1 == value[dartx.length]) {
-          this[_port] = io.HttpClient.DEFAULT_HTTP_PORT;
+          this[_port$] = io.HttpClient.DEFAULT_HTTP_PORT;
         } else {
           try {
-            this[_port] = core.int.parse(value[dartx.substring](dart.notNull(pos) + 1));
+            this[_port$] = core.int.parse(value[dartx.substring](dart.notNull(pos) + 1));
           } catch (e) {
             if (core.FormatException.is(e)) {
-              this[_port] = null;
+              this[_port$] = null;
             } else
               throw e;
           }
 
         }
       }
-      this[_set](io.HttpHeaders.HOST, value);
+      this[_set$](io.HttpHeaders.HOST, value);
     } else {
       dart.throw(new io.HttpException(dart.str`Unexpected type for header named ${name}`));
     }
@@ -41975,7 +41978,7 @@
     this[_addValue](name, value);
   }
   [_addContentType](name, value) {
-    this[_set](io.HttpHeaders.CONTENT_TYPE, core.String._check(value));
+    this[_set$](io.HttpHeaders.CONTENT_TYPE, core.String._check(value));
   }
   [_addValue](name, value) {
     let values = this[_headers][dartx._get](name);
@@ -41991,7 +41994,7 @@
       values[dartx.add](core.String._check(io._HttpHeaders._validateValue(dart.toString(value))));
     }
   }
-  [_set](name, value) {
+  [_set$](name, value) {
     dart.assert(name == io._HttpHeaders._validateField(name));
     let values = ListOfString().new();
     this[_headers][dartx._set](name, values);
@@ -42001,8 +42004,8 @@
     if (!dart.test(this[_mutable])) dart.throw(new io.HttpException("HTTP headers are not mutable"));
   }
   [_updateHostHeader]() {
-    let defaultPort = this[_port] == null || this[_port] == this[_defaultPortForScheme];
-    this[_set]("host", defaultPort ? this.host : dart.str`${this.host}:${this[_port]}`);
+    let defaultPort = this[_port$] == null || this[_port$] == this[_defaultPortForScheme];
+    this[_set$]("host", defaultPort ? this.host : dart.str`${this.host}:${this[_port$]}`);
   }
   [_foldHeader](name) {
     if (name == io.HttpHeaders.SET_COOKIE || this[_noFoldingHeaders] != null && this[_noFoldingHeaders][dartx.indexOf](name) != -1) {
@@ -42021,7 +42024,7 @@
       }
       offset = dart.notNull(offset) + dart.notNull(len);
     }
-    dart.fn(write, ListOfintTovoid());
+    dart.fn(write, ListOfintTovoid$());
     for (let name of this[_headers][dartx.keys]) {
       let values = this[_headers][dartx._get](name);
       let fold = core.bool._check(this[_foldHeader](name));
@@ -42125,7 +42128,7 @@
           index = dart.notNull(index) + 1;
         }
       }
-      dart.fn(skipWS, VoidTovoid());
+      dart.fn(skipWS, VoidTovoid$());
       function parseName() {
         let start = index;
         while (!dart.test(done())) {
@@ -42134,7 +42137,7 @@
         }
         return s[dartx.substring](start, index);
       }
-      dart.fn(parseName, VoidToString());
+      dart.fn(parseName, VoidToString$());
       function parseValue() {
         let start = index;
         while (!dart.test(done())) {
@@ -42143,14 +42146,14 @@
         }
         return s[dartx.substring](start, index);
       }
-      dart.fn(parseValue, VoidToString());
+      dart.fn(parseValue, VoidToString$());
       function expect(expected) {
         if (dart.test(done())) return false;
         if (s[dartx._get](index) != expected) return false;
         index = dart.notNull(index) + 1;
         return true;
       }
-      dart.fn(expect, StringTobool());
+      dart.fn(expect, StringTobool$());
       while (!dart.test(done())) {
         skipWS();
         if (dart.test(done())) return;
@@ -42175,10 +42178,10 @@
         }
       }
     }
-    dart.fn(parseCookieString, StringTovoid());
+    dart.fn(parseCookieString, StringTovoid$());
     let values = this[_headers][dartx._get](io.HttpHeaders.COOKIE);
     if (values != null) {
-      values[dartx.forEach](dart.fn(headerValue => parseCookieString(headerValue), StringTovoid()));
+      values[dartx.forEach](dart.fn(headerValue => parseCookieString(headerValue), StringTovoid$()));
     }
     return cookies;
   }
@@ -42211,8 +42214,8 @@
     [_contentLength]: core.int,
     [_persistentConnection]: core.bool,
     [_chunkedTransferEncoding]: core.bool,
-    [_host]: core.String,
-    [_port]: core.int,
+    [_host$]: core.String,
+    [_port$]: core.int,
     [_defaultPortForScheme]: core.int
   }),
   getters: () => ({
@@ -42248,7 +42251,7 @@
     forEach: dart.definiteFunctionType(dart.void, [StringAndListOfStringTovoid()]),
     noFolding: dart.definiteFunctionType(dart.void, [core.String]),
     clear: dart.definiteFunctionType(dart.void, []),
-    [_add]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
+    [_add$2]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
     [_addContentLength]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
     [_addTransferEncoding]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
     [_addDate]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
@@ -42258,7 +42261,7 @@
     [_addConnection]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
     [_addContentType]: dart.definiteFunctionType(dart.void, [core.String, dart.dynamic]),
     [_addValue]: dart.definiteFunctionType(dart.void, [core.String, core.Object]),
-    [_set]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
+    [_set$]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
     [_checkMutable]: dart.definiteFunctionType(dart.dynamic, []),
     [_updateHostHeader]: dart.definiteFunctionType(dart.dynamic, []),
     [_foldHeader]: dart.definiteFunctionType(dart.dynamic, [core.String]),
@@ -42272,7 +42275,7 @@
   }),
   names: ['_validateField', '_validateValue']
 });
-const _value = Symbol('_value');
+const _value$1 = Symbol('_value');
 const _parameters = Symbol('_parameters');
 const _unmodifiableParameters = Symbol('_unmodifiableParameters');
 const _parse = Symbol('_parse');
@@ -42281,7 +42284,7 @@
   new(value, parameters) {
     if (value === void 0) value = "";
     if (parameters === void 0) parameters = null;
-    this[_value] = value;
+    this[_value$1] = value;
     this[_parameters] = null;
     this[_unmodifiableParameters] = null;
     if (parameters != null) {
@@ -42297,7 +42300,7 @@
     return result;
   }
   get value() {
-    return this[_value];
+    return this[_value$1];
   }
   [_ensureParameters]() {
     if (this[_parameters] == null) {
@@ -42313,7 +42316,7 @@
   }
   toString() {
     let sb = new core.StringBuffer();
-    sb.write(this[_value]);
+    sb.write(this[_value$1]);
     if (this.parameters != null && dart.notNull(this.parameters[dartx.length]) > 0) {
       this[_parameters][dartx.forEach](dart.fn((name, value) => {
         sb.write("; ");
@@ -42336,7 +42339,7 @@
         index++;
       }
     }
-    dart.fn(skipWS, VoidTovoid());
+    dart.fn(skipWS, VoidTovoid$());
     function parseValue() {
       let start = index;
       while (!dart.test(done())) {
@@ -42345,18 +42348,18 @@
       }
       return s[dartx.substring](start, index);
     }
-    dart.fn(parseValue, VoidToString());
+    dart.fn(parseValue, VoidToString$());
     function expect(expected) {
       if (dart.test(done()) || s[dartx._get](index) != expected) {
         dart.throw(new io.HttpException("Failed to parse header value"));
       }
       index++;
     }
-    dart.fn(expect, StringTovoid());
+    dart.fn(expect, StringTovoid$());
     function maybeExpect(expected) {
       if (s[dartx._get](index) == expected) index++;
     }
-    dart.fn(maybeExpect, StringTovoid());
+    dart.fn(maybeExpect, StringTovoid$());
     const parseParameters = (function() {
       let parameters = HashMapOfString$String().new();
       this[_parameters] = new (UnmodifiableMapViewOfString$String())(parameters);
@@ -42368,7 +42371,7 @@
         }
         return s[dartx.substring](start, index)[dartx.toLowerCase]();
       }
-      dart.fn(parseParameterName, VoidToString());
+      dart.fn(parseParameterName, VoidToString$());
       function parseParameterValue() {
         if (!dart.test(done()) && s[dartx._get](index) == "\"") {
           let sb = new core.StringBuffer();
@@ -42395,7 +42398,7 @@
           return val == "" ? null : val;
         }
       }
-      dart.fn(parseParameterValue, VoidToString());
+      dart.fn(parseParameterValue, VoidToString$());
       while (!dart.test(done())) {
         skipWS();
         if (dart.test(done())) return;
@@ -42422,9 +42425,9 @@
         expect(parameterSeparator);
       }
     }).bind(this);
-    dart.fn(parseParameters, VoidTovoid());
+    dart.fn(parseParameters, VoidTovoid$());
     skipWS();
-    this[_value] = parseValue();
+    this[_value$1] = parseValue();
     skipWS();
     if (dart.test(done())) return;
     maybeExpect(parameterSeparator);
@@ -42435,7 +42438,7 @@
 dart.setSignature(io._HeaderValue, {
   constructors: () => ({new: dart.definiteFunctionType(io._HeaderValue, [], [core.String, MapOfString$String()])}),
   fields: () => ({
-    [_value]: core.String,
+    [_value$1]: core.String,
     [_parameters]: MapOfString$String(),
     [_unmodifiableParameters]: MapOfString$String()
   }),
@@ -42459,7 +42462,7 @@
     super.new("");
     if (this[_primaryType] == null) this[_primaryType] = "";
     if (this[_subType] == null) this[_subType] = "";
-    this[_value] = dart.str`${this[_primaryType]}/${this[_subType]}`;
+    this[_value$1] = dart.str`${this[_primaryType]}/${this[_subType]}`;
     if (parameters != null) {
       this[_ensureParameters]();
       parameters[dartx.forEach](dart.fn((key, value) => {
@@ -42483,13 +42486,13 @@
   static parse(value) {
     let result = new io._ContentType._();
     result[_parse](value, ";", null, false);
-    let index = result[_value][dartx.indexOf]("/");
-    if (index == -1 || index == dart.notNull(result[_value][dartx.length]) - 1) {
-      result[_primaryType] = result[_value][dartx.trim]()[dartx.toLowerCase]();
+    let index = result[_value$1][dartx.indexOf]("/");
+    if (index == -1 || index == dart.notNull(result[_value$1][dartx.length]) - 1) {
+      result[_primaryType] = result[_value$1][dartx.trim]()[dartx.toLowerCase]();
       result[_subType] = "";
     } else {
-      result[_primaryType] = result[_value][dartx.substring](0, index)[dartx.trim]()[dartx.toLowerCase]();
-      result[_subType] = result[_value][dartx.substring](dart.notNull(index) + 1)[dartx.trim]()[dartx.toLowerCase]();
+      result[_primaryType] = result[_value$1][dartx.substring](0, index)[dartx.trim]()[dartx.toLowerCase]();
+      result[_subType] = result[_value$1][dartx.substring](dart.notNull(index) + 1)[dartx.trim]()[dartx.toLowerCase]();
     }
     return result;
   }
@@ -42528,7 +42531,7 @@
 });
 const _validate = Symbol('_validate');
 const _parseSetCookieValue = Symbol('_parseSetCookieValue');
-let const;
+let const$67;
 io._Cookie = class _Cookie extends core.Object {
   new(name, value) {
     if (name === void 0) name = null;
@@ -42569,7 +42572,7 @@
       }
       return s[dartx.substring](start, index)[dartx.trim]();
     }
-    dart.fn(parseName, VoidToString());
+    dart.fn(parseName, VoidToString$());
     function parseValue() {
       let start = index;
       while (!dart.test(done())) {
@@ -42578,7 +42581,7 @@
       }
       return s[dartx.substring](start, index)[dartx.trim]();
     }
-    dart.fn(parseValue, VoidToString());
+    dart.fn(parseValue, VoidToString$());
     function expect(expected) {
       if (dart.test(done())) dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
       if (s[dartx._get](index) != expected) {
@@ -42586,7 +42589,7 @@
       }
       index++;
     }
-    dart.fn(expect, StringTovoid());
+    dart.fn(expect, StringTovoid$());
     const parseAttributes = (function() {
       function parseAttributeName() {
         let start = index;
@@ -42596,7 +42599,7 @@
         }
         return s[dartx.substring](start, index)[dartx.trim]()[dartx.toLowerCase]();
       }
-      dart.fn(parseAttributeName, VoidToString());
+      dart.fn(parseAttributeName, VoidToString$());
       function parseAttributeValue() {
         let start = index;
         while (!dart.test(done())) {
@@ -42605,7 +42608,7 @@
         }
         return s[dartx.substring](start, index)[dartx.trim]()[dartx.toLowerCase]();
       }
-      dart.fn(parseAttributeValue, VoidToString());
+      dart.fn(parseAttributeValue, VoidToString$());
       while (!dart.test(done())) {
         let name = parseAttributeName();
         let value = "";
@@ -42629,7 +42632,7 @@
         if (!dart.test(done())) index++;
       }
     }).bind(this);
-    dart.fn(parseAttributes, VoidTovoid());
+    dart.fn(parseAttributes, VoidTovoid$());
     this.name = parseName();
     if (dart.test(done()) || this.name[dartx.length] == 0) {
       dart.throw(new io.HttpException(dart.str`Failed to parse header value [${s}]`));
@@ -42667,7 +42670,7 @@
     return sb.toString();
   }
   [_validate]() {
-    let SEPERATORS = const || (const = dart.constList(["(", ")", "<", ">", "@", ",", ";", ":", "\\", '"', "/", "[", "]", "?", "=", "{", "}"], core.String));
+    let SEPERATORS = const$67 || (const$67 = dart.constList(["(", ")", "<", ">", "@", ",", ";", ":", "\\", '"', "/", "[", "]", "?", "=", "{", "}"], core.String));
     for (let i = 0; i < dart.notNull(this.name[dartx.length]); i++) {
       let codeUnit = this.name[dartx.codeUnits][dartx._get](i);
       if (dart.notNull(codeUnit) <= 32 || dart.notNull(codeUnit) >= 127 || dart.notNull(SEPERATORS[dartx.indexOf](this.name[dartx._get](i))) >= 0) {
@@ -42707,7 +42710,7 @@
 io._OUTGOING_BUFFER_SIZE = 8 * 1024;
 const _transferLength = Symbol('_transferLength');
 const _dataCompleter = Symbol('_dataCompleter');
-const _stream = Symbol('_stream');
+const _stream$ = Symbol('_stream');
 io._HttpIncoming = class _HttpIncoming extends async.Stream$(core.List$(core.int)) {
   get transferLength() {
     return this[_transferLength];
@@ -42716,7 +42719,7 @@
     this[_dataCompleter] = async.Completer.new();
     this.headers = headers;
     this[_transferLength] = transferLength;
-    this[_stream] = stream;
+    this[_stream$] = stream;
     this.fullBodyRead = false;
     this.upgraded = false;
     this.statusCode = null;
@@ -42731,9 +42734,9 @@
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
     this.hasSubscriber = true;
-    return this[_stream].handleError(dart.fn(error => {
+    return this[_stream$].handleError(dart.fn(error => {
       dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
-    }, dynamicToNull())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    }, dynamicToNull$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   get dataDone() {
     return this[_dataCompleter].future;
@@ -42750,7 +42753,7 @@
   fields: () => ({
     [_transferLength]: core.int,
     [_dataCompleter]: async.Completer,
-    [_stream]: StreamOfListOfint(),
+    [_stream$]: StreamOfListOfint(),
     fullBodyRead: core.bool,
     headers: io._HttpHeaders,
     upgraded: core.bool,
@@ -43137,12 +43140,12 @@
 const _encoding = Symbol('_encoding');
 const _isConnectionClosed = Symbol('_isConnectionClosed');
 const _doneCompleter = Symbol('_doneCompleter');
-const _target = Symbol('_target');
+const _target$ = Symbol('_target');
 const _controllerInstance = Symbol('_controllerInstance');
 const _controllerCompleter = Symbol('_controllerCompleter');
-const _isClosed = Symbol('_isClosed');
+const _isClosed$0 = Symbol('_isClosed');
 const _isBound = Symbol('_isBound');
-const _hasError = Symbol('_hasError');
+const _hasError$ = Symbol('_hasError');
 const _closeTarget = Symbol('_closeTarget');
 const _completeDoneValue = Symbol('_completeDoneValue');
 const _completeDoneError = Symbol('_completeDoneError');
@@ -43154,21 +43157,21 @@
   class _StreamSinkImpl extends core.Object {
     new(target) {
       this[_doneCompleter] = async.Completer.new();
-      this[_target] = target;
+      this[_target$] = target;
       this[_controllerInstance] = null;
       this[_controllerCompleter] = null;
-      this[_isClosed] = false;
+      this[_isClosed$0] = false;
       this[_isBound] = false;
-      this[_hasError] = false;
+      this[_hasError$] = false;
     }
     add(data) {
       T._check(data);
-      if (dart.test(this[_isClosed])) return;
-      this[_controller].add(data);
+      if (dart.test(this[_isClosed$0])) return;
+      this[_controller$0].add(data);
     }
     addError(error, stackTrace) {
       if (stackTrace === void 0) stackTrace = null;
-      this[_controller].addError(error, stackTrace);
+      this[_controller$0].addError(error, stackTrace);
     }
     addStream(stream) {
       StreamOfT()._check(stream);
@@ -43176,9 +43179,9 @@
         dart.throw(new core.StateError("StreamSink is already bound to a stream"));
       }
       this[_isBound] = true;
-      if (dart.test(this[_hasError])) return this.done;
+      if (dart.test(this[_hasError$])) return this.done;
       const targetAddStream = (function() {
-        return this[_target].addStream(stream).whenComplete(dart.fn(() => {
+        return this[_target$].addStream(stream).whenComplete(dart.fn(() => {
           this[_isBound] = false;
         }, VoidToNull()));
       }).bind(this);
@@ -43204,8 +43207,8 @@
       if (dart.test(this[_isBound])) {
         dart.throw(new core.StateError("StreamSink is bound to a stream"));
       }
-      if (!dart.test(this[_isClosed])) {
-        this[_isClosed] = true;
+      if (!dart.test(this[_isClosed$0])) {
+        this[_isClosed$0] = true;
         if (this[_controllerInstance] != null) {
           this[_controllerInstance].close();
         } else {
@@ -43215,7 +43218,7 @@
       return this.done;
     }
     [_closeTarget]() {
-      this[_target].close().then(dart.void)(dart.bind(this, _completeDoneValue), {onError: dart.bind(this, _completeDoneError)});
+      this[_target$].close().then(dart.void)(dart.bind(this, _completeDoneValue), {onError: dart.bind(this, _completeDoneError)});
     }
     get done() {
       return this[_doneCompleter].future;
@@ -43227,21 +43230,21 @@
     }
     [_completeDoneError](error, stackTrace) {
       if (!dart.test(this[_doneCompleter].isCompleted)) {
-        this[_hasError] = true;
+        this[_hasError$] = true;
         this[_doneCompleter].completeError(error, stackTrace);
       }
     }
-    get [_controller]() {
+    get [_controller$0]() {
       if (dart.test(this[_isBound])) {
         dart.throw(new core.StateError("StreamSink is bound to a stream"));
       }
-      if (dart.test(this[_isClosed])) {
+      if (dart.test(this[_isClosed$0])) {
         dart.throw(new core.StateError("StreamSink is closed"));
       }
       if (this[_controllerInstance] == null) {
         this[_controllerInstance] = StreamControllerOfT().new({sync: true});
         this[_controllerCompleter] = async.Completer.new();
-        this[_target].addStream(this[_controller].stream).then(dart.dynamic)(dart.fn(_ => {
+        this[_target$].addStream(this[_controller$0].stream).then(dart.dynamic)(dart.fn(_ => {
           if (dart.test(this[_isBound])) {
             this[_controllerCompleter].complete(this);
             this[_controllerCompleter] = null;
@@ -43249,7 +43252,7 @@
           } else {
             this[_closeTarget]();
           }
-        }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
+        }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
             if (dart.test(this[_isBound])) {
               this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
               this[_controllerCompleter] = null;
@@ -43267,17 +43270,17 @@
   dart.setSignature(_StreamSinkImpl, {
     constructors: () => ({new: dart.definiteFunctionType(io._StreamSinkImpl$(T), [StreamConsumerOfT()])}),
     fields: () => ({
-      [_target]: StreamConsumerOfT(),
+      [_target$]: StreamConsumerOfT(),
       [_doneCompleter]: async.Completer,
       [_controllerInstance]: StreamControllerOfT(),
       [_controllerCompleter]: async.Completer,
-      [_isClosed]: core.bool,
+      [_isClosed$0]: core.bool,
       [_isBound]: core.bool,
-      [_hasError]: core.bool
+      [_hasError$]: core.bool
     }),
     getters: () => ({
       done: dart.definiteFunctionType(async.Future, []),
-      [_controller]: dart.definiteFunctionType(async.StreamController$(T), [])
+      [_controller$0]: dart.definiteFunctionType(async.StreamController$(T), [])
     }),
     methods: () => ({
       add: dart.definiteFunctionType(dart.void, [T]),
@@ -43502,7 +43505,7 @@
     }
     this.close();
     this.done.catchError(dart.fn(_ => {
-    }, dynamicToNull()));
+    }, dynamicToNull$()));
     return future;
   }
   get connectionInfo() {
@@ -43529,7 +43532,7 @@
       }
       offset = dart.notNull(offset) + dart.notNull(len);
     }
-    dart.fn(write, ListOfintTovoid());
+    dart.fn(write, ListOfintTovoid$());
     if (this.headers.protocolVersion == "1.1") {
       write(io._Const.HTTP11);
     } else {
@@ -43806,7 +43809,7 @@
 const _followRedirects = Symbol('_followRedirects');
 const _maxRedirects = Symbol('_maxRedirects');
 const _onIncoming = Symbol('_onIncoming');
-const _onError = Symbol('_onError');
+const _onError$ = Symbol('_onError');
 const _proxyTunnel = Symbol('_proxyTunnel');
 const _requestUri = Symbol('_requestUri');
 io._HttpClientRequest = class _HttpClientRequest extends io._HttpOutboundMessage$(io.HttpClientResponse) {
@@ -43874,7 +43877,7 @@
     }
     future.then(dart.void)(dart.fn(v => this[_responseCompleter].complete(v), HttpClientResponseTovoid()), {onError: dart.bind(this[_responseCompleter], 'completeError')});
   }
-  [_onError](error, stackTrace) {
+  [_onError$](error, stackTrace) {
     this[_responseCompleter].completeError(error, stackTrace);
   }
   [_requestUri]() {
@@ -43886,7 +43889,7 @@
       }
       return result;
     }).bind(this);
-    dart.fn(uriStartingFromPath, VoidToString());
+    dart.fn(uriStartingFromPath, VoidToString$());
     if (dart.test(this[_proxy].isDirect)) {
       return uriStartingFromPath();
     } else {
@@ -43911,7 +43914,7 @@
       }
       offset = dart.notNull(offset) + dart.notNull(len);
     }
-    dart.fn(write, ListOfintTovoid());
+    dart.fn(write, ListOfintTovoid$());
     write(this.method[dartx.codeUnits]);
     buffer[dartx._set]((() => {
       let x = offset;
@@ -43990,7 +43993,7 @@
   methods: () => ({
     close: dart.definiteFunctionType(async.Future$(io.HttpClientResponse), []),
     [_onIncoming]: dart.definiteFunctionType(dart.void, [io._HttpIncoming]),
-    [_onError]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
+    [_onError$]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace]),
     [_requestUri]: dart.definiteFunctionType(core.String, []),
     [_writeHeader]: dart.definiteFunctionType(dart.void, [])
   })
@@ -44032,18 +44035,18 @@
 const _gzipBufferLength = Symbol('_gzipBufferLength');
 const _socketError = Symbol('_socketError');
 const _addGZipChunk = Symbol('_addGZipChunk');
-const _addChunk = Symbol('_addChunk');
+const _addChunk$ = Symbol('_addChunk');
 const _chunkHeader = Symbol('_chunkHeader');
 const _ignoreError = Symbol('_ignoreError');
-let const;
+let const$68;
 io._HttpOutgoing = class _HttpOutgoing extends core.Object {
   new(socket) {
     this[_doneCompleter] = async.Completer.new();
     this.socket = socket;
     this.ignoreBody = false;
     this.headersWritten = false;
-    this[_buffer] = null;
-    this[_length] = 0;
+    this[_buffer$] = null;
+    this[_length$2] = 0;
     this[_closeFuture] = null;
     this.chunked = false;
     this[_pendingChunkedFooter] = 0;
@@ -44079,14 +44082,14 @@
       if (dart.test(response[_httpRequest][_httpServer].autoCompress) && dart.test(this.outbound.bufferOutput) && dart.test(this.outbound.headers.chunkedTransferEncoding)) {
         let acceptEncodings = response[_httpRequest].headers._get(io.HttpHeaders.ACCEPT_ENCODING);
         let contentEncoding = this.outbound.headers._get(io.HttpHeaders.CONTENT_ENCODING);
-        if (acceptEncodings != null && dart.test(acceptEncodings[dartx.expand](dart.dynamic)(dart.fn(list => core.Iterable._check(dart.dsend(list, 'split', ",")), dynamicToIterable()))[dartx.any](dart.fn(encoding => dart.equals(dart.dsend(dart.dsend(encoding, 'trim'), 'toLowerCase'), "gzip"), dynamicTobool()))) && contentEncoding == null) {
+        if (acceptEncodings != null && dart.test(acceptEncodings[dartx.expand](dart.dynamic)(dart.fn(list => core.Iterable._check(dart.dsend(list, 'split', ",")), dynamicToIterable()))[dartx.any](dart.fn(encoding => dart.equals(dart.dsend(dart.dsend(encoding, 'trim'), 'toLowerCase'), "gzip"), dynamicTobool$()))) && contentEncoding == null) {
           this.outbound.headers.set(io.HttpHeaders.CONTENT_ENCODING, "gzip");
           gzip = true;
         }
       }
       if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
         drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
-        }, dynamicToNull()));
+        }, dynamicToNull$()));
       }
     } else {
       drainRequest = false;
@@ -44115,7 +44118,7 @@
     }
     if (dart.test(this.ignoreBody)) {
       stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
-      }, dynamicToNull()));
+      }, dynamicToNull$()));
       let future = this.writeHeaders();
       if (future != null) {
         return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
@@ -44123,7 +44126,7 @@
       return this.close();
     }
     let sub = null;
-    let controller = async.StreamController.new({onPause: dart.fn(() => dart.dsend(sub, 'pause'), VoidTovoid()), onResume: dart.fn(() => dart.dsend(sub, 'resume'), VoidTovoid()), sync: true});
+    let controller = async.StreamController.new({onPause: dart.fn(() => dart.dsend(sub, 'pause'), VoidTovoid$()), onResume: dart.fn(() => dart.dsend(sub, 'resume'), VoidTovoid$()), sync: true});
     const onData = (function(data) {
       if (dart.test(this[_socketError])) return;
       if (dart.equals(dart.dload(data, 'length'), 0)) return;
@@ -44134,7 +44137,7 @@
           this[_gzipAdd] = null;
           return;
         }
-        this[_addChunk](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), dart.bind(controller, 'add'));
+        this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), dart.bind(controller, 'add'));
         this[_pendingChunkedFooter] = 2;
       } else {
         if (this.contentLength != null) {
@@ -44145,9 +44148,9 @@
           }
         }
       }
-      this[_addChunk](data, dart.bind(controller, 'add'));
+      this[_addChunk$](data, dart.bind(controller, 'add'));
     }).bind(this);
-    dart.fn(onData, dynamicTovoid());
+    dart.fn(onData, dynamicTovoid$());
     sub = stream.listen(onData, {onError: dart.bind(controller, 'addError'), onDone: dart.bind(controller, 'close'), cancelOnError: true});
     if (!dart.test(this.headersWritten)) {
       let future = this.writeHeaders();
@@ -44198,12 +44201,12 @@
           this[_gzipSink].close();
           this[_gzipAdd] = null;
         }
-        this[_addChunk](this[_chunkHeader](0), dart.bind(this.socket, 'add'));
+        this[_addChunk$](this[_chunkHeader](0), dart.bind(this.socket, 'add'));
       }
-      if (dart.notNull(this[_length]) > 0) {
-        this.socket.add(typed_data.Uint8List.view(this[_buffer][dartx.buffer], 0, this[_length]));
+      if (dart.notNull(this[_length$2]) > 0) {
+        this.socket.add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
       }
-      this[_buffer] = null;
+      this[_buffer$] = null;
       return this.socket.flush().then(io._HttpOutboundMessage)(dart.fn(_ => {
         this[_doneCompleter].complete(this.socket);
         return this.outbound;
@@ -44227,10 +44230,10 @@
     return this[_doneCompleter].future;
   }
   setHeader(data, length) {
-    dart.assert(this[_length] == 0);
+    dart.assert(this[_length$2] == 0);
     dart.assert(data[dartx.length] == io._OUTGOING_BUFFER_SIZE);
-    this[_buffer] = typed_data.Uint8List._check(data);
-    this[_length] = length;
+    this[_buffer$] = typed_data.Uint8List._check(data);
+    this[_length$2] = length;
   }
   set gzip(value) {
     this[_gzip] = value;
@@ -44239,10 +44242,10 @@
       dart.assert(this[_gzipSink] == null);
       this[_gzipSink] = new io.ZLibEncoder({gzip: true}).startChunkedConversion(new io._HttpGZipSink(dart.fn(data => {
         if (this[_gzipAdd] == null) return;
-        this[_addChunk](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
+        this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
         this[_pendingChunkedFooter] = 2;
-        this[_addChunk](data, ListOfintTovoid()._check(this[_gzipAdd]));
-      }, dynamicToNull())));
+        this[_addChunk$](data, ListOfintTovoid()._check(this[_gzipAdd]));
+      }, dynamicToNull$())));
     }
   }
   [_ignoreError](error) {
@@ -44265,30 +44268,30 @@
       this[_gzipBufferLength] = dart.notNull(this[_gzipBufferLength]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
     }
   }
-  [_addChunk](chunk, add) {
+  [_addChunk$](chunk, add) {
     if (!dart.test(this.outbound.bufferOutput)) {
-      if (this[_buffer] != null) {
-        add(typed_data.Uint8List.view(this[_buffer][dartx.buffer], 0, this[_length]));
-        this[_buffer] = null;
-        this[_length] = 0;
+      if (this[_buffer$] != null) {
+        add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
+        this[_buffer$] = null;
+        this[_length$2] = 0;
       }
       add(ListOfint()._check(chunk));
       return;
     }
-    if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', dart.notNull(this[_buffer][dartx.length]) - dart.notNull(this[_length])))) {
-      add(typed_data.Uint8List.view(this[_buffer][dartx.buffer], 0, this[_length]));
-      this[_buffer] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
-      this[_length] = 0;
+    if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', dart.notNull(this[_buffer$][dartx.length]) - dart.notNull(this[_length$2])))) {
+      add(typed_data.Uint8List.view(this[_buffer$][dartx.buffer], 0, this[_length$2]));
+      this[_buffer$] = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
+      this[_length$2] = 0;
     }
     if (dart.test(dart.dsend(dart.dload(chunk, 'length'), '>', io._OUTGOING_BUFFER_SIZE))) {
       add(ListOfint()._check(chunk));
     } else {
-      this[_buffer][dartx.setRange](this[_length], dart.asInt(dart.notNull(this[_length]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')))), IterableOfint()._check(chunk));
-      this[_length] = dart.notNull(this[_length]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
+      this[_buffer$][dartx.setRange](this[_length$2], dart.asInt(dart.notNull(this[_length$2]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')))), IterableOfint()._check(chunk));
+      this[_length$2] = dart.notNull(this[_length$2]) + dart.notNull(core.num._check(dart.dload(chunk, 'length')));
     }
   }
   [_chunkHeader](length) {
-    let hexDigits = const || (const = dart.constList([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70], core.int));
+    let hexDigits = const$68 || (const$68 = dart.constList([48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70], core.int));
     if (length == 0) {
       if (this[_pendingChunkedFooter] == 2) return io._HttpOutgoing._footerAndChunk0Length;
       return io._HttpOutgoing._chunk0Length;
@@ -44322,8 +44325,8 @@
     socket: io.Socket,
     ignoreBody: core.bool,
     headersWritten: core.bool,
-    [_buffer]: typed_data.Uint8List,
-    [_length]: core.int,
+    [_buffer$]: typed_data.Uint8List,
+    [_length$2]: core.int,
     [_closeFuture]: async.Future,
     chunked: core.bool,
     [_pendingChunkedFooter]: core.int,
@@ -44346,7 +44349,7 @@
     setHeader: dart.definiteFunctionType(dart.void, [ListOfint(), core.int]),
     [_ignoreError]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
     [_addGZipChunk]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
-    [_addChunk]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
+    [_addChunk$]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfintTovoid()]),
     [_chunkHeader]: dart.definiteFunctionType(core.List$(core.int), [core.int])
   }),
   sfields: () => ({
@@ -44364,7 +44367,7 @@
 });
 const _context = Symbol('_context');
 const _httpParser = Symbol('_httpParser');
-const _subscription = Symbol('_subscription');
+const _subscription$ = Symbol('_subscription');
 const _dispose = Symbol('_dispose');
 const _idleTimer = Symbol('_idleTimer');
 const _currentUri = Symbol('_currentUri');
@@ -44382,7 +44385,7 @@
     this[_proxyTunnel] = proxyTunnel;
     this[_context] = context;
     this[_httpParser] = io._HttpParser.responseParser();
-    this[_subscription] = null;
+    this[_subscription$] = null;
     this[_dispose] = false;
     this[_idleTimer] = null;
     this.closed = false;
@@ -44390,19 +44393,19 @@
     this[_nextResponseCompleter] = null;
     this[_streamFuture] = null;
     this[_httpParser].listenToStream(this[_socket]);
-    this[_subscription] = this[_httpParser].listen(dart.fn(incoming => {
-      this[_subscription].pause();
+    this[_subscription$] = this[_httpParser].listen(dart.fn(incoming => {
+      this[_subscription$].pause();
       if (this[_nextResponseCompleter] == null) {
         dart.throw(new io.HttpException("Unexpected response (unsolicited response without request).", {uri: this[_currentUri]}));
       }
       if (incoming.statusCode == 100) {
         incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
-          this[_subscription].resume();
-        }, dynamicToNull())).catchError(dart.fn((error, stackTrace) => {
+          this[_subscription$].resume();
+        }, dynamicToNull$())).catchError(dart.fn((error, stackTrace) => {
           if (stackTrace === void 0) stackTrace = null;
           this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
           this[_nextResponseCompleter] = null;
-        }, dynamic__ToNull()));
+        }, dynamic__ToNull$()));
       } else {
         this[_nextResponseCompleter].complete(incoming);
         this[_nextResponseCompleter] = null;
@@ -44413,7 +44416,7 @@
           this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
           this[_nextResponseCompleter] = null;
         }
-      }, dynamic__ToNull()), onDone: dart.fn(() => {
+      }, dynamic__ToNull$()), onDone: dart.fn(() => {
         if (this[_nextResponseCompleter] != null) {
           this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
           this[_nextResponseCompleter] = null;
@@ -44426,7 +44429,7 @@
       dart.throw(new io.HttpException("Socket closed before request was sent", {uri: uri}));
     }
     this[_currentUri] = uri;
-    this[_subscription].pause();
+    this[_subscription$].pause();
     let proxyCreds = null;
     let creds = null;
     let outgoing = new io._HttpOutgoing(this[_socket]);
@@ -44435,9 +44438,9 @@
     if (dart.test(host[dartx.contains](':'))) host = dart.str`[${host}]`;
     request.headers.host = host;
     request.headers.port = port;
-    request.headers[_add](io.HttpHeaders.ACCEPT_ENCODING, "gzip");
+    request.headers[_add$2](io.HttpHeaders.ACCEPT_ENCODING, "gzip");
     if (this[_httpClient].userAgent != null) {
-      request.headers[_add]('user-agent', this[_httpClient].userAgent);
+      request.headers[_add$2]('user-agent', this[_httpClient].userAgent);
     }
     if (dart.test(proxy.isAuthenticated)) {
       let auth = io._CryptoUtils.bytesToBase64(convert.UTF8.encode(dart.str`${proxy.username}:${proxy.password}`));
@@ -44471,11 +44474,11 @@
           if (dart.test(this.closed)) return;
           if (!dart.test(closing) && !dart.test(this[_dispose]) && dart.test(incoming.headers.persistentConnection) && dart.test(request.persistentConnection)) {
             this[_httpClient][_returnConnection](this);
-            this[_subscription].resume();
+            this[_subscription$].resume();
           } else {
             this.destroy();
           }
-        }, dynamicToNull()));
+        }, dynamicToNull$()));
         if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
           let authInfo = incoming.headers._get("proxy-authentication-info");
           if (authInfo != null && authInfo[dartx.length] == 1) {
@@ -44495,15 +44498,15 @@
         request[_onIncoming](incoming);
       }, _HttpIncomingToNull())).catchError(dart.fn(error => {
         dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
-      }, dynamicToNull()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
         this.destroy();
-        request[_onError](error, core.StackTrace._check(stackTrace));
+        request[_onError$](error, core.StackTrace._check(stackTrace));
       }, dynamicAnddynamicToNull()));
-      this[_subscription].resume();
+      this[_subscription$].resume();
       return s;
-    }, dynamicTodynamic()), {onError: dart.fn(e => {
+    }, dynamicTodynamic$()), {onError: dart.fn(e => {
         this.destroy();
-      }, dynamicToNull())});
+      }, dynamicToNull$())});
     return request;
   }
   detachSocket() {
@@ -44517,7 +44520,7 @@
   close() {
     this.closed = true;
     this[_httpClient][_connectionClosed](this);
-    this[_streamFuture].then(dart.void)(dart.fn(_ => this[_socket].destroy(), dynamicTovoid()));
+    this[_streamFuture].then(dart.void)(dart.fn(_ => this[_socket].destroy(), dynamicTovoid$()));
   }
   createProxyTunnel(host, port, proxy, callback) {
     let request = this.send(core.Uri.new({host: core.String._check(host), port: core.int._check(port)}), core.int._check(port), "CONNECT", io._Proxy._check(proxy));
@@ -44564,7 +44567,7 @@
     [_proxyTunnel]: core.bool,
     [_context]: io.SecurityContext,
     [_httpParser]: io._HttpParser,
-    [_subscription]: async.StreamSubscription,
+    [_subscription$]: async.StreamSubscription,
     [_httpClient]: io._HttpClient,
     [_dispose]: core.bool,
     [_idleTimer]: async.Timer,
@@ -44601,7 +44604,7 @@
 });
 const _idle = Symbol('_idle');
 const _active = Symbol('_active');
-const _pending = Symbol('_pending');
+const _pending$ = Symbol('_pending');
 const _connecting = Symbol('_connecting');
 const _checkPending = Symbol('_checkPending');
 const _connectionsChanged = Symbol('_connectionsChanged');
@@ -44611,7 +44614,7 @@
   new(key, host, port, isSecure, context) {
     this[_idle] = HashSetOf_HttpClientConnection().new();
     this[_active] = HashSetOf_HttpClientConnection().new();
-    this[_pending] = new collection.ListQueue();
+    this[_pending$] = new collection.ListQueue();
     this.key = key;
     this.host = host;
     this.port = port;
@@ -44637,8 +44640,8 @@
     return connection;
   }
   [_checkPending]() {
-    if (dart.test(this[_pending].isNotEmpty)) {
-      dart.dcall(this[_pending].removeFirst());
+    if (dart.test(this[_pending$].isNotEmpty)) {
+      dart.dcall(this[_pending$].removeFirst());
     }
   }
   addNewActive(connection) {
@@ -44675,7 +44678,7 @@
     }
     if (client.maxConnectionsPerHost != null && dart.notNull(this[_active].length) + dart.notNull(this[_connecting]) >= dart.notNull(client.maxConnectionsPerHost)) {
       let completer = async.Completer.new();
-      this[_pending].add(dart.fn(() => {
+      this[_pending$].add(dart.fn(() => {
         this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
       }, VoidToNull()));
       return FutureOf_ConnectionInfo()._check(completer.future);
@@ -44685,7 +44688,7 @@
       if (currentBadCertificateCallback == null) return false;
       return currentBadCertificateCallback(certificate, uriHost, uriPort);
     }
-    dart.fn(callback, X509CertificateTobool());
+    dart.fn(callback, X509CertificateTobool$());
     let socketFuture = dart.test(this.isSecure) && dart.test(proxy.isDirect) ? io.SecureSocket.connect(this.host, this.port, {context: this.context, onBadCertificate: callback}) : io.Socket.connect(this.host, this.port);
     this[_connecting] = dart.notNull(this[_connecting]) + 1;
     return socketFuture.then(io._ConnectionInfo)(dart.fn(socket => {
@@ -44706,7 +44709,7 @@
         this[_connecting] = dart.notNull(this[_connecting]) - 1;
         this[_checkPending]();
         dart.throw(error);
-      }, dynamicToNull())});
+      }, dynamicToNull$())});
   }
 };
 dart.setSignature(io._ConnectionTarget, {
@@ -44719,7 +44722,7 @@
     context: io.SecurityContext,
     [_idle]: SetOf_HttpClientConnection(),
     [_active]: SetOf_HttpClientConnection(),
-    [_pending]: collection.Queue,
+    [_pending$]: collection.Queue,
     [_connecting]: core.int
   }),
   getters: () => ({
@@ -44739,7 +44742,7 @@
 });
 io.BadCertificateCallback = dart.typedef('BadCertificateCallback', () => dart.functionType(core.bool, [io.X509Certificate, core.String, core.int]));
 const _idleTimeout = Symbol('_idleTimeout');
-let const;
+let const$69;
 const _connectionTargets = Symbol('_connectionTargets');
 const _credentials = Symbol('_credentials');
 const _closing = Symbol('_closing');
@@ -44747,7 +44750,7 @@
 const _findProxy = Symbol('_findProxy');
 const _openUrl = Symbol('_openUrl');
 const _closeConnections = Symbol('_closeConnections');
-let const;
+let const$70;
 const _getConnection = Symbol('_getConnection');
 io._HttpClient = class _HttpClient extends core.Object {
   get idleTimeout() {
@@ -44764,7 +44767,7 @@
     this[_authenticate] = null;
     this[_authenticateProxy] = null;
     this[_findProxy] = io.HttpClient.findProxyFromEnvironment;
-    this[_idleTimeout] = const || (const = dart.const(new core.Duration({seconds: 15})));
+    this[_idleTimeout] = const$69 || (const$69 = dart.const(new core.Duration({seconds: 15})));
     this[_badCertificateCallback] = null;
     this.maxConnectionsPerHost = null;
     this.autoUncompress = true;
@@ -44882,7 +44885,7 @@
     if (port == 0) {
       port = isSecure ? io.HttpClient.DEFAULT_HTTPS_PORT : io.HttpClient.DEFAULT_HTTP_PORT;
     }
-    let proxyConf = const || (const = dart.const(new io._ProxyConfiguration.direct()));
+    let proxyConf = const$70 || (const$70 = dart.const(new io._ProxyConfiguration.direct()));
     if (this[_findProxy] != null) {
       try {
         proxyConf = new io._ProxyConfiguration(core.String._check(dart.dcall(this[_findProxy], uri)));
@@ -44997,7 +45000,7 @@
   static _findProxyFromEnvironment(url, environment) {
     function checkNoProxy(option) {
       if (option == null) return null;
-      let names = option[dartx.split](",")[dartx.map](core.String)(dart.fn(s => s[dartx.trim](), StringToString()))[dartx.iterator];
+      let names = option[dartx.split](",")[dartx.map](core.String)(dart.fn(s => s[dartx.trim](), StringToString$()))[dartx.iterator];
       while (dart.test(names.moveNext())) {
         let name = names.current;
         if (dart.test(name[dartx.startsWith]("[")) && dart.test(name[dartx.endsWith]("]")) && dart.str`[${url.host}]` == name || dart.test(name[dartx.isNotEmpty]) && dart.test(url.host[dartx.endsWith](name))) {
@@ -45006,7 +45009,7 @@
       }
       return null;
     }
-    dart.fn(checkNoProxy, StringToString());
+    dart.fn(checkNoProxy, StringToString$());
     function checkProxy(option) {
       if (option == null) return null;
       option = option[dartx.trim]();
@@ -45027,7 +45030,7 @@
       }
       return dart.str`PROXY ${option}`;
     }
-    dart.fn(checkProxy, StringToString());
+    dart.fn(checkProxy, StringToString$());
     if (environment == null) environment = io._HttpClient._platformEnvironmentCache;
     let proxyCfg = null;
     let noProxy = environment[dartx._get]("no_proxy");
@@ -45119,7 +45122,7 @@
   },
   set _platformEnvironmentCache(_) {}
 });
-const _state = Symbol('_state');
+const _state$1 = Symbol('_state');
 const _idleMark = Symbol('_idleMark');
 const _owner = Symbol('_owner');
 const _serviceId = Symbol('_serviceId');
@@ -45133,7 +45136,7 @@
 const _serviceTypeName = Symbol('_serviceTypeName');
 const _servicePath = Symbol('_servicePath');
 const _serviceType = Symbol('_serviceType');
-const _toJSON = Symbol('_toJSON');
+const _toJSON$ = Symbol('_toJSON');
 const __serviceId = Symbol('__serviceId');
 io._ServiceObject = class _ServiceObject extends core.Object {
   new() {
@@ -45168,8 +45171,8 @@
     this[_socket] = socket;
     this[_httpServer] = httpServer;
     this[_httpParser] = io._HttpParser.requestParser();
-    this[_state] = io._HttpConnection._IDLE;
-    this[_subscription] = null;
+    this[_state$1] = io._HttpConnection._IDLE;
+    this[_subscription$] = null;
     this[_idleMark] = false;
     this[_streamFuture] = null;
     super.new();
@@ -45181,30 +45184,30 @@
 
     io._HttpConnection._connections[dartx._set](this[_serviceId], this);
     this[_httpParser].listenToStream(StreamOfListOfint()._check(this[_socket]));
-    this[_subscription] = this[_httpParser].listen(dart.fn(incoming => {
+    this[_subscription$] = this[_httpParser].listen(dart.fn(incoming => {
       this[_httpServer][_markActive](this);
       incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
         if (dart.test(closing)) this.destroy();
-      }, dynamicToNull()));
-      this[_subscription].pause();
-      this[_state] = io._HttpConnection._ACTIVE;
+      }, dynamicToNull$()));
+      this[_subscription$].pause();
+      this[_state$1] = io._HttpConnection._ACTIVE;
       let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
       let response = new io._HttpResponse(incoming.uri, incoming.headers.protocolVersion, outgoing, this[_httpServer].defaultResponseHeaders, this[_httpServer].serverHeader);
       let request = new io._HttpRequest(response, incoming, this[_httpServer], this);
       this[_streamFuture] = outgoing.done.then(dart.dynamic)(dart.fn(_ => {
         response.deadline = null;
-        if (this[_state] == io._HttpConnection._DETACHED) return;
+        if (this[_state$1] == io._HttpConnection._DETACHED) return;
         if (dart.test(response.persistentConnection) && dart.test(request.persistentConnection) && dart.test(incoming.fullBodyRead) && !dart.test(this[_httpParser].upgrade) && !dart.test(this[_httpServer].closed)) {
-          this[_state] = io._HttpConnection._IDLE;
+          this[_state$1] = io._HttpConnection._IDLE;
           this[_idleMark] = false;
           this[_httpServer][_markIdle](this);
-          this[_subscription].resume();
+          this[_subscription$].resume();
         } else {
           this.destroy();
         }
-      }, dynamicToNull()), {onError: dart.fn(_ => {
+      }, dynamicToNull$()), {onError: dart.fn(_ => {
           this.destroy();
-        }, dynamicToNull())});
+        }, dynamicToNull$())});
       outgoing.ignoreBody = request.method == "HEAD";
       response[_httpRequest] = request;
       this[_httpServer][_handleRequest](request);
@@ -45212,7 +45215,7 @@
         this.destroy();
       }, VoidToNull()), onError: dart.fn(error => {
         this.destroy();
-      }, dynamicToNull())});
+      }, dynamicToNull$())});
   }
   markIdle() {
     this[_idleMark] = true;
@@ -45221,14 +45224,14 @@
     return this[_idleMark];
   }
   destroy() {
-    if (this[_state] == io._HttpConnection._CLOSING || this[_state] == io._HttpConnection._DETACHED) return;
-    this[_state] = io._HttpConnection._CLOSING;
+    if (this[_state$1] == io._HttpConnection._CLOSING || this[_state$1] == io._HttpConnection._DETACHED) return;
+    this[_state$1] = io._HttpConnection._CLOSING;
     dart.dsend(this[_socket], 'destroy');
     this[_httpServer][_connectionClosed](this);
     io._HttpConnection._connections[dartx.remove](this[_serviceId]);
   }
   detachSocket() {
-    this[_state] = io._HttpConnection._DETACHED;
+    this[_state$1] = io._HttpConnection._DETACHED;
     this[_httpServer][_connectionClosed](this);
     let detachedIncoming = this[_httpParser].detachIncoming();
     return this[_streamFuture].then(io._DetachedSocket)(dart.fn(_ => {
@@ -45240,16 +45243,16 @@
     return io._HttpConnectionInfo.create(io.Socket._check(this[_socket]));
   }
   get [_isActive]() {
-    return this[_state] == io._HttpConnection._ACTIVE;
+    return this[_state$1] == io._HttpConnection._ACTIVE;
   }
   get [_isIdle]() {
-    return this[_state] == io._HttpConnection._IDLE;
+    return this[_state$1] == io._HttpConnection._IDLE;
   }
   get [_isClosing]() {
-    return this[_state] == io._HttpConnection._CLOSING;
+    return this[_state$1] == io._HttpConnection._CLOSING;
   }
   get [_isDetached]() {
-    return this[_state] == io._HttpConnection._DETACHED;
+    return this[_state$1] == io._HttpConnection._DETACHED;
   }
   get [_serviceTypePath]() {
     return 'io/http/serverconnections';
@@ -45257,20 +45260,20 @@
   get [_serviceTypeName]() {
     return 'HttpServerConnection';
   }
-  [_toJSON](ref) {
+  [_toJSON$](ref) {
     let name = dart.str`${dart.dload(dart.dload(this[_socket], 'address'), 'host')}:${dart.dload(this[_socket], 'port')} <-> ` + dart.str`${dart.dload(dart.dload(this[_socket], 'remoteAddress'), 'host')}:${dart.dload(this[_socket], 'remotePort')}`;
     let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: name, user_name: name}, core.String, dart.dynamic);
     if (dart.test(ref)) {
       return r;
     }
-    r[dartx._set]('server', this[_httpServer][_toJSON](true));
+    r[dartx._set]('server', this[_httpServer][_toJSON$](true));
     try {
-      r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON, true));
+      r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON$, true));
     } catch (_) {
       r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
     }
 
-    switch (this[_state]) {
+    switch (this[_state$1]) {
       case io._HttpConnection._ACTIVE:
       {
         r[dartx._set]('state', "Active");
@@ -45308,8 +45311,8 @@
     [_socket]: dart.dynamic,
     [_httpServer]: io._HttpServer,
     [_httpParser]: io._HttpParser,
-    [_state]: core.int,
-    [_subscription]: async.StreamSubscription,
+    [_state$1]: core.int,
+    [_subscription$]: async.StreamSubscription,
     [_idleMark]: core.bool,
     [_streamFuture]: async.Future
   }),
@@ -45327,7 +45330,7 @@
     markIdle: dart.definiteFunctionType(dart.void, []),
     destroy: dart.definiteFunctionType(dart.void, []),
     detachSocket: dart.definiteFunctionType(async.Future$(io.Socket), []),
-    [_toJSON]: dart.definiteFunctionType(core.Map, [core.bool])
+    [_toJSON$]: dart.definiteFunctionType(core.Map, [core.bool])
   }),
   sfields: () => ({
     _ACTIVE: core.int,
@@ -45351,8 +45354,8 @@
 const _idleConnections = Symbol('_idleConnections');
 const _serverSocket = Symbol('_serverSocket');
 const _closeServer = Symbol('_closeServer');
-let const;
-let const;
+let const$71;
+let const$72;
 io._HttpServer = class _HttpServer extends dart.mixin(async.Stream$(io.HttpRequest), io._ServiceObject) {
   static bind(address, port, backlog, v6Only, shared) {
     return io.ServerSocket.bind(address, port, {backlog: backlog, v6Only: v6Only, shared: shared}).then(io._HttpServer)(dart.fn(socket => new io._HttpServer._(socket, true), ServerSocketTo_HttpServer()));
@@ -45372,10 +45375,10 @@
     this[_idleTimer] = null;
     this[_sessionManagerInstance] = null;
     this.closed = false;
-    this[_controller] = null;
+    this[_controller$0] = null;
     super.new();
-    this[_controller] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
-    this.idleTimeout = const || (const = dart.const(new core.Duration({seconds: 120})));
+    this[_controller$0] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
+    this.idleTimeout = const$71 || (const$71 = dart.const(new core.Duration({seconds: 120})));
     io._HttpServer._servers[dartx._set](this[_serviceId], this);
     dart.dput(this[_serverSocket], _owner, this);
   }
@@ -45391,10 +45394,10 @@
     this[_idleTimer] = null;
     this[_sessionManagerInstance] = null;
     this.closed = false;
-    this[_controller] = null;
+    this[_controller$0] = null;
     super.new();
-    this[_controller] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
-    this.idleTimeout = const || (const = dart.const(new core.Duration({seconds: 120})));
+    this[_controller$0] = StreamControllerOfHttpRequest().new({sync: true, onCancel: dart.bind(this, 'close')});
+    this.idleTimeout = const$72 || (const$72 = dart.const(new core.Duration({seconds: 120})));
     io._HttpServer._servers[dartx._set](this[_serviceId], this);
     try {
       dart.dput(this[_serverSocket], _owner, this);
@@ -45441,10 +45444,10 @@
       this[_idleConnections].add(connection);
     }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
         if (!io.HandshakeException.is(error)) {
-          this[_controller].addError(error, core.StackTrace._check(stackTrace));
+          this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
         }
-      }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller], 'close')});
-    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+      }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   close(opts) {
     let force = opts && 'force' in opts ? opts.force : false;
@@ -45488,7 +45491,7 @@
   }
   [_handleRequest](request) {
     if (!dart.test(this.closed)) {
-      this[_controller].add(request);
+      this[_controller$0].add(request);
     } else {
       request[_httpConnection].destroy();
     }
@@ -45534,21 +45537,21 @@
   get [_serviceTypeName]() {
     return 'HttpServer';
   }
-  [_toJSON](ref) {
+  [_toJSON$](ref) {
     let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: dart.str`${this.address.host}:${this.port}`, user_name: dart.str`${this.address.host}:${this.port}`}, core.String, dart.dynamic);
     if (dart.test(ref)) {
       return r;
     }
     try {
-      r[dartx._set]('socket', dart.dsend(this[_serverSocket], _toJSON, true));
+      r[dartx._set]('socket', dart.dsend(this[_serverSocket], _toJSON$, true));
     } catch (_) {
       r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
     }
 
     r[dartx._set]('port', this.port);
     r[dartx._set]('address', this.address.host);
-    r[dartx._set]('active', this[_activeConnections].map(core.Map)(dart.fn(c => c[_toJSON](true), _HttpConnectionToMap()))[dartx.toList]());
-    r[dartx._set]('idle', this[_idleConnections].map(core.Map)(dart.fn(c => c[_toJSON](true), _HttpConnectionToMap()))[dartx.toList]());
+    r[dartx._set]('active', this[_activeConnections].map(core.Map)(dart.fn(c => c[_toJSON$](true), _HttpConnectionToMap()))[dartx.toList]());
+    r[dartx._set]('idle', this[_idleConnections].map(core.Map)(dart.fn(c => c[_toJSON$](true), _HttpConnectionToMap()))[dartx.toList]());
     r[dartx._set]('closed', this.closed);
     return r;
   }
@@ -45574,7 +45577,7 @@
     [_closeServer]: core.bool,
     [_activeConnections]: LinkedListOf_HttpConnection(),
     [_idleConnections]: LinkedListOf_HttpConnection(),
-    [_controller]: StreamControllerOfHttpRequest()
+    [_controller$0]: StreamControllerOfHttpRequest()
   }),
   getters: () => ({
     idleTimeout: dart.definiteFunctionType(core.Duration, []),
@@ -45597,7 +45600,7 @@
     [_markIdle]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
     [_markActive]: dart.definiteFunctionType(dart.void, [io._HttpConnection]),
     connectionsInfo: dart.definiteFunctionType(io.HttpConnectionsInfo, []),
-    [_toJSON]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
+    [_toJSON$]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
   }),
   sfields: () => ({_servers: MapOfint$_HttpServer()}),
   statics: () => ({
@@ -45647,8 +45650,8 @@
   }),
   getters: () => ({isAuthenticated: dart.definiteFunctionType(core.bool, [])})
 });
-let const;
-let const;
+let const$73;
+let const$74;
 io._ProxyConfiguration = class _ProxyConfiguration extends core.Object {
   new(configuration) {
     this.proxies = ListOf_Proxy().new();
@@ -45703,7 +45706,7 @@
     }, StringToNull()));
   }
   direct() {
-    this.proxies = const || (const = dart.constList([const || (const = dart.const(new io._Proxy.direct()))], io._Proxy));
+    this.proxies = const$74 || (const$74 = dart.constList([const$73 || (const$73 = dart.const(new io._Proxy.direct()))], io._Proxy));
   }
 };
 dart.defineNamedConstructor(io._ProxyConfiguration, 'direct');
@@ -45819,8 +45822,8 @@
   setOption(option, enabled) {
     return core.bool._check(dart.dsend(this[_socket], 'setOption', option, enabled));
   }
-  [_toJSON](ref) {
-    return core.Map._check(dart.dsend(this[_socket], _toJSON, ref));
+  [_toJSON$](ref) {
+    return core.Map._check(dart.dsend(this[_socket], _toJSON$, ref));
   }
   set [_owner](owner) {
     dart.dput(this[_socket], _owner, owner);
@@ -45859,7 +45862,7 @@
     flush: dart.definiteFunctionType(async.Future, []),
     close: dart.definiteFunctionType(async.Future, []),
     setOption: dart.definiteFunctionType(core.bool, [io.SocketOption, core.bool]),
-    [_toJSON]: dart.definiteFunctionType(core.Map, [core.bool])
+    [_toJSON$]: dart.definiteFunctionType(core.Map, [core.bool])
   })
 });
 const _scheme = Symbol('_scheme');
@@ -46133,7 +46136,7 @@
   version = version[dartx.substring](0, index);
   return dart.str`Dart/${version} (dart:io)`;
 };
-dart.fn(io._getHttpVersion, VoidToString());
+dart.fn(io._getHttpVersion, VoidToString$());
 io._Const = class _Const extends core.Object {};
 dart.setSignature(io._Const, {
   sfields: () => ({
@@ -46279,49 +46282,49 @@
 io._MessageType.RESPONSE = 0;
 const _injectData = Symbol('_injectData');
 const _userOnData = Symbol('_userOnData');
-const _isCanceled = Symbol('_isCanceled');
-const _pauseCount = Symbol('_pauseCount');
+const _isCanceled$ = Symbol('_isCanceled');
+const _pauseCount$ = Symbol('_pauseCount');
 const _scheduled = Symbol('_scheduled');
 const _maybeScheduleData = Symbol('_maybeScheduleData');
 io._HttpDetachedStreamSubscription = class _HttpDetachedStreamSubscription extends core.Object {
   new(subscription, injectData, userOnData) {
-    this[_subscription] = subscription;
+    this[_subscription$] = subscription;
     this[_injectData] = injectData;
     this[_userOnData] = userOnData;
-    this[_isCanceled] = false;
-    this[_pauseCount] = 1;
+    this[_isCanceled$] = false;
+    this[_pauseCount$] = 1;
     this[_scheduled] = false;
   }
   get isPaused() {
-    return this[_subscription].isPaused;
+    return this[_subscription$].isPaused;
   }
   asFuture(T) {
     return futureValue => {
       if (futureValue === void 0) futureValue = null;
-      return this[_subscription].asFuture(T)(futureValue);
+      return this[_subscription$].asFuture(T)(futureValue);
     };
   }
   cancel() {
-    this[_isCanceled] = true;
+    this[_isCanceled$] = true;
     this[_injectData] = null;
-    return this[_subscription].cancel();
+    return this[_subscription$].cancel();
   }
   onData(handleData) {
     this[_userOnData] = handleData;
-    this[_subscription].onData(handleData);
+    this[_subscription$].onData(handleData);
   }
   onDone(handleDone) {
-    this[_subscription].onDone(handleDone);
+    this[_subscription$].onDone(handleDone);
   }
   onError(handleError) {
-    this[_subscription].onError(handleError);
+    this[_subscription$].onError(handleError);
   }
   pause(resumeSignal) {
     if (resumeSignal === void 0) resumeSignal = null;
     if (this[_injectData] == null) {
-      this[_subscription].pause(resumeSignal);
+      this[_subscription$].pause(resumeSignal);
     } else {
-      this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
       if (resumeSignal != null) {
         resumeSignal.whenComplete(dart.bind(this, 'resume'));
       }
@@ -46329,22 +46332,22 @@
   }
   resume() {
     if (this[_injectData] == null) {
-      this[_subscription].resume();
+      this[_subscription$].resume();
     } else {
-      this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
       this[_maybeScheduleData]();
     }
   }
   [_maybeScheduleData]() {
     if (dart.test(this[_scheduled])) return;
-    if (this[_pauseCount] != 0) return;
+    if (this[_pauseCount$] != 0) return;
     this[_scheduled] = true;
     async.scheduleMicrotask(dart.fn(() => {
       this[_scheduled] = false;
-      if (dart.notNull(this[_pauseCount]) > 0 || dart.test(this[_isCanceled])) return;
+      if (dart.notNull(this[_pauseCount$]) > 0 || dart.test(this[_isCanceled$])) return;
       let data = this[_injectData];
       this[_injectData] = null;
-      this[_subscription].resume();
+      this[_subscription$].resume();
       if (this[_userOnData] != null) {
         dart.dcall(this[_userOnData], data);
       }
@@ -46355,10 +46358,10 @@
 dart.setSignature(io._HttpDetachedStreamSubscription, {
   constructors: () => ({new: dart.definiteFunctionType(io._HttpDetachedStreamSubscription, [StreamSubscriptionOfListOfint(), ListOfint(), core.Function])}),
   fields: () => ({
-    [_subscription]: StreamSubscriptionOfListOfint(),
+    [_subscription$]: StreamSubscriptionOfListOfint(),
     [_injectData]: ListOfint(),
-    [_isCanceled]: core.bool,
-    [_pauseCount]: core.int,
+    [_isCanceled$]: core.bool,
+    [_pauseCount$]: core.int,
     [_userOnData]: core.Function,
     [_scheduled]: core.bool
   }),
@@ -46411,13 +46414,13 @@
   }),
   methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
 });
-const _method = Symbol('_method');
+const _method$ = Symbol('_method');
 const _uri_or_reason_phrase = Symbol('_uri_or_reason_phrase');
 const _headerField = Symbol('_headerField');
 const _headerValue = Symbol('_headerValue');
 const _requestParser = Symbol('_requestParser');
 const _parserCalled = Symbol('_parserCalled');
-const _index = Symbol('_index');
+const _index$2 = Symbol('_index');
 const _httpVersionIndex = Symbol('_httpVersionIndex');
 const _messageType = Symbol('_messageType');
 const _statusCodeLength = Symbol('_statusCodeLength');
@@ -46432,8 +46435,8 @@
 const _bodyController = Symbol('_bodyController');
 const _pauseStateChanged = Symbol('_pauseStateChanged');
 const _reset = Symbol('_reset');
-const _onData = Symbol('_onData');
-const _onDone = Symbol('_onDone');
+const _onData$ = Symbol('_onData');
+const _onDone$ = Symbol('_onDone');
 const _doParse = Symbol('_doParse');
 const _reportError = Symbol('_reportError');
 const _createIncoming = Symbol('_createIncoming');
@@ -46451,15 +46454,15 @@
     return new io._HttpParser._(false);
   }
   _(requestParser) {
-    this[_method] = JSArrayOfint().of([]);
+    this[_method$] = JSArrayOfint().of([]);
     this[_uri_or_reason_phrase] = JSArrayOfint().of([]);
     this[_headerField] = JSArrayOfint().of([]);
     this[_headerValue] = JSArrayOfint().of([]);
     this[_requestParser] = requestParser;
     this[_parserCalled] = false;
-    this[_buffer] = null;
-    this[_index] = null;
-    this[_state] = null;
+    this[_buffer$] = null;
+    this[_index$2] = null;
+    this[_state$1] = null;
     this[_httpVersionIndex] = null;
     this[_messageType] = null;
     this[_statusCode] = 0;
@@ -46476,10 +46479,10 @@
     this[_socketSubscription] = null;
     this[_paused] = true;
     this[_bodyPaused] = false;
-    this[_controller] = null;
+    this[_controller$0] = null;
     this[_bodyController] = null;
     super.new();
-    this[_controller] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
+    this[_controller$0] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
         this[_paused] = false;
       }, VoidToNull()), onPause: dart.fn(() => {
         this[_paused] = true;
@@ -46498,17 +46501,17 @@
     let onError = opts && 'onError' in opts ? opts.onError : null;
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   listenToStream(stream) {
-    this[_socketSubscription] = stream.listen(dart.bind(this, _onData), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.bind(this, _onDone)});
+    this[_socketSubscription] = stream.listen(dart.bind(this, _onData$), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this, _onDone$)});
   }
   [_parse]() {
     try {
       this[_doParse]();
     } catch (e) {
       let s = dart.stackTrace(e);
-      this[_state] = io._State.FAILURE;
+      this[_state$1] = io._State.FAILURE;
       this[_reportError](e, s);
     }
 
@@ -46521,80 +46524,80 @@
       this[_transferLength] = 0;
     }
     if (dart.test(this[_connectionUpgrade])) {
-      this[_state] = io._State.UPGRADED;
+      this[_state$1] = io._State.UPGRADED;
       this[_transferLength] = 0;
     }
     this[_createIncoming](this[_transferLength]);
     if (dart.test(this[_requestParser])) {
-      this[_incoming].method = core.String.fromCharCodes(this[_method]);
+      this[_incoming].method = core.String.fromCharCodes(this[_method$]);
       this[_incoming].uri = core.Uri.parse(core.String.fromCharCodes(this[_uri_or_reason_phrase]));
     } else {
       this[_incoming].statusCode = this[_statusCode];
       this[_incoming].reasonPhrase = core.String.fromCharCodes(this[_uri_or_reason_phrase]);
     }
-    this[_method][dartx.clear]();
+    this[_method$][dartx.clear]();
     this[_uri_or_reason_phrase][dartx.clear]();
     if (dart.test(this[_connectionUpgrade])) {
       this[_incoming].upgraded = true;
       this[_parserCalled] = false;
       let tmp = this[_incoming];
       this[_closeIncoming]();
-      this[_controller].add(tmp);
+      this[_controller$0].add(tmp);
       return true;
     }
     if (this[_transferLength] == 0 || this[_messageType] == io._MessageType.RESPONSE && dart.test(this[_noMessageBody])) {
       this[_reset]();
       let tmp = this[_incoming];
       this[_closeIncoming]();
-      this[_controller].add(tmp);
+      this[_controller$0].add(tmp);
       return false;
     } else if (dart.test(this[_chunked])) {
-      this[_state] = io._State.CHUNK_SIZE;
+      this[_state$1] = io._State.CHUNK_SIZE;
       this[_remainingContent] = 0;
     } else if (dart.notNull(this[_transferLength]) > 0) {
       this[_remainingContent] = this[_transferLength];
-      this[_state] = io._State.BODY;
+      this[_state$1] = io._State.BODY;
     } else {
-      this[_state] = io._State.BODY;
+      this[_state$1] = io._State.BODY;
     }
     this[_parserCalled] = false;
-    this[_controller].add(this[_incoming]);
+    this[_controller$0].add(this[_incoming]);
     return true;
   }
   [_doParse]() {
     dart.assert(!dart.test(this[_parserCalled]));
     this[_parserCalled] = true;
-    if (this[_state] == io._State.CLOSED) {
+    if (this[_state$1] == io._State.CLOSED) {
       dart.throw(new io.HttpException("Data on closed connection"));
     }
-    if (this[_state] == io._State.FAILURE) {
+    if (this[_state$1] == io._State.FAILURE) {
       dart.throw(new io.HttpException("Data on failed connection"));
     }
-    while (this[_buffer] != null && dart.notNull(this[_index]) < dart.notNull(this[_buffer][dartx.length]) && this[_state] != io._State.FAILURE && this[_state] != io._State.UPGRADED) {
+    while (this[_buffer$] != null && dart.notNull(this[_index$2]) < dart.notNull(this[_buffer$][dartx.length]) && this[_state$1] != io._State.FAILURE && this[_state$1] != io._State.UPGRADED) {
       if (this[_incoming] != null && dart.test(this[_bodyPaused]) || this[_incoming] == null && dart.test(this[_paused])) {
         this[_parserCalled] = false;
         return;
       }
-      let byte = this[_buffer][dartx._get]((() => {
-        let x = this[_index];
-        this[_index] = dart.notNull(x) + 1;
+      let byte = this[_buffer$][dartx._get]((() => {
+        let x = this[_index$2];
+        this[_index$2] = dart.notNull(x) + 1;
         return x;
       })());
-      switch (this[_state]) {
+      switch (this[_state$1]) {
         case io._State.START:
         {
           if (byte == io._Const.HTTP[dartx._get](0)) {
             this[_httpVersionIndex] = 1;
-            this[_state] = io._State.METHOD_OR_RESPONSE_HTTP_VERSION;
+            this[_state$1] = io._State.METHOD_OR_RESPONSE_HTTP_VERSION;
           } else {
             if (!dart.test(io._HttpParser._isTokenChar(byte))) {
               dart.throw(new io.HttpException("Invalid request method"));
             }
-            this[_method][dartx.add](byte);
+            this[_method$][dartx.add](byte);
             if (!dart.test(this[_requestParser])) {
               dart.throw(new io.HttpException("Invalid response line"));
             }
-            this[_state] = io._State.REQUEST_LINE_METHOD;
+            this[_state$1] = io._State.REQUEST_LINE_METHOD;
           }
           break;
         }
@@ -46607,20 +46610,20 @@
             if (dart.test(this[_requestParser])) {
               dart.throw(new io.HttpException("Invalid request line"));
             }
-            this[_state] = io._State.RESPONSE_HTTP_VERSION;
+            this[_state$1] = io._State.RESPONSE_HTTP_VERSION;
           } else {
             for (let i = 0; i < dart.notNull(this[_httpVersionIndex]); i++) {
-              this[_method][dartx.add](io._Const.HTTP[dartx._get](i));
+              this[_method$][dartx.add](io._Const.HTTP[dartx._get](i));
             }
             if (byte == io._CharCode.SP) {
-              this[_state] = io._State.REQUEST_LINE_URI;
+              this[_state$1] = io._State.REQUEST_LINE_URI;
             } else {
-              this[_method][dartx.add](byte);
+              this[_method$][dartx.add](byte);
               this[_httpVersion] = io._HttpVersion.UNDETERMINED;
               if (!dart.test(this[_requestParser])) {
                 dart.throw(new io.HttpException("Invalid response line"));
               }
-              this[_state] = io._State.REQUEST_LINE_METHOD;
+              this[_state$1] = io._State.REQUEST_LINE_METHOD;
             }
           }
           break;
@@ -46640,7 +46643,7 @@
             this[_httpVersionIndex] = dart.notNull(this[_httpVersionIndex]) + 1;
           } else if (this[_httpVersionIndex] == dart.notNull(io._Const.HTTP1DOT[dartx.length]) + 1) {
             this[_expect](byte, io._CharCode.SP);
-            this[_state] = io._State.RESPONSE_LINE_STATUS_CODE;
+            this[_state$1] = io._State.RESPONSE_LINE_STATUS_CODE;
           } else {
             dart.throw(new io.HttpException("Invalid response line"));
           }
@@ -46649,12 +46652,12 @@
         case io._State.REQUEST_LINE_METHOD:
         {
           if (byte == io._CharCode.SP) {
-            this[_state] = io._State.REQUEST_LINE_URI;
+            this[_state$1] = io._State.REQUEST_LINE_URI;
           } else {
             if (dart.test(io._Const.SEPARATOR_MAP[dartx._get](byte)) || byte == io._CharCode.CR || byte == io._CharCode.LF) {
               dart.throw(new io.HttpException("Invalid request method"));
             }
-            this[_method][dartx.add](byte);
+            this[_method$][dartx.add](byte);
           }
           break;
         }
@@ -46664,7 +46667,7 @@
             if (this[_uri_or_reason_phrase][dartx.length] == 0) {
               dart.throw(new io.HttpException("Invalid request URI"));
             }
-            this[_state] = io._State.REQUEST_LINE_HTTP_VERSION;
+            this[_state$1] = io._State.REQUEST_LINE_HTTP_VERSION;
             this[_httpVersionIndex] = 0;
           } else {
             if (byte == io._CharCode.CR || byte == io._CharCode.LF) {
@@ -46693,11 +46696,11 @@
             }
           } else {
             if (byte == io._CharCode.CR) {
-              this[_state] = io._State.REQUEST_LINE_ENDING;
+              this[_state$1] = io._State.REQUEST_LINE_ENDING;
             } else {
               this[_expect](byte, io._CharCode.LF);
               this[_messageType] = io._MessageType.REQUEST;
-              this[_state] = io._State.HEADER_START;
+              this[_state$1] = io._State.HEADER_START;
             }
           }
           break;
@@ -46706,15 +46709,15 @@
         {
           this[_expect](byte, io._CharCode.LF);
           this[_messageType] = io._MessageType.REQUEST;
-          this[_state] = io._State.HEADER_START;
+          this[_state$1] = io._State.HEADER_START;
           break;
         }
         case io._State.RESPONSE_LINE_STATUS_CODE:
         {
           if (byte == io._CharCode.SP) {
-            this[_state] = io._State.RESPONSE_LINE_REASON_PHRASE;
+            this[_state$1] = io._State.RESPONSE_LINE_REASON_PHRASE;
           } else if (byte == io._CharCode.CR) {
-            this[_state] = io._State.RESPONSE_LINE_ENDING;
+            this[_state$1] = io._State.RESPONSE_LINE_ENDING;
           } else {
             this[_statusCodeLength] = dart.notNull(this[_statusCodeLength]) + 1;
             if (dart.notNull(byte) < 48 && 57 < dart.notNull(byte) || dart.notNull(this[_statusCodeLength]) > 3) {
@@ -46728,7 +46731,7 @@
         case io._State.RESPONSE_LINE_REASON_PHRASE:
         {
           if (byte == io._CharCode.CR) {
-            this[_state] = io._State.RESPONSE_LINE_ENDING;
+            this[_state$1] = io._State.RESPONSE_LINE_ENDING;
           } else {
             if (byte == io._CharCode.CR || byte == io._CharCode.LF) {
               dart.throw(new io.HttpException("Invalid response reason phrase"));
@@ -46748,27 +46751,27 @@
               this[_noMessageBody] = true;
             }
           }
-          this[_state] = io._State.HEADER_START;
+          this[_state$1] = io._State.HEADER_START;
           break;
         }
         case io._State.HEADER_START:
         {
           this[_headers] = new io._HttpHeaders(this.version);
           if (byte == io._CharCode.CR) {
-            this[_state] = io._State.HEADER_ENDING;
+            this[_state$1] = io._State.HEADER_ENDING;
           } else if (byte == io._CharCode.LF) {
-            this[_state] = io._State.HEADER_ENDING;
-            this[_index] = dart.notNull(this[_index]) - 1;
+            this[_state$1] = io._State.HEADER_ENDING;
+            this[_index$2] = dart.notNull(this[_index$2]) - 1;
           } else {
             this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
-            this[_state] = io._State.HEADER_FIELD;
+            this[_state$1] = io._State.HEADER_FIELD;
           }
           break;
         }
         case io._State.HEADER_FIELD:
         {
           if (byte == io._CharCode.COLON) {
-            this[_state] = io._State.HEADER_VALUE_START;
+            this[_state$1] = io._State.HEADER_VALUE_START;
           } else {
             if (!dart.test(io._HttpParser._isTokenChar(byte))) {
               dart.throw(new io.HttpException("Invalid header field name"));
@@ -46780,21 +46783,21 @@
         case io._State.HEADER_VALUE_START:
         {
           if (byte == io._CharCode.CR) {
-            this[_state] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
+            this[_state$1] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
           } else if (byte == io._CharCode.LF) {
-            this[_state] = io._State.HEADER_VALUE_FOLD_OR_END;
+            this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
           } else if (byte != io._CharCode.SP && byte != io._CharCode.HT) {
             this[_headerValue][dartx.add](byte);
-            this[_state] = io._State.HEADER_VALUE;
+            this[_state$1] = io._State.HEADER_VALUE;
           }
           break;
         }
         case io._State.HEADER_VALUE:
         {
           if (byte == io._CharCode.CR) {
-            this[_state] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
+            this[_state$1] = io._State.HEADER_VALUE_FOLDING_OR_ENDING;
           } else if (byte == io._CharCode.LF) {
-            this[_state] = io._State.HEADER_VALUE_FOLD_OR_END;
+            this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
           } else {
             this[_headerValue][dartx.add](byte);
           }
@@ -46803,13 +46806,13 @@
         case io._State.HEADER_VALUE_FOLDING_OR_ENDING:
         {
           this[_expect](byte, io._CharCode.LF);
-          this[_state] = io._State.HEADER_VALUE_FOLD_OR_END;
+          this[_state$1] = io._State.HEADER_VALUE_FOLD_OR_END;
           break;
         }
         case io._State.HEADER_VALUE_FOLD_OR_END:
         {
           if (byte == io._CharCode.SP || byte == io._CharCode.HT) {
-            this[_state] = io._State.HEADER_VALUE_START;
+            this[_state$1] = io._State.HEADER_VALUE_START;
           } else {
             let headerField = core.String.fromCharCodes(this[_headerField]);
             let headerValue = core.String.fromCharCodes(this[_headerValue]);
@@ -46822,21 +46825,21 @@
                 if (dart.test(this[_caseInsensitiveCompare]("upgrade"[dartx.codeUnits], tokens[dartx._get](i)[dartx.codeUnits]))) {
                   this[_connectionUpgrade] = true;
                 }
-                this[_headers][_add](headerField, tokens[dartx._get](i));
+                this[_headers][_add$2](headerField, tokens[dartx._get](i));
               }
             } else {
-              this[_headers][_add](headerField, headerValue);
+              this[_headers][_add$2](headerField, headerValue);
             }
             this[_headerField][dartx.clear]();
             this[_headerValue][dartx.clear]();
             if (byte == io._CharCode.CR) {
-              this[_state] = io._State.HEADER_ENDING;
+              this[_state$1] = io._State.HEADER_ENDING;
             } else if (byte == io._CharCode.LF) {
-              this[_state] = io._State.HEADER_ENDING;
-              this[_index] = dart.notNull(this[_index]) - 1;
+              this[_state$1] = io._State.HEADER_ENDING;
+              this[_index$2] = dart.notNull(this[_index$2]) - 1;
             } else {
               this[_headerField][dartx.add](io._HttpParser._toLowerCaseByte(byte));
-              this[_state] = io._State.HEADER_FIELD;
+              this[_state$1] = io._State.HEADER_FIELD;
             }
           }
           break;
@@ -46854,21 +46857,21 @@
         case io._State.CHUNK_SIZE_STARTING_CR:
         {
           this[_expect](byte, io._CharCode.CR);
-          this[_state] = io._State.CHUNK_SIZE_STARTING_LF;
+          this[_state$1] = io._State.CHUNK_SIZE_STARTING_LF;
           break;
         }
         case io._State.CHUNK_SIZE_STARTING_LF:
         {
           this[_expect](byte, io._CharCode.LF);
-          this[_state] = io._State.CHUNK_SIZE;
+          this[_state$1] = io._State.CHUNK_SIZE;
           break;
         }
         case io._State.CHUNK_SIZE:
         {
           if (byte == io._CharCode.CR) {
-            this[_state] = io._State.CHUNK_SIZE_ENDING;
+            this[_state$1] = io._State.CHUNK_SIZE_ENDING;
           } else if (byte == io._CharCode.SEMI_COLON) {
-            this[_state] = io._State.CHUNK_SIZE_EXTENSION;
+            this[_state$1] = io._State.CHUNK_SIZE_EXTENSION;
           } else {
             let value = this[_expectHexDigit](byte);
             this[_remainingContent] = dart.notNull(this[_remainingContent]) * 16 + dart.notNull(value);
@@ -46878,7 +46881,7 @@
         case io._State.CHUNK_SIZE_EXTENSION:
         {
           if (byte == io._CharCode.CR) {
-            this[_state] = io._State.CHUNK_SIZE_ENDING;
+            this[_state$1] = io._State.CHUNK_SIZE_ENDING;
           }
           break;
         }
@@ -46886,16 +46889,16 @@
         {
           this[_expect](byte, io._CharCode.LF);
           if (dart.notNull(this[_remainingContent]) > 0) {
-            this[_state] = io._State.BODY;
+            this[_state$1] = io._State.BODY;
           } else {
-            this[_state] = io._State.CHUNKED_BODY_DONE_CR;
+            this[_state$1] = io._State.CHUNKED_BODY_DONE_CR;
           }
           break;
         }
         case io._State.CHUNKED_BODY_DONE_CR:
         {
           this[_expect](byte, io._CharCode.CR);
-          this[_state] = io._State.CHUNKED_BODY_DONE_LF;
+          this[_state$1] = io._State.CHUNKED_BODY_DONE_LF;
           break;
         }
         case io._State.CHUNKED_BODY_DONE_LF:
@@ -46907,23 +46910,23 @@
         }
         case io._State.BODY:
         {
-          this[_index] = dart.notNull(this[_index]) - 1;
-          let dataAvailable = dart.notNull(this[_buffer][dartx.length]) - dart.notNull(this[_index]);
+          this[_index$2] = dart.notNull(this[_index$2]) - 1;
+          let dataAvailable = dart.notNull(this[_buffer$][dartx.length]) - dart.notNull(this[_index$2]);
           if (dart.notNull(this[_remainingContent]) >= 0 && dart.notNull(dataAvailable) > dart.notNull(this[_remainingContent])) {
             dataAvailable = this[_remainingContent];
           }
-          let data = typed_data.Uint8List.view(this[_buffer][dartx.buffer], dart.notNull(this[_buffer][dartx.offsetInBytes]) + dart.notNull(this[_index]), dataAvailable);
+          let data = typed_data.Uint8List.view(this[_buffer$][dartx.buffer], dart.notNull(this[_buffer$][dartx.offsetInBytes]) + dart.notNull(this[_index$2]), dataAvailable);
           this[_bodyController].add(data);
           if (this[_remainingContent] != -1) {
             this[_remainingContent] = dart.notNull(this[_remainingContent]) - dart.notNull(data[dartx.length]);
           }
-          this[_index] = dart.notNull(this[_index]) + dart.notNull(data[dartx.length]);
+          this[_index$2] = dart.notNull(this[_index$2]) + dart.notNull(data[dartx.length]);
           if (this[_remainingContent] == 0) {
             if (!dart.test(this[_chunked])) {
               this[_reset]();
               this[_closeIncoming]();
             } else {
-              this[_state] = io._State.CHUNK_SIZE_STARTING_CR;
+              this[_state$1] = io._State.CHUNK_SIZE_STARTING_CR;
             }
           }
           break;
@@ -46941,55 +46944,55 @@
       }
     }
     this[_parserCalled] = false;
-    if (this[_buffer] != null && this[_index] == this[_buffer][dartx.length]) {
+    if (this[_buffer$] != null && this[_index$2] == this[_buffer$][dartx.length]) {
       this[_releaseBuffer]();
-      if (this[_state] != io._State.UPGRADED && this[_state] != io._State.FAILURE) {
+      if (this[_state$1] != io._State.UPGRADED && this[_state$1] != io._State.FAILURE) {
         this[_socketSubscription].resume();
       }
     }
   }
-  [_onData](buffer) {
+  [_onData$](buffer) {
     this[_socketSubscription].pause();
-    dart.assert(this[_buffer] == null);
-    this[_buffer] = typed_data.Uint8List._check(buffer);
-    this[_index] = 0;
+    dart.assert(this[_buffer$] == null);
+    this[_buffer$] = typed_data.Uint8List._check(buffer);
+    this[_index$2] = 0;
     this[_parse]();
   }
-  [_onDone]() {
+  [_onDone$]() {
     this[_socketSubscription] = null;
-    if (this[_state] == io._State.CLOSED || this[_state] == io._State.FAILURE) return;
+    if (this[_state$1] == io._State.CLOSED || this[_state$1] == io._State.FAILURE) return;
     if (this[_incoming] != null) {
-      if (this[_state] != io._State.UPGRADED && !(this[_state] == io._State.START && !dart.test(this[_requestParser])) && !(this[_state] == io._State.BODY && !dart.test(this[_chunked]) && this[_transferLength] == -1)) {
+      if (this[_state$1] != io._State.UPGRADED && !(this[_state$1] == io._State.START && !dart.test(this[_requestParser])) && !(this[_state$1] == io._State.BODY && !dart.test(this[_chunked]) && this[_transferLength] == -1)) {
         this[_bodyController].addError(new io.HttpException("Connection closed while receiving data"));
       }
       this[_closeIncoming](true);
-      this[_controller].close();
+      this[_controller$0].close();
       return;
     }
-    if (this[_state] == io._State.START) {
+    if (this[_state$1] == io._State.START) {
       if (!dart.test(this[_requestParser])) {
         this[_reportError](new io.HttpException("Connection closed before full header was received"));
       }
-      this[_controller].close();
+      this[_controller$0].close();
       return;
     }
-    if (this[_state] == io._State.UPGRADED) {
-      this[_controller].close();
+    if (this[_state$1] == io._State.UPGRADED) {
+      this[_controller$0].close();
       return;
     }
-    if (dart.notNull(this[_state]) < io._State.FIRST_BODY_STATE) {
-      this[_state] = io._State.FAILURE;
+    if (dart.notNull(this[_state$1]) < io._State.FIRST_BODY_STATE) {
+      this[_state$1] = io._State.FAILURE;
       this[_reportError](new io.HttpException("Connection closed before full header was received"));
-      this[_controller].close();
+      this[_controller$0].close();
       return;
     }
     if (!dart.test(this[_chunked]) && this[_transferLength] == -1) {
-      this[_state] = io._State.CLOSED;
+      this[_state$1] = io._State.CLOSED;
     } else {
-      this[_state] = io._State.FAILURE;
+      this[_state$1] = io._State.FAILURE;
       this[_reportError](new io.HttpException("Connection closed before full body was received"));
     }
-    this[_controller].close();
+    this[_controller$0].close();
   }
   get version() {
     switch (this[_httpVersion]) {
@@ -47011,7 +47014,7 @@
     return this[_transferLength];
   }
   get upgrade() {
-    return dart.test(this[_connectionUpgrade]) && this[_state] == io._State.UPGRADED;
+    return dart.test(this[_connectionUpgrade]) && this[_state$1] == io._State.UPGRADED;
   }
   get persistentConnection() {
     return this[_persistentConnection];
@@ -47020,23 +47023,23 @@
     if (dart.test(value)) this[_noMessageBody] = true;
   }
   detachIncoming() {
-    this[_state] = io._State.UPGRADED;
+    this[_state$1] = io._State.UPGRADED;
     return new io._HttpDetachedIncoming(this[_socketSubscription], this.readUnparsedData());
   }
   readUnparsedData() {
-    if (this[_buffer] == null) return null;
-    if (this[_index] == this[_buffer][dartx.length]) return null;
-    let result = this[_buffer][dartx.sublist](this[_index]);
+    if (this[_buffer$] == null) return null;
+    if (this[_index$2] == this[_buffer$][dartx.length]) return null;
+    let result = this[_buffer$][dartx.sublist](this[_index$2]);
     this[_releaseBuffer]();
     return result;
   }
   [_reset]() {
-    if (this[_state] == io._State.UPGRADED) return;
-    this[_state] = io._State.START;
+    if (this[_state$1] == io._State.UPGRADED) return;
+    this[_state$1] = io._State.START;
     this[_messageType] = io._MessageType.UNDETERMINED;
     this[_headerField][dartx.clear]();
     this[_headerValue][dartx.clear]();
-    this[_method][dartx.clear]();
+    this[_method$][dartx.clear]();
     this[_uri_or_reason_phrase][dartx.clear]();
     this[_statusCode] = 0;
     this[_statusCodeLength] = 0;
@@ -47050,8 +47053,8 @@
     this[_headers] = null;
   }
   [_releaseBuffer]() {
-    this[_buffer] = null;
-    this[_index] = null;
+    this[_buffer$] = null;
+    this[_index$2] = null;
   }
   static _isTokenChar(byte) {
     return dart.notNull(byte) > 31 && dart.notNull(byte) < 128 && !dart.test(io._Const.SEPARATOR_MAP[dartx._get](byte));
@@ -47127,7 +47130,7 @@
           this[_socketSubscription].cancel();
         }
         this[_closeIncoming](true);
-        this[_controller].close();
+        this[_controller$0].close();
       }, VoidToNull())});
     incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
     this[_bodyPaused] = true;
@@ -47160,9 +47163,9 @@
   [_reportError](error, stackTrace) {
     if (stackTrace === void 0) stackTrace = null;
     if (this[_socketSubscription] != null) this[_socketSubscription].cancel();
-    this[_state] = io._State.FAILURE;
-    this[_controller].addError(error, core.StackTrace._check(stackTrace));
-    this[_controller].close();
+    this[_state$1] = io._State.FAILURE;
+    this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
+    this[_controller$0].close();
   }
 };
 dart.addSimpleTypeTests(io._HttpParser);
@@ -47175,15 +47178,15 @@
   }),
   fields: () => ({
     [_parserCalled]: core.bool,
-    [_buffer]: typed_data.Uint8List,
-    [_index]: core.int,
+    [_buffer$]: typed_data.Uint8List,
+    [_index$2]: core.int,
     [_requestParser]: core.bool,
-    [_state]: core.int,
+    [_state$1]: core.int,
     [_httpVersionIndex]: core.int,
     [_messageType]: core.int,
     [_statusCode]: core.int,
     [_statusCodeLength]: core.int,
-    [_method]: ListOfint(),
+    [_method$]: ListOfint(),
     [_uri_or_reason_phrase]: ListOfint(),
     [_headerField]: ListOfint(),
     [_headerValue]: ListOfint(),
@@ -47199,7 +47202,7 @@
     [_socketSubscription]: async.StreamSubscription,
     [_paused]: core.bool,
     [_bodyPaused]: core.bool,
-    [_controller]: StreamControllerOf_HttpIncoming(),
+    [_controller$0]: StreamControllerOf_HttpIncoming(),
     [_bodyController]: StreamControllerOfListOfint()
   }),
   getters: () => ({
@@ -47216,8 +47219,8 @@
     [_parse]: dart.definiteFunctionType(dart.void, []),
     [_headersEnd]: dart.definiteFunctionType(core.bool, []),
     [_doParse]: dart.definiteFunctionType(dart.void, []),
-    [_onData]: dart.definiteFunctionType(dart.void, [ListOfint()]),
-    [_onDone]: dart.definiteFunctionType(dart.void, []),
+    [_onData$]: dart.definiteFunctionType(dart.void, [ListOfint()]),
+    [_onDone$]: dart.definiteFunctionType(dart.void, []),
     detachIncoming: dart.definiteFunctionType(io._HttpDetachedIncoming, []),
     readUnparsedData: dart.definiteFunctionType(core.List$(core.int), []),
     [_reset]: dart.definiteFunctionType(dart.void, []),
@@ -47239,17 +47242,17 @@
   names: ['_isTokenChar', '_isValueChar', '_tokenizeFieldValue', '_toLowerCaseByte']
 });
 io._DART_SESSION_ID = "DARTSESSID";
-const _data = Symbol('_data');
+const _data$ = Symbol('_data');
 const _lastSeen = Symbol('_lastSeen');
 const _timeoutCallback = Symbol('_timeoutCallback');
 const _prev = Symbol('_prev');
-const _next = Symbol('_next');
+const _next$1 = Symbol('_next');
 const _removeFromTimeoutQueue = Symbol('_removeFromTimeoutQueue');
 const _sessions = Symbol('_sessions');
 const _bumpToEnd = Symbol('_bumpToEnd');
 io._HttpSession = class _HttpSession extends core.Object {
   new(sessionManager, id) {
-    this[_data] = collection.HashMap.new();
+    this[_data$] = collection.HashMap.new();
     this[_sessionManager] = sessionManager;
     this.id = id;
     this[_lastSeen] = new core.DateTime.now();
@@ -47257,7 +47260,7 @@
     this[_isNew] = true;
     this[_timeoutCallback] = null;
     this[_prev] = null;
-    this[_next] = null;
+    this[_next$1] = null;
   }
   destroy() {
     this[_destroyed] = true;
@@ -47278,50 +47281,50 @@
     this[_timeoutCallback] = callback;
   }
   containsValue(value) {
-    return this[_data][dartx.containsValue](value);
+    return this[_data$][dartx.containsValue](value);
   }
   containsKey(key) {
-    return this[_data][dartx.containsKey](key);
+    return this[_data$][dartx.containsKey](key);
   }
   _get(key) {
-    return this[_data][dartx._get](key);
+    return this[_data$][dartx._get](key);
   }
   _set(key, value) {
-    this[_data][dartx._set](key, value);
+    this[_data$][dartx._set](key, value);
     return value;
   }
   putIfAbsent(key, ifAbsent) {
-    return this[_data][dartx.putIfAbsent](key, ifAbsent);
+    return this[_data$][dartx.putIfAbsent](key, ifAbsent);
   }
   addAll(other) {
-    return this[_data][dartx.addAll](other);
+    return this[_data$][dartx.addAll](other);
   }
   remove(key) {
-    return this[_data][dartx.remove](key);
+    return this[_data$][dartx.remove](key);
   }
   clear() {
-    this[_data][dartx.clear]();
+    this[_data$][dartx.clear]();
   }
   forEach(f) {
-    this[_data][dartx.forEach](f);
+    this[_data$][dartx.forEach](f);
   }
   get keys() {
-    return this[_data][dartx.keys];
+    return this[_data$][dartx.keys];
   }
   get values() {
-    return this[_data][dartx.values];
+    return this[_data$][dartx.values];
   }
   get length() {
-    return this[_data][dartx.length];
+    return this[_data$][dartx.length];
   }
   get isEmpty() {
-    return this[_data][dartx.isEmpty];
+    return this[_data$][dartx.isEmpty];
   }
   get isNotEmpty() {
-    return this[_data][dartx.isNotEmpty];
+    return this[_data$][dartx.isNotEmpty];
   }
   toString() {
-    return dart.str`HttpSession id:${this.id} ${this[_data]}`;
+    return dart.str`HttpSession id:${this.id} ${this[_data$]}`;
   }
 };
 io._HttpSession[dart.implements] = () => [io.HttpSession];
@@ -47334,9 +47337,9 @@
     [_timeoutCallback]: core.Function,
     [_sessionManager]: io._HttpSessionManager,
     [_prev]: io._HttpSession,
-    [_next]: io._HttpSession,
+    [_next$1]: io._HttpSession,
     id: core.String,
-    [_data]: core.Map
+    [_data$]: core.Map
   }),
   getters: () => ({
     lastSeen: dart.definiteFunctionType(core.DateTime, []),
@@ -47379,8 +47382,8 @@
   'isNotEmpty'
 ]);
 const _sessionTimeout = Symbol('_sessionTimeout');
-const _head = Symbol('_head');
-const _tail = Symbol('_tail');
+const _head$ = Symbol('_head');
+const _tail$ = Symbol('_tail');
 const _timer = Symbol('_timer');
 const _addToTimeoutQueue = Symbol('_addToTimeoutQueue');
 const _stopTimer = Symbol('_stopTimer');
@@ -47390,8 +47393,8 @@
   new() {
     this[_sessions] = dart.map({}, core.String, io._HttpSession);
     this[_sessionTimeout] = 20 * 60;
-    this[_head] = null;
-    this[_tail] = null;
+    this[_head$] = null;
+    this[_tail$] = null;
     this[_timer] = null;
   }
   createSessionId() {
@@ -47424,39 +47427,39 @@
     this[_addToTimeoutQueue](session);
   }
   [_addToTimeoutQueue](session) {
-    if (this[_head] == null) {
-      dart.assert(this[_tail] == null);
-      this[_tail] = this[_head] = session;
+    if (this[_head$] == null) {
+      dart.assert(this[_tail$] == null);
+      this[_tail$] = this[_head$] = session;
       this[_startTimer]();
     } else {
       dart.assert(this[_timer] != null);
-      dart.assert(this[_tail] != null);
-      this[_tail][_next] = session;
-      session[_prev] = this[_tail];
-      this[_tail] = session;
+      dart.assert(this[_tail$] != null);
+      this[_tail$][_next$1] = session;
+      session[_prev] = this[_tail$];
+      this[_tail$] = session;
     }
   }
   [_removeFromTimeoutQueue](session) {
-    if (session[_next] != null) {
-      session[_next][_prev] = session[_prev];
+    if (session[_next$1] != null) {
+      session[_next$1][_prev] = session[_prev];
     }
     if (session[_prev] != null) {
-      session[_prev][_next] = session[_next];
+      session[_prev][_next$1] = session[_next$1];
     }
-    if (dart.equals(this[_head], session)) {
-      this[_head] = session[_next];
+    if (dart.equals(this[_head$], session)) {
+      this[_head$] = session[_next$1];
       this[_stopTimer]();
       this[_startTimer]();
     }
-    if (dart.equals(this[_tail], session)) {
-      this[_tail] = session[_prev];
+    if (dart.equals(this[_tail$], session)) {
+      this[_tail$] = session[_prev];
     }
-    session[_next] = session[_prev] = null;
+    session[_next$1] = session[_prev] = null;
   }
   [_timerTimeout]() {
     this[_stopTimer]();
-    dart.assert(this[_head] != null);
-    let session = this[_head];
+    dart.assert(this[_head$] != null);
+    let session = this[_head$];
     session.destroy();
     if (session[_timeoutCallback] != null) {
       dart.dsend(session, _timeoutCallback);
@@ -47464,8 +47467,8 @@
   }
   [_startTimer]() {
     dart.assert(this[_timer] == null);
-    if (this[_head] != null) {
-      let seconds = new core.DateTime.now().difference(this[_head].lastSeen).inSeconds;
+    if (this[_head$] != null) {
+      let seconds = new core.DateTime.now().difference(this[_head$].lastSeen).inSeconds;
       this[_timer] = async.Timer.new(new core.Duration({seconds: dart.notNull(this[_sessionTimeout]) - dart.notNull(seconds)}), dart.bind(this, _timerTimeout));
     }
   }
@@ -47481,8 +47484,8 @@
   fields: () => ({
     [_sessions]: MapOfString$_HttpSession(),
     [_sessionTimeout]: core.int,
-    [_head]: io._HttpSession,
-    [_tail]: io._HttpSession,
+    [_head$]: io._HttpSession,
+    [_tail$]: io._HttpSession,
     [_timer]: async.Timer
   }),
   setters: () => ({sessionTimeout: dart.definiteFunctionType(dart.void, [core.int])}),
@@ -47654,7 +47657,7 @@
   },
   set openFiles(_) {}
 });
-const _arguments = Symbol('_arguments');
+const _arguments$0 = Symbol('_arguments');
 const _workingDirectory = Symbol('_workingDirectory');
 io._ProcessResourceInfo = class _ProcessResourceInfo extends io._IOResourceInfo {
   new(process) {
@@ -47664,13 +47667,13 @@
     io._ProcessResourceInfo.ProcessStarted(this);
   }
   get name() {
-    return core.String._check(dart.dload(this.process, _path));
+    return core.String._check(dart.dload(this.process, _path$));
   }
   stopped() {
     io._ProcessResourceInfo.ProcessStopped(this);
   }
   get fullValueMap() {
-    return dart.map({type: this.type, id: this.id, name: this.name, pid: core.String._check(dart.dload(this.process, 'pid')), startedAt: this.startedAt, arguments: core.String._check(dart.dload(this.process, _arguments)), workingDirectory: core.String._check(dart.dload(this.process, _workingDirectory) == null ? '.' : dart.dload(this.process, _workingDirectory))}, core.String, core.String);
+    return dart.map({type: this.type, id: this.id, name: this.name, pid: core.String._check(dart.dload(this.process, 'pid')), startedAt: this.startedAt, arguments: core.String._check(dart.dload(this.process, _arguments$0)), workingDirectory: core.String._check(dart.dload(this.process, _workingDirectory) == null ? '.' : dart.dload(this.process, _workingDirectory))}, core.String, core.String);
   }
   static ProcessStarted(info) {
     dart.assert(!dart.test(io._ProcessResourceInfo.startedProcesses[dartx.containsKey](info.id)));
@@ -48300,68 +48303,68 @@
   },
   set packageConfig(_) {}
 });
-const _map = Symbol('_map');
+const _map$1 = Symbol('_map');
 io._CaseInsensitiveStringMap$ = dart.generic(V => {
   let MapOfString$V = () => (MapOfString$V = dart.constFn(core.Map$(core.String, V)))();
   let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
   let StringAndVTovoid = () => (StringAndVTovoid = dart.constFn(dart.functionType(dart.void, [core.String, V])))();
   class _CaseInsensitiveStringMap extends core.Object {
     new() {
-      this[_map] = MapOfString$V().new();
+      this[_map$1] = MapOfString$V().new();
     }
     containsKey(key) {
-      return typeof key == 'string' && dart.test(this[_map][dartx.containsKey](key[dartx.toUpperCase]()));
+      return typeof key == 'string' && dart.test(this[_map$1][dartx.containsKey](key[dartx.toUpperCase]()));
     }
     containsValue(value) {
-      return this[_map][dartx.containsValue](value);
+      return this[_map$1][dartx.containsValue](value);
     }
     _get(key) {
-      return typeof key == 'string' ? this[_map][dartx._get](key[dartx.toUpperCase]()) : null;
+      return typeof key == 'string' ? this[_map$1][dartx._get](key[dartx.toUpperCase]()) : null;
     }
     _set(key, value) {
       V._check(value);
-      this[_map][dartx._set](key[dartx.toUpperCase](), value);
+      this[_map$1][dartx._set](key[dartx.toUpperCase](), value);
       return value;
     }
     putIfAbsent(key, ifAbsent) {
       VoidToV()._check(ifAbsent);
-      return this[_map][dartx.putIfAbsent](key[dartx.toUpperCase](), ifAbsent);
+      return this[_map$1][dartx.putIfAbsent](key[dartx.toUpperCase](), ifAbsent);
     }
     addAll(other) {
-      other[dartx.forEach](dart.fn((key, value) => this._set(core.String._check(dart.dsend(key, 'toUpperCase')), V._check(value)), dynamicAnddynamicTovoid()));
+      other[dartx.forEach](dart.fn((key, value) => this._set(core.String._check(dart.dsend(key, 'toUpperCase')), V._check(value)), dynamicAnddynamicTovoid$()));
     }
     remove(key) {
-      return typeof key == 'string' ? this[_map][dartx.remove](key[dartx.toUpperCase]()) : null;
+      return typeof key == 'string' ? this[_map$1][dartx.remove](key[dartx.toUpperCase]()) : null;
     }
     clear() {
-      this[_map][dartx.clear]();
+      this[_map$1][dartx.clear]();
     }
     forEach(f) {
-      this[_map][dartx.forEach](f);
+      this[_map$1][dartx.forEach](f);
     }
     get keys() {
-      return this[_map][dartx.keys];
+      return this[_map$1][dartx.keys];
     }
     get values() {
-      return this[_map][dartx.values];
+      return this[_map$1][dartx.values];
     }
     get length() {
-      return this[_map][dartx.length];
+      return this[_map$1][dartx.length];
     }
     get isEmpty() {
-      return this[_map][dartx.isEmpty];
+      return this[_map$1][dartx.isEmpty];
     }
     get isNotEmpty() {
-      return this[_map][dartx.isNotEmpty];
+      return this[_map$1][dartx.isNotEmpty];
     }
     toString() {
-      return dart.toString(this[_map]);
+      return dart.toString(this[_map$1]);
     }
   }
   dart.addTypeTests(_CaseInsensitiveStringMap);
   _CaseInsensitiveStringMap[dart.implements] = () => [MapOfString$V()];
   dart.setSignature(_CaseInsensitiveStringMap, {
-    fields: () => ({[_map]: MapOfString$V()}),
+    fields: () => ({[_map$1]: MapOfString$V()}),
     getters: () => ({
       keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
       values: dart.definiteFunctionType(core.Iterable$(V), []),
@@ -48545,14 +48548,14 @@
   })
 });
 const _signalNumber = Symbol('_signalNumber');
-const _name = Symbol('_name');
+const _name$2 = Symbol('_name');
 io.ProcessSignal = class ProcessSignal extends core.Object {
   _(signalNumber, name) {
     this[_signalNumber] = signalNumber;
-    this[_name] = name;
+    this[_name$2] = name;
   }
   toString() {
-    return this[_name];
+    return this[_name$2];
   }
   watch() {
     return io._ProcessUtils._watchSignal(this);
@@ -48563,7 +48566,7 @@
   constructors: () => ({_: dart.definiteFunctionType(io.ProcessSignal, [core.int, core.String])}),
   fields: () => ({
     [_signalNumber]: core.int,
-    [_name]: core.String
+    [_name$2]: core.String
   }),
   methods: () => ({watch: dart.definiteFunctionType(async.Stream$(io.ProcessSignal), [])}),
   sfields: () => ({
@@ -48752,7 +48755,7 @@
     let completer = async.Completer.new();
     dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
       completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-    }, dynamicToNull()));
+    }, dynamicToNull$()));
     return FutureOfSecureSocket()._check(completer.future);
   }
   static secureServer(socket, context, opts) {
@@ -48763,7 +48766,7 @@
     let completer = async.Completer.new();
     dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
       completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-    }, dynamicToNull()));
+    }, dynamicToNull$()));
     return FutureOfSecureSocket()._check(completer.future);
   }
 };
@@ -48874,11 +48877,11 @@
     this.requestClientCertificate = requestClientCertificate;
     this.requireClientCertificate = requireClientCertificate;
     this.supportedProtocols = supportedProtocols;
-    this[_controller] = null;
-    this[_subscription] = null;
+    this[_controller$0] = null;
+    this[_subscription$] = null;
     this[_closed] = false;
     super.new();
-    this[_controller] = StreamControllerOfRawSecureSocket().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
+    this[_controller$0] = StreamControllerOfRawSecureSocket().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
   }
   static bind(address, port, context, opts) {
     let backlog = opts && 'backlog' in opts ? opts.backlog : 0;
@@ -48893,7 +48896,7 @@
     let onError = opts && 'onError' in opts ? opts.onError : null;
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   get port() {
     return this[_socket].port;
@@ -48905,7 +48908,7 @@
     this[_closed] = true;
     return this[_socket].close().then(io.RawSecureServerSocket)(dart.fn(_ => this, RawServerSocketToRawSecureServerSocket()));
   }
-  [_onData](connection) {
+  [_onData$](connection) {
     let remotePort = null;
     try {
       remotePort = connection.remotePort;
@@ -48917,24 +48920,24 @@
       if (dart.test(this[_closed])) {
         secureConnection.close();
       } else {
-        this[_controller].add(secureConnection);
+        this[_controller$0].add(secureConnection);
       }
     }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
       if (!dart.test(this[_closed])) {
-        this[_controller].addError(e, core.StackTrace._check(s));
+        this[_controller$0].addError(e, core.StackTrace._check(s));
       }
     }, dynamicAnddynamicToNull()));
   }
   [_onPauseStateChange]() {
-    if (dart.test(this[_controller].isPaused)) {
-      this[_subscription].pause();
+    if (dart.test(this[_controller$0].isPaused)) {
+      this[_subscription$].pause();
     } else {
-      this[_subscription].resume();
+      this[_subscription$].resume();
     }
   }
   [_onSubscriptionStateChange]() {
-    if (dart.test(this[_controller].hasListener)) {
-      this[_subscription] = this[_socket].listen(dart.bind(this, _onData), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.bind(this[_controller], 'close')});
+    if (dart.test(this[_controller$0].hasListener)) {
+      this[_subscription$] = this[_socket].listen(dart.bind(this, _onData$), {onError: dart.bind(this[_controller$0], 'addError'), onDone: dart.bind(this[_controller$0], 'close')});
     } else {
       this.close();
     }
@@ -48949,8 +48952,8 @@
   constructors: () => ({_: dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket, io.SecurityContext, core.bool, core.bool, ListOfString()])}),
   fields: () => ({
     [_socket]: io.RawServerSocket,
-    [_controller]: StreamControllerOfRawSecureSocket(),
-    [_subscription]: StreamSubscriptionOfRawSocket(),
+    [_controller$0]: StreamControllerOfRawSecureSocket(),
+    [_subscription$]: StreamSubscriptionOfRawSocket(),
     [_context]: io.SecurityContext,
     requestClientCertificate: core.bool,
     requireClientCertificate: core.bool,
@@ -48965,7 +48968,7 @@
   methods: () => ({
     listen: dart.definiteFunctionType(async.StreamSubscription$(io.RawSecureSocket), [RawSecureSocketTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
     close: dart.definiteFunctionType(async.Future$(io.RawSecureServerSocket), []),
-    [_onData]: dart.definiteFunctionType(dart.void, [io.RawSocket]),
+    [_onData$]: dart.definiteFunctionType(dart.void, [io.RawSocket]),
     [_onPauseStateChange]: dart.definiteFunctionType(dart.void, []),
     [_onSubscriptionStateChange]: dart.definiteFunctionType(dart.void, [])
   }),
@@ -49027,7 +49030,7 @@
 const _secureHandshake = Symbol('_secureHandshake');
 const _sendWriteEvent = Symbol('_sendWriteEvent');
 const _completeCloseCompleter = Symbol('_completeCloseCompleter');
-const _close = Symbol('_close');
+const _close$0 = Symbol('_close');
 const _scheduleReadEvent = Symbol('_scheduleReadEvent');
 const _scheduleFilter = Symbol('_scheduleFilter');
 const _readHandler = Symbol('_readHandler');
@@ -49039,19 +49042,19 @@
 const _pushAllFilterStages = Symbol('_pushAllFilterStages');
 const _readSocketOrBufferedData = Symbol('_readSocketOrBufferedData');
 const _sendReadEvent = Symbol('_sendReadEvent');
-let const;
+let const$75;
 io.RawSocketEvent = class RawSocketEvent extends core.Object {
   _(value) {
-    this[_value] = value;
+    this[_value$1] = value;
   }
   toString() {
-    return (const || (const = dart.constList(['RawSocketEvent:READ', 'RawSocketEvent:WRITE', 'RawSocketEvent:READ_CLOSED', 'RawSocketEvent:CLOSED'], core.String)))[dartx._get](this[_value]);
+    return (const$75 || (const$75 = dart.constList(['RawSocketEvent:READ', 'RawSocketEvent:WRITE', 'RawSocketEvent:READ_CLOSED', 'RawSocketEvent:CLOSED'], core.String)))[dartx._get](this[_value$1]);
   }
 };
 dart.defineNamedConstructor(io.RawSocketEvent, '_');
 dart.setSignature(io.RawSocketEvent, {
   constructors: () => ({_: dart.definiteFunctionType(io.RawSocketEvent, [core.int])}),
-  fields: () => ({[_value]: core.int}),
+  fields: () => ({[_value$1]: core.int}),
   sfields: () => ({
     READ: io.RawSocketEvent,
     WRITE: io.RawSocketEvent,
@@ -49110,12 +49113,12 @@
     this.requestClientCertificate = requestClientCertificate;
     this.requireClientCertificate = requireClientCertificate;
     this.onBadCertificate = onBadCertificate;
-    this[_controller] = null;
-    this[_stream] = null;
+    this[_controller$0] = null;
+    this[_stream$] = null;
     this[_bufferedDataIndex] = 0;
     this[_writeEventsEnabled] = true;
     this[_readEventsEnabled] = true;
-    this[_pauseCount] = 0;
+    this[_pauseCount$] = 0;
     this[_pendingReadEvent] = false;
     this[_socketClosedRead] = false;
     this[_socketClosedWrite] = false;
@@ -49129,8 +49132,8 @@
     if (this.context == null) {
       this.context = io.SecurityContext.defaultContext;
     }
-    this[_controller] = StreamControllerOfRawSocketEvent().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
-    this[_stream] = this[_controller].stream;
+    this[_controller$0] = StreamControllerOfRawSocketEvent().new({sync: true, onListen: dart.bind(this, _onSubscriptionStateChange), onPause: dart.bind(this, _onPauseStateChange), onResume: dart.bind(this, _onPauseStateChange), onCancel: dart.bind(this, _onSubscriptionStateChange)});
+    this[_stream$] = this[_controller$0].stream;
     this[_secureFilter].init();
     this[_secureFilter].registerHandshakeCompleteCallback(dart.bind(this, _secureHandshakeCompleteHandler));
     if (this.onBadCertificate != null) {
@@ -49169,7 +49172,7 @@
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
     this[_sendWriteEvent]();
-    return this[_stream].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   static _verifyFields(host, requestedPort, is_server, requestClientCertificate, requireClientCertificate, onBadCertificate) {
     if (!(typeof host == 'string') && !io.InternetAddress.is(host)) {
@@ -49214,7 +49217,7 @@
     if (dummy === void 0) dummy = null;
     if (!dart.test(this[_closeCompleter].isCompleted)) this[_closeCompleter].complete(this);
   }
-  [_close]() {
+  [_close$0]() {
     this[_closedWrite] = true;
     this[_closedRead] = true;
     if (this[_socket] != null) {
@@ -49231,7 +49234,7 @@
     if (this[_socketSubscription] != null) {
       this[_socketSubscription].cancel();
     }
-    this[_controller].close();
+    this[_controller$0].close();
     this[_status] = io._RawSecureSocket.CLOSED;
   }
   shutdown(direction) {
@@ -49241,7 +49244,7 @@
         this[_socket].shutdown(io.SocketDirection.SEND);
         this[_socketClosedWrite] = true;
         if (dart.test(this[_closedRead])) {
-          this[_close]();
+          this[_close$0]();
         }
       }
     }
@@ -49250,7 +49253,7 @@
       this[_socketClosedRead] = true;
       this[_socket].shutdown(io.SocketDirection.RECEIVE);
       if (dart.test(this[_socketClosedWrite])) {
-        this[_close]();
+        this[_close$0]();
       }
     }
   }
@@ -49260,7 +49263,7 @@
   set writeEventsEnabled(value) {
     this[_writeEventsEnabled] = value;
     if (dart.test(value)) {
-      async.Timer.run(dart.fn(() => this[_sendWriteEvent](), VoidTovoid()));
+      async.Timer.run(dart.fn(() => this[_sendWriteEvent](), VoidTovoid$()));
     }
   }
   get readEventsEnabled() {
@@ -49295,7 +49298,7 @@
       dart.throw(new core.ArgumentError(dart.str`Invalid offset parameter in SecureSocket.read (offset: ${offset})`));
     }
     if (dart.test(this[_closedWrite])) {
-      this[_controller].addError(new io.SocketException("Writing to a closed socket"));
+      this[_controller$0].addError(new io.SocketException("Writing to a closed socket"));
       return 0;
     }
     if (this[_status] != io._RawSecureSocket.CONNECTED) return 0;
@@ -49349,7 +49352,7 @@
   }
   [_doneHandler]() {
     if (dart.test(this[_filterStatus].readEmpty)) {
-      this[_close]();
+      this[_close$0]();
     }
   }
   [_reportError](e, stackTrace) {
@@ -49359,9 +49362,9 @@
     } else if (dart.test(this[_connectPending])) {
       this[_handshakeComplete].completeError(e, stackTrace);
     } else {
-      this[_controller].addError(e, stackTrace);
+      this[_controller$0].addError(e, stackTrace);
     }
-    this[_close]();
+    this[_close$0]();
   }
   [_closeHandler]() {
     if (this[_status] == io._RawSecureSocket.CONNECTED) {
@@ -49369,9 +49372,9 @@
       this[_socketClosedRead] = true;
       if (dart.test(this[_filterStatus].readEmpty)) {
         this[_closedRead] = true;
-        this[_controller].add(io.RawSocketEvent.READ_CLOSED);
+        this[_controller$0].add(io.RawSocketEvent.READ_CLOSED);
         if (dart.test(this[_socketClosedWrite])) {
-          this[_close]();
+          this[_close$0]();
         }
       } else {
         this[_scheduleFilter]();
@@ -49416,7 +49419,7 @@
       this[_connectPending] = false;
       try {
         this[_selectedProtocol] = this[_secureFilter].selectedProtocol();
-        async.Timer.run(dart.fn(() => this[_handshakeComplete].complete(this), VoidTovoid()));
+        async.Timer.run(dart.fn(() => this[_handshakeComplete].complete(this), VoidTovoid$()));
       } catch (error) {
         let stack = dart.stackTrace(error);
         this[_handshakeComplete].completeError(error, stack);
@@ -49425,17 +49428,17 @@
     }
   }
   [_onPauseStateChange]() {
-    if (dart.test(this[_controller].isPaused)) {
-      this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
+    if (dart.test(this[_controller$0].isPaused)) {
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) + 1;
     } else {
-      this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
-      if (this[_pauseCount] == 0) {
+      this[_pauseCount$] = dart.notNull(this[_pauseCount$]) - 1;
+      if (this[_pauseCount$] == 0) {
         this[_scheduleReadEvent]();
         this[_sendWriteEvent]();
       }
     }
     if (!dart.test(this[_socketClosedRead]) || !dart.test(this[_socketClosedWrite])) {
-      if (dart.test(this[_controller].isPaused)) {
+      if (dart.test(this[_controller$0].isPaused)) {
         this[_socketSubscription].pause();
       } else {
         this[_socketSubscription].resume();
@@ -49443,7 +49446,7 @@
     }
   }
   [_onSubscriptionStateChange]() {
-    if (dart.test(this[_controller].hasListener)) {
+    if (dart.test(this[_controller$0].hasListener)) {
     }
   }
   [_scheduleFilter]() {
@@ -49540,22 +49543,22 @@
     }
   }
   [_scheduleReadEvent]() {
-    if (!dart.test(this[_pendingReadEvent]) && dart.test(this[_readEventsEnabled]) && this[_pauseCount] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
+    if (!dart.test(this[_pendingReadEvent]) && dart.test(this[_readEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
       this[_pendingReadEvent] = true;
       async.Timer.run(dart.bind(this, _sendReadEvent));
     }
   }
   [_sendReadEvent]() {
     this[_pendingReadEvent] = false;
-    if (this[_status] != io._RawSecureSocket.CLOSED && dart.test(this[_readEventsEnabled]) && this[_pauseCount] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
-      this[_controller].add(io.RawSocketEvent.READ);
+    if (this[_status] != io._RawSecureSocket.CLOSED && dart.test(this[_readEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && !dart.test(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.READ_PLAINTEXT).isEmpty)) {
+      this[_controller$0].add(io.RawSocketEvent.READ);
       this[_scheduleReadEvent]();
     }
   }
   [_sendWriteEvent]() {
-    if (!dart.test(this[_closedWrite]) && dart.test(this[_writeEventsEnabled]) && this[_pauseCount] == 0 && this[_secureFilter] != null && dart.notNull(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).free) > 0) {
+    if (!dart.test(this[_closedWrite]) && dart.test(this[_writeEventsEnabled]) && this[_pauseCount$] == 0 && this[_secureFilter] != null && dart.notNull(this[_secureFilter].buffers[dartx._get](io._RawSecureSocket.WRITE_PLAINTEXT).free) > 0) {
       this[_writeEventsEnabled] = false;
-      this[_controller].add(io.RawSocketEvent.WRITE);
+      this[_controller$0].add(io.RawSocketEvent.WRITE);
     }
   }
   [_pushAllFilterStages]() {
@@ -49635,8 +49638,8 @@
   fields: () => ({
     [_socket]: io.RawSocket,
     [_handshakeComplete]: CompleterOf_RawSecureSocket(),
-    [_controller]: StreamControllerOfRawSocketEvent(),
-    [_stream]: StreamOfRawSocketEvent(),
+    [_controller$0]: StreamControllerOfRawSocketEvent(),
+    [_stream$]: StreamOfRawSocketEvent(),
     [_socketSubscription]: StreamSubscriptionOfRawSocketEvent(),
     [_bufferedData]: ListOfint(),
     [_bufferedDataIndex]: core.int,
@@ -49649,7 +49652,7 @@
     [_status]: core.int,
     [_writeEventsEnabled]: core.bool,
     [_readEventsEnabled]: core.bool,
-    [_pauseCount]: core.int,
+    [_pauseCount$]: core.int,
     [_pendingReadEvent]: core.bool,
     [_socketClosedRead]: core.bool,
     [_socketClosedWrite]: core.bool,
@@ -49682,7 +49685,7 @@
     available: dart.definiteFunctionType(core.int, []),
     close: dart.definiteFunctionType(async.Future$(io.RawSecureSocket), []),
     [_completeCloseCompleter]: dart.definiteFunctionType(dart.void, [], [dart.dynamic]),
-    [_close]: dart.definiteFunctionType(dart.void, []),
+    [_close$0]: dart.definiteFunctionType(dart.void, []),
     shutdown: dart.definiteFunctionType(dart.void, [io.SocketDirection]),
     read: dart.definiteFunctionType(core.List$(core.int), [], [core.int]),
     write: dart.definiteFunctionType(core.int, [ListOfint()], [core.int, core.int]),
@@ -50005,7 +50008,7 @@
 io._nextServiceId = 1;
 io.InternetAddressType = class InternetAddressType extends core.Object {
   _(value) {
-    this[_value] = value;
+    this[_value$1] = value;
   }
   static _from(value) {
     if (value == 0) return io.InternetAddressType.IP_V4;
@@ -50013,7 +50016,7 @@
     dart.throw(new core.ArgumentError(dart.str`Invalid type: ${value}`));
   }
   get name() {
-    switch (this[_value]) {
+    switch (this[_value$1]) {
       case -1:
       {
         return "ANY";
@@ -50042,7 +50045,7 @@
     _: dart.definiteFunctionType(io.InternetAddressType, [core.int]),
     _from: dart.definiteFunctionType(io.InternetAddressType, [core.int])
   }),
-  fields: () => ({[_value]: core.int}),
+  fields: () => ({[_value$1]: core.int}),
   getters: () => ({name: dart.definiteFunctionType(core.String, [])}),
   sfields: () => ({
     IP_V4: io.InternetAddressType,
@@ -50144,13 +50147,13 @@
 });
 io.SocketDirection = class SocketDirection extends core.Object {
   _(value) {
-    this[_value] = value;
+    this[_value$1] = value;
   }
 };
 dart.defineNamedConstructor(io.SocketDirection, '_');
 dart.setSignature(io.SocketDirection, {
   constructors: () => ({_: dart.definiteFunctionType(io.SocketDirection, [dart.dynamic])}),
-  fields: () => ({[_value]: dart.dynamic}),
+  fields: () => ({[_value$1]: dart.dynamic}),
   sfields: () => ({
     RECEIVE: io.SocketDirection,
     SEND: io.SocketDirection,
@@ -50170,13 +50173,13 @@
 });
 io.SocketOption = class SocketOption extends core.Object {
   _(value) {
-    this[_value] = value;
+    this[_value$1] = value;
   }
 };
 dart.defineNamedConstructor(io.SocketOption, '_');
 dart.setSignature(io.SocketOption, {
   constructors: () => ({_: dart.definiteFunctionType(io.SocketOption, [dart.dynamic])}),
-  fields: () => ({[_value]: dart.dynamic}),
+  fields: () => ({[_value$1]: dart.dynamic}),
   sfields: () => ({
     TCP_NODELAY: io.SocketOption,
     _IP_MULTICAST_LOOP: io.SocketOption,
@@ -50332,20 +50335,20 @@
 io._STDIO_HANDLE_TYPE_OTHER = 4;
 io._StdStream = class _StdStream extends async.Stream$(core.List$(core.int)) {
   new(stream) {
-    this[_stream] = stream;
+    this[_stream$] = stream;
     super.new();
   }
   listen(onData, opts) {
     let onError = opts && 'onError' in opts ? opts.onError : null;
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-    return this[_stream].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    return this[_stream$].listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
 };
 dart.addSimpleTypeTests(io._StdStream);
 dart.setSignature(io._StdStream, {
   constructors: () => ({new: dart.definiteFunctionType(io._StdStream, [StreamOfListOfint()])}),
-  fields: () => ({[_stream]: StreamOfListOfint()}),
+  fields: () => ({[_stream$]: StreamOfListOfint()}),
   methods: () => ({listen: dart.definiteFunctionType(async.StreamSubscription$(core.List$(core.int)), [ListOfintTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool})})
 });
 io.Stdin = class Stdin extends io._StdStream {
@@ -50440,52 +50443,52 @@
 const _terminalLines = Symbol('_terminalLines');
 io._StdSink = class _StdSink extends core.Object {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$0] = sink;
   }
   get encoding() {
-    return this[_sink].encoding;
+    return this[_sink$0].encoding;
   }
   set encoding(encoding) {
-    this[_sink].encoding = encoding;
+    this[_sink$0].encoding = encoding;
   }
   write(object) {
-    this[_sink].write(object);
+    this[_sink$0].write(object);
   }
   writeln(object) {
     if (object === void 0) object = "";
-    this[_sink].writeln(object);
+    this[_sink$0].writeln(object);
   }
   writeAll(objects, sep) {
     if (sep === void 0) sep = "";
-    this[_sink].writeAll(objects, sep);
+    this[_sink$0].writeAll(objects, sep);
   }
   add(data) {
-    this[_sink].add(data);
+    this[_sink$0].add(data);
   }
   addError(error, stackTrace) {
     if (stackTrace === void 0) stackTrace = null;
-    this[_sink].addError(error, stackTrace);
+    this[_sink$0].addError(error, stackTrace);
   }
   writeCharCode(charCode) {
-    this[_sink].writeCharCode(charCode);
+    this[_sink$0].writeCharCode(charCode);
   }
   addStream(stream) {
-    return this[_sink].addStream(stream);
+    return this[_sink$0].addStream(stream);
   }
   flush() {
-    return this[_sink].flush();
+    return this[_sink$0].flush();
   }
   close() {
-    return this[_sink].close();
+    return this[_sink$0].close();
   }
   get done() {
-    return this[_sink].done;
+    return this[_sink$0].done;
   }
 };
 io._StdSink[dart.implements] = () => [io.IOSink];
 dart.setSignature(io._StdSink, {
   constructors: () => ({new: dart.definiteFunctionType(io._StdSink, [io.IOSink])}),
-  fields: () => ({[_sink]: io.IOSink}),
+  fields: () => ({[_sink$0]: io.IOSink}),
   getters: () => ({
     encoding: dart.definiteFunctionType(convert.Encoding, []),
     done: dart.definiteFunctionType(async.Future, [])
@@ -50667,7 +50670,7 @@
 });
 io.stdioType = function(object) {
   if (io._StdStream.is(object)) {
-    object = dart.dload(object, _stream);
+    object = dart.dload(object, _stream$);
   } else if (dart.equals(object, io.stdout) || dart.equals(object, io.stderr)) {
     switch (io._StdIOUtils._getStdioHandleType(dart.equals(object, io.stdout) ? 1 : 2)) {
       case io._STDIO_HANDLE_TYPE_TERMINAL:
@@ -50707,7 +50710,7 @@
   }
   if (io._IOSinkImpl.is(object)) {
     try {
-      if (io._FileStreamConsumer.is(object[_target])) {
+      if (io._FileStreamConsumer.is(object[_target$])) {
         return io.StdioType.FILE;
       }
     } catch (e) {
@@ -50740,10 +50743,10 @@
   }),
   names: ['_getStdioOutputStream', '_getStdioInputStream', '_socketType', '_getStdioHandleType']
 });
-let const;
-let const;
-let const;
-let const;
+let const$76;
+let const$77;
+let const$78;
+let const$79;
 io.SystemEncoding = class SystemEncoding extends convert.Encoding {
   new() {
     super.new();
@@ -50759,16 +50762,16 @@
   }
   get encoder() {
     if (io.Platform.operatingSystem == "windows") {
-      return const || (const = dart.const(new io._WindowsCodePageEncoder()));
+      return const$76 || (const$76 = dart.const(new io._WindowsCodePageEncoder()));
     } else {
-      return const || (const = dart.const(new convert.Utf8Encoder()));
+      return const$77 || (const$77 = dart.const(new convert.Utf8Encoder()));
     }
   }
   get decoder() {
     if (io.Platform.operatingSystem == "windows") {
-      return const || (const = dart.const(new io._WindowsCodePageDecoder()));
+      return const$78 || (const$78 = dart.const(new io._WindowsCodePageDecoder()));
     } else {
-      return const || (const = dart.const(new convert.Utf8Decoder()));
+      return const$79 || (const$79 = dart.const(new convert.Utf8Decoder()));
     }
   }
 };
@@ -50811,17 +50814,17 @@
 });
 io._WindowsCodePageEncoderSink = class _WindowsCodePageEncoderSink extends convert.StringConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$0] = sink;
   }
   close() {
-    this[_sink].close();
+    this[_sink$0].close();
   }
   add(string) {
     let encoded = io._WindowsCodePageEncoder._encodeString(string);
     if (encoded == null) {
       dart.throw(new core.FormatException("Invalid character for encoding"));
     }
-    this[_sink].add(encoded);
+    this[_sink$0].add(encoded);
   }
   addSlice(source, start, end, isLast) {
     if (start != 0 || end != source[dartx.length]) {
@@ -50833,7 +50836,7 @@
 };
 dart.setSignature(io._WindowsCodePageEncoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageEncoderSink, [SinkOfListOfint()])}),
-  fields: () => ({[_sink]: SinkOfListOfint()}),
+  fields: () => ({[_sink$0]: SinkOfListOfint()}),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
     addSlice: dart.definiteFunctionType(dart.void, [core.String, core.int, core.int, core.bool])
@@ -50865,19 +50868,19 @@
 });
 io._WindowsCodePageDecoderSink = class _WindowsCodePageDecoderSink extends convert.ByteConversionSinkBase {
   new(sink) {
-    this[_sink] = sink;
+    this[_sink$0] = sink;
     super.new();
   }
   close() {
-    this[_sink].close();
+    this[_sink$0].close();
   }
   add(bytes) {
-    this[_sink].add(io._WindowsCodePageDecoder._decodeBytes(bytes));
+    this[_sink$0].add(io._WindowsCodePageDecoder._decodeBytes(bytes));
   }
 };
 dart.setSignature(io._WindowsCodePageDecoderSink, {
   constructors: () => ({new: dart.definiteFunctionType(io._WindowsCodePageDecoderSink, [SinkOfString()])}),
-  fields: () => ({[_sink]: SinkOfString()}),
+  fields: () => ({[_sink$0]: SinkOfString()}),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
     add: dart.definiteFunctionType(dart.void, [ListOfint()])
@@ -50941,7 +50944,7 @@
       if (dart.notNull(part[dartx.length]) >= 2 && dart.test(part[dartx.startsWith]('0'))) {
         dart.throw(new core.ArgumentError("Illegal 0 padding on value."));
       } else {
-        mwb = this.serverMaxWindowBits == null ? core.int.parse(part, {onError: dart.fn(source => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint())}) : this.serverMaxWindowBits;
+        mwb = this.serverMaxWindowBits == null ? core.int.parse(part, {onError: dart.fn(source => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint$())}) : this.serverMaxWindowBits;
         info.headerValue = dart.str`; server_max_window_bits=${mwb}`;
         info.maxWindowBits = mwb;
       }
@@ -51177,7 +51180,7 @@
 const _remainingPayloadBytes = Symbol('_remainingPayloadBytes');
 const _unmaskingIndex = Symbol('_unmaskingIndex');
 const _currentMessageType = Symbol('_currentMessageType');
-const _eventSink = Symbol('_eventSink');
+const _eventSink$ = Symbol('_eventSink');
 const _isControlFrame = Symbol('_isControlFrame');
 const _lengthDone = Symbol('_lengthDone');
 const _maskDone = Symbol('_maskDone');
@@ -51194,7 +51197,7 @@
     this[_payload] = io.BytesBuilder.new({copy: false});
     this[_serverSide] = serverSide;
     this[_deflate] = deflate;
-    this[_state] = io._WebSocketProtocolTransformer.START;
+    this[_state$1] = io._WebSocketProtocolTransformer.START;
     this[_fin] = false;
     this[_compressed] = false;
     this[_opcode] = -1;
@@ -51207,38 +51210,38 @@
     this[_currentMessageType] = io._WebSocketMessageType.NONE;
     this.closeCode = io.WebSocketStatus.NO_STATUS_RECEIVED;
     this.closeReason = "";
-    this[_eventSink] = null;
+    this[_eventSink$] = null;
   }
   bind(stream) {
     return async.Stream.eventTransformed(stream, dart.fn(eventSink => {
-      if (this[_eventSink] != null) {
+      if (this[_eventSink$] != null) {
         dart.throw(new core.StateError("WebSocket transformer already used."));
       }
-      this[_eventSink] = eventSink;
+      this[_eventSink$] = eventSink;
       return this;
     }, EventSinkTo_WebSocketProtocolTransformer()));
   }
   addError(error, stackTrace) {
     if (stackTrace === void 0) stackTrace = null;
-    this[_eventSink].addError(error, stackTrace);
+    this[_eventSink$].addError(error, stackTrace);
   }
   close() {
-    this[_eventSink].close();
+    this[_eventSink$].close();
   }
   add(bytes) {
     let buffer = typed_data.Uint8List.is(bytes) ? bytes : typed_data.Uint8List.fromList(bytes);
     let index = 0;
     let lastIndex = buffer[dartx.length];
-    if (this[_state] == io._WebSocketProtocolTransformer.CLOSED) {
+    if (this[_state$1] == io._WebSocketProtocolTransformer.CLOSED) {
       dart.throw(new io.WebSocketException("Data on closed connection"));
     }
-    if (this[_state] == io._WebSocketProtocolTransformer.FAILURE) {
+    if (this[_state$1] == io._WebSocketProtocolTransformer.FAILURE) {
       dart.throw(new io.WebSocketException("Data on failed connection"));
     }
-    while (dart.notNull(index) < dart.notNull(lastIndex) && this[_state] != io._WebSocketProtocolTransformer.CLOSED && this[_state] != io._WebSocketProtocolTransformer.FAILURE) {
+    while (dart.notNull(index) < dart.notNull(lastIndex) && this[_state$1] != io._WebSocketProtocolTransformer.CLOSED && this[_state$1] != io._WebSocketProtocolTransformer.FAILURE) {
       let byte = buffer[dartx._get](index);
-      if (dart.notNull(this[_state]) <= io._WebSocketProtocolTransformer.LEN_REST) {
-        if (this[_state] == io._WebSocketProtocolTransformer.START) {
+      if (dart.notNull(this[_state$1]) <= io._WebSocketProtocolTransformer.LEN_REST) {
+        if (this[_state$1] == io._WebSocketProtocolTransformer.START) {
           this[_fin] = (dart.notNull(byte) & io._WebSocketProtocolTransformer.FIN) != 0;
           if ((dart.notNull(byte) & (io._WebSocketProtocolTransformer.RSV2 | io._WebSocketProtocolTransformer.RSV3)) != 0) {
             dart.throw(new io.WebSocketException("Protocol error"));
@@ -51268,8 +51271,8 @@
           } else {
             dart.throw(new io.WebSocketException("Protocol error"));
           }
-          this[_state] = io._WebSocketProtocolTransformer.LEN_FIRST;
-        } else if (this[_state] == io._WebSocketProtocolTransformer.LEN_FIRST) {
+          this[_state$1] = io._WebSocketProtocolTransformer.LEN_FIRST;
+        } else if (this[_state$1] == io._WebSocketProtocolTransformer.LEN_FIRST) {
           this[_masked] = (dart.notNull(byte) & 128) != 0;
           this[_len] = dart.notNull(byte) & 127;
           if (dart.test(this[_isControlFrame]()) && dart.notNull(this[_len]) > 125) {
@@ -51278,17 +51281,17 @@
           if (this[_len] == 126) {
             this[_len] = 0;
             this[_remainingLenBytes] = 2;
-            this[_state] = io._WebSocketProtocolTransformer.LEN_REST;
+            this[_state$1] = io._WebSocketProtocolTransformer.LEN_REST;
           } else if (this[_len] == 127) {
             this[_len] = 0;
             this[_remainingLenBytes] = 8;
-            this[_state] = io._WebSocketProtocolTransformer.LEN_REST;
+            this[_state$1] = io._WebSocketProtocolTransformer.LEN_REST;
           } else {
             dart.assert(dart.notNull(this[_len]) < 126);
             this[_lengthDone]();
           }
         } else {
-          dart.assert(this[_state] == io._WebSocketProtocolTransformer.LEN_REST);
+          dart.assert(this[_state$1] == io._WebSocketProtocolTransformer.LEN_REST);
           this[_len] = (dart.notNull(this[_len]) << 8 | dart.notNull(byte)) >>> 0;
           this[_remainingLenBytes] = dart.notNull(this[_remainingLenBytes]) - 1;
           if (this[_remainingLenBytes] == 0) {
@@ -51296,7 +51299,7 @@
           }
         }
       } else {
-        if (this[_state] == io._WebSocketProtocolTransformer.MASK) {
+        if (this[_state$1] == io._WebSocketProtocolTransformer.MASK) {
           this[_maskingBytes][dartx._set](4 - (() => {
             let x = this[_remainingMaskingKeyBytes];
             this[_remainingMaskingKeyBytes] = dart.notNull(x) - 1;
@@ -51306,7 +51309,7 @@
             this[_maskDone]();
           }
         } else {
-          dart.assert(this[_state] == io._WebSocketProtocolTransformer.PAYLOAD);
+          dart.assert(this[_state$1] == io._WebSocketProtocolTransformer.PAYLOAD);
           let payloadLength = math.min(core.int)(dart.notNull(lastIndex) - dart.notNull(index), this[_remainingPayloadBytes]);
           this[_remainingPayloadBytes] = dart.notNull(this[_remainingPayloadBytes]) - dart.notNull(payloadLength);
           if (dart.test(this[_masked])) {
@@ -51372,7 +51375,7 @@
       if (!dart.test(this[_serverSide])) {
         dart.throw(new io.WebSocketException("Received masked frame from server"));
       }
-      this[_state] = io._WebSocketProtocolTransformer.MASK;
+      this[_state$1] = io._WebSocketProtocolTransformer.MASK;
     } else {
       if (dart.test(this[_serverSide])) {
         dart.throw(new io.WebSocketException("Received unmasked frame from client"));
@@ -51391,18 +51394,18 @@
         switch (this[_opcode]) {
           case io._WebSocketOpcode.CLOSE:
           {
-            this[_state] = io._WebSocketProtocolTransformer.CLOSED;
-            this[_eventSink].close();
+            this[_state$1] = io._WebSocketProtocolTransformer.CLOSED;
+            this[_eventSink$].close();
             break;
           }
           case io._WebSocketOpcode.PING:
           {
-            this[_eventSink].add(new io._WebSocketPing());
+            this[_eventSink$].add(new io._WebSocketPing());
             break;
           }
           case io._WebSocketOpcode.PONG:
           {
-            this[_eventSink].add(new io._WebSocketPong());
+            this[_eventSink$].add(new io._WebSocketPong());
             break;
           }
         }
@@ -51411,7 +51414,7 @@
         this[_messageFrameEnd]();
       }
     } else {
-      this[_state] = io._WebSocketProtocolTransformer.PAYLOAD;
+      this[_state$1] = io._WebSocketProtocolTransformer.PAYLOAD;
     }
   }
   [_messageFrameEnd]() {
@@ -51423,12 +51426,12 @@
       switch (this[_currentMessageType]) {
         case io._WebSocketMessageType.TEXT:
         {
-          this[_eventSink].add(convert.UTF8.decode(bytes));
+          this[_eventSink$].add(convert.UTF8.decode(bytes));
           break;
         }
         case io._WebSocketMessageType.BINARY:
         {
-          this[_eventSink].add(bytes);
+          this[_eventSink$].add(bytes);
           break;
         }
       }
@@ -51454,18 +51457,18 @@
             this.closeReason = convert.UTF8.decode(payload[dartx.sublist](2));
           }
         }
-        this[_state] = io._WebSocketProtocolTransformer.CLOSED;
-        this[_eventSink].close();
+        this[_state$1] = io._WebSocketProtocolTransformer.CLOSED;
+        this[_eventSink$].close();
         break;
       }
       case io._WebSocketOpcode.PING:
       {
-        this[_eventSink].add(new io._WebSocketPing(this[_payload].takeBytes()));
+        this[_eventSink$].add(new io._WebSocketPing(this[_payload].takeBytes()));
         break;
       }
       case io._WebSocketOpcode.PONG:
       {
-        this[_eventSink].add(new io._WebSocketPong(this[_payload].takeBytes()));
+        this[_eventSink$].add(new io._WebSocketPong(this[_payload].takeBytes()));
         break;
       }
     }
@@ -51475,7 +51478,7 @@
     return this[_opcode] == io._WebSocketOpcode.CLOSE || this[_opcode] == io._WebSocketOpcode.PING || this[_opcode] == io._WebSocketOpcode.PONG;
   }
   [_prepareForNextFrame]() {
-    if (this[_state] != io._WebSocketProtocolTransformer.CLOSED && this[_state] != io._WebSocketProtocolTransformer.FAILURE) this[_state] = io._WebSocketProtocolTransformer.START;
+    if (this[_state$1] != io._WebSocketProtocolTransformer.CLOSED && this[_state$1] != io._WebSocketProtocolTransformer.FAILURE) this[_state$1] = io._WebSocketProtocolTransformer.START;
     this[_fin] = false;
     this[_opcode] = -1;
     this[_len] = -1;
@@ -51489,7 +51492,7 @@
 dart.setSignature(io._WebSocketProtocolTransformer, {
   constructors: () => ({new: dart.definiteFunctionType(io._WebSocketProtocolTransformer, [], [core.bool, io._WebSocketPerMessageDeflate])}),
   fields: () => ({
-    [_state]: core.int,
+    [_state$1]: core.int,
     [_fin]: core.bool,
     [_compressed]: core.bool,
     [_opcode]: core.int,
@@ -51502,7 +51505,7 @@
     [_currentMessageType]: core.int,
     closeCode: core.int,
     closeReason: core.String,
-    [_eventSink]: async.EventSink,
+    [_eventSink$]: async.EventSink,
     [_serverSide]: core.bool,
     [_maskingBytes]: core.List,
     [_payload]: io.BytesBuilder,
@@ -51573,17 +51576,17 @@
 const _compression = Symbol('_compression');
 io._WebSocketTransformerImpl = class _WebSocketTransformerImpl extends core.Object {
   new(protocolSelector, compression) {
-    this[_controller] = StreamControllerOfWebSocket().new({sync: true});
+    this[_controller$0] = StreamControllerOfWebSocket().new({sync: true});
     this[_protocolSelector] = protocolSelector;
     this[_compression] = compression;
   }
   bind(stream) {
     stream.listen(dart.fn(request => {
-      io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller], 'addError'));
+      io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller$0].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
     }, HttpRequestToNull()), {onDone: dart.fn(() => {
-        this[_controller].close();
+        this[_controller$0].close();
       }, VoidToNull())});
-    return this[_controller].stream;
+    return this[_controller$0].stream;
   }
   static _upgrade(request, _protocolSelector, compression) {
     let response = request.response;
@@ -51612,16 +51615,16 @@
     let protocols = request.headers._get('Sec-WebSocket-Protocol');
     if (protocols != null && _protocolSelector != null) {
       protocols = io._HttpParser._tokenizeFieldValue(protocols[dartx.join](', '));
-      return async.Future.new(dart.fn(() => dart.dcall(_protocolSelector, protocols), VoidTodynamic())).then(dart.dynamic)(dart.fn(protocol => {
+      return async.Future.new(dart.fn(() => dart.dcall(_protocolSelector, protocols), VoidTodynamic$())).then(dart.dynamic)(dart.fn(protocol => {
         if (dart.notNull(protocols[dartx.indexOf](core.String._check(protocol))) < 0) {
           dart.throw(new io.WebSocketException("Selected protocol is not in the list of available protocols"));
         }
         return protocol;
-      }, dynamicTodynamic())).catchError(dart.fn(error => {
+      }, dynamicTodynamic$())).catchError(dart.fn(error => {
         response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
         response.close();
         dart.throw(error);
-      }, dynamicToNull())).then(io.WebSocket)(upgrade);
+      }, dynamicToNull$())).then(io.WebSocket)(upgrade);
     } else {
       return FutureOfWebSocket()._check(upgrade(null));
     }
@@ -51672,7 +51675,7 @@
 dart.setSignature(io._WebSocketTransformerImpl, {
   constructors: () => ({new: dart.definiteFunctionType(io._WebSocketTransformerImpl, [core.Function, io.CompressionOptions])}),
   fields: () => ({
-    [_controller]: StreamControllerOfWebSocket(),
+    [_controller$0]: StreamControllerOfWebSocket(),
     [_protocolSelector]: core.Function,
     [_compression]: io.CompressionOptions
   }),
@@ -51686,7 +51689,7 @@
 });
 const _ensureDecoder = Symbol('_ensureDecoder');
 const _ensureEncoder = Symbol('_ensureEncoder');
-let const;
+let const$80;
 io._WebSocketPerMessageDeflate = class _WebSocketPerMessageDeflate extends core.Object {
   new(opts) {
     let clientMaxWindowBits = opts && 'clientMaxWindowBits' in opts ? opts.clientMaxWindowBits : io._WebSocketImpl.DEFAULT_WINDOW_BITS;
@@ -51716,7 +51719,7 @@
     this[_ensureDecoder]();
     let data = [];
     data[dartx.addAll](msg);
-    data[dartx.addAll](const || (const = dart.constList([0, 0, 255, 255], core.int)));
+    data[dartx.addAll](const$80 || (const$80 = dart.constList([0, 0, 255, 255], core.int)));
     this.decoder.process(ListOfint()._check(data), 0, data[dartx.length]);
     let result = [];
     let out = null;
@@ -51780,16 +51783,16 @@
 io._WebSocketOutgoingTransformer = class _WebSocketOutgoingTransformer extends core.Object {
   new(webSocket) {
     this.webSocket = webSocket;
-    this[_eventSink] = null;
+    this[_eventSink$] = null;
     this[_deflateHelper] = null;
     this[_deflateHelper] = this.webSocket[_deflate];
   }
   bind(stream) {
     return StreamOfListOfint().eventTransformed(stream, dart.fn(eventSink => {
-      if (this[_eventSink] != null) {
+      if (this[_eventSink$] != null) {
         dart.throw(new core.StateError("WebSocket transformer already used"));
       }
-      this[_eventSink] = eventSink;
+      this[_eventSink$] = eventSink;
       return this;
     }, EventSinkOfListOfintTo_WebSocketOutgoingTransformer()));
   }
@@ -51826,7 +51829,7 @@
   }
   addError(error, stackTrace) {
     if (stackTrace === void 0) stackTrace = null;
-    this[_eventSink].addError(error, stackTrace);
+    this[_eventSink$].addError(error, stackTrace);
   }
   close() {
     let code = this.webSocket[_outCloseCode];
@@ -51841,11 +51844,11 @@
       }
     }
     this.addFrame(io._WebSocketOpcode.CLOSE, data);
-    this[_eventSink].close();
+    this[_eventSink$].close();
   }
   addFrame(opcode, data) {
     return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
-      this[_eventSink].add(e);
+      this[_eventSink$].add(e);
     }, ListOfintToNull()));
   }
   static createFrame(opcode, data, serverSide, compressed) {
@@ -51927,7 +51930,7 @@
   constructors: () => ({new: dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [io._WebSocketImpl])}),
   fields: () => ({
     webSocket: io._WebSocketImpl,
-    [_eventSink]: EventSinkOfListOfint(),
+    [_eventSink$]: EventSinkOfListOfint(),
     [_deflateHelper]: io._WebSocketPerMessageDeflate
   }),
   methods: () => ({
@@ -51942,70 +51945,70 @@
 });
 const _issuedPause = Symbol('_issuedPause');
 const _completer = Symbol('_completer');
-const _onListen = Symbol('_onListen');
-const _onPause = Symbol('_onPause');
-const _onResume = Symbol('_onResume');
-const _cancel = Symbol('_cancel');
-const _done = Symbol('_done');
+const _onListen$ = Symbol('_onListen');
+const _onPause$ = Symbol('_onPause');
+const _onResume$ = Symbol('_onResume');
+const _cancel$ = Symbol('_cancel');
+const _done$ = Symbol('_done');
 const _ensureController = Symbol('_ensureController');
 io._WebSocketConsumer = class _WebSocketConsumer extends core.Object {
   new(webSocket, socket) {
     this[_closeCompleter] = async.Completer.new();
     this.webSocket = webSocket;
     this.socket = socket;
-    this[_controller] = null;
-    this[_subscription] = null;
+    this[_controller$0] = null;
+    this[_subscription$] = null;
     this[_issuedPause] = false;
     this[_closed] = false;
     this[_completer] = null;
   }
-  [_onListen]() {
-    if (this[_subscription] != null) {
-      this[_subscription].cancel();
+  [_onListen$]() {
+    if (this[_subscription$] != null) {
+      this[_subscription$].cancel();
     }
   }
-  [_onPause]() {
-    if (this[_subscription] != null) {
-      this[_subscription].pause();
+  [_onPause$]() {
+    if (this[_subscription$] != null) {
+      this[_subscription$].pause();
     } else {
       this[_issuedPause] = true;
     }
   }
-  [_onResume]() {
-    if (this[_subscription] != null) {
-      this[_subscription].resume();
+  [_onResume$]() {
+    if (this[_subscription$] != null) {
+      this[_subscription$].resume();
     } else {
       this[_issuedPause] = false;
     }
   }
-  [_cancel]() {
-    if (this[_subscription] != null) {
-      let subscription = this[_subscription];
-      this[_subscription] = null;
+  [_cancel$]() {
+    if (this[_subscription$] != null) {
+      let subscription = this[_subscription$];
+      this[_subscription$] = null;
       subscription.cancel();
     }
   }
   [_ensureController]() {
-    if (this[_controller] != null) return;
-    this[_controller] = async.StreamController.new({sync: true, onPause: dart.bind(this, _onPause), onResume: dart.bind(this, _onResume), onCancel: dart.bind(this, _onListen)});
-    let stream = this[_controller].stream.transform(ListOfint())(new io._WebSocketOutgoingTransformer(this.webSocket));
+    if (this[_controller$0] != null) return;
+    this[_controller$0] = async.StreamController.new({sync: true, onPause: dart.bind(this, _onPause$), onResume: dart.bind(this, _onResume$), onCancel: dart.bind(this, _onListen$)});
+    let stream = this[_controller$0].stream.transform(ListOfint())(new io._WebSocketOutgoingTransformer(this.webSocket));
     this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
-      this[_done]();
+      this[_done$]();
       this[_closeCompleter].complete(this.webSocket);
-    }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
+    }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
         this[_closed] = true;
-        this[_cancel]();
+        this[_cancel$]();
         if (core.ArgumentError.is(error)) {
-          if (!dart.test(this[_done](error, stackTrace))) {
+          if (!dart.test(this[_done$](error, stackTrace))) {
             this[_closeCompleter].completeError(error, stackTrace);
           }
         } else {
-          this[_done]();
+          this[_done$]();
           this[_closeCompleter].complete(this.webSocket);
         }
       }, dynamicAndStackTraceToNull())});
   }
-  [_done](error, stackTrace) {
+  [_done$](error, stackTrace) {
     if (error === void 0) error = null;
     if (stackTrace === void 0) stackTrace = null;
     if (this[_completer] == null) return false;
@@ -52024,11 +52027,11 @@
     }
     this[_ensureController]();
     this[_completer] = async.Completer.new();
-    this[_subscription] = stream.listen(dart.fn(data => {
-      this[_controller].add(data);
-    }, dynamicToNull()), {onDone: dart.bind(this, _done), onError: dart.bind(this, _done), cancelOnError: true});
+    this[_subscription$] = stream.listen(dart.fn(data => {
+      this[_controller$0].add(data);
+    }, dynamicToNull$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
     if (dart.test(this[_issuedPause])) {
-      this[_subscription].pause();
+      this[_subscription$].pause();
       this[_issuedPause] = false;
     }
     return this[_completer].future;
@@ -52037,20 +52040,20 @@
     this[_ensureController]();
     const closeSocket = (function() {
       return this.socket.close().catchError(dart.fn(_ => {
-      }, dynamicToNull())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
+      }, dynamicToNull$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
     }).bind(this);
     dart.fn(closeSocket, VoidToFuture());
-    this[_controller].close();
+    this[_controller$0].close();
     return this[_closeCompleter].future.then(dart.dynamic)(dart.fn(_ => closeSocket(), dynamicToFuture()));
   }
   add(data) {
     if (dart.test(this[_closed])) return;
     this[_ensureController]();
-    this[_controller].add(data);
+    this[_controller$0].add(data);
   }
   closeSocket() {
     this[_closed] = true;
-    this[_cancel]();
+    this[_cancel$]();
     this.close();
   }
 };
@@ -52060,20 +52063,20 @@
   fields: () => ({
     webSocket: io._WebSocketImpl,
     socket: io.Socket,
-    [_controller]: async.StreamController,
-    [_subscription]: async.StreamSubscription,
+    [_controller$0]: async.StreamController,
+    [_subscription$]: async.StreamSubscription,
     [_issuedPause]: core.bool,
     [_closed]: core.bool,
     [_closeCompleter]: async.Completer,
     [_completer]: async.Completer
   }),
   methods: () => ({
-    [_onListen]: dart.definiteFunctionType(dart.void, []),
-    [_onPause]: dart.definiteFunctionType(dart.void, []),
-    [_onResume]: dart.definiteFunctionType(dart.void, []),
-    [_cancel]: dart.definiteFunctionType(dart.void, []),
+    [_onListen$]: dart.definiteFunctionType(dart.void, []),
+    [_onPause$]: dart.definiteFunctionType(dart.void, []),
+    [_onResume$]: dart.definiteFunctionType(dart.void, []),
+    [_cancel$]: dart.definiteFunctionType(dart.void, []),
     [_ensureController]: dart.definiteFunctionType(dart.dynamic, []),
-    [_done]: dart.definiteFunctionType(core.bool, [], [dart.dynamic, core.StackTrace]),
+    [_done$]: dart.definiteFunctionType(core.bool, [], [dart.dynamic, core.StackTrace]),
     addStream: dart.definiteFunctionType(async.Future, [async.Stream]),
     close: dart.definiteFunctionType(async.Future, []),
     add: dart.definiteFunctionType(dart.void, [dart.dynamic]),
@@ -52088,7 +52091,7 @@
 const _pingTimer = Symbol('_pingTimer');
 const _consumer = Symbol('_consumer');
 const _closeTimer = Symbol('_closeTimer');
-let const;
+let const$81;
 io._WebSocketImpl = class _WebSocketImpl extends dart.mixin(async.Stream, io._ServiceObject) {
   static connect(url, protocols, headers, opts) {
     let compression = opts && 'compression' in opts ? opts.compression : io.CompressionOptions.DEFAULT;
@@ -52131,8 +52134,8 @@
         }, SocketToNull()));
         dart.throw(new io.WebSocketException(message));
       }
-      dart.fn(error, StringTovoid());
-      if (response.statusCode != io.HttpStatus.SWITCHING_PROTOCOLS || response.headers._get(io.HttpHeaders.CONNECTION) == null || !dart.test(response.headers._get(io.HttpHeaders.CONNECTION)[dartx.any](dart.fn(value => value[dartx.toLowerCase]() == "upgrade", StringTobool()))) || response.headers.value(io.HttpHeaders.UPGRADE)[dartx.toLowerCase]() != "websocket") {
+      dart.fn(error, StringTovoid$());
+      if (response.statusCode != io.HttpStatus.SWITCHING_PROTOCOLS || response.headers._get(io.HttpHeaders.CONNECTION) == null || !dart.test(response.headers._get(io.HttpHeaders.CONNECTION)[dartx.any](dart.fn(value => value[dartx.toLowerCase]() == "upgrade", StringTobool$()))) || response.headers.value(io.HttpHeaders.UPGRADE)[dartx.toLowerCase]() != "websocket") {
         error(dart.str`Connection to '${uri}' was not upgraded to websocket`);
       }
       let accept = response.headers.value("Sec-WebSocket-Accept");
@@ -52170,9 +52173,9 @@
         if (o == null) {
           return io._WebSocketImpl.DEFAULT_WINDOW_BITS;
         }
-        return core.int.parse(o, {onError: dart.fn(s => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint())});
+        return core.int.parse(o, {onError: dart.fn(s => io._WebSocketImpl.DEFAULT_WINDOW_BITS, StringToint$())});
       }
-      dart.fn(getWindowBits, StringToint());
+      dart.fn(getWindowBits, StringToint$());
       return new io._WebSocketPerMessageDeflate({clientMaxWindowBits: getWindowBits(io._clientMaxWindowBits), serverMaxWindowBits: getWindowBits(io._serverMaxWindowBits), clientNoContextTakeover: clientNoContextTakeover, serverNoContextTakeover: serverNoContextTakeover});
     }
     return null;
@@ -52183,9 +52186,9 @@
     this[_socket] = socket;
     this.protocol = protocol;
     this[_serverSide] = serverSide;
-    this[_controller] = null;
-    this[_subscription] = null;
-    this[_sink] = null;
+    this[_controller$0] = null;
+    this[_subscription$] = null;
+    this[_sink$0] = null;
     this[_readyState] = io.WebSocket.CONNECTING;
     this[_writeClosed] = false;
     this[_closeCode] = null;
@@ -52199,48 +52202,48 @@
     this[_deflate] = null;
     super.new();
     this[_consumer] = new io._WebSocketConsumer(this, io.Socket._check(this[_socket]));
-    this[_sink] = new io._StreamSinkImpl(this[_consumer]);
+    this[_sink$0] = new io._StreamSinkImpl(this[_consumer]);
     this[_readyState] = io.WebSocket.OPEN;
     this[_deflate] = deflate;
     let transformer = new io._WebSocketProtocolTransformer(this[_serverSide], this[_deflate]);
-    this[_subscription] = async.StreamSubscription._check(dart.dsend(dart.dsend(this[_socket], 'transform', transformer), 'listen', dart.fn(data => {
+    this[_subscription$] = async.StreamSubscription._check(dart.dsend(dart.dsend(this[_socket], 'transform', transformer), 'listen', dart.fn(data => {
       if (io._WebSocketPing.is(data)) {
         if (!dart.test(this[_writeClosed])) this[_consumer].add(new io._WebSocketPong(data.payload));
       } else if (io._WebSocketPong.is(data)) {
         this.pingInterval = this[_pingInterval];
       } else {
-        this[_controller].add(data);
+        this[_controller$0].add(data);
       }
-    }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
+    }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
         if (this[_closeTimer] != null) this[_closeTimer].cancel();
         if (core.FormatException.is(error)) {
-          this[_close](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
+          this[_close$0](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
         } else {
-          this[_close](io.WebSocketStatus.PROTOCOL_ERROR);
+          this[_close$0](io.WebSocketStatus.PROTOCOL_ERROR);
         }
         this[_closeCode] = this[_outCloseCode];
         this[_closeReason] = this[_outCloseReason];
-        this[_controller].close();
+        this[_controller$0].close();
       }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
         if (this[_closeTimer] != null) this[_closeTimer].cancel();
         if (this[_readyState] == io.WebSocket.OPEN) {
           this[_readyState] = io.WebSocket.CLOSING;
           if (!dart.test(io._WebSocketImpl._isReservedStatusCode(transformer.closeCode))) {
-            this[_close](transformer.closeCode, transformer.closeReason);
+            this[_close$0](transformer.closeCode, transformer.closeReason);
           } else {
-            this[_close]();
+            this[_close$0]();
           }
           this[_readyState] = io.WebSocket.CLOSED;
         }
         this[_closeCode] = transformer.closeCode;
         this[_closeReason] = transformer.closeReason;
-        this[_controller].close();
+        this[_controller$0].close();
       }, VoidToNull()), cancelOnError: true}));
-    this[_subscription].pause();
-    this[_controller] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription], 'resume'), onCancel: dart.fn(() => {
-        this[_subscription].cancel();
-        this[_subscription] = null;
-      }, VoidToNull()), onPause: dart.bind(this[_subscription], 'pause'), onResume: dart.bind(this[_subscription], 'resume')});
+    this[_subscription$].pause();
+    this[_controller$0] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$], 'resume'), onCancel: dart.fn(() => {
+        this[_subscription$].cancel();
+        this[_subscription$] = null;
+      }, VoidToNull()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
     io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
     try {
       dart.dput(this[_socket], _owner, this);
@@ -52252,7 +52255,7 @@
     let onError = opts && 'onError' in opts ? opts.onError : null;
     let onDone = opts && 'onDone' in opts ? opts.onDone : null;
     let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-    return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   get pingInterval() {
     return this[_pingInterval];
@@ -52266,7 +52269,7 @@
       if (dart.test(this[_writeClosed])) return;
       this[_consumer].add(new io._WebSocketPing());
       this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
-        this[_close](io.WebSocketStatus.GOING_AWAY);
+        this[_close$0](io.WebSocketStatus.GOING_AWAY);
       }, VoidToNull()));
     }, VoidToNull()));
   }
@@ -52283,17 +52286,17 @@
     return this[_closeReason];
   }
   add(data) {
-    this[_sink].add(data);
+    this[_sink$0].add(data);
   }
   addError(error, stackTrace) {
     if (stackTrace === void 0) stackTrace = null;
-    this[_sink].addError(error, stackTrace);
+    this[_sink$0].addError(error, stackTrace);
   }
   addStream(stream) {
-    return this[_sink].addStream(stream);
+    return this[_sink$0].addStream(stream);
   }
   get done() {
-    return this[_sink].done;
+    return this[_sink$0].done;
   }
   close(code, reason) {
     if (code === void 0) code = null;
@@ -52305,23 +52308,23 @@
       this[_outCloseCode] = code;
       this[_outCloseReason] = reason;
     }
-    if (!dart.test(this[_controller].isClosed)) {
-      if (!dart.test(this[_controller].hasListener) && this[_subscription] != null) {
-        this[_controller].stream.drain(dart.dynamic)().catchError(dart.fn(_ => dart.map(), dynamicToMap()));
+    if (!dart.test(this[_controller$0].isClosed)) {
+      if (!dart.test(this[_controller$0].hasListener) && this[_subscription$] != null) {
+        this[_controller$0].stream.drain(dart.dynamic)().catchError(dart.fn(_ => dart.map(), dynamicToMap()));
       }
       if (this[_closeTimer] == null) {
-        this[_closeTimer] = async.Timer.new(const || (const = dart.const(new core.Duration({seconds: 5}))), dart.fn(() => {
+        this[_closeTimer] = async.Timer.new(const$81 || (const$81 = dart.const(new core.Duration({seconds: 5}))), dart.fn(() => {
           this[_closeCode] = this[_outCloseCode];
           this[_closeReason] = this[_outCloseReason];
-          if (this[_subscription] != null) this[_subscription].cancel();
-          this[_controller].close();
+          if (this[_subscription$] != null) this[_subscription$].cancel();
+          this[_controller$0].close();
           io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
         }, VoidToNull()));
       }
     }
-    return this[_sink].close();
+    return this[_sink$0].close();
   }
-  [_close](code, reason) {
+  [_close$0](code, reason) {
     if (code === void 0) code = null;
     if (reason === void 0) reason = null;
     if (dart.test(this[_writeClosed])) return;
@@ -52339,14 +52342,14 @@
   get [_serviceTypeName]() {
     return 'WebSocket';
   }
-  [_toJSON](ref) {
+  [_toJSON$](ref) {
     let name = dart.str`${dart.dload(dart.dload(this[_socket], 'address'), 'host')}:${dart.dload(this[_socket], 'port')}`;
     let r = dart.map({id: this[_servicePath], type: this[_serviceType](ref), name: name, user_name: name}, core.String, dart.dynamic);
     if (dart.test(ref)) {
       return r;
     }
     try {
-      r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON, true));
+      r[dartx._set]('socket', dart.dsend(this[_socket], _toJSON$, true));
     } catch (_) {
       r[dartx._set]('socket', dart.map({id: this[_servicePath], type: '@Socket', name: 'UserSocket', user_name: 'UserSocket'}, core.String, core.String));
     }
@@ -52364,9 +52367,9 @@
   constructors: () => ({_fromSocket: dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic, core.String, io.CompressionOptions], [core.bool, io._WebSocketPerMessageDeflate])}),
   fields: () => ({
     protocol: core.String,
-    [_controller]: async.StreamController,
-    [_subscription]: async.StreamSubscription,
-    [_sink]: async.StreamSink,
+    [_controller$0]: async.StreamController,
+    [_subscription$]: async.StreamSubscription,
+    [_sink$0]: async.StreamSink,
     [_socket]: dart.dynamic,
     [_serverSide]: core.bool,
     [_readyState]: core.int,
@@ -52398,8 +52401,8 @@
     addError: dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace]),
     addStream: dart.definiteFunctionType(async.Future, [async.Stream]),
     close: dart.definiteFunctionType(async.Future, [], [core.int, core.String]),
-    [_close]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
-    [_toJSON]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
+    [_close$0]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
+    [_toJSON$]: dart.definiteFunctionType(core.Map$(core.String, dart.dynamic), [core.bool])
   }),
   sfields: () => ({
     _webSockets: MapOfint$_WebSocketImpl(),
@@ -52552,7 +52555,7 @@
       let error = new isolate.RemoteError(errorDescription, stackDescription);
       controller.addError(error, error.stackTrace);
     }
-    dart.fn(handleError, dynamicTovoid());
+    dart.fn(handleError, dynamicTovoid$());
     controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
         port = isolate.RawReceivePort.new(handleError);
         this.addErrorListener(port.sendPort);
@@ -52668,19 +52671,19 @@
     stackTrace: core.StackTrace
   })
 });
-const _trace = Symbol('_trace');
+const _trace$ = Symbol('_trace');
 isolate._RemoteStackTrace = class _RemoteStackTrace extends core.Object {
   new(trace) {
-    this[_trace] = trace;
+    this[_trace$] = trace;
   }
   toString() {
-    return this[_trace];
+    return this[_trace$];
   }
 };
 isolate._RemoteStackTrace[dart.implements] = () => [core.StackTrace];
 dart.setSignature(isolate._RemoteStackTrace, {
   constructors: () => ({new: dart.definiteFunctionType(isolate._RemoteStackTrace, [core.String])}),
-  fields: () => ({[_trace]: core.String})
+  fields: () => ({[_trace$]: core.String})
 });
 isolate.Capability = class Capability extends core.Object {
   static new() {
@@ -52749,7 +52752,7 @@
         return js._convertToJS(o);
       }
     }
-    dart.fn(_convert, dynamicTodynamic());
+    dart.fn(_convert, dynamicTodynamic$());
     return _convert(data);
   }
   _get(property) {
@@ -52998,7 +53001,7 @@
 js._isBrowserType = function(o) {
   return o instanceof Object && (o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || window.IDBKeyRange && o instanceof IDBKeyRange || o instanceof ImageData || o instanceof Node || window.Int8Array && o instanceof Int8Array.__proto__ || o instanceof Window);
 };
-dart.fn(js._isBrowserType, dynamicTobool());
+dart.fn(js._isBrowserType, dynamicTobool$());
 const _dartObj = Symbol('_dartObj');
 js._DartObject = class _DartObject extends core.Object {
   new(dartObj) {
@@ -53022,7 +53025,7 @@
     return js._putIfAbsent(js._jsProxies, o, dart.fn(o => new js._DartObject(o), dynamicTo_DartObject()));
   }
 };
-dart.fn(js._convertToJS, dynamicTodynamic());
+dart.fn(js._convertToJS, dynamicTodynamic$());
 js._wrapDartFunction = function(f) {
   let wrapper = function() {
     let args = Array.prototype.map.call(arguments, js._convertToDart);
@@ -53031,7 +53034,7 @@
   js._dartProxies.set(wrapper, f);
   return wrapper;
 };
-dart.fn(js._wrapDartFunction, dynamicTodynamic());
+dart.fn(js._wrapDartFunction, dynamicTodynamic$());
 js._convertToDart = function(o) {
   if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean" || dart.test(js._isBrowserType(o))) {
     return o;
@@ -53111,7 +53114,7 @@
   }
   return js_util._convertDataTree(object);
 };
-dart.fn(js_util.jsify, dynamicTodynamic());
+dart.fn(js_util.jsify, dynamicTodynamic$());
 js_util._convertDataTree = function(data) {
   let _convertedObjects = collection.HashMap.identity();
   function _convert(o) {
@@ -53134,22 +53137,22 @@
       return o;
     }
   }
-  dart.fn(_convert, dynamicTodynamic());
+  dart.fn(_convert, dynamicTodynamic$());
   return _convert(data);
 };
-dart.fn(js_util._convertDataTree, dynamicTodynamic());
+dart.fn(js_util._convertDataTree, dynamicTodynamic$());
 js_util.newObject = function() {
   return {};
 };
-dart.fn(js_util.newObject, VoidTodynamic());
+dart.fn(js_util.newObject, VoidTodynamic$());
 js_util.hasProperty = function(o, name) {
   return name in o;
 };
-dart.fn(js_util.hasProperty, dynamicAnddynamicTodynamic());
+dart.fn(js_util.hasProperty, dynamicAnddynamicTodynamic$());
 js_util.getProperty = function(o, name) {
   return o[name];
 };
-dart.fn(js_util.getProperty, dynamicAnddynamicTodynamic());
+dart.fn(js_util.getProperty, dynamicAnddynamicTodynamic$());
 js_util.setProperty = function(o, name, value) {
   return o[name] = value;
 };
@@ -53227,7 +53230,7 @@
     return Math.max(_js_helper.checkNum(a), _js_helper.checkNum(b));
   };
 };
-dart.fn(math.max, TAndTToT());
+dart.fn(math.max, TAndTToT$());
 math.atan2 = function(a, b) {
   return Math.atan2(_js_helper.checkNum(a), _js_helper.checkNum(b));
 };
@@ -53423,11 +53426,11 @@
 math._Random._POW2_53_D = 1.0 * 9007199254740992;
 math._Random._POW2_27_D = 1.0 * (1 << 27);
 math._Random._MASK32 = 4294967295;
-const _buffer = Symbol('_buffer');
+const _buffer$0 = Symbol('_buffer');
 const _getRandomBytes = Symbol('_getRandomBytes');
 math._JSSecureRandom = class _JSSecureRandom extends core.Object {
   new() {
-    this[_buffer] = typed_data.ByteData.new(8);
+    this[_buffer$0] = typed_data.ByteData.new(8);
     let crypto = self.crypto;
     if (crypto != null) {
       let getRandomValues = crypto.getRandomValues;
@@ -53438,18 +53441,18 @@
     dart.throw(new core.UnsupportedError("No source of cryptographically secure random numbers available."));
   }
   [_getRandomBytes](start, length) {
-    crypto.getRandomValues(this[_buffer][dartx.buffer][dartx.asUint8List](start, length));
+    crypto.getRandomValues(this[_buffer$0][dartx.buffer][dartx.asUint8List](start, length));
   }
   nextBool() {
     this[_getRandomBytes](0, 1);
-    return this[_buffer][dartx.getUint8](0)[dartx.isOdd];
+    return this[_buffer$0][dartx.getUint8](0)[dartx.isOdd];
   }
   nextDouble() {
     this[_getRandomBytes](1, 7);
-    this[_buffer][dartx.setUint8](0, 63);
-    let highByte = this[_buffer][dartx.getUint8](1);
-    this[_buffer][dartx.setUint8](1, (dart.notNull(highByte) | 240) >>> 0);
-    let result = dart.notNull(this[_buffer][dartx.getFloat64](0)) - 1.0;
+    this[_buffer$0][dartx.setUint8](0, 63);
+    let highByte = this[_buffer$0][dartx.getUint8](1);
+    this[_buffer$0][dartx.setUint8](1, (dart.notNull(highByte) | 240) >>> 0);
+    let result = dart.notNull(this[_buffer$0][dartx.getFloat64](0)) - 1.0;
     if ((dart.notNull(highByte) & 16) != 0) {
       result = result + 1.1102230246251565e-16;
     }
@@ -53469,12 +53472,12 @@
         }
       }
     }
-    this[_buffer][dartx.setUint32](0, 0);
+    this[_buffer$0][dartx.setUint32](0, 0);
     let start = 4 - byteCount;
     let randomLimit = dart.asInt(math.pow(256, byteCount));
     while (true) {
       this[_getRandomBytes](start, byteCount);
-      let random = this[_buffer][dartx.getUint32](0);
+      let random = this[_buffer$0][dartx.getUint32](0);
       if ((dart.notNull(max) & dart.notNull(max) - 1) == 0) {
         return (dart.notNull(random) & dart.notNull(max) - 1) >>> 0;
       }
@@ -53488,7 +53491,7 @@
 math._JSSecureRandom[dart.implements] = () => [math.Random];
 dart.setSignature(math._JSSecureRandom, {
   constructors: () => ({new: dart.definiteFunctionType(math._JSSecureRandom, [])}),
-  fields: () => ({[_buffer]: typed_data.ByteData}),
+  fields: () => ({[_buffer$0]: typed_data.ByteData}),
   methods: () => ({
     [_getRandomBytes]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
     nextBool: dart.definiteFunctionType(core.bool, []),
@@ -53585,12 +53588,12 @@
   });
   return Point;
 });
-math.Point = Point();
-let const;
+math.Point = Point$();
+let const$82;
 math.Random = class Random extends core.Object {
   static new(seed) {
     if (seed === void 0) seed = null;
-    return seed == null ? const || (const = dart.const(new math._JSRandom())) : new math._Random(seed);
+    return seed == null ? const$82 || (const$82 = dart.const(new math._JSRandom())) : new math._Random(seed);
   }
   static secure() {
     return math.Random._secureRandom;
@@ -54432,25 +54435,25 @@
     }
     return false;
   }
-  dart.fn(containsDate, dynamicTobool());
+  dart.fn(containsDate, dynamicTobool$());
   if (dart.test(containsDate(nativeKey))) {
     dart.throw(new core.UnimplementedError('Key containing DateTime'));
   }
   return nativeKey;
 };
-dart.fn(indexed_db._convertNativeToDart_IDBKey, dynamicTodynamic());
+dart.fn(indexed_db._convertNativeToDart_IDBKey, dynamicTodynamic$());
 indexed_db._convertDartToNative_IDBKey = function(dartKey) {
   return dartKey;
 };
-dart.fn(indexed_db._convertDartToNative_IDBKey, dynamicTodynamic());
+dart.fn(indexed_db._convertDartToNative_IDBKey, dynamicTodynamic$());
 indexed_db._convertNativeToDart_IDBAny = function(object) {
   return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: false});
 };
-dart.fn(indexed_db._convertNativeToDart_IDBAny, dynamicTodynamic());
+dart.fn(indexed_db._convertNativeToDart_IDBAny, dynamicTodynamic$());
 indexed_db._idbKey = 'JSExtendableArray|=Object|num|String';
 indexed_db._annotation_Creates_IDBKey = dart.const(new _js_helper.Creates(indexed_db._idbKey));
 indexed_db._annotation_Returns_IDBKey = dart.const(new _js_helper.Returns(indexed_db._idbKey));
-const _delete = Symbol('_delete');
+const _delete$ = Symbol('_delete');
 const _update = Symbol('_update');
 const _update_1 = Symbol('_update_1');
 dart.defineExtensionNames([
@@ -54467,7 +54470,7 @@
 indexed_db.Cursor = class Cursor extends _interceptors.Interceptor {
   [dartx.delete]() {
     try {
-      return indexed_db._completeRequest(dart.dynamic)(this[_delete]());
+      return indexed_db._completeRequest(dart.dynamic)(this[_delete$]());
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
       return async.Future.error(e, stacktrace);
@@ -54512,7 +54515,7 @@
   [dartx.continuePrimaryKey](...args) {
     return this.continuePrimaryKey.apply(this, args);
   }
-  [_delete](...args) {
+  [_delete$](...args) {
     return this.delete.apply(this, args);
   }
   [_update](value) {
@@ -54537,7 +54540,7 @@
     [dartx.next]: dart.definiteFunctionType(dart.void, [], [core.Object]),
     [dartx.advance]: dart.definiteFunctionType(dart.void, [core.int]),
     [dartx.continuePrimaryKey]: dart.definiteFunctionType(dart.void, [core.Object, core.Object]),
-    [_delete]: dart.definiteFunctionType(indexed_db.Request, []),
+    [_delete$]: dart.definiteFunctionType(indexed_db.Request, []),
     [_update]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic]),
     [_update_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic])
   })
@@ -54576,12 +54579,12 @@
   'removeEventListener',
   'dispatchEvent'
 ]);
-html.EventTarget = class EventTarget extends _interceptors.Interceptor {
+html$.EventTarget = class EventTarget extends _interceptors.Interceptor {
   _created() {
     super.new();
   }
   get [dartx.on]() {
-    return new html.Events(this);
+    return new html$.Events(this);
   }
   [dartx.addEventListener](type, listener, useCapture) {
     if (useCapture === void 0) useCapture = null;
@@ -54608,22 +54611,22 @@
     return this.removeEventListener.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.EventTarget, '_created');
-dart.setSignature(html.EventTarget, {
+dart.defineNamedConstructor(html$.EventTarget, '_created');
+dart.setSignature(html$.EventTarget, {
   constructors: () => ({
-    _created: dart.definiteFunctionType(html.EventTarget, []),
-    _: dart.definiteFunctionType(html.EventTarget, [])
+    _created: dart.definiteFunctionType(html$.EventTarget, []),
+    _: dart.definiteFunctionType(html$.EventTarget, [])
   }),
-  getters: () => ({[dartx.on]: dart.definiteFunctionType(html.Events, [])}),
+  getters: () => ({[dartx.on]: dart.definiteFunctionType(html$.Events, [])}),
   methods: () => ({
-    [dartx.addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool]),
-    [dartx.removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool]),
-    [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool]),
-    [dartx.dispatchEvent]: dart.definiteFunctionType(core.bool, [html.Event]),
-    [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool])
+    [dartx.addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    [dartx.removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    [dartx.dispatchEvent]: dart.definiteFunctionType(core.bool, [html$.Event]),
+    [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool])
   })
 });
-dart.registerExtension(dart.global.EventTarget, html.EventTarget);
+dart.registerExtension(dart.global.EventTarget, html$.EventTarget);
 dart.defineExtensionNames([
   'createObjectStore',
   'transaction',
@@ -54640,7 +54643,7 @@
   'objectStoreNames',
   'version'
 ]);
-indexed_db.Database = class Database extends html.EventTarget {
+indexed_db.Database = class Database extends html$.EventTarget {
   [dartx.createObjectStore](name, opts) {
     let keyPath = opts && 'keyPath' in opts ? opts.keyPath : null;
     let autoIncrement = opts && 'autoIncrement' in opts ? opts.autoIncrement : null;
@@ -54734,9 +54737,9 @@
     [dartx.version]: core.Object
   }),
   getters: () => ({
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
     [dartx.onVersionChange]: dart.definiteFunctionType(async.Stream$(indexed_db.VersionChangeEvent), [])
   }),
   methods: () => ({
@@ -54744,7 +54747,7 @@
     [dartx.transaction]: dart.definiteFunctionType(indexed_db.Transaction, [dart.dynamic, core.String]),
     [dartx.transactionStore]: dart.definiteFunctionType(indexed_db.Transaction, [core.String, core.String]),
     [dartx.transactionList]: dart.definiteFunctionType(indexed_db.Transaction, [ListOfString(), core.String]),
-    [dartx.transactionStores]: dart.definiteFunctionType(indexed_db.Transaction, [html.DomStringList, core.String]),
+    [dartx.transactionStores]: dart.definiteFunctionType(indexed_db.Transaction, [html$.DomStringList, core.String]),
     [_transaction]: dart.definiteFunctionType(indexed_db.Transaction, [dart.dynamic, dart.dynamic]),
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
     [_createObjectStore]: dart.definiteFunctionType(indexed_db.ObjectStore, [core.String], [core.Map]),
@@ -54890,9 +54893,9 @@
   };
 };
 dart.lazyFn(indexed_db._completeRequest, () => RequestToFutureOfT());
-const _count = Symbol('_count');
-const _get = Symbol('_get');
-const _getKey = Symbol('_getKey');
+const _count$0 = Symbol('_count');
+const _get$ = Symbol('_get');
+const _getKey$ = Symbol('_getKey');
 const _openCursor = Symbol('_openCursor');
 const _openKeyCursor = Symbol('_openKeyCursor');
 dart.defineExtensionNames([
@@ -54913,7 +54916,7 @@
   [dartx.count](key_OR_range) {
     if (key_OR_range === void 0) key_OR_range = null;
     try {
-      let request = this[_count](key_OR_range);
+      let request = this[_count$0](key_OR_range);
       return indexed_db._completeRequest(core.int)(request);
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
@@ -54923,7 +54926,7 @@
   }
   [dartx.get](key) {
     try {
-      let request = this[_get](key);
+      let request = this[_get$](key);
       return indexed_db._completeRequest(dart.dynamic)(request);
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
@@ -54933,7 +54936,7 @@
   }
   [dartx.getKey](key) {
     try {
-      let request = this[_getKey](key);
+      let request = this[_getKey$](key);
       return indexed_db._completeRequest(dart.dynamic)(request);
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
@@ -55003,10 +55006,10 @@
   get [dartx.unique]() {
     return this.unique;
   }
-  [_count](...args) {
+  [_count$0](...args) {
     return this.count.apply(this, args);
   }
-  [_get](...args) {
+  [_get$](...args) {
     return this.get.apply(this, args);
   }
   [dartx.getAll](...args) {
@@ -55015,7 +55018,7 @@
   [dartx.getAllKeys](...args) {
     return this.getAllKeys.apply(this, args);
   }
-  [_getKey](...args) {
+  [_getKey$](...args) {
     return this.getKey.apply(this, args);
   }
   [_openCursor](...args) {
@@ -55040,11 +55043,11 @@
     [dartx.getKey]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
     [dartx.openCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
     [dartx.openKeyCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.Cursor), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
-    [_count]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
-    [_get]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_count$0]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_get$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
     [dartx.getAll]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
     [dartx.getAllKeys]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
-    [_getKey]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_getKey$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
     [_openCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String]),
     [_openKeyCursor]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.String])
   })
@@ -55112,8 +55115,8 @@
   names: ['bound_', 'lowerBound_', 'only_', 'upperBound_']
 });
 dart.registerExtension(dart.global.IDBKeyRange, indexed_db.KeyRange);
-const _add = Symbol('_add');
-const _clear = Symbol('_clear');
+const _add$3 = Symbol('_add');
+const _clear$0 = Symbol('_clear');
 const _put = Symbol('_put');
 const _createIndex = Symbol('_createIndex');
 const _add_1 = Symbol('_add_1');
@@ -55148,9 +55151,9 @@
     try {
       let request = null;
       if (key != null) {
-        request = this[_add](value, key);
+        request = this[_add$3](value, key);
       } else {
-        request = this[_add](value);
+        request = this[_add$3](value);
       }
       return indexed_db._completeRequest(dart.dynamic)(indexed_db.Request._check(request));
     } catch (e) {
@@ -55161,7 +55164,7 @@
   }
   [dartx.clear]() {
     try {
-      return indexed_db._completeRequest(dart.dynamic)(this[_clear]());
+      return indexed_db._completeRequest(dart.dynamic)(this[_clear$0]());
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
       return async.Future.error(e, stacktrace);
@@ -55170,7 +55173,7 @@
   }
   [dartx.delete](key_OR_keyRange) {
     try {
-      return indexed_db._completeRequest(dart.dynamic)(this[_delete](key_OR_keyRange));
+      return indexed_db._completeRequest(dart.dynamic)(this[_delete$](key_OR_keyRange));
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
       return async.Future.error(e, stacktrace);
@@ -55180,7 +55183,7 @@
   [dartx.count](key_OR_range) {
     if (key_OR_range === void 0) key_OR_range = null;
     try {
-      let request = this[_count](key_OR_range);
+      let request = this[_count$0](key_OR_range);
       return indexed_db._completeRequest(core.int)(request);
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
@@ -55206,7 +55209,7 @@
   }
   [dartx.getObject](key) {
     try {
-      let request = this[_get](key);
+      let request = this[_get$](key);
       return indexed_db._completeRequest(dart.dynamic)(request);
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
@@ -55266,7 +55269,7 @@
   get [dartx.transaction]() {
     return this.transaction;
   }
-  [_add](value, key) {
+  [_add$3](value, key) {
     if (key === void 0) key = null;
     if (key != null) {
       let value_1 = html_common.convertDartToNative_SerializedScriptValue(value);
@@ -55282,10 +55285,10 @@
   [_add_2](...args) {
     return this.add.apply(this, args);
   }
-  [_clear](...args) {
+  [_clear$0](...args) {
     return this.clear.apply(this, args);
   }
-  [_count](...args) {
+  [_count$0](...args) {
     return this.count.apply(this, args);
   }
   [_createIndex](name, keyPath, options) {
@@ -55302,13 +55305,13 @@
   [_createIndex_2](...args) {
     return this.createIndex.apply(this, args);
   }
-  [_delete](...args) {
+  [_delete$](...args) {
     return this.delete.apply(this, args);
   }
   [dartx.deleteIndex](...args) {
     return this.deleteIndex.apply(this, args);
   }
-  [_get](...args) {
+  [_get$](...args) {
     return this.get.apply(this, args);
   }
   [dartx.getAll](...args) {
@@ -55379,17 +55382,17 @@
     [dartx.getObject]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
     [dartx.openCursor]: dart.definiteFunctionType(async.Stream$(indexed_db.CursorWithValue), [], {key: dart.dynamic, range: indexed_db.KeyRange, direction: core.String, autoAdvance: core.bool}),
     [dartx.createIndex]: dart.definiteFunctionType(indexed_db.Index, [core.String, dart.dynamic], {unique: core.bool, multiEntry: core.bool}),
-    [_add]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
+    [_add$3]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic], [dart.dynamic]),
     [_add_1]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic, dart.dynamic]),
     [_add_2]: dart.definiteFunctionType(indexed_db.Request, [dart.dynamic]),
-    [_clear]: dart.definiteFunctionType(indexed_db.Request, []),
-    [_count]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_clear$0]: dart.definiteFunctionType(indexed_db.Request, []),
+    [_count$0]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
     [_createIndex]: dart.definiteFunctionType(indexed_db.Index, [core.String, core.Object], [core.Map]),
     [_createIndex_1]: dart.definiteFunctionType(indexed_db.Index, [dart.dynamic, dart.dynamic, dart.dynamic]),
     [_createIndex_2]: dart.definiteFunctionType(indexed_db.Index, [dart.dynamic, dart.dynamic]),
-    [_delete]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_delete$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
     [dartx.deleteIndex]: dart.definiteFunctionType(dart.void, [core.String]),
-    [_get]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
+    [_get$]: dart.definiteFunctionType(indexed_db.Request, [core.Object]),
     [dartx.getAll]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
     [dartx.getAllKeys]: dart.definiteFunctionType(indexed_db.Request, [core.Object], [core.int]),
     [dartx.index]: dart.definiteFunctionType(indexed_db.Index, [core.String]),
@@ -55419,7 +55422,7 @@
   'source',
   'transaction'
 ]);
-indexed_db.Request = class Request extends html.EventTarget {
+indexed_db.Request = class Request extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -55451,7 +55454,7 @@
 dart.setSignature(indexed_db.Request, {
   constructors: () => ({_: dart.definiteFunctionType(indexed_db.Request, [])}),
   fields: () => ({
-    [dartx.error]: html.DomError,
+    [dartx.error]: html$.DomError,
     [dartx.readyState]: core.String,
     [_get_result]: dart.dynamic,
     [dartx.source]: core.Object,
@@ -55459,8 +55462,8 @@
   }),
   getters: () => ({
     [dartx.result]: dart.definiteFunctionType(dart.dynamic, []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSuccess]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSuccess]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   sfields: () => ({
     errorEvent: EventStreamProviderOfEvent(),
@@ -55494,7 +55497,7 @@
 dart.setSignature(indexed_db.OpenDBRequest, {
   constructors: () => ({_: dart.definiteFunctionType(indexed_db.OpenDBRequest, [])}),
   getters: () => ({
-    [dartx.onBlocked]: dart.definiteFunctionType(async.Stream$(html.Event), []),
+    [dartx.onBlocked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
     [dartx.onUpgradeNeeded]: dart.definiteFunctionType(async.Stream$(indexed_db.VersionChangeEvent), [])
   }),
   sfields: () => ({
@@ -55524,7 +55527,7 @@
   'mode',
   'objectStoreNames'
 ]);
-indexed_db.Transaction = class Transaction extends html.EventTarget {
+indexed_db.Transaction = class Transaction extends html$.EventTarget {
   get [dartx.completed]() {
     let completer = CompleterOfDatabase().new();
     this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
@@ -55575,15 +55578,15 @@
   constructors: () => ({_: dart.definiteFunctionType(indexed_db.Transaction, [])}),
   fields: () => ({
     [dartx.db]: indexed_db.Database,
-    [dartx.error]: html.DomError,
+    [dartx.error]: html$.DomError,
     [dartx.mode]: core.String,
     [dartx.objectStoreNames]: ListOfString()
   }),
   getters: () => ({
     [dartx.completed]: dart.definiteFunctionType(async.Future$(indexed_db.Database), []),
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
     [dartx.abort]: dart.definiteFunctionType(dart.void, []),
@@ -55627,16 +55630,16 @@
   'timeStamp',
   'type'
 ]);
-html.Event = class Event extends _interceptors.Interceptor {
+html$.Event = class Event extends _interceptors.Interceptor {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-    return html.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
+    return html$.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
   }
   static eventType(type, name, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
-    let e = html.document[_createEvent](type);
+    let e = html$.document[_createEvent](type);
     e[_initEvent](name, canBubble, cancelable);
     return e;
   }
@@ -55650,8 +55653,8 @@
     if (this[_selector] == null) {
       dart.throw(new core.UnsupportedError('Cannot call matchingTarget if this Event did' + ' not arise as a result of event delegation.'));
     }
-    let currentTarget = html.Element._check(this[dartx.currentTarget]);
-    let target = html.Element._check(this[dartx.target]);
+    let currentTarget = html$.Element._check(this[dartx.currentTarget]);
+    let target = html$.Element._check(this[dartx.target]);
     let matchedTarget = null;
     do {
       if (dart.test(target[dartx.matches](this[_selector]))) return target;
@@ -55663,9 +55666,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.Event._create_1(type, eventInitDict_1);
+      return html$.Event._create_1(type, eventInitDict_1);
     }
-    return html.Event._create_2(type);
+    return html$.Event._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.Event(type, eventInitDict);
@@ -55680,7 +55683,7 @@
     return this.cancelable;
   }
   get [dartx.currentTarget]() {
-    return html._convertNativeToDart_EventTarget(this[_get_currentTarget]);
+    return html$._convertNativeToDart_EventTarget(this[_get_currentTarget]);
   }
   get [_get_currentTarget]() {
     return this.currentTarget;
@@ -55695,7 +55698,7 @@
     return this.path;
   }
   get [dartx.target]() {
-    return html._convertNativeToDart_EventTarget(this[_get_target]);
+    return html$._convertNativeToDart_EventTarget(this[_get_target]);
   }
   get [_get_target]() {
     return this.target;
@@ -55719,11 +55722,11 @@
     return this.stopPropagation.apply(this, args);
   }
 };
-dart.setSignature(html.Event, {
+dart.setSignature(html$.Event, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.Event, [core.String], {canBubble: core.bool, cancelable: core.bool}),
-    eventType: dart.definiteFunctionType(html.Event, [core.String, core.String], {canBubble: core.bool, cancelable: core.bool}),
-    _: dart.definiteFunctionType(html.Event, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.Event, [core.String], {canBubble: core.bool, cancelable: core.bool}),
+    eventType: dart.definiteFunctionType(html$.Event, [core.String, core.String], {canBubble: core.bool, cancelable: core.bool}),
+    _: dart.definiteFunctionType(html$.Event, [core.String], [core.Map])
   }),
   fields: () => ({
     [_selector]: core.String,
@@ -55738,9 +55741,9 @@
     [dartx.type]: core.String
   }),
   getters: () => ({
-    [dartx.matchingTarget]: dart.definiteFunctionType(html.Element, []),
-    [dartx.currentTarget]: dart.definiteFunctionType(html.EventTarget, []),
-    [dartx.target]: dart.definiteFunctionType(html.EventTarget, [])
+    [dartx.matchingTarget]: dart.definiteFunctionType(html$.Element, []),
+    [dartx.currentTarget]: dart.definiteFunctionType(html$.EventTarget, []),
+    [dartx.target]: dart.definiteFunctionType(html$.EventTarget, [])
   }),
   methods: () => ({
     [_initEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool]),
@@ -55754,23 +55757,23 @@
     CAPTURING_PHASE: core.int
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.Event, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.Event, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.Event, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.Event, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-html.Event.AT_TARGET = 2;
-html.Event.BUBBLING_PHASE = 3;
-html.Event.CAPTURING_PHASE = 1;
-dart.registerExtension(dart.global.Event, html.Event);
-dart.registerExtension(dart.global.InputEvent, html.Event);
+html$.Event.AT_TARGET = 2;
+html$.Event.BUBBLING_PHASE = 3;
+html$.Event.CAPTURING_PHASE = 1;
+dart.registerExtension(dart.global.Event, html$.Event);
+dart.registerExtension(dart.global.InputEvent, html$.Event);
 dart.defineExtensionNames([
   'dataLoss',
   'dataLossMessage',
   'newVersion',
   'oldVersion'
 ]);
-indexed_db.VersionChangeEvent = class VersionChangeEvent extends html.Event {
+indexed_db.VersionChangeEvent = class VersionChangeEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -55819,18 +55822,18 @@
   names: ['_create_1', '_create_2']
 });
 dart.registerExtension(dart.global.IDBVersionChangeEvent, indexed_db.VersionChangeEvent);
-dart.copyProperties(html, {
+dart.copyProperties(html$, {
   get window() {
     return window;
   }
 });
-dart.copyProperties(html, {
+dart.copyProperties(html$, {
   get document() {
     return document;
   }
 });
 const _xtag = Symbol('_xtag');
-const _attributes = Symbol('_attributes');
+const _attributes$ = Symbol('_attributes');
 const _innerHtml = Symbol('_innerHtml');
 const _scrollHeight = Symbol('_scrollHeight');
 const _scrollLeft = Symbol('_scrollLeft');
@@ -55897,7 +55900,7 @@
   'previousNode',
   'text'
 ]);
-html.Node = class Node extends html.EventTarget {
+html$.Node = class Node extends html$.EventTarget {
   _created() {
     this[dartx.childNodes] = null;
     this[dartx.baseUri] = null;
@@ -55917,7 +55920,7 @@
     super._created();
   }
   get [dartx.nodes]() {
-    return new html._ChildNodeListLazy(this);
+    return new html$._ChildNodeListLazy(this);
   }
   set [dartx.nodes](value) {
     let copy = value[dartx.toList]();
@@ -55943,7 +55946,7 @@
     return this;
   }
   [dartx.insertAllBefore](newNodes, refChild) {
-    if (html._ChildNodeListLazy.is(newNodes)) {
+    if (html$._ChildNodeListLazy.is(newNodes)) {
       let otherList = newNodes;
       if (core.identical(otherList[_this], this)) {
         dart.throw(new core.ArgumentError(newNodes));
@@ -56039,43 +56042,43 @@
     return this.replaceChild.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.Node, '_created');
-dart.setSignature(html.Node, {
+dart.defineNamedConstructor(html$.Node, '_created');
+dart.setSignature(html$.Node, {
   constructors: () => ({
-    _created: dart.definiteFunctionType(html.Node, []),
-    _: dart.definiteFunctionType(html.Node, [])
+    _created: dart.definiteFunctionType(html$.Node, []),
+    _: dart.definiteFunctionType(html$.Node, [])
   }),
   fields: () => ({
     [dartx.childNodes]: ListOfNode(),
     [dartx.baseUri]: core.String,
-    [dartx.firstChild]: html.Node,
-    [dartx.lastChild]: html.Node,
+    [dartx.firstChild]: html$.Node,
+    [dartx.lastChild]: html$.Node,
     [_localName]: core.String,
     [_namespaceUri]: core.String,
-    [dartx.nextNode]: html.Node,
+    [dartx.nextNode]: html$.Node,
     [dartx.nodeName]: core.String,
     [dartx.nodeType]: core.int,
     [dartx.nodeValue]: core.String,
-    [dartx.ownerDocument]: html.Document,
-    [dartx.parent]: html.Element,
-    [dartx.parentNode]: html.Node,
-    [dartx.previousNode]: html.Node,
+    [dartx.ownerDocument]: html$.Document,
+    [dartx.parent]: html$.Element,
+    [dartx.parentNode]: html$.Node,
+    [dartx.previousNode]: html$.Node,
     [dartx.text]: core.String
   }),
-  getters: () => ({[dartx.nodes]: dart.definiteFunctionType(core.List$(html.Node), [])}),
+  getters: () => ({[dartx.nodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
   setters: () => ({[dartx.nodes]: dart.definiteFunctionType(dart.void, [IterableOfNode()])}),
   methods: () => ({
     [dartx.remove]: dart.definiteFunctionType(dart.void, []),
-    [dartx.replaceWith]: dart.definiteFunctionType(html.Node, [html.Node]),
-    [dartx.insertAllBefore]: dart.definiteFunctionType(html.Node, [IterableOfNode(), html.Node]),
+    [dartx.replaceWith]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [dartx.insertAllBefore]: dart.definiteFunctionType(html$.Node, [IterableOfNode(), html$.Node]),
     [_clearChildren]: dart.definiteFunctionType(dart.void, []),
-    [dartx.append]: dart.definiteFunctionType(html.Node, [html.Node]),
-    [dartx.clone]: dart.definiteFunctionType(html.Node, [core.bool]),
-    [dartx.contains]: dart.definiteFunctionType(core.bool, [html.Node]),
+    [dartx.append]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [dartx.clone]: dart.definiteFunctionType(html$.Node, [core.bool]),
+    [dartx.contains]: dart.definiteFunctionType(core.bool, [html$.Node]),
     [dartx.hasChildNodes]: dart.definiteFunctionType(core.bool, []),
-    [dartx.insertBefore]: dart.definiteFunctionType(html.Node, [html.Node, html.Node]),
-    [_removeChild]: dart.definiteFunctionType(html.Node, [html.Node]),
-    [_replaceChild]: dart.definiteFunctionType(html.Node, [html.Node, html.Node])
+    [dartx.insertBefore]: dart.definiteFunctionType(html$.Node, [html$.Node, html$.Node]),
+    [_removeChild]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [_replaceChild]: dart.definiteFunctionType(html$.Node, [html$.Node, html$.Node])
   }),
   sfields: () => ({
     ATTRIBUTE_NODE: core.int,
@@ -56092,19 +56095,19 @@
     TEXT_NODE: core.int
   })
 });
-html.Node.ATTRIBUTE_NODE = 2;
-html.Node.CDATA_SECTION_NODE = 4;
-html.Node.COMMENT_NODE = 8;
-html.Node.DOCUMENT_FRAGMENT_NODE = 11;
-html.Node.DOCUMENT_NODE = 9;
-html.Node.DOCUMENT_TYPE_NODE = 10;
-html.Node.ELEMENT_NODE = 1;
-html.Node.ENTITY_NODE = 6;
-html.Node.ENTITY_REFERENCE_NODE = 5;
-html.Node.NOTATION_NODE = 12;
-html.Node.PROCESSING_INSTRUCTION_NODE = 7;
-html.Node.TEXT_NODE = 3;
-dart.registerExtension(dart.global.Node, html.Node);
+html$.Node.ATTRIBUTE_NODE = 2;
+html$.Node.CDATA_SECTION_NODE = 4;
+html$.Node.COMMENT_NODE = 8;
+html$.Node.DOCUMENT_FRAGMENT_NODE = 11;
+html$.Node.DOCUMENT_NODE = 9;
+html$.Node.DOCUMENT_TYPE_NODE = 10;
+html$.Node.ELEMENT_NODE = 1;
+html$.Node.ENTITY_NODE = 6;
+html$.Node.ENTITY_REFERENCE_NODE = 5;
+html$.Node.NOTATION_NODE = 12;
+html$.Node.PROCESSING_INSTRUCTION_NODE = 7;
+html$.Node.TEXT_NODE = 3;
+dart.registerExtension(dart.global.Node, html$.Node);
 dart.defineExtensionNames([
   'attributes',
   'attributes',
@@ -56280,12 +56283,12 @@
   'nextElementSibling',
   'previousElementSibling'
 ]);
-html.Element = class Element extends html.Node {
+html$.Element = class Element extends html$.Node {
   static html(html, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    let fragment = html.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
-    return html.Element._check(fragment[dartx.nodes][dartx.where](dart.fn(e => html.Element.is(e), NodeTobool()))[dartx.single]);
+    let fragment = html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    return html$.Element._check(fragment[dartx.nodes][dartx.where](dart.fn(e => html$.Element.is(e), NodeTobool$()))[dartx.single]);
   }
   created() {
     this[_xtag] = null;
@@ -56302,7 +56305,7 @@
     this[dartx.title] = null;
     this[dartx.translate] = null;
     this[dartx.dropzone] = null;
-    this[_attributes] = null;
+    this[_attributes$] = null;
     this[dartx.className] = null;
     this[dartx.clientHeight] = null;
     this[dartx.clientLeft] = null;
@@ -56327,97 +56330,97 @@
   }
   static tag(tag, typeExtention) {
     if (typeExtention === void 0) typeExtention = null;
-    return html.Element._check(html._ElementFactoryProvider.createElement_tag(tag, typeExtention));
+    return html$.Element._check(html$._ElementFactoryProvider.createElement_tag(tag, typeExtention));
   }
   static a() {
-    return html.Element.tag('a');
+    return html$.Element.tag('a');
   }
   static article() {
-    return html.Element.tag('article');
+    return html$.Element.tag('article');
   }
   static aside() {
-    return html.Element.tag('aside');
+    return html$.Element.tag('aside');
   }
   static audio() {
-    return html.Element.tag('audio');
+    return html$.Element.tag('audio');
   }
   static br() {
-    return html.Element.tag('br');
+    return html$.Element.tag('br');
   }
   static canvas() {
-    return html.Element.tag('canvas');
+    return html$.Element.tag('canvas');
   }
   static div() {
-    return html.Element.tag('div');
+    return html$.Element.tag('div');
   }
   static footer() {
-    return html.Element.tag('footer');
+    return html$.Element.tag('footer');
   }
   static header() {
-    return html.Element.tag('header');
+    return html$.Element.tag('header');
   }
   static hr() {
-    return html.Element.tag('hr');
+    return html$.Element.tag('hr');
   }
   static iframe() {
-    return html.Element.tag('iframe');
+    return html$.Element.tag('iframe');
   }
   static img() {
-    return html.Element.tag('img');
+    return html$.Element.tag('img');
   }
   static li() {
-    return html.Element.tag('li');
+    return html$.Element.tag('li');
   }
   static nav() {
-    return html.Element.tag('nav');
+    return html$.Element.tag('nav');
   }
   static ol() {
-    return html.Element.tag('ol');
+    return html$.Element.tag('ol');
   }
   static option() {
-    return html.Element.tag('option');
+    return html$.Element.tag('option');
   }
   static p() {
-    return html.Element.tag('p');
+    return html$.Element.tag('p');
   }
   static pre() {
-    return html.Element.tag('pre');
+    return html$.Element.tag('pre');
   }
   static section() {
-    return html.Element.tag('section');
+    return html$.Element.tag('section');
   }
   static select() {
-    return html.Element.tag('select');
+    return html$.Element.tag('select');
   }
   static span() {
-    return html.Element.tag('span');
+    return html$.Element.tag('span');
   }
   static svg() {
-    return html.Element.tag('svg');
+    return html$.Element.tag('svg');
   }
   static table() {
-    return html.Element.tag('table');
+    return html$.Element.tag('table');
   }
   static td() {
-    return html.Element.tag('td');
+    return html$.Element.tag('td');
   }
   static textarea() {
-    return html.Element.tag('textarea');
+    return html$.Element.tag('textarea');
   }
   static th() {
-    return html.Element.tag('th');
+    return html$.Element.tag('th');
   }
   static tr() {
-    return html.Element.tag('tr');
+    return html$.Element.tag('tr');
   }
   static ul() {
-    return html.Element.tag('ul');
+    return html$.Element.tag('ul');
   }
   static video() {
-    return html.Element.tag('video');
+    return html$.Element.tag('video');
   }
   get [dartx.attributes]() {
-    return new html._ElementAttributeMap(this);
+    return new html$._ElementAttributeMap(this);
   }
   set [dartx.attributes](value) {
     let attributes = this[dartx.attributes];
@@ -56427,7 +56430,7 @@
     }
   }
   get [dartx.children]() {
-    return new html._ChildrenElementList._wrap(this);
+    return new html$._ChildrenElementList._wrap(this);
   }
   set [dartx.children](value) {
     let copy = value[dartx.toList]();
@@ -56437,7 +56440,7 @@
   }
   [dartx.querySelectorAll](T) {
     return selectors => {
-      return new (html._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
+      return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
     };
   }
   [dartx.query](relativeSelectors) {
@@ -56449,7 +56452,7 @@
     };
   }
   get [dartx.classes]() {
-    return new html._ElementCssClassSet(this);
+    return new html$._ElementCssClassSet(this);
   }
   set [dartx.classes](value) {
     let classSet = this[dartx.classes];
@@ -56457,7 +56460,7 @@
     classSet.addAll(value);
   }
   get [dartx.dataset]() {
-    return new html._DataAttributeMap(this[dartx.attributes]);
+    return new html$._DataAttributeMap(this[dartx.attributes]);
   }
   set [dartx.dataset](value) {
     let data = this[dartx.dataset];
@@ -56467,14 +56470,14 @@
     }
   }
   [dartx.getNamespacedAttributes](namespace) {
-    return new html._NamespacedAttributeMap(this, namespace);
+    return new html$._NamespacedAttributeMap(this, namespace);
   }
   [dartx.getComputedStyle](pseudoElement) {
     if (pseudoElement === void 0) pseudoElement = null;
     if (pseudoElement == null) {
       pseudoElement = '';
     }
-    return html.window[_getComputedStyle](this, pseudoElement);
+    return html$.window[_getComputedStyle](this, pseudoElement);
   }
   get [dartx.client]() {
     return new (RectangleOfint())(this[dartx.clientLeft], this[dartx.clientTop], this[dartx.clientWidth], this[dartx.clientHeight]);
@@ -56483,7 +56486,7 @@
     return new (RectangleOfint())(this[dartx.offsetLeft], this[dartx.offsetTop], this[dartx.offsetWidth], this[dartx.offsetHeight]);
   }
   [dartx.appendText](text) {
-    this[dartx.append](html.Text.new(text));
+    this[dartx.append](html$.Text.new(text));
   }
   [dartx.appendHtml](text, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
@@ -56491,8 +56494,8 @@
     this[dartx.insertAdjacentHtml]('beforeend', text, {validator: validator, treeSanitizer: treeSanitizer});
   }
   static isTagSupported(tag) {
-    let e = html._ElementFactoryProvider.createElement_tag(tag, null);
-    return html.Element.is(e) && !html.UnknownElement.is(e);
+    let e = html$._ElementFactoryProvider.createElement_tag(tag, null);
+    return html$.Element.is(e) && !html$.UnknownElement.is(e);
   }
   [dartx.attached]() {
     this[dartx.enteredView]();
@@ -56545,12 +56548,12 @@
     if (alignment === void 0) alignment = null;
     let hasScrollIntoViewIfNeeded = true;
     hasScrollIntoViewIfNeeded = !!this.scrollIntoViewIfNeeded;
-    if (dart.equals(alignment, html.ScrollAlignment.TOP)) {
+    if (dart.equals(alignment, html$.ScrollAlignment.TOP)) {
       this[_scrollIntoView](true);
-    } else if (dart.equals(alignment, html.ScrollAlignment.BOTTOM)) {
+    } else if (dart.equals(alignment, html$.ScrollAlignment.BOTTOM)) {
       this[_scrollIntoView](false);
     } else if (hasScrollIntoViewIfNeeded) {
-      if (dart.equals(alignment, html.ScrollAlignment.CENTER)) {
+      if (dart.equals(alignment, html$.ScrollAlignment.CENTER)) {
         this[_scrollIntoViewIfNeeded](true);
       } else {
         this[_scrollIntoViewIfNeeded]();
@@ -56574,7 +56577,7 @@
     if (!!this.insertAdjacentText) {
       this[_insertAdjacentText](where, text);
     } else {
-      this[_insertAdjacentNode](where, html.Text.new(text));
+      this[_insertAdjacentNode](where, html$.Text.new(text));
     }
   }
   [_insertAdjacentText](...args) {
@@ -56583,7 +56586,7 @@
   [dartx.insertAdjacentHtml](where, html, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    if (html._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
+    if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
       this[_insertAdjacentHtml](where, html);
     } else {
       this[_insertAdjacentNode](where, this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
@@ -56662,22 +56665,22 @@
     return this.shadowRoot || this.webkitShadowRoot;
   }
   get [dartx.contentEdge]() {
-    return new html._ContentCssRect(this);
+    return new html$._ContentCssRect(this);
   }
   get [dartx.paddingEdge]() {
-    return new html._PaddingCssRect(this);
+    return new html$._PaddingCssRect(this);
   }
   get [dartx.borderEdge]() {
-    return new html._BorderCssRect(this);
+    return new html$._BorderCssRect(this);
   }
   get [dartx.marginEdge]() {
-    return new html._MarginCssRect(this);
+    return new html$._MarginCssRect(this);
   }
   get [dartx.documentOffset]() {
-    return this[dartx.offsetTo](html.document[dartx.documentElement]);
+    return this[dartx.offsetTo](html$.document[dartx.documentElement]);
   }
   [dartx.offsetTo](parent) {
-    return html.Element._offsetToHelper(this, parent);
+    return html$.Element._offsetToHelper(this, parent);
   }
   static _offsetToHelper(current, parent) {
     let sameAsParent = core.identical(current, parent);
@@ -56687,7 +56690,7 @@
       dart.throw(new core.ArgumentError("Specified element is not a transitive offset " + "parent of this element."));
     }
     let parentOffset = current[dartx.offsetParent];
-    let p = html.Element._offsetToHelper(parentOffset, parent);
+    let p = html$.Element._offsetToHelper(parentOffset, parent);
     return new (PointOfnum())(dart.notNull(p.x) + dart.notNull(current[dartx.offsetLeft]), dart.notNull(p.y) + dart.notNull(current[dartx.offsetTop]));
   }
   [dartx.createFragment](html, opts) {
@@ -56695,57 +56698,57 @@
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
     if (treeSanitizer == null) {
       if (validator == null) {
-        if (html.Element._defaultValidator == null) {
-          html.Element._defaultValidator = new html.NodeValidatorBuilder.common();
+        if (html$.Element._defaultValidator == null) {
+          html$.Element._defaultValidator = new html$.NodeValidatorBuilder.common();
         }
-        validator = html.Element._defaultValidator;
+        validator = html$.Element._defaultValidator;
       }
-      if (html.Element._defaultSanitizer == null) {
-        html.Element._defaultSanitizer = new html._ValidatingTreeSanitizer(validator);
+      if (html$.Element._defaultSanitizer == null) {
+        html$.Element._defaultSanitizer = new html$._ValidatingTreeSanitizer(validator);
       } else {
-        html.Element._defaultSanitizer.validator = validator;
+        html$.Element._defaultSanitizer.validator = validator;
       }
-      treeSanitizer = html.Element._defaultSanitizer;
+      treeSanitizer = html$.Element._defaultSanitizer;
     } else if (validator != null) {
       dart.throw(new core.ArgumentError('validator can only be passed if treeSanitizer is null'));
     }
-    if (html.Element._parseDocument == null) {
-      html.Element._parseDocument = html.document[dartx.implementation][dartx.createHtmlDocument]('');
-      html.Element._parseRange = html.Element._parseDocument[dartx.createRange]();
-      let base = html.BaseElement._check(html.Element._parseDocument[dartx.createElement]('base'));
-      base[dartx.href] = html.document[dartx.baseUri];
-      html.Element._parseDocument[dartx.head][dartx.append](base);
+    if (html$.Element._parseDocument == null) {
+      html$.Element._parseDocument = html$.document[dartx.implementation][dartx.createHtmlDocument]('');
+      html$.Element._parseRange = html$.Element._parseDocument[dartx.createRange]();
+      let base = html$.BaseElement._check(html$.Element._parseDocument[dartx.createElement]('base'));
+      base[dartx.href] = html$.document[dartx.baseUri];
+      html$.Element._parseDocument[dartx.head][dartx.append](base);
     }
     let contextElement = null;
-    if (html.BodyElement.is(this)) {
-      contextElement = html.Element._parseDocument[dartx.body];
+    if (html$.BodyElement.is(this)) {
+      contextElement = html$.Element._parseDocument[dartx.body];
     } else {
-      contextElement = html.Element._parseDocument[dartx.createElement](this[dartx.tagName]);
-      html.Element._parseDocument[dartx.body][dartx.append](html.Node._check(contextElement));
+      contextElement = html$.Element._parseDocument[dartx.createElement](this[dartx.tagName]);
+      html$.Element._parseDocument[dartx.body][dartx.append](html$.Node._check(contextElement));
     }
     let fragment = null;
-    if (dart.test(html.Range.supportsCreateContextualFragment) && dart.test(this[_canBeUsedToCreateContextualFragment])) {
-      html.Element._parseRange[dartx.selectNodeContents](html.Node._check(contextElement));
-      fragment = html.Element._parseRange[dartx.createContextualFragment](html);
+    if (dart.test(html$.Range.supportsCreateContextualFragment) && dart.test(this[_canBeUsedToCreateContextualFragment])) {
+      html$.Element._parseRange[dartx.selectNodeContents](html$.Node._check(contextElement));
+      fragment = html$.Element._parseRange[dartx.createContextualFragment](html);
     } else {
       dart.dput(contextElement, _innerHtml, html);
-      fragment = html.Element._parseDocument[dartx.createDocumentFragment]();
+      fragment = html$.Element._parseDocument[dartx.createDocumentFragment]();
       while (dart.dload(contextElement, 'firstChild') != null) {
         dart.dsend(fragment, 'append', dart.dload(contextElement, 'firstChild'));
       }
     }
-    if (!dart.equals(contextElement, html.Element._parseDocument[dartx.body])) {
+    if (!dart.equals(contextElement, html$.Element._parseDocument[dartx.body])) {
       dart.dsend(contextElement, 'remove');
     }
-    treeSanitizer.sanitizeTree(html.Node._check(fragment));
-    html.document[dartx.adoptNode](html.Node._check(fragment));
-    return html.DocumentFragment._check(fragment);
+    treeSanitizer.sanitizeTree(html$.Node._check(fragment));
+    html$.document[dartx.adoptNode](html$.Node._check(fragment));
+    return html$.DocumentFragment._check(fragment);
   }
   get [_canBeUsedToCreateContextualFragment]() {
     return !dart.test(this[_cannotBeUsedToCreateContextualFragment]);
   }
   get [_cannotBeUsedToCreateContextualFragment]() {
-    return html.Element._tagsForWhichCreateContextualFragmentIsNotSupported[dartx.contains](this[dartx.tagName]);
+    return html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported[dartx.contains](this[dartx.tagName]);
   }
   set [dartx.innerHtml](html) {
     this[dartx.setInnerHtml](html);
@@ -56754,7 +56757,7 @@
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
     this[dartx.text] = null;
-    if (html._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
+    if (html$._TrustedHtmlTreeSanitizer.is(treeSanitizer)) {
       this[_innerHtml] = html;
     } else {
       this[dartx.append](this[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
@@ -56764,7 +56767,7 @@
     return this[_innerHtml];
   }
   get [dartx.on]() {
-    return new html.ElementEvents(this);
+    return new html$.ElementEvents(this);
   }
   static _hasCorruptedAttributes(element) {
     return (function(element) {
@@ -56924,7 +56927,7 @@
   [dartx.focus](...args) {
     return this.focus.apply(this, args);
   }
-  get [_attributes]() {
+  get [_attributes$]() {
     return this.attributes;
   }
   get [dartx.className]() {
@@ -57156,267 +57159,267 @@
     return this.querySelectorAll.apply(this, args);
   }
   get [dartx.onAbort]() {
-    return html.Element.abortEvent.forElement(this);
+    return html$.Element.abortEvent.forElement(this);
   }
   get [dartx.onBeforeCopy]() {
-    return html.Element.beforeCopyEvent.forElement(this);
+    return html$.Element.beforeCopyEvent.forElement(this);
   }
   get [dartx.onBeforeCut]() {
-    return html.Element.beforeCutEvent.forElement(this);
+    return html$.Element.beforeCutEvent.forElement(this);
   }
   get [dartx.onBeforePaste]() {
-    return html.Element.beforePasteEvent.forElement(this);
+    return html$.Element.beforePasteEvent.forElement(this);
   }
   get [dartx.onBlur]() {
-    return html.Element.blurEvent.forElement(this);
+    return html$.Element.blurEvent.forElement(this);
   }
   get [dartx.onCanPlay]() {
-    return html.Element.canPlayEvent.forElement(this);
+    return html$.Element.canPlayEvent.forElement(this);
   }
   get [dartx.onCanPlayThrough]() {
-    return html.Element.canPlayThroughEvent.forElement(this);
+    return html$.Element.canPlayThroughEvent.forElement(this);
   }
   get [dartx.onChange]() {
-    return html.Element.changeEvent.forElement(this);
+    return html$.Element.changeEvent.forElement(this);
   }
   get [dartx.onClick]() {
-    return html.Element.clickEvent.forElement(this);
+    return html$.Element.clickEvent.forElement(this);
   }
   get [dartx.onContextMenu]() {
-    return html.Element.contextMenuEvent.forElement(this);
+    return html$.Element.contextMenuEvent.forElement(this);
   }
   get [dartx.onCopy]() {
-    return html.Element.copyEvent.forElement(this);
+    return html$.Element.copyEvent.forElement(this);
   }
   get [dartx.onCut]() {
-    return html.Element.cutEvent.forElement(this);
+    return html$.Element.cutEvent.forElement(this);
   }
   get [dartx.onDoubleClick]() {
-    return html.Element.doubleClickEvent.forElement(this);
+    return html$.Element.doubleClickEvent.forElement(this);
   }
   get [dartx.onDrag]() {
-    return html.Element.dragEvent.forElement(this);
+    return html$.Element.dragEvent.forElement(this);
   }
   get [dartx.onDragEnd]() {
-    return html.Element.dragEndEvent.forElement(this);
+    return html$.Element.dragEndEvent.forElement(this);
   }
   get [dartx.onDragEnter]() {
-    return html.Element.dragEnterEvent.forElement(this);
+    return html$.Element.dragEnterEvent.forElement(this);
   }
   get [dartx.onDragLeave]() {
-    return html.Element.dragLeaveEvent.forElement(this);
+    return html$.Element.dragLeaveEvent.forElement(this);
   }
   get [dartx.onDragOver]() {
-    return html.Element.dragOverEvent.forElement(this);
+    return html$.Element.dragOverEvent.forElement(this);
   }
   get [dartx.onDragStart]() {
-    return html.Element.dragStartEvent.forElement(this);
+    return html$.Element.dragStartEvent.forElement(this);
   }
   get [dartx.onDrop]() {
-    return html.Element.dropEvent.forElement(this);
+    return html$.Element.dropEvent.forElement(this);
   }
   get [dartx.onDurationChange]() {
-    return html.Element.durationChangeEvent.forElement(this);
+    return html$.Element.durationChangeEvent.forElement(this);
   }
   get [dartx.onEmptied]() {
-    return html.Element.emptiedEvent.forElement(this);
+    return html$.Element.emptiedEvent.forElement(this);
   }
   get [dartx.onEnded]() {
-    return html.Element.endedEvent.forElement(this);
+    return html$.Element.endedEvent.forElement(this);
   }
   get [dartx.onError]() {
-    return html.Element.errorEvent.forElement(this);
+    return html$.Element.errorEvent.forElement(this);
   }
   get [dartx.onFocus]() {
-    return html.Element.focusEvent.forElement(this);
+    return html$.Element.focusEvent.forElement(this);
   }
   get [dartx.onInput]() {
-    return html.Element.inputEvent.forElement(this);
+    return html$.Element.inputEvent.forElement(this);
   }
   get [dartx.onInvalid]() {
-    return html.Element.invalidEvent.forElement(this);
+    return html$.Element.invalidEvent.forElement(this);
   }
   get [dartx.onKeyDown]() {
-    return html.Element.keyDownEvent.forElement(this);
+    return html$.Element.keyDownEvent.forElement(this);
   }
   get [dartx.onKeyPress]() {
-    return html.Element.keyPressEvent.forElement(this);
+    return html$.Element.keyPressEvent.forElement(this);
   }
   get [dartx.onKeyUp]() {
-    return html.Element.keyUpEvent.forElement(this);
+    return html$.Element.keyUpEvent.forElement(this);
   }
   get [dartx.onLoad]() {
-    return html.Element.loadEvent.forElement(this);
+    return html$.Element.loadEvent.forElement(this);
   }
   get [dartx.onLoadedData]() {
-    return html.Element.loadedDataEvent.forElement(this);
+    return html$.Element.loadedDataEvent.forElement(this);
   }
   get [dartx.onLoadedMetadata]() {
-    return html.Element.loadedMetadataEvent.forElement(this);
+    return html$.Element.loadedMetadataEvent.forElement(this);
   }
   get [dartx.onMouseDown]() {
-    return html.Element.mouseDownEvent.forElement(this);
+    return html$.Element.mouseDownEvent.forElement(this);
   }
   get [dartx.onMouseEnter]() {
-    return html.Element.mouseEnterEvent.forElement(this);
+    return html$.Element.mouseEnterEvent.forElement(this);
   }
   get [dartx.onMouseLeave]() {
-    return html.Element.mouseLeaveEvent.forElement(this);
+    return html$.Element.mouseLeaveEvent.forElement(this);
   }
   get [dartx.onMouseMove]() {
-    return html.Element.mouseMoveEvent.forElement(this);
+    return html$.Element.mouseMoveEvent.forElement(this);
   }
   get [dartx.onMouseOut]() {
-    return html.Element.mouseOutEvent.forElement(this);
+    return html$.Element.mouseOutEvent.forElement(this);
   }
   get [dartx.onMouseOver]() {
-    return html.Element.mouseOverEvent.forElement(this);
+    return html$.Element.mouseOverEvent.forElement(this);
   }
   get [dartx.onMouseUp]() {
-    return html.Element.mouseUpEvent.forElement(this);
+    return html$.Element.mouseUpEvent.forElement(this);
   }
   get [dartx.onMouseWheel]() {
-    return html.Element.mouseWheelEvent.forElement(this);
+    return html$.Element.mouseWheelEvent.forElement(this);
   }
   get [dartx.onPaste]() {
-    return html.Element.pasteEvent.forElement(this);
+    return html$.Element.pasteEvent.forElement(this);
   }
   get [dartx.onPause]() {
-    return html.Element.pauseEvent.forElement(this);
+    return html$.Element.pauseEvent.forElement(this);
   }
   get [dartx.onPlay]() {
-    return html.Element.playEvent.forElement(this);
+    return html$.Element.playEvent.forElement(this);
   }
   get [dartx.onPlaying]() {
-    return html.Element.playingEvent.forElement(this);
+    return html$.Element.playingEvent.forElement(this);
   }
   get [dartx.onRateChange]() {
-    return html.Element.rateChangeEvent.forElement(this);
+    return html$.Element.rateChangeEvent.forElement(this);
   }
   get [dartx.onReset]() {
-    return html.Element.resetEvent.forElement(this);
+    return html$.Element.resetEvent.forElement(this);
   }
   get [dartx.onResize]() {
-    return html.Element.resizeEvent.forElement(this);
+    return html$.Element.resizeEvent.forElement(this);
   }
   get [dartx.onScroll]() {
-    return html.Element.scrollEvent.forElement(this);
+    return html$.Element.scrollEvent.forElement(this);
   }
   get [dartx.onSearch]() {
-    return html.Element.searchEvent.forElement(this);
+    return html$.Element.searchEvent.forElement(this);
   }
   get [dartx.onSeeked]() {
-    return html.Element.seekedEvent.forElement(this);
+    return html$.Element.seekedEvent.forElement(this);
   }
   get [dartx.onSeeking]() {
-    return html.Element.seekingEvent.forElement(this);
+    return html$.Element.seekingEvent.forElement(this);
   }
   get [dartx.onSelect]() {
-    return html.Element.selectEvent.forElement(this);
+    return html$.Element.selectEvent.forElement(this);
   }
   get [dartx.onSelectStart]() {
-    return html.Element.selectStartEvent.forElement(this);
+    return html$.Element.selectStartEvent.forElement(this);
   }
   get [dartx.onStalled]() {
-    return html.Element.stalledEvent.forElement(this);
+    return html$.Element.stalledEvent.forElement(this);
   }
   get [dartx.onSubmit]() {
-    return html.Element.submitEvent.forElement(this);
+    return html$.Element.submitEvent.forElement(this);
   }
   get [dartx.onSuspend]() {
-    return html.Element.suspendEvent.forElement(this);
+    return html$.Element.suspendEvent.forElement(this);
   }
   get [dartx.onTimeUpdate]() {
-    return html.Element.timeUpdateEvent.forElement(this);
+    return html$.Element.timeUpdateEvent.forElement(this);
   }
   get [dartx.onTouchCancel]() {
-    return html.Element.touchCancelEvent.forElement(this);
+    return html$.Element.touchCancelEvent.forElement(this);
   }
   get [dartx.onTouchEnd]() {
-    return html.Element.touchEndEvent.forElement(this);
+    return html$.Element.touchEndEvent.forElement(this);
   }
   get [dartx.onTouchEnter]() {
-    return html.Element.touchEnterEvent.forElement(this);
+    return html$.Element.touchEnterEvent.forElement(this);
   }
   get [dartx.onTouchLeave]() {
-    return html.Element.touchLeaveEvent.forElement(this);
+    return html$.Element.touchLeaveEvent.forElement(this);
   }
   get [dartx.onTouchMove]() {
-    return html.Element.touchMoveEvent.forElement(this);
+    return html$.Element.touchMoveEvent.forElement(this);
   }
   get [dartx.onTouchStart]() {
-    return html.Element.touchStartEvent.forElement(this);
+    return html$.Element.touchStartEvent.forElement(this);
   }
   get [dartx.onTransitionEnd]() {
-    return html.Element.transitionEndEvent.forElement(this);
+    return html$.Element.transitionEndEvent.forElement(this);
   }
   get [dartx.onVolumeChange]() {
-    return html.Element.volumeChangeEvent.forElement(this);
+    return html$.Element.volumeChangeEvent.forElement(this);
   }
   get [dartx.onWaiting]() {
-    return html.Element.waitingEvent.forElement(this);
+    return html$.Element.waitingEvent.forElement(this);
   }
   get [dartx.onFullscreenChange]() {
-    return html.Element.fullscreenChangeEvent.forElement(this);
+    return html$.Element.fullscreenChangeEvent.forElement(this);
   }
   get [dartx.onFullscreenError]() {
-    return html.Element.fullscreenErrorEvent.forElement(this);
+    return html$.Element.fullscreenErrorEvent.forElement(this);
   }
 };
-dart.defineNamedConstructor(html.Element, 'created');
-html.Element[dart.implements] = () => [html.NonDocumentTypeChildNode, html.GlobalEventHandlers, html.ParentNode, html.ChildNode];
-dart.setSignature(html.Element, {
+dart.defineNamedConstructor(html$.Element, 'created');
+html$.Element[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.GlobalEventHandlers, html$.ParentNode, html$.ChildNode];
+dart.setSignature(html$.Element, {
   constructors: () => ({
-    html: dart.definiteFunctionType(html.Element, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
-    created: dart.definiteFunctionType(html.Element, []),
-    tag: dart.definiteFunctionType(html.Element, [core.String], [core.String]),
-    a: dart.definiteFunctionType(html.Element, []),
-    article: dart.definiteFunctionType(html.Element, []),
-    aside: dart.definiteFunctionType(html.Element, []),
-    audio: dart.definiteFunctionType(html.Element, []),
-    br: dart.definiteFunctionType(html.Element, []),
-    canvas: dart.definiteFunctionType(html.Element, []),
-    div: dart.definiteFunctionType(html.Element, []),
-    footer: dart.definiteFunctionType(html.Element, []),
-    header: dart.definiteFunctionType(html.Element, []),
-    hr: dart.definiteFunctionType(html.Element, []),
-    iframe: dart.definiteFunctionType(html.Element, []),
-    img: dart.definiteFunctionType(html.Element, []),
-    li: dart.definiteFunctionType(html.Element, []),
-    nav: dart.definiteFunctionType(html.Element, []),
-    ol: dart.definiteFunctionType(html.Element, []),
-    option: dart.definiteFunctionType(html.Element, []),
-    p: dart.definiteFunctionType(html.Element, []),
-    pre: dart.definiteFunctionType(html.Element, []),
-    section: dart.definiteFunctionType(html.Element, []),
-    select: dart.definiteFunctionType(html.Element, []),
-    span: dart.definiteFunctionType(html.Element, []),
-    svg: dart.definiteFunctionType(html.Element, []),
-    table: dart.definiteFunctionType(html.Element, []),
-    td: dart.definiteFunctionType(html.Element, []),
-    textarea: dart.definiteFunctionType(html.Element, []),
-    th: dart.definiteFunctionType(html.Element, []),
-    tr: dart.definiteFunctionType(html.Element, []),
-    ul: dart.definiteFunctionType(html.Element, []),
-    video: dart.definiteFunctionType(html.Element, []),
-    _: dart.definiteFunctionType(html.Element, [])
+    html: dart.definiteFunctionType(html$.Element, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    created: dart.definiteFunctionType(html$.Element, []),
+    tag: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
+    a: dart.definiteFunctionType(html$.Element, []),
+    article: dart.definiteFunctionType(html$.Element, []),
+    aside: dart.definiteFunctionType(html$.Element, []),
+    audio: dart.definiteFunctionType(html$.Element, []),
+    br: dart.definiteFunctionType(html$.Element, []),
+    canvas: dart.definiteFunctionType(html$.Element, []),
+    div: dart.definiteFunctionType(html$.Element, []),
+    footer: dart.definiteFunctionType(html$.Element, []),
+    header: dart.definiteFunctionType(html$.Element, []),
+    hr: dart.definiteFunctionType(html$.Element, []),
+    iframe: dart.definiteFunctionType(html$.Element, []),
+    img: dart.definiteFunctionType(html$.Element, []),
+    li: dart.definiteFunctionType(html$.Element, []),
+    nav: dart.definiteFunctionType(html$.Element, []),
+    ol: dart.definiteFunctionType(html$.Element, []),
+    option: dart.definiteFunctionType(html$.Element, []),
+    p: dart.definiteFunctionType(html$.Element, []),
+    pre: dart.definiteFunctionType(html$.Element, []),
+    section: dart.definiteFunctionType(html$.Element, []),
+    select: dart.definiteFunctionType(html$.Element, []),
+    span: dart.definiteFunctionType(html$.Element, []),
+    svg: dart.definiteFunctionType(html$.Element, []),
+    table: dart.definiteFunctionType(html$.Element, []),
+    td: dart.definiteFunctionType(html$.Element, []),
+    textarea: dart.definiteFunctionType(html$.Element, []),
+    th: dart.definiteFunctionType(html$.Element, []),
+    tr: dart.definiteFunctionType(html$.Element, []),
+    ul: dart.definiteFunctionType(html$.Element, []),
+    video: dart.definiteFunctionType(html$.Element, []),
+    _: dart.definiteFunctionType(html$.Element, [])
   }),
   fields: () => ({
-    [_xtag]: html.Element,
-    [dartx.offsetParent]: html.Element,
+    [_xtag]: html$.Element,
+    [dartx.offsetParent]: html$.Element,
     [dartx.contentEditable]: core.String,
-    [dartx.contextMenu]: html.MenuElement,
+    [dartx.contextMenu]: html$.MenuElement,
     [dartx.dir]: core.String,
     [dartx.draggable]: core.bool,
     [dartx.hidden]: core.bool,
     [dartx.lang]: core.String,
     [dartx.spellcheck]: core.bool,
-    [dartx.style]: html.CssStyleDeclaration,
+    [dartx.style]: html$.CssStyleDeclaration,
     [dartx.tabIndex]: core.int,
     [dartx.title]: core.String,
     [dartx.translate]: core.bool,
     [dartx.dropzone]: core.String,
-    [_attributes]: html._NamedNodeMap,
+    [_attributes$]: html$._NamedNodeMap,
     [dartx.className]: core.String,
     [dartx.clientHeight]: core.int,
     [dartx.clientLeft]: core.int,
@@ -57431,33 +57434,33 @@
     [_scrollTop]: core.num,
     [_scrollWidth]: core.int,
     [dartx.tagName]: core.String,
-    [dartx.nextElementSibling]: html.Element,
-    [dartx.previousElementSibling]: html.Element,
+    [dartx.nextElementSibling]: html$.Element,
+    [dartx.previousElementSibling]: html$.Element,
     [_childElementCount]: core.int,
     [_children]: ListOfNode(),
-    [_firstElementChild]: html.Element,
-    [_lastElementChild]: html.Element
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
   }),
   getters: () => ({
     [dartx.attributes]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
-    [dartx.children]: dart.definiteFunctionType(core.List$(html.Element), []),
-    [dartx.classes]: dart.definiteFunctionType(html.CssClassSet, []),
+    [dartx.children]: dart.definiteFunctionType(core.List$(html$.Element), []),
+    [dartx.classes]: dart.definiteFunctionType(html$.CssClassSet, []),
     [dartx.dataset]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
     [dartx.client]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
     [dartx.offset]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
     [dartx.xtag]: dart.definiteFunctionType(dart.dynamic, []),
     [dartx.localName]: dart.definiteFunctionType(core.String, []),
     [dartx.namespaceUri]: dart.definiteFunctionType(core.String, []),
-    [dartx.shadowRoot]: dart.definiteFunctionType(html.ShadowRoot, []),
-    [dartx.contentEdge]: dart.definiteFunctionType(html.CssRect, []),
-    [dartx.paddingEdge]: dart.definiteFunctionType(html.CssRect, []),
-    [dartx.borderEdge]: dart.definiteFunctionType(html.CssRect, []),
-    [dartx.marginEdge]: dart.definiteFunctionType(html.CssRect, []),
+    [dartx.shadowRoot]: dart.definiteFunctionType(html$.ShadowRoot, []),
+    [dartx.contentEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.paddingEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.borderEdge]: dart.definiteFunctionType(html$.CssRect, []),
+    [dartx.marginEdge]: dart.definiteFunctionType(html$.CssRect, []),
     [dartx.documentOffset]: dart.definiteFunctionType(math.Point$(core.num), []),
     [_canBeUsedToCreateContextualFragment]: dart.definiteFunctionType(core.bool, []),
     [_cannotBeUsedToCreateContextualFragment]: dart.definiteFunctionType(core.bool, []),
     [dartx.innerHtml]: dart.definiteFunctionType(core.String, []),
-    [dartx.on]: dart.definiteFunctionType(html.ElementEvents, []),
+    [dartx.on]: dart.definiteFunctionType(html$.ElementEvents, []),
     [dartx.offsetHeight]: dart.definiteFunctionType(core.int, []),
     [dartx.offsetLeft]: dart.definiteFunctionType(core.int, []),
     [dartx.offsetTop]: dart.definiteFunctionType(core.int, []),
@@ -57468,127 +57471,127 @@
     [dartx.scrollWidth]: dart.definiteFunctionType(core.int, []),
     [dartx.isContentEditable]: dart.definiteFunctionType(core.bool, []),
     [dartx.outerHtml]: dart.definiteFunctionType(core.String, []),
-    [dartx.onAbort]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onBeforeCopy]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onBeforeCut]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onBeforePaste]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onBlur]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onCanPlay]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onCanPlayThrough]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onChange]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onClick]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onContextMenu]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onCopy]: dart.definiteFunctionType(html.ElementStream$(html.ClipboardEvent), []),
-    [dartx.onCut]: dart.definiteFunctionType(html.ElementStream$(html.ClipboardEvent), []),
-    [dartx.onDoubleClick]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onDrag]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDragEnd]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDragEnter]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDragLeave]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDragOver]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDragStart]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDrop]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onDurationChange]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onEmptied]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onEnded]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onFocus]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onInput]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onInvalid]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onKeyDown]: dart.definiteFunctionType(html.ElementStream$(html.KeyboardEvent), []),
-    [dartx.onKeyPress]: dart.definiteFunctionType(html.ElementStream$(html.KeyboardEvent), []),
-    [dartx.onKeyUp]: dart.definiteFunctionType(html.ElementStream$(html.KeyboardEvent), []),
-    [dartx.onLoad]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onLoadedData]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onLoadedMetadata]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onMouseDown]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseEnter]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseLeave]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseMove]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseOut]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseOver]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseUp]: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-    [dartx.onMouseWheel]: dart.definiteFunctionType(html.ElementStream$(html.WheelEvent), []),
-    [dartx.onPaste]: dart.definiteFunctionType(html.ElementStream$(html.ClipboardEvent), []),
-    [dartx.onPause]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onPlay]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onPlaying]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onRateChange]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onReset]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onResize]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onScroll]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSearch]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSeeked]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSeeking]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSelect]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSelectStart]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onStalled]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSubmit]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onSuspend]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onTimeUpdate]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onTouchCancel]: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-    [dartx.onTouchEnd]: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-    [dartx.onTouchEnter]: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-    [dartx.onTouchLeave]: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-    [dartx.onTouchMove]: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-    [dartx.onTouchStart]: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-    [dartx.onTransitionEnd]: dart.definiteFunctionType(html.ElementStream$(html.TransitionEvent), []),
-    [dartx.onVolumeChange]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onWaiting]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onFullscreenChange]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onFullscreenError]: dart.definiteFunctionType(html.ElementStream$(html.Event), [])
+    [dartx.onAbort]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBeforeCopy]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBeforeCut]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBeforePaste]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onBlur]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onCanPlay]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onCanPlayThrough]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onClick]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onContextMenu]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onCopy]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+    [dartx.onCut]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+    [dartx.onDoubleClick]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onDrag]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragOver]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDragStart]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDrop]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onDurationChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onEmptied]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onFocus]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onInput]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onInvalid]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onKeyDown]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+    [dartx.onKeyPress]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+    [dartx.onKeyUp]: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onLoadedData]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onLoadedMetadata]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onMouseDown]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseMove]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseOut]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseOver]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseUp]: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+    [dartx.onMouseWheel]: dart.definiteFunctionType(html$.ElementStream$(html$.WheelEvent), []),
+    [dartx.onPaste]: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+    [dartx.onPause]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onPlay]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onPlaying]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onRateChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onReset]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onResize]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onScroll]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSearch]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSeeked]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSeeking]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSelect]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSelectStart]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onStalled]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSubmit]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onSuspend]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onTimeUpdate]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onTouchCancel]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchEnter]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchLeave]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchMove]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTouchStart]: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+    [dartx.onTransitionEnd]: dart.definiteFunctionType(html$.ElementStream$(html$.TransitionEvent), []),
+    [dartx.onVolumeChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onWaiting]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onFullscreenChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onFullscreenError]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
   }),
   setters: () => ({
     [dartx.attributes]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
     [dartx.children]: dart.definiteFunctionType(dart.void, [ListOfElement()]),
     [dartx.classes]: dart.definiteFunctionType(dart.void, [IterableOfString()]),
     [dartx.dataset]: dart.definiteFunctionType(dart.void, [MapOfString$String()]),
-    [dartx.xtag]: dart.definiteFunctionType(dart.void, [html.Element]),
+    [dartx.xtag]: dart.definiteFunctionType(dart.void, [html$.Element]),
     [dartx.innerHtml]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.scrollLeft]: dart.definiteFunctionType(dart.void, [core.int]),
     [dartx.scrollTop]: dart.definiteFunctionType(dart.void, [core.int])
   }),
   methods: () => ({
-    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html.ElementList$(T), [core.String]]),
-    [dartx.query]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.queryAll]: dart.definiteFunctionType(T => [html.ElementList$(T), [core.String]]),
+    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
     [dartx.getNamespacedAttributes]: dart.definiteFunctionType(core.Map$(core.String, core.String), [core.String]),
-    [dartx.getComputedStyle]: dart.definiteFunctionType(html.CssStyleDeclaration, [], [core.String]),
+    [dartx.getComputedStyle]: dart.definiteFunctionType(html$.CssStyleDeclaration, [], [core.String]),
     [dartx.appendText]: dart.definiteFunctionType(dart.void, [core.String]),
-    [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
+    [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
     [dartx.attached]: dart.definiteFunctionType(dart.void, []),
     [dartx.detached]: dart.definiteFunctionType(dart.void, []),
     [dartx.enteredView]: dart.definiteFunctionType(dart.void, []),
     [dartx.leftView]: dart.definiteFunctionType(dart.void, []),
-    [dartx.animate]: dart.definiteFunctionType(html.Animation, [IterableOfMapOfString$dynamic()], [dart.dynamic]),
-    [_animate]: dart.definiteFunctionType(html.Animation, [core.Object], [dart.dynamic]),
+    [dartx.animate]: dart.definiteFunctionType(html$.Animation, [IterableOfMapOfString$dynamic()], [dart.dynamic]),
+    [_animate]: dart.definiteFunctionType(html$.Animation, [core.Object], [dart.dynamic]),
     [dartx.attributeChanged]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-    [dartx.scrollIntoView]: dart.definiteFunctionType(dart.void, [], [html.ScrollAlignment]),
+    [dartx.scrollIntoView]: dart.definiteFunctionType(dart.void, [], [html$.ScrollAlignment]),
     [dartx.insertAdjacentText]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
     [_insertAdjacentText]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-    [dartx.insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
+    [dartx.insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
     [_insertAdjacentHtml]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-    [dartx.insertAdjacentElement]: dart.definiteFunctionType(html.Element, [core.String, html.Element]),
-    [_insertAdjacentElement]: dart.definiteFunctionType(dart.void, [core.String, html.Element]),
-    [_insertAdjacentNode]: dart.definiteFunctionType(dart.void, [core.String, html.Node]),
+    [dartx.insertAdjacentElement]: dart.definiteFunctionType(html$.Element, [core.String, html$.Element]),
+    [_insertAdjacentElement]: dart.definiteFunctionType(dart.void, [core.String, html$.Element]),
+    [_insertAdjacentNode]: dart.definiteFunctionType(dart.void, [core.String, html$.Node]),
     [dartx.matches]: dart.definiteFunctionType(core.bool, [core.String]),
     [dartx.matchesWithAncestors]: dart.definiteFunctionType(core.bool, [core.String]),
-    [dartx.createShadowRoot]: dart.definiteFunctionType(html.ShadowRoot, []),
-    [dartx.offsetTo]: dart.definiteFunctionType(math.Point$(core.num), [html.Element]),
-    [dartx.createFragment]: dart.definiteFunctionType(html.DocumentFragment, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
-    [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
+    [dartx.createShadowRoot]: dart.definiteFunctionType(html$.ShadowRoot, []),
+    [dartx.offsetTo]: dart.definiteFunctionType(math.Point$(core.num), [html$.Element]),
+    [dartx.createFragment]: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
     [dartx.blur]: dart.definiteFunctionType(dart.void, []),
     [dartx.click]: dart.definiteFunctionType(dart.void, []),
     [dartx.focus]: dart.definiteFunctionType(dart.void, []),
-    [dartx.closest]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html.Animation), []),
+    [dartx.closest]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html$.Animation), []),
     [dartx.getAttribute]: dart.definiteFunctionType(core.String, [core.String]),
     [dartx.getAttributeNS]: dart.definiteFunctionType(core.String, [core.String, core.String]),
     [dartx.getBoundingClientRect]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
     [dartx.getClientRects]: dart.definiteFunctionType(core.List$(math.Rectangle$(core.num)), []),
-    [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html.Node), []),
-    [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html.Node), [core.String]),
-    [_getElementsByTagName]: dart.definiteFunctionType(core.List$(html.Node), [core.String]),
+    [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html$.Node), []),
+    [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [_getElementsByTagName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
     [_hasAttribute]: dart.definiteFunctionType(core.bool, [core.String]),
     [_hasAttributeNS]: dart.definiteFunctionType(core.bool, [core.String, core.String]),
     [_removeAttribute]: dart.definiteFunctionType(dart.void, [core.String]),
@@ -57613,16 +57616,16 @@
     [dartx.setAttributeNS]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
     [dartx.after]: dart.definiteFunctionType(dart.void, [core.Object]),
     [dartx.before]: dart.definiteFunctionType(dart.void, [core.Object]),
-    [dartx.querySelector]: dart.definiteFunctionType(html.Element, [core.String]),
-    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html.Node), [core.String])
+    [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String])
   }),
   sfields: () => ({
     mouseWheelEvent: EventStreamProviderOfWheelEvent(),
     transitionEndEvent: EventStreamProviderOfTransitionEvent(),
-    _parseDocument: html.HtmlDocument,
-    _parseRange: html.Range,
-    _defaultValidator: html.NodeValidatorBuilder,
-    _defaultSanitizer: html._ValidatingTreeSanitizer,
+    _parseDocument: html$.HtmlDocument,
+    _parseRange: html$.Range,
+    _defaultValidator: html$.NodeValidatorBuilder,
+    _defaultSanitizer: html$._ValidatingTreeSanitizer,
     _tagsForWhichCreateContextualFragmentIsNotSupported: ListOfString(),
     abortEvent: EventStreamProviderOfEvent(),
     beforeCopyEvent: EventStreamProviderOfEvent(),
@@ -57694,26 +57697,26 @@
   }),
   statics: () => ({
     isTagSupported: dart.definiteFunctionType(core.bool, [core.String]),
-    _determineMouseWheelEventType: dart.definiteFunctionType(core.String, [html.EventTarget]),
-    _determineTransitionEventType: dart.definiteFunctionType(core.String, [html.EventTarget]),
-    _offsetToHelper: dart.definiteFunctionType(math.Point$(core.num), [html.Element, html.Element]),
-    _hasCorruptedAttributes: dart.definiteFunctionType(core.bool, [html.Element]),
-    _hasCorruptedAttributesAdditionalCheck: dart.definiteFunctionType(core.bool, [html.Element]),
+    _determineMouseWheelEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
+    _determineTransitionEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
+    _offsetToHelper: dart.definiteFunctionType(math.Point$(core.num), [html$.Element, html$.Element]),
+    _hasCorruptedAttributes: dart.definiteFunctionType(core.bool, [html$.Element]),
+    _hasCorruptedAttributesAdditionalCheck: dart.definiteFunctionType(core.bool, [html$.Element]),
     _safeTagName: dart.definiteFunctionType(core.String, [dart.dynamic])
   }),
   names: ['isTagSupported', '_determineMouseWheelEventType', '_determineTransitionEventType', '_offsetToHelper', '_hasCorruptedAttributes', '_hasCorruptedAttributesAdditionalCheck', '_safeTagName']
 });
-html.Element._parseDocument = null;
-html.Element._parseRange = null;
-html.Element._defaultValidator = null;
-html.Element._defaultSanitizer = null;
-html.Element._tagsForWhichCreateContextualFragmentIsNotSupported = dart.constList(['HEAD', 'AREA', 'BASE', 'BASEFONT', 'BR', 'COL', 'COLGROUP', 'EMBED', 'FRAME', 'FRAMESET', 'HR', 'IMAGE', 'IMG', 'INPUT', 'ISINDEX', 'LINK', 'META', 'PARAM', 'SOURCE', 'STYLE', 'TITLE', 'WBR'], core.String);
-dart.defineLazy(html.Element, {
+html$.Element._parseDocument = null;
+html$.Element._parseRange = null;
+html$.Element._defaultValidator = null;
+html$.Element._defaultSanitizer = null;
+html$.Element._tagsForWhichCreateContextualFragmentIsNotSupported = dart.constList(['HEAD', 'AREA', 'BASE', 'BASEFONT', 'BR', 'COL', 'COLGROUP', 'EMBED', 'FRAME', 'FRAMESET', 'HR', 'IMAGE', 'IMG', 'INPUT', 'ISINDEX', 'LINK', 'META', 'PARAM', 'SOURCE', 'STYLE', 'TITLE', 'WBR'], core.String);
+dart.defineLazy(html$.Element, {
   get mouseWheelEvent() {
-    return dart.const(new (_CustomEventStreamProviderOfWheelEvent())(html.Element._determineMouseWheelEventType));
+    return dart.const(new (_CustomEventStreamProviderOfWheelEvent())(html$.Element._determineMouseWheelEventType));
   },
   get transitionEndEvent() {
-    return dart.const(new (_CustomEventStreamProviderOfTransitionEvent())(html.Element._determineTransitionEventType));
+    return dart.const(new (_CustomEventStreamProviderOfTransitionEvent())(html$.Element._determineTransitionEventType));
   },
   get abortEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('abort'));
@@ -57917,8 +57920,8 @@
     return dart.const(new (EventStreamProviderOfEvent())('webkitfullscreenerror'));
   }
 });
-dart.registerExtension(dart.global.Element, html.Element);
-html.HtmlElement = class HtmlElement extends html.Element {
+dart.registerExtension(dart.global.Element, html$.Element);
+html$.HtmlElement = class HtmlElement extends html$.Element {
   static new() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -57926,44 +57929,44 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html.HtmlElement, 'created');
-dart.setSignature(html.HtmlElement, {
+dart.defineNamedConstructor(html$.HtmlElement, 'created');
+dart.setSignature(html$.HtmlElement, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.HtmlElement, []),
-    created: dart.definiteFunctionType(html.HtmlElement, [])
+    new: dart.definiteFunctionType(html$.HtmlElement, []),
+    created: dart.definiteFunctionType(html$.HtmlElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLElement, html.HtmlElement);
-html._EntryArray = class _EntryArray extends core.Object {};
-html._EntryArray[dart.implements] = () => [ListOfEntry()];
-dart.registerExtension(dart.global.EntryArray, html._EntryArray);
-html.spawnDomUri = function(uri, args, message) {
+dart.registerExtension(dart.global.HTMLElement, html$.HtmlElement);
+html$._EntryArray = class _EntryArray extends core.Object {};
+html$._EntryArray[dart.implements] = () => [ListOfEntry()];
+dart.registerExtension(dart.global.EntryArray, html$._EntryArray);
+html$.spawnDomUri = function(uri, args, message) {
   dart.throw(new core.UnimplementedError());
 };
-dart.fn(html.spawnDomUri, UriAndListOfStringAnddynamicToFutureOfIsolate());
-html.createCustomUpgrader = function(customElementClass, $this) {
+dart.fn(html$.spawnDomUri, UriAndListOfStringAnddynamicToFutureOfIsolate());
+html$.createCustomUpgrader = function(customElementClass, $this) {
   return $this;
 };
-dart.fn(html.createCustomUpgrader, TypeAnddynamicTodynamic());
+dart.fn(html$.createCustomUpgrader, TypeAnddynamicTodynamic());
 dart.defineExtensionNames([
   'onError'
 ]);
-html.AbstractWorker = class AbstractWorker extends _interceptors.Interceptor {
+html$.AbstractWorker = class AbstractWorker extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get onError() {
-    return html.AbstractWorker.errorEvent.forTarget(this);
+    return html$.AbstractWorker.errorEvent.forTarget(this);
   }
 };
-html.AbstractWorker[dart.implements] = () => [html.EventTarget];
-dart.setSignature(html.AbstractWorker, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AbstractWorker, [])}),
-  getters: () => ({onError: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+html$.AbstractWorker[dart.implements] = () => [html$.EventTarget];
+dart.setSignature(html$.AbstractWorker, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AbstractWorker, [])}),
+  getters: () => ({onError: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   sfields: () => ({errorEvent: EventStreamProviderOfEvent()})
 });
-dart.defineExtensionMembers(html.AbstractWorker, ['onError']);
-dart.defineLazy(html.AbstractWorker, {
+dart.defineExtensionMembers(html$.AbstractWorker, ['onError']);
+dart.defineLazy(html$.AbstractWorker, {
   get errorEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('error'));
   }
@@ -57987,13 +57990,13 @@
   'search',
   'username'
 ]);
-html.AnchorElement = class AnchorElement extends html.HtmlElement {
+html$.AnchorElement = class AnchorElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(opts) {
     let href = opts && 'href' in opts ? opts.href : null;
-    let e = html.AnchorElement._check(html.document[dartx.createElement]("a"));
+    let e = html$.AnchorElement._check(html$.document[dartx.createElement]("a"));
     if (href != null) e[dartx.href] = href;
     return e;
   }
@@ -58113,13 +58116,13 @@
     return String(this);
   }
 };
-dart.defineNamedConstructor(html.AnchorElement, 'created');
-html.AnchorElement[dart.implements] = () => [html.UrlUtils];
-dart.setSignature(html.AnchorElement, {
+dart.defineNamedConstructor(html$.AnchorElement, 'created');
+html$.AnchorElement[dart.implements] = () => [html$.UrlUtils];
+dart.setSignature(html$.AnchorElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.AnchorElement, []),
-    new: dart.definiteFunctionType(html.AnchorElement, [], {href: core.String}),
-    created: dart.definiteFunctionType(html.AnchorElement, [])
+    _: dart.definiteFunctionType(html$.AnchorElement, []),
+    new: dart.definiteFunctionType(html$.AnchorElement, [], {href: core.String}),
+    created: dart.definiteFunctionType(html$.AnchorElement, [])
   }),
   fields: () => ({
     [dartx.download]: core.String,
@@ -58140,7 +58143,7 @@
     [dartx.username]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLAnchorElement, html.AnchorElement);
+dart.registerExtension(dart.global.HTMLAnchorElement, html$.AnchorElement);
 dart.defineExtensionNames([
   'cancel',
   'finish',
@@ -58157,7 +58160,7 @@
   'startClip',
   'startTime'
 ]);
-html.Animation = class Animation extends html.EventTarget {
+html$.Animation = class Animation extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58225,11 +58228,11 @@
     return this.reverse.apply(this, args);
   }
 };
-dart.setSignature(html.Animation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Animation, [])}),
+dart.setSignature(html$.Animation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Animation, [])}),
   fields: () => ({
     [dartx.currentTime]: core.num,
-    [dartx.effect]: html.AnimationEffectReadOnly,
+    [dartx.effect]: html$.AnimationEffectReadOnly,
     [dartx.endClip]: core.num,
     [dartx.finished]: async.Future,
     [dartx.playState]: core.String,
@@ -58247,13 +58250,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.Animation, html.Animation);
+dart.registerExtension(dart.global.Animation, html$.Animation);
 const _get_computedTiming = Symbol('_get_computedTiming');
 dart.defineExtensionNames([
   'computedTiming',
   'timing'
 ]);
-html.AnimationEffectReadOnly = class AnimationEffectReadOnly extends _interceptors.Interceptor {
+html$.AnimationEffectReadOnly = class AnimationEffectReadOnly extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58267,15 +58270,15 @@
     return this.timing;
   }
 };
-dart.setSignature(html.AnimationEffectReadOnly, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AnimationEffectReadOnly, [])}),
+dart.setSignature(html$.AnimationEffectReadOnly, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AnimationEffectReadOnly, [])}),
   fields: () => ({
     [_get_computedTiming]: dart.dynamic,
-    [dartx.timing]: html.AnimationEffectTiming
+    [dartx.timing]: html$.AnimationEffectTiming
   }),
   getters: () => ({[dartx.computedTiming]: dart.definiteFunctionType(core.Map, [])})
 });
-dart.registerExtension(dart.global.AnimationEffectReadOnly, html.AnimationEffectReadOnly);
+dart.registerExtension(dart.global.AnimationEffectReadOnly, html$.AnimationEffectReadOnly);
 dart.defineExtensionNames([
   'delay',
   'direction',
@@ -58287,7 +58290,7 @@
   'iterations',
   'playbackRate'
 ]);
-html.AnimationEffectTiming = class AnimationEffectTiming extends _interceptors.Interceptor {
+html$.AnimationEffectTiming = class AnimationEffectTiming extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58346,8 +58349,8 @@
     this.playbackRate = value;
   }
 };
-dart.setSignature(html.AnimationEffectTiming, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AnimationEffectTiming, [])}),
+dart.setSignature(html$.AnimationEffectTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AnimationEffectTiming, [])}),
   fields: () => ({
     [dartx.delay]: core.num,
     [dartx.direction]: core.String,
@@ -58360,12 +58363,12 @@
     [dartx.playbackRate]: core.num
   })
 });
-dart.registerExtension(dart.global.AnimationEffectTiming, html.AnimationEffectTiming);
+dart.registerExtension(dart.global.AnimationEffectTiming, html$.AnimationEffectTiming);
 dart.defineExtensionNames([
   'animationName',
   'elapsedTime'
 ]);
-html.AnimationEvent = class AnimationEvent extends html.Event {
+html$.AnimationEvent = class AnimationEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58373,9 +58376,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.AnimationEvent._create_1(type, eventInitDict_1);
+      return html$.AnimationEvent._create_1(type, eventInitDict_1);
     }
-    return html.AnimationEvent._create_2(type);
+    return html$.AnimationEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.AnimationEvent(type, eventInitDict);
@@ -58390,27 +58393,27 @@
     return this.elapsedTime;
   }
 };
-dart.setSignature(html.AnimationEvent, {
+dart.setSignature(html$.AnimationEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.AnimationEvent, []),
-    new: dart.definiteFunctionType(html.AnimationEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.AnimationEvent, []),
+    new: dart.definiteFunctionType(html$.AnimationEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.animationName]: core.String,
     [dartx.elapsedTime]: core.double
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.AnimationEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.AnimationEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.AnimationEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AnimationEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.AnimationEvent, html.AnimationEvent);
+dart.registerExtension(dart.global.AnimationEvent, html$.AnimationEvent);
 dart.defineExtensionNames([
   'currentTime',
   'timelineTime'
 ]);
-html.AnimationPlayerEvent = class AnimationPlayerEvent extends html.Event {
+html$.AnimationPlayerEvent = class AnimationPlayerEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58418,9 +58421,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.AnimationPlayerEvent._create_1(type, eventInitDict_1);
+      return html$.AnimationPlayerEvent._create_1(type, eventInitDict_1);
     }
-    return html.AnimationPlayerEvent._create_2(type);
+    return html$.AnimationPlayerEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.AnimationPlayerEvent(type, eventInitDict);
@@ -58435,29 +58438,29 @@
     return this.timelineTime;
   }
 };
-dart.setSignature(html.AnimationPlayerEvent, {
+dart.setSignature(html$.AnimationPlayerEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.AnimationPlayerEvent, []),
-    new: dart.definiteFunctionType(html.AnimationPlayerEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.AnimationPlayerEvent, []),
+    new: dart.definiteFunctionType(html$.AnimationPlayerEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.currentTime]: core.double,
     [dartx.timelineTime]: core.double
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.AnimationPlayerEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.AnimationPlayerEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.AnimationPlayerEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AnimationPlayerEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.AnimationPlayerEvent, html.AnimationPlayerEvent);
+dart.registerExtension(dart.global.AnimationPlayerEvent, html$.AnimationPlayerEvent);
 dart.defineExtensionNames([
   'getAnimations',
   'play',
   'currentTime',
   'playbackRate'
 ]);
-html.AnimationTimeline = class AnimationTimeline extends _interceptors.Interceptor {
+html$.AnimationTimeline = class AnimationTimeline extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58480,23 +58483,23 @@
     return this.play.apply(this, args);
   }
 };
-dart.setSignature(html.AnimationTimeline, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AnimationTimeline, [])}),
+dart.setSignature(html$.AnimationTimeline, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AnimationTimeline, [])}),
   fields: () => ({
     [dartx.currentTime]: core.num,
     [dartx.playbackRate]: core.num
   }),
   methods: () => ({
-    [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html.Animation), []),
-    [dartx.play]: dart.definiteFunctionType(html.Animation, [html.AnimationEffectReadOnly])
+    [dartx.getAnimations]: dart.definiteFunctionType(core.List$(html$.Animation), []),
+    [dartx.play]: dart.definiteFunctionType(html$.Animation, [html$.AnimationEffectReadOnly])
   })
 });
-dart.registerExtension(dart.global.AnimationTimeline, html.AnimationTimeline);
+dart.registerExtension(dart.global.AnimationTimeline, html$.AnimationTimeline);
 dart.defineExtensionNames([
   'outcome',
   'platform'
 ]);
-html.AppBannerPromptResult = class AppBannerPromptResult extends _interceptors.Interceptor {
+html$.AppBannerPromptResult = class AppBannerPromptResult extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58507,14 +58510,14 @@
     return this.platform;
   }
 };
-dart.setSignature(html.AppBannerPromptResult, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AppBannerPromptResult, [])}),
+dart.setSignature(html$.AppBannerPromptResult, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AppBannerPromptResult, [])}),
   fields: () => ({
     [dartx.outcome]: core.String,
     [dartx.platform]: core.String
   })
 });
-dart.registerExtension(dart.global.AppBannerPromptResult, html.AppBannerPromptResult);
+dart.registerExtension(dart.global.AppBannerPromptResult, html$.AppBannerPromptResult);
 dart.defineExtensionNames([
   'abort',
   'swapCache',
@@ -58529,7 +58532,7 @@
   'onUpdateReady',
   'status'
 ]);
-html.ApplicationCache = class ApplicationCache extends html.EventTarget {
+html$.ApplicationCache = class ApplicationCache extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58549,42 +58552,42 @@
     return this.update.apply(this, args);
   }
   get [dartx.onCached]() {
-    return html.ApplicationCache.cachedEvent.forTarget(this);
+    return html$.ApplicationCache.cachedEvent.forTarget(this);
   }
   get [dartx.onChecking]() {
-    return html.ApplicationCache.checkingEvent.forTarget(this);
+    return html$.ApplicationCache.checkingEvent.forTarget(this);
   }
   get [dartx.onDownloading]() {
-    return html.ApplicationCache.downloadingEvent.forTarget(this);
+    return html$.ApplicationCache.downloadingEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.ApplicationCache.errorEvent.forTarget(this);
+    return html$.ApplicationCache.errorEvent.forTarget(this);
   }
   get [dartx.onNoUpdate]() {
-    return html.ApplicationCache.noUpdateEvent.forTarget(this);
+    return html$.ApplicationCache.noUpdateEvent.forTarget(this);
   }
   get [dartx.onObsolete]() {
-    return html.ApplicationCache.obsoleteEvent.forTarget(this);
+    return html$.ApplicationCache.obsoleteEvent.forTarget(this);
   }
   get [dartx.onProgress]() {
-    return html.ApplicationCache.progressEvent.forTarget(this);
+    return html$.ApplicationCache.progressEvent.forTarget(this);
   }
   get [dartx.onUpdateReady]() {
-    return html.ApplicationCache.updateReadyEvent.forTarget(this);
+    return html$.ApplicationCache.updateReadyEvent.forTarget(this);
   }
 };
-dart.setSignature(html.ApplicationCache, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ApplicationCache, [])}),
+dart.setSignature(html$.ApplicationCache, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ApplicationCache, [])}),
   fields: () => ({[dartx.status]: core.int}),
   getters: () => ({
-    [dartx.onCached]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onChecking]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onDownloading]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onNoUpdate]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onObsolete]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onUpdateReady]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onCached]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onChecking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onDownloading]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onNoUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onObsolete]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onUpdateReady]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
     [dartx.abort]: dart.definiteFunctionType(dart.void, []),
@@ -58609,13 +58612,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-html.ApplicationCache.CHECKING = 2;
-html.ApplicationCache.DOWNLOADING = 3;
-html.ApplicationCache.IDLE = 1;
-html.ApplicationCache.OBSOLETE = 5;
-html.ApplicationCache.UNCACHED = 0;
-html.ApplicationCache.UPDATEREADY = 4;
-dart.defineLazy(html.ApplicationCache, {
+html$.ApplicationCache.CHECKING = 2;
+html$.ApplicationCache.DOWNLOADING = 3;
+html$.ApplicationCache.IDLE = 1;
+html$.ApplicationCache.OBSOLETE = 5;
+html$.ApplicationCache.UNCACHED = 0;
+html$.ApplicationCache.UPDATEREADY = 4;
+dart.defineLazy(html$.ApplicationCache, {
   get cachedEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('cached'));
   },
@@ -58641,16 +58644,16 @@
     return dart.const(new (EventStreamProviderOfEvent())('updateready'));
   }
 });
-dart.registerExtension(dart.global.ApplicationCache, html.ApplicationCache);
-dart.registerExtension(dart.global.DOMApplicationCache, html.ApplicationCache);
-dart.registerExtension(dart.global.OfflineResourceList, html.ApplicationCache);
+dart.registerExtension(dart.global.ApplicationCache, html$.ApplicationCache);
+dart.registerExtension(dart.global.DOMApplicationCache, html$.ApplicationCache);
+dart.registerExtension(dart.global.OfflineResourceList, html$.ApplicationCache);
 dart.defineExtensionNames([
   'message',
   'reason',
   'status',
   'url'
 ]);
-html.ApplicationCacheErrorEvent = class ApplicationCacheErrorEvent extends html.Event {
+html$.ApplicationCacheErrorEvent = class ApplicationCacheErrorEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -58658,9 +58661,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
+      return html$.ApplicationCacheErrorEvent._create_1(type, eventInitDict_1);
     }
-    return html.ApplicationCacheErrorEvent._create_2(type);
+    return html$.ApplicationCacheErrorEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.ApplicationCacheErrorEvent(type, eventInitDict);
@@ -58681,10 +58684,10 @@
     return this.url;
   }
 };
-dart.setSignature(html.ApplicationCacheErrorEvent, {
+dart.setSignature(html$.ApplicationCacheErrorEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ApplicationCacheErrorEvent, []),
-    new: dart.definiteFunctionType(html.ApplicationCacheErrorEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, []),
+    new: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.message]: core.String,
@@ -58693,12 +58696,12 @@
     [dartx.url]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ApplicationCacheErrorEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ApplicationCacheErrorEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ApplicationCacheErrorEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.ApplicationCacheErrorEvent, html.ApplicationCacheErrorEvent);
+dart.registerExtension(dart.global.ApplicationCacheErrorEvent, html$.ApplicationCacheErrorEvent);
 dart.defineExtensionNames([
   'toString',
   'alt',
@@ -58717,12 +58720,12 @@
   'search',
   'username'
 ]);
-html.AreaElement = class AreaElement extends html.HtmlElement {
+html$.AreaElement = class AreaElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.AreaElement._check(html.document[dartx.createElement]("area"));
+    return html$.AreaElement._check(html$.document[dartx.createElement]("area"));
   }
   created() {
     this[dartx.alt] = null;
@@ -58833,13 +58836,13 @@
     return String(this);
   }
 };
-dart.defineNamedConstructor(html.AreaElement, 'created');
-html.AreaElement[dart.implements] = () => [html.UrlUtils];
-dart.setSignature(html.AreaElement, {
+dart.defineNamedConstructor(html$.AreaElement, 'created');
+html$.AreaElement[dart.implements] = () => [html$.UrlUtils];
+dart.setSignature(html$.AreaElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.AreaElement, []),
-    new: dart.definiteFunctionType(html.AreaElement, []),
-    created: dart.definiteFunctionType(html.AreaElement, [])
+    _: dart.definiteFunctionType(html$.AreaElement, []),
+    new: dart.definiteFunctionType(html$.AreaElement, []),
+    created: dart.definiteFunctionType(html$.AreaElement, [])
   }),
   fields: () => ({
     [dartx.alt]: core.String,
@@ -58859,7 +58862,7 @@
     [dartx.username]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLAreaElement, html.AreaElement);
+dart.registerExtension(dart.global.HTMLAreaElement, html$.AreaElement);
 dart.defineExtensionNames([
   'addTextTrack',
   'canPlayType',
@@ -58909,7 +58912,7 @@
   'audioDecodedByteCount',
   'videoDecodedByteCount'
 ]);
-html.MediaElement = class MediaElement extends html.HtmlElement {
+html$.MediaElement = class MediaElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59124,29 +59127,29 @@
     return this.webkitGenerateKeyRequest.apply(this, args);
   }
   get [dartx.onKeyAdded]() {
-    return html.MediaElement.keyAddedEvent.forElement(this);
+    return html$.MediaElement.keyAddedEvent.forElement(this);
   }
   get [dartx.onKeyError]() {
-    return html.MediaElement.keyErrorEvent.forElement(this);
+    return html$.MediaElement.keyErrorEvent.forElement(this);
   }
   get [dartx.onKeyMessage]() {
-    return html.MediaElement.keyMessageEvent.forElement(this);
+    return html$.MediaElement.keyMessageEvent.forElement(this);
   }
   get [dartx.onNeedKey]() {
-    return html.MediaElement.needKeyEvent.forElement(this);
+    return html$.MediaElement.needKeyEvent.forElement(this);
   }
 };
-dart.defineNamedConstructor(html.MediaElement, 'created');
-dart.setSignature(html.MediaElement, {
+dart.defineNamedConstructor(html$.MediaElement, 'created');
+dart.setSignature(html$.MediaElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaElement, []),
-    created: dart.definiteFunctionType(html.MediaElement, [])
+    _: dart.definiteFunctionType(html$.MediaElement, []),
+    created: dart.definiteFunctionType(html$.MediaElement, [])
   }),
   fields: () => ({
-    [dartx.audioTracks]: html.AudioTrackList,
+    [dartx.audioTracks]: html$.AudioTrackList,
     [dartx.autoplay]: core.bool,
-    [dartx.buffered]: html.TimeRanges,
-    [dartx.controller]: html.MediaController,
+    [dartx.buffered]: html$.TimeRanges,
+    [dartx.controller]: html$.MediaController,
     [dartx.controls]: core.bool,
     [dartx.crossOrigin]: core.String,
     [dartx.currentSrc]: core.String,
@@ -59155,41 +59158,41 @@
     [dartx.defaultPlaybackRate]: core.num,
     [dartx.duration]: core.double,
     [dartx.ended]: core.bool,
-    [dartx.error]: html.MediaError,
+    [dartx.error]: html$.MediaError,
     [dartx.loop]: core.bool,
     [dartx.mediaGroup]: core.String,
-    [dartx.mediaKeys]: html.MediaKeys,
+    [dartx.mediaKeys]: html$.MediaKeys,
     [dartx.muted]: core.bool,
     [dartx.networkState]: core.int,
     [dartx.paused]: core.bool,
     [dartx.playbackRate]: core.num,
-    [dartx.played]: html.TimeRanges,
+    [dartx.played]: html$.TimeRanges,
     [dartx.preload]: core.String,
     [dartx.readyState]: core.int,
-    [dartx.seekable]: html.TimeRanges,
+    [dartx.seekable]: html$.TimeRanges,
     [dartx.seeking]: core.bool,
-    [dartx.session]: html.MediaSession,
+    [dartx.session]: html$.MediaSession,
     [dartx.sinkId]: core.String,
     [dartx.src]: core.String,
-    [dartx.textTracks]: html.TextTrackList,
-    [dartx.videoTracks]: html.VideoTrackList,
+    [dartx.textTracks]: html$.TextTrackList,
+    [dartx.videoTracks]: html$.VideoTrackList,
     [dartx.volume]: core.num,
     [dartx.audioDecodedByteCount]: core.int,
     [dartx.videoDecodedByteCount]: core.int
   }),
   getters: () => ({
-    [dartx.onKeyAdded]: dart.definiteFunctionType(html.ElementStream$(html.MediaKeyEvent), []),
-    [dartx.onKeyError]: dart.definiteFunctionType(html.ElementStream$(html.MediaKeyEvent), []),
-    [dartx.onKeyMessage]: dart.definiteFunctionType(html.ElementStream$(html.MediaKeyEvent), []),
-    [dartx.onNeedKey]: dart.definiteFunctionType(html.ElementStream$(html.MediaKeyEvent), [])
+    [dartx.onKeyAdded]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
+    [dartx.onKeyError]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
+    [dartx.onKeyMessage]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), []),
+    [dartx.onNeedKey]: dart.definiteFunctionType(html$.ElementStream$(html$.MediaKeyEvent), [])
   }),
   methods: () => ({
-    [dartx.addTextTrack]: dart.definiteFunctionType(html.TextTrack, [core.String], [core.String, core.String]),
+    [dartx.addTextTrack]: dart.definiteFunctionType(html$.TextTrack, [core.String], [core.String, core.String]),
     [dartx.canPlayType]: dart.definiteFunctionType(core.String, [core.String], [core.String]),
     [dartx.load]: dart.definiteFunctionType(dart.void, []),
     [dartx.pause]: dart.definiteFunctionType(dart.void, []),
     [dartx.play]: dart.definiteFunctionType(dart.void, []),
-    [dartx.setMediaKeys]: dart.definiteFunctionType(async.Future, [html.MediaKeys]),
+    [dartx.setMediaKeys]: dart.definiteFunctionType(async.Future, [html$.MediaKeys]),
     [dartx.setSinkId]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.addKey]: dart.definiteFunctionType(dart.void, [core.String, typed_data.Uint8List], [typed_data.Uint8List, core.String]),
     [dartx.cancelKeyRequest]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
@@ -59211,16 +59214,16 @@
     NETWORK_NO_SOURCE: core.int
   })
 });
-html.MediaElement.HAVE_CURRENT_DATA = 2;
-html.MediaElement.HAVE_ENOUGH_DATA = 4;
-html.MediaElement.HAVE_FUTURE_DATA = 3;
-html.MediaElement.HAVE_METADATA = 1;
-html.MediaElement.HAVE_NOTHING = 0;
-html.MediaElement.NETWORK_EMPTY = 0;
-html.MediaElement.NETWORK_IDLE = 1;
-html.MediaElement.NETWORK_LOADING = 2;
-html.MediaElement.NETWORK_NO_SOURCE = 3;
-dart.defineLazy(html.MediaElement, {
+html$.MediaElement.HAVE_CURRENT_DATA = 2;
+html$.MediaElement.HAVE_ENOUGH_DATA = 4;
+html$.MediaElement.HAVE_FUTURE_DATA = 3;
+html$.MediaElement.HAVE_METADATA = 1;
+html$.MediaElement.HAVE_NOTHING = 0;
+html$.MediaElement.NETWORK_EMPTY = 0;
+html$.MediaElement.NETWORK_IDLE = 1;
+html$.MediaElement.NETWORK_LOADING = 2;
+html$.MediaElement.NETWORK_NO_SOURCE = 3;
+dart.defineLazy(html$.MediaElement, {
   get keyAddedEvent() {
     return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitkeyadded'));
   },
@@ -59234,14 +59237,14 @@
     return dart.const(new (EventStreamProviderOfMediaKeyEvent())('webkitneedkey'));
   }
 });
-dart.registerExtension(dart.global.HTMLMediaElement, html.MediaElement);
-html.AudioElement = class AudioElement extends html.MediaElement {
+dart.registerExtension(dart.global.HTMLMediaElement, html$.MediaElement);
+html$.AudioElement = class AudioElement extends html$.MediaElement {
   static _(src) {
     if (src === void 0) src = null;
     if (src != null) {
-      return html.AudioElement._create_1(src);
+      return html$.AudioElement._create_1(src);
     }
-    return html.AudioElement._create_2();
+    return html$.AudioElement._create_2();
   }
   static _create_1(src) {
     return new Audio(src);
@@ -59254,23 +59257,23 @@
   }
   static new(src) {
     if (src === void 0) src = null;
-    return html.AudioElement._(src);
+    return html$.AudioElement._(src);
   }
 };
-dart.defineNamedConstructor(html.AudioElement, 'created');
-dart.setSignature(html.AudioElement, {
+dart.defineNamedConstructor(html$.AudioElement, 'created');
+dart.setSignature(html$.AudioElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.AudioElement, [], [core.String]),
-    created: dart.definiteFunctionType(html.AudioElement, []),
-    new: dart.definiteFunctionType(html.AudioElement, [], [core.String])
+    _: dart.definiteFunctionType(html$.AudioElement, [], [core.String]),
+    created: dart.definiteFunctionType(html$.AudioElement, []),
+    new: dart.definiteFunctionType(html$.AudioElement, [], [core.String])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.AudioElement, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.AudioElement, [])
+    _create_1: dart.definiteFunctionType(html$.AudioElement, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AudioElement, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.HTMLAudioElement, html.AudioElement);
+dart.registerExtension(dart.global.HTMLAudioElement, html$.AudioElement);
 dart.defineExtensionNames([
   'enabled',
   'id',
@@ -59278,7 +59281,7 @@
   'label',
   'language'
 ]);
-html.AudioTrack = class AudioTrack extends _interceptors.Interceptor {
+html$.AudioTrack = class AudioTrack extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59301,8 +59304,8 @@
     return this.language;
   }
 };
-dart.setSignature(html.AudioTrack, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AudioTrack, [])}),
+dart.setSignature(html$.AudioTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AudioTrack, [])}),
   fields: () => ({
     [dartx.enabled]: core.bool,
     [dartx.id]: core.String,
@@ -59311,14 +59314,14 @@
     [dartx.language]: core.String
   })
 });
-dart.registerExtension(dart.global.AudioTrack, html.AudioTrack);
+dart.registerExtension(dart.global.AudioTrack, html$.AudioTrack);
 const __getter__ = Symbol('__getter__');
 dart.defineExtensionNames([
   'getTrackById',
   'onChange',
   'length'
 ]);
-html.AudioTrackList = class AudioTrackList extends html.EventTarget {
+html$.AudioTrackList = class AudioTrackList extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59332,29 +59335,29 @@
     return this.getTrackById.apply(this, args);
   }
   get [dartx.onChange]() {
-    return html.AudioTrackList.changeEvent.forTarget(this);
+    return html$.AudioTrackList.changeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.AudioTrackList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.AudioTrackList, [])}),
+dart.setSignature(html$.AudioTrackList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.AudioTrackList, [])}),
   fields: () => ({[dartx.length]: core.int}),
-  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
-    [__getter__]: dart.definiteFunctionType(html.AudioTrack, [core.int]),
-    [dartx.getTrackById]: dart.definiteFunctionType(html.AudioTrack, [core.String])
+    [__getter__]: dart.definiteFunctionType(html$.AudioTrack, [core.int]),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.AudioTrack, [core.String])
   }),
   sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.AudioTrackList, {
+dart.defineLazy(html$.AudioTrackList, {
   get changeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.AudioTrackList, html.AudioTrackList);
+dart.registerExtension(dart.global.AudioTrackList, html$.AudioTrackList);
 dart.defineExtensionNames([
   'reason'
 ]);
-html.AutocompleteErrorEvent = class AutocompleteErrorEvent extends html.Event {
+html$.AutocompleteErrorEvent = class AutocompleteErrorEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59362,9 +59365,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.AutocompleteErrorEvent._create_1(type, eventInitDict_1);
+      return html$.AutocompleteErrorEvent._create_1(type, eventInitDict_1);
     }
-    return html.AutocompleteErrorEvent._create_2(type);
+    return html$.AutocompleteErrorEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.AutocompleteErrorEvent(type, eventInitDict);
@@ -59376,43 +59379,43 @@
     return this.reason;
   }
 };
-dart.setSignature(html.AutocompleteErrorEvent, {
+dart.setSignature(html$.AutocompleteErrorEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.AutocompleteErrorEvent, []),
-    new: dart.definiteFunctionType(html.AutocompleteErrorEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.AutocompleteErrorEvent, []),
+    new: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [core.String], [core.Map])
   }),
   fields: () => ({[dartx.reason]: core.String}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.AutocompleteErrorEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.AutocompleteErrorEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.AutocompleteErrorEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.AutocompleteErrorEvent, html.AutocompleteErrorEvent);
-html.BRElement = class BRElement extends html.HtmlElement {
+dart.registerExtension(dart.global.AutocompleteErrorEvent, html$.AutocompleteErrorEvent);
+html$.BRElement = class BRElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.BRElement._check(html.document[dartx.createElement]("br"));
+    return html$.BRElement._check(html$.document[dartx.createElement]("br"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.BRElement, 'created');
-dart.setSignature(html.BRElement, {
+dart.defineNamedConstructor(html$.BRElement, 'created');
+dart.setSignature(html$.BRElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.BRElement, []),
-    new: dart.definiteFunctionType(html.BRElement, []),
-    created: dart.definiteFunctionType(html.BRElement, [])
+    _: dart.definiteFunctionType(html$.BRElement, []),
+    new: dart.definiteFunctionType(html$.BRElement, []),
+    created: dart.definiteFunctionType(html$.BRElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLBRElement, html.BRElement);
+dart.registerExtension(dart.global.HTMLBRElement, html$.BRElement);
 dart.defineExtensionNames([
   'visible'
 ]);
-html.BarProp = class BarProp extends _interceptors.Interceptor {
+html$.BarProp = class BarProp extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59420,21 +59423,21 @@
     return this.visible;
   }
 };
-dart.setSignature(html.BarProp, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BarProp, [])}),
+dart.setSignature(html$.BarProp, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BarProp, [])}),
   fields: () => ({[dartx.visible]: core.bool})
 });
-dart.registerExtension(dart.global.BarProp, html.BarProp);
+dart.registerExtension(dart.global.BarProp, html$.BarProp);
 dart.defineExtensionNames([
   'href',
   'target'
 ]);
-html.BaseElement = class BaseElement extends html.HtmlElement {
+html$.BaseElement = class BaseElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.BaseElement._check(html.document[dartx.createElement]("base"));
+    return html$.BaseElement._check(html$.document[dartx.createElement]("base"));
   }
   created() {
     this[dartx.href] = null;
@@ -59454,26 +59457,26 @@
     this.target = value;
   }
 };
-dart.defineNamedConstructor(html.BaseElement, 'created');
-dart.setSignature(html.BaseElement, {
+dart.defineNamedConstructor(html$.BaseElement, 'created');
+dart.setSignature(html$.BaseElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.BaseElement, []),
-    new: dart.definiteFunctionType(html.BaseElement, []),
-    created: dart.definiteFunctionType(html.BaseElement, [])
+    _: dart.definiteFunctionType(html$.BaseElement, []),
+    new: dart.definiteFunctionType(html$.BaseElement, []),
+    created: dart.definiteFunctionType(html$.BaseElement, [])
   }),
   fields: () => ({
     [dartx.href]: core.String,
     [dartx.target]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLBaseElement, html.BaseElement);
+dart.registerExtension(dart.global.HTMLBaseElement, html$.BaseElement);
 dart.defineExtensionNames([
   'charging',
   'chargingTime',
   'dischargingTime',
   'level'
 ]);
-html.BatteryManager = class BatteryManager extends html.EventTarget {
+html$.BatteryManager = class BatteryManager extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59490,8 +59493,8 @@
     return this.level;
   }
 };
-dart.setSignature(html.BatteryManager, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BatteryManager, [])}),
+dart.setSignature(html$.BatteryManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BatteryManager, [])}),
   fields: () => ({
     [dartx.charging]: core.bool,
     [dartx.chargingTime]: core.double,
@@ -59499,13 +59502,13 @@
     [dartx.level]: core.double
   })
 });
-dart.registerExtension(dart.global.BatteryManager, html.BatteryManager);
+dart.registerExtension(dart.global.BatteryManager, html$.BatteryManager);
 dart.defineExtensionNames([
   'platforms',
   'prompt',
   'userChoice'
 ]);
-html.BeforeInstallPromptEvent = class BeforeInstallPromptEvent extends html.Event {
+html$.BeforeInstallPromptEvent = class BeforeInstallPromptEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59513,9 +59516,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
+      return html$.BeforeInstallPromptEvent._create_1(type, eventInitDict_1);
     }
-    return html.BeforeInstallPromptEvent._create_2(type);
+    return html$.BeforeInstallPromptEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.BeforeInstallPromptEvent(type, eventInitDict);
@@ -59533,26 +59536,26 @@
     return this.prompt.apply(this, args);
   }
 };
-dart.setSignature(html.BeforeInstallPromptEvent, {
+dart.setSignature(html$.BeforeInstallPromptEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.BeforeInstallPromptEvent, []),
-    new: dart.definiteFunctionType(html.BeforeInstallPromptEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, []),
+    new: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [core.String], [core.Map])
   }),
   fields: () => ({[dartx.userChoice]: async.Future}),
   getters: () => ({[dartx.platforms]: dart.definiteFunctionType(core.List$(core.String), [])}),
   methods: () => ({[dartx.prompt]: dart.definiteFunctionType(async.Future, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.BeforeInstallPromptEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.BeforeInstallPromptEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.BeforeInstallPromptEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.BeforeInstallPromptEvent, html.BeforeInstallPromptEvent);
+dart.registerExtension(dart.global.BeforeInstallPromptEvent, html$.BeforeInstallPromptEvent);
 dart.defineExtensionNames([
   'returnValue',
   'returnValue'
 ]);
-html.BeforeUnloadEvent = class BeforeUnloadEvent extends html.Event {
+html$.BeforeUnloadEvent = class BeforeUnloadEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59563,19 +59566,19 @@
     this.returnValue = value;
   }
 };
-dart.setSignature(html.BeforeUnloadEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BeforeUnloadEvent, [])}),
+dart.setSignature(html$.BeforeUnloadEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BeforeUnloadEvent, [])}),
   getters: () => ({[dartx.returnValue]: dart.definiteFunctionType(core.String, [])}),
   setters: () => ({[dartx.returnValue]: dart.definiteFunctionType(dart.void, [core.String])})
 });
-dart.registerExtension(dart.global.BeforeUnloadEvent, html.BeforeUnloadEvent);
+dart.registerExtension(dart.global.BeforeUnloadEvent, html$.BeforeUnloadEvent);
 dart.defineExtensionNames([
   'close',
   'slice',
   'size',
   'type'
 ]);
-html.Blob = class Blob extends _interceptors.Interceptor {
+html$.Blob = class Blob extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59595,12 +59598,12 @@
     if (type === void 0) type = null;
     if (endings === void 0) endings = null;
     if (type == null && endings == null) {
-      return html.Blob._check(html.Blob._create_1(blobParts));
+      return html$.Blob._check(html$.Blob._create_1(blobParts));
     }
-    let bag = html.Blob._create_bag();
-    if (type != null) html.Blob._bag_set(bag, 'type', type);
-    if (endings != null) html.Blob._bag_set(bag, 'endings', endings);
-    return html.Blob._check(html.Blob._create_2(blobParts, bag));
+    let bag = html$.Blob._create_bag();
+    if (type != null) html$.Blob._bag_set(bag, 'type', type);
+    if (endings != null) html$.Blob._bag_set(bag, 'endings', endings);
+    return html$.Blob._check(html$.Blob._create_2(blobParts, bag));
   }
   static _create_1(parts) {
     return new self.Blob(parts);
@@ -59615,10 +59618,10 @@
     bag[key] = value;
   }
 };
-dart.setSignature(html.Blob, {
+dart.setSignature(html$.Blob, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.Blob, []),
-    new: dart.definiteFunctionType(html.Blob, [core.List], [core.String, core.String])
+    _: dart.definiteFunctionType(html$.Blob, []),
+    new: dart.definiteFunctionType(html$.Blob, [core.List], [core.String, core.String])
   }),
   fields: () => ({
     [dartx.size]: core.int,
@@ -59626,7 +59629,7 @@
   }),
   methods: () => ({
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
-    [dartx.slice]: dart.definiteFunctionType(html.Blob, [], [core.int, core.int, core.String])
+    [dartx.slice]: dart.definiteFunctionType(html$.Blob, [], [core.int, core.int, core.String])
   }),
   statics: () => ({
     _create_1: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
@@ -59636,12 +59639,12 @@
   }),
   names: ['_create_1', '_create_2', '_create_bag', '_bag_set']
 });
-dart.registerExtension(dart.global.Blob, html.Blob);
+dart.registerExtension(dart.global.Blob, html$.Blob);
 const _requestDevice_1 = Symbol('_requestDevice_1');
 dart.defineExtensionNames([
   'requestDevice'
 ]);
-html.Bluetooth = class Bluetooth extends _interceptors.Interceptor {
+html$.Bluetooth = class Bluetooth extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59653,14 +59656,14 @@
     return this.requestDevice.apply(this, args);
   }
 };
-dart.setSignature(html.Bluetooth, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Bluetooth, [])}),
+dart.setSignature(html$.Bluetooth, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Bluetooth, [])}),
   methods: () => ({
     [dartx.requestDevice]: dart.definiteFunctionType(async.Future, [core.Map]),
     [_requestDevice_1]: dart.definiteFunctionType(async.Future, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.Bluetooth, html.Bluetooth);
+dart.registerExtension(dart.global.Bluetooth, html$.Bluetooth);
 dart.defineExtensionNames([
   'connectGatt',
   'deviceClass',
@@ -59672,7 +59675,7 @@
   'vendorID',
   'vendorIDSource'
 ]);
-html.BluetoothDevice = class BluetoothDevice extends _interceptors.Interceptor {
+html$.BluetoothDevice = class BluetoothDevice extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59704,8 +59707,8 @@
     return this.connectGATT.apply(this, args);
   }
 };
-dart.setSignature(html.BluetoothDevice, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BluetoothDevice, [])}),
+dart.setSignature(html$.BluetoothDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothDevice, [])}),
   fields: () => ({
     [dartx.deviceClass]: core.int,
     [dartx.instanceID]: core.String,
@@ -59718,13 +59721,13 @@
   }),
   methods: () => ({[dartx.connectGatt]: dart.definiteFunctionType(async.Future, [])})
 });
-dart.registerExtension(dart.global.BluetoothDevice, html.BluetoothDevice);
+dart.registerExtension(dart.global.BluetoothDevice, html$.BluetoothDevice);
 dart.defineExtensionNames([
   'readValue',
   'writeValue',
   'uuid'
 ]);
-html.BluetoothGattCharacteristic = class BluetoothGattCharacteristic extends _interceptors.Interceptor {
+html$.BluetoothGattCharacteristic = class BluetoothGattCharacteristic extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59738,20 +59741,20 @@
     return this.writeValue.apply(this, args);
   }
 };
-dart.setSignature(html.BluetoothGattCharacteristic, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BluetoothGattCharacteristic, [])}),
+dart.setSignature(html$.BluetoothGattCharacteristic, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattCharacteristic, [])}),
   fields: () => ({[dartx.uuid]: core.String}),
   methods: () => ({
     [dartx.readValue]: dart.definiteFunctionType(async.Future, []),
     [dartx.writeValue]: dart.definiteFunctionType(async.Future, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.BluetoothGATTCharacteristic, html.BluetoothGattCharacteristic);
+dart.registerExtension(dart.global.BluetoothGATTCharacteristic, html$.BluetoothGattCharacteristic);
 dart.defineExtensionNames([
   'getPrimaryService',
   'connected'
 ]);
-html.BluetoothGattRemoteServer = class BluetoothGattRemoteServer extends _interceptors.Interceptor {
+html$.BluetoothGattRemoteServer = class BluetoothGattRemoteServer extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59762,18 +59765,18 @@
     return this.getPrimaryService.apply(this, args);
   }
 };
-dart.setSignature(html.BluetoothGattRemoteServer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BluetoothGattRemoteServer, [])}),
+dart.setSignature(html$.BluetoothGattRemoteServer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattRemoteServer, [])}),
   fields: () => ({[dartx.connected]: core.bool}),
   methods: () => ({[dartx.getPrimaryService]: dart.definiteFunctionType(async.Future, [dart.dynamic])})
 });
-dart.registerExtension(dart.global.BluetoothGATTRemoteServer, html.BluetoothGattRemoteServer);
+dart.registerExtension(dart.global.BluetoothGATTRemoteServer, html$.BluetoothGattRemoteServer);
 dart.defineExtensionNames([
   'getCharacteristic',
   'isPrimary',
   'uuid'
 ]);
-html.BluetoothGattService = class BluetoothGattService extends _interceptors.Interceptor {
+html$.BluetoothGattService = class BluetoothGattService extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59787,22 +59790,22 @@
     return this.getCharacteristic.apply(this, args);
   }
 };
-dart.setSignature(html.BluetoothGattService, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BluetoothGattService, [])}),
+dart.setSignature(html$.BluetoothGattService, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothGattService, [])}),
   fields: () => ({
     [dartx.isPrimary]: core.bool,
     [dartx.uuid]: core.String
   }),
   methods: () => ({[dartx.getCharacteristic]: dart.definiteFunctionType(async.Future, [dart.dynamic])})
 });
-dart.registerExtension(dart.global.BluetoothGATTService, html.BluetoothGattService);
-html.BluetoothUuid = class BluetoothUuid extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.BluetoothGATTService, html$.BluetoothGattService);
+html$.BluetoothUuid = class BluetoothUuid extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.BluetoothUuid, {
-  constructors: () => ({_: dart.definiteFunctionType(html.BluetoothUuid, [])}),
+dart.setSignature(html$.BluetoothUuid, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.BluetoothUuid, [])}),
   statics: () => ({
     canonicalUuid: dart.definiteFunctionType(core.String, [core.int]),
     getCharacteristic: dart.definiteFunctionType(core.String, [core.Object]),
@@ -59811,7 +59814,7 @@
   }),
   names: ['canonicalUuid', 'getCharacteristic', 'getDescriptor', 'getService']
 });
-dart.registerExtension(dart.global.BluetoothUUID, html.BluetoothUuid);
+dart.registerExtension(dart.global.BluetoothUUID, html$.BluetoothUuid);
 dart.defineExtensionNames([
   'arrayBuffer',
   'blob',
@@ -59819,7 +59822,7 @@
   'text',
   'bodyUsed'
 ]);
-html.Body = class Body extends _interceptors.Interceptor {
+html$.Body = class Body extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -59839,8 +59842,8 @@
     return this.text.apply(this, args);
   }
 };
-dart.setSignature(html.Body, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Body, [])}),
+dart.setSignature(html$.Body, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Body, [])}),
   fields: () => ({[dartx.bodyUsed]: core.bool}),
   methods: () => ({
     [dartx.arrayBuffer]: dart.definiteFunctionType(async.Future, []),
@@ -59849,7 +59852,7 @@
     [dartx.text]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.Body, html.Body);
+dart.registerExtension(dart.global.Body, html$.Body);
 dart.defineExtensionNames([
   'onBlur',
   'onError',
@@ -59865,72 +59868,72 @@
   'onStorage',
   'onUnload'
 ]);
-html.BodyElement = class BodyElement extends html.HtmlElement {
+html$.BodyElement = class BodyElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.BodyElement._check(html.document[dartx.createElement]("body"));
+    return html$.BodyElement._check(html$.document[dartx.createElement]("body"));
   }
   created() {
     super.created();
   }
   get [dartx.onBlur]() {
-    return html.BodyElement.blurEvent.forElement(this);
+    return html$.BodyElement.blurEvent.forElement(this);
   }
   get [dartx.onError]() {
-    return html.BodyElement.errorEvent.forElement(this);
+    return html$.BodyElement.errorEvent.forElement(this);
   }
   get [dartx.onFocus]() {
-    return html.BodyElement.focusEvent.forElement(this);
+    return html$.BodyElement.focusEvent.forElement(this);
   }
   get [dartx.onHashChange]() {
-    return html.BodyElement.hashChangeEvent.forElement(this);
+    return html$.BodyElement.hashChangeEvent.forElement(this);
   }
   get [dartx.onLoad]() {
-    return html.BodyElement.loadEvent.forElement(this);
+    return html$.BodyElement.loadEvent.forElement(this);
   }
   get [dartx.onMessage]() {
-    return html.BodyElement.messageEvent.forElement(this);
+    return html$.BodyElement.messageEvent.forElement(this);
   }
   get [dartx.onOffline]() {
-    return html.BodyElement.offlineEvent.forElement(this);
+    return html$.BodyElement.offlineEvent.forElement(this);
   }
   get [dartx.onOnline]() {
-    return html.BodyElement.onlineEvent.forElement(this);
+    return html$.BodyElement.onlineEvent.forElement(this);
   }
   get [dartx.onPopState]() {
-    return html.BodyElement.popStateEvent.forElement(this);
+    return html$.BodyElement.popStateEvent.forElement(this);
   }
   get [dartx.onResize]() {
-    return html.BodyElement.resizeEvent.forElement(this);
+    return html$.BodyElement.resizeEvent.forElement(this);
   }
   get [dartx.onScroll]() {
-    return html.BodyElement.scrollEvent.forElement(this);
+    return html$.BodyElement.scrollEvent.forElement(this);
   }
   get [dartx.onStorage]() {
-    return html.BodyElement.storageEvent.forElement(this);
+    return html$.BodyElement.storageEvent.forElement(this);
   }
   get [dartx.onUnload]() {
-    return html.BodyElement.unloadEvent.forElement(this);
+    return html$.BodyElement.unloadEvent.forElement(this);
   }
 };
-dart.defineNamedConstructor(html.BodyElement, 'created');
-html.BodyElement[dart.implements] = () => [html.WindowEventHandlers];
-dart.setSignature(html.BodyElement, {
+dart.defineNamedConstructor(html$.BodyElement, 'created');
+html$.BodyElement[dart.implements] = () => [html$.WindowEventHandlers];
+dart.setSignature(html$.BodyElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.BodyElement, []),
-    new: dart.definiteFunctionType(html.BodyElement, []),
-    created: dart.definiteFunctionType(html.BodyElement, [])
+    _: dart.definiteFunctionType(html$.BodyElement, []),
+    new: dart.definiteFunctionType(html$.BodyElement, []),
+    created: dart.definiteFunctionType(html$.BodyElement, [])
   }),
   getters: () => ({
-    [dartx.onHashChange]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(html.ElementStream$(html.MessageEvent), []),
-    [dartx.onOffline]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onOnline]: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-    [dartx.onPopState]: dart.definiteFunctionType(html.ElementStream$(html.PopStateEvent), []),
-    [dartx.onStorage]: dart.definiteFunctionType(html.ElementStream$(html.StorageEvent), []),
-    [dartx.onUnload]: dart.definiteFunctionType(html.ElementStream$(html.Event), [])
+    [dartx.onHashChange]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(html$.ElementStream$(html$.MessageEvent), []),
+    [dartx.onOffline]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onOnline]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+    [dartx.onPopState]: dart.definiteFunctionType(html$.ElementStream$(html$.PopStateEvent), []),
+    [dartx.onStorage]: dart.definiteFunctionType(html$.ElementStream$(html$.StorageEvent), []),
+    [dartx.onUnload]: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
   }),
   sfields: () => ({
     blurEvent: EventStreamProviderOfEvent(),
@@ -59948,7 +59951,7 @@
     unloadEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineLazy(html.BodyElement, {
+dart.defineLazy(html$.BodyElement, {
   get blurEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('blur'));
   },
@@ -59989,7 +59992,7 @@
     return dart.const(new (EventStreamProviderOfEvent())('unload'));
   }
 });
-dart.registerExtension(dart.global.HTMLBodyElement, html.BodyElement);
+dart.registerExtension(dart.global.HTMLBodyElement, html$.BodyElement);
 dart.defineExtensionNames([
   'checkValidity',
   'reportValidity',
@@ -60010,12 +60013,12 @@
   'value',
   'willValidate'
 ]);
-html.ButtonElement = class ButtonElement extends html.HtmlElement {
+html$.ButtonElement = class ButtonElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ButtonElement._check(html.document[dartx.createElement]("button"));
+    return html$.ButtonElement._check(html$.document[dartx.createElement]("button"));
   }
   created() {
     this[dartx.autofocus] = null;
@@ -60120,17 +60123,17 @@
     return this.setCustomValidity.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.ButtonElement, 'created');
-dart.setSignature(html.ButtonElement, {
+dart.defineNamedConstructor(html$.ButtonElement, 'created');
+dart.setSignature(html$.ButtonElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ButtonElement, []),
-    new: dart.definiteFunctionType(html.ButtonElement, []),
-    created: dart.definiteFunctionType(html.ButtonElement, [])
+    _: dart.definiteFunctionType(html$.ButtonElement, []),
+    new: dart.definiteFunctionType(html$.ButtonElement, []),
+    created: dart.definiteFunctionType(html$.ButtonElement, [])
   }),
   fields: () => ({
     [dartx.autofocus]: core.bool,
     [dartx.disabled]: core.bool,
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.formAction]: core.String,
     [dartx.formEnctype]: core.String,
     [dartx.formMethod]: core.String,
@@ -60140,7 +60143,7 @@
     [dartx.name]: core.String,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.value]: core.String,
     [dartx.willValidate]: core.bool
   }),
@@ -60150,7 +60153,7 @@
     [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
   })
 });
-dart.registerExtension(dart.global.HTMLButtonElement, html.ButtonElement);
+dart.registerExtension(dart.global.HTMLButtonElement, html$.ButtonElement);
 const _createTextNode = Symbol('_createTextNode');
 dart.defineExtensionNames([
   'appendData',
@@ -60165,7 +60168,7 @@
   'nextElementSibling',
   'previousElementSibling'
 ]);
-html.CharacterData = class CharacterData extends html.Node {
+html$.CharacterData = class CharacterData extends html$.Node {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -60206,14 +60209,14 @@
     return this.previousElementSibling;
   }
 };
-html.CharacterData[dart.implements] = () => [html.NonDocumentTypeChildNode, html.ChildNode];
-dart.setSignature(html.CharacterData, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CharacterData, [])}),
+html$.CharacterData[dart.implements] = () => [html$.NonDocumentTypeChildNode, html$.ChildNode];
+dart.setSignature(html$.CharacterData, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CharacterData, [])}),
   fields: () => ({
     [dartx.data]: core.String,
     [dartx.length]: core.int,
-    [dartx.nextElementSibling]: html.Element,
-    [dartx.previousElementSibling]: html.Element
+    [dartx.nextElementSibling]: html$.Element,
+    [dartx.previousElementSibling]: html$.Element
   }),
   methods: () => ({
     [dartx.appendData]: dart.definiteFunctionType(dart.void, [core.String]),
@@ -60225,15 +60228,15 @@
     [dartx.before]: dart.definiteFunctionType(dart.void, [core.Object])
   })
 });
-dart.registerExtension(dart.global.CharacterData, html.CharacterData);
+dart.registerExtension(dart.global.CharacterData, html$.CharacterData);
 dart.defineExtensionNames([
   'getDestinationInsertionPoints',
   'splitText',
   'wholeText'
 ]);
-html.Text = class Text extends html.CharacterData {
+html$.Text = class Text extends html$.CharacterData {
   static new(data) {
-    return html.document[_createTextNode](data);
+    return html$.document[_createTextNode](data);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -60248,27 +60251,27 @@
     return this.splitText.apply(this, args);
   }
 };
-dart.setSignature(html.Text, {
+dart.setSignature(html$.Text, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.Text, [core.String]),
-    _: dart.definiteFunctionType(html.Text, [])
+    new: dart.definiteFunctionType(html$.Text, [core.String]),
+    _: dart.definiteFunctionType(html$.Text, [])
   }),
   fields: () => ({[dartx.wholeText]: core.String}),
   methods: () => ({
-    [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html.Node), []),
-    [dartx.splitText]: dart.definiteFunctionType(html.Text, [core.int])
+    [dartx.getDestinationInsertionPoints]: dart.definiteFunctionType(core.List$(html$.Node), []),
+    [dartx.splitText]: dart.definiteFunctionType(html$.Text, [core.int])
   })
 });
-dart.registerExtension(dart.global.Text, html.Text);
-html.CDataSection = class CDataSection extends html.Text {
+dart.registerExtension(dart.global.Text, html$.Text);
+html$.CDataSection = class CDataSection extends html$.Text {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.CDataSection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CDataSection, [])})
+dart.setSignature(html$.CDataSection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CDataSection, [])})
 });
-dart.registerExtension(dart.global.CDATASection, html.CDataSection);
+dart.registerExtension(dart.global.CDATASection, html$.CDataSection);
 const _match_1 = Symbol('_match_1');
 const _match_2 = Symbol('_match_2');
 dart.defineExtensionNames([
@@ -60278,7 +60281,7 @@
   'match',
   'open'
 ]);
-html.CacheStorage = class CacheStorage extends _interceptors.Interceptor {
+html$.CacheStorage = class CacheStorage extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -60309,8 +60312,8 @@
     return this.open.apply(this, args);
   }
 };
-dart.setSignature(html.CacheStorage, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CacheStorage, [])}),
+dart.setSignature(html$.CacheStorage, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CacheStorage, [])}),
   methods: () => ({
     [dartx.delete]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.has]: dart.definiteFunctionType(async.Future, [core.String]),
@@ -60321,7 +60324,7 @@
     [dartx.open]: dart.definiteFunctionType(async.Future, [core.String])
   })
 });
-dart.registerExtension(dart.global.CacheStorage, html.CacheStorage);
+dart.registerExtension(dart.global.CacheStorage, html$.CacheStorage);
 const _getContext_1 = Symbol('_getContext_1');
 const _getContext_2 = Symbol('_getContext_2');
 const _toDataUrl = Symbol('_toDataUrl');
@@ -60335,14 +60338,14 @@
   'height',
   'width'
 ]);
-html.CanvasElement = class CanvasElement extends html.HtmlElement {
+html$.CanvasElement = class CanvasElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(opts) {
     let width = opts && 'width' in opts ? opts.width : null;
     let height = opts && 'height' in opts ? opts.height : null;
-    let e = html.CanvasElement._check(html.document[dartx.createElement]("canvas"));
+    let e = html$.CanvasElement._check(html$.document[dartx.createElement]("canvas"));
     if (width != null) e[dartx.width] = width;
     if (height != null) e[dartx.height] = height;
     return e;
@@ -60382,10 +60385,10 @@
     return this.toDataURL.apply(this, args);
   }
   get [dartx.onWebGlContextLost]() {
-    return html.CanvasElement.webGlContextLostEvent.forElement(this);
+    return html$.CanvasElement.webGlContextLostEvent.forElement(this);
   }
   get [dartx.onWebGlContextRestored]() {
-    return html.CanvasElement.webGlContextRestoredEvent.forElement(this);
+    return html$.CanvasElement.webGlContextRestoredEvent.forElement(this);
   }
   get [dartx.context2D]() {
     return this.getContext('2d');
@@ -60410,22 +60413,22 @@
     return this[_toDataUrl](type, quality);
   }
 };
-dart.defineNamedConstructor(html.CanvasElement, 'created');
-html.CanvasElement[dart.implements] = () => [html.CanvasImageSource];
-dart.setSignature(html.CanvasElement, {
+dart.defineNamedConstructor(html$.CanvasElement, 'created');
+html$.CanvasElement[dart.implements] = () => [html$.CanvasImageSource];
+dart.setSignature(html$.CanvasElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.CanvasElement, []),
-    new: dart.definiteFunctionType(html.CanvasElement, [], {width: core.int, height: core.int}),
-    created: dart.definiteFunctionType(html.CanvasElement, [])
+    _: dart.definiteFunctionType(html$.CanvasElement, []),
+    new: dart.definiteFunctionType(html$.CanvasElement, [], {width: core.int, height: core.int}),
+    created: dart.definiteFunctionType(html$.CanvasElement, [])
   }),
   fields: () => ({
     [dartx.height]: core.int,
     [dartx.width]: core.int
   }),
   getters: () => ({
-    [dartx.onWebGlContextLost]: dart.definiteFunctionType(html.ElementStream$(web_gl.ContextEvent), []),
-    [dartx.onWebGlContextRestored]: dart.definiteFunctionType(html.ElementStream$(web_gl.ContextEvent), []),
-    [dartx.context2D]: dart.definiteFunctionType(html.CanvasRenderingContext2D, [])
+    [dartx.onWebGlContextLost]: dart.definiteFunctionType(html$.ElementStream$(web_gl.ContextEvent), []),
+    [dartx.onWebGlContextRestored]: dart.definiteFunctionType(html$.ElementStream$(web_gl.ContextEvent), []),
+    [dartx.context2D]: dart.definiteFunctionType(html$.CanvasRenderingContext2D, [])
   }),
   methods: () => ({
     [dartx.getContext]: dart.definiteFunctionType(core.Object, [core.String], [core.Map]),
@@ -60440,7 +60443,7 @@
     webGlContextRestoredEvent: EventStreamProviderOfContextEvent()
   })
 });
-dart.defineLazy(html.CanvasElement, {
+dart.defineLazy(html$.CanvasElement, {
   get webGlContextLostEvent() {
     return dart.const(new (EventStreamProviderOfContextEvent())('webglcontextlost'));
   },
@@ -60448,11 +60451,11 @@
     return dart.const(new (EventStreamProviderOfContextEvent())('webglcontextrestored'));
   }
 });
-dart.registerExtension(dart.global.HTMLCanvasElement, html.CanvasElement);
+dart.registerExtension(dart.global.HTMLCanvasElement, html$.CanvasElement);
 dart.defineExtensionNames([
   'addColorStop'
 ]);
-html.CanvasGradient = class CanvasGradient extends _interceptors.Interceptor {
+html$.CanvasGradient = class CanvasGradient extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -60460,15 +60463,15 @@
     return this.addColorStop.apply(this, args);
   }
 };
-dart.setSignature(html.CanvasGradient, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CanvasGradient, [])}),
+dart.setSignature(html$.CanvasGradient, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CanvasGradient, [])}),
   methods: () => ({[dartx.addColorStop]: dart.definiteFunctionType(dart.void, [core.num, core.String])})
 });
-dart.registerExtension(dart.global.CanvasGradient, html.CanvasGradient);
+dart.registerExtension(dart.global.CanvasGradient, html$.CanvasGradient);
 dart.defineExtensionNames([
   'setTransform'
 ]);
-html.CanvasPattern = class CanvasPattern extends _interceptors.Interceptor {
+html$.CanvasPattern = class CanvasPattern extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -60476,12 +60479,12 @@
     return this.setTransform.apply(this, args);
   }
 };
-dart.setSignature(html.CanvasPattern, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CanvasPattern, [])}),
-  methods: () => ({[dartx.setTransform]: dart.definiteFunctionType(dart.void, [svg.Matrix])})
+dart.setSignature(html$.CanvasPattern, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CanvasPattern, [])}),
+  methods: () => ({[dartx.setTransform]: dart.definiteFunctionType(dart.void, [svg$.Matrix])})
 });
-dart.registerExtension(dart.global.CanvasPattern, html.CanvasPattern);
-html.CanvasRenderingContext = class CanvasRenderingContext extends core.Object {};
+dart.registerExtension(dart.global.CanvasPattern, html$.CanvasPattern);
+html$.CanvasRenderingContext = class CanvasRenderingContext extends core.Object {};
 const _addHitRegion_1 = Symbol('_addHitRegion_1');
 const _addHitRegion_2 = Symbol('_addHitRegion_2');
 const _createImageData_1 = Symbol('_createImageData_1');
@@ -60571,7 +60574,7 @@
   'textAlign',
   'textBaseline'
 ]);
-html.CanvasRenderingContext2D = class CanvasRenderingContext2D extends _interceptors.Interceptor {
+html$.CanvasRenderingContext2D = class CanvasRenderingContext2D extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -60722,7 +60725,7 @@
   }
   [dartx.createImageData](imagedata_OR_sw, sh) {
     if (sh === void 0) sh = null;
-    if (html.ImageData.is(imagedata_OR_sw) && sh == null) {
+    if (html$.ImageData.is(imagedata_OR_sw) && sh == null) {
       let imagedata_1 = html_common.convertDartToNative_ImageData(imagedata_OR_sw);
       return html_common.convertNativeToDart_ImageData(this[_createImageData_1](imagedata_1));
     }
@@ -60947,12 +60950,12 @@
     return 1.0;
   }
 };
-html.CanvasRenderingContext2D[dart.implements] = () => [html.CanvasRenderingContext];
-dart.setSignature(html.CanvasRenderingContext2D, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CanvasRenderingContext2D, [])}),
+html$.CanvasRenderingContext2D[dart.implements] = () => [html$.CanvasRenderingContext];
+dart.setSignature(html$.CanvasRenderingContext2D, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CanvasRenderingContext2D, [])}),
   fields: () => ({
-    [dartx.canvas]: html.CanvasElement,
-    [dartx.currentTransform]: svg.Matrix,
+    [dartx.canvas]: html$.CanvasElement,
+    [dartx.currentTransform]: svg$.Matrix,
     [dartx.direction]: core.String,
     [dartx.fillStyle]: core.Object,
     [dartx.filter]: core.String,
@@ -60985,24 +60988,24 @@
     [dartx.clearHitRegions]: dart.definiteFunctionType(dart.void, []),
     [dartx.clearRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
     [dartx.clip]: dart.definiteFunctionType(dart.void, [], [dart.dynamic, core.String]),
-    [dartx.createImageData]: dart.definiteFunctionType(html.ImageData, [dart.dynamic], [core.num]),
+    [dartx.createImageData]: dart.definiteFunctionType(html$.ImageData, [dart.dynamic], [core.num]),
     [_createImageData_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
     [_createImageData_2]: dart.definiteFunctionType(dart.dynamic, [core.num, dart.dynamic]),
-    [dartx.createLinearGradient]: dart.definiteFunctionType(html.CanvasGradient, [core.num, core.num, core.num, core.num]),
-    [dartx.createPattern]: dart.definiteFunctionType(html.CanvasPattern, [core.Object, core.String]),
-    [dartx.createRadialGradient]: dart.definiteFunctionType(html.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
-    [dartx.drawFocusIfNeeded]: dart.definiteFunctionType(dart.void, [dart.dynamic], [html.Element]),
+    [dartx.createLinearGradient]: dart.definiteFunctionType(html$.CanvasGradient, [core.num, core.num, core.num, core.num]),
+    [dartx.createPattern]: dart.definiteFunctionType(html$.CanvasPattern, [core.Object, core.String]),
+    [dartx.createRadialGradient]: dart.definiteFunctionType(html$.CanvasGradient, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.drawFocusIfNeeded]: dart.definiteFunctionType(dart.void, [dart.dynamic], [html$.Element]),
     [dartx.fillRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
     [dartx.getContextAttributes]: dart.definiteFunctionType(core.Map, []),
     [_getContextAttributes_1]: dart.definiteFunctionType(dart.dynamic, []),
-    [dartx.getImageData]: dart.definiteFunctionType(html.ImageData, [core.num, core.num, core.num, core.num]),
+    [dartx.getImageData]: dart.definiteFunctionType(html$.ImageData, [core.num, core.num, core.num, core.num]),
     [_getImageData_1]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
     [_getLineDash]: dart.definiteFunctionType(core.List$(core.num), []),
     [dartx.isContextLost]: dart.definiteFunctionType(core.bool, []),
     [dartx.isPointInPath]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.num], [dart.dynamic, core.String]),
     [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [dart.dynamic, core.num], [core.num]),
-    [dartx.measureText]: dart.definiteFunctionType(html.TextMetrics, [core.String]),
-    [dartx.putImageData]: dart.definiteFunctionType(dart.void, [html.ImageData, core.num, core.num], [core.num, core.num, core.num, core.num]),
+    [dartx.measureText]: dart.definiteFunctionType(html$.TextMetrics, [core.String]),
+    [dartx.putImageData]: dart.definiteFunctionType(dart.void, [html$.ImageData, core.num, core.num], [core.num, core.num, core.num, core.num]),
     [_putImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic]),
     [_putImageData_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
     [dartx.removeHitRegion]: dart.definiteFunctionType(dart.void, [core.String]),
@@ -61011,9 +61014,9 @@
     [dartx.rotate]: dart.definiteFunctionType(dart.void, [core.num]),
     [dartx.save]: dart.definiteFunctionType(dart.void, []),
     [dartx.scale]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
-    [dartx.scrollPathIntoView]: dart.definiteFunctionType(dart.void, [], [html.Path2D]),
+    [dartx.scrollPathIntoView]: dart.definiteFunctionType(dart.void, [], [html$.Path2D]),
     [dartx.setTransform]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
-    [dartx.stroke]: dart.definiteFunctionType(dart.void, [], [html.Path2D]),
+    [dartx.stroke]: dart.definiteFunctionType(dart.void, [], [html$.Path2D]),
     [dartx.strokeRect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
     [dartx.strokeText]: dart.definiteFunctionType(dart.void, [core.String, core.num, core.num], [core.num]),
     [dartx.transform]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
@@ -61027,45 +61030,45 @@
     [dartx.moveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
     [dartx.quadraticCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
     [dartx.rect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num]),
-    [dartx.createImageDataFromImageData]: dart.definiteFunctionType(html.ImageData, [html.ImageData]),
+    [dartx.createImageDataFromImageData]: dart.definiteFunctionType(html$.ImageData, [html$.ImageData]),
     [dartx.setFillColorRgb]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.num]),
     [dartx.setFillColorHsl]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num], [core.num]),
     [dartx.setStrokeColorRgb]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int], [core.num]),
     [dartx.setStrokeColorHsl]: dart.definiteFunctionType(dart.void, [core.int, core.num, core.num], [core.num]),
     [dartx.arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num], [core.bool]),
-    [dartx.createPatternFromImage]: dart.definiteFunctionType(html.CanvasPattern, [html.ImageElement, core.String]),
-    [dartx.drawImageToRect]: dart.definiteFunctionType(dart.void, [html.CanvasImageSource, RectangleOfnum()], {sourceRect: RectangleOfnum()}),
-    [dartx.drawImage]: dart.definiteFunctionType(dart.void, [html.CanvasImageSource, core.num, core.num]),
-    [dartx.drawImageScaled]: dart.definiteFunctionType(dart.void, [html.CanvasImageSource, core.num, core.num, core.num, core.num]),
-    [dartx.drawImageScaledFromSource]: dart.definiteFunctionType(dart.void, [html.CanvasImageSource, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.createPatternFromImage]: dart.definiteFunctionType(html$.CanvasPattern, [html$.ImageElement, core.String]),
+    [dartx.drawImageToRect]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, RectangleOfnum()], {sourceRect: RectangleOfnum()}),
+    [dartx.drawImage]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num]),
+    [dartx.drawImageScaled]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num]),
+    [dartx.drawImageScaledFromSource]: dart.definiteFunctionType(dart.void, [html$.CanvasImageSource, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
     [dartx.getLineDash]: dart.definiteFunctionType(core.List$(core.num), []),
     [dartx.setLineDash]: dart.definiteFunctionType(dart.void, [ListOfnum()]),
     [dartx.fillText]: dart.definiteFunctionType(dart.void, [core.String, core.num, core.num], [core.num]),
     [dartx.fill]: dart.definiteFunctionType(dart.void, [], [core.String])
   })
 });
-dart.registerExtension(dart.global.CanvasRenderingContext2D, html.CanvasRenderingContext2D);
-html.ChildNode = class ChildNode extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.CanvasRenderingContext2D, html$.CanvasRenderingContext2D);
+html$.ChildNode = class ChildNode extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.ChildNode, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ChildNode, [])})
+dart.setSignature(html$.ChildNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ChildNode, [])})
 });
-html.ChromiumValuebuffer = class ChromiumValuebuffer extends _interceptors.Interceptor {
+html$.ChromiumValuebuffer = class ChromiumValuebuffer extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.ChromiumValuebuffer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ChromiumValuebuffer, [])})
+dart.setSignature(html$.ChromiumValuebuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ChromiumValuebuffer, [])})
 });
-dart.registerExtension(dart.global.CHROMIUMValuebuffer, html.ChromiumValuebuffer);
+dart.registerExtension(dart.global.CHROMIUMValuebuffer, html$.ChromiumValuebuffer);
 dart.defineExtensionNames([
   'id'
 ]);
-html.GeofencingRegion = class GeofencingRegion extends _interceptors.Interceptor {
+html$.GeofencingRegion = class GeofencingRegion extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61073,23 +61076,23 @@
     return this.id;
   }
 };
-dart.setSignature(html.GeofencingRegion, {
-  constructors: () => ({_: dart.definiteFunctionType(html.GeofencingRegion, [])}),
+dart.setSignature(html$.GeofencingRegion, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GeofencingRegion, [])}),
   fields: () => ({[dartx.id]: core.String})
 });
-dart.registerExtension(dart.global.GeofencingRegion, html.GeofencingRegion);
+dart.registerExtension(dart.global.GeofencingRegion, html$.GeofencingRegion);
 dart.defineExtensionNames([
   'latitude',
   'longitude',
   'radius'
 ]);
-html.CircularGeofencingRegion = class CircularGeofencingRegion extends html.GeofencingRegion {
+html$.CircularGeofencingRegion = class CircularGeofencingRegion extends html$.GeofencingRegion {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(init) {
     let init_1 = html_common.convertDartToNative_Dictionary(init);
-    return html.CircularGeofencingRegion._create_1(init_1);
+    return html$.CircularGeofencingRegion._create_1(init_1);
   }
   static _create_1(init) {
     return new self.CircularGeofencingRegion(init);
@@ -61104,10 +61107,10 @@
     return this.radius;
   }
 };
-dart.setSignature(html.CircularGeofencingRegion, {
+dart.setSignature(html$.CircularGeofencingRegion, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.CircularGeofencingRegion, []),
-    new: dart.definiteFunctionType(html.CircularGeofencingRegion, [core.Map])
+    _: dart.definiteFunctionType(html$.CircularGeofencingRegion, []),
+    new: dart.definiteFunctionType(html$.CircularGeofencingRegion, [core.Map])
   }),
   fields: () => ({
     [dartx.latitude]: core.double,
@@ -61118,12 +61121,12 @@
     MAX_RADIUS: core.num,
     MIN_RADIUS: core.num
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.CircularGeofencingRegion, [dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.CircularGeofencingRegion, [dart.dynamic])}),
   names: ['_create_1']
 });
-html.CircularGeofencingRegion.MAX_RADIUS = 100.0;
-html.CircularGeofencingRegion.MIN_RADIUS = 1.0;
-dart.registerExtension(dart.global.CircularGeofencingRegion, html.CircularGeofencingRegion);
+html$.CircularGeofencingRegion.MAX_RADIUS = 100.0;
+html$.CircularGeofencingRegion.MIN_RADIUS = 1.0;
+dart.registerExtension(dart.global.CircularGeofencingRegion, html$.CircularGeofencingRegion);
 const _postMessage_1 = Symbol('_postMessage_1');
 const _postMessage_2 = Symbol('_postMessage_2');
 dart.defineExtensionNames([
@@ -61132,7 +61135,7 @@
   'id',
   'url'
 ]);
-html.Client = class Client extends _interceptors.Interceptor {
+html$.Client = class Client extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61163,8 +61166,8 @@
     return this.postMessage.apply(this, args);
   }
 };
-dart.setSignature(html.Client, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Client, [])}),
+dart.setSignature(html$.Client, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Client, [])}),
   fields: () => ({
     [dartx.frameType]: core.String,
     [dartx.id]: core.String,
@@ -61176,7 +61179,7 @@
     [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.Client, html.Client);
+dart.registerExtension(dart.global.Client, html$.Client);
 const _matchAll_1 = Symbol('_matchAll_1');
 const _matchAll_2 = Symbol('_matchAll_2');
 dart.defineExtensionNames([
@@ -61184,7 +61187,7 @@
   'matchAll',
   'openWindow'
 ]);
-html.Clients = class Clients extends _interceptors.Interceptor {
+html$.Clients = class Clients extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61209,8 +61212,8 @@
     return this.openWindow.apply(this, args);
   }
 };
-dart.setSignature(html.Clients, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Clients, [])}),
+dart.setSignature(html$.Clients, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Clients, [])}),
   methods: () => ({
     [dartx.claim]: dart.definiteFunctionType(async.Future, []),
     [dartx.matchAll]: dart.definiteFunctionType(async.Future, [], [core.Map]),
@@ -61219,11 +61222,11 @@
     [dartx.openWindow]: dart.definiteFunctionType(async.Future, [core.String])
   })
 });
-dart.registerExtension(dart.global.Clients, html.Clients);
+dart.registerExtension(dart.global.Clients, html$.Clients);
 dart.defineExtensionNames([
   'clipboardData'
 ]);
-html.ClipboardEvent = class ClipboardEvent extends html.Event {
+html$.ClipboardEvent = class ClipboardEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61231,17 +61234,17 @@
     return this.clipboardData;
   }
 };
-dart.setSignature(html.ClipboardEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ClipboardEvent, [])}),
-  fields: () => ({[dartx.clipboardData]: html.DataTransfer})
+dart.setSignature(html$.ClipboardEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ClipboardEvent, [])}),
+  fields: () => ({[dartx.clipboardData]: html$.DataTransfer})
 });
-dart.registerExtension(dart.global.ClipboardEvent, html.ClipboardEvent);
+dart.registerExtension(dart.global.ClipboardEvent, html$.ClipboardEvent);
 dart.defineExtensionNames([
   'code',
   'reason',
   'wasClean'
 ]);
-html.CloseEvent = class CloseEvent extends html.Event {
+html$.CloseEvent = class CloseEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61249,9 +61252,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.CloseEvent._create_1(type, eventInitDict_1);
+      return html$.CloseEvent._create_1(type, eventInitDict_1);
     }
-    return html.CloseEvent._create_2(type);
+    return html$.CloseEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.CloseEvent(type, eventInitDict);
@@ -61269,10 +61272,10 @@
     return this.wasClean;
   }
 };
-dart.setSignature(html.CloseEvent, {
+dart.setSignature(html$.CloseEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.CloseEvent, []),
-    new: dart.definiteFunctionType(html.CloseEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.CloseEvent, []),
+    new: dart.definiteFunctionType(html$.CloseEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.code]: core.int,
@@ -61280,31 +61283,31 @@
     [dartx.wasClean]: core.bool
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.CloseEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.CloseEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.CloseEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.CloseEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.CloseEvent, html.CloseEvent);
-html.Comment = class Comment extends html.CharacterData {
+dart.registerExtension(dart.global.CloseEvent, html$.CloseEvent);
+html$.Comment = class Comment extends html$.CharacterData {
   static new(data) {
     if (data === void 0) data = null;
     if (data != null) {
-      return html.document.createComment(data);
+      return html$.document.createComment(data);
     }
-    return html.document.createComment("");
+    return html$.document.createComment("");
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.Comment, {
+dart.setSignature(html$.Comment, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.Comment, [], [core.String]),
-    _: dart.definiteFunctionType(html.Comment, [])
+    new: dart.definiteFunctionType(html$.Comment, [], [core.String]),
+    _: dart.definiteFunctionType(html$.Comment, [])
   })
 });
-dart.registerExtension(dart.global.Comment, html.Comment);
+dart.registerExtension(dart.global.Comment, html$.Comment);
 const _initCompositionEvent = Symbol('_initCompositionEvent');
 const _initUIEvent = Symbol('_initUIEvent');
 const _charCode = Symbol('_charCode');
@@ -61316,16 +61319,16 @@
   'detail',
   'sourceDevice'
 ]);
-html.UIEvent = class UIEvent extends html.Event {
+html$.UIEvent = class UIEvent extends html$.Event {
   static new(type, opts) {
     let view = opts && 'view' in opts ? opts.view : null;
     let detail = opts && 'detail' in opts ? opts.detail : 0;
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
-    let e = html.UIEvent._check(html.document[_createEvent]("UIEvent"));
+    let e = html$.UIEvent._check(html$.document[_createEvent]("UIEvent"));
     e[_initUIEvent](type, canBubble, cancelable, view, detail);
     return e;
   }
@@ -61333,9 +61336,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.UIEvent._create_1(type, eventInitDict_1);
+      return html$.UIEvent._create_1(type, eventInitDict_1);
     }
-    return html.UIEvent._create_2(type);
+    return html$.UIEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.UIEvent(type, eventInitDict);
@@ -61356,7 +61359,7 @@
     return this.sourceDevice;
   }
   get [dartx.view]() {
-    return html._convertNativeToDart_Window(this[_get_view]);
+    return html$._convertNativeToDart_Window(this[_get_view]);
   }
   get [_get_view]() {
     return this.view;
@@ -61368,32 +61371,32 @@
     return this.initUIEvent.apply(this, args);
   }
 };
-dart.setSignature(html.UIEvent, {
+dart.setSignature(html$.UIEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.UIEvent, [core.String], {view: html.Window, detail: core.int, canBubble: core.bool, cancelable: core.bool}),
-    _: dart.definiteFunctionType(html.UIEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.UIEvent, [core.String], {view: html$.Window, detail: core.int, canBubble: core.bool, cancelable: core.bool}),
+    _: dart.definiteFunctionType(html$.UIEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [_charCode]: core.int,
     [dartx.detail]: core.int,
     [_keyCode]: core.int,
-    [dartx.sourceDevice]: html.InputDevice,
+    [dartx.sourceDevice]: html$.InputDevice,
     [_get_view]: dart.dynamic,
     [_which]: core.int
   }),
-  getters: () => ({[dartx.view]: dart.definiteFunctionType(html.WindowBase, [])}),
-  methods: () => ({[_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.int])}),
+  getters: () => ({[dartx.view]: dart.definiteFunctionType(html$.WindowBase, [])}),
+  methods: () => ({[_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.UIEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.UIEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.UIEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.UIEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.UIEvent, html.UIEvent);
+dart.registerExtension(dart.global.UIEvent, html$.UIEvent);
 dart.defineExtensionNames([
   'data'
 ]);
-html.CompositionEvent = class CompositionEvent extends html.UIEvent {
+html$.CompositionEvent = class CompositionEvent extends html$.UIEvent {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
@@ -61401,9 +61404,9 @@
     let data = opts && 'data' in opts ? opts.data : null;
     let locale = opts && 'locale' in opts ? opts.locale : null;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
-    let e = html.CompositionEvent._check(html.document[_createEvent]("CompositionEvent"));
+    let e = html$.CompositionEvent._check(html$.document[_createEvent]("CompositionEvent"));
     if (dart.test(html_common.Device.isFirefox)) {
       e.initCompositionEvent(type, canBubble, cancelable, view, data, locale);
     } else {
@@ -61415,9 +61418,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.CompositionEvent._create_1(type, eventInitDict_1);
+      return html$.CompositionEvent._create_1(type, eventInitDict_1);
     }
-    return html.CompositionEvent._create_2(type);
+    return html$.CompositionEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.CompositionEvent(type, eventInitDict);
@@ -61432,20 +61435,20 @@
     return this.initCompositionEvent.apply(this, args);
   }
 };
-dart.setSignature(html.CompositionEvent, {
+dart.setSignature(html$.CompositionEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.CompositionEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html.Window, data: core.String, locale: core.String}),
-    _: dart.definiteFunctionType(html.CompositionEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.CompositionEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html$.Window, data: core.String, locale: core.String}),
+    _: dart.definiteFunctionType(html$.CompositionEvent, [core.String], [core.Map])
   }),
   fields: () => ({[dartx.data]: core.String}),
-  methods: () => ({[_initCompositionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.String])}),
+  methods: () => ({[_initCompositionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.CompositionEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.CompositionEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.CompositionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.CompositionEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.CompositionEvent, html.CompositionEvent);
+dart.registerExtension(dart.global.CompositionEvent, html$.CompositionEvent);
 dart.defineExtensionNames([
   'disconnect',
   'supports',
@@ -61454,12 +61457,12 @@
   'scrollTop',
   'transform'
 ]);
-html.CompositorProxy = class CompositorProxy extends _interceptors.Interceptor {
+html$.CompositorProxy = class CompositorProxy extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(element, attributeArray) {
-    return html.CompositorProxy._create_1(element, attributeArray);
+    return html$.CompositorProxy._create_1(element, attributeArray);
   }
   static _create_1(element, attributeArray) {
     return new self.CompositorProxy(element, attributeArray);
@@ -61495,37 +61498,37 @@
     return this.supports.apply(this, args);
   }
 };
-dart.setSignature(html.CompositorProxy, {
+dart.setSignature(html$.CompositorProxy, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.CompositorProxy, []),
-    new: dart.definiteFunctionType(html.CompositorProxy, [html.Element, ListOfString()])
+    _: dart.definiteFunctionType(html$.CompositorProxy, []),
+    new: dart.definiteFunctionType(html$.CompositorProxy, [html$.Element, ListOfString()])
   }),
   fields: () => ({
     [dartx.opacity]: core.num,
     [dartx.scrollLeft]: core.num,
     [dartx.scrollTop]: core.num,
-    [dartx.transform]: html.DomMatrix
+    [dartx.transform]: html$.DomMatrix
   }),
   methods: () => ({
     [dartx.disconnect]: dart.definiteFunctionType(dart.void, []),
     [dartx.supports]: dart.definiteFunctionType(core.bool, [core.String])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.CompositorProxy, [dart.dynamic, dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.CompositorProxy, [dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.CompositorProxy, html.CompositorProxy);
+dart.registerExtension(dart.global.CompositorProxy, html$.CompositorProxy);
 dart.defineExtensionNames([
   'postMessage',
   'terminate',
   'onError',
   'onMessage'
 ]);
-html.CompositorWorker = class CompositorWorker extends html.EventTarget {
+html$.CompositorWorker = class CompositorWorker extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(scriptUrl) {
-    return html.CompositorWorker._create_1(scriptUrl);
+    return html$.CompositorWorker._create_1(scriptUrl);
   }
   static _create_1(scriptUrl) {
     return new self.CompositorWorker(scriptUrl);
@@ -61551,21 +61554,21 @@
     return this.terminate.apply(this, args);
   }
   get [dartx.onError]() {
-    return html.CompositorWorker.errorEvent.forTarget(this);
+    return html$.CompositorWorker.errorEvent.forTarget(this);
   }
   get [dartx.onMessage]() {
-    return html.CompositorWorker.messageEvent.forTarget(this);
+    return html$.CompositorWorker.messageEvent.forTarget(this);
   }
 };
-html.CompositorWorker[dart.implements] = () => [html.AbstractWorker];
-dart.setSignature(html.CompositorWorker, {
+html$.CompositorWorker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$.CompositorWorker, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.CompositorWorker, []),
-    new: dart.definiteFunctionType(html.CompositorWorker, [core.String])
+    _: dart.definiteFunctionType(html$.CompositorWorker, []),
+    new: dart.definiteFunctionType(html$.CompositorWorker, [core.String])
   }),
   getters: () => ({
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])
   }),
   methods: () => ({
     [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
@@ -61577,10 +61580,10 @@
     errorEvent: EventStreamProviderOfEvent(),
     messageEvent: EventStreamProviderOfMessageEvent()
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.CompositorWorker, [dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.CompositorWorker, [dart.dynamic])}),
   names: ['_create_1']
 });
-dart.defineLazy(html.CompositorWorker, {
+dart.defineLazy(html$.CompositorWorker, {
   get errorEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('error'));
   },
@@ -61588,7 +61591,7 @@
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.CompositorWorker, html.CompositorWorker);
+dart.registerExtension(dart.global.CompositorWorker, html$.CompositorWorker);
 const _fetch_1 = Symbol('_fetch_1');
 const _fetch_2 = Symbol('_fetch_2');
 const _webkitRequestFileSystem = Symbol('_webkitRequestFileSystem');
@@ -61619,7 +61622,7 @@
   'performance',
   'self'
 ]);
-html.WorkerGlobalScope = class WorkerGlobalScope extends html.EventTarget {
+html$.WorkerGlobalScope = class WorkerGlobalScope extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61722,35 +61725,35 @@
     return this.setTimeout.apply(this, args);
   }
   get [dartx.onError]() {
-    return html.WorkerGlobalScope.errorEvent.forTarget(this);
+    return html$.WorkerGlobalScope.errorEvent.forTarget(this);
   }
 };
-html.WorkerGlobalScope[dart.implements] = () => [html._WindowTimers, html.WindowBase64];
-dart.setSignature(html.WorkerGlobalScope, {
-  constructors: () => ({_: dart.definiteFunctionType(html.WorkerGlobalScope, [])}),
+html$.WorkerGlobalScope[dart.implements] = () => [html$._WindowTimers, html$.WindowBase64];
+dart.setSignature(html$.WorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WorkerGlobalScope, [])}),
   fields: () => ({
-    [dartx.caches]: html.CacheStorage,
-    [dartx.console]: html.WorkerConsole,
-    [dartx.crypto]: html.Crypto,
+    [dartx.caches]: html$.CacheStorage,
+    [dartx.console]: html$.WorkerConsole,
+    [dartx.crypto]: html$.Crypto,
     [dartx.indexedDB]: indexed_db.IdbFactory,
-    [dartx.location]: html._WorkerLocation,
-    [dartx.navigator]: html._WorkerNavigator,
-    [dartx.performance]: html.WorkerPerformance,
-    [dartx.self]: html.WorkerGlobalScope
+    [dartx.location]: html$._WorkerLocation,
+    [dartx.navigator]: html$._WorkerNavigator,
+    [dartx.performance]: html$.WorkerPerformance,
+    [dartx.self]: html$.WorkerGlobalScope
   }),
-  getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
     [dartx.fetch]: dart.definiteFunctionType(async.Future, [dart.dynamic], [core.Map]),
     [_fetch_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
     [_fetch_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
     [dartx.importScripts]: dart.definiteFunctionType(dart.void, [core.String]),
-    [_webkitRequestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html._FileSystemCallback, html._ErrorCallback]),
-    [dartx.webkitRequestFileSystem]: dart.definiteFunctionType(async.Future$(html.FileSystem), [core.int, core.int]),
-    [dartx.requestFileSystemSync]: dart.definiteFunctionType(html._DOMFileSystemSync, [core.int, core.int]),
-    [dartx.resolveLocalFileSystemSyncUrl]: dart.definiteFunctionType(html._EntrySync, [core.String]),
-    [_webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html._EntryCallback], [html._ErrorCallback]),
-    [dartx.webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String]),
+    [_webkitRequestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html$._FileSystemCallback, html$._ErrorCallback]),
+    [dartx.webkitRequestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int, core.int]),
+    [dartx.requestFileSystemSync]: dart.definiteFunctionType(html$._DOMFileSystemSync, [core.int, core.int]),
+    [dartx.resolveLocalFileSystemSyncUrl]: dart.definiteFunctionType(html$._EntrySync, [core.String]),
+    [_webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html$._EntryCallback], [html$._ErrorCallback]),
+    [dartx.webkitResolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
     [dartx.atob]: dart.definiteFunctionType(core.String, [core.String]),
     [dartx.btoa]: dart.definiteFunctionType(core.String, [core.String]),
     [_setInterval_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
@@ -61766,21 +61769,21 @@
     TEMPORARY: core.int
   })
 });
-html.WorkerGlobalScope.PERSISTENT = 1;
-html.WorkerGlobalScope.TEMPORARY = 0;
-dart.defineLazy(html.WorkerGlobalScope, {
+html$.WorkerGlobalScope.PERSISTENT = 1;
+html$.WorkerGlobalScope.TEMPORARY = 0;
+dart.defineLazy(html$.WorkerGlobalScope, {
   get errorEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('error'));
   }
 });
-dart.registerExtension(dart.global.WorkerGlobalScope, html.WorkerGlobalScope);
+dart.registerExtension(dart.global.WorkerGlobalScope, html$.WorkerGlobalScope);
 dart.defineExtensionNames([
   'cancelAnimationFrame',
   'postMessage',
   'requestAnimationFrame',
   'onMessage'
 ]);
-html.CompositorWorkerGlobalScope = class CompositorWorkerGlobalScope extends html.WorkerGlobalScope {
+html$.CompositorWorkerGlobalScope = class CompositorWorkerGlobalScope extends html$.WorkerGlobalScope {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61808,36 +61811,36 @@
     return this.requestAnimationFrame.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.CompositorWorkerGlobalScope.messageEvent.forTarget(this);
+    return html$.CompositorWorkerGlobalScope.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.CompositorWorkerGlobalScope, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CompositorWorkerGlobalScope, [])}),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+dart.setSignature(html$.CompositorWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CompositorWorkerGlobalScope, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({
     [dartx.cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
     [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
     [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
     [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-    [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html.FrameRequestCallback])
+    [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback])
   }),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.CompositorWorkerGlobalScope, {
+dart.defineLazy(html$.CompositorWorkerGlobalScope, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.CompositorWorkerGlobalScope, html.CompositorWorkerGlobalScope);
+dart.registerExtension(dart.global.CompositorWorkerGlobalScope, html$.CompositorWorkerGlobalScope);
 const _isConsoleDefined = Symbol('_isConsoleDefined');
-html.Console = class Console extends core.Object {
+html$.Console = class Console extends core.Object {
   _safe() {
   }
   get [_isConsoleDefined]() {
     return typeof console != "undefined";
   }
   get memory() {
-    return html.MemoryInfo._check(dart.test(this[_isConsoleDefined]) ? console.memory : null);
+    return html$.MemoryInfo._check(dart.test(this[_isConsoleDefined]) ? console.memory : null);
   }
   assertCondition(condition, arg) {
     return dart.test(this[_isConsoleDefined]) ? console.assertCondition(condition, arg) : null;
@@ -61906,15 +61909,15 @@
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.defineNamedConstructor(html.Console, '_safe');
-dart.setSignature(html.Console, {
+dart.defineNamedConstructor(html$.Console, '_safe');
+dart.setSignature(html$.Console, {
   constructors: () => ({
-    _safe: dart.definiteFunctionType(html.Console, []),
-    _: dart.definiteFunctionType(html.Console, [])
+    _safe: dart.definiteFunctionType(html$.Console, []),
+    _: dart.definiteFunctionType(html$.Console, [])
   }),
   getters: () => ({
     [_isConsoleDefined]: dart.definiteFunctionType(core.bool, []),
-    memory: dart.definiteFunctionType(html.MemoryInfo, [])
+    memory: dart.definiteFunctionType(html$.MemoryInfo, [])
   }),
   methods: () => ({
     assertCondition: dart.definiteFunctionType(dart.void, [core.bool, core.Object]),
@@ -61939,11 +61942,11 @@
     trace: dart.definiteFunctionType(dart.void, [core.Object]),
     warn: dart.definiteFunctionType(dart.void, [core.Object])
   }),
-  sfields: () => ({_safeConsole: html.Console})
+  sfields: () => ({_safeConsole: html$.Console})
 });
-dart.defineLazy(html.Console, {
+dart.defineLazy(html$.Console, {
   get _safeConsole() {
-    return dart.const(new html.Console._safe());
+    return dart.const(new html$.Console._safe());
   }
 });
 dart.defineExtensionNames([
@@ -61951,7 +61954,7 @@
   'timeline',
   'timelineEnd'
 ]);
-html.ConsoleBase = class ConsoleBase extends _interceptors.Interceptor {
+html$.ConsoleBase = class ConsoleBase extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -61965,32 +61968,32 @@
     return this.timelineEnd.apply(this, args);
   }
 };
-dart.setSignature(html.ConsoleBase, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ConsoleBase, [])}),
+dart.setSignature(html$.ConsoleBase, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ConsoleBase, [])}),
   methods: () => ({
     [dartx.assertCondition]: dart.definiteFunctionType(dart.void, [core.bool, core.Object]),
     [dartx.timeline]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.timelineEnd]: dart.definiteFunctionType(dart.void, [core.String])
   })
 });
-dart.registerExtension(dart.global.ConsoleBase, html.ConsoleBase);
+dart.registerExtension(dart.global.ConsoleBase, html$.ConsoleBase);
 dart.defineExtensionNames([
   'getDistributedNodes',
   'select'
 ]);
-html.ContentElement = class ContentElement extends html.HtmlElement {
+html$.ContentElement = class ContentElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ContentElement._check(html.document[dartx.createElement]("content"));
+    return html$.ContentElement._check(html$.document[dartx.createElement]("content"));
   }
   created() {
     this[dartx.select] = null;
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('content');
+    return html$.Element.isTagSupported('content');
   }
   get [dartx.select]() {
     return this.select;
@@ -62002,18 +62005,18 @@
     return this.getDistributedNodes.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.ContentElement, 'created');
-dart.setSignature(html.ContentElement, {
+dart.defineNamedConstructor(html$.ContentElement, 'created');
+dart.setSignature(html$.ContentElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ContentElement, []),
-    new: dart.definiteFunctionType(html.ContentElement, []),
-    created: dart.definiteFunctionType(html.ContentElement, [])
+    _: dart.definiteFunctionType(html$.ContentElement, []),
+    new: dart.definiteFunctionType(html$.ContentElement, []),
+    created: dart.definiteFunctionType(html$.ContentElement, [])
   }),
   fields: () => ({[dartx.select]: core.String}),
-  methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html.Node), [])}),
+  methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLContentElement, html.ContentElement);
+dart.registerExtension(dart.global.HTMLContentElement, html$.ContentElement);
 dart.defineExtensionNames([
   'accuracy',
   'altitude',
@@ -62023,7 +62026,7 @@
   'longitude',
   'speed'
 ]);
-html.Coordinates = class Coordinates extends _interceptors.Interceptor {
+html$.Coordinates = class Coordinates extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62049,8 +62052,8 @@
     return this.speed;
   }
 };
-dart.setSignature(html.Coordinates, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Coordinates, [])}),
+dart.setSignature(html$.Coordinates, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Coordinates, [])}),
   fields: () => ({
     [dartx.accuracy]: core.double,
     [dartx.altitude]: core.double,
@@ -62061,14 +62064,14 @@
     [dartx.speed]: core.double
   })
 });
-dart.registerExtension(dart.global.Coordinates, html.Coordinates);
+dart.registerExtension(dart.global.Coordinates, html$.Coordinates);
 dart.defineExtensionNames([
   'iconUrl',
   'id',
   'name',
   'type'
 ]);
-html.Credential = class Credential extends _interceptors.Interceptor {
+html$.Credential = class Credential extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62085,8 +62088,8 @@
     return this.type;
   }
 };
-dart.setSignature(html.Credential, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Credential, [])}),
+dart.setSignature(html$.Credential, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Credential, [])}),
   fields: () => ({
     [dartx.iconUrl]: core.String,
     [dartx.id]: core.String,
@@ -62094,7 +62097,7 @@
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.Credential, html.Credential);
+dart.registerExtension(dart.global.Credential, html$.Credential);
 const _request_1 = Symbol('_request_1');
 const _request_2 = Symbol('_request_2');
 dart.defineExtensionNames([
@@ -62102,7 +62105,7 @@
   'request',
   'requireUserMediation'
 ]);
-html.CredentialsContainer = class CredentialsContainer extends _interceptors.Interceptor {
+html$.CredentialsContainer = class CredentialsContainer extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62127,22 +62130,22 @@
     return this.requireUserMediation.apply(this, args);
   }
 };
-dart.setSignature(html.CredentialsContainer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CredentialsContainer, [])}),
+dart.setSignature(html$.CredentialsContainer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CredentialsContainer, [])}),
   methods: () => ({
-    [dartx.notifySignedIn]: dart.definiteFunctionType(async.Future, [html.Credential]),
+    [dartx.notifySignedIn]: dart.definiteFunctionType(async.Future, [html$.Credential]),
     [dartx.request]: dart.definiteFunctionType(async.Future, [], [core.Map]),
     [_request_1]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
     [_request_2]: dart.definiteFunctionType(async.Future, []),
     [dartx.requireUserMediation]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.CredentialsContainer, html.CredentialsContainer);
+dart.registerExtension(dart.global.CredentialsContainer, html$.CredentialsContainer);
 dart.defineExtensionNames([
   'acceptConnection',
   'client'
 ]);
-html.CrossOriginConnectEvent = class CrossOriginConnectEvent extends html.Event {
+html$.CrossOriginConnectEvent = class CrossOriginConnectEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62153,18 +62156,18 @@
     return this.acceptConnection.apply(this, args);
   }
 };
-dart.setSignature(html.CrossOriginConnectEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CrossOriginConnectEvent, [])}),
-  fields: () => ({[dartx.client]: html.CrossOriginServiceWorkerClient}),
+dart.setSignature(html$.CrossOriginConnectEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CrossOriginConnectEvent, [])}),
+  fields: () => ({[dartx.client]: html$.CrossOriginServiceWorkerClient}),
   methods: () => ({[dartx.acceptConnection]: dart.definiteFunctionType(dart.void, [async.Future])})
 });
-dart.registerExtension(dart.global.CrossOriginConnectEvent, html.CrossOriginConnectEvent);
+dart.registerExtension(dart.global.CrossOriginConnectEvent, html$.CrossOriginConnectEvent);
 dart.defineExtensionNames([
   'postMessage',
   'origin',
   'targetUrl'
 ]);
-html.CrossOriginServiceWorkerClient = class CrossOriginServiceWorkerClient extends html.EventTarget {
+html$.CrossOriginServiceWorkerClient = class CrossOriginServiceWorkerClient extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62192,8 +62195,8 @@
     return this.postMessage.apply(this, args);
   }
 };
-dart.setSignature(html.CrossOriginServiceWorkerClient, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CrossOriginServiceWorkerClient, [])}),
+dart.setSignature(html$.CrossOriginServiceWorkerClient, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CrossOriginServiceWorkerClient, [])}),
   fields: () => ({
     [dartx.origin]: core.String,
     [dartx.targetUrl]: core.String
@@ -62204,13 +62207,13 @@
     [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.CrossOriginServiceWorkerClient, html.CrossOriginServiceWorkerClient);
+dart.registerExtension(dart.global.CrossOriginServiceWorkerClient, html$.CrossOriginServiceWorkerClient);
 const _getRandomValues = Symbol('_getRandomValues');
 dart.defineExtensionNames([
   'getRandomValues',
   'subtle'
 ]);
-html.Crypto = class Crypto extends _interceptors.Interceptor {
+html$.Crypto = class Crypto extends _interceptors.Interceptor {
   [dartx.getRandomValues](array) {
     return this[_getRandomValues](array);
   }
@@ -62227,23 +62230,23 @@
     return this.getRandomValues.apply(this, args);
   }
 };
-dart.setSignature(html.Crypto, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Crypto, [])}),
-  fields: () => ({[dartx.subtle]: html._SubtleCrypto}),
+dart.setSignature(html$.Crypto, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Crypto, [])}),
+  fields: () => ({[dartx.subtle]: html$._SubtleCrypto}),
   methods: () => ({
     [dartx.getRandomValues]: dart.definiteFunctionType(typed_data.TypedData, [typed_data.TypedData]),
     [_getRandomValues]: dart.definiteFunctionType(typed_data.TypedData, [typed_data.TypedData])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.Crypto, html.Crypto);
+dart.registerExtension(dart.global.Crypto, html$.Crypto);
 dart.defineExtensionNames([
   'algorithm',
   'extractable',
   'type',
   'usages'
 ]);
-html.CryptoKey = class CryptoKey extends _interceptors.Interceptor {
+html$.CryptoKey = class CryptoKey extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62260,8 +62263,8 @@
     return this.usages;
   }
 };
-dart.setSignature(html.CryptoKey, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CryptoKey, [])}),
+dart.setSignature(html$.CryptoKey, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CryptoKey, [])}),
   fields: () => ({
     [dartx.algorithm]: core.Object,
     [dartx.extractable]: core.bool,
@@ -62269,28 +62272,28 @@
     [dartx.usages]: ListOfString()
   })
 });
-dart.registerExtension(dart.global.CryptoKey, html.CryptoKey);
-html.Css = class Css extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.CryptoKey, html$.CryptoKey);
+html$.Css = class Css extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.Css, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Css, [])}),
+dart.setSignature(html$.Css, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Css, [])}),
   statics: () => ({
     supports: dart.definiteFunctionType(core.bool, [core.String, core.String]),
     supportsCondition: dart.definiteFunctionType(core.bool, [core.String])
   }),
   names: ['supports', 'supportsCondition']
 });
-dart.registerExtension(dart.global.CSS, html.Css);
+dart.registerExtension(dart.global.CSS, html$.Css);
 dart.defineExtensionNames([
   'cssText',
   'parentRule',
   'parentStyleSheet',
   'type'
 ]);
-html.CssRule = class CssRule extends _interceptors.Interceptor {
+html$.CssRule = class CssRule extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62310,12 +62313,12 @@
     return this.type;
   }
 };
-dart.setSignature(html.CssRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssRule, [])}),
+dart.setSignature(html$.CssRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssRule, [])}),
   fields: () => ({
     [dartx.cssText]: core.String,
-    [dartx.parentRule]: html.CssRule,
-    [dartx.parentStyleSheet]: html.CssStyleSheet,
+    [dartx.parentRule]: html$.CssRule,
+    [dartx.parentStyleSheet]: html$.CssStyleSheet,
     [dartx.type]: core.int
   }),
   sfields: () => ({
@@ -62333,23 +62336,23 @@
     WEBKIT_KEYFRAME_RULE: core.int
   })
 });
-html.CssRule.CHARSET_RULE = 2;
-html.CssRule.FONT_FACE_RULE = 5;
-html.CssRule.IMPORT_RULE = 3;
-html.CssRule.KEYFRAMES_RULE = 7;
-html.CssRule.KEYFRAME_RULE = 8;
-html.CssRule.MEDIA_RULE = 4;
-html.CssRule.PAGE_RULE = 6;
-html.CssRule.STYLE_RULE = 1;
-html.CssRule.SUPPORTS_RULE = 12;
-html.CssRule.VIEWPORT_RULE = 15;
-html.CssRule.WEBKIT_KEYFRAMES_RULE = 7;
-html.CssRule.WEBKIT_KEYFRAME_RULE = 8;
-dart.registerExtension(dart.global.CSSRule, html.CssRule);
+html$.CssRule.CHARSET_RULE = 2;
+html$.CssRule.FONT_FACE_RULE = 5;
+html$.CssRule.IMPORT_RULE = 3;
+html$.CssRule.KEYFRAMES_RULE = 7;
+html$.CssRule.KEYFRAME_RULE = 8;
+html$.CssRule.MEDIA_RULE = 4;
+html$.CssRule.PAGE_RULE = 6;
+html$.CssRule.STYLE_RULE = 1;
+html$.CssRule.SUPPORTS_RULE = 12;
+html$.CssRule.VIEWPORT_RULE = 15;
+html$.CssRule.WEBKIT_KEYFRAMES_RULE = 7;
+html$.CssRule.WEBKIT_KEYFRAME_RULE = 8;
+dart.registerExtension(dart.global.CSSRule, html$.CssRule);
 dart.defineExtensionNames([
   'encoding'
 ]);
-html.CssCharsetRule = class CssCharsetRule extends html.CssRule {
+html$.CssCharsetRule = class CssCharsetRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62360,15 +62363,15 @@
     this.encoding = value;
   }
 };
-dart.setSignature(html.CssCharsetRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssCharsetRule, [])}),
+dart.setSignature(html$.CssCharsetRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssCharsetRule, [])}),
   fields: () => ({[dartx.encoding]: core.String})
 });
-dart.registerExtension(dart.global.CSSCharsetRule, html.CssCharsetRule);
+dart.registerExtension(dart.global.CSSCharsetRule, html$.CssCharsetRule);
 dart.defineExtensionNames([
   'style'
 ]);
-html.CssFontFaceRule = class CssFontFaceRule extends html.CssRule {
+html$.CssFontFaceRule = class CssFontFaceRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62376,17 +62379,17 @@
     return this.style;
   }
 };
-dart.setSignature(html.CssFontFaceRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssFontFaceRule, [])}),
-  fields: () => ({[dartx.style]: html.CssStyleDeclaration})
+dart.setSignature(html$.CssFontFaceRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssFontFaceRule, [])}),
+  fields: () => ({[dartx.style]: html$.CssStyleDeclaration})
 });
-dart.registerExtension(dart.global.CSSFontFaceRule, html.CssFontFaceRule);
+dart.registerExtension(dart.global.CSSFontFaceRule, html$.CssFontFaceRule);
 dart.defineExtensionNames([
   'deleteRule',
   'insertRule',
   'cssRules'
 ]);
-html.CssGroupingRule = class CssGroupingRule extends html.CssRule {
+html$.CssGroupingRule = class CssGroupingRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62400,21 +62403,21 @@
     return this.insertRule.apply(this, args);
   }
 };
-dart.setSignature(html.CssGroupingRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssGroupingRule, [])}),
+dart.setSignature(html$.CssGroupingRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssGroupingRule, [])}),
   fields: () => ({[dartx.cssRules]: ListOfCssRule()}),
   methods: () => ({
     [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.int]),
     [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String, core.int])
   })
 });
-dart.registerExtension(dart.global.CSSGroupingRule, html.CssGroupingRule);
+dart.registerExtension(dart.global.CSSGroupingRule, html$.CssGroupingRule);
 dart.defineExtensionNames([
   'href',
   'media',
   'styleSheet'
 ]);
-html.CssImportRule = class CssImportRule extends html.CssRule {
+html$.CssImportRule = class CssImportRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62428,20 +62431,20 @@
     return this.styleSheet;
   }
 };
-dart.setSignature(html.CssImportRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssImportRule, [])}),
+dart.setSignature(html$.CssImportRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssImportRule, [])}),
   fields: () => ({
     [dartx.href]: core.String,
-    [dartx.media]: html.MediaList,
-    [dartx.styleSheet]: html.CssStyleSheet
+    [dartx.media]: html$.MediaList,
+    [dartx.styleSheet]: html$.CssStyleSheet
   })
 });
-dart.registerExtension(dart.global.CSSImportRule, html.CssImportRule);
+dart.registerExtension(dart.global.CSSImportRule, html$.CssImportRule);
 dart.defineExtensionNames([
   'keyText',
   'style'
 ]);
-html.CssKeyframeRule = class CssKeyframeRule extends html.CssRule {
+html$.CssKeyframeRule = class CssKeyframeRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62455,16 +62458,16 @@
     return this.style;
   }
 };
-dart.setSignature(html.CssKeyframeRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssKeyframeRule, [])}),
+dart.setSignature(html$.CssKeyframeRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssKeyframeRule, [])}),
   fields: () => ({
     [dartx.keyText]: core.String,
-    [dartx.style]: html.CssStyleDeclaration
+    [dartx.style]: html$.CssStyleDeclaration
   })
 });
-dart.registerExtension(dart.global.CSSKeyframeRule, html.CssKeyframeRule);
-dart.registerExtension(dart.global.MozCSSKeyframeRule, html.CssKeyframeRule);
-dart.registerExtension(dart.global.WebKitCSSKeyframeRule, html.CssKeyframeRule);
+dart.registerExtension(dart.global.CSSKeyframeRule, html$.CssKeyframeRule);
+dart.registerExtension(dart.global.MozCSSKeyframeRule, html$.CssKeyframeRule);
+dart.registerExtension(dart.global.WebKitCSSKeyframeRule, html$.CssKeyframeRule);
 dart.defineExtensionNames([
   'appendRule',
   'deleteRule',
@@ -62472,7 +62475,7 @@
   'cssRules',
   'name'
 ]);
-html.CssKeyframesRule = class CssKeyframesRule extends html.CssRule {
+html$.CssKeyframesRule = class CssKeyframesRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62498,26 +62501,26 @@
     return this.findRule.apply(this, args);
   }
 };
-dart.setSignature(html.CssKeyframesRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssKeyframesRule, [])}),
+dart.setSignature(html$.CssKeyframesRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssKeyframesRule, [])}),
   fields: () => ({
     [dartx.cssRules]: ListOfCssRule(),
     [dartx.name]: core.String
   }),
   methods: () => ({
-    [__getter__]: dart.definiteFunctionType(html.CssKeyframeRule, [core.int]),
+    [__getter__]: dart.definiteFunctionType(html$.CssKeyframeRule, [core.int]),
     [dartx.appendRule]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.deleteRule]: dart.definiteFunctionType(dart.void, [core.String]),
-    [dartx.findRule]: dart.definiteFunctionType(html.CssKeyframeRule, [core.String])
+    [dartx.findRule]: dart.definiteFunctionType(html$.CssKeyframeRule, [core.String])
   })
 });
-dart.registerExtension(dart.global.CSSKeyframesRule, html.CssKeyframesRule);
-dart.registerExtension(dart.global.MozCSSKeyframesRule, html.CssKeyframesRule);
-dart.registerExtension(dart.global.WebKitCSSKeyframesRule, html.CssKeyframesRule);
+dart.registerExtension(dart.global.CSSKeyframesRule, html$.CssKeyframesRule);
+dart.registerExtension(dart.global.MozCSSKeyframesRule, html$.CssKeyframesRule);
+dart.registerExtension(dart.global.WebKitCSSKeyframesRule, html$.CssKeyframesRule);
 dart.defineExtensionNames([
   'media'
 ]);
-html.CssMediaRule = class CssMediaRule extends html.CssGroupingRule {
+html$.CssMediaRule = class CssMediaRule extends html$.CssGroupingRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62525,16 +62528,16 @@
     return this.media;
   }
 };
-dart.setSignature(html.CssMediaRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssMediaRule, [])}),
-  fields: () => ({[dartx.media]: html.MediaList})
+dart.setSignature(html$.CssMediaRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssMediaRule, [])}),
+  fields: () => ({[dartx.media]: html$.MediaList})
 });
-dart.registerExtension(dart.global.CSSMediaRule, html.CssMediaRule);
+dart.registerExtension(dart.global.CSSMediaRule, html$.CssMediaRule);
 dart.defineExtensionNames([
   'selectorText',
   'style'
 ]);
-html.CssPageRule = class CssPageRule extends html.CssRule {
+html$.CssPageRule = class CssPageRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -62548,14 +62551,14 @@
     return this.style;
   }
 };
-dart.setSignature(html.CssPageRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssPageRule, [])}),
+dart.setSignature(html$.CssPageRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssPageRule, [])}),
   fields: () => ({
     [dartx.selectorText]: core.String,
-    [dartx.style]: html.CssStyleDeclaration
+    [dartx.style]: html$.CssStyleDeclaration
   })
 });
-dart.registerExtension(dart.global.CSSPageRule, html.CssPageRule);
+dart.registerExtension(dart.global.CSSPageRule, html$.CssPageRule);
 const _getPropertyValueHelper = Symbol('_getPropertyValueHelper');
 const _supportsProperty = Symbol('_supportsProperty');
 const _getPropertyValue = Symbol('_getPropertyValue');
@@ -62591,7 +62594,7 @@
 const _borderWidth = Symbol('_borderWidth');
 const _bottom = Symbol('_bottom');
 const _captionSide = Symbol('_captionSide');
-const _clear = Symbol('_clear');
+const _clear$1 = Symbol('_clear');
 const _clip = Symbol('_clip');
 const _color = Symbol('_color');
 const _content = Symbol('_content');
@@ -62605,7 +62608,7 @@
 const _fontStyle = Symbol('_fontStyle');
 const _fontVariant = Symbol('_fontVariant');
 const _fontWeight = Symbol('_fontWeight');
-const _height = Symbol('_height');
+const _height$ = Symbol('_height');
 const _left = Symbol('_left');
 const _letterSpacing = Symbol('_letterSpacing');
 const _lineHeight = Symbol('_lineHeight');
@@ -62635,7 +62638,7 @@
 const _pageBreakAfter = Symbol('_pageBreakAfter');
 const _pageBreakBefore = Symbol('_pageBreakBefore');
 const _pageBreakInside = Symbol('_pageBreakInside');
-const _position = Symbol('_position');
+const _position$1 = Symbol('_position');
 const _quotes = Symbol('_quotes');
 const _right = Symbol('_right');
 const _tableLayout = Symbol('_tableLayout');
@@ -62648,7 +62651,7 @@
 const _verticalAlign = Symbol('_verticalAlign');
 const _visibility = Symbol('_visibility');
 const _whiteSpace = Symbol('_whiteSpace');
-const _width = Symbol('_width');
+const _width$ = Symbol('_width');
 const _wordSpacing = Symbol('_wordSpacing');
 const _zIndex = Symbol('_zIndex');
 dart.defineExtensionNames([
@@ -63337,7 +63340,7 @@
   'zoom',
   'zoom'
 ]);
-html.CssStyleDeclarationBase = class CssStyleDeclarationBase extends core.Object {
+html$.CssStyleDeclarationBase = class CssStyleDeclarationBase extends core.Object {
   get alignContent() {
     return this[dartx.getPropertyValue]('align-content');
   }
@@ -65391,7 +65394,7 @@
     this[dartx.setProperty]('zoom', value, '');
   }
 };
-dart.setSignature(html.CssStyleDeclarationBase, {
+dart.setSignature(html$.CssStyleDeclarationBase, {
   getters: () => ({
     alignContent: dart.definiteFunctionType(core.String, []),
     alignItems: dart.definiteFunctionType(core.String, []),
@@ -66081,7 +66084,7 @@
     zoom: dart.definiteFunctionType(dart.void, [core.String])
   })
 });
-dart.defineExtensionMembers(html.CssStyleDeclarationBase, [
+dart.defineExtensionMembers(html$.CssStyleDeclarationBase, [
   'alignContent',
   'alignContent',
   'alignItems',
@@ -66958,12 +66961,12 @@
   'length',
   'parentRule'
 ]);
-html.CssStyleDeclaration = class CssStyleDeclaration extends dart.mixin(_interceptors.Interceptor, html.CssStyleDeclarationBase) {
+html$.CssStyleDeclaration = class CssStyleDeclaration extends dart.mixin(_interceptors.Interceptor, html$.CssStyleDeclarationBase) {
   static new() {
-    return html.CssStyleDeclaration.css('');
+    return html$.CssStyleDeclaration.css('');
   }
   static css(css) {
-    let style = html.Element.tag('div')[dartx.style];
+    let style = html$.Element.tag('div')[dartx.style];
     style[dartx.cssText] = css;
     return style;
   }
@@ -66972,14 +66975,14 @@
     return propValue != null ? propValue : '';
   }
   [_getPropertyValueHelper](propertyName) {
-    if (dart.test(this[_supportsProperty](html.CssStyleDeclaration._camelCase(propertyName)))) {
+    if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
       return this[_getPropertyValue](propertyName);
     } else {
       return this[_getPropertyValue](dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName));
     }
   }
   [dartx.supportsProperty](propertyName) {
-    return dart.test(this[_supportsProperty](propertyName)) || dart.test(this[_supportsProperty](html.CssStyleDeclaration._camelCase(dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName))));
+    return dart.test(this[_supportsProperty](propertyName)) || dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName))));
   }
   [_supportsProperty](propertyName) {
     return propertyName in this;
@@ -66989,21 +66992,21 @@
     return this[_setPropertyHelper](this[_browserPropertyName](propertyName), value, priority);
   }
   [_browserPropertyName](propertyName) {
-    let name = html.CssStyleDeclaration._readCache(propertyName);
+    let name = html$.CssStyleDeclaration._readCache(propertyName);
     if (typeof name == 'string') return name;
-    if (dart.test(this[_supportsProperty](html.CssStyleDeclaration._camelCase(propertyName)))) {
+    if (dart.test(this[_supportsProperty](html$.CssStyleDeclaration._camelCase(propertyName)))) {
       name = propertyName;
     } else {
       name = dart.notNull(html_common.Device.cssPrefix) + dart.notNull(propertyName);
     }
-    html.CssStyleDeclaration._writeCache(propertyName, name);
+    html$.CssStyleDeclaration._writeCache(propertyName, name);
     return name;
   }
   static _readCache(key) {
-    return html.CssStyleDeclaration._propertyCache[key];
+    return html$.CssStyleDeclaration._propertyCache[key];
   }
   static _writeCache(key, value) {
-    html.CssStyleDeclaration._propertyCache[key] = value;
+    html$.CssStyleDeclaration._propertyCache[key] = value;
   }
   static _camelCase(hyphenated) {
     let replacedMs = hyphenated.replace(/^-ms-/, "ms-");
@@ -67016,7 +67019,7 @@
     this.setProperty(propertyName, value, priority);
   }
   static get supportsTransitions() {
-    return html.document[dartx.body][dartx.style][dartx.supportsProperty]('transition');
+    return html$.document[dartx.body][dartx.style][dartx.supportsProperty]('transition');
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -67406,15 +67409,15 @@
     this.captionSide = value;
   }
   get [dartx.clear]() {
-    return this[_clear];
+    return this[_clear$1];
   }
   set [dartx.clear](value) {
-    this[_clear] = value == null ? '' : value;
+    this[_clear$1] = value == null ? '' : value;
   }
-  get [_clear]() {
+  get [_clear$1]() {
     return this.clear;
   }
-  set [_clear](value) {
+  set [_clear$1](value) {
     this.clear = value;
   }
   get [dartx.clip]() {
@@ -67574,15 +67577,15 @@
     this.fontWeight = value;
   }
   get [dartx.height]() {
-    return this[_height];
+    return this[_height$];
   }
   set [dartx.height](value) {
-    this[_height] = value == null ? '' : value;
+    this[_height$] = value == null ? '' : value;
   }
-  get [_height]() {
+  get [_height$]() {
     return this.height;
   }
-  set [_height](value) {
+  set [_height$](value) {
     this.height = value;
   }
   get [dartx.left]() {
@@ -67934,15 +67937,15 @@
     this.pageBreakInside = value;
   }
   get [dartx.position]() {
-    return this[_position];
+    return this[_position$1];
   }
   set [dartx.position](value) {
-    this[_position] = value == null ? '' : value;
+    this[_position$1] = value == null ? '' : value;
   }
-  get [_position]() {
+  get [_position$1]() {
     return this.position;
   }
-  set [_position](value) {
+  set [_position$1](value) {
     this.position = value;
   }
   get [dartx.quotes]() {
@@ -68090,15 +68093,15 @@
     this.whiteSpace = value;
   }
   get [dartx.width]() {
-    return this[_width];
+    return this[_width$];
   }
   set [dartx.width](value) {
-    this[_width] = value == null ? '' : value;
+    this[_width$] = value == null ? '' : value;
   }
-  get [_width]() {
+  get [_width$]() {
     return this.width;
   }
-  set [_width](value) {
+  set [_width$](value) {
     this.width = value;
   }
   get [dartx.wordSpacing]() {
@@ -68126,16 +68129,16 @@
     this.zIndex = value;
   }
 };
-dart.setSignature(html.CssStyleDeclaration, {
+dart.setSignature(html$.CssStyleDeclaration, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.CssStyleDeclaration, []),
-    css: dart.definiteFunctionType(html.CssStyleDeclaration, [core.String]),
-    _: dart.definiteFunctionType(html.CssStyleDeclaration, [])
+    new: dart.definiteFunctionType(html$.CssStyleDeclaration, []),
+    css: dart.definiteFunctionType(html$.CssStyleDeclaration, [core.String]),
+    _: dart.definiteFunctionType(html$.CssStyleDeclaration, [])
   }),
   fields: () => ({
     [dartx.cssText]: core.String,
     [dartx.length]: core.int,
-    [dartx.parentRule]: html.CssRule,
+    [dartx.parentRule]: html$.CssRule,
     [_background]: core.String,
     [_backgroundAttachment]: core.String,
     [_backgroundColor]: core.String,
@@ -68166,7 +68169,7 @@
     [_borderWidth]: core.String,
     [_bottom]: core.String,
     [_captionSide]: core.String,
-    [_clear]: core.String,
+    [_clear$1]: core.String,
     [_clip]: core.String,
     [_color]: core.String,
     [_content]: core.String,
@@ -68180,7 +68183,7 @@
     [_fontStyle]: core.String,
     [_fontVariant]: core.String,
     [_fontWeight]: core.String,
-    [_height]: core.String,
+    [_height$]: core.String,
     [_left]: core.String,
     [_letterSpacing]: core.String,
     [_lineHeight]: core.String,
@@ -68210,7 +68213,7 @@
     [_pageBreakAfter]: core.String,
     [_pageBreakBefore]: core.String,
     [_pageBreakInside]: core.String,
-    [_position]: core.String,
+    [_position$1]: core.String,
     [_quotes]: core.String,
     [_right]: core.String,
     [_tableLayout]: core.String,
@@ -68223,7 +68226,7 @@
     [_verticalAlign]: core.String,
     [_visibility]: core.String,
     [_whiteSpace]: core.String,
-    [_width]: core.String,
+    [_width$]: core.String,
     [_wordSpacing]: core.String,
     [_zIndex]: core.String
   }),
@@ -68249,22 +68252,22 @@
   }),
   names: ['_readCache', '_writeCache', '_camelCase']
 });
-dart.defineLazy(html.CssStyleDeclaration, {
+dart.defineLazy(html$.CssStyleDeclaration, {
   get _propertyCache() {
     return {};
   }
 });
-dart.registerExtension(dart.global.CSSStyleDeclaration, html.CssStyleDeclaration);
-dart.registerExtension(dart.global.MSStyleCSSProperties, html.CssStyleDeclaration);
-dart.registerExtension(dart.global.CSS2Properties, html.CssStyleDeclaration);
+dart.registerExtension(dart.global.CSSStyleDeclaration, html$.CssStyleDeclaration);
+dart.registerExtension(dart.global.MSStyleCSSProperties, html$.CssStyleDeclaration);
+dart.registerExtension(dart.global.CSS2Properties, html$.CssStyleDeclaration);
 const _elementIterable = Symbol('_elementIterable');
 const _elementCssStyleDeclarationSetIterable = Symbol('_elementCssStyleDeclarationSetIterable');
 const _setAll = Symbol('_setAll');
-html._CssStyleDeclarationSet = class _CssStyleDeclarationSet extends dart.mixin(core.Object, html.CssStyleDeclarationBase) {
+html$._CssStyleDeclarationSet = class _CssStyleDeclarationSet extends dart.mixin(core.Object, html$.CssStyleDeclarationBase) {
   new(elementIterable) {
     this[_elementIterable] = elementIterable;
     this[_elementCssStyleDeclarationSetIterable] = null;
-    this[_elementCssStyleDeclarationSetIterable] = core.List.from(this[_elementIterable])[dartx.map](html.CssStyleDeclaration)(dart.fn(e => html.CssStyleDeclaration._check(dart.dload(e, 'style')), dynamicToCssStyleDeclaration()));
+    this[_elementCssStyleDeclarationSetIterable] = core.List.from(this[_elementIterable])[dartx.map](html$.CssStyleDeclaration)(dart.fn(e => html$.CssStyleDeclaration._check(dart.dload(e, 'style')), dynamicToCssStyleDeclaration()));
   }
   getPropertyValue(propertyName) {
     return this[_elementCssStyleDeclarationSetIterable][dartx.first][dartx.getPropertyValue](propertyName);
@@ -68820,8 +68823,8 @@
     return super.zIndex;
   }
 };
-dart.setSignature(html._CssStyleDeclarationSet, {
-  constructors: () => ({new: dart.definiteFunctionType(html._CssStyleDeclarationSet, [IterableOfElement()])}),
+dart.setSignature(html$._CssStyleDeclarationSet, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._CssStyleDeclarationSet, [IterableOfElement()])}),
   fields: () => ({
     [_elementIterable]: IterableOfElement(),
     [_elementCssStyleDeclarationSetIterable]: IterableOfCssStyleDeclaration()
@@ -68832,7 +68835,7 @@
     [_setAll]: dart.definiteFunctionType(dart.void, [core.String, core.String])
   })
 });
-dart.defineExtensionMembers(html._CssStyleDeclarationSet, [
+dart.defineExtensionMembers(html$._CssStyleDeclarationSet, [
   'getPropertyValue',
   'setProperty',
   'background',
@@ -68930,7 +68933,7 @@
   'selectorText',
   'style'
 ]);
-html.CssStyleRule = class CssStyleRule extends html.CssRule {
+html$.CssStyleRule = class CssStyleRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -68944,14 +68947,14 @@
     return this.style;
   }
 };
-dart.setSignature(html.CssStyleRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssStyleRule, [])}),
+dart.setSignature(html$.CssStyleRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssStyleRule, [])}),
   fields: () => ({
     [dartx.selectorText]: core.String,
-    [dartx.style]: html.CssStyleDeclaration
+    [dartx.style]: html$.CssStyleDeclaration
   })
 });
-dart.registerExtension(dart.global.CSSStyleRule, html.CssStyleRule);
+dart.registerExtension(dart.global.CSSStyleRule, html$.CssStyleRule);
 dart.defineExtensionNames([
   'disabled',
   'href',
@@ -68961,7 +68964,7 @@
   'title',
   'type'
 ]);
-html.StyleSheet = class StyleSheet extends _interceptors.Interceptor {
+html$.StyleSheet = class StyleSheet extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -68990,19 +68993,19 @@
     return this.type;
   }
 };
-dart.setSignature(html.StyleSheet, {
-  constructors: () => ({_: dart.definiteFunctionType(html.StyleSheet, [])}),
+dart.setSignature(html$.StyleSheet, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StyleSheet, [])}),
   fields: () => ({
     [dartx.disabled]: core.bool,
     [dartx.href]: core.String,
-    [dartx.media]: html.MediaList,
-    [dartx.ownerNode]: html.Node,
-    [dartx.parentStyleSheet]: html.StyleSheet,
+    [dartx.media]: html$.MediaList,
+    [dartx.ownerNode]: html$.Node,
+    [dartx.parentStyleSheet]: html$.StyleSheet,
     [dartx.title]: core.String,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.StyleSheet, html.StyleSheet);
+dart.registerExtension(dart.global.StyleSheet, html$.StyleSheet);
 dart.defineExtensionNames([
   'addRule',
   'deleteRule',
@@ -69012,7 +69015,7 @@
   'ownerRule',
   'rules'
 ]);
-html.CssStyleSheet = class CssStyleSheet extends html.StyleSheet {
+html$.CssStyleSheet = class CssStyleSheet extends html$.StyleSheet {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69038,11 +69041,11 @@
     return this.removeRule.apply(this, args);
   }
 };
-dart.setSignature(html.CssStyleSheet, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssStyleSheet, [])}),
+dart.setSignature(html$.CssStyleSheet, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssStyleSheet, [])}),
   fields: () => ({
     [dartx.cssRules]: ListOfCssRule(),
-    [dartx.ownerRule]: html.CssRule,
+    [dartx.ownerRule]: html$.CssRule,
     [dartx.rules]: ListOfCssRule()
   }),
   methods: () => ({
@@ -69052,14 +69055,14 @@
     [dartx.removeRule]: dart.definiteFunctionType(dart.void, [core.int])
   })
 });
-dart.registerExtension(dart.global.CSSStyleSheet, html.CssStyleSheet);
+dart.registerExtension(dart.global.CSSStyleSheet, html$.CssStyleSheet);
 dart.defineExtensionNames([
   'deleteRule',
   'insertRule',
   'conditionText',
   'cssRules'
 ]);
-html.CssSupportsRule = class CssSupportsRule extends html.CssRule {
+html$.CssSupportsRule = class CssSupportsRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69076,8 +69079,8 @@
     return this.insertRule.apply(this, args);
   }
 };
-dart.setSignature(html.CssSupportsRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssSupportsRule, [])}),
+dart.setSignature(html$.CssSupportsRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssSupportsRule, [])}),
   fields: () => ({
     [dartx.conditionText]: core.String,
     [dartx.cssRules]: ListOfCssRule()
@@ -69087,11 +69090,11 @@
     [dartx.insertRule]: dart.definiteFunctionType(core.int, [core.String, core.int])
   })
 });
-dart.registerExtension(dart.global.CSSSupportsRule, html.CssSupportsRule);
+dart.registerExtension(dart.global.CSSSupportsRule, html$.CssSupportsRule);
 dart.defineExtensionNames([
   'style'
 ]);
-html.CssViewportRule = class CssViewportRule extends html.CssRule {
+html$.CssViewportRule = class CssViewportRule extends html$.CssRule {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69099,11 +69102,11 @@
     return this.style;
   }
 };
-dart.setSignature(html.CssViewportRule, {
-  constructors: () => ({_: dart.definiteFunctionType(html.CssViewportRule, [])}),
-  fields: () => ({[dartx.style]: html.CssStyleDeclaration})
+dart.setSignature(html$.CssViewportRule, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.CssViewportRule, [])}),
+  fields: () => ({[dartx.style]: html$.CssStyleDeclaration})
 });
-dart.registerExtension(dart.global.CSSViewportRule, html.CssViewportRule);
+dart.registerExtension(dart.global.CSSViewportRule, html$.CssViewportRule);
 const _dartDetail = Symbol('_dartDetail');
 const _initCustomEvent = Symbol('_initCustomEvent');
 const _detail = Symbol('_detail');
@@ -69111,7 +69114,7 @@
 dart.defineExtensionNames([
   'detail'
 ]);
-html.CustomEvent = class CustomEvent extends html.Event {
+html$.CustomEvent = class CustomEvent extends html$.Event {
   get [_dartDetail]() {
     return this._dartDetail;
   }
@@ -69122,7 +69125,7 @@
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
     let detail = opts && 'detail' in opts ? opts.detail : null;
-    let e = html.CustomEvent._check(html.document[_createEvent]('CustomEvent'));
+    let e = html$.CustomEvent._check(html$.document[_createEvent]('CustomEvent'));
     e[_dartDetail] = detail;
     if (core.List.is(detail) || core.Map.is(detail) || typeof detail == 'string' || typeof detail == 'number') {
       try {
@@ -69147,9 +69150,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.CustomEvent._create_1(type, eventInitDict_1);
+      return html$.CustomEvent._create_1(type, eventInitDict_1);
     }
-    return html.CustomEvent._create_2(type);
+    return html$.CustomEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.CustomEvent(type, eventInitDict);
@@ -69167,10 +69170,10 @@
     return this.initCustomEvent.apply(this, args);
   }
 };
-dart.setSignature(html.CustomEvent, {
+dart.setSignature(html$.CustomEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.CustomEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, detail: core.Object}),
-    _: dart.definiteFunctionType(html.CustomEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.CustomEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, detail: core.Object}),
+    _: dart.definiteFunctionType(html$.CustomEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [_dartDetail]: dart.dynamic,
@@ -69182,64 +69185,64 @@
   }),
   methods: () => ({[_initCustomEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.CustomEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.CustomEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.CustomEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.CustomEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.CustomEvent, html.CustomEvent);
-html.DListElement = class DListElement extends html.HtmlElement {
+dart.registerExtension(dart.global.CustomEvent, html$.CustomEvent);
+html$.DListElement = class DListElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.DListElement._check(html.document[dartx.createElement]("dl"));
+    return html$.DListElement._check(html$.document[dartx.createElement]("dl"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.DListElement, 'created');
-dart.setSignature(html.DListElement, {
+dart.defineNamedConstructor(html$.DListElement, 'created');
+dart.setSignature(html$.DListElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DListElement, []),
-    new: dart.definiteFunctionType(html.DListElement, []),
-    created: dart.definiteFunctionType(html.DListElement, [])
+    _: dart.definiteFunctionType(html$.DListElement, []),
+    new: dart.definiteFunctionType(html$.DListElement, []),
+    created: dart.definiteFunctionType(html$.DListElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLDListElement, html.DListElement);
+dart.registerExtension(dart.global.HTMLDListElement, html$.DListElement);
 dart.defineExtensionNames([
   'options'
 ]);
-html.DataListElement = class DataListElement extends html.HtmlElement {
+html$.DataListElement = class DataListElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.DataListElement._check(html.document[dartx.createElement]("datalist"));
+    return html$.DataListElement._check(html$.document[dartx.createElement]("datalist"));
   }
   created() {
     this[dartx.options] = null;
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('datalist');
+    return html$.Element.isTagSupported('datalist');
   }
   get [dartx.options]() {
     return this.options;
   }
 };
-dart.defineNamedConstructor(html.DataListElement, 'created');
-dart.setSignature(html.DataListElement, {
+dart.defineNamedConstructor(html$.DataListElement, 'created');
+dart.setSignature(html$.DataListElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DataListElement, []),
-    new: dart.definiteFunctionType(html.DataListElement, []),
-    created: dart.definiteFunctionType(html.DataListElement, [])
+    _: dart.definiteFunctionType(html$.DataListElement, []),
+    new: dart.definiteFunctionType(html$.DataListElement, []),
+    created: dart.definiteFunctionType(html$.DataListElement, [])
   }),
   fields: () => ({[dartx.options]: ListOfNode()}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLDataListElement, html.DataListElement);
+dart.registerExtension(dart.global.HTMLDataListElement, html$.DataListElement);
 dart.defineExtensionNames([
   'clearData',
   'getData',
@@ -69251,7 +69254,7 @@
   'items',
   'types'
 ]);
-html.DataTransfer = class DataTransfer extends _interceptors.Interceptor {
+html$.DataTransfer = class DataTransfer extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69289,23 +69292,23 @@
     return this.setDragImage.apply(this, args);
   }
 };
-dart.setSignature(html.DataTransfer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DataTransfer, [])}),
+dart.setSignature(html$.DataTransfer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DataTransfer, [])}),
   fields: () => ({
     [dartx.dropEffect]: core.String,
     [dartx.effectAllowed]: core.String,
     [dartx.files]: ListOfFile(),
-    [dartx.items]: html.DataTransferItemList,
+    [dartx.items]: html$.DataTransferItemList,
     [dartx.types]: ListOfString()
   }),
   methods: () => ({
     [dartx.clearData]: dart.definiteFunctionType(dart.void, [], [core.String]),
     [dartx.getData]: dart.definiteFunctionType(core.String, [core.String]),
     [dartx.setData]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-    [dartx.setDragImage]: dart.definiteFunctionType(dart.void, [html.Element, core.int, core.int])
+    [dartx.setDragImage]: dart.definiteFunctionType(dart.void, [html$.Element, core.int, core.int])
   })
 });
-dart.registerExtension(dart.global.DataTransfer, html.DataTransfer);
+dart.registerExtension(dart.global.DataTransfer, html$.DataTransfer);
 const _getAsString = Symbol('_getAsString');
 dart.defineExtensionNames([
   'getAsFile',
@@ -69314,7 +69317,7 @@
   'kind',
   'type'
 ]);
-html.DataTransferItem = class DataTransferItem extends _interceptors.Interceptor {
+html$.DataTransferItem = class DataTransferItem extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69341,20 +69344,20 @@
     return this.webkitGetAsEntry.apply(this, args);
   }
 };
-dart.setSignature(html.DataTransferItem, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DataTransferItem, [])}),
+dart.setSignature(html$.DataTransferItem, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DataTransferItem, [])}),
   fields: () => ({
     [dartx.kind]: core.String,
     [dartx.type]: core.String
   }),
   methods: () => ({
-    [dartx.getAsFile]: dart.definiteFunctionType(html.Blob, []),
-    [_getAsString]: dart.definiteFunctionType(dart.void, [html._StringCallback]),
+    [dartx.getAsFile]: dart.definiteFunctionType(html$.Blob, []),
+    [_getAsString]: dart.definiteFunctionType(dart.void, [html$._StringCallback]),
     [dartx.getAsString]: dart.definiteFunctionType(async.Future$(core.String), []),
-    [dartx.getAsEntry]: dart.definiteFunctionType(html.Entry, [])
+    [dartx.getAsEntry]: dart.definiteFunctionType(html$.Entry, [])
   })
 });
-dart.registerExtension(dart.global.DataTransferItem, html.DataTransferItem);
+dart.registerExtension(dart.global.DataTransferItem, html$.DataTransferItem);
 dart.defineExtensionNames([
   'add',
   'addData',
@@ -69365,7 +69368,7 @@
   '_get',
   'length'
 ]);
-html.DataTransferItemList = class DataTransferItemList extends _interceptors.Interceptor {
+html$.DataTransferItemList = class DataTransferItemList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69394,26 +69397,26 @@
     return this[index];
   }
 };
-dart.setSignature(html.DataTransferItemList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DataTransferItemList, [])}),
+dart.setSignature(html$.DataTransferItemList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DataTransferItemList, [])}),
   fields: () => ({[dartx.length]: core.int}),
   methods: () => ({
-    [dartx.add]: dart.definiteFunctionType(html.DataTransferItem, [dart.dynamic], [core.String]),
-    [dartx.addData]: dart.definiteFunctionType(html.DataTransferItem, [core.String, core.String]),
-    [dartx.addFile]: dart.definiteFunctionType(html.DataTransferItem, [html.File]),
+    [dartx.add]: dart.definiteFunctionType(html$.DataTransferItem, [dart.dynamic], [core.String]),
+    [dartx.addData]: dart.definiteFunctionType(html$.DataTransferItem, [core.String, core.String]),
+    [dartx.addFile]: dart.definiteFunctionType(html$.DataTransferItem, [html$.File]),
     [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-    [dartx.item]: dart.definiteFunctionType(html.DataTransferItem, [core.int]),
+    [dartx.item]: dart.definiteFunctionType(html$.DataTransferItem, [core.int]),
     [dartx.remove]: dart.definiteFunctionType(dart.void, [core.int]),
-    [dartx._get]: dart.definiteFunctionType(html.DataTransferItem, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.DataTransferItem, [core.int])
   })
 });
-dart.registerExtension(dart.global.DataTransferItemList, html.DataTransferItemList);
-html.DatabaseCallback = dart.typedef('DatabaseCallback', () => dart.functionType(dart.void, [web_sql.SqlDatabase]));
+dart.registerExtension(dart.global.DataTransferItemList, html$.DataTransferItemList);
+html$.DatabaseCallback = dart.typedef('DatabaseCallback', () => dart.functionType(dart.void, [web_sql.SqlDatabase]));
 dart.defineExtensionNames([
   'postMessage',
   'onMessage'
 ]);
-html.DedicatedWorkerGlobalScope = class DedicatedWorkerGlobalScope extends html.WorkerGlobalScope {
+html$.DedicatedWorkerGlobalScope = class DedicatedWorkerGlobalScope extends html$.WorkerGlobalScope {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69435,12 +69438,12 @@
     return this.postMessage.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.DedicatedWorkerGlobalScope.messageEvent.forTarget(this);
+    return html$.DedicatedWorkerGlobalScope.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.DedicatedWorkerGlobalScope, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DedicatedWorkerGlobalScope, [])}),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+dart.setSignature(html$.DedicatedWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DedicatedWorkerGlobalScope, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({
     [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
     [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, ListOfMessagePort()]),
@@ -69448,16 +69451,16 @@
   }),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.DedicatedWorkerGlobalScope, {
+dart.defineLazy(html$.DedicatedWorkerGlobalScope, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.DedicatedWorkerGlobalScope, html.DedicatedWorkerGlobalScope);
+dart.registerExtension(dart.global.DedicatedWorkerGlobalScope, html$.DedicatedWorkerGlobalScope);
 dart.defineExtensionNames([
   'session'
 ]);
-html.DefaultSessionStartEvent = class DefaultSessionStartEvent extends html.Event {
+html$.DefaultSessionStartEvent = class DefaultSessionStartEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69465,9 +69468,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.DefaultSessionStartEvent._create_1(type, eventInitDict_1);
+      return html$.DefaultSessionStartEvent._create_1(type, eventInitDict_1);
     }
-    return html.DefaultSessionStartEvent._create_2(type);
+    return html$.DefaultSessionStartEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.DefaultSessionStartEvent(type, eventInitDict);
@@ -69479,24 +69482,24 @@
     return this.session;
   }
 };
-dart.setSignature(html.DefaultSessionStartEvent, {
+dart.setSignature(html$.DefaultSessionStartEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DefaultSessionStartEvent, []),
-    new: dart.definiteFunctionType(html.DefaultSessionStartEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.DefaultSessionStartEvent, []),
+    new: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [core.String], [core.Map])
   }),
-  fields: () => ({[dartx.session]: html.PresentationSession}),
+  fields: () => ({[dartx.session]: html$.PresentationSession}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.DefaultSessionStartEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.DefaultSessionStartEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DefaultSessionStartEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.DefaultSessionStartEvent, html.DefaultSessionStartEvent);
+dart.registerExtension(dart.global.DefaultSessionStartEvent, html$.DefaultSessionStartEvent);
 dart.defineExtensionNames([
   'queryUsageAndQuota',
   'requestQuota'
 ]);
-html.DeprecatedStorageInfo = class DeprecatedStorageInfo extends _interceptors.Interceptor {
+html$.DeprecatedStorageInfo = class DeprecatedStorageInfo extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69507,25 +69510,25 @@
     return this.requestQuota.apply(this, args);
   }
 };
-dart.setSignature(html.DeprecatedStorageInfo, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DeprecatedStorageInfo, [])}),
+dart.setSignature(html$.DeprecatedStorageInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeprecatedStorageInfo, [])}),
   methods: () => ({
-    [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [core.int], [html.StorageUsageCallback, html.StorageErrorCallback]),
-    [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html.StorageQuotaCallback, html.StorageErrorCallback])
+    [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [core.int], [html$.StorageUsageCallback, html$.StorageErrorCallback]),
+    [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int, core.int], [html$.StorageQuotaCallback, html$.StorageErrorCallback])
   }),
   sfields: () => ({
     PERSISTENT: core.int,
     TEMPORARY: core.int
   })
 });
-html.DeprecatedStorageInfo.PERSISTENT = 1;
-html.DeprecatedStorageInfo.TEMPORARY = 0;
-dart.registerExtension(dart.global.DeprecatedStorageInfo, html.DeprecatedStorageInfo);
+html$.DeprecatedStorageInfo.PERSISTENT = 1;
+html$.DeprecatedStorageInfo.TEMPORARY = 0;
+dart.registerExtension(dart.global.DeprecatedStorageInfo, html$.DeprecatedStorageInfo);
 dart.defineExtensionNames([
   'queryUsageAndQuota',
   'requestQuota'
 ]);
-html.DeprecatedStorageQuota = class DeprecatedStorageQuota extends _interceptors.Interceptor {
+html$.DeprecatedStorageQuota = class DeprecatedStorageQuota extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69536,30 +69539,30 @@
     return this.requestQuota.apply(this, args);
   }
 };
-dart.setSignature(html.DeprecatedStorageQuota, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DeprecatedStorageQuota, [])}),
+dart.setSignature(html$.DeprecatedStorageQuota, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeprecatedStorageQuota, [])}),
   methods: () => ({
-    [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [html.StorageUsageCallback], [html.StorageErrorCallback]),
-    [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int], [html.StorageQuotaCallback, html.StorageErrorCallback])
+    [dartx.queryUsageAndQuota]: dart.definiteFunctionType(dart.void, [html$.StorageUsageCallback], [html$.StorageErrorCallback]),
+    [dartx.requestQuota]: dart.definiteFunctionType(dart.void, [core.int], [html$.StorageQuotaCallback, html$.StorageErrorCallback])
   })
 });
-dart.registerExtension(dart.global.DeprecatedStorageQuota, html.DeprecatedStorageQuota);
+dart.registerExtension(dart.global.DeprecatedStorageQuota, html$.DeprecatedStorageQuota);
 dart.defineExtensionNames([
   'open'
 ]);
-html.DetailsElement = class DetailsElement extends html.HtmlElement {
+html$.DetailsElement = class DetailsElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.DetailsElement._check(html.document[dartx.createElement]("details"));
+    return html$.DetailsElement._check(html$.document[dartx.createElement]("details"));
   }
   created() {
     this[dartx.open] = null;
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('details');
+    return html$.Element.isTagSupported('details');
   }
   get [dartx.open]() {
     return this.open;
@@ -69568,23 +69571,23 @@
     this.open = value;
   }
 };
-dart.defineNamedConstructor(html.DetailsElement, 'created');
-dart.setSignature(html.DetailsElement, {
+dart.defineNamedConstructor(html$.DetailsElement, 'created');
+dart.setSignature(html$.DetailsElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DetailsElement, []),
-    new: dart.definiteFunctionType(html.DetailsElement, []),
-    created: dart.definiteFunctionType(html.DetailsElement, [])
+    _: dart.definiteFunctionType(html$.DetailsElement, []),
+    new: dart.definiteFunctionType(html$.DetailsElement, []),
+    created: dart.definiteFunctionType(html$.DetailsElement, [])
   }),
   fields: () => ({[dartx.open]: core.bool}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLDetailsElement, html.DetailsElement);
+dart.registerExtension(dart.global.HTMLDetailsElement, html$.DetailsElement);
 dart.defineExtensionNames([
   'x',
   'y',
   'z'
 ]);
-html.DeviceAcceleration = class DeviceAcceleration extends _interceptors.Interceptor {
+html$.DeviceAcceleration = class DeviceAcceleration extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69598,19 +69601,19 @@
     return this.z;
   }
 };
-dart.setSignature(html.DeviceAcceleration, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DeviceAcceleration, [])}),
+dart.setSignature(html$.DeviceAcceleration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeviceAcceleration, [])}),
   fields: () => ({
     [dartx.x]: core.double,
     [dartx.y]: core.double,
     [dartx.z]: core.double
   })
 });
-dart.registerExtension(dart.global.DeviceAcceleration, html.DeviceAcceleration);
+dart.registerExtension(dart.global.DeviceAcceleration, html$.DeviceAcceleration);
 dart.defineExtensionNames([
   'value'
 ]);
-html.DeviceLightEvent = class DeviceLightEvent extends html.Event {
+html$.DeviceLightEvent = class DeviceLightEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69618,9 +69621,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.DeviceLightEvent._create_1(type, eventInitDict_1);
+      return html$.DeviceLightEvent._create_1(type, eventInitDict_1);
     }
-    return html.DeviceLightEvent._create_2(type);
+    return html$.DeviceLightEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.DeviceLightEvent(type, eventInitDict);
@@ -69632,19 +69635,19 @@
     return this.value;
   }
 };
-dart.setSignature(html.DeviceLightEvent, {
+dart.setSignature(html$.DeviceLightEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DeviceLightEvent, []),
-    new: dart.definiteFunctionType(html.DeviceLightEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.DeviceLightEvent, []),
+    new: dart.definiteFunctionType(html$.DeviceLightEvent, [core.String], [core.Map])
   }),
   fields: () => ({[dartx.value]: core.double}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.DeviceLightEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.DeviceLightEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.DeviceLightEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DeviceLightEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.DeviceLightEvent, html.DeviceLightEvent);
+dart.registerExtension(dart.global.DeviceLightEvent, html$.DeviceLightEvent);
 dart.defineExtensionNames([
   'initDeviceMotionEvent',
   'acceleration',
@@ -69652,7 +69655,7 @@
   'interval',
   'rotationRate'
 ]);
-html.DeviceMotionEvent = class DeviceMotionEvent extends html.Event {
+html$.DeviceMotionEvent = class DeviceMotionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69672,17 +69675,17 @@
     return this.initDeviceMotionEvent.apply(this, args);
   }
 };
-dart.setSignature(html.DeviceMotionEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DeviceMotionEvent, [])}),
+dart.setSignature(html$.DeviceMotionEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeviceMotionEvent, [])}),
   fields: () => ({
-    [dartx.acceleration]: html.DeviceAcceleration,
-    [dartx.accelerationIncludingGravity]: html.DeviceAcceleration,
+    [dartx.acceleration]: html$.DeviceAcceleration,
+    [dartx.accelerationIncludingGravity]: html$.DeviceAcceleration,
     [dartx.interval]: core.double,
-    [dartx.rotationRate]: html.DeviceRotationRate
+    [dartx.rotationRate]: html$.DeviceRotationRate
   }),
-  methods: () => ({[dartx.initDeviceMotionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.DeviceAcceleration, html.DeviceAcceleration, html.DeviceRotationRate, core.num])})
+  methods: () => ({[dartx.initDeviceMotionEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.DeviceAcceleration, html$.DeviceAcceleration, html$.DeviceRotationRate, core.num])})
 });
-dart.registerExtension(dart.global.DeviceMotionEvent, html.DeviceMotionEvent);
+dart.registerExtension(dart.global.DeviceMotionEvent, html$.DeviceMotionEvent);
 const _initDeviceOrientationEvent = Symbol('_initDeviceOrientationEvent');
 dart.defineExtensionNames([
   'absolute',
@@ -69690,7 +69693,7 @@
   'beta',
   'gamma'
 ]);
-html.DeviceOrientationEvent = class DeviceOrientationEvent extends html.Event {
+html$.DeviceOrientationEvent = class DeviceOrientationEvent extends html$.Event {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
@@ -69698,7 +69701,7 @@
     let beta = opts && 'beta' in opts ? opts.beta : 0;
     let gamma = opts && 'gamma' in opts ? opts.gamma : 0;
     let absolute = opts && 'absolute' in opts ? opts.absolute : false;
-    let e = html.DeviceOrientationEvent._check(html.document[_createEvent]("DeviceOrientationEvent"));
+    let e = html$.DeviceOrientationEvent._check(html$.document[_createEvent]("DeviceOrientationEvent"));
     e[_initDeviceOrientationEvent](type, canBubble, cancelable, alpha, beta, gamma, absolute);
     return e;
   }
@@ -69721,10 +69724,10 @@
     return this.initDeviceOrientationEvent.apply(this, args);
   }
 };
-dart.setSignature(html.DeviceOrientationEvent, {
+dart.setSignature(html$.DeviceOrientationEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.DeviceOrientationEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, alpha: core.num, beta: core.num, gamma: core.num, absolute: core.bool}),
-    _: dart.definiteFunctionType(html.DeviceOrientationEvent, [])
+    new: dart.definiteFunctionType(html$.DeviceOrientationEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, alpha: core.num, beta: core.num, gamma: core.num, absolute: core.bool}),
+    _: dart.definiteFunctionType(html$.DeviceOrientationEvent, [])
   }),
   fields: () => ({
     [dartx.absolute]: core.bool,
@@ -69734,13 +69737,13 @@
   }),
   methods: () => ({[_initDeviceOrientationEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.num, core.num, core.num, core.bool])})
 });
-dart.registerExtension(dart.global.DeviceOrientationEvent, html.DeviceOrientationEvent);
+dart.registerExtension(dart.global.DeviceOrientationEvent, html$.DeviceOrientationEvent);
 dart.defineExtensionNames([
   'alpha',
   'beta',
   'gamma'
 ]);
-html.DeviceRotationRate = class DeviceRotationRate extends _interceptors.Interceptor {
+html$.DeviceRotationRate = class DeviceRotationRate extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69754,15 +69757,15 @@
     return this.gamma;
   }
 };
-dart.setSignature(html.DeviceRotationRate, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DeviceRotationRate, [])}),
+dart.setSignature(html$.DeviceRotationRate, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DeviceRotationRate, [])}),
   fields: () => ({
     [dartx.alpha]: core.double,
     [dartx.beta]: core.double,
     [dartx.gamma]: core.double
   })
 });
-dart.registerExtension(dart.global.DeviceRotationRate, html.DeviceRotationRate);
+dart.registerExtension(dart.global.DeviceRotationRate, html$.DeviceRotationRate);
 dart.defineExtensionNames([
   'close',
   'show',
@@ -69770,7 +69773,7 @@
   'open',
   'returnValue'
 ]);
-html.DialogElement = class DialogElement extends html.HtmlElement {
+html$.DialogElement = class DialogElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69801,11 +69804,11 @@
     return this.showModal.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.DialogElement, 'created');
-dart.setSignature(html.DialogElement, {
+dart.defineNamedConstructor(html$.DialogElement, 'created');
+dart.setSignature(html$.DialogElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DialogElement, []),
-    created: dart.definiteFunctionType(html.DialogElement, [])
+    _: dart.definiteFunctionType(html$.DialogElement, []),
+    created: dart.definiteFunctionType(html$.DialogElement, [])
   }),
   fields: () => ({
     [dartx.open]: core.bool,
@@ -69817,7 +69820,7 @@
     [dartx.showModal]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.HTMLDialogElement, html.DialogElement);
+dart.registerExtension(dart.global.HTMLDialogElement, html$.DialogElement);
 const _getDirectory = Symbol('_getDirectory');
 const _getFile = Symbol('_getFile');
 const __getDirectory_1 = Symbol('__getDirectory_1');
@@ -69835,7 +69838,7 @@
 const _getMetadata = Symbol('_getMetadata');
 const _getParent = Symbol('_getParent');
 const _moveTo = Symbol('_moveTo');
-const _remove = Symbol('_remove');
+const _remove$ = Symbol('_remove');
 dart.defineExtensionNames([
   'copyTo',
   'getMetadata',
@@ -69849,7 +69852,7 @@
   'isFile',
   'name'
 ]);
-html.Entry = class Entry extends _interceptors.Interceptor {
+html$.Entry = class Entry extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -69918,12 +69921,12 @@
       }, FileErrorToNull())});
     return completer.future;
   }
-  [_remove](...args) {
+  [_remove$](...args) {
     return this.remove.apply(this, args);
   }
   [dartx.remove]() {
     let completer = async.Completer.new();
-    this[_remove](dart.fn(() => {
+    this[_remove$](dart.fn(() => {
       completer.complete();
     }, VoidToNull()), dart.fn(error => {
       completer.completeError(error);
@@ -69934,30 +69937,30 @@
     return this.toURL.apply(this, args);
   }
 };
-dart.setSignature(html.Entry, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Entry, [])}),
+dart.setSignature(html$.Entry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Entry, [])}),
   fields: () => ({
-    [dartx.filesystem]: html.FileSystem,
+    [dartx.filesystem]: html$.FileSystem,
     [dartx.fullPath]: core.String,
     [dartx.isDirectory]: core.bool,
     [dartx.isFile]: core.bool,
     [dartx.name]: core.String
   }),
   methods: () => ({
-    [_copyTo]: dart.definiteFunctionType(dart.void, [html.DirectoryEntry], {name: core.String, successCallback: html._EntryCallback, errorCallback: html._ErrorCallback}),
-    [dartx.copyTo]: dart.definiteFunctionType(async.Future$(html.Entry), [html.DirectoryEntry], {name: core.String}),
-    [_getMetadata]: dart.definiteFunctionType(dart.void, [html.MetadataCallback], [html._ErrorCallback]),
-    [dartx.getMetadata]: dart.definiteFunctionType(async.Future$(html.Metadata), []),
-    [_getParent]: dart.definiteFunctionType(dart.void, [], [html._EntryCallback, html._ErrorCallback]),
-    [dartx.getParent]: dart.definiteFunctionType(async.Future$(html.Entry), []),
-    [_moveTo]: dart.definiteFunctionType(dart.void, [html.DirectoryEntry], {name: core.String, successCallback: html._EntryCallback, errorCallback: html._ErrorCallback}),
-    [dartx.moveTo]: dart.definiteFunctionType(async.Future$(html.Entry), [html.DirectoryEntry], {name: core.String}),
-    [_remove]: dart.definiteFunctionType(dart.void, [html.VoidCallback], [html._ErrorCallback]),
+    [_copyTo]: dart.definiteFunctionType(dart.void, [html$.DirectoryEntry], {name: core.String, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [dartx.copyTo]: dart.definiteFunctionType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}),
+    [_getMetadata]: dart.definiteFunctionType(dart.void, [html$.MetadataCallback], [html$._ErrorCallback]),
+    [dartx.getMetadata]: dart.definiteFunctionType(async.Future$(html$.Metadata), []),
+    [_getParent]: dart.definiteFunctionType(dart.void, [], [html$._EntryCallback, html$._ErrorCallback]),
+    [dartx.getParent]: dart.definiteFunctionType(async.Future$(html$.Entry), []),
+    [_moveTo]: dart.definiteFunctionType(dart.void, [html$.DirectoryEntry], {name: core.String, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [dartx.moveTo]: dart.definiteFunctionType(async.Future$(html$.Entry), [html$.DirectoryEntry], {name: core.String}),
+    [_remove$]: dart.definiteFunctionType(dart.void, [html$.VoidCallback], [html$._ErrorCallback]),
     [dartx.remove]: dart.definiteFunctionType(async.Future, []),
     [dartx.toUrl]: dart.definiteFunctionType(core.String, [])
   })
 });
-dart.registerExtension(dart.global.Entry, html.Entry);
+dart.registerExtension(dart.global.Entry, html$.Entry);
 dart.defineExtensionNames([
   'createDirectory',
   'getDirectory',
@@ -69966,7 +69969,7 @@
   'createReader',
   'removeRecursively'
 ]);
-html.DirectoryEntry = class DirectoryEntry extends html.Entry {
+html$.DirectoryEntry = class DirectoryEntry extends html$.Entry {
   [dartx.createDirectory](path, opts) {
     let exclusive = opts && 'exclusive' in opts ? opts.exclusive : false;
     return this[_getDirectory](path, {options: dart.map({create: true, exclusive: exclusive}, core.String, core.bool)});
@@ -70088,36 +70091,36 @@
     return completer.future;
   }
 };
-dart.setSignature(html.DirectoryEntry, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DirectoryEntry, [])}),
+dart.setSignature(html$.DirectoryEntry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DirectoryEntry, [])}),
   methods: () => ({
-    [dartx.createDirectory]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String], {exclusive: core.bool}),
-    [dartx.getDirectory]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String]),
-    [dartx.createFile]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String], {exclusive: core.bool}),
-    [dartx.getFile]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String]),
-    [dartx.createReader]: dart.definiteFunctionType(html.DirectoryReader, []),
-    [__getDirectory]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html._EntryCallback, errorCallback: html._ErrorCallback}),
-    [__getDirectory_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html._EntryCallback, html._ErrorCallback]),
-    [__getDirectory_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html._EntryCallback]),
+    [dartx.createDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}),
+    [dartx.getDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
+    [dartx.createFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {exclusive: core.bool}),
+    [dartx.getFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
+    [dartx.createReader]: dart.definiteFunctionType(html$.DirectoryReader, []),
+    [__getDirectory]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [__getDirectory_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback, html$._ErrorCallback]),
+    [__getDirectory_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback]),
     [__getDirectory_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
     [__getDirectory_4]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-    [_getDirectory]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String], {options: core.Map}),
-    [__getFile]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html._EntryCallback, errorCallback: html._ErrorCallback}),
-    [__getFile_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html._EntryCallback, html._ErrorCallback]),
-    [__getFile_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html._EntryCallback]),
+    [_getDirectory]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {options: core.Map}),
+    [__getFile]: dart.definiteFunctionType(dart.void, [core.String], {options: core.Map, successCallback: html$._EntryCallback, errorCallback: html$._ErrorCallback}),
+    [__getFile_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback, html$._ErrorCallback]),
+    [__getFile_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, html$._EntryCallback]),
     [__getFile_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
     [__getFile_4]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-    [_getFile]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String], {options: core.Map}),
-    [_removeRecursively]: dart.definiteFunctionType(dart.void, [html.VoidCallback], [html._ErrorCallback]),
+    [_getFile]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String], {options: core.Map}),
+    [_removeRecursively]: dart.definiteFunctionType(dart.void, [html$.VoidCallback], [html$._ErrorCallback]),
     [dartx.removeRecursively]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.DirectoryEntry, html.DirectoryEntry);
+dart.registerExtension(dart.global.DirectoryEntry, html$.DirectoryEntry);
 const _readEntries = Symbol('_readEntries');
 dart.defineExtensionNames([
   'readEntries'
 ]);
-html.DirectoryReader = class DirectoryReader extends _interceptors.Interceptor {
+html$.DirectoryReader = class DirectoryReader extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -70134,37 +70137,37 @@
     return completer.future;
   }
 };
-dart.setSignature(html.DirectoryReader, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DirectoryReader, [])}),
+dart.setSignature(html$.DirectoryReader, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DirectoryReader, [])}),
   methods: () => ({
-    [_readEntries]: dart.definiteFunctionType(dart.void, [html._EntriesCallback], [html._ErrorCallback]),
-    [dartx.readEntries]: dart.definiteFunctionType(async.Future$(core.List$(html.Entry)), [])
+    [_readEntries]: dart.definiteFunctionType(dart.void, [html$._EntriesCallback], [html$._ErrorCallback]),
+    [dartx.readEntries]: dart.definiteFunctionType(async.Future$(core.List$(html$.Entry)), [])
   })
 });
-dart.registerExtension(dart.global.DirectoryReader, html.DirectoryReader);
-html.DivElement = class DivElement extends html.HtmlElement {
+dart.registerExtension(dart.global.DirectoryReader, html$.DirectoryReader);
+html$.DivElement = class DivElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.DivElement._check(html.document[dartx.createElement]("div"));
+    return html$.DivElement._check(html$.document[dartx.createElement]("div"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.DivElement, 'created');
-dart.setSignature(html.DivElement, {
+dart.defineNamedConstructor(html$.DivElement, 'created');
+dart.setSignature(html$.DivElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DivElement, []),
-    new: dart.definiteFunctionType(html.DivElement, []),
-    created: dart.definiteFunctionType(html.DivElement, [])
+    _: dart.definiteFunctionType(html$.DivElement, []),
+    new: dart.definiteFunctionType(html$.DivElement, []),
+    created: dart.definiteFunctionType(html$.DivElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLDivElement, html.DivElement);
+dart.registerExtension(dart.global.HTMLDivElement, html$.DivElement);
 const _body = Symbol('_body');
 const _get_window = Symbol('_get_window');
-const _head = Symbol('_head');
+const _head$0 = Symbol('_head');
 const _lastModified = Symbol('_lastModified');
 const _preferredStylesheetSet = Symbol('_preferredStylesheetSet');
 const _referrer = Symbol('_referrer');
@@ -70307,7 +70310,7 @@
   'scrollingElement',
   'timeline'
 ]);
-html.Document = class Document extends html.Node {
+html$.Document = class Document extends html$.Node {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -70333,7 +70336,7 @@
     return this.currentScript;
   }
   get [dartx.window]() {
-    return html._convertNativeToDart_Window(this[_get_window]);
+    return html$._convertNativeToDart_Window(this[_get_window]);
   }
   get [_get_window]() {
     return this.defaultView;
@@ -70353,7 +70356,7 @@
   get [dartx.fullscreenEnabled]() {
     return this.fullscreenEnabled;
   }
-  get [_head]() {
+  get [_head$0]() {
     return this.head;
   }
   get [dartx.hidden]() {
@@ -70444,7 +70447,7 @@
     return this.createTextNode.apply(this, args);
   }
   [_createTouch](window, target, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force) {
-    let target_1 = html._convertDartToNative_EventTarget(target);
+    let target_1 = html$._convertDartToNative_EventTarget(target);
     return this[_createTouch_1](window, target_1, identifier, pageX, pageY, screenX, screenY, radiusX, radiusY, rotationAngle, force);
   }
   [_createTouch_1](...args) {
@@ -70526,221 +70529,221 @@
     return this.querySelectorAll.apply(this, args);
   }
   get [dartx.onAbort]() {
-    return html.Element.abortEvent.forTarget(this);
+    return html$.Element.abortEvent.forTarget(this);
   }
   get [dartx.onBeforeCopy]() {
-    return html.Element.beforeCopyEvent.forTarget(this);
+    return html$.Element.beforeCopyEvent.forTarget(this);
   }
   get [dartx.onBeforeCut]() {
-    return html.Element.beforeCutEvent.forTarget(this);
+    return html$.Element.beforeCutEvent.forTarget(this);
   }
   get [dartx.onBeforePaste]() {
-    return html.Element.beforePasteEvent.forTarget(this);
+    return html$.Element.beforePasteEvent.forTarget(this);
   }
   get [dartx.onBlur]() {
-    return html.Element.blurEvent.forTarget(this);
+    return html$.Element.blurEvent.forTarget(this);
   }
   get [dartx.onCanPlay]() {
-    return html.Element.canPlayEvent.forTarget(this);
+    return html$.Element.canPlayEvent.forTarget(this);
   }
   get [dartx.onCanPlayThrough]() {
-    return html.Element.canPlayThroughEvent.forTarget(this);
+    return html$.Element.canPlayThroughEvent.forTarget(this);
   }
   get [dartx.onChange]() {
-    return html.Element.changeEvent.forTarget(this);
+    return html$.Element.changeEvent.forTarget(this);
   }
   get [dartx.onClick]() {
-    return html.Element.clickEvent.forTarget(this);
+    return html$.Element.clickEvent.forTarget(this);
   }
   get [dartx.onContextMenu]() {
-    return html.Element.contextMenuEvent.forTarget(this);
+    return html$.Element.contextMenuEvent.forTarget(this);
   }
   get [dartx.onCopy]() {
-    return html.Element.copyEvent.forTarget(this);
+    return html$.Element.copyEvent.forTarget(this);
   }
   get [dartx.onCut]() {
-    return html.Element.cutEvent.forTarget(this);
+    return html$.Element.cutEvent.forTarget(this);
   }
   get [dartx.onDoubleClick]() {
-    return html.Element.doubleClickEvent.forTarget(this);
+    return html$.Element.doubleClickEvent.forTarget(this);
   }
   get [dartx.onDrag]() {
-    return html.Element.dragEvent.forTarget(this);
+    return html$.Element.dragEvent.forTarget(this);
   }
   get [dartx.onDragEnd]() {
-    return html.Element.dragEndEvent.forTarget(this);
+    return html$.Element.dragEndEvent.forTarget(this);
   }
   get [dartx.onDragEnter]() {
-    return html.Element.dragEnterEvent.forTarget(this);
+    return html$.Element.dragEnterEvent.forTarget(this);
   }
   get [dartx.onDragLeave]() {
-    return html.Element.dragLeaveEvent.forTarget(this);
+    return html$.Element.dragLeaveEvent.forTarget(this);
   }
   get [dartx.onDragOver]() {
-    return html.Element.dragOverEvent.forTarget(this);
+    return html$.Element.dragOverEvent.forTarget(this);
   }
   get [dartx.onDragStart]() {
-    return html.Element.dragStartEvent.forTarget(this);
+    return html$.Element.dragStartEvent.forTarget(this);
   }
   get [dartx.onDrop]() {
-    return html.Element.dropEvent.forTarget(this);
+    return html$.Element.dropEvent.forTarget(this);
   }
   get [dartx.onDurationChange]() {
-    return html.Element.durationChangeEvent.forTarget(this);
+    return html$.Element.durationChangeEvent.forTarget(this);
   }
   get [dartx.onEmptied]() {
-    return html.Element.emptiedEvent.forTarget(this);
+    return html$.Element.emptiedEvent.forTarget(this);
   }
   get [dartx.onEnded]() {
-    return html.Element.endedEvent.forTarget(this);
+    return html$.Element.endedEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.Element.errorEvent.forTarget(this);
+    return html$.Element.errorEvent.forTarget(this);
   }
   get [dartx.onFocus]() {
-    return html.Element.focusEvent.forTarget(this);
+    return html$.Element.focusEvent.forTarget(this);
   }
   get [dartx.onInput]() {
-    return html.Element.inputEvent.forTarget(this);
+    return html$.Element.inputEvent.forTarget(this);
   }
   get [dartx.onInvalid]() {
-    return html.Element.invalidEvent.forTarget(this);
+    return html$.Element.invalidEvent.forTarget(this);
   }
   get [dartx.onKeyDown]() {
-    return html.Element.keyDownEvent.forTarget(this);
+    return html$.Element.keyDownEvent.forTarget(this);
   }
   get [dartx.onKeyPress]() {
-    return html.Element.keyPressEvent.forTarget(this);
+    return html$.Element.keyPressEvent.forTarget(this);
   }
   get [dartx.onKeyUp]() {
-    return html.Element.keyUpEvent.forTarget(this);
+    return html$.Element.keyUpEvent.forTarget(this);
   }
   get [dartx.onLoad]() {
-    return html.Element.loadEvent.forTarget(this);
+    return html$.Element.loadEvent.forTarget(this);
   }
   get [dartx.onLoadedData]() {
-    return html.Element.loadedDataEvent.forTarget(this);
+    return html$.Element.loadedDataEvent.forTarget(this);
   }
   get [dartx.onLoadedMetadata]() {
-    return html.Element.loadedMetadataEvent.forTarget(this);
+    return html$.Element.loadedMetadataEvent.forTarget(this);
   }
   get [dartx.onMouseDown]() {
-    return html.Element.mouseDownEvent.forTarget(this);
+    return html$.Element.mouseDownEvent.forTarget(this);
   }
   get [dartx.onMouseEnter]() {
-    return html.Element.mouseEnterEvent.forTarget(this);
+    return html$.Element.mouseEnterEvent.forTarget(this);
   }
   get [dartx.onMouseLeave]() {
-    return html.Element.mouseLeaveEvent.forTarget(this);
+    return html$.Element.mouseLeaveEvent.forTarget(this);
   }
   get [dartx.onMouseMove]() {
-    return html.Element.mouseMoveEvent.forTarget(this);
+    return html$.Element.mouseMoveEvent.forTarget(this);
   }
   get [dartx.onMouseOut]() {
-    return html.Element.mouseOutEvent.forTarget(this);
+    return html$.Element.mouseOutEvent.forTarget(this);
   }
   get [dartx.onMouseOver]() {
-    return html.Element.mouseOverEvent.forTarget(this);
+    return html$.Element.mouseOverEvent.forTarget(this);
   }
   get [dartx.onMouseUp]() {
-    return html.Element.mouseUpEvent.forTarget(this);
+    return html$.Element.mouseUpEvent.forTarget(this);
   }
   get [dartx.onMouseWheel]() {
-    return html.Element.mouseWheelEvent.forTarget(this);
+    return html$.Element.mouseWheelEvent.forTarget(this);
   }
   get [dartx.onPaste]() {
-    return html.Element.pasteEvent.forTarget(this);
+    return html$.Element.pasteEvent.forTarget(this);
   }
   get [dartx.onPause]() {
-    return html.Element.pauseEvent.forTarget(this);
+    return html$.Element.pauseEvent.forTarget(this);
   }
   get [dartx.onPlay]() {
-    return html.Element.playEvent.forTarget(this);
+    return html$.Element.playEvent.forTarget(this);
   }
   get [dartx.onPlaying]() {
-    return html.Element.playingEvent.forTarget(this);
+    return html$.Element.playingEvent.forTarget(this);
   }
   get [dartx.onPointerLockChange]() {
-    return html.Document.pointerLockChangeEvent.forTarget(this);
+    return html$.Document.pointerLockChangeEvent.forTarget(this);
   }
   get [dartx.onPointerLockError]() {
-    return html.Document.pointerLockErrorEvent.forTarget(this);
+    return html$.Document.pointerLockErrorEvent.forTarget(this);
   }
   get [dartx.onRateChange]() {
-    return html.Element.rateChangeEvent.forTarget(this);
+    return html$.Element.rateChangeEvent.forTarget(this);
   }
   get [dartx.onReadyStateChange]() {
-    return html.Document.readyStateChangeEvent.forTarget(this);
+    return html$.Document.readyStateChangeEvent.forTarget(this);
   }
   get [dartx.onReset]() {
-    return html.Element.resetEvent.forTarget(this);
+    return html$.Element.resetEvent.forTarget(this);
   }
   get [dartx.onResize]() {
-    return html.Element.resizeEvent.forTarget(this);
+    return html$.Element.resizeEvent.forTarget(this);
   }
   get [dartx.onScroll]() {
-    return html.Element.scrollEvent.forTarget(this);
+    return html$.Element.scrollEvent.forTarget(this);
   }
   get [dartx.onSearch]() {
-    return html.Element.searchEvent.forTarget(this);
+    return html$.Element.searchEvent.forTarget(this);
   }
   get [dartx.onSecurityPolicyViolation]() {
-    return html.Document.securityPolicyViolationEvent.forTarget(this);
+    return html$.Document.securityPolicyViolationEvent.forTarget(this);
   }
   get [dartx.onSeeked]() {
-    return html.Element.seekedEvent.forTarget(this);
+    return html$.Element.seekedEvent.forTarget(this);
   }
   get [dartx.onSeeking]() {
-    return html.Element.seekingEvent.forTarget(this);
+    return html$.Element.seekingEvent.forTarget(this);
   }
   get [dartx.onSelect]() {
-    return html.Element.selectEvent.forTarget(this);
+    return html$.Element.selectEvent.forTarget(this);
   }
   get [dartx.onSelectionChange]() {
-    return html.Document.selectionChangeEvent.forTarget(this);
+    return html$.Document.selectionChangeEvent.forTarget(this);
   }
   get [dartx.onSelectStart]() {
-    return html.Element.selectStartEvent.forTarget(this);
+    return html$.Element.selectStartEvent.forTarget(this);
   }
   get [dartx.onStalled]() {
-    return html.Element.stalledEvent.forTarget(this);
+    return html$.Element.stalledEvent.forTarget(this);
   }
   get [dartx.onSubmit]() {
-    return html.Element.submitEvent.forTarget(this);
+    return html$.Element.submitEvent.forTarget(this);
   }
   get [dartx.onSuspend]() {
-    return html.Element.suspendEvent.forTarget(this);
+    return html$.Element.suspendEvent.forTarget(this);
   }
   get [dartx.onTimeUpdate]() {
-    return html.Element.timeUpdateEvent.forTarget(this);
+    return html$.Element.timeUpdateEvent.forTarget(this);
   }
   get [dartx.onTouchCancel]() {
-    return html.Element.touchCancelEvent.forTarget(this);
+    return html$.Element.touchCancelEvent.forTarget(this);
   }
   get [dartx.onTouchEnd]() {
-    return html.Element.touchEndEvent.forTarget(this);
+    return html$.Element.touchEndEvent.forTarget(this);
   }
   get [dartx.onTouchMove]() {
-    return html.Element.touchMoveEvent.forTarget(this);
+    return html$.Element.touchMoveEvent.forTarget(this);
   }
   get [dartx.onTouchStart]() {
-    return html.Element.touchStartEvent.forTarget(this);
+    return html$.Element.touchStartEvent.forTarget(this);
   }
   get [dartx.onVolumeChange]() {
-    return html.Element.volumeChangeEvent.forTarget(this);
+    return html$.Element.volumeChangeEvent.forTarget(this);
   }
   get [dartx.onWaiting]() {
-    return html.Element.waitingEvent.forTarget(this);
+    return html$.Element.waitingEvent.forTarget(this);
   }
   get [dartx.onFullscreenChange]() {
-    return html.Element.fullscreenChangeEvent.forTarget(this);
+    return html$.Element.fullscreenChangeEvent.forTarget(this);
   }
   get [dartx.onFullscreenError]() {
-    return html.Element.fullscreenErrorEvent.forTarget(this);
+    return html$.Element.fullscreenErrorEvent.forTarget(this);
   }
   [dartx.querySelectorAll](T) {
     return selectors => {
-      return new (html._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
+      return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
     };
   }
   [dartx.query](relativeSelectors) {
@@ -70759,7 +70762,7 @@
   }
   [dartx.createElement](tagName, typeExtension) {
     if (typeExtension === void 0) typeExtension = null;
-    return html.Element._check(typeExtension == null ? this[_createElement_2](tagName) : this[_createElement](tagName, typeExtension));
+    return html$.Element._check(typeExtension == null ? this[_createElement_2](tagName) : this[_createElement](tagName, typeExtension));
   }
   [_createElement_2](tagName) {
     return this.createElement(tagName);
@@ -70769,7 +70772,7 @@
   }
   [dartx.createElementNS](namespaceURI, qualifiedName, typeExtension) {
     if (typeExtension === void 0) typeExtension = null;
-    return html.Element._check(typeExtension == null ? this[_createElementNS_2](namespaceURI, qualifiedName) : this[_createElementNS](namespaceURI, qualifiedName, typeExtension));
+    return html$.Element._check(typeExtension == null ? this[_createElementNS_2](namespaceURI, qualifiedName) : this[_createElementNS](namespaceURI, qualifiedName, typeExtension));
   }
   [_createNodeIterator](root, whatToShow, filter) {
     if (whatToShow === void 0) whatToShow = null;
@@ -70785,144 +70788,144 @@
     return this.visibilityState || this.mozVisibilityState || this.msVisibilityState || this.webkitVisibilityState;
   }
 };
-dart.setSignature(html.Document, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Document, [])}),
+dart.setSignature(html$.Document, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Document, [])}),
   fields: () => ({
-    [dartx.activeElement]: html.Element,
-    [_body]: html.HtmlElement,
+    [dartx.activeElement]: html$.Element,
+    [_body]: html$.HtmlElement,
     [dartx.contentType]: core.String,
     [dartx.cookie]: core.String,
-    [dartx.currentScript]: html.ScriptElement,
+    [dartx.currentScript]: html$.ScriptElement,
     [_get_window]: dart.dynamic,
-    [dartx.documentElement]: html.Element,
+    [dartx.documentElement]: html$.Element,
     [dartx.domain]: core.String,
-    [dartx.fonts]: html.FontFaceSet,
-    [dartx.fullscreenElement]: html.Element,
+    [dartx.fonts]: html$.FontFaceSet,
+    [dartx.fullscreenElement]: html$.Element,
     [dartx.fullscreenEnabled]: core.bool,
-    [_head]: html.HeadElement,
+    [_head$0]: html$.HeadElement,
     [dartx.hidden]: core.bool,
-    [dartx.implementation]: html.DomImplementation,
+    [dartx.implementation]: html$.DomImplementation,
     [_lastModified]: core.String,
     [dartx.origin]: core.String,
-    [dartx.pointerLockElement]: html.Element,
+    [dartx.pointerLockElement]: html$.Element,
     [_preferredStylesheetSet]: core.String,
     [dartx.readyState]: core.String,
     [_referrer]: core.String,
-    [dartx.rootElement]: svg.SvgSvgElement,
-    [dartx.scrollingElement]: html.Element,
+    [dartx.rootElement]: svg$.SvgSvgElement,
+    [dartx.scrollingElement]: html$.Element,
     [_selectedStylesheetSet]: core.String,
     [_styleSheets]: ListOfStyleSheet(),
-    [dartx.timeline]: html.AnimationTimeline,
+    [dartx.timeline]: html$.AnimationTimeline,
     [_title]: core.String,
     [_visibilityState]: core.String,
-    [_webkitFullscreenElement]: html.Element,
+    [_webkitFullscreenElement]: html$.Element,
     [_webkitFullscreenEnabled]: core.bool,
     [_webkitHidden]: core.bool,
     [_webkitVisibilityState]: core.String,
     [_childElementCount]: core.int,
     [_children]: ListOfNode(),
-    [_firstElementChild]: html.Element,
-    [_lastElementChild]: html.Element
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
   }),
   getters: () => ({
-    [dartx.window]: dart.definiteFunctionType(html.WindowBase, []),
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onBeforeCopy]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onBeforeCut]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onBeforePaste]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onCopy]: dart.definiteFunctionType(async.Stream$(html.ClipboardEvent), []),
-    [dartx.onCut]: dart.definiteFunctionType(async.Stream$(html.ClipboardEvent), []),
-    [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html.WheelEvent), []),
-    [dartx.onPaste]: dart.definiteFunctionType(async.Stream$(html.ClipboardEvent), []),
-    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPointerLockChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPointerLockError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSecurityPolicyViolation]: dart.definiteFunctionType(async.Stream$(html.SecurityPolicyViolationEvent), []),
-    [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSelectionChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSelectStart]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onFullscreenChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onFullscreenError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
+    [dartx.window]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBeforeCopy]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBeforeCut]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBeforePaste]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onCopy]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
+    [dartx.onCut]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
+    [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
+    [dartx.onPaste]: dart.definiteFunctionType(async.Stream$(html$.ClipboardEvent), []),
+    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPointerLockChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPointerLockError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSecurityPolicyViolation]: dart.definiteFunctionType(async.Stream$(html$.SecurityPolicyViolationEvent), []),
+    [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelectionChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelectStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFullscreenChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFullscreenError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
     [dartx.supportsRegisterElement]: dart.definiteFunctionType(core.bool, []),
     [dartx.supportsRegister]: dart.definiteFunctionType(core.bool, []),
     [dartx.visibilityState]: dart.definiteFunctionType(core.String, [])
   }),
   methods: () => ({
-    [dartx.adoptNode]: dart.definiteFunctionType(html.Node, [html.Node]),
-    [_caretRangeFromPoint]: dart.definiteFunctionType(html.Range, [core.int, core.int]),
-    [dartx.createDocumentFragment]: dart.definiteFunctionType(html.DocumentFragment, []),
-    [_createElement]: dart.definiteFunctionType(html.Element, [core.String], [core.String]),
-    [_createElementNS]: dart.definiteFunctionType(html.Element, [core.String, core.String], [core.String]),
-    [_createEvent]: dart.definiteFunctionType(html.Event, [core.String]),
-    [dartx.createRange]: dart.definiteFunctionType(html.Range, []),
-    [_createTextNode]: dart.definiteFunctionType(html.Text, [core.String]),
-    [_createTouch]: dart.definiteFunctionType(html.Touch, [html.Window, html.EventTarget, core.int, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
-    [_createTouch_1]: dart.definiteFunctionType(html.Touch, [html.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    [_createTouchList]: dart.definiteFunctionType(html.TouchList, [html.Touch]),
-    [_elementFromPoint]: dart.definiteFunctionType(html.Element, [core.int, core.int]),
-    [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html.Element), [core.int, core.int]),
+    [dartx.adoptNode]: dart.definiteFunctionType(html$.Node, [html$.Node]),
+    [_caretRangeFromPoint]: dart.definiteFunctionType(html$.Range, [core.int, core.int]),
+    [dartx.createDocumentFragment]: dart.definiteFunctionType(html$.DocumentFragment, []),
+    [_createElement]: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
+    [_createElementNS]: dart.definiteFunctionType(html$.Element, [core.String, core.String], [core.String]),
+    [_createEvent]: dart.definiteFunctionType(html$.Event, [core.String]),
+    [dartx.createRange]: dart.definiteFunctionType(html$.Range, []),
+    [_createTextNode]: dart.definiteFunctionType(html$.Text, [core.String]),
+    [_createTouch]: dart.definiteFunctionType(html$.Touch, [html$.Window, html$.EventTarget, core.int, core.num, core.num, core.num, core.num, core.num, core.num, core.num, core.num]),
+    [_createTouch_1]: dart.definiteFunctionType(html$.Touch, [html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    [_createTouchList]: dart.definiteFunctionType(html$.TouchList, [html$.Touch]),
+    [_elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
+    [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html$.Element), [core.int, core.int]),
     [dartx.execCommand]: dart.definiteFunctionType(core.bool, [core.String], [core.bool, core.String]),
     [dartx.exitFullscreen]: dart.definiteFunctionType(dart.void, []),
     [dartx.exitPointerLock]: dart.definiteFunctionType(dart.void, []),
     [_getCssCanvasContext]: dart.definiteFunctionType(core.Object, [core.String, core.String, core.int, core.int]),
-    [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html.Node), [core.String]),
-    [dartx.getElementsByName]: dart.definiteFunctionType(core.List$(html.Node), [core.String]),
-    [dartx.getElementsByTagName]: dart.definiteFunctionType(core.List$(html.Node), [core.String]),
-    [dartx.importNode]: dart.definiteFunctionType(html.Node, [html.Node], [core.bool]),
+    [dartx.getElementsByClassName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.getElementsByName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.getElementsByTagName]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.importNode]: dart.definiteFunctionType(html$.Node, [html$.Node], [core.bool]),
     [dartx.queryCommandEnabled]: dart.definiteFunctionType(core.bool, [core.String]),
     [dartx.queryCommandIndeterm]: dart.definiteFunctionType(core.bool, [core.String]),
     [dartx.queryCommandState]: dart.definiteFunctionType(core.bool, [core.String]),
@@ -70930,18 +70933,18 @@
     [dartx.queryCommandValue]: dart.definiteFunctionType(core.String, [core.String]),
     [dartx.transformDocumentToTreeView]: dart.definiteFunctionType(dart.void, [core.String]),
     [_webkitExitFullscreen]: dart.definiteFunctionType(dart.void, []),
-    [dartx.getElementById]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.querySelector]: dart.definiteFunctionType(html.Element, [core.String]),
-    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html.Node), [core.String]),
-    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html.ElementList$(T), [core.String]]),
-    [dartx.query]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.queryAll]: dart.definiteFunctionType(T => [html.ElementList$(T), [core.String]]),
-    [dartx.createElement]: dart.definiteFunctionType(html.Element, [core.String], [core.String]),
+    [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String]),
+    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.createElement]: dart.definiteFunctionType(html$.Element, [core.String], [core.String]),
     [_createElement_2]: dart.definiteFunctionType(dart.dynamic, [core.String]),
     [_createElementNS_2]: dart.definiteFunctionType(dart.dynamic, [core.String, core.String]),
-    [dartx.createElementNS]: dart.definiteFunctionType(html.Element, [core.String, core.String], [core.String]),
-    [_createNodeIterator]: dart.definiteFunctionType(html.NodeIterator, [html.Node], [core.int, html.NodeFilter]),
-    [_createTreeWalker]: dart.definiteFunctionType(html.TreeWalker, [html.Node], [core.int, html.NodeFilter])
+    [dartx.createElementNS]: dart.definiteFunctionType(html$.Element, [core.String, core.String], [core.String]),
+    [_createNodeIterator]: dart.definiteFunctionType(html$.NodeIterator, [html$.Node], [core.int, html$.NodeFilter]),
+    [_createTreeWalker]: dart.definiteFunctionType(html$.TreeWalker, [html$.Node], [core.int, html$.NodeFilter])
   }),
   sfields: () => ({
     pointerLockChangeEvent: EventStreamProviderOfEvent(),
@@ -70951,7 +70954,7 @@
     selectionChangeEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineLazy(html.Document, {
+dart.defineLazy(html$.Document, {
   get pointerLockChangeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('pointerlockchange'));
   },
@@ -70968,7 +70971,7 @@
     return dart.const(new (EventStreamProviderOfEvent())('selectionchange'));
   }
 });
-dart.registerExtension(dart.global.Document, html.Document);
+dart.registerExtension(dart.global.Document, html$.Document);
 const _docChildren = Symbol('_docChildren');
 dart.defineExtensionNames([
   'children',
@@ -70984,19 +70987,19 @@
   'getElementById',
   'querySelector'
 ]);
-html.DocumentFragment = class DocumentFragment extends html.Node {
+html$.DocumentFragment = class DocumentFragment extends html$.Node {
   static new() {
-    return html.document[dartx.createDocumentFragment]();
+    return html$.document[dartx.createDocumentFragment]();
   }
   static html(html, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    return html.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
+    return html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
   }
   static svg(svgContent, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    return svg.SvgSvgElement.new()[dartx.createFragment](svgContent, {validator: validator, treeSanitizer: treeSanitizer});
+    return svg$.SvgSvgElement.new()[dartx.createFragment](svgContent, {validator: validator, treeSanitizer: treeSanitizer});
   }
   get [_children]() {
     return dart.throw(new core.UnimplementedError('Use _docChildren instead'));
@@ -71021,11 +71024,11 @@
   }
   [dartx.querySelectorAll](T) {
     return selectors => {
-      return new (html._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
+      return new (html$._FrozenElementList$(T))._wrap(this[_querySelectorAll](selectors));
     };
   }
   get [dartx.innerHtml]() {
-    let e = html.Element.tag("div");
+    let e = html$.Element.tag("div");
     e[dartx.append](this[dartx.clone](true));
     return e[dartx.innerHtml];
   }
@@ -71036,16 +71039,16 @@
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
     this[dartx.nodes][dartx.clear]();
-    this[dartx.append](html.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
+    this[dartx.append](html$.document[dartx.body][dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer}));
   }
   [dartx.appendText](text) {
-    this[dartx.append](html.Text.new(text));
+    this[dartx.append](html$.Text.new(text));
   }
   [dartx.appendHtml](text, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let NodeTreeSanitizer = opts && 'NodeTreeSanitizer' in opts ? opts.NodeTreeSanitizer : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    this[dartx.append](html.DocumentFragment.html(text, {validator: validator, treeSanitizer: html.NodeTreeSanitizer._check(treeSanitizer)}));
+    this[dartx.append](html$.DocumentFragment.html(text, {validator: validator, treeSanitizer: html$.NodeTreeSanitizer._check(treeSanitizer)}));
   }
   [dartx.query](relativeSelectors) {
     return this[dartx.querySelector](relativeSelectors);
@@ -71077,23 +71080,23 @@
     return this.querySelectorAll.apply(this, args);
   }
 };
-html.DocumentFragment[dart.implements] = () => [html.NonElementParentNode, html.ParentNode];
-dart.setSignature(html.DocumentFragment, {
+html$.DocumentFragment[dart.implements] = () => [html$.NonElementParentNode, html$.ParentNode];
+dart.setSignature(html$.DocumentFragment, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.DocumentFragment, []),
-    html: dart.definiteFunctionType(html.DocumentFragment, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
-    svg: dart.definiteFunctionType(html.DocumentFragment, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
-    _: dart.definiteFunctionType(html.DocumentFragment, [])
+    new: dart.definiteFunctionType(html$.DocumentFragment, []),
+    html: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    svg: dart.definiteFunctionType(html$.DocumentFragment, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    _: dart.definiteFunctionType(html$.DocumentFragment, [])
   }),
   fields: () => ({
     [_docChildren]: ListOfElement(),
     [_childElementCount]: core.int,
-    [_firstElementChild]: html.Element,
-    [_lastElementChild]: html.Element
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
   }),
   getters: () => ({
-    [_children]: dart.definiteFunctionType(html.HtmlCollection, []),
-    [dartx.children]: dart.definiteFunctionType(core.List$(html.Element), []),
+    [_children]: dart.definiteFunctionType(html$.HtmlCollection, []),
+    [dartx.children]: dart.definiteFunctionType(core.List$(html$.Element), []),
     [dartx.innerHtml]: dart.definiteFunctionType(core.String, [])
   }),
   setters: () => ({
@@ -71101,32 +71104,32 @@
     [dartx.innerHtml]: dart.definiteFunctionType(dart.void, [core.String])
   }),
   methods: () => ({
-    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html.ElementList$(T), [core.String]]),
-    [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
+    [dartx.querySelectorAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.setInnerHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
     [dartx.appendText]: dart.definiteFunctionType(dart.void, [core.String]),
-    [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html.NodeValidator, NodeTreeSanitizer: dart.dynamic, treeSanitizer: dart.dynamic}),
-    [dartx.query]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.queryAll]: dart.definiteFunctionType(T => [html.ElementList$(T), [core.String]]),
-    [dartx.getElementById]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.querySelector]: dart.definiteFunctionType(html.Element, [core.String]),
-    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html.Node), [core.String])
+    [dartx.appendHtml]: dart.definiteFunctionType(dart.void, [core.String], {validator: html$.NodeValidator, NodeTreeSanitizer: dart.dynamic, treeSanitizer: dart.dynamic}),
+    [dartx.query]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.queryAll]: dart.definiteFunctionType(T => [html$.ElementList$(T), [core.String]]),
+    [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.querySelector]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [_querySelectorAll]: dart.definiteFunctionType(core.List$(html$.Node), [core.String])
   })
 });
-dart.registerExtension(dart.global.DocumentFragment, html.DocumentFragment);
+dart.registerExtension(dart.global.DocumentFragment, html$.DocumentFragment);
 dart.defineExtensionNames([
   'message',
   'name'
 ]);
-html.DomError = class DomError extends _interceptors.Interceptor {
+html$.DomError = class DomError extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(name, message) {
     if (message === void 0) message = null;
     if (message != null) {
-      return html.DomError._create_1(name, message);
+      return html$.DomError._create_1(name, message);
     }
-    return html.DomError._create_2(name);
+    return html$.DomError._create_2(name);
   }
   static _create_1(name, message) {
     return new DOMError(name, message);
@@ -71141,28 +71144,28 @@
     return this.name;
   }
 };
-dart.setSignature(html.DomError, {
+dart.setSignature(html$.DomError, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DomError, []),
-    new: dart.definiteFunctionType(html.DomError, [core.String], [core.String])
+    _: dart.definiteFunctionType(html$.DomError, []),
+    new: dart.definiteFunctionType(html$.DomError, [core.String], [core.String])
   }),
   fields: () => ({
     [dartx.message]: core.String,
     [dartx.name]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.DomError, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.DomError, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.DomError, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DomError, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.DOMError, html.DomError);
+dart.registerExtension(dart.global.DOMError, html$.DomError);
 dart.defineExtensionNames([
   'name',
   'toString',
   'message'
 ]);
-html.DomException = class DomException extends _interceptors.Interceptor {
+html$.DomException = class DomException extends _interceptors.Interceptor {
   get [dartx.name]() {
     let errorName = this.name;
     if (dart.test(html_common.Device.isWebKit) && errorName == 'SECURITY_ERR') return 'SecurityError';
@@ -71179,8 +71182,8 @@
     return String(this);
   }
 };
-dart.setSignature(html.DomException, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomException, [])}),
+dart.setSignature(html$.DomException, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomException, [])}),
   fields: () => ({[dartx.message]: core.String}),
   getters: () => ({[dartx.name]: dart.definiteFunctionType(core.String, [])}),
   sfields: () => ({
@@ -71207,35 +71210,35 @@
     DATA_CLONE: core.String
   })
 });
-html.DomException.INDEX_SIZE = 'IndexSizeError';
-html.DomException.HIERARCHY_REQUEST = 'HierarchyRequestError';
-html.DomException.WRONG_DOCUMENT = 'WrongDocumentError';
-html.DomException.INVALID_CHARACTER = 'InvalidCharacterError';
-html.DomException.NO_MODIFICATION_ALLOWED = 'NoModificationAllowedError';
-html.DomException.NOT_FOUND = 'NotFoundError';
-html.DomException.NOT_SUPPORTED = 'NotSupportedError';
-html.DomException.INVALID_STATE = 'InvalidStateError';
-html.DomException.SYNTAX = 'SyntaxError';
-html.DomException.INVALID_MODIFICATION = 'InvalidModificationError';
-html.DomException.NAMESPACE = 'NamespaceError';
-html.DomException.INVALID_ACCESS = 'InvalidAccessError';
-html.DomException.TYPE_MISMATCH = 'TypeMismatchError';
-html.DomException.SECURITY = 'SecurityError';
-html.DomException.NETWORK = 'NetworkError';
-html.DomException.ABORT = 'AbortError';
-html.DomException.URL_MISMATCH = 'URLMismatchError';
-html.DomException.QUOTA_EXCEEDED = 'QuotaExceededError';
-html.DomException.TIMEOUT = 'TimeoutError';
-html.DomException.INVALID_NODE_TYPE = 'InvalidNodeTypeError';
-html.DomException.DATA_CLONE = 'DataCloneError';
-dart.registerExtension(dart.global.DOMException, html.DomException);
+html$.DomException.INDEX_SIZE = 'IndexSizeError';
+html$.DomException.HIERARCHY_REQUEST = 'HierarchyRequestError';
+html$.DomException.WRONG_DOCUMENT = 'WrongDocumentError';
+html$.DomException.INVALID_CHARACTER = 'InvalidCharacterError';
+html$.DomException.NO_MODIFICATION_ALLOWED = 'NoModificationAllowedError';
+html$.DomException.NOT_FOUND = 'NotFoundError';
+html$.DomException.NOT_SUPPORTED = 'NotSupportedError';
+html$.DomException.INVALID_STATE = 'InvalidStateError';
+html$.DomException.SYNTAX = 'SyntaxError';
+html$.DomException.INVALID_MODIFICATION = 'InvalidModificationError';
+html$.DomException.NAMESPACE = 'NamespaceError';
+html$.DomException.INVALID_ACCESS = 'InvalidAccessError';
+html$.DomException.TYPE_MISMATCH = 'TypeMismatchError';
+html$.DomException.SECURITY = 'SecurityError';
+html$.DomException.NETWORK = 'NetworkError';
+html$.DomException.ABORT = 'AbortError';
+html$.DomException.URL_MISMATCH = 'URLMismatchError';
+html$.DomException.QUOTA_EXCEEDED = 'QuotaExceededError';
+html$.DomException.TIMEOUT = 'TimeoutError';
+html$.DomException.INVALID_NODE_TYPE = 'InvalidNodeTypeError';
+html$.DomException.DATA_CLONE = 'DataCloneError';
+dart.registerExtension(dart.global.DOMException, html$.DomException);
 dart.defineExtensionNames([
   'createDocument',
   'createDocumentType',
   'createHtmlDocument',
   'hasFeature'
 ]);
-html.DomImplementation = class DomImplementation extends _interceptors.Interceptor {
+html$.DomImplementation = class DomImplementation extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -71252,20 +71255,20 @@
     return this.hasFeature.apply(this, args);
   }
 };
-dart.setSignature(html.DomImplementation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomImplementation, [])}),
+dart.setSignature(html$.DomImplementation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomImplementation, [])}),
   methods: () => ({
-    [dartx.createDocument]: dart.definiteFunctionType(html.XmlDocument, [core.String, core.String, html._DocumentType]),
-    [dartx.createDocumentType]: dart.definiteFunctionType(html._DocumentType, [core.String, core.String, core.String]),
-    [dartx.createHtmlDocument]: dart.definiteFunctionType(html.HtmlDocument, [core.String]),
+    [dartx.createDocument]: dart.definiteFunctionType(html$.XmlDocument, [core.String, core.String, html$._DocumentType]),
+    [dartx.createDocumentType]: dart.definiteFunctionType(html$._DocumentType, [core.String, core.String, core.String]),
+    [dartx.createHtmlDocument]: dart.definiteFunctionType(html$.HtmlDocument, [core.String]),
     [dartx.hasFeature]: dart.definiteFunctionType(core.bool, [])
   })
 });
-dart.registerExtension(dart.global.DOMImplementation, html.DomImplementation);
+dart.registerExtension(dart.global.DOMImplementation, html$.DomImplementation);
 dart.defineExtensionNames([
   'next'
 ]);
-html.DomIterator = class DomIterator extends _interceptors.Interceptor {
+html$.DomIterator = class DomIterator extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -71273,11 +71276,11 @@
     return this.next.apply(this, args);
   }
 };
-dart.setSignature(html.DomIterator, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomIterator, [])}),
+dart.setSignature(html$.DomIterator, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomIterator, [])}),
   methods: () => ({[dartx.next]: dart.definiteFunctionType(core.Object, [], [core.Object])})
 });
-dart.registerExtension(dart.global.Iterator, html.DomIterator);
+dart.registerExtension(dart.global.Iterator, html$.DomIterator);
 dart.defineExtensionNames([
   'a',
   'b',
@@ -71311,7 +71314,7 @@
   'toFloat64Array',
   'translate'
 ]);
-html.DomMatrixReadOnly = class DomMatrixReadOnly extends _interceptors.Interceptor {
+html$.DomMatrixReadOnly = class DomMatrixReadOnly extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -71409,8 +71412,8 @@
     return this.translate.apply(this, args);
   }
 };
-dart.setSignature(html.DomMatrixReadOnly, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomMatrixReadOnly, [])}),
+dart.setSignature(html$.DomMatrixReadOnly, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomMatrixReadOnly, [])}),
   getters: () => ({
     [dartx.a]: dart.definiteFunctionType(core.num, []),
     [dartx.b]: dart.definiteFunctionType(core.num, []),
@@ -71438,16 +71441,16 @@
     [dartx.m44]: dart.definiteFunctionType(core.num, [])
   }),
   methods: () => ({
-    [dartx.multiply]: dart.definiteFunctionType(html.DomMatrix, [html.DomMatrix]),
-    [dartx.scale]: dart.definiteFunctionType(html.DomMatrix, [core.num], [core.num, core.num]),
-    [dartx.scale3d]: dart.definiteFunctionType(html.DomMatrix, [core.num], [core.num, core.num, core.num]),
-    [dartx.scaleNonUniform]: dart.definiteFunctionType(html.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
+    [dartx.multiply]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
+    [dartx.scale]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num]),
+    [dartx.scale3d]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num]),
+    [dartx.scaleNonUniform]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
     [dartx.toFloat32Array]: dart.definiteFunctionType(typed_data.Float32List, []),
     [dartx.toFloat64Array]: dart.definiteFunctionType(typed_data.Float64List, []),
-    [dartx.translate]: dart.definiteFunctionType(html.DomMatrix, [core.num, core.num], [core.num])
+    [dartx.translate]: dart.definiteFunctionType(html$.DomMatrix, [core.num, core.num], [core.num])
   })
 });
-dart.registerExtension(dart.global.DOMMatrixReadOnly, html.DomMatrixReadOnly);
+dart.registerExtension(dart.global.DOMMatrixReadOnly, html$.DomMatrixReadOnly);
 dart.defineExtensionNames([
   'a',
   'a',
@@ -71500,17 +71503,17 @@
   'scaleSelf',
   'translateSelf'
 ]);
-html.DomMatrix = class DomMatrix extends html.DomMatrixReadOnly {
+html$.DomMatrix = class DomMatrix extends html$.DomMatrixReadOnly {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(other) {
     if (other === void 0) other = null;
     if (other == null) {
-      return html.DomMatrix._create_1();
+      return html$.DomMatrix._create_1();
     }
-    if (html.DomMatrixReadOnly.is(other) || other == null) {
-      return html.DomMatrix._create_2(other);
+    if (html$.DomMatrixReadOnly.is(other) || other == null) {
+      return html$.DomMatrix._create_2(other);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -71671,10 +71674,10 @@
     return this.translateSelf.apply(this, args);
   }
 };
-dart.setSignature(html.DomMatrix, {
+dart.setSignature(html$.DomMatrix, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DomMatrix, []),
-    new: dart.definiteFunctionType(html.DomMatrix, [], [html.DomMatrixReadOnly])
+    _: dart.definiteFunctionType(html$.DomMatrix, []),
+    new: dart.definiteFunctionType(html$.DomMatrix, [], [html$.DomMatrixReadOnly])
   }),
   setters: () => ({
     [dartx.a]: dart.definiteFunctionType(dart.void, [core.num]),
@@ -71701,29 +71704,29 @@
     [dartx.m44]: dart.definiteFunctionType(dart.void, [core.num])
   }),
   methods: () => ({
-    [dartx.multiplySelf]: dart.definiteFunctionType(html.DomMatrix, [html.DomMatrix]),
-    [dartx.preMultiplySelf]: dart.definiteFunctionType(html.DomMatrix, [html.DomMatrix]),
-    [dartx.scale3dSelf]: dart.definiteFunctionType(html.DomMatrix, [core.num], [core.num, core.num, core.num]),
-    [dartx.scaleNonUniformSelf]: dart.definiteFunctionType(html.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
-    [dartx.scaleSelf]: dart.definiteFunctionType(html.DomMatrix, [core.num], [core.num, core.num]),
-    [dartx.translateSelf]: dart.definiteFunctionType(html.DomMatrix, [core.num, core.num], [core.num])
+    [dartx.multiplySelf]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
+    [dartx.preMultiplySelf]: dart.definiteFunctionType(html$.DomMatrix, [html$.DomMatrix]),
+    [dartx.scale3dSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num]),
+    [dartx.scaleNonUniformSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num, core.num, core.num, core.num]),
+    [dartx.scaleSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num], [core.num, core.num]),
+    [dartx.translateSelf]: dart.definiteFunctionType(html$.DomMatrix, [core.num, core.num], [core.num])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.DomMatrix, []),
-    _create_2: dart.definiteFunctionType(html.DomMatrix, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.DomMatrix, []),
+    _create_2: dart.definiteFunctionType(html$.DomMatrix, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.DOMMatrix, html.DomMatrix);
+dart.registerExtension(dart.global.DOMMatrix, html$.DomMatrix);
 dart.defineExtensionNames([
   'parseFromString'
 ]);
-html.DomParser = class DomParser extends _interceptors.Interceptor {
+html$.DomParser = class DomParser extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.DomParser._create_1();
+    return html$.DomParser._create_1();
   }
   static _create_1() {
     return new DOMParser();
@@ -71732,28 +71735,28 @@
     return this.parseFromString.apply(this, args);
   }
 };
-dart.setSignature(html.DomParser, {
+dart.setSignature(html$.DomParser, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DomParser, []),
-    new: dart.definiteFunctionType(html.DomParser, [])
+    _: dart.definiteFunctionType(html$.DomParser, []),
+    new: dart.definiteFunctionType(html$.DomParser, [])
   }),
-  methods: () => ({[dartx.parseFromString]: dart.definiteFunctionType(html.Document, [core.String, core.String])}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.DomParser, [])}),
+  methods: () => ({[dartx.parseFromString]: dart.definiteFunctionType(html$.Document, [core.String, core.String])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.DomParser, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.DOMParser, html.DomParser);
+dart.registerExtension(dart.global.DOMParser, html$.DomParser);
 dart.defineExtensionNames([
   'w',
   'x',
   'y',
   'z'
 ]);
-html.DomPointReadOnly = class DomPointReadOnly extends _interceptors.Interceptor {
+html$.DomPointReadOnly = class DomPointReadOnly extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(x, y, z, w) {
-    return html.DomPointReadOnly._create_1(x, y, z, w);
+    return html$.DomPointReadOnly._create_1(x, y, z, w);
   }
   static _create_1(x, y, z, w) {
     return new DOMPointReadOnly(x, y, z, w);
@@ -71771,10 +71774,10 @@
     return this.z;
   }
 };
-dart.setSignature(html.DomPointReadOnly, {
+dart.setSignature(html$.DomPointReadOnly, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DomPointReadOnly, []),
-    new: dart.definiteFunctionType(html.DomPointReadOnly, [core.num, core.num, core.num, core.num])
+    _: dart.definiteFunctionType(html$.DomPointReadOnly, []),
+    new: dart.definiteFunctionType(html$.DomPointReadOnly, [core.num, core.num, core.num, core.num])
   }),
   getters: () => ({
     [dartx.w]: dart.definiteFunctionType(core.num, []),
@@ -71782,10 +71785,10 @@
     [dartx.y]: dart.definiteFunctionType(core.num, []),
     [dartx.z]: dart.definiteFunctionType(core.num, [])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.DomPointReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.DomPointReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.DOMPointReadOnly, html.DomPointReadOnly);
+dart.registerExtension(dart.global.DOMPointReadOnly, html$.DomPointReadOnly);
 dart.defineExtensionNames([
   'w',
   'w',
@@ -71796,7 +71799,7 @@
   'z',
   'z'
 ]);
-html.DomPoint = class DomPoint extends html.DomPointReadOnly {
+html$.DomPoint = class DomPoint extends html$.DomPointReadOnly {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -71807,22 +71810,22 @@
     if (w === void 0) w = null;
     if ((core.Map.is(point_OR_x) || point_OR_x == null) && y == null && z == null && w == null) {
       let point_1 = html_common.convertDartToNative_Dictionary(core.Map._check(point_OR_x));
-      return html.DomPoint._create_1(point_1);
+      return html$.DomPoint._create_1(point_1);
     }
     if (point_OR_x == null && y == null && z == null && w == null) {
-      return html.DomPoint._create_2();
+      return html$.DomPoint._create_2();
     }
     if ((typeof point_OR_x == 'number' || point_OR_x == null) && y == null && z == null && w == null) {
-      return html.DomPoint._create_3(point_OR_x);
+      return html$.DomPoint._create_3(point_OR_x);
     }
     if ((typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null) && z == null && w == null) {
-      return html.DomPoint._create_4(point_OR_x, y);
+      return html$.DomPoint._create_4(point_OR_x, y);
     }
     if ((typeof z == 'number' || z == null) && (typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null) && w == null) {
-      return html.DomPoint._create_5(point_OR_x, y, z);
+      return html$.DomPoint._create_5(point_OR_x, y, z);
     }
     if ((typeof w == 'number' || w == null) && (typeof z == 'number' || z == null) && (typeof y == 'number' || y == null) && (typeof point_OR_x == 'number' || point_OR_x == null)) {
-      return html.DomPoint._create_6(point_OR_x, y, z, w);
+      return html$.DomPoint._create_6(point_OR_x, y, z, w);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -71872,10 +71875,10 @@
     this.z = value;
   }
 };
-dart.setSignature(html.DomPoint, {
+dart.setSignature(html$.DomPoint, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DomPoint, []),
-    new: dart.definiteFunctionType(html.DomPoint, [], [dart.dynamic, core.num, core.num, core.num])
+    _: dart.definiteFunctionType(html$.DomPoint, []),
+    new: dart.definiteFunctionType(html$.DomPoint, [], [dart.dynamic, core.num, core.num, core.num])
   }),
   setters: () => ({
     [dartx.w]: dart.definiteFunctionType(dart.void, [core.num]),
@@ -71885,16 +71888,16 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.DomPoint, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.DomPoint, []),
-    _create_3: dart.definiteFunctionType(html.DomPoint, [dart.dynamic]),
-    _create_4: dart.definiteFunctionType(html.DomPoint, [dart.dynamic, dart.dynamic]),
-    _create_5: dart.definiteFunctionType(html.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_6: dart.definiteFunctionType(html.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.DomPoint, []),
+    _create_3: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_6: dart.definiteFunctionType(html$.DomPoint, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6']
 });
-dart.registerExtension(dart.global.DOMPoint, html.DomPoint);
+dart.registerExtension(dart.global.DOMPoint, html$.DomPoint);
 dart.defineExtensionNames([
   'toString',
   '==',
@@ -71917,7 +71920,7 @@
   'x',
   'y'
 ]);
-html.DomRectReadOnly = class DomRectReadOnly extends _interceptors.Interceptor {
+html$.DomRectReadOnly = class DomRectReadOnly extends _interceptors.Interceptor {
   [dartx.toString]() {
     return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
   }
@@ -71926,7 +71929,7 @@
     return dart.equals(this[dartx.left], dart.dload(other, 'left')) && dart.equals(this[dartx.top], dart.dload(other, 'top')) && dart.equals(this[dartx.width], dart.dload(other, 'width')) && dart.equals(this[dartx.height], dart.dload(other, 'height'));
   }
   get [dartx.hashCode]() {
-    return html._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
+    return html$._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
   }
   [dartx.intersection](other) {
     let x0 = math.max(core.num)(this[dartx.left], other[dartx.left]);
@@ -71972,7 +71975,7 @@
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(x, y, width, height) {
-    return html.DomRectReadOnly._create_1(x, y, width, height);
+    return html$.DomRectReadOnly._create_1(x, y, width, height);
   }
   static _create_1(x, y, width, height) {
     return new DOMRectReadOnly(x, y, width, height);
@@ -72002,11 +72005,11 @@
     return this.y;
   }
 };
-html.DomRectReadOnly[dart.implements] = () => [RectangleOfnum()];
-dart.setSignature(html.DomRectReadOnly, {
+html$.DomRectReadOnly[dart.implements] = () => [RectangleOfnum()];
+dart.setSignature(html$.DomRectReadOnly, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.DomRectReadOnly, []),
-    new: dart.definiteFunctionType(html.DomRectReadOnly, [core.num, core.num, core.num, core.num])
+    _: dart.definiteFunctionType(html$.DomRectReadOnly, []),
+    new: dart.definiteFunctionType(html$.DomRectReadOnly, [core.num, core.num, core.num, core.num])
   }),
   getters: () => ({
     [dartx.topLeft]: dart.definiteFunctionType(math.Point$(core.num), []),
@@ -72029,10 +72032,10 @@
     [dartx.containsRectangle]: dart.definiteFunctionType(core.bool, [RectangleOfnum()]),
     [dartx.containsPoint]: dart.definiteFunctionType(core.bool, [PointOfnum()])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.DomRectReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.DomRectReadOnly, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.DOMRectReadOnly, html.DomRectReadOnly);
+dart.registerExtension(dart.global.DOMRectReadOnly, html$.DomRectReadOnly);
 dart.defineExtensionNames([
   'add',
   'contains',
@@ -72041,7 +72044,7 @@
   'toggle',
   'length'
 ]);
-html.DomTokenList = class DomTokenList extends _interceptors.Interceptor {
+html$.DomTokenList = class DomTokenList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -72064,8 +72067,8 @@
     return this.toggle.apply(this, args);
   }
 };
-dart.setSignature(html.DomTokenList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomTokenList, [])}),
+dart.setSignature(html$.DomTokenList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomTokenList, [])}),
   fields: () => ({[dartx.length]: core.int}),
   methods: () => ({
     [dartx.add]: dart.definiteFunctionType(dart.void, [core.String]),
@@ -72075,11 +72078,11 @@
     [dartx.toggle]: dart.definiteFunctionType(core.bool, [core.String], [core.bool])
   })
 });
-dart.registerExtension(dart.global.DOMTokenList, html.DomTokenList);
+dart.registerExtension(dart.global.DOMTokenList, html$.DomTokenList);
 dart.defineExtensionNames([
   'value'
 ]);
-html.DomSettableTokenList = class DomSettableTokenList extends html.DomTokenList {
+html$.DomSettableTokenList = class DomSettableTokenList extends html$.DomTokenList {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -72090,13 +72093,13 @@
     this.value = value;
   }
 };
-dart.setSignature(html.DomSettableTokenList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomSettableTokenList, [])}),
+dart.setSignature(html$.DomSettableTokenList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomSettableTokenList, [])}),
   fields: () => ({[dartx.value]: core.String})
 });
-dart.registerExtension(dart.global.DOMSettableTokenList, html.DomSettableTokenList);
-html.ImmutableListMixin$ = dart.generic(E => {
-  let FixedSizeListIteratorOfE = () => (FixedSizeListIteratorOfE = dart.constFn(html.FixedSizeListIterator$(E)))();
+dart.registerExtension(dart.global.DOMSettableTokenList, html$.DomSettableTokenList);
+html$.ImmutableListMixin$ = dart.generic(E => {
+  let FixedSizeListIteratorOfE = () => (FixedSizeListIteratorOfE = dart.constFn(html$.FixedSizeListIterator$(E)))();
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   let ListOfE = () => (ListOfE = dart.constFn(core.List$(E)))();
   let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
@@ -72232,7 +72235,7 @@
   ]);
   return ImmutableListMixin;
 });
-html.ImmutableListMixin = ImmutableListMixin();
+html$.ImmutableListMixin = ImmutableListMixin();
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -72244,7 +72247,7 @@
   'elementAt',
   'item'
 ]);
-html.DomStringList = class DomStringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html.ImmutableListMixin$(core.String)) {
+html$.DomStringList = class DomStringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html$.ImmutableListMixin$(core.String)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -72293,9 +72296,9 @@
     return this.item.apply(this, args);
   }
 };
-html.DomStringList[dart.implements] = () => [ListOfString()];
-dart.setSignature(html.DomStringList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomStringList, [])}),
+html$.DomStringList[dart.implements] = () => [ListOfString()];
+dart.setSignature(html$.DomStringList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomStringList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
@@ -72305,64 +72308,64 @@
     [dartx.item]: dart.definiteFunctionType(core.String, [core.int])
   })
 });
-dart.registerExtension(dart.global.DOMStringList, html.DomStringList);
-html.DomStringMap = class DomStringMap extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.DOMStringList, html$.DomStringList);
+html$.DomStringMap = class DomStringMap extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.DomStringMap, {
-  constructors: () => ({_: dart.definiteFunctionType(html.DomStringMap, [])})
+dart.setSignature(html$.DomStringMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.DomStringMap, [])})
 });
-html.EffectModel = class EffectModel extends _interceptors.Interceptor {
+html$.EffectModel = class EffectModel extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.EffectModel, {
-  constructors: () => ({_: dart.definiteFunctionType(html.EffectModel, [])})
+dart.setSignature(html$.EffectModel, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.EffectModel, [])})
 });
-dart.registerExtension(dart.global.EffectModel, html.EffectModel);
+dart.registerExtension(dart.global.EffectModel, html$.EffectModel);
 const _childElements = Symbol('_childElements');
-const _element = Symbol('_element');
-const _filter = Symbol('_filter');
-html._ChildrenElementList = class _ChildrenElementList extends collection.ListBase$(html.Element) {
+const _element$ = Symbol('_element');
+const _filter$0 = Symbol('_filter');
+html$._ChildrenElementList = class _ChildrenElementList extends collection.ListBase$(html$.Element) {
   _wrap(element) {
-    this[_childElements] = html.HtmlCollection._check(element[_children]);
-    this[_element] = element;
+    this[_childElements] = html$.HtmlCollection._check(element[_children]);
+    this[_element$] = element;
   }
   contains(element) {
     return this[_childElements][dartx.contains](element);
   }
   get isEmpty() {
-    return this[_element][_firstElementChild] == null;
+    return this[_element$][_firstElementChild] == null;
   }
   get length() {
     return this[_childElements][dartx.length];
   }
   _get(index) {
-    return html.Element._check(this[_childElements][dartx._get](index));
+    return html$.Element._check(this[_childElements][dartx._get](index));
   }
   _set(index, value) {
-    this[_element][_replaceChild](value, this[_childElements][dartx._get](index));
+    this[_element$][_replaceChild](value, this[_childElements][dartx._get](index));
     return value;
   }
   set length(newLength) {
     dart.throw(new core.UnsupportedError('Cannot resize element lists'));
   }
   add(value) {
-    this[_element][dartx.append](value);
+    this[_element$][dartx.append](value);
     return value;
   }
   get iterator() {
     return this[dartx.toList]()[dartx.iterator];
   }
   addAll(iterable) {
-    if (html._ChildNodeListLazy.is(iterable)) {
+    if (html$._ChildNodeListLazy.is(iterable)) {
       iterable = ListOfElement().from(iterable);
     }
     for (let element of iterable) {
-      this[_element][dartx.append](element);
+      this[_element$][dartx.append](element);
     }
   }
   sort(compare) {
@@ -72374,17 +72377,17 @@
     dart.throw(new core.UnsupportedError('Cannot shuffle element lists'));
   }
   removeWhere(test) {
-    this[_filter](test, false);
+    this[_filter$0](test, false);
   }
   retainWhere(test) {
-    this[_filter](test, true);
+    this[_filter$0](test, true);
   }
-  [_filter](test, retainMatching) {
+  [_filter$0](test, retainMatching) {
     let removed = null;
     if (dart.test(retainMatching)) {
-      removed = this[_element][dartx.children][dartx.where](dart.fn(e => !dart.test(test(e)), ElementTobool()));
+      removed = this[_element$][dartx.children][dartx.where](dart.fn(e => !dart.test(test(e)), ElementTobool$()));
     } else {
-      removed = this[_element][dartx.children][dartx.where](test);
+      removed = this[_element$][dartx.children][dartx.where](test);
     }
     for (let e of core.Iterable._check(removed))
       dart.dsend(e, 'remove');
@@ -72401,10 +72404,10 @@
     dart.throw(new core.UnimplementedError());
   }
   remove(object) {
-    if (html.Element.is(object)) {
+    if (html$.Element.is(object)) {
       let element = object;
-      if (core.identical(element[dartx.parentNode], this[_element])) {
-        this[_element][_removeChild](element);
+      if (core.identical(element[dartx.parentNode], this[_element$])) {
+        this[_element$][_removeChild](element);
         return true;
       }
     }
@@ -72415,38 +72418,38 @@
       dart.throw(new core.RangeError.range(index, 0, this.length));
     }
     if (index == this.length) {
-      this[_element][dartx.append](element);
+      this[_element$][dartx.append](element);
     } else {
-      this[_element][dartx.insertBefore](element, this._get(index));
+      this[_element$][dartx.insertBefore](element, this._get(index));
     }
   }
   setAll(index, iterable) {
     dart.throw(new core.UnimplementedError());
   }
   clear() {
-    this[_element][_clearChildren]();
+    this[_element$][_clearChildren]();
   }
   removeAt(index) {
     let result = this._get(index);
     if (result != null) {
-      this[_element][_removeChild](result);
+      this[_element$][_removeChild](result);
     }
     return result;
   }
   removeLast() {
     let result = this.last;
     if (result != null) {
-      this[_element][_removeChild](result);
+      this[_element$][_removeChild](result);
     }
     return result;
   }
   get first() {
-    let result = this[_element][_firstElementChild];
+    let result = this[_element$][_firstElementChild];
     if (result == null) dart.throw(new core.StateError("No elements"));
     return result;
   }
   get last() {
-    let result = this[_element][_lastElementChild];
+    let result = this[_element$][_lastElementChild];
     if (result == null) dart.throw(new core.StateError("No elements"));
     return result;
   }
@@ -72458,28 +72461,28 @@
     return this[_childElements];
   }
 };
-dart.addSimpleTypeTests(html._ChildrenElementList);
-dart.defineNamedConstructor(html._ChildrenElementList, '_wrap');
-html._ChildrenElementList[dart.implements] = () => [html_common.NodeListWrapper];
-dart.setSignature(html._ChildrenElementList, {
-  constructors: () => ({_wrap: dart.definiteFunctionType(html._ChildrenElementList, [html.Element])}),
+dart.addSimpleTypeTests(html$._ChildrenElementList);
+dart.defineNamedConstructor(html$._ChildrenElementList, '_wrap');
+html$._ChildrenElementList[dart.implements] = () => [html_common.NodeListWrapper];
+dart.setSignature(html$._ChildrenElementList, {
+  constructors: () => ({_wrap: dart.definiteFunctionType(html$._ChildrenElementList, [html$.Element])}),
   fields: () => ({
-    [_element]: html.Element,
-    [_childElements]: html.HtmlCollection
+    [_element$]: html$.Element,
+    [_childElements]: html$.HtmlCollection
   }),
   getters: () => ({
     length: dart.definiteFunctionType(core.int, []),
-    rawList: dart.definiteFunctionType(core.List$(html.Node), [])
+    rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
   }),
   setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    _get: dart.definiteFunctionType(html.Element, [core.int]),
-    _set: dart.definiteFunctionType(dart.void, [core.int, html.Element]),
-    add: dart.definiteFunctionType(html.Element, [html.Element]),
-    [_filter]: dart.definiteFunctionType(dart.void, [ElementTobool(), core.bool])
+    _get: dart.definiteFunctionType(html$.Element, [core.int]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, html$.Element]),
+    add: dart.definiteFunctionType(html$.Element, [html$.Element]),
+    [_filter$0]: dart.definiteFunctionType(dart.void, [ElementTobool(), core.bool])
   })
 });
-dart.defineExtensionMembers(html._ChildrenElementList, [
+dart.defineExtensionMembers(html$._ChildrenElementList, [
   'contains',
   '_get',
   '_set',
@@ -72506,15 +72509,15 @@
   'last',
   'single'
 ]);
-html.ElementList$ = dart.generic(T => {
+html$.ElementList$ = dart.generic(T => {
   class ElementList extends collection.ListBase$(T) {}
   return ElementList;
 });
-html.ElementList = ElementList();
+html$.ElementList = ElementList();
 const _nodeList = Symbol('_nodeList');
 const _forElementList = Symbol('_forElementList');
-html._FrozenElementList$ = dart.generic(E => {
-  let ElementListOfE = () => (ElementListOfE = dart.constFn(html.ElementList$(E)))();
+html$._FrozenElementList$ = dart.generic(E => {
+  let ElementListOfE = () => (ElementListOfE = dart.constFn(html$.ElementList$(E)))();
   let ComparatorOfE = () => (ComparatorOfE = dart.constFn(core.Comparator$(E)))();
   let EToIterableOfString = () => (EToIterableOfString = dart.constFn(dart.definiteFunctionType(IterableOfString(), [E])))();
   class _FrozenElementList extends collection.ListBase$(E) {
@@ -72525,7 +72528,7 @@
       return this[_nodeList][dartx.length];
     }
     _get(index) {
-      return html._downcast(html.Node, E)(this[_nodeList][dartx._get](index));
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx._get](index));
     }
     _set(index, value) {
       E._check(value);
@@ -72544,25 +72547,25 @@
       dart.throw(new core.UnsupportedError('Cannot shuffle list'));
     }
     get first() {
-      return html._downcast(html.Node, E)(this[_nodeList][dartx.first]);
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx.first]);
     }
     get last() {
-      return html._downcast(html.Node, E)(this[_nodeList][dartx.last]);
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx.last]);
     }
     get single() {
-      return html._downcast(html.Node, E)(this[_nodeList][dartx.single]);
+      return html$._downcast(html$.Node, E)(this[_nodeList][dartx.single]);
     }
     get classes() {
-      return html._MultiElementCssClassSet.new(this);
+      return html$._MultiElementCssClassSet.new(this);
     }
     get style() {
-      return new html._CssStyleDeclarationSet(this);
+      return new html$._CssStyleDeclarationSet(this);
     }
     set classes(value) {
       this[dartx.forEach](dart.fn(e => e[dartx.classes] = value, EToIterableOfString()));
     }
     get contentEdge() {
-      return new html._ContentCssListRect(this);
+      return new html$._ContentCssListRect(this);
     }
     get paddingEdge() {
       return this.first[dartx.paddingEdge];
@@ -72577,296 +72580,296 @@
       return this[_nodeList];
     }
     get onAbort() {
-      return html.Element.abortEvent[_forElementList](this);
+      return html$.Element.abortEvent[_forElementList](this);
     }
     get onBeforeCopy() {
-      return html.Element.beforeCopyEvent[_forElementList](this);
+      return html$.Element.beforeCopyEvent[_forElementList](this);
     }
     get onBeforeCut() {
-      return html.Element.beforeCutEvent[_forElementList](this);
+      return html$.Element.beforeCutEvent[_forElementList](this);
     }
     get onBeforePaste() {
-      return html.Element.beforePasteEvent[_forElementList](this);
+      return html$.Element.beforePasteEvent[_forElementList](this);
     }
     get onBlur() {
-      return html.Element.blurEvent[_forElementList](this);
+      return html$.Element.blurEvent[_forElementList](this);
     }
     get onCanPlay() {
-      return html.Element.canPlayEvent[_forElementList](this);
+      return html$.Element.canPlayEvent[_forElementList](this);
     }
     get onCanPlayThrough() {
-      return html.Element.canPlayThroughEvent[_forElementList](this);
+      return html$.Element.canPlayThroughEvent[_forElementList](this);
     }
     get onChange() {
-      return html.Element.changeEvent[_forElementList](this);
+      return html$.Element.changeEvent[_forElementList](this);
     }
     get onClick() {
-      return html.Element.clickEvent[_forElementList](this);
+      return html$.Element.clickEvent[_forElementList](this);
     }
     get onContextMenu() {
-      return html.Element.contextMenuEvent[_forElementList](this);
+      return html$.Element.contextMenuEvent[_forElementList](this);
     }
     get onCopy() {
-      return html.Element.copyEvent[_forElementList](this);
+      return html$.Element.copyEvent[_forElementList](this);
     }
     get onCut() {
-      return html.Element.cutEvent[_forElementList](this);
+      return html$.Element.cutEvent[_forElementList](this);
     }
     get onDoubleClick() {
-      return html.Element.doubleClickEvent[_forElementList](this);
+      return html$.Element.doubleClickEvent[_forElementList](this);
     }
     get onDrag() {
-      return html.Element.dragEvent[_forElementList](this);
+      return html$.Element.dragEvent[_forElementList](this);
     }
     get onDragEnd() {
-      return html.Element.dragEndEvent[_forElementList](this);
+      return html$.Element.dragEndEvent[_forElementList](this);
     }
     get onDragEnter() {
-      return html.Element.dragEnterEvent[_forElementList](this);
+      return html$.Element.dragEnterEvent[_forElementList](this);
     }
     get onDragLeave() {
-      return html.Element.dragLeaveEvent[_forElementList](this);
+      return html$.Element.dragLeaveEvent[_forElementList](this);
     }
     get onDragOver() {
-      return html.Element.dragOverEvent[_forElementList](this);
+      return html$.Element.dragOverEvent[_forElementList](this);
     }
     get onDragStart() {
-      return html.Element.dragStartEvent[_forElementList](this);
+      return html$.Element.dragStartEvent[_forElementList](this);
     }
     get onDrop() {
-      return html.Element.dropEvent[_forElementList](this);
+      return html$.Element.dropEvent[_forElementList](this);
     }
     get onDurationChange() {
-      return html.Element.durationChangeEvent[_forElementList](this);
+      return html$.Element.durationChangeEvent[_forElementList](this);
     }
     get onEmptied() {
-      return html.Element.emptiedEvent[_forElementList](this);
+      return html$.Element.emptiedEvent[_forElementList](this);
     }
     get onEnded() {
-      return html.Element.endedEvent[_forElementList](this);
+      return html$.Element.endedEvent[_forElementList](this);
     }
     get onError() {
-      return html.Element.errorEvent[_forElementList](this);
+      return html$.Element.errorEvent[_forElementList](this);
     }
     get onFocus() {
-      return html.Element.focusEvent[_forElementList](this);
+      return html$.Element.focusEvent[_forElementList](this);
     }
     get onInput() {
-      return html.Element.inputEvent[_forElementList](this);
+      return html$.Element.inputEvent[_forElementList](this);
     }
     get onInvalid() {
-      return html.Element.invalidEvent[_forElementList](this);
+      return html$.Element.invalidEvent[_forElementList](this);
     }
     get onKeyDown() {
-      return html.Element.keyDownEvent[_forElementList](this);
+      return html$.Element.keyDownEvent[_forElementList](this);
     }
     get onKeyPress() {
-      return html.Element.keyPressEvent[_forElementList](this);
+      return html$.Element.keyPressEvent[_forElementList](this);
     }
     get onKeyUp() {
-      return html.Element.keyUpEvent[_forElementList](this);
+      return html$.Element.keyUpEvent[_forElementList](this);
     }
     get onLoad() {
-      return html.Element.loadEvent[_forElementList](this);
+      return html$.Element.loadEvent[_forElementList](this);
     }
     get onLoadedData() {
-      return html.Element.loadedDataEvent[_forElementList](this);
+      return html$.Element.loadedDataEvent[_forElementList](this);
     }
     get onLoadedMetadata() {
-      return html.Element.loadedMetadataEvent[_forElementList](this);
+      return html$.Element.loadedMetadataEvent[_forElementList](this);
     }
     get onMouseDown() {
-      return html.Element.mouseDownEvent[_forElementList](this);
+      return html$.Element.mouseDownEvent[_forElementList](this);
     }
     get onMouseEnter() {
-      return html.Element.mouseEnterEvent[_forElementList](this);
+      return html$.Element.mouseEnterEvent[_forElementList](this);
     }
     get onMouseLeave() {
-      return html.Element.mouseLeaveEvent[_forElementList](this);
+      return html$.Element.mouseLeaveEvent[_forElementList](this);
     }
     get onMouseMove() {
-      return html.Element.mouseMoveEvent[_forElementList](this);
+      return html$.Element.mouseMoveEvent[_forElementList](this);
     }
     get onMouseOut() {
-      return html.Element.mouseOutEvent[_forElementList](this);
+      return html$.Element.mouseOutEvent[_forElementList](this);
     }
     get onMouseOver() {
-      return html.Element.mouseOverEvent[_forElementList](this);
+      return html$.Element.mouseOverEvent[_forElementList](this);
     }
     get onMouseUp() {
-      return html.Element.mouseUpEvent[_forElementList](this);
+      return html$.Element.mouseUpEvent[_forElementList](this);
     }
     get onMouseWheel() {
-      return html.Element.mouseWheelEvent[_forElementList](this);
+      return html$.Element.mouseWheelEvent[_forElementList](this);
     }
     get onPaste() {
-      return html.Element.pasteEvent[_forElementList](this);
+      return html$.Element.pasteEvent[_forElementList](this);
     }
     get onPause() {
-      return html.Element.pauseEvent[_forElementList](this);
+      return html$.Element.pauseEvent[_forElementList](this);
     }
     get onPlay() {
-      return html.Element.playEvent[_forElementList](this);
+      return html$.Element.playEvent[_forElementList](this);
     }
     get onPlaying() {
-      return html.Element.playingEvent[_forElementList](this);
+      return html$.Element.playingEvent[_forElementList](this);
     }
     get onRateChange() {
-      return html.Element.rateChangeEvent[_forElementList](this);
+      return html$.Element.rateChangeEvent[_forElementList](this);
     }
     get onReset() {
-      return html.Element.resetEvent[_forElementList](this);
+      return html$.Element.resetEvent[_forElementList](this);
     }
     get onResize() {
-      return html.Element.resizeEvent[_forElementList](this);
+      return html$.Element.resizeEvent[_forElementList](this);
     }
     get onScroll() {
-      return html.Element.scrollEvent[_forElementList](this);
+      return html$.Element.scrollEvent[_forElementList](this);
     }
     get onSearch() {
-      return html.Element.searchEvent[_forElementList](this);
+      return html$.Element.searchEvent[_forElementList](this);
     }
     get onSeeked() {
-      return html.Element.seekedEvent[_forElementList](this);
+      return html$.Element.seekedEvent[_forElementList](this);
     }
     get onSeeking() {
-      return html.Element.seekingEvent[_forElementList](this);
+      return html$.Element.seekingEvent[_forElementList](this);
     }
     get onSelect() {
-      return html.Element.selectEvent[_forElementList](this);
+      return html$.Element.selectEvent[_forElementList](this);
     }
     get onSelectStart() {
-      return html.Element.selectStartEvent[_forElementList](this);
+      return html$.Element.selectStartEvent[_forElementList](this);
     }
     get onStalled() {
-      return html.Element.stalledEvent[_forElementList](this);
+      return html$.Element.stalledEvent[_forElementList](this);
     }
     get onSubmit() {
-      return html.Element.submitEvent[_forElementList](this);
+      return html$.Element.submitEvent[_forElementList](this);
     }
     get onSuspend() {
-      return html.Element.suspendEvent[_forElementList](this);
+      return html$.Element.suspendEvent[_forElementList](this);
     }
     get onTimeUpdate() {
-      return html.Element.timeUpdateEvent[_forElementList](this);
+      return html$.Element.timeUpdateEvent[_forElementList](this);
     }
     get onTouchCancel() {
-      return html.Element.touchCancelEvent[_forElementList](this);
+      return html$.Element.touchCancelEvent[_forElementList](this);
     }
     get onTouchEnd() {
-      return html.Element.touchEndEvent[_forElementList](this);
+      return html$.Element.touchEndEvent[_forElementList](this);
     }
     get onTouchEnter() {
-      return html.Element.touchEnterEvent[_forElementList](this);
+      return html$.Element.touchEnterEvent[_forElementList](this);
     }
     get onTouchLeave() {
-      return html.Element.touchLeaveEvent[_forElementList](this);
+      return html$.Element.touchLeaveEvent[_forElementList](this);
     }
     get onTouchMove() {
-      return html.Element.touchMoveEvent[_forElementList](this);
+      return html$.Element.touchMoveEvent[_forElementList](this);
     }
     get onTouchStart() {
-      return html.Element.touchStartEvent[_forElementList](this);
+      return html$.Element.touchStartEvent[_forElementList](this);
     }
     get onTransitionEnd() {
-      return html.Element.transitionEndEvent[_forElementList](this);
+      return html$.Element.transitionEndEvent[_forElementList](this);
     }
     get onVolumeChange() {
-      return html.Element.volumeChangeEvent[_forElementList](this);
+      return html$.Element.volumeChangeEvent[_forElementList](this);
     }
     get onWaiting() {
-      return html.Element.waitingEvent[_forElementList](this);
+      return html$.Element.waitingEvent[_forElementList](this);
     }
     get onFullscreenChange() {
-      return html.Element.fullscreenChangeEvent[_forElementList](this);
+      return html$.Element.fullscreenChangeEvent[_forElementList](this);
     }
     get onFullscreenError() {
-      return html.Element.fullscreenErrorEvent[_forElementList](this);
+      return html$.Element.fullscreenErrorEvent[_forElementList](this);
     }
   }
   dart.defineNamedConstructor(_FrozenElementList, '_wrap');
   _FrozenElementList[dart.implements] = () => [ElementListOfE(), html_common.NodeListWrapper];
   dart.setSignature(_FrozenElementList, {
-    constructors: () => ({_wrap: dart.definiteFunctionType(html._FrozenElementList$(E), [ListOfNode()])}),
+    constructors: () => ({_wrap: dart.definiteFunctionType(html$._FrozenElementList$(E), [ListOfNode()])}),
     fields: () => ({[_nodeList]: ListOfNode()}),
     getters: () => ({
       length: dart.definiteFunctionType(core.int, []),
-      classes: dart.definiteFunctionType(html.CssClassSet, []),
-      style: dart.definiteFunctionType(html.CssStyleDeclarationBase, []),
-      contentEdge: dart.definiteFunctionType(html.CssRect, []),
-      paddingEdge: dart.definiteFunctionType(html.CssRect, []),
-      borderEdge: dart.definiteFunctionType(html.CssRect, []),
-      marginEdge: dart.definiteFunctionType(html.CssRect, []),
-      rawList: dart.definiteFunctionType(core.List$(html.Node), []),
-      onAbort: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onBeforeCopy: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onBeforeCut: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onBeforePaste: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onBlur: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onCanPlay: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onCanPlayThrough: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onChange: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onClick: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onContextMenu: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onCopy: dart.definiteFunctionType(html.ElementStream$(html.ClipboardEvent), []),
-      onCut: dart.definiteFunctionType(html.ElementStream$(html.ClipboardEvent), []),
-      onDoubleClick: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onDrag: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDragEnd: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDragEnter: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDragLeave: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDragOver: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDragStart: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDrop: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onDurationChange: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onEmptied: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onEnded: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onError: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onFocus: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onInput: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onInvalid: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onKeyDown: dart.definiteFunctionType(html.ElementStream$(html.KeyboardEvent), []),
-      onKeyPress: dart.definiteFunctionType(html.ElementStream$(html.KeyboardEvent), []),
-      onKeyUp: dart.definiteFunctionType(html.ElementStream$(html.KeyboardEvent), []),
-      onLoad: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onLoadedData: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onLoadedMetadata: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onMouseDown: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseEnter: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseLeave: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseMove: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseOut: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseOver: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseUp: dart.definiteFunctionType(html.ElementStream$(html.MouseEvent), []),
-      onMouseWheel: dart.definiteFunctionType(html.ElementStream$(html.WheelEvent), []),
-      onPaste: dart.definiteFunctionType(html.ElementStream$(html.ClipboardEvent), []),
-      onPause: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onPlay: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onPlaying: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onRateChange: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onReset: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onResize: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onScroll: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSearch: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSeeked: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSeeking: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSelect: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSelectStart: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onStalled: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSubmit: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onSuspend: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onTimeUpdate: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onTouchCancel: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-      onTouchEnd: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-      onTouchEnter: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-      onTouchLeave: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-      onTouchMove: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-      onTouchStart: dart.definiteFunctionType(html.ElementStream$(html.TouchEvent), []),
-      onTransitionEnd: dart.definiteFunctionType(html.ElementStream$(html.TransitionEvent), []),
-      onVolumeChange: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onWaiting: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onFullscreenChange: dart.definiteFunctionType(html.ElementStream$(html.Event), []),
-      onFullscreenError: dart.definiteFunctionType(html.ElementStream$(html.Event), [])
+      classes: dart.definiteFunctionType(html$.CssClassSet, []),
+      style: dart.definiteFunctionType(html$.CssStyleDeclarationBase, []),
+      contentEdge: dart.definiteFunctionType(html$.CssRect, []),
+      paddingEdge: dart.definiteFunctionType(html$.CssRect, []),
+      borderEdge: dart.definiteFunctionType(html$.CssRect, []),
+      marginEdge: dart.definiteFunctionType(html$.CssRect, []),
+      rawList: dart.definiteFunctionType(core.List$(html$.Node), []),
+      onAbort: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBeforeCopy: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBeforeCut: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBeforePaste: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onBlur: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onCanPlay: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onCanPlayThrough: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onClick: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onContextMenu: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onCopy: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+      onCut: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+      onDoubleClick: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onDrag: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragEnd: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragEnter: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragLeave: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragOver: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDragStart: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDrop: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onDurationChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onEmptied: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onEnded: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onError: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onFocus: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onInput: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onInvalid: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onKeyDown: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+      onKeyPress: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+      onKeyUp: dart.definiteFunctionType(html$.ElementStream$(html$.KeyboardEvent), []),
+      onLoad: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onLoadedData: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onLoadedMetadata: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onMouseDown: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseEnter: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseLeave: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseMove: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseOut: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseOver: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseUp: dart.definiteFunctionType(html$.ElementStream$(html$.MouseEvent), []),
+      onMouseWheel: dart.definiteFunctionType(html$.ElementStream$(html$.WheelEvent), []),
+      onPaste: dart.definiteFunctionType(html$.ElementStream$(html$.ClipboardEvent), []),
+      onPause: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onPlay: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onPlaying: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onRateChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onReset: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onResize: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onScroll: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSearch: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSeeked: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSeeking: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSelect: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSelectStart: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onStalled: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSubmit: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onSuspend: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onTimeUpdate: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onTouchCancel: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchEnd: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchEnter: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchLeave: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchMove: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTouchStart: dart.definiteFunctionType(html$.ElementStream$(html$.TouchEvent), []),
+      onTransitionEnd: dart.definiteFunctionType(html$.ElementStream$(html$.TransitionEvent), []),
+      onVolumeChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onWaiting: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onFullscreenChange: dart.definiteFunctionType(html$.ElementStream$(html$.Event), []),
+      onFullscreenError: dart.definiteFunctionType(html$.ElementStream$(html$.Event), [])
     }),
     setters: () => ({
       length: dart.definiteFunctionType(dart.void, [core.int]),
@@ -72890,8 +72893,8 @@
   ]);
   return _FrozenElementList;
 });
-html._FrozenElementList = _FrozenElementList();
-html._ElementFactoryProvider = class _ElementFactoryProvider extends core.Object {
+html$._FrozenElementList = _FrozenElementList();
+html$._ElementFactoryProvider = class _ElementFactoryProvider extends core.Object {
   static createElement_tag(tag, typeExtension) {
     if (typeExtension != null) {
       return document.createElement(tag, typeExtension);
@@ -72899,38 +72902,38 @@
     return document.createElement(tag);
   }
 };
-dart.setSignature(html._ElementFactoryProvider, {
+dart.setSignature(html$._ElementFactoryProvider, {
   statics: () => ({createElement_tag: dart.definiteFunctionType(dart.dynamic, [core.String, core.String])}),
   names: ['createElement_tag']
 });
-const _value = Symbol('_value');
-html.ScrollAlignment = class ScrollAlignment extends core.Object {
+const _value$2 = Symbol('_value');
+html$.ScrollAlignment = class ScrollAlignment extends core.Object {
   _internal(value) {
-    this[_value] = value;
+    this[_value$2] = value;
   }
   toString() {
-    return dart.str`ScrollAlignment.${this[_value]}`;
+    return dart.str`ScrollAlignment.${this[_value$2]}`;
   }
 };
-dart.defineNamedConstructor(html.ScrollAlignment, '_internal');
-dart.setSignature(html.ScrollAlignment, {
-  constructors: () => ({_internal: dart.definiteFunctionType(html.ScrollAlignment, [dart.dynamic])}),
-  fields: () => ({[_value]: dart.dynamic}),
+dart.defineNamedConstructor(html$.ScrollAlignment, '_internal');
+dart.setSignature(html$.ScrollAlignment, {
+  constructors: () => ({_internal: dart.definiteFunctionType(html$.ScrollAlignment, [dart.dynamic])}),
+  fields: () => ({[_value$2]: dart.dynamic}),
   sfields: () => ({
-    TOP: html.ScrollAlignment,
-    CENTER: html.ScrollAlignment,
-    BOTTOM: html.ScrollAlignment
+    TOP: html$.ScrollAlignment,
+    CENTER: html$.ScrollAlignment,
+    BOTTOM: html$.ScrollAlignment
   })
 });
-dart.defineLazy(html.ScrollAlignment, {
+dart.defineLazy(html$.ScrollAlignment, {
   get TOP() {
-    return dart.const(new html.ScrollAlignment._internal('TOP'));
+    return dart.const(new html$.ScrollAlignment._internal('TOP'));
   },
   get CENTER() {
-    return dart.const(new html.ScrollAlignment._internal('CENTER'));
+    return dart.const(new html$.ScrollAlignment._internal('CENTER'));
   },
   get BOTTOM() {
-    return dart.const(new html.ScrollAlignment._internal('BOTTOM'));
+    return dart.const(new html$.ScrollAlignment._internal('BOTTOM'));
   }
 });
 const __setter__ = Symbol('__setter__');
@@ -72941,12 +72944,12 @@
   'type',
   'width'
 ]);
-html.EmbedElement = class EmbedElement extends html.HtmlElement {
+html$.EmbedElement = class EmbedElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.EmbedElement._check(html.document[dartx.createElement]("embed"));
+    return html$.EmbedElement._check(html$.document[dartx.createElement]("embed"));
   }
   created() {
     this[dartx.height] = null;
@@ -72957,7 +72960,7 @@
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('embed');
+    return html$.Element.isTagSupported('embed');
   }
   get [dartx.height]() {
     return this.height;
@@ -72996,12 +72999,12 @@
     return this.__setter__.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.EmbedElement, 'created');
-dart.setSignature(html.EmbedElement, {
+dart.defineNamedConstructor(html$.EmbedElement, 'created');
+dart.setSignature(html$.EmbedElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.EmbedElement, []),
-    new: dart.definiteFunctionType(html.EmbedElement, []),
-    created: dart.definiteFunctionType(html.EmbedElement, [])
+    _: dart.definiteFunctionType(html$.EmbedElement, []),
+    new: dart.definiteFunctionType(html$.EmbedElement, []),
+    created: dart.definiteFunctionType(html$.EmbedElement, [])
   }),
   fields: () => ({
     [dartx.height]: core.String,
@@ -73012,14 +73015,14 @@
   }),
   methods: () => ({
     [__getter__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html.Node])
+    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLEmbedElement, html.EmbedElement);
-html._EntriesCallback = dart.typedef('_EntriesCallback', () => dart.functionType(dart.void, [ListOfEntry()]));
-html._EntryCallback = dart.typedef('_EntryCallback', () => dart.functionType(dart.void, [html.Entry]));
-html._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [html.FileError]));
+dart.registerExtension(dart.global.HTMLEmbedElement, html$.EmbedElement);
+html$._EntriesCallback = dart.typedef('_EntriesCallback', () => dart.functionType(dart.void, [ListOfEntry()]));
+html$._EntryCallback = dart.typedef('_EntryCallback', () => dart.functionType(dart.void, [html$.Entry]));
+html$._ErrorCallback = dart.typedef('_ErrorCallback', () => dart.functionType(dart.void, [html$.FileError]));
 dart.defineExtensionNames([
   'colno',
   'error',
@@ -73027,7 +73030,7 @@
   'lineno',
   'message'
 ]);
-html.ErrorEvent = class ErrorEvent extends html.Event {
+html$.ErrorEvent = class ErrorEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73035,9 +73038,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.ErrorEvent._create_1(type, eventInitDict_1);
+      return html$.ErrorEvent._create_1(type, eventInitDict_1);
     }
-    return html.ErrorEvent._create_2(type);
+    return html$.ErrorEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.ErrorEvent(type, eventInitDict);
@@ -73061,10 +73064,10 @@
     return this.message;
   }
 };
-dart.setSignature(html.ErrorEvent, {
+dart.setSignature(html$.ErrorEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ErrorEvent, []),
-    new: dart.definiteFunctionType(html.ErrorEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.ErrorEvent, []),
+    new: dart.definiteFunctionType(html$.ErrorEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.colno]: core.int,
@@ -73074,12 +73077,12 @@
     [dartx.message]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ErrorEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ErrorEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ErrorEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ErrorEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.ErrorEvent, html.ErrorEvent);
+dart.registerExtension(dart.global.ErrorEvent, html$.ErrorEvent);
 dart.defineExtensionNames([
   'close',
   'onError',
@@ -73089,11 +73092,11 @@
   'url',
   'withCredentials'
 ]);
-html.EventSource = class EventSource extends html.EventTarget {
+html$.EventSource = class EventSource extends html$.EventTarget {
   static new(url, opts) {
     let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : false;
     let parsedOptions = dart.map({withCredentials: withCredentials}, core.String, dart.dynamic);
-    return html.EventSource._factoryEventSource(url, parsedOptions);
+    return html$.EventSource._factoryEventSource(url, parsedOptions);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -73102,9 +73105,9 @@
     if (eventSourceInitDict === void 0) eventSourceInitDict = null;
     if (eventSourceInitDict != null) {
       let eventSourceInitDict_1 = html_common.convertDartToNative_Dictionary(eventSourceInitDict);
-      return html.EventSource._create_1(url, eventSourceInitDict_1);
+      return html$.EventSource._create_1(url, eventSourceInitDict_1);
     }
-    return html.EventSource._create_2(url);
+    return html$.EventSource._create_2(url);
   }
   static _create_1(url, eventSourceInitDict) {
     return new self.EventSource(url, eventSourceInitDict);
@@ -73125,19 +73128,19 @@
     return this.close.apply(this, args);
   }
   get [dartx.onError]() {
-    return html.EventSource.errorEvent.forTarget(this);
+    return html$.EventSource.errorEvent.forTarget(this);
   }
   get [dartx.onMessage]() {
-    return html.EventSource.messageEvent.forTarget(this);
+    return html$.EventSource.messageEvent.forTarget(this);
   }
   get [dartx.onOpen]() {
-    return html.EventSource.openEvent.forTarget(this);
+    return html$.EventSource.openEvent.forTarget(this);
   }
 };
-dart.setSignature(html.EventSource, {
+dart.setSignature(html$.EventSource, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.EventSource, [core.String], {withCredentials: dart.dynamic}),
-    _: dart.definiteFunctionType(html.EventSource, [])
+    new: dart.definiteFunctionType(html$.EventSource, [core.String], {withCredentials: dart.dynamic}),
+    _: dart.definiteFunctionType(html$.EventSource, [])
   }),
   fields: () => ({
     [dartx.readyState]: core.int,
@@ -73145,9 +73148,9 @@
     [dartx.withCredentials]: core.bool
   }),
   getters: () => ({
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), []),
-    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({[dartx.close]: dart.definiteFunctionType(dart.void, [])}),
   sfields: () => ({
@@ -73159,16 +73162,16 @@
     OPEN: core.int
   }),
   statics: () => ({
-    _factoryEventSource: dart.definiteFunctionType(html.EventSource, [core.String], [core.Map]),
-    _create_1: dart.definiteFunctionType(html.EventSource, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.EventSource, [dart.dynamic])
+    _factoryEventSource: dart.definiteFunctionType(html$.EventSource, [core.String], [core.Map]),
+    _create_1: dart.definiteFunctionType(html$.EventSource, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.EventSource, [dart.dynamic])
   }),
   names: ['_factoryEventSource', '_create_1', '_create_2']
 });
-html.EventSource.CLOSED = 2;
-html.EventSource.CONNECTING = 0;
-html.EventSource.OPEN = 1;
-dart.defineLazy(html.EventSource, {
+html$.EventSource.CLOSED = 2;
+html$.EventSource.CONNECTING = 0;
+html$.EventSource.OPEN = 1;
+dart.defineLazy(html$.EventSource, {
   get errorEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('error'));
   },
@@ -73179,9 +73182,9 @@
     return dart.const(new (EventStreamProviderOfEvent())('open'));
   }
 });
-dart.registerExtension(dart.global.EventSource, html.EventSource);
+dart.registerExtension(dart.global.EventSource, html$.EventSource);
 const _ptr = Symbol('_ptr');
-html.Events = class Events extends core.Object {
+html$.Events = class Events extends core.Object {
   new(ptr) {
     this[_ptr] = ptr;
   }
@@ -73189,29 +73192,29 @@
     return new (_EventStreamOfEvent())(this[_ptr], type, false);
   }
 };
-dart.setSignature(html.Events, {
-  constructors: () => ({new: dart.definiteFunctionType(html.Events, [html.EventTarget])}),
-  fields: () => ({[_ptr]: html.EventTarget}),
+dart.setSignature(html$.Events, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.Events, [html$.EventTarget])}),
+  fields: () => ({[_ptr]: html$.EventTarget}),
   methods: () => ({_get: dart.definiteFunctionType(async.Stream, [core.String])})
 });
-html.ElementEvents = class ElementEvents extends html.Events {
+html$.ElementEvents = class ElementEvents extends html$.Events {
   new(ptr) {
     super.new(ptr);
   }
   _get(type) {
-    if (dart.test(html.ElementEvents.webkitEvents[dartx.keys][dartx.contains](type[dartx.toLowerCase]()))) {
+    if (dart.test(html$.ElementEvents.webkitEvents[dartx.keys][dartx.contains](type[dartx.toLowerCase]()))) {
       if (dart.test(html_common.Device.isWebKit)) {
-        return new (_ElementEventStreamImplOfEvent())(this[_ptr], html.ElementEvents.webkitEvents[dartx._get](type[dartx.toLowerCase]()), false);
+        return new (_ElementEventStreamImplOfEvent())(this[_ptr], html$.ElementEvents.webkitEvents[dartx._get](type[dartx.toLowerCase]()), false);
       }
     }
     return new (_ElementEventStreamImplOfEvent())(this[_ptr], type, false);
   }
 };
-dart.setSignature(html.ElementEvents, {
-  constructors: () => ({new: dart.definiteFunctionType(html.ElementEvents, [html.Element])}),
+dart.setSignature(html$.ElementEvents, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ElementEvents, [html$.Element])}),
   sfields: () => ({webkitEvents: MapOfString$String()})
 });
-dart.defineLazy(html.ElementEvents, {
+dart.defineLazy(html$.ElementEvents, {
   get webkitEvents() {
     return dart.map({animationend: 'webkitAnimationEnd', animationiteration: 'webkitAnimationIteration', animationstart: 'webkitAnimationStart', fullscreenchange: 'webkitfullscreenchange', fullscreenerror: 'webkitfullscreenerror', keyadded: 'webkitkeyadded', keyerror: 'webkitkeyerror', keymessage: 'webkitkeymessage', needkey: 'webkitneedkey', pointerlockchange: 'webkitpointerlockchange', pointerlockerror: 'webkitpointerlockerror', resourcetimingbufferfull: 'webkitresourcetimingbufferfull', transitionend: 'webkitTransitionEnd', speechchange: 'webkitSpeechChange'}, core.String, core.String);
   }
@@ -73219,7 +73222,7 @@
 dart.defineExtensionNames([
   'waitUntil'
 ]);
-html.ExtendableEvent = class ExtendableEvent extends html.Event {
+html$.ExtendableEvent = class ExtendableEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73227,9 +73230,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.ExtendableEvent._create_1(type, eventInitDict_1);
+      return html$.ExtendableEvent._create_1(type, eventInitDict_1);
     }
-    return html.ExtendableEvent._create_2(type);
+    return html$.ExtendableEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.ExtendableEvent(type, eventInitDict);
@@ -73241,30 +73244,30 @@
     return this.waitUntil.apply(this, args);
   }
 };
-dart.setSignature(html.ExtendableEvent, {
+dart.setSignature(html$.ExtendableEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ExtendableEvent, []),
-    new: dart.definiteFunctionType(html.ExtendableEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.ExtendableEvent, []),
+    new: dart.definiteFunctionType(html$.ExtendableEvent, [core.String], [core.Map])
   }),
   methods: () => ({[dartx.waitUntil]: dart.definiteFunctionType(dart.void, [core.Object])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ExtendableEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ExtendableEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ExtendableEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ExtendableEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.ExtendableEvent, html.ExtendableEvent);
+dart.registerExtension(dart.global.ExtendableEvent, html$.ExtendableEvent);
 dart.defineExtensionNames([
   'protocol',
   'provider'
 ]);
-html.FederatedCredential = class FederatedCredential extends html.Credential {
+html$.FederatedCredential = class FederatedCredential extends html$.Credential {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(data) {
     let data_1 = html_common.convertDartToNative_Dictionary(data);
-    return html.FederatedCredential._create_1(data_1);
+    return html$.FederatedCredential._create_1(data_1);
   }
   static _create_1(data) {
     return new self.FederatedCredential(data);
@@ -73276,25 +73279,25 @@
     return this.provider;
   }
 };
-dart.setSignature(html.FederatedCredential, {
+dart.setSignature(html$.FederatedCredential, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FederatedCredential, []),
-    new: dart.definiteFunctionType(html.FederatedCredential, [core.Map])
+    _: dart.definiteFunctionType(html$.FederatedCredential, []),
+    new: dart.definiteFunctionType(html$.FederatedCredential, [core.Map])
   }),
   fields: () => ({
     [dartx.protocol]: core.String,
     [dartx.provider]: core.String
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.FederatedCredential, [dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.FederatedCredential, [dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.FederatedCredential, html.FederatedCredential);
+dart.registerExtension(dart.global.FederatedCredential, html$.FederatedCredential);
 dart.defineExtensionNames([
   'respondWith',
   'isReload',
   'request'
 ]);
-html.FetchEvent = class FetchEvent extends html.ExtendableEvent {
+html$.FetchEvent = class FetchEvent extends html$.ExtendableEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73302,9 +73305,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.FetchEvent._create_1(type, eventInitDict_1);
+      return html$.FetchEvent._create_1(type, eventInitDict_1);
     }
-    return html.FetchEvent._create_2(type);
+    return html$.FetchEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.FetchEvent(type, eventInitDict);
@@ -73322,23 +73325,23 @@
     return this.respondWith.apply(this, args);
   }
 };
-dart.setSignature(html.FetchEvent, {
+dart.setSignature(html$.FetchEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FetchEvent, []),
-    new: dart.definiteFunctionType(html.FetchEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.FetchEvent, []),
+    new: dart.definiteFunctionType(html$.FetchEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.isReload]: core.bool,
-    [dartx.request]: html._Request
+    [dartx.request]: html$._Request
   }),
   methods: () => ({[dartx.respondWith]: dart.definiteFunctionType(dart.void, [core.Object])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.FetchEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.FetchEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.FetchEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FetchEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.FetchEvent, html.FetchEvent);
+dart.registerExtension(dart.global.FetchEvent, html$.FetchEvent);
 dart.defineExtensionNames([
   'checkValidity',
   'reportValidity',
@@ -73352,12 +73355,12 @@
   'validity',
   'willValidate'
 ]);
-html.FieldSetElement = class FieldSetElement extends html.HtmlElement {
+html$.FieldSetElement = class FieldSetElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.FieldSetElement._check(html.document[dartx.createElement]("fieldset"));
+    return html$.FieldSetElement._check(html$.document[dartx.createElement]("fieldset"));
   }
   created() {
     this[dartx.disabled] = null;
@@ -73410,21 +73413,21 @@
     return this.setCustomValidity.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.FieldSetElement, 'created');
-dart.setSignature(html.FieldSetElement, {
+dart.defineNamedConstructor(html$.FieldSetElement, 'created');
+dart.setSignature(html$.FieldSetElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FieldSetElement, []),
-    new: dart.definiteFunctionType(html.FieldSetElement, []),
-    created: dart.definiteFunctionType(html.FieldSetElement, [])
+    _: dart.definiteFunctionType(html$.FieldSetElement, []),
+    new: dart.definiteFunctionType(html$.FieldSetElement, []),
+    created: dart.definiteFunctionType(html$.FieldSetElement, [])
   }),
   fields: () => ({
     [dartx.disabled]: core.bool,
-    [dartx.elements]: html.HtmlFormControlsCollection,
-    [dartx.form]: html.FormElement,
+    [dartx.elements]: html$.HtmlFormControlsCollection,
+    [dartx.form]: html$.FormElement,
     [dartx.name]: core.String,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.willValidate]: core.bool
   }),
   methods: () => ({
@@ -73433,7 +73436,7 @@
     [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
   })
 });
-dart.registerExtension(dart.global.HTMLFieldSetElement, html.FieldSetElement);
+dart.registerExtension(dart.global.HTMLFieldSetElement, html$.FieldSetElement);
 const _get_lastModifiedDate = Symbol('_get_lastModifiedDate');
 dart.defineExtensionNames([
   'lastModifiedDate',
@@ -73441,7 +73444,7 @@
   'name',
   'relativePath'
 ]);
-html.File = class File extends html.Blob {
+html$.File = class File extends html$.Blob {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73449,9 +73452,9 @@
     if (options === void 0) options = null;
     if (options != null) {
       let options_1 = html_common.convertDartToNative_Dictionary(options);
-      return html.File._create_1(fileBits, fileName, options_1);
+      return html$.File._create_1(fileBits, fileName, options_1);
     }
-    return html.File._create_2(fileBits, fileName);
+    return html$.File._create_2(fileBits, fileName);
   }
   static _create_1(fileBits, fileName, options) {
     return new self.File(fileBits, fileName, options);
@@ -73475,10 +73478,10 @@
     return this.webkitRelativePath;
   }
 };
-dart.setSignature(html.File, {
+dart.setSignature(html$.File, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.File, []),
-    new: dart.definiteFunctionType(html.File, [ListOfObject(), core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.File, []),
+    new: dart.definiteFunctionType(html$.File, [ListOfObject(), core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.lastModified]: core.int,
@@ -73488,20 +73491,20 @@
   }),
   getters: () => ({[dartx.lastModifiedDate]: dart.definiteFunctionType(core.DateTime, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.File, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.File, [dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.File, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.File, [dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.File, html.File);
-html._FileCallback = dart.typedef('_FileCallback', () => dart.functionType(dart.void, [html.File]));
+dart.registerExtension(dart.global.File, html$.File);
+html$._FileCallback = dart.typedef('_FileCallback', () => dart.functionType(dart.void, [html$.File]));
 const _createWriter = Symbol('_createWriter');
-const _file = Symbol('_file');
+const _file$ = Symbol('_file');
 dart.defineExtensionNames([
   'createWriter',
   'file'
 ]);
-html.FileEntry = class FileEntry extends html.Entry {
+html$.FileEntry = class FileEntry extends html$.Entry {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73517,12 +73520,12 @@
     }, FileErrorToNull()));
     return completer.future;
   }
-  [_file](...args) {
+  [_file$](...args) {
     return this.file.apply(this, args);
   }
   [dartx.file]() {
-    let completer = CompleterOfFile().new();
-    this[_file](dart.fn(value => {
+    let completer = CompleterOfFile$().new();
+    this[_file$](dart.fn(value => {
       completer.complete(value);
     }, FileToNull()), dart.fn(error => {
       completer.completeError(error);
@@ -73530,20 +73533,20 @@
     return completer.future;
   }
 };
-dart.setSignature(html.FileEntry, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FileEntry, [])}),
+dart.setSignature(html$.FileEntry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileEntry, [])}),
   methods: () => ({
-    [_createWriter]: dart.definiteFunctionType(dart.void, [html._FileWriterCallback], [html._ErrorCallback]),
-    [dartx.createWriter]: dart.definiteFunctionType(async.Future$(html.FileWriter), []),
-    [_file]: dart.definiteFunctionType(dart.void, [html._FileCallback], [html._ErrorCallback]),
-    [dartx.file]: dart.definiteFunctionType(async.Future$(html.File), [])
+    [_createWriter]: dart.definiteFunctionType(dart.void, [html$._FileWriterCallback], [html$._ErrorCallback]),
+    [dartx.createWriter]: dart.definiteFunctionType(async.Future$(html$.FileWriter), []),
+    [_file$]: dart.definiteFunctionType(dart.void, [html$._FileCallback], [html$._ErrorCallback]),
+    [dartx.file]: dart.definiteFunctionType(async.Future$(html$.File), [])
   })
 });
-dart.registerExtension(dart.global.FileEntry, html.FileEntry);
+dart.registerExtension(dart.global.FileEntry, html$.FileEntry);
 dart.defineExtensionNames([
   'code'
 ]);
-html.FileError = class FileError extends html.DomError {
+html$.FileError = class FileError extends html$.DomError {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73551,8 +73554,8 @@
     return this.code;
   }
 };
-dart.setSignature(html.FileError, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FileError, [])}),
+dart.setSignature(html$.FileError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileError, [])}),
   fields: () => ({[dartx.code]: core.int}),
   sfields: () => ({
     ABORT_ERR: core.int,
@@ -73569,19 +73572,19 @@
     TYPE_MISMATCH_ERR: core.int
   })
 });
-html.FileError.ABORT_ERR = 3;
-html.FileError.ENCODING_ERR = 5;
-html.FileError.INVALID_MODIFICATION_ERR = 9;
-html.FileError.INVALID_STATE_ERR = 7;
-html.FileError.NOT_FOUND_ERR = 1;
-html.FileError.NOT_READABLE_ERR = 4;
-html.FileError.NO_MODIFICATION_ALLOWED_ERR = 6;
-html.FileError.PATH_EXISTS_ERR = 12;
-html.FileError.QUOTA_EXCEEDED_ERR = 10;
-html.FileError.SECURITY_ERR = 2;
-html.FileError.SYNTAX_ERR = 8;
-html.FileError.TYPE_MISMATCH_ERR = 11;
-dart.registerExtension(dart.global.FileError, html.FileError);
+html$.FileError.ABORT_ERR = 3;
+html$.FileError.ENCODING_ERR = 5;
+html$.FileError.INVALID_MODIFICATION_ERR = 9;
+html$.FileError.INVALID_STATE_ERR = 7;
+html$.FileError.NOT_FOUND_ERR = 1;
+html$.FileError.NOT_READABLE_ERR = 4;
+html$.FileError.NO_MODIFICATION_ALLOWED_ERR = 6;
+html$.FileError.PATH_EXISTS_ERR = 12;
+html$.FileError.QUOTA_EXCEEDED_ERR = 10;
+html$.FileError.SECURITY_ERR = 2;
+html$.FileError.SYNTAX_ERR = 8;
+html$.FileError.TYPE_MISMATCH_ERR = 11;
+dart.registerExtension(dart.global.FileError, html$.FileError);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -73593,7 +73596,7 @@
   'elementAt',
   'item'
 ]);
-html.FileList = class FileList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.File), html.ImmutableListMixin$(html.File)) {
+html$.FileList = class FileList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.File), html$.ImmutableListMixin$(html$.File)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73639,18 +73642,18 @@
     return this.item.apply(this, args);
   }
 };
-html.FileList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfFile()];
-dart.setSignature(html.FileList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FileList, [])}),
+html$.FileList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfFile()];
+dart.setSignature(html$.FileList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.File, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.File]),
-    [dartx.item]: dart.definiteFunctionType(html.File, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.File, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.File]),
+    [dartx.item]: dart.definiteFunctionType(html$.File, [core.int])
   })
 });
-dart.registerExtension(dart.global.FileList, html.FileList);
+dart.registerExtension(dart.global.FileList, html$.FileList);
 dart.defineExtensionNames([
   'result',
   'abort',
@@ -73666,7 +73669,7 @@
   'error',
   'readyState'
 ]);
-html.FileReader = class FileReader extends html.EventTarget {
+html$.FileReader = class FileReader extends html$.EventTarget {
   get [dartx.result]() {
     let res = this.result;
     if (typed_data.ByteBuffer.is(res)) {
@@ -73678,7 +73681,7 @@
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.FileReader._create_1();
+    return html$.FileReader._create_1();
   }
   static _create_1() {
     return new self.FileReader();
@@ -73702,47 +73705,47 @@
     return this.readAsText.apply(this, args);
   }
   get [dartx.onAbort]() {
-    return html.FileReader.abortEvent.forTarget(this);
+    return html$.FileReader.abortEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.FileReader.errorEvent.forTarget(this);
+    return html$.FileReader.errorEvent.forTarget(this);
   }
   get [dartx.onLoad]() {
-    return html.FileReader.loadEvent.forTarget(this);
+    return html$.FileReader.loadEvent.forTarget(this);
   }
   get [dartx.onLoadEnd]() {
-    return html.FileReader.loadEndEvent.forTarget(this);
+    return html$.FileReader.loadEndEvent.forTarget(this);
   }
   get [dartx.onLoadStart]() {
-    return html.FileReader.loadStartEvent.forTarget(this);
+    return html$.FileReader.loadStartEvent.forTarget(this);
   }
   get [dartx.onProgress]() {
-    return html.FileReader.progressEvent.forTarget(this);
+    return html$.FileReader.progressEvent.forTarget(this);
   }
 };
-dart.setSignature(html.FileReader, {
+dart.setSignature(html$.FileReader, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FileReader, []),
-    new: dart.definiteFunctionType(html.FileReader, [])
+    _: dart.definiteFunctionType(html$.FileReader, []),
+    new: dart.definiteFunctionType(html$.FileReader, [])
   }),
   fields: () => ({
-    [dartx.error]: html.FileError,
+    [dartx.error]: html$.FileError,
     [dartx.readyState]: core.int
   }),
   getters: () => ({
     [dartx.result]: dart.definiteFunctionType(core.Object, []),
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), [])
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
   }),
   methods: () => ({
     [dartx.abort]: dart.definiteFunctionType(dart.void, []),
-    [dartx.readAsArrayBuffer]: dart.definiteFunctionType(dart.void, [html.Blob]),
-    [dartx.readAsDataUrl]: dart.definiteFunctionType(dart.void, [html.Blob]),
-    [dartx.readAsText]: dart.definiteFunctionType(dart.void, [html.Blob], [core.String])
+    [dartx.readAsArrayBuffer]: dart.definiteFunctionType(dart.void, [html$.Blob]),
+    [dartx.readAsDataUrl]: dart.definiteFunctionType(dart.void, [html$.Blob]),
+    [dartx.readAsText]: dart.definiteFunctionType(dart.void, [html$.Blob], [core.String])
   }),
   sfields: () => ({
     abortEvent: EventStreamProviderOfProgressEvent(),
@@ -73755,13 +73758,13 @@
     EMPTY: core.int,
     LOADING: core.int
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.FileReader, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.FileReader, [])}),
   names: ['_create_1']
 });
-html.FileReader.DONE = 2;
-html.FileReader.EMPTY = 0;
-html.FileReader.LOADING = 1;
-dart.defineLazy(html.FileReader, {
+html$.FileReader.DONE = 2;
+html$.FileReader.EMPTY = 0;
+html$.FileReader.LOADING = 1;
+dart.defineLazy(html$.FileReader, {
   get abortEvent() {
     return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
   },
@@ -73781,11 +73784,11 @@
     return dart.const(new (EventStreamProviderOfProgressEvent())('progress'));
   }
 });
-dart.registerExtension(dart.global.FileReader, html.FileReader);
+dart.registerExtension(dart.global.FileReader, html$.FileReader);
 dart.defineExtensionNames([
   'type'
 ]);
-html.FileStream = class FileStream extends _interceptors.Interceptor {
+html$.FileStream = class FileStream extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73793,16 +73796,16 @@
     return this.type;
   }
 };
-dart.setSignature(html.FileStream, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FileStream, [])}),
+dart.setSignature(html$.FileStream, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileStream, [])}),
   fields: () => ({[dartx.type]: core.String})
 });
-dart.registerExtension(dart.global.Stream, html.FileStream);
+dart.registerExtension(dart.global.Stream, html$.FileStream);
 dart.defineExtensionNames([
   'name',
   'root'
 ]);
-html.FileSystem = class FileSystem extends _interceptors.Interceptor {
+html$.FileSystem = class FileSystem extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73816,16 +73819,16 @@
     return this.root;
   }
 };
-dart.setSignature(html.FileSystem, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FileSystem, [])}),
+dart.setSignature(html$.FileSystem, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileSystem, [])}),
   fields: () => ({
     [dartx.name]: core.String,
-    [dartx.root]: html.DirectoryEntry
+    [dartx.root]: html$.DirectoryEntry
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.DOMFileSystem, html.FileSystem);
-html._FileSystemCallback = dart.typedef('_FileSystemCallback', () => dart.functionType(dart.void, [html.FileSystem]));
+dart.registerExtension(dart.global.DOMFileSystem, html$.FileSystem);
+html$._FileSystemCallback = dart.typedef('_FileSystemCallback', () => dart.functionType(dart.void, [html$.FileSystem]));
 dart.defineExtensionNames([
   'abort',
   'seek',
@@ -73842,7 +73845,7 @@
   'position',
   'readyState'
 ]);
-html.FileWriter = class FileWriter extends html.EventTarget {
+html$.FileWriter = class FileWriter extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73871,45 +73874,45 @@
     return this.write.apply(this, args);
   }
   get [dartx.onAbort]() {
-    return html.FileWriter.abortEvent.forTarget(this);
+    return html$.FileWriter.abortEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.FileWriter.errorEvent.forTarget(this);
+    return html$.FileWriter.errorEvent.forTarget(this);
   }
   get [dartx.onProgress]() {
-    return html.FileWriter.progressEvent.forTarget(this);
+    return html$.FileWriter.progressEvent.forTarget(this);
   }
   get [dartx.onWrite]() {
-    return html.FileWriter.writeEvent.forTarget(this);
+    return html$.FileWriter.writeEvent.forTarget(this);
   }
   get [dartx.onWriteEnd]() {
-    return html.FileWriter.writeEndEvent.forTarget(this);
+    return html$.FileWriter.writeEndEvent.forTarget(this);
   }
   get [dartx.onWriteStart]() {
-    return html.FileWriter.writeStartEvent.forTarget(this);
+    return html$.FileWriter.writeStartEvent.forTarget(this);
   }
 };
-dart.setSignature(html.FileWriter, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FileWriter, [])}),
+dart.setSignature(html$.FileWriter, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FileWriter, [])}),
   fields: () => ({
-    [dartx.error]: html.FileError,
+    [dartx.error]: html$.FileError,
     [dartx.length]: core.int,
     [dartx.position]: core.int,
     [dartx.readyState]: core.int
   }),
   getters: () => ({
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onWrite]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onWriteEnd]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onWriteStart]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), [])
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onWrite]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onWriteEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onWriteStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
   }),
   methods: () => ({
     [dartx.abort]: dart.definiteFunctionType(dart.void, []),
     [dartx.seek]: dart.definiteFunctionType(dart.void, [core.int]),
     [dartx.truncate]: dart.definiteFunctionType(dart.void, [core.int]),
-    [dartx.write]: dart.definiteFunctionType(dart.void, [html.Blob])
+    [dartx.write]: dart.definiteFunctionType(dart.void, [html$.Blob])
   }),
   sfields: () => ({
     abortEvent: EventStreamProviderOfProgressEvent(),
@@ -73923,10 +73926,10 @@
     WRITING: core.int
   })
 });
-html.FileWriter.DONE = 2;
-html.FileWriter.INIT = 0;
-html.FileWriter.WRITING = 1;
-dart.defineLazy(html.FileWriter, {
+html$.FileWriter.DONE = 2;
+html$.FileWriter.INIT = 0;
+html$.FileWriter.WRITING = 1;
+dart.defineLazy(html$.FileWriter, {
   get abortEvent() {
     return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
   },
@@ -73946,13 +73949,13 @@
     return dart.const(new (EventStreamProviderOfProgressEvent())('writestart'));
   }
 });
-dart.registerExtension(dart.global.FileWriter, html.FileWriter);
-html._FileWriterCallback = dart.typedef('_FileWriterCallback', () => dart.functionType(dart.void, [html.FileWriter]));
+dart.registerExtension(dart.global.FileWriter, html$.FileWriter);
+html$._FileWriterCallback = dart.typedef('_FileWriterCallback', () => dart.functionType(dart.void, [html$.FileWriter]));
 const _get_relatedTarget = Symbol('_get_relatedTarget');
 dart.defineExtensionNames([
   'relatedTarget'
 ]);
-html.FocusEvent = class FocusEvent extends html.UIEvent {
+html$.FocusEvent = class FocusEvent extends html$.UIEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -73960,9 +73963,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.FocusEvent._create_1(type, eventInitDict_1);
+      return html$.FocusEvent._create_1(type, eventInitDict_1);
     }
-    return html.FocusEvent._create_2(type);
+    return html$.FocusEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.FocusEvent(type, eventInitDict);
@@ -73971,26 +73974,26 @@
     return new self.FocusEvent(type);
   }
   get [dartx.relatedTarget]() {
-    return html._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
+    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
   }
   get [_get_relatedTarget]() {
     return this.relatedTarget;
   }
 };
-dart.setSignature(html.FocusEvent, {
+dart.setSignature(html$.FocusEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FocusEvent, []),
-    new: dart.definiteFunctionType(html.FocusEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.FocusEvent, []),
+    new: dart.definiteFunctionType(html$.FocusEvent, [core.String], [core.Map])
   }),
   fields: () => ({[_get_relatedTarget]: dart.dynamic}),
-  getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html.EventTarget, [])}),
+  getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.FocusEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.FocusEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.FocusEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FocusEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.FocusEvent, html.FocusEvent);
+dart.registerExtension(dart.global.FocusEvent, html$.FocusEvent);
 dart.defineExtensionNames([
   'load',
   'family',
@@ -74003,7 +74006,7 @@
   'variant',
   'weight'
 ]);
-html.FontFace = class FontFace extends _interceptors.Interceptor {
+html$.FontFace = class FontFace extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74011,9 +74014,9 @@
     if (descriptors === void 0) descriptors = null;
     if (descriptors != null) {
       let descriptors_1 = html_common.convertDartToNative_Dictionary(descriptors);
-      return html.FontFace._create_1(family, source, descriptors_1);
+      return html$.FontFace._create_1(family, source, descriptors_1);
     }
-    return html.FontFace._create_2(family, source);
+    return html$.FontFace._create_2(family, source);
   }
   static _create_1(family, source, descriptors) {
     return new self.FontFace(family, source, descriptors);
@@ -74073,10 +74076,10 @@
     return this.load.apply(this, args);
   }
 };
-dart.setSignature(html.FontFace, {
+dart.setSignature(html$.FontFace, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FontFace, []),
-    new: dart.definiteFunctionType(html.FontFace, [core.String, core.Object], [core.Map])
+    _: dart.definiteFunctionType(html$.FontFace, []),
+    new: dart.definiteFunctionType(html$.FontFace, [core.String, core.Object], [core.Map])
   }),
   fields: () => ({
     [dartx.family]: core.String,
@@ -74091,12 +74094,12 @@
   }),
   methods: () => ({[dartx.load]: dart.definiteFunctionType(async.Future, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.FontFace, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.FontFace, [dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.FontFace, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FontFace, [dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.FontFace, html.FontFace);
+dart.registerExtension(dart.global.FontFace, html$.FontFace);
 dart.defineExtensionNames([
   'add',
   'check',
@@ -74107,7 +74110,7 @@
   'size',
   'status'
 ]);
-html.FontFaceSet = class FontFaceSet extends html.EventTarget {
+html$.FontFaceSet = class FontFaceSet extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74136,27 +74139,27 @@
     return this.has.apply(this, args);
   }
 };
-dart.setSignature(html.FontFaceSet, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FontFaceSet, [])}),
+dart.setSignature(html$.FontFaceSet, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FontFaceSet, [])}),
   fields: () => ({
     [dartx.size]: core.int,
     [dartx.status]: core.String
   }),
   methods: () => ({
-    [dartx.add]: dart.definiteFunctionType(dart.void, [html.FontFace]),
+    [dartx.add]: dart.definiteFunctionType(dart.void, [html$.FontFace]),
     [dartx.check]: dart.definiteFunctionType(core.bool, [core.String], [core.String]),
     [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-    [dartx.delete]: dart.definiteFunctionType(core.bool, [html.FontFace]),
-    [dartx.forEach]: dart.definiteFunctionType(dart.void, [html.FontFaceSetForEachCallback], [core.Object]),
-    [dartx.has]: dart.definiteFunctionType(core.bool, [html.FontFace])
+    [dartx.delete]: dart.definiteFunctionType(core.bool, [html$.FontFace]),
+    [dartx.forEach]: dart.definiteFunctionType(dart.void, [html$.FontFaceSetForEachCallback], [core.Object]),
+    [dartx.has]: dart.definiteFunctionType(core.bool, [html$.FontFace])
   })
 });
-dart.registerExtension(dart.global.FontFaceSet, html.FontFaceSet);
-html.FontFaceSetForEachCallback = dart.typedef('FontFaceSetForEachCallback', () => dart.functionType(dart.void, [html.FontFace, html.FontFace, html.FontFaceSet]));
+dart.registerExtension(dart.global.FontFaceSet, html$.FontFaceSet);
+html$.FontFaceSetForEachCallback = dart.typedef('FontFaceSetForEachCallback', () => dart.functionType(dart.void, [html$.FontFace, html$.FontFace, html$.FontFaceSet]));
 dart.defineExtensionNames([
   'fontfaces'
 ]);
-html.FontFaceSetLoadEvent = class FontFaceSetLoadEvent extends html.Event {
+html$.FontFaceSetLoadEvent = class FontFaceSetLoadEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74164,11 +74167,11 @@
     return this.fontfaces;
   }
 };
-dart.setSignature(html.FontFaceSetLoadEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.FontFaceSetLoadEvent, [])}),
+dart.setSignature(html$.FontFaceSetLoadEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.FontFaceSetLoadEvent, [])}),
   fields: () => ({[dartx.fontfaces]: ListOfFontFace()})
 });
-dart.registerExtension(dart.global.FontFaceSetLoadEvent, html.FontFaceSetLoadEvent);
+dart.registerExtension(dart.global.FontFaceSetLoadEvent, html$.FontFaceSetLoadEvent);
 dart.defineExtensionNames([
   'append',
   'appendBlob',
@@ -74178,16 +74181,16 @@
   'has',
   'set'
 ]);
-html.FormData = class FormData extends _interceptors.Interceptor {
+html$.FormData = class FormData extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(form) {
     if (form === void 0) form = null;
     if (form != null) {
-      return html.FormData._create_1(form);
+      return html$.FormData._create_1(form);
     }
-    return html.FormData._create_2();
+    return html$.FormData._create_2();
   }
   static _create_1(form) {
     return new self.FormData(form);
@@ -74220,14 +74223,14 @@
     return this.set.apply(this, args);
   }
 };
-dart.setSignature(html.FormData, {
+dart.setSignature(html$.FormData, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FormData, []),
-    new: dart.definiteFunctionType(html.FormData, [], [html.FormElement])
+    _: dart.definiteFunctionType(html$.FormData, []),
+    new: dart.definiteFunctionType(html$.FormData, [], [html$.FormElement])
   }),
   methods: () => ({
     [dartx.append]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
-    [dartx.appendBlob]: dart.definiteFunctionType(dart.void, [core.String, html.Blob], [core.String]),
+    [dartx.appendBlob]: dart.definiteFunctionType(dart.void, [core.String, html$.Blob], [core.String]),
     [dartx.delete]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.get]: dart.definiteFunctionType(core.Object, [core.String]),
     [dartx.getAll]: dart.definiteFunctionType(core.List$(core.Object), [core.String]),
@@ -74236,12 +74239,12 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.FormData, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.FormData, [])
+    _create_1: dart.definiteFunctionType(html$.FormData, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.FormData, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.FormData, html.FormData);
+dart.registerExtension(dart.global.FormData, html$.FormData);
 const _requestAutocomplete_1 = Symbol('_requestAutocomplete_1');
 dart.defineExtensionNames([
   'checkValidity',
@@ -74261,12 +74264,12 @@
   'noValidate',
   'target'
 ]);
-html.FormElement = class FormElement extends html.HtmlElement {
+html$.FormElement = class FormElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.FormElement._check(html.document[dartx.createElement]("form"));
+    return html$.FormElement._check(html$.document[dartx.createElement]("form"));
   }
   created() {
     this[dartx.acceptCharset] = null;
@@ -74365,12 +74368,12 @@
     return this.submit.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.FormElement, 'created');
-dart.setSignature(html.FormElement, {
+dart.defineNamedConstructor(html$.FormElement, 'created');
+dart.setSignature(html$.FormElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.FormElement, []),
-    new: dart.definiteFunctionType(html.FormElement, []),
-    created: dart.definiteFunctionType(html.FormElement, [])
+    _: dart.definiteFunctionType(html$.FormElement, []),
+    new: dart.definiteFunctionType(html$.FormElement, []),
+    created: dart.definiteFunctionType(html$.FormElement, [])
   }),
   fields: () => ({
     [dartx.acceptCharset]: core.String,
@@ -74387,7 +74390,7 @@
   methods: () => ({
     [__getter__]: dart.definiteFunctionType(core.Object, [core.String]),
     [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-    [dartx.item]: dart.definiteFunctionType(html.Element, [core.int]),
+    [dartx.item]: dart.definiteFunctionType(html$.Element, [core.int]),
     [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
     [dartx.requestAutocomplete]: dart.definiteFunctionType(dart.void, [core.Map]),
     [_requestAutocomplete_1]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
@@ -74395,8 +74398,8 @@
     [dartx.submit]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.HTMLFormElement, html.FormElement);
-html.FrameRequestCallback = dart.typedef('FrameRequestCallback', () => dart.functionType(dart.void, [core.num]));
+dart.registerExtension(dart.global.HTMLFormElement, html$.FormElement);
+html$.FrameRequestCallback = dart.typedef('FrameRequestCallback', () => dart.functionType(dart.void, [core.num]));
 dart.defineExtensionNames([
   'axes',
   'buttons',
@@ -74406,7 +74409,7 @@
   'mapping',
   'timestamp'
 ]);
-html.Gamepad = class Gamepad extends _interceptors.Interceptor {
+html$.Gamepad = class Gamepad extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74432,8 +74435,8 @@
     return this.timestamp;
   }
 };
-dart.setSignature(html.Gamepad, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Gamepad, [])}),
+dart.setSignature(html$.Gamepad, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Gamepad, [])}),
   fields: () => ({
     [dartx.axes]: ListOfnum(),
     [dartx.buttons]: ListOfGamepadButton(),
@@ -74444,12 +74447,12 @@
     [dartx.timestamp]: core.int
   })
 });
-dart.registerExtension(dart.global.Gamepad, html.Gamepad);
+dart.registerExtension(dart.global.Gamepad, html$.Gamepad);
 dart.defineExtensionNames([
   'pressed',
   'value'
 ]);
-html.GamepadButton = class GamepadButton extends _interceptors.Interceptor {
+html$.GamepadButton = class GamepadButton extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74460,18 +74463,18 @@
     return this.value;
   }
 };
-dart.setSignature(html.GamepadButton, {
-  constructors: () => ({_: dart.definiteFunctionType(html.GamepadButton, [])}),
+dart.setSignature(html$.GamepadButton, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GamepadButton, [])}),
   fields: () => ({
     [dartx.pressed]: core.bool,
     [dartx.value]: core.double
   })
 });
-dart.registerExtension(dart.global.GamepadButton, html.GamepadButton);
+dart.registerExtension(dart.global.GamepadButton, html$.GamepadButton);
 dart.defineExtensionNames([
   'gamepad'
 ]);
-html.GamepadEvent = class GamepadEvent extends html.Event {
+html$.GamepadEvent = class GamepadEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74479,9 +74482,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.GamepadEvent._create_1(type, eventInitDict_1);
+      return html$.GamepadEvent._create_1(type, eventInitDict_1);
     }
-    return html.GamepadEvent._create_2(type);
+    return html$.GamepadEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.GamepadEvent(type, eventInitDict);
@@ -74493,25 +74496,25 @@
     return this.gamepad;
   }
 };
-dart.setSignature(html.GamepadEvent, {
+dart.setSignature(html$.GamepadEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.GamepadEvent, []),
-    new: dart.definiteFunctionType(html.GamepadEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.GamepadEvent, []),
+    new: dart.definiteFunctionType(html$.GamepadEvent, [core.String], [core.Map])
   }),
-  fields: () => ({[dartx.gamepad]: html.Gamepad}),
+  fields: () => ({[dartx.gamepad]: html$.Gamepad}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.GamepadEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.GamepadEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.GamepadEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.GamepadEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.GamepadEvent, html.GamepadEvent);
+dart.registerExtension(dart.global.GamepadEvent, html$.GamepadEvent);
 dart.defineExtensionNames([
   'getRegisteredRegions',
   'registerRegion',
   'unregisterRegion'
 ]);
-html.Geofencing = class Geofencing extends _interceptors.Interceptor {
+html$.Geofencing = class Geofencing extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74525,20 +74528,20 @@
     return this.unregisterRegion.apply(this, args);
   }
 };
-dart.setSignature(html.Geofencing, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Geofencing, [])}),
+dart.setSignature(html$.Geofencing, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Geofencing, [])}),
   methods: () => ({
     [dartx.getRegisteredRegions]: dart.definiteFunctionType(async.Future, []),
-    [dartx.registerRegion]: dart.definiteFunctionType(async.Future, [html.GeofencingRegion]),
+    [dartx.registerRegion]: dart.definiteFunctionType(async.Future, [html$.GeofencingRegion]),
     [dartx.unregisterRegion]: dart.definiteFunctionType(async.Future, [core.String])
   })
 });
-dart.registerExtension(dart.global.Geofencing, html.Geofencing);
+dart.registerExtension(dart.global.Geofencing, html$.Geofencing);
 dart.defineExtensionNames([
   'id',
   'region'
 ]);
-html.GeofencingEvent = class GeofencingEvent extends html.Event {
+html$.GeofencingEvent = class GeofencingEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74549,14 +74552,14 @@
     return this.region;
   }
 };
-dart.setSignature(html.GeofencingEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.GeofencingEvent, [])}),
+dart.setSignature(html$.GeofencingEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GeofencingEvent, [])}),
   fields: () => ({
     [dartx.id]: core.String,
-    [dartx.region]: html.GeofencingRegion
+    [dartx.region]: html$.GeofencingRegion
   })
 });
-dart.registerExtension(dart.global.GeofencingEvent, html.GeofencingEvent);
+dart.registerExtension(dart.global.GeofencingEvent, html$.GeofencingEvent);
 const _getCurrentPosition = Symbol('_getCurrentPosition');
 const _ensurePosition = Symbol('_ensurePosition');
 const _watchPosition = Symbol('_watchPosition');
@@ -74571,7 +74574,7 @@
   'getCurrentPosition',
   'watchPosition'
 ]);
-html.Geolocation = class Geolocation extends _interceptors.Interceptor {
+html$.Geolocation = class Geolocation extends _interceptors.Interceptor {
   [dartx.getCurrentPosition](opts) {
     let enableHighAccuracy = opts && 'enableHighAccuracy' in opts ? opts.enableHighAccuracy : null;
     let timeout = opts && 'timeout' in opts ? opts.timeout : null;
@@ -74631,13 +74634,13 @@
   }
   [_ensurePosition](domPosition) {
     try {
-      if (html.Geoposition.is(domPosition)) {
+      if (html$.Geoposition.is(domPosition)) {
         return domPosition;
       }
     } catch (e) {
     }
 
-    return new html._GeopositionWrapper(domPosition);
+    return new html$._GeopositionWrapper(domPosition);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -74691,25 +74694,25 @@
     return this.watchPosition.apply(this, args);
   }
 };
-dart.setSignature(html.Geolocation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Geolocation, [])}),
+dart.setSignature(html$.Geolocation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Geolocation, [])}),
   methods: () => ({
-    [dartx.getCurrentPosition]: dart.definiteFunctionType(async.Future$(html.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
-    [dartx.watchPosition]: dart.definiteFunctionType(async.Stream$(html.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
-    [_ensurePosition]: dart.definiteFunctionType(html.Geoposition, [dart.dynamic]),
+    [dartx.getCurrentPosition]: dart.definiteFunctionType(async.Future$(html$.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
+    [dartx.watchPosition]: dart.definiteFunctionType(async.Stream$(html$.Geoposition), [], {enableHighAccuracy: core.bool, timeout: core.Duration, maximumAge: core.Duration}),
+    [_ensurePosition]: dart.definiteFunctionType(html$.Geoposition, [dart.dynamic]),
     [_clearWatch]: dart.definiteFunctionType(dart.void, [core.int]),
-    [_getCurrentPosition]: dart.definiteFunctionType(dart.void, [html._PositionCallback], [html._PositionErrorCallback, core.Map]),
-    [_getCurrentPosition_1]: dart.definiteFunctionType(dart.void, [html._PositionCallback, html._PositionErrorCallback, dart.dynamic]),
-    [_getCurrentPosition_2]: dart.definiteFunctionType(dart.void, [html._PositionCallback, html._PositionErrorCallback]),
-    [_getCurrentPosition_3]: dart.definiteFunctionType(dart.void, [html._PositionCallback]),
-    [_watchPosition]: dart.definiteFunctionType(core.int, [html._PositionCallback], [html._PositionErrorCallback, core.Map]),
-    [_watchPosition_1]: dart.definiteFunctionType(core.int, [html._PositionCallback, html._PositionErrorCallback, dart.dynamic]),
-    [_watchPosition_2]: dart.definiteFunctionType(core.int, [html._PositionCallback, html._PositionErrorCallback]),
-    [_watchPosition_3]: dart.definiteFunctionType(core.int, [html._PositionCallback])
+    [_getCurrentPosition]: dart.definiteFunctionType(dart.void, [html$._PositionCallback], [html$._PositionErrorCallback, core.Map]),
+    [_getCurrentPosition_1]: dart.definiteFunctionType(dart.void, [html$._PositionCallback, html$._PositionErrorCallback, dart.dynamic]),
+    [_getCurrentPosition_2]: dart.definiteFunctionType(dart.void, [html$._PositionCallback, html$._PositionErrorCallback]),
+    [_getCurrentPosition_3]: dart.definiteFunctionType(dart.void, [html$._PositionCallback]),
+    [_watchPosition]: dart.definiteFunctionType(core.int, [html$._PositionCallback], [html$._PositionErrorCallback, core.Map]),
+    [_watchPosition_1]: dart.definiteFunctionType(core.int, [html$._PositionCallback, html$._PositionErrorCallback, dart.dynamic]),
+    [_watchPosition_2]: dart.definiteFunctionType(core.int, [html$._PositionCallback, html$._PositionErrorCallback]),
+    [_watchPosition_3]: dart.definiteFunctionType(core.int, [html$._PositionCallback])
   })
 });
-dart.registerExtension(dart.global.Geolocation, html.Geolocation);
-html._GeopositionWrapper = class _GeopositionWrapper extends core.Object {
+dart.registerExtension(dart.global.Geolocation, html$.Geolocation);
+html$._GeopositionWrapper = class _GeopositionWrapper extends core.Object {
   new(ptr) {
     this[_ptr] = ptr;
   }
@@ -74720,12 +74723,12 @@
     return this[_ptr].timestamp;
   }
 };
-html._GeopositionWrapper[dart.implements] = () => [html.Geoposition];
-dart.setSignature(html._GeopositionWrapper, {
-  constructors: () => ({new: dart.definiteFunctionType(html._GeopositionWrapper, [dart.dynamic])}),
+html$._GeopositionWrapper[dart.implements] = () => [html$.Geoposition];
+dart.setSignature(html$._GeopositionWrapper, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._GeopositionWrapper, [dart.dynamic])}),
   fields: () => ({[_ptr]: dart.dynamic}),
   getters: () => ({
-    coords: dart.definiteFunctionType(html.Coordinates, []),
+    coords: dart.definiteFunctionType(html$.Coordinates, []),
     timestamp: dart.definiteFunctionType(core.int, [])
   })
 });
@@ -74733,7 +74736,7 @@
   'coords',
   'timestamp'
 ]);
-html.Geoposition = class Geoposition extends _interceptors.Interceptor {
+html$.Geoposition = class Geoposition extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -74744,14 +74747,14 @@
     return this.timestamp;
   }
 };
-dart.setSignature(html.Geoposition, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Geoposition, [])}),
+dart.setSignature(html$.Geoposition, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Geoposition, [])}),
   fields: () => ({
-    [dartx.coords]: html.Coordinates,
+    [dartx.coords]: html$.Coordinates,
     [dartx.timestamp]: core.int
   })
 });
-dart.registerExtension(dart.global.Geoposition, html.Geoposition);
+dart.registerExtension(dart.global.Geoposition, html$.Geoposition);
 dart.defineExtensionNames([
   'onAbort',
   'onBlur',
@@ -74806,223 +74809,223 @@
   'onVolumeChange',
   'onWaiting'
 ]);
-html.GlobalEventHandlers = class GlobalEventHandlers extends core.Object {
+html$.GlobalEventHandlers = class GlobalEventHandlers extends core.Object {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get onAbort() {
-    return html.GlobalEventHandlers.abortEvent.forTarget(this);
+    return html$.GlobalEventHandlers.abortEvent.forTarget(this);
   }
   get onBlur() {
-    return html.GlobalEventHandlers.blurEvent.forTarget(this);
+    return html$.GlobalEventHandlers.blurEvent.forTarget(this);
   }
   get onCanPlay() {
-    return html.GlobalEventHandlers.canPlayEvent.forTarget(this);
+    return html$.GlobalEventHandlers.canPlayEvent.forTarget(this);
   }
   get onCanPlayThrough() {
-    return html.GlobalEventHandlers.canPlayThroughEvent.forTarget(this);
+    return html$.GlobalEventHandlers.canPlayThroughEvent.forTarget(this);
   }
   get onChange() {
-    return html.GlobalEventHandlers.changeEvent.forTarget(this);
+    return html$.GlobalEventHandlers.changeEvent.forTarget(this);
   }
   get onClick() {
-    return html.GlobalEventHandlers.clickEvent.forTarget(this);
+    return html$.GlobalEventHandlers.clickEvent.forTarget(this);
   }
   get onContextMenu() {
-    return html.GlobalEventHandlers.contextMenuEvent.forTarget(this);
+    return html$.GlobalEventHandlers.contextMenuEvent.forTarget(this);
   }
   get onDoubleClick() {
-    return html.GlobalEventHandlers.doubleClickEvent.forTarget(this);
+    return html$.GlobalEventHandlers.doubleClickEvent.forTarget(this);
   }
   get onDrag() {
-    return html.GlobalEventHandlers.dragEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dragEvent.forTarget(this);
   }
   get onDragEnd() {
-    return html.GlobalEventHandlers.dragEndEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dragEndEvent.forTarget(this);
   }
   get onDragEnter() {
-    return html.GlobalEventHandlers.dragEnterEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dragEnterEvent.forTarget(this);
   }
   get onDragLeave() {
-    return html.GlobalEventHandlers.dragLeaveEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dragLeaveEvent.forTarget(this);
   }
   get onDragOver() {
-    return html.GlobalEventHandlers.dragOverEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dragOverEvent.forTarget(this);
   }
   get onDragStart() {
-    return html.GlobalEventHandlers.dragStartEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dragStartEvent.forTarget(this);
   }
   get onDrop() {
-    return html.GlobalEventHandlers.dropEvent.forTarget(this);
+    return html$.GlobalEventHandlers.dropEvent.forTarget(this);
   }
   get onDurationChange() {
-    return html.GlobalEventHandlers.durationChangeEvent.forTarget(this);
+    return html$.GlobalEventHandlers.durationChangeEvent.forTarget(this);
   }
   get onEmptied() {
-    return html.GlobalEventHandlers.emptiedEvent.forTarget(this);
+    return html$.GlobalEventHandlers.emptiedEvent.forTarget(this);
   }
   get onEnded() {
-    return html.GlobalEventHandlers.endedEvent.forTarget(this);
+    return html$.GlobalEventHandlers.endedEvent.forTarget(this);
   }
   get onError() {
-    return html.GlobalEventHandlers.errorEvent.forTarget(this);
+    return html$.GlobalEventHandlers.errorEvent.forTarget(this);
   }
   get onFocus() {
-    return html.GlobalEventHandlers.focusEvent.forTarget(this);
+    return html$.GlobalEventHandlers.focusEvent.forTarget(this);
   }
   get onInput() {
-    return html.GlobalEventHandlers.inputEvent.forTarget(this);
+    return html$.GlobalEventHandlers.inputEvent.forTarget(this);
   }
   get onInvalid() {
-    return html.GlobalEventHandlers.invalidEvent.forTarget(this);
+    return html$.GlobalEventHandlers.invalidEvent.forTarget(this);
   }
   get onKeyDown() {
-    return html.GlobalEventHandlers.keyDownEvent.forTarget(this);
+    return html$.GlobalEventHandlers.keyDownEvent.forTarget(this);
   }
   get onKeyPress() {
-    return html.GlobalEventHandlers.keyPressEvent.forTarget(this);
+    return html$.GlobalEventHandlers.keyPressEvent.forTarget(this);
   }
   get onKeyUp() {
-    return html.GlobalEventHandlers.keyUpEvent.forTarget(this);
+    return html$.GlobalEventHandlers.keyUpEvent.forTarget(this);
   }
   get onLoad() {
-    return html.GlobalEventHandlers.loadEvent.forTarget(this);
+    return html$.GlobalEventHandlers.loadEvent.forTarget(this);
   }
   get onLoadedData() {
-    return html.GlobalEventHandlers.loadedDataEvent.forTarget(this);
+    return html$.GlobalEventHandlers.loadedDataEvent.forTarget(this);
   }
   get onLoadedMetadata() {
-    return html.GlobalEventHandlers.loadedMetadataEvent.forTarget(this);
+    return html$.GlobalEventHandlers.loadedMetadataEvent.forTarget(this);
   }
   get onMouseDown() {
-    return html.GlobalEventHandlers.mouseDownEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseDownEvent.forTarget(this);
   }
   get onMouseEnter() {
-    return html.GlobalEventHandlers.mouseEnterEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseEnterEvent.forTarget(this);
   }
   get onMouseLeave() {
-    return html.GlobalEventHandlers.mouseLeaveEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseLeaveEvent.forTarget(this);
   }
   get onMouseMove() {
-    return html.GlobalEventHandlers.mouseMoveEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseMoveEvent.forTarget(this);
   }
   get onMouseOut() {
-    return html.GlobalEventHandlers.mouseOutEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseOutEvent.forTarget(this);
   }
   get onMouseOver() {
-    return html.GlobalEventHandlers.mouseOverEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseOverEvent.forTarget(this);
   }
   get onMouseUp() {
-    return html.GlobalEventHandlers.mouseUpEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseUpEvent.forTarget(this);
   }
   get onMouseWheel() {
-    return html.GlobalEventHandlers.mouseWheelEvent.forTarget(this);
+    return html$.GlobalEventHandlers.mouseWheelEvent.forTarget(this);
   }
   get onPause() {
-    return html.GlobalEventHandlers.pauseEvent.forTarget(this);
+    return html$.GlobalEventHandlers.pauseEvent.forTarget(this);
   }
   get onPlay() {
-    return html.GlobalEventHandlers.playEvent.forTarget(this);
+    return html$.GlobalEventHandlers.playEvent.forTarget(this);
   }
   get onPlaying() {
-    return html.GlobalEventHandlers.playingEvent.forTarget(this);
+    return html$.GlobalEventHandlers.playingEvent.forTarget(this);
   }
   get onRateChange() {
-    return html.GlobalEventHandlers.rateChangeEvent.forTarget(this);
+    return html$.GlobalEventHandlers.rateChangeEvent.forTarget(this);
   }
   get onReset() {
-    return html.GlobalEventHandlers.resetEvent.forTarget(this);
+    return html$.GlobalEventHandlers.resetEvent.forTarget(this);
   }
   get onResize() {
-    return html.GlobalEventHandlers.resizeEvent.forTarget(this);
+    return html$.GlobalEventHandlers.resizeEvent.forTarget(this);
   }
   get onScroll() {
-    return html.GlobalEventHandlers.scrollEvent.forTarget(this);
+    return html$.GlobalEventHandlers.scrollEvent.forTarget(this);
   }
   get onSeeked() {
-    return html.GlobalEventHandlers.seekedEvent.forTarget(this);
+    return html$.GlobalEventHandlers.seekedEvent.forTarget(this);
   }
   get onSeeking() {
-    return html.GlobalEventHandlers.seekingEvent.forTarget(this);
+    return html$.GlobalEventHandlers.seekingEvent.forTarget(this);
   }
   get onSelect() {
-    return html.GlobalEventHandlers.selectEvent.forTarget(this);
+    return html$.GlobalEventHandlers.selectEvent.forTarget(this);
   }
   get onStalled() {
-    return html.GlobalEventHandlers.stalledEvent.forTarget(this);
+    return html$.GlobalEventHandlers.stalledEvent.forTarget(this);
   }
   get onSubmit() {
-    return html.GlobalEventHandlers.submitEvent.forTarget(this);
+    return html$.GlobalEventHandlers.submitEvent.forTarget(this);
   }
   get onSuspend() {
-    return html.GlobalEventHandlers.suspendEvent.forTarget(this);
+    return html$.GlobalEventHandlers.suspendEvent.forTarget(this);
   }
   get onTimeUpdate() {
-    return html.GlobalEventHandlers.timeUpdateEvent.forTarget(this);
+    return html$.GlobalEventHandlers.timeUpdateEvent.forTarget(this);
   }
   get onVolumeChange() {
-    return html.GlobalEventHandlers.volumeChangeEvent.forTarget(this);
+    return html$.GlobalEventHandlers.volumeChangeEvent.forTarget(this);
   }
   get onWaiting() {
-    return html.GlobalEventHandlers.waitingEvent.forTarget(this);
+    return html$.GlobalEventHandlers.waitingEvent.forTarget(this);
   }
 };
-html.GlobalEventHandlers[dart.implements] = () => [html.EventTarget];
-dart.setSignature(html.GlobalEventHandlers, {
-  constructors: () => ({_: dart.definiteFunctionType(html.GlobalEventHandlers, [])}),
+html$.GlobalEventHandlers[dart.implements] = () => [html$.EventTarget];
+dart.setSignature(html$.GlobalEventHandlers, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.GlobalEventHandlers, [])}),
   getters: () => ({
-    onAbort: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onBlur: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onCanPlay: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onCanPlayThrough: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onChange: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onClick: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onContextMenu: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDoubleClick: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onDrag: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDragEnd: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDragEnter: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDragLeave: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDragOver: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDragStart: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDrop: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onDurationChange: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onEmptied: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onEnded: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onError: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onFocus: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onInput: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onInvalid: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onKeyDown: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    onKeyPress: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    onKeyUp: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    onLoad: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onLoadedData: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onLoadedMetadata: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onMouseDown: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseEnter: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseLeave: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseMove: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseOut: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseOver: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseUp: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    onMouseWheel: dart.definiteFunctionType(async.Stream$(html.WheelEvent), []),
-    onPause: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onPlay: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onPlaying: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onRateChange: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onReset: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onResize: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onScroll: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onSeeked: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onSeeking: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onSelect: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onStalled: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onSubmit: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onSuspend: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onTimeUpdate: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onVolumeChange: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onWaiting: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    onAbort: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onBlur: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onCanPlay: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onCanPlayThrough: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onClick: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onContextMenu: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDoubleClick: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onDrag: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragEnd: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragEnter: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragLeave: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragOver: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDragStart: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDrop: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onDurationChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onEmptied: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onEnded: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onError: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onFocus: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onInput: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onInvalid: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onKeyDown: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    onKeyPress: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    onKeyUp: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    onLoad: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onLoadedData: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onLoadedMetadata: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onMouseDown: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseEnter: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseLeave: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseMove: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseOut: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseOver: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseUp: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    onMouseWheel: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
+    onPause: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onPlay: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onPlaying: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onRateChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onReset: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onResize: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onScroll: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSeeked: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSeeking: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSelect: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onStalled: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSubmit: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onSuspend: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onTimeUpdate: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onVolumeChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onWaiting: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   sfields: () => ({
     abortEvent: EventStreamProviderOfEvent(),
@@ -75079,7 +75082,7 @@
     waitingEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineExtensionMembers(html.GlobalEventHandlers, [
+dart.defineExtensionMembers(html$.GlobalEventHandlers, [
   'onAbort',
   'onBlur',
   'onCanPlay',
@@ -75133,7 +75136,7 @@
   'onVolumeChange',
   'onWaiting'
 ]);
-dart.defineLazy(html.GlobalEventHandlers, {
+dart.defineLazy(html$.GlobalEventHandlers, {
   get abortEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('abort'));
   },
@@ -75294,12 +75297,12 @@
 dart.defineExtensionNames([
   'color'
 ]);
-html.HRElement = class HRElement extends html.HtmlElement {
+html$.HRElement = class HRElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.HRElement._check(html.document[dartx.createElement]("hr"));
+    return html$.HRElement._check(html$.document[dartx.createElement]("hr"));
   }
   created() {
     this[dartx.color] = null;
@@ -75312,22 +75315,22 @@
     this.color = value;
   }
 };
-dart.defineNamedConstructor(html.HRElement, 'created');
-dart.setSignature(html.HRElement, {
+dart.defineNamedConstructor(html$.HRElement, 'created');
+dart.setSignature(html$.HRElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.HRElement, []),
-    new: dart.definiteFunctionType(html.HRElement, []),
-    created: dart.definiteFunctionType(html.HRElement, [])
+    _: dart.definiteFunctionType(html$.HRElement, []),
+    new: dart.definiteFunctionType(html$.HRElement, []),
+    created: dart.definiteFunctionType(html$.HRElement, [])
   }),
   fields: () => ({[dartx.color]: core.String})
 });
-dart.registerExtension(dart.global.HTMLHRElement, html.HRElement);
+dart.registerExtension(dart.global.HTMLHRElement, html$.HRElement);
 const _initHashChangeEvent = Symbol('_initHashChangeEvent');
 dart.defineExtensionNames([
   'newUrl',
   'oldUrl'
 ]);
-html.HashChangeEvent = class HashChangeEvent extends html.Event {
+html$.HashChangeEvent = class HashChangeEvent extends html$.Event {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : true;
@@ -75340,9 +75343,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.HashChangeEvent._create_1(type, eventInitDict_1);
+      return html$.HashChangeEvent._create_1(type, eventInitDict_1);
     }
-    return html.HashChangeEvent._create_2(type);
+    return html$.HashChangeEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.HashChangeEvent(type, eventInitDict);
@@ -75363,10 +75366,10 @@
     return this.initHashChangeEvent.apply(this, args);
   }
 };
-dart.setSignature(html.HashChangeEvent, {
+dart.setSignature(html$.HashChangeEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.HashChangeEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, oldUrl: core.String, newUrl: core.String}),
-    _: dart.definiteFunctionType(html.HashChangeEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.HashChangeEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, oldUrl: core.String, newUrl: core.String}),
+    _: dart.definiteFunctionType(html$.HashChangeEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.newUrl]: core.String,
@@ -75375,50 +75378,50 @@
   methods: () => ({[_initHashChangeEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.HashChangeEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.HashChangeEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.HashChangeEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.HashChangeEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.HashChangeEvent, html.HashChangeEvent);
-html.HeadElement = class HeadElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HashChangeEvent, html$.HashChangeEvent);
+html$.HeadElement = class HeadElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.HeadElement._check(html.document[dartx.createElement]("head"));
+    return html$.HeadElement._check(html$.document[dartx.createElement]("head"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.HeadElement, 'created');
-dart.setSignature(html.HeadElement, {
+dart.defineNamedConstructor(html$.HeadElement, 'created');
+dart.setSignature(html$.HeadElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.HeadElement, []),
-    new: dart.definiteFunctionType(html.HeadElement, []),
-    created: dart.definiteFunctionType(html.HeadElement, [])
+    _: dart.definiteFunctionType(html$.HeadElement, []),
+    new: dart.definiteFunctionType(html$.HeadElement, []),
+    created: dart.definiteFunctionType(html$.HeadElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLHeadElement, html.HeadElement);
-html.Headers = class Headers extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.HTMLHeadElement, html$.HeadElement);
+html$.Headers = class Headers extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(input) {
     if (input === void 0) input = null;
     if (input == null) {
-      return html.Headers._create_1();
+      return html$.Headers._create_1();
     }
-    if (html.Headers.is(input)) {
-      return html.Headers._create_2(input);
+    if (html$.Headers.is(input)) {
+      return html$.Headers._create_2(input);
     }
     if (core.Map.is(input)) {
       let input_1 = html_common.convertDartToNative_Dictionary(input);
-      return html.Headers._create_3(input_1);
+      return html$.Headers._create_3(input_1);
     }
     if (ListOfObject().is(input)) {
-      return html.Headers._create_4(input);
+      return html$.Headers._create_4(input);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -75435,60 +75438,60 @@
     return new self.Headers(input);
   }
 };
-dart.setSignature(html.Headers, {
+dart.setSignature(html$.Headers, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.Headers, []),
-    new: dart.definiteFunctionType(html.Headers, [], [dart.dynamic])
+    _: dart.definiteFunctionType(html$.Headers, []),
+    new: dart.definiteFunctionType(html$.Headers, [], [dart.dynamic])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.Headers, []),
-    _create_2: dart.definiteFunctionType(html.Headers, [dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.Headers, [dart.dynamic]),
-    _create_4: dart.definiteFunctionType(html.Headers, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.Headers, []),
+    _create_2: dart.definiteFunctionType(html$.Headers, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.Headers, [dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.Headers, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3', '_create_4']
 });
-dart.registerExtension(dart.global.Headers, html.Headers);
-html.HeadingElement = class HeadingElement extends html.HtmlElement {
+dart.registerExtension(dart.global.Headers, html$.Headers);
+html$.HeadingElement = class HeadingElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static h1() {
-    return html.HeadingElement._check(html.document[dartx.createElement]("h1"));
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h1"));
   }
   static h2() {
-    return html.HeadingElement._check(html.document[dartx.createElement]("h2"));
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h2"));
   }
   static h3() {
-    return html.HeadingElement._check(html.document[dartx.createElement]("h3"));
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h3"));
   }
   static h4() {
-    return html.HeadingElement._check(html.document[dartx.createElement]("h4"));
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h4"));
   }
   static h5() {
-    return html.HeadingElement._check(html.document[dartx.createElement]("h5"));
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h5"));
   }
   static h6() {
-    return html.HeadingElement._check(html.document[dartx.createElement]("h6"));
+    return html$.HeadingElement._check(html$.document[dartx.createElement]("h6"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.HeadingElement, 'created');
-dart.setSignature(html.HeadingElement, {
+dart.defineNamedConstructor(html$.HeadingElement, 'created');
+dart.setSignature(html$.HeadingElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.HeadingElement, []),
-    h1: dart.definiteFunctionType(html.HeadingElement, []),
-    h2: dart.definiteFunctionType(html.HeadingElement, []),
-    h3: dart.definiteFunctionType(html.HeadingElement, []),
-    h4: dart.definiteFunctionType(html.HeadingElement, []),
-    h5: dart.definiteFunctionType(html.HeadingElement, []),
-    h6: dart.definiteFunctionType(html.HeadingElement, []),
-    created: dart.definiteFunctionType(html.HeadingElement, [])
+    _: dart.definiteFunctionType(html$.HeadingElement, []),
+    h1: dart.definiteFunctionType(html$.HeadingElement, []),
+    h2: dart.definiteFunctionType(html$.HeadingElement, []),
+    h3: dart.definiteFunctionType(html$.HeadingElement, []),
+    h4: dart.definiteFunctionType(html$.HeadingElement, []),
+    h5: dart.definiteFunctionType(html$.HeadingElement, []),
+    h6: dart.definiteFunctionType(html$.HeadingElement, []),
+    created: dart.definiteFunctionType(html$.HeadingElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLHeadingElement, html.HeadingElement);
+dart.registerExtension(dart.global.HTMLHeadingElement, html$.HeadingElement);
 const _get_options = Symbol('_get_options');
 const _get_state = Symbol('_get_state');
 const _pushState_1 = Symbol('_pushState_1');
@@ -75505,7 +75508,7 @@
   'replaceState',
   'length'
 ]);
-html.History = class History extends _interceptors.Interceptor {
+html$.History = class History extends _interceptors.Interceptor {
   static get supportsState() {
     return !!window.history.pushState;
   }
@@ -75573,9 +75576,9 @@
     return this.replaceState.apply(this, args);
   }
 };
-html.History[dart.implements] = () => [html.HistoryBase];
-dart.setSignature(html.History, {
-  constructors: () => ({_: dart.definiteFunctionType(html.History, [])}),
+html$.History[dart.implements] = () => [html$.HistoryBase];
+dart.setSignature(html$.History, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.History, [])}),
   fields: () => ({
     [dartx.length]: core.int,
     [_get_options]: dart.dynamic,
@@ -75598,13 +75601,13 @@
   }),
   sgetters: () => ({supportsState: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.History, html.History);
+dart.registerExtension(dart.global.History, html$.History);
 dart.defineExtensionNames([
   'deviceId',
   'deviceName',
   'hardwareUnitId'
 ]);
-html.VRDevice = class VRDevice extends _interceptors.Interceptor {
+html$.VRDevice = class VRDevice extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -75618,20 +75621,20 @@
     return this.hardwareUnitId;
   }
 };
-dart.setSignature(html.VRDevice, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VRDevice, [])}),
+dart.setSignature(html$.VRDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VRDevice, [])}),
   fields: () => ({
     [dartx.deviceId]: core.String,
     [dartx.deviceName]: core.String,
     [dartx.hardwareUnitId]: core.String
   })
 });
-dart.registerExtension(dart.global.VRDevice, html.VRDevice);
+dart.registerExtension(dart.global.VRDevice, html$.VRDevice);
 dart.defineExtensionNames([
   'getEyeParameters',
   'setFieldOfView'
 ]);
-html.HmdvrDevice = class HmdvrDevice extends html.VRDevice {
+html$.HmdvrDevice = class HmdvrDevice extends html$.VRDevice {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -75642,14 +75645,14 @@
     return this.setFieldOfView.apply(this, args);
   }
 };
-dart.setSignature(html.HmdvrDevice, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HmdvrDevice, [])}),
+dart.setSignature(html$.HmdvrDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HmdvrDevice, [])}),
   methods: () => ({
-    [dartx.getEyeParameters]: dart.definiteFunctionType(html.VREyeParameters, [core.String]),
-    [dartx.setFieldOfView]: dart.definiteFunctionType(dart.void, [], [html.VRFieldOfView, html.VRFieldOfView])
+    [dartx.getEyeParameters]: dart.definiteFunctionType(html$.VREyeParameters, [core.String]),
+    [dartx.setFieldOfView]: dart.definiteFunctionType(dart.void, [], [html$.VRFieldOfView, html$.VRFieldOfView])
   })
 });
-dart.registerExtension(dart.global.HMDVRDevice, html.HmdvrDevice);
+dart.registerExtension(dart.global.HMDVRDevice, html$.HmdvrDevice);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -75662,7 +75665,7 @@
   'item',
   'namedItem'
 ]);
-html.HtmlCollection = class HtmlCollection extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.Node), html.ImmutableListMixin$(html.Node)) {
+html$.HtmlCollection = class HtmlCollection extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -75711,19 +75714,19 @@
     return this.namedItem.apply(this, args);
   }
 };
-html.HtmlCollection[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
-dart.setSignature(html.HtmlCollection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HtmlCollection, [])}),
+html$.HtmlCollection[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
+dart.setSignature(html$.HtmlCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlCollection, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.Node, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.Node]),
-    [dartx.item]: dart.definiteFunctionType(html.Node, [core.int]),
+    [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    [dartx.item]: dart.definiteFunctionType(html$.Node, [core.int]),
     [dartx.namedItem]: dart.definiteFunctionType(core.Object, [core.String])
   })
 });
-dart.registerExtension(dart.global.HTMLCollection, html.HtmlCollection);
+dart.registerExtension(dart.global.HTMLCollection, html$.HtmlCollection);
 dart.defineExtensionNames([
   'caretRangeFromPoint',
   'elementFromPoint',
@@ -75744,7 +75747,7 @@
   'createElementUpgrader',
   'body'
 ]);
-html.HtmlDocument = class HtmlDocument extends html.Document {
+html$.HtmlDocument = class HtmlDocument extends html$.Document {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -75764,10 +75767,10 @@
     return !!document.getCSSCanvasContext;
   }
   [dartx.getCssCanvasContext](contextId, name, width, height) {
-    return html.CanvasRenderingContext._check(this[_getCssCanvasContext](contextId, name, width, height));
+    return html$.CanvasRenderingContext._check(this[_getCssCanvasContext](contextId, name, width, height));
   }
   get [dartx.head]() {
-    return this[_head];
+    return this[_head$0];
   }
   get [dartx.lastModified]() {
     return this[_lastModified];
@@ -75798,7 +75801,7 @@
   }
   [dartx.registerElement](tag, customElementClass, opts) {
     let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
-    html._registerCustomElement(window, this, tag, customElementClass, extendsTag);
+    html$._registerCustomElement(window, this, tag, customElementClass, extendsTag);
   }
   [dartx.register](tag, customElementClass, opts) {
     let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
@@ -75817,54 +75820,54 @@
     return 'visibilitychange';
   }
   get [dartx.onVisibilityChange]() {
-    return html.HtmlDocument.visibilityChangeEvent.forTarget(this);
+    return html$.HtmlDocument.visibilityChangeEvent.forTarget(this);
   }
   [dartx.createElementUpgrader](type, opts) {
     let extendsTag = opts && 'extendsTag' in opts ? opts.extendsTag : null;
-    return new html._JSElementUpgrader(this, type, extendsTag);
+    return new html$._JSElementUpgrader(this, type, extendsTag);
   }
 };
-dart.setSignature(html.HtmlDocument, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HtmlDocument, [])}),
-  fields: () => ({[dartx.body]: html.BodyElement}),
+dart.setSignature(html$.HtmlDocument, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlDocument, [])}),
+  fields: () => ({[dartx.body]: html$.BodyElement}),
   getters: () => ({
-    [dartx.head]: dart.definiteFunctionType(html.HeadElement, []),
+    [dartx.head]: dart.definiteFunctionType(html$.HeadElement, []),
     [dartx.lastModified]: dart.definiteFunctionType(core.String, []),
     [dartx.preferredStylesheetSet]: dart.definiteFunctionType(core.String, []),
     [dartx.referrer]: dart.definiteFunctionType(core.String, []),
     [dartx.selectedStylesheetSet]: dart.definiteFunctionType(core.String, []),
-    [dartx.styleSheets]: dart.definiteFunctionType(core.List$(html.StyleSheet), []),
+    [dartx.styleSheets]: dart.definiteFunctionType(core.List$(html$.StyleSheet), []),
     [dartx.title]: dart.definiteFunctionType(core.String, []),
-    [dartx.onVisibilityChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onVisibilityChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   setters: () => ({
     [dartx.selectedStylesheetSet]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.title]: dart.definiteFunctionType(dart.void, [core.String])
   }),
   methods: () => ({
-    [dartx.caretRangeFromPoint]: dart.definiteFunctionType(html.Range, [core.int, core.int]),
-    [dartx.elementFromPoint]: dart.definiteFunctionType(html.Element, [core.int, core.int]),
-    [dartx.getCssCanvasContext]: dart.definiteFunctionType(html.CanvasRenderingContext, [core.String, core.String, core.int, core.int]),
+    [dartx.caretRangeFromPoint]: dart.definiteFunctionType(html$.Range, [core.int, core.int]),
+    [dartx.elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
+    [dartx.getCssCanvasContext]: dart.definiteFunctionType(html$.CanvasRenderingContext, [core.String, core.String, core.int, core.int]),
     [dartx.registerElement]: dart.definiteFunctionType(dart.void, [core.String, core.Type], {extendsTag: core.String}),
     [dartx.register]: dart.definiteFunctionType(dart.void, [core.String, core.Type], {extendsTag: core.String}),
-    [dartx.createElementUpgrader]: dart.definiteFunctionType(html.ElementUpgrader, [core.Type], {extendsTag: core.String})
+    [dartx.createElementUpgrader]: dart.definiteFunctionType(html$.ElementUpgrader, [core.Type], {extendsTag: core.String})
   }),
   sfields: () => ({visibilityChangeEvent: EventStreamProviderOfEvent()}),
   sgetters: () => ({supportsCssCanvasContext: dart.definiteFunctionType(core.bool, [])}),
-  statics: () => ({_determineVisibilityChangeEventType: dart.definiteFunctionType(core.String, [html.EventTarget])}),
+  statics: () => ({_determineVisibilityChangeEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])}),
   names: ['_determineVisibilityChangeEventType']
 });
-dart.defineLazy(html.HtmlDocument, {
+dart.defineLazy(html$.HtmlDocument, {
   get visibilityChangeEvent() {
-    return dart.const(new (_CustomEventStreamProviderOfEvent())(html.HtmlDocument._determineVisibilityChangeEventType));
+    return dart.const(new (_CustomEventStreamProviderOfEvent())(html$.HtmlDocument._determineVisibilityChangeEventType));
   }
 });
-dart.registerExtension(dart.global.HTMLDocument, html.HtmlDocument);
+dart.registerExtension(dart.global.HTMLDocument, html$.HtmlDocument);
 dart.defineExtensionNames([
   'item',
   'namedItem'
 ]);
-html.HtmlFormControlsCollection = class HtmlFormControlsCollection extends html.HtmlCollection {
+html$.HtmlFormControlsCollection = class HtmlFormControlsCollection extends html$.HtmlCollection {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -75875,32 +75878,32 @@
     return this.namedItem.apply(this, args);
   }
 };
-dart.setSignature(html.HtmlFormControlsCollection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HtmlFormControlsCollection, [])})
+dart.setSignature(html$.HtmlFormControlsCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlFormControlsCollection, [])})
 });
-dart.registerExtension(dart.global.HTMLFormControlsCollection, html.HtmlFormControlsCollection);
-html.HtmlHtmlElement = class HtmlHtmlElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLFormControlsCollection, html$.HtmlFormControlsCollection);
+html$.HtmlHtmlElement = class HtmlHtmlElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.HtmlHtmlElement._check(html.document[dartx.createElement]("html"));
+    return html$.HtmlHtmlElement._check(html$.document[dartx.createElement]("html"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.HtmlHtmlElement, 'created');
-dart.setSignature(html.HtmlHtmlElement, {
+dart.defineNamedConstructor(html$.HtmlHtmlElement, 'created');
+dart.setSignature(html$.HtmlHtmlElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.HtmlHtmlElement, []),
-    new: dart.definiteFunctionType(html.HtmlHtmlElement, []),
-    created: dart.definiteFunctionType(html.HtmlHtmlElement, [])
+    _: dart.definiteFunctionType(html$.HtmlHtmlElement, []),
+    new: dart.definiteFunctionType(html$.HtmlHtmlElement, []),
+    created: dart.definiteFunctionType(html$.HtmlHtmlElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLHtmlElement, html.HtmlHtmlElement);
+dart.registerExtension(dart.global.HTMLHtmlElement, html$.HtmlHtmlElement);
 const _item = Symbol('_item');
-html.HtmlOptionsCollection = class HtmlOptionsCollection extends html.HtmlCollection {
+html$.HtmlOptionsCollection = class HtmlOptionsCollection extends html$.HtmlCollection {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -75908,11 +75911,11 @@
     return this.item.apply(this, args);
   }
 };
-dart.setSignature(html.HtmlOptionsCollection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HtmlOptionsCollection, [])}),
-  methods: () => ({[_item]: dart.definiteFunctionType(html.Node, [core.int])})
+dart.setSignature(html$.HtmlOptionsCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HtmlOptionsCollection, [])}),
+  methods: () => ({[_item]: dart.definiteFunctionType(html$.Node, [core.int])})
 });
-dart.registerExtension(dart.global.HTMLOptionsCollection, html.HtmlOptionsCollection);
+dart.registerExtension(dart.global.HTMLOptionsCollection, html$.HtmlOptionsCollection);
 const _get_response = Symbol('_get_response');
 dart.defineExtensionNames([
   'onAbort',
@@ -75923,42 +75926,42 @@
   'onProgress',
   'onTimeout'
 ]);
-html.HttpRequestEventTarget = class HttpRequestEventTarget extends html.EventTarget {
+html$.HttpRequestEventTarget = class HttpRequestEventTarget extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get [dartx.onAbort]() {
-    return html.HttpRequestEventTarget.abortEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.abortEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.HttpRequestEventTarget.errorEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.errorEvent.forTarget(this);
   }
   get [dartx.onLoad]() {
-    return html.HttpRequestEventTarget.loadEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.loadEvent.forTarget(this);
   }
   get [dartx.onLoadEnd]() {
-    return html.HttpRequestEventTarget.loadEndEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.loadEndEvent.forTarget(this);
   }
   get [dartx.onLoadStart]() {
-    return html.HttpRequestEventTarget.loadStartEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.loadStartEvent.forTarget(this);
   }
   get [dartx.onProgress]() {
-    return html.HttpRequestEventTarget.progressEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.progressEvent.forTarget(this);
   }
   get [dartx.onTimeout]() {
-    return html.HttpRequestEventTarget.timeoutEvent.forTarget(this);
+    return html$.HttpRequestEventTarget.timeoutEvent.forTarget(this);
   }
 };
-dart.setSignature(html.HttpRequestEventTarget, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HttpRequestEventTarget, [])}),
+dart.setSignature(html$.HttpRequestEventTarget, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HttpRequestEventTarget, [])}),
   getters: () => ({
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), []),
-    [dartx.onTimeout]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), [])
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadEnd]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), []),
+    [dartx.onTimeout]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
   }),
   sfields: () => ({
     abortEvent: EventStreamProviderOfProgressEvent(),
@@ -75970,7 +75973,7 @@
     timeoutEvent: EventStreamProviderOfProgressEvent()
   })
 });
-dart.defineLazy(html.HttpRequestEventTarget, {
+dart.defineLazy(html$.HttpRequestEventTarget, {
   get abortEvent() {
     return dart.const(new (EventStreamProviderOfProgressEvent())('abort'));
   },
@@ -75993,7 +75996,7 @@
     return dart.const(new (EventStreamProviderOfProgressEvent())('timeout'));
   }
 });
-dart.registerExtension(dart.global.XMLHttpRequestEventTarget, html.HttpRequestEventTarget);
+dart.registerExtension(dart.global.XMLHttpRequestEventTarget, html$.HttpRequestEventTarget);
 dart.defineExtensionNames([
   'responseHeaders',
   'open',
@@ -76016,11 +76019,11 @@
   'upload',
   'withCredentials'
 ]);
-html.HttpRequest = class HttpRequest extends html.HttpRequestEventTarget {
+html$.HttpRequest = class HttpRequest extends html$.HttpRequestEventTarget {
   static getString(url, opts) {
     let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
     let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
-    return html.HttpRequest.request(url, {withCredentials: withCredentials, onProgress: onProgress}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
+    return html$.HttpRequest.request(url, {withCredentials: withCredentials, onProgress: onProgress}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
   }
   static postFormData(url, data, opts) {
     let withCredentials = opts && 'withCredentials' in opts ? opts.withCredentials : null;
@@ -76035,8 +76038,8 @@
     if (requestHeaders == null) {
       requestHeaders = dart.map({}, core.String, core.String);
     }
-    requestHeaders[dartx.putIfAbsent]('Content-Type', dart.fn(() => 'application/x-www-form-urlencoded; charset=UTF-8', VoidToString()));
-    return html.HttpRequest.request(url, {method: 'POST', withCredentials: withCredentials, responseType: responseType, requestHeaders: requestHeaders, sendData: formData, onProgress: onProgress});
+    requestHeaders[dartx.putIfAbsent]('Content-Type', dart.fn(() => 'application/x-www-form-urlencoded; charset=UTF-8', VoidToString$()));
+    return html$.HttpRequest.request(url, {method: 'POST', withCredentials: withCredentials, responseType: responseType, requestHeaders: requestHeaders, sendData: formData, onProgress: onProgress});
   }
   static request(url, opts) {
     let method = opts && 'method' in opts ? opts.method : null;
@@ -76047,7 +76050,7 @@
     let sendData = opts && 'sendData' in opts ? opts.sendData : null;
     let onProgress = opts && 'onProgress' in opts ? opts.onProgress : null;
     let completer = CompleterOfHttpRequest().new();
-    let xhr = html.HttpRequest.new();
+    let xhr = html$.HttpRequest.new();
     if (method == null) {
       method = 'GET';
     }
@@ -76089,26 +76092,26 @@
     return completer.future;
   }
   static get supportsProgressEvent() {
-    let xhr = html.HttpRequest.new();
+    let xhr = html$.HttpRequest.new();
     return "onprogress" in xhr;
   }
   static get supportsCrossOrigin() {
-    let xhr = html.HttpRequest.new();
+    let xhr = html$.HttpRequest.new();
     return "withCredentials" in xhr;
   }
   static get supportsLoadEndEvent() {
-    let xhr = html.HttpRequest.new();
+    let xhr = html$.HttpRequest.new();
     return "onloadend" in xhr;
   }
   static get supportsOverrideMimeType() {
-    let xhr = html.HttpRequest.new();
+    let xhr = html$.HttpRequest.new();
     return "overrideMimeType" in xhr;
   }
   static requestCrossOrigin(url, opts) {
     let method = opts && 'method' in opts ? opts.method : null;
     let sendData = opts && 'sendData' in opts ? opts.sendData : null;
-    if (dart.test(html.HttpRequest.supportsCrossOrigin)) {
-      return html.HttpRequest.request(url, {method: method, sendData: sendData}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
+    if (dart.test(html$.HttpRequest.supportsCrossOrigin)) {
+      return html$.HttpRequest.request(url, {method: method, sendData: sendData}).then(core.String)(dart.fn(xhr => xhr[dartx.responseText], HttpRequestToString()));
     }
     let completer = CompleterOfString().new();
     if (method == null) {
@@ -76119,10 +76122,10 @@
     xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
       let response = xhr.responseText;
       completer.complete(response);
-    }, dynamicToNull()), 1);
+    }, dynamicToNull$()), 1);
     xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
       completer.completeError(e);
-    }, dynamicToNull()), 1);
+    }, dynamicToNull$()), 1);
     xhr.onprogress = {};
     xhr.ontimeout = {};
     xhr.timeout = Number.MAX_VALUE;
@@ -76165,7 +76168,7 @@
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.HttpRequest._create_1();
+    return html$.HttpRequest._create_1();
   }
   static _create_1() {
     return new XMLHttpRequest();
@@ -76174,7 +76177,7 @@
     return this.readyState;
   }
   get [dartx.response]() {
-    return html._convertNativeToDart_XHR_Response(this[_get_response]);
+    return html$._convertNativeToDart_XHR_Response(this[_get_response]);
   }
   get [_get_response]() {
     return this.response;
@@ -76234,13 +76237,13 @@
     return this.setRequestHeader.apply(this, args);
   }
   get [dartx.onReadyStateChange]() {
-    return html.HttpRequest.readyStateChangeEvent.forTarget(this);
+    return html$.HttpRequest.readyStateChangeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.HttpRequest, {
+dart.setSignature(html$.HttpRequest, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.HttpRequest, []),
-    new: dart.definiteFunctionType(html.HttpRequest, [])
+    _: dart.definiteFunctionType(html$.HttpRequest, []),
+    new: dart.definiteFunctionType(html$.HttpRequest, [])
   }),
   fields: () => ({
     [dartx.readyState]: core.int,
@@ -76248,17 +76251,17 @@
     [dartx.responseText]: core.String,
     [dartx.responseType]: core.String,
     [dartx.responseUrl]: core.String,
-    [dartx.responseXml]: html.Document,
+    [dartx.responseXml]: html$.Document,
     [dartx.status]: core.int,
     [dartx.statusText]: core.String,
     [dartx.timeout]: core.int,
-    [dartx.upload]: html.HttpRequestUpload,
+    [dartx.upload]: html$.HttpRequestUpload,
     [dartx.withCredentials]: core.bool
   }),
   getters: () => ({
     [dartx.responseHeaders]: dart.definiteFunctionType(core.Map$(core.String, core.String), []),
     [dartx.response]: dart.definiteFunctionType(dart.dynamic, []),
-    [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html.ProgressEvent), [])
+    [dartx.onReadyStateChange]: dart.definiteFunctionType(async.Stream$(html$.ProgressEvent), [])
   }),
   methods: () => ({
     [dartx.open]: dart.definiteFunctionType(dart.void, [core.String, core.String], {async: core.bool, user: core.String, password: core.String}),
@@ -76285,33 +76288,33 @@
   }),
   statics: () => ({
     getString: dart.definiteFunctionType(async.Future$(core.String), [core.String], {withCredentials: core.bool, onProgress: ProgressEventTovoid()}),
-    postFormData: dart.definiteFunctionType(async.Future$(html.HttpRequest), [core.String, MapOfString$String()], {withCredentials: core.bool, responseType: core.String, requestHeaders: MapOfString$String(), onProgress: ProgressEventTovoid()}),
-    request: dart.definiteFunctionType(async.Future$(html.HttpRequest), [core.String], {method: core.String, withCredentials: core.bool, responseType: core.String, mimeType: core.String, requestHeaders: MapOfString$String(), sendData: dart.dynamic, onProgress: ProgressEventTovoid()}),
+    postFormData: dart.definiteFunctionType(async.Future$(html$.HttpRequest), [core.String, MapOfString$String()], {withCredentials: core.bool, responseType: core.String, requestHeaders: MapOfString$String(), onProgress: ProgressEventTovoid()}),
+    request: dart.definiteFunctionType(async.Future$(html$.HttpRequest), [core.String], {method: core.String, withCredentials: core.bool, responseType: core.String, mimeType: core.String, requestHeaders: MapOfString$String(), sendData: dart.dynamic, onProgress: ProgressEventTovoid()}),
     requestCrossOrigin: dart.definiteFunctionType(async.Future$(core.String), [core.String], {method: core.String, sendData: core.String}),
-    _create_1: dart.definiteFunctionType(html.HttpRequest, [])
+    _create_1: dart.definiteFunctionType(html$.HttpRequest, [])
   }),
   names: ['getString', 'postFormData', 'request', 'requestCrossOrigin', '_create_1']
 });
-html.HttpRequest.DONE = 4;
-html.HttpRequest.HEADERS_RECEIVED = 2;
-html.HttpRequest.LOADING = 3;
-html.HttpRequest.OPENED = 1;
-html.HttpRequest.UNSENT = 0;
-dart.defineLazy(html.HttpRequest, {
+html$.HttpRequest.DONE = 4;
+html$.HttpRequest.HEADERS_RECEIVED = 2;
+html$.HttpRequest.LOADING = 3;
+html$.HttpRequest.OPENED = 1;
+html$.HttpRequest.UNSENT = 0;
+dart.defineLazy(html$.HttpRequest, {
   get readyStateChangeEvent() {
     return dart.const(new (EventStreamProviderOfProgressEvent())('readystatechange'));
   }
 });
-dart.registerExtension(dart.global.XMLHttpRequest, html.HttpRequest);
-html.HttpRequestUpload = class HttpRequestUpload extends html.HttpRequestEventTarget {
+dart.registerExtension(dart.global.XMLHttpRequest, html$.HttpRequest);
+html$.HttpRequestUpload = class HttpRequestUpload extends html$.HttpRequestEventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.HttpRequestUpload, {
-  constructors: () => ({_: dart.definiteFunctionType(html.HttpRequestUpload, [])})
+dart.setSignature(html$.HttpRequestUpload, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.HttpRequestUpload, [])})
 });
-dart.registerExtension(dart.global.XMLHttpRequestUpload, html.HttpRequestUpload);
+dart.registerExtension(dart.global.XMLHttpRequestUpload, html$.HttpRequestUpload);
 const _get_contentWindow = Symbol('_get_contentWindow');
 dart.defineExtensionNames([
   'contentWindow',
@@ -76323,12 +76326,12 @@
   'srcdoc',
   'width'
 ]);
-html.IFrameElement = class IFrameElement extends html.HtmlElement {
+html$.IFrameElement = class IFrameElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.IFrameElement._check(html.document[dartx.createElement]("iframe"));
+    return html$.IFrameElement._check(html$.document[dartx.createElement]("iframe"));
   }
   created() {
     this[dartx.allowFullscreen] = null;
@@ -76348,7 +76351,7 @@
     this.allowFullscreen = value;
   }
   get [dartx.contentWindow]() {
-    return html._convertNativeToDart_Window(this[_get_contentWindow]);
+    return html$._convertNativeToDart_Window(this[_get_contentWindow]);
   }
   get [_get_contentWindow]() {
     return this.contentWindow;
@@ -76387,31 +76390,31 @@
     this.width = value;
   }
 };
-dart.defineNamedConstructor(html.IFrameElement, 'created');
-dart.setSignature(html.IFrameElement, {
+dart.defineNamedConstructor(html$.IFrameElement, 'created');
+dart.setSignature(html$.IFrameElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.IFrameElement, []),
-    new: dart.definiteFunctionType(html.IFrameElement, []),
-    created: dart.definiteFunctionType(html.IFrameElement, [])
+    _: dart.definiteFunctionType(html$.IFrameElement, []),
+    new: dart.definiteFunctionType(html$.IFrameElement, []),
+    created: dart.definiteFunctionType(html$.IFrameElement, [])
   }),
   fields: () => ({
     [dartx.allowFullscreen]: core.bool,
     [_get_contentWindow]: dart.dynamic,
     [dartx.height]: core.String,
     [dartx.name]: core.String,
-    [dartx.sandbox]: html.DomSettableTokenList,
+    [dartx.sandbox]: html$.DomSettableTokenList,
     [dartx.src]: core.String,
     [dartx.srcdoc]: core.String,
     [dartx.width]: core.String
   }),
-  getters: () => ({[dartx.contentWindow]: dart.definiteFunctionType(html.WindowBase, [])})
+  getters: () => ({[dartx.contentWindow]: dart.definiteFunctionType(html$.WindowBase, [])})
 });
-dart.registerExtension(dart.global.HTMLIFrameElement, html.IFrameElement);
+dart.registerExtension(dart.global.HTMLIFrameElement, html$.IFrameElement);
 dart.defineExtensionNames([
   'height',
   'width'
 ]);
-html.ImageBitmap = class ImageBitmap extends _interceptors.Interceptor {
+html$.ImageBitmap = class ImageBitmap extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -76422,33 +76425,33 @@
     return this.width;
   }
 };
-dart.setSignature(html.ImageBitmap, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ImageBitmap, [])}),
+dart.setSignature(html$.ImageBitmap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ImageBitmap, [])}),
   fields: () => ({
     [dartx.height]: core.int,
     [dartx.width]: core.int
   })
 });
-dart.registerExtension(dart.global.ImageBitmap, html.ImageBitmap);
+dart.registerExtension(dart.global.ImageBitmap, html$.ImageBitmap);
 dart.defineExtensionNames([
   'data',
   'height',
   'width'
 ]);
-html.ImageData = class ImageData extends _interceptors.Interceptor {
+html$.ImageData = class ImageData extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(data_OR_sw, sh_OR_sw, sh) {
     if (sh === void 0) sh = null;
     if (typeof sh_OR_sw == 'number' && typeof data_OR_sw == 'number' && sh == null) {
-      return html.ImageData._create_1(data_OR_sw, sh_OR_sw);
+      return html$.ImageData._create_1(data_OR_sw, sh_OR_sw);
     }
     if (typeof sh_OR_sw == 'number' && typed_data.Uint8ClampedList.is(data_OR_sw) && sh == null) {
-      return html.ImageData._create_2(data_OR_sw, sh_OR_sw);
+      return html$.ImageData._create_2(data_OR_sw, sh_OR_sw);
     }
     if (typeof sh == 'number' && typeof sh_OR_sw == 'number' && typed_data.Uint8ClampedList.is(data_OR_sw)) {
-      return html.ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
+      return html$.ImageData._create_3(data_OR_sw, sh_OR_sw, sh);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -76471,10 +76474,10 @@
     return this.width;
   }
 };
-dart.setSignature(html.ImageData, {
+dart.setSignature(html$.ImageData, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ImageData, []),
-    new: dart.definiteFunctionType(html.ImageData, [dart.dynamic, core.int], [core.int])
+    _: dart.definiteFunctionType(html$.ImageData, []),
+    new: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, core.int], [core.int])
   }),
   fields: () => ({
     [dartx.data]: typed_data.Uint8ClampedList,
@@ -76482,13 +76485,13 @@
     [dartx.width]: core.int
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ImageData, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ImageData, [dart.dynamic, dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.ImageData, [dart.dynamic, dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.ImageData, [dart.dynamic, dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3']
 });
-dart.registerExtension(dart.global.ImageData, html.ImageData);
+dart.registerExtension(dart.global.ImageData, html$.ImageData);
 dart.defineExtensionNames([
   'alt',
   'complete',
@@ -76504,7 +76507,7 @@
   'useMap',
   'width'
 ]);
-html.ImageElement = class ImageElement extends html.HtmlElement {
+html$.ImageElement = class ImageElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -76512,7 +76515,7 @@
     let src = opts && 'src' in opts ? opts.src : null;
     let width = opts && 'width' in opts ? opts.width : null;
     let height = opts && 'height' in opts ? opts.height : null;
-    let e = html.ImageElement._check(html.document[dartx.createElement]("img"));
+    let e = html$.ImageElement._check(html$.document[dartx.createElement]("img"));
     if (src != null) e[dartx.src] = src;
     if (width != null) e[dartx.width] = width;
     if (height != null) e[dartx.height] = height;
@@ -76601,13 +76604,13 @@
     this.width = value;
   }
 };
-dart.defineNamedConstructor(html.ImageElement, 'created');
-html.ImageElement[dart.implements] = () => [html.CanvasImageSource];
-dart.setSignature(html.ImageElement, {
+dart.defineNamedConstructor(html$.ImageElement, 'created');
+html$.ImageElement[dart.implements] = () => [html$.CanvasImageSource];
+dart.setSignature(html$.ImageElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ImageElement, []),
-    new: dart.definiteFunctionType(html.ImageElement, [], {src: core.String, width: core.int, height: core.int}),
-    created: dart.definiteFunctionType(html.ImageElement, [])
+    _: dart.definiteFunctionType(html$.ImageElement, []),
+    new: dart.definiteFunctionType(html$.ImageElement, [], {src: core.String, width: core.int, height: core.int}),
+    created: dart.definiteFunctionType(html$.ImageElement, [])
   }),
   fields: () => ({
     [dartx.alt]: core.String,
@@ -76625,11 +76628,11 @@
     [dartx.width]: core.int
   })
 });
-dart.registerExtension(dart.global.HTMLImageElement, html.ImageElement);
+dart.registerExtension(dart.global.HTMLImageElement, html$.ImageElement);
 dart.defineExtensionNames([
   'inspect'
 ]);
-html.InjectedScriptHost = class InjectedScriptHost extends _interceptors.Interceptor {
+html$.InjectedScriptHost = class InjectedScriptHost extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -76637,15 +76640,15 @@
     return this.inspect.apply(this, args);
   }
 };
-dart.setSignature(html.InjectedScriptHost, {
-  constructors: () => ({_: dart.definiteFunctionType(html.InjectedScriptHost, [])}),
+dart.setSignature(html$.InjectedScriptHost, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.InjectedScriptHost, [])}),
   methods: () => ({[dartx.inspect]: dart.definiteFunctionType(dart.void, [core.Object, core.Object])})
 });
-dart.registerExtension(dart.global.InjectedScriptHost, html.InjectedScriptHost);
+dart.registerExtension(dart.global.InjectedScriptHost, html$.InjectedScriptHost);
 dart.defineExtensionNames([
   'firesTouchEvents'
 ]);
-html.InputDevice = class InputDevice extends _interceptors.Interceptor {
+html$.InputDevice = class InputDevice extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -76653,9 +76656,9 @@
     if (deviceInitDict === void 0) deviceInitDict = null;
     if (deviceInitDict != null) {
       let deviceInitDict_1 = html_common.convertDartToNative_Dictionary(deviceInitDict);
-      return html.InputDevice._create_1(deviceInitDict_1);
+      return html$.InputDevice._create_1(deviceInitDict_1);
     }
-    return html.InputDevice._create_2();
+    return html$.InputDevice._create_2();
   }
   static _create_1(deviceInitDict) {
     return new self.InputDevice(deviceInitDict);
@@ -76667,19 +76670,19 @@
     return this.firesTouchEvents;
   }
 };
-dart.setSignature(html.InputDevice, {
+dart.setSignature(html$.InputDevice, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.InputDevice, []),
-    new: dart.definiteFunctionType(html.InputDevice, [], [core.Map])
+    _: dart.definiteFunctionType(html$.InputDevice, []),
+    new: dart.definiteFunctionType(html$.InputDevice, [], [core.Map])
   }),
   fields: () => ({[dartx.firesTouchEvents]: core.bool}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.InputDevice, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.InputDevice, [])
+    _create_1: dart.definiteFunctionType(html$.InputDevice, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.InputDevice, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.InputDevice, html.InputDevice);
+dart.registerExtension(dart.global.InputDevice, html$.InputDevice);
 const _get_valueAsDate = Symbol('_get_valueAsDate');
 const _set_valueAsDate = Symbol('_set_valueAsDate');
 dart.defineExtensionNames([
@@ -76743,10 +76746,10 @@
   'width',
   'willValidate'
 ]);
-html.InputElement = class InputElement extends html.HtmlElement {
+html$.InputElement = class InputElement extends html$.HtmlElement {
   static new(opts) {
     let type = opts && 'type' in opts ? opts.type : null;
-    let e = html.InputElement._check(html.document[dartx.createElement]("input"));
+    let e = html$.InputElement._check(html$.document[dartx.createElement]("input"));
     if (type != null) {
       try {
         e[dartx.type] = type;
@@ -77122,13 +77125,13 @@
     return this.stepUp.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.InputElement, 'created');
-html.InputElement[dart.implements] = () => [html.HiddenInputElement, html.SearchInputElement, html.TextInputElement, html.UrlInputElement, html.TelephoneInputElement, html.EmailInputElement, html.PasswordInputElement, html.DateInputElement, html.MonthInputElement, html.WeekInputElement, html.TimeInputElement, html.LocalDateTimeInputElement, html.NumberInputElement, html.RangeInputElement, html.CheckboxInputElement, html.RadioButtonInputElement, html.FileUploadInputElement, html.SubmitButtonInputElement, html.ImageButtonInputElement, html.ResetButtonInputElement, html.ButtonInputElement];
-dart.setSignature(html.InputElement, {
+dart.defineNamedConstructor(html$.InputElement, 'created');
+html$.InputElement[dart.implements] = () => [html$.HiddenInputElement, html$.SearchInputElement, html$.TextInputElement, html$.UrlInputElement, html$.TelephoneInputElement, html$.EmailInputElement, html$.PasswordInputElement, html$.DateInputElement, html$.MonthInputElement, html$.WeekInputElement, html$.TimeInputElement, html$.LocalDateTimeInputElement, html$.NumberInputElement, html$.RangeInputElement, html$.CheckboxInputElement, html$.RadioButtonInputElement, html$.FileUploadInputElement, html$.SubmitButtonInputElement, html$.ImageButtonInputElement, html$.ResetButtonInputElement, html$.ButtonInputElement];
+dart.setSignature(html$.InputElement, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.InputElement, [], {type: core.String}),
-    _: dart.definiteFunctionType(html.InputElement, []),
-    created: dart.definiteFunctionType(html.InputElement, [])
+    new: dart.definiteFunctionType(html$.InputElement, [], {type: core.String}),
+    _: dart.definiteFunctionType(html$.InputElement, []),
+    created: dart.definiteFunctionType(html$.InputElement, [])
   }),
   fields: () => ({
     [dartx.accept]: core.String,
@@ -77143,7 +77146,7 @@
     [dartx.dirName]: core.String,
     [dartx.disabled]: core.bool,
     [dartx.files]: ListOfFile(),
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.formAction]: core.String,
     [dartx.formEnctype]: core.String,
     [dartx.formMethod]: core.String,
@@ -77154,7 +77157,7 @@
     [dartx.indeterminate]: core.bool,
     [dartx.inputMode]: core.String,
     [dartx.labels]: ListOfNode(),
-    [dartx.list]: html.HtmlElement,
+    [dartx.list]: html$.HtmlElement,
     [dartx.max]: core.String,
     [dartx.maxLength]: core.int,
     [dartx.min]: core.String,
@@ -77173,7 +77176,7 @@
     [dartx.step]: core.String,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.value]: core.String,
     [_get_valueAsDate]: dart.dynamic,
     [dartx.valueAsNumber]: core.num,
@@ -77198,7 +77201,7 @@
     [dartx.stepUp]: dart.definiteFunctionType(dart.void, [], [core.int])
   })
 });
-dart.registerExtension(dart.global.HTMLInputElement, html.InputElement);
+dart.registerExtension(dart.global.HTMLInputElement, html$.InputElement);
 dart.defineExtensionNames([
   'autofocus',
   'disabled',
@@ -77207,14 +77210,14 @@
   'name',
   'value'
 ]);
-html.InputElementBase = class InputElementBase extends core.Object {
+html$.InputElementBase = class InputElementBase extends core.Object {
   new() {
     this[autofocus] = null;
     this[disabled] = null;
     this[incremental] = null;
     this[indeterminate] = null;
     this[name] = null;
-    this[value] = null;
+    this[value$] = null;
   }
   get autofocus() {
     return this[autofocus];
@@ -77247,20 +77250,20 @@
     this[name] = value;
   }
   get value() {
-    return this[value];
+    return this[value$];
   }
   set value(value) {
-    this[value] = value;
+    this[value$] = value;
   }
 };
-const autofocus = Symbol(html.InputElementBase.name + "." + 'autofocus'.toString());
-const disabled = Symbol(html.InputElementBase.name + "." + 'disabled'.toString());
-const incremental = Symbol(html.InputElementBase.name + "." + 'incremental'.toString());
-const indeterminate = Symbol(html.InputElementBase.name + "." + 'indeterminate'.toString());
-const name = Symbol(html.InputElementBase.name + "." + 'name'.toString());
-const value = Symbol(html.InputElementBase.name + "." + 'value'.toString());
-html.InputElementBase[dart.implements] = () => [html.Element];
-dart.setSignature(html.InputElementBase, {
+const autofocus = Symbol(html$.InputElementBase.name + "." + 'autofocus'.toString());
+const disabled = Symbol(html$.InputElementBase.name + "." + 'disabled'.toString());
+const incremental = Symbol(html$.InputElementBase.name + "." + 'incremental'.toString());
+const indeterminate = Symbol(html$.InputElementBase.name + "." + 'indeterminate'.toString());
+const name = Symbol(html$.InputElementBase.name + "." + 'name'.toString());
+const value$ = Symbol(html$.InputElementBase.name + "." + 'value'.toString());
+html$.InputElementBase[dart.implements] = () => [html$.Element];
+dart.setSignature(html$.InputElementBase, {
   fields: () => ({
     autofocus: core.bool,
     disabled: core.bool,
@@ -77270,7 +77273,7 @@
     value: core.String
   })
 });
-dart.defineExtensionMembers(html.InputElementBase, [
+dart.defineExtensionMembers(html$.InputElementBase, [
   'autofocus',
   'autofocus',
   'disabled',
@@ -77284,14 +77287,14 @@
   'value',
   'value'
 ]);
-html.HiddenInputElement = class HiddenInputElement extends core.Object {
+html$.HiddenInputElement = class HiddenInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'hidden'});
+    return html$.InputElement.new({type: 'hidden'});
   }
 };
-html.HiddenInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.HiddenInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.HiddenInputElement, [])})
+html$.HiddenInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.HiddenInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.HiddenInputElement, [])})
 });
 dart.defineExtensionNames([
   'autocomplete',
@@ -77305,7 +77308,7 @@
   'selectionEnd',
   'selectionStart'
 ]);
-html.TextInputElementBase = class TextInputElementBase extends core.Object {
+html$.TextInputElementBase = class TextInputElementBase extends core.Object {
   new() {
     this[autocomplete] = null;
     this[maxLength] = null;
@@ -77379,18 +77382,18 @@
     this[selectionStart] = value;
   }
 };
-const autocomplete = Symbol(html.TextInputElementBase.name + "." + 'autocomplete'.toString());
-const maxLength = Symbol(html.TextInputElementBase.name + "." + 'maxLength'.toString());
-const pattern = Symbol(html.TextInputElementBase.name + "." + 'pattern'.toString());
-const placeholder = Symbol(html.TextInputElementBase.name + "." + 'placeholder'.toString());
-const readOnly = Symbol(html.TextInputElementBase.name + "." + 'readOnly'.toString());
-const required = Symbol(html.TextInputElementBase.name + "." + 'required'.toString());
-const size = Symbol(html.TextInputElementBase.name + "." + 'size'.toString());
-const selectionDirection = Symbol(html.TextInputElementBase.name + "." + 'selectionDirection'.toString());
-const selectionEnd = Symbol(html.TextInputElementBase.name + "." + 'selectionEnd'.toString());
-const selectionStart = Symbol(html.TextInputElementBase.name + "." + 'selectionStart'.toString());
-html.TextInputElementBase[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.TextInputElementBase, {
+const autocomplete = Symbol(html$.TextInputElementBase.name + "." + 'autocomplete'.toString());
+const maxLength = Symbol(html$.TextInputElementBase.name + "." + 'maxLength'.toString());
+const pattern = Symbol(html$.TextInputElementBase.name + "." + 'pattern'.toString());
+const placeholder = Symbol(html$.TextInputElementBase.name + "." + 'placeholder'.toString());
+const readOnly = Symbol(html$.TextInputElementBase.name + "." + 'readOnly'.toString());
+const required = Symbol(html$.TextInputElementBase.name + "." + 'required'.toString());
+const size = Symbol(html$.TextInputElementBase.name + "." + 'size'.toString());
+const selectionDirection = Symbol(html$.TextInputElementBase.name + "." + 'selectionDirection'.toString());
+const selectionEnd = Symbol(html$.TextInputElementBase.name + "." + 'selectionEnd'.toString());
+const selectionStart = Symbol(html$.TextInputElementBase.name + "." + 'selectionStart'.toString());
+html$.TextInputElementBase[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.TextInputElementBase, {
   fields: () => ({
     autocomplete: core.String,
     maxLength: core.int,
@@ -77404,7 +77407,7 @@
     selectionStart: core.int
   })
 });
-dart.defineExtensionMembers(html.TextInputElementBase, [
+dart.defineExtensionMembers(html$.TextInputElementBase, [
   'autocomplete',
   'autocomplete',
   'maxLength',
@@ -77429,9 +77432,9 @@
 dart.defineExtensionNames([
   'dirName'
 ]);
-html.SearchInputElement = class SearchInputElement extends core.Object {
+html$.SearchInputElement = class SearchInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'search'});
+    return html$.InputElement.new({type: 'search'});
   }
   get dirName() {
     return this[dirName];
@@ -77440,62 +77443,62 @@
     this[dirName] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'search'})[dartx.type] == 'search';
+    return html$.InputElement.new({type: 'search'})[dartx.type] == 'search';
   }
 };
-const dirName = Symbol(html.SearchInputElement.name + "." + 'dirName'.toString());
-html.SearchInputElement[dart.implements] = () => [html.TextInputElementBase];
-dart.setSignature(html.SearchInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.SearchInputElement, [])}),
+const dirName = Symbol(html$.SearchInputElement.name + "." + 'dirName'.toString());
+html$.SearchInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.SearchInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.SearchInputElement, [])}),
   fields: () => ({dirName: core.String}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.SearchInputElement, ['dirName', 'dirName']);
+dart.defineExtensionMembers(html$.SearchInputElement, ['dirName', 'dirName']);
 dart.defineExtensionNames([
   'dirName'
 ]);
-html.TextInputElement = class TextInputElement extends core.Object {
+html$.TextInputElement = class TextInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'text'});
+    return html$.InputElement.new({type: 'text'});
   }
   get dirName() {
-    return this[dirName];
+    return this[dirName$];
   }
   set dirName(value) {
-    this[dirName] = value;
+    this[dirName$] = value;
   }
 };
-const dirName = Symbol(html.TextInputElement.name + "." + 'dirName'.toString());
-html.TextInputElement[dart.implements] = () => [html.TextInputElementBase];
-dart.setSignature(html.TextInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.TextInputElement, [])}),
+const dirName$ = Symbol(html$.TextInputElement.name + "." + 'dirName'.toString());
+html$.TextInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.TextInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.TextInputElement, [])}),
   fields: () => ({dirName: core.String})
 });
-dart.defineExtensionMembers(html.TextInputElement, ['dirName', 'dirName']);
-html.UrlInputElement = class UrlInputElement extends core.Object {
+dart.defineExtensionMembers(html$.TextInputElement, ['dirName', 'dirName']);
+html$.UrlInputElement = class UrlInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'url'});
+    return html$.InputElement.new({type: 'url'});
   }
   static get supported() {
-    return html.InputElement.new({type: 'url'})[dartx.type] == 'url';
+    return html$.InputElement.new({type: 'url'})[dartx.type] == 'url';
   }
 };
-html.UrlInputElement[dart.implements] = () => [html.TextInputElementBase];
-dart.setSignature(html.UrlInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.UrlInputElement, [])}),
+html$.UrlInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.UrlInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.UrlInputElement, [])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-html.TelephoneInputElement = class TelephoneInputElement extends core.Object {
+html$.TelephoneInputElement = class TelephoneInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'tel'});
+    return html$.InputElement.new({type: 'tel'});
   }
   static get supported() {
-    return html.InputElement.new({type: 'tel'})[dartx.type] == 'tel';
+    return html$.InputElement.new({type: 'tel'})[dartx.type] == 'tel';
   }
 };
-html.TelephoneInputElement[dart.implements] = () => [html.TextInputElementBase];
-dart.setSignature(html.TelephoneInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.TelephoneInputElement, [])}),
+html$.TelephoneInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.TelephoneInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.TelephoneInputElement, [])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
 dart.defineExtensionNames([
@@ -77509,27 +77512,27 @@
   'required',
   'size'
 ]);
-html.EmailInputElement = class EmailInputElement extends core.Object {
+html$.EmailInputElement = class EmailInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'email'});
+    return html$.InputElement.new({type: 'email'});
   }
   get autocomplete() {
-    return this[autocomplete];
+    return this[autocomplete$];
   }
   set autocomplete(value) {
-    this[autocomplete] = value;
+    this[autocomplete$] = value;
   }
   get autofocus() {
-    return this[autofocus];
+    return this[autofocus$];
   }
   set autofocus(value) {
-    this[autofocus] = value;
+    this[autofocus$] = value;
   }
   get maxLength() {
-    return this[maxLength];
+    return this[maxLength$];
   }
   set maxLength(value) {
-    this[maxLength] = value;
+    this[maxLength$] = value;
   }
   get multiple() {
     return this[multiple];
@@ -77538,51 +77541,51 @@
     this[multiple] = value;
   }
   get pattern() {
-    return this[pattern];
+    return this[pattern$];
   }
   set pattern(value) {
-    this[pattern] = value;
+    this[pattern$] = value;
   }
   get placeholder() {
-    return this[placeholder];
+    return this[placeholder$];
   }
   set placeholder(value) {
-    this[placeholder] = value;
+    this[placeholder$] = value;
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$] = value;
   }
   get required() {
-    return this[required];
+    return this[required$];
   }
   set required(value) {
-    this[required] = value;
+    this[required$] = value;
   }
   get size() {
-    return this[size];
+    return this[size$];
   }
   set size(value) {
-    this[size] = value;
+    this[size$] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'email'})[dartx.type] == 'email';
+    return html$.InputElement.new({type: 'email'})[dartx.type] == 'email';
   }
 };
-const autocomplete = Symbol(html.EmailInputElement.name + "." + 'autocomplete'.toString());
-const autofocus = Symbol(html.EmailInputElement.name + "." + 'autofocus'.toString());
-const maxLength = Symbol(html.EmailInputElement.name + "." + 'maxLength'.toString());
-const multiple = Symbol(html.EmailInputElement.name + "." + 'multiple'.toString());
-const pattern = Symbol(html.EmailInputElement.name + "." + 'pattern'.toString());
-const placeholder = Symbol(html.EmailInputElement.name + "." + 'placeholder'.toString());
-const readOnly = Symbol(html.EmailInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.EmailInputElement.name + "." + 'required'.toString());
-const size = Symbol(html.EmailInputElement.name + "." + 'size'.toString());
-html.EmailInputElement[dart.implements] = () => [html.TextInputElementBase];
-dart.setSignature(html.EmailInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.EmailInputElement, [])}),
+const autocomplete$ = Symbol(html$.EmailInputElement.name + "." + 'autocomplete'.toString());
+const autofocus$ = Symbol(html$.EmailInputElement.name + "." + 'autofocus'.toString());
+const maxLength$ = Symbol(html$.EmailInputElement.name + "." + 'maxLength'.toString());
+const multiple = Symbol(html$.EmailInputElement.name + "." + 'multiple'.toString());
+const pattern$ = Symbol(html$.EmailInputElement.name + "." + 'pattern'.toString());
+const placeholder$ = Symbol(html$.EmailInputElement.name + "." + 'placeholder'.toString());
+const readOnly$ = Symbol(html$.EmailInputElement.name + "." + 'readOnly'.toString());
+const required$ = Symbol(html$.EmailInputElement.name + "." + 'required'.toString());
+const size$ = Symbol(html$.EmailInputElement.name + "." + 'size'.toString());
+html$.EmailInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.EmailInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.EmailInputElement, [])}),
   fields: () => ({
     autocomplete: core.String,
     autofocus: core.bool,
@@ -77596,7 +77599,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.EmailInputElement, [
+dart.defineExtensionMembers(html$.EmailInputElement, [
   'autocomplete',
   'autocomplete',
   'autofocus',
@@ -77616,14 +77619,14 @@
   'size',
   'size'
 ]);
-html.PasswordInputElement = class PasswordInputElement extends core.Object {
+html$.PasswordInputElement = class PasswordInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'password'});
+    return html$.InputElement.new({type: 'password'});
   }
 };
-html.PasswordInputElement[dart.implements] = () => [html.TextInputElementBase];
-dart.setSignature(html.PasswordInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.PasswordInputElement, [])})
+html$.PasswordInputElement[dart.implements] = () => [html$.TextInputElementBase];
+dart.setSignature(html$.PasswordInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.PasswordInputElement, [])})
 });
 dart.defineExtensionNames([
   'max',
@@ -77631,7 +77634,7 @@
   'step',
   'valueAsNumber'
 ]);
-html.RangeInputElementBase = class RangeInputElementBase extends core.Object {
+html$.RangeInputElementBase = class RangeInputElementBase extends core.Object {
   new() {
     this[max] = null;
     this[min] = null;
@@ -77663,12 +77666,12 @@
     this[valueAsNumber] = value;
   }
 };
-const max = Symbol(html.RangeInputElementBase.name + "." + 'max'.toString());
-const min = Symbol(html.RangeInputElementBase.name + "." + 'min'.toString());
-const step = Symbol(html.RangeInputElementBase.name + "." + 'step'.toString());
-const valueAsNumber = Symbol(html.RangeInputElementBase.name + "." + 'valueAsNumber'.toString());
-html.RangeInputElementBase[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.RangeInputElementBase, {
+const max = Symbol(html$.RangeInputElementBase.name + "." + 'max'.toString());
+const min = Symbol(html$.RangeInputElementBase.name + "." + 'min'.toString());
+const step = Symbol(html$.RangeInputElementBase.name + "." + 'step'.toString());
+const valueAsNumber = Symbol(html$.RangeInputElementBase.name + "." + 'valueAsNumber'.toString());
+html$.RangeInputElementBase[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.RangeInputElementBase, {
   fields: () => ({
     max: core.String,
     min: core.String,
@@ -77676,7 +77679,7 @@
     valueAsNumber: core.num
   })
 });
-dart.defineExtensionMembers(html.RangeInputElementBase, [
+dart.defineExtensionMembers(html$.RangeInputElementBase, [
   'max',
   'max',
   'min',
@@ -77691,9 +77694,9 @@
   'readOnly',
   'required'
 ]);
-html.DateInputElement = class DateInputElement extends core.Object {
+html$.DateInputElement = class DateInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'date'});
+    return html$.InputElement.new({type: 'date'});
   }
   get valueAsDate() {
     return this[valueAsDate];
@@ -77702,27 +77705,27 @@
     this[valueAsDate] = value;
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$0];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$0] = value;
   }
   get required() {
-    return this[required];
+    return this[required$0];
   }
   set required(value) {
-    this[required] = value;
+    this[required$0] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'date'})[dartx.type] == 'date';
+    return html$.InputElement.new({type: 'date'})[dartx.type] == 'date';
   }
 };
-const valueAsDate = Symbol(html.DateInputElement.name + "." + 'valueAsDate'.toString());
-const readOnly = Symbol(html.DateInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.DateInputElement.name + "." + 'required'.toString());
-html.DateInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.DateInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.DateInputElement, [])}),
+const valueAsDate = Symbol(html$.DateInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$0 = Symbol(html$.DateInputElement.name + "." + 'readOnly'.toString());
+const required$0 = Symbol(html$.DateInputElement.name + "." + 'required'.toString());
+html$.DateInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.DateInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.DateInputElement, [])}),
   fields: () => ({
     valueAsDate: core.DateTime,
     readOnly: core.bool,
@@ -77730,7 +77733,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.DateInputElement, [
+dart.defineExtensionMembers(html$.DateInputElement, [
   'valueAsDate',
   'valueAsDate',
   'readOnly',
@@ -77743,38 +77746,38 @@
   'readOnly',
   'required'
 ]);
-html.MonthInputElement = class MonthInputElement extends core.Object {
+html$.MonthInputElement = class MonthInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'month'});
+    return html$.InputElement.new({type: 'month'});
   }
   get valueAsDate() {
-    return this[valueAsDate];
+    return this[valueAsDate$];
   }
   set valueAsDate(value) {
-    this[valueAsDate] = value;
+    this[valueAsDate$] = value;
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$1];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$1] = value;
   }
   get required() {
-    return this[required];
+    return this[required$1];
   }
   set required(value) {
-    this[required] = value;
+    this[required$1] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'month'})[dartx.type] == 'month';
+    return html$.InputElement.new({type: 'month'})[dartx.type] == 'month';
   }
 };
-const valueAsDate = Symbol(html.MonthInputElement.name + "." + 'valueAsDate'.toString());
-const readOnly = Symbol(html.MonthInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.MonthInputElement.name + "." + 'required'.toString());
-html.MonthInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.MonthInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.MonthInputElement, [])}),
+const valueAsDate$ = Symbol(html$.MonthInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$1 = Symbol(html$.MonthInputElement.name + "." + 'readOnly'.toString());
+const required$1 = Symbol(html$.MonthInputElement.name + "." + 'required'.toString());
+html$.MonthInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.MonthInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.MonthInputElement, [])}),
   fields: () => ({
     valueAsDate: core.DateTime,
     readOnly: core.bool,
@@ -77782,7 +77785,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.MonthInputElement, [
+dart.defineExtensionMembers(html$.MonthInputElement, [
   'valueAsDate',
   'valueAsDate',
   'readOnly',
@@ -77795,38 +77798,38 @@
   'readOnly',
   'required'
 ]);
-html.WeekInputElement = class WeekInputElement extends core.Object {
+html$.WeekInputElement = class WeekInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'week'});
+    return html$.InputElement.new({type: 'week'});
   }
   get valueAsDate() {
-    return this[valueAsDate];
+    return this[valueAsDate$0];
   }
   set valueAsDate(value) {
-    this[valueAsDate] = value;
+    this[valueAsDate$0] = value;
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$2];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$2] = value;
   }
   get required() {
-    return this[required];
+    return this[required$2];
   }
   set required(value) {
-    this[required] = value;
+    this[required$2] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'week'})[dartx.type] == 'week';
+    return html$.InputElement.new({type: 'week'})[dartx.type] == 'week';
   }
 };
-const valueAsDate = Symbol(html.WeekInputElement.name + "." + 'valueAsDate'.toString());
-const readOnly = Symbol(html.WeekInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.WeekInputElement.name + "." + 'required'.toString());
-html.WeekInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.WeekInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.WeekInputElement, [])}),
+const valueAsDate$0 = Symbol(html$.WeekInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$2 = Symbol(html$.WeekInputElement.name + "." + 'readOnly'.toString());
+const required$2 = Symbol(html$.WeekInputElement.name + "." + 'required'.toString());
+html$.WeekInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.WeekInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.WeekInputElement, [])}),
   fields: () => ({
     valueAsDate: core.DateTime,
     readOnly: core.bool,
@@ -77834,7 +77837,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.WeekInputElement, [
+dart.defineExtensionMembers(html$.WeekInputElement, [
   'valueAsDate',
   'valueAsDate',
   'readOnly',
@@ -77847,38 +77850,38 @@
   'readOnly',
   'required'
 ]);
-html.TimeInputElement = class TimeInputElement extends core.Object {
+html$.TimeInputElement = class TimeInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'time'});
+    return html$.InputElement.new({type: 'time'});
   }
   get valueAsDate() {
-    return this[valueAsDate];
+    return this[valueAsDate$1];
   }
   set valueAsDate(value) {
-    this[valueAsDate] = value;
+    this[valueAsDate$1] = value;
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$3];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$3] = value;
   }
   get required() {
-    return this[required];
+    return this[required$3];
   }
   set required(value) {
-    this[required] = value;
+    this[required$3] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'time'})[dartx.type] == 'time';
+    return html$.InputElement.new({type: 'time'})[dartx.type] == 'time';
   }
 };
-const valueAsDate = Symbol(html.TimeInputElement.name + "." + 'valueAsDate'.toString());
-const readOnly = Symbol(html.TimeInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.TimeInputElement.name + "." + 'required'.toString());
-html.TimeInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.TimeInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.TimeInputElement, [])}),
+const valueAsDate$1 = Symbol(html$.TimeInputElement.name + "." + 'valueAsDate'.toString());
+const readOnly$3 = Symbol(html$.TimeInputElement.name + "." + 'readOnly'.toString());
+const required$3 = Symbol(html$.TimeInputElement.name + "." + 'required'.toString());
+html$.TimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.TimeInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.TimeInputElement, [])}),
   fields: () => ({
     valueAsDate: core.DateTime,
     readOnly: core.bool,
@@ -77886,7 +77889,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.TimeInputElement, [
+dart.defineExtensionMembers(html$.TimeInputElement, [
   'valueAsDate',
   'valueAsDate',
   'readOnly',
@@ -77898,75 +77901,75 @@
   'readOnly',
   'required'
 ]);
-html.LocalDateTimeInputElement = class LocalDateTimeInputElement extends core.Object {
+html$.LocalDateTimeInputElement = class LocalDateTimeInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'datetime-local'});
+    return html$.InputElement.new({type: 'datetime-local'});
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$4];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$4] = value;
   }
   get required() {
-    return this[required];
+    return this[required$4];
   }
   set required(value) {
-    this[required] = value;
+    this[required$4] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'datetime-local'})[dartx.type] == 'datetime-local';
+    return html$.InputElement.new({type: 'datetime-local'})[dartx.type] == 'datetime-local';
   }
 };
-const readOnly = Symbol(html.LocalDateTimeInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.LocalDateTimeInputElement.name + "." + 'required'.toString());
-html.LocalDateTimeInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.LocalDateTimeInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.LocalDateTimeInputElement, [])}),
+const readOnly$4 = Symbol(html$.LocalDateTimeInputElement.name + "." + 'readOnly'.toString());
+const required$4 = Symbol(html$.LocalDateTimeInputElement.name + "." + 'required'.toString());
+html$.LocalDateTimeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.LocalDateTimeInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.LocalDateTimeInputElement, [])}),
   fields: () => ({
     readOnly: core.bool,
     required: core.bool
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.LocalDateTimeInputElement, ['readOnly', 'readOnly', 'required', 'required']);
+dart.defineExtensionMembers(html$.LocalDateTimeInputElement, ['readOnly', 'readOnly', 'required', 'required']);
 dart.defineExtensionNames([
   'placeholder',
   'readOnly',
   'required'
 ]);
-html.NumberInputElement = class NumberInputElement extends core.Object {
+html$.NumberInputElement = class NumberInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'number'});
+    return html$.InputElement.new({type: 'number'});
   }
   get placeholder() {
-    return this[placeholder];
+    return this[placeholder$0];
   }
   set placeholder(value) {
-    this[placeholder] = value;
+    this[placeholder$0] = value;
   }
   get readOnly() {
-    return this[readOnly];
+    return this[readOnly$5];
   }
   set readOnly(value) {
-    this[readOnly] = value;
+    this[readOnly$5] = value;
   }
   get required() {
-    return this[required];
+    return this[required$5];
   }
   set required(value) {
-    this[required] = value;
+    this[required$5] = value;
   }
   static get supported() {
-    return html.InputElement.new({type: 'number'})[dartx.type] == 'number';
+    return html$.InputElement.new({type: 'number'})[dartx.type] == 'number';
   }
 };
-const placeholder = Symbol(html.NumberInputElement.name + "." + 'placeholder'.toString());
-const readOnly = Symbol(html.NumberInputElement.name + "." + 'readOnly'.toString());
-const required = Symbol(html.NumberInputElement.name + "." + 'required'.toString());
-html.NumberInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.NumberInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.NumberInputElement, [])}),
+const placeholder$0 = Symbol(html$.NumberInputElement.name + "." + 'placeholder'.toString());
+const readOnly$5 = Symbol(html$.NumberInputElement.name + "." + 'readOnly'.toString());
+const required$5 = Symbol(html$.NumberInputElement.name + "." + 'required'.toString());
+html$.NumberInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.NumberInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.NumberInputElement, [])}),
   fields: () => ({
     placeholder: core.String,
     readOnly: core.bool,
@@ -77974,7 +77977,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineExtensionMembers(html.NumberInputElement, [
+dart.defineExtensionMembers(html$.NumberInputElement, [
   'placeholder',
   'placeholder',
   'readOnly',
@@ -77982,26 +77985,26 @@
   'required',
   'required'
 ]);
-html.RangeInputElement = class RangeInputElement extends core.Object {
+html$.RangeInputElement = class RangeInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'range'});
+    return html$.InputElement.new({type: 'range'});
   }
   static get supported() {
-    return html.InputElement.new({type: 'range'})[dartx.type] == 'range';
+    return html$.InputElement.new({type: 'range'})[dartx.type] == 'range';
   }
 };
-html.RangeInputElement[dart.implements] = () => [html.RangeInputElementBase];
-dart.setSignature(html.RangeInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.RangeInputElement, [])}),
+html$.RangeInputElement[dart.implements] = () => [html$.RangeInputElementBase];
+dart.setSignature(html$.RangeInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.RangeInputElement, [])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
 dart.defineExtensionNames([
   'checked',
   'required'
 ]);
-html.CheckboxInputElement = class CheckboxInputElement extends core.Object {
+html$.CheckboxInputElement = class CheckboxInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'checkbox'});
+    return html$.InputElement.new({type: 'checkbox'});
   }
   get checked() {
     return this[checked];
@@ -78010,64 +78013,64 @@
     this[checked] = value;
   }
   get required() {
-    return this[required];
+    return this[required$6];
   }
   set required(value) {
-    this[required] = value;
+    this[required$6] = value;
   }
 };
-const checked = Symbol(html.CheckboxInputElement.name + "." + 'checked'.toString());
-const required = Symbol(html.CheckboxInputElement.name + "." + 'required'.toString());
-html.CheckboxInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.CheckboxInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.CheckboxInputElement, [])}),
+const checked = Symbol(html$.CheckboxInputElement.name + "." + 'checked'.toString());
+const required$6 = Symbol(html$.CheckboxInputElement.name + "." + 'required'.toString());
+html$.CheckboxInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.CheckboxInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.CheckboxInputElement, [])}),
   fields: () => ({
     checked: core.bool,
     required: core.bool
   })
 });
-dart.defineExtensionMembers(html.CheckboxInputElement, ['checked', 'checked', 'required', 'required']);
+dart.defineExtensionMembers(html$.CheckboxInputElement, ['checked', 'checked', 'required', 'required']);
 dart.defineExtensionNames([
   'checked',
   'required'
 ]);
-html.RadioButtonInputElement = class RadioButtonInputElement extends core.Object {
+html$.RadioButtonInputElement = class RadioButtonInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'radio'});
+    return html$.InputElement.new({type: 'radio'});
   }
   get checked() {
-    return this[checked];
+    return this[checked$];
   }
   set checked(value) {
-    this[checked] = value;
+    this[checked$] = value;
   }
   get required() {
-    return this[required];
+    return this[required$7];
   }
   set required(value) {
-    this[required] = value;
+    this[required$7] = value;
   }
 };
-const checked = Symbol(html.RadioButtonInputElement.name + "." + 'checked'.toString());
-const required = Symbol(html.RadioButtonInputElement.name + "." + 'required'.toString());
-html.RadioButtonInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.RadioButtonInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.RadioButtonInputElement, [])}),
+const checked$ = Symbol(html$.RadioButtonInputElement.name + "." + 'checked'.toString());
+const required$7 = Symbol(html$.RadioButtonInputElement.name + "." + 'required'.toString());
+html$.RadioButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.RadioButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.RadioButtonInputElement, [])}),
   fields: () => ({
     checked: core.bool,
     required: core.bool
   })
 });
-dart.defineExtensionMembers(html.RadioButtonInputElement, ['checked', 'checked', 'required', 'required']);
+dart.defineExtensionMembers(html$.RadioButtonInputElement, ['checked', 'checked', 'required', 'required']);
 dart.defineExtensionNames([
   'accept',
   'multiple',
   'required',
   'files'
 ]);
-html.FileUploadInputElement = class FileUploadInputElement extends core.Object {
+html$.FileUploadInputElement = class FileUploadInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'file'});
+    return html$.InputElement.new({type: 'file'});
   }
   get accept() {
     return this[accept];
@@ -78076,16 +78079,16 @@
     this[accept] = value;
   }
   get multiple() {
-    return this[multiple];
+    return this[multiple$];
   }
   set multiple(value) {
-    this[multiple] = value;
+    this[multiple$] = value;
   }
   get required() {
-    return this[required];
+    return this[required$8];
   }
   set required(value) {
-    this[required] = value;
+    this[required$8] = value;
   }
   get files() {
     return this[files];
@@ -78094,13 +78097,13 @@
     this[files] = value;
   }
 };
-const accept = Symbol(html.FileUploadInputElement.name + "." + 'accept'.toString());
-const multiple = Symbol(html.FileUploadInputElement.name + "." + 'multiple'.toString());
-const required = Symbol(html.FileUploadInputElement.name + "." + 'required'.toString());
-const files = Symbol(html.FileUploadInputElement.name + "." + 'files'.toString());
-html.FileUploadInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.FileUploadInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.FileUploadInputElement, [])}),
+const accept = Symbol(html$.FileUploadInputElement.name + "." + 'accept'.toString());
+const multiple$ = Symbol(html$.FileUploadInputElement.name + "." + 'multiple'.toString());
+const required$8 = Symbol(html$.FileUploadInputElement.name + "." + 'required'.toString());
+const files = Symbol(html$.FileUploadInputElement.name + "." + 'files'.toString());
+html$.FileUploadInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.FileUploadInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.FileUploadInputElement, [])}),
   fields: () => ({
     accept: core.String,
     multiple: core.bool,
@@ -78108,7 +78111,7 @@
     files: ListOfFile()
   })
 });
-dart.defineExtensionMembers(html.FileUploadInputElement, [
+dart.defineExtensionMembers(html$.FileUploadInputElement, [
   'accept',
   'accept',
   'multiple',
@@ -78125,9 +78128,9 @@
   'formNoValidate',
   'formTarget'
 ]);
-html.SubmitButtonInputElement = class SubmitButtonInputElement extends core.Object {
+html$.SubmitButtonInputElement = class SubmitButtonInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'submit'});
+    return html$.InputElement.new({type: 'submit'});
   }
   get formAction() {
     return this[formAction];
@@ -78160,14 +78163,14 @@
     this[formTarget] = value;
   }
 };
-const formAction = Symbol(html.SubmitButtonInputElement.name + "." + 'formAction'.toString());
-const formEnctype = Symbol(html.SubmitButtonInputElement.name + "." + 'formEnctype'.toString());
-const formMethod = Symbol(html.SubmitButtonInputElement.name + "." + 'formMethod'.toString());
-const formNoValidate = Symbol(html.SubmitButtonInputElement.name + "." + 'formNoValidate'.toString());
-const formTarget = Symbol(html.SubmitButtonInputElement.name + "." + 'formTarget'.toString());
-html.SubmitButtonInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.SubmitButtonInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.SubmitButtonInputElement, [])}),
+const formAction = Symbol(html$.SubmitButtonInputElement.name + "." + 'formAction'.toString());
+const formEnctype = Symbol(html$.SubmitButtonInputElement.name + "." + 'formEnctype'.toString());
+const formMethod = Symbol(html$.SubmitButtonInputElement.name + "." + 'formMethod'.toString());
+const formNoValidate = Symbol(html$.SubmitButtonInputElement.name + "." + 'formNoValidate'.toString());
+const formTarget = Symbol(html$.SubmitButtonInputElement.name + "." + 'formTarget'.toString());
+html$.SubmitButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.SubmitButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.SubmitButtonInputElement, [])}),
   fields: () => ({
     formAction: core.String,
     formEnctype: core.String,
@@ -78176,7 +78179,7 @@
     formTarget: core.String
   })
 });
-dart.defineExtensionMembers(html.SubmitButtonInputElement, [
+dart.defineExtensionMembers(html$.SubmitButtonInputElement, [
   'formAction',
   'formAction',
   'formEnctype',
@@ -78199,9 +78202,9 @@
   'src',
   'width'
 ]);
-html.ImageButtonInputElement = class ImageButtonInputElement extends core.Object {
+html$.ImageButtonInputElement = class ImageButtonInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'image'});
+    return html$.InputElement.new({type: 'image'});
   }
   get alt() {
     return this[alt];
@@ -78210,34 +78213,34 @@
     this[alt] = value;
   }
   get formAction() {
-    return this[formAction];
+    return this[formAction$];
   }
   set formAction(value) {
-    this[formAction] = value;
+    this[formAction$] = value;
   }
   get formEnctype() {
-    return this[formEnctype];
+    return this[formEnctype$];
   }
   set formEnctype(value) {
-    this[formEnctype] = value;
+    this[formEnctype$] = value;
   }
   get formMethod() {
-    return this[formMethod];
+    return this[formMethod$];
   }
   set formMethod(value) {
-    this[formMethod] = value;
+    this[formMethod$] = value;
   }
   get formNoValidate() {
-    return this[formNoValidate];
+    return this[formNoValidate$];
   }
   set formNoValidate(value) {
-    this[formNoValidate] = value;
+    this[formNoValidate$] = value;
   }
   get formTarget() {
-    return this[formTarget];
+    return this[formTarget$];
   }
   set formTarget(value) {
-    this[formTarget] = value;
+    this[formTarget$] = value;
   }
   get height() {
     return this[height];
@@ -78258,18 +78261,18 @@
     this[width] = value;
   }
 };
-const alt = Symbol(html.ImageButtonInputElement.name + "." + 'alt'.toString());
-const formAction = Symbol(html.ImageButtonInputElement.name + "." + 'formAction'.toString());
-const formEnctype = Symbol(html.ImageButtonInputElement.name + "." + 'formEnctype'.toString());
-const formMethod = Symbol(html.ImageButtonInputElement.name + "." + 'formMethod'.toString());
-const formNoValidate = Symbol(html.ImageButtonInputElement.name + "." + 'formNoValidate'.toString());
-const formTarget = Symbol(html.ImageButtonInputElement.name + "." + 'formTarget'.toString());
-const height = Symbol(html.ImageButtonInputElement.name + "." + 'height'.toString());
-const src = Symbol(html.ImageButtonInputElement.name + "." + 'src'.toString());
-const width = Symbol(html.ImageButtonInputElement.name + "." + 'width'.toString());
-html.ImageButtonInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.ImageButtonInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.ImageButtonInputElement, [])}),
+const alt = Symbol(html$.ImageButtonInputElement.name + "." + 'alt'.toString());
+const formAction$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formAction'.toString());
+const formEnctype$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formEnctype'.toString());
+const formMethod$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formMethod'.toString());
+const formNoValidate$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formNoValidate'.toString());
+const formTarget$ = Symbol(html$.ImageButtonInputElement.name + "." + 'formTarget'.toString());
+const height = Symbol(html$.ImageButtonInputElement.name + "." + 'height'.toString());
+const src = Symbol(html$.ImageButtonInputElement.name + "." + 'src'.toString());
+const width = Symbol(html$.ImageButtonInputElement.name + "." + 'width'.toString());
+html$.ImageButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.ImageButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ImageButtonInputElement, [])}),
   fields: () => ({
     alt: core.String,
     formAction: core.String,
@@ -78282,7 +78285,7 @@
     width: core.int
   })
 });
-dart.defineExtensionMembers(html.ImageButtonInputElement, [
+dart.defineExtensionMembers(html$.ImageButtonInputElement, [
   'alt',
   'alt',
   'formAction',
@@ -78302,23 +78305,23 @@
   'width',
   'width'
 ]);
-html.ResetButtonInputElement = class ResetButtonInputElement extends core.Object {
+html$.ResetButtonInputElement = class ResetButtonInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'reset'});
+    return html$.InputElement.new({type: 'reset'});
   }
 };
-html.ResetButtonInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.ResetButtonInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.ResetButtonInputElement, [])})
+html$.ResetButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.ResetButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ResetButtonInputElement, [])})
 });
-html.ButtonInputElement = class ButtonInputElement extends core.Object {
+html$.ButtonInputElement = class ButtonInputElement extends core.Object {
   static new() {
-    return html.InputElement.new({type: 'button'});
+    return html$.InputElement.new({type: 'button'});
   }
 };
-html.ButtonInputElement[dart.implements] = () => [html.InputElementBase];
-dart.setSignature(html.ButtonInputElement, {
-  constructors: () => ({new: dart.definiteFunctionType(html.ButtonInputElement, [])})
+html$.ButtonInputElement[dart.implements] = () => [html$.InputElementBase];
+dart.setSignature(html$.ButtonInputElement, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.ButtonInputElement, [])})
 });
 const _initKeyboardEvent = Symbol('_initKeyboardEvent');
 const _keyIdentifier = Symbol('_keyIdentifier');
@@ -78337,7 +78340,7 @@
   'repeat',
   'shiftKey'
 ]);
-html.KeyboardEvent = class KeyboardEvent extends html.UIEvent {
+html$.KeyboardEvent = class KeyboardEvent extends html$.UIEvent {
   static new(type, opts) {
     let view = opts && 'view' in opts ? opts.view : null;
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : true;
@@ -78348,9 +78351,9 @@
     let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
     let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
-    let e = html.KeyboardEvent._check(html.document[_createEvent]("KeyboardEvent"));
+    let e = html$.KeyboardEvent._check(html$.document[_createEvent]("KeyboardEvent"));
     e[_initKeyboardEvent](type, canBubble, cancelable, view, "", keyLocation, ctrlKey, altKey, shiftKey, metaKey);
     return e;
   }
@@ -78374,9 +78377,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.KeyboardEvent._create_1(type, eventInitDict_1);
+      return html$.KeyboardEvent._create_1(type, eventInitDict_1);
     }
-    return html.KeyboardEvent._create_2(type);
+    return html$.KeyboardEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.KeyboardEvent(type, eventInitDict);
@@ -78418,10 +78421,10 @@
     return this.getModifierState.apply(this, args);
   }
 };
-dart.setSignature(html.KeyboardEvent, {
+dart.setSignature(html$.KeyboardEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.KeyboardEvent, [core.String], {view: html.Window, canBubble: core.bool, cancelable: core.bool, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
-    _: dart.definiteFunctionType(html.KeyboardEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.KeyboardEvent, [core.String], {view: html$.Window, canBubble: core.bool, cancelable: core.bool, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
+    _: dart.definiteFunctionType(html$.KeyboardEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.altKey]: core.bool,
@@ -78441,7 +78444,7 @@
     [dartx.which]: dart.definiteFunctionType(core.int, [])
   }),
   methods: () => ({
-    [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
+    [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
     [dartx.getModifierState]: dart.definiteFunctionType(core.bool, [core.String])
   }),
   sfields: () => ({
@@ -78451,31 +78454,31 @@
     DOM_KEY_LOCATION_STANDARD: core.int
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.KeyboardEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.KeyboardEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.KeyboardEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.KeyboardEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-html.KeyboardEvent.DOM_KEY_LOCATION_LEFT = 1;
-html.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD = 3;
-html.KeyboardEvent.DOM_KEY_LOCATION_RIGHT = 2;
-html.KeyboardEvent.DOM_KEY_LOCATION_STANDARD = 0;
-dart.registerExtension(dart.global.KeyboardEvent, html.KeyboardEvent);
-html.KeyframeEffect = class KeyframeEffect extends html.AnimationEffectReadOnly {
+html$.KeyboardEvent.DOM_KEY_LOCATION_LEFT = 1;
+html$.KeyboardEvent.DOM_KEY_LOCATION_NUMPAD = 3;
+html$.KeyboardEvent.DOM_KEY_LOCATION_RIGHT = 2;
+html$.KeyboardEvent.DOM_KEY_LOCATION_STANDARD = 0;
+dart.registerExtension(dart.global.KeyboardEvent, html$.KeyboardEvent);
+html$.KeyframeEffect = class KeyframeEffect extends html$.AnimationEffectReadOnly {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(target, keyframes, timing) {
     if (timing === void 0) timing = null;
-    if (ListOfMap().is(keyframes) && (html.Element.is(target) || target == null) && timing == null) {
-      return html.KeyframeEffect._create_1(target, keyframes);
+    if (ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null) && timing == null) {
+      return html$.KeyframeEffect._create_1(target, keyframes);
     }
-    if (typeof timing == 'number' && ListOfMap().is(keyframes) && (html.Element.is(target) || target == null)) {
-      return html.KeyframeEffect._create_2(target, keyframes, timing);
+    if (typeof timing == 'number' && ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null)) {
+      return html$.KeyframeEffect._create_2(target, keyframes, timing);
     }
-    if (core.Map.is(timing) && ListOfMap().is(keyframes) && (html.Element.is(target) || target == null)) {
+    if (core.Map.is(timing) && ListOfMap().is(keyframes) && (html$.Element.is(target) || target == null)) {
       let timing_1 = html_common.convertDartToNative_Dictionary(timing);
-      return html.KeyframeEffect._create_3(target, keyframes, timing_1);
+      return html$.KeyframeEffect._create_3(target, keyframes, timing_1);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -78489,19 +78492,19 @@
     return new self.KeyframeEffect(target, keyframes, timing);
   }
 };
-dart.setSignature(html.KeyframeEffect, {
+dart.setSignature(html$.KeyframeEffect, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.KeyframeEffect, []),
-    new: dart.definiteFunctionType(html.KeyframeEffect, [html.Element, ListOfMap()], [dart.dynamic])
+    _: dart.definiteFunctionType(html$.KeyframeEffect, []),
+    new: dart.definiteFunctionType(html$.KeyframeEffect, [html$.Element, ListOfMap()], [dart.dynamic])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.KeyframeEffect, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.KeyframeEffect, [dart.dynamic, dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3']
 });
-dart.registerExtension(dart.global.KeyframeEffect, html.KeyframeEffect);
+dart.registerExtension(dart.global.KeyframeEffect, html$.KeyframeEffect);
 dart.defineExtensionNames([
   'checkValidity',
   'reportValidity',
@@ -78518,12 +78521,12 @@
   'validity',
   'willValidate'
 ]);
-html.KeygenElement = class KeygenElement extends html.HtmlElement {
+html$.KeygenElement = class KeygenElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.KeygenElement._check(html.document[dartx.createElement]("keygen"));
+    return html$.KeygenElement._check(html$.document[dartx.createElement]("keygen"));
   }
   created() {
     this[dartx.autofocus] = null;
@@ -78540,7 +78543,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(html.Element.isTagSupported('keygen')) && html.KeygenElement.is(html.Element.tag('keygen'));
+    return dart.test(html$.Element.isTagSupported('keygen')) && html$.KeygenElement.is(html$.Element.tag('keygen'));
   }
   get [dartx.autofocus]() {
     return this.autofocus;
@@ -78600,24 +78603,24 @@
     return this.setCustomValidity.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.KeygenElement, 'created');
-dart.setSignature(html.KeygenElement, {
+dart.defineNamedConstructor(html$.KeygenElement, 'created');
+dart.setSignature(html$.KeygenElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.KeygenElement, []),
-    new: dart.definiteFunctionType(html.KeygenElement, []),
-    created: dart.definiteFunctionType(html.KeygenElement, [])
+    _: dart.definiteFunctionType(html$.KeygenElement, []),
+    new: dart.definiteFunctionType(html$.KeygenElement, []),
+    created: dart.definiteFunctionType(html$.KeygenElement, [])
   }),
   fields: () => ({
     [dartx.autofocus]: core.bool,
     [dartx.challenge]: core.String,
     [dartx.disabled]: core.bool,
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.keytype]: core.String,
     [dartx.labels]: ListOfNode(),
     [dartx.name]: core.String,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.willValidate]: core.bool
   }),
   methods: () => ({
@@ -78627,16 +78630,16 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLKeygenElement, html.KeygenElement);
+dart.registerExtension(dart.global.HTMLKeygenElement, html$.KeygenElement);
 dart.defineExtensionNames([
   'value'
 ]);
-html.LIElement = class LIElement extends html.HtmlElement {
+html$.LIElement = class LIElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.LIElement._check(html.document[dartx.createElement]("li"));
+    return html$.LIElement._check(html$.document[dartx.createElement]("li"));
   }
   created() {
     this[dartx.value] = null;
@@ -78649,27 +78652,27 @@
     this.value = value;
   }
 };
-dart.defineNamedConstructor(html.LIElement, 'created');
-dart.setSignature(html.LIElement, {
+dart.defineNamedConstructor(html$.LIElement, 'created');
+dart.setSignature(html$.LIElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.LIElement, []),
-    new: dart.definiteFunctionType(html.LIElement, []),
-    created: dart.definiteFunctionType(html.LIElement, [])
+    _: dart.definiteFunctionType(html$.LIElement, []),
+    new: dart.definiteFunctionType(html$.LIElement, []),
+    created: dart.definiteFunctionType(html$.LIElement, [])
   }),
   fields: () => ({[dartx.value]: core.int})
 });
-dart.registerExtension(dart.global.HTMLLIElement, html.LIElement);
+dart.registerExtension(dart.global.HTMLLIElement, html$.LIElement);
 dart.defineExtensionNames([
   'control',
   'form',
   'htmlFor'
 ]);
-html.LabelElement = class LabelElement extends html.HtmlElement {
+html$.LabelElement = class LabelElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.LabelElement._check(html.document[dartx.createElement]("label"));
+    return html$.LabelElement._check(html$.document[dartx.createElement]("label"));
   }
   created() {
     this[dartx.control] = null;
@@ -78690,29 +78693,29 @@
     this.htmlFor = value;
   }
 };
-dart.defineNamedConstructor(html.LabelElement, 'created');
-dart.setSignature(html.LabelElement, {
+dart.defineNamedConstructor(html$.LabelElement, 'created');
+dart.setSignature(html$.LabelElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.LabelElement, []),
-    new: dart.definiteFunctionType(html.LabelElement, []),
-    created: dart.definiteFunctionType(html.LabelElement, [])
+    _: dart.definiteFunctionType(html$.LabelElement, []),
+    new: dart.definiteFunctionType(html$.LabelElement, []),
+    created: dart.definiteFunctionType(html$.LabelElement, [])
   }),
   fields: () => ({
-    [dartx.control]: html.HtmlElement,
-    [dartx.form]: html.FormElement,
+    [dartx.control]: html$.HtmlElement,
+    [dartx.form]: html$.FormElement,
     [dartx.htmlFor]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLLabelElement, html.LabelElement);
+dart.registerExtension(dart.global.HTMLLabelElement, html$.LabelElement);
 dart.defineExtensionNames([
   'form'
 ]);
-html.LegendElement = class LegendElement extends html.HtmlElement {
+html$.LegendElement = class LegendElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.LegendElement._check(html.document[dartx.createElement]("legend"));
+    return html$.LegendElement._check(html$.document[dartx.createElement]("legend"));
   }
   created() {
     this[dartx.form] = null;
@@ -78722,16 +78725,16 @@
     return this.form;
   }
 };
-dart.defineNamedConstructor(html.LegendElement, 'created');
-dart.setSignature(html.LegendElement, {
+dart.defineNamedConstructor(html$.LegendElement, 'created');
+dart.setSignature(html$.LegendElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.LegendElement, []),
-    new: dart.definiteFunctionType(html.LegendElement, []),
-    created: dart.definiteFunctionType(html.LegendElement, [])
+    _: dart.definiteFunctionType(html$.LegendElement, []),
+    new: dart.definiteFunctionType(html$.LegendElement, []),
+    created: dart.definiteFunctionType(html$.LegendElement, [])
   }),
-  fields: () => ({[dartx.form]: html.FormElement})
+  fields: () => ({[dartx.form]: html$.FormElement})
 });
-dart.registerExtension(dart.global.HTMLLegendElement, html.LegendElement);
+dart.registerExtension(dart.global.HTMLLegendElement, html$.LegendElement);
 dart.defineExtensionNames([
   'supportsImport',
   'crossOrigin',
@@ -78746,12 +78749,12 @@
   'sizes',
   'type'
 ]);
-html.LinkElement = class LinkElement extends html.HtmlElement {
+html$.LinkElement = class LinkElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.LinkElement._check(html.document[dartx.createElement]("link"));
+    return html$.LinkElement._check(html$.document[dartx.createElement]("link"));
   }
   created() {
     this[dartx.crossOrigin] = null;
@@ -78828,29 +78831,29 @@
     return "import" in this;
   }
 };
-dart.defineNamedConstructor(html.LinkElement, 'created');
-dart.setSignature(html.LinkElement, {
+dart.defineNamedConstructor(html$.LinkElement, 'created');
+dart.setSignature(html$.LinkElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.LinkElement, []),
-    new: dart.definiteFunctionType(html.LinkElement, []),
-    created: dart.definiteFunctionType(html.LinkElement, [])
+    _: dart.definiteFunctionType(html$.LinkElement, []),
+    new: dart.definiteFunctionType(html$.LinkElement, []),
+    created: dart.definiteFunctionType(html$.LinkElement, [])
   }),
   fields: () => ({
     [dartx.crossOrigin]: core.String,
     [dartx.disabled]: core.bool,
     [dartx.href]: core.String,
     [dartx.hreflang]: core.String,
-    [dartx.import]: html.Document,
+    [dartx.import]: html$.Document,
     [dartx.integrity]: core.String,
     [dartx.media]: core.String,
     [dartx.rel]: core.String,
-    [dartx.sheet]: html.StyleSheet,
-    [dartx.sizes]: html.DomSettableTokenList,
+    [dartx.sheet]: html$.StyleSheet,
+    [dartx.sizes]: html$.DomSettableTokenList,
     [dartx.type]: core.String
   }),
   getters: () => ({[dartx.supportsImport]: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLLinkElement, html.LinkElement);
+dart.registerExtension(dart.global.HTMLLinkElement, html$.LinkElement);
 dart.defineExtensionNames([
   'assign',
   'reload',
@@ -78867,7 +78870,7 @@
   'protocol',
   'search'
 ]);
-html.Location = class Location extends _interceptors.Interceptor {
+html$.Location = class Location extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -78941,9 +78944,9 @@
     return String(this);
   }
 };
-html.Location[dart.implements] = () => [html.LocationBase];
-dart.setSignature(html.Location, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Location, [])}),
+html$.Location[dart.implements] = () => [html$.LocationBase];
+dart.setSignature(html$.Location, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Location, [])}),
   fields: () => ({
     [dartx.ancestorOrigins]: ListOfString(),
     [dartx.hash]: core.String,
@@ -78962,17 +78965,17 @@
     [dartx.replace]: dart.definiteFunctionType(dart.void, [core.String])
   })
 });
-dart.registerExtension(dart.global.Location, html.Location);
+dart.registerExtension(dart.global.Location, html$.Location);
 dart.defineExtensionNames([
   'areas',
   'name'
 ]);
-html.MapElement = class MapElement extends html.HtmlElement {
+html$.MapElement = class MapElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MapElement._check(html.document[dartx.createElement]("map"));
+    return html$.MapElement._check(html$.document[dartx.createElement]("map"));
   }
   created() {
     this[dartx.areas] = null;
@@ -78989,19 +78992,19 @@
     this.name = value;
   }
 };
-dart.defineNamedConstructor(html.MapElement, 'created');
-dart.setSignature(html.MapElement, {
+dart.defineNamedConstructor(html$.MapElement, 'created');
+dart.setSignature(html$.MapElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MapElement, []),
-    new: dart.definiteFunctionType(html.MapElement, []),
-    created: dart.definiteFunctionType(html.MapElement, [])
+    _: dart.definiteFunctionType(html$.MapElement, []),
+    new: dart.definiteFunctionType(html$.MapElement, []),
+    created: dart.definiteFunctionType(html$.MapElement, [])
   }),
   fields: () => ({
     [dartx.areas]: ListOfNode(),
     [dartx.name]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLMapElement, html.MapElement);
+dart.registerExtension(dart.global.HTMLMapElement, html$.MapElement);
 dart.defineExtensionNames([
   'pause',
   'play',
@@ -79018,12 +79021,12 @@
   'seekable',
   'volume'
 ]);
-html.MediaController = class MediaController extends html.EventTarget {
+html$.MediaController = class MediaController extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MediaController._create_1();
+    return html$.MediaController._create_1();
   }
   static _create_1() {
     return new self.MediaController();
@@ -79086,13 +79089,13 @@
     return this.unpause.apply(this, args);
   }
 };
-dart.setSignature(html.MediaController, {
+dart.setSignature(html$.MediaController, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaController, []),
-    new: dart.definiteFunctionType(html.MediaController, [])
+    _: dart.definiteFunctionType(html$.MediaController, []),
+    new: dart.definiteFunctionType(html$.MediaController, [])
   }),
   fields: () => ({
-    [dartx.buffered]: html.TimeRanges,
+    [dartx.buffered]: html$.TimeRanges,
     [dartx.currentTime]: core.num,
     [dartx.defaultPlaybackRate]: core.num,
     [dartx.duration]: core.double,
@@ -79100,8 +79103,8 @@
     [dartx.paused]: core.bool,
     [dartx.playbackRate]: core.num,
     [dartx.playbackState]: core.String,
-    [dartx.played]: html.TimeRanges,
-    [dartx.seekable]: html.TimeRanges,
+    [dartx.played]: html$.TimeRanges,
+    [dartx.seekable]: html$.TimeRanges,
     [dartx.volume]: core.num
   }),
   methods: () => ({
@@ -79109,17 +79112,17 @@
     [dartx.play]: dart.definiteFunctionType(dart.void, []),
     [dartx.unpause]: dart.definiteFunctionType(dart.void, [])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.MediaController, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.MediaController, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.MediaController, html.MediaController);
+dart.registerExtension(dart.global.MediaController, html$.MediaController);
 dart.defineExtensionNames([
   'deviceId',
   'groupId',
   'kind',
   'label'
 ]);
-html.MediaDeviceInfo = class MediaDeviceInfo extends _interceptors.Interceptor {
+html$.MediaDeviceInfo = class MediaDeviceInfo extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79136,8 +79139,8 @@
     return this.label;
   }
 };
-dart.setSignature(html.MediaDeviceInfo, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaDeviceInfo, [])}),
+dart.setSignature(html$.MediaDeviceInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaDeviceInfo, [])}),
   fields: () => ({
     [dartx.deviceId]: core.String,
     [dartx.groupId]: core.String,
@@ -79145,13 +79148,13 @@
     [dartx.label]: core.String
   })
 });
-dart.registerExtension(dart.global.MediaDeviceInfo, html.MediaDeviceInfo);
+dart.registerExtension(dart.global.MediaDeviceInfo, html$.MediaDeviceInfo);
 const _getUserMedia_1 = Symbol('_getUserMedia_1');
 dart.defineExtensionNames([
   'enumerateDevices',
   'getUserMedia'
 ]);
-html.MediaDevices = class MediaDevices extends _interceptors.Interceptor {
+html$.MediaDevices = class MediaDevices extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79166,20 +79169,20 @@
     return this.getUserMedia.apply(this, args);
   }
 };
-dart.setSignature(html.MediaDevices, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaDevices, [])}),
+dart.setSignature(html$.MediaDevices, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaDevices, [])}),
   methods: () => ({
     [dartx.enumerateDevices]: dart.definiteFunctionType(async.Future, []),
     [dartx.getUserMedia]: dart.definiteFunctionType(async.Future, [core.Map]),
     [_getUserMedia_1]: dart.definiteFunctionType(async.Future, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.MediaDevices, html.MediaDevices);
+dart.registerExtension(dart.global.MediaDevices, html$.MediaDevices);
 dart.defineExtensionNames([
   'initData',
   'initDataType'
 ]);
-html.MediaEncryptedEvent = class MediaEncryptedEvent extends html.Event {
+html$.MediaEncryptedEvent = class MediaEncryptedEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79187,9 +79190,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MediaEncryptedEvent._create_1(type, eventInitDict_1);
+      return html$.MediaEncryptedEvent._create_1(type, eventInitDict_1);
     }
-    return html.MediaEncryptedEvent._create_2(type);
+    return html$.MediaEncryptedEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MediaEncryptedEvent(type, eventInitDict);
@@ -79204,26 +79207,26 @@
     return this.initDataType;
   }
 };
-dart.setSignature(html.MediaEncryptedEvent, {
+dart.setSignature(html$.MediaEncryptedEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaEncryptedEvent, []),
-    new: dart.definiteFunctionType(html.MediaEncryptedEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MediaEncryptedEvent, []),
+    new: dart.definiteFunctionType(html$.MediaEncryptedEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.initData]: typed_data.ByteBuffer,
     [dartx.initDataType]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaEncryptedEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MediaEncryptedEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MediaEncryptedEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaEncryptedEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MediaEncryptedEvent, html.MediaEncryptedEvent);
+dart.registerExtension(dart.global.MediaEncryptedEvent, html$.MediaEncryptedEvent);
 dart.defineExtensionNames([
   'code'
 ]);
-html.MediaError = class MediaError extends _interceptors.Interceptor {
+html$.MediaError = class MediaError extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79231,8 +79234,8 @@
     return this.code;
   }
 };
-dart.setSignature(html.MediaError, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaError, [])}),
+dart.setSignature(html$.MediaError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaError, [])}),
   fields: () => ({[dartx.code]: core.int}),
   sfields: () => ({
     MEDIA_ERR_ABORTED: core.int,
@@ -79241,16 +79244,16 @@
     MEDIA_ERR_SRC_NOT_SUPPORTED: core.int
   })
 });
-html.MediaError.MEDIA_ERR_ABORTED = 1;
-html.MediaError.MEDIA_ERR_DECODE = 3;
-html.MediaError.MEDIA_ERR_NETWORK = 2;
-html.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
-dart.registerExtension(dart.global.MediaError, html.MediaError);
+html$.MediaError.MEDIA_ERR_ABORTED = 1;
+html$.MediaError.MEDIA_ERR_DECODE = 3;
+html$.MediaError.MEDIA_ERR_NETWORK = 2;
+html$.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
+dart.registerExtension(dart.global.MediaError, html$.MediaError);
 dart.defineExtensionNames([
   'code',
   'systemCode'
 ]);
-html.MediaKeyError = class MediaKeyError extends _interceptors.Interceptor {
+html$.MediaKeyError = class MediaKeyError extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79261,8 +79264,8 @@
     return this.systemCode;
   }
 };
-dart.setSignature(html.MediaKeyError, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaKeyError, [])}),
+dart.setSignature(html$.MediaKeyError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeyError, [])}),
   fields: () => ({
     [dartx.code]: core.int,
     [dartx.systemCode]: core.int
@@ -79276,13 +79279,13 @@
     MEDIA_KEYERR_UNKNOWN: core.int
   })
 });
-html.MediaKeyError.MEDIA_KEYERR_CLIENT = 2;
-html.MediaKeyError.MEDIA_KEYERR_DOMAIN = 6;
-html.MediaKeyError.MEDIA_KEYERR_HARDWARECHANGE = 5;
-html.MediaKeyError.MEDIA_KEYERR_OUTPUT = 4;
-html.MediaKeyError.MEDIA_KEYERR_SERVICE = 3;
-html.MediaKeyError.MEDIA_KEYERR_UNKNOWN = 1;
-dart.registerExtension(dart.global.MediaKeyError, html.MediaKeyError);
+html$.MediaKeyError.MEDIA_KEYERR_CLIENT = 2;
+html$.MediaKeyError.MEDIA_KEYERR_DOMAIN = 6;
+html$.MediaKeyError.MEDIA_KEYERR_HARDWARECHANGE = 5;
+html$.MediaKeyError.MEDIA_KEYERR_OUTPUT = 4;
+html$.MediaKeyError.MEDIA_KEYERR_SERVICE = 3;
+html$.MediaKeyError.MEDIA_KEYERR_UNKNOWN = 1;
+dart.registerExtension(dart.global.MediaKeyError, html$.MediaKeyError);
 dart.defineExtensionNames([
   'defaultUrl',
   'errorCode',
@@ -79292,7 +79295,7 @@
   'sessionId',
   'systemCode'
 ]);
-html.MediaKeyEvent = class MediaKeyEvent extends html.Event {
+html$.MediaKeyEvent = class MediaKeyEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79300,9 +79303,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MediaKeyEvent._create_1(type, eventInitDict_1);
+      return html$.MediaKeyEvent._create_1(type, eventInitDict_1);
     }
-    return html.MediaKeyEvent._create_2(type);
+    return html$.MediaKeyEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MediaKeyEvent(type, eventInitDict);
@@ -79332,14 +79335,14 @@
     return this.systemCode;
   }
 };
-dart.setSignature(html.MediaKeyEvent, {
+dart.setSignature(html$.MediaKeyEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaKeyEvent, []),
-    new: dart.definiteFunctionType(html.MediaKeyEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MediaKeyEvent, []),
+    new: dart.definiteFunctionType(html$.MediaKeyEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.defaultUrl]: core.String,
-    [dartx.errorCode]: html.MediaKeyError,
+    [dartx.errorCode]: html$.MediaKeyError,
     [dartx.initData]: typed_data.Uint8List,
     [dartx.keySystem]: core.String,
     [dartx.message]: typed_data.Uint8List,
@@ -79347,17 +79350,17 @@
     [dartx.systemCode]: core.int
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaKeyEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MediaKeyEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MediaKeyEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaKeyEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MediaKeyEvent, html.MediaKeyEvent);
+dart.registerExtension(dart.global.MediaKeyEvent, html$.MediaKeyEvent);
 dart.defineExtensionNames([
   'message',
   'messageType'
 ]);
-html.MediaKeyMessageEvent = class MediaKeyMessageEvent extends html.Event {
+html$.MediaKeyMessageEvent = class MediaKeyMessageEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79365,9 +79368,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MediaKeyMessageEvent._create_1(type, eventInitDict_1);
+      return html$.MediaKeyMessageEvent._create_1(type, eventInitDict_1);
     }
-    return html.MediaKeyMessageEvent._create_2(type);
+    return html$.MediaKeyMessageEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MediaKeyMessageEvent(type, eventInitDict);
@@ -79382,23 +79385,23 @@
     return this.messageType;
   }
 };
-dart.setSignature(html.MediaKeyMessageEvent, {
+dart.setSignature(html$.MediaKeyMessageEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaKeyMessageEvent, []),
-    new: dart.definiteFunctionType(html.MediaKeyMessageEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MediaKeyMessageEvent, []),
+    new: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.message]: typed_data.ByteBuffer,
     [dartx.messageType]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaKeyMessageEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MediaKeyMessageEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaKeyMessageEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MediaKeyMessageEvent, html.MediaKeyMessageEvent);
-const _update = Symbol('_update');
+dart.registerExtension(dart.global.MediaKeyMessageEvent, html$.MediaKeyMessageEvent);
+const _update$ = Symbol('_update');
 dart.defineExtensionNames([
   'close',
   'generateRequest',
@@ -79409,7 +79412,7 @@
   'keyStatuses',
   'sessionId'
 ]);
-html.MediaKeySession = class MediaKeySession extends html.EventTarget {
+html$.MediaKeySession = class MediaKeySession extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79437,16 +79440,16 @@
   [dartx.remove](...args) {
     return this.remove.apply(this, args);
   }
-  [_update](...args) {
+  [_update$](...args) {
     return this.update.apply(this, args);
   }
 };
-dart.setSignature(html.MediaKeySession, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaKeySession, [])}),
+dart.setSignature(html$.MediaKeySession, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeySession, [])}),
   fields: () => ({
     [dartx.closed]: async.Future,
     [dartx.expiration]: core.double,
-    [dartx.keyStatuses]: html.MediaKeyStatusMap,
+    [dartx.keyStatuses]: html$.MediaKeyStatusMap,
     [dartx.sessionId]: core.String
   }),
   methods: () => ({
@@ -79454,14 +79457,14 @@
     [dartx.generateRequest]: dart.definiteFunctionType(async.Future, [core.String, dart.dynamic]),
     [dartx.load]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.remove]: dart.definiteFunctionType(async.Future, []),
-    [_update]: dart.definiteFunctionType(async.Future, [dart.dynamic])
+    [_update$]: dart.definiteFunctionType(async.Future, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.MediaKeySession, html.MediaKeySession);
+dart.registerExtension(dart.global.MediaKeySession, html$.MediaKeySession);
 dart.defineExtensionNames([
   'size'
 ]);
-html.MediaKeyStatusMap = class MediaKeyStatusMap extends _interceptors.Interceptor {
+html$.MediaKeyStatusMap = class MediaKeyStatusMap extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79469,18 +79472,18 @@
     return this.size;
   }
 };
-dart.setSignature(html.MediaKeyStatusMap, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaKeyStatusMap, [])}),
+dart.setSignature(html$.MediaKeyStatusMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeyStatusMap, [])}),
   fields: () => ({[dartx.size]: core.int})
 });
-dart.registerExtension(dart.global.MediaKeyStatusMap, html.MediaKeyStatusMap);
+dart.registerExtension(dart.global.MediaKeyStatusMap, html$.MediaKeyStatusMap);
 const _getConfiguration_1 = Symbol('_getConfiguration_1');
 dart.defineExtensionNames([
   'createMediaKeys',
   'getConfiguration',
   'keySystem'
 ]);
-html.MediaKeySystemAccess = class MediaKeySystemAccess extends _interceptors.Interceptor {
+html$.MediaKeySystemAccess = class MediaKeySystemAccess extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79497,8 +79500,8 @@
     return this.getConfiguration.apply(this, args);
   }
 };
-dart.setSignature(html.MediaKeySystemAccess, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaKeySystemAccess, [])}),
+dart.setSignature(html$.MediaKeySystemAccess, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeySystemAccess, [])}),
   fields: () => ({[dartx.keySystem]: core.String}),
   methods: () => ({
     [dartx.createMediaKeys]: dart.definiteFunctionType(async.Future, []),
@@ -79506,12 +79509,12 @@
     [_getConfiguration_1]: dart.definiteFunctionType(dart.dynamic, [])
   })
 });
-dart.registerExtension(dart.global.MediaKeySystemAccess, html.MediaKeySystemAccess);
+dart.registerExtension(dart.global.MediaKeySystemAccess, html$.MediaKeySystemAccess);
 const _createSession = Symbol('_createSession');
 dart.defineExtensionNames([
   'setServerCertificate'
 ]);
-html.MediaKeys = class MediaKeys extends _interceptors.Interceptor {
+html$.MediaKeys = class MediaKeys extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79522,14 +79525,14 @@
     return this.setServerCertificate.apply(this, args);
   }
 };
-dart.setSignature(html.MediaKeys, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaKeys, [])}),
+dart.setSignature(html$.MediaKeys, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaKeys, [])}),
   methods: () => ({
-    [_createSession]: dart.definiteFunctionType(html.MediaKeySession, [], [core.String]),
+    [_createSession]: dart.definiteFunctionType(html$.MediaKeySession, [], [core.String]),
     [dartx.setServerCertificate]: dart.definiteFunctionType(async.Future, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.MediaKeys, html.MediaKeys);
+dart.registerExtension(dart.global.MediaKeys, html$.MediaKeys);
 dart.defineExtensionNames([
   'appendMedium',
   'deleteMedium',
@@ -79537,7 +79540,7 @@
   'length',
   'mediaText'
 ]);
-html.MediaList = class MediaList extends _interceptors.Interceptor {
+html$.MediaList = class MediaList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79560,8 +79563,8 @@
     return this.item.apply(this, args);
   }
 };
-dart.setSignature(html.MediaList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaList, [])}),
+dart.setSignature(html$.MediaList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaList, [])}),
   fields: () => ({
     [dartx.length]: core.int,
     [dartx.mediaText]: core.String
@@ -79572,7 +79575,7 @@
     [dartx.item]: dart.definiteFunctionType(core.String, [core.int])
   })
 });
-dart.registerExtension(dart.global.MediaList, html.MediaList);
+dart.registerExtension(dart.global.MediaList, html$.MediaList);
 dart.defineExtensionNames([
   'addListener',
   'removeListener',
@@ -79580,7 +79583,7 @@
   'matches',
   'media'
 ]);
-html.MediaQueryList = class MediaQueryList extends html.EventTarget {
+html$.MediaQueryList = class MediaQueryList extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79597,33 +79600,33 @@
     return this.removeListener.apply(this, args);
   }
   get [dartx.onChange]() {
-    return html.MediaQueryList.changeEvent.forTarget(this);
+    return html$.MediaQueryList.changeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.MediaQueryList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaQueryList, [])}),
+dart.setSignature(html$.MediaQueryList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaQueryList, [])}),
   fields: () => ({
     [dartx.matches]: core.bool,
     [dartx.media]: core.String
   }),
-  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
-    [dartx.addListener]: dart.definiteFunctionType(dart.void, [html.EventListener]),
-    [dartx.removeListener]: dart.definiteFunctionType(dart.void, [html.EventListener])
+    [dartx.addListener]: dart.definiteFunctionType(dart.void, [html$.EventListener]),
+    [dartx.removeListener]: dart.definiteFunctionType(dart.void, [html$.EventListener])
   }),
   sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.MediaQueryList, {
+dart.defineLazy(html$.MediaQueryList, {
   get changeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.MediaQueryList, html.MediaQueryList);
+dart.registerExtension(dart.global.MediaQueryList, html$.MediaQueryList);
 dart.defineExtensionNames([
   'matches',
   'media'
 ]);
-html.MediaQueryListEvent = class MediaQueryListEvent extends html.Event {
+html$.MediaQueryListEvent = class MediaQueryListEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79631,9 +79634,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MediaQueryListEvent._create_1(type, eventInitDict_1);
+      return html$.MediaQueryListEvent._create_1(type, eventInitDict_1);
     }
-    return html.MediaQueryListEvent._create_2(type);
+    return html$.MediaQueryListEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MediaQueryListEvent(type, eventInitDict);
@@ -79648,32 +79651,32 @@
     return this.media;
   }
 };
-dart.setSignature(html.MediaQueryListEvent, {
+dart.setSignature(html$.MediaQueryListEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaQueryListEvent, []),
-    new: dart.definiteFunctionType(html.MediaQueryListEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MediaQueryListEvent, []),
+    new: dart.definiteFunctionType(html$.MediaQueryListEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.matches]: core.bool,
     [dartx.media]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaQueryListEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MediaQueryListEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MediaQueryListEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaQueryListEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MediaQueryListEvent, html.MediaQueryListEvent);
+dart.registerExtension(dart.global.MediaQueryListEvent, html$.MediaQueryListEvent);
 dart.defineExtensionNames([
   'activate',
   'deactivate'
 ]);
-html.MediaSession = class MediaSession extends _interceptors.Interceptor {
+html$.MediaSession = class MediaSession extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MediaSession._create_1();
+    return html$.MediaSession._create_1();
   }
   static _create_1() {
     return new self.MediaSession();
@@ -79685,19 +79688,19 @@
     return this.deactivate.apply(this, args);
   }
 };
-dart.setSignature(html.MediaSession, {
+dart.setSignature(html$.MediaSession, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaSession, []),
-    new: dart.definiteFunctionType(html.MediaSession, [])
+    _: dart.definiteFunctionType(html$.MediaSession, []),
+    new: dart.definiteFunctionType(html$.MediaSession, [])
   }),
   methods: () => ({
     [dartx.activate]: dart.definiteFunctionType(dart.void, []),
     [dartx.deactivate]: dart.definiteFunctionType(dart.void, [])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.MediaSession, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.MediaSession, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.MediaSession, html.MediaSession);
+dart.registerExtension(dart.global.MediaSession, html$.MediaSession);
 dart.defineExtensionNames([
   'addSourceBuffer',
   'endOfStream',
@@ -79707,12 +79710,12 @@
   'readyState',
   'sourceBuffers'
 ]);
-html.MediaSource = class MediaSource extends html.EventTarget {
+html$.MediaSource = class MediaSource extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MediaSource._create_1();
+    return html$.MediaSource._create_1();
   }
   static _create_1() {
     return new self.MediaSource();
@@ -79745,30 +79748,30 @@
     return this.removeSourceBuffer.apply(this, args);
   }
 };
-dart.setSignature(html.MediaSource, {
+dart.setSignature(html$.MediaSource, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaSource, []),
-    new: dart.definiteFunctionType(html.MediaSource, [])
+    _: dart.definiteFunctionType(html$.MediaSource, []),
+    new: dart.definiteFunctionType(html$.MediaSource, [])
   }),
   fields: () => ({
-    [dartx.activeSourceBuffers]: html.SourceBufferList,
+    [dartx.activeSourceBuffers]: html$.SourceBufferList,
     [dartx.duration]: core.num,
     [dartx.readyState]: core.String,
-    [dartx.sourceBuffers]: html.SourceBufferList
+    [dartx.sourceBuffers]: html$.SourceBufferList
   }),
   methods: () => ({
-    [dartx.addSourceBuffer]: dart.definiteFunctionType(html.SourceBuffer, [core.String]),
+    [dartx.addSourceBuffer]: dart.definiteFunctionType(html$.SourceBuffer, [core.String]),
     [dartx.endOfStream]: dart.definiteFunctionType(dart.void, [], [core.String]),
-    [dartx.removeSourceBuffer]: dart.definiteFunctionType(dart.void, [html.SourceBuffer])
+    [dartx.removeSourceBuffer]: dart.definiteFunctionType(dart.void, [html$.SourceBuffer])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaSource, []),
+    _create_1: dart.definiteFunctionType(html$.MediaSource, []),
     isTypeSupported: dart.definiteFunctionType(core.bool, [core.String])
   }),
   names: ['_create_1', 'isTypeSupported']
 });
-dart.registerExtension(dart.global.MediaSource, html.MediaSource);
+dart.registerExtension(dart.global.MediaSource, html$.MediaSource);
 dart.defineExtensionNames([
   'addTrack',
   'clone',
@@ -79786,20 +79789,20 @@
   'id',
   'label'
 ]);
-html.MediaStream = class MediaStream extends html.EventTarget {
+html$.MediaStream = class MediaStream extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(stream_OR_tracks) {
     if (stream_OR_tracks === void 0) stream_OR_tracks = null;
     if (stream_OR_tracks == null) {
-      return html.MediaStream._create_1();
+      return html$.MediaStream._create_1();
     }
-    if (html.MediaStream.is(stream_OR_tracks) || stream_OR_tracks == null) {
-      return html.MediaStream._create_2(stream_OR_tracks);
+    if (html$.MediaStream.is(stream_OR_tracks) || stream_OR_tracks == null) {
+      return html$.MediaStream._create_2(stream_OR_tracks);
     }
     if (ListOfMediaStreamTrack().is(stream_OR_tracks) || stream_OR_tracks == null) {
-      return html.MediaStream._create_3(stream_OR_tracks);
+      return html$.MediaStream._create_3(stream_OR_tracks);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -79849,22 +79852,22 @@
     return this.stop.apply(this, args);
   }
   get [dartx.onAddTrack]() {
-    return html.MediaStream.addTrackEvent.forTarget(this);
+    return html$.MediaStream.addTrackEvent.forTarget(this);
   }
   get [dartx.onEnded]() {
-    return html.MediaStream.endedEvent.forTarget(this);
+    return html$.MediaStream.endedEvent.forTarget(this);
   }
   get [dartx.onRemoveTrack]() {
-    return html.MediaStream.removeTrackEvent.forTarget(this);
+    return html$.MediaStream.removeTrackEvent.forTarget(this);
   }
   static get supported() {
-    return !!(html.window[dartx.navigator].getUserMedia || html.window[dartx.navigator].webkitGetUserMedia || html.window[dartx.navigator].mozGetUserMedia || html.window[dartx.navigator].msGetUserMedia);
+    return !!(html$.window[dartx.navigator].getUserMedia || html$.window[dartx.navigator].webkitGetUserMedia || html$.window[dartx.navigator].mozGetUserMedia || html$.window[dartx.navigator].msGetUserMedia);
   }
 };
-dart.setSignature(html.MediaStream, {
+dart.setSignature(html$.MediaStream, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaStream, []),
-    new: dart.definiteFunctionType(html.MediaStream, [], [dart.dynamic])
+    _: dart.definiteFunctionType(html$.MediaStream, []),
+    new: dart.definiteFunctionType(html$.MediaStream, [], [dart.dynamic])
   }),
   fields: () => ({
     [dartx.active]: core.bool,
@@ -79873,18 +79876,18 @@
     [dartx.label]: core.String
   }),
   getters: () => ({
-    [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onRemoveTrack]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRemoveTrack]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
-    [dartx.addTrack]: dart.definiteFunctionType(dart.void, [html.MediaStreamTrack]),
-    [dartx.clone]: dart.definiteFunctionType(html.MediaStream, []),
-    [dartx.getAudioTracks]: dart.definiteFunctionType(core.List$(html.MediaStreamTrack), []),
-    [dartx.getTrackById]: dart.definiteFunctionType(html.MediaStreamTrack, [core.String]),
-    [dartx.getTracks]: dart.definiteFunctionType(core.List$(html.MediaStreamTrack), []),
-    [dartx.getVideoTracks]: dart.definiteFunctionType(core.List$(html.MediaStreamTrack), []),
-    [dartx.removeTrack]: dart.definiteFunctionType(dart.void, [html.MediaStreamTrack]),
+    [dartx.addTrack]: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrack]),
+    [dartx.clone]: dart.definiteFunctionType(html$.MediaStream, []),
+    [dartx.getAudioTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.MediaStreamTrack, [core.String]),
+    [dartx.getTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
+    [dartx.getVideoTracks]: dart.definiteFunctionType(core.List$(html$.MediaStreamTrack), []),
+    [dartx.removeTrack]: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrack]),
     [dartx.stop]: dart.definiteFunctionType(dart.void, [])
   }),
   sfields: () => ({
@@ -79894,13 +79897,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaStream, []),
-    _create_2: dart.definiteFunctionType(html.MediaStream, [dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.MediaStream, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MediaStream, []),
+    _create_2: dart.definiteFunctionType(html$.MediaStream, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.MediaStream, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3']
 });
-dart.defineLazy(html.MediaStream, {
+dart.defineLazy(html$.MediaStream, {
   get addTrackEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('addtrack'));
   },
@@ -79911,11 +79914,11 @@
     return dart.const(new (EventStreamProviderOfEvent())('removetrack'));
   }
 });
-dart.registerExtension(dart.global.MediaStream, html.MediaStream);
+dart.registerExtension(dart.global.MediaStream, html$.MediaStream);
 dart.defineExtensionNames([
   'stream'
 ]);
-html.MediaStreamEvent = class MediaStreamEvent extends html.Event {
+html$.MediaStreamEvent = class MediaStreamEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79923,9 +79926,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MediaStreamEvent._create_1(type, eventInitDict_1);
+      return html$.MediaStreamEvent._create_1(type, eventInitDict_1);
     }
-    return html.MediaStreamEvent._create_2(type);
+    return html$.MediaStreamEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MediaStreamEvent(type, eventInitDict);
@@ -79940,20 +79943,20 @@
     return this.stream;
   }
 };
-dart.setSignature(html.MediaStreamEvent, {
+dart.setSignature(html$.MediaStreamEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MediaStreamEvent, []),
-    new: dart.definiteFunctionType(html.MediaStreamEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MediaStreamEvent, []),
+    new: dart.definiteFunctionType(html$.MediaStreamEvent, [core.String], [core.Map])
   }),
-  fields: () => ({[dartx.stream]: html.MediaStream}),
+  fields: () => ({[dartx.stream]: html$.MediaStream}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MediaStreamEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MediaStreamEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MediaStreamEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MediaStreamEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MediaStreamEvent, html.MediaStreamEvent);
+dart.registerExtension(dart.global.MediaStreamEvent, html$.MediaStreamEvent);
 dart.defineExtensionNames([
   'clone',
   'stop',
@@ -79967,7 +79970,7 @@
   'muted',
   'readyState'
 ]);
-html.MediaStreamTrack = class MediaStreamTrack extends html.EventTarget {
+html$.MediaStreamTrack = class MediaStreamTrack extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -79997,7 +80000,7 @@
   }
   static getSources() {
     let completer = CompleterOfListOfSourceInfo().new();
-    html.MediaStreamTrack._getSources(dart.fn(value => {
+    html$.MediaStreamTrack._getSources(dart.fn(value => {
       completer.complete(value);
     }, ListOfSourceInfoToNull()));
     return completer.future;
@@ -80006,17 +80009,17 @@
     return this.stop.apply(this, args);
   }
   get [dartx.onEnded]() {
-    return html.MediaStreamTrack.endedEvent.forTarget(this);
+    return html$.MediaStreamTrack.endedEvent.forTarget(this);
   }
   get [dartx.onMute]() {
-    return html.MediaStreamTrack.muteEvent.forTarget(this);
+    return html$.MediaStreamTrack.muteEvent.forTarget(this);
   }
   get [dartx.onUnmute]() {
-    return html.MediaStreamTrack.unmuteEvent.forTarget(this);
+    return html$.MediaStreamTrack.unmuteEvent.forTarget(this);
   }
 };
-dart.setSignature(html.MediaStreamTrack, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaStreamTrack, [])}),
+dart.setSignature(html$.MediaStreamTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaStreamTrack, [])}),
   fields: () => ({
     [dartx.enabled]: core.bool,
     [dartx.id]: core.String,
@@ -80026,12 +80029,12 @@
     [dartx.readyState]: core.String
   }),
   getters: () => ({
-    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMute]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onUnmute]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMute]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onUnmute]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
-    [dartx.clone]: dart.definiteFunctionType(html.MediaStreamTrack, []),
+    [dartx.clone]: dart.definiteFunctionType(html$.MediaStreamTrack, []),
     [dartx.stop]: dart.definiteFunctionType(dart.void, [])
   }),
   sfields: () => ({
@@ -80040,12 +80043,12 @@
     unmuteEvent: EventStreamProviderOfEvent()
   }),
   statics: () => ({
-    _getSources: dart.definiteFunctionType(dart.void, [html.MediaStreamTrackSourcesCallback]),
-    getSources: dart.definiteFunctionType(async.Future$(core.List$(html.SourceInfo)), [])
+    _getSources: dart.definiteFunctionType(dart.void, [html$.MediaStreamTrackSourcesCallback]),
+    getSources: dart.definiteFunctionType(async.Future$(core.List$(html$.SourceInfo)), [])
   }),
   names: ['_getSources', 'getSources']
 });
-dart.defineLazy(html.MediaStreamTrack, {
+dart.defineLazy(html$.MediaStreamTrack, {
   get endedEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('ended'));
   },
@@ -80056,11 +80059,11 @@
     return dart.const(new (EventStreamProviderOfEvent())('unmute'));
   }
 });
-dart.registerExtension(dart.global.MediaStreamTrack, html.MediaStreamTrack);
+dart.registerExtension(dart.global.MediaStreamTrack, html$.MediaStreamTrack);
 dart.defineExtensionNames([
   'track'
 ]);
-html.MediaStreamTrackEvent = class MediaStreamTrackEvent extends html.Event {
+html$.MediaStreamTrackEvent = class MediaStreamTrackEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80071,19 +80074,19 @@
     return this.track;
   }
 };
-dart.setSignature(html.MediaStreamTrackEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MediaStreamTrackEvent, [])}),
-  fields: () => ({[dartx.track]: html.MediaStreamTrack}),
+dart.setSignature(html$.MediaStreamTrackEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MediaStreamTrackEvent, [])}),
+  fields: () => ({[dartx.track]: html$.MediaStreamTrack}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.MediaStreamTrackEvent, html.MediaStreamTrackEvent);
-html.MediaStreamTrackSourcesCallback = dart.typedef('MediaStreamTrackSourcesCallback', () => dart.functionType(dart.void, [ListOfSourceInfo()]));
+dart.registerExtension(dart.global.MediaStreamTrackEvent, html$.MediaStreamTrackEvent);
+html$.MediaStreamTrackSourcesCallback = dart.typedef('MediaStreamTrackSourcesCallback', () => dart.functionType(dart.void, [ListOfSourceInfo()]));
 dart.defineExtensionNames([
   'jsHeapSizeLimit',
   'totalJSHeapSize',
   'usedJSHeapSize'
 ]);
-html.MemoryInfo = class MemoryInfo extends _interceptors.Interceptor {
+html$.MemoryInfo = class MemoryInfo extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80097,25 +80100,25 @@
     return this.usedJSHeapSize;
   }
 };
-dart.setSignature(html.MemoryInfo, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MemoryInfo, [])}),
+dart.setSignature(html$.MemoryInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MemoryInfo, [])}),
   fields: () => ({
     [dartx.jsHeapSizeLimit]: core.int,
     [dartx.totalJSHeapSize]: core.int,
     [dartx.usedJSHeapSize]: core.int
   })
 });
-dart.registerExtension(dart.global.MemoryInfo, html.MemoryInfo);
+dart.registerExtension(dart.global.MemoryInfo, html$.MemoryInfo);
 dart.defineExtensionNames([
   'label',
   'type'
 ]);
-html.MenuElement = class MenuElement extends html.HtmlElement {
+html$.MenuElement = class MenuElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MenuElement._check(html.document[dartx.createElement]("menu"));
+    return html$.MenuElement._check(html$.document[dartx.createElement]("menu"));
   }
   created() {
     this[dartx.label] = null;
@@ -80135,19 +80138,19 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(html.MenuElement, 'created');
-dart.setSignature(html.MenuElement, {
+dart.defineNamedConstructor(html$.MenuElement, 'created');
+dart.setSignature(html$.MenuElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MenuElement, []),
-    new: dart.definiteFunctionType(html.MenuElement, []),
-    created: dart.definiteFunctionType(html.MenuElement, [])
+    _: dart.definiteFunctionType(html$.MenuElement, []),
+    new: dart.definiteFunctionType(html$.MenuElement, []),
+    created: dart.definiteFunctionType(html$.MenuElement, [])
   }),
   fields: () => ({
     [dartx.label]: core.String,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLMenuElement, html.MenuElement);
+dart.registerExtension(dart.global.HTMLMenuElement, html$.MenuElement);
 dart.defineExtensionNames([
   'checked',
   'defaultValue',
@@ -80157,7 +80160,7 @@
   'radiogroup',
   'type'
 ]);
-html.MenuItemElement = class MenuItemElement extends html.HtmlElement {
+html$.MenuItemElement = class MenuItemElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80214,11 +80217,11 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(html.MenuItemElement, 'created');
-dart.setSignature(html.MenuItemElement, {
+dart.defineNamedConstructor(html$.MenuItemElement, 'created');
+dart.setSignature(html$.MenuItemElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MenuItemElement, []),
-    created: dart.definiteFunctionType(html.MenuItemElement, [])
+    _: dart.definiteFunctionType(html$.MenuItemElement, []),
+    created: dart.definiteFunctionType(html$.MenuItemElement, [])
   }),
   fields: () => ({
     [dartx.checked]: core.bool,
@@ -80230,12 +80233,12 @@
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLMenuItemElement, html.MenuItemElement);
+dart.registerExtension(dart.global.HTMLMenuItemElement, html$.MenuItemElement);
 dart.defineExtensionNames([
   'port1',
   'port2'
 ]);
-html.MessageChannel = class MessageChannel extends _interceptors.Interceptor {
+html$.MessageChannel = class MessageChannel extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80246,14 +80249,14 @@
     return this.port2;
   }
 };
-dart.setSignature(html.MessageChannel, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MessageChannel, [])}),
+dart.setSignature(html$.MessageChannel, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MessageChannel, [])}),
   fields: () => ({
-    [dartx.port1]: html.MessagePort,
-    [dartx.port2]: html.MessagePort
+    [dartx.port1]: html$.MessagePort,
+    [dartx.port2]: html$.MessagePort
   })
 });
-dart.registerExtension(dart.global.MessageChannel, html.MessageChannel);
+dart.registerExtension(dart.global.MessageChannel, html$.MessageChannel);
 const _initMessageEvent = Symbol('_initMessageEvent');
 const _get_data = Symbol('_get_data');
 const _get_source = Symbol('_get_source');
@@ -80263,7 +80266,7 @@
   'lastEventId',
   'origin'
 ]);
-html.MessageEvent = class MessageEvent extends html.Event {
+html$.MessageEvent = class MessageEvent extends html$.Event {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
@@ -80273,12 +80276,12 @@
     let source = opts && 'source' in opts ? opts.source : null;
     let messagePorts = opts && 'messagePorts' in opts ? opts.messagePorts : null;
     if (source == null) {
-      source = html.window;
+      source = html$.window;
     }
     if (!dart.test(html_common.Device.isIE)) {
       return new self.MessageEvent(type, {bubbles: canBubble, cancelable: cancelable, data: data, origin: origin, lastEventId: lastEventId, source: source, ports: messagePorts});
     }
-    let event = html.MessageEvent._check(html.document[_createEvent]("MessageEvent"));
+    let event = html$.MessageEvent._check(html$.document[_createEvent]("MessageEvent"));
     event[_initMessageEvent](type, canBubble, cancelable, data, origin, lastEventId, source, messagePorts);
     return event;
   }
@@ -80292,9 +80295,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MessageEvent._create_1(type, eventInitDict_1);
+      return html$.MessageEvent._create_1(type, eventInitDict_1);
     }
-    return html.MessageEvent._create_2(type);
+    return html$.MessageEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MessageEvent(type, eventInitDict);
@@ -80309,7 +80312,7 @@
     return this.origin;
   }
   get [dartx.source]() {
-    return html._convertNativeToDart_EventTarget(this[_get_source]);
+    return html$._convertNativeToDart_EventTarget(this[_get_source]);
   }
   get [_get_source]() {
     return this.source;
@@ -80318,10 +80321,10 @@
     return this.initMessageEvent.apply(this, args);
   }
 };
-dart.setSignature(html.MessageEvent, {
+dart.setSignature(html$.MessageEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.MessageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, data: core.Object, origin: core.String, lastEventId: core.String, source: html.Window, messagePorts: ListOfMessagePort()}),
-    _: dart.definiteFunctionType(html.MessageEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.MessageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, data: core.Object, origin: core.String, lastEventId: core.String, source: html$.Window, messagePorts: ListOfMessagePort()}),
+    _: dart.definiteFunctionType(html$.MessageEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [_get_data]: dart.dynamic,
@@ -80331,23 +80334,23 @@
   }),
   getters: () => ({
     [dartx.data]: dart.definiteFunctionType(dart.dynamic, []),
-    [dartx.source]: dart.definiteFunctionType(html.EventTarget, [])
+    [dartx.source]: dart.definiteFunctionType(html$.EventTarget, [])
   }),
-  methods: () => ({[_initMessageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object, core.String, core.String, html.Window, ListOfMessagePort()])}),
+  methods: () => ({[_initMessageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.Object, core.String, core.String, html$.Window, ListOfMessagePort()])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MessageEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MessageEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MessageEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MessageEvent, html.MessageEvent);
+dart.registerExtension(dart.global.MessageEvent, html$.MessageEvent);
 dart.defineExtensionNames([
   'close',
   'postMessage',
   'start',
   'onMessage'
 ]);
-html.MessagePort = class MessagePort extends html.EventTarget {
+html$.MessagePort = class MessagePort extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80375,12 +80378,12 @@
     return this.start.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.MessagePort.messageEvent.forTarget(this);
+    return html$.MessagePort.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.MessagePort, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MessagePort, [])}),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+dart.setSignature(html$.MessagePort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MessagePort, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
     [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
@@ -80390,23 +80393,23 @@
   }),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.MessagePort, {
+dart.defineLazy(html$.MessagePort, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.MessagePort, html.MessagePort);
+dart.registerExtension(dart.global.MessagePort, html$.MessagePort);
 dart.defineExtensionNames([
   'content',
   'httpEquiv',
   'name'
 ]);
-html.MetaElement = class MetaElement extends html.HtmlElement {
+html$.MetaElement = class MetaElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MetaElement._check(html.document[dartx.createElement]("meta"));
+    return html$.MetaElement._check(html$.document[dartx.createElement]("meta"));
   }
   created() {
     this[dartx.content] = null;
@@ -80433,12 +80436,12 @@
     this.name = value;
   }
 };
-dart.defineNamedConstructor(html.MetaElement, 'created');
-dart.setSignature(html.MetaElement, {
+dart.defineNamedConstructor(html$.MetaElement, 'created');
+dart.setSignature(html$.MetaElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MetaElement, []),
-    new: dart.definiteFunctionType(html.MetaElement, []),
-    created: dart.definiteFunctionType(html.MetaElement, [])
+    _: dart.definiteFunctionType(html$.MetaElement, []),
+    new: dart.definiteFunctionType(html$.MetaElement, []),
+    created: dart.definiteFunctionType(html$.MetaElement, [])
   }),
   fields: () => ({
     [dartx.content]: core.String,
@@ -80446,13 +80449,13 @@
     [dartx.name]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLMetaElement, html.MetaElement);
+dart.registerExtension(dart.global.HTMLMetaElement, html$.MetaElement);
 const _get_modificationTime = Symbol('_get_modificationTime');
 dart.defineExtensionNames([
   'modificationTime',
   'size'
 ]);
-html.Metadata = class Metadata extends _interceptors.Interceptor {
+html$.Metadata = class Metadata extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80466,16 +80469,16 @@
     return this.size;
   }
 };
-dart.setSignature(html.Metadata, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Metadata, [])}),
+dart.setSignature(html$.Metadata, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Metadata, [])}),
   fields: () => ({
     [_get_modificationTime]: dart.dynamic,
     [dartx.size]: core.int
   }),
   getters: () => ({[dartx.modificationTime]: dart.definiteFunctionType(core.DateTime, [])})
 });
-dart.registerExtension(dart.global.Metadata, html.Metadata);
-html.MetadataCallback = dart.typedef('MetadataCallback', () => dart.functionType(dart.void, [html.Metadata]));
+dart.registerExtension(dart.global.Metadata, html$.Metadata);
+html$.MetadataCallback = dart.typedef('MetadataCallback', () => dart.functionType(dart.void, [html$.Metadata]));
 dart.defineExtensionNames([
   'high',
   'labels',
@@ -80485,12 +80488,12 @@
   'optimum',
   'value'
 ]);
-html.MeterElement = class MeterElement extends html.HtmlElement {
+html$.MeterElement = class MeterElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.MeterElement._check(html.document[dartx.createElement]("meter"));
+    return html$.MeterElement._check(html$.document[dartx.createElement]("meter"));
   }
   created() {
     this[dartx.high] = null;
@@ -80503,7 +80506,7 @@
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('meter');
+    return html$.Element.isTagSupported('meter');
   }
   get [dartx.high]() {
     return this.high;
@@ -80545,12 +80548,12 @@
     this.value = value;
   }
 };
-dart.defineNamedConstructor(html.MeterElement, 'created');
-dart.setSignature(html.MeterElement, {
+dart.defineNamedConstructor(html$.MeterElement, 'created');
+dart.setSignature(html$.MeterElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MeterElement, []),
-    new: dart.definiteFunctionType(html.MeterElement, []),
-    created: dart.definiteFunctionType(html.MeterElement, [])
+    _: dart.definiteFunctionType(html$.MeterElement, []),
+    new: dart.definiteFunctionType(html$.MeterElement, []),
+    created: dart.definiteFunctionType(html$.MeterElement, [])
   }),
   fields: () => ({
     [dartx.high]: core.num,
@@ -80563,13 +80566,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLMeterElement, html.MeterElement);
+dart.registerExtension(dart.global.HTMLMeterElement, html$.MeterElement);
 dart.defineExtensionNames([
   'inputs',
   'outputs',
   'sysexEnabled'
 ]);
-html.MidiAccess = class MidiAccess extends html.EventTarget {
+html$.MidiAccess = class MidiAccess extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80583,19 +80586,19 @@
     return this.sysexEnabled;
   }
 };
-dart.setSignature(html.MidiAccess, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MidiAccess, [])}),
+dart.setSignature(html$.MidiAccess, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiAccess, [])}),
   fields: () => ({
-    [dartx.inputs]: html.MidiInputMap,
-    [dartx.outputs]: html.MidiOutputMap,
+    [dartx.inputs]: html$.MidiInputMap,
+    [dartx.outputs]: html$.MidiOutputMap,
     [dartx.sysexEnabled]: core.bool
   })
 });
-dart.registerExtension(dart.global.MIDIAccess, html.MidiAccess);
+dart.registerExtension(dart.global.MIDIAccess, html$.MidiAccess);
 dart.defineExtensionNames([
   'port'
 ]);
-html.MidiConnectionEvent = class MidiConnectionEvent extends html.Event {
+html$.MidiConnectionEvent = class MidiConnectionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80603,9 +80606,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MidiConnectionEvent._create_1(type, eventInitDict_1);
+      return html$.MidiConnectionEvent._create_1(type, eventInitDict_1);
     }
-    return html.MidiConnectionEvent._create_2(type);
+    return html$.MidiConnectionEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new MIDIConnectionEvent(type, eventInitDict);
@@ -80617,19 +80620,19 @@
     return this.port;
   }
 };
-dart.setSignature(html.MidiConnectionEvent, {
+dart.setSignature(html$.MidiConnectionEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MidiConnectionEvent, []),
-    new: dart.definiteFunctionType(html.MidiConnectionEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MidiConnectionEvent, []),
+    new: dart.definiteFunctionType(html$.MidiConnectionEvent, [core.String], [core.Map])
   }),
-  fields: () => ({[dartx.port]: html.MidiPort}),
+  fields: () => ({[dartx.port]: html$.MidiPort}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MidiConnectionEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MidiConnectionEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MidiConnectionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MidiConnectionEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MIDIConnectionEvent, html.MidiConnectionEvent);
+dart.registerExtension(dart.global.MIDIConnectionEvent, html$.MidiConnectionEvent);
 dart.defineExtensionNames([
   'close',
   'open',
@@ -80641,7 +80644,7 @@
   'type',
   'version'
 ]);
-html.MidiPort = class MidiPort extends html.EventTarget {
+html$.MidiPort = class MidiPort extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80673,8 +80676,8 @@
     return this.open.apply(this, args);
   }
 };
-dart.setSignature(html.MidiPort, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MidiPort, [])}),
+dart.setSignature(html$.MidiPort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiPort, [])}),
   fields: () => ({
     [dartx.connection]: core.String,
     [dartx.id]: core.String,
@@ -80689,33 +80692,33 @@
     [dartx.open]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.MIDIPort, html.MidiPort);
+dart.registerExtension(dart.global.MIDIPort, html$.MidiPort);
 dart.defineExtensionNames([
   'onMidiMessage'
 ]);
-html.MidiInput = class MidiInput extends html.MidiPort {
+html$.MidiInput = class MidiInput extends html$.MidiPort {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get [dartx.onMidiMessage]() {
-    return html.MidiInput.midiMessageEvent.forTarget(this);
+    return html$.MidiInput.midiMessageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.MidiInput, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MidiInput, [])}),
-  getters: () => ({[dartx.onMidiMessage]: dart.definiteFunctionType(async.Stream$(html.MidiMessageEvent), [])}),
+dart.setSignature(html$.MidiInput, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiInput, [])}),
+  getters: () => ({[dartx.onMidiMessage]: dart.definiteFunctionType(async.Stream$(html$.MidiMessageEvent), [])}),
   sfields: () => ({midiMessageEvent: EventStreamProviderOfMidiMessageEvent()})
 });
-dart.defineLazy(html.MidiInput, {
+dart.defineLazy(html$.MidiInput, {
   get midiMessageEvent() {
     return dart.const(new (EventStreamProviderOfMidiMessageEvent())('midimessage'));
   }
 });
-dart.registerExtension(dart.global.MIDIInput, html.MidiInput);
+dart.registerExtension(dart.global.MIDIInput, html$.MidiInput);
 dart.defineExtensionNames([
   'size'
 ]);
-html.MidiInputMap = class MidiInputMap extends _interceptors.Interceptor {
+html$.MidiInputMap = class MidiInputMap extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80723,16 +80726,16 @@
     return this.size;
   }
 };
-dart.setSignature(html.MidiInputMap, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MidiInputMap, [])}),
+dart.setSignature(html$.MidiInputMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiInputMap, [])}),
   fields: () => ({[dartx.size]: core.int})
 });
-dart.registerExtension(dart.global.MIDIInputMap, html.MidiInputMap);
+dart.registerExtension(dart.global.MIDIInputMap, html$.MidiInputMap);
 dart.defineExtensionNames([
   'data',
   'receivedTime'
 ]);
-html.MidiMessageEvent = class MidiMessageEvent extends html.Event {
+html$.MidiMessageEvent = class MidiMessageEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80740,9 +80743,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MidiMessageEvent._create_1(type, eventInitDict_1);
+      return html$.MidiMessageEvent._create_1(type, eventInitDict_1);
     }
-    return html.MidiMessageEvent._create_2(type);
+    return html$.MidiMessageEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new MIDIMessageEvent(type, eventInitDict);
@@ -80757,26 +80760,26 @@
     return this.receivedTime;
   }
 };
-dart.setSignature(html.MidiMessageEvent, {
+dart.setSignature(html$.MidiMessageEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.MidiMessageEvent, []),
-    new: dart.definiteFunctionType(html.MidiMessageEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.MidiMessageEvent, []),
+    new: dart.definiteFunctionType(html$.MidiMessageEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.data]: typed_data.Uint8List,
     [dartx.receivedTime]: core.double
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MidiMessageEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MidiMessageEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MidiMessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MidiMessageEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MIDIMessageEvent, html.MidiMessageEvent);
+dart.registerExtension(dart.global.MIDIMessageEvent, html$.MidiMessageEvent);
 dart.defineExtensionNames([
   'send'
 ]);
-html.MidiOutput = class MidiOutput extends html.MidiPort {
+html$.MidiOutput = class MidiOutput extends html$.MidiPort {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80784,15 +80787,15 @@
     return this.send.apply(this, args);
   }
 };
-dart.setSignature(html.MidiOutput, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MidiOutput, [])}),
+dart.setSignature(html$.MidiOutput, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiOutput, [])}),
   methods: () => ({[dartx.send]: dart.definiteFunctionType(dart.void, [typed_data.Uint8List], [core.num])})
 });
-dart.registerExtension(dart.global.MIDIOutput, html.MidiOutput);
+dart.registerExtension(dart.global.MIDIOutput, html$.MidiOutput);
 dart.defineExtensionNames([
   'size'
 ]);
-html.MidiOutputMap = class MidiOutputMap extends _interceptors.Interceptor {
+html$.MidiOutputMap = class MidiOutputMap extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80800,18 +80803,18 @@
     return this.size;
   }
 };
-dart.setSignature(html.MidiOutputMap, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MidiOutputMap, [])}),
+dart.setSignature(html$.MidiOutputMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MidiOutputMap, [])}),
   fields: () => ({[dartx.size]: core.int})
 });
-dart.registerExtension(dart.global.MIDIOutputMap, html.MidiOutputMap);
+dart.registerExtension(dart.global.MIDIOutputMap, html$.MidiOutputMap);
 dart.defineExtensionNames([
   'description',
   'enabledPlugin',
   'suffixes',
   'type'
 ]);
-html.MimeType = class MimeType extends _interceptors.Interceptor {
+html$.MimeType = class MimeType extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80828,16 +80831,16 @@
     return this.type;
   }
 };
-dart.setSignature(html.MimeType, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MimeType, [])}),
+dart.setSignature(html$.MimeType, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MimeType, [])}),
   fields: () => ({
     [dartx.description]: core.String,
-    [dartx.enabledPlugin]: html.Plugin,
+    [dartx.enabledPlugin]: html$.Plugin,
     [dartx.suffixes]: core.String,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.MimeType, html.MimeType);
+dart.registerExtension(dart.global.MimeType, html$.MimeType);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -80850,7 +80853,7 @@
   'item',
   'namedItem'
 ]);
-html.MimeTypeArray = class MimeTypeArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.MimeType), html.ImmutableListMixin$(html.MimeType)) {
+html$.MimeTypeArray = class MimeTypeArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.MimeType), html$.ImmutableListMixin$(html$.MimeType)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80899,24 +80902,24 @@
     return this.namedItem.apply(this, args);
   }
 };
-html.MimeTypeArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfMimeType()];
-dart.setSignature(html.MimeTypeArray, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MimeTypeArray, [])}),
+html$.MimeTypeArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfMimeType()];
+dart.setSignature(html$.MimeTypeArray, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MimeTypeArray, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.MimeType, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.MimeType]),
-    [dartx.item]: dart.definiteFunctionType(html.MimeType, [core.int]),
-    [dartx.namedItem]: dart.definiteFunctionType(html.MimeType, [core.String])
+    [dartx._get]: dart.definiteFunctionType(html$.MimeType, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.MimeType]),
+    [dartx.item]: dart.definiteFunctionType(html$.MimeType, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.MimeType, [core.String])
   })
 });
-dart.registerExtension(dart.global.MimeTypeArray, html.MimeTypeArray);
+dart.registerExtension(dart.global.MimeTypeArray, html$.MimeTypeArray);
 dart.defineExtensionNames([
   'cite',
   'dateTime'
 ]);
-html.ModElement = class ModElement extends html.HtmlElement {
+html$.ModElement = class ModElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -80938,18 +80941,18 @@
     this.dateTime = value;
   }
 };
-dart.defineNamedConstructor(html.ModElement, 'created');
-dart.setSignature(html.ModElement, {
+dart.defineNamedConstructor(html$.ModElement, 'created');
+dart.setSignature(html$.ModElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ModElement, []),
-    created: dart.definiteFunctionType(html.ModElement, [])
+    _: dart.definiteFunctionType(html$.ModElement, []),
+    created: dart.definiteFunctionType(html$.ModElement, [])
   }),
   fields: () => ({
     [dartx.cite]: core.String,
     [dartx.dateTime]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLModElement, html.ModElement);
+dart.registerExtension(dart.global.HTMLModElement, html$.ModElement);
 const _initMouseEvent = Symbol('_initMouseEvent');
 const _clientX = Symbol('_clientX');
 const _clientY = Symbol('_clientY');
@@ -80983,7 +80986,7 @@
   'shiftKey',
   'toElement'
 ]);
-html.MouseEvent = class MouseEvent extends html.UIEvent {
+html$.MouseEvent = class MouseEvent extends html$.UIEvent {
   static new(type, opts) {
     let view = opts && 'view' in opts ? opts.view : null;
     let detail = opts && 'detail' in opts ? opts.detail : 0;
@@ -81000,9 +81003,9 @@
     let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
     let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
-    let event = html.MouseEvent._check(html.document[_createEvent]('MouseEvent'));
+    let event = html$.MouseEvent._check(html$.document[_createEvent]('MouseEvent'));
     event[_initMouseEvent](type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);
     return event;
   }
@@ -81010,9 +81013,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.MouseEvent._create_1(type, eventInitDict_1);
+      return html$.MouseEvent._create_1(type, eventInitDict_1);
     }
-    return html.MouseEvent._create_2(type);
+    return html$.MouseEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.MouseEvent(type, eventInitDict);
@@ -81069,7 +81072,7 @@
     return this.region;
   }
   get [dartx.relatedTarget]() {
-    return html._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
+    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
   }
   get [_get_relatedTarget]() {
     return this.relatedTarget;
@@ -81093,7 +81096,7 @@
     return this.webkitMovementY;
   }
   [_initMouseEvent](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
-    let relatedTarget_1 = html._convertDartToNative_EventTarget(relatedTarget);
+    let relatedTarget_1 = html$._convertDartToNative_EventTarget(relatedTarget);
     this[_initMouseEvent_1](type, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget_1);
     return;
   }
@@ -81112,10 +81115,10 @@
       let y = this.offsetY;
       return new (PointOfnum())(x, y);
     } else {
-      if (!html.Element.is(this[dartx.target])) {
+      if (!html$.Element.is(this[dartx.target])) {
         dart.throw(new core.UnsupportedError('offsetX is only supported on elements'));
       }
-      let target = html.Element._check(this[dartx.target]);
+      let target = html$.Element._check(this[dartx.target]);
       let point = this[dartx.client]['-'](target[dartx.getBoundingClientRect]()[dartx.topLeft]);
       return new (PointOfnum())(point.x[dartx.toInt](), point.y[dartx.toInt]());
     }
@@ -81130,10 +81133,10 @@
     return new (PointOfnum())(this[_pageX], this[_pageY]);
   }
 };
-dart.setSignature(html.MouseEvent, {
+dart.setSignature(html$.MouseEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.MouseEvent, [core.String], {view: html.Window, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html.EventTarget}),
-    _: dart.definiteFunctionType(html.MouseEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.MouseEvent, [core.String], {view: html$.Window, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html$.EventTarget}),
+    _: dart.definiteFunctionType(html$.MouseEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.altKey]: core.bool,
@@ -81142,8 +81145,8 @@
     [_clientX]: core.int,
     [_clientY]: core.int,
     [dartx.ctrlKey]: core.bool,
-    [dartx.dataTransfer]: html.DataTransfer,
-    [dartx.fromElement]: html.Node,
+    [dartx.dataTransfer]: html$.DataTransfer,
+    [dartx.fromElement]: html$.Node,
     [_layerX]: core.int,
     [_layerY]: core.int,
     [dartx.metaKey]: core.bool,
@@ -81156,12 +81159,12 @@
     [_screenX]: core.int,
     [_screenY]: core.int,
     [dartx.shiftKey]: core.bool,
-    [dartx.toElement]: html.Node,
+    [dartx.toElement]: html$.Node,
     [_webkitMovementX]: core.int,
     [_webkitMovementY]: core.int
   }),
   getters: () => ({
-    [dartx.relatedTarget]: dart.definiteFunctionType(html.EventTarget, []),
+    [dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, []),
     [dartx.client]: dart.definiteFunctionType(math.Point$(core.num), []),
     [dartx.movement]: dart.definiteFunctionType(math.Point$(core.num), []),
     [dartx.offset]: dart.definiteFunctionType(math.Point$(core.num), []),
@@ -81170,18 +81173,18 @@
     [dartx.page]: dart.definiteFunctionType(math.Point$(core.num), [])
   }),
   methods: () => ({
-    [_initMouseEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html.EventTarget]),
-    [_initMouseEvent_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, html.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+    [_initMouseEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget]),
+    [_initMouseEvent_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, html$.Window, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.MouseEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.MouseEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.MouseEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.MouseEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.MouseEvent, html.MouseEvent);
-dart.registerExtension(dart.global.DragEvent, html.MouseEvent);
-html.MutationCallback = dart.typedef('MutationCallback', () => dart.functionType(dart.void, [ListOfMutationRecord(), html.MutationObserver]));
+dart.registerExtension(dart.global.MouseEvent, html$.MouseEvent);
+dart.registerExtension(dart.global.DragEvent, html$.MouseEvent);
+html$.MutationCallback = dart.typedef('MutationCallback', () => dart.functionType(dart.void, [ListOfMutationRecord(), html$.MutationObserver]));
 const _observe_1 = Symbol('_observe_1');
 const _observe = Symbol('_observe');
 const _call = Symbol('_call');
@@ -81190,7 +81193,7 @@
   'takeRecords',
   'observe'
 ]);
-html.MutationObserver = class MutationObserver extends _interceptors.Interceptor {
+html$.MutationObserver = class MutationObserver extends _interceptors.Interceptor {
   [dartx.disconnect](...args) {
     return this.disconnect.apply(this, args);
   }
@@ -81216,9 +81219,9 @@
     let attributeOldValue = opts && 'attributeOldValue' in opts ? opts.attributeOldValue : null;
     let characterDataOldValue = opts && 'characterDataOldValue' in opts ? opts.characterDataOldValue : null;
     let attributeFilter = opts && 'attributeFilter' in opts ? opts.attributeFilter : null;
-    let parsedOptions = html.MutationObserver._createDict();
+    let parsedOptions = html$.MutationObserver._createDict();
     function override(key, value) {
-      if (value != null) html.MutationObserver._add(parsedOptions, core.String._check(key), value);
+      if (value != null) html$.MutationObserver._add(parsedOptions, core.String._check(key), value);
     }
     dart.fn(override, dynamicAnddynamicToNull());
     override('childList', childList);
@@ -81228,7 +81231,7 @@
     override('attributeOldValue', attributeOldValue);
     override('characterDataOldValue', characterDataOldValue);
     if (attributeFilter != null) {
-      override('attributeFilter', html.MutationObserver._fixupList(attributeFilter));
+      override('attributeFilter', html$.MutationObserver._fixupList(attributeFilter));
     }
     this[_call](target, parsedOptions);
   }
@@ -81246,17 +81249,17 @@
   }
   static new(callback) {
     0;
-    return new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(_js_helper.convertDartClosureToJS(_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void())(html._wrapBinaryZone(ListOfMutationRecord(), html.MutationObserver, dart.void)(callback), 2));
+    return new (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver)(_js_helper.convertDartClosureToJS(_wrapZoneBinaryCallbackOfListOfMutationRecord$MutationObserver$void())(html$._wrapBinaryZone(ListOfMutationRecord(), html$.MutationObserver, dart.void)(callback), 2));
   }
 };
-dart.setSignature(html.MutationObserver, {
-  constructors: () => ({new: dart.definiteFunctionType(html.MutationObserver, [html.MutationCallback])}),
+dart.setSignature(html$.MutationObserver, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.MutationObserver, [html$.MutationCallback])}),
   methods: () => ({
     [dartx.disconnect]: dart.definiteFunctionType(dart.void, []),
-    [_observe]: dart.definiteFunctionType(dart.void, [html.Node, core.Map]),
-    [_observe_1]: dart.definiteFunctionType(dart.void, [html.Node, dart.dynamic]),
-    [dartx.takeRecords]: dart.definiteFunctionType(core.List$(html.MutationRecord), []),
-    [dartx.observe]: dart.definiteFunctionType(dart.void, [html.Node], {childList: core.bool, attributes: core.bool, characterData: core.bool, subtree: core.bool, attributeOldValue: core.bool, characterDataOldValue: core.bool, attributeFilter: ListOfString()}),
+    [_observe]: dart.definiteFunctionType(dart.void, [html$.Node, core.Map]),
+    [_observe_1]: dart.definiteFunctionType(dart.void, [html$.Node, dart.dynamic]),
+    [dartx.takeRecords]: dart.definiteFunctionType(core.List$(html$.MutationRecord), []),
+    [dartx.observe]: dart.definiteFunctionType(dart.void, [html$.Node], {childList: core.bool, attributes: core.bool, characterData: core.bool, subtree: core.bool, attributeOldValue: core.bool, characterDataOldValue: core.bool, attributeFilter: ListOfString()}),
     [_call]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])
   }),
   sfields: () => ({_boolKeys: MapOfString$bool()}),
@@ -81268,9 +81271,9 @@
   }),
   names: ['_createDict', '_add', '_fixupList']
 });
-html.MutationObserver._boolKeys = dart.const(dart.map({childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true}, core.String, core.bool));
-dart.registerExtension(dart.global.MutationObserver, html.MutationObserver);
-dart.registerExtension(dart.global.WebKitMutationObserver, html.MutationObserver);
+html$.MutationObserver._boolKeys = dart.const(dart.map({childList: true, attributes: true, characterData: true, subtree: true, attributeOldValue: true, characterDataOldValue: true}, core.String, core.bool));
+dart.registerExtension(dart.global.MutationObserver, html$.MutationObserver);
+dart.registerExtension(dart.global.WebKitMutationObserver, html$.MutationObserver);
 dart.defineExtensionNames([
   'addedNodes',
   'attributeName',
@@ -81282,7 +81285,7 @@
   'target',
   'type'
 ]);
-html.MutationRecord = class MutationRecord extends _interceptors.Interceptor {
+html$.MutationRecord = class MutationRecord extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81314,21 +81317,21 @@
     return this.type;
   }
 };
-dart.setSignature(html.MutationRecord, {
-  constructors: () => ({_: dart.definiteFunctionType(html.MutationRecord, [])}),
+dart.setSignature(html$.MutationRecord, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.MutationRecord, [])}),
   fields: () => ({
     [dartx.addedNodes]: ListOfNode(),
     [dartx.attributeName]: core.String,
     [dartx.attributeNamespace]: core.String,
-    [dartx.nextSibling]: html.Node,
+    [dartx.nextSibling]: html$.Node,
     [dartx.oldValue]: core.String,
-    [dartx.previousSibling]: html.Node,
+    [dartx.previousSibling]: html$.Node,
     [dartx.removedNodes]: ListOfNode(),
-    [dartx.target]: html.Node,
+    [dartx.target]: html$.Node,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.MutationRecord, html.MutationRecord);
+dart.registerExtension(dart.global.MutationRecord, html$.MutationRecord);
 const _ensureGetUserMedia = Symbol('_ensureGetUserMedia');
 const _getUserMedia = Symbol('_getUserMedia');
 const _requestMidiAccess_1 = Symbol('_requestMidiAccess_1');
@@ -81374,7 +81377,7 @@
   'onLine',
   'cookieEnabled'
 ]);
-html.Navigator = class Navigator extends _interceptors.Interceptor {
+html$.Navigator = class Navigator extends _interceptors.Interceptor {
   get [dartx.language]() {
     return this.language || this.userLanguage;
   }
@@ -81525,28 +81528,28 @@
     return this.getStorageUpdates.apply(this, args);
   }
 };
-html.Navigator[dart.implements] = () => [html.NavigatorStorageUtils, html.NavigatorCpu, html.NavigatorLanguage, html.NavigatorOnLine, html.NavigatorID];
-dart.setSignature(html.Navigator, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Navigator, [])}),
+html$.Navigator[dart.implements] = () => [html$.NavigatorStorageUtils, html$.NavigatorCpu, html$.NavigatorLanguage, html$.NavigatorOnLine, html$.NavigatorID];
+dart.setSignature(html$.Navigator, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Navigator, [])}),
   fields: () => ({
-    [dartx.bluetooth]: html.Bluetooth,
-    [dartx.connection]: html.NetworkInformation,
-    [dartx.credentials]: html.CredentialsContainer,
+    [dartx.bluetooth]: html$.Bluetooth,
+    [dartx.connection]: html$.NetworkInformation,
+    [dartx.credentials]: html$.CredentialsContainer,
     [dartx.doNotTrack]: core.String,
-    [dartx.geolocation]: html.Geolocation,
+    [dartx.geolocation]: html$.Geolocation,
     [dartx.maxTouchPoints]: core.int,
-    [dartx.mediaDevices]: html.MediaDevices,
-    [dartx.mimeTypes]: html.MimeTypeArray,
-    [dartx.permissions]: html.Permissions,
-    [dartx.presentation]: html.Presentation,
+    [dartx.mediaDevices]: html$.MediaDevices,
+    [dartx.mimeTypes]: html$.MimeTypeArray,
+    [dartx.permissions]: html$.Permissions,
+    [dartx.presentation]: html$.Presentation,
     [dartx.productSub]: core.String,
-    [dartx.serviceWorker]: html.ServiceWorkerContainer,
-    [dartx.services]: html.ServicePortCollection,
-    [dartx.storageQuota]: html.StorageQuota,
+    [dartx.serviceWorker]: html$.ServiceWorkerContainer,
+    [dartx.services]: html$.ServicePortCollection,
+    [dartx.storageQuota]: html$.StorageQuota,
     [dartx.vendor]: core.String,
     [dartx.vendorSub]: core.String,
-    [dartx.persistentStorage]: html.DeprecatedStorageQuota,
-    [dartx.temporaryStorage]: html.DeprecatedStorageQuota,
+    [dartx.persistentStorage]: html$.DeprecatedStorageQuota,
+    [dartx.temporaryStorage]: html$.DeprecatedStorageQuota,
     [dartx.hardwareConcurrency]: core.int,
     [dartx.appCodeName]: core.String,
     [dartx.appName]: core.String,
@@ -81561,11 +81564,11 @@
   }),
   getters: () => ({[dartx.language]: dart.definiteFunctionType(core.String, [])}),
   methods: () => ({
-    [dartx.getUserMedia]: dart.definiteFunctionType(async.Future$(html.MediaStream), [], {audio: dart.dynamic, video: dart.dynamic}),
+    [dartx.getUserMedia]: dart.definiteFunctionType(async.Future$(html$.MediaStream), [], {audio: dart.dynamic, video: dart.dynamic}),
     [_ensureGetUserMedia]: dart.definiteFunctionType(dart.dynamic, []),
-    [_getUserMedia]: dart.definiteFunctionType(dart.void, [dart.dynamic, html._NavigatorUserMediaSuccessCallback, html._NavigatorUserMediaErrorCallback]),
+    [_getUserMedia]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$._NavigatorUserMediaSuccessCallback, html$._NavigatorUserMediaErrorCallback]),
     [dartx.getBattery]: dart.definiteFunctionType(async.Future, []),
-    [dartx.getGamepads]: dart.definiteFunctionType(core.List$(html.Gamepad), []),
+    [dartx.getGamepads]: dart.definiteFunctionType(core.List$(html$.Gamepad), []),
     [dartx.getVRDevices]: dart.definiteFunctionType(async.Future, []),
     [dartx.registerProtocolHandler]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
     [dartx.requestMidiAccess]: dart.definiteFunctionType(async.Future, [], [core.Map]),
@@ -81576,11 +81579,11 @@
     [dartx.getStorageUpdates]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.Navigator, html.Navigator);
+dart.registerExtension(dart.global.Navigator, html$.Navigator);
 dart.defineExtensionNames([
   'hardwareConcurrency'
 ]);
-html.NavigatorCpu = class NavigatorCpu extends _interceptors.Interceptor {
+html$.NavigatorCpu = class NavigatorCpu extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81591,12 +81594,12 @@
     super.hardwareConcurrency = value;
   }
 };
-const hardwareConcurrency = Symbol(html.NavigatorCpu.name + "." + 'hardwareConcurrency'.toString());
-dart.setSignature(html.NavigatorCpu, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NavigatorCpu, [])}),
+const hardwareConcurrency = Symbol(html$.NavigatorCpu.name + "." + 'hardwareConcurrency'.toString());
+dart.setSignature(html$.NavigatorCpu, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorCpu, [])}),
   fields: () => ({hardwareConcurrency: core.int})
 });
-dart.defineExtensionMembers(html.NavigatorCpu, ['hardwareConcurrency']);
+dart.defineExtensionMembers(html$.NavigatorCpu, ['hardwareConcurrency']);
 dart.defineExtensionNames([
   'appCodeName',
   'appName',
@@ -81606,7 +81609,7 @@
   'product',
   'userAgent'
 ]);
-html.NavigatorID = class NavigatorID extends _interceptors.Interceptor {
+html$.NavigatorID = class NavigatorID extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81653,15 +81656,15 @@
     super.userAgent = value;
   }
 };
-const appCodeName = Symbol(html.NavigatorID.name + "." + 'appCodeName'.toString());
-const appName = Symbol(html.NavigatorID.name + "." + 'appName'.toString());
-const appVersion = Symbol(html.NavigatorID.name + "." + 'appVersion'.toString());
-const dartEnabled = Symbol(html.NavigatorID.name + "." + 'dartEnabled'.toString());
-const platform = Symbol(html.NavigatorID.name + "." + 'platform'.toString());
-const product = Symbol(html.NavigatorID.name + "." + 'product'.toString());
-const userAgent = Symbol(html.NavigatorID.name + "." + 'userAgent'.toString());
-dart.setSignature(html.NavigatorID, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NavigatorID, [])}),
+const appCodeName = Symbol(html$.NavigatorID.name + "." + 'appCodeName'.toString());
+const appName = Symbol(html$.NavigatorID.name + "." + 'appName'.toString());
+const appVersion = Symbol(html$.NavigatorID.name + "." + 'appVersion'.toString());
+const dartEnabled = Symbol(html$.NavigatorID.name + "." + 'dartEnabled'.toString());
+const platform = Symbol(html$.NavigatorID.name + "." + 'platform'.toString());
+const product = Symbol(html$.NavigatorID.name + "." + 'product'.toString());
+const userAgent = Symbol(html$.NavigatorID.name + "." + 'userAgent'.toString());
+dart.setSignature(html$.NavigatorID, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorID, [])}),
   fields: () => ({
     appCodeName: core.String,
     appName: core.String,
@@ -81672,7 +81675,7 @@
     userAgent: core.String
   })
 });
-dart.defineExtensionMembers(html.NavigatorID, [
+dart.defineExtensionMembers(html$.NavigatorID, [
   'appCodeName',
   'appName',
   'appVersion',
@@ -81685,7 +81688,7 @@
   'language',
   'languages'
 ]);
-html.NavigatorLanguage = class NavigatorLanguage extends _interceptors.Interceptor {
+html$.NavigatorLanguage = class NavigatorLanguage extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81702,20 +81705,20 @@
     super.languages = value;
   }
 };
-const language = Symbol(html.NavigatorLanguage.name + "." + 'language'.toString());
-const languages = Symbol(html.NavigatorLanguage.name + "." + 'languages'.toString());
-dart.setSignature(html.NavigatorLanguage, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NavigatorLanguage, [])}),
+const language = Symbol(html$.NavigatorLanguage.name + "." + 'language'.toString());
+const languages = Symbol(html$.NavigatorLanguage.name + "." + 'languages'.toString());
+dart.setSignature(html$.NavigatorLanguage, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorLanguage, [])}),
   fields: () => ({
     language: core.String,
     languages: ListOfString()
   })
 });
-dart.defineExtensionMembers(html.NavigatorLanguage, ['language', 'languages']);
+dart.defineExtensionMembers(html$.NavigatorLanguage, ['language', 'languages']);
 dart.defineExtensionNames([
   'onLine'
 ]);
-html.NavigatorOnLine = class NavigatorOnLine extends _interceptors.Interceptor {
+html$.NavigatorOnLine = class NavigatorOnLine extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81726,17 +81729,17 @@
     super.onLine = value;
   }
 };
-const onLine = Symbol(html.NavigatorOnLine.name + "." + 'onLine'.toString());
-dart.setSignature(html.NavigatorOnLine, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NavigatorOnLine, [])}),
+const onLine = Symbol(html$.NavigatorOnLine.name + "." + 'onLine'.toString());
+dart.setSignature(html$.NavigatorOnLine, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorOnLine, [])}),
   fields: () => ({onLine: core.bool})
 });
-dart.defineExtensionMembers(html.NavigatorOnLine, ['onLine']);
+dart.defineExtensionMembers(html$.NavigatorOnLine, ['onLine']);
 dart.defineExtensionNames([
   'getStorageUpdates',
   'cookieEnabled'
 ]);
-html.NavigatorStorageUtils = class NavigatorStorageUtils extends _interceptors.Interceptor {
+html$.NavigatorStorageUtils = class NavigatorStorageUtils extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81747,18 +81750,18 @@
     return this.getStorageUpdates.apply(this, args);
   }
 };
-dart.setSignature(html.NavigatorStorageUtils, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NavigatorStorageUtils, [])}),
+dart.setSignature(html$.NavigatorStorageUtils, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorStorageUtils, [])}),
   fields: () => ({[dartx.cookieEnabled]: core.bool}),
   methods: () => ({[dartx.getStorageUpdates]: dart.definiteFunctionType(dart.void, [])})
 });
-dart.registerExtension(dart.global.NavigatorStorageUtils, html.NavigatorStorageUtils);
+dart.registerExtension(dart.global.NavigatorStorageUtils, html$.NavigatorStorageUtils);
 dart.defineExtensionNames([
   'constraintName',
   'message',
   'name'
 ]);
-html.NavigatorUserMediaError = class NavigatorUserMediaError extends _interceptors.Interceptor {
+html$.NavigatorUserMediaError = class NavigatorUserMediaError extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81772,21 +81775,21 @@
     return this.name;
   }
 };
-dart.setSignature(html.NavigatorUserMediaError, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NavigatorUserMediaError, [])}),
+dart.setSignature(html$.NavigatorUserMediaError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NavigatorUserMediaError, [])}),
   fields: () => ({
     [dartx.constraintName]: core.String,
     [dartx.message]: core.String,
     [dartx.name]: core.String
   })
 });
-dart.registerExtension(dart.global.NavigatorUserMediaError, html.NavigatorUserMediaError);
-html._NavigatorUserMediaErrorCallback = dart.typedef('_NavigatorUserMediaErrorCallback', () => dart.functionType(dart.void, [html.NavigatorUserMediaError]));
-html._NavigatorUserMediaSuccessCallback = dart.typedef('_NavigatorUserMediaSuccessCallback', () => dart.functionType(dart.void, [html.MediaStream]));
+dart.registerExtension(dart.global.NavigatorUserMediaError, html$.NavigatorUserMediaError);
+html$._NavigatorUserMediaErrorCallback = dart.typedef('_NavigatorUserMediaErrorCallback', () => dart.functionType(dart.void, [html$.NavigatorUserMediaError]));
+html$._NavigatorUserMediaSuccessCallback = dart.typedef('_NavigatorUserMediaSuccessCallback', () => dart.functionType(dart.void, [html$.MediaStream]));
 dart.defineExtensionNames([
   'type'
 ]);
-html.NetworkInformation = class NetworkInformation extends html.EventTarget {
+html$.NetworkInformation = class NetworkInformation extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -81794,12 +81797,12 @@
     return this.type;
   }
 };
-dart.setSignature(html.NetworkInformation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NetworkInformation, [])}),
+dart.setSignature(html$.NetworkInformation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NetworkInformation, [])}),
   fields: () => ({[dartx.type]: core.String})
 });
-dart.registerExtension(dart.global.NetworkInformation, html.NetworkInformation);
-html._ChildNodeListLazy = class _ChildNodeListLazy extends collection.ListBase$(html.Node) {
+dart.registerExtension(dart.global.NetworkInformation, html$.NetworkInformation);
+html$._ChildNodeListLazy = class _ChildNodeListLazy extends collection.ListBase$(html$.Node) {
   new(this$) {
     this[_this] = this$;
   }
@@ -81823,7 +81826,7 @@
     this[_this][dartx.append](value);
   }
   addAll(iterable) {
-    if (html._ChildNodeListLazy.is(iterable)) {
+    if (html$._ChildNodeListLazy.is(iterable)) {
       let otherList = iterable;
       if (!core.identical(otherList[_this], this[_this])) {
         for (let i = 0, len = otherList.length; i < dart.notNull(len); ++i) {
@@ -81872,13 +81875,13 @@
     return result;
   }
   remove(object) {
-    if (!html.Node.is(object)) return false;
-    let node = html.Node._check(object);
+    if (!html$.Node.is(object)) return false;
+    let node = html$.Node._check(object);
     if (!core.identical(this[_this], node[dartx.parentNode])) return false;
     this[_this][_removeChild](node);
     return true;
   }
-  [_filter](test, removeMatching) {
+  [_filter$0](test, removeMatching) {
     let child = this[_this][dartx.firstChild];
     while (child != null) {
       let nextChild = child[dartx.nextNode];
@@ -81889,10 +81892,10 @@
     }
   }
   removeWhere(test) {
-    this[_filter](test, true);
+    this[_filter$0](test, true);
   }
   retainWhere(test) {
-    this[_filter](test, false);
+    this[_filter$0](test, false);
   }
   clear() {
     this[_this][_clearChildren]();
@@ -81933,23 +81936,23 @@
     return this[_this][dartx.childNodes];
   }
 };
-dart.addSimpleTypeTests(html._ChildNodeListLazy);
-html._ChildNodeListLazy[dart.implements] = () => [html_common.NodeListWrapper];
-dart.setSignature(html._ChildNodeListLazy, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ChildNodeListLazy, [html.Node])}),
-  fields: () => ({[_this]: html.Node}),
+dart.addSimpleTypeTests(html$._ChildNodeListLazy);
+html$._ChildNodeListLazy[dart.implements] = () => [html_common.NodeListWrapper];
+dart.setSignature(html$._ChildNodeListLazy, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ChildNodeListLazy, [html$.Node])}),
+  fields: () => ({[_this]: html$.Node}),
   getters: () => ({
     length: dart.definiteFunctionType(core.int, []),
-    rawList: dart.definiteFunctionType(core.List$(html.Node), [])
+    rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
   }),
   setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [_filter]: dart.definiteFunctionType(dart.void, [NodeTobool(), core.bool]),
-    _set: dart.definiteFunctionType(dart.void, [core.int, html.Node]),
-    _get: dart.definiteFunctionType(html.Node, [core.int])
+    [_filter$0]: dart.definiteFunctionType(dart.void, [NodeTobool(), core.bool]),
+    _set: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    _get: dart.definiteFunctionType(html$.Node, [core.int])
   })
 });
-dart.defineExtensionMembers(html._ChildNodeListLazy, [
+dart.defineExtensionMembers(html$._ChildNodeListLazy, [
   'add',
   'addAll',
   'insert',
@@ -81974,13 +81977,13 @@
   'length',
   'length'
 ]);
-html.NodeFilter = class NodeFilter extends _interceptors.Interceptor {
+html$.NodeFilter = class NodeFilter extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.NodeFilter, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NodeFilter, [])}),
+dart.setSignature(html$.NodeFilter, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NodeFilter, [])}),
   sfields: () => ({
     FILTER_ACCEPT: core.int,
     FILTER_REJECT: core.int,
@@ -81995,18 +81998,18 @@
     SHOW_TEXT: core.int
   })
 });
-html.NodeFilter.FILTER_ACCEPT = 1;
-html.NodeFilter.FILTER_REJECT = 2;
-html.NodeFilter.FILTER_SKIP = 3;
-html.NodeFilter.SHOW_ALL = 4294967295;
-html.NodeFilter.SHOW_COMMENT = 128;
-html.NodeFilter.SHOW_DOCUMENT = 256;
-html.NodeFilter.SHOW_DOCUMENT_FRAGMENT = 1024;
-html.NodeFilter.SHOW_DOCUMENT_TYPE = 512;
-html.NodeFilter.SHOW_ELEMENT = 1;
-html.NodeFilter.SHOW_PROCESSING_INSTRUCTION = 64;
-html.NodeFilter.SHOW_TEXT = 4;
-dart.registerExtension(dart.global.NodeFilter, html.NodeFilter);
+html$.NodeFilter.FILTER_ACCEPT = 1;
+html$.NodeFilter.FILTER_REJECT = 2;
+html$.NodeFilter.FILTER_SKIP = 3;
+html$.NodeFilter.SHOW_ALL = 4294967295;
+html$.NodeFilter.SHOW_COMMENT = 128;
+html$.NodeFilter.SHOW_DOCUMENT = 256;
+html$.NodeFilter.SHOW_DOCUMENT_FRAGMENT = 1024;
+html$.NodeFilter.SHOW_DOCUMENT_TYPE = 512;
+html$.NodeFilter.SHOW_ELEMENT = 1;
+html$.NodeFilter.SHOW_PROCESSING_INSTRUCTION = 64;
+html$.NodeFilter.SHOW_TEXT = 4;
+dart.registerExtension(dart.global.NodeFilter, html$.NodeFilter);
 dart.defineExtensionNames([
   'detach',
   'nextNode',
@@ -82016,9 +82019,9 @@
   'root',
   'whatToShow'
 ]);
-html.NodeIterator = class NodeIterator extends _interceptors.Interceptor {
+html$.NodeIterator = class NodeIterator extends _interceptors.Interceptor {
   static new(root, whatToShow) {
-    return html.document[_createNodeIterator](root, whatToShow, null);
+    return html$.document[_createNodeIterator](root, whatToShow, null);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -82045,24 +82048,24 @@
     return this.previousNode.apply(this, args);
   }
 };
-dart.setSignature(html.NodeIterator, {
+dart.setSignature(html$.NodeIterator, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.NodeIterator, [html.Node, core.int]),
-    _: dart.definiteFunctionType(html.NodeIterator, [])
+    new: dart.definiteFunctionType(html$.NodeIterator, [html$.Node, core.int]),
+    _: dart.definiteFunctionType(html$.NodeIterator, [])
   }),
   fields: () => ({
     [dartx.pointerBeforeReferenceNode]: core.bool,
-    [dartx.referenceNode]: html.Node,
-    [dartx.root]: html.Node,
+    [dartx.referenceNode]: html$.Node,
+    [dartx.root]: html$.Node,
     [dartx.whatToShow]: core.int
   }),
   methods: () => ({
     [dartx.detach]: dart.definiteFunctionType(dart.void, []),
-    [dartx.nextNode]: dart.definiteFunctionType(html.Node, []),
-    [dartx.previousNode]: dart.definiteFunctionType(html.Node, [])
+    [dartx.nextNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.previousNode]: dart.definiteFunctionType(html$.Node, [])
   })
 });
-dart.registerExtension(dart.global.NodeIterator, html.NodeIterator);
+dart.registerExtension(dart.global.NodeIterator, html$.NodeIterator);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -82073,7 +82076,7 @@
   'single',
   'elementAt'
 ]);
-html.NodeList = class NodeList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.Node), html.ImmutableListMixin$(html.Node)) {
+html$.NodeList = class NodeList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -82119,24 +82122,24 @@
     return this.item.apply(this, args);
   }
 };
-html.NodeList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
-dart.setSignature(html.NodeList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NodeList, [])}),
+html$.NodeList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
+dart.setSignature(html$.NodeList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NodeList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.Node, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.Node]),
-    [_item]: dart.definiteFunctionType(html.Node, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    [_item]: dart.definiteFunctionType(html$.Node, [core.int])
   })
 });
-dart.registerExtension(dart.global.NodeList, html.NodeList);
-dart.registerExtension(dart.global.RadioNodeList, html.NodeList);
+dart.registerExtension(dart.global.NodeList, html$.NodeList);
+dart.registerExtension(dart.global.RadioNodeList, html$.NodeList);
 dart.defineExtensionNames([
   'nextElementSibling',
   'previousElementSibling'
 ]);
-html.NonDocumentTypeChildNode = class NonDocumentTypeChildNode extends _interceptors.Interceptor {
+html$.NonDocumentTypeChildNode = class NonDocumentTypeChildNode extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -82147,18 +82150,18 @@
     return this.previousElementSibling;
   }
 };
-dart.setSignature(html.NonDocumentTypeChildNode, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NonDocumentTypeChildNode, [])}),
+dart.setSignature(html$.NonDocumentTypeChildNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NonDocumentTypeChildNode, [])}),
   fields: () => ({
-    [dartx.nextElementSibling]: html.Element,
-    [dartx.previousElementSibling]: html.Element
+    [dartx.nextElementSibling]: html$.Element,
+    [dartx.previousElementSibling]: html$.Element
   })
 });
-dart.registerExtension(dart.global.NonDocumentTypeChildNode, html.NonDocumentTypeChildNode);
+dart.registerExtension(dart.global.NonDocumentTypeChildNode, html$.NonDocumentTypeChildNode);
 dart.defineExtensionNames([
   'getElementById'
 ]);
-html.NonElementParentNode = class NonElementParentNode extends _interceptors.Interceptor {
+html$.NonElementParentNode = class NonElementParentNode extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -82166,11 +82169,11 @@
     return this.getElementById.apply(this, args);
   }
 };
-dart.setSignature(html.NonElementParentNode, {
-  constructors: () => ({_: dart.definiteFunctionType(html.NonElementParentNode, [])}),
-  methods: () => ({[dartx.getElementById]: dart.definiteFunctionType(html.Element, [core.String])})
+dart.setSignature(html$.NonElementParentNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.NonElementParentNode, [])}),
+  methods: () => ({[dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String])})
 });
-dart.registerExtension(dart.global.NonElementParentNode, html.NonElementParentNode);
+dart.registerExtension(dart.global.NonElementParentNode, html$.NonElementParentNode);
 dart.defineExtensionNames([
   'close',
   'onClick',
@@ -82188,7 +82191,7 @@
   'title',
   'vibrate'
 ]);
-html.Notification = class Notification extends html.EventTarget {
+html$.Notification = class Notification extends html$.EventTarget {
   static new(title, opts) {
     let dir = opts && 'dir' in opts ? opts.dir : null;
     let body = opts && 'body' in opts ? opts.body : null;
@@ -82201,7 +82204,7 @@
     if (lang != null) parsedOptions[dartx._set]('lang', lang);
     if (tag != null) parsedOptions[dartx._set]('tag', tag);
     if (icon != null) parsedOptions[dartx._set]('icon', icon);
-    return html.Notification._factoryNotification(title, parsedOptions);
+    return html$.Notification._factoryNotification(title, parsedOptions);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -82210,9 +82213,9 @@
     if (options === void 0) options = null;
     if (options != null) {
       let options_1 = html_common.convertDartToNative_Dictionary(options);
-      return html.Notification._create_1(title, options_1);
+      return html$.Notification._create_1(title, options_1);
     }
-    return html.Notification._create_2(title);
+    return html$.Notification._create_2(title);
   }
   static _create_1(title, options) {
     return new self.Notification(title, options);
@@ -82258,28 +82261,28 @@
   }
   static requestPermission() {
     let completer = CompleterOfString().new();
-    html.Notification._requestPermission(dart.fn(value => {
+    html$.Notification._requestPermission(dart.fn(value => {
       completer.complete(value);
     }, StringToNull()));
     return completer.future;
   }
   get [dartx.onClick]() {
-    return html.Notification.clickEvent.forTarget(this);
+    return html$.Notification.clickEvent.forTarget(this);
   }
   get [dartx.onClose]() {
-    return html.Notification.closeEvent.forTarget(this);
+    return html$.Notification.closeEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.Notification.errorEvent.forTarget(this);
+    return html$.Notification.errorEvent.forTarget(this);
   }
   get [dartx.onShow]() {
-    return html.Notification.showEvent.forTarget(this);
+    return html$.Notification.showEvent.forTarget(this);
   }
 };
-dart.setSignature(html.Notification, {
+dart.setSignature(html$.Notification, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.Notification, [core.String], {dir: core.String, body: core.String, lang: core.String, tag: core.String, icon: core.String}),
-    _: dart.definiteFunctionType(html.Notification, [])
+    new: dart.definiteFunctionType(html$.Notification, [core.String], {dir: core.String, body: core.String, lang: core.String, tag: core.String, icon: core.String}),
+    _: dart.definiteFunctionType(html$.Notification, [])
   }),
   fields: () => ({
     [dartx.body]: core.String,
@@ -82294,10 +82297,10 @@
     [dartx.vibrate]: ListOfint()
   }),
   getters: () => ({
-    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onShow]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onShow]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({[dartx.close]: dart.definiteFunctionType(dart.void, [])}),
   sfields: () => ({
@@ -82308,15 +82311,15 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _factoryNotification: dart.definiteFunctionType(html.Notification, [core.String], [core.Map]),
-    _create_1: dart.definiteFunctionType(html.Notification, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.Notification, [dart.dynamic]),
-    _requestPermission: dart.definiteFunctionType(dart.void, [], [html._NotificationPermissionCallback]),
+    _factoryNotification: dart.definiteFunctionType(html$.Notification, [core.String], [core.Map]),
+    _create_1: dart.definiteFunctionType(html$.Notification, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.Notification, [dart.dynamic]),
+    _requestPermission: dart.definiteFunctionType(dart.void, [], [html$._NotificationPermissionCallback]),
     requestPermission: dart.definiteFunctionType(async.Future$(core.String), [])
   }),
   names: ['_factoryNotification', '_create_1', '_create_2', '_requestPermission', 'requestPermission']
 });
-dart.defineLazy(html.Notification, {
+dart.defineLazy(html$.Notification, {
   get clickEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('click'));
   },
@@ -82330,11 +82333,11 @@
     return dart.const(new (EventStreamProviderOfEvent())('show'));
   }
 });
-dart.registerExtension(dart.global.Notification, html.Notification);
+dart.registerExtension(dart.global.Notification, html$.Notification);
 dart.defineExtensionNames([
   'notification'
 ]);
-html.NotificationEvent = class NotificationEvent extends html.ExtendableEvent {
+html$.NotificationEvent = class NotificationEvent extends html$.ExtendableEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -82342,9 +82345,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.NotificationEvent._create_1(type, eventInitDict_1);
+      return html$.NotificationEvent._create_1(type, eventInitDict_1);
     }
-    return html.NotificationEvent._create_2(type);
+    return html$.NotificationEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.NotificationEvent(type, eventInitDict);
@@ -82356,31 +82359,31 @@
     return this.notification;
   }
 };
-dart.setSignature(html.NotificationEvent, {
+dart.setSignature(html$.NotificationEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.NotificationEvent, []),
-    new: dart.definiteFunctionType(html.NotificationEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.NotificationEvent, []),
+    new: dart.definiteFunctionType(html$.NotificationEvent, [core.String], [core.Map])
   }),
-  fields: () => ({[dartx.notification]: html.Notification}),
+  fields: () => ({[dartx.notification]: html$.Notification}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.NotificationEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.NotificationEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.NotificationEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.NotificationEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.NotificationEvent, html.NotificationEvent);
-html._NotificationPermissionCallback = dart.typedef('_NotificationPermissionCallback', () => dart.functionType(dart.void, [core.String]));
+dart.registerExtension(dart.global.NotificationEvent, html$.NotificationEvent);
+html$._NotificationPermissionCallback = dart.typedef('_NotificationPermissionCallback', () => dart.functionType(dart.void, [core.String]));
 dart.defineExtensionNames([
   'reversed',
   'start',
   'type'
 ]);
-html.OListElement = class OListElement extends html.HtmlElement {
+html$.OListElement = class OListElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.OListElement._check(html.document[dartx.createElement]("ol"));
+    return html$.OListElement._check(html$.document[dartx.createElement]("ol"));
   }
   created() {
     this[dartx.reversed] = null;
@@ -82407,12 +82410,12 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(html.OListElement, 'created');
-dart.setSignature(html.OListElement, {
+dart.defineNamedConstructor(html$.OListElement, 'created');
+dart.setSignature(html$.OListElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.OListElement, []),
-    new: dart.definiteFunctionType(html.OListElement, []),
-    created: dart.definiteFunctionType(html.OListElement, [])
+    _: dart.definiteFunctionType(html$.OListElement, []),
+    new: dart.definiteFunctionType(html$.OListElement, []),
+    created: dart.definiteFunctionType(html$.OListElement, [])
   }),
   fields: () => ({
     [dartx.reversed]: core.bool,
@@ -82420,7 +82423,7 @@
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLOListElement, html.OListElement);
+dart.registerExtension(dart.global.HTMLOListElement, html$.OListElement);
 dart.defineExtensionNames([
   'checkValidity',
   'reportValidity',
@@ -82436,12 +82439,12 @@
   'width',
   'willValidate'
 ]);
-html.ObjectElement = class ObjectElement extends html.HtmlElement {
+html$.ObjectElement = class ObjectElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ObjectElement._check(html.document[dartx.createElement]("object"));
+    return html$.ObjectElement._check(html$.document[dartx.createElement]("object"));
   }
   created() {
     this[dartx.data] = null;
@@ -82457,7 +82460,7 @@
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('object');
+    return html$.Element.isTagSupported('object');
   }
   get [dartx.data]() {
     return this.data;
@@ -82523,45 +82526,45 @@
     return this.setCustomValidity.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.ObjectElement, 'created');
-dart.setSignature(html.ObjectElement, {
+dart.defineNamedConstructor(html$.ObjectElement, 'created');
+dart.setSignature(html$.ObjectElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ObjectElement, []),
-    new: dart.definiteFunctionType(html.ObjectElement, []),
-    created: dart.definiteFunctionType(html.ObjectElement, [])
+    _: dart.definiteFunctionType(html$.ObjectElement, []),
+    new: dart.definiteFunctionType(html$.ObjectElement, []),
+    created: dart.definiteFunctionType(html$.ObjectElement, [])
   }),
   fields: () => ({
     [dartx.data]: core.String,
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.height]: core.String,
     [dartx.name]: core.String,
     [dartx.type]: core.String,
     [dartx.useMap]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.width]: core.String,
     [dartx.willValidate]: core.bool
   }),
   methods: () => ({
     [__getter__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html.Node]),
+    [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node]),
     [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
     [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
     [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLObjectElement, html.ObjectElement);
+dart.registerExtension(dart.global.HTMLObjectElement, html$.ObjectElement);
 dart.defineExtensionNames([
   'disabled',
   'label'
 ]);
-html.OptGroupElement = class OptGroupElement extends html.HtmlElement {
+html$.OptGroupElement = class OptGroupElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.OptGroupElement._check(html.document[dartx.createElement]("optgroup"));
+    return html$.OptGroupElement._check(html$.document[dartx.createElement]("optgroup"));
   }
   created() {
     this[dartx.disabled] = null;
@@ -82581,19 +82584,19 @@
     this.label = value;
   }
 };
-dart.defineNamedConstructor(html.OptGroupElement, 'created');
-dart.setSignature(html.OptGroupElement, {
+dart.defineNamedConstructor(html$.OptGroupElement, 'created');
+dart.setSignature(html$.OptGroupElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.OptGroupElement, []),
-    new: dart.definiteFunctionType(html.OptGroupElement, []),
-    created: dart.definiteFunctionType(html.OptGroupElement, [])
+    _: dart.definiteFunctionType(html$.OptGroupElement, []),
+    new: dart.definiteFunctionType(html$.OptGroupElement, []),
+    created: dart.definiteFunctionType(html$.OptGroupElement, [])
   }),
   fields: () => ({
     [dartx.disabled]: core.bool,
     [dartx.label]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLOptGroupElement, html.OptGroupElement);
+dart.registerExtension(dart.global.HTMLOptGroupElement, html$.OptGroupElement);
 dart.defineExtensionNames([
   'defaultSelected',
   'disabled',
@@ -82603,12 +82606,12 @@
   'selected',
   'value'
 ]);
-html.OptionElement = class OptionElement extends html.HtmlElement {
+html$.OptionElement = class OptionElement extends html$.HtmlElement {
   static new(opts) {
     let data = opts && 'data' in opts ? opts.data : '';
     let value = opts && 'value' in opts ? opts.value : '';
     let selected = opts && 'selected' in opts ? opts.selected : false;
-    return html.OptionElement._(data, value, null, selected);
+    return html$.OptionElement._(data, value, null, selected);
   }
   static _(data, value, defaultSelected, selected) {
     if (data === void 0) data = null;
@@ -82616,18 +82619,18 @@
     if (defaultSelected === void 0) defaultSelected = null;
     if (selected === void 0) selected = null;
     if (selected != null) {
-      return html.OptionElement._create_1(data, value, defaultSelected, selected);
+      return html$.OptionElement._create_1(data, value, defaultSelected, selected);
     }
     if (defaultSelected != null) {
-      return html.OptionElement._create_2(data, value, defaultSelected);
+      return html$.OptionElement._create_2(data, value, defaultSelected);
     }
     if (value != null) {
-      return html.OptionElement._create_3(data, value);
+      return html$.OptionElement._create_3(data, value);
     }
     if (data != null) {
-      return html.OptionElement._create_4(data);
+      return html$.OptionElement._create_4(data);
     }
-    return html.OptionElement._create_5();
+    return html$.OptionElement._create_5();
   }
   static _create_1(data, value, defaultSelected, selected) {
     return new Option(data, value, defaultSelected, selected);
@@ -82691,32 +82694,32 @@
     this.value = value;
   }
 };
-dart.defineNamedConstructor(html.OptionElement, 'created');
-dart.setSignature(html.OptionElement, {
+dart.defineNamedConstructor(html$.OptionElement, 'created');
+dart.setSignature(html$.OptionElement, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.OptionElement, [], {data: core.String, value: core.String, selected: core.bool}),
-    _: dart.definiteFunctionType(html.OptionElement, [], [core.String, core.String, core.bool, core.bool]),
-    created: dart.definiteFunctionType(html.OptionElement, [])
+    new: dart.definiteFunctionType(html$.OptionElement, [], {data: core.String, value: core.String, selected: core.bool}),
+    _: dart.definiteFunctionType(html$.OptionElement, [], [core.String, core.String, core.bool, core.bool]),
+    created: dart.definiteFunctionType(html$.OptionElement, [])
   }),
   fields: () => ({
     [dartx.defaultSelected]: core.bool,
     [dartx.disabled]: core.bool,
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.index]: core.int,
     [dartx.label]: core.String,
     [dartx.selected]: core.bool,
     [dartx.value]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.OptionElement, [dart.dynamic, dart.dynamic]),
-    _create_4: dart.definiteFunctionType(html.OptionElement, [dart.dynamic]),
-    _create_5: dart.definiteFunctionType(html.OptionElement, [])
+    _create_1: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic, dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.OptionElement, [dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$.OptionElement, [])
   }),
   names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
 });
-dart.registerExtension(dart.global.HTMLOptionElement, html.OptionElement);
+dart.registerExtension(dart.global.HTMLOptionElement, html$.OptionElement);
 dart.defineExtensionNames([
   'checkValidity',
   'reportValidity',
@@ -82732,12 +82735,12 @@
   'value',
   'willValidate'
 ]);
-html.OutputElement = class OutputElement extends html.HtmlElement {
+html$.OutputElement = class OutputElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.OutputElement._check(html.document[dartx.createElement]("output"));
+    return html$.OutputElement._check(html$.document[dartx.createElement]("output"));
   }
   created() {
     this[dartx.defaultValue] = null;
@@ -82753,7 +82756,7 @@
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('output');
+    return html$.Element.isTagSupported('output');
   }
   get [dartx.defaultValue]() {
     return this.defaultValue;
@@ -82804,22 +82807,22 @@
     return this.setCustomValidity.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.OutputElement, 'created');
-dart.setSignature(html.OutputElement, {
+dart.defineNamedConstructor(html$.OutputElement, 'created');
+dart.setSignature(html$.OutputElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.OutputElement, []),
-    new: dart.definiteFunctionType(html.OutputElement, []),
-    created: dart.definiteFunctionType(html.OutputElement, [])
+    _: dart.definiteFunctionType(html$.OutputElement, []),
+    new: dart.definiteFunctionType(html$.OutputElement, []),
+    created: dart.definiteFunctionType(html$.OutputElement, [])
   }),
   fields: () => ({
     [dartx.defaultValue]: core.String,
-    [dartx.form]: html.FormElement,
-    [dartx.htmlFor]: html.DomSettableTokenList,
+    [dartx.form]: html$.FormElement,
+    [dartx.htmlFor]: html$.DomSettableTokenList,
     [dartx.labels]: ListOfNode(),
     [dartx.name]: core.String,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.value]: core.String,
     [dartx.willValidate]: core.bool
   }),
@@ -82830,11 +82833,11 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLOutputElement, html.OutputElement);
+dart.registerExtension(dart.global.HTMLOutputElement, html$.OutputElement);
 dart.defineExtensionNames([
   'persisted'
 ]);
-html.PageTransitionEvent = class PageTransitionEvent extends html.Event {
+html$.PageTransitionEvent = class PageTransitionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -82842,9 +82845,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.PageTransitionEvent._create_1(type, eventInitDict_1);
+      return html$.PageTransitionEvent._create_1(type, eventInitDict_1);
     }
-    return html.PageTransitionEvent._create_2(type);
+    return html$.PageTransitionEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.PageTransitionEvent(type, eventInitDict);
@@ -82856,49 +82859,49 @@
     return this.persisted;
   }
 };
-dart.setSignature(html.PageTransitionEvent, {
+dart.setSignature(html$.PageTransitionEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PageTransitionEvent, []),
-    new: dart.definiteFunctionType(html.PageTransitionEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.PageTransitionEvent, []),
+    new: dart.definiteFunctionType(html$.PageTransitionEvent, [core.String], [core.Map])
   }),
   fields: () => ({[dartx.persisted]: core.bool}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.PageTransitionEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.PageTransitionEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.PageTransitionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PageTransitionEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.PageTransitionEvent, html.PageTransitionEvent);
-html.ParagraphElement = class ParagraphElement extends html.HtmlElement {
+dart.registerExtension(dart.global.PageTransitionEvent, html$.PageTransitionEvent);
+html$.ParagraphElement = class ParagraphElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ParagraphElement._check(html.document[dartx.createElement]("p"));
+    return html$.ParagraphElement._check(html$.document[dartx.createElement]("p"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.ParagraphElement, 'created');
-dart.setSignature(html.ParagraphElement, {
+dart.defineNamedConstructor(html$.ParagraphElement, 'created');
+dart.setSignature(html$.ParagraphElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ParagraphElement, []),
-    new: dart.definiteFunctionType(html.ParagraphElement, []),
-    created: dart.definiteFunctionType(html.ParagraphElement, [])
+    _: dart.definiteFunctionType(html$.ParagraphElement, []),
+    new: dart.definiteFunctionType(html$.ParagraphElement, []),
+    created: dart.definiteFunctionType(html$.ParagraphElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLParagraphElement, html.ParagraphElement);
+dart.registerExtension(dart.global.HTMLParagraphElement, html$.ParagraphElement);
 dart.defineExtensionNames([
   'name',
   'value'
 ]);
-html.ParamElement = class ParamElement extends html.HtmlElement {
+html$.ParamElement = class ParamElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ParamElement._check(html.document[dartx.createElement]("param"));
+    return html$.ParamElement._check(html$.document[dartx.createElement]("param"));
   }
   created() {
     this[dartx.name] = null;
@@ -82918,38 +82921,38 @@
     this.value = value;
   }
 };
-dart.defineNamedConstructor(html.ParamElement, 'created');
-dart.setSignature(html.ParamElement, {
+dart.defineNamedConstructor(html$.ParamElement, 'created');
+dart.setSignature(html$.ParamElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ParamElement, []),
-    new: dart.definiteFunctionType(html.ParamElement, []),
-    created: dart.definiteFunctionType(html.ParamElement, [])
+    _: dart.definiteFunctionType(html$.ParamElement, []),
+    new: dart.definiteFunctionType(html$.ParamElement, []),
+    created: dart.definiteFunctionType(html$.ParamElement, [])
   }),
   fields: () => ({
     [dartx.name]: core.String,
     [dartx.value]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLParamElement, html.ParamElement);
-html.ParentNode = class ParentNode extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.HTMLParamElement, html$.ParamElement);
+html$.ParentNode = class ParentNode extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.ParentNode, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ParentNode, [])}),
+dart.setSignature(html$.ParentNode, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ParentNode, [])}),
   fields: () => ({
     [_childElementCount]: core.int,
     [_children]: ListOfNode(),
-    [_firstElementChild]: html.Element,
-    [_lastElementChild]: html.Element
+    [_firstElementChild]: html$.Element,
+    [_lastElementChild]: html$.Element
   })
 });
 dart.defineExtensionNames([
   'formData',
   'password'
 ]);
-html.PasswordCredential = class PasswordCredential extends html.Credential {
+html$.PasswordCredential = class PasswordCredential extends html$.Credential {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -82957,12 +82960,12 @@
     if (name === void 0) name = null;
     if (iconURL === void 0) iconURL = null;
     if (iconURL != null) {
-      return html.PasswordCredential._create_1(id, password, name, iconURL);
+      return html$.PasswordCredential._create_1(id, password, name, iconURL);
     }
     if (name != null) {
-      return html.PasswordCredential._create_2(id, password, name);
+      return html$.PasswordCredential._create_2(id, password, name);
     }
-    return html.PasswordCredential._create_3(id, password);
+    return html$.PasswordCredential._create_3(id, password);
   }
   static _create_1(id, password, name, iconURL) {
     return new self.PasswordCredential(id, password, name, iconURL);
@@ -82980,23 +82983,23 @@
     return this.password;
   }
 };
-dart.setSignature(html.PasswordCredential, {
+dart.setSignature(html$.PasswordCredential, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PasswordCredential, []),
-    new: dart.definiteFunctionType(html.PasswordCredential, [core.String, core.String], [core.String, core.String])
+    _: dart.definiteFunctionType(html$.PasswordCredential, []),
+    new: dart.definiteFunctionType(html$.PasswordCredential, [core.String, core.String], [core.String, core.String])
   }),
   fields: () => ({
-    [dartx.formData]: html.FormData,
+    [dartx.formData]: html$.FormData,
     [dartx.password]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.PasswordCredential, [dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.PasswordCredential, [dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3']
 });
-dart.registerExtension(dart.global.PasswordCredential, html.PasswordCredential);
+dart.registerExtension(dart.global.PasswordCredential, html$.PasswordCredential);
 dart.defineExtensionNames([
   'addPath',
   'arc',
@@ -83009,20 +83012,20 @@
   'quadraticCurveTo',
   'rect'
 ]);
-html.Path2D = class Path2D extends _interceptors.Interceptor {
+html$.Path2D = class Path2D extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(path_OR_text) {
     if (path_OR_text === void 0) path_OR_text = null;
     if (path_OR_text == null) {
-      return html.Path2D._create_1();
+      return html$.Path2D._create_1();
     }
-    if (html.Path2D.is(path_OR_text) || path_OR_text == null) {
-      return html.Path2D._create_2(path_OR_text);
+    if (html$.Path2D.is(path_OR_text) || path_OR_text == null) {
+      return html$.Path2D._create_2(path_OR_text);
     }
     if (typeof path_OR_text == 'string' || path_OR_text == null) {
-      return html.Path2D._create_3(path_OR_text);
+      return html$.Path2D._create_3(path_OR_text);
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -83066,14 +83069,14 @@
     return this.rect.apply(this, args);
   }
 };
-html.Path2D[dart.implements] = () => [html._CanvasPathMethods];
-dart.setSignature(html.Path2D, {
+html$.Path2D[dart.implements] = () => [html$._CanvasPathMethods];
+dart.setSignature(html$.Path2D, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.Path2D, []),
-    new: dart.definiteFunctionType(html.Path2D, [], [dart.dynamic])
+    _: dart.definiteFunctionType(html$.Path2D, []),
+    new: dart.definiteFunctionType(html$.Path2D, [], [dart.dynamic])
   }),
   methods: () => ({
-    [dartx.addPath]: dart.definiteFunctionType(dart.void, [html.Path2D], [svg.Matrix]),
+    [dartx.addPath]: dart.definiteFunctionType(dart.void, [html$.Path2D], [svg$.Matrix]),
     [dartx.arc]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.bool]),
     [dartx.arcTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num]),
     [dartx.bezierCurveTo]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num, core.num, core.num]),
@@ -83085,13 +83088,13 @@
     [dartx.rect]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num, core.num])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.Path2D, []),
-    _create_2: dart.definiteFunctionType(html.Path2D, [dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.Path2D, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.Path2D, []),
+    _create_2: dart.definiteFunctionType(html$.Path2D, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.Path2D, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2', '_create_3']
 });
-dart.registerExtension(dart.global.Path2D, html.Path2D);
+dart.registerExtension(dart.global.Path2D, html$.Path2D);
 dart.defineExtensionNames([
   'clearFrameTimings',
   'clearMarks',
@@ -83110,7 +83113,7 @@
   'navigation',
   'timing'
 ]);
-html.Performance = class Performance extends html.EventTarget {
+html$.Performance = class Performance extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83163,24 +83166,24 @@
     return this.webkitSetResourceTimingBufferSize.apply(this, args);
   }
   get [dartx.onResourceTimingBufferFull]() {
-    return html.Performance.resourceTimingBufferFullEvent.forTarget(this);
+    return html$.Performance.resourceTimingBufferFullEvent.forTarget(this);
   }
 };
-dart.setSignature(html.Performance, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Performance, [])}),
+dart.setSignature(html$.Performance, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Performance, [])}),
   fields: () => ({
-    [dartx.memory]: html.MemoryInfo,
-    [dartx.navigation]: html.PerformanceNavigation,
-    [dartx.timing]: html.PerformanceTiming
+    [dartx.memory]: html$.MemoryInfo,
+    [dartx.navigation]: html$.PerformanceNavigation,
+    [dartx.timing]: html$.PerformanceTiming
   }),
-  getters: () => ({[dartx.onResourceTimingBufferFull]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onResourceTimingBufferFull]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
     [dartx.clearFrameTimings]: dart.definiteFunctionType(dart.void, []),
     [dartx.clearMarks]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.clearMeasures]: dart.definiteFunctionType(dart.void, [core.String]),
-    [dartx.getEntries]: dart.definiteFunctionType(core.List$(html.PerformanceEntry), []),
-    [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html.PerformanceEntry), [core.String, core.String]),
-    [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html.PerformanceEntry), [core.String]),
+    [dartx.getEntries]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), []),
+    [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
+    [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String]),
     [dartx.mark]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.measure]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
     [dartx.now]: dart.definiteFunctionType(core.double, []),
@@ -83191,19 +83194,19 @@
   sfields: () => ({resourceTimingBufferFullEvent: EventStreamProviderOfEvent()}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineLazy(html.Performance, {
+dart.defineLazy(html$.Performance, {
   get resourceTimingBufferFullEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('webkitresourcetimingbufferfull'));
   }
 });
-dart.registerExtension(dart.global.Performance, html.Performance);
+dart.registerExtension(dart.global.Performance, html$.Performance);
 dart.defineExtensionNames([
   'duration',
   'entryType',
   'name',
   'startTime'
 ]);
-html.PerformanceEntry = class PerformanceEntry extends _interceptors.Interceptor {
+html$.PerformanceEntry = class PerformanceEntry extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83220,8 +83223,8 @@
     return this.startTime;
   }
 };
-dart.setSignature(html.PerformanceEntry, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceEntry, [])}),
+dart.setSignature(html$.PerformanceEntry, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceEntry, [])}),
   fields: () => ({
     [dartx.duration]: core.double,
     [dartx.entryType]: core.String,
@@ -83229,11 +83232,11 @@
     [dartx.startTime]: core.double
   })
 });
-dart.registerExtension(dart.global.PerformanceEntry, html.PerformanceEntry);
+dart.registerExtension(dart.global.PerformanceEntry, html$.PerformanceEntry);
 dart.defineExtensionNames([
   'sourceFrame'
 ]);
-html.PerformanceCompositeTiming = class PerformanceCompositeTiming extends html.PerformanceEntry {
+html$.PerformanceCompositeTiming = class PerformanceCompositeTiming extends html$.PerformanceEntry {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83241,34 +83244,34 @@
     return this.sourceFrame;
   }
 };
-dart.setSignature(html.PerformanceCompositeTiming, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceCompositeTiming, [])}),
+dart.setSignature(html$.PerformanceCompositeTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceCompositeTiming, [])}),
   fields: () => ({[dartx.sourceFrame]: core.int})
 });
-dart.registerExtension(dart.global.PerformanceCompositeTiming, html.PerformanceCompositeTiming);
-html.PerformanceMark = class PerformanceMark extends html.PerformanceEntry {
+dart.registerExtension(dart.global.PerformanceCompositeTiming, html$.PerformanceCompositeTiming);
+html$.PerformanceMark = class PerformanceMark extends html$.PerformanceEntry {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.PerformanceMark, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceMark, [])})
+dart.setSignature(html$.PerformanceMark, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceMark, [])})
 });
-dart.registerExtension(dart.global.PerformanceMark, html.PerformanceMark);
-html.PerformanceMeasure = class PerformanceMeasure extends html.PerformanceEntry {
+dart.registerExtension(dart.global.PerformanceMark, html$.PerformanceMark);
+html$.PerformanceMeasure = class PerformanceMeasure extends html$.PerformanceEntry {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.PerformanceMeasure, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceMeasure, [])})
+dart.setSignature(html$.PerformanceMeasure, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceMeasure, [])})
 });
-dart.registerExtension(dart.global.PerformanceMeasure, html.PerformanceMeasure);
+dart.registerExtension(dart.global.PerformanceMeasure, html$.PerformanceMeasure);
 dart.defineExtensionNames([
   'redirectCount',
   'type'
 ]);
-html.PerformanceNavigation = class PerformanceNavigation extends _interceptors.Interceptor {
+html$.PerformanceNavigation = class PerformanceNavigation extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83279,8 +83282,8 @@
     return this.type;
   }
 };
-dart.setSignature(html.PerformanceNavigation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceNavigation, [])}),
+dart.setSignature(html$.PerformanceNavigation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceNavigation, [])}),
   fields: () => ({
     [dartx.redirectCount]: core.int,
     [dartx.type]: core.int
@@ -83292,15 +83295,15 @@
     TYPE_RESERVED: core.int
   })
 });
-html.PerformanceNavigation.TYPE_BACK_FORWARD = 2;
-html.PerformanceNavigation.TYPE_NAVIGATE = 0;
-html.PerformanceNavigation.TYPE_RELOAD = 1;
-html.PerformanceNavigation.TYPE_RESERVED = 255;
-dart.registerExtension(dart.global.PerformanceNavigation, html.PerformanceNavigation);
+html$.PerformanceNavigation.TYPE_BACK_FORWARD = 2;
+html$.PerformanceNavigation.TYPE_NAVIGATE = 0;
+html$.PerformanceNavigation.TYPE_RELOAD = 1;
+html$.PerformanceNavigation.TYPE_RESERVED = 255;
+dart.registerExtension(dart.global.PerformanceNavigation, html$.PerformanceNavigation);
 dart.defineExtensionNames([
   'sourceFrame'
 ]);
-html.PerformanceRenderTiming = class PerformanceRenderTiming extends html.PerformanceEntry {
+html$.PerformanceRenderTiming = class PerformanceRenderTiming extends html$.PerformanceEntry {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83308,11 +83311,11 @@
     return this.sourceFrame;
   }
 };
-dart.setSignature(html.PerformanceRenderTiming, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceRenderTiming, [])}),
+dart.setSignature(html$.PerformanceRenderTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceRenderTiming, [])}),
   fields: () => ({[dartx.sourceFrame]: core.int})
 });
-dart.registerExtension(dart.global.PerformanceRenderTiming, html.PerformanceRenderTiming);
+dart.registerExtension(dart.global.PerformanceRenderTiming, html$.PerformanceRenderTiming);
 dart.defineExtensionNames([
   'connectEnd',
   'connectStart',
@@ -83328,7 +83331,7 @@
   'secureConnectionStart',
   'workerStart'
 ]);
-html.PerformanceResourceTiming = class PerformanceResourceTiming extends html.PerformanceEntry {
+html$.PerformanceResourceTiming = class PerformanceResourceTiming extends html$.PerformanceEntry {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83372,8 +83375,8 @@
     return this.workerStart;
   }
 };
-dart.setSignature(html.PerformanceResourceTiming, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceResourceTiming, [])}),
+dart.setSignature(html$.PerformanceResourceTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceResourceTiming, [])}),
   fields: () => ({
     [dartx.connectEnd]: core.double,
     [dartx.connectStart]: core.double,
@@ -83390,7 +83393,7 @@
     [dartx.workerStart]: core.double
   })
 });
-dart.registerExtension(dart.global.PerformanceResourceTiming, html.PerformanceResourceTiming);
+dart.registerExtension(dart.global.PerformanceResourceTiming, html$.PerformanceResourceTiming);
 dart.defineExtensionNames([
   'connectEnd',
   'connectStart',
@@ -83414,7 +83417,7 @@
   'unloadEventEnd',
   'unloadEventStart'
 ]);
-html.PerformanceTiming = class PerformanceTiming extends _interceptors.Interceptor {
+html$.PerformanceTiming = class PerformanceTiming extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83482,8 +83485,8 @@
     return this.unloadEventStart;
   }
 };
-dart.setSignature(html.PerformanceTiming, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PerformanceTiming, [])}),
+dart.setSignature(html$.PerformanceTiming, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PerformanceTiming, [])}),
   fields: () => ({
     [dartx.connectEnd]: core.int,
     [dartx.connectStart]: core.int,
@@ -83508,17 +83511,17 @@
     [dartx.unloadEventStart]: core.int
   })
 });
-dart.registerExtension(dart.global.PerformanceTiming, html.PerformanceTiming);
+dart.registerExtension(dart.global.PerformanceTiming, html$.PerformanceTiming);
 dart.defineExtensionNames([
   'registration'
 ]);
-html.PeriodicSyncEvent = class PeriodicSyncEvent extends html.ExtendableEvent {
+html$.PeriodicSyncEvent = class PeriodicSyncEvent extends html$.ExtendableEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(type, init) {
     let init_1 = html_common.convertDartToNative_Dictionary(init);
-    return html.PeriodicSyncEvent._create_1(type, init_1);
+    return html$.PeriodicSyncEvent._create_1(type, init_1);
   }
   static _create_1(type, init) {
     return new self.PeriodicSyncEvent(type, init);
@@ -83527,16 +83530,16 @@
     return this.registration;
   }
 };
-dart.setSignature(html.PeriodicSyncEvent, {
+dart.setSignature(html$.PeriodicSyncEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PeriodicSyncEvent, []),
-    new: dart.definiteFunctionType(html.PeriodicSyncEvent, [core.String, core.Map])
+    _: dart.definiteFunctionType(html$.PeriodicSyncEvent, []),
+    new: dart.definiteFunctionType(html$.PeriodicSyncEvent, [core.String, core.Map])
   }),
-  fields: () => ({[dartx.registration]: html.PeriodicSyncRegistration}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.PeriodicSyncEvent, [dart.dynamic, dart.dynamic])}),
+  fields: () => ({[dartx.registration]: html$.PeriodicSyncRegistration}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.PeriodicSyncEvent, [dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.PeriodicSyncEvent, html.PeriodicSyncEvent);
+dart.registerExtension(dart.global.PeriodicSyncEvent, html$.PeriodicSyncEvent);
 const _register_1 = Symbol('_register_1');
 const _register_2 = Symbol('_register_2');
 dart.defineExtensionNames([
@@ -83546,7 +83549,7 @@
   'register',
   'minPossiblePeriod'
 ]);
-html.PeriodicSyncManager = class PeriodicSyncManager extends _interceptors.Interceptor {
+html$.PeriodicSyncManager = class PeriodicSyncManager extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83577,8 +83580,8 @@
     return this.register.apply(this, args);
   }
 };
-dart.setSignature(html.PeriodicSyncManager, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PeriodicSyncManager, [])}),
+dart.setSignature(html$.PeriodicSyncManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PeriodicSyncManager, [])}),
   fields: () => ({[dartx.minPossiblePeriod]: core.int}),
   methods: () => ({
     [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [core.String]),
@@ -83589,7 +83592,7 @@
     [_register_2]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.PeriodicSyncManager, html.PeriodicSyncManager);
+dart.registerExtension(dart.global.PeriodicSyncManager, html$.PeriodicSyncManager);
 dart.defineExtensionNames([
   'unregister',
   'minPeriod',
@@ -83597,7 +83600,7 @@
   'powerState',
   'tag'
 ]);
-html.PeriodicSyncRegistration = class PeriodicSyncRegistration extends _interceptors.Interceptor {
+html$.PeriodicSyncRegistration = class PeriodicSyncRegistration extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83617,8 +83620,8 @@
     return this.unregister.apply(this, args);
   }
 };
-dart.setSignature(html.PeriodicSyncRegistration, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PeriodicSyncRegistration, [])}),
+dart.setSignature(html$.PeriodicSyncRegistration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PeriodicSyncRegistration, [])}),
   fields: () => ({
     [dartx.minPeriod]: core.int,
     [dartx.networkState]: core.String,
@@ -83627,13 +83630,13 @@
   }),
   methods: () => ({[dartx.unregister]: dart.definiteFunctionType(async.Future, [])})
 });
-dart.registerExtension(dart.global.PeriodicSyncRegistration, html.PeriodicSyncRegistration);
+dart.registerExtension(dart.global.PeriodicSyncRegistration, html$.PeriodicSyncRegistration);
 dart.defineExtensionNames([
   'onChange',
   'state',
   'status'
 ]);
-html.PermissionStatus = class PermissionStatus extends html.EventTarget {
+html$.PermissionStatus = class PermissionStatus extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83644,28 +83647,28 @@
     return this.status;
   }
   get [dartx.onChange]() {
-    return html.PermissionStatus.changeEvent.forTarget(this);
+    return html$.PermissionStatus.changeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.PermissionStatus, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PermissionStatus, [])}),
+dart.setSignature(html$.PermissionStatus, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PermissionStatus, [])}),
   fields: () => ({
     [dartx.state]: core.String,
     [dartx.status]: core.String
   }),
-  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.PermissionStatus, {
+dart.defineLazy(html$.PermissionStatus, {
   get changeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.PermissionStatus, html.PermissionStatus);
+dart.registerExtension(dart.global.PermissionStatus, html$.PermissionStatus);
 dart.defineExtensionNames([
   'query'
 ]);
-html.Permissions = class Permissions extends _interceptors.Interceptor {
+html$.Permissions = class Permissions extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83673,12 +83676,12 @@
     return this.query.apply(this, args);
   }
 };
-dart.setSignature(html.Permissions, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Permissions, [])}),
+dart.setSignature(html$.Permissions, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Permissions, [])}),
   methods: () => ({[dartx.query]: dart.definiteFunctionType(async.Future, [core.Object])})
 });
-dart.registerExtension(dart.global.Permissions, html.Permissions);
-html.PictureElement = class PictureElement extends html.HtmlElement {
+dart.registerExtension(dart.global.Permissions, html$.Permissions);
+html$.PictureElement = class PictureElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83686,14 +83689,14 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html.PictureElement, 'created');
-dart.setSignature(html.PictureElement, {
+dart.defineNamedConstructor(html$.PictureElement, 'created');
+dart.setSignature(html$.PictureElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PictureElement, []),
-    created: dart.definiteFunctionType(html.PictureElement, [])
+    _: dart.definiteFunctionType(html$.PictureElement, []),
+    created: dart.definiteFunctionType(html$.PictureElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLPictureElement, html.PictureElement);
+dart.registerExtension(dart.global.HTMLPictureElement, html$.PictureElement);
 dart.defineExtensionNames([
   'item',
   'namedItem',
@@ -83702,7 +83705,7 @@
   'length',
   'name'
 ]);
-html.Plugin = class Plugin extends _interceptors.Interceptor {
+html$.Plugin = class Plugin extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83725,8 +83728,8 @@
     return this.namedItem.apply(this, args);
   }
 };
-dart.setSignature(html.Plugin, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Plugin, [])}),
+dart.setSignature(html$.Plugin, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Plugin, [])}),
   fields: () => ({
     [dartx.description]: core.String,
     [dartx.filename]: core.String,
@@ -83734,11 +83737,11 @@
     [dartx.name]: core.String
   }),
   methods: () => ({
-    [dartx.item]: dart.definiteFunctionType(html.MimeType, [core.int]),
-    [dartx.namedItem]: dart.definiteFunctionType(html.MimeType, [core.String])
+    [dartx.item]: dart.definiteFunctionType(html$.MimeType, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.MimeType, [core.String])
   })
 });
-dart.registerExtension(dart.global.Plugin, html.Plugin);
+dart.registerExtension(dart.global.Plugin, html$.Plugin);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -83752,7 +83755,7 @@
   'namedItem',
   'refresh'
 ]);
-html.PluginArray = class PluginArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.Plugin), html.ImmutableListMixin$(html.Plugin)) {
+html$.PluginArray = class PluginArray extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Plugin), html$.ImmutableListMixin$(html$.Plugin)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83804,26 +83807,26 @@
     return this.refresh.apply(this, args);
   }
 };
-html.PluginArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfPlugin()];
-dart.setSignature(html.PluginArray, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PluginArray, [])}),
+html$.PluginArray[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfPlugin()];
+dart.setSignature(html$.PluginArray, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PluginArray, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.Plugin, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.Plugin]),
-    [dartx.item]: dart.definiteFunctionType(html.Plugin, [core.int]),
-    [dartx.namedItem]: dart.definiteFunctionType(html.Plugin, [core.String]),
+    [dartx._get]: dart.definiteFunctionType(html$.Plugin, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Plugin]),
+    [dartx.item]: dart.definiteFunctionType(html$.Plugin, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.Plugin, [core.String]),
     [dartx.refresh]: dart.definiteFunctionType(dart.void, [core.bool])
   })
 });
-dart.registerExtension(dart.global.PluginArray, html.PluginArray);
+dart.registerExtension(dart.global.PluginArray, html$.PluginArray);
 dart.defineExtensionNames([
   'createdCallback',
   'closeable',
   'message'
 ]);
-html.PluginPlaceholderElement = class PluginPlaceholderElement extends html.DivElement {
+html$.PluginPlaceholderElement = class PluginPlaceholderElement extends html$.DivElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83848,11 +83851,11 @@
     return this.createdCallback.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.PluginPlaceholderElement, 'created');
-dart.setSignature(html.PluginPlaceholderElement, {
+dart.defineNamedConstructor(html$.PluginPlaceholderElement, 'created');
+dart.setSignature(html$.PluginPlaceholderElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PluginPlaceholderElement, []),
-    created: dart.definiteFunctionType(html.PluginPlaceholderElement, [])
+    _: dart.definiteFunctionType(html$.PluginPlaceholderElement, []),
+    created: dart.definiteFunctionType(html$.PluginPlaceholderElement, [])
   }),
   fields: () => ({
     [dartx.closeable]: core.bool,
@@ -83860,7 +83863,7 @@
   }),
   methods: () => ({[dartx.createdCallback]: dart.definiteFunctionType(dart.void, [])})
 });
-dart.registerExtension(dart.global.PluginPlaceholderElement, html.PluginPlaceholderElement);
+dart.registerExtension(dart.global.PluginPlaceholderElement, html$.PluginPlaceholderElement);
 dart.defineExtensionNames([
   'height',
   'isPrimary',
@@ -83871,7 +83874,7 @@
   'tiltY',
   'width'
 ]);
-html.PointerEvent = class PointerEvent extends html.MouseEvent {
+html$.PointerEvent = class PointerEvent extends html$.MouseEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83879,9 +83882,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.PointerEvent._create_1(type, eventInitDict_1);
+      return html$.PointerEvent._create_1(type, eventInitDict_1);
     }
-    return html.PointerEvent._create_2(type);
+    return html$.PointerEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.PointerEvent(type, eventInitDict);
@@ -83914,10 +83917,10 @@
     return this.width;
   }
 };
-dart.setSignature(html.PointerEvent, {
+dart.setSignature(html$.PointerEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PointerEvent, []),
-    new: dart.definiteFunctionType(html.PointerEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.PointerEvent, []),
+    new: dart.definiteFunctionType(html$.PointerEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.height]: core.double,
@@ -83930,16 +83933,16 @@
     [dartx.width]: core.double
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.PointerEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.PointerEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.PointerEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PointerEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.PointerEvent, html.PointerEvent);
+dart.registerExtension(dart.global.PointerEvent, html$.PointerEvent);
 dart.defineExtensionNames([
   'state'
 ]);
-html.PopStateEvent = class PopStateEvent extends html.Event {
+html$.PopStateEvent = class PopStateEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83947,9 +83950,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.PopStateEvent._create_1(type, eventInitDict_1);
+      return html$.PopStateEvent._create_1(type, eventInitDict_1);
     }
-    return html.PopStateEvent._create_2(type);
+    return html$.PopStateEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.PopStateEvent(type, eventInitDict);
@@ -83964,26 +83967,26 @@
     return this.state;
   }
 };
-dart.setSignature(html.PopStateEvent, {
+dart.setSignature(html$.PopStateEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PopStateEvent, []),
-    new: dart.definiteFunctionType(html.PopStateEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.PopStateEvent, []),
+    new: dart.definiteFunctionType(html$.PopStateEvent, [core.String], [core.Map])
   }),
   fields: () => ({[_get_state]: dart.dynamic}),
   getters: () => ({[dartx.state]: dart.definiteFunctionType(dart.dynamic, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.PopStateEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.PopStateEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.PopStateEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PopStateEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.PopStateEvent, html.PopStateEvent);
-html._PositionCallback = dart.typedef('_PositionCallback', () => dart.functionType(dart.void, [html.Geoposition]));
+dart.registerExtension(dart.global.PopStateEvent, html$.PopStateEvent);
+html$._PositionCallback = dart.typedef('_PositionCallback', () => dart.functionType(dart.void, [html$.Geoposition]));
 dart.defineExtensionNames([
   'code',
   'message'
 ]);
-html.PositionError = class PositionError extends _interceptors.Interceptor {
+html$.PositionError = class PositionError extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -83994,8 +83997,8 @@
     return this.message;
   }
 };
-dart.setSignature(html.PositionError, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PositionError, [])}),
+dart.setSignature(html$.PositionError, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PositionError, [])}),
   fields: () => ({
     [dartx.code]: core.int,
     [dartx.message]: core.String
@@ -84006,17 +84009,17 @@
     TIMEOUT: core.int
   })
 });
-html.PositionError.PERMISSION_DENIED = 1;
-html.PositionError.POSITION_UNAVAILABLE = 2;
-html.PositionError.TIMEOUT = 3;
-dart.registerExtension(dart.global.PositionError, html.PositionError);
-html._PositionErrorCallback = dart.typedef('_PositionErrorCallback', () => dart.functionType(dart.void, [html.PositionError]));
+html$.PositionError.PERMISSION_DENIED = 1;
+html$.PositionError.POSITION_UNAVAILABLE = 2;
+html$.PositionError.TIMEOUT = 3;
+dart.registerExtension(dart.global.PositionError, html$.PositionError);
+html$._PositionErrorCallback = dart.typedef('_PositionErrorCallback', () => dart.functionType(dart.void, [html$.PositionError]));
 dart.defineExtensionNames([
   'getImmediateState',
   'getState',
   'resetSensor'
 ]);
-html.PositionSensorVRDevice = class PositionSensorVRDevice extends html.VRDevice {
+html$.PositionSensorVRDevice = class PositionSensorVRDevice extends html$.VRDevice {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84030,42 +84033,42 @@
     return this.resetSensor.apply(this, args);
   }
 };
-dart.setSignature(html.PositionSensorVRDevice, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PositionSensorVRDevice, [])}),
+dart.setSignature(html$.PositionSensorVRDevice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PositionSensorVRDevice, [])}),
   methods: () => ({
-    [dartx.getImmediateState]: dart.definiteFunctionType(html.VRPositionState, []),
-    [dartx.getState]: dart.definiteFunctionType(html.VRPositionState, []),
+    [dartx.getImmediateState]: dart.definiteFunctionType(html$.VRPositionState, []),
+    [dartx.getState]: dart.definiteFunctionType(html$.VRPositionState, []),
     [dartx.resetSensor]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.PositionSensorVRDevice, html.PositionSensorVRDevice);
-html.PreElement = class PreElement extends html.HtmlElement {
+dart.registerExtension(dart.global.PositionSensorVRDevice, html$.PositionSensorVRDevice);
+html$.PreElement = class PreElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.PreElement._check(html.document[dartx.createElement]("pre"));
+    return html$.PreElement._check(html$.document[dartx.createElement]("pre"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.PreElement, 'created');
-dart.setSignature(html.PreElement, {
+dart.defineNamedConstructor(html$.PreElement, 'created');
+dart.setSignature(html$.PreElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PreElement, []),
-    new: dart.definiteFunctionType(html.PreElement, []),
-    created: dart.definiteFunctionType(html.PreElement, [])
+    _: dart.definiteFunctionType(html$.PreElement, []),
+    new: dart.definiteFunctionType(html$.PreElement, []),
+    created: dart.definiteFunctionType(html$.PreElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLPreElement, html.PreElement);
+dart.registerExtension(dart.global.HTMLPreElement, html$.PreElement);
 dart.defineExtensionNames([
   'getAvailability',
   'joinSession',
   'startSession',
   'session'
 ]);
-html.Presentation = class Presentation extends html.EventTarget {
+html$.Presentation = class Presentation extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84082,21 +84085,21 @@
     return this.startSession.apply(this, args);
   }
 };
-dart.setSignature(html.Presentation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Presentation, [])}),
-  fields: () => ({[dartx.session]: html.PresentationSession}),
+dart.setSignature(html$.Presentation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Presentation, [])}),
+  fields: () => ({[dartx.session]: html$.PresentationSession}),
   methods: () => ({
     [dartx.getAvailability]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.joinSession]: dart.definiteFunctionType(async.Future, [core.String, core.String]),
     [dartx.startSession]: dart.definiteFunctionType(async.Future, [core.String])
   })
 });
-dart.registerExtension(dart.global.Presentation, html.Presentation);
+dart.registerExtension(dart.global.Presentation, html$.Presentation);
 dart.defineExtensionNames([
   'onChange',
   'value'
 ]);
-html.PresentationAvailability = class PresentationAvailability extends html.EventTarget {
+html$.PresentationAvailability = class PresentationAvailability extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84104,21 +84107,21 @@
     return this.value;
   }
   get [dartx.onChange]() {
-    return html.PresentationAvailability.changeEvent.forTarget(this);
+    return html$.PresentationAvailability.changeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.PresentationAvailability, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PresentationAvailability, [])}),
+dart.setSignature(html$.PresentationAvailability, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PresentationAvailability, [])}),
   fields: () => ({[dartx.value]: core.bool}),
-  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.PresentationAvailability, {
+dart.defineLazy(html$.PresentationAvailability, {
   get changeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.PresentationAvailability, html.PresentationAvailability);
+dart.registerExtension(dart.global.PresentationAvailability, html$.PresentationAvailability);
 dart.defineExtensionNames([
   'close',
   'send',
@@ -84127,7 +84130,7 @@
   'id',
   'state'
 ]);
-html.PresentationSession = class PresentationSession extends html.EventTarget {
+html$.PresentationSession = class PresentationSession extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84150,34 +84153,34 @@
     return this.send.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.PresentationSession.messageEvent.forTarget(this);
+    return html$.PresentationSession.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.PresentationSession, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PresentationSession, [])}),
+dart.setSignature(html$.PresentationSession, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PresentationSession, [])}),
   fields: () => ({
     [dartx.binaryType]: core.String,
     [dartx.id]: core.String,
     [dartx.state]: core.String
   }),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
     [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic])
   }),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.PresentationSession, {
+dart.defineLazy(html$.PresentationSession, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.PresentationSession, html.PresentationSession);
+dart.registerExtension(dart.global.PresentationSession, html$.PresentationSession);
 dart.defineExtensionNames([
   'sheet',
   'target'
 ]);
-html.ProcessingInstruction = class ProcessingInstruction extends html.CharacterData {
+html$.ProcessingInstruction = class ProcessingInstruction extends html$.CharacterData {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84188,26 +84191,26 @@
     return this.target;
   }
 };
-dart.setSignature(html.ProcessingInstruction, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ProcessingInstruction, [])}),
+dart.setSignature(html$.ProcessingInstruction, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ProcessingInstruction, [])}),
   fields: () => ({
-    [dartx.sheet]: html.StyleSheet,
+    [dartx.sheet]: html$.StyleSheet,
     [dartx.target]: core.String
   })
 });
-dart.registerExtension(dart.global.ProcessingInstruction, html.ProcessingInstruction);
+dart.registerExtension(dart.global.ProcessingInstruction, html$.ProcessingInstruction);
 dart.defineExtensionNames([
   'labels',
   'max',
   'position',
   'value'
 ]);
-html.ProgressElement = class ProgressElement extends html.HtmlElement {
+html$.ProgressElement = class ProgressElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ProgressElement._check(html.document[dartx.createElement]("progress"));
+    return html$.ProgressElement._check(html$.document[dartx.createElement]("progress"));
   }
   created() {
     this[dartx.labels] = null;
@@ -84217,7 +84220,7 @@
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('progress');
+    return html$.Element.isTagSupported('progress');
   }
   get [dartx.labels]() {
     return this.labels;
@@ -84238,12 +84241,12 @@
     this.value = value;
   }
 };
-dart.defineNamedConstructor(html.ProgressElement, 'created');
-dart.setSignature(html.ProgressElement, {
+dart.defineNamedConstructor(html$.ProgressElement, 'created');
+dart.setSignature(html$.ProgressElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ProgressElement, []),
-    new: dart.definiteFunctionType(html.ProgressElement, []),
-    created: dart.definiteFunctionType(html.ProgressElement, [])
+    _: dart.definiteFunctionType(html$.ProgressElement, []),
+    new: dart.definiteFunctionType(html$.ProgressElement, []),
+    created: dart.definiteFunctionType(html$.ProgressElement, [])
   }),
   fields: () => ({
     [dartx.labels]: ListOfNode(),
@@ -84253,13 +84256,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLProgressElement, html.ProgressElement);
+dart.registerExtension(dart.global.HTMLProgressElement, html$.ProgressElement);
 dart.defineExtensionNames([
   'lengthComputable',
   'loaded',
   'total'
 ]);
-html.ProgressEvent = class ProgressEvent extends html.Event {
+html$.ProgressEvent = class ProgressEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84267,9 +84270,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.ProgressEvent._create_1(type, eventInitDict_1);
+      return html$.ProgressEvent._create_1(type, eventInitDict_1);
     }
-    return html.ProgressEvent._create_2(type);
+    return html$.ProgressEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.ProgressEvent(type, eventInitDict);
@@ -84287,10 +84290,10 @@
     return this.total;
   }
 };
-dart.setSignature(html.ProgressEvent, {
+dart.setSignature(html$.ProgressEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ProgressEvent, []),
-    new: dart.definiteFunctionType(html.ProgressEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.ProgressEvent, []),
+    new: dart.definiteFunctionType(html$.ProgressEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.lengthComputable]: core.bool,
@@ -84298,17 +84301,17 @@
     [dartx.total]: core.int
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ProgressEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ProgressEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ProgressEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ProgressEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.ProgressEvent, html.ProgressEvent);
+dart.registerExtension(dart.global.ProgressEvent, html$.ProgressEvent);
 dart.defineExtensionNames([
   'promise',
   'reason'
 ]);
-html.PromiseRejectionEvent = class PromiseRejectionEvent extends html.Event {
+html$.PromiseRejectionEvent = class PromiseRejectionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84316,9 +84319,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.PromiseRejectionEvent._create_1(type, eventInitDict_1);
+      return html$.PromiseRejectionEvent._create_1(type, eventInitDict_1);
     }
-    return html.PromiseRejectionEvent._create_2(type);
+    return html$.PromiseRejectionEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.PromiseRejectionEvent(type, eventInitDict);
@@ -84333,26 +84336,26 @@
     return this.reason;
   }
 };
-dart.setSignature(html.PromiseRejectionEvent, {
+dart.setSignature(html$.PromiseRejectionEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PromiseRejectionEvent, []),
-    new: dart.definiteFunctionType(html.PromiseRejectionEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.PromiseRejectionEvent, []),
+    new: dart.definiteFunctionType(html$.PromiseRejectionEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.promise]: async.Future,
     [dartx.reason]: core.Object
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.PromiseRejectionEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.PromiseRejectionEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.PromiseRejectionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PromiseRejectionEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.PromiseRejectionEvent, html.PromiseRejectionEvent);
+dart.registerExtension(dart.global.PromiseRejectionEvent, html$.PromiseRejectionEvent);
 dart.defineExtensionNames([
   'data'
 ]);
-html.PushEvent = class PushEvent extends html.ExtendableEvent {
+html$.PushEvent = class PushEvent extends html$.ExtendableEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84360,9 +84363,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.PushEvent._create_1(type, eventInitDict_1);
+      return html$.PushEvent._create_1(type, eventInitDict_1);
     }
-    return html.PushEvent._create_2(type);
+    return html$.PushEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.PushEvent(type, eventInitDict);
@@ -84374,19 +84377,19 @@
     return this.data;
   }
 };
-dart.setSignature(html.PushEvent, {
+dart.setSignature(html$.PushEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PushEvent, []),
-    new: dart.definiteFunctionType(html.PushEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.PushEvent, []),
+    new: dart.definiteFunctionType(html$.PushEvent, [core.String], [core.Map])
   }),
-  fields: () => ({[dartx.data]: html.PushMessageData}),
+  fields: () => ({[dartx.data]: html$.PushMessageData}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.PushEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.PushEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.PushEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.PushEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.PushEvent, html.PushEvent);
+dart.registerExtension(dart.global.PushEvent, html$.PushEvent);
 const _permissionState_1 = Symbol('_permissionState_1');
 const _permissionState_2 = Symbol('_permissionState_2');
 const _subscribe_1 = Symbol('_subscribe_1');
@@ -84396,7 +84399,7 @@
   'permissionState',
   'subscribe'
 ]);
-html.PushManager = class PushManager extends _interceptors.Interceptor {
+html$.PushManager = class PushManager extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84432,8 +84435,8 @@
     return this.subscribe.apply(this, args);
   }
 };
-dart.setSignature(html.PushManager, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PushManager, [])}),
+dart.setSignature(html$.PushManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PushManager, [])}),
   methods: () => ({
     [dartx.getSubscription]: dart.definiteFunctionType(async.Future, []),
     [dartx.permissionState]: dart.definiteFunctionType(async.Future, [], [core.Map]),
@@ -84444,19 +84447,19 @@
     [_subscribe_2]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.PushManager, html.PushManager);
+dart.registerExtension(dart.global.PushManager, html$.PushManager);
 dart.defineExtensionNames([
   'arrayBuffer',
   'blob',
   'json',
   'text'
 ]);
-html.PushMessageData = class PushMessageData extends _interceptors.Interceptor {
+html$.PushMessageData = class PushMessageData extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(message) {
-    return html.PushMessageData._create_1(message);
+    return html$.PushMessageData._create_1(message);
   }
   static _create_1(message) {
     return new self.PushMessageData(message);
@@ -84474,26 +84477,26 @@
     return this.text.apply(this, args);
   }
 };
-dart.setSignature(html.PushMessageData, {
+dart.setSignature(html$.PushMessageData, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.PushMessageData, []),
-    new: dart.definiteFunctionType(html.PushMessageData, [core.String])
+    _: dart.definiteFunctionType(html$.PushMessageData, []),
+    new: dart.definiteFunctionType(html$.PushMessageData, [core.String])
   }),
   methods: () => ({
     [dartx.arrayBuffer]: dart.definiteFunctionType(typed_data.ByteBuffer, []),
-    [dartx.blob]: dart.definiteFunctionType(html.Blob, []),
+    [dartx.blob]: dart.definiteFunctionType(html$.Blob, []),
     [dartx.json]: dart.definiteFunctionType(core.Object, []),
     [dartx.text]: dart.definiteFunctionType(core.String, [])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.PushMessageData, [dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.PushMessageData, [dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.PushMessageData, html.PushMessageData);
+dart.registerExtension(dart.global.PushMessageData, html$.PushMessageData);
 dart.defineExtensionNames([
   'unsubscribe',
   'endpoint'
 ]);
-html.PushSubscription = class PushSubscription extends _interceptors.Interceptor {
+html$.PushSubscription = class PushSubscription extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84504,21 +84507,21 @@
     return this.unsubscribe.apply(this, args);
   }
 };
-dart.setSignature(html.PushSubscription, {
-  constructors: () => ({_: dart.definiteFunctionType(html.PushSubscription, [])}),
+dart.setSignature(html$.PushSubscription, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.PushSubscription, [])}),
   fields: () => ({[dartx.endpoint]: core.String}),
   methods: () => ({[dartx.unsubscribe]: dart.definiteFunctionType(async.Future, [])})
 });
-dart.registerExtension(dart.global.PushSubscription, html.PushSubscription);
+dart.registerExtension(dart.global.PushSubscription, html$.PushSubscription);
 dart.defineExtensionNames([
   'cite'
 ]);
-html.QuoteElement = class QuoteElement extends html.HtmlElement {
+html$.QuoteElement = class QuoteElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.QuoteElement._check(html.document[dartx.createElement]("q"));
+    return html$.QuoteElement._check(html$.document[dartx.createElement]("q"));
   }
   created() {
     this[dartx.cite] = null;
@@ -84531,19 +84534,19 @@
     this.cite = value;
   }
 };
-dart.defineNamedConstructor(html.QuoteElement, 'created');
-dart.setSignature(html.QuoteElement, {
+dart.defineNamedConstructor(html$.QuoteElement, 'created');
+dart.setSignature(html$.QuoteElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.QuoteElement, []),
-    new: dart.definiteFunctionType(html.QuoteElement, []),
-    created: dart.definiteFunctionType(html.QuoteElement, [])
+    _: dart.definiteFunctionType(html$.QuoteElement, []),
+    new: dart.definiteFunctionType(html$.QuoteElement, []),
+    created: dart.definiteFunctionType(html$.QuoteElement, [])
   }),
   fields: () => ({[dartx.cite]: core.String})
 });
-dart.registerExtension(dart.global.HTMLQuoteElement, html.QuoteElement);
-html._RtcErrorCallback = dart.typedef('_RtcErrorCallback', () => dart.functionType(dart.void, [core.String]));
-html._RtcSessionDescriptionCallback = dart.typedef('_RtcSessionDescriptionCallback', () => dart.functionType(dart.void, [html.RtcSessionDescription]));
-html.RtcStatsCallback = dart.typedef('RtcStatsCallback', () => dart.functionType(dart.void, [html.RtcStatsResponse]));
+dart.registerExtension(dart.global.HTMLQuoteElement, html$.QuoteElement);
+html$._RtcErrorCallback = dart.typedef('_RtcErrorCallback', () => dart.functionType(dart.void, [core.String]));
+html$._RtcSessionDescriptionCallback = dart.typedef('_RtcSessionDescriptionCallback', () => dart.functionType(dart.void, [html$.RtcSessionDescription]));
+html$.RtcStatsCallback = dart.typedef('RtcStatsCallback', () => dart.functionType(dart.void, [html$.RtcStatsResponse]));
 dart.defineExtensionNames([
   'cloneContents',
   'cloneRange',
@@ -84575,12 +84578,12 @@
   'startContainer',
   'startOffset'
 ]);
-html.Range = class Range extends _interceptors.Interceptor {
+html$.Range = class Range extends _interceptors.Interceptor {
   static new() {
-    return html.document[dartx.createRange]();
+    return html$.document[dartx.createRange]();
   }
   static fromPoint(point) {
-    return html.document[_caretRangeFromPoint](dart.asInt(point.x), dart.asInt(point.y));
+    return html$.document[_caretRangeFromPoint](dart.asInt(point.x), dart.asInt(point.y));
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -84676,44 +84679,44 @@
     return "createContextualFragment" in window.Range.prototype;
   }
 };
-dart.setSignature(html.Range, {
+dart.setSignature(html$.Range, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.Range, []),
-    fromPoint: dart.definiteFunctionType(html.Range, [PointOfnum()]),
-    _: dart.definiteFunctionType(html.Range, [])
+    new: dart.definiteFunctionType(html$.Range, []),
+    fromPoint: dart.definiteFunctionType(html$.Range, [PointOfnum()]),
+    _: dart.definiteFunctionType(html$.Range, [])
   }),
   fields: () => ({
     [dartx.collapsed]: core.bool,
-    [dartx.commonAncestorContainer]: html.Node,
-    [dartx.endContainer]: html.Node,
+    [dartx.commonAncestorContainer]: html$.Node,
+    [dartx.endContainer]: html$.Node,
     [dartx.endOffset]: core.int,
-    [dartx.startContainer]: html.Node,
+    [dartx.startContainer]: html$.Node,
     [dartx.startOffset]: core.int
   }),
   methods: () => ({
-    [dartx.cloneContents]: dart.definiteFunctionType(html.DocumentFragment, []),
-    [dartx.cloneRange]: dart.definiteFunctionType(html.Range, []),
+    [dartx.cloneContents]: dart.definiteFunctionType(html$.DocumentFragment, []),
+    [dartx.cloneRange]: dart.definiteFunctionType(html$.Range, []),
     [dartx.collapse]: dart.definiteFunctionType(dart.void, [], [core.bool]),
-    [dartx.compareBoundaryPoints]: dart.definiteFunctionType(core.int, [core.int, html.Range]),
-    [dartx.comparePoint]: dart.definiteFunctionType(core.int, [html.Node, core.int]),
-    [dartx.createContextualFragment]: dart.definiteFunctionType(html.DocumentFragment, [core.String]),
+    [dartx.compareBoundaryPoints]: dart.definiteFunctionType(core.int, [core.int, html$.Range]),
+    [dartx.comparePoint]: dart.definiteFunctionType(core.int, [html$.Node, core.int]),
+    [dartx.createContextualFragment]: dart.definiteFunctionType(html$.DocumentFragment, [core.String]),
     [dartx.deleteContents]: dart.definiteFunctionType(dart.void, []),
     [dartx.detach]: dart.definiteFunctionType(dart.void, []),
     [dartx.expand]: dart.definiteFunctionType(dart.void, [core.String]),
-    [dartx.extractContents]: dart.definiteFunctionType(html.DocumentFragment, []),
+    [dartx.extractContents]: dart.definiteFunctionType(html$.DocumentFragment, []),
     [dartx.getBoundingClientRect]: dart.definiteFunctionType(math.Rectangle$(core.num), []),
     [dartx.getClientRects]: dart.definiteFunctionType(core.List$(math.Rectangle$(core.num)), []),
-    [dartx.insertNode]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.isPointInRange]: dart.definiteFunctionType(core.bool, [html.Node, core.int]),
-    [dartx.selectNode]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.selectNodeContents]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.setEnd]: dart.definiteFunctionType(dart.void, [html.Node, core.int]),
-    [dartx.setEndAfter]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.setEndBefore]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.setStart]: dart.definiteFunctionType(dart.void, [html.Node, core.int]),
-    [dartx.setStartAfter]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.setStartBefore]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.surroundContents]: dart.definiteFunctionType(dart.void, [html.Node])
+    [dartx.insertNode]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.isPointInRange]: dart.definiteFunctionType(core.bool, [html$.Node, core.int]),
+    [dartx.selectNode]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.selectNodeContents]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setEnd]: dart.definiteFunctionType(dart.void, [html$.Node, core.int]),
+    [dartx.setEndAfter]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setEndBefore]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setStart]: dart.definiteFunctionType(dart.void, [html$.Node, core.int]),
+    [dartx.setStartAfter]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setStartBefore]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.surroundContents]: dart.definiteFunctionType(dart.void, [html$.Node])
   }),
   sfields: () => ({
     END_TO_END: core.int,
@@ -84723,16 +84726,16 @@
   }),
   sgetters: () => ({supportsCreateContextualFragment: dart.definiteFunctionType(core.bool, [])})
 });
-html.Range.END_TO_END = 2;
-html.Range.END_TO_START = 3;
-html.Range.START_TO_END = 1;
-html.Range.START_TO_START = 0;
-dart.registerExtension(dart.global.Range, html.Range);
+html$.Range.END_TO_END = 2;
+html$.Range.END_TO_START = 3;
+html$.Range.START_TO_END = 1;
+html$.Range.START_TO_START = 0;
+dart.registerExtension(dart.global.Range, html$.Range);
 dart.defineExtensionNames([
   'cancel',
   'getReader'
 ]);
-html.ReadableByteStream = class ReadableByteStream extends _interceptors.Interceptor {
+html$.ReadableByteStream = class ReadableByteStream extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84743,21 +84746,21 @@
     return this.getReader.apply(this, args);
   }
 };
-dart.setSignature(html.ReadableByteStream, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ReadableByteStream, [])}),
+dart.setSignature(html$.ReadableByteStream, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableByteStream, [])}),
   methods: () => ({
     [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
-    [dartx.getReader]: dart.definiteFunctionType(html.ReadableByteStreamReader, [])
+    [dartx.getReader]: dart.definiteFunctionType(html$.ReadableByteStreamReader, [])
   })
 });
-dart.registerExtension(dart.global.ReadableByteStream, html.ReadableByteStream);
+dart.registerExtension(dart.global.ReadableByteStream, html$.ReadableByteStream);
 dart.defineExtensionNames([
   'cancel',
   'read',
   'releaseLock',
   'closed'
 ]);
-html.ReadableByteStreamReader = class ReadableByteStreamReader extends _interceptors.Interceptor {
+html$.ReadableByteStreamReader = class ReadableByteStreamReader extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84774,8 +84777,8 @@
     return this.releaseLock.apply(this, args);
   }
 };
-dart.setSignature(html.ReadableByteStreamReader, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ReadableByteStreamReader, [])}),
+dart.setSignature(html$.ReadableByteStreamReader, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableByteStreamReader, [])}),
   fields: () => ({[dartx.closed]: async.Future}),
   methods: () => ({
     [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
@@ -84783,12 +84786,12 @@
     [dartx.releaseLock]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.ReadableByteStreamReader, html.ReadableByteStreamReader);
+dart.registerExtension(dart.global.ReadableByteStreamReader, html$.ReadableByteStreamReader);
 dart.defineExtensionNames([
   'cancel',
   'getReader'
 ]);
-html.ReadableStream = class ReadableStream extends _interceptors.Interceptor {
+html$.ReadableStream = class ReadableStream extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84799,21 +84802,21 @@
     return this.getReader.apply(this, args);
   }
 };
-dart.setSignature(html.ReadableStream, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ReadableStream, [])}),
+dart.setSignature(html$.ReadableStream, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableStream, [])}),
   methods: () => ({
     [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
-    [dartx.getReader]: dart.definiteFunctionType(html.ReadableStreamReader, [])
+    [dartx.getReader]: dart.definiteFunctionType(html$.ReadableStreamReader, [])
   })
 });
-dart.registerExtension(dart.global.ReadableStream, html.ReadableStream);
+dart.registerExtension(dart.global.ReadableStream, html$.ReadableStream);
 dart.defineExtensionNames([
   'cancel',
   'read',
   'releaseLock',
   'closed'
 ]);
-html.ReadableStreamReader = class ReadableStreamReader extends _interceptors.Interceptor {
+html$.ReadableStreamReader = class ReadableStreamReader extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84830,8 +84833,8 @@
     return this.releaseLock.apply(this, args);
   }
 };
-dart.setSignature(html.ReadableStreamReader, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ReadableStreamReader, [])}),
+dart.setSignature(html$.ReadableStreamReader, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ReadableStreamReader, [])}),
   fields: () => ({[dartx.closed]: async.Future}),
   methods: () => ({
     [dartx.cancel]: dart.definiteFunctionType(async.Future, [], [core.Object]),
@@ -84839,11 +84842,11 @@
     [dartx.releaseLock]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.ReadableStreamReader, html.ReadableStreamReader);
+dart.registerExtension(dart.global.ReadableStreamReader, html$.ReadableStreamReader);
 dart.defineExtensionNames([
   'relatedTarget'
 ]);
-html.RelatedEvent = class RelatedEvent extends html.Event {
+html$.RelatedEvent = class RelatedEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84851,9 +84854,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.RelatedEvent._create_1(type, eventInitDict_1);
+      return html$.RelatedEvent._create_1(type, eventInitDict_1);
     }
-    return html.RelatedEvent._create_2(type);
+    return html$.RelatedEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.RelatedEvent(type, eventInitDict);
@@ -84862,31 +84865,31 @@
     return new self.RelatedEvent(type);
   }
   get [dartx.relatedTarget]() {
-    return html._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
+    return html$._convertNativeToDart_EventTarget(this[_get_relatedTarget]);
   }
   get [_get_relatedTarget]() {
     return this.relatedTarget;
   }
 };
-dart.setSignature(html.RelatedEvent, {
+dart.setSignature(html$.RelatedEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.RelatedEvent, []),
-    new: dart.definiteFunctionType(html.RelatedEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.RelatedEvent, []),
+    new: dart.definiteFunctionType(html$.RelatedEvent, [core.String], [core.Map])
   }),
   fields: () => ({[_get_relatedTarget]: dart.dynamic}),
-  getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html.EventTarget, [])}),
+  getters: () => ({[dartx.relatedTarget]: dart.definiteFunctionType(html$.EventTarget, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.RelatedEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.RelatedEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.RelatedEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.RelatedEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.RelatedEvent, html.RelatedEvent);
-html.RequestAnimationFrameCallback = dart.typedef('RequestAnimationFrameCallback', () => dart.functionType(dart.void, [core.num]));
+dart.registerExtension(dart.global.RelatedEvent, html$.RelatedEvent);
+html$.RequestAnimationFrameCallback = dart.typedef('RequestAnimationFrameCallback', () => dart.functionType(dart.void, [core.num]));
 dart.defineExtensionNames([
   'url'
 ]);
-html.ResourceProgressEvent = class ResourceProgressEvent extends html.ProgressEvent {
+html$.ResourceProgressEvent = class ResourceProgressEvent extends html$.ProgressEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84894,11 +84897,11 @@
     return this.url;
   }
 };
-dart.setSignature(html.ResourceProgressEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ResourceProgressEvent, [])}),
+dart.setSignature(html$.ResourceProgressEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ResourceProgressEvent, [])}),
   fields: () => ({[dartx.url]: core.String})
 });
-dart.registerExtension(dart.global.ResourceProgressEvent, html.ResourceProgressEvent);
+dart.registerExtension(dart.global.ResourceProgressEvent, html$.ResourceProgressEvent);
 dart.defineExtensionNames([
   'close',
   'send',
@@ -84922,7 +84925,7 @@
   'readyState',
   'reliable'
 ]);
-html.RtcDataChannel = class RtcDataChannel extends html.EventTarget {
+html$.RtcDataChannel = class RtcDataChannel extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -84981,20 +84984,20 @@
     return this.send.apply(this, args);
   }
   get [dartx.onClose]() {
-    return html.RtcDataChannel.closeEvent.forTarget(this);
+    return html$.RtcDataChannel.closeEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.RtcDataChannel.errorEvent.forTarget(this);
+    return html$.RtcDataChannel.errorEvent.forTarget(this);
   }
   get [dartx.onMessage]() {
-    return html.RtcDataChannel.messageEvent.forTarget(this);
+    return html$.RtcDataChannel.messageEvent.forTarget(this);
   }
   get [dartx.onOpen]() {
-    return html.RtcDataChannel.openEvent.forTarget(this);
+    return html$.RtcDataChannel.openEvent.forTarget(this);
   }
 };
-dart.setSignature(html.RtcDataChannel, {
-  constructors: () => ({_: dart.definiteFunctionType(html.RtcDataChannel, [])}),
+dart.setSignature(html$.RtcDataChannel, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcDataChannel, [])}),
   fields: () => ({
     [dartx.binaryType]: core.String,
     [dartx.bufferedAmount]: core.int,
@@ -85009,15 +85012,15 @@
     [dartx.reliable]: core.bool
   }),
   getters: () => ({
-    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), []),
-    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
     [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-    [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html.Blob]),
+    [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html$.Blob]),
     [dartx.sendByteBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
     [dartx.sendString]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.sendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData])
@@ -85029,7 +85032,7 @@
     openEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineLazy(html.RtcDataChannel, {
+dart.defineLazy(html$.RtcDataChannel, {
   get closeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('close'));
   },
@@ -85043,12 +85046,12 @@
     return dart.const(new (EventStreamProviderOfEvent())('open'));
   }
 });
-dart.registerExtension(dart.global.RTCDataChannel, html.RtcDataChannel);
-dart.registerExtension(dart.global.DataChannel, html.RtcDataChannel);
+dart.registerExtension(dart.global.RTCDataChannel, html$.RtcDataChannel);
+dart.registerExtension(dart.global.DataChannel, html$.RtcDataChannel);
 dart.defineExtensionNames([
   'channel'
 ]);
-html.RtcDataChannelEvent = class RtcDataChannelEvent extends html.Event {
+html$.RtcDataChannelEvent = class RtcDataChannelEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85056,11 +85059,11 @@
     return this.channel;
   }
 };
-dart.setSignature(html.RtcDataChannelEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.RtcDataChannelEvent, [])}),
-  fields: () => ({[dartx.channel]: html.RtcDataChannel})
+dart.setSignature(html$.RtcDataChannelEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcDataChannelEvent, [])}),
+  fields: () => ({[dartx.channel]: html$.RtcDataChannel})
 });
-dart.registerExtension(dart.global.RTCDataChannelEvent, html.RtcDataChannelEvent);
+dart.registerExtension(dart.global.RTCDataChannelEvent, html$.RtcDataChannelEvent);
 dart.defineExtensionNames([
   'insertDtmf',
   'onToneChange',
@@ -85070,7 +85073,7 @@
   'toneBuffer',
   'track'
 ]);
-html.RtcDtmfSender = class RtcDtmfSender extends html.EventTarget {
+html$.RtcDtmfSender = class RtcDtmfSender extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85093,38 +85096,38 @@
     return this.insertDTMF.apply(this, args);
   }
   get [dartx.onToneChange]() {
-    return html.RtcDtmfSender.toneChangeEvent.forTarget(this);
+    return html$.RtcDtmfSender.toneChangeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.RtcDtmfSender, {
-  constructors: () => ({_: dart.definiteFunctionType(html.RtcDtmfSender, [])}),
+dart.setSignature(html$.RtcDtmfSender, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcDtmfSender, [])}),
   fields: () => ({
     [dartx.canInsertDtmf]: core.bool,
     [dartx.duration]: core.int,
     [dartx.interToneGap]: core.int,
     [dartx.toneBuffer]: core.String,
-    [dartx.track]: html.MediaStreamTrack
+    [dartx.track]: html$.MediaStreamTrack
   }),
-  getters: () => ({[dartx.onToneChange]: dart.definiteFunctionType(async.Stream$(html.RtcDtmfToneChangeEvent), [])}),
+  getters: () => ({[dartx.onToneChange]: dart.definiteFunctionType(async.Stream$(html$.RtcDtmfToneChangeEvent), [])}),
   methods: () => ({[dartx.insertDtmf]: dart.definiteFunctionType(dart.void, [core.String], [core.int, core.int])}),
   sfields: () => ({toneChangeEvent: EventStreamProviderOfRtcDtmfToneChangeEvent()})
 });
-dart.defineLazy(html.RtcDtmfSender, {
+dart.defineLazy(html$.RtcDtmfSender, {
   get toneChangeEvent() {
     return dart.const(new (EventStreamProviderOfRtcDtmfToneChangeEvent())('tonechange'));
   }
 });
-dart.registerExtension(dart.global.RTCDTMFSender, html.RtcDtmfSender);
+dart.registerExtension(dart.global.RTCDTMFSender, html$.RtcDtmfSender);
 dart.defineExtensionNames([
   'tone'
 ]);
-html.RtcDtmfToneChangeEvent = class RtcDtmfToneChangeEvent extends html.Event {
+html$.RtcDtmfToneChangeEvent = class RtcDtmfToneChangeEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(type, eventInitDict) {
     let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-    return html.RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
+    return html$.RtcDtmfToneChangeEvent._create_1(type, eventInitDict_1);
   }
   static _create_1(type, eventInitDict) {
     return new RTCDTMFToneChangeEvent(type, eventInitDict);
@@ -85133,22 +85136,22 @@
     return this.tone;
   }
 };
-dart.setSignature(html.RtcDtmfToneChangeEvent, {
+dart.setSignature(html$.RtcDtmfToneChangeEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.RtcDtmfToneChangeEvent, []),
-    new: dart.definiteFunctionType(html.RtcDtmfToneChangeEvent, [core.String, core.Map])
+    _: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, []),
+    new: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, [core.String, core.Map])
   }),
   fields: () => ({[dartx.tone]: core.String}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.RtcDtmfToneChangeEvent, [dart.dynamic, dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.RtcDtmfToneChangeEvent, [dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.RTCDTMFToneChangeEvent, html.RtcDtmfToneChangeEvent);
+dart.registerExtension(dart.global.RTCDTMFToneChangeEvent, html$.RtcDtmfToneChangeEvent);
 dart.defineExtensionNames([
   'candidate',
   'sdpMLineIndex',
   'sdpMid'
 ]);
-html.RtcIceCandidate = class RtcIceCandidate extends _interceptors.Interceptor {
+html$.RtcIceCandidate = class RtcIceCandidate extends _interceptors.Interceptor {
   static new(dictionary) {
     let constructorName = window[dart.test(html_common.Device.isFirefox) ? dart.str`${html_common.Device.propertyPrefix}RTCIceCandidate` : 'RTCIceCandidate'];
     return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
@@ -85175,10 +85178,10 @@
     this.sdpMid = value;
   }
 };
-dart.setSignature(html.RtcIceCandidate, {
+dart.setSignature(html$.RtcIceCandidate, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.RtcIceCandidate, [core.Map]),
-    _: dart.definiteFunctionType(html.RtcIceCandidate, [])
+    new: dart.definiteFunctionType(html$.RtcIceCandidate, [core.Map]),
+    _: dart.definiteFunctionType(html$.RtcIceCandidate, [])
   }),
   fields: () => ({
     [dartx.candidate]: core.String,
@@ -85186,12 +85189,12 @@
     [dartx.sdpMid]: core.String
   })
 });
-dart.registerExtension(dart.global.RTCIceCandidate, html.RtcIceCandidate);
-dart.registerExtension(dart.global.mozRTCIceCandidate, html.RtcIceCandidate);
+dart.registerExtension(dart.global.RTCIceCandidate, html$.RtcIceCandidate);
+dart.registerExtension(dart.global.mozRTCIceCandidate, html$.RtcIceCandidate);
 dart.defineExtensionNames([
   'candidate'
 ]);
-html.RtcIceCandidateEvent = class RtcIceCandidateEvent extends html.Event {
+html$.RtcIceCandidateEvent = class RtcIceCandidateEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85199,12 +85202,12 @@
     return this.candidate;
   }
 };
-dart.setSignature(html.RtcIceCandidateEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.RtcIceCandidateEvent, [])}),
-  fields: () => ({[dartx.candidate]: html.RtcIceCandidate})
+dart.setSignature(html$.RtcIceCandidateEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcIceCandidateEvent, [])}),
+  fields: () => ({[dartx.candidate]: html$.RtcIceCandidate})
 });
-dart.registerExtension(dart.global.RTCIceCandidateEvent, html.RtcIceCandidateEvent);
-dart.registerExtension(dart.global.RTCPeerConnectionIceEvent, html.RtcIceCandidateEvent);
+dart.registerExtension(dart.global.RTCIceCandidateEvent, html$.RtcIceCandidateEvent);
+dart.registerExtension(dart.global.RTCPeerConnectionIceEvent, html$.RtcIceCandidateEvent);
 const _createOffer = Symbol('_createOffer');
 const _createAnswer = Symbol('_createAnswer');
 const _getStats = Symbol('_getStats');
@@ -85250,7 +85253,7 @@
   'remoteDescription',
   'signalingState'
 ]);
-html.RtcPeerConnection = class RtcPeerConnection extends html.EventTarget {
+html$.RtcPeerConnection = class RtcPeerConnection extends html$.EventTarget {
   static new(rtcIceServers, mediaConstraints) {
     if (mediaConstraints === void 0) mediaConstraints = null;
     let constructorName = window[dart.str`${html_common.Device.propertyPrefix}RTCPeerConnection`];
@@ -85262,7 +85265,7 @@
   }
   static get supported() {
     try {
-      html.RtcPeerConnection.new(dart.map({iceServers: JSArrayOfMapOfString$String().of([dart.map({url: "stun:localhost"}, core.String, core.String)])}, core.String, ListOfMapOfString$String()));
+      html$.RtcPeerConnection.new(dart.map({iceServers: JSArrayOfMapOfString$String().of([dart.map({url: "stun:localhost"}, core.String, core.String)])}, core.String, ListOfMapOfString$String()));
       return true;
     } catch (_) {
       return false;
@@ -85454,76 +85457,76 @@
     return this.updateIce.apply(this, args);
   }
   get [dartx.onAddStream]() {
-    return html.RtcPeerConnection.addStreamEvent.forTarget(this);
+    return html$.RtcPeerConnection.addStreamEvent.forTarget(this);
   }
   get [dartx.onDataChannel]() {
-    return html.RtcPeerConnection.dataChannelEvent.forTarget(this);
+    return html$.RtcPeerConnection.dataChannelEvent.forTarget(this);
   }
   get [dartx.onIceCandidate]() {
-    return html.RtcPeerConnection.iceCandidateEvent.forTarget(this);
+    return html$.RtcPeerConnection.iceCandidateEvent.forTarget(this);
   }
   get [dartx.onIceConnectionStateChange]() {
-    return html.RtcPeerConnection.iceConnectionStateChangeEvent.forTarget(this);
+    return html$.RtcPeerConnection.iceConnectionStateChangeEvent.forTarget(this);
   }
   get [dartx.onNegotiationNeeded]() {
-    return html.RtcPeerConnection.negotiationNeededEvent.forTarget(this);
+    return html$.RtcPeerConnection.negotiationNeededEvent.forTarget(this);
   }
   get [dartx.onRemoveStream]() {
-    return html.RtcPeerConnection.removeStreamEvent.forTarget(this);
+    return html$.RtcPeerConnection.removeStreamEvent.forTarget(this);
   }
   get [dartx.onSignalingStateChange]() {
-    return html.RtcPeerConnection.signalingStateChangeEvent.forTarget(this);
+    return html$.RtcPeerConnection.signalingStateChangeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.RtcPeerConnection, {
+dart.setSignature(html$.RtcPeerConnection, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.RtcPeerConnection, [core.Map], [core.Map]),
-    _: dart.definiteFunctionType(html.RtcPeerConnection, [])
+    new: dart.definiteFunctionType(html$.RtcPeerConnection, [core.Map], [core.Map]),
+    _: dart.definiteFunctionType(html$.RtcPeerConnection, [])
   }),
   fields: () => ({
     [dartx.iceConnectionState]: core.String,
     [dartx.iceGatheringState]: core.String,
-    [dartx.localDescription]: html.RtcSessionDescription,
-    [dartx.remoteDescription]: html.RtcSessionDescription,
+    [dartx.localDescription]: html$.RtcSessionDescription,
+    [dartx.remoteDescription]: html$.RtcSessionDescription,
     [dartx.signalingState]: core.String
   }),
   getters: () => ({
-    [dartx.onAddStream]: dart.definiteFunctionType(async.Stream$(html.MediaStreamEvent), []),
-    [dartx.onDataChannel]: dart.definiteFunctionType(async.Stream$(html.RtcDataChannelEvent), []),
-    [dartx.onIceCandidate]: dart.definiteFunctionType(async.Stream$(html.RtcIceCandidateEvent), []),
-    [dartx.onIceConnectionStateChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onNegotiationNeeded]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onRemoveStream]: dart.definiteFunctionType(async.Stream$(html.MediaStreamEvent), []),
-    [dartx.onSignalingStateChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onAddStream]: dart.definiteFunctionType(async.Stream$(html$.MediaStreamEvent), []),
+    [dartx.onDataChannel]: dart.definiteFunctionType(async.Stream$(html$.RtcDataChannelEvent), []),
+    [dartx.onIceCandidate]: dart.definiteFunctionType(async.Stream$(html$.RtcIceCandidateEvent), []),
+    [dartx.onIceConnectionStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onNegotiationNeeded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRemoveStream]: dart.definiteFunctionType(async.Stream$(html$.MediaStreamEvent), []),
+    [dartx.onSignalingStateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
-    [dartx.createOffer]: dart.definiteFunctionType(async.Future$(html.RtcSessionDescription), [], [core.Map]),
-    [dartx.createAnswer]: dart.definiteFunctionType(async.Future$(html.RtcSessionDescription), [], [core.Map]),
-    [dartx.getStats]: dart.definiteFunctionType(async.Future$(html.RtcStatsResponse), [html.MediaStreamTrack]),
-    [dartx.addIceCandidate]: dart.definiteFunctionType(dart.void, [html.RtcIceCandidate, html.VoidCallback, html._RtcErrorCallback]),
-    [dartx.addStream]: dart.definiteFunctionType(dart.void, [html.MediaStream], [core.Map]),
-    [_addStream_1]: dart.definiteFunctionType(dart.void, [html.MediaStream, dart.dynamic]),
-    [_addStream_2]: dart.definiteFunctionType(dart.void, [html.MediaStream]),
+    [dartx.createOffer]: dart.definiteFunctionType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
+    [dartx.createAnswer]: dart.definiteFunctionType(async.Future$(html$.RtcSessionDescription), [], [core.Map]),
+    [dartx.getStats]: dart.definiteFunctionType(async.Future$(html$.RtcStatsResponse), [html$.MediaStreamTrack]),
+    [dartx.addIceCandidate]: dart.definiteFunctionType(dart.void, [html$.RtcIceCandidate, html$.VoidCallback, html$._RtcErrorCallback]),
+    [dartx.addStream]: dart.definiteFunctionType(dart.void, [html$.MediaStream], [core.Map]),
+    [_addStream_1]: dart.definiteFunctionType(dart.void, [html$.MediaStream, dart.dynamic]),
+    [_addStream_2]: dart.definiteFunctionType(dart.void, [html$.MediaStream]),
     [dartx.close]: dart.definiteFunctionType(dart.void, []),
-    [_createAnswer]: dart.definiteFunctionType(dart.void, [html._RtcSessionDescriptionCallback], [html._RtcErrorCallback, core.Map]),
-    [_createAnswer_1]: dart.definiteFunctionType(dart.void, [html._RtcSessionDescriptionCallback, html._RtcErrorCallback, dart.dynamic]),
-    [_createAnswer_2]: dart.definiteFunctionType(dart.void, [html._RtcSessionDescriptionCallback, html._RtcErrorCallback]),
-    [dartx.createDtmfSender]: dart.definiteFunctionType(html.RtcDtmfSender, [html.MediaStreamTrack]),
-    [dartx.createDataChannel]: dart.definiteFunctionType(html.RtcDataChannel, [core.String], [core.Map]),
-    [_createDataChannel_1]: dart.definiteFunctionType(html.RtcDataChannel, [dart.dynamic, dart.dynamic]),
-    [_createDataChannel_2]: dart.definiteFunctionType(html.RtcDataChannel, [dart.dynamic]),
-    [_createOffer]: dart.definiteFunctionType(dart.void, [html._RtcSessionDescriptionCallback], [html._RtcErrorCallback, core.Map]),
-    [_createOffer_1]: dart.definiteFunctionType(dart.void, [html._RtcSessionDescriptionCallback, html._RtcErrorCallback, dart.dynamic]),
-    [_createOffer_2]: dart.definiteFunctionType(dart.void, [html._RtcSessionDescriptionCallback, html._RtcErrorCallback]),
-    [dartx.getLocalStreams]: dart.definiteFunctionType(core.List$(html.MediaStream), []),
-    [dartx.getRemoteStreams]: dart.definiteFunctionType(core.List$(html.MediaStream), []),
-    [_getStats]: dart.definiteFunctionType(dart.void, [html.RtcStatsCallback, html.MediaStreamTrack]),
-    [dartx.getStreamById]: dart.definiteFunctionType(html.MediaStream, [core.String]),
-    [dartx.removeStream]: dart.definiteFunctionType(dart.void, [html.MediaStream]),
-    [_setLocalDescription]: dart.definiteFunctionType(dart.void, [html.RtcSessionDescription], [html.VoidCallback, html._RtcErrorCallback]),
-    [dartx.setLocalDescription]: dart.definiteFunctionType(async.Future, [html.RtcSessionDescription]),
-    [_setRemoteDescription]: dart.definiteFunctionType(dart.void, [html.RtcSessionDescription], [html.VoidCallback, html._RtcErrorCallback]),
-    [dartx.setRemoteDescription]: dart.definiteFunctionType(async.Future, [html.RtcSessionDescription]),
+    [_createAnswer]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback], [html$._RtcErrorCallback, core.Map]),
+    [_createAnswer_1]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback, dart.dynamic]),
+    [_createAnswer_2]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback]),
+    [dartx.createDtmfSender]: dart.definiteFunctionType(html$.RtcDtmfSender, [html$.MediaStreamTrack]),
+    [dartx.createDataChannel]: dart.definiteFunctionType(html$.RtcDataChannel, [core.String], [core.Map]),
+    [_createDataChannel_1]: dart.definiteFunctionType(html$.RtcDataChannel, [dart.dynamic, dart.dynamic]),
+    [_createDataChannel_2]: dart.definiteFunctionType(html$.RtcDataChannel, [dart.dynamic]),
+    [_createOffer]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback], [html$._RtcErrorCallback, core.Map]),
+    [_createOffer_1]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback, dart.dynamic]),
+    [_createOffer_2]: dart.definiteFunctionType(dart.void, [html$._RtcSessionDescriptionCallback, html$._RtcErrorCallback]),
+    [dartx.getLocalStreams]: dart.definiteFunctionType(core.List$(html$.MediaStream), []),
+    [dartx.getRemoteStreams]: dart.definiteFunctionType(core.List$(html$.MediaStream), []),
+    [_getStats]: dart.definiteFunctionType(dart.void, [html$.RtcStatsCallback, html$.MediaStreamTrack]),
+    [dartx.getStreamById]: dart.definiteFunctionType(html$.MediaStream, [core.String]),
+    [dartx.removeStream]: dart.definiteFunctionType(dart.void, [html$.MediaStream]),
+    [_setLocalDescription]: dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription], [html$.VoidCallback, html$._RtcErrorCallback]),
+    [dartx.setLocalDescription]: dart.definiteFunctionType(async.Future, [html$.RtcSessionDescription]),
+    [_setRemoteDescription]: dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription], [html$.VoidCallback, html$._RtcErrorCallback]),
+    [dartx.setRemoteDescription]: dart.definiteFunctionType(async.Future, [html$.RtcSessionDescription]),
     [dartx.updateIce]: dart.definiteFunctionType(dart.void, [], [core.Map, core.Map]),
     [_updateIce_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
     [_updateIce_2]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
@@ -85540,7 +85543,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineLazy(html.RtcPeerConnection, {
+dart.defineLazy(html$.RtcPeerConnection, {
   get addStreamEvent() {
     return dart.const(new (EventStreamProviderOfMediaStreamEvent())('addstream'));
   },
@@ -85563,13 +85566,13 @@
     return dart.const(new (EventStreamProviderOfEvent())('signalingstatechange'));
   }
 });
-dart.registerExtension(dart.global.RTCPeerConnection, html.RtcPeerConnection);
-dart.registerExtension(dart.global.mozRTCPeerConnection, html.RtcPeerConnection);
+dart.registerExtension(dart.global.RTCPeerConnection, html$.RtcPeerConnection);
+dart.registerExtension(dart.global.mozRTCPeerConnection, html$.RtcPeerConnection);
 dart.defineExtensionNames([
   'sdp',
   'type'
 ]);
-html.RtcSessionDescription = class RtcSessionDescription extends _interceptors.Interceptor {
+html$.RtcSessionDescription = class RtcSessionDescription extends _interceptors.Interceptor {
   static new(dictionary) {
     let constructorName = window[dart.test(html_common.Device.isFirefox) ? dart.str`${html_common.Device.propertyPrefix}RTCSessionDescription` : 'RTCSessionDescription'];
     return new constructorName(html_common.convertDartToNative_SerializedScriptValue(dictionary));
@@ -85590,18 +85593,18 @@
     this.type = value;
   }
 };
-dart.setSignature(html.RtcSessionDescription, {
+dart.setSignature(html$.RtcSessionDescription, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.RtcSessionDescription, [core.Map]),
-    _: dart.definiteFunctionType(html.RtcSessionDescription, [])
+    new: dart.definiteFunctionType(html$.RtcSessionDescription, [core.Map]),
+    _: dart.definiteFunctionType(html$.RtcSessionDescription, [])
   }),
   fields: () => ({
     [dartx.sdp]: core.String,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.RTCSessionDescription, html.RtcSessionDescription);
-dart.registerExtension(dart.global.mozRTCSessionDescription, html.RtcSessionDescription);
+dart.registerExtension(dart.global.RTCSessionDescription, html$.RtcSessionDescription);
+dart.registerExtension(dart.global.mozRTCSessionDescription, html$.RtcSessionDescription);
 const _get_timestamp = Symbol('_get_timestamp');
 dart.defineExtensionNames([
   'timestamp',
@@ -85610,7 +85613,7 @@
   'id',
   'type'
 ]);
-html.RtcStatsReport = class RtcStatsReport extends _interceptors.Interceptor {
+html$.RtcStatsReport = class RtcStatsReport extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85633,8 +85636,8 @@
     return this.stat.apply(this, args);
   }
 };
-dart.setSignature(html.RtcStatsReport, {
-  constructors: () => ({_: dart.definiteFunctionType(html.RtcStatsReport, [])}),
+dart.setSignature(html$.RtcStatsReport, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcStatsReport, [])}),
   fields: () => ({
     [dartx.id]: core.String,
     [_get_timestamp]: dart.dynamic,
@@ -85646,12 +85649,12 @@
     [dartx.stat]: dart.definiteFunctionType(core.String, [core.String])
   })
 });
-dart.registerExtension(dart.global.RTCStatsReport, html.RtcStatsReport);
+dart.registerExtension(dart.global.RTCStatsReport, html$.RtcStatsReport);
 dart.defineExtensionNames([
   'namedItem',
   'result'
 ]);
-html.RtcStatsResponse = class RtcStatsResponse extends _interceptors.Interceptor {
+html$.RtcStatsResponse = class RtcStatsResponse extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85662,14 +85665,14 @@
     return this.result.apply(this, args);
   }
 };
-dart.setSignature(html.RtcStatsResponse, {
-  constructors: () => ({_: dart.definiteFunctionType(html.RtcStatsResponse, [])}),
+dart.setSignature(html$.RtcStatsResponse, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.RtcStatsResponse, [])}),
   methods: () => ({
-    [dartx.namedItem]: dart.definiteFunctionType(html.RtcStatsReport, [core.String]),
-    [dartx.result]: dart.definiteFunctionType(core.List$(html.RtcStatsReport), [])
+    [dartx.namedItem]: dart.definiteFunctionType(html$.RtcStatsReport, [core.String]),
+    [dartx.result]: dart.definiteFunctionType(core.List$(html$.RtcStatsReport), [])
   })
 });
-dart.registerExtension(dart.global.RTCStatsResponse, html.RtcStatsResponse);
+dart.registerExtension(dart.global.RTCStatsResponse, html$.RtcStatsResponse);
 const _availLeft = Symbol('_availLeft');
 const _availTop = Symbol('_availTop');
 const _availWidth = Symbol('_availWidth');
@@ -85682,7 +85685,7 @@
   'pixelDepth',
   'width'
 ]);
-html.Screen = class Screen extends _interceptors.Interceptor {
+html$.Screen = class Screen extends _interceptors.Interceptor {
   get [dartx.available]() {
     return new (RectangleOfint())(this[_availLeft], this[_availTop], this[_availWidth], this[_availHeight]);
   }
@@ -85717,8 +85720,8 @@
     return this.width;
   }
 };
-dart.setSignature(html.Screen, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Screen, [])}),
+dart.setSignature(html$.Screen, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Screen, [])}),
   fields: () => ({
     [_availHeight]: core.int,
     [_availLeft]: core.int,
@@ -85726,13 +85729,13 @@
     [_availWidth]: core.int,
     [dartx.colorDepth]: core.int,
     [dartx.height]: core.int,
-    [dartx.orientation]: html.ScreenOrientation,
+    [dartx.orientation]: html$.ScreenOrientation,
     [dartx.pixelDepth]: core.int,
     [dartx.width]: core.int
   }),
   getters: () => ({[dartx.available]: dart.definiteFunctionType(math.Rectangle$(core.num), [])})
 });
-dart.registerExtension(dart.global.Screen, html.Screen);
+dart.registerExtension(dart.global.Screen, html$.Screen);
 dart.defineExtensionNames([
   'lock',
   'unlock',
@@ -85740,7 +85743,7 @@
   'angle',
   'type'
 ]);
-html.ScreenOrientation = class ScreenOrientation extends html.EventTarget {
+html$.ScreenOrientation = class ScreenOrientation extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85757,28 +85760,28 @@
     return this.unlock.apply(this, args);
   }
   get [dartx.onChange]() {
-    return html.ScreenOrientation.changeEvent.forTarget(this);
+    return html$.ScreenOrientation.changeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.ScreenOrientation, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ScreenOrientation, [])}),
+dart.setSignature(html$.ScreenOrientation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ScreenOrientation, [])}),
   fields: () => ({
     [dartx.angle]: core.int,
     [dartx.type]: core.String
   }),
-  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
     [dartx.lock]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.unlock]: dart.definiteFunctionType(dart.void, [])
   }),
   sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.ScreenOrientation, {
+dart.defineLazy(html$.ScreenOrientation, {
   get changeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.ScreenOrientation, html.ScreenOrientation);
+dart.registerExtension(dart.global.ScreenOrientation, html$.ScreenOrientation);
 dart.defineExtensionNames([
   'async',
   'charset',
@@ -85789,12 +85792,12 @@
   'src',
   'type'
 ]);
-html.ScriptElement = class ScriptElement extends html.HtmlElement {
+html$.ScriptElement = class ScriptElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ScriptElement._check(html.document[dartx.createElement]("script"));
+    return html$.ScriptElement._check(html$.document[dartx.createElement]("script"));
   }
   created() {
     this[dartx.async] = null;
@@ -85856,12 +85859,12 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(html.ScriptElement, 'created');
-dart.setSignature(html.ScriptElement, {
+dart.defineNamedConstructor(html$.ScriptElement, 'created');
+dart.setSignature(html$.ScriptElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ScriptElement, []),
-    new: dart.definiteFunctionType(html.ScriptElement, []),
-    created: dart.definiteFunctionType(html.ScriptElement, [])
+    _: dart.definiteFunctionType(html$.ScriptElement, []),
+    new: dart.definiteFunctionType(html$.ScriptElement, []),
+    created: dart.definiteFunctionType(html$.ScriptElement, [])
   }),
   fields: () => ({
     [dartx.async]: core.bool,
@@ -85874,7 +85877,7 @@
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLScriptElement, html.ScriptElement);
+dart.registerExtension(dart.global.HTMLScriptElement, html$.ScriptElement);
 dart.defineExtensionNames([
   'consumeDelta',
   'deltaGranularity',
@@ -85888,7 +85891,7 @@
   'velocityX',
   'velocityY'
 ]);
-html.ScrollState = class ScrollState extends _interceptors.Interceptor {
+html$.ScrollState = class ScrollState extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -85902,30 +85905,30 @@
     if (isBeginning === void 0) isBeginning = null;
     if (isEnding === void 0) isEnding = null;
     if (isEnding != null) {
-      return html.ScrollState._create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
+      return html$.ScrollState._create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
     }
     if (isBeginning != null) {
-      return html.ScrollState._create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
+      return html$.ScrollState._create_2(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning);
     }
     if (inInertialPhase != null) {
-      return html.ScrollState._create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
+      return html$.ScrollState._create_3(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase);
     }
     if (velocityY != null) {
-      return html.ScrollState._create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
+      return html$.ScrollState._create_4(deltaX, deltaY, deltaGranularity, velocityX, velocityY);
     }
     if (velocityX != null) {
-      return html.ScrollState._create_5(deltaX, deltaY, deltaGranularity, velocityX);
+      return html$.ScrollState._create_5(deltaX, deltaY, deltaGranularity, velocityX);
     }
     if (deltaGranularity != null) {
-      return html.ScrollState._create_6(deltaX, deltaY, deltaGranularity);
+      return html$.ScrollState._create_6(deltaX, deltaY, deltaGranularity);
     }
     if (deltaY != null) {
-      return html.ScrollState._create_7(deltaX, deltaY);
+      return html$.ScrollState._create_7(deltaX, deltaY);
     }
     if (deltaX != null) {
-      return html.ScrollState._create_8(deltaX);
+      return html$.ScrollState._create_8(deltaX);
     }
-    return html.ScrollState._create_9();
+    return html$.ScrollState._create_9();
   }
   static _create_1(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding) {
     return new self.ScrollState(deltaX, deltaY, deltaGranularity, velocityX, velocityY, inInertialPhase, isBeginning, isEnding);
@@ -85988,10 +85991,10 @@
     return this.consumeDelta.apply(this, args);
   }
 };
-dart.setSignature(html.ScrollState, {
+dart.setSignature(html$.ScrollState, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ScrollState, []),
-    new: dart.definiteFunctionType(html.ScrollState, [], [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool, core.bool])
+    _: dart.definiteFunctionType(html$.ScrollState, []),
+    new: dart.definiteFunctionType(html$.ScrollState, [], [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool, core.bool])
   }),
   fields: () => ({
     [dartx.deltaGranularity]: core.double,
@@ -86007,19 +86010,19 @@
   }),
   methods: () => ({[dartx.consumeDelta]: dart.definiteFunctionType(dart.void, [core.num, core.num])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_4: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_5: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_6: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_7: dart.definiteFunctionType(html.ScrollState, [dart.dynamic, dart.dynamic]),
-    _create_8: dart.definiteFunctionType(html.ScrollState, [dart.dynamic]),
-    _create_9: dart.definiteFunctionType(html.ScrollState, [])
+    _create_1: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_6: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_7: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic, dart.dynamic]),
+    _create_8: dart.definiteFunctionType(html$.ScrollState, [dart.dynamic]),
+    _create_9: dart.definiteFunctionType(html$.ScrollState, [])
   }),
   names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5', '_create_6', '_create_7', '_create_8', '_create_9']
 });
-dart.registerExtension(dart.global.ScrollState, html.ScrollState);
+dart.registerExtension(dart.global.ScrollState, html$.ScrollState);
 dart.defineExtensionNames([
   'blockedUri',
   'columnNumber',
@@ -86032,7 +86035,7 @@
   'statusCode',
   'violatedDirective'
 ]);
-html.SecurityPolicyViolationEvent = class SecurityPolicyViolationEvent extends html.Event {
+html$.SecurityPolicyViolationEvent = class SecurityPolicyViolationEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86040,9 +86043,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
+      return html$.SecurityPolicyViolationEvent._create_1(type, eventInitDict_1);
     }
-    return html.SecurityPolicyViolationEvent._create_2(type);
+    return html$.SecurityPolicyViolationEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.SecurityPolicyViolationEvent(type, eventInitDict);
@@ -86081,10 +86084,10 @@
     return this.violatedDirective;
   }
 };
-dart.setSignature(html.SecurityPolicyViolationEvent, {
+dart.setSignature(html$.SecurityPolicyViolationEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SecurityPolicyViolationEvent, []),
-    new: dart.definiteFunctionType(html.SecurityPolicyViolationEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, []),
+    new: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.blockedUri]: core.String,
@@ -86099,12 +86102,12 @@
     [dartx.violatedDirective]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.SecurityPolicyViolationEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.SecurityPolicyViolationEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SecurityPolicyViolationEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.SecurityPolicyViolationEvent, html.SecurityPolicyViolationEvent);
+dart.registerExtension(dart.global.SecurityPolicyViolationEvent, html$.SecurityPolicyViolationEvent);
 dart.defineExtensionNames([
   'add',
   'checkValidity',
@@ -86130,12 +86133,12 @@
   'value',
   'willValidate'
 ]);
-html.SelectElement = class SelectElement extends html.HtmlElement {
+html$.SelectElement = class SelectElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.SelectElement._check(html.document[dartx.createElement]("select"));
+    return html$.SelectElement._check(html$.document[dartx.createElement]("select"));
   }
   created() {
     this[dartx.autofocus] = null;
@@ -86249,7 +86252,7 @@
     return this.setCustomValidity.apply(this, args);
   }
   get [dartx.options]() {
-    let options = ListOfOptionElement().from(this[dartx.querySelectorAll](html.Element)('option'));
+    let options = ListOfOptionElement().from(this[dartx.querySelectorAll](html$.Element)('option'));
     return new (UnmodifiableListViewOfOptionElement())(options);
   }
   get [dartx.selectedOptions]() {
@@ -86261,17 +86264,17 @@
     }
   }
 };
-dart.defineNamedConstructor(html.SelectElement, 'created');
-dart.setSignature(html.SelectElement, {
+dart.defineNamedConstructor(html$.SelectElement, 'created');
+dart.setSignature(html$.SelectElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SelectElement, []),
-    new: dart.definiteFunctionType(html.SelectElement, []),
-    created: dart.definiteFunctionType(html.SelectElement, [])
+    _: dart.definiteFunctionType(html$.SelectElement, []),
+    new: dart.definiteFunctionType(html$.SelectElement, []),
+    created: dart.definiteFunctionType(html$.SelectElement, [])
   }),
   fields: () => ({
     [dartx.autofocus]: core.bool,
     [dartx.disabled]: core.bool,
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.labels]: ListOfNode(),
     [dartx.length]: core.int,
     [dartx.multiple]: core.bool,
@@ -86281,25 +86284,25 @@
     [dartx.size]: core.int,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.value]: core.String,
     [dartx.willValidate]: core.bool
   }),
   getters: () => ({
-    [dartx.options]: dart.definiteFunctionType(core.List$(html.OptionElement), []),
-    [dartx.selectedOptions]: dart.definiteFunctionType(core.List$(html.OptionElement), [])
+    [dartx.options]: dart.definiteFunctionType(core.List$(html$.OptionElement), []),
+    [dartx.selectedOptions]: dart.definiteFunctionType(core.List$(html$.OptionElement), [])
   }),
   methods: () => ({
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, html.OptionElement]),
+    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, html$.OptionElement]),
     [dartx.add]: dart.definiteFunctionType(dart.void, [core.Object, core.Object]),
     [dartx.checkValidity]: dart.definiteFunctionType(core.bool, []),
-    [dartx.item]: dart.definiteFunctionType(html.Element, [core.int]),
-    [dartx.namedItem]: dart.definiteFunctionType(html.OptionElement, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.Element, [core.int]),
+    [dartx.namedItem]: dart.definiteFunctionType(html$.OptionElement, [core.String]),
     [dartx.reportValidity]: dart.definiteFunctionType(core.bool, []),
     [dartx.setCustomValidity]: dart.definiteFunctionType(dart.void, [core.String])
   })
 });
-dart.registerExtension(dart.global.HTMLSelectElement, html.SelectElement);
+dart.registerExtension(dart.global.HTMLSelectElement, html$.SelectElement);
 dart.defineExtensionNames([
   'addRange',
   'collapse',
@@ -86327,7 +86330,7 @@
   'rangeCount',
   'type'
 ]);
-html.Selection = class Selection extends _interceptors.Interceptor {
+html$.Selection = class Selection extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86407,39 +86410,39 @@
     return this.setPosition.apply(this, args);
   }
 };
-dart.setSignature(html.Selection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Selection, [])}),
+dart.setSignature(html$.Selection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Selection, [])}),
   fields: () => ({
-    [dartx.anchorNode]: html.Node,
+    [dartx.anchorNode]: html$.Node,
     [dartx.anchorOffset]: core.int,
-    [dartx.baseNode]: html.Node,
+    [dartx.baseNode]: html$.Node,
     [dartx.baseOffset]: core.int,
-    [dartx.extentNode]: html.Node,
+    [dartx.extentNode]: html$.Node,
     [dartx.extentOffset]: core.int,
-    [dartx.focusNode]: html.Node,
+    [dartx.focusNode]: html$.Node,
     [dartx.focusOffset]: core.int,
     [dartx.isCollapsed]: core.bool,
     [dartx.rangeCount]: core.int,
     [dartx.type]: core.String
   }),
   methods: () => ({
-    [dartx.addRange]: dart.definiteFunctionType(dart.void, [html.Range]),
-    [dartx.collapse]: dart.definiteFunctionType(dart.void, [html.Node], [core.int]),
+    [dartx.addRange]: dart.definiteFunctionType(dart.void, [html$.Range]),
+    [dartx.collapse]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int]),
     [dartx.collapseToEnd]: dart.definiteFunctionType(dart.void, []),
     [dartx.collapseToStart]: dart.definiteFunctionType(dart.void, []),
-    [dartx.containsNode]: dart.definiteFunctionType(core.bool, [html.Node, core.bool]),
+    [dartx.containsNode]: dart.definiteFunctionType(core.bool, [html$.Node, core.bool]),
     [dartx.deleteFromDocument]: dart.definiteFunctionType(dart.void, []),
     [dartx.empty]: dart.definiteFunctionType(dart.void, []),
-    [dartx.extend]: dart.definiteFunctionType(dart.void, [html.Node], [core.int]),
-    [dartx.getRangeAt]: dart.definiteFunctionType(html.Range, [core.int]),
+    [dartx.extend]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int]),
+    [dartx.getRangeAt]: dart.definiteFunctionType(html$.Range, [core.int]),
     [dartx.modify]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
     [dartx.removeAllRanges]: dart.definiteFunctionType(dart.void, []),
-    [dartx.selectAllChildren]: dart.definiteFunctionType(dart.void, [html.Node]),
-    [dartx.setBaseAndExtent]: dart.definiteFunctionType(dart.void, [html.Node, core.int, html.Node, core.int]),
-    [dartx.setPosition]: dart.definiteFunctionType(dart.void, [html.Node], [core.int])
+    [dartx.selectAllChildren]: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [dartx.setBaseAndExtent]: dart.definiteFunctionType(dart.void, [html$.Node, core.int, html$.Node, core.int]),
+    [dartx.setPosition]: dart.definiteFunctionType(dart.void, [html$.Node], [core.int])
   })
 });
-dart.registerExtension(dart.global.Selection, html.Selection);
+dart.registerExtension(dart.global.Selection, html$.Selection);
 dart.defineExtensionNames([
   'close',
   'postMessage',
@@ -86447,7 +86450,7 @@
   'name',
   'targetUrl'
 ]);
-html.ServicePort = class ServicePort extends _interceptors.Interceptor {
+html$.ServicePort = class ServicePort extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86481,8 +86484,8 @@
     return this.postMessage.apply(this, args);
   }
 };
-dart.setSignature(html.ServicePort, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ServicePort, [])}),
+dart.setSignature(html$.ServicePort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServicePort, [])}),
   fields: () => ({
     [dartx.data]: core.Object,
     [dartx.name]: core.String,
@@ -86495,7 +86498,7 @@
     [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic])
   })
 });
-dart.registerExtension(dart.global.ServicePort, html.ServicePort);
+dart.registerExtension(dart.global.ServicePort, html$.ServicePort);
 const _connect_1 = Symbol('_connect_1');
 const _connect_2 = Symbol('_connect_2');
 dart.defineExtensionNames([
@@ -86504,7 +86507,7 @@
   'matchAll',
   'onMessage'
 ]);
-html.ServicePortCollection = class ServicePortCollection extends html.EventTarget {
+html$.ServicePortCollection = class ServicePortCollection extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86544,12 +86547,12 @@
     return this.matchAll.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.ServicePortCollection.messageEvent.forTarget(this);
+    return html$.ServicePortCollection.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.ServicePortCollection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ServicePortCollection, [])}),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+dart.setSignature(html$.ServicePortCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServicePortCollection, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({
     [dartx.connect]: dart.definiteFunctionType(async.Future, [core.String], [core.Map]),
     [_connect_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
@@ -86562,18 +86565,18 @@
   }),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.ServicePortCollection, {
+dart.defineLazy(html$.ServicePortCollection, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.ServicePortCollection, html.ServicePortCollection);
+dart.registerExtension(dart.global.ServicePortCollection, html$.ServicePortCollection);
 dart.defineExtensionNames([
   'respondWith',
   'origin',
   'targetUrl'
 ]);
-html.ServicePortConnectEvent = class ServicePortConnectEvent extends html.ExtendableEvent {
+html$.ServicePortConnectEvent = class ServicePortConnectEvent extends html$.ExtendableEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86581,9 +86584,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.ServicePortConnectEvent._create_1(type, eventInitDict_1);
+      return html$.ServicePortConnectEvent._create_1(type, eventInitDict_1);
     }
-    return html.ServicePortConnectEvent._create_2(type);
+    return html$.ServicePortConnectEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.ServicePortConnectEvent(type, eventInitDict);
@@ -86601,10 +86604,10 @@
     return this.respondWith.apply(this, args);
   }
 };
-dart.setSignature(html.ServicePortConnectEvent, {
+dart.setSignature(html$.ServicePortConnectEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ServicePortConnectEvent, []),
-    new: dart.definiteFunctionType(html.ServicePortConnectEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.ServicePortConnectEvent, []),
+    new: dart.definiteFunctionType(html$.ServicePortConnectEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.origin]: core.String,
@@ -86612,12 +86615,12 @@
   }),
   methods: () => ({[dartx.respondWith]: dart.definiteFunctionType(async.Future, [async.Future])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ServicePortConnectEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ServicePortConnectEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ServicePortConnectEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ServicePortConnectEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.ServicePortConnectEvent, html.ServicePortConnectEvent);
+dart.registerExtension(dart.global.ServicePortConnectEvent, html$.ServicePortConnectEvent);
 dart.defineExtensionNames([
   'getRegistration',
   'getRegistrations',
@@ -86626,7 +86629,7 @@
   'controller',
   'ready'
 ]);
-html.ServiceWorkerContainer = class ServiceWorkerContainer extends html.EventTarget {
+html$.ServiceWorkerContainer = class ServiceWorkerContainer extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86657,16 +86660,16 @@
     return this.register.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.ServiceWorkerContainer.messageEvent.forTarget(this);
+    return html$.ServiceWorkerContainer.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.ServiceWorkerContainer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ServiceWorkerContainer, [])}),
+dart.setSignature(html$.ServiceWorkerContainer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerContainer, [])}),
   fields: () => ({
-    [dartx.controller]: html._ServiceWorker,
+    [dartx.controller]: html$._ServiceWorker,
     [dartx.ready]: async.Future
   }),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({
     [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [], [core.String]),
     [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
@@ -86676,12 +86679,12 @@
   }),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.ServiceWorkerContainer, {
+dart.defineLazy(html$.ServiceWorkerContainer, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.ServiceWorkerContainer, html.ServiceWorkerContainer);
+dart.registerExtension(dart.global.ServiceWorkerContainer, html$.ServiceWorkerContainer);
 dart.defineExtensionNames([
   'skipWaiting',
   'onMessage',
@@ -86689,7 +86692,7 @@
   'ports',
   'registration'
 ]);
-html.ServiceWorkerGlobalScope = class ServiceWorkerGlobalScope extends html.WorkerGlobalScope {
+html$.ServiceWorkerGlobalScope = class ServiceWorkerGlobalScope extends html$.WorkerGlobalScope {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86706,26 +86709,26 @@
     return this.skipWaiting.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.ServiceWorkerGlobalScope.messageEvent.forTarget(this);
+    return html$.ServiceWorkerGlobalScope.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.ServiceWorkerGlobalScope, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ServiceWorkerGlobalScope, [])}),
+dart.setSignature(html$.ServiceWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerGlobalScope, [])}),
   fields: () => ({
-    [dartx.clients]: html.Clients,
-    [dartx.ports]: html.StashedPortCollection,
-    [dartx.registration]: html.ServiceWorkerRegistration
+    [dartx.clients]: html$.Clients,
+    [dartx.ports]: html$.StashedPortCollection,
+    [dartx.registration]: html$.ServiceWorkerRegistration
   }),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
   methods: () => ({[dartx.skipWaiting]: dart.definiteFunctionType(async.Future, [])}),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.ServiceWorkerGlobalScope, {
+dart.defineLazy(html$.ServiceWorkerGlobalScope, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.ServiceWorkerGlobalScope, html.ServiceWorkerGlobalScope);
+dart.registerExtension(dart.global.ServiceWorkerGlobalScope, html$.ServiceWorkerGlobalScope);
 dart.defineExtensionNames([
   'data',
   'lastEventId',
@@ -86733,7 +86736,7 @@
   'ports',
   'source'
 ]);
-html.ServiceWorkerMessageEvent = class ServiceWorkerMessageEvent extends html.Event {
+html$.ServiceWorkerMessageEvent = class ServiceWorkerMessageEvent extends html$.Event {
   get [dartx.data]() {
     return html_common.convertNativeToDart_SerializedScriptValue(this[_get_data]);
   }
@@ -86747,9 +86750,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.ServiceWorkerMessageEvent._create_1(type, eventInitDict_1);
+      return html$.ServiceWorkerMessageEvent._create_1(type, eventInitDict_1);
     }
-    return html.ServiceWorkerMessageEvent._create_2(type);
+    return html$.ServiceWorkerMessageEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.ServiceWorkerMessageEvent(type, eventInitDict);
@@ -86770,10 +86773,10 @@
     return this.source;
   }
 };
-dart.setSignature(html.ServiceWorkerMessageEvent, {
+dart.setSignature(html$.ServiceWorkerMessageEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ServiceWorkerMessageEvent, []),
-    new: dart.definiteFunctionType(html.ServiceWorkerMessageEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, []),
+    new: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [_get_data]: dart.dynamic,
@@ -86784,12 +86787,12 @@
   }),
   getters: () => ({[dartx.data]: dart.definiteFunctionType(dart.dynamic, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.ServiceWorkerMessageEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.ServiceWorkerMessageEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.ServiceWorkerMessageEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.ServiceWorkerMessageEvent, html.ServiceWorkerMessageEvent);
+dart.registerExtension(dart.global.ServiceWorkerMessageEvent, html$.ServiceWorkerMessageEvent);
 const _getNotifications_1 = Symbol('_getNotifications_1');
 const _getNotifications_2 = Symbol('_getNotifications_2');
 const _showNotification_1 = Symbol('_showNotification_1');
@@ -86808,7 +86811,7 @@
   'sync',
   'waiting'
 ]);
-html.ServiceWorkerRegistration = class ServiceWorkerRegistration extends html.EventTarget {
+html$.ServiceWorkerRegistration = class ServiceWorkerRegistration extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86871,17 +86874,17 @@
     return this.update.apply(this, args);
   }
 };
-dart.setSignature(html.ServiceWorkerRegistration, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ServiceWorkerRegistration, [])}),
+dart.setSignature(html$.ServiceWorkerRegistration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ServiceWorkerRegistration, [])}),
   fields: () => ({
-    [dartx.active]: html._ServiceWorker,
-    [dartx.geofencing]: html.Geofencing,
-    [dartx.installing]: html._ServiceWorker,
-    [dartx.periodicSync]: html.PeriodicSyncManager,
-    [dartx.pushManager]: html.PushManager,
+    [dartx.active]: html$._ServiceWorker,
+    [dartx.geofencing]: html$.Geofencing,
+    [dartx.installing]: html$._ServiceWorker,
+    [dartx.periodicSync]: html$.PeriodicSyncManager,
+    [dartx.pushManager]: html$.PushManager,
     [dartx.scope]: core.String,
-    [dartx.sync]: html.SyncManager,
-    [dartx.waiting]: html._ServiceWorker
+    [dartx.sync]: html$.SyncManager,
+    [dartx.waiting]: html$._ServiceWorker
   }),
   methods: () => ({
     [dartx.getNotifications]: dart.definiteFunctionType(async.Future, [], [core.Map]),
@@ -86894,38 +86897,38 @@
     [dartx.update]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.ServiceWorkerRegistration, html.ServiceWorkerRegistration);
+dart.registerExtension(dart.global.ServiceWorkerRegistration, html$.ServiceWorkerRegistration);
 dart.defineExtensionNames([
   'getDistributedNodes'
 ]);
-html.ShadowElement = class ShadowElement extends html.HtmlElement {
+html$.ShadowElement = class ShadowElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.ShadowElement._check(html.document[dartx.createElement]("shadow"));
+    return html$.ShadowElement._check(html$.document[dartx.createElement]("shadow"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('shadow');
+    return html$.Element.isTagSupported('shadow');
   }
   [dartx.getDistributedNodes](...args) {
     return this.getDistributedNodes.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.ShadowElement, 'created');
-dart.setSignature(html.ShadowElement, {
+dart.defineNamedConstructor(html$.ShadowElement, 'created');
+dart.setSignature(html$.ShadowElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.ShadowElement, []),
-    new: dart.definiteFunctionType(html.ShadowElement, []),
-    created: dart.definiteFunctionType(html.ShadowElement, [])
+    _: dart.definiteFunctionType(html$.ShadowElement, []),
+    new: dart.definiteFunctionType(html$.ShadowElement, []),
+    created: dart.definiteFunctionType(html$.ShadowElement, [])
   }),
-  methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html.Node), [])}),
+  methods: () => ({[dartx.getDistributedNodes]: dart.definiteFunctionType(core.List$(html$.Node), [])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLShadowElement, html.ShadowElement);
+dart.registerExtension(dart.global.HTMLShadowElement, html$.ShadowElement);
 dart.defineExtensionNames([
   'clone',
   'elementFromPoint',
@@ -86942,7 +86945,7 @@
   'olderShadowRoot',
   'styleSheets'
 ]);
-html.ShadowRoot = class ShadowRoot extends html.DocumentFragment {
+html$.ShadowRoot = class ShadowRoot extends html$.DocumentFragment {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -86983,35 +86986,35 @@
     return !!(Element.prototype.createShadowRoot || Element.prototype.webkitCreateShadowRoot);
   }
   static _shadowRootDeprecationReport() {
-    if (!dart.test(html.ShadowRoot._shadowRootDeprecationReported)) {
-      html.window[dartx.console].warn('ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.\nPlease remove them from your code.\n');
-      html.ShadowRoot._shadowRootDeprecationReported = true;
+    if (!dart.test(html$.ShadowRoot._shadowRootDeprecationReported)) {
+      html$.window[dartx.console].warn('ShadowRoot.resetStyleInheritance and ShadowRoot.applyAuthorStyles now deprecated in dart:html.\nPlease remove them from your code.\n');
+      html$.ShadowRoot._shadowRootDeprecationReported = true;
     }
   }
   get [dartx.resetStyleInheritance]() {
-    html.ShadowRoot._shadowRootDeprecationReport();
+    html$.ShadowRoot._shadowRootDeprecationReport();
     return false;
   }
   set [dartx.resetStyleInheritance](value) {
-    html.ShadowRoot._shadowRootDeprecationReport();
+    html$.ShadowRoot._shadowRootDeprecationReport();
   }
   get [dartx.applyAuthorStyles]() {
-    html.ShadowRoot._shadowRootDeprecationReport();
+    html$.ShadowRoot._shadowRootDeprecationReport();
     return false;
   }
   set [dartx.applyAuthorStyles](value) {
-    html.ShadowRoot._shadowRootDeprecationReport();
+    html$.ShadowRoot._shadowRootDeprecationReport();
   }
 };
-const innerHtml = Symbol(html.ShadowRoot.name + "." + dartx.innerHtml.toString());
-dart.setSignature(html.ShadowRoot, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ShadowRoot, [])}),
+const innerHtml = Symbol(html$.ShadowRoot.name + "." + dartx.innerHtml.toString());
+dart.setSignature(html$.ShadowRoot, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ShadowRoot, [])}),
   fields: () => ({
-    [dartx.activeElement]: html.Element,
+    [dartx.activeElement]: html$.Element,
     [dartx.delegatesFocus]: core.bool,
-    [dartx.host]: html.Element,
+    [dartx.host]: html$.Element,
     [dartx.innerHtml]: core.String,
-    [dartx.olderShadowRoot]: html.ShadowRoot,
+    [dartx.olderShadowRoot]: html$.ShadowRoot,
     [dartx.styleSheets]: ListOfStyleSheet()
   }),
   getters: () => ({
@@ -87023,21 +87026,21 @@
     [dartx.applyAuthorStyles]: dart.definiteFunctionType(dart.void, [core.bool])
   }),
   methods: () => ({
-    [dartx.elementFromPoint]: dart.definiteFunctionType(html.Element, [core.int, core.int]),
-    [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html.Element), [core.int, core.int]),
-    [dartx.getSelection]: dart.definiteFunctionType(html.Selection, [])
+    [dartx.elementFromPoint]: dart.definiteFunctionType(html$.Element, [core.int, core.int]),
+    [dartx.elementsFromPoint]: dart.definiteFunctionType(core.List$(html$.Element), [core.int, core.int]),
+    [dartx.getSelection]: dart.definiteFunctionType(html$.Selection, [])
   }),
   sfields: () => ({_shadowRootDeprecationReported: core.bool}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({_shadowRootDeprecationReport: dart.definiteFunctionType(dart.void, [])}),
   names: ['_shadowRootDeprecationReport']
 });
-html.ShadowRoot._shadowRootDeprecationReported = false;
-dart.registerExtension(dart.global.ShadowRoot, html.ShadowRoot);
+html$.ShadowRoot._shadowRootDeprecationReported = false;
+dart.registerExtension(dart.global.ShadowRoot, html$.ShadowRoot);
 dart.defineExtensionNames([
   'byteLength'
 ]);
-html.SharedArrayBuffer = class SharedArrayBuffer extends _interceptors.Interceptor {
+html$.SharedArrayBuffer = class SharedArrayBuffer extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87045,26 +87048,26 @@
     return this.byteLength;
   }
 };
-dart.setSignature(html.SharedArrayBuffer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SharedArrayBuffer, [])}),
+dart.setSignature(html$.SharedArrayBuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SharedArrayBuffer, [])}),
   fields: () => ({[dartx.byteLength]: core.int})
 });
-dart.registerExtension(dart.global.SharedArrayBuffer, html.SharedArrayBuffer);
+dart.registerExtension(dart.global.SharedArrayBuffer, html$.SharedArrayBuffer);
 dart.defineExtensionNames([
   'onError',
   'port',
   'workerStart'
 ]);
-html.SharedWorker = class SharedWorker extends html.EventTarget {
+html$.SharedWorker = class SharedWorker extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(scriptURL, name) {
     if (name === void 0) name = null;
     if (name != null) {
-      return html.SharedWorker._create_1(scriptURL, name);
+      return html$.SharedWorker._create_1(scriptURL, name);
     }
-    return html.SharedWorker._create_2(scriptURL);
+    return html$.SharedWorker._create_2(scriptURL);
   }
   static _create_1(scriptURL, name) {
     return new self.SharedWorker(scriptURL, name);
@@ -87079,38 +87082,38 @@
     return this.workerStart;
   }
   get [dartx.onError]() {
-    return html.SharedWorker.errorEvent.forTarget(this);
+    return html$.SharedWorker.errorEvent.forTarget(this);
   }
 };
-html.SharedWorker[dart.implements] = () => [html.AbstractWorker];
-dart.setSignature(html.SharedWorker, {
+html$.SharedWorker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$.SharedWorker, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SharedWorker, []),
-    new: dart.definiteFunctionType(html.SharedWorker, [core.String], [core.String])
+    _: dart.definiteFunctionType(html$.SharedWorker, []),
+    new: dart.definiteFunctionType(html$.SharedWorker, [core.String], [core.String])
   }),
   fields: () => ({
-    [dartx.port]: html.MessagePort,
+    [dartx.port]: html$.MessagePort,
     [dartx.workerStart]: core.double
   }),
-  getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   sfields: () => ({errorEvent: EventStreamProviderOfEvent()}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.SharedWorker, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.SharedWorker, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.SharedWorker, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SharedWorker, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.defineLazy(html.SharedWorker, {
+dart.defineLazy(html$.SharedWorker, {
   get errorEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('error'));
   }
 });
-dart.registerExtension(dart.global.SharedWorker, html.SharedWorker);
+dart.registerExtension(dart.global.SharedWorker, html$.SharedWorker);
 dart.defineExtensionNames([
   'onConnect',
   'name'
 ]);
-html.SharedWorkerGlobalScope = class SharedWorkerGlobalScope extends html.WorkerGlobalScope {
+html$.SharedWorkerGlobalScope = class SharedWorkerGlobalScope extends html$.WorkerGlobalScope {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87118,21 +87121,21 @@
     return this.name;
   }
   get [dartx.onConnect]() {
-    return html.SharedWorkerGlobalScope.connectEvent.forTarget(this);
+    return html$.SharedWorkerGlobalScope.connectEvent.forTarget(this);
   }
 };
-dart.setSignature(html.SharedWorkerGlobalScope, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SharedWorkerGlobalScope, [])}),
+dart.setSignature(html$.SharedWorkerGlobalScope, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SharedWorkerGlobalScope, [])}),
   fields: () => ({[dartx.name]: core.String}),
-  getters: () => ({[dartx.onConnect]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onConnect]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   sfields: () => ({connectEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.SharedWorkerGlobalScope, {
+dart.defineLazy(html$.SharedWorkerGlobalScope, {
   get connectEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('connect'));
   }
 });
-dart.registerExtension(dart.global.SharedWorkerGlobalScope, html.SharedWorkerGlobalScope);
+dart.registerExtension(dart.global.SharedWorkerGlobalScope, html$.SharedWorkerGlobalScope);
 dart.defineExtensionNames([
   'abort',
   'appendBuffer',
@@ -87147,7 +87150,7 @@
   'trackDefaults',
   'updating'
 ]);
-html.SourceBuffer = class SourceBuffer extends html.EventTarget {
+html$.SourceBuffer = class SourceBuffer extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87203,26 +87206,26 @@
     return this.remove.apply(this, args);
   }
 };
-dart.setSignature(html.SourceBuffer, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SourceBuffer, [])}),
+dart.setSignature(html$.SourceBuffer, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SourceBuffer, [])}),
   fields: () => ({
     [dartx.appendWindowEnd]: core.num,
     [dartx.appendWindowStart]: core.num,
-    [dartx.buffered]: html.TimeRanges,
+    [dartx.buffered]: html$.TimeRanges,
     [dartx.mode]: core.String,
     [dartx.timestampOffset]: core.num,
-    [dartx.trackDefaults]: html.TrackDefaultList,
+    [dartx.trackDefaults]: html$.TrackDefaultList,
     [dartx.updating]: core.bool
   }),
   methods: () => ({
     [dartx.abort]: dart.definiteFunctionType(dart.void, []),
     [dartx.appendBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
-    [dartx.appendStream]: dart.definiteFunctionType(dart.void, [html.FileStream], [core.int]),
+    [dartx.appendStream]: dart.definiteFunctionType(dart.void, [html$.FileStream], [core.int]),
     [dartx.appendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData]),
     [dartx.remove]: dart.definiteFunctionType(dart.void, [core.num, core.num])
   })
 });
-dart.registerExtension(dart.global.SourceBuffer, html.SourceBuffer);
+dart.registerExtension(dart.global.SourceBuffer, html$.SourceBuffer);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -87234,7 +87237,7 @@
   'elementAt',
   'item'
 ]);
-html.SourceBufferList = class SourceBufferList extends dart.mixin(html.EventTarget, collection.ListMixin$(html.SourceBuffer), html.ImmutableListMixin$(html.SourceBuffer)) {
+html$.SourceBufferList = class SourceBufferList extends dart.mixin(html$.EventTarget, collection.ListMixin$(html$.SourceBuffer), html$.ImmutableListMixin$(html$.SourceBuffer)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87280,18 +87283,18 @@
     return this.item.apply(this, args);
   }
 };
-html.SourceBufferList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSourceBuffer()];
-dart.setSignature(html.SourceBufferList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SourceBufferList, [])}),
+html$.SourceBufferList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSourceBuffer()];
+dart.setSignature(html$.SourceBufferList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SourceBufferList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.SourceBuffer, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.SourceBuffer]),
-    [dartx.item]: dart.definiteFunctionType(html.SourceBuffer, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.SourceBuffer, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SourceBuffer]),
+    [dartx.item]: dart.definiteFunctionType(html$.SourceBuffer, [core.int])
   })
 });
-dart.registerExtension(dart.global.SourceBufferList, html.SourceBufferList);
+dart.registerExtension(dart.global.SourceBufferList, html$.SourceBufferList);
 dart.defineExtensionNames([
   'media',
   'sizes',
@@ -87299,12 +87302,12 @@
   'srcset',
   'type'
 ]);
-html.SourceElement = class SourceElement extends html.HtmlElement {
+html$.SourceElement = class SourceElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.SourceElement._check(html.document[dartx.createElement]("source"));
+    return html$.SourceElement._check(html$.document[dartx.createElement]("source"));
   }
   created() {
     this[dartx.media] = null;
@@ -87345,12 +87348,12 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(html.SourceElement, 'created');
-dart.setSignature(html.SourceElement, {
+dart.defineNamedConstructor(html$.SourceElement, 'created');
+dart.setSignature(html$.SourceElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SourceElement, []),
-    new: dart.definiteFunctionType(html.SourceElement, []),
-    created: dart.definiteFunctionType(html.SourceElement, [])
+    _: dart.definiteFunctionType(html$.SourceElement, []),
+    new: dart.definiteFunctionType(html$.SourceElement, []),
+    created: dart.definiteFunctionType(html$.SourceElement, [])
   }),
   fields: () => ({
     [dartx.media]: core.String,
@@ -87360,14 +87363,14 @@
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLSourceElement, html.SourceElement);
+dart.registerExtension(dart.global.HTMLSourceElement, html$.SourceElement);
 dart.defineExtensionNames([
   'facing',
   'id',
   'kind',
   'label'
 ]);
-html.SourceInfo = class SourceInfo extends _interceptors.Interceptor {
+html$.SourceInfo = class SourceInfo extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87384,8 +87387,8 @@
     return this.label;
   }
 };
-dart.setSignature(html.SourceInfo, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SourceInfo, [])}),
+dart.setSignature(html$.SourceInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SourceInfo, [])}),
   fields: () => ({
     [dartx.facing]: core.String,
     [dartx.id]: core.String,
@@ -87393,37 +87396,37 @@
     [dartx.label]: core.String
   })
 });
-dart.registerExtension(dart.global.SourceInfo, html.SourceInfo);
-html.SpanElement = class SpanElement extends html.HtmlElement {
+dart.registerExtension(dart.global.SourceInfo, html$.SourceInfo);
+html$.SpanElement = class SpanElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.SpanElement._check(html.document[dartx.createElement]("span"));
+    return html$.SpanElement._check(html$.document[dartx.createElement]("span"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.SpanElement, 'created');
-dart.setSignature(html.SpanElement, {
+dart.defineNamedConstructor(html$.SpanElement, 'created');
+dart.setSignature(html$.SpanElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpanElement, []),
-    new: dart.definiteFunctionType(html.SpanElement, []),
-    created: dart.definiteFunctionType(html.SpanElement, [])
+    _: dart.definiteFunctionType(html$.SpanElement, []),
+    new: dart.definiteFunctionType(html$.SpanElement, []),
+    created: dart.definiteFunctionType(html$.SpanElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLSpanElement, html.SpanElement);
+dart.registerExtension(dart.global.HTMLSpanElement, html$.SpanElement);
 dart.defineExtensionNames([
   'src',
   'weight'
 ]);
-html.SpeechGrammar = class SpeechGrammar extends _interceptors.Interceptor {
+html$.SpeechGrammar = class SpeechGrammar extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.SpeechGrammar._create_1();
+    return html$.SpeechGrammar._create_1();
   }
   static _create_1() {
     return new self.SpeechGrammar();
@@ -87441,19 +87444,19 @@
     this.weight = value;
   }
 };
-dart.setSignature(html.SpeechGrammar, {
+dart.setSignature(html$.SpeechGrammar, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpeechGrammar, []),
-    new: dart.definiteFunctionType(html.SpeechGrammar, [])
+    _: dart.definiteFunctionType(html$.SpeechGrammar, []),
+    new: dart.definiteFunctionType(html$.SpeechGrammar, [])
   }),
   fields: () => ({
     [dartx.src]: core.String,
     [dartx.weight]: core.num
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.SpeechGrammar, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.SpeechGrammar, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.SpeechGrammar, html.SpeechGrammar);
+dart.registerExtension(dart.global.SpeechGrammar, html$.SpeechGrammar);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -87467,12 +87470,12 @@
   'addFromUri',
   'item'
 ]);
-html.SpeechGrammarList = class SpeechGrammarList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.SpeechGrammar), html.ImmutableListMixin$(html.SpeechGrammar)) {
+html$.SpeechGrammarList = class SpeechGrammarList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.SpeechGrammar), html$.ImmutableListMixin$(html$.SpeechGrammar)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.SpeechGrammarList._create_1();
+    return html$.SpeechGrammarList._create_1();
   }
   static _create_1() {
     return new self.SpeechGrammarList();
@@ -87525,25 +87528,25 @@
     return this.item.apply(this, args);
   }
 };
-html.SpeechGrammarList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechGrammar()];
-dart.setSignature(html.SpeechGrammarList, {
+html$.SpeechGrammarList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechGrammar()];
+dart.setSignature(html$.SpeechGrammarList, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpeechGrammarList, []),
-    new: dart.definiteFunctionType(html.SpeechGrammarList, [])
+    _: dart.definiteFunctionType(html$.SpeechGrammarList, []),
+    new: dart.definiteFunctionType(html$.SpeechGrammarList, [])
   }),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.SpeechGrammar, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.SpeechGrammar]),
+    [dartx._get]: dart.definiteFunctionType(html$.SpeechGrammar, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SpeechGrammar]),
     [dartx.addFromString]: dart.definiteFunctionType(dart.void, [core.String], [core.num]),
     [dartx.addFromUri]: dart.definiteFunctionType(dart.void, [core.String], [core.num]),
-    [dartx.item]: dart.definiteFunctionType(html.SpeechGrammar, [core.int])
+    [dartx.item]: dart.definiteFunctionType(html$.SpeechGrammar, [core.int])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.SpeechGrammarList, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.SpeechGrammarList, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.SpeechGrammarList, html.SpeechGrammarList);
+dart.registerExtension(dart.global.SpeechGrammarList, html$.SpeechGrammarList);
 dart.defineExtensionNames([
   'abort',
   'start',
@@ -87567,7 +87570,7 @@
   'maxAlternatives',
   'serviceUri'
 ]);
-html.SpeechRecognition = class SpeechRecognition extends html.EventTarget {
+html$.SpeechRecognition = class SpeechRecognition extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87626,68 +87629,68 @@
     return this.stop.apply(this, args);
   }
   get [dartx.onAudioEnd]() {
-    return html.SpeechRecognition.audioEndEvent.forTarget(this);
+    return html$.SpeechRecognition.audioEndEvent.forTarget(this);
   }
   get [dartx.onAudioStart]() {
-    return html.SpeechRecognition.audioStartEvent.forTarget(this);
+    return html$.SpeechRecognition.audioStartEvent.forTarget(this);
   }
   get [dartx.onEnd]() {
-    return html.SpeechRecognition.endEvent.forTarget(this);
+    return html$.SpeechRecognition.endEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.SpeechRecognition.errorEvent.forTarget(this);
+    return html$.SpeechRecognition.errorEvent.forTarget(this);
   }
   get [dartx.onNoMatch]() {
-    return html.SpeechRecognition.noMatchEvent.forTarget(this);
+    return html$.SpeechRecognition.noMatchEvent.forTarget(this);
   }
   get [dartx.onResult]() {
-    return html.SpeechRecognition.resultEvent.forTarget(this);
+    return html$.SpeechRecognition.resultEvent.forTarget(this);
   }
   get [dartx.onSoundEnd]() {
-    return html.SpeechRecognition.soundEndEvent.forTarget(this);
+    return html$.SpeechRecognition.soundEndEvent.forTarget(this);
   }
   get [dartx.onSoundStart]() {
-    return html.SpeechRecognition.soundStartEvent.forTarget(this);
+    return html$.SpeechRecognition.soundStartEvent.forTarget(this);
   }
   get [dartx.onSpeechEnd]() {
-    return html.SpeechRecognition.speechEndEvent.forTarget(this);
+    return html$.SpeechRecognition.speechEndEvent.forTarget(this);
   }
   get [dartx.onSpeechStart]() {
-    return html.SpeechRecognition.speechStartEvent.forTarget(this);
+    return html$.SpeechRecognition.speechStartEvent.forTarget(this);
   }
   get [dartx.onStart]() {
-    return html.SpeechRecognition.startEvent.forTarget(this);
+    return html$.SpeechRecognition.startEvent.forTarget(this);
   }
   static new() {
     return new (window.SpeechRecognition || window.webkitSpeechRecognition)();
   }
 };
-dart.setSignature(html.SpeechRecognition, {
+dart.setSignature(html$.SpeechRecognition, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpeechRecognition, []),
-    new: dart.definiteFunctionType(html.SpeechRecognition, [])
+    _: dart.definiteFunctionType(html$.SpeechRecognition, []),
+    new: dart.definiteFunctionType(html$.SpeechRecognition, [])
   }),
   fields: () => ({
-    [dartx.audioTrack]: html.MediaStreamTrack,
+    [dartx.audioTrack]: html$.MediaStreamTrack,
     [dartx.continuous]: core.bool,
-    [dartx.grammars]: html.SpeechGrammarList,
+    [dartx.grammars]: html$.SpeechGrammarList,
     [dartx.interimResults]: core.bool,
     [dartx.lang]: core.String,
     [dartx.maxAlternatives]: core.int,
     [dartx.serviceUri]: core.String
   }),
   getters: () => ({
-    [dartx.onAudioEnd]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onAudioStart]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.SpeechRecognitionError), []),
-    [dartx.onNoMatch]: dart.definiteFunctionType(async.Stream$(html.SpeechRecognitionEvent), []),
-    [dartx.onResult]: dart.definiteFunctionType(async.Stream$(html.SpeechRecognitionEvent), []),
-    [dartx.onSoundEnd]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSoundStart]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSpeechEnd]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSpeechStart]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onAudioEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onAudioStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionError), []),
+    [dartx.onNoMatch]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionEvent), []),
+    [dartx.onResult]: dart.definiteFunctionType(async.Stream$(html$.SpeechRecognitionEvent), []),
+    [dartx.onSoundEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSoundStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSpeechEnd]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSpeechStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
     [dartx.abort]: dart.definiteFunctionType(dart.void, []),
@@ -87709,7 +87712,7 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.defineLazy(html.SpeechRecognition, {
+dart.defineLazy(html$.SpeechRecognition, {
   get audioEndEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('audioend'));
   },
@@ -87744,12 +87747,12 @@
     return dart.const(new (EventStreamProviderOfEvent())('start'));
   }
 });
-dart.registerExtension(dart.global.SpeechRecognition, html.SpeechRecognition);
+dart.registerExtension(dart.global.SpeechRecognition, html$.SpeechRecognition);
 dart.defineExtensionNames([
   'confidence',
   'transcript'
 ]);
-html.SpeechRecognitionAlternative = class SpeechRecognitionAlternative extends _interceptors.Interceptor {
+html$.SpeechRecognitionAlternative = class SpeechRecognitionAlternative extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87760,19 +87763,19 @@
     return this.transcript;
   }
 };
-dart.setSignature(html.SpeechRecognitionAlternative, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SpeechRecognitionAlternative, [])}),
+dart.setSignature(html$.SpeechRecognitionAlternative, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechRecognitionAlternative, [])}),
   fields: () => ({
     [dartx.confidence]: core.double,
     [dartx.transcript]: core.String
   })
 });
-dart.registerExtension(dart.global.SpeechRecognitionAlternative, html.SpeechRecognitionAlternative);
+dart.registerExtension(dart.global.SpeechRecognitionAlternative, html$.SpeechRecognitionAlternative);
 dart.defineExtensionNames([
   'error',
   'message'
 ]);
-html.SpeechRecognitionError = class SpeechRecognitionError extends html.Event {
+html$.SpeechRecognitionError = class SpeechRecognitionError extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87780,9 +87783,9 @@
     if (initDict === void 0) initDict = null;
     if (initDict != null) {
       let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
-      return html.SpeechRecognitionError._create_1(type, initDict_1);
+      return html$.SpeechRecognitionError._create_1(type, initDict_1);
     }
-    return html.SpeechRecognitionError._create_2(type);
+    return html$.SpeechRecognitionError._create_2(type);
   }
   static _create_1(type, initDict) {
     return new self.SpeechRecognitionError(type, initDict);
@@ -87797,29 +87800,29 @@
     return this.message;
   }
 };
-dart.setSignature(html.SpeechRecognitionError, {
+dart.setSignature(html$.SpeechRecognitionError, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpeechRecognitionError, []),
-    new: dart.definiteFunctionType(html.SpeechRecognitionError, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.SpeechRecognitionError, []),
+    new: dart.definiteFunctionType(html$.SpeechRecognitionError, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.error]: core.String,
     [dartx.message]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.SpeechRecognitionError, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.SpeechRecognitionError, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.SpeechRecognitionError, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SpeechRecognitionError, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.SpeechRecognitionError, html.SpeechRecognitionError);
+dart.registerExtension(dart.global.SpeechRecognitionError, html$.SpeechRecognitionError);
 dart.defineExtensionNames([
   'emma',
   'interpretation',
   'resultIndex',
   'results'
 ]);
-html.SpeechRecognitionEvent = class SpeechRecognitionEvent extends html.Event {
+html$.SpeechRecognitionEvent = class SpeechRecognitionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87827,9 +87830,9 @@
     if (initDict === void 0) initDict = null;
     if (initDict != null) {
       let initDict_1 = html_common.convertDartToNative_Dictionary(initDict);
-      return html.SpeechRecognitionEvent._create_1(type, initDict_1);
+      return html$.SpeechRecognitionEvent._create_1(type, initDict_1);
     }
-    return html.SpeechRecognitionEvent._create_2(type);
+    return html$.SpeechRecognitionEvent._create_2(type);
   }
   static _create_1(type, initDict) {
     return new self.SpeechRecognitionEvent(type, initDict);
@@ -87850,30 +87853,30 @@
     return this.results;
   }
 };
-dart.setSignature(html.SpeechRecognitionEvent, {
+dart.setSignature(html$.SpeechRecognitionEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpeechRecognitionEvent, []),
-    new: dart.definiteFunctionType(html.SpeechRecognitionEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.SpeechRecognitionEvent, []),
+    new: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [core.String], [core.Map])
   }),
   fields: () => ({
-    [dartx.emma]: html.Document,
-    [dartx.interpretation]: html.Document,
+    [dartx.emma]: html$.Document,
+    [dartx.interpretation]: html$.Document,
     [dartx.resultIndex]: core.int,
     [dartx.results]: ListOfSpeechRecognitionResult()
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.SpeechRecognitionEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.SpeechRecognitionEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SpeechRecognitionEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.SpeechRecognitionEvent, html.SpeechRecognitionEvent);
+dart.registerExtension(dart.global.SpeechRecognitionEvent, html$.SpeechRecognitionEvent);
 dart.defineExtensionNames([
   'item',
   'isFinal',
   'length'
 ]);
-html.SpeechRecognitionResult = class SpeechRecognitionResult extends _interceptors.Interceptor {
+html$.SpeechRecognitionResult = class SpeechRecognitionResult extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87887,15 +87890,15 @@
     return this.item.apply(this, args);
   }
 };
-dart.setSignature(html.SpeechRecognitionResult, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SpeechRecognitionResult, [])}),
+dart.setSignature(html$.SpeechRecognitionResult, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechRecognitionResult, [])}),
   fields: () => ({
     [dartx.isFinal]: core.bool,
     [dartx.length]: core.int
   }),
-  methods: () => ({[dartx.item]: dart.definiteFunctionType(html.SpeechRecognitionAlternative, [core.int])})
+  methods: () => ({[dartx.item]: dart.definiteFunctionType(html$.SpeechRecognitionAlternative, [core.int])})
 });
-dart.registerExtension(dart.global.SpeechRecognitionResult, html.SpeechRecognitionResult);
+dart.registerExtension(dart.global.SpeechRecognitionResult, html$.SpeechRecognitionResult);
 dart.defineExtensionNames([
   'cancel',
   'getVoices',
@@ -87906,7 +87909,7 @@
   'pending',
   'speaking'
 ]);
-html.SpeechSynthesis = class SpeechSynthesis extends html.EventTarget {
+html$.SpeechSynthesis = class SpeechSynthesis extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87935,8 +87938,8 @@
     return this.speak.apply(this, args);
   }
 };
-dart.setSignature(html.SpeechSynthesis, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SpeechSynthesis, [])}),
+dart.setSignature(html$.SpeechSynthesis, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesis, [])}),
   fields: () => ({
     [dartx.paused]: core.bool,
     [dartx.pending]: core.bool,
@@ -87944,20 +87947,20 @@
   }),
   methods: () => ({
     [dartx.cancel]: dart.definiteFunctionType(dart.void, []),
-    [dartx.getVoices]: dart.definiteFunctionType(core.List$(html.SpeechSynthesisVoice), []),
+    [dartx.getVoices]: dart.definiteFunctionType(core.List$(html$.SpeechSynthesisVoice), []),
     [dartx.pause]: dart.definiteFunctionType(dart.void, []),
     [dartx.resume]: dart.definiteFunctionType(dart.void, []),
-    [dartx.speak]: dart.definiteFunctionType(dart.void, [html.SpeechSynthesisUtterance])
+    [dartx.speak]: dart.definiteFunctionType(dart.void, [html$.SpeechSynthesisUtterance])
   })
 });
-dart.registerExtension(dart.global.SpeechSynthesis, html.SpeechSynthesis);
+dart.registerExtension(dart.global.SpeechSynthesis, html$.SpeechSynthesis);
 dart.defineExtensionNames([
   'charIndex',
   'elapsedTime',
   'name',
   'utterance'
 ]);
-html.SpeechSynthesisEvent = class SpeechSynthesisEvent extends html.Event {
+html$.SpeechSynthesisEvent = class SpeechSynthesisEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -87974,16 +87977,16 @@
     return this.utterance;
   }
 };
-dart.setSignature(html.SpeechSynthesisEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SpeechSynthesisEvent, [])}),
+dart.setSignature(html$.SpeechSynthesisEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesisEvent, [])}),
   fields: () => ({
     [dartx.charIndex]: core.int,
     [dartx.elapsedTime]: core.double,
     [dartx.name]: core.String,
-    [dartx.utterance]: html.SpeechSynthesisUtterance
+    [dartx.utterance]: html$.SpeechSynthesisUtterance
   })
 });
-dart.registerExtension(dart.global.SpeechSynthesisEvent, html.SpeechSynthesisEvent);
+dart.registerExtension(dart.global.SpeechSynthesisEvent, html$.SpeechSynthesisEvent);
 dart.defineExtensionNames([
   'onBoundary',
   'onEnd',
@@ -87999,16 +88002,16 @@
   'voice',
   'volume'
 ]);
-html.SpeechSynthesisUtterance = class SpeechSynthesisUtterance extends html.EventTarget {
+html$.SpeechSynthesisUtterance = class SpeechSynthesisUtterance extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(text) {
     if (text === void 0) text = null;
     if (text != null) {
-      return html.SpeechSynthesisUtterance._create_1(text);
+      return html$.SpeechSynthesisUtterance._create_1(text);
     }
-    return html.SpeechSynthesisUtterance._create_2();
+    return html$.SpeechSynthesisUtterance._create_2();
   }
   static _create_1(text) {
     return new self.SpeechSynthesisUtterance(text);
@@ -88053,48 +88056,48 @@
     this.volume = value;
   }
   get [dartx.onBoundary]() {
-    return html.SpeechSynthesisUtterance.boundaryEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.boundaryEvent.forTarget(this);
   }
   get [dartx.onEnd]() {
-    return html.SpeechSynthesisUtterance.endEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.endEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.SpeechSynthesisUtterance.errorEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.errorEvent.forTarget(this);
   }
   get [dartx.onMark]() {
-    return html.SpeechSynthesisUtterance.markEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.markEvent.forTarget(this);
   }
   get [dartx.onPause]() {
-    return html.SpeechSynthesisUtterance.pauseEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.pauseEvent.forTarget(this);
   }
   get [dartx.onResume]() {
-    return html.SpeechSynthesisUtterance.resumeEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.resumeEvent.forTarget(this);
   }
   get [dartx.onStart]() {
-    return html.SpeechSynthesisUtterance.startEvent.forTarget(this);
+    return html$.SpeechSynthesisUtterance.startEvent.forTarget(this);
   }
 };
-dart.setSignature(html.SpeechSynthesisUtterance, {
+dart.setSignature(html$.SpeechSynthesisUtterance, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SpeechSynthesisUtterance, []),
-    new: dart.definiteFunctionType(html.SpeechSynthesisUtterance, [], [core.String])
+    _: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, []),
+    new: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [], [core.String])
   }),
   fields: () => ({
     [dartx.lang]: core.String,
     [dartx.pitch]: core.num,
     [dartx.rate]: core.num,
     [dartx.text]: core.String,
-    [dartx.voice]: html.SpeechSynthesisVoice,
+    [dartx.voice]: html$.SpeechSynthesisVoice,
     [dartx.volume]: core.num
   }),
   getters: () => ({
-    [dartx.onBoundary]: dart.definiteFunctionType(async.Stream$(html.SpeechSynthesisEvent), []),
-    [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html.SpeechSynthesisEvent), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMark]: dart.definiteFunctionType(async.Stream$(html.SpeechSynthesisEvent), []),
-    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onResume]: dart.definiteFunctionType(async.Stream$(html.SpeechSynthesisEvent), []),
-    [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html.SpeechSynthesisEvent), [])
+    [dartx.onBoundary]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onEnd]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMark]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onResume]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), []),
+    [dartx.onStart]: dart.definiteFunctionType(async.Stream$(html$.SpeechSynthesisEvent), [])
   }),
   sfields: () => ({
     boundaryEvent: EventStreamProviderOfSpeechSynthesisEvent(),
@@ -88106,12 +88109,12 @@
     startEvent: EventStreamProviderOfSpeechSynthesisEvent()
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.SpeechSynthesisUtterance, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.SpeechSynthesisUtterance, [])
+    _create_1: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.SpeechSynthesisUtterance, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.defineLazy(html.SpeechSynthesisUtterance, {
+dart.defineLazy(html$.SpeechSynthesisUtterance, {
   get boundaryEvent() {
     return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('boundary'));
   },
@@ -88134,7 +88137,7 @@
     return dart.const(new (EventStreamProviderOfSpeechSynthesisEvent())('start'));
   }
 });
-dart.registerExtension(dart.global.SpeechSynthesisUtterance, html.SpeechSynthesisUtterance);
+dart.registerExtension(dart.global.SpeechSynthesisUtterance, html$.SpeechSynthesisUtterance);
 dart.defineExtensionNames([
   'defaultValue',
   'lang',
@@ -88142,7 +88145,7 @@
   'name',
   'voiceUri'
 ]);
-html.SpeechSynthesisVoice = class SpeechSynthesisVoice extends _interceptors.Interceptor {
+html$.SpeechSynthesisVoice = class SpeechSynthesisVoice extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88162,8 +88165,8 @@
     return this.voiceURI;
   }
 };
-dart.setSignature(html.SpeechSynthesisVoice, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SpeechSynthesisVoice, [])}),
+dart.setSignature(html$.SpeechSynthesisVoice, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SpeechSynthesisVoice, [])}),
   fields: () => ({
     [dartx.defaultValue]: core.bool,
     [dartx.lang]: core.String,
@@ -88172,11 +88175,11 @@
     [dartx.voiceUri]: core.String
   })
 });
-dart.registerExtension(dart.global.SpeechSynthesisVoice, html.SpeechSynthesisVoice);
+dart.registerExtension(dart.global.SpeechSynthesisVoice, html$.SpeechSynthesisVoice);
 dart.defineExtensionNames([
   'name'
 ]);
-html.StashedMessagePort = class StashedMessagePort extends html.MessagePort {
+html$.StashedMessagePort = class StashedMessagePort extends html$.MessagePort {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88184,16 +88187,16 @@
     return this.name;
   }
 };
-dart.setSignature(html.StashedMessagePort, {
-  constructors: () => ({_: dart.definiteFunctionType(html.StashedMessagePort, [])}),
+dart.setSignature(html$.StashedMessagePort, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StashedMessagePort, [])}),
   fields: () => ({[dartx.name]: core.String})
 });
-dart.registerExtension(dart.global.StashedMessagePort, html.StashedMessagePort);
+dart.registerExtension(dart.global.StashedMessagePort, html$.StashedMessagePort);
 dart.defineExtensionNames([
   'add',
   'onMessage'
 ]);
-html.StashedPortCollection = class StashedPortCollection extends html.EventTarget {
+html$.StashedPortCollection = class StashedPortCollection extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88201,26 +88204,26 @@
     return this.add.apply(this, args);
   }
   get [dartx.onMessage]() {
-    return html.StashedPortCollection.messageEvent.forTarget(this);
+    return html$.StashedPortCollection.messageEvent.forTarget(this);
   }
 };
-dart.setSignature(html.StashedPortCollection, {
-  constructors: () => ({_: dart.definiteFunctionType(html.StashedPortCollection, [])}),
-  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])}),
-  methods: () => ({[dartx.add]: dart.definiteFunctionType(html.StashedMessagePort, [core.String, html.MessagePort])}),
+dart.setSignature(html$.StashedPortCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StashedPortCollection, [])}),
+  getters: () => ({[dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])}),
+  methods: () => ({[dartx.add]: dart.definiteFunctionType(html$.StashedMessagePort, [core.String, html$.MessagePort])}),
   sfields: () => ({messageEvent: EventStreamProviderOfMessageEvent()})
 });
-dart.defineLazy(html.StashedPortCollection, {
+dart.defineLazy(html$.StashedPortCollection, {
   get messageEvent() {
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.StashedPortCollection, html.StashedPortCollection);
+dart.registerExtension(dart.global.StashedPortCollection, html$.StashedPortCollection);
 const _getItem = Symbol('_getItem');
 const _setItem = Symbol('_setItem');
 const _removeItem = Symbol('_removeItem');
 const _key = Symbol('_key');
-const _length = Symbol('_length');
+const _length$3 = Symbol('_length');
 const __delete__ = Symbol('__delete__');
 dart.defineExtensionNames([
   'addAll',
@@ -88238,14 +88241,14 @@
   'isEmpty',
   'isNotEmpty'
 ]);
-html.Storage = class Storage extends _interceptors.Interceptor {
+html$.Storage = class Storage extends _interceptors.Interceptor {
   [dartx.addAll](other) {
     other[dartx.forEach](dart.fn((k, v) => {
       this[dartx._set](k, v);
     }, StringAndStringToNull()));
   }
   [dartx.containsValue](value) {
-    return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool()));
+    return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool$()));
   }
   [dartx.containsKey](key) {
     return this[_getItem](core.String._check(key)) != null;
@@ -88267,7 +88270,7 @@
     return value;
   }
   [dartx.clear]() {
-    return this[_clear]();
+    return this[_clear$1]();
   }
   [dartx.forEach](f) {
     for (let i = 0; true; i++) {
@@ -88278,16 +88281,16 @@
   }
   get [dartx.keys]() {
     let keys = JSArrayOfString().of([]);
-    this[dartx.forEach](dart.fn((k, v) => keys[dartx.add](k), StringAndStringTovoid()));
+    this[dartx.forEach](dart.fn((k, v) => keys[dartx.add](k), StringAndStringTovoid$()));
     return keys;
   }
   get [dartx.values]() {
     let values = JSArrayOfString().of([]);
-    this[dartx.forEach](dart.fn((k, v) => values[dartx.add](v), StringAndStringTovoid()));
+    this[dartx.forEach](dart.fn((k, v) => values[dartx.add](v), StringAndStringTovoid$()));
     return values;
   }
   get [dartx.length]() {
-    return this[_length];
+    return this[_length$3];
   }
   get [dartx.isEmpty]() {
     return this[_key](0) == null;
@@ -88298,7 +88301,7 @@
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
-  get [_length]() {
+  get [_length$3]() {
     return this.length;
   }
   [__delete__](...args) {
@@ -88310,7 +88313,7 @@
   [__setter__](...args) {
     return this.__setter__.apply(this, args);
   }
-  [_clear](...args) {
+  [_clear$1](...args) {
     return this.clear.apply(this, args);
   }
   [_getItem](...args) {
@@ -88326,10 +88329,10 @@
     return this.setItem.apply(this, args);
   }
 };
-html.Storage[dart.implements] = () => [MapOfString$String()];
-dart.setSignature(html.Storage, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Storage, [])}),
-  fields: () => ({[_length]: core.int}),
+html$.Storage[dart.implements] = () => [MapOfString$String()];
+dart.setSignature(html$.Storage, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Storage, [])}),
+  fields: () => ({[_length$3]: core.int}),
   getters: () => ({
     [dartx.keys]: dart.definiteFunctionType(core.Iterable$(core.String), []),
     [dartx.values]: dart.definiteFunctionType(core.Iterable$(core.String), []),
@@ -88350,15 +88353,15 @@
     [__delete__]: dart.definiteFunctionType(core.bool, [dart.dynamic]),
     [__getter__]: dart.definiteFunctionType(core.String, [dart.dynamic]),
     [__setter__]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String]),
-    [_clear]: dart.definiteFunctionType(dart.void, []),
+    [_clear$1]: dart.definiteFunctionType(dart.void, []),
     [_getItem]: dart.definiteFunctionType(core.String, [core.String]),
     [_key]: dart.definiteFunctionType(core.String, [core.int]),
     [_removeItem]: dart.definiteFunctionType(dart.void, [core.String]),
     [_setItem]: dart.definiteFunctionType(dart.void, [core.String, core.String])
   })
 });
-dart.registerExtension(dart.global.Storage, html.Storage);
-html.StorageErrorCallback = dart.typedef('StorageErrorCallback', () => dart.functionType(dart.void, [html.DomError]));
+dart.registerExtension(dart.global.Storage, html$.Storage);
+html$.StorageErrorCallback = dart.typedef('StorageErrorCallback', () => dart.functionType(dart.void, [html$.DomError]));
 const _initStorageEvent = Symbol('_initStorageEvent');
 dart.defineExtensionNames([
   'key',
@@ -88367,7 +88370,7 @@
   'storageArea',
   'url'
 ]);
-html.StorageEvent = class StorageEvent extends html.Event {
+html$.StorageEvent = class StorageEvent extends html$.Event {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
@@ -88376,7 +88379,7 @@
     let newValue = opts && 'newValue' in opts ? opts.newValue : null;
     let url = opts && 'url' in opts ? opts.url : null;
     let storageArea = opts && 'storageArea' in opts ? opts.storageArea : null;
-    let e = html.StorageEvent._check(html.document[_createEvent]("StorageEvent"));
+    let e = html$.StorageEvent._check(html$.document[_createEvent]("StorageEvent"));
     e[_initStorageEvent](type, canBubble, cancelable, key, oldValue, newValue, url, storageArea);
     return e;
   }
@@ -88384,9 +88387,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.StorageEvent._create_1(type, eventInitDict_1);
+      return html$.StorageEvent._create_1(type, eventInitDict_1);
     }
-    return html.StorageEvent._create_2(type);
+    return html$.StorageEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.StorageEvent(type, eventInitDict);
@@ -88413,31 +88416,31 @@
     return this.initStorageEvent.apply(this, args);
   }
 };
-dart.setSignature(html.StorageEvent, {
+dart.setSignature(html$.StorageEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.StorageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, key: core.String, oldValue: core.String, newValue: core.String, url: core.String, storageArea: html.Storage}),
-    _: dart.definiteFunctionType(html.StorageEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.StorageEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, key: core.String, oldValue: core.String, newValue: core.String, url: core.String, storageArea: html$.Storage}),
+    _: dart.definiteFunctionType(html$.StorageEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.key]: core.String,
     [dartx.newValue]: core.String,
     [dartx.oldValue]: core.String,
-    [dartx.storageArea]: html.Storage,
+    [dartx.storageArea]: html$.Storage,
     [dartx.url]: core.String
   }),
-  methods: () => ({[_initStorageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String, core.String, core.String, html.Storage])}),
+  methods: () => ({[_initStorageEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, core.String, core.String, core.String, core.String, html$.Storage])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.StorageEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.StorageEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.StorageEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.StorageEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.StorageEvent, html.StorageEvent);
+dart.registerExtension(dart.global.StorageEvent, html$.StorageEvent);
 dart.defineExtensionNames([
   'quota',
   'usage'
 ]);
-html.StorageInfo = class StorageInfo extends _interceptors.Interceptor {
+html$.StorageInfo = class StorageInfo extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88448,20 +88451,20 @@
     return this.usage;
   }
 };
-dart.setSignature(html.StorageInfo, {
-  constructors: () => ({_: dart.definiteFunctionType(html.StorageInfo, [])}),
+dart.setSignature(html$.StorageInfo, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StorageInfo, [])}),
   fields: () => ({
     [dartx.quota]: core.int,
     [dartx.usage]: core.int
   })
 });
-dart.registerExtension(dart.global.StorageInfo, html.StorageInfo);
+dart.registerExtension(dart.global.StorageInfo, html$.StorageInfo);
 dart.defineExtensionNames([
   'queryInfo',
   'requestPersistentQuota',
   'supportedTypes'
 ]);
-html.StorageQuota = class StorageQuota extends _interceptors.Interceptor {
+html$.StorageQuota = class StorageQuota extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88475,30 +88478,30 @@
     return this.requestPersistentQuota.apply(this, args);
   }
 };
-dart.setSignature(html.StorageQuota, {
-  constructors: () => ({_: dart.definiteFunctionType(html.StorageQuota, [])}),
+dart.setSignature(html$.StorageQuota, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StorageQuota, [])}),
   fields: () => ({[dartx.supportedTypes]: ListOfString()}),
   methods: () => ({
     [dartx.queryInfo]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.requestPersistentQuota]: dart.definiteFunctionType(async.Future, [core.int])
   })
 });
-dart.registerExtension(dart.global.StorageQuota, html.StorageQuota);
-html.StorageQuotaCallback = dart.typedef('StorageQuotaCallback', () => dart.functionType(dart.void, [core.int]));
-html.StorageUsageCallback = dart.typedef('StorageUsageCallback', () => dart.functionType(dart.void, [core.int, core.int]));
-html._StringCallback = dart.typedef('_StringCallback', () => dart.functionType(dart.void, [core.String]));
+dart.registerExtension(dart.global.StorageQuota, html$.StorageQuota);
+html$.StorageQuotaCallback = dart.typedef('StorageQuotaCallback', () => dart.functionType(dart.void, [core.int]));
+html$.StorageUsageCallback = dart.typedef('StorageUsageCallback', () => dart.functionType(dart.void, [core.int, core.int]));
+html$._StringCallback = dart.typedef('_StringCallback', () => dart.functionType(dart.void, [core.String]));
 dart.defineExtensionNames([
   'disabled',
   'media',
   'sheet',
   'type'
 ]);
-html.StyleElement = class StyleElement extends html.HtmlElement {
+html$.StyleElement = class StyleElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.StyleElement._check(html.document[dartx.createElement]("style"));
+    return html$.StyleElement._check(html$.document[dartx.createElement]("style"));
   }
   created() {
     this[dartx.disabled] = null;
@@ -88529,26 +88532,26 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(html.StyleElement, 'created');
-dart.setSignature(html.StyleElement, {
+dart.defineNamedConstructor(html$.StyleElement, 'created');
+dart.setSignature(html$.StyleElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.StyleElement, []),
-    new: dart.definiteFunctionType(html.StyleElement, []),
-    created: dart.definiteFunctionType(html.StyleElement, [])
+    _: dart.definiteFunctionType(html$.StyleElement, []),
+    new: dart.definiteFunctionType(html$.StyleElement, []),
+    created: dart.definiteFunctionType(html$.StyleElement, [])
   }),
   fields: () => ({
     [dartx.disabled]: core.bool,
     [dartx.media]: core.String,
-    [dartx.sheet]: html.StyleSheet,
+    [dartx.sheet]: html$.StyleSheet,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.HTMLStyleElement, html.StyleElement);
+dart.registerExtension(dart.global.HTMLStyleElement, html$.StyleElement);
 dart.defineExtensionNames([
   'matchMedium',
   'type'
 ]);
-html.StyleMedia = class StyleMedia extends _interceptors.Interceptor {
+html$.StyleMedia = class StyleMedia extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88559,22 +88562,22 @@
     return this.matchMedium.apply(this, args);
   }
 };
-dart.setSignature(html.StyleMedia, {
-  constructors: () => ({_: dart.definiteFunctionType(html.StyleMedia, [])}),
+dart.setSignature(html$.StyleMedia, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.StyleMedia, [])}),
   fields: () => ({[dartx.type]: core.String}),
   methods: () => ({[dartx.matchMedium]: dart.definiteFunctionType(core.bool, [core.String])})
 });
-dart.registerExtension(dart.global.StyleMedia, html.StyleMedia);
+dart.registerExtension(dart.global.StyleMedia, html$.StyleMedia);
 dart.defineExtensionNames([
   'registration'
 ]);
-html.SyncEvent = class SyncEvent extends html.ExtendableEvent {
+html$.SyncEvent = class SyncEvent extends html$.ExtendableEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(type, init) {
     let init_1 = html_common.convertDartToNative_Dictionary(init);
-    return html.SyncEvent._create_1(type, init_1);
+    return html$.SyncEvent._create_1(type, init_1);
   }
   static _create_1(type, init) {
     return new self.SyncEvent(type, init);
@@ -88583,23 +88586,23 @@
     return this.registration;
   }
 };
-dart.setSignature(html.SyncEvent, {
+dart.setSignature(html$.SyncEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.SyncEvent, []),
-    new: dart.definiteFunctionType(html.SyncEvent, [core.String, core.Map])
+    _: dart.definiteFunctionType(html$.SyncEvent, []),
+    new: dart.definiteFunctionType(html$.SyncEvent, [core.String, core.Map])
   }),
-  fields: () => ({[dartx.registration]: html.SyncRegistration}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.SyncEvent, [dart.dynamic, dart.dynamic])}),
+  fields: () => ({[dartx.registration]: html$.SyncRegistration}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.SyncEvent, [dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.SyncEvent, html.SyncEvent);
+dart.registerExtension(dart.global.SyncEvent, html$.SyncEvent);
 dart.defineExtensionNames([
   'getRegistration',
   'getRegistrations',
   'permissionState',
   'register'
 ]);
-html.SyncManager = class SyncManager extends _interceptors.Interceptor {
+html$.SyncManager = class SyncManager extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88627,8 +88630,8 @@
     return this.register.apply(this, args);
   }
 };
-dart.setSignature(html.SyncManager, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SyncManager, [])}),
+dart.setSignature(html$.SyncManager, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SyncManager, [])}),
   methods: () => ({
     [dartx.getRegistration]: dart.definiteFunctionType(async.Future, [core.String]),
     [dartx.getRegistrations]: dart.definiteFunctionType(async.Future, []),
@@ -88638,12 +88641,12 @@
     [_register_2]: dart.definiteFunctionType(async.Future, [])
   })
 });
-dart.registerExtension(dart.global.SyncManager, html.SyncManager);
+dart.registerExtension(dart.global.SyncManager, html$.SyncManager);
 dart.defineExtensionNames([
   'unregister',
   'tag'
 ]);
-html.SyncRegistration = class SyncRegistration extends _interceptors.Interceptor {
+html$.SyncRegistration = class SyncRegistration extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -88654,44 +88657,44 @@
     return this.unregister.apply(this, args);
   }
 };
-dart.setSignature(html.SyncRegistration, {
-  constructors: () => ({_: dart.definiteFunctionType(html.SyncRegistration, [])}),
+dart.setSignature(html$.SyncRegistration, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.SyncRegistration, [])}),
   fields: () => ({[dartx.tag]: core.String}),
   methods: () => ({[dartx.unregister]: dart.definiteFunctionType(async.Future, [])})
 });
-dart.registerExtension(dart.global.SyncRegistration, html.SyncRegistration);
-html.TableCaptionElement = class TableCaptionElement extends html.HtmlElement {
+dart.registerExtension(dart.global.SyncRegistration, html$.SyncRegistration);
+html$.TableCaptionElement = class TableCaptionElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TableCaptionElement._check(html.document[dartx.createElement]("caption"));
+    return html$.TableCaptionElement._check(html$.document[dartx.createElement]("caption"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.TableCaptionElement, 'created');
-dart.setSignature(html.TableCaptionElement, {
+dart.defineNamedConstructor(html$.TableCaptionElement, 'created');
+dart.setSignature(html$.TableCaptionElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TableCaptionElement, []),
-    new: dart.definiteFunctionType(html.TableCaptionElement, []),
-    created: dart.definiteFunctionType(html.TableCaptionElement, [])
+    _: dart.definiteFunctionType(html$.TableCaptionElement, []),
+    new: dart.definiteFunctionType(html$.TableCaptionElement, []),
+    created: dart.definiteFunctionType(html$.TableCaptionElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLTableCaptionElement, html.TableCaptionElement);
+dart.registerExtension(dart.global.HTMLTableCaptionElement, html$.TableCaptionElement);
 dart.defineExtensionNames([
   'cellIndex',
   'colSpan',
   'headers',
   'rowSpan'
 ]);
-html.TableCellElement = class TableCellElement extends html.HtmlElement {
+html$.TableCellElement = class TableCellElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TableCellElement._check(html.document[dartx.createElement]("td"));
+    return html$.TableCellElement._check(html$.document[dartx.createElement]("td"));
   }
   created() {
     this[dartx.cellIndex] = null;
@@ -88722,12 +88725,12 @@
     this.rowSpan = value;
   }
 };
-dart.defineNamedConstructor(html.TableCellElement, 'created');
-dart.setSignature(html.TableCellElement, {
+dart.defineNamedConstructor(html$.TableCellElement, 'created');
+dart.setSignature(html$.TableCellElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TableCellElement, []),
-    new: dart.definiteFunctionType(html.TableCellElement, []),
-    created: dart.definiteFunctionType(html.TableCellElement, [])
+    _: dart.definiteFunctionType(html$.TableCellElement, []),
+    new: dart.definiteFunctionType(html$.TableCellElement, []),
+    created: dart.definiteFunctionType(html$.TableCellElement, [])
   }),
   fields: () => ({
     [dartx.cellIndex]: core.int,
@@ -88736,18 +88739,18 @@
     [dartx.rowSpan]: core.int
   })
 });
-dart.registerExtension(dart.global.HTMLTableCellElement, html.TableCellElement);
-dart.registerExtension(dart.global.HTMLTableDataCellElement, html.TableCellElement);
-dart.registerExtension(dart.global.HTMLTableHeaderCellElement, html.TableCellElement);
+dart.registerExtension(dart.global.HTMLTableCellElement, html$.TableCellElement);
+dart.registerExtension(dart.global.HTMLTableDataCellElement, html$.TableCellElement);
+dart.registerExtension(dart.global.HTMLTableHeaderCellElement, html$.TableCellElement);
 dart.defineExtensionNames([
   'span'
 ]);
-html.TableColElement = class TableColElement extends html.HtmlElement {
+html$.TableColElement = class TableColElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TableColElement._check(html.document[dartx.createElement]("col"));
+    return html$.TableColElement._check(html$.document[dartx.createElement]("col"));
   }
   created() {
     this[dartx.span] = null;
@@ -88760,16 +88763,16 @@
     this.span = value;
   }
 };
-dart.defineNamedConstructor(html.TableColElement, 'created');
-dart.setSignature(html.TableColElement, {
+dart.defineNamedConstructor(html$.TableColElement, 'created');
+dart.setSignature(html$.TableColElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TableColElement, []),
-    new: dart.definiteFunctionType(html.TableColElement, []),
-    created: dart.definiteFunctionType(html.TableColElement, [])
+    _: dart.definiteFunctionType(html$.TableColElement, []),
+    new: dart.definiteFunctionType(html$.TableColElement, []),
+    created: dart.definiteFunctionType(html$.TableColElement, [])
   }),
   fields: () => ({[dartx.span]: core.int})
 });
-dart.registerExtension(dart.global.HTMLTableColElement, html.TableColElement);
+dart.registerExtension(dart.global.HTMLTableColElement, html$.TableColElement);
 const _tBodies = Symbol('_tBodies');
 const _rows = Symbol('_rows');
 const _createCaption = Symbol('_createCaption');
@@ -88796,7 +88799,7 @@
   'tFoot',
   'tHead'
 ]);
-html.TableElement = class TableElement extends html.HtmlElement {
+html$.TableElement = class TableElement extends html$.HtmlElement {
   get [dartx.tBodies]() {
     return new (_WrappedListOfTableSectionElement())(this[_tBodies]);
   }
@@ -88807,27 +88810,27 @@
     return this[dartx.insertRow](-1);
   }
   [dartx.createCaption]() {
-    return html.TableCaptionElement._check(this[_createCaption]());
+    return html$.TableCaptionElement._check(this[_createCaption]());
   }
   [dartx.createTBody]() {
     return this[_createTBody]();
   }
   [dartx.createTFoot]() {
-    return html.TableSectionElement._check(this[_createTFoot]());
+    return html$.TableSectionElement._check(this[_createTFoot]());
   }
   [dartx.createTHead]() {
-    return html.TableSectionElement._check(this[_createTHead]());
+    return html$.TableSectionElement._check(this[_createTHead]());
   }
   [dartx.insertRow](index) {
-    return html.TableRowElement._check(this[_insertRow](index));
+    return html$.TableRowElement._check(this[_insertRow](index));
   }
   [_createTBody]() {
     if (!!this.createTBody) {
       return this[_nativeCreateTBody]();
     }
-    let tbody = html.Element.tag('tbody');
+    let tbody = html$.Element.tag('tbody');
     this[dartx.children][dartx.add](tbody);
-    return html.TableSectionElement._check(tbody);
+    return html$.TableSectionElement._check(tbody);
   }
   [_nativeCreateTBody](...args) {
     return this.createTBody.apply(this, args);
@@ -88835,12 +88838,12 @@
   [dartx.createFragment](html, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    if (dart.test(html.Range.supportsCreateContextualFragment)) {
+    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
       return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
     }
     let contextualHtml = dart.str`<table>${html}</table>`;
-    let table = html.Element.html(contextualHtml, {validator: validator, treeSanitizer: treeSanitizer});
-    let fragment = html.DocumentFragment.new();
+    let table = html$.Element.html(contextualHtml, {validator: validator, treeSanitizer: treeSanitizer});
+    let fragment = html$.DocumentFragment.new();
     fragment[dartx.nodes][dartx.addAll](table[dartx.nodes]);
     return fragment;
   }
@@ -88848,7 +88851,7 @@
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TableElement._check(html.document[dartx.createElement]("table"));
+    return html$.TableElement._check(html$.document[dartx.createElement]("table"));
   }
   created() {
     this[dartx.caption] = null;
@@ -88907,44 +88910,44 @@
     return this.insertRow.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.TableElement, 'created');
-dart.setSignature(html.TableElement, {
+dart.defineNamedConstructor(html$.TableElement, 'created');
+dart.setSignature(html$.TableElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TableElement, []),
-    new: dart.definiteFunctionType(html.TableElement, []),
-    created: dart.definiteFunctionType(html.TableElement, [])
+    _: dart.definiteFunctionType(html$.TableElement, []),
+    new: dart.definiteFunctionType(html$.TableElement, []),
+    created: dart.definiteFunctionType(html$.TableElement, [])
   }),
   fields: () => ({
-    [dartx.caption]: html.TableCaptionElement,
+    [dartx.caption]: html$.TableCaptionElement,
     [_rows]: ListOfNode(),
     [_tBodies]: ListOfNode(),
-    [dartx.tFoot]: html.TableSectionElement,
-    [dartx.tHead]: html.TableSectionElement
+    [dartx.tFoot]: html$.TableSectionElement,
+    [dartx.tHead]: html$.TableSectionElement
   }),
   getters: () => ({
-    [dartx.tBodies]: dart.definiteFunctionType(core.List$(html.TableSectionElement), []),
-    [dartx.rows]: dart.definiteFunctionType(core.List$(html.TableRowElement), [])
+    [dartx.tBodies]: dart.definiteFunctionType(core.List$(html$.TableSectionElement), []),
+    [dartx.rows]: dart.definiteFunctionType(core.List$(html$.TableRowElement), [])
   }),
   methods: () => ({
-    [dartx.addRow]: dart.definiteFunctionType(html.TableRowElement, []),
-    [dartx.createCaption]: dart.definiteFunctionType(html.TableCaptionElement, []),
-    [dartx.createTBody]: dart.definiteFunctionType(html.TableSectionElement, []),
-    [dartx.createTFoot]: dart.definiteFunctionType(html.TableSectionElement, []),
-    [dartx.createTHead]: dart.definiteFunctionType(html.TableSectionElement, []),
-    [dartx.insertRow]: dart.definiteFunctionType(html.TableRowElement, [core.int]),
-    [_createTBody]: dart.definiteFunctionType(html.TableSectionElement, []),
-    [_nativeCreateTBody]: dart.definiteFunctionType(html.TableSectionElement, []),
-    [_createCaption]: dart.definiteFunctionType(html.HtmlElement, []),
-    [_createTFoot]: dart.definiteFunctionType(html.HtmlElement, []),
-    [_createTHead]: dart.definiteFunctionType(html.HtmlElement, []),
+    [dartx.addRow]: dart.definiteFunctionType(html$.TableRowElement, []),
+    [dartx.createCaption]: dart.definiteFunctionType(html$.TableCaptionElement, []),
+    [dartx.createTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [dartx.createTFoot]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [dartx.createTHead]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [dartx.insertRow]: dart.definiteFunctionType(html$.TableRowElement, [core.int]),
+    [_createTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [_nativeCreateTBody]: dart.definiteFunctionType(html$.TableSectionElement, []),
+    [_createCaption]: dart.definiteFunctionType(html$.HtmlElement, []),
+    [_createTFoot]: dart.definiteFunctionType(html$.HtmlElement, []),
+    [_createTHead]: dart.definiteFunctionType(html$.HtmlElement, []),
     [dartx.deleteCaption]: dart.definiteFunctionType(dart.void, []),
     [dartx.deleteRow]: dart.definiteFunctionType(dart.void, [core.int]),
     [dartx.deleteTFoot]: dart.definiteFunctionType(dart.void, []),
     [dartx.deleteTHead]: dart.definiteFunctionType(dart.void, []),
-    [_insertRow]: dart.definiteFunctionType(html.HtmlElement, [], [core.int])
+    [_insertRow]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
   })
 });
-dart.registerExtension(dart.global.HTMLTableElement, html.TableElement);
+dart.registerExtension(dart.global.HTMLTableElement, html$.TableElement);
 const _cells = Symbol('_cells');
 const _insertCell = Symbol('_insertCell');
 dart.defineExtensionNames([
@@ -88956,7 +88959,7 @@
   'rowIndex',
   'sectionRowIndex'
 ]);
-html.TableRowElement = class TableRowElement extends html.HtmlElement {
+html$.TableRowElement = class TableRowElement extends html$.HtmlElement {
   get [dartx.cells]() {
     return new (_WrappedListOfTableCellElement())(this[_cells]);
   }
@@ -88964,16 +88967,16 @@
     return this[dartx.insertCell](-1);
   }
   [dartx.insertCell](index) {
-    return html.TableCellElement._check(this[_insertCell](index));
+    return html$.TableCellElement._check(this[_insertCell](index));
   }
   [dartx.createFragment](html, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    if (dart.test(html.Range.supportsCreateContextualFragment)) {
+    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
       return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
     }
-    let fragment = html.DocumentFragment.new();
-    let section = html.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
+    let fragment = html$.DocumentFragment.new();
+    let section = html$.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
     let row = section[dartx.nodes][dartx.single];
     fragment[dartx.nodes][dartx.addAll](row[dartx.nodes]);
     return fragment;
@@ -88982,7 +88985,7 @@
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TableRowElement._check(html.document[dartx.createElement]("tr"));
+    return html$.TableRowElement._check(html$.document[dartx.createElement]("tr"));
   }
   created() {
     this[_cells] = null;
@@ -89006,27 +89009,27 @@
     return this.insertCell.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.TableRowElement, 'created');
-dart.setSignature(html.TableRowElement, {
+dart.defineNamedConstructor(html$.TableRowElement, 'created');
+dart.setSignature(html$.TableRowElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TableRowElement, []),
-    new: dart.definiteFunctionType(html.TableRowElement, []),
-    created: dart.definiteFunctionType(html.TableRowElement, [])
+    _: dart.definiteFunctionType(html$.TableRowElement, []),
+    new: dart.definiteFunctionType(html$.TableRowElement, []),
+    created: dart.definiteFunctionType(html$.TableRowElement, [])
   }),
   fields: () => ({
     [_cells]: ListOfNode(),
     [dartx.rowIndex]: core.int,
     [dartx.sectionRowIndex]: core.int
   }),
-  getters: () => ({[dartx.cells]: dart.definiteFunctionType(core.List$(html.TableCellElement), [])}),
+  getters: () => ({[dartx.cells]: dart.definiteFunctionType(core.List$(html$.TableCellElement), [])}),
   methods: () => ({
-    [dartx.addCell]: dart.definiteFunctionType(html.TableCellElement, []),
-    [dartx.insertCell]: dart.definiteFunctionType(html.TableCellElement, [core.int]),
+    [dartx.addCell]: dart.definiteFunctionType(html$.TableCellElement, []),
+    [dartx.insertCell]: dart.definiteFunctionType(html$.TableCellElement, [core.int]),
     [dartx.deleteCell]: dart.definiteFunctionType(dart.void, [core.int]),
-    [_insertCell]: dart.definiteFunctionType(html.HtmlElement, [], [core.int])
+    [_insertCell]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
   })
 });
-dart.registerExtension(dart.global.HTMLTableRowElement, html.TableRowElement);
+dart.registerExtension(dart.global.HTMLTableRowElement, html$.TableRowElement);
 dart.defineExtensionNames([
   'rows',
   'addRow',
@@ -89034,7 +89037,7 @@
   'createFragment',
   'deleteRow'
 ]);
-html.TableSectionElement = class TableSectionElement extends html.HtmlElement {
+html$.TableSectionElement = class TableSectionElement extends html$.HtmlElement {
   get [dartx.rows]() {
     return new (_WrappedListOfTableRowElement())(this[_rows]);
   }
@@ -89042,16 +89045,16 @@
     return this[dartx.insertRow](-1);
   }
   [dartx.insertRow](index) {
-    return html.TableRowElement._check(this[_insertRow](index));
+    return html$.TableRowElement._check(this[_insertRow](index));
   }
   [dartx.createFragment](html, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
-    if (dart.test(html.Range.supportsCreateContextualFragment)) {
+    if (dart.test(html$.Range.supportsCreateContextualFragment)) {
       return super[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer});
     }
-    let fragment = html.DocumentFragment.new();
-    let section = html.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
+    let fragment = html$.DocumentFragment.new();
+    let section = html$.TableElement.new()[dartx.createFragment](html, {validator: validator, treeSanitizer: treeSanitizer})[dartx.nodes][dartx.single];
     fragment[dartx.nodes][dartx.addAll](section[dartx.nodes]);
     return fragment;
   }
@@ -89072,39 +89075,39 @@
     return this.insertRow.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.TableSectionElement, 'created');
-dart.setSignature(html.TableSectionElement, {
+dart.defineNamedConstructor(html$.TableSectionElement, 'created');
+dart.setSignature(html$.TableSectionElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TableSectionElement, []),
-    created: dart.definiteFunctionType(html.TableSectionElement, [])
+    _: dart.definiteFunctionType(html$.TableSectionElement, []),
+    created: dart.definiteFunctionType(html$.TableSectionElement, [])
   }),
   fields: () => ({[_rows]: ListOfNode()}),
-  getters: () => ({[dartx.rows]: dart.definiteFunctionType(core.List$(html.TableRowElement), [])}),
+  getters: () => ({[dartx.rows]: dart.definiteFunctionType(core.List$(html$.TableRowElement), [])}),
   methods: () => ({
-    [dartx.addRow]: dart.definiteFunctionType(html.TableRowElement, []),
-    [dartx.insertRow]: dart.definiteFunctionType(html.TableRowElement, [core.int]),
+    [dartx.addRow]: dart.definiteFunctionType(html$.TableRowElement, []),
+    [dartx.insertRow]: dart.definiteFunctionType(html$.TableRowElement, [core.int]),
     [dartx.deleteRow]: dart.definiteFunctionType(dart.void, [core.int]),
-    [_insertRow]: dart.definiteFunctionType(html.HtmlElement, [], [core.int])
+    [_insertRow]: dart.definiteFunctionType(html$.HtmlElement, [], [core.int])
   })
 });
-dart.registerExtension(dart.global.HTMLTableSectionElement, html.TableSectionElement);
+dart.registerExtension(dart.global.HTMLTableSectionElement, html$.TableSectionElement);
 dart.defineExtensionNames([
   'setInnerHtml',
   'content'
 ]);
-html.TemplateElement = class TemplateElement extends html.HtmlElement {
+html$.TemplateElement = class TemplateElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TemplateElement._check(html.document[dartx.createElement]("template"));
+    return html$.TemplateElement._check(html$.document[dartx.createElement]("template"));
   }
   created() {
     this[dartx.content] = null;
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('template');
+    return html$.Element.isTagSupported('template');
   }
   get [dartx.content]() {
     return this.content;
@@ -89117,17 +89120,17 @@
     this[dartx.content][dartx.append](fragment);
   }
 };
-dart.defineNamedConstructor(html.TemplateElement, 'created');
-dart.setSignature(html.TemplateElement, {
+dart.defineNamedConstructor(html$.TemplateElement, 'created');
+dart.setSignature(html$.TemplateElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TemplateElement, []),
-    new: dart.definiteFunctionType(html.TemplateElement, []),
-    created: dart.definiteFunctionType(html.TemplateElement, [])
+    _: dart.definiteFunctionType(html$.TemplateElement, []),
+    new: dart.definiteFunctionType(html$.TemplateElement, []),
+    created: dart.definiteFunctionType(html$.TemplateElement, [])
   }),
-  fields: () => ({[dartx.content]: html.DocumentFragment}),
+  fields: () => ({[dartx.content]: html$.DocumentFragment}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.HTMLTemplateElement, html.TemplateElement);
+dart.registerExtension(dart.global.HTMLTemplateElement, html$.TemplateElement);
 dart.defineExtensionNames([
   'checkValidity',
   'reportValidity',
@@ -89162,12 +89165,12 @@
   'willValidate',
   'wrap'
 ]);
-html.TextAreaElement = class TextAreaElement extends html.HtmlElement {
+html$.TextAreaElement = class TextAreaElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TextAreaElement._check(html.document[dartx.createElement]("textarea"));
+    return html$.TextAreaElement._check(html$.document[dartx.createElement]("textarea"));
   }
   created() {
     this[dartx.autocapitalize] = null;
@@ -89352,12 +89355,12 @@
     return this.setSelectionRange.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.TextAreaElement, 'created');
-dart.setSignature(html.TextAreaElement, {
+dart.defineNamedConstructor(html$.TextAreaElement, 'created');
+dart.setSignature(html$.TextAreaElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TextAreaElement, []),
-    new: dart.definiteFunctionType(html.TextAreaElement, []),
-    created: dart.definiteFunctionType(html.TextAreaElement, [])
+    _: dart.definiteFunctionType(html$.TextAreaElement, []),
+    new: dart.definiteFunctionType(html$.TextAreaElement, []),
+    created: dart.definiteFunctionType(html$.TextAreaElement, [])
   }),
   fields: () => ({
     [dartx.autocapitalize]: core.String,
@@ -89366,7 +89369,7 @@
     [dartx.defaultValue]: core.String,
     [dartx.dirName]: core.String,
     [dartx.disabled]: core.bool,
-    [dartx.form]: html.FormElement,
+    [dartx.form]: html$.FormElement,
     [dartx.inputMode]: core.String,
     [dartx.labels]: ListOfNode(),
     [dartx.maxLength]: core.int,
@@ -89382,7 +89385,7 @@
     [dartx.textLength]: core.int,
     [dartx.type]: core.String,
     [dartx.validationMessage]: core.String,
-    [dartx.validity]: html.ValidityState,
+    [dartx.validity]: html$.ValidityState,
     [dartx.value]: core.String,
     [dartx.willValidate]: core.bool,
     [dartx.wrap]: core.String
@@ -89396,21 +89399,21 @@
     [dartx.setSelectionRange]: dart.definiteFunctionType(dart.void, [core.int, core.int], [core.String])
   })
 });
-dart.registerExtension(dart.global.HTMLTextAreaElement, html.TextAreaElement);
+dart.registerExtension(dart.global.HTMLTextAreaElement, html$.TextAreaElement);
 const _initTextEvent = Symbol('_initTextEvent');
 dart.defineExtensionNames([
   'data'
 ]);
-html.TextEvent = class TextEvent extends html.UIEvent {
+html$.TextEvent = class TextEvent extends html$.UIEvent {
   static new(type, opts) {
     let canBubble = opts && 'canBubble' in opts ? opts.canBubble : false;
     let cancelable = opts && 'cancelable' in opts ? opts.cancelable : false;
     let view = opts && 'view' in opts ? opts.view : null;
     let data = opts && 'data' in opts ? opts.data : null;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
-    let e = html.TextEvent._check(html.document[_createEvent]("TextEvent"));
+    let e = html$.TextEvent._check(html$.document[_createEvent]("TextEvent"));
     e[_initTextEvent](type, canBubble, cancelable, view, data);
     return e;
   }
@@ -89424,15 +89427,15 @@
     return this.initTextEvent.apply(this, args);
   }
 };
-dart.setSignature(html.TextEvent, {
+dart.setSignature(html$.TextEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.TextEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html.Window, data: core.String}),
-    _: dart.definiteFunctionType(html.TextEvent, [])
+    new: dart.definiteFunctionType(html$.TextEvent, [core.String], {canBubble: core.bool, cancelable: core.bool, view: html$.Window, data: core.String}),
+    _: dart.definiteFunctionType(html$.TextEvent, [])
   }),
   fields: () => ({[dartx.data]: core.String}),
-  methods: () => ({[_initTextEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.String])})
+  methods: () => ({[_initTextEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String])})
 });
-dart.registerExtension(dart.global.TextEvent, html.TextEvent);
+dart.registerExtension(dart.global.TextEvent, html$.TextEvent);
 dart.defineExtensionNames([
   'actualBoundingBoxAscent',
   'actualBoundingBoxDescent',
@@ -89447,7 +89450,7 @@
   'ideographicBaseline',
   'width'
 ]);
-html.TextMetrics = class TextMetrics extends _interceptors.Interceptor {
+html$.TextMetrics = class TextMetrics extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89488,8 +89491,8 @@
     return this.width;
   }
 };
-dart.setSignature(html.TextMetrics, {
-  constructors: () => ({_: dart.definiteFunctionType(html.TextMetrics, [])}),
+dart.setSignature(html$.TextMetrics, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextMetrics, [])}),
   fields: () => ({
     [dartx.actualBoundingBoxAscent]: core.double,
     [dartx.actualBoundingBoxDescent]: core.double,
@@ -89505,7 +89508,7 @@
     [dartx.width]: core.double
   })
 });
-dart.registerExtension(dart.global.TextMetrics, html.TextMetrics);
+dart.registerExtension(dart.global.TextMetrics, html$.TextMetrics);
 dart.defineExtensionNames([
   'addCue',
   'addRegion',
@@ -89521,7 +89524,7 @@
   'mode',
   'regions'
 ]);
-html.TextTrack = class TextTrack extends html.EventTarget {
+html$.TextTrack = class TextTrack extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89565,36 +89568,36 @@
     return this.removeRegion.apply(this, args);
   }
   get [dartx.onCueChange]() {
-    return html.TextTrack.cueChangeEvent.forTarget(this);
+    return html$.TextTrack.cueChangeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.TextTrack, {
-  constructors: () => ({_: dart.definiteFunctionType(html.TextTrack, [])}),
+dart.setSignature(html$.TextTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrack, [])}),
   fields: () => ({
-    [dartx.activeCues]: html.TextTrackCueList,
-    [dartx.cues]: html.TextTrackCueList,
+    [dartx.activeCues]: html$.TextTrackCueList,
+    [dartx.cues]: html$.TextTrackCueList,
     [dartx.id]: core.String,
     [dartx.kind]: core.String,
     [dartx.label]: core.String,
     [dartx.language]: core.String,
     [dartx.mode]: core.String,
-    [dartx.regions]: html.VttRegionList
+    [dartx.regions]: html$.VttRegionList
   }),
-  getters: () => ({[dartx.onCueChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onCueChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
-    [dartx.addCue]: dart.definiteFunctionType(dart.void, [html.TextTrackCue]),
-    [dartx.addRegion]: dart.definiteFunctionType(dart.void, [html.VttRegion]),
-    [dartx.removeCue]: dart.definiteFunctionType(dart.void, [html.TextTrackCue]),
-    [dartx.removeRegion]: dart.definiteFunctionType(dart.void, [html.VttRegion])
+    [dartx.addCue]: dart.definiteFunctionType(dart.void, [html$.TextTrackCue]),
+    [dartx.addRegion]: dart.definiteFunctionType(dart.void, [html$.VttRegion]),
+    [dartx.removeCue]: dart.definiteFunctionType(dart.void, [html$.TextTrackCue]),
+    [dartx.removeRegion]: dart.definiteFunctionType(dart.void, [html$.VttRegion])
   }),
   sfields: () => ({cueChangeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.TextTrack, {
+dart.defineLazy(html$.TextTrack, {
   get cueChangeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('cuechange'));
   }
 });
-dart.registerExtension(dart.global.TextTrack, html.TextTrack);
+dart.registerExtension(dart.global.TextTrack, html$.TextTrack);
 dart.defineExtensionNames([
   'onEnter',
   'onExit',
@@ -89604,7 +89607,7 @@
   'startTime',
   'track'
 ]);
-html.TextTrackCue = class TextTrackCue extends html.EventTarget {
+html$.TextTrackCue = class TextTrackCue extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89636,31 +89639,31 @@
     return this.track;
   }
   get [dartx.onEnter]() {
-    return html.TextTrackCue.enterEvent.forTarget(this);
+    return html$.TextTrackCue.enterEvent.forTarget(this);
   }
   get [dartx.onExit]() {
-    return html.TextTrackCue.exitEvent.forTarget(this);
+    return html$.TextTrackCue.exitEvent.forTarget(this);
   }
 };
-dart.setSignature(html.TextTrackCue, {
-  constructors: () => ({_: dart.definiteFunctionType(html.TextTrackCue, [])}),
+dart.setSignature(html$.TextTrackCue, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackCue, [])}),
   fields: () => ({
     [dartx.endTime]: core.num,
     [dartx.id]: core.String,
     [dartx.pauseOnExit]: core.bool,
     [dartx.startTime]: core.num,
-    [dartx.track]: html.TextTrack
+    [dartx.track]: html$.TextTrack
   }),
   getters: () => ({
-    [dartx.onEnter]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onExit]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onEnter]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onExit]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   sfields: () => ({
     enterEvent: EventStreamProviderOfEvent(),
     exitEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineLazy(html.TextTrackCue, {
+dart.defineLazy(html$.TextTrackCue, {
   get enterEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('enter'));
   },
@@ -89668,7 +89671,7 @@
     return dart.const(new (EventStreamProviderOfEvent())('exit'));
   }
 });
-dart.registerExtension(dart.global.TextTrackCue, html.TextTrackCue);
+dart.registerExtension(dart.global.TextTrackCue, html$.TextTrackCue);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -89681,7 +89684,7 @@
   'getCueById',
   'item'
 ]);
-html.TextTrackCueList = class TextTrackCueList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.TextTrackCue), html.ImmutableListMixin$(html.TextTrackCue)) {
+html$.TextTrackCueList = class TextTrackCueList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.TextTrackCue), html$.ImmutableListMixin$(html$.TextTrackCue)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89730,19 +89733,19 @@
     return this.item.apply(this, args);
   }
 };
-html.TextTrackCueList[dart.implements] = () => [ListOfTextTrackCue(), _js_helper.JavaScriptIndexingBehavior];
-dart.setSignature(html.TextTrackCueList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.TextTrackCueList, [])}),
+html$.TextTrackCueList[dart.implements] = () => [ListOfTextTrackCue(), _js_helper.JavaScriptIndexingBehavior];
+dart.setSignature(html$.TextTrackCueList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackCueList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.TextTrackCue, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.TextTrackCue]),
-    [dartx.getCueById]: dart.definiteFunctionType(html.TextTrackCue, [core.String]),
-    [dartx.item]: dart.definiteFunctionType(html.TextTrackCue, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.TextTrackCue, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.TextTrackCue]),
+    [dartx.getCueById]: dart.definiteFunctionType(html$.TextTrackCue, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.TextTrackCue, [core.int])
   })
 });
-dart.registerExtension(dart.global.TextTrackCueList, html.TextTrackCueList);
+dart.registerExtension(dart.global.TextTrackCueList, html$.TextTrackCueList);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -89757,7 +89760,7 @@
   'onAddTrack',
   'onChange'
 ]);
-html.TextTrackList = class TextTrackList extends dart.mixin(html.EventTarget, collection.ListMixin$(html.TextTrack), html.ImmutableListMixin$(html.TextTrack)) {
+html$.TextTrackList = class TextTrackList extends dart.mixin(html$.EventTarget, collection.ListMixin$(html$.TextTrack), html$.ImmutableListMixin$(html$.TextTrack)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89806,33 +89809,33 @@
     return this.item.apply(this, args);
   }
   get [dartx.onAddTrack]() {
-    return html.TextTrackList.addTrackEvent.forTarget(this);
+    return html$.TextTrackList.addTrackEvent.forTarget(this);
   }
   get [dartx.onChange]() {
-    return html.TextTrackList.changeEvent.forTarget(this);
+    return html$.TextTrackList.changeEvent.forTarget(this);
   }
 };
-html.TextTrackList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTextTrack()];
-dart.setSignature(html.TextTrackList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.TextTrackList, [])}),
+html$.TextTrackList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTextTrack()];
+dart.setSignature(html$.TextTrackList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TextTrackList, [])}),
   getters: () => ({
     [dartx.length]: dart.definiteFunctionType(core.int, []),
-    [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html.TrackEvent), []),
-    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onAddTrack]: dart.definiteFunctionType(async.Stream$(html$.TrackEvent), []),
+    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.TextTrack, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.TextTrack]),
-    [dartx.getTrackById]: dart.definiteFunctionType(html.TextTrack, [core.String]),
-    [dartx.item]: dart.definiteFunctionType(html.TextTrack, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.TextTrack, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.TextTrack]),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.TextTrack, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.TextTrack, [core.int])
   }),
   sfields: () => ({
     addTrackEvent: EventStreamProviderOfTrackEvent(),
     changeEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineLazy(html.TextTrackList, {
+dart.defineLazy(html$.TextTrackList, {
   get addTrackEvent() {
     return dart.const(new (EventStreamProviderOfTrackEvent())('addtrack'));
   },
@@ -89840,13 +89843,13 @@
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.TextTrackList, html.TextTrackList);
+dart.registerExtension(dart.global.TextTrackList, html$.TextTrackList);
 dart.defineExtensionNames([
   'end',
   'start',
   'length'
 ]);
-html.TimeRanges = class TimeRanges extends _interceptors.Interceptor {
+html$.TimeRanges = class TimeRanges extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89860,36 +89863,36 @@
     return this.start.apply(this, args);
   }
 };
-dart.setSignature(html.TimeRanges, {
-  constructors: () => ({_: dart.definiteFunctionType(html.TimeRanges, [])}),
+dart.setSignature(html$.TimeRanges, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.TimeRanges, [])}),
   fields: () => ({[dartx.length]: core.int}),
   methods: () => ({
     [dartx.end]: dart.definiteFunctionType(core.double, [core.int]),
     [dartx.start]: dart.definiteFunctionType(core.double, [core.int])
   })
 });
-dart.registerExtension(dart.global.TimeRanges, html.TimeRanges);
-html.TimeoutHandler = dart.typedef('TimeoutHandler', () => dart.functionType(dart.void, []));
-html.TitleElement = class TitleElement extends html.HtmlElement {
+dart.registerExtension(dart.global.TimeRanges, html$.TimeRanges);
+html$.TimeoutHandler = dart.typedef('TimeoutHandler', () => dart.functionType(dart.void, []));
+html$.TitleElement = class TitleElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TitleElement._check(html.document[dartx.createElement]("title"));
+    return html$.TitleElement._check(html$.document[dartx.createElement]("title"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.TitleElement, 'created');
-dart.setSignature(html.TitleElement, {
+dart.defineNamedConstructor(html$.TitleElement, 'created');
+dart.setSignature(html$.TitleElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TitleElement, []),
-    new: dart.definiteFunctionType(html.TitleElement, []),
-    created: dart.definiteFunctionType(html.TitleElement, [])
+    _: dart.definiteFunctionType(html$.TitleElement, []),
+    new: dart.definiteFunctionType(html$.TitleElement, []),
+    created: dart.definiteFunctionType(html$.TitleElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLTitleElement, html.TitleElement);
+dart.registerExtension(dart.global.HTMLTitleElement, html$.TitleElement);
 const _radiusX = Symbol('_radiusX');
 const _radiusY = Symbol('_radiusY');
 const __clientX = Symbol('__clientX');
@@ -89911,7 +89914,7 @@
   'identifier',
   'rotationAngle'
 ]);
-html.Touch = class Touch extends _interceptors.Interceptor {
+html$.Touch = class Touch extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -89949,7 +89952,7 @@
     return this.screenY;
   }
   get [dartx.target]() {
-    return html._convertNativeToDart_EventTarget(this[_get_target]);
+    return html$._convertNativeToDart_EventTarget(this[_get_target]);
   }
   get [_get_target]() {
     return this.target;
@@ -89994,8 +89997,8 @@
     return this[__radiusY];
   }
 };
-dart.setSignature(html.Touch, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Touch, [])}),
+dart.setSignature(html$.Touch, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Touch, [])}),
   fields: () => ({
     [_clientX]: core.double,
     [_clientY]: core.double,
@@ -90011,7 +90014,7 @@
     [_get_target]: dart.dynamic
   }),
   getters: () => ({
-    [dartx.target]: dart.definiteFunctionType(html.EventTarget, []),
+    [dartx.target]: dart.definiteFunctionType(html$.EventTarget, []),
     [__clientX]: dart.definiteFunctionType(core.int, []),
     [__clientY]: dart.definiteFunctionType(core.int, []),
     [__screenX]: dart.definiteFunctionType(core.int, []),
@@ -90027,7 +90030,7 @@
     [dartx.radiusY]: dart.definiteFunctionType(core.int, [])
   })
 });
-dart.registerExtension(dart.global.Touch, html.Touch);
+dart.registerExtension(dart.global.Touch, html$.Touch);
 const _initTouchEvent = Symbol('_initTouchEvent');
 dart.defineExtensionNames([
   'altKey',
@@ -90038,7 +90041,7 @@
   'targetTouches',
   'touches'
 ]);
-html.TouchEvent = class TouchEvent extends html.UIEvent {
+html$.TouchEvent = class TouchEvent extends html$.UIEvent {
   static new(touches, targetTouches, changedTouches, type, opts) {
     let view = opts && 'view' in opts ? opts.view : null;
     let screenX = opts && 'screenX' in opts ? opts.screenX : 0;
@@ -90050,9 +90053,9 @@
     let shiftKey = opts && 'shiftKey' in opts ? opts.shiftKey : false;
     let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
-    let e = html.TouchEvent._check(html.document[_createEvent]("TouchEvent"));
+    let e = html$.TouchEvent._check(html$.document[_createEvent]("TouchEvent"));
     e[_initTouchEvent](touches, targetTouches, changedTouches, type, view, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey);
     return e;
   }
@@ -90087,24 +90090,24 @@
     return html_common.Device.isEventTypeSupported('TouchEvent');
   }
 };
-dart.setSignature(html.TouchEvent, {
+dart.setSignature(html$.TouchEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.TouchEvent, [html.TouchList, html.TouchList, html.TouchList, core.String], {view: html.Window, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
-    _: dart.definiteFunctionType(html.TouchEvent, [])
+    new: dart.definiteFunctionType(html$.TouchEvent, [html$.TouchList, html$.TouchList, html$.TouchList, core.String], {view: html$.Window, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool}),
+    _: dart.definiteFunctionType(html$.TouchEvent, [])
   }),
   fields: () => ({
     [dartx.altKey]: core.bool,
-    [dartx.changedTouches]: html.TouchList,
+    [dartx.changedTouches]: html$.TouchList,
     [dartx.ctrlKey]: core.bool,
     [dartx.metaKey]: core.bool,
     [dartx.shiftKey]: core.bool,
-    [dartx.targetTouches]: html.TouchList,
-    [dartx.touches]: html.TouchList
+    [dartx.targetTouches]: html$.TouchList,
+    [dartx.touches]: html$.TouchList
   }),
-  methods: () => ({[_initTouchEvent]: dart.definiteFunctionType(dart.void, [html.TouchList, html.TouchList, html.TouchList, core.String, html.Window, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool])}),
+  methods: () => ({[_initTouchEvent]: dart.definiteFunctionType(dart.void, [html$.TouchList, html$.TouchList, html$.TouchList, core.String, html$.Window, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.TouchEvent, html.TouchEvent);
+dart.registerExtension(dart.global.TouchEvent, html$.TouchEvent);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -90116,7 +90119,7 @@
   'elementAt',
   'item'
 ]);
-html.TouchList = class TouchList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.Touch), html.ImmutableListMixin$(html.Touch)) {
+html$.TouchList = class TouchList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Touch), html$.ImmutableListMixin$(html$.Touch)) {
   static new() {
     return null;
   }
@@ -90168,22 +90171,22 @@
     return this.item.apply(this, args);
   }
 };
-html.TouchList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTouch()];
-dart.setSignature(html.TouchList, {
+html$.TouchList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfTouch()];
+dart.setSignature(html$.TouchList, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.TouchList, []),
-    _: dart.definiteFunctionType(html.TouchList, [])
+    new: dart.definiteFunctionType(html$.TouchList, []),
+    _: dart.definiteFunctionType(html$.TouchList, [])
   }),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.Touch, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.Touch]),
-    [dartx.item]: dart.definiteFunctionType(html.Touch, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.Touch, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Touch]),
+    [dartx.item]: dart.definiteFunctionType(html$.Touch, [core.int])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.TouchList, html.TouchList);
+dart.registerExtension(dart.global.TouchList, html$.TouchList);
 dart.defineExtensionNames([
   'byteStreamTrackID',
   'kinds',
@@ -90191,7 +90194,7 @@
   'language',
   'type'
 ]);
-html.TrackDefault = class TrackDefault extends _interceptors.Interceptor {
+html$.TrackDefault = class TrackDefault extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -90199,10 +90202,10 @@
     if (byteStreamTrackID === void 0) byteStreamTrackID = null;
     if (byteStreamTrackID != null) {
       let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
-      return html.TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
+      return html$.TrackDefault._create_1(type, language, label, kinds_1, byteStreamTrackID);
     }
     let kinds_1 = html_common.convertDartToNative_StringArray(kinds);
-    return html.TrackDefault._create_2(type, language, label, kinds_1);
+    return html$.TrackDefault._create_2(type, language, label, kinds_1);
   }
   static _create_1(type, language, label, kinds, byteStreamTrackID) {
     return new self.TrackDefault(type, language, label, kinds, byteStreamTrackID);
@@ -90226,10 +90229,10 @@
     return this.type;
   }
 };
-dart.setSignature(html.TrackDefault, {
+dart.setSignature(html$.TrackDefault, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TrackDefault, []),
-    new: dart.definiteFunctionType(html.TrackDefault, [core.String, core.String, core.String, ListOfString()], [core.String])
+    _: dart.definiteFunctionType(html$.TrackDefault, []),
+    new: dart.definiteFunctionType(html$.TrackDefault, [core.String, core.String, core.String, ListOfString()], [core.String])
   }),
   fields: () => ({
     [dartx.byteStreamTrackID]: core.String,
@@ -90239,26 +90242,26 @@
     [dartx.type]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TrackDefault, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.TrackDefault, html.TrackDefault);
+dart.registerExtension(dart.global.TrackDefault, html$.TrackDefault);
 dart.defineExtensionNames([
   'item',
   'length'
 ]);
-html.TrackDefaultList = class TrackDefaultList extends _interceptors.Interceptor {
+html$.TrackDefaultList = class TrackDefaultList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(trackDefaults) {
     if (trackDefaults === void 0) trackDefaults = null;
     if (trackDefaults != null) {
-      return html.TrackDefaultList._create_1(trackDefaults);
+      return html$.TrackDefaultList._create_1(trackDefaults);
     }
-    return html.TrackDefaultList._create_2();
+    return html$.TrackDefaultList._create_2();
   }
   static _create_1(trackDefaults) {
     return new self.TrackDefaultList(trackDefaults);
@@ -90273,20 +90276,20 @@
     return this.item.apply(this, args);
   }
 };
-dart.setSignature(html.TrackDefaultList, {
+dart.setSignature(html$.TrackDefaultList, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TrackDefaultList, []),
-    new: dart.definiteFunctionType(html.TrackDefaultList, [], [ListOfTrackDefault()])
+    _: dart.definiteFunctionType(html$.TrackDefaultList, []),
+    new: dart.definiteFunctionType(html$.TrackDefaultList, [], [ListOfTrackDefault()])
   }),
   fields: () => ({[dartx.length]: core.int}),
-  methods: () => ({[dartx.item]: dart.definiteFunctionType(html.TrackDefault, [core.int])}),
+  methods: () => ({[dartx.item]: dart.definiteFunctionType(html$.TrackDefault, [core.int])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.TrackDefaultList, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.TrackDefaultList, [])
+    _create_1: dart.definiteFunctionType(html$.TrackDefaultList, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TrackDefaultList, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.TrackDefaultList, html.TrackDefaultList);
+dart.registerExtension(dart.global.TrackDefaultList, html$.TrackDefaultList);
 dart.defineExtensionNames([
   'defaultValue',
   'kind',
@@ -90296,12 +90299,12 @@
   'srclang',
   'track'
 ]);
-html.TrackElement = class TrackElement extends html.HtmlElement {
+html$.TrackElement = class TrackElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.TrackElement._check(html.document[dartx.createElement]("track"));
+    return html$.TrackElement._check(html$.document[dartx.createElement]("track"));
   }
   created() {
     this[dartx.defaultValue] = null;
@@ -90314,7 +90317,7 @@
     super.created();
   }
   static get supported() {
-    return html.Element.isTagSupported('track');
+    return html$.Element.isTagSupported('track');
   }
   get [dartx.defaultValue]() {
     return this.default;
@@ -90353,12 +90356,12 @@
     return this.track;
   }
 };
-dart.defineNamedConstructor(html.TrackElement, 'created');
-dart.setSignature(html.TrackElement, {
+dart.defineNamedConstructor(html$.TrackElement, 'created');
+dart.setSignature(html$.TrackElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TrackElement, []),
-    new: dart.definiteFunctionType(html.TrackElement, []),
-    created: dart.definiteFunctionType(html.TrackElement, [])
+    _: dart.definiteFunctionType(html$.TrackElement, []),
+    new: dart.definiteFunctionType(html$.TrackElement, []),
+    created: dart.definiteFunctionType(html$.TrackElement, [])
   }),
   fields: () => ({
     [dartx.defaultValue]: core.bool,
@@ -90367,7 +90370,7 @@
     [dartx.readyState]: core.int,
     [dartx.src]: core.String,
     [dartx.srclang]: core.String,
-    [dartx.track]: html.TextTrack
+    [dartx.track]: html$.TextTrack
   }),
   sfields: () => ({
     ERROR: core.int,
@@ -90377,15 +90380,15 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-html.TrackElement.ERROR = 3;
-html.TrackElement.LOADED = 2;
-html.TrackElement.LOADING = 1;
-html.TrackElement.NONE = 0;
-dart.registerExtension(dart.global.HTMLTrackElement, html.TrackElement);
+html$.TrackElement.ERROR = 3;
+html$.TrackElement.LOADED = 2;
+html$.TrackElement.LOADING = 1;
+html$.TrackElement.NONE = 0;
+dart.registerExtension(dart.global.HTMLTrackElement, html$.TrackElement);
 dart.defineExtensionNames([
   'track'
 ]);
-html.TrackEvent = class TrackEvent extends html.Event {
+html$.TrackEvent = class TrackEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -90393,9 +90396,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.TrackEvent._create_1(type, eventInitDict_1);
+      return html$.TrackEvent._create_1(type, eventInitDict_1);
     }
-    return html.TrackEvent._create_2(type);
+    return html$.TrackEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.TrackEvent(type, eventInitDict);
@@ -90407,25 +90410,25 @@
     return this.track;
   }
 };
-dart.setSignature(html.TrackEvent, {
+dart.setSignature(html$.TrackEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TrackEvent, []),
-    new: dart.definiteFunctionType(html.TrackEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.TrackEvent, []),
+    new: dart.definiteFunctionType(html$.TrackEvent, [core.String], [core.Map])
   }),
   fields: () => ({[dartx.track]: core.Object}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.TrackEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.TrackEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.TrackEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TrackEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.TrackEvent, html.TrackEvent);
+dart.registerExtension(dart.global.TrackEvent, html$.TrackEvent);
 dart.defineExtensionNames([
   'elapsedTime',
   'propertyName',
   'pseudoElement'
 ]);
-html.TransitionEvent = class TransitionEvent extends html.Event {
+html$.TransitionEvent = class TransitionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -90433,9 +90436,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.TransitionEvent._create_1(type, eventInitDict_1);
+      return html$.TransitionEvent._create_1(type, eventInitDict_1);
     }
-    return html.TransitionEvent._create_2(type);
+    return html$.TransitionEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.TransitionEvent(type, eventInitDict);
@@ -90453,10 +90456,10 @@
     return this.pseudoElement;
   }
 };
-dart.setSignature(html.TransitionEvent, {
+dart.setSignature(html$.TransitionEvent, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.TransitionEvent, []),
-    new: dart.definiteFunctionType(html.TransitionEvent, [core.String], [core.Map])
+    _: dart.definiteFunctionType(html$.TransitionEvent, []),
+    new: dart.definiteFunctionType(html$.TransitionEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [dartx.elapsedTime]: core.double,
@@ -90464,13 +90467,13 @@
     [dartx.pseudoElement]: core.String
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.TransitionEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.TransitionEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.TransitionEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.TransitionEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.TransitionEvent, html.TransitionEvent);
-dart.registerExtension(dart.global.WebKitTransitionEvent, html.TransitionEvent);
+dart.registerExtension(dart.global.TransitionEvent, html$.TransitionEvent);
+dart.registerExtension(dart.global.WebKitTransitionEvent, html$.TransitionEvent);
 dart.defineExtensionNames([
   'firstChild',
   'lastChild',
@@ -90484,9 +90487,9 @@
   'root',
   'whatToShow'
 ]);
-html.TreeWalker = class TreeWalker extends _interceptors.Interceptor {
+html$.TreeWalker = class TreeWalker extends _interceptors.Interceptor {
   static new(root, whatToShow) {
-    return html.document[_createTreeWalker](root, whatToShow, null);
+    return html$.document[_createTreeWalker](root, whatToShow, null);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -90528,49 +90531,49 @@
     return this.previousSibling.apply(this, args);
   }
 };
-dart.setSignature(html.TreeWalker, {
+dart.setSignature(html$.TreeWalker, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.TreeWalker, [html.Node, core.int]),
-    _: dart.definiteFunctionType(html.TreeWalker, [])
+    new: dart.definiteFunctionType(html$.TreeWalker, [html$.Node, core.int]),
+    _: dart.definiteFunctionType(html$.TreeWalker, [])
   }),
   fields: () => ({
-    [dartx.currentNode]: html.Node,
-    [dartx.filter]: html.NodeFilter,
-    [dartx.root]: html.Node,
+    [dartx.currentNode]: html$.Node,
+    [dartx.filter]: html$.NodeFilter,
+    [dartx.root]: html$.Node,
     [dartx.whatToShow]: core.int
   }),
   methods: () => ({
-    [dartx.firstChild]: dart.definiteFunctionType(html.Node, []),
-    [dartx.lastChild]: dart.definiteFunctionType(html.Node, []),
-    [dartx.nextNode]: dart.definiteFunctionType(html.Node, []),
-    [dartx.nextSibling]: dart.definiteFunctionType(html.Node, []),
-    [dartx.parentNode]: dart.definiteFunctionType(html.Node, []),
-    [dartx.previousNode]: dart.definiteFunctionType(html.Node, []),
-    [dartx.previousSibling]: dart.definiteFunctionType(html.Node, [])
+    [dartx.firstChild]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.lastChild]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.nextNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.nextSibling]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.parentNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.previousNode]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.previousSibling]: dart.definiteFunctionType(html$.Node, [])
   })
 });
-dart.registerExtension(dart.global.TreeWalker, html.TreeWalker);
-html.UListElement = class UListElement extends html.HtmlElement {
+dart.registerExtension(dart.global.TreeWalker, html$.TreeWalker);
+html$.UListElement = class UListElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.UListElement._check(html.document[dartx.createElement]("ul"));
+    return html$.UListElement._check(html$.document[dartx.createElement]("ul"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(html.UListElement, 'created');
-dart.setSignature(html.UListElement, {
+dart.defineNamedConstructor(html$.UListElement, 'created');
+dart.setSignature(html$.UListElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.UListElement, []),
-    new: dart.definiteFunctionType(html.UListElement, []),
-    created: dart.definiteFunctionType(html.UListElement, [])
+    _: dart.definiteFunctionType(html$.UListElement, []),
+    new: dart.definiteFunctionType(html$.UListElement, []),
+    created: dart.definiteFunctionType(html$.UListElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLUListElement, html.UListElement);
-html.UnknownElement = class UnknownElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLUListElement, html$.UListElement);
+html$.UnknownElement = class UnknownElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -90578,14 +90581,14 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html.UnknownElement, 'created');
-dart.setSignature(html.UnknownElement, {
+dart.defineNamedConstructor(html$.UnknownElement, 'created');
+dart.setSignature(html$.UnknownElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.UnknownElement, []),
-    created: dart.definiteFunctionType(html.UnknownElement, [])
+    _: dart.definiteFunctionType(html$.UnknownElement, []),
+    created: dart.definiteFunctionType(html$.UnknownElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLUnknownElement, html.UnknownElement);
+dart.registerExtension(dart.global.HTMLUnknownElement, html$.UnknownElement);
 dart.defineExtensionNames([
   'toString',
   'hash',
@@ -90600,7 +90603,7 @@
   'search',
   'username'
 ]);
-html.Url = class Url extends _interceptors.Interceptor {
+html$.Url = class Url extends _interceptors.Interceptor {
   static createObjectUrl(blob_OR_source_OR_stream) {
     return (self.URL || self.webkitURL).createObjectURL(blob_OR_source_OR_stream);
   }
@@ -90686,9 +90689,9 @@
     this.username = value;
   }
 };
-html.Url[dart.implements] = () => [html.UrlUtils];
-dart.setSignature(html.Url, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Url, [])}),
+html$.Url[dart.implements] = () => [html$.UrlUtils];
+dart.setSignature(html$.Url, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Url, [])}),
   fields: () => ({
     [dartx.hash]: core.String,
     [dartx.host]: core.String,
@@ -90704,14 +90707,14 @@
   }),
   statics: () => ({
     createObjectUrl: dart.definiteFunctionType(core.String, [dart.dynamic]),
-    createObjectUrlFromSource: dart.definiteFunctionType(core.String, [html.MediaSource]),
-    createObjectUrlFromStream: dart.definiteFunctionType(core.String, [html.MediaStream]),
-    createObjectUrlFromBlob: dart.definiteFunctionType(core.String, [html.Blob]),
+    createObjectUrlFromSource: dart.definiteFunctionType(core.String, [html$.MediaSource]),
+    createObjectUrlFromStream: dart.definiteFunctionType(core.String, [html$.MediaStream]),
+    createObjectUrlFromBlob: dart.definiteFunctionType(core.String, [html$.Blob]),
     revokeObjectUrl: dart.definiteFunctionType(dart.void, [core.String])
   }),
   names: ['createObjectUrl', 'createObjectUrlFromSource', 'createObjectUrlFromStream', 'createObjectUrlFromBlob', 'revokeObjectUrl']
 });
-dart.registerExtension(dart.global.URL, html.Url);
+dart.registerExtension(dart.global.URL, html$.Url);
 dart.defineExtensionNames([
   'hash',
   'host',
@@ -90725,7 +90728,7 @@
   'search',
   'username'
 ]);
-html.UrlUtils = class UrlUtils extends _interceptors.Interceptor {
+html$.UrlUtils = class UrlUtils extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -90796,19 +90799,19 @@
     this[username] = value;
   }
 };
-const hash = Symbol(html.UrlUtils.name + "." + 'hash'.toString());
-const host = Symbol(html.UrlUtils.name + "." + 'host'.toString());
-const hostname = Symbol(html.UrlUtils.name + "." + 'hostname'.toString());
-const href = Symbol(html.UrlUtils.name + "." + 'href'.toString());
-const origin = Symbol(html.UrlUtils.name + "." + 'origin'.toString());
-const password = Symbol(html.UrlUtils.name + "." + 'password'.toString());
-const pathname = Symbol(html.UrlUtils.name + "." + 'pathname'.toString());
-const port = Symbol(html.UrlUtils.name + "." + 'port'.toString());
-const protocol = Symbol(html.UrlUtils.name + "." + 'protocol'.toString());
-const search = Symbol(html.UrlUtils.name + "." + 'search'.toString());
-const username = Symbol(html.UrlUtils.name + "." + 'username'.toString());
-dart.setSignature(html.UrlUtils, {
-  constructors: () => ({_: dart.definiteFunctionType(html.UrlUtils, [])}),
+const hash = Symbol(html$.UrlUtils.name + "." + 'hash'.toString());
+const host = Symbol(html$.UrlUtils.name + "." + 'host'.toString());
+const hostname = Symbol(html$.UrlUtils.name + "." + 'hostname'.toString());
+const href = Symbol(html$.UrlUtils.name + "." + 'href'.toString());
+const origin = Symbol(html$.UrlUtils.name + "." + 'origin'.toString());
+const password = Symbol(html$.UrlUtils.name + "." + 'password'.toString());
+const pathname = Symbol(html$.UrlUtils.name + "." + 'pathname'.toString());
+const port = Symbol(html$.UrlUtils.name + "." + 'port'.toString());
+const protocol = Symbol(html$.UrlUtils.name + "." + 'protocol'.toString());
+const search = Symbol(html$.UrlUtils.name + "." + 'search'.toString());
+const username = Symbol(html$.UrlUtils.name + "." + 'username'.toString());
+dart.setSignature(html$.UrlUtils, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.UrlUtils, [])}),
   fields: () => ({
     hash: core.String,
     host: core.String,
@@ -90823,7 +90826,7 @@
     username: core.String
   })
 });
-dart.defineExtensionMembers(html.UrlUtils, [
+dart.defineExtensionMembers(html$.UrlUtils, [
   'hash',
   'hash',
   'host',
@@ -90857,76 +90860,76 @@
   'protocol',
   'search'
 ]);
-html.UrlUtilsReadOnly = class UrlUtilsReadOnly extends _interceptors.Interceptor {
+html$.UrlUtilsReadOnly = class UrlUtilsReadOnly extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get hash() {
-    return this[hash];
+    return this[hash$];
   }
   set hash(value) {
     super.hash = value;
   }
   get host() {
-    return this[host];
+    return this[host$];
   }
   set host(value) {
     super.host = value;
   }
   get hostname() {
-    return this[hostname];
+    return this[hostname$];
   }
   set hostname(value) {
     super.hostname = value;
   }
   get href() {
-    return this[href];
+    return this[href$];
   }
   set href(value) {
     super.href = value;
   }
   get origin() {
-    return this[origin];
+    return this[origin$];
   }
   set origin(value) {
     super.origin = value;
   }
   get pathname() {
-    return this[pathname];
+    return this[pathname$];
   }
   set pathname(value) {
     super.pathname = value;
   }
   get port() {
-    return this[port];
+    return this[port$];
   }
   set port(value) {
     super.port = value;
   }
   get protocol() {
-    return this[protocol];
+    return this[protocol$];
   }
   set protocol(value) {
     super.protocol = value;
   }
   get search() {
-    return this[search];
+    return this[search$];
   }
   set search(value) {
     super.search = value;
   }
 };
-const hash = Symbol(html.UrlUtilsReadOnly.name + "." + 'hash'.toString());
-const host = Symbol(html.UrlUtilsReadOnly.name + "." + 'host'.toString());
-const hostname = Symbol(html.UrlUtilsReadOnly.name + "." + 'hostname'.toString());
-const href = Symbol(html.UrlUtilsReadOnly.name + "." + 'href'.toString());
-const origin = Symbol(html.UrlUtilsReadOnly.name + "." + 'origin'.toString());
-const pathname = Symbol(html.UrlUtilsReadOnly.name + "." + 'pathname'.toString());
-const port = Symbol(html.UrlUtilsReadOnly.name + "." + 'port'.toString());
-const protocol = Symbol(html.UrlUtilsReadOnly.name + "." + 'protocol'.toString());
-const search = Symbol(html.UrlUtilsReadOnly.name + "." + 'search'.toString());
-dart.setSignature(html.UrlUtilsReadOnly, {
-  constructors: () => ({_: dart.definiteFunctionType(html.UrlUtilsReadOnly, [])}),
+const hash$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'hash'.toString());
+const host$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'host'.toString());
+const hostname$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'hostname'.toString());
+const href$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'href'.toString());
+const origin$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'origin'.toString());
+const pathname$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'pathname'.toString());
+const port$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'port'.toString());
+const protocol$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'protocol'.toString());
+const search$ = Symbol(html$.UrlUtilsReadOnly.name + "." + 'search'.toString());
+dart.setSignature(html$.UrlUtilsReadOnly, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.UrlUtilsReadOnly, [])}),
   fields: () => ({
     hash: core.String,
     host: core.String,
@@ -90939,7 +90942,7 @@
     search: core.String
   })
 });
-dart.defineExtensionMembers(html.UrlUtilsReadOnly, [
+dart.defineExtensionMembers(html$.UrlUtilsReadOnly, [
   'hash',
   'host',
   'hostname',
@@ -90958,7 +90961,7 @@
   'recommendedFieldOfView',
   'renderRect'
 ]);
-html.VREyeParameters = class VREyeParameters extends _interceptors.Interceptor {
+html$.VREyeParameters = class VREyeParameters extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -90981,25 +90984,25 @@
     return this.renderRect;
   }
 };
-dart.setSignature(html.VREyeParameters, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VREyeParameters, [])}),
+dart.setSignature(html$.VREyeParameters, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VREyeParameters, [])}),
   fields: () => ({
-    [dartx.currentFieldOfView]: html.VRFieldOfView,
-    [dartx.eyeTranslation]: html.DomPoint,
-    [dartx.maximumFieldOfView]: html.VRFieldOfView,
-    [dartx.minimumFieldOfView]: html.VRFieldOfView,
-    [dartx.recommendedFieldOfView]: html.VRFieldOfView,
-    [dartx.renderRect]: html._DomRect
+    [dartx.currentFieldOfView]: html$.VRFieldOfView,
+    [dartx.eyeTranslation]: html$.DomPoint,
+    [dartx.maximumFieldOfView]: html$.VRFieldOfView,
+    [dartx.minimumFieldOfView]: html$.VRFieldOfView,
+    [dartx.recommendedFieldOfView]: html$.VRFieldOfView,
+    [dartx.renderRect]: html$._DomRect
   })
 });
-dart.registerExtension(dart.global.VREyeParameters, html.VREyeParameters);
+dart.registerExtension(dart.global.VREyeParameters, html$.VREyeParameters);
 dart.defineExtensionNames([
   'downDegrees',
   'leftDegrees',
   'rightDegrees',
   'upDegrees'
 ]);
-html.VRFieldOfView = class VRFieldOfView extends _interceptors.Interceptor {
+html$.VRFieldOfView = class VRFieldOfView extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91007,9 +91010,9 @@
     if (fov === void 0) fov = null;
     if (fov != null) {
       let fov_1 = html_common.convertDartToNative_Dictionary(fov);
-      return html.VRFieldOfView._create_1(fov_1);
+      return html$.VRFieldOfView._create_1(fov_1);
     }
-    return html.VRFieldOfView._create_2();
+    return html$.VRFieldOfView._create_2();
   }
   static _create_1(fov) {
     return new self.VRFieldOfView(fov);
@@ -91042,10 +91045,10 @@
     this.upDegrees = value;
   }
 };
-dart.setSignature(html.VRFieldOfView, {
+dart.setSignature(html$.VRFieldOfView, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.VRFieldOfView, []),
-    new: dart.definiteFunctionType(html.VRFieldOfView, [], [core.Map])
+    _: dart.definiteFunctionType(html$.VRFieldOfView, []),
+    new: dart.definiteFunctionType(html$.VRFieldOfView, [], [core.Map])
   }),
   fields: () => ({
     [dartx.downDegrees]: core.num,
@@ -91054,12 +91057,12 @@
     [dartx.upDegrees]: core.num
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.VRFieldOfView, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.VRFieldOfView, [])
+    _create_1: dart.definiteFunctionType(html$.VRFieldOfView, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.VRFieldOfView, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.VRFieldOfView, html.VRFieldOfView);
+dart.registerExtension(dart.global.VRFieldOfView, html$.VRFieldOfView);
 dart.defineExtensionNames([
   'angularAcceleration',
   'angularVelocity',
@@ -91069,7 +91072,7 @@
   'position',
   'timeStamp'
 ]);
-html.VRPositionState = class VRPositionState extends _interceptors.Interceptor {
+html$.VRPositionState = class VRPositionState extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91095,19 +91098,19 @@
     return this.timeStamp;
   }
 };
-dart.setSignature(html.VRPositionState, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VRPositionState, [])}),
+dart.setSignature(html$.VRPositionState, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VRPositionState, [])}),
   fields: () => ({
-    [dartx.angularAcceleration]: html.DomPoint,
-    [dartx.angularVelocity]: html.DomPoint,
-    [dartx.linearAcceleration]: html.DomPoint,
-    [dartx.linearVelocity]: html.DomPoint,
-    [dartx.orientation]: html.DomPoint,
-    [dartx.position]: html.DomPoint,
+    [dartx.angularAcceleration]: html$.DomPoint,
+    [dartx.angularVelocity]: html$.DomPoint,
+    [dartx.linearAcceleration]: html$.DomPoint,
+    [dartx.linearVelocity]: html$.DomPoint,
+    [dartx.orientation]: html$.DomPoint,
+    [dartx.position]: html$.DomPoint,
     [dartx.timeStamp]: core.double
   })
 });
-dart.registerExtension(dart.global.VRPositionState, html.VRPositionState);
+dart.registerExtension(dart.global.VRPositionState, html$.VRPositionState);
 dart.defineExtensionNames([
   'badInput',
   'customError',
@@ -91121,7 +91124,7 @@
   'valid',
   'valueMissing'
 ]);
-html.ValidityState = class ValidityState extends _interceptors.Interceptor {
+html$.ValidityState = class ValidityState extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91159,8 +91162,8 @@
     return this.valueMissing;
   }
 };
-dart.setSignature(html.ValidityState, {
-  constructors: () => ({_: dart.definiteFunctionType(html.ValidityState, [])}),
+dart.setSignature(html$.ValidityState, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.ValidityState, [])}),
   fields: () => ({
     [dartx.badInput]: core.bool,
     [dartx.customError]: core.bool,
@@ -91175,7 +91178,7 @@
     [dartx.valueMissing]: core.bool
   })
 });
-dart.registerExtension(dart.global.ValidityState, html.ValidityState);
+dart.registerExtension(dart.global.ValidityState, html$.ValidityState);
 dart.defineExtensionNames([
   'getVideoPlaybackQuality',
   'enterFullscreen',
@@ -91188,12 +91191,12 @@
   'droppedFrameCount',
   'width'
 ]);
-html.VideoElement = class VideoElement extends html.MediaElement {
+html$.VideoElement = class VideoElement extends html$.MediaElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.VideoElement._check(html.document[dartx.createElement]("video"));
+    return html$.VideoElement._check(html$.document[dartx.createElement]("video"));
   }
   created() {
     this[dartx.height] = null;
@@ -91245,13 +91248,13 @@
     return this.webkitExitFullscreen.apply(this, args);
   }
 };
-dart.defineNamedConstructor(html.VideoElement, 'created');
-html.VideoElement[dart.implements] = () => [html.CanvasImageSource];
-dart.setSignature(html.VideoElement, {
+dart.defineNamedConstructor(html$.VideoElement, 'created');
+html$.VideoElement[dart.implements] = () => [html$.CanvasImageSource];
+dart.setSignature(html$.VideoElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.VideoElement, []),
-    new: dart.definiteFunctionType(html.VideoElement, []),
-    created: dart.definiteFunctionType(html.VideoElement, [])
+    _: dart.definiteFunctionType(html$.VideoElement, []),
+    new: dart.definiteFunctionType(html$.VideoElement, []),
+    created: dart.definiteFunctionType(html$.VideoElement, [])
   }),
   fields: () => ({
     [dartx.height]: core.int,
@@ -91263,19 +91266,19 @@
     [dartx.width]: core.int
   }),
   methods: () => ({
-    [dartx.getVideoPlaybackQuality]: dart.definiteFunctionType(html.VideoPlaybackQuality, []),
+    [dartx.getVideoPlaybackQuality]: dart.definiteFunctionType(html$.VideoPlaybackQuality, []),
     [dartx.enterFullscreen]: dart.definiteFunctionType(dart.void, []),
     [dartx.exitFullscreen]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.HTMLVideoElement, html.VideoElement);
+dart.registerExtension(dart.global.HTMLVideoElement, html$.VideoElement);
 dart.defineExtensionNames([
   'corruptedVideoFrames',
   'creationTime',
   'droppedVideoFrames',
   'totalVideoFrames'
 ]);
-html.VideoPlaybackQuality = class VideoPlaybackQuality extends _interceptors.Interceptor {
+html$.VideoPlaybackQuality = class VideoPlaybackQuality extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91292,8 +91295,8 @@
     return this.totalVideoFrames;
   }
 };
-dart.setSignature(html.VideoPlaybackQuality, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VideoPlaybackQuality, [])}),
+dart.setSignature(html$.VideoPlaybackQuality, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VideoPlaybackQuality, [])}),
   fields: () => ({
     [dartx.corruptedVideoFrames]: core.int,
     [dartx.creationTime]: core.double,
@@ -91301,7 +91304,7 @@
     [dartx.totalVideoFrames]: core.int
   })
 });
-dart.registerExtension(dart.global.VideoPlaybackQuality, html.VideoPlaybackQuality);
+dart.registerExtension(dart.global.VideoPlaybackQuality, html$.VideoPlaybackQuality);
 dart.defineExtensionNames([
   'id',
   'kind',
@@ -91309,7 +91312,7 @@
   'language',
   'selected'
 ]);
-html.VideoTrack = class VideoTrack extends _interceptors.Interceptor {
+html$.VideoTrack = class VideoTrack extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91332,8 +91335,8 @@
     this.selected = value;
   }
 };
-dart.setSignature(html.VideoTrack, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VideoTrack, [])}),
+dart.setSignature(html$.VideoTrack, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VideoTrack, [])}),
   fields: () => ({
     [dartx.id]: core.String,
     [dartx.kind]: core.String,
@@ -91342,14 +91345,14 @@
     [dartx.selected]: core.bool
   })
 });
-dart.registerExtension(dart.global.VideoTrack, html.VideoTrack);
+dart.registerExtension(dart.global.VideoTrack, html$.VideoTrack);
 dart.defineExtensionNames([
   'getTrackById',
   'onChange',
   'length',
   'selectedIndex'
 ]);
-html.VideoTrackList = class VideoTrackList extends html.EventTarget {
+html$.VideoTrackList = class VideoTrackList extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91366,29 +91369,29 @@
     return this.getTrackById.apply(this, args);
   }
   get [dartx.onChange]() {
-    return html.VideoTrackList.changeEvent.forTarget(this);
+    return html$.VideoTrackList.changeEvent.forTarget(this);
   }
 };
-dart.setSignature(html.VideoTrackList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VideoTrackList, [])}),
+dart.setSignature(html$.VideoTrackList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VideoTrackList, [])}),
   fields: () => ({
     [dartx.length]: core.int,
     [dartx.selectedIndex]: core.int
   }),
-  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
-    [__getter__]: dart.definiteFunctionType(html.VideoTrack, [core.int]),
-    [dartx.getTrackById]: dart.definiteFunctionType(html.VideoTrack, [core.String])
+    [__getter__]: dart.definiteFunctionType(html$.VideoTrack, [core.int]),
+    [dartx.getTrackById]: dart.definiteFunctionType(html$.VideoTrack, [core.String])
   }),
   sfields: () => ({changeEvent: EventStreamProviderOfEvent()})
 });
-dart.defineLazy(html.VideoTrackList, {
+dart.defineLazy(html$.VideoTrackList, {
   get changeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('change'));
   }
 });
-dart.registerExtension(dart.global.VideoTrackList, html.VideoTrackList);
-html.VoidCallback = dart.typedef('VoidCallback', () => dart.functionType(dart.void, []));
+dart.registerExtension(dart.global.VideoTrackList, html$.VideoTrackList);
+html$.VoidCallback = dart.typedef('VoidCallback', () => dart.functionType(dart.void, []));
 dart.defineExtensionNames([
   'getCueAsHtml',
   'align',
@@ -91400,12 +91403,12 @@
   'text',
   'vertical'
 ]);
-html.VttCue = class VttCue extends html.TextTrackCue {
+html$.VttCue = class VttCue extends html$.TextTrackCue {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(startTime, endTime, text) {
-    return html.VttCue._create_1(startTime, endTime, text);
+    return html$.VttCue._create_1(startTime, endTime, text);
   }
   static _create_1(startTime, endTime, text) {
     return new VTTCue(startTime, endTime, text);
@@ -91462,10 +91465,10 @@
     return this.getCueAsHTML.apply(this, args);
   }
 };
-dart.setSignature(html.VttCue, {
+dart.setSignature(html$.VttCue, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.VttCue, []),
-    new: dart.definiteFunctionType(html.VttCue, [core.num, core.num, core.String])
+    _: dart.definiteFunctionType(html$.VttCue, []),
+    new: dart.definiteFunctionType(html$.VttCue, [core.num, core.num, core.String])
   }),
   fields: () => ({
     [dartx.align]: core.String,
@@ -91477,11 +91480,11 @@
     [dartx.text]: core.String,
     [dartx.vertical]: core.String
   }),
-  methods: () => ({[dartx.getCueAsHtml]: dart.definiteFunctionType(html.DocumentFragment, [])}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.VttCue, [dart.dynamic, dart.dynamic, dart.dynamic])}),
+  methods: () => ({[dartx.getCueAsHtml]: dart.definiteFunctionType(html$.DocumentFragment, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.VttCue, [dart.dynamic, dart.dynamic, dart.dynamic])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.VTTCue, html.VttCue);
+dart.registerExtension(dart.global.VTTCue, html$.VttCue);
 dart.defineExtensionNames([
   'height',
   'id',
@@ -91493,12 +91496,12 @@
   'viewportAnchorY',
   'width'
 ]);
-html.VttRegion = class VttRegion extends _interceptors.Interceptor {
+html$.VttRegion = class VttRegion extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.VttRegion._create_1();
+    return html$.VttRegion._create_1();
   }
   static _create_1() {
     return new VTTRegion();
@@ -91555,10 +91558,10 @@
     this.width = value;
   }
 };
-dart.setSignature(html.VttRegion, {
+dart.setSignature(html$.VttRegion, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.VttRegion, []),
-    new: dart.definiteFunctionType(html.VttRegion, [])
+    _: dart.definiteFunctionType(html$.VttRegion, []),
+    new: dart.definiteFunctionType(html$.VttRegion, [])
   }),
   fields: () => ({
     [dartx.height]: core.int,
@@ -91566,21 +91569,21 @@
     [dartx.regionAnchorX]: core.num,
     [dartx.regionAnchorY]: core.num,
     [dartx.scroll]: core.String,
-    [dartx.track]: html.TextTrack,
+    [dartx.track]: html$.TextTrack,
     [dartx.viewportAnchorX]: core.num,
     [dartx.viewportAnchorY]: core.num,
     [dartx.width]: core.num
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.VttRegion, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.VttRegion, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.VTTRegion, html.VttRegion);
+dart.registerExtension(dart.global.VTTRegion, html$.VttRegion);
 dart.defineExtensionNames([
   'getRegionById',
   'item',
   'length'
 ]);
-html.VttRegionList = class VttRegionList extends _interceptors.Interceptor {
+html$.VttRegionList = class VttRegionList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -91594,15 +91597,15 @@
     return this.item.apply(this, args);
   }
 };
-dart.setSignature(html.VttRegionList, {
-  constructors: () => ({_: dart.definiteFunctionType(html.VttRegionList, [])}),
+dart.setSignature(html$.VttRegionList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.VttRegionList, [])}),
   fields: () => ({[dartx.length]: core.int}),
   methods: () => ({
-    [dartx.getRegionById]: dart.definiteFunctionType(html.VttRegion, [core.String]),
-    [dartx.item]: dart.definiteFunctionType(html.VttRegion, [core.int])
+    [dartx.getRegionById]: dart.definiteFunctionType(html$.VttRegion, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.VttRegion, [core.int])
   })
 });
-dart.registerExtension(dart.global.VTTRegionList, html.VttRegionList);
+dart.registerExtension(dart.global.VTTRegionList, html$.VttRegionList);
 dart.defineExtensionNames([
   'close',
   'send',
@@ -91621,16 +91624,16 @@
   'readyState',
   'url'
 ]);
-html.WebSocket = class WebSocket extends html.EventTarget {
+html$.WebSocket = class WebSocket extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(url, protocols) {
     if (protocols === void 0) protocols = null;
     if (protocols != null) {
-      return html.WebSocket._create_1(url, protocols);
+      return html$.WebSocket._create_1(url, protocols);
     }
-    return html.WebSocket._create_2(url);
+    return html$.WebSocket._create_2(url);
   }
   static _create_1(url, protocols) {
     return new self.WebSocket(url, protocols);
@@ -91681,22 +91684,22 @@
     return this.send.apply(this, args);
   }
   get [dartx.onClose]() {
-    return html.WebSocket.closeEvent.forTarget(this);
+    return html$.WebSocket.closeEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.WebSocket.errorEvent.forTarget(this);
+    return html$.WebSocket.errorEvent.forTarget(this);
   }
   get [dartx.onMessage]() {
-    return html.WebSocket.messageEvent.forTarget(this);
+    return html$.WebSocket.messageEvent.forTarget(this);
   }
   get [dartx.onOpen]() {
-    return html.WebSocket.openEvent.forTarget(this);
+    return html$.WebSocket.openEvent.forTarget(this);
   }
 };
-dart.setSignature(html.WebSocket, {
+dart.setSignature(html$.WebSocket, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.WebSocket, []),
-    new: dart.definiteFunctionType(html.WebSocket, [core.String], [core.Object])
+    _: dart.definiteFunctionType(html$.WebSocket, []),
+    new: dart.definiteFunctionType(html$.WebSocket, [core.String], [core.Object])
   }),
   fields: () => ({
     [dartx.binaryType]: core.String,
@@ -91707,15 +91710,15 @@
     [dartx.url]: core.String
   }),
   getters: () => ({
-    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html.CloseEvent), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), []),
-    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    [dartx.onClose]: dart.definiteFunctionType(async.Stream$(html$.CloseEvent), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onOpen]: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   methods: () => ({
     [dartx.close]: dart.definiteFunctionType(dart.void, [], [core.int, core.String]),
     [dartx.send]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-    [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html.Blob]),
+    [dartx.sendBlob]: dart.definiteFunctionType(dart.void, [html$.Blob]),
     [dartx.sendByteBuffer]: dart.definiteFunctionType(dart.void, [typed_data.ByteBuffer]),
     [dartx.sendString]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.sendTypedData]: dart.definiteFunctionType(dart.void, [typed_data.TypedData])
@@ -91732,16 +91735,16 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.WebSocket, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.WebSocket, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.WebSocket, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.WebSocket, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-html.WebSocket.CLOSED = 3;
-html.WebSocket.CLOSING = 2;
-html.WebSocket.CONNECTING = 0;
-html.WebSocket.OPEN = 1;
-dart.defineLazy(html.WebSocket, {
+html$.WebSocket.CLOSED = 3;
+html$.WebSocket.CLOSING = 2;
+html$.WebSocket.CONNECTING = 0;
+html$.WebSocket.OPEN = 1;
+dart.defineLazy(html$.WebSocket, {
   get closeEvent() {
     return dart.const(new (EventStreamProviderOfCloseEvent())('close'));
   },
@@ -91755,7 +91758,7 @@
     return dart.const(new (EventStreamProviderOfEvent())('open'));
   }
 });
-dart.registerExtension(dart.global.WebSocket, html.WebSocket);
+dart.registerExtension(dart.global.WebSocket, html$.WebSocket);
 const _deltaX = Symbol('_deltaX');
 const _deltaY = Symbol('_deltaY');
 const _wheelDelta = Symbol('_wheelDelta');
@@ -91770,7 +91773,7 @@
   'deltaMode',
   'deltaZ'
 ]);
-html.WheelEvent = class WheelEvent extends html.MouseEvent {
+html$.WheelEvent = class WheelEvent extends html$.MouseEvent {
   static new(type, opts) {
     let view = opts && 'view' in opts ? opts.view : null;
     let deltaX = opts && 'deltaX' in opts ? opts.deltaX : 0;
@@ -91792,7 +91795,7 @@
     let relatedTarget = opts && 'relatedTarget' in opts ? opts.relatedTarget : null;
     let options = dart.map({view: view, deltaMode: deltaMode, deltaX: deltaX, deltaY: deltaY, deltaZ: deltaZ, detail: detail, screenX: screenX, screenY: screenY, clientX: clientX, clientY: clientY, button: button, bubbles: canBubble, cancelable: cancelable, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey, metaKey: metaKey, relatedTarget: relatedTarget}, core.String, core.Object);
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
     return new self.WheelEvent(type, html_common.convertDartToNative_Dictionary(options));
   }
@@ -91800,9 +91803,9 @@
     if (eventInitDict === void 0) eventInitDict = null;
     if (eventInitDict != null) {
       let eventInitDict_1 = html_common.convertDartToNative_Dictionary(eventInitDict);
-      return html.WheelEvent._create_1(type, eventInitDict_1);
+      return html$.WheelEvent._create_1(type, eventInitDict_1);
     }
-    return html.WheelEvent._create_2(type);
+    return html$.WheelEvent._create_2(type);
   }
   static _create_1(type, eventInitDict) {
     return new self.WheelEvent(type, eventInitDict);
@@ -91859,10 +91862,10 @@
     return this.initWheelEvent.apply(this, args);
   }
 };
-dart.setSignature(html.WheelEvent, {
+dart.setSignature(html$.WheelEvent, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.WheelEvent, [core.String], {view: html.Window, deltaX: core.num, deltaY: core.num, deltaZ: core.num, deltaMode: core.int, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html.EventTarget}),
-    _: dart.definiteFunctionType(html.WheelEvent, [core.String], [core.Map])
+    new: dart.definiteFunctionType(html$.WheelEvent, [core.String], {view: html$.Window, deltaX: core.num, deltaY: core.num, deltaZ: core.num, deltaMode: core.int, detail: core.int, screenX: core.int, screenY: core.int, clientX: core.int, clientY: core.int, button: core.int, canBubble: core.bool, cancelable: core.bool, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, relatedTarget: html$.EventTarget}),
+    _: dart.definiteFunctionType(html$.WheelEvent, [core.String], [core.Map])
   }),
   fields: () => ({
     [_deltaX]: core.double,
@@ -91880,8 +91883,8 @@
     [_hasInitWheelEvent]: dart.definiteFunctionType(core.bool, [])
   }),
   methods: () => ({
-    [_initMouseScrollEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html.EventTarget, core.int]),
-    [_initWheelEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.int, core.int, core.int, core.int, core.int, core.int, html.EventTarget, core.String, core.int, core.int, core.int, core.int])
+    [_initMouseScrollEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.bool, core.bool, core.bool, core.bool, core.int, html$.EventTarget, core.int]),
+    [_initWheelEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int, core.int, core.int, core.int, core.int, core.int, html$.EventTarget, core.String, core.int, core.int, core.int, core.int])
   }),
   sfields: () => ({
     DOM_DELTA_LINE: core.int,
@@ -91889,15 +91892,15 @@
     DOM_DELTA_PIXEL: core.int
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html.WheelEvent, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html.WheelEvent, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$.WheelEvent, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$.WheelEvent, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-html.WheelEvent.DOM_DELTA_LINE = 1;
-html.WheelEvent.DOM_DELTA_PAGE = 2;
-html.WheelEvent.DOM_DELTA_PIXEL = 0;
-dart.registerExtension(dart.global.WheelEvent, html.WheelEvent);
+html$.WheelEvent.DOM_DELTA_LINE = 1;
+html$.WheelEvent.DOM_DELTA_PAGE = 2;
+html$.WheelEvent.DOM_DELTA_PIXEL = 0;
+dart.registerExtension(dart.global.WheelEvent, html$.WheelEvent);
 const _open2 = Symbol('_open2');
 const _open3 = Symbol('_open3');
 const _location = Symbol('_location');
@@ -92073,7 +92076,7 @@
   'styleMedia',
   'toolbar'
 ]);
-html.Window = class Window extends html.EventTarget {
+html$.Window = class Window extends html$.EventTarget {
   get [dartx.animationFrame]() {
     let completer = CompleterOfnum().sync();
     this[dartx.requestAnimationFrame](dart.fn(time => {
@@ -92093,13 +92096,13 @@
   [dartx.open](url, name, options) {
     if (options === void 0) options = null;
     if (options == null) {
-      return html._DOMWindowCrossFrame._createSafe(this[_open2](url, name));
+      return html$._DOMWindowCrossFrame._createSafe(this[_open2](url, name));
     } else {
-      return html._DOMWindowCrossFrame._createSafe(this[_open3](url, name, options));
+      return html$._DOMWindowCrossFrame._createSafe(this[_open3](url, name, options));
     }
   }
   get [dartx.location]() {
-    return html.Location._check(this[_location]);
+    return html$.Location._check(this[_location]);
   }
   set [dartx.location](value) {
     this[_location] = value;
@@ -92112,7 +92115,7 @@
   }
   [dartx.requestAnimationFrame](callback) {
     this[_ensureRequestAnimationFrame]();
-    return this[_requestAnimationFrame](html._wrapZone(core.num, dart.dynamic)(callback));
+    return this[_requestAnimationFrame](html$._wrapZone(core.num, dart.dynamic)(callback));
   }
   [dartx.cancelAnimationFrame](id) {
     this[_ensureRequestAnimationFrame]();
@@ -92147,14 +92150,14 @@
     return this.indexedDB || this.webkitIndexedDB || this.mozIndexedDB;
   }
   get [dartx.console]() {
-    return html.Console._safeConsole;
+    return html$.Console._safeConsole;
   }
   [dartx.requestFileSystem](size, opts) {
     let persistent = opts && 'persistent' in opts ? opts.persistent : false;
     return this[_requestFileSystem](dart.test(persistent) ? 1 : 0, size);
   }
   static get supportsPointConversions() {
-    return html.DomPoint.supported;
+    return html$.DomPoint.supported;
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -92217,7 +92220,7 @@
     return this.offscreenBuffering;
   }
   get [dartx.opener]() {
-    return html._convertNativeToDart_Window(this[_get_opener]);
+    return html$._convertNativeToDart_Window(this[_get_opener]);
   }
   get [_get_opener]() {
     return this.opener;
@@ -92241,7 +92244,7 @@
     return this.pageYOffset;
   }
   get [dartx.parent]() {
-    return html._convertNativeToDart_Window(this[_get_parent]);
+    return html$._convertNativeToDart_Window(this[_get_parent]);
   }
   get [_get_parent]() {
     return this.parent;
@@ -92268,7 +92271,7 @@
     return this.scrollbars;
   }
   get [dartx.self]() {
-    return html._convertNativeToDart_Window(this[_get_self]);
+    return html$._convertNativeToDart_Window(this[_get_self]);
   }
   get [_get_self]() {
     return this.self;
@@ -92295,23 +92298,23 @@
     return this.toolbar;
   }
   get [dartx.top]() {
-    return html._convertNativeToDart_Window(this[_get_top]);
+    return html$._convertNativeToDart_Window(this[_get_top]);
   }
   get [_get_top]() {
     return this.top;
   }
   get [dartx.window]() {
-    return html._convertNativeToDart_Window(this[_get_window]);
+    return html$._convertNativeToDart_Window(this[_get_window]);
   }
   get [_get_window]() {
     return this.window;
   }
   [__getter__](index_OR_name) {
     if (typeof index_OR_name == 'number') {
-      return html._convertNativeToDart_Window(this[__getter___1](index_OR_name));
+      return html$._convertNativeToDart_Window(this[__getter___1](index_OR_name));
     }
     if (typeof index_OR_name == 'string') {
-      return html._convertNativeToDart_Window(this[__getter___2](index_OR_name));
+      return html$._convertNativeToDart_Window(this[__getter___2](index_OR_name));
     }
     dart.throw(new core.ArgumentError("Incorrect number or type of arguments"));
   }
@@ -92575,232 +92578,232 @@
     return this.setTimeout.apply(this, args);
   }
   get [dartx.onContentLoaded]() {
-    return html.Window.contentLoadedEvent.forTarget(this);
+    return html$.Window.contentLoadedEvent.forTarget(this);
   }
   get [dartx.onAbort]() {
-    return html.Element.abortEvent.forTarget(this);
+    return html$.Element.abortEvent.forTarget(this);
   }
   get [dartx.onBlur]() {
-    return html.Element.blurEvent.forTarget(this);
+    return html$.Element.blurEvent.forTarget(this);
   }
   get [dartx.onCanPlay]() {
-    return html.Element.canPlayEvent.forTarget(this);
+    return html$.Element.canPlayEvent.forTarget(this);
   }
   get [dartx.onCanPlayThrough]() {
-    return html.Element.canPlayThroughEvent.forTarget(this);
+    return html$.Element.canPlayThroughEvent.forTarget(this);
   }
   get [dartx.onChange]() {
-    return html.Element.changeEvent.forTarget(this);
+    return html$.Element.changeEvent.forTarget(this);
   }
   get [dartx.onClick]() {
-    return html.Element.clickEvent.forTarget(this);
+    return html$.Element.clickEvent.forTarget(this);
   }
   get [dartx.onContextMenu]() {
-    return html.Element.contextMenuEvent.forTarget(this);
+    return html$.Element.contextMenuEvent.forTarget(this);
   }
   get [dartx.onDoubleClick]() {
-    return html.Element.doubleClickEvent.forTarget(this);
+    return html$.Element.doubleClickEvent.forTarget(this);
   }
   get [dartx.onDeviceMotion]() {
-    return html.Window.deviceMotionEvent.forTarget(this);
+    return html$.Window.deviceMotionEvent.forTarget(this);
   }
   get [dartx.onDeviceOrientation]() {
-    return html.Window.deviceOrientationEvent.forTarget(this);
+    return html$.Window.deviceOrientationEvent.forTarget(this);
   }
   get [dartx.onDrag]() {
-    return html.Element.dragEvent.forTarget(this);
+    return html$.Element.dragEvent.forTarget(this);
   }
   get [dartx.onDragEnd]() {
-    return html.Element.dragEndEvent.forTarget(this);
+    return html$.Element.dragEndEvent.forTarget(this);
   }
   get [dartx.onDragEnter]() {
-    return html.Element.dragEnterEvent.forTarget(this);
+    return html$.Element.dragEnterEvent.forTarget(this);
   }
   get [dartx.onDragLeave]() {
-    return html.Element.dragLeaveEvent.forTarget(this);
+    return html$.Element.dragLeaveEvent.forTarget(this);
   }
   get [dartx.onDragOver]() {
-    return html.Element.dragOverEvent.forTarget(this);
+    return html$.Element.dragOverEvent.forTarget(this);
   }
   get [dartx.onDragStart]() {
-    return html.Element.dragStartEvent.forTarget(this);
+    return html$.Element.dragStartEvent.forTarget(this);
   }
   get [dartx.onDrop]() {
-    return html.Element.dropEvent.forTarget(this);
+    return html$.Element.dropEvent.forTarget(this);
   }
   get [dartx.onDurationChange]() {
-    return html.Element.durationChangeEvent.forTarget(this);
+    return html$.Element.durationChangeEvent.forTarget(this);
   }
   get [dartx.onEmptied]() {
-    return html.Element.emptiedEvent.forTarget(this);
+    return html$.Element.emptiedEvent.forTarget(this);
   }
   get [dartx.onEnded]() {
-    return html.Element.endedEvent.forTarget(this);
+    return html$.Element.endedEvent.forTarget(this);
   }
   get [dartx.onError]() {
-    return html.Element.errorEvent.forTarget(this);
+    return html$.Element.errorEvent.forTarget(this);
   }
   get [dartx.onFocus]() {
-    return html.Element.focusEvent.forTarget(this);
+    return html$.Element.focusEvent.forTarget(this);
   }
   get [dartx.onHashChange]() {
-    return html.Window.hashChangeEvent.forTarget(this);
+    return html$.Window.hashChangeEvent.forTarget(this);
   }
   get [dartx.onInput]() {
-    return html.Element.inputEvent.forTarget(this);
+    return html$.Element.inputEvent.forTarget(this);
   }
   get [dartx.onInvalid]() {
-    return html.Element.invalidEvent.forTarget(this);
+    return html$.Element.invalidEvent.forTarget(this);
   }
   get [dartx.onKeyDown]() {
-    return html.Element.keyDownEvent.forTarget(this);
+    return html$.Element.keyDownEvent.forTarget(this);
   }
   get [dartx.onKeyPress]() {
-    return html.Element.keyPressEvent.forTarget(this);
+    return html$.Element.keyPressEvent.forTarget(this);
   }
   get [dartx.onKeyUp]() {
-    return html.Element.keyUpEvent.forTarget(this);
+    return html$.Element.keyUpEvent.forTarget(this);
   }
   get [dartx.onLoad]() {
-    return html.Element.loadEvent.forTarget(this);
+    return html$.Element.loadEvent.forTarget(this);
   }
   get [dartx.onLoadedData]() {
-    return html.Element.loadedDataEvent.forTarget(this);
+    return html$.Element.loadedDataEvent.forTarget(this);
   }
   get [dartx.onLoadedMetadata]() {
-    return html.Element.loadedMetadataEvent.forTarget(this);
+    return html$.Element.loadedMetadataEvent.forTarget(this);
   }
   get [dartx.onLoadStart]() {
-    return html.Window.loadStartEvent.forTarget(this);
+    return html$.Window.loadStartEvent.forTarget(this);
   }
   get [dartx.onMessage]() {
-    return html.Window.messageEvent.forTarget(this);
+    return html$.Window.messageEvent.forTarget(this);
   }
   get [dartx.onMouseDown]() {
-    return html.Element.mouseDownEvent.forTarget(this);
+    return html$.Element.mouseDownEvent.forTarget(this);
   }
   get [dartx.onMouseEnter]() {
-    return html.Element.mouseEnterEvent.forTarget(this);
+    return html$.Element.mouseEnterEvent.forTarget(this);
   }
   get [dartx.onMouseLeave]() {
-    return html.Element.mouseLeaveEvent.forTarget(this);
+    return html$.Element.mouseLeaveEvent.forTarget(this);
   }
   get [dartx.onMouseMove]() {
-    return html.Element.mouseMoveEvent.forTarget(this);
+    return html$.Element.mouseMoveEvent.forTarget(this);
   }
   get [dartx.onMouseOut]() {
-    return html.Element.mouseOutEvent.forTarget(this);
+    return html$.Element.mouseOutEvent.forTarget(this);
   }
   get [dartx.onMouseOver]() {
-    return html.Element.mouseOverEvent.forTarget(this);
+    return html$.Element.mouseOverEvent.forTarget(this);
   }
   get [dartx.onMouseUp]() {
-    return html.Element.mouseUpEvent.forTarget(this);
+    return html$.Element.mouseUpEvent.forTarget(this);
   }
   get [dartx.onMouseWheel]() {
-    return html.Element.mouseWheelEvent.forTarget(this);
+    return html$.Element.mouseWheelEvent.forTarget(this);
   }
   get [dartx.onOffline]() {
-    return html.Window.offlineEvent.forTarget(this);
+    return html$.Window.offlineEvent.forTarget(this);
   }
   get [dartx.onOnline]() {
-    return html.Window.onlineEvent.forTarget(this);
+    return html$.Window.onlineEvent.forTarget(this);
   }
   get [dartx.onPageHide]() {
-    return html.Window.pageHideEvent.forTarget(this);
+    return html$.Window.pageHideEvent.forTarget(this);
   }
   get [dartx.onPageShow]() {
-    return html.Window.pageShowEvent.forTarget(this);
+    return html$.Window.pageShowEvent.forTarget(this);
   }
   get [dartx.onPause]() {
-    return html.Element.pauseEvent.forTarget(this);
+    return html$.Element.pauseEvent.forTarget(this);
   }
   get [dartx.onPlay]() {
-    return html.Element.playEvent.forTarget(this);
+    return html$.Element.playEvent.forTarget(this);
   }
   get [dartx.onPlaying]() {
-    return html.Element.playingEvent.forTarget(this);
+    return html$.Element.playingEvent.forTarget(this);
   }
   get [dartx.onPopState]() {
-    return html.Window.popStateEvent.forTarget(this);
+    return html$.Window.popStateEvent.forTarget(this);
   }
   get [dartx.onProgress]() {
-    return html.Window.progressEvent.forTarget(this);
+    return html$.Window.progressEvent.forTarget(this);
   }
   get [dartx.onRateChange]() {
-    return html.Element.rateChangeEvent.forTarget(this);
+    return html$.Element.rateChangeEvent.forTarget(this);
   }
   get [dartx.onReset]() {
-    return html.Element.resetEvent.forTarget(this);
+    return html$.Element.resetEvent.forTarget(this);
   }
   get [dartx.onResize]() {
-    return html.Element.resizeEvent.forTarget(this);
+    return html$.Element.resizeEvent.forTarget(this);
   }
   get [dartx.onScroll]() {
-    return html.Element.scrollEvent.forTarget(this);
+    return html$.Element.scrollEvent.forTarget(this);
   }
   get [dartx.onSearch]() {
-    return html.Element.searchEvent.forTarget(this);
+    return html$.Element.searchEvent.forTarget(this);
   }
   get [dartx.onSeeked]() {
-    return html.Element.seekedEvent.forTarget(this);
+    return html$.Element.seekedEvent.forTarget(this);
   }
   get [dartx.onSeeking]() {
-    return html.Element.seekingEvent.forTarget(this);
+    return html$.Element.seekingEvent.forTarget(this);
   }
   get [dartx.onSelect]() {
-    return html.Element.selectEvent.forTarget(this);
+    return html$.Element.selectEvent.forTarget(this);
   }
   get [dartx.onStalled]() {
-    return html.Element.stalledEvent.forTarget(this);
+    return html$.Element.stalledEvent.forTarget(this);
   }
   get [dartx.onStorage]() {
-    return html.Window.storageEvent.forTarget(this);
+    return html$.Window.storageEvent.forTarget(this);
   }
   get [dartx.onSubmit]() {
-    return html.Element.submitEvent.forTarget(this);
+    return html$.Element.submitEvent.forTarget(this);
   }
   get [dartx.onSuspend]() {
-    return html.Element.suspendEvent.forTarget(this);
+    return html$.Element.suspendEvent.forTarget(this);
   }
   get [dartx.onTimeUpdate]() {
-    return html.Element.timeUpdateEvent.forTarget(this);
+    return html$.Element.timeUpdateEvent.forTarget(this);
   }
   get [dartx.onTouchCancel]() {
-    return html.Element.touchCancelEvent.forTarget(this);
+    return html$.Element.touchCancelEvent.forTarget(this);
   }
   get [dartx.onTouchEnd]() {
-    return html.Element.touchEndEvent.forTarget(this);
+    return html$.Element.touchEndEvent.forTarget(this);
   }
   get [dartx.onTouchMove]() {
-    return html.Element.touchMoveEvent.forTarget(this);
+    return html$.Element.touchMoveEvent.forTarget(this);
   }
   get [dartx.onTouchStart]() {
-    return html.Element.touchStartEvent.forTarget(this);
+    return html$.Element.touchStartEvent.forTarget(this);
   }
   get [dartx.onTransitionEnd]() {
-    return html.Element.transitionEndEvent.forTarget(this);
+    return html$.Element.transitionEndEvent.forTarget(this);
   }
   get [dartx.onUnload]() {
-    return html.Window.unloadEvent.forTarget(this);
+    return html$.Window.unloadEvent.forTarget(this);
   }
   get [dartx.onVolumeChange]() {
-    return html.Element.volumeChangeEvent.forTarget(this);
+    return html$.Element.volumeChangeEvent.forTarget(this);
   }
   get [dartx.onWaiting]() {
-    return html.Element.waitingEvent.forTarget(this);
+    return html$.Element.waitingEvent.forTarget(this);
   }
   get [dartx.onAnimationEnd]() {
-    return html.Window.animationEndEvent.forTarget(this);
+    return html$.Window.animationEndEvent.forTarget(this);
   }
   get [dartx.onAnimationIteration]() {
-    return html.Window.animationIterationEvent.forTarget(this);
+    return html$.Window.animationIterationEvent.forTarget(this);
   }
   get [dartx.onAnimationStart]() {
-    return html.Window.animationStartEvent.forTarget(this);
+    return html$.Window.animationStartEvent.forTarget(this);
   }
   get [dartx.onBeforeUnload]() {
-    return html.Window.beforeUnloadEvent.forTarget(this);
+    return html$.Window.beforeUnloadEvent.forTarget(this);
   }
   [dartx.moveTo](p) {
     this[_moveTo](dart.asInt(p.x), dart.asInt(p.y));
@@ -92818,25 +92821,25 @@
     return "scrollY" in this ? this.scrollY[dartx.round]() : this[dartx.document][dartx.documentElement][dartx.scrollTop];
   }
 };
-html.Window[dart.implements] = () => [html.WindowEventHandlers, html.WindowBase, html.GlobalEventHandlers, html._WindowTimers, html.WindowBase64];
-dart.setSignature(html.Window, {
-  constructors: () => ({_: dart.definiteFunctionType(html.Window, [])}),
+html$.Window[dart.implements] = () => [html$.WindowEventHandlers, html$.WindowBase, html$.GlobalEventHandlers, html$._WindowTimers, html$.WindowBase64];
+dart.setSignature(html$.Window, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.Window, [])}),
   fields: () => ({
-    [dartx.applicationCache]: html.ApplicationCache,
-    [dartx.caches]: html.CacheStorage,
+    [dartx.applicationCache]: html$.ApplicationCache,
+    [dartx.caches]: html$.CacheStorage,
     [dartx.closed]: core.bool,
-    [dartx.crypto]: html.Crypto,
+    [dartx.crypto]: html$.Crypto,
     [dartx.defaultStatus]: core.String,
     [dartx.defaultstatus]: core.String,
     [dartx.devicePixelRatio]: core.double,
-    [dartx.history]: html.History,
+    [dartx.history]: html$.History,
     [dartx.innerHeight]: core.int,
     [dartx.innerWidth]: core.int,
-    [dartx.localStorage]: html.Storage,
-    [dartx.locationbar]: html.BarProp,
-    [dartx.menubar]: html.BarProp,
+    [dartx.localStorage]: html$.Storage,
+    [dartx.locationbar]: html$.BarProp,
+    [dartx.menubar]: html$.BarProp,
     [dartx.name]: core.String,
-    [dartx.navigator]: html.Navigator,
+    [dartx.navigator]: html$.Navigator,
     [dartx.offscreenBuffering]: core.bool,
     [_get_opener]: dart.dynamic,
     [dartx.orientation]: core.int,
@@ -92845,111 +92848,111 @@
     [_pageXOffset]: core.double,
     [_pageYOffset]: core.double,
     [_get_parent]: dart.dynamic,
-    [dartx.performance]: html.Performance,
-    [dartx.screen]: html.Screen,
+    [dartx.performance]: html$.Performance,
+    [dartx.screen]: html$.Screen,
     [dartx.screenLeft]: core.int,
     [dartx.screenTop]: core.int,
     [dartx.screenX]: core.int,
     [dartx.screenY]: core.int,
-    [dartx.scrollbars]: html.BarProp,
+    [dartx.scrollbars]: html$.BarProp,
     [_get_self]: dart.dynamic,
-    [dartx.sessionStorage]: html.Storage,
-    [dartx.speechSynthesis]: html.SpeechSynthesis,
+    [dartx.sessionStorage]: html$.Storage,
+    [dartx.speechSynthesis]: html$.SpeechSynthesis,
     [dartx.status]: core.String,
-    [dartx.statusbar]: html.BarProp,
-    [dartx.styleMedia]: html.StyleMedia,
-    [dartx.toolbar]: html.BarProp,
+    [dartx.statusbar]: html$.BarProp,
+    [dartx.styleMedia]: html$.StyleMedia,
+    [dartx.toolbar]: html$.BarProp,
     [_get_top]: dart.dynamic,
     [_get_window]: dart.dynamic
   }),
   getters: () => ({
     [dartx.animationFrame]: dart.definiteFunctionType(async.Future$(core.num), []),
-    [dartx.document]: dart.definiteFunctionType(html.Document, []),
-    [dartx.location]: dart.definiteFunctionType(html.Location, []),
+    [dartx.document]: dart.definiteFunctionType(html$.Document, []),
+    [dartx.location]: dart.definiteFunctionType(html$.Location, []),
     [_location]: dart.definiteFunctionType(dart.dynamic, []),
     [dartx.indexedDB]: dart.definiteFunctionType(indexed_db.IdbFactory, []),
-    [dartx.console]: dart.definiteFunctionType(html.Console, []),
-    [dartx.opener]: dart.definiteFunctionType(html.WindowBase, []),
-    [dartx.parent]: dart.definiteFunctionType(html.WindowBase, []),
-    [dartx.self]: dart.definiteFunctionType(html.WindowBase, []),
-    [dartx.top]: dart.definiteFunctionType(html.WindowBase, []),
-    [dartx.window]: dart.definiteFunctionType(html.WindowBase, []),
-    [dartx.onContentLoaded]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onDeviceMotion]: dart.definiteFunctionType(async.Stream$(html.DeviceMotionEvent), []),
-    [dartx.onDeviceOrientation]: dart.definiteFunctionType(async.Stream$(html.DeviceOrientationEvent), []),
-    [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onHashChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html.KeyboardEvent), []),
-    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), []),
-    [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html.MouseEvent), []),
-    [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html.WheelEvent), []),
-    [dartx.onOffline]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onOnline]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPageHide]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPageShow]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onPopState]: dart.definiteFunctionType(async.Stream$(html.PopStateEvent), []),
-    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onStorage]: dart.definiteFunctionType(async.Stream$(html.StorageEvent), []),
-    [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html.TouchEvent), []),
-    [dartx.onTransitionEnd]: dart.definiteFunctionType(async.Stream$(html.TransitionEvent), []),
-    [dartx.onUnload]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onAnimationEnd]: dart.definiteFunctionType(async.Stream$(html.AnimationEvent), []),
-    [dartx.onAnimationIteration]: dart.definiteFunctionType(async.Stream$(html.AnimationEvent), []),
-    [dartx.onAnimationStart]: dart.definiteFunctionType(async.Stream$(html.AnimationEvent), []),
-    [dartx.onBeforeUnload]: dart.definiteFunctionType(async.Stream$(html.Event), []),
+    [dartx.console]: dart.definiteFunctionType(html$.Console, []),
+    [dartx.opener]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.parent]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.self]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.top]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.window]: dart.definiteFunctionType(html$.WindowBase, []),
+    [dartx.onContentLoaded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onAbort]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onBlur]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onCanPlayThrough]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onClick]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onContextMenu]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDoubleClick]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onDeviceMotion]: dart.definiteFunctionType(async.Stream$(html$.DeviceMotionEvent), []),
+    [dartx.onDeviceOrientation]: dart.definiteFunctionType(async.Stream$(html$.DeviceOrientationEvent), []),
+    [dartx.onDrag]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnd]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDragStart]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDrop]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onDurationChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEmptied]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onFocus]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onHashChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInput]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onInvalid]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onKeyDown]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyPress]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onKeyUp]: dart.definiteFunctionType(async.Stream$(html$.KeyboardEvent), []),
+    [dartx.onLoad]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedData]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadedMetadata]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onLoadStart]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    [dartx.onMouseDown]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseEnter]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseLeave]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseMove]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOut]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseOver]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseUp]: dart.definiteFunctionType(async.Stream$(html$.MouseEvent), []),
+    [dartx.onMouseWheel]: dart.definiteFunctionType(async.Stream$(html$.WheelEvent), []),
+    [dartx.onOffline]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onOnline]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPageHide]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPageShow]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPause]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlay]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPlaying]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onPopState]: dart.definiteFunctionType(async.Stream$(html$.PopStateEvent), []),
+    [dartx.onProgress]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onRateChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onReset]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onResize]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onScroll]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSearch]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSeeked]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSeeking]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSelect]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStalled]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onStorage]: dart.definiteFunctionType(async.Stream$(html$.StorageEvent), []),
+    [dartx.onSubmit]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onSuspend]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTimeUpdate]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onTouchCancel]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchEnd]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchMove]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTouchStart]: dart.definiteFunctionType(async.Stream$(html$.TouchEvent), []),
+    [dartx.onTransitionEnd]: dart.definiteFunctionType(async.Stream$(html$.TransitionEvent), []),
+    [dartx.onUnload]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onVolumeChange]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onWaiting]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onAnimationEnd]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
+    [dartx.onAnimationIteration]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
+    [dartx.onAnimationStart]: dart.definiteFunctionType(async.Stream$(html$.AnimationEvent), []),
+    [dartx.onBeforeUnload]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
     [dartx.pageXOffset]: dart.definiteFunctionType(core.int, []),
     [dartx.pageYOffset]: dart.definiteFunctionType(core.int, []),
     [dartx.scrollX]: dart.definiteFunctionType(core.int, []),
@@ -92958,19 +92961,19 @@
   setters: () => ({
     [dartx.location]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
     [_location]: dart.definiteFunctionType(dart.void, [dart.dynamic]),
-    [dartx.opener]: dart.definiteFunctionType(dart.void, [html.Window])
+    [dartx.opener]: dart.definiteFunctionType(dart.void, [html$.Window])
   }),
   methods: () => ({
-    [_open2]: dart.definiteFunctionType(html.WindowBase, [dart.dynamic, dart.dynamic]),
-    [_open3]: dart.definiteFunctionType(html.WindowBase, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    [dartx.open]: dart.definiteFunctionType(html.WindowBase, [core.String, core.String], [core.String]),
-    [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html.FrameRequestCallback]),
+    [_open2]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic, dart.dynamic]),
+    [_open3]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    [dartx.open]: dart.definiteFunctionType(html$.WindowBase, [core.String, core.String], [core.String]),
+    [dartx.requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback]),
     [dartx.cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
-    [_requestAnimationFrame]: dart.definiteFunctionType(core.int, [html.FrameRequestCallback]),
+    [_requestAnimationFrame]: dart.definiteFunctionType(core.int, [html$.FrameRequestCallback]),
     [_cancelAnimationFrame]: dart.definiteFunctionType(dart.void, [core.int]),
     [_ensureRequestAnimationFrame]: dart.definiteFunctionType(dart.dynamic, []),
-    [dartx.requestFileSystem]: dart.definiteFunctionType(async.Future$(html.FileSystem), [core.int], {persistent: core.bool}),
-    [__getter__]: dart.definiteFunctionType(html.WindowBase, [dart.dynamic]),
+    [dartx.requestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int], {persistent: core.bool}),
+    [__getter__]: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic]),
     [__getter___1]: dart.definiteFunctionType(dart.dynamic, [core.int]),
     [__getter___2]: dart.definiteFunctionType(dart.dynamic, [core.String]),
     [dartx.alert]: dart.definiteFunctionType(dart.void, [], [core.String]),
@@ -92980,13 +92983,13 @@
     [_fetch_1]: dart.definiteFunctionType(async.Future, [dart.dynamic, dart.dynamic]),
     [_fetch_2]: dart.definiteFunctionType(async.Future, [dart.dynamic]),
     [dartx.find]: dart.definiteFunctionType(core.bool, [core.String, core.bool, core.bool, core.bool, core.bool, core.bool, core.bool]),
-    [_getComputedStyle]: dart.definiteFunctionType(html.CssStyleDeclaration, [html.Element, core.String]),
-    [dartx.getMatchedCssRules]: dart.definiteFunctionType(core.List$(html.CssRule), [html.Element, core.String]),
-    [dartx.getSelection]: dart.definiteFunctionType(html.Selection, []),
-    [dartx.matchMedia]: dart.definiteFunctionType(html.MediaQueryList, [core.String]),
+    [_getComputedStyle]: dart.definiteFunctionType(html$.CssStyleDeclaration, [html$.Element, core.String]),
+    [dartx.getMatchedCssRules]: dart.definiteFunctionType(core.List$(html$.CssRule), [html$.Element, core.String]),
+    [dartx.getSelection]: dart.definiteFunctionType(html$.Selection, []),
+    [dartx.matchMedia]: dart.definiteFunctionType(html$.MediaQueryList, [core.String]),
     [dartx.moveBy]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
     [_moveTo]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
-    [dartx.openDatabase]: dart.definiteFunctionType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [html.DatabaseCallback]),
+    [dartx.openDatabase]: dart.definiteFunctionType(web_sql.SqlDatabase, [core.String, core.String, core.String, core.int], [html$.DatabaseCallback]),
     [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [ListOfMessagePort()]),
     [_postMessage_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, ListOfMessagePort()]),
     [_postMessage_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
@@ -93012,10 +93015,10 @@
     [_scrollTo_4]: dart.definiteFunctionType(dart.void, [core.int, core.int]),
     [_scrollTo_5]: dart.definiteFunctionType(dart.void, [core.int, core.int, dart.dynamic]),
     [dartx.stop]: dart.definiteFunctionType(dart.void, []),
-    [__requestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int, html._FileSystemCallback], [html._ErrorCallback]),
-    [_requestFileSystem]: dart.definiteFunctionType(async.Future$(html.FileSystem), [core.int, core.int]),
-    [_resolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html._EntryCallback], [html._ErrorCallback]),
-    [dartx.resolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html.Entry), [core.String]),
+    [__requestFileSystem]: dart.definiteFunctionType(dart.void, [core.int, core.int, html$._FileSystemCallback], [html$._ErrorCallback]),
+    [_requestFileSystem]: dart.definiteFunctionType(async.Future$(html$.FileSystem), [core.int, core.int]),
+    [_resolveLocalFileSystemUrl]: dart.definiteFunctionType(dart.void, [core.String, html$._EntryCallback], [html$._ErrorCallback]),
+    [dartx.resolveLocalFileSystemUrl]: dart.definiteFunctionType(async.Future$(html$.Entry), [core.String]),
     [dartx.atob]: dart.definiteFunctionType(core.String, [core.String]),
     [dartx.btoa]: dart.definiteFunctionType(core.String, [core.String]),
     [_setInterval_String]: dart.definiteFunctionType(core.int, [core.String], [core.int, core.Object]),
@@ -93050,9 +93053,9 @@
   }),
   sgetters: () => ({supportsPointConversions: dart.definiteFunctionType(core.bool, [])})
 });
-html.Window.PERSISTENT = 1;
-html.Window.TEMPORARY = 0;
-dart.defineLazy(html.Window, {
+html$.Window.PERSISTENT = 1;
+html$.Window.TEMPORARY = 0;
+dart.defineLazy(html$.Window, {
   get contentLoadedEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('DOMContentLoaded'));
   },
@@ -93105,13 +93108,13 @@
     return dart.const(new (EventStreamProviderOfAnimationEvent())('webkitAnimationStart'));
   },
   get beforeUnloadEvent() {
-    return dart.const(new html._BeforeUnloadEventStreamProvider('beforeunload'));
+    return dart.const(new html$._BeforeUnloadEventStreamProvider('beforeunload'));
   }
 });
-dart.registerExtension(dart.global.Window, html.Window);
-dart.registerExtension(dart.global.DOMWindow, html.Window);
+dart.registerExtension(dart.global.Window, html$.Window);
+dart.registerExtension(dart.global.DOMWindow, html$.Window);
 const _returnValue = Symbol('_returnValue');
-html._WrappedEvent = class _WrappedEvent extends core.Object {
+html$._WrappedEvent = class _WrappedEvent extends core.Object {
   new(wrapped) {
     this.wrapped = wrapped;
     this[_selector] = null;
@@ -93156,8 +93159,8 @@
     if (this[_selector] == null) {
       dart.throw(new core.UnsupportedError('Cannot call matchingTarget if this Event did' + ' not arise as a result of event delegation.'));
     }
-    let currentTarget = html.Element._check(this.currentTarget);
-    let target = html.Element._check(this.target);
+    let currentTarget = html$.Element._check(this.currentTarget);
+    let target = html$.Element._check(this.target);
     let matchedTarget = null;
     do {
       if (dart.test(target[dartx.matches](this[_selector]))) return target;
@@ -93175,24 +93178,24 @@
     return this.wrapped[_get_target];
   }
 };
-html._WrappedEvent[dart.implements] = () => [html.Event];
-dart.setSignature(html._WrappedEvent, {
-  constructors: () => ({new: dart.definiteFunctionType(html._WrappedEvent, [html.Event])}),
+html$._WrappedEvent[dart.implements] = () => [html$.Event];
+dart.setSignature(html$._WrappedEvent, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._WrappedEvent, [html$.Event])}),
   fields: () => ({
-    wrapped: html.Event,
+    wrapped: html$.Event,
     [_selector]: core.String
   }),
   getters: () => ({
     bubbles: dart.definiteFunctionType(core.bool, []),
     cancelable: dart.definiteFunctionType(core.bool, []),
-    currentTarget: dart.definiteFunctionType(html.EventTarget, []),
+    currentTarget: dart.definiteFunctionType(html$.EventTarget, []),
     defaultPrevented: dart.definiteFunctionType(core.bool, []),
     eventPhase: dart.definiteFunctionType(core.int, []),
-    target: dart.definiteFunctionType(html.EventTarget, []),
+    target: dart.definiteFunctionType(html$.EventTarget, []),
     timeStamp: dart.definiteFunctionType(core.int, []),
     type: dart.definiteFunctionType(core.String, []),
-    matchingTarget: dart.definiteFunctionType(html.Element, []),
-    path: dart.definiteFunctionType(core.List$(html.Node), []),
+    matchingTarget: dart.definiteFunctionType(html$.Element, []),
+    path: dart.definiteFunctionType(core.List$(html$.Node), []),
     [_get_currentTarget]: dart.definiteFunctionType(dart.dynamic, []),
     [_get_target]: dart.definiteFunctionType(dart.dynamic, [])
   }),
@@ -93203,7 +93206,7 @@
     stopPropagation: dart.definiteFunctionType(dart.void, [])
   })
 });
-html._BeforeUnloadEvent = class _BeforeUnloadEvent extends html._WrappedEvent {
+html$._BeforeUnloadEvent = class _BeforeUnloadEvent extends html$._WrappedEvent {
   new(base) {
     this[_returnValue] = null;
     super.new(base);
@@ -93218,15 +93221,15 @@
     }
   }
 };
-html._BeforeUnloadEvent[dart.implements] = () => [html.BeforeUnloadEvent];
-dart.setSignature(html._BeforeUnloadEvent, {
-  constructors: () => ({new: dart.definiteFunctionType(html._BeforeUnloadEvent, [html.Event])}),
+html$._BeforeUnloadEvent[dart.implements] = () => [html$.BeforeUnloadEvent];
+dart.setSignature(html$._BeforeUnloadEvent, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._BeforeUnloadEvent, [html$.Event])}),
   fields: () => ({[_returnValue]: core.String}),
   getters: () => ({returnValue: dart.definiteFunctionType(core.String, [])}),
   setters: () => ({returnValue: dart.definiteFunctionType(dart.void, [core.String])})
 });
 const _eventType = Symbol('_eventType');
-html._BeforeUnloadEventStreamProvider = class _BeforeUnloadEventStreamProvider extends core.Object {
+html$._BeforeUnloadEventStreamProvider = class _BeforeUnloadEventStreamProvider extends core.Object {
   new(eventType) {
     this[_eventType] = eventType;
   }
@@ -93235,7 +93238,7 @@
     let stream = new (_EventStreamOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
     let controller = StreamControllerOfBeforeUnloadEvent().new({sync: true});
     stream.listen(dart.fn(event => {
-      let wrapped = new html._BeforeUnloadEvent(event);
+      let wrapped = new html$._BeforeUnloadEvent(event);
       controller.add(wrapped);
     }, BeforeUnloadEventToNull()));
     return controller.stream;
@@ -93252,31 +93255,31 @@
     return new (_ElementListEventStreamImplOfBeforeUnloadEvent())(e, this[_eventType], useCapture);
   }
 };
-html._BeforeUnloadEventStreamProvider[dart.implements] = () => [EventStreamProviderOfBeforeUnloadEvent()];
-dart.setSignature(html._BeforeUnloadEventStreamProvider, {
-  constructors: () => ({new: dart.definiteFunctionType(html._BeforeUnloadEventStreamProvider, [core.String])}),
+html$._BeforeUnloadEventStreamProvider[dart.implements] = () => [EventStreamProviderOfBeforeUnloadEvent()];
+dart.setSignature(html$._BeforeUnloadEventStreamProvider, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._BeforeUnloadEventStreamProvider, [core.String])}),
   fields: () => ({[_eventType]: core.String}),
   methods: () => ({
-    forTarget: dart.definiteFunctionType(async.Stream$(html.BeforeUnloadEvent), [html.EventTarget], {useCapture: core.bool}),
-    getEventType: dart.definiteFunctionType(core.String, [html.EventTarget]),
-    forElement: dart.definiteFunctionType(html.ElementStream$(html.BeforeUnloadEvent), [html.Element], {useCapture: core.bool}),
-    [_forElementList]: dart.definiteFunctionType(html.ElementStream$(html.BeforeUnloadEvent), [ElementListOfElement()], {useCapture: core.bool})
+    forTarget: dart.definiteFunctionType(async.Stream$(html$.BeforeUnloadEvent), [html$.EventTarget], {useCapture: core.bool}),
+    getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget]),
+    forElement: dart.definiteFunctionType(html$.ElementStream$(html$.BeforeUnloadEvent), [html$.Element], {useCapture: core.bool}),
+    [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(html$.BeforeUnloadEvent), [ElementListOfElement()], {useCapture: core.bool})
   })
 });
-html.WindowBase64 = class WindowBase64 extends _interceptors.Interceptor {
+html$.WindowBase64 = class WindowBase64 extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.WindowBase64, {
-  constructors: () => ({_: dart.definiteFunctionType(html.WindowBase64, [])})
+dart.setSignature(html$.WindowBase64, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WindowBase64, [])})
 });
 dart.defineExtensionNames([
   'focus',
   'focused',
   'visibilityState'
 ]);
-html.WindowClient = class WindowClient extends html.Client {
+html$.WindowClient = class WindowClient extends html$.Client {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -93290,15 +93293,15 @@
     return this.focus.apply(this, args);
   }
 };
-dart.setSignature(html.WindowClient, {
-  constructors: () => ({_: dart.definiteFunctionType(html.WindowClient, [])}),
+dart.setSignature(html$.WindowClient, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WindowClient, [])}),
   fields: () => ({
     [dartx.focused]: core.bool,
     [dartx.visibilityState]: core.String
   }),
   methods: () => ({[dartx.focus]: dart.definiteFunctionType(async.Future, [])})
 });
-dart.registerExtension(dart.global.WindowClient, html.WindowClient);
+dart.registerExtension(dart.global.WindowClient, html$.WindowClient);
 dart.defineExtensionNames([
   'onHashChange',
   'onMessage',
@@ -93308,42 +93311,42 @@
   'onStorage',
   'onUnload'
 ]);
-html.WindowEventHandlers = class WindowEventHandlers extends html.EventTarget {
+html$.WindowEventHandlers = class WindowEventHandlers extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get onHashChange() {
-    return html.WindowEventHandlers.hashChangeEvent.forTarget(this);
+    return html$.WindowEventHandlers.hashChangeEvent.forTarget(this);
   }
   get onMessage() {
-    return html.WindowEventHandlers.messageEvent.forTarget(this);
+    return html$.WindowEventHandlers.messageEvent.forTarget(this);
   }
   get onOffline() {
-    return html.WindowEventHandlers.offlineEvent.forTarget(this);
+    return html$.WindowEventHandlers.offlineEvent.forTarget(this);
   }
   get onOnline() {
-    return html.WindowEventHandlers.onlineEvent.forTarget(this);
+    return html$.WindowEventHandlers.onlineEvent.forTarget(this);
   }
   get onPopState() {
-    return html.WindowEventHandlers.popStateEvent.forTarget(this);
+    return html$.WindowEventHandlers.popStateEvent.forTarget(this);
   }
   get onStorage() {
-    return html.WindowEventHandlers.storageEvent.forTarget(this);
+    return html$.WindowEventHandlers.storageEvent.forTarget(this);
   }
   get onUnload() {
-    return html.WindowEventHandlers.unloadEvent.forTarget(this);
+    return html$.WindowEventHandlers.unloadEvent.forTarget(this);
   }
 };
-dart.setSignature(html.WindowEventHandlers, {
-  constructors: () => ({_: dart.definiteFunctionType(html.WindowEventHandlers, [])}),
+dart.setSignature(html$.WindowEventHandlers, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WindowEventHandlers, [])}),
   getters: () => ({
-    onHashChange: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onMessage: dart.definiteFunctionType(async.Stream$(html.MessageEvent), []),
-    onOffline: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onOnline: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    onPopState: dart.definiteFunctionType(async.Stream$(html.PopStateEvent), []),
-    onStorage: dart.definiteFunctionType(async.Stream$(html.StorageEvent), []),
-    onUnload: dart.definiteFunctionType(async.Stream$(html.Event), [])
+    onHashChange: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onMessage: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), []),
+    onOffline: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onOnline: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    onPopState: dart.definiteFunctionType(async.Stream$(html$.PopStateEvent), []),
+    onStorage: dart.definiteFunctionType(async.Stream$(html$.StorageEvent), []),
+    onUnload: dart.definiteFunctionType(async.Stream$(html$.Event), [])
   }),
   sfields: () => ({
     hashChangeEvent: EventStreamProviderOfEvent(),
@@ -93355,7 +93358,7 @@
     unloadEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineExtensionMembers(html.WindowEventHandlers, [
+dart.defineExtensionMembers(html$.WindowEventHandlers, [
   'onHashChange',
   'onMessage',
   'onOffline',
@@ -93364,7 +93367,7 @@
   'onStorage',
   'onUnload'
 ]);
-dart.defineLazy(html.WindowEventHandlers, {
+dart.defineLazy(html$.WindowEventHandlers, {
   get hashChangeEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('hashchange'));
   },
@@ -93393,12 +93396,12 @@
   'onError',
   'onMessage'
 ]);
-html.Worker = class Worker extends html.EventTarget {
+html$.Worker = class Worker extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(scriptUrl) {
-    return html.Worker._create_1(scriptUrl);
+    return html$.Worker._create_1(scriptUrl);
   }
   static _create_1(scriptUrl) {
     return new self.Worker(scriptUrl);
@@ -93427,21 +93430,21 @@
     return this.terminate.apply(this, args);
   }
   get [dartx.onError]() {
-    return html.Worker.errorEvent.forTarget(this);
+    return html$.Worker.errorEvent.forTarget(this);
   }
   get [dartx.onMessage]() {
-    return html.Worker.messageEvent.forTarget(this);
+    return html$.Worker.messageEvent.forTarget(this);
   }
 };
-html.Worker[dart.implements] = () => [html.AbstractWorker];
-dart.setSignature(html.Worker, {
+html$.Worker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$.Worker, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.Worker, []),
-    new: dart.definiteFunctionType(html.Worker, [core.String])
+    _: dart.definiteFunctionType(html$.Worker, []),
+    new: dart.definiteFunctionType(html$.Worker, [core.String])
   }),
   getters: () => ({
-    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html.Event), []),
-    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html.MessageEvent), [])
+    [dartx.onError]: dart.definiteFunctionType(async.Stream$(html$.Event), []),
+    [dartx.onMessage]: dart.definiteFunctionType(async.Stream$(html$.MessageEvent), [])
   }),
   methods: () => ({
     [dartx.postMessage]: dart.definiteFunctionType(dart.void, [dart.dynamic], [ListOfMessagePort()]),
@@ -93454,10 +93457,10 @@
     messageEvent: EventStreamProviderOfMessageEvent()
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.Worker, [dart.dynamic])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.Worker, [dart.dynamic])}),
   names: ['_create_1']
 });
-dart.defineLazy(html.Worker, {
+dart.defineLazy(html$.Worker, {
   get errorEvent() {
     return dart.const(new (EventStreamProviderOfEvent())('error'));
   },
@@ -93465,16 +93468,16 @@
     return dart.const(new (EventStreamProviderOfMessageEvent())('message'));
   }
 });
-dart.registerExtension(dart.global.Worker, html.Worker);
-html.WorkerConsole = class WorkerConsole extends html.ConsoleBase {
+dart.registerExtension(dart.global.Worker, html$.Worker);
+html$.WorkerConsole = class WorkerConsole extends html$.ConsoleBase {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.WorkerConsole, {
-  constructors: () => ({_: dart.definiteFunctionType(html.WorkerConsole, [])})
+dart.setSignature(html$.WorkerConsole, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WorkerConsole, [])})
 });
-dart.registerExtension(dart.global.WorkerConsole, html.WorkerConsole);
+dart.registerExtension(dart.global.WorkerConsole, html$.WorkerConsole);
 dart.defineExtensionNames([
   'clearMarks',
   'clearMeasures',
@@ -93488,7 +93491,7 @@
   'setResourceTimingBufferSize',
   'memory'
 ]);
-html.WorkerPerformance = class WorkerPerformance extends html.EventTarget {
+html$.WorkerPerformance = class WorkerPerformance extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -93526,15 +93529,15 @@
     return this.webkitSetResourceTimingBufferSize.apply(this, args);
   }
 };
-dart.setSignature(html.WorkerPerformance, {
-  constructors: () => ({_: dart.definiteFunctionType(html.WorkerPerformance, [])}),
-  fields: () => ({[dartx.memory]: html.MemoryInfo}),
+dart.setSignature(html$.WorkerPerformance, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.WorkerPerformance, [])}),
+  fields: () => ({[dartx.memory]: html$.MemoryInfo}),
   methods: () => ({
     [dartx.clearMarks]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.clearMeasures]: dart.definiteFunctionType(dart.void, [core.String]),
-    [dartx.getEntries]: dart.definiteFunctionType(core.List$(html.PerformanceEntry), []),
-    [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html.PerformanceEntry), [core.String, core.String]),
-    [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html.PerformanceEntry), [core.String]),
+    [dartx.getEntries]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), []),
+    [dartx.getEntriesByName]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String, core.String]),
+    [dartx.getEntriesByType]: dart.definiteFunctionType(core.List$(html$.PerformanceEntry), [core.String]),
     [dartx.mark]: dart.definiteFunctionType(dart.void, [core.String]),
     [dartx.measure]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
     [dartx.now]: dart.definiteFunctionType(core.double, []),
@@ -93542,18 +93545,18 @@
     [dartx.setResourceTimingBufferSize]: dart.definiteFunctionType(dart.void, [core.int])
   })
 });
-dart.registerExtension(dart.global.WorkerPerformance, html.WorkerPerformance);
+dart.registerExtension(dart.global.WorkerPerformance, html$.WorkerPerformance);
 dart.defineExtensionNames([
   'createExpression',
   'createNSResolver',
   'evaluate'
 ]);
-html.XPathEvaluator = class XPathEvaluator extends _interceptors.Interceptor {
+html$.XPathEvaluator = class XPathEvaluator extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.XPathEvaluator._create_1();
+    return html$.XPathEvaluator._create_1();
   }
   static _create_1() {
     return new self.XPathEvaluator();
@@ -93568,24 +93571,24 @@
     return this.evaluate.apply(this, args);
   }
 };
-dart.setSignature(html.XPathEvaluator, {
+dart.setSignature(html$.XPathEvaluator, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.XPathEvaluator, []),
-    new: dart.definiteFunctionType(html.XPathEvaluator, [])
+    _: dart.definiteFunctionType(html$.XPathEvaluator, []),
+    new: dart.definiteFunctionType(html$.XPathEvaluator, [])
   }),
   methods: () => ({
-    [dartx.createExpression]: dart.definiteFunctionType(html.XPathExpression, [core.String, html.XPathNSResolver]),
-    [dartx.createNSResolver]: dart.definiteFunctionType(html.XPathNSResolver, [html.Node]),
-    [dartx.evaluate]: dart.definiteFunctionType(html.XPathResult, [core.String, html.Node, html.XPathNSResolver], [core.int, core.Object])
+    [dartx.createExpression]: dart.definiteFunctionType(html$.XPathExpression, [core.String, html$.XPathNSResolver]),
+    [dartx.createNSResolver]: dart.definiteFunctionType(html$.XPathNSResolver, [html$.Node]),
+    [dartx.evaluate]: dart.definiteFunctionType(html$.XPathResult, [core.String, html$.Node, html$.XPathNSResolver], [core.int, core.Object])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.XPathEvaluator, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.XPathEvaluator, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.XPathEvaluator, html.XPathEvaluator);
+dart.registerExtension(dart.global.XPathEvaluator, html$.XPathEvaluator);
 dart.defineExtensionNames([
   'evaluate'
 ]);
-html.XPathExpression = class XPathExpression extends _interceptors.Interceptor {
+html$.XPathExpression = class XPathExpression extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -93593,15 +93596,15 @@
     return this.evaluate.apply(this, args);
   }
 };
-dart.setSignature(html.XPathExpression, {
-  constructors: () => ({_: dart.definiteFunctionType(html.XPathExpression, [])}),
-  methods: () => ({[dartx.evaluate]: dart.definiteFunctionType(html.XPathResult, [html.Node], [core.int, core.Object])})
+dart.setSignature(html$.XPathExpression, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XPathExpression, [])}),
+  methods: () => ({[dartx.evaluate]: dart.definiteFunctionType(html$.XPathResult, [html$.Node], [core.int, core.Object])})
 });
-dart.registerExtension(dart.global.XPathExpression, html.XPathExpression);
+dart.registerExtension(dart.global.XPathExpression, html$.XPathExpression);
 dart.defineExtensionNames([
   'lookupNamespaceUri'
 ]);
-html.XPathNSResolver = class XPathNSResolver extends _interceptors.Interceptor {
+html$.XPathNSResolver = class XPathNSResolver extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -93609,11 +93612,11 @@
     return this.lookupNamespaceURI.apply(this, args);
   }
 };
-dart.setSignature(html.XPathNSResolver, {
-  constructors: () => ({_: dart.definiteFunctionType(html.XPathNSResolver, [])}),
+dart.setSignature(html$.XPathNSResolver, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XPathNSResolver, [])}),
   methods: () => ({[dartx.lookupNamespaceUri]: dart.definiteFunctionType(core.String, [core.String])})
 });
-dart.registerExtension(dart.global.XPathNSResolver, html.XPathNSResolver);
+dart.registerExtension(dart.global.XPathNSResolver, html$.XPathNSResolver);
 dart.defineExtensionNames([
   'iterateNext',
   'snapshotItem',
@@ -93625,7 +93628,7 @@
   'snapshotLength',
   'stringValue'
 ]);
-html.XPathResult = class XPathResult extends _interceptors.Interceptor {
+html$.XPathResult = class XPathResult extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -93657,20 +93660,20 @@
     return this.snapshotItem.apply(this, args);
   }
 };
-dart.setSignature(html.XPathResult, {
-  constructors: () => ({_: dart.definiteFunctionType(html.XPathResult, [])}),
+dart.setSignature(html$.XPathResult, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XPathResult, [])}),
   fields: () => ({
     [dartx.booleanValue]: core.bool,
     [dartx.invalidIteratorState]: core.bool,
     [dartx.numberValue]: core.double,
     [dartx.resultType]: core.int,
-    [dartx.singleNodeValue]: html.Node,
+    [dartx.singleNodeValue]: html$.Node,
     [dartx.snapshotLength]: core.int,
     [dartx.stringValue]: core.String
   }),
   methods: () => ({
-    [dartx.iterateNext]: dart.definiteFunctionType(html.Node, []),
-    [dartx.snapshotItem]: dart.definiteFunctionType(html.Node, [core.int])
+    [dartx.iterateNext]: dart.definiteFunctionType(html$.Node, []),
+    [dartx.snapshotItem]: dart.definiteFunctionType(html$.Node, [core.int])
   }),
   sfields: () => ({
     ANY_TYPE: core.int,
@@ -93685,35 +93688,35 @@
     UNORDERED_NODE_SNAPSHOT_TYPE: core.int
   })
 });
-html.XPathResult.ANY_TYPE = 0;
-html.XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
-html.XPathResult.BOOLEAN_TYPE = 3;
-html.XPathResult.FIRST_ORDERED_NODE_TYPE = 9;
-html.XPathResult.NUMBER_TYPE = 1;
-html.XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;
-html.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;
-html.XPathResult.STRING_TYPE = 2;
-html.XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;
-html.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;
-dart.registerExtension(dart.global.XPathResult, html.XPathResult);
-html.XmlDocument = class XmlDocument extends html.Document {
+html$.XPathResult.ANY_TYPE = 0;
+html$.XPathResult.ANY_UNORDERED_NODE_TYPE = 8;
+html$.XPathResult.BOOLEAN_TYPE = 3;
+html$.XPathResult.FIRST_ORDERED_NODE_TYPE = 9;
+html$.XPathResult.NUMBER_TYPE = 1;
+html$.XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;
+html$.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;
+html$.XPathResult.STRING_TYPE = 2;
+html$.XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;
+html$.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+dart.registerExtension(dart.global.XPathResult, html$.XPathResult);
+html$.XmlDocument = class XmlDocument extends html$.Document {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html.XmlDocument, {
-  constructors: () => ({_: dart.definiteFunctionType(html.XmlDocument, [])})
+dart.setSignature(html$.XmlDocument, {
+  constructors: () => ({_: dart.definiteFunctionType(html$.XmlDocument, [])})
 });
-dart.registerExtension(dart.global.XMLDocument, html.XmlDocument);
+dart.registerExtension(dart.global.XMLDocument, html$.XmlDocument);
 dart.defineExtensionNames([
   'serializeToString'
 ]);
-html.XmlSerializer = class XmlSerializer extends _interceptors.Interceptor {
+html$.XmlSerializer = class XmlSerializer extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.XmlSerializer._create_1();
+    return html$.XmlSerializer._create_1();
   }
   static _create_1() {
     return new XMLSerializer();
@@ -93722,16 +93725,16 @@
     return this.serializeToString.apply(this, args);
   }
 };
-dart.setSignature(html.XmlSerializer, {
+dart.setSignature(html$.XmlSerializer, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.XmlSerializer, []),
-    new: dart.definiteFunctionType(html.XmlSerializer, [])
+    _: dart.definiteFunctionType(html$.XmlSerializer, []),
+    new: dart.definiteFunctionType(html$.XmlSerializer, [])
   }),
-  methods: () => ({[dartx.serializeToString]: dart.definiteFunctionType(core.String, [html.Node])}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.XmlSerializer, [])}),
+  methods: () => ({[dartx.serializeToString]: dart.definiteFunctionType(core.String, [html$.Node])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.XmlSerializer, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.XMLSerializer, html.XmlSerializer);
+dart.registerExtension(dart.global.XMLSerializer, html$.XmlSerializer);
 dart.defineExtensionNames([
   'clearParameters',
   'getParameter',
@@ -93742,12 +93745,12 @@
   'transformToDocument',
   'transformToFragment'
 ]);
-html.XsltProcessor = class XsltProcessor extends _interceptors.Interceptor {
+html$.XsltProcessor = class XsltProcessor extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html.XsltProcessor._create_1();
+    return html$.XsltProcessor._create_1();
   }
   static _create_1() {
     return new XSLTProcessor();
@@ -93780,31 +93783,31 @@
     return this.transformToFragment.apply(this, args);
   }
 };
-dart.setSignature(html.XsltProcessor, {
+dart.setSignature(html$.XsltProcessor, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html.XsltProcessor, []),
-    new: dart.definiteFunctionType(html.XsltProcessor, [])
+    _: dart.definiteFunctionType(html$.XsltProcessor, []),
+    new: dart.definiteFunctionType(html$.XsltProcessor, [])
   }),
   methods: () => ({
     [dartx.clearParameters]: dart.definiteFunctionType(dart.void, []),
     [dartx.getParameter]: dart.definiteFunctionType(core.String, [core.String, core.String]),
-    [dartx.importStylesheet]: dart.definiteFunctionType(dart.void, [html.Node]),
+    [dartx.importStylesheet]: dart.definiteFunctionType(dart.void, [html$.Node]),
     [dartx.removeParameter]: dart.definiteFunctionType(dart.void, [core.String, core.String]),
     [dartx.reset]: dart.definiteFunctionType(dart.void, []),
     [dartx.setParameter]: dart.definiteFunctionType(dart.void, [core.String, core.String, core.String]),
-    [dartx.transformToDocument]: dart.definiteFunctionType(html.Document, [html.Node]),
-    [dartx.transformToFragment]: dart.definiteFunctionType(html.DocumentFragment, [html.Node, html.Document])
+    [dartx.transformToDocument]: dart.definiteFunctionType(html$.Document, [html$.Node]),
+    [dartx.transformToFragment]: dart.definiteFunctionType(html$.DocumentFragment, [html$.Node, html$.Document])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])}),
-  statics: () => ({_create_1: dart.definiteFunctionType(html.XsltProcessor, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$.XsltProcessor, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.XSLTProcessor, html.XsltProcessor);
+dart.registerExtension(dart.global.XSLTProcessor, html$.XsltProcessor);
 dart.defineExtensionNames([
   'name',
   'value'
 ]);
-html._Attr = class _Attr extends html.Node {
+html$._Attr = class _Attr extends html$.Node {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -93818,30 +93821,30 @@
     this.value = value;
   }
 };
-dart.setSignature(html._Attr, {
-  constructors: () => ({_: dart.definiteFunctionType(html._Attr, [])}),
+dart.setSignature(html$._Attr, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._Attr, [])}),
   fields: () => ({
     [dartx.name]: core.String,
     [dartx.value]: core.String
   })
 });
-dart.registerExtension(dart.global.Attr, html._Attr);
-html._Cache = class _Cache extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.Attr, html$._Attr);
+html$._Cache = class _Cache extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._Cache, {
-  constructors: () => ({_: dart.definiteFunctionType(html._Cache, [])})
+dart.setSignature(html$._Cache, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._Cache, [])})
 });
-dart.registerExtension(dart.global.Cache, html._Cache);
-html._CanvasPathMethods = class _CanvasPathMethods extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.Cache, html$._Cache);
+html$._CanvasPathMethods = class _CanvasPathMethods extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._CanvasPathMethods, {
-  constructors: () => ({_: dart.definiteFunctionType(html._CanvasPathMethods, [])})
+dart.setSignature(html$._CanvasPathMethods, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._CanvasPathMethods, [])})
 });
 dart.defineExtensionNames([
   'toString',
@@ -93863,7 +93866,7 @@
   'top',
   'width'
 ]);
-html._ClientRect = class _ClientRect extends _interceptors.Interceptor {
+html$._ClientRect = class _ClientRect extends _interceptors.Interceptor {
   [dartx.toString]() {
     return dart.str`Rectangle (${this[dartx.left]}, ${this[dartx.top]}) ${this[dartx.width]} x ${this[dartx.height]}`;
   }
@@ -93872,7 +93875,7 @@
     return dart.equals(this[dartx.left], dart.dload(other, 'left')) && dart.equals(this[dartx.top], dart.dload(other, 'top')) && dart.equals(this[dartx.width], dart.dload(other, 'width')) && dart.equals(this[dartx.height], dart.dload(other, 'height'));
   }
   get [dartx.hashCode]() {
-    return html._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
+    return html$._JenkinsSmiHash.hash4(dart.hashCode(this[dartx.left]), dart.hashCode(this[dartx.top]), dart.hashCode(this[dartx.width]), dart.hashCode(this[dartx.height]));
   }
   [dartx.intersection](other) {
     let x0 = math.max(core.num)(this[dartx.left], other[dartx.left]);
@@ -93936,9 +93939,9 @@
     return this.width;
   }
 };
-html._ClientRect[dart.implements] = () => [RectangleOfnum()];
-dart.setSignature(html._ClientRect, {
-  constructors: () => ({_: dart.definiteFunctionType(html._ClientRect, [])}),
+html$._ClientRect[dart.implements] = () => [RectangleOfnum()];
+dart.setSignature(html$._ClientRect, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._ClientRect, [])}),
   fields: () => ({
     [dartx.bottom]: core.double,
     [dartx.height]: core.double,
@@ -93961,8 +93964,8 @@
     [dartx.containsPoint]: dart.definiteFunctionType(core.bool, [PointOfnum()])
   })
 });
-dart.registerExtension(dart.global.ClientRect, html._ClientRect);
-html._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
+dart.registerExtension(dart.global.ClientRect, html$._ClientRect);
+html$._JenkinsSmiHash = class _JenkinsSmiHash extends core.Object {
   static combine(hash, value) {
     hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
     hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
@@ -93974,13 +93977,13 @@
     return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 15);
   }
   static hash2(a, b) {
-    return html._JenkinsSmiHash.finish(html._JenkinsSmiHash.combine(html._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)));
+    return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)));
   }
   static hash4(a, b, c, d) {
-    return html._JenkinsSmiHash.finish(html._JenkinsSmiHash.combine(html._JenkinsSmiHash.combine(html._JenkinsSmiHash.combine(html._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)), core.int._check(c)), core.int._check(d)));
+    return html$._JenkinsSmiHash.finish(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(html$._JenkinsSmiHash.combine(0, core.int._check(a)), core.int._check(b)), core.int._check(c)), core.int._check(d)));
   }
 };
-dart.setSignature(html._JenkinsSmiHash, {
+dart.setSignature(html$._JenkinsSmiHash, {
   statics: () => ({
     combine: dart.definiteFunctionType(core.int, [core.int, core.int]),
     finish: dart.definiteFunctionType(core.int, [core.int]),
@@ -94000,7 +94003,7 @@
   'elementAt',
   'item'
 ]);
-html._ClientRectList = class _ClientRectList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(math.Rectangle$(core.num)), html.ImmutableListMixin$(math.Rectangle$(core.num))) {
+html$._ClientRectList = class _ClientRectList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(math.Rectangle$(core.num)), html$.ImmutableListMixin$(math.Rectangle$(core.num))) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94049,9 +94052,9 @@
     return this.item.apply(this, args);
   }
 };
-html._ClientRectList[dart.implements] = () => [ListOfRectangleOfnum()];
-dart.setSignature(html._ClientRectList, {
-  constructors: () => ({_: dart.definiteFunctionType(html._ClientRectList, [])}),
+html$._ClientRectList[dart.implements] = () => [ListOfRectangleOfnum()];
+dart.setSignature(html$._ClientRectList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._ClientRectList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
@@ -94061,8 +94064,8 @@
     [dartx.item]: dart.definiteFunctionType(math.Rectangle$(core.num), [core.int])
   })
 });
-dart.registerExtension(dart.global.ClientRectList, html._ClientRectList);
-dart.registerExtension(dart.global.DOMRectList, html._ClientRectList);
+dart.registerExtension(dart.global.ClientRectList, html$._ClientRectList);
+dart.registerExtension(dart.global.DOMRectList, html$._ClientRectList);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -94074,7 +94077,7 @@
   'elementAt',
   'item'
 ]);
-html._CssRuleList = class _CssRuleList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.CssRule), html.ImmutableListMixin$(html.CssRule)) {
+html$._CssRuleList = class _CssRuleList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.CssRule), html$.ImmutableListMixin$(html$.CssRule)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94120,64 +94123,64 @@
     return this.item.apply(this, args);
   }
 };
-html._CssRuleList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfCssRule()];
-dart.setSignature(html._CssRuleList, {
-  constructors: () => ({_: dart.definiteFunctionType(html._CssRuleList, [])}),
+html$._CssRuleList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfCssRule()];
+dart.setSignature(html$._CssRuleList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._CssRuleList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.CssRule, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.CssRule]),
-    [dartx.item]: dart.definiteFunctionType(html.CssRule, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.CssRule, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.CssRule]),
+    [dartx.item]: dart.definiteFunctionType(html$.CssRule, [core.int])
   })
 });
-dart.registerExtension(dart.global.CSSRuleList, html._CssRuleList);
-html._DOMFileSystemSync = class _DOMFileSystemSync extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.CSSRuleList, html$._CssRuleList);
+html$._DOMFileSystemSync = class _DOMFileSystemSync extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._DOMFileSystemSync, {
-  constructors: () => ({_: dart.definiteFunctionType(html._DOMFileSystemSync, [])})
+dart.setSignature(html$._DOMFileSystemSync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DOMFileSystemSync, [])})
 });
-dart.registerExtension(dart.global.DOMFileSystemSync, html._DOMFileSystemSync);
-html._EntrySync = class _EntrySync extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.DOMFileSystemSync, html$._DOMFileSystemSync);
+html$._EntrySync = class _EntrySync extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._EntrySync, {
-  constructors: () => ({_: dart.definiteFunctionType(html._EntrySync, [])})
+dart.setSignature(html$._EntrySync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._EntrySync, [])})
 });
-dart.registerExtension(dart.global.EntrySync, html._EntrySync);
-html._DirectoryEntrySync = class _DirectoryEntrySync extends html._EntrySync {
+dart.registerExtension(dart.global.EntrySync, html$._EntrySync);
+html$._DirectoryEntrySync = class _DirectoryEntrySync extends html$._EntrySync {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._DirectoryEntrySync, {
-  constructors: () => ({_: dart.definiteFunctionType(html._DirectoryEntrySync, [])})
+dart.setSignature(html$._DirectoryEntrySync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DirectoryEntrySync, [])})
 });
-dart.registerExtension(dart.global.DirectoryEntrySync, html._DirectoryEntrySync);
-html._DirectoryReaderSync = class _DirectoryReaderSync extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.DirectoryEntrySync, html$._DirectoryEntrySync);
+html$._DirectoryReaderSync = class _DirectoryReaderSync extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._DirectoryReaderSync, {
-  constructors: () => ({_: dart.definiteFunctionType(html._DirectoryReaderSync, [])})
+dart.setSignature(html$._DirectoryReaderSync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DirectoryReaderSync, [])})
 });
-dart.registerExtension(dart.global.DirectoryReaderSync, html._DirectoryReaderSync);
-html._DocumentType = class _DocumentType extends html.Node {
+dart.registerExtension(dart.global.DirectoryReaderSync, html$._DirectoryReaderSync);
+html$._DocumentType = class _DocumentType extends html$.Node {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-html._DocumentType[dart.implements] = () => [html.ChildNode];
-dart.setSignature(html._DocumentType, {
-  constructors: () => ({_: dart.definiteFunctionType(html._DocumentType, [])})
+html$._DocumentType[dart.implements] = () => [html$.ChildNode];
+dart.setSignature(html$._DocumentType, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._DocumentType, [])})
 });
-dart.registerExtension(dart.global.DocumentType, html._DocumentType);
+dart.registerExtension(dart.global.DocumentType, html$._DocumentType);
 dart.defineExtensionNames([
   'height',
   'height',
@@ -94188,7 +94191,7 @@
   'y',
   'y'
 ]);
-html._DomRect = class _DomRect extends html.DomRectReadOnly {
+html$._DomRect = class _DomRect extends html$.DomRectReadOnly {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94198,18 +94201,18 @@
     if (width === void 0) width = null;
     if (height === void 0) height = null;
     if (height != null) {
-      return html._DomRect._create_1(x, y, width, height);
+      return html$._DomRect._create_1(x, y, width, height);
     }
     if (width != null) {
-      return html._DomRect._create_2(x, y, width);
+      return html$._DomRect._create_2(x, y, width);
     }
     if (y != null) {
-      return html._DomRect._create_3(x, y);
+      return html$._DomRect._create_3(x, y);
     }
     if (x != null) {
-      return html._DomRect._create_4(x);
+      return html$._DomRect._create_4(x);
     }
-    return html._DomRect._create_5();
+    return html$._DomRect._create_5();
   }
   static _create_1(x, y, width, height) {
     return new DOMRect(x, y, width, height);
@@ -94251,10 +94254,10 @@
     this.y = value;
   }
 };
-dart.setSignature(html._DomRect, {
+dart.setSignature(html$._DomRect, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._DomRect, []),
-    new: dart.definiteFunctionType(html._DomRect, [], [core.num, core.num, core.num, core.num])
+    _: dart.definiteFunctionType(html$._DomRect, []),
+    new: dart.definiteFunctionType(html$._DomRect, [], [core.num, core.num, core.num, core.num])
   }),
   setters: () => ({
     [dartx.height]: dart.definiteFunctionType(dart.void, [core.num]),
@@ -94263,53 +94266,53 @@
     [dartx.y]: dart.definiteFunctionType(dart.void, [core.num])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html._DomRect, [dart.dynamic, dart.dynamic]),
-    _create_4: dart.definiteFunctionType(html._DomRect, [dart.dynamic]),
-    _create_5: dart.definiteFunctionType(html._DomRect, [])
+    _create_1: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic, dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$._DomRect, [dart.dynamic, dart.dynamic]),
+    _create_4: dart.definiteFunctionType(html$._DomRect, [dart.dynamic]),
+    _create_5: dart.definiteFunctionType(html$._DomRect, [])
   }),
   names: ['_create_1', '_create_2', '_create_3', '_create_4', '_create_5']
 });
-dart.registerExtension(dart.global.DOMRect, html._DomRect);
-html._FileEntrySync = class _FileEntrySync extends html._EntrySync {
+dart.registerExtension(dart.global.DOMRect, html$._DomRect);
+html$._FileEntrySync = class _FileEntrySync extends html$._EntrySync {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._FileEntrySync, {
-  constructors: () => ({_: dart.definiteFunctionType(html._FileEntrySync, [])})
+dart.setSignature(html$._FileEntrySync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._FileEntrySync, [])})
 });
-dart.registerExtension(dart.global.FileEntrySync, html._FileEntrySync);
-html._FileReaderSync = class _FileReaderSync extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.FileEntrySync, html$._FileEntrySync);
+html$._FileReaderSync = class _FileReaderSync extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return html._FileReaderSync._create_1();
+    return html$._FileReaderSync._create_1();
   }
   static _create_1() {
     return new FileReaderSync();
   }
 };
-dart.setSignature(html._FileReaderSync, {
+dart.setSignature(html$._FileReaderSync, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._FileReaderSync, []),
-    new: dart.definiteFunctionType(html._FileReaderSync, [])
+    _: dart.definiteFunctionType(html$._FileReaderSync, []),
+    new: dart.definiteFunctionType(html$._FileReaderSync, [])
   }),
-  statics: () => ({_create_1: dart.definiteFunctionType(html._FileReaderSync, [])}),
+  statics: () => ({_create_1: dart.definiteFunctionType(html$._FileReaderSync, [])}),
   names: ['_create_1']
 });
-dart.registerExtension(dart.global.FileReaderSync, html._FileReaderSync);
-html._FileWriterSync = class _FileWriterSync extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.FileReaderSync, html$._FileReaderSync);
+html$._FileWriterSync = class _FileWriterSync extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._FileWriterSync, {
-  constructors: () => ({_: dart.definiteFunctionType(html._FileWriterSync, [])})
+dart.setSignature(html$._FileWriterSync, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._FileWriterSync, [])})
 });
-dart.registerExtension(dart.global.FileWriterSync, html._FileWriterSync);
+dart.registerExtension(dart.global.FileWriterSync, html$._FileWriterSync);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -94321,7 +94324,7 @@
   'elementAt',
   'item'
 ]);
-html._GamepadList = class _GamepadList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.Gamepad), html.ImmutableListMixin$(html.Gamepad)) {
+html$._GamepadList = class _GamepadList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Gamepad), html$.ImmutableListMixin$(html$.Gamepad)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94367,19 +94370,19 @@
     return this.item.apply(this, args);
   }
 };
-html._GamepadList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfGamepad()];
-dart.setSignature(html._GamepadList, {
-  constructors: () => ({_: dart.definiteFunctionType(html._GamepadList, [])}),
+html$._GamepadList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfGamepad()];
+dart.setSignature(html$._GamepadList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._GamepadList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.Gamepad, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.Gamepad]),
-    [dartx.item]: dart.definiteFunctionType(html.Gamepad, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.Gamepad, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Gamepad]),
+    [dartx.item]: dart.definiteFunctionType(html$.Gamepad, [core.int])
   })
 });
-dart.registerExtension(dart.global.GamepadList, html._GamepadList);
-html._HTMLAllCollection = class _HTMLAllCollection extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.GamepadList, html$._GamepadList);
+html$._HTMLAllCollection = class _HTMLAllCollection extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94387,12 +94390,12 @@
     return this.item.apply(this, args);
   }
 };
-dart.setSignature(html._HTMLAllCollection, {
-  constructors: () => ({_: dart.definiteFunctionType(html._HTMLAllCollection, [])}),
-  methods: () => ({[_item]: dart.definiteFunctionType(html.Element, [core.int])})
+dart.setSignature(html$._HTMLAllCollection, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._HTMLAllCollection, [])}),
+  methods: () => ({[_item]: dart.definiteFunctionType(html$.Element, [core.int])})
 });
-dart.registerExtension(dart.global.HTMLAllCollection, html._HTMLAllCollection);
-html._HTMLAppletElement = class _HTMLAppletElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLAllCollection, html$._HTMLAllCollection);
+html$._HTMLAppletElement = class _HTMLAppletElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94400,15 +94403,15 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html._HTMLAppletElement, 'created');
-dart.setSignature(html._HTMLAppletElement, {
+dart.defineNamedConstructor(html$._HTMLAppletElement, 'created');
+dart.setSignature(html$._HTMLAppletElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._HTMLAppletElement, []),
-    created: dart.definiteFunctionType(html._HTMLAppletElement, [])
+    _: dart.definiteFunctionType(html$._HTMLAppletElement, []),
+    created: dart.definiteFunctionType(html$._HTMLAppletElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLAppletElement, html._HTMLAppletElement);
-html._HTMLDirectoryElement = class _HTMLDirectoryElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLAppletElement, html$._HTMLAppletElement);
+html$._HTMLDirectoryElement = class _HTMLDirectoryElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94416,15 +94419,15 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html._HTMLDirectoryElement, 'created');
-dart.setSignature(html._HTMLDirectoryElement, {
+dart.defineNamedConstructor(html$._HTMLDirectoryElement, 'created');
+dart.setSignature(html$._HTMLDirectoryElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._HTMLDirectoryElement, []),
-    created: dart.definiteFunctionType(html._HTMLDirectoryElement, [])
+    _: dart.definiteFunctionType(html$._HTMLDirectoryElement, []),
+    created: dart.definiteFunctionType(html$._HTMLDirectoryElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLDirectoryElement, html._HTMLDirectoryElement);
-html._HTMLFontElement = class _HTMLFontElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLDirectoryElement, html$._HTMLDirectoryElement);
+html$._HTMLFontElement = class _HTMLFontElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94432,15 +94435,15 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html._HTMLFontElement, 'created');
-dart.setSignature(html._HTMLFontElement, {
+dart.defineNamedConstructor(html$._HTMLFontElement, 'created');
+dart.setSignature(html$._HTMLFontElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._HTMLFontElement, []),
-    created: dart.definiteFunctionType(html._HTMLFontElement, [])
+    _: dart.definiteFunctionType(html$._HTMLFontElement, []),
+    created: dart.definiteFunctionType(html$._HTMLFontElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLFontElement, html._HTMLFontElement);
-html._HTMLFrameElement = class _HTMLFrameElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLFontElement, html$._HTMLFontElement);
+html$._HTMLFrameElement = class _HTMLFrameElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94448,15 +94451,15 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html._HTMLFrameElement, 'created');
-dart.setSignature(html._HTMLFrameElement, {
+dart.defineNamedConstructor(html$._HTMLFrameElement, 'created');
+dart.setSignature(html$._HTMLFrameElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._HTMLFrameElement, []),
-    created: dart.definiteFunctionType(html._HTMLFrameElement, [])
+    _: dart.definiteFunctionType(html$._HTMLFrameElement, []),
+    created: dart.definiteFunctionType(html$._HTMLFrameElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLFrameElement, html._HTMLFrameElement);
-html._HTMLFrameSetElement = class _HTMLFrameSetElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLFrameElement, html$._HTMLFrameElement);
+html$._HTMLFrameSetElement = class _HTMLFrameSetElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94464,16 +94467,16 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html._HTMLFrameSetElement, 'created');
-html._HTMLFrameSetElement[dart.implements] = () => [html.WindowEventHandlers];
-dart.setSignature(html._HTMLFrameSetElement, {
+dart.defineNamedConstructor(html$._HTMLFrameSetElement, 'created');
+html$._HTMLFrameSetElement[dart.implements] = () => [html$.WindowEventHandlers];
+dart.setSignature(html$._HTMLFrameSetElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._HTMLFrameSetElement, []),
-    created: dart.definiteFunctionType(html._HTMLFrameSetElement, [])
+    _: dart.definiteFunctionType(html$._HTMLFrameSetElement, []),
+    created: dart.definiteFunctionType(html$._HTMLFrameSetElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLFrameSetElement, html._HTMLFrameSetElement);
-html._HTMLMarqueeElement = class _HTMLMarqueeElement extends html.HtmlElement {
+dart.registerExtension(dart.global.HTMLFrameSetElement, html$._HTMLFrameSetElement);
+html$._HTMLMarqueeElement = class _HTMLMarqueeElement extends html$.HtmlElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94481,14 +94484,14 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(html._HTMLMarqueeElement, 'created');
-dart.setSignature(html._HTMLMarqueeElement, {
+dart.defineNamedConstructor(html$._HTMLMarqueeElement, 'created');
+dart.setSignature(html$._HTMLMarqueeElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._HTMLMarqueeElement, []),
-    created: dart.definiteFunctionType(html._HTMLMarqueeElement, [])
+    _: dart.definiteFunctionType(html$._HTMLMarqueeElement, []),
+    created: dart.definiteFunctionType(html$._HTMLMarqueeElement, [])
   })
 });
-dart.registerExtension(dart.global.HTMLMarqueeElement, html._HTMLMarqueeElement);
+dart.registerExtension(dart.global.HTMLMarqueeElement, html$._HTMLMarqueeElement);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -94506,7 +94509,7 @@
   'setNamedItem',
   'setNamedItemNS'
 ]);
-html._NamedNodeMap = class _NamedNodeMap extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.Node), html.ImmutableListMixin$(html.Node)) {
+html$._NamedNodeMap = class _NamedNodeMap extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.Node), html$.ImmutableListMixin$(html$.Node)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94570,34 +94573,34 @@
     return this.setNamedItemNS.apply(this, args);
   }
 };
-html._NamedNodeMap[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
-dart.setSignature(html._NamedNodeMap, {
-  constructors: () => ({_: dart.definiteFunctionType(html._NamedNodeMap, [])}),
+html$._NamedNodeMap[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfNode()];
+dart.setSignature(html$._NamedNodeMap, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._NamedNodeMap, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.Node, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.Node]),
-    [dartx.getNamedItem]: dart.definiteFunctionType(html._Attr, [core.String]),
-    [dartx.getNamedItemNS]: dart.definiteFunctionType(html._Attr, [core.String, core.String]),
-    [dartx.item]: dart.definiteFunctionType(html._Attr, [core.int]),
-    [dartx.removeNamedItem]: dart.definiteFunctionType(html._Attr, [core.String]),
-    [dartx.removeNamedItemNS]: dart.definiteFunctionType(html._Attr, [core.String, core.String]),
-    [dartx.setNamedItem]: dart.definiteFunctionType(html._Attr, [html._Attr]),
-    [dartx.setNamedItemNS]: dart.definiteFunctionType(html._Attr, [html._Attr])
+    [dartx._get]: dart.definiteFunctionType(html$.Node, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.Node]),
+    [dartx.getNamedItem]: dart.definiteFunctionType(html$._Attr, [core.String]),
+    [dartx.getNamedItemNS]: dart.definiteFunctionType(html$._Attr, [core.String, core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$._Attr, [core.int]),
+    [dartx.removeNamedItem]: dart.definiteFunctionType(html$._Attr, [core.String]),
+    [dartx.removeNamedItemNS]: dart.definiteFunctionType(html$._Attr, [core.String, core.String]),
+    [dartx.setNamedItem]: dart.definiteFunctionType(html$._Attr, [html$._Attr]),
+    [dartx.setNamedItemNS]: dart.definiteFunctionType(html$._Attr, [html$._Attr])
   })
 });
-dart.registerExtension(dart.global.NamedNodeMap, html._NamedNodeMap);
-dart.registerExtension(dart.global.MozNamedAttrMap, html._NamedNodeMap);
-html._PagePopupController = class _PagePopupController extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.NamedNodeMap, html$._NamedNodeMap);
+dart.registerExtension(dart.global.MozNamedAttrMap, html$._NamedNodeMap);
+html$._PagePopupController = class _PagePopupController extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._PagePopupController, {
-  constructors: () => ({_: dart.definiteFunctionType(html._PagePopupController, [])})
+dart.setSignature(html$._PagePopupController, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._PagePopupController, [])})
 });
-dart.registerExtension(dart.global.PagePopupController, html._PagePopupController);
+dart.registerExtension(dart.global.PagePopupController, html$._PagePopupController);
 dart.defineExtensionNames([
   'clone',
   'context',
@@ -94607,7 +94610,7 @@
   'referrer',
   'url'
 ]);
-html._Request = class _Request extends html.Body {
+html$._Request = class _Request extends html$.Body {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94615,9 +94618,9 @@
     if (requestInitDict === void 0) requestInitDict = null;
     if (requestInitDict != null) {
       let requestInitDict_1 = html_common.convertDartToNative_Dictionary(requestInitDict);
-      return html._Request._create_1(input, requestInitDict_1);
+      return html$._Request._create_1(input, requestInitDict_1);
     }
-    return html._Request._create_2(input);
+    return html$._Request._create_2(input);
   }
   static _create_1(input, requestInitDict) {
     return new Request(input, requestInitDict);
@@ -94647,28 +94650,28 @@
     return this.clone.apply(this, args);
   }
 };
-dart.setSignature(html._Request, {
+dart.setSignature(html$._Request, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._Request, []),
-    new: dart.definiteFunctionType(html._Request, [core.Object], [core.Map])
+    _: dart.definiteFunctionType(html$._Request, []),
+    new: dart.definiteFunctionType(html$._Request, [core.Object], [core.Map])
   }),
   fields: () => ({
     [dartx.context]: core.String,
     [dartx.credentials]: core.String,
-    [dartx.headers]: html.Headers,
+    [dartx.headers]: html$.Headers,
     [dartx.mode]: core.String,
     [dartx.referrer]: core.String,
     [dartx.url]: core.String
   }),
-  methods: () => ({[dartx.clone]: dart.definiteFunctionType(html._Request, [])}),
+  methods: () => ({[dartx.clone]: dart.definiteFunctionType(html$._Request, [])}),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html._Request, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html._Request, [dart.dynamic])
+    _create_1: dart.definiteFunctionType(html$._Request, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._Request, [dart.dynamic])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.Request, html._Request);
-html._Response = class _Response extends html.Body {
+dart.registerExtension(dart.global.Request, html$._Request);
+html$._Response = class _Response extends html$.Body {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94677,12 +94680,12 @@
     if (responseInitDict === void 0) responseInitDict = null;
     if (responseInitDict != null) {
       let responseInitDict_1 = html_common.convertDartToNative_Dictionary(responseInitDict);
-      return html._Response._create_1(body, responseInitDict_1);
+      return html$._Response._create_1(body, responseInitDict_1);
     }
     if (body != null) {
-      return html._Response._create_2(body);
+      return html$._Response._create_2(body);
     }
-    return html._Response._create_3();
+    return html$._Response._create_3();
   }
   static _create_1(body, responseInitDict) {
     return new Response(body, responseInitDict);
@@ -94694,29 +94697,29 @@
     return new Response();
   }
 };
-dart.setSignature(html._Response, {
+dart.setSignature(html$._Response, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._Response, []),
-    new: dart.definiteFunctionType(html._Response, [], [core.Object, core.Map])
+    _: dart.definiteFunctionType(html$._Response, []),
+    new: dart.definiteFunctionType(html$._Response, [], [core.Object, core.Map])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html._Response, [dart.dynamic, dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html._Response, [dart.dynamic]),
-    _create_3: dart.definiteFunctionType(html._Response, [])
+    _create_1: dart.definiteFunctionType(html$._Response, [dart.dynamic, dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._Response, [dart.dynamic]),
+    _create_3: dart.definiteFunctionType(html$._Response, [])
   }),
   names: ['_create_1', '_create_2', '_create_3']
 });
-dart.registerExtension(dart.global.Response, html._Response);
-html._ServiceWorker = class _ServiceWorker extends html.EventTarget {
+dart.registerExtension(dart.global.Response, html$._Response);
+html$._ServiceWorker = class _ServiceWorker extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-html._ServiceWorker[dart.implements] = () => [html.AbstractWorker];
-dart.setSignature(html._ServiceWorker, {
-  constructors: () => ({_: dart.definiteFunctionType(html._ServiceWorker, [])})
+html$._ServiceWorker[dart.implements] = () => [html$.AbstractWorker];
+dart.setSignature(html$._ServiceWorker, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._ServiceWorker, [])})
 });
-dart.registerExtension(dart.global.ServiceWorker, html._ServiceWorker);
+dart.registerExtension(dart.global.ServiceWorker, html$._ServiceWorker);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -94728,7 +94731,7 @@
   'elementAt',
   'item'
 ]);
-html._SpeechRecognitionResultList = class _SpeechRecognitionResultList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.SpeechRecognitionResult), html.ImmutableListMixin$(html.SpeechRecognitionResult)) {
+html$._SpeechRecognitionResultList = class _SpeechRecognitionResultList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.SpeechRecognitionResult), html$.ImmutableListMixin$(html$.SpeechRecognitionResult)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94774,18 +94777,18 @@
     return this.item.apply(this, args);
   }
 };
-html._SpeechRecognitionResultList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechRecognitionResult()];
-dart.setSignature(html._SpeechRecognitionResultList, {
-  constructors: () => ({_: dart.definiteFunctionType(html._SpeechRecognitionResultList, [])}),
+html$._SpeechRecognitionResultList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfSpeechRecognitionResult()];
+dart.setSignature(html$._SpeechRecognitionResultList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._SpeechRecognitionResultList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.SpeechRecognitionResult, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.SpeechRecognitionResult]),
-    [dartx.item]: dart.definiteFunctionType(html.SpeechRecognitionResult, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.SpeechRecognitionResult, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.SpeechRecognitionResult]),
+    [dartx.item]: dart.definiteFunctionType(html$.SpeechRecognitionResult, [core.int])
   })
 });
-dart.registerExtension(dart.global.SpeechRecognitionResultList, html._SpeechRecognitionResultList);
+dart.registerExtension(dart.global.SpeechRecognitionResultList, html$._SpeechRecognitionResultList);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -94797,7 +94800,7 @@
   'elementAt',
   'item'
 ]);
-html._StyleSheetList = class _StyleSheetList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html.StyleSheet), html.ImmutableListMixin$(html.StyleSheet)) {
+html$._StyleSheetList = class _StyleSheetList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(html$.StyleSheet), html$.ImmutableListMixin$(html$.StyleSheet)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -94846,38 +94849,38 @@
     return this.item.apply(this, args);
   }
 };
-html._StyleSheetList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfStyleSheet()];
-dart.setSignature(html._StyleSheetList, {
-  constructors: () => ({_: dart.definiteFunctionType(html._StyleSheetList, [])}),
+html$._StyleSheetList[dart.implements] = () => [_js_helper.JavaScriptIndexingBehavior, ListOfStyleSheet()];
+dart.setSignature(html$._StyleSheetList, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._StyleSheetList, [])}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(html.StyleSheet, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html.StyleSheet]),
-    [__getter__]: dart.definiteFunctionType(html.CssStyleSheet, [core.String]),
-    [dartx.item]: dart.definiteFunctionType(html.StyleSheet, [core.int])
+    [dartx._get]: dart.definiteFunctionType(html$.StyleSheet, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, html$.StyleSheet]),
+    [__getter__]: dart.definiteFunctionType(html$.CssStyleSheet, [core.String]),
+    [dartx.item]: dart.definiteFunctionType(html$.StyleSheet, [core.int])
   })
 });
-dart.registerExtension(dart.global.StyleSheetList, html._StyleSheetList);
-html._SubtleCrypto = class _SubtleCrypto extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.StyleSheetList, html$._StyleSheetList);
+html$._SubtleCrypto = class _SubtleCrypto extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._SubtleCrypto, {
-  constructors: () => ({_: dart.definiteFunctionType(html._SubtleCrypto, [])})
+dart.setSignature(html$._SubtleCrypto, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._SubtleCrypto, [])})
 });
-dart.registerExtension(dart.global.SubtleCrypto, html._SubtleCrypto);
-html._WebKitCSSMatrix = class _WebKitCSSMatrix extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.SubtleCrypto, html$._SubtleCrypto);
+html$._WebKitCSSMatrix = class _WebKitCSSMatrix extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new(cssValue) {
     if (cssValue === void 0) cssValue = null;
     if (cssValue != null) {
-      return html._WebKitCSSMatrix._create_1(cssValue);
+      return html$._WebKitCSSMatrix._create_1(cssValue);
     }
-    return html._WebKitCSSMatrix._create_2();
+    return html$._WebKitCSSMatrix._create_2();
   }
   static _create_1(cssValue) {
     return new WebKitCSSMatrix(cssValue);
@@ -94886,59 +94889,59 @@
     return new WebKitCSSMatrix();
   }
 };
-dart.setSignature(html._WebKitCSSMatrix, {
+dart.setSignature(html$._WebKitCSSMatrix, {
   constructors: () => ({
-    _: dart.definiteFunctionType(html._WebKitCSSMatrix, []),
-    new: dart.definiteFunctionType(html._WebKitCSSMatrix, [], [core.String])
+    _: dart.definiteFunctionType(html$._WebKitCSSMatrix, []),
+    new: dart.definiteFunctionType(html$._WebKitCSSMatrix, [], [core.String])
   }),
   statics: () => ({
-    _create_1: dart.definiteFunctionType(html._WebKitCSSMatrix, [dart.dynamic]),
-    _create_2: dart.definiteFunctionType(html._WebKitCSSMatrix, [])
+    _create_1: dart.definiteFunctionType(html$._WebKitCSSMatrix, [dart.dynamic]),
+    _create_2: dart.definiteFunctionType(html$._WebKitCSSMatrix, [])
   }),
   names: ['_create_1', '_create_2']
 });
-dart.registerExtension(dart.global.WebKitCSSMatrix, html._WebKitCSSMatrix);
-html._WindowTimers = class _WindowTimers extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.WebKitCSSMatrix, html$._WebKitCSSMatrix);
+html$._WindowTimers = class _WindowTimers extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._WindowTimers, {
-  constructors: () => ({_: dart.definiteFunctionType(html._WindowTimers, [])})
+dart.setSignature(html$._WindowTimers, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._WindowTimers, [])})
 });
-html._WorkerLocation = class _WorkerLocation extends _interceptors.Interceptor {
+html$._WorkerLocation = class _WorkerLocation extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-html._WorkerLocation[dart.implements] = () => [html.UrlUtilsReadOnly];
-dart.setSignature(html._WorkerLocation, {
-  constructors: () => ({_: dart.definiteFunctionType(html._WorkerLocation, [])})
+html$._WorkerLocation[dart.implements] = () => [html$.UrlUtilsReadOnly];
+dart.setSignature(html$._WorkerLocation, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._WorkerLocation, [])})
 });
-dart.registerExtension(dart.global.WorkerLocation, html._WorkerLocation);
-html._WorkerNavigator = class _WorkerNavigator extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.WorkerLocation, html$._WorkerLocation);
+html$._WorkerNavigator = class _WorkerNavigator extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-html._WorkerNavigator[dart.implements] = () => [html.NavigatorCpu, html.NavigatorOnLine, html.NavigatorID];
-dart.setSignature(html._WorkerNavigator, {
-  constructors: () => ({_: dart.definiteFunctionType(html._WorkerNavigator, [])})
+html$._WorkerNavigator[dart.implements] = () => [html$.NavigatorCpu, html$.NavigatorOnLine, html$.NavigatorID];
+dart.setSignature(html$._WorkerNavigator, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._WorkerNavigator, [])})
 });
-dart.registerExtension(dart.global.WorkerNavigator, html._WorkerNavigator);
-html._XMLHttpRequestProgressEvent = class _XMLHttpRequestProgressEvent extends html.ProgressEvent {
+dart.registerExtension(dart.global.WorkerNavigator, html$._WorkerNavigator);
+html$._XMLHttpRequestProgressEvent = class _XMLHttpRequestProgressEvent extends html$.ProgressEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(html._XMLHttpRequestProgressEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(html._XMLHttpRequestProgressEvent, [])})
+dart.setSignature(html$._XMLHttpRequestProgressEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(html$._XMLHttpRequestProgressEvent, [])})
 });
-dart.registerExtension(dart.global.XMLHttpRequestProgressEvent, html._XMLHttpRequestProgressEvent);
+dart.registerExtension(dart.global.XMLHttpRequestProgressEvent, html$._XMLHttpRequestProgressEvent);
 const _matches = Symbol('_matches');
-html._AttributeMap = class _AttributeMap extends core.Object {
+html$._AttributeMap = class _AttributeMap extends core.Object {
   new(element) {
-    this[_element] = element;
+    this[_element$] = element;
   }
   addAll(other) {
     other[dartx.forEach](dart.fn((k, v) => {
@@ -94971,10 +94974,10 @@
     }
   }
   get keys() {
-    let attributes = this[_element][_attributes];
+    let attributes = this[_element$][_attributes$];
     let keys = JSArrayOfString().of([]);
     for (let i = 0, len = attributes[dartx.length]; i < dart.notNull(len); i++) {
-      let attr = html._Attr._check(attributes[dartx._get](i));
+      let attr = html$._Attr._check(attributes[dartx._get](i));
       if (dart.test(this[_matches](attr))) {
         keys[dartx.add](attr[dartx.name]);
       }
@@ -94982,10 +94985,10 @@
     return keys;
   }
   get values() {
-    let attributes = this[_element][_attributes];
+    let attributes = this[_element$][_attributes$];
     let values = JSArrayOfString().of([]);
     for (let i = 0, len = attributes[dartx.length]; i < dart.notNull(len); i++) {
-      let attr = html._Attr._check(attributes[dartx._get](i));
+      let attr = html$._Attr._check(attributes[dartx._get](i));
       if (dart.test(this[_matches](attr))) {
         values[dartx.add](attr[dartx.value]);
       }
@@ -94999,10 +95002,10 @@
     return !dart.test(this.isEmpty);
   }
 };
-html._AttributeMap[dart.implements] = () => [MapOfString$String()];
-dart.setSignature(html._AttributeMap, {
-  constructors: () => ({new: dart.definiteFunctionType(html._AttributeMap, [html.Element])}),
-  fields: () => ({[_element]: html.Element}),
+html$._AttributeMap[dart.implements] = () => [MapOfString$String()];
+dart.setSignature(html$._AttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._AttributeMap, [html$.Element])}),
+  fields: () => ({[_element$]: html$.Element}),
   getters: () => ({
     keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
     values: dart.definiteFunctionType(core.Iterable$(core.String), []),
@@ -95017,7 +95020,7 @@
     forEach: dart.definiteFunctionType(dart.void, [StringAndStringTovoid()])
   })
 });
-dart.defineExtensionMembers(html._AttributeMap, [
+dart.defineExtensionMembers(html$._AttributeMap, [
   'addAll',
   'containsValue',
   'putIfAbsent',
@@ -95028,23 +95031,23 @@
   'isEmpty',
   'isNotEmpty'
 ]);
-html._ElementAttributeMap = class _ElementAttributeMap extends html._AttributeMap {
+html$._ElementAttributeMap = class _ElementAttributeMap extends html$._AttributeMap {
   new(element) {
     super.new(element);
   }
   containsKey(key) {
-    return this[_element][_hasAttribute](core.String._check(key));
+    return this[_element$][_hasAttribute](core.String._check(key));
   }
   _get(key) {
-    return this[_element][dartx.getAttribute](core.String._check(key));
+    return this[_element$][dartx.getAttribute](core.String._check(key));
   }
   _set(key, value) {
-    this[_element][dartx.setAttribute](key, value);
+    this[_element$][dartx.setAttribute](key, value);
     return value;
   }
   remove(key) {
-    let value = this[_element][dartx.getAttribute](core.String._check(key));
-    this[_element][_removeAttribute](core.String._check(key));
+    let value = this[_element$][dartx.getAttribute](core.String._check(key));
+    this[_element$][_removeAttribute](core.String._check(key));
     return value;
   }
   get length() {
@@ -95054,18 +95057,18 @@
     return node[_namespaceUri] == null;
   }
 };
-dart.setSignature(html._ElementAttributeMap, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ElementAttributeMap, [html.Element])}),
+dart.setSignature(html$._ElementAttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ElementAttributeMap, [html$.Element])}),
   getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
   methods: () => ({
     containsKey: dart.definiteFunctionType(core.bool, [core.Object]),
     _get: dart.definiteFunctionType(core.String, [core.Object]),
     _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
     remove: dart.definiteFunctionType(core.String, [core.Object]),
-    [_matches]: dart.definiteFunctionType(core.bool, [html.Node])
+    [_matches]: dart.definiteFunctionType(core.bool, [html$.Node])
   })
 });
-dart.defineExtensionMembers(html._ElementAttributeMap, [
+dart.defineExtensionMembers(html$._ElementAttributeMap, [
   'containsKey',
   '_get',
   '_set',
@@ -95073,24 +95076,24 @@
   'length'
 ]);
 const _namespace = Symbol('_namespace');
-html._NamespacedAttributeMap = class _NamespacedAttributeMap extends html._AttributeMap {
+html$._NamespacedAttributeMap = class _NamespacedAttributeMap extends html$._AttributeMap {
   new(element, namespace) {
     this[_namespace] = namespace;
     super.new(element);
   }
   containsKey(key) {
-    return this[_element][_hasAttributeNS](this[_namespace], core.String._check(key));
+    return this[_element$][_hasAttributeNS](this[_namespace], core.String._check(key));
   }
   _get(key) {
-    return this[_element][dartx.getAttributeNS](this[_namespace], core.String._check(key));
+    return this[_element$][dartx.getAttributeNS](this[_namespace], core.String._check(key));
   }
   _set(key, value) {
-    this[_element][dartx.setAttributeNS](this[_namespace], key, value);
+    this[_element$][dartx.setAttributeNS](this[_namespace], key, value);
     return value;
   }
   remove(key) {
     let value = this._get(key);
-    this[_element][_removeAttributeNS](this[_namespace], core.String._check(key));
+    this[_element$][_removeAttributeNS](this[_namespace], core.String._check(key));
     return value;
   }
   get length() {
@@ -95100,8 +95103,8 @@
     return node[_namespaceUri] == this[_namespace];
   }
 };
-dart.setSignature(html._NamespacedAttributeMap, {
-  constructors: () => ({new: dart.definiteFunctionType(html._NamespacedAttributeMap, [html.Element, core.String])}),
+dart.setSignature(html$._NamespacedAttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._NamespacedAttributeMap, [html$.Element, core.String])}),
   fields: () => ({[_namespace]: core.String}),
   getters: () => ({length: dart.definiteFunctionType(core.int, [])}),
   methods: () => ({
@@ -95109,10 +95112,10 @@
     _get: dart.definiteFunctionType(core.String, [core.Object]),
     _set: dart.definiteFunctionType(dart.void, [core.String, core.String]),
     remove: dart.definiteFunctionType(core.String, [core.Object]),
-    [_matches]: dart.definiteFunctionType(core.bool, [html.Node])
+    [_matches]: dart.definiteFunctionType(core.bool, [html$.Node])
   })
 });
-dart.defineExtensionMembers(html._NamespacedAttributeMap, [
+dart.defineExtensionMembers(html$._NamespacedAttributeMap, [
   'containsKey',
   '_get',
   '_set',
@@ -95123,9 +95126,9 @@
 const _strip = Symbol('_strip');
 const _toHyphenedName = Symbol('_toHyphenedName');
 const _toCamelCase = Symbol('_toCamelCase');
-html._DataAttributeMap = class _DataAttributeMap extends core.Object {
+html$._DataAttributeMap = class _DataAttributeMap extends core.Object {
   new(attributes) {
-    this[_attributes] = attributes;
+    this[_attributes$] = attributes;
   }
   addAll(other) {
     other[dartx.forEach](dart.fn((k, v) => {
@@ -95133,23 +95136,23 @@
     }, StringAndStringToNull()));
   }
   containsValue(value) {
-    return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool()));
+    return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool$()));
   }
   containsKey(key) {
-    return this[_attributes][dartx.containsKey](this[_attr](core.String._check(key)));
+    return this[_attributes$][dartx.containsKey](this[_attr](core.String._check(key)));
   }
   _get(key) {
-    return this[_attributes][dartx._get](this[_attr](core.String._check(key)));
+    return this[_attributes$][dartx._get](this[_attr](core.String._check(key)));
   }
   _set(key, value) {
-    this[_attributes][dartx._set](this[_attr](key), value);
+    this[_attributes$][dartx._set](this[_attr](key), value);
     return value;
   }
   putIfAbsent(key, ifAbsent) {
-    return this[_attributes][dartx.putIfAbsent](this[_attr](key), ifAbsent);
+    return this[_attributes$][dartx.putIfAbsent](this[_attr](key), ifAbsent);
   }
   remove(key) {
-    return this[_attributes][dartx.remove](this[_attr](core.String._check(key)));
+    return this[_attributes$][dartx.remove](this[_attr](core.String._check(key)));
   }
   clear() {
     for (let key of this.keys) {
@@ -95157,7 +95160,7 @@
     }
   }
   forEach(f) {
-    this[_attributes][dartx.forEach](dart.fn((key, value) => {
+    this[_attributes$][dartx.forEach](dart.fn((key, value) => {
       if (dart.test(this[_matches](key))) {
         f(this[_strip](key), value);
       }
@@ -95165,7 +95168,7 @@
   }
   get keys() {
     let keys = JSArrayOfString().of([]);
-    this[_attributes][dartx.forEach](dart.fn((key, value) => {
+    this[_attributes$][dartx.forEach](dart.fn((key, value) => {
       if (dart.test(this[_matches](key))) {
         keys[dartx.add](this[_strip](key));
       }
@@ -95174,7 +95177,7 @@
   }
   get values() {
     let values = JSArrayOfString().of([]);
-    this[_attributes][dartx.forEach](dart.fn((key, value) => {
+    this[_attributes$][dartx.forEach](dart.fn((key, value) => {
       if (dart.test(this[_matches](key))) {
         values[dartx.add](value);
       }
@@ -95221,10 +95224,10 @@
     return sb.toString();
   }
 };
-html._DataAttributeMap[dart.implements] = () => [MapOfString$String()];
-dart.setSignature(html._DataAttributeMap, {
-  constructors: () => ({new: dart.definiteFunctionType(html._DataAttributeMap, [MapOfString$String()])}),
-  fields: () => ({[_attributes]: MapOfString$String()}),
+html$._DataAttributeMap[dart.implements] = () => [MapOfString$String()];
+dart.setSignature(html$._DataAttributeMap, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._DataAttributeMap, [MapOfString$String()])}),
+  fields: () => ({[_attributes$]: MapOfString$String()}),
   getters: () => ({
     keys: dart.definiteFunctionType(core.Iterable$(core.String), []),
     values: dart.definiteFunctionType(core.Iterable$(core.String), []),
@@ -95249,7 +95252,7 @@
     [_toHyphenedName]: dart.definiteFunctionType(core.String, [core.String])
   })
 });
-dart.defineExtensionMembers(html._DataAttributeMap, [
+dart.defineExtensionMembers(html$._DataAttributeMap, [
   'addAll',
   'containsValue',
   'containsKey',
@@ -95265,17 +95268,17 @@
   'isEmpty',
   'isNotEmpty'
 ]);
-html.CanvasImageSource = class CanvasImageSource extends core.Object {};
-html.WindowBase = class WindowBase extends core.Object {};
-html.WindowBase[dart.implements] = () => [html.EventTarget];
-html.LocationBase = class LocationBase extends core.Object {};
-html.HistoryBase = class HistoryBase extends core.Object {};
-html.CssClassSet = class CssClassSet extends core.Object {};
-html.CssClassSet[dart.implements] = () => [SetOfString()];
+html$.CanvasImageSource = class CanvasImageSource extends core.Object {};
+html$.WindowBase = class WindowBase extends core.Object {};
+html$.WindowBase[dart.implements] = () => [html$.EventTarget];
+html$.LocationBase = class LocationBase extends core.Object {};
+html$.HistoryBase = class HistoryBase extends core.Object {};
+html$.CssClassSet = class CssClassSet extends core.Object {};
+html$.CssClassSet[dart.implements] = () => [SetOfString()];
 const _addOrSubtractToBoxModel = Symbol('_addOrSubtractToBoxModel');
-html.CssRect = class CssRect extends core.Object {
+html$.CssRect = class CssRect extends core.Object {
   new(element) {
-    this[_element] = element;
+    this[_element$] = element;
   }
   set height(newHeight) {
     dart.throw(new core.UnsupportedError("Can only set height for content rect."));
@@ -95284,17 +95287,17 @@
     dart.throw(new core.UnsupportedError("Can only set width for content rect."));
   }
   [_addOrSubtractToBoxModel](dimensions, augmentingMeasurement) {
-    let styles = this[_element][dartx.getComputedStyle]();
+    let styles = this[_element$][dartx.getComputedStyle]();
     let val = 0;
     for (let measurement of dimensions) {
-      if (augmentingMeasurement == html._MARGIN) {
-        val = dart.notNull(val) + dart.notNull(new html.Dimension.css(styles[dartx.getPropertyValue](dart.str`${augmentingMeasurement}-${measurement}`)).value);
+      if (augmentingMeasurement == html$._MARGIN) {
+        val = dart.notNull(val) + dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`${augmentingMeasurement}-${measurement}`)).value);
       }
-      if (augmentingMeasurement == html._CONTENT) {
-        val = dart.notNull(val) - dart.notNull(new html.Dimension.css(styles[dartx.getPropertyValue](dart.str`${html._PADDING}-${measurement}`)).value);
+      if (augmentingMeasurement == html$._CONTENT) {
+        val = dart.notNull(val) - dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`${html$._PADDING}-${measurement}`)).value);
       }
-      if (augmentingMeasurement != html._MARGIN) {
-        val = dart.notNull(val) - dart.notNull(new html.Dimension.css(styles[dartx.getPropertyValue](dart.str`border-${measurement}-width`)).value);
+      if (augmentingMeasurement != html$._MARGIN) {
+        val = dart.notNull(val) - dart.notNull(new html$.Dimension.css(styles[dartx.getPropertyValue](dart.str`border-${measurement}-width`)).value);
       }
     }
     return val;
@@ -95313,7 +95316,7 @@
     return dart.equals(this.left, dart.dload(other, 'left')) && dart.equals(this.top, dart.dload(other, 'top')) && dart.equals(this.right, dart.dload(other, 'right')) && dart.equals(this.bottom, dart.dload(other, 'bottom'));
   }
   get hashCode() {
-    return html._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.right), dart.hashCode(this.bottom));
+    return html$._JenkinsSmiHash.hash4(dart.hashCode(this.left), dart.hashCode(this.top), dart.hashCode(this.right), dart.hashCode(this.bottom));
   }
   intersection(other) {
     let x0 = math.max(core.num)(this.left, other[dartx.left]);
@@ -95356,10 +95359,10 @@
     return new (PointOfnum())(this.left, dart.notNull(this.top) + dart.notNull(this.height));
   }
 };
-html.CssRect[dart.implements] = () => [RectangleOfnum()];
-dart.setSignature(html.CssRect, {
-  constructors: () => ({new: dart.definiteFunctionType(html.CssRect, [html.Element])}),
-  fields: () => ({[_element]: html.Element}),
+html$.CssRect[dart.implements] = () => [RectangleOfnum()];
+dart.setSignature(html$.CssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.CssRect, [html$.Element])}),
+  fields: () => ({[_element$]: html$.Element}),
   getters: () => ({
     right: dart.definiteFunctionType(core.num, []),
     bottom: dart.definiteFunctionType(core.num, []),
@@ -95381,7 +95384,7 @@
     containsPoint: dart.definiteFunctionType(core.bool, [PointOfnum()])
   })
 });
-dart.defineExtensionMembers(html.CssRect, [
+dart.defineExtensionMembers(html$.CssRect, [
   'toString',
   '==',
   'intersection',
@@ -95397,47 +95400,47 @@
   'bottomRight',
   'bottomLeft'
 ]);
-html._ContentCssRect = class _ContentCssRect extends html.CssRect {
+html$._ContentCssRect = class _ContentCssRect extends html$.CssRect {
   new(element) {
     super.new(element);
   }
   get height() {
-    return dart.notNull(this[_element][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html._HEIGHT, html._CONTENT));
+    return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._CONTENT));
   }
   get width() {
-    return dart.notNull(this[_element][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html._WIDTH, html._CONTENT));
+    return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._CONTENT));
   }
   set height(newHeight) {
-    if (html.Dimension.is(newHeight)) {
-      if (dart.test(dart.dsend(dart.dload(newHeight, 'value'), '<', 0))) newHeight = new html.Dimension.px(0);
-      this[_element][dartx.style][dartx.height] = dart.toString(newHeight);
+    if (html$.Dimension.is(newHeight)) {
+      if (dart.test(dart.dsend(dart.dload(newHeight, 'value'), '<', 0))) newHeight = new html$.Dimension.px(0);
+      this[_element$][dartx.style][dartx.height] = dart.toString(newHeight);
     } else if (typeof newHeight == 'number') {
       if (dart.test(dart.dsend(newHeight, '<', 0))) newHeight = 0;
-      this[_element][dartx.style][dartx.height] = dart.str`${newHeight}px`;
+      this[_element$][dartx.style][dartx.height] = dart.str`${newHeight}px`;
     } else {
       dart.throw(new core.ArgumentError("newHeight is not a Dimension or num"));
     }
   }
   set width(newWidth) {
-    if (html.Dimension.is(newWidth)) {
-      if (dart.test(dart.dsend(dart.dload(newWidth, 'value'), '<', 0))) newWidth = new html.Dimension.px(0);
-      this[_element][dartx.style][dartx.width] = dart.toString(newWidth);
+    if (html$.Dimension.is(newWidth)) {
+      if (dart.test(dart.dsend(dart.dload(newWidth, 'value'), '<', 0))) newWidth = new html$.Dimension.px(0);
+      this[_element$][dartx.style][dartx.width] = dart.toString(newWidth);
     } else if (typeof newWidth == 'number') {
       if (dart.test(dart.dsend(newWidth, '<', 0))) newWidth = 0;
-      this[_element][dartx.style][dartx.width] = dart.str`${newWidth}px`;
+      this[_element$][dartx.style][dartx.width] = dart.str`${newWidth}px`;
     } else {
       dart.throw(new core.ArgumentError("newWidth is not a Dimension or num"));
     }
   }
   get left() {
-    return dart.notNull(this[_element][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html._CONTENT));
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._CONTENT));
   }
   get top() {
-    return dart.notNull(this[_element][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html._CONTENT));
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._CONTENT));
   }
 };
-dart.setSignature(html._ContentCssRect, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ContentCssRect, [html.Element])}),
+dart.setSignature(html$._ContentCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ContentCssRect, [html$.Element])}),
   getters: () => ({
     height: dart.definiteFunctionType(core.num, []),
     width: dart.definiteFunctionType(core.num, []),
@@ -95445,56 +95448,56 @@
     top: dart.definiteFunctionType(core.num, [])
   })
 });
-dart.defineExtensionMembers(html._ContentCssRect, ['height', 'width', 'left', 'top']);
+dart.defineExtensionMembers(html$._ContentCssRect, ['height', 'width', 'left', 'top']);
 const _elementList = Symbol('_elementList');
-html._ContentCssListRect = class _ContentCssListRect extends html._ContentCssRect {
+html$._ContentCssListRect = class _ContentCssListRect extends html$._ContentCssRect {
   new(elementList) {
     this[_elementList] = null;
     super.new(elementList[dartx.first]);
     this[_elementList] = elementList;
   }
   set height(newHeight) {
-    this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].height = newHeight, ElementTovoid()));
+    this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].height = newHeight, ElementTovoid$()));
   }
   get height() {
     return super.height;
   }
   set width(newWidth) {
-    this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].width = newWidth, ElementTovoid()));
+    this[_elementList][dartx.forEach](dart.fn(e => e[dartx.contentEdge].width = newWidth, ElementTovoid$()));
   }
   get width() {
     return super.width;
   }
 };
-dart.setSignature(html._ContentCssListRect, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ContentCssListRect, [ListOfElement()])}),
+dart.setSignature(html$._ContentCssListRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ContentCssListRect, [ListOfElement()])}),
   fields: () => ({[_elementList]: ListOfElement()})
 });
-html._PaddingCssRect = class _PaddingCssRect extends html.CssRect {
+html$._PaddingCssRect = class _PaddingCssRect extends html$.CssRect {
   new(element) {
-    super.new(html.Element._check(element));
+    super.new(html$.Element._check(element));
   }
   get height() {
-    return dart.notNull(this[_element][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html._HEIGHT, html._PADDING));
+    return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._PADDING));
   }
   set height(value) {
     super.height = value;
   }
   get width() {
-    return dart.notNull(this[_element][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html._WIDTH, html._PADDING));
+    return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._PADDING));
   }
   set width(value) {
     super.width = value;
   }
   get left() {
-    return dart.notNull(this[_element][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html._PADDING));
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._PADDING));
   }
   get top() {
-    return dart.notNull(this[_element][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html._PADDING));
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._PADDING));
   }
 };
-dart.setSignature(html._PaddingCssRect, {
-  constructors: () => ({new: dart.definiteFunctionType(html._PaddingCssRect, [dart.dynamic])}),
+dart.setSignature(html$._PaddingCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._PaddingCssRect, [dart.dynamic])}),
   getters: () => ({
     height: dart.definiteFunctionType(core.num, []),
     width: dart.definiteFunctionType(core.num, []),
@@ -95502,32 +95505,32 @@
     top: dart.definiteFunctionType(core.num, [])
   })
 });
-dart.defineExtensionMembers(html._PaddingCssRect, ['height', 'width', 'left', 'top']);
-html._BorderCssRect = class _BorderCssRect extends html.CssRect {
+dart.defineExtensionMembers(html$._PaddingCssRect, ['height', 'width', 'left', 'top']);
+html$._BorderCssRect = class _BorderCssRect extends html$.CssRect {
   new(element) {
-    super.new(html.Element._check(element));
+    super.new(html$.Element._check(element));
   }
   get height() {
-    return this[_element][dartx.offsetHeight];
+    return this[_element$][dartx.offsetHeight];
   }
   set height(value) {
     super.height = value;
   }
   get width() {
-    return this[_element][dartx.offsetWidth];
+    return this[_element$][dartx.offsetWidth];
   }
   set width(value) {
     super.width = value;
   }
   get left() {
-    return this[_element][dartx.getBoundingClientRect]()[dartx.left];
+    return this[_element$][dartx.getBoundingClientRect]()[dartx.left];
   }
   get top() {
-    return this[_element][dartx.getBoundingClientRect]()[dartx.top];
+    return this[_element$][dartx.getBoundingClientRect]()[dartx.top];
   }
 };
-dart.setSignature(html._BorderCssRect, {
-  constructors: () => ({new: dart.definiteFunctionType(html._BorderCssRect, [dart.dynamic])}),
+dart.setSignature(html$._BorderCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._BorderCssRect, [dart.dynamic])}),
   getters: () => ({
     height: dart.definiteFunctionType(core.num, []),
     width: dart.definiteFunctionType(core.num, []),
@@ -95535,32 +95538,32 @@
     top: dart.definiteFunctionType(core.num, [])
   })
 });
-dart.defineExtensionMembers(html._BorderCssRect, ['height', 'width', 'left', 'top']);
-html._MarginCssRect = class _MarginCssRect extends html.CssRect {
+dart.defineExtensionMembers(html$._BorderCssRect, ['height', 'width', 'left', 'top']);
+html$._MarginCssRect = class _MarginCssRect extends html$.CssRect {
   new(element) {
-    super.new(html.Element._check(element));
+    super.new(html$.Element._check(element));
   }
   get height() {
-    return dart.notNull(this[_element][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html._HEIGHT, html._MARGIN));
+    return dart.notNull(this[_element$][dartx.offsetHeight]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._HEIGHT, html$._MARGIN));
   }
   set height(value) {
     super.height = value;
   }
   get width() {
-    return dart.notNull(this[_element][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html._WIDTH, html._MARGIN));
+    return dart.notNull(this[_element$][dartx.offsetWidth]) + dart.notNull(this[_addOrSubtractToBoxModel](html$._WIDTH, html$._MARGIN));
   }
   set width(value) {
     super.width = value;
   }
   get left() {
-    return dart.notNull(this[_element][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html._MARGIN));
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.left]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['left']), html$._MARGIN));
   }
   get top() {
-    return dart.notNull(this[_element][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html._MARGIN));
+    return dart.notNull(this[_element$][dartx.getBoundingClientRect]()[dartx.top]) - dart.notNull(this[_addOrSubtractToBoxModel](JSArrayOfString().of(['top']), html$._MARGIN));
   }
 };
-dart.setSignature(html._MarginCssRect, {
-  constructors: () => ({new: dart.definiteFunctionType(html._MarginCssRect, [dart.dynamic])}),
+dart.setSignature(html$._MarginCssRect, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._MarginCssRect, [dart.dynamic])}),
   getters: () => ({
     height: dart.definiteFunctionType(core.num, []),
     width: dart.definiteFunctionType(core.num, []),
@@ -95568,20 +95571,20 @@
     top: dart.definiteFunctionType(core.num, [])
   })
 });
-dart.defineExtensionMembers(html._MarginCssRect, ['height', 'width', 'left', 'top']);
-dart.defineLazy(html, {
+dart.defineExtensionMembers(html$._MarginCssRect, ['height', 'width', 'left', 'top']);
+dart.defineLazy(html$, {
   get _HEIGHT() {
     return JSArrayOfString().of(['top', 'bottom']);
   }
 });
-dart.defineLazy(html, {
+dart.defineLazy(html$, {
   get _WIDTH() {
     return JSArrayOfString().of(['right', 'left']);
   }
 });
-html._CONTENT = 'content';
-html._PADDING = 'padding';
-html._MARGIN = 'margin';
+html$._CONTENT = 'content';
+html$._PADDING = 'padding';
+html$._MARGIN = 'margin';
 const _sets = Symbol('_sets');
 const _validateToken = Symbol('_validateToken');
 html_common.CssClassSetImpl = class CssClassSetImpl extends core.Object {
@@ -95687,7 +95690,7 @@
   }
   toggleAll(iterable, shouldAdd) {
     if (shouldAdd === void 0) shouldAdd = null;
-    iterable[dartx.forEach](dart.fn(e => this.toggle(e, shouldAdd), StringTobool()));
+    iterable[dartx.forEach](dart.fn(e => this.toggle(e, shouldAdd), StringTobool$()));
   }
   retainAll(iterable) {
     this.modify(dart.fn(s => s.retainAll(iterable), SetOfStringTovoid()));
@@ -95762,7 +95765,7 @@
     return ret;
   }
 };
-html_common.CssClassSetImpl[dart.implements] = () => [html.CssClassSet];
+html_common.CssClassSetImpl[dart.implements] = () => [html$.CssClassSet];
 dart.setSignature(html_common.CssClassSetImpl, {
   getters: () => ({
     frozen: dart.definiteFunctionType(core.bool, []),
@@ -95850,9 +95853,9 @@
     return core.RegExp.new('^\\S+$');
   }
 });
-html._MultiElementCssClassSet = class _MultiElementCssClassSet extends html_common.CssClassSetImpl {
+html$._MultiElementCssClassSet = class _MultiElementCssClassSet extends html_common.CssClassSetImpl {
   static new(elements) {
-    return new html._MultiElementCssClassSet._(elements, ListOfCssClassSetImpl()._check(elements[dartx.map](html.CssClassSet)(dart.fn(e => e[dartx.classes], ElementToCssClassSet()))[dartx.toList]()));
+    return new html$._MultiElementCssClassSet._(elements, ListOfCssClassSetImpl()._check(elements[dartx.map](html$.CssClassSet)(dart.fn(e => e[dartx.classes], ElementToCssClassSet()))[dartx.toList]()));
   }
   _(elementIterable, sets) {
     this[_elementIterable] = elementIterable;
@@ -95880,11 +95883,11 @@
     return this[_sets][dartx.fold](core.bool)(false, dart.fn((changed, e) => dart.test(e.remove(value)) || dart.test(changed), boolAndCssClassSetImplTobool()));
   }
 };
-dart.defineNamedConstructor(html._MultiElementCssClassSet, '_');
-dart.setSignature(html._MultiElementCssClassSet, {
+dart.defineNamedConstructor(html$._MultiElementCssClassSet, '_');
+dart.setSignature(html$._MultiElementCssClassSet, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html._MultiElementCssClassSet, [IterableOfElement()]),
-    _: dart.definiteFunctionType(html._MultiElementCssClassSet, [IterableOfElement(), ListOfCssClassSetImpl()])
+    new: dart.definiteFunctionType(html$._MultiElementCssClassSet, [IterableOfElement()]),
+    _: dart.definiteFunctionType(html$._MultiElementCssClassSet, [IterableOfElement(), ListOfCssClassSetImpl()])
   }),
   fields: () => ({
     [_elementIterable]: IterableOfElement(),
@@ -95895,13 +95898,13 @@
     writeClasses: dart.definiteFunctionType(dart.void, [SetOfString()])
   })
 });
-html._ElementCssClassSet = class _ElementCssClassSet extends html_common.CssClassSetImpl {
+html$._ElementCssClassSet = class _ElementCssClassSet extends html_common.CssClassSetImpl {
   new(element) {
-    this[_element] = element;
+    this[_element$] = element;
   }
   readClasses() {
     let s = LinkedHashSetOfString().new();
-    let classname = this[_element][dartx.className];
+    let classname = this[_element$][dartx.className];
     for (let name of classname[dartx.split](' ')) {
       let trimmed = name[dartx.trim]();
       if (!dart.test(trimmed[dartx.isEmpty])) {
@@ -95911,10 +95914,10 @@
     return s;
   }
   writeClasses(s) {
-    this[_element][dartx.className] = s.join(' ');
+    this[_element$][dartx.className] = s.join(' ');
   }
   get length() {
-    return html._ElementCssClassSet._classListLength(html._ElementCssClassSet._classListOf(this[_element]));
+    return html$._ElementCssClassSet._classListLength(html$._ElementCssClassSet._classListOf(this[_element$]));
   }
   get isEmpty() {
     return this.length == 0;
@@ -95923,87 +95926,87 @@
     return this.length != 0;
   }
   clear() {
-    this[_element][dartx.className] = '';
+    this[_element$][dartx.className] = '';
   }
   contains(value) {
-    return html._ElementCssClassSet._contains(this[_element], value);
+    return html$._ElementCssClassSet._contains(this[_element$], value);
   }
   add(value) {
-    return html._ElementCssClassSet._add(this[_element], value);
+    return html$._ElementCssClassSet._add(this[_element$], value);
   }
   remove(value) {
-    return typeof value == 'string' && dart.test(html._ElementCssClassSet._remove(this[_element], value));
+    return typeof value == 'string' && dart.test(html$._ElementCssClassSet._remove(this[_element$], value));
   }
   toggle(value, shouldAdd) {
     if (shouldAdd === void 0) shouldAdd = null;
-    return html._ElementCssClassSet._toggle(this[_element], value, shouldAdd);
+    return html$._ElementCssClassSet._toggle(this[_element$], value, shouldAdd);
   }
   addAll(iterable) {
-    html._ElementCssClassSet._addAll(this[_element], iterable);
+    html$._ElementCssClassSet._addAll(this[_element$], iterable);
   }
   removeAll(iterable) {
-    html._ElementCssClassSet._removeAll(this[_element], IterableOfString()._check(iterable));
+    html$._ElementCssClassSet._removeAll(this[_element$], IterableOfString()._check(iterable));
   }
   retainAll(iterable) {
-    html._ElementCssClassSet._removeWhere(this[_element], dart.bind(iterable[dartx.toSet](), 'contains'), false);
+    html$._ElementCssClassSet._removeWhere(this[_element$], dart.bind(iterable[dartx.toSet](), 'contains'), false);
   }
   removeWhere(test) {
-    html._ElementCssClassSet._removeWhere(this[_element], test, true);
+    html$._ElementCssClassSet._removeWhere(this[_element$], test, true);
   }
   retainWhere(test) {
-    html._ElementCssClassSet._removeWhere(this[_element], test, false);
+    html$._ElementCssClassSet._removeWhere(this[_element$], test, false);
   }
   static _contains(_element, value) {
-    return typeof value == 'string' && dart.test(html._ElementCssClassSet._classListContains(html._ElementCssClassSet._classListOf(_element), value));
+    return typeof value == 'string' && dart.test(html$._ElementCssClassSet._classListContains(html$._ElementCssClassSet._classListOf(_element), value));
   }
   static _add(_element, value) {
-    let list = html._ElementCssClassSet._classListOf(_element);
-    let added = !dart.test(html._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value));
-    html._ElementCssClassSet._classListAdd(list, value);
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    let added = !dart.test(html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value));
+    html$._ElementCssClassSet._classListAdd(list, value);
     return added;
   }
   static _remove(_element, value) {
-    let list = html._ElementCssClassSet._classListOf(_element);
-    let removed = html._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value);
-    html._ElementCssClassSet._classListRemove(list, value);
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    let removed = html$._ElementCssClassSet._classListContainsBeforeAddOrRemove(list, value);
+    html$._ElementCssClassSet._classListRemove(list, value);
     return removed;
   }
   static _toggle(_element, value, shouldAdd) {
-    return shouldAdd == null ? html._ElementCssClassSet._toggleDefault(_element, value) : html._ElementCssClassSet._toggleOnOff(_element, value, shouldAdd);
+    return shouldAdd == null ? html$._ElementCssClassSet._toggleDefault(_element, value) : html$._ElementCssClassSet._toggleOnOff(_element, value, shouldAdd);
   }
   static _toggleDefault(_element, value) {
-    let list = html._ElementCssClassSet._classListOf(_element);
-    return html._ElementCssClassSet._classListToggle1(list, value);
+    let list = html$._ElementCssClassSet._classListOf(_element);
+    return html$._ElementCssClassSet._classListToggle1(list, value);
   }
   static _toggleOnOff(_element, value, shouldAdd) {
-    let list = html._ElementCssClassSet._classListOf(_element);
+    let list = html$._ElementCssClassSet._classListOf(_element);
     if (dart.test(shouldAdd)) {
-      html._ElementCssClassSet._classListAdd(list, value);
+      html$._ElementCssClassSet._classListAdd(list, value);
       return true;
     } else {
-      html._ElementCssClassSet._classListRemove(list, value);
+      html$._ElementCssClassSet._classListRemove(list, value);
       return false;
     }
   }
   static _addAll(_element, iterable) {
-    let list = html._ElementCssClassSet._classListOf(_element);
+    let list = html$._ElementCssClassSet._classListOf(_element);
     for (let value of iterable) {
-      html._ElementCssClassSet._classListAdd(list, value);
+      html$._ElementCssClassSet._classListAdd(list, value);
     }
   }
   static _removeAll(_element, iterable) {
-    let list = html._ElementCssClassSet._classListOf(_element);
+    let list = html$._ElementCssClassSet._classListOf(_element);
     for (let value of iterable) {
-      html._ElementCssClassSet._classListRemove(list, value);
+      html$._ElementCssClassSet._classListRemove(list, value);
     }
   }
   static _removeWhere(_element, test, doRemove) {
-    let list = html._ElementCssClassSet._classListOf(_element);
+    let list = html$._ElementCssClassSet._classListOf(_element);
     let i = 0;
-    while (i < dart.notNull(html._ElementCssClassSet._classListLength(list))) {
+    while (i < dart.notNull(html$._ElementCssClassSet._classListLength(list))) {
       let item = list[dartx.item](i);
       if (doRemove == test(item)) {
-        html._ElementCssClassSet._classListRemove(list, item);
+        html$._ElementCssClassSet._classListRemove(list, item);
       } else {
         ++i;
       }
@@ -96034,75 +96037,75 @@
     return list.toggle(value, shouldAdd);
   }
 };
-dart.setSignature(html._ElementCssClassSet, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ElementCssClassSet, [html.Element])}),
-  fields: () => ({[_element]: html.Element}),
+dart.setSignature(html$._ElementCssClassSet, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ElementCssClassSet, [html$.Element])}),
+  fields: () => ({[_element$]: html$.Element}),
   methods: () => ({
     readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
     writeClasses: dart.definiteFunctionType(dart.void, [SetOfString()])
   }),
   statics: () => ({
-    _contains: dart.definiteFunctionType(core.bool, [html.Element, core.Object]),
-    _add: dart.definiteFunctionType(core.bool, [html.Element, core.String]),
-    _remove: dart.definiteFunctionType(core.bool, [html.Element, core.String]),
-    _toggle: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.bool]),
-    _toggleDefault: dart.definiteFunctionType(core.bool, [html.Element, core.String]),
-    _toggleOnOff: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.bool]),
-    _addAll: dart.definiteFunctionType(dart.void, [html.Element, IterableOfString()]),
-    _removeAll: dart.definiteFunctionType(dart.void, [html.Element, IterableOfString()]),
-    _removeWhere: dart.definiteFunctionType(dart.void, [html.Element, StringTobool(), core.bool]),
-    _classListOf: dart.definiteFunctionType(html.DomTokenList, [html.Element]),
-    _classListLength: dart.definiteFunctionType(core.int, [html.DomTokenList]),
-    _classListContains: dart.definiteFunctionType(core.bool, [html.DomTokenList, core.String]),
-    _classListContainsBeforeAddOrRemove: dart.definiteFunctionType(core.bool, [html.DomTokenList, core.String]),
-    _classListAdd: dart.definiteFunctionType(dart.void, [html.DomTokenList, core.String]),
-    _classListRemove: dart.definiteFunctionType(dart.void, [html.DomTokenList, core.String]),
-    _classListToggle1: dart.definiteFunctionType(core.bool, [html.DomTokenList, core.String]),
-    _classListToggle2: dart.definiteFunctionType(core.bool, [html.DomTokenList, core.String, core.bool])
+    _contains: dart.definiteFunctionType(core.bool, [html$.Element, core.Object]),
+    _add: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
+    _remove: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
+    _toggle: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.bool]),
+    _toggleDefault: dart.definiteFunctionType(core.bool, [html$.Element, core.String]),
+    _toggleOnOff: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.bool]),
+    _addAll: dart.definiteFunctionType(dart.void, [html$.Element, IterableOfString()]),
+    _removeAll: dart.definiteFunctionType(dart.void, [html$.Element, IterableOfString()]),
+    _removeWhere: dart.definiteFunctionType(dart.void, [html$.Element, StringTobool(), core.bool]),
+    _classListOf: dart.definiteFunctionType(html$.DomTokenList, [html$.Element]),
+    _classListLength: dart.definiteFunctionType(core.int, [html$.DomTokenList]),
+    _classListContains: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
+    _classListContainsBeforeAddOrRemove: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
+    _classListAdd: dart.definiteFunctionType(dart.void, [html$.DomTokenList, core.String]),
+    _classListRemove: dart.definiteFunctionType(dart.void, [html$.DomTokenList, core.String]),
+    _classListToggle1: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String]),
+    _classListToggle2: dart.definiteFunctionType(core.bool, [html$.DomTokenList, core.String, core.bool])
   }),
   names: ['_contains', '_add', '_remove', '_toggle', '_toggleDefault', '_toggleOnOff', '_addAll', '_removeAll', '_removeWhere', '_classListOf', '_classListLength', '_classListContains', '_classListContainsBeforeAddOrRemove', '_classListAdd', '_classListRemove', '_classListToggle1', '_classListToggle2']
 });
-dart.defineExtensionMembers(html._ElementCssClassSet, ['contains', 'length', 'isEmpty', 'isNotEmpty']);
+dart.defineExtensionMembers(html$._ElementCssClassSet, ['contains', 'length', 'isEmpty', 'isNotEmpty']);
 const _unit = Symbol('_unit');
-html.Dimension = class Dimension extends core.Object {
+html$.Dimension = class Dimension extends core.Object {
   percent(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = '%';
   }
   px(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'px';
   }
   pc(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'pc';
   }
   pt(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'pt';
   }
   inch(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'in';
   }
   cm(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'cm';
   }
   mm(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'mm';
   }
   em(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'em';
   }
   ex(value) {
-    this[_value] = value;
+    this[_value$2] = value;
     this[_unit] = 'ex';
   }
   css(cssValue) {
-    this[_value] = null;
+    this[_value$2] = null;
     this[_unit] = null;
     if (cssValue == '') cssValue = '0px';
     if (dart.test(cssValue[dartx.endsWith]('%'))) {
@@ -96111,52 +96114,52 @@
       this[_unit] = cssValue[dartx.substring](dart.notNull(cssValue[dartx.length]) - 2);
     }
     if (dart.test(cssValue[dartx.contains]('.'))) {
-      this[_value] = core.double.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
+      this[_value$2] = core.double.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
     } else {
-      this[_value] = core.int.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
+      this[_value$2] = core.int.parse(cssValue[dartx.substring](0, dart.notNull(cssValue[dartx.length]) - dart.notNull(this[_unit][dartx.length])));
     }
   }
   toString() {
-    return dart.str`${this[_value]}${this[_unit]}`;
+    return dart.str`${this[_value$2]}${this[_unit]}`;
   }
   get value() {
-    return this[_value];
+    return this[_value$2];
   }
 };
-dart.defineNamedConstructor(html.Dimension, 'percent');
-dart.defineNamedConstructor(html.Dimension, 'px');
-dart.defineNamedConstructor(html.Dimension, 'pc');
-dart.defineNamedConstructor(html.Dimension, 'pt');
-dart.defineNamedConstructor(html.Dimension, 'inch');
-dart.defineNamedConstructor(html.Dimension, 'cm');
-dart.defineNamedConstructor(html.Dimension, 'mm');
-dart.defineNamedConstructor(html.Dimension, 'em');
-dart.defineNamedConstructor(html.Dimension, 'ex');
-dart.defineNamedConstructor(html.Dimension, 'css');
-dart.setSignature(html.Dimension, {
+dart.defineNamedConstructor(html$.Dimension, 'percent');
+dart.defineNamedConstructor(html$.Dimension, 'px');
+dart.defineNamedConstructor(html$.Dimension, 'pc');
+dart.defineNamedConstructor(html$.Dimension, 'pt');
+dart.defineNamedConstructor(html$.Dimension, 'inch');
+dart.defineNamedConstructor(html$.Dimension, 'cm');
+dart.defineNamedConstructor(html$.Dimension, 'mm');
+dart.defineNamedConstructor(html$.Dimension, 'em');
+dart.defineNamedConstructor(html$.Dimension, 'ex');
+dart.defineNamedConstructor(html$.Dimension, 'css');
+dart.setSignature(html$.Dimension, {
   constructors: () => ({
-    percent: dart.definiteFunctionType(html.Dimension, [core.num]),
-    px: dart.definiteFunctionType(html.Dimension, [core.num]),
-    pc: dart.definiteFunctionType(html.Dimension, [core.num]),
-    pt: dart.definiteFunctionType(html.Dimension, [core.num]),
-    inch: dart.definiteFunctionType(html.Dimension, [core.num]),
-    cm: dart.definiteFunctionType(html.Dimension, [core.num]),
-    mm: dart.definiteFunctionType(html.Dimension, [core.num]),
-    em: dart.definiteFunctionType(html.Dimension, [core.num]),
-    ex: dart.definiteFunctionType(html.Dimension, [core.num]),
-    css: dart.definiteFunctionType(html.Dimension, [core.String])
+    percent: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    px: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    pc: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    pt: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    inch: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    cm: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    mm: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    em: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    ex: dart.definiteFunctionType(html$.Dimension, [core.num]),
+    css: dart.definiteFunctionType(html$.Dimension, [core.String])
   }),
   fields: () => ({
-    [_value]: core.num,
+    [_value$2]: core.num,
     [_unit]: core.String
   }),
   getters: () => ({value: dart.definiteFunctionType(core.num, [])})
 });
-html.EventListener = dart.typedef('EventListener', () => dart.functionType(dart.dynamic, [html.Event]));
-html.EventStreamProvider$ = dart.generic(T => {
-  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html._EventStream$(T)))();
-  let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html._ElementEventStreamImpl$(T)))();
-  let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html._ElementListEventStreamImpl$(T)))();
+html$.EventListener = dart.typedef('EventListener', () => dart.functionType(dart.dynamic, [html$.Event]));
+html$.EventStreamProvider$ = dart.generic(T => {
+  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
+  let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
+  let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
   class EventStreamProvider extends core.Object {
     new(eventType) {
       this[_eventType] = eventType;
@@ -96179,36 +96182,36 @@
   }
   dart.addTypeTests(EventStreamProvider);
   dart.setSignature(EventStreamProvider, {
-    constructors: () => ({new: dart.definiteFunctionType(html.EventStreamProvider$(T), [core.String])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$.EventStreamProvider$(T), [core.String])}),
     fields: () => ({[_eventType]: core.String}),
     methods: () => ({
-      forTarget: dart.definiteFunctionType(async.Stream$(T), [html.EventTarget], {useCapture: core.bool}),
-      forElement: dart.definiteFunctionType(html.ElementStream$(T), [html.Element], {useCapture: core.bool}),
-      [_forElementList]: dart.definiteFunctionType(html.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
-      getEventType: dart.definiteFunctionType(core.String, [html.EventTarget])
+      forTarget: dart.definiteFunctionType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}),
+      forElement: dart.definiteFunctionType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}),
+      [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
+      getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])
     })
   });
   return EventStreamProvider;
 });
-html.EventStreamProvider = EventStreamProvider();
-html.ElementStream$ = dart.generic(T => {
+html$.EventStreamProvider = EventStreamProvider();
+html$.ElementStream$ = dart.generic(T => {
   let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
   class ElementStream extends core.Object {}
   dart.addTypeTests(ElementStream);
   ElementStream[dart.implements] = () => [StreamOfT()];
   return ElementStream;
 });
-html.ElementStream = ElementStream();
-const _target = Symbol('_target');
+html$.ElementStream = ElementStream();
+const _target$0 = Symbol('_target');
 const _useCapture = Symbol('_useCapture');
-html._EventStream$ = dart.generic(T => {
-  let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html._EventStreamSubscription$(T)))();
+html$._EventStream$ = dart.generic(T => {
+  let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
   let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
   let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   class _EventStream extends async.Stream$(T) {
     new(target, eventType, useCapture) {
-      this[_target] = target;
+      this[_target$0] = target;
       this[_eventType] = eventType;
       this[_useCapture] = useCapture;
       super.new();
@@ -96225,13 +96228,13 @@
       let onError = opts && 'onError' in opts ? opts.onError : null;
       let onDone = opts && 'onDone' in opts ? opts.onDone : null;
       let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null;
-      return new (_EventStreamSubscriptionOfT())(this[_target], this[_eventType], onData, this[_useCapture]);
+      return new (_EventStreamSubscriptionOfT())(this[_target$0], this[_eventType], onData, this[_useCapture]);
     }
   }
   dart.setSignature(_EventStream, {
-    constructors: () => ({new: dart.definiteFunctionType(html._EventStream$(T), [html.EventTarget, core.String, core.bool])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._EventStream$(T), [html$.EventTarget, core.String, core.bool])}),
     fields: () => ({
-      [_target]: html.EventTarget,
+      [_target$0]: html$.EventTarget,
       [_eventType]: core.String,
       [_useCapture]: core.bool
     }),
@@ -96239,35 +96242,35 @@
   });
   return _EventStream;
 });
-html._EventStream = _EventStream();
-html._matchesWithAncestors = function(event, selector) {
+html$._EventStream = _EventStream();
+html$._matchesWithAncestors = function(event, selector) {
   let target = event[dartx.target];
-  return html.Element.is(target) ? target[dartx.matchesWithAncestors](selector) : false;
+  return html$.Element.is(target) ? target[dartx.matchesWithAncestors](selector) : false;
 };
-dart.fn(html._matchesWithAncestors, EventAndStringTobool());
-html._ElementEventStreamImpl$ = dart.generic(T => {
-  let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html._EventStreamSubscription$(T)))();
-  let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html.ElementStream$(T)))();
+dart.fn(html$._matchesWithAncestors, EventAndStringTobool());
+html$._ElementEventStreamImpl$ = dart.generic(T => {
+  let _EventStreamSubscriptionOfT = () => (_EventStreamSubscriptionOfT = dart.constFn(html$._EventStreamSubscription$(T)))();
+  let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html$.ElementStream$(T)))();
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   let TToT = () => (TToT = dart.constFn(dart.definiteFunctionType(T, [T])))();
   let TTobool = () => (TTobool = dart.constFn(dart.definiteFunctionType(core.bool, [T])))();
-  class _ElementEventStreamImpl extends html._EventStream$(T) {
+  class _ElementEventStreamImpl extends html$._EventStream$(T) {
     new(target, eventType, useCapture) {
-      super.new(html.EventTarget._check(target), core.String._check(eventType), core.bool._check(useCapture));
+      super.new(html$.EventTarget._check(target), core.String._check(eventType), core.bool._check(useCapture));
     }
     matches(selector) {
-      return this.where(dart.fn(event => html._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
+      return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
         e[_selector] = selector;
         return e;
       }, TToT()));
     }
     capture(onData) {
-      return new (_EventStreamSubscriptionOfT())(this[_target], this[_eventType], onData, true);
+      return new (_EventStreamSubscriptionOfT())(this[_target$0], this[_eventType], onData, true);
     }
   }
   _ElementEventStreamImpl[dart.implements] = () => [ElementStreamOfT()];
   dart.setSignature(_ElementEventStreamImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(html._ElementEventStreamImpl$(T), [dart.dynamic, dart.dynamic, dart.dynamic])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._ElementEventStreamImpl$(T), [dart.dynamic, dart.dynamic, dart.dynamic])}),
     methods: () => ({
       matches: dart.definiteFunctionType(async.Stream$(T), [core.String]),
       capture: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()])
@@ -96275,12 +96278,12 @@
   });
   return _ElementEventStreamImpl;
 });
-html._ElementEventStreamImpl = _ElementEventStreamImpl();
+html$._ElementEventStreamImpl = _ElementEventStreamImpl();
 const _targetList = Symbol('_targetList');
-html._ElementListEventStreamImpl$ = dart.generic(T => {
-  let _StreamPoolOfT = () => (_StreamPoolOfT = dart.constFn(html._StreamPool$(T)))();
-  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html._EventStream$(T)))();
-  let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html.ElementStream$(T)))();
+html$._ElementListEventStreamImpl$ = dart.generic(T => {
+  let _StreamPoolOfT = () => (_StreamPoolOfT = dart.constFn(html$._StreamPool$(T)))();
+  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
+  let ElementStreamOfT = () => (ElementStreamOfT = dart.constFn(html$.ElementStream$(T)))();
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
   let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
@@ -96294,7 +96297,7 @@
       super.new();
     }
     matches(selector) {
-      return this.where(dart.fn(event => html._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
+      return this.where(dart.fn(event => html$._matchesWithAncestors(event, selector), TTobool())).map(T)(dart.fn(e => {
         e[_selector] = selector;
         return e;
       }, TToT()));
@@ -96327,7 +96330,7 @@
   }
   _ElementListEventStreamImpl[dart.implements] = () => [ElementStreamOfT()];
   dart.setSignature(_ElementListEventStreamImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(html._ElementListEventStreamImpl$(T), [IterableOfElement(), core.String, core.bool])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._ElementListEventStreamImpl$(T), [IterableOfElement(), core.String, core.bool])}),
     fields: () => ({
       [_targetList]: IterableOfElement(),
       [_useCapture]: core.bool,
@@ -96341,44 +96344,44 @@
   });
   return _ElementListEventStreamImpl;
 });
-html._ElementListEventStreamImpl = _ElementListEventStreamImpl();
-html._EventListener$ = dart.generic(T => {
+html$._ElementListEventStreamImpl = _ElementListEventStreamImpl();
+html$._EventListener$ = dart.generic(T => {
   const _EventListener = dart.typedef('_EventListener', () => dart.functionType(dart.dynamic, [T]));
   return _EventListener;
 });
-html._EventListener = _EventListener();
-const _onData = Symbol('_onData');
-const _pauseCount = Symbol('_pauseCount');
+html$._EventListener = _EventListener();
+const _onData$0 = Symbol('_onData');
+const _pauseCount$0 = Symbol('_pauseCount');
 const _tryResume = Symbol('_tryResume');
 const _canceled = Symbol('_canceled');
 const _unlisten = Symbol('_unlisten');
-html._EventStreamSubscription$ = dart.generic(T => {
+html$._EventStreamSubscription$ = dart.generic(T => {
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   class _EventStreamSubscription extends async.StreamSubscription$(T) {
     new(target, eventType, onData, useCapture) {
-      this[_target] = target;
+      this[_target$0] = target;
       this[_eventType] = eventType;
       this[_useCapture] = useCapture;
-      this[_onData] = onData == null ? null : html._wrapZone(html.Event, dart.dynamic)(dart.fn(e => dart.dcall(onData, e), EventTodynamic()));
-      this[_pauseCount] = 0;
+      this[_onData$0] = onData == null ? null : html$._wrapZone(html$.Event, dart.dynamic)(dart.fn(e => dart.dcall(onData, e), EventTodynamic()));
+      this[_pauseCount$0] = 0;
       this[_tryResume]();
     }
     cancel() {
       if (dart.test(this[_canceled])) return null;
       this[_unlisten]();
-      this[_target] = null;
-      this[_onData] = null;
+      this[_target$0] = null;
+      this[_onData$0] = null;
       return null;
     }
     get [_canceled]() {
-      return this[_target] == null;
+      return this[_target$0] == null;
     }
     onData(handleData) {
       if (dart.test(this[_canceled])) {
         dart.throw(new core.StateError("Subscription has been canceled."));
       }
       this[_unlisten]();
-      this[_onData] = html._wrapZone(html.Event, dart.dynamic)(_wrapZoneCallbackOfEvent$dynamic()._check(handleData));
+      this[_onData$0] = html$._wrapZone(html$.Event, dart.dynamic)(_wrapZoneCallbackOfEvent$dynamic()._check(handleData));
       this[_tryResume]();
     }
     onError(handleError) {}
@@ -96386,28 +96389,28 @@
     pause(resumeSignal) {
       if (resumeSignal === void 0) resumeSignal = null;
       if (dart.test(this[_canceled])) return;
-      this[_pauseCount] = dart.notNull(this[_pauseCount]) + 1;
+      this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) + 1;
       this[_unlisten]();
       if (resumeSignal != null) {
         resumeSignal.whenComplete(dart.bind(this, 'resume'));
       }
     }
     get isPaused() {
-      return dart.notNull(this[_pauseCount]) > 0;
+      return dart.notNull(this[_pauseCount$0]) > 0;
     }
     resume() {
       if (dart.test(this[_canceled]) || !dart.test(this.isPaused)) return;
-      this[_pauseCount] = dart.notNull(this[_pauseCount]) - 1;
+      this[_pauseCount$0] = dart.notNull(this[_pauseCount$0]) - 1;
       this[_tryResume]();
     }
     [_tryResume]() {
-      if (this[_onData] != null && !dart.test(this.isPaused)) {
-        this[_target][dartx.addEventListener](this[_eventType], this[_onData], this[_useCapture]);
+      if (this[_onData$0] != null && !dart.test(this.isPaused)) {
+        this[_target$0][dartx.addEventListener](this[_eventType], this[_onData$0], this[_useCapture]);
       }
     }
     [_unlisten]() {
-      if (this[_onData] != null) {
-        this[_target][dartx.removeEventListener](this[_eventType], this[_onData], this[_useCapture]);
+      if (this[_onData$0] != null) {
+        this[_target$0][dartx.removeEventListener](this[_eventType], this[_onData$0], this[_useCapture]);
       }
     }
     asFuture(E) {
@@ -96419,12 +96422,12 @@
     }
   }
   dart.setSignature(_EventStreamSubscription, {
-    constructors: () => ({new: dart.definiteFunctionType(html._EventStreamSubscription$(T), [html.EventTarget, core.String, TTovoid(), core.bool])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._EventStreamSubscription$(T), [html$.EventTarget, core.String, TTovoid(), core.bool])}),
     fields: () => ({
-      [_pauseCount]: core.int,
-      [_target]: html.EventTarget,
+      [_pauseCount$0]: core.int,
+      [_target$0]: html$.EventTarget,
       [_eventType]: core.String,
-      [_onData]: html.EventListener,
+      [_onData$0]: html$.EventListener,
       [_useCapture]: core.bool
     }),
     getters: () => ({
@@ -96445,29 +96448,29 @@
   });
   return _EventStreamSubscription;
 });
-html._EventStreamSubscription = _EventStreamSubscription();
-html.CustomStream$ = dart.generic(T => {
+html$._EventStreamSubscription = _EventStreamSubscription();
+html$.CustomStream$ = dart.generic(T => {
   let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
   class CustomStream extends core.Object {}
   dart.addTypeTests(CustomStream);
   CustomStream[dart.implements] = () => [StreamOfT()];
   return CustomStream;
 });
-html.CustomStream = CustomStream();
+html$.CustomStream = CustomStream();
 const _streamController = Symbol('_streamController');
-const _type = Symbol('_type');
-html._CustomEventStreamImpl$ = dart.generic(T => {
+const _type$ = Symbol('_type');
+html$._CustomEventStreamImpl$ = dart.generic(T => {
   let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
-  let CustomStreamOfT = () => (CustomStreamOfT = dart.constFn(html.CustomStream$(T)))();
+  let CustomStreamOfT = () => (CustomStreamOfT = dart.constFn(html$.CustomStream$(T)))();
   let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
   let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
   class _CustomEventStreamImpl extends async.Stream$(T) {
     new(type) {
       this[_streamController] = null;
-      this[_type] = null;
+      this[_type$] = null;
       super.new();
-      this[_type] = type;
+      this[_type$] = type;
       this[_streamController] = StreamControllerOfT().broadcast({sync: true});
     }
     listen(onData, opts) {
@@ -96486,15 +96489,15 @@
     }
     add(event) {
       T._check(event);
-      if (event[dartx.type] == this[_type]) this[_streamController].add(event);
+      if (event[dartx.type] == this[_type$]) this[_streamController].add(event);
     }
   }
   _CustomEventStreamImpl[dart.implements] = () => [CustomStreamOfT()];
   dart.setSignature(_CustomEventStreamImpl, {
-    constructors: () => ({new: dart.definiteFunctionType(html._CustomEventStreamImpl$(T), [core.String])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._CustomEventStreamImpl$(T), [core.String])}),
     fields: () => ({
       [_streamController]: StreamControllerOfT(),
-      [_type]: core.String
+      [_type$]: core.String
     }),
     methods: () => ({
       listen: dart.definiteFunctionType(async.StreamSubscription$(T), [TTovoid()], {onError: core.Function, onDone: VoidTovoid(), cancelOnError: core.bool}),
@@ -96503,8 +96506,8 @@
   });
   return _CustomEventStreamImpl;
 });
-html._CustomEventStreamImpl = _CustomEventStreamImpl();
-const _parent = Symbol('_parent');
+html$._CustomEventStreamImpl = _CustomEventStreamImpl();
+const _parent$ = Symbol('_parent');
 const _shadowKeyCode = Symbol('_shadowKeyCode');
 const _shadowCharCode = Symbol('_shadowCharCode');
 const _shadowAltKey = Symbol('_shadowAltKey');
@@ -96513,7 +96516,7 @@
 const _realAltKey = Symbol('_realAltKey');
 const _currentTarget = Symbol('_currentTarget');
 const _shadowKeyIdentifier = Symbol('_shadowKeyIdentifier');
-html.KeyEvent = class KeyEvent extends html._WrappedEvent {
+html$.KeyEvent = class KeyEvent extends html$._WrappedEvent {
   get keyCode() {
     return this[_shadowKeyCode];
   }
@@ -96527,30 +96530,30 @@
     return this.keyCode;
   }
   get [_realKeyCode]() {
-    return this[_parent].keyCode;
+    return this[_parent$].keyCode;
   }
   get [_realCharCode]() {
-    return this[_parent].charCode;
+    return this[_parent$].charCode;
   }
   get [_realAltKey]() {
-    return this[_parent].altKey;
+    return this[_parent$].altKey;
   }
   static _makeRecord() {
-    let interceptor = _foreign_helper.JS_INTERCEPTOR_CONSTANT(dart.wrapType(html.KeyboardEvent));
+    let interceptor = _foreign_helper.JS_INTERCEPTOR_CONSTANT(dart.wrapType(html$.KeyboardEvent));
     return _js_helper.makeLeafDispatchRecord(interceptor);
   }
   wrap(parent) {
-    this[_parent] = null;
+    this[_parent$] = null;
     this[_shadowAltKey] = null;
     this[_shadowCharCode] = null;
     this[_shadowKeyCode] = null;
     this[_currentTarget] = null;
     super.new(parent);
-    this[_parent] = parent;
+    this[_parent$] = parent;
     this[_shadowAltKey] = this[_realAltKey];
     this[_shadowCharCode] = this[_realCharCode];
     this[_shadowKeyCode] = this[_realKeyCode];
-    this[_currentTarget] = this[_parent][dartx.currentTarget];
+    this[_currentTarget] = this[_parent$][dartx.currentTarget];
   }
   static new(type, opts) {
     let view = opts && 'view' in opts ? opts.view : null;
@@ -96565,11 +96568,11 @@
     let metaKey = opts && 'metaKey' in opts ? opts.metaKey : false;
     let currentTarget = opts && 'currentTarget' in opts ? opts.currentTarget : null;
     if (view == null) {
-      view = html.window;
+      view = html$.window;
     }
     let eventObj = null;
-    if (dart.test(html.KeyEvent.canUseDispatchEvent)) {
-      eventObj = html.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
+    if (dart.test(html$.KeyEvent.canUseDispatchEvent)) {
+      eventObj = html$.Event.eventType('Event', type, {canBubble: canBubble, cancelable: cancelable});
       eventObj.keyCode = keyCode;
       eventObj.which = keyCode;
       eventObj.charCode = charCode;
@@ -96579,7 +96582,7 @@
       eventObj.shiftKey = shiftKey;
       eventObj.metaKey = metaKey;
     } else {
-      eventObj = html.Event.eventType('KeyboardEvent', type, {canBubble: canBubble, cancelable: cancelable});
+      eventObj = html$.Event.eventType('KeyboardEvent', type, {canBubble: canBubble, cancelable: cancelable});
       Object.defineProperty(eventObj, 'keyCode', {
         get: function() {
           return this.keyCodeVal;
@@ -96595,15 +96598,15 @@
           return this.charCodeVal;
         }
       });
-      let keyIdentifier = html.KeyEvent._convertToHexString(charCode, keyCode);
+      let keyIdentifier = html$.KeyEvent._convertToHexString(charCode, keyCode);
       dart.dsend(eventObj, _initKeyboardEvent, type, canBubble, cancelable, view, keyIdentifier, keyLocation, ctrlKey, altKey, shiftKey, metaKey);
       eventObj.keyCodeVal = keyCode;
       eventObj.charCodeVal = charCode;
     }
-    _interceptors.setDispatchProperty(eventObj, html.KeyEvent._keyboardEventDispatchRecord);
-    let keyEvent = new html.KeyEvent.wrap(html.KeyboardEvent._check(eventObj));
+    _interceptors.setDispatchProperty(eventObj, html$.KeyEvent._keyboardEventDispatchRecord);
+    let keyEvent = new html$.KeyEvent.wrap(html$.KeyboardEvent._check(eventObj));
     if (keyEvent[_currentTarget] == null) {
-      keyEvent[_currentTarget] = currentTarget == null ? html.window : currentTarget;
+      keyEvent[_currentTarget] = currentTarget == null ? html$.window : currentTarget;
     }
     return keyEvent;
   }
@@ -96622,41 +96625,41 @@
       sb.write(hex);
       return sb.toString();
     } else {
-      return html.KeyCode._convertKeyCodeToKeyName(keyCode);
+      return html$.KeyCode._convertKeyCodeToKeyName(keyCode);
     }
   }
   get code() {
-    return this[_parent][dartx.code];
+    return this[_parent$][dartx.code];
   }
   get ctrlKey() {
-    return this[_parent][dartx.ctrlKey];
+    return this[_parent$][dartx.ctrlKey];
   }
   get detail() {
-    return this[_parent][dartx.detail];
+    return this[_parent$][dartx.detail];
   }
   get key() {
-    return this[_parent][dartx.key];
+    return this[_parent$][dartx.key];
   }
   get keyLocation() {
-    return this[_parent][dartx.keyLocation];
+    return this[_parent$][dartx.keyLocation];
   }
   get metaKey() {
-    return this[_parent][dartx.metaKey];
+    return this[_parent$][dartx.metaKey];
   }
   get shiftKey() {
-    return this[_parent][dartx.shiftKey];
+    return this[_parent$][dartx.shiftKey];
   }
   get sourceDevice() {
-    return this[_parent][dartx.sourceDevice];
+    return this[_parent$][dartx.sourceDevice];
   }
   get view() {
-    return html.Window._check(this[_parent][dartx.view]);
+    return html$.Window._check(this[_parent$][dartx.view]);
   }
   [_initUIEvent](type, canBubble, cancelable, view, detail) {
     dart.throw(new core.UnsupportedError("Cannot initialize a UI Event from a KeyEvent."));
   }
   get [_shadowKeyIdentifier]() {
-    return this[_parent].keyIdentifier;
+    return this[_parent$].keyIdentifier;
   }
   get [_charCode]() {
     return this.charCode;
@@ -96686,19 +96689,19 @@
     return dart.throw(new core.UnimplementedError());
   }
 };
-dart.defineNamedConstructor(html.KeyEvent, 'wrap');
-html.KeyEvent[dart.implements] = () => [html.KeyboardEvent];
-dart.setSignature(html.KeyEvent, {
+dart.defineNamedConstructor(html$.KeyEvent, 'wrap');
+html$.KeyEvent[dart.implements] = () => [html$.KeyboardEvent];
+dart.setSignature(html$.KeyEvent, {
   constructors: () => ({
-    wrap: dart.definiteFunctionType(html.KeyEvent, [html.KeyboardEvent]),
-    new: dart.definiteFunctionType(html.KeyEvent, [core.String], {view: html.Window, canBubble: core.bool, cancelable: core.bool, keyCode: core.int, charCode: core.int, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, currentTarget: html.EventTarget})
+    wrap: dart.definiteFunctionType(html$.KeyEvent, [html$.KeyboardEvent]),
+    new: dart.definiteFunctionType(html$.KeyEvent, [core.String], {view: html$.Window, canBubble: core.bool, cancelable: core.bool, keyCode: core.int, charCode: core.int, keyLocation: core.int, ctrlKey: core.bool, altKey: core.bool, shiftKey: core.bool, metaKey: core.bool, currentTarget: html$.EventTarget})
   }),
   fields: () => ({
-    [_parent]: html.KeyboardEvent,
+    [_parent$]: html$.KeyboardEvent,
     [_shadowAltKey]: core.bool,
     [_shadowCharCode]: core.int,
     [_shadowKeyCode]: core.int,
-    [_currentTarget]: html.EventTarget
+    [_currentTarget]: html$.EventTarget
   }),
   getters: () => ({
     keyCode: dart.definiteFunctionType(core.int, []),
@@ -96715,8 +96718,8 @@
     keyLocation: dart.definiteFunctionType(core.int, []),
     metaKey: dart.definiteFunctionType(core.bool, []),
     shiftKey: dart.definiteFunctionType(core.bool, []),
-    sourceDevice: dart.definiteFunctionType(html.InputDevice, []),
-    view: dart.definiteFunctionType(html.Window, []),
+    sourceDevice: dart.definiteFunctionType(html$.InputDevice, []),
+    view: dart.definiteFunctionType(html$.Window, []),
     [_shadowKeyIdentifier]: dart.definiteFunctionType(core.String, []),
     [_charCode]: dart.definiteFunctionType(core.int, []),
     [_keyCode]: dart.definiteFunctionType(core.int, []),
@@ -96727,8 +96730,8 @@
     [_get_view]: dart.definiteFunctionType(dart.dynamic, [])
   }),
   methods: () => ({
-    [_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.int]),
-    [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
+    [_initUIEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.int]),
+    [_initKeyboardEvent]: dart.definiteFunctionType(dart.void, [core.String, core.bool, core.bool, html$.Window, core.String, core.int, core.bool, core.bool, core.bool, core.bool]),
     getModifierState: dart.definiteFunctionType(core.bool, [core.String])
   }),
   sfields: () => ({
@@ -96744,42 +96747,42 @@
   }),
   names: ['_makeRecord', '_convertToHexString']
 });
-dart.defineLazy(html.KeyEvent, {
+dart.defineLazy(html$.KeyEvent, {
   get _keyboardEventDispatchRecord() {
-    return html.KeyEvent._makeRecord();
+    return html$.KeyEvent._makeRecord();
   },
   get keyDownEvent() {
-    return new html._KeyboardEventHandler('keydown');
+    return new html$._KeyboardEventHandler('keydown');
   },
   set keyDownEvent(_) {},
   get keyUpEvent() {
-    return new html._KeyboardEventHandler('keyup');
+    return new html$._KeyboardEventHandler('keyup');
   },
   set keyUpEvent(_) {},
   get keyPressEvent() {
-    return new html._KeyboardEventHandler('keypress');
+    return new html$._KeyboardEventHandler('keypress');
   },
   set keyPressEvent(_) {}
 });
-html._CustomKeyEventStreamImpl = class _CustomKeyEventStreamImpl extends html._CustomEventStreamImpl$(html.KeyEvent) {
+html$._CustomKeyEventStreamImpl = class _CustomKeyEventStreamImpl extends html$._CustomEventStreamImpl$(html$.KeyEvent) {
   new(type) {
     super.new(type);
   }
   add(event) {
-    if (event.type == this[_type]) {
-      event.currentTarget[dartx.dispatchEvent](event[_parent]);
+    if (event.type == this[_type$]) {
+      event.currentTarget[dartx.dispatchEvent](event[_parent$]);
       this[_streamController].add(event);
     }
   }
 };
-dart.addSimpleTypeTests(html._CustomKeyEventStreamImpl);
-html._CustomKeyEventStreamImpl[dart.implements] = () => [CustomStreamOfKeyEvent()];
-dart.setSignature(html._CustomKeyEventStreamImpl, {
-  constructors: () => ({new: dart.definiteFunctionType(html._CustomKeyEventStreamImpl, [core.String])})
+dart.addSimpleTypeTests(html$._CustomKeyEventStreamImpl);
+html$._CustomKeyEventStreamImpl[dart.implements] = () => [CustomStreamOfKeyEvent()];
+dart.setSignature(html$._CustomKeyEventStreamImpl, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._CustomKeyEventStreamImpl, [core.String])})
 });
 const _subscriptions = Symbol('_subscriptions');
-const _controller = Symbol('_controller');
-html._StreamPool$ = dart.generic(T => {
+const _controller$1 = Symbol('_controller');
+html$._StreamPool$ = dart.generic(T => {
   let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
   let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
   let MapOfStreamOfT$StreamSubscriptionOfT = () => (MapOfStreamOfT$StreamSubscriptionOfT = dart.constFn(core.Map$(StreamOfT(), StreamSubscriptionOfT())))();
@@ -96787,16 +96790,16 @@
   class _StreamPool extends core.Object {
     broadcast() {
       this[_subscriptions] = MapOfStreamOfT$StreamSubscriptionOfT().new();
-      this[_controller] = null;
-      this[_controller] = StreamControllerOfT().broadcast({sync: true, onCancel: dart.bind(this, 'close')});
+      this[_controller$1] = null;
+      this[_controller$1] = StreamControllerOfT().broadcast({sync: true, onCancel: dart.bind(this, 'close')});
     }
     get stream() {
-      return this[_controller].stream;
+      return this[_controller$1].stream;
     }
     add(stream) {
       StreamOfT()._check(stream);
       if (dart.test(this[_subscriptions][dartx.containsKey](stream))) return;
-      this[_subscriptions][dartx._set](stream, stream.listen(dart.bind(this[_controller], 'add'), {onError: dart.bind(this[_controller], 'addError'), onDone: dart.fn(() => this.remove(stream), VoidTovoid())}));
+      this[_subscriptions][dartx._set](stream, stream.listen(dart.bind(this[_controller$1], 'add'), {onError: dart.bind(this[_controller$1], 'addError'), onDone: dart.fn(() => this.remove(stream), VoidTovoid$())}));
     }
     remove(stream) {
       StreamOfT()._check(stream);
@@ -96808,15 +96811,15 @@
         subscription.cancel();
       }
       this[_subscriptions][dartx.clear]();
-      this[_controller].close();
+      this[_controller$1].close();
     }
   }
   dart.addTypeTests(_StreamPool);
   dart.defineNamedConstructor(_StreamPool, 'broadcast');
   dart.setSignature(_StreamPool, {
-    constructors: () => ({broadcast: dart.definiteFunctionType(html._StreamPool$(T), [])}),
+    constructors: () => ({broadcast: dart.definiteFunctionType(html$._StreamPool$(T), [])}),
     fields: () => ({
-      [_controller]: StreamControllerOfT(),
+      [_controller$1]: StreamControllerOfT(),
       [_subscriptions]: MapOfStreamOfT$StreamSubscriptionOfT()
     }),
     getters: () => ({stream: dart.definiteFunctionType(async.Stream$(T), [])}),
@@ -96828,13 +96831,13 @@
   });
   return _StreamPool;
 });
-html._StreamPool = _StreamPool();
+html$._StreamPool = _StreamPool();
 const _eventTypeGetter = Symbol('_eventTypeGetter');
-html._CustomEventStreamProvider$ = dart.generic(T => {
-  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html._EventStream$(T)))();
-  let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html._ElementEventStreamImpl$(T)))();
-  let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html._ElementListEventStreamImpl$(T)))();
-  let EventStreamProviderOfT = () => (EventStreamProviderOfT = dart.constFn(html.EventStreamProvider$(T)))();
+html$._CustomEventStreamProvider$ = dart.generic(T => {
+  let _EventStreamOfT = () => (_EventStreamOfT = dart.constFn(html$._EventStream$(T)))();
+  let _ElementEventStreamImplOfT = () => (_ElementEventStreamImplOfT = dart.constFn(html$._ElementEventStreamImpl$(T)))();
+  let _ElementListEventStreamImplOfT = () => (_ElementListEventStreamImplOfT = dart.constFn(html$._ElementListEventStreamImpl$(T)))();
+  let EventStreamProviderOfT = () => (EventStreamProviderOfT = dart.constFn(html$.EventStreamProvider$(T)))();
   class _CustomEventStreamProvider extends core.Object {
     new(eventTypeGetter) {
       this[_eventTypeGetter] = eventTypeGetter;
@@ -96861,40 +96864,40 @@
   dart.addTypeTests(_CustomEventStreamProvider);
   _CustomEventStreamProvider[dart.implements] = () => [EventStreamProviderOfT()];
   dart.setSignature(_CustomEventStreamProvider, {
-    constructors: () => ({new: dart.definiteFunctionType(html._CustomEventStreamProvider$(T), [dart.dynamic])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._CustomEventStreamProvider$(T), [dart.dynamic])}),
     fields: () => ({[_eventTypeGetter]: dart.dynamic}),
     getters: () => ({[_eventType]: dart.definiteFunctionType(core.String, [])}),
     methods: () => ({
-      forTarget: dart.definiteFunctionType(async.Stream$(T), [html.EventTarget], {useCapture: core.bool}),
-      forElement: dart.definiteFunctionType(html.ElementStream$(T), [html.Element], {useCapture: core.bool}),
-      [_forElementList]: dart.definiteFunctionType(html.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
-      getEventType: dart.definiteFunctionType(core.String, [html.EventTarget])
+      forTarget: dart.definiteFunctionType(async.Stream$(T), [html$.EventTarget], {useCapture: core.bool}),
+      forElement: dart.definiteFunctionType(html$.ElementStream$(T), [html$.Element], {useCapture: core.bool}),
+      [_forElementList]: dart.definiteFunctionType(html$.ElementStream$(T), [ElementListOfElement()], {useCapture: core.bool}),
+      getEventType: dart.definiteFunctionType(core.String, [html$.EventTarget])
     })
   });
   return _CustomEventStreamProvider;
 });
-html._CustomEventStreamProvider = _CustomEventStreamProvider();
-html._Html5NodeValidator = class _Html5NodeValidator extends core.Object {
+html$._CustomEventStreamProvider = _CustomEventStreamProvider();
+html$._Html5NodeValidator = class _Html5NodeValidator extends core.Object {
   new(opts) {
     let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-    this.uriPolicy = uriPolicy != null ? uriPolicy : html.UriPolicy.new();
-    if (dart.test(html._Html5NodeValidator._attributeValidators[dartx.isEmpty])) {
-      for (let attr of html._Html5NodeValidator._standardAttributes) {
-        html._Html5NodeValidator._attributeValidators[dartx._set](attr, html._Html5NodeValidator._standardAttributeValidator);
+    this.uriPolicy = uriPolicy != null ? uriPolicy : html$.UriPolicy.new();
+    if (dart.test(html$._Html5NodeValidator._attributeValidators[dartx.isEmpty])) {
+      for (let attr of html$._Html5NodeValidator._standardAttributes) {
+        html$._Html5NodeValidator._attributeValidators[dartx._set](attr, html$._Html5NodeValidator._standardAttributeValidator);
       }
-      for (let attr of html._Html5NodeValidator._uriAttributes) {
-        html._Html5NodeValidator._attributeValidators[dartx._set](attr, html._Html5NodeValidator._uriAttributeValidator);
+      for (let attr of html$._Html5NodeValidator._uriAttributes) {
+        html$._Html5NodeValidator._attributeValidators[dartx._set](attr, html$._Html5NodeValidator._uriAttributeValidator);
       }
     }
   }
   allowsElement(element) {
-    return html._Html5NodeValidator._allowedElements.contains(html.Element._safeTagName(element));
+    return html$._Html5NodeValidator._allowedElements.contains(html$.Element._safeTagName(element));
   }
   allowsAttribute(element, attributeName, value) {
-    let tagName = html.Element._safeTagName(element);
-    let validator = html._Html5NodeValidator._attributeValidators[dartx._get](dart.str`${tagName}::${attributeName}`);
+    let tagName = html$.Element._safeTagName(element);
+    let validator = html$._Html5NodeValidator._attributeValidators[dartx._get](dart.str`${tagName}::${attributeName}`);
     if (validator == null) {
-      validator = html._Html5NodeValidator._attributeValidators[dartx._get](dart.str`*::${attributeName}`);
+      validator = html$._Html5NodeValidator._attributeValidators[dartx._get](dart.str`*::${attributeName}`);
     }
     if (validator == null) {
       return false;
@@ -96908,13 +96911,13 @@
     return context.uriPolicy.allowsUri(value);
   }
 };
-html._Html5NodeValidator[dart.implements] = () => [html.NodeValidator];
-dart.setSignature(html._Html5NodeValidator, {
-  constructors: () => ({new: dart.definiteFunctionType(html._Html5NodeValidator, [], {uriPolicy: html.UriPolicy})}),
-  fields: () => ({uriPolicy: html.UriPolicy}),
+html$._Html5NodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._Html5NodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._Html5NodeValidator, [], {uriPolicy: html$.UriPolicy})}),
+  fields: () => ({uriPolicy: html$.UriPolicy}),
   methods: () => ({
-    allowsElement: dart.definiteFunctionType(core.bool, [html.Element]),
-    allowsAttribute: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String])
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
   }),
   sfields: () => ({
     _allowedElements: SetOfString(),
@@ -96923,14 +96926,14 @@
     _attributeValidators: MapOfString$Function()
   }),
   statics: () => ({
-    _standardAttributeValidator: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String, html._Html5NodeValidator]),
-    _uriAttributeValidator: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String, html._Html5NodeValidator])
+    _standardAttributeValidator: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator]),
+    _uriAttributeValidator: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String, html$._Html5NodeValidator])
   }),
   names: ['_standardAttributeValidator', '_uriAttributeValidator']
 });
-html._Html5NodeValidator._standardAttributes = dart.constList(['*::class', '*::dir', '*::draggable', '*::hidden', '*::id', '*::inert', '*::itemprop', '*::itemref', '*::itemscope', '*::lang', '*::spellcheck', '*::title', '*::translate', 'A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'AREA::accesskey', 'AREA::alt', 'AREA::coords', 'AREA::nohref', 'AREA::shape', 'AREA::tabindex', 'AREA::target', 'AUDIO::controls', 'AUDIO::loop', 'AUDIO::mediagroup', 'AUDIO::muted', 'AUDIO::preload', 'BDO::dir', 'BODY::alink', 'BODY::bgcolor', 'BODY::link', 'BODY::text', 'BODY::vlink', 'BR::clear', 'BUTTON::accesskey', 'BUTTON::disabled', 'BUTTON::name', 'BUTTON::tabindex', 'BUTTON::type', 'BUTTON::value', 'CANVAS::height', 'CANVAS::width', 'CAPTION::align', 'COL::align', 'COL::char', 'COL::charoff', 'COL::span', 'COL::valign', 'COL::width', 'COLGROUP::align', 'COLGROUP::char', 'COLGROUP::charoff', 'COLGROUP::span', 'COLGROUP::valign', 'COLGROUP::width', 'COMMAND::checked', 'COMMAND::command', 'COMMAND::disabled', 'COMMAND::label', 'COMMAND::radiogroup', 'COMMAND::type', 'DATA::value', 'DEL::datetime', 'DETAILS::open', 'DIR::compact', 'DIV::align', 'DL::compact', 'FIELDSET::disabled', 'FONT::color', 'FONT::face', 'FONT::size', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target', 'FRAME::name', 'H1::align', 'H2::align', 'H3::align', 'H4::align', 'H5::align', 'H6::align', 'HR::align', 'HR::noshade', 'HR::size', 'HR::width', 'HTML::version', 'IFRAME::align', 'IFRAME::frameborder', 'IFRAME::height', 'IFRAME::marginheight', 'IFRAME::marginwidth', 'IFRAME::width', 'IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width', 'INPUT::accept', 'INPUT::accesskey', 'INPUT::align', 'INPUT::alt', 'INPUT::autocomplete', 'INPUT::autofocus', 'INPUT::checked', 'INPUT::disabled', 'INPUT::inputmode', 'INPUT::ismap', 'INPUT::list', 'INPUT::max', 'INPUT::maxlength', 'INPUT::min', 'INPUT::multiple', 'INPUT::name', 'INPUT::placeholder', 'INPUT::readonly', 'INPUT::required', 'INPUT::size', 'INPUT::step', 'INPUT::tabindex', 'INPUT::type', 'INPUT::usemap', 'INPUT::value', 'INS::datetime', 'KEYGEN::disabled', 'KEYGEN::keytype', 'KEYGEN::name', 'LABEL::accesskey', 'LABEL::for', 'LEGEND::accesskey', 'LEGEND::align', 'LI::type', 'LI::value', 'LINK::sizes', 'MAP::name', 'MENU::compact', 'MENU::label', 'MENU::type', 'METER::high', 'METER::low', 'METER::max', 'METER::min', 'METER::value', 'OBJECT::typemustmatch', 'OL::compact', 'OL::reversed', 'OL::start', 'OL::type', 'OPTGROUP::disabled', 'OPTGROUP::label', 'OPTION::disabled', 'OPTION::label', 'OPTION::selected', 'OPTION::value', 'OUTPUT::for', 'OUTPUT::name', 'P::align', 'PRE::width', 'PROGRESS::max', 'PROGRESS::min', 'PROGRESS::value', 'SELECT::autocomplete', 'SELECT::disabled', 'SELECT::multiple', 'SELECT::name', 'SELECT::required', 'SELECT::size', 'SELECT::tabindex', 'SOURCE::type', 'TABLE::align', 'TABLE::bgcolor', 'TABLE::border', 'TABLE::cellpadding', 'TABLE::cellspacing', 'TABLE::frame', 'TABLE::rules', 'TABLE::summary', 'TABLE::width', 'TBODY::align', 'TBODY::char', 'TBODY::charoff', 'TBODY::valign', 'TD::abbr', 'TD::align', 'TD::axis', 'TD::bgcolor', 'TD::char', 'TD::charoff', 'TD::colspan', 'TD::headers', 'TD::height', 'TD::nowrap', 'TD::rowspan', 'TD::scope', 'TD::valign', 'TD::width', 'TEXTAREA::accesskey', 'TEXTAREA::autocomplete', 'TEXTAREA::cols', 'TEXTAREA::disabled', 'TEXTAREA::inputmode', 'TEXTAREA::name', 'TEXTAREA::placeholder', 'TEXTAREA::readonly', 'TEXTAREA::required', 'TEXTAREA::rows', 'TEXTAREA::tabindex', 'TEXTAREA::wrap', 'TFOOT::align', 'TFOOT::char', 'TFOOT::charoff', 'TFOOT::valign', 'TH::abbr', 'TH::align', 'TH::axis', 'TH::bgcolor', 'TH::char', 'TH::charoff', 'TH::colspan', 'TH::headers', 'TH::height', 'TH::nowrap', 'TH::rowspan', 'TH::scope', 'TH::valign', 'TH::width', 'THEAD::align', 'THEAD::char', 'THEAD::charoff', 'THEAD::valign', 'TR::align', 'TR::bgcolor', 'TR::char', 'TR::charoff', 'TR::valign', 'TRACK::default', 'TRACK::kind', 'TRACK::label', 'TRACK::srclang', 'UL::compact', 'UL::type', 'VIDEO::controls', 'VIDEO::height', 'VIDEO::loop', 'VIDEO::mediagroup', 'VIDEO::muted', 'VIDEO::preload', 'VIDEO::width'], core.String);
-html._Html5NodeValidator._uriAttributes = dart.constList(['A::href', 'AREA::href', 'BLOCKQUOTE::cite', 'BODY::background', 'COMMAND::icon', 'DEL::cite', 'FORM::action', 'IMG::src', 'INPUT::src', 'INS::cite', 'Q::cite', 'VIDEO::poster'], core.String);
-dart.defineLazy(html._Html5NodeValidator, {
+html$._Html5NodeValidator._standardAttributes = dart.constList(['*::class', '*::dir', '*::draggable', '*::hidden', '*::id', '*::inert', '*::itemprop', '*::itemref', '*::itemscope', '*::lang', '*::spellcheck', '*::title', '*::translate', 'A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'AREA::accesskey', 'AREA::alt', 'AREA::coords', 'AREA::nohref', 'AREA::shape', 'AREA::tabindex', 'AREA::target', 'AUDIO::controls', 'AUDIO::loop', 'AUDIO::mediagroup', 'AUDIO::muted', 'AUDIO::preload', 'BDO::dir', 'BODY::alink', 'BODY::bgcolor', 'BODY::link', 'BODY::text', 'BODY::vlink', 'BR::clear', 'BUTTON::accesskey', 'BUTTON::disabled', 'BUTTON::name', 'BUTTON::tabindex', 'BUTTON::type', 'BUTTON::value', 'CANVAS::height', 'CANVAS::width', 'CAPTION::align', 'COL::align', 'COL::char', 'COL::charoff', 'COL::span', 'COL::valign', 'COL::width', 'COLGROUP::align', 'COLGROUP::char', 'COLGROUP::charoff', 'COLGROUP::span', 'COLGROUP::valign', 'COLGROUP::width', 'COMMAND::checked', 'COMMAND::command', 'COMMAND::disabled', 'COMMAND::label', 'COMMAND::radiogroup', 'COMMAND::type', 'DATA::value', 'DEL::datetime', 'DETAILS::open', 'DIR::compact', 'DIV::align', 'DL::compact', 'FIELDSET::disabled', 'FONT::color', 'FONT::face', 'FONT::size', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target', 'FRAME::name', 'H1::align', 'H2::align', 'H3::align', 'H4::align', 'H5::align', 'H6::align', 'HR::align', 'HR::noshade', 'HR::size', 'HR::width', 'HTML::version', 'IFRAME::align', 'IFRAME::frameborder', 'IFRAME::height', 'IFRAME::marginheight', 'IFRAME::marginwidth', 'IFRAME::width', 'IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width', 'INPUT::accept', 'INPUT::accesskey', 'INPUT::align', 'INPUT::alt', 'INPUT::autocomplete', 'INPUT::autofocus', 'INPUT::checked', 'INPUT::disabled', 'INPUT::inputmode', 'INPUT::ismap', 'INPUT::list', 'INPUT::max', 'INPUT::maxlength', 'INPUT::min', 'INPUT::multiple', 'INPUT::name', 'INPUT::placeholder', 'INPUT::readonly', 'INPUT::required', 'INPUT::size', 'INPUT::step', 'INPUT::tabindex', 'INPUT::type', 'INPUT::usemap', 'INPUT::value', 'INS::datetime', 'KEYGEN::disabled', 'KEYGEN::keytype', 'KEYGEN::name', 'LABEL::accesskey', 'LABEL::for', 'LEGEND::accesskey', 'LEGEND::align', 'LI::type', 'LI::value', 'LINK::sizes', 'MAP::name', 'MENU::compact', 'MENU::label', 'MENU::type', 'METER::high', 'METER::low', 'METER::max', 'METER::min', 'METER::value', 'OBJECT::typemustmatch', 'OL::compact', 'OL::reversed', 'OL::start', 'OL::type', 'OPTGROUP::disabled', 'OPTGROUP::label', 'OPTION::disabled', 'OPTION::label', 'OPTION::selected', 'OPTION::value', 'OUTPUT::for', 'OUTPUT::name', 'P::align', 'PRE::width', 'PROGRESS::max', 'PROGRESS::min', 'PROGRESS::value', 'SELECT::autocomplete', 'SELECT::disabled', 'SELECT::multiple', 'SELECT::name', 'SELECT::required', 'SELECT::size', 'SELECT::tabindex', 'SOURCE::type', 'TABLE::align', 'TABLE::bgcolor', 'TABLE::border', 'TABLE::cellpadding', 'TABLE::cellspacing', 'TABLE::frame', 'TABLE::rules', 'TABLE::summary', 'TABLE::width', 'TBODY::align', 'TBODY::char', 'TBODY::charoff', 'TBODY::valign', 'TD::abbr', 'TD::align', 'TD::axis', 'TD::bgcolor', 'TD::char', 'TD::charoff', 'TD::colspan', 'TD::headers', 'TD::height', 'TD::nowrap', 'TD::rowspan', 'TD::scope', 'TD::valign', 'TD::width', 'TEXTAREA::accesskey', 'TEXTAREA::autocomplete', 'TEXTAREA::cols', 'TEXTAREA::disabled', 'TEXTAREA::inputmode', 'TEXTAREA::name', 'TEXTAREA::placeholder', 'TEXTAREA::readonly', 'TEXTAREA::required', 'TEXTAREA::rows', 'TEXTAREA::tabindex', 'TEXTAREA::wrap', 'TFOOT::align', 'TFOOT::char', 'TFOOT::charoff', 'TFOOT::valign', 'TH::abbr', 'TH::align', 'TH::axis', 'TH::bgcolor', 'TH::char', 'TH::charoff', 'TH::colspan', 'TH::headers', 'TH::height', 'TH::nowrap', 'TH::rowspan', 'TH::scope', 'TH::valign', 'TH::width', 'THEAD::align', 'THEAD::char', 'THEAD::charoff', 'THEAD::valign', 'TR::align', 'TR::bgcolor', 'TR::char', 'TR::charoff', 'TR::valign', 'TRACK::default', 'TRACK::kind', 'TRACK::label', 'TRACK::srclang', 'UL::compact', 'UL::type', 'VIDEO::controls', 'VIDEO::height', 'VIDEO::loop', 'VIDEO::mediagroup', 'VIDEO::muted', 'VIDEO::preload', 'VIDEO::width'], core.String);
+html$._Html5NodeValidator._uriAttributes = dart.constList(['A::href', 'AREA::href', 'BLOCKQUOTE::cite', 'BODY::background', 'COMMAND::icon', 'DEL::cite', 'FORM::action', 'IMG::src', 'INPUT::src', 'INS::cite', 'Q::cite', 'VIDEO::poster'], core.String);
+dart.defineLazy(html$._Html5NodeValidator, {
   get _allowedElements() {
     return SetOfString().from(JSArrayOfString().of(['A', 'ABBR', 'ACRONYM', 'ADDRESS', 'AREA', 'ARTICLE', 'ASIDE', 'AUDIO', 'B', 'BDI', 'BDO', 'BIG', 'BLOCKQUOTE', 'BR', 'BUTTON', 'CANVAS', 'CAPTION', 'CENTER', 'CITE', 'CODE', 'COL', 'COLGROUP', 'COMMAND', 'DATA', 'DATALIST', 'DD', 'DEL', 'DETAILS', 'DFN', 'DIR', 'DIV', 'DL', 'DT', 'EM', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FONT', 'FOOTER', 'FORM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR', 'I', 'IFRAME', 'IMG', 'INPUT', 'INS', 'KBD', 'LABEL', 'LEGEND', 'LI', 'MAP', 'MARK', 'MENU', 'METER', 'NAV', 'NOBR', 'OL', 'OPTGROUP', 'OPTION', 'OUTPUT', 'P', 'PRE', 'PROGRESS', 'Q', 'S', 'SAMP', 'SECTION', 'SELECT', 'SMALL', 'SOURCE', 'SPAN', 'STRIKE', 'STRONG', 'SUB', 'SUMMARY', 'SUP', 'TABLE', 'TBODY', 'TD', 'TEXTAREA', 'TFOOT', 'TH', 'THEAD', 'TIME', 'TR', 'TRACK', 'TT', 'U', 'UL', 'VAR', 'VIDEO', 'WBR']));
   },
@@ -96938,178 +96941,178 @@
     return dart.map({}, core.String, core.Function);
   }
 });
-html.KeyCode = class KeyCode extends core.Object {
+html$.KeyCode = class KeyCode extends core.Object {
   static isCharacterKey(keyCode) {
-    if (dart.notNull(keyCode) >= html.KeyCode.ZERO && dart.notNull(keyCode) <= html.KeyCode.NINE || dart.notNull(keyCode) >= html.KeyCode.NUM_ZERO && dart.notNull(keyCode) <= html.KeyCode.NUM_MULTIPLY || dart.notNull(keyCode) >= html.KeyCode.A && dart.notNull(keyCode) <= html.KeyCode.Z) {
+    if (dart.notNull(keyCode) >= html$.KeyCode.ZERO && dart.notNull(keyCode) <= html$.KeyCode.NINE || dart.notNull(keyCode) >= html$.KeyCode.NUM_ZERO && dart.notNull(keyCode) <= html$.KeyCode.NUM_MULTIPLY || dart.notNull(keyCode) >= html$.KeyCode.A && dart.notNull(keyCode) <= html$.KeyCode.Z) {
       return true;
     }
     if (dart.test(html_common.Device.isWebKit) && keyCode == 0) {
       return true;
     }
-    return keyCode == html.KeyCode.SPACE || keyCode == html.KeyCode.QUESTION_MARK || keyCode == html.KeyCode.NUM_PLUS || keyCode == html.KeyCode.NUM_MINUS || keyCode == html.KeyCode.NUM_PERIOD || keyCode == html.KeyCode.NUM_DIVISION || keyCode == html.KeyCode.SEMICOLON || keyCode == html.KeyCode.FF_SEMICOLON || keyCode == html.KeyCode.DASH || keyCode == html.KeyCode.EQUALS || keyCode == html.KeyCode.FF_EQUALS || keyCode == html.KeyCode.COMMA || keyCode == html.KeyCode.PERIOD || keyCode == html.KeyCode.SLASH || keyCode == html.KeyCode.APOSTROPHE || keyCode == html.KeyCode.SINGLE_QUOTE || keyCode == html.KeyCode.OPEN_SQUARE_BRACKET || keyCode == html.KeyCode.BACKSLASH || keyCode == html.KeyCode.CLOSE_SQUARE_BRACKET;
+    return keyCode == html$.KeyCode.SPACE || keyCode == html$.KeyCode.QUESTION_MARK || keyCode == html$.KeyCode.NUM_PLUS || keyCode == html$.KeyCode.NUM_MINUS || keyCode == html$.KeyCode.NUM_PERIOD || keyCode == html$.KeyCode.NUM_DIVISION || keyCode == html$.KeyCode.SEMICOLON || keyCode == html$.KeyCode.FF_SEMICOLON || keyCode == html$.KeyCode.DASH || keyCode == html$.KeyCode.EQUALS || keyCode == html$.KeyCode.FF_EQUALS || keyCode == html$.KeyCode.COMMA || keyCode == html$.KeyCode.PERIOD || keyCode == html$.KeyCode.SLASH || keyCode == html$.KeyCode.APOSTROPHE || keyCode == html$.KeyCode.SINGLE_QUOTE || keyCode == html$.KeyCode.OPEN_SQUARE_BRACKET || keyCode == html$.KeyCode.BACKSLASH || keyCode == html$.KeyCode.CLOSE_SQUARE_BRACKET;
   }
   static _convertKeyCodeToKeyName(keyCode) {
     switch (keyCode) {
-      case html.KeyCode.ALT:
+      case html$.KeyCode.ALT:
       {
-        return html._KeyName.ALT;
+        return html$._KeyName.ALT;
       }
-      case html.KeyCode.BACKSPACE:
+      case html$.KeyCode.BACKSPACE:
       {
-        return html._KeyName.BACKSPACE;
+        return html$._KeyName.BACKSPACE;
       }
-      case html.KeyCode.CAPS_LOCK:
+      case html$.KeyCode.CAPS_LOCK:
       {
-        return html._KeyName.CAPS_LOCK;
+        return html$._KeyName.CAPS_LOCK;
       }
-      case html.KeyCode.CTRL:
+      case html$.KeyCode.CTRL:
       {
-        return html._KeyName.CONTROL;
+        return html$._KeyName.CONTROL;
       }
-      case html.KeyCode.DELETE:
+      case html$.KeyCode.DELETE:
       {
-        return html._KeyName.DEL;
+        return html$._KeyName.DEL;
       }
-      case html.KeyCode.DOWN:
+      case html$.KeyCode.DOWN:
       {
-        return html._KeyName.DOWN;
+        return html$._KeyName.DOWN;
       }
-      case html.KeyCode.END:
+      case html$.KeyCode.END:
       {
-        return html._KeyName.END;
+        return html$._KeyName.END;
       }
-      case html.KeyCode.ENTER:
+      case html$.KeyCode.ENTER:
       {
-        return html._KeyName.ENTER;
+        return html$._KeyName.ENTER;
       }
-      case html.KeyCode.ESC:
+      case html$.KeyCode.ESC:
       {
-        return html._KeyName.ESC;
+        return html$._KeyName.ESC;
       }
-      case html.KeyCode.F1:
+      case html$.KeyCode.F1:
       {
-        return html._KeyName.F1;
+        return html$._KeyName.F1;
       }
-      case html.KeyCode.F2:
+      case html$.KeyCode.F2:
       {
-        return html._KeyName.F2;
+        return html$._KeyName.F2;
       }
-      case html.KeyCode.F3:
+      case html$.KeyCode.F3:
       {
-        return html._KeyName.F3;
+        return html$._KeyName.F3;
       }
-      case html.KeyCode.F4:
+      case html$.KeyCode.F4:
       {
-        return html._KeyName.F4;
+        return html$._KeyName.F4;
       }
-      case html.KeyCode.F5:
+      case html$.KeyCode.F5:
       {
-        return html._KeyName.F5;
+        return html$._KeyName.F5;
       }
-      case html.KeyCode.F6:
+      case html$.KeyCode.F6:
       {
-        return html._KeyName.F6;
+        return html$._KeyName.F6;
       }
-      case html.KeyCode.F7:
+      case html$.KeyCode.F7:
       {
-        return html._KeyName.F7;
+        return html$._KeyName.F7;
       }
-      case html.KeyCode.F8:
+      case html$.KeyCode.F8:
       {
-        return html._KeyName.F8;
+        return html$._KeyName.F8;
       }
-      case html.KeyCode.F9:
+      case html$.KeyCode.F9:
       {
-        return html._KeyName.F9;
+        return html$._KeyName.F9;
       }
-      case html.KeyCode.F10:
+      case html$.KeyCode.F10:
       {
-        return html._KeyName.F10;
+        return html$._KeyName.F10;
       }
-      case html.KeyCode.F11:
+      case html$.KeyCode.F11:
       {
-        return html._KeyName.F11;
+        return html$._KeyName.F11;
       }
-      case html.KeyCode.F12:
+      case html$.KeyCode.F12:
       {
-        return html._KeyName.F12;
+        return html$._KeyName.F12;
       }
-      case html.KeyCode.HOME:
+      case html$.KeyCode.HOME:
       {
-        return html._KeyName.HOME;
+        return html$._KeyName.HOME;
       }
-      case html.KeyCode.INSERT:
+      case html$.KeyCode.INSERT:
       {
-        return html._KeyName.INSERT;
+        return html$._KeyName.INSERT;
       }
-      case html.KeyCode.LEFT:
+      case html$.KeyCode.LEFT:
       {
-        return html._KeyName.LEFT;
+        return html$._KeyName.LEFT;
       }
-      case html.KeyCode.META:
+      case html$.KeyCode.META:
       {
-        return html._KeyName.META;
+        return html$._KeyName.META;
       }
-      case html.KeyCode.NUMLOCK:
+      case html$.KeyCode.NUMLOCK:
       {
-        return html._KeyName.NUM_LOCK;
+        return html$._KeyName.NUM_LOCK;
       }
-      case html.KeyCode.PAGE_DOWN:
+      case html$.KeyCode.PAGE_DOWN:
       {
-        return html._KeyName.PAGE_DOWN;
+        return html$._KeyName.PAGE_DOWN;
       }
-      case html.KeyCode.PAGE_UP:
+      case html$.KeyCode.PAGE_UP:
       {
-        return html._KeyName.PAGE_UP;
+        return html$._KeyName.PAGE_UP;
       }
-      case html.KeyCode.PAUSE:
+      case html$.KeyCode.PAUSE:
       {
-        return html._KeyName.PAUSE;
+        return html$._KeyName.PAUSE;
       }
-      case html.KeyCode.PRINT_SCREEN:
+      case html$.KeyCode.PRINT_SCREEN:
       {
-        return html._KeyName.PRINT_SCREEN;
+        return html$._KeyName.PRINT_SCREEN;
       }
-      case html.KeyCode.RIGHT:
+      case html$.KeyCode.RIGHT:
       {
-        return html._KeyName.RIGHT;
+        return html$._KeyName.RIGHT;
       }
-      case html.KeyCode.SCROLL_LOCK:
+      case html$.KeyCode.SCROLL_LOCK:
       {
-        return html._KeyName.SCROLL;
+        return html$._KeyName.SCROLL;
       }
-      case html.KeyCode.SHIFT:
+      case html$.KeyCode.SHIFT:
       {
-        return html._KeyName.SHIFT;
+        return html$._KeyName.SHIFT;
       }
-      case html.KeyCode.SPACE:
+      case html$.KeyCode.SPACE:
       {
-        return html._KeyName.SPACEBAR;
+        return html$._KeyName.SPACEBAR;
       }
-      case html.KeyCode.TAB:
+      case html$.KeyCode.TAB:
       {
-        return html._KeyName.TAB;
+        return html$._KeyName.TAB;
       }
-      case html.KeyCode.UP:
+      case html$.KeyCode.UP:
       {
-        return html._KeyName.UP;
+        return html$._KeyName.UP;
       }
-      case html.KeyCode.WIN_IME:
-      case html.KeyCode.WIN_KEY:
-      case html.KeyCode.WIN_KEY_LEFT:
-      case html.KeyCode.WIN_KEY_RIGHT:
+      case html$.KeyCode.WIN_IME:
+      case html$.KeyCode.WIN_KEY:
+      case html$.KeyCode.WIN_KEY_LEFT:
+      case html$.KeyCode.WIN_KEY_RIGHT:
       {
-        return html._KeyName.WIN;
+        return html$._KeyName.WIN;
       }
       default:
       {
-        return html._KeyName.UNIDENTIFIED;
+        return html$._KeyName.UNIDENTIFIED;
       }
     }
-    return html._KeyName.UNIDENTIFIED;
+    return html$._KeyName.UNIDENTIFIED;
   }
 };
-dart.setSignature(html.KeyCode, {
+dart.setSignature(html$.KeyCode, {
   sfields: () => ({
     WIN_KEY_FF_LINUX: core.int,
     MAC_ENTER: core.int,
@@ -97242,132 +97245,132 @@
   }),
   names: ['isCharacterKey', '_convertKeyCodeToKeyName']
 });
-html.KeyCode.WIN_KEY_FF_LINUX = 0;
-html.KeyCode.MAC_ENTER = 3;
-html.KeyCode.BACKSPACE = 8;
-html.KeyCode.TAB = 9;
-html.KeyCode.NUM_CENTER = 12;
-html.KeyCode.ENTER = 13;
-html.KeyCode.SHIFT = 16;
-html.KeyCode.CTRL = 17;
-html.KeyCode.ALT = 18;
-html.KeyCode.PAUSE = 19;
-html.KeyCode.CAPS_LOCK = 20;
-html.KeyCode.ESC = 27;
-html.KeyCode.SPACE = 32;
-html.KeyCode.PAGE_UP = 33;
-html.KeyCode.PAGE_DOWN = 34;
-html.KeyCode.END = 35;
-html.KeyCode.HOME = 36;
-html.KeyCode.LEFT = 37;
-html.KeyCode.UP = 38;
-html.KeyCode.RIGHT = 39;
-html.KeyCode.DOWN = 40;
-html.KeyCode.NUM_NORTH_EAST = 33;
-html.KeyCode.NUM_SOUTH_EAST = 34;
-html.KeyCode.NUM_SOUTH_WEST = 35;
-html.KeyCode.NUM_NORTH_WEST = 36;
-html.KeyCode.NUM_WEST = 37;
-html.KeyCode.NUM_NORTH = 38;
-html.KeyCode.NUM_EAST = 39;
-html.KeyCode.NUM_SOUTH = 40;
-html.KeyCode.PRINT_SCREEN = 44;
-html.KeyCode.INSERT = 45;
-html.KeyCode.NUM_INSERT = 45;
-html.KeyCode.DELETE = 46;
-html.KeyCode.NUM_DELETE = 46;
-html.KeyCode.ZERO = 48;
-html.KeyCode.ONE = 49;
-html.KeyCode.TWO = 50;
-html.KeyCode.THREE = 51;
-html.KeyCode.FOUR = 52;
-html.KeyCode.FIVE = 53;
-html.KeyCode.SIX = 54;
-html.KeyCode.SEVEN = 55;
-html.KeyCode.EIGHT = 56;
-html.KeyCode.NINE = 57;
-html.KeyCode.FF_SEMICOLON = 59;
-html.KeyCode.FF_EQUALS = 61;
-html.KeyCode.QUESTION_MARK = 63;
-html.KeyCode.A = 65;
-html.KeyCode.B = 66;
-html.KeyCode.C = 67;
-html.KeyCode.D = 68;
-html.KeyCode.E = 69;
-html.KeyCode.F = 70;
-html.KeyCode.G = 71;
-html.KeyCode.H = 72;
-html.KeyCode.I = 73;
-html.KeyCode.J = 74;
-html.KeyCode.K = 75;
-html.KeyCode.L = 76;
-html.KeyCode.M = 77;
-html.KeyCode.N = 78;
-html.KeyCode.O = 79;
-html.KeyCode.P = 80;
-html.KeyCode.Q = 81;
-html.KeyCode.R = 82;
-html.KeyCode.S = 83;
-html.KeyCode.T = 84;
-html.KeyCode.U = 85;
-html.KeyCode.V = 86;
-html.KeyCode.W = 87;
-html.KeyCode.X = 88;
-html.KeyCode.Y = 89;
-html.KeyCode.Z = 90;
-html.KeyCode.META = 91;
-html.KeyCode.WIN_KEY_LEFT = 91;
-html.KeyCode.WIN_KEY_RIGHT = 92;
-html.KeyCode.CONTEXT_MENU = 93;
-html.KeyCode.NUM_ZERO = 96;
-html.KeyCode.NUM_ONE = 97;
-html.KeyCode.NUM_TWO = 98;
-html.KeyCode.NUM_THREE = 99;
-html.KeyCode.NUM_FOUR = 100;
-html.KeyCode.NUM_FIVE = 101;
-html.KeyCode.NUM_SIX = 102;
-html.KeyCode.NUM_SEVEN = 103;
-html.KeyCode.NUM_EIGHT = 104;
-html.KeyCode.NUM_NINE = 105;
-html.KeyCode.NUM_MULTIPLY = 106;
-html.KeyCode.NUM_PLUS = 107;
-html.KeyCode.NUM_MINUS = 109;
-html.KeyCode.NUM_PERIOD = 110;
-html.KeyCode.NUM_DIVISION = 111;
-html.KeyCode.F1 = 112;
-html.KeyCode.F2 = 113;
-html.KeyCode.F3 = 114;
-html.KeyCode.F4 = 115;
-html.KeyCode.F5 = 116;
-html.KeyCode.F6 = 117;
-html.KeyCode.F7 = 118;
-html.KeyCode.F8 = 119;
-html.KeyCode.F9 = 120;
-html.KeyCode.F10 = 121;
-html.KeyCode.F11 = 122;
-html.KeyCode.F12 = 123;
-html.KeyCode.NUMLOCK = 144;
-html.KeyCode.SCROLL_LOCK = 145;
-html.KeyCode.FIRST_MEDIA_KEY = 166;
-html.KeyCode.LAST_MEDIA_KEY = 183;
-html.KeyCode.SEMICOLON = 186;
-html.KeyCode.DASH = 189;
-html.KeyCode.EQUALS = 187;
-html.KeyCode.COMMA = 188;
-html.KeyCode.PERIOD = 190;
-html.KeyCode.SLASH = 191;
-html.KeyCode.APOSTROPHE = 192;
-html.KeyCode.TILDE = 192;
-html.KeyCode.SINGLE_QUOTE = 222;
-html.KeyCode.OPEN_SQUARE_BRACKET = 219;
-html.KeyCode.BACKSLASH = 220;
-html.KeyCode.CLOSE_SQUARE_BRACKET = 221;
-html.KeyCode.WIN_KEY = 224;
-html.KeyCode.MAC_FF_META = 224;
-html.KeyCode.WIN_IME = 229;
-html.KeyCode.UNKNOWN = -1;
-html.KeyLocation = class KeyLocation extends core.Object {};
-dart.setSignature(html.KeyLocation, {
+html$.KeyCode.WIN_KEY_FF_LINUX = 0;
+html$.KeyCode.MAC_ENTER = 3;
+html$.KeyCode.BACKSPACE = 8;
+html$.KeyCode.TAB = 9;
+html$.KeyCode.NUM_CENTER = 12;
+html$.KeyCode.ENTER = 13;
+html$.KeyCode.SHIFT = 16;
+html$.KeyCode.CTRL = 17;
+html$.KeyCode.ALT = 18;
+html$.KeyCode.PAUSE = 19;
+html$.KeyCode.CAPS_LOCK = 20;
+html$.KeyCode.ESC = 27;
+html$.KeyCode.SPACE = 32;
+html$.KeyCode.PAGE_UP = 33;
+html$.KeyCode.PAGE_DOWN = 34;
+html$.KeyCode.END = 35;
+html$.KeyCode.HOME = 36;
+html$.KeyCode.LEFT = 37;
+html$.KeyCode.UP = 38;
+html$.KeyCode.RIGHT = 39;
+html$.KeyCode.DOWN = 40;
+html$.KeyCode.NUM_NORTH_EAST = 33;
+html$.KeyCode.NUM_SOUTH_EAST = 34;
+html$.KeyCode.NUM_SOUTH_WEST = 35;
+html$.KeyCode.NUM_NORTH_WEST = 36;
+html$.KeyCode.NUM_WEST = 37;
+html$.KeyCode.NUM_NORTH = 38;
+html$.KeyCode.NUM_EAST = 39;
+html$.KeyCode.NUM_SOUTH = 40;
+html$.KeyCode.PRINT_SCREEN = 44;
+html$.KeyCode.INSERT = 45;
+html$.KeyCode.NUM_INSERT = 45;
+html$.KeyCode.DELETE = 46;
+html$.KeyCode.NUM_DELETE = 46;
+html$.KeyCode.ZERO = 48;
+html$.KeyCode.ONE = 49;
+html$.KeyCode.TWO = 50;
+html$.KeyCode.THREE = 51;
+html$.KeyCode.FOUR = 52;
+html$.KeyCode.FIVE = 53;
+html$.KeyCode.SIX = 54;
+html$.KeyCode.SEVEN = 55;
+html$.KeyCode.EIGHT = 56;
+html$.KeyCode.NINE = 57;
+html$.KeyCode.FF_SEMICOLON = 59;
+html$.KeyCode.FF_EQUALS = 61;
+html$.KeyCode.QUESTION_MARK = 63;
+html$.KeyCode.A = 65;
+html$.KeyCode.B = 66;
+html$.KeyCode.C = 67;
+html$.KeyCode.D = 68;
+html$.KeyCode.E = 69;
+html$.KeyCode.F = 70;
+html$.KeyCode.G = 71;
+html$.KeyCode.H = 72;
+html$.KeyCode.I = 73;
+html$.KeyCode.J = 74;
+html$.KeyCode.K = 75;
+html$.KeyCode.L = 76;
+html$.KeyCode.M = 77;
+html$.KeyCode.N = 78;
+html$.KeyCode.O = 79;
+html$.KeyCode.P = 80;
+html$.KeyCode.Q = 81;
+html$.KeyCode.R = 82;
+html$.KeyCode.S = 83;
+html$.KeyCode.T = 84;
+html$.KeyCode.U = 85;
+html$.KeyCode.V = 86;
+html$.KeyCode.W = 87;
+html$.KeyCode.X = 88;
+html$.KeyCode.Y = 89;
+html$.KeyCode.Z = 90;
+html$.KeyCode.META = 91;
+html$.KeyCode.WIN_KEY_LEFT = 91;
+html$.KeyCode.WIN_KEY_RIGHT = 92;
+html$.KeyCode.CONTEXT_MENU = 93;
+html$.KeyCode.NUM_ZERO = 96;
+html$.KeyCode.NUM_ONE = 97;
+html$.KeyCode.NUM_TWO = 98;
+html$.KeyCode.NUM_THREE = 99;
+html$.KeyCode.NUM_FOUR = 100;
+html$.KeyCode.NUM_FIVE = 101;
+html$.KeyCode.NUM_SIX = 102;
+html$.KeyCode.NUM_SEVEN = 103;
+html$.KeyCode.NUM_EIGHT = 104;
+html$.KeyCode.NUM_NINE = 105;
+html$.KeyCode.NUM_MULTIPLY = 106;
+html$.KeyCode.NUM_PLUS = 107;
+html$.KeyCode.NUM_MINUS = 109;
+html$.KeyCode.NUM_PERIOD = 110;
+html$.KeyCode.NUM_DIVISION = 111;
+html$.KeyCode.F1 = 112;
+html$.KeyCode.F2 = 113;
+html$.KeyCode.F3 = 114;
+html$.KeyCode.F4 = 115;
+html$.KeyCode.F5 = 116;
+html$.KeyCode.F6 = 117;
+html$.KeyCode.F7 = 118;
+html$.KeyCode.F8 = 119;
+html$.KeyCode.F9 = 120;
+html$.KeyCode.F10 = 121;
+html$.KeyCode.F11 = 122;
+html$.KeyCode.F12 = 123;
+html$.KeyCode.NUMLOCK = 144;
+html$.KeyCode.SCROLL_LOCK = 145;
+html$.KeyCode.FIRST_MEDIA_KEY = 166;
+html$.KeyCode.LAST_MEDIA_KEY = 183;
+html$.KeyCode.SEMICOLON = 186;
+html$.KeyCode.DASH = 189;
+html$.KeyCode.EQUALS = 187;
+html$.KeyCode.COMMA = 188;
+html$.KeyCode.PERIOD = 190;
+html$.KeyCode.SLASH = 191;
+html$.KeyCode.APOSTROPHE = 192;
+html$.KeyCode.TILDE = 192;
+html$.KeyCode.SINGLE_QUOTE = 222;
+html$.KeyCode.OPEN_SQUARE_BRACKET = 219;
+html$.KeyCode.BACKSLASH = 220;
+html$.KeyCode.CLOSE_SQUARE_BRACKET = 221;
+html$.KeyCode.WIN_KEY = 224;
+html$.KeyCode.MAC_FF_META = 224;
+html$.KeyCode.WIN_IME = 229;
+html$.KeyCode.UNKNOWN = -1;
+html$.KeyLocation = class KeyLocation extends core.Object {};
+dart.setSignature(html$.KeyLocation, {
   sfields: () => ({
     STANDARD: core.int,
     LEFT: core.int,
@@ -97377,14 +97380,14 @@
     JOYSTICK: core.int
   })
 });
-html.KeyLocation.STANDARD = 0;
-html.KeyLocation.LEFT = 1;
-html.KeyLocation.RIGHT = 2;
-html.KeyLocation.NUMPAD = 3;
-html.KeyLocation.MOBILE = 4;
-html.KeyLocation.JOYSTICK = 5;
-html._KeyName = class _KeyName extends core.Object {};
-dart.setSignature(html._KeyName, {
+html$.KeyLocation.STANDARD = 0;
+html$.KeyLocation.LEFT = 1;
+html$.KeyLocation.RIGHT = 2;
+html$.KeyLocation.NUMPAD = 3;
+html$.KeyLocation.MOBILE = 4;
+html$.KeyLocation.JOYSTICK = 5;
+html$._KeyName = class _KeyName extends core.Object {};
+dart.setSignature(html$._KeyName, {
   sfields: () => ({
     ACCEPT: core.String,
     ADD: core.String,
@@ -97537,309 +97540,309 @@
     UNIDENTIFIED: core.String
   })
 });
-html._KeyName.ACCEPT = "Accept";
-html._KeyName.ADD = "Add";
-html._KeyName.AGAIN = "Again";
-html._KeyName.ALL_CANDIDATES = "AllCandidates";
-html._KeyName.ALPHANUMERIC = "Alphanumeric";
-html._KeyName.ALT = "Alt";
-html._KeyName.ALT_GRAPH = "AltGraph";
-html._KeyName.APPS = "Apps";
-html._KeyName.ATTN = "Attn";
-html._KeyName.BROWSER_BACK = "BrowserBack";
-html._KeyName.BROWSER_FAVORTIES = "BrowserFavorites";
-html._KeyName.BROWSER_FORWARD = "BrowserForward";
-html._KeyName.BROWSER_NAME = "BrowserHome";
-html._KeyName.BROWSER_REFRESH = "BrowserRefresh";
-html._KeyName.BROWSER_SEARCH = "BrowserSearch";
-html._KeyName.BROWSER_STOP = "BrowserStop";
-html._KeyName.CAMERA = "Camera";
-html._KeyName.CAPS_LOCK = "CapsLock";
-html._KeyName.CLEAR = "Clear";
-html._KeyName.CODE_INPUT = "CodeInput";
-html._KeyName.COMPOSE = "Compose";
-html._KeyName.CONTROL = "Control";
-html._KeyName.CRSEL = "Crsel";
-html._KeyName.CONVERT = "Convert";
-html._KeyName.COPY = "Copy";
-html._KeyName.CUT = "Cut";
-html._KeyName.DECIMAL = "Decimal";
-html._KeyName.DIVIDE = "Divide";
-html._KeyName.DOWN = "Down";
-html._KeyName.DOWN_LEFT = "DownLeft";
-html._KeyName.DOWN_RIGHT = "DownRight";
-html._KeyName.EJECT = "Eject";
-html._KeyName.END = "End";
-html._KeyName.ENTER = "Enter";
-html._KeyName.ERASE_EOF = "EraseEof";
-html._KeyName.EXECUTE = "Execute";
-html._KeyName.EXSEL = "Exsel";
-html._KeyName.FN = "Fn";
-html._KeyName.F1 = "F1";
-html._KeyName.F2 = "F2";
-html._KeyName.F3 = "F3";
-html._KeyName.F4 = "F4";
-html._KeyName.F5 = "F5";
-html._KeyName.F6 = "F6";
-html._KeyName.F7 = "F7";
-html._KeyName.F8 = "F8";
-html._KeyName.F9 = "F9";
-html._KeyName.F10 = "F10";
-html._KeyName.F11 = "F11";
-html._KeyName.F12 = "F12";
-html._KeyName.F13 = "F13";
-html._KeyName.F14 = "F14";
-html._KeyName.F15 = "F15";
-html._KeyName.F16 = "F16";
-html._KeyName.F17 = "F17";
-html._KeyName.F18 = "F18";
-html._KeyName.F19 = "F19";
-html._KeyName.F20 = "F20";
-html._KeyName.F21 = "F21";
-html._KeyName.F22 = "F22";
-html._KeyName.F23 = "F23";
-html._KeyName.F24 = "F24";
-html._KeyName.FINAL_MODE = "FinalMode";
-html._KeyName.FIND = "Find";
-html._KeyName.FULL_WIDTH = "FullWidth";
-html._KeyName.HALF_WIDTH = "HalfWidth";
-html._KeyName.HANGUL_MODE = "HangulMode";
-html._KeyName.HANJA_MODE = "HanjaMode";
-html._KeyName.HELP = "Help";
-html._KeyName.HIRAGANA = "Hiragana";
-html._KeyName.HOME = "Home";
-html._KeyName.INSERT = "Insert";
-html._KeyName.JAPANESE_HIRAGANA = "JapaneseHiragana";
-html._KeyName.JAPANESE_KATAKANA = "JapaneseKatakana";
-html._KeyName.JAPANESE_ROMAJI = "JapaneseRomaji";
-html._KeyName.JUNJA_MODE = "JunjaMode";
-html._KeyName.KANA_MODE = "KanaMode";
-html._KeyName.KANJI_MODE = "KanjiMode";
-html._KeyName.KATAKANA = "Katakana";
-html._KeyName.LAUNCH_APPLICATION_1 = "LaunchApplication1";
-html._KeyName.LAUNCH_APPLICATION_2 = "LaunchApplication2";
-html._KeyName.LAUNCH_MAIL = "LaunchMail";
-html._KeyName.LEFT = "Left";
-html._KeyName.MENU = "Menu";
-html._KeyName.META = "Meta";
-html._KeyName.MEDIA_NEXT_TRACK = "MediaNextTrack";
-html._KeyName.MEDIA_PAUSE_PLAY = "MediaPlayPause";
-html._KeyName.MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
-html._KeyName.MEDIA_STOP = "MediaStop";
-html._KeyName.MODE_CHANGE = "ModeChange";
-html._KeyName.NEXT_CANDIDATE = "NextCandidate";
-html._KeyName.NON_CONVERT = "Nonconvert";
-html._KeyName.NUM_LOCK = "NumLock";
-html._KeyName.PAGE_DOWN = "PageDown";
-html._KeyName.PAGE_UP = "PageUp";
-html._KeyName.PASTE = "Paste";
-html._KeyName.PAUSE = "Pause";
-html._KeyName.PLAY = "Play";
-html._KeyName.POWER = "Power";
-html._KeyName.PREVIOUS_CANDIDATE = "PreviousCandidate";
-html._KeyName.PRINT_SCREEN = "PrintScreen";
-html._KeyName.PROCESS = "Process";
-html._KeyName.PROPS = "Props";
-html._KeyName.RIGHT = "Right";
-html._KeyName.ROMAN_CHARACTERS = "RomanCharacters";
-html._KeyName.SCROLL = "Scroll";
-html._KeyName.SELECT = "Select";
-html._KeyName.SELECT_MEDIA = "SelectMedia";
-html._KeyName.SEPARATOR = "Separator";
-html._KeyName.SHIFT = "Shift";
-html._KeyName.SOFT_1 = "Soft1";
-html._KeyName.SOFT_2 = "Soft2";
-html._KeyName.SOFT_3 = "Soft3";
-html._KeyName.SOFT_4 = "Soft4";
-html._KeyName.STOP = "Stop";
-html._KeyName.SUBTRACT = "Subtract";
-html._KeyName.SYMBOL_LOCK = "SymbolLock";
-html._KeyName.UP = "Up";
-html._KeyName.UP_LEFT = "UpLeft";
-html._KeyName.UP_RIGHT = "UpRight";
-html._KeyName.UNDO = "Undo";
-html._KeyName.VOLUME_DOWN = "VolumeDown";
-html._KeyName.VOLUMN_MUTE = "VolumeMute";
-html._KeyName.VOLUMN_UP = "VolumeUp";
-html._KeyName.WIN = "Win";
-html._KeyName.ZOOM = "Zoom";
-html._KeyName.BACKSPACE = "Backspace";
-html._KeyName.TAB = "Tab";
-html._KeyName.CANCEL = "Cancel";
-html._KeyName.ESC = "Esc";
-html._KeyName.SPACEBAR = "Spacebar";
-html._KeyName.DEL = "Del";
-html._KeyName.DEAD_GRAVE = "DeadGrave";
-html._KeyName.DEAD_EACUTE = "DeadEacute";
-html._KeyName.DEAD_CIRCUMFLEX = "DeadCircumflex";
-html._KeyName.DEAD_TILDE = "DeadTilde";
-html._KeyName.DEAD_MACRON = "DeadMacron";
-html._KeyName.DEAD_BREVE = "DeadBreve";
-html._KeyName.DEAD_ABOVE_DOT = "DeadAboveDot";
-html._KeyName.DEAD_UMLAUT = "DeadUmlaut";
-html._KeyName.DEAD_ABOVE_RING = "DeadAboveRing";
-html._KeyName.DEAD_DOUBLEACUTE = "DeadDoubleacute";
-html._KeyName.DEAD_CARON = "DeadCaron";
-html._KeyName.DEAD_CEDILLA = "DeadCedilla";
-html._KeyName.DEAD_OGONEK = "DeadOgonek";
-html._KeyName.DEAD_IOTA = "DeadIota";
-html._KeyName.DEAD_VOICED_SOUND = "DeadVoicedSound";
-html._KeyName.DEC_SEMIVOICED_SOUND = "DeadSemivoicedSound";
-html._KeyName.UNIDENTIFIED = "Unidentified";
-const _stream = Symbol('_stream');
+html$._KeyName.ACCEPT = "Accept";
+html$._KeyName.ADD = "Add";
+html$._KeyName.AGAIN = "Again";
+html$._KeyName.ALL_CANDIDATES = "AllCandidates";
+html$._KeyName.ALPHANUMERIC = "Alphanumeric";
+html$._KeyName.ALT = "Alt";
+html$._KeyName.ALT_GRAPH = "AltGraph";
+html$._KeyName.APPS = "Apps";
+html$._KeyName.ATTN = "Attn";
+html$._KeyName.BROWSER_BACK = "BrowserBack";
+html$._KeyName.BROWSER_FAVORTIES = "BrowserFavorites";
+html$._KeyName.BROWSER_FORWARD = "BrowserForward";
+html$._KeyName.BROWSER_NAME = "BrowserHome";
+html$._KeyName.BROWSER_REFRESH = "BrowserRefresh";
+html$._KeyName.BROWSER_SEARCH = "BrowserSearch";
+html$._KeyName.BROWSER_STOP = "BrowserStop";
+html$._KeyName.CAMERA = "Camera";
+html$._KeyName.CAPS_LOCK = "CapsLock";
+html$._KeyName.CLEAR = "Clear";
+html$._KeyName.CODE_INPUT = "CodeInput";
+html$._KeyName.COMPOSE = "Compose";
+html$._KeyName.CONTROL = "Control";
+html$._KeyName.CRSEL = "Crsel";
+html$._KeyName.CONVERT = "Convert";
+html$._KeyName.COPY = "Copy";
+html$._KeyName.CUT = "Cut";
+html$._KeyName.DECIMAL = "Decimal";
+html$._KeyName.DIVIDE = "Divide";
+html$._KeyName.DOWN = "Down";
+html$._KeyName.DOWN_LEFT = "DownLeft";
+html$._KeyName.DOWN_RIGHT = "DownRight";
+html$._KeyName.EJECT = "Eject";
+html$._KeyName.END = "End";
+html$._KeyName.ENTER = "Enter";
+html$._KeyName.ERASE_EOF = "EraseEof";
+html$._KeyName.EXECUTE = "Execute";
+html$._KeyName.EXSEL = "Exsel";
+html$._KeyName.FN = "Fn";
+html$._KeyName.F1 = "F1";
+html$._KeyName.F2 = "F2";
+html$._KeyName.F3 = "F3";
+html$._KeyName.F4 = "F4";
+html$._KeyName.F5 = "F5";
+html$._KeyName.F6 = "F6";
+html$._KeyName.F7 = "F7";
+html$._KeyName.F8 = "F8";
+html$._KeyName.F9 = "F9";
+html$._KeyName.F10 = "F10";
+html$._KeyName.F11 = "F11";
+html$._KeyName.F12 = "F12";
+html$._KeyName.F13 = "F13";
+html$._KeyName.F14 = "F14";
+html$._KeyName.F15 = "F15";
+html$._KeyName.F16 = "F16";
+html$._KeyName.F17 = "F17";
+html$._KeyName.F18 = "F18";
+html$._KeyName.F19 = "F19";
+html$._KeyName.F20 = "F20";
+html$._KeyName.F21 = "F21";
+html$._KeyName.F22 = "F22";
+html$._KeyName.F23 = "F23";
+html$._KeyName.F24 = "F24";
+html$._KeyName.FINAL_MODE = "FinalMode";
+html$._KeyName.FIND = "Find";
+html$._KeyName.FULL_WIDTH = "FullWidth";
+html$._KeyName.HALF_WIDTH = "HalfWidth";
+html$._KeyName.HANGUL_MODE = "HangulMode";
+html$._KeyName.HANJA_MODE = "HanjaMode";
+html$._KeyName.HELP = "Help";
+html$._KeyName.HIRAGANA = "Hiragana";
+html$._KeyName.HOME = "Home";
+html$._KeyName.INSERT = "Insert";
+html$._KeyName.JAPANESE_HIRAGANA = "JapaneseHiragana";
+html$._KeyName.JAPANESE_KATAKANA = "JapaneseKatakana";
+html$._KeyName.JAPANESE_ROMAJI = "JapaneseRomaji";
+html$._KeyName.JUNJA_MODE = "JunjaMode";
+html$._KeyName.KANA_MODE = "KanaMode";
+html$._KeyName.KANJI_MODE = "KanjiMode";
+html$._KeyName.KATAKANA = "Katakana";
+html$._KeyName.LAUNCH_APPLICATION_1 = "LaunchApplication1";
+html$._KeyName.LAUNCH_APPLICATION_2 = "LaunchApplication2";
+html$._KeyName.LAUNCH_MAIL = "LaunchMail";
+html$._KeyName.LEFT = "Left";
+html$._KeyName.MENU = "Menu";
+html$._KeyName.META = "Meta";
+html$._KeyName.MEDIA_NEXT_TRACK = "MediaNextTrack";
+html$._KeyName.MEDIA_PAUSE_PLAY = "MediaPlayPause";
+html$._KeyName.MEDIA_PREVIOUS_TRACK = "MediaPreviousTrack";
+html$._KeyName.MEDIA_STOP = "MediaStop";
+html$._KeyName.MODE_CHANGE = "ModeChange";
+html$._KeyName.NEXT_CANDIDATE = "NextCandidate";
+html$._KeyName.NON_CONVERT = "Nonconvert";
+html$._KeyName.NUM_LOCK = "NumLock";
+html$._KeyName.PAGE_DOWN = "PageDown";
+html$._KeyName.PAGE_UP = "PageUp";
+html$._KeyName.PASTE = "Paste";
+html$._KeyName.PAUSE = "Pause";
+html$._KeyName.PLAY = "Play";
+html$._KeyName.POWER = "Power";
+html$._KeyName.PREVIOUS_CANDIDATE = "PreviousCandidate";
+html$._KeyName.PRINT_SCREEN = "PrintScreen";
+html$._KeyName.PROCESS = "Process";
+html$._KeyName.PROPS = "Props";
+html$._KeyName.RIGHT = "Right";
+html$._KeyName.ROMAN_CHARACTERS = "RomanCharacters";
+html$._KeyName.SCROLL = "Scroll";
+html$._KeyName.SELECT = "Select";
+html$._KeyName.SELECT_MEDIA = "SelectMedia";
+html$._KeyName.SEPARATOR = "Separator";
+html$._KeyName.SHIFT = "Shift";
+html$._KeyName.SOFT_1 = "Soft1";
+html$._KeyName.SOFT_2 = "Soft2";
+html$._KeyName.SOFT_3 = "Soft3";
+html$._KeyName.SOFT_4 = "Soft4";
+html$._KeyName.STOP = "Stop";
+html$._KeyName.SUBTRACT = "Subtract";
+html$._KeyName.SYMBOL_LOCK = "SymbolLock";
+html$._KeyName.UP = "Up";
+html$._KeyName.UP_LEFT = "UpLeft";
+html$._KeyName.UP_RIGHT = "UpRight";
+html$._KeyName.UNDO = "Undo";
+html$._KeyName.VOLUME_DOWN = "VolumeDown";
+html$._KeyName.VOLUMN_MUTE = "VolumeMute";
+html$._KeyName.VOLUMN_UP = "VolumeUp";
+html$._KeyName.WIN = "Win";
+html$._KeyName.ZOOM = "Zoom";
+html$._KeyName.BACKSPACE = "Backspace";
+html$._KeyName.TAB = "Tab";
+html$._KeyName.CANCEL = "Cancel";
+html$._KeyName.ESC = "Esc";
+html$._KeyName.SPACEBAR = "Spacebar";
+html$._KeyName.DEL = "Del";
+html$._KeyName.DEAD_GRAVE = "DeadGrave";
+html$._KeyName.DEAD_EACUTE = "DeadEacute";
+html$._KeyName.DEAD_CIRCUMFLEX = "DeadCircumflex";
+html$._KeyName.DEAD_TILDE = "DeadTilde";
+html$._KeyName.DEAD_MACRON = "DeadMacron";
+html$._KeyName.DEAD_BREVE = "DeadBreve";
+html$._KeyName.DEAD_ABOVE_DOT = "DeadAboveDot";
+html$._KeyName.DEAD_UMLAUT = "DeadUmlaut";
+html$._KeyName.DEAD_ABOVE_RING = "DeadAboveRing";
+html$._KeyName.DEAD_DOUBLEACUTE = "DeadDoubleacute";
+html$._KeyName.DEAD_CARON = "DeadCaron";
+html$._KeyName.DEAD_CEDILLA = "DeadCedilla";
+html$._KeyName.DEAD_OGONEK = "DeadOgonek";
+html$._KeyName.DEAD_IOTA = "DeadIota";
+html$._KeyName.DEAD_VOICED_SOUND = "DeadVoicedSound";
+html$._KeyName.DEC_SEMIVOICED_SOUND = "DeadSemivoicedSound";
+html$._KeyName.UNIDENTIFIED = "Unidentified";
+const _stream$0 = Symbol('_stream');
 const _keyDownList = Symbol('_keyDownList');
 const _capsLockOn = Symbol('_capsLockOn');
 const _determineKeyCodeForKeypress = Symbol('_determineKeyCodeForKeypress');
 const _findCharCodeKeyDown = Symbol('_findCharCodeKeyDown');
 const _firesKeyPressEvent = Symbol('_firesKeyPressEvent');
 const _normalizeKeyCodes = Symbol('_normalizeKeyCodes');
-html._KeyboardEventHandler = class _KeyboardEventHandler extends html.EventStreamProvider$(html.KeyEvent) {
+html$._KeyboardEventHandler = class _KeyboardEventHandler extends html$.EventStreamProvider$(html$.KeyEvent) {
   forTarget(e, opts) {
     let useCapture = opts && 'useCapture' in opts ? opts.useCapture : false;
-    let handler = new html._KeyboardEventHandler.initializeAllEventListeners(this[_type], e);
-    return handler[_stream];
+    let handler = new html$._KeyboardEventHandler.initializeAllEventListeners(this[_type$], e);
+    return handler[_stream$0];
   }
   new(type) {
     this[_keyDownList] = JSArrayOfKeyEvent().of([]);
-    this[_type] = type;
-    this[_stream] = new html._CustomKeyEventStreamImpl('event');
-    this[_target] = null;
-    super.new(html._KeyboardEventHandler._EVENT_TYPE);
+    this[_type$] = type;
+    this[_stream$0] = new html$._CustomKeyEventStreamImpl('event');
+    this[_target$0] = null;
+    super.new(html$._KeyboardEventHandler._EVENT_TYPE);
   }
   initializeAllEventListeners(type, target) {
     this[_keyDownList] = JSArrayOfKeyEvent().of([]);
-    this[_type] = type;
-    this[_target] = target;
-    this[_stream] = null;
-    super.new(html._KeyboardEventHandler._EVENT_TYPE);
-    html.Element.keyDownEvent.forTarget(this[_target], {useCapture: true}).listen(dart.bind(this, 'processKeyDown'));
-    html.Element.keyPressEvent.forTarget(this[_target], {useCapture: true}).listen(dart.bind(this, 'processKeyPress'));
-    html.Element.keyUpEvent.forTarget(this[_target], {useCapture: true}).listen(dart.bind(this, 'processKeyUp'));
-    this[_stream] = new html._CustomKeyEventStreamImpl(this[_type]);
+    this[_type$] = type;
+    this[_target$0] = target;
+    this[_stream$0] = null;
+    super.new(html$._KeyboardEventHandler._EVENT_TYPE);
+    html$.Element.keyDownEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyDown'));
+    html$.Element.keyPressEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyPress'));
+    html$.Element.keyUpEvent.forTarget(this[_target$0], {useCapture: true}).listen(dart.bind(this, 'processKeyUp'));
+    this[_stream$0] = new html$._CustomKeyEventStreamImpl(this[_type$]);
   }
   get [_capsLockOn]() {
-    return this[_keyDownList][dartx.any](dart.fn(element => element.keyCode == html.KeyCode.CAPS_LOCK, KeyEventTobool()));
+    return this[_keyDownList][dartx.any](dart.fn(element => element.keyCode == html$.KeyCode.CAPS_LOCK, KeyEventTobool()));
   }
   [_determineKeyCodeForKeypress](event) {
     for (let prevEvent of this[_keyDownList]) {
       if (prevEvent[_shadowCharCode] == event[dartx.charCode]) {
         return prevEvent.keyCode;
       }
-      if ((dart.test(event[dartx.shiftKey]) || dart.test(this[_capsLockOn])) && dart.notNull(event[dartx.charCode]) >= dart.notNull("A"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) <= dart.notNull("Z"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) + dart.notNull(html._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET) == prevEvent[_shadowCharCode]) {
+      if ((dart.test(event[dartx.shiftKey]) || dart.test(this[_capsLockOn])) && dart.notNull(event[dartx.charCode]) >= dart.notNull("A"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) <= dart.notNull("Z"[dartx.codeUnits][dartx._get](0)) && dart.notNull(event[dartx.charCode]) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET) == prevEvent[_shadowCharCode]) {
         return prevEvent.keyCode;
       }
     }
-    return html.KeyCode.UNKNOWN;
+    return html$.KeyCode.UNKNOWN;
   }
   [_findCharCodeKeyDown](event) {
     if (event[dartx.keyLocation] == 3) {
       switch (event[dartx.keyCode]) {
-        case html.KeyCode.NUM_ZERO:
+        case html$.KeyCode.NUM_ZERO:
         {
-          return html.KeyCode.ZERO;
+          return html$.KeyCode.ZERO;
         }
-        case html.KeyCode.NUM_ONE:
+        case html$.KeyCode.NUM_ONE:
         {
-          return html.KeyCode.ONE;
+          return html$.KeyCode.ONE;
         }
-        case html.KeyCode.NUM_TWO:
+        case html$.KeyCode.NUM_TWO:
         {
-          return html.KeyCode.TWO;
+          return html$.KeyCode.TWO;
         }
-        case html.KeyCode.NUM_THREE:
+        case html$.KeyCode.NUM_THREE:
         {
-          return html.KeyCode.THREE;
+          return html$.KeyCode.THREE;
         }
-        case html.KeyCode.NUM_FOUR:
+        case html$.KeyCode.NUM_FOUR:
         {
-          return html.KeyCode.FOUR;
+          return html$.KeyCode.FOUR;
         }
-        case html.KeyCode.NUM_FIVE:
+        case html$.KeyCode.NUM_FIVE:
         {
-          return html.KeyCode.FIVE;
+          return html$.KeyCode.FIVE;
         }
-        case html.KeyCode.NUM_SIX:
+        case html$.KeyCode.NUM_SIX:
         {
-          return html.KeyCode.SIX;
+          return html$.KeyCode.SIX;
         }
-        case html.KeyCode.NUM_SEVEN:
+        case html$.KeyCode.NUM_SEVEN:
         {
-          return html.KeyCode.SEVEN;
+          return html$.KeyCode.SEVEN;
         }
-        case html.KeyCode.NUM_EIGHT:
+        case html$.KeyCode.NUM_EIGHT:
         {
-          return html.KeyCode.EIGHT;
+          return html$.KeyCode.EIGHT;
         }
-        case html.KeyCode.NUM_NINE:
+        case html$.KeyCode.NUM_NINE:
         {
-          return html.KeyCode.NINE;
+          return html$.KeyCode.NINE;
         }
-        case html.KeyCode.NUM_MULTIPLY:
+        case html$.KeyCode.NUM_MULTIPLY:
         {
           return 42;
         }
-        case html.KeyCode.NUM_PLUS:
+        case html$.KeyCode.NUM_PLUS:
         {
           return 43;
         }
-        case html.KeyCode.NUM_MINUS:
+        case html$.KeyCode.NUM_MINUS:
         {
           return 45;
         }
-        case html.KeyCode.NUM_PERIOD:
+        case html$.KeyCode.NUM_PERIOD:
         {
           return 46;
         }
-        case html.KeyCode.NUM_DIVISION:
+        case html$.KeyCode.NUM_DIVISION:
         {
           return 47;
         }
       }
     } else if (dart.notNull(event[dartx.keyCode]) >= 65 && dart.notNull(event[dartx.keyCode]) <= 90) {
-      return dart.notNull(event[dartx.keyCode]) + dart.notNull(html._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET);
+      return dart.notNull(event[dartx.keyCode]) + dart.notNull(html$._KeyboardEventHandler._ROMAN_ALPHABET_OFFSET);
     }
     switch (event[dartx.keyCode]) {
-      case html.KeyCode.SEMICOLON:
+      case html$.KeyCode.SEMICOLON:
       {
-        return html.KeyCode.FF_SEMICOLON;
+        return html$.KeyCode.FF_SEMICOLON;
       }
-      case html.KeyCode.EQUALS:
+      case html$.KeyCode.EQUALS:
       {
-        return html.KeyCode.FF_EQUALS;
+        return html$.KeyCode.FF_EQUALS;
       }
-      case html.KeyCode.COMMA:
+      case html$.KeyCode.COMMA:
       {
         return 44;
       }
-      case html.KeyCode.DASH:
+      case html$.KeyCode.DASH:
       {
         return 45;
       }
-      case html.KeyCode.PERIOD:
+      case html$.KeyCode.PERIOD:
       {
         return 46;
       }
-      case html.KeyCode.SLASH:
+      case html$.KeyCode.SLASH:
       {
         return 47;
       }
-      case html.KeyCode.APOSTROPHE:
+      case html$.KeyCode.APOSTROPHE:
       {
         return 96;
       }
-      case html.KeyCode.OPEN_SQUARE_BRACKET:
+      case html$.KeyCode.OPEN_SQUARE_BRACKET:
       {
         return 91;
       }
-      case html.KeyCode.BACKSLASH:
+      case html$.KeyCode.BACKSLASH:
       {
         return 92;
       }
-      case html.KeyCode.CLOSE_SQUARE_BRACKET:
+      case html$.KeyCode.CLOSE_SQUARE_BRACKET:
       {
         return 93;
       }
-      case html.KeyCode.SINGLE_QUOTE:
+      case html$.KeyCode.SINGLE_QUOTE:
       {
         return 39;
       }
@@ -97851,85 +97854,85 @@
       return true;
     }
     if (dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && dart.test(event.altKey)) {
-      return html.KeyCode.isCharacterKey(event.keyCode);
+      return html$.KeyCode.isCharacterKey(event.keyCode);
     }
     if (dart.test(event.altKey) && !dart.test(event.ctrlKey)) {
       return false;
     }
-    if (!dart.test(event.shiftKey) && (this[_keyDownList][dartx.last].keyCode == html.KeyCode.CTRL || this[_keyDownList][dartx.last].keyCode == html.KeyCode.ALT || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html.KeyCode.META)) {
+    if (!dart.test(event.shiftKey) && (this[_keyDownList][dartx.last].keyCode == html$.KeyCode.CTRL || this[_keyDownList][dartx.last].keyCode == html$.KeyCode.ALT || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html$.KeyCode.META)) {
       return false;
     }
-    if (dart.test(html_common.Device.isWebKit) && dart.test(event.ctrlKey) && dart.test(event.shiftKey) && (event.keyCode == html.KeyCode.BACKSLASH || event.keyCode == html.KeyCode.OPEN_SQUARE_BRACKET || event.keyCode == html.KeyCode.CLOSE_SQUARE_BRACKET || event.keyCode == html.KeyCode.TILDE || event.keyCode == html.KeyCode.SEMICOLON || event.keyCode == html.KeyCode.DASH || event.keyCode == html.KeyCode.EQUALS || event.keyCode == html.KeyCode.COMMA || event.keyCode == html.KeyCode.PERIOD || event.keyCode == html.KeyCode.SLASH || event.keyCode == html.KeyCode.APOSTROPHE || event.keyCode == html.KeyCode.SINGLE_QUOTE)) {
+    if (dart.test(html_common.Device.isWebKit) && dart.test(event.ctrlKey) && dart.test(event.shiftKey) && (event.keyCode == html$.KeyCode.BACKSLASH || event.keyCode == html$.KeyCode.OPEN_SQUARE_BRACKET || event.keyCode == html$.KeyCode.CLOSE_SQUARE_BRACKET || event.keyCode == html$.KeyCode.TILDE || event.keyCode == html$.KeyCode.SEMICOLON || event.keyCode == html$.KeyCode.DASH || event.keyCode == html$.KeyCode.EQUALS || event.keyCode == html$.KeyCode.COMMA || event.keyCode == html$.KeyCode.PERIOD || event.keyCode == html$.KeyCode.SLASH || event.keyCode == html$.KeyCode.APOSTROPHE || event.keyCode == html$.KeyCode.SINGLE_QUOTE)) {
       return false;
     }
     switch (event.keyCode) {
-      case html.KeyCode.ENTER:
+      case html$.KeyCode.ENTER:
       {
         return !dart.test(html_common.Device.isIE);
       }
-      case html.KeyCode.ESC:
+      case html$.KeyCode.ESC:
       {
         return !dart.test(html_common.Device.isWebKit);
       }
     }
-    return html.KeyCode.isCharacterKey(event.keyCode);
+    return html$.KeyCode.isCharacterKey(event.keyCode);
   }
   [_normalizeKeyCodes](event) {
     if (dart.test(html_common.Device.isFirefox)) {
       switch (event[dartx.keyCode]) {
-        case html.KeyCode.FF_EQUALS:
+        case html$.KeyCode.FF_EQUALS:
         {
-          return html.KeyCode.EQUALS;
+          return html$.KeyCode.EQUALS;
         }
-        case html.KeyCode.FF_SEMICOLON:
+        case html$.KeyCode.FF_SEMICOLON:
         {
-          return html.KeyCode.SEMICOLON;
+          return html$.KeyCode.SEMICOLON;
         }
-        case html.KeyCode.MAC_FF_META:
+        case html$.KeyCode.MAC_FF_META:
         {
-          return html.KeyCode.META;
+          return html$.KeyCode.META;
         }
-        case html.KeyCode.WIN_KEY_FF_LINUX:
+        case html$.KeyCode.WIN_KEY_FF_LINUX:
         {
-          return html.KeyCode.WIN_KEY;
+          return html$.KeyCode.WIN_KEY;
         }
       }
     }
     return event[dartx.keyCode];
   }
   processKeyDown(e) {
-    if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && (this[_keyDownList][dartx.last].keyCode == html.KeyCode.CTRL && !dart.test(e[dartx.ctrlKey]) || this[_keyDownList][dartx.last].keyCode == html.KeyCode.ALT && !dart.test(e[dartx.altKey]) || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html.KeyCode.META && !dart.test(e[dartx.metaKey]))) {
+    if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && (this[_keyDownList][dartx.last].keyCode == html$.KeyCode.CTRL && !dart.test(e[dartx.ctrlKey]) || this[_keyDownList][dartx.last].keyCode == html$.KeyCode.ALT && !dart.test(e[dartx.altKey]) || dart.test(html_common.Device.userAgent[dartx.contains]('Mac')) && this[_keyDownList][dartx.last].keyCode == html$.KeyCode.META && !dart.test(e[dartx.metaKey]))) {
       this[_keyDownList][dartx.clear]();
     }
-    let event = new html.KeyEvent.wrap(e);
+    let event = new html$.KeyEvent.wrap(e);
     event[_shadowKeyCode] = this[_normalizeKeyCodes](event);
     event[_shadowCharCode] = this[_findCharCodeKeyDown](event);
     if (dart.notNull(this[_keyDownList][dartx.length]) > 0 && event.keyCode != this[_keyDownList][dartx.last].keyCode && !dart.test(this[_firesKeyPressEvent](event))) {
       this.processKeyPress(e);
     }
     this[_keyDownList][dartx.add](event);
-    this[_stream].add(event);
+    this[_stream$0].add(event);
   }
   processKeyPress(event) {
-    let e = new html.KeyEvent.wrap(event);
+    let e = new html$.KeyEvent.wrap(event);
     if (dart.test(html_common.Device.isIE)) {
-      if (e.keyCode == html.KeyCode.ENTER || e.keyCode == html.KeyCode.ESC) {
+      if (e.keyCode == html$.KeyCode.ENTER || e.keyCode == html$.KeyCode.ESC) {
         e[_shadowCharCode] = 0;
       } else {
         e[_shadowCharCode] = e.keyCode;
       }
     } else if (dart.test(html_common.Device.isOpera)) {
-      e[_shadowCharCode] = dart.test(html.KeyCode.isCharacterKey(e.keyCode)) ? e.keyCode : 0;
+      e[_shadowCharCode] = dart.test(html$.KeyCode.isCharacterKey(e.keyCode)) ? e.keyCode : 0;
     }
     e[_shadowKeyCode] = this[_determineKeyCodeForKeypress](e);
-    if (e[_shadowKeyIdentifier] != null && dart.test(html._KeyboardEventHandler._keyIdentifier[dartx.containsKey](e[_shadowKeyIdentifier]))) {
-      e[_shadowKeyCode] = html._KeyboardEventHandler._keyIdentifier[dartx._get](e[_shadowKeyIdentifier]);
+    if (e[_shadowKeyIdentifier] != null && dart.test(html$._KeyboardEventHandler._keyIdentifier[dartx.containsKey](e[_shadowKeyIdentifier]))) {
+      e[_shadowKeyCode] = html$._KeyboardEventHandler._keyIdentifier[dartx._get](e[_shadowKeyIdentifier]);
     }
     e[_shadowAltKey] = this[_keyDownList][dartx.any](dart.fn(element => element.altKey, KeyEventTobool()));
-    this[_stream].add(e);
+    this[_stream$0].add(e);
   }
   processKeyUp(event) {
-    let e = new html.KeyEvent.wrap(event);
+    let e = new html$.KeyEvent.wrap(event);
     let toRemove = null;
     for (let key of this[_keyDownList]) {
       if (key.keyCode == e.keyCode) {
@@ -97941,32 +97944,32 @@
     } else if (dart.notNull(this[_keyDownList][dartx.length]) > 0) {
       this[_keyDownList][dartx.removeLast]();
     }
-    this[_stream].add(e);
+    this[_stream$0].add(e);
   }
 };
-dart.addSimpleTypeTests(html._KeyboardEventHandler);
-dart.defineNamedConstructor(html._KeyboardEventHandler, 'initializeAllEventListeners');
-dart.setSignature(html._KeyboardEventHandler, {
+dart.addSimpleTypeTests(html$._KeyboardEventHandler);
+dart.defineNamedConstructor(html$._KeyboardEventHandler, 'initializeAllEventListeners');
+dart.setSignature(html$._KeyboardEventHandler, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html._KeyboardEventHandler, [core.String]),
-    initializeAllEventListeners: dart.definiteFunctionType(html._KeyboardEventHandler, [core.String, html.EventTarget])
+    new: dart.definiteFunctionType(html$._KeyboardEventHandler, [core.String]),
+    initializeAllEventListeners: dart.definiteFunctionType(html$._KeyboardEventHandler, [core.String, html$.EventTarget])
   }),
   fields: () => ({
     [_keyDownList]: ListOfKeyEvent(),
-    [_type]: core.String,
-    [_target]: html.EventTarget,
-    [_stream]: html._CustomKeyEventStreamImpl
+    [_type$]: core.String,
+    [_target$0]: html$.EventTarget,
+    [_stream$0]: html$._CustomKeyEventStreamImpl
   }),
   getters: () => ({[_capsLockOn]: dart.definiteFunctionType(core.bool, [])}),
   methods: () => ({
-    forTarget: dart.definiteFunctionType(html.CustomStream$(html.KeyEvent), [html.EventTarget], {useCapture: core.bool}),
-    [_determineKeyCodeForKeypress]: dart.definiteFunctionType(core.int, [html.KeyboardEvent]),
-    [_findCharCodeKeyDown]: dart.definiteFunctionType(core.int, [html.KeyboardEvent]),
-    [_firesKeyPressEvent]: dart.definiteFunctionType(core.bool, [html.KeyEvent]),
-    [_normalizeKeyCodes]: dart.definiteFunctionType(core.int, [html.KeyboardEvent]),
-    processKeyDown: dart.definiteFunctionType(dart.void, [html.KeyboardEvent]),
-    processKeyPress: dart.definiteFunctionType(dart.void, [html.KeyboardEvent]),
-    processKeyUp: dart.definiteFunctionType(dart.void, [html.KeyboardEvent])
+    forTarget: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget], {useCapture: core.bool}),
+    [_determineKeyCodeForKeypress]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
+    [_findCharCodeKeyDown]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
+    [_firesKeyPressEvent]: dart.definiteFunctionType(core.bool, [html$.KeyEvent]),
+    [_normalizeKeyCodes]: dart.definiteFunctionType(core.int, [html$.KeyboardEvent]),
+    processKeyDown: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent]),
+    processKeyPress: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent]),
+    processKeyUp: dart.definiteFunctionType(dart.void, [html$.KeyboardEvent])
   }),
   sfields: () => ({
     _ROMAN_ALPHABET_OFFSET: core.int,
@@ -97974,34 +97977,34 @@
     _keyIdentifier: MapOfString$int()
   })
 });
-html._KeyboardEventHandler._EVENT_TYPE = 'KeyEvent';
-html._KeyboardEventHandler._keyIdentifier = dart.const(dart.map({Up: html.KeyCode.UP, Down: html.KeyCode.DOWN, Left: html.KeyCode.LEFT, Right: html.KeyCode.RIGHT, Enter: html.KeyCode.ENTER, F1: html.KeyCode.F1, F2: html.KeyCode.F2, F3: html.KeyCode.F3, F4: html.KeyCode.F4, F5: html.KeyCode.F5, F6: html.KeyCode.F6, F7: html.KeyCode.F7, F8: html.KeyCode.F8, F9: html.KeyCode.F9, F10: html.KeyCode.F10, F11: html.KeyCode.F11, F12: html.KeyCode.F12, 'U+007F': html.KeyCode.DELETE, Home: html.KeyCode.HOME, End: html.KeyCode.END, PageUp: html.KeyCode.PAGE_UP, PageDown: html.KeyCode.PAGE_DOWN, Insert: html.KeyCode.INSERT}, core.String, core.int));
-dart.defineLazy(html._KeyboardEventHandler, {
+html$._KeyboardEventHandler._EVENT_TYPE = 'KeyEvent';
+html$._KeyboardEventHandler._keyIdentifier = dart.const(dart.map({Up: html$.KeyCode.UP, Down: html$.KeyCode.DOWN, Left: html$.KeyCode.LEFT, Right: html$.KeyCode.RIGHT, Enter: html$.KeyCode.ENTER, F1: html$.KeyCode.F1, F2: html$.KeyCode.F2, F3: html$.KeyCode.F3, F4: html$.KeyCode.F4, F5: html$.KeyCode.F5, F6: html$.KeyCode.F6, F7: html$.KeyCode.F7, F8: html$.KeyCode.F8, F9: html$.KeyCode.F9, F10: html$.KeyCode.F10, F11: html$.KeyCode.F11, F12: html$.KeyCode.F12, 'U+007F': html$.KeyCode.DELETE, Home: html$.KeyCode.HOME, End: html$.KeyCode.END, PageUp: html$.KeyCode.PAGE_UP, PageDown: html$.KeyCode.PAGE_DOWN, Insert: html$.KeyCode.INSERT}, core.String, core.int));
+dart.defineLazy(html$._KeyboardEventHandler, {
   get _ROMAN_ALPHABET_OFFSET() {
     return dart.notNull("a"[dartx.codeUnits][dartx._get](0)) - dart.notNull("A"[dartx.codeUnits][dartx._get](0));
   }
 });
-html.KeyboardEventStream = class KeyboardEventStream extends core.Object {
+html$.KeyboardEventStream = class KeyboardEventStream extends core.Object {
   static onKeyPress(target) {
-    return new html._KeyboardEventHandler('keypress').forTarget(target);
+    return new html$._KeyboardEventHandler('keypress').forTarget(target);
   }
   static onKeyUp(target) {
-    return new html._KeyboardEventHandler('keyup').forTarget(target);
+    return new html$._KeyboardEventHandler('keyup').forTarget(target);
   }
   static onKeyDown(target) {
-    return new html._KeyboardEventHandler('keydown').forTarget(target);
+    return new html$._KeyboardEventHandler('keydown').forTarget(target);
   }
 };
-dart.setSignature(html.KeyboardEventStream, {
+dart.setSignature(html$.KeyboardEventStream, {
   statics: () => ({
-    onKeyPress: dart.definiteFunctionType(html.CustomStream$(html.KeyEvent), [html.EventTarget]),
-    onKeyUp: dart.definiteFunctionType(html.CustomStream$(html.KeyEvent), [html.EventTarget]),
-    onKeyDown: dart.definiteFunctionType(html.CustomStream$(html.KeyEvent), [html.EventTarget])
+    onKeyPress: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget]),
+    onKeyUp: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget]),
+    onKeyDown: dart.definiteFunctionType(html$.CustomStream$(html$.KeyEvent), [html$.EventTarget])
   }),
   names: ['onKeyPress', 'onKeyUp', 'onKeyDown']
 });
 const _validators = Symbol('_validators');
-html.NodeValidatorBuilder = class NodeValidatorBuilder extends core.Object {
+html$.NodeValidatorBuilder = class NodeValidatorBuilder extends core.Object {
   new() {
     this[_validators] = JSArrayOfNodeValidator().of([]);
   }
@@ -98013,19 +98016,19 @@
   allowNavigation(uriPolicy) {
     if (uriPolicy === void 0) uriPolicy = null;
     if (uriPolicy == null) {
-      uriPolicy = html.UriPolicy.new();
+      uriPolicy = html$.UriPolicy.new();
     }
-    this.add(html._SimpleNodeValidator.allowNavigation(uriPolicy));
+    this.add(html$._SimpleNodeValidator.allowNavigation(uriPolicy));
   }
   allowImages(uriPolicy) {
     if (uriPolicy === void 0) uriPolicy = null;
     if (uriPolicy == null) {
-      uriPolicy = html.UriPolicy.new();
+      uriPolicy = html$.UriPolicy.new();
     }
-    this.add(html._SimpleNodeValidator.allowImages(uriPolicy));
+    this.add(html$._SimpleNodeValidator.allowImages(uriPolicy));
   }
   allowTextElements() {
-    this.add(html._SimpleNodeValidator.allowTextElements());
+    this.add(html$._SimpleNodeValidator.allowTextElements());
   }
   allowInlineStyles(opts) {
     let tagName = opts && 'tagName' in opts ? opts.tagName : null;
@@ -98034,26 +98037,26 @@
     } else {
       tagName = tagName[dartx.toUpperCase]();
     }
-    this.add(new html._SimpleNodeValidator(null, {allowedAttributes: JSArrayOfString().of([dart.str`${tagName}::style`])}));
+    this.add(new html$._SimpleNodeValidator(null, {allowedAttributes: JSArrayOfString().of([dart.str`${tagName}::style`])}));
   }
   allowHtml5(opts) {
     let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-    this.add(new html._Html5NodeValidator({uriPolicy: uriPolicy}));
+    this.add(new html$._Html5NodeValidator({uriPolicy: uriPolicy}));
   }
   allowSvg() {
-    this.add(new html._SvgNodeValidator());
+    this.add(new html$._SvgNodeValidator());
   }
   allowCustomElement(tagName, opts) {
     let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
     let attributes = opts && 'attributes' in opts ? opts.attributes : null;
     let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
     let tagNameUpper = tagName[dartx.toUpperCase]();
-    let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString())));
-    let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString())));
+    let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
+    let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${tagNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
     if (uriPolicy == null) {
-      uriPolicy = html.UriPolicy.new();
+      uriPolicy = html$.UriPolicy.new();
     }
-    this.add(new html._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper]), attrs, uriAttrs, false, true));
+    this.add(new html$._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper]), attrs, uriAttrs, false, true));
   }
   allowTagExtension(tagName, baseName, opts) {
     let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
@@ -98061,12 +98064,12 @@
     let uriAttributes = opts && 'uriAttributes' in opts ? opts.uriAttributes : null;
     let baseNameUpper = baseName[dartx.toUpperCase]();
     let tagNameUpper = tagName[dartx.toUpperCase]();
-    let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString())));
-    let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString())));
+    let attrs = dart.nullSafe(attributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
+    let uriAttrs = dart.nullSafe(uriAttributes, _ => _[dartx.map](core.String)(dart.fn(name => dart.str`${baseNameUpper}::${name[dartx.toLowerCase]()}`, StringToString$())));
     if (uriPolicy == null) {
-      uriPolicy = html.UriPolicy.new();
+      uriPolicy = html$.UriPolicy.new();
     }
-    this.add(new html._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper, baseNameUpper]), attrs, uriAttrs, true, false));
+    this.add(new html$._CustomElementNodeValidator(uriPolicy, JSArrayOfString().of([tagNameUpper, baseNameUpper]), attrs, uriAttrs, true, false));
   }
   allowElement(tagName, opts) {
     let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
@@ -98075,7 +98078,7 @@
     this.allowCustomElement(tagName, {uriPolicy: uriPolicy, attributes: attributes, uriAttributes: uriAttributes});
   }
   allowTemplating() {
-    this.add(new html._TemplatingNodeValidator());
+    this.add(new html$._TemplatingNodeValidator());
   }
   add(validator) {
     this[_validators][dartx.add](validator);
@@ -98087,49 +98090,49 @@
     return this[_validators][dartx.any](dart.fn(v => v.allowsAttribute(element, attributeName, value), NodeValidatorTobool()));
   }
 };
-dart.defineNamedConstructor(html.NodeValidatorBuilder, 'common');
-html.NodeValidatorBuilder[dart.implements] = () => [html.NodeValidator];
-dart.setSignature(html.NodeValidatorBuilder, {
+dart.defineNamedConstructor(html$.NodeValidatorBuilder, 'common');
+html$.NodeValidatorBuilder[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$.NodeValidatorBuilder, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.NodeValidatorBuilder, []),
-    common: dart.definiteFunctionType(html.NodeValidatorBuilder, [])
+    new: dart.definiteFunctionType(html$.NodeValidatorBuilder, []),
+    common: dart.definiteFunctionType(html$.NodeValidatorBuilder, [])
   }),
   fields: () => ({[_validators]: ListOfNodeValidator()}),
   methods: () => ({
-    allowNavigation: dart.definiteFunctionType(dart.void, [], [html.UriPolicy]),
-    allowImages: dart.definiteFunctionType(dart.void, [], [html.UriPolicy]),
+    allowNavigation: dart.definiteFunctionType(dart.void, [], [html$.UriPolicy]),
+    allowImages: dart.definiteFunctionType(dart.void, [], [html$.UriPolicy]),
     allowTextElements: dart.definiteFunctionType(dart.void, []),
     allowInlineStyles: dart.definiteFunctionType(dart.void, [], {tagName: core.String}),
-    allowHtml5: dart.definiteFunctionType(dart.void, [], {uriPolicy: html.UriPolicy}),
+    allowHtml5: dart.definiteFunctionType(dart.void, [], {uriPolicy: html$.UriPolicy}),
     allowSvg: dart.definiteFunctionType(dart.void, []),
-    allowCustomElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
-    allowTagExtension: dart.definiteFunctionType(dart.void, [core.String, core.String], {uriPolicy: html.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
-    allowElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
+    allowCustomElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
+    allowTagExtension: dart.definiteFunctionType(dart.void, [core.String, core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
+    allowElement: dart.definiteFunctionType(dart.void, [core.String], {uriPolicy: html$.UriPolicy, attributes: IterableOfString(), uriAttributes: IterableOfString()}),
     allowTemplating: dart.definiteFunctionType(dart.void, []),
-    add: dart.definiteFunctionType(dart.void, [html.NodeValidator]),
-    allowsElement: dart.definiteFunctionType(core.bool, [html.Element]),
-    allowsAttribute: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String])
+    add: dart.definiteFunctionType(dart.void, [html$.NodeValidator]),
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
   })
 });
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-let const;
-html._SimpleNodeValidator = class _SimpleNodeValidator extends core.Object {
+let const$83;
+let const$84;
+let const$85;
+let const$86;
+let const$87;
+let const$88;
+let const$89;
+let const$90;
+let const$91;
+let const$92;
+html$._SimpleNodeValidator = class _SimpleNodeValidator extends core.Object {
   static allowNavigation(uriPolicy) {
-    return new html._SimpleNodeValidator(uriPolicy, {allowedElements: const || (const = dart.constList(['A', 'FORM'], core.String)), allowedAttributes: const || (const = dart.constList(['A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target'], core.String)), allowedUriAttributes: const || (const = dart.constList(['A::href', 'FORM::action'], core.String))});
+    return new html$._SimpleNodeValidator(uriPolicy, {allowedElements: const$83 || (const$83 = dart.constList(['A', 'FORM'], core.String)), allowedAttributes: const$84 || (const$84 = dart.constList(['A::accesskey', 'A::coords', 'A::hreflang', 'A::name', 'A::shape', 'A::tabindex', 'A::target', 'A::type', 'FORM::accept', 'FORM::autocomplete', 'FORM::enctype', 'FORM::method', 'FORM::name', 'FORM::novalidate', 'FORM::target'], core.String)), allowedUriAttributes: const$85 || (const$85 = dart.constList(['A::href', 'FORM::action'], core.String))});
   }
   static allowImages(uriPolicy) {
-    return new html._SimpleNodeValidator(uriPolicy, {allowedElements: const || (const = dart.constList(['IMG'], core.String)), allowedAttributes: const || (const = dart.constList(['IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width'], core.String)), allowedUriAttributes: const || (const = dart.constList(['IMG::src'], core.String))});
+    return new html$._SimpleNodeValidator(uriPolicy, {allowedElements: const$86 || (const$86 = dart.constList(['IMG'], core.String)), allowedAttributes: const$87 || (const$87 = dart.constList(['IMG::align', 'IMG::alt', 'IMG::border', 'IMG::height', 'IMG::hspace', 'IMG::ismap', 'IMG::name', 'IMG::usemap', 'IMG::vspace', 'IMG::width'], core.String)), allowedUriAttributes: const$88 || (const$88 = dart.constList(['IMG::src'], core.String))});
   }
   static allowTextElements() {
-    return new html._SimpleNodeValidator(null, {allowedElements: const || (const = dart.constList(['B', 'BLOCKQUOTE', 'BR', 'EM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'LI', 'OL', 'P', 'SPAN', 'UL'], core.String))});
+    return new html$._SimpleNodeValidator(null, {allowedElements: const$89 || (const$89 = dart.constList(['B', 'BLOCKQUOTE', 'BR', 'EM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'LI', 'OL', 'P', 'SPAN', 'UL'], core.String))});
   }
   new(uriPolicy, opts) {
     let allowedElements = opts && 'allowedElements' in opts ? opts.allowedElements : null;
@@ -98139,20 +98142,20 @@
     this.allowedAttributes = SetOfString().new();
     this.allowedUriAttributes = SetOfString().new();
     this.uriPolicy = uriPolicy;
-    this.allowedElements.addAll((allowedElements != null ? allowedElements : const || (const = dart.constList([], core.String))));
-    allowedAttributes = allowedAttributes != null ? allowedAttributes : const || (const = dart.constList([], core.String));
-    allowedUriAttributes = allowedUriAttributes != null ? allowedUriAttributes : const || (const = dart.constList([], core.String));
-    let legalAttributes = allowedAttributes[dartx.where](dart.fn(x => !dart.test(html._Html5NodeValidator._uriAttributes[dartx.contains](x)), StringTobool()));
-    let extraUriAttributes = allowedAttributes[dartx.where](dart.fn(x => html._Html5NodeValidator._uriAttributes[dartx.contains](x), StringTobool()));
+    this.allowedElements.addAll((allowedElements != null ? allowedElements : const$90 || (const$90 = dart.constList([], core.String))));
+    allowedAttributes = allowedAttributes != null ? allowedAttributes : const$91 || (const$91 = dart.constList([], core.String));
+    allowedUriAttributes = allowedUriAttributes != null ? allowedUriAttributes : const$92 || (const$92 = dart.constList([], core.String));
+    let legalAttributes = allowedAttributes[dartx.where](dart.fn(x => !dart.test(html$._Html5NodeValidator._uriAttributes[dartx.contains](x)), StringTobool$()));
+    let extraUriAttributes = allowedAttributes[dartx.where](dart.fn(x => html$._Html5NodeValidator._uriAttributes[dartx.contains](x), StringTobool$()));
     this.allowedAttributes.addAll(legalAttributes);
     this.allowedUriAttributes.addAll(allowedUriAttributes);
     this.allowedUriAttributes.addAll(extraUriAttributes);
   }
   allowsElement(element) {
-    return this.allowedElements.contains(html.Element._safeTagName(element));
+    return this.allowedElements.contains(html$.Element._safeTagName(element));
   }
   allowsAttribute(element, attributeName, value) {
-    let tagName = html.Element._safeTagName(element);
+    let tagName = html$.Element._safeTagName(element);
     if (dart.test(this.allowedUriAttributes.contains(dart.str`${tagName}::${attributeName}`))) {
       return this.uriPolicy.allowsUri(value);
     } else if (dart.test(this.allowedUriAttributes.contains(dart.str`*::${attributeName}`))) {
@@ -98169,26 +98172,26 @@
     return false;
   }
 };
-html._SimpleNodeValidator[dart.implements] = () => [html.NodeValidator];
-dart.setSignature(html._SimpleNodeValidator, {
+html$._SimpleNodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._SimpleNodeValidator, {
   constructors: () => ({
-    allowNavigation: dart.definiteFunctionType(html._SimpleNodeValidator, [html.UriPolicy]),
-    allowImages: dart.definiteFunctionType(html._SimpleNodeValidator, [html.UriPolicy]),
-    allowTextElements: dart.definiteFunctionType(html._SimpleNodeValidator, []),
-    new: dart.definiteFunctionType(html._SimpleNodeValidator, [html.UriPolicy], {allowedElements: IterableOfString(), allowedAttributes: IterableOfString(), allowedUriAttributes: IterableOfString()})
+    allowNavigation: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy]),
+    allowImages: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy]),
+    allowTextElements: dart.definiteFunctionType(html$._SimpleNodeValidator, []),
+    new: dart.definiteFunctionType(html$._SimpleNodeValidator, [html$.UriPolicy], {allowedElements: IterableOfString(), allowedAttributes: IterableOfString(), allowedUriAttributes: IterableOfString()})
   }),
   fields: () => ({
     allowedElements: SetOfString(),
     allowedAttributes: SetOfString(),
     allowedUriAttributes: SetOfString(),
-    uriPolicy: html.UriPolicy
+    uriPolicy: html$.UriPolicy
   }),
   methods: () => ({
-    allowsElement: dart.definiteFunctionType(core.bool, [html.Element]),
-    allowsAttribute: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String])
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
   })
 });
-html._CustomElementNodeValidator = class _CustomElementNodeValidator extends html._SimpleNodeValidator {
+html$._CustomElementNodeValidator = class _CustomElementNodeValidator extends html$._SimpleNodeValidator {
   new(uriPolicy, allowedElements, allowedAttributes, allowedUriAttributes, allowTypeExtension, allowCustomTag) {
     this.allowTypeExtension = allowTypeExtension == true;
     this.allowCustomTag = allowCustomTag == true;
@@ -98198,10 +98201,10 @@
     if (dart.test(this.allowTypeExtension)) {
       let isAttr = element[dartx.attributes][dartx._get]('is');
       if (isAttr != null) {
-        return dart.test(this.allowedElements.contains(isAttr[dartx.toUpperCase]())) && dart.test(this.allowedElements.contains(html.Element._safeTagName(element)));
+        return dart.test(this.allowedElements.contains(isAttr[dartx.toUpperCase]())) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
       }
     }
-    return dart.test(this.allowCustomTag) && dart.test(this.allowedElements.contains(html.Element._safeTagName(element)));
+    return dart.test(this.allowCustomTag) && dart.test(this.allowedElements.contains(html$.Element._safeTagName(element)));
   }
   allowsAttribute(element, attributeName, value) {
     if (dart.test(this.allowsElement(element))) {
@@ -98213,18 +98216,18 @@
     return false;
   }
 };
-dart.setSignature(html._CustomElementNodeValidator, {
-  constructors: () => ({new: dart.definiteFunctionType(html._CustomElementNodeValidator, [html.UriPolicy, IterableOfString(), IterableOfString(), IterableOfString(), core.bool, core.bool])}),
+dart.setSignature(html$._CustomElementNodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._CustomElementNodeValidator, [html$.UriPolicy, IterableOfString(), IterableOfString(), IterableOfString(), core.bool, core.bool])}),
   fields: () => ({
     allowTypeExtension: core.bool,
     allowCustomTag: core.bool
   })
 });
 const _templateAttrs = Symbol('_templateAttrs');
-html._TemplatingNodeValidator = class _TemplatingNodeValidator extends html._SimpleNodeValidator {
+html$._TemplatingNodeValidator = class _TemplatingNodeValidator extends html$._SimpleNodeValidator {
   new() {
-    this[_templateAttrs] = SetOfString().from(html._TemplatingNodeValidator._TEMPLATE_ATTRS);
-    super.new(null, {allowedElements: JSArrayOfString().of(['TEMPLATE']), allowedAttributes: html._TemplatingNodeValidator._TEMPLATE_ATTRS[dartx.map](core.String)(dart.fn(attr => dart.str`TEMPLATE::${attr}`, StringToString()))});
+    this[_templateAttrs] = SetOfString().from(html$._TemplatingNodeValidator._TEMPLATE_ATTRS);
+    super.new(null, {allowedElements: JSArrayOfString().of(['TEMPLATE']), allowedAttributes: html$._TemplatingNodeValidator._TEMPLATE_ATTRS[dartx.map](core.String)(dart.fn(attr => dart.str`TEMPLATE::${attr}`, StringToString$()))});
   }
   allowsAttribute(element, attributeName, value) {
     if (dart.test(super.allowsAttribute(element, attributeName, value))) {
@@ -98239,21 +98242,21 @@
     return false;
   }
 };
-dart.setSignature(html._TemplatingNodeValidator, {
-  constructors: () => ({new: dart.definiteFunctionType(html._TemplatingNodeValidator, [])}),
+dart.setSignature(html$._TemplatingNodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._TemplatingNodeValidator, [])}),
   fields: () => ({[_templateAttrs]: SetOfString()}),
   sfields: () => ({_TEMPLATE_ATTRS: ListOfString()})
 });
-html._TemplatingNodeValidator._TEMPLATE_ATTRS = dart.constList(['bind', 'if', 'ref', 'repeat', 'syntax'], core.String);
-html._SvgNodeValidator = class _SvgNodeValidator extends core.Object {
+html$._TemplatingNodeValidator._TEMPLATE_ATTRS = dart.constList(['bind', 'if', 'ref', 'repeat', 'syntax'], core.String);
+html$._SvgNodeValidator = class _SvgNodeValidator extends core.Object {
   allowsElement(element) {
-    if (svg.ScriptElement.is(element)) {
+    if (svg$.ScriptElement.is(element)) {
       return false;
     }
-    if (svg.SvgElement.is(element) && html.Element._safeTagName(element) == 'foreignObject') {
+    if (svg$.SvgElement.is(element) && html$.Element._safeTagName(element) == 'foreignObject') {
       return false;
     }
-    if (svg.SvgElement.is(element)) {
+    if (svg$.SvgElement.is(element)) {
       return true;
     }
     return false;
@@ -98265,107 +98268,107 @@
     return this.allowsElement(element);
   }
 };
-html._SvgNodeValidator[dart.implements] = () => [html.NodeValidator];
-dart.setSignature(html._SvgNodeValidator, {
+html$._SvgNodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._SvgNodeValidator, {
   methods: () => ({
-    allowsElement: dart.definiteFunctionType(core.bool, [html.Element]),
-    allowsAttribute: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String])
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
   })
 });
-html.ReadyState = class ReadyState extends core.Object {};
-dart.setSignature(html.ReadyState, {
+html$.ReadyState = class ReadyState extends core.Object {};
+dart.setSignature(html$.ReadyState, {
   sfields: () => ({
     LOADING: core.String,
     INTERACTIVE: core.String,
     COMPLETE: core.String
   })
 });
-html.ReadyState.LOADING = "loading";
-html.ReadyState.INTERACTIVE = "interactive";
-html.ReadyState.COMPLETE = "complete";
-const _list = Symbol('_list');
-html._WrappedList$ = dart.generic(E => {
-  let _WrappedIteratorOfE = () => (_WrappedIteratorOfE = dart.constFn(html._WrappedIterator$(E)))();
+html$.ReadyState.LOADING = "loading";
+html$.ReadyState.INTERACTIVE = "interactive";
+html$.ReadyState.COMPLETE = "complete";
+const _list$ = Symbol('_list');
+html$._WrappedList$ = dart.generic(E => {
+  let _WrappedIteratorOfE = () => (_WrappedIteratorOfE = dart.constFn(html$._WrappedIterator$(E)))();
   let IterableOfE = () => (IterableOfE = dart.constFn(core.Iterable$(E)))();
   let EAndEToint = () => (EAndEToint = dart.constFn(dart.functionType(core.int, [E, E])))();
   class _WrappedList extends collection.ListBase$(E) {
     new(list) {
-      this[_list] = list;
+      this[_list$] = list;
     }
     get iterator() {
-      return new (_WrappedIteratorOfE())(this[_list][dartx.iterator]);
+      return new (_WrappedIteratorOfE())(this[_list$][dartx.iterator]);
     }
     get length() {
-      return this[_list][dartx.length];
+      return this[_list$][dartx.length];
     }
     add(element) {
       E._check(element);
-      this[_list][dartx.add](element);
+      this[_list$][dartx.add](element);
     }
     remove(element) {
-      return this[_list][dartx.remove](element);
+      return this[_list$][dartx.remove](element);
     }
     clear() {
-      this[_list][dartx.clear]();
+      this[_list$][dartx.clear]();
     }
     _get(index) {
-      return html._downcast(html.Node, E)(this[_list][dartx._get](index));
+      return html$._downcast(html$.Node, E)(this[_list$][dartx._get](index));
     }
     _set(index, value) {
       E._check(value);
-      this[_list][dartx._set](index, value);
+      this[_list$][dartx._set](index, value);
       return value;
     }
     set length(newLength) {
-      this[_list][dartx.length] = newLength;
+      this[_list$][dartx.length] = newLength;
     }
     sort(compare) {
       if (compare === void 0) compare = null;
-      this[_list][dartx.sort](dart.fn((a, b) => compare(html._downcast(html.Node, E)(a), html._downcast(html.Node, E)(b)), NodeAndNodeToint()));
+      this[_list$][dartx.sort](dart.fn((a, b) => compare(html$._downcast(html$.Node, E)(a), html$._downcast(html$.Node, E)(b)), NodeAndNodeToint()));
     }
     indexOf(element, start) {
       if (start === void 0) start = 0;
-      return this[_list][dartx.indexOf](html.Node._check(element), start);
+      return this[_list$][dartx.indexOf](html$.Node._check(element), start);
     }
     lastIndexOf(element, start) {
       if (start === void 0) start = null;
-      return this[_list][dartx.lastIndexOf](html.Node._check(element), start);
+      return this[_list$][dartx.lastIndexOf](html$.Node._check(element), start);
     }
     insert(index, element) {
       E._check(element);
-      return this[_list][dartx.insert](index, element);
+      return this[_list$][dartx.insert](index, element);
     }
     removeAt(index) {
-      return html._downcast(html.Node, E)(this[_list][dartx.removeAt](index));
+      return html$._downcast(html$.Node, E)(this[_list$][dartx.removeAt](index));
     }
     setRange(start, end, iterable, skipCount) {
       IterableOfE()._check(iterable);
       if (skipCount === void 0) skipCount = 0;
-      this[_list][dartx.setRange](start, end, iterable, skipCount);
+      this[_list$][dartx.setRange](start, end, iterable, skipCount);
     }
     removeRange(start, end) {
-      this[_list][dartx.removeRange](start, end);
+      this[_list$][dartx.removeRange](start, end);
     }
     replaceRange(start, end, iterable) {
       IterableOfE()._check(iterable);
-      this[_list][dartx.replaceRange](start, end, iterable);
+      this[_list$][dartx.replaceRange](start, end, iterable);
     }
     fillRange(start, end, fillValue) {
       if (fillValue === void 0) fillValue = null;
       E._check(fillValue);
-      this[_list][dartx.fillRange](start, end, fillValue);
+      this[_list$][dartx.fillRange](start, end, fillValue);
     }
     get rawList() {
-      return this[_list];
+      return this[_list$];
     }
   }
   _WrappedList[dart.implements] = () => [html_common.NodeListWrapper];
   dart.setSignature(_WrappedList, {
-    constructors: () => ({new: dart.definiteFunctionType(html._WrappedList$(E), [ListOfNode()])}),
-    fields: () => ({[_list]: ListOfNode()}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._WrappedList$(E), [ListOfNode()])}),
+    fields: () => ({[_list$]: ListOfNode()}),
     getters: () => ({
       length: dart.definiteFunctionType(core.int, []),
-      rawList: dart.definiteFunctionType(core.List$(html.Node), [])
+      rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
     }),
     setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
     methods: () => ({
@@ -98394,45 +98397,45 @@
   ]);
   return _WrappedList;
 });
-html._WrappedList = _WrappedList();
-const _iterator = Symbol('_iterator');
-html._WrappedIterator$ = dart.generic(E => {
+html$._WrappedList = _WrappedList();
+const _iterator$1 = Symbol('_iterator');
+html$._WrappedIterator$ = dart.generic(E => {
   let IteratorOfE = () => (IteratorOfE = dart.constFn(core.Iterator$(E)))();
   class _WrappedIterator extends core.Object {
     new(iterator) {
-      this[_iterator] = iterator;
+      this[_iterator$1] = iterator;
     }
     moveNext() {
-      return this[_iterator].moveNext();
+      return this[_iterator$1].moveNext();
     }
     get current() {
-      return html._downcast(html.Node, E)(this[_iterator].current);
+      return html$._downcast(html$.Node, E)(this[_iterator$1].current);
     }
   }
   dart.addTypeTests(_WrappedIterator);
   _WrappedIterator[dart.implements] = () => [IteratorOfE()];
   dart.setSignature(_WrappedIterator, {
-    constructors: () => ({new: dart.definiteFunctionType(html._WrappedIterator$(E), [IteratorOfNode()])}),
-    fields: () => ({[_iterator]: IteratorOfNode()}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._WrappedIterator$(E), [IteratorOfNode()])}),
+    fields: () => ({[_iterator$1]: IteratorOfNode()}),
     getters: () => ({current: dart.definiteFunctionType(E, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
   });
   return _WrappedIterator;
 });
-html._WrappedIterator = _WrappedIterator();
-html._downcast = function(From, To) {
+html$._WrappedIterator = _WrappedIterator();
+html$._downcast = function(From, To) {
   return x => {
     return To._check(x);
   };
 };
-dart.fn(html._downcast, FromToTo());
-html._HttpRequestUtils = class _HttpRequestUtils extends core.Object {
+dart.fn(html$._downcast, FromToTo());
+html$._HttpRequestUtils = class _HttpRequestUtils extends core.Object {
   static get(url, onComplete, withCredentials) {
-    let request = html.HttpRequest.new();
+    let request = html$.HttpRequest.new();
     request[dartx.open]('GET', url, {async: true});
     request[dartx.withCredentials] = withCredentials;
     request[dartx.onReadyStateChange].listen(dart.fn(e => {
-      if (request[dartx.readyState] == html.HttpRequest.DONE) {
+      if (request[dartx.readyState] == html$.HttpRequest.DONE) {
         onComplete(request);
       }
     }, ProgressEventToNull()));
@@ -98440,164 +98443,164 @@
     return request;
   }
 };
-dart.setSignature(html._HttpRequestUtils, {
-  statics: () => ({get: dart.definiteFunctionType(html.HttpRequest, [core.String, HttpRequestTodynamic(), core.bool])}),
+dart.setSignature(html$._HttpRequestUtils, {
+  statics: () => ({get: dart.definiteFunctionType(html$.HttpRequest, [core.String, HttpRequestTodynamic(), core.bool])}),
   names: ['get']
 });
 const _array = Symbol('_array');
-const _current = Symbol('_current');
-html.FixedSizeListIterator$ = dart.generic(T => {
+const _current$4 = Symbol('_current');
+html$.FixedSizeListIterator$ = dart.generic(T => {
   let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
   let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
   class FixedSizeListIterator extends core.Object {
     new(array) {
       this[_array] = array;
-      this[_position] = -1;
-      this[_length] = array[dartx.length];
-      this[_current] = null;
+      this[_position$1] = -1;
+      this[_length$3] = array[dartx.length];
+      this[_current$4] = null;
     }
     moveNext() {
-      let nextPosition = dart.notNull(this[_position]) + 1;
-      if (nextPosition < dart.notNull(this[_length])) {
-        this[_current] = this[_array][dartx._get](nextPosition);
-        this[_position] = nextPosition;
+      let nextPosition = dart.notNull(this[_position$1]) + 1;
+      if (nextPosition < dart.notNull(this[_length$3])) {
+        this[_current$4] = this[_array][dartx._get](nextPosition);
+        this[_position$1] = nextPosition;
         return true;
       }
-      this[_current] = null;
-      this[_position] = this[_length];
+      this[_current$4] = null;
+      this[_position$1] = this[_length$3];
       return false;
     }
     get current() {
-      return this[_current];
+      return this[_current$4];
     }
   }
   dart.addTypeTests(FixedSizeListIterator);
   FixedSizeListIterator[dart.implements] = () => [IteratorOfT()];
   dart.setSignature(FixedSizeListIterator, {
-    constructors: () => ({new: dart.definiteFunctionType(html.FixedSizeListIterator$(T), [ListOfT()])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$.FixedSizeListIterator$(T), [ListOfT()])}),
     fields: () => ({
       [_array]: ListOfT(),
-      [_length]: core.int,
-      [_position]: core.int,
-      [_current]: T
+      [_length$3]: core.int,
+      [_position$1]: core.int,
+      [_current$4]: T
     }),
     getters: () => ({current: dart.definiteFunctionType(T, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
   });
   return FixedSizeListIterator;
 });
-html.FixedSizeListIterator = FixedSizeListIterator();
-html._VariableSizeListIterator$ = dart.generic(T => {
+html$.FixedSizeListIterator = FixedSizeListIterator();
+html$._VariableSizeListIterator$ = dart.generic(T => {
   let IteratorOfT = () => (IteratorOfT = dart.constFn(core.Iterator$(T)))();
   let ListOfT = () => (ListOfT = dart.constFn(core.List$(T)))();
   class _VariableSizeListIterator extends core.Object {
     new(array) {
       this[_array] = array;
-      this[_position] = -1;
-      this[_current] = null;
+      this[_position$1] = -1;
+      this[_current$4] = null;
     }
     moveNext() {
-      let nextPosition = dart.notNull(this[_position]) + 1;
+      let nextPosition = dart.notNull(this[_position$1]) + 1;
       if (nextPosition < dart.notNull(this[_array][dartx.length])) {
-        this[_current] = this[_array][dartx._get](nextPosition);
-        this[_position] = nextPosition;
+        this[_current$4] = this[_array][dartx._get](nextPosition);
+        this[_position$1] = nextPosition;
         return true;
       }
-      this[_current] = null;
-      this[_position] = this[_array][dartx.length];
+      this[_current$4] = null;
+      this[_position$1] = this[_array][dartx.length];
       return false;
     }
     get current() {
-      return this[_current];
+      return this[_current$4];
     }
   }
   dart.addTypeTests(_VariableSizeListIterator);
   _VariableSizeListIterator[dart.implements] = () => [IteratorOfT()];
   dart.setSignature(_VariableSizeListIterator, {
-    constructors: () => ({new: dart.definiteFunctionType(html._VariableSizeListIterator$(T), [ListOfT()])}),
+    constructors: () => ({new: dart.definiteFunctionType(html$._VariableSizeListIterator$(T), [ListOfT()])}),
     fields: () => ({
       [_array]: ListOfT(),
-      [_position]: core.int,
-      [_current]: T
+      [_position$1]: core.int,
+      [_current$4]: T
     }),
     getters: () => ({current: dart.definiteFunctionType(T, [])}),
     methods: () => ({moveNext: dart.definiteFunctionType(core.bool, [])})
   });
   return _VariableSizeListIterator;
 });
-html._VariableSizeListIterator = _VariableSizeListIterator();
-html._convertNativeToDart_Window = function(win) {
+html$._VariableSizeListIterator = _VariableSizeListIterator();
+html$._convertNativeToDart_Window = function(win) {
   if (win == null) return null;
-  return html._DOMWindowCrossFrame._createSafe(win);
+  return html$._DOMWindowCrossFrame._createSafe(win);
 };
-dart.fn(html._convertNativeToDart_Window, dynamicToWindowBase());
-html._convertNativeToDart_EventTarget = function(e) {
+dart.fn(html$._convertNativeToDart_Window, dynamicToWindowBase());
+html$._convertNativeToDart_EventTarget = function(e) {
   if (e == null) {
     return null;
   }
   if ("postMessage" in e) {
-    let window = html._DOMWindowCrossFrame._createSafe(e);
-    if (html.EventTarget.is(window)) {
+    let window = html$._DOMWindowCrossFrame._createSafe(e);
+    if (html$.EventTarget.is(window)) {
       return window;
     }
     return null;
   } else
-    return html.EventTarget._check(e);
+    return html$.EventTarget._check(e);
 };
-dart.fn(html._convertNativeToDart_EventTarget, dynamicToEventTarget());
+dart.fn(html$._convertNativeToDart_EventTarget, dynamicToEventTarget());
 const _window = Symbol('_window');
-html._convertDartToNative_EventTarget = function(e) {
-  if (html._DOMWindowCrossFrame.is(e)) {
-    return html.EventTarget._check(e[_window]);
+html$._convertDartToNative_EventTarget = function(e) {
+  if (html$._DOMWindowCrossFrame.is(e)) {
+    return html$.EventTarget._check(e[_window]);
   } else {
-    return html.EventTarget._check(e);
+    return html$.EventTarget._check(e);
   }
 };
-dart.fn(html._convertDartToNative_EventTarget, dynamicToEventTarget());
-html._convertNativeToDart_XHR_Response = function(o) {
-  if (html.Document.is(o)) {
+dart.fn(html$._convertDartToNative_EventTarget, dynamicToEventTarget());
+html$._convertNativeToDart_XHR_Response = function(o) {
+  if (html$.Document.is(o)) {
     return o;
   }
   return html_common.convertNativeToDart_SerializedScriptValue(o);
 };
-dart.fn(html._convertNativeToDart_XHR_Response, dynamicTodynamic());
-html._callConstructor = function(constructor, interceptor) {
+dart.fn(html$._convertNativeToDart_XHR_Response, dynamicTodynamic$());
+html$._callConstructor = function(constructor, interceptor) {
   return dart.fn(receiver => {
     _js_helper.setNativeSubclassDispatchRecord(receiver, interceptor);
     receiver.constructor = receiver.__proto__.constructor;
     return constructor(receiver);
-  }, dynamicTodynamic());
+  }, dynamicTodynamic$());
 };
-dart.fn(html._callConstructor, dynamicAnddynamicTodynamic());
-html._callAttached = function(receiver) {
+dart.fn(html$._callConstructor, dynamicAnddynamicTodynamic$());
+html$._callAttached = function(receiver) {
   return dart.dsend(receiver, 'attached');
 };
-dart.fn(html._callAttached, dynamicTodynamic());
-html._callDetached = function(receiver) {
+dart.fn(html$._callAttached, dynamicTodynamic$());
+html$._callDetached = function(receiver) {
   return dart.dsend(receiver, 'detached');
 };
-dart.fn(html._callDetached, dynamicTodynamic());
-html._callAttributeChanged = function(receiver, name, oldValue, newValue) {
+dart.fn(html$._callDetached, dynamicTodynamic$());
+html$._callAttributeChanged = function(receiver, name, oldValue, newValue) {
   return dart.dsend(receiver, 'attributeChanged', name, oldValue, newValue);
 };
-dart.fn(html._callAttributeChanged, dynamicAnddynamicAnddynamic__Todynamic());
-html._makeCallbackMethod = function(callback) {
+dart.fn(html$._callAttributeChanged, dynamicAnddynamicAnddynamic__Todynamic());
+html$._makeCallbackMethod = function(callback) {
   return (function(invokeCallback) {
     return function() {
       return invokeCallback(this);
     };
   })(_js_helper.convertDartClosureToJS(dart.dynamic)(callback, 1));
 };
-dart.fn(html._makeCallbackMethod, dynamicTodynamic());
-html._makeCallbackMethod3 = function(callback) {
+dart.fn(html$._makeCallbackMethod, dynamicTodynamic$());
+html$._makeCallbackMethod3 = function(callback) {
   return (function(invokeCallback) {
     return function(arg1, arg2, arg3) {
       return invokeCallback(this, arg1, arg2, arg3);
     };
   })(_js_helper.convertDartClosureToJS(dart.dynamic)(callback, 4));
 };
-dart.fn(html._makeCallbackMethod3, dynamicTodynamic());
-html._registerCustomElement = function(context, document, tag, type, extendsTagName) {
+dart.fn(html$._makeCallbackMethod3, dynamicTodynamic$());
+html$._registerCustomElement = function(context, document, tag, type, extendsTagName) {
   let interceptorClass = _interceptors.findInterceptorConstructorForType(type);
   if (interceptorClass == null) {
     dart.throw(new core.ArgumentError(type));
@@ -98607,7 +98610,7 @@
   if (constructor == null) {
     dart.throw(new core.ArgumentError(dart.str`${type} has no constructor called 'created'`));
   }
-  _interceptors.getNativeInterceptor(html.Element.tag('article'));
+  _interceptors.getNativeInterceptor(html$.Element.tag('article'));
   let baseClassName = core.String._check(_js_helper.findDispatchTagForInterceptorClass(interceptorClass));
   if (baseClassName == null) {
     dart.throw(new core.ArgumentError(type));
@@ -98623,10 +98626,10 @@
   }
   let baseConstructor = context[baseClassName];
   let properties = {};
-  properties.createdCallback = {value: html._makeCallbackMethod(html._callConstructor(constructor, interceptor))};
-  properties.attachedCallback = {value: html._makeCallbackMethod(html._callAttached)};
-  properties.detachedCallback = {value: html._makeCallbackMethod(html._callDetached)};
-  properties.attributeChangedCallback = {value: html._makeCallbackMethod3(html._callAttributeChanged)};
+  properties.createdCallback = {value: html$._makeCallbackMethod(html$._callConstructor(constructor, interceptor))};
+  properties.attachedCallback = {value: html$._makeCallbackMethod(html$._callAttached)};
+  properties.detachedCallback = {value: html$._makeCallbackMethod(html$._callDetached)};
+  properties.attributeChangedCallback = {value: html$._makeCallbackMethod3(html$._callAttributeChanged)};
   let baseProto = baseConstructor.prototype;
   let proto = Object.create(baseProto, properties);
   _js_helper.setNativeSubclassDispatchRecord(proto, interceptor);
@@ -98636,14 +98639,14 @@
   }
   document.registerElement(tag, options);
 };
-dart.fn(html._registerCustomElement, dynamicAnddynamicAndString__Tovoid());
-html._initializeCustomElement = function(e) {
+dart.fn(html$._registerCustomElement, dynamicAnddynamicAndString__Tovoid());
+html$._initializeCustomElement = function(e) {
 };
-dart.fn(html._initializeCustomElement, ElementTovoid());
+dart.fn(html$._initializeCustomElement, ElementTovoid$());
 const _interceptor = Symbol('_interceptor');
 const _constructor = Symbol('_constructor');
 const _nativeType = Symbol('_nativeType');
-html._JSElementUpgrader = class _JSElementUpgrader extends core.Object {
+html$._JSElementUpgrader = class _JSElementUpgrader extends core.Object {
   new(document, type, extendsTag) {
     this[_interceptor] = null;
     this[_constructor] = null;
@@ -98656,7 +98659,7 @@
     if (this[_constructor] == null) {
       dart.throw(new core.ArgumentError(dart.str`${type} has no constructor called 'created'`));
     }
-    _interceptors.getNativeInterceptor(html.Element.tag('article'));
+    _interceptors.getNativeInterceptor(html$.Element.tag('article'));
     let baseClassName = _js_helper.findDispatchTagForInterceptorClass(interceptorClass);
     if (baseClassName == null) {
       dart.throw(new core.ArgumentError(type));
@@ -98665,7 +98668,7 @@
       if (!dart.equals(baseClassName, 'HTMLElement')) {
         dart.throw(new core.UnsupportedError('Class must provide extendsTag if base ' + 'native class is not HtmlElement'));
       }
-      this[_nativeType] = dart.wrapType(html.HtmlElement);
+      this[_nativeType] = dart.wrapType(html$.HtmlElement);
     } else {
       let element = document[dartx.createElement](extendsTag);
       if (!(element instanceof window[baseClassName])) {
@@ -98684,34 +98687,34 @@
     return element;
   }
 };
-html._JSElementUpgrader[dart.implements] = () => [html.ElementUpgrader];
-dart.setSignature(html._JSElementUpgrader, {
-  constructors: () => ({new: dart.definiteFunctionType(html._JSElementUpgrader, [html.Document, core.Type, core.String])}),
+html$._JSElementUpgrader[dart.implements] = () => [html$.ElementUpgrader];
+dart.setSignature(html$._JSElementUpgrader, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._JSElementUpgrader, [html$.Document, core.Type, core.String])}),
   fields: () => ({
     [_interceptor]: dart.dynamic,
     [_constructor]: dart.dynamic,
     [_nativeType]: dart.dynamic
   }),
-  methods: () => ({upgrade: dart.definiteFunctionType(html.Element, [html.Element])})
+  methods: () => ({upgrade: dart.definiteFunctionType(html$.Element, [html$.Element])})
 });
-html._DOMWindowCrossFrame = class _DOMWindowCrossFrame extends core.Object {
+html$._DOMWindowCrossFrame = class _DOMWindowCrossFrame extends core.Object {
   get history() {
-    return html._HistoryCrossFrame._createSafe(this[_window].history);
+    return html$._HistoryCrossFrame._createSafe(this[_window].history);
   }
   get location() {
-    return html._LocationCrossFrame._createSafe(this[_window].location);
+    return html$._LocationCrossFrame._createSafe(this[_window].location);
   }
   get closed() {
     return this[_window].closed;
   }
   get opener() {
-    return html._DOMWindowCrossFrame._createSafe(this[_window].opener);
+    return html$._DOMWindowCrossFrame._createSafe(this[_window].opener);
   }
   get parent() {
-    return html._DOMWindowCrossFrame._createSafe(this[_window].parent);
+    return html$._DOMWindowCrossFrame._createSafe(this[_window].parent);
   }
   get top() {
-    return html._DOMWindowCrossFrame._createSafe(this[_window].top);
+    return html$._DOMWindowCrossFrame._createSafe(this[_window].top);
   }
   close() {
     return this[_window].close();
@@ -98728,10 +98731,10 @@
     this[_window] = window;
   }
   static _createSafe(w) {
-    if (core.identical(w, html.window)) {
-      return html.WindowBase._check(w);
+    if (core.identical(w, html$.window)) {
+      return html$.WindowBase._check(w);
     } else {
-      return new html._DOMWindowCrossFrame(w);
+      return new html$._DOMWindowCrossFrame(w);
     }
   }
   get on() {
@@ -98757,32 +98760,32 @@
     return dart.throw(new core.UnsupportedError('You can only attach EventListeners to your own window.'));
   }
 };
-html._DOMWindowCrossFrame[dart.implements] = () => [html.WindowBase];
-dart.setSignature(html._DOMWindowCrossFrame, {
-  constructors: () => ({new: dart.definiteFunctionType(html._DOMWindowCrossFrame, [dart.dynamic])}),
+html$._DOMWindowCrossFrame[dart.implements] = () => [html$.WindowBase];
+dart.setSignature(html$._DOMWindowCrossFrame, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._DOMWindowCrossFrame, [dart.dynamic])}),
   fields: () => ({[_window]: dart.dynamic}),
   getters: () => ({
-    history: dart.definiteFunctionType(html.HistoryBase, []),
-    location: dart.definiteFunctionType(html.LocationBase, []),
+    history: dart.definiteFunctionType(html$.HistoryBase, []),
+    location: dart.definiteFunctionType(html$.LocationBase, []),
     closed: dart.definiteFunctionType(core.bool, []),
-    opener: dart.definiteFunctionType(html.WindowBase, []),
-    parent: dart.definiteFunctionType(html.WindowBase, []),
-    top: dart.definiteFunctionType(html.WindowBase, []),
-    on: dart.definiteFunctionType(html.Events, [])
+    opener: dart.definiteFunctionType(html$.WindowBase, []),
+    parent: dart.definiteFunctionType(html$.WindowBase, []),
+    top: dart.definiteFunctionType(html$.WindowBase, []),
+    on: dart.definiteFunctionType(html$.Events, [])
   }),
   methods: () => ({
     close: dart.definiteFunctionType(dart.void, []),
     postMessage: dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [core.List]),
-    [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool]),
-    addEventListener: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool]),
-    dispatchEvent: dart.definiteFunctionType(core.bool, [html.Event]),
-    [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool]),
-    removeEventListener: dart.definiteFunctionType(dart.void, [core.String, html.EventListener], [core.bool])
+    [_addEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    addEventListener: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    dispatchEvent: dart.definiteFunctionType(core.bool, [html$.Event]),
+    [_removeEventListener]: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool]),
+    removeEventListener: dart.definiteFunctionType(dart.void, [core.String, html$.EventListener], [core.bool])
   }),
-  statics: () => ({_createSafe: dart.definiteFunctionType(html.WindowBase, [dart.dynamic])}),
+  statics: () => ({_createSafe: dart.definiteFunctionType(html$.WindowBase, [dart.dynamic])}),
   names: ['_createSafe']
 });
-dart.defineExtensionMembers(html._DOMWindowCrossFrame, [
+dart.defineExtensionMembers(html$._DOMWindowCrossFrame, [
   'close',
   'postMessage',
   'history',
@@ -98792,9 +98795,9 @@
   'parent',
   'top'
 ]);
-html._LocationCrossFrame = class _LocationCrossFrame extends core.Object {
+html$._LocationCrossFrame = class _LocationCrossFrame extends core.Object {
   set href(val) {
-    return html._LocationCrossFrame._setHref(this[_location], val);
+    return html$._LocationCrossFrame._setHref(this[_location], val);
   }
   static _setHref(location, val) {
     location.href = val;
@@ -98803,27 +98806,27 @@
     this[_location] = location;
   }
   static _createSafe(location) {
-    if (core.identical(location, html.window[dartx.location])) {
-      return html.LocationBase._check(location);
+    if (core.identical(location, html$.window[dartx.location])) {
+      return html$.LocationBase._check(location);
     } else {
-      return new html._LocationCrossFrame(location);
+      return new html$._LocationCrossFrame(location);
     }
   }
 };
-html._LocationCrossFrame[dart.implements] = () => [html.LocationBase];
-dart.setSignature(html._LocationCrossFrame, {
-  constructors: () => ({new: dart.definiteFunctionType(html._LocationCrossFrame, [dart.dynamic])}),
+html$._LocationCrossFrame[dart.implements] = () => [html$.LocationBase];
+dart.setSignature(html$._LocationCrossFrame, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._LocationCrossFrame, [dart.dynamic])}),
   fields: () => ({[_location]: dart.dynamic}),
   setters: () => ({href: dart.definiteFunctionType(dart.void, [core.String])}),
   statics: () => ({
     _setHref: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]),
-    _createSafe: dart.definiteFunctionType(html.LocationBase, [dart.dynamic])
+    _createSafe: dart.definiteFunctionType(html$.LocationBase, [dart.dynamic])
   }),
   names: ['_setHref', '_createSafe']
 });
-dart.defineExtensionMembers(html._LocationCrossFrame, ['href']);
+dart.defineExtensionMembers(html$._LocationCrossFrame, ['href']);
 const _history = Symbol('_history');
-html._HistoryCrossFrame = class _HistoryCrossFrame extends core.Object {
+html$._HistoryCrossFrame = class _HistoryCrossFrame extends core.Object {
   back() {
     return this[_history].back();
   }
@@ -98837,178 +98840,178 @@
     this[_history] = history;
   }
   static _createSafe(h) {
-    if (core.identical(h, html.window[dartx.history])) {
-      return html.HistoryBase._check(h);
+    if (core.identical(h, html$.window[dartx.history])) {
+      return html$.HistoryBase._check(h);
     } else {
-      return new html._HistoryCrossFrame(h);
+      return new html$._HistoryCrossFrame(h);
     }
   }
 };
-html._HistoryCrossFrame[dart.implements] = () => [html.HistoryBase];
-dart.setSignature(html._HistoryCrossFrame, {
-  constructors: () => ({new: dart.definiteFunctionType(html._HistoryCrossFrame, [dart.dynamic])}),
+html$._HistoryCrossFrame[dart.implements] = () => [html$.HistoryBase];
+dart.setSignature(html$._HistoryCrossFrame, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._HistoryCrossFrame, [dart.dynamic])}),
   fields: () => ({[_history]: dart.dynamic}),
   methods: () => ({
     back: dart.definiteFunctionType(dart.void, []),
     forward: dart.definiteFunctionType(dart.void, []),
     go: dart.definiteFunctionType(dart.void, [core.int])
   }),
-  statics: () => ({_createSafe: dart.definiteFunctionType(html.HistoryBase, [dart.dynamic])}),
+  statics: () => ({_createSafe: dart.definiteFunctionType(html$.HistoryBase, [dart.dynamic])}),
   names: ['_createSafe']
 });
-dart.defineExtensionMembers(html._HistoryCrossFrame, ['back', 'forward', 'go']);
-html.Platform = class Platform extends core.Object {};
-dart.setSignature(html.Platform, {
+dart.defineExtensionMembers(html$._HistoryCrossFrame, ['back', 'forward', 'go']);
+html$.Platform = class Platform extends core.Object {};
+dart.setSignature(html$.Platform, {
   sfields: () => ({
     supportsTypedData: core.bool,
     supportsSimd: core.bool
   })
 });
-html.Platform.supportsSimd = false;
-dart.defineLazy(html.Platform, {
+html$.Platform.supportsSimd = false;
+dart.defineLazy(html$.Platform, {
   get supportsTypedData() {
     return !!window.ArrayBuffer;
   }
 });
-html._wrapZoneCallback$ = dart.generic((A, R) => {
+html$._wrapZoneCallback$ = dart.generic((A, R) => {
   const _wrapZoneCallback = dart.typedef('_wrapZoneCallback', () => dart.functionType(R, [A]));
   return _wrapZoneCallback;
 });
-html._wrapZoneCallback = _wrapZoneCallback();
-html._wrapZoneBinaryCallback$ = dart.generic((A, B, R) => {
+html$._wrapZoneCallback = _wrapZoneCallback();
+html$._wrapZoneBinaryCallback$ = dart.generic((A, B, R) => {
   const _wrapZoneBinaryCallback = dart.typedef('_wrapZoneBinaryCallback', () => dart.functionType(R, [A, B]));
   return _wrapZoneBinaryCallback;
 });
-html._wrapZoneBinaryCallback = _wrapZoneBinaryCallback();
-html._wrapZone = function(A, R) {
+html$._wrapZoneBinaryCallback = _wrapZoneBinaryCallback();
+html$._wrapZone = function(A, R) {
   return callback => {
     if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback;
     if (callback == null) return null;
     return async.Zone.current.bindUnaryCallback(R, A)(callback, {runGuarded: true});
   };
 };
-dart.fn(html._wrapZone, _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R());
-html._wrapBinaryZone = function(A, B, R) {
+dart.fn(html$._wrapZone, _wrapZoneCallbackOfA$RTo_wrapZoneCallbackOfA$R());
+html$._wrapBinaryZone = function(A, B, R) {
   return callback => {
     if (dart.equals(async.Zone.current, async.Zone.ROOT)) return callback;
     if (callback == null) return null;
     return async.Zone.current.bindBinaryCallback(R, A, B)(callback, {runGuarded: true});
   };
 };
-dart.fn(html._wrapBinaryZone, _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R());
-html.query = function(relativeSelectors) {
-  return html.document[dartx.query](relativeSelectors);
+dart.fn(html$._wrapBinaryZone, _wrapZoneBinaryCallbackOfA$B$RTo_wrapZoneBinaryCallbackOfA$B$R());
+html$.query = function(relativeSelectors) {
+  return html$.document[dartx.query](relativeSelectors);
 };
-dart.fn(html.query, StringToElement());
-html.queryAll = function(relativeSelectors) {
-  return html.document[dartx.queryAll](html.Element)(relativeSelectors);
+dart.fn(html$.query, StringToElement());
+html$.queryAll = function(relativeSelectors) {
+  return html$.document[dartx.queryAll](html$.Element)(relativeSelectors);
 };
-dart.fn(html.queryAll, StringToElementListOfElement());
-html.querySelector = function(selectors) {
-  return html.document[dartx.querySelector](selectors);
+dart.fn(html$.queryAll, StringToElementListOfElement());
+html$.querySelector = function(selectors) {
+  return html$.document[dartx.querySelector](selectors);
 };
-dart.fn(html.querySelector, StringToElement());
-html.querySelectorAll = function(selectors) {
-  return html.document[dartx.querySelectorAll](html.Element)(selectors);
+dart.fn(html$.querySelector, StringToElement());
+html$.querySelectorAll = function(selectors) {
+  return html$.document[dartx.querySelectorAll](html$.Element)(selectors);
 };
-dart.fn(html.querySelectorAll, StringToElementListOfElement());
-html.ElementUpgrader = class ElementUpgrader extends core.Object {};
-html.NodeValidator = class NodeValidator extends core.Object {
+dart.fn(html$.querySelectorAll, StringToElementListOfElement());
+html$.ElementUpgrader = class ElementUpgrader extends core.Object {};
+html$.NodeValidator = class NodeValidator extends core.Object {
   static new(opts) {
     let uriPolicy = opts && 'uriPolicy' in opts ? opts.uriPolicy : null;
-    return new html._Html5NodeValidator({uriPolicy: uriPolicy});
+    return new html$._Html5NodeValidator({uriPolicy: uriPolicy});
   }
   static throws(base) {
-    return new html._ThrowsNodeValidator(base);
+    return new html$._ThrowsNodeValidator(base);
   }
 };
-dart.setSignature(html.NodeValidator, {
+dart.setSignature(html$.NodeValidator, {
   constructors: () => ({
-    new: dart.definiteFunctionType(html.NodeValidator, [], {uriPolicy: html.UriPolicy}),
-    throws: dart.definiteFunctionType(html.NodeValidator, [html.NodeValidator])
+    new: dart.definiteFunctionType(html$.NodeValidator, [], {uriPolicy: html$.UriPolicy}),
+    throws: dart.definiteFunctionType(html$.NodeValidator, [html$.NodeValidator])
   })
 });
-html.NodeTreeSanitizer = class NodeTreeSanitizer extends core.Object {
+html$.NodeTreeSanitizer = class NodeTreeSanitizer extends core.Object {
   static new(validator) {
-    return new html._ValidatingTreeSanitizer(validator);
+    return new html$._ValidatingTreeSanitizer(validator);
   }
 };
-dart.setSignature(html.NodeTreeSanitizer, {
-  constructors: () => ({new: dart.definiteFunctionType(html.NodeTreeSanitizer, [html.NodeValidator])}),
-  sfields: () => ({trusted: html._TrustedHtmlTreeSanitizer})
+dart.setSignature(html$.NodeTreeSanitizer, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.NodeTreeSanitizer, [html$.NodeValidator])}),
+  sfields: () => ({trusted: html$._TrustedHtmlTreeSanitizer})
 });
-dart.defineLazy(html.NodeTreeSanitizer, {
+dart.defineLazy(html$.NodeTreeSanitizer, {
   get trusted() {
-    return dart.const(new html._TrustedHtmlTreeSanitizer());
+    return dart.const(new html$._TrustedHtmlTreeSanitizer());
   }
 });
-html._TrustedHtmlTreeSanitizer = class _TrustedHtmlTreeSanitizer extends core.Object {
+html$._TrustedHtmlTreeSanitizer = class _TrustedHtmlTreeSanitizer extends core.Object {
   new() {
   }
   sanitizeTree(node) {}
 };
-html._TrustedHtmlTreeSanitizer[dart.implements] = () => [html.NodeTreeSanitizer];
-dart.setSignature(html._TrustedHtmlTreeSanitizer, {
-  constructors: () => ({new: dart.definiteFunctionType(html._TrustedHtmlTreeSanitizer, [])}),
-  methods: () => ({sanitizeTree: dart.definiteFunctionType(dart.void, [html.Node])})
+html$._TrustedHtmlTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
+dart.setSignature(html$._TrustedHtmlTreeSanitizer, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._TrustedHtmlTreeSanitizer, [])}),
+  methods: () => ({sanitizeTree: dart.definiteFunctionType(dart.void, [html$.Node])})
 });
-html.UriPolicy = class UriPolicy extends core.Object {
+html$.UriPolicy = class UriPolicy extends core.Object {
   static new() {
-    return new html._SameOriginUriPolicy();
+    return new html$._SameOriginUriPolicy();
   }
 };
-dart.setSignature(html.UriPolicy, {
-  constructors: () => ({new: dart.definiteFunctionType(html.UriPolicy, [])})
+dart.setSignature(html$.UriPolicy, {
+  constructors: () => ({new: dart.definiteFunctionType(html$.UriPolicy, [])})
 });
 const _hiddenAnchor = Symbol('_hiddenAnchor');
 const _loc = Symbol('_loc');
-html._SameOriginUriPolicy = class _SameOriginUriPolicy extends core.Object {
+html$._SameOriginUriPolicy = class _SameOriginUriPolicy extends core.Object {
   new() {
-    this[_hiddenAnchor] = html.AnchorElement.new();
-    this[_loc] = html.window[dartx.location];
+    this[_hiddenAnchor] = html$.AnchorElement.new();
+    this[_loc] = html$.window[dartx.location];
   }
   allowsUri(uri) {
     this[_hiddenAnchor][dartx.href] = uri;
     return this[_hiddenAnchor][dartx.hostname] == this[_loc][dartx.hostname] && this[_hiddenAnchor][dartx.port] == this[_loc][dartx.port] && this[_hiddenAnchor][dartx.protocol] == this[_loc][dartx.protocol] || this[_hiddenAnchor][dartx.hostname] == '' && this[_hiddenAnchor][dartx.port] == '' && (this[_hiddenAnchor][dartx.protocol] == ':' || this[_hiddenAnchor][dartx.protocol] == '');
   }
 };
-html._SameOriginUriPolicy[dart.implements] = () => [html.UriPolicy];
-dart.setSignature(html._SameOriginUriPolicy, {
+html$._SameOriginUriPolicy[dart.implements] = () => [html$.UriPolicy];
+dart.setSignature(html$._SameOriginUriPolicy, {
   fields: () => ({
-    [_hiddenAnchor]: html.AnchorElement,
-    [_loc]: html.Location
+    [_hiddenAnchor]: html$.AnchorElement,
+    [_loc]: html$.Location
   }),
   methods: () => ({allowsUri: dart.definiteFunctionType(core.bool, [core.String])})
 });
-html._ThrowsNodeValidator = class _ThrowsNodeValidator extends core.Object {
+html$._ThrowsNodeValidator = class _ThrowsNodeValidator extends core.Object {
   new(validator) {
     this.validator = validator;
   }
   allowsElement(element) {
     if (!dart.test(this.validator.allowsElement(element))) {
-      dart.throw(new core.ArgumentError(html.Element._safeTagName(element)));
+      dart.throw(new core.ArgumentError(html$.Element._safeTagName(element)));
     }
     return true;
   }
   allowsAttribute(element, attributeName, value) {
     if (!dart.test(this.validator.allowsAttribute(element, attributeName, value))) {
-      dart.throw(new core.ArgumentError(dart.str`${html.Element._safeTagName(element)}[${attributeName}="${value}"]`));
+      dart.throw(new core.ArgumentError(dart.str`${html$.Element._safeTagName(element)}[${attributeName}="${value}"]`));
     }
   }
 };
-html._ThrowsNodeValidator[dart.implements] = () => [html.NodeValidator];
-dart.setSignature(html._ThrowsNodeValidator, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ThrowsNodeValidator, [html.NodeValidator])}),
-  fields: () => ({validator: html.NodeValidator}),
+html$._ThrowsNodeValidator[dart.implements] = () => [html$.NodeValidator];
+dart.setSignature(html$._ThrowsNodeValidator, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ThrowsNodeValidator, [html$.NodeValidator])}),
+  fields: () => ({validator: html$.NodeValidator}),
   methods: () => ({
-    allowsElement: dart.definiteFunctionType(core.bool, [html.Element]),
-    allowsAttribute: dart.definiteFunctionType(core.bool, [html.Element, core.String, core.String])
+    allowsElement: dart.definiteFunctionType(core.bool, [html$.Element]),
+    allowsAttribute: dart.definiteFunctionType(core.bool, [html$.Element, core.String, core.String])
   })
 });
 const _removeNode = Symbol('_removeNode');
 const _sanitizeElement = Symbol('_sanitizeElement');
 const _sanitizeUntrustedElement = Symbol('_sanitizeUntrustedElement');
-html._ValidatingTreeSanitizer = class _ValidatingTreeSanitizer extends core.Object {
+html$._ValidatingTreeSanitizer = class _ValidatingTreeSanitizer extends core.Object {
   new(validator) {
     this.validator = validator;
   }
@@ -99039,8 +99042,8 @@
     try {
       attrs = dart.dload(element, 'attributes');
       isAttr = dart.dindex(attrs, 'is');
-      let corruptedTest1 = html.Element._hasCorruptedAttributes(html.Element._check(element));
-      corrupted = dart.test(corruptedTest1) ? true : html.Element._hasCorruptedAttributesAdditionalCheck(html.Element._check(element));
+      let corruptedTest1 = html$.Element._hasCorruptedAttributes(html$.Element._check(element));
+      corrupted = dart.test(corruptedTest1) ? true : html$.Element._hasCorruptedAttributesAdditionalCheck(html$.Element._check(element));
     } catch (e) {
     }
 
@@ -99051,15 +99054,15 @@
     }
 
     try {
-      let elementTagName = html.Element._safeTagName(element);
-      this[_sanitizeElement](html.Element._check(element), parent, corrupted, elementText, elementTagName, core.Map._check(attrs), core.String._check(isAttr));
+      let elementTagName = html$.Element._safeTagName(element);
+      this[_sanitizeElement](html$.Element._check(element), parent, corrupted, elementText, elementTagName, core.Map._check(attrs), core.String._check(isAttr));
     } catch (e$) {
       if (core.ArgumentError.is(e$)) {
         throw e$;
       } else {
         let e = e$;
-        this[_removeNode](html.Node._check(element), parent);
-        html.window[dartx.console].warn(dart.str`Removing corrupted element ${elementText}`);
+        this[_removeNode](html$.Node._check(element), parent);
+        html$.window[dartx.console].warn(dart.str`Removing corrupted element ${elementText}`);
       }
     }
 
@@ -99067,18 +99070,18 @@
   [_sanitizeElement](element, parent, corrupted, text, tag, attrs, isAttr) {
     if (false != corrupted) {
       this[_removeNode](element, parent);
-      html.window[dartx.console].warn(dart.str`Removing element due to corrupted attributes on <${text}>`);
+      html$.window[dartx.console].warn(dart.str`Removing element due to corrupted attributes on <${text}>`);
       return;
     }
     if (!dart.test(this.validator.allowsElement(element))) {
       this[_removeNode](element, parent);
-      html.window[dartx.console].warn(dart.str`Removing disallowed element <${tag}> from ${parent}`);
+      html$.window[dartx.console].warn(dart.str`Removing disallowed element <${tag}> from ${parent}`);
       return;
     }
     if (isAttr != null) {
       if (!dart.test(this.validator.allowsAttribute(element, 'is', isAttr))) {
         this[_removeNode](element, parent);
-        html.window[dartx.console].warn('Removing disallowed type extension ' + dart.str`<${tag} is="${isAttr}">`);
+        html$.window[dartx.console].warn('Removing disallowed type extension ' + dart.str`<${tag} is="${isAttr}">`);
         return;
       }
     }
@@ -99086,26 +99089,26 @@
     for (let i = dart.notNull(attrs[dartx.length]) - 1; i >= 0; --i) {
       let name = keys[dartx._get](i);
       if (!dart.test(this.validator.allowsAttribute(element, core.String._check(dart.dsend(name, 'toLowerCase')), core.String._check(attrs[dartx._get](name))))) {
-        html.window[dartx.console].warn('Removing disallowed attribute ' + dart.str`<${tag} ${name}="${attrs[dartx._get](name)}">`);
+        html$.window[dartx.console].warn('Removing disallowed attribute ' + dart.str`<${tag} ${name}="${attrs[dartx._get](name)}">`);
         attrs[dartx.remove](name);
       }
     }
-    if (html.TemplateElement.is(element)) {
+    if (html$.TemplateElement.is(element)) {
       let template = element;
       this.sanitizeTree(template[dartx.content]);
     }
   }
   sanitizeNode(node, parent) {
     switch (node[dartx.nodeType]) {
-      case html.Node.ELEMENT_NODE:
+      case html$.Node.ELEMENT_NODE:
       {
         this[_sanitizeUntrustedElement](node, parent);
         break;
       }
-      case html.Node.COMMENT_NODE:
-      case html.Node.DOCUMENT_FRAGMENT_NODE:
-      case html.Node.TEXT_NODE:
-      case html.Node.CDATA_SECTION_NODE:
+      case html$.Node.COMMENT_NODE:
+      case html$.Node.DOCUMENT_FRAGMENT_NODE:
+      case html$.Node.TEXT_NODE:
+      case html$.Node.CDATA_SECTION_NODE:
       {
         break;
       }
@@ -99116,26 +99119,26 @@
     }
   }
 };
-html._ValidatingTreeSanitizer[dart.implements] = () => [html.NodeTreeSanitizer];
-dart.setSignature(html._ValidatingTreeSanitizer, {
-  constructors: () => ({new: dart.definiteFunctionType(html._ValidatingTreeSanitizer, [html.NodeValidator])}),
-  fields: () => ({validator: html.NodeValidator}),
+html$._ValidatingTreeSanitizer[dart.implements] = () => [html$.NodeTreeSanitizer];
+dart.setSignature(html$._ValidatingTreeSanitizer, {
+  constructors: () => ({new: dart.definiteFunctionType(html$._ValidatingTreeSanitizer, [html$.NodeValidator])}),
+  fields: () => ({validator: html$.NodeValidator}),
   methods: () => ({
-    sanitizeTree: dart.definiteFunctionType(dart.void, [html.Node]),
-    [_removeNode]: dart.definiteFunctionType(dart.void, [html.Node, html.Node]),
-    [_sanitizeUntrustedElement]: dart.definiteFunctionType(dart.void, [dart.dynamic, html.Node]),
-    [_sanitizeElement]: dart.definiteFunctionType(dart.void, [html.Element, html.Node, core.bool, core.String, core.String, core.Map, core.String]),
-    sanitizeNode: dart.definiteFunctionType(dart.void, [html.Node, html.Node])
+    sanitizeTree: dart.definiteFunctionType(dart.void, [html$.Node]),
+    [_removeNode]: dart.definiteFunctionType(dart.void, [html$.Node, html$.Node]),
+    [_sanitizeUntrustedElement]: dart.definiteFunctionType(dart.void, [dart.dynamic, html$.Node]),
+    [_sanitizeElement]: dart.definiteFunctionType(dart.void, [html$.Element, html$.Node, core.bool, core.String, core.String, core.Map, core.String]),
+    sanitizeNode: dart.definiteFunctionType(dart.void, [html$.Node, html$.Node])
   })
 });
 html_common.convertDartToNative_SerializedScriptValue = function(value) {
   return html_common.convertDartToNative_PrepareForStructuredClone(value);
 };
-dart.fn(html_common.convertDartToNative_SerializedScriptValue, dynamicTodynamic());
+dart.fn(html_common.convertDartToNative_SerializedScriptValue, dynamicTodynamic$());
 html_common.convertNativeToDart_SerializedScriptValue = function(object) {
   return html_common.convertNativeToDart_AcceptStructuredClone(object, {mustCopy: true});
 };
-dart.fn(html_common.convertNativeToDart_SerializedScriptValue, dynamicTodynamic());
+dart.fn(html_common.convertNativeToDart_SerializedScriptValue, dynamicTodynamic$());
 html_common._StructuredClone = class _StructuredClone extends core.Object {
   new() {
     this.values = [];
@@ -99168,10 +99171,10 @@
     if (core.RegExp.is(e)) {
       dart.throw(new core.UnimplementedError('structured clone of RegExp'));
     }
-    if (html.File.is(e)) return e;
-    if (html.Blob.is(e)) return e;
-    if (html.FileList.is(e)) return e;
-    if (html.ImageData.is(e)) return e;
+    if (html$.File.is(e)) return e;
+    if (html$.Blob.is(e)) return e;
+    if (html$.FileList.is(e)) return e;
+    if (html$.ImageData.is(e)) return e;
     if (dart.test(this.cloneNotRequired(e))) return e;
     if (core.Map.is(e)) {
       let slot = this.findSlot(e);
@@ -99265,7 +99268,7 @@
       if (copy != null) return copy;
       copy = dart.map();
       this.writeSlot(slot, copy);
-      this.forEachJsField(e, dart.fn((key, value) => dart.dsetindex(copy, key, this.walk(value)), dynamicAnddynamicTodynamic()));
+      this.forEachJsField(e, dart.fn((key, value) => dart.dsetindex(copy, key, this.walk(value)), dynamicAnddynamicTodynamic$()));
       return copy;
     }
     if (dart.test(html_common.isJavaScriptArray(e))) {
@@ -99330,7 +99333,7 @@
 html_common.convertNativeToDart_ContextAttributes = function(nativeContextAttributes) {
   return new html_common.ContextAttributes(nativeContextAttributes.alpha, nativeContextAttributes.antialias, nativeContextAttributes.depth, nativeContextAttributes.failIfMajorPerformanceCaveat, nativeContextAttributes.premultipliedAlpha, nativeContextAttributes.preserveDrawingBuffer, nativeContextAttributes.stencil);
 };
-dart.fn(html_common.convertNativeToDart_ContextAttributes, dynamicTodynamic());
+dart.fn(html_common.convertNativeToDart_ContextAttributes, dynamicTodynamic$());
 html_common._TypedImageData = class _TypedImageData extends core.Object {
   new(data, height, width) {
     this.data = data;
@@ -99338,7 +99341,7 @@
     this.width = width;
   }
 };
-html_common._TypedImageData[dart.implements] = () => [html.ImageData];
+html_common._TypedImageData[dart.implements] = () => [html$.ImageData];
 dart.setSignature(html_common._TypedImageData, {
   constructors: () => ({new: dart.definiteFunctionType(html_common._TypedImageData, [typed_data.Uint8ClampedList, core.int, core.int])}),
   fields: () => ({
@@ -99349,7 +99352,7 @@
 });
 html_common.convertNativeToDart_ImageData = function(nativeImageData) {
   0;
-  if (html.ImageData.is(nativeImageData)) {
+  if (html$.ImageData.is(nativeImageData)) {
     let data = nativeImageData[dartx.data];
     if (data.constructor === Array) {
       if (typeof CanvasPixelArray !== "undefined") {
@@ -99411,7 +99414,7 @@
 html_common.convertDartToNative_PrepareForStructuredClone = function(value) {
   return new html_common._StructuredCloneDart2Js().convertDartToNative_PrepareForStructuredClone(value);
 };
-dart.fn(html_common.convertDartToNative_PrepareForStructuredClone, dynamicTodynamic());
+dart.fn(html_common.convertDartToNative_PrepareForStructuredClone, dynamicTodynamic$());
 html_common.convertNativeToDart_AcceptStructuredClone = function(object, opts) {
   let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
   return new html_common._AcceptStructuredCloneDart2Js().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
@@ -99472,39 +99475,39 @@
 html_common.isJavaScriptDate = function(value) {
   return value instanceof Date;
 };
-dart.fn(html_common.isJavaScriptDate, dynamicTobool());
+dart.fn(html_common.isJavaScriptDate, dynamicTobool$());
 html_common.isJavaScriptRegExp = function(value) {
   return value instanceof RegExp;
 };
-dart.fn(html_common.isJavaScriptRegExp, dynamicTobool());
+dart.fn(html_common.isJavaScriptRegExp, dynamicTobool$());
 html_common.isJavaScriptArray = function(value) {
   return value instanceof Array;
 };
-dart.fn(html_common.isJavaScriptArray, dynamicTobool());
+dart.fn(html_common.isJavaScriptArray, dynamicTobool$());
 html_common.isJavaScriptSimpleObject = function(value) {
   let proto = Object.getPrototypeOf(value);
   return proto === Object.prototype || proto === null;
 };
-dart.fn(html_common.isJavaScriptSimpleObject, dynamicTobool());
+dart.fn(html_common.isJavaScriptSimpleObject, dynamicTobool$());
 html_common.isImmutableJavaScriptArray = function(value) {
   return !!value.immutable$list;
 };
-dart.fn(html_common.isImmutableJavaScriptArray, dynamicTobool());
+dart.fn(html_common.isImmutableJavaScriptArray, dynamicTobool$());
 html_common.isJavaScriptPromise = function(value) {
   return typeof Promise != "undefined" && value instanceof Promise;
 };
-dart.fn(html_common.isJavaScriptPromise, dynamicTobool());
+dart.fn(html_common.isJavaScriptPromise, dynamicTobool$());
 html_common.convertNativePromiseToDartFuture = function(promise) {
   let completer = async.Completer.new();
-  let then = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.complete(result), dynamicTovoid()), 1);
-  let error = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.completeError(result), dynamicTovoid()), 1);
+  let then = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.complete(result), dynamicTovoid$()), 1);
+  let error = _js_helper.convertDartClosureToJS(dynamicTovoid())(dart.fn(result => completer.completeError(result), dynamicTovoid$()), 1);
   let newPromise = promise.then(then).catch(error);
   return completer.future;
 };
 dart.fn(html_common.convertNativePromiseToDartFuture, dynamicToFuture());
 html_common.Device = class Device extends core.Object {
   static get userAgent() {
-    return html.window[dartx.navigator][dartx.userAgent];
+    return html$.window[dartx.navigator][dartx.userAgent];
   }
   static get isOpera() {
     if (html_common.Device._isOpera == null) {
@@ -99560,8 +99563,8 @@
   }
   static isEventTypeSupported(eventType) {
     try {
-      let e = html.Event.eventType(eventType, '');
-      return html.Event.is(e);
+      let e = html$.Event.eventType(eventType, '');
+      return html$.Event.is(e);
     } catch (_) {
     }
 
@@ -99597,18 +99600,18 @@
 html_common.Device._cachedPropertyPrefix = null;
 const _childNodes = Symbol('_childNodes');
 const _node = Symbol('_node');
-const _iterable = Symbol('_iterable');
+const _iterable$0 = Symbol('_iterable');
 const _filtered = Symbol('_filtered');
-html_common.FilteredElementList = class FilteredElementList extends collection.ListBase$(html.Element) {
+html_common.FilteredElementList = class FilteredElementList extends collection.ListBase$(html$.Element) {
   new(node) {
     this[_childNodes] = node[dartx.nodes];
     this[_node] = node;
   }
-  get [_iterable]() {
-    return this[_childNodes][dartx.where](dart.fn(n => html.Element.is(n), NodeTobool()))[dartx.map](html.Element)(dart.fn(n => html.Element.as(n), NodeToElement()));
+  get [_iterable$0]() {
+    return this[_childNodes][dartx.where](dart.fn(n => html$.Element.is(n), NodeTobool$()))[dartx.map](html$.Element)(dart.fn(n => html$.Element.as(n), NodeToElement()));
   }
   get [_filtered]() {
-    return ListOfElement().from(this[_iterable], {growable: false});
+    return ListOfElement().from(this[_iterable$0], {growable: false});
   }
   forEach(f) {
     this[_filtered][dartx.forEach](f);
@@ -99635,8 +99638,8 @@
     }
   }
   contains(needle) {
-    if (!html.Element.is(needle)) return false;
-    let element = html.Element._check(needle);
+    if (!html$.Element.is(needle)) return false;
+    let element = html$.Element._check(needle);
     return dart.equals(element[dartx.parentNode], this[_node]);
   }
   get reversed() {
@@ -99658,13 +99661,13 @@
     dart.throw(new core.UnsupportedError('Cannot replaceRange on filtered list'));
   }
   removeRange(start, end) {
-    core.List.from(this[_iterable][dartx.skip](start)[dartx.take](dart.notNull(end) - dart.notNull(start)))[dartx.forEach](dart.fn(el => dart.dsend(el, 'remove'), dynamicTovoid()));
+    core.List.from(this[_iterable$0][dartx.skip](start)[dartx.take](dart.notNull(end) - dart.notNull(start)))[dartx.forEach](dart.fn(el => dart.dsend(el, 'remove'), dynamicTovoid$()));
   }
   clear() {
     this[_childNodes][dartx.clear]();
   }
   removeLast() {
-    let result = this[_iterable][dartx.last];
+    let result = this[_iterable$0][dartx.last];
     if (result != null) {
       result[dartx.remove]();
     }
@@ -99674,7 +99677,7 @@
     if (index == this.length) {
       this.add(value);
     } else {
-      let element = this[_iterable][dartx.elementAt](index);
+      let element = this[_iterable$0][dartx.elementAt](index);
       element[dartx.parentNode][dartx.insertBefore](value, element);
     }
   }
@@ -99682,7 +99685,7 @@
     if (index == this.length) {
       this.addAll(iterable);
     } else {
-      let element = this[_iterable][dartx.elementAt](index);
+      let element = this[_iterable$0][dartx.elementAt](index);
       element[dartx.parentNode][dartx.insertAllBefore](iterable, element);
     }
   }
@@ -99692,19 +99695,19 @@
     return result;
   }
   remove(element) {
-    if (!html.Element.is(element)) return false;
+    if (!html$.Element.is(element)) return false;
     if (dart.test(this.contains(element))) {
-      html.Element.as(element)[dartx.remove]();
+      html$.Element.as(element)[dartx.remove]();
       return true;
     } else {
       return false;
     }
   }
   get length() {
-    return this[_iterable][dartx.length];
+    return this[_iterable$0][dartx.length];
   }
   _get(index) {
-    return this[_iterable][dartx.elementAt](index);
+    return this[_iterable$0][dartx.elementAt](index);
   }
   get iterator() {
     return this[_filtered][dartx.iterator];
@@ -99716,21 +99719,21 @@
 dart.addSimpleTypeTests(html_common.FilteredElementList);
 html_common.FilteredElementList[dart.implements] = () => [html_common.NodeListWrapper];
 dart.setSignature(html_common.FilteredElementList, {
-  constructors: () => ({new: dart.definiteFunctionType(html_common.FilteredElementList, [html.Node])}),
+  constructors: () => ({new: dart.definiteFunctionType(html_common.FilteredElementList, [html$.Node])}),
   fields: () => ({
-    [_node]: html.Node,
+    [_node]: html$.Node,
     [_childNodes]: ListOfNode()
   }),
   getters: () => ({
-    [_iterable]: dart.definiteFunctionType(core.Iterable$(html.Element), []),
-    [_filtered]: dart.definiteFunctionType(core.List$(html.Element), []),
+    [_iterable$0]: dart.definiteFunctionType(core.Iterable$(html$.Element), []),
+    [_filtered]: dart.definiteFunctionType(core.List$(html$.Element), []),
     length: dart.definiteFunctionType(core.int, []),
-    rawList: dart.definiteFunctionType(core.List$(html.Node), [])
+    rawList: dart.definiteFunctionType(core.List$(html$.Node), [])
   }),
   setters: () => ({length: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    _set: dart.definiteFunctionType(dart.void, [core.int, html.Element]),
-    _get: dart.definiteFunctionType(html.Element, [core.int])
+    _set: dart.definiteFunctionType(dart.void, [core.int, html$.Element]),
+    _get: dart.definiteFunctionType(html$.Element, [core.int])
   })
 });
 dart.defineExtensionMembers(html_common.FilteredElementList, [
@@ -99804,17 +99807,17 @@
   names: ['indexOf', 'lastIndexOf', 'getRange']
 });
 html_common.NodeListWrapper = class NodeListWrapper extends core.Object {};
-svg._SvgElementFactoryProvider = class _SvgElementFactoryProvider extends core.Object {
+svg$._SvgElementFactoryProvider = class _SvgElementFactoryProvider extends core.Object {
   static createSvgElement_tag(tag) {
-    let temp = html.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag);
-    return svg.SvgElement._check(temp);
+    let temp = html$.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag);
+    return svg$.SvgElement._check(temp);
   }
 };
-dart.setSignature(svg._SvgElementFactoryProvider, {
-  statics: () => ({createSvgElement_tag: dart.definiteFunctionType(svg.SvgElement, [core.String])}),
+dart.setSignature(svg$._SvgElementFactoryProvider, {
+  statics: () => ({createSvgElement_tag: dart.definiteFunctionType(svg$.SvgElement, [core.String])}),
   names: ['createSvgElement_tag']
 });
-const _children = Symbol('_children');
+const _children$ = Symbol('_children');
 const _svgClassName = Symbol('_svgClassName');
 dart.defineExtensionNames([
   'classes',
@@ -99886,29 +99889,29 @@
   'ownerSvgElement',
   'viewportElement'
 ]);
-svg.SvgElement = class SvgElement extends html.Element {
+svg$.SvgElement = class SvgElement extends html$.Element {
   static tag(tag) {
-    return svg.SvgElement._check(html.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag));
+    return svg$.SvgElement._check(html$.document[dartx.createElementNS]("http://www.w3.org/2000/svg", tag));
   }
   static svg(svg, opts) {
     let validator = opts && 'validator' in opts ? opts.validator : null;
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
     if (validator == null && treeSanitizer == null) {
-      validator = new html.NodeValidatorBuilder.common();
+      validator = new html$.NodeValidatorBuilder.common();
       validator.allowSvg();
     }
-    let match = svg.SvgElement._START_TAG_REGEXP.firstMatch(svg);
+    let match = svg$.SvgElement._START_TAG_REGEXP.firstMatch(svg);
     let parentElement = null;
     if (match != null && match.group(1)[dartx.toLowerCase]() == 'svg') {
-      parentElement = html.document[dartx.body];
+      parentElement = html$.document[dartx.body];
     } else {
-      parentElement = svg.SvgSvgElement.new();
+      parentElement = svg$.SvgSvgElement.new();
     }
     let fragment = dart.dsend(parentElement, 'createFragment', svg, {validator: validator, treeSanitizer: treeSanitizer});
-    return svg.SvgElement._check(dart.dload(dart.dsend(dart.dload(fragment, 'nodes'), 'where', dart.fn(e => svg.SvgElement.is(e), dynamicTobool())), 'single'));
+    return svg$.SvgElement._check(dart.dload(dart.dsend(dart.dload(fragment, 'nodes'), 'where', dart.fn(e => svg$.SvgElement.is(e), dynamicTobool$())), 'single'));
   }
   get [dartx.classes]() {
-    return new svg._AttributeClassSet(this);
+    return new svg$._AttributeClassSet(this);
   }
   set [dartx.classes](value) {
     super[dartx.classes] = value;
@@ -99922,14 +99925,14 @@
     children[dartx.addAll](value);
   }
   get [dartx.outerHtml]() {
-    let container = html.Element.tag("div");
-    let cloned = svg.SvgElement._check(this[dartx.clone](true));
+    let container = html$.Element.tag("div");
+    let cloned = svg$.SvgElement._check(this[dartx.clone](true));
     container[dartx.children][dartx.add](cloned);
     return container[dartx.innerHtml];
   }
   get [dartx.innerHtml]() {
-    let container = html.Element.tag("div");
-    let cloned = svg.SvgElement._check(this[dartx.clone](true));
+    let container = html$.Element.tag("div");
+    let cloned = svg$.SvgElement._check(this[dartx.clone](true));
     container[dartx.children][dartx.addAll](cloned[dartx.children]);
     return container[dartx.innerHtml];
   }
@@ -99941,14 +99944,14 @@
     let treeSanitizer = opts && 'treeSanitizer' in opts ? opts.treeSanitizer : null;
     if (treeSanitizer == null) {
       if (validator == null) {
-        validator = new html.NodeValidatorBuilder.common();
+        validator = new html$.NodeValidatorBuilder.common();
         validator.allowSvg();
       }
-      treeSanitizer = html.NodeTreeSanitizer.new(validator);
+      treeSanitizer = html$.NodeTreeSanitizer.new(validator);
     }
     let html = dart.str`<svg version="1.1">${svg}</svg>`;
-    let fragment = html.document[dartx.body][dartx.createFragment](html, {treeSanitizer: treeSanitizer});
-    let svgFragment = html.DocumentFragment.new();
+    let fragment = html$.document[dartx.body][dartx.createFragment](html, {treeSanitizer: treeSanitizer});
+    let svgFragment = html$.DocumentFragment.new();
     let root = fragment[dartx.nodes][dartx.single];
     while (root[dartx.firstChild] != null) {
       svgFragment[dartx.append](root[dartx.firstChild]);
@@ -99966,7 +99969,7 @@
   [dartx.insertAdjacentElement](where, element) {
     dart.throw(new core.UnsupportedError("Cannot invoke insertAdjacentElement on SVG."));
   }
-  get [_children]() {
+  get [_children$]() {
     dart.throw(new core.UnsupportedError("Cannot get _children on SVG."));
   }
   get [dartx.isContentEditable]() {
@@ -99976,8 +99979,8 @@
     dart.throw(new core.UnsupportedError("Cannot invoke click SVG."));
   }
   static isTagSupported(tag) {
-    let e = svg.SvgElement.tag(tag);
-    return svg.SvgElement.is(e) && !html.UnknownElement.is(e);
+    let e = svg$.SvgElement.tag(tag);
+    return svg$.SvgElement.is(e) && !html$.UnknownElement.is(e);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -100003,178 +100006,178 @@
     return this.focus.apply(this, args);
   }
   get [dartx.onAbort]() {
-    return svg.SvgElement.abortEvent.forElement(this);
+    return svg$.SvgElement.abortEvent.forElement(this);
   }
   get [dartx.onBlur]() {
-    return svg.SvgElement.blurEvent.forElement(this);
+    return svg$.SvgElement.blurEvent.forElement(this);
   }
   get [dartx.onCanPlay]() {
-    return svg.SvgElement.canPlayEvent.forElement(this);
+    return svg$.SvgElement.canPlayEvent.forElement(this);
   }
   get [dartx.onCanPlayThrough]() {
-    return svg.SvgElement.canPlayThroughEvent.forElement(this);
+    return svg$.SvgElement.canPlayThroughEvent.forElement(this);
   }
   get [dartx.onChange]() {
-    return svg.SvgElement.changeEvent.forElement(this);
+    return svg$.SvgElement.changeEvent.forElement(this);
   }
   get [dartx.onClick]() {
-    return svg.SvgElement.clickEvent.forElement(this);
+    return svg$.SvgElement.clickEvent.forElement(this);
   }
   get [dartx.onContextMenu]() {
-    return svg.SvgElement.contextMenuEvent.forElement(this);
+    return svg$.SvgElement.contextMenuEvent.forElement(this);
   }
   get [dartx.onDoubleClick]() {
-    return svg.SvgElement.doubleClickEvent.forElement(this);
+    return svg$.SvgElement.doubleClickEvent.forElement(this);
   }
   get [dartx.onDrag]() {
-    return svg.SvgElement.dragEvent.forElement(this);
+    return svg$.SvgElement.dragEvent.forElement(this);
   }
   get [dartx.onDragEnd]() {
-    return svg.SvgElement.dragEndEvent.forElement(this);
+    return svg$.SvgElement.dragEndEvent.forElement(this);
   }
   get [dartx.onDragEnter]() {
-    return svg.SvgElement.dragEnterEvent.forElement(this);
+    return svg$.SvgElement.dragEnterEvent.forElement(this);
   }
   get [dartx.onDragLeave]() {
-    return svg.SvgElement.dragLeaveEvent.forElement(this);
+    return svg$.SvgElement.dragLeaveEvent.forElement(this);
   }
   get [dartx.onDragOver]() {
-    return svg.SvgElement.dragOverEvent.forElement(this);
+    return svg$.SvgElement.dragOverEvent.forElement(this);
   }
   get [dartx.onDragStart]() {
-    return svg.SvgElement.dragStartEvent.forElement(this);
+    return svg$.SvgElement.dragStartEvent.forElement(this);
   }
   get [dartx.onDrop]() {
-    return svg.SvgElement.dropEvent.forElement(this);
+    return svg$.SvgElement.dropEvent.forElement(this);
   }
   get [dartx.onDurationChange]() {
-    return svg.SvgElement.durationChangeEvent.forElement(this);
+    return svg$.SvgElement.durationChangeEvent.forElement(this);
   }
   get [dartx.onEmptied]() {
-    return svg.SvgElement.emptiedEvent.forElement(this);
+    return svg$.SvgElement.emptiedEvent.forElement(this);
   }
   get [dartx.onEnded]() {
-    return svg.SvgElement.endedEvent.forElement(this);
+    return svg$.SvgElement.endedEvent.forElement(this);
   }
   get [dartx.onError]() {
-    return svg.SvgElement.errorEvent.forElement(this);
+    return svg$.SvgElement.errorEvent.forElement(this);
   }
   get [dartx.onFocus]() {
-    return svg.SvgElement.focusEvent.forElement(this);
+    return svg$.SvgElement.focusEvent.forElement(this);
   }
   get [dartx.onInput]() {
-    return svg.SvgElement.inputEvent.forElement(this);
+    return svg$.SvgElement.inputEvent.forElement(this);
   }
   get [dartx.onInvalid]() {
-    return svg.SvgElement.invalidEvent.forElement(this);
+    return svg$.SvgElement.invalidEvent.forElement(this);
   }
   get [dartx.onKeyDown]() {
-    return svg.SvgElement.keyDownEvent.forElement(this);
+    return svg$.SvgElement.keyDownEvent.forElement(this);
   }
   get [dartx.onKeyPress]() {
-    return svg.SvgElement.keyPressEvent.forElement(this);
+    return svg$.SvgElement.keyPressEvent.forElement(this);
   }
   get [dartx.onKeyUp]() {
-    return svg.SvgElement.keyUpEvent.forElement(this);
+    return svg$.SvgElement.keyUpEvent.forElement(this);
   }
   get [dartx.onLoad]() {
-    return svg.SvgElement.loadEvent.forElement(this);
+    return svg$.SvgElement.loadEvent.forElement(this);
   }
   get [dartx.onLoadedData]() {
-    return svg.SvgElement.loadedDataEvent.forElement(this);
+    return svg$.SvgElement.loadedDataEvent.forElement(this);
   }
   get [dartx.onLoadedMetadata]() {
-    return svg.SvgElement.loadedMetadataEvent.forElement(this);
+    return svg$.SvgElement.loadedMetadataEvent.forElement(this);
   }
   get [dartx.onMouseDown]() {
-    return svg.SvgElement.mouseDownEvent.forElement(this);
+    return svg$.SvgElement.mouseDownEvent.forElement(this);
   }
   get [dartx.onMouseEnter]() {
-    return svg.SvgElement.mouseEnterEvent.forElement(this);
+    return svg$.SvgElement.mouseEnterEvent.forElement(this);
   }
   get [dartx.onMouseLeave]() {
-    return svg.SvgElement.mouseLeaveEvent.forElement(this);
+    return svg$.SvgElement.mouseLeaveEvent.forElement(this);
   }
   get [dartx.onMouseMove]() {
-    return svg.SvgElement.mouseMoveEvent.forElement(this);
+    return svg$.SvgElement.mouseMoveEvent.forElement(this);
   }
   get [dartx.onMouseOut]() {
-    return svg.SvgElement.mouseOutEvent.forElement(this);
+    return svg$.SvgElement.mouseOutEvent.forElement(this);
   }
   get [dartx.onMouseOver]() {
-    return svg.SvgElement.mouseOverEvent.forElement(this);
+    return svg$.SvgElement.mouseOverEvent.forElement(this);
   }
   get [dartx.onMouseUp]() {
-    return svg.SvgElement.mouseUpEvent.forElement(this);
+    return svg$.SvgElement.mouseUpEvent.forElement(this);
   }
   get [dartx.onMouseWheel]() {
-    return svg.SvgElement.mouseWheelEvent.forElement(this);
+    return svg$.SvgElement.mouseWheelEvent.forElement(this);
   }
   get [dartx.onPause]() {
-    return svg.SvgElement.pauseEvent.forElement(this);
+    return svg$.SvgElement.pauseEvent.forElement(this);
   }
   get [dartx.onPlay]() {
-    return svg.SvgElement.playEvent.forElement(this);
+    return svg$.SvgElement.playEvent.forElement(this);
   }
   get [dartx.onPlaying]() {
-    return svg.SvgElement.playingEvent.forElement(this);
+    return svg$.SvgElement.playingEvent.forElement(this);
   }
   get [dartx.onRateChange]() {
-    return svg.SvgElement.rateChangeEvent.forElement(this);
+    return svg$.SvgElement.rateChangeEvent.forElement(this);
   }
   get [dartx.onReset]() {
-    return svg.SvgElement.resetEvent.forElement(this);
+    return svg$.SvgElement.resetEvent.forElement(this);
   }
   get [dartx.onResize]() {
-    return svg.SvgElement.resizeEvent.forElement(this);
+    return svg$.SvgElement.resizeEvent.forElement(this);
   }
   get [dartx.onScroll]() {
-    return svg.SvgElement.scrollEvent.forElement(this);
+    return svg$.SvgElement.scrollEvent.forElement(this);
   }
   get [dartx.onSeeked]() {
-    return svg.SvgElement.seekedEvent.forElement(this);
+    return svg$.SvgElement.seekedEvent.forElement(this);
   }
   get [dartx.onSeeking]() {
-    return svg.SvgElement.seekingEvent.forElement(this);
+    return svg$.SvgElement.seekingEvent.forElement(this);
   }
   get [dartx.onSelect]() {
-    return svg.SvgElement.selectEvent.forElement(this);
+    return svg$.SvgElement.selectEvent.forElement(this);
   }
   get [dartx.onStalled]() {
-    return svg.SvgElement.stalledEvent.forElement(this);
+    return svg$.SvgElement.stalledEvent.forElement(this);
   }
   get [dartx.onSubmit]() {
-    return svg.SvgElement.submitEvent.forElement(this);
+    return svg$.SvgElement.submitEvent.forElement(this);
   }
   get [dartx.onSuspend]() {
-    return svg.SvgElement.suspendEvent.forElement(this);
+    return svg$.SvgElement.suspendEvent.forElement(this);
   }
   get [dartx.onTimeUpdate]() {
-    return svg.SvgElement.timeUpdateEvent.forElement(this);
+    return svg$.SvgElement.timeUpdateEvent.forElement(this);
   }
   get [dartx.onVolumeChange]() {
-    return svg.SvgElement.volumeChangeEvent.forElement(this);
+    return svg$.SvgElement.volumeChangeEvent.forElement(this);
   }
   get [dartx.onWaiting]() {
-    return svg.SvgElement.waitingEvent.forElement(this);
+    return svg$.SvgElement.waitingEvent.forElement(this);
   }
 };
-dart.defineNamedConstructor(svg.SvgElement, 'created');
-svg.SvgElement[dart.implements] = () => [html.GlobalEventHandlers];
-dart.setSignature(svg.SvgElement, {
+dart.defineNamedConstructor(svg$.SvgElement, 'created');
+svg$.SvgElement[dart.implements] = () => [html$.GlobalEventHandlers];
+dart.setSignature(svg$.SvgElement, {
   constructors: () => ({
-    tag: dart.definiteFunctionType(svg.SvgElement, [core.String]),
-    svg: dart.definiteFunctionType(svg.SvgElement, [core.String], {validator: html.NodeValidator, treeSanitizer: html.NodeTreeSanitizer}),
-    _: dart.definiteFunctionType(svg.SvgElement, []),
-    created: dart.definiteFunctionType(svg.SvgElement, [])
+    tag: dart.definiteFunctionType(svg$.SvgElement, [core.String]),
+    svg: dart.definiteFunctionType(svg$.SvgElement, [core.String], {validator: html$.NodeValidator, treeSanitizer: html$.NodeTreeSanitizer}),
+    _: dart.definiteFunctionType(svg$.SvgElement, []),
+    created: dart.definiteFunctionType(svg$.SvgElement, [])
   }),
   fields: () => ({
-    [dartx.ownerSvgElement]: svg.SvgSvgElement,
-    [dartx.viewportElement]: svg.SvgElement
+    [dartx.ownerSvgElement]: svg$.SvgSvgElement,
+    [dartx.viewportElement]: svg$.SvgElement
   }),
   getters: () => ({
-    [_children]: dart.definiteFunctionType(html.HtmlCollection, []),
-    [_svgClassName]: dart.definiteFunctionType(svg.AnimatedString, [])
+    [_children$]: dart.definiteFunctionType(html$.HtmlCollection, []),
+    [_svgClassName]: dart.definiteFunctionType(svg$.AnimatedString, [])
   }),
   sfields: () => ({
     _START_TAG_REGEXP: core.RegExp,
@@ -100232,7 +100235,7 @@
     waitingEvent: EventStreamProviderOfEvent()
   })
 });
-dart.defineLazy(svg.SvgElement, {
+dart.defineLazy(svg$.SvgElement, {
   get _START_TAG_REGEXP() {
     return core.RegExp.new('<(\\w+)');
   },
@@ -100393,7 +100396,7 @@
     return dart.const(new (EventStreamProviderOfEvent())('waiting'));
   }
 });
-dart.registerExtension(dart.global.SVGElement, svg.SvgElement);
+dart.registerExtension(dart.global.SVGElement, svg$.SvgElement);
 dart.defineExtensionNames([
   'getBBox',
   'getCtm',
@@ -100407,7 +100410,7 @@
   'requiredFeatures',
   'systemLanguage'
 ]);
-svg.GraphicsElement = class GraphicsElement extends svg.SvgElement {
+svg$.GraphicsElement = class GraphicsElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100454,40 +100457,40 @@
     return this.hasExtension.apply(this, args);
   }
 };
-dart.defineNamedConstructor(svg.GraphicsElement, 'created');
-svg.GraphicsElement[dart.implements] = () => [svg.Tests];
-dart.setSignature(svg.GraphicsElement, {
+dart.defineNamedConstructor(svg$.GraphicsElement, 'created');
+svg$.GraphicsElement[dart.implements] = () => [svg$.Tests];
+dart.setSignature(svg$.GraphicsElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.GraphicsElement, []),
-    created: dart.definiteFunctionType(svg.GraphicsElement, [])
+    _: dart.definiteFunctionType(svg$.GraphicsElement, []),
+    created: dart.definiteFunctionType(svg$.GraphicsElement, [])
   }),
   fields: () => ({
-    [dartx.farthestViewportElement]: svg.SvgElement,
-    [dartx.nearestViewportElement]: svg.SvgElement,
-    [dartx.transform]: svg.AnimatedTransformList,
-    [dartx.requiredExtensions]: svg.StringList,
-    [dartx.requiredFeatures]: svg.StringList,
-    [dartx.systemLanguage]: svg.StringList
+    [dartx.farthestViewportElement]: svg$.SvgElement,
+    [dartx.nearestViewportElement]: svg$.SvgElement,
+    [dartx.transform]: svg$.AnimatedTransformList,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList
   }),
   methods: () => ({
-    [dartx.getBBox]: dart.definiteFunctionType(svg.Rect, []),
-    [dartx.getCtm]: dart.definiteFunctionType(svg.Matrix, []),
-    [dartx.getScreenCtm]: dart.definiteFunctionType(svg.Matrix, []),
-    [dartx.getTransformToElement]: dart.definiteFunctionType(svg.Matrix, [svg.SvgElement]),
+    [dartx.getBBox]: dart.definiteFunctionType(svg$.Rect, []),
+    [dartx.getCtm]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.getScreenCtm]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.getTransformToElement]: dart.definiteFunctionType(svg$.Matrix, [svg$.SvgElement]),
     [dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])
   })
 });
-dart.registerExtension(dart.global.SVGGraphicsElement, svg.GraphicsElement);
+dart.registerExtension(dart.global.SVGGraphicsElement, svg$.GraphicsElement);
 dart.defineExtensionNames([
   'target',
   'href'
 ]);
-svg.AElement = class AElement extends svg.GraphicsElement {
+svg$.AElement = class AElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.AElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("a"));
+    return svg$.AElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("a"));
   }
   created() {
     this[dartx.target] = null;
@@ -100501,20 +100504,20 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.AElement, 'created');
-svg.AElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg.AElement, {
+dart.defineNamedConstructor(svg$.AElement, 'created');
+svg$.AElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.AElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.AElement, []),
-    new: dart.definiteFunctionType(svg.AElement, []),
-    created: dart.definiteFunctionType(svg.AElement, [])
+    _: dart.definiteFunctionType(svg$.AElement, []),
+    new: dart.definiteFunctionType(svg$.AElement, []),
+    created: dart.definiteFunctionType(svg$.AElement, [])
   }),
   fields: () => ({
-    [dartx.target]: svg.AnimatedString,
-    [dartx.href]: svg.AnimatedString
+    [dartx.target]: svg$.AnimatedString,
+    [dartx.href]: svg$.AnimatedString
   })
 });
-dart.registerExtension(dart.global.SVGAElement, svg.AElement);
+dart.registerExtension(dart.global.SVGAElement, svg$.AElement);
 dart.defineExtensionNames([
   'convertToSpecifiedUnits',
   'newValueSpecifiedUnits',
@@ -100523,7 +100526,7 @@
   'valueAsString',
   'valueInSpecifiedUnits'
 ]);
-svg.Angle = class Angle extends _interceptors.Interceptor {
+svg$.Angle = class Angle extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100555,8 +100558,8 @@
     return this.newValueSpecifiedUnits.apply(this, args);
   }
 };
-dart.setSignature(svg.Angle, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Angle, [])}),
+dart.setSignature(svg$.Angle, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Angle, [])}),
   fields: () => ({
     [dartx.unitType]: core.int,
     [dartx.value]: core.num,
@@ -100575,12 +100578,12 @@
     SVG_ANGLETYPE_UNSPECIFIED: core.int
   })
 });
-svg.Angle.SVG_ANGLETYPE_DEG = 2;
-svg.Angle.SVG_ANGLETYPE_GRAD = 4;
-svg.Angle.SVG_ANGLETYPE_RAD = 3;
-svg.Angle.SVG_ANGLETYPE_UNKNOWN = 0;
-svg.Angle.SVG_ANGLETYPE_UNSPECIFIED = 1;
-dart.registerExtension(dart.global.SVGAngle, svg.Angle);
+svg$.Angle.SVG_ANGLETYPE_DEG = 2;
+svg$.Angle.SVG_ANGLETYPE_GRAD = 4;
+svg$.Angle.SVG_ANGLETYPE_RAD = 3;
+svg$.Angle.SVG_ANGLETYPE_UNKNOWN = 0;
+svg$.Angle.SVG_ANGLETYPE_UNSPECIFIED = 1;
+dart.registerExtension(dart.global.SVGAngle, svg$.Angle);
 dart.defineExtensionNames([
   'beginElement',
   'beginElementAt',
@@ -100595,12 +100598,12 @@
   'requiredFeatures',
   'systemLanguage'
 ]);
-svg.AnimationElement = class AnimationElement extends svg.SvgElement {
+svg$.AnimationElement = class AnimationElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.AnimationElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("animation"));
+    return svg$.AnimationElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animation"));
   }
   created() {
     this[dartx.targetElement] = null;
@@ -100646,19 +100649,19 @@
     return this.hasExtension.apply(this, args);
   }
 };
-dart.defineNamedConstructor(svg.AnimationElement, 'created');
-svg.AnimationElement[dart.implements] = () => [svg.Tests];
-dart.setSignature(svg.AnimationElement, {
+dart.defineNamedConstructor(svg$.AnimationElement, 'created');
+svg$.AnimationElement[dart.implements] = () => [svg$.Tests];
+dart.setSignature(svg$.AnimationElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.AnimationElement, []),
-    new: dart.definiteFunctionType(svg.AnimationElement, []),
-    created: dart.definiteFunctionType(svg.AnimationElement, [])
+    _: dart.definiteFunctionType(svg$.AnimationElement, []),
+    new: dart.definiteFunctionType(svg$.AnimationElement, []),
+    created: dart.definiteFunctionType(svg$.AnimationElement, [])
   }),
   fields: () => ({
-    [dartx.targetElement]: svg.SvgElement,
-    [dartx.requiredExtensions]: svg.StringList,
-    [dartx.requiredFeatures]: svg.StringList,
-    [dartx.systemLanguage]: svg.StringList
+    [dartx.targetElement]: svg$.SvgElement,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList
   }),
   methods: () => ({
     [dartx.beginElement]: dart.definiteFunctionType(dart.void, []),
@@ -100671,84 +100674,84 @@
     [dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])
   })
 });
-dart.registerExtension(dart.global.SVGAnimationElement, svg.AnimationElement);
-svg.AnimateElement = class AnimateElement extends svg.AnimationElement {
+dart.registerExtension(dart.global.SVGAnimationElement, svg$.AnimationElement);
+svg$.AnimateElement = class AnimateElement extends svg$.AnimationElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.AnimateElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("animate"));
+    return svg$.AnimateElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animate"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('animate')) && svg.AnimateElement.is(svg.SvgElement.tag('animate'));
+    return dart.test(svg$.SvgElement.isTagSupported('animate')) && svg$.AnimateElement.is(svg$.SvgElement.tag('animate'));
   }
 };
-dart.defineNamedConstructor(svg.AnimateElement, 'created');
-dart.setSignature(svg.AnimateElement, {
+dart.defineNamedConstructor(svg$.AnimateElement, 'created');
+dart.setSignature(svg$.AnimateElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.AnimateElement, []),
-    new: dart.definiteFunctionType(svg.AnimateElement, []),
-    created: dart.definiteFunctionType(svg.AnimateElement, [])
+    _: dart.definiteFunctionType(svg$.AnimateElement, []),
+    new: dart.definiteFunctionType(svg$.AnimateElement, []),
+    created: dart.definiteFunctionType(svg$.AnimateElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGAnimateElement, svg.AnimateElement);
-svg.AnimateMotionElement = class AnimateMotionElement extends svg.AnimationElement {
+dart.registerExtension(dart.global.SVGAnimateElement, svg$.AnimateElement);
+svg$.AnimateMotionElement = class AnimateMotionElement extends svg$.AnimationElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.AnimateMotionElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("animateMotion"));
+    return svg$.AnimateMotionElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateMotion"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('animateMotion')) && svg.AnimateMotionElement.is(svg.SvgElement.tag('animateMotion'));
+    return dart.test(svg$.SvgElement.isTagSupported('animateMotion')) && svg$.AnimateMotionElement.is(svg$.SvgElement.tag('animateMotion'));
   }
 };
-dart.defineNamedConstructor(svg.AnimateMotionElement, 'created');
-dart.setSignature(svg.AnimateMotionElement, {
+dart.defineNamedConstructor(svg$.AnimateMotionElement, 'created');
+dart.setSignature(svg$.AnimateMotionElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.AnimateMotionElement, []),
-    new: dart.definiteFunctionType(svg.AnimateMotionElement, []),
-    created: dart.definiteFunctionType(svg.AnimateMotionElement, [])
+    _: dart.definiteFunctionType(svg$.AnimateMotionElement, []),
+    new: dart.definiteFunctionType(svg$.AnimateMotionElement, []),
+    created: dart.definiteFunctionType(svg$.AnimateMotionElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGAnimateMotionElement, svg.AnimateMotionElement);
-svg.AnimateTransformElement = class AnimateTransformElement extends svg.AnimationElement {
+dart.registerExtension(dart.global.SVGAnimateMotionElement, svg$.AnimateMotionElement);
+svg$.AnimateTransformElement = class AnimateTransformElement extends svg$.AnimationElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.AnimateTransformElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("animateTransform"));
+    return svg$.AnimateTransformElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("animateTransform"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('animateTransform')) && svg.AnimateTransformElement.is(svg.SvgElement.tag('animateTransform'));
+    return dart.test(svg$.SvgElement.isTagSupported('animateTransform')) && svg$.AnimateTransformElement.is(svg$.SvgElement.tag('animateTransform'));
   }
 };
-dart.defineNamedConstructor(svg.AnimateTransformElement, 'created');
-dart.setSignature(svg.AnimateTransformElement, {
+dart.defineNamedConstructor(svg$.AnimateTransformElement, 'created');
+dart.setSignature(svg$.AnimateTransformElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.AnimateTransformElement, []),
-    new: dart.definiteFunctionType(svg.AnimateTransformElement, []),
-    created: dart.definiteFunctionType(svg.AnimateTransformElement, [])
+    _: dart.definiteFunctionType(svg$.AnimateTransformElement, []),
+    new: dart.definiteFunctionType(svg$.AnimateTransformElement, []),
+    created: dart.definiteFunctionType(svg$.AnimateTransformElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGAnimateTransformElement, svg.AnimateTransformElement);
+dart.registerExtension(dart.global.SVGAnimateTransformElement, svg$.AnimateTransformElement);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedAngle = class AnimatedAngle extends _interceptors.Interceptor {
+svg$.AnimatedAngle = class AnimatedAngle extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100759,19 +100762,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedAngle, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedAngle, [])}),
+dart.setSignature(svg$.AnimatedAngle, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedAngle, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.Angle,
-    [dartx.baseVal]: svg.Angle
+    [dartx.animVal]: svg$.Angle,
+    [dartx.baseVal]: svg$.Angle
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedAngle, svg.AnimatedAngle);
+dart.registerExtension(dart.global.SVGAnimatedAngle, svg$.AnimatedAngle);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedBoolean = class AnimatedBoolean extends _interceptors.Interceptor {
+svg$.AnimatedBoolean = class AnimatedBoolean extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100785,19 +100788,19 @@
     this.baseVal = value;
   }
 };
-dart.setSignature(svg.AnimatedBoolean, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedBoolean, [])}),
+dart.setSignature(svg$.AnimatedBoolean, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedBoolean, [])}),
   fields: () => ({
     [dartx.animVal]: core.bool,
     [dartx.baseVal]: core.bool
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedBoolean, svg.AnimatedBoolean);
+dart.registerExtension(dart.global.SVGAnimatedBoolean, svg$.AnimatedBoolean);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedEnumeration = class AnimatedEnumeration extends _interceptors.Interceptor {
+svg$.AnimatedEnumeration = class AnimatedEnumeration extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100811,19 +100814,19 @@
     this.baseVal = value;
   }
 };
-dart.setSignature(svg.AnimatedEnumeration, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedEnumeration, [])}),
+dart.setSignature(svg$.AnimatedEnumeration, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedEnumeration, [])}),
   fields: () => ({
     [dartx.animVal]: core.int,
     [dartx.baseVal]: core.int
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedEnumeration, svg.AnimatedEnumeration);
+dart.registerExtension(dart.global.SVGAnimatedEnumeration, svg$.AnimatedEnumeration);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedInteger = class AnimatedInteger extends _interceptors.Interceptor {
+svg$.AnimatedInteger = class AnimatedInteger extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100837,19 +100840,19 @@
     this.baseVal = value;
   }
 };
-dart.setSignature(svg.AnimatedInteger, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedInteger, [])}),
+dart.setSignature(svg$.AnimatedInteger, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedInteger, [])}),
   fields: () => ({
     [dartx.animVal]: core.int,
     [dartx.baseVal]: core.int
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedInteger, svg.AnimatedInteger);
+dart.registerExtension(dart.global.SVGAnimatedInteger, svg$.AnimatedInteger);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedLength = class AnimatedLength extends _interceptors.Interceptor {
+svg$.AnimatedLength = class AnimatedLength extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100860,19 +100863,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedLength, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedLength, [])}),
+dart.setSignature(svg$.AnimatedLength, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedLength, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.Length,
-    [dartx.baseVal]: svg.Length
+    [dartx.animVal]: svg$.Length,
+    [dartx.baseVal]: svg$.Length
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedLength, svg.AnimatedLength);
+dart.registerExtension(dart.global.SVGAnimatedLength, svg$.AnimatedLength);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedLengthList = class AnimatedLengthList extends _interceptors.Interceptor {
+svg$.AnimatedLengthList = class AnimatedLengthList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100883,19 +100886,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedLengthList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedLengthList, [])}),
+dart.setSignature(svg$.AnimatedLengthList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedLengthList, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.LengthList,
-    [dartx.baseVal]: svg.LengthList
+    [dartx.animVal]: svg$.LengthList,
+    [dartx.baseVal]: svg$.LengthList
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedLengthList, svg.AnimatedLengthList);
+dart.registerExtension(dart.global.SVGAnimatedLengthList, svg$.AnimatedLengthList);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedNumber = class AnimatedNumber extends _interceptors.Interceptor {
+svg$.AnimatedNumber = class AnimatedNumber extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100909,19 +100912,19 @@
     this.baseVal = value;
   }
 };
-dart.setSignature(svg.AnimatedNumber, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedNumber, [])}),
+dart.setSignature(svg$.AnimatedNumber, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedNumber, [])}),
   fields: () => ({
     [dartx.animVal]: core.double,
     [dartx.baseVal]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedNumber, svg.AnimatedNumber);
+dart.registerExtension(dart.global.SVGAnimatedNumber, svg$.AnimatedNumber);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedNumberList = class AnimatedNumberList extends _interceptors.Interceptor {
+svg$.AnimatedNumberList = class AnimatedNumberList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100932,19 +100935,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedNumberList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedNumberList, [])}),
+dart.setSignature(svg$.AnimatedNumberList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedNumberList, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.NumberList,
-    [dartx.baseVal]: svg.NumberList
+    [dartx.animVal]: svg$.NumberList,
+    [dartx.baseVal]: svg$.NumberList
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedNumberList, svg.AnimatedNumberList);
+dart.registerExtension(dart.global.SVGAnimatedNumberList, svg$.AnimatedNumberList);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedPreserveAspectRatio = class AnimatedPreserveAspectRatio extends _interceptors.Interceptor {
+svg$.AnimatedPreserveAspectRatio = class AnimatedPreserveAspectRatio extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100955,19 +100958,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedPreserveAspectRatio, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedPreserveAspectRatio, [])}),
+dart.setSignature(svg$.AnimatedPreserveAspectRatio, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedPreserveAspectRatio, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.PreserveAspectRatio,
-    [dartx.baseVal]: svg.PreserveAspectRatio
+    [dartx.animVal]: svg$.PreserveAspectRatio,
+    [dartx.baseVal]: svg$.PreserveAspectRatio
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedPreserveAspectRatio, svg.AnimatedPreserveAspectRatio);
+dart.registerExtension(dart.global.SVGAnimatedPreserveAspectRatio, svg$.AnimatedPreserveAspectRatio);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedRect = class AnimatedRect extends _interceptors.Interceptor {
+svg$.AnimatedRect = class AnimatedRect extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -100978,19 +100981,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedRect, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedRect, [])}),
+dart.setSignature(svg$.AnimatedRect, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedRect, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.Rect,
-    [dartx.baseVal]: svg.Rect
+    [dartx.animVal]: svg$.Rect,
+    [dartx.baseVal]: svg$.Rect
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedRect, svg.AnimatedRect);
+dart.registerExtension(dart.global.SVGAnimatedRect, svg$.AnimatedRect);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedString = class AnimatedString extends _interceptors.Interceptor {
+svg$.AnimatedString = class AnimatedString extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -101004,19 +101007,19 @@
     this.baseVal = value;
   }
 };
-dart.setSignature(svg.AnimatedString, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedString, [])}),
+dart.setSignature(svg$.AnimatedString, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedString, [])}),
   fields: () => ({
     [dartx.animVal]: core.String,
     [dartx.baseVal]: core.String
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedString, svg.AnimatedString);
+dart.registerExtension(dart.global.SVGAnimatedString, svg$.AnimatedString);
 dart.defineExtensionNames([
   'animVal',
   'baseVal'
 ]);
-svg.AnimatedTransformList = class AnimatedTransformList extends _interceptors.Interceptor {
+svg$.AnimatedTransformList = class AnimatedTransformList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -101027,19 +101030,19 @@
     return this.baseVal;
   }
 };
-dart.setSignature(svg.AnimatedTransformList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.AnimatedTransformList, [])}),
+dart.setSignature(svg$.AnimatedTransformList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.AnimatedTransformList, [])}),
   fields: () => ({
-    [dartx.animVal]: svg.TransformList,
-    [dartx.baseVal]: svg.TransformList
+    [dartx.animVal]: svg$.TransformList,
+    [dartx.baseVal]: svg$.TransformList
   })
 });
-dart.registerExtension(dart.global.SVGAnimatedTransformList, svg.AnimatedTransformList);
+dart.registerExtension(dart.global.SVGAnimatedTransformList, svg$.AnimatedTransformList);
 dart.defineExtensionNames([
   'isPointInFill',
   'isPointInStroke'
 ]);
-svg.GeometryElement = class GeometryElement extends svg.GraphicsElement {
+svg$.GeometryElement = class GeometryElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -101053,29 +101056,29 @@
     return this.isPointInStroke.apply(this, args);
   }
 };
-dart.defineNamedConstructor(svg.GeometryElement, 'created');
-dart.setSignature(svg.GeometryElement, {
+dart.defineNamedConstructor(svg$.GeometryElement, 'created');
+dart.setSignature(svg$.GeometryElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.GeometryElement, []),
-    created: dart.definiteFunctionType(svg.GeometryElement, [])
+    _: dart.definiteFunctionType(svg$.GeometryElement, []),
+    created: dart.definiteFunctionType(svg$.GeometryElement, [])
   }),
   methods: () => ({
-    [dartx.isPointInFill]: dart.definiteFunctionType(core.bool, [svg.Point]),
-    [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [svg.Point])
+    [dartx.isPointInFill]: dart.definiteFunctionType(core.bool, [svg$.Point]),
+    [dartx.isPointInStroke]: dart.definiteFunctionType(core.bool, [svg$.Point])
   })
 });
-dart.registerExtension(dart.global.SVGGeometryElement, svg.GeometryElement);
+dart.registerExtension(dart.global.SVGGeometryElement, svg$.GeometryElement);
 dart.defineExtensionNames([
   'cx',
   'cy',
   'r'
 ]);
-svg.CircleElement = class CircleElement extends svg.GeometryElement {
+svg$.CircleElement = class CircleElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.CircleElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("circle"));
+    return svg$.CircleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("circle"));
   }
   created() {
     this[dartx.cx] = null;
@@ -101093,29 +101096,29 @@
     return this.r;
   }
 };
-dart.defineNamedConstructor(svg.CircleElement, 'created');
-dart.setSignature(svg.CircleElement, {
+dart.defineNamedConstructor(svg$.CircleElement, 'created');
+dart.setSignature(svg$.CircleElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.CircleElement, []),
-    new: dart.definiteFunctionType(svg.CircleElement, []),
-    created: dart.definiteFunctionType(svg.CircleElement, [])
+    _: dart.definiteFunctionType(svg$.CircleElement, []),
+    new: dart.definiteFunctionType(svg$.CircleElement, []),
+    created: dart.definiteFunctionType(svg$.CircleElement, [])
   }),
   fields: () => ({
-    [dartx.cx]: svg.AnimatedLength,
-    [dartx.cy]: svg.AnimatedLength,
-    [dartx.r]: svg.AnimatedLength
+    [dartx.cx]: svg$.AnimatedLength,
+    [dartx.cy]: svg$.AnimatedLength,
+    [dartx.r]: svg$.AnimatedLength
   })
 });
-dart.registerExtension(dart.global.SVGCircleElement, svg.CircleElement);
+dart.registerExtension(dart.global.SVGCircleElement, svg$.CircleElement);
 dart.defineExtensionNames([
   'clipPathUnits'
 ]);
-svg.ClipPathElement = class ClipPathElement extends svg.GraphicsElement {
+svg$.ClipPathElement = class ClipPathElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.ClipPathElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("clipPath"));
+    return svg$.ClipPathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("clipPath"));
   }
   created() {
     this[dartx.clipPathUnits] = null;
@@ -101125,57 +101128,57 @@
     return this.clipPathUnits;
   }
 };
-dart.defineNamedConstructor(svg.ClipPathElement, 'created');
-dart.setSignature(svg.ClipPathElement, {
+dart.defineNamedConstructor(svg$.ClipPathElement, 'created');
+dart.setSignature(svg$.ClipPathElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.ClipPathElement, []),
-    new: dart.definiteFunctionType(svg.ClipPathElement, []),
-    created: dart.definiteFunctionType(svg.ClipPathElement, [])
+    _: dart.definiteFunctionType(svg$.ClipPathElement, []),
+    new: dart.definiteFunctionType(svg$.ClipPathElement, []),
+    created: dart.definiteFunctionType(svg$.ClipPathElement, [])
   }),
-  fields: () => ({[dartx.clipPathUnits]: svg.AnimatedEnumeration})
+  fields: () => ({[dartx.clipPathUnits]: svg$.AnimatedEnumeration})
 });
-dart.registerExtension(dart.global.SVGClipPathElement, svg.ClipPathElement);
-svg.DefsElement = class DefsElement extends svg.GraphicsElement {
+dart.registerExtension(dart.global.SVGClipPathElement, svg$.ClipPathElement);
+svg$.DefsElement = class DefsElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.DefsElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("defs"));
+    return svg$.DefsElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("defs"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.DefsElement, 'created');
-dart.setSignature(svg.DefsElement, {
+dart.defineNamedConstructor(svg$.DefsElement, 'created');
+dart.setSignature(svg$.DefsElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.DefsElement, []),
-    new: dart.definiteFunctionType(svg.DefsElement, []),
-    created: dart.definiteFunctionType(svg.DefsElement, [])
+    _: dart.definiteFunctionType(svg$.DefsElement, []),
+    new: dart.definiteFunctionType(svg$.DefsElement, []),
+    created: dart.definiteFunctionType(svg$.DefsElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGDefsElement, svg.DefsElement);
-svg.DescElement = class DescElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGDefsElement, svg$.DefsElement);
+svg$.DescElement = class DescElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.DescElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("desc"));
+    return svg$.DescElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("desc"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.DescElement, 'created');
-dart.setSignature(svg.DescElement, {
+dart.defineNamedConstructor(svg$.DescElement, 'created');
+dart.setSignature(svg$.DescElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.DescElement, []),
-    new: dart.definiteFunctionType(svg.DescElement, []),
-    created: dart.definiteFunctionType(svg.DescElement, [])
+    _: dart.definiteFunctionType(svg$.DescElement, []),
+    new: dart.definiteFunctionType(svg$.DescElement, []),
+    created: dart.definiteFunctionType(svg$.DescElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGDescElement, svg.DescElement);
-svg.DiscardElement = class DiscardElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGDescElement, svg$.DescElement);
+svg$.DiscardElement = class DiscardElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -101183,26 +101186,26 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.DiscardElement, 'created');
-dart.setSignature(svg.DiscardElement, {
+dart.defineNamedConstructor(svg$.DiscardElement, 'created');
+dart.setSignature(svg$.DiscardElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.DiscardElement, []),
-    created: dart.definiteFunctionType(svg.DiscardElement, [])
+    _: dart.definiteFunctionType(svg$.DiscardElement, []),
+    created: dart.definiteFunctionType(svg$.DiscardElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGDiscardElement, svg.DiscardElement);
+dart.registerExtension(dart.global.SVGDiscardElement, svg$.DiscardElement);
 dart.defineExtensionNames([
   'cx',
   'cy',
   'rx',
   'ry'
 ]);
-svg.EllipseElement = class EllipseElement extends svg.GeometryElement {
+svg$.EllipseElement = class EllipseElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.EllipseElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("ellipse"));
+    return svg$.EllipseElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("ellipse"));
   }
   created() {
     this[dartx.cx] = null;
@@ -101224,21 +101227,21 @@
     return this.ry;
   }
 };
-dart.defineNamedConstructor(svg.EllipseElement, 'created');
-dart.setSignature(svg.EllipseElement, {
+dart.defineNamedConstructor(svg$.EllipseElement, 'created');
+dart.setSignature(svg$.EllipseElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.EllipseElement, []),
-    new: dart.definiteFunctionType(svg.EllipseElement, []),
-    created: dart.definiteFunctionType(svg.EllipseElement, [])
+    _: dart.definiteFunctionType(svg$.EllipseElement, []),
+    new: dart.definiteFunctionType(svg$.EllipseElement, []),
+    created: dart.definiteFunctionType(svg$.EllipseElement, [])
   }),
   fields: () => ({
-    [dartx.cx]: svg.AnimatedLength,
-    [dartx.cy]: svg.AnimatedLength,
-    [dartx.rx]: svg.AnimatedLength,
-    [dartx.ry]: svg.AnimatedLength
+    [dartx.cx]: svg$.AnimatedLength,
+    [dartx.cy]: svg$.AnimatedLength,
+    [dartx.rx]: svg$.AnimatedLength,
+    [dartx.ry]: svg$.AnimatedLength
   })
 });
-dart.registerExtension(dart.global.SVGEllipseElement, svg.EllipseElement);
+dart.registerExtension(dart.global.SVGEllipseElement, svg$.EllipseElement);
 dart.defineExtensionNames([
   'in1',
   'in2',
@@ -101249,12 +101252,12 @@
   'x',
   'y'
 ]);
-svg.FEBlendElement = class FEBlendElement extends svg.SvgElement {
+svg$.FEBlendElement = class FEBlendElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEBlendElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feBlend"));
+    return svg$.FEBlendElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feBlend"));
   }
   created() {
     this[dartx.in1] = null;
@@ -101268,7 +101271,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feBlend')) && svg.FEBlendElement.is(svg.SvgElement.tag('feBlend'));
+    return dart.test(svg$.SvgElement.isTagSupported('feBlend')) && svg$.FEBlendElement.is(svg$.SvgElement.tag('feBlend'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -101295,23 +101298,23 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEBlendElement, 'created');
-svg.FEBlendElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEBlendElement, {
+dart.defineNamedConstructor(svg$.FEBlendElement, 'created');
+svg$.FEBlendElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEBlendElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEBlendElement, []),
-    new: dart.definiteFunctionType(svg.FEBlendElement, []),
-    created: dart.definiteFunctionType(svg.FEBlendElement, [])
+    _: dart.definiteFunctionType(svg$.FEBlendElement, []),
+    new: dart.definiteFunctionType(svg$.FEBlendElement, []),
+    created: dart.definiteFunctionType(svg$.FEBlendElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.in2]: svg.AnimatedString,
-    [dartx.mode]: svg.AnimatedEnumeration,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.in2]: svg$.AnimatedString,
+    [dartx.mode]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_FEBLEND_MODE_DARKEN: core.int,
@@ -101323,13 +101326,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-svg.FEBlendElement.SVG_FEBLEND_MODE_DARKEN = 4;
-svg.FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN = 5;
-svg.FEBlendElement.SVG_FEBLEND_MODE_MULTIPLY = 2;
-svg.FEBlendElement.SVG_FEBLEND_MODE_NORMAL = 1;
-svg.FEBlendElement.SVG_FEBLEND_MODE_SCREEN = 3;
-svg.FEBlendElement.SVG_FEBLEND_MODE_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGFEBlendElement, svg.FEBlendElement);
+svg$.FEBlendElement.SVG_FEBLEND_MODE_DARKEN = 4;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_LIGHTEN = 5;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_MULTIPLY = 2;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_NORMAL = 1;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_SCREEN = 3;
+svg$.FEBlendElement.SVG_FEBLEND_MODE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEBlendElement, svg$.FEBlendElement);
 dart.defineExtensionNames([
   'in1',
   'type',
@@ -101340,12 +101343,12 @@
   'x',
   'y'
 ]);
-svg.FEColorMatrixElement = class FEColorMatrixElement extends svg.SvgElement {
+svg$.FEColorMatrixElement = class FEColorMatrixElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEColorMatrixElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix"));
+    return svg$.FEColorMatrixElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feColorMatrix"));
   }
   created() {
     this[dartx.in1] = null;
@@ -101359,7 +101362,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feColorMatrix')) && svg.FEColorMatrixElement.is(svg.SvgElement.tag('feColorMatrix'));
+    return dart.test(svg$.SvgElement.isTagSupported('feColorMatrix')) && svg$.FEColorMatrixElement.is(svg$.SvgElement.tag('feColorMatrix'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -101386,23 +101389,23 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEColorMatrixElement, 'created');
-svg.FEColorMatrixElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEColorMatrixElement, {
+dart.defineNamedConstructor(svg$.FEColorMatrixElement, 'created');
+svg$.FEColorMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEColorMatrixElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEColorMatrixElement, []),
-    new: dart.definiteFunctionType(svg.FEColorMatrixElement, []),
-    created: dart.definiteFunctionType(svg.FEColorMatrixElement, [])
+    _: dart.definiteFunctionType(svg$.FEColorMatrixElement, []),
+    new: dart.definiteFunctionType(svg$.FEColorMatrixElement, []),
+    created: dart.definiteFunctionType(svg$.FEColorMatrixElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.type]: svg.AnimatedEnumeration,
-    [dartx.values]: svg.AnimatedNumberList,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.type]: svg$.AnimatedEnumeration,
+    [dartx.values]: svg$.AnimatedNumberList,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_FECOLORMATRIX_TYPE_HUEROTATE: core.int,
@@ -101413,12 +101416,12 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-svg.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
-svg.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
-svg.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
-svg.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
-svg.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGFEColorMatrixElement, svg.FEColorMatrixElement);
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
+svg$.FEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEColorMatrixElement, svg$.FEColorMatrixElement);
 dart.defineExtensionNames([
   'in1',
   'height',
@@ -101427,12 +101430,12 @@
   'x',
   'y'
 ]);
-svg.FEComponentTransferElement = class FEComponentTransferElement extends svg.SvgElement {
+svg$.FEComponentTransferElement = class FEComponentTransferElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEComponentTransferElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer"));
+    return svg$.FEComponentTransferElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feComponentTransfer"));
   }
   created() {
     this[dartx.in1] = null;
@@ -101444,7 +101447,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feComponentTransfer')) && svg.FEComponentTransferElement.is(svg.SvgElement.tag('feComponentTransfer'));
+    return dart.test(svg$.SvgElement.isTagSupported('feComponentTransfer')) && svg$.FEComponentTransferElement.is(svg$.SvgElement.tag('feComponentTransfer'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -101465,25 +101468,25 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEComponentTransferElement, 'created');
-svg.FEComponentTransferElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEComponentTransferElement, {
+dart.defineNamedConstructor(svg$.FEComponentTransferElement, 'created');
+svg$.FEComponentTransferElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEComponentTransferElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEComponentTransferElement, []),
-    new: dart.definiteFunctionType(svg.FEComponentTransferElement, []),
-    created: dart.definiteFunctionType(svg.FEComponentTransferElement, [])
+    _: dart.definiteFunctionType(svg$.FEComponentTransferElement, []),
+    new: dart.definiteFunctionType(svg$.FEComponentTransferElement, []),
+    created: dart.definiteFunctionType(svg$.FEComponentTransferElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEComponentTransferElement, svg.FEComponentTransferElement);
+dart.registerExtension(dart.global.SVGFEComponentTransferElement, svg$.FEComponentTransferElement);
 dart.defineExtensionNames([
   'in1',
   'in2',
@@ -101498,7 +101501,7 @@
   'x',
   'y'
 ]);
-svg.FECompositeElement = class FECompositeElement extends svg.SvgElement {
+svg$.FECompositeElement = class FECompositeElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -101554,26 +101557,26 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FECompositeElement, 'created');
-svg.FECompositeElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FECompositeElement, {
+dart.defineNamedConstructor(svg$.FECompositeElement, 'created');
+svg$.FECompositeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FECompositeElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FECompositeElement, []),
-    created: dart.definiteFunctionType(svg.FECompositeElement, [])
+    _: dart.definiteFunctionType(svg$.FECompositeElement, []),
+    created: dart.definiteFunctionType(svg$.FECompositeElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.in2]: svg.AnimatedString,
-    [dartx.k1]: svg.AnimatedNumber,
-    [dartx.k2]: svg.AnimatedNumber,
-    [dartx.k3]: svg.AnimatedNumber,
-    [dartx.k4]: svg.AnimatedNumber,
-    [dartx.operator]: svg.AnimatedEnumeration,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.in2]: svg$.AnimatedString,
+    [dartx.k1]: svg$.AnimatedNumber,
+    [dartx.k2]: svg$.AnimatedNumber,
+    [dartx.k3]: svg$.AnimatedNumber,
+    [dartx.k4]: svg$.AnimatedNumber,
+    [dartx.operator]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: core.int,
@@ -101585,14 +101588,14 @@
     SVG_FECOMPOSITE_OPERATOR_XOR: core.int
   })
 });
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN = 2;
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT = 3;
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER = 1;
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
-svg.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR = 5;
-dart.registerExtension(dart.global.SVGFECompositeElement, svg.FECompositeElement);
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN = 2;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT = 3;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER = 1;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
+svg$.FECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR = 5;
+dart.registerExtension(dart.global.SVGFECompositeElement, svg$.FECompositeElement);
 dart.defineExtensionNames([
   'bias',
   'divisor',
@@ -101612,12 +101615,12 @@
   'x',
   'y'
 ]);
-svg.FEConvolveMatrixElement = class FEConvolveMatrixElement extends svg.SvgElement {
+svg$.FEConvolveMatrixElement = class FEConvolveMatrixElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEConvolveMatrixElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix"));
+    return svg$.FEConvolveMatrixElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feConvolveMatrix"));
   }
   created() {
     this[dartx.bias] = null;
@@ -101640,7 +101643,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feConvolveMatrix')) && svg.FEConvolveMatrixElement.is(svg.SvgElement.tag('feConvolveMatrix'));
+    return dart.test(svg$.SvgElement.isTagSupported('feConvolveMatrix')) && svg$.FEConvolveMatrixElement.is(svg$.SvgElement.tag('feConvolveMatrix'));
   }
   get [dartx.bias]() {
     return this.bias;
@@ -101694,32 +101697,32 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEConvolveMatrixElement, 'created');
-svg.FEConvolveMatrixElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEConvolveMatrixElement, {
+dart.defineNamedConstructor(svg$.FEConvolveMatrixElement, 'created');
+svg$.FEConvolveMatrixElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEConvolveMatrixElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEConvolveMatrixElement, []),
-    new: dart.definiteFunctionType(svg.FEConvolveMatrixElement, []),
-    created: dart.definiteFunctionType(svg.FEConvolveMatrixElement, [])
+    _: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, []),
+    new: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, []),
+    created: dart.definiteFunctionType(svg$.FEConvolveMatrixElement, [])
   }),
   fields: () => ({
-    [dartx.bias]: svg.AnimatedNumber,
-    [dartx.divisor]: svg.AnimatedNumber,
-    [dartx.edgeMode]: svg.AnimatedEnumeration,
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.kernelMatrix]: svg.AnimatedNumberList,
-    [dartx.kernelUnitLengthX]: svg.AnimatedNumber,
-    [dartx.kernelUnitLengthY]: svg.AnimatedNumber,
-    [dartx.orderX]: svg.AnimatedInteger,
-    [dartx.orderY]: svg.AnimatedInteger,
-    [dartx.preserveAlpha]: svg.AnimatedBoolean,
-    [dartx.targetX]: svg.AnimatedInteger,
-    [dartx.targetY]: svg.AnimatedInteger,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.bias]: svg$.AnimatedNumber,
+    [dartx.divisor]: svg$.AnimatedNumber,
+    [dartx.edgeMode]: svg$.AnimatedEnumeration,
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.kernelMatrix]: svg$.AnimatedNumberList,
+    [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
+    [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
+    [dartx.orderX]: svg$.AnimatedInteger,
+    [dartx.orderY]: svg$.AnimatedInteger,
+    [dartx.preserveAlpha]: svg$.AnimatedBoolean,
+    [dartx.targetX]: svg$.AnimatedInteger,
+    [dartx.targetY]: svg$.AnimatedInteger,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_EDGEMODE_DUPLICATE: core.int,
@@ -101729,11 +101732,11 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-svg.FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE = 1;
-svg.FEConvolveMatrixElement.SVG_EDGEMODE_NONE = 3;
-svg.FEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN = 0;
-svg.FEConvolveMatrixElement.SVG_EDGEMODE_WRAP = 2;
-dart.registerExtension(dart.global.SVGFEConvolveMatrixElement, svg.FEConvolveMatrixElement);
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE = 1;
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_NONE = 3;
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN = 0;
+svg$.FEConvolveMatrixElement.SVG_EDGEMODE_WRAP = 2;
+dart.registerExtension(dart.global.SVGFEConvolveMatrixElement, svg$.FEConvolveMatrixElement);
 dart.defineExtensionNames([
   'diffuseConstant',
   'in1',
@@ -101746,12 +101749,12 @@
   'x',
   'y'
 ]);
-svg.FEDiffuseLightingElement = class FEDiffuseLightingElement extends svg.SvgElement {
+svg$.FEDiffuseLightingElement = class FEDiffuseLightingElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEDiffuseLightingElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting"));
+    return svg$.FEDiffuseLightingElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDiffuseLighting"));
   }
   created() {
     this[dartx.diffuseConstant] = null;
@@ -101767,7 +101770,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feDiffuseLighting')) && svg.FEDiffuseLightingElement.is(svg.SvgElement.tag('feDiffuseLighting'));
+    return dart.test(svg$.SvgElement.isTagSupported('feDiffuseLighting')) && svg$.FEDiffuseLightingElement.is(svg$.SvgElement.tag('feDiffuseLighting'));
   }
   get [dartx.diffuseConstant]() {
     return this.diffuseConstant;
@@ -101800,29 +101803,29 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEDiffuseLightingElement, 'created');
-svg.FEDiffuseLightingElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEDiffuseLightingElement, {
+dart.defineNamedConstructor(svg$.FEDiffuseLightingElement, 'created');
+svg$.FEDiffuseLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEDiffuseLightingElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEDiffuseLightingElement, []),
-    new: dart.definiteFunctionType(svg.FEDiffuseLightingElement, []),
-    created: dart.definiteFunctionType(svg.FEDiffuseLightingElement, [])
+    _: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, []),
+    new: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, []),
+    created: dart.definiteFunctionType(svg$.FEDiffuseLightingElement, [])
   }),
   fields: () => ({
-    [dartx.diffuseConstant]: svg.AnimatedNumber,
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.kernelUnitLengthX]: svg.AnimatedNumber,
-    [dartx.kernelUnitLengthY]: svg.AnimatedNumber,
-    [dartx.surfaceScale]: svg.AnimatedNumber,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.diffuseConstant]: svg$.AnimatedNumber,
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
+    [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
+    [dartx.surfaceScale]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEDiffuseLightingElement, svg.FEDiffuseLightingElement);
+dart.registerExtension(dart.global.SVGFEDiffuseLightingElement, svg$.FEDiffuseLightingElement);
 dart.defineExtensionNames([
   'in1',
   'in2',
@@ -101835,12 +101838,12 @@
   'x',
   'y'
 ]);
-svg.FEDisplacementMapElement = class FEDisplacementMapElement extends svg.SvgElement {
+svg$.FEDisplacementMapElement = class FEDisplacementMapElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEDisplacementMapElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap"));
+    return svg$.FEDisplacementMapElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDisplacementMap"));
   }
   created() {
     this[dartx.in1] = null;
@@ -101856,7 +101859,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feDisplacementMap')) && svg.FEDisplacementMapElement.is(svg.SvgElement.tag('feDisplacementMap'));
+    return dart.test(svg$.SvgElement.isTagSupported('feDisplacementMap')) && svg$.FEDisplacementMapElement.is(svg$.SvgElement.tag('feDisplacementMap'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -101889,25 +101892,25 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEDisplacementMapElement, 'created');
-svg.FEDisplacementMapElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEDisplacementMapElement, {
+dart.defineNamedConstructor(svg$.FEDisplacementMapElement, 'created');
+svg$.FEDisplacementMapElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEDisplacementMapElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEDisplacementMapElement, []),
-    new: dart.definiteFunctionType(svg.FEDisplacementMapElement, []),
-    created: dart.definiteFunctionType(svg.FEDisplacementMapElement, [])
+    _: dart.definiteFunctionType(svg$.FEDisplacementMapElement, []),
+    new: dart.definiteFunctionType(svg$.FEDisplacementMapElement, []),
+    created: dart.definiteFunctionType(svg$.FEDisplacementMapElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.in2]: svg.AnimatedString,
-    [dartx.scale]: svg.AnimatedNumber,
-    [dartx.xChannelSelector]: svg.AnimatedEnumeration,
-    [dartx.yChannelSelector]: svg.AnimatedEnumeration,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.in2]: svg$.AnimatedString,
+    [dartx.scale]: svg$.AnimatedNumber,
+    [dartx.xChannelSelector]: svg$.AnimatedEnumeration,
+    [dartx.yChannelSelector]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_CHANNEL_A: core.int,
@@ -101918,22 +101921,22 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-svg.FEDisplacementMapElement.SVG_CHANNEL_A = 4;
-svg.FEDisplacementMapElement.SVG_CHANNEL_B = 3;
-svg.FEDisplacementMapElement.SVG_CHANNEL_G = 2;
-svg.FEDisplacementMapElement.SVG_CHANNEL_R = 1;
-svg.FEDisplacementMapElement.SVG_CHANNEL_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGFEDisplacementMapElement, svg.FEDisplacementMapElement);
+svg$.FEDisplacementMapElement.SVG_CHANNEL_A = 4;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_B = 3;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_G = 2;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_R = 1;
+svg$.FEDisplacementMapElement.SVG_CHANNEL_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEDisplacementMapElement, svg$.FEDisplacementMapElement);
 dart.defineExtensionNames([
   'azimuth',
   'elevation'
 ]);
-svg.FEDistantLightElement = class FEDistantLightElement extends svg.SvgElement {
+svg$.FEDistantLightElement = class FEDistantLightElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEDistantLightElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feDistantLight"));
+    return svg$.FEDistantLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feDistantLight"));
   }
   created() {
     this[dartx.azimuth] = null;
@@ -101941,7 +101944,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feDistantLight')) && svg.FEDistantLightElement.is(svg.SvgElement.tag('feDistantLight'));
+    return dart.test(svg$.SvgElement.isTagSupported('feDistantLight')) && svg$.FEDistantLightElement.is(svg$.SvgElement.tag('feDistantLight'));
   }
   get [dartx.azimuth]() {
     return this.azimuth;
@@ -101950,20 +101953,20 @@
     return this.elevation;
   }
 };
-dart.defineNamedConstructor(svg.FEDistantLightElement, 'created');
-dart.setSignature(svg.FEDistantLightElement, {
+dart.defineNamedConstructor(svg$.FEDistantLightElement, 'created');
+dart.setSignature(svg$.FEDistantLightElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEDistantLightElement, []),
-    new: dart.definiteFunctionType(svg.FEDistantLightElement, []),
-    created: dart.definiteFunctionType(svg.FEDistantLightElement, [])
+    _: dart.definiteFunctionType(svg$.FEDistantLightElement, []),
+    new: dart.definiteFunctionType(svg$.FEDistantLightElement, []),
+    created: dart.definiteFunctionType(svg$.FEDistantLightElement, [])
   }),
   fields: () => ({
-    [dartx.azimuth]: svg.AnimatedNumber,
-    [dartx.elevation]: svg.AnimatedNumber
+    [dartx.azimuth]: svg$.AnimatedNumber,
+    [dartx.elevation]: svg$.AnimatedNumber
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEDistantLightElement, svg.FEDistantLightElement);
+dart.registerExtension(dart.global.SVGFEDistantLightElement, svg$.FEDistantLightElement);
 dart.defineExtensionNames([
   'height',
   'result',
@@ -101971,12 +101974,12 @@
   'x',
   'y'
 ]);
-svg.FEFloodElement = class FEFloodElement extends svg.SvgElement {
+svg$.FEFloodElement = class FEFloodElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEFloodElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feFlood"));
+    return svg$.FEFloodElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFlood"));
   }
   created() {
     this[dartx.height] = null;
@@ -101987,7 +101990,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feFlood')) && svg.FEFloodElement.is(svg.SvgElement.tag('feFlood'));
+    return dart.test(svg$.SvgElement.isTagSupported('feFlood')) && svg$.FEFloodElement.is(svg$.SvgElement.tag('feFlood'));
   }
   get [dartx.height]() {
     return this.height;
@@ -102005,25 +102008,25 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEFloodElement, 'created');
-svg.FEFloodElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEFloodElement, {
+dart.defineNamedConstructor(svg$.FEFloodElement, 'created');
+svg$.FEFloodElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEFloodElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEFloodElement, []),
-    new: dart.definiteFunctionType(svg.FEFloodElement, []),
-    created: dart.definiteFunctionType(svg.FEFloodElement, [])
+    _: dart.definiteFunctionType(svg$.FEFloodElement, []),
+    new: dart.definiteFunctionType(svg$.FEFloodElement, []),
+    created: dart.definiteFunctionType(svg$.FEFloodElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEFloodElement, svg.FEFloodElement);
-svg._SVGComponentTransferFunctionElement = class _SVGComponentTransferFunctionElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGFEFloodElement, svg$.FEFloodElement);
+svg$._SVGComponentTransferFunctionElement = class _SVGComponentTransferFunctionElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -102031,110 +102034,110 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(svg._SVGComponentTransferFunctionElement, 'created');
-dart.setSignature(svg._SVGComponentTransferFunctionElement, {
+dart.defineNamedConstructor(svg$._SVGComponentTransferFunctionElement, 'created');
+dart.setSignature(svg$._SVGComponentTransferFunctionElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg._SVGComponentTransferFunctionElement, []),
-    created: dart.definiteFunctionType(svg._SVGComponentTransferFunctionElement, [])
+    _: dart.definiteFunctionType(svg$._SVGComponentTransferFunctionElement, []),
+    created: dart.definiteFunctionType(svg$._SVGComponentTransferFunctionElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGComponentTransferFunctionElement, svg._SVGComponentTransferFunctionElement);
-svg.FEFuncAElement = class FEFuncAElement extends svg._SVGComponentTransferFunctionElement {
+dart.registerExtension(dart.global.SVGComponentTransferFunctionElement, svg$._SVGComponentTransferFunctionElement);
+svg$.FEFuncAElement = class FEFuncAElement extends svg$._SVGComponentTransferFunctionElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEFuncAElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feFuncA"));
+    return svg$.FEFuncAElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncA"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feFuncA')) && svg.FEFuncAElement.is(svg.SvgElement.tag('feFuncA'));
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncA')) && svg$.FEFuncAElement.is(svg$.SvgElement.tag('feFuncA'));
   }
 };
-dart.defineNamedConstructor(svg.FEFuncAElement, 'created');
-dart.setSignature(svg.FEFuncAElement, {
+dart.defineNamedConstructor(svg$.FEFuncAElement, 'created');
+dart.setSignature(svg$.FEFuncAElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEFuncAElement, []),
-    new: dart.definiteFunctionType(svg.FEFuncAElement, []),
-    created: dart.definiteFunctionType(svg.FEFuncAElement, [])
+    _: dart.definiteFunctionType(svg$.FEFuncAElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncAElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncAElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEFuncAElement, svg.FEFuncAElement);
-svg.FEFuncBElement = class FEFuncBElement extends svg._SVGComponentTransferFunctionElement {
+dart.registerExtension(dart.global.SVGFEFuncAElement, svg$.FEFuncAElement);
+svg$.FEFuncBElement = class FEFuncBElement extends svg$._SVGComponentTransferFunctionElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEFuncBElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feFuncB"));
+    return svg$.FEFuncBElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncB"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feFuncB')) && svg.FEFuncBElement.is(svg.SvgElement.tag('feFuncB'));
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncB')) && svg$.FEFuncBElement.is(svg$.SvgElement.tag('feFuncB'));
   }
 };
-dart.defineNamedConstructor(svg.FEFuncBElement, 'created');
-dart.setSignature(svg.FEFuncBElement, {
+dart.defineNamedConstructor(svg$.FEFuncBElement, 'created');
+dart.setSignature(svg$.FEFuncBElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEFuncBElement, []),
-    new: dart.definiteFunctionType(svg.FEFuncBElement, []),
-    created: dart.definiteFunctionType(svg.FEFuncBElement, [])
+    _: dart.definiteFunctionType(svg$.FEFuncBElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncBElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncBElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEFuncBElement, svg.FEFuncBElement);
-svg.FEFuncGElement = class FEFuncGElement extends svg._SVGComponentTransferFunctionElement {
+dart.registerExtension(dart.global.SVGFEFuncBElement, svg$.FEFuncBElement);
+svg$.FEFuncGElement = class FEFuncGElement extends svg$._SVGComponentTransferFunctionElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEFuncGElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feFuncG"));
+    return svg$.FEFuncGElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncG"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feFuncG')) && svg.FEFuncGElement.is(svg.SvgElement.tag('feFuncG'));
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncG')) && svg$.FEFuncGElement.is(svg$.SvgElement.tag('feFuncG'));
   }
 };
-dart.defineNamedConstructor(svg.FEFuncGElement, 'created');
-dart.setSignature(svg.FEFuncGElement, {
+dart.defineNamedConstructor(svg$.FEFuncGElement, 'created');
+dart.setSignature(svg$.FEFuncGElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEFuncGElement, []),
-    new: dart.definiteFunctionType(svg.FEFuncGElement, []),
-    created: dart.definiteFunctionType(svg.FEFuncGElement, [])
+    _: dart.definiteFunctionType(svg$.FEFuncGElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncGElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncGElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEFuncGElement, svg.FEFuncGElement);
-svg.FEFuncRElement = class FEFuncRElement extends svg._SVGComponentTransferFunctionElement {
+dart.registerExtension(dart.global.SVGFEFuncGElement, svg$.FEFuncGElement);
+svg$.FEFuncRElement = class FEFuncRElement extends svg$._SVGComponentTransferFunctionElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEFuncRElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feFuncR"));
+    return svg$.FEFuncRElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feFuncR"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feFuncR')) && svg.FEFuncRElement.is(svg.SvgElement.tag('feFuncR'));
+    return dart.test(svg$.SvgElement.isTagSupported('feFuncR')) && svg$.FEFuncRElement.is(svg$.SvgElement.tag('feFuncR'));
   }
 };
-dart.defineNamedConstructor(svg.FEFuncRElement, 'created');
-dart.setSignature(svg.FEFuncRElement, {
+dart.defineNamedConstructor(svg$.FEFuncRElement, 'created');
+dart.setSignature(svg$.FEFuncRElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEFuncRElement, []),
-    new: dart.definiteFunctionType(svg.FEFuncRElement, []),
-    created: dart.definiteFunctionType(svg.FEFuncRElement, [])
+    _: dart.definiteFunctionType(svg$.FEFuncRElement, []),
+    new: dart.definiteFunctionType(svg$.FEFuncRElement, []),
+    created: dart.definiteFunctionType(svg$.FEFuncRElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEFuncRElement, svg.FEFuncRElement);
+dart.registerExtension(dart.global.SVGFEFuncRElement, svg$.FEFuncRElement);
 dart.defineExtensionNames([
   'setStdDeviation',
   'in1',
@@ -102146,12 +102149,12 @@
   'x',
   'y'
 ]);
-svg.FEGaussianBlurElement = class FEGaussianBlurElement extends svg.SvgElement {
+svg$.FEGaussianBlurElement = class FEGaussianBlurElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEGaussianBlurElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur"));
+    return svg$.FEGaussianBlurElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feGaussianBlur"));
   }
   created() {
     this[dartx.in1] = null;
@@ -102165,7 +102168,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feGaussianBlur')) && svg.FEGaussianBlurElement.is(svg.SvgElement.tag('feGaussianBlur'));
+    return dart.test(svg$.SvgElement.isTagSupported('feGaussianBlur')) && svg$.FEGaussianBlurElement.is(svg$.SvgElement.tag('feGaussianBlur'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -102195,28 +102198,28 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEGaussianBlurElement, 'created');
-svg.FEGaussianBlurElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEGaussianBlurElement, {
+dart.defineNamedConstructor(svg$.FEGaussianBlurElement, 'created');
+svg$.FEGaussianBlurElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEGaussianBlurElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEGaussianBlurElement, []),
-    new: dart.definiteFunctionType(svg.FEGaussianBlurElement, []),
-    created: dart.definiteFunctionType(svg.FEGaussianBlurElement, [])
+    _: dart.definiteFunctionType(svg$.FEGaussianBlurElement, []),
+    new: dart.definiteFunctionType(svg$.FEGaussianBlurElement, []),
+    created: dart.definiteFunctionType(svg$.FEGaussianBlurElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.stdDeviationX]: svg.AnimatedNumber,
-    [dartx.stdDeviationY]: svg.AnimatedNumber,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.stdDeviationX]: svg$.AnimatedNumber,
+    [dartx.stdDeviationY]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   methods: () => ({[dartx.setStdDeviation]: dart.definiteFunctionType(dart.void, [core.num, core.num])}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEGaussianBlurElement, svg.FEGaussianBlurElement);
+dart.registerExtension(dart.global.SVGFEGaussianBlurElement, svg$.FEGaussianBlurElement);
 dart.defineExtensionNames([
   'preserveAspectRatio',
   'height',
@@ -102226,12 +102229,12 @@
   'y',
   'href'
 ]);
-svg.FEImageElement = class FEImageElement extends svg.SvgElement {
+svg$.FEImageElement = class FEImageElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEImageElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feImage"));
+    return svg$.FEImageElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feImage"));
   }
   created() {
     this[dartx.preserveAspectRatio] = null;
@@ -102244,7 +102247,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feImage')) && svg.FEImageElement.is(svg.SvgElement.tag('feImage'));
+    return dart.test(svg$.SvgElement.isTagSupported('feImage')) && svg$.FEImageElement.is(svg$.SvgElement.tag('feImage'));
   }
   get [dartx.preserveAspectRatio]() {
     return this.preserveAspectRatio;
@@ -102268,26 +102271,26 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.FEImageElement, 'created');
-svg.FEImageElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes, svg.UriReference];
-dart.setSignature(svg.FEImageElement, {
+dart.defineNamedConstructor(svg$.FEImageElement, 'created');
+svg$.FEImageElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes, svg$.UriReference];
+dart.setSignature(svg$.FEImageElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEImageElement, []),
-    new: dart.definiteFunctionType(svg.FEImageElement, []),
-    created: dart.definiteFunctionType(svg.FEImageElement, [])
+    _: dart.definiteFunctionType(svg$.FEImageElement, []),
+    new: dart.definiteFunctionType(svg$.FEImageElement, []),
+    created: dart.definiteFunctionType(svg$.FEImageElement, [])
   }),
   fields: () => ({
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.href]: svg.AnimatedString
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEImageElement, svg.FEImageElement);
+dart.registerExtension(dart.global.SVGFEImageElement, svg$.FEImageElement);
 dart.defineExtensionNames([
   'height',
   'result',
@@ -102295,12 +102298,12 @@
   'x',
   'y'
 ]);
-svg.FEMergeElement = class FEMergeElement extends svg.SvgElement {
+svg$.FEMergeElement = class FEMergeElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEMergeElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feMerge"));
+    return svg$.FEMergeElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMerge"));
   }
   created() {
     this[dartx.height] = null;
@@ -102311,7 +102314,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feMerge')) && svg.FEMergeElement.is(svg.SvgElement.tag('feMerge'));
+    return dart.test(svg$.SvgElement.isTagSupported('feMerge')) && svg$.FEMergeElement.is(svg$.SvgElement.tag('feMerge'));
   }
   get [dartx.height]() {
     return this.height;
@@ -102329,56 +102332,56 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEMergeElement, 'created');
-svg.FEMergeElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEMergeElement, {
+dart.defineNamedConstructor(svg$.FEMergeElement, 'created');
+svg$.FEMergeElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEMergeElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEMergeElement, []),
-    new: dart.definiteFunctionType(svg.FEMergeElement, []),
-    created: dart.definiteFunctionType(svg.FEMergeElement, [])
+    _: dart.definiteFunctionType(svg$.FEMergeElement, []),
+    new: dart.definiteFunctionType(svg$.FEMergeElement, []),
+    created: dart.definiteFunctionType(svg$.FEMergeElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEMergeElement, svg.FEMergeElement);
+dart.registerExtension(dart.global.SVGFEMergeElement, svg$.FEMergeElement);
 dart.defineExtensionNames([
   'in1'
 ]);
-svg.FEMergeNodeElement = class FEMergeNodeElement extends svg.SvgElement {
+svg$.FEMergeNodeElement = class FEMergeNodeElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEMergeNodeElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feMergeNode"));
+    return svg$.FEMergeNodeElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feMergeNode"));
   }
   created() {
     this[dartx.in1] = null;
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feMergeNode')) && svg.FEMergeNodeElement.is(svg.SvgElement.tag('feMergeNode'));
+    return dart.test(svg$.SvgElement.isTagSupported('feMergeNode')) && svg$.FEMergeNodeElement.is(svg$.SvgElement.tag('feMergeNode'));
   }
   get [dartx.in1]() {
     return this.in1;
   }
 };
-dart.defineNamedConstructor(svg.FEMergeNodeElement, 'created');
-dart.setSignature(svg.FEMergeNodeElement, {
+dart.defineNamedConstructor(svg$.FEMergeNodeElement, 'created');
+dart.setSignature(svg$.FEMergeNodeElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEMergeNodeElement, []),
-    new: dart.definiteFunctionType(svg.FEMergeNodeElement, []),
-    created: dart.definiteFunctionType(svg.FEMergeNodeElement, [])
+    _: dart.definiteFunctionType(svg$.FEMergeNodeElement, []),
+    new: dart.definiteFunctionType(svg$.FEMergeNodeElement, []),
+    created: dart.definiteFunctionType(svg$.FEMergeNodeElement, [])
   }),
-  fields: () => ({[dartx.in1]: svg.AnimatedString}),
+  fields: () => ({[dartx.in1]: svg$.AnimatedString}),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEMergeNodeElement, svg.FEMergeNodeElement);
+dart.registerExtension(dart.global.SVGFEMergeNodeElement, svg$.FEMergeNodeElement);
 dart.defineExtensionNames([
   'in1',
   'operator',
@@ -102390,7 +102393,7 @@
   'x',
   'y'
 ]);
-svg.FEMorphologyElement = class FEMorphologyElement extends svg.SvgElement {
+svg$.FEMorphologyElement = class FEMorphologyElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -102434,23 +102437,23 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEMorphologyElement, 'created');
-svg.FEMorphologyElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEMorphologyElement, {
+dart.defineNamedConstructor(svg$.FEMorphologyElement, 'created');
+svg$.FEMorphologyElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEMorphologyElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEMorphologyElement, []),
-    created: dart.definiteFunctionType(svg.FEMorphologyElement, [])
+    _: dart.definiteFunctionType(svg$.FEMorphologyElement, []),
+    created: dart.definiteFunctionType(svg$.FEMorphologyElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.operator]: svg.AnimatedEnumeration,
-    [dartx.radiusX]: svg.AnimatedNumber,
-    [dartx.radiusY]: svg.AnimatedNumber,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.operator]: svg$.AnimatedEnumeration,
+    [dartx.radiusX]: svg$.AnimatedNumber,
+    [dartx.radiusY]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_MORPHOLOGY_OPERATOR_DILATE: core.int,
@@ -102458,10 +102461,10 @@
     SVG_MORPHOLOGY_OPERATOR_UNKNOWN: core.int
   })
 });
-svg.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
-svg.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
-svg.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGFEMorphologyElement, svg.FEMorphologyElement);
+svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
+svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
+svg$.FEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFEMorphologyElement, svg$.FEMorphologyElement);
 dart.defineExtensionNames([
   'dx',
   'dy',
@@ -102472,12 +102475,12 @@
   'x',
   'y'
 ]);
-svg.FEOffsetElement = class FEOffsetElement extends svg.SvgElement {
+svg$.FEOffsetElement = class FEOffsetElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEOffsetElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feOffset"));
+    return svg$.FEOffsetElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feOffset"));
   }
   created() {
     this[dartx.dx] = null;
@@ -102491,7 +102494,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feOffset')) && svg.FEOffsetElement.is(svg.SvgElement.tag('feOffset'));
+    return dart.test(svg$.SvgElement.isTagSupported('feOffset')) && svg$.FEOffsetElement.is(svg$.SvgElement.tag('feOffset'));
   }
   get [dartx.dx]() {
     return this.dx;
@@ -102518,38 +102521,38 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FEOffsetElement, 'created');
-svg.FEOffsetElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FEOffsetElement, {
+dart.defineNamedConstructor(svg$.FEOffsetElement, 'created');
+svg$.FEOffsetElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FEOffsetElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEOffsetElement, []),
-    new: dart.definiteFunctionType(svg.FEOffsetElement, []),
-    created: dart.definiteFunctionType(svg.FEOffsetElement, [])
+    _: dart.definiteFunctionType(svg$.FEOffsetElement, []),
+    new: dart.definiteFunctionType(svg$.FEOffsetElement, []),
+    created: dart.definiteFunctionType(svg$.FEOffsetElement, [])
   }),
   fields: () => ({
-    [dartx.dx]: svg.AnimatedNumber,
-    [dartx.dy]: svg.AnimatedNumber,
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.dx]: svg$.AnimatedNumber,
+    [dartx.dy]: svg$.AnimatedNumber,
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEOffsetElement, svg.FEOffsetElement);
+dart.registerExtension(dart.global.SVGFEOffsetElement, svg$.FEOffsetElement);
 dart.defineExtensionNames([
   'x',
   'y',
   'z'
 ]);
-svg.FEPointLightElement = class FEPointLightElement extends svg.SvgElement {
+svg$.FEPointLightElement = class FEPointLightElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FEPointLightElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("fePointLight"));
+    return svg$.FEPointLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("fePointLight"));
   }
   created() {
     this[dartx.x] = null;
@@ -102558,7 +102561,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('fePointLight')) && svg.FEPointLightElement.is(svg.SvgElement.tag('fePointLight'));
+    return dart.test(svg$.SvgElement.isTagSupported('fePointLight')) && svg$.FEPointLightElement.is(svg$.SvgElement.tag('fePointLight'));
   }
   get [dartx.x]() {
     return this.x;
@@ -102570,21 +102573,21 @@
     return this.z;
   }
 };
-dart.defineNamedConstructor(svg.FEPointLightElement, 'created');
-dart.setSignature(svg.FEPointLightElement, {
+dart.defineNamedConstructor(svg$.FEPointLightElement, 'created');
+dart.setSignature(svg$.FEPointLightElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FEPointLightElement, []),
-    new: dart.definiteFunctionType(svg.FEPointLightElement, []),
-    created: dart.definiteFunctionType(svg.FEPointLightElement, [])
+    _: dart.definiteFunctionType(svg$.FEPointLightElement, []),
+    new: dart.definiteFunctionType(svg$.FEPointLightElement, []),
+    created: dart.definiteFunctionType(svg$.FEPointLightElement, [])
   }),
   fields: () => ({
-    [dartx.x]: svg.AnimatedNumber,
-    [dartx.y]: svg.AnimatedNumber,
-    [dartx.z]: svg.AnimatedNumber
+    [dartx.x]: svg$.AnimatedNumber,
+    [dartx.y]: svg$.AnimatedNumber,
+    [dartx.z]: svg$.AnimatedNumber
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFEPointLightElement, svg.FEPointLightElement);
+dart.registerExtension(dart.global.SVGFEPointLightElement, svg$.FEPointLightElement);
 dart.defineExtensionNames([
   'in1',
   'kernelUnitLengthX',
@@ -102598,12 +102601,12 @@
   'x',
   'y'
 ]);
-svg.FESpecularLightingElement = class FESpecularLightingElement extends svg.SvgElement {
+svg$.FESpecularLightingElement = class FESpecularLightingElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FESpecularLightingElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting"));
+    return svg$.FESpecularLightingElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpecularLighting"));
   }
   created() {
     this[dartx.in1] = null;
@@ -102620,7 +102623,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feSpecularLighting')) && svg.FESpecularLightingElement.is(svg.SvgElement.tag('feSpecularLighting'));
+    return dart.test(svg$.SvgElement.isTagSupported('feSpecularLighting')) && svg$.FESpecularLightingElement.is(svg$.SvgElement.tag('feSpecularLighting'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -102656,30 +102659,30 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FESpecularLightingElement, 'created');
-svg.FESpecularLightingElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FESpecularLightingElement, {
+dart.defineNamedConstructor(svg$.FESpecularLightingElement, 'created');
+svg$.FESpecularLightingElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FESpecularLightingElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FESpecularLightingElement, []),
-    new: dart.definiteFunctionType(svg.FESpecularLightingElement, []),
-    created: dart.definiteFunctionType(svg.FESpecularLightingElement, [])
+    _: dart.definiteFunctionType(svg$.FESpecularLightingElement, []),
+    new: dart.definiteFunctionType(svg$.FESpecularLightingElement, []),
+    created: dart.definiteFunctionType(svg$.FESpecularLightingElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.kernelUnitLengthX]: svg.AnimatedNumber,
-    [dartx.kernelUnitLengthY]: svg.AnimatedNumber,
-    [dartx.specularConstant]: svg.AnimatedNumber,
-    [dartx.specularExponent]: svg.AnimatedNumber,
-    [dartx.surfaceScale]: svg.AnimatedNumber,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.kernelUnitLengthX]: svg$.AnimatedNumber,
+    [dartx.kernelUnitLengthY]: svg$.AnimatedNumber,
+    [dartx.specularConstant]: svg$.AnimatedNumber,
+    [dartx.specularExponent]: svg$.AnimatedNumber,
+    [dartx.surfaceScale]: svg$.AnimatedNumber,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFESpecularLightingElement, svg.FESpecularLightingElement);
+dart.registerExtension(dart.global.SVGFESpecularLightingElement, svg$.FESpecularLightingElement);
 dart.defineExtensionNames([
   'limitingConeAngle',
   'pointsAtX',
@@ -102690,12 +102693,12 @@
   'y',
   'z'
 ]);
-svg.FESpotLightElement = class FESpotLightElement extends svg.SvgElement {
+svg$.FESpotLightElement = class FESpotLightElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FESpotLightElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feSpotLight"));
+    return svg$.FESpotLightElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feSpotLight"));
   }
   created() {
     this[dartx.limitingConeAngle] = null;
@@ -102709,7 +102712,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feSpotLight')) && svg.FESpotLightElement.is(svg.SvgElement.tag('feSpotLight'));
+    return dart.test(svg$.SvgElement.isTagSupported('feSpotLight')) && svg$.FESpotLightElement.is(svg$.SvgElement.tag('feSpotLight'));
   }
   get [dartx.limitingConeAngle]() {
     return this.limitingConeAngle;
@@ -102736,26 +102739,26 @@
     return this.z;
   }
 };
-dart.defineNamedConstructor(svg.FESpotLightElement, 'created');
-dart.setSignature(svg.FESpotLightElement, {
+dart.defineNamedConstructor(svg$.FESpotLightElement, 'created');
+dart.setSignature(svg$.FESpotLightElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FESpotLightElement, []),
-    new: dart.definiteFunctionType(svg.FESpotLightElement, []),
-    created: dart.definiteFunctionType(svg.FESpotLightElement, [])
+    _: dart.definiteFunctionType(svg$.FESpotLightElement, []),
+    new: dart.definiteFunctionType(svg$.FESpotLightElement, []),
+    created: dart.definiteFunctionType(svg$.FESpotLightElement, [])
   }),
   fields: () => ({
-    [dartx.limitingConeAngle]: svg.AnimatedNumber,
-    [dartx.pointsAtX]: svg.AnimatedNumber,
-    [dartx.pointsAtY]: svg.AnimatedNumber,
-    [dartx.pointsAtZ]: svg.AnimatedNumber,
-    [dartx.specularExponent]: svg.AnimatedNumber,
-    [dartx.x]: svg.AnimatedNumber,
-    [dartx.y]: svg.AnimatedNumber,
-    [dartx.z]: svg.AnimatedNumber
+    [dartx.limitingConeAngle]: svg$.AnimatedNumber,
+    [dartx.pointsAtX]: svg$.AnimatedNumber,
+    [dartx.pointsAtY]: svg$.AnimatedNumber,
+    [dartx.pointsAtZ]: svg$.AnimatedNumber,
+    [dartx.specularExponent]: svg$.AnimatedNumber,
+    [dartx.x]: svg$.AnimatedNumber,
+    [dartx.y]: svg$.AnimatedNumber,
+    [dartx.z]: svg$.AnimatedNumber
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFESpotLightElement, svg.FESpotLightElement);
+dart.registerExtension(dart.global.SVGFESpotLightElement, svg$.FESpotLightElement);
 dart.defineExtensionNames([
   'in1',
   'height',
@@ -102764,12 +102767,12 @@
   'x',
   'y'
 ]);
-svg.FETileElement = class FETileElement extends svg.SvgElement {
+svg$.FETileElement = class FETileElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FETileElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feTile"));
+    return svg$.FETileElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTile"));
   }
   created() {
     this[dartx.in1] = null;
@@ -102781,7 +102784,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feTile')) && svg.FETileElement.is(svg.SvgElement.tag('feTile'));
+    return dart.test(svg$.SvgElement.isTagSupported('feTile')) && svg$.FETileElement.is(svg$.SvgElement.tag('feTile'));
   }
   get [dartx.in1]() {
     return this.in1;
@@ -102802,25 +102805,25 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FETileElement, 'created');
-svg.FETileElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FETileElement, {
+dart.defineNamedConstructor(svg$.FETileElement, 'created');
+svg$.FETileElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FETileElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FETileElement, []),
-    new: dart.definiteFunctionType(svg.FETileElement, []),
-    created: dart.definiteFunctionType(svg.FETileElement, [])
+    _: dart.definiteFunctionType(svg$.FETileElement, []),
+    new: dart.definiteFunctionType(svg$.FETileElement, []),
+    created: dart.definiteFunctionType(svg$.FETileElement, [])
   }),
   fields: () => ({
-    [dartx.in1]: svg.AnimatedString,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.in1]: svg$.AnimatedString,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFETileElement, svg.FETileElement);
+dart.registerExtension(dart.global.SVGFETileElement, svg$.FETileElement);
 dart.defineExtensionNames([
   'baseFrequencyX',
   'baseFrequencyY',
@@ -102834,12 +102837,12 @@
   'x',
   'y'
 ]);
-svg.FETurbulenceElement = class FETurbulenceElement extends svg.SvgElement {
+svg$.FETurbulenceElement = class FETurbulenceElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FETurbulenceElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("feTurbulence"));
+    return svg$.FETurbulenceElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("feTurbulence"));
   }
   created() {
     this[dartx.baseFrequencyX] = null;
@@ -102856,7 +102859,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('feTurbulence')) && svg.FETurbulenceElement.is(svg.SvgElement.tag('feTurbulence'));
+    return dart.test(svg$.SvgElement.isTagSupported('feTurbulence')) && svg$.FETurbulenceElement.is(svg$.SvgElement.tag('feTurbulence'));
   }
   get [dartx.baseFrequencyX]() {
     return this.baseFrequencyX;
@@ -102892,26 +102895,26 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.FETurbulenceElement, 'created');
-svg.FETurbulenceElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg.FETurbulenceElement, {
+dart.defineNamedConstructor(svg$.FETurbulenceElement, 'created');
+svg$.FETurbulenceElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$.FETurbulenceElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FETurbulenceElement, []),
-    new: dart.definiteFunctionType(svg.FETurbulenceElement, []),
-    created: dart.definiteFunctionType(svg.FETurbulenceElement, [])
+    _: dart.definiteFunctionType(svg$.FETurbulenceElement, []),
+    new: dart.definiteFunctionType(svg$.FETurbulenceElement, []),
+    created: dart.definiteFunctionType(svg$.FETurbulenceElement, [])
   }),
   fields: () => ({
-    [dartx.baseFrequencyX]: svg.AnimatedNumber,
-    [dartx.baseFrequencyY]: svg.AnimatedNumber,
-    [dartx.numOctaves]: svg.AnimatedInteger,
-    [dartx.seed]: svg.AnimatedNumber,
-    [dartx.stitchTiles]: svg.AnimatedEnumeration,
-    [dartx.type]: svg.AnimatedEnumeration,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.result]: svg.AnimatedString,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.baseFrequencyX]: svg$.AnimatedNumber,
+    [dartx.baseFrequencyY]: svg$.AnimatedNumber,
+    [dartx.numOctaves]: svg$.AnimatedInteger,
+    [dartx.seed]: svg$.AnimatedNumber,
+    [dartx.stitchTiles]: svg$.AnimatedEnumeration,
+    [dartx.type]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.result]: svg$.AnimatedString,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sfields: () => ({
     SVG_STITCHTYPE_NOSTITCH: core.int,
@@ -102923,13 +102926,13 @@
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-svg.FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH = 2;
-svg.FETurbulenceElement.SVG_STITCHTYPE_STITCH = 1;
-svg.FETurbulenceElement.SVG_STITCHTYPE_UNKNOWN = 0;
-svg.FETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
-svg.FETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE = 2;
-svg.FETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGFETurbulenceElement, svg.FETurbulenceElement);
+svg$.FETurbulenceElement.SVG_STITCHTYPE_NOSTITCH = 2;
+svg$.FETurbulenceElement.SVG_STITCHTYPE_STITCH = 1;
+svg$.FETurbulenceElement.SVG_STITCHTYPE_UNKNOWN = 0;
+svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
+svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE = 2;
+svg$.FETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGFETurbulenceElement, svg$.FETurbulenceElement);
 dart.defineExtensionNames([
   'filterUnits',
   'height',
@@ -102939,12 +102942,12 @@
   'y',
   'href'
 ]);
-svg.FilterElement = class FilterElement extends svg.SvgElement {
+svg$.FilterElement = class FilterElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.FilterElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("filter"));
+    return svg$.FilterElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("filter"));
   }
   created() {
     this[dartx.filterUnits] = null;
@@ -102957,7 +102960,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('filter')) && svg.FilterElement.is(svg.SvgElement.tag('filter'));
+    return dart.test(svg$.SvgElement.isTagSupported('filter')) && svg$.FilterElement.is(svg$.SvgElement.tag('filter'));
   }
   get [dartx.filterUnits]() {
     return this.filterUnits;
@@ -102981,26 +102984,26 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.FilterElement, 'created');
-svg.FilterElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg.FilterElement, {
+dart.defineNamedConstructor(svg$.FilterElement, 'created');
+svg$.FilterElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.FilterElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.FilterElement, []),
-    new: dart.definiteFunctionType(svg.FilterElement, []),
-    created: dart.definiteFunctionType(svg.FilterElement, [])
+    _: dart.definiteFunctionType(svg$.FilterElement, []),
+    new: dart.definiteFunctionType(svg$.FilterElement, []),
+    created: dart.definiteFunctionType(svg$.FilterElement, [])
   }),
   fields: () => ({
-    [dartx.filterUnits]: svg.AnimatedEnumeration,
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.primitiveUnits]: svg.AnimatedEnumeration,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.href]: svg.AnimatedString
+    [dartx.filterUnits]: svg$.AnimatedEnumeration,
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.primitiveUnits]: svg$.AnimatedEnumeration,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGFilterElement, svg.FilterElement);
+dart.registerExtension(dart.global.SVGFilterElement, svg$.FilterElement);
 dart.defineExtensionNames([
   'height',
   'result',
@@ -103008,12 +103011,12 @@
   'x',
   'y'
 ]);
-svg.FilterPrimitiveStandardAttributes = class FilterPrimitiveStandardAttributes extends _interceptors.Interceptor {
+svg$.FilterPrimitiveStandardAttributes = class FilterPrimitiveStandardAttributes extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get height() {
-    return this[height];
+    return this[height$];
   }
   set height(value) {
     super.height = value;
@@ -103025,7 +103028,7 @@
     super.result = value;
   }
   get width() {
-    return this[width];
+    return this[width$];
   }
   set width(value) {
     super.width = value;
@@ -103043,22 +103046,22 @@
     super.y = value;
   }
 };
-const height = Symbol(svg.FilterPrimitiveStandardAttributes.name + "." + 'height'.toString());
-const result = Symbol(svg.FilterPrimitiveStandardAttributes.name + "." + 'result'.toString());
-const width = Symbol(svg.FilterPrimitiveStandardAttributes.name + "." + 'width'.toString());
-const x = Symbol(svg.FilterPrimitiveStandardAttributes.name + "." + 'x'.toString());
-const y = Symbol(svg.FilterPrimitiveStandardAttributes.name + "." + 'y'.toString());
-dart.setSignature(svg.FilterPrimitiveStandardAttributes, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.FilterPrimitiveStandardAttributes, [])}),
+const height$ = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'height'.toString());
+const result = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'result'.toString());
+const width$ = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'width'.toString());
+const x = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'x'.toString());
+const y = Symbol(svg$.FilterPrimitiveStandardAttributes.name + "." + 'y'.toString());
+dart.setSignature(svg$.FilterPrimitiveStandardAttributes, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.FilterPrimitiveStandardAttributes, [])}),
   fields: () => ({
-    height: svg.AnimatedLength,
-    result: svg.AnimatedString,
-    width: svg.AnimatedLength,
-    x: svg.AnimatedLength,
-    y: svg.AnimatedLength
+    height: svg$.AnimatedLength,
+    result: svg$.AnimatedString,
+    width: svg$.AnimatedLength,
+    x: svg$.AnimatedLength,
+    y: svg$.AnimatedLength
   })
 });
-dart.defineExtensionMembers(svg.FilterPrimitiveStandardAttributes, [
+dart.defineExtensionMembers(svg$.FilterPrimitiveStandardAttributes, [
   'height',
   'result',
   'width',
@@ -103069,7 +103072,7 @@
   'preserveAspectRatio',
   'viewBox'
 ]);
-svg.FitToViewBox = class FitToViewBox extends _interceptors.Interceptor {
+svg$.FitToViewBox = class FitToViewBox extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103086,28 +103089,28 @@
     super.viewBox = value;
   }
 };
-const preserveAspectRatio = Symbol(svg.FitToViewBox.name + "." + 'preserveAspectRatio'.toString());
-const viewBox = Symbol(svg.FitToViewBox.name + "." + 'viewBox'.toString());
-dart.setSignature(svg.FitToViewBox, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.FitToViewBox, [])}),
+const preserveAspectRatio = Symbol(svg$.FitToViewBox.name + "." + 'preserveAspectRatio'.toString());
+const viewBox = Symbol(svg$.FitToViewBox.name + "." + 'viewBox'.toString());
+dart.setSignature(svg$.FitToViewBox, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.FitToViewBox, [])}),
   fields: () => ({
-    preserveAspectRatio: svg.AnimatedPreserveAspectRatio,
-    viewBox: svg.AnimatedRect
+    preserveAspectRatio: svg$.AnimatedPreserveAspectRatio,
+    viewBox: svg$.AnimatedRect
   })
 });
-dart.defineExtensionMembers(svg.FitToViewBox, ['preserveAspectRatio', 'viewBox']);
+dart.defineExtensionMembers(svg$.FitToViewBox, ['preserveAspectRatio', 'viewBox']);
 dart.defineExtensionNames([
   'height',
   'width',
   'x',
   'y'
 ]);
-svg.ForeignObjectElement = class ForeignObjectElement extends svg.GraphicsElement {
+svg$.ForeignObjectElement = class ForeignObjectElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.ForeignObjectElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("foreignObject"));
+    return svg$.ForeignObjectElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("foreignObject"));
   }
   created() {
     this[dartx.height] = null;
@@ -103117,7 +103120,7 @@
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('foreignObject')) && svg.ForeignObjectElement.is(svg.SvgElement.tag('foreignObject'));
+    return dart.test(svg$.SvgElement.isTagSupported('foreignObject')) && svg$.ForeignObjectElement.is(svg$.SvgElement.tag('foreignObject'));
   }
   get [dartx.height]() {
     return this.height;
@@ -103132,42 +103135,42 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.ForeignObjectElement, 'created');
-dart.setSignature(svg.ForeignObjectElement, {
+dart.defineNamedConstructor(svg$.ForeignObjectElement, 'created');
+dart.setSignature(svg$.ForeignObjectElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.ForeignObjectElement, []),
-    new: dart.definiteFunctionType(svg.ForeignObjectElement, []),
-    created: dart.definiteFunctionType(svg.ForeignObjectElement, [])
+    _: dart.definiteFunctionType(svg$.ForeignObjectElement, []),
+    new: dart.definiteFunctionType(svg$.ForeignObjectElement, []),
+    created: dart.definiteFunctionType(svg$.ForeignObjectElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGForeignObjectElement, svg.ForeignObjectElement);
-svg.GElement = class GElement extends svg.GraphicsElement {
+dart.registerExtension(dart.global.SVGForeignObjectElement, svg$.ForeignObjectElement);
+svg$.GElement = class GElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.GElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("g"));
+    return svg$.GElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("g"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.GElement, 'created');
-dart.setSignature(svg.GElement, {
+dart.defineNamedConstructor(svg$.GElement, 'created');
+dart.setSignature(svg$.GElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.GElement, []),
-    new: dart.definiteFunctionType(svg.GElement, []),
-    created: dart.definiteFunctionType(svg.GElement, [])
+    _: dart.definiteFunctionType(svg$.GElement, []),
+    new: dart.definiteFunctionType(svg$.GElement, []),
+    created: dart.definiteFunctionType(svg$.GElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGGElement, svg.GElement);
+dart.registerExtension(dart.global.SVGGElement, svg$.GElement);
 dart.defineExtensionNames([
   'height',
   'preserveAspectRatio',
@@ -103176,12 +103179,12 @@
   'y',
   'href'
 ]);
-svg.ImageElement = class ImageElement extends svg.GraphicsElement {
+svg$.ImageElement = class ImageElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.ImageElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("image"));
+    return svg$.ImageElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("image"));
   }
   created() {
     this[dartx.height] = null;
@@ -103211,24 +103214,24 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.ImageElement, 'created');
-svg.ImageElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg.ImageElement, {
+dart.defineNamedConstructor(svg$.ImageElement, 'created');
+svg$.ImageElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.ImageElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.ImageElement, []),
-    new: dart.definiteFunctionType(svg.ImageElement, []),
-    created: dart.definiteFunctionType(svg.ImageElement, [])
+    _: dart.definiteFunctionType(svg$.ImageElement, []),
+    new: dart.definiteFunctionType(svg$.ImageElement, []),
+    created: dart.definiteFunctionType(svg$.ImageElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.href]: svg.AnimatedString
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
   })
 });
-dart.registerExtension(dart.global.SVGImageElement, svg.ImageElement);
+dart.registerExtension(dart.global.SVGImageElement, svg$.ImageElement);
 dart.defineExtensionNames([
   'convertToSpecifiedUnits',
   'newValueSpecifiedUnits',
@@ -103237,7 +103240,7 @@
   'valueAsString',
   'valueInSpecifiedUnits'
 ]);
-svg.Length = class Length extends _interceptors.Interceptor {
+svg$.Length = class Length extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103269,8 +103272,8 @@
     return this.newValueSpecifiedUnits.apply(this, args);
   }
 };
-dart.setSignature(svg.Length, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Length, [])}),
+dart.setSignature(svg$.Length, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Length, [])}),
   fields: () => ({
     [dartx.unitType]: core.int,
     [dartx.value]: core.num,
@@ -103295,19 +103298,19 @@
     SVG_LENGTHTYPE_UNKNOWN: core.int
   })
 });
-svg.Length.SVG_LENGTHTYPE_CM = 6;
-svg.Length.SVG_LENGTHTYPE_EMS = 3;
-svg.Length.SVG_LENGTHTYPE_EXS = 4;
-svg.Length.SVG_LENGTHTYPE_IN = 8;
-svg.Length.SVG_LENGTHTYPE_MM = 7;
-svg.Length.SVG_LENGTHTYPE_NUMBER = 1;
-svg.Length.SVG_LENGTHTYPE_PC = 10;
-svg.Length.SVG_LENGTHTYPE_PERCENTAGE = 2;
-svg.Length.SVG_LENGTHTYPE_PT = 9;
-svg.Length.SVG_LENGTHTYPE_PX = 5;
-svg.Length.SVG_LENGTHTYPE_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGLength, svg.Length);
-const __setter__ = Symbol('__setter__');
+svg$.Length.SVG_LENGTHTYPE_CM = 6;
+svg$.Length.SVG_LENGTHTYPE_EMS = 3;
+svg$.Length.SVG_LENGTHTYPE_EXS = 4;
+svg$.Length.SVG_LENGTHTYPE_IN = 8;
+svg$.Length.SVG_LENGTHTYPE_MM = 7;
+svg$.Length.SVG_LENGTHTYPE_NUMBER = 1;
+svg$.Length.SVG_LENGTHTYPE_PC = 10;
+svg$.Length.SVG_LENGTHTYPE_PERCENTAGE = 2;
+svg$.Length.SVG_LENGTHTYPE_PT = 9;
+svg$.Length.SVG_LENGTHTYPE_PX = 5;
+svg$.Length.SVG_LENGTHTYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGLength, svg$.Length);
+const __setter__$ = Symbol('__setter__');
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -103326,7 +103329,7 @@
   'replaceItem',
   'numberOfItems'
 ]);
-svg.LengthList = class LengthList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg.Length), html.ImmutableListMixin$(svg.Length)) {
+svg$.LengthList = class LengthList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Length), html$.ImmutableListMixin$(svg$.Length)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103371,7 +103374,7 @@
   [dartx.elementAt](index) {
     return this[dartx._get](index);
   }
-  [__setter__](...args) {
+  [__setter__$](...args) {
     return this.__setter__.apply(this, args);
   }
   [dartx.appendItem](...args) {
@@ -103396,37 +103399,37 @@
     return this.replaceItem.apply(this, args);
   }
 };
-svg.LengthList[dart.implements] = () => [ListOfLength()];
-dart.setSignature(svg.LengthList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.LengthList, [])}),
+svg$.LengthList[dart.implements] = () => [ListOfLength()];
+dart.setSignature(svg$.LengthList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.LengthList, [])}),
   fields: () => ({[dartx.numberOfItems]: core.int}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(svg.Length, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg.Length]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, svg.Length]),
-    [dartx.appendItem]: dart.definiteFunctionType(svg.Length, [svg.Length]),
-    [dartx.getItem]: dart.definiteFunctionType(svg.Length, [core.int]),
-    [dartx.initialize]: dart.definiteFunctionType(svg.Length, [svg.Length]),
-    [dartx.insertItemBefore]: dart.definiteFunctionType(svg.Length, [svg.Length, core.int]),
-    [dartx.removeItem]: dart.definiteFunctionType(svg.Length, [core.int]),
-    [dartx.replaceItem]: dart.definiteFunctionType(svg.Length, [svg.Length, core.int])
+    [dartx._get]: dart.definiteFunctionType(svg$.Length, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Length]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Length]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Length, [svg$.Length]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Length, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Length, [svg$.Length]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Length, [svg$.Length, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Length, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Length, [svg$.Length, core.int])
   })
 });
-dart.registerExtension(dart.global.SVGLengthList, svg.LengthList);
+dart.registerExtension(dart.global.SVGLengthList, svg$.LengthList);
 dart.defineExtensionNames([
   'x1',
   'x2',
   'y1',
   'y2'
 ]);
-svg.LineElement = class LineElement extends svg.GeometryElement {
+svg$.LineElement = class LineElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.LineElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("line"));
+    return svg$.LineElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("line"));
   }
   created() {
     this[dartx.x1] = null;
@@ -103448,28 +103451,28 @@
     return this.y2;
   }
 };
-dart.defineNamedConstructor(svg.LineElement, 'created');
-dart.setSignature(svg.LineElement, {
+dart.defineNamedConstructor(svg$.LineElement, 'created');
+dart.setSignature(svg$.LineElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.LineElement, []),
-    new: dart.definiteFunctionType(svg.LineElement, []),
-    created: dart.definiteFunctionType(svg.LineElement, [])
+    _: dart.definiteFunctionType(svg$.LineElement, []),
+    new: dart.definiteFunctionType(svg$.LineElement, []),
+    created: dart.definiteFunctionType(svg$.LineElement, [])
   }),
   fields: () => ({
-    [dartx.x1]: svg.AnimatedLength,
-    [dartx.x2]: svg.AnimatedLength,
-    [dartx.y1]: svg.AnimatedLength,
-    [dartx.y2]: svg.AnimatedLength
+    [dartx.x1]: svg$.AnimatedLength,
+    [dartx.x2]: svg$.AnimatedLength,
+    [dartx.y1]: svg$.AnimatedLength,
+    [dartx.y2]: svg$.AnimatedLength
   })
 });
-dart.registerExtension(dart.global.SVGLineElement, svg.LineElement);
+dart.registerExtension(dart.global.SVGLineElement, svg$.LineElement);
 dart.defineExtensionNames([
   'gradientTransform',
   'gradientUnits',
   'spreadMethod',
   'href'
 ]);
-svg._GradientElement = class _GradientElement extends svg.SvgElement {
+svg$._GradientElement = class _GradientElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103493,18 +103496,18 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg._GradientElement, 'created');
-svg._GradientElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg._GradientElement, {
+dart.defineNamedConstructor(svg$._GradientElement, 'created');
+svg$._GradientElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$._GradientElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg._GradientElement, []),
-    created: dart.definiteFunctionType(svg._GradientElement, [])
+    _: dart.definiteFunctionType(svg$._GradientElement, []),
+    created: dart.definiteFunctionType(svg$._GradientElement, [])
   }),
   fields: () => ({
-    [dartx.gradientTransform]: svg.AnimatedTransformList,
-    [dartx.gradientUnits]: svg.AnimatedEnumeration,
-    [dartx.spreadMethod]: svg.AnimatedEnumeration,
-    [dartx.href]: svg.AnimatedString
+    [dartx.gradientTransform]: svg$.AnimatedTransformList,
+    [dartx.gradientUnits]: svg$.AnimatedEnumeration,
+    [dartx.spreadMethod]: svg$.AnimatedEnumeration,
+    [dartx.href]: svg$.AnimatedString
   }),
   sfields: () => ({
     SVG_SPREADMETHOD_PAD: core.int,
@@ -103513,23 +103516,23 @@
     SVG_SPREADMETHOD_UNKNOWN: core.int
   })
 });
-svg._GradientElement.SVG_SPREADMETHOD_PAD = 1;
-svg._GradientElement.SVG_SPREADMETHOD_REFLECT = 2;
-svg._GradientElement.SVG_SPREADMETHOD_REPEAT = 3;
-svg._GradientElement.SVG_SPREADMETHOD_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGGradientElement, svg._GradientElement);
+svg$._GradientElement.SVG_SPREADMETHOD_PAD = 1;
+svg$._GradientElement.SVG_SPREADMETHOD_REFLECT = 2;
+svg$._GradientElement.SVG_SPREADMETHOD_REPEAT = 3;
+svg$._GradientElement.SVG_SPREADMETHOD_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGGradientElement, svg$._GradientElement);
 dart.defineExtensionNames([
   'x1',
   'x2',
   'y1',
   'y2'
 ]);
-svg.LinearGradientElement = class LinearGradientElement extends svg._GradientElement {
+svg$.LinearGradientElement = class LinearGradientElement extends svg$._GradientElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.LinearGradientElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("linearGradient"));
+    return svg$.LinearGradientElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("linearGradient"));
   }
   created() {
     this[dartx.x1] = null;
@@ -103551,21 +103554,21 @@
     return this.y2;
   }
 };
-dart.defineNamedConstructor(svg.LinearGradientElement, 'created');
-dart.setSignature(svg.LinearGradientElement, {
+dart.defineNamedConstructor(svg$.LinearGradientElement, 'created');
+dart.setSignature(svg$.LinearGradientElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.LinearGradientElement, []),
-    new: dart.definiteFunctionType(svg.LinearGradientElement, []),
-    created: dart.definiteFunctionType(svg.LinearGradientElement, [])
+    _: dart.definiteFunctionType(svg$.LinearGradientElement, []),
+    new: dart.definiteFunctionType(svg$.LinearGradientElement, []),
+    created: dart.definiteFunctionType(svg$.LinearGradientElement, [])
   }),
   fields: () => ({
-    [dartx.x1]: svg.AnimatedLength,
-    [dartx.x2]: svg.AnimatedLength,
-    [dartx.y1]: svg.AnimatedLength,
-    [dartx.y2]: svg.AnimatedLength
+    [dartx.x1]: svg$.AnimatedLength,
+    [dartx.x2]: svg$.AnimatedLength,
+    [dartx.y1]: svg$.AnimatedLength,
+    [dartx.y2]: svg$.AnimatedLength
   })
 });
-dart.registerExtension(dart.global.SVGLinearGradientElement, svg.LinearGradientElement);
+dart.registerExtension(dart.global.SVGLinearGradientElement, svg$.LinearGradientElement);
 dart.defineExtensionNames([
   'setOrientToAngle',
   'setOrientToAuto',
@@ -103579,12 +103582,12 @@
   'preserveAspectRatio',
   'viewBox'
 ]);
-svg.MarkerElement = class MarkerElement extends svg.SvgElement {
+svg$.MarkerElement = class MarkerElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.MarkerElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("marker"));
+    return svg$.MarkerElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("marker"));
   }
   created() {
     this[dartx.markerHeight] = null;
@@ -103632,27 +103635,27 @@
     return this.viewBox;
   }
 };
-dart.defineNamedConstructor(svg.MarkerElement, 'created');
-svg.MarkerElement[dart.implements] = () => [svg.FitToViewBox];
-dart.setSignature(svg.MarkerElement, {
+dart.defineNamedConstructor(svg$.MarkerElement, 'created');
+svg$.MarkerElement[dart.implements] = () => [svg$.FitToViewBox];
+dart.setSignature(svg$.MarkerElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.MarkerElement, []),
-    new: dart.definiteFunctionType(svg.MarkerElement, []),
-    created: dart.definiteFunctionType(svg.MarkerElement, [])
+    _: dart.definiteFunctionType(svg$.MarkerElement, []),
+    new: dart.definiteFunctionType(svg$.MarkerElement, []),
+    created: dart.definiteFunctionType(svg$.MarkerElement, [])
   }),
   fields: () => ({
-    [dartx.markerHeight]: svg.AnimatedLength,
-    [dartx.markerUnits]: svg.AnimatedEnumeration,
-    [dartx.markerWidth]: svg.AnimatedLength,
-    [dartx.orientAngle]: svg.AnimatedAngle,
-    [dartx.orientType]: svg.AnimatedEnumeration,
-    [dartx.refX]: svg.AnimatedLength,
-    [dartx.refY]: svg.AnimatedLength,
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.viewBox]: svg.AnimatedRect
+    [dartx.markerHeight]: svg$.AnimatedLength,
+    [dartx.markerUnits]: svg$.AnimatedEnumeration,
+    [dartx.markerWidth]: svg$.AnimatedLength,
+    [dartx.orientAngle]: svg$.AnimatedAngle,
+    [dartx.orientType]: svg$.AnimatedEnumeration,
+    [dartx.refX]: svg$.AnimatedLength,
+    [dartx.refY]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect
   }),
   methods: () => ({
-    [dartx.setOrientToAngle]: dart.definiteFunctionType(dart.void, [svg.Angle]),
+    [dartx.setOrientToAngle]: dart.definiteFunctionType(dart.void, [svg$.Angle]),
     [dartx.setOrientToAuto]: dart.definiteFunctionType(dart.void, [])
   }),
   sfields: () => ({
@@ -103664,13 +103667,13 @@
     SVG_MARKER_ORIENT_UNKNOWN: core.int
   })
 });
-svg.MarkerElement.SVG_MARKERUNITS_STROKEWIDTH = 2;
-svg.MarkerElement.SVG_MARKERUNITS_UNKNOWN = 0;
-svg.MarkerElement.SVG_MARKERUNITS_USERSPACEONUSE = 1;
-svg.MarkerElement.SVG_MARKER_ORIENT_ANGLE = 2;
-svg.MarkerElement.SVG_MARKER_ORIENT_AUTO = 1;
-svg.MarkerElement.SVG_MARKER_ORIENT_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGMarkerElement, svg.MarkerElement);
+svg$.MarkerElement.SVG_MARKERUNITS_STROKEWIDTH = 2;
+svg$.MarkerElement.SVG_MARKERUNITS_UNKNOWN = 0;
+svg$.MarkerElement.SVG_MARKERUNITS_USERSPACEONUSE = 1;
+svg$.MarkerElement.SVG_MARKER_ORIENT_ANGLE = 2;
+svg$.MarkerElement.SVG_MARKER_ORIENT_AUTO = 1;
+svg$.MarkerElement.SVG_MARKER_ORIENT_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGMarkerElement, svg$.MarkerElement);
 dart.defineExtensionNames([
   'hasExtension',
   'height',
@@ -103683,12 +103686,12 @@
   'requiredFeatures',
   'systemLanguage'
 ]);
-svg.MaskElement = class MaskElement extends svg.SvgElement {
+svg$.MaskElement = class MaskElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.MaskElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("mask"));
+    return svg$.MaskElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("mask"));
   }
   created() {
     this[dartx.height] = null;
@@ -103733,28 +103736,28 @@
     return this.hasExtension.apply(this, args);
   }
 };
-dart.defineNamedConstructor(svg.MaskElement, 'created');
-svg.MaskElement[dart.implements] = () => [svg.Tests];
-dart.setSignature(svg.MaskElement, {
+dart.defineNamedConstructor(svg$.MaskElement, 'created');
+svg$.MaskElement[dart.implements] = () => [svg$.Tests];
+dart.setSignature(svg$.MaskElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.MaskElement, []),
-    new: dart.definiteFunctionType(svg.MaskElement, []),
-    created: dart.definiteFunctionType(svg.MaskElement, [])
+    _: dart.definiteFunctionType(svg$.MaskElement, []),
+    new: dart.definiteFunctionType(svg$.MaskElement, []),
+    created: dart.definiteFunctionType(svg$.MaskElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.maskContentUnits]: svg.AnimatedEnumeration,
-    [dartx.maskUnits]: svg.AnimatedEnumeration,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.requiredExtensions]: svg.StringList,
-    [dartx.requiredFeatures]: svg.StringList,
-    [dartx.systemLanguage]: svg.StringList
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.maskContentUnits]: svg$.AnimatedEnumeration,
+    [dartx.maskUnits]: svg$.AnimatedEnumeration,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList
   }),
   methods: () => ({[dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])})
 });
-dart.registerExtension(dart.global.SVGMaskElement, svg.MaskElement);
+dart.registerExtension(dart.global.SVGMaskElement, svg$.MaskElement);
 dart.defineExtensionNames([
   'flipX',
   'flipY',
@@ -103774,7 +103777,7 @@
   'e',
   'f'
 ]);
-svg.Matrix = class Matrix extends _interceptors.Interceptor {
+svg$.Matrix = class Matrix extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103848,8 +103851,8 @@
     return this.translate.apply(this, args);
   }
 };
-dart.setSignature(svg.Matrix, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Matrix, [])}),
+dart.setSignature(svg$.Matrix, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Matrix, [])}),
   fields: () => ({
     [dartx.a]: core.num,
     [dartx.b]: core.num,
@@ -103859,21 +103862,21 @@
     [dartx.f]: core.num
   }),
   methods: () => ({
-    [dartx.flipX]: dart.definiteFunctionType(svg.Matrix, []),
-    [dartx.flipY]: dart.definiteFunctionType(svg.Matrix, []),
-    [dartx.inverse]: dart.definiteFunctionType(svg.Matrix, []),
-    [dartx.multiply]: dart.definiteFunctionType(svg.Matrix, [svg.Matrix]),
-    [dartx.rotate]: dart.definiteFunctionType(svg.Matrix, [core.num]),
-    [dartx.rotateFromVector]: dart.definiteFunctionType(svg.Matrix, [core.num, core.num]),
-    [dartx.scale]: dart.definiteFunctionType(svg.Matrix, [core.num]),
-    [dartx.scaleNonUniform]: dart.definiteFunctionType(svg.Matrix, [core.num, core.num]),
-    [dartx.skewX]: dart.definiteFunctionType(svg.Matrix, [core.num]),
-    [dartx.skewY]: dart.definiteFunctionType(svg.Matrix, [core.num]),
-    [dartx.translate]: dart.definiteFunctionType(svg.Matrix, [core.num, core.num])
+    [dartx.flipX]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.flipY]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.inverse]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.multiply]: dart.definiteFunctionType(svg$.Matrix, [svg$.Matrix]),
+    [dartx.rotate]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.rotateFromVector]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num]),
+    [dartx.scale]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.scaleNonUniform]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num]),
+    [dartx.skewX]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.skewY]: dart.definiteFunctionType(svg$.Matrix, [core.num]),
+    [dartx.translate]: dart.definiteFunctionType(svg$.Matrix, [core.num, core.num])
   })
 });
-dart.registerExtension(dart.global.SVGMatrix, svg.Matrix);
-svg.MetadataElement = class MetadataElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGMatrix, svg$.Matrix);
+svg$.MetadataElement = class MetadataElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103881,18 +103884,18 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.MetadataElement, 'created');
-dart.setSignature(svg.MetadataElement, {
+dart.defineNamedConstructor(svg$.MetadataElement, 'created');
+dart.setSignature(svg$.MetadataElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.MetadataElement, []),
-    created: dart.definiteFunctionType(svg.MetadataElement, [])
+    _: dart.definiteFunctionType(svg$.MetadataElement, []),
+    created: dart.definiteFunctionType(svg$.MetadataElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGMetadataElement, svg.MetadataElement);
+dart.registerExtension(dart.global.SVGMetadataElement, svg$.MetadataElement);
 dart.defineExtensionNames([
   'value'
 ]);
-svg.Number = class Number extends _interceptors.Interceptor {
+svg$.Number = class Number extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103903,11 +103906,11 @@
     this.value = value;
   }
 };
-dart.setSignature(svg.Number, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Number, [])}),
+dart.setSignature(svg$.Number, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Number, [])}),
   fields: () => ({[dartx.value]: core.num})
 });
-dart.registerExtension(dart.global.SVGNumber, svg.Number);
+dart.registerExtension(dart.global.SVGNumber, svg$.Number);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -103926,7 +103929,7 @@
   'replaceItem',
   'numberOfItems'
 ]);
-svg.NumberList = class NumberList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg.Number), html.ImmutableListMixin$(svg.Number)) {
+svg$.NumberList = class NumberList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Number), html$.ImmutableListMixin$(svg$.Number)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -103971,7 +103974,7 @@
   [dartx.elementAt](index) {
     return this[dartx._get](index);
   }
-  [__setter__](...args) {
+  [__setter__$](...args) {
     return this.__setter__.apply(this, args);
   }
   [dartx.appendItem](...args) {
@@ -103996,25 +103999,25 @@
     return this.replaceItem.apply(this, args);
   }
 };
-svg.NumberList[dart.implements] = () => [ListOfNumber()];
-dart.setSignature(svg.NumberList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.NumberList, [])}),
+svg$.NumberList[dart.implements] = () => [ListOfNumber()];
+dart.setSignature(svg$.NumberList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.NumberList, [])}),
   fields: () => ({[dartx.numberOfItems]: core.int}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(svg.Number, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg.Number]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, svg.Number]),
-    [dartx.appendItem]: dart.definiteFunctionType(svg.Number, [svg.Number]),
-    [dartx.getItem]: dart.definiteFunctionType(svg.Number, [core.int]),
-    [dartx.initialize]: dart.definiteFunctionType(svg.Number, [svg.Number]),
-    [dartx.insertItemBefore]: dart.definiteFunctionType(svg.Number, [svg.Number, core.int]),
-    [dartx.removeItem]: dart.definiteFunctionType(svg.Number, [core.int]),
-    [dartx.replaceItem]: dart.definiteFunctionType(svg.Number, [svg.Number, core.int])
+    [dartx._get]: dart.definiteFunctionType(svg$.Number, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Number]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Number]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Number, [svg$.Number]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Number, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Number, [svg$.Number]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Number, [svg$.Number, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Number, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Number, [svg$.Number, core.int])
   })
 });
-dart.registerExtension(dart.global.SVGNumberList, svg.NumberList);
+dart.registerExtension(dart.global.SVGNumberList, svg$.NumberList);
 dart.defineExtensionNames([
   'createSvgPathSegArcAbs',
   'createSvgPathSegArcRel',
@@ -104044,12 +104047,12 @@
   'pathLength',
   'pathSegList'
 ]);
-svg.PathElement = class PathElement extends svg.GeometryElement {
+svg$.PathElement = class PathElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.PathElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("path"));
+    return svg$.PathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("path"));
   }
   created() {
     this[dartx.animatedNormalizedPathSegList] = null;
@@ -104141,51 +104144,51 @@
     return this.getTotalLength.apply(this, args);
   }
 };
-dart.defineNamedConstructor(svg.PathElement, 'created');
-dart.setSignature(svg.PathElement, {
+dart.defineNamedConstructor(svg$.PathElement, 'created');
+dart.setSignature(svg$.PathElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.PathElement, []),
-    new: dart.definiteFunctionType(svg.PathElement, []),
-    created: dart.definiteFunctionType(svg.PathElement, [])
+    _: dart.definiteFunctionType(svg$.PathElement, []),
+    new: dart.definiteFunctionType(svg$.PathElement, []),
+    created: dart.definiteFunctionType(svg$.PathElement, [])
   }),
   fields: () => ({
-    [dartx.animatedNormalizedPathSegList]: svg.PathSegList,
-    [dartx.animatedPathSegList]: svg.PathSegList,
-    [dartx.normalizedPathSegList]: svg.PathSegList,
-    [dartx.pathLength]: svg.AnimatedNumber,
-    [dartx.pathSegList]: svg.PathSegList
+    [dartx.animatedNormalizedPathSegList]: svg$.PathSegList,
+    [dartx.animatedPathSegList]: svg$.PathSegList,
+    [dartx.normalizedPathSegList]: svg$.PathSegList,
+    [dartx.pathLength]: svg$.AnimatedNumber,
+    [dartx.pathSegList]: svg$.PathSegList
   }),
   methods: () => ({
-    [dartx.createSvgPathSegArcAbs]: dart.definiteFunctionType(svg.PathSegArcAbs, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
-    [dartx.createSvgPathSegArcRel]: dart.definiteFunctionType(svg.PathSegArcRel, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
-    [dartx.createSvgPathSegClosePath]: dart.definiteFunctionType(svg.PathSegClosePath, []),
-    [dartx.createSvgPathSegCurvetoCubicAbs]: dart.definiteFunctionType(svg.PathSegCurvetoCubicAbs, [core.num, core.num, core.num, core.num, core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoCubicRel]: dart.definiteFunctionType(svg.PathSegCurvetoCubicRel, [core.num, core.num, core.num, core.num, core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoCubicSmoothAbs]: dart.definiteFunctionType(svg.PathSegCurvetoCubicSmoothAbs, [core.num, core.num, core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoCubicSmoothRel]: dart.definiteFunctionType(svg.PathSegCurvetoCubicSmoothRel, [core.num, core.num, core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoQuadraticAbs]: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticAbs, [core.num, core.num, core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoQuadraticRel]: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticRel, [core.num, core.num, core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoQuadraticSmoothAbs]: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticSmoothAbs, [core.num, core.num]),
-    [dartx.createSvgPathSegCurvetoQuadraticSmoothRel]: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticSmoothRel, [core.num, core.num]),
-    [dartx.createSvgPathSegLinetoAbs]: dart.definiteFunctionType(svg.PathSegLinetoAbs, [core.num, core.num]),
-    [dartx.createSvgPathSegLinetoHorizontalAbs]: dart.definiteFunctionType(svg.PathSegLinetoHorizontalAbs, [core.num]),
-    [dartx.createSvgPathSegLinetoHorizontalRel]: dart.definiteFunctionType(svg.PathSegLinetoHorizontalRel, [core.num]),
-    [dartx.createSvgPathSegLinetoRel]: dart.definiteFunctionType(svg.PathSegLinetoRel, [core.num, core.num]),
-    [dartx.createSvgPathSegLinetoVerticalAbs]: dart.definiteFunctionType(svg.PathSegLinetoVerticalAbs, [core.num]),
-    [dartx.createSvgPathSegLinetoVerticalRel]: dart.definiteFunctionType(svg.PathSegLinetoVerticalRel, [core.num]),
-    [dartx.createSvgPathSegMovetoAbs]: dart.definiteFunctionType(svg.PathSegMovetoAbs, [core.num, core.num]),
-    [dartx.createSvgPathSegMovetoRel]: dart.definiteFunctionType(svg.PathSegMovetoRel, [core.num, core.num]),
+    [dartx.createSvgPathSegArcAbs]: dart.definiteFunctionType(svg$.PathSegArcAbs, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
+    [dartx.createSvgPathSegArcRel]: dart.definiteFunctionType(svg$.PathSegArcRel, [core.num, core.num, core.num, core.num, core.num, core.bool, core.bool]),
+    [dartx.createSvgPathSegClosePath]: dart.definiteFunctionType(svg$.PathSegClosePath, []),
+    [dartx.createSvgPathSegCurvetoCubicAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicAbs, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoCubicRel]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicRel, [core.num, core.num, core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoCubicSmoothAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothAbs, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoCubicSmoothRel]: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothRel, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticAbs, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticRel]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticRel, [core.num, core.num, core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticSmoothAbs]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothAbs, [core.num, core.num]),
+    [dartx.createSvgPathSegCurvetoQuadraticSmoothRel]: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothRel, [core.num, core.num]),
+    [dartx.createSvgPathSegLinetoAbs]: dart.definiteFunctionType(svg$.PathSegLinetoAbs, [core.num, core.num]),
+    [dartx.createSvgPathSegLinetoHorizontalAbs]: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalAbs, [core.num]),
+    [dartx.createSvgPathSegLinetoHorizontalRel]: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalRel, [core.num]),
+    [dartx.createSvgPathSegLinetoRel]: dart.definiteFunctionType(svg$.PathSegLinetoRel, [core.num, core.num]),
+    [dartx.createSvgPathSegLinetoVerticalAbs]: dart.definiteFunctionType(svg$.PathSegLinetoVerticalAbs, [core.num]),
+    [dartx.createSvgPathSegLinetoVerticalRel]: dart.definiteFunctionType(svg$.PathSegLinetoVerticalRel, [core.num]),
+    [dartx.createSvgPathSegMovetoAbs]: dart.definiteFunctionType(svg$.PathSegMovetoAbs, [core.num, core.num]),
+    [dartx.createSvgPathSegMovetoRel]: dart.definiteFunctionType(svg$.PathSegMovetoRel, [core.num, core.num]),
     [dartx.getPathSegAtLength]: dart.definiteFunctionType(core.int, [core.num]),
-    [dartx.getPointAtLength]: dart.definiteFunctionType(svg.Point, [core.num]),
+    [dartx.getPointAtLength]: dart.definiteFunctionType(svg$.Point, [core.num]),
     [dartx.getTotalLength]: dart.definiteFunctionType(core.double, [])
   })
 });
-dart.registerExtension(dart.global.SVGPathElement, svg.PathElement);
+dart.registerExtension(dart.global.SVGPathElement, svg$.PathElement);
 dart.defineExtensionNames([
   'pathSegType',
   'pathSegTypeAsLetter'
 ]);
-svg.PathSeg = class PathSeg extends _interceptors.Interceptor {
+svg$.PathSeg = class PathSeg extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104196,8 +104199,8 @@
     return this.pathSegTypeAsLetter;
   }
 };
-dart.setSignature(svg.PathSeg, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSeg, [])}),
+dart.setSignature(svg$.PathSeg, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSeg, [])}),
   fields: () => ({
     [dartx.pathSegType]: core.int,
     [dartx.pathSegTypeAsLetter]: core.String
@@ -104225,27 +104228,27 @@
     PATHSEG_UNKNOWN: core.int
   })
 });
-svg.PathSeg.PATHSEG_ARC_ABS = 10;
-svg.PathSeg.PATHSEG_ARC_REL = 11;
-svg.PathSeg.PATHSEG_CLOSEPATH = 1;
-svg.PathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;
-svg.PathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;
-svg.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
-svg.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
-svg.PathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;
-svg.PathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;
-svg.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
-svg.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
-svg.PathSeg.PATHSEG_LINETO_ABS = 4;
-svg.PathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;
-svg.PathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;
-svg.PathSeg.PATHSEG_LINETO_REL = 5;
-svg.PathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;
-svg.PathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;
-svg.PathSeg.PATHSEG_MOVETO_ABS = 2;
-svg.PathSeg.PATHSEG_MOVETO_REL = 3;
-svg.PathSeg.PATHSEG_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGPathSeg, svg.PathSeg);
+svg$.PathSeg.PATHSEG_ARC_ABS = 10;
+svg$.PathSeg.PATHSEG_ARC_REL = 11;
+svg$.PathSeg.PATHSEG_CLOSEPATH = 1;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
+svg$.PathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
+svg$.PathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
+svg$.PathSeg.PATHSEG_LINETO_ABS = 4;
+svg$.PathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;
+svg$.PathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;
+svg$.PathSeg.PATHSEG_LINETO_REL = 5;
+svg$.PathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;
+svg$.PathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;
+svg$.PathSeg.PATHSEG_MOVETO_ABS = 2;
+svg$.PathSeg.PATHSEG_MOVETO_REL = 3;
+svg$.PathSeg.PATHSEG_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGPathSeg, svg$.PathSeg);
 dart.defineExtensionNames([
   'angle',
   'largeArcFlag',
@@ -104255,7 +104258,7 @@
   'x',
   'y'
 ]);
-svg.PathSegArcAbs = class PathSegArcAbs extends svg.PathSeg {
+svg$.PathSegArcAbs = class PathSegArcAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104302,8 +104305,8 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegArcAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegArcAbs, [])}),
+dart.setSignature(svg$.PathSegArcAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegArcAbs, [])}),
   fields: () => ({
     [dartx.angle]: core.num,
     [dartx.largeArcFlag]: core.bool,
@@ -104314,7 +104317,7 @@
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegArcAbs, svg.PathSegArcAbs);
+dart.registerExtension(dart.global.SVGPathSegArcAbs, svg$.PathSegArcAbs);
 dart.defineExtensionNames([
   'angle',
   'largeArcFlag',
@@ -104324,7 +104327,7 @@
   'x',
   'y'
 ]);
-svg.PathSegArcRel = class PathSegArcRel extends svg.PathSeg {
+svg$.PathSegArcRel = class PathSegArcRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104371,8 +104374,8 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegArcRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegArcRel, [])}),
+dart.setSignature(svg$.PathSegArcRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegArcRel, [])}),
   fields: () => ({
     [dartx.angle]: core.num,
     [dartx.largeArcFlag]: core.bool,
@@ -104383,16 +104386,16 @@
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegArcRel, svg.PathSegArcRel);
-svg.PathSegClosePath = class PathSegClosePath extends svg.PathSeg {
+dart.registerExtension(dart.global.SVGPathSegArcRel, svg$.PathSegArcRel);
+svg$.PathSegClosePath = class PathSegClosePath extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(svg.PathSegClosePath, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegClosePath, [])})
+dart.setSignature(svg$.PathSegClosePath, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegClosePath, [])})
 });
-dart.registerExtension(dart.global.SVGPathSegClosePath, svg.PathSegClosePath);
+dart.registerExtension(dart.global.SVGPathSegClosePath, svg$.PathSegClosePath);
 dart.defineExtensionNames([
   'x',
   'x1',
@@ -104401,7 +104404,7 @@
   'y1',
   'y2'
 ]);
-svg.PathSegCurvetoCubicAbs = class PathSegCurvetoCubicAbs extends svg.PathSeg {
+svg$.PathSegCurvetoCubicAbs = class PathSegCurvetoCubicAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104442,8 +104445,8 @@
     this.y2 = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoCubicAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoCubicAbs, [])}),
+dart.setSignature(svg$.PathSegCurvetoCubicAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicAbs, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.x1]: core.num,
@@ -104453,7 +104456,7 @@
     [dartx.y2]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoCubicAbs, svg.PathSegCurvetoCubicAbs);
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicAbs, svg$.PathSegCurvetoCubicAbs);
 dart.defineExtensionNames([
   'x',
   'x1',
@@ -104462,7 +104465,7 @@
   'y1',
   'y2'
 ]);
-svg.PathSegCurvetoCubicRel = class PathSegCurvetoCubicRel extends svg.PathSeg {
+svg$.PathSegCurvetoCubicRel = class PathSegCurvetoCubicRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104503,8 +104506,8 @@
     this.y2 = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoCubicRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoCubicRel, [])}),
+dart.setSignature(svg$.PathSegCurvetoCubicRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicRel, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.x1]: core.num,
@@ -104514,14 +104517,14 @@
     [dartx.y2]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoCubicRel, svg.PathSegCurvetoCubicRel);
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicRel, svg$.PathSegCurvetoCubicRel);
 dart.defineExtensionNames([
   'x',
   'x2',
   'y',
   'y2'
 ]);
-svg.PathSegCurvetoCubicSmoothAbs = class PathSegCurvetoCubicSmoothAbs extends svg.PathSeg {
+svg$.PathSegCurvetoCubicSmoothAbs = class PathSegCurvetoCubicSmoothAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104550,8 +104553,8 @@
     this.y2 = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoCubicSmoothAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoCubicSmoothAbs, [])}),
+dart.setSignature(svg$.PathSegCurvetoCubicSmoothAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothAbs, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.x2]: core.num,
@@ -104559,14 +104562,14 @@
     [dartx.y2]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothAbs, svg.PathSegCurvetoCubicSmoothAbs);
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothAbs, svg$.PathSegCurvetoCubicSmoothAbs);
 dart.defineExtensionNames([
   'x',
   'x2',
   'y',
   'y2'
 ]);
-svg.PathSegCurvetoCubicSmoothRel = class PathSegCurvetoCubicSmoothRel extends svg.PathSeg {
+svg$.PathSegCurvetoCubicSmoothRel = class PathSegCurvetoCubicSmoothRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104595,8 +104598,8 @@
     this.y2 = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoCubicSmoothRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoCubicSmoothRel, [])}),
+dart.setSignature(svg$.PathSegCurvetoCubicSmoothRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoCubicSmoothRel, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.x2]: core.num,
@@ -104604,14 +104607,14 @@
     [dartx.y2]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothRel, svg.PathSegCurvetoCubicSmoothRel);
+dart.registerExtension(dart.global.SVGPathSegCurvetoCubicSmoothRel, svg$.PathSegCurvetoCubicSmoothRel);
 dart.defineExtensionNames([
   'x',
   'x1',
   'y',
   'y1'
 ]);
-svg.PathSegCurvetoQuadraticAbs = class PathSegCurvetoQuadraticAbs extends svg.PathSeg {
+svg$.PathSegCurvetoQuadraticAbs = class PathSegCurvetoQuadraticAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104640,8 +104643,8 @@
     this.y1 = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoQuadraticAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticAbs, [])}),
+dart.setSignature(svg$.PathSegCurvetoQuadraticAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticAbs, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.x1]: core.num,
@@ -104649,14 +104652,14 @@
     [dartx.y1]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticAbs, svg.PathSegCurvetoQuadraticAbs);
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticAbs, svg$.PathSegCurvetoQuadraticAbs);
 dart.defineExtensionNames([
   'x',
   'x1',
   'y',
   'y1'
 ]);
-svg.PathSegCurvetoQuadraticRel = class PathSegCurvetoQuadraticRel extends svg.PathSeg {
+svg$.PathSegCurvetoQuadraticRel = class PathSegCurvetoQuadraticRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104685,8 +104688,8 @@
     this.y1 = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoQuadraticRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticRel, [])}),
+dart.setSignature(svg$.PathSegCurvetoQuadraticRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticRel, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.x1]: core.num,
@@ -104694,12 +104697,12 @@
     [dartx.y1]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticRel, svg.PathSegCurvetoQuadraticRel);
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticRel, svg$.PathSegCurvetoQuadraticRel);
 dart.defineExtensionNames([
   'x',
   'y'
 ]);
-svg.PathSegCurvetoQuadraticSmoothAbs = class PathSegCurvetoQuadraticSmoothAbs extends svg.PathSeg {
+svg$.PathSegCurvetoQuadraticSmoothAbs = class PathSegCurvetoQuadraticSmoothAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104716,19 +104719,19 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoQuadraticSmoothAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticSmoothAbs, [])}),
+dart.setSignature(svg$.PathSegCurvetoQuadraticSmoothAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothAbs, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothAbs, svg.PathSegCurvetoQuadraticSmoothAbs);
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothAbs, svg$.PathSegCurvetoQuadraticSmoothAbs);
 dart.defineExtensionNames([
   'x',
   'y'
 ]);
-svg.PathSegCurvetoQuadraticSmoothRel = class PathSegCurvetoQuadraticSmoothRel extends svg.PathSeg {
+svg$.PathSegCurvetoQuadraticSmoothRel = class PathSegCurvetoQuadraticSmoothRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104745,19 +104748,19 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegCurvetoQuadraticSmoothRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegCurvetoQuadraticSmoothRel, [])}),
+dart.setSignature(svg$.PathSegCurvetoQuadraticSmoothRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegCurvetoQuadraticSmoothRel, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothRel, svg.PathSegCurvetoQuadraticSmoothRel);
+dart.registerExtension(dart.global.SVGPathSegCurvetoQuadraticSmoothRel, svg$.PathSegCurvetoQuadraticSmoothRel);
 dart.defineExtensionNames([
   'x',
   'y'
 ]);
-svg.PathSegLinetoAbs = class PathSegLinetoAbs extends svg.PathSeg {
+svg$.PathSegLinetoAbs = class PathSegLinetoAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104774,18 +104777,18 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegLinetoAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegLinetoAbs, [])}),
+dart.setSignature(svg$.PathSegLinetoAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoAbs, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegLinetoAbs, svg.PathSegLinetoAbs);
+dart.registerExtension(dart.global.SVGPathSegLinetoAbs, svg$.PathSegLinetoAbs);
 dart.defineExtensionNames([
   'x'
 ]);
-svg.PathSegLinetoHorizontalAbs = class PathSegLinetoHorizontalAbs extends svg.PathSeg {
+svg$.PathSegLinetoHorizontalAbs = class PathSegLinetoHorizontalAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104796,15 +104799,15 @@
     this.x = value;
   }
 };
-dart.setSignature(svg.PathSegLinetoHorizontalAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegLinetoHorizontalAbs, [])}),
+dart.setSignature(svg$.PathSegLinetoHorizontalAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalAbs, [])}),
   fields: () => ({[dartx.x]: core.num})
 });
-dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalAbs, svg.PathSegLinetoHorizontalAbs);
+dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalAbs, svg$.PathSegLinetoHorizontalAbs);
 dart.defineExtensionNames([
   'x'
 ]);
-svg.PathSegLinetoHorizontalRel = class PathSegLinetoHorizontalRel extends svg.PathSeg {
+svg$.PathSegLinetoHorizontalRel = class PathSegLinetoHorizontalRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104815,16 +104818,16 @@
     this.x = value;
   }
 };
-dart.setSignature(svg.PathSegLinetoHorizontalRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegLinetoHorizontalRel, [])}),
+dart.setSignature(svg$.PathSegLinetoHorizontalRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoHorizontalRel, [])}),
   fields: () => ({[dartx.x]: core.num})
 });
-dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalRel, svg.PathSegLinetoHorizontalRel);
+dart.registerExtension(dart.global.SVGPathSegLinetoHorizontalRel, svg$.PathSegLinetoHorizontalRel);
 dart.defineExtensionNames([
   'x',
   'y'
 ]);
-svg.PathSegLinetoRel = class PathSegLinetoRel extends svg.PathSeg {
+svg$.PathSegLinetoRel = class PathSegLinetoRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104841,18 +104844,18 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegLinetoRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegLinetoRel, [])}),
+dart.setSignature(svg$.PathSegLinetoRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoRel, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegLinetoRel, svg.PathSegLinetoRel);
+dart.registerExtension(dart.global.SVGPathSegLinetoRel, svg$.PathSegLinetoRel);
 dart.defineExtensionNames([
   'y'
 ]);
-svg.PathSegLinetoVerticalAbs = class PathSegLinetoVerticalAbs extends svg.PathSeg {
+svg$.PathSegLinetoVerticalAbs = class PathSegLinetoVerticalAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104863,15 +104866,15 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegLinetoVerticalAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegLinetoVerticalAbs, [])}),
+dart.setSignature(svg$.PathSegLinetoVerticalAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoVerticalAbs, [])}),
   fields: () => ({[dartx.y]: core.num})
 });
-dart.registerExtension(dart.global.SVGPathSegLinetoVerticalAbs, svg.PathSegLinetoVerticalAbs);
+dart.registerExtension(dart.global.SVGPathSegLinetoVerticalAbs, svg$.PathSegLinetoVerticalAbs);
 dart.defineExtensionNames([
   'y'
 ]);
-svg.PathSegLinetoVerticalRel = class PathSegLinetoVerticalRel extends svg.PathSeg {
+svg$.PathSegLinetoVerticalRel = class PathSegLinetoVerticalRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104882,11 +104885,11 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegLinetoVerticalRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegLinetoVerticalRel, [])}),
+dart.setSignature(svg$.PathSegLinetoVerticalRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegLinetoVerticalRel, [])}),
   fields: () => ({[dartx.y]: core.num})
 });
-dart.registerExtension(dart.global.SVGPathSegLinetoVerticalRel, svg.PathSegLinetoVerticalRel);
+dart.registerExtension(dart.global.SVGPathSegLinetoVerticalRel, svg$.PathSegLinetoVerticalRel);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -104905,7 +104908,7 @@
   'replaceItem',
   'numberOfItems'
 ]);
-svg.PathSegList = class PathSegList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg.PathSeg), html.ImmutableListMixin$(svg.PathSeg)) {
+svg$.PathSegList = class PathSegList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.PathSeg), html$.ImmutableListMixin$(svg$.PathSeg)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -104950,7 +104953,7 @@
   [dartx.elementAt](index) {
     return this[dartx._get](index);
   }
-  [__setter__](...args) {
+  [__setter__$](...args) {
     return this.__setter__.apply(this, args);
   }
   [dartx.appendItem](...args) {
@@ -104975,30 +104978,30 @@
     return this.replaceItem.apply(this, args);
   }
 };
-svg.PathSegList[dart.implements] = () => [ListOfPathSeg()];
-dart.setSignature(svg.PathSegList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegList, [])}),
+svg$.PathSegList[dart.implements] = () => [ListOfPathSeg()];
+dart.setSignature(svg$.PathSegList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegList, [])}),
   fields: () => ({[dartx.numberOfItems]: core.int}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(svg.PathSeg, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg.PathSeg]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, svg.PathSeg]),
-    [dartx.appendItem]: dart.definiteFunctionType(svg.PathSeg, [svg.PathSeg]),
-    [dartx.getItem]: dart.definiteFunctionType(svg.PathSeg, [core.int]),
-    [dartx.initialize]: dart.definiteFunctionType(svg.PathSeg, [svg.PathSeg]),
-    [dartx.insertItemBefore]: dart.definiteFunctionType(svg.PathSeg, [svg.PathSeg, core.int]),
-    [dartx.removeItem]: dart.definiteFunctionType(svg.PathSeg, [core.int]),
-    [dartx.replaceItem]: dart.definiteFunctionType(svg.PathSeg, [svg.PathSeg, core.int])
+    [dartx._get]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.PathSeg]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.PathSeg]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.PathSeg, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.PathSeg, [svg$.PathSeg, core.int])
   })
 });
-dart.registerExtension(dart.global.SVGPathSegList, svg.PathSegList);
+dart.registerExtension(dart.global.SVGPathSegList, svg$.PathSegList);
 dart.defineExtensionNames([
   'x',
   'y'
 ]);
-svg.PathSegMovetoAbs = class PathSegMovetoAbs extends svg.PathSeg {
+svg$.PathSegMovetoAbs = class PathSegMovetoAbs extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105015,19 +105018,19 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegMovetoAbs, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegMovetoAbs, [])}),
+dart.setSignature(svg$.PathSegMovetoAbs, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegMovetoAbs, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegMovetoAbs, svg.PathSegMovetoAbs);
+dart.registerExtension(dart.global.SVGPathSegMovetoAbs, svg$.PathSegMovetoAbs);
 dart.defineExtensionNames([
   'x',
   'y'
 ]);
-svg.PathSegMovetoRel = class PathSegMovetoRel extends svg.PathSeg {
+svg$.PathSegMovetoRel = class PathSegMovetoRel extends svg$.PathSeg {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105044,14 +105047,14 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.PathSegMovetoRel, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PathSegMovetoRel, [])}),
+dart.setSignature(svg$.PathSegMovetoRel, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PathSegMovetoRel, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGPathSegMovetoRel, svg.PathSegMovetoRel);
+dart.registerExtension(dart.global.SVGPathSegMovetoRel, svg$.PathSegMovetoRel);
 dart.defineExtensionNames([
   'hasExtension',
   'height',
@@ -105068,12 +105071,12 @@
   'systemLanguage',
   'href'
 ]);
-svg.PatternElement = class PatternElement extends svg.SvgElement {
+svg$.PatternElement = class PatternElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.PatternElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("pattern"));
+    return svg$.PatternElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("pattern"));
   }
   created() {
     this[dartx.height] = null;
@@ -105134,38 +105137,38 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.PatternElement, 'created');
-svg.PatternElement[dart.implements] = () => [svg.FitToViewBox, svg.UriReference, svg.Tests];
-dart.setSignature(svg.PatternElement, {
+dart.defineNamedConstructor(svg$.PatternElement, 'created');
+svg$.PatternElement[dart.implements] = () => [svg$.FitToViewBox, svg$.UriReference, svg$.Tests];
+dart.setSignature(svg$.PatternElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.PatternElement, []),
-    new: dart.definiteFunctionType(svg.PatternElement, []),
-    created: dart.definiteFunctionType(svg.PatternElement, [])
+    _: dart.definiteFunctionType(svg$.PatternElement, []),
+    new: dart.definiteFunctionType(svg$.PatternElement, []),
+    created: dart.definiteFunctionType(svg$.PatternElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.patternContentUnits]: svg.AnimatedEnumeration,
-    [dartx.patternTransform]: svg.AnimatedTransformList,
-    [dartx.patternUnits]: svg.AnimatedEnumeration,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.viewBox]: svg.AnimatedRect,
-    [dartx.requiredExtensions]: svg.StringList,
-    [dartx.requiredFeatures]: svg.StringList,
-    [dartx.systemLanguage]: svg.StringList,
-    [dartx.href]: svg.AnimatedString
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.patternContentUnits]: svg$.AnimatedEnumeration,
+    [dartx.patternTransform]: svg$.AnimatedTransformList,
+    [dartx.patternUnits]: svg$.AnimatedEnumeration,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
+    [dartx.requiredExtensions]: svg$.StringList,
+    [dartx.requiredFeatures]: svg$.StringList,
+    [dartx.systemLanguage]: svg$.StringList,
+    [dartx.href]: svg$.AnimatedString
   }),
   methods: () => ({[dartx.hasExtension]: dart.definiteFunctionType(core.bool, [core.String])})
 });
-dart.registerExtension(dart.global.SVGPatternElement, svg.PatternElement);
+dart.registerExtension(dart.global.SVGPatternElement, svg$.PatternElement);
 dart.defineExtensionNames([
   'matrixTransform',
   'x',
   'y'
 ]);
-svg.Point = class Point extends _interceptors.Interceptor {
+svg$.Point = class Point extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105185,15 +105188,15 @@
     return this.matrixTransform.apply(this, args);
   }
 };
-dart.setSignature(svg.Point, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Point, [])}),
+dart.setSignature(svg$.Point, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Point, [])}),
   fields: () => ({
     [dartx.x]: core.num,
     [dartx.y]: core.num
   }),
-  methods: () => ({[dartx.matrixTransform]: dart.definiteFunctionType(svg.Point, [svg.Matrix])})
+  methods: () => ({[dartx.matrixTransform]: dart.definiteFunctionType(svg$.Point, [svg$.Matrix])})
 });
-dart.registerExtension(dart.global.SVGPoint, svg.Point);
+dart.registerExtension(dart.global.SVGPoint, svg$.Point);
 dart.defineExtensionNames([
   'appendItem',
   'clear',
@@ -105205,7 +105208,7 @@
   'length',
   'numberOfItems'
 ]);
-svg.PointList = class PointList extends _interceptors.Interceptor {
+svg$.PointList = class PointList extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105215,7 +105218,7 @@
   get [dartx.numberOfItems]() {
     return this.numberOfItems;
   }
-  [__setter__](...args) {
+  [__setter__$](...args) {
     return this.__setter__.apply(this, args);
   }
   [dartx.appendItem](...args) {
@@ -105240,34 +105243,34 @@
     return this.replaceItem.apply(this, args);
   }
 };
-dart.setSignature(svg.PointList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PointList, [])}),
+dart.setSignature(svg$.PointList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PointList, [])}),
   fields: () => ({
     [dartx.length]: core.int,
     [dartx.numberOfItems]: core.int
   }),
   methods: () => ({
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, svg.Point]),
-    [dartx.appendItem]: dart.definiteFunctionType(svg.Point, [svg.Point]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Point]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Point, [svg$.Point]),
     [dartx.clear]: dart.definiteFunctionType(dart.void, []),
-    [dartx.getItem]: dart.definiteFunctionType(svg.Point, [core.int]),
-    [dartx.initialize]: dart.definiteFunctionType(svg.Point, [svg.Point]),
-    [dartx.insertItemBefore]: dart.definiteFunctionType(svg.Point, [svg.Point, core.int]),
-    [dartx.removeItem]: dart.definiteFunctionType(svg.Point, [core.int]),
-    [dartx.replaceItem]: dart.definiteFunctionType(svg.Point, [svg.Point, core.int])
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Point, [svg$.Point]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Point, [svg$.Point, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Point, [svg$.Point, core.int])
   })
 });
-dart.registerExtension(dart.global.SVGPointList, svg.PointList);
+dart.registerExtension(dart.global.SVGPointList, svg$.PointList);
 dart.defineExtensionNames([
   'animatedPoints',
   'points'
 ]);
-svg.PolygonElement = class PolygonElement extends svg.GeometryElement {
+svg$.PolygonElement = class PolygonElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.PolygonElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("polygon"));
+    return svg$.PolygonElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("polygon"));
   }
   created() {
     this[dartx.animatedPoints] = null;
@@ -105281,29 +105284,29 @@
     return this.points;
   }
 };
-dart.defineNamedConstructor(svg.PolygonElement, 'created');
-dart.setSignature(svg.PolygonElement, {
+dart.defineNamedConstructor(svg$.PolygonElement, 'created');
+dart.setSignature(svg$.PolygonElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.PolygonElement, []),
-    new: dart.definiteFunctionType(svg.PolygonElement, []),
-    created: dart.definiteFunctionType(svg.PolygonElement, [])
+    _: dart.definiteFunctionType(svg$.PolygonElement, []),
+    new: dart.definiteFunctionType(svg$.PolygonElement, []),
+    created: dart.definiteFunctionType(svg$.PolygonElement, [])
   }),
   fields: () => ({
-    [dartx.animatedPoints]: svg.PointList,
-    [dartx.points]: svg.PointList
+    [dartx.animatedPoints]: svg$.PointList,
+    [dartx.points]: svg$.PointList
   })
 });
-dart.registerExtension(dart.global.SVGPolygonElement, svg.PolygonElement);
+dart.registerExtension(dart.global.SVGPolygonElement, svg$.PolygonElement);
 dart.defineExtensionNames([
   'animatedPoints',
   'points'
 ]);
-svg.PolylineElement = class PolylineElement extends svg.GeometryElement {
+svg$.PolylineElement = class PolylineElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.PolylineElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("polyline"));
+    return svg$.PolylineElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("polyline"));
   }
   created() {
     this[dartx.animatedPoints] = null;
@@ -105317,24 +105320,24 @@
     return this.points;
   }
 };
-dart.defineNamedConstructor(svg.PolylineElement, 'created');
-dart.setSignature(svg.PolylineElement, {
+dart.defineNamedConstructor(svg$.PolylineElement, 'created');
+dart.setSignature(svg$.PolylineElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.PolylineElement, []),
-    new: dart.definiteFunctionType(svg.PolylineElement, []),
-    created: dart.definiteFunctionType(svg.PolylineElement, [])
+    _: dart.definiteFunctionType(svg$.PolylineElement, []),
+    new: dart.definiteFunctionType(svg$.PolylineElement, []),
+    created: dart.definiteFunctionType(svg$.PolylineElement, [])
   }),
   fields: () => ({
-    [dartx.animatedPoints]: svg.PointList,
-    [dartx.points]: svg.PointList
+    [dartx.animatedPoints]: svg$.PointList,
+    [dartx.points]: svg$.PointList
   })
 });
-dart.registerExtension(dart.global.SVGPolylineElement, svg.PolylineElement);
+dart.registerExtension(dart.global.SVGPolylineElement, svg$.PolylineElement);
 dart.defineExtensionNames([
   'align',
   'meetOrSlice'
 ]);
-svg.PreserveAspectRatio = class PreserveAspectRatio extends _interceptors.Interceptor {
+svg$.PreserveAspectRatio = class PreserveAspectRatio extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105351,8 +105354,8 @@
     this.meetOrSlice = value;
   }
 };
-dart.setSignature(svg.PreserveAspectRatio, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.PreserveAspectRatio, [])}),
+dart.setSignature(svg$.PreserveAspectRatio, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.PreserveAspectRatio, [])}),
   fields: () => ({
     [dartx.align]: core.int,
     [dartx.meetOrSlice]: core.int
@@ -105374,21 +105377,21 @@
     SVG_PRESERVEASPECTRATIO_XMINYMIN: core.int
   })
 });
-svg.PreserveAspectRatio.SVG_MEETORSLICE_MEET = 1;
-svg.PreserveAspectRatio.SVG_MEETORSLICE_SLICE = 2;
-svg.PreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN = 0;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE = 1;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
-svg.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
-dart.registerExtension(dart.global.SVGPreserveAspectRatio, svg.PreserveAspectRatio);
+svg$.PreserveAspectRatio.SVG_MEETORSLICE_MEET = 1;
+svg$.PreserveAspectRatio.SVG_MEETORSLICE_SLICE = 2;
+svg$.PreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN = 0;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE = 1;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
+svg$.PreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
+dart.registerExtension(dart.global.SVGPreserveAspectRatio, svg$.PreserveAspectRatio);
 dart.defineExtensionNames([
   'cx',
   'cy',
@@ -105397,12 +105400,12 @@
   'fy',
   'r'
 ]);
-svg.RadialGradientElement = class RadialGradientElement extends svg._GradientElement {
+svg$.RadialGradientElement = class RadialGradientElement extends svg$._GradientElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.RadialGradientElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("radialGradient"));
+    return svg$.RadialGradientElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("radialGradient"));
   }
   created() {
     this[dartx.cx] = null;
@@ -105432,30 +105435,30 @@
     return this.r;
   }
 };
-dart.defineNamedConstructor(svg.RadialGradientElement, 'created');
-dart.setSignature(svg.RadialGradientElement, {
+dart.defineNamedConstructor(svg$.RadialGradientElement, 'created');
+dart.setSignature(svg$.RadialGradientElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.RadialGradientElement, []),
-    new: dart.definiteFunctionType(svg.RadialGradientElement, []),
-    created: dart.definiteFunctionType(svg.RadialGradientElement, [])
+    _: dart.definiteFunctionType(svg$.RadialGradientElement, []),
+    new: dart.definiteFunctionType(svg$.RadialGradientElement, []),
+    created: dart.definiteFunctionType(svg$.RadialGradientElement, [])
   }),
   fields: () => ({
-    [dartx.cx]: svg.AnimatedLength,
-    [dartx.cy]: svg.AnimatedLength,
-    [dartx.fr]: svg.AnimatedLength,
-    [dartx.fx]: svg.AnimatedLength,
-    [dartx.fy]: svg.AnimatedLength,
-    [dartx.r]: svg.AnimatedLength
+    [dartx.cx]: svg$.AnimatedLength,
+    [dartx.cy]: svg$.AnimatedLength,
+    [dartx.fr]: svg$.AnimatedLength,
+    [dartx.fx]: svg$.AnimatedLength,
+    [dartx.fy]: svg$.AnimatedLength,
+    [dartx.r]: svg$.AnimatedLength
   })
 });
-dart.registerExtension(dart.global.SVGRadialGradientElement, svg.RadialGradientElement);
+dart.registerExtension(dart.global.SVGRadialGradientElement, svg$.RadialGradientElement);
 dart.defineExtensionNames([
   'height',
   'width',
   'x',
   'y'
 ]);
-svg.Rect = class Rect extends _interceptors.Interceptor {
+svg$.Rect = class Rect extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105484,8 +105487,8 @@
     this.y = value;
   }
 };
-dart.setSignature(svg.Rect, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Rect, [])}),
+dart.setSignature(svg$.Rect, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Rect, [])}),
   fields: () => ({
     [dartx.height]: core.num,
     [dartx.width]: core.num,
@@ -105493,7 +105496,7 @@
     [dartx.y]: core.num
   })
 });
-dart.registerExtension(dart.global.SVGRect, svg.Rect);
+dart.registerExtension(dart.global.SVGRect, svg$.Rect);
 dart.defineExtensionNames([
   'height',
   'rx',
@@ -105502,12 +105505,12 @@
   'x',
   'y'
 ]);
-svg.RectElement = class RectElement extends svg.GeometryElement {
+svg$.RectElement = class RectElement extends svg$.GeometryElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.RectElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("rect"));
+    return svg$.RectElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("rect"));
   }
   created() {
     this[dartx.height] = null;
@@ -105537,33 +105540,33 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.RectElement, 'created');
-dart.setSignature(svg.RectElement, {
+dart.defineNamedConstructor(svg$.RectElement, 'created');
+dart.setSignature(svg$.RectElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.RectElement, []),
-    new: dart.definiteFunctionType(svg.RectElement, []),
-    created: dart.definiteFunctionType(svg.RectElement, [])
+    _: dart.definiteFunctionType(svg$.RectElement, []),
+    new: dart.definiteFunctionType(svg$.RectElement, []),
+    created: dart.definiteFunctionType(svg$.RectElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.rx]: svg.AnimatedLength,
-    [dartx.ry]: svg.AnimatedLength,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.rx]: svg$.AnimatedLength,
+    [dartx.ry]: svg$.AnimatedLength,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength
   })
 });
-dart.registerExtension(dart.global.SVGRectElement, svg.RectElement);
+dart.registerExtension(dart.global.SVGRectElement, svg$.RectElement);
 dart.defineExtensionNames([
   'type',
   'href'
 ]);
-svg.ScriptElement = class ScriptElement extends svg.SvgElement {
+svg$.ScriptElement = class ScriptElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.ScriptElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("script"));
+    return svg$.ScriptElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("script"));
   }
   created() {
     this[dartx.type] = null;
@@ -105580,53 +105583,53 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.ScriptElement, 'created');
-svg.ScriptElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg.ScriptElement, {
+dart.defineNamedConstructor(svg$.ScriptElement, 'created');
+svg$.ScriptElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.ScriptElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.ScriptElement, []),
-    new: dart.definiteFunctionType(svg.ScriptElement, []),
-    created: dart.definiteFunctionType(svg.ScriptElement, [])
+    _: dart.definiteFunctionType(svg$.ScriptElement, []),
+    new: dart.definiteFunctionType(svg$.ScriptElement, []),
+    created: dart.definiteFunctionType(svg$.ScriptElement, [])
   }),
   fields: () => ({
     [dartx.type]: core.String,
-    [dartx.href]: svg.AnimatedString
+    [dartx.href]: svg$.AnimatedString
   })
 });
-dart.registerExtension(dart.global.SVGScriptElement, svg.ScriptElement);
-svg.SetElement = class SetElement extends svg.AnimationElement {
+dart.registerExtension(dart.global.SVGScriptElement, svg$.ScriptElement);
+svg$.SetElement = class SetElement extends svg$.AnimationElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.SetElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("set"));
+    return svg$.SetElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("set"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('set')) && svg.SetElement.is(svg.SvgElement.tag('set'));
+    return dart.test(svg$.SvgElement.isTagSupported('set')) && svg$.SetElement.is(svg$.SvgElement.tag('set'));
   }
 };
-dart.defineNamedConstructor(svg.SetElement, 'created');
-dart.setSignature(svg.SetElement, {
+dart.defineNamedConstructor(svg$.SetElement, 'created');
+dart.setSignature(svg$.SetElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.SetElement, []),
-    new: dart.definiteFunctionType(svg.SetElement, []),
-    created: dart.definiteFunctionType(svg.SetElement, [])
+    _: dart.definiteFunctionType(svg$.SetElement, []),
+    new: dart.definiteFunctionType(svg$.SetElement, []),
+    created: dart.definiteFunctionType(svg$.SetElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGSetElement, svg.SetElement);
+dart.registerExtension(dart.global.SVGSetElement, svg$.SetElement);
 dart.defineExtensionNames([
   'gradientOffset'
 ]);
-svg.StopElement = class StopElement extends svg.SvgElement {
+svg$.StopElement = class StopElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.StopElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("stop"));
+    return svg$.StopElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("stop"));
   }
   created() {
     this[dartx.gradientOffset] = null;
@@ -105636,16 +105639,16 @@
     return this.offset;
   }
 };
-dart.defineNamedConstructor(svg.StopElement, 'created');
-dart.setSignature(svg.StopElement, {
+dart.defineNamedConstructor(svg$.StopElement, 'created');
+dart.setSignature(svg$.StopElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.StopElement, []),
-    new: dart.definiteFunctionType(svg.StopElement, []),
-    created: dart.definiteFunctionType(svg.StopElement, [])
+    _: dart.definiteFunctionType(svg$.StopElement, []),
+    new: dart.definiteFunctionType(svg$.StopElement, []),
+    created: dart.definiteFunctionType(svg$.StopElement, [])
   }),
-  fields: () => ({[dartx.gradientOffset]: svg.AnimatedNumber})
+  fields: () => ({[dartx.gradientOffset]: svg$.AnimatedNumber})
 });
-dart.registerExtension(dart.global.SVGStopElement, svg.StopElement);
+dart.registerExtension(dart.global.SVGStopElement, svg$.StopElement);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -105664,7 +105667,7 @@
   'replaceItem',
   'numberOfItems'
 ]);
-svg.StringList = class StringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html.ImmutableListMixin$(core.String)) {
+svg$.StringList = class StringList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.String), html$.ImmutableListMixin$(core.String)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -105709,7 +105712,7 @@
   [dartx.elementAt](index) {
     return this[dartx._get](index);
   }
-  [__setter__](...args) {
+  [__setter__$](...args) {
     return this.__setter__.apply(this, args);
   }
   [dartx.appendItem](...args) {
@@ -105734,16 +105737,16 @@
     return this.replaceItem.apply(this, args);
   }
 };
-svg.StringList[dart.implements] = () => [ListOfString()];
-dart.setSignature(svg.StringList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.StringList, [])}),
+svg$.StringList[dart.implements] = () => [ListOfString()];
+dart.setSignature(svg$.StringList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.StringList, [])}),
   fields: () => ({[dartx.numberOfItems]: core.int}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
     [dartx._get]: dart.definiteFunctionType(core.String, [core.int]),
     [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, core.String]),
     [dartx.appendItem]: dart.definiteFunctionType(core.String, [core.String]),
     [dartx.getItem]: dart.definiteFunctionType(core.String, [core.int]),
     [dartx.initialize]: dart.definiteFunctionType(core.String, [core.String]),
@@ -105752,19 +105755,19 @@
     [dartx.replaceItem]: dart.definiteFunctionType(core.String, [core.String, core.int])
   })
 });
-dart.registerExtension(dart.global.SVGStringList, svg.StringList);
+dart.registerExtension(dart.global.SVGStringList, svg$.StringList);
 dart.defineExtensionNames([
   'disabled',
   'media',
   'sheet',
   'type'
 ]);
-svg.StyleElement = class StyleElement extends svg.SvgElement {
+svg$.StyleElement = class StyleElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.StyleElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("style"));
+    return svg$.StyleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("style"));
   }
   created() {
     this[dartx.disabled] = null;
@@ -105795,28 +105798,28 @@
     this.type = value;
   }
 };
-dart.defineNamedConstructor(svg.StyleElement, 'created');
-dart.setSignature(svg.StyleElement, {
+dart.defineNamedConstructor(svg$.StyleElement, 'created');
+dart.setSignature(svg$.StyleElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.StyleElement, []),
-    new: dart.definiteFunctionType(svg.StyleElement, []),
-    created: dart.definiteFunctionType(svg.StyleElement, [])
+    _: dart.definiteFunctionType(svg$.StyleElement, []),
+    new: dart.definiteFunctionType(svg$.StyleElement, []),
+    created: dart.definiteFunctionType(svg$.StyleElement, [])
   }),
   fields: () => ({
     [dartx.disabled]: core.bool,
     [dartx.media]: core.String,
-    [dartx.sheet]: html.StyleSheet,
+    [dartx.sheet]: html$.StyleSheet,
     [dartx.type]: core.String
   })
 });
-dart.registerExtension(dart.global.SVGStyleElement, svg.StyleElement);
-const _element = Symbol('_element');
-svg._AttributeClassSet = class _AttributeClassSet extends html_common.CssClassSetImpl {
+dart.registerExtension(dart.global.SVGStyleElement, svg$.StyleElement);
+const _element$0 = Symbol('_element');
+svg$._AttributeClassSet = class _AttributeClassSet extends html_common.CssClassSetImpl {
   new(element) {
-    this[_element] = element;
+    this[_element$0] = element;
   }
   readClasses() {
-    let classname = this[_element][dartx.attributes][dartx._get]('class');
+    let classname = this[_element$0][dartx.attributes][dartx._get]('class');
     let s = LinkedHashSetOfString().new();
     if (classname == null) {
       return s;
@@ -105830,12 +105833,12 @@
     return s;
   }
   writeClasses(s) {
-    this[_element][dartx.attributes][dartx._set]('class', s.join(' '));
+    this[_element$0][dartx.attributes][dartx._set]('class', s.join(' '));
   }
 };
-dart.setSignature(svg._AttributeClassSet, {
-  constructors: () => ({new: dart.definiteFunctionType(svg._AttributeClassSet, [html.Element])}),
-  fields: () => ({[_element]: html.Element}),
+dart.setSignature(svg$._AttributeClassSet, {
+  constructors: () => ({new: dart.definiteFunctionType(svg$._AttributeClassSet, [html$.Element])}),
+  fields: () => ({[_element$0]: html$.Element}),
   methods: () => ({
     readClasses: dart.definiteFunctionType(core.Set$(core.String), []),
     writeClasses: dart.definiteFunctionType(dart.void, [core.Set])
@@ -105882,11 +105885,11 @@
   'viewBox',
   'zoomAndPan'
 ]);
-svg.SvgSvgElement = class SvgSvgElement extends svg.GraphicsElement {
+svg$.SvgSvgElement = class SvgSvgElement extends svg$.GraphicsElement {
   static new() {
-    let el = svg.SvgElement.tag("svg");
+    let el = svg$.SvgElement.tag("svg");
     el[dartx.attributes][dartx._set]('version', "1.1");
-    return svg.SvgSvgElement._check(el);
+    return svg$.SvgSvgElement._check(el);
   }
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
@@ -106034,50 +106037,50 @@
     this.zoomAndPan = value;
   }
 };
-dart.defineNamedConstructor(svg.SvgSvgElement, 'created');
-svg.SvgSvgElement[dart.implements] = () => [svg.FitToViewBox, svg.ZoomAndPan];
-dart.setSignature(svg.SvgSvgElement, {
+dart.defineNamedConstructor(svg$.SvgSvgElement, 'created');
+svg$.SvgSvgElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
+dart.setSignature(svg$.SvgSvgElement, {
   constructors: () => ({
-    new: dart.definiteFunctionType(svg.SvgSvgElement, []),
-    _: dart.definiteFunctionType(svg.SvgSvgElement, []),
-    created: dart.definiteFunctionType(svg.SvgSvgElement, [])
+    new: dart.definiteFunctionType(svg$.SvgSvgElement, []),
+    _: dart.definiteFunctionType(svg$.SvgSvgElement, []),
+    created: dart.definiteFunctionType(svg$.SvgSvgElement, [])
   }),
   fields: () => ({
     [dartx.currentScale]: core.num,
-    [dartx.currentTranslate]: svg.Point,
-    [dartx.currentView]: svg.ViewSpec,
-    [dartx.height]: svg.AnimatedLength,
+    [dartx.currentTranslate]: svg$.Point,
+    [dartx.currentView]: svg$.ViewSpec,
+    [dartx.height]: svg$.AnimatedLength,
     [dartx.pixelUnitToMillimeterX]: core.double,
     [dartx.pixelUnitToMillimeterY]: core.double,
     [dartx.screenPixelToMillimeterX]: core.double,
     [dartx.screenPixelToMillimeterY]: core.double,
     [dartx.useCurrentView]: core.bool,
-    [dartx.viewport]: svg.Rect,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.viewBox]: svg.AnimatedRect,
+    [dartx.viewport]: svg$.Rect,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
     [dartx.zoomAndPan]: core.int
   }),
   methods: () => ({
     [dartx.animationsPaused]: dart.definiteFunctionType(core.bool, []),
-    [dartx.checkEnclosure]: dart.definiteFunctionType(core.bool, [svg.SvgElement, svg.Rect]),
-    [dartx.checkIntersection]: dart.definiteFunctionType(core.bool, [svg.SvgElement, svg.Rect]),
-    [dartx.createSvgAngle]: dart.definiteFunctionType(svg.Angle, []),
-    [dartx.createSvgLength]: dart.definiteFunctionType(svg.Length, []),
-    [dartx.createSvgMatrix]: dart.definiteFunctionType(svg.Matrix, []),
-    [dartx.createSvgNumber]: dart.definiteFunctionType(svg.Number, []),
-    [dartx.createSvgPoint]: dart.definiteFunctionType(svg.Point, []),
-    [dartx.createSvgRect]: dart.definiteFunctionType(svg.Rect, []),
-    [dartx.createSvgTransform]: dart.definiteFunctionType(svg.Transform, []),
-    [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg.Transform, [svg.Matrix]),
+    [dartx.checkEnclosure]: dart.definiteFunctionType(core.bool, [svg$.SvgElement, svg$.Rect]),
+    [dartx.checkIntersection]: dart.definiteFunctionType(core.bool, [svg$.SvgElement, svg$.Rect]),
+    [dartx.createSvgAngle]: dart.definiteFunctionType(svg$.Angle, []),
+    [dartx.createSvgLength]: dart.definiteFunctionType(svg$.Length, []),
+    [dartx.createSvgMatrix]: dart.definiteFunctionType(svg$.Matrix, []),
+    [dartx.createSvgNumber]: dart.definiteFunctionType(svg$.Number, []),
+    [dartx.createSvgPoint]: dart.definiteFunctionType(svg$.Point, []),
+    [dartx.createSvgRect]: dart.definiteFunctionType(svg$.Rect, []),
+    [dartx.createSvgTransform]: dart.definiteFunctionType(svg$.Transform, []),
+    [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg$.Transform, [svg$.Matrix]),
     [dartx.deselectAll]: dart.definiteFunctionType(dart.void, []),
     [dartx.forceRedraw]: dart.definiteFunctionType(dart.void, []),
     [dartx.getCurrentTime]: dart.definiteFunctionType(core.double, []),
-    [dartx.getElementById]: dart.definiteFunctionType(html.Element, [core.String]),
-    [dartx.getEnclosureList]: dart.definiteFunctionType(core.List$(html.Node), [svg.Rect, svg.SvgElement]),
-    [dartx.getIntersectionList]: dart.definiteFunctionType(core.List$(html.Node), [svg.Rect, svg.SvgElement]),
+    [dartx.getElementById]: dart.definiteFunctionType(html$.Element, [core.String]),
+    [dartx.getEnclosureList]: dart.definiteFunctionType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
+    [dartx.getIntersectionList]: dart.definiteFunctionType(core.List$(html$.Node), [svg$.Rect, svg$.SvgElement]),
     [dartx.pauseAnimations]: dart.definiteFunctionType(dart.void, []),
     [dartx.setCurrentTime]: dart.definiteFunctionType(dart.void, [core.num]),
     [dartx.suspendRedraw]: dart.definiteFunctionType(core.int, [core.int]),
@@ -106086,37 +106089,37 @@
     [dartx.unsuspendRedrawAll]: dart.definiteFunctionType(dart.void, [])
   })
 });
-dart.registerExtension(dart.global.SVGSVGElement, svg.SvgSvgElement);
-svg.SwitchElement = class SwitchElement extends svg.GraphicsElement {
+dart.registerExtension(dart.global.SVGSVGElement, svg$.SvgSvgElement);
+svg$.SwitchElement = class SwitchElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.SwitchElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("switch"));
+    return svg$.SwitchElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("switch"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.SwitchElement, 'created');
-dart.setSignature(svg.SwitchElement, {
+dart.defineNamedConstructor(svg$.SwitchElement, 'created');
+dart.setSignature(svg$.SwitchElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.SwitchElement, []),
-    new: dart.definiteFunctionType(svg.SwitchElement, []),
-    created: dart.definiteFunctionType(svg.SwitchElement, [])
+    _: dart.definiteFunctionType(svg$.SwitchElement, []),
+    new: dart.definiteFunctionType(svg$.SwitchElement, []),
+    created: dart.definiteFunctionType(svg$.SwitchElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGSwitchElement, svg.SwitchElement);
+dart.registerExtension(dart.global.SVGSwitchElement, svg$.SwitchElement);
 dart.defineExtensionNames([
   'preserveAspectRatio',
   'viewBox'
 ]);
-svg.SymbolElement = class SymbolElement extends svg.SvgElement {
+svg$.SymbolElement = class SymbolElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.SymbolElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("symbol"));
+    return svg$.SymbolElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("symbol"));
   }
   created() {
     this[dartx.preserveAspectRatio] = null;
@@ -106130,20 +106133,20 @@
     return this.viewBox;
   }
 };
-dart.defineNamedConstructor(svg.SymbolElement, 'created');
-svg.SymbolElement[dart.implements] = () => [svg.FitToViewBox];
-dart.setSignature(svg.SymbolElement, {
+dart.defineNamedConstructor(svg$.SymbolElement, 'created');
+svg$.SymbolElement[dart.implements] = () => [svg$.FitToViewBox];
+dart.setSignature(svg$.SymbolElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.SymbolElement, []),
-    new: dart.definiteFunctionType(svg.SymbolElement, []),
-    created: dart.definiteFunctionType(svg.SymbolElement, [])
+    _: dart.definiteFunctionType(svg$.SymbolElement, []),
+    new: dart.definiteFunctionType(svg$.SymbolElement, []),
+    created: dart.definiteFunctionType(svg$.SymbolElement, [])
   }),
   fields: () => ({
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.viewBox]: svg.AnimatedRect
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect
   })
 });
-dart.registerExtension(dart.global.SVGSymbolElement, svg.SymbolElement);
+dart.registerExtension(dart.global.SVGSymbolElement, svg$.SymbolElement);
 dart.defineExtensionNames([
   'getCharNumAtPosition',
   'getComputedTextLength',
@@ -106157,7 +106160,7 @@
   'lengthAdjust',
   'textLength'
 ]);
-svg.TextContentElement = class TextContentElement extends svg.GraphicsElement {
+svg$.TextContentElement = class TextContentElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106200,24 +106203,24 @@
     return this.selectSubString.apply(this, args);
   }
 };
-dart.defineNamedConstructor(svg.TextContentElement, 'created');
-dart.setSignature(svg.TextContentElement, {
+dart.defineNamedConstructor(svg$.TextContentElement, 'created');
+dart.setSignature(svg$.TextContentElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.TextContentElement, []),
-    created: dart.definiteFunctionType(svg.TextContentElement, [])
+    _: dart.definiteFunctionType(svg$.TextContentElement, []),
+    created: dart.definiteFunctionType(svg$.TextContentElement, [])
   }),
   fields: () => ({
-    [dartx.lengthAdjust]: svg.AnimatedEnumeration,
-    [dartx.textLength]: svg.AnimatedLength
+    [dartx.lengthAdjust]: svg$.AnimatedEnumeration,
+    [dartx.textLength]: svg$.AnimatedLength
   }),
   methods: () => ({
-    [dartx.getCharNumAtPosition]: dart.definiteFunctionType(core.int, [svg.Point]),
+    [dartx.getCharNumAtPosition]: dart.definiteFunctionType(core.int, [svg$.Point]),
     [dartx.getComputedTextLength]: dart.definiteFunctionType(core.double, []),
-    [dartx.getEndPositionOfChar]: dart.definiteFunctionType(svg.Point, [core.int]),
-    [dartx.getExtentOfChar]: dart.definiteFunctionType(svg.Rect, [core.int]),
+    [dartx.getEndPositionOfChar]: dart.definiteFunctionType(svg$.Point, [core.int]),
+    [dartx.getExtentOfChar]: dart.definiteFunctionType(svg$.Rect, [core.int]),
     [dartx.getNumberOfChars]: dart.definiteFunctionType(core.int, []),
     [dartx.getRotationOfChar]: dart.definiteFunctionType(core.double, [core.int]),
-    [dartx.getStartPositionOfChar]: dart.definiteFunctionType(svg.Point, [core.int]),
+    [dartx.getStartPositionOfChar]: dart.definiteFunctionType(svg$.Point, [core.int]),
     [dartx.getSubStringLength]: dart.definiteFunctionType(core.double, [core.int, core.int]),
     [dartx.selectSubString]: dart.definiteFunctionType(dart.void, [core.int, core.int])
   }),
@@ -106227,10 +106230,10 @@
     LENGTHADJUST_UNKNOWN: core.int
   })
 });
-svg.TextContentElement.LENGTHADJUST_SPACING = 1;
-svg.TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS = 2;
-svg.TextContentElement.LENGTHADJUST_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGTextContentElement, svg.TextContentElement);
+svg$.TextContentElement.LENGTHADJUST_SPACING = 1;
+svg$.TextContentElement.LENGTHADJUST_SPACINGANDGLYPHS = 2;
+svg$.TextContentElement.LENGTHADJUST_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGTextContentElement, svg$.TextContentElement);
 dart.defineExtensionNames([
   'dx',
   'dy',
@@ -106238,7 +106241,7 @@
   'x',
   'y'
 ]);
-svg.TextPositioningElement = class TextPositioningElement extends svg.TextContentElement {
+svg$.TextPositioningElement = class TextPositioningElement extends svg$.TextContentElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106266,47 +106269,47 @@
     return this.y;
   }
 };
-dart.defineNamedConstructor(svg.TextPositioningElement, 'created');
-dart.setSignature(svg.TextPositioningElement, {
+dart.defineNamedConstructor(svg$.TextPositioningElement, 'created');
+dart.setSignature(svg$.TextPositioningElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.TextPositioningElement, []),
-    created: dart.definiteFunctionType(svg.TextPositioningElement, [])
+    _: dart.definiteFunctionType(svg$.TextPositioningElement, []),
+    created: dart.definiteFunctionType(svg$.TextPositioningElement, [])
   }),
   fields: () => ({
-    [dartx.dx]: svg.AnimatedLengthList,
-    [dartx.dy]: svg.AnimatedLengthList,
-    [dartx.rotate]: svg.AnimatedNumberList,
-    [dartx.x]: svg.AnimatedLengthList,
-    [dartx.y]: svg.AnimatedLengthList
+    [dartx.dx]: svg$.AnimatedLengthList,
+    [dartx.dy]: svg$.AnimatedLengthList,
+    [dartx.rotate]: svg$.AnimatedNumberList,
+    [dartx.x]: svg$.AnimatedLengthList,
+    [dartx.y]: svg$.AnimatedLengthList
   })
 });
-dart.registerExtension(dart.global.SVGTextPositioningElement, svg.TextPositioningElement);
-svg.TSpanElement = class TSpanElement extends svg.TextPositioningElement {
+dart.registerExtension(dart.global.SVGTextPositioningElement, svg$.TextPositioningElement);
+svg$.TSpanElement = class TSpanElement extends svg$.TextPositioningElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.TSpanElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("tspan"));
+    return svg$.TSpanElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("tspan"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.TSpanElement, 'created');
-dart.setSignature(svg.TSpanElement, {
+dart.defineNamedConstructor(svg$.TSpanElement, 'created');
+dart.setSignature(svg$.TSpanElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.TSpanElement, []),
-    new: dart.definiteFunctionType(svg.TSpanElement, []),
-    created: dart.definiteFunctionType(svg.TSpanElement, [])
+    _: dart.definiteFunctionType(svg$.TSpanElement, []),
+    new: dart.definiteFunctionType(svg$.TSpanElement, []),
+    created: dart.definiteFunctionType(svg$.TSpanElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGTSpanElement, svg.TSpanElement);
+dart.registerExtension(dart.global.SVGTSpanElement, svg$.TSpanElement);
 dart.defineExtensionNames([
   'requiredExtensions',
   'requiredFeatures',
   'systemLanguage'
 ]);
-svg.Tests = class Tests extends _interceptors.Interceptor {
+svg$.Tests = class Tests extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106329,45 +106332,45 @@
     super.systemLanguage = value;
   }
 };
-const requiredExtensions = Symbol(svg.Tests.name + "." + 'requiredExtensions'.toString());
-const requiredFeatures = Symbol(svg.Tests.name + "." + 'requiredFeatures'.toString());
-const systemLanguage = Symbol(svg.Tests.name + "." + 'systemLanguage'.toString());
-dart.setSignature(svg.Tests, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Tests, [])}),
+const requiredExtensions = Symbol(svg$.Tests.name + "." + 'requiredExtensions'.toString());
+const requiredFeatures = Symbol(svg$.Tests.name + "." + 'requiredFeatures'.toString());
+const systemLanguage = Symbol(svg$.Tests.name + "." + 'systemLanguage'.toString());
+dart.setSignature(svg$.Tests, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Tests, [])}),
   fields: () => ({
-    requiredExtensions: svg.StringList,
-    requiredFeatures: svg.StringList,
-    systemLanguage: svg.StringList
+    requiredExtensions: svg$.StringList,
+    requiredFeatures: svg$.StringList,
+    systemLanguage: svg$.StringList
   })
 });
-dart.defineExtensionMembers(svg.Tests, ['requiredExtensions', 'requiredFeatures', 'systemLanguage']);
-svg.TextElement = class TextElement extends svg.TextPositioningElement {
+dart.defineExtensionMembers(svg$.Tests, ['requiredExtensions', 'requiredFeatures', 'systemLanguage']);
+svg$.TextElement = class TextElement extends svg$.TextPositioningElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.TextElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("text"));
+    return svg$.TextElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("text"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.TextElement, 'created');
-dart.setSignature(svg.TextElement, {
+dart.defineNamedConstructor(svg$.TextElement, 'created');
+dart.setSignature(svg$.TextElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.TextElement, []),
-    new: dart.definiteFunctionType(svg.TextElement, []),
-    created: dart.definiteFunctionType(svg.TextElement, [])
+    _: dart.definiteFunctionType(svg$.TextElement, []),
+    new: dart.definiteFunctionType(svg$.TextElement, []),
+    created: dart.definiteFunctionType(svg$.TextElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGTextElement, svg.TextElement);
+dart.registerExtension(dart.global.SVGTextElement, svg$.TextElement);
 dart.defineExtensionNames([
   'method',
   'spacing',
   'startOffset',
   'href'
 ]);
-svg.TextPathElement = class TextPathElement extends svg.TextContentElement {
+svg$.TextPathElement = class TextPathElement extends svg$.TextContentElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106391,18 +106394,18 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.TextPathElement, 'created');
-svg.TextPathElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg.TextPathElement, {
+dart.defineNamedConstructor(svg$.TextPathElement, 'created');
+svg$.TextPathElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.TextPathElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.TextPathElement, []),
-    created: dart.definiteFunctionType(svg.TextPathElement, [])
+    _: dart.definiteFunctionType(svg$.TextPathElement, []),
+    created: dart.definiteFunctionType(svg$.TextPathElement, [])
   }),
   fields: () => ({
-    [dartx.method]: svg.AnimatedEnumeration,
-    [dartx.spacing]: svg.AnimatedEnumeration,
-    [dartx.startOffset]: svg.AnimatedLength,
-    [dartx.href]: svg.AnimatedString
+    [dartx.method]: svg$.AnimatedEnumeration,
+    [dartx.spacing]: svg$.AnimatedEnumeration,
+    [dartx.startOffset]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
   }),
   sfields: () => ({
     TEXTPATH_METHODTYPE_ALIGN: core.int,
@@ -106413,33 +106416,33 @@
     TEXTPATH_SPACINGTYPE_UNKNOWN: core.int
   })
 });
-svg.TextPathElement.TEXTPATH_METHODTYPE_ALIGN = 1;
-svg.TextPathElement.TEXTPATH_METHODTYPE_STRETCH = 2;
-svg.TextPathElement.TEXTPATH_METHODTYPE_UNKNOWN = 0;
-svg.TextPathElement.TEXTPATH_SPACINGTYPE_AUTO = 1;
-svg.TextPathElement.TEXTPATH_SPACINGTYPE_EXACT = 2;
-svg.TextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGTextPathElement, svg.TextPathElement);
-svg.TitleElement = class TitleElement extends svg.SvgElement {
+svg$.TextPathElement.TEXTPATH_METHODTYPE_ALIGN = 1;
+svg$.TextPathElement.TEXTPATH_METHODTYPE_STRETCH = 2;
+svg$.TextPathElement.TEXTPATH_METHODTYPE_UNKNOWN = 0;
+svg$.TextPathElement.TEXTPATH_SPACINGTYPE_AUTO = 1;
+svg$.TextPathElement.TEXTPATH_SPACINGTYPE_EXACT = 2;
+svg$.TextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGTextPathElement, svg$.TextPathElement);
+svg$.TitleElement = class TitleElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.TitleElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("title"));
+    return svg$.TitleElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("title"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg.TitleElement, 'created');
-dart.setSignature(svg.TitleElement, {
+dart.defineNamedConstructor(svg$.TitleElement, 'created');
+dart.setSignature(svg$.TitleElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.TitleElement, []),
-    new: dart.definiteFunctionType(svg.TitleElement, []),
-    created: dart.definiteFunctionType(svg.TitleElement, [])
+    _: dart.definiteFunctionType(svg$.TitleElement, []),
+    new: dart.definiteFunctionType(svg$.TitleElement, []),
+    created: dart.definiteFunctionType(svg$.TitleElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGTitleElement, svg.TitleElement);
+dart.registerExtension(dart.global.SVGTitleElement, svg$.TitleElement);
 dart.defineExtensionNames([
   'setMatrix',
   'setRotate',
@@ -106451,7 +106454,7 @@
   'matrix',
   'type'
 ]);
-svg.Transform = class Transform extends _interceptors.Interceptor {
+svg$.Transform = class Transform extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106483,15 +106486,15 @@
     return this.setTranslate.apply(this, args);
   }
 };
-dart.setSignature(svg.Transform, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.Transform, [])}),
+dart.setSignature(svg$.Transform, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.Transform, [])}),
   fields: () => ({
     [dartx.angle]: core.double,
-    [dartx.matrix]: svg.Matrix,
+    [dartx.matrix]: svg$.Matrix,
     [dartx.type]: core.int
   }),
   methods: () => ({
-    [dartx.setMatrix]: dart.definiteFunctionType(dart.void, [svg.Matrix]),
+    [dartx.setMatrix]: dart.definiteFunctionType(dart.void, [svg$.Matrix]),
     [dartx.setRotate]: dart.definiteFunctionType(dart.void, [core.num, core.num, core.num]),
     [dartx.setScale]: dart.definiteFunctionType(dart.void, [core.num, core.num]),
     [dartx.setSkewX]: dart.definiteFunctionType(dart.void, [core.num]),
@@ -106508,14 +106511,14 @@
     SVG_TRANSFORM_UNKNOWN: core.int
   })
 });
-svg.Transform.SVG_TRANSFORM_MATRIX = 1;
-svg.Transform.SVG_TRANSFORM_ROTATE = 4;
-svg.Transform.SVG_TRANSFORM_SCALE = 3;
-svg.Transform.SVG_TRANSFORM_SKEWX = 5;
-svg.Transform.SVG_TRANSFORM_SKEWY = 6;
-svg.Transform.SVG_TRANSFORM_TRANSLATE = 2;
-svg.Transform.SVG_TRANSFORM_UNKNOWN = 0;
-dart.registerExtension(dart.global.SVGTransform, svg.Transform);
+svg$.Transform.SVG_TRANSFORM_MATRIX = 1;
+svg$.Transform.SVG_TRANSFORM_ROTATE = 4;
+svg$.Transform.SVG_TRANSFORM_SCALE = 3;
+svg$.Transform.SVG_TRANSFORM_SKEWX = 5;
+svg$.Transform.SVG_TRANSFORM_SKEWY = 6;
+svg$.Transform.SVG_TRANSFORM_TRANSLATE = 2;
+svg$.Transform.SVG_TRANSFORM_UNKNOWN = 0;
+dart.registerExtension(dart.global.SVGTransform, svg$.Transform);
 dart.defineExtensionNames([
   'length',
   '_get',
@@ -106536,7 +106539,7 @@
   'replaceItem',
   'numberOfItems'
 ]);
-svg.TransformList = class TransformList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg.Transform), html.ImmutableListMixin$(svg.Transform)) {
+svg$.TransformList = class TransformList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(svg$.Transform), html$.ImmutableListMixin$(svg$.Transform)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106581,7 +106584,7 @@
   [dartx.elementAt](index) {
     return this[dartx._get](index);
   }
-  [__setter__](...args) {
+  [__setter__$](...args) {
     return this.__setter__.apply(this, args);
   }
   [dartx.appendItem](...args) {
@@ -106612,64 +106615,64 @@
     return this.replaceItem.apply(this, args);
   }
 };
-svg.TransformList[dart.implements] = () => [ListOfTransform()];
-dart.setSignature(svg.TransformList, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.TransformList, [])}),
+svg$.TransformList[dart.implements] = () => [ListOfTransform()];
+dart.setSignature(svg$.TransformList, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.TransformList, [])}),
   fields: () => ({[dartx.numberOfItems]: core.int}),
   getters: () => ({[dartx.length]: dart.definiteFunctionType(core.int, [])}),
   setters: () => ({[dartx.length]: dart.definiteFunctionType(dart.void, [core.int])}),
   methods: () => ({
-    [dartx._get]: dart.definiteFunctionType(svg.Transform, [core.int]),
-    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg.Transform]),
-    [__setter__]: dart.definiteFunctionType(dart.void, [core.int, svg.Transform]),
-    [dartx.appendItem]: dart.definiteFunctionType(svg.Transform, [svg.Transform]),
-    [dartx.consolidate]: dart.definiteFunctionType(svg.Transform, []),
-    [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg.Transform, [svg.Matrix]),
-    [dartx.getItem]: dart.definiteFunctionType(svg.Transform, [core.int]),
-    [dartx.initialize]: dart.definiteFunctionType(svg.Transform, [svg.Transform]),
-    [dartx.insertItemBefore]: dart.definiteFunctionType(svg.Transform, [svg.Transform, core.int]),
-    [dartx.removeItem]: dart.definiteFunctionType(svg.Transform, [core.int]),
-    [dartx.replaceItem]: dart.definiteFunctionType(svg.Transform, [svg.Transform, core.int])
+    [dartx._get]: dart.definiteFunctionType(svg$.Transform, [core.int]),
+    [dartx._set]: dart.definiteFunctionType(dart.void, [core.int, svg$.Transform]),
+    [__setter__$]: dart.definiteFunctionType(dart.void, [core.int, svg$.Transform]),
+    [dartx.appendItem]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform]),
+    [dartx.consolidate]: dart.definiteFunctionType(svg$.Transform, []),
+    [dartx.createSvgTransformFromMatrix]: dart.definiteFunctionType(svg$.Transform, [svg$.Matrix]),
+    [dartx.getItem]: dart.definiteFunctionType(svg$.Transform, [core.int]),
+    [dartx.initialize]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform]),
+    [dartx.insertItemBefore]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform, core.int]),
+    [dartx.removeItem]: dart.definiteFunctionType(svg$.Transform, [core.int]),
+    [dartx.replaceItem]: dart.definiteFunctionType(svg$.Transform, [svg$.Transform, core.int])
   })
 });
-dart.registerExtension(dart.global.SVGTransformList, svg.TransformList);
-svg.UnitTypes = class UnitTypes extends _interceptors.Interceptor {
+dart.registerExtension(dart.global.SVGTransformList, svg$.TransformList);
+svg$.UnitTypes = class UnitTypes extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
 };
-dart.setSignature(svg.UnitTypes, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.UnitTypes, [])}),
+dart.setSignature(svg$.UnitTypes, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.UnitTypes, [])}),
   sfields: () => ({
     SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: core.int,
     SVG_UNIT_TYPE_UNKNOWN: core.int,
     SVG_UNIT_TYPE_USERSPACEONUSE: core.int
   })
 });
-svg.UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
-svg.UnitTypes.SVG_UNIT_TYPE_UNKNOWN = 0;
-svg.UnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE = 1;
-dart.registerExtension(dart.global.SVGUnitTypes, svg.UnitTypes);
+svg$.UnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
+svg$.UnitTypes.SVG_UNIT_TYPE_UNKNOWN = 0;
+svg$.UnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE = 1;
+dart.registerExtension(dart.global.SVGUnitTypes, svg$.UnitTypes);
 dart.defineExtensionNames([
   'href'
 ]);
-svg.UriReference = class UriReference extends _interceptors.Interceptor {
+svg$.UriReference = class UriReference extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   get href() {
-    return this[href];
+    return this[href$0];
   }
   set href(value) {
     super.href = value;
   }
 };
-const href = Symbol(svg.UriReference.name + "." + 'href'.toString());
-dart.setSignature(svg.UriReference, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.UriReference, [])}),
-  fields: () => ({href: svg.AnimatedString})
+const href$0 = Symbol(svg$.UriReference.name + "." + 'href'.toString());
+dart.setSignature(svg$.UriReference, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.UriReference, [])}),
+  fields: () => ({href: svg$.AnimatedString})
 });
-dart.defineExtensionMembers(svg.UriReference, ['href']);
+dart.defineExtensionMembers(svg$.UriReference, ['href']);
 dart.defineExtensionNames([
   'height',
   'width',
@@ -106677,12 +106680,12 @@
   'y',
   'href'
 ]);
-svg.UseElement = class UseElement extends svg.GraphicsElement {
+svg$.UseElement = class UseElement extends svg$.GraphicsElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.UseElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("use"));
+    return svg$.UseElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("use"));
   }
   created() {
     this[dartx.height] = null;
@@ -106708,35 +106711,35 @@
     return this.href;
   }
 };
-dart.defineNamedConstructor(svg.UseElement, 'created');
-svg.UseElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg.UseElement, {
+dart.defineNamedConstructor(svg$.UseElement, 'created');
+svg$.UseElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$.UseElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.UseElement, []),
-    new: dart.definiteFunctionType(svg.UseElement, []),
-    created: dart.definiteFunctionType(svg.UseElement, [])
+    _: dart.definiteFunctionType(svg$.UseElement, []),
+    new: dart.definiteFunctionType(svg$.UseElement, []),
+    created: dart.definiteFunctionType(svg$.UseElement, [])
   }),
   fields: () => ({
-    [dartx.height]: svg.AnimatedLength,
-    [dartx.width]: svg.AnimatedLength,
-    [dartx.x]: svg.AnimatedLength,
-    [dartx.y]: svg.AnimatedLength,
-    [dartx.href]: svg.AnimatedString
+    [dartx.height]: svg$.AnimatedLength,
+    [dartx.width]: svg$.AnimatedLength,
+    [dartx.x]: svg$.AnimatedLength,
+    [dartx.y]: svg$.AnimatedLength,
+    [dartx.href]: svg$.AnimatedString
   })
 });
-dart.registerExtension(dart.global.SVGUseElement, svg.UseElement);
+dart.registerExtension(dart.global.SVGUseElement, svg$.UseElement);
 dart.defineExtensionNames([
   'viewTarget',
   'preserveAspectRatio',
   'viewBox',
   'zoomAndPan'
 ]);
-svg.ViewElement = class ViewElement extends svg.SvgElement {
+svg$.ViewElement = class ViewElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg.ViewElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("view"));
+    return svg$.ViewElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("view"));
   }
   created() {
     this[dartx.viewTarget] = null;
@@ -106761,22 +106764,22 @@
     this.zoomAndPan = value;
   }
 };
-dart.defineNamedConstructor(svg.ViewElement, 'created');
-svg.ViewElement[dart.implements] = () => [svg.FitToViewBox, svg.ZoomAndPan];
-dart.setSignature(svg.ViewElement, {
+dart.defineNamedConstructor(svg$.ViewElement, 'created');
+svg$.ViewElement[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
+dart.setSignature(svg$.ViewElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg.ViewElement, []),
-    new: dart.definiteFunctionType(svg.ViewElement, []),
-    created: dart.definiteFunctionType(svg.ViewElement, [])
+    _: dart.definiteFunctionType(svg$.ViewElement, []),
+    new: dart.definiteFunctionType(svg$.ViewElement, []),
+    created: dart.definiteFunctionType(svg$.ViewElement, [])
   }),
   fields: () => ({
-    [dartx.viewTarget]: svg.StringList,
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.viewBox]: svg.AnimatedRect,
+    [dartx.viewTarget]: svg$.StringList,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
     [dartx.zoomAndPan]: core.int
   })
 });
-dart.registerExtension(dart.global.SVGViewElement, svg.ViewElement);
+dart.registerExtension(dart.global.SVGViewElement, svg$.ViewElement);
 dart.defineExtensionNames([
   'preserveAspectRatioString',
   'transform',
@@ -106788,7 +106791,7 @@
   'viewBox',
   'zoomAndPan'
 ]);
-svg.ViewSpec = class ViewSpec extends _interceptors.Interceptor {
+svg$.ViewSpec = class ViewSpec extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106823,26 +106826,26 @@
     this.zoomAndPan = value;
   }
 };
-svg.ViewSpec[dart.implements] = () => [svg.FitToViewBox, svg.ZoomAndPan];
-dart.setSignature(svg.ViewSpec, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.ViewSpec, [])}),
+svg$.ViewSpec[dart.implements] = () => [svg$.FitToViewBox, svg$.ZoomAndPan];
+dart.setSignature(svg$.ViewSpec, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.ViewSpec, [])}),
   fields: () => ({
     [dartx.preserveAspectRatioString]: core.String,
-    [dartx.transform]: svg.TransformList,
+    [dartx.transform]: svg$.TransformList,
     [dartx.transformString]: core.String,
     [dartx.viewBoxString]: core.String,
-    [dartx.viewTarget]: svg.SvgElement,
+    [dartx.viewTarget]: svg$.SvgElement,
     [dartx.viewTargetString]: core.String,
-    [dartx.preserveAspectRatio]: svg.AnimatedPreserveAspectRatio,
-    [dartx.viewBox]: svg.AnimatedRect,
+    [dartx.preserveAspectRatio]: svg$.AnimatedPreserveAspectRatio,
+    [dartx.viewBox]: svg$.AnimatedRect,
     [dartx.zoomAndPan]: core.int
   })
 });
-dart.registerExtension(dart.global.SVGViewSpec, svg.ViewSpec);
+dart.registerExtension(dart.global.SVGViewSpec, svg$.ViewSpec);
 dart.defineExtensionNames([
   'zoomAndPan'
 ]);
-svg.ZoomAndPan = class ZoomAndPan extends _interceptors.Interceptor {
+svg$.ZoomAndPan = class ZoomAndPan extends _interceptors.Interceptor {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106853,9 +106856,9 @@
     this[zoomAndPan] = value;
   }
 };
-const zoomAndPan = Symbol(svg.ZoomAndPan.name + "." + 'zoomAndPan'.toString());
-dart.setSignature(svg.ZoomAndPan, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.ZoomAndPan, [])}),
+const zoomAndPan = Symbol(svg$.ZoomAndPan.name + "." + 'zoomAndPan'.toString());
+dart.setSignature(svg$.ZoomAndPan, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.ZoomAndPan, [])}),
   fields: () => ({zoomAndPan: core.int}),
   sfields: () => ({
     SVG_ZOOMANDPAN_DISABLE: core.int,
@@ -106863,10 +106866,10 @@
     SVG_ZOOMANDPAN_UNKNOWN: core.int
   })
 });
-dart.defineExtensionMembers(svg.ZoomAndPan, ['zoomAndPan', 'zoomAndPan']);
-svg.ZoomAndPan.SVG_ZOOMANDPAN_DISABLE = 1;
-svg.ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY = 2;
-svg.ZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN = 0;
+dart.defineExtensionMembers(svg$.ZoomAndPan, ['zoomAndPan', 'zoomAndPan']);
+svg$.ZoomAndPan.SVG_ZOOMANDPAN_DISABLE = 1;
+svg$.ZoomAndPan.SVG_ZOOMANDPAN_MAGNIFY = 2;
+svg$.ZoomAndPan.SVG_ZOOMANDPAN_UNKNOWN = 0;
 dart.defineExtensionNames([
   'newScale',
   'newTranslate',
@@ -106874,7 +106877,7 @@
   'previousTranslate',
   'zoomRectScreen'
 ]);
-svg.ZoomEvent = class ZoomEvent extends html.UIEvent {
+svg$.ZoomEvent = class ZoomEvent extends html$.UIEvent {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106894,43 +106897,43 @@
     return this.zoomRectScreen;
   }
 };
-dart.setSignature(svg.ZoomEvent, {
-  constructors: () => ({_: dart.definiteFunctionType(svg.ZoomEvent, [])}),
+dart.setSignature(svg$.ZoomEvent, {
+  constructors: () => ({_: dart.definiteFunctionType(svg$.ZoomEvent, [])}),
   fields: () => ({
     [dartx.newScale]: core.double,
-    [dartx.newTranslate]: svg.Point,
+    [dartx.newTranslate]: svg$.Point,
     [dartx.previousScale]: core.double,
-    [dartx.previousTranslate]: svg.Point,
-    [dartx.zoomRectScreen]: svg.Rect
+    [dartx.previousTranslate]: svg$.Point,
+    [dartx.zoomRectScreen]: svg$.Rect
   })
 });
-dart.registerExtension(dart.global.SVGZoomEvent, svg.ZoomEvent);
-svg._SVGCursorElement = class _SVGCursorElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGZoomEvent, svg$.ZoomEvent);
+svg$._SVGCursorElement = class _SVGCursorElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg._SVGCursorElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("cursor"));
+    return svg$._SVGCursorElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("cursor"));
   }
   created() {
     super.created();
   }
   static get supported() {
-    return dart.test(svg.SvgElement.isTagSupported('cursor')) && svg._SVGCursorElement.is(svg.SvgElement.tag('cursor'));
+    return dart.test(svg$.SvgElement.isTagSupported('cursor')) && svg$._SVGCursorElement.is(svg$.SvgElement.tag('cursor'));
   }
 };
-dart.defineNamedConstructor(svg._SVGCursorElement, 'created');
-svg._SVGCursorElement[dart.implements] = () => [svg.UriReference, svg.Tests];
-dart.setSignature(svg._SVGCursorElement, {
+dart.defineNamedConstructor(svg$._SVGCursorElement, 'created');
+svg$._SVGCursorElement[dart.implements] = () => [svg$.UriReference, svg$.Tests];
+dart.setSignature(svg$._SVGCursorElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg._SVGCursorElement, []),
-    new: dart.definiteFunctionType(svg._SVGCursorElement, []),
-    created: dart.definiteFunctionType(svg._SVGCursorElement, [])
+    _: dart.definiteFunctionType(svg$._SVGCursorElement, []),
+    new: dart.definiteFunctionType(svg$._SVGCursorElement, []),
+    created: dart.definiteFunctionType(svg$._SVGCursorElement, [])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
-dart.registerExtension(dart.global.SVGCursorElement, svg._SVGCursorElement);
-svg._SVGFEDropShadowElement = class _SVGFEDropShadowElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGCursorElement, svg$._SVGCursorElement);
+svg$._SVGFEDropShadowElement = class _SVGFEDropShadowElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -106938,36 +106941,36 @@
     super.created();
   }
 };
-dart.defineNamedConstructor(svg._SVGFEDropShadowElement, 'created');
-svg._SVGFEDropShadowElement[dart.implements] = () => [svg.FilterPrimitiveStandardAttributes];
-dart.setSignature(svg._SVGFEDropShadowElement, {
+dart.defineNamedConstructor(svg$._SVGFEDropShadowElement, 'created');
+svg$._SVGFEDropShadowElement[dart.implements] = () => [svg$.FilterPrimitiveStandardAttributes];
+dart.setSignature(svg$._SVGFEDropShadowElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg._SVGFEDropShadowElement, []),
-    created: dart.definiteFunctionType(svg._SVGFEDropShadowElement, [])
+    _: dart.definiteFunctionType(svg$._SVGFEDropShadowElement, []),
+    created: dart.definiteFunctionType(svg$._SVGFEDropShadowElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGFEDropShadowElement, svg._SVGFEDropShadowElement);
-svg._SVGMPathElement = class _SVGMPathElement extends svg.SvgElement {
+dart.registerExtension(dart.global.SVGFEDropShadowElement, svg$._SVGFEDropShadowElement);
+svg$._SVGMPathElement = class _SVGMPathElement extends svg$.SvgElement {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
   static new() {
-    return svg._SVGMPathElement._check(svg._SvgElementFactoryProvider.createSvgElement_tag("mpath"));
+    return svg$._SVGMPathElement._check(svg$._SvgElementFactoryProvider.createSvgElement_tag("mpath"));
   }
   created() {
     super.created();
   }
 };
-dart.defineNamedConstructor(svg._SVGMPathElement, 'created');
-svg._SVGMPathElement[dart.implements] = () => [svg.UriReference];
-dart.setSignature(svg._SVGMPathElement, {
+dart.defineNamedConstructor(svg$._SVGMPathElement, 'created');
+svg$._SVGMPathElement[dart.implements] = () => [svg$.UriReference];
+dart.setSignature(svg$._SVGMPathElement, {
   constructors: () => ({
-    _: dart.definiteFunctionType(svg._SVGMPathElement, []),
-    new: dart.definiteFunctionType(svg._SVGMPathElement, []),
-    created: dart.definiteFunctionType(svg._SVGMPathElement, [])
+    _: dart.definiteFunctionType(svg$._SVGMPathElement, []),
+    new: dart.definiteFunctionType(svg$._SVGMPathElement, []),
+    created: dart.definiteFunctionType(svg$._SVGMPathElement, [])
   })
 });
-dart.registerExtension(dart.global.SVGMPathElement, svg._SVGMPathElement);
+dart.registerExtension(dart.global.SVGMPathElement, svg$._SVGMPathElement);
 const _connect = Symbol('_connect');
 dart.defineExtensionNames([
   'disconnect',
@@ -106980,7 +106983,7 @@
   'numberOfInputs',
   'numberOfOutputs'
 ]);
-web_audio.AudioNode = class AudioNode extends html.EventTarget {
+web_audio.AudioNode = class AudioNode extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -107248,7 +107251,7 @@
     [dartx.loopStart]: core.num,
     [dartx.playbackRate]: web_audio.AudioParam
   }),
-  getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
     [dartx.start]: dart.definiteFunctionType(dart.void, [core.num], [core.num, core.num]),
     [dartx.stop]: dart.definiteFunctionType(dart.void, [core.num])
@@ -107285,7 +107288,7 @@
   'listener',
   'sampleRate'
 ]);
-web_audio.AudioContext = class AudioContext extends html.EventTarget {
+web_audio.AudioContext = class AudioContext extends html$.EventTarget {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -107408,7 +107411,7 @@
     [dartx.listener]: web_audio.AudioListener,
     [dartx.sampleRate]: core.double
   }),
-  getters: () => ({[dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onComplete]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
     [dartx.createAnalyser]: dart.definiteFunctionType(web_audio.AnalyserNode, []),
     [dartx.createBiquadFilter]: dart.definiteFunctionType(web_audio.BiquadFilterNode, []),
@@ -107419,9 +107422,9 @@
     [dartx.createConvolver]: dart.definiteFunctionType(web_audio.ConvolverNode, []),
     [dartx.createDelay]: dart.definiteFunctionType(web_audio.DelayNode, [], [core.num]),
     [dartx.createDynamicsCompressor]: dart.definiteFunctionType(web_audio.DynamicsCompressorNode, []),
-    [dartx.createMediaElementSource]: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [html.MediaElement]),
+    [dartx.createMediaElementSource]: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [html$.MediaElement]),
     [dartx.createMediaStreamDestination]: dart.definiteFunctionType(web_audio.MediaStreamAudioDestinationNode, []),
-    [dartx.createMediaStreamSource]: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [html.MediaStream]),
+    [dartx.createMediaStreamSource]: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [html$.MediaStream]),
     [dartx.createOscillator]: dart.definiteFunctionType(web_audio.OscillatorNode, []),
     [dartx.createPanner]: dart.definiteFunctionType(web_audio.PannerNode, []),
     [dartx.createPeriodicWave]: dart.definiteFunctionType(web_audio.PeriodicWave, [typed_data.Float32List, typed_data.Float32List]),
@@ -107563,7 +107566,7 @@
   'outputBuffer',
   'playbackTime'
 ]);
-web_audio.AudioProcessingEvent = class AudioProcessingEvent extends html.Event {
+web_audio.AudioProcessingEvent = class AudioProcessingEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -107770,7 +107773,7 @@
 };
 dart.setSignature(web_audio.MediaElementAudioSourceNode, {
   constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaElementAudioSourceNode, [])}),
-  fields: () => ({[dartx.mediaElement]: html.MediaElement})
+  fields: () => ({[dartx.mediaElement]: html$.MediaElement})
 });
 dart.registerExtension(dart.global.MediaElementAudioSourceNode, web_audio.MediaElementAudioSourceNode);
 dart.defineExtensionNames([
@@ -107786,7 +107789,7 @@
 };
 dart.setSignature(web_audio.MediaStreamAudioDestinationNode, {
   constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaStreamAudioDestinationNode, [])}),
-  fields: () => ({[dartx.stream]: html.MediaStream})
+  fields: () => ({[dartx.stream]: html$.MediaStream})
 });
 dart.registerExtension(dart.global.MediaStreamAudioDestinationNode, web_audio.MediaStreamAudioDestinationNode);
 dart.defineExtensionNames([
@@ -107802,13 +107805,13 @@
 };
 dart.setSignature(web_audio.MediaStreamAudioSourceNode, {
   constructors: () => ({_: dart.definiteFunctionType(web_audio.MediaStreamAudioSourceNode, [])}),
-  fields: () => ({[dartx.mediaStream]: html.MediaStream})
+  fields: () => ({[dartx.mediaStream]: html$.MediaStream})
 });
 dart.registerExtension(dart.global.MediaStreamAudioSourceNode, web_audio.MediaStreamAudioSourceNode);
 dart.defineExtensionNames([
   'renderedBuffer'
 ]);
-web_audio.OfflineAudioCompletionEvent = class OfflineAudioCompletionEvent extends html.Event {
+web_audio.OfflineAudioCompletionEvent = class OfflineAudioCompletionEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -107894,7 +107897,7 @@
     [dartx.frequency]: web_audio.AudioParam,
     [dartx.type]: core.String
   }),
-  getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html.Event), [])}),
+  getters: () => ({[dartx.onEnded]: dart.definiteFunctionType(async.Stream$(html$.Event), [])}),
   methods: () => ({
     [dartx.noteOff]: dart.definiteFunctionType(dart.void, [core.num]),
     [dartx.noteOn]: dart.definiteFunctionType(dart.void, [core.num]),
@@ -108035,7 +108038,7 @@
   constructors: () => ({_: dart.definiteFunctionType(web_audio.ScriptProcessorNode, [])}),
   fields: () => ({[dartx.bufferSize]: core.int}),
   getters: () => ({[dartx.onAudioProcess]: dart.definiteFunctionType(async.Stream$(web_audio.AudioProcessingEvent), [])}),
-  methods: () => ({[dartx.setEventListener]: dart.definiteFunctionType(dart.void, [html.EventListener])}),
+  methods: () => ({[dartx.setEventListener]: dart.definiteFunctionType(dart.void, [html$.EventListener])}),
   sfields: () => ({audioProcessEvent: EventStreamProviderOfAudioProcessingEvent()})
 });
 web_audio.ScriptProcessorNode.audioProcessEvent = dart.const(new (EventStreamProviderOfAudioProcessingEvent())('audioprocess'));
@@ -108070,7 +108073,7 @@
   })
 });
 dart.registerExtension(dart.global.WaveShaperNode, web_audio.WaveShaperNode);
-const _getContextAttributes_1 = Symbol('_getContextAttributes_1');
+const _getContextAttributes_1$ = Symbol('_getContextAttributes_1');
 const _texImage2D_1 = Symbol('_texImage2D_1');
 const _texImage2D_2 = Symbol('_texImage2D_2');
 const _texImage2D_3 = Symbol('_texImage2D_3');
@@ -108446,9 +108449,9 @@
     return this.getBufferParameter.apply(this, args);
   }
   [dartx.getContextAttributes]() {
-    return web_gl.ContextAttributes._check(html_common.convertNativeToDart_ContextAttributes(this[_getContextAttributes_1]()));
+    return web_gl.ContextAttributes._check(html_common.convertNativeToDart_ContextAttributes(this[_getContextAttributes_1$]()));
   }
-  [_getContextAttributes_1](...args) {
+  [_getContextAttributes_1$](...args) {
     return this.getContextAttributes.apply(this, args);
   }
   [dartx.getError](...args) {
@@ -108582,20 +108585,20 @@
       this[_texImage2D_1](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video, format, type, pixels);
       return;
     }
-    if ((html.ImageData.is(border_OR_canvas_OR_image_OR_pixels_OR_video) || border_OR_canvas_OR_image_OR_pixels_OR_video == null) && format == null && type == null && pixels == null) {
-      let pixels_1 = html_common.convertDartToNative_ImageData(html.ImageData._check(border_OR_canvas_OR_image_OR_pixels_OR_video));
+    if ((html$.ImageData.is(border_OR_canvas_OR_image_OR_pixels_OR_video) || border_OR_canvas_OR_image_OR_pixels_OR_video == null) && format == null && type == null && pixels == null) {
+      let pixels_1 = html_common.convertDartToNative_ImageData(html$.ImageData._check(border_OR_canvas_OR_image_OR_pixels_OR_video));
       this[_texImage2D_2](target, level, internalformat, format_OR_width, height_OR_type, pixels_1);
       return;
     }
-    if (html.ImageElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
+    if (html$.ImageElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
       this[_texImage2D_3](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
       return;
     }
-    if (html.CanvasElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
+    if (html$.CanvasElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
       this[_texImage2D_4](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
       return;
     }
-    if (html.VideoElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
+    if (html$.VideoElement.is(border_OR_canvas_OR_image_OR_pixels_OR_video) && format == null && type == null && pixels == null) {
       this[_texImage2D_5](target, level, internalformat, format_OR_width, height_OR_type, border_OR_canvas_OR_image_OR_pixels_OR_video);
       return;
     }
@@ -108646,20 +108649,20 @@
       this[_texSubImage2D_1](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video, type, pixels);
       return;
     }
-    if ((html.ImageData.is(canvas_OR_format_OR_image_OR_pixels_OR_video) || canvas_OR_format_OR_image_OR_pixels_OR_video == null) && type == null && pixels == null) {
-      let pixels_1 = html_common.convertDartToNative_ImageData(html.ImageData._check(canvas_OR_format_OR_image_OR_pixels_OR_video));
+    if ((html$.ImageData.is(canvas_OR_format_OR_image_OR_pixels_OR_video) || canvas_OR_format_OR_image_OR_pixels_OR_video == null) && type == null && pixels == null) {
+      let pixels_1 = html_common.convertDartToNative_ImageData(html$.ImageData._check(canvas_OR_format_OR_image_OR_pixels_OR_video));
       this[_texSubImage2D_2](target, level, xoffset, yoffset, format_OR_width, height_OR_type, pixels_1);
       return;
     }
-    if (html.ImageElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
+    if (html$.ImageElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
       this[_texSubImage2D_3](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
       return;
     }
-    if (html.CanvasElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
+    if (html$.CanvasElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
       this[_texSubImage2D_4](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
       return;
     }
-    if (html.VideoElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
+    if (html$.VideoElement.is(canvas_OR_format_OR_image_OR_pixels_OR_video) && type == null && pixels == null) {
       this[_texSubImage2D_5](target, level, xoffset, yoffset, format_OR_width, height_OR_type, canvas_OR_format_OR_image_OR_pixels_OR_video);
       return;
     }
@@ -108803,11 +108806,11 @@
     return this.texSubImage2D.apply(this, args);
   }
 };
-web_gl.RenderingContext[dart.implements] = () => [html.CanvasRenderingContext];
+web_gl.RenderingContext[dart.implements] = () => [html$.CanvasRenderingContext];
 dart.setSignature(web_gl.RenderingContext, {
   constructors: () => ({_: dart.definiteFunctionType(web_gl.RenderingContext, [])}),
   fields: () => ({
-    [dartx.canvas]: html.CanvasElement,
+    [dartx.canvas]: html$.CanvasElement,
     [dartx.drawingBufferHeight]: core.int,
     [dartx.drawingBufferWidth]: core.int
   }),
@@ -108876,7 +108879,7 @@
     [dartx.getAttribLocation]: dart.definiteFunctionType(core.int, [web_gl.Program, core.String]),
     [dartx.getBufferParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int]),
     [dartx.getContextAttributes]: dart.definiteFunctionType(web_gl.ContextAttributes, []),
-    [_getContextAttributes_1]: dart.definiteFunctionType(dart.dynamic, []),
+    [_getContextAttributes_1$]: dart.definiteFunctionType(dart.dynamic, []),
     [dartx.getError]: dart.definiteFunctionType(core.int, []),
     [dartx.getExtension]: dart.definiteFunctionType(core.Object, [core.String]),
     [dartx.getFramebufferAttachmentParameter]: dart.definiteFunctionType(core.Object, [core.int, core.int, core.int]),
@@ -108921,27 +108924,27 @@
     [dartx.texImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, core.int, typed_data.TypedData]),
     [_texImage2D_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, dart.dynamic, typed_data.TypedData]),
     [_texImage2D_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    [_texImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html.ImageElement]),
-    [_texImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html.CanvasElement]),
-    [_texImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html.VideoElement]),
-    [dartx.texImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html.CanvasElement]),
-    [dartx.texImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html.ImageElement]),
-    [dartx.texImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html.ImageData]),
+    [_texImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
+    [_texImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
+    [_texImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
+    [dartx.texImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.CanvasElement]),
+    [dartx.texImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.ImageElement]),
+    [dartx.texImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.ImageData]),
     [_texImage2DImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    [dartx.texImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html.VideoElement]),
+    [dartx.texImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, html$.VideoElement]),
     [dartx.texParameterf]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.num]),
     [dartx.texParameteri]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int]),
     [dartx.texSubImage2D]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, dart.dynamic], [core.int, typed_data.TypedData]),
     [_texSubImage2D_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, core.int, dart.dynamic, typed_data.TypedData]),
     [_texSubImage2D_2]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    [_texSubImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html.ImageElement]),
-    [_texSubImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html.CanvasElement]),
-    [_texSubImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html.VideoElement]),
-    [dartx.texSubImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html.CanvasElement]),
-    [dartx.texSubImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html.ImageElement]),
-    [dartx.texSubImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html.ImageData]),
+    [_texSubImage2D_3]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.ImageElement]),
+    [_texSubImage2D_4]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.CanvasElement]),
+    [_texSubImage2D_5]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, html$.VideoElement]),
+    [dartx.texSubImage2DCanvas]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.CanvasElement]),
+    [dartx.texSubImage2DImage]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.ImageElement]),
+    [dartx.texSubImage2DImageData]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.ImageData]),
     [_texSubImage2DImageData_1]: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
-    [dartx.texSubImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html.VideoElement]),
+    [dartx.texSubImage2DVideo]: dart.definiteFunctionType(dart.void, [core.int, core.int, core.int, core.int, core.int, core.int, html$.VideoElement]),
     [dartx.uniform1f]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.num]),
     [dartx.uniform1fv]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, typed_data.Float32List]),
     [dartx.uniform1i]: dart.definiteFunctionType(dart.void, [web_gl.UniformLocation, core.int]),
@@ -110089,7 +110092,7 @@
 dart.defineExtensionNames([
   'statusMessage'
 ]);
-web_gl.ContextEvent = class ContextEvent extends html.Event {
+web_gl.ContextEvent = class ContextEvent extends html$.Event {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
@@ -110517,9 +110520,9 @@
   constructors: () => ({_: dart.definiteFunctionType(web_sql.SqlDatabase, [])}),
   fields: () => ({[dartx.version]: core.String}),
   methods: () => ({
-    [dartx.changeVersion]: dart.definiteFunctionType(dart.void, [core.String, core.String], [web_sql.SqlTransactionCallback, web_sql.SqlTransactionErrorCallback, html.VoidCallback]),
-    [dartx.readTransaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html.VoidCallback]),
-    [dartx.transaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html.VoidCallback])
+    [dartx.changeVersion]: dart.definiteFunctionType(dart.void, [core.String, core.String], [web_sql.SqlTransactionCallback, web_sql.SqlTransactionErrorCallback, html$.VoidCallback]),
+    [dartx.readTransaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html$.VoidCallback]),
+    [dartx.transaction]: dart.definiteFunctionType(dart.void, [web_sql.SqlTransactionCallback], [web_sql.SqlTransactionErrorCallback, html$.VoidCallback])
   }),
   sgetters: () => ({supported: dart.definiteFunctionType(core.bool, [])})
 });
@@ -110605,7 +110608,7 @@
   'elementAt',
   'item'
 ]);
-web_sql.SqlResultSetRowList = class SqlResultSetRowList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.Map), html.ImmutableListMixin$(core.Map)) {
+web_sql.SqlResultSetRowList = class SqlResultSetRowList extends dart.mixin(_interceptors.Interceptor, collection.ListMixin$(core.Map), html$.ImmutableListMixin$(core.Map)) {
   static _() {
     dart.throw(new core.UnsupportedError("Not supported"));
   }
diff --git a/pkg/dev_compiler/lib/js/legacy/dart_library.js b/pkg/dev_compiler/lib/js/legacy/dart_library.js
index e940863..585b7a4 100644
--- a/pkg/dev_compiler/lib/js/legacy/dart_library.js
+++ b/pkg/dev_compiler/lib/js/legacy/dart_library.js
@@ -27,6 +27,34 @@
   // Longer term, we can easily migrate to an existing JS module system:
   // ES6, AMD, RequireJS, ....
 
+  // Returns a proxy that delegates to the underlying loader.
+  // This defers loading of a module until a library is actually used.
+  const loadedModule = Symbol('loadedModule');
+  dart_library.defer = function(module, name, patch) {
+    let done = false;
+    function loadDeferred() {
+      done = true;
+      var mod = module[loadedModule];
+      var lib = mod[name];
+      // Install unproxied module and library in caller's context.
+      patch(mod, lib);
+    }
+    // The deferred library object.  Note, the only legal operations on a Dart
+    // library object should be get (to read a top-level variable, method, or
+    // Class) or set (to write a top-level variable).
+    return new Proxy({}, {
+      get: function(o, p) {
+        if (!done) loadDeferred();
+        return module[name][p];
+      },
+      set: function(o, p, value) {
+        if (!done) loadDeferred();
+        module[name][p] = value;
+        return true;
+      },
+    });
+  };
+
   class LibraryLoader {
 
     constructor(name, defaultValue, imports, loader) {
@@ -65,11 +93,33 @@
       let args = this.loadImports();
 
       // Load the library
-      args.unshift(this._library);
-      this._loader.apply(null, args);
+      let loader = this;
+      let library = this._library;
+      library[dartLibraryName] = this._name;
+      library[libraryImports] = this._imports;
+      library[loadedModule] = library;
+      args.unshift(library);
+
+      if (this._name == 'dart_sdk') {
+        // Eagerly load the SDK.
+        this._loader.apply(null, args);
+        loader._loader = null;
+      } else {
+        // Load / parse other modules on demand.
+        let done = false;
+        this._library = new Proxy(library, {
+          get: function(o, name) {
+            if (!done) {
+              done = true;
+              loader._loader.apply(null, args);
+              loader._loader = null;
+            }
+            return o[name];
+          }
+        });
+      }
+
       this._state = LibraryLoader.READY;
-      this._library[dartLibraryName] = this._name;
-      this._library[libraryImports] = this._imports;
       return this._library;
     }
 
@@ -121,14 +171,14 @@
     if (libraryName == null) libraryName = moduleName;
     let library = import_(moduleName)[libraryName];
     let dart_sdk = import_('dart_sdk');
+
     if (!_currentIsolate) {
-      // Create isolate and run main.
+      // Create isolate.
       _currentIsolate = true;
-      dart_sdk._isolate_helper.startRootIsolate(library.main, []);
-    } else {
-      // Main isolate is already initialized - just run main.
-      library.main();
+      dart_sdk._isolate_helper.startRootIsolate(() => {}, []);
     }
+
+    library.main();
   }
   dart_library.start = start;
 
diff --git a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
index 295dd7f..ca3e10c 100644
--- a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
@@ -2625,7 +2625,8 @@
         window.SourceBufferList = new MediaSource().sourceBuffers.constructor;
       }
     }
-    return typeof window == "undefined" ? global : window;
+    var globalState = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {};
+    return globalState;
   })();
   dart.JsSymbol = Symbol;
   dart._mixins = Symbol("mixins");
@@ -19095,12 +19096,14 @@
           return completer.future;
         };
       }
-      static forEach(input, f) {
-        let iterator = input[dartx.iterator];
-        return async.Future.doWhile(dart.fn(() => {
-          if (!dart.test(iterator.moveNext())) return false;
-          return async.Future.sync(dart.fn(() => dart.dcall(f, iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
-        }, VoidToObject$()));
+      static forEach(T) {
+        return (input, f) => {
+          let iterator = input[dartx.iterator];
+          return async.Future.doWhile(dart.fn(() => {
+            if (!dart.test(iterator.moveNext())) return false;
+            return async.Future.sync(dart.fn(() => f(iterator.current), VoidTodynamic$())).then(core.bool)(dart.fn(_ => true, dynamicTobool$()));
+          }, VoidToObject$()));
+        };
       }
       static doWhile(f) {
         let doneSignal = new async._Future();
@@ -19130,7 +19133,7 @@
       statics: () => ({
         wait: dart.definiteFunctionType(T => [async.Future$(core.List$(T)), [core.Iterable$(async.Future$(T))], {eagerError: core.bool, cleanUp: dart.functionType(dart.void, [T])}]),
         any: dart.definiteFunctionType(T => [async.Future$(T), [core.Iterable$(async.Future$(T))]]),
-        forEach: dart.definiteFunctionType(async.Future, [core.Iterable, dynamicTodynamic()]),
+        forEach: dart.definiteFunctionType(T => [async.Future, [core.Iterable$(T), dart.functionType(dart.dynamic, [T])]]),
         doWhile: dart.definiteFunctionType(async.Future, [VoidTodynamic()])
       }),
       names: ['wait', 'any', 'forEach', 'doWhile']
diff --git a/pkg/dev_compiler/lib/sdk/ddc_sdk.sum b/pkg/dev_compiler/lib/sdk/ddc_sdk.sum
index 8afc764..2578829 100644
--- a/pkg/dev_compiler/lib/sdk/ddc_sdk.sum
+++ b/pkg/dev_compiler/lib/sdk/ddc_sdk.sum
Binary files differ
diff --git a/pkg/dev_compiler/lib/src/compiler/code_generator.dart b/pkg/dev_compiler/lib/src/compiler/code_generator.dart
index a23e3e3..ef79b36 100644
--- a/pkg/dev_compiler/lib/src/compiler/code_generator.dart
+++ b/pkg/dev_compiler/lib/src/compiler/code_generator.dart
@@ -421,7 +421,7 @@
     var source = library.source;
     // TODO(jmesserly): we need to split out HTML.
     if (source.uri.scheme == 'dart') {
-      return 'dart_sdk';
+      return JS.dartSdkModule;
     }
     var moduleName = _buildUnit.libraryToModule(source);
     if (moduleName == null) {
diff --git a/pkg/dev_compiler/lib/src/compiler/js_names.dart b/pkg/dev_compiler/lib/src/compiler/js_names.dart
index 9bce2f5..456344a 100644
--- a/pkg/dev_compiler/lib/src/compiler/js_names.dart
+++ b/pkg/dev_compiler/lib/src/compiler/js_names.dart
@@ -6,6 +6,9 @@
 
 import '../js_ast/js_ast.dart';
 
+/// The ES6 name for the Dart SDK.  All dart:* libraries are in this module.
+const String dartSdkModule = 'dart_sdk';
+
 /// Unique instance for temporary variables. Will be renamed consistently
 /// across the entire file. Different instances will be named differently
 /// even if they have the same name, this makes it safe to use in code
@@ -107,6 +110,7 @@
 class _RenameVisitor extends VariableDeclarationVisitor {
   final pendingRenames = new Map<Object, Set<_FunctionScope>>();
 
+  final _FunctionScope globalScope = new _FunctionScope(null);
   final _FunctionScope rootScope = new _FunctionScope(null);
   _FunctionScope scope;
 
@@ -136,7 +140,7 @@
     }
     if (declScope == null) {
       // Assume it comes from the global scope.
-      declScope = rootScope;
+      declScope = globalScope;
       declScope.declared.add(id);
     }
     _markUsed(node, id, declScope);
@@ -146,7 +150,7 @@
     // If it needs rename, we can't add it to the used name set yet, instead we
     // will record all scopes it is visible in.
     Set<_FunctionScope> usedIn = null;
-    var rename = declScope != rootScope && needsRename(node);
+    var rename = declScope != globalScope && needsRename(node);
     if (rename) {
       usedIn = pendingRenames.putIfAbsent(id, () => new HashSet());
     }
diff --git a/pkg/dev_compiler/lib/src/compiler/module_builder.dart b/pkg/dev_compiler/lib/src/compiler/module_builder.dart
index 415554a..07510eb 100644
--- a/pkg/dev_compiler/lib/src/compiler/module_builder.dart
+++ b/pkg/dev_compiler/lib/src/compiler/module_builder.dart
@@ -161,8 +161,19 @@
       for (var importName in import.namedImports) {
         assert(!importName.isStar); // import * not supported in legacy modules.
         var asName = importName.asName ?? importName.name;
-        importStatements.add(js.statement(
-            'const # = #.#', [asName, moduleVar, importName.name.name]));
+        var fromName = importName.name.name;
+        // Load non-SDK modules on demand (i.e., deferred).
+        if (import.from.valueWithoutQuotes != dartSdkModule) {
+          importStatements.add(js.statement(
+              'let # = dart_library.defer(#, #, function (mod, lib) {'
+              '  # = mod;'
+              '  # = lib;'
+              '});',
+              [asName, moduleVar, js.string(fromName), moduleVar, asName]));
+        } else {
+          importStatements.add(js.statement(
+              'const # = #.#', [asName, moduleVar, importName.name.name]));
+        }
       }
     }
     statements.insertAll(0, importStatements);
@@ -201,7 +212,7 @@
 /// Generates CommonJS modules (used by Node.js).
 class CommonJSModuleBuilder extends _ModuleBuilder {
   Program build(Program module) {
-    var importStatements = <Statement>[];
+    var importStatements = [js.statement("'use strict';"),];
 
     // Collect imports/exports/statements.
     visitProgram(module);
@@ -238,12 +249,7 @@
       }
     }
 
-    // TODO(vsm): See https://github.com/dart-lang/sdk/issues/27309
-    // This extra level of indirection should be unnecessary.
-    var block =
-        js.statement("(function() { 'use strict'; #; })()", [statements]);
-
-    return new Program([block]);
+    return new Program(statements);
   }
 }
 
diff --git a/pkg/dev_compiler/test/codegen_expected/node_modules.js b/pkg/dev_compiler/test/codegen_expected/node_modules.js
index 2281378..5a7fa95 100644
--- a/pkg/dev_compiler/test/codegen_expected/node_modules.js
+++ b/pkg/dev_compiler/test/codegen_expected/node_modules.js
@@ -1,55 +1,53 @@
-(function() {
-  'use strict';
-  const dart_sdk = require('dart_sdk');
-  const core = dart_sdk.core;
-  const dart = dart_sdk.dart;
-  const dartx = dart_sdk.dartx;
-  const node_modules = Object.create(null);
-  let B = () => (B = dart.constFn(node_modules.B$()))();
-  let _B = () => (_B = dart.constFn(node_modules._B$()))();
-  let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
-  let VoidToString = () => (VoidToString = dart.constFn(dart.definiteFunctionType(core.String, [])))();
-  node_modules.Callback = dart.typedef('Callback', () => dart.functionType(dart.void, [], {i: core.int}));
-  node_modules.A = class A extends core.Object {};
-  node_modules._A = class _A extends core.Object {};
-  node_modules.B$ = dart.generic(T => {
-    class B extends core.Object {}
-    dart.addTypeTests(B);
-    return B;
-  });
-  node_modules.B = B();
-  node_modules._B$ = dart.generic(T => {
-    class _B extends core.Object {}
-    dart.addTypeTests(_B);
-    return _B;
-  });
-  node_modules._B = _B();
-  node_modules.f = function() {
-  };
-  dart.fn(node_modules.f, VoidTodynamic());
-  node_modules._f = function() {
-  };
-  dart.fn(node_modules._f, VoidTodynamic());
-  node_modules.constant = "abc";
-  node_modules.finalConstant = "abc";
-  dart.defineLazy(node_modules, {
-    get lazy() {
-      return dart.fn(() => {
-        core.print('lazy');
-        return "abc";
-      }, VoidToString())();
-    }
-  });
-  node_modules.mutable = "abc";
-  dart.defineLazy(node_modules, {
-    get lazyMutable() {
-      return dart.fn(() => {
-        core.print('lazyMutable');
-        return "abc";
-      }, VoidToString())();
-    },
-    set lazyMutable(_) {}
-  });
-  // Exports:
-  exports.node_modules = node_modules;
-})();
+'use strict';
+const dart_sdk = require('dart_sdk');
+const core = dart_sdk.core;
+const dart = dart_sdk.dart;
+const dartx = dart_sdk.dartx;
+const node_modules = Object.create(null);
+let B = () => (B = dart.constFn(node_modules.B$()))();
+let _B = () => (_B = dart.constFn(node_modules._B$()))();
+let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
+let VoidToString = () => (VoidToString = dart.constFn(dart.definiteFunctionType(core.String, [])))();
+node_modules.Callback = dart.typedef('Callback', () => dart.functionType(dart.void, [], {i: core.int}));
+node_modules.A = class A extends core.Object {};
+node_modules._A = class _A extends core.Object {};
+node_modules.B$ = dart.generic(T => {
+  class B extends core.Object {}
+  dart.addTypeTests(B);
+  return B;
+});
+node_modules.B = B();
+node_modules._B$ = dart.generic(T => {
+  class _B extends core.Object {}
+  dart.addTypeTests(_B);
+  return _B;
+});
+node_modules._B = _B();
+node_modules.f = function() {
+};
+dart.fn(node_modules.f, VoidTodynamic());
+node_modules._f = function() {
+};
+dart.fn(node_modules._f, VoidTodynamic());
+node_modules.constant = "abc";
+node_modules.finalConstant = "abc";
+dart.defineLazy(node_modules, {
+  get lazy() {
+    return dart.fn(() => {
+      core.print('lazy');
+      return "abc";
+    }, VoidToString())();
+  }
+});
+node_modules.mutable = "abc";
+dart.defineLazy(node_modules, {
+  get lazyMutable() {
+    return dart.fn(() => {
+      core.print('lazyMutable');
+      return "abc";
+    }, VoidToString())();
+  },
+  set lazyMutable(_) {}
+});
+// Exports:
+exports.node_modules = node_modules;
diff --git a/pkg/dev_compiler/tool/input_sdk/lib/async/future.dart b/pkg/dev_compiler/tool/input_sdk/lib/async/future.dart
index 49b2460..5b570c6 100644
--- a/pkg/dev_compiler/tool/input_sdk/lib/async/future.dart
+++ b/pkg/dev_compiler/tool/input_sdk/lib/async/future.dart
@@ -418,8 +418,8 @@
    * If [f] returns a non-[Future], iteration continues immediately. Otherwise
    * it waits for the returned [Future] to complete.
    */
-  static Future forEach(Iterable input, f(element)) {
-    Iterator iterator = input.iterator;
+  static Future forEach<T>(Iterable<T> input, f(T element)) {
+    var iterator = input.iterator;
     return doWhile(() {
       if (!iterator.moveNext()) return false;
       return new Future.sync(() => f(iterator.current)).then((_) => true);
diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/runtime.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/runtime.dart
index fb47401..eb3b1e0 100644
--- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/runtime.dart
+++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/runtime.dart
@@ -82,7 +82,10 @@
         window.SourceBufferList = new MediaSource().sourceBuffers.constructor;
       }
     }
-    return typeof window == "undefined" ? global : window;
+    var globalState = (typeof window != "undefined") ? window
+      : (typeof global != "undefined") ? global
+      : (typeof self != "undefined") ? self : {};
+    return globalState;
   }()
 ''');
 
diff --git a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
index 505af9f..849100a 100644
--- a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
+++ b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart
@@ -4,53 +4,43 @@
 
 library fasta.analyzer.ast_builder;
 
-import 'package:front_end/src/fasta/scanner/token.dart' show
-    BeginGroupToken,
-    Token;
+import 'package:front_end/src/fasta/scanner/token.dart'
+    show BeginGroupToken, Token;
 
 import 'package:analyzer/analyzer.dart';
 
-import 'package:analyzer/dart/ast/token.dart' as analyzer show
-    Token;
+import 'package:analyzer/dart/ast/token.dart' as analyzer show Token;
 
-import 'package:analyzer/dart/element/element.dart' show
-    Element;
+import 'package:analyzer/dart/element/element.dart' show Element;
 
-import 'package:analyzer/dart/ast/ast_factory.dart' show
-    AstFactory;
+import 'package:analyzer/dart/ast/ast_factory.dart' show AstFactory;
 
 import 'package:analyzer/dart/ast/standard_ast_factory.dart' as standard;
 
-import '../errors.dart' show
-    internalError;
+import 'package:kernel/ast.dart' show AsyncMarker;
 
-import '../source/scope_listener.dart' show
-    JumpTargetKind,
-    NullValue,
-    Scope,
-    ScopeListener;
+import '../errors.dart' show internalError;
 
-import '../kernel/kernel_builder.dart' show
-    Builder,
-    KernelLibraryBuilder,
-    ProcedureBuilder;
+import '../source/scope_listener.dart'
+    show JumpTargetKind, NullValue, Scope, ScopeListener;
+
+import '../kernel/kernel_builder.dart'
+    show Builder, KernelLibraryBuilder, ProcedureBuilder;
 
 import '../quote.dart';
 
-import '../source/outline_builder.dart' show
-    asyncMarkerFromTokens;
+import '../source/outline_builder.dart' show asyncMarkerFromTokens;
 
-import 'element_store.dart' show
-    AnalyzerLocalVariableElemment,
-    AnalyzerParameterElement,
-    ElementStore,
-    KernelClassElement;
+import 'element_store.dart'
+    show
+        AnalyzerLocalVariableElemment,
+        AnalyzerParameterElement,
+        ElementStore,
+        KernelClassElement;
 
-import 'token_utils.dart' show
-    toAnalyzerToken;
+import 'token_utils.dart' show toAnalyzerToken;
 
-import 'analyzer.dart' show
-    toKernel;
+import 'analyzer.dart' show toKernel;
 
 class AstBuilder extends ScopeListener {
   final AstFactory ast = standard.astFactory;
@@ -63,6 +53,11 @@
 
   bool isFirstIdentifier = false;
 
+  /// If `true`, the first call to [handleIdentifier] should push a
+  /// List<SimpleIdentifier> on the stack, and [handleQualified] should append
+  /// to the list.
+  var accumulateIdentifierComponents = false;
+
   AstBuilder(this.library, this.member, this.elementStore, Scope scope)
       : super(scope);
 
@@ -100,13 +95,12 @@
       Quote quote = analyzeQuote(first.value);
       List<InterpolationElement> elements = <InterpolationElement>[];
       elements.add(ast.interpolationString(
-              toAnalyzerToken(first),
-              unescapeFirstStringPart(first.value, quote)));
+          toAnalyzerToken(first), unescapeFirstStringPart(first.value, quote)));
       for (int i = 1; i < parts.length - 1; i++) {
         var part = parts[i];
         if (part is Token) {
-          elements.add(ast.interpolationString(
-                  toAnalyzerToken(part), part.value));
+          elements
+              .add(ast.interpolationString(toAnalyzerToken(part), part.value));
         } else if (part is Expression) {
           elements.add(ast.interpolationExpression(null, part, null));
         } else {
@@ -114,8 +108,8 @@
               "Unexpected part in string interpolation: ${part.runtimeType}");
         }
       }
-      elements.add(ast.interpolationString(toAnalyzerToken(last),
-              unescapeLastStringPart(last.value, quote)));
+      elements.add(ast.interpolationString(
+          toAnalyzerToken(last), unescapeLastStringPart(last.value, quote)));
       push(ast.stringInterpolation(elements));
     }
   }
@@ -128,8 +122,8 @@
   void endArguments(int count, Token beginToken, Token endToken) {
     debugEvent("Arguments");
     List expressions = popList(count);
-    ArgumentList arguments = ast.argumentList(toAnalyzerToken(beginToken),
-        expressions, toAnalyzerToken(endToken));
+    ArgumentList arguments = ast.argumentList(
+        toAnalyzerToken(beginToken), expressions, toAnalyzerToken(endToken));
     push(ast.methodInvocation(null, null, null, null, arguments));
   }
 
@@ -141,15 +135,23 @@
     debugEvent("handleIdentifier");
     String name = token.value;
     SimpleIdentifier identifier = ast.simpleIdentifier(toAnalyzerToken(token));
-    if (isFirstIdentifier) {
-      Builder builder = scope.lookup(name, token.charOffset, uri);
-      if (builder != null) {
-        Element element = elementStore[builder];
-        assert(element != null);
-        identifier.staticElement = element;
+    if (accumulateIdentifierComponents) {
+      if (isFirstIdentifier) {
+        push([identifier]);
+      } else {
+        push(identifier);
       }
+    } else {
+      if (isFirstIdentifier) {
+        Builder builder = scope.lookup(name, token.charOffset, uri);
+        if (builder != null) {
+          Element element = elementStore[builder];
+          assert(element != null);
+          identifier.staticElement = element;
+        }
+      }
+      push(identifier);
     }
-    push(identifier);
     isFirstIdentifier = false;
   }
 
@@ -177,8 +179,7 @@
     }
   }
 
-  void doPropertyGet(Token token) {
-  }
+  void doPropertyGet(Token token) {}
 
   void endExpressionStatement(Token token) {
     debugEvent("ExpressionStatement");
@@ -191,8 +192,8 @@
     if (beginToken != null) {
       exitLocalScope();
     }
-    push(ast.block(toAnalyzerToken(beginToken), statements,
-            toAnalyzerToken(endToken)));
+    push(ast.block(
+        toAnalyzerToken(beginToken), statements, toAnalyzerToken(endToken)));
   }
 
   void finishFunction(formals, asyncModifier, Statement body) {
@@ -243,13 +244,13 @@
     Expression identifierOrInvoke = pop();
     Expression receiver = pop();
     if (identifierOrInvoke is SimpleIdentifier) {
-      push(ast.propertyAccess(receiver, toAnalyzerToken(token),
-              identifierOrInvoke));
+      push(ast.propertyAccess(
+          receiver, toAnalyzerToken(token), identifierOrInvoke));
     } else if (identifierOrInvoke is MethodInvocation) {
       assert(identifierOrInvoke.target == null);
       identifierOrInvoke
-          ..target = receiver
-          ..operator = toAnalyzerToken(token);
+        ..target = receiver
+        ..operator = toAnalyzerToken(token);
       push(identifierOrInvoke);
     } else {
       internalError(
@@ -266,8 +267,8 @@
       bool hasExpression, Token beginToken, Token endToken) {
     debugEvent("ReturnStatement");
     Expression expression = hasExpression ? pop() : null;
-    push(ast.returnStatement(toAnalyzerToken(beginToken), expression,
-            toAnalyzerToken(endToken)));
+    push(ast.returnStatement(
+        toAnalyzerToken(beginToken), expression, toAnalyzerToken(endToken)));
   }
 
   void endIfStatement(Token ifToken, Token elseToken) {
@@ -276,9 +277,13 @@
     Expression condition = pop();
     BeginGroupToken leftParenthesis = ifToken.next;
     push(ast.ifStatement(
-            toAnalyzerToken(ifToken), toAnalyzerToken(ifToken.next), condition,
-            toAnalyzerToken(leftParenthesis.endGroup), thenPart,
-            toAnalyzerToken(elseToken), elsePart));
+        toAnalyzerToken(ifToken),
+        toAnalyzerToken(ifToken.next),
+        condition,
+        toAnalyzerToken(leftParenthesis.endGroup),
+        thenPart,
+        toAnalyzerToken(elseToken),
+        elsePart));
   }
 
   void prepareInitializers() {
@@ -301,7 +306,7 @@
     Identifier identifier = pop();
     // TODO(ahe): Don't push initializers, instead install them.
     push(ast.variableDeclaration(
-            identifier, toAnalyzerToken(assignmentOperator), initializer));
+        identifier, toAnalyzerToken(assignmentOperator), initializer));
   }
 
   void endInitializedIdentifier() {
@@ -326,8 +331,8 @@
     TypeName type = pop();
     pop(); // Modifiers.
     push(ast.variableDeclarationStatement(
-            ast.variableDeclarationList(null, null, null, type, variables),
-            toAnalyzerToken(endToken)));
+        ast.variableDeclarationList(null, null, null, type, variables),
+        toAnalyzerToken(endToken)));
   }
 
   void handleAssignmentExpression(Token token) {
@@ -341,8 +346,8 @@
     debugEvent("Block");
     List<Statement> statements = popList(count) ?? <Statement>[];
     exitLocalScope();
-    push(ast.block(toAnalyzerToken(beginToken), statements,
-            toAnalyzerToken(endToken)));
+    push(ast.block(
+        toAnalyzerToken(beginToken), statements, toAnalyzerToken(endToken)));
   }
 
   void endForStatement(
@@ -357,16 +362,16 @@
     exitLocalScope();
     BeginGroupToken leftParenthesis = beginToken.next;
     push(ast.forStatement(
-            toAnalyzerToken(beginToken),
-            toAnalyzerToken(leftParenthesis),
-            variables?.variables,
-            null, // initialization.
-            variables?.semicolon,
-            condition.expression,
-            condition.semicolon,
-            updates,
-            toAnalyzerToken(leftParenthesis.endGroup),
-            body));
+        toAnalyzerToken(beginToken),
+        toAnalyzerToken(leftParenthesis),
+        variables?.variables,
+        null, // initialization.
+        variables?.semicolon,
+        condition.expression,
+        condition.semicolon,
+        updates,
+        toAnalyzerToken(leftParenthesis.endGroup),
+        body));
   }
 
   void handleLiteralList(
@@ -374,12 +379,8 @@
     debugEvent("LiteralList");
     List<Expression> expressions = popList(count);
     TypeArgumentList typeArguments = pop();
-    push(ast.listLiteral(
-            toAnalyzerToken(constKeyword),
-            typeArguments,
-            toAnalyzerToken(beginToken),
-            expressions,
-            toAnalyzerToken(endToken)));
+    push(ast.listLiteral(toAnalyzerToken(constKeyword), typeArguments,
+        toAnalyzerToken(beginToken), expressions, toAnalyzerToken(endToken)));
   }
 
   void handleAsyncModifier(Token asyncToken, Token starToken) {
@@ -419,7 +420,7 @@
     List<MapLiteralEntry> entries = popList(count) ?? <MapLiteralEntry>[];
     TypeArgumentList typeArguments = pop();
     push(ast.mapLiteral(toAnalyzerToken(constKeyword), typeArguments,
-            toAnalyzerToken(beginToken), entries, toAnalyzerToken(endToken)));
+        toAnalyzerToken(beginToken), entries, toAnalyzerToken(endToken)));
   }
 
   void endLiteralMapEntry(Token colon, Token endToken) {
@@ -469,8 +470,8 @@
     debugEvent("IsOperator");
     TypeName type = pop();
     Expression expression = pop();
-    push(ast.isExpression(expression, toAnalyzerToken(operator),
-            toAnalyzerToken(not), type));
+    push(ast.isExpression(
+        expression, toAnalyzerToken(operator), toAnalyzerToken(not), type));
   }
 
   void handleConditionalExpression(Token question, Token colon) {
@@ -479,7 +480,7 @@
     Expression thenExpression = pop();
     Expression condition = pop();
     push(ast.conditionalExpression(condition, toAnalyzerToken(question),
-            thenExpression, toAnalyzerToken(colon), elseExpression));
+        thenExpression, toAnalyzerToken(colon), elseExpression));
   }
 
   void endThrowExpression(Token throwToken, Token endToken) {
@@ -496,8 +497,8 @@
     TypeName type = pop();
     pop(); // Modifiers.
     pop(); // Metadata.
-    SimpleFormalParameter node = ast.simpleFormalParameter(null, null,
-        toAnalyzerToken(thisKeyword), type, name);
+    SimpleFormalParameter node = ast.simpleFormalParameter(
+        null, null, toAnalyzerToken(thisKeyword), type, name);
     scope[name.name] = name.staticElement = new AnalyzerParameterElement(node);
     push(node);
   }
@@ -505,8 +506,8 @@
   void endFormalParameters(int count, Token beginToken, Token endToken) {
     debugEvent("FormalParameters");
     List<FormalParameter> parameters = popList(count) ?? <FormalParameter>[];
-    push(ast.formalParameterList(toAnalyzerToken(beginToken), parameters,
-            null, null, toAnalyzerToken(endToken)));
+    push(ast.formalParameterList(toAnalyzerToken(beginToken), parameters, null,
+        null, toAnalyzerToken(endToken)));
   }
 
   void handleCatchBlock(Token onKeyword, Token catchKeyword) {
@@ -528,19 +529,24 @@
       }
     }
     BeginGroupToken leftParenthesis = catchKeyword.next;
-    push(ast.catchClause(toAnalyzerToken(onKeyword), type,
-            toAnalyzerToken(catchKeyword), toAnalyzerToken(leftParenthesis),
-            exception, null, stackTrace,
-            toAnalyzerToken(leftParenthesis.endGroup), body));
+    push(ast.catchClause(
+        toAnalyzerToken(onKeyword),
+        type,
+        toAnalyzerToken(catchKeyword),
+        toAnalyzerToken(leftParenthesis),
+        exception,
+        null,
+        stackTrace,
+        toAnalyzerToken(leftParenthesis.endGroup),
+        body));
   }
 
-  void endTryStatement(
-      int catchCount, Token tryKeyword, Token finallyKeyword) {
+  void endTryStatement(int catchCount, Token tryKeyword, Token finallyKeyword) {
     Block finallyBlock = popIfNotNull(finallyKeyword);
     List<CatchClause> catchClauses = popList(catchCount);
     Block body = pop();
     push(ast.tryStatement(toAnalyzerToken(tryKeyword), body, catchClauses,
-            toAnalyzerToken(finallyKeyword), finallyBlock));
+        toAnalyzerToken(finallyKeyword), finallyBlock));
   }
 
   void handleNoExpression(Token token) {
@@ -558,14 +564,18 @@
       Token token = peek();
       push(receiver);
       IndexExpression expression = ast.indexExpressionForCascade(
-          toAnalyzerToken(token), toAnalyzerToken(openCurlyBracket), index,
+          toAnalyzerToken(token),
+          toAnalyzerToken(openCurlyBracket),
+          index,
           toAnalyzerToken(closeCurlyBracket));
       assert(expression.isCascaded);
       push(expression);
     } else {
-      push(ast.indexExpressionForTarget(target,
-              toAnalyzerToken(openCurlyBracket), index,
-              toAnalyzerToken(closeCurlyBracket)));
+      push(ast.indexExpressionForTarget(
+          target,
+          toAnalyzerToken(openCurlyBracket),
+          index,
+          toAnalyzerToken(closeCurlyBracket)));
     }
   }
 
@@ -594,4 +604,363 @@
     // TODO(ahe): Don't ignore modifiers.
     push(NullValue.Modifiers);
   }
+
+  FunctionBody _endFunctionBody() {
+    AstNode body = pop();
+    // TODO(paulberry): asyncMarker should have a type that allows constructing
+    // the necessary analyzer AST data structures.
+    AsyncMarker asyncMarker = pop();
+    assert(asyncMarker == AsyncMarker.Sync);
+    analyzer.Token asyncKeyword = null;
+    analyzer.Token star = null;
+    if (body is Block) {
+      return ast.blockFunctionBody(asyncKeyword, star, body);
+    } else if (body is ReturnStatement) {
+      assert(star == null);
+      return ast.expressionFunctionBody(
+          asyncKeyword, body.returnKeyword, body.expression, body.semicolon);
+    } else {
+      return internalError(
+          'Unexpected function body type: ${body.runtimeType}');
+    }
+  }
+
+  void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
+    debugEvent("TopLevelMethod");
+    FunctionBody body = _endFunctionBody();
+    FormalParameterList parameters = pop();
+    TypeParameterList typeParameters = pop();
+    SimpleIdentifier name = pop();
+    analyzer.Token propertyKeyword = toAnalyzerToken(getOrSet);
+    TypeAnnotation returnType = pop();
+    // TODO(paulberry): handle modifiers.
+    var modifiers = pop();
+    assert(modifiers == null);
+    analyzer.Token externalKeyword = null;
+    List<Annotation> metadata = pop();
+    // TODO(paulberry): capture doc comments.
+    Comment comment = null;
+    push(ast.functionDeclaration(
+        comment,
+        metadata,
+        externalKeyword,
+        returnType,
+        propertyKeyword,
+        name,
+        ast.functionExpression(typeParameters, parameters, body)));
+  }
+
+  @override
+  void endTopLevelDeclaration(Token token) {
+    debugEvent("TopLevelDeclaration");
+  }
+
+  @override
+  void endCompilationUnit(int count, Token token) {
+    debugEvent("CompilationUnit");
+    analyzer.Token beginToken = null; // TODO(paulberry)
+    ScriptTag scriptTag = null; // TODO(paulberry)
+    var directives = <Directive>[];
+    var declarations = <CompilationUnitMember>[];
+    analyzer.Token endToken = null; // TODO(paulberry)
+    for (AstNode node in popList(count)) {
+      if (node is Directive) {
+        directives.add(node);
+      } else if (node is CompilationUnitMember) {
+        declarations.add(node);
+      } else {
+        internalError(
+            'Unrecognized compilation unit member: ${node.runtimeType}');
+      }
+    }
+    push(ast.compilationUnit(
+        beginToken, scriptTag, directives, declarations, endToken));
+  }
+
+  void endImport(Token importKeyword, Token deferredKeyword, Token asKeyword,
+      Token semicolon) {
+    debugEvent("Import");
+    List<Combinator> combinators = pop();
+    SimpleIdentifier prefix;
+    if (asKeyword != null) prefix = pop();
+    List<Configuration> configurations = pop();
+    assert(configurations == null); // TODO(paulberry)
+    StringLiteral uri = pop();
+    List<Annotation> metadata = pop();
+    assert(metadata == null);
+    // TODO(paulberry): capture doc comments.
+    Comment comment = null;
+    push(ast.importDirective(
+        comment,
+        metadata,
+        toAnalyzerToken(importKeyword),
+        uri,
+        configurations,
+        toAnalyzerToken(deferredKeyword),
+        toAnalyzerToken(asKeyword),
+        prefix,
+        combinators,
+        toAnalyzerToken(semicolon)));
+  }
+
+  void endExport(Token exportKeyword, Token semicolon) {
+    debugEvent("Export");
+    List<Combinator> combinators = pop();
+    List<Configuration> configurations = pop();
+    assert(configurations == null); // TODO(paulberry)
+    StringLiteral uri = pop();
+    List<Annotation> metadata = pop();
+    assert(metadata == null);
+    // TODO(paulberry): capture doc comments.
+    Comment comment = null;
+    push(ast.exportDirective(comment, metadata, toAnalyzerToken(exportKeyword),
+        uri, configurations, combinators, toAnalyzerToken(semicolon)));
+  }
+
+  @override
+  void endConditionalUris(int count) {
+    debugEvent("ConditionalUris");
+    push(popList(count) ?? NullValue.ConditionalUris);
+  }
+
+  @override
+  void endIdentifierList(int count) {
+    debugEvent("IdentifierList");
+    push(popList(count) ?? NullValue.IdentifierList);
+  }
+
+  @override
+  void endShow(Token showKeyword) {
+    debugEvent("Show");
+    List<SimpleIdentifier> shownNames = pop();
+    push(ast.showCombinator(toAnalyzerToken(showKeyword), shownNames));
+  }
+
+  @override
+  void endHide(Token hideKeyword) {
+    debugEvent("Hide");
+    List<SimpleIdentifier> hiddenNames = pop();
+    push(ast.hideCombinator(toAnalyzerToken(hideKeyword), hiddenNames));
+  }
+
+  @override
+  void endTypeList(int count) {
+    debugEvent("TypeList");
+    push(popList(count) ?? NullValue.TypeList);
+  }
+
+  @override
+  void endClassBody(int memberCount, Token beginToken, Token endToken) {
+    debugEvent("ClassBody");
+    push(new _ClassBody(
+        beginToken, popList(memberCount) ?? <ClassMember>[], endToken));
+  }
+
+  @override
+  void endClassDeclaration(int interfacesCount, Token beginToken,
+      Token extendsKeyword, Token implementsKeyword, Token endToken) {
+    debugEvent("ClassDeclaration");
+    _ClassBody body = pop();
+    ImplementsClause implementsClause;
+    if (implementsKeyword != null) {
+      List<TypeName> interfaces = popList(interfacesCount);
+      implementsClause =
+          ast.implementsClause(toAnalyzerToken(implementsKeyword), interfaces);
+    }
+    ExtendsClause extendsClause;
+    WithClause withClause;
+    var supertype = pop();
+    if (supertype == null) {
+      // No extends clause
+    } else if (supertype is TypeName) {
+      extendsClause =
+          ast.extendsClause(toAnalyzerToken(extendsKeyword), supertype);
+    } else if (supertype is _MixinApplication) {
+      extendsClause = ast.extendsClause(
+          toAnalyzerToken(extendsKeyword), supertype.supertype);
+      withClause = ast.withClause(
+          toAnalyzerToken(supertype.withKeyword), supertype.mixinTypes);
+    } else {
+      internalError('Unexpected kind of supertype ${supertype.runtimeType}');
+    }
+    TypeParameterList typeParameters = pop();
+    SimpleIdentifier name = pop();
+    Token classKeyword;
+    // TODO(paulberry,ahe): This is a hack.  The parser should give us the class
+    // keyword.
+    if (identical(beginToken.value, 'abstract')) {
+      classKeyword = beginToken.next;
+    } else {
+      classKeyword = beginToken;
+    }
+    var modifiers = pop();
+    assert(modifiers == null); // TODO(paulberry)
+    analyzer.Token abstractKeyword;
+    List<Annotation> metadata = pop();
+    Comment comment = null; // TODO(paulberry)
+    push(ast.classDeclaration(
+        comment,
+        metadata,
+        abstractKeyword,
+        toAnalyzerToken(classKeyword),
+        name,
+        typeParameters,
+        extendsClause,
+        withClause,
+        implementsClause,
+        toAnalyzerToken(body.beginToken),
+        body.members,
+        toAnalyzerToken(body.endToken)));
+  }
+
+  @override
+  void endMixinApplication() {
+    debugEvent("MixinApplication");
+    List<TypeName> mixinTypes = pop();
+    // TODO(paulberry,ahe): the parser doesn't give us enough information to
+    // locate the "with" keyword.
+    Token withKeyword;
+    TypeName supertype = pop();
+    push(new _MixinApplication(supertype, withKeyword, mixinTypes));
+  }
+
+  @override
+  void endNamedMixinApplication(
+      Token beginToken, Token implementsKeyword, Token endToken) {
+    debugEvent("NamedMixinApplication");
+    ImplementsClause implementsClause;
+    if (implementsKeyword != null) {
+      List<TypeName> interfaces = pop();
+      implementsClause =
+          ast.implementsClause(toAnalyzerToken(implementsKeyword), interfaces);
+    }
+    _MixinApplication mixinApplication = pop();
+    var superclass = mixinApplication.supertype;
+    var withClause = ast.withClause(
+        toAnalyzerToken(mixinApplication.withKeyword),
+        mixinApplication.mixinTypes);
+    // TODO(paulberry,ahe): the parser should give us the "=" token.
+    analyzer.Token equals;
+    TypeParameterList typeParameters = pop();
+    SimpleIdentifier name = pop();
+    Token classKeyword;
+    // TODO(paulberry,ahe): This is a hack.  The parser should give us the class
+    // keyword.
+    if (identical(beginToken.value, 'abstract')) {
+      classKeyword = beginToken.next;
+    } else {
+      classKeyword = beginToken;
+    }
+    var modifiers = pop();
+    assert(modifiers == null); // TODO(paulberry)
+    analyzer.Token abstractKeyword;
+    List<Annotation> metadata = pop();
+    Comment comment = null; // TODO(paulberry)
+    push(ast.classTypeAlias(
+        comment,
+        metadata,
+        toAnalyzerToken(classKeyword),
+        name,
+        typeParameters,
+        equals,
+        abstractKeyword,
+        superclass,
+        withClause,
+        implementsClause,
+        toAnalyzerToken(endToken)));
+  }
+
+  @override
+  void beginLibraryName(Token token) {
+    accumulateIdentifierComponents = true;
+    isFirstIdentifier = true;
+  }
+
+  @override
+  void endLibraryName(Token libraryKeyword, Token semicolon) {
+    debugEvent("LibraryName");
+    List<SimpleIdentifier> libraryName = pop();
+    var name = ast.libraryIdentifier(libraryName);
+    List<Annotation> metadata = pop();
+    Comment comment = null; // TODO(paulberry)
+    push(ast.libraryDirective(comment, metadata,
+        toAnalyzerToken(libraryKeyword), name, toAnalyzerToken(semicolon)));
+    accumulateIdentifierComponents = false;
+  }
+
+  @override
+  void handleQualified(Token period) {
+    if (accumulateIdentifierComponents) {
+      SimpleIdentifier identifier = pop();
+      List<SimpleIdentifier> list = pop();
+      list.add(identifier);
+      push(list);
+    } else {
+      // TODO(paulberry): implement.
+      logEvent('Qualified');
+    }
+  }
+
+  @override
+  void endPart(Token partKeyword, Token semicolon) {
+    debugEvent("Part");
+    StringLiteral uri = pop();
+    List<Annotation> metadata = pop();
+    Comment comment = null; // TODO(paulberry)
+    push(ast.partDirective(comment, metadata, toAnalyzerToken(partKeyword), uri,
+        toAnalyzerToken(semicolon)));
+  }
+
+  @override
+  void beginPartOf(Token token) {
+    accumulateIdentifierComponents = true;
+    isFirstIdentifier = true;
+  }
+
+  @override
+  void endPartOf(Token partKeyword, Token semicolon) {
+    debugEvent("PartOf");
+    List<SimpleIdentifier> libraryName = pop();
+    var name = ast.libraryIdentifier(libraryName);
+    StringLiteral uri = null; // TODO(paulberry)
+    // TODO(paulberry,ahe): seems hacky.  It would be nice if the parser passed
+    // in a reference to the "of" keyword.
+    var ofKeyword = partKeyword.next;
+    List<Annotation> metadata = pop();
+    Comment comment = null; // TODO(paulberry)
+    push(ast.partOfDirective(comment, metadata, toAnalyzerToken(partKeyword),
+        toAnalyzerToken(ofKeyword), uri, name, toAnalyzerToken(semicolon)));
+    accumulateIdentifierComponents = false;
+  }
+}
+
+/// Data structure placed on the stack to represent a class body.
+///
+/// This is needed because analyzer has no separate AST representation of a
+/// class body; it simply stores all of the relevant data in the
+/// [ClassDeclaration] object.
+class _ClassBody {
+  final Token beginToken;
+
+  final List<ClassMember> members;
+
+  final Token endToken;
+
+  _ClassBody(this.beginToken, this.members, this.endToken);
+}
+
+/// Data structure placed on the stack to represent a mixin application (a
+/// structure of the form "A with B, C").
+///
+/// This is needed because analyzer has no separate AST representation of a
+/// mixin application; it simply stores all of the relevant data in the
+/// [ClassDeclaration] or [ClassTypeAlias] object.
+class _MixinApplication {
+  final TypeName supertype;
+
+  final Token withKeyword;
+
+  final List<TypeName> mixinTypes;
+
+  _MixinApplication(this.supertype, this.withKeyword, this.mixinTypes);
 }
diff --git a/pkg/front_end/lib/src/fasta/analyzer/mock_element.dart b/pkg/front_end/lib/src/fasta/analyzer/mock_element.dart
index e9ed649..b56deac 100644
--- a/pkg/front_end/lib/src/fasta/analyzer/mock_element.dart
+++ b/pkg/front_end/lib/src/fasta/analyzer/mock_element.dart
@@ -13,6 +13,7 @@
 
 import '../errors.dart' show
     internalError;
+import 'package:analyzer/src/generated/source.dart';
 
 abstract class MockElement extends Builder
     implements Element, LocalElement {
@@ -211,6 +212,9 @@
 
   bool get hasLoadLibraryFunction => internalError("not supported.");
 
+  @override
+  LineInfo get lineInfo => internalError("not supported.");
+
   List<TopLevelVariableElement> get topLevelVariables {
     return internalError("not supported.");
   }
diff --git a/pkg/front_end/lib/src/fasta/analyzer/token_utils.dart b/pkg/front_end/lib/src/fasta/analyzer/token_utils.dart
index ed5a9ea..08a6ce7 100644
--- a/pkg/front_end/lib/src/fasta/analyzer/token_utils.dart
+++ b/pkg/front_end/lib/src/fasta/analyzer/token_utils.dart
@@ -45,79 +45,192 @@
 import '../errors.dart' show
     internalError;
 
-/// Converts a stream of Fasta tokens (starting with [token] and continuing to
-/// EOF) to a stream of analyzer tokens.
+/// Class capable of converting a stream of Fasta tokens to a stream of analyzer
+/// tokens.
 ///
-/// If any error tokens are found in the stream, they are reported using the
-/// [reportError] callback.
-analyzer.Token toAnalyzerTokenStream(
-    Token token,
-    void reportError(analyzer.ScannerErrorCode errorCode, int offset,
-        List<Object> arguments)) {
-  var analyzerTokenHead = new analyzer.Token(null, 0);
-  analyzerTokenHead.previous = analyzerTokenHead;
-  var analyzerTokenTail = analyzerTokenHead;
-  // TODO(paulberry,ahe): Fasta includes comments directly in the token
-  // stream, rather than pointing to them via a "precedingComment" pointer, as
-  // analyzer does.  This seems like it will complicate parsing and other
-  // operations.
-  analyzer.CommentToken currentCommentHead;
-  analyzer.CommentToken currentCommentTail;
-  // Note: beginTokenStack and endTokenStack are seeded with a sentinel value
-  // so that we don't have to check if they're empty.
-  var beginTokenStack = <analyzer.BeginToken>[null];
-  var endTokenStack = <Token>[null];
-  void matchGroups(Token token, analyzer.Token translatedToken) {
-    // If this token closes a group, set the corresponding opener token
-    // to point to it.
-    if (identical(endTokenStack.last, token)) {
-      beginTokenStack.last.endToken = translatedToken;
-      beginTokenStack.removeLast();
-      endTokenStack.removeLast();
+/// This is a class rather than an ordinary method so that it can be subclassed
+/// in tests.
+///
+/// TODO(paulberry,ahe): Fasta includes comments directly in the token
+/// stream, rather than pointing to them via a "precedingComment" pointer, as
+/// analyzer does.  This seems like it will complicate parsing and other
+/// operations.
+class ToAnalyzerTokenStreamConverter {
+  /// Synthetic token pointing to the first token in the analyzer token stream.
+  analyzer.Token _analyzerTokenHead;
+
+  /// The most recently generated analyzer token, or [_analyzerTokenHead] if no
+  /// tokens have been generated yet.
+  analyzer.Token _analyzerTokenTail;
+
+  /// If a sequence of consecutive comment tokens is being processed, the first
+  /// translated analyzer comment token.  Otherwise `null`.
+  analyzer.CommentToken _currentCommentHead;
+
+  /// If a sequence of consecutive comment tokens is being processed, the last
+  /// translated analyzer comment token.  Otherwise `null`.
+  analyzer.CommentToken _currentCommentTail;
+
+  /// Stack of analyzer "begin" tokens which need to be linked up to
+  /// corresponding "end" tokens once those tokens are translated.
+  ///
+  /// The first element of this list is always a sentinel `null` value so that
+  /// we don't have to check if it is empty.
+  ///
+  /// See additional documentation in [_matchGroups].
+  List<analyzer.BeginToken> _beginTokenStack;
+
+  /// Stack of fasta "end" tokens corresponding to the tokens in
+  /// [_endTokenStack].
+  ///
+  /// The first element of this list is always a sentinel `null` value so that
+  /// we don't have to check if it is empty.
+  ///
+  /// See additional documentation in [_matchGroups].
+  List<Token> _endTokenStack;
+
+  /// Converts a stream of Fasta tokens (starting with [token] and continuing to
+  /// EOF) to a stream of analyzer tokens.
+  analyzer.Token convertTokens(Token token) {
+    _analyzerTokenHead = new analyzer.Token(null, 0);
+    _analyzerTokenHead.previous = _analyzerTokenHead;
+    _analyzerTokenTail = _analyzerTokenHead;
+    _currentCommentHead = null;
+    _currentCommentTail = null;
+    _beginTokenStack = [null];
+    _endTokenStack = <Token>[null];
+
+    while (true) {
+      if (token.info.kind == BAD_INPUT_TOKEN) {
+        ErrorToken errorToken = token;
+        _translateErrorToken(errorToken);
+      } else if (token.info.kind == COMMENT_TOKEN) {
+        var translatedToken = translateCommentToken(token);
+        if (_currentCommentHead == null) {
+          _currentCommentHead = _currentCommentTail = translatedToken;
+        } else {
+          _currentCommentTail.setNext(translatedToken);
+          _currentCommentTail = translatedToken;
+        }
+      } else {
+        var translatedToken = translateToken(token, _currentCommentHead);
+        _matchGroups(token, translatedToken);
+        translatedToken.setNext(translatedToken);
+        _currentCommentHead = _currentCommentTail = null;
+        _analyzerTokenTail.setNext(translatedToken);
+        translatedToken.previous = _analyzerTokenTail;
+        _analyzerTokenTail = translatedToken;
+      }
+      if (token.isEof) {
+        return _analyzerTokenHead.next;
+      }
+      token = token.next;
     }
-    // If this token opens a group, and there is a matching closer that's not
-    // synthetic, put it on the stack.  The easiest way to tell whether the
-    // closer is synthetic is to see if it has the same offset as the opener.
+  }
+
+  /// Handles an error found during [convertTokens].
+  ///
+  /// Intended to be overridden by derived classes; by default, does nothing.
+  void reportError(analyzer.ScannerErrorCode errorCode, int offset,
+      List<Object> arguments) {}
+
+  /// Translates a single fasta comment token to the corresponding analyzer
+  /// token.
+  analyzer.CommentToken translateCommentToken(Token token) {
+    // TODO(paulberry,ahe): It would be nice if the scanner gave us an
+    // easier way to distinguish between the two types of comment.
+    var type = token.value.startsWith('/*')
+        ? TokenType.MULTI_LINE_COMMENT
+        : TokenType.SINGLE_LINE_COMMENT;
+    return new analyzer.CommentToken(type, token.value, token.charOffset);
+  }
+
+  /// Translates a single fasta non-comment token to the corresponding analyzer
+  /// token.
+  ///
+  /// [precedingComments] is not `null`, the translated token is pointed to it.
+  analyzer.Token translateToken(
+          Token token, analyzer.CommentToken precedingComments) =>
+      toAnalyzerToken(token, precedingComments);
+
+  /// Creates appropriate begin/end token links based on the fact that [token]
+  /// was translated to [translatedToken].
+  ///
+  /// Background: both fasta and analyzer have links from a "BeginToken" to its
+  /// matching "EndToken" in a group (like parentheses and braces).  However,
+  /// fasta may contain synthetic tokens from error recovery that are not mapped
+  /// to the analyzer token stream.  We use [_beginTokenStack] and
+  /// [_endTokenStack] to create the appropriate links for non-synthetic tokens
+  /// in the way analyzer expects.
+  void _matchGroups(Token token, analyzer.Token translatedToken) {
+    if (identical(_endTokenStack.last, token)) {
+      _beginTokenStack.last.endToken = translatedToken;
+      _beginTokenStack.removeLast();
+      _endTokenStack.removeLast();
+    }
+    // Synthetic end tokens use the same offset as the begin token.
     if (translatedToken is analyzer.BeginToken &&
         token is BeginGroupToken &&
         token.endGroup != null &&
         token.endGroup.charOffset != token.charOffset) {
-      beginTokenStack.add(translatedToken);
-      endTokenStack.add(token.endGroup);
+      _beginTokenStack.add(translatedToken);
+      _endTokenStack.add(token.endGroup);
     }
   }
 
-  while (true) {
-    if (token.info.kind == BAD_INPUT_TOKEN) {
-      ErrorToken errorToken = token;
-      _translateErrorToken(errorToken, reportError);
-    } else if (token.info.kind == COMMENT_TOKEN) {
-      // TODO(paulberry,ahe): It would be nice if the scanner gave us an
-      // easier way to distinguish between the two types of comment.
-      var type = token.value.startsWith('/*')
-          ? TokenType.MULTI_LINE_COMMENT
-          : TokenType.SINGLE_LINE_COMMENT;
-      var translatedToken =
-          new analyzer.CommentToken(type, token.value, token.charOffset);
-      if (currentCommentHead == null) {
-        currentCommentHead = currentCommentTail = translatedToken;
-      } else {
-        currentCommentTail.setNext(translatedToken);
-        currentCommentTail = translatedToken;
+  /// Translates the given error [token] into an analyzer error and reports it
+  /// using [reportError].
+  void _translateErrorToken(ErrorToken token) {
+    int charOffset = token.charOffset;
+    // TODO(paulberry,ahe): why is endOffset sometimes null?
+    int endOffset = token.endOffset ?? charOffset;
+    void _makeError(
+        analyzer.ScannerErrorCode errorCode, List<Object> arguments) {
+      if (_isAtEnd(token, charOffset)) {
+        // Analyzer never generates an error message past the end of the input,
+        // since such an error would not be visible in an editor.
+        // TODO(paulberry,ahe): would it make sense to replicate this behavior
+        // in fasta, or move it elsewhere in analyzer?
+        charOffset--;
       }
-    } else {
-      var translatedToken = toAnalyzerToken(token, currentCommentHead);
-      matchGroups(token, translatedToken);
-      translatedToken.setNext(translatedToken);
-      currentCommentHead = currentCommentTail = null;
-      analyzerTokenTail.setNext(translatedToken);
-      translatedToken.previous = analyzerTokenTail;
-      analyzerTokenTail = translatedToken;
+      reportError(errorCode, charOffset, arguments);
     }
-    if (token.isEof) {
-      return analyzerTokenHead.next;
+
+    var errorCode = token.errorCode;
+    switch (errorCode) {
+      case ErrorKind.UnterminatedString:
+        // TODO(paulberry,ahe): Fasta reports the error location as the entire
+        // string; analyzer expects the end of the string.
+        charOffset = endOffset;
+        return _makeError(
+            analyzer.ScannerErrorCode.UNTERMINATED_STRING_LITERAL, null);
+      case ErrorKind.UnmatchedToken:
+        return null;
+      case ErrorKind.UnterminatedComment:
+        // TODO(paulberry,ahe): Fasta reports the error location as the entire
+        // comment; analyzer expects the end of the comment.
+        charOffset = endOffset;
+        return _makeError(
+            analyzer.ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT, null);
+      case ErrorKind.MissingExponent:
+        // TODO(paulberry,ahe): Fasta reports the error location as the entire
+        // number; analyzer expects the end of the number.
+        charOffset = endOffset;
+        return _makeError(analyzer.ScannerErrorCode.MISSING_DIGIT, null);
+      case ErrorKind.ExpectedHexDigit:
+        // TODO(paulberry,ahe): Fasta reports the error location as the entire
+        // number; analyzer expects the end of the number.
+        charOffset = endOffset;
+        return _makeError(analyzer.ScannerErrorCode.MISSING_HEX_DIGIT, null);
+      case ErrorKind.NonAsciiIdentifier:
+      case ErrorKind.NonAsciiWhitespace:
+        return _makeError(
+            analyzer.ScannerErrorCode.ILLEGAL_CHARACTER, [token.character]);
+      case ErrorKind.UnexpectedDollarInString:
+        return null;
+      default:
+        throw new UnimplementedError('$errorCode');
     }
-    token = token.next;
   }
 }
 
@@ -130,14 +243,20 @@
 Token fromAnalyzerTokenStream(analyzer.Token analyzerToken) {
   Token tokenHead = new SymbolToken(EOF_INFO, -1);
   Token tokenTail = tokenHead;
+
+  // Both fasta and analyzer have links from a "BeginToken" to its matching
+  // "EndToken" in a group (like parentheses and braces).  However, only fasta
+  // makes these links for angle brackets.  We use these stacks to map the
+  // links from the analyzer token stream into equivalent links in the fasta
+  // token stream, and to create the links that fasta expects for angle
+  // brackets.
+
   // Note: beginTokenStack and endTokenStack are seeded with a sentinel value
   // so that we don't have to check if they're empty.
   var beginTokenStack = <BeginGroupToken>[null];
   var endTokenStack = <analyzer.Token>[null];
   var angleBracketStack = <BeginGroupToken>[];
   void matchGroups(analyzer.Token analyzerToken, Token translatedToken) {
-    // If this token closes a group, set the corresponding opener token to point
-    // to it.
     if (identical(endTokenStack.last, analyzerToken)) {
       angleBracketStack.clear();
       beginTokenStack.last.endGroup = translatedToken;
@@ -156,8 +275,6 @@
         angleBracketStack.removeLast().endGroup = translatedToken;
       }
     }
-    // If this token opens a group, and there is a matching closer, put it on
-    // the stack.
     // TODO(paulberry): generate synthetic closer tokens and "UnmatchedToken"
     // tokens as appropriate.
     if (translatedToken is BeginGroupToken &&
@@ -378,63 +495,6 @@
   }
 }
 
-/// Translates the given error [token] into an analyzer error and reports it
-/// using [reportError].
-void _translateErrorToken(
-    ErrorToken token,
-    void reportError(analyzer.ScannerErrorCode errorCode, int offset,
-        List<Object> arguments)) {
-  int charOffset = token.charOffset;
-  // TODO(paulberry,ahe): why is endOffset sometimes null?
-  int endOffset = token.endOffset ?? charOffset;
-  void _makeError(analyzer.ScannerErrorCode errorCode, List<Object> arguments) {
-    if (_isAtEnd(token, charOffset)) {
-      // Analyzer never generates an error message past the end of the input,
-      // since such an error would not be visible in an editor.
-      // TODO(paulberry,ahe): would it make sense to replicate this behavior
-      // in fasta, or move it elsewhere in analyzer?
-      charOffset--;
-    }
-    reportError(errorCode, charOffset, arguments);
-  }
-
-  var errorCode = token.errorCode;
-  switch (errorCode) {
-    case ErrorKind.UnterminatedString:
-      // TODO(paulberry,ahe): Fasta reports the error location as the entire
-      // string; analyzer expects the end of the string.
-      charOffset = endOffset;
-      return _makeError(
-          analyzer.ScannerErrorCode.UNTERMINATED_STRING_LITERAL, null);
-    case ErrorKind.UnmatchedToken:
-      return null;
-    case ErrorKind.UnterminatedComment:
-      // TODO(paulberry,ahe): Fasta reports the error location as the entire
-      // comment; analyzer expects the end of the comment.
-      charOffset = endOffset;
-      return _makeError(
-          analyzer.ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT, null);
-    case ErrorKind.MissingExponent:
-      // TODO(paulberry,ahe): Fasta reports the error location as the entire
-      // number; analyzer expects the end of the number.
-      charOffset = endOffset;
-      return _makeError(analyzer.ScannerErrorCode.MISSING_DIGIT, null);
-    case ErrorKind.ExpectedHexDigit:
-      // TODO(paulberry,ahe): Fasta reports the error location as the entire
-      // number; analyzer expects the end of the number.
-      charOffset = endOffset;
-      return _makeError(analyzer.ScannerErrorCode.MISSING_HEX_DIGIT, null);
-    case ErrorKind.NonAsciiIdentifier:
-    case ErrorKind.NonAsciiWhitespace:
-      return _makeError(
-          analyzer.ScannerErrorCode.ILLEGAL_CHARACTER, [token.character]);
-    case ErrorKind.UnexpectedDollarInString:
-      return null;
-    default:
-      throw new UnimplementedError('$errorCode');
-  }
-}
-
 analyzer.Token toAnalyzerToken(Token token,
     [analyzer.CommentToken commentToken]) {
   if (token == null) return null;
diff --git a/pkg/front_end/lib/src/fasta/builder/class_builder.dart b/pkg/front_end/lib/src/fasta/builder/class_builder.dart
index 926a708..4ced502 100644
--- a/pkg/front_end/lib/src/fasta/builder/class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/class_builder.dart
@@ -33,6 +33,12 @@
       this.members, LibraryBuilder parent, int charOffset)
       : super(metadata, modifiers, name, parent, charOffset);
 
+  /// Returns true if this class is the result of applying a mixin to its
+  /// superclass.
+  bool get isMixinApplication => mixedInType != null;
+
+  T get mixedInType;
+
   List<ConstructorReferenceBuilder> get constructorReferences => null;
 
   Map<String, Builder> get constructors;
diff --git a/pkg/front_end/lib/src/fasta/builder/mixin_application_builder.dart b/pkg/front_end/lib/src/fasta/builder/mixin_application_builder.dart
index e7b319693..5e0a052 100644
--- a/pkg/front_end/lib/src/fasta/builder/mixin_application_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/mixin_application_builder.dart
@@ -9,7 +9,8 @@
 
 import 'builder.dart' show
     TypeBuilder,
-    TypeDeclarationBuilder;
+    TypeDeclarationBuilder,
+    TypeVariableBuilder;
 
 import 'scope.dart' show
     Scope;
@@ -23,6 +24,16 @@
       Uri fileUri)
       : super(charOffset, fileUri);
 
+  void set typeVariables(List<TypeVariableBuilder> variables);
+
+  /// If this mixin application uses type variables, it needs a unique name
+  /// based on its subclass. If this name is provided, the name will be
+  /// `name^mixin`, otherwise it'll be `superclass&mixin`.
+  //
+  // TODO(ahe): This is to reduce diff against dartk. Consider if this is
+  // necessary.
+  void set subclassName(String value);
+
   String get name => null;
 
   void resolveIn(Scope scope) {
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_class_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_class_builder.dart
index 4c97dd2..2c4df33 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_class_builder.dart
@@ -11,9 +11,13 @@
     Procedure,
     ProcedureKind;
 
+import '../errors.dart' show
+    internalError;
+
 import '../kernel/kernel_builder.dart' show
     Builder,
-    KernelClassBuilder;
+    KernelClassBuilder,
+    KernelTypeBuilder;
 
 import '../modifier.dart' show
     abstractMask;
@@ -50,6 +54,12 @@
     }
   }
 
+  /// Returns true if this class is the result of applying a mixin to its
+  /// superclass.
+  bool get isMixinApplication => cls.isMixinApplication;
+
+  KernelTypeBuilder get mixedInType => internalError("Not implemented.");
+
   Builder findConstructorOrFactory(String name) => constructors[name];
 }
 
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
index af46a61..3263645 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_enum_builder.dart
@@ -140,6 +140,8 @@
     return enumBuilder;
   }
 
+  KernelTypeBuilder get mixedInType => null;
+
   InterfaceType buildType(List<KernelTypeBuilder> arguments) {
     return cls.rawType;
   }
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
index 2f810ea..82b942e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
@@ -92,7 +92,7 @@
   KernelTypeBuilder addMixinApplication(KernelTypeBuilder supertype,
       List<KernelTypeBuilder> mixins, int charOffset) {
     KernelTypeBuilder type = new KernelMixinApplicationBuilder(
-        supertype, mixins, charOffset, fileUri);
+        supertype, mixins, this, charOffset, fileUri);
     return addType(type);
   }
 
@@ -225,23 +225,6 @@
     if (builder is SourceClassBuilder) {
       Class cls = builder.build(this);
       library.addClass(cls);
-      Class superclass = cls.superclass;
-      if (superclass != null && superclass.isMixinApplication) {
-        List<Class> mixinApplications = <Class>[];
-        mixinApplicationClasses.add(cls);
-        while (superclass != null && superclass.isMixinApplication) {
-          if (superclass.parent == null) {
-            mixinApplications.add(superclass);
-          }
-          superclass = superclass.superclass;
-        }
-        for (Class cls in mixinApplications.reversed) {
-          // TODO(ahe): Should be able to move this into the above loop as long
-          // as we don't care about matching dartk perfectly.
-          library.addClass(cls);
-          mixinApplicationClasses.add(cls);
-        }
-      }
     } else if (builder is KernelFieldBuilder) {
       library.addMember(builder.build(library)..isStatic = true);
     } else if (builder is KernelProcedureBuilder) {
@@ -364,7 +347,7 @@
   }
 
   @override
-  void includePart(KernelLibraryBuilder part) {
+  void includePart(covariant KernelLibraryBuilder part) {
     super.includePart(part);
     nativeMethods.addAll(part.nativeMethods);
     boundlessTypeVariables.addAll(part.boundlessTypeVariables);
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
index 34a3f8d..840febc 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_mixin_application_builder.dart
@@ -5,17 +5,30 @@
 library fasta.kernel_mixin_application_builder;
 
 import 'package:kernel/ast.dart' show
-    Class,
     InterfaceType,
-    Supertype;
+    Supertype,
+    setParents;
+
+import '../modifier.dart' show
+    abstractMask;
 
 import 'kernel_builder.dart' show
+    Builder,
+    ConstructorReferenceBuilder,
+    KernelLibraryBuilder,
+    KernelNamedTypeBuilder,
     KernelTypeBuilder,
-    MixinApplicationBuilder;
+    KernelTypeVariableBuilder,
+    MixinApplicationBuilder,
+    TypeBuilder,
+    TypeVariableBuilder;
 
 import '../util/relativize.dart' show
     relativizeUri;
 
+import '../source/source_class_builder.dart' show
+    SourceClassBuilder;
+
 class KernelMixinApplicationBuilder
     extends MixinApplicationBuilder<KernelTypeBuilder>
     implements KernelTypeBuilder {
@@ -23,10 +36,16 @@
 
   final String relativeFileUri;
 
+  final KernelLibraryBuilder library;
+
   Supertype builtType;
 
+  List<TypeVariableBuilder> typeVariables;
+
+  String subclassName;
+
   KernelMixinApplicationBuilder(KernelTypeBuilder supertype,
-      List<KernelTypeBuilder> mixins, int charOffset, Uri fileUri)
+      List<KernelTypeBuilder> mixins, this.library, int charOffset, Uri fileUri)
       : charOffset = charOffset,
         relativeFileUri = relativizeUri(fileUri),
         super(supertype, mixins, charOffset, fileUri);
@@ -35,28 +54,48 @@
 
   Supertype buildSupertype() {
     if (builtType != null) return builtType;
-    Supertype supertype =
-        this.supertype.buildSupertype()?.classNode?.asRawSupertype;
-    if (supertype == null) {
-      return null;
-    }
+    KernelTypeBuilder s = this.supertype;
     for (KernelTypeBuilder builder in mixins) {
-      Supertype mixin = builder.buildSupertype()?.classNode?.asRawSupertype;
-      if (mixin == null) {
-        return null;
-      }
-      Class application = new Class(
-          name: "${supertype.classNode.name}&${mixin.classNode.name}",
-          isAbstract: true,
-          supertype: supertype,
-          mixedInType: mixin,
-          typeParameters: null, // TODO(ahe): Compute these.
-          fileUri: relativeFileUri);
-      application.fileOffset = charOffset;
-      // TODO(ahe): Use asThisSupertype instead and translate type variables.
-      supertype = application.asRawSupertype;
+      s = applyMixin(s, builder);
     }
-    builtType = supertype;
+    builtType = s.buildSupertype();
     return builtType;
   }
+
+  TypeBuilder applyMixin(TypeBuilder supertype, TypeBuilder mixin) {
+    KernelLibraryBuilder library = this.library.partOfLibrary ?? this.library;
+    List<TypeVariableBuilder> newTypeVariables;
+    List<KernelTypeBuilder> typeArguments;
+    if (typeVariables != null) {
+      newTypeVariables = library.copyTypeVariables(typeVariables);
+      Map<TypeVariableBuilder, TypeBuilder> substitution =
+          <TypeVariableBuilder, TypeBuilder>{};
+      typeArguments = <KernelTypeBuilder>[];
+      for (int i = 0; i < typeVariables.length; i++) {
+        substitution[typeVariables[i]] = newTypeVariables[i].asTypeBuilder();
+        typeArguments.add(typeVariables[i].asTypeBuilder());
+      }
+      supertype = supertype.subst(substitution);
+      mixin = mixin.subst(substitution);
+    }
+    // To reduce diff against dartk, we create a different name for mixin
+    // applications that have free type variables. We do this by setting
+    // [subclassName] when setting typeVariables.
+    String name = subclassName != null
+        ? "${subclassName}^${mixin.name}"
+        : "${supertype.name}&${mixin.name}";
+    SourceClassBuilder cls = new SourceClassBuilder(null, abstractMask, name,
+        newTypeVariables, supertype, null, <String, Builder>{}, library,
+        <ConstructorReferenceBuilder>[], charOffset, null, mixin);
+    library.addImplementationBuilder(name, cls, charOffset);
+    if (newTypeVariables != null) {
+      for (KernelTypeVariableBuilder t in newTypeVariables) {
+        cls.cls.typeParameters.add(t.parameter);
+      }
+      setParents(cls.cls.typeParameters, cls.cls);
+    }
+    return new KernelNamedTypeBuilder(name, typeArguments, charOffset,
+        library.fileUri)
+        ..builder = cls;
+  }
 }
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_named_mixin_application_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_named_mixin_application_builder.dart
index 1ad94b2..38766f1 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_named_mixin_application_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_named_mixin_application_builder.dart
@@ -29,4 +29,8 @@
           interfaces, <String, Builder>{}, parent, null, charOffset);
 
   KernelTypeBuilder get mixinApplication => supertype;
+
+  // TODO(ahe): This is a bit odd, as it means this answers false to
+  // [isMixinApplication], but its superclass is the mixin application.
+  KernelTypeBuilder get mixedInType => null;
 }
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 8704e05..3a43d7c 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -229,6 +229,8 @@
       finishAllConstructors();
       loader.finishNativeMethods();
       transformMixinApplications();
+      // TODO(ahe): Don't call this from two different places.
+      setup_builtin_library.transformProgram(program);
       errors.addAll(loader.collectCompileTimeErrors().map((e) => e.format()));
       if (errors.isNotEmpty) {
         return handleInputError(uri, null, isFullProgram: true);
@@ -344,6 +346,9 @@
       if (cls != objectClass) {
         cls.supertype ??= objectClass.asRawSupertype;
       }
+      if (builder.isMixinApplication) {
+        cls.mixedInType = builder.mixedInType.buildSupertype();
+      }
     }
     ticker.logMs("Installed Object as implicit superclass");
   }
@@ -366,7 +371,7 @@
 
   /// If [builder] doesn't have a constructors, install the defaults.
   void installDefaultConstructor(SourceClassBuilder builder) {
-    if (!builder.constructors.isEmpty) return;
+    if (builder.isMixinApplication || builder.constructors.isNotEmpty) return;
     /// Quotes below are from [Dart Programming Language Specification, 4th
     /// Edition](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-408.pdf):
     if (builder is NamedMixinApplicationBuilder) {
diff --git a/pkg/front_end/lib/src/fasta/operator.dart b/pkg/front_end/lib/src/fasta/operator.dart
index e6f4b23..d32e35d 100644
--- a/pkg/front_end/lib/src/fasta/operator.dart
+++ b/pkg/front_end/lib/src/fasta/operator.dart
@@ -77,4 +77,5 @@
     case Operator.truncatingDivide: return "~/";
     case Operator.unaryMinus: return "unary-";
   }
+  return null;
 }
diff --git a/pkg/front_end/lib/src/fasta/parser/listener.dart b/pkg/front_end/lib/src/fasta/parser/listener.dart
index 976f095..897a754 100644
--- a/pkg/front_end/lib/src/fasta/parser/listener.dart
+++ b/pkg/front_end/lib/src/fasta/parser/listener.dart
@@ -4,15 +4,11 @@
 
 library fasta.parser.listener;
 
-import '../scanner/token.dart' show
-    BeginGroupToken,
-    Token;
+import '../scanner/token.dart' show BeginGroupToken, Token;
 
-import '../util/link.dart' show
-    Link;
+import '../util/link.dart' show Link;
 
-import 'error_kind.dart' show
-    ErrorKind;
+import 'error_kind.dart' show ErrorKind;
 
 /// A parser event listener that does nothing except throw exceptions
 /// on parser errors.
@@ -63,12 +59,22 @@
 
   void beginClassBody(Token token) {}
 
+  /// Handle the end of the body of a class declaration.  The only substructures
+  /// are the class members.
   void endClassBody(int memberCount, Token beginToken, Token endToken) {
     logEvent("ClassBody");
   }
 
   void beginClassDeclaration(Token beginToken, Token name) {}
 
+  /// Handle the end of a class declaration.  Substructures:
+  /// - metadata
+  /// - modifiers
+  /// - class name
+  /// - type variables
+  /// - supertype (may be a mixin application)
+  /// - implemented types
+  /// - class body
   void endClassDeclaration(int interfacesCount, Token beginToken,
       Token extendsKeyword, Token implementsKeyword, Token endToken) {
     logEvent("ClassDeclaration");
@@ -100,15 +106,13 @@
     logEvent("DoWhileStatement");
   }
 
-  void beginDoWhileStatementBody(Token token) {
-  }
+  void beginDoWhileStatementBody(Token token) {}
 
   void endDoWhileStatementBody(Token token) {
     logEvent("DoWhileStatementBody");
   }
 
-  void beginWhileStatementBody(Token token) {
-  }
+  void beginWhileStatementBody(Token token) {}
 
   void endWhileStatementBody(Token token) {
     logEvent("WhileStatementBody");
@@ -122,6 +126,11 @@
 
   void beginExport(Token token) {}
 
+  /// Handle the end of an export directive.  Substructures:
+  /// - metadata
+  /// - uri
+  /// - conditional uris
+  /// - combinators
   void endExport(Token exportKeyword, Token semicolon) {
     logEvent("Export");
   }
@@ -168,8 +177,7 @@
     logEvent("ForStatement");
   }
 
-  void beginForStatementBody(Token token) {
-  }
+  void beginForStatementBody(Token token) {}
 
   void endForStatementBody(Token token) {
     logEvent("ForStatementBody");
@@ -180,15 +188,13 @@
     logEvent("ForIn");
   }
 
-  void beginForInExpression(Token token) {
-  }
+  void beginForInExpression(Token token) {}
 
   void endForInExpression(Token token) {
     logEvent("ForInExpression");
   }
 
-  void beginForInBody(Token token) {
-  }
+  void beginForInBody(Token token) {}
 
   void endForInBody(Token token) {
     logEvent("ForInBody");
@@ -232,12 +238,28 @@
 
   void beginMixinApplication(Token token) {}
 
+  /// Handle the end of a mixin application construct (e.g. "A with B, C").
+  /// Substructures:
+  /// - supertype
+  /// - mixin types (TypeList)
   void endMixinApplication() {
     logEvent("MixinApplication");
   }
 
   void beginNamedMixinApplication(Token beginToken, Token name) {}
 
+  /// Handle the end of a named mixin declaration.  Substructures:
+  /// - metadata
+  /// - modifiers
+  /// - class name
+  /// - type variables
+  /// - mixin application
+  /// - implemented types (TypeList)
+  ///
+  /// TODO(paulberry,ahe): it seems incosistent that for a named mixin
+  /// application, the implemented types are a TypeList, whereas for a class
+  /// declaration, each implemented type is listed separately on the stack, and
+  /// the number of implemented types is passed as a parameter.
   void endNamedMixinApplication(
       Token begin, Token implementsKeyword, Token endToken) {
     logEvent("NamedMixinApplication");
@@ -245,6 +267,8 @@
 
   void beginHide(Token hideKeyword) {}
 
+  /// Handle the end of a "hide" combinator.  Substructures:
+  /// - hidden names (IdentifierList)
   void endHide(Token hideKeyword) {
     logEvent("Hide");
   }
@@ -267,15 +291,13 @@
     logEvent("IfStatement");
   }
 
-  void beginThenStatement(Token token) {
-  }
+  void beginThenStatement(Token token) {}
 
   void endThenStatement(Token token) {
     logEvent("ThenStatement");
   }
 
-  void beginElseStatement(Token token) {
-  }
+  void beginElseStatement(Token token) {}
 
   void endElseStatement(Token token) {
     logEvent("ElseStatement");
@@ -283,6 +305,12 @@
 
   void beginImport(Token importKeyword) {}
 
+  /// Handle the end of an import directive.  Substructures:
+  /// - metadata
+  /// - uri
+  /// - conditional uris
+  /// - prefix identifier (only if asKeyword != null)
+  /// - combinators
   void endImport(Token importKeyword, Token DeferredKeyword, Token asKeyword,
       Token semicolon) {
     logEvent("Import");
@@ -312,8 +340,7 @@
     logEvent("InitializedIdentifier");
   }
 
-  void beginFieldInitializer(Token token) {
-  }
+  void beginFieldInitializer(Token token) {}
 
   void endFieldInitializer(Token assignment) {
     logEvent("FieldInitializer");
@@ -378,6 +405,8 @@
 
   void beginLibraryName(Token token) {}
 
+  /// Handle the end of a library directive.  Substructures:
+  /// - Library name (a qualified identifier)
   void endLibraryName(Token libraryKeyword, Token semicolon) {
     logEvent("LibraryName");
   }
@@ -438,12 +467,17 @@
 
   void beginPart(Token token) {}
 
+  /// Handle the end of a part directive.  Substructures:
+  /// - metadata
+  /// - uri
   void endPart(Token partKeyword, Token semicolon) {
     logEvent("Part");
   }
 
   void beginPartOf(Token token) {}
 
+  /// Handle the end of a "part of" directive.  Substructures:
+  /// - Library name (a qualified identifier)
   void endPartOf(Token partKeyword, Token semicolon) {
     logEvent("PartOf");
   }
@@ -469,6 +503,8 @@
 
   void beginShow(Token showKeyword) {}
 
+  /// Handle the end of a "show" combinator.  Substructures:
+  /// - shown names (IdentifierList)
   void endShow(Token showKeyword) {
     logEvent("Show");
   }
@@ -521,6 +557,15 @@
 
   void beginTopLevelMethod(Token token, Token name) {}
 
+  /// Handle the end of a top level method.  Substructures:
+  /// - metadata
+  /// - modifiers
+  /// - return type
+  /// - identifier
+  /// - type variables
+  /// - formal parameters
+  /// - async marker
+  /// - body
   void endTopLevelMethod(Token beginToken, Token getOrSet, Token endToken) {
     logEvent("TopLevelMethod");
   }
@@ -531,8 +576,7 @@
     logEvent("CaseMatch");
   }
 
-  void beginCatchClause(Token token) {
-  }
+  void beginCatchClause(Token token) {}
 
   void endCatchClause(Token token) {
     logEvent("CatchClause");
@@ -546,8 +590,7 @@
     logEvent("FinallyBlock");
   }
 
-  void endTryStatement(
-      int catchCount, Token tryKeyword, Token finallyKeyword) {
+  void endTryStatement(int catchCount, Token tryKeyword, Token finallyKeyword) {
     logEvent("TryStatement");
   }
 
@@ -615,8 +658,7 @@
     logEvent("ConstExpression");
   }
 
-  void beginFunctionTypedFormalParameter(Token token) {
-  }
+  void beginFunctionTypedFormalParameter(Token token) {}
 
   void endFunctionTypedFormalParameter(Token token) {
     logEvent("FunctionTypedFormalParameter");
@@ -730,6 +772,11 @@
     logEvent("ParenthesizedExpression");
   }
 
+  /// Handle a construct of the form "identifier.identifier" occurring in a part
+  /// of the grammar where expressions in general are not allowed.
+  /// Substructures:
+  /// - Qualified identifier (before the period)
+  /// - Identifier (after the period)
   void handleQualified(Token period) {
     logEvent("Qualified");
   }
@@ -742,8 +789,7 @@
     logEvent("SuperExpression");
   }
 
-  void beginSwitchCase(int labelCount, int expressionCount, Token firstToken) {
-  }
+  void beginSwitchCase(int labelCount, int expressionCount, Token firstToken) {}
 
   void handleSwitchCase(
       int labelCount,
@@ -802,8 +848,8 @@
 
   /// The parser noticed a syntax error, but was able to recover from it.
   void handleRecoverableError(Token token, ErrorKind kind, Map arguments) {
-    recoverableErrors.add(
-        new ParserError.fromTokens(token, token, kind, arguments));
+    recoverableErrors
+        .add(new ParserError.fromTokens(token, token, kind, arguments));
   }
 }
 
@@ -821,8 +867,7 @@
   ParserError(this.beginOffset, this.endOffset, this.kind, this.arguments);
 
   ParserError.fromTokens(Token begin, Token end, ErrorKind kind, Map arguments)
-      : this(begin.charOffset, end.charOffset + end.charCount, kind,
-          arguments);
+      : this(begin.charOffset, end.charOffset + end.charCount, kind, arguments);
 
   String toString() => "@${beginOffset}: $kind $arguments";
 }
diff --git a/pkg/front_end/lib/src/fasta/scanner/precedence.dart b/pkg/front_end/lib/src/fasta/scanner/precedence.dart
index d1a222b..bfc5c88 100644
--- a/pkg/front_end/lib/src/fasta/scanner/precedence.dart
+++ b/pkg/front_end/lib/src/fasta/scanner/precedence.dart
@@ -14,6 +14,82 @@
   const PrecedenceInfo(this.value, this.precedence, this.kind);
 
   toString() => 'PrecedenceInfo($value, $precedence, $kind)';
+
+  static const List<PrecedenceInfo> all = const <PrecedenceInfo>[
+      BACKPING_INFO,
+      BACKSLASH_INFO,
+      PERIOD_PERIOD_PERIOD_INFO,
+      PERIOD_PERIOD_INFO,
+      BANG_INFO,
+      COLON_INFO,
+      INDEX_INFO,
+      MINUS_MINUS_INFO,
+      PLUS_PLUS_INFO,
+      TILDE_INFO,
+      FUNCTION_INFO,
+      HASH_INFO,
+      INDEX_EQ_INFO,
+      SEMICOLON_INFO,
+      COMMA_INFO,
+      AT_INFO,
+      AMPERSAND_EQ_INFO,
+      BAR_EQ_INFO,
+      CARET_EQ_INFO,
+      EQ_INFO,
+      GT_GT_EQ_INFO,
+      LT_LT_EQ_INFO,
+      MINUS_EQ_INFO,
+      PERCENT_EQ_INFO,
+      PLUS_EQ_INFO,
+      SLASH_EQ_INFO,
+      STAR_EQ_INFO,
+      TILDE_SLASH_EQ_INFO,
+      QUESTION_QUESTION_EQ_INFO,
+      QUESTION_INFO,
+      QUESTION_QUESTION_INFO,
+      BAR_BAR_INFO,
+      AMPERSAND_AMPERSAND_INFO,
+      BAR_INFO,
+      CARET_INFO,
+      AMPERSAND_INFO,
+      BANG_EQ_EQ_INFO,
+      BANG_EQ_INFO,
+      EQ_EQ_EQ_INFO,
+      EQ_EQ_INFO,
+      GT_EQ_INFO,
+      GT_INFO,
+      IS_INFO,
+      AS_INFO,
+      LT_EQ_INFO,
+      LT_INFO,
+      GT_GT_INFO,
+      LT_LT_INFO,
+      MINUS_INFO,
+      PLUS_INFO,
+      PERCENT_INFO,
+      SLASH_INFO,
+      STAR_INFO,
+      TILDE_SLASH_INFO,
+      PERIOD_INFO,
+      QUESTION_PERIOD_INFO,
+      KEYWORD_INFO,
+      EOF_INFO,
+      IDENTIFIER_INFO,
+      BAD_INPUT_INFO,
+      OPEN_PAREN_INFO,
+      CLOSE_PAREN_INFO,
+      OPEN_CURLY_BRACKET_INFO,
+      CLOSE_CURLY_BRACKET_INFO,
+      INT_INFO,
+      STRING_INFO,
+      OPEN_SQUARE_BRACKET_INFO,
+      CLOSE_SQUARE_BRACKET_INFO,
+      DOUBLE_INFO,
+      STRING_INTERPOLATION_INFO,
+      STRING_INTERPOLATION_IDENTIFIER_INFO,
+      HEXADECIMAL_INFO,
+      COMMENT_INFO,
+    ];
 }
 
 // TODO(ahe): The following are not tokens in Dart.
diff --git a/pkg/front_end/lib/src/fasta/scanner/token.dart b/pkg/front_end/lib/src/fasta/scanner/token.dart
index 8a72228..7bded75 100644
--- a/pkg/front_end/lib/src/fasta/scanner/token.dart
+++ b/pkg/front_end/lib/src/fasta/scanner/token.dart
@@ -350,27 +350,27 @@
       isUnaryOperator(value);
 }
 
-bool isUnaryOperator(String value) => value == '~';
+bool isUnaryOperator(String value) => identical(value, "~");
 
 bool isBinaryOperator(String value) {
-  return value == '==' ||
-      value == '[]' ||
-      value == '*' ||
-      value == '/' ||
-      value == '%' ||
-      value == '~/' ||
-      value == '+' ||
-      value == '<<' ||
-      value == '>>' ||
-      value == '>=' ||
-      value == '>' ||
-      value == '<=' ||
-      value == '<' ||
-      value == '&' ||
-      value == '^' ||
-      value == '|';
+  return identical(value, "==") ||
+      identical(value, "[]") ||
+      identical(value, "*") ||
+      identical(value, "/") ||
+      identical(value, "%") ||
+      identical(value, "~/") ||
+      identical(value, "+") ||
+      identical(value, "<<") ||
+      identical(value, ">>") ||
+      identical(value, ">=") ||
+      identical(value, ">") ||
+      identical(value, "<=") ||
+      identical(value, "<") ||
+      identical(value, "&") ||
+      identical(value, "^") ||
+      identical(value, "|");
 }
 
-bool isTernaryOperator(String value) => value == '[]=';
+bool isTernaryOperator(String value) => identical(value, "[]=");
 
-bool isMinusOperator(String value) => value == '-';
+bool isMinusOperator(String value) => identical(value, "-");
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index e010ea9..81312da 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -210,6 +210,10 @@
     TypeBuilder supertype = pop();
     List<TypeVariableBuilder> typeVariables = pop();
     String name = pop();
+    if (typeVariables != null && supertype is MixinApplicationBuilder) {
+      supertype.typeVariables = typeVariables;
+      supertype.subclassName = name;
+    }
     int modifiers = Modifier.validate(pop());
     List<MetadataBuilder> metadata = pop();
     library.addClass(metadata, modifiers, name, typeVariables, supertype,
@@ -321,6 +325,10 @@
     TypeBuilder mixinApplication = pop();
     List<TypeVariableBuilder> typeVariables = pop();
     String name = pop();
+    if (typeVariables != null && mixinApplication is MixinApplicationBuilder) {
+      mixinApplication.typeVariables = typeVariables;
+      mixinApplication.subclassName = name;
+    }
     int modifiers = Modifier.validate(pop());
     List<MetadataBuilder> metadata = pop();
     library.addNamedMixinApplication(
diff --git a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
index 66f49af..5ab36ed 100644
--- a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
@@ -53,11 +53,13 @@
 
   final List<ConstructorReferenceBuilder> constructorReferences;
 
+  final KernelTypeBuilder mixedInType;
+
   SourceClassBuilder(List<MetadataBuilder> metadata, int modifiers,
       String name, List<TypeVariableBuilder> typeVariables,
-      KernelTypeBuilder supertype, List<KernelTypeBuilder>interfaces,
+      KernelTypeBuilder supertype, List<KernelTypeBuilder> interfaces,
       Map<String, Builder> members, LibraryBuilder parent,
-      this.constructorReferences, int charOffset, [Class cls])
+      this.constructorReferences, int charOffset, [Class cls, this.mixedInType])
       : cls = initializeClass(cls, name, parent, charOffset),
         membersInScope = computeMembersInScope(members),
         constructors = computeConstructors(members),
@@ -95,6 +97,7 @@
       } while (builder != null);
     });
     cls.supertype = supertype?.buildSupertype();
+    cls.mixedInType = mixedInType?.buildSupertype();
     // TODO(ahe): If `cls.supertype` is null, and this isn't Object, report a
     // compile-time error.
     cls.isAbstract = isAbstract;
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 4da1f85..42464db 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -25,6 +25,7 @@
 
 import '../builder/builder.dart' show
     Builder,
+    ClassBuilder,
     ConstructorReferenceBuilder,
     FormalParameterBuilder,
     LibraryBuilder,
@@ -57,6 +58,8 @@
 
   final Uri fileUri;
 
+  final List<List> implementationBuilders = <List<List>>[];
+
   String name;
 
   String partOf;
@@ -198,7 +201,7 @@
   TypeVariableBuilder addTypeVariable(String name, T bound, int charOffset);
 
   Builder addBuilder(String name, Builder builder, int charOffset) {
-    if (name.indexOf(".") != -1) {
+    if (name.indexOf(".") != -1 && name.indexOf("&") == -1) {
       addCompileTimeError(charOffset, "Only constructors and factories can have"
           " names containing a period ('.'): $name");
     }
@@ -231,26 +234,55 @@
         }
       });
       return existing;
-    } else if (existing != null && (existing.next != null ||
-            ((!existing.isGetter || !builder.isSetter) &&
-                (!existing.isSetter || !builder.isGetter)))) {
+    } else if (isDuplicatedDefinition(existing, builder)) {
       addCompileTimeError(charOffset, "Duplicated definition of '$name'.");
     }
     return members[name] = builder;
   }
 
+  bool isDuplicatedDefinition(Builder existing, Builder other) {
+    if (existing == null) return false;
+    Builder next = existing.next;
+    if (next == null) {
+      if (existing.isGetter && other.isSetter) return false;
+      if (existing.isSetter && other.isGetter) return false;
+    } else {
+      if (next is ClassBuilder && !next.isMixinApplication) return true;
+    }
+    if (existing is ClassBuilder && other is ClassBuilder) {
+      // We allow multiple mixin applications with the same name. An
+      // alternative is to share these mixin applications. This situation can
+      // happen if you have `class A extends Object with Mixin {}` and `class B
+      // extends Object with Mixin {}` in the same library.
+      return !existing.isMixinApplication || !other.isMixinApplication;
+    }
+    return true;
+  }
+
   void buildBuilder(Builder builder);
 
   R build() {
+    assert(implementationBuilders.isEmpty);
     members.forEach((String name, Builder builder) {
       do {
         buildBuilder(builder);
         builder = builder.next;
       } while (builder != null);
     });
+    for (List list in implementationBuilders) {
+      String name = list[0];
+      Builder builder = list[1];
+      int charOffset = list[2];
+      addBuilder(name, builder, charOffset);
+      buildBuilder(builder);
+    }
     return null;
   }
 
+  void addImplementationBuilder(String name, Builder builder, int charOffset) {
+    implementationBuilders.add([name, builder, charOffset]);
+  }
+
   void validatePart() {
     if (parts.isNotEmpty) {
       internalError("Part with parts: $uri");
diff --git a/pkg/front_end/lib/src/fasta/source/stack_listener.dart b/pkg/front_end/lib/src/fasta/source/stack_listener.dart
index 0601d26..08f2069 100644
--- a/pkg/front_end/lib/src/fasta/source/stack_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/stack_listener.dart
@@ -4,26 +4,17 @@
 
 library fasta.stack_listener;
 
-import 'dart:collection' show
-    Queue;
+import 'dart:collection' show Queue;
 
-import 'package:front_end/src/fasta/parser.dart' show
-    ErrorKind,
-    Listener;
+import 'package:front_end/src/fasta/parser.dart' show ErrorKind, Listener;
 
-import 'package:front_end/src/fasta/scanner.dart' show
-    BeginGroupToken,
-    Token;
+import 'package:front_end/src/fasta/scanner.dart' show BeginGroupToken, Token;
 
-import 'package:kernel/ast.dart' show
-    AsyncMarker;
+import 'package:kernel/ast.dart' show AsyncMarker;
 
-import '../errors.dart' show
-    inputError,
-    internalError;
+import '../errors.dart' show inputError, internalError;
 
-import '../quote.dart' show
-    unescapeString;
+import '../quote.dart' show unescapeString;
 
 enum NullValue {
   Arguments,
@@ -31,6 +22,7 @@
   BreakTarget,
   CascadeReceiver,
   Combinators,
+  ConditionalUris,
   ContinueTarget,
   Expression,
   FieldInitializer,
@@ -136,8 +128,7 @@
     }
     if (recoverableErrors.isNotEmpty) {
       // TODO(ahe): Handle recoverable errors better.
-      inputError(uri, recoverableErrors.first.beginOffset,
-          recoverableErrors);
+      inputError(uri, recoverableErrors.first.beginOffset, recoverableErrors);
     }
   }
 
diff --git a/pkg/front_end/test/fasta/mixin.dart b/pkg/front_end/test/fasta/mixin.dart
index dbe5bf8..e88898ed 100644
--- a/pkg/front_end/test/fasta/mixin.dart
+++ b/pkg/front_end/test/fasta/mixin.dart
@@ -2,6 +2,10 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+class B extends Object with M1, M2 {
+  B(value);
+}
+
 abstract class M1 {
   m() => print("M1");
 }
@@ -11,8 +15,20 @@
 }
 
 class C extends Object with M1, M2 {
+  C(value);
+}
+
+abstract class G1<T> {
+  m() => print(T);
+}
+
+class D<S> extends Object with G1<S> {
 }
 
 main() {
-  new C().m();
+  new B(null).m();
+  new C(null).m();
+  new D().m();
+  new D<int>().m();
+  new D<List<int>>().m();
 }
diff --git a/pkg/front_end/test/fasta/mixin.dart.direct.expect b/pkg/front_end/test/fasta/mixin.dart.direct.expect
index ab5f3d6..5c49faf 100644
--- a/pkg/front_end/test/fasta/mixin.dart.direct.expect
+++ b/pkg/front_end/test/fasta/mixin.dart.direct.expect
@@ -2,6 +2,11 @@
 import self as self;
 import "dart:core" as core;
 
+class B extends self::Object&M1&M2 {
+  constructor •(dynamic value) → void
+    : super self::Object&M1&M2::•()
+    ;
+}
 abstract class M1 extends core::Object {
   constructor •() → void
     : super core::Object::•()
@@ -17,10 +22,22 @@
     return core::print("M2");
 }
 class C extends self::Object&M1&M2 {
-  constructor •() → void
+  constructor •(dynamic value) → void
     : super self::Object&M1&M2::•()
     ;
 }
+abstract class G1<T extends core::Object> extends core::Object {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method m() → dynamic
+    return core::print(self::G1::T);
+}
+class D<S extends core::Object> extends self::D^G1<self::D::S> {
+  constructor •() → void
+    : super self::D^G1::•()
+    ;
+}
 abstract class Object&M1 extends core::Object implements self::M1 {
   constructor •() → void
     : super core::Object::•()
@@ -35,6 +52,31 @@
   method m() → dynamic
     return core::print("M2");
 }
+abstract class Object&M1 extends core::Object implements self::M1 {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method m() → dynamic
+    return core::print("M1");
+}
+abstract class Object&M1&M2 extends self::Object&M1 implements self::M2 {
+  constructor •() → void
+    : super self::Object&M1::•()
+    ;
+  method m() → dynamic
+    return core::print("M2");
+}
+abstract class D^G1<S extends core::Object> extends core::Object implements self::G1<self::D^G1::S> {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method m() → dynamic
+    return core::print(self::D^G1::S);
+}
 static method main() → dynamic {
-  new self::C::•().m();
+  new self::B::•(null).m();
+  new self::C::•(null).m();
+  new self::D::•<dynamic>().m();
+  new self::D::•<core::int>().m();
+  new self::D::•<core::List<core::int>>().m();
 }
diff --git a/pkg/front_end/test/fasta/mixin.dart.outline.expect b/pkg/front_end/test/fasta/mixin.dart.outline.expect
index d0c955c..7c0c30a 100644
--- a/pkg/front_end/test/fasta/mixin.dart.outline.expect
+++ b/pkg/front_end/test/fasta/mixin.dart.outline.expect
@@ -2,6 +2,10 @@
 import self as self;
 import "dart:core" as core;
 
+class B extends self::Object&M1&M2 {
+  constructor •(dynamic value) → void
+    ;
+}
 abstract class M1 extends core::Object {
   constructor •() → void
     ;
@@ -15,6 +19,16 @@
     ;
 }
 class C extends self::Object&M1&M2 {
+  constructor •(dynamic value) → void
+    ;
+}
+abstract class G1<T extends core::Object> extends core::Object {
+  constructor •() → void
+    ;
+  method m() → dynamic
+    ;
+}
+class D<S extends core::Object> extends self::D^G1<self::D::S> {
   constructor •() → void
     ;
 }
@@ -22,5 +36,11 @@
 }
 abstract class Object&M1&M2 = self::Object&M1 with self::M2 {
 }
+abstract class Object&M1 = core::Object with self::M1 {
+}
+abstract class Object&M1&M2 = self::Object&M1 with self::M2 {
+}
+abstract class D^G1<S extends core::Object> = core::Object with self::G1<self::D^G1::S> {
+}
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/test/fasta/testing.json b/pkg/front_end/test/fasta/testing.json
index af7e073..5c1d52c 100644
--- a/pkg/front_end/test/fasta/testing.json
+++ b/pkg/front_end/test/fasta/testing.json
@@ -131,6 +131,8 @@
 
   "analyze": {
 
+    "options": "../../.analysis_options",
+
     "uris": [
       "../../lib/src/fasta",
       "../../lib/src/fasta/analyzer",
diff --git a/pkg/front_end/test/scanner_fasta_test.dart b/pkg/front_end/test/scanner_fasta_test.dart
index 5002705..14a5d65 100644
--- a/pkg/front_end/test/scanner_fasta_test.dart
+++ b/pkg/front_end/test/scanner_fasta_test.dart
@@ -41,10 +41,8 @@
     // Dart, remove this flag.
     var scanner = new fasta.StringScanner(source, includeComments: true);
     var token = scanner.tokenize();
-    return toAnalyzerTokenStream(token,
-        (ScannerErrorCode errorCode, int offset, List<Object> arguments) {
-      listener.errors.add(new TestError(offset, errorCode, arguments));
-    });
+    return new ToAnalyzerTokenStreamConverter_WithListener(listener)
+        .convertTokens(token);
   }
 
   @override
@@ -375,10 +373,34 @@
   fasta.Token scan(String source) {
     var scanner = new fasta.StringScanner(source, includeComments: true);
     var fastaTokenStream = scanner.tokenize();
-    var analyzerTokenStream = toAnalyzerTokenStream(fastaTokenStream,
-        (ScannerErrorCode errorCode, int offset, List<Object> arguments) {
-      fail('Unexpected error: $errorCode, $offset, $arguments');
-    });
+    var analyzerTokenStream = new ToAnalyzerTokenStreamConverter_NoErrors()
+        .convertTokens(fastaTokenStream);
     return fromAnalyzerTokenStream(analyzerTokenStream);
   }
 }
+
+/// Override of [ToAnalyzerTokenStreamConverter] that verifies that there are no
+/// errors.
+class ToAnalyzerTokenStreamConverter_NoErrors
+    extends ToAnalyzerTokenStreamConverter {
+  @override
+  void reportError(
+      ScannerErrorCode errorCode, int offset, List<Object> arguments) {
+    fail('Unexpected error: $errorCode, $offset, $arguments');
+  }
+}
+
+/// Override of [ToAnalyzerTokenStreamConverter] that records errors in an
+/// [ErrorListener].
+class ToAnalyzerTokenStreamConverter_WithListener
+    extends ToAnalyzerTokenStreamConverter {
+  final ErrorListener _listener;
+
+  ToAnalyzerTokenStreamConverter_WithListener(this._listener);
+
+  @override
+  void reportError(
+      ScannerErrorCode errorCode, int offset, List<Object> arguments) {
+    _listener.errors.add(new TestError(offset, errorCode, arguments));
+  }
+}
diff --git a/pkg/front_end/test/scanner_roundtrip_test.dart b/pkg/front_end/test/scanner_roundtrip_test.dart
index a327451..398376b 100644
--- a/pkg/front_end/test/scanner_roundtrip_test.dart
+++ b/pkg/front_end/test/scanner_roundtrip_test.dart
@@ -3,11 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:front_end/src/fasta/analyzer/token_utils.dart';
-import 'package:front_end/src/scanner/errors.dart';
 import 'package:front_end/src/scanner/token.dart';
-import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
+import 'scanner_fasta_test.dart';
 import 'scanner_test.dart';
 
 main() {
@@ -32,13 +31,11 @@
         genericMethodComments: genericMethodComments,
         lazyAssignmentOperators: lazyAssignmentOperators);
     var fastaToken = fromAnalyzerTokenStream(analyzerToken);
-    return toAnalyzerTokenStream(fastaToken,
-        (ScannerErrorCode errorCode, int offset, List<Object> arguments) {
-      // Since [scanWithListener] reports errors to the listener, we don't
-      // expect any error tokens in the Fasta token stream; so this callback
-      // should never be called.
-      fail('Unexpected error reported: $errorCode, $offset, $arguments');
-    });
+    // Since [scanWithListener] reports errors to the listener, we don't
+    // expect any error tokens in the Fasta token stream, so we convert using
+    // ToAnalyzerTokenStreamConverter_NoErrors.
+    return new ToAnalyzerTokenStreamConverter_NoErrors()
+        .convertTokens(fastaToken);
   }
 
   @override
diff --git a/pkg/front_end/test/scanner_test.dart b/pkg/front_end/test/scanner_test.dart
index fd30f8d..d853ee8 100644
--- a/pkg/front_end/test/scanner_test.dart
+++ b/pkg/front_end/test/scanner_test.dart
@@ -783,7 +783,7 @@
 
   void test_mismatched_opener_in_interpolation() {
     // In an interpolation expression, analyzer considers a closing `}` to
-    // always matche the preceding unmatched `{`, even if there are intervening
+    // always match the preceding unmatched `{`, even if there are intervening
     // unmatched tokens, which means that `"${({(}}"` parses as though the open
     // parens are unmatched but everything else is matched.
     var stringStart = _scan(r'"${({(}}"');
diff --git a/pkg/front_end/tool/fasta_perf.dart b/pkg/front_end/tool/fasta_perf.dart
new file mode 100644
index 0000000..ab80430
--- /dev/null
+++ b/pkg/front_end/tool/fasta_perf.dart
@@ -0,0 +1,298 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// An entrypoint used to run portions of fasta and measure its performance.
+library front_end.tool.fasta_perf;
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:front_end/src/fasta/analyzer/ast_builder.dart';
+import 'package:front_end/src/fasta/ast_kind.dart' show AstKind;
+import 'package:front_end/src/fasta/dill/dill_target.dart' show DillTarget;
+import 'package:front_end/src/fasta/kernel/kernel_target.dart'
+    show KernelTarget;
+import 'package:front_end/src/fasta/parser.dart';
+import 'package:front_end/src/fasta/scanner.dart';
+import 'package:front_end/src/fasta/scanner/io.dart' show readBytesFromFileSync;
+import 'package:front_end/src/fasta/scanner/precedence.dart';
+import 'package:front_end/src/fasta/source/scope_listener.dart' show Scope;
+import 'package:front_end/src/fasta/ticker.dart' show Ticker;
+import 'package:front_end/src/fasta/translate_uri.dart' show TranslateUri;
+import 'package:front_end/src/fasta/translate_uri.dart';
+
+/// Cumulative total number of chars scanned.
+int inputSize = 0;
+
+/// Cumulative time spent scanning.
+Stopwatch scanTimer = new Stopwatch();
+
+main(List<String> args) async {
+  // TODO(sigmund): provide sdk folder as well.
+  if (args.length < 2) {
+    print('usage: fasta_perf.dart <bench-id> <entry.dart>');
+    exit(1);
+  }
+  var bench = args[0];
+  var entryUri = Uri.base.resolve(args[1]);
+
+  await setup(entryUri);
+
+  Map<Uri, List<int>> files = await scanReachableFiles(entryUri);
+  var handlers = {
+    'scan': () async => scanFiles(files),
+    // TODO(sigmund): enable when we can run the ast-builder standalone.
+    // 'parse': () async => parseFiles(files),
+    'kernel_gen_e2e': () async {
+      await generateKernel(entryUri);
+    },
+    // TODO(sigmund): enable once we add a build step to create the
+    // platform.dill files.
+    // 'kernel_gen_e2e_sum': () async {
+    //   await generateKernel(entryUri, compileSdk: false);
+    // },
+  };
+
+  var handler = handlers[bench];
+  if (handler == null) {
+    // TODO(sigmund): implement the remaining benchmarks.
+    print('unsupported bench-id: $bench. Please specify one of the following: '
+        '${handlers.keys.join(", ")}');
+    exit(1);
+  }
+
+  // TODO(sigmund): replace the warmup with instrumented snapshots.
+  int iterations = bench.contains('kernel_gen') ? 2 : 10;
+  for (int i = 0; i < iterations; i++) {
+    var totalTimer = new Stopwatch()..start();
+    print('== iteration $i');
+    await handler();
+    totalTimer.stop();
+    report('total', totalTimer.elapsedMicroseconds);
+  }
+}
+
+/// Translates `dart:*` and `package:*` URIs to resolved URIs.
+TranslateUri uriResolver;
+
+/// Preliminary set up to be able to correctly resolve URIs on the given
+/// program.
+Future setup(Uri entryUri) async {
+  // TODO(sigmund): use `perf.dart::_findSdkPath` here when fasta can patch the
+  // sdk directly.
+  var sdkRoot =
+      Uri.base.resolve(Platform.resolvedExecutable).resolve('patched_sdk/');
+  uriResolver = await TranslateUri.parse(sdkRoot);
+}
+
+/// Scan [contents] and return the first token produced by the scanner.
+Token tokenize(List<int> contents) {
+  scanTimer.start();
+  var token = scan(contents).tokens;
+  scanTimer.stop();
+  return token;
+}
+
+/// Scans every file in [files] and reports the time spent doing so.
+void scanFiles(Map<Uri, List<int>> files) {
+  scanTimer = new Stopwatch();
+  for (var source in files.values) {
+    tokenize(source);
+  }
+  report('scan', scanTimer.elapsedMicroseconds);
+}
+
+/// Load and scans all files we need to process: files reachable from the
+/// entrypoint and all core libraries automatically included by the VM.
+Future<Map<Uri, List<int>>> scanReachableFiles(Uri entryUri) async {
+  var files = <Uri, List<int>>{};
+  var loadTimer = new Stopwatch()..start();
+  scanTimer = new Stopwatch();
+  var entrypoints = [
+    entryUri,
+    // These extra libraries are added to match the same set of libraries
+    // scanned by default by the VM and the other benchmarks.
+    Uri.parse('dart:async'),
+    Uri.parse('dart:collection'),
+    Uri.parse('dart:convert'),
+    Uri.parse('dart:core'),
+    Uri.parse('dart:developer'),
+    Uri.parse('dart:_internal'),
+    Uri.parse('dart:io'),
+    Uri.parse('dart:isolate'),
+    Uri.parse('dart:math'),
+    Uri.parse('dart:mirrors'),
+    Uri.parse('dart:typed_data'),
+  ];
+  for (var entry in entrypoints) {
+    await collectSources(entry, files);
+  }
+  loadTimer.stop();
+
+  inputSize = 0;
+  // adjust size because there is a null-terminator on the contents.
+  for (var source in files.values) inputSize += (source.length - 1);
+  print('input size: ${inputSize} chars');
+  var loadTime = loadTimer.elapsedMicroseconds - scanTimer.elapsedMicroseconds;
+  report('load', loadTime);
+  report('scan', scanTimer.elapsedMicroseconds);
+  return files;
+}
+
+/// Add to [files] all sources reachable from [start].
+Future<Null> collectSources(Uri start, Map<Uri, List<int>> files) async {
+  helper(Uri uri) {
+    uri = uriResolver.translate(uri) ?? uri;
+    if (uri == null) return;
+    if (files.containsKey(uri)) return;
+    var contents = readBytesFromFileSync(uri);
+    files[uri] = contents;
+    for (var directiveUri in extractDirectiveUris(contents)) {
+      helper(uri.resolve(directiveUri));
+    }
+  }
+
+  helper(start);
+}
+
+/// Parse [contents] as a Dart program and return the URIs that appear in its
+/// import, export, and part directives.
+Set<String> extractDirectiveUris(List<int> contents) {
+  var listener = new DirectiveListener();
+  new DirectiveParser(listener).parseUnit(tokenize(contents));
+  return listener.uris;
+}
+
+/// Diet parser that stops eagerly at the first sign that we have seen all the
+/// import, export, and part directives.
+class DirectiveParser extends ClassMemberParser {
+  DirectiveParser(listener) : super(listener);
+
+  static final _endToken = new SymbolToken(EOF_INFO, -1);
+
+  Token parseClassOrNamedMixinApplication(Token token) => _endToken;
+  Token parseEnum(Token token) => _endToken;
+  parseTypedef(token) => _endToken;
+  parseTopLevelMember(Token token) => _endToken;
+}
+
+/// Listener that records the URIs from imports, exports, and part directives.
+class DirectiveListener extends Listener {
+  bool _inDirective = false;
+  Set<String> uris = new Set<String>();
+
+  void _enterDirective() {
+    _inDirective = true;
+  }
+
+  void _exitDirective() {
+    _inDirective = false;
+  }
+
+  beginImport(_) => _enterDirective();
+  beginExport(_) => _enterDirective();
+  beginPart(_) => _enterDirective();
+
+  endExport(export, semicolon) => _exitDirective();
+  endImport(import, deferred, asKeyword, semicolon) => _exitDirective();
+  endPart(part, semicolon) => _exitDirective();
+
+  void beginLiteralString(Token token) {
+    if (_inDirective) {
+      var quotedString = token.value;
+      uris.add(quotedString.substring(1, quotedString.length - 1));
+    }
+  }
+}
+
+/// Parses every file in [files] and reports the time spent doing so.
+void parseFiles(Map<Uri, List<int>> files) {
+  scanTimer = new Stopwatch();
+  var parseTimer = new Stopwatch()..start();
+  files.forEach((uri, source) {
+    parseFull(uri, source);
+  });
+  parseTimer.stop();
+
+  report('scan', scanTimer.elapsedMicroseconds);
+  report(
+      'parse', parseTimer.elapsedMicroseconds - scanTimer.elapsedMicroseconds);
+}
+
+/// Parse the full body of [source].
+parseFull(Uri uri, List<int> source) {
+  var tokens = tokenize(source);
+  Parser parser = new Parser(new _PartialAstBuilder(uri));
+  parser.parseUnit(tokens);
+}
+
+class _EmptyScope extends Scope {
+  _EmptyScope() : super({}, null);
+}
+
+// Note: AstBuilder doesn't build compilation-units or classes, only method
+// bodies. So this listener is not feature complete.
+class _PartialAstBuilder extends AstBuilder {
+  final Uri uri;
+  _PartialAstBuilder(this.uri) : super(null, null, null, new _EmptyScope());
+
+  // Note: this method converts the body to kernel, so we skip that here.
+  @override
+  finishFunction(formals, asyncModifier, body) {}
+}
+
+// Invoke the fasta kernel generator for the program starting in [entryUri]
+// TODO(sigmund): update to uyse the frontend api once fasta is beind hit.
+generateKernel(Uri entryUri, {bool compileSdk: true}) async {
+  // TODO(sigmund): this is here only to compute the input size,
+  // we should extract the input size from the frontend instead.
+  scanReachableFiles(entryUri);
+
+  var timer = new Stopwatch()..start();
+  final Ticker ticker = new Ticker();
+  final DillTarget dillTarget = new DillTarget(ticker, uriResolver);
+  final KernelTarget kernelTarget = new KernelTarget(dillTarget, uriResolver);
+  var entrypoints = [
+    entryUri,
+    // These extra libraries are added to match the same set of libraries
+    // scanned by default by the VM and the other benchmarks.
+    Uri.parse('dart:async'),
+    Uri.parse('dart:collection'),
+    Uri.parse('dart:convert'),
+    Uri.parse('dart:core'),
+    Uri.parse('dart:developer'),
+    Uri.parse('dart:_internal'),
+    Uri.parse('dart:io'),
+    Uri.parse('dart:isolate'),
+    Uri.parse('dart:math'),
+    Uri.parse('dart:mirrors'),
+    Uri.parse('dart:typed_data'),
+  ];
+  entrypoints.forEach(kernelTarget.read);
+
+  if (!compileSdk) {
+    dillTarget.read(
+        Uri.base.resolve(Platform.resolvedExecutable).resolve('platform.dill'));
+  }
+  await dillTarget.writeOutline(null);
+  var program = await kernelTarget.writeOutline(null);
+  program = await kernelTarget.writeProgram(null, AstKind.Kernel);
+  if (kernelTarget.errors.isNotEmpty) {
+    throw kernelTarget.errors.first;
+  }
+  timer.stop();
+  report('kernel_gen_e2e', timer.elapsedMicroseconds);
+  return program;
+}
+
+/// Report that metric [name] took [time] micro-seconds to process
+/// [inputSize] characters.
+void report(String name, int time) {
+  var sb = new StringBuffer();
+  var padding = ' ' * (20 - name.length);
+  sb.write('$name:$padding $time us, ${time ~/ 1000} ms');
+  var invSpeed = (time * 1000 / inputSize).toStringAsFixed(2);
+  sb.write(', $invSpeed ns/char');
+  print('$sb');
+}
diff --git a/pkg/front_end/tool/fasta_perf_test.dart b/pkg/front_end/tool/fasta_perf_test.dart
new file mode 100644
index 0000000..4145908
--- /dev/null
+++ b/pkg/front_end/tool/fasta_perf_test.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// The only purpose of this file is to enable analyzer tests on `perf.dart`,
+/// the code here just has a dummy import to the rest of the code.
+library front_end.tool.perf_test;
+
+import 'dart:io' show Platform;
+import 'fasta_perf.dart' as m;
+
+main() async {
+  var benchIds = [
+    'scan',
+    'kernel_gen_e2e',
+  ];
+  var inputFile = Platform.script.resolve('../lib/file_system.dart').path;
+  for (var id in benchIds) {
+    await m.main([id, inputFile]);
+  }
+}
diff --git a/pkg/kernel/bin/dartk.dart b/pkg/kernel/bin/dartk.dart
index 84fbf77..b195bda 100755
--- a/pkg/kernel/bin/dartk.dart
+++ b/pkg/kernel/bin/dartk.dart
@@ -305,6 +305,7 @@
   TargetFlags targetFlags = new TargetFlags(
       strongMode: options['strong'],
       treeShake: options['tree-shake'],
+      kernelRuntime: Platform.script.resolve('../runtime/'),
       programRoots: programRoots);
   Target target = getTarget(options['target'], targetFlags);
 
diff --git a/pkg/kernel/bin/reified_dart.dart b/pkg/kernel/bin/reified_dart.dart
new file mode 100755
index 0000000..b87807d
--- /dev/null
+++ b/pkg/kernel/bin/reified_dart.dart
@@ -0,0 +1,173 @@
+#!/usr/bin/env dart
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:args/args.dart' as args;
+import 'package:path/path.dart' as path;
+
+args.ArgParser parser = new args.ArgParser(allowTrailingOptions: true)
+  ..addOption("sdk",
+      abbr: "s",
+      help: "Path to the Dart SDK. By default it will be searched at the path\n"
+          "'../../../out/ReleaseX64/patched_sdk' relative to the directory\n"
+          "of 'reified_dart'.",
+      defaultsTo: null)
+  ..addOption("dartk",
+      abbr: "k",
+      help: "Path to 'dartk' executable. By default it will be searched for\n"
+          "in the same directory as 'reified_dart'.",
+      defaultsTo: null)
+  ..addOption("dill-output",
+      abbr: "d",
+      help: "Path to intermediate reified .dill file. If not specified,\n"
+          "the intermediate file is created in a temporary location\n"
+          "and is removed after program execution.",
+      defaultsTo: null);
+
+String getUsage() => """
+Usage: reified_dart [options] FILE
+
+Reifies generic types in FILE and runs the transformed program.
+
+Examples:
+    reified_dart foo.dart
+    reified_dart --sdk=/path/to/sdk foo.dart
+    reified_dart --sdk=/path/to/sdk --dartk=/path/to/dartk foo.dart
+
+Options:
+${parser.usage}
+""";
+
+void fail(String message) {
+  stderr.writeln(message);
+  exit(1);
+}
+
+args.ArgResults options;
+
+void checkIsDirectory(String path, {String option, String description}) {
+  description = (description == null ? "" : "$description\n");
+  switch (new File(path).statSync().type) {
+    case FileSystemEntityType.DIRECTORY:
+    case FileSystemEntityType.LINK:
+      return;
+    case FileSystemEntityType.NOT_FOUND:
+      throw fail('$description$option not found: $path');
+    default:
+      fail('$description$option is not a directory: $path');
+  }
+}
+
+void checkIsFile(String path, {String option, String description}) {
+  description = (description == null ? "" : "$description\n");
+  var stat = new File(path).statSync();
+  switch (stat.type) {
+    case FileSystemEntityType.DIRECTORY:
+      throw fail('$description$option is a directory: $path');
+
+    case FileSystemEntityType.NOT_FOUND:
+      throw fail('$description$option not found: $path');
+  }
+}
+
+String getDefaultSdk() {
+  String currentFile = Platform.script.toFilePath();
+
+  // Respect different path separators.
+  String relativePath = "../../../out/ReleaseX64/patched_sdk";
+  List<String> components = relativePath.split("/");
+  relativePath = "";
+  for (String component in components) {
+    relativePath = path.join(relativePath, component);
+  }
+
+  String currentDir = path.dirname(currentFile);
+  String sdkPath = path.normalize(path.join(currentDir, relativePath));
+
+  checkIsDirectory(sdkPath,
+      option: "Path to Dart SDK",
+      description: "The --sdk option wasn't specified, "
+          "so default location was checked.");
+
+  return sdkPath;
+}
+
+String getDefaultDartk() {
+  String currentFile = Platform.script.toFilePath();
+  String dartkPath = path.join(path.dirname(currentFile), "dartk.dart");
+
+  checkIsFile(dartkPath,
+      option: "Path to 'dartk'",
+      description: "The --dartk option wasn't specified, "
+          "so default location was checked.");
+
+  return dartkPath;
+}
+
+main(List<String> arguments) async {
+  if (arguments.length == 0) {
+    fail(getUsage());
+  }
+
+  try {
+    options = parser.parse(arguments);
+  } on FormatException catch (e) {
+    fail(e.message);
+  }
+
+  if (options.rest.length != 1) {
+    fail("Exactly one FILE should be given.");
+  }
+
+  String inputFilename = options.rest.single;
+  checkIsFile(inputFilename, option: "Input file");
+
+  String sdkPath = options["sdk"] ?? getDefaultSdk();
+  checkIsDirectory(sdkPath, option: "Path to Dart SDK");
+
+  String dartkPath = options["dartk"] ?? getDefaultDartk();
+  checkIsFile(dartkPath, option: "Path to 'dartk'");
+
+  String dillOutput = options["dill-output"];
+  File tempFile = null;
+  if (dillOutput == null) {
+    Directory tmp = await Directory.systemTemp.createTemp();
+    Uri uri = tmp.uri.resolve("generated.dill");
+    dillOutput = uri.toFilePath();
+    tempFile = new File.fromUri(uri);
+  }
+
+  ProcessResult result = await Process.run(dartkPath, [
+    "--sdk=$sdkPath",
+    "--target=vmreify",
+    "--link",
+    "--out=$dillOutput",
+    inputFilename,
+  ]);
+  if (result.exitCode != 0) {
+    tempFile?.parent?.delete(recursive: true);
+    stdout.write(result.stdout);
+    stderr.write(result.stderr);
+    stderr.writeln("ERROR: execution of 'dartk' failed with exit code "
+        "${result.exitCode}");
+    exit(result.exitCode);
+  }
+
+  result = await Process.run("/usr/bin/env", [
+    "dart",
+    dillOutput,
+    inputFilename,
+  ]);
+
+  stdout.write(result.stdout);
+  stderr.write(result.stderr);
+  tempFile?.parent?.delete(recursive: true);
+  if (result.exitCode != 0) {
+    stderr.writeln("ERROR: execution of 'dart' failed with exit code "
+        "${result.exitCode}");
+    exit(result.exitCode);
+  }
+}
diff --git a/pkg/kernel/bin/transform.dart b/pkg/kernel/bin/transform.dart
index 5e73214..50d6339 100755
--- a/pkg/kernel/bin/transform.dart
+++ b/pkg/kernel/bin/transform.dart
@@ -7,16 +7,18 @@
 import 'dart:io';
 
 import 'package:args/args.dart';
-import 'package:kernel/verifier.dart';
 import 'package:kernel/kernel.dart';
-import 'package:kernel/transformations/continuation.dart' as cont;
-import 'package:kernel/transformations/infer_values.dart' as infer_values;
-import 'package:kernel/transformations/mixin_full_resolution.dart' as mix;
 import 'package:kernel/transformations/closure_conversion.dart' as closures;
+import 'package:kernel/transformations/continuation.dart' as cont;
+import 'package:kernel/transformations/empty.dart' as empty;
+import 'package:kernel/transformations/infer_values.dart' as infer_values;
+import 'package:kernel/transformations/method_call.dart' as method_call;
+import 'package:kernel/transformations/mixin_full_resolution.dart' as mix;
 import 'package:kernel/transformations/treeshaker.dart' as treeshaker;
+import 'package:kernel/verifier.dart';
 
-import 'util.dart';
 import 'batch_util.dart';
+import 'util.dart';
 
 ArgParser parser = new ArgParser()
   ..addOption('format',
@@ -90,6 +92,12 @@
       program =
           treeshaker.transformProgram(program, programRoots: programRoots);
       break;
+    case 'methodcall':
+      program = method_call.transformProgram(program);
+      break;
+    case 'empty':
+      program = empty.transformProgram(program);
+      break;
     default:
       throw 'Unknown transformation';
   }
diff --git a/pkg/kernel/lib/target/targets.dart b/pkg/kernel/lib/target/targets.dart
index ec89ffb..13186d5 100644
--- a/pkg/kernel/lib/target/targets.dart
+++ b/pkg/kernel/lib/target/targets.dart
@@ -9,6 +9,7 @@
 import 'flutter.dart';
 import 'vm.dart';
 import 'vmcc.dart';
+import 'vmreify.dart';
 
 final List<String> targetNames = targets.keys.toList();
 
@@ -16,8 +17,9 @@
   bool strongMode;
   bool treeShake;
   List<ProgramRoot> programRoots;
+  Uri kernelRuntime;
 
-  TargetFlags({this.strongMode: false, this.treeShake: false, this.programRoots: const <ProgramRoot>[]});
+  TargetFlags({this.strongMode: false, this.treeShake: false, this.programRoots: const <ProgramRoot>[], this.kernelRuntime});
 }
 
 typedef Target _TargetBuilder(TargetFlags flags);
@@ -26,6 +28,7 @@
   'none': (TargetFlags flags) => new NoneTarget(flags),
   'vm': (TargetFlags flags) => new VmTarget(flags),
   'vmcc': (TargetFlags flags) => new VmClosureConvertedTarget(flags),
+  'vmreify': (TargetFlags flags) => new VmGenericTypesReifiedTarget(flags),
   'flutter': (TargetFlags flags) => new FlutterTarget(flags),
 };
 
diff --git a/pkg/kernel/lib/target/vm.dart b/pkg/kernel/lib/target/vm.dart
index 1366cae..ed22544 100644
--- a/pkg/kernel/lib/target/vm.dart
+++ b/pkg/kernel/lib/target/vm.dart
@@ -74,13 +74,7 @@
     }
 
     if (flags.treeShake) {
-      new TreeShaker(program,
-              hierarchy: _hierarchy,
-              coreTypes: coreTypes,
-              strongMode: strongMode,
-              programRoots: flags.programRoots)
-          .transform(program);
-      _hierarchy = null; // Hierarchy must be recomputed.
+      performTreeShaking(program);
     }
 
     cont.transformProgram(program);
@@ -94,4 +88,15 @@
 
     new SanitizeForVM().transform(program);
   }
+
+  void performTreeShaking(Program program) {
+    var coreTypes = new CoreTypes(program);
+    new TreeShaker(program,
+        hierarchy: _hierarchy,
+        coreTypes: coreTypes,
+        strongMode: strongMode,
+        programRoots: flags.programRoots)
+        .transform(program);
+    _hierarchy = null; // Hierarchy must be recomputed.
+  }
 }
diff --git a/pkg/kernel/lib/target/vmreify.dart b/pkg/kernel/lib/target/vmreify.dart
new file mode 100644
index 0000000..db2c63e
--- /dev/null
+++ b/pkg/kernel/lib/target/vmreify.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+library kernel.target.vmreify;
+
+import '../ast.dart' show Program;
+import '../transformations/generic_types_reification.dart' as reify
+    show transformProgram;
+
+import 'targets.dart' show TargetFlags;
+import 'vmcc.dart' as vmcc_target;
+
+/// Specializes the kernel IR to the Dart VM with reified generic types.
+class VmGenericTypesReifiedTarget extends vmcc_target.VmClosureConvertedTarget {
+  VmGenericTypesReifiedTarget(TargetFlags flags) : super(flags);
+
+  @override
+  String get name => "vmreify";
+
+  // This is the order that bootstrap libraries are loaded according to
+  // `runtime/vm/object_store.h`.
+  List<String> get extraRequiredLibraries {
+    return new List<String>.from(super.extraRequiredLibraries)
+      ..add("${flags.kernelRuntime.resolve('reify/types.dart')}")
+      ..add("${flags.kernelRuntime.resolve('reify/declarations.dart')}")
+      ..add("${flags.kernelRuntime.resolve('reify/interceptors.dart')}");
+  }
+
+  @override
+  void performGlobalTransformations(Program program) {
+    super.performGlobalTransformations(program);
+    // TODO(dmitryas) this transformation should be made modular
+    reify.transformProgram(program);
+  }
+
+  // Disable tree shaking for Generic Types Reification. There are some runtime
+  // libraries that are required for the transformation and are shaken off,
+  // because they aren't invoked from the program being transformed prior to
+  // the transformation.
+  // TODO(dmitryas): remove this when the libraries are in dart:_internal
+  @override
+  void performTreeShaking(Program program) {}
+}
diff --git a/pkg/kernel/lib/transformations/empty.dart b/pkg/kernel/lib/transformations/empty.dart
new file mode 100644
index 0000000..3b84fb7
--- /dev/null
+++ b/pkg/kernel/lib/transformations/empty.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.empty;
+
+import '../ast.dart';
+import '../kernel.dart';
+import '../visitor.dart';
+
+Program transformProgram(Program program) {
+  new EmptyTransformer().visitProgram(program);
+  return program;
+}
+
+class EmptyTransformer extends Transformer {}
\ No newline at end of file
diff --git a/pkg/kernel/lib/transformations/generic_types_reification.dart b/pkg/kernel/lib/transformations/generic_types_reification.dart
new file mode 100644
index 0000000..ea64517
--- /dev/null
+++ b/pkg/kernel/lib/transformations/generic_types_reification.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformation.generic_types_reification;
+
+import '../ast.dart' show Program;
+
+import '../transformations/reify/reify_transformer.dart' as reify
+    show transformProgram;
+
+Program transformProgram(Program program) {
+  return reify.transformProgram(program);
+}
diff --git a/pkg/kernel/lib/transformations/method_call.dart b/pkg/kernel/lib/transformations/method_call.dart
new file mode 100644
index 0000000..6784dd3
--- /dev/null
+++ b/pkg/kernel/lib/transformations/method_call.dart
@@ -0,0 +1,1312 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.method_call;
+
+import 'dart:math' as math;
+
+import '../ast.dart';
+import '../class_hierarchy.dart';
+import '../core_types.dart';
+import '../kernel.dart';
+import '../visitor.dart';
+
+/// Problems with the method rewrite transformation:
+///
+/// * Cannot rewrite invocations to things called "call" because of tear-offs
+///   and whatnot that when invoked turns into variableName.call(...).
+///
+/// * Cannot rewrite invocations to things sharing a name with a field because
+///   one could have called clazz.fieldName(...).
+///
+/// * Rewrites will make stacktraces look weird.
+///
+/// * Rewrites will make noSuchMethod look weird --- e.g. calling a non-existing
+///   function foo(a: 42) turns into foo%0%a(42), i.e. the method name has
+///   changed ("foo" vs "foo%0%a") and the arguments has changed (named "a" vs
+///   positional).
+///   NOTE: At least for now this can be fixed by changing the
+///   invocation_mirror_patch file. Doing this I can make all dill, language
+///   and co19 tests pass!
+///
+/// Somewhat weird:
+///
+/// * Inserts methods that redirect to the correct noSuchMethod invocation
+///   so that program #1 example below will work.
+///   The reason it otherwise wouldn't is that b.foo(499, named1: 88) is
+///   rewritten to b.foo%1%named1(499, 88) which is not legal for class B
+///   (thus the method would not be create there) but IS legal for Bs parent
+///   class (A), so it would be created there. The call will thus go to the
+///   super (A) but shouldn't as foo was overwritten in B.
+///
+/// Program #1 example:
+/// class A {
+///   foo(required1, { named1: 499}) => print("Hello from class A");
+/// }
+///
+/// class B extends A {
+///   foo(required1) => print("Hello from class B");
+/// }
+///
+/// main() {
+///   var b = new B();
+///   b.foo(499, named1: 88);
+/// }
+Program transformProgram(Program program, [debug = false]) {
+  new MethodCallTransformer(debug).visitProgram(program);
+  return program;
+}
+
+class MethodCallTransformer extends Transformer {
+  /// Keep track of "visited" procedures and constructors to not visit already
+  /// visited stuff, nor visit newly created stubs.
+  Set<Member> _visited = new Set<Member>();
+
+  /// Some things currently cannot be rewritten. Calls to methods called "call"
+  /// (because invoking tear-offs and closures and whatnot becomes .call)
+  /// as well as clashes with field names as a field can contain a function
+  /// and one can then do a clazz.fieldName(...).
+  Set<String> blacklistedSelectors = new Set<String>.from(["call"]);
+
+  /// Map from a "originally named" procedure to the "%original" procedure
+  /// for procedures that was moved.
+  Map<Procedure, Procedure> _movedBodies = {};
+
+  /// Map from a "originally named" constructor to the "%original"
+  /// constructor for constructors that was moved.
+  Map<Constructor, Constructor> _movedConstructors = {};
+
+  /// For static method transformations:
+  /// Maps a procedure to the mapping of argument signature to procedure stub.
+  Map<Procedure, Map<String, Procedure>> _staticProcedureCalls = {};
+
+  /// For constructor transformations:
+  /// Maps a constructor to a mapping of argument signature to constructor stub.
+  Map<Constructor, Map<String, Constructor>> _constructorCalls = {};
+
+  /// For non-static method transformations:
+  /// Maps from method name to the set of legal number of positional arguments.
+  Map<String, Set<int>> _methodToLegalPositionalArgumentCount = {};
+
+  /// For non-static method transformations:
+  /// Maps from name of method to the set of new target names seen for at least
+  /// one instance (i.e. rewriting has been performed from key to all values in
+  /// the mapped to set at least once).
+  Map<Name, Set<String>> _rewrittenMethods = {};
+
+  /// For non-static method transformations:
+  /// Maps a procedure to the mapping of argument signature to procedure stub.
+  Map<Procedure, Map<String, Procedure>> _superProcedureCalls = {};
+
+  /// Whether in debug mode, i.e. if we can insert extra print statements for
+  /// debugging purposes.
+  bool _debug;
+
+  /// For noSuchMethod calls.
+  ClassHierarchy hierarchy;
+  CoreTypes coreTypes;
+  Constructor _invocationMirrorConstructor; // cached
+  Procedure _listFrom; // cached
+
+  MethodCallTransformer(this._debug);
+
+  @override
+  TreeNode visitProgram(Program node) {
+    hierarchy = new ClassHierarchy(node);
+    coreTypes = new CoreTypes(node);
+
+    // First move body of all procedures that takes optional positional or named
+    // parameters and record which non-static procedure names have optional
+    // positional arguments.
+    // Do the same for constructors. Then also rewrite constructor initializers
+    // using LocalInitializer and sort named arguments in those initializers
+    for (final library in node.libraries) {
+      for (final procedure in new List<Procedure>.from(library.procedures)) {
+        _moveAndTransformProcedure(procedure);
+      }
+
+      for (final clazz in library.classes) {
+        for (final field in clazz.fields) {
+          blacklistedSelectors.add(field.name.name);
+        }
+
+        for (final procedure in new List<Procedure>.from(clazz.procedures)) {
+          // This call creates new procedures
+          _moveAndTransformProcedure(procedure);
+          _recordNonStaticProcedureAndVariableArguments(procedure);
+        }
+
+        for (final constructor
+            in new List<Constructor>.from(clazz.constructors)) {
+          // This call creates new constructors
+          _moveAndTransformConstructor(constructor);
+        }
+
+        for (final constructor in clazz.constructors) {
+          _rewriteConstructorInitializations(constructor);
+        }
+      }
+    }
+
+    // Rewrite calls
+    node.transformChildren(this);
+
+    // Now for all method calls that was rewritten, make sure those call
+    // destinations actually exist, i.e. for each method with a matching name
+    // where the called-with-arguments is legal, create a stub
+    for (final library in node.libraries) {
+      for (final clazz in library.classes) {
+        for (final procedure in new List<Procedure>.from(clazz.procedures)) {
+          // This call creates new procedures
+          _createNeededNonStaticStubs(procedure);
+        }
+      }
+    }
+
+    return node;
+  }
+
+  @override
+  TreeNode visitProcedure(Procedure node) {
+    if (!_visited.contains(node)) {
+      _visited.add(node);
+      node.transformChildren(this);
+    }
+    return node;
+  }
+
+  @override
+  TreeNode visitConstructor(Constructor node) {
+    if (!_visited.contains(node)) {
+      _visited.add(node);
+      node.transformChildren(this);
+    }
+    return node;
+  }
+
+  @override
+  TreeNode visitStaticInvocation(StaticInvocation node) {
+    node.transformChildren(this);
+    if (!_isMethod(node.target)) return node;
+    if (!_hasAnyOptionalParameters(node.target.function)) return node;
+    if (!_callIsLegal(node.target.function, node.arguments)) return node;
+
+    // Rewrite with let if needed (without named arguments it won't do anything)
+    Expression rewrittenNode = _rewriteWithLetAndSort(node, node.arguments);
+
+    // Create/lookup target and set it as the new target
+    node.target = _getNewTargetForStaticLikeInvocation(
+        node.target, node.arguments, _staticProcedureCalls);
+
+    // Now turn any named parameters into positional parameters
+    _turnNamedArgumentsIntoPositional(node.arguments);
+    return rewrittenNode;
+  }
+
+  @override
+  TreeNode visitDirectMethodInvocation(DirectMethodInvocation node) {
+    node.transformChildren(this);
+    if (!_isMethod(node.target)) return node;
+    if (!_hasAnyOptionalParameters(node.target.function)) return node;
+    if (!_callIsLegal(node.target.function, node.arguments)) return node;
+
+    // Rewrite with let if needed (without named arguments it won't do anything)
+    Expression rewrittenNode = _rewriteWithLetAndSort(node, node.arguments);
+
+    // Create/lookup target and set it as the new target
+    node.target = _getNewTargetForStaticLikeInvocation(
+        node.target, node.arguments, _superProcedureCalls);
+
+    // Now turn any named parameters into positional parameters instead
+    _turnNamedArgumentsIntoPositional(node.arguments);
+    return rewrittenNode;
+  }
+
+  @override
+  TreeNode visitSuperMethodInvocation(SuperMethodInvocation node) {
+    // SuperMethodInvocation was changed since I originally wrote this,
+    // and now it seems to never be called anyway.
+    throw "visitSuperMethodInvocation is not implemented!";
+  }
+
+  @override
+  TreeNode visitMethodInvocation(MethodInvocation node) {
+    node.transformChildren(this);
+    final name = node.name.name;
+
+    // Don't renamed calls to methods that clashes in name with a field
+    // or is called "call".
+    if (blacklistedSelectors.contains(name)) return node;
+
+    // Rewrite with let if needed (without named arguments it won't do anything)
+    Expression rewrittenNode = _rewriteWithLetAndSort(node, node.arguments);
+
+    String argumentsSignature = _createArgumentsSignature(node.arguments);
+    if (node.arguments.named.isEmpty) {
+      // Positional: Don't rewrite if no procedure with that name can be called
+      // with a variable number of arguments, or where the number of arguments
+      // called with here isn't a legal number of arguments to any such
+      // procedure.
+      // Note for named arguments: Named arguments are always rewritten
+      // (except for 'call' methods) so there's no such check
+      final okCounts = _methodToLegalPositionalArgumentCount[name];
+
+      if (okCounts == null ||
+          !okCounts.contains(node.arguments.positional.length)) {
+        return node;
+      }
+    }
+
+    // Rewrite this call
+    final originalName = node.name;
+    node.name = _createName(node.name, argumentsSignature);
+
+    // Remember that we rewrote this call
+    _rewrittenMethods
+        .putIfAbsent(originalName, () => new Set<String>())
+        .add(argumentsSignature);
+
+    // Now turn any named parameters into positional parameters instead
+    _turnNamedArgumentsIntoPositional(node.arguments);
+    return rewrittenNode;
+  }
+
+  @override
+  TreeNode visitConstructorInvocation(ConstructorInvocation node) {
+    node.transformChildren(this);
+    if (!_callIsLegal(node.target.function, node.arguments)) return node;
+
+    Expression rewrittenNode;
+    if (node.isConst) {
+      // Sort named arguments by name => it's const so there's no side-effects!
+      // but DO NOT rewrite with let!
+      node.arguments.named.sort((a, b) => a.name.compareTo(b.name));
+      rewrittenNode = node;
+    } else {
+      rewrittenNode = _rewriteWithLetAndSort(node, node.arguments);
+    }
+    node.target = _getNewTargetForConstructor(node.target, node.arguments);
+
+    // Now turn named parameters into positional parameters instead
+    _turnNamedArgumentsIntoPositional(node.arguments);
+    return rewrittenNode;
+  }
+
+  @override
+  TreeNode visitSuperInitializer(SuperInitializer node) {
+    // Note that sorting was done in _rewriteConstructorInitializations
+    node.transformChildren(this);
+    if (!_callIsLegal(node.target.function, node.arguments)) return node;
+
+    node.target = _getNewTargetForConstructor(node.target, node.arguments);
+
+    // Now turn named parameters into positional parameters instead
+    _turnNamedArgumentsIntoPositional(node.arguments);
+    return node;
+  }
+
+  @override
+  TreeNode visitRedirectingInitializer(RedirectingInitializer node) {
+    // Note that sorting was done in _rewriteConstructorInitializations
+    node.transformChildren(this);
+    if (!_callIsLegal(node.target.function, node.arguments)) return node;
+
+    node.target = _getNewTargetForConstructor(node.target, node.arguments);
+
+    // Now turn named parameters into positional parameters instead
+    _turnNamedArgumentsIntoPositional(node.arguments);
+    return node;
+  }
+
+  /// Gets the new target for an invocation, using cache or creating a new one.
+  ///
+  /// Assumes that any let-rewrite, named argument sorting etc has been done
+  /// already.
+  Procedure _getNewTargetForStaticLikeInvocation(Procedure target,
+      Arguments arguments, Map<Procedure, Map<String, Procedure>> cache) {
+    final createdProcedures = cache.putIfAbsent(target, () => {});
+
+    // Rewrite target
+    final argumentsSignature = _createArgumentsSignature(arguments);
+    return createdProcedures[argumentsSignature] ??
+        _createAndCacheInvocationProcedure(
+            argumentsSignature,
+            arguments.positional.length,
+            arguments.named.map((e) => e.name).toList(),
+            target,
+            _movedBodies[target],
+            createdProcedures,
+            true);
+  }
+
+  /// Rewrite the [Argument]s turning named arguments into positional arguments.
+  ///
+  /// Note that if the [Argument]s does not take any named parameters this
+  /// method does nothing.
+  void _turnNamedArgumentsIntoPositional(Arguments arguments) {
+    for (final named in arguments.named) {
+      arguments.positional.add(named.value..parent = arguments);
+    }
+    arguments.named.clear();
+  }
+
+  /// Gets the new target for an invocation, using cache or creating a new one.
+  ///
+  /// Assumes that any let-rewrite, named argument sorting etc has been done
+  /// already.
+  Constructor _getNewTargetForConstructor(
+      Constructor target, Arguments arguments) {
+    if (!_isNotExternal(target)) return target;
+    if (!_hasAnyOptionalParameters(target.function)) return target;
+
+    final argumentsSignature = _createArgumentsSignature(arguments);
+    final createdConstructor = _constructorCalls.putIfAbsent(target, () => {});
+    return createdConstructor[argumentsSignature] ??
+        _createAndCacheInvocationConstructor(
+            argumentsSignature,
+            arguments.positional.length,
+            arguments.named.map((e) => e.name).toList(),
+            target,
+            _movedConstructors[target],
+            createdConstructor,
+            true);
+  }
+
+  /// Create a signature for the [Arguments].
+  ///
+  /// Assumes that any needed sorting etc has already been done.
+  ///
+  /// Looks like x%positionalCount%named --- but it shouldn't matter if always
+  /// using these methods
+  String _createArgumentsSignature(Arguments arguments) {
+    String namedString = arguments.named.map((e) => e.name).join("%");
+    return "${arguments.positional.length}%$namedString";
+  }
+
+  /// Parse the argument signature.
+  ///
+  /// First element will be the string representation of the number of
+  /// positional arguments used.
+  /// The rest will be the named arguments, except that with no named arguments
+  /// there still is a 2nd entry: the empty string...
+  List<String> _parseArgumentsSignature(String argumentsSignature) {
+    return argumentsSignature.split("%");
+  }
+
+  /// Rewrites an expression with let, replacing expressions in the [Arguments].
+  ///
+  /// Sorts the named arguments after rewriting with let.
+  ///
+  /// Note that this method does nothing if there are no named arguments, or the
+  /// named arguments list contain only a single named argument as any sorting
+  /// would have no effect. As such, the let-rewrite will also have no effect.
+  /// In such a case the return value is [original].
+  Expression _rewriteWithLetAndSort(Expression original, Arguments arguments) {
+    final named = arguments.named;
+
+    // Only bother if names can be unordered
+    if (named.length < 2) return original;
+
+    // Rewrite named with let in given order
+    Let let;
+    for (int i = named.length - 1; i >= 0; i--) {
+      VariableDeclaration letDeclaration =
+          new VariableDeclaration.forValue(named[i].value);
+      named[i].value = new VariableGet(letDeclaration)..parent = arguments;
+      let = new Let(letDeclaration, let ?? original);
+    }
+
+    // Sort named arguments by name
+    named.sort((a, b) => a.name.compareTo(b.name));
+
+    // Now also add the given positional arguments into the let
+    final expressions = arguments.positional;
+    for (int i = expressions.length - 1; i >= 0; i--) {
+      VariableDeclaration letDeclaration =
+          new VariableDeclaration.forValue(expressions[i]);
+      expressions[i] = new VariableGet(letDeclaration)..parent = arguments;
+      let = new Let(letDeclaration, let ?? original);
+    }
+
+    return let;
+  }
+
+  /// Creates all needed stubs for non static procedures.
+  ///
+  /// More specifically: If calls have been made to a procedure with the same
+  /// name as this procedure with both 1 and 2 arguments, where both of these
+  /// are legal inputs to this procedure, create stubs for both of them,
+  /// each of which calls with whatever default parameter values are defined for
+  /// the non-given arguments.
+  void _createNeededNonStaticStubs(Procedure procedure) {
+    final incomingCalls = _rewrittenMethods[procedure.name];
+    if (incomingCalls != null &&
+        procedure.kind == ProcedureKind.Method &&
+        !procedure.isStatic) {
+      final createdOnSuper = _superProcedureCalls[procedure];
+      final names =
+          procedure.function.namedParameters.map((e) => e.name).toSet();
+
+      // A procedure with this name was called on at least one object with
+      // an argument signature like any in [incomingCalls]
+      nextArgumentSignature:
+      for (final argumentsSignature in incomingCalls) {
+        // Skip if it was created in a super call already
+        if (createdOnSuper != null &&
+            createdOnSuper.containsKey(argumentsSignature)) {
+          continue;
+        }
+
+        final elements = _parseArgumentsSignature(argumentsSignature);
+        int positional = int.parse(elements[0]);
+
+        if (positional < procedure.function.requiredParameterCount ||
+            positional > procedure.function.positionalParameters.length) {
+          // We don't take that number of positional parameters!
+          // Call noSuchMethod in case anyone called on object with wrong
+          // parameters, but where superclass does take these parameters.
+          _createNoSuchMethodStub(
+              argumentsSignature, positional, elements.sublist(1), procedure);
+          continue;
+        }
+
+        if (elements.length > 2 || elements[1] != "") {
+          // Named: Could the call be for this method?
+          for (int i = 1; i < elements.length; i++) {
+            String name = elements[i];
+            // Using a name that we don't have?
+            if (!names.contains(name)) {
+              // Call noSuchMethod in case anyone called on object with wrong
+              // parameters, but where superclass does take these parameters.
+              _createNoSuchMethodStub(argumentsSignature, positional,
+                  elements.sublist(1), procedure);
+              continue nextArgumentSignature;
+            }
+          }
+        }
+
+        // Potential legal call => make stub
+        // Note the ?? here: E.g. contains on list doesn't take optionals so it
+        // wasn't moved, but calls were rewritten because contains on string
+        // takes either 1 or 2 arguments.
+        final destination = _movedBodies[procedure] ?? procedure;
+        _createAndCacheInvocationProcedure(argumentsSignature, positional,
+            elements.sublist(1), procedure, destination, {}, false);
+      }
+    }
+  }
+
+  /// Records how this procedure can be called (if it is non-static).
+  ///
+  /// More specifically: Assuming that the procedure given is non-static taking
+  /// a variable number of positional parameters, record all number of arguments
+  /// that is legal, e.g. foo(int a, [int b]) is legal for 1 and 2 parameters.
+  /// If it takes named parameters, remember how many positional there is so
+  /// we also know to rewrite calls without the named arguments.
+  void _recordNonStaticProcedureAndVariableArguments(Procedure procedure) {
+    if (_isMethod(procedure) &&
+        !procedure.isStatic &&
+        _hasAnyOptionalParameters(procedure.function)) {
+      final name = procedure.name.name;
+      final okCounts = _methodToLegalPositionalArgumentCount.putIfAbsent(
+          name, () => new Set<int>());
+      for (int i = procedure.function.requiredParameterCount;
+          i <= procedure.function.positionalParameters.length;
+          i++) {
+        okCounts.add(i);
+      }
+    }
+  }
+
+  /// Move body of procedure to new procedure and call that from this procedure.
+  ///
+  /// More specifically: For all procedures with optional positional parameters,
+  /// or named parameters, create a new procedure without optional positional
+  /// parameters and named parameters and move the body of the original
+  /// procedure into this new procedure.
+  /// Then make the body of the original procedure call the new procedure.
+  ///
+  /// The idea is that all rewrites should call the moved procedure instead,
+  /// bypassing the optional/named arguments entirely.
+  void _moveAndTransformProcedure(Procedure procedure) {
+    if (_isMethod(procedure) && _hasAnyOptionalParameters(procedure.function)) {
+      final function = procedure.function;
+
+      // Create variable lists
+      final newParameterDeclarations = <VariableDeclaration>[];
+      final newNamedParameterDeclarations = <VariableDeclaration>[];
+      final newParameterVariableGets = <Expression>[];
+      final targetParameters = function.positionalParameters;
+      final targetNamedParameters = function.namedParameters;
+      _moveVariableInitialization(
+          targetParameters,
+          targetNamedParameters,
+          newParameterDeclarations,
+          newNamedParameterDeclarations,
+          newParameterVariableGets,
+          procedure.function);
+
+      // Create new procedure looking like the old one
+      // (with the old body and parameters)
+      FunctionNode functionNode = _createShallowFunctionCopy(function);
+      final newProcedure = new Procedure(
+          _createOriginalName(procedure), ProcedureKind.Method, functionNode,
+          isAbstract: procedure.isAbstract,
+          isStatic: procedure.isStatic,
+          isConst: procedure.isConst,
+          fileUri: procedure.fileUri);
+
+      // Add procedure to the code
+      _addMember(procedure, newProcedure);
+
+      // Map moved body
+      _movedBodies[procedure] = newProcedure;
+
+      // Transform original procedure
+      if (procedure.isAbstract && procedure.function.body == null) {
+        // do basically nothing then
+        procedure.function.positionalParameters = newParameterDeclarations;
+        procedure.function.namedParameters = newNamedParameterDeclarations;
+      } else if (procedure.isStatic) {
+        final expression = new StaticInvocation(
+            newProcedure, new Arguments(newParameterVariableGets));
+        final statement = new ReturnStatement(expression)
+          ..parent = procedure.function;
+        procedure.function.body = statement;
+        procedure.function.positionalParameters = newParameterDeclarations;
+        procedure.function.namedParameters = newNamedParameterDeclarations;
+      } else {
+        final expression = new DirectMethodInvocation(new ThisExpression(),
+            newProcedure, new Arguments(newParameterVariableGets));
+        final statement = new ReturnStatement(expression)
+          ..parent = procedure.function;
+        procedure.function.body = statement;
+        procedure.function.positionalParameters = newParameterDeclarations;
+        procedure.function.namedParameters = newNamedParameterDeclarations;
+      }
+
+      if (_debug) {
+        // Debug flag set: Print something to the terminal before returning to
+        // easily detect if rewrites are missing.
+        Expression debugPrint = _getPrintExpression(
+            "DEBUG! Procedure shouldn't have been called...", procedure);
+        procedure.function.body = new Block(
+            [new ExpressionStatement(debugPrint), procedure.function.body])
+          ..parent = procedure.function;
+      }
+
+      // Mark original procedure as seen (i.e. don't transform it further)
+      _visited.add(procedure);
+    }
+  }
+
+  /// Rewrite constructor initializers by introducing variables and sorting.
+  ///
+  /// For any* [SuperInitializer] or [RedirectingInitializer], extract the
+  /// parameters, put them into variables, then sorting the named parameters.
+  /// The idea is to sort the named parameters without changing any invocation
+  /// order.
+  ///
+  /// * only with at least 2 named arguments, otherwise sorting would do nothing
+  void _rewriteConstructorInitializations(Constructor constructor) {
+    if (_isNotExternal(constructor)) {
+      // Basically copied from "super_calls.dart"
+      List<Initializer> initializers = constructor.initializers;
+      int foundIndex = -1;
+      Arguments arguments;
+      for (int i = initializers.length - 1; i >= 0; --i) {
+        Initializer initializer = initializers[i];
+        if (initializer is SuperInitializer) {
+          foundIndex = i;
+          arguments = initializer.arguments;
+          break;
+        } else if (initializer is RedirectingInitializer) {
+          foundIndex = i;
+          arguments = initializer.arguments;
+          break;
+        }
+      }
+      if (foundIndex == -1) return;
+
+      // Rewrite using variables if using named parameters (so we can sort them)
+      // (note that with 1 named it cannot be unsorted so we don't bother)
+      if (arguments.named.length < 2) return;
+
+      int argumentCount = arguments.positional.length + arguments.named.length;
+
+      // Make room for [argumentCount] [LocalInitializer]s before the
+      // super/redirector call.
+      initializers.length += argumentCount;
+      initializers.setRange(
+          foundIndex + argumentCount, // destination start (inclusive)
+          initializers.length, // destination end (exclusive)
+          initializers, // source list
+          foundIndex); // source start index
+
+      // Fill in the [argumentCount] reserved slots with the evaluation
+      // expressions of the arguments to the super/redirector constructor call
+      int storeIndex = foundIndex;
+      for (int i = 0; i < arguments.positional.length; ++i) {
+        var variable =
+            new VariableDeclaration.forValue(arguments.positional[i]);
+        arguments.positional[i] = new VariableGet(variable)..parent = arguments;
+        initializers[storeIndex++] = new LocalInitializer(variable)
+          ..parent = constructor;
+      }
+      for (int i = 0; i < arguments.named.length; ++i) {
+        NamedExpression argument = arguments.named[i];
+        var variable = new VariableDeclaration.forValue(argument.value);
+        arguments.named[i].value = new VariableGet(variable)..parent = argument;
+        initializers[storeIndex++] = new LocalInitializer(variable)
+          ..parent = constructor;
+      }
+
+      // Sort the named arguments
+      arguments.named.sort((a, b) => a.name.compareTo(b.name));
+    }
+  }
+
+  /// Move body of constructor to new one and call that from this one.
+  ///
+  /// More specifically: For all constructors with optional positional
+  /// parameters, or named parameters, create a new constructor without optional
+  /// positional parameters and named parameters, and move the body of the
+  /// original constructor into this new constructor.
+  /// Then make the original constructor redirect to the new constructor.
+  ///
+  /// The idea is that all rewrites should call the moved constructor instead,
+  /// bypassing the optional/named arguments entirely.
+  ///
+  /// This method is very similar to _moveAndTransformProcedure
+  void _moveAndTransformConstructor(Constructor constructor) {
+    if (_isNotExternal(constructor) &&
+        _hasAnyOptionalParameters(constructor.function)) {
+      final function = constructor.function;
+
+      // Create variable lists
+      final newParameterDeclarations = <VariableDeclaration>[];
+      final newNamedParameterDeclarations = <VariableDeclaration>[];
+      final newParameterVariableGets = <Expression>[];
+      final targetParameters = function.positionalParameters;
+      final targetNamedParameters = function.namedParameters;
+      _moveVariableInitialization(
+          targetParameters,
+          targetNamedParameters,
+          newParameterDeclarations,
+          newNamedParameterDeclarations,
+          newParameterVariableGets,
+          constructor.function);
+
+      // Create new constructor looking like the old one
+      // (with the old body, parameters and initializers)
+      FunctionNode functionNode = _createShallowFunctionCopy(function);
+      final newConstructor = new Constructor(functionNode,
+          name: _createOriginalName(constructor),
+          isConst: constructor.isConst,
+          isExternal: constructor.isExternal,
+          initializers: constructor.initializers);
+
+      // Add constructor to the code
+      _addMember(constructor, newConstructor);
+
+      // Map moved body
+      _movedConstructors[constructor] = newConstructor;
+
+      // Transform original constructor
+      constructor.function.body = null;
+      constructor.function.positionalParameters = newParameterDeclarations;
+      constructor.function.namedParameters = newNamedParameterDeclarations;
+      constructor.initializers = [
+        new RedirectingInitializer(
+            newConstructor, new Arguments(newParameterVariableGets))
+          ..parent = constructor
+      ];
+
+      if (_debug) {
+        // Debug flag set: Print something to the terminal before returning to
+        // easily detect if rewrites are missing.
+        Expression debugPrint = _getPrintExpression(
+            "DEBUG! Constructor shouldn't have been called...", constructor);
+        var variable = new VariableDeclaration.forValue(debugPrint);
+        final debugInitializer = new LocalInitializer(variable)
+          ..parent = constructor;
+        final redirector = constructor.initializers[0];
+        constructor.initializers = [debugInitializer, redirector];
+      }
+
+      // Mark original procedure as seen (i.e. don't transform it further)
+      _visited.add(constructor);
+    }
+  }
+
+  /// Creates a new [FunctionNode] based on the given one.
+  ///
+  /// Parameters are taken directly (i.e. after returning the parameters will
+  /// have a new parent (the returned value), but still be referenced in the
+  /// original [FunctionNode].
+  /// The same goes for the body of the function.
+  /// The caller should take steps to remedy this after this call.
+  ///
+  /// The parameters are no longer optional and named parameters have been
+  /// sorted and turned into regular parameters in the returned [FunctionNode].
+  FunctionNode _createShallowFunctionCopy(FunctionNode function) {
+    final newParameters =
+        new List<VariableDeclaration>.from(function.positionalParameters);
+    final named = new List<VariableDeclaration>.from(function.namedParameters);
+    named.sort((a, b) => a.name.compareTo(b.name));
+    newParameters.addAll(named);
+    final functionNode = new FunctionNode(function.body,
+        positionalParameters: newParameters,
+        namedParameters: [],
+        requiredParameterCount: newParameters.length,
+        returnType: function.returnType,
+        asyncMarker: function.asyncMarker);
+    return functionNode;
+  }
+
+  /// Creates new variables, moving old initializers into them
+  ///
+  /// Specifically: Given lists for output, create new variables based on
+  /// original parameters. Any new variable will receive the original variables
+  /// initializer, and the original variable will have its initializer set to
+  /// null.
+  /// Named parameters have been sorted in [newParameterVariableGets].
+  void _moveVariableInitialization(
+      List<VariableDeclaration> originalParameters,
+      List<VariableDeclaration> originalNamedParameters,
+      List<VariableDeclaration> newParameterDeclarations,
+      List<VariableDeclaration> newNamedParameterDeclarations,
+      List<Expression> newParameterVariableGets,
+      TreeNode newStuffParent) {
+    for (final orgVar in originalParameters) {
+      final variableDeclaration = new VariableDeclaration(orgVar.name,
+          initializer: orgVar.initializer,
+          type: orgVar.type,
+          isFinal: orgVar.isFinal,
+          isConst: orgVar.isConst)..parent = newStuffParent;
+      variableDeclaration.initializer?.parent = variableDeclaration;
+      newParameterDeclarations.add(variableDeclaration);
+      orgVar.initializer = null;
+      newParameterVariableGets.add(new VariableGet(variableDeclaration));
+    }
+
+    // Named expressions in newParameterVariableGets should be sorted
+    final tmp = new List<_Pair<String, Expression>>();
+    for (final orgVar in originalNamedParameters) {
+      final variableDeclaration = new VariableDeclaration(orgVar.name,
+          initializer: orgVar.initializer,
+          type: orgVar.type,
+          isFinal: orgVar.isFinal,
+          isConst: orgVar.isConst)..parent = newStuffParent;
+      variableDeclaration.initializer?.parent = variableDeclaration;
+      newNamedParameterDeclarations.add(variableDeclaration);
+      orgVar.initializer = null;
+      tmp.add(new _Pair(orgVar.name, new VariableGet(variableDeclaration)));
+    }
+    tmp.sort((a, b) => a.key.compareTo(b.key));
+    for (final item in tmp) {
+      newParameterVariableGets.add(item.value);
+    }
+  }
+
+  /// Creates a stub redirecting to noSuchMethod.
+  ///
+  /// Needed because if B extends A, both have a foo method, but taking
+  /// different optional parameters, a call on an instance of B with parameters
+  /// for A should actually result in a noSuchMethod call, but if only A has
+  /// the rewritten method name, that method will be called...
+  /// TODO: We only have to create these stubs for arguments that a procedures
+  /// super allows, otherwise it will become a noSuchMethod automatically!
+  Procedure _createNoSuchMethodStub(
+      String argumentsSignature,
+      int positionalCount,
+      List<String> givenNamedParameters,
+      Procedure existing) {
+    // Build parameter lists
+    final newParameterDeclarations = <VariableDeclaration>[];
+    final newParameterVariableGets = <Expression>[];
+    for (int i = 0; i < positionalCount + givenNamedParameters.length; i++) {
+      final variableDeclaration = new VariableDeclaration("v%$i");
+      newParameterDeclarations.add(variableDeclaration);
+      newParameterVariableGets.add(new VariableGet(variableDeclaration));
+    }
+
+    var procedureName = _createName(existing.name, argumentsSignature);
+
+    // Find noSuchMethod to call
+    Member noSuchMethod = hierarchy.getDispatchTarget(
+        existing.enclosingClass, new Name("noSuchMethod"));
+    Arguments argumentsToNoSuchMethod;
+
+    if (noSuchMethod.function.positionalParameters.length == 1 &&
+        noSuchMethod.function.namedParameters.isEmpty) {
+      // We have a correct noSuchMethod method.
+      ConstructorInvocation invocation = _createInvocation(
+          procedureName.name, new Arguments(newParameterVariableGets));
+      argumentsToNoSuchMethod = new Arguments([invocation]);
+    } else {
+      // Get noSuchMethod on Object then...
+      noSuchMethod = hierarchy.getDispatchTarget(
+          hierarchy.rootClass, new Name("noSuchMethod"));
+      ConstructorInvocation invocation = _createInvocation(
+          procedureName.name, new Arguments(newParameterVariableGets));
+      ConstructorInvocation invocationPrime =
+          _createInvocation("noSuchMethod", new Arguments([invocation]));
+      argumentsToNoSuchMethod = new Arguments([invocationPrime]);
+    }
+
+    // Create return statement to call noSuchMethod
+    ReturnStatement statement;
+    final expression = new DirectMethodInvocation(
+        new ThisExpression(), noSuchMethod, argumentsToNoSuchMethod);
+    statement = new ReturnStatement(expression);
+
+    // Build procedure
+    final functionNode = new FunctionNode(statement,
+        positionalParameters: newParameterDeclarations,
+        namedParameters: [],
+        requiredParameterCount: newParameterDeclarations.length,
+        returnType: existing.function.returnType,
+        asyncMarker: existing.function.asyncMarker);
+    final procedure = new Procedure(
+        procedureName, ProcedureKind.Method, functionNode,
+        isStatic: existing.isStatic, fileUri: existing.fileUri);
+
+    // Add procedure to the code
+    _addMember(existing, procedure);
+
+    // Mark the new procedure as visited already (i.e. don't rewrite it again!)
+    _visited.add(procedure);
+
+    return procedure;
+  }
+
+  /// Creates an "new _InvocationMirror(...)" invocation.
+  ConstructorInvocation _createInvocation(
+      String methodName, Arguments callArguments) {
+    if (_invocationMirrorConstructor == null) {
+      Class clazz = coreTypes.getCoreClass('dart:core', '_InvocationMirror');
+      _invocationMirrorConstructor = clazz.constructors[0];
+    }
+
+    // The _InvocationMirror constructor takes the following arguments:
+    // * Method name (a string).
+    // * An arguments descriptor - a list consisting of:
+    //   - number of arguments (including receiver).
+    //   - number of positional arguments (including receiver).
+    //   - pairs (2 entries in the list) of
+    //     * named arguments name.
+    //     * index of named argument in arguments list.
+    // * A list of arguments, where the first ones are the positional arguments.
+    // * Whether it's a super invocation or not.
+
+    int numPositionalArguments = callArguments.positional.length + 1;
+    int numArguments = numPositionalArguments + callArguments.named.length;
+    List<Expression> argumentsDescriptor = [
+      new IntLiteral(numArguments),
+      new IntLiteral(numPositionalArguments)
+    ];
+    List<Expression> arguments = [];
+    arguments.add(new ThisExpression());
+    for (Expression pos in callArguments.positional) {
+      arguments.add(pos);
+    }
+    for (NamedExpression named in callArguments.named) {
+      argumentsDescriptor.add(new StringLiteral(named.name));
+      argumentsDescriptor.add(new IntLiteral(arguments.length));
+      arguments.add(named.value);
+    }
+
+    return new ConstructorInvocation(
+        _invocationMirrorConstructor,
+        new Arguments([
+          new StringLiteral(methodName),
+          _fixedLengthList(argumentsDescriptor),
+          _fixedLengthList(arguments),
+          new BoolLiteral(false)
+        ]));
+  }
+
+  /// Create a fixed length list containing given expressions.
+  Expression _fixedLengthList(List<Expression> list) {
+    if (_listFrom == null) {
+      Class clazz = coreTypes.getCoreClass('dart:core', 'List');
+      _listFrom = clazz.procedures.firstWhere((c) => c.name.name == "from");
+    }
+    return new StaticInvocation(
+        _listFrom,
+        new Arguments([new ListLiteral(list)],
+            named: [new NamedExpression("growable", new BoolLiteral(false))],
+            types: [const DynamicType()]));
+  }
+
+  /// Creates a new procedure taking given arguments, caching it.
+  ///
+  /// Copies any non-given default values for parameters into the new procedure
+  /// to be able to call the [realTarget] without using optionals and named
+  /// parameters.
+  Procedure _createAndCacheInvocationProcedure(
+      String argumentsSignature,
+      int positionalCount,
+      List<String> givenNamedParameters,
+      Procedure target,
+      Procedure realTarget,
+      Map<String, Procedure> createdProcedures,
+      bool doSpecialCaseForAllParameters) {
+    // Special case: Calling with all parameters
+    if (doSpecialCaseForAllParameters &&
+        positionalCount == target.function.positionalParameters.length &&
+        givenNamedParameters.length == target.function.namedParameters.length) {
+      // We don't cache this procedure as this could make it look like
+      // something with name argumentsSignature actually exists
+      // while it doesn't (which is bad as we could then decide that we don't
+      // need to create a stub even though we do!)
+      return realTarget;
+    }
+
+    // Create and cache (save) constructor
+
+    // Build parameter lists
+    final newParameterDeclarations = <VariableDeclaration>[];
+    final newParameterVariableGets = <Expression>[];
+    _extractAndCreateParameters(positionalCount, newParameterDeclarations,
+        newParameterVariableGets, target, givenNamedParameters);
+
+    // Create return statement to call real target
+    ReturnStatement statement;
+    if (target.isAbstract && target.function?.body == null) {
+      // statement should just be null then
+    } else if (target.isStatic) {
+      final expression = new StaticInvocation(
+          realTarget, new Arguments(newParameterVariableGets));
+      statement = new ReturnStatement(expression);
+    } else {
+      final expression = new DirectMethodInvocation(new ThisExpression(),
+          realTarget, new Arguments(newParameterVariableGets));
+      statement = new ReturnStatement(expression);
+    }
+
+    // Build procedure
+    final functionNode = new FunctionNode(statement,
+        positionalParameters: newParameterDeclarations,
+        namedParameters: [],
+        requiredParameterCount: newParameterDeclarations.length,
+        returnType: target.function.returnType,
+        asyncMarker: target.function.asyncMarker);
+    final procedure = new Procedure(
+        _createName(target.name, argumentsSignature),
+        ProcedureKind.Method,
+        functionNode,
+        isAbstract: target.isAbstract,
+        isStatic: target.isStatic,
+        isConst: target.isConst,
+        fileUri: target.fileUri);
+
+    // Add procedure to the code
+    _addMember(target, procedure);
+
+    // Cache it for future reference
+    createdProcedures[argumentsSignature] = procedure;
+
+    // Mark the new procedure as visited already (i.e. don't rewrite it again!)
+    _visited.add(procedure);
+
+    return procedure;
+  }
+
+  /// Creates a new constructor taking given arguments, caching it.
+  ///
+  /// Copies any non-given default values for parameters into the new
+  /// constructor to be able to call the [realTarget] without using optionals
+  /// and named parameters.
+  Constructor _createAndCacheInvocationConstructor(
+      String argumentsSignature,
+      int positionalCount,
+      List<String> givenNamedParameters,
+      Constructor target,
+      Constructor realTarget,
+      Map<String, Constructor> createdConstructor,
+      bool doSpecialCaseForAllParameters) {
+    // Special case: Calling with all parameters
+    if (doSpecialCaseForAllParameters &&
+        positionalCount == target.function.positionalParameters.length &&
+        givenNamedParameters.length == target.function.namedParameters.length) {
+      createdConstructor[argumentsSignature] = realTarget;
+      return realTarget;
+    }
+
+    // Create and cache (save) constructor
+
+    // Build parameter lists
+    final newParameterDeclarations = <VariableDeclaration>[];
+    final newParameterVariableGets = <Expression>[];
+    _extractAndCreateParameters(positionalCount, newParameterDeclarations,
+        newParameterVariableGets, target, givenNamedParameters);
+
+    // Build constructor
+    final functionNode = new FunctionNode(null,
+        positionalParameters: newParameterDeclarations,
+        namedParameters: [],
+        requiredParameterCount: newParameterDeclarations.length,
+        returnType: target.function.returnType,
+        asyncMarker: target.function.asyncMarker);
+    final constructor = new Constructor(functionNode,
+        name: _createName(target.name, argumentsSignature),
+        isConst: target.isConst,
+        isExternal: target.isExternal,
+        initializers: [
+          new RedirectingInitializer(
+              realTarget, new Arguments(newParameterVariableGets))
+        ]);
+
+    // Add procedure to the code
+    _addMember(target, constructor);
+
+    // Cache it for future reference
+    createdConstructor[argumentsSignature] = constructor;
+
+    // Mark the new procedure as visited already (i.e. don't rewrite it again!)
+    _visited.add(constructor);
+
+    return constructor;
+  }
+
+  /// Extracts and creates parameters into the first two given lists.
+  ///
+  /// What is done:
+  /// Step 1: Re-create the parameters given (i.e. the non-optional positional
+  /// ones) - i.e. create a new variable with the same name etc, put it in
+  /// [newParameterDeclarations]; create VariableGet for that and put it in
+  /// [newParameterVariableGets]
+  /// Step 2: Re-create the positional parameters NOT given, i.e. insert
+  /// defaults and add to [newParameterVariableGets] only.
+  /// Step 3: Re-create the named arguments (in sorted order). For actually
+  /// given named parameters, do as in step 1, for not-given named parameters
+  /// do as in step 2.
+  ///
+  /// NOTE: [newParameterDeclarations] and [newParameterVariableGets] are OUTPUT
+  /// lists.
+  void _extractAndCreateParameters(
+      int positionalCount,
+      List<VariableDeclaration> newParameterDeclarations,
+      List<Expression> newParameterVariableGets,
+      Member target,
+      List<String> givenNamedParameters) {
+    // First re-create the parameters given (i.e. the non-optional positional ones)
+    final targetParameters = target.function.positionalParameters;
+    positionalCount = math.min(positionalCount, targetParameters.length);
+    for (int i = 0; i < positionalCount; i++) {
+      final orgVar = targetParameters[i];
+      final variableDeclaration = new VariableDeclaration(orgVar.name,
+          type: orgVar.type, isFinal: orgVar.isFinal, isConst: orgVar.isConst);
+      newParameterDeclarations.add(variableDeclaration);
+      newParameterVariableGets.add(new VariableGet(variableDeclaration));
+    }
+
+    // Default parameters for the rest of them
+    _fillInPositionalParameters(
+        positionalCount, target, newParameterVariableGets);
+
+    // Then all named parameters (given here or not)
+    final orgNamed =
+        new List<VariableDeclaration>.from(target.function.namedParameters);
+    orgNamed.sort((a, b) => a.name.compareTo(b.name));
+    final givenArgumentsIterator = givenNamedParameters.iterator;
+    givenArgumentsIterator.moveNext();
+    for (VariableDeclaration named in orgNamed) {
+      if (givenArgumentsIterator.current == named.name) {
+        // We have that one: Use it and move the iterator
+        final variableDeclaration = new VariableDeclaration(named.name);
+        newParameterDeclarations.add(variableDeclaration);
+        newParameterVariableGets.add(new VariableGet(variableDeclaration));
+        givenArgumentsIterator.moveNext();
+      } else {
+        // We don't have that one: Fill it in
+        _fillInSingleParameter(named, newParameterVariableGets, target);
+      }
+    }
+  }
+
+  /// Adds the new member the same place as the existing member
+  void _addMember(Member existingMember, Member newMember) {
+    if (existingMember.enclosingClass != null) {
+      existingMember.enclosingClass.addMember(newMember);
+    } else {
+      existingMember.enclosingLibrary.addMember(newMember);
+    }
+  }
+
+  /// Create expressions based on the default values from the given [Member].
+  ///
+  /// More specifically: static gets and nulls will be "copied" whereas other
+  /// things (e.g. literals or things like "a+b") will be moved from the
+  /// original member as argument initializers to const fields and both the
+  /// original member and the expression-copy will use static gets to these.
+  void _fillInPositionalParameters(
+      int startFrom, Member copyFrom, List<Expression> fillInto) {
+    final targetParameters = copyFrom.function.positionalParameters;
+    for (int i = startFrom; i < targetParameters.length; i++) {
+      final parameter = targetParameters[i];
+      _fillInSingleParameter(parameter, fillInto, copyFrom);
+    }
+  }
+
+  /// Create expression based on the default values from the given variable.
+  ///
+  /// More specifically: a static get or null will be "copied" whereas other
+  /// things (e.g. literals or things like "a+b") will be moved from the
+  /// original member as an argument initializer to a const field and both the
+  /// original member and the expression-copy will use a static get to it.
+  void _fillInSingleParameter(VariableDeclaration parameter,
+      List<Expression> fillInto, Member copyFrom) {
+    if (parameter.initializer is StaticGet) {
+      // Reference to const => recreate it
+      StaticGet staticGet = parameter.initializer;
+      fillInto.add(new StaticGet(staticGet.target));
+    } else if (parameter.initializer == null) {
+      // No default given => output null
+      fillInto.add(new NullLiteral());
+    } else if (parameter.initializer is IntLiteral) {
+      // Int literal => recreate (or else class ByteBuffer in typed_data will
+      // get 2 fields and the C++ code will complain!)
+      IntLiteral value = parameter.initializer;
+      fillInto.add(new IntLiteral(value.value));
+    } else {
+      // Advanced stuff => move to static const field and reference that
+      final initializer = parameter.initializer;
+      final f = new Field(
+          new Name('${copyFrom.name.name}%_${parameter.name}',
+              copyFrom.enclosingLibrary),
+          type: parameter.type,
+          initializer: initializer,
+          isFinal: false,
+          isConst: true,
+          isStatic: true,
+          fileUri: copyFrom.enclosingClass?.fileUri ??
+              copyFrom.enclosingLibrary.fileUri);
+      initializer.parent = f;
+
+      // Add field to the code
+      if (copyFrom.enclosingClass != null) {
+        copyFrom.enclosingClass.addMember(f);
+      } else {
+        copyFrom.enclosingLibrary.addMember(f);
+      }
+
+      // Use it at the call site
+      fillInto.add(new StaticGet(f));
+
+      // Now replace the initializer in the method to a StaticGet
+      parameter.initializer = new StaticGet(f)..parent = parameter;
+    }
+  }
+
+  /// Create an "original name" for a member.
+  ///
+  /// Specifically, for a member "x" just returns "x%original";
+  Name _createOriginalName(Member member) {
+    return new Name("${member.name.name}%original", member.enclosingLibrary);
+  }
+
+  /// Create a [Name] based on current name and argument signature.
+  Name _createName(Name name, String argumentsSignature) {
+    String nameString = '${name.name}%$argumentsSignature';
+    return new Name(nameString, name.library);
+  }
+
+  /// Is the procedure a method?
+  bool _isMethod(Procedure procedure) => procedure.kind == ProcedureKind.Method;
+
+  /// Is the procedure NOT marked as external?
+  bool _isNotExternal(Constructor constructor) => !constructor.isExternal;
+
+  /// Does the target function have any optional arguments? (positional/named)
+  bool _hasAnyOptionalParameters(FunctionNode targetFunction) =>
+      _hasOptionalParameters(targetFunction) ||
+      _hasNamedParameters(targetFunction);
+
+  /// Does the target function have optional positional arguments?
+  bool _hasOptionalParameters(FunctionNode targetFunction) =>
+      targetFunction.positionalParameters.length >
+      targetFunction.requiredParameterCount;
+
+  /// Does the target function have named parameters?
+  bool _hasNamedParameters(FunctionNode targetFunction) =>
+      targetFunction.namedParameters.isNotEmpty;
+
+  bool _callIsLegal(FunctionNode targetFunction, Arguments arguments) {
+    if ((targetFunction.requiredParameterCount > arguments.positional.length) ||
+        (targetFunction.positionalParameters.length <
+            arguments.positional.length)) {
+      // Given too few or too many positional arguments
+      return false;
+    }
+
+    // Do we give named that we don't take?
+    Set<String> givenNamed = arguments.named.map((v) => v.name).toSet();
+    Set<String> takenNamed =
+        targetFunction.namedParameters.map((v) => v.name).toSet();
+    givenNamed.removeAll(takenNamed);
+    return givenNamed.isEmpty;
+  }
+
+  // Below methods used to add debug prints etc
+
+  Library _getDartCoreLibrary(Program program) {
+    if (program == null) return null;
+    return program.libraries.firstWhere((lib) =>
+        lib.importUri.scheme == 'dart' && lib.importUri.path == 'core');
+  }
+
+  Procedure _getProcedureInLib(Library lib, String name) {
+    if (lib == null) return null;
+    return lib.procedures
+        .firstWhere((procedure) => procedure.name.name == name);
+  }
+
+  Procedure _getProcedureInClassInLib(
+      Library lib, String className, String procedureName) {
+    if (lib == null) return null;
+    Class clazz = lib.classes.firstWhere((clazz) => clazz.name == className);
+    return clazz.procedures
+        .firstWhere((procedure) => procedure.name.name == procedureName);
+  }
+
+  Expression _getPrintExpression(String msg, TreeNode treeNode) {
+    TreeNode program = treeNode;
+    while (program is! Program) program = program.parent;
+    var finalMsg = msg;
+    if (treeNode is Member) {
+      finalMsg += " [ ${treeNode.name.name} ]";
+      if (treeNode.enclosingClass != null) {
+        finalMsg += " [ class ${treeNode.enclosingClass.name} ]";
+      }
+      if (treeNode.enclosingLibrary != null) {
+        finalMsg += " [ lib ${treeNode.enclosingLibrary.name} ]";
+      }
+    }
+
+    var stacktrace = new StaticGet(_getProcedureInClassInLib(
+        _getDartCoreLibrary(program), 'StackTrace', 'current'));
+    var printStackTrace = new StaticInvocation(
+        _getProcedureInLib(_getDartCoreLibrary(program), 'print'),
+        new Arguments([
+          new StringConcatenation([
+            new StringLiteral(finalMsg),
+            new StringLiteral("\n"),
+            stacktrace,
+            new StringLiteral("\n")
+          ])
+        ]));
+
+    return printStackTrace;
+  }
+}
+
+class _Pair<K, V> {
+  final K key;
+  final V value;
+
+  _Pair(this.key, this.value);
+}
diff --git a/pkg/kernel/lib/transformations/reify/analysis/program_analysis.dart b/pkg/kernel/lib/transformations/reify/analysis/program_analysis.dart
new file mode 100644
index 0000000..8e712d7
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/analysis/program_analysis.dart
@@ -0,0 +1,106 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformation.reify.analysis.program_analysis;
+
+import '../asts.dart';
+import 'package:kernel/ast.dart';
+
+// TODO(karlklose): keep all predicates and derived information here and move
+// the actual data to a builder class.
+class ProgramKnowledge {
+  Map<Member, Set<TypeParameter>> _usedTypeVariables =
+      <Member, Set<TypeParameter>>{};
+
+  Map<Member, Set<DartType>> isTests = <Member, Set<DartType>>{};
+
+  Set<Class> _classTests;
+
+  /// Contains all classes that are used as the declaration of a type expression
+  /// in a type test.
+  Set<Class> get classTests {
+    if (_classTests == null) {
+      _classTests = isTests.values
+          .expand((set) => set)
+          .where((DartType type) => type is InterfaceType)
+          .map((DartType type) => (type as InterfaceType).classNode)
+          .toSet();
+    }
+    return _classTests;
+  }
+
+  recordTypeVariableUse(Expression expression, TypeParameter parameter) {
+    // TODO(karlklose): also record expression.
+    add(_usedTypeVariables, getEnclosingMember(expression), parameter);
+  }
+
+  Set<TypeParameter> usedParameters(Member member) {
+    return _usedTypeVariables[member] ?? new Set<TypeParameter>();
+  }
+
+  void recordIsTest(IsExpression node, DartType type) {
+    add(isTests, getEnclosingMember(node), type);
+  }
+
+  add(Map<dynamic, Set> map, key, value) {
+    map.putIfAbsent(key, () => new Set()).add(value);
+  }
+}
+
+typedef bool LibraryFilter(Library library);
+
+class ProgramAnalysis extends Visitor {
+  final ProgramKnowledge knowledge;
+  final LibraryFilter analyzeLibrary;
+
+  ProgramAnalysis(this.knowledge, this.analyzeLibrary);
+
+  defaultTreeNode(TreeNode node) => node.visitChildren(this);
+
+  visitLibrary(Library library) {
+    if (!analyzeLibrary(library)) {
+      return;
+    }
+    super.visitLibrary(library);
+  }
+
+  handleTypeReference(TreeNode node, DartType type) {
+    typeVariables(type).forEach((TypeParameter parameter) {
+      knowledge.recordTypeVariableUse(node, parameter);
+    });
+  }
+
+  handleInstantiation(InvocationExpression node) {
+    node.arguments.types.forEach((DartType type) {
+      handleTypeReference(node, type);
+    });
+  }
+
+  visitIsExpression(IsExpression node) {
+    knowledge.recordIsTest(node, node.type);
+    handleTypeReference(node, node.type);
+    node.visitChildren(this);
+  }
+
+  visitConstructorInvocation(ConstructorInvocation node) {
+    handleInstantiation(node);
+    node.visitChildren(this);
+  }
+
+  visitStaticInvocation(StaticInvocation node) {
+    if (node.target.kind == ProcedureKind.Factory) {
+      handleInstantiation(node);
+    }
+    node.visitChildren(this);
+  }
+}
+
+bool _analyzeAll(Library library) => true;
+
+ProgramKnowledge analyze(Program program,
+    {LibraryFilter analyzeLibrary: _analyzeAll}) {
+  ProgramKnowledge knowledge = new ProgramKnowledge();
+  program.accept(new ProgramAnalysis(knowledge, analyzeLibrary));
+  return knowledge;
+}
diff --git a/pkg/kernel/lib/transformations/reify/asts.dart b/pkg/kernel/lib/transformations/reify/asts.dart
new file mode 100644
index 0000000..0516b0b
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/asts.dart
@@ -0,0 +1,54 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.ast_helpers;
+
+import 'package:kernel/ast.dart';
+
+Class getEnclosingClass(TreeNode node) {
+  TreeNode original = node;
+  while (node != null && node is! Class) {
+    node = node.parent;
+  }
+  if (node == null) {
+    throw 'internal error: enclosing class not found for $original';
+  }
+  return node;
+}
+
+Library getEnclosingLibrary(TreeNode node) {
+  TreeNode original = node;
+  while (node != null && node is! Library) {
+    node = node.parent;
+  }
+  if (node == null) {
+    throw 'internal error: enclosing library not found for $original';
+  }
+  return node;
+}
+
+Member getEnclosingMember(TreeNode node) {
+  TreeNode original = node;
+  while (node != null && node is! Member) {
+    node = node.parent;
+  }
+  if (node == null) {
+    throw 'internal error: enclosing member not found for $original';
+  }
+  return node;
+}
+
+List<TypeParameter> typeVariables(DartType type) {
+  List<TypeParameter> parameters = <TypeParameter>[];
+  collect(DartType type) {
+    if (type is InterfaceType) {
+      type.typeArguments.map(collect);
+    } else if (type is TypeParameterType) {
+      parameters.add(type.parameter);
+    }
+  }
+
+  collect(type);
+  return parameters;
+}
diff --git a/pkg/kernel/lib/transformations/reify/reify_transformer.dart b/pkg/kernel/lib/transformations/reify/reify_transformer.dart
new file mode 100644
index 0000000..4561208
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/reify_transformer.dart
@@ -0,0 +1,114 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.standalone_runner;
+
+import 'analysis/program_analysis.dart';
+import 'dart:io' show File, IOSink;
+
+import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
+
+import 'package:kernel/ast.dart';
+
+import 'package:kernel/verifier.dart';
+import 'package:kernel/text/ast_to_text.dart' show Printer;
+
+import 'package:kernel/repository.dart' show Repository;
+
+import 'package:kernel/binary/loader.dart' show BinaryLoader;
+
+import 'transformation/remove_generics.dart';
+import 'transformation/transformer.dart'
+    show ReifyVisitor, RuntimeLibrary, RuntimeTypeSupportBuilder;
+
+import 'package:kernel/core_types.dart' show CoreTypes;
+
+RuntimeLibrary findRuntimeTypeLibrary(Program p) {
+  Library findLibraryEndingWith(String postfix) {
+    Iterable<Library> candidates = p.libraries.where((Library l) {
+      return l.importUri.toString().endsWith(postfix);
+    });
+    if (candidates.length != 1) {
+      String howMany = candidates.isEmpty ? "No" : "Multiple";
+      throw new Exception(
+          "$howMany candidates for runtime support library found.");
+    }
+    return candidates.single;
+  }
+
+  Library types = findLibraryEndingWith("reify/types.dart");
+  Library declarations = findLibraryEndingWith("reify/declarations.dart");
+  Library interceptors = findLibraryEndingWith("reify/interceptors.dart");
+  return new RuntimeLibrary(types, declarations, interceptors);
+}
+
+Program transformProgramUsingLibraries(
+    Program program, RuntimeLibrary runtimeLibrary,
+    [Library libraryToTransform]) {
+  LibraryFilter filter = libraryToTransform != null
+      ? (Library library) => library == libraryToTransform
+      : (_) => true;
+  ProgramKnowledge knowledge = analyze(program, analyzeLibrary: filter);
+  Library mainLibrary = program.mainMethod.parent;
+  RuntimeTypeSupportBuilder builder = new RuntimeTypeSupportBuilder(
+      runtimeLibrary, new CoreTypes(program), mainLibrary);
+  ReifyVisitor transformer =
+      new ReifyVisitor(runtimeLibrary, builder, knowledge, libraryToTransform);
+  // Transform the main program.
+  program = program.accept(transformer);
+  if (!filter(runtimeLibrary.interceptorsLibrary)) {
+    // We need to transform the interceptor function in any case to make sure
+    // that the type literals in the interceptor function are rewritten.
+    runtimeLibrary.interceptorFunction.accept(transformer);
+  }
+  builder.createDeclarations();
+  program = program.accept(new Erasure(transformer));
+  // TODO(karlklose): skip checks in debug mode
+  verifyProgram(program);
+  return program;
+}
+
+Program transformProgram(Program program) {
+  RuntimeLibrary runtimeLibrary = findRuntimeTypeLibrary(program);
+  Library mainLibrary = program.mainMethod.enclosingLibrary;
+  return transformProgramUsingLibraries(program, runtimeLibrary, mainLibrary);
+}
+
+main(List<String> arguments) async {
+  String path = arguments.first;
+  Uri output;
+  if (arguments.length > 1) {
+    output = Uri.base.resolve(arguments[1]);
+  }
+  Uri uri = Uri.base.resolve(path);
+  Repository repository = new Repository();
+  Program program = new BinaryLoader(repository).loadProgram(uri.toFilePath());
+
+  RuntimeLibrary runtimeLibrary = findRuntimeTypeLibrary(program);
+  Library mainLibrary = program.mainMethod.enclosingLibrary;
+  program =
+      transformProgramUsingLibraries(program, runtimeLibrary, mainLibrary);
+
+  if (output == null) {
+    // Print result
+    StringBuffer sb = new StringBuffer();
+    Printer printer = new Printer(sb);
+    printer.writeLibraryFile(mainLibrary);
+    print("$sb");
+  } else {
+    IOSink sink = new File.fromUri(output).openWrite();
+    try {
+      new BinaryPrinter(sink).writeProgramFile(program);
+    } finally {
+      await sink.close();
+    }
+    try {
+      // Check that we can read the binary file.
+      new BinaryLoader(new Repository()).loadProgram(output.toFilePath());
+    } catch (e) {
+      print("Error when attempting to read $output.");
+      rethrow;
+    }
+  }
+}
diff --git a/pkg/kernel/lib/transformations/reify/transformation/binding.dart b/pkg/kernel/lib/transformations/reify/transformation/binding.dart
new file mode 100644
index 0000000..e53492f
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/transformation/binding.dart
@@ -0,0 +1,180 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.transformation.binding;
+
+import 'package:kernel/ast.dart';
+
+class RuntimeLibrary {
+  final Library typesLibrary;
+  final Library declarationsLibrary;
+  final Library interceptorsLibrary;
+
+  final Constructor dynamicTypeConstructor;
+  final Constructor interfaceTypeConstructor;
+  final Constructor declarationClassConstructor;
+  final Constructor functionTypeConstructor;
+  final Constructor voidTypeConstructor;
+
+  // The class used to mark instances that implement `$type`.
+  final Class markerClass;
+  final Class declarationClass;
+  final Class reifiedTypeClass;
+
+  DartType get typeType => reifiedTypeClass.rawType;
+
+  final Name variablesFieldName = new Name("variables");
+
+  /// The name of the field to create for the type information. This name is
+  /// extracted from the class `HasRuntimeTypeGetter`.
+  final Name runtimeTypeName;
+
+  final Procedure asInstanceOfFunction;
+  final Procedure isSubtypeOfFunction;
+  final Procedure typeArgumentsFunction;
+  final Procedure allocateDeclarationsFunction;
+  final Procedure initFunction;
+  final Procedure interceptorFunction;
+  final Procedure reifyFunction;
+  final Procedure attachTypeFunction;
+
+  factory RuntimeLibrary(Library typesLibrary, Library declarationsLibrary,
+      Library interceptorsLibrary) {
+    Class dynamicTypeClass;
+    Class interfaceTypeClass;
+    Class declarationClass;
+    Class functionTypeClass;
+    Class voidTypeClass;
+    Class markerClass;
+    Class reifiedTypeClass;
+
+    Procedure allocateDeclarationsFunction;
+    Procedure initFunction;
+    Procedure interceptorFunction;
+    Procedure reifyFunction;
+    Procedure attachTypeFunction;
+    Procedure asInstanceOfFunction;
+    Procedure isSubtypeOfFunction;
+    Procedure typeArgumentsFunction;
+
+    for (Procedure p in interceptorsLibrary.procedures) {
+      if (p.name.name == "type") {
+        interceptorFunction = p;
+      } else if (p.name.name == "reify") {
+        reifyFunction = p;
+      } else if (p.name.name == "attachType") {
+        attachTypeFunction = p;
+      }
+    }
+    for (Class c in interceptorsLibrary.classes) {
+      if (c.name == "HasRuntimeTypeGetter") {
+        markerClass = c;
+      }
+    }
+    for (Class c in typesLibrary.classes) {
+      if (c.name == 'Dynamic') {
+        dynamicTypeClass = c;
+      } else if (c.name == 'Interface') {
+        interfaceTypeClass = c;
+      } else if (c.name == 'FunctionType') {
+        functionTypeClass = c;
+      } else if (c.name == 'Void') {
+        voidTypeClass = c;
+      } else if (c.name == 'ReifiedType') {
+        reifiedTypeClass = c;
+      }
+    }
+    for (Procedure p in typesLibrary.procedures) {
+      if (p.name.name == "asInstanceOf") {
+        asInstanceOfFunction = p;
+      } else if (p.name.name == "isSubtypeOf") {
+        isSubtypeOfFunction = p;
+      } else if (p.name.name == "getTypeArguments") {
+        typeArgumentsFunction = p;
+      }
+    }
+    for (Procedure p in declarationsLibrary.procedures) {
+      if (p.name.name == "allocateDeclarations") {
+        allocateDeclarationsFunction = p;
+      } else if (p.name.name == "init") {
+        initFunction = p;
+      }
+    }
+    for (Class c in declarationsLibrary.classes) {
+      if (c.name == 'Class') {
+        declarationClass = c;
+      }
+    }
+
+    assert(dynamicTypeClass != null);
+    assert(declarationClass != null);
+    assert(interfaceTypeClass != null);
+    assert(functionTypeClass != null);
+    assert(voidTypeClass != null);
+    assert(markerClass != null);
+    assert(declarationClass != null);
+    assert(reifiedTypeClass != null);
+    assert(allocateDeclarationsFunction != null);
+    assert(initFunction != null);
+    assert(interceptorFunction != null);
+    assert(reifyFunction != null);
+    assert(attachTypeFunction != null);
+    assert(asInstanceOfFunction != null);
+    assert(isSubtypeOfFunction != null);
+    assert(typeArgumentsFunction != null);
+
+    return new RuntimeLibrary._(
+        markerClass.procedures.single.name,
+        typesLibrary,
+        declarationsLibrary,
+        interceptorsLibrary,
+        markerClass,
+        declarationClass,
+        reifiedTypeClass,
+        dynamicTypeClass.constructors.single,
+        interfaceTypeClass.constructors.single,
+        declarationClass.constructors.single,
+        functionTypeClass.constructors.single,
+        voidTypeClass.constructors.single,
+        allocateDeclarationsFunction,
+        initFunction,
+        interceptorFunction,
+        reifyFunction,
+        attachTypeFunction,
+        asInstanceOfFunction,
+        isSubtypeOfFunction,
+        typeArgumentsFunction);
+  }
+
+  RuntimeLibrary._(
+      this.runtimeTypeName,
+      this.typesLibrary,
+      this.declarationsLibrary,
+      this.interceptorsLibrary,
+      this.markerClass,
+      this.declarationClass,
+      this.reifiedTypeClass,
+      this.dynamicTypeConstructor,
+      this.interfaceTypeConstructor,
+      this.declarationClassConstructor,
+      this.functionTypeConstructor,
+      this.voidTypeConstructor,
+      this.allocateDeclarationsFunction,
+      this.initFunction,
+      this.interceptorFunction,
+      this.reifyFunction,
+      this.attachTypeFunction,
+      this.asInstanceOfFunction,
+      this.isSubtypeOfFunction,
+      this.typeArgumentsFunction);
+
+  /// Returns `true` if [node] is defined in the runtime library.
+  bool contains(TreeNode node) {
+    while (node is! Library) {
+      node = node.parent;
+      if (node == null) return false;
+    }
+    return node == typesLibrary || node == declarationsLibrary;
+  }
+}
diff --git a/pkg/kernel/lib/transformations/reify/transformation/builder.dart b/pkg/kernel/lib/transformations/reify/transformation/builder.dart
new file mode 100644
index 0000000..fef0f19
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/transformation/builder.dart
@@ -0,0 +1,511 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.transformation.builder;
+
+import '../asts.dart';
+import 'package:kernel/ast.dart';
+import 'dart:collection' show LinkedHashMap;
+import 'binding.dart' show RuntimeLibrary;
+import 'package:kernel/core_types.dart' show CoreTypes;
+
+class Scope {
+  final Map<String, TreeNode> names = <String, TreeNode>{};
+
+  bool nameAlreadyTaken(String name, TreeNode node) {
+    TreeNode existing = names[name];
+    return existing != null && existing == node;
+  }
+
+  void add(String name, TreeNode node) {
+    assert(!nameAlreadyTaken(name, node));
+    names[name] = node;
+  }
+}
+
+class Namer {
+  final Scope scope;
+  Namer([Scope scope]) : this.scope = scope ?? new Scope();
+
+  String _getProposal(TreeNode node) {
+    if (node is Class) {
+      return node.name;
+    }
+    throw 'unsupported node: $node';
+  }
+
+  String getNameFor(TreeNode node) {
+    String base = _getProposal(node);
+    int id = 0;
+    String proposal = base;
+    while (scope.nameAlreadyTaken(proposal, node)) {
+      proposal = "$base${++id}";
+    }
+    scope.add(proposal, node);
+    return proposal;
+  }
+}
+
+class RuntimeTypeSupportBuilder {
+  // TODO(karlklose): group this together with other information about what
+  // needs to be built.
+  final LinkedHashMap<Class, int> reifiedClassIds =
+      new LinkedHashMap<Class, int>();
+
+  int currentDeclarationId = 0;
+
+  final Field declarations;
+
+  final RuntimeLibrary rtiLibrary;
+
+  final CoreTypes coreTypes;
+
+  final DartType declarationType;
+
+  RuntimeTypeSupportBuilder(
+      RuntimeLibrary rtiLibrary, CoreTypes coreTypes, Library mainLibrary)
+      : declarations = new Field(new Name(r"$declarations"),
+            isFinal: true, isStatic: true, fileUri: mainLibrary.fileUri),
+        declarationType = new InterfaceType(coreTypes.listClass,
+            <DartType>[rtiLibrary.declarationClass.rawType]),
+        rtiLibrary = rtiLibrary,
+        coreTypes = coreTypes {
+    mainLibrary.addMember(declarations);
+  }
+
+  int addDeclaration(Class cls) {
+    return reifiedClassIds.putIfAbsent(cls, () {
+      return currentDeclarationId++;
+    });
+  }
+
+  final Name indexOperatorName = new Name("[]");
+
+  MethodInvocation createArrayAccess(Expression target, int index) {
+    return new MethodInvocation(target, indexOperatorName,
+        new Arguments(<Expression>[new IntLiteral(index)]));
+  }
+
+  Expression createAccessDeclaration(Class cls) {
+    return createArrayAccess(new StaticGet(declarations), addDeclaration(cls));
+  }
+
+  Name getTypeTestTagName(Class cls) {
+    return new Name('\$is\$${cls.name}');
+  }
+
+  Name typeVariableGetterName(TypeParameter parameter) {
+    Class cls = getEnclosingClass(parameter);
+    return new Name("\$${cls.name}\$${parameter.name}");
+  }
+
+  // A call to a constructor or factory of a class that we have not transformed
+  // is wrapped in a call to `attachType`.
+  Expression attachTypeToConstructorInvocation(
+      InvocationExpression invocation, Member member) {
+    assert(member is Procedure && member.kind == ProcedureKind.Factory ||
+        member is Constructor);
+    Class targetClass = member.parent;
+    assert(targetClass != null);
+    DartType type = new InterfaceType(targetClass, invocation.arguments.types);
+    return callAttachType(invocation, type);
+  }
+
+  Expression callAttachType(Expression expression, DartType type) {
+    return new StaticInvocation(rtiLibrary.attachTypeFunction,
+        new Arguments(<Expression>[expression, createRuntimeType(type)]));
+  }
+
+  Expression createGetType(Expression receiver, {needsInterceptor: true}) {
+    if (receiver is ThisExpression || !needsInterceptor) {
+      return new PropertyGet(receiver, rtiLibrary.runtimeTypeName);
+    }
+    return new StaticInvocation(
+        rtiLibrary.interceptorFunction, new Arguments(<Expression>[receiver]));
+  }
+
+  Expression createGetTypeArguments(Expression typeObject) {
+    return new StaticInvocation(rtiLibrary.typeArgumentsFunction,
+        new Arguments(<Expression>[typeObject]));
+  }
+
+  // TODO(karlklose): consider adding a unique identifier for each test site.
+  /// `receiver.[subtypeTestName]([type])`
+  StaticInvocation createIsSubtypeOf(
+      Expression receiver, Expression typeExpression,
+      {targetHasTypeProperty: false}) {
+    Expression receiverType =
+        createGetType(receiver, needsInterceptor: !targetHasTypeProperty);
+    return new StaticInvocation(rtiLibrary.isSubtypeOfFunction,
+        new Arguments(<Expression>[receiverType, typeExpression]));
+  }
+
+  int getTypeVariableIndex(TypeParameter variable) {
+    Class c = getEnclosingClass(variable);
+    List<TypeParameter> variables = c.typeParameters;
+    for (int i = 0; i < variables.length; ++i) {
+      if (variables[i].name == variable.name) {
+        return i;
+      }
+    }
+    throw new Exception(
+        "Type variable $variable not found in enclosing class $c");
+  }
+
+  Expression createNewInterface(
+      Expression declaration, Expression typeArgumentList) {
+    List<Expression> arguments = <Expression>[declaration];
+    if (typeArgumentList != null) {
+      arguments.add(typeArgumentList);
+    }
+    return new ConstructorInvocation(
+        rtiLibrary.interfaceTypeConstructor, new Arguments(arguments));
+  }
+
+  /// Returns `true` if [types] is a list of [TypeParameterType]s that exactly
+  /// match the [TypeParameters] of the class they are defined in, i.e.,
+  ///   for all 0 <= i < cls.typeParameters.length.
+  ///     types[i].parameter == cls.typeParameters[i].
+  bool matchesTypeParameters(List<DartType> types) {
+    List<TypeParameter> parameters;
+    for (int i = 0; i < types.length; ++i) {
+      var type = types[i];
+      if (type is TypeParameterType) {
+        if (parameters == null) {
+          Class cls = getEnclosingClass(type.parameter);
+          parameters = cls.typeParameters;
+          if (parameters.length != types.length) return false;
+        }
+        if (type.parameter != parameters[i]) {
+          return false;
+        }
+      } else {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  // TODO(karlklose): Refactor into visitor.
+  // TODO(karlklose): split this method in different strategies.
+  /// Creates an expression to represent a runtime type instance of type [type].
+  Expression createRuntimeType(DartType type,
+      {reifyTypeVariable: false,
+      Expression createReference(Class cls),
+      VariableDeclaration typeContext}) {
+    Expression buildReifiedTypeVariable(TypeParameterType type) {
+      Expression typeVariables = new PropertyGet(
+          createReference(type.parameter.parent),
+          rtiLibrary.variablesFieldName);
+      return createArrayAccess(
+          typeVariables, getTypeVariableIndex(type.parameter));
+    }
+
+    Expression buildDirectTypeVariableAccess(TypeParameterType variable) {
+      Class cls = getEnclosingClass(variable.parameter);
+      return extractTypeVariable(
+          cls,
+          variable.parameter,
+          getTypeVariableIndex(variable.parameter),
+          new VariableGet(typeContext));
+    }
+
+    Expression buildGetterTypeVariableAccess(TypeParameterType type) {
+      return new PropertyGet(
+          new ThisExpression(), typeVariableGetterName(type.parameter));
+    }
+
+    Expression buildTypeVariable(TypeParameterType type) {
+      if (reifyTypeVariable) {
+        assert(typeContext == null);
+        return buildReifiedTypeVariable(type);
+      } else if (typeContext != null) {
+        return buildDirectTypeVariableAccess(type);
+      } else {
+        return buildGetterTypeVariableAccess(type);
+      }
+    }
+
+    createReference ??= createAccessDeclaration;
+
+    /// Helper to make recursive invocation more readable.
+    Expression createPart(DartType type) {
+      return createRuntimeType(type,
+          reifyTypeVariable: reifyTypeVariable,
+          createReference: createReference,
+          typeContext: typeContext);
+    }
+
+    if (type is InterfaceType || type is Supertype) {
+      InterfaceType interfaceType = null;
+      if (type is InterfaceType) {
+        interfaceType = type;
+      } else {
+        interfaceType = (type as Supertype).asInterfaceType;
+      }
+      Class cls = interfaceType.classNode;
+      Expression declaration = createReference(cls);
+      List<DartType> typeArguments = interfaceType.typeArguments;
+      Expression typeArgumentList;
+      if (typeArguments.isNotEmpty) {
+        if (!reifyTypeVariable && matchesTypeParameters(typeArguments)) {
+          // The type argument list corresponds to the list of type parameters
+          // and we are not in "declaration emitter" mode, we can reuse the
+          // type argument vector.
+          TypeParameterType parameterType = typeArguments[0];
+          Class cls = parameterType.parameter.parent;
+          Expression typeObject = typeContext != null
+              ? new VariableGet(typeContext)
+              : createGetType(new ThisExpression());
+          typeArgumentList =
+              createGetTypeArguments(createCallAsInstanceOf(typeObject, cls));
+        } else {
+          typeArgumentList =
+              new ListLiteral(typeArguments.map(createPart).toList());
+        }
+      }
+      return createNewInterface(declaration, typeArgumentList);
+    } else if (type is DynamicType) {
+      return new ConstructorInvocation(
+          rtiLibrary.dynamicTypeConstructor, new Arguments([]),
+          isConst: true);
+    } else if (type is TypeParameterType) {
+      return buildTypeVariable(type);
+    } else if (type is FunctionType) {
+      FunctionType functionType = type;
+      Expression returnType = createPart(functionType.returnType);
+      List<Expression> encodedParameterTypes =
+          functionType.positionalParameters.map(createPart).toList();
+      List<NamedType> namedParameters = functionType.namedParameters;
+      int data;
+      if (namedParameters.isNotEmpty) {
+        for (NamedType param in namedParameters) {
+          encodedParameterTypes.add(new StringLiteral(param.name));
+          encodedParameterTypes.add(createPart(param.type));
+        }
+        data = functionType.namedParameters.length << 1 | 1;
+      } else {
+        data = (functionType.positionalParameters.length -
+                functionType.requiredParameterCount) <<
+            1;
+      }
+      Expression functionTypeExpression = new ConstructorInvocation(
+          rtiLibrary.interfaceTypeConstructor,
+          new Arguments(
+              <Expression>[createReference(coreTypes.functionClass)]));
+      Arguments arguments = new Arguments(<Expression>[
+        functionTypeExpression,
+        returnType,
+        new IntLiteral(data),
+        new ListLiteral(encodedParameterTypes)
+      ]);
+      return new ConstructorInvocation(
+          rtiLibrary.functionTypeConstructor, arguments);
+    } else if (type is VoidType) {
+      return new ConstructorInvocation(
+          rtiLibrary.voidTypeConstructor, new Arguments(<Expression>[]));
+    }
+    return new InvalidExpression();
+  }
+
+  Expression createCallAsInstanceOf(Expression receiver, Class cls) {
+    return new StaticInvocation(rtiLibrary.asInstanceOfFunction,
+        new Arguments(<Expression>[receiver, createAccessDeclaration(cls)]));
+  }
+
+  /// `get get$<variable-name> => <get-type>.arguments[<variable-index>]`
+  Member createTypeVariableGetter(
+      Class cls, TypeParameter variable, int index) {
+    Expression type = createGetType(new ThisExpression());
+    Expression argument = extractTypeVariable(cls, variable, index, type);
+    return new Procedure(
+        typeVariableGetterName(variable),
+        ProcedureKind.Getter,
+        new FunctionNode(new ReturnStatement(argument),
+            returnType: rtiLibrary.typeType),
+        fileUri: cls.fileUri);
+  }
+
+  Expression extractTypeVariable(
+      Class cls, TypeParameter variable, int index, Expression typeObject) {
+    Expression type = createCallAsInstanceOf(typeObject, cls);
+    Expression arguments = new StaticInvocation(
+        rtiLibrary.typeArgumentsFunction, new Arguments(<Expression>[type]));
+    // TODO(karlklose): use the global index instead of the local one.
+    return createArrayAccess(arguments, index);
+  }
+
+  void insertAsFirstArgument(Arguments arguments, Expression expression) {
+    expression.parent = arguments;
+    arguments.positional.insert(0, expression);
+  }
+
+  /// Creates a call to the `init` function that completes the definition of a
+  /// class by setting its (direct) supertypes.
+  Expression createCallInit(
+      VariableDeclaration declarations,
+      int index,
+      InterfaceType supertype,
+      List<InterfaceType> interfaces,
+      FunctionType callableType) {
+    /// Helper to create a reference to the declaration in the declaration
+    /// list instead of the field to avoid cycles if that field's
+    /// initialization depends on the class we are currently initializing.
+    Expression createReference(Class declaration) {
+      int id = reifiedClassIds[declaration];
+      return createArrayAccess(new VariableGet(declarations), id);
+    }
+
+    bool isNotMarkerInterface(InterfaceType interface) {
+      return interface.classNode != rtiLibrary.markerClass;
+    }
+
+    Expression createLocalType(DartType type) {
+      if (type == null) return null;
+      return createRuntimeType(type,
+          reifyTypeVariable: true, createReference: createReference);
+    }
+
+    Expression supertypeExpression =
+        supertype == null ? new NullLiteral() : createLocalType(supertype);
+
+    List<Expression> interfaceTypes = interfaces
+        .where(isNotMarkerInterface)
+        .map(createLocalType)
+        .toList(growable: false);
+
+    Expression callableTypeExpression = createLocalType(callableType);
+
+    List<Expression> arguments = <Expression>[
+      new VariableGet(declarations),
+      new IntLiteral(index),
+      supertypeExpression,
+    ];
+
+    if (interfaceTypes.isNotEmpty || callableTypeExpression != null) {
+      arguments.add(new ListLiteral(interfaceTypes));
+      if (callableTypeExpression != null) {
+        arguments.add(callableTypeExpression);
+      }
+    }
+
+    return new StaticInvocation(
+        rtiLibrary.initFunction, new Arguments(arguments));
+  }
+
+  Expression createDeclarationsInitializer() {
+    List<Statement> statements = <Statement>[];
+    // Call function to allocate the class declarations given the names and
+    // number of type variables of the classes.
+    Namer classNamer = new Namer();
+    List<Expression> names = <Expression>[];
+    List<Expression> parameterCount = <Expression>[];
+    reifiedClassIds.keys.forEach((Class c) {
+      names.add(new StringLiteral(classNamer.getNameFor(c)));
+      parameterCount.add(new IntLiteral(c.typeParameters.length));
+    });
+    Expression namesList = new ListLiteral(names);
+    Expression parameterCountList = new ListLiteral(parameterCount);
+    StaticInvocation callAllocate = new StaticInvocation(
+        rtiLibrary.allocateDeclarationsFunction,
+        new Arguments(<Expression>[namesList, parameterCountList]));
+
+    VariableDeclaration parameter =
+        new VariableDeclaration("d", type: declarationType);
+
+    reifiedClassIds.forEach((Class cls, int id) {
+      if (cls == rtiLibrary.markerClass) return;
+
+      // If the class declares a `call` method, translate the signature to a
+      // reified type.
+      FunctionType callableType;
+      Procedure call = cls.procedures.firstWhere(
+          (Procedure p) => p.name.name == "call",
+          orElse: () => null);
+      if (call != null) {
+        FunctionNode function = call.function;
+
+        final namedParameters = new List<NamedType>();
+        for (VariableDeclaration v in function.namedParameters) {
+          namedParameters.add(new NamedType(v.name, v.type));
+        }
+
+        List<DartType> positionalArguments = function.positionalParameters
+            .map((VariableDeclaration v) => v.type)
+            .toList();
+        callableType = new FunctionType(
+            positionalArguments, function.returnType,
+            namedParameters: namedParameters,
+            requiredParameterCount: function.requiredParameterCount);
+      }
+      statements.add(new ExpressionStatement(createCallInit(
+          parameter,
+          id,
+          cls.supertype?.asInterfaceType,
+          cls.implementedTypes.map((Supertype type) => type?.asInterfaceType),
+          callableType)));
+    });
+
+    statements.add(new ReturnStatement(new VariableGet(parameter)));
+
+    Expression function = new FunctionExpression(new FunctionNode(
+        new Block(statements),
+        positionalParameters: <VariableDeclaration>[parameter],
+        returnType: declarationType));
+
+    return new MethodInvocation(
+        function, new Name("call"), new Arguments(<Expression>[callAllocate]));
+  }
+
+  void createDeclarations() {
+    /// Recursively find all referenced classes in [type].
+    void collectNewReferencedClasses(DartType type, Set<Class> newClasses) {
+      if (type is InterfaceType || type is Supertype) {
+        InterfaceType interfaceType = null;
+        if (type is InterfaceType) {
+          interfaceType = type;
+        } else {
+          interfaceType = (type as Supertype).asInterfaceType;
+        }
+        Class cls = interfaceType.classNode;
+        if (!reifiedClassIds.containsKey(cls) && !newClasses.contains(cls)) {
+          newClasses.add(cls);
+        }
+
+        interfaceType.typeArguments.forEach((DartType argument) {
+          collectNewReferencedClasses(argument, newClasses);
+        });
+      }
+      // TODO(karlklose): function types
+    }
+
+    Iterable<Class> classes = reifiedClassIds.keys;
+    while (classes.isNotEmpty) {
+      Set<Class> newClasses = new Set<Class>();
+      for (Class c in classes) {
+        collectNewReferencedClasses(c.supertype?.asInterfaceType, newClasses);
+        c.implementedTypes.forEach((Supertype supertype) {
+          collectNewReferencedClasses(supertype?.asInterfaceType, newClasses);
+        });
+      }
+      for (Class newClass in newClasses) {
+        // Make sure that there is a declaration field for the class and its
+        // library's declaration list is setup.
+        addDeclaration(newClass);
+      }
+      classes = newClasses;
+    }
+    Expression initializer = createDeclarationsInitializer();
+    initializer.parent = declarations;
+    declarations.initializer = initializer;
+    declarations.type = declarationType;
+  }
+
+  Procedure createGetter(
+      Name name, Expression expression, Class cls, DartType type) {
+    return new Procedure(name, ProcedureKind.Getter,
+        new FunctionNode(new ReturnStatement(expression), returnType: type),
+        fileUri: cls.fileUri);
+  }
+}
diff --git a/pkg/kernel/lib/transformations/reify/transformation/remove_generics.dart b/pkg/kernel/lib/transformations/reify/transformation/remove_generics.dart
new file mode 100644
index 0000000..aafff7d
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/transformation/remove_generics.dart
@@ -0,0 +1,119 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.transformation.remove_generics;
+
+import 'package:kernel/ast.dart';
+import 'transformer.dart';
+
+class Erasure extends Transformer with DartTypeVisitor<DartType> {
+  final ReifyVisitor reifyVisitor;
+
+  Erasure(this.reifyVisitor);
+
+  bool removeTypeParameters(Class cls) {
+    return reifyVisitor.needsTypeInformation(cls);
+  }
+
+  TreeNode removeTypeArgumentsOfConstructorCall(ConstructorInvocation node) {
+    Class cls = node.target.parent;
+    if (removeTypeParameters(cls)) {
+      node.arguments.types.clear();
+      Constructor target = node.target;
+      target.enclosingClass.typeParameters.clear();
+    }
+    return node;
+  }
+
+  TreeNode removeTypeArgumentsOfStaticCall(StaticInvocation node) {
+    Class cls = node.target.parent;
+    if (removeTypeParameters(cls)) {
+      node.arguments.types.clear();
+      Procedure target = node.target;
+      target.function.typeParameters.clear();
+    }
+    return node;
+  }
+
+  @override
+  defaultDartType(DartType type) => type;
+
+  @override
+  InterfaceType visitInterfaceType(InterfaceType type) {
+    if (removeTypeParameters(type.classNode)) {
+      return new InterfaceType(type.classNode, const <DartType>[]);
+    }
+    return type;
+  }
+
+  @override
+  Supertype visitSupertype(Supertype type) {
+    if (removeTypeParameters(type.classNode)) {
+      return new Supertype(type.classNode, const <DartType>[]);
+    }
+    return type;
+  }
+
+  @override
+  FunctionType visitFunctionType(FunctionType type) {
+    bool partHasChanged = false;
+
+    DartType translate(DartType type) {
+      DartType newType = type.accept(this);
+      if (newType != type) {
+        partHasChanged = true;
+        return newType;
+      } else {
+        return type;
+      }
+    }
+
+    DartType returnType = translate(type.returnType);
+    List<DartType> positionalTypes =
+        type.positionalParameters.map(translate).toList();
+    List<NamedType> namedParameters = new List<NamedType>();
+    for (NamedType param in type.namedParameters) {
+      namedParameters.add(new NamedType(param.name, translate(param.type)));
+    }
+    if (partHasChanged) {
+      return new FunctionType(positionalTypes, returnType,
+          namedParameters: namedParameters,
+          requiredParameterCount: type.requiredParameterCount);
+    } else {
+      return type;
+    }
+  }
+
+  @override
+  DynamicType visitTypeParameterType(_) => const DynamicType();
+
+  @override
+  DartType visitDartType(DartType type) {
+    return type.accept(this);
+  }
+
+  @override
+  StaticInvocation visitStaticInvocation(StaticInvocation node) {
+    node.transformChildren(this);
+    if (node.target.kind == ProcedureKind.Factory) {
+      node = removeTypeArgumentsOfStaticCall(node);
+    }
+    return node;
+  }
+
+  @override
+  ConstructorInvocation visitConstructorInvocation(ConstructorInvocation node) {
+    node.transformChildren(this);
+    return removeTypeArgumentsOfConstructorCall(node);
+  }
+
+  @override
+  Class visitClass(Class node) {
+    node.transformChildren(this);
+    if (removeTypeParameters(node)) {
+      node.typeParameters.clear();
+    }
+    return node;
+  }
+}
diff --git a/pkg/kernel/lib/transformations/reify/transformation/transformer.dart b/pkg/kernel/lib/transformations/reify/transformation/transformer.dart
new file mode 100644
index 0000000..8672485
--- /dev/null
+++ b/pkg/kernel/lib/transformations/reify/transformation/transformer.dart
@@ -0,0 +1,575 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.transformation.transformer;
+
+import '../analysis/program_analysis.dart';
+import 'package:kernel/ast.dart';
+import 'binding.dart' show RuntimeLibrary;
+import 'builder.dart' show RuntimeTypeSupportBuilder;
+import 'dart:collection' show LinkedHashMap;
+import '../asts.dart';
+
+export 'binding.dart' show RuntimeLibrary;
+export 'builder.dart' show RuntimeTypeSupportBuilder;
+
+enum RuntimeTypeStorage {
+  none,
+  inheritedField,
+  field,
+  getter,
+}
+
+class TransformationContext {
+  /// Describes how the runtime type is stored on the object.
+  RuntimeTypeStorage runtimeTypeStorage;
+
+  /// Field added to store the runtime type if [runtimeType] is
+  /// [RuntimeTypeStorage.field].
+  Field runtimeTypeField;
+
+  /// The parameter for the type information introduced to the constructor or
+  /// to static initializers.
+  VariableDeclaration parameter;
+
+  /// A ordered collection of fields together with their initializers rewritten
+  /// to static initializer functions that can be used in the constructor's
+  /// initializer list.
+  /// The order is important because of possible side-effects in the
+  /// initializers.
+  LinkedHashMap<Field, Procedure> initializers;
+
+  // `true` if the visitor currently is in a field initializer, a initializer
+  // list of a constructor, or the body of a factory method. In these cases,
+  // type argument access is different than in an instance context, since `this`
+  // is not available.
+  bool inInitializer = false;
+
+  String toString() => "s: ${runtimeTypeStorage} f: $runtimeTypeField,"
+      " p: $parameter, i: $inInitializer";
+}
+
+abstract class DebugTrace {
+  static const bool debugTrace = false;
+
+  static const int lineLength = 80;
+
+  TransformationContext get context;
+
+  String getNodeLevel(TreeNode node) {
+    String level = "";
+    while (node != null && node is! Library) {
+      level = " $level";
+      node = node.parent;
+    }
+    return level;
+  }
+
+  String shorten(String s) {
+    return s.length > lineLength ? s.substring(0, lineLength) : s;
+  }
+
+  void trace(TreeNode node) {
+    if (debugTrace) {
+      String nodeText = node.toString().replaceAll("\n", " ");
+      print(shorten("trace:${getNodeLevel(node)}$context"
+          " [${node.runtimeType}] $nodeText"));
+    }
+  }
+}
+
+/// Rewrites a tree to remove generic types and runtime type checks and replace
+/// them with Dart objects.
+///
+/// Runtime types are stored in a field/getter called [runtimeTypeName] on the
+/// object, which for parameterized classes is initialized in the constructor.
+//  TODO(karlklose):
+//  - add a scoped namer
+//  - rewrite types (supertypes, implemented types)
+//  - rewrite as
+class ReifyVisitor extends Transformer with DebugTrace {
+  final RuntimeLibrary rtiLibrary;
+  final RuntimeTypeSupportBuilder builder;
+  final ProgramKnowledge knowledge;
+
+  ReifyVisitor(this.rtiLibrary, this.builder, this.knowledge,
+      [this.libraryToTransform]);
+
+  /// If not null, the transformation will only be applied to classes declared
+  /// in this library.
+  final Library libraryToTransform;
+
+  // TODO(karlklose): find a way to get rid of this state in the visitor.
+  TransformationContext context;
+
+  bool libraryShouldBeTransformed(Library library) {
+    return libraryToTransform == null || libraryToTransform == library;
+  }
+
+  bool needsTypeInformation(Class cls) {
+    return !isObject(cls) &&
+        !rtiLibrary.contains(cls) &&
+        libraryShouldBeTransformed(cls.enclosingLibrary);
+  }
+
+  bool usesTypeGetter(Class cls) {
+    return cls.typeParameters.isEmpty;
+  }
+
+  bool isObject(Class cls) {
+    // TODO(karlklose): use [CoreTypes].
+    return "$cls" == 'dart.core::Object';
+  }
+
+  Initializer addTypeAsArgument(initializer) {
+    assert(initializer is SuperInitializer ||
+        initializer is RedirectingInitializer);
+    Class cls = getEnclosingClass(initializer.target);
+    if (needsTypeInformation(cls) && !usesTypeGetter(cls)) {
+      // If the current class uses a getter for type information, we did not add
+      // a parameter to the constructor, but we can pass `null` as the value to
+      // initialize the type field, since it will be shadowed by the getter.
+      Expression type = (context.parameter != null)
+          ? new VariableGet(context.parameter)
+          : new NullLiteral();
+      builder.insertAsFirstArgument(initializer.arguments, type);
+    }
+    return initializer;
+  }
+
+  Expression interceptInstantiation(
+      InvocationExpression invocation, Member target) {
+    Class targetClass = target.parent;
+    Library targetLibrary = targetClass.parent;
+    Library currentLibrary = getEnclosingLibrary(invocation);
+    if (libraryShouldBeTransformed(currentLibrary) &&
+        !libraryShouldBeTransformed(targetLibrary) &&
+        !rtiLibrary.contains(target)) {
+      return builder.attachTypeToConstructorInvocation(invocation, target);
+    }
+    return invocation;
+  }
+
+  Expression createRuntimeType(DartType type) {
+    if (context?.inInitializer == true) {
+      // In initializer context, the instance type is provided in
+      // `context.parameter` as there is no `this`.
+      return builder.createRuntimeType(type, typeContext: context.parameter);
+    } else {
+      return builder.createRuntimeType(type);
+    }
+  }
+
+  TreeNode defaultTreeNode(TreeNode node) {
+    trace(node);
+    return super.defaultTreeNode(node);
+  }
+
+  Expression visitStaticInvocation(StaticInvocation invocation) {
+    trace(invocation);
+
+    invocation.transformChildren(this);
+
+    Procedure target = invocation.target;
+    if (target == rtiLibrary.reifyFunction) {
+      /// Rewrite calls to reify(TypeLiteral) to a reified type.
+      TypeLiteral literal = invocation.arguments.positional.single;
+      return createRuntimeType(literal.type);
+    } else if (target.kind == ProcedureKind.Factory) {
+      // Intercept calls to factories of classes we do not transform
+      return interceptInstantiation(invocation, target);
+    }
+    return invocation;
+  }
+
+  Library visitLibrary(Library library) {
+    trace(library);
+
+    if (libraryShouldBeTransformed(library)) {
+      library.transformChildren(this);
+    }
+    return library;
+  }
+
+  Expression visitConstructorInvocation(ConstructorInvocation invocation) {
+    invocation.transformChildren(this);
+    return interceptInstantiation(invocation, invocation.target);
+  }
+
+  Member getStaticInvocationTarget(InvocationExpression invocation) {
+    if (invocation is ConstructorInvocation) {
+      return invocation.target;
+    } else if (invocation is StaticInvocation) {
+      return invocation.target;
+    } else {
+      throw "Unexpected InvocationExpression $invocation.";
+    }
+  }
+
+  bool isInstantiation(TreeNode invocation) {
+    return invocation is ConstructorInvocation ||
+        invocation is StaticInvocation &&
+            invocation.target.kind == ProcedureKind.Factory;
+  }
+
+  bool isTypeVariable(DartType type) => type is TypeParameterType;
+
+  /// Add the runtime type as an extra argument to constructor invocations.
+  Arguments visitArguments(Arguments arguments) {
+    trace(arguments);
+
+    arguments.transformChildren(this);
+    TreeNode parent = arguments.parent;
+    if (isInstantiation(parent)) {
+      Class targetClass = getEnclosingClass(getStaticInvocationTarget(parent));
+      // Do not add the extra argument if the class does not need a type member
+      // or if it can be implemented as a getter.
+      if (!needsTypeInformation(targetClass) || usesTypeGetter(targetClass)) {
+        return arguments;
+      }
+
+      List<DartType> typeArguments = arguments.types;
+
+      Expression type =
+          createRuntimeType(new InterfaceType(targetClass, typeArguments));
+
+      builder.insertAsFirstArgument(arguments, type);
+    }
+    return arguments;
+  }
+
+  Field visitField(Field field) {
+    trace(field);
+
+    visitDartType(field.type);
+    for (Expression annotation in field.annotations) {
+      annotation.accept(this);
+    }
+    // Do not visit initializers, they have already been transformed when the
+    // class was handled.
+    return field;
+  }
+
+  /// Go through all initializers of fields and record a static initializer
+  /// function, if necessary.
+  void rewriteFieldInitializers(Class cls) {
+    assert(context != null);
+    context.initializers = new LinkedHashMap<Field, Procedure>();
+    List<Field> fields = cls.fields;
+    bool initializerRewritten = false;
+    for (Field field in fields) {
+      if (!initializerRewritten && knowledge.usedParameters(field).isEmpty) {
+        // This field needs no static initializer.
+        continue;
+      }
+
+      Expression initializer = field.initializer;
+      if (initializer == null || field.isStatic) continue;
+      // Declare a new variable that holds the type information and can be
+      // used to access type variables in initializer context.
+      // TODO(karlklose): some fields do not need the parameter.
+      VariableDeclaration typeObject = new VariableDeclaration(r"$type");
+      context.parameter = typeObject;
+      context.inInitializer = true;
+      // Translate the initializer while keeping track of whether there was
+      // already an initializers that required type information in
+      // [typeVariableUsedInInitializer].
+      initializer = initializer.accept(this);
+      context.parameter = null;
+      context.inInitializer = false;
+      // Create a static initializer function from the translated initializer
+      // expression and record it.
+      Name name = new Name("\$init\$${field.name.name}");
+      Statement body = new ReturnStatement(initializer);
+      Procedure staticInitializer = new Procedure(
+          name,
+          ProcedureKind.Method,
+          new FunctionNode(body,
+              positionalParameters: <VariableDeclaration>[typeObject]),
+          isStatic: true,
+          fileUri: cls.fileUri);
+      context.initializers[field] = staticInitializer;
+      // Finally, remove the initializer from the field.
+      field.initializer = null;
+    }
+  }
+
+  bool inheritsTypeProperty(Class cls) {
+    assert(needsTypeInformation(cls));
+    Class superclass = cls.superclass;
+    return needsTypeInformation(superclass);
+  }
+
+  Class visitClass(Class cls) {
+    trace(cls);
+
+    if (needsTypeInformation(cls)) {
+      context = new TransformationContext();
+      List<TypeParameter> typeParameters = cls.typeParameters;
+      if (usesTypeGetter(cls)) {
+        assert(typeParameters.isEmpty);
+        context.runtimeTypeStorage = RuntimeTypeStorage.getter;
+        Member getter = builder.createGetter(rtiLibrary.runtimeTypeName,
+            createRuntimeType(cls.rawType), cls, rtiLibrary.typeType);
+        cls.addMember(getter);
+      } else if (!inheritsTypeProperty(cls)) {
+        context.runtimeTypeStorage = RuntimeTypeStorage.field;
+        // TODO(karlklose): should we add the field to [Object]?
+        context.runtimeTypeField = new Field(rtiLibrary.runtimeTypeName,
+            fileUri: cls.fileUri, isFinal: true, type: rtiLibrary.typeType);
+        cls.addMember(context.runtimeTypeField);
+      } else {
+        context.runtimeTypeStorage = RuntimeTypeStorage.inheritedField;
+      }
+
+      for (int i = 0; i < typeParameters.length; ++i) {
+        TypeParameter variable = typeParameters[i];
+        cls.addMember(builder.createTypeVariableGetter(cls, variable, i));
+      }
+
+      // Tag the class as supporting the runtime type getter.
+      InterfaceType interfaceTypeForSupertype =
+          new InterfaceType(rtiLibrary.markerClass);
+      cls.implementedTypes.add(new Supertype(
+          interfaceTypeForSupertype.classNode,
+          interfaceTypeForSupertype.typeArguments));
+
+      // Before transforming the parts of the class declaration, rewrite field
+      // initializers that use type variables (or that would be called after one
+      // that does) to static functions that can be used from constructors.
+      rewriteFieldInitializers(cls);
+
+      // Add properties for declaration tests.
+      for (Class test in knowledge.classTests) {
+        if (test == rtiLibrary.markerClass) continue;
+
+        Procedure tag = builder.createGetter(
+            builder.getTypeTestTagName(test),
+            new BoolLiteral(isSuperClass(test, cls)),
+            cls,
+            builder.coreTypes.boolClass.rawType);
+        cls.addMember(tag);
+      }
+
+      // Add a runtimeType getter.
+      if (!usesTypeGetter(cls) && !inheritsTypeProperty(cls)) {
+        cls.addMember(new Procedure(
+            new Name("runtimeType"),
+            ProcedureKind.Getter,
+            new FunctionNode(
+                new ReturnStatement(new DirectPropertyGet(
+                    new ThisExpression(), context.runtimeTypeField)),
+                returnType: builder.coreTypes.typeClass.rawType),
+            fileUri: cls.fileUri));
+      }
+    }
+
+    cls.transformChildren(this);
+
+    // Add the static initializer functions. They have already been transformed.
+    if (context?.initializers != null) {
+      context.initializers.forEach((_, Procedure initializer) {
+        cls.addMember(initializer);
+      });
+    }
+
+    // TODO(karlklose): clear type arguments later, the order of class
+    // transformations otherwise influences the result.
+    // cls.typeParameters.clear();
+    context = null;
+    return cls;
+  }
+
+  // TODO(karlklose): replace with a structure that can answer also the question
+  // which tags must be overriden due to different values.
+  /// Returns `true` if [a] is a declaration used in a supertype of [b].
+  bool isSuperClass(Class a, Class b) {
+    if (b == null) return false;
+    if (a == b) return true;
+
+    if (isSuperClass(a, b.superclass)) {
+      return true;
+    }
+
+    Iterable<Class> interfaceClasses = b.implementedTypes
+        .map((Supertype type) => type.classNode)
+        .where((Class cls) => cls != rtiLibrary.markerClass);
+    return interfaceClasses
+        .any((Class declaration) => isSuperClass(a, declaration));
+  }
+
+  bool isConstructorOrFactory(TreeNode node) {
+    return isFactory(node) || node is Constructor;
+  }
+
+  bool isFactory(TreeNode node) {
+    return node is Procedure && node.kind == ProcedureKind.Factory;
+  }
+
+  bool needsParameterForRuntimeType(TreeNode node) {
+    if (!isConstructorOrFactory(node)) return false;
+
+    RuntimeTypeStorage access = context.runtimeTypeStorage;
+    assert(access != RuntimeTypeStorage.none);
+    return access == RuntimeTypeStorage.field ||
+        access == RuntimeTypeStorage.inheritedField;
+  }
+
+  FunctionNode visitFunctionNode(FunctionNode node) {
+    trace(node);
+
+    // If we have a [TransformationContext] with a runtime type field and we
+    // translate a constructor or factory, we need a parameter that the code of
+    // initializers or the factory body can use to access type arguments.
+    // The parameter field in the context will be reset in the visit-method of
+    // the parent.
+    if (context != null && needsParameterForRuntimeType(node.parent)) {
+      assert(context.parameter == null);
+      // Create the parameter and insert it as the function's first parameter.
+      context.parameter = new VariableDeclaration(
+          rtiLibrary.runtimeTypeName.name,
+          type: rtiLibrary.typeType);
+      context.parameter.parent = node;
+      node.positionalParameters.insert(0, context.parameter);
+      node.requiredParameterCount++;
+    }
+    node.transformChildren(this);
+    return node;
+  }
+
+  SuperInitializer visitSuperInitializer(SuperInitializer initializer) {
+    initializer.transformChildren(this);
+    return addTypeAsArgument(initializer);
+  }
+
+  RedirectingInitializer visitRedirectingInitializer(
+      RedirectingInitializer initializer) {
+    initializer.transformChildren(this);
+    return addTypeAsArgument(initializer);
+  }
+
+  Procedure visitProcedure(Procedure procedure) {
+    trace(procedure);
+
+    transformList(procedure.annotations, this, procedure.parent);
+    // Visit the function body in a initializing context, if it is a factory.
+    context?.inInitializer = isFactory(procedure);
+    procedure.function?.accept(this);
+    context?.inInitializer = false;
+
+    context?.parameter = null;
+    return procedure;
+  }
+
+  Constructor visitConstructor(Constructor constructor) {
+    trace(constructor);
+
+    transformList(constructor.annotations, this, constructor);
+    if (constructor.function != null) {
+      constructor.function = constructor.function.accept(this);
+      constructor.function?.parent = constructor;
+    }
+
+    context?.inInitializer = true;
+    transformList(constructor.initializers, this, constructor);
+    context?.inInitializer = false;
+
+    if (context != null) {
+      if (context.runtimeTypeStorage == RuntimeTypeStorage.field) {
+        // Initialize the runtime type field with value given in the additional
+        // constructor parameter.
+        assert(context.parameter != null);
+        Initializer initializer = new FieldInitializer(
+            context.runtimeTypeField, new VariableGet(context.parameter));
+        initializer.parent = constructor;
+        constructor.initializers.insert(0, initializer);
+      }
+      if (context.initializers != null) {
+        // For each field that needed a static initializer function, initialize
+        // the field by calling the function.
+        List<Initializer> fieldInitializers = <Initializer>[];
+        context.initializers.forEach((Field field, Procedure initializer) {
+          assert(context.parameter != null);
+          Arguments argument =
+              new Arguments(<Expression>[new VariableGet(context.parameter)]);
+          fieldInitializers.add(new FieldInitializer(
+              field, new StaticInvocation(initializer, argument)));
+        });
+        constructor.initializers.insertAll(0, fieldInitializers);
+      }
+      context.parameter = null;
+    }
+
+    return constructor;
+  }
+
+  /// Returns `true` if the given type can be tested using type test tags.
+  ///
+  /// This implies that there are no subtypes of the [type] that are not
+  /// transformed.
+  bool typeSupportsTagTest(InterfaceType type) {
+    return needsTypeInformation(type.classNode);
+  }
+
+  Expression visitIsExpression(IsExpression expression) {
+    trace(expression);
+
+    expression.transformChildren(this);
+
+    if (getEnclosingLibrary(expression) == rtiLibrary.interceptorsLibrary) {
+      // In the interceptor library we need actual is-checks at the moment.
+      return expression;
+    }
+
+    Expression target = expression.operand;
+    DartType type = expression.type;
+
+    if (type is InterfaceType && typeSupportsTagTest(type)) {
+      assert(knowledge.classTests.contains(type.classNode));
+      bool checkArguments =
+          type.typeArguments.any((DartType type) => type is! DynamicType);
+      Class declaration = type.classNode;
+      VariableDeclaration typeExpression =
+          new VariableDeclaration(null, initializer: createRuntimeType(type));
+      VariableDeclaration targetValue =
+          new VariableDeclaration(null, initializer: target);
+      Expression markerClassTest = new IsExpression(
+          new VariableGet(targetValue), rtiLibrary.markerClass.rawType);
+      Expression tagCheck = new PropertyGet(new VariableGet(targetValue),
+          builder.getTypeTestTagName(declaration));
+      Expression check = new LogicalExpression(markerClassTest, "&&", tagCheck);
+      if (checkArguments) {
+        // TODO(karlklose): support a direct argument check, we already checked
+        // the declaration.
+        Expression uninterceptedCheck = new Let(
+            typeExpression,
+            builder.createIsSubtypeOf(
+                new VariableGet(targetValue), new VariableGet(typeExpression),
+                targetHasTypeProperty: true));
+        check = new LogicalExpression(check, "&&", uninterceptedCheck);
+      }
+      return new Let(targetValue, check);
+    } else {
+      return builder.createIsSubtypeOf(target, createRuntimeType(type));
+    }
+  }
+
+  Expression visitListLiteral(ListLiteral node) {
+    trace(node);
+    node.transformChildren(this);
+    return builder.callAttachType(
+        node,
+        new InterfaceType(
+            builder.coreTypes.listClass, <DartType>[node.typeArgument]));
+  }
+
+  Expression visitMapLiteral(MapLiteral node) {
+    trace(node);
+    node.transformChildren(this);
+    return builder.callAttachType(
+        node,
+        new InterfaceType(builder.coreTypes.mapClass,
+            <DartType>[node.keyType, node.valueType]));
+  }
+}
diff --git a/pkg/kernel/runtime/reify/README.md b/pkg/kernel/runtime/reify/README.md
new file mode 100644
index 0000000..d3371fb
--- /dev/null
+++ b/pkg/kernel/runtime/reify/README.md
@@ -0,0 +1,14 @@
+<!--
+Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+for details. All rights reserved. Use of this source code is governed by a
+BSD-style license that can be found in the LICENSE file.
+-->
+# Runtime Support for Reified Generic Types
+
+This subdirectory contains files used at runtime by the code generated by
+[../reify_transformer.dart].
+
+The files in this directory can be imported by anyone, but files in this
+directory should be frugal about importing anything themselves. This is because
+this library is used by all programs that are tranformed and contributes to
+code size.
diff --git a/pkg/kernel/runtime/reify/declarations.dart b/pkg/kernel/runtime/reify/declarations.dart
new file mode 100644
index 0000000..7aeb474
--- /dev/null
+++ b/pkg/kernel/runtime/reify/declarations.dart
@@ -0,0 +1,98 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.runtime.declarations;
+
+import 'types.dart' show FunctionType, Interface, ReifiedType, TypeVariable;
+
+typedef String Id2String(Object id);
+
+/// Represents a class.
+///
+/// There's one instance of this class for each class in the program.
+///
+/// Note: not all classes can be represented as a compile-time constants. For
+/// example, most core classes, such as, `String`, `int`, and `double`
+/// implement `Comparable` in a way that cannot be expressed as a constant.
+class Class {
+  final id;
+
+  Interface supertype;
+
+  FunctionType callableType;
+
+  final List<TypeVariable> variables;
+
+  List<Interface> interfaces;
+
+  static Id2String debugId2String;
+
+  Class(this.id, this.supertype,
+      {this.callableType,
+      this.variables: const <TypeVariable>[],
+      this.interfaces /* set in init */});
+
+  Interface get thisType {
+    return new Interface(this, variables);
+  }
+
+  String get name => debugId2String == null ? "$id" : debugId2String(id);
+
+  String toString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write("class $name");
+    if (variables.isNotEmpty) {
+      sb.write("<");
+      bool first = true;
+      for (TypeVariable tv in variables) {
+        if (!first) {
+          sb.write(", ");
+        }
+        sb.write(tv);
+        sb.write(" extends ");
+        sb.write(tv.bound);
+      }
+      sb.write(">");
+    }
+    if (supertype != null) {
+      sb.write(" extends $supertype");
+    }
+    if (interfaces.isNotEmpty) {
+      sb.write(" implements ");
+      sb.writeAll(interfaces, ", ");
+    }
+    return "$sb";
+  }
+}
+
+/// Allocates a (non-growable) list of [amount] class declarations with ids `0`
+/// to `amount - 1`. This function is called from the generated code that
+/// initializes the type information.
+List<Class> allocateDeclarations(List<String> names, List<int> typeParameters) {
+  List<TypeVariable> allocateVariables(int amount) {
+    if (amount == 0) return const <TypeVariable>[];
+    return new List<TypeVariable>.generate(
+        amount, (int i) => new TypeVariable(i),
+        growable: false);
+  }
+
+  return new List<Class>.generate(
+      names.length,
+      (int i) => new Class(names[i], null,
+          variables: allocateVariables(typeParameters[i])),
+      growable: false);
+}
+
+/// Initializes the supertype and interfaces of `classes[index]`.
+/// This function is called from generated code.
+void init(List<Class> classes, int index, ReifiedType supertype,
+    [List<Interface> interfaces = const <Interface>[],
+    FunctionType callableType]) {
+  Class declaration = classes[index];
+  assert(supertype == null);
+  declaration.supertype = supertype;
+  assert(interfaces == null);
+  declaration.interfaces = interfaces;
+  declaration.callableType = callableType;
+}
diff --git a/pkg/kernel/runtime/reify/interceptors.dart b/pkg/kernel/runtime/reify/interceptors.dart
new file mode 100644
index 0000000..af4368d
--- /dev/null
+++ b/pkg/kernel/runtime/reify/interceptors.dart
@@ -0,0 +1,73 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library kernel.transformations.reify.runtime.interceptors;
+
+import 'types.dart' show ReifiedType;
+
+/// Helper method that generates a [ReifiedType] corresponding to the literal
+/// type [type].
+///
+/// Calls to this method are recognized in the transformation and replaced by
+/// code that constructs the correct type.
+ReifiedType reify(Type type) {
+  throw "This method should never be called in translated code";
+}
+
+/// Marker interface to indicate that we can extract the runtime type using
+/// a property getter.
+abstract class HasRuntimeTypeGetter {
+  ReifiedType get $type;
+}
+
+/// Interceptor to safely access the type of an object.
+///
+/// For native objects that do not have the `$type` field on them, the
+/// interceptor directly returns the type, otherwise the value of the field is
+/// returned.
+ReifiedType type(dynamic o) {
+  if (o == null) {
+    return reify(Null);
+  } else if (o is HasRuntimeTypeGetter) {
+    return o.$type;
+  } else if (o is bool) {
+    return reify(bool);
+  } else if (o is String) {
+    return reify(String);
+  } else if (o is int) {
+    return reify(int);
+  } else if (o is double) {
+    return reify(double);
+  } else if (o is Type) {
+    return reify(Type);
+  } else if (o is AbstractClassInstantiationError) {
+    return reify(AbstractClassInstantiationError);
+  } else if (o is NoSuchMethodError) {
+    return reify(NoSuchMethodError);
+  } else if (o is CyclicInitializationError) {
+    return reify(CyclicInitializationError);
+  } else if (o is UnsupportedError) {
+    return reify(UnsupportedError);
+  } else if (o is IntegerDivisionByZeroException) {
+    return reify(IntegerDivisionByZeroException);
+  } else if (o is RangeError) {
+    return reify(RangeError);
+  } else if (o is ArgumentError) {
+    return reify(ArgumentError);
+  }
+  ReifiedType type = _type[o];
+  if (type != null) {
+    return type;
+  }
+  throw 'Unable to get runtime type of ${o.runtimeType}';
+}
+
+// This constructor call is not intercepted with [attachType] since the runtime
+// library is currently never transformed.
+final Expando _type = new Expando();
+
+dynamic attachType(Object o, ReifiedType t) {
+  _type[o] = t;
+  return o;
+}
diff --git a/pkg/kernel/runtime/reify/types.dart b/pkg/kernel/runtime/reify/types.dart
new file mode 100644
index 0000000..630ca7d
--- /dev/null
+++ b/pkg/kernel/runtime/reify/types.dart
@@ -0,0 +1,678 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Notation:
+///
+/// * `[[T]]` is the runtime representation of type `T` (that is, `T` reified).
+library kernel.transformations.reify.runtime.types;
+
+import 'declarations.dart' show Class;
+
+export 'declarations.dart';
+
+export 'interceptors.dart';
+
+// The public interface of this library are static functions to access parts of
+// reified type objects and the constructors on the ReifiedType subclasses.
+
+bool isSubtypeOf(ReifiedType a, ReifiedType b) => a._isSubtypeOf(b);
+
+bool isMoreSpecificThan(ReifiedType a, ReifiedType b) {
+  return a._isMoreSpecificThan(b);
+}
+
+Kind getKind(ReifiedType type) => type._kind;
+
+ReifiedType asInstanceOf(Interface type, Class declaration) {
+  return type.asInstanceOf(declaration);
+}
+
+List<ReifiedType> getTypeArguments(Interface type) => type._typeArguments;
+
+bool isDynamic(ReifiedType type) => type._isDynamic;
+
+bool isFunction(ReifiedType type) => type._isFunction;
+
+bool isInterface(ReifiedType type) => type._isInterface;
+
+bool isIntersection(ReifiedType type) => type._isIntersection;
+
+bool isVariable(ReifiedType type) => type._isVariable;
+
+bool isVoid(ReifiedType type) => type._isVoid;
+
+bool isObject(ReifiedType type) => false;
+
+ReifiedType getSupertype(var type) => type._supertype;
+
+Iterable<ReifiedType> getInterfaces(Interface type) => type._interfaces;
+
+ReifiedType subst(ReifiedType type, List<ReifiedType> arguments,
+    List<ReifiedType> parameters) {
+  return type._subst(arguments, parameters);
+}
+
+// TODO(ahe): Do we need ReifiedNullType?
+
+ReifiedType _intersection(ReifiedType a, ReifiedType b) {
+  if (a == null) return b;
+  if (b == null) return a;
+  if (a == b) return a;
+  return new Intersection(a, b);
+}
+
+enum Kind {
+  Bottom,
+  Dynamic,
+  Function,
+  Interface,
+  Intersection,
+  Variable,
+  Void,
+}
+
+abstract class ReifiedType {
+  // TODO(ahe): Should this be a getter to save memory? Which is faster?
+  final Kind _kind;
+
+  const ReifiedType(this._kind);
+
+  bool get _isDynamic => _kind == Kind.Dynamic;
+
+  bool get _isFunction => _kind == Kind.Function;
+
+  bool get _isInterface => _kind == Kind.Interface;
+
+  bool get _isIntersection => _kind == Kind.Intersection;
+
+  bool get _isVariable => _kind == Kind.Variable;
+
+  bool get _isVoid => _kind == Kind.Void;
+
+  bool get _isObject => false;
+
+  /// Returns true if [this] is more specific than [type].
+  bool _isMoreSpecificThan(ReifiedType type);
+
+  /// Performs the substitution `[arguments[i]/parameters[i]]this`.
+  ///
+  /// The notation is known from this lambda calculus rule:
+  ///
+  ///     (lambda x.e0)e1 -> [e1/x]e0.
+  ///
+  /// Invariant: There must be the same number of [arguments] and [parameters].
+  ReifiedType _subst(List<ReifiedType> arguments, List<ReifiedType> parameters);
+
+  /// Returns true if [this] is a subtype of [type].
+  bool _isSubtypeOf(ReifiedType type) {
+    return _subst(const <ReifiedType>[const Bottom()],
+        const <ReifiedType>[const Dynamic()])._isMoreSpecificThan(type);
+  }
+
+  bool _isAssignableTo(ReifiedType type) {
+    if (type._isDynamic) return true;
+    return this._isSubtypeOf(type) || type._isSubtypeOf(this);
+  }
+}
+
+/// Represents the type `dynamic`.
+class Dynamic extends ReifiedType {
+  const Dynamic() : super(Kind.Dynamic);
+
+  bool _isMoreSpecificThan(ReifiedType type) => type._isDynamic;
+
+  ReifiedType _subst(
+      List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    int index = 0;
+    for (ReifiedType parameter in parameters) {
+      if (parameter._isDynamic) return arguments[index];
+      index++;
+    }
+    return this;
+  }
+
+  String toString() => "dynamic";
+}
+
+/// Represents the bottom type.
+class Bottom extends ReifiedType {
+  const Bottom() : super(Kind.Bottom);
+
+  bool _isMoreSpecificThan(ReifiedType type) => true;
+
+  ReifiedType _subst(
+      List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    return this;
+  }
+
+  String toString() => "<bottom>";
+}
+
+/// Represents the type `void`.
+class Void extends ReifiedType {
+  const Void() : super(Kind.Void);
+
+  bool _isMoreSpecificThan(ReifiedType type) {
+    // `void` isn't more specific than anything but itself.
+    return type._isVoid;
+  }
+
+  bool _isSubtypeOf(ReifiedType type) {
+    // `void` isn't the subtype of anything besides `dynamic` and itself.
+    return type._isVoid || type._isDynamic;
+  }
+
+  ReifiedType _subst(
+      List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    return this;
+  }
+
+  String toString() => "void";
+}
+
+/// Represents an interface type. That is, the type of any class.
+///
+/// For example, the type
+///
+///     String
+///
+/// Would be represented as:
+///
+///    new Interface(stringDeclaration);
+///
+/// Where `stringDeclaration` is an instance of [Class] which contains
+/// information about [String]'s supertype and implemented interfaces.
+///
+/// A parameterized type, for example:
+///
+///     Box<int>
+///
+/// Would be represented as:
+///
+///     new Interface(boxDeclaration,
+///         [new Interface(intDeclaration)]);
+///
+/// Implementation notes and considerations:
+///
+/// * It's possible that we want to split this class in two to save memory: one
+///   for non-generic classes and one for generic classes. Only the latter
+///   would need [_typeArguments]. However, this must be weighed against the
+///   additional polymorphism.
+/// * Generally, we don't canonicalize types. However, simple types like `new
+///   Interface(intDeclaration)` should be canonicalized to save
+///   memory. Precisely how this canonicalization will happen is TBD, but it
+///   may simply be by using compile-time constants.
+class Interface extends ReifiedType implements Type {
+  final Class _declaration;
+
+  final List<ReifiedType> _typeArguments;
+
+  const Interface(this._declaration,
+      [this._typeArguments = const <ReifiedType>[]])
+      : super(Kind.Interface);
+
+  bool get _isObject => _declaration.supertype == null;
+
+  Interface get _supertype {
+    return _declaration.supertype
+        ?._subst(_typeArguments, _declaration.variables);
+  }
+
+  Iterable<Interface> get _interfaces {
+    return _declaration.interfaces.map((Interface type) {
+      return type._subst(_typeArguments, _declaration.variables);
+    });
+  }
+
+  FunctionType get _callableType {
+    return _declaration.callableType
+        ?._subst(_typeArguments, _declaration.variables);
+  }
+
+  bool _isMoreSpecificThan(ReifiedType type) {
+    if (type._isDynamic) return true;
+    // Intersection types can only occur as the result of calling
+    // [asInstanceOf], they should never be passed in to this method.
+    assert(!type._isIntersection);
+    if (type._isFunction) {
+      return _callableType?._isMoreSpecificThan(type) ?? false;
+    }
+    if (!type._isInterface) return false;
+    if (this == type) return true;
+    ReifiedType supertype = asInstanceOfType(type);
+    if (supertype == null) {
+      // Special case: A callable class is a subtype of [Function], regardless
+      // if it implements [Function]. It isn't more specific than
+      // [Function]. The type representing [Function] is the supertype of
+      // `declaration.callableType`.
+      return _declaration.callableType?._supertype?._isSubtypeOf(type) ?? false;
+    }
+    if (type == supertype) return true;
+    switch (supertype._kind) {
+      case Kind.Dynamic:
+      case Kind.Variable:
+        // Shouldn't happen. See switch in [asInstanceOf].
+        throw "internal error: $supertype";
+
+      case Kind.Interface:
+        Interface s = supertype;
+        Interface t = type;
+        for (int i = 0; i < s._typeArguments.length; i++) {
+          if (!s._typeArguments[i]._isMoreSpecificThan(t._typeArguments[i])) {
+            return false;
+          }
+        }
+        return true;
+
+      case Kind.Intersection:
+        return supertype._isMoreSpecificThan(type);
+
+      default:
+        throw "Internal error: unhandled kind '${type._kind}'";
+    }
+  }
+
+  bool _isSubtypeOf(ReifiedType type) {
+    if (type._isInterface) {
+      Interface interface = type;
+      if (interface._declaration != this._declaration) {
+        // This addition to the specified rules allows us to handle cases like
+        //     class D extends A<dynamic> {}
+        //     new D() is A<A>
+        // where directly going to `isMoreSpecific` would leave `dynamic` in the
+        // result of `asInstanceOf(A)` instead of bottom.
+        ReifiedType that = asInstanceOf(interface._declaration);
+        if (that != null) {
+          return that._isSubtypeOf(type);
+        }
+      }
+    }
+    return super._isSubtypeOf(type) ||
+        (_callableType?._isSubtypeOf(type) ?? false);
+  }
+
+  /// Returns [this] translated to [type] if [type] is a supertype of
+  /// [this]. Otherwise null.
+  ///
+  /// For example, given:
+  ///
+  ///     class Box<T> {}
+  ///     class BeatBox extends Box<Beat> {}
+  ///     class Beat {}
+  ///
+  /// We have:
+  ///
+  ///     [[BeatBox]].asInstanceOf([[Box]]) -> [[Box<Beat>]].
+  ReifiedType asInstanceOf(Class other) {
+    if (_declaration == other) return this;
+    ReifiedType result = _declaration.supertype
+        ?._subst(_typeArguments, _declaration.variables)
+        ?.asInstanceOf(other);
+    for (Interface interface in _declaration.interfaces) {
+      result = _intersection(
+          result,
+          interface
+              ._subst(_typeArguments, _declaration.variables)
+              .asInstanceOf(other));
+    }
+    return result;
+  }
+
+  ReifiedType asInstanceOfType(Interface type) {
+    return asInstanceOf(type._declaration);
+  }
+
+  Interface _subst(List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    List<ReifiedType> copy;
+    int index = 0;
+    for (ReifiedType typeArgument in _typeArguments) {
+      ReifiedType substitution = typeArgument._subst(arguments, parameters);
+      if (substitution != typeArgument) {
+        if (copy == null) {
+          copy = new List<ReifiedType>.from(_typeArguments);
+        }
+        copy[index] = substitution;
+      }
+      index++;
+    }
+    return copy == null ? this : new Interface(_declaration, copy);
+  }
+
+  String toString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write(_declaration.name);
+    if (_typeArguments.isNotEmpty) {
+      sb.write("<");
+      sb.writeAll(_typeArguments, ", ");
+      sb.write(">");
+    }
+    return "$sb";
+  }
+
+  int get hashCode {
+    int code = 23;
+    code = (71 * code + _declaration.hashCode) & 0x3fffffff;
+    for (ReifiedType typeArgument in _typeArguments) {
+      code = (71 * code + typeArgument.hashCode) & 0x3fffffff;
+    }
+    return code;
+  }
+
+  bool operator ==(other) {
+    if (other is Interface) {
+      if (_declaration != other._declaration) return false;
+      if (identical(_typeArguments, other._typeArguments)) return true;
+      assert(_typeArguments.length == other._typeArguments.length);
+      for (int i = 0; i < _typeArguments.length; i++) {
+        if (_typeArguments[i] != other._typeArguments[i]) {
+          return false;
+        }
+      }
+      return true;
+    }
+    return false;
+  }
+}
+
+/// Represents the intersection type of [typeA] and [typeB]. The intersection
+/// type represents a type that is a subtype of both [typeA] and [typeB].
+///
+/// This type is produced when a class implements the same interface twice with
+/// different type arguments. For example:
+///
+///     abstract class MyNumberList implements List<int>, List<double> {}
+///
+/// Can lead to this intersection type:
+///
+///     new Intersection([[List<int>]], [[List<double>]])
+///
+/// For example,
+///
+///     [[MyNumberList]].asInstanceOf([[List]]) ->
+///         new Intersection([[List<int>]], [[List<double>]])
+///
+/// Note: sometimes, people confuse this with union types. However the union
+/// type of `A` and `B` would be anything that is a subtype of either `A` or
+/// `B`.
+///
+/// See [Intersection types]
+/// (https://en.wikipedia.org/wiki/Type_system#Intersection_types).
+class Intersection extends ReifiedType {
+  final ReifiedType typeA;
+  final ReifiedType typeB;
+
+  const Intersection(this.typeA, this.typeB) : super(Kind.Intersection);
+
+  bool _isMoreSpecificThan(ReifiedType type) {
+    // In the above example, `MyNumberList` is a subtype of List<int> *or*
+    // List<double>.
+    return typeA._isMoreSpecificThan(type) || typeB._isMoreSpecificThan(type);
+  }
+
+  ReifiedType _subst(
+      List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    ReifiedType aSubstitution = typeA._subst(arguments, parameters);
+    ReifiedType bSubstitution = typeB._subst(arguments, parameters);
+    return (aSubstitution == typeA && bSubstitution == typeB)
+        ? this
+        : _intersection(aSubstitution, bSubstitution);
+  }
+
+  String toString() => "{ $typeA, $typeB }";
+}
+
+/// Represents a type variable aka type parameter.
+///
+/// For example, this class:
+///
+///     class Box<T> {}
+///
+/// Defines one type variable. In the type `Box<int>`, there are no type
+/// variables.  However, `int` is a type argument to the the type
+/// parameter/variable `T`.
+class TypeVariable extends ReifiedType {
+  final int _id;
+
+  // TODO(ahe): Do we need to reify bounds?
+  ReifiedType bound;
+
+  TypeVariable(this._id) : super(Kind.Variable);
+
+  bool _isMoreSpecificThan(ReifiedType type) {
+    if (type == this || type._isDynamic || type._isObject) return true;
+    // The bounds of a type variable may contain a cycle, such as:
+    //
+    //     class C<T extends S, S extends T> {}
+    //
+    // We use the [tortoise and hare algorithm]
+    // (https://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare) to
+    // handle cycles.
+    ReifiedType tortoise = bound;
+    if (tortoise == type) return true;
+    ReifiedType hare = getBoundOrNull(bound);
+    while (tortoise != hare) {
+      tortoise = getBoundOrNull(tortoise);
+      if (tortoise == type) return true;
+      hare = getBoundOrNull(getBoundOrNull(hare));
+    }
+    // Here we know that `tortoise == hare`. Either they're both `null` or we
+    // detected a cycle.
+    if (tortoise != null) {
+      // There was a cycle of type variables in the bounds, but it didn't
+      // involve [type]. The variable [tortoise] visited all the type variables
+      // in the cycle (at least once), and each time we compared it to [type].
+      return false;
+    }
+    // There are no cycles and it's safe to recurse on [bound].
+    return bound._isMoreSpecificThan(type);
+  }
+
+  ReifiedType _subst(
+      List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    int index = 0;
+    for (ReifiedType parameter in parameters) {
+      if (this == parameter) return arguments[index];
+      index++;
+    }
+    return this;
+  }
+
+  String toString() => "#$_id";
+}
+
+/// Represents a function type.
+class FunctionType extends ReifiedType {
+  /// Normally, the [Interface] representing [Function]. But an
+  /// implementation-specific subtype of [Function] may also be used.
+  final ReifiedType _supertype;
+
+  final ReifiedType _returnType;
+
+  /// Encodes number of optional parameters and if the optional parameters are
+  /// named.
+  final int _data;
+
+  /// Encodes the argument types. Positional parameters use one element, the
+  /// type; named parameters use two, the name [String] and type. Named
+  /// parameters must be sorted by name.
+  final List _encodedParameters;
+
+  static const FunctionTypeRelation subtypeRelation =
+      const FunctionSubtypeRelation();
+
+  static const FunctionTypeRelation moreSpecificRelation =
+      const FunctionMoreSpecificRelation();
+
+  const FunctionType(
+      this._supertype, this._returnType, this._data, this._encodedParameters)
+      : super(Kind.Function);
+
+  bool get hasNamedParameters => (_data & 1) == 1;
+
+  int get optionalParameters => _data >> 1;
+
+  int get parameters {
+    return hasNamedParameters
+        ? _encodedParameters.length - optionalParameters
+        : _encodedParameters.length;
+  }
+
+  int get requiredParameters {
+    return hasNamedParameters
+        ? _encodedParameters.length - optionalParameters * 2
+        : _encodedParameters.length - optionalParameters;
+  }
+
+  bool _isSubtypeOf(ReifiedType type) => subtypeRelation.areRelated(this, type);
+
+  bool _isMoreSpecificThan(ReifiedType type) {
+    return moreSpecificRelation.areRelated(this, type);
+  }
+
+  FunctionType _subst(
+      List<ReifiedType> arguments, List<ReifiedType> parameters) {
+    List substitutedParameters;
+    int positionalParameters =
+        hasNamedParameters ? requiredParameters : this.parameters;
+    for (int i = 0; i < _encodedParameters.length; i++) {
+      if (i >= positionalParameters) {
+        // Skip the name of a named parameter.
+        i++;
+      }
+      ReifiedType type = _encodedParameters[i];
+      ReifiedType substitution = type._subst(arguments, parameters);
+      if (substitution != type) {
+        if (substitutedParameters == null) {
+          substitutedParameters = new List.from(_encodedParameters);
+        }
+        substitutedParameters[i] = substitution;
+      }
+    }
+    ReifiedType substitutedReturnType =
+        _returnType._subst(arguments, parameters);
+    if (substitutedParameters == null) {
+      if (_returnType == substitutedReturnType) return this;
+      substitutedParameters = _encodedParameters;
+    }
+    return new FunctionType(
+        _supertype, substitutedReturnType, _data, substitutedParameters);
+  }
+
+  String toString() {
+    StringBuffer sb = new StringBuffer();
+    sb.write("(");
+    bool first = true;
+    for (int i = 0; i < requiredParameters; i++) {
+      if (!first) {
+        sb.write(", ");
+      }
+      sb.write(_encodedParameters[i]);
+      first = false;
+    }
+    if (requiredParameters != parameters) {
+      if (!first) {
+        sb.write(", ");
+      }
+      if (hasNamedParameters) {
+        sb.write("{");
+        first = true;
+        for (int i = requiredParameters;
+            i < _encodedParameters.length;
+            i += 2) {
+          if (!first) {
+            sb.write(", ");
+          }
+          sb.write(_encodedParameters[i + 1]);
+          sb.write(" ");
+          sb.write(_encodedParameters[i]);
+          first = false;
+        }
+        sb.write("}");
+      } else {
+        sb.write("[");
+        first = true;
+        for (int i = requiredParameters; i < _encodedParameters.length; i++) {
+          if (!first) {
+            sb.write(", ");
+          }
+          sb.write(_encodedParameters[i]);
+          first = false;
+        }
+        sb.write("]");
+      }
+    }
+    sb.write(") -> ");
+    sb.write(_returnType);
+    return "$sb";
+  }
+}
+
+abstract class FunctionTypeRelation {
+  const FunctionTypeRelation();
+
+  bool areRelated(FunctionType self, ReifiedType type, {bool isMoreSpecific}) {
+    if (!type._isFunction) {
+      return arePartsRelated(self._supertype, type);
+    }
+    FunctionType other = type;
+    if (!other._returnType._isVoid) {
+      if (!arePartsRelated(self._returnType, other._returnType)) return false;
+    }
+    int positionalParameters =
+        self.hasNamedParameters ? self.requiredParameters : self.parameters;
+    int otherPositionalParameters =
+        other.hasNamedParameters ? other.requiredParameters : other.parameters;
+    if (self.requiredParameters > other.requiredParameters) return false;
+    if (positionalParameters < otherPositionalParameters) return false;
+
+    for (int i = 0; i < otherPositionalParameters; i++) {
+      if (!arePartsRelated(
+          self._encodedParameters[i], other._encodedParameters[i])) {
+        return false;
+      }
+    }
+
+    if (!other.hasNamedParameters) true;
+
+    int j = positionalParameters;
+    for (int i = otherPositionalParameters;
+        i < other._encodedParameters.length;
+        i += 2) {
+      String name = other._encodedParameters[i];
+      for (; j < self._encodedParameters.length; j += 2) {
+        if (self._encodedParameters[j] == name) break;
+      }
+      if (j == self._encodedParameters.length) return false;
+      if (!arePartsRelated(
+          self._encodedParameters[j + 1], other._encodedParameters[i + 1])) {
+        return false;
+      }
+    }
+
+    return true;
+  }
+
+  bool arePartsRelated(ReifiedType a, ReifiedType b);
+}
+
+class FunctionSubtypeRelation extends FunctionTypeRelation {
+  const FunctionSubtypeRelation();
+
+  bool arePartsRelated(ReifiedType a, ReifiedType b) => a._isAssignableTo(b);
+}
+
+class FunctionMoreSpecificRelation extends FunctionTypeRelation {
+  const FunctionMoreSpecificRelation();
+
+  bool arePartsRelated(ReifiedType a, ReifiedType b) =>
+      a._isMoreSpecificThan(b);
+}
+
+/// If [type] is a type variable, return its bound. Otherwise `null`.
+ReifiedType getBoundOrNull(ReifiedType type) {
+  if (type == null) return null;
+  if (!type._isVariable) return null;
+  TypeVariable tv = type;
+  return tv.bound;
+}
diff --git a/pkg/kernel/test/closures/suite.dart b/pkg/kernel/test/closures/suite.dart
index 76e2c51..053e6fb4 100644
--- a/pkg/kernel/test/closures/suite.dart
+++ b/pkg/kernel/test/closures/suite.dart
@@ -126,7 +126,7 @@
 
   Uri packages = Uri.base.resolve(".packages");
   bool strongMode = false;
-  bool updateExpectations = environment["updateExpectations"] != "false";
+  bool updateExpectations = environment["updateExpectations"] == "true";
   return new TestContext(sdk, vm, packages, strongMode,
       createDartSdk(sdk, strongMode: strongMode), updateExpectations);
 }
diff --git a/pkg/kernel/test/reify/kernel_chain.dart b/pkg/kernel/test/reify/kernel_chain.dart
new file mode 100644
index 0000000..a74e8f3
--- /dev/null
+++ b/pkg/kernel/test/reify/kernel_chain.dart
@@ -0,0 +1,199 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE.md file.
+
+library test.kernel.reify.suite;
+
+import 'dart:async' show Future;
+
+import 'dart:io' show Directory, File, IOSink;
+
+import 'dart:typed_data' show Uint8List;
+
+import 'package:kernel/kernel.dart' show Repository, loadProgramFromBinary;
+
+import 'package:kernel/text/ast_to_text.dart' show Printer;
+
+import 'package:testing/testing.dart'
+    show ChainContext, Result, StdioProcess, Step;
+
+import 'package:kernel/ast.dart' show Library, Program;
+
+import 'package:kernel/verifier.dart' show verifyProgram;
+
+import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
+
+import 'package:kernel/binary/ast_from_binary.dart' show BinaryBuilder;
+
+import 'package:kernel/binary/loader.dart' show BinaryLoader;
+
+Future<bool> fileExists(Uri base, String path) async {
+  return await new File.fromUri(base.resolve(path)).exists();
+}
+
+class Print extends Step<Program, Program, ChainContext> {
+  const Print();
+
+  String get name => "print";
+
+  Future<Result<Program>> run(Program program, _) async {
+    StringBuffer sb = new StringBuffer();
+    for (Library library in program.libraries) {
+      Printer printer = new Printer(sb);
+      if (library.importUri.scheme != "dart") {
+        printer.writeLibraryFile(library);
+      }
+    }
+    print("$sb");
+    return pass(program);
+  }
+}
+
+class SanityCheck extends Step<Program, Program, ChainContext> {
+  const SanityCheck();
+
+  String get name => "sanity check";
+
+  Future<Result<Program>> run(Program program, _) async {
+    try {
+      verifyProgram(program);
+      return pass(program);
+    } catch (e, s) {
+      return crash(e, s);
+    }
+  }
+}
+
+class MatchExpectation extends Step<Program, Program, ChainContext> {
+  final String suffix;
+
+  final bool updateExpectations;
+
+  const MatchExpectation(this.suffix, {this.updateExpectations: true});
+
+  String get name => "match expectations";
+
+  Future<Result<Program>> run(Program program, _) async {
+    Library library = program.libraries
+        .firstWhere((Library library) => library.importUri.scheme != "dart");
+    Uri uri = library.importUri;
+    StringBuffer buffer = new StringBuffer();
+    new Printer(buffer).writeLibraryFile(library);
+
+    File expectedFile = new File("${uri.toFilePath()}$suffix");
+    if (await expectedFile.exists()) {
+      String expected = await expectedFile.readAsString();
+      if (expected.trim() != "$buffer".trim()) {
+        if (!updateExpectations) {
+          String diff = await runDiff(expectedFile.uri, "$buffer");
+          return fail(null, "$uri doesn't match ${expectedFile.uri}\n$diff");
+        }
+      } else {
+        return pass(program);
+      }
+    }
+    if (updateExpectations) {
+      await openWrite(expectedFile.uri, (IOSink sink) {
+        sink.writeln("$buffer".trim());
+      });
+      return pass(program);
+    } else {
+      return fail(
+          program,
+          """
+Please create file ${expectedFile.path} with this content:
+$buffer""");
+    }
+  }
+}
+
+class WriteDill extends Step<Program, Uri, ChainContext> {
+  const WriteDill();
+
+  String get name => "write .dill";
+
+  Future<Result<Uri>> run(Program program, _) async {
+    Directory tmp = await Directory.systemTemp.createTemp();
+    Uri uri = tmp.uri.resolve("generated.dill");
+    File generated = new File.fromUri(uri);
+    IOSink sink = generated.openWrite();
+    try {
+      new BinaryPrinter(sink).writeProgramFile(program);
+    } catch (e, s) {
+      return fail(uri, e, s);
+    } finally {
+      print("Wrote `${generated.path}`");
+      await sink.close();
+    }
+    return pass(uri);
+  }
+}
+
+class ReadDill extends Step<Uri, Uri, ChainContext> {
+  const ReadDill();
+
+  String get name => "read .dill";
+
+  Future<Result<Uri>> run(Uri uri, _) async {
+    try {
+      loadProgramFromBinary(uri.toFilePath());
+    } catch (e, s) {
+      return fail(uri, e, s);
+    }
+    return pass(uri);
+  }
+}
+
+class Copy extends Step<Program, Program, ChainContext> {
+  const Copy();
+
+  String get name => "copy program";
+
+  Future<Result<Program>> run(Program program, _) async {
+    BytesCollector sink = new BytesCollector();
+    new BinaryPrinter(sink).writeProgramFile(program);
+    Uint8List bytes = sink.collect();
+    BinaryLoader loader = new BinaryLoader(new Repository());
+    return pass(new BinaryBuilder(loader, bytes).readProgramFile());
+  }
+}
+
+class BytesCollector implements Sink<List<int>> {
+  final List<List<int>> lists = <List<int>>[];
+
+  int length = 0;
+
+  void add(List<int> data) {
+    lists.add(data);
+    length += data.length;
+  }
+
+  Uint8List collect() {
+    Uint8List result = new Uint8List(length);
+    int offset = 0;
+    for (List<int> list in lists) {
+      result.setRange(offset, offset += list.length, list);
+    }
+    lists.clear();
+    length = 0;
+    return result;
+  }
+
+  void close() {}
+}
+
+Future<String> runDiff(Uri expected, String actual) async {
+  StdioProcess process = await StdioProcess
+      .run("diff", <String>["-u", expected.toFilePath(), "-"], input: actual);
+  return process.output;
+}
+
+Future openWrite(Uri uri, f(IOSink sink)) async {
+  IOSink sink = new File.fromUri(uri).openWrite();
+  try {
+    await f(sink);
+  } finally {
+    await sink.close();
+  }
+  print("Wrote $uri");
+}
diff --git a/pkg/kernel/test/reify/reify.status b/pkg/kernel/test/reify/reify.status
new file mode 100644
index 0000000..17d58a8
--- /dev/null
+++ b/pkg/kernel/test/reify/reify.status
@@ -0,0 +1,4 @@
+# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE.md file.
+
diff --git a/pkg/kernel/test/reify/suite.dart b/pkg/kernel/test/reify/suite.dart
new file mode 100644
index 0000000..2a8975e
--- /dev/null
+++ b/pkg/kernel/test/reify/suite.dart
@@ -0,0 +1,223 @@
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE.md file.
+
+library test.kernel.reify.suite;
+
+import 'dart:async' show Future;
+
+import 'dart:io' show Directory, File, Platform;
+
+import 'package:analyzer/src/generated/sdk.dart' show DartSdk;
+
+import 'package:kernel/analyzer/loader.dart'
+    show DartLoader, DartOptions, createDartSdk;
+
+import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget;
+
+import 'package:kernel/repository.dart' show Repository;
+
+import 'kernel_chain.dart'
+    show MatchExpectation, Print, ReadDill, SanityCheck, WriteDill;
+
+import 'package:testing/testing.dart'
+    show
+        Chain,
+        ChainContext,
+        Result,
+        StdioProcess,
+        Step,
+        TestDescription,
+        runMe;
+
+import 'package:kernel/ast.dart' show Program;
+
+import 'package:kernel/transformations/closure_conversion.dart'
+    as closure_conversion;
+
+import 'package:kernel/transformations/generic_types_reification.dart'
+    as generic_types_reification;
+
+import 'package:package_config/discovery.dart' show loadPackagesFile;
+
+class TestContext extends ChainContext {
+  final Uri vm;
+
+  final Uri packages;
+
+  final DartOptions options;
+
+  final DartSdk dartSdk;
+
+  final List<Step> steps;
+
+  TestContext(String sdk, this.vm, Uri packages, bool strongMode, this.dartSdk,
+      bool updateExpectations)
+      : packages = packages,
+        options = new DartOptions(
+            strongMode: strongMode,
+            sdk: sdk,
+            packagePath: packages.toFilePath()),
+        steps = <Step>[
+          const Kernel(),
+          const Print(),
+          const SanityCheck(),
+          const ClosureConversion(),
+          const GenericTypesReification(),
+          const Print(),
+          const SanityCheck(),
+          new MatchExpectation(".expect",
+              updateExpectations: updateExpectations),
+          const WriteDill(),
+          const ReadDill(),
+          const Run(),
+        ];
+
+  Future<DartLoader> createLoader() async {
+    Repository repository = new Repository();
+    return new DartLoader(repository, options, await loadPackagesFile(packages),
+        dartSdk: dartSdk);
+  }
+}
+
+enum Environment {
+  directory,
+  file,
+}
+
+Future<String> getEnvironmentVariable(
+    String name, Environment kind, String undefined, notFound(String n)) async {
+  String result = Platform.environment[name];
+  if (result == null) {
+    throw undefined;
+  }
+  switch (kind) {
+    case Environment.directory:
+      if (!await new Directory(result).exists()) throw notFound(result);
+      break;
+
+    case Environment.file:
+      if (!await new File(result).exists()) throw notFound(result);
+      break;
+  }
+  return result;
+}
+
+Future<bool> fileExists(Uri base, String path) async {
+  return await new File.fromUri(base.resolve(path)).exists();
+}
+
+Future<TestContext> createContext(
+    Chain suite, Map<String, String> environment) async {
+  const String suggestion = """Try building the patched SDK by running
+    'tools/build.py patched_sdk'""";
+
+  // TODO(karlklose): The path is different on MacOS.
+  String sdk = "out/DebugX64/patched_sdk/";
+  Uri sdkUri = Uri.base.resolve(sdk);
+  const String asyncDart = "lib/async/async.dart";
+  if (!await fileExists(sdkUri, asyncDart)) {
+    throw "Couldn't find the patched SDK. $suggestion";
+  }
+  const String asyncSources = "lib/async/async_sources.gypi";
+  if (await fileExists(sdkUri, asyncSources)) {
+    throw "Found '$asyncSources' in '$sdk', so it isn't a patched SDK. "
+        "$suggestion";
+  }
+
+  // TODO(karlklose): select the VM based on the mode.
+  Uri vm = Uri.base.resolve("out/ReleaseX64/dart");
+
+  Uri packages = Uri.base.resolve(".packages");
+  bool strongMode = false;
+  bool updateExpectations = environment["updateExpectations"] == "true";
+  return new TestContext(sdk, vm, packages, strongMode,
+      createDartSdk(sdk, strongMode: strongMode), updateExpectations);
+}
+
+class Kernel extends Step<TestDescription, Program, TestContext> {
+  const Kernel();
+
+  String get name => "kernel";
+
+  Future<Result<Program>> run(
+      TestDescription description, TestContext testContext) async {
+    try {
+      DartLoader loader = await testContext.createLoader();
+
+      Target target = getTarget(
+          "vm", new TargetFlags(strongMode: testContext.options.strongMode));
+      // reifyTarget is used to add the GTR-specific runtime libraries
+      // when the program is being loaded
+      Target reifyTarget = getTarget(
+          "vmreify",
+          new TargetFlags(
+              strongMode: testContext.options.strongMode,
+              kernelRuntime: Platform.script.resolve('../../runtime/')));
+
+      String path = description.file.path;
+      Uri uri = Uri.base.resolve(path);
+      Program program = loader.loadProgram(uri, target: reifyTarget);
+      for (var error in loader.errors) {
+        return fail(program, "$error");
+      }
+      target
+        ..performModularTransformations(program)
+        ..performGlobalTransformations(program);
+      return pass(program);
+    } catch (e, s) {
+      return crash(e, s);
+    }
+  }
+}
+
+class ClosureConversion extends Step<Program, Program, TestContext> {
+  const ClosureConversion();
+
+  String get name => "closure conversion";
+
+  Future<Result<Program>> run(Program program, TestContext testContext) async {
+    try {
+      program = closure_conversion.transformProgram(program);
+      return pass(program);
+    } catch (e, s) {
+      return crash(e, s);
+    }
+  }
+}
+
+class GenericTypesReification extends Step<Program, Program, TestContext> {
+  const GenericTypesReification();
+
+  String get name => "generic types reification";
+
+  Future<Result<Program>> run(Program program, TestContext testContext) async {
+    try {
+      program = generic_types_reification.transformProgram(program);
+      return pass(program);
+    } catch (e, s) {
+      return crash(e, s);
+    }
+  }
+}
+
+class Run extends Step<Uri, int, TestContext> {
+  const Run();
+
+  String get name => "run";
+
+  Future<Result<int>> run(Uri uri, TestContext context) async {
+    File generated = new File.fromUri(uri);
+    StdioProcess process;
+    try {
+      process =
+          await StdioProcess.run(context.vm.toFilePath(), [generated.path]);
+      print(process.output);
+    } finally {
+      generated.parent.delete(recursive: true);
+    }
+    return process.toResult();
+  }
+}
+
+main(List<String> arguments) => runMe(arguments, createContext, "testing.json");
diff --git a/pkg/kernel/test/reify/testing.json b/pkg/kernel/test/reify/testing.json
new file mode 100644
index 0000000..7b9fcaa
--- /dev/null
+++ b/pkg/kernel/test/reify/testing.json
@@ -0,0 +1,29 @@
+{
+"":"Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file",
+"":"for details. All rights reserved. Use of this source code is governed by a",
+"":"BSD-style license that can be found in the LICENSE.md file.",
+  "packages": "../../../../.packages",
+  "suites": [
+    {
+      "name": "reify",
+      "kind": "Chain",
+      "source": "suite.dart",
+      "path": "../../testcases/reify",
+      "status": "reify.status",
+      "pattern": [
+        "\\.dart$"
+      ],
+      "exclude": [
+        "/test/reify/suite\\.dart$",
+        "/testcases/reify/test_base\\.dart$"
+      ]
+    }
+  ],
+  "analyze": {
+    "uris": [
+      "suite.dart"
+    ],
+    "exclude": [
+    ]
+  }
+}
diff --git a/pkg/kernel/testcases/reify/closure2_test.dart b/pkg/kernel/testcases/reify/closure2_test.dart
new file mode 100644
index 0000000..e44aef9
--- /dev/null
+++ b/pkg/kernel/testcases/reify/closure2_test.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library closure2_test;
+
+import 'test_base.dart';
+
+class A<T> {
+  fun() => (o) => o is T;
+}
+
+class X {}
+
+class Y {}
+
+main() {
+  var tester = new A<X>().fun();
+
+  expectTrue(tester(new X()));
+  expectFalse(tester(new Y()));
+}
diff --git a/pkg/kernel/testcases/reify/closure2_test.dart.expect b/pkg/kernel/testcases/reify/closure2_test.dart.expect
new file mode 100644
index 0000000..a6c537a
--- /dev/null
+++ b/pkg/kernel/testcases/reify/closure2_test.dart.expect
@@ -0,0 +1,85 @@
+library closure2_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "dart:mock" as mock;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  method fun() → dynamic {
+    return new self::Closure#A#fun#function::•(new typ::Interface::•(self::$declarations.[](1), typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0)))), null);
+  }
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+}
+class Y extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](3));
+}
+class Closure#A#fun#function extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type, final mock::Context context) → dynamic
+    : self::Closure#A#fun#function::$type = $type, self::Closure#A#fun#function::context = context
+    ;
+  method call(dynamic o) → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#A#fun#function::context};
+    return typ::isSubtypeOf(int::type(o), this.$Closure#A#fun#function$T);
+  }
+  get $Closure#A#fun#function$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::Closure#A#fun#function::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](17)));
+  dec::init(d, 1, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](19))], new typ::FunctionType::•(new typ::Interface::•(d.[](19)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 2, new typ::Interface::•(d.[](17)));
+  dec::init(d, 3, new typ::Interface::•(d.[](17)));
+  dec::init(d, 4, new typ::Interface::•(d.[](17)));
+  dec::init(d, 5, new typ::Interface::•(d.[](17)));
+  dec::init(d, 6, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](20), <dynamic>[new typ::Interface::•(d.[](6))]), new typ::Interface::•(d.[](21))]);
+  dec::init(d, 7, new typ::Interface::•(d.[](22)));
+  dec::init(d, 8, new typ::Interface::•(d.[](22)));
+  dec::init(d, 9, new typ::Interface::•(d.[](17)));
+  dec::init(d, 10, new typ::Interface::•(d.[](23)));
+  dec::init(d, 11, new typ::Interface::•(d.[](23)));
+  dec::init(d, 12, new typ::Interface::•(d.[](23)));
+  dec::init(d, 13, new typ::Interface::•(d.[](23)));
+  dec::init(d, 14, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](24))]);
+  dec::init(d, 15, new typ::Interface::•(d.[](16)));
+  dec::init(d, 16, new typ::Interface::•(d.[](23)));
+  dec::init(d, 17, null);
+  dec::init(d, 19, new typ::Interface::•(d.[](17)));
+  dec::init(d, 20, new typ::Interface::•(d.[](17)));
+  dec::init(d, 21, new typ::Interface::•(d.[](17)));
+  dec::init(d, 22, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](20), <dynamic>[new typ::Interface::•(d.[](22))])]);
+  dec::init(d, 23, new typ::Interface::•(d.[](17)));
+  dec::init(d, 24, new typ::Interface::•(d.[](17)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "Closure#A#fun#function", "X", "Y", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Function", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  dynamic tester = new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])).fun();
+  tes::expectTrue(tester.call(new self::X::•()));
+  tes::expectFalse(tester.call(new self::Y::•()));
+}
diff --git a/pkg/kernel/testcases/reify/closure_test.dart b/pkg/kernel/testcases/reify/closure_test.dart
new file mode 100644
index 0000000..17206bc
--- /dev/null
+++ b/pkg/kernel/testcases/reify/closure_test.dart
@@ -0,0 +1,49 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library closure_test;
+
+import 'test_base.dart';
+
+class A {}
+
+class B {}
+
+typedef B A2B(A a);
+typedef A B2A(B b);
+
+bar(A a) {
+  return null;
+}
+
+B baz(a) {
+  return null;
+}
+
+main() {
+  B foo(A a) {
+    return null;
+  }
+
+  A qux(B b) {
+    return null;
+  }
+
+  expectTrue(foo is A2B);
+  expectTrue(qux is! A2B);
+  expectTrue(foo is! B2A);
+  expectTrue(qux is B2A);
+
+  expectTrue(bar is A2B);
+  expectTrue(bar is! B2A);
+  expectTrue(baz is A2B);
+  expectTrue(baz is! B2A);
+
+  var rab = bar;
+  var zab = baz;
+  expectTrue(rab is A2B);
+  expectTrue(rab is! B2A);
+  expectTrue(zab is A2B);
+  expectTrue(zab is! B2A);
+}
diff --git a/pkg/kernel/testcases/reify/closure_test.dart.expect b/pkg/kernel/testcases/reify/closure_test.dart.expect
new file mode 100644
index 0000000..50134be
--- /dev/null
+++ b/pkg/kernel/testcases/reify/closure_test.dart.expect
@@ -0,0 +1,162 @@
+library closure_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "dart:mock" as mock;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+}
+class B extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+}
+class Closure#main#foo extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#foo::context = context
+    ;
+  method call(self::A a) → self::B {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#foo::context};
+    return null;
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+}
+class Closure#main#qux extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#qux::context = context
+    ;
+  method call(self::B b) → self::A {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#qux::context};
+    return null;
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](3));
+}
+class Closure#bar extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(self::A a) → dynamic
+    return self::bar(a);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](4));
+}
+class Closure#bar extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(self::A a) → dynamic
+    return self::bar(a);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](5));
+}
+class Closure#baz extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(dynamic a) → self::B
+    return self::baz(a);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](6));
+}
+class Closure#baz extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(dynamic a) → self::B
+    return self::baz(a);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](7));
+}
+class Closure#bar extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(self::A a) → dynamic
+    return self::bar(a);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](8));
+}
+class Closure#baz extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(dynamic a) → self::B
+    return self::baz(a);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](9));
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](24)));
+  dec::init(d, 1, new typ::Interface::•(d.[](24)));
+  dec::init(d, 2, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), new typ::Interface::•(d.[](1)), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 3, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), new typ::Interface::•(d.[](0)), 0, <dynamic>[new typ::Interface::•(d.[](1))]));
+  dec::init(d, 4, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), const typ::Dynamic::•(), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 5, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), const typ::Dynamic::•(), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 6, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), new typ::Interface::•(d.[](1)), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 7, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), new typ::Interface::•(d.[](1)), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 8, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), const typ::Dynamic::•(), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 9, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](10))], new typ::FunctionType::•(new typ::Interface::•(d.[](10)), new typ::Interface::•(d.[](1)), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 10, new typ::Interface::•(d.[](24)));
+  dec::init(d, 11, new typ::Interface::•(d.[](24)));
+  dec::init(d, 12, new typ::Interface::•(d.[](24)));
+  dec::init(d, 13, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](26), <dynamic>[new typ::Interface::•(d.[](13))]), new typ::Interface::•(d.[](27))]);
+  dec::init(d, 14, new typ::Interface::•(d.[](28)));
+  dec::init(d, 15, new typ::Interface::•(d.[](28)));
+  dec::init(d, 16, new typ::Interface::•(d.[](24)));
+  dec::init(d, 17, new typ::Interface::•(d.[](29)));
+  dec::init(d, 18, new typ::Interface::•(d.[](29)));
+  dec::init(d, 19, new typ::Interface::•(d.[](29)));
+  dec::init(d, 20, new typ::Interface::•(d.[](29)));
+  dec::init(d, 21, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](30))]);
+  dec::init(d, 22, new typ::Interface::•(d.[](23)));
+  dec::init(d, 23, new typ::Interface::•(d.[](29)));
+  dec::init(d, 24, null);
+  dec::init(d, 26, new typ::Interface::•(d.[](24)));
+  dec::init(d, 27, new typ::Interface::•(d.[](24)));
+  dec::init(d, 28, new typ::Interface::•(d.[](24)), <dynamic>[new typ::Interface::•(d.[](26), <dynamic>[new typ::Interface::•(d.[](28))])]);
+  dec::init(d, 29, new typ::Interface::•(d.[](24)));
+  dec::init(d, 30, new typ::Interface::•(d.[](24)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "Closure#main#foo", "Closure#main#qux", "Closure#bar", "Closure#bar", "Closure#baz", "Closure#baz", "Closure#bar", "Closure#baz", "Function", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method bar(self::A a) → dynamic {
+  return null;
+}
+static method baz(dynamic a) → self::B {
+  return null;
+}
+static method main() → dynamic {
+  final (self::A) → self::B foo = new self::Closure#main#foo::•(null);
+  final (self::B) → self::A qux = new self::Closure#main#qux::•(null);
+  tes::expectTrue(typ::isSubtypeOf(int::type(foo), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(qux), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(foo), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](0)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+  tes::expectTrue(typ::isSubtypeOf(int::type(qux), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](0)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+  tes::expectTrue(typ::isSubtypeOf(int::type(new self::Closure#bar::•()), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(new self::Closure#bar::•()), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](0)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+  tes::expectTrue(typ::isSubtypeOf(int::type(new self::Closure#baz::•()), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(new self::Closure#baz::•()), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](0)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+  dynamic rab = new self::Closure#bar::•();
+  dynamic zab = new self::Closure#baz::•();
+  tes::expectTrue(typ::isSubtypeOf(int::type(rab), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(rab), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](0)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+  tes::expectTrue(typ::isSubtypeOf(int::type(zab), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(zab), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](10)), new typ::Interface::•(self::$declarations.[](0)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+}
diff --git a/pkg/kernel/testcases/reify/factories_test.dart b/pkg/kernel/testcases/reify/factories_test.dart
new file mode 100644
index 0000000..805df85
--- /dev/null
+++ b/pkg/kernel/testcases/reify/factories_test.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library factories_test;
+
+import 'test_base.dart';
+
+class A<T> {
+  factory A() {
+    return new B<T>();
+  }
+
+  factory A.named() {
+    return new A<T>.internal();
+  }
+
+  factory A.forward() = A<T>.internal;
+
+  A.internal();
+}
+
+class B<T> extends A<T> {
+  B() : super.internal();
+}
+
+class X {}
+
+class Y {}
+
+main() {
+  expectTrue(new A<X>.named() is A<X>);
+  expectTrue(new A<X>.named() is! A<Y>);
+  expectTrue(new A<X>.forward() is A<X>);
+  expectTrue(new A<X>.forward() is! A<Y>);
+  expectTrue(new A<X>() is B<X>);
+  expectTrue(new A<X>() is! B<Y>);
+  expectTrue(new A<X>.named() is! B<X>);
+  expectTrue(new A<X>.forward() is! B<X>);
+}
diff --git a/pkg/kernel/testcases/reify/factories_test.dart.expect b/pkg/kernel/testcases/reify/factories_test.dart.expect
new file mode 100644
index 0000000..de736e8
--- /dev/null
+++ b/pkg/kernel/testcases/reify/factories_test.dart.expect
@@ -0,0 +1,97 @@
+library factories_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor internal(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  static factory •(typ::ReifiedType $type) → self::A {
+    return new self::B::•(new typ::Interface::•(self::$declarations.[](1), <dynamic>[typ::getTypeArguments(typ::asInstanceOf($type, self::$declarations.[](0))).[](0)]));
+  }
+  static factory named(typ::ReifiedType $type) → self::A {
+    return new self::A::internal(new typ::Interface::•(self::$declarations.[](0), <dynamic>[typ::getTypeArguments(typ::asInstanceOf($type, self::$declarations.[](0))).[](0)]));
+  }
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get $is$A() → core::bool
+    return true;
+  get $is$B() → core::bool
+    return false;
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •(typ::ReifiedType $type) → void
+    : super self::A::internal($type)
+    ;
+  get $B$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+  get $is$A() → core::bool
+    return true;
+  get $is$B() → core::bool
+    return true;
+}
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return false;
+}
+class Y extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](3));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return false;
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](17)));
+  dec::init(d, 1, new typ::Interface::•(d.[](0), <dynamic>[d.[](1).variables.[](0)]));
+  dec::init(d, 2, new typ::Interface::•(d.[](17)));
+  dec::init(d, 3, new typ::Interface::•(d.[](17)));
+  dec::init(d, 4, new typ::Interface::•(d.[](17)));
+  dec::init(d, 5, new typ::Interface::•(d.[](17)));
+  dec::init(d, 6, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](19), <dynamic>[new typ::Interface::•(d.[](6))]), new typ::Interface::•(d.[](20))]);
+  dec::init(d, 7, new typ::Interface::•(d.[](21)));
+  dec::init(d, 8, new typ::Interface::•(d.[](21)));
+  dec::init(d, 9, new typ::Interface::•(d.[](17)));
+  dec::init(d, 10, new typ::Interface::•(d.[](22)));
+  dec::init(d, 11, new typ::Interface::•(d.[](22)));
+  dec::init(d, 12, new typ::Interface::•(d.[](22)));
+  dec::init(d, 13, new typ::Interface::•(d.[](22)));
+  dec::init(d, 14, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](23))]);
+  dec::init(d, 15, new typ::Interface::•(d.[](16)));
+  dec::init(d, 16, new typ::Interface::•(d.[](22)));
+  dec::init(d, 17, null);
+  dec::init(d, 19, new typ::Interface::•(d.[](17)));
+  dec::init(d, 20, new typ::Interface::•(d.[](17)));
+  dec::init(d, 21, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](19), <dynamic>[new typ::Interface::•(d.[](21))])]);
+  dec::init(d, 22, new typ::Interface::•(d.[](17)));
+  dec::init(d, 23, new typ::Interface::•(d.[](17)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "X", "Y", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  tes::expectTrue(let dynamic #t1 = self::A::named(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t1 is int::HasRuntimeTypeGetter && #t1.$is$A && (let dynamic #t2 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t1.$type, #t2)));
+  tes::expectTrue(!(let dynamic #t3 = self::A::named(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t3 is int::HasRuntimeTypeGetter && #t3.$is$A && (let dynamic #t4 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](3))]) in typ::isSubtypeOf(#t3.$type, #t4))));
+  tes::expectTrue(let dynamic #t5 = new self::A::internal(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t5 is int::HasRuntimeTypeGetter && #t5.$is$A && (let dynamic #t6 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t5.$type, #t6)));
+  tes::expectTrue(!(let dynamic #t7 = new self::A::internal(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t7 is int::HasRuntimeTypeGetter && #t7.$is$A && (let dynamic #t8 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](3))]) in typ::isSubtypeOf(#t7.$type, #t8))));
+  tes::expectTrue(let dynamic #t9 = self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t9 is int::HasRuntimeTypeGetter && #t9.$is$B && (let dynamic #t10 = new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t9.$type, #t10)));
+  tes::expectTrue(!(let dynamic #t11 = self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t11 is int::HasRuntimeTypeGetter && #t11.$is$B && (let dynamic #t12 = new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](3))]) in typ::isSubtypeOf(#t11.$type, #t12))));
+  tes::expectTrue(!(let dynamic #t13 = self::A::named(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t13 is int::HasRuntimeTypeGetter && #t13.$is$B && (let dynamic #t14 = new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t13.$type, #t14))));
+  tes::expectTrue(!(let dynamic #t15 = new self::A::internal(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))])) in #t15 is int::HasRuntimeTypeGetter && #t15.$is$B && (let dynamic #t16 = new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t15.$type, #t16))));
+}
diff --git a/pkg/kernel/testcases/reify/field_initializer2_test.dart b/pkg/kernel/testcases/reify/field_initializer2_test.dart
new file mode 100644
index 0000000..47db808
--- /dev/null
+++ b/pkg/kernel/testcases/reify/field_initializer2_test.dart
@@ -0,0 +1,24 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library field_initializer2_test;
+
+import 'test_base.dart';
+
+class A<T> {}
+
+class B<T> {
+  var x = new A<T>();
+  var y;
+  B() : y = new A<T>();
+}
+
+main() {
+  var b = new B<A>();
+  expectTrue(b.x is A<A>);
+  expectTrue(b.y is A<A>);
+
+  expectFalse(b.x is A<B>);
+  expectFalse(b.y is A<B>);
+}
diff --git a/pkg/kernel/testcases/reify/field_initializer2_test.dart.expect b/pkg/kernel/testcases/reify/field_initializer2_test.dart.expect
new file mode 100644
index 0000000..e27360d
--- /dev/null
+++ b/pkg/kernel/testcases/reify/field_initializer2_test.dart.expect
@@ -0,0 +1,67 @@
+library field_initializer2_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get $is$A() → core::bool
+    return true;
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends core::Object implements int::HasRuntimeTypeGetter {
+  field dynamic x;
+  field dynamic y;
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::B::x = self::B::$init$x($type), self::B::$type = $type, self::B::y = new self::A::•(new typ::Interface::•(self::$declarations.[](0), typ::getTypeArguments(typ::asInstanceOf($type, self::$declarations.[](1))))), super core::Object::•()
+    ;
+  get $B$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+  get $is$A() → core::bool
+    return false;
+  get runtimeType() → core::Type
+    return this.{=self::B::$type};
+  static method $init$x(dynamic $type) → dynamic
+    return new self::A::•(new typ::Interface::•(self::$declarations.[](0), typ::getTypeArguments(typ::asInstanceOf($type, self::$declarations.[](1)))));
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](15)));
+  dec::init(d, 1, new typ::Interface::•(d.[](15)));
+  dec::init(d, 2, new typ::Interface::•(d.[](15)));
+  dec::init(d, 3, new typ::Interface::•(d.[](15)));
+  dec::init(d, 4, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](4))]), new typ::Interface::•(d.[](18))]);
+  dec::init(d, 5, new typ::Interface::•(d.[](19)));
+  dec::init(d, 6, new typ::Interface::•(d.[](19)));
+  dec::init(d, 7, new typ::Interface::•(d.[](15)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)));
+  dec::init(d, 10, new typ::Interface::•(d.[](20)));
+  dec::init(d, 11, new typ::Interface::•(d.[](20)));
+  dec::init(d, 12, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](21))]);
+  dec::init(d, 13, new typ::Interface::•(d.[](14)));
+  dec::init(d, 14, new typ::Interface::•(d.[](20)));
+  dec::init(d, 15, null);
+  dec::init(d, 17, new typ::Interface::•(d.[](15)));
+  dec::init(d, 18, new typ::Interface::•(d.[](15)));
+  dec::init(d, 19, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](19))])]);
+  dec::init(d, 20, new typ::Interface::•(d.[](15)));
+  dec::init(d, 21, new typ::Interface::•(d.[](15)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  dynamic b = new self::B::•(new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()])]));
+  tes::expectTrue(let dynamic #t1 = b.x in #t1 is int::HasRuntimeTypeGetter && #t1.$is$A && (let dynamic #t2 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()])]) in typ::isSubtypeOf(#t1.$type, #t2)));
+  tes::expectTrue(let dynamic #t3 = b.y in #t3 is int::HasRuntimeTypeGetter && #t3.$is$A && (let dynamic #t4 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()])]) in typ::isSubtypeOf(#t3.$type, #t4)));
+  tes::expectFalse(let dynamic #t5 = b.x in #t5 is int::HasRuntimeTypeGetter && #t5.$is$A && (let dynamic #t6 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](1), <dynamic>[const typ::Dynamic::•()])]) in typ::isSubtypeOf(#t5.$type, #t6)));
+  tes::expectFalse(let dynamic #t7 = b.y in #t7 is int::HasRuntimeTypeGetter && #t7.$is$A && (let dynamic #t8 = new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](1), <dynamic>[const typ::Dynamic::•()])]) in typ::isSubtypeOf(#t7.$type, #t8)));
+}
diff --git a/pkg/kernel/testcases/reify/field_initializer_test.dart b/pkg/kernel/testcases/reify/field_initializer_test.dart
new file mode 100644
index 0000000..d1e4c9c
--- /dev/null
+++ b/pkg/kernel/testcases/reify/field_initializer_test.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library field_initializer_test;
+
+import 'test_base.dart';
+
+p(x) {
+  write(x);
+  return x;
+}
+
+class A<T> {
+  var a1 = p("a1");
+  var a2;
+
+  A() : a2 = p("a2") {
+    p("A");
+  }
+}
+
+class B<T> extends A<T> {
+  var b1 = p("b1");
+  var b2 = p("b2");
+  var b3;
+  var b4;
+
+  B()
+      : b3 = p("b3"),
+        b4 = p("b4"),
+        super() {
+    p("B");
+  }
+}
+
+main() {
+  var b = new B();
+  expectOutput("b1\nb2\nb3\nb4\na1\na2\nA\nB");
+}
diff --git a/pkg/kernel/testcases/reify/field_initializer_test.dart.expect b/pkg/kernel/testcases/reify/field_initializer_test.dart.expect
new file mode 100644
index 0000000..f5ad332
--- /dev/null
+++ b/pkg/kernel/testcases/reify/field_initializer_test.dart.expect
@@ -0,0 +1,65 @@
+library field_initializer_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  field dynamic a1 = self::p("a1");
+  field dynamic a2;
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, self::A::a2 = self::p("a2"), super core::Object::•() {
+    self::p("A");
+  }
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  field dynamic b1 = self::p("b1");
+  field dynamic b2 = self::p("b2");
+  field dynamic b3;
+  field dynamic b4;
+  constructor •(typ::ReifiedType $type) → void
+    : self::B::b3 = self::p("b3"), self::B::b4 = self::p("b4"), super self::A::•($type) {
+    self::p("B");
+  }
+  get $B$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](15)));
+  dec::init(d, 1, new typ::Interface::•(d.[](0), <dynamic>[d.[](1).variables.[](0)]));
+  dec::init(d, 2, new typ::Interface::•(d.[](15)));
+  dec::init(d, 3, new typ::Interface::•(d.[](15)));
+  dec::init(d, 4, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](4))]), new typ::Interface::•(d.[](18))]);
+  dec::init(d, 5, new typ::Interface::•(d.[](19)));
+  dec::init(d, 6, new typ::Interface::•(d.[](19)));
+  dec::init(d, 7, new typ::Interface::•(d.[](15)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)));
+  dec::init(d, 10, new typ::Interface::•(d.[](20)));
+  dec::init(d, 11, new typ::Interface::•(d.[](20)));
+  dec::init(d, 12, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](21))]);
+  dec::init(d, 13, new typ::Interface::•(d.[](14)));
+  dec::init(d, 14, new typ::Interface::•(d.[](20)));
+  dec::init(d, 15, null);
+  dec::init(d, 17, new typ::Interface::•(d.[](15)));
+  dec::init(d, 18, new typ::Interface::•(d.[](15)));
+  dec::init(d, 19, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](19))])]);
+  dec::init(d, 20, new typ::Interface::•(d.[](15)));
+  dec::init(d, 21, new typ::Interface::•(d.[](15)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method p(dynamic x) → dynamic {
+  tes::write(x);
+  return x;
+}
+static method main() → dynamic {
+  dynamic b = new self::B::•(new typ::Interface::•(self::$declarations.[](1), <dynamic>[const typ::Dynamic::•()]));
+  tes::expectOutput("b1\nb2\nb3\nb4\na1\na2\nA\nB");
+}
diff --git a/pkg/kernel/testcases/reify/function_type_test.dart b/pkg/kernel/testcases/reify/function_type_test.dart
new file mode 100644
index 0000000..b67b743
--- /dev/null
+++ b/pkg/kernel/testcases/reify/function_type_test.dart
@@ -0,0 +1,266 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library function_type_test;
+
+import 'test_base.dart';
+
+class A {}
+
+class B extends A {}
+
+class C extends A {}
+
+class D implements Function {
+  B call(A a) {
+    return null;
+  }
+}
+
+class ER0P1 {
+  void call([A a]) {}
+}
+
+class ER1P0 {
+  void call(A a) {}
+}
+
+class ER1P1 {
+  void call(A a, [B b]) {}
+}
+
+class ER1P2 {
+  void call(A a, [B b, C c]) {}
+}
+
+class ER2P1 {
+  void call(A a, B b, [C c]) {}
+}
+
+class ER0N1 {
+  void call({A a}) {}
+}
+
+class ER1N0 {
+  void call(A a) {}
+}
+
+class ER1N1 {
+  void call(A a, {B b}) {}
+}
+
+class ER1N2 {
+  void call(A a, {B b, C c}) {}
+}
+
+class ER2N1 {
+  void call(A a, B b, {C c}) {}
+}
+
+class ER0N8 {
+  void call({kE, ii, oP, Ij, pA, zD, aZ, UU}) {}
+}
+
+C foo(A a) {
+  return null;
+}
+
+typedef B A2B(A a);
+
+typedef C C2C(C c);
+
+typedef void R0P1([A a]);
+typedef void R1P0(A a);
+typedef void R1P1(A a, [B b]);
+typedef void R1P2(A a, [B b, C c]);
+typedef void R2P1(A a, B b, [C c]);
+
+typedef void R0N1({A a});
+typedef void R1N0(A a);
+typedef void R1N1(A a, {B b});
+typedef void R1N2(A a, {B b, C c});
+typedef void R2N1(A a, B b, {C c});
+
+typedef void R0N8({aZ, oP, Ij, kE, pA, zD, UU, ii});
+
+void test(x) {
+  write(x is Function);
+  write(x is A2B);
+  write(x is C2C);
+
+  write(x is R0P1);
+  write(x is R1P0);
+  write(x is R1P1);
+  write(x is R1P2);
+  write(x is R2P1);
+
+  write(x is R0N1);
+  write(x is R1N0);
+  write(x is R1N1);
+  write(x is R1N2);
+  write(x is R2N1);
+}
+
+main() {
+  test(new D());
+  for (var c in [
+    new ER0P1(),
+    new ER1P0(),
+    new ER1P1(),
+    new ER1P2(),
+    new ER2P1(),
+    new ER0N1(),
+    new ER1N0(),
+    new ER1N1(),
+    new ER1N2(),
+    new ER2N1()
+  ]) {
+    test(c);
+  }
+
+  expectOutput("""
+true
+true
+false
+false
+true
+false
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+true
+true
+false
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+true
+true
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+true
+true
+true
+true
+false
+true
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+false
+false
+false
+true
+false
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+false
+true
+true
+false
+false
+true
+false
+false
+false
+true
+false
+false
+false
+false
+true
+true
+true
+false
+true
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+false
+true""");
+}
diff --git a/pkg/kernel/testcases/reify/function_type_test.dart.expect b/pkg/kernel/testcases/reify/function_type_test.dart.expect
new file mode 100644
index 0000000..7d49eff
--- /dev/null
+++ b/pkg/kernel/testcases/reify/function_type_test.dart.expect
@@ -0,0 +1,223 @@
+library function_type_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$Function() → core::bool
+    return false;
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::A::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$Function() → core::bool
+    return false;
+}
+class C extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::A::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+  get $is$Function() → core::bool
+    return false;
+}
+class D extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a) → self::B {
+    return null;
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](3));
+  get $is$Function() → core::bool
+    return true;
+}
+class ER0P1 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call([self::A a]) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](4));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER1P0 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](5));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER1P1 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a, [self::B b]) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](6));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER1P2 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a, [self::B b, self::C c]) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](7));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER2P1 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a, self::B b, [self::C c]) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](8));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER0N1 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call({self::A a}) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](9));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER1N0 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](10));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER1N1 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a, {self::B b}) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](11));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER1N2 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a, {self::B b, self::C c}) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](12));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER2N1 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call(self::A a, self::B b, {self::C c}) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](13));
+  get $is$Function() → core::bool
+    return false;
+}
+class ER0N8 extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  method call({dynamic kE, dynamic ii, dynamic oP, dynamic Ij, dynamic pA, dynamic zD, dynamic aZ, dynamic UU}) → void {}
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](14));
+  get $is$Function() → core::bool
+    return false;
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](30)));
+  dec::init(d, 1, new typ::Interface::•(d.[](0)));
+  dec::init(d, 2, new typ::Interface::•(d.[](0)));
+  dec::init(d, 3, new typ::Interface::•(d.[](30)), <dynamic>[new typ::Interface::•(d.[](15))], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Interface::•(d.[](1)), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 4, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 2, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 5, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 6, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 2, <dynamic>[new typ::Interface::•(d.[](0)), new typ::Interface::•(d.[](1))]));
+  dec::init(d, 7, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 4, <dynamic>[new typ::Interface::•(d.[](0)), new typ::Interface::•(d.[](1)), new typ::Interface::•(d.[](2))]));
+  dec::init(d, 8, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 2, <dynamic>[new typ::Interface::•(d.[](0)), new typ::Interface::•(d.[](1)), new typ::Interface::•(d.[](2))]));
+  dec::init(d, 9, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 3, <dynamic>["a", new typ::Interface::•(d.[](0))]));
+  dec::init(d, 10, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 0, <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 11, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 3, <dynamic>[new typ::Interface::•(d.[](0)), "b", new typ::Interface::•(d.[](1))]));
+  dec::init(d, 12, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 5, <dynamic>[new typ::Interface::•(d.[](0)), "b", new typ::Interface::•(d.[](1)), "c", new typ::Interface::•(d.[](2))]));
+  dec::init(d, 13, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 3, <dynamic>[new typ::Interface::•(d.[](0)), new typ::Interface::•(d.[](1)), "c", new typ::Interface::•(d.[](2))]));
+  dec::init(d, 14, new typ::Interface::•(d.[](30)), <dynamic>[], new typ::FunctionType::•(new typ::Interface::•(d.[](15)), new typ::Void::•(), 17, <dynamic>["kE", const typ::Dynamic::•(), "ii", const typ::Dynamic::•(), "oP", const typ::Dynamic::•(), "Ij", const typ::Dynamic::•(), "pA", const typ::Dynamic::•(), "zD", const typ::Dynamic::•(), "aZ", const typ::Dynamic::•(), "UU", const typ::Dynamic::•()]));
+  dec::init(d, 15, new typ::Interface::•(d.[](30)));
+  dec::init(d, 16, new typ::Interface::•(d.[](30)), <dynamic>[new typ::Interface::•(d.[](32), <dynamic>[d.[](16).variables.[](0)])]);
+  dec::init(d, 17, new typ::Interface::•(d.[](30)));
+  dec::init(d, 18, new typ::Interface::•(d.[](30)));
+  dec::init(d, 19, new typ::Interface::•(d.[](30)), <dynamic>[new typ::Interface::•(d.[](33), <dynamic>[new typ::Interface::•(d.[](19))]), new typ::Interface::•(d.[](34))]);
+  dec::init(d, 20, new typ::Interface::•(d.[](35)));
+  dec::init(d, 21, new typ::Interface::•(d.[](35)));
+  dec::init(d, 22, new typ::Interface::•(d.[](30)));
+  dec::init(d, 23, new typ::Interface::•(d.[](36)));
+  dec::init(d, 24, new typ::Interface::•(d.[](36)));
+  dec::init(d, 25, new typ::Interface::•(d.[](36)));
+  dec::init(d, 26, new typ::Interface::•(d.[](36)));
+  dec::init(d, 27, new typ::Interface::•(d.[](30)), <dynamic>[new typ::Interface::•(d.[](37))]);
+  dec::init(d, 28, new typ::Interface::•(d.[](29)));
+  dec::init(d, 29, new typ::Interface::•(d.[](36)));
+  dec::init(d, 30, null);
+  dec::init(d, 32, new typ::Interface::•(d.[](38), <dynamic>[d.[](32).variables.[](0)]));
+  dec::init(d, 33, new typ::Interface::•(d.[](30)));
+  dec::init(d, 34, new typ::Interface::•(d.[](30)));
+  dec::init(d, 35, new typ::Interface::•(d.[](30)), <dynamic>[new typ::Interface::•(d.[](33), <dynamic>[new typ::Interface::•(d.[](35))])]);
+  dec::init(d, 36, new typ::Interface::•(d.[](30)));
+  dec::init(d, 37, new typ::Interface::•(d.[](30)));
+  dec::init(d, 38, new typ::Interface::•(d.[](30)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "C", "D", "ER0P1", "ER1P0", "ER1P1", "ER1P2", "ER2P1", "ER0N1", "ER1N0", "ER1N1", "ER1N2", "ER2N1", "ER0N8", "Function", "List", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "EfficientLengthIterable", "Comparable", "Pattern", "num", "Error", "Exception", "Iterable"], <dynamic>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1]));
+static method foo(self::A a) → self::C {
+  return null;
+}
+static method test(dynamic x) → void {
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::Interface::•(self::$declarations.[](15))));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Interface::•(self::$declarations.[](1)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Interface::•(self::$declarations.[](2)), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](2))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 2, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 2, <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 4, <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1)), new typ::Interface::•(self::$declarations.[](2))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 2, <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1)), new typ::Interface::•(self::$declarations.[](2))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 3, <dynamic>["a", new typ::Interface::•(self::$declarations.[](0))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 0, <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 3, <dynamic>[new typ::Interface::•(self::$declarations.[](0)), "b", new typ::Interface::•(self::$declarations.[](1))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 5, <dynamic>[new typ::Interface::•(self::$declarations.[](0)), "b", new typ::Interface::•(self::$declarations.[](1)), "c", new typ::Interface::•(self::$declarations.[](2))])));
+  tes::write(typ::isSubtypeOf(int::type(x), new typ::FunctionType::•(new typ::Interface::•(self::$declarations.[](15)), new typ::Void::•(), 3, <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1)), "c", new typ::Interface::•(self::$declarations.[](2))])));
+}
+static method main() → dynamic {
+  self::test(new self::D::•());
+  for (dynamic c in int::attachType(<dynamic>[new self::ER0P1::•(), new self::ER1P0::•(), new self::ER1P1::•(), new self::ER1P2::•(), new self::ER2P1::•(), new self::ER0N1::•(), new self::ER1N0::•(), new self::ER1N1::•(), new self::ER1N2::•(), new self::ER2N1::•()], new typ::Interface::•(self::$declarations.[](16), <dynamic>[const typ::Dynamic::•()]))) {
+    self::test(c);
+  }
+  tes::expectOutput("true\ntrue\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\ntrue\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\ntrue\ntrue\ntrue\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\ntrue\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\ntrue\ntrue\ntrue\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue");
+}
diff --git a/pkg/kernel/testcases/reify/is1_test.dart b/pkg/kernel/testcases/reify/is1_test.dart
new file mode 100644
index 0000000..e84dae9
--- /dev/null
+++ b/pkg/kernel/testcases/reify/is1_test.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library is1_test;
+
+import 'test_base.dart';
+
+class N {}
+
+class I extends N {}
+
+class D extends N {}
+
+class A<T> {}
+
+main() {
+  var x = new A<I>();
+  expectTrue(x is A<N>);
+  expectTrue(x is A<I>);
+  expectFalse(x is A<D>);
+
+  var y = new A();
+  expectTrue(y is A<N>);
+  expectTrue(y is A<I>);
+  expectTrue(y is A<D>);
+}
diff --git a/pkg/kernel/testcases/reify/is1_test.dart.expect b/pkg/kernel/testcases/reify/is1_test.dart.expect
new file mode 100644
index 0000000..7f3642a
--- /dev/null
+++ b/pkg/kernel/testcases/reify/is1_test.dart.expect
@@ -0,0 +1,83 @@
+library is1_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class N extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$A() → core::bool
+    return false;
+}
+class I extends self::N implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::N::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$A() → core::bool
+    return false;
+}
+class D extends self::N implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::N::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+  get $is$A() → core::bool
+    return false;
+}
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3))).[](0);
+  get $is$A() → core::bool
+    return true;
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](17)));
+  dec::init(d, 1, new typ::Interface::•(d.[](0)));
+  dec::init(d, 2, new typ::Interface::•(d.[](0)));
+  dec::init(d, 3, new typ::Interface::•(d.[](17)));
+  dec::init(d, 4, new typ::Interface::•(d.[](17)));
+  dec::init(d, 5, new typ::Interface::•(d.[](17)));
+  dec::init(d, 6, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](19), <dynamic>[new typ::Interface::•(d.[](6))]), new typ::Interface::•(d.[](20))]);
+  dec::init(d, 7, new typ::Interface::•(d.[](21)));
+  dec::init(d, 8, new typ::Interface::•(d.[](21)));
+  dec::init(d, 9, new typ::Interface::•(d.[](17)));
+  dec::init(d, 10, new typ::Interface::•(d.[](22)));
+  dec::init(d, 11, new typ::Interface::•(d.[](22)));
+  dec::init(d, 12, new typ::Interface::•(d.[](22)));
+  dec::init(d, 13, new typ::Interface::•(d.[](22)));
+  dec::init(d, 14, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](23))]);
+  dec::init(d, 15, new typ::Interface::•(d.[](16)));
+  dec::init(d, 16, new typ::Interface::•(d.[](22)));
+  dec::init(d, 17, null);
+  dec::init(d, 19, new typ::Interface::•(d.[](17)));
+  dec::init(d, 20, new typ::Interface::•(d.[](17)));
+  dec::init(d, 21, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](19), <dynamic>[new typ::Interface::•(d.[](21))])]);
+  dec::init(d, 22, new typ::Interface::•(d.[](17)));
+  dec::init(d, 23, new typ::Interface::•(d.[](17)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["N", "I", "D", "A", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  dynamic x = new self::A::•(new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]));
+  tes::expectTrue(let dynamic #t1 = x in #t1 is int::HasRuntimeTypeGetter && #t1.$is$A && (let dynamic #t2 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]) in typ::isSubtypeOf(#t1.$type, #t2)));
+  tes::expectTrue(let dynamic #t3 = x in #t3 is int::HasRuntimeTypeGetter && #t3.$is$A && (let dynamic #t4 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t3.$type, #t4)));
+  tes::expectFalse(let dynamic #t5 = x in #t5 is int::HasRuntimeTypeGetter && #t5.$is$A && (let dynamic #t6 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t5.$type, #t6)));
+  dynamic y = new self::A::•(new typ::Interface::•(self::$declarations.[](3), <dynamic>[const typ::Dynamic::•()]));
+  tes::expectTrue(let dynamic #t7 = y in #t7 is int::HasRuntimeTypeGetter && #t7.$is$A && (let dynamic #t8 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]) in typ::isSubtypeOf(#t7.$type, #t8)));
+  tes::expectTrue(let dynamic #t9 = y in #t9 is int::HasRuntimeTypeGetter && #t9.$is$A && (let dynamic #t10 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t9.$type, #t10)));
+  tes::expectTrue(let dynamic #t11 = y in #t11 is int::HasRuntimeTypeGetter && #t11.$is$A && (let dynamic #t12 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t11.$type, #t12)));
+}
diff --git a/pkg/kernel/testcases/reify/literals_test.dart b/pkg/kernel/testcases/reify/literals_test.dart
new file mode 100644
index 0000000..6b820dd
--- /dev/null
+++ b/pkg/kernel/testcases/reify/literals_test.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library literals_test;
+
+import 'test_base.dart';
+
+class A {}
+
+class B {}
+
+main() {
+  expectTrue(<A>[] is List<A>);
+  expectTrue(<A>[] is! List<B>);
+
+  expectTrue(<A, B>{} is Map<A, B>);
+  expectTrue(<A, B>{} is! Map<A, A>);
+  expectTrue(<A, B>{} is! Map<B, B>);
+}
diff --git a/pkg/kernel/testcases/reify/literals_test.dart.expect b/pkg/kernel/testcases/reify/literals_test.dart.expect
new file mode 100644
index 0000000..3d0d11d
--- /dev/null
+++ b/pkg/kernel/testcases/reify/literals_test.dart.expect
@@ -0,0 +1,65 @@
+library literals_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$List() → core::bool
+    return false;
+  get $is$Map() → core::bool
+    return false;
+}
+class B extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$List() → core::bool
+    return false;
+  get $is$Map() → core::bool
+    return false;
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](17)));
+  dec::init(d, 1, new typ::Interface::•(d.[](17)));
+  dec::init(d, 2, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](19), <dynamic>[d.[](2).variables.[](0)])]);
+  dec::init(d, 3, new typ::Interface::•(d.[](17)));
+  dec::init(d, 4, new typ::Interface::•(d.[](17)));
+  dec::init(d, 5, new typ::Interface::•(d.[](17)));
+  dec::init(d, 6, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](20), <dynamic>[new typ::Interface::•(d.[](6))]), new typ::Interface::•(d.[](21))]);
+  dec::init(d, 7, new typ::Interface::•(d.[](22)));
+  dec::init(d, 8, new typ::Interface::•(d.[](22)));
+  dec::init(d, 9, new typ::Interface::•(d.[](17)));
+  dec::init(d, 10, new typ::Interface::•(d.[](23)));
+  dec::init(d, 11, new typ::Interface::•(d.[](23)));
+  dec::init(d, 12, new typ::Interface::•(d.[](23)));
+  dec::init(d, 13, new typ::Interface::•(d.[](23)));
+  dec::init(d, 14, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](24))]);
+  dec::init(d, 15, new typ::Interface::•(d.[](16)));
+  dec::init(d, 16, new typ::Interface::•(d.[](23)));
+  dec::init(d, 17, null);
+  dec::init(d, 19, new typ::Interface::•(d.[](25), <dynamic>[d.[](19).variables.[](0)]));
+  dec::init(d, 20, new typ::Interface::•(d.[](17)));
+  dec::init(d, 21, new typ::Interface::•(d.[](17)));
+  dec::init(d, 22, new typ::Interface::•(d.[](17)), <dynamic>[new typ::Interface::•(d.[](20), <dynamic>[new typ::Interface::•(d.[](22))])]);
+  dec::init(d, 23, new typ::Interface::•(d.[](17)));
+  dec::init(d, 24, new typ::Interface::•(d.[](17)));
+  dec::init(d, 25, new typ::Interface::•(d.[](17)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "List", "Map", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "EfficientLengthIterable", "Comparable", "Pattern", "num", "Error", "Exception", "Iterable"], <dynamic>[0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1]));
+static method main() → dynamic {
+  tes::expectTrue(typ::isSubtypeOf(int::type(int::attachType(<self::A>[], new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]))), new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(int::attachType(<self::A>[], new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]))), new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](1))])));
+  tes::expectTrue(typ::isSubtypeOf(int::type(int::attachType(<self::A, self::B>{}, new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1))]))), new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(int::attachType(<self::A, self::B>{}, new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1))]))), new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](0))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(int::attachType(<self::A, self::B>{}, new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1))]))), new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](1)), new typ::Interface::•(self::$declarations.[](1))])));
+}
diff --git a/pkg/kernel/testcases/reify/multiple_variables_test.dart b/pkg/kernel/testcases/reify/multiple_variables_test.dart
new file mode 100644
index 0000000..5c33c33
--- /dev/null
+++ b/pkg/kernel/testcases/reify/multiple_variables_test.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library multiple_variables_test;
+
+import '../../runtime/reify/types.dart' as rti;
+
+class X<A, B, C, D, E> {}
+
+main() {}
diff --git a/pkg/kernel/testcases/reify/multiple_variables_test.dart.expect b/pkg/kernel/testcases/reify/multiple_variables_test.dart.expect
new file mode 100644
index 0000000..9b1dccf
--- /dev/null
+++ b/pkg/kernel/testcases/reify/multiple_variables_test.dart.expect
@@ -0,0 +1,49 @@
+library multiple_variables_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::X::$type = $type, super core::Object::•()
+    ;
+  get $X$A() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get $X$B() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](1);
+  get $X$C() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](2);
+  get $X$D() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](3);
+  get $X$E() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](4);
+  get runtimeType() → core::Type
+    return this.{=self::X::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](14)));
+  dec::init(d, 1, new typ::Interface::•(d.[](14)));
+  dec::init(d, 2, new typ::Interface::•(d.[](14)));
+  dec::init(d, 3, new typ::Interface::•(d.[](14)), <dynamic>[new typ::Interface::•(d.[](16), <dynamic>[new typ::Interface::•(d.[](3))]), new typ::Interface::•(d.[](17))]);
+  dec::init(d, 4, new typ::Interface::•(d.[](18)));
+  dec::init(d, 5, new typ::Interface::•(d.[](18)));
+  dec::init(d, 6, new typ::Interface::•(d.[](14)));
+  dec::init(d, 7, new typ::Interface::•(d.[](19)));
+  dec::init(d, 8, new typ::Interface::•(d.[](19)));
+  dec::init(d, 9, new typ::Interface::•(d.[](19)));
+  dec::init(d, 10, new typ::Interface::•(d.[](19)));
+  dec::init(d, 11, new typ::Interface::•(d.[](14)), <dynamic>[new typ::Interface::•(d.[](20))]);
+  dec::init(d, 12, new typ::Interface::•(d.[](13)));
+  dec::init(d, 13, new typ::Interface::•(d.[](19)));
+  dec::init(d, 14, null);
+  dec::init(d, 16, new typ::Interface::•(d.[](14)));
+  dec::init(d, 17, new typ::Interface::•(d.[](14)));
+  dec::init(d, 18, new typ::Interface::•(d.[](14)), <dynamic>[new typ::Interface::•(d.[](16), <dynamic>[new typ::Interface::•(d.[](18))])]);
+  dec::init(d, 19, new typ::Interface::•(d.[](14)));
+  dec::init(d, 20, new typ::Interface::•(d.[](14)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["X", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {}
diff --git a/pkg/kernel/testcases/reify/native_types_test.dart b/pkg/kernel/testcases/reify/native_types_test.dart
new file mode 100644
index 0000000..08de359
--- /dev/null
+++ b/pkg/kernel/testcases/reify/native_types_test.dart
@@ -0,0 +1,47 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library native_types;
+
+import 'test_base.dart';
+
+abstract class C {}
+
+class D {}
+
+var foo = bar;
+var bar = foo;
+
+main() {
+  expectTrue(1 is int);
+  expectTrue(1 is! double);
+
+  expectTrue(new List<int>() is List<int>);
+  expectTrue(new List<int>() is! List<double>);
+  expectTrue("hest" is String);
+  expectTrue("hest" is! int);
+
+  expectTrue(null is! String);
+  expectTrue(null is dynamic);
+  expectTrue(null is Object);
+
+  expectTrue(true is bool);
+  expectTrue(true is! int);
+
+  // Test error and exception classes
+  expectThrows(() => new C(), (e) => e is AbstractClassInstantiationError);  /// 01: static type warning
+
+  expectThrows(() => new D().foo(), (e) => e is NoSuchMethodError);  /// 02: static type warning
+
+  expectThrows(() => foo, (e) => e is CyclicInitializationError);
+
+  expectThrows(() => [][1], (e) => e is RangeError);
+
+  expectTrue(new UnsupportedError("") is UnsupportedError);
+
+  expectTrue(new ArgumentError() is ArgumentError);
+
+  expectTrue(
+      new IntegerDivisionByZeroException() is IntegerDivisionByZeroException);
+}
diff --git a/pkg/kernel/testcases/reify/native_types_test.dart.expect b/pkg/kernel/testcases/reify/native_types_test.dart.expect
new file mode 100644
index 0000000..0000d2f
--- /dev/null
+++ b/pkg/kernel/testcases/reify/native_types_test.dart.expect
@@ -0,0 +1,453 @@
+library native_types;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "dart:mock" as mock;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+abstract class C extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class D extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function::context = context
+    ;
+  method call() → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function::context};
+    return throw int::attachType(new core::AbstractClassInstantiationError::•("C"), new typ::Interface::•(self::$declarations.[](3)));
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#1 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#1::context = context
+    ;
+  method call(dynamic e) → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#1::context};
+    return typ::isSubtypeOf(int::type(e), new typ::Interface::•(self::$declarations.[](3)));
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](4));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#2 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#2::context = context
+    ;
+  method call() → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#2::context};
+    return new self::D::•().foo();
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](5));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#3 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#3::context = context
+    ;
+  method call(dynamic e) → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#3::context};
+    return typ::isSubtypeOf(int::type(e), new typ::Interface::•(self::$declarations.[](7)));
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](6));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#4 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#4::context = context
+    ;
+  method call() → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#4::context};
+    return self::foo;
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](8));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#5 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#5::context = context
+    ;
+  method call(dynamic e) → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#5::context};
+    return typ::isSubtypeOf(int::type(e), new typ::Interface::•(self::$declarations.[](10)));
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](9));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#6 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#6::context = context
+    ;
+  method call() → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#6::context};
+    return int::attachType(<dynamic>[], new typ::Interface::•(self::$declarations.[](12), <dynamic>[const typ::Dynamic::•()])).[](1);
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](11));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+class Closure#main#function#7 extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field mock::Context context;
+  constructor •(final mock::Context context) → dynamic
+    : self::Closure#main#function#7::context = context
+    ;
+  method call(dynamic e) → dynamic {
+    "This is a temporary solution. In the VM, this will become an additional parameter.";
+    final mock::Context #contextParameter = this.{self::Closure#main#function#7::context};
+    return typ::isSubtypeOf(int::type(e), new typ::Interface::•(self::$declarations.[](14)));
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](13));
+  get $is$AbstractClassInstantiationError() → core::bool
+    return false;
+  get $is$NoSuchMethodError() → core::bool
+    return false;
+  get $is$CyclicInitializationError() → core::bool
+    return false;
+  get $is$RangeError() → core::bool
+    return false;
+  get $is$int() → core::bool
+    return false;
+  get $is$double() → core::bool
+    return false;
+  get $is$List() → core::bool
+    return false;
+  get $is$String() → core::bool
+    return false;
+  get $is$Object() → core::bool
+    return true;
+  get $is$bool() → core::bool
+    return false;
+  get $is$UnsupportedError() → core::bool
+    return false;
+  get $is$ArgumentError() → core::bool
+    return false;
+  get $is$IntegerDivisionByZeroException() → core::bool
+    return false;
+}
+static field dynamic foo = self::bar;
+static field dynamic bar = self::foo;
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](18)));
+  dec::init(d, 1, new typ::Interface::•(d.[](18)));
+  dec::init(d, 2, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[]));
+  dec::init(d, 3, new typ::Interface::•(d.[](27)));
+  dec::init(d, 4, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 5, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[]));
+  dec::init(d, 6, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 7, new typ::Interface::•(d.[](27)));
+  dec::init(d, 8, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[]));
+  dec::init(d, 9, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 10, new typ::Interface::•(d.[](27)));
+  dec::init(d, 11, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[]));
+  dec::init(d, 12, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](28), <dynamic>[d.[](12).variables.[](0)])]);
+  dec::init(d, 13, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](26))], new typ::FunctionType::•(new typ::Interface::•(d.[](26)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 14, new typ::Interface::•(d.[](21)));
+  dec::init(d, 15, new typ::Interface::•(d.[](29)));
+  dec::init(d, 16, new typ::Interface::•(d.[](29)));
+  dec::init(d, 17, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](30), <dynamic>[new typ::Interface::•(d.[](17))]), new typ::Interface::•(d.[](31))]);
+  dec::init(d, 18, null);
+  dec::init(d, 19, new typ::Interface::•(d.[](18)));
+  dec::init(d, 20, new typ::Interface::•(d.[](27)));
+  dec::init(d, 21, new typ::Interface::•(d.[](27)));
+  dec::init(d, 22, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](32))]);
+  dec::init(d, 23, new typ::Interface::•(d.[](18)));
+  dec::init(d, 24, new typ::Interface::•(d.[](18)));
+  dec::init(d, 26, new typ::Interface::•(d.[](18)));
+  dec::init(d, 27, new typ::Interface::•(d.[](18)));
+  dec::init(d, 28, new typ::Interface::•(d.[](33), <dynamic>[d.[](28).variables.[](0)]));
+  dec::init(d, 29, new typ::Interface::•(d.[](18)), <dynamic>[new typ::Interface::•(d.[](30), <dynamic>[new typ::Interface::•(d.[](29))])]);
+  dec::init(d, 30, new typ::Interface::•(d.[](18)));
+  dec::init(d, 31, new typ::Interface::•(d.[](18)));
+  dec::init(d, 32, new typ::Interface::•(d.[](18)));
+  dec::init(d, 33, new typ::Interface::•(d.[](18)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["C", "D", "Closure#main#function", "AbstractClassInstantiationError", "Closure#main#function#1", "Closure#main#function#2", "Closure#main#function#3", "NoSuchMethodError", "Closure#main#function#4", "Closure#main#function#5", "CyclicInitializationError", "Closure#main#function#6", "List", "Closure#main#function#7", "RangeError", "int", "double", "String", "Object", "bool", "UnsupportedError", "ArgumentError", "IntegerDivisionByZeroException", "Null", "Type", "HasRuntimeTypeGetter", "Function", "Error", "EfficientLengthIterable", "num", "Comparable", "Pattern", "Exception", "Iterable"], <dynamic>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1]));
+static method main() → dynamic {
+  tes::expectTrue(typ::isSubtypeOf(int::type(1), new typ::Interface::•(self::$declarations.[](15))));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(1), new typ::Interface::•(self::$declarations.[](16))));
+  tes::expectTrue(typ::isSubtypeOf(int::type(int::attachType(core::List::_internal<core::int>(), new typ::Interface::•(self::$declarations.[](12), <dynamic>[new typ::Interface::•(self::$declarations.[](15))]))), new typ::Interface::•(self::$declarations.[](12), <dynamic>[new typ::Interface::•(self::$declarations.[](15))])));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(int::attachType(core::List::_internal<core::int>(), new typ::Interface::•(self::$declarations.[](12), <dynamic>[new typ::Interface::•(self::$declarations.[](15))]))), new typ::Interface::•(self::$declarations.[](12), <dynamic>[new typ::Interface::•(self::$declarations.[](16))])));
+  tes::expectTrue(typ::isSubtypeOf(int::type("hest"), new typ::Interface::•(self::$declarations.[](17))));
+  tes::expectTrue(!typ::isSubtypeOf(int::type("hest"), new typ::Interface::•(self::$declarations.[](15))));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(null), new typ::Interface::•(self::$declarations.[](17))));
+  tes::expectTrue(typ::isSubtypeOf(int::type(null), const typ::Dynamic::•()));
+  tes::expectTrue(typ::isSubtypeOf(int::type(null), new typ::Interface::•(self::$declarations.[](18))));
+  tes::expectTrue(typ::isSubtypeOf(int::type(true), new typ::Interface::•(self::$declarations.[](19))));
+  tes::expectTrue(!typ::isSubtypeOf(int::type(true), new typ::Interface::•(self::$declarations.[](15))));
+  tes::expectThrows(new self::Closure#main#function::•(null), new self::Closure#main#function#1::•(null));
+  tes::expectThrows(new self::Closure#main#function#2::•(null), new self::Closure#main#function#3::•(null));
+  tes::expectThrows(new self::Closure#main#function#4::•(null), new self::Closure#main#function#5::•(null));
+  tes::expectThrows(new self::Closure#main#function#6::•(null), new self::Closure#main#function#7::•(null));
+  tes::expectTrue(typ::isSubtypeOf(int::type(int::attachType(new core::UnsupportedError::•(""), new typ::Interface::•(self::$declarations.[](20)))), new typ::Interface::•(self::$declarations.[](20))));
+  tes::expectTrue(typ::isSubtypeOf(int::type(int::attachType(new core::ArgumentError::•(), new typ::Interface::•(self::$declarations.[](21)))), new typ::Interface::•(self::$declarations.[](21))));
+  tes::expectTrue(typ::isSubtypeOf(int::type(int::attachType(new core::IntegerDivisionByZeroException::•(), new typ::Interface::•(self::$declarations.[](22)))), new typ::Interface::•(self::$declarations.[](22))));
+}
diff --git a/pkg/kernel/testcases/reify/reuse_type_variables_test.dart b/pkg/kernel/testcases/reify/reuse_type_variables_test.dart
new file mode 100644
index 0000000..1e6cdc2
--- /dev/null
+++ b/pkg/kernel/testcases/reify/reuse_type_variables_test.dart
@@ -0,0 +1,42 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library reuse_type_variables_test;
+
+import 'test_base.dart';
+
+class X {}
+
+class Y {}
+
+class Z {}
+
+class C<T, U, V> {
+  foo() => new D<T, U, V>();
+  bar() => new E<T, U>();
+  hest() => new D<T, V, U>();
+}
+
+class D<T, U, V> {
+  baz() => new C<T, U, V>();
+}
+
+class E<T, U> {
+  qux() => new C<T, U, U>();
+}
+
+main() {
+  var c = new C<X, Y, Z>();
+  var d = c.foo();
+  expectTrue(d is D<X, Y, Z>);
+  d = c.hest();
+  expectTrue(d is! D<X, Y, Z>);
+  expectTrue(d is D<X, Z, Y>);
+  c = d.baz();
+  expectTrue(c is C<X, Z, Y>);
+  var e = c.bar();
+  expectTrue(e is E<X, Z>);
+  c = e.qux();
+  expectTrue(c is C<X, Z, Z>);
+}
diff --git a/pkg/kernel/testcases/reify/reuse_type_variables_test.dart.expect b/pkg/kernel/testcases/reify/reuse_type_variables_test.dart.expect
new file mode 100644
index 0000000..ebdfa26
--- /dev/null
+++ b/pkg/kernel/testcases/reify/reuse_type_variables_test.dart.expect
@@ -0,0 +1,162 @@
+library reuse_type_variables_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$D() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return false;
+  get $is$E() → core::bool
+    return false;
+}
+class Y extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$D() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return false;
+  get $is$E() → core::bool
+    return false;
+}
+class Z extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+  get $is$D() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return false;
+  get $is$E() → core::bool
+    return false;
+}
+class C extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::C::$type = $type, super core::Object::•()
+    ;
+  method foo() → dynamic {
+    return new self::D::•(new typ::Interface::•(self::$declarations.[](4), typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3)))));
+  }
+  method bar() → dynamic {
+    return new self::E::•(new typ::Interface::•(self::$declarations.[](5), <dynamic>[this.$C$T, this.$C$U]));
+  }
+  method hest() → dynamic {
+    return new self::D::•(new typ::Interface::•(self::$declarations.[](4), <dynamic>[this.$C$T, this.$C$V, this.$C$U]));
+  }
+  get $C$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3))).[](0);
+  get $C$U() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3))).[](1);
+  get $C$V() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3))).[](2);
+  get $is$D() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return true;
+  get $is$E() → core::bool
+    return false;
+  get runtimeType() → core::Type
+    return this.{=self::C::$type};
+}
+class D extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::D::$type = $type, super core::Object::•()
+    ;
+  method baz() → dynamic {
+    return new self::C::•(new typ::Interface::•(self::$declarations.[](3), typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](4)))));
+  }
+  get $D$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](4))).[](0);
+  get $D$U() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](4))).[](1);
+  get $D$V() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](4))).[](2);
+  get $is$D() → core::bool
+    return true;
+  get $is$C() → core::bool
+    return false;
+  get $is$E() → core::bool
+    return false;
+  get runtimeType() → core::Type
+    return this.{=self::D::$type};
+}
+class E extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::E::$type = $type, super core::Object::•()
+    ;
+  method qux() → dynamic {
+    return new self::C::•(new typ::Interface::•(self::$declarations.[](3), <dynamic>[this.$E$T, this.$E$U, this.$E$U]));
+  }
+  get $E$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](5))).[](0);
+  get $E$U() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](5))).[](1);
+  get $is$D() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return false;
+  get $is$E() → core::bool
+    return true;
+  get runtimeType() → core::Type
+    return this.{=self::E::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](19)));
+  dec::init(d, 1, new typ::Interface::•(d.[](19)));
+  dec::init(d, 2, new typ::Interface::•(d.[](19)));
+  dec::init(d, 3, new typ::Interface::•(d.[](19)));
+  dec::init(d, 4, new typ::Interface::•(d.[](19)));
+  dec::init(d, 5, new typ::Interface::•(d.[](19)));
+  dec::init(d, 6, new typ::Interface::•(d.[](19)));
+  dec::init(d, 7, new typ::Interface::•(d.[](19)));
+  dec::init(d, 8, new typ::Interface::•(d.[](19)), <dynamic>[new typ::Interface::•(d.[](21), <dynamic>[new typ::Interface::•(d.[](8))]), new typ::Interface::•(d.[](22))]);
+  dec::init(d, 9, new typ::Interface::•(d.[](23)));
+  dec::init(d, 10, new typ::Interface::•(d.[](23)));
+  dec::init(d, 11, new typ::Interface::•(d.[](19)));
+  dec::init(d, 12, new typ::Interface::•(d.[](24)));
+  dec::init(d, 13, new typ::Interface::•(d.[](24)));
+  dec::init(d, 14, new typ::Interface::•(d.[](24)));
+  dec::init(d, 15, new typ::Interface::•(d.[](24)));
+  dec::init(d, 16, new typ::Interface::•(d.[](19)), <dynamic>[new typ::Interface::•(d.[](25))]);
+  dec::init(d, 17, new typ::Interface::•(d.[](18)));
+  dec::init(d, 18, new typ::Interface::•(d.[](24)));
+  dec::init(d, 19, null);
+  dec::init(d, 21, new typ::Interface::•(d.[](19)));
+  dec::init(d, 22, new typ::Interface::•(d.[](19)));
+  dec::init(d, 23, new typ::Interface::•(d.[](19)), <dynamic>[new typ::Interface::•(d.[](21), <dynamic>[new typ::Interface::•(d.[](23))])]);
+  dec::init(d, 24, new typ::Interface::•(d.[](19)));
+  dec::init(d, 25, new typ::Interface::•(d.[](19)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["X", "Y", "Z", "C", "D", "E", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[0, 0, 0, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  dynamic c = new self::C::•(new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1)), new typ::Interface::•(self::$declarations.[](2))]));
+  dynamic d = c.foo();
+  tes::expectTrue(let dynamic #t1 = d in #t1 is int::HasRuntimeTypeGetter && #t1.$is$D && (let dynamic #t2 = new typ::Interface::•(self::$declarations.[](4), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1)), new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t1.$type, #t2)));
+  d = c.hest();
+  tes::expectTrue(!(let dynamic #t3 = d in #t3 is int::HasRuntimeTypeGetter && #t3.$is$D && (let dynamic #t4 = new typ::Interface::•(self::$declarations.[](4), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](1)), new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t3.$type, #t4))));
+  tes::expectTrue(let dynamic #t5 = d in #t5 is int::HasRuntimeTypeGetter && #t5.$is$D && (let dynamic #t6 = new typ::Interface::•(self::$declarations.[](4), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](2)), new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t5.$type, #t6)));
+  c = d.baz();
+  tes::expectTrue(let dynamic #t7 = c in #t7 is int::HasRuntimeTypeGetter && #t7.$is$C && (let dynamic #t8 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](2)), new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t7.$type, #t8)));
+  dynamic e = c.bar();
+  tes::expectTrue(let dynamic #t9 = e in #t9 is int::HasRuntimeTypeGetter && #t9.$is$E && (let dynamic #t10 = new typ::Interface::•(self::$declarations.[](5), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t9.$type, #t10)));
+  c = e.qux();
+  tes::expectTrue(let dynamic #t11 = c in #t11 is int::HasRuntimeTypeGetter && #t11.$is$C && (let dynamic #t12 = new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0)), new typ::Interface::•(self::$declarations.[](2)), new typ::Interface::•(self::$declarations.[](2))]) in typ::isSubtypeOf(#t11.$type, #t12)));
+}
diff --git a/pkg/kernel/testcases/reify/runtime_type_test.dart b/pkg/kernel/testcases/reify/runtime_type_test.dart
new file mode 100644
index 0000000..39b6b54
--- /dev/null
+++ b/pkg/kernel/testcases/reify/runtime_type_test.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library runtime_type_test;
+
+import 'test_base.dart';
+
+class A<T> {}
+
+class X {}
+
+class Y {}
+
+bool eqt(a, b) => a.runtimeType == b.runtimeType;
+
+main() {
+  expectTrue(eqt(new A(), new A<dynamic>()));
+  expectTrue(eqt(new A<X>(), new A<X>()));
+  expectFalse(eqt(new A<X>(), new A()));
+  expectFalse(eqt(new A<X>(), new A<Y>()));
+}
diff --git a/pkg/kernel/testcases/reify/runtime_type_test.dart.expect b/pkg/kernel/testcases/reify/runtime_type_test.dart.expect
new file mode 100644
index 0000000..360e853
--- /dev/null
+++ b/pkg/kernel/testcases/reify/runtime_type_test.dart.expect
@@ -0,0 +1,66 @@
+library runtime_type_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+}
+class Y extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](16)));
+  dec::init(d, 1, new typ::Interface::•(d.[](16)));
+  dec::init(d, 2, new typ::Interface::•(d.[](16)));
+  dec::init(d, 3, new typ::Interface::•(d.[](16)));
+  dec::init(d, 4, new typ::Interface::•(d.[](16)));
+  dec::init(d, 5, new typ::Interface::•(d.[](16)), <dynamic>[new typ::Interface::•(d.[](18), <dynamic>[new typ::Interface::•(d.[](5))]), new typ::Interface::•(d.[](19))]);
+  dec::init(d, 6, new typ::Interface::•(d.[](20)));
+  dec::init(d, 7, new typ::Interface::•(d.[](20)));
+  dec::init(d, 8, new typ::Interface::•(d.[](16)));
+  dec::init(d, 9, new typ::Interface::•(d.[](21)));
+  dec::init(d, 10, new typ::Interface::•(d.[](21)));
+  dec::init(d, 11, new typ::Interface::•(d.[](21)));
+  dec::init(d, 12, new typ::Interface::•(d.[](21)));
+  dec::init(d, 13, new typ::Interface::•(d.[](16)), <dynamic>[new typ::Interface::•(d.[](22))]);
+  dec::init(d, 14, new typ::Interface::•(d.[](15)));
+  dec::init(d, 15, new typ::Interface::•(d.[](21)));
+  dec::init(d, 16, null);
+  dec::init(d, 18, new typ::Interface::•(d.[](16)));
+  dec::init(d, 19, new typ::Interface::•(d.[](16)));
+  dec::init(d, 20, new typ::Interface::•(d.[](16)), <dynamic>[new typ::Interface::•(d.[](18), <dynamic>[new typ::Interface::•(d.[](20))])]);
+  dec::init(d, 21, new typ::Interface::•(d.[](16)));
+  dec::init(d, 22, new typ::Interface::•(d.[](16)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "X", "Y", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method eqt(dynamic a, dynamic b) → core::bool {
+  return a.runtimeType.==(b.runtimeType);
+}
+static method main() → dynamic {
+  tes::expectTrue(self::eqt(new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()])), new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()]))));
+  tes::expectTrue(self::eqt(new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](1))])), new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]))));
+  tes::expectFalse(self::eqt(new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](1))])), new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()]))));
+  tes::expectFalse(self::eqt(new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](1))])), new self::A::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](2))]))));
+}
diff --git a/pkg/kernel/testcases/reify/simple_test.dart b/pkg/kernel/testcases/reify/simple_test.dart
new file mode 100644
index 0000000..4a2d11f
--- /dev/null
+++ b/pkg/kernel/testcases/reify/simple_test.dart
@@ -0,0 +1,69 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library simple_test;
+
+import 'test_base.dart';
+
+class C {}
+
+class A implements C {}
+
+class B extends C {}
+
+class D extends B {}
+
+testIs(o) {
+  write(o is A);
+  write(o is B);
+  write(o is C);
+  write(o is D);
+}
+
+testIsNot(o) {
+  write(o is! A);
+  write(o is! B);
+  write(o is! C);
+  write(o is! D);
+}
+
+main() {
+  var objects = [new A(), new B(), new C(), new D()];
+  objects.forEach(testIs);
+  objects.forEach(testIsNot);
+
+  expectOutput("""
+true
+false
+true
+false
+false
+true
+true
+false
+false
+false
+true
+false
+false
+true
+true
+true
+false
+true
+false
+true
+true
+false
+false
+true
+true
+true
+false
+true
+true
+false
+false
+false""");
+}
diff --git a/pkg/kernel/testcases/reify/simple_test.dart.expect b/pkg/kernel/testcases/reify/simple_test.dart.expect
new file mode 100644
index 0000000..3023fe3
--- /dev/null
+++ b/pkg/kernel/testcases/reify/simple_test.dart.expect
@@ -0,0 +1,152 @@
+library simple_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class C extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return true;
+  get $is$D() → core::bool
+    return false;
+}
+class A extends core::Object implements self::C, int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$A() → core::bool
+    return true;
+  get $is$B() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return true;
+  get $is$D() → core::bool
+    return false;
+}
+class B extends self::C implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::C::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return true;
+  get $is$C() → core::bool
+    return true;
+  get $is$D() → core::bool
+    return false;
+}
+class D extends self::B implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::B::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](3));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return true;
+  get $is$C() → core::bool
+    return true;
+  get $is$D() → core::bool
+    return true;
+}
+class Closure#testIs extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(dynamic o) → dynamic
+    return self::testIs(o);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](4));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return false;
+  get $is$D() → core::bool
+    return false;
+}
+class Closure#testIsNot extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  constructor •() → dynamic
+    ;
+  method call(dynamic o) → dynamic
+    return self::testIsNot(o);
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](5));
+  get $is$A() → core::bool
+    return false;
+  get $is$B() → core::bool
+    return false;
+  get $is$C() → core::bool
+    return false;
+  get $is$D() → core::bool
+    return false;
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](20)));
+  dec::init(d, 1, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](0))]);
+  dec::init(d, 2, new typ::Interface::•(d.[](0)));
+  dec::init(d, 3, new typ::Interface::•(d.[](2)));
+  dec::init(d, 4, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](22))], new typ::FunctionType::•(new typ::Interface::•(d.[](22)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 5, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](22))], new typ::FunctionType::•(new typ::Interface::•(d.[](22)), const typ::Dynamic::•(), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 6, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](23), <dynamic>[d.[](6).variables.[](0)])]);
+  dec::init(d, 7, new typ::Interface::•(d.[](20)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](24), <dynamic>[new typ::Interface::•(d.[](9))]), new typ::Interface::•(d.[](25))]);
+  dec::init(d, 10, new typ::Interface::•(d.[](26)));
+  dec::init(d, 11, new typ::Interface::•(d.[](26)));
+  dec::init(d, 12, new typ::Interface::•(d.[](20)));
+  dec::init(d, 13, new typ::Interface::•(d.[](27)));
+  dec::init(d, 14, new typ::Interface::•(d.[](27)));
+  dec::init(d, 15, new typ::Interface::•(d.[](27)));
+  dec::init(d, 16, new typ::Interface::•(d.[](27)));
+  dec::init(d, 17, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](28))]);
+  dec::init(d, 18, new typ::Interface::•(d.[](19)));
+  dec::init(d, 19, new typ::Interface::•(d.[](27)));
+  dec::init(d, 20, null);
+  dec::init(d, 22, new typ::Interface::•(d.[](20)));
+  dec::init(d, 23, new typ::Interface::•(d.[](29), <dynamic>[d.[](23).variables.[](0)]));
+  dec::init(d, 24, new typ::Interface::•(d.[](20)));
+  dec::init(d, 25, new typ::Interface::•(d.[](20)));
+  dec::init(d, 26, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](24), <dynamic>[new typ::Interface::•(d.[](26))])]);
+  dec::init(d, 27, new typ::Interface::•(d.[](20)));
+  dec::init(d, 28, new typ::Interface::•(d.[](20)));
+  dec::init(d, 29, new typ::Interface::•(d.[](20)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["C", "A", "B", "D", "Closure#testIs", "Closure#testIsNot", "List", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Function", "EfficientLengthIterable", "Comparable", "Pattern", "num", "Error", "Exception", "Iterable"], <dynamic>[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1]));
+static method testIs(dynamic o) → dynamic {
+  tes::write(let dynamic #t1 = o in #t1 is int::HasRuntimeTypeGetter && #t1.$is$A);
+  tes::write(let dynamic #t2 = o in #t2 is int::HasRuntimeTypeGetter && #t2.$is$B);
+  tes::write(let dynamic #t3 = o in #t3 is int::HasRuntimeTypeGetter && #t3.$is$C);
+  tes::write(let dynamic #t4 = o in #t4 is int::HasRuntimeTypeGetter && #t4.$is$D);
+}
+static method testIsNot(dynamic o) → dynamic {
+  tes::write(!(let dynamic #t5 = o in #t5 is int::HasRuntimeTypeGetter && #t5.$is$A));
+  tes::write(!(let dynamic #t6 = o in #t6 is int::HasRuntimeTypeGetter && #t6.$is$B));
+  tes::write(!(let dynamic #t7 = o in #t7 is int::HasRuntimeTypeGetter && #t7.$is$C));
+  tes::write(!(let dynamic #t8 = o in #t8 is int::HasRuntimeTypeGetter && #t8.$is$D));
+}
+static method main() → dynamic {
+  dynamic objects = int::attachType(<dynamic>[new self::A::•(), new self::B::•(), new self::C::•(), new self::D::•()], new typ::Interface::•(self::$declarations.[](6), <dynamic>[const typ::Dynamic::•()]));
+  objects.forEach(new self::Closure#testIs::•());
+  objects.forEach(new self::Closure#testIsNot::•());
+  tes::expectOutput("true\nfalse\ntrue\nfalse\nfalse\ntrue\ntrue\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\ntrue\ntrue\ntrue\nfalse\ntrue\nfalse\ntrue\ntrue\nfalse\nfalse\ntrue\ntrue\ntrue\nfalse\ntrue\ntrue\nfalse\nfalse\nfalse");
+}
diff --git a/pkg/kernel/testcases/reify/subclass_test.dart b/pkg/kernel/testcases/reify/subclass_test.dart
new file mode 100644
index 0000000..5b5b6bc
--- /dev/null
+++ b/pkg/kernel/testcases/reify/subclass_test.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE.md file.
+
+library superclass_test;
+
+import 'test_base.dart';
+
+class X {}
+
+class Y {}
+
+class R<T> {}
+
+class A<T> {
+  foo() => new R<T>();
+}
+
+class B<T> extends A<T> {}
+
+class C<T> extends A<Y> {}
+
+class D<T> extends B<R<T>> {}
+
+main() {
+  expectTrue(new A<X>().foo() is R<X>);
+  expectTrue(new B<X>().foo() is R<X>);
+  expectTrue(new C<X>().foo() is R<Y>);
+  expectTrue(new D<X>().foo() is R<R<X>>);
+
+  expectTrue(new A<X>().foo() is! R<Y>);
+  expectTrue(new B<X>().foo() is! R<Y>);
+  expectTrue(new C<X>().foo() is! R<X>);
+  expectTrue(new D<X>().foo() is! R<R<Y>>);
+}
diff --git a/pkg/kernel/testcases/reify/subclass_test.dart.expect b/pkg/kernel/testcases/reify/subclass_test.dart.expect
new file mode 100644
index 0000000..55d42f8
--- /dev/null
+++ b/pkg/kernel/testcases/reify/subclass_test.dart.expect
@@ -0,0 +1,119 @@
+library superclass_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "./test_base.dart" as tes;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+  get $is$R() → core::bool
+    return false;
+}
+class Y extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+  get $is$R() → core::bool
+    return false;
+}
+class R extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::R::$type = $type, super core::Object::•()
+    ;
+  get $R$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](2))).[](0);
+  get $is$R() → core::bool
+    return true;
+  get runtimeType() → core::Type
+    return this.{=self::R::$type};
+}
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  method foo() → dynamic {
+    return new self::R::•(new typ::Interface::•(self::$declarations.[](2), typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3)))));
+  }
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](3))).[](0);
+  get $is$R() → core::bool
+    return false;
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •(typ::ReifiedType $type) → void
+    : super self::A::•($type)
+    ;
+  get $B$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](4))).[](0);
+  get $is$R() → core::bool
+    return false;
+}
+class C extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •(typ::ReifiedType $type) → void
+    : super self::A::•($type)
+    ;
+  get $C$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](5))).[](0);
+  get $is$R() → core::bool
+    return false;
+}
+class D extends self::B implements int::HasRuntimeTypeGetter {
+  constructor •(typ::ReifiedType $type) → void
+    : super self::B::•($type)
+    ;
+  get $D$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](6))).[](0);
+  get $is$R() → core::bool
+    return false;
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](20)));
+  dec::init(d, 1, new typ::Interface::•(d.[](20)));
+  dec::init(d, 2, new typ::Interface::•(d.[](20)));
+  dec::init(d, 3, new typ::Interface::•(d.[](20)));
+  dec::init(d, 4, new typ::Interface::•(d.[](3), <dynamic>[d.[](4).variables.[](0)]));
+  dec::init(d, 5, new typ::Interface::•(d.[](3), <dynamic>[new typ::Interface::•(d.[](1))]));
+  dec::init(d, 6, new typ::Interface::•(d.[](4), <dynamic>[new typ::Interface::•(d.[](2), <dynamic>[d.[](6).variables.[](0)])]));
+  dec::init(d, 7, new typ::Interface::•(d.[](20)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](22), <dynamic>[new typ::Interface::•(d.[](9))]), new typ::Interface::•(d.[](23))]);
+  dec::init(d, 10, new typ::Interface::•(d.[](24)));
+  dec::init(d, 11, new typ::Interface::•(d.[](24)));
+  dec::init(d, 12, new typ::Interface::•(d.[](20)));
+  dec::init(d, 13, new typ::Interface::•(d.[](25)));
+  dec::init(d, 14, new typ::Interface::•(d.[](25)));
+  dec::init(d, 15, new typ::Interface::•(d.[](25)));
+  dec::init(d, 16, new typ::Interface::•(d.[](25)));
+  dec::init(d, 17, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](26))]);
+  dec::init(d, 18, new typ::Interface::•(d.[](19)));
+  dec::init(d, 19, new typ::Interface::•(d.[](25)));
+  dec::init(d, 20, null);
+  dec::init(d, 22, new typ::Interface::•(d.[](20)));
+  dec::init(d, 23, new typ::Interface::•(d.[](20)));
+  dec::init(d, 24, new typ::Interface::•(d.[](20)), <dynamic>[new typ::Interface::•(d.[](22), <dynamic>[new typ::Interface::•(d.[](24))])]);
+  dec::init(d, 25, new typ::Interface::•(d.[](20)));
+  dec::init(d, 26, new typ::Interface::•(d.[](20)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["X", "Y", "R", "A", "B", "C", "D", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  tes::expectTrue(let dynamic #t1 = new self::A::•(new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t1 is int::HasRuntimeTypeGetter && #t1.$is$R && (let dynamic #t2 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]) in typ::isSubtypeOf(#t1.$type, #t2)));
+  tes::expectTrue(let dynamic #t3 = new self::B::•(new typ::Interface::•(self::$declarations.[](4), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t3 is int::HasRuntimeTypeGetter && #t3.$is$R && (let dynamic #t4 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]) in typ::isSubtypeOf(#t3.$type, #t4)));
+  tes::expectTrue(let dynamic #t5 = new self::C::•(new typ::Interface::•(self::$declarations.[](5), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t5 is int::HasRuntimeTypeGetter && #t5.$is$R && (let dynamic #t6 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t5.$type, #t6)));
+  tes::expectTrue(let dynamic #t7 = new self::D::•(new typ::Interface::•(self::$declarations.[](6), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t7 is int::HasRuntimeTypeGetter && #t7.$is$R && (let dynamic #t8 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])]) in typ::isSubtypeOf(#t7.$type, #t8)));
+  tes::expectTrue(!(let dynamic #t9 = new self::A::•(new typ::Interface::•(self::$declarations.[](3), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t9 is int::HasRuntimeTypeGetter && #t9.$is$R && (let dynamic #t10 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t9.$type, #t10))));
+  tes::expectTrue(!(let dynamic #t11 = new self::B::•(new typ::Interface::•(self::$declarations.[](4), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t11 is int::HasRuntimeTypeGetter && #t11.$is$R && (let dynamic #t12 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](1))]) in typ::isSubtypeOf(#t11.$type, #t12))));
+  tes::expectTrue(!(let dynamic #t13 = new self::C::•(new typ::Interface::•(self::$declarations.[](5), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t13 is int::HasRuntimeTypeGetter && #t13.$is$R && (let dynamic #t14 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]) in typ::isSubtypeOf(#t13.$type, #t14))));
+  tes::expectTrue(!(let dynamic #t15 = new self::D::•(new typ::Interface::•(self::$declarations.[](6), <dynamic>[new typ::Interface::•(self::$declarations.[](0))])).foo() in #t15 is int::HasRuntimeTypeGetter && #t15.$is$R && (let dynamic #t16 = new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](2), <dynamic>[new typ::Interface::•(self::$declarations.[](1))])]) in typ::isSubtypeOf(#t15.$type, #t16))));
+}
diff --git a/pkg/kernel/testcases/reify/super1_test.dart b/pkg/kernel/testcases/reify/super1_test.dart
new file mode 100644
index 0000000..bd007ff
--- /dev/null
+++ b/pkg/kernel/testcases/reify/super1_test.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library super1_test;
+
+import 'test_base.dart';
+
+class A<T> {}
+
+class B<T> extends A<T> {
+  int i;
+  B(this.i) : super();
+
+  B.redirect() : this(42);
+}
+
+main() {}
diff --git a/pkg/kernel/testcases/reify/super1_test.dart.expect b/pkg/kernel/testcases/reify/super1_test.dart.expect
new file mode 100644
index 0000000..8b3d20d
--- /dev/null
+++ b/pkg/kernel/testcases/reify/super1_test.dart.expect
@@ -0,0 +1,53 @@
+library super1_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  field core::int i;
+  constructor •(typ::ReifiedType $type, core::int i) → void
+    : self::B::i = i, super self::A::•($type)
+    ;
+  constructor redirect(typ::ReifiedType $type) → void
+    : this self::B::•($type, 42)
+    ;
+  get $B$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](15)));
+  dec::init(d, 1, new typ::Interface::•(d.[](0), <dynamic>[d.[](1).variables.[](0)]));
+  dec::init(d, 2, new typ::Interface::•(d.[](15)));
+  dec::init(d, 3, new typ::Interface::•(d.[](15)));
+  dec::init(d, 4, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](4))]), new typ::Interface::•(d.[](18))]);
+  dec::init(d, 5, new typ::Interface::•(d.[](19)));
+  dec::init(d, 6, new typ::Interface::•(d.[](19)));
+  dec::init(d, 7, new typ::Interface::•(d.[](15)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)));
+  dec::init(d, 10, new typ::Interface::•(d.[](20)));
+  dec::init(d, 11, new typ::Interface::•(d.[](20)));
+  dec::init(d, 12, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](21))]);
+  dec::init(d, 13, new typ::Interface::•(d.[](14)));
+  dec::init(d, 14, new typ::Interface::•(d.[](20)));
+  dec::init(d, 15, null);
+  dec::init(d, 17, new typ::Interface::•(d.[](15)));
+  dec::init(d, 18, new typ::Interface::•(d.[](15)));
+  dec::init(d, 19, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](19))])]);
+  dec::init(d, 20, new typ::Interface::•(d.[](15)));
+  dec::init(d, 21, new typ::Interface::•(d.[](15)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {}
diff --git a/pkg/kernel/testcases/reify/super2_test.dart b/pkg/kernel/testcases/reify/super2_test.dart
new file mode 100644
index 0000000..0707d4a
--- /dev/null
+++ b/pkg/kernel/testcases/reify/super2_test.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library super2_test;
+
+import 'test_base.dart';
+
+class X {}
+
+class A<T> {}
+
+class B extends A<X> {}
+
+main() {}
diff --git a/pkg/kernel/testcases/reify/super2_test.dart.expect b/pkg/kernel/testcases/reify/super2_test.dart.expect
new file mode 100644
index 0000000..eb95978
--- /dev/null
+++ b/pkg/kernel/testcases/reify/super2_test.dart.expect
@@ -0,0 +1,57 @@
+library super2_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class X extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+}
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::A::•(null)
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](2));
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](16)));
+  dec::init(d, 1, new typ::Interface::•(d.[](16)));
+  dec::init(d, 2, new typ::Interface::•(d.[](1), <dynamic>[new typ::Interface::•(d.[](0))]));
+  dec::init(d, 3, new typ::Interface::•(d.[](16)));
+  dec::init(d, 4, new typ::Interface::•(d.[](16)));
+  dec::init(d, 5, new typ::Interface::•(d.[](16)), <dynamic>[new typ::Interface::•(d.[](18), <dynamic>[new typ::Interface::•(d.[](5))]), new typ::Interface::•(d.[](19))]);
+  dec::init(d, 6, new typ::Interface::•(d.[](20)));
+  dec::init(d, 7, new typ::Interface::•(d.[](20)));
+  dec::init(d, 8, new typ::Interface::•(d.[](16)));
+  dec::init(d, 9, new typ::Interface::•(d.[](21)));
+  dec::init(d, 10, new typ::Interface::•(d.[](21)));
+  dec::init(d, 11, new typ::Interface::•(d.[](21)));
+  dec::init(d, 12, new typ::Interface::•(d.[](21)));
+  dec::init(d, 13, new typ::Interface::•(d.[](16)), <dynamic>[new typ::Interface::•(d.[](22))]);
+  dec::init(d, 14, new typ::Interface::•(d.[](15)));
+  dec::init(d, 15, new typ::Interface::•(d.[](21)));
+  dec::init(d, 16, null);
+  dec::init(d, 18, new typ::Interface::•(d.[](16)));
+  dec::init(d, 19, new typ::Interface::•(d.[](16)));
+  dec::init(d, 20, new typ::Interface::•(d.[](16)), <dynamic>[new typ::Interface::•(d.[](18), <dynamic>[new typ::Interface::•(d.[](20))])]);
+  dec::init(d, 21, new typ::Interface::•(d.[](16)));
+  dec::init(d, 22, new typ::Interface::•(d.[](16)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["X", "A", "B", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {}
diff --git a/pkg/kernel/testcases/reify/super3_test.dart b/pkg/kernel/testcases/reify/super3_test.dart
new file mode 100644
index 0000000..4de6a33
--- /dev/null
+++ b/pkg/kernel/testcases/reify/super3_test.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE.md file.
+
+library super3_test;
+
+import 'test_base.dart';
+
+class A<T> {
+  get foo => T;
+}
+
+class B extends A<A> {
+  B();
+  B.redirect() : this();
+}
+
+main() {
+  new B().foo;
+  new B.redirect();
+}
diff --git a/pkg/kernel/testcases/reify/super3_test.dart.expect b/pkg/kernel/testcases/reify/super3_test.dart.expect
new file mode 100644
index 0000000..7ced8ac
--- /dev/null
+++ b/pkg/kernel/testcases/reify/super3_test.dart.expect
@@ -0,0 +1,58 @@
+library super3_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class A extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::A::$type = $type, super core::Object::•()
+    ;
+  get foo() → dynamic {
+    return dynamic;
+  }
+  get $A$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::A::$type};
+}
+class B extends self::A implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super self::A::•(null)
+    ;
+  constructor redirect() → void
+    : this self::B::•()
+    ;
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](1));
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](15)));
+  dec::init(d, 1, new typ::Interface::•(d.[](0), <dynamic>[new typ::Interface::•(d.[](0), <dynamic>[const typ::Dynamic::•()])]));
+  dec::init(d, 2, new typ::Interface::•(d.[](15)));
+  dec::init(d, 3, new typ::Interface::•(d.[](15)));
+  dec::init(d, 4, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](4))]), new typ::Interface::•(d.[](18))]);
+  dec::init(d, 5, new typ::Interface::•(d.[](19)));
+  dec::init(d, 6, new typ::Interface::•(d.[](19)));
+  dec::init(d, 7, new typ::Interface::•(d.[](15)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)));
+  dec::init(d, 10, new typ::Interface::•(d.[](20)));
+  dec::init(d, 11, new typ::Interface::•(d.[](20)));
+  dec::init(d, 12, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](21))]);
+  dec::init(d, 13, new typ::Interface::•(d.[](14)));
+  dec::init(d, 14, new typ::Interface::•(d.[](20)));
+  dec::init(d, 15, null);
+  dec::init(d, 17, new typ::Interface::•(d.[](15)));
+  dec::init(d, 18, new typ::Interface::•(d.[](15)));
+  dec::init(d, 19, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](19))])]);
+  dec::init(d, 20, new typ::Interface::•(d.[](15)));
+  dec::init(d, 21, new typ::Interface::•(d.[](15)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["A", "B", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  new self::B::•().foo;
+  new self::B::redirect();
+}
diff --git a/pkg/kernel/testcases/reify/test_base.dart b/pkg/kernel/testcases/reify/test_base.dart
new file mode 100644
index 0000000..696cb73
--- /dev/null
+++ b/pkg/kernel/testcases/reify/test_base.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library test_base;
+
+expectIs(expected, actual, [String note]) {
+  if (expected != actual) {
+    if (note != null) {
+      throw "Expected: '$expected': $note, actual: '$actual'";
+    }
+    throw "Expected: '$expected', actual: '$actual'";
+  }
+}
+
+expectTrue(actual) => expectIs(true, actual);
+
+expectFalse(actual) => expectIs(false, actual);
+
+expectThrows(f(), test(e)) {
+  var exception = false;
+  String note = null;
+  try {
+    f();
+  } catch (e) {
+    exception = test(e);
+    if (!exception) {
+      note = "$e [${e.runtimeType}]";
+    }
+  }
+  expectIs(true, exception, note);
+}
+
+expectOutput(String expected) => expectIs(expected, output);
+
+String output;
+
+write(o) {
+  output = output == null ? "$o" : "$output\n$o";
+}
diff --git a/pkg/kernel/testcases/reify/typevariable1_test.dart b/pkg/kernel/testcases/reify/typevariable1_test.dart
new file mode 100644
index 0000000..306a076
--- /dev/null
+++ b/pkg/kernel/testcases/reify/typevariable1_test.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library typevariable1_test;
+
+import 'test_base.dart';
+
+class Z {
+  get succ => new N<Z>();
+}
+
+class N<T> {
+  get succ => new N<N<T>>();
+  get pred => T;
+}
+
+main() {
+  var one = new Z().succ;
+  var two = one.succ;
+}
diff --git a/pkg/kernel/testcases/reify/typevariable1_test.dart.expect b/pkg/kernel/testcases/reify/typevariable1_test.dart.expect
new file mode 100644
index 0000000..6feca7a
--- /dev/null
+++ b/pkg/kernel/testcases/reify/typevariable1_test.dart.expect
@@ -0,0 +1,61 @@
+library typevariable1_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class Z extends core::Object implements int::HasRuntimeTypeGetter {
+  constructor •() → void
+    : super core::Object::•()
+    ;
+  get succ() → dynamic {
+    return new self::N::•(new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](0))]));
+  }
+  get $type() → typ::ReifiedType
+    return new typ::Interface::•(self::$declarations.[](0));
+}
+class N extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::N::$type = $type, super core::Object::•()
+    ;
+  get succ() → dynamic {
+    return new self::N::•(new typ::Interface::•(self::$declarations.[](1), <dynamic>[new typ::Interface::•(self::$declarations.[](1), typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))))]));
+  }
+  get pred() → dynamic {
+    return dynamic;
+  }
+  get $N$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::N::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](15)));
+  dec::init(d, 1, new typ::Interface::•(d.[](15)));
+  dec::init(d, 2, new typ::Interface::•(d.[](15)));
+  dec::init(d, 3, new typ::Interface::•(d.[](15)));
+  dec::init(d, 4, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](4))]), new typ::Interface::•(d.[](18))]);
+  dec::init(d, 5, new typ::Interface::•(d.[](19)));
+  dec::init(d, 6, new typ::Interface::•(d.[](19)));
+  dec::init(d, 7, new typ::Interface::•(d.[](15)));
+  dec::init(d, 8, new typ::Interface::•(d.[](20)));
+  dec::init(d, 9, new typ::Interface::•(d.[](20)));
+  dec::init(d, 10, new typ::Interface::•(d.[](20)));
+  dec::init(d, 11, new typ::Interface::•(d.[](20)));
+  dec::init(d, 12, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](21))]);
+  dec::init(d, 13, new typ::Interface::•(d.[](14)));
+  dec::init(d, 14, new typ::Interface::•(d.[](20)));
+  dec::init(d, 15, null);
+  dec::init(d, 17, new typ::Interface::•(d.[](15)));
+  dec::init(d, 18, new typ::Interface::•(d.[](15)));
+  dec::init(d, 19, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17), <dynamic>[new typ::Interface::•(d.[](19))])]);
+  dec::init(d, 20, new typ::Interface::•(d.[](15)));
+  dec::init(d, 21, new typ::Interface::•(d.[](15)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["Z", "N", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  dynamic one = new self::Z::•().succ;
+  dynamic two = one.succ;
+}
diff --git a/pkg/kernel/testcases/reify/typevariable2_test.dart b/pkg/kernel/testcases/reify/typevariable2_test.dart
new file mode 100644
index 0000000..1b4a0cd
--- /dev/null
+++ b/pkg/kernel/testcases/reify/typevariable2_test.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library typevariable2_test;
+
+import 'test_base.dart';
+
+class C<T> {
+  bool test(o) => o is T;
+  Type get t => T;
+}
+
+main() {}
diff --git a/pkg/kernel/testcases/reify/typevariable2_test.dart.expect b/pkg/kernel/testcases/reify/typevariable2_test.dart.expect
new file mode 100644
index 0000000..d6a878f
--- /dev/null
+++ b/pkg/kernel/testcases/reify/typevariable2_test.dart.expect
@@ -0,0 +1,65 @@
+library typevariable2_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class C extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::C::$type = $type, super core::Object::•()
+    ;
+  method test(dynamic o) → core::bool {
+    return typ::isSubtypeOf(int::type(o), this.$C$T);
+  }
+  get t() → core::Type {
+    return dynamic;
+  }
+  get test#get() → dynamic
+    return new self::Closure#C#test::•(new typ::Interface::•(self::$declarations.[](1), typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0)))), this);
+  get $C$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::C::$type};
+}
+class Closure#C#test extends core::Object implements core::Function, int::HasRuntimeTypeGetter {
+  field core::String note = "This is temporary. The VM doesn't need closure classes.";
+  field self::C self;
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type, final self::C self) → dynamic
+    : self::Closure#C#test::$type = $type, self::Closure#C#test::self = self
+    ;
+  method call(dynamic o) → core::bool
+    return this.{self::Closure#C#test::self}.{self::C::test}(o);
+  get $Closure#C#test$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](1))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::Closure#C#test::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](15)));
+  dec::init(d, 1, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](17))], new typ::FunctionType::•(new typ::Interface::•(d.[](17)), new typ::Interface::•(d.[](3)), 0, <dynamic>[const typ::Dynamic::•()]));
+  dec::init(d, 2, new typ::Interface::•(d.[](15)));
+  dec::init(d, 3, new typ::Interface::•(d.[](15)));
+  dec::init(d, 4, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](18), <dynamic>[new typ::Interface::•(d.[](4))]), new typ::Interface::•(d.[](19))]);
+  dec::init(d, 5, new typ::Interface::•(d.[](20)));
+  dec::init(d, 6, new typ::Interface::•(d.[](20)));
+  dec::init(d, 7, new typ::Interface::•(d.[](15)));
+  dec::init(d, 8, new typ::Interface::•(d.[](21)));
+  dec::init(d, 9, new typ::Interface::•(d.[](21)));
+  dec::init(d, 10, new typ::Interface::•(d.[](21)));
+  dec::init(d, 11, new typ::Interface::•(d.[](21)));
+  dec::init(d, 12, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](22))]);
+  dec::init(d, 13, new typ::Interface::•(d.[](14)));
+  dec::init(d, 14, new typ::Interface::•(d.[](21)));
+  dec::init(d, 15, null);
+  dec::init(d, 17, new typ::Interface::•(d.[](15)));
+  dec::init(d, 18, new typ::Interface::•(d.[](15)));
+  dec::init(d, 19, new typ::Interface::•(d.[](15)));
+  dec::init(d, 20, new typ::Interface::•(d.[](15)), <dynamic>[new typ::Interface::•(d.[](18), <dynamic>[new typ::Interface::•(d.[](20))])]);
+  dec::init(d, 21, new typ::Interface::•(d.[](15)));
+  dec::init(d, 22, new typ::Interface::•(d.[](15)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["C", "Closure#C#test", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Function", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {}
diff --git a/pkg/kernel/testcases/reify/typevariable3_test.dart b/pkg/kernel/testcases/reify/typevariable3_test.dart
new file mode 100644
index 0000000..f7ecef8
--- /dev/null
+++ b/pkg/kernel/testcases/reify/typevariable3_test.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library typevariable3_test;
+
+import 'test_base.dart';
+
+class C<T> {
+  T foo(T t) {
+    T temp = t;
+    return temp;
+  }
+}
+
+main() {
+  C c = new C<C>().foo(new C());
+}
diff --git a/pkg/kernel/testcases/reify/typevariable3_test.dart.expect b/pkg/kernel/testcases/reify/typevariable3_test.dart.expect
new file mode 100644
index 0000000..c8e09ce
--- /dev/null
+++ b/pkg/kernel/testcases/reify/typevariable3_test.dart.expect
@@ -0,0 +1,47 @@
+library typevariable3_test;
+import self as self;
+import "dart:core" as core;
+import "../../runtime/reify/interceptors.dart" as int;
+import "../../runtime/reify/types.dart" as typ;
+import "../../runtime/reify/declarations.dart" as dec;
+
+class C extends core::Object implements int::HasRuntimeTypeGetter {
+  final field typ::ReifiedType $type;
+  constructor •(typ::ReifiedType $type) → void
+    : self::C::$type = $type, super core::Object::•()
+    ;
+  method foo(dynamic t) → dynamic {
+    dynamic temp = t;
+    return temp;
+  }
+  get $C$T() → typ::ReifiedType
+    return typ::getTypeArguments(typ::asInstanceOf(this.$type, self::$declarations.[](0))).[](0);
+  get runtimeType() → core::Type
+    return this.{=self::C::$type};
+}
+static final field core::List<dec::Class> $declarations = (core::List<dec::Class> d) → core::List<dec::Class> {
+  dec::init(d, 0, new typ::Interface::•(d.[](14)));
+  dec::init(d, 1, new typ::Interface::•(d.[](14)));
+  dec::init(d, 2, new typ::Interface::•(d.[](14)));
+  dec::init(d, 3, new typ::Interface::•(d.[](14)), <dynamic>[new typ::Interface::•(d.[](16), <dynamic>[new typ::Interface::•(d.[](3))]), new typ::Interface::•(d.[](17))]);
+  dec::init(d, 4, new typ::Interface::•(d.[](18)));
+  dec::init(d, 5, new typ::Interface::•(d.[](18)));
+  dec::init(d, 6, new typ::Interface::•(d.[](14)));
+  dec::init(d, 7, new typ::Interface::•(d.[](19)));
+  dec::init(d, 8, new typ::Interface::•(d.[](19)));
+  dec::init(d, 9, new typ::Interface::•(d.[](19)));
+  dec::init(d, 10, new typ::Interface::•(d.[](19)));
+  dec::init(d, 11, new typ::Interface::•(d.[](14)), <dynamic>[new typ::Interface::•(d.[](20))]);
+  dec::init(d, 12, new typ::Interface::•(d.[](13)));
+  dec::init(d, 13, new typ::Interface::•(d.[](19)));
+  dec::init(d, 14, null);
+  dec::init(d, 16, new typ::Interface::•(d.[](14)));
+  dec::init(d, 17, new typ::Interface::•(d.[](14)));
+  dec::init(d, 18, new typ::Interface::•(d.[](14)), <dynamic>[new typ::Interface::•(d.[](16), <dynamic>[new typ::Interface::•(d.[](18))])]);
+  dec::init(d, 19, new typ::Interface::•(d.[](14)));
+  dec::init(d, 20, new typ::Interface::•(d.[](14)));
+  return d;
+}.call(dec::allocateDeclarations(<dynamic>["C", "Null", "bool", "String", "int", "double", "Type", "AbstractClassInstantiationError", "NoSuchMethodError", "CyclicInitializationError", "UnsupportedError", "IntegerDivisionByZeroException", "RangeError", "ArgumentError", "Object", "HasRuntimeTypeGetter", "Comparable", "Pattern", "num", "Error", "Exception"], <dynamic>[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]));
+static method main() → dynamic {
+  self::C c = new self::C::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()])])).foo(new self::C::•(new typ::Interface::•(self::$declarations.[](0), <dynamic>[const typ::Dynamic::•()])));
+}
diff --git a/pkg/pkg.status b/pkg/pkg.status
index 83593b4..eef45df 100644
--- a/pkg/pkg.status
+++ b/pkg/pkg.status
@@ -29,6 +29,11 @@
 
 front_end/test/fasta/compile_test: Pass, Slow
 
+# Skip tests for Generic Types Reification. These tests aren't meant to
+# be run. Instead, they are transformed by the reify transformation
+# routines and compared atainst the expected outcomes.
+kernel/testcases/reify/*: Skip
+
 [ $runtime != vm || $mode != release || $system == windows ]
 front_end/test/fasta/*: Skip
 
@@ -61,7 +66,9 @@
 
 [ $runtime == vm && $checked ]
 analysis_server/test/completion_test: Pass, Slow
+analysis_server/test/services/correction/fix_test: Pass, Slow
 analysis_server/test/socket_server_test: Skip # Pass, Slow
+analyzer/test/src/summary/resynthesize_ast_test: Pass, Slow
 
 [ $runtime == vm && $checked && $system == windows ]
 front_end/tool/perf_test: Slow, Pass
@@ -76,6 +83,9 @@
 front_end/test/incremental_resolved_ast_generator_test: Skip # Issue 28698
 front_end/tool/perf_test: Skip # Issue 28698
 
+[ $runtime == vm && $use_sdk == true ]
+front_end/tool/fasta_perf_test: SkipByDesign # depends on patched_sdk which is not built into the sdk
+
 [ $runtime == vm && $system == windows]
 analysis_server/*: Skip # Issue 27557
 analysis_server/test/analysis/get_errors_test: Skip # runtime error, Issue 22180
@@ -255,3 +265,6 @@
 
 [ $compiler == none ]
 kernel/test/closures_test: Fail
+
+[ $runtime == vm && $system == windows ]
+analyzer_cli/test/driver_test: Pass, Slow
diff --git a/pkg/pkgbuild.status b/pkg/pkgbuild.status
index 4fbd4ac..11219b2 100644
--- a/pkg/pkgbuild.status
+++ b/pkg/pkgbuild.status
@@ -9,3 +9,6 @@
 pkg/front_end: Fail # Issue 27655
 pkg/kernel: SkipByDesign # Issue 27937
 third_party/pkg/linter: SkipByDesign # Issue 27937
+
+[ $system == windows ]
+third_party/pkg/*: Pass, Slow
diff --git a/pkg/testing/lib/src/analyze.dart b/pkg/testing/lib/src/analyze.dart
index 1a7503a..c976020 100644
--- a/pkg/testing/lib/src/analyze.dart
+++ b/pkg/testing/lib/src/analyze.dart
@@ -26,11 +26,13 @@
     Suite;
 
 class Analyze extends Suite {
+  final Uri analysisOptions;
+
   final List<Uri> uris;
 
   final List<RegExp> exclude;
 
-  Analyze(this.uris, this.exclude)
+  Analyze(this.analysisOptions, this.uris, this.exclude)
       : super("analyze", "analyze", null);
 
   Future<Null> run(Uri packages, List<Uri> extraUris) {
@@ -38,18 +40,21 @@
     if (extraUris != null) {
       allUris.addAll(extraUris);
     }
-    return analyzeUris(packages, allUris, exclude);
+    return analyzeUris(analysisOptions, packages, allUris, exclude);
   }
 
   static Future<Analyze> fromJsonMap(
       Uri base, Map json, List<Suite> suites) async {
+    String optionsPath = json["options"];
+    Uri optionsUri = optionsPath == null ? null : base.resolve(optionsPath);
+
     List<Uri> uris = new List<Uri>.from(
         json["uris"].map((String relative) => base.resolve(relative)));
 
     List<RegExp> exclude =
         new List<RegExp>.from(json["exclude"].map((String p) => new RegExp(p)));
 
-    return new Analyze(uris, exclude);
+    return new Analyze(optionsUri, uris, exclude);
   }
 
   String toString() => "Analyze($uris, $exclude)";
@@ -104,7 +109,8 @@
 
 /// Run dartanalyzer on all tests in [uris].
 Future<Null> analyzeUris(
-    Uri packages, List<Uri> uris, List<RegExp> exclude) async {
+    Uri analysisOptions, Uri packages, List<Uri> uris,
+    List<RegExp> exclude) async {
   if (uris.isEmpty) return;
   const String analyzerPath = "bin/dartanalyzer";
   Uri analyzer = dartSdk.resolve(analyzerPath);
@@ -116,6 +122,9 @@
       "--package-warnings",
       "--format=machine",
   ];
+  if (analysisOptions != null) {
+    arguments.add("--options=${analysisOptions.toFilePath()}");
+  }
   arguments.addAll(uris.map((Uri uri) => uri.toFilePath()));
   if (isVerbose) {
     print("Running:\n  ${analyzer.toFilePath()} ${arguments.join(' ')}");
@@ -135,9 +144,6 @@
   Set<String> seen = new Set<String>();
   for (AnalyzerDiagnostic diagnostic in diagnostics) {
     String path = diagnostic.uri.path;
-    if (diagnostic.code == "DEPRECATED_MEMBER_USE") continue;
-    if (diagnostic.code == "MISSING_RETURN") continue;
-    if (diagnostic.code == "UNNECESSARY_CAST") continue;
     if (exclude.any((RegExp r) => path.contains(r))) continue;
     String message = "$diagnostic";
     if (seen.add(message)) {
diff --git a/pkg/testing/lib/src/run_tests.dart b/pkg/testing/lib/src/run_tests.dart
index bc29a3b..c439468 100644
--- a/pkg/testing/lib/src/run_tests.dart
+++ b/pkg/testing/lib/src/run_tests.dart
@@ -115,7 +115,7 @@
               return fail(
                   "Usage: run_tests.dart [$configPrefix=configuration_file]\n"
                   "Where configuration_file is one of:\n  "
-                  "${candiates.map((File file) => file.path).join('\n  ')}");
+                  "${candiates.map((file) => file.path).join('\n  ')}");
           }
         }
       }
diff --git a/pkg/testing/lib/src/test_dart.dart b/pkg/testing/lib/src/test_dart.dart
index 8c89ed5..9b6ce7e 100644
--- a/pkg/testing/lib/src/test_dart.dart
+++ b/pkg/testing/lib/src/test_dart.dart
@@ -29,8 +29,7 @@
 
   factory TestDart.fromJsonMap(Uri base, Map json, String name, String kind) {
     String common = json["common"] ?? "";
-    // TODO(ahe): Compute this value based on number of cores.
-    String processes = json["processes"] ?? "-j16";
+    String processes = json["processes"] ?? "-j${Platform.numberOfProcessors}";
     List<String> commandLines = json["command-lines"] ?? <String>[];
     return new TestDart(name, common, processes, commandLines);
   }
diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
index 3404bbf..0f41578 100644
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -482,9 +482,11 @@
   args = [
     "--executable",
     rebase_path("$gen_snapshot_dir/gen_snapshot"),
+    "--snapshot_kind",
+    "core",
     "--vm_output_bin",
     rebase_path(vm_isolate_snapshot, root_build_dir),
-    "--output_bin",
+    "--isolate_output_bin",
     rebase_path(isolate_snapshot, root_build_dir),
     "--target_os",
     current_os,
diff --git a/runtime/bin/bin.gypi b/runtime/bin/bin.gypi
index 3119ce0..f5e2a63 100644
--- a/runtime/bin/bin.gypi
+++ b/runtime/bin/bin.gypi
@@ -1000,8 +1000,9 @@
             'tools/create_snapshot_bin.py',
             '--executable',
             '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen_snapshot<(EXECUTABLE_SUFFIX)',
+            '--snapshot_kind', 'core',
             '--vm_output_bin', '<(vm_isolate_snapshot_bin_file)',
-            '--output_bin', '<(isolate_snapshot_bin_file)',
+            '--isolate_output_bin', '<(isolate_snapshot_bin_file)',
             '--target_os', '<(OS)',
             '--timestamp_file', '<(gen_snapshot_stamp_file)',
           ],
diff --git a/runtime/bin/builtin.dart b/runtime/bin/builtin.dart
index ceba8cd..5330a1c 100644
--- a/runtime/bin/builtin.dart
+++ b/runtime/bin/builtin.dart
@@ -6,7 +6,7 @@
 // NOTE: Do not import 'dart:io' in builtin.
 import 'dart:async';
 import 'dart:collection';
-import 'dart:_internal';
+import 'dart:_internal' hide Symbol;
 import 'dart:isolate';
 import 'dart:typed_data';
 
diff --git a/runtime/bin/builtin_impl_sources.gypi b/runtime/bin/builtin_impl_sources.gypi
index a60f8a8..86c36d7 100644
--- a/runtime/bin/builtin_impl_sources.gypi
+++ b/runtime/bin/builtin_impl_sources.gypi
@@ -53,6 +53,7 @@
     'hashmap_test.cc',
     'io_buffer.cc',
     'io_buffer.h',
+    'isolate_data.cc',
     'isolate_data.h',
     'loader.cc',
     'loader.h',
diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
index cd005db..e03ad8f 100644
--- a/runtime/bin/dartutils.cc
+++ b/runtime/bin/dartutils.cc
@@ -690,8 +690,10 @@
   Dart_Handle builtin_lib =
       Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
   RETURN_IF_ERROR(builtin_lib);
+  Builtin::SetNativeResolver(Builtin::kBuiltinLibrary);
   Dart_Handle io_lib = Builtin::LoadAndCheckLibrary(Builtin::kIOLibrary);
   RETURN_IF_ERROR(io_lib);
+  Builtin::SetNativeResolver(Builtin::kIOLibrary);
 
   // Setup the builtin library in a persistent handle attached the isolate
   // specific data as we seem to lookup and use builtin lib a lot.
diff --git a/runtime/bin/extensions.cc b/runtime/bin/extensions.cc
index fd0961f..9a53783 100644
--- a/runtime/bin/extensions.cc
+++ b/runtime/bin/extensions.cc
@@ -61,7 +61,7 @@
 
 
 // IMPORTANT: In the absolute path case, do not extract the filename and search
-// for that by passing it to LoadExtensionLibrary. That can lead to confusion in
+// for that by passing it to LoadLibrary. That can lead to confusion in
 // which the absolute path is wrong, and a different version of the library is
 // loaded from the standard location.
 void* Extensions::ResolveAbsPathExtension(const char* extension_path) {
diff --git a/runtime/bin/extensions.h b/runtime/bin/extensions.h
index 3739c43..aba3bff 100644
--- a/runtime/bin/extensions.h
+++ b/runtime/bin/extensions.h
@@ -20,8 +20,11 @@
                                    Dart_Handle parent_library);
 
   // Platform-specific implementations.
+  // Don't rename LoadExtensionLibrary to LoadLibrary since on Windows it
+  // conflicts with LoadLibraryW after mangling.
   static void* LoadExtensionLibrary(const char* library_file);
   static void* ResolveSymbol(void* lib_handle, const char* symbol);
+  static void UnloadLibrary(void* lib_handle);
 
  private:
   static Dart_Handle GetError();
diff --git a/runtime/bin/extensions_android.cc b/runtime/bin/extensions_android.cc
index 85b20ae..847dfb3 100644
--- a/runtime/bin/extensions_android.cc
+++ b/runtime/bin/extensions_android.cc
@@ -8,6 +8,8 @@
 #include "bin/extensions.h"
 #include <dlfcn.h>  // NOLINT
 
+#include "platform/assert.h"
+
 namespace dart {
 namespace bin {
 
@@ -21,11 +23,20 @@
   return dlopen(library_file, RTLD_LAZY);
 }
 
+
 void* Extensions::ResolveSymbol(void* lib_handle, const char* symbol) {
   dlerror();
   return dlsym(lib_handle, symbol);
 }
 
+
+void Extensions::UnloadLibrary(void* lib_handle) {
+  dlerror();
+  int result = dlclose(lib_handle);
+  ASSERT(result == 0);
+}
+
+
 Dart_Handle Extensions::GetError() {
   const char* err_str = dlerror();
   if (err_str != NULL) {
diff --git a/runtime/bin/extensions_fuchsia.cc b/runtime/bin/extensions_fuchsia.cc
index b464fe0..5d386f1 100644
--- a/runtime/bin/extensions_fuchsia.cc
+++ b/runtime/bin/extensions_fuchsia.cc
@@ -8,6 +8,8 @@
 #include "bin/extensions.h"
 #include <dlfcn.h>  // NOLINT
 
+#include "platform/assert.h"
+
 namespace dart {
 namespace bin {
 
@@ -21,11 +23,20 @@
   return dlopen(library_file, RTLD_LAZY);
 }
 
+
 void* Extensions::ResolveSymbol(void* lib_handle, const char* symbol) {
   dlerror();
   return dlsym(lib_handle, symbol);
 }
 
+
+void Extensions::UnloadLibrary(void* lib_handle) {
+  dlerror();
+  int result = dlclose(lib_handle);
+  ASSERT(result == 0);
+}
+
+
 Dart_Handle Extensions::GetError() {
   const char* err_str = dlerror();
   if (err_str != NULL) {
diff --git a/runtime/bin/extensions_linux.cc b/runtime/bin/extensions_linux.cc
index 1a45e67..b2c22d3 100644
--- a/runtime/bin/extensions_linux.cc
+++ b/runtime/bin/extensions_linux.cc
@@ -8,6 +8,8 @@
 #include "bin/extensions.h"
 #include <dlfcn.h>  // NOLINT
 
+#include "platform/assert.h"
+
 namespace dart {
 namespace bin {
 
@@ -21,11 +23,20 @@
   return dlopen(library_file, RTLD_LAZY);
 }
 
+
 void* Extensions::ResolveSymbol(void* lib_handle, const char* symbol) {
   dlerror();
   return dlsym(lib_handle, symbol);
 }
 
+
+void Extensions::UnloadLibrary(void* lib_handle) {
+  dlerror();
+  int result = dlclose(lib_handle);
+  ASSERT(result == 0);
+}
+
+
 Dart_Handle Extensions::GetError() {
   const char* err_str = dlerror();
   if (err_str != NULL) {
diff --git a/runtime/bin/extensions_macos.cc b/runtime/bin/extensions_macos.cc
index d994c17..8588295 100644
--- a/runtime/bin/extensions_macos.cc
+++ b/runtime/bin/extensions_macos.cc
@@ -8,6 +8,8 @@
 #include "bin/extensions.h"
 #include <dlfcn.h>  // NOLINT
 
+#include "platform/assert.h"
+
 namespace dart {
 namespace bin {
 
@@ -21,11 +23,20 @@
   return dlopen(library_file, RTLD_LAZY);
 }
 
+
 void* Extensions::ResolveSymbol(void* lib_handle, const char* symbol) {
   dlerror();
   return dlsym(lib_handle, symbol);
 }
 
+
+void Extensions::UnloadLibrary(void* lib_handle) {
+  dlerror();
+  int result = dlclose(lib_handle);
+  ASSERT(result == 0);
+}
+
+
 Dart_Handle Extensions::GetError() {
   const char* err_str = dlerror();
   if (err_str != NULL) {
diff --git a/runtime/bin/extensions_win.cc b/runtime/bin/extensions_win.cc
index b07bf59..bd742c0 100644
--- a/runtime/bin/extensions_win.cc
+++ b/runtime/bin/extensions_win.cc
@@ -8,6 +8,7 @@
 #include "bin/extensions.h"
 #include "bin/utils.h"
 #include "bin/utils_win.h"
+#include "platform/assert.h"
 
 namespace dart {
 namespace bin {
@@ -32,11 +33,20 @@
   return ext;
 }
 
+
 void* Extensions::ResolveSymbol(void* lib_handle, const char* symbol) {
   SetLastError(0);
   return GetProcAddress(reinterpret_cast<HMODULE>(lib_handle), symbol);
 }
 
+
+void Extensions::UnloadLibrary(void* lib_handle) {
+  SetLastError(0);
+  BOOL result = FreeLibrary(reinterpret_cast<HMODULE>(lib_handle));
+  ASSERT(result);
+}
+
+
 Dart_Handle Extensions::GetError() {
   int last_error = GetLastError();
   if (last_error != 0) {
diff --git a/runtime/bin/file.h b/runtime/bin/file.h
index d5d76b7..ec4ca3b 100644
--- a/runtime/bin/file.h
+++ b/runtime/bin/file.h
@@ -21,6 +21,23 @@
 // Forward declaration.
 class FileHandle;
 
+class MappedMemory {
+ public:
+  MappedMemory(void* address, intptr_t size) : address_(address), size_(size) {}
+  ~MappedMemory() { Unmap(); }
+
+  void* address() const { return address_; }
+  intptr_t size() const { return size_; }
+
+ private:
+  void Unmap();
+
+  void* address_;
+  intptr_t size_;
+
+  DISALLOW_COPY_AND_ASSIGN(MappedMemory);
+};
+
 class File : public ReferenceCounted<File> {
  public:
   enum FileOpenMode {
@@ -83,7 +100,7 @@
     kReadOnly = 0,
     kReadExecute = 1,
   };
-  void* Map(MapType type, int64_t position, int64_t length);
+  MappedMemory* Map(MapType type, int64_t position, int64_t length);
 
   // Read/Write attempt to transfer num_bytes to/from buffer. It returns
   // the number of bytes read/written.
diff --git a/runtime/bin/file_android.cc b/runtime/bin/file_android.cc
index 4ec84278..3eb5095 100644
--- a/runtime/bin/file_android.cc
+++ b/runtime/bin/file_android.cc
@@ -79,7 +79,7 @@
 }
 
 
-void* File::Map(MapType type, int64_t position, int64_t length) {
+MappedMemory* File::Map(MapType type, int64_t position, int64_t length) {
   ASSERT(handle_->fd() >= 0);
   int prot = PROT_NONE;
   switch (type) {
@@ -96,7 +96,15 @@
   if (addr == MAP_FAILED) {
     return NULL;
   }
-  return addr;
+  return new MappedMemory(addr, length);
+}
+
+
+void MappedMemory::Unmap() {
+  int result = munmap(address_, size_);
+  ASSERT(result == 0);
+  address_ = 0;
+  size_ = 0;
 }
 
 
diff --git a/runtime/bin/file_fuchsia.cc b/runtime/bin/file_fuchsia.cc
index 1959595..b18f423 100644
--- a/runtime/bin/file_fuchsia.cc
+++ b/runtime/bin/file_fuchsia.cc
@@ -77,12 +77,17 @@
 }
 
 
-void* File::Map(MapType type, int64_t position, int64_t length) {
+MappedMemory* File::Map(MapType type, int64_t position, int64_t length) {
   UNIMPLEMENTED();
   return NULL;
 }
 
 
+void MappedMemory::Unmap() {
+  UNIMPLEMENTED();
+}
+
+
 int64_t File::Read(void* buffer, int64_t num_bytes) {
   ASSERT(handle_->fd() >= 0);
   return NO_RETRY_EXPECTED(read(handle_->fd(), buffer, num_bytes));
diff --git a/runtime/bin/file_linux.cc b/runtime/bin/file_linux.cc
index 33d809f..95a994a 100644
--- a/runtime/bin/file_linux.cc
+++ b/runtime/bin/file_linux.cc
@@ -79,7 +79,7 @@
 }
 
 
-void* File::Map(MapType type, int64_t position, int64_t length) {
+MappedMemory* File::Map(MapType type, int64_t position, int64_t length) {
   ASSERT(handle_->fd() >= 0);
   int prot = PROT_NONE;
   switch (type) {
@@ -96,7 +96,15 @@
   if (addr == MAP_FAILED) {
     return NULL;
   }
-  return addr;
+  return new MappedMemory(addr, length);
+}
+
+
+void MappedMemory::Unmap() {
+  int result = munmap(address_, size_);
+  ASSERT(result == 0);
+  address_ = 0;
+  size_ = 0;
 }
 
 
diff --git a/runtime/bin/file_macos.cc b/runtime/bin/file_macos.cc
index 842982f..f3d2829 100644
--- a/runtime/bin/file_macos.cc
+++ b/runtime/bin/file_macos.cc
@@ -81,7 +81,7 @@
 }
 
 
-void* File::Map(MapType type, int64_t position, int64_t length) {
+MappedMemory* File::Map(MapType type, int64_t position, int64_t length) {
   ASSERT(handle_->fd() >= 0);
   int prot = PROT_NONE;
   switch (type) {
@@ -98,7 +98,15 @@
   if (addr == MAP_FAILED) {
     return NULL;
   }
-  return addr;
+  return new MappedMemory(addr, length);
+}
+
+
+void MappedMemory::Unmap() {
+  int result = munmap(address_, size_);
+  ASSERT(result == 0);
+  address_ = 0;
+  size_ = 0;
 }
 
 
diff --git a/runtime/bin/file_win.cc b/runtime/bin/file_win.cc
index 9101ee6..989adfd 100644
--- a/runtime/bin/file_win.cc
+++ b/runtime/bin/file_win.cc
@@ -75,7 +75,7 @@
 }
 
 
-void* File::Map(File::MapType type, int64_t position, int64_t length) {
+MappedMemory* File::Map(File::MapType type, int64_t position, int64_t length) {
   DWORD prot_alloc;
   DWORD prot_final;
   switch (type) {
@@ -111,7 +111,15 @@
     VirtualFree(addr, 0, MEM_RELEASE);
     return NULL;
   }
-  return addr;
+  return new MappedMemory(addr, length);
+}
+
+
+void MappedMemory::Unmap() {
+  BOOL result = VirtualFree(address_, 0, MEM_RELEASE);
+  ASSERT(result);
+  address_ = 0;
+  size_ = 0;
 }
 
 
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc
index 732493d..40d1877 100644
--- a/runtime/bin/gen_snapshot.cc
+++ b/runtime/bin/gen_snapshot.cc
@@ -42,7 +42,7 @@
 #define CHECK_RESULT(result)                                                   \
   if (Dart_IsError(result)) {                                                  \
     intptr_t exit_code = 0;                                                    \
-    Log::PrintErr("Error: %s", Dart_GetError(result));                         \
+    Log::PrintErr("Error: %s\n", Dart_GetError(result));                       \
     if (Dart_IsCompilationError(result)) {                                     \
       exit_code = kCompilationErrorExitCode;                                   \
     } else if (Dart_IsApiError(result)) {                                      \
@@ -58,13 +58,26 @@
   }
 
 
+// The core snapshot to use when creating isolates. Normally NULL, but loaded
+// from a file when creating script snapshots.
+const uint8_t* isolate_snapshot_data = NULL;
+
+
 // Global state that indicates whether a snapshot is to be created and
 // if so which file to write the snapshot into.
+enum SnapshotKind {
+  kCore,
+  kScript,
+  kAppAOTBlobs,
+  kAppAOTAssembly,
+};
+static SnapshotKind snapshot_kind = kCore;
 static const char* vm_snapshot_data_filename = NULL;
 static const char* vm_snapshot_instructions_filename = NULL;
 static const char* isolate_snapshot_data_filename = NULL;
 static const char* isolate_snapshot_instructions_filename = NULL;
 static const char* assembly_filename = NULL;
+static const char* script_snapshot_filename = NULL;
 
 
 // Value of the --package-root flag.
@@ -189,6 +202,32 @@
 }
 
 
+static bool ProcessSnapshotKindOption(const char* option) {
+  const char* kind = ProcessOption(option, "--snapshot_kind=");
+  if (kind == NULL) {
+    return false;
+  }
+  if (strcmp(kind, "core") == 0) {
+    snapshot_kind = kCore;
+    return true;
+  } else if (strcmp(kind, "script") == 0) {
+    snapshot_kind = kScript;
+    return true;
+  } else if (strcmp(kind, "app-aot-blobs") == 0) {
+    snapshot_kind = kAppAOTBlobs;
+    return true;
+  } else if (strcmp(kind, "app-aot-assembly") == 0) {
+    snapshot_kind = kAppAOTAssembly;
+    return true;
+  }
+  Log::PrintErr(
+      "Unrecognized snapshot kind: '%s'\nValid kinds are: "
+      "core, script, app-aot-blobs, app-aot-assembly\n",
+      kind);
+  return false;
+}
+
+
 static bool ProcessVmSnapshotDataOption(const char* option) {
   const char* name = ProcessOption(option, "--vm_snapshot_data=");
   if (name != NULL) {
@@ -239,6 +278,16 @@
 }
 
 
+static bool ProcessScriptSnapshotOption(const char* option) {
+  const char* name = ProcessOption(option, "--script_snapshot=");
+  if (name != NULL) {
+    script_snapshot_filename = name;
+    return true;
+  }
+  return false;
+}
+
+
 static bool ProcessEmbedderEntryPointsManifestOption(const char* option) {
   const char* name = ProcessOption(option, "--embedder_entry_points_manifest=");
   if (name != NULL) {
@@ -286,8 +335,7 @@
 
 
 static bool IsSnapshottingForPrecompilation() {
-  return (assembly_filename != NULL) ||
-         (vm_snapshot_instructions_filename != NULL);
+  return (snapshot_kind == kAppAOTBlobs) || (snapshot_kind == kAppAOTAssembly);
 }
 
 
@@ -305,11 +353,13 @@
 
   // Parse out the vm options.
   while ((i < argc) && IsValidFlag(argv[i], kPrefix, kPrefixLen)) {
-    if (ProcessVmSnapshotDataOption(argv[i]) ||
+    if (ProcessSnapshotKindOption(argv[i]) ||
+        ProcessVmSnapshotDataOption(argv[i]) ||
         ProcessVmSnapshotInstructionsOption(argv[i]) ||
         ProcessIsolateSnapshotDataOption(argv[i]) ||
         ProcessIsolateSnapshotInstructionsOption(argv[i]) ||
         ProcessAssemblyOption(argv[i]) ||
+        ProcessScriptSnapshotOption(argv[i]) ||
         ProcessEmbedderEntryPointsManifestOption(argv[i]) ||
         ProcessURLmappingOption(argv[i]) || ProcessPackageRootOption(argv[i]) ||
         ProcessPackagesOption(argv[i]) || ProcessEnvironmentOption(argv[i])) {
@@ -333,43 +383,63 @@
       (commandline_packages_file != NULL)) {
     Log::PrintErr(
         "Specifying both a packages directory and a packages "
-        "file is invalid.\n");
+        "file is invalid.\n\n");
     return -1;
   }
 
-  if (vm_snapshot_data_filename == NULL) {
-    Log::PrintErr("No vm snapshot output file specified.\n\n");
-    return -1;
+  switch (snapshot_kind) {
+    case kCore: {
+      if ((vm_snapshot_data_filename == NULL) ||
+          (isolate_snapshot_data_filename == NULL)) {
+        Log::PrintErr(
+            "Building a core snapshot requires specifying output files for "
+            "--vm_snapshot_data and --isolate_snapshot_data.\n\n");
+        return -1;
+      }
+      break;
+    }
+    case kScript: {
+      if ((vm_snapshot_data_filename == NULL) ||
+          (isolate_snapshot_data_filename == NULL) ||
+          (script_snapshot_filename == NULL) || (script_name == NULL)) {
+        Log::PrintErr(
+            "Building a script snapshot requires specifying input files for "
+            "--vm_snapshot_data and --isolate_snapshot_data, an output file "
+            "for --script-snapshot, and a Dart script.\n\n");
+        return -1;
+      }
+      break;
+    }
+    case kAppAOTBlobs: {
+      if ((vm_snapshot_data_filename == NULL) ||
+          (vm_snapshot_instructions_filename == NULL) ||
+          (isolate_snapshot_data_filename == NULL) ||
+          (isolate_snapshot_instructions_filename == NULL) ||
+          (script_name == NULL)) {
+        Log::PrintErr(
+            "Building an AOT snapshot as blobs requires specifying output "
+            "files for --vm_snapshot_data, --vm_snapshot_instructions, "
+            "--isolate_snapshot_data and --isolate_snapshot_instructions and a "
+            "Dart script.\n\n");
+        return -1;
+      }
+      break;
+    }
+    case kAppAOTAssembly: {
+      if ((assembly_filename == NULL) || (script_name == NULL)) {
+        Log::PrintErr(
+            "Building an AOT snapshot as assembly requires specifying "
+            "an output file for --assembly and a Dart script.\n\n");
+        return -1;
+      }
+      break;
+    }
   }
 
-  if (isolate_snapshot_data_filename == NULL) {
-    Log::PrintErr("No isolate snapshot output file specified.\n\n");
-    return -1;
-  }
-
-  bool precompiled_as_assembly = assembly_filename != NULL;
-  bool precompiled_as_blobs = (vm_snapshot_instructions_filename != NULL) ||
-                              (isolate_snapshot_instructions_filename != NULL);
-  if (precompiled_as_assembly && precompiled_as_blobs) {
-    Log::PrintErr(
-        "Cannot request a precompiled snapshot simultaneously as "
-        "assembly (--assembly=<output.file>) and as blobs "
-        "(--instructions-blob=<output.file> and "
-        "--rodata-blob=<output.file>)\n\n");
-    return -1;
-  }
-  if ((vm_snapshot_instructions_filename != NULL) !=
-      (isolate_snapshot_instructions_filename != NULL)) {
-    Log::PrintErr(
-        "Requesting a precompiled snapshot as blobs requires both "
-        "(--vm_snapshot_instructions=<output.file> and "
-        "--isolate_snapshot_instructions=<output.file>)\n\n");
-    return -1;
-  }
   if (IsSnapshottingForPrecompilation() && (entry_points_files->count() == 0)) {
     Log::PrintErr(
-        "Specifying an instructions snapshot filename indicates precompilation"
-        ". But no embedder entry points manifest was specified.\n\n");
+        "Building an AOT snapshot requires at least one embedder "
+        "entry points manifest.\n\n");
     return -1;
   }
 
@@ -379,17 +449,24 @@
 
 static void WriteSnapshotFile(const char* filename,
                               const uint8_t* buffer,
-                              const intptr_t size) {
+                              const intptr_t size,
+                              bool write_magic_number = false) {
   File* file = File::Open(filename, File::kWriteTruncate);
   if (file == NULL) {
     Log::PrintErr("Error: Unable to write snapshot file: %s\n\n", filename);
     Dart_ExitScope();
     Dart_ShutdownIsolate();
-    Dart_Cleanup();
     exit(kErrorExitCode);
   }
+  if (write_magic_number) {
+    // Write the magic number to indicate file is a script snapshot.
+    DartUtils::WriteMagicNumber(file);
+  }
   if (!file->WriteFully(buffer, size)) {
-    Log::PrintErr("Error: Failed to write snapshot file.\n\n");
+    Log::PrintErr("Error: Unable to write snapshot file: %s\n\n", filename);
+    Dart_ExitScope();
+    Dart_ShutdownIsolate();
+    exit(kErrorExitCode);
   }
   file->Release();
 }
@@ -495,10 +572,10 @@
   if (Dart_IsError(source)) {
     return source;
   }
-  if (IsSnapshottingForPrecompilation()) {
-    return Dart_LoadScript(resolved_uri, Dart_Null(), source, 0, 0);
-  } else {
+  if (snapshot_kind == kCore) {
     return Dart_LoadLibrary(resolved_uri, Dart_Null(), source, 0, 0);
+  } else {
+    return Dart_LoadScript(resolved_uri, Dart_Null(), source, 0, 0);
   }
 }
 
@@ -614,76 +691,70 @@
 "Usage:                                                                      \n"
 " gen_snapshot [<vm-flags>] [<options>] [<dart-script-file>]                 \n"
 "                                                                            \n"
+" Global options:                                                            \n"
+"   --package_root=<path>             Where to find packages, that is,       \n"
+"                                     package:...  imports.                  \n"
+"                                                                            \n"
+"   --packages=<packages_file>        Where to find a package spec file      \n"
+"                                                                            \n"
+"   --url_mapping=<mapping>           Uses the URL mapping(s) specified on   \n"
+"                                     the command line to load the           \n"
+"                                     libraries.                             \n"
+"                                                                            \n"
+" To create a core snapshot:                                                 \n"
+"   --snapshot_kind=core                                                     \n"
+"   --vm_snapshot_data=<output-file>                                         \n"
+"   --isolate_snapshot_data=<output-file>                                    \n"
+"   [<dart-script-file>]                                                     \n"
+"                                                                            \n"
+" Writes a snapshot of <dart-script-file> to the specified snapshot files.   \n"
+" If no <dart-script-file> is passed, a generic snapshot of all the corelibs \n"
+" is created.                                                                \n"
+"                                                                            \n"
+" To create a script snapshot with respect to a given core snapshot:         \n"
+"   --snapshot_kind=script                                                   \n"
+"   --vm_snapshot_data=<intput-file>                                         \n"
+"   --isolate_snapshot_data=<intput-file>                                    \n"
+"   --script_snapshot=<output-file>                                          \n"
+"   <dart-script-file>                                                       \n"
+"                                                                            \n"
 "  Writes a snapshot of <dart-script-file> to the specified snapshot files.  \n"
 "  If no <dart-script-file> is passed, a generic snapshot of all the corelibs\n"
-"  is created. It is required to specify the VM isolate snapshot and the     \n"
-"  isolate snapshot. The other flags are related to precompilation and are   \n"
-"  optional.                                                                 \n"
+"  is created.                                                               \n"
 "                                                                            \n"
-"  Precompilation:                                                           \n"
-"  In order to configure the snapshotter for precompilation, either          \n"
-"  --assembly=outputfile or --instructions_blob=outputfile1 and              \n"
-"  --rodata_blob=outputfile2 must be specified. If the former is choosen,    \n"
-"  assembly for the target architecture will be output into the given file,  \n"
-"  which must be compiled separately and either statically linked or         \n"
-"  dynamically loaded in the target executable. The symbols                  \n"
-"  kInstructionsSnapshot and kDataSnapshot must be passed to Dart_Initialize.\n"
-"  If the latter is choosen, binary data is output into the given files,     \n"
-"  which should be mmapped and passed to Dart_Initialize, with the           \n"
-"  instruction blob being mapped as executable.                              \n"
-"  In both cases, a entry points manifest must be given to list the places   \n"
-"  in the Dart program the embedder calls from the C API (Dart_Invoke, etc). \n"
-"  Not specifying these may cause the tree shaker to remove them from the    \n"
-"  program. The format of this manifest is as follows. Each line in the      \n"
-"  manifest is a comma separated list of three elements. The first entry is  \n"
-"  the library URI, the second entry is the class name and the final entry   \n"
-"  the function name. The file must be terminated with a newline charater.   \n"
+" To create an AOT application snapshot as blobs suitable for loading with   \n"
+" mmap:                                                                      \n"
+"   --snapshot_kind=app-aot-blobs                                            \n"
+"   --vm_snapshot_data=<output-file>                                         \n"
+"   --vm_snapshot_instructions=<output-file>                                 \n"
+"   --isolate_snapshot_data=<output-file>                                    \n"
+"   --isolate_snapshot_instructions=<output-file>                            \n"
+"   {--embedder_entry_points_manifest=<input-file>}                          \n"
+"   <dart-script-file>                                                       \n"
 "                                                                            \n"
-"    Example:                                                                \n"
-"      dart:something,SomeClass,doSomething                                  \n"
+" To create an AOT application snapshot as assembly suitable for compilation \n"
+" as a static or dynamic library:                                            \n"
+" mmap:                                                                      \n"
+"   --snapshot_kind=app-aot-blobs                                            \n"
+"   --assembly=<output-file>                                                 \n"
+"   {--embedder_entry_points_manifest=<input-file>}                          \n"
+"   <dart-script-file>                                                       \n"
 "                                                                            \n"
-"  Supported options:                                                        \n"
-"    --vm_snapshot_data=<file>         A full snapshot is a compact          \n"
-"    --isolate_snapshot_data=<file>    representation of the dart vm isolate \n"
-"                                      heap and dart isolate heap states.    \n"
-"                                      Both these options are required       \n"
+" AOT snapshots require entry points manifest files, which list the places   \n"
+" in the Dart program the embedder calls from the C API (Dart_Invoke, etc).  \n"
+" Not specifying these may cause the tree shaker to remove them from the     \n"
+" program. The format of this manifest is as follows. Each line in the       \n"
+" manifest is a comma separated list of three elements. The first entry is   \n"
+" the library URI, the second entry is the class name and the final entry    \n"
+" the function name. The file must be terminated with a newline charater.    \n"
 "                                                                            \n"
-"    --package_root=<path>             Where to find packages, that is,      \n"
-"                                      package:...  imports.                 \n"
-"                                                                            \n"
-"    --packages=<packages_file>        Where to find a package spec file     \n"
-"                                                                            \n"
-"    --url_mapping=<mapping>           Uses the URL mapping(s) specified on  \n"
-"                                      the command line to load the          \n"
-"                                      libraries.                            \n"
-"                                                                            \n"
-"    --assembly=<file>                 (Precompilation only) Contains the    \n"
-"                                      assembly that must be linked into     \n"
-"                                      the target binary                     \n"
-"                                                                            \n"
-"    --vm_snapshot_instructions=<file> (Precompilation only) Contains the    \n"
-"    --isolate_snapshot_instructions=<file> instructions and read-only data  \n"
-"                                      that must be mapped into the target   \n"
-"                                      binary                                \n"
-"                                                                            \n"
-"    --embedder_entry_points_manifest=<file> (Precompilation or app          \n"
-"                                      snapshots) Contains embedder's entry  \n"
-"                                      points into Dart code from the C API. \n"
+"   Example:                                                                 \n"
+"     dart:something,SomeClass,doSomething                                   \n"
 "\n");
 }
 // clang-format on
 
 
-static void VerifyLoaded(Dart_Handle library) {
-  if (Dart_IsError(library)) {
-    const char* err_msg = Dart_GetError(library);
-    Log::PrintErr("Errors encountered while loading: %s\n", err_msg);
-    CHECK_RESULT(library);
-  }
-  ASSERT(Dart_IsLibrary(library));
-}
-
-
 static const char StubNativeFunctionName[] = "StubNativeFunction";
 
 
@@ -1028,8 +1099,11 @@
 }
 
 
-static void CreateAndWriteSnapshot() {
-  ASSERT(!IsSnapshottingForPrecompilation());
+static void CreateAndWriteCoreSnapshot() {
+  ASSERT(snapshot_kind == kCore);
+  ASSERT(vm_snapshot_data_filename != NULL);
+  ASSERT(isolate_snapshot_data_filename != NULL);
+
   Dart_Handle result;
   uint8_t* vm_snapshot_data_buffer = NULL;
   intptr_t vm_snapshot_data_size = 0;
@@ -1048,10 +1122,21 @@
                     vm_snapshot_data_size);
   WriteSnapshotFile(isolate_snapshot_data_filename,
                     isolate_snapshot_data_buffer, isolate_snapshot_data_size);
-  Dart_ExitScope();
+}
 
-  // Shutdown the isolate.
-  Dart_ShutdownIsolate();
+
+static void CreateAndWriteScriptSnapshot() {
+  ASSERT(snapshot_kind == kScript);
+  ASSERT(script_snapshot_filename != NULL);
+
+  // First create a snapshot.
+  uint8_t* buffer = NULL;
+  intptr_t size = 0;
+  Dart_Handle result = Dart_CreateScriptSnapshot(&buffer, &size);
+  CHECK_RESULT(result);
+
+  // Now write it out to the specified file.
+  WriteSnapshotFile(script_snapshot_filename, buffer, size, false);
 }
 
 
@@ -1067,13 +1152,18 @@
   // Create a precompiled snapshot.
   bool as_assembly = assembly_filename != NULL;
   if (as_assembly) {
+    ASSERT(snapshot_kind == kAppAOTAssembly);
+
     uint8_t* assembly_buffer = NULL;
     intptr_t assembly_size = 0;
     result =
         Dart_CreateAppAOTSnapshotAsAssembly(&assembly_buffer, &assembly_size);
     CHECK_RESULT(result);
+
     WriteSnapshotFile(assembly_filename, assembly_buffer, assembly_size);
   } else {
+    ASSERT(snapshot_kind == kAppAOTBlobs);
+
     uint8_t* vm_snapshot_data_buffer = NULL;
     intptr_t vm_snapshot_data_size = 0;
     uint8_t* vm_snapshot_instructions_buffer = NULL;
@@ -1089,6 +1179,7 @@
         &isolate_snapshot_instructions_buffer,
         &isolate_snapshot_instructions_size);
     CHECK_RESULT(result);
+
     WriteSnapshotFile(vm_snapshot_data_filename, vm_snapshot_data_buffer,
                       vm_snapshot_data_size);
     WriteSnapshotFile(vm_snapshot_instructions_filename,
@@ -1100,11 +1191,6 @@
                       isolate_snapshot_instructions_buffer,
                       isolate_snapshot_instructions_size);
   }
-
-  Dart_ExitScope();
-
-  // Shutdown the isolate.
-  Dart_ShutdownIsolate();
 }
 
 
@@ -1112,7 +1198,7 @@
   // Set up the library tag handler for this isolate.
   Dart_Handle result = Dart_SetLibraryTagHandler(Loader::LibraryTagHandler);
   if (Dart_IsError(result)) {
-    Log::PrintErr("%s", Dart_GetError(result));
+    Log::PrintErr("%s\n", Dart_GetError(result));
     Dart_ExitScope();
     Dart_ShutdownIsolate();
     exit(kErrorExitCode);
@@ -1120,7 +1206,7 @@
   // This is a generic dart snapshot which needs builtin library setup.
   Dart_Handle library =
       LoadGenericSnapshotCreationScript(Builtin::kBuiltinLibrary);
-  VerifyLoaded(library);
+  CHECK_RESULT(library);
 }
 
 
@@ -1128,7 +1214,7 @@
   SetupForUriResolution();
 
   Dart_Handle library = LoadGenericSnapshotCreationScript(Builtin::kIOLibrary);
-  VerifyLoaded(library);
+  CHECK_RESULT(library);
   Dart_Handle result = Dart_FinalizeLoading(false);
   if (Dart_IsError(result)) {
     const char* err_msg = Dart_GetError(library);
@@ -1148,30 +1234,30 @@
                                          void* data,
                                          char** error) {
   IsolateData* isolate_data =
-      new IsolateData(script_uri, package_root, package_config);
+      new IsolateData(script_uri, package_root, package_config, NULL);
   Dart_Isolate isolate = NULL;
-  isolate = Dart_CreateIsolate(script_uri, main, NULL, NULL, NULL, isolate_data,
-                               error);
+  isolate = Dart_CreateIsolate(script_uri, main, isolate_snapshot_data, NULL,
+                               NULL, isolate_data, error);
 
   if (isolate == NULL) {
-    Log::PrintErr("Error: Could not create service isolate");
+    Log::PrintErr("Error: Could not create service isolate\n");
     return NULL;
   }
 
   Dart_EnterScope();
   if (!Dart_IsServiceIsolate(isolate)) {
-    Log::PrintErr("Error: We only expect to create the service isolate");
+    Log::PrintErr("Error: We only expect to create the service isolate\n");
     return NULL;
   }
   Dart_Handle result = Dart_SetLibraryTagHandler(Loader::LibraryTagHandler);
+  if (Dart_IsError(result)) {
+    Log::PrintErr("Error: Could not set tag handler for service isolate\n");
+    return NULL;
+  }
   // Setup the native resolver.
   Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
   Builtin::LoadAndCheckLibrary(Builtin::kIOLibrary);
-  if (Dart_IsError(result)) {
-    Log::PrintErr("Error: Could not set tag handler for service isolate");
-    return NULL;
-  }
-  CHECK_RESULT(result);
+
   ASSERT(Dart_IsServiceIsolate(isolate));
   // Load embedder specific bits and return. Will not start http server.
   if (!VmService::Setup("127.0.0.1", -1, false /* running_precompiled */,
@@ -1244,6 +1330,39 @@
   init_params.file_close = DartUtils::CloseFile;
   init_params.entropy_source = DartUtils::EntropySource;
 
+  MappedMemory* mapped_vm_snapshot_data = NULL;
+  MappedMemory* mapped_isolate_snapshot_data = NULL;
+  if (snapshot_kind == kScript) {
+    File* file = File::Open(vm_snapshot_data_filename, File::kRead);
+    if (file == NULL) {
+      Log::PrintErr("Failed to open: %s\n", vm_snapshot_data_filename);
+      return kErrorExitCode;
+    }
+    mapped_vm_snapshot_data = file->Map(File::kReadOnly, 0, file->Length());
+    if (mapped_vm_snapshot_data == NULL) {
+      Log::PrintErr("Failed to read: %s\n", vm_snapshot_data_filename);
+      return kErrorExitCode;
+    }
+    file->Close();
+    init_params.vm_snapshot_data =
+        reinterpret_cast<const uint8_t*>(mapped_vm_snapshot_data->address());
+
+    file = File::Open(isolate_snapshot_data_filename, File::kRead);
+    if (file == NULL) {
+      Log::PrintErr("Failed to open: %s\n", isolate_snapshot_data_filename);
+      return kErrorExitCode;
+    }
+    mapped_isolate_snapshot_data =
+        file->Map(File::kReadOnly, 0, file->Length());
+    if (mapped_isolate_snapshot_data == NULL) {
+      Log::PrintErr("Failed to read: %s\n", isolate_snapshot_data_filename);
+      return kErrorExitCode;
+    }
+    file->Close();
+    isolate_snapshot_data = reinterpret_cast<const uint8_t*>(
+        mapped_isolate_snapshot_data->address());
+  }
+
   char* error = Dart_Initialize(&init_params);
   if (error != NULL) {
     Log::PrintErr("VM initialization failed: %s\n", error);
@@ -1252,11 +1371,11 @@
   }
 
   IsolateData* isolate_data = new IsolateData(NULL, commandline_package_root,
-                                              commandline_packages_file);
-  Dart_Isolate isolate =
-      Dart_CreateIsolate(NULL, NULL, NULL, NULL, NULL, isolate_data, &error);
+                                              commandline_packages_file, NULL);
+  Dart_Isolate isolate = Dart_CreateIsolate(NULL, NULL, isolate_snapshot_data,
+                                            NULL, NULL, isolate_data, &error);
   if (isolate == NULL) {
-    Log::PrintErr("Error: %s", error);
+    Log::PrintErr("Error: %s\n", error);
     free(error);
     exit(kErrorExitCode);
   }
@@ -1300,7 +1419,7 @@
 
     // Now we create an isolate into which we load all the code that needs to
     // be in the snapshot.
-    isolate_data = new IsolateData(NULL, NULL, NULL);
+    isolate_data = new IsolateData(NULL, NULL, NULL, NULL);
     const uint8_t* kernel = NULL;
     intptr_t kernel_length = 0;
     const bool is_kernel_file =
@@ -1316,10 +1435,10 @@
         is_kernel_file
             ? Dart_CreateIsolateFromKernel(NULL, NULL, kernel_program, NULL,
                                            isolate_data, &error)
-            : Dart_CreateIsolate(NULL, NULL, NULL, NULL, NULL, isolate_data,
-                                 &error);
+            : Dart_CreateIsolate(NULL, NULL, isolate_snapshot_data, NULL, NULL,
+                                 isolate_data, &error);
     if (isolate == NULL) {
-      Log::PrintErr("%s", error);
+      Log::PrintErr("%s\n", error);
       free(error);
       exit(kErrorExitCode);
     }
@@ -1352,7 +1471,7 @@
     if (!is_kernel_file) {
       // Load the specified script.
       library = LoadSnapshotCreationScript(app_script_name);
-      VerifyLoaded(library);
+      CHECK_RESULT(library);
 
       ImportNativeEntryPointLibrariesIntoRoot(entry_points);
     }
@@ -1361,19 +1480,34 @@
     result = Dart_FinalizeLoading(false);
     CHECK_RESULT(result);
 
-    if (!IsSnapshottingForPrecompilation()) {
-      CreateAndWriteSnapshot();
-    } else {
-      CreateAndWritePrecompiledSnapshot(entry_points);
+    switch (snapshot_kind) {
+      case kCore:
+        CreateAndWriteCoreSnapshot();
+        break;
+      case kScript:
+        CreateAndWriteScriptSnapshot();
+        break;
+      case kAppAOTBlobs:
+      case kAppAOTAssembly:
+        CreateAndWritePrecompiledSnapshot(entry_points);
+        break;
+      default:
+        UNREACHABLE();
     }
 
+    Dart_ExitScope();
+    Dart_ShutdownIsolate();
+
     CleanupEntryPointsCollection(entry_points);
 
     Dart_EnterIsolate(UriResolverIsolateScope::isolate);
     Dart_ShutdownIsolate();
   } else {
     SetupForGenericSnapshotCreation();
-    CreateAndWriteSnapshot();
+    CreateAndWriteCoreSnapshot();
+
+    Dart_ExitScope();
+    Dart_ShutdownIsolate();
   }
   error = Dart_Cleanup();
   if (error != NULL) {
@@ -1381,6 +1515,8 @@
     free(error);
   }
   EventHandler::Stop();
+  delete mapped_vm_snapshot_data;
+  delete mapped_isolate_snapshot_data;
   return 0;
 }
 
diff --git a/runtime/bin/isolate_data.cc b/runtime/bin/isolate_data.cc
new file mode 100644
index 0000000..b37cf17
--- /dev/null
+++ b/runtime/bin/isolate_data.cc
@@ -0,0 +1,48 @@
+// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "bin/isolate_data.h"
+#include "bin/snapshot_utils.h"
+
+namespace dart {
+namespace bin {
+
+IsolateData::IsolateData(const char* url,
+                         const char* package_root,
+                         const char* packages_file,
+                         AppSnapshot* app_snapshot)
+    : script_url((url != NULL) ? strdup(url) : NULL),
+      package_root(NULL),
+      packages_file(NULL),
+      udp_receive_buffer(NULL),
+      builtin_lib_(NULL),
+      loader_(NULL),
+      app_snapshot_(app_snapshot) {
+  if (package_root != NULL) {
+    ASSERT(packages_file == NULL);
+    this->package_root = strdup(package_root);
+  } else if (packages_file != NULL) {
+    this->packages_file = strdup(packages_file);
+  }
+}
+
+
+IsolateData::~IsolateData() {
+  free(script_url);
+  script_url = NULL;
+  free(package_root);
+  package_root = NULL;
+  free(packages_file);
+  packages_file = NULL;
+  free(udp_receive_buffer);
+  udp_receive_buffer = NULL;
+  if (builtin_lib_ != NULL) {
+    Dart_DeletePersistentHandle(builtin_lib_);
+  }
+  delete app_snapshot_;
+  app_snapshot_ = NULL;
+}
+
+}  // namespace bin
+}  // namespace dart
diff --git a/runtime/bin/isolate_data.h b/runtime/bin/isolate_data.h
index 5ed1ed8..505081e 100644
--- a/runtime/bin/isolate_data.h
+++ b/runtime/bin/isolate_data.h
@@ -13,6 +13,7 @@
 namespace bin {
 
 // Forward declaration.
+class AppSnapshot;
 class EventHandler;
 class Loader;
 
@@ -23,34 +24,9 @@
  public:
   IsolateData(const char* url,
               const char* package_root,
-              const char* packages_file)
-      : script_url((url != NULL) ? strdup(url) : NULL),
-        package_root(NULL),
-        packages_file(NULL),
-        udp_receive_buffer(NULL),
-        builtin_lib_(NULL),
-        loader_(NULL) {
-    if (package_root != NULL) {
-      ASSERT(packages_file == NULL);
-      this->package_root = strdup(package_root);
-    } else if (packages_file != NULL) {
-      this->packages_file = strdup(packages_file);
-    }
-  }
-
-  ~IsolateData() {
-    free(script_url);
-    script_url = NULL;
-    free(package_root);
-    package_root = NULL;
-    free(packages_file);
-    packages_file = NULL;
-    free(udp_receive_buffer);
-    udp_receive_buffer = NULL;
-    if (builtin_lib_ != NULL) {
-      Dart_DeletePersistentHandle(builtin_lib_);
-    }
-  }
+              const char* packages_file,
+              AppSnapshot* app_snapshot);
+  ~IsolateData();
 
   Dart_Handle builtin_lib() const {
     ASSERT(builtin_lib_ != NULL);
@@ -83,6 +59,7 @@
  private:
   Dart_Handle builtin_lib_;
   Loader* loader_;
+  AppSnapshot* app_snapshot_;
 
   DISALLOW_COPY_AND_ASSIGN(IsolateData);
 };
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index 6a104c1..dbcb739 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -105,6 +105,7 @@
 static char* app_script_uri = NULL;
 static const uint8_t* app_isolate_snapshot_data = NULL;
 static const uint8_t* app_isolate_snapshot_instructions = NULL;
+static AppSnapshot* app_snapshot = NULL;
 
 
 static Dart_Isolate main_isolate = NULL;
@@ -816,6 +817,7 @@
   const uint8_t* isolate_snapshot_data = app_isolate_snapshot_data;
   const uint8_t* isolate_snapshot_instructions =
       app_isolate_snapshot_instructions;
+  AppSnapshot* app_snapshot = NULL;
 #else
   // JIT: Main isolate starts from the app snapshot, if any. Other isolates
   // use the core libraries snapshot.
@@ -823,6 +825,7 @@
   const uint8_t* isolate_snapshot_data = core_isolate_snapshot_data;
   const uint8_t* isolate_snapshot_instructions =
       core_isolate_snapshot_instructions;
+  AppSnapshot* app_snapshot = NULL;
   if ((app_isolate_snapshot_data != NULL) &&
       (is_main_isolate || ((app_script_uri != NULL) &&
                            (strcmp(script_uri, app_script_uri) == 0)))) {
@@ -830,17 +833,14 @@
     isolate_snapshot_data = app_isolate_snapshot_data;
     isolate_snapshot_instructions = app_isolate_snapshot_instructions;
   } else if (!is_main_isolate) {
-    const uint8_t* file_vm_snapshot_data = NULL;
-    const uint8_t* file_vm_snapshot_instructions = NULL;
-    const uint8_t* file_isolate_snapshot_data = NULL;
-    const uint8_t* file_isolate_snapshot_instructions = NULL;
-    if (Snapshot::ReadAppSnapshot(
-            script_uri, &file_vm_snapshot_data, &file_vm_snapshot_instructions,
-            &file_isolate_snapshot_data, &file_isolate_snapshot_instructions)) {
-      // TODO(rmacnak): We are leaking the snapshot when the isolate shuts down.
+    app_snapshot = Snapshot::TryReadAppSnapshot(script_uri);
+    if (app_snapshot != NULL) {
       isolate_run_app_snapshot = true;
-      isolate_snapshot_data = file_isolate_snapshot_data;
-      isolate_snapshot_instructions = file_isolate_snapshot_instructions;
+      const uint8_t* ignore_vm_snapshot_data;
+      const uint8_t* ignore_vm_snapshot_instructions;
+      app_snapshot->SetBuffers(
+          &ignore_vm_snapshot_data, &ignore_vm_snapshot_instructions,
+          &isolate_snapshot_data, &isolate_snapshot_instructions);
     }
   }
 #endif
@@ -881,7 +881,7 @@
   }
 
   IsolateData* isolate_data =
-      new IsolateData(script_uri, package_root, packages_config);
+      new IsolateData(script_uri, package_root, packages_config, app_snapshot);
   // If the script is a Kernel binary, then we will try to bootstrap from the
   // script.
   Dart_Isolate isolate =
@@ -1069,7 +1069,7 @@
 "      --warn-on-pause-with-no-debugger\n"
 "  This set is subject to change.\n"
 "  Please see these options (--help --verbose) for further documentation.\n"
-"--snapshot-kind=<snapsot_kind>\n"
+"--snapshot-kind=<snapshot_kind>\n"
 "--snapshot=<file_name>\n"
 "  These snapshot options are used to generate a snapshot of the loaded\n"
 "  Dart script:\n"
@@ -1100,7 +1100,7 @@
 "      --warn-on-pause-with-no-debugger\n"
 "  This set is subject to change.\n"
 "  Please see these options for further documentation.\n"
-"--snapshot-kind=<snapsot_kind>\n"
+"--snapshot-kind=<snapshot_kind>\n"
 "--snapshot=<file_name>\n"
 "  These snapshot options are used to generate a snapshot of the loaded\n"
 "  Dart script:\n"
@@ -1639,10 +1639,12 @@
     Platform::Exit(kErrorExitCode);
   }
 
-  if (Snapshot::ReadAppSnapshot(
-          script_name, &vm_snapshot_data, &vm_snapshot_instructions,
-          &app_isolate_snapshot_data, &app_isolate_snapshot_instructions)) {
+  app_snapshot = Snapshot::TryReadAppSnapshot(script_name);
+  if (app_snapshot != NULL) {
     vm_run_app_snapshot = true;
+    app_snapshot->SetBuffers(&vm_snapshot_data, &vm_snapshot_instructions,
+                             &app_isolate_snapshot_data,
+                             &app_isolate_snapshot_instructions);
   }
 
 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
@@ -1718,6 +1720,7 @@
   }
   EventHandler::Stop();
 
+  delete app_snapshot;
   free(app_script_uri);
 
   // Free copied argument strings if converted.
diff --git a/runtime/bin/process_fuchsia.cc b/runtime/bin/process_fuchsia.cc
index 02c5055..865ce0c 100644
--- a/runtime/bin/process_fuchsia.cc
+++ b/runtime/bin/process_fuchsia.cc
@@ -388,7 +388,7 @@
     item_count_--;
   }
 
-  // Interrupt message pipe.
+  // Interrupt channel.
   static mx_handle_t interrupt_in_;
   static mx_handle_t interrupt_out_;
 
diff --git a/runtime/bin/process_patch.dart b/runtime/bin/process_patch.dart
index d34a28c..8920d37 100644
--- a/runtime/bin/process_patch.dart
+++ b/runtime/bin/process_patch.dart
@@ -182,7 +182,7 @@
 
   _ProcessImpl(String path,
                List<String> arguments,
-               String this._workingDirectory,
+               this._workingDirectory,
                Map<String, String> environment,
                bool includeParentEnvironment,
                bool runInShell,
diff --git a/runtime/bin/snapshot_utils.cc b/runtime/bin/snapshot_utils.cc
index 741d797..f1ad535 100644
--- a/runtime/bin/snapshot_utils.cc
+++ b/runtime/bin/snapshot_utils.cc
@@ -24,28 +24,72 @@
 static const int64_t kAppSnapshotMagicNumber = 0xf6f6dcdc;
 static const int64_t kAppSnapshotPageSize = 4 * KB;
 
-static bool ReadAppSnapshotBlobs(const char* script_name,
-                                 const uint8_t** vm_data_buffer,
-                                 const uint8_t** vm_instructions_buffer,
-                                 const uint8_t** isolate_data_buffer,
-                                 const uint8_t** isolate_instructions_buffer) {
+class MappedAppSnapshot : public AppSnapshot {
+ public:
+  MappedAppSnapshot(MappedMemory* vm_snapshot_data,
+                    MappedMemory* vm_snapshot_instructions,
+                    MappedMemory* isolate_snapshot_data,
+                    MappedMemory* isolate_snapshot_instructions)
+      : vm_data_mapping_(vm_snapshot_data),
+        vm_instructions_mapping_(vm_snapshot_instructions),
+        isolate_data_mapping_(isolate_snapshot_data),
+        isolate_instructions_mapping_(isolate_snapshot_instructions) {}
+
+  ~MappedAppSnapshot() {
+    delete vm_data_mapping_;
+    delete vm_instructions_mapping_;
+    delete isolate_data_mapping_;
+    delete isolate_instructions_mapping_;
+  }
+
+  void SetBuffers(const uint8_t** vm_data_buffer,
+                  const uint8_t** vm_instructions_buffer,
+                  const uint8_t** isolate_data_buffer,
+                  const uint8_t** isolate_instructions_buffer) {
+    if (vm_data_mapping_ != NULL) {
+      *vm_data_buffer =
+          reinterpret_cast<const uint8_t*>(vm_data_mapping_->address());
+    }
+    if (vm_instructions_mapping_ != NULL) {
+      *vm_instructions_buffer =
+          reinterpret_cast<const uint8_t*>(vm_instructions_mapping_->address());
+    }
+    if (isolate_data_mapping_ != NULL) {
+      *isolate_data_buffer =
+          reinterpret_cast<const uint8_t*>(isolate_data_mapping_->address());
+    }
+    if (isolate_instructions_mapping_ != NULL) {
+      *isolate_instructions_buffer = reinterpret_cast<const uint8_t*>(
+          isolate_instructions_mapping_->address());
+    }
+  }
+
+ private:
+  MappedMemory* vm_data_mapping_;
+  MappedMemory* vm_instructions_mapping_;
+  MappedMemory* isolate_data_mapping_;
+  MappedMemory* isolate_instructions_mapping_;
+};
+
+
+static AppSnapshot* TryReadAppSnapshotBlobs(const char* script_name) {
   File* file = File::Open(script_name, File::kRead);
   if (file == NULL) {
-    return false;
+    return NULL;
   }
   if (file->Length() < kAppSnapshotHeaderSize) {
     file->Release();
-    return false;
+    return NULL;
   }
   int64_t header[5];
   ASSERT(sizeof(header) == kAppSnapshotHeaderSize);
   if (!file->ReadFully(&header, kAppSnapshotHeaderSize)) {
     file->Release();
-    return false;
+    return NULL;
   }
   if (header[0] != kAppSnapshotMagicNumber) {
     file->Release();
-    return false;
+    return NULL;
   }
 
   int64_t vm_data_size = header[1];
@@ -68,121 +112,143 @@
         Utils::RoundUp(isolate_instructions_position, kAppSnapshotPageSize);
   }
 
+  MappedMemory* vm_data_mapping = NULL;
   if (vm_data_size != 0) {
-    *vm_data_buffer = reinterpret_cast<const uint8_t*>(
-        file->Map(File::kReadOnly, vm_data_position, vm_data_size));
-    if (vm_data_buffer == NULL) {
-      Log::PrintErr("Failed to memory map snapshot\n");
-      Platform::Exit(kErrorExitCode);
+    vm_data_mapping =
+        file->Map(File::kReadOnly, vm_data_position, vm_data_size);
+    if (vm_data_mapping == NULL) {
+      FATAL1("Failed to memory map snapshot: %s\n", script_name);
     }
   }
 
+  MappedMemory* vm_instr_mapping = NULL;
   if (vm_instructions_size != 0) {
-    *vm_instructions_buffer = reinterpret_cast<const uint8_t*>(file->Map(
-        File::kReadExecute, vm_instructions_position, vm_instructions_size));
-    if (*vm_instructions_buffer == NULL) {
-      Log::PrintErr("Failed to memory map snapshot\n");
-      Platform::Exit(kErrorExitCode);
+    vm_instr_mapping = file->Map(File::kReadExecute, vm_instructions_position,
+                                 vm_instructions_size);
+    if (vm_instr_mapping == NULL) {
+      FATAL1("Failed to memory map snapshot: %s\n", script_name);
     }
   }
 
-  *isolate_data_buffer = reinterpret_cast<const uint8_t*>(
-      file->Map(File::kReadOnly, isolate_data_position, isolate_data_size));
-  if (isolate_data_buffer == NULL) {
-    Log::PrintErr("Failed to memory map snapshot\n");
-    Platform::Exit(kErrorExitCode);
+  MappedMemory* isolate_data_mapping = NULL;
+  if (isolate_data_size != 0) {
+    isolate_data_mapping =
+        file->Map(File::kReadOnly, isolate_data_position, isolate_data_size);
+    if (isolate_data_mapping == NULL) {
+      FATAL1("Failed to memory map snapshot: %s\n", script_name);
+    }
   }
 
-  if (isolate_instructions_size == 0) {
-    *isolate_instructions_buffer = NULL;
-  } else {
-    *isolate_instructions_buffer = reinterpret_cast<const uint8_t*>(
+  MappedMemory* isolate_instr_mapping = NULL;
+  if (isolate_instructions_size != 0) {
+    isolate_instr_mapping =
         file->Map(File::kReadExecute, isolate_instructions_position,
-                  isolate_instructions_size));
-    if (*isolate_instructions_buffer == NULL) {
-      Log::PrintErr("Failed to memory map snapshot\n");
-      Platform::Exit(kErrorExitCode);
+                  isolate_instructions_size);
+    if (isolate_instr_mapping == NULL) {
+      FATAL1("Failed to memory map snapshot: %s\n", script_name);
     }
   }
 
   file->Release();
-  return true;
+  return new MappedAppSnapshot(vm_data_mapping, vm_instr_mapping,
+                               isolate_data_mapping, isolate_instr_mapping);
 }
 
 
 #if defined(DART_PRECOMPILED_RUNTIME)
-static bool ReadAppSnapshotDynamicLibrary(
-    const char* script_name,
-    const uint8_t** vm_data_buffer,
-    const uint8_t** vm_instructions_buffer,
-    const uint8_t** isolate_data_buffer,
-    const uint8_t** isolate_instructions_buffer) {
+class DylibAppSnapshot : public AppSnapshot {
+ public:
+  DylibAppSnapshot(void* library,
+                   const uint8_t* vm_snapshot_data,
+                   const uint8_t* vm_snapshot_instructions,
+                   const uint8_t* isolate_snapshot_data,
+                   const uint8_t* isolate_snapshot_instructions)
+      : library_(library),
+        vm_snapshot_data_(vm_snapshot_data),
+        vm_snapshot_instructions_(vm_snapshot_instructions),
+        isolate_snapshot_data_(isolate_snapshot_data),
+        isolate_snapshot_instructions_(isolate_snapshot_instructions) {}
+
+  ~DylibAppSnapshot() { Extensions::UnloadLibrary(library_); }
+
+  void SetBuffers(const uint8_t** vm_data_buffer,
+                  const uint8_t** vm_instructions_buffer,
+                  const uint8_t** isolate_data_buffer,
+                  const uint8_t** isolate_instructions_buffer) {
+    *vm_data_buffer = vm_snapshot_data_;
+    *vm_instructions_buffer = vm_snapshot_instructions_;
+    *isolate_data_buffer = isolate_snapshot_data_;
+    *isolate_instructions_buffer = isolate_snapshot_instructions_;
+  }
+
+ private:
+  void* library_;
+  const uint8_t* vm_snapshot_data_;
+  const uint8_t* vm_snapshot_instructions_;
+  const uint8_t* isolate_snapshot_data_;
+  const uint8_t* isolate_snapshot_instructions_;
+};
+
+
+static AppSnapshot* TryReadAppSnapshotDynamicLibrary(const char* script_name) {
   void* library = Extensions::LoadExtensionLibrary(script_name);
   if (library == NULL) {
-    return false;
+    return NULL;
   }
 
-  *vm_data_buffer = reinterpret_cast<const uint8_t*>(
+  const uint8_t* vm_data_buffer = reinterpret_cast<const uint8_t*>(
       Extensions::ResolveSymbol(library, kVmSnapshotDataSymbolName));
-  if (*vm_data_buffer == NULL) {
-    Log::PrintErr("Failed to resolve symbol '%s'\n", kVmSnapshotDataSymbolName);
-    Platform::Exit(kErrorExitCode);
+  if (vm_data_buffer == NULL) {
+    FATAL1("Failed to resolve symbol '%s'\n", kVmSnapshotDataSymbolName);
   }
 
-  *vm_instructions_buffer = reinterpret_cast<const uint8_t*>(
+  const uint8_t* vm_instructions_buffer = reinterpret_cast<const uint8_t*>(
       Extensions::ResolveSymbol(library, kVmSnapshotInstructionsSymbolName));
-  if (*vm_instructions_buffer == NULL) {
-    Log::PrintErr("Failed to resolve symbol '%s'\n",
-                  kVmSnapshotInstructionsSymbolName);
-    Platform::Exit(kErrorExitCode);
+  if (vm_instructions_buffer == NULL) {
+    FATAL1("Failed to resolve symbol '%s'\n",
+           kVmSnapshotInstructionsSymbolName);
   }
 
-  *isolate_data_buffer = reinterpret_cast<const uint8_t*>(
+  const uint8_t* isolate_data_buffer = reinterpret_cast<const uint8_t*>(
       Extensions::ResolveSymbol(library, kIsolateSnapshotDataSymbolName));
-  if (*isolate_data_buffer == NULL) {
-    Log::PrintErr("Failed to resolve symbol '%s'\n",
-                  kIsolateSnapshotDataSymbolName);
-    Platform::Exit(kErrorExitCode);
+  if (isolate_data_buffer == NULL) {
+    FATAL1("Failed to resolve symbol '%s'\n", kIsolateSnapshotDataSymbolName);
   }
 
-  *isolate_instructions_buffer =
+  const uint8_t* isolate_instructions_buffer =
       reinterpret_cast<const uint8_t*>(Extensions::ResolveSymbol(
           library, kIsolateSnapshotInstructionsSymbolName));
-  if (*isolate_instructions_buffer == NULL) {
-    Log::PrintErr("Failed to resolve symbol '%s'\n",
-                  kIsolateSnapshotInstructionsSymbolName);
-    Platform::Exit(kErrorExitCode);
+  if (isolate_instructions_buffer == NULL) {
+    FATAL1("Failed to resolve symbol '%s'\n",
+           kIsolateSnapshotInstructionsSymbolName);
   }
 
-  return true;
+  return new DylibAppSnapshot(library, vm_data_buffer, vm_instructions_buffer,
+                              isolate_data_buffer, isolate_instructions_buffer);
 }
 #endif  // defined(DART_PRECOMPILED_RUNTIME)
 
 
-bool Snapshot::ReadAppSnapshot(const char* script_name,
-                               const uint8_t** vm_data_buffer,
-                               const uint8_t** vm_instructions_buffer,
-                               const uint8_t** isolate_data_buffer,
-                               const uint8_t** isolate_instructions_buffer) {
+AppSnapshot* Snapshot::TryReadAppSnapshot(const char* script_name) {
   if (File::GetType(script_name, true) != File::kIsFile) {
     // If 'script_name' refers to a pipe, don't read to check for an app
     // snapshot since we cannot rewind if it isn't (and couldn't mmap it in
     // anyway if it was).
-    return false;
+    return NULL;
   }
-  if (ReadAppSnapshotBlobs(script_name, vm_data_buffer, vm_instructions_buffer,
-                           isolate_data_buffer, isolate_instructions_buffer)) {
-    return true;
+  AppSnapshot* snapshot = TryReadAppSnapshotBlobs(script_name);
+  if (snapshot != NULL) {
+    return snapshot;
   }
 #if defined(DART_PRECOMPILED_RUNTIME)
   // For testing AOT with the standalone embedder, we also support loading
   // from a dynamic library to simulate what happens on iOS.
-  return ReadAppSnapshotDynamicLibrary(
-      script_name, vm_data_buffer, vm_instructions_buffer, isolate_data_buffer,
-      isolate_instructions_buffer);
-#else
-  return false;
+  snapshot = TryReadAppSnapshotDynamicLibrary(script_name);
+  if (snapshot != NULL) {
+    return snapshot;
+  }
 #endif  //  defined(DART_PRECOMPILED_RUNTIME)
+  return NULL;
 }
 
 
diff --git a/runtime/bin/snapshot_utils.h b/runtime/bin/snapshot_utils.h
index fa66777..758b386 100644
--- a/runtime/bin/snapshot_utils.h
+++ b/runtime/bin/snapshot_utils.h
@@ -10,6 +10,22 @@
 namespace dart {
 namespace bin {
 
+class AppSnapshot {
+ public:
+  virtual ~AppSnapshot() {}
+
+  virtual void SetBuffers(const uint8_t** vm_data_buffer,
+                          const uint8_t** vm_instructions_buffer,
+                          const uint8_t** isolate_data_buffer,
+                          const uint8_t** isolate_instructions_buffer) = 0;
+
+ protected:
+  AppSnapshot() {}
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(AppSnapshot);
+};
+
 class Snapshot {
  public:
   static void GenerateScript(const char* snapshot_filename);
@@ -17,11 +33,7 @@
   static void GenerateAppAOTAsBlobs(const char* snapshot_filename);
   static void GenerateAppAOTAsAssembly(const char* snapshot_filename);
 
-  static bool ReadAppSnapshot(const char* script_name,
-                              const uint8_t** vm_data_buffer,
-                              const uint8_t** vm_instructions_buffer,
-                              const uint8_t** isolate_data_buffer,
-                              const uint8_t** isolate_instructions_buffer);
+  static AppSnapshot* TryReadAppSnapshot(const char* script_name);
 
  private:
   DISALLOW_ALLOCATION();
diff --git a/runtime/bin/socket_patch.dart b/runtime/bin/socket_patch.dart
index c11cec1..3b81e08 100644
--- a/runtime/bin/socket_patch.dart
+++ b/runtime/bin/socket_patch.dart
@@ -144,9 +144,7 @@
 
   Future<InternetAddress> reverse() => _NativeSocket.reverseLookup(this);
 
-  _InternetAddress(String this.address,
-                   String this._host,
-                   List<int> this._in_addr);
+  _InternetAddress(this.address, this._host, this._in_addr);
 
   factory _InternetAddress.parse(String address) {
     if (address is !String) {
@@ -1527,7 +1525,7 @@
   var _subscription;
   var _detachReady;
 
-  _Socket(RawSocket this._raw) {
+  _Socket(this._raw) {
     _controller = new StreamController<List<int>>(sync: true,
         onListen: _onSubscriptionStateChange,
         onCancel: _onSubscriptionStateChange,
diff --git a/runtime/bin/vmservice_dartium.cc b/runtime/bin/vmservice_dartium.cc
index f3c91d9..8883ccd 100644
--- a/runtime/bin/vmservice_dartium.cc
+++ b/runtime/bin/vmservice_dartium.cc
@@ -43,7 +43,7 @@
   ASSERT(snapshot_buffer != NULL);
   // Create the isolate.
   IsolateData* isolate_data =
-      new IsolateData(DART_VM_SERVICE_ISOLATE_NAME, NULL, NULL);
+      new IsolateData(DART_VM_SERVICE_ISOLATE_NAME, NULL, NULL, NULL);
   char* error = 0;
   Dart_Isolate isolate =
       Dart_CreateIsolate(DART_VM_SERVICE_ISOLATE_NAME, "main", snapshot_buffer,
diff --git a/runtime/lib/array.dart b/runtime/lib/array.dart
index cf124ba..aab9f31 100644
--- a/runtime/lib/array.dart
+++ b/runtime/lib/array.dart
@@ -60,10 +60,9 @@
   }
 
   List<E> sublist(int start, [int end]) {
-    Lists.indicesCheck(this, start, end);
-    if (end == null) end = this.length;
+    end = RangeError.checkValidRange(start, end, this.length);
     int length = end - start;
-    if (start == end) return <E>[];
+    if (length == 0) return <E>[];
     var result = new _GrowableList<E>.withData(_slice(start, length, false));
     result._setLength(length);
     return result;
@@ -136,8 +135,7 @@
   int get length native "List_getLength";
 
   List<E> sublist(int start, [int end]) {
-    Lists.indicesCheck(this, start, end);
-    if (end == null) end = this.length;
+    end = RangeError.checkValidRange(start, end, this.length);
     int length = end - start;
     if (length == 0) return <E>[];
     List list = new _List(length);
diff --git a/runtime/lib/async_patch.dart b/runtime/lib/async_patch.dart
index d41a721..2a65b20 100644
--- a/runtime/lib/async_patch.dart
+++ b/runtime/lib/async_patch.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import "dart:_internal";
+import "dart:_internal" hide Symbol;
 
 // We need to pass the value as first argument and leave the second and third
 // arguments empty (used for error handling).
diff --git a/runtime/lib/bigint.dart b/runtime/lib/bigint.dart
index 0c562d7..e4fc4eb 100644
--- a/runtime/lib/bigint.dart
+++ b/runtime/lib/bigint.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:typed_data' show Uint32List;
+
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
diff --git a/runtime/lib/class_id.cc b/runtime/lib/class_id.cc
index c950b0e..2d9f67d 100644
--- a/runtime/lib/class_id.cc
+++ b/runtime/lib/class_id.cc
@@ -13,24 +13,4 @@
   return Smi::New(instance.GetClassId());
 }
 
-
-DEFINE_NATIVE_ENTRY(ClassID_byName, 1) {
-  GET_NON_NULL_NATIVE_ARGUMENT(String, name, arguments->NativeArgAt(0));
-
-#define CLASS_LIST_WITH_NULL(V)                                                \
-  V(Null)                                                                      \
-  CLASS_LIST_NO_OBJECT(V)
-
-#define COMPARE(clazz)                                                         \
-  if (name.Equals(#clazz)) return Smi::New(k##clazz##Cid);
-
-  CLASS_LIST_WITH_NULL(COMPARE)
-
-#undef COMPARE
-#undef CLASS_LIST_WITH_NULL
-
-  UNREACHABLE();
-  return Smi::New(-1);
-}
-
 }  // namespace dart
diff --git a/runtime/lib/class_id.dart b/runtime/lib/class_id.dart
index 8a8d670..2f60f85 100644
--- a/runtime/lib/class_id.dart
+++ b/runtime/lib/class_id.dart
@@ -5,13 +5,5 @@
 class ClassID {
   static int getID(Object value) native "ClassID_getID";
 
-  static int _lookup(String name) native "ClassID_byName";
-
-  static final int cidArray = _lookup('Array');
-  static final int cidExternalOneByteString = _lookup('ExternalOneByteString');
-  static final int cidGrowableObjectArray = _lookup('GrowableObjectArray');
-  static final int cidImmutableArray = _lookup('ImmutableArray');
-  static final int cidOneByteString = _lookup('OneByteString');
-  static final int cidTwoByteString = _lookup('TwoByteString');
-  static final int cidBigint = _lookup('Bigint');
+  // VM injects class id constants into this class.
 }
diff --git a/runtime/lib/compact_hash.dart b/runtime/lib/compact_hash.dart
index 86ec9d8..8a37893 100644
--- a/runtime/lib/compact_hash.dart
+++ b/runtime/lib/compact_hash.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:typed_data' show Uint32List;
+
 // Hash table with open addressing that separates the index from keys/values.
 
 abstract class _HashFieldBase {
diff --git a/runtime/lib/developer.dart b/runtime/lib/developer.dart
index 78c1d6d..3e46cc5 100644
--- a/runtime/lib/developer.dart
+++ b/runtime/lib/developer.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:isolate';
-import 'dart:_internal';
+import 'dart:_internal' hide Symbol;
 
 @patch bool debugger({bool when: true,
                      String message}) native "Developer_debugger";
diff --git a/runtime/lib/internal_patch.dart b/runtime/lib/internal_patch.dart
index 681b8db..9e5300a 100644
--- a/runtime/lib/internal_patch.dart
+++ b/runtime/lib/internal_patch.dart
@@ -46,3 +46,20 @@
 
 // Equivalent of calling FATAL from C++ code.
 fatal(msg) native "DartInternal_fatal";
+
+// Utility class now only used by the VM.
+class Lists {
+  static void copy(List src, int srcStart,
+                   List dst, int dstStart, int count) {
+    if (srcStart < dstStart) {
+      for (int i = srcStart + count - 1, j = dstStart + count - 1;
+           i >= srcStart; i--, j--) {
+        dst[j] = src[i];
+      }
+    } else {
+      for (int i = srcStart, j = dstStart; i < srcStart + count; i++, j++) {
+        dst[j] = src[i];
+      }
+    }
+  }
+}
diff --git a/runtime/lib/isolate_patch.dart b/runtime/lib/isolate_patch.dart
index 20b1f6b..4ae2741 100644
--- a/runtime/lib/isolate_patch.dart
+++ b/runtime/lib/isolate_patch.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import "dart:collection" show HashMap;
-import "dart:_internal";
+import "dart:_internal" hide Symbol;
 
 @patch class ReceivePort {
   @patch factory ReceivePort() = _ReceivePortImpl;
diff --git a/runtime/lib/math_patch.dart b/runtime/lib/math_patch.dart
index 7d5e752..b07a6bd 100644
--- a/runtime/lib/math_patch.dart
+++ b/runtime/lib/math_patch.dart
@@ -99,11 +99,11 @@
 
 class _Random implements Random {
   // Internal state of the random number generator.
-  final _state;
+  final Uint32List _state;
   static const _kSTATE_LO = 0;
   static const _kSTATE_HI = 1;  // Unused in Dart code.
 
-  _Random._withState(Uint32List this._state);
+  _Random._withState(this._state);
 
   // The algorithm used here is Multiply with Carry (MWC) with a Base b = 2^32.
   // http://en.wikipedia.org/wiki/Multiply-with-carry
diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart
index f152adb..8336126 100644
--- a/runtime/lib/mirrors_impl.dart
+++ b/runtime/lib/mirrors_impl.dart
@@ -9,7 +9,7 @@
 
 class _InternalMirrorError {
   final String _msg;
-  const _InternalMirrorError(String this._msg);
+  const _InternalMirrorError(this._msg);
   String toString() => _msg;
 }
 
diff --git a/runtime/lib/string_buffer_patch.dart b/runtime/lib/string_buffer_patch.dart
index 80dddd5..8271cc9 100644
--- a/runtime/lib/string_buffer_patch.dart
+++ b/runtime/lib/string_buffer_patch.dart
@@ -2,6 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:typed_data' show Uint16List;
+
 @patch class StringBuffer {
   static const int _BUFFER_SIZE = 64;
   static const int _PARTS_TO_COMPACT = 128;
diff --git a/runtime/lib/string_patch.dart b/runtime/lib/string_patch.dart
index f046d8f..a4bb7e7 100644
--- a/runtime/lib/string_patch.dart
+++ b/runtime/lib/string_patch.dart
@@ -1287,9 +1287,7 @@
 
 
 class _StringMatch implements Match {
-  const _StringMatch(int this.start,
-                     String this.input,
-                     String this.pattern);
+  const _StringMatch(this.start, this.input, this.pattern);
 
   int get end => start + pattern.length;
   String operator[](int g) => group(g);
diff --git a/runtime/lib/typed_data_patch.dart b/runtime/lib/typed_data_patch.dart
index ab055ee..4a0dd3e 100644
--- a/runtime/lib/typed_data_patch.dart
+++ b/runtime/lib/typed_data_patch.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import "dart:_internal";
+import "dart:_internal" hide Symbol;
 import "dart:collection" show ListBase;
 import 'dart:math' show Random;
 
@@ -179,12 +179,27 @@
   }
 
   int indexOf(element, [int start = 0]) {
-    return Lists.indexOf(this, element, start, this.length);
+    if (start >= this.length) {
+      return -1;
+    } else if (start < 0) {
+      start = 0;
+    }
+    for (int i = start; i < this.length; i++) {
+      if (this[i] == element) return i;
+    }
+    return -1;
   }
 
   int lastIndexOf(element, [int start = null]) {
-    if (start == null) start = this.length - 1;
-    return Lists.lastIndexOf(this, element, start);
+    if (start == null || start >= this.length) {
+      start = this.length - 1;
+    } else if (start < 0) {
+      return -1;
+    }
+    for (int i = start; i >= 0; i--) {
+      if (this[i] == element) return i;
+    }
+    return -1;
   }
 
   void clear() {
diff --git a/runtime/observatory/tests/service/causal_async_stack_contents_test.dart b/runtime/observatory/tests/service/causal_async_stack_contents_test.dart
index 9777993..cfdc667 100644
--- a/runtime/observatory/tests/service/causal_async_stack_contents_test.dart
+++ b/runtime/observatory/tests/service/causal_async_stack_contents_test.dart
@@ -65,6 +65,12 @@
     expect(asyncStack[1].toString(), contains('helper'));
     expect(asyncStack[2].kind, equals(M.FrameKind.asyncSuspensionMarker));
     expect(asyncStack[3].toString(), contains('testMain'));
+    // Line 19.
+    expect(await asyncStack[0].location.toUserString(), contains('.dart:19'));
+    // Line 25.
+    expect(await asyncStack[1].location.toUserString(), contains('.dart:25'));
+    // Line 30.
+    expect(await asyncStack[3].location.toUserString(), contains('.dart:30'));
   },
 ];
 
diff --git a/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart b/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart
index 0a32ace..47c3131 100644
--- a/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart
+++ b/runtime/observatory/tests/service/causal_async_star_stack_contents_test.dart
@@ -75,6 +75,12 @@
     expect(asyncStack[2].toString(), contains('helper'));
     expect(asyncStack[3].kind, equals(M.FrameKind.asyncSuspensionMarker));
     expect(asyncStack[4].toString(), contains('testMain'));
+    // Line 21.
+    expect(await asyncStack[0].location.toUserString(), contains('.dart:21'));
+    // Line 27.
+    expect(await asyncStack[2].location.toUserString(), contains('.dart:27'));
+    // Line 30.
+    expect(await asyncStack[4].location.toUserString(), contains('.dart:33'));
   },
 ];
 
diff --git a/runtime/observatory/tests/service/positive_token_pos_test.dart b/runtime/observatory/tests/service/positive_token_pos_test.dart
index eb46496..c30da31 100644
--- a/runtime/observatory/tests/service/positive_token_pos_test.dart
+++ b/runtime/observatory/tests/service/positive_token_pos_test.dart
@@ -19,6 +19,7 @@
 
 var tests = [
   hasStoppedAtBreakpoint,
+  markDartColonLibrariesDebuggable,
   stoppedAtLine(17),
   stepInto,
 
diff --git a/runtime/observatory/tests/service/regress_28443_test.dart b/runtime/observatory/tests/service/regress_28443_test.dart
index b135a6f..652e4b0 100644
--- a/runtime/observatory/tests/service/regress_28443_test.dart
+++ b/runtime/observatory/tests/service/regress_28443_test.dart
@@ -61,6 +61,7 @@
 }
 
 var tests = [hasPausedAtStart,
+             markDartColonLibrariesDebuggable,
              setBreakpointAtLine(LINE_B),
              resumeIsolate,
              hasStoppedAtBreakpoint,
diff --git a/runtime/observatory/tests/service/service_test_common.dart b/runtime/observatory/tests/service/service_test_common.dart
index 45e8b46..44d82f2 100644
--- a/runtime/observatory/tests/service/service_test_common.dart
+++ b/runtime/observatory/tests/service/service_test_common.dart
@@ -206,6 +206,24 @@
   return hasPausedFor(isolate, ServiceEvent.kPauseStart);
 }
 
+Future<Isolate> markDartColonLibrariesDebuggable(Isolate isolate) async {
+  await isolate.reload();
+  for (Library lib in isolate.libraries) {
+    await lib.load();
+    if (lib.uri.startsWith('dart:') &&
+        !lib.uri.startsWith('dart:_')) {
+      var setDebugParams = {
+            'libraryId': lib.id,
+            'isDebuggable': true,
+          };
+      Map<String, dynamic> result =
+          await isolate.invokeRpcNoUpgrade('setLibraryDebuggable',
+                                           setDebugParams);
+    }
+  }
+  return isolate;
+}
+
 IsolateTest reloadSources([bool pause = false]) {
     return (Isolate isolate) async {
       Map<String, dynamic> params = <String, dynamic>{ };
diff --git a/runtime/observatory/tests/service/set_library_debuggable_test.dart b/runtime/observatory/tests/service/set_library_debuggable_test.dart
index d76569c..6873e44 100644
--- a/runtime/observatory/tests/service/set_library_debuggable_test.dart
+++ b/runtime/observatory/tests/service/set_library_debuggable_test.dart
@@ -23,11 +23,13 @@
 }
 
 var tests = [
+  hasStoppedAtBreakpoint,
+  markDartColonLibrariesDebuggable,
   (Isolate isolate) async {
     await isolate.reload();
     Library dartCore = isolate.libraries.firstWhere(
       (Library library) => library.uri == 'dart:core');
-    await dartCore.load();
+    await dartCore.reload();
     expect(dartCore.debuggable, equals(true));
   },
   stoppedInFunction('testMain', contains:true),
diff --git a/runtime/observatory/tests/service/step_test.dart b/runtime/observatory/tests/service/step_test.dart
index 47009dc..480f549 100644
--- a/runtime/observatory/tests/service/step_test.dart
+++ b/runtime/observatory/tests/service/step_test.dart
@@ -32,7 +32,10 @@
   return completer.future;
 }
 
-var tests = [hasPausedAtStart, setBreakpointAtLine(LINE_A), stepThroughProgram];
+var tests = [hasPausedAtStart,
+             markDartColonLibrariesDebuggable,
+             setBreakpointAtLine(LINE_A),
+             stepThroughProgram];
 
 main(args) => runIsolateTestsSynchronous(args, tests,
     testeeConcurrent: code, pause_on_start: true, pause_on_exit: true);
diff --git a/runtime/observatory/tests/service/test_helper.dart b/runtime/observatory/tests/service/test_helper.dart
index ca1e5af..5078203 100644
--- a/runtime/observatory/tests/service/test_helper.dart
+++ b/runtime/observatory/tests/service/test_helper.dart
@@ -330,7 +330,6 @@
         await process.requestExit();
       });
     }, onError: (error, stackTrace) async {
-      print('onERROR FIRED!');
       if (testsDone) {
         print('Ignoring late exception during process exit:\n'
               '$error\n#stackTrace');
diff --git a/runtime/tools/concatenate_patches.py b/runtime/tools/concatenate_patches.py
index 1653066..8b2df2a5 100755
--- a/runtime/tools/concatenate_patches.py
+++ b/runtime/tools/concatenate_patches.py
@@ -9,9 +9,16 @@
   dart_file_names = filter(lambda name: name.endswith('.dart'),
                            input_file_names)
   with open(output_file_name, 'w') as output_file:
+    is_first = True
     for dart_file_name in dart_file_names:
       with open(dart_file_name, 'r') as dart_file:
-        output_file.write(dart_file.read())
+        if is_first:
+          output_file.write(dart_file.read())
+          is_first = False
+        else:
+          for line in dart_file.readlines():
+            if not line.startswith("import "):
+              output_file.write(line)
 
 
 def main():
diff --git a/runtime/tools/create_snapshot_bin.py b/runtime/tools/create_snapshot_bin.py
index 81f35aa..7fd77e6 100755
--- a/runtime/tools/create_snapshot_bin.py
+++ b/runtime/tools/create_snapshot_bin.py
@@ -24,11 +24,15 @@
   result.add_option("--executable",
       action="store", type="string",
       help="path to snapshot generator executable")
+  result.add_option("--snapshot_kind",
+      action="store", type="string",
+      help="kind of snapshot to generate",
+      default="core")
   result.add_option("--vm_output_bin",
       action="store", type="string",
       help="output file name into which vm isolate snapshot in binary form " +
            "is generated")
-  result.add_option("--output_bin",
+  result.add_option("--isolate_output_bin",
       action="store", type="string",
       help="output file name into which isolate snapshot in binary form " +
            "is generated")
@@ -69,11 +73,14 @@
   if not options.executable:
     sys.stderr.write('--executable not specified\n')
     return False
+  if not options.snapshot_kind:
+    sys.stderr.write('--snapshot_kind not specified\n')
+    return False
   if not options.vm_output_bin:
     sys.stderr.write('--vm_output_bin not specified\n')
     return False
-  if not options.output_bin:
-    sys.stderr.write('--output_bin not specified\n')
+  if not options.isolate_output_bin:
+    sys.stderr.write('--isolate_output_bin not specified\n')
     return False
   if options.abi and not options.target_os == 'android':
     sys.stderr.write('--abi requires --target_os android\n')
@@ -116,8 +123,9 @@
     script_args.append(''.join([ "--packages=", options.packages]))
 
   # First setup the vm isolate and regular isolate snapshot output filename.
+  script_args.append(''.join([ "--snapshot_kind=", options.snapshot_kind ]))
   script_args.append(''.join([ "--vm_snapshot_data=", options.vm_output_bin ]))
-  script_args.append(''.join([ "--isolate_snapshot_data=", options.output_bin ]))
+  script_args.append(''.join([ "--isolate_snapshot_data=", options.isolate_output_bin ]))
 
   # Specify the embedder entry points snapshot
   if options.embedder_entry_points_manifest:
diff --git a/runtime/vm/aot_optimizer.cc b/runtime/vm/aot_optimizer.cc
index 57ff349..35c50b6 100644
--- a/runtime/vm/aot_optimizer.cc
+++ b/runtime/vm/aot_optimizer.cc
@@ -1079,7 +1079,7 @@
   }
   LoadFieldInstr* load = new (Z) LoadFieldInstr(
       new (Z) Value(call->ArgumentAt(0)), &field,
-      AbstractType::ZoneHandle(Z, field.type()), call->token_pos());
+      AbstractType::ZoneHandle(Z, field.type()), call->token_pos(), NULL);
   load->set_is_immutable(field.is_final());
 
   // Discard the environment from the original instruction because the load
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index 2650f45..a8cbcba 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -351,7 +351,6 @@
   V(UserTag_makeCurrent, 1)                                                    \
   V(Profiler_getCurrentTag, 0)                                                 \
   V(ClassID_getID, 1)                                                          \
-  V(ClassID_byName, 1)                                                         \
   V(VMService_SendIsolateServiceMessage, 2)                                    \
   V(VMService_SendRootServiceMessage, 1)                                       \
   V(VMService_SendObjectRootServiceMessage, 1)                                 \
diff --git a/runtime/vm/flag_list.h b/runtime/vm/flag_list.h
index 9ab1c95..e94092b 100644
--- a/runtime/vm/flag_list.h
+++ b/runtime/vm/flag_list.h
@@ -25,6 +25,12 @@
 #define USING_MULTICORE false
 #endif
 
+#if defined(DEBUG)
+#define USING_DEBUG true
+#else
+#define USING_DEBUG false
+#endif
+
 // List of all flags in the VM.
 // Flags can be one of three categories:
 // * P roduct flags: Can be set in any of the deployment modes, including in
@@ -68,6 +74,9 @@
     "Dump megamorphic cache statistics")                                       \
   R(dump_symbol_stats, false, bool, false, "Dump symbol table statistics")     \
   R(enable_asserts, false, bool, false, "Enable assert statements.")           \
+  R(enable_malloc_hooks, false, bool, USING_DEBUG,                             \
+    "Enable native memory statistic collection. Enabled by default in Debug "  \
+    "mode")                                                                    \
   C(enable_mirrors, false, false, bool, true,                                  \
     "Disable to make importing dart:mirrors an error.")                        \
   R(enable_type_checks, false, bool, false, "Enable type checks.")             \
diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
index a6547d1..cd7733b 100644
--- a/runtime/vm/flow_graph_builder.cc
+++ b/runtime/vm/flow_graph_builder.cc
@@ -3414,16 +3414,10 @@
   ValueGraphVisitor for_instance(owner());
   node->instance()->Visit(&for_instance);
   Append(for_instance);
-  LoadFieldInstr* load = new (Z) LoadFieldInstr(
-      for_instance.value(), &node->field(),
-      AbstractType::ZoneHandle(Z, node->field().type()), node->token_pos());
-  if (node->field().guarded_cid() != kIllegalCid) {
-    if (!node->field().is_nullable() ||
-        (node->field().guarded_cid() == kNullCid)) {
-      load->set_result_cid(node->field().guarded_cid());
-    }
-    owner()->parsed_function().AddToGuardedFields(&node->field());
-  }
+  LoadFieldInstr* load =
+      new (Z) LoadFieldInstr(for_instance.value(), &node->field(),
+                             AbstractType::ZoneHandle(Z, node->field().type()),
+                             node->token_pos(), &owner()->parsed_function());
   ReturnDefinition(load);
 }
 
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
index 8359174..54501a4 100644
--- a/runtime/vm/intermediate_language.h
+++ b/runtime/vm/intermediate_language.h
@@ -4289,7 +4289,8 @@
   LoadFieldInstr(Value* instance,
                  const Field* field,
                  const AbstractType& type,
-                 TokenPosition token_pos)
+                 TokenPosition token_pos,
+                 const ParsedFunction* parsed_function)
       : offset_in_bytes_(field->Offset()),
         type_(type),
         result_cid_(kDynamicCid),
@@ -4301,6 +4302,13 @@
     // May be null if field is not an instance.
     ASSERT(type.IsZoneHandle() || type.IsReadOnlyHandle());
     SetInputAt(0, instance);
+
+    if (parsed_function != NULL && field->guarded_cid() != kIllegalCid) {
+      if (!field->is_nullable() || (field->guarded_cid() == kNullCid)) {
+        set_result_cid(field->guarded_cid());
+      }
+      parsed_function->AddToGuardedFields(field);
+    }
   }
 
   void set_is_immutable(bool value) { immutable_ = value; }
diff --git a/runtime/vm/jit_optimizer.cc b/runtime/vm/jit_optimizer.cc
index d7ef3e3..719f359 100644
--- a/runtime/vm/jit_optimizer.cc
+++ b/runtime/vm/jit_optimizer.cc
@@ -971,16 +971,11 @@
                                                 RawFunction::kImplicitGetter)) {
     AddReceiverCheck(call);
   }
-  LoadFieldInstr* load = new (Z) LoadFieldInstr(
-      new (Z) Value(call->ArgumentAt(0)), &field,
-      AbstractType::ZoneHandle(Z, field.type()), call->token_pos());
+  LoadFieldInstr* load = new (Z)
+      LoadFieldInstr(new (Z) Value(call->ArgumentAt(0)), &field,
+                     AbstractType::ZoneHandle(Z, field.type()),
+                     call->token_pos(), &flow_graph()->parsed_function());
   load->set_is_immutable(field.is_final());
-  if (field.guarded_cid() != kIllegalCid) {
-    if (!field.is_nullable() || (field.guarded_cid() == kNullCid)) {
-      load->set_result_cid(field.guarded_cid());
-    }
-    flow_graph()->parsed_function().AddToGuardedFields(&field);
-  }
 
   // Discard the environment from the original instruction because the load
   // can't deoptimize.
diff --git a/runtime/vm/kernel_reader.cc b/runtime/vm/kernel_reader.cc
index b694077..752e42e 100644
--- a/runtime/vm/kernel_reader.cc
+++ b/runtime/vm/kernel_reader.cc
@@ -288,28 +288,37 @@
 
   ActiveClassScope active_class_scope(&active_class_, kernel_klass, &klass);
 
-  for (intptr_t i = 0; i < kernel_klass->fields().length(); i++) {
-    Field* kernel_field = kernel_klass->fields()[i];
-    ActiveMemberScope active_member_scope(&active_class_, kernel_field);
+  if (library.raw() == dart::Library::InternalLibrary() &&
+      klass.Name() == Symbols::ClassID().raw()) {
+    // If this is a dart:internal.ClassID class ignore field declarations
+    // contained in the Kernel file and instead inject our own const
+    // fields.
+    klass.InjectCIDFields();
+  } else {
+    for (intptr_t i = 0; i < kernel_klass->fields().length(); i++) {
+      Field* kernel_field = kernel_klass->fields()[i];
+      ActiveMemberScope active_member_scope(&active_class_, kernel_field);
 
-    const dart::String& name = H.DartFieldName(kernel_field->name());
-    const AbstractType& type =
-        T.TranslateTypeWithoutFinalization(kernel_field->type());
-    const Object& script_class =
-        ClassForScriptAt(klass, kernel_field->source_uri_index());
-    dart::Field& field = dart::Field::Handle(
-        Z, dart::Field::New(name, kernel_field->IsStatic(),
-                            // In the VM all const fields are implicitly final
-                            // whereas in Kernel they are not final because they
-                            // are not explicitly declared that way.
-                            kernel_field->IsFinal() || kernel_field->IsConst(),
-                            kernel_field->IsConst(),
-                            false,  // is_reflectable
-                            script_class, type, kernel_field->position()));
-    field.set_kernel_field(kernel_field);
-    field.set_has_initializer(kernel_field->initializer() != NULL);
-    GenerateFieldAccessors(klass, field, kernel_field);
-    klass.AddField(field);
+      const dart::String& name = H.DartFieldName(kernel_field->name());
+      const AbstractType& type =
+          T.TranslateTypeWithoutFinalization(kernel_field->type());
+      const Object& script_class =
+          ClassForScriptAt(klass, kernel_field->source_uri_index());
+      dart::Field& field = dart::Field::Handle(
+          Z,
+          dart::Field::New(name, kernel_field->IsStatic(),
+                           // In the VM all const fields are implicitly final
+                           // whereas in Kernel they are not final because they
+                           // are not explicitly declared that way.
+                           kernel_field->IsFinal() || kernel_field->IsConst(),
+                           kernel_field->IsConst(),
+                           false,  // is_reflectable
+                           script_class, type, kernel_field->position()));
+      field.set_kernel_field(kernel_field);
+      field.set_has_initializer(kernel_field->initializer() != NULL);
+      GenerateFieldAccessors(klass, field, kernel_field);
+      klass.AddField(field);
+    }
   }
 
   for (intptr_t i = 0; i < kernel_klass->constructors().length(); i++) {
diff --git a/runtime/vm/kernel_to_il.cc b/runtime/vm/kernel_to_il.cc
index 984de1d..d12987f 100644
--- a/runtime/vm/kernel_to_il.cc
+++ b/runtime/vm/kernel_to_il.cc
@@ -2452,9 +2452,10 @@
 
 
 Fragment FlowGraphBuilder::LoadField(const dart::Field& field) {
-  LoadFieldInstr* load = new (Z) LoadFieldInstr(
-      Pop(), &MayCloneField(Z, field),
-      AbstractType::ZoneHandle(Z, field.type()), TokenPosition::kNoSource);
+  LoadFieldInstr* load =
+      new (Z) LoadFieldInstr(Pop(), &MayCloneField(Z, field),
+                             AbstractType::ZoneHandle(Z, field.type()),
+                             TokenPosition::kNoSource, parsed_function_);
   Push(load);
   return Fragment(load);
 }
@@ -4496,7 +4497,7 @@
     Field* kernel_field = Field::Cast(target);
     const dart::Field& field =
         dart::Field::ZoneHandle(Z, H.LookupFieldByKernelField(kernel_field));
-    if (kernel_field->IsConst()) {
+    if (field.is_const()) {
       fragment_ = Constant(constant_evaluator_.EvaluateExpression(node));
     } else {
       const dart::Class& owner = dart::Class::Handle(Z, field.Owner());
@@ -4778,7 +4779,7 @@
 
 void FlowGraphBuilder::VisitDirectMethodInvocation(
     DirectMethodInvocation* node) {
-  const dart::String& method_name = H.DartMethodName(node->target()->name());
+  const dart::String& method_name = H.DartProcedureName(node->target());
   const Function& target = Function::ZoneHandle(
       Z, LookupMethodByMember(node->target(), method_name));
 
diff --git a/runtime/vm/malloc_hooks.cc b/runtime/vm/malloc_hooks.cc
index 9e5c658..4f7de9e 100644
--- a/runtime/vm/malloc_hooks.cc
+++ b/runtime/vm/malloc_hooks.cc
@@ -22,33 +22,47 @@
 class MallocHookScope {
  public:
   static void InitMallocHookFlag() {
+    MutexLocker ml(malloc_hook_scope_mutex_);
     ASSERT(in_malloc_hook_flag_ == kUnsetThreadLocalKey);
     in_malloc_hook_flag_ = OSThread::CreateThreadLocal();
     OSThread::SetThreadLocal(in_malloc_hook_flag_, 0);
   }
 
   static void DestroyMallocHookFlag() {
+    MutexLocker ml(malloc_hook_scope_mutex_);
     ASSERT(in_malloc_hook_flag_ != kUnsetThreadLocalKey);
     OSThread::DeleteThreadLocal(in_malloc_hook_flag_);
     in_malloc_hook_flag_ = kUnsetThreadLocalKey;
   }
 
   MallocHookScope() {
+    MutexLocker ml(malloc_hook_scope_mutex_);
     ASSERT(in_malloc_hook_flag_ != kUnsetThreadLocalKey);
     OSThread::SetThreadLocal(in_malloc_hook_flag_, 1);
   }
 
   ~MallocHookScope() {
+    MutexLocker ml(malloc_hook_scope_mutex_);
     ASSERT(in_malloc_hook_flag_ != kUnsetThreadLocalKey);
     OSThread::SetThreadLocal(in_malloc_hook_flag_, 0);
   }
 
   static bool IsInHook() {
-    ASSERT(in_malloc_hook_flag_ != kUnsetThreadLocalKey);
+    MutexLocker ml(malloc_hook_scope_mutex_);
+    if (in_malloc_hook_flag_ == kUnsetThreadLocalKey) {
+      // Bail out if the malloc hook flag is invalid. This means that
+      // MallocHookState::TearDown() has been called and MallocHookScope is no
+      // longer intitialized. Don't worry if MallocHookState::TearDown() is
+      // called before the hooks grab the mutex, since
+      // MallocHooksState::Active() is checked after the lock is taken before
+      // proceeding to act on the allocation/free.
+      return false;
+    }
     return OSThread::GetThreadLocal(in_malloc_hook_flag_);
   }
 
  private:
+  static Mutex* malloc_hook_scope_mutex_;
   static ThreadLocalKey in_malloc_hook_flag_;
 
   DISALLOW_ALLOCATION();
@@ -173,8 +187,11 @@
 };
 
 
-// MallocHooks state / locks.
+// MallocHookScope state.
+Mutex* MallocHookScope::malloc_hook_scope_mutex_ = new Mutex();
 ThreadLocalKey MallocHookScope::in_malloc_hook_flag_ = kUnsetThreadLocalKey;
+
+// MallocHooks state / locks.
 bool MallocHooksState::active_ = false;
 intptr_t MallocHooksState::original_pid_ = MallocHooksState::kInvalidPid;
 Mutex* MallocHooksState::malloc_hook_mutex_ = new Mutex();
@@ -186,6 +203,9 @@
 
 
 void MallocHooks::InitOnce() {
+  if (!FLAG_enable_malloc_hooks) {
+    return;
+  }
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
   ASSERT(!MallocHooksState::Active());
 
@@ -202,6 +222,9 @@
 
 
 void MallocHooks::TearDown() {
+  if (!FLAG_enable_malloc_hooks) {
+    return;
+  }
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
   ASSERT(MallocHooksState::Active());
 
@@ -218,6 +241,9 @@
 
 
 void MallocHooks::ResetStats() {
+  if (!FLAG_enable_malloc_hooks) {
+    return;
+  }
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
   if (MallocHooksState::Active()) {
     MallocHooksState::ResetStats();
@@ -226,12 +252,18 @@
 
 
 bool MallocHooks::Active() {
+  if (!FLAG_enable_malloc_hooks) {
+    return false;
+  }
   ASSERT(MallocHooksState::malloc_hook_mutex()->IsOwnedByCurrentThread());
   return MallocHooksState::Active();
 }
 
 
 void MallocHooks::PrintToJSONObject(JSONObject* jsobj) {
+  if (!FLAG_enable_malloc_hooks) {
+    return;
+  }
   intptr_t allocated_memory = 0;
   intptr_t allocation_count = 0;
   bool add_usage = false;
@@ -254,12 +286,18 @@
 
 
 intptr_t MallocHooks::allocation_count() {
+  if (!FLAG_enable_malloc_hooks) {
+    return 0;
+  }
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
   return MallocHooksState::allocation_count();
 }
 
 
 intptr_t MallocHooks::heap_allocated_memory_in_bytes() {
+  if (!FLAG_enable_malloc_hooks) {
+    return 0;
+  }
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
   return MallocHooksState::heap_allocated_memory_in_bytes();
 }
@@ -270,11 +308,12 @@
     return;
   }
 
-  // Set the malloc hook flag before grabbing the mutex to avoid calling hooks
-  // again.
-  MallocHookScope mhs;
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
+  // Now that we hold the lock, check to make sure everything is still active.
   if ((ptr != NULL) && MallocHooksState::Active()) {
+    // Set the malloc hook flag to avoid calling hooks again if memory is
+    // allocated/freed below.
+    MallocHookScope mhs;
     MallocHooksState::IncrementHeapAllocatedMemoryInBytes(size);
     MallocHooksState::address_map()->Insert(ptr, size);
   }
@@ -286,11 +325,12 @@
     return;
   }
 
-  // Set the malloc hook flag before grabbing the mutex to avoid calling hooks
-  // again.
-  MallocHookScope mhs;
   MutexLocker ml(MallocHooksState::malloc_hook_mutex());
+  // Now that we hold the lock, check to make sure everything is still active.
   if ((ptr != NULL) && MallocHooksState::Active()) {
+    // Set the malloc hook flag to avoid calling hooks again if memory is
+    // allocated/freed below.
+    MallocHookScope mhs;
     intptr_t size = 0;
     if (MallocHooksState::address_map()->Lookup(ptr, &size)) {
       MallocHooksState::DecrementHeapAllocatedMemoryInBytes(size);
diff --git a/runtime/vm/malloc_hooks_test.cc b/runtime/vm/malloc_hooks_test.cc
index 5054a50..791e269 100644
--- a/runtime/vm/malloc_hooks_test.cc
+++ b/runtime/vm/malloc_hooks_test.cc
@@ -26,6 +26,9 @@
 
 
 UNIT_TEST_CASE(BasicMallocHookTest) {
+  bool enable_malloc_hooks_saved = FLAG_enable_malloc_hooks;
+  FLAG_enable_malloc_hooks = true;
+
   MallocHooks::InitOnce();
   MallocHooks::ResetStats();
   EXPECT_EQ(0L, MallocHooks::allocation_count());
@@ -42,10 +45,15 @@
   EXPECT_EQ(0L, MallocHooks::allocation_count());
   EXPECT_EQ(0L, MallocHooks::heap_allocated_memory_in_bytes());
   MallocHooks::TearDown();
+
+  FLAG_enable_malloc_hooks = enable_malloc_hooks_saved;
 }
 
 
 UNIT_TEST_CASE(FreeUnseenMemoryMallocHookTest) {
+  bool enable_malloc_hooks_saved = FLAG_enable_malloc_hooks;
+  FLAG_enable_malloc_hooks = true;
+
   MallocHooks::InitOnce();
   const intptr_t pre_hook_buffer_size = 3;
   char* pre_hook_buffer = new char[pre_hook_buffer_size];
@@ -73,6 +81,8 @@
   EXPECT_EQ(0L, MallocHooks::allocation_count());
   EXPECT_EQ(0L, MallocHooks::heap_allocated_memory_in_bytes());
   MallocHooks::TearDown();
+
+  FLAG_enable_malloc_hooks = enable_malloc_hooks_saved;
 }
 
 };  // namespace dart
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index b8da116..7482015 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -1177,7 +1177,7 @@
                                            "Object::Init");)
 
 #if defined(DART_NO_SNAPSHOT)
-  bool bootstrapping = true;
+  bool bootstrapping = Dart::vm_snapshot_kind() == Snapshot::kNone;
 #elif defined(DART_PRECOMPILED_RUNTIME)
   bool bootstrapping = false;
 #else
@@ -1670,6 +1670,13 @@
     // Set up recognized state of all functions (core, math and typed data).
     MethodRecognizer::InitializeState();
 
+    // Adds static const fields (class ids) to the class 'ClassID');
+    lib = Library::LookupLibrary(thread, Symbols::DartInternal());
+    ASSERT(!lib.IsNull());
+    cls = lib.LookupClassAllowPrivate(Symbols::ClassID());
+    ASSERT(!cls.IsNull());
+    cls.InjectCIDFields();
+
     isolate->object_store()->InitKnownObjects();
 #endif  // !defined(DART_PRECOMPILED_RUNTIME)
   } else {
@@ -3157,6 +3164,32 @@
 }
 
 
+void Class::InjectCIDFields() const {
+  Thread* thread = Thread::Current();
+  Zone* zone = thread->zone();
+  Field& field = Field::Handle(zone);
+  Smi& value = Smi::Handle(zone);
+  String& field_name = String::Handle(zone);
+
+#define CLASS_LIST_WITH_NULL(V)                                                \
+  V(Null)                                                                      \
+  CLASS_LIST_NO_OBJECT(V)
+
+#define ADD_SET_FIELD(clazz)                                                   \
+  field_name = Symbols::New(thread, "cid" #clazz);                             \
+  field =                                                                      \
+      Field::New(field_name, true, false, true, false, *this,                  \
+                 Type::Handle(Type::IntType()), TokenPosition::kMinSource);    \
+  value = Smi::New(k##clazz##Cid);                                             \
+  field.SetStaticValue(value, true);                                           \
+  AddField(field);
+
+  CLASS_LIST_WITH_NULL(ADD_SET_FIELD)
+#undef ADD_SET_FIELD
+#undef CLASS_LIST_WITH_NULL
+}
+
+
 template <class FakeInstance>
 RawClass* Class::NewCommon(intptr_t index) {
   ASSERT(Object::class_class() != Class::null());
@@ -10805,7 +10838,17 @@
   result.set_native_entry_symbol_resolver(NULL);
   result.set_is_in_fullsnapshot(false);
   result.StoreNonPointer(&result.raw_ptr()->corelib_imported_, true);
-  result.set_debuggable(!dart_private_scheme);
+  if (dart_private_scheme) {
+    // Never debug dart:_ libraries.
+    result.set_debuggable(false);
+  } else if (dart_scheme) {
+    // Only debug dart: libraries if we have been requested to show invisible
+    // frames.
+    result.set_debuggable(FLAG_show_invisible_frames);
+  } else {
+    // Default to debuggable for all other libraries.
+    result.set_debuggable(true);
+  }
   result.set_is_dart_scheme(dart_scheme);
   result.StoreNonPointer(&result.raw_ptr()->load_state_,
                          RawLibrary::kAllocated);
diff --git a/runtime/vm/object.h b/runtime/vm/object.h
index 9265649..9023b2f 100644
--- a/runtime/vm/object.h
+++ b/runtime/vm/object.h
@@ -1128,6 +1128,8 @@
   void AddField(const Field& field) const;
   void AddFields(const GrowableArray<const Field*>& fields) const;
 
+  void InjectCIDFields() const;
+
   // Returns an array of all instance fields of this class and its superclasses
   // indexed by offset in words.
   // |original_classes| only has an effect when reloading. If true and we
diff --git a/runtime/vm/redundancy_elimination.cc b/runtime/vm/redundancy_elimination.cc
index e8ffd2c..66a287c 100644
--- a/runtime/vm/redundancy_elimination.cc
+++ b/runtime/vm/redundancy_elimination.cc
@@ -3081,7 +3081,7 @@
         slots[i]->IsField()
             ? new (Z) LoadFieldInstr(
                   new (Z) Value(alloc), &Field::Cast(*slots[i]),
-                  AbstractType::ZoneHandle(Z), alloc->token_pos())
+                  AbstractType::ZoneHandle(Z), alloc->token_pos(), NULL)
             : new (Z) LoadFieldInstr(
                   new (Z) Value(alloc), Smi::Cast(*slots[i]).Value(),
                   AbstractType::ZoneHandle(Z), alloc->token_pos());
diff --git a/runtime/vm/service/service_dev.md b/runtime/vm/service/service_dev.md
index 6065b6d..e4c0c69 100644
--- a/runtime/vm/service/service_dev.md
+++ b/runtime/vm/service/service_dev.md
@@ -1491,8 +1491,8 @@
 ```
 class Frame extends Response {
   int index;
-  @Function function;
-  @Code code;
+  @Function function [optional];
+  @Code code [optional];
   SourceLocation location [optional];
   BoundVariable[] vars [optional];
   FrameKind kind [optional];
diff --git a/sdk/bin/dartanalyzer b/sdk/bin/dartanalyzer
index 34ce895..bad9306 100755
--- a/sdk/bin/dartanalyzer
+++ b/sdk/bin/dartanalyzer
@@ -45,4 +45,6 @@
 
 ANALYZER="$DART_ROOT/pkg/analyzer_cli/bin/analyzer.dart"
 
-exec "$DART" "--packages=$DART_ROOT/.packages" "${EXTRA_VM_OPTIONS[@]}" "$ANALYZER" "$SDK_ARG" "$@"
+DEV_OPTIONS="--use-analysis-driver-memory-byte-store"
+
+exec "$DART" "--packages=$DART_ROOT/.packages" "${EXTRA_VM_OPTIONS[@]}" "$ANALYZER" "$DEV_OPTIONS" "$SDK_ARG" "$@"
diff --git a/sdk/lib/async/deferred_load.dart b/sdk/lib/async/deferred_load.dart
index 9d5c51f..698e60b 100644
--- a/sdk/lib/async/deferred_load.dart
+++ b/sdk/lib/async/deferred_load.dart
@@ -30,7 +30,7 @@
  * Thrown when a deferred library fails to load.
  */
 class DeferredLoadException implements Exception {
-  DeferredLoadException(String this._s);
+  DeferredLoadException(this._s);
   String toString() => "DeferredLoadException: '$_s'";
   final String _s;
 }
\ No newline at end of file
diff --git a/sdk/lib/async/future_impl.dart b/sdk/lib/async/future_impl.dart
index 4e6ba42..eaad3b4 100644
--- a/sdk/lib/async/future_impl.dart
+++ b/sdk/lib/async/future_impl.dart
@@ -5,7 +5,7 @@
 part of dart.async;
 
 /** The onValue and onError handlers return either a value or a future */
-typedef dynamic/*T|Future<T>*/ _FutureOnValue<S, T>(S value);
+typedef FutureOr<T> _FutureOnValue<S, T>(S value);
 /** Test used by [Future.catchError] to handle skip some errors. */
 typedef bool _FutureErrorTest(var error);
 /** Used by [WhenFuture]. */
@@ -127,8 +127,8 @@
     return _onError != null;
   }
 
-  dynamic/*T|Future<T>*/ handleValue(S sourceResult) {
-    return _zone.runUnary<dynamic/*T|Future<T>*/, S>(
+  FutureOr<T> handleValue(S sourceResult) {
+    return _zone.runUnary<FutureOr<T>, S>(
         _onValue, sourceResult);
   }
 
@@ -138,16 +138,16 @@
     return _zone.runUnary<bool, dynamic>(_errorTest, asyncError.error);
   }
 
-  dynamic/*T|Future<T>*/ handleError(AsyncError asyncError) {
+  FutureOr<T> handleError(AsyncError asyncError) {
     assert(handlesError && hasErrorCallback);
     if (errorCallback is ZoneBinaryCallback) {
       var typedErrorCallback = errorCallback as Object
-          /*=ZoneBinaryCallback<Object/*T|Future<T>*/, Object, StackTrace>*/;
+          /*=ZoneBinaryCallback<FutureOr<T>, Object, StackTrace>*/;
       return _zone.runBinary(typedErrorCallback,
           asyncError.error,
           asyncError.stackTrace);
     } else {
-      return _zone.runUnary<dynamic/*T|Future<T>*/, dynamic>(
+      return _zone.runUnary<FutureOr<T>, dynamic>(
           errorCallback, asyncError.error);
     }
   }
diff --git a/sdk/lib/collection/collection.dart b/sdk/lib/collection/collection.dart
index 5a2a906..a66a5cd 100644
--- a/sdk/lib/collection/collection.dart
+++ b/sdk/lib/collection/collection.dart
@@ -11,7 +11,7 @@
  */
 library dart.collection;
 
-import 'dart:_internal';
+import 'dart:_internal' hide Symbol;
 import 'dart:math' show Random;  // Used by ListMixin.shuffle.
 
 part 'collections.dart';
diff --git a/sdk/lib/collection/splay_tree.dart b/sdk/lib/collection/splay_tree.dart
index ef646f3..276b108 100644
--- a/sdk/lib/collection/splay_tree.dart
+++ b/sdk/lib/collection/splay_tree.dart
@@ -15,7 +15,7 @@
   _SplayTreeNode<K> left;
   _SplayTreeNode<K> right;
 
-  _SplayTreeNode(K this.key);
+  _SplayTreeNode(this.key);
 }
 
 /**
@@ -25,7 +25,7 @@
  */
 class _SplayTreeMapNode<K, V> extends _SplayTreeNode<K> {
   V value;
-  _SplayTreeMapNode(K key, V this.value) : super(key);
+  _SplayTreeMapNode(K key, this.value) : super(key);
 }
 
 /**
diff --git a/sdk/lib/convert/base64.dart b/sdk/lib/convert/base64.dart
index 0254f85..ee65ae7 100644
--- a/sdk/lib/convert/base64.dart
+++ b/sdk/lib/convert/base64.dart
@@ -57,6 +57,140 @@
   Base64Encoder get encoder => _encoder;
 
   Base64Decoder get decoder => const Base64Decoder();
+
+  /**
+   * Validates and normalizes the base64 encoded data in [source].
+   *
+   * Only acts on the substring from [start] to [end], with [end]
+   * defaulting to the end of the string.
+   *
+   * Normalization will:
+   * * Unescape any `%`-escapes.
+   * * Only allow valid characters (`A`-`Z`, `a`-`z`, `0`-`9`, `/` and `+`).
+   * * Normalize a `_` or `-` character to `/` or `+`.
+   * * Validate that existing padding (trailing `=` characters) is correct.
+   * * If no padding exists, add correct padding if necessary and possible.
+   * * Validate that the length is correct (a multiple of four).
+   */
+  String normalize(String source, [int start = 0, int end]) {
+    end = RangeError.checkValidRange(start, end, source.length);
+    const int percent = 0x25;
+    const int equals = 0x3d;
+    StringBuffer buffer = null;
+    int sliceStart = start;
+    var alphabet = _Base64Encoder._base64Alphabet;
+    var inverseAlphabet = _Base64Decoder._inverseAlphabet;
+    int firstPadding = -1;
+    int firstPaddingSourceIndex = -1;
+    int paddingCount = 0;
+    for (int i = start; i < end;) {
+      int sliceEnd = i;
+      int char = source.codeUnitAt(i++);
+      int originalChar = char;
+      // Normalize char, keep originalChar to see if it matches the source.
+      if (char == percent) {
+        if (i + 2 <= end) {
+          char = parseHexByte(source, i);  // May be negative.
+          i += 2;
+          // We know that %25 isn't valid, but our table considers it
+          // a potential padding start, so skip the checks.
+          if (char == percent) char = -1;
+        } else {
+          // An invalid HEX escape (too short).
+          // Just skip past the handling and reach the throw below.
+          char = -1;
+        }
+      }
+      // If char is negative here, hex-decoding failed in some way.
+      if (0 <= char && char <= 127) {
+        int value = inverseAlphabet[char];
+        if (value >= 0) {
+          char = alphabet.codeUnitAt(value);
+          if (char == originalChar) continue;
+        } else if (value == _Base64Decoder._padding) {
+          // We have ruled out percent, so char is '='.
+          if (firstPadding < 0) {
+            // Mark position in normalized output where padding occurs.
+            firstPadding = (buffer?.length ?? 0) + (sliceEnd - sliceStart);
+            firstPaddingSourceIndex = sliceEnd;
+          }
+          paddingCount++;
+          // It could have been an escaped equals (%3D).
+          if (originalChar == equals) continue;
+        }
+        if (value != _Base64Decoder._invalid) {
+          buffer ??= new StringBuffer();
+          buffer.write(source.substring(sliceStart, sliceEnd));
+          buffer.writeCharCode(char);
+          sliceStart = i;
+          continue;
+        }
+      }
+      throw new FormatException("Invalid base64 data", source, sliceEnd);
+    }
+    if (buffer != null) {
+      buffer.write(source.substring(sliceStart, end));
+      if (firstPadding >= 0) {
+        // There was padding in the source. Check that it is valid:
+        // * result length a multiple of four
+        // * one or two padding characters at the end.
+        _checkPadding(source, firstPaddingSourceIndex, end,
+                      firstPadding, paddingCount, buffer.length);
+      } else {
+        // Length of last chunk (1-4 chars) in the encoding.
+        int endLength = ((buffer.length - 1) % 4) + 1;
+        if (endLength == 1) {
+          // The data must have length 0, 2 or 3 modulo 4.
+          throw new FormatException("Invalid base64 encoding length ",
+              source, end);
+        }
+        while (endLength < 4) {
+          buffer.write("=");
+          endLength++;
+        }
+      }
+      return source.replaceRange(start, end, buffer.toString());
+    }
+    // Original was already normalized, only check padding.
+    int length = end - start;
+    if (firstPadding >= 0) {
+      _checkPadding(source, firstPaddingSourceIndex, end,
+          firstPadding, paddingCount, length);
+    } else {
+      // No padding given, so add some if needed it.
+      int endLength = length % 4;
+      if (endLength == 1) {
+          // The data must have length 0, 2 or 3 modulo 4.
+          throw new FormatException("Invalid base64 encoding length ",
+              source, end);
+      }
+      if (endLength > 1) {
+        // There is no "insertAt" on String, but this works as well.
+        source = source.replaceRange(end, end, (endLength == 2) ? "==" : "=");
+      }
+    }
+    return source;
+  }
+
+  static int _checkPadding(String source, int sourceIndex, int sourceEnd,
+          int firstPadding, int paddingCount, int length) {
+    if (length % 4 != 0) {
+      throw new FormatException(
+          "Invalid base64 padding, padded length must be multiple of four, "
+          "is $length",
+          source, sourceEnd);
+    }
+    if (firstPadding + paddingCount != length) {
+      throw new FormatException(
+          "Invalid base64 padding, '=' not at the end",
+          source, sourceIndex);
+    }
+    if (paddingCount > 2) {
+      throw new FormatException(
+          "Invalid base64 padding, more than two '=' characters",
+          source, sourceIndex);
+    }
+  }
 }
 
 // ------------------------------------------------------------------------
@@ -389,7 +523,7 @@
    *
    * Accepts the "URL-safe" alphabet as well (`-` and `_` are the
    * 62nd and 63rd alphabet characters), and considers `%` a padding
-   * character, which mush then be followed by `3D`, the percent-escape
+   * character, which must then be followed by `3D`, the percent-escape
    * for `=`.
    */
   static final List<int> _inverseAlphabet = new Int8List.fromList([
diff --git a/sdk/lib/convert/convert.dart b/sdk/lib/convert/convert.dart
index 83bbfd6..d1d9a14 100644
--- a/sdk/lib/convert/convert.dart
+++ b/sdk/lib/convert/convert.dart
@@ -55,6 +55,7 @@
 
 import 'dart:async';
 import 'dart:typed_data';
+import 'dart:_internal' show parseHexByte;
 
 part 'ascii.dart';
 part 'base64.dart';
diff --git a/sdk/lib/convert/json.dart b/sdk/lib/convert/json.dart
index 712f094..ea700c5b 100644
--- a/sdk/lib/convert/json.dart
+++ b/sdk/lib/convert/json.dart
@@ -181,7 +181,7 @@
    * Creates a JSON encoder.
    *
    * The JSON encoder handles numbers, strings, booleans, null, lists and
-   * maps directly.
+   * maps with string keys directly.
    *
    * Any other object is attempted converted by [toEncodable] to an
    * object that is of one of the convertible types.
@@ -189,7 +189,7 @@
    * If [toEncodable] is omitted, it defaults to calling `.toJson()` on
    * the object.
    */
-  const JsonEncoder([toEncodable(nonSerializable)])
+  const JsonEncoder([toEncodable(object)])
       : this.indent = null,
         this._toEncodable = toEncodable;
 
@@ -203,7 +203,7 @@
    * If [indent] is `null`, the output is encoded as a single line.
    *
    * The JSON encoder handles numbers, strings, booleans, null, lists and
-   * maps directly.
+   * maps with string keys directly.
    *
    * Any other object is attempted converted by [toEncodable] to an
    * object that is of one of the convertible types.
@@ -211,7 +211,7 @@
    * If [toEncodable] is omitted, it defaults to calling `.toJson()` on
    * the object.
    */
-  const JsonEncoder.withIndent(this.indent, [toEncodable(nonSerializable)])
+  const JsonEncoder.withIndent(this.indent, [toEncodable(object)])
       : this._toEncodable = toEncodable;
 
   /**
diff --git a/sdk/lib/convert/string_conversion.dart b/sdk/lib/convert/string_conversion.dart
index 6eb27d9..e5bce69 100644
--- a/sdk/lib/convert/string_conversion.dart
+++ b/sdk/lib/convert/string_conversion.dart
@@ -193,7 +193,7 @@
  */
 class _StringSinkConversionSink extends StringConversionSinkBase {
   StringSink _stringSink;
-  _StringSinkConversionSink(StringSink this._stringSink);
+  _StringSinkConversionSink(this._stringSink);
 
   void close() {}
   void addSlice(String str, int start, int end, bool isLast) {
diff --git a/sdk/lib/core/errors.dart b/sdk/lib/core/errors.dart
index 16f2ffb..c774b65 100644
--- a/sdk/lib/core/errors.dart
+++ b/sdk/lib/core/errors.dart
@@ -159,9 +159,7 @@
    * names differ from the interface, it might be more useful to use the
    * interface method's argument name (or just rename arguments to match).
    */
-  ArgumentError.value(value,
-                      [String this.name,
-                       String this.message])
+  ArgumentError.value(value, [this.name, this.message])
       : invalidValue = value,
         _hasValue = true;
 
@@ -499,7 +497,7 @@
  */
 class UnimplementedError extends Error implements UnsupportedError {
   final String message;
-  UnimplementedError([String this.message]);
+  UnimplementedError([this.message]);
   String toString() => (this.message != null
                         ? "UnimplementedError: $message"
                         : "UnimplementedError");
diff --git a/sdk/lib/core/uri.dart b/sdk/lib/core/uri.dart
index 0454491..232d552 100644
--- a/sdk/lib/core/uri.dart
+++ b/sdk/lib/core/uri.dart
@@ -7,10 +7,12 @@
 // Frequently used character codes.
 const int _SPACE = 0x20;
 const int _PERCENT = 0x25;
+const int _AMPERSAND = 0x26;
 const int _PLUS = 0x2B;
 const int _DOT = 0x2E;
 const int _SLASH = 0x2F;
 const int _COLON = 0x3A;
+const int _EQUALS = 0x3d;
 const int _UPPER_CASE_A = 0x41;
 const int _UPPER_CASE_Z = 0x5A;
 const int _LEFT_BRACKET = 0x5B;
@@ -1369,7 +1371,7 @@
    *
    * Always non-null.
    */
-  String _path;
+  final String path;
 
   // The query content, or null if there is no query.
   final String _query;
@@ -1401,11 +1403,21 @@
   Map<String, List<String>> _queryParameterLists;
 
   /// Internal non-verifying constructor. Only call with validated arguments.
+  ///
+  /// The components must be properly normalized.
+  ///
+  /// Use `null` for [_host] if there is no authority. In that case, always
+  /// pass `null` for [_port] and [_userInfo] as well.
+  ///
+  /// Use `null` for [_port], [_userInfo], [_query] and [_fragment] if there is
+  /// component of that type.
+  ///
+  /// The [path] and [scheme] are never empty.
   _Uri._internal(this.scheme,
                  this._userInfo,
                  this._host,
                  this._port,
-                 this._path,
+                 this.path,
                  this._query,
                  this._fragment);
 
@@ -1543,8 +1555,6 @@
     return 0;
   }
 
-  String get path => _path;
-
   String get query => _query ?? "";
 
   String get fragment => _fragment ?? "";
@@ -1847,7 +1857,7 @@
       path = _makePath(path, 0, _stringOrNullLength(path), pathSegments,
                        scheme, hasAuthority);
     } else {
-      path = this._path;
+      path = this.path;
       if ((isFile || (hasAuthority && !path.isEmpty)) &&
           !path.startsWith('/')) {
         path = "/" + path;
@@ -1873,7 +1883,7 @@
   Uri removeFragment() {
     if (!this.hasFragment) return this;
     return new _Uri._internal(scheme, _userInfo, _host, _port,
-                             _path, _query, null);
+                             path, _query, null);
   }
 
   List<String> get pathSegments {
@@ -1914,8 +1924,8 @@
   }
 
   Uri normalizePath() {
-    String path = _normalizePath(_path, scheme, hasAuthority);
-    if (identical(path, _path)) return this;
+    String path = _normalizePath(this.path, scheme, hasAuthority);
+    if (identical(path, this.path)) return this;
     return this.replace(path: path);
   }
 
@@ -2082,7 +2092,7 @@
 
   static String _makeUserInfo(String userInfo, int start, int end) {
     if (userInfo == null) return "";
-    return _normalize(userInfo, start, end, _userinfoTable);
+    return _normalizeOrSubstring(userInfo, start, end, _userinfoTable);
   }
 
   static String _makePath(String path, int start, int end,
@@ -2097,7 +2107,7 @@
     }
     var result;
     if (path != null) {
-      result = _normalize(path, start, end, _pathCharOrSlashTable);
+      result = _normalizeOrSubstring(path, start, end, _pathCharOrSlashTable);
     } else {
       result = pathSegments.map((s) =>
           _uriEncode(_pathCharTable, s, UTF8, false)).join("/");
@@ -2130,7 +2140,7 @@
       if (queryParameters != null) {
         throw new ArgumentError('Both query and queryParameters specified');
       }
-      return _normalize(query, start, end, _queryCharTable);
+      return _normalizeOrSubstring(query, start, end, _queryCharTable);
     }
     if (queryParameters == null) return null;
 
@@ -2162,7 +2172,7 @@
 
   static String _makeFragment(String fragment, int start, int end) {
     if (fragment == null) return null;
-    return _normalize(fragment, start, end, _queryCharTable);
+    return _normalizeOrSubstring(fragment, start, end, _queryCharTable);
   }
 
   /**
@@ -2185,8 +2195,8 @@
     }
     int firstDigit = source.codeUnitAt(index + 1);
     int secondDigit = source.codeUnitAt(index + 2);
-    int firstDigitValue = _parseHexDigit(firstDigit);
-    int secondDigitValue = _parseHexDigit(secondDigit);
+    int firstDigitValue = hexDigitValue(firstDigit);
+    int secondDigitValue = hexDigitValue(secondDigit);
     if (firstDigitValue < 0 || secondDigitValue < 0) {
       return "%";  // Marks the escape as invalid.
     }
@@ -2206,19 +2216,6 @@
     return null;
   }
 
-  // Converts a UTF-16 code-unit to its value as a hex digit.
-  // Returns -1 for non-hex digits.
-  static int _parseHexDigit(int char) {
-    const int zeroDigit = 0x30;
-    int digit = char ^ zeroDigit;
-    if (digit <= 9) return digit;
-    int lowerCase = char | 0x20;
-    if (_LOWER_CASE_A <= lowerCase && lowerCase <= _LOWER_CASE_F) {
-      return lowerCase - (_LOWER_CASE_A - 10);
-    }
-    return -1;
-  }
-
   static String _escapeChar(int char) {
     assert(char <= 0x10ffff);  // It's a valid unicode code point.
     List<int> codeUnits;
@@ -2255,6 +2252,18 @@
   }
 
   /**
+   * Normalizes using [_normalize] or returns substring of original.
+   *
+   * If [_normalize] returns `null` (original content is already normalized),
+   * this methods returns the substring if [component] from [start] to [end].
+   */
+  static String _normalizeOrSubstring(String component, int start, int end,
+                                      List<int> charTable) {
+    return _normalize(component, start, end, charTable) ??
+        component.substring(start, end);
+  }
+
+  /**
    * Runs through component checking that each character is valid and
    * normalize percent escapes.
    *
@@ -2262,9 +2271,12 @@
    * Each `%` character must be followed by two hex digits.
    * If the hex-digits are lower case letters, they are converted to
    * upper case.
+   *
+   * Returns `null` if the original content was already normalized.
    */
   static String _normalize(String component, int start, int end,
-                           List<int> charTable) {
+                           List<int> charTable,
+                           {bool escapeDelimiters = false}) {
     StringBuffer buffer;
     int sectionStart = start;
     int index = start;
@@ -2290,7 +2302,7 @@
           } else {
             sourceLength = 3;
           }
-        } else if (_isGeneralDelimiter(char)) {
+        } else if (!escapeDelimiters && _isGeneralDelimiter(char)) {
           _fail(component, index, "Invalid character");
         } else {
           sourceLength = 1;
@@ -2315,8 +2327,7 @@
       }
     }
     if (buffer == null) {
-      // Makes no copy if start == 0 and end == component.length.
-      return component.substring(start, end);
+      return null;
     }
     if (sectionStart < end) {
       buffer.write(component.substring(sectionStart, end));
@@ -2509,7 +2520,7 @@
         targetHost = this._host;
         targetPort = this._port;
         if (reference.path == "") {
-          targetPath = this._path;
+          targetPath = this.path;
           if (reference.hasQuery) {
             targetQuery = reference.query;
           } else {
@@ -2535,7 +2546,7 @@
                 targetPath = _removeDotSegments("/" + reference.path);
               }
             } else {
-              var mergedPath = _mergePaths(this._path, reference.path);
+              var mergedPath = _mergePaths(this.path, reference.path);
               if (this.hasScheme || this.hasAuthority || this.hasAbsolutePath) {
                 targetPath = _removeDotSegments(mergedPath);
               } else {
@@ -2572,9 +2583,9 @@
 
   bool get hasFragment => _fragment != null;
 
-  bool get hasEmptyPath => _path.isEmpty;
+  bool get hasEmptyPath => path.isEmpty;
 
-  bool get hasAbsolutePath => _path.startsWith('/');
+  bool get hasAbsolutePath => path.startsWith('/');
 
   String get origin {
     if (scheme == "") {
@@ -2652,7 +2663,7 @@
   }
 
   bool get _isPathAbsolute {
-    return _path != null && _path.startsWith('/');
+    return path != null && path.startsWith('/');
   }
 
   void _writeAuthority(StringSink ss) {
@@ -2742,13 +2753,11 @@
       result.putIfAbsent(key, _createList).add(value);
     }
 
-    const int _equals = 0x3d;
-    const int _ampersand = 0x26;
     while (i < query.length) {
       int char = query.codeUnitAt(i);
-      if (char == _equals) {
+      if (char == _EQUALS) {
         if (equalsIndex < 0) equalsIndex = i;
-      } else if (char == _ampersand) {
+      } else if (char == _AMPERSAND) {
         parsePair(start, equalsIndex, i);
         start = i + 1;
         equalsIndex = -1;
@@ -3149,10 +3158,10 @@
    * If there is a single separator left, it ends the "base64" marker.
    *
    * So the following separators are found for a text:
-   *
-   *     data:text/plain;foo=bar;base64,ARGLEBARGLE=
-   *         ^          ^   ^   ^      ^
-   *
+   * ```
+   * data:text/plain;foo=bar;base64,ARGLEBARGLE=
+   *     ^          ^   ^   ^      ^
+   * ```
    */
   final List<int> _separatorIndices;
 
@@ -3353,12 +3362,15 @@
    * percent-escapes for non-ASCII byte values that need an interpretation
    * to be converted to the corresponding string.
    *
-   * Parsing doesn't check the validity of any part, it just checks that the
-   * input has the correct structure with the correct sequence of `/`, `;`, `=`
-   * and `,` delimiters.
+   * Parsing checks that Base64 encoded data is valid, and it normalizes it
+   * to use the default Base64 alphabet and to use padding.
+   * Non-Base64 data is escaped using percent-escapes as necessary to make
+   * it valid, and existing escapes are case normalized.
    *
    * Accessing the individual parts may fail later if they turn out to have
-   * content that can't be decoded successfully as a string.
+   * content that can't be decoded successfully as a string, for example if
+   * existing percent escapes represent bytes that cannot be decoded
+   * by the chosen [Encoding] (see [contentAsString]).
    */
   static UriData parse(String uri) {
     if (uri.length >= 5) {
@@ -3388,17 +3400,14 @@
     String query = null;
     int colonIndex = _separatorIndices[0];
     int queryIndex = _text.indexOf('?', colonIndex + 1);
-    int end = null;
+    int end = _text.length;
     if (queryIndex >= 0) {
-      query = _text.substring(queryIndex + 1);
+      query = _Uri._normalizeOrSubstring(_text, queryIndex + 1, end, _Uri._queryCharTable);
       end = queryIndex;
     }
-    path = _text.substring(colonIndex + 1, end);
-    // TODO(lrn): This can generate a URI that isn't path normalized.
-    // That's perfectly reasonable - data URIs are not hierarchical,
-    // but it may make some consumers stumble.
-    // Should we at least do escape normalization?
-    _uriCache = new _Uri._internal("data", "", null, null, path, query, null);
+    path = _Uri._normalizeOrSubstring(_text, colonIndex + 1, end,
+        _Uri._pathCharOrSlashTable);
+    _uriCache = new _DataUri(this, path, query);
     return _uriCache;
   }
 
@@ -3408,6 +3417,9 @@
    * A data URI consists of a "media type" followed by data.
    * The media type starts with a MIME type and can be followed by
    * extra parameters.
+   * If the MIME type representation in the URI text contains URI escapes,
+   * they are unescaped in the returned string.
+   * If the value contain non-ASCII percent escapes, they are decoded as UTF-8.
    *
    * Example:
    *
@@ -3432,6 +3444,10 @@
    * If the parameters of the media type contains a `charset` parameter
    * then this returns its value, otherwise it returns `US-ASCII`,
    * which is the default charset for data URIs.
+   * If the value contain non-ASCII percent escapes, they are decoded as UTF-8.
+   *
+   * If the MIME type representation in the URI text contains URI escapes,
+   * they are unescaped in the returned string.
    */
   String get charset {
     int parameterStart = 1;
@@ -3503,10 +3519,8 @@
         result[index++] = codeUnit;
       } else {
         if (i + 2 < text.length) {
-          var digit1 = _Uri._parseHexDigit(text.codeUnitAt(i + 1));
-          var digit2 = _Uri._parseHexDigit(text.codeUnitAt(i + 2));
-          if (digit1 >= 0 && digit2 >= 0) {
-            int byte = digit1 * 16 + digit2;
+          int byte = parseHexByte(text, i + 1);
+          if (byte >= 0) {
             result[index++] = byte;
             i += 2;
             continue;
@@ -3561,8 +3575,8 @@
    * in the URI, which is reflected by the [charset] getter. This means that
    * [charset] may return a value even if `parameters["charset"]` is `null`.
    *
-   * If the values contain non-ASCII values or percent escapes, they default
-   * to being decoded as UTF-8.
+   * If the values contain non-ASCII values or percent escapes,
+   * they are decoded as UTF-8.
    */
   Map<String, String> get parameters {
     var result = <String, String>{};
@@ -3633,6 +3647,19 @@
       }
     }
     indices.add(i);
+    bool isBase64 = indices.length.isOdd;
+    if (isBase64) {
+      text = BASE64.normalize(text, i + 1, text.length);
+    } else {
+      // Validate "data" part, must only contain RFC 2396 'uric' characters
+      // (reserved, unreserved, or escape sequences).
+      // Normalize to this (throws on a fragment separator).
+      var data = _Uri._normalize(text, i + 1, text.length, _uricTable,
+                                 escapeDelimiters: true);
+      if (data != null) {
+        text = text.replaceRange(i + 1, text.length, data);
+      }
+    }
     return new UriData._(text, indices, sourceUri);
   }
 
@@ -3706,6 +3733,26 @@
   //
   // This is the same characters as in a URI query (which is URI pchar plus '?')
   static const _uricTable = _Uri._queryCharTable;
+
+  // Characters allowed in base-64 encoding (alphanumeric, '/', '+' and '=').
+  static const _base64Table = const [
+                //             LSB             MSB
+                //              |               |
+      0x0000,   // 0x00 - 0x0f  00000000 00000000
+      0x0000,   // 0x10 - 0x1f  00000000 00000000
+                //                          +   /
+      0x8800,   // 0x20 - 0x2f  00000000 00010001
+                //              01234567 89
+      0x03ff,   // 0x30 - 0x3f  11111111 11000000
+                //               ABCDEFG HIJKLMNO
+      0xfffe,   // 0x40 - 0x4f  01111111 11111111
+                //              PQRSTUVW XYZ
+      0x07ff,   // 0x50 - 0x5f  11111111 11100000
+                //               abcdefg hijklmno
+      0xfffe,   // 0x60 - 0x6f  01111111 11111111
+                //              pqrstuvw xyz
+      0x07ff,   // 0x70 - 0x7f  11111111 11100000
+  ];
 }
 
 // --------------------------------------------------------------------
@@ -4555,6 +4602,16 @@
   String toString() => _uri;
 }
 
+/// Special [_Uri] created from an existing [UriData].
+class _DataUri extends _Uri {
+  final UriData _data;
+
+  _DataUri(this._data, String path, String query)
+      : super._internal("data", null, null, null, path, query, null);
+
+  UriData get data => _data;
+}
+
 /// Checks whether [text] starts with "data:" at position [start].
 ///
 /// The text must be long enough to allow reading five characters
diff --git a/sdk/lib/dart_client.platform b/sdk/lib/dart_client.platform
index 16c91ca..7108fac 100644
--- a/sdk/lib/dart_client.platform
+++ b/sdk/lib/dart_client.platform
@@ -33,7 +33,7 @@
 js_util: js_util/dart2js/js_util_dart2js.dart
 math: math/math.dart
 mirrors: mirrors/mirrors.dart
-nativewrappers: html/dart2js/nativewrappers.dart
+nativewrappers: html/dartium/nativewrappers.dart
 typed_data: typed_data/typed_data.dart
 _native_typed_data: _internal/js_runtime/lib/native_typed_data.dart
 svg: svg/dart2js/svg_dart2js.dart
diff --git a/sdk/lib/dart_server.platform b/sdk/lib/dart_server.platform
index f275aff..94d5af4 100644
--- a/sdk/lib/dart_server.platform
+++ b/sdk/lib/dart_server.platform
@@ -23,7 +23,7 @@
 isolate: isolate/isolate.dart
 math: math/math.dart
 mirrors: mirrors/mirrors.dart
-nativewrappers: html/dart2js/nativewrappers.dart
+nativewrappers: html/dartium/nativewrappers.dart
 typed_data: typed_data/typed_data.dart
 _native_typed_data: _internal/js_runtime/lib/native_typed_data.dart
 html: unsupported:
diff --git a/sdk/lib/dart_shared.platform b/sdk/lib/dart_shared.platform
index ae47359..40d5787 100644
--- a/sdk/lib/dart_shared.platform
+++ b/sdk/lib/dart_shared.platform
@@ -27,7 +27,7 @@
 js_util: js_util/dart2js/js_util_dart2js.dart
 math: math/math.dart
 mirrors: mirrors/mirrors.dart
-nativewrappers: html/dart2js/nativewrappers.dart
+nativewrappers: html/dartium/nativewrappers.dart
 typed_data: typed_data/typed_data.dart
 _native_typed_data: _internal/js_runtime/lib/native_typed_data.dart
 svg: svg/dart2js/svg_dart2js.dart
diff --git a/sdk/lib/internal/internal.dart b/sdk/lib/internal/internal.dart
index 0acf068..512bc21 100644
--- a/sdk/lib/internal/internal.dart
+++ b/sdk/lib/internal/internal.dart
@@ -12,7 +12,6 @@
 
 part 'iterable.dart';
 part 'list.dart';
-part 'lists.dart';
 part 'print.dart';
 part 'sort.dart';
 part 'symbol.dart';
@@ -69,3 +68,30 @@
   final String name;
   const ExternalName(this.name);
 }
+
+// Shared hex-parsing utilities.
+
+/// Parses a single hex-digit as code unit.
+///
+/// Returns a negative value if the character is not a valid hex-digit.
+int hexDigitValue(int char) {
+  assert(char >= 0 && char <= 0xFFFF);
+  const int digit0 = 0x30;
+  const int a = 0x61;
+  const int f = 0x66;
+  int digit = char ^ digit0;
+  if (digit <= 9) return digit;
+  int letter = (char | 0x20);
+  if (a <= letter && letter <= f) return letter - (a - 10);
+  return -1;
+}
+
+/// Parses two hex digits in a string.
+///
+/// Returns a negative value if either digit isn't valid.
+int parseHexByte(String source, int index) {
+  assert(index + 2 <= source.length);
+  int digit1 = hexDigitValue(source.codeUnitAt(index));
+  int digit2 = hexDigitValue(source.codeUnitAt(index + 1));
+  return digit1 * 16 + digit2 - (digit2 & 256);
+}
diff --git a/sdk/lib/internal/internal_sources.gypi b/sdk/lib/internal/internal_sources.gypi
index 17cc287..15d2511 100644
--- a/sdk/lib/internal/internal_sources.gypi
+++ b/sdk/lib/internal/internal_sources.gypi
@@ -9,7 +9,6 @@
     # The above file needs to be first as it lists the parts below.
     'iterable.dart',
     'list.dart',
-    'lists.dart',
     'print.dart',
     'sort.dart',
     'symbol.dart',
diff --git a/sdk/lib/internal/iterable.dart b/sdk/lib/internal/iterable.dart
index 5ab7d4c..73fa5bc 100644
--- a/sdk/lib/internal/iterable.dart
+++ b/sdk/lib/internal/iterable.dart
@@ -357,7 +357,7 @@
     return new MappedIterable<S, T>._(iterable, function);
   }
 
-  MappedIterable._(this._iterable, T this._f(S element));
+  MappedIterable._(this._iterable, this._f);
 
   Iterator<T> get iterator => new MappedIterator<S, T>(_iterable.iterator, _f);
 
@@ -383,7 +383,7 @@
   final Iterator<S> _iterator;
   final _Transformation<S, T> _f;
 
-  MappedIterator(this._iterator, T this._f(S element));
+  MappedIterator(this._iterator, this._f);
 
   bool moveNext() {
     if (_iterator.moveNext()) {
@@ -406,7 +406,7 @@
   final Iterable<S> _source;
   final _Transformation<S, T> _f;
 
-  MappedListIterable(this._source, T this._f(S value));
+  MappedListIterable(this._source, this._f);
 
   int get length => _source.length;
   T elementAt(int index) => _f(_source.elementAt(index));
@@ -419,7 +419,7 @@
   final Iterable<E> _iterable;
   final _ElementPredicate<E> _f;
 
-  WhereIterable(this._iterable, bool this._f(E element));
+  WhereIterable(this._iterable, this._f);
 
   Iterator<E> get iterator => new WhereIterator<E>(_iterable.iterator, _f);
 
@@ -431,7 +431,7 @@
   final Iterator<E> _iterator;
   final _ElementPredicate _f;
 
-  WhereIterator(this._iterator, bool this._f(E element));
+  WhereIterator(this._iterator, this._f);
 
   bool moveNext() {
     while (_iterator.moveNext()) {
@@ -451,7 +451,7 @@
   final Iterable<S> _iterable;
   final _ExpandFunction<S, T> _f;
 
-  ExpandIterable(this._iterable, Iterable<T> this._f(S element));
+  ExpandIterable(this._iterable, this._f);
 
   Iterator<T> get iterator => new ExpandIterator<S, T>(_iterable.iterator, _f);
 }
@@ -465,7 +465,7 @@
   Iterator<T> _currentExpansion = const EmptyIterator();
   T _current;
 
-  ExpandIterator(this._iterator, Iterable<T> this._f(S element));
+  ExpandIterator(this._iterator, this._f);
 
   T get current => _current;
 
@@ -548,7 +548,7 @@
   final Iterable<E> _iterable;
   final _ElementPredicate<E> _f;
 
-  TakeWhileIterable(this._iterable, bool this._f(E element));
+  TakeWhileIterable(this._iterable, this._f);
 
   Iterator<E> get iterator {
     return new TakeWhileIterator<E>(_iterable.iterator, _f);
@@ -560,7 +560,7 @@
   final _ElementPredicate<E> _f;
   bool _isFinished = false;
 
-  TakeWhileIterator(this._iterator, bool this._f(E element));
+  TakeWhileIterator(this._iterator, this._f);
 
   bool moveNext() {
     if (_isFinished) return false;
@@ -641,7 +641,7 @@
   final Iterable<E> _iterable;
   final _ElementPredicate<E> _f;
 
-  SkipWhileIterable(this._iterable, bool this._f(E element));
+  SkipWhileIterable(this._iterable, this._f);
 
   Iterator<E> get iterator {
     return new SkipWhileIterator<E>(_iterable.iterator, _f);
@@ -653,7 +653,7 @@
   final _ElementPredicate<E> _f;
   bool _hasSkipped = false;
 
-  SkipWhileIterator(this._iterator, bool this._f(E element));
+  SkipWhileIterator(this._iterator, this._f);
 
   bool moveNext() {
     if (!_hasSkipped) {
diff --git a/sdk/lib/internal/lists.dart b/sdk/lib/internal/lists.dart
deleted file mode 100644
index 0f5d8e7..0000000
--- a/sdk/lib/internal/lists.dart
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of dart._internal;
-
-class Lists {
-  static void copy(List src, int srcStart,
-                   List dst, int dstStart, int count) {
-    if (srcStart < dstStart) {
-      for (int i = srcStart + count - 1, j = dstStart + count - 1;
-           i >= srcStart; i--, j--) {
-        dst[j] = src[i];
-      }
-    } else {
-      for (int i = srcStart, j = dstStart; i < srcStart + count; i++, j++) {
-        dst[j] = src[i];
-      }
-    }
-  }
-
-  static bool areEqual(List a, var b) {
-    if (identical(a, b)) return true;
-    if (!(b is List)) return false;
-    int length = a.length;
-    if (length != b.length) return false;
-
-    for (int i = 0; i < length; i++) {
-      if (!identical(a[i], b[i])) return false;
-    }
-    return true;
-  }
-
-  /**
-   * Returns the index in the list [a] of the given [element], starting
-   * the search at index [startIndex] to [endIndex] (exclusive).
-   * Returns -1 if [element] is not found.
-   */
-  static int indexOf(List a,
-                     Object element,
-                     int startIndex,
-                     int endIndex) {
-    if (startIndex >= a.length) {
-      return -1;
-    }
-    if (startIndex < 0) {
-      startIndex = 0;
-    }
-    for (int i = startIndex; i < endIndex; i++) {
-      if (a[i] == element) {
-        return i;
-      }
-    }
-    return -1;
-  }
-
-  /**
-   * Returns the last index in the list [a] of the given [element], starting
-   * the search at index [startIndex] to 0.
-   * Returns -1 if [element] is not found.
-   */
-  static int lastIndexOf(List a, Object element, int startIndex) {
-    if (startIndex < 0) {
-      return -1;
-    }
-    if (startIndex >= a.length) {
-      startIndex = a.length - 1;
-    }
-    for (int i = startIndex; i >= 0; i--) {
-      if (a[i] == element) {
-        return i;
-      }
-    }
-    return -1;
-  }
-
-  static void indicesCheck(List a, int start, int end) {
-    RangeError.checkValidRange(start, end, a.length);
-  }
-
-  static void rangeCheck(List a, int start, int length) {
-    RangeError.checkNotNegative(length);
-    RangeError.checkNotNegative(start);
-    if (start + length > a.length) {
-      String message = "$start + $length must be in the range [0..${a.length}]";
-      throw new RangeError.range(length, 0, a.length - start,
-                                 "length", message);
-    }
-  }
-}
diff --git a/sdk/lib/io/file_impl.dart b/sdk/lib/io/file_impl.dart
index 0e879b1..3ae67e3e 100644
--- a/sdk/lib/io/file_impl.dart
+++ b/sdk/lib/io/file_impl.dart
@@ -172,7 +172,7 @@
   File _file;
   Future<RandomAccessFile> _openFuture;
 
-  _FileStreamConsumer(File this._file, FileMode mode) {
+  _FileStreamConsumer(this._file, FileMode mode) {
     _openFuture = _file.open(mode: mode);
   }
 
diff --git a/sdk/lib/io/http.dart b/sdk/lib/io/http.dart
index 3a7b47d..386f8d2 100644
--- a/sdk/lib/io/http.dart
+++ b/sdk/lib/io/http.dart
@@ -2007,7 +2007,7 @@
   final String message;
   final Uri uri;
 
-  const HttpException(String this.message, {Uri this.uri});
+  const HttpException(this.message, {this.uri});
 
   String toString() {
     var b = new StringBuffer()
diff --git a/sdk/lib/io/http_headers.dart b/sdk/lib/io/http_headers.dart
index 40df48a..b272e88 100644
--- a/sdk/lib/io/http_headers.dart
+++ b/sdk/lib/io/http_headers.dart
@@ -612,7 +612,7 @@
   Map<String, String> _parameters;
   Map<String, String> _unmodifiableParameters;
 
-  _HeaderValue([String this._value = "", Map<String, String> parameters]) {
+  _HeaderValue([this._value = "", Map<String, String> parameters]) {
     if (parameters != null) {
       _parameters = new HashMap<String, String>.from(parameters);
     }
diff --git a/sdk/lib/io/http_impl.dart b/sdk/lib/io/http_impl.dart
index ac7d67a..889a32e 100644
--- a/sdk/lib/io/http_impl.dart
+++ b/sdk/lib/io/http_impl.dart
@@ -1673,7 +1673,7 @@
 
   String userAgent = _getHttpVersion();
 
-  _HttpClient(SecurityContext this._context);
+  _HttpClient(this._context);
 
   void set idleTimeout(Duration timeout) {
     _idleTimeout = timeout;
diff --git a/sdk/lib/io/io.dart b/sdk/lib/io/io.dart
index 844a380..5d94f30 100644
--- a/sdk/lib/io/io.dart
+++ b/sdk/lib/io/io.dart
@@ -195,7 +195,7 @@
 library dart.io;
 
 import 'dart:async';
-import 'dart:_internal';
+import 'dart:_internal' hide Symbol;
 import 'dart:collection' show HashMap,
                               HashSet,
                               Queue,
@@ -204,10 +204,11 @@
                               LinkedListEntry,
                               UnmodifiableMapView;
 import 'dart:convert';
-import 'dart:developer';
+import 'dart:developer' hide log;
 import 'dart:isolate';
 import 'dart:math';
 import 'dart:typed_data';
+import 'dart:nativewrappers';
 
 part 'bytes_builder.dart';
 part 'common.dart';
diff --git a/sdk/lib/io/secure_socket.dart b/sdk/lib/io/secure_socket.dart
index a523f20..c6d3cb2 100644
--- a/sdk/lib/io/secure_socket.dart
+++ b/sdk/lib/io/secure_socket.dart
@@ -446,12 +446,12 @@
       int requestedPort,
       this.is_server,
       this.context,
-      RawSocket this._socket,
+      this._socket,
       this._socketSubscription,
       this._bufferedData,
       this.requestClientCertificate,
       this.requireClientCertificate,
-      this.onBadCertificate(X509Certificate certificate),
+      this.onBadCertificate,
       List<String> supportedProtocols) {
     if (context == null) {
       context = SecurityContext.defaultContext;
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index 4fbe0ff..4ab8af8 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -4897,7 +4897,7 @@
 LibTest/html/Element/getClientRects_A01_t02: RuntimeError # Please triage this failure
 LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
 LibTest/html/Element/isContentEditable_A01_t01: Pass, RuntimeError # Issue 28187
-LibTest/html/Element/isContentEditable_A02_t01: RuntimeError # Fails 10 out of 10.
+LibTest/html/Element/isContentEditable_A02_t01: Pass, RuntimeError # Issue 28187
 LibTest/html/Element/isTagSupported_A01_t01: RuntimeError # Please triage this failure
 LibTest/html/Element/isTagSupported_A01_t02: RuntimeError # Please triage this failure
 LibTest/html/Element/leftView_A01_t01: RuntimeError # Please triage this failure
diff --git a/tests/co19/co19-dartium.status b/tests/co19/co19-dartium.status
index fbc3ce6..8ae225d 100644
--- a/tests/co19/co19-dartium.status
+++ b/tests/co19/co19-dartium.status
@@ -1008,6 +1008,7 @@
 LibTest/isolate/SendPort/send_A02_t04: Fail # Issue 13921
 LibTest/isolate/SendPort/send_A02_t05: Fail # Issue 13921
 LibTest/isolate/SendPort/send_A02_t06: Fail # Issue 13921
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: Pass, Slow
 WebPlatformTest/custom-elements/concepts/type_A03_t01: RuntimeError # Please triage this failure.
 WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # co19-roll r722: Please triage this failure.
 WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # co19-roll r722: Please triage this failure.
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index 1d9ebc0..7043760 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -54,6 +54,7 @@
 [ ($runtime == vm || $runtime == dart_precompiled ) && $mode == debug ]
 LibTest/core/List/List_class_A01_t02: Pass, Slow
 LibTest/isolate/Isolate/spawn_A04_t01: Pass, Fail  # Issue 28269
+LibTest/isolate/Isolate/spawnUri_A01_t07: Pass, Fail  # Issue 28269
 
 [ ($runtime == vm || $runtime == dart_precompiled) && ($arch != x64 && $arch != simarm64 && $arch != arm64 && $arch != simdbc64 && $arch != simdbc) ]
 LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
@@ -222,3 +223,9 @@
 
 [ $runtime == vm && $mode == release && $system == linux && ($arch == x64 || $arch == ia32)]
 LibTest/isolate/Isolate/spawn_A04_t05: Pass, Slow
+
+[ $runtime == vm && $mode == release && $system == linux && $arch == ia32]
+service/dev_fs_spawn_test: Pass, Fail # Issue 28411
+
+[ $runtime == vm && $system == linux && ($arch == x64 || $arch == ia32) ]
+co19/LibTest/isolate/Isolate/spawnUri_A01_t06: Pass, Fail # Issue 28269
diff --git a/tests/compiler/dart2js/mirrors_used_test.dart b/tests/compiler/dart2js/mirrors_used_test.dart
index 3975516..ededeaa 100644
--- a/tests/compiler/dart2js/mirrors_used_test.dart
+++ b/tests/compiler/dart2js/mirrors_used_test.dart
@@ -63,7 +63,7 @@
     // 2. Some code was refactored, and there are more methods.
     // Either situation could be problematic, but in situation 2, it is often
     // acceptable to increase [expectedMethodCount] a little.
-    int expectedMethodCount = 466;
+    int expectedMethodCount = 476;
     Expect.isTrue(
         generatedCode.length <= expectedMethodCount,
         'Too many compiled methods: '
diff --git a/tests/compiler/dart2js_extra/dart2js_extra.status b/tests/compiler/dart2js_extra/dart2js_extra.status
index 5be8d14..8743ad6 100644
--- a/tests/compiler/dart2js_extra/dart2js_extra.status
+++ b/tests/compiler/dart2js_extra/dart2js_extra.status
@@ -123,3 +123,52 @@
 
 [ $compiler == dart2js ]
 mirror_printer_test: Pass, Slow # Issue 25940, 16473
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+big_allocation_expression_test: Pass # Issue 27394
+21666_test: Crash # Issue 27394
+23486_test/02: Crash # Issue 27394
+bailout_on_continue_test: RuntimeError # Issue 27394
+closure_type_reflection2_test: Crash # Issue 27394
+closure_type_reflection_test: Crash # Issue 27394
+deferred/deferred_constant3_test: RuntimeError # Issue 27394
+deferred/deferred_function_test: RuntimeError # Issue 27394
+deferred/deferred_mirrors2_test: Crash # Issue 27394
+first_class_types_hashcode_test: RuntimeError # Issue 27394
+generics_factories_test: RuntimeError # Issue 27394
+generics_is_check1_test: RuntimeError # Issue 27394
+inference_super_set_call_test: RuntimeError # Issue 27394
+invalid_annotation2_test/01: Crash # Issue 27394
+invalid_annotation2_test/none: Crash # Issue 27394
+invalid_annotation_test/01: Crash # Issue 27394
+is_check_instanceof_test: RuntimeError # Issue 27394
+lookup_map/dead_entry_through_mirrors_test: Crash # Issue 27394
+lookup_map/generic_type_test: RuntimeError # Issue 27394
+lookup_map/live_entry_through_mirrors_test: Crash # Issue 27394
+lookup_map/live_entry_through_mirrors_used_test: Crash # Issue 27394
+many_fields_test: Crash # Issue 27394
+mirror_enqueuer_regression_test: Crash # Issue 27394
+mirror_invalid_field_access2_test: Crash # Issue 27394
+mirror_invalid_field_access3_test: Crash # Issue 27394
+mirror_invalid_field_access4_test: Crash # Issue 27394
+mirror_invalid_field_access_test: Crash # Issue 27394
+mirror_invalid_invoke2_test: Crash # Issue 27394
+mirror_invalid_invoke3_test: Crash # Issue 27394
+mirror_invalid_invoke_test: Crash # Issue 27394
+mirror_printer_test/01: Crash # Issue 27394
+mirror_printer_test/none: Crash # Issue 27394
+mirror_test: Crash # Issue 27394
+mirror_type_inference_field2_test: Crash # Issue 27394
+mirror_type_inference_field_test: Crash # Issue 27394
+mirror_type_inference_function_test: Crash # Issue 27394
+mirrors_declarations_filtering_test: Crash # Issue 27394
+mirrors_used_closure_test: Crash # Issue 27394
+mirrors_used_metatargets_test: Crash # Issue 27394
+mirrors_used_native_test: Crash # Issue 27394
+reflect_native_types_test: Crash # Issue 27394
+runtime_type_test: RuntimeError # Issue 27394
+type_argument_factory_nocrash_test: RuntimeError # Issue 27394
+typevariable_substitution_test: Crash # Issue 27394
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+regress/4562_test/01: Crash # Issue 27394
diff --git a/tests/compiler/dart2js_native/dart2js_native.status b/tests/compiler/dart2js_native/dart2js_native.status
index 874ace3..eab1082 100644
--- a/tests/compiler/dart2js_native/dart2js_native.status
+++ b/tests/compiler/dart2js_native/dart2js_native.status
@@ -25,3 +25,110 @@
 
 [ $compiler == dart2js && $runtime == d8 && $system == windows ]
 compute_this_script_test: Skip # Issue 17458
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+abstract_class_test: RuntimeError # Issue 27394
+bound_closure_test: RuntimeError # Issue 27394
+browser_compat_1_prepatched_test: RuntimeError # Issue 27394
+browser_compat_1_unpatched_test: RuntimeError # Issue 27394
+browser_compat_2_test: RuntimeError # Issue 27394
+core_type_check_native_test: RuntimeError # Issue 27394
+dispatch_property_initialization_test: RuntimeError # Issue 27394
+downcast_test: RuntimeError # Issue 27394
+error_safeToString_test: RuntimeError # Issue 27394
+event_loop_test: RuntimeError # Issue 27394
+field_type2_test: RuntimeError # Issue 27394
+field_type_test: RuntimeError # Issue 27394
+fixup_get_tag_test: RuntimeError # Issue 27394
+hash_code_test: RuntimeError # Issue 27394
+is_check_test: CompileTimeError # Issue 27394
+issue9182_test: RuntimeError # Issue 27394
+js_const_test: RuntimeError # Issue 27394
+jsobject_test: RuntimeError # Issue 27394
+load_elim_refinement_test: Crash # Issue 27394
+mirror_intercepted_field_test: Crash # Issue 27394
+native_call_arity1_frog_test: RuntimeError # Issue 27394
+native_call_arity2_frog_test: RuntimeError # Issue 27394
+native_call_arity3_frog_test: RuntimeError # Issue 27394
+native_checked_arguments1_frog_test: RuntimeError # Issue 27394
+native_checked_fields_frog_test: RuntimeError # Issue 27394
+native_class_avoids_hidden_name_frog_test: RuntimeError # Issue 27394
+native_class_fields_2_test: RuntimeError # Issue 27394
+native_class_fields_3_test: RuntimeError # Issue 27394
+native_class_fields_test: RuntimeError # Issue 27394
+native_class_inheritance1_frog_test: RuntimeError # Issue 27394
+native_class_inheritance2_frog_test: RuntimeError # Issue 27394
+native_class_inheritance3_frog_test: RuntimeError # Issue 27394
+native_class_inheritance4_frog_test: RuntimeError # Issue 27394
+native_class_is_check1_frog_test: RuntimeError # Issue 27394
+native_class_is_check3_frog_test: RuntimeError # Issue 27394
+native_class_with_dart_methods_frog_test: RuntimeError # Issue 27394
+native_closure_identity_frog_test: RuntimeError # Issue 27394
+native_constructor_name_test: RuntimeError # Issue 27394
+native_equals_frog_test: RuntimeError # Issue 27394
+native_exception2_test: RuntimeError # Issue 27394
+native_exceptions1_frog_test: RuntimeError # Issue 27394
+native_field_invocation2_test: RuntimeError # Issue 27394
+native_field_invocation3_test: RuntimeError # Issue 27394
+native_field_invocation5_test: RuntimeError # Issue 27394
+native_field_invocation6_test: RuntimeError # Issue 27394
+native_field_invocation_test: RuntimeError # Issue 27394
+native_field_name_test: RuntimeError # Issue 27394
+native_field_optimization_test: RuntimeError # Issue 27394
+native_field_rename_1_frog_test: RuntimeError # Issue 27394
+native_field_rename_2_frog_test: RuntimeError # Issue 27394
+native_library_same_name_used_frog_test: CompileTimeError # Issue 27394
+native_method_inlining_test: RuntimeError # Issue 27394
+native_method_rename1_frog_test: RuntimeError # Issue 27394
+native_method_rename2_frog_test: RuntimeError # Issue 27394
+native_method_rename3_frog_test: RuntimeError # Issue 27394
+native_method_with_keyword_name_test: RuntimeError # Issue 27394
+native_mirror_test: Crash # Issue 27394
+native_mixin_field_test: RuntimeError # Issue 27394
+native_mixin_multiple2_test: RuntimeError # Issue 27394
+native_mixin_multiple3_test: RuntimeError # Issue 27394
+native_mixin_multiple_test: RuntimeError # Issue 27394
+native_mixin_test: RuntimeError # Issue 27394
+native_mixin_with_plain_test: RuntimeError # Issue 27394
+native_named_constructors2_frog_test: RuntimeError # Issue 27394
+native_named_constructors3_frog_test: RuntimeError # Issue 27394
+native_no_such_method_exception2_frog_test: RuntimeError # Issue 27394
+native_no_such_method_exception3_frog_test: RuntimeError # Issue 27394
+native_no_such_method_exception_frog_test: RuntimeError # Issue 27394
+native_novel_html_test: RuntimeError # Issue 27394
+native_null_closure_frog_test: RuntimeError # Issue 27394
+native_null_frog_test: RuntimeError # Issue 27394
+native_property_frog_test: Crash # Issue 27394
+native_to_string_frog_test: RuntimeError # Issue 27394
+native_use_native_name_in_table_frog_test: RuntimeError # Issue 27394
+native_wrapping_function3_frog_test: RuntimeError # Issue 27394
+native_wrapping_function_frog_test: RuntimeError # Issue 27394
+oddly_named_fields_test: RuntimeError # Issue 27394
+optimization_hints_test: RuntimeError # Issue 27394
+runtimetype_test: CompileTimeError # Issue 27394
+static_methods_test: RuntimeError # Issue 27394
+subclassing_1_test: RuntimeError # Issue 27394
+subclassing_2_test: RuntimeError # Issue 27394
+subclassing_3_test: RuntimeError # Issue 27394
+subclassing_4_test: RuntimeError # Issue 27394
+subclassing_5_test: RuntimeError # Issue 27394
+subclassing_constructor_1_test: RuntimeError # Issue 27394
+subclassing_constructor_2_test: RuntimeError # Issue 27394
+subclassing_super_call_test: RuntimeError # Issue 27394
+subclassing_super_field_1_test: RuntimeError # Issue 27394
+subclassing_super_field_2_test: RuntimeError # Issue 27394
+subclassing_type_test: RuntimeError # Issue 27394
+super_call_test: RuntimeError # Issue 27394
+super_property_test: RuntimeError # Issue 27394
+uninstantiated_type_parameter_test: RuntimeError # Issue 27394
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+bound_closure_super_test: Crash # Issue 27394
+bound_closure_test: Crash # Issue 27394
+native_call_arity1_frog_test: Crash # Issue 27394
+native_call_arity2_frog_test: Crash # Issue 27394
+native_call_arity3_frog_test: Crash # Issue 27394
+native_class_inheritance1_frog_test: Crash # Issue 27394
+native_class_inheritance2_frog_test: Crash # Issue 27394
+native_class_inheritance3_frog_test: Crash # Issue 27394
+native_wrapping_function3_frog_test: Crash # Issue 27394
diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status
index 7c16962..a187e09 100644
--- a/tests/corelib/corelib.status
+++ b/tests/corelib/corelib.status
@@ -213,3 +213,55 @@
 [ $hot_reload || $hot_reload_rollback ]
 big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow.
 
+[ $compiler == dart2js && $dart2js_with_kernel ]
+error_stack_trace1_test: Pass # Issue 27394
+symbol_reserved_word_test/03: Pass # Issue 27394
+bool_from_environment_test: RuntimeError # Issue 27394
+data_uri_test: RuntimeError # Issue 27394
+date_time7_test: RuntimeError # Issue 27394
+date_time_test: RuntimeError # Issue 27394
+duration_test: RuntimeError # Issue 27394
+growable_list_test: RuntimeError # Issue 27394
+int_from_environment2_test: RuntimeError # Issue 27394
+int_from_environment_test: RuntimeError # Issue 27394
+iterable_empty_test: RuntimeError # Issue 27394
+iterable_generate_test/01: RuntimeError # Issue 27394
+iterable_generate_test/none: RuntimeError # Issue 27394
+iterable_return_type_test/none: RuntimeError # Issue 27394
+iterable_to_list_test/none: RuntimeError # Issue 27394
+iterable_to_set_test: RuntimeError # Issue 27394
+linked_hash_map_from_iterable_test: RuntimeError # Issue 27394
+linked_hash_map_from_iterables_test: RuntimeError # Issue 27394
+list_filled_type_argument_test: RuntimeError # Issue 27394
+map_from_iterable_test: RuntimeError # Issue 27394
+map_from_iterables_test: RuntimeError # Issue 27394
+map_keys2_test: RuntimeError # Issue 27394
+map_test: Crash # Issue 27394
+map_values2_test: RuntimeError # Issue 27394
+map_values3_test: RuntimeError # Issue 27394
+map_values4_test: RuntimeError # Issue 27394
+reg_exp1_test: RuntimeError # Issue 27394
+regexp/compile_test: RuntimeError # Issue 27394
+regexp/default_arguments_test: RuntimeError # Issue 27394
+regexp/multiline_test: RuntimeError # Issue 27394
+regexp/parentheses_test: RuntimeError # Issue 27394
+regexp/pcre-test-4_test: RuntimeError # Issue 27394
+regexp/pcre_test: RuntimeError # Issue 27394
+set_test: RuntimeError # Issue 27394
+splay_tree_from_iterable_test: RuntimeError # Issue 27394
+splay_tree_from_iterables_test: RuntimeError # Issue 27394
+string_from_environment2_test: RuntimeError # Issue 27394
+string_from_environment_test: RuntimeError # Issue 27394
+symbol_operator_test/03: RuntimeError # Issue 27394
+symbol_reserved_word_test/06: RuntimeError # Issue 27394
+symbol_reserved_word_test/09: RuntimeError # Issue 27394
+symbol_reserved_word_test/12: RuntimeError # Issue 27394
+symbol_test/none: RuntimeError # Issue 27394
+uri_example_test: RuntimeError # Issue 27394
+uri_http_test: RuntimeError # Issue 27394
+uri_parameters_all_test: RuntimeError # Issue 27394
+uri_query_test: RuntimeError # Issue 27394
+uri_test: RuntimeError # Issue 27394
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+regress/4562_test/01: Crash # Issue 27394
diff --git a/tests/corelib/data_uri_test.dart b/tests/corelib/data_uri_test.dart
index 41f2290..58b1201 100644
--- a/tests/corelib/data_uri_test.dart
+++ b/tests/corelib/data_uri_test.dart
@@ -18,16 +18,18 @@
   testRoundTrip("blåbærgrød", UTF8);
   testRoundTrip("blåbærgrød", LATIN1);
 
-  testUriEquals("data:,abc?d#e");
-  testUriEquals("DATA:,ABC?D#E");
-  testUriEquals("data:,a%20bc?d#e");
-  testUriEquals("DATA:,A%20BC?D#E");
-  testUriEquals("data:,a%62c?d#e");
-  testUriEquals("DATA:,A%42C?D#E");
+  testUriEquals("data:,abc?d");
+  testUriEquals("DATA:,ABC?D");
+  testUriEquals("data:,a%20bc?d");
+  testUriEquals("DATA:,A%20BC?D");
+  testUriEquals("data:,abc?d%23e");  // # must and will be is escaped.
+
+  // Test that UriData.uri normalizes path and query.
 
   testUtf8Encoding("\u1000\uffff");
   testBytes();
   testInvalidCharacters();
+  testNormalization();
   testErrors();
 }
 
@@ -158,6 +160,37 @@
   testLists(new List.unmodifiable(bytes));
 }
 
+void testNormalization() {
+  // Base-64 normalization.
+
+  // Normalized URI-alphabet characters.
+  Expect.equals("data:;base64,AA/+",
+      UriData.parse("data:;base64,AA_-").toString());
+  // Normalized escapes.
+  Expect.equals("data:;base64,AB==",
+      UriData.parse("data:;base64,A%42=%3D").toString());
+  Expect.equals("data:;base64,/+/+",
+      UriData.parse("data:;base64,%5F%2D%2F%2B").toString());
+  // Normalized padded data.
+  Expect.equals("data:;base64,AA==",
+      UriData.parse("data:;base64,AA%3D%3D").toString());
+  Expect.equals("data:;base64,AAA=",
+      UriData.parse("data:;base64,AAA%3D").toString());
+  // Normalized unpadded data.
+  Expect.equals("data:;base64,AA==",
+      UriData.parse("data:;base64,AA").toString());
+  Expect.equals("data:;base64,AAA=",
+      UriData.parse("data:;base64,AAA").toString());
+
+  // "URI normalization" of non-base64 content.
+  var uri = UriData.parse("data:,\x20\xa0");
+  Expect.equals("data:,%20%C2%A0", uri.toString());
+  uri = UriData.parse("data:,x://x@y:[z]:42/p/./?q=x&y=z#?#\u1234\u{12345}");
+  Expect.equals(
+      "data:,x://x@y:%5Bz%5D:42/p/./?q=x&y=z%23?%23%E1%88%B4%F0%92%8D%85",
+      uri.toString());
+}
+
 bool badArgument(e) => e is ArgumentError;
 bool badFormat(e) => e is FormatException;
 
@@ -218,29 +251,45 @@
   Expect.throws(() { UriData.parse("data:type/sub;k=v;base64");},
                 badFormat);
 
-  // Invalid base64 format (only detected when decodeing).
+  void formatError(String input) {
+    Expect.throws(() => UriData.parse("data:;base64,$input"), badFormat, input);
+  }
+
+  // Invalid base64 format (detected when parsed).
   for (var a = 0; a <= 4; a++) {
     for (var p = 0; p <= 4; p++) {
       // Base-64 encoding must have length divisible by four and no more
       // than two padding characters at the end.
       if (p < 3 && (a + p) % 4 == 0) continue;
-      uri = UriData.parse("data:;base64," + "A" * a + "=" * p);
-      Expect.throws(uri.contentAsBytes, badFormat);
+      if (p == 0 && a > 1) continue;
+      formatError("A" * a + "=" * p);
+      formatError("A" * a + "%3D" * p);
     }
   }
   // Invalid base64 encoding: padding not at end.
-  uri = UriData.parse("data:;base64,AA=A");
-  Expect.throws(uri.contentAsBytes, badFormat);
-  uri = UriData.parse("data:;base64,A=AA");
-  Expect.throws(uri.contentAsBytes, badFormat);
-  uri = UriData.parse("data:;base64,=AAA");
-  Expect.throws(uri.contentAsBytes, badFormat);
-  uri = UriData.parse("data:;base64,A==A");
-  Expect.throws(uri.contentAsBytes, badFormat);
-  uri = UriData.parse("data:;base64,==AA");
-  Expect.throws(uri.contentAsBytes, badFormat);
-  uri = UriData.parse("data:;base64,===A");
-  Expect.throws(uri.contentAsBytes, badFormat);
+  formatError("AA=A");
+  formatError("A=AA");
+  formatError("=AAA");
+  formatError("A==A");
+  formatError("==AA");
+  formatError("===A");
+  formatError("AAA%3D=");
+  formatError("A%3D==");
+
+  // Invalid unpadded data.
+  formatError("A");
+  formatError("AAAAA");
+
+  // Invalid characters.
+  formatError("AAA*");
+  formatError("AAA\x00");
+  formatError("AAA\\");
+  formatError("AAA,");
+
+  // Invalid escapes.
+  formatError("AAA%25");
+  formatError("AAA%7F");
+  formatError("AAA%7F");
 }
 
 /// Checks that two [Uri]s are exactly the same.
diff --git a/tests/html/html.status b/tests/html/html.status
index 963d72a..1ebdd4b 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -269,6 +269,7 @@
 custom/document_register_type_extensions_test/construction: Fail # Issue 13193
 custom/element_upgrade_test: Fail # Issue 18247
 worker_api_test: Fail # IE does not support URL.createObjectURL in web workers.
+custom/document_register_template_test: Pass, Slow # Issue 28792
 
 [ $compiler == dart2js && $runtime == drt && $unchecked ]
 audiocontext_test/functional: Pass, Fail
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index 2e8e2ed..9023900 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -364,3 +364,386 @@
 
 [ $compiler != dart2analyzer]
 switch_case_warn_test: SKIP # Analyzer only, see language_analyzer2.status
+
+[ $compiler == dart2js && $dart2js_with_kernel ]
+abstract_beats_arguments_test: RuntimeError # Issue 27394
+abstract_runtime_error_test/01: RuntimeError # Issue 27394
+abstract_runtime_error_test/02: RuntimeError # Issue 27394
+arithmetic_canonicalization_test: RuntimeError # Issue 27394
+assign_top_method_test/01: Crash # Issue 27394
+async_await_syntax_test/a04b: Crash # Issue 27394
+async_await_syntax_test/a06a: RuntimeError # Issue 27394
+async_await_syntax_test/a07b: Crash # Issue 27394
+async_await_syntax_test/a08b: Crash # Issue 27394
+async_await_syntax_test/b06a: RuntimeError # Issue 27394
+async_await_syntax_test/c06a: RuntimeError # Issue 27394
+async_await_syntax_test/d06a: RuntimeError # Issue 27394
+async_await_test: RuntimeError # Issue 27394
+async_star_pause_test: RuntimeError # Issue 27394
+async_star_regression_fisk_test: RuntimeError # Issue 27394
+async_star_stream_take_test: RuntimeError # Issue 27394
+async_star_take_reyield_test: RuntimeError # Issue 27394
+async_star_test: RuntimeError # Issue 27394
+await_for_test: RuntimeError # Issue 27394
+await_for_use_local_test: RuntimeError # Issue 27394
+bootstrap_test: RuntimeError # Issue 27394
+bound_closure_equality_test: RuntimeError # Issue 27394
+built_in_identifier_test/01: Crash # Issue 27394
+call_nonexistent_static_test/10: Crash # Issue 27394
+canonical_const3_test: RuntimeError # Issue 27394
+canonical_const_test: RuntimeError # Issue 27394
+closure_in_constructor_test: Crash # Issue 27394
+closure_in_initializer_test: Crash # Issue 27394
+closure_type_variable_test: RuntimeError # Issue 27394
+closure_type_variables_test: Crash # Issue 27394
+closures_initializer_test: RuntimeError # Issue 27394
+compile_time_constant9_test: RuntimeError # Issue 27394
+conditional_property_assignment_test/07: RuntimeError # Issue 27394
+conditional_property_increment_decrement_test/01: RuntimeError # Issue 27394
+conditional_property_increment_decrement_test/05: RuntimeError # Issue 27394
+conditional_property_increment_decrement_test/09: RuntimeError # Issue 27394
+conditional_property_increment_decrement_test/13: RuntimeError # Issue 27394
+const_escape_frog_test: RuntimeError # Issue 27394
+const_evaluation_test/01: Crash # Issue 27394
+const_locals_test: RuntimeError # Issue 27394
+const_map2_test/none: RuntimeError # Issue 27394
+const_map3_test/none: RuntimeError # Issue 27394
+const_nested_test: RuntimeError # Issue 27394
+const_qq_test: Crash # Issue 27394
+constructor10_test/01: Crash # Issue 27394
+constructor10_test/02: Crash # Issue 27394
+constructor12_test: Crash # Issue 27394
+constructor6_test: Crash # Issue 27394
+constructor_named_arguments_test/none: RuntimeError # Issue 27394
+constructor_redirect2_test/02: Crash # Issue 27394
+constructor_redirect2_test/04: Crash # Issue 27394
+covariant_test/10: Crash # Issue 27394
+covariant_test/11: Crash # Issue 27394
+covariant_test/20b: Crash # Issue 27394
+covariant_test/21: Crash # Issue 27394
+covariant_test/21b: Crash # Issue 27394
+covariant_test/24: Crash # Issue 27394
+covariant_test/27: Crash # Issue 27394
+covariant_test/27b: Crash # Issue 27394
+covariant_test/30: Crash # Issue 27394
+covariant_test/30b: Crash # Issue 27394
+covariant_test/31: Crash # Issue 27394
+covariant_test/31b: Crash # Issue 27394
+ct_const_test: RuntimeError # Issue 27394
+cyclic_default_values_test: RuntimeError # Issue 27394
+cyclic_type2_test: RuntimeError # Issue 27394
+cyclic_type_test/00: RuntimeError # Issue 27394
+cyclic_type_test/02: RuntimeError # Issue 27394
+cyclic_type_test/03: RuntimeError # Issue 27394
+cyclic_type_test/04: RuntimeError # Issue 27394
+deferred_constraints_constants_test/constructor1: Crash # Issue 27394
+deferred_constraints_constants_test/constructor2: Crash # Issue 27394
+deferred_constraints_constants_test/default_argument1: Crash # Issue 27394
+deferred_constraints_constants_test/default_argument2: Crash # Issue 27394
+deferred_constraints_constants_test/metadata1: Crash # Issue 27394
+deferred_constraints_constants_test/metadata2: Crash # Issue 27394
+deferred_constraints_constants_test/metadata3: Crash # Issue 27394
+deferred_constraints_constants_test/none: Crash # Issue 27394
+deferred_constraints_constants_test/reference1: Crash # Issue 27394
+deferred_constraints_constants_test/reference2: Crash # Issue 27394
+deferred_constraints_constants_test/reference_after_load: Crash # Issue 27394
+deferred_constraints_type_annotation_test/as_operation: Crash # Issue 27394
+deferred_global_test: RuntimeError # Issue 27394
+deferred_inheritance_constraints_test/mixin: Crash # Issue 27394
+deferred_load_constants_test/none: RuntimeError # Issue 27394
+deferred_static_seperate_test: RuntimeError # Issue 27394
+deferred_super_dependency_test/01: Crash # Issue 27394
+enum_mirror_test: Crash # Issue 27394
+equality_test: RuntimeError # Issue 27394
+evaluation_redirecting_constructor_test: RuntimeError # Issue 27394
+export_ambiguous_main_negative_test: Crash # Issue 27394
+f_bounded_quantification4_test: RuntimeError # Issue 27394
+f_bounded_quantification5_test: RuntimeError # Issue 27394
+factory3_test: RuntimeError # Issue 27394
+factory_redirection_test/09: RuntimeError # Issue 27394
+factory_type_parameter2_test: Crash # Issue 27394
+factory_type_parameter_test: RuntimeError # Issue 27394
+final_for_in_variable_test/01: MissingRuntimeError # Issue 27394
+final_param_test/01: MissingRuntimeError # Issue 27394
+final_variable_assignment_test/01: MissingRuntimeError # Issue 27394
+first_class_types_constants_test: RuntimeError # Issue 27394
+first_class_types_libraries_test: RuntimeError # Issue 27394
+first_class_types_test: RuntimeError # Issue 27394
+fixed_type_variable2_test/01: RuntimeError # Issue 27394
+fixed_type_variable2_test/02: RuntimeError # Issue 27394
+fixed_type_variable2_test/03: RuntimeError # Issue 27394
+fixed_type_variable2_test/05: RuntimeError # Issue 27394
+fixed_type_variable2_test/06: RuntimeError # Issue 27394
+fixed_type_variable_test/01: RuntimeError # Issue 27394
+fixed_type_variable_test/02: RuntimeError # Issue 27394
+fixed_type_variable_test/03: RuntimeError # Issue 27394
+fixed_type_variable_test/05: RuntimeError # Issue 27394
+fixed_type_variable_test/06: RuntimeError # Issue 27394
+function_subtype1_test: RuntimeError # Issue 27394
+function_subtype2_test: RuntimeError # Issue 27394
+function_subtype3_test: RuntimeError # Issue 27394
+function_subtype_bound_closure2_test: RuntimeError # Issue 27394
+function_subtype_bound_closure3_test: RuntimeError # Issue 27394
+function_subtype_bound_closure4_test: RuntimeError # Issue 27394
+function_subtype_bound_closure5_test: RuntimeError # Issue 27394
+function_subtype_bound_closure5a_test: RuntimeError # Issue 27394
+function_subtype_bound_closure6_test: RuntimeError # Issue 27394
+function_subtype_bound_closure7_test: RuntimeError # Issue 27394
+function_subtype_call1_test: RuntimeError # Issue 27394
+function_subtype_call2_test: RuntimeError # Issue 27394
+function_subtype_cast1_test: RuntimeError # Issue 27394
+function_subtype_cast2_test: RuntimeError # Issue 27394
+function_subtype_cast3_test: RuntimeError # Issue 27394
+function_subtype_factory0_test: RuntimeError # Issue 27394
+function_subtype_inline0_test: RuntimeError # Issue 27394
+function_subtype_local2_test: RuntimeError # Issue 27394
+function_subtype_local3_test: RuntimeError # Issue 27394
+function_subtype_local4_test: RuntimeError # Issue 27394
+function_subtype_local5_test: RuntimeError # Issue 27394
+function_subtype_named2_test: RuntimeError # Issue 27394
+function_subtype_not1_test: RuntimeError # Issue 27394
+function_subtype_not2_test: RuntimeError # Issue 27394
+function_subtype_not3_test: RuntimeError # Issue 27394
+function_subtype_optional2_test: RuntimeError # Issue 27394
+function_subtype_top_level1_test: RuntimeError # Issue 27394
+function_subtype_typearg0_test: RuntimeError # Issue 27394
+function_subtype_typearg5_test: RuntimeError # Issue 27394
+function_type_alias2_test: RuntimeError # Issue 27394
+function_type_alias3_test: RuntimeError # Issue 27394
+function_type_alias4_test: RuntimeError # Issue 27394
+generic2_test: RuntimeError # Issue 27394
+generic_closure_test: RuntimeError # Issue 27394
+generic_deep_test: RuntimeError # Issue 27394
+generic_field_mixin2_test: Crash # Issue 27394
+generic_field_mixin3_test: Crash # Issue 27394
+generic_field_mixin6_test/01: Crash # Issue 27394
+generic_field_mixin_test: Crash # Issue 27394
+generic_inheritance_test: RuntimeError # Issue 27394
+generic_instanceof2_test: RuntimeError # Issue 27394
+generic_instanceof_test: RuntimeError # Issue 27394
+generic_is_check_test: RuntimeError # Issue 27394
+generic_local_functions_test: Crash # Issue 27394
+generic_metadata_test/02: Crash # Issue 27394
+generic_metadata_test/03: Crash # Issue 27394
+generic_method_types_test/01: RuntimeError # Issue 27394
+generic_method_types_test/02: RuntimeError # Issue 27394
+generic_methods_generic_function_parameter_test: Crash # Issue 27394
+generic_methods_new_test: RuntimeError # Issue 27394
+generic_methods_type_expression_test/01: RuntimeError # Issue 27394
+generic_methods_type_expression_test/03: RuntimeError # Issue 27394
+generic_methods_type_expression_test/none: RuntimeError # Issue 27394
+generic_native_test: RuntimeError # Issue 27394
+generic_parameterized_extends_test: RuntimeError # Issue 27394
+get_set_syntax_test/00: Crash # Issue 27394
+if_null_assignment_behavior_test/06: RuntimeError # Issue 27394
+if_null_assignment_static_test/01: RuntimeError # Issue 27394
+if_null_assignment_static_test/03: RuntimeError # Issue 27394
+if_null_assignment_static_test/04: RuntimeError # Issue 27394
+if_null_assignment_static_test/05: RuntimeError # Issue 27394
+illegal_initializer_test/01: Crash # Issue 27394
+illegal_initializer_test/02: Crash # Issue 27394
+illegal_initializer_test/03: Crash # Issue 27394
+illegal_initializer_test/04: Crash # Issue 27394
+inference_mixin_field_test: Crash # Issue 27394
+initializing_formal_final_test: RuntimeError # Issue 27394
+inline_super_field_test: Crash # Issue 27394
+instance_creation_in_function_annotation_test: Crash # Issue 27394
+instanceof2_test: RuntimeError # Issue 27394
+instanceof4_test/01: RuntimeError # Issue 27394
+instanceof4_test/none: RuntimeError # Issue 27394
+invocation_mirror_test: Crash # Issue 27394
+is_malformed_type_test/94: Crash # Issue 27394
+is_malformed_type_test/96: Crash # Issue 27394
+is_malformed_type_test/98: Crash # Issue 27394
+issue10747_test: RuntimeError # Issue 27394
+issue21079_test: Crash # Issue 27394
+issue9602_test: Crash # Issue 27394
+issue_25671a_test/01: Crash # Issue 27394
+issue_25671b_test/01: Crash # Issue 27394
+library_env_test/has_html_support: RuntimeError # Issue 27394
+library_env_test/has_io_support: RuntimeError # Issue 27394
+library_env_test/has_mirror_support: RuntimeError # Issue 27394
+library_env_test/none: RuntimeError # Issue 27394
+list_is_test: RuntimeError # Issue 27394
+list_test: RuntimeError # Issue 27394
+main_not_a_function_test/01: Crash # Issue 27394
+malbounded_type_cast_test: RuntimeError # Issue 27394
+malbounded_type_test_test/04: RuntimeError # Issue 27394
+malformed_inheritance_test/03: Crash # Issue 27394
+malformed_inheritance_test/09: Crash # Issue 27394
+malformed_inheritance_test/10: Crash # Issue 27394
+many_generic_instanceof_test: RuntimeError # Issue 27394
+many_method_calls_test: Pass # Issue 27394
+map_literal6_test: RuntimeError # Issue 27394
+metadata_test: Crash # Issue 27394
+method_override_test: RuntimeError # Issue 27394
+mixin_black_listed_test/08: Crash # Issue 27394
+mixin_cyclic_test/01: Crash # Issue 27394
+mixin_extends_field_test: Crash # Issue 27394
+mixin_field_initializer_test: Crash # Issue 27394
+mixin_field_test: Crash # Issue 27394
+mixin_forwarding_constructor1_test: Crash # Issue 27394
+mixin_forwarding_constructor2_test: Crash # Issue 27394
+mixin_forwarding_constructor3_test: Crash # Issue 27394
+mixin_generic_test: RuntimeError # Issue 27394
+mixin_getter_regression_test: Crash # Issue 27394
+mixin_illegal_cycles_test/02: Crash # Issue 27394
+mixin_illegal_cycles_test/03: Crash # Issue 27394
+mixin_illegal_cycles_test/04: Crash # Issue 27394
+mixin_illegal_cycles_test/06: Crash # Issue 27394
+mixin_illegal_super_use_test/02: Crash # Issue 27394
+mixin_illegal_super_use_test/03: Crash # Issue 27394
+mixin_illegal_super_use_test/05: Crash # Issue 27394
+mixin_illegal_super_use_test/06: Crash # Issue 27394
+mixin_illegal_super_use_test/08: Crash # Issue 27394
+mixin_illegal_super_use_test/09: Crash # Issue 27394
+mixin_invalid_inheritance1_test/01: Crash # Issue 27394
+mixin_invalid_inheritance1_test/02: Crash # Issue 27394
+mixin_invalid_inheritance1_test/03: Crash # Issue 27394
+mixin_invalid_inheritance2_test/01: Crash # Issue 27394
+mixin_invalid_inheritance2_test/02: Crash # Issue 27394
+mixin_invalid_inheritance2_test/03: Crash # Issue 27394
+mixin_lib_extends_field_test: Crash # Issue 27394
+mixin_mixin4_test: RuntimeError # Issue 27394
+mixin_mixin5_test: RuntimeError # Issue 27394
+mixin_mixin_bound2_test: RuntimeError # Issue 27394
+mixin_mixin_bound_test: RuntimeError # Issue 27394
+mixin_only_for_rti_test: RuntimeError # Issue 27394
+mixin_proto_test: Crash # Issue 27394
+mixin_regress_11398_test: Crash # Issue 27394
+mixin_super_constructor2_test: Crash # Issue 27394
+mixin_super_constructor_default_test: Crash # Issue 27394
+mixin_super_constructor_named_test/01: Crash # Issue 27394
+mixin_super_constructor_named_test/none: Crash # Issue 27394
+mixin_super_constructor_positionals_test/01: Crash # Issue 27394
+mixin_super_constructor_positionals_test/none: Crash # Issue 27394
+mixin_super_constructor_test: Crash # Issue 27394
+mixin_type_parameter1_test: RuntimeError # Issue 27394
+mixin_type_parameter2_test: RuntimeError # Issue 27394
+mixin_type_parameter3_test: RuntimeError # Issue 27394
+mixin_type_parameter5_test: Crash # Issue 27394
+mixin_type_parameters_mixin_extends_test: RuntimeError # Issue 27394
+mixin_type_parameters_mixin_test: RuntimeError # Issue 27394
+mixin_type_parameters_simple_test: RuntimeError # Issue 27394
+mixin_type_parameters_super_extends_test: RuntimeError # Issue 27394
+mixin_type_parameters_super_test: RuntimeError # Issue 27394
+mixin_type_variable_test/02: Crash # Issue 27394
+mixin_type_variable_test/03: Crash # Issue 27394
+mixin_type_variable_test/04: Crash # Issue 27394
+mixin_type_variable_test/05: Crash # Issue 27394
+mixin_type_variable_test/06: Crash # Issue 27394
+mixin_type_variable_test/07: Crash # Issue 27394
+mixin_type_variable_test/08: Crash # Issue 27394
+mixin_typedef_constructor_test: Crash # Issue 27394
+named_parameters_aggregated_test/05: RuntimeError # Issue 27394
+named_parameters_default_eq_test/none: RuntimeError # Issue 27394
+named_parameters_passing_falsy_test: RuntimeError # Issue 27394
+named_parameters_passing_null_test: RuntimeError # Issue 27394
+named_parameters_passing_zero_test: RuntimeError # Issue 27394
+named_parameters_test/01: MissingRuntimeError # Issue 27394
+namer2_test: RuntimeError # Issue 27394
+null_bottom_test/none: RuntimeError # Issue 27394
+null_is2_test: RuntimeError # Issue 27394
+null_is_bottom_test/14: RuntimeError # Issue 27394
+null_is_bottom_test/16: RuntimeError # Issue 27394
+null_test/01: Crash # Issue 27394
+null_test/02: Crash # Issue 27394
+null_test/03: Crash # Issue 27394
+null_test/none: Crash # Issue 27394
+nullaware_opt_test: RuntimeError # Issue 27394
+operator_equals_test: RuntimeError # Issue 27394
+optional_named_parameters_test/none: RuntimeError # Issue 27394
+private_mixin2_test: Crash # Issue 27394
+redirecting_constructor_initializer_test: RuntimeError # Issue 27394
+redirecting_factory_long_test: RuntimeError # Issue 27394
+redirecting_factory_reflection_test: Crash # Issue 27394
+regress_18535_test: Crash # Issue 27394
+regress_18713_test: Crash # Issue 27394
+regress_22666_test: Crash # Issue 27394
+regress_22700_test: RuntimeError # Issue 27394
+regress_23650_test: RuntimeError # Issue 27394
+regress_23996_test: RuntimeError # Issue 27394
+regress_25246_1_test: Crash # Issue 27394
+regress_28255_test: Crash # Issue 27394
+reify_typevar_test: RuntimeError # Issue 27394
+runtime_type_function_test: RuntimeError # Issue 27394
+static_call_wrong_argument_count_negative_test: Fail # Issue 27394
+static_setter_get_test/01: Crash # Issue 27394
+static_top_level_test/00: Crash # Issue 27394
+static_top_level_test/04: Crash # Issue 27394
+super_call4_test: Crash # Issue 27394
+super_conditional_operator_test/01: Crash # Issue 27394
+super_getter_setter_test: Crash # Issue 27394
+super_no_such_method1_test/01: Crash # Issue 27394
+super_no_such_method2_test/01: Crash # Issue 27394
+super_no_such_method3_test/01: Crash # Issue 27394
+super_no_such_method4_test/01: Crash # Issue 27394
+super_no_such_method5_test/01: Crash # Issue 27394
+super_operator_index5_test: Crash # Issue 27394
+super_operator_index6_test: Crash # Issue 27394
+super_operator_index7_test: Crash # Issue 27394
+super_operator_index8_test: Crash # Issue 27394
+super_operator_index_test/01: Crash # Issue 27394
+super_operator_index_test/02: Crash # Issue 27394
+super_operator_index_test/03: Crash # Issue 27394
+super_operator_index_test/04: Crash # Issue 27394
+super_operator_index_test/05: Crash # Issue 27394
+super_operator_index_test/06: Crash # Issue 27394
+super_operator_index_test/07: Crash # Issue 27394
+super_operator_test: Crash # Issue 27394
+super_setter_interceptor_test: RuntimeError # Issue 27394
+this_conditional_operator_test/01: Crash # Issue 27394
+try_catch_syntax_test/13: Crash # Issue 27394
+try_catch_syntax_test/14: Crash # Issue 27394
+try_catch_syntax_test/15: Crash # Issue 27394
+type_argument_substitution_test: RuntimeError # Issue 27394
+type_parameter_literal_test: RuntimeError # Issue 27394
+type_parameter_test/01: Crash # Issue 27394
+type_parameter_test/02: Crash # Issue 27394
+type_parameter_test/03: Crash # Issue 27394
+type_parameter_test/04: Crash # Issue 27394
+type_parameter_test/05: Crash # Issue 27394
+type_parameter_test/06: Crash # Issue 27394
+type_parameter_test/none: Crash # Issue 27394
+type_variable_closure2_test: RuntimeError # Issue 27394
+type_variable_closure3_test: RuntimeError # Issue 27394
+type_variable_closure4_test: RuntimeError # Issue 27394
+type_variable_closure_test: Crash # Issue 27394
+type_variable_field_initializer2_test: RuntimeError # Issue 27394
+type_variable_field_initializer_closure2_test: Crash # Issue 27394
+type_variable_field_initializer_closure_test: Crash # Issue 27394
+type_variable_field_initializer_test: RuntimeError # Issue 27394
+type_variable_function_type_test: RuntimeError # Issue 27394
+type_variable_nested_test: RuntimeError # Issue 27394
+type_variable_typedef_test: RuntimeError # Issue 27394
+
+[ $compiler == dart2js && $dart2js_with_kernel && $host_checked ]
+class_cycle2_test/01: Crash # Issue 27394
+class_cycle_test/00: Crash # Issue 27394
+class_cycle_test/01: Crash # Issue 27394
+conditional_method_invocation_test/02: Crash # Issue 27394
+conditional_method_invocation_test/04: Crash # Issue 27394
+conditional_method_invocation_test/06: Crash # Issue 27394
+const_types_test/23: Crash # Issue 27394
+const_types_test/24: Crash # Issue 27394
+const_types_test/25: Crash # Issue 27394
+const_types_test/26: Crash # Issue 27394
+const_types_test/27: Crash # Issue 27394
+const_types_test/28: Crash # Issue 27394
+const_types_test/29: Crash # Issue 27394
+const_types_test/30: Crash # Issue 27394
+const_types_test/41: Crash # Issue 27394
+cyclic_class_member_test/01: Crash # Issue 27394
+deferred_global_test: Crash # Issue 27394
+factory6_test/00: Crash # Issue 27394
+factory_redirection_test/01: Crash # Issue 27394
+factory_redirection_test/02: Crash # Issue 27394
+factory_redirection_test/03: Crash # Issue 27394
+mixin_cyclic_test/02: Crash # Issue 27394
+mixin_illegal_cycles_test/01: Crash # Issue 27394
+mixin_illegal_cycles_test/05: Crash # Issue 27394
+named_parameters_test/01: Crash # Issue 27394
+named_parameters_test/03: Crash # Issue 27394
+named_parameters_test/05: Crash # Issue 27394
+named_parameters_test/07: Crash # Issue 27394
+named_parameters_test/09: Crash # Issue 27394
diff --git a/tests/language/language_kernel.status b/tests/language/language_kernel.status
index 90433a9..5a73627 100644
--- a/tests/language/language_kernel.status
+++ b/tests/language/language_kernel.status
@@ -234,6 +234,7 @@
 [ $compiler == dartk && $runtime == vm ]
 hello_dart_test: CompileTimeError  # VMOptions=--compile-all causes us to hit "native function VMServiceIO_Shutdown cannot be resolved"
 ct_const2_test: Pass, CompileTimeError  # VMOptions=--compile-all causes us to hit "native function VMServiceIO_Shutdown cannot be resolved"
+disassemble_test: Pass, Crash  # Multitest via multiple VMOptions! Hits assert "kind() != RawScript::kKernelTag". Issue 28790
 
 # Failures during Gardening shift: To be triaged!
 [ $compiler == dartk || $compiler == dartkp ]
@@ -246,3 +247,7 @@
 # Triaged checked mode failures
 [ ($compiler == dartk || $compiler == dartkp) && $checked ]
 language/regress_22728_test: Fail # Dartk Issue 28498
+
+# Slow (very slow!) during Gardening shift:
+[ $compiler == dartk && $runtime == vm && $mode == debug ]
+vm/optimized_stacktrace_test: Skip # Issue 28788
diff --git a/tests/language/top_level_prefixed_library_test.lib b/tests/language/top_level_prefixed_library_test.lib
index d75930d..3347464 100644
--- a/tests/language/top_level_prefixed_library_test.lib
+++ b/tests/language/top_level_prefixed_library_test.lib
@@ -2,5 +2,5 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-library TopLevelPrefixedLibrary;
+library TopLevelMultipleFilesTest.dart;
 part 'top_level_file2.dart';
diff --git a/tests/language/vm/causal_async_exception_stack_test.dart b/tests/language/vm/causal_async_exception_stack_test.dart
index ed4147f..d08ae9d 100644
--- a/tests/language/vm/causal_async_exception_stack_test.dart
+++ b/tests/language/vm/causal_async_exception_stack_test.dart
@@ -29,11 +29,11 @@
     await foo();
   } catch (e, st) {
     expect(st.toString(), stringContainsInOrder([
-        'thrower',
+        'thrower', '.dart:8',
         '<asynchronous suspension>',
-        'generator',
+        'generator', '.dart:17',
         '<asynchronous suspension>',
-        'foo',
+        'foo', '.dart:21',
         '<asynchronous suspension>',
         'main',
         ]));
@@ -67,9 +67,9 @@
     await thrower();
   } catch(e, st) {
     expect(st.toString(), stringContainsInOrder([
-           'thrower',
+           'thrower', '.dart:8',
            '<asynchronous suspension>',
-           'main',
+           'main', '.dart:67',
            ]));
   }
 }
\ No newline at end of file
diff --git a/tests/standalone/io/process_test_util.dart b/tests/standalone/io/process_test_util.dart
index 36325b1..ecaa8a9 100644
--- a/tests/standalone/io/process_test_util.dart
+++ b/tests/standalone/io/process_test_util.dart
@@ -15,7 +15,7 @@
 String getProcessTestFileName() {
   var extension = getPlatformExecutableExtension();
   var executable = Platform.executable;
-  var dirIndex = executable.lastIndexOf('dart$extension');
+  var dirIndex = executable.lastIndexOf('dart');
   var buffer = new StringBuffer(executable.substring(0, dirIndex));
   buffer.write('process_test$extension');
   return buffer.toString();
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index 63bbebb..bb10d88 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -297,8 +297,9 @@
 io/stdin_sync_test: Skip
 io/stdio_implicit_close_test: Skip
 io/stdio_nonblocking_test: Skip
-io/test_extension_test: Skip
 io/test_extension_fail_test: Skip
+io/test_extension_test: Skip
+io/windows_environment_test: Skip
 verbose_gc_to_bmu_test: Skip
 
 io/platform_test: RuntimeError # Expects to be running from 'dart' instead of 'dart_precompiled_runtime'
diff --git a/tools/VERSION b/tools/VERSION
index dfbe20c..743feae 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 1
 MINOR 23
 PATCH 0
-PRERELEASE 0
+PRERELEASE 1
 PRERELEASE_PATCH 0
diff --git a/tools/deps/dartium.deps/DEPS b/tools/deps/dartium.deps/DEPS
index 647d196..fcad01e 100644
--- a/tools/deps/dartium.deps/DEPS
+++ b/tools/deps/dartium.deps/DEPS
@@ -9,7 +9,7 @@
 
 vars.update({
   "dartium_chromium_commit": "7558afb6379171d7f96b2db68ae9d2b64b2c5544",
-  "dartium_webkit_commit": "c75f4816a4a066834be431a2dc4b84d788020b64",
+  "dartium_webkit_commit": "56e20cfbfa7e1a680add908ed9c316c067454ff0",
   "chromium_base_revision": "338390",
 
   # We use mirrors of all github repos to guarantee reproducibility and
diff --git a/tools/patch_sdk.dart b/tools/patch_sdk.dart
index e9980ea..254b8b0 100644
--- a/tools/patch_sdk.dart
+++ b/tools/patch_sdk.dart
@@ -257,6 +257,11 @@
   return new List<String>.from(results.map((e) => e.toString()));
 }
 
+final String injectedCidFields = [
+  'Array', 'ExternalOneByteString', 'GrowableObjectArray',
+  'ImmutableArray', 'OneByteString', 'TwoByteString', 'Bigint'
+].map((name) => "static final int cid${name} = 0;").join('\n');
+
 /// Merge `@patch` declarations into `external` declarations.
 class PatchApplier extends GeneralizingAstVisitor {
   final StringEditBuffer edits;
@@ -274,6 +279,15 @@
 
   void _merge(AstNode node, int pos) {
     var code = patch.contents.substring(node.offset, node.end);
+
+    // We inject a number of static fields into dart:internal.ClassID class.
+    // These fields represent various VM class ids and are only used to
+    // make core libraries compile. Kernel reader will actually ignore these
+    // fields and instead inject concrete constants into this class.
+    if (node is ClassDeclaration && node.name.name == 'ClassID') {
+      code = code.replaceFirst(
+          new RegExp(r'}$'), injectedCidFields + '}');
+    }
     edits.insert(pos, '\n' + code);
   }
 
diff --git a/tools/task_kill.py b/tools/task_kill.py
index 44c8e2ee..fb677a8 100755
--- a/tools/task_kill.py
+++ b/tools/task_kill.py
@@ -26,35 +26,38 @@
   'win32': {
     'chrome': 'chrome.exe',
     'content_shell': 'content_shell.exe',
+    'dart_bootstrap': 'dart_bootstrap.exe',
     'dart': 'dart.exe',
-    'iexplore': 'iexplore.exe',
+    'dart_precompiled_runtime': 'dart_precompiled_runtime.exe',
     'firefox': 'firefox.exe',
+    'gen_snapshot': 'gen_snapshot.exe',
     'git': 'git.exe',
+    'iexplore': 'iexplore.exe',
     'svn': 'svn.exe',
-    'fletch': 'fletch.exe',
-    'fletch-vm': 'fletch-vm.exe',
   },
   'linux': {
     'chrome': 'chrome',
     'content_shell': 'content_shell',
+    'dart_bootstrap': 'dart_bootstrap',
     'dart': 'dart',
-    'firefox': 'firefox.exe',
+    'dart_precompiled_runtime': 'dart_precompiled_runtime',
+    'firefox': 'firefox',
+    'gen_snapshot': 'gen_snapshot',
     'git': 'git',
     'svn': 'svn',
-    'fletch': 'fletch',
-    'fletch-vm': 'fletch-vm',
   },
   'macos': {
     'chrome': 'Chrome',
     'chrome_helper': 'Chrome Helper',
     'content_shell': 'Content Shell',
+    'dart_bootstrap': 'dart_bootstrap',
     'dart': 'dart',
+    'dart_precompiled_runtime': 'dart_precompiled_runtime',
     'firefox': 'firefox',
-    'safari': 'Safari',
+    'gen_snapshot': 'gen_snapshot',
     'git': 'git',
+    'safari': 'Safari',
     'svn': 'svn',
-    'fletch': 'fletch',
-    'fletch-vm': 'fletch-vm',
   }
 }
 
@@ -74,8 +77,6 @@
   parser = optparse.OptionParser("usage: %prog [options]")
   parser.add_option("--kill_dart", default=True,
                     help="Kill all dart processes")
-  parser.add_option("--kill_fletch", default=True,
-                    help="Kill all fletch and fletch-vm processes")
   parser.add_option("--kill_vc", default=True,
                     help="Kill all git and svn processes")
   parser.add_option("--kill_browsers", default=False,
@@ -224,11 +225,9 @@
 
 def KillDart():
   status = Kill("dart", dump_stacks=True)
-  return status
-
-def KillFletch():
-  status = Kill("fletch")
-  status += Kill("fletch-vm")
+  status += Kill("dart_bootstrap", dump_stacks=True)
+  status += Kill("gen_snapshot", dump_stacks=True)
+  status += Kill("dart_precompiled_runtime", dump_stacks=True)
   return status
 
 def Main():
@@ -240,8 +239,6 @@
       KillDart()
     else:
       status += KillDart()
-  if options.kill_fletch:
-    status += KillFletch()
   if options.kill_vc:
     status += KillVCSystems()
   if options.kill_browsers:
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index d545b3f..3110586 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -67,8 +67,9 @@
     bool hotReload = configuration['hot_reload'];
     bool hotReloadRollback = configuration['hot_reload_rollback'];
     bool useFastStartup = configuration['fast_startup'];
+    bool useKernelInDart2js = configuration['dart2js_with_kernel'];
     bool verifyKernel = configuration['verify-ir'];
-    bool useDFE = configuration['useDFE'];
+    bool useDFE = !configuration['noDFE'];
     bool useFasta = configuration['useFasta'];
     bool treeShake = !configuration['no-tree-shake'];
 
@@ -89,6 +90,7 @@
             useSdk: useSdk,
             isCsp: isCsp,
             useFastStartup: useFastStartup,
+            useKernel: useKernelInDart2js,
             extraDart2jsOptions:
                 TestUtils.getExtraOptions(configuration, 'dart2js_options'));
       case 'app_jit':
@@ -535,6 +537,7 @@
   final bool isCsp;
   final bool useCps;
   final bool useFastStartup;
+  final bool useKernel;
   final List<String> extraDart2jsOptions;
   // We cache the extended environment to save memory.
   static Map<String, String> cpsFlagCache;
@@ -548,6 +551,7 @@
       bool this.useCps,
       bool this.isCsp,
       bool this.useFastStartup,
+      this.useKernel,
       this.extraDart2jsOptions})
       : super('dart2js',
             isDebug: isDebug,
diff --git a/tools/testing/dart/test_options.dart b/tools/testing/dart/test_options.dart
index 206059a..c82c7ce 100644
--- a/tools/testing/dart/test_options.dart
+++ b/tools/testing/dart/test_options.dart
@@ -213,6 +213,13 @@
           [],
           false,
           type: 'bool'),
+      new _TestOptionSpecification(
+          'dart2js_with_kernel',
+          'Enable the internal pipeline in dart2js to use kernel',
+          ['--dart2js-with-kernel'],
+          [],
+          false,
+          type: 'bool'),
       new _TestOptionSpecification('hot_reload', 'Run hot reload stress tests',
           ['--hot-reload'], [], false,
           type: 'bool'),
@@ -294,7 +301,7 @@
           'no-tree-shake', 'Disable kernel IR tree shaking', ['--no-tree-shake'], [], false,
           type: 'bool'),
       new _TestOptionSpecification(
-          'useDFE', 'Use Kernel Isolate', ['--use-dfe'], [], true,
+          'noDFE', 'Do not use Kernel Isolate', ['--no-dfe'], [], false,
           type: 'bool'),
       new _TestOptionSpecification(
           'useFasta', 'Use Fasta in Kernel Isolate', ['--use-fasta'], [], false,
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
index a16141d..5a6cc26 100644
--- a/tools/testing/dart/test_suite.dart
+++ b/tools/testing/dart/test_suite.dart
@@ -1485,7 +1485,7 @@
     }
     args.addAll(additionalOptions(filePath));
     if (configuration['analyzer']) {
-      args.add('--machine');
+      args.add('--format=machine');
       args.add('--no-hints');
     }
 
@@ -2229,9 +2229,8 @@
     if (compiler == "dart2js" && configuration["fast_startup"]) {
       args.add("--fast-startup");
     }
-    if (compiler == "dart2analyzer") {
-      args.add("--show-package-warnings");
-      args.add("--enable-async");
+    if (compiler == "dart2js" && configuration["dart2js_with_kernel"]) {
+      args.add("--use-kernel");
     }
     return args;
   }